Move sync-server to vitest (#4840)

* Move sync-server to vitest

* Add release notes

* Add comment

* Remove extraneous console.log

* Empty commit to bump CI
This commit is contained in:
Julian Dominguez-Schatz
2025-04-19 23:43:25 -04:00
committed by GitHub
parent e67c064d1f
commit d027adc734
14 changed files with 683 additions and 110 deletions

View File

@@ -117,6 +117,26 @@ export default [
'.github/*',
],
},
{
// Temporary until the sync-server is migrated to TypeScript
files: [
'packages/sync-server/**/*.spec.js?(x)',
'packages/sync-server/**/*.test.js?(x)',
],
languageOptions: {
globals: {
vi: true,
describe: true,
expect: true,
it: true,
beforeAll: true,
beforeEach: true,
afterAll: true,
afterEach: true,
test: true,
},
},
},
{
linterOptions: {
reportUnusedDisableDirectives: true,
@@ -752,6 +772,16 @@ export default [
'import/no-unresolved': 'off',
},
},
// Allow configuring vitest with default exports (recommended as per vitest docs)
{
files: ['**/vitest.config.ts', '**/vitest.web.config.ts'],
rules: {
'import/no-anonymous-default-export': 'off',
'import/no-default-export': 'off',
},
},
{},
{
// TODO: fix the issues in these files

View File

@@ -1,19 +0,0 @@
{
"globalSetup": "./jest.global-setup.js",
"globalTeardown": "./jest.global-teardown.js",
"testPathIgnorePatterns": ["dist", "/node_modules/", "/build/"],
"roots": ["<rootDir>"],
"moduleFileExtensions": ["ts", "js", "json"],
"testEnvironment": "node",
"collectCoverage": true,
"collectCoverageFrom": ["**/*.{js,ts,tsx}"],
"coveragePathIgnorePatterns": [
"dist",
"/node_modules/",
"/build/",
"/coverage/"
],
"coverageReporters": ["html", "lcov", "text", "text-summary"],
"resetMocks": true,
"restoreMocks": true
}

View File

@@ -1,6 +0,0 @@
import { run as runMigrations } from './src/migrations.js';
// eslint-disable-next-line import/no-default-export
export default async function teardown() {
await runMigrations('down');
}

View File

@@ -20,7 +20,7 @@
"start": "node app",
"start-monitor": "nodemon app",
"build": "tsc",
"test": "NODE_ENV=test NODE_OPTIONS='--experimental-vm-modules --trace-warnings' jest --coverage",
"test": "NODE_ENV=test NODE_OPTIONS='--experimental-vm-modules --trace-warnings' vitest",
"db:migrate": "NODE_ENV=development node src/run-migrations.js up",
"db:downgrade": "NODE_ENV=development node src/run-migrations.js down",
"db:test-migrate": "NODE_ENV=test node src/run-migrations.js up",
@@ -62,14 +62,14 @@
"@types/cors": "^2.8.17",
"@types/express": "^5.0.0",
"@types/express-actuator": "^1.8.3",
"@types/jest": "^29.5.14",
"@types/node": "^22.14.0",
"@types/supertest": "^2.0.16",
"@types/uuid": "^9.0.8",
"@vitest/coverage-v8": "3.1.1",
"http-proxy-middleware": "^3.0.5",
"jest": "^29.7.0",
"nodemon": "^3.1.9",
"supertest": "^6.3.4",
"typescript": "^5.8.2"
"typescript": "^5.8.2",
"vitest": "^3.0.2"
}
}

View File

@@ -1,5 +1,3 @@
import { jest } from '@jest/globals';
import {
mockExtendAccountsAboutInstitutions,
mockInstitution,
@@ -10,7 +8,7 @@ describe('IntegrationBank', () => {
let consoleSpy;
beforeEach(() => {
consoleSpy = jest.spyOn(console, 'debug');
consoleSpy = vi.spyOn(console, 'debug');
});
describe('normalizeAccount', () => {

View File

@@ -201,9 +201,8 @@ describe('SpkMarburgBiedenkopfHeladef1mar', () => {
normalizeTransactions[a] = normalizeTransactions[b];
normalizeTransactions[b] = swap;
};
swap(1, 4);
swap(3, 6);
swap(0, 7);
swap(1, 3);
swap(0, 2);
const sortedTransactions =
SpkMarburgBiedenkopfHeladef1mar.sortTransactions(normalizeTransactions);
expect(sortedTransactions).toEqual(originalOrder);

View File

@@ -1,12 +1,10 @@
import { jest } from '@jest/globals';
import SskDusseldorfDussdeddxxx from '../ssk_dusseldorf_dussdeddxxx.js';
describe('ssk_dusseldorf_dussdeddxxx', () => {
let consoleSpy;
beforeEach(() => {
consoleSpy = jest.spyOn(console, 'debug');
consoleSpy = vi.spyOn(console, 'debug');
});
afterEach(() => {

View File

@@ -1,5 +1,3 @@
import { jest } from '@jest/globals';
import {
AccessDeniedError,
AccountNotLinkedToRequisition,
@@ -51,29 +49,29 @@ describe('goCardlessService', () => {
let setTokenSpy;
beforeEach(() => {
getInstitutionsSpy = jest.spyOn(client, 'getInstitutions');
getInstitutionSpy = jest.spyOn(client, 'getInstitutionById');
getRequisitionsSpy = jest.spyOn(client, 'getRequisitionById');
deleteRequisitionsSpy = jest.spyOn(client, 'deleteRequisition');
createRequisitionSpy = jest.spyOn(client, 'initSession');
getBalancesSpy = jest.spyOn(client, 'getBalances');
getTransactionsSpy = jest.spyOn(client, 'getTransactions');
getDetailsSpy = jest.spyOn(client, 'getDetails');
getMetadataSpy = jest.spyOn(client, 'getMetadata');
setTokenSpy = jest.spyOn(goCardlessService, 'setToken');
getInstitutionsSpy = vi.spyOn(client, 'getInstitutions');
getInstitutionSpy = vi.spyOn(client, 'getInstitutionById');
getRequisitionsSpy = vi.spyOn(client, 'getRequisitionById');
deleteRequisitionsSpy = vi.spyOn(client, 'deleteRequisition');
createRequisitionSpy = vi.spyOn(client, 'initSession');
getBalancesSpy = vi.spyOn(client, 'getBalances');
getTransactionsSpy = vi.spyOn(client, 'getTransactions');
getDetailsSpy = vi.spyOn(client, 'getDetails');
getMetadataSpy = vi.spyOn(client, 'getMetadata');
setTokenSpy = vi.spyOn(goCardlessService, 'setToken');
});
afterEach(() => {
jest.resetAllMocks();
vi.resetAllMocks();
});
describe('#getLinkedRequisition', () => {
it('returns requisition', async () => {
setTokenSpy.mockResolvedValue();
jest
.spyOn(goCardlessService, 'getRequisition')
.mockResolvedValue(mockRequisition);
vi.spyOn(goCardlessService, 'getRequisition').mockResolvedValue(
mockRequisition,
);
expect(
await goCardlessService.getLinkedRequisition(requisitionId),
@@ -83,9 +81,10 @@ describe('goCardlessService', () => {
it('throws RequisitionNotLinked error if requisition status is different than LN', async () => {
setTokenSpy.mockResolvedValue();
jest
.spyOn(goCardlessService, 'getRequisition')
.mockResolvedValue({ ...mockRequisition, status: 'ER' });
vi.spyOn(goCardlessService, 'getRequisition').mockResolvedValue({
...mockRequisition,
status: 'ER',
});
await expect(() =>
goCardlessService.getLinkedRequisition(requisitionId),
@@ -95,30 +94,31 @@ describe('goCardlessService', () => {
describe('#getRequisitionWithAccounts', () => {
it('returns combined data', async () => {
jest
.spyOn(goCardlessService, 'getRequisition')
.mockResolvedValue(mockRequisitionWithExampleAccounts);
jest
.spyOn(goCardlessService, 'getDetailedAccount')
.mockResolvedValueOnce(mockDetailedAccountExample1);
jest
.spyOn(goCardlessService, 'getDetailedAccount')
.mockResolvedValueOnce(mockDetailedAccountExample2);
jest
.spyOn(goCardlessService, 'getInstitution')
.mockResolvedValue(mockInstitution);
jest
.spyOn(goCardlessService, 'extendAccountsAboutInstitutions')
.mockResolvedValue([
{
...mockExtendAccountsAboutInstitutions[0],
institution_id: 'NEWONE',
},
{
...mockExtendAccountsAboutInstitutions[1],
institution_id: 'NEWONE',
},
]);
vi.spyOn(goCardlessService, 'getRequisition').mockResolvedValue(
mockRequisitionWithExampleAccounts,
);
vi.spyOn(goCardlessService, 'getDetailedAccount').mockResolvedValueOnce(
mockDetailedAccountExample1,
);
vi.spyOn(goCardlessService, 'getDetailedAccount').mockResolvedValueOnce(
mockDetailedAccountExample2,
);
vi.spyOn(goCardlessService, 'getInstitution').mockResolvedValue(
mockInstitution,
);
vi.spyOn(
goCardlessService,
'extendAccountsAboutInstitutions',
).mockResolvedValue([
{
...mockExtendAccountsAboutInstitutions[0],
institution_id: 'NEWONE',
},
{
...mockExtendAccountsAboutInstitutions[1],
institution_id: 'NEWONE',
},
]);
const response = await goCardlessService.getRequisitionWithAccounts(
mockRequisitionWithExampleAccounts.id,
@@ -146,18 +146,18 @@ describe('goCardlessService', () => {
describe('#getTransactionsWithBalance', () => {
const requisitionId = mockRequisition.id;
it('returns transaction with starting balance', async () => {
jest
.spyOn(goCardlessService, 'getLinkedRequisition')
.mockResolvedValue(mockRequisition);
jest
.spyOn(goCardlessService, 'getAccountMetadata')
.mockResolvedValue(mockAccountMetaData);
jest
.spyOn(goCardlessService, 'getTransactions')
.mockResolvedValue(mockTransactions);
jest
.spyOn(goCardlessService, 'getBalances')
.mockResolvedValue(mockedBalances);
vi.spyOn(goCardlessService, 'getLinkedRequisition').mockResolvedValue(
mockRequisition,
);
vi.spyOn(goCardlessService, 'getAccountMetadata').mockResolvedValue(
mockAccountMetaData,
);
vi.spyOn(goCardlessService, 'getTransactions').mockResolvedValue(
mockTransactions,
);
vi.spyOn(goCardlessService, 'getBalances').mockResolvedValue(
mockedBalances,
);
expect(
await goCardlessService.getTransactionsWithBalance(
@@ -216,9 +216,9 @@ describe('goCardlessService', () => {
});
it('throws AccountNotLinkedToRequisition error if requisition accounts not includes requested account', async () => {
jest
.spyOn(goCardlessService, 'getLinkedRequisition')
.mockResolvedValue(mockRequisition);
vi.spyOn(goCardlessService, 'getLinkedRequisition').mockResolvedValue(
mockRequisition,
);
await expect(() =>
goCardlessService.getTransactionsWithBalance({

View File

@@ -33,20 +33,17 @@ describe('FilesService', () => {
accountDb.mutate('DELETE FROM files');
};
beforeAll(done => {
beforeAll(() => {
accountDb = getAccountDb();
filesService = new FilesService(accountDb);
done();
});
beforeEach(done => {
beforeEach(() => {
insertToyExampleData();
done();
});
afterEach(done => {
afterEach(() => {
clearDatabase();
done();
});
test('get should return a file', () => {

View File

@@ -14,7 +14,8 @@
"allowJs": true,
"moduleResolution": "node16",
"module": "node16",
"outDir": "build"
"outDir": "build",
"types": ["vite/client", "vitest/globals"]
},
"include": ["src/**/*.js", "types/global.d.ts"],
"exclude": ["node_modules", "build", "./app-plaid.js", "coverage"]

View File

@@ -0,0 +1,18 @@
export default {
test: {
exclude: ['**/node_modules/**', '**/dist/**', '**/build/**'],
globalSetup: ['./vitest.globalSetup.js'],
globals: true,
coverage: {
enabled: true,
include: ['**/*.{js,ts,tsx}'],
exclude: [
'**/node_modules/**',
'**/dist/**',
'**/build/**',
'**/coverage/**',
],
reporter: ['html', 'lcov', 'text', 'text-summary'],
},
},
};

View File

@@ -60,8 +60,7 @@ const setSessionUser = (userId, token = 'valid-token') => {
}
};
// eslint-disable-next-line import/no-default-export
export default async function setup() {
export async function setup() {
const NEVER_EXPIRES = -1; // or consider using a far future timestamp
await runMigrations();
@@ -99,3 +98,7 @@ export default async function setup() {
createUser(GENERIC_USER_ID, 'user', BASIC_ROLE_ID, 1);
}
export async function teardown() {
await runMigrations('down');
}

View File

@@ -0,0 +1,6 @@
---
category: Maintenance
authors: [jfdoming]
---
Move sync-server to vitest

558
yarn.lock
View File

@@ -98,10 +98,10 @@ __metadata:
"@types/cors": "npm:^2.8.17"
"@types/express": "npm:^5.0.0"
"@types/express-actuator": "npm:^1.8.3"
"@types/jest": "npm:^29.5.14"
"@types/node": "npm:^22.14.0"
"@types/supertest": "npm:^2.0.16"
"@types/uuid": "npm:^9.0.8"
"@vitest/coverage-v8": "npm:3.1.1"
bcrypt: "npm:^5.1.1"
better-sqlite3: "npm:^11.9.1"
body-parser: "npm:^1.20.3"
@@ -115,7 +115,6 @@ __metadata:
express-response-size: "npm:^0.0.3"
express-winston: "npm:^4.2.0"
http-proxy-middleware: "npm:^3.0.5"
jest: "npm:^29.7.0"
jws: "npm:^4.0.0"
migrate: "npm:^2.1.0"
nodemon: "npm:^3.1.9"
@@ -125,6 +124,7 @@ __metadata:
supertest: "npm:^6.3.4"
typescript: "npm:^5.8.2"
uuid: "npm:^9.0.1"
vitest: "npm:^3.0.2"
winston: "npm:^3.17.0"
bin:
actual-server: ./bin/actual-server.js
@@ -226,6 +226,16 @@ __metadata:
languageName: node
linkType: hard
"@ampproject/remapping@npm:^2.3.0":
version: 2.3.0
resolution: "@ampproject/remapping@npm:2.3.0"
dependencies:
"@jridgewell/gen-mapping": "npm:^0.3.5"
"@jridgewell/trace-mapping": "npm:^0.3.24"
checksum: 10/f3451525379c68a73eb0a1e65247fbf28c0cccd126d93af21c75fceff77773d43c0d4a2d51978fb131aff25b5f2cb41a9fe48cc296e61ae65e679c4f6918b0ab
languageName: node
linkType: hard
"@apideck/better-ajv-errors@npm:^0.3.1":
version: 0.3.6
resolution: "@apideck/better-ajv-errors@npm:0.3.6"
@@ -542,6 +552,17 @@ __metadata:
languageName: node
linkType: hard
"@babel/parser@npm:^7.25.4":
version: 7.27.0
resolution: "@babel/parser@npm:7.27.0"
dependencies:
"@babel/types": "npm:^7.27.0"
bin:
parser: ./bin/babel-parser.js
checksum: 10/0fee9f05c6db753882ca9d10958301493443da9f6986d7020ebd7a696b35886240016899bc0b47d871aea2abcafd64632343719742e87432c8145e0ec2af2a03
languageName: node
linkType: hard
"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:^7.23.3":
version: 7.23.3
resolution: "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:7.23.3"
@@ -1583,6 +1604,16 @@ __metadata:
languageName: node
linkType: hard
"@babel/types@npm:^7.25.4, @babel/types@npm:^7.27.0":
version: 7.27.0
resolution: "@babel/types@npm:7.27.0"
dependencies:
"@babel/helper-string-parser": "npm:^7.25.9"
"@babel/helper-validator-identifier": "npm:^7.25.9"
checksum: 10/2c322bce107c8a534dc4a23be60d570e6a4cc7ca2e44d4f0eee08c0b626104eb7e60ab8de03463bc5da1773a2f69f1e6edec1648d648d65461d6520a7f3b0770
languageName: node
linkType: hard
"@bcoe/v8-coverage@npm:^0.2.3":
version: 0.2.3
resolution: "@bcoe/v8-coverage@npm:0.2.3"
@@ -1590,6 +1621,13 @@ __metadata:
languageName: node
linkType: hard
"@bcoe/v8-coverage@npm:^1.0.2":
version: 1.0.2
resolution: "@bcoe/v8-coverage@npm:1.0.2"
checksum: 10/46600b2dde460269b07a8e4f12b72e418eae1337b85c979f43af3336c9a1c65b04e42508ab6b245f1e0e3c64328e1c38d8cd733e4a7cebc4fbf9cf65c6e59937
languageName: node
linkType: hard
"@colors/colors@npm:1.6.0, @colors/colors@npm:^1.6.0":
version: 1.6.0
resolution: "@colors/colors@npm:1.6.0"
@@ -2780,6 +2818,13 @@ __metadata:
languageName: node
linkType: hard
"@jridgewell/sourcemap-codec@npm:^1.5.0":
version: 1.5.0
resolution: "@jridgewell/sourcemap-codec@npm:1.5.0"
checksum: 10/4ed6123217569a1484419ac53f6ea0d9f3b57e5b57ab30d7c267bdb27792a27eb0e4b08e84a2680aa55cc2f2b411ffd6ec3db01c44fdc6dc43aca4b55f8374fd
languageName: node
linkType: hard
"@jridgewell/trace-mapping@npm:0.3.9":
version: 0.3.9
resolution: "@jridgewell/trace-mapping@npm:0.3.9"
@@ -2790,7 +2835,7 @@ __metadata:
languageName: node
linkType: hard
"@jridgewell/trace-mapping@npm:^0.3.12, @jridgewell/trace-mapping@npm:^0.3.18, @jridgewell/trace-mapping@npm:^0.3.24, @jridgewell/trace-mapping@npm:^0.3.25, @jridgewell/trace-mapping@npm:^0.3.9":
"@jridgewell/trace-mapping@npm:^0.3.12, @jridgewell/trace-mapping@npm:^0.3.18, @jridgewell/trace-mapping@npm:^0.3.23, @jridgewell/trace-mapping@npm:^0.3.24, @jridgewell/trace-mapping@npm:^0.3.25, @jridgewell/trace-mapping@npm:^0.3.9":
version: 0.3.25
resolution: "@jridgewell/trace-mapping@npm:0.3.25"
dependencies:
@@ -6584,6 +6629,32 @@ __metadata:
languageName: node
linkType: hard
"@vitest/coverage-v8@npm:3.1.1":
version: 3.1.1
resolution: "@vitest/coverage-v8@npm:3.1.1"
dependencies:
"@ampproject/remapping": "npm:^2.3.0"
"@bcoe/v8-coverage": "npm:^1.0.2"
debug: "npm:^4.4.0"
istanbul-lib-coverage: "npm:^3.2.2"
istanbul-lib-report: "npm:^3.0.1"
istanbul-lib-source-maps: "npm:^5.0.6"
istanbul-reports: "npm:^3.1.7"
magic-string: "npm:^0.30.17"
magicast: "npm:^0.3.5"
std-env: "npm:^3.8.1"
test-exclude: "npm:^7.0.1"
tinyrainbow: "npm:^2.0.0"
peerDependencies:
"@vitest/browser": 3.1.1
vitest: 3.1.1
peerDependenciesMeta:
"@vitest/browser":
optional: true
checksum: 10/855c3fb8b19ef71f0235d68b5311b0ae4e7bdaa37a616c565cd8c7cbd287e6069a786e91696c3f437d2760a052b179f91672899dfa4ae035b3c8e33c3a8490e5
languageName: node
linkType: hard
"@vitest/expect@npm:1.6.1":
version: 1.6.1
resolution: "@vitest/expect@npm:1.6.1"
@@ -6595,6 +6666,46 @@ __metadata:
languageName: node
linkType: hard
"@vitest/expect@npm:3.1.1":
version: 3.1.1
resolution: "@vitest/expect@npm:3.1.1"
dependencies:
"@vitest/spy": "npm:3.1.1"
"@vitest/utils": "npm:3.1.1"
chai: "npm:^5.2.0"
tinyrainbow: "npm:^2.0.0"
checksum: 10/79754e35fb505f6ee9636e49f78961299b99b12cebf6fd7ea6455a05d9a9589a65fa5d4537a7b4f6b837a41988ab629a6ff76252a4a5accf77f9462dbf3570c8
languageName: node
linkType: hard
"@vitest/mocker@npm:3.1.1":
version: 3.1.1
resolution: "@vitest/mocker@npm:3.1.1"
dependencies:
"@vitest/spy": "npm:3.1.1"
estree-walker: "npm:^3.0.3"
magic-string: "npm:^0.30.17"
peerDependencies:
msw: ^2.4.9
vite: ^5.0.0 || ^6.0.0
peerDependenciesMeta:
msw:
optional: true
vite:
optional: true
checksum: 10/18b72593071b4416b096c2c09899e9213804ec5e0fc90f6c5464ebd9645f34de9c2d0ecb09cbc7f3d44fbcf897fca2921ba114b185fc86a70050ccee1c6d6cc8
languageName: node
linkType: hard
"@vitest/pretty-format@npm:3.1.1, @vitest/pretty-format@npm:^3.1.1":
version: 3.1.1
resolution: "@vitest/pretty-format@npm:3.1.1"
dependencies:
tinyrainbow: "npm:^2.0.0"
checksum: 10/d1bc6a6c687d686194ef19ebc748894c543bc520d79db5e86d53ac97f004d13d5b364592a21e151031bf76bf8865ce25e60fc71cc02ca0d513d20bc0c600a63f
languageName: node
linkType: hard
"@vitest/runner@npm:1.6.1":
version: 1.6.1
resolution: "@vitest/runner@npm:1.6.1"
@@ -6606,6 +6717,16 @@ __metadata:
languageName: node
linkType: hard
"@vitest/runner@npm:3.1.1":
version: 3.1.1
resolution: "@vitest/runner@npm:3.1.1"
dependencies:
"@vitest/utils": "npm:3.1.1"
pathe: "npm:^2.0.3"
checksum: 10/652a351e59d2f615f3b3de0bb47bfb7875117dd3e57a62c031d8f385614513dbe77847a39037aedb79818a3fde1d957bb82e2f3a5c74651d27721553ed8b4668
languageName: node
linkType: hard
"@vitest/snapshot@npm:1.6.1":
version: 1.6.1
resolution: "@vitest/snapshot@npm:1.6.1"
@@ -6617,6 +6738,17 @@ __metadata:
languageName: node
linkType: hard
"@vitest/snapshot@npm:3.1.1":
version: 3.1.1
resolution: "@vitest/snapshot@npm:3.1.1"
dependencies:
"@vitest/pretty-format": "npm:3.1.1"
magic-string: "npm:^0.30.17"
pathe: "npm:^2.0.3"
checksum: 10/517ad76c35bd55d2908349a9a5749f874927971c2d6f4ffb3a6f6345acb7a393fac4cc9778119a215caf9ee0c96c75dc27c9f9227a51bd3907c36da946652d43
languageName: node
linkType: hard
"@vitest/spy@npm:1.6.1":
version: 1.6.1
resolution: "@vitest/spy@npm:1.6.1"
@@ -6626,6 +6758,15 @@ __metadata:
languageName: node
linkType: hard
"@vitest/spy@npm:3.1.1":
version: 3.1.1
resolution: "@vitest/spy@npm:3.1.1"
dependencies:
tinyspy: "npm:^3.0.2"
checksum: 10/2b2c8cb2f13fe4ea48779b91c69140c596c8fe3a3ef283ef8b19c025cfdb59a60db7c65a320c84fa28b26655877570860bb44bc2d0e99639d097a7e042e3c604
languageName: node
linkType: hard
"@vitest/utils@npm:1.6.1":
version: 1.6.1
resolution: "@vitest/utils@npm:1.6.1"
@@ -6638,6 +6779,17 @@ __metadata:
languageName: node
linkType: hard
"@vitest/utils@npm:3.1.1":
version: 3.1.1
resolution: "@vitest/utils@npm:3.1.1"
dependencies:
"@vitest/pretty-format": "npm:3.1.1"
loupe: "npm:^3.1.3"
tinyrainbow: "npm:^2.0.0"
checksum: 10/05f28d3e6636966803d60d4867200d6a3a5b7bc2ebaf1583bc3d5a2fc024e024c4958237eca73e420349faf326a8f62c3ae00b2cc2edb42d601b79a759f21b8f
languageName: node
linkType: hard
"@webassemblyjs/ast@npm:1.14.1, @webassemblyjs/ast@npm:^1.14.1":
version: 1.14.1
resolution: "@webassemblyjs/ast@npm:1.14.1"
@@ -7377,6 +7529,13 @@ __metadata:
languageName: node
linkType: hard
"assertion-error@npm:^2.0.1":
version: 2.0.1
resolution: "assertion-error@npm:2.0.1"
checksum: 10/a0789dd882211b87116e81e2648ccb7f60340b34f19877dd020b39ebb4714e475eb943e14ba3e22201c221ef6645b7bfe10297e76b6ac95b48a9898c1211ce66
languageName: node
linkType: hard
"ast-types-flow@npm:^0.0.8":
version: 0.0.8
resolution: "ast-types-flow@npm:0.0.8"
@@ -8148,6 +8307,19 @@ __metadata:
languageName: node
linkType: hard
"chai@npm:^5.2.0":
version: 5.2.0
resolution: "chai@npm:5.2.0"
dependencies:
assertion-error: "npm:^2.0.1"
check-error: "npm:^2.1.1"
deep-eql: "npm:^5.0.1"
loupe: "npm:^3.1.0"
pathval: "npm:^2.0.0"
checksum: 10/2ce03671c159c6a567bf1912756daabdbb7c075f3c0078f1b59d61da8d276936367ee696dfe093b49e1479d9ba93a6074c8e55d49791dddd8061728cdcad249e
languageName: node
linkType: hard
"chalk@npm:^2.4.1, chalk@npm:^2.4.2":
version: 2.4.2
resolution: "chalk@npm:2.4.2"
@@ -8237,6 +8409,13 @@ __metadata:
languageName: node
linkType: hard
"check-error@npm:^2.1.1":
version: 2.1.1
resolution: "check-error@npm:2.1.1"
checksum: 10/d785ed17b1d4a4796b6e75c765a9a290098cf52ff9728ce0756e8ffd4293d2e419dd30c67200aee34202463b474306913f2fcfaf1890641026d9fc6966fea27a
languageName: node
linkType: hard
"cheerio-select@npm:^2.1.0":
version: 2.1.0
resolution: "cheerio-select@npm:2.1.0"
@@ -9374,6 +9553,13 @@ __metadata:
languageName: node
linkType: hard
"deep-eql@npm:^5.0.1":
version: 5.0.2
resolution: "deep-eql@npm:5.0.2"
checksum: 10/a529b81e2ef8821621d20a36959a0328873a3e49d393ad11f8efe8559f31239494c2eb889b80342808674c475802ba95b9d6c4c27641b9a029405104c1b59fcf
languageName: node
linkType: hard
"deep-equal@npm:^2.2.3":
version: 2.2.3
resolution: "deep-equal@npm:2.2.3"
@@ -10187,6 +10373,13 @@ __metadata:
languageName: node
linkType: hard
"es-module-lexer@npm:^1.6.0":
version: 1.6.0
resolution: "es-module-lexer@npm:1.6.0"
checksum: 10/807ee7020cc46a9c970c78cad1f2f3fc139877e5ebad7f66dbfbb124d451189ba1c48c1c632bd5f8ce1b8af2caef3fca340ba044a410fa890d17b080a59024bb
languageName: node
linkType: hard
"es-object-atoms@npm:^1.0.0, es-object-atoms@npm:^1.1.1":
version: 1.1.1
resolution: "es-object-atoms@npm:1.1.1"
@@ -10991,6 +11184,13 @@ __metadata:
languageName: node
linkType: hard
"expect-type@npm:^1.2.0":
version: 1.2.1
resolution: "expect-type@npm:1.2.1"
checksum: 10/d121d90f4f3f705ca0b656e36f28c0ba91483d0cddf2876e64e23c3dea2f2d5853e9c0c9a4e90eb4b3e4663bf09c2c02e9729c339dcd308c70b2107188e6b286
languageName: node
linkType: hard
"expect@npm:^29.0.0, expect@npm:^29.7.0":
version: 29.7.0
resolution: "expect@npm:29.7.0"
@@ -11932,6 +12132,22 @@ __metadata:
languageName: node
linkType: hard
"glob@npm:^10.4.1":
version: 10.4.5
resolution: "glob@npm:10.4.5"
dependencies:
foreground-child: "npm:^3.1.0"
jackspeak: "npm:^3.1.2"
minimatch: "npm:^9.0.4"
minipass: "npm:^7.1.2"
package-json-from-dist: "npm:^1.0.0"
path-scurry: "npm:^1.11.1"
bin:
glob: dist/esm/bin.mjs
checksum: 10/698dfe11828b7efd0514cd11e573eaed26b2dff611f0400907281ce3eab0c1e56143ef9b35adc7c77ecc71fba74717b510c7c223d34ca8a98ec81777b293d4ac
languageName: node
linkType: hard
"glob@npm:^7.0.5, glob@npm:^7.1.3, glob@npm:^7.1.4, glob@npm:^7.1.6":
version: 7.2.3
resolution: "glob@npm:7.2.3"
@@ -13342,6 +13558,13 @@ __metadata:
languageName: node
linkType: hard
"istanbul-lib-coverage@npm:^3.2.2":
version: 3.2.2
resolution: "istanbul-lib-coverage@npm:3.2.2"
checksum: 10/40bbdd1e937dfd8c830fa286d0f665e81b7a78bdabcd4565f6d5667c99828bda3db7fb7ac6b96a3e2e8a2461ddbc5452d9f8bc7d00cb00075fa6a3e99f5b6a81
languageName: node
linkType: hard
"istanbul-lib-instrument@npm:^5.0.4":
version: 5.2.1
resolution: "istanbul-lib-instrument@npm:5.2.1"
@@ -13379,6 +13602,17 @@ __metadata:
languageName: node
linkType: hard
"istanbul-lib-report@npm:^3.0.1":
version: 3.0.1
resolution: "istanbul-lib-report@npm:3.0.1"
dependencies:
istanbul-lib-coverage: "npm:^3.0.0"
make-dir: "npm:^4.0.0"
supports-color: "npm:^7.1.0"
checksum: 10/86a83421ca1cf2109a9f6d193c06c31ef04a45e72a74579b11060b1e7bb9b6337a4e6f04abfb8857e2d569c271273c65e855ee429376a0d7c91ad91db42accd1
languageName: node
linkType: hard
"istanbul-lib-source-maps@npm:^4.0.0":
version: 4.0.1
resolution: "istanbul-lib-source-maps@npm:4.0.1"
@@ -13390,6 +13624,17 @@ __metadata:
languageName: node
linkType: hard
"istanbul-lib-source-maps@npm:^5.0.6":
version: 5.0.6
resolution: "istanbul-lib-source-maps@npm:5.0.6"
dependencies:
"@jridgewell/trace-mapping": "npm:^0.3.23"
debug: "npm:^4.1.1"
istanbul-lib-coverage: "npm:^3.0.0"
checksum: 10/569dd0a392ee3464b1fe1accbaef5cc26de3479eacb5b91d8c67ebb7b425d39fd02247d85649c3a0e9c29b600809fa60b5af5a281a75a89c01f385b1e24823a2
languageName: node
linkType: hard
"istanbul-reports@npm:^3.1.3":
version: 3.1.5
resolution: "istanbul-reports@npm:3.1.5"
@@ -13400,6 +13645,16 @@ __metadata:
languageName: node
linkType: hard
"istanbul-reports@npm:^3.1.7":
version: 3.1.7
resolution: "istanbul-reports@npm:3.1.7"
dependencies:
html-escaper: "npm:^2.0.0"
istanbul-lib-report: "npm:^3.0.0"
checksum: 10/f1faaa4684efaf57d64087776018d7426312a59aa6eeb4e0e3a777347d23cd286ad18f427e98f0e3dee666103d7404c9d7abc5f240406a912fa16bd6695437fa
languageName: node
linkType: hard
"isurl@npm:^1.0.0-alpha5":
version: 1.0.0
resolution: "isurl@npm:1.0.0"
@@ -13437,6 +13692,19 @@ __metadata:
languageName: node
linkType: hard
"jackspeak@npm:^3.1.2":
version: 3.4.3
resolution: "jackspeak@npm:3.4.3"
dependencies:
"@isaacs/cliui": "npm:^8.0.2"
"@pkgjs/parseargs": "npm:^0.11.0"
dependenciesMeta:
"@pkgjs/parseargs":
optional: true
checksum: 10/96f8786eaab98e4bf5b2a5d6d9588ea46c4d06bbc4f2eb861fdd7b6b182b16f71d8a70e79820f335d52653b16d4843b29dd9cdcf38ae80406756db9199497cf3
languageName: node
linkType: hard
"jake@npm:^10.8.5":
version: 10.8.5
resolution: "jake@npm:10.8.5"
@@ -14632,6 +14900,13 @@ __metadata:
languageName: node
linkType: hard
"loupe@npm:^3.1.0, loupe@npm:^3.1.3":
version: 3.1.3
resolution: "loupe@npm:3.1.3"
checksum: 10/9e98c34daf0eba48ccc603595e51f2ae002110982d84879cf78c51de2c632f0c571dfe82ce4210af60c32203d06b443465c269bda925076fe6d9b612cc65c321
languageName: node
linkType: hard
"lower-case@npm:^2.0.2":
version: 2.0.2
resolution: "lower-case@npm:2.0.2"
@@ -14655,6 +14930,13 @@ __metadata:
languageName: node
linkType: hard
"lru-cache@npm:^10.2.0":
version: 10.4.3
resolution: "lru-cache@npm:10.4.3"
checksum: 10/e6e90267360476720fa8e83cc168aa2bf0311f3f2eea20a6ba78b90a885ae72071d9db132f40fda4129c803e7dcec3a6b6a6fbb44ca90b081630b810b5d6a41a
languageName: node
linkType: hard
"lru-cache@npm:^11.0.2":
version: 11.0.2
resolution: "lru-cache@npm:11.0.2"
@@ -14722,6 +15004,15 @@ __metadata:
languageName: node
linkType: hard
"magic-string@npm:^0.30.17":
version: 0.30.17
resolution: "magic-string@npm:0.30.17"
dependencies:
"@jridgewell/sourcemap-codec": "npm:^1.5.0"
checksum: 10/2f71af2b0afd78c2e9012a29b066d2c8ba45a9cd0c8070f7fd72de982fb1c403b4e3afdb1dae00691d56885ede66b772ef6bedf765e02e3a7066208fe2fec4aa
languageName: node
linkType: hard
"magic-string@npm:^0.30.3, magic-string@npm:^0.30.5":
version: 0.30.5
resolution: "magic-string@npm:0.30.5"
@@ -14731,6 +15022,17 @@ __metadata:
languageName: node
linkType: hard
"magicast@npm:^0.3.5":
version: 0.3.5
resolution: "magicast@npm:0.3.5"
dependencies:
"@babel/parser": "npm:^7.25.4"
"@babel/types": "npm:^7.25.4"
source-map-js: "npm:^1.2.0"
checksum: 10/3a2dba6b0bdde957797361d09c7931ebdc1b30231705360eeb40ed458d28e1c3112841c3ed4e1b87ceb28f741e333c7673cd961193aa9fdb4f4946b202e6205a
languageName: node
linkType: hard
"make-dir@npm:^1.0.0":
version: 1.3.0
resolution: "make-dir@npm:1.3.0"
@@ -14749,6 +15051,15 @@ __metadata:
languageName: node
linkType: hard
"make-dir@npm:^4.0.0":
version: 4.0.0
resolution: "make-dir@npm:4.0.0"
dependencies:
semver: "npm:^7.5.3"
checksum: 10/bf0731a2dd3aab4db6f3de1585cea0b746bb73eb5a02e3d8d72757e376e64e6ada190b1eddcde5b2f24a81b688a9897efd5018737d05e02e2a671dda9cff8a8a
languageName: node
linkType: hard
"make-error@npm:^1.1.1":
version: 1.3.6
resolution: "make-error@npm:1.3.6"
@@ -15702,6 +16013,13 @@ __metadata:
languageName: node
linkType: hard
"minipass@npm:^7.1.2":
version: 7.1.2
resolution: "minipass@npm:7.1.2"
checksum: 10/c25f0ee8196d8e6036661104bacd743785b2599a21de5c516b32b3fa2b83113ac89a2358465bc04956baab37ffb956ae43be679b2262bf7be15fce467ccd7950
languageName: node
linkType: hard
"minizlib@npm:^2.1.1, minizlib@npm:^2.1.2":
version: 2.1.2
resolution: "minizlib@npm:2.1.2"
@@ -15805,7 +16123,7 @@ __metadata:
languageName: node
linkType: hard
"nanoid@npm:^3.3.7":
"nanoid@npm:^3.3.7, nanoid@npm:^3.3.8":
version: 3.3.11
resolution: "nanoid@npm:3.3.11"
bin:
@@ -16558,6 +16876,13 @@ __metadata:
languageName: node
linkType: hard
"package-json-from-dist@npm:^1.0.0":
version: 1.0.1
resolution: "package-json-from-dist@npm:1.0.1"
checksum: 10/58ee9538f2f762988433da00e26acc788036914d57c71c246bf0be1b60cdbd77dd60b6a3e1a30465f0b248aeb80079e0b34cb6050b1dfa18c06953bb1cbc7602
languageName: node
linkType: hard
"pako@npm:~1.0.5":
version: 1.0.11
resolution: "pako@npm:1.0.11"
@@ -16712,6 +17037,16 @@ __metadata:
languageName: node
linkType: hard
"path-scurry@npm:^1.11.1":
version: 1.11.1
resolution: "path-scurry@npm:1.11.1"
dependencies:
lru-cache: "npm:^10.2.0"
minipass: "npm:^5.0.0 || ^6.0.2 || ^7.0.0"
checksum: 10/5e8845c159261adda6f09814d7725683257fcc85a18f329880ab4d7cc1d12830967eae5d5894e453f341710d5484b8fdbbd4d75181b4d6e1eb2f4dc7aeadc434
languageName: node
linkType: hard
"path-to-regexp@npm:0.1.12":
version: 0.1.12
resolution: "path-to-regexp@npm:0.1.12"
@@ -16742,6 +17077,13 @@ __metadata:
languageName: node
linkType: hard
"pathe@npm:^2.0.3":
version: 2.0.3
resolution: "pathe@npm:2.0.3"
checksum: 10/01e9a69928f39087d96e1751ce7d6d50da8c39abf9a12e0ac2389c42c83bc76f78c45a475bd9026a02e6a6f79be63acc75667df855862fe567d99a00a540d23d
languageName: node
linkType: hard
"pathval@npm:^1.1.1":
version: 1.1.1
resolution: "pathval@npm:1.1.1"
@@ -16749,6 +17091,13 @@ __metadata:
languageName: node
linkType: hard
"pathval@npm:^2.0.0":
version: 2.0.0
resolution: "pathval@npm:2.0.0"
checksum: 10/b91575bf9cdf01757afd7b5e521eb8a0b874a49bc972d08e0047cfea0cd3c019f5614521d4bc83d2855e3fcc331db6817dfd533dd8f3d90b16bc76fad2450fc1
languageName: node
linkType: hard
"peggy@npm:3.0.2":
version: 3.0.2
resolution: "peggy@npm:3.0.2"
@@ -16943,6 +17292,17 @@ __metadata:
languageName: node
linkType: hard
"postcss@npm:^8.5.3":
version: 8.5.3
resolution: "postcss@npm:8.5.3"
dependencies:
nanoid: "npm:^3.3.8"
picocolors: "npm:^1.1.1"
source-map-js: "npm:^1.2.1"
checksum: 10/6d7e21a772e8b05bf102636918654dac097bac013f0dc8346b72ac3604fc16829646f94ea862acccd8f82e910b00e2c11c1f0ea276543565d278c7ca35516a7c
languageName: node
linkType: hard
"prebuild-install@npm:^7.1.1":
version: 7.1.1
resolution: "prebuild-install@npm:7.1.1"
@@ -19040,7 +19400,7 @@ __metadata:
languageName: node
linkType: hard
"source-map-js@npm:>=0.6.2 <2.0.0, source-map-js@npm:^1.0.1, source-map-js@npm:^1.2.1":
"source-map-js@npm:>=0.6.2 <2.0.0, source-map-js@npm:^1.0.1, source-map-js@npm:^1.2.0, source-map-js@npm:^1.2.1":
version: 1.2.1
resolution: "source-map-js@npm:1.2.1"
checksum: 10/ff9d8c8bf096d534a5b7707e0382ef827b4dd360a577d3f34d2b9f48e12c9d230b5747974ee7c607f0df65113732711bb701fe9ece3c7edbd43cb2294d707df3
@@ -19228,6 +19588,13 @@ __metadata:
languageName: node
linkType: hard
"std-env@npm:^3.8.1":
version: 3.9.0
resolution: "std-env@npm:3.9.0"
checksum: 10/3044b2c54a74be4f460db56725571241ab3ac89a91f39c7709519bc90fa37148784bc4cd7d3a301aa735f43bd174496f263563f76703ce3e81370466ab7c235b
languageName: node
linkType: hard
"stop-iteration-iterator@npm:^1.0.0":
version: 1.0.0
resolution: "stop-iteration-iterator@npm:1.0.0"
@@ -19877,6 +20244,17 @@ __metadata:
languageName: node
linkType: hard
"test-exclude@npm:^7.0.1":
version: 7.0.1
resolution: "test-exclude@npm:7.0.1"
dependencies:
"@istanbuljs/schema": "npm:^0.1.2"
glob: "npm:^10.4.1"
minimatch: "npm:^9.0.4"
checksum: 10/e6f6f4e1df2e7810e082e8d7dfc53be51a931e6e87925f5e1c2ef92cc1165246ba3bf2dae6b5d86251c16925683dba906bd41e40169ebc77120a2d1b5a0dbbe0
languageName: node
linkType: hard
"text-decoder@npm:^1.1.0":
version: 1.1.1
resolution: "text-decoder@npm:1.1.1"
@@ -19931,6 +20309,20 @@ __metadata:
languageName: node
linkType: hard
"tinybench@npm:^2.9.0":
version: 2.9.0
resolution: "tinybench@npm:2.9.0"
checksum: 10/cfa1e1418e91289219501703c4693c70708c91ffb7f040fd318d24aef419fb5a43e0c0160df9471499191968b2451d8da7f8087b08c3133c251c40d24aced06c
languageName: node
linkType: hard
"tinyexec@npm:^0.3.2":
version: 0.3.2
resolution: "tinyexec@npm:0.3.2"
checksum: 10/b9d5fed3166fb1acd1e7f9a89afcd97ccbe18b9c1af0278e429455f6976d69271ba2d21797e7c36d57d6b05025e525d2882d88c2ab435b60d1ddf2fea361de57
languageName: node
linkType: hard
"tinyglobby@npm:^0.2.0, tinyglobby@npm:^0.2.12":
version: 0.2.12
resolution: "tinyglobby@npm:0.2.12"
@@ -19948,6 +20340,20 @@ __metadata:
languageName: node
linkType: hard
"tinypool@npm:^1.0.2":
version: 1.0.2
resolution: "tinypool@npm:1.0.2"
checksum: 10/6109322f14b3763f65c8fa49fddab72cd3edd96b82dd50e05e63de74867329ff5353bff4377281ec963213d9314f37f4a353e9ee34bbac85fd4c1e4a568d6076
languageName: node
linkType: hard
"tinyrainbow@npm:^2.0.0":
version: 2.0.0
resolution: "tinyrainbow@npm:2.0.0"
checksum: 10/94d4e16246972614a5601eeb169ba94f1d49752426312d3cf8cc4f2cc663a2e354ffc653aa4de4eebccbf9eeebdd0caef52d1150271fdfde65d7ae7f3dcb9eb5
languageName: node
linkType: hard
"tinyspy@npm:^2.2.0":
version: 2.2.0
resolution: "tinyspy@npm:2.2.0"
@@ -19955,6 +20361,13 @@ __metadata:
languageName: node
linkType: hard
"tinyspy@npm:^3.0.2":
version: 3.0.2
resolution: "tinyspy@npm:3.0.2"
checksum: 10/5db671b2ff5cd309de650c8c4761ca945459d7204afb1776db9a04fb4efa28a75f08517a8620c01ee32a577748802231ad92f7d5b194dc003ee7f987a2a06337
languageName: node
linkType: hard
"tmp-promise@npm:^3.0.2":
version: 3.0.3
resolution: "tmp-promise@npm:3.0.3"
@@ -20998,6 +21411,21 @@ __metadata:
languageName: node
linkType: hard
"vite-node@npm:3.1.1":
version: 3.1.1
resolution: "vite-node@npm:3.1.1"
dependencies:
cac: "npm:^6.7.14"
debug: "npm:^4.4.0"
es-module-lexer: "npm:^1.6.0"
pathe: "npm:^2.0.3"
vite: "npm:^5.0.0 || ^6.0.0"
bin:
vite-node: vite-node.mjs
checksum: 10/8243cbc2d83f7862d7882c982e85f3e45a654908de380591edd419338c4c75a7991bd22d12b290ad892b9ea102419e81fde92c87296ec7554f89d2ff2034d5e3
languageName: node
linkType: hard
"vite-plugin-pwa@npm:^0.20.5":
version: 0.20.5
resolution: "vite-plugin-pwa@npm:0.20.5"
@@ -21078,6 +21506,61 @@ __metadata:
languageName: node
linkType: hard
"vite@npm:^5.0.0 || ^6.0.0":
version: 6.3.2
resolution: "vite@npm:6.3.2"
dependencies:
esbuild: "npm:^0.25.0"
fdir: "npm:^6.4.3"
fsevents: "npm:~2.3.3"
picomatch: "npm:^4.0.2"
postcss: "npm:^8.5.3"
rollup: "npm:^4.34.9"
tinyglobby: "npm:^0.2.12"
peerDependencies:
"@types/node": ^18.0.0 || ^20.0.0 || >=22.0.0
jiti: ">=1.21.0"
less: "*"
lightningcss: ^1.21.0
sass: "*"
sass-embedded: "*"
stylus: "*"
sugarss: "*"
terser: ^5.16.0
tsx: ^4.8.1
yaml: ^2.4.2
dependenciesMeta:
fsevents:
optional: true
peerDependenciesMeta:
"@types/node":
optional: true
jiti:
optional: true
less:
optional: true
lightningcss:
optional: true
sass:
optional: true
sass-embedded:
optional: true
stylus:
optional: true
sugarss:
optional: true
terser:
optional: true
tsx:
optional: true
yaml:
optional: true
bin:
vite: bin/vite.js
checksum: 10/05ea5e03d86d950e53af6b11e444b31846bccdc44e45b8d693d06eba7d3a4fe2e8003a6948cdbcf7e54779f7ca851f29e96be6369e9c9413d34de7539ad6af8c
languageName: node
linkType: hard
"vite@npm:^5.4.18":
version: 5.4.18
resolution: "vite@npm:5.4.18"
@@ -21171,6 +21654,59 @@ __metadata:
languageName: node
linkType: hard
"vitest@npm:^3.0.2":
version: 3.1.1
resolution: "vitest@npm:3.1.1"
dependencies:
"@vitest/expect": "npm:3.1.1"
"@vitest/mocker": "npm:3.1.1"
"@vitest/pretty-format": "npm:^3.1.1"
"@vitest/runner": "npm:3.1.1"
"@vitest/snapshot": "npm:3.1.1"
"@vitest/spy": "npm:3.1.1"
"@vitest/utils": "npm:3.1.1"
chai: "npm:^5.2.0"
debug: "npm:^4.4.0"
expect-type: "npm:^1.2.0"
magic-string: "npm:^0.30.17"
pathe: "npm:^2.0.3"
std-env: "npm:^3.8.1"
tinybench: "npm:^2.9.0"
tinyexec: "npm:^0.3.2"
tinypool: "npm:^1.0.2"
tinyrainbow: "npm:^2.0.0"
vite: "npm:^5.0.0 || ^6.0.0"
vite-node: "npm:3.1.1"
why-is-node-running: "npm:^2.3.0"
peerDependencies:
"@edge-runtime/vm": "*"
"@types/debug": ^4.1.12
"@types/node": ^18.0.0 || ^20.0.0 || >=22.0.0
"@vitest/browser": 3.1.1
"@vitest/ui": 3.1.1
happy-dom: "*"
jsdom: "*"
peerDependenciesMeta:
"@edge-runtime/vm":
optional: true
"@types/debug":
optional: true
"@types/node":
optional: true
"@vitest/browser":
optional: true
"@vitest/ui":
optional: true
happy-dom:
optional: true
jsdom:
optional: true
bin:
vitest: vitest.mjs
checksum: 10/9dc54ef6854f877ad524667a0f3798b6c97c8138bee15a3dbad76557a45e3a3e42d438140df7a9eeaa10e5da7b5eb74ba854f06ffd233fa3c9e5936f6ae42e97
languageName: node
linkType: hard
"void-elements@npm:3.1.0":
version: 3.1.0
resolution: "void-elements@npm:3.1.0"
@@ -21547,6 +22083,18 @@ __metadata:
languageName: node
linkType: hard
"why-is-node-running@npm:^2.3.0":
version: 2.3.0
resolution: "why-is-node-running@npm:2.3.0"
dependencies:
siginfo: "npm:^2.0.0"
stackback: "npm:0.0.2"
bin:
why-is-node-running: cli.js
checksum: 10/0de6e6cd8f2f94a8b5ca44e84cf1751eadcac3ebedcdc6e5fbbe6c8011904afcbc1a2777c53496ec02ced7b81f2e7eda61e76bf8262a8bc3ceaa1f6040508051
languageName: node
linkType: hard
"wide-align@npm:^1.1.2, wide-align@npm:^1.1.5":
version: 1.1.5
resolution: "wide-align@npm:1.1.5"