mirror of
https://github.com/wazuh/wazuh-dashboard.git
synced 2025-12-11 03:01:06 -06:00
* Bump Node.js requirements to 18 Signed-off-by: Miki <miki@amazon.com> * Replace `lmdb-store` with `lmdb` Signed-off-by: Miki <miki@amazon.com> Co-authored-by: Anan Zhuang <ananzh@amazon.com> * Bump `elastic-apm-node` to the latest minor Signed-off-by: Miki <miki@amazon.com> * Replace webpack and plugins with a patched version that uses xxhash64 * Use `xxhash64` as the hashing algorithm of webpack * Upgrade `globby` * Remove `fibers` Signed-off-by: Miki <miki@amazon.com> * Replace `fs.rmdir` with `fs.rm` in cross-platform tests Signed-off-by: Miki <miki@amazon.com> * Increase listener limit Signed-off-by: Miki <miki@amazon.com> Co-authored-by: Anan Zhuang <ananzh@amazon.com> * Add promise-stripping serializer Signed-off-by: Miki <miki@amazon.com> * Bump heap for CI Signed-off-by: Miki <miki@amazon.com> * Correct use of fs/promises in @osd/pm Signed-off-by: Miki <miki@amazon.com> * Use fs/promise in plugin post-install cleanup Signed-off-by: Miki <miki@amazon.com> * Set the test server's host to `0.0.0.0` Signed-off-by: Miki <miki@amazon.com> * Sync `.node-version` file Signed-off-by: Miki <miki@amazon.com> * Support both `isPrimary`, for Node 18, and `isMaster`, for Node 14 Signed-off-by: Miki <miki@amazon.com> * Add types when using `isDeepStrictEqual` Signed-off-by: Miki <miki@amazon.com> Co-authored-by: Anan Zhuang <ananzh@amazon.com> * Add names to `SchemaError` to log more specific errors Signed-off-by: Miki <miki@amazon.com> * Fix failing vega visualization tests outside the CI Signed-off-by: Miki <miki@amazon.com> * Fix snapshot of errors thrown for undefined accessors Signed-off-by: Miki <miki@amazon.com> * Fix flakiness of log_rotator Signed-off-by: Miki <miki@amazon.com> * Fix asynchronous `fs` usafe in plugin discover Signed-off-by: Miki <miki@amazon.com> * Fix mocks in @osd/optimizer Signed-off-by: Miki <miki@amazon.com> * Fix memory leaks caused by setting states on unloaded components Signed-off-by: Miki <miki@amazon.com> Co-authored-by: Anan Zhuang <ananzh@amazon.com> * Bump Node in Dockerfile Signed-off-by: Miki <miki@amazon.com> Co-authored-by: Anan Zhuang <ananzh@amazon.com> * Remove the response `close` event as an indicator of the requesting finishing https://github.com/opensearch-project/OpenSearch-Dashboards/issues/3601#issuecomment-1515110477 Signed-off-by: Miki <miki@amazon.com> Co-authored-by: Anan Zhuang <ananzh@amazon.com> * [BWC] Timeout after 3 mins of waiting for OSD to be running in tests Signed-off-by: Miki <miki@amazon.com> * Make build use the same node version that tests are run against Signed-off-by: Miki <miki@amazon.com> * Make Node resolve DNS by IPv4 first * This is helpful to resolve `locahost` to `127.0.0.1` Signed-off-by: Miki <miki@amazon.com> * Standardize patterns used by plugin discovery * Enhance absolute path serialization on Windows Signed-off-by: Miki <amoo_miki@yahoo.com> * Mock fetch in SenseEditor tests Signed-off-by: Miki <amoo_miki@yahoo.com> * Restore node-sass usage to fix build performance * `sass-loader@10` is the last version that supports webpack@4 * `sass` is extremely slow when using the legacy API (`render`) and to use the "Modern API" (`compileStringAsync`), `sass-loader@13` would be needed. * The performance of `sass@10` is made acceptable only with `fibers` but that is deprecated and doesn't work on Node 18 Signed-off-by: Anan Zhuang <ananzh@amazon.com> Signed-off-by: Miki <miki@amazon.com> * Revert "[CI] setup Chrome and utilize binary path (#3997)" This reverts commit 0188d052 Signed-off-by: Miki <miki@amazon.com> * Prevent fast-fail while running functional test in CI Signed-off-by: Miki <miki@amazon.com> * Revert "Temporarily hardcode chromedriver to 112.0.0 to enable all ftr tests (#3976)" This reverts commit 5ea0cbe25223e24badfe27f79813ee313c9af0b0. Signed-off-by: Miki <miki@amazon.com> * Save Cypress results artifacts during CI Signed-off-by: Miki <miki@amazon.com> * Add missing required dependency on `set-value` * Also force all to ^4.1.0 due to a vulnerability fixed in 3.1.0. Signed-off-by: Miki <miki@amazon.com> * Prevent multiple calls to bootstrap's shutdown Signed-off-by: Miki <miki@amazon.com> * Use Node 18.16.0 in distributions * Bump jest-canvas-mock to fix failing tests * Extend Node engines versions Signed-off-by: Miki <miki@amazon.com> * Normalize test snapshots across Node 14, 16, and 18 Signed-off-by: Miki <miki@amazon.com> * Update CHANGELOG for Node.js >=14.20.1 <19 support Signed-off-by: Miki <miki@amazon.com> --------- Signed-off-by: Miki <miki@amazon.com> Signed-off-by: Miki <amoo_miki@yahoo.com> Signed-off-by: Anan Zhuang <ananzh@amazon.com> Co-authored-by: Anan Zhuang <ananzh@amazon.com>
123 lines
3.4 KiB
JavaScript
123 lines
3.4 KiB
JavaScript
/*
|
|
* Copyright OpenSearch Contributors
|
|
* SPDX-License-Identifier: Apache-2.0
|
|
*/
|
|
|
|
/**
|
|
* Upgrades the chromedriver dev-dependency to the one supported by the version of Google Chrome
|
|
* installed on the machine.
|
|
*
|
|
* Usage: node scripts/upgrade_chromedriver.js [--install]
|
|
*/
|
|
|
|
/* eslint no-restricted-syntax: 0 */
|
|
const { execSync, spawnSync } = require('child_process');
|
|
const { createReadStream, createWriteStream, unlinkSync, renameSync, existsSync } = require('fs');
|
|
const { createInterface } = require('readline');
|
|
|
|
if (!process.argv.includes(__filename)) {
|
|
console.error('Usage: node scripts/upgrade_chromedriver.js [--install]');
|
|
process.exit(1);
|
|
}
|
|
|
|
const versionCheckCommands = [];
|
|
|
|
switch (process.platform) {
|
|
case 'win32':
|
|
versionCheckCommands.push(
|
|
'powershell "(Get-Item \\"$Env:Programfiles/Google/Chrome/Application/chrome.exe\\").VersionInfo.FileVersion"'
|
|
);
|
|
break;
|
|
|
|
case 'darwin':
|
|
versionCheckCommands.push(
|
|
'/Applications/Google\\ Chrome.app/Contents/MacOS/Google\\ Chrome --version'
|
|
);
|
|
break;
|
|
|
|
default:
|
|
versionCheckCommands.push(
|
|
...[
|
|
'/usr/bin',
|
|
'/usr/local/bin',
|
|
'/usr/sbin',
|
|
'/usr/local/sbin',
|
|
'/opt/bin',
|
|
'/usr/bin/X11',
|
|
'/usr/X11R6/bin',
|
|
].flatMap((loc) =>
|
|
[
|
|
'google-chrome --version',
|
|
'google-chrome-stable --version',
|
|
'chromium --version',
|
|
'chromium-browser --version',
|
|
].map((cmd) => `${loc}/${cmd}`)
|
|
)
|
|
);
|
|
}
|
|
|
|
let versionCheckOutput;
|
|
versionCheckCommands.some((cmd) => {
|
|
try {
|
|
console.log(cmd);
|
|
versionCheckOutput = execSync(cmd, { encoding: 'utf8' })?.trim?.();
|
|
return true;
|
|
} catch (e) {
|
|
console.log('Failed to get version using', cmd);
|
|
}
|
|
});
|
|
|
|
// Versions 90+
|
|
const majorVersion = versionCheckOutput?.match?.(/(?:^|\s)(9\d|\d{3})\./)?.[1];
|
|
|
|
if (majorVersion) {
|
|
if (process.argv.includes('--install')) {
|
|
console.log(`Installing chromedriver@^${majorVersion}`);
|
|
|
|
spawnSync(`yarn add --dev chromedriver@^${majorVersion}`, {
|
|
stdio: 'inherit',
|
|
cwd: process.cwd(),
|
|
shell: true,
|
|
});
|
|
} else {
|
|
console.log(`Upgrading to chromedriver@^${majorVersion}`);
|
|
|
|
let upgraded = false;
|
|
const writeStream = createWriteStream('package.json.upgrading-chromedriver', { flags: 'w' });
|
|
const rl = createInterface({
|
|
input: createReadStream('package.json'),
|
|
crlfDelay: Infinity,
|
|
});
|
|
rl.on('line', (line) => {
|
|
if (line.includes('"chromedriver": "')) {
|
|
line = line.replace(
|
|
/"chromedriver":\s*"[~^]?\d[\d.]*\d"/,
|
|
`"chromedriver": "^${majorVersion}"`
|
|
);
|
|
upgraded = true;
|
|
}
|
|
writeStream.write(line + '\n', 'utf8');
|
|
});
|
|
rl.on('close', () => {
|
|
writeStream.end();
|
|
if (upgraded) {
|
|
// Remove any previous backups
|
|
if (existsSync('package.json.bak')) unlinkSync('package.json.bak');
|
|
|
|
renameSync('package.json', 'package.json.bak');
|
|
renameSync('package.json.upgrading-chromedriver', 'package.json');
|
|
|
|
console.log(`Backed up package.json and updated chromedriver to ${majorVersion}`);
|
|
} else {
|
|
unlinkSync('package.json.upgrading-chromedriver');
|
|
console.error(
|
|
`Failed to update chromedriver to ${majorVersion}. Try adding the \`--install\` switch.`
|
|
);
|
|
}
|
|
});
|
|
}
|
|
} else {
|
|
console.debug(versionCheckOutput);
|
|
console.error(`Failed to extract the version of the installed Google Chrome.`);
|
|
}
|