From 904b11b7b735553c3d0fb61ec4672b3dcad6f549 Mon Sep 17 00:00:00 2001 From: Alex <8125011+alex-kinokon@users.noreply.github.com> Date: Fri, 28 Apr 2023 22:56:30 -0400 Subject: [PATCH] Refactor --- README.md | 3 + package.json | 55 +- packages/adapters/package.json | 6 - packages/opvault.js/package.json | 28 +- packages/opvault.js/rollup.config.js | 5 +- .../opvault.js/src/__tests__}/decrypted.json | 0 .../opvault.js/src/__tests__/index.test.ts | 99 + .../opvault.js/src/__tests__/weakMap.test.ts | 43 + .../src/{adapter.ts => adapter/index.ts} | 53 +- packages/opvault.js/src/adapter/node.ts | 31 + .../src/adapter}/showDirectoryPicker.ts | 42 +- .../src/adapter}/webkitdirectory.ts | 38 +- packages/opvault.js/src/buffer.ts | 362 ++ packages/opvault.js/src/crypto.ts | 62 +- packages/opvault.js/src/decipher.ts | 81 +- packages/opvault.js/src/ee.ts | 3 - packages/opvault.js/src/errors.ts | 8 +- packages/opvault.js/src/fs.ts | 49 +- packages/opvault.js/src/i18n/index.ts | 25 - packages/opvault.js/src/i18n/res.json | 16 - packages/opvault.js/src/index.ts | 48 +- packages/opvault.js/src/models/attachment.ts | 29 +- packages/opvault.js/src/models/item.ts | 2 +- packages/opvault.js/src/models/vault.ts | 28 +- packages/web/src/electron/ipc-types.d.ts | 9 +- packages/web/src/electron/ipc.ts | 19 +- packages/web/src/utils/ipc-adapter.ts | 14 +- pnpm-lock.yaml | 3416 ++++++++++------- test/profile.test.ts | 104 - test/weakMap.test.ts | 43 - 30 files changed, 2790 insertions(+), 1931 deletions(-) delete mode 100644 packages/adapters/package.json rename {test => packages/opvault.js/src/__tests__}/decrypted.json (100%) create mode 100644 packages/opvault.js/src/__tests__/index.test.ts create mode 100644 packages/opvault.js/src/__tests__/weakMap.test.ts rename packages/opvault.js/src/{adapter.ts => adapter/index.ts} (50%) create mode 100644 packages/opvault.js/src/adapter/node.ts rename packages/{adapters/src => opvault.js/src/adapter}/showDirectoryPicker.ts (80%) rename packages/{adapters/src => opvault.js/src/adapter}/webkitdirectory.ts (60%) create mode 100644 packages/opvault.js/src/buffer.ts delete mode 100644 packages/opvault.js/src/i18n/index.ts delete mode 100644 packages/opvault.js/src/i18n/res.json delete mode 100644 test/profile.test.ts delete mode 100644 test/weakMap.test.ts diff --git a/README.md b/README.md index 13212a0..906bff9 100644 --- a/README.md +++ b/README.md @@ -25,8 +25,11 @@ pnpm run bundle ## Test ```sh +cd packages/opvault.js/src/__tests__ wget -qO- https://cache.agilebits.com/security-kb/freddy-2013-12-04.tar.gz | tar xvz mv onepassword_data freddy-2013-12-04.opvault + +# Run tests pnpm run test ``` diff --git a/package.json b/package.json index 2820d01..6c12929 100644 --- a/package.json +++ b/package.json @@ -6,46 +6,47 @@ "private": true, "scripts": { "design": "marked -o design.html < design.md", - "test": "node --expose-gc node_modules/mocha/bin/_mocha test/**/*.test.ts", + "test": "rm -rf mochawesome-report; c8 -r html node --expose-gc node_modules/mocha/bin/_mocha packages/**/*.test.ts; mv coverage mochawesome-report/coverage", "repl": "node -r ts-node/register/transpile-only src/repl.ts", "dev": "cd packages/web && yarn dev", "bundle": "cd packages/web && yarn bundle", "i18n": "node packages/web/scripts/build-i18n-yml-typedef.js" }, "devDependencies": { - "@types/chai": "^4.3.0", + "@types/chai": "^4.3.4", "@types/chai-as-promised": "^7.1.5", - "@types/fs-extra": "^9.0.13", + "@types/fs-extra": "^11.0.1", "@types/mocha": "github:whitecolor/mocha-types#da22474cf43f48a56c86f8c23a5a0ea36e295768", - "@types/node": "^17.0.23", - "@types/sinon": "^10.0.11", - "@types/sinon-chai": "^3.2.8", + "@types/node": "^18.16.2", + "@types/sinon": "^10.0.14", + "@types/sinon-chai": "^3.2.9", "@types/wicg-file-system-access": "^2020.9.5", - "@typescript-eslint/eslint-plugin": "5.17.0", - "@typescript-eslint/parser": "5.17.0", - "chai": "^4.3.6", + "@typescript-eslint/eslint-plugin": "5.59.1", + "@typescript-eslint/parser": "5.59.1", + "c8": "^7.13.0", + "chai": "^4.3.7", "chai-as-promised": "^7.1.1", "chalk": "^4.1.2", - "eslint": "8.12.0", - "eslint-config-prettier": "8.5.0", - "eslint-import-resolver-typescript": "2.7.0", - "eslint-plugin-import": "2.25.4", - "eslint-plugin-react": "7.29.4", - "eslint-plugin-react-hooks": "4.4.0", - "fs-extra": "^10.0.1", - "marked": "^4.0.12", - "mocha": "^9.2.2", + "eslint": "8.39.0", + "eslint-config-prettier": "8.8.0", + "eslint-import-resolver-typescript": "3.5.5", + "eslint-plugin-import": "2.27.5", + "eslint-plugin-react": "7.32.2", + "eslint-plugin-react-hooks": "4.6.0", + "fs-extra": "^11.1.1", + "marked": "^4.3.0", + "mocha": "^10.2.0", "mochawesome": "^7.1.3", - "prettier": "^2.6.2", - "react": "^17.0.2", - "react-dom": "^17.0.2", - "sass": "^1.49.11", - "sinon": "^13.0.1", + "prettier": "^2.8.8", + "react": "^18.2.0", + "react-dom": "^18.2.0", + "sass": "^1.62.1", + "sinon": "^15.0.4", "sinon-chai": "^3.7.0", - "tslib": "^2.3.1", - "ts-node": "^10.7.0", - "tsconfig-paths": "^3.14.1", - "typescript": "^4.6.3" + "ts-node": "^10.9.1", + "tsconfig-paths": "^4.2.0", + "tslib": "^2.5.0", + "typescript": "^5.0.4" }, "prettier": { "arrowParens": "avoid", diff --git a/packages/adapters/package.json b/packages/adapters/package.json deleted file mode 100644 index 55d874e..0000000 --- a/packages/adapters/package.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "name": "opvault-adapters", - "dependencies": { - "opvault.js": "*" - } -} diff --git a/packages/opvault.js/package.json b/packages/opvault.js/package.json index bfbb8b7..3d212aa 100644 --- a/packages/opvault.js/package.json +++ b/packages/opvault.js/package.json @@ -1,23 +1,31 @@ { "name": "opvault.js", - "main": "src/index.ts", "version": "0.0.1", "license": "LGPL-3.0-or-later", "scripts": { - "build": "rollup -c; prettier --write lib >/dev/null", + "build": "rollup -c --bundleConfigAsCjs; prettier --write lib >/dev/null", "build:docs": "typedoc --out docs src/index.ts --excludePrivate" }, + "exports": { + ".": "./lib/index.js", + "./node": "./lib/node.js", + "./filePicker": "./lib/filePicker.js", + "./webkit": "./lib/webkit.js" + }, + "files": [ + "lib" + ], "dependencies": { "buffer": "^6.0.3", - "tiny-invariant": "1.2.0", - "tslib": "2.3.1" + "tiny-invariant": "1.3.1", + "tslib": "2.5.0" }, "devDependencies": { - "@rollup/plugin-json": "^4.1.0", - "@rollup/plugin-replace": "^3.0.0", - "prettier": "^2.5.1", - "rollup": "^2.61.1", - "rollup-plugin-ts": "^2.0.4", - "typedoc": "^0.22.10" + "@rollup/plugin-json": "^6.0.0", + "@rollup/plugin-replace": "^5.0.2", + "prettier": "^2.8.8", + "rollup": "^3.21.0", + "rollup-plugin-ts": "^3.2.0", + "typedoc": "^0.24.6" } } diff --git a/packages/opvault.js/rollup.config.js b/packages/opvault.js/rollup.config.js index 51bdf9a..3fd92f4 100644 --- a/packages/opvault.js/rollup.config.js +++ b/packages/opvault.js/rollup.config.js @@ -8,6 +8,9 @@ import { dependencies } from "./package.json" export default () => ({ input: { index: "./src/index.ts", + node: "./src/adapter/node.ts", + filePicker: "./src/adapter/showDirectoryPicker.ts", + webkit: "./src/adapter/webkitdirectory.ts", }, external: builtinModules.concat(Object.keys(dependencies)), output: { @@ -21,8 +24,6 @@ export default () => ({ preventAssignment: true, values: { "process.env.NODE_ENV": '"production"', - 'require("./adapter").nodeAdapter': - 'import("./adapter").then(x => x.nodeAdapter)', }, }), ], diff --git a/test/decrypted.json b/packages/opvault.js/src/__tests__/decrypted.json similarity index 100% rename from test/decrypted.json rename to packages/opvault.js/src/__tests__/decrypted.json diff --git a/packages/opvault.js/src/__tests__/index.test.ts b/packages/opvault.js/src/__tests__/index.test.ts new file mode 100644 index 0000000..32d0cc8 --- /dev/null +++ b/packages/opvault.js/src/__tests__/index.test.ts @@ -0,0 +1,99 @@ +import { resolve } from "path" +import { describe, it, beforeEach } from "mocha" +import { expect } from "chai" + +import type { Vault } from "../index" +import { base64FromByteArray } from "../buffer" +import { OnePassword } from "../index" +import { adapter } from "../adapter/node" + +describe("OnePassword", () => { + const freddy = resolve(__dirname, "freddy-2013-12-04.opvault") + + describe("getProfileNames", () => { + it("freddy", async () => { + const instance = new OnePassword({ path: freddy, adapter }) + expect(await instance.getProfileNames()).to.deep.equal(["default"]) + }) + + it.skip("ignores faulty folders", async () => {}) + }) + + describe("unlock", () => { + let vault: Vault + + beforeEach(async () => { + vault = await new OnePassword({ path: freddy, adapter }).getProfile("default") + }) + + it("accepts correct password", async () => { + await expect(vault.unlock("freddy")).to.be.fulfilled + expect(vault.isLocked).to.be.false + }) + + it("rejects wrong password", () => { + ;["Freddy", "_freddy", ""].forEach(async password => { + await expect(vault.unlock(password)).to.be.rejectedWith("Invalid password") + expect(vault.isLocked).to.be.true + }) + }) + }) + + describe("content", () => { + let vault: Vault + + beforeEach(async () => { + vault = await new OnePassword({ path: freddy, adapter }).getProfile("default") + await vault.unlock("freddy") + }) + + it("reads notes", async () => { + const item = (await vault.getItem({ + title: "A note with some attachments", + }))! + expect(item).to.exist + expect(item.uuid).to.equal("F2DB5DA3FCA64372A751E0E85C67A538") + expect(item.attachments).to.have.lengthOf(2) + expect(item.details).to.deep.equal({ + notesPlain: "This note has two attachments.", + }) + expect(item.overview).to.deep.equal({ + title: "A note with some attachments", + ps: 0, + ainfo: "This note has two attachments.", + }) + }) + + it("decrypts items", async () => { + const decrypted = require("./decrypted.json") + expect(vault.isLocked).to.be.false + for (const [uuid, item] of Object.entries(decrypted)) { + const actual = await vault.getItem(uuid) + expect(actual).to.exist + expect(actual!.overview).to.deep.equal(item.overview) + expect(actual!.details).to.deep.equal(item.itemDetails) + expect(actual!.attachments).to.have.lengthOf(item.attachments.length) + for (const [i, attachment] of actual!.attachments.entries()) { + const expected = item.attachments[i] + await attachment.unlock() + expect(attachment.metadata).to.deep.equal(expected.metadata) + expect(base64FromByteArray(attachment.file)).to.deep.equal(expected.file) + expect(base64FromByteArray(attachment.icon)).to.deep.equal(expected.icon) + } + } + }) + }) + + describe("lock", () => { + it("locks", async () => { + const instance = new OnePassword({ path: freddy, adapter }) + const vault = await instance.getProfile("default") + await vault.unlock("freddy") + expect(vault.isLocked).to.be.false + + vault.lock() + expect(vault.isLocked).to.be.true + expect(vault.getItem("F2DB5DA3FCA64372A751E0E85C67A538")).to.eventually.throw + }) + }) +}) diff --git a/packages/opvault.js/src/__tests__/weakMap.test.ts b/packages/opvault.js/src/__tests__/weakMap.test.ts new file mode 100644 index 0000000..b926f56 --- /dev/null +++ b/packages/opvault.js/src/__tests__/weakMap.test.ts @@ -0,0 +1,43 @@ +import { describe, it } from "mocha" +import { expect } from "chai" + +import { WeakValueMap } from "../weakMap" + +declare const gc: () => void + +describe("WeakValueMap", () => { + interface Value { + value: number + } + + it("covers base use cases", () => { + const map = new WeakValueMap() + const object = { value: 1 } + map.set("key", object) + expect(map.get("key")!.value).to.equal(1) + expect(map.delete("key")).to.be.true + expect(!map.delete("key")).to.be.true + }) + + it("overrides previous value", () => { + const map = new WeakValueMap() + map.set("key", { value: 2 }) + map.set("key", { value: 3 }) + expect(map.get("key")!.value).to.equal(3) + }) + + it("deletes garbage collected values", done => { + const map = new WeakValueMap() + map.set("key", { value: 1 }) + setTimeout(() => { + gc() + expect(map.has("key")).to.be.false + map.set("key", { value: 2 }) + + setTimeout(() => { + gc() + done() + }) + }) + }) +}) diff --git a/packages/opvault.js/src/adapter.ts b/packages/opvault.js/src/adapter/index.ts similarity index 50% rename from packages/opvault.js/src/adapter.ts rename to packages/opvault.js/src/adapter/index.ts index b6bfcae..b208ec8 100644 --- a/packages/opvault.js/src/adapter.ts +++ b/packages/opvault.js/src/adapter/index.ts @@ -1,10 +1,7 @@ -import { promises as fs, existsSync } from "fs" -import { webcrypto } from "crypto" - /** * An object that implements basic file system functionalities. */ -export interface IFileSystem { +export interface FileSystem { /** * Asynchronously tests whether or not the given path exists by checking with the file system. * @param path A path to a file or directory. @@ -15,39 +12,45 @@ export interface IFileSystem { * Asynchronously reads the entire contents of a file. * @param path A path to a file. */ - readBuffer(path: string): Promise + readFile(path: string): Promise /** * Asynchronously reads the entire contents of a file. * @param path A path to a file. */ - readFile(path: string): Promise + readTextFile(path: string): Promise /** * Asynchronously writes data to a file, replacing the file if it already exists. * @param path A path to a file. * @param data The data to write. */ - writeFile(path: string, data: string): Promise + writeTextFile(path: string, data: string): Promise /** - * Asynchronous readdir(3) - read a directory. - * @param path A path to a directory. + * Reads the directory given by path and returns an async iterable of `DirEntry`. */ - readdir(path: string): Promise - - /** - * Returns true if the path points to a directory. - */ - isDirectory(path: string): Promise + readDir(path: string): AsyncIterable } -export interface IAdapter { +/** + * Information about a directory entry + */ +export interface DirEntry { + /** The file name of the entry. Does not include the full path. */ + name: string + /** True if this is info for a regular file. */ + isFile: boolean + /** True if this is info for a directory. */ + isDirectory: boolean +} + +export interface Adapter { /** * Underlying `fs` module. You can replace it with a wrapper of * `memfs` or any object that implements `IFileSystem`. */ - fs: IFileSystem + fs: FileSystem /** * `SubtleCrypto` implementation. On Node.js this is @@ -56,19 +59,3 @@ export interface IAdapter { */ subtle: SubtleCrypto } - -/** - * Default Node.js adapter. This can be used while using `opvault.js` - * in a Node.js environment. - */ -export const nodeAdapter: IAdapter = { - fs: { - readFile: path => fs.readFile(path, "utf-8"), - readBuffer: path => fs.readFile(path), - writeFile: fs.writeFile, - readdir: fs.readdir, - isDirectory: async path => fs.stat(path).then(x => x.isDirectory()), - exists: async path => existsSync(path), - }, - subtle: (webcrypto as any).subtle, -} diff --git a/packages/opvault.js/src/adapter/node.ts b/packages/opvault.js/src/adapter/node.ts new file mode 100644 index 0000000..2a442d0 --- /dev/null +++ b/packages/opvault.js/src/adapter/node.ts @@ -0,0 +1,31 @@ +import { promises as fs, existsSync } from "fs" +import { webcrypto } from "crypto" +import { join } from "path" +import type { Adapter } from "./index" + +/** + * Default Node.js adapter. This can be used while using `opvault.js` + * in a Node.js environment. + */ +export const adapter: Adapter = { + fs: { + readTextFile: path => fs.readFile(path, "utf-8"), + readFile: path => fs.readFile(path), + writeTextFile: fs.writeFile, + async *readDir(path) { + const names = await fs.readdir(path) + for (const name of names) { + const fullPath = join(path, name) + const stat = await fs.stat(fullPath) + yield { + name, + isFile: stat.isFile(), + isDirectory: stat.isDirectory(), + } + } + }, + + exists: async path => existsSync(path), + }, + subtle: (webcrypto as any).subtle, +} diff --git a/packages/adapters/src/showDirectoryPicker.ts b/packages/opvault.js/src/adapter/showDirectoryPicker.ts similarity index 80% rename from packages/adapters/src/showDirectoryPicker.ts rename to packages/opvault.js/src/adapter/showDirectoryPicker.ts index 6e8cfde..dc19988 100644 --- a/packages/adapters/src/showDirectoryPicker.ts +++ b/packages/opvault.js/src/adapter/showDirectoryPicker.ts @@ -1,5 +1,4 @@ -import { Buffer } from "buffer" -import type { IAdapter, IFileSystem } from "opvault.js/src/adapter" +import type { Adapter, DirEntry, FileSystem } from "./index" function normalize(path: string) { return path.replace(/^\//, "") @@ -11,7 +10,7 @@ function splitPath(path: string) { return [segments, filename] as const } -export class FileSystem implements IFileSystem { +class FS implements FileSystem { constructor(private handle: FileSystemDirectoryHandle) {} private async getDirectoryHandle(segments: string[]) { @@ -33,7 +32,7 @@ export class FileSystem implements IFileSystem { return fileHandle } - async readFile(path: string) { + async readTextFile(path: string) { const handle = await this.getFileHandle(path) const file = await handle.getFile() return file.text() @@ -60,30 +59,20 @@ export class FileSystem implements IFileSystem { ) } - async readBuffer(path: string): Promise { + async readFile(path: string): Promise { const handle = await this.getFileHandle(path) const file = await handle.getFile() - return Buffer.from(await file.arrayBuffer()) + return new Uint8Array(await file.arrayBuffer()) } - async writeFile(path: string, data: string): Promise { + async writeTextFile(path: string, data: string): Promise { const handle = await this.getFileHandle(path) const writable = await handle.createWritable() await writable.write(data) await writable.close() } - async readdir(path: string): Promise { - const segments = normalize(path).split("/") - const dirHandle = await this.getDirectoryHandle(segments) - const keys: string[] = [] - for await (const key of dirHandle.keys()) { - keys.push(key) - } - return keys - } - - async isDirectory(path: string) { + private async isDirectory(path: string) { const [segments, filename] = splitPath(path) const dirHandle = await this.getDirectoryHandle(segments) for await (const [key, handle] of dirHandle.entries()) { @@ -97,6 +86,19 @@ export class FileSystem implements IFileSystem { } return false } + + async *readDir(path: string): AsyncIterable { + const segments = normalize(path).split("/") + const dirHandle = await this.getDirectoryHandle(segments) + for await (const key of dirHandle.keys()) { + const isDirectory = await this.isDirectory(`${path}/${key}`) + yield { + name: key, + isDirectory, + isFile: !isDirectory, + } + } + } } async function success(fn: () => Promise) { @@ -111,7 +113,7 @@ async function success(fn: () => Promise) { /** * Default Browser adapter. */ -export const getBrowserAdapter = (handle: FileSystemDirectoryHandle): IAdapter => ({ - fs: new FileSystem(handle), +export const getBrowserAdapter = (handle: FileSystemDirectoryHandle): Adapter => ({ + fs: new FS(handle), subtle: crypto.subtle, }) diff --git a/packages/adapters/src/webkitdirectory.ts b/packages/opvault.js/src/adapter/webkitdirectory.ts similarity index 60% rename from packages/adapters/src/webkitdirectory.ts rename to packages/opvault.js/src/adapter/webkitdirectory.ts index 7b31c2f..bc16321 100644 --- a/packages/adapters/src/webkitdirectory.ts +++ b/packages/opvault.js/src/adapter/webkitdirectory.ts @@ -1,7 +1,7 @@ import { Buffer } from "buffer" -import type { IAdapter, IFileSystem } from "opvault.js/src/adapter" +import type { Adapter, DirEntry, FileSystem } from "./index" -export class FileSystem implements IFileSystem { +class FS implements FileSystem { private paths = new Set() private pathMap = new Map() @@ -12,7 +12,7 @@ export class FileSystem implements IFileSystem { } } - async readFile(path: string) { + async readTextFile(path: string) { return this.pathMap.get(path)!.text() } @@ -20,34 +20,40 @@ export class FileSystem implements IFileSystem { return this.pathMap.has(path) } - async readBuffer(path: string): Promise { + async readFile(path: string): Promise { const arrayBuffer = await this.pathMap.get(path)!.arrayBuffer() return Buffer.from(arrayBuffer) } // eslint-disable-next-line class-methods-use-this - async writeFile(path: string, data: string): Promise { + async writeTextFile(): Promise { throw new Error("fs.writeFile is not supported with webkitdirectory") } - async readdir(path: string): Promise { - const paths = [...this.paths] - return paths - .filter(_ => _.startsWith(`${path}/`)) - .map(_ => _.slice(path.length + 1)) - .map(_ => _.split("/")[0]) - } - - async isDirectory(path: string) { + private isDirectory(path: string) { const paths = [...this.paths] return paths.some(_ => _.startsWith(`${path}/`)) && !paths.includes(path) } + + async *readDir(path: string): AsyncIterable { + for (const name of [...this.paths] + .filter(_ => _.startsWith(`${path}/`)) + .map(_ => _.slice(path.length + 1)) + .map(_ => _.split("/")[0])) { + const isDirectory = this.isDirectory(path) + yield { + name, + isDirectory, + isFile: !isDirectory, + } + } + } } /** * Default Browser adapter. */ -export const getBrowserAdapter = (list: FileList): IAdapter => ({ - fs: new FileSystem(list), +export const getBrowserAdapter = (list: FileList): Adapter => ({ + fs: new FS(list), subtle: crypto.subtle, }) diff --git a/packages/opvault.js/src/buffer.ts b/packages/opvault.js/src/buffer.ts new file mode 100644 index 0000000..03265aa --- /dev/null +++ b/packages/opvault.js/src/buffer.ts @@ -0,0 +1,362 @@ +/** + * The buffer module from node.js, for the browser. + * + * @author Feross Aboukhadijeh + * @license MIT + */ +// The MIT License (MIT) +// Copyright (c) 2014 Jameson Little + +const lookup: string[] = [] +const revLookup: number[] = [] + +const alphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/" +for (let i = 0, len = alphabet.length; i < len; ++i) { + lookup[i] = alphabet[i] + revLookup[alphabet.charCodeAt(i)] = i +} + +// Support decoding URL-safe base64 strings, as Node.js does. +// See: https://en.wikipedia.org/wiki/Base64#URL_applications +revLookup[45] = 62 +revLookup[95] = 63 + +function base64ToByteArray(b64: string): Uint8Array { + const { length } = b64 + + if (length % 4 > 0) { + throw new Error("Invalid string. Length must be a multiple of 4") + } + + // Trim off extra bytes after placeholder bytes are found + // See: https://github.com/beatgammit/base64-js/issues/42 + let validLen = b64.indexOf("=") + if (validLen === -1) validLen = length + + const placeHoldersLen = validLen === length ? 0 : 4 - (validLen % 4) + + const arr = new Uint8Array(((validLen + placeHoldersLen) * 3) / 4 - placeHoldersLen) + + let curByte = 0 + + // if there are placeholders, only get up to the last complete 4 chars + const len = placeHoldersLen > 0 ? validLen - 4 : validLen + + let i: number + for (i = 0; i < len; i += 4) { + const tmp = + (revLookup[b64.charCodeAt(i)] << 18) | + (revLookup[b64.charCodeAt(i + 1)] << 12) | + (revLookup[b64.charCodeAt(i + 2)] << 6) | + revLookup[b64.charCodeAt(i + 3)] + arr[curByte++] = (tmp >> 16) & 0xff + arr[curByte++] = (tmp >> 8) & 0xff + arr[curByte++] = tmp & 0xff + } + + if (placeHoldersLen === 2) { + const tmp = + (revLookup[b64.charCodeAt(i)] << 2) | (revLookup[b64.charCodeAt(i + 1)] >> 4) + arr[curByte++] = tmp & 0xff + } + + if (placeHoldersLen === 1) { + const tmp = + (revLookup[b64.charCodeAt(i)] << 10) | + (revLookup[b64.charCodeAt(i + 1)] << 4) | + (revLookup[b64.charCodeAt(i + 2)] >> 2) + arr[curByte++] = (tmp >> 8) & 0xff + arr[curByte++] = tmp & 0xff + } + + return arr +} + +const tripletToBase64 = (num: number) => + lookup[(num >> 18) & 0x3f] + + lookup[(num >> 12) & 0x3f] + + lookup[(num >> 6) & 0x3f] + + lookup[num & 0x3f] + +function encodeChunk(uint8: Uint8Array, start: number, end: number) { + const output: string[] = [] + for (let i = start; i < end; i += 3) { + const tmp = + ((uint8[i] << 16) & 0xff0000) + + ((uint8[i + 1] << 8) & 0xff00) + + (uint8[i + 2] & 0xff) + output.push(tripletToBase64(tmp)) + } + return output.join("") +} + +export function base64FromByteArray(uint8: Uint8Array): string { + let tmp: number + const len = uint8.length + const extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes + const parts = [] + const maxChunkLength = 16383 // must be multiple of 3 + + // go through the array every three bytes, we'll deal with trailing stuff later + for (let i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) { + parts.push( + encodeChunk(uint8, i, i + maxChunkLength > len2 ? len2 : i + maxChunkLength) + ) + } + + // pad the end with zeros, but make sure to not forget the extra bytes + if (extraBytes === 1) { + tmp = uint8[len - 1] + parts.push(lookup[tmp >> 2] + lookup[(tmp << 4) & 0x3f] + "==") + } else if (extraBytes === 2) { + tmp = (uint8[len - 2] << 8) + uint8[len - 1] + parts.push( + lookup[tmp >> 10] + lookup[(tmp >> 4) & 0x3f] + lookup[(tmp << 2) & 0x3f] + "=" + ) + } + + return parts.join("") +} + +export function fromBase64(string: string) { + const { length } = base64ToBytes(string) + let buf = new Uint8Array(length) + + const actual = write(buf, string) + + if (actual !== length) { + // Writing a hex string, for example, that contains invalid characters will + // cause everything after the first invalid character to be ignored. (e.g. + // 'abxxcd' will be treated as 'ab') + buf = buf.slice(0, actual) + } + + return buf +} + +function write(array: Uint8Array, string: string) { + const offset = 0 + let { length } = array + const remaining = array.length - offset + if (length === undefined || length > remaining) length = remaining + + if ((string.length > 0 && (length < 0 || offset < 0)) || offset > array.length) { + throw new RangeError("Attempt to write outside buffer bounds") + } + + return blitBuffer(base64ToBytes(string), array, offset, length) +} + +export function utf8Slice(array: Uint8Array, start = 0, end = array.length) { + end = Math.min(array.length, end) + const res: number[] = [] + + let i = start + while (i < end) { + const firstByte = array[i] + let codePoint = null + let bytesPerSequence = + firstByte > 0xef ? 4 : firstByte > 0xdf ? 3 : firstByte > 0xbf ? 2 : 1 + + if (i + bytesPerSequence <= end) { + let secondByte: number + let thirdByte: number + let fourthByte: number + let tempCodePoint: number + + switch (bytesPerSequence) { + case 1: + if (firstByte < 0x80) { + codePoint = firstByte + } + break + case 2: + secondByte = array[i + 1] + if ((secondByte & 0xc0) === 0x80) { + tempCodePoint = ((firstByte & 0x1f) << 0x6) | (secondByte & 0x3f) + if (tempCodePoint > 0x7f) { + codePoint = tempCodePoint + } + } + break + case 3: + secondByte = array[i + 1] + thirdByte = array[i + 2] + if ((secondByte & 0xc0) === 0x80 && (thirdByte & 0xc0) === 0x80) { + tempCodePoint = + ((firstByte & 0xf) << 0xc) | + ((secondByte & 0x3f) << 0x6) | + (thirdByte & 0x3f) + if ( + tempCodePoint > 0x7ff && + (tempCodePoint < 0xd800 || tempCodePoint > 0xdfff) + ) { + codePoint = tempCodePoint + } + } + break + case 4: + secondByte = array[i + 1] + thirdByte = array[i + 2] + fourthByte = array[i + 3] + if ( + (secondByte & 0xc0) === 0x80 && + (thirdByte & 0xc0) === 0x80 && + (fourthByte & 0xc0) === 0x80 + ) { + tempCodePoint = + ((firstByte & 0xf) << 0x12) | + ((secondByte & 0x3f) << 0xc) | + ((thirdByte & 0x3f) << 0x6) | + (fourthByte & 0x3f) + if (tempCodePoint > 0xffff && tempCodePoint < 0x110000) { + codePoint = tempCodePoint + } + } + } + } + + if (codePoint === null) { + // we did not generate a valid codePoint so insert a + // replacement char (U+FFFD) and advance only 1 byte + codePoint = 0xfffd + bytesPerSequence = 1 + } else if (codePoint > 0xffff) { + // encode to utf16 (surrogate pair dance) + codePoint -= 0x10000 + res.push(((codePoint >>> 10) & 0x3ff) | 0xd800) + codePoint = 0xdc00 | (codePoint & 0x3ff) + } + + res.push(codePoint) + i += bytesPerSequence + } + + return decodeCodePointsArray(res) +} + +// Based on http://stackoverflow.com/a/22747272/680742, the browser with +// the lowest limit is Chrome, with 0x10000 args. +// We go 1 magnitude less, for safety +const MAX_ARGUMENTS_LENGTH = 0x1000 + +function decodeCodePointsArray(codePoints: number[]) { + const len = codePoints.length + if (len <= MAX_ARGUMENTS_LENGTH) { + return String.fromCharCode(...codePoints) // avoid extra slice() + } + + // Decode in chunks to avoid "call stack size exceeded". + let res = "" + let i = 0 + while (i < len) { + res += String.fromCharCode(...codePoints.slice(i, (i += MAX_ARGUMENTS_LENGTH))) + } + return res +} + +/* + * Need to make sure that buffer isn't trying to write out of bounds. + */ +function checkOffset(offset: number, ext: number, length: number) { + if (offset % 1 !== 0 || offset < 0) throw new RangeError("offset is not uint") + if (offset + ext > length) throw new RangeError("Trying to access beyond buffer length") +} + +export function readUInt32BE(array: Uint8Array, offset: number, noAssert?: boolean) { + offset = offset >>> 0 + if (!noAssert) checkOffset(offset, 4, array.length) + + return ( + array[offset] * 0x1000000 + + ((array[offset + 1] << 16) | (array[offset + 2] << 8) | array[offset + 3]) + ) +} + +export function readIntLE( + array: Uint8Array, + offset: number, + byteLength: number, + noAssert?: boolean +) { + offset = offset >>> 0 + byteLength = byteLength >>> 0 + if (!noAssert) checkOffset(offset, byteLength, array.length) + + let val = array[offset] + let mul = 1 + let i = 0 + while (++i < byteLength && (mul *= 0x100)) { + val += array[offset + i] * mul + } + mul *= 0x80 + + if (val >= mul) val -= Math.pow(2, 8 * byteLength) + + return val +} + +function checkInt( + buf: Uint8Array, + value: number, + offset: number, + ext: number, + max: number, + min: number +) { + if (value > max || value < min) { + throw new RangeError('"value" argument is out of bounds') + } + if (offset + ext > buf.length) { + throw new RangeError("Index out of range") + } +} + +export function writeUInt32BE( + array: Uint8Array, + value: number, + offset: number, + noAssert?: boolean +) { + value = +value + offset = offset >>> 0 + if (!noAssert) checkInt(array, value, offset, 4, 0xffffffff, 0) + array[offset] = value >>> 24 + array[offset + 1] = value >>> 16 + array[offset + 2] = value >>> 8 + array[offset + 3] = value & 0xff + return offset + 4 +} + +// HELPER FUNCTIONS +// ================ + +const INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g + +function base64ToBytes(str: string) { + // Node takes equal signs as end of the Base64 encoding + ;[str] = str.split("=") + // Node strips out invalid characters like \n and \t from the string, base64-js does not + str = str.trim().replace(INVALID_BASE64_RE, "") + // Node converts strings with length < 2 to '' + if (str.length < 2) return new Uint8Array() + // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not + while (str.length % 4 !== 0) { + str = str + "=" + } + return base64ToByteArray(str) +} + +function blitBuffer( + src: Uint8Array | number[], + dst: Uint8Array, + offset: number, + length: number +) { + let i: number + for (i = 0; i < length; ++i) { + if (i + offset >= dst.length || i >= src.length) break + dst[i + offset] = src[i] + } + return i +} diff --git a/packages/opvault.js/src/crypto.ts b/packages/opvault.js/src/crypto.ts index ddcb1cd..746df26 100644 --- a/packages/opvault.js/src/crypto.ts +++ b/packages/opvault.js/src/crypto.ts @@ -1,19 +1,18 @@ -import { Buffer } from "buffer" import { decryptData } from "./decipher" -import type { IAdapter } from "./adapter" +import type { Adapter } from "./adapter" import { createEventEmitter } from "./ee" -import { HMACAssertionError } from "./errors" -import type { i18n } from "./i18n" +import { HMACAssertionError, OPVaultError } from "./errors" import type { ItemDetails, Overview, Profile } from "./types" import { setIfAbsent } from "./util" import type { EncryptedItem } from "./models/item" +import { fromBase64, utf8Slice } from "./buffer" /** Encryption and MAC */ export interface Cipher { /** Encryption key */ - key: Buffer + key: Uint8Array /** HMAC key */ - hmac: Buffer + hmac: Uint8Array } export class Crypto { @@ -27,7 +26,7 @@ export class Crypto { readonly onLock = createEventEmitter() - constructor(private readonly i18n: i18n, adapter: IAdapter) { + constructor(adapter: Adapter) { this.subtle = adapter.subtle } @@ -43,7 +42,7 @@ export class Crypto { const derivedKey = await this.subtle.deriveBits( { name: "PBKDF2", - salt: Buffer.from(profile.salt, "base64"), + salt: fromBase64(profile.salt), iterations: profile.iterations, hash: { name: "SHA-512", @@ -53,7 +52,7 @@ export class Crypto { 64 << 3 ) - const cipher = splitPlainText(Buffer.from(derivedKey)) + const cipher = splitPlainText(new Uint8Array(derivedKey)) // Derive master key and overview keys this.#master = await this.decryptKeys(profile.masterKey, cipher) @@ -73,13 +72,9 @@ export class Crypto { this.onLock() } - dispose() { - this.lock() - } - assertUnlocked() { if (this.#locked) { - throw new Error(this.i18n.error.vaultIsLocked) + throw new OPVaultError("This vault is locked", "VAULT_LOCKED") } } @@ -102,22 +97,22 @@ export class Crypto { decryptItemDetails = this.#createWeakCache(async (item: EncryptedItem) => { const cipher = await this.deriveConcreteKey(item) - const detail = await this.decryptOPData(Buffer.from(item.d, "base64"), cipher) - return JSON.parse(detail.toString("utf-8")) as ItemDetails + const detail = await this.decryptOPData(fromBase64(item.d), cipher) + return JSON.parse(utf8Slice(detail)) as ItemDetails }) decryptItemOverview = this.#createCache( (item: EncryptedItem) => item.o, async (o: string) => { - const overview = await this.decryptOPData(Buffer.from(o, "base64"), this.#overview) - return JSON.parse(overview.toString("utf8")) as Overview + const overview = await this.decryptOPData(fromBase64(o), this.#overview) + return JSON.parse(utf8Slice(overview)) as Overview } ) deriveConcreteKey = this.#createCache( (data: { k: string }) => data.k, async ($k: string) => { - const k = Buffer.from($k, "base64") + const k = fromBase64($k) const data = k.slice(0, -32) await this.assertHMac(data, this.#master.hmac, k.slice(-32)) const derivedKey = await this.decryptData( @@ -129,7 +124,7 @@ export class Crypto { } ) - async assertHMac(data: Buffer, key: Buffer, expected: Buffer) { + async assertHMac(data: Uint8Array, key: Uint8Array, expected: Uint8Array) { const cryptoKey = await this.subtle.importKey( "raw", key, @@ -148,7 +143,7 @@ export class Crypto { } } - async decryptOPData(cipherText: Buffer, cipher: Cipher) { + async decryptOPData(cipherText: Uint8Array, cipher: Cipher) { const key = cipherText.slice(0, -32) await this.assertHMac(key, cipher.hmac, cipherText.slice(-32)) @@ -157,17 +152,28 @@ export class Crypto { return plaintext.slice(-size) } - async decryptData(key: Buffer, iv: Buffer, data: Buffer) { - this.subtle - // return createDecipheriv("aes-256-cbc", key, iv).setAutoPadding(false).update(data) + async decryptData(key: Uint8Array, iv: Uint8Array, data: Uint8Array) { + // try { + // const algorithm = { name: "AES-CBC", length: 256, iv } + // const keyCrypto = await this.subtle.importKey("raw", key, algorithm, false, [ + // "decrypt", + // ]) + // console.log("hi", keyCrypto) + // const decrypted = await this.subtle.decrypt(algorithm, keyCrypto, data) + // console.log("decrypted") + // return Buffer.from(decrypted) + // // return createDecipheriv("aes-256-cbc", key, iv).setAutoPadding(false).update(data) + // } catch (e) { + // console.error(e) return decryptData(key, iv, data) + // } } async decryptKeys(encryptedKey: string, derived: Cipher) { - const buffer = Buffer.from(encryptedKey, "base64") + const buffer = fromBase64(encryptedKey) const base = await this.decryptOPData(buffer, derived) const digest = await this.subtle.digest("SHA-512", base) - return splitPlainText(Buffer.from(digest)) + return splitPlainText(new Uint8Array(digest)) } get overview() { @@ -175,11 +181,11 @@ export class Crypto { } } -export const splitPlainText = (derivedKey: Buffer): Cipher => ({ +export const splitPlainText = (derivedKey: Uint8Array): Cipher => ({ key: derivedKey.slice(0, 32), hmac: derivedKey.slice(32, 64), }) -function readUint16({ buffer, byteOffset, length }: Buffer) { +function readUint16({ buffer, byteOffset, length }: Uint8Array) { return new DataView(buffer, byteOffset, length).getUint16(0, true) } diff --git a/packages/opvault.js/src/decipher.ts b/packages/opvault.js/src/decipher.ts index 37eeb95..dd92a3e 100644 --- a/packages/opvault.js/src/decipher.ts +++ b/packages/opvault.js/src/decipher.ts @@ -7,11 +7,12 @@ * | MIT | Crypto-js | (c) 2009-2013 Jeff Mott. | * | MIT | browserify-aes | (c) 2014-2017 browserify-aes contributors | */ -import { Buffer } from "buffer" +import invariant from "tiny-invariant" +import { readUInt32BE, writeUInt32BE } from "./buffer" -function bufferXor(a: Buffer, b: Buffer) { +function bufferXor(a: Uint8Array, b: Uint8Array) { const length = Math.min(a.length, b.length) - const buffer = Buffer.alloc(length) + const buffer = new Uint8Array(length) for (let i = 0; i < length; ++i) { buffer[i] = a[i] ^ b[i] @@ -20,12 +21,12 @@ function bufferXor(a: Buffer, b: Buffer) { return buffer } -function toUInt32Array(buf: Buffer) { +function toUInt32Array(buf: Uint8Array) { const len = (buf.length / 4) | 0 const out: number[] = new Array(len) for (let i = 0; i < len; i++) { - out[i] = buf.readUInt32BE(i * 4) + out[i] = readUInt32BE(buf, i * 4) } return out @@ -177,7 +178,7 @@ class AES { private nRounds!: number private invKeySchedule!: number[] - constructor(key: Buffer) { + constructor(key: Uint8Array) { this.key = toUInt32Array(key) this.reset() } @@ -236,7 +237,7 @@ class AES { this.invKeySchedule = invKeySchedule } - decryptBlock(buffer: Buffer) { + decryptBlock(buffer: Uint8Array) { const M = toUInt32Array(buffer) // swap @@ -246,11 +247,11 @@ class AES { const out = cryptBlock(M, this.invKeySchedule, G.invSubMix, G.invSBox, this.nRounds) - const buf = Buffer.allocUnsafe(16) - buf.writeUInt32BE(out[0], 0) - buf.writeUInt32BE(out[3], 4) - buf.writeUInt32BE(out[2], 8) - buf.writeUInt32BE(out[1], 12) + const buf = new Uint8Array(16) + writeUInt32BE(buf, out[0], 0) + writeUInt32BE(buf, out[3], 4) + writeUInt32BE(buf, out[2], 8) + writeUInt32BE(buf, out[1], 12) return buf } @@ -258,44 +259,42 @@ class AES { static keySize = 256 / 8 } -function splitter() { - let cache = Buffer.allocUnsafe(0) - return { - add(data: Buffer) { - cache = Buffer.concat([cache, data]) - return this - }, - get() { - if (cache.length >= 16) { - const out = cache.slice(0, 16) - cache = cache.slice(16) - return out - } - return null - }, +const splitter = (data: Uint8Array) => () => { + if (data.length >= 16) { + const out = data.slice(0, 16) + data = data.slice(16) + return out } + return null } // AES-256-CBC // == createDecipheriv("aes-256-cbc", key, iv).setAutoPadding(false).update(data) -export function decryptData(key: Buffer, iv: Buffer, data: Buffer) { - if (iv.length !== 16) { - throw new TypeError(`invalid iv length ${iv.length}`) - } - if (key.length !== 32) { - throw new TypeError(`invalid key length ${key.length}`) - } +export function decryptData(key: Uint8Array, iv: Uint8Array, data: Uint8Array) { + invariant(iv.length === 16, `invalid iv length ${iv.length}`) + invariant(key.length === 32, `invalid key length ${key.length}`) const cipher = new AES(key) - let prev = Buffer.from(iv) - const cache = splitter().add(data) - let chunk: Buffer | null - const res: Buffer[] = [] - while ((chunk = cache.get())) { + let prev = iv + const readChunk = splitter(data) + let chunk: Uint8Array | null + const res: Uint8Array[] = [] + let totalLength = 0 + + while ((chunk = readChunk())) { const pad = prev prev = chunk const out = cipher.decryptBlock(chunk) - res.push(bufferXor(out, pad)) + const array = bufferXor(out, pad) + res.push(array) + totalLength += array.length } - return Buffer.concat(res) + + const result = new Uint8Array(totalLength) + let offset = 0 + for (const array of res) { + result.set(array, offset) + offset += array.length + } + return result } diff --git a/packages/opvault.js/src/ee.ts b/packages/opvault.js/src/ee.ts index dec6212..1668455 100644 --- a/packages/opvault.js/src/ee.ts +++ b/packages/opvault.js/src/ee.ts @@ -9,9 +9,6 @@ export function createEventEmitter() { function emitter(value: T | EventListener) { if (typeof value === "function") { listeners.add(value as EventListener) - return () => { - listeners.delete(value as EventListener) - } } else { listeners.forEach(fn => fn(value)) } diff --git a/packages/opvault.js/src/errors.ts b/packages/opvault.js/src/errors.ts index 5376167..e082350 100644 --- a/packages/opvault.js/src/errors.ts +++ b/packages/opvault.js/src/errors.ts @@ -1,6 +1,10 @@ -export abstract class OPVaultError extends Error {} +export class OPVaultError extends Error { + constructor(message?: string, readonly code?: string) { + super(message) + } +} -export class AssertionError extends OPVaultError {} +class AssertionError extends OPVaultError {} export class HMACAssertionError extends AssertionError {} diff --git a/packages/opvault.js/src/fs.ts b/packages/opvault.js/src/fs.ts index c7570f3..c54b66b 100644 --- a/packages/opvault.js/src/fs.ts +++ b/packages/opvault.js/src/fs.ts @@ -1,12 +1,12 @@ import { resolve, extname, basename } from "path" import invariant from "tiny-invariant" -import type { IFileSystem } from "./adapter" +import type { FileSystem } from "./adapter" import { once } from "./util" export type OnePasswordFileManager = ReturnType export async function OnePasswordFileManager( - fs: IFileSystem, + fs: FileSystem, path: string, profileName: string ) { @@ -18,49 +18,48 @@ export async function OnePasswordFileManager( const result = { getProfile() { - return fs.readFile(abs("profile.js")) + return fs.readTextFile(abs("profile.js")) }, getFolders() { - return fs.readFile(abs("folders.js")) + return fs.readTextFile(abs("folders.js")) }, - async getAttachments() { - const files = await fs.readdir(root) - return files - .filter(name => extname(name) === ".attachment") - .map(name => { - const sep = name.indexOf("_") - const path = resolve(root, name) - const [itemUUID, fileUUID] = [ - name.slice(0, sep), - basename(name.slice(sep + 1), extname(name)), - ] - return { - itemUUID, - fileUUID, - getFile: once(() => fs.readBuffer(path)), - } - }) + async *getAttachments() { + for await (const { name } of fs.readDir(root)) { + if (extname(name) !== ".attachment") continue + + const sep = name.indexOf("_") + const path = resolve(root, name) + const [itemUUID, fileUUID] = [ + name.slice(0, sep), + basename(name.slice(sep + 1), extname(name)), + ] + yield { + itemUUID, + fileUUID, + getFile: once(() => fs.readFile(path)), + } + } }, async getBand(name: string) { const path = abs(`band_${name}.js`) if (await fs.exists(path)) { - return await fs.readFile(path) + return await fs.readTextFile(path) } }, async setProfile(profile: string) { - await fs.writeFile("profile.js", profile) + await fs.writeTextFile("profile.js", profile) }, async setFolders(folders: string) { - await fs.writeFile("folders.js", folders) + await fs.writeTextFile("folders.js", folders) }, async setBand(name: string, band: string) { - await fs.writeFile(`band_${name}.js`, band) + await fs.writeTextFile(`band_${name}.js`, band) }, } return result diff --git a/packages/opvault.js/src/i18n/index.ts b/packages/opvault.js/src/i18n/index.ts deleted file mode 100644 index 297a554..0000000 --- a/packages/opvault.js/src/i18n/index.ts +++ /dev/null @@ -1,25 +0,0 @@ -import json from "./res.json" - -const [locale] = Intl.DateTimeFormat().resolvedOptions().locale.split("-") - -const mapValue = ( - object: Record, - fn: (value: T, key: string) => R -): Record => { - const res = Object.create(null) - Object.entries(object).forEach(([key, value]) => { - res[key] = fn(value, key) - }) - return res -} - -type json = typeof json -export type i18n = { - [K in keyof json]: { - [L in keyof json[K]]: string - } -} - -export const i18n: i18n = mapValue(json, dict => - mapValue(dict, (value: any) => value[locale] ?? value.en) -) as any diff --git a/packages/opvault.js/src/i18n/res.json b/packages/opvault.js/src/i18n/res.json deleted file mode 100644 index 578dd41..0000000 --- a/packages/opvault.js/src/i18n/res.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "error": { - "invalidPassword": { - "en": "Invalid password", - "fr": "Mot de passe invalide" - }, - "vaultIsLocked": { - "en": "This vault is locked", - "fr": "Ce coffre est verrouillé." - }, - "cannotDecryptOverviewItem": { - "en": "Failed to decrypt overview item", - "fr": "Impossible de déchiffrer cet aperçu" - } - } -} diff --git a/packages/opvault.js/src/index.ts b/packages/opvault.js/src/index.ts index 085fbe9..49d40c1 100644 --- a/packages/opvault.js/src/index.ts +++ b/packages/opvault.js/src/index.ts @@ -1,7 +1,6 @@ import { resolve } from "path" import { Vault } from "./models/vault" -import type { IAdapter } from "./adapter" -import { asyncMap } from "./util" +import type { Adapter } from "./adapter" export type { Vault } from "./models/vault" export type { Item } from "./models/item" @@ -9,6 +8,8 @@ export type { Attachment, AttachmentMetadata } from "./models/attachment" export type { ItemField, ItemSection } from "./types" export { Category, FieldType } from "./models" +export type { Adapter as IAdapter } from "./adapter/index" + interface IOptions { /** * Path to `.opvault` directory @@ -18,22 +19,33 @@ interface IOptions { /** * Adapter used to interact with the file system and cryptography modules */ - adapter?: IAdapter | Promise + adapter: Adapter | Promise } /** * OnePassword instance + * @example + * ```ts + * import { OnePassword } from "opvault.js" + * import { adapter } from "opvault.js/src/adapter/node" + * + * const op = new OnePassword({ + * path: "/path/to/1password/vault", + * adapter, + * }) + * + * const profileNames = await op.getProfileNames() + * const vault = await op.getProfile(profileNames[0]) + * const item = await vault.getItemByTitle("My Login") + * ``` */ export class OnePassword { readonly #path: string - readonly #adapter: IAdapter | Promise + readonly #adapter: Adapter | Promise - constructor({ - path, - adapter = process.browser ? null! : require("./adapter").nodeAdapter, - }: IOptions) { - this.#adapter = adapter - this.#path = path + constructor(options: IOptions) { + this.#adapter = options.adapter + this.#path = options.path } /** @@ -41,17 +53,15 @@ export class OnePassword { */ async getProfileNames() { const { fs } = await this.#adapter - const children = await fs.readdir(this.#path) const profiles: string[] = [] - await asyncMap(children, async child => { - const fullPath = resolve(this.#path, child) - if ( - (await fs.isDirectory(fullPath)) && - (await fs.exists(resolve(fullPath, "profile.js"))) - ) { - profiles.push(child) + + for await (const { name, isDirectory } of fs.readDir(this.#path)) { + const fullPath = resolve(this.#path, name) + if (isDirectory && (await fs.exists(resolve(fullPath, "profile.js")))) { + profiles.push(name) } - }) + } + return profiles } diff --git a/packages/opvault.js/src/models/attachment.ts b/packages/opvault.js/src/models/attachment.ts index 1f9ef41..ff7d84d 100644 --- a/packages/opvault.js/src/models/attachment.ts +++ b/packages/opvault.js/src/models/attachment.ts @@ -1,6 +1,6 @@ -import { Buffer } from "buffer" import type { Crypto } from "../crypto" import { invariant } from "../errors" +import { fromBase64, readIntLE, utf8Slice } from "../buffer" type integer = number @@ -21,22 +21,22 @@ export interface AttachmentMetadata { export class Attachment { #k: string #crypto: Crypto - #buffer: Buffer + #buffer: Uint8Array - #icon?: Buffer // png buffer - #file?: Buffer + #icon?: Uint8Array // png buffer + #file?: Uint8Array #metadata?: AttachmentMetadata private metadataSize: number private iconSize: number - constructor(crypto: Crypto, k: string, buffer: Buffer) { + constructor(crypto: Crypto, k: string, buffer: Uint8Array) { this.#buffer = buffer this.#validate() this.#crypto = crypto this.#k = k - this.metadataSize = buffer.readIntLE(8, 2) - this.iconSize = buffer.readIntLE(12, 3) + this.metadataSize = readIntLE(buffer, 8, 2) + this.iconSize = readIntLE(buffer, 12, 3) crypto.onLock(() => { this.#lock() @@ -49,13 +49,13 @@ export class Attachment { #validate() { const file = this.#buffer invariant( - file.slice(0, 6).toString("utf-8") === "OPCLDA", + utf8Slice(file.slice(0, 6)) === "OPCLDA", "Attachment must start with OPCLDA" ) // @TODO: Re-enable this false && invariant( - file.readIntLE(7, 1) === 1, + readIntLE(file, 7, 1) === 1, "The version for this attachment file format is not supported." ) } @@ -86,14 +86,11 @@ export class Attachment { cipher ) - const metadata = JSON.parse(buffer.slice(16, 16 + metadataSize).toString("utf-8")) + const metadata = JSON.parse(utf8Slice(buffer.slice(16, 16 + metadataSize))) metadata.overview = JSON.parse( - ( - await crypto.decryptOPData( - Buffer.from(metadata.overview, "base64"), - crypto.overview - ) - ).toString() + utf8Slice( + await crypto.decryptOPData(fromBase64(metadata.overview), crypto.overview) + ) ) this.#metadata = metadata } diff --git a/packages/opvault.js/src/models/item.ts b/packages/opvault.js/src/models/item.ts index 7be6127..b983bb4 100644 --- a/packages/opvault.js/src/models/item.ts +++ b/packages/opvault.js/src/models/item.ts @@ -93,7 +93,7 @@ export class Item { } /** @internal */ - addAttachment(buffer: Buffer) { + addAttachment(buffer: Uint8Array) { this.attachments.push(new Attachment(this.#crypto, this.#data.k, buffer)) } } diff --git a/packages/opvault.js/src/models/vault.ts b/packages/opvault.js/src/models/vault.ts index 32c5efb..bcafe67 100644 --- a/packages/opvault.js/src/models/vault.ts +++ b/packages/opvault.js/src/models/vault.ts @@ -1,7 +1,6 @@ -import type { IAdapter } from "../adapter" -import { HMACAssertionError, invariant } from "../errors" +import type { Adapter } from "../adapter" +import { HMACAssertionError, OPVaultError, invariant } from "../errors" import { OnePasswordFileManager } from "../fs" -import { i18n } from "../i18n" import type { EncryptedItem } from "./item" import { Crypto } from "../crypto" import { Item } from "./item" @@ -21,7 +20,7 @@ export class Vault { #itemsMap = new WeakValueMap() #crypto: Crypto - readonly onLock = createEventEmitter() + readonly #onLock = createEventEmitter() private constructor( profile: Profile, @@ -41,8 +40,8 @@ export class Vault { * Create a new OnePassword Vault instance and read all bands. * @internal */ - static async of(path: string, profileName = "default", adapter: IAdapter) { - const crypto = new Crypto(i18n, adapter) + static async of(path: string, profileName = "default", adapter: Adapter) { + const crypto = new Crypto(adapter) const files = await OnePasswordFileManager(adapter.fs, path, profileName) const profile = JSON.parse( stripText(await files.getProfile(), /^var profile\s*=/, ";") @@ -66,8 +65,7 @@ export class Vault { } } - const attachments = await files.getAttachments() - for (const att of attachments) { + for await (const att of files.getAttachments()) { const file = itemsMap.get(att.itemUUID) invariant(file, `Item ${att.itemUUID} of attachment does not exist`) file.addAttachment(await att.getFile()) @@ -76,6 +74,9 @@ export class Vault { return new Vault(profile, bands, crypto, itemsMap) } + /** + * Returns the overview of an item given the `uuid`. + */ getOverview(uuid: string) { this.#crypto.assertUnlocked() return this.#items.find(x => x.uuid === uuid)?.overview @@ -102,7 +103,7 @@ export class Vault { await this.#crypto.unlock(this.#profile, masterPassword) } catch (e) { if (e instanceof HMACAssertionError) { - throw new Error(i18n.error.invalidPassword) + throw new OPVaultError("Invalid password", "INVALID_PASSWORD") } throw e } @@ -114,7 +115,7 @@ export class Vault { */ lock() { this.#crypto.lock() - this.onLock() + this.#onLock() return this } @@ -122,7 +123,14 @@ export class Vault { return this.#crypto.locked } + /** + * Returns the item with the given `uuid` + */ getItem(uuid: string): Promise + + /** + * Returns the first item with the given title + */ getItem(filter: { title: string }): Promise async getItem(filter: any) { diff --git a/packages/web/src/electron/ipc-types.d.ts b/packages/web/src/electron/ipc-types.d.ts index fd583e3..d69f24c 100644 --- a/packages/web/src/electron/ipc-types.d.ts +++ b/packages/web/src/electron/ipc-types.d.ts @@ -1,9 +1,10 @@ +import type { DirEntry } from "opvault.js/src/adapter" + export interface IPC { showDirectoryPicker(): Promise pathExists(path: string): Promise - readdir(path: string): Promise - readBuffer(path: string): Promise - readFile(path: string): Promise + readDir(path: string): Promise + readFile(path: string): Promise + readTextFile(path: string): Promise writeFile(path: string, data: string): Promise - isDirectory(path: string): Promise } diff --git a/packages/web/src/electron/ipc.ts b/packages/web/src/electron/ipc.ts index 0f94320..f7dcaf3 100644 --- a/packages/web/src/electron/ipc.ts +++ b/packages/web/src/electron/ipc.ts @@ -1,5 +1,7 @@ import fs, { promises } from "fs" import { ipcMain, dialog } from "electron" +import { adapter } from "opvault.js/src/adapter/node" +import type { DirEntry } from "opvault.js/src/adapter" import type { IPC } from "./ipc-types" registerService({ @@ -15,11 +17,11 @@ registerService({ return fs.existsSync(path) }, - async readBuffer(_, path) { + async readFile(_, path) { return promises.readFile(path) }, - async readFile(_, path) { + async readTextFile(_, path) { return promises.readFile(path, "utf-8") }, @@ -27,13 +29,12 @@ registerService({ await promises.writeFile(path, content) }, - async readdir(_, path) { - return promises.readdir(path) - }, - - async isDirectory(_, path) { - const stats = await promises.stat(path) - return stats.isDirectory() + async readDir(_, path) { + const entries: DirEntry[] = [] + for await (const dirent of adapter.fs.readDir(path)) { + entries.push(dirent) + } + return entries }, }) diff --git a/packages/web/src/utils/ipc-adapter.ts b/packages/web/src/utils/ipc-adapter.ts index eb51be4..ce75ca5 100644 --- a/packages/web/src/utils/ipc-adapter.ts +++ b/packages/web/src/utils/ipc-adapter.ts @@ -1,5 +1,4 @@ -import { Buffer } from "buffer" -import type { IAdapter } from "opvault.js/src/adapters" +import type { Adapter } from "opvault.js/src/adapter" import type { IPC } from "../electron/ipc-types" import { memoize } from "./memoize" @@ -9,14 +8,15 @@ export async function openDirectory() { return ipc.showDirectoryPicker() } -export const electronAdapter: IAdapter = { +export const electronAdapter: Adapter = { fs: { exists: path => ipc.pathExists(path), - readBuffer: path => ipc.readBuffer(path).then(Buffer.from), readFile: path => ipc.readFile(path), - readdir: path => ipc.readdir(path), - writeFile: (path, data) => ipc.writeFile(path, data), - isDirectory: path => ipc.isDirectory(path), + readTextFile: path => ipc.readTextFile(path), + async *readDir(path) { + yield* await ipc.readDir(path) + }, + writeTextFile: (path, data) => ipc.writeFile(path, data), }, subtle: crypto.subtle, } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 9c974bf..24da7b1 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1,223 +1,267 @@ -lockfileVersion: 5.3 +lockfileVersion: '6.0' importers: .: - specifiers: - '@types/chai': ^4.3.0 - '@types/chai-as-promised': ^7.1.5 - '@types/fs-extra': ^9.0.13 - '@types/mocha': github:whitecolor/mocha-types#da22474cf43f48a56c86f8c23a5a0ea36e295768 - '@types/node': ^17.0.23 - '@types/sinon': ^10.0.11 - '@types/sinon-chai': ^3.2.8 - '@types/wicg-file-system-access': ^2020.9.5 - '@typescript-eslint/eslint-plugin': 5.17.0 - '@typescript-eslint/parser': 5.17.0 - chai: ^4.3.6 - chai-as-promised: ^7.1.1 - chalk: ^4.1.2 - eslint: 8.12.0 - eslint-config-prettier: 8.5.0 - eslint-import-resolver-typescript: 2.7.0 - eslint-plugin-import: 2.25.4 - eslint-plugin-react: 7.29.4 - eslint-plugin-react-hooks: 4.4.0 - fs-extra: ^10.0.1 - marked: ^4.0.12 - mocha: ^9.2.2 - mochawesome: ^7.1.3 - prettier: ^2.6.2 - react: ^17.0.2 - react-dom: ^17.0.2 - sass: ^1.49.11 - sinon: ^13.0.1 - sinon-chai: ^3.7.0 - ts-node: ^10.7.0 - tsconfig-paths: ^3.14.1 - tslib: ^2.3.1 - typescript: ^4.6.3 devDependencies: - '@types/chai': 4.3.0 - '@types/chai-as-promised': 7.1.5 - '@types/fs-extra': 9.0.13 - '@types/mocha': github.com/whitecolor/mocha-types/da22474cf43f48a56c86f8c23a5a0ea36e295768 - '@types/node': 17.0.23 - '@types/sinon': 10.0.11 - '@types/sinon-chai': 3.2.8 - '@types/wicg-file-system-access': 2020.9.5 - '@typescript-eslint/eslint-plugin': 5.17.0_689ff565753ecf7c3328c07fad067df5 - '@typescript-eslint/parser': 5.17.0_eslint@8.12.0+typescript@4.6.3 - chai: 4.3.6 - chai-as-promised: 7.1.1_chai@4.3.6 - chalk: 4.1.2 - eslint: 8.12.0 - eslint-config-prettier: 8.5.0_eslint@8.12.0 - eslint-import-resolver-typescript: 2.7.0_dae71b730d6620b67a20047a747b2eda - eslint-plugin-import: 2.25.4_eslint@8.12.0 - eslint-plugin-react: 7.29.4_eslint@8.12.0 - eslint-plugin-react-hooks: 4.4.0_eslint@8.12.0 - fs-extra: 10.0.1 - marked: 4.0.12 - mocha: 9.2.2 - mochawesome: 7.1.3_mocha@9.2.2 - prettier: 2.6.2 - react: 17.0.2 - react-dom: 17.0.2_react@17.0.2 - sass: 1.49.11 - sinon: 13.0.1 - sinon-chai: 3.7.0_chai@4.3.6+sinon@13.0.1 - ts-node: 10.7.0_ee885bc7281b682b6adbed6ae09ee090 - tsconfig-paths: 3.14.1 - tslib: 2.3.1 - typescript: 4.6.3 + '@types/chai': + specifier: ^4.3.4 + version: 4.3.4 + '@types/chai-as-promised': + specifier: ^7.1.5 + version: 7.1.5 + '@types/fs-extra': + specifier: ^11.0.1 + version: 11.0.1 + '@types/mocha': + specifier: github:whitecolor/mocha-types#da22474cf43f48a56c86f8c23a5a0ea36e295768 + version: github.com/whitecolor/mocha-types/da22474cf43f48a56c86f8c23a5a0ea36e295768 + '@types/node': + specifier: ^18.16.2 + version: 18.16.2 + '@types/sinon': + specifier: ^10.0.14 + version: 10.0.14 + '@types/sinon-chai': + specifier: ^3.2.9 + version: 3.2.9 + '@types/wicg-file-system-access': + specifier: ^2020.9.5 + version: 2020.9.5 + '@typescript-eslint/eslint-plugin': + specifier: 5.59.1 + version: 5.59.1(@typescript-eslint/parser@5.59.1)(eslint@8.39.0)(typescript@5.0.4) + '@typescript-eslint/parser': + specifier: 5.59.1 + version: 5.59.1(eslint@8.39.0)(typescript@5.0.4) + c8: + specifier: ^7.13.0 + version: 7.13.0 + chai: + specifier: ^4.3.7 + version: 4.3.7 + chai-as-promised: + specifier: ^7.1.1 + version: 7.1.1(chai@4.3.7) + chalk: + specifier: ^4.1.2 + version: 4.1.2 + eslint: + specifier: 8.39.0 + version: 8.39.0 + eslint-config-prettier: + specifier: 8.8.0 + version: 8.8.0(eslint@8.39.0) + eslint-import-resolver-typescript: + specifier: 3.5.5 + version: 3.5.5(@typescript-eslint/parser@5.59.1)(eslint-plugin-import@2.27.5)(eslint@8.39.0) + eslint-plugin-import: + specifier: 2.27.5 + version: 2.27.5(@typescript-eslint/parser@5.59.1)(eslint-import-resolver-typescript@3.5.5)(eslint@8.39.0) + eslint-plugin-react: + specifier: 7.32.2 + version: 7.32.2(eslint@8.39.0) + eslint-plugin-react-hooks: + specifier: 4.6.0 + version: 4.6.0(eslint@8.39.0) + fs-extra: + specifier: ^11.1.1 + version: 11.1.1 + marked: + specifier: ^4.3.0 + version: 4.3.0 + mocha: + specifier: ^10.2.0 + version: 10.2.0 + mochawesome: + specifier: ^7.1.3 + version: 7.1.3(mocha@10.2.0) + prettier: + specifier: ^2.8.8 + version: 2.8.8 + react: + specifier: ^18.2.0 + version: 18.2.0 + react-dom: + specifier: ^18.2.0 + version: 18.2.0(react@18.2.0) + sass: + specifier: ^1.62.1 + version: 1.62.1 + sinon: + specifier: ^15.0.4 + version: 15.0.4 + sinon-chai: + specifier: ^3.7.0 + version: 3.7.0(chai@4.3.7)(sinon@15.0.4) + ts-node: + specifier: ^10.9.1 + version: 10.9.1(@types/node@18.16.2)(typescript@5.0.4) + tsconfig-paths: + specifier: ^4.2.0 + version: 4.2.0 + tslib: + specifier: ^2.5.0 + version: 2.5.0 + typescript: + specifier: ^5.0.4 + version: 5.0.4 packages/adapters: - specifiers: - opvault.js: '*' dependencies: - opvault.js: link:../opvault.js + opvault.js: + specifier: '*' + version: link:../opvault.js packages/opvault.js: - specifiers: - '@rollup/plugin-json': ^4.1.0 - '@rollup/plugin-replace': ^3.0.0 - buffer: ^6.0.3 - prettier: ^2.5.1 - rollup: ^2.61.1 - rollup-plugin-ts: ^2.0.4 - tiny-invariant: 1.2.0 - tslib: 2.3.1 - typedoc: ^0.22.10 dependencies: - buffer: 6.0.3 - tiny-invariant: 1.2.0 - tslib: 2.3.1 + buffer: + specifier: ^6.0.3 + version: 6.0.3 + tiny-invariant: + specifier: 1.3.1 + version: 1.3.1 + tslib: + specifier: 2.5.0 + version: 2.5.0 devDependencies: - '@rollup/plugin-json': 4.1.0_rollup@2.70.1 - '@rollup/plugin-replace': 3.1.0_rollup@2.70.1 - prettier: 2.6.2 - rollup: 2.70.1 - rollup-plugin-ts: 2.0.5_rollup@2.70.1+typescript@4.6.3 - typedoc: 0.22.13_typescript@4.6.3 + '@rollup/plugin-json': + specifier: ^6.0.0 + version: 6.0.0(rollup@3.21.0) + '@rollup/plugin-replace': + specifier: ^5.0.2 + version: 5.0.2(rollup@3.21.0) + prettier: + specifier: ^2.8.8 + version: 2.8.8 + rollup: + specifier: ^3.21.0 + version: 3.21.0 + rollup-plugin-ts: + specifier: ^3.2.0 + version: 3.2.0(rollup@3.21.0)(typescript@4.6.4) + typedoc: + specifier: ^0.24.6 + version: 0.24.6(typescript@4.6.4) packages/web: - specifiers: - '@babel/core': ^7.17.5 - '@emotion/babel-plugin': ^11.7.2 - '@emotion/css': ^11.7.1 - '@emotion/react': ^11.8.1 - '@emotion/styled': ^11.8.1 - '@rollup/plugin-yaml': ^3.1.0 - '@types/babel__core': ^7.1.18 - '@types/lodash-es': ^4.17.6 - '@types/react': ^17.0.39 - '@types/react-dom': ^17.0.11 - '@vitejs/plugin-react': ^1.2.0 - buffer: ^6.0.3 - concurrently: ^7.0.0 - electron: ^17.0.1 - electron-builder: ^22.14.13 - esbuild: ^0.14.23 - js-yaml: ^4.1.0 - lodash: ^4.17.21 - lodash-es: ^4.17.21 - opvault.js: '*' - path-browserify: ^1.0.1 - react: ^17.0.2 - react-dom: ^17.0.2 - react-icons: ^4.3.1 - react-idle-timer: 4.6.4 - sass: ^1.49.8 - typescript: ^4.5.5 - vite: ^2.8.4 dependencies: - '@emotion/css': 11.7.1_@babel+core@7.17.8 - '@emotion/react': 11.8.2_c1cf67fb40c16c390126f300fc197413 - '@emotion/styled': 11.8.1_9e1aa84c2920c31b9f962a733ba5a2b4 - buffer: 6.0.3 - lodash-es: 4.17.21 - path-browserify: 1.0.1 - react: 17.0.2 - react-dom: 17.0.2_react@17.0.2 - react-icons: 4.3.1_react@17.0.2 - react-idle-timer: 4.6.4_react-dom@17.0.2+react@17.0.2 + '@emotion/css': + specifier: ^11.7.1 + version: 11.7.1(@babel/core@7.17.8) + '@emotion/react': + specifier: ^11.8.1 + version: 11.8.2(@babel/core@7.17.8)(@types/react@17.0.43)(react@17.0.2) + '@emotion/styled': + specifier: ^11.8.1 + version: 11.8.1(@babel/core@7.17.8)(@emotion/react@11.8.2)(@types/react@17.0.43)(react@17.0.2) + buffer: + specifier: ^6.0.3 + version: 6.0.3 + lodash-es: + specifier: ^4.17.21 + version: 4.17.21 + path-browserify: + specifier: ^1.0.1 + version: 1.0.1 + react: + specifier: ^17.0.2 + version: 17.0.2 + react-dom: + specifier: ^17.0.2 + version: 17.0.2(react@17.0.2) + react-icons: + specifier: ^4.3.1 + version: 4.3.1(react@17.0.2) + react-idle-timer: + specifier: 4.6.4 + version: 4.6.4(prop-types@15.8.1)(react-dom@17.0.2)(react@17.0.2) devDependencies: - '@babel/core': 7.17.8 - '@emotion/babel-plugin': 11.7.2_@babel+core@7.17.8 - '@rollup/plugin-yaml': 3.1.0 - '@types/babel__core': 7.1.19 - '@types/lodash-es': 4.17.6 - '@types/react': 17.0.43 - '@types/react-dom': 17.0.14 - '@vitejs/plugin-react': 1.3.0 - concurrently: 7.1.0 - electron: 17.3.1 - electron-builder: 22.14.13 - esbuild: 0.14.30 - js-yaml: 4.1.0 - lodash: 4.17.21 - opvault.js: link:../opvault.js - sass: 1.49.11 - typescript: 4.6.3 - vite: 2.9.1_sass@1.49.11 - - packages/web/dist: - specifiers: - '@emotion/css': ^11.7.1 - '@emotion/react': ^11.8.1 - '@emotion/styled': ^11.8.1 - buffer: ^6.0.3 - lodash-es: ^4.17.21 - path-browserify: ^1.0.1 - react: ^17.0.2 - react-dom: ^17.0.2 - react-icons: ^4.3.1 - react-idle-timer: 4.6.4 - dependencies: - '@emotion/css': 11.7.1 - '@emotion/react': 11.8.2_react@17.0.2 - '@emotion/styled': 11.8.1_fa30c4a31333a43d23a4fe708e0dc178 - buffer: 6.0.3 - lodash-es: 4.17.21 - path-browserify: 1.0.1 - react: 17.0.2 - react-dom: 17.0.2_react@17.0.2 - react-icons: 4.3.1_react@17.0.2 - react-idle-timer: 4.6.4_react-dom@17.0.2+react@17.0.2 + '@babel/core': + specifier: ^7.17.5 + version: 7.17.8 + '@emotion/babel-plugin': + specifier: ^11.7.2 + version: 11.7.2(@babel/core@7.17.8) + '@rollup/plugin-yaml': + specifier: ^3.1.0 + version: 3.1.0(rollup@2.79.1) + '@types/babel__core': + specifier: ^7.1.18 + version: 7.1.19 + '@types/lodash-es': + specifier: ^4.17.6 + version: 4.17.6 + '@types/react': + specifier: ^17.0.39 + version: 17.0.43 + '@types/react-dom': + specifier: ^17.0.11 + version: 17.0.14 + '@vitejs/plugin-react': + specifier: ^1.2.0 + version: 1.3.0 + concurrently: + specifier: ^7.0.0 + version: 7.1.0 + electron: + specifier: ^17.0.1 + version: 17.3.1 + electron-builder: + specifier: ^22.14.13 + version: 22.14.13 + esbuild: + specifier: ^0.14.23 + version: 0.14.30 + js-yaml: + specifier: ^4.1.0 + version: 4.1.0 + lodash: + specifier: ^4.17.21 + version: 4.17.21 + opvault.js: + specifier: '*' + version: link:../opvault.js + sass: + specifier: ^1.49.8 + version: 1.49.11 + typescript: + specifier: ^4.5.5 + version: 4.6.3 + vite: + specifier: ^2.8.4 + version: 2.9.1(sass@1.49.11) packages: - /7zip-bin/5.1.1: + /7zip-bin@5.1.1: resolution: {integrity: sha512-sAP4LldeWNz0lNzmTird3uWfFDWWTeg6V/MsmyyLR9X1idwKBWIgt/ZvinqQldJm3LecKEs1emkbquO6PCiLVQ==} dev: true - /@ampproject/remapping/2.1.2: + /@ampproject/remapping@2.1.2: resolution: {integrity: sha512-hoyByceqwKirw7w3Z7gnIIZC3Wx3J484Y3L/cMpXFbr7d9ZQj2mODrirNzcJa+SM3UlpWXYvKV4RlRpFXlWgXg==} engines: {node: '>=6.0.0'} dependencies: - '@jridgewell/trace-mapping': 0.3.4 - dev: true + '@jridgewell/trace-mapping': 0.3.18 - /@babel/code-frame/7.16.7: + /@babel/code-frame@7.16.7: resolution: {integrity: sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==} engines: {node: '>=6.9.0'} dependencies: '@babel/highlight': 7.16.10 - /@babel/compat-data/7.17.7: + /@babel/compat-data@7.17.7: resolution: {integrity: sha512-p8pdE6j0a29TNGebNm7NzYZWB3xVZJBZ7XGs42uAKzQo8VQ3F0By/cQCtUEABwIqw5zo6WA4NbmxsfzADzMKnQ==} engines: {node: '>=6.9.0'} - dev: true - /@babel/core/7.17.8: + /@babel/core@7.17.8: resolution: {integrity: sha512-OdQDV/7cRBtJHLSOBqqbYNkOcydOgnX59TZx4puf41fzcVtN3e/4yqY8lMQsK+5X2lJtAdmA+6OHqsj1hBJ4IQ==} engines: {node: '>=6.9.0'} dependencies: '@ampproject/remapping': 2.1.2 '@babel/code-frame': 7.16.7 '@babel/generator': 7.17.7 - '@babel/helper-compilation-targets': 7.17.7_@babel+core@7.17.8 + '@babel/helper-compilation-targets': 7.17.7(@babel/core@7.17.8) '@babel/helper-module-transforms': 7.17.7 '@babel/helpers': 7.17.8 '@babel/parser': 7.17.8 @@ -225,31 +269,29 @@ packages: '@babel/traverse': 7.17.3 '@babel/types': 7.17.0 convert-source-map: 1.8.0 - debug: 4.3.4 + debug: 4.3.4(supports-color@8.1.1) gensync: 1.0.0-beta.2 json5: 2.2.1 semver: 6.3.0 transitivePeerDependencies: - supports-color - dev: true - /@babel/generator/7.17.7: + /@babel/generator@7.17.7: resolution: {integrity: sha512-oLcVCTeIFadUoArDTwpluncplrYBmTCCZZgXCbgNGvOBBiSDDK3eWO4b/+eOTli5tKv1lg+a5/NAXg+nTcei1w==} engines: {node: '>=6.9.0'} dependencies: '@babel/types': 7.17.0 jsesc: 2.5.2 source-map: 0.5.7 - dev: true - /@babel/helper-annotate-as-pure/7.16.7: + /@babel/helper-annotate-as-pure@7.16.7: resolution: {integrity: sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw==} engines: {node: '>=6.9.0'} dependencies: '@babel/types': 7.17.0 dev: true - /@babel/helper-compilation-targets/7.17.7_@babel+core@7.17.8: + /@babel/helper-compilation-targets@7.17.7(@babel/core@7.17.8): resolution: {integrity: sha512-UFzlz2jjd8kroj0hmCFV5zr+tQPi1dpC2cRsDV/3IEW8bJfCPrPpmcSN6ZS8RqIq4LXcmpipCQFPddyFA5Yc7w==} engines: {node: '>=6.9.0'} peerDependencies: @@ -260,45 +302,40 @@ packages: '@babel/helper-validator-option': 7.16.7 browserslist: 4.20.2 semver: 6.3.0 - dev: true - /@babel/helper-environment-visitor/7.16.7: + /@babel/helper-environment-visitor@7.16.7: resolution: {integrity: sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag==} engines: {node: '>=6.9.0'} dependencies: '@babel/types': 7.17.0 - dev: true - /@babel/helper-function-name/7.16.7: + /@babel/helper-function-name@7.16.7: resolution: {integrity: sha512-QfDfEnIUyyBSR3HtrtGECuZ6DAyCkYFp7GHl75vFtTnn6pjKeK0T1DB5lLkFvBea8MdaiUABx3osbgLyInoejA==} engines: {node: '>=6.9.0'} dependencies: '@babel/helper-get-function-arity': 7.16.7 '@babel/template': 7.16.7 '@babel/types': 7.17.0 - dev: true - /@babel/helper-get-function-arity/7.16.7: + /@babel/helper-get-function-arity@7.16.7: resolution: {integrity: sha512-flc+RLSOBXzNzVhcLu6ujeHUrD6tANAOU5ojrRx/as+tbzf8+stUCj7+IfRRoAbEZqj/ahXEMsjhOhgeZsrnTw==} engines: {node: '>=6.9.0'} dependencies: '@babel/types': 7.17.0 - dev: true - /@babel/helper-hoist-variables/7.16.7: + /@babel/helper-hoist-variables@7.16.7: resolution: {integrity: sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==} engines: {node: '>=6.9.0'} dependencies: '@babel/types': 7.17.0 - dev: true - /@babel/helper-module-imports/7.16.7: + /@babel/helper-module-imports@7.16.7: resolution: {integrity: sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==} engines: {node: '>=6.9.0'} dependencies: '@babel/types': 7.17.0 - /@babel/helper-module-transforms/7.17.7: + /@babel/helper-module-transforms@7.17.7: resolution: {integrity: sha512-VmZD99F3gNTYB7fJRDTi+u6l/zxY0BE6OIxPSU7a50s6ZUQkHwSDmV92FfM+oCG0pZRVojGYhkR8I0OGeCVREw==} engines: {node: '>=6.9.0'} dependencies: @@ -312,36 +349,32 @@ packages: '@babel/types': 7.17.0 transitivePeerDependencies: - supports-color - dev: true - /@babel/helper-plugin-utils/7.16.7: + /@babel/helper-plugin-utils@7.16.7: resolution: {integrity: sha512-Qg3Nk7ZxpgMrsox6HreY1ZNKdBq7K72tDSliA6dCl5f007jR4ne8iD5UzuNnCJH2xBf2BEEVGr+/OL6Gdp7RxA==} engines: {node: '>=6.9.0'} - /@babel/helper-simple-access/7.17.7: + /@babel/helper-simple-access@7.17.7: resolution: {integrity: sha512-txyMCGroZ96i+Pxr3Je3lzEJjqwaRC9buMUgtomcrLe5Nd0+fk1h0LLA+ixUF5OW7AhHuQ7Es1WcQJZmZsz2XA==} engines: {node: '>=6.9.0'} dependencies: '@babel/types': 7.17.0 - dev: true - /@babel/helper-split-export-declaration/7.16.7: + /@babel/helper-split-export-declaration@7.16.7: resolution: {integrity: sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==} engines: {node: '>=6.9.0'} dependencies: '@babel/types': 7.17.0 - dev: true - /@babel/helper-validator-identifier/7.16.7: + /@babel/helper-validator-identifier@7.16.7: resolution: {integrity: sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==} engines: {node: '>=6.9.0'} - /@babel/helper-validator-option/7.16.7: + /@babel/helper-validator-option@7.16.7: resolution: {integrity: sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ==} engines: {node: '>=6.9.0'} - dev: true - /@babel/helpers/7.17.8: + /@babel/helpers@7.17.8: resolution: {integrity: sha512-QcL86FGxpfSJwGtAvv4iG93UL6bmqBdmoVY0CMCU2g+oD2ezQse3PT5Pa+jiD6LJndBQi0EDlpzOWNlLuhz5gw==} engines: {node: '>=6.9.0'} dependencies: @@ -350,9 +383,8 @@ packages: '@babel/types': 7.17.0 transitivePeerDependencies: - supports-color - dev: true - /@babel/highlight/7.16.10: + /@babel/highlight@7.16.10: resolution: {integrity: sha512-5FnTQLSLswEj6IkgVw5KusNUUFY9ZGqe/TRFnP/BKYHYgfh7tc+C7mwiy95/yNP7Dh9x580Vv8r7u7ZfTBFxdw==} engines: {node: '>=6.9.0'} dependencies: @@ -360,22 +392,14 @@ packages: chalk: 2.4.2 js-tokens: 4.0.0 - /@babel/parser/7.17.8: + /@babel/parser@7.17.8: resolution: {integrity: sha512-BoHhDJrJXqcg+ZL16Xv39H9n+AqJ4pcDrQBGZN+wHxIysrLZ3/ECwCBUch/1zUNhnsXULcONU3Ei5Hmkfk6kiQ==} engines: {node: '>=6.0.0'} hasBin: true - dev: true - - /@babel/plugin-syntax-jsx/7.16.7: - resolution: {integrity: sha512-Esxmk7YjA8QysKeT3VhTXvF6y77f/a91SIs4pWb4H2eWGQkCKFgQaG6hdoEVZtGsrAcb2K5BW66XsOErD4WU3Q==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 dependencies: - '@babel/helper-plugin-utils': 7.16.7 - dev: false + '@babel/types': 7.17.0 - /@babel/plugin-syntax-jsx/7.16.7_@babel+core@7.17.8: + /@babel/plugin-syntax-jsx@7.16.7(@babel/core@7.17.8): resolution: {integrity: sha512-Esxmk7YjA8QysKeT3VhTXvF6y77f/a91SIs4pWb4H2eWGQkCKFgQaG6hdoEVZtGsrAcb2K5BW66XsOErD4WU3Q==} engines: {node: '>=6.9.0'} peerDependencies: @@ -384,17 +408,17 @@ packages: '@babel/core': 7.17.8 '@babel/helper-plugin-utils': 7.16.7 - /@babel/plugin-transform-react-jsx-development/7.16.7_@babel+core@7.17.8: + /@babel/plugin-transform-react-jsx-development@7.16.7(@babel/core@7.17.8): resolution: {integrity: sha512-RMvQWvpla+xy6MlBpPlrKZCMRs2AGiHOGHY3xRwl0pEeim348dDyxeH4xBsMPbIMhujeq7ihE702eM2Ew0Wo+A==} engines: {node: '>=6.9.0'} peerDependencies: '@babel/core': ^7.0.0-0 dependencies: '@babel/core': 7.17.8 - '@babel/plugin-transform-react-jsx': 7.17.3_@babel+core@7.17.8 + '@babel/plugin-transform-react-jsx': 7.17.3(@babel/core@7.17.8) dev: true - /@babel/plugin-transform-react-jsx-self/7.16.7_@babel+core@7.17.8: + /@babel/plugin-transform-react-jsx-self@7.16.7(@babel/core@7.17.8): resolution: {integrity: sha512-oe5VuWs7J9ilH3BCCApGoYjHoSO48vkjX2CbA5bFVhIuO2HKxA3vyF7rleA4o6/4rTDbk6r8hBW7Ul8E+UZrpA==} engines: {node: '>=6.9.0'} peerDependencies: @@ -404,7 +428,7 @@ packages: '@babel/helper-plugin-utils': 7.16.7 dev: true - /@babel/plugin-transform-react-jsx-source/7.16.7_@babel+core@7.17.8: + /@babel/plugin-transform-react-jsx-source@7.16.7(@babel/core@7.17.8): resolution: {integrity: sha512-rONFiQz9vgbsnaMtQlZCjIRwhJvlrPET8TabIUK2hzlXw9B9s2Ieaxte1SCOOXMbWRHodbKixNf3BLcWVOQ8Bw==} engines: {node: '>=6.9.0'} peerDependencies: @@ -414,7 +438,7 @@ packages: '@babel/helper-plugin-utils': 7.16.7 dev: true - /@babel/plugin-transform-react-jsx/7.17.3_@babel+core@7.17.8: + /@babel/plugin-transform-react-jsx@7.17.3(@babel/core@7.17.8): resolution: {integrity: sha512-9tjBm4O07f7mzKSIlEmPdiE6ub7kfIe6Cd+w+oQebpATfTQMAgW+YOuWxogbKVTulA+MEO7byMeIUtQ1z+z+ZQ==} engines: {node: '>=6.9.0'} peerDependencies: @@ -424,26 +448,25 @@ packages: '@babel/helper-annotate-as-pure': 7.16.7 '@babel/helper-module-imports': 7.16.7 '@babel/helper-plugin-utils': 7.16.7 - '@babel/plugin-syntax-jsx': 7.16.7_@babel+core@7.17.8 + '@babel/plugin-syntax-jsx': 7.16.7(@babel/core@7.17.8) '@babel/types': 7.17.0 dev: true - /@babel/runtime/7.17.8: + /@babel/runtime@7.17.8: resolution: {integrity: sha512-dQpEpK0O9o6lj6oPu0gRDbbnk+4LeHlNcBpspf6Olzt3GIX4P1lWF1gS+pHLDFlaJvbR6q7jCfQ08zA4QJBnmA==} engines: {node: '>=6.9.0'} dependencies: regenerator-runtime: 0.13.9 - /@babel/template/7.16.7: + /@babel/template@7.16.7: resolution: {integrity: sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==} engines: {node: '>=6.9.0'} dependencies: '@babel/code-frame': 7.16.7 '@babel/parser': 7.17.8 '@babel/types': 7.17.0 - dev: true - /@babel/traverse/7.17.3: + /@babel/traverse@7.17.3: resolution: {integrity: sha512-5irClVky7TxRWIRtxlh2WPUUOLhcPN06AGgaQSB8AEwuyEBgJVuJ5imdHm5zxk8w0QS5T+tDfnDxAlhWjpb7cw==} engines: {node: '>=6.9.0'} dependencies: @@ -455,44 +478,42 @@ packages: '@babel/helper-split-export-declaration': 7.16.7 '@babel/parser': 7.17.8 '@babel/types': 7.17.0 - debug: 4.3.4 + debug: 4.3.4(supports-color@8.1.1) globals: 11.12.0 transitivePeerDependencies: - supports-color - dev: true - /@babel/types/7.17.0: + /@babel/types@7.17.0: resolution: {integrity: sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==} engines: {node: '>=6.9.0'} dependencies: '@babel/helper-validator-identifier': 7.16.7 to-fast-properties: 2.0.0 - /@cspotcode/source-map-consumer/0.8.0: - resolution: {integrity: sha512-41qniHzTU8yAGbCp04ohlmSrZf8bkf/iJsl3V0dRGsQN/5GFfx+LbCSsCpp2gqrqjTVg/K6O8ycoV35JIwAzAg==} - engines: {node: '>= 12'} + /@bcoe/v8-coverage@0.2.3: + resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} dev: true - /@cspotcode/source-map-support/0.7.0: - resolution: {integrity: sha512-X4xqRHqN8ACt2aHVe51OxeA2HjbcL4MqFqXkrmQszJ1NOUuUu5u6Vqx/0lZSVNku7velL5FC/s5uEAj1lsBMhA==} + /@cspotcode/source-map-support@0.8.1: + resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==} engines: {node: '>=12'} dependencies: - '@cspotcode/source-map-consumer': 0.8.0 + '@jridgewell/trace-mapping': 0.3.9 dev: true - /@develar/schema-utils/2.6.5: + /@develar/schema-utils@2.6.5: resolution: {integrity: sha512-0cp4PsWQ/9avqTVMCtZ+GirikIA36ikvjtHweU4/j8yLtgObI0+JUPhYFScgwlteveGB1rt3Cm8UhN04XayDig==} engines: {node: '>= 8.9.0'} dependencies: ajv: 6.12.6 - ajv-keywords: 3.5.2_ajv@6.12.6 + ajv-keywords: 3.5.2(ajv@6.12.6) dev: true - /@electron/get/1.14.1: + /@electron/get@1.14.1: resolution: {integrity: sha512-BrZYyL/6m0ZXz/lDxy/nlVhQz+WF+iPS6qXolEU8atw7h6v1aYkjwJZ63m+bJMBTxDE66X+r2tPS4a/8C82sZw==} engines: {node: '>=8.6'} dependencies: - debug: 4.3.4 + debug: 4.3.4(supports-color@8.1.1) env-paths: 2.2.1 fs-extra: 8.1.0 got: 9.6.0 @@ -506,46 +527,27 @@ packages: - supports-color dev: true - /@electron/universal/1.0.5: + /@electron/universal@1.0.5: resolution: {integrity: sha512-zX9O6+jr2NMyAdSkwEUlyltiI4/EBLu2Ls/VD3pUQdi3cAYeYfdQnT2AJJ38HE4QxLccbU13LSpccw1IWlkyag==} engines: {node: '>=8.6'} dependencies: '@malept/cross-spawn-promise': 1.1.1 asar: 3.1.0 - debug: 4.3.4 + debug: 4.3.4(supports-color@8.1.1) dir-compare: 2.4.0 fs-extra: 9.1.0 transitivePeerDependencies: - supports-color dev: true - /@emotion/babel-plugin/11.7.2: - resolution: {integrity: sha512-6mGSCWi9UzXut/ZAN6lGFu33wGR3SJisNl3c0tvlmb8XChH1b2SUvxvnOh7hvLpqyRdHHU9AiazV3Cwbk5SXKQ==} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/helper-module-imports': 7.16.7 - '@babel/plugin-syntax-jsx': 7.16.7 - '@babel/runtime': 7.17.8 - '@emotion/hash': 0.8.0 - '@emotion/memoize': 0.7.5 - '@emotion/serialize': 1.0.2 - babel-plugin-macros: 2.8.0 - convert-source-map: 1.8.0 - escape-string-regexp: 4.0.0 - find-root: 1.1.0 - source-map: 0.5.7 - stylis: 4.0.13 - dev: false - - /@emotion/babel-plugin/11.7.2_@babel+core@7.17.8: + /@emotion/babel-plugin@11.7.2(@babel/core@7.17.8): resolution: {integrity: sha512-6mGSCWi9UzXut/ZAN6lGFu33wGR3SJisNl3c0tvlmb8XChH1b2SUvxvnOh7hvLpqyRdHHU9AiazV3Cwbk5SXKQ==} peerDependencies: '@babel/core': ^7.0.0 dependencies: '@babel/core': 7.17.8 '@babel/helper-module-imports': 7.16.7 - '@babel/plugin-syntax-jsx': 7.16.7_@babel+core@7.17.8 + '@babel/plugin-syntax-jsx': 7.16.7(@babel/core@7.17.8) '@babel/runtime': 7.17.8 '@emotion/hash': 0.8.0 '@emotion/memoize': 0.7.5 @@ -557,7 +559,7 @@ packages: source-map: 0.5.7 stylis: 4.0.13 - /@emotion/cache/11.7.1: + /@emotion/cache@11.7.1: resolution: {integrity: sha512-r65Zy4Iljb8oyjtLeCuBH8Qjiy107dOYC6SJq7g7GV5UCQWMObY4SJDPGFjiiVpPrOJ2hmJOoBiYTC7hwx9E2A==} dependencies: '@emotion/memoize': 0.7.5 @@ -567,22 +569,7 @@ packages: stylis: 4.0.13 dev: false - /@emotion/css/11.7.1: - resolution: {integrity: sha512-RUUgPlMZunlc7SE5A6Hg+VWRzb2cU6O9xlV78KCFgcnl25s7Qz/20oQg71iKudpLqk7xj0vhbJlwcJJMT0BOZg==} - peerDependencies: - '@babel/core': ^7.0.0 - peerDependenciesMeta: - '@babel/core': - optional: true - dependencies: - '@emotion/babel-plugin': 11.7.2 - '@emotion/cache': 11.7.1 - '@emotion/serialize': 1.0.2 - '@emotion/sheet': 1.1.0 - '@emotion/utils': 1.1.0 - dev: false - - /@emotion/css/11.7.1_@babel+core@7.17.8: + /@emotion/css@11.7.1(@babel/core@7.17.8): resolution: {integrity: sha512-RUUgPlMZunlc7SE5A6Hg+VWRzb2cU6O9xlV78KCFgcnl25s7Qz/20oQg71iKudpLqk7xj0vhbJlwcJJMT0BOZg==} peerDependencies: '@babel/core': ^7.0.0 @@ -591,26 +578,26 @@ packages: optional: true dependencies: '@babel/core': 7.17.8 - '@emotion/babel-plugin': 11.7.2_@babel+core@7.17.8 + '@emotion/babel-plugin': 11.7.2(@babel/core@7.17.8) '@emotion/cache': 11.7.1 '@emotion/serialize': 1.0.2 '@emotion/sheet': 1.1.0 '@emotion/utils': 1.1.0 dev: false - /@emotion/hash/0.8.0: + /@emotion/hash@0.8.0: resolution: {integrity: sha512-kBJtf7PH6aWwZ6fka3zQ0p6SBYzx4fl1LoZXE2RrnYST9Xljm7WfKJrU4g/Xr3Beg72MLrp1AWNUmuYJTL7Cow==} - /@emotion/is-prop-valid/1.1.2: + /@emotion/is-prop-valid@1.1.2: resolution: {integrity: sha512-3QnhqeL+WW88YjYbQL5gUIkthuMw7a0NGbZ7wfFVk2kg/CK5w8w5FFa0RzWjyY1+sujN0NWbtSHH6OJmWHtJpQ==} dependencies: '@emotion/memoize': 0.7.5 dev: false - /@emotion/memoize/0.7.5: + /@emotion/memoize@0.7.5: resolution: {integrity: sha512-igX9a37DR2ZPGYtV6suZ6whr8pTFtyHL3K/oLUotxpSVO2ASaprmAe2Dkq7tBo7CRY7MMDrAa9nuQP9/YG8FxQ==} - /@emotion/react/11.8.2_c1cf67fb40c16c390126f300fc197413: + /@emotion/react@11.8.2(@babel/core@7.17.8)(@types/react@17.0.43)(react@17.0.2): resolution: {integrity: sha512-+1bcHBaNJv5nkIIgnGKVsie3otS0wF9f1T1hteF3WeVvMNQEtfZ4YyFpnphGoot3ilU/wWMgP2SgIDuHLE/wAA==} peerDependencies: '@babel/core': ^7.0.0 @@ -624,7 +611,7 @@ packages: dependencies: '@babel/core': 7.17.8 '@babel/runtime': 7.17.8 - '@emotion/babel-plugin': 11.7.2_@babel+core@7.17.8 + '@emotion/babel-plugin': 11.7.2(@babel/core@7.17.8) '@emotion/cache': 11.7.1 '@emotion/serialize': 1.0.2 '@emotion/utils': 1.1.0 @@ -634,29 +621,7 @@ packages: react: 17.0.2 dev: false - /@emotion/react/11.8.2_react@17.0.2: - resolution: {integrity: sha512-+1bcHBaNJv5nkIIgnGKVsie3otS0wF9f1T1hteF3WeVvMNQEtfZ4YyFpnphGoot3ilU/wWMgP2SgIDuHLE/wAA==} - peerDependencies: - '@babel/core': ^7.0.0 - '@types/react': '*' - react: '>=16.8.0' - peerDependenciesMeta: - '@babel/core': - optional: true - '@types/react': - optional: true - dependencies: - '@babel/runtime': 7.17.8 - '@emotion/babel-plugin': 11.7.2 - '@emotion/cache': 11.7.1 - '@emotion/serialize': 1.0.2 - '@emotion/utils': 1.1.0 - '@emotion/weak-memoize': 0.2.5 - hoist-non-react-statics: 3.3.2 - react: 17.0.2 - dev: false - - /@emotion/serialize/1.0.2: + /@emotion/serialize@1.0.2: resolution: {integrity: sha512-95MgNJ9+/ajxU7QIAruiOAdYNjxZX7G2mhgrtDWswA21VviYIRP1R5QilZ/bDY42xiKsaktP4egJb3QdYQZi1A==} dependencies: '@emotion/hash': 0.8.0 @@ -665,11 +630,11 @@ packages: '@emotion/utils': 1.1.0 csstype: 3.0.11 - /@emotion/sheet/1.1.0: + /@emotion/sheet@1.1.0: resolution: {integrity: sha512-u0AX4aSo25sMAygCuQTzS+HsImZFuS8llY8O7b9MDRzbJM0kVJlAz6KNDqcG7pOuQZJmj/8X/rAW+66kMnMW+g==} dev: false - /@emotion/styled/11.8.1_9e1aa84c2920c31b9f962a733ba5a2b4: + /@emotion/styled@11.8.1(@babel/core@7.17.8)(@emotion/react@11.8.2)(@types/react@17.0.43)(react@17.0.2): resolution: {integrity: sha512-OghEVAYBZMpEquHZwuelXcRjRJQOVayvbmNR0zr174NHdmMgrNkLC6TljKC5h9lZLkN5WGrdUcrKlOJ4phhoTQ==} peerDependencies: '@babel/core': ^7.0.0 @@ -684,55 +649,48 @@ packages: dependencies: '@babel/core': 7.17.8 '@babel/runtime': 7.17.8 - '@emotion/babel-plugin': 11.7.2_@babel+core@7.17.8 + '@emotion/babel-plugin': 11.7.2(@babel/core@7.17.8) '@emotion/is-prop-valid': 1.1.2 - '@emotion/react': 11.8.2_c1cf67fb40c16c390126f300fc197413 + '@emotion/react': 11.8.2(@babel/core@7.17.8)(@types/react@17.0.43)(react@17.0.2) '@emotion/serialize': 1.0.2 '@emotion/utils': 1.1.0 '@types/react': 17.0.43 react: 17.0.2 dev: false - /@emotion/styled/11.8.1_fa30c4a31333a43d23a4fe708e0dc178: - resolution: {integrity: sha512-OghEVAYBZMpEquHZwuelXcRjRJQOVayvbmNR0zr174NHdmMgrNkLC6TljKC5h9lZLkN5WGrdUcrKlOJ4phhoTQ==} - peerDependencies: - '@babel/core': ^7.0.0 - '@emotion/react': ^11.0.0-rc.0 - '@types/react': '*' - react: '>=16.8.0' - peerDependenciesMeta: - '@babel/core': - optional: true - '@types/react': - optional: true - dependencies: - '@babel/runtime': 7.17.8 - '@emotion/babel-plugin': 11.7.2 - '@emotion/is-prop-valid': 1.1.2 - '@emotion/react': 11.8.2_react@17.0.2 - '@emotion/serialize': 1.0.2 - '@emotion/utils': 1.1.0 - react: 17.0.2 - dev: false - - /@emotion/unitless/0.7.5: + /@emotion/unitless@0.7.5: resolution: {integrity: sha512-OWORNpfjMsSSUBVrRBVGECkhWcULOAJz9ZW8uK9qgxD+87M7jHRcvh/A96XXNhXTLmKcoYSQtBEX7lHMO7YRwg==} - /@emotion/utils/1.1.0: + /@emotion/utils@1.1.0: resolution: {integrity: sha512-iRLa/Y4Rs5H/f2nimczYmS5kFJEbpiVvgN3XVfZ022IYhuNA1IRSHEizcof88LtCTXtl9S2Cxt32KgaXEu72JQ==} - /@emotion/weak-memoize/0.2.5: + /@emotion/weak-memoize@0.2.5: resolution: {integrity: sha512-6U71C2Wp7r5XtFtQzYrW5iKFT67OixrSxjI4MptCHzdSVlgabczzqLe0ZSgnub/5Kp4hSbpDB1tMytZY9pwxxA==} dev: false - /@eslint/eslintrc/1.2.1: - resolution: {integrity: sha512-bxvbYnBPN1Gibwyp6NrpnFzA3YtRL3BBAyEAFVIpNTm2Rn4Vy87GA5M4aSn3InRrlsbX5N0GW7XIx+U4SAEKdQ==} + /@eslint-community/eslint-utils@4.4.0(eslint@8.39.0): + resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + dependencies: + eslint: 8.39.0 + eslint-visitor-keys: 3.4.0 + dev: true + + /@eslint-community/regexpp@4.5.0: + resolution: {integrity: sha512-vITaYzIcNmjn5tF5uxcZ/ft7/RXGrMUIS9HalWckEOF6ESiwXKoMzAQf2UW0aVd6rnOeExTJVd5hmWXucBKGXQ==} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + dev: true + + /@eslint/eslintrc@2.0.2: + resolution: {integrity: sha512-3W4f5tDUra+pA+FzgugqL2pRimUTDJWKr7BINqOpkZrC0uYI0NIc0/JFgBROCU07HR6GieA5m3/rsPIhDmCXTQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: ajv: 6.12.6 - debug: 4.3.4 - espree: 9.3.1 - globals: 13.13.0 + debug: 4.3.4(supports-color@8.1.1) + espree: 9.5.1 + globals: 13.20.0 ignore: 5.2.0 import-fresh: 3.3.0 js-yaml: 4.1.0 @@ -742,49 +700,72 @@ packages: - supports-color dev: true - /@humanwhocodes/config-array/0.9.5: - resolution: {integrity: sha512-ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw==} + /@eslint/js@8.39.0: + resolution: {integrity: sha512-kf9RB0Fg7NZfap83B3QOqOGg9QmD9yBudqQXzzOtn3i4y7ZUXe5ONeW34Gwi+TxhH4mvj72R1Zc300KUMa9Bng==} + engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} + dev: true + + /@humanwhocodes/config-array@0.11.8: + resolution: {integrity: sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==} engines: {node: '>=10.10.0'} dependencies: '@humanwhocodes/object-schema': 1.2.1 - debug: 4.3.4 + debug: 4.3.4(supports-color@8.1.1) minimatch: 3.1.2 transitivePeerDependencies: - supports-color dev: true - /@humanwhocodes/object-schema/1.2.1: + /@humanwhocodes/module-importer@1.0.1: + resolution: {integrity: sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==} + engines: {node: '>=12.22'} + dev: true + + /@humanwhocodes/object-schema@1.2.1: resolution: {integrity: sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==} dev: true - /@jridgewell/resolve-uri/3.0.5: - resolution: {integrity: sha512-VPeQ7+wH0itvQxnG+lIzWgkysKIr3L9sslimFW55rHMdGu/qCQ5z5h9zq4gI8uBtqkpHhsF4Z/OwExufUCThew==} + /@istanbuljs/schema@0.1.3: + resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==} + engines: {node: '>=8'} + dev: true + + /@jridgewell/resolve-uri@3.1.0: + resolution: {integrity: sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==} engines: {node: '>=6.0.0'} + + /@jridgewell/sourcemap-codec@1.4.14: + resolution: {integrity: sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==} + + /@jridgewell/sourcemap-codec@1.4.15: + resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} dev: true - /@jridgewell/sourcemap-codec/1.4.11: - resolution: {integrity: sha512-Fg32GrJo61m+VqYSdRSjRXMjQ06j8YIYfcTqndLYVAaHmroZHLJZCydsWBOTDqXS2v+mjxohBWEMfg97GXmYQg==} - dev: true - - /@jridgewell/trace-mapping/0.3.4: - resolution: {integrity: sha512-vFv9ttIedivx0ux3QSjhgtCVjPZd5l46ZOMDSCwnH1yUO2e964gO8LZGyv2QkqcgR6TnBU1v+1IFqmeoG+0UJQ==} + /@jridgewell/trace-mapping@0.3.18: + resolution: {integrity: sha512-w+niJYzMHdd7USdiH2U6869nqhD2nbfZXND5Yp93qIbEmnDNk7PD48o+YchRVpzMU7M6jVCbenTR7PA1FLQ9pA==} dependencies: - '@jridgewell/resolve-uri': 3.0.5 - '@jridgewell/sourcemap-codec': 1.4.11 + '@jridgewell/resolve-uri': 3.1.0 + '@jridgewell/sourcemap-codec': 1.4.14 + + /@jridgewell/trace-mapping@0.3.9: + resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} + dependencies: + '@jridgewell/resolve-uri': 3.1.0 + '@jridgewell/sourcemap-codec': 1.4.15 dev: true - /@malept/cross-spawn-promise/1.1.1: + /@malept/cross-spawn-promise@1.1.1: resolution: {integrity: sha512-RTBGWL5FWQcg9orDOCcp4LvItNzUPcyEU9bwaeJX0rJ1IQxzucC48Y0/sQLp/g6t99IQgAlGIaesJS+gTn7tVQ==} engines: {node: '>= 10'} dependencies: cross-spawn: 7.0.3 dev: true - /@malept/flatpak-bundler/0.4.0: + /@malept/flatpak-bundler@0.4.0: resolution: {integrity: sha512-9QOtNffcOF/c1seMCDnjckb3R9WHcG34tky+FHpNKKCW0wc/scYLwMtO+ptyGUfMW0/b/n4qRiALlaFHc9Oj7Q==} engines: {node: '>= 10.0.0'} dependencies: - debug: 4.3.4 + debug: 4.3.4(supports-color@8.1.1) fs-extra: 9.1.0 lodash: 4.17.21 tmp-promise: 3.0.3 @@ -792,11 +773,11 @@ packages: - supports-color dev: true - /@mdn/browser-compat-data/4.1.14: - resolution: {integrity: sha512-pndsgd4jXIGcgWKPXkN5AL1rdwhgQpLXWyK25jb42SUaeujs/GhRK8+Q4W97RTiCirf/DoaahcTI/3Op6+/gfw==} + /@mdn/browser-compat-data@5.2.54: + resolution: {integrity: sha512-8/W1qTWw/lCf6E01n/Be65LGza/WrDON7ii9F/fKc4EdZad+K1xJWvfYhDSoPpkMCAw0eLIyAB0Z5emQFBVclw==} dev: true - /@nodelib/fs.scandir/2.1.5: + /@nodelib/fs.scandir@2.1.5: resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} engines: {node: '>= 8'} dependencies: @@ -804,12 +785,12 @@ packages: run-parallel: 1.2.0 dev: true - /@nodelib/fs.stat/2.0.5: + /@nodelib/fs.stat@2.0.5: resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} engines: {node: '>= 8'} dev: true - /@nodelib/fs.walk/1.2.8: + /@nodelib/fs.walk@1.2.8: resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} engines: {node: '>= 8'} dependencies: @@ -817,37 +798,58 @@ packages: fastq: 1.13.0 dev: true - /@rollup/plugin-json/4.1.0_rollup@2.70.1: - resolution: {integrity: sha512-yfLbTdNS6amI/2OpmbiBoW12vngr5NW2jCJVZSBEz+H5KfUJZ2M7sDjk0U6GOOdCWFVScShte29o9NezJ53TPw==} - peerDependencies: - rollup: ^1.20.0 || ^2.0.0 + /@pkgr/utils@2.3.1: + resolution: {integrity: sha512-wfzX8kc1PMyUILA+1Z/EqoE4UCXGy0iRGMhPwdfae1+f0OXlLqCk+By+aMzgJBzR9AzS4CDizioG6Ss1gvAFJw==} + engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} dependencies: - '@rollup/pluginutils': 3.1.0_rollup@2.70.1 - rollup: 2.70.1 + cross-spawn: 7.0.3 + is-glob: 4.0.3 + open: 8.4.2 + picocolors: 1.0.0 + tiny-glob: 0.2.9 + tslib: 2.5.0 dev: true - /@rollup/plugin-replace/3.1.0_rollup@2.70.1: - resolution: {integrity: sha512-pA3XRUrSKybVYqmH5TqWNZpGxF+VV+1GrYchKgCNIj2vsSOX7CVm2RCtx8p2nrC7xvkziYyK+lSi74T93MU3YA==} + /@rollup/plugin-json@6.0.0(rollup@3.21.0): + resolution: {integrity: sha512-i/4C5Jrdr1XUarRhVu27EEwjt4GObltD7c+MkCIpO2QIbojw8MUs+CCTqOphQi3Qtg1FLmYt+l+6YeoIf51J7w==} + engines: {node: '>=14.0.0'} peerDependencies: - rollup: ^1.20.0 || ^2.0.0 + rollup: ^1.20.0||^2.0.0||^3.0.0 + peerDependenciesMeta: + rollup: + optional: true dependencies: - '@rollup/pluginutils': 3.1.0_rollup@2.70.1 - magic-string: 0.25.9 - rollup: 2.70.1 + '@rollup/pluginutils': 5.0.2(rollup@3.21.0) + rollup: 3.21.0 dev: true - /@rollup/plugin-yaml/3.1.0: + /@rollup/plugin-replace@5.0.2(rollup@3.21.0): + resolution: {integrity: sha512-M9YXNekv/C/iHHK+cvORzfRYfPbq0RDD8r0G+bMiTXjNGKulPnCT9O3Ss46WfhI6ZOCgApOP7xAdmCQJ+U2LAA==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0 + peerDependenciesMeta: + rollup: + optional: true + dependencies: + '@rollup/pluginutils': 5.0.2(rollup@3.21.0) + magic-string: 0.27.0 + rollup: 3.21.0 + dev: true + + /@rollup/plugin-yaml@3.1.0(rollup@2.79.1): resolution: {integrity: sha512-61PsAXqN7YNYdg/nezK3NkqAu6e3Qu2wjHYW3r52Nx0aLi+rG7gkkIqtvxG8EtSqE2rra5CUcWBZj+v362qt9A==} engines: {node: '>=10.0.0'} peerDependencies: rollup: ^1.20.0 || ^2.0.0 dependencies: - '@rollup/pluginutils': 3.1.0 + '@rollup/pluginutils': 3.1.0(rollup@2.79.1) js-yaml: 3.14.1 + rollup: 2.79.1 tosource: 1.0.0 dev: true - /@rollup/pluginutils/3.1.0: + /@rollup/pluginutils@3.1.0(rollup@2.79.1): resolution: {integrity: sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==} engines: {node: '>= 8.0.0'} peerDependencies: @@ -856,21 +858,10 @@ packages: '@types/estree': 0.0.39 estree-walker: 1.0.1 picomatch: 2.3.1 + rollup: 2.79.1 dev: true - /@rollup/pluginutils/3.1.0_rollup@2.70.1: - resolution: {integrity: sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==} - engines: {node: '>= 8.0.0'} - peerDependencies: - rollup: ^1.20.0||^2.0.0 - dependencies: - '@types/estree': 0.0.39 - estree-walker: 1.0.1 - picomatch: 2.3.1 - rollup: 2.70.1 - dev: true - - /@rollup/pluginutils/4.2.0: + /@rollup/pluginutils@4.2.0: resolution: {integrity: sha512-2WUyJNRkyH5p487pGnn4tWAsxhEFKN/pT8CMgHshd5H+IXkOnKvKZwsz5ZWz+YCXkleZRAU5kwbfgF8CPfDRqA==} engines: {node: '>= 8.0.0'} dependencies: @@ -878,64 +869,85 @@ packages: picomatch: 2.3.1 dev: true - /@sindresorhus/is/0.14.0: + /@rollup/pluginutils@5.0.2(rollup@3.21.0): + resolution: {integrity: sha512-pTd9rIsP92h+B6wWwFbW8RkZv4hiR/xKsqre4SIuAOaOEQRxi0lqLke9k2/7WegC85GgUs9pjmOjCUi3In4vwA==} + engines: {node: '>=14.0.0'} + peerDependencies: + rollup: ^1.20.0||^2.0.0||^3.0.0 + peerDependenciesMeta: + rollup: + optional: true + dependencies: + '@types/estree': 1.0.1 + estree-walker: 2.0.2 + picomatch: 2.3.1 + rollup: 3.21.0 + dev: true + + /@sindresorhus/is@0.14.0: resolution: {integrity: sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==} engines: {node: '>=6'} dev: true - /@sinonjs/commons/1.8.3: - resolution: {integrity: sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==} + /@sinonjs/commons@2.0.0: + resolution: {integrity: sha512-uLa0j859mMrg2slwQYdO/AkrOfmH+X6LTVmNTS9CqexuE2IvVORIkSpJLqePAbEnKJ77aMmCwr1NUZ57120Xcg==} dependencies: type-detect: 4.0.8 dev: true - /@sinonjs/fake-timers/9.1.1: - resolution: {integrity: sha512-Wp5vwlZ0lOqpSYGKqr53INws9HLkt6JDc/pDZcPf7bchQnrXJMXPns8CXx0hFikMSGSWfvtvvpb2gtMVfkWagA==} + /@sinonjs/commons@3.0.0: + resolution: {integrity: sha512-jXBtWAF4vmdNmZgD5FoKsVLv3rPgDnLgPbU84LIJ3otV44vJlDRokVng5v8NFJdCf/da9legHcKaRuZs4L7faA==} dependencies: - '@sinonjs/commons': 1.8.3 + type-detect: 4.0.8 dev: true - /@sinonjs/samsam/6.1.1: - resolution: {integrity: sha512-cZ7rKJTLiE7u7Wi/v9Hc2fs3Ucc3jrWeMgPHbbTCeVAB2S0wOBbYlkJVeNSL04i7fdhT8wIbDq1zhC/PXTD2SA==} + /@sinonjs/fake-timers@10.0.2: + resolution: {integrity: sha512-SwUDyjWnah1AaNl7kxsa7cfLhlTYoiyhDAIgyh+El30YvXs/o7OLXpYH88Zdhyx9JExKrmHDJ+10bwIcY80Jmw==} dependencies: - '@sinonjs/commons': 1.8.3 + '@sinonjs/commons': 2.0.0 + dev: true + + /@sinonjs/samsam@8.0.0: + resolution: {integrity: sha512-Bp8KUVlLp8ibJZrnvq2foVhP0IVX2CIprMJPK0vqGqgrDa0OHVKeZyBykqskkrdxV6yKBPmGasO8LVjAKR3Gew==} + dependencies: + '@sinonjs/commons': 2.0.0 lodash.get: 4.4.2 type-detect: 4.0.8 dev: true - /@sinonjs/text-encoding/0.7.1: + /@sinonjs/text-encoding@0.7.1: resolution: {integrity: sha512-+iTbntw2IZPb/anVDbypzfQa+ay64MW0Zo8aJ8gZPWMMK6/OubMVb6lUPMagqjOPnmtauXnFCACVl3O7ogjeqQ==} dev: true - /@szmarczak/http-timer/1.1.2: + /@szmarczak/http-timer@1.1.2: resolution: {integrity: sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==} engines: {node: '>=6'} dependencies: defer-to-connect: 1.1.3 dev: true - /@tootallnate/once/2.0.0: + /@tootallnate/once@2.0.0: resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==} engines: {node: '>= 10'} dev: true - /@tsconfig/node10/1.0.8: + /@tsconfig/node10@1.0.8: resolution: {integrity: sha512-6XFfSQmMgq0CFLY1MslA/CPUfhIL919M1rMsa5lP2P097N2Wd1sSX0tx1u4olM16fLNhtHZpRhedZJphNJqmZg==} dev: true - /@tsconfig/node12/1.0.9: + /@tsconfig/node12@1.0.9: resolution: {integrity: sha512-/yBMcem+fbvhSREH+s14YJi18sp7J9jpuhYByADT2rypfajMZZN4WQ6zBGgBKp53NKmqI36wFYDb3yaMPurITw==} dev: true - /@tsconfig/node14/1.0.1: + /@tsconfig/node14@1.0.1: resolution: {integrity: sha512-509r2+yARFfHHE7T6Puu2jjkoycftovhXRqW328PDXTVGKihlb1P8Z9mMZH04ebyajfRY7dedfGynlrFHJUQCg==} dev: true - /@tsconfig/node16/1.0.2: + /@tsconfig/node16@1.0.2: resolution: {integrity: sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA==} dev: true - /@types/babel__core/7.1.19: + /@types/babel__core@7.1.19: resolution: {integrity: sha512-WEOTgRsbYkvA/KCsDwVEGkd7WAr1e3g31VHQ8zy5gul/V1qKullU/BU5I68X5v7V3GnB9eotmom4v5a5gjxorw==} dependencies: '@babel/parser': 7.17.8 @@ -945,184 +957,214 @@ packages: '@types/babel__traverse': 7.14.2 dev: true - /@types/babel__generator/7.6.4: + /@types/babel__generator@7.6.4: resolution: {integrity: sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==} dependencies: '@babel/types': 7.17.0 dev: true - /@types/babel__template/7.4.1: + /@types/babel__template@7.4.1: resolution: {integrity: sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==} dependencies: '@babel/parser': 7.17.8 '@babel/types': 7.17.0 dev: true - /@types/babel__traverse/7.14.2: + /@types/babel__traverse@7.14.2: resolution: {integrity: sha512-K2waXdXBi2302XUdcHcR1jCeU0LL4TD9HRs/gk0N2Xvrht+G/BfJa4QObBQZfhMdxiCpV3COl5Nfq4uKTeTnJA==} dependencies: '@babel/types': 7.17.0 dev: true - /@types/chai-as-promised/7.1.5: + /@types/chai-as-promised@7.1.5: resolution: {integrity: sha512-jStwss93SITGBwt/niYrkf2C+/1KTeZCZl1LaeezTlqppAKeoQC7jxyqYuP72sxBGKCIbw7oHgbYssIRzT5FCQ==} dependencies: - '@types/chai': 4.3.0 + '@types/chai': 4.3.4 dev: true - /@types/chai/4.3.0: - resolution: {integrity: sha512-/ceqdqeRraGolFTcfoXNiqjyQhZzbINDngeoAq9GoHa8PPK1yNzTaxWjA6BFWp5Ua9JpXEMSS4s5i9tS0hOJtw==} + /@types/chai@4.3.4: + resolution: {integrity: sha512-KnRanxnpfpjUTqTCXslZSEdLfXExwgNxYPdiO2WGUj8+HDjFi8R3k5RVKPeSCzLjCcshCAtVO2QBbVuAV4kTnw==} dev: true - /@types/debug/4.1.7: + /@types/debug@4.1.7: resolution: {integrity: sha512-9AonUzyTjXXhEOa0DnqpzZi6VHlqKMswga9EXjpXnnqxwLtdvPPtlO8evrI5D9S6asFRCQ6v+wpiUKbw+vKqyg==} dependencies: '@types/ms': 0.7.31 dev: true - /@types/estree/0.0.39: + /@types/estree@0.0.39: resolution: {integrity: sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==} dev: true - /@types/fs-extra/9.0.13: - resolution: {integrity: sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==} - dependencies: - '@types/node': 17.0.23 + /@types/estree@1.0.1: + resolution: {integrity: sha512-LG4opVs2ANWZ1TJoKc937iMmNstM/d0ae1vNbnBvBhqCSezgVUOzcLCqbI5elV8Vy6WKwKjaqR+zO9VKirBBCA==} dev: true - /@types/glob/7.2.0: + /@types/fs-extra@11.0.1: + resolution: {integrity: sha512-MxObHvNl4A69ofaTRU8DFqvgzzv8s9yRtaPPm5gud9HDNvpB3GPQFvNuTWAI59B9huVGV5jXYJwbCsmBsOGYWA==} + dependencies: + '@types/jsonfile': 6.1.1 + '@types/node': 18.16.2 + dev: true + + /@types/fs-extra@9.0.13: + resolution: {integrity: sha512-nEnwB++1u5lVDM2UI4c1+5R+FYaKfaAzS4OococimjVm3nQw3TuzH5UNsocrcTBbhnerblyHj4A49qXbIiZdpA==} + dependencies: + '@types/node': 18.16.2 + dev: true + + /@types/glob@7.2.0: resolution: {integrity: sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==} requiresBuild: true dependencies: '@types/minimatch': 3.0.5 - '@types/node': 17.0.23 + '@types/node': 18.16.2 dev: true optional: true - /@types/json-schema/7.0.11: + /@types/istanbul-lib-coverage@2.0.4: + resolution: {integrity: sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==} + dev: true + + /@types/json-schema@7.0.11: resolution: {integrity: sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==} dev: true - /@types/json5/0.0.29: - resolution: {integrity: sha1-7ihweulOEdK4J7y+UnC86n8+ce4=} + /@types/json5@0.0.29: + resolution: {integrity: sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==} dev: true - /@types/lodash-es/4.17.6: + /@types/jsonfile@6.1.1: + resolution: {integrity: sha512-GSgiRCVeapDN+3pqA35IkQwasaCh/0YFH5dEF6S88iDvEn901DjOeH3/QPY+XYP1DFzDZPvIvfeEgk+7br5png==} + dependencies: + '@types/node': 18.16.2 + dev: true + + /@types/keyv@3.1.4: + resolution: {integrity: sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==} + dependencies: + '@types/node': 18.16.2 + dev: true + + /@types/lodash-es@4.17.6: resolution: {integrity: sha512-R+zTeVUKDdfoRxpAryaQNRKk3105Rrgx2CFRClIgRGaqDTdjsm8h6IYA8ir584W3ePzkZfst5xIgDwYrlh9HLg==} dependencies: '@types/lodash': 4.14.181 dev: true - /@types/lodash/4.14.181: + /@types/lodash@4.14.181: resolution: {integrity: sha512-n3tyKthHJbkiWhDZs3DkhkCzt2MexYHXlX0td5iMplyfwketaOeKboEVBqzceH7juqvEg3q5oUoBFxSLu7zFag==} dev: true - /@types/minimatch/3.0.5: + /@types/minimatch@3.0.5: resolution: {integrity: sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==} dev: true optional: true - /@types/ms/0.7.31: + /@types/ms@0.7.31: resolution: {integrity: sha512-iiUgKzV9AuaEkZqkOLDIvlQiL6ltuZd9tGcW3gwpnX8JbuiuhFlEGmmFXEXkN50Cvq7Os88IY2v0dkDqXYWVgA==} dev: true - /@types/node/14.18.12: + /@types/node@14.18.12: resolution: {integrity: sha512-q4jlIR71hUpWTnGhXWcakgkZeHa3CCjcQcnuzU8M891BAWA2jHiziiWEPEkdS5pFsz7H9HJiy8BrK7tBRNrY7A==} dev: true - /@types/node/16.11.26: - resolution: {integrity: sha512-GZ7bu5A6+4DtG7q9GsoHXy3ALcgeIHP4NnL0Vv2wu0uUB/yQex26v0tf6/na1mm0+bS9Uw+0DFex7aaKr2qawQ==} + /@types/node@17.0.45: + resolution: {integrity: sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw==} dev: true - /@types/node/17.0.23: - resolution: {integrity: sha512-UxDxWn7dl97rKVeVS61vErvw086aCYhDLyvRQZ5Rk65rZKepaFdm53GeqXaKBuOhED4e9uWq34IC3TdSdJJ2Gw==} + /@types/node@18.16.2: + resolution: {integrity: sha512-GQW/JL/5Fz/0I8RpeBG9lKp0+aNcXEaVL71c0D2Q0QHDTFvlYKT7an0onCUXj85anv7b4/WesqdfchLc0jtsCg==} dev: true - /@types/object-path/0.11.1: + /@types/object-path@0.11.1: resolution: {integrity: sha512-219LSCO9HPcoXcRTC6DbCs0FRhZgBnEMzf16RRqkT40WbkKx3mOeQuz3e2XqbfhOz/AHfbru0kzB1n1RCAsIIg==} dev: true - /@types/parse-json/4.0.0: + /@types/parse-json@4.0.0: resolution: {integrity: sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==} - /@types/plist/3.0.2: + /@types/plist@3.0.2: resolution: {integrity: sha512-ULqvZNGMv0zRFvqn8/4LSPtnmN4MfhlPNtJCTpKuIIxGVGZ2rYWzFXrvEBoh9CVyqSE7D6YFRJ1hydLHI6kbWw==} requiresBuild: true dependencies: - '@types/node': 17.0.23 + '@types/node': 18.16.2 xmlbuilder: 15.1.1 dev: true optional: true - /@types/prop-types/15.7.4: + /@types/prop-types@15.7.4: resolution: {integrity: sha512-rZ5drC/jWjrArrS8BR6SIr4cWpW09RNTYt9AMZo3Jwwif+iacXAqgVjm0B0Bv/S1jhDXKHqRVNCbACkJ89RAnQ==} - dev: true - /@types/react-dom/17.0.14: + /@types/react-dom@17.0.14: resolution: {integrity: sha512-H03xwEP1oXmSfl3iobtmQ/2dHF5aBHr8aUMwyGZya6OW45G+xtdzmq6HkncefiBt5JU8DVyaWl/nWZbjZCnzAQ==} dependencies: '@types/react': 17.0.43 dev: true - /@types/react/17.0.43: + /@types/react@17.0.43: resolution: {integrity: sha512-8Q+LNpdxf057brvPu1lMtC5Vn7J119xrP1aq4qiaefNioQUYANF/CYeK4NsKorSZyUGJ66g0IM+4bbjwx45o2A==} dependencies: '@types/prop-types': 15.7.4 '@types/scheduler': 0.16.2 csstype: 3.0.11 - dev: true - /@types/scheduler/0.16.2: - resolution: {integrity: sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==} - dev: true - - /@types/semver/7.3.9: - resolution: {integrity: sha512-L/TMpyURfBkf+o/526Zb6kd/tchUP3iBDEPjqjb+U2MAJhVRxxrmr2fwpe08E7QsV7YLcpq0tUaQ9O9x97ZIxQ==} - dev: true - - /@types/sinon-chai/3.2.8: - resolution: {integrity: sha512-d4ImIQbT/rKMG8+AXpmcan5T2/PNeSjrYhvkwet6z0p8kzYtfgA32xzOBlbU0yqJfq+/0Ml805iFoODO0LP5/g==} + /@types/responselike@1.0.0: + resolution: {integrity: sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==} dependencies: - '@types/chai': 4.3.0 - '@types/sinon': 10.0.11 + '@types/node': 18.16.2 dev: true - /@types/sinon/10.0.11: - resolution: {integrity: sha512-dmZsHlBsKUtBpHriNjlK0ndlvEh8dcb9uV9Afsbt89QIyydpC7NcR+nWlAhASfy3GHnxTl4FX/aKE7XZUt/B4g==} + /@types/scheduler@0.16.2: + resolution: {integrity: sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==} + + /@types/semver@7.3.13: + resolution: {integrity: sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==} + dev: true + + /@types/sinon-chai@3.2.9: + resolution: {integrity: sha512-/19t63pFYU0ikrdbXKBWj9PCdnKyTd0Qkz0X91Ta081cYsq90OxYdcWwK/dwEoDa6dtXgj2HJfmzgq+QZTHdmQ==} + dependencies: + '@types/chai': 4.3.4 + '@types/sinon': 10.0.14 + dev: true + + /@types/sinon@10.0.14: + resolution: {integrity: sha512-mn72up6cjaMyMuaPaa/AwKf6WtsSRysQC7wxFkCm1XcOKXPM1z+5Y4H5wjIVBz4gdAkjvZxVVfjA6ba1nHr5WQ==} dependencies: '@types/sinonjs__fake-timers': 8.1.2 dev: true - /@types/sinonjs__fake-timers/8.1.2: + /@types/sinonjs__fake-timers@8.1.2: resolution: {integrity: sha512-9GcLXF0/v3t80caGs5p2rRfkB+a8VBGLJZVih6CNFkx8IZ994wiKKLSRs9nuFwk1HevWs/1mnUmkApGrSGsShA==} dev: true - /@types/ua-parser-js/0.7.36: + /@types/ua-parser-js@0.7.36: resolution: {integrity: sha512-N1rW+njavs70y2cApeIw1vLMYXRwfBy+7trgavGuuTfOd7j1Yh7QTRc/yqsPl6ncokt72ZXuxEU0PiCp9bSwNQ==} dev: true - /@types/verror/1.10.5: + /@types/verror@1.10.5: resolution: {integrity: sha512-9UjMCHK5GPgQRoNbqdLIAvAy0EInuiqbW0PBMtVP6B5B2HQJlvoJHM+KodPZMEjOa5VkSc+5LH7xy+cUzQdmHw==} requiresBuild: true dev: true optional: true - /@types/wicg-file-system-access/2020.9.5: + /@types/wicg-file-system-access@2020.9.5: resolution: {integrity: sha512-UYK244awtmcUYQfs7FR8710MJcefL2WvkyHMjA8yJzxd1mo0Gfn88sRZ1Bls7hiUhA2w7ne1gpJ9T5g3G0wOyA==} dev: true - /@types/yargs-parser/21.0.0: + /@types/yargs-parser@21.0.0: resolution: {integrity: sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==} dev: true - /@types/yargs/17.0.10: + /@types/yargs@17.0.10: resolution: {integrity: sha512-gmEaFwpj/7f/ROdtIlci1R1VYU1J4j95m8T+Tj3iBgiBFKg1foE/PSl93bBd5T9LDXNPo8UlNN6W0qwD8O5OaA==} dependencies: '@types/yargs-parser': 21.0.0 dev: true - /@typescript-eslint/eslint-plugin/5.17.0_689ff565753ecf7c3328c07fad067df5: - resolution: {integrity: sha512-qVstvQilEd89HJk3qcbKt/zZrfBZ+9h2ynpAGlWjWiizA7m/MtLT9RoX6gjtpE500vfIg8jogAkDzdCxbsFASQ==} + /@typescript-eslint/eslint-plugin@5.59.1(@typescript-eslint/parser@5.59.1)(eslint@8.39.0)(typescript@5.0.4): + resolution: {integrity: sha512-AVi0uazY5quFB9hlp2Xv+ogpfpk77xzsgsIEWyVS7uK/c7MZ5tw7ZPbapa0SbfkqE0fsAMkz5UwtgMLVk2BQAg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: '@typescript-eslint/parser': ^5.0.0 @@ -1132,24 +1174,25 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/parser': 5.17.0_eslint@8.12.0+typescript@4.6.3 - '@typescript-eslint/scope-manager': 5.17.0 - '@typescript-eslint/type-utils': 5.17.0_eslint@8.12.0+typescript@4.6.3 - '@typescript-eslint/utils': 5.17.0_eslint@8.12.0+typescript@4.6.3 - debug: 4.3.4 - eslint: 8.12.0 - functional-red-black-tree: 1.0.1 + '@eslint-community/regexpp': 4.5.0 + '@typescript-eslint/parser': 5.59.1(eslint@8.39.0)(typescript@5.0.4) + '@typescript-eslint/scope-manager': 5.59.1 + '@typescript-eslint/type-utils': 5.59.1(eslint@8.39.0)(typescript@5.0.4) + '@typescript-eslint/utils': 5.59.1(eslint@8.39.0)(typescript@5.0.4) + debug: 4.3.4(supports-color@8.1.1) + eslint: 8.39.0 + grapheme-splitter: 1.0.4 ignore: 5.2.0 - regexpp: 3.2.0 - semver: 7.3.5 - tsutils: 3.21.0_typescript@4.6.3 - typescript: 4.6.3 + natural-compare-lite: 1.4.0 + semver: 7.5.0 + tsutils: 3.21.0(typescript@5.0.4) + typescript: 5.0.4 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/parser/5.17.0_eslint@8.12.0+typescript@4.6.3: - resolution: {integrity: sha512-aRzW9Jg5Rlj2t2/crzhA2f23SIYFlF9mchGudyP0uiD6SenIxzKoLjwzHbafgHn39dNV/TV7xwQkLfFTZlJ4ig==} + /@typescript-eslint/parser@5.59.1(eslint@8.39.0)(typescript@5.0.4): + resolution: {integrity: sha512-nzjFAN8WEu6yPRDizIFyzAfgK7nybPodMNFGNH0M9tei2gYnYszRDqVA0xlnRjkl7Hkx2vYrEdb6fP2a21cG1g==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 @@ -1158,26 +1201,26 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/scope-manager': 5.17.0 - '@typescript-eslint/types': 5.17.0 - '@typescript-eslint/typescript-estree': 5.17.0_typescript@4.6.3 - debug: 4.3.4 - eslint: 8.12.0 - typescript: 4.6.3 + '@typescript-eslint/scope-manager': 5.59.1 + '@typescript-eslint/types': 5.59.1 + '@typescript-eslint/typescript-estree': 5.59.1(typescript@5.0.4) + debug: 4.3.4(supports-color@8.1.1) + eslint: 8.39.0 + typescript: 5.0.4 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/scope-manager/5.17.0: - resolution: {integrity: sha512-062iCYQF/doQ9T2WWfJohQKKN1zmmXVfAcS3xaiialiw8ZUGy05Em6QVNYJGO34/sU1a7a+90U3dUNfqUDHr3w==} + /@typescript-eslint/scope-manager@5.59.1: + resolution: {integrity: sha512-mau0waO5frJctPuAzcxiNWqJR5Z8V0190FTSqRw1Q4Euop6+zTwHAf8YIXNwDOT29tyUDrQ65jSg9aTU/H0omA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - '@typescript-eslint/types': 5.17.0 - '@typescript-eslint/visitor-keys': 5.17.0 + '@typescript-eslint/types': 5.59.1 + '@typescript-eslint/visitor-keys': 5.59.1 dev: true - /@typescript-eslint/type-utils/5.17.0_eslint@8.12.0+typescript@4.6.3: - resolution: {integrity: sha512-3hU0RynUIlEuqMJA7dragb0/75gZmwNwFf/QJokWzPehTZousP/MNifVSgjxNcDCkM5HI2K22TjQWUmmHUINSg==} + /@typescript-eslint/type-utils@5.59.1(eslint@8.39.0)(typescript@5.0.4): + resolution: {integrity: sha512-ZMWQ+Oh82jWqWzvM3xU+9y5U7MEMVv6GLioM3R5NJk6uvP47kZ7YvlgSHJ7ERD6bOY7Q4uxWm25c76HKEwIjZw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: '*' @@ -1186,22 +1229,23 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/utils': 5.17.0_eslint@8.12.0+typescript@4.6.3 - debug: 4.3.4 - eslint: 8.12.0 - tsutils: 3.21.0_typescript@4.6.3 - typescript: 4.6.3 + '@typescript-eslint/typescript-estree': 5.59.1(typescript@5.0.4) + '@typescript-eslint/utils': 5.59.1(eslint@8.39.0)(typescript@5.0.4) + debug: 4.3.4(supports-color@8.1.1) + eslint: 8.39.0 + tsutils: 3.21.0(typescript@5.0.4) + typescript: 5.0.4 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/types/5.17.0: - resolution: {integrity: sha512-AgQ4rWzmCxOZLioFEjlzOI3Ch8giDWx8aUDxyNw9iOeCvD3GEYAB7dxWGQy4T/rPVe8iPmu73jPHuaSqcjKvxw==} + /@typescript-eslint/types@5.59.1: + resolution: {integrity: sha512-dg0ICB+RZwHlysIy/Dh1SP+gnXNzwd/KS0JprD3Lmgmdq+dJAJnUPe1gNG34p0U19HvRlGX733d/KqscrGC1Pg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /@typescript-eslint/typescript-estree/5.17.0_typescript@4.6.3: - resolution: {integrity: sha512-X1gtjEcmM7Je+qJRhq7ZAAaNXYhTgqMkR10euC4Si6PIjb+kwEQHSxGazXUQXFyqfEXdkGf6JijUu5R0uceQzg==} + /@typescript-eslint/typescript-estree@5.59.1(typescript@5.0.4): + resolution: {integrity: sha512-lYLBBOCsFltFy7XVqzX0Ju+Lh3WPIAWxYpmH/Q7ZoqzbscLiCW00LeYCdsUnnfnj29/s1WovXKh2gwCoinHNGA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: typescript: '*' @@ -1209,57 +1253,55 @@ packages: typescript: optional: true dependencies: - '@typescript-eslint/types': 5.17.0 - '@typescript-eslint/visitor-keys': 5.17.0 - debug: 4.3.4 + '@typescript-eslint/types': 5.59.1 + '@typescript-eslint/visitor-keys': 5.59.1 + debug: 4.3.4(supports-color@8.1.1) globby: 11.1.0 is-glob: 4.0.3 - semver: 7.3.5 - tsutils: 3.21.0_typescript@4.6.3 - typescript: 4.6.3 + semver: 7.5.0 + tsutils: 3.21.0(typescript@5.0.4) + typescript: 5.0.4 transitivePeerDependencies: - supports-color dev: true - /@typescript-eslint/utils/5.17.0_eslint@8.12.0+typescript@4.6.3: - resolution: {integrity: sha512-DVvndq1QoxQH+hFv+MUQHrrWZ7gQ5KcJzyjhzcqB1Y2Xes1UQQkTRPUfRpqhS8mhTWsSb2+iyvDW1Lef5DD7vA==} + /@typescript-eslint/utils@5.59.1(eslint@8.39.0)(typescript@5.0.4): + resolution: {integrity: sha512-MkTe7FE+K1/GxZkP5gRj3rCztg45bEhsd8HYjczBuYm+qFHP5vtZmjx3B0yUCDotceQ4sHgTyz60Ycl225njmA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@8.39.0) '@types/json-schema': 7.0.11 - '@typescript-eslint/scope-manager': 5.17.0 - '@typescript-eslint/types': 5.17.0 - '@typescript-eslint/typescript-estree': 5.17.0_typescript@4.6.3 - eslint: 8.12.0 + '@types/semver': 7.3.13 + '@typescript-eslint/scope-manager': 5.59.1 + '@typescript-eslint/types': 5.59.1 + '@typescript-eslint/typescript-estree': 5.59.1(typescript@5.0.4) + eslint: 8.39.0 eslint-scope: 5.1.1 - eslint-utils: 3.0.0_eslint@8.12.0 + semver: 7.5.0 transitivePeerDependencies: - supports-color - typescript dev: true - /@typescript-eslint/visitor-keys/5.17.0: - resolution: {integrity: sha512-6K/zlc4OfCagUu7Am/BD5k8PSWQOgh34Nrv9Rxe2tBzlJ7uOeJ/h7ugCGDCeEZHT6k2CJBhbk9IsbkPI0uvUkA==} + /@typescript-eslint/visitor-keys@5.59.1: + resolution: {integrity: sha512-6waEYwBTCWryx0VJmP7JaM4FpipLsFl9CvYf2foAE8Qh/Y0s+bxWysciwOs0LTBED4JCaNxTZ5rGadB14M6dwA==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - '@typescript-eslint/types': 5.17.0 - eslint-visitor-keys: 3.3.0 + '@typescript-eslint/types': 5.59.1 + eslint-visitor-keys: 3.4.0 dev: true - /@ungap/promise-all-settled/1.1.2: - resolution: {integrity: sha512-sL/cEvJWAnClXw0wHk85/2L0G6Sj8UB0Ctc1TEMbKSsmpRosqhwj9gWgFRZSrBr2f9tiXISwNhCPmlfqUqyb9Q==} - dev: true - - /@vitejs/plugin-react/1.3.0: + /@vitejs/plugin-react@1.3.0: resolution: {integrity: sha512-H+yIupjUE4a+E4oeWUv4xUJIMR0DWBIMUG/DYgvj0J9Vu1rdHAlJ5JdbI+N1KDUD7Ee2fZ1DMPZ/NBg6mXtoCw==} engines: {node: '>=12.0.0'} dependencies: '@babel/core': 7.17.8 - '@babel/plugin-transform-react-jsx': 7.17.3_@babel+core@7.17.8 - '@babel/plugin-transform-react-jsx-development': 7.16.7_@babel+core@7.17.8 - '@babel/plugin-transform-react-jsx-self': 7.16.7_@babel+core@7.17.8 - '@babel/plugin-transform-react-jsx-source': 7.16.7_@babel+core@7.17.8 + '@babel/plugin-transform-react-jsx': 7.17.3(@babel/core@7.17.8) + '@babel/plugin-transform-react-jsx-development': 7.16.7(@babel/core@7.17.8) + '@babel/plugin-transform-react-jsx-self': 7.16.7(@babel/core@7.17.8) + '@babel/plugin-transform-react-jsx-source': 7.16.7(@babel/core@7.17.8) '@rollup/pluginutils': 4.2.0 react-refresh: 0.11.0 resolve: 1.22.0 @@ -1267,40 +1309,46 @@ packages: - supports-color dev: true - /@wessberg/stringutil/1.0.19: + /@wessberg/stringutil@1.0.19: resolution: {integrity: sha512-9AZHVXWlpN8Cn9k5BC/O0Dzb9E9xfEMXzYrNunwvkUTvuK7xgQPVRZpLo+jWCOZ5r8oBa8NIrHuPEu1hzbb6bg==} engines: {node: '>=8.0.0'} dev: true - /acorn-jsx/5.3.2_acorn@8.7.0: + /acorn-jsx@5.3.2(acorn@8.8.2): resolution: {integrity: sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==} peerDependencies: acorn: ^6.0.0 || ^7.0.0 || ^8.0.0 dependencies: - acorn: 8.7.0 + acorn: 8.8.2 dev: true - /acorn-walk/8.2.0: + /acorn-walk@8.2.0: resolution: {integrity: sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==} engines: {node: '>=0.4.0'} dev: true - /acorn/8.7.0: + /acorn@8.7.0: resolution: {integrity: sha512-V/LGr1APy+PXIwKebEWrkZPwoeoF+w1jiOBUmuxuiUIaOHtob8Qc9BTrYo7VuI5fR8tqsy+buA2WFooR5olqvQ==} engines: {node: '>=0.4.0'} hasBin: true dev: true - /agent-base/6.0.2: + /acorn@8.8.2: + resolution: {integrity: sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==} + engines: {node: '>=0.4.0'} + hasBin: true + dev: true + + /agent-base@6.0.2: resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==} engines: {node: '>= 6.0.0'} dependencies: - debug: 4.3.4 + debug: 4.3.4(supports-color@8.1.1) transitivePeerDependencies: - supports-color dev: true - /ajv-keywords/3.5.2_ajv@6.12.6: + /ajv-keywords@3.5.2(ajv@6.12.6): resolution: {integrity: sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==} peerDependencies: ajv: ^6.9.1 @@ -1308,7 +1356,7 @@ packages: ajv: 6.12.6 dev: true - /ajv/6.12.6: + /ajv@6.12.6: resolution: {integrity: sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==} dependencies: fast-deep-equal: 3.1.3 @@ -1317,36 +1365,45 @@ packages: uri-js: 4.4.1 dev: true - /ansi-align/3.0.1: + /ansi-align@3.0.1: resolution: {integrity: sha512-IOfwwBF5iczOjp/WeY4YxyjqAFMQoZufdQWDd19SEExbVLNXqvpzSJ/M7Za4/sCPmQ0+GRquoA7bGcINcxew6w==} dependencies: string-width: 4.2.3 dev: true - /ansi-colors/4.1.1: + /ansi-colors@4.1.1: resolution: {integrity: sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==} engines: {node: '>=6'} dev: true - /ansi-regex/5.0.1: + /ansi-colors@4.1.3: + resolution: {integrity: sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw==} + engines: {node: '>=6'} + dev: true + + /ansi-regex@5.0.1: resolution: {integrity: sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==} engines: {node: '>=8'} dev: true - /ansi-styles/3.2.1: + /ansi-sequence-parser@1.1.0: + resolution: {integrity: sha512-lEm8mt52to2fT8GhciPCGeCXACSz2UwIN4X2e2LJSnZ5uAbn2/dsYdOmUXq0AtWS5cpAupysIneExOgH0Vd2TQ==} + dev: true + + /ansi-styles@3.2.1: resolution: {integrity: sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==} engines: {node: '>=4'} dependencies: color-convert: 1.9.3 - /ansi-styles/4.3.0: + /ansi-styles@4.3.0: resolution: {integrity: sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==} engines: {node: '>=8'} dependencies: color-convert: 2.0.1 dev: true - /anymatch/3.1.2: + /anymatch@3.1.2: resolution: {integrity: sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==} engines: {node: '>= 8'} dependencies: @@ -1354,24 +1411,24 @@ packages: picomatch: 2.3.1 dev: true - /app-builder-bin/3.7.1: + /app-builder-bin@3.7.1: resolution: {integrity: sha512-ql93vEUq6WsstGXD+SBLSIQw6SNnhbDEM0swzgugytMxLp3rT24Ag/jcC80ZHxiPRTdew1niuR7P3/FCrDqIjw==} dev: true - /app-builder-lib/22.14.13: + /app-builder-lib@22.14.13: resolution: {integrity: sha512-SufmrtxU+D0Tn948fjEwAOlCN9757UXLkzzTWXMwZKR/5hisvgqeeBepWfphMIE6OkDGz0fbzEhL1P2Pty4XMg==} engines: {node: '>=14.0.0'} dependencies: + 7zip-bin: 5.1.1 '@develar/schema-utils': 2.6.5 '@electron/universal': 1.0.5 '@malept/flatpak-bundler': 0.4.0 - 7zip-bin: 5.1.1 async-exit-hook: 2.0.1 bluebird-lst: 1.0.9 builder-util: 22.14.13 builder-util-runtime: 8.9.2 chromium-pickle-js: 0.2.0 - debug: 4.3.4 + debug: 4.3.4(supports-color@8.1.1) ejs: 3.1.6 electron-osx-sign: 0.5.0 electron-publish: 22.14.13 @@ -1385,61 +1442,80 @@ packages: minimatch: 3.1.2 read-config-file: 6.2.0 sanitize-filename: 1.6.3 - semver: 7.3.5 + semver: 7.5.0 temp-file: 3.4.0 transitivePeerDependencies: - supports-color dev: true - /arg/4.1.3: + /arg@4.1.3: resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==} dev: true - /argparse/1.0.10: + /argparse@1.0.10: resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} dependencies: sprintf-js: 1.0.3 dev: true - /argparse/2.0.1: + /argparse@2.0.1: resolution: {integrity: sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==} dev: true - /array-includes/3.1.4: - resolution: {integrity: sha512-ZTNSQkmWumEbiHO2GF4GmWxYVTiQyJy2XOTa15sdQSrvKn7l+180egQMqlrMOUMCyLMD7pmyQe4mMDUT6Behrw==} + /array-buffer-byte-length@1.0.0: + resolution: {integrity: sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==} + dependencies: + call-bind: 1.0.2 + is-array-buffer: 3.0.2 + dev: true + + /array-includes@3.1.6: + resolution: {integrity: sha512-sgTbLvL6cNnw24FnbaDyjmvddQ2ML8arZsgaJhoABMoplz/4QRhtrYS+alr1BUM1Bwp6dhx8vVCBSLG+StwOFw==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 - define-properties: 1.1.3 - es-abstract: 1.19.2 - get-intrinsic: 1.1.1 + define-properties: 1.2.0 + es-abstract: 1.21.2 + get-intrinsic: 1.2.0 is-string: 1.0.7 dev: true - /array-union/2.1.0: + /array-union@2.1.0: resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} engines: {node: '>=8'} dev: true - /array.prototype.flat/1.2.5: - resolution: {integrity: sha512-KaYU+S+ndVqyUnignHftkwc58o3uVU1jzczILJ1tN2YaIZpFIKBiP/x/j97E5MVPsaCloPbqWLB/8qCTVvT2qg==} + /array.prototype.flat@1.3.1: + resolution: {integrity: sha512-roTU0KWIOmJ4DRLmwKd19Otg0/mT3qPNt0Qb3GWW8iObuZXxrjB/pzn0R3hqpRSWg4HCwqx+0vwOnWnvlOyeIA==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 - define-properties: 1.1.3 - es-abstract: 1.19.2 + define-properties: 1.2.0 + es-abstract: 1.21.2 + es-shim-unscopables: 1.0.0 dev: true - /array.prototype.flatmap/1.2.5: - resolution: {integrity: sha512-08u6rVyi1Lj7oqWbS9nUxliETrtIROT4XGTA4D/LWGten6E3ocm7cy9SIrmNHOL5XVbVuckUp3X6Xyg8/zpvHA==} + /array.prototype.flatmap@1.3.1: + resolution: {integrity: sha512-8UGn9O1FDVvMNB0UlLv4voxRMze7+FpHyF5mSMRjWHUMlpoDViniy05870VlxhfgTnLbpuwTzvD76MTtWxB/mQ==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 - define-properties: 1.1.3 - es-abstract: 1.19.2 + define-properties: 1.2.0 + es-abstract: 1.21.2 + es-shim-unscopables: 1.0.0 dev: true - /asar/3.1.0: + /array.prototype.tosorted@1.1.1: + resolution: {integrity: sha512-pZYPXPRl2PqWcsUs6LOMn+1f1532nEoPTYowBtqLwAW+W8vSVhkIGnmOX1t/UQjD6YGI0vcD2B1U7ZFGQH9jnQ==} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + es-abstract: 1.21.2 + es-shim-unscopables: 1.0.0 + get-intrinsic: 1.2.0 + dev: true + + /asar@3.1.0: resolution: {integrity: sha512-vyxPxP5arcAqN4F/ebHd/HhwnAiZtwhglvdmc7BR2f0ywbVNTOpSeyhLDbGXtE/y58hv1oC75TaNIXutnsOZsQ==} engines: {node: '>=10.12.0'} hasBin: true @@ -1452,77 +1528,82 @@ packages: '@types/glob': 7.2.0 dev: true - /assert-plus/1.0.0: + /assert-plus@1.0.0: resolution: {integrity: sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=} engines: {node: '>=0.8'} requiresBuild: true dev: true optional: true - /assertion-error/1.1.0: + /assertion-error@1.1.0: resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==} dev: true - /astral-regex/2.0.0: + /astral-regex@2.0.0: resolution: {integrity: sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==} engines: {node: '>=8'} requiresBuild: true dev: true optional: true - /async-exit-hook/2.0.1: + /async-exit-hook@2.0.1: resolution: {integrity: sha512-NW2cX8m1Q7KPA7a5M2ULQeZ2wR5qI5PAbw5L0UOMxdioVk9PMZ0h1TmyZEkPYrCvYjDlFICusOu1dlEKAAeXBw==} engines: {node: '>=0.12.0'} dev: true - /async/0.9.2: + /async@0.9.2: resolution: {integrity: sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0=} dev: true - /asynckit/0.4.0: + /asynckit@0.4.0: resolution: {integrity: sha1-x57Zf380y48robyXkLzDZkdLS3k=} dev: true - /at-least-node/1.0.0: + /at-least-node@1.0.0: resolution: {integrity: sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==} engines: {node: '>= 4.0.0'} dev: true - /babel-plugin-macros/2.8.0: + /available-typed-arrays@1.0.5: + resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==} + engines: {node: '>= 0.4'} + dev: true + + /babel-plugin-macros@2.8.0: resolution: {integrity: sha512-SEP5kJpfGYqYKpBrj5XU3ahw5p5GOHJ0U5ssOSQ/WBVdwkD2Dzlce95exQTs3jOVWPPKLBN2rlEWkCK7dSmLvg==} dependencies: '@babel/runtime': 7.17.8 cosmiconfig: 6.0.0 resolve: 1.22.0 - /balanced-match/1.0.2: + /balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} dev: true - /base64-js/1.5.1: + /base64-js@1.5.1: resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==} - /binary-extensions/2.2.0: + /binary-extensions@2.2.0: resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} engines: {node: '>=8'} dev: true - /bluebird-lst/1.0.9: + /bluebird-lst@1.0.9: resolution: {integrity: sha512-7B1Rtx82hjnSD4PGLAjVWeYH3tHAcVUmChh85a3lltKQm6FresXh9ErQo6oAv6CqxttczC3/kEg8SY5NluPuUw==} dependencies: bluebird: 3.7.2 dev: true - /bluebird/3.7.2: + /bluebird@3.7.2: resolution: {integrity: sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==} dev: true - /boolean/3.2.0: + /boolean@3.2.0: resolution: {integrity: sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==} dev: true optional: true - /boxen/5.1.2: + /boxen@5.1.2: resolution: {integrity: sha512-9gYgQKXx+1nP8mP7CzFyaUARhg7D3n1dF/FnErWmu9l6JvGpNUN278h0aSb+QjoiKSWG+iZ3uHrcqk0qrY9RQQ==} engines: {node: '>=10'} dependencies: @@ -1536,59 +1617,47 @@ packages: wrap-ansi: 7.0.0 dev: true - /brace-expansion/1.1.11: + /brace-expansion@1.1.11: resolution: {integrity: sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==} dependencies: balanced-match: 1.0.2 concat-map: 0.0.1 dev: true - /brace-expansion/2.0.1: + /brace-expansion@2.0.1: resolution: {integrity: sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==} dependencies: balanced-match: 1.0.2 dev: true - /braces/3.0.2: + /braces@3.0.2: resolution: {integrity: sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==} engines: {node: '>=8'} dependencies: fill-range: 7.0.1 dev: true - /browser-stdout/1.3.1: + /browser-stdout@1.3.1: resolution: {integrity: sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==} dev: true - /browserslist-generator/1.0.65: - resolution: {integrity: sha512-2+p27BTZ0T6fGAn57IZOoGRTDqIhaHVPHWTg5ZejMA/SKaQG1ChvfOnb9sxqRwLMUGtrUXbX0QQA7H1s6oQh0A==} - engines: {node: '>=8.0.0'} + /browserslist-generator@2.0.3: + resolution: {integrity: sha512-3j8ogwvlBpOEDR3f5n1H2n5BWXqHPWi/Xm8EC1DPJy5BWl4WkSFisatBygH/L9AEmg0MtOfcR1QnMuM9XL28jA==} + engines: {node: '>=16.15.1', npm: '>=7.0.0', pnpm: '>=3.2.0', yarn: '>=1.13'} dependencies: - '@mdn/browser-compat-data': 4.1.14 + '@mdn/browser-compat-data': 5.2.54 '@types/object-path': 0.11.1 - '@types/semver': 7.3.9 + '@types/semver': 7.3.13 '@types/ua-parser-js': 0.7.36 - browserslist: 4.18.1 - caniuse-lite: 1.0.30001324 - isbot: 3.3.4 + browserslist: 4.21.5 + caniuse-lite: 1.0.30001481 + isbot: 3.6.10 object-path: 0.11.8 - semver: 7.3.5 - ua-parser-js: 1.0.2 + semver: 7.5.0 + ua-parser-js: 1.0.35 dev: true - /browserslist/4.18.1: - resolution: {integrity: sha512-8ScCzdpPwR2wQh8IT82CA2VgDwjHyqMovPBZSNH54+tm4Jk2pCuv90gmAdH6J84OCRWi0b4gMe6O6XPXuJnjgQ==} - engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} - hasBin: true - dependencies: - caniuse-lite: 1.0.30001324 - electron-to-chromium: 1.4.103 - escalade: 3.1.1 - node-releases: 2.0.2 - picocolors: 1.0.0 - dev: true - - /browserslist/4.20.2: + /browserslist@4.20.2: resolution: {integrity: sha512-CQOBCqp/9pDvDbx3xfMi+86pr4KXIf2FDkTTdeuYw8OxS9t898LA1Khq57gtufFILXpfgsSx5woNgsBgvGjpsA==} engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true @@ -1598,37 +1667,47 @@ packages: escalade: 3.1.1 node-releases: 2.0.2 picocolors: 1.0.0 + + /browserslist@4.21.5: + resolution: {integrity: sha512-tUkiguQGW7S3IhB7N+c2MV/HZPSCPAAiYBZXLsBhFB/PCy6ZKKsZrmBayHV9fdGV/ARIfJ14NkxKzRDjvp7L6w==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + dependencies: + caniuse-lite: 1.0.30001481 + electron-to-chromium: 1.4.377 + node-releases: 2.0.10 + update-browserslist-db: 1.0.11(browserslist@4.21.5) dev: true - /buffer-alloc-unsafe/1.1.0: + /buffer-alloc-unsafe@1.1.0: resolution: {integrity: sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==} dev: true - /buffer-alloc/1.2.0: + /buffer-alloc@1.2.0: resolution: {integrity: sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==} dependencies: buffer-alloc-unsafe: 1.1.0 buffer-fill: 1.0.0 dev: true - /buffer-crc32/0.2.13: + /buffer-crc32@0.2.13: resolution: {integrity: sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=} dev: true - /buffer-equal/1.0.0: + /buffer-equal@1.0.0: resolution: {integrity: sha1-WWFrSYME1Var1GaWayLu2j7KX74=} engines: {node: '>=0.4.0'} dev: true - /buffer-fill/1.0.0: + /buffer-fill@1.0.0: resolution: {integrity: sha1-+PeLdniYiO858gXNY39o5wISKyw=} dev: true - /buffer-from/1.1.2: + /buffer-from@1.1.2: resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} dev: true - /buffer/5.7.1: + /buffer@5.7.1: resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==} requiresBuild: true dependencies: @@ -1637,35 +1716,35 @@ packages: dev: true optional: true - /buffer/6.0.3: + /buffer@6.0.3: resolution: {integrity: sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==} dependencies: base64-js: 1.5.1 ieee754: 1.2.1 dev: false - /builder-util-runtime/8.9.2: + /builder-util-runtime@8.9.2: resolution: {integrity: sha512-rhuKm5vh7E0aAmT6i8aoSfEjxzdYEFX7zDApK+eNgOhjofnWb74d9SRJv0H/8nsgOkos0TZ4zxW0P8J4N7xQ2A==} engines: {node: '>=12.0.0'} dependencies: - debug: 4.3.4 + debug: 4.3.4(supports-color@8.1.1) sax: 1.2.4 transitivePeerDependencies: - supports-color dev: true - /builder-util/22.14.13: + /builder-util@22.14.13: resolution: {integrity: sha512-oePC/qrrUuerhmH5iaCJzPRAKlSBylrhzuAJmRQClTyWnZUv6jbaHh+VoHMbEiE661wrj2S2aV7/bQh12cj1OA==} dependencies: + 7zip-bin: 5.1.1 '@types/debug': 4.1.7 '@types/fs-extra': 9.0.13 - 7zip-bin: 5.1.1 app-builder-bin: 3.7.1 bluebird-lst: 1.0.9 builder-util-runtime: 8.9.2 chalk: 4.1.2 cross-spawn: 7.0.3 - debug: 4.3.4 + debug: 4.3.4(supports-color@8.1.1) fs-extra: 10.0.1 http-proxy-agent: 5.0.0 https-proxy-agent: 5.0.0 @@ -1678,7 +1757,26 @@ packages: - supports-color dev: true - /cacheable-request/6.1.0: + /c8@7.13.0: + resolution: {integrity: sha512-/NL4hQTv1gBL6J6ei80zu3IiTrmePDKXKXOTLpHvcIWZTVYQlDhVWjjWvkhICylE8EwwnMVzDZugCvdx0/DIIA==} + engines: {node: '>=10.12.0'} + hasBin: true + dependencies: + '@bcoe/v8-coverage': 0.2.3 + '@istanbuljs/schema': 0.1.3 + find-up: 5.0.0 + foreground-child: 2.0.0 + istanbul-lib-coverage: 3.2.0 + istanbul-lib-report: 3.0.0 + istanbul-reports: 3.1.5 + rimraf: 3.0.2 + test-exclude: 6.0.0 + v8-to-istanbul: 9.1.0 + yargs: 16.2.0 + yargs-parser: 20.2.9 + dev: true + + /cacheable-request@6.1.0: resolution: {integrity: sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==} engines: {node: '>=8'} dependencies: @@ -1691,49 +1789,52 @@ packages: responselike: 1.0.2 dev: true - /call-bind/1.0.2: + /call-bind@1.0.2: resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==} dependencies: function-bind: 1.1.1 - get-intrinsic: 1.1.1 + get-intrinsic: 1.2.0 dev: true - /callsites/3.1.0: + /callsites@3.1.0: resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} engines: {node: '>=6'} - /camelcase/6.3.0: + /camelcase@6.3.0: resolution: {integrity: sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==} engines: {node: '>=10'} dev: true - /caniuse-lite/1.0.30001324: + /caniuse-lite@1.0.30001324: resolution: {integrity: sha512-/eYp1J6zYh1alySQB4uzYFkLmxxI8tk0kxldbNHXp8+v+rdMKdUBNjRLz7T7fz6Iox+1lIdYpc7rq6ZcXfTukg==} + + /caniuse-lite@1.0.30001481: + resolution: {integrity: sha512-KCqHwRnaa1InZBtqXzP98LPg0ajCVujMKjqKDhZEthIpAsJl/YEIa3YvXjGXPVqzZVguccuu7ga9KOE1J9rKPQ==} dev: true - /chai-as-promised/7.1.1_chai@4.3.6: + /chai-as-promised@7.1.1(chai@4.3.7): resolution: {integrity: sha512-azL6xMoi+uxu6z4rhWQ1jbdUhOMhis2PvscD/xjLqNMkv3BPPp2JyyuTHOrf9BOosGpNQ11v6BKv/g57RXbiaA==} peerDependencies: chai: '>= 2.1.2 < 5' dependencies: - chai: 4.3.6 + chai: 4.3.7 check-error: 1.0.2 dev: true - /chai/4.3.6: - resolution: {integrity: sha512-bbcp3YfHCUzMOvKqsztczerVgBKSsEijCySNlHHbX3VG1nskvqjz5Rfso1gGwD6w6oOV3eI60pKuMOV5MV7p3Q==} + /chai@4.3.7: + resolution: {integrity: sha512-HLnAzZ2iupm25PlN0xFreAlBA5zaBSv3og0DdeGA4Ar6h6rJ3A0rolRUKJhSF2V10GZKDgWF/VmAEsNWjCRB+A==} engines: {node: '>=4'} dependencies: assertion-error: 1.1.0 check-error: 1.0.2 - deep-eql: 3.0.1 + deep-eql: 4.1.3 get-func-name: 2.0.0 loupe: 2.3.4 pathval: 1.1.1 type-detect: 4.0.8 dev: true - /chalk/2.4.2: + /chalk@2.4.2: resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} engines: {node: '>=4'} dependencies: @@ -1741,7 +1842,7 @@ packages: escape-string-regexp: 1.0.5 supports-color: 5.5.0 - /chalk/4.1.2: + /chalk@4.1.2: resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} engines: {node: '>=10'} dependencies: @@ -1749,11 +1850,11 @@ packages: supports-color: 7.2.0 dev: true - /check-error/1.0.2: + /check-error@1.0.2: resolution: {integrity: sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=} dev: true - /chokidar/3.5.3: + /chokidar@3.5.3: resolution: {integrity: sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==} engines: {node: '>= 8.10.0'} dependencies: @@ -1768,24 +1869,24 @@ packages: fsevents: 2.3.2 dev: true - /chromium-pickle-js/0.2.0: + /chromium-pickle-js@0.2.0: resolution: {integrity: sha1-BKEGZywYsIWrd02YPfo+oTjyIgU=} dev: true - /ci-info/2.0.0: + /ci-info@2.0.0: resolution: {integrity: sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==} dev: true - /ci-info/3.3.0: + /ci-info@3.3.0: resolution: {integrity: sha512-riT/3vI5YpVH6/qomlDnJow6TBee2PBKSEpx3O32EGPYbWGIRsIlGRms3Sm74wYE1JMo8RnO04Hb12+v1J5ICw==} dev: true - /cli-boxes/2.2.1: + /cli-boxes@2.2.1: resolution: {integrity: sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==} engines: {node: '>=6'} dev: true - /cli-truncate/2.1.0: + /cli-truncate@2.1.0: resolution: {integrity: sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==} engines: {node: '>=8'} requiresBuild: true @@ -1795,7 +1896,7 @@ packages: dev: true optional: true - /cliui/7.0.4: + /cliui@7.0.4: resolution: {integrity: sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==} dependencies: string-width: 4.2.3 @@ -1803,75 +1904,75 @@ packages: wrap-ansi: 7.0.0 dev: true - /clone-response/1.0.2: + /clone-response@1.0.2: resolution: {integrity: sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=} dependencies: mimic-response: 1.0.1 dev: true - /color-convert/1.9.3: + /color-convert@1.9.3: resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} dependencies: color-name: 1.1.3 - /color-convert/2.0.1: + /color-convert@2.0.1: resolution: {integrity: sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==} engines: {node: '>=7.0.0'} dependencies: color-name: 1.1.4 dev: true - /color-name/1.1.3: + /color-name@1.1.3: resolution: {integrity: sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=} - /color-name/1.1.4: + /color-name@1.1.4: resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==} dev: true - /colors/1.0.3: + /colors@1.0.3: resolution: {integrity: sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=} engines: {node: '>=0.1.90'} dev: true - /combined-stream/1.0.8: + /combined-stream@1.0.8: resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==} engines: {node: '>= 0.8'} dependencies: delayed-stream: 1.0.0 dev: true - /commander/2.9.0: + /commander@2.9.0: resolution: {integrity: sha1-nJkJQXbhIkDLItbFFGCYQA/g99Q=} engines: {node: '>= 0.6.x'} dependencies: graceful-readlink: 1.0.1 dev: true - /commander/5.1.0: + /commander@5.1.0: resolution: {integrity: sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg==} engines: {node: '>= 6'} dev: true - /compare-version/0.1.2: + /compare-version@0.1.2: resolution: {integrity: sha1-AWLsLZNR9d3VmpICy6k1NmpyUIA=} engines: {node: '>=0.10.0'} dev: true - /compatfactory/0.0.12_typescript@4.6.3: - resolution: {integrity: sha512-DD5S1s2mIoVIpYfhCqNZPbOFlt9JDLkXc4d8fAZaeWWIsl7w3bmVS0HNlUkU2SB6iZOdXOjYZgeJZClmL1xnRg==} - engines: {node: '>=10.0.0'} + /compatfactory@2.0.9(typescript@4.6.4): + resolution: {integrity: sha512-fvO+AWcmbO7P1S+A3mwm3IGr74eHMeq5ZLhNhyNQc9mVDNHT4oe0Gg0ksdIFFNXLK7k7Z/TYcLAUSQdRgh1bsA==} + engines: {node: '>=14.9.0'} peerDependencies: typescript: '>=3.x || >= 4.x' dependencies: - helpertypes: 0.0.17 - typescript: 4.6.3 + helpertypes: 0.0.19 + typescript: 4.6.4 dev: true - /concat-map/0.0.1: - resolution: {integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=} + /concat-map@0.0.1: + resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} dev: true - /concat-stream/1.6.2: + /concat-stream@1.6.2: resolution: {integrity: sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==} engines: {'0': node >= 0.8} dependencies: @@ -1881,7 +1982,7 @@ packages: typedarray: 0.0.6 dev: true - /concurrently/7.1.0: + /concurrently@7.1.0: resolution: {integrity: sha512-Bz0tMlYKZRUDqJlNiF/OImojMB9ruKUz6GCfmhFnSapXgPe+3xzY4byqoKG9tUZ7L2PGEUjfLPOLfIX3labnmw==} engines: {node: ^12.20.0 || ^14.13.0 || >=16.0.0} hasBin: true @@ -1896,7 +1997,7 @@ packages: yargs: 16.2.0 dev: true - /config-chain/1.1.13: + /config-chain@1.1.13: resolution: {integrity: sha512-qj+f8APARXHrM0hraqXYb2/bOVSV4PvJQlNZ/DVj0QrmNM2q2euizkeuVckQ57J+W0mRH6Hvi+k50M4Jul2VRQ==} dependencies: ini: 1.3.8 @@ -1904,7 +2005,7 @@ packages: dev: true optional: true - /configstore/5.0.1: + /configstore@5.0.1: resolution: {integrity: sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==} engines: {node: '>=8'} dependencies: @@ -1916,22 +2017,22 @@ packages: xdg-basedir: 4.0.0 dev: true - /convert-source-map/1.8.0: + /convert-source-map@1.8.0: resolution: {integrity: sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==} dependencies: safe-buffer: 5.1.2 - /core-util-is/1.0.2: + /core-util-is@1.0.2: resolution: {integrity: sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=} requiresBuild: true dev: true optional: true - /core-util-is/1.0.3: + /core-util-is@1.0.3: resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==} dev: true - /cosmiconfig/6.0.0: + /cosmiconfig@6.0.0: resolution: {integrity: sha512-xb3ZL6+L8b9JLLCx3ZdoZy4+2ECphCMo2PwqgP1tlfVq6M6YReyzBJtvWWtbDSpNr9hn96pkCiZqUcFEc+54Qg==} engines: {node: '>=8'} dependencies: @@ -1941,7 +2042,7 @@ packages: path-type: 4.0.0 yaml: 1.10.2 - /crc/3.8.0: + /crc@3.8.0: resolution: {integrity: sha512-iX3mfgcTMIq3ZKLIsVFAbv7+Mc10kxabAGQb8HvjA1o3T1PIYprbakQ65d3I+2HGHt6nSKkM9PYjgoJO2KcFBQ==} requiresBuild: true dependencies: @@ -1949,11 +2050,11 @@ packages: dev: true optional: true - /create-require/1.1.1: + /create-require@1.1.1: resolution: {integrity: sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==} dev: true - /cross-spawn/7.0.3: + /cross-spawn@7.0.3: resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} engines: {node: '>= 8'} dependencies: @@ -1962,56 +2063,53 @@ packages: which: 2.0.2 dev: true - /crosspath/1.0.0: - resolution: {integrity: sha512-mpjkSErNO6vioL/Cde2aF4UBysPFEMyn+1AN1t7Oc4yqvzSRWe8iBte4P8BHyjo64OmC+ZBxwjIqmpSpIWiQ7Q==} - engines: {node: '>=10.0.0'} + /crosspath@2.0.0: + resolution: {integrity: sha512-ju88BYCQ2uvjO2bR+SsgLSTwTSctU+6Vp2ePbKPgSCZyy4MWZxYsT738DlKVRE5utUjobjPRm1MkTYKJxCmpTA==} + engines: {node: '>=14.9.0'} dependencies: - '@types/node': 16.11.26 + '@types/node': 17.0.45 dev: true - /crypto-random-string/2.0.0: + /crypto-random-string@2.0.0: resolution: {integrity: sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==} engines: {node: '>=8'} dev: true - /csstype/3.0.11: + /csstype@3.0.11: resolution: {integrity: sha512-sa6P2wJ+CAbgyy4KFssIb/JNMLxFvKF1pCYCSXS8ZMuqZnMsrxqI2E5sPyoTpxoPU/gVZMzr2zjOfg8GIZOMsw==} - /date-fns/2.28.0: + /date-fns@2.28.0: resolution: {integrity: sha512-8d35hViGYx/QH0icHYCeLmsLmMUheMmTyV9Fcm6gvNwdw31yXXH+O85sOBJ+OLnLQMKZowvpKb6FgMIQjcpvQw==} engines: {node: '>=0.11'} dev: true - /dateformat/4.6.3: + /dateformat@4.6.3: resolution: {integrity: sha512-2P0p0pFGzHS5EMnhdxQi7aJN+iMheud0UhG4dlE1DLAlvL8JHjJJTX/CSm4JXwV0Ka5nGk3zC5mcb5bUQUxxMA==} dev: true - /debug/2.6.9: + /debug@2.6.9: resolution: {integrity: sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==} - dependencies: - ms: 2.0.0 - dev: true - - /debug/3.2.7: - resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} - dependencies: - ms: 2.1.3 - dev: true - - /debug/4.3.3_supports-color@8.1.1: - resolution: {integrity: sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q==} - engines: {node: '>=6.0'} peerDependencies: supports-color: '*' peerDependenciesMeta: supports-color: optional: true dependencies: - ms: 2.1.2 - supports-color: 8.1.1 + ms: 2.0.0 dev: true - /debug/4.3.4: + /debug@3.2.7: + resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.1.3 + dev: true + + /debug@4.3.4(supports-color@8.1.1): resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} engines: {node: '>=6.0'} peerDependencies: @@ -2021,68 +2119,79 @@ packages: optional: true dependencies: ms: 2.1.2 - dev: true + supports-color: 8.1.1 - /decamelize/4.0.0: + /decamelize@4.0.0: resolution: {integrity: sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==} engines: {node: '>=10'} dev: true - /decompress-response/3.3.0: + /decompress-response@3.3.0: resolution: {integrity: sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=} engines: {node: '>=4'} dependencies: mimic-response: 1.0.1 dev: true - /deep-eql/3.0.1: - resolution: {integrity: sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==} - engines: {node: '>=0.12'} + /deep-eql@4.1.3: + resolution: {integrity: sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==} + engines: {node: '>=6'} dependencies: type-detect: 4.0.8 dev: true - /deep-extend/0.6.0: + /deep-extend@0.6.0: resolution: {integrity: sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==} engines: {node: '>=4.0.0'} dev: true - /deep-is/0.1.4: + /deep-is@0.1.4: resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} dev: true - /defer-to-connect/1.1.3: + /defer-to-connect@1.1.3: resolution: {integrity: sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==} dev: true - /define-properties/1.1.3: - resolution: {integrity: sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==} + /define-lazy-prop@2.0.0: + resolution: {integrity: sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==} + engines: {node: '>=8'} + dev: true + + /define-properties@1.2.0: + resolution: {integrity: sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==} engines: {node: '>= 0.4'} dependencies: + has-property-descriptors: 1.0.0 object-keys: 1.1.1 dev: true - /delayed-stream/1.0.0: + /delayed-stream@1.0.0: resolution: {integrity: sha1-3zrhmayt+31ECqrgsp4icrJOxhk=} engines: {node: '>=0.4.0'} dev: true - /detect-node/2.1.0: + /detect-node@2.1.0: resolution: {integrity: sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==} dev: true optional: true - /diff/4.0.2: + /diff@4.0.2: resolution: {integrity: sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==} engines: {node: '>=0.3.1'} dev: true - /diff/5.0.0: + /diff@5.0.0: resolution: {integrity: sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==} engines: {node: '>=0.3.1'} dev: true - /dir-compare/2.4.0: + /diff@5.1.0: + resolution: {integrity: sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw==} + engines: {node: '>=0.3.1'} + dev: true + + /dir-compare@2.4.0: resolution: {integrity: sha512-l9hmu8x/rjVC9Z2zmGzkhOEowZvW7pmYws5CWHutg8u1JgvsKWMx7Q/UODeu4djLZ4FgW5besw5yvMQnBHzuCA==} hasBin: true dependencies: @@ -2092,14 +2201,14 @@ packages: minimatch: 3.0.4 dev: true - /dir-glob/3.0.1: + /dir-glob@3.0.1: resolution: {integrity: sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==} engines: {node: '>=8'} dependencies: path-type: 4.0.0 dev: true - /dmg-builder/22.14.13: + /dmg-builder@22.14.13: resolution: {integrity: sha512-xNOugB6AbIRETeU2uID15sUfjdZZcKdxK8xkFnwIggsM00PJ12JxpLNPTjcRoUnfwj3WrPjilrO64vRMwNItQg==} dependencies: app-builder-lib: 22.14.13 @@ -2114,7 +2223,7 @@ packages: - supports-color dev: true - /dmg-license/1.0.11: + /dmg-license@1.0.11: resolution: {integrity: sha512-ZdzmqwKmECOWJpqefloC5OJy1+WZBBse5+MR88z9g9Zn4VY+WYUkAyojmhzJckH5YbbZGcYIuGAkY5/Ys5OM2Q==} engines: {node: '>=8'} os: [darwin] @@ -2133,41 +2242,41 @@ packages: dev: true optional: true - /doctrine/2.1.0: + /doctrine@2.1.0: resolution: {integrity: sha512-35mSku4ZXK0vfCuHEDAwt55dg2jNajHZ1odvF+8SSr82EsZY4QmXfuWso8oEd8zRhVObSN18aM0CjSdoBX7zIw==} engines: {node: '>=0.10.0'} dependencies: esutils: 2.0.3 dev: true - /doctrine/3.0.0: + /doctrine@3.0.0: resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==} engines: {node: '>=6.0.0'} dependencies: esutils: 2.0.3 dev: true - /dot-prop/5.3.0: + /dot-prop@5.3.0: resolution: {integrity: sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==} engines: {node: '>=8'} dependencies: is-obj: 2.0.0 dev: true - /dotenv-expand/5.1.0: + /dotenv-expand@5.1.0: resolution: {integrity: sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA==} dev: true - /dotenv/9.0.2: + /dotenv@9.0.2: resolution: {integrity: sha512-I9OvvrHp4pIARv4+x9iuewrWycX6CcZtoAu1XrzPxc5UygMJXJZYmBsynku8IkrJwgypE5DGNjDPmPRhDCptUg==} engines: {node: '>=10'} dev: true - /duplexer3/0.1.4: + /duplexer3@0.1.4: resolution: {integrity: sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=} dev: true - /ejs/3.1.6: + /ejs@3.1.6: resolution: {integrity: sha512-9lt9Zse4hPucPkoP7FHDF0LQAlGyF9JVpnClFLFH3aSSbxmyoqINRpp/9wePWJTUl4KOQwRL72Iw3InHPDkoGw==} engines: {node: '>=0.10.0'} hasBin: true @@ -2175,7 +2284,7 @@ packages: jake: 10.8.4 dev: true - /electron-builder/22.14.13: + /electron-builder@22.14.13: resolution: {integrity: sha512-3fgLxqF2TXVKiUPeg74O4V3l0l3j7ERLazo8sUbRkApw0+4iVAf2BJkHsHMaXiigsgCoEzK/F4/rB5rne/VAnw==} engines: {node: '>=14.0.0'} hasBin: true @@ -2196,7 +2305,7 @@ packages: - supports-color dev: true - /electron-osx-sign/0.5.0: + /electron-osx-sign@0.5.0: resolution: {integrity: sha512-icoRLHzFz/qxzDh/N4Pi2z4yVHurlsCAYQvsCSG7fCedJ4UJXBS6PoQyGH71IfcqKupcKeK7HX/NkyfG+v6vlQ==} engines: {node: '>=4.0.0'} hasBin: true @@ -2207,9 +2316,11 @@ packages: isbinaryfile: 3.0.3 minimist: 1.2.6 plist: 3.0.5 + transitivePeerDependencies: + - supports-color dev: true - /electron-publish/22.14.13: + /electron-publish@22.14.13: resolution: {integrity: sha512-0oP3QiNj3e8ewOaEpEJV/o6Zrmy2VarVvZ/bH7kyO/S/aJf9x8vQsKVWpsdmSiZ5DJEHgarFIXrnO0ZQf0P9iQ==} dependencies: '@types/fs-extra': 9.0.13 @@ -2223,11 +2334,14 @@ packages: - supports-color dev: true - /electron-to-chromium/1.4.103: + /electron-to-chromium@1.4.103: resolution: {integrity: sha512-c/uKWR1Z/W30Wy/sx3dkZoj4BijbXX85QKWu9jJfjho3LBAXNEGAEW3oWiGb+dotA6C6BzCTxL2/aLes7jlUeg==} + + /electron-to-chromium@1.4.377: + resolution: {integrity: sha512-H3BYG6DW5Z+l0xcfXaicJGxrpA4kMlCxnN71+iNX+dBLkRMOdVJqFJiAmbNZZKA1zISpRg17JR03qGifXNsJtw==} dev: true - /electron/17.3.1: + /electron@17.3.1: resolution: {integrity: sha512-C5E3uvXo1cmI+xYtbiMCW8AAGhBL0HbLA6cqD7FJmBoPtY88W/3A/km5z8oPGORyBNgSe7tSoHx4a6jWJIR+og==} engines: {node: '>= 8.6'} hasBin: true @@ -2240,73 +2354,110 @@ packages: - supports-color dev: true - /emoji-regex/8.0.0: + /emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} dev: true - /encodeurl/1.0.2: + /encodeurl@1.0.2: resolution: {integrity: sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=} engines: {node: '>= 0.8'} dev: true optional: true - /end-of-stream/1.4.4: + /end-of-stream@1.4.4: resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==} dependencies: once: 1.4.0 dev: true - /env-paths/2.2.1: + /enhanced-resolve@5.13.0: + resolution: {integrity: sha512-eyV8f0y1+bzyfh8xAwW/WTSZpLbjhqc4ne9eGSH4Zo2ejdyiNG9pU6mf9DG8a7+Auk6MFTlNOT4Y2y/9k8GKVg==} + engines: {node: '>=10.13.0'} + dependencies: + graceful-fs: 4.2.9 + tapable: 2.2.1 + dev: true + + /env-paths@2.2.1: resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==} engines: {node: '>=6'} dev: true - /error-ex/1.3.2: + /error-ex@1.3.2: resolution: {integrity: sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==} dependencies: is-arrayish: 0.2.1 - /es-abstract/1.19.2: - resolution: {integrity: sha512-gfSBJoZdlL2xRiOCy0g8gLMryhoe1TlimjzU99L/31Z8QEGIhVQI+EWwt5lT+AuU9SnorVupXFqqOGqGfsyO6w==} + /es-abstract@1.21.2: + resolution: {integrity: sha512-y/B5POM2iBnIxCiernH1G7rC9qQoM77lLIMQLuob0zhp8C56Po81+2Nj0WFKnd0pNReDTnkYryc+zhOzpEIROg==} engines: {node: '>= 0.4'} 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-bind: 1.1.1 - get-intrinsic: 1.1.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.3 - is-callable: 1.2.4 + 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.0 + object-inspect: 1.12.3 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 + object.assign: 4.1.4 + regexp.prototype.flags: 1.5.0 + 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 dev: true - /es-to-primitive/1.2.1: + /es-set-tostringtag@2.0.1: + resolution: {integrity: sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==} + engines: {node: '>= 0.4'} + dependencies: + get-intrinsic: 1.2.0 + has: 1.0.3 + has-tostringtag: 1.0.0 + dev: true + + /es-shim-unscopables@1.0.0: + resolution: {integrity: sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==} + dependencies: + has: 1.0.3 + dev: true + + /es-to-primitive@1.2.1: resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} engines: {node: '>= 0.4'} dependencies: - is-callable: 1.2.4 + is-callable: 1.2.7 is-date-object: 1.0.5 is-symbol: 1.0.4 dev: true - /es6-error/4.1.1: + /es6-error@4.1.1: resolution: {integrity: sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==} dev: true optional: true - /esbuild-android-64/0.14.30: + /esbuild-android-64@0.14.30: resolution: {integrity: sha512-vdJ7t8A8msPfKpYUGUV/KaTQRiZ0vDa2XSTlzXVkGGVHLKPeb85PBUtYJcEgw3htW3IdX5i1t1IMdQCwJJgNAg==} engines: {node: '>=12'} cpu: [x64] @@ -2315,7 +2466,7 @@ packages: dev: true optional: true - /esbuild-android-arm64/0.14.30: + /esbuild-android-arm64@0.14.30: resolution: {integrity: sha512-BdgGfxeA5hBQNErLr7BWJUA8xjflEfyaARICy8e0OJYNSAwDbEzOf8LyiKWSrDcgV129mWhi3VpbNQvOIDEHcg==} engines: {node: '>=12'} cpu: [arm64] @@ -2324,7 +2475,7 @@ packages: dev: true optional: true - /esbuild-darwin-64/0.14.30: + /esbuild-darwin-64@0.14.30: resolution: {integrity: sha512-VRaOXMMrsG5n53pl4qFZQdXy2+E0NoLP/QH3aDUI0+bQP+ZHDmbINKcDy2IX7GVFI9kqPS18iJNAs5a6/G2LZg==} engines: {node: '>=12'} cpu: [x64] @@ -2333,7 +2484,7 @@ packages: dev: true optional: true - /esbuild-darwin-arm64/0.14.30: + /esbuild-darwin-arm64@0.14.30: resolution: {integrity: sha512-qDez+fHMOrO9Oc9qjt/x+sy09RJVh62kik5tVybKRLmezeV4qczM9/sAYY57YN0aWLdHbcCj2YqJUWYJNsgKnw==} engines: {node: '>=12'} cpu: [arm64] @@ -2342,7 +2493,7 @@ packages: dev: true optional: true - /esbuild-freebsd-64/0.14.30: + /esbuild-freebsd-64@0.14.30: resolution: {integrity: sha512-mec1jENcImVVagddZlGWsdAUwBnzR5cgnhzCxv+9fSMxKbx1uZYLLUAnLPp8m/i934zrumR1xGjJ5VoWdPlI2w==} engines: {node: '>=12'} cpu: [x64] @@ -2351,7 +2502,7 @@ packages: dev: true optional: true - /esbuild-freebsd-arm64/0.14.30: + /esbuild-freebsd-arm64@0.14.30: resolution: {integrity: sha512-cpjbTs6Iok/AfeB0JgTzyUJTMStC1SQULmany5nHx6S4GTkSgaAHuJzZO0GcVWqghI4e0YL/bjXAhN5Mn6feNw==} engines: {node: '>=12'} cpu: [arm64] @@ -2360,7 +2511,7 @@ packages: dev: true optional: true - /esbuild-linux-32/0.14.30: + /esbuild-linux-32@0.14.30: resolution: {integrity: sha512-liIONVT4F2kZmOMwtwASqZ8WkIjb5HHBR9HUffdHiuotSTF3CyZO+EJf+Og+SYYuuVIvt0qHNSFjBA/iSESteQ==} engines: {node: '>=12'} cpu: [ia32] @@ -2369,7 +2520,7 @@ packages: dev: true optional: true - /esbuild-linux-64/0.14.30: + /esbuild-linux-64@0.14.30: resolution: {integrity: sha512-LUnpzoMpRqFON5En4qEj6NWiyH6a1K+Y2qYNKrCy5qPTjDoG/EWeqMz69n8Uv7pRuvDKl3FNGJ1dufTrA5i0sw==} engines: {node: '>=12'} cpu: [x64] @@ -2378,16 +2529,7 @@ packages: dev: true optional: true - /esbuild-linux-arm/0.14.30: - resolution: {integrity: sha512-97T+bbXnpqf7mfIG49UR7ZSJFGgvc22byn74qw3Kx2GDCBSQoVFjyWuKOHGXp8nXk3XYrdFF+mQ8yQ7aNsgQvg==} - engines: {node: '>=12'} - cpu: [arm] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /esbuild-linux-arm64/0.14.30: + /esbuild-linux-arm64@0.14.30: resolution: {integrity: sha512-DHZHn6FK5q/KL0fpNT/0jE38Nnyk2rXxKE9WENi95EXtqfOLPgE8tzjTZQNgpr61R95QX4ymQU26ni3IZk8buQ==} engines: {node: '>=12'} cpu: [arm64] @@ -2396,7 +2538,16 @@ packages: dev: true optional: true - /esbuild-linux-mips64le/0.14.30: + /esbuild-linux-arm@0.14.30: + resolution: {integrity: sha512-97T+bbXnpqf7mfIG49UR7ZSJFGgvc22byn74qw3Kx2GDCBSQoVFjyWuKOHGXp8nXk3XYrdFF+mQ8yQ7aNsgQvg==} + engines: {node: '>=12'} + cpu: [arm] + os: [linux] + requiresBuild: true + dev: true + optional: true + + /esbuild-linux-mips64le@0.14.30: resolution: {integrity: sha512-fLUzTFZ7uknC0aPTk7/lM7NmaG/9ZqE3SaHEphcaM009SZK/mDOvZugWi1ss6WGNhk13dUrhkfHcc4FSb9hYhg==} engines: {node: '>=12'} cpu: [mips64el] @@ -2405,7 +2556,7 @@ packages: dev: true optional: true - /esbuild-linux-ppc64le/0.14.30: + /esbuild-linux-ppc64le@0.14.30: resolution: {integrity: sha512-2Oudm2WEfj0dNU9bzIl5L/LrsMEmHWsOsYgJJqu8fDyUDgER+J1d33qz3cUdjsJk7gAENayIxDSpsuCszx0w3A==} engines: {node: '>=12'} cpu: [ppc64] @@ -2414,7 +2565,7 @@ packages: dev: true optional: true - /esbuild-linux-riscv64/0.14.30: + /esbuild-linux-riscv64@0.14.30: resolution: {integrity: sha512-RPMucPW47rV4t2jlelaE948iCRtbZf5RhifxSwzlpM1Mqdyu99MMNK0w4jFreGTmLN+oGomxIOxD6n+2E/XqHw==} engines: {node: '>=12'} cpu: [riscv64] @@ -2423,7 +2574,7 @@ packages: dev: true optional: true - /esbuild-linux-s390x/0.14.30: + /esbuild-linux-s390x@0.14.30: resolution: {integrity: sha512-OZ68r7ok6qO7hdwrwQn2p5jbIRRcUcVaAykB7e0uCA0ODwfeGunILM6phJtq2Oz4dlEEFvd+tSuma3paQKwt+A==} engines: {node: '>=12'} cpu: [s390x] @@ -2432,7 +2583,7 @@ packages: dev: true optional: true - /esbuild-netbsd-64/0.14.30: + /esbuild-netbsd-64@0.14.30: resolution: {integrity: sha512-iyejQUKn0TzpPkufq8pSCxOg9NheycQbMbPCmjefTe9wYuUlBt1TcHvdoJnYbQzsAhAh1BNq+s0ycRsIJFZzaQ==} engines: {node: '>=12'} cpu: [x64] @@ -2441,7 +2592,7 @@ packages: dev: true optional: true - /esbuild-openbsd-64/0.14.30: + /esbuild-openbsd-64@0.14.30: resolution: {integrity: sha512-UyK1MTMcy4j5fH260fsE1o6MVgWNhb62eCK2yCKCRazZv8Nqdc2WiP9ygjWidmEdCDS+A6MuVp9ozk9uoQtQpA==} engines: {node: '>=12'} cpu: [x64] @@ -2450,7 +2601,7 @@ packages: dev: true optional: true - /esbuild-sunos-64/0.14.30: + /esbuild-sunos-64@0.14.30: resolution: {integrity: sha512-aQRtRTNKHB4YuG+xXATe5AoRTNY48IJg5vjE8ElxfmjO9+KdX7MHFkTLhlKevCD6rNANtB3qOlSIeAiXTwHNqw==} engines: {node: '>=12'} cpu: [x64] @@ -2459,7 +2610,7 @@ packages: dev: true optional: true - /esbuild-windows-32/0.14.30: + /esbuild-windows-32@0.14.30: resolution: {integrity: sha512-9/fb1tPtpacMqxAXp3fGHowUDg/l9dVch5hKmCLEZC6PdGljh6h372zMdJwYfH0Bd5CCPT0Wx95uycBLJiqpXA==} engines: {node: '>=12'} cpu: [ia32] @@ -2468,7 +2619,7 @@ packages: dev: true optional: true - /esbuild-windows-64/0.14.30: + /esbuild-windows-64@0.14.30: resolution: {integrity: sha512-DHgITeUhPAnN9I5O6QBa1GVyPOhiYCn4S4TtQr7sO4+X0LNyqnlmA1M0qmGkUdDC1QQfjI8uQ4G/whdWb2pWIQ==} engines: {node: '>=12'} cpu: [x64] @@ -2477,7 +2628,7 @@ packages: dev: true optional: true - /esbuild-windows-arm64/0.14.30: + /esbuild-windows-arm64@0.14.30: resolution: {integrity: sha512-F1kLyQH7zSgjh5eLxogGZN7C9+KNs9m+s7Q6WZoMmCWT/6j998zlaoECHyM8izJRRfsvw2eZlEa1jO6/IOU1AQ==} engines: {node: '>=12'} cpu: [arm64] @@ -2486,7 +2637,7 @@ packages: dev: true optional: true - /esbuild/0.14.30: + /esbuild@0.14.30: resolution: {integrity: sha512-wCecQSBkIjp2xjuXY+wcXS/PpOQo9rFh4NAKPh4Pm9f3fuLcnxkR0rDzA+mYP88FtXIUcXUyYmaIgfrzRl55jA==} engines: {node: '>=12'} hasBin: true @@ -2514,125 +2665,167 @@ packages: esbuild-windows-arm64: 0.14.30 dev: true - /escalade/3.1.1: + /escalade@3.1.1: resolution: {integrity: sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==} engines: {node: '>=6'} - dev: true - /escape-goat/2.1.1: + /escape-goat@2.1.1: resolution: {integrity: sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==} engines: {node: '>=8'} dev: true - /escape-html/1.0.3: + /escape-html@1.0.3: resolution: {integrity: sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=} dev: true - /escape-string-regexp/1.0.5: - resolution: {integrity: sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=} + /escape-string-regexp@1.0.5: + resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} engines: {node: '>=0.8.0'} - /escape-string-regexp/4.0.0: + /escape-string-regexp@4.0.0: resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} engines: {node: '>=10'} - /eslint-config-prettier/8.5.0_eslint@8.12.0: - resolution: {integrity: sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==} + /eslint-config-prettier@8.8.0(eslint@8.39.0): + resolution: {integrity: sha512-wLbQiFre3tdGgpDv67NQKnJuTlcUVYHas3k+DZCc2U2BadthoEY4B7hLPvAxaqdyOGCzuLfii2fqGph10va7oA==} hasBin: true peerDependencies: eslint: '>=7.0.0' dependencies: - eslint: 8.12.0 + eslint: 8.39.0 dev: true - /eslint-import-resolver-node/0.3.6: - resolution: {integrity: sha512-0En0w03NRVMn9Uiyn8YRPDKvWjxCWkslUEhGNTdGx15RvPJYQ+lbOlqrlNI2vEAs4pDYK4f/HN2TbDmk5TP0iw==} + /eslint-import-resolver-node@0.3.7: + resolution: {integrity: sha512-gozW2blMLJCeFpBwugLTGyvVjNoeo1knonXAcatC6bjPBZitotxdWf7Gimr25N4c0AAOo4eOUfaG82IJPDpqCA==} dependencies: debug: 3.2.7 - resolve: 1.22.0 - dev: true - - /eslint-import-resolver-typescript/2.7.0_dae71b730d6620b67a20047a747b2eda: - resolution: {integrity: sha512-MNHS3u5pebvROX4MjGP9coda589ZGfL1SqdxUV4kSrcclfDRWvNE2D+eljbnWVMvWDVRgT89nhscMHPKYGcObQ==} - engines: {node: '>=4'} - peerDependencies: - eslint: '*' - eslint-plugin-import: '*' - dependencies: - debug: 4.3.4 - eslint: 8.12.0 - eslint-plugin-import: 2.25.4_eslint@8.12.0 - glob: 7.2.0 - is-glob: 4.0.3 - resolve: 1.22.0 - tsconfig-paths: 3.14.1 + is-core-module: 2.12.0 + resolve: 1.22.2 transitivePeerDependencies: - supports-color dev: true - /eslint-module-utils/2.7.3: - resolution: {integrity: sha512-088JEC7O3lDZM9xGe0RerkOMd0EjFl+Yvd1jPWIkMT5u3H9+HC34mWWPnqPrN13gieT9pBOO+Qt07Nb/6TresQ==} - engines: {node: '>=4'} + /eslint-import-resolver-typescript@3.5.5(@typescript-eslint/parser@5.59.1)(eslint-plugin-import@2.27.5)(eslint@8.39.0): + resolution: {integrity: sha512-TdJqPHs2lW5J9Zpe17DZNQuDnox4xo2o+0tE7Pggain9Rbc19ik8kFtXdxZ250FVx2kF4vlt2RSf4qlUpG7bhw==} + engines: {node: ^14.18.0 || >=16.0.0} + peerDependencies: + eslint: '*' + eslint-plugin-import: '*' dependencies: - debug: 3.2.7 - find-up: 2.1.0 + debug: 4.3.4(supports-color@8.1.1) + enhanced-resolve: 5.13.0 + eslint: 8.39.0 + eslint-module-utils: 2.8.0(@typescript-eslint/parser@5.59.1)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.5.5)(eslint@8.39.0) + eslint-plugin-import: 2.27.5(@typescript-eslint/parser@5.59.1)(eslint-import-resolver-typescript@3.5.5)(eslint@8.39.0) + get-tsconfig: 4.5.0 + globby: 13.1.4 + is-core-module: 2.12.0 + is-glob: 4.0.3 + synckit: 0.8.5 + transitivePeerDependencies: + - '@typescript-eslint/parser' + - eslint-import-resolver-node + - eslint-import-resolver-webpack + - supports-color dev: true - /eslint-plugin-import/2.25.4_eslint@8.12.0: - resolution: {integrity: sha512-/KJBASVFxpu0xg1kIBn9AUa8hQVnszpwgE7Ld0lKAlx7Ie87yzEzCgSkekt+le/YVhiaosO4Y14GDAOc41nfxA==} + /eslint-module-utils@2.8.0(@typescript-eslint/parser@5.59.1)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.5.5)(eslint@8.39.0): + resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} engines: {node: '>=4'} peerDependencies: - eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 + '@typescript-eslint/parser': '*' + eslint: '*' + eslint-import-resolver-node: '*' + eslint-import-resolver-typescript: '*' + eslint-import-resolver-webpack: '*' + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true + eslint: + optional: true + eslint-import-resolver-node: + optional: true + eslint-import-resolver-typescript: + optional: true + eslint-import-resolver-webpack: + optional: true dependencies: - array-includes: 3.1.4 - array.prototype.flat: 1.2.5 - debug: 2.6.9 - doctrine: 2.1.0 - eslint: 8.12.0 - eslint-import-resolver-node: 0.3.6 - eslint-module-utils: 2.7.3 - has: 1.0.3 - is-core-module: 2.8.1 - is-glob: 4.0.3 - minimatch: 3.1.2 - object.values: 1.1.5 - resolve: 1.22.0 - tsconfig-paths: 3.14.1 + '@typescript-eslint/parser': 5.59.1(eslint@8.39.0)(typescript@5.0.4) + debug: 3.2.7 + eslint: 8.39.0 + eslint-import-resolver-node: 0.3.7 + eslint-import-resolver-typescript: 3.5.5(@typescript-eslint/parser@5.59.1)(eslint-plugin-import@2.27.5)(eslint@8.39.0) + transitivePeerDependencies: + - supports-color dev: true - /eslint-plugin-react-hooks/4.4.0_eslint@8.12.0: - resolution: {integrity: sha512-U3RVIfdzJaeKDQKEJbz5p3NW8/L80PCATJAfuojwbaEL+gBjfGdhUcGde+WGUW46Q5sr/NgxevsIiDtNXrvZaQ==} + /eslint-plugin-import@2.27.5(@typescript-eslint/parser@5.59.1)(eslint-import-resolver-typescript@3.5.5)(eslint@8.39.0): + resolution: {integrity: sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow==} + engines: {node: '>=4'} + peerDependencies: + '@typescript-eslint/parser': '*' + eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 + peerDependenciesMeta: + '@typescript-eslint/parser': + optional: true + dependencies: + '@typescript-eslint/parser': 5.59.1(eslint@8.39.0)(typescript@5.0.4) + 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: 8.39.0 + eslint-import-resolver-node: 0.3.7 + eslint-module-utils: 2.8.0(@typescript-eslint/parser@5.59.1)(eslint-import-resolver-node@0.3.7)(eslint-import-resolver-typescript@3.5.5)(eslint@8.39.0) + has: 1.0.3 + is-core-module: 2.12.0 + is-glob: 4.0.3 + minimatch: 3.1.2 + object.values: 1.1.6 + resolve: 1.22.2 + semver: 6.3.0 + tsconfig-paths: 3.14.1 + transitivePeerDependencies: + - eslint-import-resolver-typescript + - eslint-import-resolver-webpack + - supports-color + dev: true + + /eslint-plugin-react-hooks@4.6.0(eslint@8.39.0): + resolution: {integrity: sha512-oFc7Itz9Qxh2x4gNHStv3BqJq54ExXmfC+a1NjAta66IAN87Wu0R/QArgIS9qKzX3dXKPI9H5crl9QchNMY9+g==} engines: {node: '>=10'} peerDependencies: eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 dependencies: - eslint: 8.12.0 + eslint: 8.39.0 dev: true - /eslint-plugin-react/7.29.4_eslint@8.12.0: - resolution: {integrity: sha512-CVCXajliVh509PcZYRFyu/BoUEz452+jtQJq2b3Bae4v3xBUWPLCmtmBM+ZinG4MzwmxJgJ2M5rMqhqLVn7MtQ==} + /eslint-plugin-react@7.32.2(eslint@8.39.0): + resolution: {integrity: sha512-t2fBMa+XzonrrNkyVirzKlvn5RXzzPwRHtMvLAtVZrt8oxgnTQaYbU6SXTOO1mwQgp1y5+toMSKInnzGr0Knqg==} engines: {node: '>=4'} peerDependencies: eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 dependencies: - array-includes: 3.1.4 - array.prototype.flatmap: 1.2.5 + array-includes: 3.1.6 + array.prototype.flatmap: 1.3.1 + array.prototype.tosorted: 1.1.1 doctrine: 2.1.0 - eslint: 8.12.0 + eslint: 8.39.0 estraverse: 5.3.0 jsx-ast-utils: 3.2.2 minimatch: 3.1.2 - object.entries: 1.1.5 - object.fromentries: 2.0.5 - object.hasown: 1.1.0 - object.values: 1.1.5 + 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.3 + resolve: 2.0.0-next.4 semver: 6.3.0 - string.prototype.matchall: 4.0.7 + string.prototype.matchall: 4.0.8 dev: true - /eslint-scope/5.1.1: + /eslint-scope@5.1.1: resolution: {integrity: sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==} engines: {node: '>=8.0.0'} dependencies: @@ -2640,62 +2833,54 @@ packages: estraverse: 4.3.0 dev: true - /eslint-scope/7.1.1: - resolution: {integrity: sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==} + /eslint-scope@7.2.0: + resolution: {integrity: sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: esrecurse: 4.3.0 estraverse: 5.3.0 dev: true - /eslint-utils/3.0.0_eslint@8.12.0: - resolution: {integrity: sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==} - engines: {node: ^10.0.0 || ^12.0.0 || >= 14.0.0} - peerDependencies: - eslint: '>=5' - dependencies: - eslint: 8.12.0 - eslint-visitor-keys: 2.1.0 - dev: true - - /eslint-visitor-keys/2.1.0: - resolution: {integrity: sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==} - engines: {node: '>=10'} - dev: true - - /eslint-visitor-keys/3.3.0: - resolution: {integrity: sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==} + /eslint-visitor-keys@3.4.0: + resolution: {integrity: sha512-HPpKPUBQcAsZOsHAFwTtIKcYlCje62XB7SEAcxjtmW6TD1WVpkS6i6/hOVtTZIl4zGj/mBqpFVGvaDneik+VoQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true - /eslint/8.12.0: - resolution: {integrity: sha512-it1oBL9alZg1S8UycLm5YDMAkIhtH6FtAzuZs6YvoGVldWjbS08BkAdb/ymP9LlAyq8koANu32U7Ib/w+UNh8Q==} + /eslint@8.39.0: + resolution: {integrity: sha512-mwiok6cy7KTW7rBpo05k6+p4YVZByLNjAZ/ACB9DRCu4YDRwjXI01tWHp6KAUWelsBetTxKK/2sHB0vdS8Z2Og==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} hasBin: true dependencies: - '@eslint/eslintrc': 1.2.1 - '@humanwhocodes/config-array': 0.9.5 + '@eslint-community/eslint-utils': 4.4.0(eslint@8.39.0) + '@eslint-community/regexpp': 4.5.0 + '@eslint/eslintrc': 2.0.2 + '@eslint/js': 8.39.0 + '@humanwhocodes/config-array': 0.11.8 + '@humanwhocodes/module-importer': 1.0.1 + '@nodelib/fs.walk': 1.2.8 ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.3 - debug: 4.3.4 + debug: 4.3.4(supports-color@8.1.1) doctrine: 3.0.0 escape-string-regexp: 4.0.0 - eslint-scope: 7.1.1 - eslint-utils: 3.0.0_eslint@8.12.0 - eslint-visitor-keys: 3.3.0 - espree: 9.3.1 - esquery: 1.4.0 + eslint-scope: 7.2.0 + eslint-visitor-keys: 3.4.0 + espree: 9.5.1 + esquery: 1.5.0 esutils: 2.0.3 fast-deep-equal: 3.1.3 file-entry-cache: 6.0.1 - functional-red-black-tree: 1.0.1 + find-up: 5.0.0 glob-parent: 6.0.2 - globals: 13.13.0 + globals: 13.20.0 + grapheme-splitter: 1.0.4 ignore: 5.2.0 import-fresh: 3.3.0 imurmurhash: 0.1.4 is-glob: 4.0.3 + is-path-inside: 3.0.3 + js-sdsl: 4.4.0 js-yaml: 4.1.0 json-stable-stringify-without-jsonify: 1.0.1 levn: 0.4.1 @@ -2703,68 +2888,66 @@ packages: minimatch: 3.1.2 natural-compare: 1.4.0 optionator: 0.9.1 - regexpp: 3.2.0 strip-ansi: 6.0.1 strip-json-comments: 3.1.1 text-table: 0.2.0 - v8-compile-cache: 2.3.0 transitivePeerDependencies: - supports-color dev: true - /espree/9.3.1: - resolution: {integrity: sha512-bvdyLmJMfwkV3NCRl5ZhJf22zBFo1y8bYh3VYb+bfzqNB4Je68P2sSuXyuFquzWLebHpNd2/d5uv7yoP9ISnGQ==} + /espree@9.5.1: + resolution: {integrity: sha512-5yxtHSZXRSW5pvv3hAlXM5+/Oswi1AUFqBmbibKb5s6bp3rGIDkyXU6xCoyuuLhijr4SFwPrXRoZjz0AZDN9tg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dependencies: - acorn: 8.7.0 - acorn-jsx: 5.3.2_acorn@8.7.0 - eslint-visitor-keys: 3.3.0 + acorn: 8.8.2 + acorn-jsx: 5.3.2(acorn@8.8.2) + eslint-visitor-keys: 3.4.0 dev: true - /esprima/4.0.1: + /esprima@4.0.1: resolution: {integrity: sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==} engines: {node: '>=4'} hasBin: true dev: true - /esquery/1.4.0: - resolution: {integrity: sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==} + /esquery@1.5.0: + resolution: {integrity: sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==} engines: {node: '>=0.10'} dependencies: estraverse: 5.3.0 dev: true - /esrecurse/4.3.0: + /esrecurse@4.3.0: resolution: {integrity: sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==} engines: {node: '>=4.0'} dependencies: estraverse: 5.3.0 dev: true - /estraverse/4.3.0: + /estraverse@4.3.0: resolution: {integrity: sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==} engines: {node: '>=4.0'} dev: true - /estraverse/5.3.0: + /estraverse@5.3.0: resolution: {integrity: sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==} engines: {node: '>=4.0'} dev: true - /estree-walker/1.0.1: + /estree-walker@1.0.1: resolution: {integrity: sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==} dev: true - /estree-walker/2.0.2: + /estree-walker@2.0.2: resolution: {integrity: sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==} dev: true - /esutils/2.0.3: + /esutils@2.0.3: resolution: {integrity: sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==} engines: {node: '>=0.10.0'} dev: true - /extract-zip/1.7.0: + /extract-zip@1.7.0: resolution: {integrity: sha512-xoh5G1W/PB0/27lXgMQyIhP5DSY/LhoCsOyZgb+6iMmRtCwVBo55uKaMoEYrDCKQhWvqEip5ZPKAc6eFNyf/MA==} hasBin: true dependencies: @@ -2772,20 +2955,22 @@ packages: debug: 2.6.9 mkdirp: 0.5.6 yauzl: 2.10.0 + transitivePeerDependencies: + - supports-color dev: true - /extsprintf/1.4.1: + /extsprintf@1.4.1: resolution: {integrity: sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA==} engines: {'0': node >=0.6.0} requiresBuild: true dev: true optional: true - /fast-deep-equal/3.1.3: + /fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} dev: true - /fast-glob/3.2.11: + /fast-glob@3.2.11: resolution: {integrity: sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==} engines: {node: '>=8.6.0'} dependencies: @@ -2796,57 +2981,50 @@ packages: micromatch: 4.0.5 dev: true - /fast-json-stable-stringify/2.1.0: + /fast-json-stable-stringify@2.1.0: resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} dev: true - /fast-levenshtein/2.0.6: - resolution: {integrity: sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=} + /fast-levenshtein@2.0.6: + resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} dev: true - /fastq/1.13.0: + /fastq@1.13.0: resolution: {integrity: sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==} dependencies: reusify: 1.0.4 dev: true - /fd-slicer/1.1.0: + /fd-slicer@1.1.0: resolution: {integrity: sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4=} dependencies: pend: 1.2.0 dev: true - /file-entry-cache/6.0.1: + /file-entry-cache@6.0.1: resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==} engines: {node: ^10.12.0 || >=12.0.0} dependencies: flat-cache: 3.0.4 dev: true - /filelist/1.0.2: + /filelist@1.0.2: resolution: {integrity: sha512-z7O0IS8Plc39rTCq6i6iHxk43duYOn8uFJiWSewIq0Bww1RNybVHSCjahmcC87ZqAm4OTvFzlzeGu3XAzG1ctQ==} dependencies: minimatch: 3.1.2 dev: true - /fill-range/7.0.1: + /fill-range@7.0.1: resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} engines: {node: '>=8'} dependencies: to-regex-range: 5.0.1 dev: true - /find-root/1.1.0: + /find-root@1.1.0: resolution: {integrity: sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng==} - /find-up/2.1.0: - resolution: {integrity: sha1-RdG35QbHF93UgndaK3eSCjwMV6c=} - engines: {node: '>=4'} - dependencies: - locate-path: 2.0.0 - dev: true - - /find-up/5.0.0: + /find-up@5.0.0: resolution: {integrity: sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==} engines: {node: '>=10'} dependencies: @@ -2854,7 +3032,7 @@ packages: path-exists: 4.0.0 dev: true - /flat-cache/3.0.4: + /flat-cache@3.0.4: resolution: {integrity: sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==} engines: {node: ^10.12.0 || >=12.0.0} dependencies: @@ -2862,16 +3040,30 @@ packages: rimraf: 3.0.2 dev: true - /flat/5.0.2: + /flat@5.0.2: resolution: {integrity: sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==} hasBin: true dev: true - /flatted/3.2.5: + /flatted@3.2.5: resolution: {integrity: sha512-WIWGi2L3DyTUvUrwRKgGi9TwxQMUEqPOPQBVi71R96jZXJdFskXEmf54BoZaS1kknGODoIGASGEzBUYdyMCBJg==} dev: true - /form-data/4.0.0: + /for-each@0.3.3: + resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==} + dependencies: + is-callable: 1.2.7 + dev: true + + /foreground-child@2.0.0: + resolution: {integrity: sha512-dCIq9FpEcyQyXKCkyzmlPTFNgrCzPudOe+mhvJU5zAtlBnGVy2yKxtfsxK2tQBThwq225jcvBjpw1Gr40uzZCA==} + engines: {node: '>=8.0.0'} + dependencies: + cross-spawn: 7.0.3 + signal-exit: 3.0.7 + dev: true + + /form-data@4.0.0: resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==} engines: {node: '>= 6'} dependencies: @@ -2880,7 +3072,7 @@ packages: mime-types: 2.1.35 dev: true - /fs-extra/10.0.1: + /fs-extra@10.0.1: resolution: {integrity: sha512-NbdoVMZso2Lsrn/QwLXOy6rm0ufY2zEOKCDzJR/0kBsb0E6qed0P3iYK+Ath3BfvXEeu4JhEtXLgILx5psUfag==} engines: {node: '>=12'} dependencies: @@ -2889,7 +3081,16 @@ packages: universalify: 2.0.0 dev: true - /fs-extra/8.1.0: + /fs-extra@11.1.1: + resolution: {integrity: sha512-MGIE4HOvQCeUCzmlHs0vXpih4ysz4wg9qiSAu6cd42lVwPbTM1TjV7RusoyQqMmk/95gdQZX72u+YW+c3eEpFQ==} + engines: {node: '>=14.14'} + dependencies: + graceful-fs: 4.2.9 + jsonfile: 6.1.0 + universalify: 2.0.0 + dev: true + + /fs-extra@8.1.0: resolution: {integrity: sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==} engines: {node: '>=6 <7 || >=8'} dependencies: @@ -2898,7 +3099,7 @@ packages: universalify: 0.1.2 dev: true - /fs-extra/9.1.0: + /fs-extra@9.1.0: resolution: {integrity: sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==} engines: {node: '>=10'} dependencies: @@ -2908,11 +3109,11 @@ packages: universalify: 2.0.0 dev: true - /fs.realpath/1.0.0: + /fs.realpath@1.0.0: resolution: {integrity: sha1-FQStJSMVjKpA20onh8sBQRmU6k8=} dev: true - /fsevents/2.3.2: + /fsevents@2.3.2: resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} os: [darwin] @@ -2920,76 +3121,89 @@ packages: dev: true optional: true - /fsu/1.1.1: + /fsu@1.1.1: resolution: {integrity: sha512-xQVsnjJ/5pQtcKh+KjUoZGzVWn4uNkchxTF6Lwjr4Gf7nQr8fmUfhKJ62zE77+xQg9xnxi5KUps7XGs+VC986A==} dev: true - /function-bind/1.1.1: + /function-bind@1.1.1: resolution: {integrity: sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==} - /functional-red-black-tree/1.0.1: - resolution: {integrity: sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=} + /function.prototype.name@1.1.5: + resolution: {integrity: sha512-uN7m/BzVKQnCUF/iW8jYea67v++2u7m5UgENbHRtdDVclOUP+FMPlCNdmk0h/ysGyo2tavMJEDqJAkJdRa1vMA==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + es-abstract: 1.21.2 + functions-have-names: 1.2.3 dev: true - /gensync/1.0.0-beta.2: + /functions-have-names@1.2.3: + resolution: {integrity: sha512-xckBUXyTIqT97tq2x2AMb+g163b5JFysYk0x4qxNFwbfQkmNZoiRHb6sPzI9/QV33WeuvVYBUIiD4NzNIyqaRQ==} + dev: true + + /gensync@1.0.0-beta.2: resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} engines: {node: '>=6.9.0'} - dev: true - /get-caller-file/2.0.5: + /get-caller-file@2.0.5: resolution: {integrity: sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==} engines: {node: 6.* || 8.* || >= 10.*} dev: true - /get-func-name/2.0.0: - resolution: {integrity: sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=} + /get-func-name@2.0.0: + resolution: {integrity: sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==} dev: true - /get-intrinsic/1.1.1: - resolution: {integrity: sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==} + /get-intrinsic@1.2.0: + resolution: {integrity: sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==} dependencies: function-bind: 1.1.1 has: 1.0.3 has-symbols: 1.0.3 dev: true - /get-stream/4.1.0: + /get-stream@4.1.0: resolution: {integrity: sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==} engines: {node: '>=6'} dependencies: pump: 3.0.0 dev: true - /get-stream/5.2.0: + /get-stream@5.2.0: resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==} engines: {node: '>=8'} dependencies: pump: 3.0.0 dev: true - /get-symbol-description/1.0.0: + /get-symbol-description@1.0.0: resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 - get-intrinsic: 1.1.1 + get-intrinsic: 1.2.0 dev: true - /glob-parent/5.1.2: + /get-tsconfig@4.5.0: + resolution: {integrity: sha512-MjhiaIWCJ1sAU4pIQ5i5OfOuHHxVo1oYeNsWTON7jxYkod8pHocXeh+SSbmu5OZZZK73B6cbJ2XADzXehLyovQ==} + dev: true + + /glob-parent@5.1.2: resolution: {integrity: sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==} engines: {node: '>= 6'} dependencies: is-glob: 4.0.3 dev: true - /glob-parent/6.0.2: + /glob-parent@6.0.2: resolution: {integrity: sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==} engines: {node: '>=10.13.0'} dependencies: is-glob: 4.0.3 dev: true - /glob/7.2.0: + /glob@7.2.0: resolution: {integrity: sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==} dependencies: fs.realpath: 1.0.0 @@ -3000,7 +3214,7 @@ packages: path-is-absolute: 1.0.1 dev: true - /global-agent/3.0.0: + /global-agent@3.0.0: resolution: {integrity: sha512-PT6XReJ+D07JvGoxQMkT6qji/jVNfX/h364XHZOWeRzy64sSFr+xJ5OX7LI3b4MPQzdL4H8Y8M0xzPpsVMwA8Q==} engines: {node: '>=10.0'} requiresBuild: true @@ -3009,19 +3223,19 @@ packages: es6-error: 4.1.1 matcher: 3.0.0 roarr: 2.15.4 - semver: 7.3.5 + semver: 7.5.0 serialize-error: 7.0.1 dev: true optional: true - /global-dirs/3.0.0: + /global-dirs@3.0.0: resolution: {integrity: sha512-v8ho2DS5RiCjftj1nD9NmnfaOzTdud7RRnVd9kFNOjqZbISlx5DQ+OrTkywgd0dIt7oFCvKetZSHoHcP3sDdiA==} engines: {node: '>=10'} dependencies: ini: 2.0.0 dev: true - /global-tunnel-ng/2.7.1: + /global-tunnel-ng@2.7.1: resolution: {integrity: sha512-4s+DyciWBV0eK148wqXxcmVAbFVPqtc3sEtUE/GTQfuU80rySLcMhUmHKSHI7/LDj8q0gDYI1lIhRRB7ieRAqg==} engines: {node: '>=0.10'} requiresBuild: true @@ -3033,27 +3247,37 @@ packages: dev: true optional: true - /globals/11.12.0: + /globals@11.12.0: resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} engines: {node: '>=4'} - dev: true - /globals/13.13.0: - resolution: {integrity: sha512-EQ7Q18AJlPwp3vUDL4mKA0KXrXyNIQyWon6T6XQiBQF0XHvRsiCSrWmmeATpUzdJN2HhWZU6Pdl0a9zdep5p6A==} + /globals@13.20.0: + resolution: {integrity: sha512-Qg5QtVkCy/kv3FUSlu4ukeZDVf9ee0iXLAUYX13gbR17bnejFTzr4iS9bY7kwCf1NztRNm1t91fjOiyx4CSwPQ==} engines: {node: '>=8'} dependencies: type-fest: 0.20.2 dev: true - /globalthis/1.0.2: + /globalthis@1.0.2: resolution: {integrity: sha512-ZQnSFO1la8P7auIOQECnm0sSuoMeaSq0EEdXMBFF2QJO4uNcwbyhSgG3MruWNbFTqCLmxVwGOl7LZ9kASvHdeQ==} engines: {node: '>= 0.4'} dependencies: - define-properties: 1.1.3 + define-properties: 1.2.0 dev: true optional: true - /globby/11.1.0: + /globalthis@1.0.3: + resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==} + engines: {node: '>= 0.4'} + dependencies: + define-properties: 1.2.0 + dev: true + + /globalyzer@0.1.0: + resolution: {integrity: sha512-40oNTM9UfG6aBmuKxk/giHn5nQ8RVz/SS4Ir6zgzOv9/qC3kKZ9v4etGTcJbEl/NyVQH7FGU7d+X1egr57Md2Q==} + dev: true + + /globby@11.1.0: resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} engines: {node: '>=10'} dependencies: @@ -3065,12 +3289,35 @@ packages: slash: 3.0.0 dev: true - /got/9.6.0: + /globby@13.1.4: + resolution: {integrity: sha512-iui/IiiW+QrJ1X1hKH5qwlMQyv34wJAYwH1vrf8b9kBA4sNiif3gKsMHa+BrdnOpEudWjpotfa7LrTzB1ERS/g==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + dir-glob: 3.0.1 + fast-glob: 3.2.11 + ignore: 5.2.0 + merge2: 1.4.1 + slash: 4.0.0 + dev: true + + /globrex@0.1.2: + resolution: {integrity: sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==} + dev: true + + /gopd@1.0.1: + resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} + dependencies: + get-intrinsic: 1.2.0 + dev: true + + /got@9.6.0: resolution: {integrity: sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==} engines: {node: '>=8.6'} dependencies: '@sindresorhus/is': 0.14.0 '@szmarczak/http-timer': 1.1.2 + '@types/keyv': 3.1.4 + '@types/responselike': 1.0.0 cacheable-request: 6.1.0 decompress-response: 3.3.0 duplexer3: 0.1.4 @@ -3082,104 +3329,117 @@ packages: url-parse-lax: 3.0.0 dev: true - /graceful-fs/4.2.9: + /graceful-fs@4.2.9: resolution: {integrity: sha512-NtNxqUcXgpW2iMrfqSfR73Glt39K+BLwWsPs94yR63v45T0Wbej7eRmL5cWfwEgqXnmjQp3zaJTshdRW/qC2ZQ==} dev: true - /graceful-readlink/1.0.1: + /graceful-readlink@1.0.1: resolution: {integrity: sha1-TK+tdrxi8C+gObL5Tpo906ORpyU=} dev: true - /growl/1.10.5: - resolution: {integrity: sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==} - engines: {node: '>=4.x'} + /grapheme-splitter@1.0.4: + resolution: {integrity: sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==} dev: true - /has-bigints/1.0.1: - resolution: {integrity: sha512-LSBS2LjbNBTf6287JEbEzvJgftkF5qFkmCo9hDRpAzKhUOlJ+hx8dd4USs00SgsUNwc4617J9ki5YtEClM2ffA==} + /has-bigints@1.0.2: + resolution: {integrity: sha512-tSvCKtBr9lkF0Ex0aQiP9N+OpV4zi2r/Nee5VkRDbaqv35RLYMzbwQfFSZZH0kR+Rd6302UJZ2p/bJCEoR3VoQ==} dev: true - /has-flag/3.0.0: + /has-flag@3.0.0: resolution: {integrity: sha1-tdRU3CGZriJWmfNGfloH87lVuv0=} engines: {node: '>=4'} - /has-flag/4.0.0: + /has-flag@4.0.0: resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} engines: {node: '>=8'} + + /has-property-descriptors@1.0.0: + resolution: {integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==} + dependencies: + get-intrinsic: 1.2.0 dev: true - /has-symbols/1.0.3: + /has-proto@1.0.1: + resolution: {integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==} + engines: {node: '>= 0.4'} + dev: true + + /has-symbols@1.0.3: resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} engines: {node: '>= 0.4'} dev: true - /has-tostringtag/1.0.0: + /has-tostringtag@1.0.0: resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==} engines: {node: '>= 0.4'} dependencies: has-symbols: 1.0.3 dev: true - /has-yarn/2.1.0: + /has-yarn@2.1.0: resolution: {integrity: sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==} engines: {node: '>=8'} dev: true - /has/1.0.3: + /has@1.0.3: resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} engines: {node: '>= 0.4.0'} dependencies: function-bind: 1.1.1 - /he/1.2.0: + /he@1.2.0: resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} hasBin: true dev: true - /helpertypes/0.0.17: - resolution: {integrity: sha512-muWKRSBsqN3MzqLdh82QfV7vWWwAYvHh3On87z898X+xZ5H2tPRQ5Y6hHA3BXSE+TueztA07iw5bInjwAT3x8A==} + /helpertypes@0.0.19: + resolution: {integrity: sha512-J00e55zffgi3yVnUp0UdbMztNkr2PnizEkOe9URNohnrNhW5X0QpegkuLpOmFQInpi93Nb8MCjQRHAiCDF42NQ==} engines: {node: '>=10.0.0'} dev: true - /hoist-non-react-statics/3.3.2: + /hoist-non-react-statics@3.3.2: resolution: {integrity: sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==} dependencies: react-is: 16.13.1 dev: false - /hosted-git-info/4.1.0: + /hosted-git-info@4.1.0: resolution: {integrity: sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==} engines: {node: '>=10'} dependencies: lru-cache: 6.0.0 dev: true - /http-cache-semantics/4.1.0: + /html-escaper@2.0.2: + resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} + dev: true + + /http-cache-semantics@4.1.0: resolution: {integrity: sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==} dev: true - /http-proxy-agent/5.0.0: + /http-proxy-agent@5.0.0: resolution: {integrity: sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==} engines: {node: '>= 6'} dependencies: '@tootallnate/once': 2.0.0 agent-base: 6.0.2 - debug: 4.3.4 + debug: 4.3.4(supports-color@8.1.1) transitivePeerDependencies: - supports-color dev: true - /https-proxy-agent/5.0.0: + /https-proxy-agent@5.0.0: resolution: {integrity: sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==} engines: {node: '>= 6'} dependencies: agent-base: 6.0.2 - debug: 4.3.4 + debug: 4.3.4(supports-color@8.1.1) transitivePeerDependencies: - supports-color dev: true - /iconv-corefoundation/1.1.7: + /iconv-corefoundation@1.1.7: resolution: {integrity: sha512-T10qvkw0zz4wnm560lOEg0PovVqUXuOFhhHAkixw8/sycy7TJt7v/RrkEKEQnAw2viPSJu6iAkErxnzR0g8PpQ==} engines: {node: ^8.11.2 || >=10} os: [darwin] @@ -3190,88 +3450,105 @@ packages: dev: true optional: true - /iconv-lite/0.6.3: + /iconv-lite@0.6.3: resolution: {integrity: sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==} engines: {node: '>=0.10.0'} dependencies: safer-buffer: 2.1.2 dev: true - /ieee754/1.2.1: + /ieee754@1.2.1: resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} - /ignore/5.2.0: + /ignore@5.2.0: resolution: {integrity: sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==} engines: {node: '>= 4'} dev: true - /immutable/4.0.0: + /immutable@4.0.0: resolution: {integrity: sha512-zIE9hX70qew5qTUjSS7wi1iwj/l7+m54KWU247nhM3v806UdGj1yDndXj+IOYxxtW9zyLI+xqFNZjTuDaLUqFw==} dev: true - /import-fresh/3.3.0: + /import-fresh@3.3.0: resolution: {integrity: sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==} engines: {node: '>=6'} dependencies: parent-module: 1.0.1 resolve-from: 4.0.0 - /import-lazy/2.1.0: + /import-lazy@2.1.0: resolution: {integrity: sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=} engines: {node: '>=4'} dev: true - /imurmurhash/0.1.4: - resolution: {integrity: sha1-khi5srkoojixPcT7a21XbyMUU+o=} + /imurmurhash@0.1.4: + resolution: {integrity: sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==} engines: {node: '>=0.8.19'} dev: true - /inflight/1.0.6: + /inflight@1.0.6: resolution: {integrity: sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=} dependencies: once: 1.4.0 wrappy: 1.0.2 dev: true - /inherits/2.0.4: + /inherits@2.0.4: resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==} dev: true - /ini/1.3.8: + /ini@1.3.8: resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} dev: true - /ini/2.0.0: + /ini@2.0.0: resolution: {integrity: sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA==} engines: {node: '>=10'} dev: true - /internal-slot/1.0.3: + /internal-slot@1.0.3: resolution: {integrity: sha512-O0DB1JC/sPyZl7cIo78n5dR7eUSwwpYPiXRhTzNxZVAMUuB8vlnRFyLxdrVToks6XPLVnFfbzaVd5WLjhgg+vA==} engines: {node: '>= 0.4'} dependencies: - get-intrinsic: 1.1.1 + get-intrinsic: 1.2.0 has: 1.0.3 side-channel: 1.0.4 dev: true - /is-arrayish/0.2.1: - resolution: {integrity: sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=} - - /is-bigint/1.0.4: - resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} + /internal-slot@1.0.5: + resolution: {integrity: sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==} + engines: {node: '>= 0.4'} dependencies: - has-bigints: 1.0.1 + get-intrinsic: 1.2.0 + has: 1.0.3 + side-channel: 1.0.4 dev: true - /is-binary-path/2.1.0: + /is-array-buffer@3.0.2: + resolution: {integrity: sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.0 + is-typed-array: 1.1.10 + dev: true + + /is-arrayish@0.2.1: + resolution: {integrity: sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=} + + /is-bigint@1.0.4: + resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} + dependencies: + has-bigints: 1.0.2 + dev: true + + /is-binary-path@2.1.0: resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} engines: {node: '>=8'} dependencies: binary-extensions: 2.2.0 dev: true - /is-boolean-object/1.1.2: + /is-boolean-object@1.1.2: resolution: {integrity: sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==} engines: {node: '>= 0.4'} dependencies: @@ -3279,55 +3556,67 @@ packages: has-tostringtag: 1.0.0 dev: true - /is-callable/1.2.4: - resolution: {integrity: sha512-nsuwtxZfMX67Oryl9LCQ+upnC0Z0BgpwntpS89m1H/TLF0zNfzfLMV/9Wa/6MZsj0acpEjAO0KF1xT6ZdLl95w==} + /is-callable@1.2.7: + resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==} engines: {node: '>= 0.4'} dev: true - /is-ci/2.0.0: + /is-ci@2.0.0: resolution: {integrity: sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==} hasBin: true dependencies: ci-info: 2.0.0 dev: true - /is-ci/3.0.1: + /is-ci@3.0.1: resolution: {integrity: sha512-ZYvCgrefwqoQ6yTyYUbQu64HsITZ3NfKX1lzaEYdkTDcfKzzCI/wthRRYKkdjHKFVgNiXKAKm65Zo1pk2as/QQ==} hasBin: true dependencies: ci-info: 3.3.0 dev: true - /is-core-module/2.8.1: + /is-core-module@2.12.0: + resolution: {integrity: sha512-RECHCBCd/viahWmwj6enj19sKbHfJrddi/6cBDsNTKbNq0f7VeaUkBo60BqzvPqo/W54ChS62Z5qyun7cfOMqQ==} + dependencies: + has: 1.0.3 + dev: true + + /is-core-module@2.8.1: resolution: {integrity: sha512-SdNCUs284hr40hFTFP6l0IfZ/RSrMXF3qgoRHd3/79unUTvrFO/JoXwkGm+5J/Oe3E/b5GsnG330uUNgRpu1PA==} dependencies: has: 1.0.3 - /is-date-object/1.0.5: + /is-date-object@1.0.5: resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} engines: {node: '>= 0.4'} dependencies: has-tostringtag: 1.0.0 dev: true - /is-extglob/2.1.1: - resolution: {integrity: sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=} + /is-docker@2.2.1: + resolution: {integrity: sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==} + engines: {node: '>=8'} + hasBin: true + dev: true + + /is-extglob@2.1.1: + resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} engines: {node: '>=0.10.0'} dev: true - /is-fullwidth-code-point/3.0.0: + /is-fullwidth-code-point@3.0.0: resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} engines: {node: '>=8'} dev: true - /is-glob/4.0.3: + /is-glob@4.0.3: resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} engines: {node: '>=0.10.0'} dependencies: is-extglob: 2.1.1 dev: true - /is-installed-globally/0.4.0: + /is-installed-globally@0.4.0: resolution: {integrity: sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ==} engines: {node: '>=10'} dependencies: @@ -3335,44 +3624,44 @@ packages: is-path-inside: 3.0.3 dev: true - /is-negative-zero/2.0.2: + /is-negative-zero@2.0.2: resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==} engines: {node: '>= 0.4'} dev: true - /is-npm/5.0.0: + /is-npm@5.0.0: resolution: {integrity: sha512-WW/rQLOazUq+ST/bCAVBp/2oMERWLsR7OrKyt052dNDk4DHcDE0/7QSXITlmi+VBcV13DfIbysG3tZJm5RfdBA==} engines: {node: '>=10'} dev: true - /is-number-object/1.0.7: + /is-number-object@1.0.7: resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} engines: {node: '>= 0.4'} dependencies: has-tostringtag: 1.0.0 dev: true - /is-number/7.0.0: + /is-number@7.0.0: resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} engines: {node: '>=0.12.0'} dev: true - /is-obj/2.0.0: + /is-obj@2.0.0: resolution: {integrity: sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==} engines: {node: '>=8'} dev: true - /is-path-inside/3.0.3: + /is-path-inside@3.0.3: resolution: {integrity: sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ==} engines: {node: '>=8'} dev: true - /is-plain-obj/2.1.0: + /is-plain-obj@2.1.0: resolution: {integrity: sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==} engines: {node: '>=8'} dev: true - /is-regex/1.1.4: + /is-regex@1.1.4: resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} engines: {node: '>= 0.4'} dependencies: @@ -3380,75 +3669,115 @@ packages: has-tostringtag: 1.0.0 dev: true - /is-shared-array-buffer/1.0.2: + /is-shared-array-buffer@1.0.2: resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==} dependencies: call-bind: 1.0.2 dev: true - /is-string/1.0.7: + /is-string@1.0.7: resolution: {integrity: sha512-tE2UXzivje6ofPW7l23cjDOMa09gb7xlAqG6jG5ej6uPV32TlWP3NKPigtaGeHNu9fohccRYvIiZMfOOnOYUtg==} engines: {node: '>= 0.4'} dependencies: has-tostringtag: 1.0.0 dev: true - /is-symbol/1.0.4: + /is-symbol@1.0.4: resolution: {integrity: sha512-C/CPBqKWnvdcxqIARxyOh4v1UUEOCHpgDa0WYgpKDFMszcrPcffg5uhwSgPCLD2WWxmq6isisz87tzT01tuGhg==} engines: {node: '>= 0.4'} dependencies: has-symbols: 1.0.3 dev: true - /is-typedarray/1.0.0: + /is-typed-array@1.1.10: + resolution: {integrity: sha512-PJqgEHiWZvMpaFZ3uTc8kHPM4+4ADTlDniuQL7cU/UDA0Ql7F70yGfHph3cLNe+c9toaigv+DFzTJKhc2CtO6A==} + engines: {node: '>= 0.4'} + 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 + dev: true + + /is-typedarray@1.0.0: resolution: {integrity: sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=} dev: true - /is-unicode-supported/0.1.0: + /is-unicode-supported@0.1.0: resolution: {integrity: sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==} engines: {node: '>=10'} dev: true - /is-weakref/1.0.2: + /is-weakref@1.0.2: resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} dependencies: call-bind: 1.0.2 dev: true - /is-yarn-global/0.3.0: + /is-wsl@2.2.0: + resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} + engines: {node: '>=8'} + dependencies: + is-docker: 2.2.1 + dev: true + + /is-yarn-global@0.3.0: resolution: {integrity: sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==} dev: true - /isarray/0.0.1: - resolution: {integrity: sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=} + /isarray@0.0.1: + resolution: {integrity: sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==} dev: true - /isarray/1.0.0: + /isarray@1.0.0: resolution: {integrity: sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=} dev: true - /isbinaryfile/3.0.3: + /isbinaryfile@3.0.3: resolution: {integrity: sha512-8cJBL5tTd2OS0dM4jz07wQd5g0dCCqIhUxPIGtZfa5L6hWlvV5MHTITy/DBAsF+Oe2LS1X3krBUhNwaGUWpWxw==} engines: {node: '>=0.6.0'} dependencies: buffer-alloc: 1.2.0 dev: true - /isbinaryfile/4.0.10: + /isbinaryfile@4.0.10: resolution: {integrity: sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==} engines: {node: '>= 8.0.0'} dev: true - /isbot/3.3.4: - resolution: {integrity: sha512-a6o/e6nBMoRGvoovg5NT2r/N7S4398yCDXc6HgEOILdBAjYv05SX1MBhgc8SHnEJdRyLfOpAPqc10ezLWkj7rQ==} + /isbot@3.6.10: + resolution: {integrity: sha512-+I+2998oyP4oW9+OTQD8TS1r9P6wv10yejukj+Ksj3+UR5pUhsZN3f8W7ysq0p1qxpOVNbl5mCuv0bCaF8y5iQ==} engines: {node: '>=12'} dev: true - /isexe/2.0.0: - resolution: {integrity: sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=} + /isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} dev: true - /jake/10.8.4: + /istanbul-lib-coverage@3.2.0: + resolution: {integrity: sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==} + engines: {node: '>=8'} + dev: true + + /istanbul-lib-report@3.0.0: + resolution: {integrity: sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==} + engines: {node: '>=8'} + dependencies: + istanbul-lib-coverage: 3.2.0 + make-dir: 3.1.0 + supports-color: 7.2.0 + dev: true + + /istanbul-reports@3.1.5: + resolution: {integrity: sha512-nUsEMa9pBt/NOHqbcbeJEgqIlY/K7rVWUX6Lql2orY5e9roQOthbR3vtY4zzf2orPELg80fnxxk9zUyPlgwD1w==} + engines: {node: '>=8'} + dependencies: + html-escaper: 2.0.2 + istanbul-lib-report: 3.0.0 + dev: true + + /jake@10.8.4: resolution: {integrity: sha512-MtWeTkl1qGsWUtbl/Jsca/8xSoK3x0UmS82sNbjqxxG/de/M/3b1DntdjHgPMC50enlTNwXOCRqPXLLt5cCfZA==} engines: {node: '>=10'} hasBin: true @@ -3459,10 +3788,14 @@ packages: minimatch: 3.1.2 dev: true - /js-tokens/4.0.0: + /js-sdsl@4.4.0: + resolution: {integrity: sha512-FfVSdx6pJ41Oa+CF7RDaFmTnCaFhua+SNYQX74riGOpl96x+2jQCqEfQ2bnXu/5DPCqlRuiqyvTJM0Qjz26IVg==} + dev: true + + /js-tokens@4.0.0: resolution: {integrity: sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==} - /js-yaml/3.14.1: + /js-yaml@3.14.1: resolution: {integrity: sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==} hasBin: true dependencies: @@ -3470,62 +3803,66 @@ packages: esprima: 4.0.1 dev: true - /js-yaml/4.1.0: + /js-yaml@4.1.0: resolution: {integrity: sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==} hasBin: true dependencies: argparse: 2.0.1 dev: true - /jsesc/2.5.2: + /jsesc@2.5.2: resolution: {integrity: sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==} engines: {node: '>=4'} hasBin: true - dev: true - /json-buffer/3.0.0: + /json-buffer@3.0.0: resolution: {integrity: sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=} dev: true - /json-parse-even-better-errors/2.3.1: + /json-parse-even-better-errors@2.3.1: resolution: {integrity: sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==} - /json-schema-traverse/0.4.1: + /json-schema-traverse@0.4.1: resolution: {integrity: sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==} dev: true - /json-stable-stringify-without-jsonify/1.0.1: - resolution: {integrity: sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE=} + /json-stable-stringify-without-jsonify@1.0.1: + resolution: {integrity: sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==} dev: true - /json-stringify-safe/5.0.1: + /json-stringify-safe@5.0.1: resolution: {integrity: sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=} dev: true - /json5/1.0.1: + /json5@1.0.1: resolution: {integrity: sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==} hasBin: true dependencies: minimist: 1.2.6 dev: true - /json5/2.2.1: + /json5@2.2.1: resolution: {integrity: sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==} engines: {node: '>=6'} hasBin: true + + /json5@2.2.3: + resolution: {integrity: sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==} + engines: {node: '>=6'} + hasBin: true dev: true - /jsonc-parser/3.0.0: - resolution: {integrity: sha512-fQzRfAbIBnR0IQvftw9FJveWiHp72Fg20giDrHz6TdfB12UH/uue0D3hm57UB5KgAVuniLMCaS8P1IMj9NR7cA==} + /jsonc-parser@3.2.0: + resolution: {integrity: sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w==} dev: true - /jsonfile/4.0.0: - resolution: {integrity: sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=} + /jsonfile@4.0.0: + resolution: {integrity: sha512-m6F1R3z8jjlf2imQHS2Qez5sjKWQzbuuhuJ/FKYFRZvPE3PuHcSMVZzfsLhGVOkfd20obL5SWEBew5ShlquNxg==} optionalDependencies: graceful-fs: 4.2.9 dev: true - /jsonfile/6.1.0: + /jsonfile@6.1.0: resolution: {integrity: sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==} dependencies: universalify: 2.0.0 @@ -3533,36 +3870,36 @@ packages: graceful-fs: 4.2.9 dev: true - /jsx-ast-utils/3.2.2: + /jsx-ast-utils@3.2.2: resolution: {integrity: sha512-HDAyJ4MNQBboGpUnHAVUNJs6X0lh058s6FuixsFGP7MgJYpD6Vasd6nzSG5iIfXu1zAYlHJ/zsOKNlrenTUBnw==} engines: {node: '>=4.0'} dependencies: - array-includes: 3.1.4 + array-includes: 3.1.6 object.assign: 4.1.2 dev: true - /just-extend/4.2.1: + /just-extend@4.2.1: resolution: {integrity: sha512-g3UB796vUFIY90VIv/WX3L2c8CS2MdWUww3CNrYmqza1Fg0DURc2K/O4YrnklBdQarSJ/y8JnJYDGc+1iumQjg==} dev: true - /keyv/3.1.0: + /keyv@3.1.0: resolution: {integrity: sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==} dependencies: json-buffer: 3.0.0 dev: true - /latest-version/5.1.0: + /latest-version@5.1.0: resolution: {integrity: sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==} engines: {node: '>=8'} dependencies: package-json: 6.5.0 dev: true - /lazy-val/1.0.5: + /lazy-val@1.0.5: resolution: {integrity: sha512-0/BnGCCfyUMkBpeDgWihanIAF9JmZhHBgUhEqzvf+adhNGLoP6TaiI5oF8oyb3I45P+PcnrqihSf01M0l0G5+Q==} dev: true - /levn/0.4.1: + /levn@0.4.1: resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} engines: {node: '>= 0.8.0'} dependencies: @@ -3570,57 +3907,49 @@ packages: type-check: 0.4.0 dev: true - /lines-and-columns/1.2.4: + /lines-and-columns@1.2.4: resolution: {integrity: sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==} - /locate-path/2.0.0: - resolution: {integrity: sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=} - engines: {node: '>=4'} - dependencies: - p-locate: 2.0.0 - path-exists: 3.0.0 - dev: true - - /locate-path/6.0.0: + /locate-path@6.0.0: resolution: {integrity: sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==} engines: {node: '>=10'} dependencies: p-locate: 5.0.0 dev: true - /lodash-es/4.17.21: + /lodash-es@4.17.21: resolution: {integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==} dev: false - /lodash.get/4.4.2: - resolution: {integrity: sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=} + /lodash.get@4.4.2: + resolution: {integrity: sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==} dev: true - /lodash.isempty/4.4.0: + /lodash.isempty@4.4.0: resolution: {integrity: sha1-b4bL7di+TsmHvpqvM8loTbGzHn4=} dev: true - /lodash.isfunction/3.0.9: + /lodash.isfunction@3.0.9: resolution: {integrity: sha512-AirXNj15uRIMMPihnkInB4i3NHeb4iBtNg9WRWuK2o31S+ePwwNmDPaTL3o7dTJ+VXNZim7rFs4rxN4YU1oUJw==} dev: true - /lodash.isobject/3.0.2: + /lodash.isobject@3.0.2: resolution: {integrity: sha1-PI+41bW/S/kK4G4U8qUwpO2TXh0=} dev: true - /lodash.isstring/4.0.1: + /lodash.isstring@4.0.1: resolution: {integrity: sha1-1SfftUVuynzJu5XV2ur4i6VKVFE=} dev: true - /lodash.merge/4.6.2: + /lodash.merge@4.6.2: resolution: {integrity: sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==} dev: true - /lodash/4.17.21: + /lodash@4.17.21: resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==} dev: true - /log-symbols/4.1.0: + /log-symbols@4.1.0: resolution: {integrity: sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==} engines: {node: '>=10'} dependencies: @@ -3628,63 +3957,64 @@ packages: is-unicode-supported: 0.1.0 dev: true - /loose-envify/1.4.0: + /loose-envify@1.4.0: resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} hasBin: true dependencies: js-tokens: 4.0.0 - /loupe/2.3.4: + /loupe@2.3.4: resolution: {integrity: sha512-OvKfgCC2Ndby6aSTREl5aCCPTNIzlDfQZvZxNUrBrihDhL3xcrYegTblhmEiCrg2kKQz4XsFIaemE5BF4ybSaQ==} dependencies: get-func-name: 2.0.0 dev: true - /lowercase-keys/1.0.1: + /lowercase-keys@1.0.1: resolution: {integrity: sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==} engines: {node: '>=0.10.0'} dev: true - /lowercase-keys/2.0.0: + /lowercase-keys@2.0.0: resolution: {integrity: sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==} engines: {node: '>=8'} dev: true - /lru-cache/6.0.0: + /lru-cache@6.0.0: resolution: {integrity: sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==} engines: {node: '>=10'} dependencies: yallist: 4.0.0 dev: true - /lunr/2.3.9: + /lunr@2.3.9: resolution: {integrity: sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==} dev: true - /magic-string/0.25.9: - resolution: {integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==} + /magic-string@0.27.0: + resolution: {integrity: sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==} + engines: {node: '>=12'} dependencies: - sourcemap-codec: 1.4.8 + '@jridgewell/sourcemap-codec': 1.4.15 dev: true - /make-dir/3.1.0: + /make-dir@3.1.0: resolution: {integrity: sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==} engines: {node: '>=8'} dependencies: semver: 6.3.0 dev: true - /make-error/1.3.6: + /make-error@1.3.6: resolution: {integrity: sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==} dev: true - /marked/4.0.12: - resolution: {integrity: sha512-hgibXWrEDNBWgGiK18j/4lkS6ihTe9sxtV4Q1OQppb/0zzyPSzoFANBa5MfsG/zgsWklmNnhm0XACZOH/0HBiQ==} + /marked@4.3.0: + resolution: {integrity: sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A==} engines: {node: '>= 12'} hasBin: true dev: true - /matcher/3.0.0: + /matcher@3.0.0: resolution: {integrity: sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng==} engines: {node: '>=10'} dependencies: @@ -3692,12 +4022,12 @@ packages: dev: true optional: true - /merge2/1.4.1: + /merge2@1.4.1: resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} engines: {node: '>= 8'} dev: true - /micromatch/4.0.5: + /micromatch@4.0.5: resolution: {integrity: sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==} engines: {node: '>=8.6'} dependencies: @@ -3705,98 +4035,95 @@ packages: picomatch: 2.3.1 dev: true - /mime-db/1.52.0: + /mime-db@1.52.0: resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} engines: {node: '>= 0.6'} dev: true - /mime-types/2.1.35: + /mime-types@2.1.35: resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==} engines: {node: '>= 0.6'} dependencies: mime-db: 1.52.0 dev: true - /mime/2.6.0: + /mime@2.6.0: resolution: {integrity: sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==} engines: {node: '>=4.0.0'} hasBin: true dev: true - /mimic-response/1.0.1: + /mimic-response@1.0.1: resolution: {integrity: sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==} engines: {node: '>=4'} dev: true - /minimatch/3.0.4: + /minimatch@3.0.4: resolution: {integrity: sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==} dependencies: brace-expansion: 1.1.11 dev: true - /minimatch/3.1.2: + /minimatch@3.1.2: resolution: {integrity: sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==} dependencies: brace-expansion: 1.1.11 dev: true - /minimatch/4.2.1: - resolution: {integrity: sha512-9Uq1ChtSZO+Mxa/CL1eGizn2vRn3MlLgzhT0Iz8zaY8NdvxvB0d5QdPFmCKf7JKA9Lerx5vRrnwO03jsSfGG9g==} - engines: {node: '>=10'} - dependencies: - brace-expansion: 1.1.11 - dev: true - - /minimatch/5.0.1: + /minimatch@5.0.1: resolution: {integrity: sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==} engines: {node: '>=10'} dependencies: brace-expansion: 2.0.1 dev: true - /minimist/1.2.6: + /minimatch@9.0.0: + resolution: {integrity: sha512-0jJj8AvgKqWN05mrwuqi8QYKx1WmYSUoKSxu5Qhs9prezTz10sxAHGNZe9J9cqIJzta8DWsleh2KaVaLl6Ru2w==} + engines: {node: '>=16 || 14 >=14.17'} + dependencies: + brace-expansion: 2.0.1 + dev: true + + /minimist@1.2.6: resolution: {integrity: sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==} dev: true - /mkdirp/0.5.6: + /mkdirp@0.5.6: resolution: {integrity: sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==} hasBin: true dependencies: minimist: 1.2.6 dev: true - /mocha/9.2.2: - resolution: {integrity: sha512-L6XC3EdwT6YrIk0yXpavvLkn8h+EU+Y5UcCHKECyMbdUIxyMuZj4bX4U9e1nvnvUUvQVsV2VHQr5zLdcUkhW/g==} - engines: {node: '>= 12.0.0'} + /mocha@10.2.0: + resolution: {integrity: sha512-IDY7fl/BecMwFHzoqF2sg/SHHANeBoMMXFlS9r0OXKDssYE1M5O43wUY/9BVPeIvfH2zmEbBfseqN9gBQZzXkg==} + engines: {node: '>= 14.0.0'} hasBin: true dependencies: - '@ungap/promise-all-settled': 1.1.2 ansi-colors: 4.1.1 browser-stdout: 1.3.1 chokidar: 3.5.3 - debug: 4.3.3_supports-color@8.1.1 + debug: 4.3.4(supports-color@8.1.1) diff: 5.0.0 escape-string-regexp: 4.0.0 find-up: 5.0.0 glob: 7.2.0 - growl: 1.10.5 he: 1.2.0 js-yaml: 4.1.0 log-symbols: 4.1.0 - minimatch: 4.2.1 + minimatch: 5.0.1 ms: 2.1.3 - nanoid: 3.3.1 + nanoid: 3.3.3 serialize-javascript: 6.0.0 strip-json-comments: 3.1.1 supports-color: 8.1.1 - which: 2.0.2 - workerpool: 6.2.0 + workerpool: 6.2.1 yargs: 16.2.0 yargs-parser: 20.2.4 yargs-unparser: 2.0.0 dev: true - /mochawesome-report-generator/6.2.0: + /mochawesome-report-generator@6.2.0: resolution: {integrity: sha512-Ghw8JhQFizF0Vjbtp9B0i//+BOkV5OWcQCPpbO0NGOoxV33o+gKDYU0Pr2pGxkIHnqZ+g5mYiXF7GMNgAcDpSg==} hasBin: true dependencies: @@ -3814,7 +4141,7 @@ packages: yargs: 17.4.0 dev: true - /mochawesome/7.1.3_mocha@9.2.2: + /mochawesome@7.1.3(mocha@10.2.0): resolution: {integrity: sha512-Vkb3jR5GZ1cXohMQQ73H3cZz7RoxGjjUo0G5hu0jLaW+0FdUxUwg3Cj29bqQdh0rFcnyV06pWmqmi5eBPnEuNQ==} peerDependencies: mocha: '>=7' @@ -3826,71 +4153,71 @@ packages: lodash.isfunction: 3.0.9 lodash.isobject: 3.0.2 lodash.isstring: 4.0.1 - mocha: 9.2.2 + mocha: 10.2.0 mochawesome-report-generator: 6.2.0 strip-ansi: 6.0.1 uuid: 8.3.2 dev: true - /ms/2.0.0: - resolution: {integrity: sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=} + /ms@2.0.0: + resolution: {integrity: sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==} dev: true - /ms/2.1.2: + /ms@2.1.2: resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} - dev: true - /ms/2.1.3: + /ms@2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} dev: true - /nanoid/3.3.1: - resolution: {integrity: sha512-n6Vs/3KGyxPQd6uO0eH4Bv0ojGSUvuLlIHtC3Y0kEO23YRge8H9x1GCzLn28YX0H66pMkxuaeESFq4tKISKwdw==} + /nanoid@3.3.3: + resolution: {integrity: sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==} engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} hasBin: true dev: true - /nanoid/3.3.2: - resolution: {integrity: sha512-CuHBogktKwpm5g2sRgv83jEy2ijFzBwMoYA60orPDR7ynsLijJDqgsi4RDGj3OJpy3Ieb+LYwiRmIOGyytgITA==} - engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1} - hasBin: true + /natural-compare-lite@1.4.0: + resolution: {integrity: sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g==} dev: true - /natural-compare/1.4.0: - resolution: {integrity: sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=} + /natural-compare@1.4.0: + resolution: {integrity: sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==} dev: true - /nise/5.1.1: - resolution: {integrity: sha512-yr5kW2THW1AkxVmCnKEh4nbYkJdB3I7LUkiUgOvEkOp414mc2UMaHMA7pjq1nYowhdoJZGwEKGaQVbxfpWj10A==} + /nise@5.1.4: + resolution: {integrity: sha512-8+Ib8rRJ4L0o3kfmyVCL7gzrohyDe0cMFTBa2d364yIrEGMEoetznKJx899YxjybU6bL9SQkYPSBBs1gyYs8Xg==} dependencies: - '@sinonjs/commons': 1.8.3 - '@sinonjs/fake-timers': 9.1.1 + '@sinonjs/commons': 2.0.0 + '@sinonjs/fake-timers': 10.0.2 '@sinonjs/text-encoding': 0.7.1 just-extend: 4.2.1 path-to-regexp: 1.8.0 dev: true - /node-addon-api/1.7.2: + /node-addon-api@1.7.2: resolution: {integrity: sha512-ibPK3iA+vaY1eEjESkQkM0BbCqFOaZMiXRTtdB0u7b4djtY6JnsjvPdUHVMg6xQt3B8fpTTWHI9A+ADjM9frzg==} requiresBuild: true dev: true optional: true - /node-releases/2.0.2: - resolution: {integrity: sha512-XxYDdcQ6eKqp/YjI+tb2C5WM2LgjnZrfYg4vgQt49EK268b6gYCHsBLrK2qvJo4FmCtqmKezb0WZFK4fkrZNsg==} + /node-releases@2.0.10: + resolution: {integrity: sha512-5GFldHPXVG/YZmFzJvKK2zDSzPKhEp0+ZR5SVaoSag9fsL5YgHbUHDfnG5494ISANDcK4KwPXAx2xqVEydmd7w==} dev: true - /normalize-path/3.0.0: + /node-releases@2.0.2: + resolution: {integrity: sha512-XxYDdcQ6eKqp/YjI+tb2C5WM2LgjnZrfYg4vgQt49EK268b6gYCHsBLrK2qvJo4FmCtqmKezb0WZFK4fkrZNsg==} + + /normalize-path@3.0.0: resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} engines: {node: '>=0.10.0'} dev: true - /normalize-url/4.5.1: + /normalize-url@4.5.1: resolution: {integrity: sha512-9UZCFRHQdNrfTpGg8+1INIg93B6zE0aXMVFkw1WFwvO4SlZywU6aLg5Of0Ap/PgcbSw4LNxvMWXMeugwMCX0AA==} engines: {node: '>=8'} dev: true - /npm-conf/1.1.3: + /npm-conf@1.1.3: resolution: {integrity: sha512-Yic4bZHJOt9RCFbRP3GgpqhScOY4HH3V2P8yBj6CeYq118Qr+BLXqT2JvpJ00mryLESpgOxf5XlFv4ZjXxLScw==} engines: {node: '>=4'} dependencies: @@ -3899,80 +4226,103 @@ packages: dev: true optional: true - /object-assign/4.1.1: + /object-assign@4.1.1: resolution: {integrity: sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=} engines: {node: '>=0.10.0'} - /object-inspect/1.12.0: + /object-inspect@1.12.0: resolution: {integrity: sha512-Ho2z80bVIvJloH+YzRmpZVQe87+qASmBUKZDWgx9cu+KDrX2ZDH/3tMy+gXbZETVGs2M8YdxObOh7XAtim9Y0g==} dev: true - /object-keys/1.1.1: + /object-inspect@1.12.3: + resolution: {integrity: sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==} + dev: true + + /object-keys@1.1.1: resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} engines: {node: '>= 0.4'} dev: true - /object-path/0.11.8: + /object-path@0.11.8: resolution: {integrity: sha512-YJjNZrlXJFM42wTBn6zgOJVar9KFJvzx6sTWDte8sWZF//cnjl0BxHNpfZx+ZffXX63A9q0b1zsFiBX4g4X5KA==} engines: {node: '>= 10.12.0'} dev: true - /object.assign/4.1.2: + /object.assign@4.1.2: resolution: {integrity: sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 - define-properties: 1.1.3 + define-properties: 1.2.0 has-symbols: 1.0.3 object-keys: 1.1.1 dev: true - /object.entries/1.1.5: - resolution: {integrity: sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g==} + /object.assign@4.1.4: + resolution: {integrity: sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 - define-properties: 1.1.3 - es-abstract: 1.19.2 + define-properties: 1.2.0 + has-symbols: 1.0.3 + object-keys: 1.1.1 dev: true - /object.fromentries/2.0.5: - resolution: {integrity: sha512-CAyG5mWQRRiBU57Re4FKoTBjXfDoNwdFVH2Y1tS9PqCsfUTymAohOkEMSG3aRNKmv4lV3O7p1et7c187q6bynw==} + /object.entries@1.1.6: + resolution: {integrity: sha512-leTPzo4Zvg3pmbQ3rDK69Rl8GQvIqMWubrkxONG9/ojtFE2rD9fjMKfSI5BxW3osRH1m6VdzmqK8oAY9aT4x5w==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 - define-properties: 1.1.3 - es-abstract: 1.19.2 + define-properties: 1.2.0 + es-abstract: 1.21.2 dev: true - /object.hasown/1.1.0: - resolution: {integrity: sha512-MhjYRfj3GBlhSkDHo6QmvgjRLXQ2zndabdf3nX0yTyZK9rPfxb6uRpAac8HXNLy1GpqWtZ81Qh4v3uOls2sRAg==} - dependencies: - define-properties: 1.1.3 - es-abstract: 1.19.2 - dev: true - - /object.values/1.1.5: - resolution: {integrity: sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==} + /object.fromentries@2.0.6: + resolution: {integrity: sha512-VciD13dswC4j1Xt5394WR4MzmAQmlgN72phd/riNp9vtD7tp4QQWJ0R4wvclXcafgcYK8veHRed2W6XeGBvcfg==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 - define-properties: 1.1.3 - es-abstract: 1.19.2 + define-properties: 1.2.0 + es-abstract: 1.21.2 dev: true - /once/1.4.0: + /object.hasown@1.1.2: + resolution: {integrity: sha512-B5UIT3J1W+WuWIU55h0mjlwaqxiE5vYENJXIXZ4VFe05pNYrkKuK0U/6aFcb0pKywYJh7IhfoqUfKVmrJJHZHw==} + dependencies: + define-properties: 1.2.0 + es-abstract: 1.21.2 + dev: true + + /object.values@1.1.6: + resolution: {integrity: sha512-FVVTkD1vENCsAcwNs9k6jea2uHC/X0+JcjG8YA60FN5CMaJmG95wT9jek/xX9nornqGRrBkKtzuAu2wuHpKqvw==} + engines: {node: '>= 0.4'} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + es-abstract: 1.21.2 + dev: true + + /once@1.4.0: resolution: {integrity: sha1-WDsap3WWHUsROsF9nFC6753Xa9E=} dependencies: wrappy: 1.0.2 dev: true - /opener/1.5.2: + /open@8.4.2: + resolution: {integrity: sha512-7x81NCL719oNbsq/3mh+hVrAWmFuEYUqrq/Iw3kUzH8ReypT9QQ0BLoJS7/G9k6N81XjW4qHWtjWwe/9eLy1EQ==} + engines: {node: '>=12'} + dependencies: + define-lazy-prop: 2.0.0 + is-docker: 2.2.1 + is-wsl: 2.2.0 + dev: true + + /opener@1.5.2: resolution: {integrity: sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A==} hasBin: true dev: true - /optionator/0.9.1: + /optionator@0.9.1: resolution: {integrity: sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==} engines: {node: '>= 0.8.0'} dependencies: @@ -3984,45 +4334,26 @@ packages: word-wrap: 1.2.3 dev: true - /p-cancelable/1.1.0: + /p-cancelable@1.1.0: resolution: {integrity: sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==} engines: {node: '>=6'} dev: true - /p-limit/1.3.0: - resolution: {integrity: sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==} - engines: {node: '>=4'} - dependencies: - p-try: 1.0.0 - dev: true - - /p-limit/3.1.0: + /p-limit@3.1.0: resolution: {integrity: sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==} engines: {node: '>=10'} dependencies: yocto-queue: 0.1.0 dev: true - /p-locate/2.0.0: - resolution: {integrity: sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=} - engines: {node: '>=4'} - dependencies: - p-limit: 1.3.0 - dev: true - - /p-locate/5.0.0: + /p-locate@5.0.0: resolution: {integrity: sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==} engines: {node: '>=10'} dependencies: p-limit: 3.1.0 dev: true - /p-try/1.0.0: - resolution: {integrity: sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=} - engines: {node: '>=4'} - dev: true - - /package-json/6.5.0: + /package-json@6.5.0: resolution: {integrity: sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==} engines: {node: '>=8'} dependencies: @@ -4032,13 +4363,13 @@ packages: semver: 6.3.0 dev: true - /parent-module/1.0.1: + /parent-module@1.0.1: resolution: {integrity: sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==} engines: {node: '>=6'} dependencies: callsites: 3.1.0 - /parse-json/5.2.0: + /parse-json@5.2.0: resolution: {integrity: sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==} engines: {node: '>=8'} dependencies: @@ -4047,67 +4378,61 @@ packages: json-parse-even-better-errors: 2.3.1 lines-and-columns: 1.2.4 - /path-browserify/1.0.1: + /path-browserify@1.0.1: resolution: {integrity: sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==} dev: false - /path-exists/3.0.0: - resolution: {integrity: sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=} - engines: {node: '>=4'} - dev: true - - /path-exists/4.0.0: + /path-exists@4.0.0: resolution: {integrity: sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==} engines: {node: '>=8'} dev: true - /path-is-absolute/1.0.1: + /path-is-absolute@1.0.1: resolution: {integrity: sha1-F0uSaHNVNP+8es5r9TpanhtcX18=} engines: {node: '>=0.10.0'} dev: true - /path-key/3.1.1: + /path-key@3.1.1: resolution: {integrity: sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==} engines: {node: '>=8'} dev: true - /path-parse/1.0.7: + /path-parse@1.0.7: resolution: {integrity: sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==} - /path-to-regexp/1.8.0: + /path-to-regexp@1.8.0: resolution: {integrity: sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==} dependencies: isarray: 0.0.1 dev: true - /path-type/4.0.0: + /path-type@4.0.0: resolution: {integrity: sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==} engines: {node: '>=8'} - /pathval/1.1.1: + /pathval@1.1.1: resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==} dev: true - /pend/1.2.0: + /pend@1.2.0: resolution: {integrity: sha1-elfrVQpng/kRUzH89GY9XI4AelA=} dev: true - /picocolors/1.0.0: + /picocolors@1.0.0: resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} - dev: true - /picomatch/2.3.1: + /picomatch@2.3.1: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} engines: {node: '>=8.6'} dev: true - /pify/3.0.0: + /pify@3.0.0: resolution: {integrity: sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=} engines: {node: '>=4'} dev: true optional: true - /plist/3.0.5: + /plist@3.0.5: resolution: {integrity: sha512-83vX4eYdQp3vP9SxuYgEM/G/pJQqLUz/V/xzPrzruLs7fz7jxGQ1msZ/mg1nwZxUSuOp4sb+/bEIbRrbzZRxDA==} engines: {node: '>=6'} dependencies: @@ -4115,83 +4440,82 @@ packages: xmlbuilder: 9.0.7 dev: true - /postcss/8.4.12: + /postcss@8.4.12: resolution: {integrity: sha512-lg6eITwYe9v6Hr5CncVbK70SoioNQIq81nsaG86ev5hAidQvmOeETBqs7jm43K2F5/Ley3ytDtriImV6TpNiSg==} engines: {node: ^10 || ^12 || >=14} dependencies: - nanoid: 3.3.2 + nanoid: 3.3.3 picocolors: 1.0.0 source-map-js: 1.0.2 dev: true - /prelude-ls/1.2.1: + /prelude-ls@1.2.1: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} engines: {node: '>= 0.8.0'} dev: true - /prepend-http/2.0.0: + /prepend-http@2.0.0: resolution: {integrity: sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=} engines: {node: '>=4'} dev: true - /prettier/2.6.2: - resolution: {integrity: sha512-PkUpF+qoXTqhOeWL9fu7As8LXsIUZ1WYaJiY/a7McAQzxjk82OF0tibkFXVCDImZtWxbvojFjerkiLb0/q8mew==} + /prettier@2.8.8: + resolution: {integrity: sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==} engines: {node: '>=10.13.0'} hasBin: true dev: true - /process-nextick-args/2.0.1: + /process-nextick-args@2.0.1: resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} dev: true - /progress/2.0.3: + /progress@2.0.3: resolution: {integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==} engines: {node: '>=0.4.0'} dev: true - /prop-types/15.8.1: + /prop-types@15.8.1: resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} dependencies: loose-envify: 1.4.0 object-assign: 4.1.1 react-is: 16.13.1 - dev: true - /proto-list/1.2.4: + /proto-list@1.2.4: resolution: {integrity: sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk=} dev: true optional: true - /pump/3.0.0: + /pump@3.0.0: resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==} dependencies: end-of-stream: 1.4.4 once: 1.4.0 dev: true - /punycode/2.1.1: + /punycode@2.1.1: resolution: {integrity: sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==} engines: {node: '>=6'} dev: true - /pupa/2.1.1: + /pupa@2.1.1: resolution: {integrity: sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==} engines: {node: '>=8'} dependencies: escape-goat: 2.1.1 dev: true - /queue-microtask/1.2.3: + /queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} dev: true - /randombytes/2.1.0: + /randombytes@2.1.0: resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} dependencies: safe-buffer: 5.2.1 dev: true - /rc/1.2.8: + /rc@1.2.8: resolution: {integrity: sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==} hasBin: true dependencies: @@ -4201,7 +4525,7 @@ packages: strip-json-comments: 2.0.1 dev: true - /react-dom/17.0.2_react@17.0.2: + /react-dom@17.0.2(react@17.0.2): resolution: {integrity: sha512-s4h96KtLDUQlsENhMn1ar8t2bEa+q/YAtj8pPPdIjPDGBDIVNsrD9aXNWqspUe6AzKCIG0C1HZZLqLV7qpOBGA==} peerDependencies: react: 17.0.2 @@ -4210,8 +4534,19 @@ packages: object-assign: 4.1.1 react: 17.0.2 scheduler: 0.20.2 + dev: false - /react-icons/4.3.1_react@17.0.2: + /react-dom@18.2.0(react@18.2.0): + resolution: {integrity: sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==} + peerDependencies: + react: ^18.2.0 + dependencies: + loose-envify: 1.4.0 + react: 18.2.0 + scheduler: 0.23.0 + dev: true + + /react-icons@4.3.1(react@17.0.2): resolution: {integrity: sha512-cB10MXLTs3gVuXimblAdI71jrJx8njrJZmNMEMC+sQu5B/BIOmlsAjskdqpn81y8UBVEGuHODd7/ci5DvoSzTQ==} peerDependencies: react: '*' @@ -4219,44 +4554,53 @@ packages: react: 17.0.2 dev: false - /react-idle-timer/4.6.4_react-dom@17.0.2+react@17.0.2: + /react-idle-timer@4.6.4(prop-types@15.8.1)(react-dom@17.0.2)(react@17.0.2): resolution: {integrity: sha512-iq61dPud8fgj7l1KOJEY5pyiD532fW0KcIe/5XUe/0lB/4Vytoy4tZBlLGSiYodPzKxTL6HyKoOmG6tyzjD7OQ==} peerDependencies: prop-types: '>=15' react: '>=16' react-dom: '>=16' dependencies: + prop-types: 15.8.1 react: 17.0.2 - react-dom: 17.0.2_react@17.0.2 + react-dom: 17.0.2(react@17.0.2) dev: false - /react-is/16.13.1: + /react-is@16.13.1: resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} - /react-refresh/0.11.0: + /react-refresh@0.11.0: resolution: {integrity: sha512-F27qZr8uUqwhWZboondsPx8tnC3Ct3SxZA3V5WyEvujRyyNv0VYPhoBg1gZ8/MV5tubQp76Trw8lTv9hzRBa+A==} engines: {node: '>=0.10.0'} dev: true - /react/17.0.2: + /react@17.0.2: resolution: {integrity: sha512-gnhPt75i/dq/z3/6q/0asP78D0u592D5L1pd7M8P+dck6Fu/jJeL6iVVK23fptSUZj8Vjf++7wXA8UNclGQcbA==} engines: {node: '>=0.10.0'} dependencies: loose-envify: 1.4.0 object-assign: 4.1.1 + dev: false - /read-config-file/6.2.0: + /react@18.2.0: + resolution: {integrity: sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==} + engines: {node: '>=0.10.0'} + dependencies: + loose-envify: 1.4.0 + dev: true + + /read-config-file@6.2.0: resolution: {integrity: sha512-gx7Pgr5I56JtYz+WuqEbQHj/xWo+5Vwua2jhb1VwM4Wid5PqYmZ4i00ZB0YEGIfkVBsCv9UrjgyqCiQfS/Oosg==} engines: {node: '>=12.0.0'} dependencies: dotenv: 9.0.2 dotenv-expand: 5.1.0 js-yaml: 4.1.0 - json5: 2.2.1 + json5: 2.2.3 lazy-val: 1.0.5 dev: true - /readable-stream/2.3.7: + /readable-stream@2.3.7: resolution: {integrity: sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==} dependencies: core-util-is: 1.0.3 @@ -4268,53 +4612,49 @@ packages: util-deprecate: 1.0.2 dev: true - /readdirp/3.6.0: + /readdirp@3.6.0: resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} engines: {node: '>=8.10.0'} dependencies: picomatch: 2.3.1 dev: true - /regenerator-runtime/0.13.9: + /regenerator-runtime@0.13.9: resolution: {integrity: sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==} - /regexp.prototype.flags/1.4.1: - resolution: {integrity: sha512-pMR7hBVUUGI7PMA37m2ofIdQCsomVnas+Jn5UPGAHQ+/LlwKm/aTLJHdasmHRzlfeZwHiAOaRSo2rbBDm3nNUQ==} + /regexp.prototype.flags@1.5.0: + resolution: {integrity: sha512-0SutC3pNudRKgquxGoRGIz946MZVHqbNfPjBdxeOhBrdgDKlRoXmYLQN9xRbrR09ZXWeGAdPuif7egofn6v5LA==} engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 - define-properties: 1.1.3 + define-properties: 1.2.0 + functions-have-names: 1.2.3 dev: true - /regexpp/3.2.0: - resolution: {integrity: sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==} - engines: {node: '>=8'} - dev: true - - /registry-auth-token/4.2.1: + /registry-auth-token@4.2.1: resolution: {integrity: sha512-6gkSb4U6aWJB4SF2ZvLb76yCBjcvufXBqvvEx1HbmKPkutswjW1xNVRY0+daljIYRbogN7O0etYSlbiaEQyMyw==} engines: {node: '>=6.0.0'} dependencies: rc: 1.2.8 dev: true - /registry-url/5.1.0: + /registry-url@5.1.0: resolution: {integrity: sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==} engines: {node: '>=8'} dependencies: rc: 1.2.8 dev: true - /require-directory/2.1.1: - resolution: {integrity: sha1-jGStX9MNqxyXbiNE/+f3kqam30I=} + /require-directory@2.1.1: + resolution: {integrity: sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==} engines: {node: '>=0.10.0'} dev: true - /resolve-from/4.0.0: + /resolve-from@4.0.0: resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==} engines: {node: '>=4'} - /resolve/1.22.0: + /resolve@1.22.0: resolution: {integrity: sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==} hasBin: true dependencies: @@ -4322,32 +4662,43 @@ packages: path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 - /resolve/2.0.0-next.3: - resolution: {integrity: sha512-W8LucSynKUIDu9ylraa7ueVZ7hc0uAgJBxVsQSKOXOyle8a93qXhcz+XAXZ8bIq2d6i4Ehddn6Evt+0/UwKk6Q==} + /resolve@1.22.2: + resolution: {integrity: sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==} + hasBin: true dependencies: - is-core-module: 2.8.1 + is-core-module: 2.12.0 path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 dev: true - /responselike/1.0.2: + /resolve@2.0.0-next.4: + resolution: {integrity: sha512-iMDbmAWtfU+MHpxt/I5iWI7cY6YVEZUQ3MBgPQ++XD1PELuJHIl82xBmObyP2KyQmkNB2dsqF7seoQQiAn5yDQ==} + hasBin: true + dependencies: + is-core-module: 2.12.0 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + dev: true + + /responselike@1.0.2: resolution: {integrity: sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=} dependencies: lowercase-keys: 1.0.1 dev: true - /reusify/1.0.4: + /reusify@1.0.4: resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} engines: {iojs: '>=1.0.0', node: '>=0.10.0'} dev: true - /rimraf/3.0.2: + /rimraf@3.0.2: resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==} hasBin: true dependencies: glob: 7.2.0 dev: true - /roarr/2.15.4: + /roarr@2.15.4: resolution: {integrity: sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A==} engines: {node: '>=8.0'} dependencies: @@ -4360,13 +4711,14 @@ packages: dev: true optional: true - /rollup-plugin-ts/2.0.5_rollup@2.70.1+typescript@4.6.3: - resolution: {integrity: sha512-yLfu46XsheAEDs+OxCMnHszble9pYwGYDML82lpMw3x/65kgwd9UQSkPX0HZGk+6L+MN8hFgqeh+SPmv+uOz1w==} - engines: {node: '>=10.0.0', npm: '>=7.0.0', pnpm: '>=3.2.0', yarn: '>=1.13'} + /rollup-plugin-ts@3.2.0(rollup@3.21.0)(typescript@4.6.4): + resolution: {integrity: sha512-KkTLVifkUexEiAXS9VtSjDrjKr0TyusmNJpb2ZTAzI9VuPumSu4AktIaVNnwv70iUEitHwZtET7OAM+5n1u1tg==} + engines: {node: '>=14.9.0', npm: '>=7.0.0', pnpm: '>=3.2.0', yarn: '>=1.13'} peerDependencies: '@babel/core': '>=6.x || >=7.x' '@babel/plugin-transform-runtime': '>=6.x || >=7.x' '@babel/preset-env': '>=6.x || >=7.x' + '@babel/preset-typescript': '>=6.x || >=7.x' '@babel/runtime': '>=6.x || >=7.x' '@swc/core': '>=1.x' '@swc/helpers': '>=0.2' @@ -4379,6 +4731,8 @@ packages: optional: true '@babel/preset-env': optional: true + '@babel/preset-typescript': + optional: true '@babel/runtime': optional: true '@swc/core': @@ -4386,59 +4740,75 @@ packages: '@swc/helpers': optional: true dependencies: - '@rollup/pluginutils': 4.2.0 + '@rollup/pluginutils': 5.0.2(rollup@3.21.0) '@wessberg/stringutil': 1.0.19 - browserslist: 4.20.2 - browserslist-generator: 1.0.65 - chalk: 4.1.2 - compatfactory: 0.0.12_typescript@4.6.3 - crosspath: 1.0.0 - magic-string: 0.25.9 - rollup: 2.70.1 - ts-clone-node: 0.3.30_typescript@4.6.3 - tslib: 2.3.1 - typescript: 4.6.3 + ansi-colors: 4.1.3 + browserslist: 4.21.5 + browserslist-generator: 2.0.3 + compatfactory: 2.0.9(typescript@4.6.4) + crosspath: 2.0.0 + magic-string: 0.27.0 + rollup: 3.21.0 + ts-clone-node: 2.0.4(typescript@4.6.4) + tslib: 2.5.0 + typescript: 4.6.4 dev: true - /rollup/2.70.1: - resolution: {integrity: sha512-CRYsI5EuzLbXdxC6RnYhOuRdtz4bhejPMSWjsFLfVM/7w/85n2szZv6yExqUXsBdz5KT8eoubeyDUDjhLHEslA==} + /rollup@2.79.1: + resolution: {integrity: sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==} engines: {node: '>=10.0.0'} hasBin: true optionalDependencies: fsevents: 2.3.2 dev: true - /run-parallel/1.2.0: + /rollup@3.21.0: + resolution: {integrity: sha512-ANPhVcyeHvYdQMUyCbczy33nbLzI7RzrBje4uvNiTDJGIMtlKoOStmympwr9OtS1LZxiDmE2wvxHyVhoLtf1KQ==} + engines: {node: '>=14.18.0', npm: '>=8.0.0'} + hasBin: true + optionalDependencies: + fsevents: 2.3.2 + dev: true + + /run-parallel@1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} dependencies: queue-microtask: 1.2.3 dev: true - /rxjs/6.6.7: + /rxjs@6.6.7: resolution: {integrity: sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==} engines: {npm: '>=2.0.0'} dependencies: tslib: 1.14.1 dev: true - /safe-buffer/5.1.2: + /safe-buffer@5.1.2: resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} - /safe-buffer/5.2.1: + /safe-buffer@5.2.1: resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} dev: true - /safer-buffer/2.1.2: + /safe-regex-test@1.0.0: + resolution: {integrity: sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==} + dependencies: + call-bind: 1.0.2 + get-intrinsic: 1.2.0 + is-regex: 1.1.4 + dev: true + + /safer-buffer@2.1.2: resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==} dev: true - /sanitize-filename/1.6.3: + /sanitize-filename@1.6.3: resolution: {integrity: sha512-y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg==} dependencies: truncate-utf8-bytes: 1.0.2 dev: true - /sass/1.49.11: + /sass@1.49.11: resolution: {integrity: sha512-wvS/geXgHUGs6A/4ud5BFIWKO1nKd7wYIGimDk4q4GFkJicILActpv9ueMT4eRGSsp1BdKHuw1WwAHXbhsJELQ==} engines: {node: '>=12.0.0'} hasBin: true @@ -4448,42 +4818,58 @@ packages: source-map-js: 1.0.2 dev: true - /sax/1.2.4: + /sass@1.62.1: + resolution: {integrity: sha512-NHpxIzN29MXvWiuswfc1W3I0N8SXBd8UR26WntmDlRYf0bSADnwnOjsyMZ3lMezSlArD33Vs3YFhp7dWvL770A==} + engines: {node: '>=14.0.0'} + hasBin: true + dependencies: + chokidar: 3.5.3 + immutable: 4.0.0 + source-map-js: 1.0.2 + dev: true + + /sax@1.2.4: resolution: {integrity: sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==} dev: true - /scheduler/0.20.2: + /scheduler@0.20.2: resolution: {integrity: sha512-2eWfGgAqqWFGqtdMmcL5zCMK1U8KlXv8SQFGglL3CEtd0aDVDWgeF/YoCmvln55m5zSk3J/20hTaSBeSObsQDQ==} dependencies: loose-envify: 1.4.0 object-assign: 4.1.1 + dev: false - /semver-compare/1.0.0: + /scheduler@0.23.0: + resolution: {integrity: sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==} + dependencies: + loose-envify: 1.4.0 + dev: true + + /semver-compare@1.0.0: resolution: {integrity: sha1-De4hahyUGrN+nvsXiPavxf9VN/w=} dev: true optional: true - /semver-diff/3.1.1: + /semver-diff@3.1.1: resolution: {integrity: sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==} engines: {node: '>=8'} dependencies: semver: 6.3.0 dev: true - /semver/6.3.0: + /semver@6.3.0: resolution: {integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==} hasBin: true - dev: true - /semver/7.3.5: - resolution: {integrity: sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==} + /semver@7.5.0: + resolution: {integrity: sha512-+XC0AD/R7Q2mPSRuy2Id0+CGTZ98+8f+KvwirxOKIEyid+XSx6HbC63p+O4IndTHuX5Z+JxQ0TghCkO5Cg/2HA==} engines: {node: '>=10'} hasBin: true dependencies: lru-cache: 6.0.0 dev: true - /serialize-error/7.0.1: + /serialize-error@7.0.1: resolution: {integrity: sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw==} engines: {node: '>=10'} dependencies: @@ -4491,71 +4877,77 @@ packages: dev: true optional: true - /serialize-javascript/6.0.0: + /serialize-javascript@6.0.0: resolution: {integrity: sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==} dependencies: randombytes: 2.1.0 dev: true - /shebang-command/2.0.0: + /shebang-command@2.0.0: resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} engines: {node: '>=8'} dependencies: shebang-regex: 3.0.0 dev: true - /shebang-regex/3.0.0: + /shebang-regex@3.0.0: resolution: {integrity: sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==} engines: {node: '>=8'} dev: true - /shiki/0.10.1: - resolution: {integrity: sha512-VsY7QJVzU51j5o1+DguUd+6vmCmZ5v/6gYu4vyYAhzjuNQU6P/vmSy4uQaOhvje031qQMiW0d2BwgMH52vqMng==} + /shiki@0.14.2: + resolution: {integrity: sha512-ltSZlSLOuSY0M0Y75KA+ieRaZ0Trf5Wl3gutE7jzLuIcWxLp5i/uEnLoQWNvgKXQ5OMpGkJnVMRLAuzjc0LJ2A==} dependencies: - jsonc-parser: 3.0.0 - vscode-oniguruma: 1.6.2 - vscode-textmate: 5.2.0 + ansi-sequence-parser: 1.1.0 + jsonc-parser: 3.2.0 + vscode-oniguruma: 1.7.0 + vscode-textmate: 8.0.0 dev: true - /side-channel/1.0.4: + /side-channel@1.0.4: resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} dependencies: call-bind: 1.0.2 - get-intrinsic: 1.1.1 + get-intrinsic: 1.2.0 object-inspect: 1.12.0 dev: true - /signal-exit/3.0.7: + /signal-exit@3.0.7: resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} dev: true - /sinon-chai/3.7.0_chai@4.3.6+sinon@13.0.1: + /sinon-chai@3.7.0(chai@4.3.7)(sinon@15.0.4): resolution: {integrity: sha512-mf5NURdUaSdnatJx3uhoBOrY9dtL19fiOtAdT1Azxg3+lNJFiuN0uzaU3xX1LeAfL17kHQhTAJgpsfhbMJMY2g==} peerDependencies: chai: ^4.0.0 sinon: '>=4.0.0' dependencies: - chai: 4.3.6 - sinon: 13.0.1 + chai: 4.3.7 + sinon: 15.0.4 dev: true - /sinon/13.0.1: - resolution: {integrity: sha512-8yx2wIvkBjIq/MGY1D9h1LMraYW+z1X0mb648KZnKSdvLasvDu7maa0dFaNYdTDczFgbjNw2tOmWdTk9saVfwQ==} + /sinon@15.0.4: + resolution: {integrity: sha512-uzmfN6zx3GQaria1kwgWGeKiXSSbShBbue6Dcj0SI8fiCNFbiUDqKl57WFlY5lyhxZVUKmXvzgG2pilRQCBwWg==} dependencies: - '@sinonjs/commons': 1.8.3 - '@sinonjs/fake-timers': 9.1.1 - '@sinonjs/samsam': 6.1.1 - diff: 5.0.0 - nise: 5.1.1 + '@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 dev: true - /slash/3.0.0: + /slash@3.0.0: resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==} engines: {node: '>=8'} dev: true - /slice-ansi/3.0.0: + /slash@4.0.0: + resolution: {integrity: sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==} + engines: {node: '>=12'} + dev: true + + /slice-ansi@3.0.0: resolution: {integrity: sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==} engines: {node: '>=8'} requiresBuild: true @@ -4566,57 +4958,53 @@ packages: dev: true optional: true - /smart-buffer/4.2.0: + /smart-buffer@4.2.0: resolution: {integrity: sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==} engines: {node: '>= 6.0.0', npm: '>= 3.0.0'} requiresBuild: true dev: true optional: true - /source-map-js/1.0.2: + /source-map-js@1.0.2: resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} engines: {node: '>=0.10.0'} dev: true - /source-map-support/0.5.21: + /source-map-support@0.5.21: resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} dependencies: buffer-from: 1.1.2 source-map: 0.6.1 dev: true - /source-map/0.5.7: + /source-map@0.5.7: resolution: {integrity: sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=} engines: {node: '>=0.10.0'} - /source-map/0.6.1: + /source-map@0.6.1: resolution: {integrity: sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==} engines: {node: '>=0.10.0'} dev: true - /sourcemap-codec/1.4.8: - resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==} - dev: true - - /spawn-command/0.0.2-1: + /spawn-command@0.0.2-1: resolution: {integrity: sha1-YvXpRmmBwbeW3Fkpk34RycaSG9A=} dev: true - /sprintf-js/1.0.3: + /sprintf-js@1.0.3: resolution: {integrity: sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=} dev: true - /sprintf-js/1.1.2: + /sprintf-js@1.1.2: resolution: {integrity: sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==} dev: true optional: true - /stat-mode/1.0.0: + /stat-mode@1.0.0: resolution: {integrity: sha512-jH9EhtKIjuXZ2cWxmXS8ZP80XyC3iasQxMDV8jzhNJpfDb7VbQLVW4Wvsxz9QZvzV+G4YoSfBUVKDOyxLzi/sg==} engines: {node: '>= 6'} dev: true - /string-width/4.2.3: + /string-width@4.2.3: resolution: {integrity: sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==} engines: {node: '>=8'} dependencies: @@ -4625,179 +5013,218 @@ packages: strip-ansi: 6.0.1 dev: true - /string.prototype.matchall/4.0.7: - resolution: {integrity: sha512-f48okCX7JiwVi1NXCVWcFnZgADDC/n2vePlQ/KUCNqCikLLilQvwjMO8+BHVKvgzH0JB0J9LEPgxOGT02RoETg==} + /string.prototype.matchall@4.0.8: + resolution: {integrity: sha512-6zOCOcJ+RJAQshcTvXPHoxoQGONa3e/Lqx90wUA+wEzX78sg5Bo+1tQo4N0pohS0erG9qtCqJDjNCQBjeWVxyg==} dependencies: call-bind: 1.0.2 - define-properties: 1.1.3 - es-abstract: 1.19.2 - get-intrinsic: 1.1.1 + define-properties: 1.2.0 + es-abstract: 1.21.2 + get-intrinsic: 1.2.0 has-symbols: 1.0.3 internal-slot: 1.0.3 - regexp.prototype.flags: 1.4.1 + regexp.prototype.flags: 1.5.0 side-channel: 1.0.4 dev: true - /string.prototype.trimend/1.0.4: - resolution: {integrity: sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A==} + /string.prototype.trim@1.2.7: + resolution: {integrity: sha512-p6TmeT1T3411M8Cgg9wBTMRtY2q9+PNy9EV1i2lIXUN/btt763oIfxwN3RR8VU6wHX8j/1CFy0L+YuThm6bgOg==} + engines: {node: '>= 0.4'} dependencies: call-bind: 1.0.2 - define-properties: 1.1.3 + define-properties: 1.2.0 + es-abstract: 1.21.2 dev: true - /string.prototype.trimstart/1.0.4: - resolution: {integrity: sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw==} + /string.prototype.trimend@1.0.6: + resolution: {integrity: sha512-JySq+4mrPf9EsDBEDYMOb/lM7XQLulwg5R/m1r0PXEFqrV0qHvl58sdTilSXtKOflCsK2E8jxf+GKC0T07RWwQ==} dependencies: call-bind: 1.0.2 - define-properties: 1.1.3 + define-properties: 1.2.0 + es-abstract: 1.21.2 dev: true - /string_decoder/1.1.1: + /string.prototype.trimstart@1.0.6: + resolution: {integrity: sha512-omqjMDaY92pbn5HOX7f9IccLA+U1tA9GvtU4JrodiXFfYB7jPzzHpRzpglLAjtUV6bB557zwClJezTqnAiYnQA==} + dependencies: + call-bind: 1.0.2 + define-properties: 1.2.0 + es-abstract: 1.21.2 + dev: true + + /string_decoder@1.1.1: resolution: {integrity: sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==} dependencies: safe-buffer: 5.1.2 dev: true - /strip-ansi/6.0.1: + /strip-ansi@6.0.1: resolution: {integrity: sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==} engines: {node: '>=8'} dependencies: ansi-regex: 5.0.1 dev: true - /strip-bom/3.0.0: - resolution: {integrity: sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=} + /strip-bom@3.0.0: + resolution: {integrity: sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==} engines: {node: '>=4'} dev: true - /strip-json-comments/2.0.1: - resolution: {integrity: sha1-PFMZQukIwml8DsNEhYwobHygpgo=} + /strip-json-comments@2.0.1: + resolution: {integrity: sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==} engines: {node: '>=0.10.0'} dev: true - /strip-json-comments/3.1.1: + /strip-json-comments@3.1.1: resolution: {integrity: sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==} engines: {node: '>=8'} dev: true - /stylis/4.0.13: + /stylis@4.0.13: resolution: {integrity: sha512-xGPXiFVl4YED9Jh7Euv2V220mriG9u4B2TA6Ybjc1catrstKD2PpIdU3U0RKpkVBC2EhmL/F0sPCr9vrFTNRag==} - /sumchecker/3.0.1: + /sumchecker@3.0.1: resolution: {integrity: sha512-MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg==} engines: {node: '>= 8.0'} dependencies: - debug: 4.3.4 + debug: 4.3.4(supports-color@8.1.1) transitivePeerDependencies: - supports-color dev: true - /supports-color/5.5.0: + /supports-color@5.5.0: resolution: {integrity: sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==} engines: {node: '>=4'} dependencies: has-flag: 3.0.0 - /supports-color/7.2.0: + /supports-color@7.2.0: resolution: {integrity: sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==} engines: {node: '>=8'} dependencies: has-flag: 4.0.0 dev: true - /supports-color/8.1.1: + /supports-color@8.1.1: resolution: {integrity: sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==} engines: {node: '>=10'} dependencies: has-flag: 4.0.0 - dev: true - /supports-preserve-symlinks-flag/1.0.0: + /supports-preserve-symlinks-flag@1.0.0: resolution: {integrity: sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==} engines: {node: '>= 0.4'} - /tcomb-validation/3.4.1: + /synckit@0.8.5: + resolution: {integrity: sha512-L1dapNV6vu2s/4Sputv8xGsCdAVlb5nRDMFU/E27D44l5U6cw1g0dGd45uLc+OXjNMmF4ntiMdCimzcjFKQI8Q==} + engines: {node: ^14.18.0 || >=16.0.0} + dependencies: + '@pkgr/utils': 2.3.1 + tslib: 2.5.0 + dev: true + + /tapable@2.2.1: + resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} + engines: {node: '>=6'} + dev: true + + /tcomb-validation@3.4.1: resolution: {integrity: sha512-urVVMQOma4RXwiVCa2nM2eqrAomHROHvWPuj6UkDGz/eb5kcy0x6P0dVt6kzpUZtYMNoAqJLWmz1BPtxrtjtrA==} dependencies: tcomb: 3.2.29 dev: true - /tcomb/3.2.29: + /tcomb@3.2.29: resolution: {integrity: sha512-di2Hd1DB2Zfw6StGv861JoAF5h/uQVu/QJp2g8KVbtfKnoHdBQl5M32YWq6mnSYBQ1vFFrns5B1haWJL7rKaOQ==} dev: true - /temp-file/3.4.0: + /temp-file@3.4.0: resolution: {integrity: sha512-C5tjlC/HCtVUOi3KWVokd4vHVViOmGjtLwIh4MuzPo/nMYTV/p1urt3RnMz2IWXDdKEGJH3k5+KPxtqRsUYGtg==} dependencies: async-exit-hook: 2.0.1 fs-extra: 10.0.1 dev: true - /text-table/0.2.0: - resolution: {integrity: sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=} + /test-exclude@6.0.0: + resolution: {integrity: sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==} + engines: {node: '>=8'} + dependencies: + '@istanbuljs/schema': 0.1.3 + glob: 7.2.0 + minimatch: 3.1.2 dev: true - /tiny-invariant/1.2.0: - resolution: {integrity: sha512-1Uhn/aqw5C6RI4KejVeTg6mIS7IqxnLJ8Mv2tV5rTc0qWobay7pDUz6Wi392Cnc8ak1H0F2cjoRzb2/AW4+Fvg==} + /text-table@0.2.0: + resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} + dev: true + + /tiny-glob@0.2.9: + resolution: {integrity: sha512-g/55ssRPUjShh+xkfx9UPDXqhckHEsHr4Vd9zX55oSdGZc/MD0m3sferOkwWtp98bv+kcVfEHtRJgBVJzelrzg==} + dependencies: + globalyzer: 0.1.0 + globrex: 0.1.2 + dev: true + + /tiny-invariant@1.3.1: + resolution: {integrity: sha512-AD5ih2NlSssTCwsMznbvwMZpJ1cbhkGd2uueNxzv2jDlEeZdU04JQfRnggJQ8DrcVBGjAsCKwFBbDlVNtEMlzw==} dev: false - /tmp-promise/3.0.3: + /tmp-promise@3.0.3: resolution: {integrity: sha512-RwM7MoPojPxsOBYnyd2hy0bxtIlVrihNs9pj5SUvY8Zz1sQcQG2tG1hSr8PDxfgEB8RNKDhqbIlroIarSNDNsQ==} dependencies: tmp: 0.2.1 dev: true - /tmp/0.2.1: + /tmp@0.2.1: resolution: {integrity: sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==} engines: {node: '>=8.17.0'} dependencies: rimraf: 3.0.2 dev: true - /to-fast-properties/2.0.0: + /to-fast-properties@2.0.0: resolution: {integrity: sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=} engines: {node: '>=4'} - /to-readable-stream/1.0.0: + /to-readable-stream@1.0.0: resolution: {integrity: sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==} engines: {node: '>=6'} dev: true - /to-regex-range/5.0.1: + /to-regex-range@5.0.1: resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} engines: {node: '>=8.0'} dependencies: is-number: 7.0.0 dev: true - /tosource/1.0.0: + /tosource@1.0.0: resolution: {integrity: sha1-QtiN0RZhi88A1hBt1URvNCeQL/E=} engines: {node: '>=0.4.0'} dev: true - /tree-kill/1.2.2: + /tree-kill@1.2.2: resolution: {integrity: sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==} hasBin: true dev: true - /truncate-utf8-bytes/1.0.2: + /truncate-utf8-bytes@1.0.2: resolution: {integrity: sha1-QFkjkJWS1W94pYGENLC3hInKXys=} dependencies: utf8-byte-length: 1.0.4 dev: true - /ts-clone-node/0.3.30_typescript@4.6.3: - resolution: {integrity: sha512-T9RLibxk0UBHelLUnSIZNyTxlPzcEk+KFFLXBUAG9YFJ3gPOYRrgD/RHnrlAxwEJ9Gq5S/iB8m3tcuTKtgf5Rw==} - engines: {node: '>=10.0.0'} + /ts-clone-node@2.0.4(typescript@4.6.4): + resolution: {integrity: sha512-eG6FAgmQsenhIJOIFhUcO6yyYejBKZIKcI3y21jiQmIOrth5pD6GElyPAyeihbPSyBs3u/9PVNXy+5I7jGy8jA==} + engines: {node: '>=14.9.0'} peerDependencies: typescript: ^3.x || ^4.x dependencies: - compatfactory: 0.0.12_typescript@4.6.3 - typescript: 4.6.3 + compatfactory: 2.0.9(typescript@4.6.4) + typescript: 4.6.4 dev: true - /ts-node/10.7.0_ee885bc7281b682b6adbed6ae09ee090: - resolution: {integrity: sha512-TbIGS4xgJoX2i3do417KSaep1uRAW/Lu+WAL2doDHC0D6ummjirVOXU5/7aiZotbQ5p1Zp9tP7U6cYhA0O7M8A==} + /ts-node@10.9.1(@types/node@18.16.2)(typescript@5.0.4): + resolution: {integrity: sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==} hasBin: true peerDependencies: '@swc/core': '>=1.2.50' @@ -4810,24 +5237,24 @@ packages: '@swc/wasm': optional: true dependencies: - '@cspotcode/source-map-support': 0.7.0 + '@cspotcode/source-map-support': 0.8.1 '@tsconfig/node10': 1.0.8 '@tsconfig/node12': 1.0.9 '@tsconfig/node14': 1.0.1 '@tsconfig/node16': 1.0.2 - '@types/node': 17.0.23 + '@types/node': 18.16.2 acorn: 8.7.0 acorn-walk: 8.2.0 arg: 4.1.3 create-require: 1.1.1 diff: 4.0.2 make-error: 1.3.6 - typescript: 4.6.3 - v8-compile-cache-lib: 3.0.0 + typescript: 5.0.4 + v8-compile-cache-lib: 3.0.1 yn: 3.1.1 dev: true - /tsconfig-paths/3.14.1: + /tsconfig-paths@3.14.1: resolution: {integrity: sha512-fxDhWnFSLt3VuTwtvJt5fpwxBHg5AdKWMsgcPOOIilyjymcYVZoCQF8fvFRezCNfblEXmi+PcM1eYHeOAgXCOQ==} dependencies: '@types/json5': 0.0.29 @@ -4836,114 +5263,153 @@ packages: strip-bom: 3.0.0 dev: true - /tslib/1.14.1: + /tsconfig-paths@4.2.0: + resolution: {integrity: sha512-NoZ4roiN7LnbKn9QqE1amc9DJfzvZXxF4xDavcOWt1BPkdx+m+0gJuPM+S0vCe7zTJMYUP0R8pO2XMr+Y8oLIg==} + engines: {node: '>=6'} + dependencies: + json5: 2.2.3 + minimist: 1.2.6 + strip-bom: 3.0.0 + dev: true + + /tslib@1.14.1: resolution: {integrity: sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==} dev: true - /tslib/2.3.1: - resolution: {integrity: sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==} + /tslib@2.5.0: + resolution: {integrity: sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==} - /tsutils/3.21.0_typescript@4.6.3: + /tsutils@3.21.0(typescript@5.0.4): resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==} engines: {node: '>= 6'} peerDependencies: typescript: '>=2.8.0 || >= 3.2.0-dev || >= 3.3.0-dev || >= 3.4.0-dev || >= 3.5.0-dev || >= 3.6.0-dev || >= 3.6.0-beta || >= 3.7.0-dev || >= 3.7.0-beta' dependencies: tslib: 1.14.1 - typescript: 4.6.3 + typescript: 5.0.4 dev: true - /tunnel/0.0.6: + /tunnel@0.0.6: resolution: {integrity: sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==} engines: {node: '>=0.6.11 <=0.7.0 || >=0.7.3'} dev: true optional: true - /type-check/0.4.0: + /type-check@0.4.0: resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} engines: {node: '>= 0.8.0'} dependencies: prelude-ls: 1.2.1 dev: true - /type-detect/4.0.8: + /type-detect@4.0.8: resolution: {integrity: sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==} engines: {node: '>=4'} dev: true - /type-fest/0.13.1: + /type-fest@0.13.1: resolution: {integrity: sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==} engines: {node: '>=10'} dev: true optional: true - /type-fest/0.20.2: + /type-fest@0.20.2: resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} engines: {node: '>=10'} dev: true - /typedarray-to-buffer/3.1.5: + /typed-array-length@1.0.4: + resolution: {integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==} + dependencies: + call-bind: 1.0.2 + for-each: 0.3.3 + is-typed-array: 1.1.10 + dev: true + + /typedarray-to-buffer@3.1.5: resolution: {integrity: sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==} dependencies: is-typedarray: 1.0.0 dev: true - /typedarray/0.0.6: + /typedarray@0.0.6: resolution: {integrity: sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=} dev: true - /typedoc/0.22.13_typescript@4.6.3: - resolution: {integrity: sha512-NHNI7Dr6JHa/I3+c62gdRNXBIyX7P33O9TafGLd07ur3MqzcKgwTvpg18EtvCLHJyfeSthAtCLpM7WkStUmDuQ==} - engines: {node: '>= 12.10.0'} + /typedoc@0.24.6(typescript@4.6.4): + resolution: {integrity: sha512-c3y3h45xJv3qYwKDAwU6Cl+26CjT0ZvblHzfHJ+SjQDM4p1mZxtgHky4lhmG0+nNarRht8kADfZlbspJWdZarQ==} + engines: {node: '>= 14.14'} hasBin: true peerDependencies: - typescript: 4.0.x || 4.1.x || 4.2.x || 4.3.x || 4.4.x || 4.5.x || 4.6.x + typescript: 4.6.x || 4.7.x || 4.8.x || 4.9.x || 5.0.x dependencies: - glob: 7.2.0 lunr: 2.3.9 - marked: 4.0.12 - minimatch: 5.0.1 - shiki: 0.10.1 - typescript: 4.6.3 + marked: 4.3.0 + minimatch: 9.0.0 + shiki: 0.14.2 + typescript: 4.6.4 dev: true - /typescript/4.6.3: + /typescript@4.6.3: resolution: {integrity: sha512-yNIatDa5iaofVozS/uQJEl3JRWLKKGJKh6Yaiv0GLGSuhpFJe7P3SbHZ8/yjAHRQwKRoA6YZqlfjXWmVzoVSMw==} engines: {node: '>=4.2.0'} hasBin: true dev: true - /ua-parser-js/1.0.2: - resolution: {integrity: sha512-00y/AXhx0/SsnI51fTc0rLRmafiGOM4/O+ny10Ps7f+j/b8p/ZY11ytMgznXkOVo4GQ+KwQG5UQLkLGirsACRg==} + /typescript@4.6.4: + resolution: {integrity: sha512-9ia/jWHIEbo49HfjrLGfKbZSuWo9iTMwXO+Ca3pRsSpbsMbc7/IU8NKdCZVRRBafVPGnoJeFL76ZOAA84I9fEg==} + engines: {node: '>=4.2.0'} + hasBin: true dev: true - /unbox-primitive/1.0.1: - resolution: {integrity: sha512-tZU/3NqK3dA5gpE1KtyiJUrEB0lxnGkMFHptJ7q6ewdZ8s12QrODwNbhIJStmJkd1QDXa1NRA8aF2A1zk/Ypyw==} + /typescript@5.0.4: + resolution: {integrity: sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==} + engines: {node: '>=12.20'} + hasBin: true + dev: true + + /ua-parser-js@1.0.35: + resolution: {integrity: sha512-fKnGuqmTBnIE+/KXSzCn4db8RTigUzw1AN0DmdU6hJovUTbYJKyqj+8Mt1c4VfRDnOVJnENmfYkIPZ946UrSAA==} + dev: true + + /unbox-primitive@1.0.2: + resolution: {integrity: sha512-61pPlCD9h51VoreyJ0BReideM3MDKMKnh6+V9L08331ipq6Q8OFXZYiqP6n/tbHx4s5I9uRhcye6BrbkizkBDw==} dependencies: - function-bind: 1.1.1 - has-bigints: 1.0.1 + call-bind: 1.0.2 + has-bigints: 1.0.2 has-symbols: 1.0.3 which-boxed-primitive: 1.0.2 dev: true - /unique-string/2.0.0: + /unique-string@2.0.0: resolution: {integrity: sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==} engines: {node: '>=8'} dependencies: crypto-random-string: 2.0.0 dev: true - /universalify/0.1.2: + /universalify@0.1.2: resolution: {integrity: sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==} engines: {node: '>= 4.0.0'} dev: true - /universalify/2.0.0: + /universalify@2.0.0: resolution: {integrity: sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==} engines: {node: '>= 10.0.0'} dev: true - /update-notifier/5.1.0: + /update-browserslist-db@1.0.11(browserslist@4.21.5): + resolution: {integrity: sha512-dCwEFf0/oT85M1fHBg4F0jtLwJrutGoHSQXCh7u4o2t1drG+c0a9Flnqww6XUKSfQMPpJBRjU8d4RXB09qtvaA==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + dependencies: + browserslist: 4.21.5 + escalade: 3.1.1 + picocolors: 1.0.0 + dev: true + + /update-notifier@5.1.0: resolution: {integrity: sha512-ItnICHbeMh9GqUy31hFPrD1kcuZ3rpxDZbf4KUDavXwS0bW5m7SLbDQpGX3UYr072cbrF5hFUs3r5tUsPwjfHw==} engines: {node: '>=10'} dependencies: @@ -4958,51 +5424,56 @@ packages: is-yarn-global: 0.3.0 latest-version: 5.1.0 pupa: 2.1.1 - semver: 7.3.5 + semver: 7.5.0 semver-diff: 3.1.1 xdg-basedir: 4.0.0 dev: true - /uri-js/4.4.1: + /uri-js@4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} dependencies: punycode: 2.1.1 dev: true - /url-parse-lax/3.0.0: + /url-parse-lax@3.0.0: resolution: {integrity: sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=} engines: {node: '>=4'} dependencies: prepend-http: 2.0.0 dev: true - /utf8-byte-length/1.0.4: + /utf8-byte-length@1.0.4: resolution: {integrity: sha1-9F8VDExm7uloGGUFq5P8u4rWv2E=} dev: true - /util-deprecate/1.0.2: + /util-deprecate@1.0.2: resolution: {integrity: sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=} dev: true - /uuid/8.3.2: + /uuid@8.3.2: resolution: {integrity: sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==} hasBin: true dev: true - /v8-compile-cache-lib/3.0.0: - resolution: {integrity: sha512-mpSYqfsFvASnSn5qMiwrr4VKfumbPyONLCOPmsR3A6pTY/r0+tSaVbgPWSAIuzbk3lCTa+FForeTiO+wBQGkjA==} + /v8-compile-cache-lib@3.0.1: + resolution: {integrity: sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==} dev: true - /v8-compile-cache/2.3.0: - resolution: {integrity: sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==} + /v8-to-istanbul@9.1.0: + resolution: {integrity: sha512-6z3GW9x8G1gd+JIIgQQQxXuiJtCXeAjp6RaPEPLv62mH3iPHPxV6W3robxtCzNErRo6ZwTmzWhsbNvjyEBKzKA==} + engines: {node: '>=10.12.0'} + dependencies: + '@jridgewell/trace-mapping': 0.3.18 + '@types/istanbul-lib-coverage': 2.0.4 + convert-source-map: 1.8.0 dev: true - /validator/13.7.0: + /validator@13.7.0: resolution: {integrity: sha512-nYXQLCBkpJ8X6ltALua9dRrZDHVYxjJ1wgskNt1lH9fzGjs3tgojGSCBjmEPwkWS1y29+DrizMTW19Pr9uB2nw==} engines: {node: '>= 0.10'} dev: true - /verror/1.10.1: + /verror@1.10.1: resolution: {integrity: sha512-veufcmxri4e3XSrT0xwfUR7kguIkaxBeosDg00yDWhk49wdwkSUrvvsm7nc75e1PUyvIeZj6nS8VQRYz2/S4Xg==} engines: {node: '>=0.6.0'} requiresBuild: true @@ -5013,7 +5484,7 @@ packages: dev: true optional: true - /vite/2.9.1_sass@1.49.11: + /vite@2.9.1(sass@1.49.11): resolution: {integrity: sha512-vSlsSdOYGcYEJfkQ/NeLXgnRv5zZfpAsdztkIrs7AZHV8RCMZQkwjo4DS5BnrYTqoWqLoUe1Cah4aVO4oNNqCQ==} engines: {node: '>=12.2.0'} hasBin: true @@ -5032,21 +5503,21 @@ packages: esbuild: 0.14.30 postcss: 8.4.12 resolve: 1.22.0 - rollup: 2.70.1 + rollup: 2.79.1 sass: 1.49.11 optionalDependencies: fsevents: 2.3.2 dev: true - /vscode-oniguruma/1.6.2: - resolution: {integrity: sha512-KH8+KKov5eS/9WhofZR8M8dMHWN2gTxjMsG4jd04YhpbPR91fUj7rYQ2/XjeHCJWbg7X++ApRIU9NUwM2vTvLA==} + /vscode-oniguruma@1.7.0: + resolution: {integrity: sha512-L9WMGRfrjOhgHSdOYgCt/yRMsXzLDJSL7BPrOZt73gU0iWO4mpqzqQzOz5srxqTvMBaR0XZTSrVWo4j55Rc6cA==} dev: true - /vscode-textmate/5.2.0: - resolution: {integrity: sha512-Uw5ooOQxRASHgu6C7GVvUxisKXfSgW4oFlO+aa+PAkgmH89O3CXxEEzNRNtHSqtXFTl0nAC1uYj0GMSH27uwtQ==} + /vscode-textmate@8.0.0: + resolution: {integrity: sha512-AFbieoL7a5LMqcnOF04ji+rpXadgOXnZsxQr//r83kLPr7biP7am3g9zbaZIaBGwBRWeSvoMD4mgPdX3e4NWBg==} dev: true - /which-boxed-primitive/1.0.2: + /which-boxed-primitive@1.0.2: resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} dependencies: is-bigint: 1.0.4 @@ -5056,7 +5527,19 @@ packages: is-symbol: 1.0.4 dev: true - /which/2.0.2: + /which-typed-array@1.1.9: + resolution: {integrity: sha512-w9c4xkx6mPidwp7180ckYWfMmvxpjlZuIudNtDf4N/tTAUB8VJbX25qZoAsrtGuYNnGw3pa0AXgbGKRB8/EceA==} + engines: {node: '>= 0.4'} + 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 + dev: true + + /which@2.0.2: resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} engines: {node: '>= 8'} hasBin: true @@ -5064,23 +5547,23 @@ packages: isexe: 2.0.0 dev: true - /widest-line/3.1.0: + /widest-line@3.1.0: resolution: {integrity: sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==} engines: {node: '>=8'} dependencies: string-width: 4.2.3 dev: true - /word-wrap/1.2.3: + /word-wrap@1.2.3: resolution: {integrity: sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==} engines: {node: '>=0.10.0'} dev: true - /workerpool/6.2.0: - resolution: {integrity: sha512-Rsk5qQHJ9eowMH28Jwhe8HEbmdYDX4lwoMWshiCXugjtHqMD9ZbiqSDLxcsfdqsETPzVUtX5s1Z5kStiIM6l4A==} + /workerpool@6.2.1: + resolution: {integrity: sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==} dev: true - /wrap-ansi/7.0.0: + /wrap-ansi@7.0.0: resolution: {integrity: sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==} engines: {node: '>=10'} dependencies: @@ -5089,11 +5572,11 @@ packages: strip-ansi: 6.0.1 dev: true - /wrappy/1.0.2: + /wrappy@1.0.2: resolution: {integrity: sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=} dev: true - /write-file-atomic/3.0.3: + /write-file-atomic@3.0.3: resolution: {integrity: sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==} dependencies: imurmurhash: 0.1.4 @@ -5102,48 +5585,53 @@ packages: typedarray-to-buffer: 3.1.5 dev: true - /xdg-basedir/4.0.0: + /xdg-basedir@4.0.0: resolution: {integrity: sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==} engines: {node: '>=8'} dev: true - /xmlbuilder/15.1.1: + /xmlbuilder@15.1.1: resolution: {integrity: sha512-yMqGBqtXyeN1e3TGYvgNgDVZ3j84W4cwkOXQswghol6APgZWaff9lnbvN7MHYJOiXsvGPXtjTYJEiC9J2wv9Eg==} engines: {node: '>=8.0'} requiresBuild: true dev: true optional: true - /xmlbuilder/9.0.7: + /xmlbuilder@9.0.7: resolution: {integrity: sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0=} engines: {node: '>=4.0'} requiresBuild: true dev: true - /y18n/5.0.8: + /y18n@5.0.8: resolution: {integrity: sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==} engines: {node: '>=10'} dev: true - /yallist/4.0.0: + /yallist@4.0.0: resolution: {integrity: sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==} dev: true - /yaml/1.10.2: + /yaml@1.10.2: resolution: {integrity: sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==} engines: {node: '>= 6'} - /yargs-parser/20.2.4: + /yargs-parser@20.2.4: resolution: {integrity: sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==} engines: {node: '>=10'} dev: true - /yargs-parser/21.0.1: + /yargs-parser@20.2.9: + resolution: {integrity: sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==} + engines: {node: '>=10'} + dev: true + + /yargs-parser@21.0.1: resolution: {integrity: sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg==} engines: {node: '>=12'} dev: true - /yargs-unparser/2.0.0: + /yargs-unparser@2.0.0: resolution: {integrity: sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==} engines: {node: '>=10'} dependencies: @@ -5153,7 +5641,7 @@ packages: is-plain-obj: 2.1.0 dev: true - /yargs/16.2.0: + /yargs@16.2.0: resolution: {integrity: sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==} engines: {node: '>=10'} dependencies: @@ -5163,10 +5651,10 @@ packages: require-directory: 2.1.1 string-width: 4.2.3 y18n: 5.0.8 - yargs-parser: 20.2.4 + yargs-parser: 20.2.9 dev: true - /yargs/17.4.0: + /yargs@17.4.0: resolution: {integrity: sha512-WJudfrk81yWFSOkZYpAZx4Nt7V4xp7S/uJkX0CnxovMCt1wCE8LNftPpNuF9X/u9gN5nsD7ycYtRcDf2pL3UiA==} engines: {node: '>=12'} dependencies: @@ -5179,19 +5667,19 @@ packages: yargs-parser: 21.0.1 dev: true - /yauzl/2.10.0: + /yauzl@2.10.0: resolution: {integrity: sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk=} dependencies: buffer-crc32: 0.2.13 fd-slicer: 1.1.0 dev: true - /yn/3.1.1: + /yn@3.1.1: resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==} engines: {node: '>=6'} dev: true - /yocto-queue/0.1.0: + /yocto-queue@0.1.0: resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} engines: {node: '>=10'} dev: true diff --git a/test/profile.test.ts b/test/profile.test.ts deleted file mode 100644 index 46e8d2a..0000000 --- a/test/profile.test.ts +++ /dev/null @@ -1,104 +0,0 @@ -import { resolve } from "path"; -import { describe, it, beforeEach } from "mocha"; -import { expect } from "chai"; - -import type { Vault } from "../packages/opvault.js/src/index"; -import { OnePassword } from "../packages/opvault.js/src/index"; - -describe("OnePassword", () => { - const freddy = resolve(__dirname, "../freddy-2013-12-04.opvault"); - - describe("getProfileNames", () => { - it("freddy", async () => { - const instance = new OnePassword({ path: freddy }); - expect(await instance.getProfileNames()).to.deep.equal(["default"]); - }); - - it.skip("ignores faulty folders", async () => {}); - }); - - describe("unlock", () => { - let vault: Vault; - - beforeEach(async () => { - vault = await new OnePassword({ path: freddy }).getProfile("default"); - }); - - it("accepts correct password", async () => { - await expect(vault.unlock("freddy")).to.be.fulfilled; - expect(vault.isLocked).to.be.false; - }); - - it("rejects wrong password", () => { - ["Freddy", "_freddy", ""].forEach(async (password) => { - await expect(vault.unlock(password)).to.be.rejectedWith( - "Invalid password" - ); - expect(vault.isLocked).to.be.true; - }); - }); - }); - - describe("content", () => { - let vault: Vault; - - beforeEach(async () => { - vault = await new OnePassword({ path: freddy }).getProfile("default"); - await vault.unlock("freddy"); - }); - - it("reads notes", async () => { - const item = (await vault.getItem({ - title: "A note with some attachments", - }))!; - expect(item).to.exist; - expect(item.uuid).to.equal("F2DB5DA3FCA64372A751E0E85C67A538"); - expect(item.attachments).to.have.lengthOf(2); - expect(item.details).to.deep.equal({ - notesPlain: "This note has two attachments.", - }); - expect(item.overview).to.deep.equal({ - title: "A note with some attachments", - ps: 0, - ainfo: "This note has two attachments.", - }); - }); - - it("decrypts items", async () => { - const decrypted = require("./decrypted.json"); - expect(vault.isLocked).to.be.false; - for (const [uuid, item] of Object.entries(decrypted)) { - const actual = await vault.getItem(uuid); - expect(actual).to.exist; - expect(actual!.overview).to.deep.equal(item.overview); - expect(actual!.details).to.deep.equal(item.itemDetails); - expect(actual!.attachments).to.have.lengthOf(item.attachments.length); - for (const [i, attachment] of actual!.attachments.entries()) { - const expected = item.attachments[i]; - await attachment.unlock(); - expect(attachment.metadata).to.deep.equal(expected.metadata); - expect(attachment.file.toString("base64")).to.deep.equal( - expected.file - ); - expect(attachment.icon.toString("base64")).to.deep.equal( - expected.icon - ); - } - } - }); - }); - - describe("lock", () => { - it("locks", async () => { - const instance = new OnePassword({ path: freddy }); - const vault = await instance.getProfile("default"); - await vault.unlock("freddy"); - expect(vault.isLocked).to.be.false; - - vault.lock(); - expect(vault.isLocked).to.be.true; - expect(vault.getItem("F2DB5DA3FCA64372A751E0E85C67A538")).to.eventually - .throw; - }); - }); -}); diff --git a/test/weakMap.test.ts b/test/weakMap.test.ts deleted file mode 100644 index 77fada0..0000000 --- a/test/weakMap.test.ts +++ /dev/null @@ -1,43 +0,0 @@ -import { describe, it } from "mocha"; -import { expect } from "chai"; - -import { WeakValueMap } from "../packages/opvault.js/src/weakMap"; - -declare const gc: () => void; - -describe("WeakValueMap", () => { - interface Value { - value: number; - } - - it("covers base use cases", () => { - const map = new WeakValueMap(); - const object = { value: 1 }; - map.set("key", object); - expect(map.get("key")!.value).to.equal(1); - expect(map.delete("key")).to.be.true; - expect(!map.delete("key")).to.be.true; - }); - - it("overrides previous value", () => { - const map = new WeakValueMap(); - map.set("key", { value: 2 }); - map.set("key", { value: 3 }); - expect(map.get("key")!.value).to.equal(3); - }); - - it("deletes garbage collected values", (done) => { - const map = new WeakValueMap(); - map.set("key", { value: 1 }); - setTimeout(() => { - gc(); - expect(map.has("key")).to.be.false; - map.set("key", { value: 2 }); - - setTimeout(() => { - gc(); - done(); - }); - }); - }); -});