diff --git a/packages/zenn-cli/jest.config.client.js b/packages/zenn-cli/jest.config.client.js deleted file mode 100644 index f3cab0b9..00000000 --- a/packages/zenn-cli/jest.config.client.js +++ /dev/null @@ -1,12 +0,0 @@ -module.exports = { - testEnvironment: 'jsdom', - moduleFileExtensions: ['js', 'json', 'ts'], - transform: { - '^.+\\.ts$': '@swc/jest', - }, - testMatch: [ - '/src/client/__tests__/**/*.test.ts', - '/src/common/__tests__/**/*.test.ts', - ], - resetMocks: true, -}; diff --git a/packages/zenn-cli/jest.config.server.js b/packages/zenn-cli/jest.config.server.js deleted file mode 100644 index 742fe896..00000000 --- a/packages/zenn-cli/jest.config.server.js +++ /dev/null @@ -1,31 +0,0 @@ -// esmが使われているパッケージを宣言 -const esmPackages = [ - 'boxen', - 'string-width', - 'strip-ansi', - 'ansi-regex', - 'wrap-ansi', - 'widest-line', - 'ansi-styles', - 'configstore', - 'xdg-basedir', - 'unique-string', - 'crypto-random-string', -]; - -module.exports = { - testEnvironment: 'node', - moduleFileExtensions: ['js', 'json', 'ts'], - transform: { - '^.+\\.[jt]s$': '@swc/jest', - }, - testMatch: ['/src/server/__tests__/**/*.test.ts'], - resetMocks: true, - - // esmが使われているパッケージはcommonjsにトランスパイルする必要があるため - // esmパッケージのみを`transform`の対象に含める - // pnpmではルートの.pnpmにインストールされるため、それを考慮したパスを指定する必要がある - transformIgnorePatterns: [ - `node_modules/(?!(?:.pnpm/)?(${esmPackages.join('|')}))`, - ], -}; diff --git a/packages/zenn-cli/package.json b/packages/zenn-cli/package.json index b5470bd2..06378227 100644 --- a/packages/zenn-cli/package.json +++ b/packages/zenn-cli/package.json @@ -30,19 +30,16 @@ "fix:eslint": "eslint --fix 'src/**/*.{ts,tsx}'", "strict:lint": "eslint 'src/**/*.{ts,tsx}' --max-warnings 0", "test": "run-s test:client test:server", - "test:client": "jest --config=jest.config.client.js", - "test:server": "jest --config=jest.config.server.js", + "test:client": "vitest run --config vitest.client.config.ts", + "test:server": "vitest run --config vitest.server.config.ts", "exec:zenn": "node ./dist/server/zenn.js" }, "devDependencies": { - "@swc/core": "1.2.205", - "@swc/jest": "^0.2.24", "@types/configstore": "^6.0.0", "@types/connect-history-api-fallback": "^1.3.5", "@types/emoji-regex": "^9.2.0", "@types/express": "^4.17.17", "@types/fs-extra": "^11.0.1", - "@types/jest": "^29.4.0", "@types/js-yaml": "^4.0.5", "@types/node": "^18.13.0", "@types/node-fetch": "^2.6.2", @@ -74,8 +71,6 @@ "gray-matter": "^4.0.3", "history": "^5.3.0", "image-size": "^1.0.2", - "jest": "^29.4.2", - "jest-environment-jsdom": "^29.4.2", "js-yaml": "^4.1.0", "node-fetch": "^2.6.9", "node-loader": "^2.0.0", @@ -95,6 +90,7 @@ "ts-loader": "^9.4.2", "typescript": "^4.9.5", "vite": "^4.2.1", + "vitest": "^0.34.4", "wait-on": "^7.0.1", "webpack": "^5.75.0", "webpack-cli": "^5.0.1", diff --git a/packages/zenn-cli/src/client/__tests__/lib/helper.test.ts b/packages/zenn-cli/src/client/__tests__/lib/helper.test.ts index e087ef7c..3c9b6e01 100644 --- a/packages/zenn-cli/src/client/__tests__/lib/helper.test.ts +++ b/packages/zenn-cli/src/client/__tests__/lib/helper.test.ts @@ -1,3 +1,4 @@ +import { describe, test, expect } from 'vitest'; import { encodeUrlPeriod, decodeUrlPeriod } from '../../lib/helper'; describe('encodeUrlPeriod と decodeUrlPeriod を使った処理のテスト', () => { diff --git a/packages/zenn-cli/src/common/__tests__/helper.test.ts b/packages/zenn-cli/src/common/__tests__/helper.test.ts index 48b87155..4d31f4f1 100644 --- a/packages/zenn-cli/src/common/__tests__/helper.test.ts +++ b/packages/zenn-cli/src/common/__tests__/helper.test.ts @@ -1,3 +1,4 @@ +import { describe, test, expect } from 'vitest'; import * as helper from '../helper'; describe('validateSlug() のテスト', () => { diff --git a/packages/zenn-cli/src/server/__tests__/commands/help.test.ts b/packages/zenn-cli/src/server/__tests__/commands/help.test.ts index fe16ec2b..675ed194 100644 --- a/packages/zenn-cli/src/server/__tests__/commands/help.test.ts +++ b/packages/zenn-cli/src/server/__tests__/commands/help.test.ts @@ -1,9 +1,10 @@ +import { vi, describe, test, expect, beforeEach } from 'vitest'; import { exec } from '../../commands/help'; import { commandListText } from '../../lib/messages'; describe('helpコマンドのテスト', () => { beforeEach(() => { - console.log = jest.fn(); + console.log = vi.fn(); }); test('ヘルプメッセージを表示する', () => { diff --git a/packages/zenn-cli/src/server/__tests__/commands/index.test.ts b/packages/zenn-cli/src/server/__tests__/commands/index.test.ts index 26bf0a20..edb4ba61 100644 --- a/packages/zenn-cli/src/server/__tests__/commands/index.test.ts +++ b/packages/zenn-cli/src/server/__tests__/commands/index.test.ts @@ -1,16 +1,18 @@ +import { vi, describe, test, expect, beforeEach, SpyInstance } from 'vitest'; import { exec } from '../../commands/index'; import * as Log from '../../lib/log'; import { commandListText } from '../../lib/messages'; import * as notify from '../../lib/notify-update'; describe('CLIのデフォルトの挙動のテスト', () => { - let notifyNeedUpdateCLIMock: jest.SpyInstance>; + let notifyNeedUpdateCLIMock: SpyInstance>; beforeEach(() => { // mock - console.log = jest.fn(); - jest.spyOn(Log, 'error').mockImplementation(); - notifyNeedUpdateCLIMock = jest + console.log = vi.fn(); + console.error = vi.fn(); + vi.spyOn(Log, 'error'); + notifyNeedUpdateCLIMock = vi .spyOn(notify, 'notifyNeedUpdateCLI') .mockResolvedValue(); }); diff --git a/packages/zenn-cli/src/server/__tests__/commands/init.test.ts b/packages/zenn-cli/src/server/__tests__/commands/init.test.ts index 72d3ea8c..ad49073f 100644 --- a/packages/zenn-cli/src/server/__tests__/commands/init.test.ts +++ b/packages/zenn-cli/src/server/__tests__/commands/init.test.ts @@ -1,3 +1,4 @@ +import { vi, describe, test, expect, beforeEach } from 'vitest'; import path from 'path'; import { exec } from '../../commands/init'; import * as helper from '../../lib/helper'; @@ -6,9 +7,9 @@ import { initHelpText } from '../../lib/messages'; describe('initコマンドのテスト', () => { beforeEach(() => { // mock - jest.spyOn(helper, 'generateFileIfNotExist').mockImplementation(); - console.log = jest.fn(); - console.error = jest.fn(); + vi.spyOn(helper, 'generateFileIfNotExist').mockReturnValue(undefined); + console.log = vi.fn(); + console.error = vi.fn(); }); test('ディレクトリに対して generateFileIfNotExist を実行する', () => { diff --git a/packages/zenn-cli/src/server/__tests__/commands/new-article.test.ts b/packages/zenn-cli/src/server/__tests__/commands/new-article.test.ts index 34b217b4..eeda1331 100644 --- a/packages/zenn-cli/src/server/__tests__/commands/new-article.test.ts +++ b/packages/zenn-cli/src/server/__tests__/commands/new-article.test.ts @@ -1,3 +1,4 @@ +import { vi, describe, test, expect, beforeEach } from 'vitest'; import path from 'path'; import { exec } from '../../commands/new-article'; import * as helper from '../../lib/helper'; @@ -9,9 +10,9 @@ describe('new:articleコマンドのテスト', () => { beforeEach(() => { // mock - jest.spyOn(helper, 'generateFileIfNotExist').mockImplementation(); - jest.spyOn(Log, 'error').mockImplementation(); - console.log = jest.fn(); + vi.spyOn(helper, 'generateFileIfNotExist').mockReturnValue(undefined); + vi.spyOn(Log, 'error').mockReturnValue(undefined); + console.log = vi.fn(); }); test('有効な引数に generateFileIfNotExist を実行する', () => { diff --git a/packages/zenn-cli/src/server/__tests__/commands/new-book.test.ts b/packages/zenn-cli/src/server/__tests__/commands/new-book.test.ts index 0153a163..fe12aa2f 100644 --- a/packages/zenn-cli/src/server/__tests__/commands/new-book.test.ts +++ b/packages/zenn-cli/src/server/__tests__/commands/new-book.test.ts @@ -1,3 +1,4 @@ +import { vi, describe, test, expect, beforeEach } from 'vitest'; import path from 'path'; import { exec } from '../../commands/new-book'; import * as helper from '../../lib/helper'; @@ -15,9 +16,9 @@ describe('new:book コマンドのテスト', () => { beforeEach(() => { // mock - jest.spyOn(helper, 'generateFileIfNotExist').mockImplementation(); - jest.spyOn(Log, 'error').mockImplementation(); - console.log = jest.fn(); + vi.spyOn(helper, 'generateFileIfNotExist').mockReturnValue(undefined); + vi.spyOn(Log, 'error').mockReturnValue(undefined); + console.log = vi.fn(); }); test('config.yaml のデフォルト値で generateFileIfNotExist を実行する', () => { diff --git a/packages/zenn-cli/src/server/__tests__/commands/preview.test.ts b/packages/zenn-cli/src/server/__tests__/commands/preview.test.ts index d5a4b0e2..2effb329 100644 --- a/packages/zenn-cli/src/server/__tests__/commands/preview.test.ts +++ b/packages/zenn-cli/src/server/__tests__/commands/preview.test.ts @@ -1,12 +1,17 @@ +import { vi, describe, test, expect, beforeEach } from 'vitest'; +import type { Server as HttpServer } from 'http'; import { exec } from '../../commands/preview'; import { previewHelpText } from '../../lib/messages'; import * as server from '../../lib/server'; describe('preview コマンドのテスト', () => { + let mockReturnServer: HttpServer; + beforeEach(() => { - console.log = jest.fn(); - jest.spyOn(server, 'startServer').mockImplementation(); - jest.spyOn(server, 'startLocalChangesWatcher').mockImplementation(); + console.log = vi.fn(); + mockReturnServer = {} as HttpServer; + vi.spyOn(server, 'startServer').mockResolvedValue(mockReturnServer); + vi.spyOn(server, 'startLocalChangesWatcher').mockResolvedValue(undefined); }); test('--help オプションを渡すとヘルプメッセージを表示する', async () => { @@ -63,7 +68,7 @@ describe('preview コマンドのテスト', () => { test('デフォルトでは startLocalChangesWatcher を実行する', async () => { await exec([]); expect(server.startLocalChangesWatcher).toHaveBeenCalledWith( - undefined, + mockReturnServer, `${process.cwd()}/{articles,books}/**/*` ); }); diff --git a/packages/zenn-cli/src/server/__tests__/commands/version.test.ts b/packages/zenn-cli/src/server/__tests__/commands/version.test.ts index 2904dd74..daf3d0fc 100644 --- a/packages/zenn-cli/src/server/__tests__/commands/version.test.ts +++ b/packages/zenn-cli/src/server/__tests__/commands/version.test.ts @@ -1,9 +1,10 @@ +import { vi, describe, test, expect, beforeEach } from 'vitest'; import { exec } from '../../commands/version'; describe('version コマンドのテスト', () => { - console.log = jest.fn(); + console.log = vi.fn(); beforeEach(() => { - console.log = jest.fn(); + console.log = vi.fn(); }); test('バージョン情報をコンソールに出力する', () => { diff --git a/packages/zenn-cli/src/server/__tests__/lib/helper.test.ts b/packages/zenn-cli/src/server/__tests__/lib/helper.test.ts index cedee3cd..a1c2d72e 100644 --- a/packages/zenn-cli/src/server/__tests__/lib/helper.test.ts +++ b/packages/zenn-cli/src/server/__tests__/lib/helper.test.ts @@ -1,3 +1,4 @@ +import { vi, describe, test, expect, beforeEach, afterEach } from 'vitest'; import path from 'path'; import fs from 'fs-extra'; import * as helper from '../../lib/helper'; @@ -24,9 +25,9 @@ describe('getCurrentCliVersion() のテスト', () => { describe('getWorkingPath() のテスト', () => { beforeEach(() => { // mock - jest.spyOn(process, 'cwd').mockReturnValue('foo'); - jest.spyOn(process, 'exit').mockImplementation(); - jest.spyOn(Log, 'error').mockImplementation(); + vi.spyOn(process, 'cwd').mockReturnValue('foo'); + vi.spyOn(process, 'exit').mockReturnValue(undefined as never); + vi.spyOn(Log, 'error').mockReturnValue(undefined); }); test('結合されたパスを返す', () => { @@ -156,10 +157,10 @@ describe('generateFileIfNotExist() のテスト', () => { describe('completeHtml() のテスト', () => { beforeEach(() => { // process.cwdがfixturesディレクトリを指すようにする - jest.spyOn(process, 'cwd').mockReturnValue(fixtureDirPath); + vi.spyOn(process, 'cwd').mockReturnValue(fixtureDirPath); }); - test.only('src の値が URL なら検証に成功する', () => { + test('src の値が URL なら検証に成功する', () => { const html = helper.completeHtml( '' ); diff --git a/packages/zenn-cli/src/server/__tests__/lib/log.test.ts b/packages/zenn-cli/src/server/__tests__/lib/log.test.ts index 04ba0f36..4dbc1d2f 100644 --- a/packages/zenn-cli/src/server/__tests__/lib/log.test.ts +++ b/packages/zenn-cli/src/server/__tests__/lib/log.test.ts @@ -1,12 +1,13 @@ +import { vi, describe, test, expect, beforeEach } from 'vitest'; import * as Log from '../../lib/log'; import colors from 'colors/safe'; describe('Log のテスト', () => { beforeEach(() => { // mock - console.log = jest.fn(); - console.warn = jest.fn(); - console.error = jest.fn(); + console.log = vi.fn(); + console.warn = vi.fn(); + console.error = vi.fn(); }); test('エラーメッセージを表示する', () => { diff --git a/packages/zenn-cli/src/server/__tests__/lib/notify-update.test.ts b/packages/zenn-cli/src/server/__tests__/lib/notify-update.test.ts index 82733ab7..8c69a206 100644 --- a/packages/zenn-cli/src/server/__tests__/lib/notify-update.test.ts +++ b/packages/zenn-cli/src/server/__tests__/lib/notify-update.test.ts @@ -1,3 +1,4 @@ +import { vi, describe, test, expect, beforeEach, SpyInstance } from 'vitest'; import * as helper from '../../lib/helper'; import { CLI_UPDATE_CHECK_INTERVAL, @@ -7,30 +8,28 @@ import { const localVersion = 'v0.0.1'; const publishedVersion = 'v0.0.2'; -const configGetMock = jest.fn(); +const configGetMock = vi.fn(); -jest.mock( - 'configstore', - () => - function () { - return { - set: () => void 0, - get: configGetMock.mockReturnValue(0), - }; - } -); +vi.mock('configstore', () => ({ + default: function () { + return { + set: () => void 0, + get: configGetMock.mockReturnValue(0), + }; + }, +})); describe('CLIのアップデート通知のテスト', () => { - let consoleLogMock: jest.SpyInstance; - let getCurrentCliVersionMock: jest.SpyInstance; - let getPublishedCliVersionMock: jest.SpyInstance; + let consoleLogMock: SpyInstance; + let getCurrentCliVersionMock: SpyInstance; + let getPublishedCliVersionMock: SpyInstance; beforeEach(() => { - consoleLogMock = jest.spyOn(console, 'log').mockImplementation(); - getCurrentCliVersionMock = jest + consoleLogMock = vi.spyOn(console, 'log').mockReturnValue(undefined); + getCurrentCliVersionMock = vi .spyOn(helper, 'getCurrentCliVersion') .mockReturnValue(localVersion); - getPublishedCliVersionMock = jest + getPublishedCliVersionMock = vi .spyOn(helper, 'getPublishedCliVersion') .mockResolvedValue(publishedVersion); }); diff --git a/packages/zenn-cli/src/server/__tests__/preview/app.test.ts b/packages/zenn-cli/src/server/__tests__/preview/app.test.ts index 40248558..30de9e01 100644 --- a/packages/zenn-cli/src/server/__tests__/preview/app.test.ts +++ b/packages/zenn-cli/src/server/__tests__/preview/app.test.ts @@ -1,3 +1,4 @@ +import { vi, describe, test, expect } from 'vitest'; import path from 'path'; import supertest from 'supertest'; import * as helper from '../../lib/helper'; @@ -7,7 +8,7 @@ const fixturesRootPath = path.resolve(__dirname, '..', 'fixtures'); describe('/api/articles', () => { test('should respond with articles data in cwd', async () => { - jest.spyOn(process, 'cwd').mockReturnValue(fixturesRootPath); + vi.spyOn(process, 'cwd').mockReturnValue(fixturesRootPath); const res = await supertest(app).get('/api/articles').expect(200); expect(res.body.articles).toHaveLength(2); expect(res.body.articles).toEqual( @@ -33,15 +34,15 @@ describe('/api/articles', () => { }); test('should not include bodyHtml', async () => { - jest.spyOn(process, 'cwd').mockReturnValue(fixturesRootPath); + vi.spyOn(process, 'cwd').mockReturnValue(fixturesRootPath); const res = await supertest(app).get('/api/articles').expect(200); expect(res.body.articles[0].bodyHtml).toBe(undefined); }); test('should respond with empty array if no article exists in cwd', async () => { - jest - .spyOn(process, 'cwd') - .mockReturnValue(`${fixturesRootPath}/empty-directories`); + vi.spyOn(process, 'cwd').mockReturnValue( + `${fixturesRootPath}/empty-directories` + ); const res = await supertest(app).get('/api/articles').expect(200); expect(res.body.articles).toEqual([]); }); @@ -49,7 +50,7 @@ describe('/api/articles', () => { describe('/api/articles/:slug', () => { test('should respond with the article data in cwd', async () => { - jest.spyOn(process, 'cwd').mockReturnValue(fixturesRootPath); + vi.spyOn(process, 'cwd').mockReturnValue(fixturesRootPath); const res = await supertest(app) .get('/api/articles/my-first-post') .expect(200); @@ -69,7 +70,7 @@ describe('/api/articles/:slug', () => { describe('/api/books', () => { test('should respond with books data in cwd', async () => { - jest.spyOn(process, 'cwd').mockReturnValue(fixturesRootPath); + vi.spyOn(process, 'cwd').mockReturnValue(fixturesRootPath); const res = await supertest(app).get('/api/books').expect(200); expect(res.body.books).toHaveLength(2); expect(res.body.books).toEqual( @@ -98,9 +99,9 @@ describe('/api/books', () => { }); test('should respond with empty array if no book exists in cwd', async () => { - jest - .spyOn(process, 'cwd') - .mockReturnValue(`${fixturesRootPath}/empty-directories`); + vi.spyOn(process, 'cwd').mockReturnValue( + `${fixturesRootPath}/empty-directories` + ); const res = await supertest(app).get('/api/books').expect(200); expect(res.body.books).toEqual([]); }); @@ -108,7 +109,7 @@ describe('/api/books', () => { describe('/api/books/:slug', () => { test('should respond with the book data in cwd', async () => { - jest.spyOn(process, 'cwd').mockReturnValue(fixturesRootPath); + vi.spyOn(process, 'cwd').mockReturnValue(fixturesRootPath); const res = await supertest(app) .get('/api/books/my-first-book') .expect(200); @@ -133,7 +134,7 @@ describe('/api/books/:slug', () => { describe('/api/books/:book_slug/chapters', () => { test('should respond with chapters orderby specified on config.yaml', async () => { - jest.spyOn(process, 'cwd').mockReturnValue(fixturesRootPath); + vi.spyOn(process, 'cwd').mockReturnValue(fixturesRootPath); const res = await supertest(app) .get('/api/books/my-first-book/chapters') .expect(200); @@ -163,7 +164,7 @@ describe('/api/books/:book_slug/chapters', () => { }); test('should respond with chapters orderby position specified on filename', async () => { - jest.spyOn(process, 'cwd').mockReturnValue(fixturesRootPath); + vi.spyOn(process, 'cwd').mockReturnValue(fixturesRootPath); const res = await supertest(app) .get('/api/books/my-second-book/chapters') .expect(200); @@ -194,7 +195,7 @@ describe('/api/books/:book_slug/chapters', () => { }); test('should not include bodyHtml', async () => { - jest.spyOn(process, 'cwd').mockReturnValue(fixturesRootPath); + vi.spyOn(process, 'cwd').mockReturnValue(fixturesRootPath); const res = await supertest(app) .get('/api/books/my-second-book/chapters') .expect(200); @@ -204,7 +205,7 @@ describe('/api/books/:book_slug/chapters', () => { describe('/api/books/:book_slug/chapters/:chapter_filename', () => { test('should respond with the chapter in cwd', async () => { - jest.spyOn(process, 'cwd').mockReturnValue(fixturesRootPath); + vi.spyOn(process, 'cwd').mockReturnValue(fixturesRootPath); const res = await supertest(app) .get('/api/books/my-first-book/chapters/example2.md') .expect(200); @@ -221,7 +222,7 @@ describe('/api/books/:book_slug/chapters/:chapter_filename', () => { }); test('should respond with chapters orderby position specified on filename', async () => { - jest.spyOn(process, 'cwd').mockReturnValue(fixturesRootPath); + vi.spyOn(process, 'cwd').mockReturnValue(fixturesRootPath); const res = await supertest(app) .get('/api/books/my-second-book/chapters') .expect(200); @@ -254,7 +255,7 @@ describe('/api/books/:book_slug/chapters/:chapter_filename', () => { describe('/api/cli-version', () => { test('should respond with updateAvailable:true if current v differs from published v', async () => { - jest.spyOn(helper, 'getPublishedCliVersion').mockResolvedValue('2.2.2'); // mock + vi.spyOn(helper, 'getPublishedCliVersion').mockResolvedValue('2.2.2'); // mock const res = await supertest(app).get('/api/cli-version').expect(200); expect(res.body.latest).toEqual('2.2.2'); expect(res.body.current).toMatch(/^0\.[0-9.]+/); @@ -265,9 +266,9 @@ describe('/api/cli-version', () => { const actualCurrentVersion = helper.getCurrentCliVersion(); if (!actualCurrentVersion) throw 'something wrong!'; // mock getPublishedCliVersion to return the same version - jest - .spyOn(helper, 'getPublishedCliVersion') - .mockResolvedValue(actualCurrentVersion); + vi.spyOn(helper, 'getPublishedCliVersion').mockResolvedValue( + actualCurrentVersion + ); const res = await supertest(app).get('/api/cli-version').expect(200); expect(res.body.latest).toEqual(actualCurrentVersion); expect(res.body.current).toMatch(actualCurrentVersion); @@ -279,14 +280,14 @@ describe('/api/local-info', () => { test('should respond with hasInit:true if article directory exists in cwd', async () => { // mock process.cwd() // articles directory must be located in fixtures dir - jest.spyOn(process, 'cwd').mockReturnValue(fixturesRootPath); + vi.spyOn(process, 'cwd').mockReturnValue(fixturesRootPath); const res = await supertest(app).get('/api/local-info').expect(200); expect(res.body.hasInit).toBe(true); }); test('should respond with hasInit:false if article directory exists in cwd', async () => { // mock process.cwd() - jest.spyOn(process, 'cwd').mockReturnValue(`${fixturesRootPath}/empty`); + vi.spyOn(process, 'cwd').mockReturnValue(`${fixturesRootPath}/empty`); const res = await supertest(app).get('/api/local-info').expect(200); expect(res.body.hasInit).toBe(false); }); diff --git a/packages/zenn-cli/src/server/types.ts b/packages/zenn-cli/src/server/types.ts index 4cc630b0..c284011a 100644 --- a/packages/zenn-cli/src/server/types.ts +++ b/packages/zenn-cli/src/server/types.ts @@ -1 +1 @@ -export type CliExecFn = (argv?: string[]) => void; +export type CliExecFn = (argv?: string[]) => void | Promise; diff --git a/packages/zenn-cli/vitest.client.config.ts b/packages/zenn-cli/vitest.client.config.ts new file mode 100644 index 00000000..0e72514d --- /dev/null +++ b/packages/zenn-cli/vitest.client.config.ts @@ -0,0 +1,12 @@ +/// + +import { defineConfig } from 'vitest/config'; + +export default defineConfig({ + test: { + include: [ + './src/client/__tests__/**/*.test.ts', + './src/common/__tests__/**/*.test.ts', + ], + }, +}); diff --git a/packages/zenn-cli/vitest.server.config.ts b/packages/zenn-cli/vitest.server.config.ts new file mode 100644 index 00000000..06a8c888 --- /dev/null +++ b/packages/zenn-cli/vitest.server.config.ts @@ -0,0 +1,9 @@ +/// + +import { defineConfig } from 'vitest/config'; + +export default defineConfig({ + test: { + include: ['./src/server/__tests__/**/*.test.ts'], + }, +}); diff --git a/packages/zenn-markdown-html/__tests__/basic.test.ts b/packages/zenn-markdown-html/__tests__/basic.test.ts index de138f48..a809afb9 100644 --- a/packages/zenn-markdown-html/__tests__/basic.test.ts +++ b/packages/zenn-markdown-html/__tests__/basic.test.ts @@ -1,3 +1,4 @@ +import { describe, test, expect } from 'vitest'; import markdownToHtml from '../src/index'; describe('MarkdownからHTMLへの変換テスト', () => { diff --git a/packages/zenn-markdown-html/__tests__/br.test.ts b/packages/zenn-markdown-html/__tests__/br.test.ts index 1a0b0b21..ef0e44cb 100644 --- a/packages/zenn-markdown-html/__tests__/br.test.ts +++ b/packages/zenn-markdown-html/__tests__/br.test.ts @@ -1,3 +1,4 @@ +import { describe, test, expect } from 'vitest'; import markdownToHtml from '../src/index'; describe('
のテスト', () => { diff --git a/packages/zenn-markdown-html/__tests__/custom-syntax/embed/blueprintue.test.ts b/packages/zenn-markdown-html/__tests__/custom-syntax/embed/blueprintue.test.ts index ba360704..cb1f20e4 100644 --- a/packages/zenn-markdown-html/__tests__/custom-syntax/embed/blueprintue.test.ts +++ b/packages/zenn-markdown-html/__tests__/custom-syntax/embed/blueprintue.test.ts @@ -1,3 +1,4 @@ +import { vi, describe, test, expect } from 'vitest'; import { parse } from 'node-html-parser'; import markdownToHtml from '../../../src/index'; @@ -33,7 +34,7 @@ describe('Blueprintue埋め込み要素のテスト', () => { describe('customEmbed.blueprintue()を設定している場合', () => { test('渡した関数を実行する', () => { const customizeText = 'customized text!'; - const mock = jest.fn().mockReturnValue(customizeText); + const mock = vi.fn().mockReturnValue(customizeText); const html = markdownToHtml(`@[blueprintue](${validUrl})`, { customEmbed: { blueprintue: mock }, }); diff --git a/packages/zenn-markdown-html/__tests__/custom-syntax/embed/card.test.ts b/packages/zenn-markdown-html/__tests__/custom-syntax/embed/card.test.ts index 02c2cf67..3c843ad9 100644 --- a/packages/zenn-markdown-html/__tests__/custom-syntax/embed/card.test.ts +++ b/packages/zenn-markdown-html/__tests__/custom-syntax/embed/card.test.ts @@ -1,3 +1,4 @@ +import { vi, describe, test, expect } from 'vitest'; import { parse } from 'node-html-parser'; import markdownToHtml from '../../../src/index'; @@ -48,7 +49,7 @@ describe('LinkCard埋め込み要素のテスト', () => { test('渡した関数を実行する', () => { const url = 'https://example.com'; const customizeText = 'customized text'; - const mock = jest.fn().mockReturnValue(customizeText); + const mock = vi.fn().mockReturnValue(customizeText); const html = markdownToHtml(`@[card](${url})`, { customEmbed: { card: mock }, }); diff --git a/packages/zenn-markdown-html/__tests__/custom-syntax/embed/codepen.test.ts b/packages/zenn-markdown-html/__tests__/custom-syntax/embed/codepen.test.ts index 05761098..5f939ef2 100644 --- a/packages/zenn-markdown-html/__tests__/custom-syntax/embed/codepen.test.ts +++ b/packages/zenn-markdown-html/__tests__/custom-syntax/embed/codepen.test.ts @@ -1,3 +1,4 @@ +import { vi, describe, test, expect } from 'vitest'; import { parse } from 'node-html-parser'; import markdownToHtml from '../../../src/index'; @@ -30,7 +31,7 @@ describe('Codepen埋め込み要素のテスト', () => { describe('customEmbed.codepen()を設定している場合', () => { test('渡した関数を実行する', () => { const customizeText = 'customized text'; - const mock = jest.fn().mockReturnValue(customizeText); + const mock = vi.fn().mockReturnValue(customizeText); const html = markdownToHtml(`@[codepen](${invalidUrl})`, { customEmbed: { codepen: mock }, }); diff --git a/packages/zenn-markdown-html/__tests__/custom-syntax/embed/codesandbox.test.ts b/packages/zenn-markdown-html/__tests__/custom-syntax/embed/codesandbox.test.ts index 72138e67..ebfb5b97 100644 --- a/packages/zenn-markdown-html/__tests__/custom-syntax/embed/codesandbox.test.ts +++ b/packages/zenn-markdown-html/__tests__/custom-syntax/embed/codesandbox.test.ts @@ -1,3 +1,4 @@ +import { vi, describe, test, expect } from 'vitest'; import { parse } from 'node-html-parser'; import markdownToHtml from '../../../src/index'; @@ -35,7 +36,7 @@ describe('CodeSandBox埋め込み要素のテスト', () => { describe('customEmbed.codesandbox()を設定している場合', () => { test('渡した関数を実行する', () => { const customizeText = 'customized text!'; - const mock = jest.fn().mockReturnValue(customizeText); + const mock = vi.fn().mockReturnValue(customizeText); const html = markdownToHtml(`@[codesandbox](${validUrl})`, { customEmbed: { codesandbox: mock }, }); diff --git a/packages/zenn-markdown-html/__tests__/custom-syntax/embed/common.test.ts b/packages/zenn-markdown-html/__tests__/custom-syntax/embed/common.test.ts index b759a771..f4be9a93 100644 --- a/packages/zenn-markdown-html/__tests__/custom-syntax/embed/common.test.ts +++ b/packages/zenn-markdown-html/__tests__/custom-syntax/embed/common.test.ts @@ -1,3 +1,4 @@ +import { describe, test, expect } from 'vitest'; import markdownToHtml from '../../../src'; describe('埋め込み要素の共通テスト', () => { diff --git a/packages/zenn-markdown-html/__tests__/custom-syntax/embed/figma.test.ts b/packages/zenn-markdown-html/__tests__/custom-syntax/embed/figma.test.ts index 0bd70eb5..6ec9a85c 100644 --- a/packages/zenn-markdown-html/__tests__/custom-syntax/embed/figma.test.ts +++ b/packages/zenn-markdown-html/__tests__/custom-syntax/embed/figma.test.ts @@ -1,3 +1,4 @@ +import { vi, describe, test, expect } from 'vitest'; import { parse } from 'node-html-parser'; import markdownToHtml from '../../../src/index'; @@ -33,7 +34,7 @@ describe('Figma埋め込み要素のテスト', () => { describe('customEmbed.figma()を設定している場合', () => { test('渡した関数を実行する', () => { const customizeText = 'customized text!'; - const mock = jest.fn().mockReturnValue(customizeText); + const mock = vi.fn().mockReturnValue(customizeText); const html = markdownToHtml(`@[figma](${validUrl})`, { customEmbed: { figma: mock }, }); diff --git a/packages/zenn-markdown-html/__tests__/custom-syntax/embed/gist.test.ts b/packages/zenn-markdown-html/__tests__/custom-syntax/embed/gist.test.ts index 9164284a..f3483c89 100644 --- a/packages/zenn-markdown-html/__tests__/custom-syntax/embed/gist.test.ts +++ b/packages/zenn-markdown-html/__tests__/custom-syntax/embed/gist.test.ts @@ -1,3 +1,4 @@ +import { vi, describe, test, expect } from 'vitest'; import { parse } from 'node-html-parser'; import markdownToHtml from '../../../src/index'; @@ -48,7 +49,7 @@ describe('GitHub Gist埋め込み要素のテスト', () => { test('渡した関数を実行する', () => { const url = 'https://example.com'; const customizeText = 'customized text'; - const mock = jest.fn().mockReturnValue(customizeText); + const mock = vi.fn().mockReturnValue(customizeText); const html = markdownToHtml(`@[gist](${url})`, { customEmbed: { gist: mock }, }); diff --git a/packages/zenn-markdown-html/__tests__/custom-syntax/embed/github.test.ts b/packages/zenn-markdown-html/__tests__/custom-syntax/embed/github.test.ts index fc00aed3..c63acb47 100644 --- a/packages/zenn-markdown-html/__tests__/custom-syntax/embed/github.test.ts +++ b/packages/zenn-markdown-html/__tests__/custom-syntax/embed/github.test.ts @@ -1,3 +1,4 @@ +import { vi, describe, test, expect } from 'vitest'; import { parse } from 'node-html-parser'; import markdownToHtml from '../../../src/index'; @@ -52,7 +53,7 @@ describe('GitHub埋め込み要素のテスト', () => { test('渡した関数を実行する', () => { const url = 'https://example.com'; const customizeText = 'customized text'; - const mock = jest.fn().mockReturnValue(customizeText); + const mock = vi.fn().mockReturnValue(customizeText); const html = markdownToHtml(`@[github](${url})`, { customEmbed: { github: mock }, }); diff --git a/packages/zenn-markdown-html/__tests__/custom-syntax/embed/jsfiddle.test.ts b/packages/zenn-markdown-html/__tests__/custom-syntax/embed/jsfiddle.test.ts index 7e7c2caf..1eafb74a 100644 --- a/packages/zenn-markdown-html/__tests__/custom-syntax/embed/jsfiddle.test.ts +++ b/packages/zenn-markdown-html/__tests__/custom-syntax/embed/jsfiddle.test.ts @@ -1,3 +1,4 @@ +import { vi, describe, test, expect } from 'vitest'; import { parse } from 'node-html-parser'; import markdownToHtml from '../../../src/index'; @@ -28,7 +29,7 @@ describe('jsfiddle埋め込み要素のテスト', () => { describe('customEmbed.jsfiddle()を設定している場合', () => { test('渡した関数を実行する', () => { const customizeText = 'customized text!'; - const mock = jest.fn().mockReturnValue(customizeText); + const mock = vi.fn().mockReturnValue(customizeText); const html = markdownToHtml(`@[jsfiddle](${validUrl})`, { customEmbed: { jsfiddle: mock }, }); diff --git a/packages/zenn-markdown-html/__tests__/custom-syntax/embed/mermaid.test.ts b/packages/zenn-markdown-html/__tests__/custom-syntax/embed/mermaid.test.ts index 8365a4f1..c08dfcda 100644 --- a/packages/zenn-markdown-html/__tests__/custom-syntax/embed/mermaid.test.ts +++ b/packages/zenn-markdown-html/__tests__/custom-syntax/embed/mermaid.test.ts @@ -1,3 +1,4 @@ +import { vi, describe, test, expect } from 'vitest'; import { parse } from 'node-html-parser'; import markdownToHtml from '../../../src/index'; @@ -59,7 +60,7 @@ describe('Mermaid埋め込み要素のテスト', () => { describe('customEmbed.mermaid()を設定している場合', () => { test('渡した関数を実行する', () => { const customizeText = 'customized text'; - const mock = jest.fn().mockReturnValue(customizeText); + const mock = vi.fn().mockReturnValue(customizeText); const html = markdownToHtml(`\`\`\`mermaid\n${validSrc}\n\`\`\``, { customEmbed: { mermaid: mock }, }); diff --git a/packages/zenn-markdown-html/__tests__/custom-syntax/embed/slideshare.test.ts b/packages/zenn-markdown-html/__tests__/custom-syntax/embed/slideshare.test.ts index ff90f3a6..d3a0e373 100644 --- a/packages/zenn-markdown-html/__tests__/custom-syntax/embed/slideshare.test.ts +++ b/packages/zenn-markdown-html/__tests__/custom-syntax/embed/slideshare.test.ts @@ -1,3 +1,4 @@ +import { vi, describe, test, expect } from 'vitest'; import { parse } from 'node-html-parser'; import markdownToHtml from '../../../src/index'; @@ -32,7 +33,7 @@ describe('SlideShare埋め込み要素のテスト', () => { describe('customEmbed.slideshare()を設定している場合', () => { test('渡した関数を実行する', () => { const customizeText = 'customized text!'; - const mock = jest.fn().mockReturnValue(customizeText); + const mock = vi.fn().mockReturnValue(customizeText); const html = markdownToHtml(`@[slideshare](${validToken})`, { customEmbed: { slideshare: mock }, }); diff --git a/packages/zenn-markdown-html/__tests__/custom-syntax/embed/speakerdeck.test.ts b/packages/zenn-markdown-html/__tests__/custom-syntax/embed/speakerdeck.test.ts index 6b6df6dd..ca601c44 100644 --- a/packages/zenn-markdown-html/__tests__/custom-syntax/embed/speakerdeck.test.ts +++ b/packages/zenn-markdown-html/__tests__/custom-syntax/embed/speakerdeck.test.ts @@ -1,3 +1,4 @@ +import { vi, describe, test, expect } from 'vitest'; import { parse } from 'node-html-parser'; import markdownToHtml from '../../../src/index'; @@ -32,7 +33,7 @@ describe('SpeakerDeck埋め込み要素のテスト', () => { describe('customEmbed.speakerdeck()を設定している場合', () => { test('渡した関数を実行する', () => { const customizeText = 'customized text!'; - const mock = jest.fn().mockReturnValue(customizeText); + const mock = vi.fn().mockReturnValue(customizeText); const html = markdownToHtml(`@[speakerdeck](${validToken})`, { customEmbed: { speakerdeck: mock }, }); diff --git a/packages/zenn-markdown-html/__tests__/custom-syntax/embed/stackblitz.test.ts b/packages/zenn-markdown-html/__tests__/custom-syntax/embed/stackblitz.test.ts index 199b0ca6..4a853c87 100644 --- a/packages/zenn-markdown-html/__tests__/custom-syntax/embed/stackblitz.test.ts +++ b/packages/zenn-markdown-html/__tests__/custom-syntax/embed/stackblitz.test.ts @@ -1,8 +1,10 @@ +import { vi, describe, test, expect } from 'vitest'; import { parse } from 'node-html-parser'; import markdownToHtml from '../../../src/index'; describe('Stackblitz埋め込み要素のテスト', () => { - const validUrl = 'https://stackblitz.com/edit/test-examples?embed=1&file=pages/api/[id].ts'; + const validUrl = + 'https://stackblitz.com/edit/test-examples?embed=1&file=pages/api/[id].ts'; const invalidUrl = '@https://bad-url.stackblitz.com/edit/test-examples'; describe('デフォルトの挙動', () => { @@ -30,7 +32,7 @@ describe('Stackblitz埋め込み要素のテスト', () => { describe('customEmbed.stackblitz()を設定している場合', () => { test('渡した関数を実行する', () => { const customizeText = 'customized text!'; - const mock = jest.fn().mockReturnValue(customizeText); + const mock = vi.fn().mockReturnValue(customizeText); const html = markdownToHtml(`@[stackblitz](${validUrl})`, { customEmbed: { stackblitz: mock }, }); diff --git a/packages/zenn-markdown-html/__tests__/custom-syntax/embed/tweet.test.ts b/packages/zenn-markdown-html/__tests__/custom-syntax/embed/tweet.test.ts index 6605abbf..c888c49a 100644 --- a/packages/zenn-markdown-html/__tests__/custom-syntax/embed/tweet.test.ts +++ b/packages/zenn-markdown-html/__tests__/custom-syntax/embed/tweet.test.ts @@ -1,3 +1,4 @@ +import { vi, describe, test, expect } from 'vitest'; import { parse } from 'node-html-parser'; import markdownToHtml from '../../../src/index'; @@ -47,7 +48,7 @@ describe('Tweet埋め込み要素のテスト', () => { describe('customEmbed.tweet()を設定している場合', () => { test('渡した関数を実行する', () => { const customizeText = 'customized text'; - const mock = jest.fn().mockReturnValue(customizeText); + const mock = vi.fn().mockReturnValue(customizeText); const html = markdownToHtml('https://twitter.com/jack/status/20', { customEmbed: { tweet: mock }, }); diff --git a/packages/zenn-markdown-html/__tests__/custom-syntax/embed/youtube.test.ts b/packages/zenn-markdown-html/__tests__/custom-syntax/embed/youtube.test.ts index 8d3d5063..f1177584 100644 --- a/packages/zenn-markdown-html/__tests__/custom-syntax/embed/youtube.test.ts +++ b/packages/zenn-markdown-html/__tests__/custom-syntax/embed/youtube.test.ts @@ -1,3 +1,4 @@ +import { vi, describe, test, expect } from 'vitest'; import { parse } from 'node-html-parser'; import markdownToHtml from '../../../src/index'; @@ -30,7 +31,7 @@ describe('Youtube埋め込み要素のテスト', () => { describe('customEmbed.youtube()を設定している場合', () => { test('渡した関数を実行する', () => { const customizeText = 'customized text'; - const mock = jest.fn().mockReturnValue(customizeText); + const mock = vi.fn().mockReturnValue(customizeText); const html = markdownToHtml(`@[youtube](${validVideoId})`, { customEmbed: { youtube: mock }, }); diff --git a/packages/zenn-markdown-html/__tests__/custom-syntax/messagebox.test.ts b/packages/zenn-markdown-html/__tests__/custom-syntax/messagebox.test.ts index 3100427a..e9dd355f 100644 --- a/packages/zenn-markdown-html/__tests__/custom-syntax/messagebox.test.ts +++ b/packages/zenn-markdown-html/__tests__/custom-syntax/messagebox.test.ts @@ -1,3 +1,4 @@ +import { describe, test, expect } from 'vitest'; import { parse } from 'node-html-parser'; import markdownToHtml from '../../src/index'; diff --git a/packages/zenn-markdown-html/__tests__/dollar.test.ts b/packages/zenn-markdown-html/__tests__/dollar.test.ts index 1720e24f..083d141c 100644 --- a/packages/zenn-markdown-html/__tests__/dollar.test.ts +++ b/packages/zenn-markdown-html/__tests__/dollar.test.ts @@ -1,3 +1,4 @@ +import { describe, test, expect } from 'vitest'; import markdownToHtml from '../src/index'; describe('$ マークのテスト', () => { diff --git a/packages/zenn-markdown-html/__tests__/highlight.test.ts b/packages/zenn-markdown-html/__tests__/highlight.test.ts index eacfae7e..6d738de7 100644 --- a/packages/zenn-markdown-html/__tests__/highlight.test.ts +++ b/packages/zenn-markdown-html/__tests__/highlight.test.ts @@ -1,5 +1,11 @@ +import loadLanguages from 'prismjs/components/index'; + +import { describe, test, expect } from 'vitest'; import markdownToHtml from '../src/index'; +// markdownToHtml で diff を使っているので、あらかじめ読み込んでおく +loadLanguages('diff'); + describe('コードハイライトのテスト', () => { test('コードブロックを正しいに変換する', () => { const html = markdownToHtml( diff --git a/packages/zenn-markdown-html/__tests__/link.test.ts b/packages/zenn-markdown-html/__tests__/link.test.ts index e49ca6a2..5483a182 100644 --- a/packages/zenn-markdown-html/__tests__/link.test.ts +++ b/packages/zenn-markdown-html/__tests__/link.test.ts @@ -1,3 +1,4 @@ +import { describe, test, expect } from 'vitest'; import { parse } from 'node-html-parser'; import markdownToHtml from '../src/index'; import { MarkdownOptions } from '../src/types'; diff --git a/packages/zenn-markdown-html/__tests__/markdown-simple-html.test.ts b/packages/zenn-markdown-html/__tests__/markdown-simple-html.test.ts index de68b5ce..1cf5410b 100644 --- a/packages/zenn-markdown-html/__tests__/markdown-simple-html.test.ts +++ b/packages/zenn-markdown-html/__tests__/markdown-simple-html.test.ts @@ -1,3 +1,4 @@ +import { describe, test, expect } from 'vitest'; import { markdownToSimpleHtml } from '../src/index'; describe('Convert markdown to html properly', () => { diff --git a/packages/zenn-markdown-html/__tests__/matchers/isBlueprintUEUrl.test.ts b/packages/zenn-markdown-html/__tests__/matchers/isBlueprintUEUrl.test.ts index 1446468e..55aedbd0 100644 --- a/packages/zenn-markdown-html/__tests__/matchers/isBlueprintUEUrl.test.ts +++ b/packages/zenn-markdown-html/__tests__/matchers/isBlueprintUEUrl.test.ts @@ -1,3 +1,4 @@ +import { describe, test, expect } from 'vitest'; import { isBlueprintUEUrl } from '../../src/utils/url-matcher'; describe('isBlueprintUEUrlのテスト', () => { diff --git a/packages/zenn-markdown-html/__tests__/matchers/isFigmaUrl.test.ts b/packages/zenn-markdown-html/__tests__/matchers/isFigmaUrl.test.ts index a7ff8f7c..b8112c16 100644 --- a/packages/zenn-markdown-html/__tests__/matchers/isFigmaUrl.test.ts +++ b/packages/zenn-markdown-html/__tests__/matchers/isFigmaUrl.test.ts @@ -1,3 +1,4 @@ +import { describe, test, expect } from 'vitest'; import { isFigmaUrl } from '../../src/utils/url-matcher'; describe('isFigmaUrlのテスト', () => { diff --git a/packages/zenn-markdown-html/__tests__/matchers/isGithubUrl.test.ts b/packages/zenn-markdown-html/__tests__/matchers/isGithubUrl.test.ts index b0ab506d..d47cf02f 100644 --- a/packages/zenn-markdown-html/__tests__/matchers/isGithubUrl.test.ts +++ b/packages/zenn-markdown-html/__tests__/matchers/isGithubUrl.test.ts @@ -1,3 +1,4 @@ +import { describe, test, expect } from 'vitest'; import { isGithubUrl } from '../../src/utils/url-matcher'; describe('isGithubUrlのテスト', () => { diff --git a/packages/zenn-markdown-html/__tests__/matchers/isYoutubeUrl.test.ts b/packages/zenn-markdown-html/__tests__/matchers/isYoutubeUrl.test.ts index 0c5c9bc4..4ec49dd5 100644 --- a/packages/zenn-markdown-html/__tests__/matchers/isYoutubeUrl.test.ts +++ b/packages/zenn-markdown-html/__tests__/matchers/isYoutubeUrl.test.ts @@ -1,3 +1,4 @@ +import { describe, test, expect } from 'vitest'; import { isYoutubeUrl } from '../../src/utils/url-matcher'; describe('isYoutubeUrlのテスト', () => { diff --git a/packages/zenn-markdown-html/__tests__/toc.test.ts b/packages/zenn-markdown-html/__tests__/toc.test.ts index f7175e40..1a9cb678 100644 --- a/packages/zenn-markdown-html/__tests__/toc.test.ts +++ b/packages/zenn-markdown-html/__tests__/toc.test.ts @@ -1,3 +1,4 @@ +import { describe, test, expect } from 'vitest'; import { parseToc } from '../src/utils/toc'; describe('generateToc', () => { diff --git a/packages/zenn-markdown-html/__tests__/xss.test.ts b/packages/zenn-markdown-html/__tests__/xss.test.ts index 16d05ff4..ef773a7b 100644 --- a/packages/zenn-markdown-html/__tests__/xss.test.ts +++ b/packages/zenn-markdown-html/__tests__/xss.test.ts @@ -1,3 +1,4 @@ +import { describe, test, expect } from 'vitest'; import markdownToHtml from '../src/index'; describe('XSS脆弱性のテスト', () => { diff --git a/packages/zenn-markdown-html/jest.config.js b/packages/zenn-markdown-html/jest.config.js deleted file mode 100644 index 893e42f1..00000000 --- a/packages/zenn-markdown-html/jest.config.js +++ /dev/null @@ -1,4 +0,0 @@ -module.exports = { - moduleFileExtensions: ['js', 'json', 'ts'], - testRegex: './__tests__/.+\\.(test|spec)\\.ts$', -}; diff --git a/packages/zenn-markdown-html/package.json b/packages/zenn-markdown-html/package.json index 941e257b..4ae92e18 100644 --- a/packages/zenn-markdown-html/package.json +++ b/packages/zenn-markdown-html/package.json @@ -24,28 +24,26 @@ "lint": "eslint . --ext .ts,.tsx", "fix": "eslint . --ext .ts,.tsx --fix", "strict:lint": "eslint . --ext .ts,.tsx --max-warnings 0", - "test": "jest" + "test": "vitest run" }, "devDependencies": { "@babel/cli": "^7.20.7", "@babel/core": "^7.20.12", "@babel/preset-env": "^7.20.2", "@babel/preset-typescript": "^7.18.6", - "@types/jest": "^29.4.0", "@types/markdown-it": "^12.2.3", "@types/node": "^18.13.0", "@types/prismjs": "^1.26.0", "@types/sanitize-html": "^2.8.0", "@typescript-eslint/eslint-plugin": "^5.52.0", "@typescript-eslint/parser": "^5.52.0", - "babel-jest": "^29.4.2", "babel-plugin-prismjs": "^2.1.0", "eslint": "^8.34.0", "eslint-config-prettier": "^8.6.0", - "jest": "^29.4.2", "node-html-parser": "^6.1.4", "rimraf": "^3.0.2", - "typescript": "^4.9.5" + "typescript": "^4.9.5", + "vitest": "^0.34.4" }, "dependencies": { "@steelydylan/markdown-it-imsize": "^1.0.2", diff --git a/packages/zenn-markdown-html/vitest.config.ts b/packages/zenn-markdown-html/vitest.config.ts new file mode 100644 index 00000000..58942c4c --- /dev/null +++ b/packages/zenn-markdown-html/vitest.config.ts @@ -0,0 +1,9 @@ +/// + +import { defineConfig } from 'vitest/config'; + +export default defineConfig({ + test: { + include: ['./__tests__/**/*.test.ts'], + }, +}); diff --git a/packages/zenn-model/__tests__/validator.test.ts b/packages/zenn-model/__tests__/validator.test.ts index b37eb583..8cd88b6c 100644 --- a/packages/zenn-model/__tests__/validator.test.ts +++ b/packages/zenn-model/__tests__/validator.test.ts @@ -1,3 +1,4 @@ +import { describe, test, expect } from 'vitest'; import { validateArticle, validateBook, diff --git a/packages/zenn-model/jest.config.js b/packages/zenn-model/jest.config.js deleted file mode 100644 index 943f8d69..00000000 --- a/packages/zenn-model/jest.config.js +++ /dev/null @@ -1,8 +0,0 @@ -module.exports = { - moduleFileExtensions: ['js', 'json', 'ts'], - transform: { - '^.+\\.ts$': '@swc/jest', - }, - testMatch: ['/__tests__/**/*.test.ts'], - resetMocks: true, -}; diff --git a/packages/zenn-model/package.json b/packages/zenn-model/package.json index d235f719..53da5a84 100644 --- a/packages/zenn-model/package.json +++ b/packages/zenn-model/package.json @@ -20,20 +20,17 @@ "lint": "eslint . --ext .ts,.tsx", "fix": "eslint . --ext .ts,.tsx --fix", "strict:lint": "eslint . --ext .ts,.tsx --max-warnings 0", - "test": "jest" + "test": "vitest run" }, "devDependencies": { - "@swc/core": "^1.3.4", - "@swc/jest": "^0.2.23", - "@types/jest": "^29.4.0", "@typescript-eslint/eslint-plugin": "^5.52.0", "@typescript-eslint/parser": "^5.52.0", "esbuild": "^0.17.8", "eslint": "^8.34.0", "eslint-config-prettier": "^8.6.0", - "jest": "^29.4.2", "rimraf": "^4.1.2", - "typescript": "^4.9.5" + "typescript": "^4.9.5", + "vitest": "^0.34.4" }, "dependencies": { "emoji-regex": "^10.2.1" diff --git a/packages/zenn-model/vitest.config.ts b/packages/zenn-model/vitest.config.ts new file mode 100644 index 00000000..58942c4c --- /dev/null +++ b/packages/zenn-model/vitest.config.ts @@ -0,0 +1,9 @@ +/// + +import { defineConfig } from 'vitest/config'; + +export default defineConfig({ + test: { + include: ['./__tests__/**/*.test.ts'], + }, +}); diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 9c701138..4224ee55 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -20,12 +20,6 @@ importers: packages/zenn-cli: devDependencies: - '@swc/core': - specifier: 1.2.205 - version: 1.2.205 - '@swc/jest': - specifier: ^0.2.24 - version: 0.2.24(@swc/core@1.2.205) '@types/configstore': specifier: ^6.0.0 version: 6.0.0 @@ -41,9 +35,6 @@ importers: '@types/fs-extra': specifier: ^11.0.1 version: 11.0.1 - '@types/jest': - specifier: ^29.4.0 - version: 29.4.0 '@types/js-yaml': specifier: ^4.0.5 version: 4.0.5 @@ -137,12 +128,6 @@ importers: image-size: specifier: ^1.0.2 version: 1.0.2 - jest: - specifier: ^29.4.2 - version: 29.4.2(@types/node@18.13.0) - jest-environment-jsdom: - specifier: ^29.4.2 - version: 29.4.2 js-yaml: specifier: ^4.1.0 version: 4.1.0 @@ -200,12 +185,15 @@ importers: vite: specifier: ^4.2.1 version: 4.2.1(@types/node@18.13.0) + vitest: + specifier: ^0.34.4 + version: 0.34.4 wait-on: specifier: ^7.0.1 version: 7.0.1 webpack: specifier: ^5.75.0 - version: 5.75.0(@swc/core@1.2.205)(esbuild@0.17.8)(webpack-cli@5.0.1) + version: 5.75.0(esbuild@0.17.8)(webpack-cli@5.0.1) webpack-cli: specifier: ^5.0.1 version: 5.0.1(webpack@5.75.0) @@ -303,9 +291,6 @@ importers: '@babel/preset-typescript': specifier: ^7.18.6 version: 7.18.6(@babel/core@7.20.12) - '@types/jest': - specifier: ^29.4.0 - version: 29.4.0 '@types/markdown-it': specifier: ^12.2.3 version: 12.2.3 @@ -324,9 +309,6 @@ importers: '@typescript-eslint/parser': specifier: ^5.52.0 version: 5.52.0(eslint@8.34.0)(typescript@4.9.5) - babel-jest: - specifier: ^29.4.2 - version: 29.4.2(@babel/core@7.20.12) babel-plugin-prismjs: specifier: ^2.1.0 version: 2.1.0(prismjs@1.29.0) @@ -336,9 +318,6 @@ importers: eslint-config-prettier: specifier: ^8.6.0 version: 8.6.0(eslint@8.34.0) - jest: - specifier: ^29.4.2 - version: 29.4.2(@types/node@18.13.0) node-html-parser: specifier: ^6.1.4 version: 6.1.4 @@ -348,6 +327,9 @@ importers: typescript: specifier: ^4.9.5 version: 4.9.5 + vitest: + specifier: ^0.34.4 + version: 0.34.4 packages/zenn-model: dependencies: @@ -355,15 +337,6 @@ importers: specifier: ^10.2.1 version: 10.2.1 devDependencies: - '@swc/core': - specifier: ^1.3.4 - version: 1.3.26 - '@swc/jest': - specifier: ^0.2.23 - version: 0.2.24(@swc/core@1.3.26) - '@types/jest': - specifier: ^29.4.0 - version: 29.4.0 '@typescript-eslint/eslint-plugin': specifier: ^5.52.0 version: 5.52.0(@typescript-eslint/parser@5.52.0)(eslint@8.34.0)(typescript@4.9.5) @@ -379,15 +352,15 @@ importers: eslint-config-prettier: specifier: ^8.6.0 version: 8.6.0(eslint@8.34.0) - jest: - specifier: ^29.4.2 - version: 29.4.2(@types/node@18.13.0) rimraf: specifier: ^4.1.2 version: 4.1.2 typescript: specifier: ^4.9.5 version: 4.9.5 + vitest: + specifier: ^0.34.4 + version: 0.34.4 packages: @@ -530,9 +503,9 @@ packages: '@babel/core': 7.20.12 '@babel/helper-compilation-targets': 7.20.7(@babel/core@7.20.12) '@babel/helper-plugin-utils': 7.20.2 - debug: 4.3.4(supports-color@5.5.0) + debug: 4.3.4 lodash.debounce: 4.0.8 - resolve: 1.22.1 + resolve: 1.22.2 semver: 6.3.0 transitivePeerDependencies: - supports-color @@ -630,7 +603,7 @@ packages: '@babel/helper-member-expression-to-functions': 7.20.7 '@babel/helper-optimise-call-expression': 7.18.6 '@babel/template': 7.20.7 - '@babel/traverse': 7.20.13(supports-color@5.5.0) + '@babel/traverse': 7.20.13 '@babel/types': 7.20.7 transitivePeerDependencies: - supports-color @@ -678,7 +651,7 @@ packages: dependencies: '@babel/helper-function-name': 7.19.0 '@babel/template': 7.20.7 - '@babel/traverse': 7.20.13(supports-color@5.5.0) + '@babel/traverse': 7.20.13 '@babel/types': 7.20.7 transitivePeerDependencies: - supports-color @@ -927,15 +900,6 @@ packages: '@babel/helper-plugin-utils': 7.20.2 dev: true - /@babel/plugin-syntax-bigint@7.8.3(@babel/core@7.20.12): - resolution: {integrity: sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.20.2 - dev: true - /@babel/plugin-syntax-class-properties@7.12.13(@babel/core@7.20.12): resolution: {integrity: sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==} peerDependencies: @@ -983,15 +947,6 @@ packages: '@babel/helper-plugin-utils': 7.20.2 dev: true - /@babel/plugin-syntax-import-meta@7.10.4(@babel/core@7.20.12): - resolution: {integrity: sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.20.2 - dev: true - /@babel/plugin-syntax-json-strings@7.8.3(@babel/core@7.20.12): resolution: {integrity: sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==} peerDependencies: @@ -1001,16 +956,6 @@ packages: '@babel/helper-plugin-utils': 7.20.2 dev: true - /@babel/plugin-syntax-jsx@7.18.6(@babel/core@7.20.12): - resolution: {integrity: sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==} - engines: {node: '>=6.9.0'} - peerDependencies: - '@babel/core': ^7.0.0-0 - dependencies: - '@babel/core': 7.20.12 - '@babel/helper-plugin-utils': 7.20.2 - dev: true - /@babel/plugin-syntax-logical-assignment-operators@7.10.4(@babel/core@7.20.12): resolution: {integrity: sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==} peerDependencies: @@ -1623,6 +1568,24 @@ packages: '@babel/types': 7.20.7 dev: true + /@babel/traverse@7.20.13: + resolution: {integrity: sha512-kMJXfF0T6DIS9E8cgdLCSAL+cuCK+YEZHWiLK0SXpTo8YRj5lpJu3CDNKiIBCne4m9hhTIqUg6SYTAI39tAiVQ==} + engines: {node: '>=6.9.0'} + dependencies: + '@babel/code-frame': 7.18.6 + '@babel/generator': 7.20.14 + '@babel/helper-environment-visitor': 7.18.9 + '@babel/helper-function-name': 7.19.0 + '@babel/helper-hoist-variables': 7.18.6 + '@babel/helper-split-export-declaration': 7.18.6 + '@babel/parser': 7.20.15 + '@babel/types': 7.20.7 + debug: 4.3.4(supports-color@5.5.0) + globals: 11.12.0 + transitivePeerDependencies: + - supports-color + dev: true + /@babel/traverse@7.20.13(supports-color@5.5.0): resolution: {integrity: sha512-kMJXfF0T6DIS9E8cgdLCSAL+cuCK+YEZHWiLK0SXpTo8YRj5lpJu3CDNKiIBCne4m9hhTIqUg6SYTAI39tAiVQ==} engines: {node: '>=6.9.0'} @@ -1650,10 +1613,6 @@ packages: to-fast-properties: 2.0.0 dev: true - /@bcoe/v8-coverage@0.2.3: - resolution: {integrity: sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==} - dev: true - /@discoveryjs/json-ext@0.5.7: resolution: {integrity: sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==} engines: {node: '>=10.0.0'} @@ -1935,251 +1894,11 @@ packages: resolution: {integrity: sha512-SQ7Kzhh9+D+ZW9MA0zkYv3VXhIDNx+LzM6EJ+/65I3QY+enU6Itte7E5XX7EWrqLW2FN4n06GWzBnPoC3th2aQ==} dev: true - /@istanbuljs/load-nyc-config@1.1.0: - resolution: {integrity: sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==} - engines: {node: '>=8'} - dependencies: - camelcase: 5.3.1 - find-up: 4.1.0 - get-package-type: 0.1.0 - js-yaml: 3.14.1 - resolve-from: 5.0.0 - dev: true - - /@istanbuljs/schema@0.1.3: - resolution: {integrity: sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==} - engines: {node: '>=8'} - dev: true - - /@jest/console@29.4.2: - resolution: {integrity: sha512-0I/rEJwMpV9iwi9cDEnT71a5nNGK9lj8Z4+1pRAU2x/thVXCDnaTGrvxyK+cAqZTFVFCiR+hfVrP4l2m+dCmQg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@jest/types': 29.4.2 - '@types/node': 18.13.0 - chalk: 4.1.2 - jest-message-util: 29.4.2 - jest-util: 29.4.2 - slash: 3.0.0 - dev: true - - /@jest/core@29.4.2: - resolution: {integrity: sha512-KGuoQah0P3vGNlaS/l9/wQENZGNKGoWb+OPxh3gz+YzG7/XExvYu34MzikRndQCdM2S0tzExN4+FL37i6gZmCQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 - peerDependenciesMeta: - node-notifier: - optional: true - dependencies: - '@jest/console': 29.4.2 - '@jest/reporters': 29.4.2 - '@jest/test-result': 29.4.2 - '@jest/transform': 29.4.2 - '@jest/types': 29.4.2 - '@types/node': 18.13.0 - ansi-escapes: 4.3.2 - chalk: 4.1.2 - ci-info: 3.8.0 - exit: 0.1.2 - graceful-fs: 4.2.10 - jest-changed-files: 29.4.2 - jest-config: 29.4.2(@types/node@18.13.0) - jest-haste-map: 29.4.2 - jest-message-util: 29.4.2 - jest-regex-util: 29.4.2 - jest-resolve: 29.4.2 - jest-resolve-dependencies: 29.4.2 - jest-runner: 29.4.2 - jest-runtime: 29.4.2 - jest-snapshot: 29.4.2 - jest-util: 29.4.2 - jest-validate: 29.4.2 - jest-watcher: 29.4.2 - micromatch: 4.0.5 - pretty-format: 29.4.2 - slash: 3.0.0 - strip-ansi: 6.0.1 - transitivePeerDependencies: - - supports-color - - ts-node - dev: true - - /@jest/create-cache-key-function@27.5.1: - resolution: {integrity: sha512-dmH1yW+makpTSURTy8VzdUwFnfQh1G8R+DxO2Ho2FFmBbKFEVm+3jWdvFhE2VqB/LATCTokkP0dotjyQyw5/AQ==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@jest/types': 27.5.1 - dev: true - - /@jest/environment@29.4.2: - resolution: {integrity: sha512-JKs3VUtse0vQfCaFGJRX1bir9yBdtasxziSyu+pIiEllAQOe4oQhdCYIf3+Lx+nGglFktSKToBnRJfD5QKp+NQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@jest/fake-timers': 29.4.2 - '@jest/types': 29.4.2 - '@types/node': 18.13.0 - jest-mock: 29.4.2 - dev: true - - /@jest/expect-utils@29.4.2: - resolution: {integrity: sha512-Dd3ilDJpBnqa0GiPN7QrudVs0cczMMHtehSo2CSTjm3zdHx0RcpmhFNVEltuEFeqfLIyWKFI224FsMSQ/nsJQA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - jest-get-type: 29.4.2 - dev: true - - /@jest/expect@29.4.2: - resolution: {integrity: sha512-NUAeZVApzyaeLjfWIV/64zXjA2SS+NuUPHpAlO7IwVMGd5Vf9szTl9KEDlxY3B4liwLO31os88tYNHl6cpjtKQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - expect: 29.4.2 - jest-snapshot: 29.4.2 - transitivePeerDependencies: - - supports-color - dev: true - - /@jest/fake-timers@29.4.2: - resolution: {integrity: sha512-Ny1u0Wg6kCsHFWq7A/rW/tMhIedq2siiyHyLpHCmIhP7WmcAmd2cx95P+0xtTZlj5ZbJxIRQi4OPydZZUoiSQQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@jest/types': 29.4.2 - '@sinonjs/fake-timers': 10.0.2 - '@types/node': 18.13.0 - jest-message-util: 29.4.2 - jest-mock: 29.4.2 - jest-util: 29.4.2 - dev: true - - /@jest/globals@29.4.2: - resolution: {integrity: sha512-zCk70YGPzKnz/I9BNFDPlK+EuJLk21ur/NozVh6JVM86/YYZtZHqxFFQ62O9MWq7uf3vIZnvNA0BzzrtxD9iyg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@jest/environment': 29.4.2 - '@jest/expect': 29.4.2 - '@jest/types': 29.4.2 - jest-mock: 29.4.2 - transitivePeerDependencies: - - supports-color - dev: true - - /@jest/reporters@29.4.2: - resolution: {integrity: sha512-10yw6YQe75zCgYcXgEND9kw3UZZH5tJeLzWv4vTk/2mrS1aY50A37F+XT2hPO5OqQFFnUWizXD8k1BMiATNfUw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 - peerDependenciesMeta: - node-notifier: - optional: true - dependencies: - '@bcoe/v8-coverage': 0.2.3 - '@jest/console': 29.4.2 - '@jest/test-result': 29.4.2 - '@jest/transform': 29.4.2 - '@jest/types': 29.4.2 - '@jridgewell/trace-mapping': 0.3.17 - '@types/node': 18.13.0 - chalk: 4.1.2 - collect-v8-coverage: 1.0.1 - exit: 0.1.2 - glob: 7.2.3 - graceful-fs: 4.2.10 - istanbul-lib-coverage: 3.2.0 - istanbul-lib-instrument: 5.2.1 - istanbul-lib-report: 3.0.0 - istanbul-lib-source-maps: 4.0.1 - istanbul-reports: 3.1.5 - jest-message-util: 29.4.2 - jest-util: 29.4.2 - jest-worker: 29.4.2 - slash: 3.0.0 - string-length: 4.0.2 - strip-ansi: 6.0.1 - v8-to-istanbul: 9.0.1 - transitivePeerDependencies: - - supports-color - dev: true - - /@jest/schemas@29.4.2: - resolution: {integrity: sha512-ZrGzGfh31NtdVH8tn0mgJw4khQuNHiKqdzJAFbCaERbyCP9tHlxWuL/mnMu8P7e/+k4puWjI1NOzi/sFsjce/g==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@sinclair/typebox': 0.25.21 - dev: true - - /@jest/source-map@29.4.2: - resolution: {integrity: sha512-tIoqV5ZNgYI9XCKXMqbYe5JbumcvyTgNN+V5QW4My033lanijvCD0D4PI9tBw4pRTqWOc00/7X3KVvUh+qnF4Q==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@jridgewell/trace-mapping': 0.3.17 - callsites: 3.1.0 - graceful-fs: 4.2.10 - dev: true - - /@jest/test-result@29.4.2: - resolution: {integrity: sha512-HZsC3shhiHVvMtP+i55MGR5bPcc3obCFbA5bzIOb8pCjwBZf11cZliJncCgaVUbC5yoQNuGqCkC0Q3t6EItxZA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@jest/console': 29.4.2 - '@jest/types': 29.4.2 - '@types/istanbul-lib-coverage': 2.0.4 - collect-v8-coverage: 1.0.1 - dev: true - - /@jest/test-sequencer@29.4.2: - resolution: {integrity: sha512-9Z2cVsD6CcObIVrWigHp2McRJhvCxL27xHtrZFgNC1RwnoSpDx6fZo8QYjJmziFlW9/hr78/3sxF54S8B6v8rg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@jest/test-result': 29.4.2 - graceful-fs: 4.2.10 - jest-haste-map: 29.4.2 - slash: 3.0.0 - dev: true - - /@jest/transform@29.4.2: - resolution: {integrity: sha512-kf1v5iTJHn7p9RbOsBuc/lcwyPtJaZJt5885C98omWz79NIeD3PfoiiaPSu7JyCyFzNOIzKhmMhQLUhlTL9BvQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@babel/core': 7.20.12 - '@jest/types': 29.4.2 - '@jridgewell/trace-mapping': 0.3.17 - babel-plugin-istanbul: 6.1.1 - chalk: 4.1.2 - convert-source-map: 2.0.0 - fast-json-stable-stringify: 2.1.0 - graceful-fs: 4.2.10 - jest-haste-map: 29.4.2 - jest-regex-util: 29.4.2 - jest-util: 29.4.2 - micromatch: 4.0.5 - pirates: 4.0.5 - slash: 3.0.0 - write-file-atomic: 4.0.2 - transitivePeerDependencies: - - supports-color - dev: true - - /@jest/types@27.5.1: - resolution: {integrity: sha512-Cx46iJ9QpwQTjIdq5VJu2QTMMs3QlEjI0x1QbBP5W1+nMzyc2XmimiRR/CbX9TO0cPTeUlxWMOu8mslYsJ8DEw==} - engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0} - dependencies: - '@types/istanbul-lib-coverage': 2.0.4 - '@types/istanbul-reports': 3.0.1 - '@types/node': 18.13.0 - '@types/yargs': 16.0.5 - chalk: 4.1.2 - dev: true - - /@jest/types@29.4.2: - resolution: {integrity: sha512-CKlngyGP0fwlgC1BRUtPZSiWLBhyS9dKwKmyGxk8Z6M82LBEGB2aLQSg+U1MyLsU+M7UjnlLllBM2BLWKVm/Uw==} + /@jest/schemas@29.6.3: + resolution: {integrity: sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/schemas': 29.4.2 - '@types/istanbul-lib-coverage': 2.0.4 - '@types/istanbul-reports': 3.0.1 - '@types/node': 18.13.0 - '@types/yargs': 17.0.22 - chalk: 4.1.2 + '@sinclair/typebox': 0.27.8 dev: true /@jridgewell/gen-mapping@0.1.1: @@ -2220,6 +1939,10 @@ packages: resolution: {integrity: sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==} dev: true + /@jridgewell/sourcemap-codec@1.4.15: + resolution: {integrity: sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==} + dev: true + /@jridgewell/trace-mapping@0.3.17: resolution: {integrity: sha512-MCNzAp77qzKca9+W/+I0+sEpaUnZoeasnghNeVc41VZCEKaCH73Vq3BZZ/SzWIgrqE4H4ceI+p+b6C0mHf9T4g==} dependencies: @@ -2710,359 +2433,62 @@ packages: resolution: {integrity: sha512-RNiOoTPkptFtSVzQevY/yWtZwf/RxyVnPy/OcA9HBM3MlGDnBEYL5B41H0MTn0Uec8Hi+2qUtTfG2WWZBmMejQ==} dev: true - /@sinclair/typebox@0.25.21: - resolution: {integrity: sha512-gFukHN4t8K4+wVC+ECqeqwzBDeFeTzBXroBTqE6vcWrQGbEUpHO7LYdG0f4xnvYq4VOEwITSlHlp0JBAIFMS/g==} - dev: true - - /@sinonjs/commons@2.0.0: - resolution: {integrity: sha512-uLa0j859mMrg2slwQYdO/AkrOfmH+X6LTVmNTS9CqexuE2IvVORIkSpJLqePAbEnKJ77aMmCwr1NUZ57120Xcg==} - dependencies: - type-detect: 4.0.8 - dev: true - - /@sinonjs/fake-timers@10.0.2: - resolution: {integrity: sha512-SwUDyjWnah1AaNl7kxsa7cfLhlTYoiyhDAIgyh+El30YvXs/o7OLXpYH88Zdhyx9JExKrmHDJ+10bwIcY80Jmw==} - dependencies: - '@sinonjs/commons': 2.0.0 + /@sinclair/typebox@0.27.8: + resolution: {integrity: sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==} dev: true /@steelydylan/markdown-it-imsize@1.0.2: resolution: {integrity: sha512-3tfhRLlv8w3GSNzjEx3y1JIyHpCuBhqXN6tILRTR4IhZcrJb6WJJo12jZ/lKiT9VITg9kHHHg6yVsDwO5nnZqw==} dev: false - /@swc/core-android-arm-eabi@1.2.205: - resolution: {integrity: sha512-HfiuVA1JDHMSRQ8nE1DcemUgZ1PKaPwit4i7q3xin0NVbVHY1xkJyQFuLVh3VxTvGKKkF3hi8GJMVQgOXWL6kg==} - engines: {node: '>=10'} - cpu: [arm] - os: [android] - requiresBuild: true - dev: true - optional: true - - /@swc/core-android-arm64@1.2.205: - resolution: {integrity: sha512-sRGZBV2dOnmh8gWWFo9HVOHdKa33zIsF8/8oYEGtq+2/s96UlAKltO2AA7HH9RaO/fT1tzBZStp+fEMUhDk/FA==} - engines: {node: '>=10'} - cpu: [arm64] - os: [android] - requiresBuild: true + /@tootallnate/once@2.0.0: + resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==} + engines: {node: '>= 10'} dev: true - optional: true - /@swc/core-darwin-arm64@1.2.205: - resolution: {integrity: sha512-JwVDfKS7vp7zzOQXWNwwcF41h4r3DWEpK6DQjz18WJyS1VVOcpVQGyuE7kSPjcnG01ZxBL9JPwwT353i/8IwDg==} - engines: {node: '>=10'} - cpu: [arm64] - os: [darwin] - requiresBuild: true + /@types/body-parser@1.19.2: + resolution: {integrity: sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==} + dependencies: + '@types/connect': 3.4.35 + '@types/node': 18.13.0 dev: true - optional: true - /@swc/core-darwin-arm64@1.3.26: - resolution: {integrity: sha512-FWWflBfKRYrUJtko2xiedC5XCa31O75IZZqnTWuLpe9g3C5tnUuF3M8LSXZS/dn6wprome1MhtG9GMPkSYkhkg==} - engines: {node: '>=10'} - cpu: [arm64] - os: [darwin] - requiresBuild: true + /@types/chai-subset@1.3.3: + resolution: {integrity: sha512-frBecisrNGz+F4T6bcc+NLeolfiojh5FxW2klu669+8BARtyQv2C/GkNW6FUodVe4BroGMP/wER/YDGc7rEllw==} + dependencies: + '@types/chai': 4.3.6 dev: true - optional: true - /@swc/core-darwin-x64@1.2.205: - resolution: {integrity: sha512-malz2I+w6xFF1QyTmPGt0Y0NEMbUcrvfr5gUfZDGjxMhPPlS7k6fXucuZxVr9VVaM+JGq1SidVODmZ84jb1qHg==} - engines: {node: '>=10'} - cpu: [x64] - os: [darwin] - requiresBuild: true + /@types/chai@4.3.6: + resolution: {integrity: sha512-VOVRLM1mBxIRxydiViqPcKn6MIxZytrbMpd6RJLIWKxUNr3zux8no0Oc7kJx0WAPIitgZ0gkrDS+btlqQpubpw==} dev: true - optional: true - /@swc/core-darwin-x64@1.3.26: - resolution: {integrity: sha512-0uQeebAtsewqJ2b35aPZstGrylwd6oJjUyAJOfVJNbremFSJ5JzytB3NoDCIw7CT5UQrSRpvD3mU95gfdQjDGA==} - engines: {node: '>=10'} - cpu: [x64] - os: [darwin] - requiresBuild: true + /@types/configstore@6.0.0: + resolution: {integrity: sha512-GUvNiia85zTDDIx0iPrtF3pI8dwrQkfuokEqxqPDE55qxH0U5SZz4awVZjiJLWN2ZZRkXCUqgsMUbygXY+kytA==} dev: true - optional: true - /@swc/core-freebsd-x64@1.2.205: - resolution: {integrity: sha512-/nZrG1z0T7h97AsOb/wOtYlnh4WEuNppv3XKQIMPj32YNQdMBVgpybVTVRIs1GQGZMd1/7jAy5BVQcwQjUbrLg==} - engines: {node: '>=10'} - cpu: [x64] - os: [freebsd] - requiresBuild: true + /@types/connect-history-api-fallback@1.3.5: + resolution: {integrity: sha512-h8QJa8xSb1WD4fpKBDcATDNGXghFj6/3GRWG6dhmRcu0RX1Ubasur2Uvx5aeEwlf0MwblEC2bMzzMQntxnw/Cw==} + dependencies: + '@types/express-serve-static-core': 4.17.33 + '@types/node': 18.13.0 dev: true - optional: true - /@swc/core-linux-arm-gnueabihf@1.2.205: - resolution: {integrity: sha512-mTA3vETMdBmpecUyI9waZYsp7FABhew4e81psspmFpDyfty0SLISWZDnvPAn0pSnb2fWhzKwDC5kdXHKUmLJuA==} - engines: {node: '>=10'} - cpu: [arm] - os: [linux] - requiresBuild: true + /@types/connect@3.4.35: + resolution: {integrity: sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==} + dependencies: + '@types/node': 18.13.0 dev: true - optional: true - /@swc/core-linux-arm-gnueabihf@1.3.26: - resolution: {integrity: sha512-06T+LbVFlyciQtwrUB5/a16A1ju1jFoYvd/hq9TWhf7GrtL43U7oJIgqMOPHx2j0+Ps2R3S6R/UUN5YXu618zA==} - engines: {node: '>=10'} - cpu: [arm] - os: [linux] - requiresBuild: true + /@types/cookiejar@2.1.2: + resolution: {integrity: sha512-t73xJJrvdTjXrn4jLS9VSGRbz0nUY3cl2DMGDU48lKl+HR9dbbjW2A9r3g40VA++mQpy6uuHg33gy7du2BKpog==} dev: true - optional: true - /@swc/core-linux-arm64-gnu@1.2.205: - resolution: {integrity: sha512-qGzFGryeQE+O5SFK7Nn2ESqCEnv00rnzhf11WZF9V71EZ15amIhmbcwHqvFpoRSDw8hZnqoGqfPRfoJbouptnA==} - engines: {node: '>=10'} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@swc/core-linux-arm64-gnu@1.3.26: - resolution: {integrity: sha512-2NT/0xALPfK+U01qIlHxjkGdIj6F0txhu1U2v6B0YP2+k0whL2gCgYeg9QUvkYEXSD5r1Yx+vcb2R/vaSCSClg==} - engines: {node: '>=10'} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@swc/core-linux-arm64-musl@1.2.205: - resolution: {integrity: sha512-uLJoX9L/4Xg3sLMjAbIhzbTe5gD/MBA8VETBeEkLtgb7a0ys1kvn9xQ6qLw6A71amEPlI+VABnoTRdUEaBSV9Q==} - engines: {node: '>=10'} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@swc/core-linux-arm64-musl@1.3.26: - resolution: {integrity: sha512-64KrTay9hC0mTvZ1AmEFmNEwV5QDjw9U7PJU5riotSc28I+Q/ZoM0qcSFW9JRRa6F2Tr+IfMtyv8+eB2//BQ5g==} - engines: {node: '>=10'} - cpu: [arm64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@swc/core-linux-x64-gnu@1.2.205: - resolution: {integrity: sha512-gQsjcYlkWKP1kceQIsoHGrOrG7ygW3ojNsSnYoZ5DG5PipRA4eeUfO9YIfrmoa29LiVNjmRPfUJa8O1UHDG5ew==} - engines: {node: '>=10'} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@swc/core-linux-x64-gnu@1.3.26: - resolution: {integrity: sha512-Te8G13l3dcRM1Mf3J4JzGUngzNXLKnMYlUmBOYN/ORsx7e+VNelR3zsTLHC0+0jGqELDgqvMyzDfk+dux/C/bQ==} - engines: {node: '>=10'} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@swc/core-linux-x64-musl@1.2.205: - resolution: {integrity: sha512-LR5ukqBltQc++2eX3qEj/H8KtOt0V3CmtgXNOiNCUxvPDT8mYz/8MJhYOrofonND0RKfXyyPW7dRxg62ceTLSQ==} - engines: {node: '>=10'} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@swc/core-linux-x64-musl@1.3.26: - resolution: {integrity: sha512-nqQWuSM6OTKepUiQ9+rXgERq/JiO72RBOpXKO2afYppsL96sngjIRewV74v5f6IAfyzw+k+AhC5pgRA4Xu/Jkg==} - engines: {node: '>=10'} - cpu: [x64] - os: [linux] - requiresBuild: true - dev: true - optional: true - - /@swc/core-win32-arm64-msvc@1.2.205: - resolution: {integrity: sha512-NjcLWm4mOy78LAEt7pqFl+SLcCyqnSlUP729XRd1uRvKwt1Cwch5SQRdoaFqwf1DaEQy4H4iuGPynkfarlb1kQ==} - engines: {node: '>=10'} - cpu: [arm64] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /@swc/core-win32-arm64-msvc@1.3.26: - resolution: {integrity: sha512-xx34mx+9IBV1sun7sxoNFiqNom9wiOuvsQFJUyQptCnZHgYwOr9OI204LBF95dCcBCZsTm2hT1wBnySJOeimYw==} - engines: {node: '>=10'} - cpu: [arm64] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /@swc/core-win32-ia32-msvc@1.2.205: - resolution: {integrity: sha512-+6byrRxIXgZ0zmLL6ZeX1HBBrAqvCy8MR5Yz0SO26jR8OPZXJCgZXL9BTsZO+YEG4f32ZOlZh3nnHCl6Dcb4GA==} - engines: {node: '>=10'} - cpu: [ia32] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /@swc/core-win32-ia32-msvc@1.3.26: - resolution: {integrity: sha512-48LZ/HKNuU9zl8c7qG6IQKb5rBCwmJgysGOmEGzTRBYxAf/x6Scmt0aqxCoV4J02HOs2WduCBDnhUKsSQ2kcXQ==} - engines: {node: '>=10'} - cpu: [ia32] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /@swc/core-win32-x64-msvc@1.2.205: - resolution: {integrity: sha512-RRSkyAol0c7sU9gejtrpF8TLmdYdBjLutcmQHtLKbWTm74ZLidZpF28G0J2tD7HNmzQnMpLzyoT1jW9JgLwzVg==} - engines: {node: '>=10'} - cpu: [x64] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /@swc/core-win32-x64-msvc@1.3.26: - resolution: {integrity: sha512-UPe7S+MezD/S6cKBIc50TduGzmw6PBz1Ms5p+5wDLOKYNS/LSEM4iRmLwvePzP5X8mOyesXrsbwxLy8KHP65Yw==} - engines: {node: '>=10'} - cpu: [x64] - os: [win32] - requiresBuild: true - dev: true - optional: true - - /@swc/core@1.2.205: - resolution: {integrity: sha512-evq0/tFyYdYgOhKb//+G93fxe9zwFxtme7NL7wSiEF8+4/ON4Y5AI9eHLoqddXqs3W8Y0HQi+rJmlrkCibrseA==} - engines: {node: '>=10'} - hasBin: true - optionalDependencies: - '@swc/core-android-arm-eabi': 1.2.205 - '@swc/core-android-arm64': 1.2.205 - '@swc/core-darwin-arm64': 1.2.205 - '@swc/core-darwin-x64': 1.2.205 - '@swc/core-freebsd-x64': 1.2.205 - '@swc/core-linux-arm-gnueabihf': 1.2.205 - '@swc/core-linux-arm64-gnu': 1.2.205 - '@swc/core-linux-arm64-musl': 1.2.205 - '@swc/core-linux-x64-gnu': 1.2.205 - '@swc/core-linux-x64-musl': 1.2.205 - '@swc/core-win32-arm64-msvc': 1.2.205 - '@swc/core-win32-ia32-msvc': 1.2.205 - '@swc/core-win32-x64-msvc': 1.2.205 - dev: true - - /@swc/core@1.3.26: - resolution: {integrity: sha512-U7vEsaLn3IGg0XCRLJX/GTkK9WIfFHUX5USdrp1L2QD29sWPe25HqNndXmUR9KytzKmpDMNoUuHyiuhpVrnNeQ==} - engines: {node: '>=10'} - requiresBuild: true - optionalDependencies: - '@swc/core-darwin-arm64': 1.3.26 - '@swc/core-darwin-x64': 1.3.26 - '@swc/core-linux-arm-gnueabihf': 1.3.26 - '@swc/core-linux-arm64-gnu': 1.3.26 - '@swc/core-linux-arm64-musl': 1.3.26 - '@swc/core-linux-x64-gnu': 1.3.26 - '@swc/core-linux-x64-musl': 1.3.26 - '@swc/core-win32-arm64-msvc': 1.3.26 - '@swc/core-win32-ia32-msvc': 1.3.26 - '@swc/core-win32-x64-msvc': 1.3.26 - dev: true - - /@swc/jest@0.2.24(@swc/core@1.2.205): - resolution: {integrity: sha512-fwgxQbM1wXzyKzl1+IW0aGrRvAA8k0Y3NxFhKigbPjOJ4mCKnWEcNX9HQS3gshflcxq8YKhadabGUVfdwjCr6Q==} - engines: {npm: '>= 7.0.0'} - peerDependencies: - '@swc/core': '*' - dependencies: - '@jest/create-cache-key-function': 27.5.1 - '@swc/core': 1.2.205 - jsonc-parser: 3.2.0 - dev: true - - /@swc/jest@0.2.24(@swc/core@1.3.26): - resolution: {integrity: sha512-fwgxQbM1wXzyKzl1+IW0aGrRvAA8k0Y3NxFhKigbPjOJ4mCKnWEcNX9HQS3gshflcxq8YKhadabGUVfdwjCr6Q==} - engines: {npm: '>= 7.0.0'} - peerDependencies: - '@swc/core': '*' - dependencies: - '@jest/create-cache-key-function': 27.5.1 - '@swc/core': 1.3.26 - jsonc-parser: 3.2.0 - dev: true - - /@tootallnate/once@2.0.0: - resolution: {integrity: sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==} - engines: {node: '>= 10'} - dev: true - - /@types/babel__core@7.20.0: - resolution: {integrity: sha512-+n8dL/9GWblDO0iU6eZAwEIJVr5DWigtle+Q6HLOrh/pdbXOhOtqzq8VPPE2zvNJzSKY4vH/z3iT3tn0A3ypiQ==} - dependencies: - '@babel/parser': 7.20.15 - '@babel/types': 7.20.7 - '@types/babel__generator': 7.6.4 - '@types/babel__template': 7.4.1 - '@types/babel__traverse': 7.18.3 - dev: true - - /@types/babel__generator@7.6.4: - resolution: {integrity: sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==} - dependencies: - '@babel/types': 7.20.7 - dev: true - - /@types/babel__template@7.4.1: - resolution: {integrity: sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==} - dependencies: - '@babel/parser': 7.20.15 - '@babel/types': 7.20.7 - dev: true - - /@types/babel__traverse@7.18.3: - resolution: {integrity: sha512-1kbcJ40lLB7MHsj39U4Sh1uTd2E7rLEa79kmDpI6cy+XiXsteB3POdQomoq4FxszMrO3ZYchkhYJw7A2862b3w==} - dependencies: - '@babel/types': 7.20.7 - dev: true - - /@types/body-parser@1.19.2: - resolution: {integrity: sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==} - dependencies: - '@types/connect': 3.4.35 - '@types/node': 18.13.0 - dev: true - - /@types/configstore@6.0.0: - resolution: {integrity: sha512-GUvNiia85zTDDIx0iPrtF3pI8dwrQkfuokEqxqPDE55qxH0U5SZz4awVZjiJLWN2ZZRkXCUqgsMUbygXY+kytA==} - dev: true - - /@types/connect-history-api-fallback@1.3.5: - resolution: {integrity: sha512-h8QJa8xSb1WD4fpKBDcATDNGXghFj6/3GRWG6dhmRcu0RX1Ubasur2Uvx5aeEwlf0MwblEC2bMzzMQntxnw/Cw==} - dependencies: - '@types/express-serve-static-core': 4.17.33 - '@types/node': 18.13.0 - dev: true - - /@types/connect@3.4.35: - resolution: {integrity: sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==} - dependencies: - '@types/node': 18.13.0 - dev: true - - /@types/cookiejar@2.1.2: - resolution: {integrity: sha512-t73xJJrvdTjXrn4jLS9VSGRbz0nUY3cl2DMGDU48lKl+HR9dbbjW2A9r3g40VA++mQpy6uuHg33gy7du2BKpog==} - dev: true - - /@types/emoji-regex@9.2.0: - resolution: {integrity: sha512-Q2BaUWiokKV2ZWk15twerRiNIex/VOGIz3pAgPMk6JZAeuGT9oAm/kA2Ri9InUtPc84bY0UQZzn/Pd2yUd33Ig==} - deprecated: This is a stub types definition. emoji-regex provides its own type definitions, so you do not need this installed. - dependencies: - emoji-regex: 10.2.1 + /@types/emoji-regex@9.2.0: + resolution: {integrity: sha512-Q2BaUWiokKV2ZWk15twerRiNIex/VOGIz3pAgPMk6JZAeuGT9oAm/kA2Ri9InUtPc84bY0UQZzn/Pd2yUd33Ig==} + deprecated: This is a stub types definition. emoji-regex provides its own type definitions, so you do not need this installed. + dependencies: + emoji-regex: 10.2.1 dev: true /@types/eslint-scope@3.7.4: @@ -3107,12 +2533,6 @@ packages: '@types/node': 18.13.0 dev: true - /@types/graceful-fs@4.1.6: - resolution: {integrity: sha512-Sig0SNORX9fdW+bQuTEovKj3uHcUL6LQKbCrrqb1X7J6/ReAbhCXRAhc+SMejhLELFj2QcyuxmUooZ4bt5ReSw==} - dependencies: - '@types/node': 18.13.0 - dev: true - /@types/hoist-non-react-statics@3.3.1: resolution: {integrity: sha512-iMIqiko6ooLrTh1joXodJK5X9xeEALT1kM5G3ZLhD3hszxBdIEd5C75U834D9mLcINgD4OyZf5uQXjkuYydWvA==} dependencies: @@ -3120,41 +2540,10 @@ packages: hoist-non-react-statics: 3.3.2 dev: true - /@types/istanbul-lib-coverage@2.0.4: - resolution: {integrity: sha512-z/QT1XN4K4KYuslS23k62yDIDLwLFkzxOuMplDtObz0+y7VqJCaO2o+SPwHCvLFZh7xazvvoor2tA/hPz9ee7g==} - dev: true - - /@types/istanbul-lib-report@3.0.0: - resolution: {integrity: sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==} - dependencies: - '@types/istanbul-lib-coverage': 2.0.4 - dev: true - - /@types/istanbul-reports@3.0.1: - resolution: {integrity: sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==} - dependencies: - '@types/istanbul-lib-report': 3.0.0 - dev: true - - /@types/jest@29.4.0: - resolution: {integrity: sha512-VaywcGQ9tPorCX/Jkkni7RWGFfI11whqzs8dvxF41P17Z+z872thvEvlIbznjPJ02kl1HMX3LmLOonsj2n7HeQ==} - dependencies: - expect: 29.4.2 - pretty-format: 29.4.2 - dev: true - /@types/js-yaml@4.0.5: resolution: {integrity: sha512-FhpRzf927MNQdRZP0J5DLIdTXhjLYzeUTmLAu69mnVksLH9CJY3IuSeEgbKUki7GQZm0WqDkGzyxju2EZGD2wA==} dev: true - /@types/jsdom@20.0.1: - resolution: {integrity: sha512-d0r18sZPmMQr1eG35u12FZfhIXNrnsPU/g5wvRKCUf/tOGilKKwYMYGqh33BNR6ba+2gkHw1EUiHoN3mn7E5IQ==} - dependencies: - '@types/node': 18.13.0 - '@types/tough-cookie': 4.0.2 - parse5: 7.1.2 - dev: true - /@types/json-schema@7.0.11: resolution: {integrity: sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==} dev: true @@ -3200,10 +2589,6 @@ packages: resolution: {integrity: sha512-Gj7cI7z+98M282Tqmp2K5EIsoouUEzbBJhQQzDE3jSIRk6r9gsz0oUokqIUR4u1R3dMHo0pDHM7sNOHyhulypw==} dev: true - /@types/prettier@2.7.2: - resolution: {integrity: sha512-KufADq8uQqo1pYKVIYzfKbJfBAc0sOeXqGbFaSpv8MRmC/zXgowNZmFcbngndGk922QDmOASEXUZCaY48gs4cg==} - dev: true - /@types/prismjs@1.26.0: resolution: {integrity: sha512-ZTaqn/qSqUuAq1YwvOFQfVW1AR/oQJlLSZVustdjwI+GZ8kr0MSHBj0tsXPW1EqHubx50gtBEjbPGsdZwQwCjQ==} dev: true @@ -3255,10 +2640,6 @@ packages: '@types/node': 18.13.0 dev: true - /@types/stack-utils@2.0.1: - resolution: {integrity: sha512-Hl219/BT5fLAaz6NDkSuhzasy49dwQS/DSdu4MdggFB8zcXv7vflBI3xp7FEmkmdDkBUI2bPUNeMttp2knYdxw==} - dev: true - /@types/styled-components@5.1.26: resolution: {integrity: sha512-KuKJ9Z6xb93uJiIyxo/+ksS7yLjS1KzG6iv5i78dhVg/X3u5t1H7juRWqVmodIdz6wGVaIApo1u01kmFRdJHVw==} dependencies: @@ -3280,32 +2661,12 @@ packages: '@types/superagent': 4.1.16 dev: true - /@types/tough-cookie@4.0.2: - resolution: {integrity: sha512-Q5vtl1W5ue16D+nIaW8JWebSSraJVlK+EthKn7e7UcD4KWsaSJ8BqGPXNaPghgtcn/fhvrN17Tv8ksUsQpiplw==} - dev: true - /@types/ws@8.5.4: resolution: {integrity: sha512-zdQDHKUgcX/zBc4GrwsE/7dVdAD8JR4EuiAXiiUhhfyIJXXb2+PrGshFyeXWQPMmmZ2XxgaqclgpIC7eTXc1mg==} dependencies: '@types/node': 18.13.0 dev: true - /@types/yargs-parser@21.0.0: - resolution: {integrity: sha512-iO9ZQHkZxHn4mSakYV0vFHAVDyEOIJQrV2uZ06HxEPcx+mt8swXoZHIbaaJ2crJYFfErySgktuTZ3BeLz+XmFA==} - dev: true - - /@types/yargs@16.0.5: - resolution: {integrity: sha512-AxO/ADJOBFJScHbWhq2xAhlWP24rY4aCEG/NFaMvbT3X2MgRsLjhjQwsn0Zi5zn0LG9jUhCCZMeX9Dkuw6k+vQ==} - dependencies: - '@types/yargs-parser': 21.0.0 - dev: true - - /@types/yargs@17.0.22: - resolution: {integrity: sha512-pet5WJ9U8yPVRhkwuEIp5ktAeAqRZOq4UdAyWLWzxbtpyXnzbtLdKiXAjJzi/KLmPGS9wk86lUFWZFN6sISo4g==} - dependencies: - '@types/yargs-parser': 21.0.0 - dev: true - /@typescript-eslint/eslint-plugin@5.52.0(@typescript-eslint/parser@5.52.0)(eslint@8.34.0)(typescript@4.9.5): resolution: {integrity: sha512-lHazYdvYVsBokwCdKOppvYJKaJ4S41CgKBcPvyd0xjZNbvQdhn/pnJlGtQksQ/NhInzdaeaSarlBjDXHuclEbg==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} @@ -3452,6 +2813,44 @@ packages: - supports-color dev: true + /@vitest/expect@0.34.4: + resolution: {integrity: sha512-XlMKX8HyYUqB8dsY8Xxrc64J2Qs9pKMt2Z8vFTL4mBWXJsg4yoALHzJfDWi8h5nkO4Zua4zjqtapQ/IluVkSnA==} + dependencies: + '@vitest/spy': 0.34.4 + '@vitest/utils': 0.34.4 + chai: 4.3.8 + dev: true + + /@vitest/runner@0.34.4: + resolution: {integrity: sha512-hwwdB1StERqUls8oV8YcpmTIpVeJMe4WgYuDongVzixl5hlYLT2G8afhcdADeDeqCaAmZcSgLTLtqkjPQF7x+w==} + dependencies: + '@vitest/utils': 0.34.4 + p-limit: 4.0.0 + pathe: 1.1.1 + dev: true + + /@vitest/snapshot@0.34.4: + resolution: {integrity: sha512-GCsh4coc3YUSL/o+BPUo7lHQbzpdttTxL6f4q0jRx2qVGoYz/cyTRDJHbnwks6TILi6560bVWoBpYC10PuTLHw==} + dependencies: + magic-string: 0.30.3 + pathe: 1.1.1 + pretty-format: 29.7.0 + dev: true + + /@vitest/spy@0.34.4: + resolution: {integrity: sha512-PNU+fd7DUPgA3Ya924b1qKuQkonAW6hL7YUjkON3wmBwSTIlhOSpy04SJ0NrRsEbrXgMMj6Morh04BMf8k+w0g==} + dependencies: + tinyspy: 2.1.1 + dev: true + + /@vitest/utils@0.34.4: + resolution: {integrity: sha512-yR2+5CHhp/K4ySY0Qtd+CAL9f5Yh1aXrKfAT42bq6CtlGPh92jIDDDSg7ydlRow1CP+dys4TrOrbELOyNInHSg==} + dependencies: + diff-sequences: 29.6.3 + loupe: 2.3.6 + pretty-format: 29.7.0 + dev: true + /@webassemblyjs/ast@1.11.1: resolution: {integrity: sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==} dependencies: @@ -3565,7 +2964,7 @@ packages: webpack: 5.x.x webpack-cli: 5.x.x dependencies: - webpack: 5.75.0(@swc/core@1.2.205)(esbuild@0.17.8)(webpack-cli@5.0.1) + webpack: 5.75.0(esbuild@0.17.8)(webpack-cli@5.0.1) webpack-cli: 5.0.1(webpack@5.75.0) dev: true @@ -3576,7 +2975,7 @@ packages: webpack: 5.x.x webpack-cli: 5.x.x dependencies: - webpack: 5.75.0(@swc/core@1.2.205)(esbuild@0.17.8)(webpack-cli@5.0.1) + webpack: 5.75.0(esbuild@0.17.8)(webpack-cli@5.0.1) webpack-cli: 5.0.1(webpack@5.75.0) dev: true @@ -3591,7 +2990,7 @@ packages: webpack-dev-server: optional: true dependencies: - webpack: 5.75.0(@swc/core@1.2.205)(esbuild@0.17.8)(webpack-cli@5.0.1) + webpack: 5.75.0(esbuild@0.17.8)(webpack-cli@5.0.1) webpack-cli: 5.0.1(webpack@5.75.0) dev: true @@ -3611,10 +3010,6 @@ packages: through: 2.3.8 dev: true - /abab@2.0.6: - resolution: {integrity: sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==} - dev: true - /abbrev@1.1.1: resolution: {integrity: sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==} dev: true @@ -3639,13 +3034,6 @@ packages: negotiator: 0.6.3 dev: true - /acorn-globals@7.0.1: - resolution: {integrity: sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q==} - dependencies: - acorn: 8.8.2 - acorn-walk: 8.2.0 - dev: true - /acorn-import-assertions@1.8.0(acorn@8.8.2): resolution: {integrity: sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==} peerDependencies: @@ -3667,6 +3055,12 @@ packages: engines: {node: '>=0.4.0'} dev: true + /acorn@8.10.0: + resolution: {integrity: sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==} + engines: {node: '>=0.4.0'} + hasBin: true + dev: true + /acorn@8.8.2: resolution: {integrity: sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==} engines: {node: '>=0.4.0'} @@ -3772,6 +3166,7 @@ packages: /anymatch@3.1.3: resolution: {integrity: sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==} engines: {node: '>= 8'} + requiresBuild: true dependencies: normalize-path: 3.0.0 picomatch: 2.3.1 @@ -3832,6 +3227,10 @@ packages: resolution: {integrity: sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==} dev: true + /assertion-error@1.1.0: + resolution: {integrity: sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==} + dev: true + /asynckit@0.4.0: resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==} dev: true @@ -3850,47 +3249,6 @@ packages: - debug dev: true - /babel-jest@29.4.2(@babel/core@7.20.12): - resolution: {integrity: sha512-vcghSqhtowXPG84posYkkkzcZsdayFkubUgbE3/1tuGbX7AQtwCkkNA/wIbB0BMjuCPoqTkiDyKN7Ty7d3uwNQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - peerDependencies: - '@babel/core': ^7.8.0 - dependencies: - '@babel/core': 7.20.12 - '@jest/transform': 29.4.2 - '@types/babel__core': 7.20.0 - babel-plugin-istanbul: 6.1.1 - babel-preset-jest: 29.4.2(@babel/core@7.20.12) - chalk: 4.1.2 - graceful-fs: 4.2.10 - slash: 3.0.0 - transitivePeerDependencies: - - supports-color - dev: true - - /babel-plugin-istanbul@6.1.1: - resolution: {integrity: sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==} - engines: {node: '>=8'} - dependencies: - '@babel/helper-plugin-utils': 7.20.2 - '@istanbuljs/load-nyc-config': 1.1.0 - '@istanbuljs/schema': 0.1.3 - istanbul-lib-instrument: 5.2.1 - test-exclude: 6.0.0 - transitivePeerDependencies: - - supports-color - dev: true - - /babel-plugin-jest-hoist@29.4.2: - resolution: {integrity: sha512-5HZRCfMeWypFEonRbEkwWXtNS1sQK159LhRVyRuLzyfVBxDy/34Tr/rg4YVi0SScSJ4fqeaR/OIeceJ/LaQ0pQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@babel/template': 7.20.7 - '@babel/types': 7.20.7 - '@types/babel__core': 7.20.0 - '@types/babel__traverse': 7.18.3 - dev: true - /babel-plugin-polyfill-corejs2@0.3.3(@babel/core@7.20.12): resolution: {integrity: sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q==} peerDependencies: @@ -3952,37 +3310,6 @@ packages: resolution: {integrity: sha512-qrPaCSo9c8RHNRHIotaufGbuOBN8rtdC4QrrFFc43vyWCCz7Kl7GL1PGaXtMGQZUXrkCjNEgxDfmAuAabr/rlw==} dev: true - /babel-preset-current-node-syntax@1.0.1(@babel/core@7.20.12): - resolution: {integrity: sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.20.12 - '@babel/plugin-syntax-async-generators': 7.8.4(@babel/core@7.20.12) - '@babel/plugin-syntax-bigint': 7.8.3(@babel/core@7.20.12) - '@babel/plugin-syntax-class-properties': 7.12.13(@babel/core@7.20.12) - '@babel/plugin-syntax-import-meta': 7.10.4(@babel/core@7.20.12) - '@babel/plugin-syntax-json-strings': 7.8.3(@babel/core@7.20.12) - '@babel/plugin-syntax-logical-assignment-operators': 7.10.4(@babel/core@7.20.12) - '@babel/plugin-syntax-nullish-coalescing-operator': 7.8.3(@babel/core@7.20.12) - '@babel/plugin-syntax-numeric-separator': 7.10.4(@babel/core@7.20.12) - '@babel/plugin-syntax-object-rest-spread': 7.8.3(@babel/core@7.20.12) - '@babel/plugin-syntax-optional-catch-binding': 7.8.3(@babel/core@7.20.12) - '@babel/plugin-syntax-optional-chaining': 7.8.3(@babel/core@7.20.12) - '@babel/plugin-syntax-top-level-await': 7.14.5(@babel/core@7.20.12) - dev: true - - /babel-preset-jest@29.4.2(@babel/core@7.20.12): - resolution: {integrity: sha512-ecWdaLY/8JyfUDr0oELBMpj3R5I1L6ZqG+kRJmwqfHtLWuPrJStR0LUkvUhfykJWTsXXMnohsayN/twltBbDrQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - peerDependencies: - '@babel/core': ^7.0.0 - dependencies: - '@babel/core': 7.20.12 - babel-plugin-jest-hoist: 29.4.2 - babel-preset-current-node-syntax: 1.0.1(@babel/core@7.20.12) - dev: true - /balanced-match@1.0.2: resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} dev: true @@ -4012,6 +3339,7 @@ packages: /binary-extensions@2.2.0: resolution: {integrity: sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==} engines: {node: '>=8'} + requiresBuild: true dev: true /bl@4.1.0: @@ -4090,12 +3418,6 @@ packages: update-browserslist-db: 1.0.10(browserslist@4.21.5) dev: true - /bser@2.1.1: - resolution: {integrity: sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==} - dependencies: - node-int64: 0.4.0 - dev: true - /buffer-from@1.1.2: resolution: {integrity: sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==} dev: true @@ -4130,6 +3452,11 @@ packages: engines: {node: '>= 0.8'} dev: true + /cac@6.7.14: + resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} + engines: {node: '>=8'} + dev: true + /cacache@16.1.3: resolution: {integrity: sha512-/+Emcj9DAXxX4cwlLmRI9c166RuL3w30zp4R7Joiv2cQTtTtA+jeuCAjH3ZlGnYS3tKENSrKhAzVVP9GVyzeYQ==} engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} @@ -4216,6 +3543,19 @@ packages: resolution: {integrity: sha512-Lkp0vFjMkBB3GTpLR8zk4NwW5EdRdnitwYJHDOOKIU85x4ckYCPQ+9WlVvSVClHxVReefkUMtWZH2l9KGlD51w==} dev: true + /chai@4.3.8: + resolution: {integrity: sha512-vX4YvVVtxlfSZ2VecZgFUTU5qPCYsobVI2O9FmwEXBhDigYGQA6jRXCycIs1yJnnWbZ6/+a2zNIF5DfVCcJBFQ==} + engines: {node: '>=4'} + dependencies: + assertion-error: 1.1.0 + check-error: 1.0.2 + deep-eql: 4.1.3 + get-func-name: 2.0.0 + loupe: 2.3.6 + pathval: 1.1.1 + type-detect: 4.0.8 + dev: true + /chalk@2.4.2: resolution: {integrity: sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==} engines: {node: '>=4'} @@ -4233,15 +3573,14 @@ packages: supports-color: 7.2.0 dev: true - /char-regex@1.0.2: - resolution: {integrity: sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==} - engines: {node: '>=10'} - dev: true - /chardet@0.7.0: resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} dev: true + /check-error@1.0.2: + resolution: {integrity: sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA==} + dev: true + /cheerio-select@2.1.0: resolution: {integrity: sha512-9v9kG0LvzrlcungtnJtpGNxY+fzECQKhK4EGJX2vByejiMX84MFNQw4UxPJl3bFbTMw+Dfs37XaIkCwTZfLh4g==} dependencies: @@ -4295,10 +3634,6 @@ packages: engines: {node: '>=8'} dev: true - /cjs-module-lexer@1.2.2: - resolution: {integrity: sha512-cOU9usZw8/dXIXKtwa8pM0OTJQuJkxMN6w30csNRUerHfeQ5R6U3kkU/FtJeIf3M202OHfY2U8ccInBG7/xogA==} - dev: true - /clean-stack@2.2.0: resolution: {integrity: sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==} engines: {node: '>=6'} @@ -4367,15 +3702,6 @@ packages: engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} dev: true - /co@4.6.0: - resolution: {integrity: sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==} - engines: {iojs: '>= 1.0.0', node: '>= 0.12.0'} - dev: true - - /collect-v8-coverage@1.0.1: - resolution: {integrity: sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==} - dev: true - /color-convert@1.9.3: resolution: {integrity: sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==} dependencies: @@ -4597,10 +3923,6 @@ packages: resolution: {integrity: sha512-ASFBup0Mz1uyiIjANan1jzLQami9z1PoYSZCiiYW2FczPbenXc45FZdBZLzOT+r6+iciuEModtmCti+hjaAk0A==} dev: true - /convert-source-map@2.0.0: - resolution: {integrity: sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==} - dev: true - /cookie-signature@1.0.6: resolution: {integrity: sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==} dev: true @@ -4693,21 +4015,6 @@ packages: hasBin: true dev: true - /cssom@0.3.8: - resolution: {integrity: sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==} - dev: true - - /cssom@0.5.0: - resolution: {integrity: sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==} - dev: true - - /cssstyle@2.3.0: - resolution: {integrity: sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==} - engines: {node: '>=8'} - dependencies: - cssom: 0.3.8 - dev: true - /csstype@3.1.1: resolution: {integrity: sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw==} dev: true @@ -4717,15 +4024,6 @@ packages: engines: {node: '>=8'} dev: true - /data-urls@3.0.2: - resolution: {integrity: sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==} - engines: {node: '>=12'} - dependencies: - abab: 2.0.6 - whatwg-mimetype: 3.0.0 - whatwg-url: 11.0.0 - dev: true - /dateformat@3.0.3: resolution: {integrity: sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==} dev: true @@ -4753,6 +4051,18 @@ packages: supports-color: 5.5.0 dev: true + /debug@4.3.4: + resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} + engines: {node: '>=6.0'} + peerDependencies: + supports-color: '*' + peerDependenciesMeta: + supports-color: + optional: true + dependencies: + ms: 2.1.2 + dev: true + /debug@4.3.4(supports-color@5.5.0): resolution: {integrity: sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==} engines: {node: '>=6.0'} @@ -4779,14 +4089,17 @@ packages: engines: {node: '>=0.10.0'} dev: true - /decimal.js@10.4.3: - resolution: {integrity: sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==} - dev: true - /dedent@0.7.0: resolution: {integrity: sha512-Q6fKUPqnAHAyhiUgFU7BUzLiv0kd8saH9al7tnu5Q/okj6dnupxyTgFIBjVzJATdfIAm9NAsvXNzjaKa+bxVyA==} dev: true + /deep-eql@4.1.3: + resolution: {integrity: sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==} + engines: {node: '>=6'} + dependencies: + type-detect: 4.0.8 + dev: true + /deep-is@0.1.4: resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} dev: true @@ -4794,6 +4107,7 @@ packages: /deepmerge@4.3.0: resolution: {integrity: sha512-z2wJZXrmeHdvYJp/Ux55wIjqo81G5Bp4c+oELTW+7ar6SogWHajt5a9gO3s3IDaGSAXjDk0vlQKN3rms8ab3og==} engines: {node: '>=0.10.0'} + dev: false /defaults@1.0.4: resolution: {integrity: sha512-eFuaLoy/Rxalv2kr+lqMlUnrDWV+3j4pljOIJgLIhI058IQfWJ7vXhyEIHu+HtC738klGALYxOKDO0bQP3tg8A==} @@ -4852,11 +4166,6 @@ packages: engines: {node: '>=8'} dev: true - /detect-newline@3.1.0: - resolution: {integrity: sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==} - engines: {node: '>=8'} - dev: true - /dezalgo@1.0.4: resolution: {integrity: sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig==} dependencies: @@ -4864,8 +4173,8 @@ packages: wrappy: 1.0.2 dev: true - /diff-sequences@29.4.2: - resolution: {integrity: sha512-R6P0Y6PrsH3n4hUXxL3nns0rbRk6Q33js3ygJBeEpbzLzgcNuJ61+u0RXasFpTKISw99TxUzFnumSnRLsjhLaw==} + /diff-sequences@29.6.3: + resolution: {integrity: sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dev: true @@ -4893,13 +4202,6 @@ packages: /domelementtype@2.3.0: resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==} - /domexception@4.0.0: - resolution: {integrity: sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==} - engines: {node: '>=12'} - dependencies: - webidl-conversions: 7.0.0 - dev: true - /domhandler@5.0.3: resolution: {integrity: sha512-cgwlv/1iFQiFnU96XXgROh8xTeetsnJiDsTc7TYCLFd9+/WNkIqPTxiM/8pSd8VIrhXGTf1Ny1q1hquVqDJB5w==} engines: {node: '>= 4'} @@ -4948,11 +4250,6 @@ packages: resolution: {integrity: sha512-i/6Q+Y9bluDa2a0NbMvdtG5TuS/1Fr3TKK8L+7UUL9QjRS5iFJzCC3r70xjyOnLiYG8qGV4/mMpe6HuAbdJW4w==} dev: true - /emittery@0.13.1: - resolution: {integrity: sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==} - engines: {node: '>=12'} - dev: true - /emoji-regex@10.2.1: resolution: {integrity: sha512-97g6QgOk8zlDRdgq1WxwgTMgEWGVAQvB5Fdpgc1MkNy56la5SKP9GsMXKDOdqwn90/41a8yPwIGk1Y6WVbeMQA==} @@ -5088,7 +4385,7 @@ packages: esbuild: 0.17.8 get-tsconfig: 4.4.0 loader-utils: 2.0.4 - webpack: 5.75.0(@swc/core@1.2.205)(esbuild@0.17.8)(webpack-cli@5.0.1) + webpack: 5.75.0(esbuild@0.17.8)(webpack-cli@5.0.1) webpack-sources: 1.4.3 dev: true @@ -5147,28 +4444,10 @@ packages: engines: {node: '>=0.8.0'} dev: true - /escape-string-regexp@2.0.0: - resolution: {integrity: sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==} - engines: {node: '>=8'} - dev: true - /escape-string-regexp@4.0.0: resolution: {integrity: sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==} engines: {node: '>=10'} - /escodegen@2.0.0: - resolution: {integrity: sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==} - engines: {node: '>=6.0'} - hasBin: true - dependencies: - esprima: 4.0.1 - estraverse: 5.3.0 - esutils: 2.0.3 - optionator: 0.8.3 - optionalDependencies: - source-map: 0.6.1 - dev: true - /eslint-config-prettier@8.6.0(eslint@8.34.0): resolution: {integrity: sha512-bAF0eLpLVqP5oEVUFKpMA+NnRFICwn9X8B5jrR9FcqnYBuPbqWEjTEspPWMj5ye6czoSLDweCzSo3Ko7gGrZaA==} hasBin: true @@ -5340,22 +4619,6 @@ packages: strip-final-newline: 2.0.0 dev: true - /exit@0.1.2: - resolution: {integrity: sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==} - engines: {node: '>= 0.8.0'} - dev: true - - /expect@29.4.2: - resolution: {integrity: sha512-+JHYg9O3hd3RlICG90OPVjRkPBoiUH7PxvDVMnRiaq1g6JUgZStX514erMl0v2Dc5SkfVbm7ztqbd6qHHPn+mQ==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@jest/expect-utils': 29.4.2 - jest-get-type: 29.4.2 - jest-matcher-utils: 29.4.2 - jest-message-util: 29.4.2 - jest-util: 29.4.2 - dev: true - /express@4.18.2: resolution: {integrity: sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==} engines: {node: '>= 0.10.0'} @@ -5449,12 +4712,6 @@ packages: reusify: 1.0.4 dev: true - /fb-watchman@2.0.2: - resolution: {integrity: sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==} - dependencies: - bser: 2.1.1 - dev: true - /figures@3.2.0: resolution: {integrity: sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==} engines: {node: '>=8'} @@ -5472,6 +4729,7 @@ packages: /fill-range@7.0.1: resolution: {integrity: sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==} engines: {node: '>=8'} + requiresBuild: true dependencies: to-regex-range: 5.0.1 dev: true @@ -5674,6 +4932,10 @@ packages: engines: {node: 6.* || 8.* || >= 10.*} dev: true + /get-func-name@2.0.0: + resolution: {integrity: sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==} + dev: true + /get-intrinsic@1.2.0: resolution: {integrity: sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==} dependencies: @@ -5682,11 +4944,6 @@ packages: has-symbols: 1.0.3 dev: true - /get-package-type@0.1.0: - resolution: {integrity: sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==} - engines: {node: '>=8.0.0'} - dev: true - /get-pkg-repo@4.2.1: resolution: {integrity: sha512-2+QbHjFRfGB74v/pYWjd5OhU3TDIC2Gv/YKUTk/tCvAz0pkn/Mz6P3uByuBimLOcPvN2jYdScl3xGFSrx0jEcA==} engines: {node: '>=6.9.0'} @@ -5964,17 +5221,6 @@ packages: lru-cache: 7.14.1 dev: true - /html-encoding-sniffer@3.0.0: - resolution: {integrity: sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==} - engines: {node: '>=12'} - dependencies: - whatwg-encoding: 2.0.0 - dev: true - - /html-escaper@2.0.2: - resolution: {integrity: sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==} - dev: true - /htmlparser2@8.0.1: resolution: {integrity: sha512-4lVbmc1diZC7GUJQtRQ5yBAeUCL1exyMwmForWkRLnwyzWBFxN633SALPMGYaWZvKe9j1pRZJpauvmxENSp/EA==} dependencies: @@ -6043,6 +5289,7 @@ packages: dependencies: safer-buffer: 2.1.2 dev: true + optional: true /ieee754@1.2.1: resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} @@ -6191,6 +5438,7 @@ packages: /is-binary-path@2.1.0: resolution: {integrity: sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==} engines: {node: '>=8'} + requiresBuild: true dependencies: binary-extensions: 2.2.0 dev: true @@ -6215,12 +5463,6 @@ packages: ci-info: 3.8.0 dev: true - /is-core-module@2.11.0: - resolution: {integrity: sha512-RRjxlvLDkD1YJwDbroBHMb+cukurkDWNyHx7D3oNB5x9rb5ogcksMC5wHCadcXoo67gVr/+3GFySh3134zi6rw==} - dependencies: - has: 1.0.3 - dev: true - /is-core-module@2.12.0: resolution: {integrity: sha512-RECHCBCd/viahWmwj6enj19sKbHfJrddi/6cBDsNTKbNq0f7VeaUkBo60BqzvPqo/W54ChS62Z5qyun7cfOMqQ==} dependencies: @@ -6255,11 +5497,6 @@ packages: engines: {node: '>=8'} dev: true - /is-generator-fn@2.1.0: - resolution: {integrity: sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==} - engines: {node: '>=6'} - dev: true - /is-glob@4.0.3: resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} engines: {node: '>=0.10.0'} @@ -6291,6 +5528,7 @@ packages: /is-number@7.0.0: resolution: {integrity: sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==} engines: {node: '>=0.12.0'} + requiresBuild: true dev: true /is-obj@2.0.0: @@ -6324,10 +5562,6 @@ packages: resolution: {integrity: sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==} engines: {node: '>=0.10.0'} - /is-potential-custom-element-name@1.0.1: - resolution: {integrity: sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==} - dev: true - /is-regex@1.1.4: resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} engines: {node: '>= 0.4'} @@ -6408,465 +5642,16 @@ packages: dev: true /isarray@1.0.0: - resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} - dev: true - - /isexe@2.0.0: - resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} - dev: true - - /isobject@3.0.1: - resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==} - engines: {node: '>=0.10.0'} - dev: true - - /istanbul-lib-coverage@3.2.0: - resolution: {integrity: sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==} - engines: {node: '>=8'} - dev: true - - /istanbul-lib-instrument@5.2.1: - resolution: {integrity: sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==} - engines: {node: '>=8'} - dependencies: - '@babel/core': 7.20.12 - '@babel/parser': 7.20.15 - '@istanbuljs/schema': 0.1.3 - istanbul-lib-coverage: 3.2.0 - semver: 6.3.0 - transitivePeerDependencies: - - supports-color - 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-lib-source-maps@4.0.1: - resolution: {integrity: sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==} - engines: {node: '>=10'} - dependencies: - debug: 4.3.4(supports-color@5.5.0) - istanbul-lib-coverage: 3.2.0 - source-map: 0.6.1 - transitivePeerDependencies: - - supports-color - 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 - - /jest-changed-files@29.4.2: - resolution: {integrity: sha512-Qdd+AXdqD16PQa+VsWJpxR3kN0JyOCX1iugQfx5nUgAsI4gwsKviXkpclxOK9ZnwaY2IQVHz+771eAvqeOlfuw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - execa: 5.1.1 - p-limit: 3.1.0 - dev: true - - /jest-circus@29.4.2: - resolution: {integrity: sha512-wW3ztp6a2P5c1yOc1Cfrt5ozJ7neWmqeXm/4SYiqcSriyisgq63bwFj1NuRdSR5iqS0CMEYwSZd89ZA47W9zUg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@jest/environment': 29.4.2 - '@jest/expect': 29.4.2 - '@jest/test-result': 29.4.2 - '@jest/types': 29.4.2 - '@types/node': 18.13.0 - chalk: 4.1.2 - co: 4.6.0 - dedent: 0.7.0 - is-generator-fn: 2.1.0 - jest-each: 29.4.2 - jest-matcher-utils: 29.4.2 - jest-message-util: 29.4.2 - jest-runtime: 29.4.2 - jest-snapshot: 29.4.2 - jest-util: 29.4.2 - p-limit: 3.1.0 - pretty-format: 29.4.2 - slash: 3.0.0 - stack-utils: 2.0.6 - transitivePeerDependencies: - - supports-color - dev: true - - /jest-cli@29.4.2(@types/node@18.13.0): - resolution: {integrity: sha512-b+eGUtXq/K2v7SH3QcJvFvaUaCDS1/YAZBYz0m28Q/Ppyr+1qNaHmVYikOrbHVbZqYQs2IeI3p76uy6BWbXq8Q==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - hasBin: true - peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 - peerDependenciesMeta: - node-notifier: - optional: true - dependencies: - '@jest/core': 29.4.2 - '@jest/test-result': 29.4.2 - '@jest/types': 29.4.2 - chalk: 4.1.2 - exit: 0.1.2 - graceful-fs: 4.2.10 - import-local: 3.1.0 - jest-config: 29.4.2(@types/node@18.13.0) - jest-util: 29.4.2 - jest-validate: 29.4.2 - prompts: 2.4.2 - yargs: 17.6.2 - transitivePeerDependencies: - - '@types/node' - - supports-color - - ts-node - dev: true - - /jest-config@29.4.2(@types/node@18.13.0): - resolution: {integrity: sha512-919CtnXic52YM0zW4C1QxjG6aNueX1kBGthuMtvFtRTAxhKfJmiXC9qwHmi6o2josjbDz8QlWyY55F1SIVmCWA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - peerDependencies: - '@types/node': '*' - ts-node: '>=9.0.0' - peerDependenciesMeta: - '@types/node': - optional: true - ts-node: - optional: true - dependencies: - '@babel/core': 7.20.12 - '@jest/test-sequencer': 29.4.2 - '@jest/types': 29.4.2 - '@types/node': 18.13.0 - babel-jest: 29.4.2(@babel/core@7.20.12) - chalk: 4.1.2 - ci-info: 3.8.0 - deepmerge: 4.3.0 - glob: 7.2.3 - graceful-fs: 4.2.10 - jest-circus: 29.4.2 - jest-environment-node: 29.4.2 - jest-get-type: 29.4.2 - jest-regex-util: 29.4.2 - jest-resolve: 29.4.2 - jest-runner: 29.4.2 - jest-util: 29.4.2 - jest-validate: 29.4.2 - micromatch: 4.0.5 - parse-json: 5.2.0 - pretty-format: 29.4.2 - slash: 3.0.0 - strip-json-comments: 3.1.1 - transitivePeerDependencies: - - supports-color - dev: true - - /jest-diff@29.4.2: - resolution: {integrity: sha512-EK8DSajVtnjx9sa1BkjZq3mqChm2Cd8rIzdXkQMA8e0wuXq53ypz6s5o5V8HRZkoEt2ywJ3eeNWFKWeYr8HK4g==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - chalk: 4.1.2 - diff-sequences: 29.4.2 - jest-get-type: 29.4.2 - pretty-format: 29.4.2 - dev: true - - /jest-docblock@29.4.2: - resolution: {integrity: sha512-dV2JdahgClL34Y5vLrAHde3nF3yo2jKRH+GIYJuCpfqwEJZcikzeafVTGAjbOfKPG17ez9iWXwUYp7yefeCRag==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - detect-newline: 3.1.0 - dev: true - - /jest-each@29.4.2: - resolution: {integrity: sha512-trvKZb0JYiCndc55V1Yh0Luqi7AsAdDWpV+mKT/5vkpnnFQfuQACV72IoRV161aAr6kAVIBpmYzwhBzm34vQkA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@jest/types': 29.4.2 - chalk: 4.1.2 - jest-get-type: 29.4.2 - jest-util: 29.4.2 - pretty-format: 29.4.2 - dev: true - - /jest-environment-jsdom@29.4.2: - resolution: {integrity: sha512-v1sH4Q0JGM+LPEGqHNM+m+uTMf3vpXpKiuDYqWUAh+0c9+nc7scGE+qTR5JuE+OOTDnwfzPgcv9sMq6zWAOaVg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - peerDependencies: - canvas: ^2.5.0 - peerDependenciesMeta: - canvas: - optional: true - dependencies: - '@jest/environment': 29.4.2 - '@jest/fake-timers': 29.4.2 - '@jest/types': 29.4.2 - '@types/jsdom': 20.0.1 - '@types/node': 18.13.0 - jest-mock: 29.4.2 - jest-util: 29.4.2 - jsdom: 20.0.3 - transitivePeerDependencies: - - bufferutil - - supports-color - - utf-8-validate - dev: true - - /jest-environment-node@29.4.2: - resolution: {integrity: sha512-MLPrqUcOnNBc8zTOfqBbxtoa8/Ee8tZ7UFW7hRDQSUT+NGsvS96wlbHGTf+EFAT9KC3VNb7fWEM6oyvmxtE/9w==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@jest/environment': 29.4.2 - '@jest/fake-timers': 29.4.2 - '@jest/types': 29.4.2 - '@types/node': 18.13.0 - jest-mock: 29.4.2 - jest-util: 29.4.2 - dev: true - - /jest-get-type@29.4.2: - resolution: {integrity: sha512-vERN30V5i2N6lqlFu4ljdTqQAgrkTFMC9xaIIfOPYBw04pufjXRty5RuXBiB1d72tGbURa/UgoiHB90ruOSivg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dev: true - - /jest-haste-map@29.4.2: - resolution: {integrity: sha512-WkUgo26LN5UHPknkezrBzr7lUtV1OpGsp+NfXbBwHztsFruS3gz+AMTTBcEklvi8uPzpISzYjdKXYZQJXBnfvw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@jest/types': 29.4.2 - '@types/graceful-fs': 4.1.6 - '@types/node': 18.13.0 - anymatch: 3.1.3 - fb-watchman: 2.0.2 - graceful-fs: 4.2.10 - jest-regex-util: 29.4.2 - jest-util: 29.4.2 - jest-worker: 29.4.2 - micromatch: 4.0.5 - walker: 1.0.8 - optionalDependencies: - fsevents: 2.3.2 - dev: true - - /jest-leak-detector@29.4.2: - resolution: {integrity: sha512-Wa62HuRJmWXtX9F00nUpWlrbaH5axeYCdyRsOs/+Rb1Vb6+qWTlB5rKwCCRKtorM7owNwKsyJ8NRDUcZ8ghYUA==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - jest-get-type: 29.4.2 - pretty-format: 29.4.2 - dev: true - - /jest-matcher-utils@29.4.2: - resolution: {integrity: sha512-EZaAQy2je6Uqkrm6frnxBIdaWtSYFoR8SVb2sNLAtldswlR/29JAgx+hy67llT3+hXBaLB0zAm5UfeqerioZyg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - chalk: 4.1.2 - jest-diff: 29.4.2 - jest-get-type: 29.4.2 - pretty-format: 29.4.2 - dev: true - - /jest-message-util@29.4.2: - resolution: {integrity: sha512-SElcuN4s6PNKpOEtTInjOAA8QvItu0iugkXqhYyguRvQoXapg5gN+9RQxLAkakChZA7Y26j6yUCsFWN+hlKD6g==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@babel/code-frame': 7.18.6 - '@jest/types': 29.4.2 - '@types/stack-utils': 2.0.1 - chalk: 4.1.2 - graceful-fs: 4.2.10 - micromatch: 4.0.5 - pretty-format: 29.4.2 - slash: 3.0.0 - stack-utils: 2.0.6 - dev: true - - /jest-mock@29.4.2: - resolution: {integrity: sha512-x1FSd4Gvx2yIahdaIKoBjwji6XpboDunSJ95RpntGrYulI1ByuYQCKN/P7hvk09JB74IonU3IPLdkutEWYt++g==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@jest/types': 29.4.2 - '@types/node': 18.13.0 - jest-util: 29.4.2 - dev: true - - /jest-pnp-resolver@1.2.3(jest-resolve@29.4.2): - resolution: {integrity: sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==} - engines: {node: '>=6'} - peerDependencies: - jest-resolve: '*' - peerDependenciesMeta: - jest-resolve: - optional: true - dependencies: - jest-resolve: 29.4.2 - dev: true - - /jest-regex-util@29.4.2: - resolution: {integrity: sha512-XYZXOqUl1y31H6VLMrrUL1ZhXuiymLKPz0BO1kEeR5xER9Tv86RZrjTm74g5l9bPJQXA/hyLdaVPN/sdqfteig==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dev: true - - /jest-resolve-dependencies@29.4.2: - resolution: {integrity: sha512-6pL4ptFw62rjdrPk7rRpzJYgcRqRZNsZTF1VxVTZMishbO6ObyWvX57yHOaNGgKoADtAHRFYdHQUEvYMJATbDg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - jest-regex-util: 29.4.2 - jest-snapshot: 29.4.2 - transitivePeerDependencies: - - supports-color - dev: true - - /jest-resolve@29.4.2: - resolution: {integrity: sha512-RtKWW0mbR3I4UdkOrW7552IFGLYQ5AF9YrzD0FnIOkDu0rAMlA5/Y1+r7lhCAP4nXSBTaE7ueeqj6IOwZpgoqw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - chalk: 4.1.2 - graceful-fs: 4.2.10 - jest-haste-map: 29.4.2 - jest-pnp-resolver: 1.2.3(jest-resolve@29.4.2) - jest-util: 29.4.2 - jest-validate: 29.4.2 - resolve: 1.22.1 - resolve.exports: 2.0.0 - slash: 3.0.0 - dev: true - - /jest-runner@29.4.2: - resolution: {integrity: sha512-wqwt0drm7JGjwdH+x1XgAl+TFPH7poowMguPQINYxaukCqlczAcNLJiK+OLxUxQAEWMdy+e6nHZlFHO5s7EuRg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@jest/console': 29.4.2 - '@jest/environment': 29.4.2 - '@jest/test-result': 29.4.2 - '@jest/transform': 29.4.2 - '@jest/types': 29.4.2 - '@types/node': 18.13.0 - chalk: 4.1.2 - emittery: 0.13.1 - graceful-fs: 4.2.10 - jest-docblock: 29.4.2 - jest-environment-node: 29.4.2 - jest-haste-map: 29.4.2 - jest-leak-detector: 29.4.2 - jest-message-util: 29.4.2 - jest-resolve: 29.4.2 - jest-runtime: 29.4.2 - jest-util: 29.4.2 - jest-watcher: 29.4.2 - jest-worker: 29.4.2 - p-limit: 3.1.0 - source-map-support: 0.5.13 - transitivePeerDependencies: - - supports-color - dev: true - - /jest-runtime@29.4.2: - resolution: {integrity: sha512-3fque9vtpLzGuxT9eZqhxi+9EylKK/ESfhClv4P7Y9sqJPs58LjVhTt8jaMp/pRO38agll1CkSu9z9ieTQeRrw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@jest/environment': 29.4.2 - '@jest/fake-timers': 29.4.2 - '@jest/globals': 29.4.2 - '@jest/source-map': 29.4.2 - '@jest/test-result': 29.4.2 - '@jest/transform': 29.4.2 - '@jest/types': 29.4.2 - '@types/node': 18.13.0 - chalk: 4.1.2 - cjs-module-lexer: 1.2.2 - collect-v8-coverage: 1.0.1 - glob: 7.2.3 - graceful-fs: 4.2.10 - jest-haste-map: 29.4.2 - jest-message-util: 29.4.2 - jest-mock: 29.4.2 - jest-regex-util: 29.4.2 - jest-resolve: 29.4.2 - jest-snapshot: 29.4.2 - jest-util: 29.4.2 - semver: 7.3.8 - slash: 3.0.0 - strip-bom: 4.0.0 - transitivePeerDependencies: - - supports-color - dev: true - - /jest-snapshot@29.4.2: - resolution: {integrity: sha512-PdfubrSNN5KwroyMH158R23tWcAXJyx4pvSvWls1dHoLCaUhGul9rsL3uVjtqzRpkxlkMavQjGuWG1newPgmkw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@babel/core': 7.20.12 - '@babel/generator': 7.20.14 - '@babel/plugin-syntax-jsx': 7.18.6(@babel/core@7.20.12) - '@babel/plugin-syntax-typescript': 7.20.0(@babel/core@7.20.12) - '@babel/traverse': 7.20.13(supports-color@5.5.0) - '@babel/types': 7.20.7 - '@jest/expect-utils': 29.4.2 - '@jest/transform': 29.4.2 - '@jest/types': 29.4.2 - '@types/babel__traverse': 7.18.3 - '@types/prettier': 2.7.2 - babel-preset-current-node-syntax: 1.0.1(@babel/core@7.20.12) - chalk: 4.1.2 - expect: 29.4.2 - graceful-fs: 4.2.10 - jest-diff: 29.4.2 - jest-get-type: 29.4.2 - jest-haste-map: 29.4.2 - jest-matcher-utils: 29.4.2 - jest-message-util: 29.4.2 - jest-util: 29.4.2 - natural-compare: 1.4.0 - pretty-format: 29.4.2 - semver: 7.3.8 - transitivePeerDependencies: - - supports-color - dev: true - - /jest-util@29.4.2: - resolution: {integrity: sha512-wKnm6XpJgzMUSRFB7YF48CuwdzuDIHenVuoIb1PLuJ6F+uErZsuDkU+EiExkChf6473XcawBrSfDSnXl+/YG4g==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@jest/types': 29.4.2 - '@types/node': 18.13.0 - chalk: 4.1.2 - ci-info: 3.8.0 - graceful-fs: 4.2.10 - picomatch: 2.3.1 + resolution: {integrity: sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==} dev: true - /jest-validate@29.4.2: - resolution: {integrity: sha512-tto7YKGPJyFbhcKhIDFq8B5od+eVWD/ySZ9Tvcp/NGCvYA4RQbuzhbwYWtIjMT5W5zA2W0eBJwu4HVw34d5G6Q==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@jest/types': 29.4.2 - camelcase: 6.3.0 - chalk: 4.1.2 - jest-get-type: 29.4.2 - leven: 3.1.0 - pretty-format: 29.4.2 + /isexe@2.0.0: + resolution: {integrity: sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==} dev: true - /jest-watcher@29.4.2: - resolution: {integrity: sha512-onddLujSoGiMJt+tKutehIidABa175i/Ays+QvKxCqBwp7fvxP3ZhKsrIdOodt71dKxqk4sc0LN41mWLGIK44w==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@jest/test-result': 29.4.2 - '@jest/types': 29.4.2 - '@types/node': 18.13.0 - ansi-escapes: 4.3.2 - chalk: 4.1.2 - emittery: 0.13.1 - jest-util: 29.4.2 - string-length: 4.0.2 + /isobject@3.0.1: + resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==} + engines: {node: '>=0.10.0'} dev: true /jest-worker@27.5.1: @@ -6878,36 +5663,6 @@ packages: supports-color: 8.1.1 dev: true - /jest-worker@29.4.2: - resolution: {integrity: sha512-VIuZA2hZmFyRbchsUCHEehoSf2HEl0YVF8SDJqtPnKorAaBuh42V8QsLnde0XP5F6TyCynGPEGgBOn3Fc+wZGw==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - dependencies: - '@types/node': 18.13.0 - jest-util: 29.4.2 - merge-stream: 2.0.0 - supports-color: 8.1.1 - dev: true - - /jest@29.4.2(@types/node@18.13.0): - resolution: {integrity: sha512-+5hLd260vNIHu+7ZgMIooSpKl7Jp5pHKb51e73AJU3owd5dEo/RfVwHbA/na3C/eozrt3hJOLGf96c7EWwIAzg==} - engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} - hasBin: true - peerDependencies: - node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 - peerDependenciesMeta: - node-notifier: - optional: true - dependencies: - '@jest/core': 29.4.2 - '@jest/types': 29.4.2 - import-local: 3.1.0 - jest-cli: 29.4.2(@types/node@18.13.0) - transitivePeerDependencies: - - '@types/node' - - supports-color - - ts-node - dev: true - /joi@17.7.1: resolution: {integrity: sha512-teoLhIvWE298R6AeJywcjR4sX2hHjB3/xJX4qPjg+gTg+c0mzUDsziYlqPmLomq9gVsfaMcgPaGc7VxtD/9StA==} dependencies: @@ -6941,47 +5696,6 @@ packages: argparse: 2.0.1 dev: true - /jsdom@20.0.3: - resolution: {integrity: sha512-SYhBvTh89tTfCD/CRdSOm13mOBa42iTaTyfyEWBdKcGdPxPtLFBXuHR8XHb33YNYaP+lLbmSvBTsnoesCNJEsQ==} - engines: {node: '>=14'} - peerDependencies: - canvas: ^2.5.0 - peerDependenciesMeta: - canvas: - optional: true - dependencies: - abab: 2.0.6 - acorn: 8.8.2 - acorn-globals: 7.0.1 - cssom: 0.5.0 - cssstyle: 2.3.0 - data-urls: 3.0.2 - decimal.js: 10.4.3 - domexception: 4.0.0 - escodegen: 2.0.0 - form-data: 4.0.0 - html-encoding-sniffer: 3.0.0 - http-proxy-agent: 5.0.0 - https-proxy-agent: 5.0.1 - is-potential-custom-element-name: 1.0.1 - nwsapi: 2.2.2 - parse5: 7.1.2 - saxes: 6.0.0 - symbol-tree: 3.2.4 - tough-cookie: 4.1.2 - w3c-xmlserializer: 4.0.0 - webidl-conversions: 7.0.0 - whatwg-encoding: 2.0.0 - whatwg-mimetype: 3.0.0 - whatwg-url: 11.0.0 - ws: 8.12.1 - xml-name-validator: 4.0.0 - transitivePeerDependencies: - - bufferutil - - supports-color - - utf-8-validate - dev: true - /jsesc@0.5.0: resolution: {integrity: sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==} hasBin: true @@ -7058,24 +5772,6 @@ packages: engines: {node: '>=0.10.0'} dev: true - /kleur@3.0.3: - resolution: {integrity: sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==} - engines: {node: '>=6'} - dev: true - - /leven@3.1.0: - resolution: {integrity: sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==} - engines: {node: '>=6'} - dev: true - - /levn@0.3.0: - resolution: {integrity: sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==} - engines: {node: '>= 0.8.0'} - dependencies: - prelude-ls: 1.1.2 - type-check: 0.3.2 - dev: true - /levn@0.4.1: resolution: {integrity: sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==} engines: {node: '>= 0.8.0'} @@ -7153,6 +5849,11 @@ packages: json5: 2.2.3 dev: true + /local-pkg@0.4.3: + resolution: {integrity: sha512-SFppqq5p42fe2qcZQqqEOiVRXl+WCP1MdT6k7BDEW1j++sp5fIY+/fdRQitvKgB5BrBcmrs5m/L0v2FrU5MY1g==} + engines: {node: '>=14'} + dev: true + /locate-path@2.0.0: resolution: {integrity: sha512-NCI2kiDkyR7VeEKm27Kda/iQHyKJe1Bu0FlTbYp3CqJu+9IFe9bLyAjMxf5ZDDbEg+iMPzB5zYyUTSm8wVTKmA==} engines: {node: '>=4'} @@ -7206,6 +5907,12 @@ packages: js-tokens: 4.0.0 dev: true + /loupe@2.3.6: + resolution: {integrity: sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA==} + dependencies: + get-func-name: 2.0.0 + dev: true + /lru-cache@5.1.1: resolution: {integrity: sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==} dependencies: @@ -7231,6 +5938,13 @@ packages: '@jridgewell/sourcemap-codec': 1.4.14 dev: true + /magic-string@0.30.3: + resolution: {integrity: sha512-B7xGbll2fG/VjP+SWg4sX3JynwIU0mjoTc6MPpKNuIvftk6u6vqhDnk1R80b8C2GBR6ywqy+1DcKBrevBg+bmw==} + engines: {node: '>=12'} + dependencies: + '@jridgewell/sourcemap-codec': 1.4.15 + dev: true + /make-dir@2.1.0: resolution: {integrity: sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==} engines: {node: '>=6'} @@ -7295,12 +6009,6 @@ packages: - supports-color dev: true - /makeerror@1.0.12: - resolution: {integrity: sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==} - dependencies: - tmpl: 1.0.5 - dev: true - /map-obj@1.0.1: resolution: {integrity: sha512-7N/q3lyZ+LVCp7PzuxrJr4KMbBE2hW7BT7YNia330OFxIf4d3r5zVpicP2650l7CPN6RM9zOJRl3NGpqSiw3Eg==} engines: {node: '>=0.10.0'} @@ -7559,6 +6267,15 @@ packages: hasBin: true dev: true + /mlly@1.4.2: + resolution: {integrity: sha512-i/Ykufi2t1EZ6NaPLdfnZk2AX8cs0d+mTzVKuPfqPKPatxLApaBoxJQ9x1/uckXtrS/U5oisPMDkNs0yQTaBRg==} + dependencies: + acorn: 8.10.0 + pathe: 1.1.1 + pkg-types: 1.0.3 + ufo: 1.3.0 + dev: true + /modify-values@1.0.1: resolution: {integrity: sha512-xV2bxeN6F7oYjZWTe/YPAy6MN2M+sL4u/Rlm2AHCIVGfo2p1yGmBHQ6vHehl4bRTZBdHu3TSkWdYgkwpYzAGSw==} engines: {node: '>=0.10.0'} @@ -7652,10 +6369,6 @@ packages: he: 1.2.0 dev: true - /node-int64@0.4.0: - resolution: {integrity: sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==} - dev: true - /node-loader@2.0.0(webpack@5.75.0): resolution: {integrity: sha512-I5VN34NO4/5UYJaUBtkrODPWxbobrE4hgDqPrjB25yPkonFhCmZ146vTH+Zg417E9Iwoh1l/MbRs1apc5J295Q==} engines: {node: '>= 10.13.0'} @@ -7663,7 +6376,7 @@ packages: webpack: ^5.0.0 dependencies: loader-utils: 2.0.4 - webpack: 5.75.0(@swc/core@1.2.205)(esbuild@0.17.8)(webpack-cli@5.0.1) + webpack: 5.75.0(esbuild@0.17.8)(webpack-cli@5.0.1) dev: true /node-releases@2.0.10: @@ -7742,6 +6455,7 @@ packages: /normalize-path@3.0.0: resolution: {integrity: sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==} engines: {node: '>=0.10.0'} + requiresBuild: true dev: true /npm-bundled@3.0.0: @@ -7854,10 +6568,6 @@ packages: dependencies: boolbase: 1.0.0 - /nwsapi@2.2.2: - resolution: {integrity: sha512-90yv+6538zuvUMnN+zCr8LuV6bPFdq50304114vJYJ8RDyK8D5O9Phpbd6SZWgI7PwzmmfN1upeOJlvybDSgCw==} - dev: true - /object-inspect@1.12.3: resolution: {integrity: sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==} dev: true @@ -7906,18 +6616,6 @@ packages: is-wsl: 2.2.0 dev: true - /optionator@0.8.3: - resolution: {integrity: sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==} - engines: {node: '>= 0.8.0'} - dependencies: - deep-is: 0.1.4 - fast-levenshtein: 2.0.6 - levn: 0.3.0 - prelude-ls: 1.1.2 - type-check: 0.3.2 - word-wrap: 1.2.3 - dev: true - /optionator@0.9.1: resolution: {integrity: sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==} engines: {node: '>= 0.8.0'} @@ -7976,6 +6674,13 @@ packages: yocto-queue: 0.1.0 dev: true + /p-limit@4.0.0: + resolution: {integrity: sha512-5b0R4txpzjPWVw/cXXUResoD4hb6U/x9BH08L7nw+GN1sezDzPdxeRvpc9c433fZhBan/wusjbCsqwqm4EIBIQ==} + engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0} + dependencies: + yocto-queue: 1.0.0 + dev: true + /p-locate@2.0.0: resolution: {integrity: sha512-nQja7m7gSKuewoVRen45CtVfODR3crN3goVQ0DDZ9N3yHxgpkuBhZqsaiotSQRrADUrne346peY7kT3TSACykg==} engines: {node: '>=4'} @@ -8185,6 +6890,14 @@ packages: util: 0.10.4 dev: true + /pathe@1.1.1: + resolution: {integrity: sha512-d+RQGp0MAYTIaDBIMmOfMwz3E+LOZnxx1HZd5R18mmCZY0QBlK0LDZfPc8FW8Ed2DlvsuE6PRjroDY+wg4+j/Q==} + dev: true + + /pathval@1.1.1: + resolution: {integrity: sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==} + dev: true + /picocolors@1.0.0: resolution: {integrity: sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==} @@ -8219,11 +6932,6 @@ packages: engines: {node: '>=10'} dev: true - /pirates@4.0.5: - resolution: {integrity: sha512-8V9+HQPupnaXMA23c5hvl69zXvTwTzyAYasnkb0Tts4XvO4CliqONMOnvlq26rkhLC3nWDFBJf73LU1e1VZLaQ==} - engines: {node: '>= 6'} - dev: true - /pkg-dir@4.2.0: resolution: {integrity: sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==} engines: {node: '>=8'} @@ -8231,6 +6939,14 @@ packages: find-up: 4.1.0 dev: true + /pkg-types@1.0.3: + resolution: {integrity: sha512-nN7pYi0AQqJnoLPC9eHFQ8AcyaixBUOwvqc5TDnIKCMEE6I0y8P7OKA7fPexsXGCGxQDl/cmrLAp26LhcwxZ4A==} + dependencies: + jsonc-parser: 3.2.0 + mlly: 1.4.2 + pathe: 1.1.1 + dev: true + /postcss-selector-parser@6.0.11: resolution: {integrity: sha512-zbARubNdogI9j7WY4nQJBiNqQf3sLS3wCP4WfOidu+p28LofJqDH1tcXypGrcmMHhDk2t9wGhCsYe/+szLTy1g==} engines: {node: '>=4'} @@ -8251,11 +6967,6 @@ packages: picocolors: 1.0.0 source-map-js: 1.0.2 - /prelude-ls@1.1.2: - resolution: {integrity: sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==} - engines: {node: '>= 0.8.0'} - dev: true - /prelude-ls@1.2.1: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} engines: {node: '>= 0.8.0'} @@ -8267,11 +6978,11 @@ packages: hasBin: true dev: true - /pretty-format@29.4.2: - resolution: {integrity: sha512-qKlHR8yFVCbcEWba0H0TOC8dnLlO4vPlyEjRPw31FZ2Rupy9nLa8ZLbYny8gWEl8CkEhJqAE6IzdNELTBVcBEg==} + /pretty-format@29.7.0: + resolution: {integrity: sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==} engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0} dependencies: - '@jest/schemas': 29.4.2 + '@jest/schemas': 29.6.3 ansi-styles: 5.2.0 react-is: 18.2.0 dev: true @@ -8319,14 +7030,6 @@ packages: retry: 0.12.0 dev: true - /prompts@2.4.2: - resolution: {integrity: sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==} - engines: {node: '>= 6'} - dependencies: - kleur: 3.0.3 - sisteransi: 1.0.5 - dev: true - /proto-list@1.2.4: resolution: {integrity: sha512-vtK/94akxsTMhe0/cbfpR+syPuszcuwhqVjJq26CuNDgFGj682oRBXOP5MJpv2r7JtE8MsiepGIqvvOTBwn2vA==} dev: true @@ -8343,10 +7046,6 @@ packages: ipaddr.js: 1.9.1 dev: true - /psl@1.9.0: - resolution: {integrity: sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==} - dev: true - /pstree.remy@1.1.8: resolution: {integrity: sha512-77DZwxQmxKnu3aR542U+X8FypNzbfJ+C5XQDk3uWjWxn6151aIMGthWYRXTqT1E5oJvg+ljaa2OJi+VfvCOQ8w==} dev: true @@ -8368,10 +7067,6 @@ packages: side-channel: 1.0.4 dev: true - /querystringify@2.2.0: - resolution: {integrity: sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==} - dev: true - /queue-microtask@1.2.3: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} dev: true @@ -8539,6 +7234,7 @@ packages: /readdirp@3.6.0: resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==} engines: {node: '>=8.10.0'} + requiresBuild: true dependencies: picomatch: 2.3.1 dev: true @@ -8547,7 +7243,7 @@ packages: resolution: {integrity: sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==} engines: {node: '>= 10.13.0'} dependencies: - resolve: 1.22.1 + resolve: 1.22.2 dev: true /redent@3.0.0: @@ -8617,10 +7313,6 @@ packages: engines: {node: '>=0.10.0'} dev: true - /requires-port@1.0.0: - resolution: {integrity: sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==} - dev: true - /resolve-cwd@3.0.0: resolution: {integrity: sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==} engines: {node: '>=8'} @@ -8638,20 +7330,6 @@ packages: engines: {node: '>=8'} dev: true - /resolve.exports@2.0.0: - resolution: {integrity: sha512-6K/gDlqgQscOlg9fSRpWstA8sYe8rbELsSTNpx+3kTrsVCzvSl0zIvRErM7fdl9ERWDsKnrLnwB+Ne89918XOg==} - engines: {node: '>=10'} - dev: true - - /resolve@1.22.1: - resolution: {integrity: sha512-nBpuuYuY5jFsli/JIs1oldw6fOQCBioohqWZg/2hiaOybXOft4lonv85uDOKXdf8rhyK159cxU5cDcK/NKk8zw==} - hasBin: true - dependencies: - is-core-module: 2.11.0 - path-parse: 1.0.7 - supports-preserve-symlinks-flag: 1.0.0 - dev: true - /resolve@1.22.2: resolution: {integrity: sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==} hasBin: true @@ -8767,13 +7445,6 @@ packages: source-map-js: 1.0.2 dev: true - /saxes@6.0.0: - resolution: {integrity: sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==} - engines: {node: '>=v12.22.7'} - dependencies: - xmlchars: 2.2.0 - dev: true - /scheduler@0.23.0: resolution: {integrity: sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==} dependencies: @@ -8914,6 +7585,10 @@ packages: object-inspect: 1.12.3 dev: true + /siginfo@2.0.0: + resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} + dev: true + /signal-exit@3.0.7: resolution: {integrity: sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==} dev: true @@ -8937,10 +7612,6 @@ packages: semver: 7.0.0 dev: true - /sisteransi@1.0.5: - resolution: {integrity: sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==} - dev: true - /slash@2.0.0: resolution: {integrity: sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A==} engines: {node: '>=6'} @@ -8997,13 +7668,6 @@ packages: resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==} engines: {node: '>=0.10.0'} - /source-map-support@0.5.13: - resolution: {integrity: sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==} - dependencies: - buffer-from: 1.1.2 - source-map: 0.6.1 - dev: true - /source-map-support@0.5.21: resolution: {integrity: sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==} dependencies: @@ -9068,11 +7732,8 @@ packages: minipass: 3.3.6 dev: true - /stack-utils@2.0.6: - resolution: {integrity: sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==} - engines: {node: '>=10'} - dependencies: - escape-string-regexp: 2.0.0 + /stackback@0.0.2: + resolution: {integrity: sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==} dev: true /statuses@2.0.1: @@ -9080,12 +7741,8 @@ packages: engines: {node: '>= 0.8'} dev: true - /string-length@4.0.2: - resolution: {integrity: sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==} - engines: {node: '>=10'} - dependencies: - char-regex: 1.0.2 - strip-ansi: 6.0.1 + /std-env@3.4.3: + resolution: {integrity: sha512-f9aPhy8fYBuMN+sNfakZV18U39PbalgjXG3lLB9WkaYTxijru61wb57V9wxxNthXM5Sd88ETBWi29qLAsHO52Q==} dev: true /string-width@4.2.3: @@ -9189,6 +7846,12 @@ packages: engines: {node: '>=8'} dev: true + /strip-literal@1.3.0: + resolution: {integrity: sha512-PugKzOsyXpArk0yWmUwqOZecSO0GH0bPoctLcqNDH9J04pVW3lflYE0ujElBGTloevcxF5MofAOZ7C5l2b+wLg==} + dependencies: + acorn: 8.10.0 + dev: true + /strong-log-transformer@2.1.0: resolution: {integrity: sha512-B3Hgul+z0L9a236FAUC9iZsL+nVHgoCJnqCbN588DjYxvGXaXaaFbfmQ/JhvKjZwsOukuR72XbHv71Qkug0HxA==} engines: {node: '>=4'} @@ -9285,10 +7948,6 @@ packages: react: 18.2.0 dev: true - /symbol-tree@3.2.4: - resolution: {integrity: sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==} - dev: true - /tapable@2.2.1: resolution: {integrity: sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==} engines: {node: '>=6'} @@ -9316,7 +7975,7 @@ packages: engines: {node: '>=8'} dev: true - /terser-webpack-plugin@5.3.6(@swc/core@1.2.205)(esbuild@0.17.8)(webpack@5.75.0): + /terser-webpack-plugin@5.3.6(esbuild@0.17.8)(webpack@5.75.0): resolution: {integrity: sha512-kfLFk+PoLUQIbLmB1+PZDMRSZS99Mp+/MHqDNmMA6tOItzRt+Npe3E+fsMs5mfcM0wCtrrdU387UnV+vnSffXQ==} engines: {node: '>= 10.13.0'} peerDependencies: @@ -9333,13 +7992,12 @@ packages: optional: true dependencies: '@jridgewell/trace-mapping': 0.3.17 - '@swc/core': 1.2.205 esbuild: 0.17.8 jest-worker: 27.5.1 schema-utils: 3.1.1 serialize-javascript: 6.0.1 terser: 5.16.3 - webpack: 5.75.0(@swc/core@1.2.205)(esbuild@0.17.8)(webpack-cli@5.0.1) + webpack: 5.75.0(esbuild@0.17.8)(webpack-cli@5.0.1) dev: true /terser@5.16.3: @@ -9353,15 +8011,6 @@ packages: source-map-support: 0.5.21 dev: true - /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.3 - minimatch: 3.1.2 - dev: true - /text-extensions@1.9.0: resolution: {integrity: sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ==} engines: {node: '>=0.10'} @@ -9388,6 +8037,20 @@ packages: resolution: {integrity: sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==} dev: true + /tinybench@2.5.1: + resolution: {integrity: sha512-65NKvSuAVDP/n4CqH+a9w2kTlLReS9vhsAP06MWx+/89nMinJyB2icyl58RIcqCmIggpojIGeuJGhjU1aGMBSg==} + dev: true + + /tinypool@0.7.0: + resolution: {integrity: sha512-zSYNUlYSMhJ6Zdou4cJwo/p7w5nmAH17GRfU/ui3ctvjXFErXXkruT4MWW6poDeXgCaIBlGLrfU6TbTXxyGMww==} + engines: {node: '>=14.0.0'} + dev: true + + /tinyspy@2.1.1: + resolution: {integrity: sha512-XPJL2uSzcOyBMky6OFrusqWlzfFrXtE0hPuMgW8A2HmaqrPo4ZQHRN/V0QXN3FSjKxpsbRrFc5LI7KOwBsT1/w==} + engines: {node: '>=14.0.0'} + dev: true + /tmp@0.0.33: resolution: {integrity: sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==} engines: {node: '>=0.6.0'} @@ -9395,10 +8058,6 @@ packages: os-tmpdir: 1.0.2 dev: true - /tmpl@1.0.5: - resolution: {integrity: sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==} - dev: true - /to-fast-properties@2.0.0: resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==} engines: {node: '>=4'} @@ -9407,6 +8066,7 @@ packages: /to-regex-range@5.0.1: resolution: {integrity: sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==} engines: {node: '>=8.0'} + requiresBuild: true dependencies: is-number: 7.0.0 dev: true @@ -9423,27 +8083,10 @@ packages: nopt: 1.0.10 dev: true - /tough-cookie@4.1.2: - resolution: {integrity: sha512-G9fqXWoYFZgTc2z8Q5zaHy/vJMjm+WV0AkAeHxVCQiEB1b+dGvWzFW6QV07cY5jQ5gRkeid2qIkzkxUnmoQZUQ==} - engines: {node: '>=6'} - dependencies: - psl: 1.9.0 - punycode: 2.3.0 - universalify: 0.2.0 - url-parse: 1.5.10 - dev: true - /tr46@0.0.3: resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==} dev: true - /tr46@3.0.0: - resolution: {integrity: sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==} - engines: {node: '>=12'} - dependencies: - punycode: 2.3.0 - dev: true - /treeverse@3.0.0: resolution: {integrity: sha512-gcANaAnd2QDZFmHFEOF4k7uc1J/6a6z3DJMd/QwEyxLoKGiptJRwid582r7QIsFlFMIZ3SnxfS52S4hm2DHkuQ==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} @@ -9466,7 +8109,7 @@ packages: micromatch: 4.0.5 semver: 7.3.8 typescript: 4.9.5 - webpack: 5.75.0(@swc/core@1.2.205)(esbuild@0.17.8)(webpack-cli@5.0.1) + webpack: 5.75.0(esbuild@0.17.8)(webpack-cli@5.0.1) dev: true /tslib@1.14.1: @@ -9559,13 +8202,6 @@ packages: turbo-windows-arm64: 1.7.4 dev: true - /type-check@0.3.2: - resolution: {integrity: sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==} - engines: {node: '>= 0.8.0'} - dependencies: - prelude-ls: 1.1.2 - dev: true - /type-check@0.4.0: resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} engines: {node: '>= 0.8.0'} @@ -9654,6 +8290,10 @@ packages: resolution: {integrity: sha512-8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA==} dev: false + /ufo@1.3.0: + resolution: {integrity: sha512-bRn3CsoojyNStCZe0BG0Mt4Nr/4KF+rhFlnNXybgqt5pXHNFRlqinSoQaTrGyzE4X8aHplSb+TorH+COin9Yxw==} + dev: true + /uglify-js@3.17.4: resolution: {integrity: sha512-T9q82TJI9e/C1TAxYvfb16xO120tMVFZrGA3f9/P4424DNu6ypK103y0GPFVa17yotwSyZW5iYXgjYHkGrJW/g==} engines: {node: '>=0.8.0'} @@ -9737,11 +8377,6 @@ packages: resolution: {integrity: sha512-isyNax3wXoKaulPDZWHQqbmIx1k2tb9fb3GGDBRxCscfYV2Ch7WxPArBsFEG8s/safwXTT7H4QGhaIkTp9447w==} dev: true - /universalify@0.2.0: - resolution: {integrity: sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==} - engines: {node: '>= 4.0.0'} - dev: true - /universalify@2.0.0: resolution: {integrity: sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==} engines: {node: '>= 10.0.0'} @@ -9769,13 +8404,6 @@ packages: punycode: 2.3.0 dev: true - /url-parse@1.5.10: - resolution: {integrity: sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==} - dependencies: - querystringify: 2.2.0 - requires-port: 1.0.0 - dev: true - /util-deprecate@1.0.2: resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==} dev: true @@ -9796,15 +8424,6 @@ packages: hasBin: true dev: true - /v8-to-istanbul@9.0.1: - resolution: {integrity: sha512-74Y4LqY74kLE6IFyIjPtkSTWzUZmj8tdHT9Ii/26dvQ6K9Dl2NbEfj0XgU2sHCtKgt5VupqhlO/5aWuqS+IY1w==} - engines: {node: '>=10.12.0'} - dependencies: - '@jridgewell/trace-mapping': 0.3.17 - '@types/istanbul-lib-coverage': 2.0.4 - convert-source-map: 1.9.0 - dev: true - /validate-npm-package-license@3.0.4: resolution: {integrity: sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==} dependencies: @@ -9824,6 +8443,27 @@ packages: engines: {node: '>= 0.8'} dev: true + /vite-node@0.34.4(@types/node@18.13.0): + resolution: {integrity: sha512-ho8HtiLc+nsmbwZMw8SlghESEE3KxJNp04F/jPUCLVvaURwt0d+r9LxEqCX5hvrrOQ0GSyxbYr5ZfRYhQ0yVKQ==} + engines: {node: '>=v14.18.0'} + hasBin: true + dependencies: + cac: 6.7.14 + debug: 4.3.4(supports-color@5.5.0) + mlly: 1.4.2 + pathe: 1.1.1 + picocolors: 1.0.0 + vite: 4.2.1(@types/node@18.13.0) + transitivePeerDependencies: + - '@types/node' + - less + - sass + - stylus + - sugarss + - supports-color + - terser + dev: true + /vite@4.2.1(@types/node@18.13.0): resolution: {integrity: sha512-7MKhqdy0ISo4wnvwtqZkjke6XN4taqQ2TBaTccLIpOKv7Vp2h4Y+NpmWCnGDeSvvn45KxvWgGyb0MkHvY1vgbg==} engines: {node: ^14.18.0 || >=16.0.0} @@ -9858,11 +8498,68 @@ packages: fsevents: 2.3.2 dev: true - /w3c-xmlserializer@4.0.0: - resolution: {integrity: sha512-d+BFHzbiCx6zGfz0HyQ6Rg69w9k19nviJspaj4yNscGjrHu94sVP+aRm75yEbCh+r2/yR+7q6hux9LVtbuTGBw==} - engines: {node: '>=14'} + /vitest@0.34.4: + resolution: {integrity: sha512-SE/laOsB6995QlbSE6BtkpXDeVNLJc1u2LHRG/OpnN4RsRzM3GQm4nm3PQCK5OBtrsUqnhzLdnT7se3aeNGdlw==} + engines: {node: '>=v14.18.0'} + hasBin: true + peerDependencies: + '@edge-runtime/vm': '*' + '@vitest/browser': '*' + '@vitest/ui': '*' + happy-dom: '*' + jsdom: '*' + playwright: '*' + safaridriver: '*' + webdriverio: '*' + peerDependenciesMeta: + '@edge-runtime/vm': + optional: true + '@vitest/browser': + optional: true + '@vitest/ui': + optional: true + happy-dom: + optional: true + jsdom: + optional: true + playwright: + optional: true + safaridriver: + optional: true + webdriverio: + optional: true dependencies: - xml-name-validator: 4.0.0 + '@types/chai': 4.3.6 + '@types/chai-subset': 1.3.3 + '@types/node': 18.13.0 + '@vitest/expect': 0.34.4 + '@vitest/runner': 0.34.4 + '@vitest/snapshot': 0.34.4 + '@vitest/spy': 0.34.4 + '@vitest/utils': 0.34.4 + acorn: 8.10.0 + acorn-walk: 8.2.0 + cac: 6.7.14 + chai: 4.3.8 + debug: 4.3.4(supports-color@5.5.0) + local-pkg: 0.4.3 + magic-string: 0.30.3 + pathe: 1.1.1 + picocolors: 1.0.0 + std-env: 3.4.3 + strip-literal: 1.3.0 + tinybench: 2.5.1 + tinypool: 0.7.0 + vite: 4.2.1(@types/node@18.13.0) + vite-node: 0.34.4(@types/node@18.13.0) + why-is-node-running: 2.2.2 + transitivePeerDependencies: + - less + - sass + - stylus + - sugarss + - supports-color + - terser dev: true /wait-on@7.0.1: @@ -9883,12 +8580,6 @@ packages: resolution: {integrity: sha512-hwj/qMDUEjCU5h0xr90KGCf0tg0/LgJbmOWgrWKYlcJZM7XvquvUJZ0G/HMGr7F7OQMOUuPHWP9JpriinkAlkg==} dev: true - /walker@1.0.8: - resolution: {integrity: sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==} - dependencies: - makeerror: 1.0.12 - dev: true - /watchpack@2.4.0: resolution: {integrity: sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==} engines: {node: '>=10.13.0'} @@ -9907,11 +8598,6 @@ packages: resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==} dev: true - /webidl-conversions@7.0.0: - resolution: {integrity: sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==} - engines: {node: '>=12'} - dev: true - /webpack-cli@5.0.1(webpack@5.75.0): resolution: {integrity: sha512-S3KVAyfwUqr0Mo/ur3NzIp6jnerNpo7GUO6so51mxLi1spqsA17YcMXy0WOIJtBSnj748lthxC6XLbNKh/ZC+A==} engines: {node: '>=14.15.0'} @@ -9941,7 +8627,7 @@ packages: import-local: 3.1.0 interpret: 3.1.1 rechoir: 0.8.0 - webpack: 5.75.0(@swc/core@1.2.205)(esbuild@0.17.8)(webpack-cli@5.0.1) + webpack: 5.75.0(esbuild@0.17.8)(webpack-cli@5.0.1) webpack-merge: 5.8.0 dev: true @@ -9965,7 +8651,7 @@ packages: engines: {node: '>=10.13.0'} dev: true - /webpack@5.75.0(@swc/core@1.2.205)(esbuild@0.17.8)(webpack-cli@5.0.1): + /webpack@5.75.0(esbuild@0.17.8)(webpack-cli@5.0.1): resolution: {integrity: sha512-piaIaoVJlqMsPtX/+3KTTO6jfvrSYgauFVdt8cr9LTHKmcq/AMd4mhzsiP7ZF/PGRNPGA8336jldh9l2Kt2ogQ==} engines: {node: '>=10.13.0'} hasBin: true @@ -9996,7 +8682,7 @@ packages: neo-async: 2.6.2 schema-utils: 3.1.1 tapable: 2.2.1 - terser-webpack-plugin: 5.3.6(@swc/core@1.2.205)(esbuild@0.17.8)(webpack@5.75.0) + terser-webpack-plugin: 5.3.6(esbuild@0.17.8)(webpack@5.75.0) watchpack: 2.4.0 webpack-cli: 5.0.1(webpack@5.75.0) webpack-sources: 3.2.3 @@ -10006,26 +8692,6 @@ packages: - uglify-js dev: true - /whatwg-encoding@2.0.0: - resolution: {integrity: sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==} - engines: {node: '>=12'} - dependencies: - iconv-lite: 0.6.3 - dev: true - - /whatwg-mimetype@3.0.0: - resolution: {integrity: sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==} - engines: {node: '>=12'} - dev: true - - /whatwg-url@11.0.0: - resolution: {integrity: sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==} - engines: {node: '>=12'} - dependencies: - tr46: 3.0.0 - webidl-conversions: 7.0.0 - dev: true - /whatwg-url@5.0.0: resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==} dependencies: @@ -10078,6 +8744,15 @@ packages: isexe: 2.0.0 dev: true + /why-is-node-running@2.2.2: + resolution: {integrity: sha512-6tSwToZxTOcotxHeA+qGCq1mVzKR3CwcJGmVcY+QE8SHy6TnpFnh8PAvPNHYr7EcuVeG0QSMxtYCuO1ta/G/oA==} + engines: {node: '>=8'} + hasBin: true + dependencies: + siginfo: 2.0.0 + stackback: 0.0.2 + dev: true + /wide-align@1.1.5: resolution: {integrity: sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==} dependencies: @@ -10143,14 +8818,6 @@ packages: typedarray-to-buffer: 3.1.5 dev: true - /write-file-atomic@4.0.2: - resolution: {integrity: sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==} - engines: {node: ^12.13.0 || ^14.15.0 || >=16.0.0} - dependencies: - imurmurhash: 0.1.4 - signal-exit: 3.0.7 - dev: true - /write-file-atomic@5.0.0: resolution: {integrity: sha512-R7NYMnHSlV42K54lwY9lvW6MnSm1HSJqZL3xiSgi9E7//FYaI74r2G0rd+/X6VAMkHEdzxQaU5HUOXWUz5kA/w==} engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0} @@ -10210,15 +8877,6 @@ packages: engines: {node: '>=12'} dev: true - /xml-name-validator@4.0.0: - resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==} - engines: {node: '>=12'} - dev: true - - /xmlchars@2.2.0: - resolution: {integrity: sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==} - dev: true - /xtend@4.0.2: resolution: {integrity: sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==} engines: {node: '>=0.4'} @@ -10277,3 +8935,8 @@ packages: resolution: {integrity: sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==} engines: {node: '>=10'} dev: true + + /yocto-queue@1.0.0: + resolution: {integrity: sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g==} + engines: {node: '>=12.20'} + dev: true