feat(module-federation): use @module-federation/enhanced for withModuleFederation (#26777)

<!-- Please make sure you have read the submission guidelines before
posting an PR -->
<!--
https://github.com/nrwl/nx/blob/master/CONTRIBUTING.md#-submitting-a-pr
-->

<!-- Please make sure that your commit message follows our format -->
<!-- Example: `fix(nx): must begin with lowercase` -->

<!-- If this is a particularly complex change or feature addition, you
can request a dedicated Nx release for this pull request branch. Mention
someone from the Nx team or the `@nrwl/nx-pipelines-reviewers` and they
will confirm if the PR warrants its own release for testing purposes,
and generate it for you if appropriate. -->

## Current Behavior
<!-- This is the behavior we have today -->
We currently use the `ModuleFederationPlugin` from `webpack` itself. 
This doesn't receive the same attention as the new
`@module-federation/enhanced` package, which is where all new work by
Zack Jackson and Bytedance is being conducted.


## Expected Behavior
<!-- This is the behavior we should expect with the changes in this PR
-->
Our `withModuleFederation` utils should use the
`@module-federation/enhanced` package.

## Related Issue(s)
<!-- Please link the issue being fixed so it gets closed when this is
merged. -->
#26322 
Fixes #
This commit is contained in:
Colum Ferry 2024-07-05 14:48:17 +01:00 committed by GitHub
parent c7878533ed
commit a6522f71a1
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
24 changed files with 599 additions and 32 deletions

View File

@ -50,6 +50,8 @@
"@jest/reporters": "^29.4.1",
"@jest/test-result": "^29.4.1",
"@jest/types": "^29.4.1",
"@module-federation/enhanced": "^0.2.3",
"@module-federation/sdk": "^0.2.3",
"@monodon/rust": "1.3.3",
"@napi-rs/cli": "2.14.0",
"@nestjs/cli": "^10.0.2",

View File

@ -1933,6 +1933,15 @@
"alwaysAddToPackageJson": false
}
}
},
"19.5.0-module-federation": {
"version": "19.5.0-beta.0",
"packages": {
"@module-federation/node": {
"version": "^2.3.0",
"alwaysAddToPackageJson": false
}
}
}
}
}

View File

@ -9,6 +9,7 @@
"@nx/",
"@angular-devkit",
"@angular-eslint/",
"@module-federation/enhanced",
"@schematics",
"@phenomnomnominal/tsquery",
"@typescript-eslint/",
@ -20,7 +21,6 @@
"ts-node",
"tsconfig-paths",
"semver",
"webpack",
"http-server",
"magic-string",
"enquirer",

View File

@ -56,8 +56,8 @@
"minimatch": "9.0.3",
"semver": "^7.5.3",
"tslib": "^2.3.0",
"webpack": "^5.80.0",
"webpack-merge": "^5.8.0",
"@module-federation/enhanced": "~0.2.3",
"@nx/devkit": "file:../devkit",
"@nx/js": "file:../js",
"@nx/eslint": "file:../eslint",

View File

@ -232,7 +232,6 @@ exports[`Host App Generator --ssr should generate the correct files 9`] = `
"extractLicenses": false,
"optimization": false,
"sourceMap": true,
"vendorChunk": true,
},
"production": {
"outputHashing": "media",
@ -446,7 +445,6 @@ exports[`Host App Generator --ssr should generate the correct files for standalo
"extractLicenses": false,
"optimization": false,
"sourceMap": true,
"vendorChunk": true,
},
"production": {
"outputHashing": "media",
@ -661,7 +659,6 @@ exports[`Host App Generator --ssr should generate the correct files for standalo
"extractLicenses": false,
"optimization": false,
"sourceMap": true,
"vendorChunk": true,
},
"production": {
"outputHashing": "media",
@ -863,7 +860,6 @@ exports[`Host App Generator --ssr should generate the correct files when --types
"extractLicenses": false,
"optimization": false,
"sourceMap": true,
"vendorChunk": true,
},
"production": {
"outputHashing": "media",

View File

@ -71,6 +71,15 @@ export async function updateSsrSetup(
),
};
if (
project.targets.server.configurations &&
project.targets.server.configurations.development
) {
if ('vendorChunk' in project.targets.server.configurations.development) {
delete project.targets.server.configurations.development.vendorChunk;
}
}
project.targets['serve-ssr'].executor =
'@nx/angular:module-federation-dev-ssr';

View File

@ -264,7 +264,6 @@ exports[`MF Remote App Generator --ssr should generate the correct files 11`] =
"extractLicenses": false,
"optimization": false,
"sourceMap": true,
"vendorChunk": true,
},
"production": {
"outputHashing": "media",
@ -482,7 +481,6 @@ exports[`MF Remote App Generator --ssr should generate the correct files when --
"extractLicenses": false,
"optimization": false,
"sourceMap": true,
"vendorChunk": true,
},
"production": {
"outputHashing": "media",

View File

@ -100,6 +100,14 @@ export async function updateSsrSetup(
`webpack.server.config.${typescriptConfiguration ? 'ts' : 'js'}`
),
};
if (
project.targets.server.configurations &&
project.targets.server.configurations.development
) {
if ('vendorChunk' in project.targets.server.configurations.development) {
delete project.targets.server.configurations.development.vendorChunk;
}
}
project.targets['serve-ssr'].options = {
...(project.targets['serve-ssr'].options ?? {}),
port,

View File

@ -22,7 +22,10 @@ import {
updateHostAppRoutes,
updateTsConfig,
} from './lib';
import { nxVersion } from '../../utils/versions';
import {
moduleFederationEnhancedVersion,
nxVersion,
} from '../../utils/versions';
export async function setupMf(tree: Tree, rawOptions: Schema) {
const options = normalizeOptions(tree, rawOptions);
@ -43,7 +46,11 @@ export async function setupMf(tree: Tree, rawOptions: Schema) {
installTask = addDependenciesToPackageJson(
tree,
{},
{ '@nx/web': nxVersion, '@nx/webpack': nxVersion }
{
'@nx/web': nxVersion,
'@nx/webpack': nxVersion,
'@module-federation/enhanced': moduleFederationEnhancedVersion,
}
);
}
}
@ -71,7 +78,10 @@ export async function setupMf(tree: Tree, rawOptions: Schema) {
installTask = addDependenciesToPackageJson(
tree,
{},
{ '@nx/webpack': nxVersion }
{
'@nx/webpack': nxVersion,
'@module-federation/enhanced': moduleFederationEnhancedVersion,
}
);
}
}

View File

@ -48,7 +48,8 @@ export const backwardCompatibleVersions: VersionMap = {
expressVersion: '~4.18.2',
typesExpressVersion: '4.17.14',
browserSyncVersion: '^3.0.0',
moduleFederationNodeVersion: '~1.0.5',
moduleFederationNodeVersion: '~2.3.0',
moduleFederationEnhancedVersion: '~0.2.3',
angularEslintVersion: '~16.0.0',
tailwindVersion: '^3.0.2',
postcssVersion: '^8.4.5',
@ -74,7 +75,8 @@ export const backwardCompatibleVersions: VersionMap = {
expressVersion: '~4.18.2',
typesExpressVersion: '4.17.14',
browserSyncVersion: '^3.0.0',
moduleFederationNodeVersion: '~1.0.5',
moduleFederationNodeVersion: '~2.3.0',
moduleFederationEnhancedVersion: '~0.2.3',
angularEslintVersion: '~17.3.0',
tailwindVersion: '^3.0.2',
postcssVersion: '^8.4.5',

View File

@ -1,8 +1,12 @@
import { ModuleFederationConfig } from '@nx/webpack/src/utils/module-federation';
import type {
ModuleFederationConfig,
NxModuleFederationConfigOverride,
} from '@nx/webpack/src/utils/module-federation';
import { getModuleFederationConfig } from './utils';
export async function withModuleFederationForSSR(
options: ModuleFederationConfig
options: ModuleFederationConfig,
configOverride?: NxModuleFederationConfigOverride
) {
if (global.NX_GRAPH_CREATION) {
return (config) => config;
@ -45,6 +49,10 @@ export async function withModuleFederationForSSR(
type: 'commonjs-module',
},
isServer: true,
/**
* Apply user-defined config override
*/
...(configOverride ? configOverride : {}),
},
{}
),

View File

@ -1,8 +1,14 @@
import { ModuleFederationConfig } from '@nx/webpack/src/utils/module-federation';
import type {
ModuleFederationConfig,
NxModuleFederationConfigOverride,
} from '@nx/webpack/src/utils/module-federation';
import { getModuleFederationConfig } from './utils';
import ModuleFederationPlugin from 'webpack/lib/container/ModuleFederationPlugin';
import { ModuleFederationPlugin } from '@module-federation/enhanced/webpack';
export async function withModuleFederation(options: ModuleFederationConfig) {
export async function withModuleFederation(
options: ModuleFederationConfig,
configOverride?: NxModuleFederationConfigOverride
) {
if (global.NX_GRAPH_CREATION) {
return (config) => config;
}
@ -44,6 +50,10 @@ export async function withModuleFederation(options: ModuleFederationConfig) {
library: {
type: 'module',
},
/**
* Apply user-defined config override
*/
...(configOverride ? configOverride : {}),
}),
sharedLibraries.getReplacementPlugin(),
],

View File

@ -14,7 +14,8 @@ export const typesCorsVersion = '~2.8.5';
export const expressVersion = '~4.18.2';
export const typesExpressVersion = '4.17.14';
export const browserSyncVersion = '^3.0.0';
export const moduleFederationNodeVersion = '~1.0.5';
export const moduleFederationNodeVersion = '^2.3.0';
export const moduleFederationEnhancedVersion = '~0.2.3';
export const angularEslintVersion = '^18.0.1';
export const typescriptEslintVersion = '^8.0.0-alpha.28';

View File

@ -202,6 +202,15 @@
"alwaysAddToPackageJson": false
}
}
},
"19.5.0-module-federation": {
"version": "19.5.0-beta.0",
"packages": {
"@module-federation/node": {
"version": "^2.3.0",
"alwaysAddToPackageJson": false
}
}
}
}
}

View File

@ -38,6 +38,7 @@
"file-loader": "^6.2.0",
"minimatch": "9.0.3",
"tslib": "^2.3.0",
"@module-federation/enhanced": "~0.2.3",
"@nx/devkit": "file:../devkit",
"@nx/js": "file:../js",
"@nx/eslint": "file:../eslint",

View File

@ -1,4 +1,5 @@
import {
addDependenciesToPackageJson,
formatFiles,
GeneratorCallback,
joinPathFragments,
@ -22,6 +23,7 @@ import { updateModuleFederationE2eProject } from './lib/update-module-federation
import { NormalizedSchema, Schema } from './schema';
import { addMfEnvToTargetDefaultInputs } from '../../utils/add-mf-env-to-inputs';
import { isValidVariable } from '@nx/js';
import { moduleFederationEnhancedVersion } from '../../utils/versions';
export async function hostGenerator(
host: Tree,
@ -137,6 +139,13 @@ export async function hostGeneratorInternal(
addMfEnvToTargetDefaultInputs(host);
const installTask = addDependenciesToPackageJson(
host,
{},
{ '@module-federation/enhanced': moduleFederationEnhancedVersion }
);
tasks.push(installTask);
if (!options.skipFormat) {
await formatFiles(host);
}

View File

@ -1,5 +1,6 @@
import { join } from 'path';
import {
addDependenciesToPackageJson,
formatFiles,
generateFiles,
GeneratorCallback,
@ -24,6 +25,7 @@ import { addRemoteToDynamicHost } from './lib/add-remote-to-dynamic-host';
import { addMfEnvToTargetDefaultInputs } from '../../utils/add-mf-env-to-inputs';
import { maybeJs } from '../../utils/maybe-js';
import { isValidVariable } from '@nx/js';
import { moduleFederationEnhancedVersion } from '../../utils/versions';
export function addModuleFederationFiles(
host: Tree,
@ -171,6 +173,13 @@ export async function remoteGeneratorInternal(host: Tree, schema: Schema) {
addMfEnvToTargetDefaultInputs(host);
const installTask = addDependenciesToPackageJson(
host,
{},
{ '@module-federation/enhanced': moduleFederationEnhancedVersion }
);
tasks.push(installTask);
if (!options.skipFormat) {
await formatFiles(host);
}

View File

@ -1,8 +1,12 @@
import { ModuleFederationConfig } from '@nx/webpack/src/utils/module-federation';
import {
ModuleFederationConfig,
NxModuleFederationConfigOverride,
} from '@nx/webpack/src/utils/module-federation';
import { getModuleFederationConfig } from './utils';
export async function withModuleFederationForSSR(
options: ModuleFederationConfig
options: ModuleFederationConfig,
configOverride?: NxModuleFederationConfigOverride
) {
if (global.NX_GRAPH_CREATION) {
return (config) => config;
@ -34,6 +38,10 @@ export async function withModuleFederationForSSR(
type: 'commonjs-module',
},
isServer: true,
/**
* Apply user-defined config overrides
*/
...(configOverride ? configOverride : {}),
},
{}
),

View File

@ -1,7 +1,10 @@
import { ModuleFederationConfig } from '@nx/webpack/src/utils/module-federation';
import {
ModuleFederationConfig,
NxModuleFederationConfigOverride,
} from '@nx/webpack/src/utils/module-federation';
import { getModuleFederationConfig } from './utils';
import type { AsyncNxComposableWebpackPlugin } from '@nx/webpack';
import ModuleFederationPlugin = require('webpack/lib/container/ModuleFederationPlugin');
import { ModuleFederationPlugin } from '@module-federation/enhanced/webpack';
const isVarOrWindow = (libType?: string) =>
libType === 'var' || libType === 'window';
@ -11,7 +14,8 @@ const isVarOrWindow = (libType?: string) =>
* @return {Promise<AsyncNxComposableWebpackPlugin>}
*/
export async function withModuleFederation(
options: ModuleFederationConfig
options: ModuleFederationConfig,
configOverride?: NxModuleFederationConfigOverride
): Promise<AsyncNxComposableWebpackPlugin> {
if (global.NX_GRAPH_CREATION) {
return (config) => config;
@ -62,6 +66,10 @@ export async function withModuleFederation(
* { appY: 'appY@http://localhost:3002/remoteEntry.js' }
*/
...(isGlobal ? { remoteType: 'script' } : {}),
/**
* Apply user-defined config overrides
*/
...(configOverride ? configOverride : {}),
}),
sharedLibraries.getReplacementPlugin()
);

View File

@ -54,7 +54,8 @@ export const typesExpressVersion = '4.17.17';
export const isbotVersion = '^3.6.5';
export const corsVersion = '~2.8.5';
export const typesCorsVersion = '~2.8.12';
export const moduleFederationNodeVersion = '~0.9.9';
export const moduleFederationNodeVersion = '^2.3.0';
export const moduleFederationEnhancedVersion = '~0.2.3';
// style preprocessors
export const lessVersion = '3.12.2';

View File

@ -32,6 +32,7 @@
"dependencies": {
"@babel/core": "^7.23.2",
"@phenomnomnominal/tsquery": "~5.0.1",
"@module-federation/sdk": "^0.2.3",
"ajv": "^8.12.0",
"autoprefixer": "^10.4.9",
"babel-loader": "^9.1.2",

View File

@ -5,7 +5,6 @@ import {
getOutputsForTargetAndConfiguration,
parseTargetString,
} from '@nx/devkit';
import { interpolate } from 'nx/src/tasks-runner/utils';
export function getDependentPackagesForProject(
projectGraph: ProjectGraph,

View File

@ -1,4 +1,5 @@
import type { NormalModuleReplacementPlugin } from 'webpack';
import type { moduleFederationPlugin } from '@module-federation/sdk';
export type ModuleFederationLibrary = { type: string; name: string };
@ -46,6 +47,17 @@ export interface ModuleFederationConfig {
additionalShared?: AdditionalSharedConfig;
}
export type NxModuleFederationConfigOverride = Omit<
moduleFederationPlugin.ModuleFederationPluginOptions,
| 'exposes'
| 'remotes'
| 'name'
| 'library'
| 'shared'
| 'filename'
| 'remoteType'
>;
export type WorkspaceLibrarySecondaryEntryPoint = {
name: string;
path: string;

469
pnpm-lock.yaml generated
View File

@ -224,6 +224,12 @@ devDependencies:
'@jest/types':
specifier: ^29.4.1
version: 29.6.3
'@module-federation/enhanced':
specifier: ^0.2.3
version: 0.2.3(typescript@5.4.2)(webpack@5.88.0)
'@module-federation/sdk':
specifier: ^0.2.3
version: 0.2.3
'@monodon/rust':
specifier: 1.3.3
version: 1.3.3(@swc-node/register@1.9.1)(@swc/core@1.5.7)(@types/node@18.19.8)(typescript@5.4.2)(verdaccio@5.31.0)
@ -478,7 +484,7 @@ devDependencies:
version: 0.3.1(immer@9.0.16)(xstate@4.34.0)
'@xstate/inspect':
specifier: 0.7.0
version: 0.7.0(ws@8.16.0)(xstate@4.34.0)
version: 0.7.0(ws@8.17.1)(xstate@4.34.0)
'@xstate/react':
specifier: 3.0.1
version: 3.0.1(@types/react@18.3.1)(react@18.3.1)(xstate@4.34.0)
@ -8637,6 +8643,151 @@ packages:
react: 18.3.1
dev: true
/@module-federation/bridge-react-webpack-plugin@0.2.3:
resolution: {integrity: sha512-RpFoo25kMaGkQpbwOhcYuF9cDNdo7FTFm6LceBbje8CkVaX8ekR9foXvKYoykbmCi/SbLw0WcXnq7/5y0UZ4nQ==}
dependencies:
'@module-federation/sdk': 0.2.3
dev: true
/@module-federation/dts-plugin@0.2.3(typescript@5.4.2):
resolution: {integrity: sha512-8QWWdspNNmGuCqiyGf1UiFxIt99TDFoajnK52IiJXnC6DsTjb2lHvHcw01NTJUwmfvxWUbwUjcGPSGeta3861Q==}
peerDependencies:
typescript: ^4.9.0 || ^5.0.0
vue-tsc: ^1.0.24
peerDependenciesMeta:
vue-tsc:
optional: true
dependencies:
'@module-federation/managers': 0.2.3
'@module-federation/sdk': 0.2.3
'@module-federation/third-party-dts-extractor': 0.2.3
adm-zip: 0.5.14
ansi-colors: 4.1.3
axios: 1.7.2
chalk: 3.0.0
fs-extra: 9.1.0
isomorphic-ws: 5.0.0(ws@8.17.1)
koa: 2.11.0
lodash.clonedeepwith: 4.5.0
log4js: 6.9.1
node-schedule: 2.1.1
rambda: 9.2.1
typescript: 5.4.2
ws: 8.17.1
transitivePeerDependencies:
- bufferutil
- debug
- supports-color
- utf-8-validate
dev: true
/@module-federation/enhanced@0.2.3(typescript@5.4.2)(webpack@5.88.0):
resolution: {integrity: sha512-OHHR0BtNidz82K38MrNxZsKgFP6DNFfVZQmdJhMIrfIjURAbWw3zG1FOywdTZ3+Nic9FS3f65ttha6x9Cv4SpA==}
peerDependencies:
typescript: ^4.9.0 || ^5.0.0
vue-tsc: ^1.0.24
webpack: ^5.0.0
peerDependenciesMeta:
typescript:
optional: true
vue-tsc:
optional: true
webpack:
optional: true
dependencies:
'@module-federation/bridge-react-webpack-plugin': 0.2.3
'@module-federation/dts-plugin': 0.2.3(typescript@5.4.2)
'@module-federation/managers': 0.2.3
'@module-federation/manifest': 0.2.3(typescript@5.4.2)
'@module-federation/rspack': 0.2.3(typescript@5.4.2)
'@module-federation/runtime-tools': 0.2.3
'@module-federation/sdk': 0.2.3
btoa: 1.2.1
typescript: 5.4.2
upath: 2.0.1
webpack: 5.88.0(@swc/core@1.5.7)(esbuild@0.19.5)(webpack-cli@5.1.4)
transitivePeerDependencies:
- bufferutil
- debug
- supports-color
- utf-8-validate
dev: true
/@module-federation/managers@0.2.3:
resolution: {integrity: sha512-GqNMkUiK4GbAu3emrwVPtP8BzG4lCX+O9kMUUw6LQ8ZDhjOCr+McvDOSgvWLZ89aB+rLPRtnz3fOT6pdUAa+oA==}
dependencies:
'@module-federation/sdk': 0.2.3
find-pkg: 2.0.0
fs-extra: 9.1.0
dev: true
/@module-federation/manifest@0.2.3(typescript@5.4.2):
resolution: {integrity: sha512-TFrjNhsMkSOE4TADJt6kOaKfQ4uugQg4kFlocjAnxN5JHj5rTo/r9lSxtWeoeS2GMli9ifTFgECndmShpz3QcQ==}
dependencies:
'@module-federation/dts-plugin': 0.2.3(typescript@5.4.2)
'@module-federation/managers': 0.2.3
'@module-federation/sdk': 0.2.3
chalk: 3.0.0
find-pkg: 2.0.0
transitivePeerDependencies:
- bufferutil
- debug
- supports-color
- typescript
- utf-8-validate
- vue-tsc
dev: true
/@module-federation/rspack@0.2.3(typescript@5.4.2):
resolution: {integrity: sha512-9n9SHiJvFOV/GHuLEF2xWwyg6SGsLu5g/onulpJ2dpkY57ZLPDRprEKoBsOZfz+dp/PWBUOt0YxHcl934hcF8Q==}
dependencies:
'@module-federation/bridge-react-webpack-plugin': 0.2.3
'@module-federation/dts-plugin': 0.2.3(typescript@5.4.2)
'@module-federation/managers': 0.2.3
'@module-federation/manifest': 0.2.3(typescript@5.4.2)
'@module-federation/runtime-tools': 0.2.3
'@module-federation/sdk': 0.2.3
transitivePeerDependencies:
- bufferutil
- debug
- supports-color
- typescript
- utf-8-validate
- vue-tsc
dev: true
/@module-federation/runtime-tools@0.2.3:
resolution: {integrity: sha512-capN8CVTCEqNAjnl102girrkevczoQfnQYyiYC4WuyKsg7+LUqfirIe1Eiyv6VSE2UgvOTZDnqvervA6rBOlmg==}
dependencies:
'@module-federation/runtime': 0.2.3
'@module-federation/webpack-bundler-runtime': 0.2.3
dev: true
/@module-federation/runtime@0.2.3:
resolution: {integrity: sha512-N+ZxBUb1mkmfO9XT1BwgYQgShtUTlijHbukqQ4afFka5lRAT+ayC7RKfHJLz0HbuexKPCmPBDfdmCnErR5WyTQ==}
dependencies:
'@module-federation/sdk': 0.2.3
dev: true
/@module-federation/sdk@0.2.3:
resolution: {integrity: sha512-W9zrPchLocyCBc/B8CW21akcfJXLl++9xBe1L1EtgxZGfj/xwHt0GcBWE/y+QGvYTL2a1iZjwscbftbUhxgxXg==}
dev: true
/@module-federation/third-party-dts-extractor@0.2.3:
resolution: {integrity: sha512-/J1KIOYT071MBHE78JaZR+rngpOFOv/16MLIc5Qg4ckl1HdojLa4nZ+o2N6atRGDE2nX6hJFFTCeGXkBC7TQhg==}
dependencies:
find-pkg: 2.0.0
fs-extra: 9.1.0
resolve: 1.22.8
dev: true
/@module-federation/webpack-bundler-runtime@0.2.3:
resolution: {integrity: sha512-L/jt2uJ+8dwYiyn9GxryzDR6tr/Wk8rpgvelM2EBeLIhu7YxCHSmSjQYhw3BTux9zZIr47d1K9fGjBFsVRd/SQ==}
dependencies:
'@module-federation/runtime': 0.2.3
'@module-federation/sdk': 0.2.3
dev: true
/@mole-inc/bin-wrapper@8.0.1:
resolution: {integrity: sha512-sTGoeZnjI8N4KS+sW2AN95gDBErhAguvkw/tWdCjeM8bvxpz5lqrnd0vOJABA1A+Ic3zED7PYoLP/RANLgVotA==}
engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
@ -16241,7 +16392,7 @@ packages:
xstate: 4.34.0
dev: true
/@xstate/inspect@0.7.0(ws@8.16.0)(xstate@4.34.0):
/@xstate/inspect@0.7.0(ws@8.17.1)(xstate@4.34.0):
resolution: {integrity: sha512-3wrTf8TfBYprH1gBFdxmOQUBDpBazlICWvGdFzr8IHFL4MbiexEZdAsL2QC/WAmW9BqNYTWTwgfbvKHKg+FrlA==}
peerDependencies:
'@types/ws': ^8.0.0
@ -16252,7 +16403,7 @@ packages:
optional: true
dependencies:
fast-safe-stringify: 2.1.1
ws: 8.16.0
ws: 8.17.1
xstate: 4.34.0
dev: true
@ -16446,6 +16597,11 @@ packages:
regex-parser: 2.2.11
dev: true
/adm-zip@0.5.14:
resolution: {integrity: sha512-DnyqqifT4Jrcvb8USYjp6FHtBpEIz1mnXu6pTRHZ0RL69LbQYiO+0lDFg5+OKA7U29oWSs3a/i8fhn8ZcceIWg==}
engines: {node: '>=12.0'}
dev: true
/agent-base@6.0.2:
resolution: {integrity: sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==}
engines: {node: '>= 6.0.0'}
@ -17133,6 +17289,16 @@ packages:
transitivePeerDependencies:
- debug
/axios@1.7.2:
resolution: {integrity: sha512-2A8QhOMrbomlDuiLeK9XibIBzuHeRcqqNOHp0Cyp5EoJ1IFDh+XZH3A6BkXtv0K4gFGCI0Y4BM7B1wOEi0Rmgw==}
dependencies:
follow-redirects: 1.15.6
form-data: 4.0.0
proxy-from-env: 1.1.0
transitivePeerDependencies:
- debug
dev: true
/axobject-query@3.2.1:
resolution: {integrity: sha512-jsyHu61e6N4Vbz/v18DHwWYKK0bSWLqn47eeDSKPB7m8tqMHF9YJ+mhIk2lVteyZrY8tnSj/jHOv4YiTCuCJgg==}
dependencies:
@ -17829,6 +17995,12 @@ packages:
resolution: {integrity: sha512-gvW7InbIyF8AicrqWoptdW08pUxuhq8BEgowNajy9RhiE86fmGAGl+bLKo6oB8QP0CkqHLowfN0oJdKC/J6LbA==}
dev: true
/btoa@1.2.1:
resolution: {integrity: sha512-SB4/MIGlsiVkMcHmT+pSmIPoNDoHg+7cMzmt3Uxt628MTz2487DKSqK/fuhFBrkuqrYv5UCEnACpF4dTFNKc/g==}
engines: {node: '>= 0.4.0'}
hasBin: true
dev: true
/buffer-crc32@0.2.13:
resolution: {integrity: sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==}
dev: true
@ -18006,6 +18178,14 @@ packages:
unique-filename: 3.0.0
dev: true
/cache-content-type@1.0.1:
resolution: {integrity: sha512-IKufZ1o4Ut42YUrZSo8+qnMTrFuKkvyoLXUywKz9GJ5BrhOFGhLdkx9sG4KAnVvbY6kEcSFjLQul+DVmBm2bgA==}
engines: {node: '>= 6.0.0'}
dependencies:
mime-types: 2.1.35
ylru: 1.4.0
dev: true
/cacheable-lookup@5.0.4:
resolution: {integrity: sha512-2/kNscPhpcxrOigMZzbiWF7dz8ilhb/nIHU3EyZiXWXpeq/au8qJ8VhdftMkty3n7Gj6HIGalQG8oiBNB3AJgA==}
engines: {node: '>=10.6.0'}
@ -18878,6 +19058,14 @@ packages:
engines: {node: '>= 0.6'}
dev: true
/cookies@0.8.0:
resolution: {integrity: sha512-8aPsApQfebXnuI+537McwYsDtjVxGm8gTIzQI3FDW6t5t/DAhERxtnbEPN/8RX+uZthoz4eCOgloXaE5cYyNow==}
engines: {node: '>= 0.8'}
dependencies:
depd: 2.0.0
keygrip: 1.1.0
dev: true
/copy-anything@2.0.6:
resolution: {integrity: sha512-1j20GZTsvKNkc4BY3NpMOM8tt///wY3FpIzozTOFO2ffuZcV61nojHXVKIy3WM+7ADCy5FVhdZYHYDdgTU0yJw==}
dependencies:
@ -19076,6 +19264,13 @@ packages:
postcss-media-query-parser: 0.2.3
dev: true
/cron-parser@4.9.0:
resolution: {integrity: sha512-p0SaNjrHOnQeR8/VnfGbmg9te2kfyYSQ7Sc/j/6DtPL3JQvKxmjO9TSjNFpujqV3vEYYBvNNvXSxzyksBWAx1Q==}
engines: {node: '>=12.0.0'}
dependencies:
luxon: 3.4.4
dev: true
/cross-domain-safe-weakmap@1.0.29:
resolution: {integrity: sha512-VLoUgf2SXnf3+na8NfeUFV59TRZkIJqCIATaMdbhccgtnTlSnHXkyTRwokngEGYdQXx8JbHT9GDYitgR2sdjuA==}
dependencies:
@ -19639,6 +19834,11 @@ packages:
whatwg-url: 11.0.0
dev: true
/date-format@4.0.14:
resolution: {integrity: sha512-39BOQLs9ZjKh0/patS9nrT8wc3ioX3/eA/zgbKNopnF2wCqJEoxywwwElATYvRsXdnOxA/OQeQoFZ3rFjVajhg==}
engines: {node: '>=4.0'}
dev: true
/dateformat@3.0.3:
resolution: {integrity: sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==}
dev: true
@ -19657,6 +19857,17 @@ packages:
dependencies:
ms: 2.0.0
/debug@3.1.0:
resolution: {integrity: sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==}
peerDependencies:
supports-color: '*'
peerDependenciesMeta:
supports-color:
optional: true
dependencies:
ms: 2.0.0
dev: true
/debug@3.2.7(supports-color@8.1.1):
resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==}
peerDependencies:
@ -19737,6 +19948,10 @@ packages:
type-detect: 4.0.8
dev: true
/deep-equal@1.0.1:
resolution: {integrity: sha512-bHtC0iYvWhyaTzvV3CZgPeZQqCOBGyGsVV7v4eevpdkLHfiSrXUdBG+qAuSz4RI70sszvjQ1QSZ98An1yNwpSw==}
dev: true
/deep-is@0.1.4:
resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==}
dev: true
@ -20310,6 +20525,10 @@ packages:
is-arrayish: 0.2.1
dev: true
/error-inject@1.0.0:
resolution: {integrity: sha512-JM8N6PytDbmIYm1IhPWlo8vr3NtfjhDY/1MhD/a5b/aad/USE8a0+NsqE9d5n+GVGmuNkPQWm4bFQWv18d8tMg==}
dev: true
/error-stack-parser-es@0.1.1:
resolution: {integrity: sha512-g/9rfnvnagiNf+DRMHEVGuGuIBlCIMDFoTA616HaP2l9PlCjGjVhD98PNbVSJvmK4TttqT5mV5tInMhoFgi+aA==}
dev: true
@ -21425,6 +21644,13 @@ packages:
engines: {node: '>= 0.8.0'}
dev: true
/expand-tilde@2.0.2:
resolution: {integrity: sha512-A5EmesHW6rfnZ9ysHQjPdJRni0SRar0tjtG5MNtm9n5TUvsYU8oozprtRD4AqHxcZWWlVuAmQo2nWKfN9oyjTw==}
engines: {node: '>=0.10.0'}
dependencies:
homedir-polyfill: 1.0.3
dev: true
/expect@29.5.0:
resolution: {integrity: sha512-yM7xqUrCO2JdpFo4XpM82t+PJBFybdqoQuJLDGeDX2ij8NZzqRHyu3Hp188/JX7SWqud+7t4MUdvcgGBICMHZg==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
@ -21918,6 +22144,20 @@ packages:
pkg-dir: 7.0.0
dev: true
/find-file-up@2.0.1:
resolution: {integrity: sha512-qVdaUhYO39zmh28/JLQM5CoYN9byEOKEH4qfa8K1eNV17W0UUMJ9WgbR/hHFH+t5rcl+6RTb5UC7ck/I+uRkpQ==}
engines: {node: '>=8'}
dependencies:
resolve-dir: 1.0.1
dev: true
/find-pkg@2.0.0:
resolution: {integrity: sha512-WgZ+nKbELDa6N3i/9nrHeNznm+lY3z4YfhDDWgW+5P0pdmMj26bxaxU11ookgY3NyP9GC7HvZ9etp0jRFqGEeQ==}
engines: {node: '>=8'}
dependencies:
find-file-up: 2.0.1
dev: true
/find-up@2.1.0:
resolution: {integrity: sha512-NWzkk0jSJtTt08+FBFMvXoeZnOJD+jTtsRmBYbAIzJdX6l7dLgR7CTubCM5/eDdPUBvLCeVasP1brfVR/9/EZQ==}
engines: {node: '>=4'}
@ -21982,6 +22222,16 @@ packages:
dependencies:
debug: 4.3.4(supports-color@8.1.1)
/follow-redirects@1.15.6:
resolution: {integrity: sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==}
engines: {node: '>=4.0'}
peerDependencies:
debug: '*'
peerDependenciesMeta:
debug:
optional: true
dev: true
/for-each@0.3.3:
resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==}
dependencies:
@ -22668,6 +22918,26 @@ packages:
ini: 2.0.0
dev: true
/global-modules@1.0.0:
resolution: {integrity: sha512-sKzpEkf11GpOFuw0Zzjzmt4B4UZwjOcG757PPvrfhxcLFbq0wpsgpOqxpxtxFiCG4DtG93M6XRVbF2oGdev7bg==}
engines: {node: '>=0.10.0'}
dependencies:
global-prefix: 1.0.2
is-windows: 1.0.2
resolve-dir: 1.0.1
dev: true
/global-prefix@1.0.2:
resolution: {integrity: sha512-5lsx1NUDHtSjfg0eHlmYvZKv8/nVqX4ckFbM+FrGcQ+04KWcWFo9P5MxPZYSzUvyzmdTbI7Eix8Q4IbELDqzKg==}
engines: {node: '>=0.10.0'}
dependencies:
expand-tilde: 2.0.2
homedir-polyfill: 1.0.3
ini: 1.3.8
is-windows: 1.0.2
which: 1.3.1
dev: true
/globals@11.12.0:
resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==}
engines: {node: '>=4'}
@ -23010,6 +23280,13 @@ packages:
react-is: 16.13.1
dev: true
/homedir-polyfill@1.0.3:
resolution: {integrity: sha512-eSmmWE5bZTK2Nou4g0AI3zZ9rswp7GRKoKXS1BLUkvPviOqs4YTN1djQIqrXy9k5gEtdLPy86JjRwsNM9tnDcA==}
engines: {node: '>=0.10.0'}
dependencies:
parse-passwd: 1.0.0
dev: true
/hookable@5.5.3:
resolution: {integrity: sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ==}
dev: true
@ -23120,6 +23397,14 @@ packages:
entities: 4.5.0
dev: true
/http-assert@1.5.0:
resolution: {integrity: sha512-uPpH7OKX4H25hBmU6G1jWNaqJGpTXxey+YOUizJUAgu0AjLUeC8D73hTrhvDS5D+GJN1DN1+hhc/eF/wpxtp0w==}
engines: {node: '>= 0.8'}
dependencies:
deep-equal: 1.0.1
http-errors: 1.8.1
dev: true
/http-cache-semantics@4.1.1:
resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==}
dev: true
@ -23145,7 +23430,17 @@ packages:
setprototypeof: 1.1.1
statuses: 1.5.0
toidentifier: 1.0.0
dev: false
/http-errors@1.8.1:
resolution: {integrity: sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==}
engines: {node: '>= 0.6'}
dependencies:
depd: 1.1.2
inherits: 2.0.4
setprototypeof: 1.2.0
statuses: 1.5.0
toidentifier: 1.0.1
dev: true
/http-errors@2.0.0:
resolution: {integrity: sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==}
@ -24189,6 +24484,14 @@ packages:
resolution: {integrity: sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==}
engines: {node: '>=0.10.0'}
/isomorphic-ws@5.0.0(ws@8.17.1):
resolution: {integrity: sha512-muId7Zzn9ywDsyXgTIafTry2sV3nySZeUDe6YedVd1Hvuuep5AsIlqK+XefWpYTyJG5e503F2xIuT2lcU6rCSw==}
peerDependencies:
ws: '*'
dependencies:
ws: 8.17.1
dev: true
/isstream@0.1.2:
resolution: {integrity: sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g==}
dev: true
@ -25060,6 +25363,13 @@ packages:
source-map-support: 0.5.19
dev: true
/keygrip@1.1.0:
resolution: {integrity: sha512-iYSchDJ+liQ8iwbSI2QqsQOvqv58eJCEanyJPJi+Khyu8smkcKSFUCbPwzFcL7YVtZ6eONjqRX/38caJ7QjRAQ==}
engines: {node: '>= 0.6'}
dependencies:
tsscmp: 1.0.6
dev: true
/keyv@4.5.2:
resolution: {integrity: sha512-5MHbFaKn8cNSmVW7BYnijeAVlE4cYA/SVkifVgrh7yotnfhKmjuXpDKjrABLnT0SfHWV21P8ow07OGfRrNDg8g==}
dependencies:
@ -25102,6 +25412,56 @@ packages:
resolution: {integrity: sha512-dWl0Dbjm6Xm+kDxhPQJsCBTxrJzuGl0aP9rhr+TG8D3l+GL90N8O8lYUi7dTSAN2uuDqCtNgb6aEuQH5wsiV8Q==}
dev: true
/koa-compose@3.2.1:
resolution: {integrity: sha512-8gen2cvKHIZ35eDEik5WOo8zbVp9t4cP8p4hW4uE55waxolLRexKKrqfCpwhGVppnB40jWeF8bZeTVg99eZgPw==}
dependencies:
any-promise: 1.3.0
dev: true
/koa-compose@4.1.0:
resolution: {integrity: sha512-8ODW8TrDuMYvXRwra/Kh7/rJo9BtOfPc6qO8eAfC80CnCvSjSl0bkRM24X6/XBBEyj0v1nRUQ1LyOy3dbqOWXw==}
dev: true
/koa-convert@1.2.0:
resolution: {integrity: sha512-K9XqjmEDStGX09v3oxR7t5uPRy0jqJdvodHa6wxWTHrTfDq0WUNnYTOOUZN6g8OM8oZQXprQASbiIXG2Ez8ehA==}
engines: {node: '>= 4'}
dependencies:
co: 4.6.0
koa-compose: 3.2.1
dev: true
/koa@2.11.0:
resolution: {integrity: sha512-EpR9dElBTDlaDgyhDMiLkXrPwp6ZqgAIBvhhmxQ9XN4TFgW+gEz6tkcsNI6BnUbUftrKDjVFj4lW2/J2aNBMMA==}
engines: {node: ^4.8.4 || ^6.10.1 || ^7.10.1 || >= 8.1.4}
dependencies:
accepts: 1.3.8
cache-content-type: 1.0.1
content-disposition: 0.5.4
content-type: 1.0.5
cookies: 0.8.0
debug: 3.1.0
delegates: 1.0.0
depd: 1.1.2
destroy: 1.2.0
encodeurl: 1.0.2
error-inject: 1.0.0
escape-html: 1.0.3
fresh: 0.5.2
http-assert: 1.5.0
http-errors: 1.7.3
is-generator-function: 1.0.10
koa-compose: 4.1.0
koa-convert: 1.2.0
on-finished: 2.4.1
only: 0.0.2
parseurl: 1.3.3
statuses: 1.5.0
type-is: 1.6.18
vary: 1.1.2
transitivePeerDependencies:
- supports-color
dev: true
/kolorist@1.8.0:
resolution: {integrity: sha512-Y+60/zizpJ3HRH8DCss+q95yr6145JXZo46OTpFvDZWLfRCE4qChOyk1b26nMaNpfHHgxagk9dXT5OP0Tfe+dQ==}
dev: true
@ -25447,6 +25807,10 @@ packages:
resolution: {integrity: sha512-aVx8ztPv7/2ULbArGJ2Y42bG1mEQ5mGjpdvrbJcJFU3TbYybe+QlLS4pst9zV52ymy2in1KpFPiZnAOATxD4+Q==}
dev: false
/lodash.clonedeepwith@4.5.0:
resolution: {integrity: sha512-QRBRSxhbtsX1nc0baxSkkK5WlVTTm/s48DSukcGcWZwIyI8Zz+lB+kFiELJXtzfH4Aj6kMWQ1VWW4U5uUDgZMA==}
dev: true
/lodash.debounce@4.0.8:
resolution: {integrity: sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==}
dev: true
@ -25526,6 +25890,23 @@ packages:
wrap-ansi: 6.2.0
dev: true
/log4js@6.9.1:
resolution: {integrity: sha512-1somDdy9sChrr9/f4UlzhdaGfDR2c/SaD2a4T7qEkG4jTS57/B3qmnjLYePwQ8cqWnUHZI0iAKxMBpCZICiZ2g==}
engines: {node: '>=8.0'}
dependencies:
date-format: 4.0.14
debug: 4.3.4(supports-color@8.1.1)
flatted: 3.2.9
rfdc: 1.3.0
streamroller: 3.1.5
transitivePeerDependencies:
- supports-color
dev: true
/long-timeout@0.1.1:
resolution: {integrity: sha512-BFRuQUqc7x2NWxfJBCyUrN8iYUYznzL9JROmRz1gZ6KlOIgmoD+njPVbb+VNn2nGMKggMsK79iUNErillsrx7w==}
dev: true
/longest-streak@3.1.0:
resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==}
dev: true
@ -25619,6 +26000,11 @@ packages:
resolution: {integrity: sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==}
dev: true
/luxon@3.4.4:
resolution: {integrity: sha512-zobTr7akeGHnv7eBOXcRgMeCP6+uyYsczwmeRCauvpvaAltgNyTbLH/+VaEAPUeWBT+1GuNmz4wC/6jtQzbbVA==}
engines: {node: '>=12'}
dev: true
/lz-string@1.5.0:
resolution: {integrity: sha512-h5bgJWpxJNswbU7qCrV0tIKQCaS3blPDrqKWx+QxzuzL1zGUzij9XCWLrSLsJPu5t+eWA/ycetzYAO5IOMcWAQ==}
hasBin: true
@ -27323,6 +27709,15 @@ packages:
/node-releases@2.0.14:
resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==}
/node-schedule@2.1.1:
resolution: {integrity: sha512-OXdegQq03OmXEjt2hZP33W2YPs/E5BcFQks46+G2gAxs4gHOIVD1u7EqlYLYSKsaIpyKCK9Gbk0ta1/gjRSMRQ==}
engines: {node: '>=6'}
dependencies:
cron-parser: 4.9.0
long-timeout: 0.1.1
sorted-array-functions: 1.3.0
dev: true
/nopt@4.0.3:
resolution: {integrity: sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg==}
hasBin: true
@ -28017,6 +28412,10 @@ packages:
mimic-fn: 4.0.0
dev: true
/only@0.0.2:
resolution: {integrity: sha512-Fvw+Jemq5fjjyWz6CpKx6w9s7xxqo3+JCyM0WXWeCSOboZ8ABkyvP8ID4CZuChA/wxSx+XSJmdOm8rGVyJ1hdQ==}
dev: true
/open@10.0.3:
resolution: {integrity: sha512-dtbI5oW7987hwC9qjJTyABldTaa19SuyJse1QboWv3b0qCcrrLNVDqBx1XgELAjh9QTVQaP/C5b1nhQebd1H2A==}
engines: {node: '>=18'}
@ -28438,6 +28837,11 @@ packages:
engines: {node: '>= 0.10'}
dev: true
/parse-passwd@1.0.0:
resolution: {integrity: sha512-1Y1A//QUXEZK7YKz+rD9WydcE1+EuPr6ZBgKecAB8tmoW6UFv0NREVJe1p+jRxtThkcbbKkfwIbWJe/IeE6m2Q==}
engines: {node: '>=0.10.0'}
dev: true
/parse-path@7.0.0:
resolution: {integrity: sha512-Euf9GG8WT9CdqwuWJGdf3RkUcTBArppHABkO7Lm8IzRQp0e2r/kkFnmhu4TSK30Wcu5rVAZLmfPKSBBi9tWFog==}
dependencies:
@ -30245,6 +30649,10 @@ packages:
resolution: {integrity: sha512-pNsHDxbGORSvuSScqNJ+3Km6QAVqk8CfsCBIEoDgpqLrkD2f3QM4I7d1ozJJ172OmIcoUcerZaNWqtLkRXTV3A==}
dev: true
/rambda@9.2.1:
resolution: {integrity: sha512-6Dp+QQVQuAuhwBlbIvL2FjJVHCKF29W+n9ca/BMTVDqpj+Q7KKqUh7UAINEna8aaB2/oRvPuL5hViCTQARa70Q==}
dev: true
/ramda@0.29.0:
resolution: {integrity: sha512-BBea6L67bYLtdbOqfp8f58fPMqEwx0doL+pAi8TZyp2YWz8R9G8z9x75CZI8W+ftqhFHCpEX2cRnUUXK130iKA==}
dev: true
@ -31021,6 +31429,14 @@ packages:
dependencies:
resolve-from: 5.0.0
/resolve-dir@1.0.1:
resolution: {integrity: sha512-R7uiTjECzvOsWSfdM0QKFNBVFcK27aHOUwdvK53BcW8zqnGdYp0Fbj82cy54+2A4P2tFM22J5kRfe1R+lM/1yg==}
engines: {node: '>=0.10.0'}
dependencies:
expand-tilde: 2.0.2
global-modules: 1.0.0
dev: true
/resolve-from@3.0.0:
resolution: {integrity: sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw==}
engines: {node: '>=4'}
@ -31733,7 +32149,6 @@ packages:
/setprototypeof@1.1.1:
resolution: {integrity: sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==}
dev: false
/setprototypeof@1.2.0:
resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==}
@ -31999,6 +32414,10 @@ packages:
is-plain-obj: 1.1.0
dev: true
/sorted-array-functions@1.3.0:
resolution: {integrity: sha512-2sqgzeFlid6N4Z2fUQ1cvFmTOLRi/sEDzSQ0OKYchqgoPmQBVyM3959qYx3fpS6Esef80KjmpgPeEr028dP3OA==}
dev: true
/source-map-js@1.0.2:
resolution: {integrity: sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==}
engines: {node: '>=0.10.0'}
@ -32293,6 +32712,17 @@ packages:
resolution: {integrity: sha512-QzQxpoacatkreL6jsxnVb7X5R/pGw9OUv2qWTYWnmLpg4NdN31snPy/f3TdQE1ZUXaThRvj1Zw4/OGg0ZkaLMA==}
dev: true
/streamroller@3.1.5:
resolution: {integrity: sha512-KFxaM7XT+irxvdqSP1LGLgNWbYN7ay5owZ3r/8t77p+EtSUAfUgtl7be3xtqtOmGUl9K9YPO2ca8133RlTjvKw==}
engines: {node: '>=8.0'}
dependencies:
date-format: 4.0.14
debug: 4.3.4(supports-color@8.1.1)
fs-extra: 8.1.0
transitivePeerDependencies:
- supports-color
dev: true
/streamsearch@1.1.0:
resolution: {integrity: sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==}
engines: {node: '>=10.0.0'}
@ -33197,7 +33627,6 @@ packages:
/toidentifier@1.0.0:
resolution: {integrity: sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==}
engines: {node: '>=0.6'}
dev: false
/toidentifier@1.0.1:
resolution: {integrity: sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==}
@ -33467,6 +33896,11 @@ packages:
/tslib@2.6.2:
resolution: {integrity: sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q==}
/tsscmp@1.0.6:
resolution: {integrity: sha512-LxhtAkPDTkVCMQjt2h6eBVY28KCjikZqZfMcC15YBeNjkgUpdCfBu5HoiOTDu86v6smE8yOjyEktJ8hlbANHQA==}
engines: {node: '>=0.6.x'}
dev: true
/tsutils@3.21.0(typescript@5.4.2):
resolution: {integrity: sha512-mHKK3iUXL+3UF6xL5k0PEhKRUBKPBCv/+RkEOpjRWxxx27KKRBmmA60A9pgOUvMi8GKhRMPEmjBRPzs2W7O1OA==}
engines: {node: '>= 6'}
@ -34073,6 +34507,11 @@ packages:
setimmediate: 1.0.5
dev: true
/upath@2.0.1:
resolution: {integrity: sha512-1uEe95xksV1O0CYKXo8vQvN1JEbtJp7lb7C5U9HMsIp6IVwntkH/oNUzyVNQSd4S1sYk2FpSSW44FqMc8qee5w==}
engines: {node: '>=4'}
dev: true
/update-browserslist-db@1.0.10(browserslist@4.21.4):
resolution: {integrity: sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==}
hasBin: true
@ -35662,6 +36101,19 @@ packages:
optional: true
dev: true
/ws@8.17.1:
resolution: {integrity: sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==}
engines: {node: '>=10.0.0'}
peerDependencies:
bufferutil: ^4.0.1
utf-8-validate: '>=5.0.2'
peerDependenciesMeta:
bufferutil:
optional: true
utf-8-validate:
optional: true
dev: true
/xml-name-validator@4.0.0:
resolution: {integrity: sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==}
engines: {node: '>=12'}
@ -35771,6 +36223,11 @@ packages:
fd-slicer: 1.1.0
dev: true
/ylru@1.4.0:
resolution: {integrity: sha512-2OQsPNEmBCvXuFlIni/a+Rn+R2pHW9INm0BxXJ4hVDA8TirqMj+J/Rp9ItLatT/5pZqWwefVrTQcHpixsxnVlA==}
engines: {node: '>= 4.0.0'}
dev: true
/yn@3.1.1:
resolution: {integrity: sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==}
engines: {node: '>=6'}