Upgrade Node.js from v16.18.1 to v18.13.0 (#144012)

Closes #134930

Breaking changes in Node.js majors:

- `17.0.0`:
https://github.com/nodejs/node/blob/main/doc/changelogs/CHANGELOG_V17.md#17.0.0
- `18.0.0`:
https://github.com/nodejs/node/blob/main/doc/changelogs/CHANGELOG_V18.md#18.0.0
This commit is contained in:
Thomas Watson 2023-01-17 21:04:23 +01:00 committed by GitHub
parent 7764a7514f
commit b345f75634
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
26 changed files with 177 additions and 108 deletions

View file

@ -16,12 +16,12 @@
"tslib": "*" "tslib": "*"
}, },
"devDependencies": { "devDependencies": {
"@types/chai": "^4.2.10", "@types/chai": "^4.3.3",
"@types/js-yaml": "^4.0.5", "@types/js-yaml": "^4.0.5",
"@types/minimatch": "^3.0.5", "@types/minimatch": "^3.0.5",
"@types/mocha": "^10.0.1", "@types/mocha": "^10.0.1",
"@types/node": "^15.12.2", "@types/node": "^15.12.2",
"chai": "^4.2.0", "chai": "^4.3.6",
"mocha": "^10.2.0", "mocha": "^10.2.0",
"nock": "^12.0.2", "nock": "^12.0.2",
"ts-node": "^10.7.0", "ts-node": "^10.7.0",
@ -242,9 +242,9 @@
"dev": true "dev": true
}, },
"node_modules/@types/chai": { "node_modules/@types/chai": {
"version": "4.3.1", "version": "4.3.3",
"resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.1.tgz", "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.3.tgz",
"integrity": "sha512-/zPMqDkzSZ8t3VtxOa4KPq7uzzW978M9Tvh+j7GHKuo6k6GTLxPJ4J5gE5cjfJ26pnXst0N5Hax8Sr0T2Mi9zQ==", "integrity": "sha512-hC7OMnszpxhZPduX+m+nrx+uFoLkWOMiR4oa/AZF3MuSETYTZmFfJAHqZEM8MVlvfG7BEUcgvtwoCTxBp6hm3g==",
"dev": true "dev": true
}, },
"node_modules/@types/js-yaml": { "node_modules/@types/js-yaml": {
@ -1847,9 +1847,9 @@
"dev": true "dev": true
}, },
"@types/chai": { "@types/chai": {
"version": "4.3.1", "version": "4.3.3",
"resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.1.tgz", "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.3.tgz",
"integrity": "sha512-/zPMqDkzSZ8t3VtxOa4KPq7uzzW978M9Tvh+j7GHKuo6k6GTLxPJ4J5gE5cjfJ26pnXst0N5Hax8Sr0T2Mi9zQ==", "integrity": "sha512-hC7OMnszpxhZPduX+m+nrx+uFoLkWOMiR4oa/AZF3MuSETYTZmFfJAHqZEM8MVlvfG7BEUcgvtwoCTxBp6hm3g==",
"dev": true "dev": true
}, },
"@types/js-yaml": { "@types/js-yaml": {

View file

@ -15,12 +15,12 @@
"tslib": "*" "tslib": "*"
}, },
"devDependencies": { "devDependencies": {
"@types/chai": "^4.2.10", "@types/chai": "^4.3.3",
"@types/js-yaml": "^4.0.5", "@types/js-yaml": "^4.0.5",
"@types/minimatch": "^3.0.5", "@types/minimatch": "^3.0.5",
"@types/mocha": "^10.0.1", "@types/mocha": "^10.0.1",
"@types/node": "^15.12.2", "@types/node": "^15.12.2",
"chai": "^4.2.0", "chai": "^4.3.6",
"mocha": "^10.2.0", "mocha": "^10.2.0",
"nock": "^12.0.2", "nock": "^12.0.2",
"ts-node": "^10.7.0", "ts-node": "^10.7.0",

View file

@ -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. # 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 # 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=16.18.1 ARG NODE_VERSION=18.13.0
FROM node:${NODE_VERSION} AS base FROM node:${NODE_VERSION} AS base

View file

@ -1 +1 @@
16.18.1 18.13.0

2
.nvmrc
View file

@ -1 +1 @@
16.18.1 18.13.0

View file

@ -22,13 +22,13 @@ load("@build_bazel_rules_nodejs//:index.bzl", "node_repositories", "yarn_install
# Setup the Node.js toolchain for the architectures we want to support # Setup the Node.js toolchain for the architectures we want to support
node_repositories( node_repositories(
node_repositories = { node_repositories = {
"16.18.1-darwin_amd64": ("node-v16.18.1-darwin-x64.tar.gz", "node-v16.18.1-darwin-x64", "c190e106d4ac6177d1db3a5a739d39dd68bd276ba17f3d3c84039a93717e081e"), "18.13.0-darwin_amd64": ("node-v18.13.0-darwin-x64.tar.gz", "node-v18.13.0-darwin-x64", "8b57c4da4ff6cca19d5ef7953f8816e3406d1508a2e4ee7f997984b3b1d11b77"),
"16.18.1-darwin_arm64": ("node-v16.18.1-darwin-arm64.tar.gz", "node-v16.18.1-darwin-arm64", "71720bb0a80cf158d8fdf492def08048befd953ad45e2458b1d095e32c612ba7"), "18.13.0-darwin_arm64": ("node-v18.13.0-darwin-arm64.tar.gz", "node-v18.13.0-darwin-arm64", "418d535e64dbcbd628715180c2de4ffcecb8a84b81f233c60e6ab9f0d795c249"),
"16.18.1-linux_arm64": ("node-v16.18.1-linux-arm64.tar.xz", "node-v16.18.1-linux-arm64", "98d81a2d08f88646541d282b7ccc32429f8706ddcb30943fc3779ef9674ebb93"), "18.13.0-linux_arm64": ("node-v18.13.0-linux-arm64.tar.xz", "node-v18.13.0-linux-arm64", "5b338667822341d1ea3b18d5b37d442a655829b9eafdc5f9008f00b8451ac148"),
"16.18.1-linux_amd64": ("node-v16.18.1-linux-x64.tar.xz", "node-v16.18.1-linux-x64", "de2c694e7081c37022817d27a65b02f69ecf4c49699d65585e8e24431b7bc920"), "18.13.0-linux_amd64": ("node-v18.13.0-linux-x64.tar.xz", "node-v18.13.0-linux-x64", "7f5d6922a91986ef059ba8a4396aa435440adacfe6fc6fab60a857c8f2cf5e7a"),
"16.18.1-windows_amd64": ("node-v16.18.1-win-x64.zip", "node-v16.18.1-win-x64", "db6a81de8e8ca3444495f1bcf04a883c076b4325d0fbaa032a190f88b38b30c5"), "18.13.0-windows_amd64": ("node-v18.13.0-win-x64.zip", "node-v18.13.0-win-x64", "29c99ad1167ddbd72f2b15e91b560e36ac785b1873ba6791ab50d9d62f1957e2"),
}, },
node_version = "16.18.1", node_version = "18.13.0",
node_urls = [ node_urls = [
"https://nodejs.org/dist/v{version}/{filename}", "https://nodejs.org/dist/v{version}/{filename}",
], ],

View file

@ -13,11 +13,11 @@ These files must be updated when upgrading Node.js:
If they are not, and the update is urgent, you can skip this file and update it later once Docker Hub has been updated. If they are not, and the update is urgent, you can skip this file and update it later once Docker Hub has been updated.
- {kib-repo}blob/{branch}/.node-version[`.node-version`] - {kib-repo}blob/{branch}/.node-version[`.node-version`]
- {kib-repo}blob/{branch}/.nvmrc[`.nvmrc`] - {kib-repo}blob/{branch}/.nvmrc[`.nvmrc`]
- {kib-repo}blob/{branch}/package.json[`package.json`] - The version is specified in the `engines.node` field. - {kib-repo}blob/{branch}/package.json[`package.json`] - The version is specified in the `engines.node` field (if possible, also upgrade `@types/node` to match the new version, both under `devDependencies` and `resolutions`).
- {kib-repo}blob/{branch}/WORKSPACE.bazel[`WORKSPACE.bazel`] - The version is specified in the `node_version` property. - {kib-repo}blob/{branch}/WORKSPACE.bazel[`WORKSPACE.bazel`] - The version is specified in the `node_version` property.
Besides this property, the list of files under `node_repositories` must be updated along with their respective SHA256 hashes. Besides this property, the list of files under `node_repositories` must be updated along with their respective SHA256 hashes.
These can be found on the https://nodejs.org[nodejs.org] website. These can be found on the https://nodejs.org[nodejs.org] website.
Example for Node.js v16.18.1: https://nodejs.org/dist/v16.18.1/SHASUMS256.txt.asc Example for Node.js v18.13.0: https://nodejs.org/dist/v18.13.0/SHASUMS256.txt.asc
See PR {kib-repo}pull/128123[#128123] for an example of how the Node.js version has been upgraded previously. See PR {kib-repo}pull/128123[#128123] for an example of how the Node.js version has been upgraded previously.

View file

@ -68,11 +68,11 @@
"url": "https://github.com/elastic/kibana.git" "url": "https://github.com/elastic/kibana.git"
}, },
"engines": { "engines": {
"node": "16.18.1", "node": "18.13.0",
"yarn": "^1.22.19" "yarn": "^1.22.19"
}, },
"resolutions": { "resolutions": {
"**/@types/node": "16.11.41", "**/@types/node": "18.11.18",
"**/chokidar": "^3.5.3", "**/chokidar": "^3.5.3",
"**/deepmerge": "^4.2.2", "**/deepmerge": "^4.2.2",
"**/fast-deep-equal": "^3.1.1", "**/fast-deep-equal": "^3.1.1",
@ -622,7 +622,7 @@
"query-string": "^6.13.2", "query-string": "^6.13.2",
"rbush": "^3.0.1", "rbush": "^3.0.1",
"re-resizable": "^6.1.1", "re-resizable": "^6.1.1",
"re2": "1.17.4", "re2": "1.17.7",
"react": "^17.0.2", "react": "^17.0.2",
"react-ace": "^7.0.5", "react-ace": "^7.0.5",
"react-beautiful-dnd": "^13.1.0", "react-beautiful-dnd": "^13.1.0",
@ -683,7 +683,7 @@
"styled-components": "^5.1.0", "styled-components": "^5.1.0",
"suricata-sid-db": "^1.0.2", "suricata-sid-db": "^1.0.2",
"symbol-observable": "^1.2.0", "symbol-observable": "^1.2.0",
"tar": "^6.1.11", "tar": "^6.1.13",
"tinycolor2": "1.4.1", "tinycolor2": "1.4.1",
"tinygradient": "0.4.3", "tinygradient": "0.4.3",
"ts-easing": "^0.2.0", "ts-easing": "^0.2.0",
@ -936,7 +936,7 @@
"@types/multistream": "^4.1.0", "@types/multistream": "^4.1.0",
"@types/mustache": "^0.8.31", "@types/mustache": "^0.8.31",
"@types/nock": "^10.0.3", "@types/nock": "^10.0.3",
"@types/node": "16.11.41", "@types/node": "18.11.18",
"@types/node-fetch": "^2.6.0", "@types/node-fetch": "^2.6.0",
"@types/node-forge": "^1.3.1", "@types/node-forge": "^1.3.1",
"@types/nodemailer": "^6.4.0", "@types/nodemailer": "^6.4.0",
@ -983,7 +983,7 @@
"@types/styled-components": "^5.1.0", "@types/styled-components": "^5.1.0",
"@types/supertest": "^2.0.5", "@types/supertest": "^2.0.5",
"@types/tapable": "^1.0.6", "@types/tapable": "^1.0.6",
"@types/tar": "^4.0.5", "@types/tar": "^6.1.3",
"@types/tempy": "^0.2.0", "@types/tempy": "^0.2.0",
"@types/testing-library__jest-dom": "^5.14.5", "@types/testing-library__jest-dom": "^5.14.5",
"@types/tinycolor2": "^1.4.1", "@types/tinycolor2": "^1.4.1",
@ -1158,7 +1158,7 @@
"simple-git": "^3.15.1", "simple-git": "^3.15.1",
"sinon": "^7.4.2", "sinon": "^7.4.2",
"sort-package-json": "^1.53.1", "sort-package-json": "^1.53.1",
"source-map": "^0.7.3", "source-map": "^0.7.4",
"string-replace-loader": "^2.2.0", "string-replace-loader": "^2.2.0",
"style-loader": "^1.1.3", "style-loader": "^1.1.3",
"stylelint": "^14.9.1", "stylelint": "^14.9.1",

View file

@ -662,13 +662,13 @@ describe('I18n engine', () => {
i18n.translate('a.short', { i18n.translate('a.short', {
values: { expires: new Date(2018, 5, 20, 18, 40, 30, 50) }, values: { expires: new Date(2018, 5, 20, 18, 40, 30, 50) },
} as any) } as any)
).toBe('Coupon expires at 6:40 PM'); ).toBe('Coupon expires at 6:40PM');
expect( expect(
i18n.translate('a.medium', { i18n.translate('a.medium', {
values: { expires: new Date(2018, 5, 20, 18, 40, 30, 50) }, values: { expires: new Date(2018, 5, 20, 18, 40, 30, 50) },
} as any) } as any)
).toBe('Coupon expires at 6:40:30 PM'); ).toBe('Coupon expires at 6:40:30PM');
}); });
test('should format default messages with time formatter', () => { test('should format default messages with time formatter', () => {
@ -679,14 +679,14 @@ describe('I18n engine', () => {
defaultMessage: 'Coupon expires at {expires, time, short}', defaultMessage: 'Coupon expires at {expires, time, short}',
values: { expires: new Date(2018, 5, 20, 18, 40, 30, 50) }, values: { expires: new Date(2018, 5, 20, 18, 40, 30, 50) },
}) })
).toBe('Coupon expires at 6:40 PM'); ).toBe('Coupon expires at 6:40PM');
expect( expect(
i18n.translate('foo', { i18n.translate('foo', {
defaultMessage: 'Coupon expires at {expires, time, medium}', defaultMessage: 'Coupon expires at {expires, time, medium}',
values: { expires: new Date(2018, 5, 20, 18, 40, 30, 50) }, values: { expires: new Date(2018, 5, 20, 18, 40, 30, 50) },
}) })
).toBe('Coupon expires at 6:40:30 PM'); ).toBe('Coupon expires at 6:40:30PM');
}); });
test('should format message with a custom format', () => { test('should format message with a custom format', () => {

View file

@ -56,9 +56,11 @@ webpack_cli(
env = select({ env = select({
"//:dist": { "//:dist": {
"NODE_ENV": "production", "NODE_ENV": "production",
"NODE_OPTIONS": "--openssl-legacy-provider",
}, },
"//conditions:default": { "//conditions:default": {
"NODE_ENV": "development", "NODE_ENV": "development",
"NODE_OPTIONS": "--openssl-legacy-provider",
}, },
}), }),
visibility = ["//visibility:public"], visibility = ["//visibility:public"],

View file

@ -60,6 +60,7 @@ function usingWorkerProc<T>(config: OptimizerConfig, fn: (proc: ChildProcess) =>
(): ProcResource => { (): ProcResource => {
const proc = fork(require.resolve('../worker/run_worker'), [], { const proc = fork(require.resolve('../worker/run_worker'), [], {
execArgv: [ execArgv: [
'--openssl-legacy-provider',
`--require=@kbn/babel-register/install`, `--require=@kbn/babel-register/install`,
...(inspectFlag && config.inspectWorkers ...(inspectFlag && config.inspectWorkers
? [`${inspectFlag}=${inspectPortCounter++}`] ? [`${inspectFlag}=${inspectPortCounter++}`]

View file

@ -83,9 +83,11 @@ webpack_cli(
env = select({ env = select({
"//:dist": { "//:dist": {
"NODE_ENV": "production", "NODE_ENV": "production",
"NODE_OPTIONS": "--openssl-legacy-provider",
}, },
"//conditions:default": { "//conditions:default": {
"NODE_ENV": "development", "NODE_ENV": "development",
"NODE_OPTIONS": "--openssl-legacy-provider",
}, },
}) })
) )

View file

@ -45,9 +45,11 @@ webpack_cli(
env = select({ env = select({
"//:dist": { "//:dist": {
"NODE_ENV": "production", "NODE_ENV": "production",
"NODE_OPTIONS": "--openssl-legacy-provider",
}, },
"//conditions:default": { "//conditions:default": {
"NODE_ENV": "development", "NODE_ENV": "development",
"NODE_OPTIONS": "--openssl-legacy-provider",
}, },
}), }),
visibility = ["//visibility:public"], visibility = ["//visibility:public"],

View file

@ -41,50 +41,50 @@ interface Package {
const packages: Package[] = [ const packages: Package[] = [
{ {
name: 're2', name: 're2',
version: '1.17.4', version: '1.17.7',
destinationPath: 'node_modules/re2/build/Release/re2.node', destinationPath: 'node_modules/re2/build/Release/re2.node',
extractMethod: 'gunzip', extractMethod: 'gunzip',
archives: { archives: {
'darwin-x64': { 'darwin-x64': {
url: 'https://us-central1-elastic-kibana-184716.cloudfunctions.net/kibana-ci-proxy-cache/node-re2/uhop/node-re2/releases/download/1.17.4/darwin-x64-93.gz', url: 'https://us-central1-elastic-kibana-184716.cloudfunctions.net/kibana-ci-proxy-cache/node-re2/uhop/node-re2/releases/download/1.17.7/darwin-x64-108.gz',
sha256: '9558c5cb39622e9b3653203e772b129d6c634e7dbd7af1b244352fc1d704601f', sha256: '4ed378c5a7fe6134b717afe7642254aff1ed7a881cbcaa53a012ac3efab49f99',
}, },
'linux-x64': { 'linux-x64': {
url: 'https://us-central1-elastic-kibana-184716.cloudfunctions.net/kibana-ci-proxy-cache/node-re2/uhop/node-re2/releases/download/1.17.4/linux-x64-93.gz', url: 'https://us-central1-elastic-kibana-184716.cloudfunctions.net/kibana-ci-proxy-cache/node-re2/uhop/node-re2/releases/download/1.17.7/linux-x64-108.gz',
sha256: '4d06747b266c75b6f7ced93977692c0586ce6a52924cabb569bd966378941aa1', sha256: '197a617ca2965f220848561afed71ff6df653f6d79910cf38e866c84ab38a236',
}, },
// ARM builds are currently done manually as Github Actions used in upstream project // ARM builds are currently done manually as Github Actions used in upstream project
// do not natively support an ARM target. // do not natively support an ARM target.
// From a AWS Graviton instance running Ubuntu: // From an AWS Graviton instance running Ubuntu or a GCE T2A instance running Debian:
// * install build-essential package // * install build-essential package: `sudo apt-get update` + `sudo apt install build-essential`
// * install nvm and the node version used by the Kibana repository // * install nvm and the node version used by the Kibana repository
// * `npm install re2@1.17.4` // * `npm install re2@1.17.7`
// * re2 will build itself on install // * re2 will build itself on install
// * `cp node_modules/re2/build/Release/re2.node > linux-arm64-$(node -e "console.log(process.versions.modules)") // * `cp node_modules/re2/build/Release/re2.node linux-arm64-$(node -e "console.log(process.versions.modules)")`
// * `gzip linux-arm64-*` // * `gzip linux-arm64-*`
// * capture the sha256 with: `shasum -a 256 linux-arm64-*` // * capture the sha256 with: `shasum -a 256 linux-arm64-*`
// * upload the `linux-arm64-*.gz` artifact to the `yarn-prebuilt-assets` bucket in GCS using the correct version number // * upload the `linux-arm64-*.gz` artifact to the `yarn-prebuilt-artifacts` bucket in GCS using the correct version number
'linux-arm64': { 'linux-arm64': {
url: 'https://us-central1-elastic-kibana-184716.cloudfunctions.net/kibana-ci-proxy-cache/node-re2/uhop/node-re2/releases/download/1.17.4/linux-arm64-93.gz', url: 'https://us-central1-elastic-kibana-184716.cloudfunctions.net/kibana-ci-proxy-cache/node-re2/uhop/node-re2/releases/download/1.17.7/linux-arm64-108.gz',
sha256: '25409584f76f3d6ed85463d84adf094eb6e256ed1cb0b754b95bcbda6691fc26', sha256: 'a690087a1a1fd9887aac1abdab68d1992600e218be10783da6d3381cca950c1a',
}, },
// A similar process is necessary for building on ARM macs: // A similar process is necessary for building on ARM macs:
// * bootstrap and re2 will build itself on install // * bootstrap and re2 will build itself on install
// * `cp node_modules/re2/build/Release/re2.node > darwin-arm64-$(node -e "console.log(process.versions.modules)") // * `cp node_modules/re2/build/Release/re2.node darwin-arm64-$(node -e "console.log(process.versions.modules)")`
// * `gzip darwin-arm64-*` // * `gzip darwin-arm64-*`
// * capture the sha256 with: `shasum -a 256 darwin-arm64-*` // * capture the sha256 with: `shasum -a 256 darwin-arm64-*`
// * upload the `darwin-arm64-*.gz` artifact to the `yarn-prebuilt-assets` bucket in GCS using the correct version number // * upload the `darwin-arm64-*.gz` artifact to the `yarn-prebuilt-artifacts` bucket in GCS using the correct version number
'darwin-arm64': { 'darwin-arm64': {
url: 'https://us-central1-elastic-kibana-184716.cloudfunctions.net/kibana-ci-proxy-cache/node-re2/uhop/node-re2/releases/download/1.17.4/darwin-arm64-93.gz', url: 'https://us-central1-elastic-kibana-184716.cloudfunctions.net/kibana-ci-proxy-cache/node-re2/uhop/node-re2/releases/download/1.17.7/darwin-arm64-108.gz',
sha256: 'd4b708749ddef1c87019f6b80e051ed0c29ccd1de34f233c47d8dcaddf803872', sha256: '42afc32137ff5c5bebae5d68347a9786906748c2f28e06194d8950707f2ae90e',
}, },
'win32-x64': { 'win32-x64': {
url: 'https://us-central1-elastic-kibana-184716.cloudfunctions.net/kibana-ci-proxy-cache/node-re2/uhop/node-re2/releases/download/1.17.4/win32-x64-93.gz', url: 'https://us-central1-elastic-kibana-184716.cloudfunctions.net/kibana-ci-proxy-cache/node-re2/uhop/node-re2/releases/download/1.17.7/win32-x64-108.gz',
sha256: '0320d0c0385432944c6fb3c8c8fcd78d440ce5626f7618f9ec71d88e44820674', sha256: 'ff72fe02de652262659c8e17e44a932f3c873362233756b40d1a97538d05de92',
}, },
}, },
}, },

View file

@ -74,6 +74,7 @@ describe('requestOAuthClientCredentialsToken', () => {
"maxSockets": Infinity, "maxSockets": Infinity,
"maxTotalSockets": Infinity, "maxTotalSockets": Infinity,
"options": Object { "options": Object {
"noDelay": true,
"path": null, "path": null,
"rejectUnauthorized": true, "rejectUnauthorized": true,
}, },

View file

@ -75,6 +75,7 @@ describe('requestOAuthJWTToken', () => {
"maxSockets": Infinity, "maxSockets": Infinity,
"maxTotalSockets": Infinity, "maxTotalSockets": Infinity,
"options": Object { "options": Object {
"noDelay": true,
"path": null, "path": null,
"rejectUnauthorized": true, "rejectUnauthorized": true,
}, },

View file

@ -82,6 +82,7 @@ describe('requestOAuthToken', () => {
"maxSockets": Infinity, "maxSockets": Infinity,
"maxTotalSockets": Infinity, "maxTotalSockets": Infinity,
"options": Object { "options": Object {
"noDelay": true,
"path": null, "path": null,
"rejectUnauthorized": true, "rejectUnauthorized": true,
}, },

View file

@ -84,8 +84,8 @@ describe('CurationsTable', () => {
expect(tableContent).toContain('mountains, valleys'); expect(tableContent).toContain('mountains, valleys');
expect(tableContent).toContain('Last updated'); expect(tableContent).toContain('Last updated');
expect(tableContent).toContain('Jan 1, 1970 12:00 PM'); expect(tableContent).toContain('Jan 1, 1970 12:00PM');
expect(tableContent).toContain('Jan 2, 1970 12:00 PM'); expect(tableContent).toContain('Jan 2, 1970 12:00PM');
}); });
it('renders queries with curation links and curation suggestion badges', () => { it('renders queries with curation links and curation suggestion badges', () => {

View file

@ -16,7 +16,7 @@ describe('FormattedDateTime', () => {
const date = new Date('1970-01-01T12:00:00'); const date = new Date('1970-01-01T12:00:00');
const wrapper = mountWithIntl(<FormattedDateTime date={date} />); const wrapper = mountWithIntl(<FormattedDateTime date={date} />);
expect(wrapper.text()).toEqual('Jan 1, 1970 12:00 PM'); expect(wrapper.text()).toEqual('Jan 1, 1970 12:00PM');
}); });
it('does not render time if hideTime is passed', () => { it('does not render time if hideTime is passed', () => {

View file

@ -5,6 +5,8 @@
* 2.0. * 2.0.
*/ */
import { finished } from 'stream/promises';
import tar from 'tar'; import tar from 'tar';
import yauzl from 'yauzl'; import yauzl from 'yauzl';
@ -16,19 +18,20 @@ export async function untarBuffer(
buffer: Buffer, buffer: Buffer,
filter = (entry: ArchiveEntry): boolean => true, filter = (entry: ArchiveEntry): boolean => true,
onEntry = (entry: ArchiveEntry): void => {} onEntry = (entry: ArchiveEntry): void => {}
): Promise<unknown> { ) {
const deflatedStream = bufferToStream(buffer); const deflatedStream = bufferToStream(buffer);
// use tar.list vs .extract to avoid writing to disk // use tar.list vs .extract to avoid writing to disk
const inflateStream = tar.list().on('entry', (entry: tar.FileStat) => { const inflateStream = tar.list().on('entry', (entry) => {
const path = entry.header.path || ''; const path = entry.path || '';
if (!filter({ path })) return; if (!filter({ path })) return;
streamToBuffer(entry).then((entryBuffer) => onEntry({ buffer: entryBuffer, path })); streamToBuffer(entry as unknown as NodeJS.ReadableStream).then((entryBuffer) =>
onEntry({ buffer: entryBuffer, path })
);
}); });
return new Promise((resolve, reject) => { deflatedStream.pipe(inflateStream);
inflateStream.on('end', resolve).on('error', reject);
deflatedStream.pipe(inflateStream); await finished(inflateStream);
});
} }
export async function unzipBuffer( export async function unzipBuffer(

View file

@ -10,8 +10,9 @@ import type { Logger } from '@kbn/core/server';
import moment from 'moment'; import moment from 'moment';
import * as Rx from 'rxjs'; import * as Rx from 'rxjs';
import { timeout } from 'rxjs/operators'; import { timeout } from 'rxjs/operators';
import { finished, Writable } from 'stream'; import { Writable } from 'stream';
import { promisify } from 'util'; import { finished } from 'stream/promises';
import { setTimeout } from 'timers/promises';
import type { import type {
RunContext, RunContext,
TaskManagerStartContract, TaskManagerStartContract,
@ -59,6 +60,22 @@ function reportFromTask(task: ReportTaskParams) {
return new Report({ ...task, _id: task.id, _index: task.index }); return new Report({ ...task, _id: task.id, _index: task.index });
} }
async function finishedWithNoPendingCallbacks(stream: Writable) {
await finished(stream, { readable: false });
// Race condition workaround:
// `finished(...)` will resolve while there's still pending callbacks in the writable part of the `stream`.
// This introduces a race condition where the code continues before the writable part has completely finished.
// The `pendingCallbacks` function is a hack to ensure that all pending callbacks have been called before continuing.
// For more information, see: https://github.com/nodejs/node/issues/46170
await (async function pendingCallbacks(delay = 1) {
if ((stream as any)._writableState.pendingcb > 0) {
await setTimeout(delay);
await pendingCallbacks(delay < 32 ? delay * 2 : delay);
}
})();
}
export class ExecuteReportTask implements ReportingTask { export class ExecuteReportTask implements ReportingTask {
public TYPE = REPORTING_EXECUTE_TYPE; public TYPE = REPORTING_EXECUTE_TYPE;
@ -377,7 +394,7 @@ export class ExecuteReportTask implements ReportingTask {
stream.end(); stream.end();
await promisify(finished)(stream, { readable: false }); await finishedWithNoPendingCallbacks(stream);
report._seq_no = stream.getSeqNo()!; report._seq_no = stream.getSeqNo()!;
report._primary_term = stream.getPrimaryTerm()!; report._primary_term = stream.getPrimaryTerm()!;

View file

@ -90,6 +90,7 @@ describe('sendEmailGraphApi', () => {
"maxSockets": Infinity, "maxSockets": Infinity,
"maxTotalSockets": Infinity, "maxTotalSockets": Infinity,
"options": Object { "options": Object {
"noDelay": true,
"path": null, "path": null,
"rejectUnauthorized": true, "rejectUnauthorized": true,
}, },
@ -180,6 +181,7 @@ describe('sendEmailGraphApi', () => {
"maxSockets": Infinity, "maxSockets": Infinity,
"maxTotalSockets": Infinity, "maxTotalSockets": Infinity,
"options": Object { "options": Object {
"noDelay": true,
"path": null, "path": null,
"rejectUnauthorized": true, "rejectUnauthorized": true,
}, },
@ -269,6 +271,7 @@ describe('sendEmailGraphApi', () => {
"maxSockets": Infinity, "maxSockets": Infinity,
"maxTotalSockets": Infinity, "maxTotalSockets": Infinity,
"options": Object { "options": Object {
"noDelay": true,
"path": null, "path": null,
"rejectUnauthorized": true, "rejectUnauthorized": true,
}, },

View file

@ -15,7 +15,7 @@ describe('api_itom', () => {
let externalService: jest.Mocked<ExternalServiceITOM>; let externalService: jest.Mocked<ExternalServiceITOM>;
const eventParamsWithFormattedDate = { const eventParamsWithFormattedDate = {
...itomEventParams, ...itomEventParams,
time_of_event: '2021-10-13, 10:51:44', time_of_event: '2021-10-13 10:51:44',
}; };
beforeEach(() => { beforeEach(() => {

View file

@ -20,7 +20,7 @@ const formatTimeOfEvent = (timeOfEvent: string | null): string | undefined => {
return isValidDate(date) return isValidDate(date)
? // The format is: yyyy-MM-dd HH:mm:ss GMT ? // The format is: yyyy-MM-dd HH:mm:ss GMT
date.toLocaleDateString('en-CA', { date.toLocaleDateString('eo', {
year: 'numeric', year: 'numeric',
month: '2-digit', month: '2-digit',
day: '2-digit', day: '2-digit',

View file

@ -200,7 +200,7 @@ describe('callAPI', () => {
'x-kibana-version': '8.7.0', 'x-kibana-version': '8.7.0',
}, },
httpsAgent: expect.objectContaining({ httpsAgent: expect.objectContaining({
options: { rejectUnauthorized: true, path: null }, options: { noDelay: true, rejectUnauthorized: true, path: null },
}), }),
method: 'POST', method: 'POST',
url: 'https://service.dev/monitors', url: 'https://service.dev/monitors',
@ -213,7 +213,7 @@ describe('callAPI', () => {
'x-kibana-version': '8.7.0', 'x-kibana-version': '8.7.0',
}, },
httpsAgent: expect.objectContaining({ httpsAgent: expect.objectContaining({
options: { rejectUnauthorized: true, path: null }, options: { noDelay: true, rejectUnauthorized: true, path: null },
}), }),
method: 'POST', method: 'POST',
url: 'https://qa.service.elstc.co/monitors', url: 'https://qa.service.elstc.co/monitors',
@ -226,7 +226,7 @@ describe('callAPI', () => {
'x-kibana-version': '8.7.0', 'x-kibana-version': '8.7.0',
}, },
httpsAgent: expect.objectContaining({ httpsAgent: expect.objectContaining({
options: { rejectUnauthorized: true, path: null }, options: { noDelay: true, rejectUnauthorized: true, path: null },
}), }),
method: 'POST', method: 'POST',
url: 'https://qa.service.stg.co/monitors', url: 'https://qa.service.stg.co/monitors',
@ -293,6 +293,7 @@ describe('callAPI', () => {
httpsAgent: expect.objectContaining({ httpsAgent: expect.objectContaining({
options: { options: {
rejectUnauthorized: true, rejectUnauthorized: true,
noDelay: true,
path: null, path: null,
cert: 'test-certificate', cert: 'test-certificate',
key: 'test-key', key: 'test-key',

113
yarn.lock
View file

@ -7348,13 +7348,6 @@
resolved "https://registry.yarnpkg.com/@types/minimist/-/minimist-1.2.2.tgz#ee771e2ba4b3dc5b372935d549fd9617bf345b8c" resolved "https://registry.yarnpkg.com/@types/minimist/-/minimist-1.2.2.tgz#ee771e2ba4b3dc5b372935d549fd9617bf345b8c"
integrity sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ== integrity sha512-jhuKLIRrhvCPLqwPcx6INqmKeiA5EWrsCOPhrlFSrbrmU4ZMPjj5Ul/oLCMDO98XRUIwVm78xICz4EPCektzeQ==
"@types/minipass@*":
version "2.2.0"
resolved "https://registry.yarnpkg.com/@types/minipass/-/minipass-2.2.0.tgz#51ad404e8eb1fa961f75ec61205796807b6f9651"
integrity sha512-wuzZksN4w4kyfoOv/dlpov4NOunwutLA/q7uc00xU02ZyUY+aoM5PWIXEKBMnm0NHd4a+N71BMjq+x7+2Af1fg==
dependencies:
"@types/node" "*"
"@types/mock-fs@^4.13.1": "@types/mock-fs@^4.13.1":
version "4.13.1" version "4.13.1"
resolved "https://registry.yarnpkg.com/@types/mock-fs/-/mock-fs-4.13.1.tgz#9201554ceb23671badbfa8ac3f1fa9e0706305be" resolved "https://registry.yarnpkg.com/@types/mock-fs/-/mock-fs-4.13.1.tgz#9201554ceb23671badbfa8ac3f1fa9e0706305be"
@ -7410,10 +7403,10 @@
dependencies: dependencies:
"@types/node" "*" "@types/node" "*"
"@types/node@*", "@types/node@16.11.41", "@types/node@>= 8", "@types/node@>=12.12.47", "@types/node@>=13.7.0", "@types/node@>=8.9.0", "@types/node@^10.1.0", "@types/node@^14.0.10 || ^16.0.0", "@types/node@^14.14.20 || ^16.0.0", "@types/node@^14.14.31": "@types/node@*", "@types/node@18.11.18", "@types/node@>= 8", "@types/node@>=12.12.47", "@types/node@>=13.7.0", "@types/node@>=8.9.0", "@types/node@^10.1.0", "@types/node@^14.0.10 || ^16.0.0", "@types/node@^14.14.20 || ^16.0.0", "@types/node@^14.14.31":
version "16.11.41" version "18.11.18"
resolved "https://registry.yarnpkg.com/@types/node/-/node-16.11.41.tgz#88eb485b1bfdb4c224d878b7832239536aa2f813" resolved "https://registry.yarnpkg.com/@types/node/-/node-18.11.18.tgz#8dfb97f0da23c2293e554c5a50d61ef134d7697f"
integrity sha512-mqoYK2TnVjdkGk8qXAVGc/x9nSaTpSrFaGFm43BUH3IdoBV0nta6hYaGmdOvIMlbHJbUEVen3gvwpwovAZKNdQ== integrity sha512-DHQpWGjyQKSHj3ebjFI/wRKcqQcdR+MoFBygntYOZytCqNfkd2ZC4ARDJ2DQqhjH5p85Nnd3jhUJIXrszFX/JA==
"@types/nodemailer@^6.4.0": "@types/nodemailer@^6.4.0":
version "6.4.0" version "6.4.0"
@ -7898,13 +7891,13 @@
resolved "https://registry.yarnpkg.com/@types/tapable/-/tapable-1.0.6.tgz#a9ca4b70a18b270ccb2bc0aaafefd1d486b7ea74" resolved "https://registry.yarnpkg.com/@types/tapable/-/tapable-1.0.6.tgz#a9ca4b70a18b270ccb2bc0aaafefd1d486b7ea74"
integrity sha512-W+bw9ds02rAQaMvaLYxAbJ6cvguW/iJXNT6lTssS1ps6QdrMKttqEAMEG/b5CR8TZl3/L7/lH0ZV5nNR1LXikA== integrity sha512-W+bw9ds02rAQaMvaLYxAbJ6cvguW/iJXNT6lTssS1ps6QdrMKttqEAMEG/b5CR8TZl3/L7/lH0ZV5nNR1LXikA==
"@types/tar@^4.0.5": "@types/tar@^6.1.3":
version "4.0.5" version "6.1.3"
resolved "https://registry.yarnpkg.com/@types/tar/-/tar-4.0.5.tgz#5f953f183e36a15c6ce3f336568f6051b7b183f3" resolved "https://registry.yarnpkg.com/@types/tar/-/tar-6.1.3.tgz#46a2ce7617950c4852dfd7e9cd41aa8161b9d750"
integrity sha512-cgwPhNEabHaZcYIy5xeMtux2EmYBitfqEceBUi2t5+ETy4dW6kswt6WX4+HqLeiiKOo42EXbGiDmVJ2x+vi37Q== integrity sha512-YzDOr5kdAeqS8dcO6NTTHTMJ44MUCBDoLEIyPtwEn7PssKqUYL49R1iCVJPeiPzPlKi6DbH33eZkpeJ27e4vHg==
dependencies: dependencies:
"@types/minipass" "*"
"@types/node" "*" "@types/node" "*"
minipass "^3.3.5"
"@types/tempy@^0.2.0": "@types/tempy@^0.2.0":
version "0.2.0" version "0.2.0"
@ -8618,7 +8611,7 @@ abab@^2.0.3, abab@^2.0.4, abab@^2.0.5, abab@^2.0.6:
resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.6.tgz#41b80f2c871d19686216b82309231cfd3cb3d291" resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.6.tgz#41b80f2c871d19686216b82309231cfd3cb3d291"
integrity sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA== integrity sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==
abbrev@1: abbrev@1, abbrev@^1.0.0:
version "1.1.1" version "1.1.1"
resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8"
integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q== integrity sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==
@ -16507,10 +16500,10 @@ inquirer@^8.2.3:
through "^2.3.6" through "^2.3.6"
wrap-ansi "^7.0.0" wrap-ansi "^7.0.0"
install-artifact-from-github@^1.3.0: install-artifact-from-github@^1.3.1:
version "1.3.0" version "1.3.1"
resolved "https://registry.yarnpkg.com/install-artifact-from-github/-/install-artifact-from-github-1.3.0.tgz#cab6ff821976b8a35b0c079da19a727c90381a40" resolved "https://registry.yarnpkg.com/install-artifact-from-github/-/install-artifact-from-github-1.3.1.tgz#eefaad9af35d632e5d912ad1569c1de38c3c2462"
integrity sha512-iT8v1GwOAX0pPXifF/5ihnMhHOCo3OeK7z3TQa4CtSNCIg8k0UxqBEk9jRwz8OP68hHXvJ2gxRa89KYHtBkqGA== integrity sha512-3l3Bymg2eKDsN5wQuMfgGEj2x6l5MCAv0zPL6rxHESufFVlEAKW/6oY9F1aGgvY/EgWm5+eWGRjINveL4X7Hgg==
internal-slot@^1.0.3: internal-slot@^1.0.3:
version "1.0.3" version "1.0.3"
@ -19266,7 +19259,7 @@ make-error@^1.1.1:
resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2"
integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==
make-fetch-happen@^10.0.4: make-fetch-happen@^10.0.3, make-fetch-happen@^10.0.4:
version "10.2.1" version "10.2.1"
resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-10.2.1.tgz#f5e3835c5e9817b617f2770870d9492d28678164" resolved "https://registry.yarnpkg.com/make-fetch-happen/-/make-fetch-happen-10.2.1.tgz#f5e3835c5e9817b617f2770870d9492d28678164"
integrity sha512-NgOPbRiaQM10DYXvN3/hhGVI2M5MtITFryzBGxHM5p4wnFxsVCbxkrBrDsk+EZ5OB4jEOT7AjDxtdF+KVEFT7w== integrity sha512-NgOPbRiaQM10DYXvN3/hhGVI2M5MtITFryzBGxHM5p4wnFxsVCbxkrBrDsk+EZ5OB4jEOT7AjDxtdF+KVEFT7w==
@ -19968,10 +19961,17 @@ minipass-sized@^1.0.3:
dependencies: dependencies:
minipass "^3.0.0" minipass "^3.0.0"
minipass@^3.0.0, minipass@^3.1.0, minipass@^3.1.1, minipass@^3.1.3, minipass@^3.1.6: minipass@^3.0.0, minipass@^3.1.0, minipass@^3.1.1, minipass@^3.1.3, minipass@^3.1.6, minipass@^3.3.5:
version "3.3.4" version "3.3.6"
resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.3.4.tgz#ca99f95dd77c43c7a76bf51e6d200025eee0ffae" resolved "https://registry.yarnpkg.com/minipass/-/minipass-3.3.6.tgz#7bba384db3a1520d18c9c0e5251c3444e95dd94a"
integrity sha512-I9WPbWHCGu8W+6k1ZiGpPu0GkoKBeorkfKNuAFBNS1HNFJvke82sxvI5bzcCNpWPorkOO5QQ+zomzzwRxejXiw== integrity sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw==
dependencies:
yallist "^4.0.0"
minipass@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/minipass/-/minipass-4.0.0.tgz#7cebb0f9fa7d56f0c5b17853cbe28838a8dbbd3b"
integrity sha512-g2Uuh2jEKoht+zvO6vJqXmYpflPqzRBT+Th2h01DKh5z7wbY/AZ2gCQ78cP70YoHPyFdY30YBV5WxgLOEwOykw==
dependencies: dependencies:
yallist "^4.0.0" yallist "^4.0.0"
@ -20284,7 +20284,7 @@ mute-stream@0.0.8:
resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d" resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.8.tgz#1630c42b2251ff81e2a283de96a5497ea92e5e0d"
integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA== integrity sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==
nan@^2.15.0, nan@^2.17.0: nan@^2.16.0, nan@^2.17.0:
version "2.17.0" version "2.17.0"
resolved "https://registry.yarnpkg.com/nan/-/nan-2.17.0.tgz#c0150a2368a182f033e9aa5195ec76ea41a199cb" resolved "https://registry.yarnpkg.com/nan/-/nan-2.17.0.tgz#c0150a2368a182f033e9aa5195ec76ea41a199cb"
integrity sha512-2ZTgtl0nJsO0KQCjEpxcIr5D+Yv90plTitZt9JBfQvVJDS5seMl3FOvsh3+9CoYWXf/1l5OaZzzF6nDm4cagaQ== integrity sha512-2ZTgtl0nJsO0KQCjEpxcIr5D+Yv90plTitZt9JBfQvVJDS5seMl3FOvsh3+9CoYWXf/1l5OaZzzF6nDm4cagaQ==
@ -20541,6 +20541,22 @@ node-gyp@^8.4.1:
tar "^6.1.2" tar "^6.1.2"
which "^2.0.2" which "^2.0.2"
node-gyp@^9.0.0:
version "9.3.0"
resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-9.3.0.tgz#f8eefe77f0ad8edb3b3b898409b53e697642b319"
integrity sha512-A6rJWfXFz7TQNjpldJ915WFb1LnhO4lIve3ANPbWreuEoLoKlFT3sxIepPBkLhM27crW8YmN+pjlgbasH6cH/Q==
dependencies:
env-paths "^2.2.0"
glob "^7.1.4"
graceful-fs "^4.2.6"
make-fetch-happen "^10.0.3"
nopt "^6.0.0"
npmlog "^6.0.0"
rimraf "^3.0.2"
semver "^7.3.5"
tar "^6.1.2"
which "^2.0.2"
node-int64@^0.4.0: node-int64@^0.4.0:
version "0.4.0" version "0.4.0"
resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b"
@ -20642,6 +20658,13 @@ nopt@^5.0.0:
dependencies: dependencies:
abbrev "1" abbrev "1"
nopt@^6.0.0:
version "6.0.0"
resolved "https://registry.yarnpkg.com/nopt/-/nopt-6.0.0.tgz#245801d8ebf409c6df22ab9d95b65e1309cdb16d"
integrity sha512-ZwLpbTgdhuZUnZzjd7nb1ZV+4DoiC6/sfiVKok72ym/4Tlf+DFdlHYmT2JPmcNNWV6Pi3SDf1kT+A4r9RTuT9g==
dependencies:
abbrev "^1.0.0"
normalize-package-data@^2.0.0, normalize-package-data@^2.3.2, normalize-package-data@^2.3.4, normalize-package-data@^2.5.0: normalize-package-data@^2.0.0, normalize-package-data@^2.3.2, normalize-package-data@^2.3.4, normalize-package-data@^2.5.0:
version "2.5.0" version "2.5.0"
resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8"
@ -22795,14 +22818,14 @@ re-resizable@^6.1.1:
dependencies: dependencies:
fast-memoize "^2.5.1" fast-memoize "^2.5.1"
re2@1.17.4: re2@1.17.7:
version "1.17.4" version "1.17.7"
resolved "https://registry.yarnpkg.com/re2/-/re2-1.17.4.tgz#7bf29290bdde963014e77bd2c2e799a6d788386e" resolved "https://registry.yarnpkg.com/re2/-/re2-1.17.7.tgz#e14cab85a177a5534c7215c322d1b043c55aa1e9"
integrity sha512-xyZ4h5PqE8I9tAxTh3G0UttcK5ufrcUxReFjGzfX61vtanNbS1XZHjnwRSyPcLgChI4KLxVgOT/ioZXnUAdoTA== integrity sha512-X8GSuiBoVWwcjuppqSjsIkRxNUKDdjhkO9SBekQbZ2ksqWUReCy7DQPWOVpoTnpdtdz5PIpTTxTFzvJv5UMfjA==
dependencies: dependencies:
install-artifact-from-github "^1.3.0" install-artifact-from-github "^1.3.1"
nan "^2.15.0" nan "^2.16.0"
node-gyp "^8.4.1" node-gyp "^9.0.0"
react-ace@^7.0.5: react-ace@^7.0.5:
version "7.0.5" version "7.0.5"
@ -25115,10 +25138,10 @@ source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0, source-map@~0.6.1:
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
source-map@^0.7.3: source-map@^0.7.3, source-map@^0.7.4:
version "0.7.3" version "0.7.4"
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.4.tgz#a9bbe705c9d8846f4e08ff6765acf0f1b0898656"
integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ== integrity sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA==
source-map@^0.8.0-beta.0: source-map@^0.8.0-beta.0:
version "0.8.0-beta.0" version "0.8.0-beta.0"
@ -26049,7 +26072,7 @@ tar-stream@^2.1.4, tar-stream@^2.2.0:
inherits "^2.0.3" inherits "^2.0.3"
readable-stream "^3.1.1" readable-stream "^3.1.1"
tar@6.1.11, tar@^6.0.2, tar@^6.1.11, tar@^6.1.2: tar@6.1.11:
version "6.1.11" version "6.1.11"
resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.11.tgz#6760a38f003afa1b2ffd0ffe9e9abbd0eab3d621" resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.11.tgz#6760a38f003afa1b2ffd0ffe9e9abbd0eab3d621"
integrity sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA== integrity sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==
@ -26061,6 +26084,18 @@ tar@6.1.11, tar@^6.0.2, tar@^6.1.11, tar@^6.1.2:
mkdirp "^1.0.3" mkdirp "^1.0.3"
yallist "^4.0.0" yallist "^4.0.0"
tar@^6.0.2, tar@^6.1.11, tar@^6.1.13, tar@^6.1.2:
version "6.1.13"
resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.13.tgz#46e22529000f612180601a6fe0680e7da508847b"
integrity sha512-jdIBIN6LTIe2jqzay/2vtYLlBHa3JF42ot3h1dW8Q0PaAG4v8rm0cvpVePtau5C6OKXGGcgO9q2AMNSWxiLqKw==
dependencies:
chownr "^2.0.0"
fs-minipass "^2.0.0"
minipass "^4.0.0"
minizlib "^2.1.1"
mkdirp "^1.0.3"
yallist "^4.0.0"
tcomb-validation@^3.3.0: tcomb-validation@^3.3.0:
version "3.4.1" version "3.4.1"
resolved "https://registry.yarnpkg.com/tcomb-validation/-/tcomb-validation-3.4.1.tgz#a7696ec176ce56a081d9e019f8b732a5a8894b65" resolved "https://registry.yarnpkg.com/tcomb-validation/-/tcomb-validation-3.4.1.tgz#a7696ec176ce56a081d9e019f8b732a5a8894b65"