mirror of
https://github.com/elastic/kibana.git
synced 2025-04-24 17:59:23 -04:00
parent
a04ddbcb91
commit
85695dbd19
24 changed files with 72 additions and 56 deletions
|
@ -1,7 +1,7 @@
|
|||
# NOTE: This Dockerfile is ONLY used to run certain tasks in CI. It is not used to run Kibana or as a distributable.
|
||||
# If you're looking for the Kibana Docker image distributable, please see: src/dev/build/tasks/os_packages/docker_generator/templates/dockerfile.template.ts
|
||||
|
||||
ARG NODE_VERSION=18.18.2
|
||||
ARG NODE_VERSION=20.10.0
|
||||
|
||||
FROM node:${NODE_VERSION} AS base
|
||||
|
||||
|
|
|
@ -1 +1 @@
|
|||
18.18.2
|
||||
20.10.0
|
||||
|
|
2
.nvmrc
2
.nvmrc
|
@ -1 +1 @@
|
|||
18.18.2
|
||||
20.10.0
|
||||
|
|
|
@ -27,13 +27,13 @@ check_rules_nodejs_version(minimum_version_string = "3.8.0")
|
|||
# we can update that rule.
|
||||
node_repositories(
|
||||
node_repositories = {
|
||||
"18.18.2-darwin_amd64": ("node-v18.18.2-darwin-x64.tar.gz", "node-v18.18.2-darwin-x64", "5bb8da908ed590e256a69bf2862238c8a67bc4600119f2f7721ca18a7c810c0f"),
|
||||
"18.18.2-darwin_arm64": ("node-v18.18.2-darwin-arm64.tar.gz", "node-v18.18.2-darwin-arm64", "9f982cc91b28778dd8638e4f94563b0c2a1da7aba62beb72bd427721035ab553"),
|
||||
"18.18.2-linux_arm64": ("node-v18.18.2-linux-arm64.tar.xz", "node-v18.18.2-linux-arm64", "8a5a03f6a742159c9aa0ae3a99b368cd938cf62f3a5522a2e5acbe6313710efe"),
|
||||
"18.18.2-linux_amd64": ("node-v18.18.2-linux-x64.tar.xz", "node-v18.18.2-linux-x64", "f7cf590bc7153f3beaa9e1138d00e50d74df223f0bec61f63e7df65f7315b76a"),
|
||||
"18.18.2-windows_amd64": ("node-v18.18.2-win-x64.zip", "node-v18.18.2-win-x64", "3bb0e51e579a41a22b3bf6cb2f3e79c03801aa17acbe0ca00fc555d1282e7acd"),
|
||||
"20.10.0-darwin_amd64": ("node-v20.10.0-darwin-x64.tar.gz", "node-v20.10.0-darwin-x64", "5ff5e8abd3eea6e5f507eb6677554f5b2188eedef654096aa4168a9941e91a32"),
|
||||
"20.10.0-darwin_arm64": ("node-v20.10.0-darwin-arm64.tar.gz", "node-v20.10.0-darwin-arm64", "68b93099451d77aac116cf8fce179cabcf53fec079508dc6b39d3a086fb461a8"),
|
||||
"20.10.0-linux_arm64": ("node-v20.10.0-linux-arm64.tar.xz", "node-v20.10.0-linux-arm64", "a5c22683890d5d244f3afd488ef44e573b5b8287f8911b9a1b061ed3f20a5e6d"),
|
||||
"20.10.0-linux_amd64": ("node-v20.10.0-linux-x64.tar.xz", "node-v20.10.0-linux-x64", "9c0fbc8cc7be9a6543af4b9afb05759c538c0f81015c388d63277b0158507697"),
|
||||
"20.10.0-windows_amd64": ("node-v20.10.0-win-x64.zip", "node-v20.10.0-win-x64", "e5b861814a97e28ae7ac06a34e88fd5e0565b447d270c26e20b5ef60bf0aaaf9"),
|
||||
},
|
||||
node_version = "18.18.2",
|
||||
node_version = "20.10.0",
|
||||
node_urls = [
|
||||
"https://us-central1-elastic-kibana-184716.cloudfunctions.net/kibana-ci-proxy-cache/dist/v{version}/{filename}",
|
||||
],
|
||||
|
|
|
@ -66,11 +66,11 @@
|
|||
"url": "https://github.com/elastic/kibana.git"
|
||||
},
|
||||
"engines": {
|
||||
"node": "18.18.2",
|
||||
"node": "20.10.0",
|
||||
"yarn": "^1.21.1"
|
||||
},
|
||||
"resolutions": {
|
||||
"**/@types/node": "18.18.5",
|
||||
"**/@types/node": "20.10.6",
|
||||
"**/@types/react": "^16.14.25",
|
||||
"**/@types/react-dom": "^16.9.8",
|
||||
"**/@typescript-eslint/utils": "5.62.0",
|
||||
|
@ -576,7 +576,7 @@
|
|||
"@types/mustache": "^0.8.31",
|
||||
"@types/ncp": "^2.0.1",
|
||||
"@types/nock": "^10.0.3",
|
||||
"@types/node": "18.18.5",
|
||||
"@types/node": "20.10.6",
|
||||
"@types/node-fetch": "2.6.4",
|
||||
"@types/node-forge": "^1.3.10",
|
||||
"@types/nodemailer": "^6.4.0",
|
||||
|
|
|
@ -114,7 +114,7 @@ describe('esArchiver createParseArchiveStreams', () => {
|
|||
] as [Readable, ...Writable[]]);
|
||||
throw new Error('should have failed');
|
||||
} catch (err) {
|
||||
expect(err.message).toEqual(expect.stringContaining('Unexpected number'));
|
||||
expect(err.message).toEqual(`Expected property name or '}' in JSON at position 1`);
|
||||
}
|
||||
});
|
||||
});
|
||||
|
|
|
@ -87,11 +87,11 @@ const { ES_KEY_PATH, ES_CERT_PATH } = require('@kbn/dev-utils');
|
|||
}
|
||||
);
|
||||
|
||||
// setup server auto close after 1 second of silence
|
||||
// setup server auto close after 5 second of silence
|
||||
let serverCloseTimer;
|
||||
const delayServerClose = () => {
|
||||
clearTimeout(serverCloseTimer);
|
||||
serverCloseTimer = setTimeout(() => server.close(), 1000);
|
||||
serverCloseTimer = setTimeout(() => server.close(), 5000);
|
||||
};
|
||||
server.on('request', delayServerClose);
|
||||
server.on('listening', delayServerClose);
|
||||
|
|
|
@ -57,7 +57,7 @@ test('return error when manifest content is not a valid JSON', async () => {
|
|||
});
|
||||
|
||||
await expect(parseManifest(pluginPath, packageInfo)).rejects.toMatchObject({
|
||||
message: `Unexpected token o in JSON at position 1 (invalid-manifest, ${pluginManifestPath})`,
|
||||
message: `Unexpected token 'o', "not-json" is not valid JSON (invalid-manifest, ${pluginManifestPath})`,
|
||||
type: PluginDiscoveryErrorType.InvalidManifest,
|
||||
path: pluginManifestPath,
|
||||
});
|
||||
|
|
|
@ -234,7 +234,7 @@ describe('plugins discovery system', () => {
|
|||
.toPromise();
|
||||
|
||||
expect(errors).toContain(
|
||||
`Error: Unexpected token o in JSON at position 1 (invalid-manifest, ${manifestPath(
|
||||
`Error: Unexpected token 'o', "not-json" is not valid JSON (invalid-manifest, ${manifestPath(
|
||||
'plugin_a'
|
||||
)})`
|
||||
);
|
||||
|
|
|
@ -47,8 +47,8 @@ const packages: Package[] = [
|
|||
extractMethod: 'gunzip',
|
||||
archives: {
|
||||
'linux-x64': {
|
||||
url: 'https://us-central1-elastic-kibana-184716.cloudfunctions.net/kibana-ci-proxy-cache/node-re2/uhop/node-re2/releases/download/1.20.9/linux-x64-108.gz',
|
||||
sha256: '136b6cf61b54bf610071a950400518add65d44a4923f11ef658769df1a037f0b',
|
||||
url: 'https://us-central1-elastic-kibana-184716.cloudfunctions.net/kibana-ci-proxy-cache/node-re2/uhop/node-re2/releases/download/1.20.9/linux-x64-115.gz',
|
||||
sha256: 'b88183fe7bc8afa260d22cd909f496ab5636aace7075b54ac345d33ea32aedc0',
|
||||
},
|
||||
// Linux ARM builds are currently done manually as Github Actions used in upstream project
|
||||
// do not natively support an Linux ARM target.
|
||||
|
@ -63,20 +63,20 @@ const packages: Package[] = [
|
|||
// * capture the sha256 with: `shasum -a 256 linux-arm64-*`
|
||||
// * upload the `linux-arm64-*.gz` artifact to the `yarn-prebuilt-artifacts` bucket in GCS using the correct version number
|
||||
'linux-arm64': {
|
||||
url: 'https://us-central1-elastic-kibana-184716.cloudfunctions.net/kibana-ci-proxy-cache/node-re2/uhop/node-re2/releases/download/1.20.9/linux-arm64-108.gz',
|
||||
sha256: '311822ac689bd49a534ecf400b4732a288ad218f711b0e593e41dd3a6b739d97',
|
||||
url: 'https://us-central1-elastic-kibana-184716.cloudfunctions.net/kibana-ci-proxy-cache/node-re2/uhop/node-re2/releases/download/1.20.9/linux-arm64-115.gz',
|
||||
sha256: '6c04136a6658df3dcc5b8ac0041641c227d232bed385fe55f62c8470f8db041d',
|
||||
},
|
||||
'darwin-x64': {
|
||||
url: 'https://us-central1-elastic-kibana-184716.cloudfunctions.net/kibana-ci-proxy-cache/node-re2/uhop/node-re2/releases/download/1.20.9/darwin-x64-108.gz',
|
||||
sha256: '215b6ffb1e5d124439a7dbdd09e4ed1263e065839354a6ad67091ce00d14ee9b',
|
||||
url: 'https://us-central1-elastic-kibana-184716.cloudfunctions.net/kibana-ci-proxy-cache/node-re2/uhop/node-re2/releases/download/1.20.9/darwin-x64-115.gz',
|
||||
sha256: '1e0d79983c94222c414a5410444ec0ccf37614fd0e45187d0f313a19b203702c',
|
||||
},
|
||||
'darwin-arm64': {
|
||||
url: 'https://us-central1-elastic-kibana-184716.cloudfunctions.net/kibana-ci-proxy-cache/node-re2/uhop/node-re2/releases/download/1.20.9/darwin-arm64-108.gz',
|
||||
sha256: '0a8bc28150c9efd04f3b52ac214cc7898bde1b8e1f8e6900ae711b03665ff657',
|
||||
url: 'https://us-central1-elastic-kibana-184716.cloudfunctions.net/kibana-ci-proxy-cache/node-re2/uhop/node-re2/releases/download/1.20.9/darwin-arm64-115.gz',
|
||||
sha256: '192c8e036062504b818941989c44ddb799efe0419d039f7089caedb09d49a597',
|
||||
},
|
||||
'win32-x64': {
|
||||
url: 'https://us-central1-elastic-kibana-184716.cloudfunctions.net/kibana-ci-proxy-cache/node-re2/uhop/node-re2/releases/download/1.20.9/win32-x64-108.gz',
|
||||
sha256: '117872144e4a2bb61611aacc51ac9fd24e494c209cf63366f236099a662316eb',
|
||||
url: 'https://us-central1-elastic-kibana-184716.cloudfunctions.net/kibana-ci-proxy-cache/node-re2/uhop/node-re2/releases/download/1.20.9/win32-x64-115.gz',
|
||||
sha256: '01ae2df89f976f4097e50e121d7ec6ac62ec8050c838107dcfb976d037a60d59',
|
||||
},
|
||||
},
|
||||
},
|
||||
|
|
|
@ -717,7 +717,7 @@ describe('createStreamingBatchedFunction()', () => {
|
|||
const [, error1] = await promise1;
|
||||
const [result1] = await promise2;
|
||||
expect(error1).toMatchObject({
|
||||
message: 'Unexpected token N in JSON at position 0',
|
||||
message: `Unexpected token 'N', "Not a JSON\n" is not valid JSON`,
|
||||
code: 'STREAM',
|
||||
});
|
||||
expect(result1).toMatchObject({
|
||||
|
|
|
@ -63,7 +63,7 @@ describe('esdsl', () => {
|
|||
} catch (error) {
|
||||
errorMessage = error.message;
|
||||
}
|
||||
expect(errorMessage).toEqual('Unexpected token i in JSON at position 0');
|
||||
expect(errorMessage).toEqual(`Unexpected token 'i', "invalid json" is not valid JSON`);
|
||||
});
|
||||
|
||||
test('adds filters', async () => {
|
||||
|
|
|
@ -20,7 +20,7 @@ describe('importFile', () => {
|
|||
const file = new File([`not_parseable`], 'file.json');
|
||||
|
||||
await expect(importLegacyFile(file)).rejects.toThrowErrorMatchingInlineSnapshot(
|
||||
`"Unexpected token o in JSON at position 1"`
|
||||
`"Unexpected token 'o', \\"not_parseable\\" is not valid JSON"`
|
||||
);
|
||||
});
|
||||
});
|
||||
|
|
|
@ -52,6 +52,13 @@ var IGNORE_WARNINGS = [
|
|||
// We need to discard that warning
|
||||
name: 'ProductNotSupportedSecurityError',
|
||||
},
|
||||
// https://github.com/browserify/browserify-rsa/pull/20
|
||||
{
|
||||
name: 'DeprecationWarning',
|
||||
code: 'DEP0170',
|
||||
message:
|
||||
'The URL https://github.com:crypto-browserify/browserify-rsa.git is invalid. Future versions of Node.js will throw an error.',
|
||||
},
|
||||
];
|
||||
|
||||
if (process.noProcessWarnings !== true) {
|
||||
|
|
|
@ -486,7 +486,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
|
|||
|
||||
const errorText = await PageObjects.savedObjects.getImportErrorText();
|
||||
|
||||
expect(errorText).to.contain(`Unexpected token T in JSON at position 0`);
|
||||
expect(errorText).to.contain('is not valid JSON');
|
||||
});
|
||||
});
|
||||
});
|
||||
|
|
|
@ -223,7 +223,7 @@ describe('user action migrations', () => {
|
|||
const log = context.log as jest.Mocked<SavedObjectsMigrationLogger>;
|
||||
expect(log.error.mock.calls[0]).toMatchInlineSnapshot(`
|
||||
Array [
|
||||
"Failed to migrate user action connector with doc id: 1 version: 8.0.0 error: Unexpected token a in JSON at position 1",
|
||||
"Failed to migrate user action connector with doc id: 1 version: 8.0.0 error: Expected property name or '}' in JSON at position 1",
|
||||
Object {
|
||||
"migrations": Object {
|
||||
"userAction": Object {
|
||||
|
@ -403,7 +403,7 @@ describe('user action migrations', () => {
|
|||
const log = context.log as jest.Mocked<SavedObjectsMigrationLogger>;
|
||||
expect(log.error.mock.calls[0]).toMatchInlineSnapshot(`
|
||||
Array [
|
||||
"Failed to migrate user action connector with doc id: 1 version: 8.0.0 error: Unexpected token b in JSON at position 1",
|
||||
"Failed to migrate user action connector with doc id: 1 version: 8.0.0 error: Expected property name or '}' in JSON at position 1",
|
||||
Object {
|
||||
"migrations": Object {
|
||||
"userAction": Object {
|
||||
|
@ -585,7 +585,7 @@ describe('user action migrations', () => {
|
|||
const log = context.log as jest.Mocked<SavedObjectsMigrationLogger>;
|
||||
expect(log.error.mock.calls[0]).toMatchInlineSnapshot(`
|
||||
Array [
|
||||
"Failed to migrate user action connector with doc id: 1 version: 8.0.0 error: Unexpected token e in JSON at position 1",
|
||||
"Failed to migrate user action connector with doc id: 1 version: 8.0.0 error: Unexpected token 'e', \\"new json value\\" is not valid JSON",
|
||||
Object {
|
||||
"migrations": Object {
|
||||
"userAction": Object {
|
||||
|
|
|
@ -385,7 +385,7 @@ describe('DocumentCreationLogic', () => {
|
|||
DocumentCreationLogic.actions.onSubmitJson();
|
||||
|
||||
expect(DocumentCreationLogic.actions.setErrors).toHaveBeenCalledWith([
|
||||
'Unexpected token i in JSON at position 0',
|
||||
'Unexpected token \'i\', "invalid JSON" is not valid JSON',
|
||||
]);
|
||||
expect(DocumentCreationLogic.actions.uploadDocuments).not.toHaveBeenCalled();
|
||||
});
|
||||
|
|
|
@ -7,7 +7,8 @@
|
|||
|
||||
import Axios from 'axios';
|
||||
import { createHash } from 'crypto';
|
||||
import { closeSync, mkdirSync, openSync, writeSync } from 'fs';
|
||||
import { mkdir, open } from 'fs/promises';
|
||||
import { writeSync } from 'fs';
|
||||
import { dirname } from 'path';
|
||||
import { GenericLevelLogger } from '../../lib/level_logger';
|
||||
|
||||
|
@ -23,9 +24,8 @@ export async function download(
|
|||
|
||||
const hash = createHash('sha256');
|
||||
|
||||
mkdirSync(dirname(path), { recursive: true });
|
||||
const handle = openSync(path, 'w');
|
||||
|
||||
await mkdir(dirname(path), { recursive: true });
|
||||
const handle = await open(path, 'w');
|
||||
try {
|
||||
const resp = await Axios.request({
|
||||
url,
|
||||
|
@ -34,7 +34,7 @@ export async function download(
|
|||
});
|
||||
|
||||
resp.data.on('data', (chunk: Buffer) => {
|
||||
writeSync(handle, chunk);
|
||||
writeSync(handle.fd, chunk);
|
||||
hash.update(chunk);
|
||||
});
|
||||
|
||||
|
@ -52,7 +52,7 @@ export async function download(
|
|||
} catch (err) {
|
||||
throw new Error(`Unable to download ${url}: ${err}`);
|
||||
} finally {
|
||||
closeSync(handle);
|
||||
await handle.close();
|
||||
}
|
||||
|
||||
return hash.digest('hex');
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
*/
|
||||
|
||||
import mockFs from 'mock-fs';
|
||||
import { readFileSync } from 'fs';
|
||||
import { readFile } from 'fs/promises';
|
||||
import { ExtractError } from './extract_error';
|
||||
import { unzip } from './unzip';
|
||||
|
||||
|
@ -28,7 +28,7 @@ describe('unzip', () => {
|
|||
it('should extract zipped contents', async () => {
|
||||
await unzip('/test.zip', '/output');
|
||||
|
||||
expect(readFileSync('/output/test.txt').toString()).toEqual('test');
|
||||
await expect(readFile('/output/test.txt', 'utf8')).resolves.toBe('test');
|
||||
});
|
||||
|
||||
it('should reject on invalid archive', async () => {
|
||||
|
|
|
@ -12,7 +12,7 @@ describe('checkForParseErrors', function () {
|
|||
it('returns error from bad JSON', function () {
|
||||
const json = '{"foo": {"bar": {"baz": "buzz}}}';
|
||||
const result = checkForParseErrors(json);
|
||||
expect(result.error.message).to.be(`Unexpected end of JSON input`);
|
||||
expect(result.error.message).to.be(`Unterminated string in JSON at position 32`);
|
||||
});
|
||||
|
||||
it('returns parsed value from good JSON', function () {
|
||||
|
|
|
@ -185,7 +185,7 @@ describe.each([
|
|||
errors: [
|
||||
{
|
||||
error: {
|
||||
message: 'Unexpected token h in JSON at position 1',
|
||||
message: `Unexpected token 'h', "this is not"... is not valid JSON`,
|
||||
status_code: 400,
|
||||
},
|
||||
rule_id: '(unknown id)',
|
||||
|
|
|
@ -324,7 +324,9 @@ describe('create_rules_stream_from_ndjson', () => {
|
|||
references: [],
|
||||
version: 1,
|
||||
});
|
||||
expect(resultOrError[1].message).toEqual('Unexpected token , in JSON at position 1');
|
||||
expect(resultOrError[1].message).toEqual(
|
||||
`Expected property name or '}' in JSON at position 1`
|
||||
);
|
||||
expect(resultOrError[2]).toEqual({
|
||||
author: [],
|
||||
actions: [],
|
||||
|
|
|
@ -87,7 +87,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
|
|||
endobj
|
||||
8 0 obj
|
||||
<<
|
||||
/Length 149
|
||||
/Length 158
|
||||
/Filter /FlateDecode
|
||||
>>
|
||||
"
|
||||
|
@ -131,7 +131,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
|
|||
endobj
|
||||
9 0 obj
|
||||
<<
|
||||
/Length 270
|
||||
/Length 268
|
||||
/Filter /FlateDecode
|
||||
>>
|
||||
"
|
||||
|
@ -192,14 +192,14 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
|
|||
endobj
|
||||
21 0 obj
|
||||
<<
|
||||
/Length 250
|
||||
/Length 254
|
||||
/Filter /FlateDecode
|
||||
>>
|
||||
"
|
||||
`);
|
||||
|
||||
const contentLength = parseInt(res.get('content-length'), 10);
|
||||
expect(contentLength >= 20725 && contentLength <= 20726).to.be(true); // contentLength can be between 20725 and 20726
|
||||
expect(contentLength >= 20723 && contentLength <= 20724).to.be(true); // contentLength can be between 20723 and 20724
|
||||
});
|
||||
|
||||
it('downloaded PDF base64 string is correct without borders and logo', async function () {
|
||||
|
@ -261,7 +261,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
|
|||
endobj
|
||||
6 0 obj
|
||||
<<
|
||||
/Length 45
|
||||
/Length 47
|
||||
/Filter /FlateDecode
|
||||
>>
|
||||
"
|
||||
|
@ -348,7 +348,7 @@ export default function ({ getService, getPageObjects }: FtrProviderContext) {
|
|||
"
|
||||
`);
|
||||
|
||||
expect(res.get('content-length')).to.be('1598');
|
||||
expect(res.get('content-length')).to.be('1600');
|
||||
});
|
||||
});
|
||||
});
|
||||
|
|
15
yarn.lock
15
yarn.lock
|
@ -6157,10 +6157,12 @@
|
|||
dependencies:
|
||||
"@types/node" "*"
|
||||
|
||||
"@types/node@*", "@types/node@18.18.5", "@types/node@>= 8", "@types/node@>=18.0.0", "@types/node@^10.1.0", "@types/node@^14.0.10 || ^16.0.0", "@types/node@^14.14.20 || ^16.0.0", "@types/node@^18.17.5":
|
||||
version "18.18.5"
|
||||
resolved "https://registry.yarnpkg.com/@types/node/-/node-18.18.5.tgz#afc0fd975df946d6e1add5bbf98264225b212244"
|
||||
integrity sha512-4slmbtwV59ZxitY4ixUZdy1uRLf9eSIvBWPQxNjhHYWEtn0FryfKpyS2cvADYXTayWdKEIsJengncrVvkI4I6A==
|
||||
"@types/node@*", "@types/node@20.10.6", "@types/node@>= 8", "@types/node@>=18.0.0", "@types/node@^10.1.0", "@types/node@^14.0.10 || ^16.0.0", "@types/node@^14.14.20 || ^16.0.0", "@types/node@^18.17.5":
|
||||
version "20.10.6"
|
||||
resolved "https://registry.yarnpkg.com/@types/node/-/node-20.10.6.tgz#a3ec84c22965802bf763da55b2394424f22bfbb5"
|
||||
integrity sha512-Vac8H+NlRNNlAmDfGUP7b5h/KA+AtWIzuXy0E6OyP8f1tCLYAtPvKRRDJjAPqhpCb0t6U2j7/xqAuLEebW2kiw==
|
||||
dependencies:
|
||||
undici-types "~5.26.4"
|
||||
|
||||
"@types/nodemailer@^6.4.0":
|
||||
version "6.4.0"
|
||||
|
@ -27669,6 +27671,11 @@ undertaker@^1.2.1:
|
|||
object.reduce "^1.0.0"
|
||||
undertaker-registry "^1.0.0"
|
||||
|
||||
undici-types@~5.26.4:
|
||||
version "5.26.5"
|
||||
resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-5.26.5.tgz#bcd539893d00b56e964fd2657a4866b221a65617"
|
||||
integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==
|
||||
|
||||
undici@^5.21.2:
|
||||
version "5.26.3"
|
||||
resolved "https://registry.yarnpkg.com/undici/-/undici-5.26.3.tgz#ab3527b3d5bb25b12f898dfd22165d472dd71b79"
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue