diff --git a/.changeset/config.json b/.changeset/config.json index ae4f134f72c..a419533273b 100644 --- a/.changeset/config.json +++ b/.changeset/config.json @@ -28,7 +28,10 @@ "@module-federation/runtime-core", "create-module-federation", "@module-federation/cli", - "@module-federation/rspress-plugin" + "@module-federation/rspress-plugin", + "@module-federation/metro", + "@module-federation/metro-plugin-rnef", + "@module-federation/metro-plugin-rnc-cli" ] ], "ignorePatterns": ["^alpha|^beta"], diff --git a/.changeset/metro-package-integration.md b/.changeset/metro-package-integration.md new file mode 100644 index 00000000000..4b70f5ee239 --- /dev/null +++ b/.changeset/metro-package-integration.md @@ -0,0 +1,7 @@ +--- +'@module-federation/metro-plugin-rnc-cli': patch +'@module-federation/metro-plugin-rnef': patch +'@module-federation/metro': patch +--- + +Initial Release of Metro package diff --git a/.github/workflows/build-and-test.yml b/.github/workflows/build-and-test.yml index 33b01a38ba5..6c82f98d9c8 100644 --- a/.github/workflows/build-and-test.yml +++ b/.github/workflows/build-and-test.yml @@ -1,5 +1,8 @@ name: Build Affected Packages +permissions: + contents: read + on: pull_request: branches: [main, '**'] @@ -72,7 +75,10 @@ jobs: [ "$pkg" != "packages/core" ] && \ [ "$pkg" != "packages/esbuild" ] && \ [ "$pkg" != "packages/modernjs" ] && \ - [ "$pkg" != "packages/utilities" ]; then + [ "$pkg" != "packages/utilities" ] && \ + [ "$pkg" != "packages/metro-core" ] && \ + [ "$pkg" != "packages/metro-plugin-rnef" ] && \ + [ "$pkg" != "packages/metro-plugin-rnc-cli" ]; then echo "Checking $pkg..." npx publint "$pkg" fi @@ -134,3 +140,8 @@ jobs: needs: checkout-install uses: ./.github/workflows/e2e-router.yml secrets: inherit + + build-metro: + needs: checkout-install + uses: ./.github/workflows/build-metro.yml + secrets: inherit diff --git a/.github/workflows/build-metro.yml b/.github/workflows/build-metro.yml new file mode 100644 index 00000000000..c9cf40f8135 --- /dev/null +++ b/.github/workflows/build-metro.yml @@ -0,0 +1,57 @@ +name: Build Metro Packages + +on: + workflow_call: + +permissions: + contents: read + +jobs: + build-metro: + runs-on: ubuntu-latest + timeout-minutes: 15 + steps: + - name: Checkout Repository + uses: actions/checkout@v3 + with: + fetch-depth: 0 + + - name: Install Pnpm + run: | + corepack prepare pnpm@8.11.0 --activate + corepack enable + + - name: Setup Node.js 18 + uses: actions/setup-node@v3 + with: + node-version: '18' + cache: 'pnpm' + + - name: Set Nx SHA + uses: nrwl/nx-set-shas@v3 + + - name: Install Dependencies + run: pnpm install + + - name: Build All Required Packages + run: | + npx nx run-many --targets=build --projects=tag:type:pkg,tag:type:metro --parallel=4 + + - name: Test Metro Packages + uses: nick-fields/retry@v3 + with: + max_attempts: 2 + timeout_minutes: 5 + command: npx nx affected -t test --parallel=2 --exclude='*,!tag:type:metro' + + - name: Lint Metro Packages + run: npx nx run-many --targets=lint --projects=tag:type:metro --parallel=2 + + - name: Check Metro Package Publishing Compatibility + run: | + for pkg in packages/metro-*; do + if [ -f "$pkg/package.json" ]; then + echo "Checking $pkg..." + npx publint "$pkg" + fi + done diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index b6caed555d9..04b1b6faa37 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -49,6 +49,7 @@ jobs: run: | git fetch origin main npx nx run-many --targets=build --projects=tag:type:pkg --skip-nx-cache + npx nx run-many --targets=build --projects=tag:type:metro ls -l packages/*/dist packages/*/package.json - name: Release diff --git a/apps/modernjs-ssr/dynamic-nested-remote/cypress.config.ts b/apps/modernjs-ssr/dynamic-nested-remote/cypress.config.ts new file mode 100644 index 00000000000..d8edfbd8d6a --- /dev/null +++ b/apps/modernjs-ssr/dynamic-nested-remote/cypress.config.ts @@ -0,0 +1,15 @@ +import { nxE2EPreset } from '@nx/cypress/plugins/cypress-preset'; +import { defineConfig } from 'cypress'; + +export default defineConfig({ + e2e: { + ...nxE2EPreset(__filename, { cypressDir: 'cypress' }), + baseUrl: 'http://localhost:8080', + injectDocumentDomain: true, + }, + defaultCommandTimeout: 20000, + retries: { + runMode: 2, + openMode: 1, + }, +}); diff --git a/apps/modernjs-ssr/dynamic-nested-remote/cypress/e2e/app.cy.ts b/apps/modernjs-ssr/dynamic-nested-remote/cypress/e2e/app.cy.ts new file mode 100644 index 00000000000..a07d6d8d1a3 --- /dev/null +++ b/apps/modernjs-ssr/dynamic-nested-remote/cypress/e2e/app.cy.ts @@ -0,0 +1,6 @@ +describe('ModernJS SSR Dynamic Nested Remote', () => { + it('should load the app', () => { + cy.visit('http://localhost:8080'); + cy.contains('dynamic-nested-remote'); + }); +}); diff --git a/apps/modernjs-ssr/dynamic-nested-remote/cypress/support/e2e.ts b/apps/modernjs-ssr/dynamic-nested-remote/cypress/support/e2e.ts new file mode 100644 index 00000000000..9aa4e3de0ed --- /dev/null +++ b/apps/modernjs-ssr/dynamic-nested-remote/cypress/support/e2e.ts @@ -0,0 +1,4 @@ +// This file is processed and loaded automatically before your test files. +// You can change the location of this file or turn off processing it by setting the +// "supportFile" option to false. +// You can read more here: https://on.cypress.io/configuration diff --git a/apps/modernjs-ssr/dynamic-nested-remote/project.json b/apps/modernjs-ssr/dynamic-nested-remote/project.json index e9d2a602c22..b854e1e616b 100644 --- a/apps/modernjs-ssr/dynamic-nested-remote/project.json +++ b/apps/modernjs-ssr/dynamic-nested-remote/project.json @@ -1,7 +1,7 @@ { "name": "modernjs-ssr-dynamic-nested-remote", "$schema": "../../node_modules/nx/schemas/project-schema.json", - "sourceRoot": "apps/modernjs-ssr/modernjs-ssr-dynamic-nested-remote/src", + "sourceRoot": "apps/modernjs-ssr/dynamic-nested-remote/src", "projectType": "application", "tags": [], "implicitDependencies": ["typescript"], @@ -43,7 +43,7 @@ "e2e": { "executor": "@nx/cypress:cypress", "options": { - "cypressConfig": "apps/modernjs-ssr/modernjs-ssr-dynamic-nested-remote/cypress.config.ts", + "cypressConfig": "apps/modernjs-ssr/dynamic-nested-remote/cypress.config.ts", "testingType": "e2e", "baseUrl": "http://localhost:4001", "browser": "chrome" diff --git a/apps/modernjs-ssr/dynamic-remote-new-version/project.json b/apps/modernjs-ssr/dynamic-remote-new-version/project.json index 5377694416d..cd8efeb84a4 100644 --- a/apps/modernjs-ssr/dynamic-remote-new-version/project.json +++ b/apps/modernjs-ssr/dynamic-remote-new-version/project.json @@ -1,7 +1,7 @@ { "name": "modernjs-ssr-dynamic-remote-new-version", "$schema": "../../node_modules/nx/schemas/project-schema.json", - "sourceRoot": "apps/modernjs-ssr/modernjs-ssr-dynamic-remote-new-version/src", + "sourceRoot": "apps/modernjs-ssr/dynamic-remote-new-version/src", "projectType": "application", "tags": [], "implicitDependencies": ["typescript"], @@ -43,7 +43,7 @@ "e2e": { "executor": "@nx/cypress:cypress", "options": { - "cypressConfig": "apps/modernjs-ssr/modernjs-ssr-dynamic-remote-new-version/cypress.config.ts", + "cypressConfig": "apps/modernjs-ssr/dynamic-remote-new-version/cypress.config.ts", "testingType": "e2e", "baseUrl": "http://localhost:4001", "browser": "chrome" diff --git a/apps/modernjs-ssr/dynamic-remote/package.json b/apps/modernjs-ssr/dynamic-remote/package.json index 59a040d0545..3c61e060af3 100644 --- a/apps/modernjs-ssr/dynamic-remote/package.json +++ b/apps/modernjs-ssr/dynamic-remote/package.json @@ -12,6 +12,7 @@ "types": "./dist/cjs/index.d.ts", "devDependencies": { "@module-federation/enhanced": "workspace:*", + "@module-federation/modern-js": "workspace:*", "@module-federation/rsbuild-plugin": "workspace:*", "@rsbuild/plugin-react": "^1.3.1", "@rslib/core": "^0.9.0", diff --git a/apps/modernjs-ssr/dynamic-remote/project.json b/apps/modernjs-ssr/dynamic-remote/project.json index d93708f7027..7714f4f54e6 100644 --- a/apps/modernjs-ssr/dynamic-remote/project.json +++ b/apps/modernjs-ssr/dynamic-remote/project.json @@ -1,7 +1,7 @@ { "name": "modernjs-ssr-dynamic-remote", "$schema": "../../node_modules/nx/schemas/project-schema.json", - "sourceRoot": "apps/modernjs-ssr/modernjs-ssr-dynamic-remote/src", + "sourceRoot": "apps/modernjs-ssr/dynamic-remote/src", "projectType": "application", "tags": [], "targets": { @@ -43,7 +43,7 @@ "e2e": { "executor": "@nx/cypress:cypress", "options": { - "cypressConfig": "apps/modernjs-ssr/modernjs-ssr-dynamic-remote/cypress.config.ts", + "cypressConfig": "apps/modernjs-ssr/dynamic-remote/cypress.config.ts", "testingType": "e2e", "baseUrl": "http://localhost:4001", "browser": "chrome" diff --git a/apps/modernjs-ssr/host/project.json b/apps/modernjs-ssr/host/project.json index 436c76e62ca..1138140abef 100644 --- a/apps/modernjs-ssr/host/project.json +++ b/apps/modernjs-ssr/host/project.json @@ -1,7 +1,7 @@ { "name": "modernjs-ssr-host", "$schema": "../../node_modules/nx/schemas/project-schema.json", - "sourceRoot": "apps/modernjs-ssr/modernjs-ssr-host/src", + "sourceRoot": "apps/modernjs-ssr/host/src", "projectType": "application", "tags": [], "implicitDependencies": ["typescript"], diff --git a/apps/modernjs-ssr/nested-remote/project.json b/apps/modernjs-ssr/nested-remote/project.json index 68ec5b969b8..f69506a899a 100644 --- a/apps/modernjs-ssr/nested-remote/project.json +++ b/apps/modernjs-ssr/nested-remote/project.json @@ -1,7 +1,7 @@ { "name": "modernjs-ssr-nested-remote", "$schema": "../../node_modules/nx/schemas/project-schema.json", - "sourceRoot": "apps/modernjs-ssr/modernjs-ssr-nested-remote/src", + "sourceRoot": "apps/modernjs-ssr/nested-remote/src", "projectType": "application", "tags": [], "implicitDependencies": ["typescript"], diff --git a/apps/modernjs-ssr/remote-new-version/project.json b/apps/modernjs-ssr/remote-new-version/project.json index 2c847c05d20..658cef781f7 100644 --- a/apps/modernjs-ssr/remote-new-version/project.json +++ b/apps/modernjs-ssr/remote-new-version/project.json @@ -1,7 +1,7 @@ { "name": "modernjs-ssr-remote-new-version", "$schema": "../../node_modules/nx/schemas/project-schema.json", - "sourceRoot": "apps/modernjs-ssr/modernjs-ssr-remote-new-version/src", + "sourceRoot": "apps/modernjs-ssr/remote-new-version/src", "projectType": "application", "tags": [], "implicitDependencies": ["typescript"], @@ -43,7 +43,7 @@ "e2e": { "executor": "@nx/cypress:cypress", "options": { - "cypressConfig": "apps/modernjs-ssr/modernjs-ssr-remote-new-version/cypress.config.ts", + "cypressConfig": "apps/modernjs-ssr/remote-new-version/cypress.config.ts", "testingType": "e2e", "baseUrl": "http://localhost:4001", "browser": "chrome" diff --git a/package.json b/package.json index fd898eb95d3..f0deedfe40c 100644 --- a/package.json +++ b/package.json @@ -52,7 +52,7 @@ "prepare": "husky install", "changeset": "changeset", "build:packages": "npx nx affected -t build --parallel=10 --exclude='*,!tag:type:pkg'", - "changegen": "./changeset-gen.js --path ./packages/runtime && ./changeset-gen.js --path ./packages/runtime-core && ./changeset-gen.js --path ./packages/sdk &&./changeset-gen.js --path ./packages/cli --staged && ./changeset-gen.js --path ./packages/enhanced && ./changeset-gen.js --path ./packages/node && ./changeset-gen.js --path ./packages/data-prefetch && ./changeset-gen.js --path ./packages/nextjs-mf && ./changeset-gen.js --path ./packages/dts-plugin", + "changegen": "./changeset-gen.js --path ./packages/runtime && ./changeset-gen.js --path ./packages/runtime-core && ./changeset-gen.js --path ./packages/sdk &&./changeset-gen.js --path ./packages/cli --staged && ./changeset-gen.js --path ./packages/enhanced && ./changeset-gen.js --path ./packages/node && ./changeset-gen.js --path ./packages/data-prefetch && ./changeset-gen.js --path ./packages/nextjs-mf && ./changeset-gen.js --path ./packages/dts-plugin && ./changeset-gen.js --path ./packages/metro-core", "commitgen:staged": "./commit-gen.js --path ./packages --staged", "commitgen:main": "./commit-gen.js --path ./packages", "changeset:status": "changeset status", diff --git a/packages/metro-core/.eslintrc.json b/packages/metro-core/.eslintrc.json index 5c3013868ca..ce209fa0a58 100644 --- a/packages/metro-core/.eslintrc.json +++ b/packages/metro-core/.eslintrc.json @@ -34,6 +34,26 @@ ] } }, + { + "files": ["src/runtime/*.js"], + "globals": { + "__ENTRYPOINT_IMPORT__": "readonly", + "__PLUGINS__": "readonly", + "__REMOTES__": "readonly", + "__SHARED__": "readonly", + "__NAME__": "readonly", + "__SHARE_STRATEGY__": "readonly", + "__EARLY_REMOTES__": "readonly", + "__EARLY_SHARED__": "readonly", + "__EXPOSES_MAP__": "readonly", + "__DEV__": "readonly", + "__METRO_GLOBAL_PREFIX__": "readonly", + "__EARLY_MODULE_TEST__": "readonly", + "__MODULE_ID__": "readonly", + "globalThis": "readonly", + "plugins": "readonly" + } + }, { "files": ["*.js", "*.jsx"] } diff --git a/packages/metro-core/project.json b/packages/metro-core/project.json index 60b27e6a6b4..c8fa094939f 100644 --- a/packages/metro-core/project.json +++ b/packages/metro-core/project.json @@ -3,8 +3,15 @@ "$schema": "../../node_modules/nx/schemas/project-schema.json", "sourceRoot": "packages/metro-core/src", "projectType": "library", - "tags": ["type:pkg"], + "tags": ["type:metro"], "targets": { + "build": { + "executor": "nx:run-commands", + "options": { + "cwd": "packages/metro-core", + "commands": ["pnpm build"] + } + }, "lint": { "executor": "@nx/eslint:lint", "outputs": ["{options.outputFile}"], diff --git a/packages/metro-core/rslib.config.ts b/packages/metro-core/rslib.config.ts index 9e3f8636c78..2cb4e1009c4 100644 --- a/packages/metro-core/rslib.config.ts +++ b/packages/metro-core/rslib.config.ts @@ -15,6 +15,7 @@ export default defineConfig({ }, output: { externals: ({ request }, callback) => + // eslint-disable-next-line @typescript-eslint/no-non-null-assertion callback(undefined, externalizeMetroImports(request!)), }, shims: { diff --git a/packages/metro-core/src/babel/transformer.js b/packages/metro-core/src/babel/transformer.js index a218928b249..bff4e037199 100644 --- a/packages/metro-core/src/babel/transformer.js +++ b/packages/metro-core/src/babel/transformer.js @@ -1,5 +1,7 @@ +/* eslint-disable no-undef */ const babelTransformer = require('__BABEL_TRANSFORMER_PATH__'); const babelPlugins = __BABEL_PLUGINS__; +/* eslint-enable no-undef */ function transform(config) { return babelTransformer.transform({ diff --git a/packages/metro-core/src/commands/bundle-host/index.ts b/packages/metro-core/src/commands/bundle-host/index.ts index 6ee97f3ccfc..dfe3908d604 100644 --- a/packages/metro-core/src/commands/bundle-host/index.ts +++ b/packages/metro-core/src/commands/bundle-host/index.ts @@ -12,10 +12,15 @@ import { saveBundleAndMap } from '../utils/save-bundle-and-map'; import type { BundleFederatedHostArgs } from './types'; declare global { + // eslint-disable-next-line no-var var __METRO_FEDERATION_CONFIG: ModuleFederationConfigNormalized; + // eslint-disable-next-line no-var var __METRO_FEDERATION_ORIGINAL_ENTRY_PATH: string | undefined; + // eslint-disable-next-line no-var var __METRO_FEDERATION_HOST_ENTRY_PATH: string | undefined; + // eslint-disable-next-line no-var var __METRO_FEDERATION_REMOTE_ENTRY_PATH: string | undefined; + // eslint-disable-next-line no-var var __METRO_FEDERATION_MANIFEST_PATH: string | undefined; } diff --git a/packages/metro-core/src/commands/bundle-remote/index.ts b/packages/metro-core/src/commands/bundle-remote/index.ts index 327ecc42d3f..946eac4eb4a 100644 --- a/packages/metro-core/src/commands/bundle-remote/index.ts +++ b/packages/metro-core/src/commands/bundle-remote/index.ts @@ -18,9 +18,13 @@ import type { BundleFederatedRemoteArgs } from './types'; const DEFAULT_OUTPUT = 'dist'; declare global { + // eslint-disable-next-line no-var var __METRO_FEDERATION_CONFIG: ModuleFederationConfigNormalized; + // eslint-disable-next-line no-var var __METRO_FEDERATION_ORIGINAL_ENTRY_PATH: string | undefined; + // eslint-disable-next-line no-var var __METRO_FEDERATION_REMOTE_ENTRY_PATH: string | undefined; + // eslint-disable-next-line no-var var __METRO_FEDERATION_MANIFEST_PATH: string | undefined; } @@ -173,6 +177,7 @@ async function bundleFederatedRemote( // ending up in the bundles e.g. ../../node_modules/lodash.js -> shared/lodash.js resolveRequest: (context, moduleName, platform) => { // always defined since we define it in the MF plugin + // eslint-disable-next-line @typescript-eslint/no-non-null-assertion const originalResolveRequest = rawConfig.resolver!.resolveRequest!; const res = originalResolveRequest(context, moduleName, platform); return modulePathRemapper.remap(res); diff --git a/packages/metro-core/src/modules/asyncStartup.tsx b/packages/metro-core/src/modules/asyncStartup.tsx index 1864ce7a8c9..7bc3c30de6c 100644 --- a/packages/metro-core/src/modules/asyncStartup.tsx +++ b/packages/metro-core/src/modules/asyncStartup.tsx @@ -2,10 +2,15 @@ import type { Federation } from '@module-federation/runtime'; import React from 'react'; declare global { + // eslint-disable-next-line no-var var __DEV__: boolean; + // eslint-disable-next-line no-var var __METRO_GLOBAL_PREFIX__: string; + // eslint-disable-next-line no-var var __FUSEBOX_HAS_FULL_CONSOLE_SUPPORT__: boolean; + // eslint-disable-next-line no-var var __loadBundleAsync: (entry: string) => Promise; + // eslint-disable-next-line no-var var __FEDERATION__: Federation; } diff --git a/packages/metro-core/src/modules/metroCorePlugin.ts b/packages/metro-core/src/modules/metroCorePlugin.ts index bcf02acc242..a904006ba3a 100644 --- a/packages/metro-core/src/modules/metroCorePlugin.ts +++ b/packages/metro-core/src/modules/metroCorePlugin.ts @@ -4,10 +4,15 @@ import type { } from '@module-federation/runtime'; declare global { + // eslint-disable-next-line no-var var __DEV__: boolean; + // eslint-disable-next-line no-var var __METRO_GLOBAL_PREFIX__: string; + // eslint-disable-next-line no-var var __FUSEBOX_HAS_FULL_CONSOLE_SUPPORT__: boolean; + // eslint-disable-next-line no-var var __loadBundleAsync: (entry: string) => Promise; + // eslint-disable-next-line no-var var __FEDERATION__: Federation; } diff --git a/packages/metro-core/src/plugin/index.ts b/packages/metro-core/src/plugin/index.ts index 90f04d97d95..89cbc929c7c 100644 --- a/packages/metro-core/src/plugin/index.ts +++ b/packages/metro-core/src/plugin/index.ts @@ -25,9 +25,13 @@ import { getModuleFederationSerializer } from './serializer'; import { validateOptions } from './validate-options'; declare global { + // eslint-disable-next-line no-var var __METRO_FEDERATION_CONFIG: ModuleFederationConfigNormalized; + // eslint-disable-next-line no-var var __METRO_FEDERATION_ORIGINAL_ENTRY_PATH: string | undefined; + // eslint-disable-next-line no-var var __METRO_FEDERATION_REMOTE_ENTRY_PATH: string | undefined; + // eslint-disable-next-line no-var var __METRO_FEDERATION_MANIFEST_PATH: string | undefined; } diff --git a/packages/metro-plugin-rnc-cli/project.json b/packages/metro-plugin-rnc-cli/project.json index ba8050dcdb3..0f6803ca181 100644 --- a/packages/metro-plugin-rnc-cli/project.json +++ b/packages/metro-plugin-rnc-cli/project.json @@ -3,7 +3,7 @@ "$schema": "../../node_modules/nx/schemas/project-schema.json", "sourceRoot": "packages/metro-plugin-rnc-cli/", "projectType": "library", - "tags": ["type:pkg"], + "tags": ["type:metro"], "targets": { "build": { "executor": "nx:run-commands", diff --git a/packages/metro-plugin-rnef/project.json b/packages/metro-plugin-rnef/project.json index 8c83cd9d7bb..0787a78c1f3 100644 --- a/packages/metro-plugin-rnef/project.json +++ b/packages/metro-plugin-rnef/project.json @@ -3,8 +3,15 @@ "$schema": "../../node_modules/nx/schemas/project-schema.json", "sourceRoot": "packages/metro-plugin-rnef/src", "projectType": "library", - "tags": ["type:pkg"], + "tags": ["type:metro"], "targets": { + "build": { + "executor": "nx:run-commands", + "options": { + "commands": ["pnpm build"], + "cwd": "packages/metro-plugin-rnef" + } + }, "lint": { "executor": "@nx/eslint:lint" } diff --git a/packages/modernjs/project.json b/packages/modernjs/project.json index 771c07beddc..6f0d89870e3 100644 --- a/packages/modernjs/project.json +++ b/packages/modernjs/project.json @@ -18,7 +18,6 @@ "options": { "parallel": false, "commands": [ - "pnpm i", "cd packages/modernjs; pnpm run build || (sleep 2 && pnpm run build)", "cp packages/modernjs/LICENSE packages/modernjs/dist" ] diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 266b28da58e..89f54dcda91 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -1396,6 +1396,9 @@ importers: '@module-federation/enhanced': specifier: workspace:* version: link:../../../packages/enhanced + '@module-federation/modern-js': + specifier: workspace:* + version: link:../../../packages/modernjs '@module-federation/rsbuild-plugin': specifier: workspace:* version: link:../../../packages/rsbuild-plugin @@ -19034,7 +19037,7 @@ packages: '@octokit/plugin-throttling': 9.4.0(@octokit/core@6.1.4) '@semantic-release/error': 4.0.0 aggregate-error: 5.0.0 - debug: 4.4.0(supports-color@8.1.1) + debug: 4.4.0(supports-color@9.3.1) dir-glob: 3.0.1 globby: 14.1.0 http-proxy-agent: 7.0.2 @@ -20468,7 +20471,7 @@ packages: '@swc-node/sourcemap-support': 0.5.1 '@swc/core': 1.7.26(@swc/helpers@0.5.13) colorette: 2.0.20 - debug: 4.4.0(supports-color@8.1.1) + debug: 4.4.0(supports-color@9.3.1) oxc-resolver: 5.2.0 pirates: 4.0.7 tslib: 2.8.1 @@ -22766,7 +22769,7 @@ packages: '@verdaccio/loaders': 8.0.0-next-8.6 '@verdaccio/signature': 8.0.0-next-8.7 '@verdaccio/utils': 8.1.0-next-8.15 - debug: 4.4.0(supports-color@8.1.1) + debug: 4.4.0(supports-color@9.3.1) lodash: 4.17.21 verdaccio-htpasswd: 13.0.0-next-8.15 transitivePeerDependencies: @@ -22785,7 +22788,7 @@ packages: dependencies: '@verdaccio/core': 8.0.0-next-8.15 '@verdaccio/utils': 8.1.0-next-8.15 - debug: 4.4.0(supports-color@8.1.1) + debug: 4.4.0(supports-color@9.3.1) js-yaml: 4.1.0 lodash: 4.17.21 minimatch: 7.4.6 @@ -22819,7 +22822,7 @@ packages: resolution: {integrity: sha512-yuqD8uAZJcgzuNHjV6C438UNT5r2Ai9+SnUlO34AHZdWSYcluO3Zj5R3p5uf+C7YPCE31pUD27wBU74xVbUoBw==} engines: {node: '>=18'} dependencies: - debug: 4.4.0(supports-color@8.1.1) + debug: 4.4.0(supports-color@9.3.1) lodash: 4.17.21 transitivePeerDependencies: - supports-color @@ -22846,7 +22849,7 @@ packages: '@verdaccio/core': 8.0.0-next-8.15 '@verdaccio/logger-prettify': 8.0.0-next-8.2 colorette: 2.0.20 - debug: 4.4.0(supports-color@8.1.1) + debug: 4.4.0(supports-color@9.3.1) transitivePeerDependencies: - supports-color @@ -22877,7 +22880,7 @@ packages: '@verdaccio/core': 8.0.0-next-8.15 '@verdaccio/url': 13.0.0-next-8.15 '@verdaccio/utils': 8.1.0-next-8.15 - debug: 4.4.0(supports-color@8.1.1) + debug: 4.4.0(supports-color@9.3.1) express: 4.21.2 express-rate-limit: 5.5.1 lodash: 4.17.21 @@ -22895,7 +22898,7 @@ packages: engines: {node: '>=18'} dependencies: '@verdaccio/config': 8.0.0-next-8.15 - debug: 4.4.0(supports-color@8.1.1) + debug: 4.4.0(supports-color@9.3.1) jsonwebtoken: 9.0.2 transitivePeerDependencies: - supports-color @@ -22911,7 +22914,7 @@ packages: '@verdaccio/core': 8.0.0-next-8.15 '@verdaccio/url': 13.0.0-next-8.15 '@verdaccio/utils': 8.1.0-next-8.15 - debug: 4.4.0(supports-color@8.1.1) + debug: 4.4.0(supports-color@9.3.1) gunzip-maybe: 1.4.2 lodash: 4.17.21 tar-stream: 3.1.7 @@ -22926,7 +22929,7 @@ packages: engines: {node: '>=18'} dependencies: '@verdaccio/core': 8.0.0-next-8.15 - debug: 4.4.0(supports-color@8.1.1) + debug: 4.4.0(supports-color@9.3.1) lodash: 4.17.21 validator: 13.12.0 transitivePeerDependencies: @@ -28323,6 +28326,7 @@ packages: dependencies: ms: 2.1.3 supports-color: 8.1.1 + dev: true /debug@4.4.0(supports-color@9.3.1): resolution: {integrity: sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==} @@ -28335,7 +28339,6 @@ packages: dependencies: ms: 2.1.3 supports-color: 9.3.1 - dev: true /debug@4.4.1(supports-color@5.5.0): resolution: {integrity: sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==} @@ -30439,7 +30442,7 @@ packages: ajv: 6.12.6 chalk: 4.1.2 cross-spawn: 7.0.6 - debug: 4.4.0(supports-color@8.1.1) + debug: 4.4.0(supports-color@9.3.1) escape-string-regexp: 4.0.0 eslint-scope: 8.3.0 eslint-visitor-keys: 4.2.0 @@ -46550,7 +46553,6 @@ packages: /supports-color@9.3.1: resolution: {integrity: sha512-knBY82pjmnIzK3NifMo3RxEIRD9E0kIzV4BKcyTZ9+9kWgLMxd4PrsTSMoFQUabgRBbF8KOLRDCyKgNV+iK44Q==} engines: {node: '>=12'} - dev: true /supports-hyperlinks@3.2.0: resolution: {integrity: sha512-zFObLMyZeEwzAoKCyu1B91U79K2t7ApXuQfo8OuxwXLDgcKxuwM+YvcbIhm6QWqz7mHUH1TVytR1PwVVjEuMig==} @@ -48011,7 +48013,7 @@ packages: bundle-require: 4.2.1(esbuild@0.19.2) cac: 6.7.14 chokidar: 3.6.0 - debug: 4.4.0(supports-color@8.1.1) + debug: 4.4.0(supports-color@9.3.1) esbuild: 0.19.2 execa: 5.1.1 globby: 11.1.0 @@ -48053,7 +48055,7 @@ packages: cac: 6.7.14 chokidar: 4.0.1 consola: 3.2.3 - debug: 4.4.0(supports-color@8.1.1) + debug: 4.4.0(supports-color@9.3.1) esbuild: 0.24.0 joycon: 3.1.1 picocolors: 1.1.1 @@ -48970,7 +48972,7 @@ packages: apache-md5: 1.1.8 bcryptjs: 2.4.3 core-js: 3.40.0 - debug: 4.4.0(supports-color@8.1.1) + debug: 4.4.0(supports-color@9.3.1) http-errors: 2.0.0 unix-crypt-td-js: 1.1.4 transitivePeerDependencies: @@ -49001,7 +49003,7 @@ packages: clipanion: 4.0.0-rc.4(typanion@3.14.0) compression: 1.8.0 cors: 2.8.5 - debug: 4.4.0(supports-color@8.1.1) + debug: 4.4.0(supports-color@9.3.1) envinfo: 7.14.0 express: 4.21.2 handlebars: 4.7.8 @@ -49193,7 +49195,7 @@ packages: '@volar/typescript': 2.4.13 '@vue/language-core': 2.2.0(typescript@5.5.2) compare-versions: 6.1.1 - debug: 4.4.0(supports-color@8.1.1) + debug: 4.4.0(supports-color@9.3.1) kolorist: 1.8.0 local-pkg: 1.1.1 magic-string: 0.30.17