mirror of
https://gitea.com/actions/setup-java.git
synced 2026-10-02 21:25:25 +08:00
chore(deps): bump the monthly-npm-updates group with 13 updates (#1276)
* chore(deps): bump the monthly-npm-updates group with 13 updates Bumps the monthly-npm-updates group with 13 updates: | Package | From | To | | --- | --- | --- | | [fast-xml-parser](https://github.com/NaturalIntelligence/fast-xml-parser) | `5.11.0` | `5.11.1` | | [@jest/globals](https://github.com/jestjs/jest/tree/HEAD/packages/jest-globals) | `30.4.1` | `30.5.2` | | [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) | `26.2.0` | `26.6.2` | | [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin) | `8.67.0` | `8.70.1` | | [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) | `8.67.0` | `8.70.1` | | [eslint](https://github.com/eslint/eslint) | `10.8.1` | `10.11.0` | | [eslint-plugin-jest](https://github.com/jest-community/eslint-plugin-jest) | `29.16.1` | `29.16.6` | | [globals](https://github.com/sindresorhus/globals) | `17.11.0` | `17.12.0` | | [jest](https://github.com/jestjs/jest/tree/HEAD/packages/jest) | `30.4.2` | `30.5.2` | | [lint-staged](https://github.com/lint-staged/lint-staged) | `17.3.0` | `17.5.1` | | [prettier](https://github.com/prettier/prettier) | `3.9.6` | `3.9.9` | | [ts-jest](https://github.com/kulshekhar/ts-jest) | `29.4.12` | `29.4.13` | | [typescript](https://github.com/microsoft/TypeScript) | `6.0.3` | `7.0.2` | Updates `fast-xml-parser` from 5.11.0 to 5.11.1 - [Release notes](https://github.com/NaturalIntelligence/fast-xml-parser/releases) - [Changelog](https://github.com/NaturalIntelligence/fast-xml-parser/blob/master/CHANGELOG.md) - [Commits](https://github.com/NaturalIntelligence/fast-xml-parser/compare/v5.11.0...v5.11.1) Updates `@jest/globals` from 30.4.1 to 30.5.2 - [Release notes](https://github.com/jestjs/jest/releases) - [Changelog](https://github.com/jestjs/jest/blob/main/CHANGELOG.md) - [Commits](https://github.com/jestjs/jest/commits/v30.5.2/packages/jest-globals) Updates `@types/node` from 26.2.0 to 26.6.2 - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node) Updates `@typescript-eslint/eslint-plugin` from 8.67.0 to 8.70.1 - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.70.1/packages/eslint-plugin) Updates `@typescript-eslint/parser` from 8.67.0 to 8.70.1 - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.70.1/packages/parser) Updates `eslint` from 10.8.1 to 10.11.0 - [Release notes](https://github.com/eslint/eslint/releases) - [Commits](https://github.com/eslint/eslint/compare/v10.8.1...v10.11.0) Updates `eslint-plugin-jest` from 29.16.1 to 29.16.6 - [Release notes](https://github.com/jest-community/eslint-plugin-jest/releases) - [Changelog](https://github.com/jest-community/eslint-plugin-jest/blob/main/CHANGELOG.md) - [Commits](https://github.com/jest-community/eslint-plugin-jest/compare/v29.16.1...v29.16.6) Updates `globals` from 17.11.0 to 17.12.0 - [Release notes](https://github.com/sindresorhus/globals/releases) - [Commits](https://github.com/sindresorhus/globals/compare/v17.11.0...v17.12.0) Updates `jest` from 30.4.2 to 30.5.2 - [Release notes](https://github.com/jestjs/jest/releases) - [Changelog](https://github.com/jestjs/jest/blob/main/CHANGELOG.md) - [Commits](https://github.com/jestjs/jest/commits/v30.5.2/packages/jest) Updates `lint-staged` from 17.3.0 to 17.5.1 - [Release notes](https://github.com/lint-staged/lint-staged/releases) - [Changelog](https://github.com/lint-staged/lint-staged/blob/main/CHANGELOG.md) - [Commits](https://github.com/lint-staged/lint-staged/compare/v17.3.0...v17.5.1) Updates `prettier` from 3.9.6 to 3.9.9 - [Release notes](https://github.com/prettier/prettier/releases) - [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md) - [Commits](https://github.com/prettier/prettier/compare/3.9.6...3.9.9) Updates `ts-jest` from 29.4.12 to 29.4.13 - [Release notes](https://github.com/kulshekhar/ts-jest/releases) - [Changelog](https://github.com/kulshekhar/ts-jest/blob/main/CHANGELOG.md) - [Commits](https://github.com/kulshekhar/ts-jest/compare/v29.4.12...v29.4.13) Updates `typescript` from 6.0.3 to 7.0.2 - [Release notes](https://github.com/microsoft/TypeScript/releases) - [Commits](https://github.com/microsoft/TypeScript/compare/v6.0.3...v7.0.2) --- updated-dependencies: - dependency-name: fast-xml-parser dependency-version: 5.11.1 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: monthly-npm-updates - dependency-name: "@jest/globals" dependency-version: 30.5.2 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: monthly-npm-updates - dependency-name: "@types/node" dependency-version: 26.6.2 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: monthly-npm-updates - dependency-name: "@typescript-eslint/eslint-plugin" dependency-version: 8.70.1 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: monthly-npm-updates - dependency-name: "@typescript-eslint/parser" dependency-version: 8.70.1 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: monthly-npm-updates - dependency-name: eslint dependency-version: 10.11.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: monthly-npm-updates - dependency-name: eslint-plugin-jest dependency-version: 29.16.6 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: monthly-npm-updates - dependency-name: globals dependency-version: 17.12.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: monthly-npm-updates - dependency-name: jest dependency-version: 30.5.2 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: monthly-npm-updates - dependency-name: lint-staged dependency-version: 17.5.1 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: monthly-npm-updates - dependency-name: prettier dependency-version: 3.9.9 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: monthly-npm-updates - dependency-name: ts-jest dependency-version: 29.4.13 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: monthly-npm-updates - dependency-name: typescript dependency-version: 7.0.2 dependency-type: direct:development update-type: version-update:semver-major dependency-group: monthly-npm-updates ... Signed-off-by: dependabot[bot] <support@github.com> * Fix monthly npm update checks Keep TypeScript on the compatible 6.x line for the current @typescript-eslint peer range, rebuild dist, and refresh the fast-xml-parser license cache. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> * Fix monthly npm validation failures Update vulnerable transitive packages in the lockfile, rebuild dist, and correct the JetBrains test expectation for mocked Windows availability. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> * chore: update licensed cache for npm updates Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Bruno Borges <brborges@microsoft.com> Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
This commit is contained in:
Generated
+1
-1
@@ -1,6 +1,6 @@
|
||||
---
|
||||
name: fast-xml-parser
|
||||
version: 5.11.0
|
||||
version: 5.11.1
|
||||
type: npm
|
||||
summary: Validate XML, Parse XML, Build XML without C/C++ based libraries
|
||||
homepage:
|
||||
|
||||
@@ -14,7 +14,6 @@ import type {IncomingMessage} from 'http';
|
||||
import {Readable} from 'stream';
|
||||
|
||||
import manifestData from '../data/jetbrains.json' with {type: 'json'};
|
||||
import os from 'os';
|
||||
|
||||
// Mock @actions/core before importing source modules that depend on it
|
||||
jest.unstable_mockModule('@actions/core', () => ({
|
||||
@@ -81,6 +80,7 @@ describe('getAvailableVersions', () => {
|
||||
jest.setTimeout(10_000);
|
||||
|
||||
let spyHttpClient: any;
|
||||
let spyHttpClientHead: any;
|
||||
let spyCoreError: any;
|
||||
const originalGitHubToken = process.env.GITHUB_TOKEN;
|
||||
|
||||
@@ -93,6 +93,10 @@ describe('getAvailableVersions', () => {
|
||||
headers: {},
|
||||
result: []
|
||||
});
|
||||
spyHttpClientHead = jest.spyOn(HttpClient.prototype, 'head');
|
||||
spyHttpClientHead.mockResolvedValue({
|
||||
message: {statusCode: 200}
|
||||
} as any);
|
||||
|
||||
// Mock core.error to suppress error logs
|
||||
spyCoreError = core.error as jest.Mock;
|
||||
@@ -133,9 +137,7 @@ describe('getAvailableVersions', () => {
|
||||
const availableVersions = await distribution['getAvailableVersions']();
|
||||
expect(availableVersions).not.toBeNull();
|
||||
|
||||
const length =
|
||||
os.platform() === 'win32' ? manifestData.length : manifestData.length + 2;
|
||||
expect(availableVersions.length).toBe(length);
|
||||
expect(availableVersions.length).toBe(manifestData.length + 2);
|
||||
}, 10_000);
|
||||
|
||||
it('continues a stable request after an all-prerelease page', async () => {
|
||||
@@ -358,6 +360,7 @@ describe('getAvailableVersions', () => {
|
||||
|
||||
it('retries a GitHub rate limit using Retry-After', async () => {
|
||||
spyHttpClient.mockRestore();
|
||||
spyHttpClientHead.mockRestore();
|
||||
const sleep = jest.fn(async () => undefined);
|
||||
const requestRaw = jest
|
||||
.spyOn(HttpClient.prototype, 'requestRaw')
|
||||
|
||||
Vendored
+96
-4
@@ -18360,9 +18360,102 @@ function readAttributeStr(xmlData, i) {
|
||||
}
|
||||
|
||||
/**
|
||||
* Select all the attributes whether valid or invalid.
|
||||
* Walk `attrStr` once, left to right, splitting it into attribute tokens.
|
||||
*
|
||||
* This replaces a regex that used to do the same job
|
||||
* (`(\s*)([^\s=]+)(\s*=)?(\s*(['"])(([\s\S])*?)\5)?`). That regex led with an
|
||||
* optional whitespace group followed by a required "non-whitespace" group.
|
||||
* On a long run of whitespace that never resolves into an attribute name
|
||||
* (e.g. a tag with thousands of trailing spaces before `>`), the engine
|
||||
* backtracks the whitespace group one character at a time before giving up
|
||||
* and moving to the next starting position — one full backtrack per
|
||||
* position, which is quadratic in the length of the run.
|
||||
*
|
||||
* A single forward-only scan can never backtrack, so it can't be made slow
|
||||
* this way no matter how much whitespace the input contains — it's always
|
||||
* proportional to the length of the string, once.
|
||||
*
|
||||
* Each returned token mirrors the shape the old regex match array had, so
|
||||
* the validation logic below (which reads token[1]..token[6]) didn't need
|
||||
* to change:
|
||||
* token.startIndex - where this token begins in attrStr
|
||||
* token[1] - leading whitespace before the name
|
||||
* token[2] - the attribute name
|
||||
* token[3] - whitespace + '=' if present, else undefined
|
||||
* token[4] - marker (any defined value) if a quoted value was found
|
||||
* token[5] - the quote character used ('"' or "'")
|
||||
* token[6] - the value's text, without the surrounding quotes
|
||||
*
|
||||
* A malformed leading character (e.g. a stray '=' with no name before it)
|
||||
* is simply skipped over, one character at a time — the same outcome the
|
||||
* old regex produced by failing to match at that position and retrying at
|
||||
* the next one.
|
||||
*/
|
||||
const validAttrStrRegxp = new RegExp('(\\s*)([^\\s=]+)(\\s*=)?(\\s*([\'"])(([\\s\\S])*?)\\5)?', 'g');
|
||||
function scanAttributeTokens(attrStr) {
|
||||
const tokens = [];
|
||||
const len = attrStr.length;
|
||||
let i = 0;
|
||||
|
||||
while (i < len) {
|
||||
const tokenStart = i;
|
||||
|
||||
// Leading whitespace before the name.
|
||||
while (i < len && isWhiteSpace(attrStr[i])) i++;
|
||||
if (i >= len) break; // trailing whitespace only — nothing left to read
|
||||
|
||||
if (attrStr[i] === '=') {
|
||||
// No name before this '=' — not a valid attribute start. Move past
|
||||
// just this one character and try again from the next position.
|
||||
i = tokenStart + 1;
|
||||
continue;
|
||||
}
|
||||
|
||||
const leadingWs = attrStr.slice(tokenStart, i);
|
||||
|
||||
// Attribute name — everything up to the next whitespace or '='.
|
||||
const nameStart = i;
|
||||
while (i < len && !isWhiteSpace(attrStr[i]) && attrStr[i] !== '=') i++;
|
||||
const name = attrStr.slice(nameStart, i);
|
||||
|
||||
// Optional whitespace + '='.
|
||||
let equalsGroup; // whitespace + '=' text, or undefined if absent
|
||||
let j = i;
|
||||
while (j < len && isWhiteSpace(attrStr[j])) j++;
|
||||
if (j < len && attrStr[j] === '=') {
|
||||
equalsGroup = attrStr.slice(i, j + 1);
|
||||
i = j + 1;
|
||||
}
|
||||
|
||||
// Optional whitespace + quoted value.
|
||||
let quoteChar;
|
||||
let value;
|
||||
let k = i;
|
||||
while (k < len && isWhiteSpace(attrStr[k])) k++;
|
||||
if (k < len && (attrStr[k] === '"' || attrStr[k] === "'")) {
|
||||
const valueStart = k + 1;
|
||||
const closeIdx = attrStr.indexOf(attrStr[k], valueStart);
|
||||
if (closeIdx !== -1) {
|
||||
quoteChar = attrStr[k];
|
||||
value = attrStr.slice(valueStart, closeIdx);
|
||||
i = closeIdx + 1;
|
||||
}
|
||||
// No closing quote found anywhere in the rest of the string — leave
|
||||
// quoteChar/value undefined, same as the old regex's group failing
|
||||
// to match a backreference-less run.
|
||||
}
|
||||
|
||||
const token = { startIndex: tokenStart };
|
||||
token[1] = leadingWs;
|
||||
token[2] = name;
|
||||
token[3] = equalsGroup;
|
||||
token[4] = quoteChar !== undefined ? true : undefined;
|
||||
token[5] = quoteChar;
|
||||
token[6] = value;
|
||||
tokens.push(token);
|
||||
}
|
||||
|
||||
return tokens;
|
||||
}
|
||||
|
||||
//attr, ="sd", a="amit's", a="sd"b="saf", ab cd=""
|
||||
|
||||
@@ -18371,7 +18464,7 @@ function validateAttributeString(attrStr, options) {
|
||||
|
||||
//if(attrStr.trim().length === 0) return true; //empty string
|
||||
|
||||
const matches = getAllMatches(attrStr, validAttrStrRegxp);
|
||||
const matches = scanAttributeTokens(attrStr);
|
||||
const attrNames = {};
|
||||
|
||||
for (let i = 0; i < matches.length; i++) {
|
||||
@@ -18473,7 +18566,6 @@ function getLineNumberForPosition(xmlData, index) {
|
||||
function getPositionFromMatch(match) {
|
||||
return match.startIndex + match[1].length;
|
||||
}
|
||||
|
||||
;// CONCATENATED MODULE: ./node_modules/fast-xml-parser/src/fxp.js
|
||||
|
||||
|
||||
|
||||
Vendored
+96
-4
@@ -418,9 +418,102 @@ function readAttributeStr(xmlData, i) {
|
||||
}
|
||||
|
||||
/**
|
||||
* Select all the attributes whether valid or invalid.
|
||||
* Walk `attrStr` once, left to right, splitting it into attribute tokens.
|
||||
*
|
||||
* This replaces a regex that used to do the same job
|
||||
* (`(\s*)([^\s=]+)(\s*=)?(\s*(['"])(([\s\S])*?)\5)?`). That regex led with an
|
||||
* optional whitespace group followed by a required "non-whitespace" group.
|
||||
* On a long run of whitespace that never resolves into an attribute name
|
||||
* (e.g. a tag with thousands of trailing spaces before `>`), the engine
|
||||
* backtracks the whitespace group one character at a time before giving up
|
||||
* and moving to the next starting position — one full backtrack per
|
||||
* position, which is quadratic in the length of the run.
|
||||
*
|
||||
* A single forward-only scan can never backtrack, so it can't be made slow
|
||||
* this way no matter how much whitespace the input contains — it's always
|
||||
* proportional to the length of the string, once.
|
||||
*
|
||||
* Each returned token mirrors the shape the old regex match array had, so
|
||||
* the validation logic below (which reads token[1]..token[6]) didn't need
|
||||
* to change:
|
||||
* token.startIndex - where this token begins in attrStr
|
||||
* token[1] - leading whitespace before the name
|
||||
* token[2] - the attribute name
|
||||
* token[3] - whitespace + '=' if present, else undefined
|
||||
* token[4] - marker (any defined value) if a quoted value was found
|
||||
* token[5] - the quote character used ('"' or "'")
|
||||
* token[6] - the value's text, without the surrounding quotes
|
||||
*
|
||||
* A malformed leading character (e.g. a stray '=' with no name before it)
|
||||
* is simply skipped over, one character at a time — the same outcome the
|
||||
* old regex produced by failing to match at that position and retrying at
|
||||
* the next one.
|
||||
*/
|
||||
const validAttrStrRegxp = new RegExp('(\\s*)([^\\s=]+)(\\s*=)?(\\s*([\'"])(([\\s\\S])*?)\\5)?', 'g');
|
||||
function scanAttributeTokens(attrStr) {
|
||||
const tokens = [];
|
||||
const len = attrStr.length;
|
||||
let i = 0;
|
||||
|
||||
while (i < len) {
|
||||
const tokenStart = i;
|
||||
|
||||
// Leading whitespace before the name.
|
||||
while (i < len && isWhiteSpace(attrStr[i])) i++;
|
||||
if (i >= len) break; // trailing whitespace only — nothing left to read
|
||||
|
||||
if (attrStr[i] === '=') {
|
||||
// No name before this '=' — not a valid attribute start. Move past
|
||||
// just this one character and try again from the next position.
|
||||
i = tokenStart + 1;
|
||||
continue;
|
||||
}
|
||||
|
||||
const leadingWs = attrStr.slice(tokenStart, i);
|
||||
|
||||
// Attribute name — everything up to the next whitespace or '='.
|
||||
const nameStart = i;
|
||||
while (i < len && !isWhiteSpace(attrStr[i]) && attrStr[i] !== '=') i++;
|
||||
const name = attrStr.slice(nameStart, i);
|
||||
|
||||
// Optional whitespace + '='.
|
||||
let equalsGroup; // whitespace + '=' text, or undefined if absent
|
||||
let j = i;
|
||||
while (j < len && isWhiteSpace(attrStr[j])) j++;
|
||||
if (j < len && attrStr[j] === '=') {
|
||||
equalsGroup = attrStr.slice(i, j + 1);
|
||||
i = j + 1;
|
||||
}
|
||||
|
||||
// Optional whitespace + quoted value.
|
||||
let quoteChar;
|
||||
let value;
|
||||
let k = i;
|
||||
while (k < len && isWhiteSpace(attrStr[k])) k++;
|
||||
if (k < len && (attrStr[k] === '"' || attrStr[k] === "'")) {
|
||||
const valueStart = k + 1;
|
||||
const closeIdx = attrStr.indexOf(attrStr[k], valueStart);
|
||||
if (closeIdx !== -1) {
|
||||
quoteChar = attrStr[k];
|
||||
value = attrStr.slice(valueStart, closeIdx);
|
||||
i = closeIdx + 1;
|
||||
}
|
||||
// No closing quote found anywhere in the rest of the string — leave
|
||||
// quoteChar/value undefined, same as the old regex's group failing
|
||||
// to match a backreference-less run.
|
||||
}
|
||||
|
||||
const token = { startIndex: tokenStart };
|
||||
token[1] = leadingWs;
|
||||
token[2] = name;
|
||||
token[3] = equalsGroup;
|
||||
token[4] = quoteChar !== undefined ? true : undefined;
|
||||
token[5] = quoteChar;
|
||||
token[6] = value;
|
||||
tokens.push(token);
|
||||
}
|
||||
|
||||
return tokens;
|
||||
}
|
||||
|
||||
//attr, ="sd", a="amit's", a="sd"b="saf", ab cd=""
|
||||
|
||||
@@ -429,7 +522,7 @@ function validateAttributeString(attrStr, options) {
|
||||
|
||||
//if(attrStr.trim().length === 0) return true; //empty string
|
||||
|
||||
const matches = (0,_util_js__WEBPACK_IMPORTED_MODULE_0__/* .getAllMatches */ .Xe)(attrStr, validAttrStrRegxp);
|
||||
const matches = scanAttributeTokens(attrStr);
|
||||
const attrNames = {};
|
||||
|
||||
for (let i = 0; i < matches.length; i++) {
|
||||
@@ -532,7 +625,6 @@ function getPositionFromMatch(match) {
|
||||
return match.startIndex + match[1].length;
|
||||
}
|
||||
|
||||
|
||||
/***/ }),
|
||||
|
||||
/***/ 6009:
|
||||
|
||||
Generated
+982
-637
File diff suppressed because it is too large
Load Diff
+11
-11
@@ -49,27 +49,27 @@
|
||||
"@actions/http-client": "^4.0.1",
|
||||
"@actions/io": "^3.0.2",
|
||||
"@actions/tool-cache": "^4.0.0",
|
||||
"fast-xml-parser": "^5.11.0",
|
||||
"fast-xml-parser": "^5.11.1",
|
||||
"semver": "^7.8.5"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@eslint/js": "^10.0.1",
|
||||
"@jest/globals": "^30.4.1",
|
||||
"@types/node": "^26.2.0",
|
||||
"@jest/globals": "^30.5.2",
|
||||
"@types/node": "^26.6.2",
|
||||
"@types/semver": "^7.8.0",
|
||||
"@typescript-eslint/eslint-plugin": "^8.67.0",
|
||||
"@typescript-eslint/eslint-plugin": "^8.70.1",
|
||||
"@typescript-eslint/parser": "^8.65.0",
|
||||
"@vercel/ncc": "^0.45.0",
|
||||
"eslint": "^10.8.1",
|
||||
"eslint": "^10.11.0",
|
||||
"eslint-config-prettier": "^10.1.8",
|
||||
"eslint-plugin-jest": "^29.16.1",
|
||||
"eslint-plugin-jest": "^29.16.6",
|
||||
"eslint-plugin-n": "^18.3.0",
|
||||
"globals": "^17.11.0",
|
||||
"globals": "^17.12.0",
|
||||
"husky": "^9.1.7",
|
||||
"jest": "^30.4.2",
|
||||
"lint-staged": "^17.3.0",
|
||||
"prettier": "^3.9.5",
|
||||
"ts-jest": "^29.4.11",
|
||||
"jest": "^30.5.2",
|
||||
"lint-staged": "^17.5.1",
|
||||
"prettier": "^3.9.9",
|
||||
"ts-jest": "^29.4.13",
|
||||
"typescript": "^6.0.3"
|
||||
},
|
||||
"bugs": {
|
||||
|
||||
Reference in New Issue
Block a user