diff --git a/.github/workflows/release-production-platform-plugins.yml b/.github/workflows/release-production-platform-plugins.yml index da4cc80680..060a9f07d6 100644 --- a/.github/workflows/release-production-platform-plugins.yml +++ b/.github/workflows/release-production-platform-plugins.yml @@ -37,14 +37,6 @@ jobs: filename: .github/config/release.json prefix: release - # Dev Dependencies - - name: Publishing dev dependencies (Production) - uses: JS-DevTools/npm-publish@v3 - with: - token: ${{ secrets.NPM_TOKEN }} - package: ./packages/contentstack-dev-dependencies/package.json - tag: latest - # Utilities - name: Publishing utilities (Production) uses: JS-DevTools/npm-publish@v3 diff --git a/.talismanrc b/.talismanrc index 74748021e5..e03b666036 100644 --- a/.talismanrc +++ b/.talismanrc @@ -2,5 +2,5 @@ fileignoreconfig: - filename: .github/workflows/release-production-pipeline.yml checksum: 48264fdeb61cbbed348c7271aae5e155651f490aca063dbb1d54f2c15a154090 - filename: pnpm-lock.yaml - checksum: 86aa5ecf1bce4a09ae5ee3027c28664b749bd95eaabffc51449ab4bfd99bfe69 + checksum: c64bb59690952523cb0c314de42499c168d3e08b1810e4583a546c5773bd89fc version: '1.0' diff --git a/packages/contentstack-utilities/src/contentstack-management-sdk.ts b/packages/contentstack-utilities/src/contentstack-management-sdk.ts index 77600cc31f..468996114c 100644 --- a/packages/contentstack-utilities/src/contentstack-management-sdk.ts +++ b/packages/contentstack-utilities/src/contentstack-management-sdk.ts @@ -2,7 +2,12 @@ import { client, ContentstackClient, ContentstackConfig } from '@contentstack/ma import authHandler from './auth-handler'; import { Agent } from 'node:https'; import configHandler, { default as configStore } from './config-handler'; -import { getProxyConfigForHost, resolveRequestHost, clearProxyEnv } from './proxy-helper'; +import { + getProxyConfigForHost, + resolveRequestHost, + clearProxyEnv, + shouldBypassProxy, +} from './proxy-helper'; import dotenv from 'dotenv'; dotenv.config(); @@ -22,13 +27,13 @@ class ManagementSDKInitiator { // NO_PROXY has priority over HTTP_PROXY/HTTPS_PROXY and config-set proxy const proxyConfig = getProxyConfigForHost(host); - // When bypassing, clear proxy env immediately so SDK never see it (they may read at init or first request). - if (!proxyConfig) { + // When NO_PROXY matches, strip proxy env so SDK/axios cannot pick up HTTP_PROXY for this process. + if (host && shouldBypassProxy(host)) { clearProxyEnv(); } const option: ContentstackConfig = { - host: config.host, + host: config.host || host || undefined, maxContentLength: config.maxContentLength || 100000000, maxBodyLength: config.maxBodyLength || 1000000000, maxRequests: 10, @@ -118,7 +123,10 @@ class ManagementSDKInitiator { if (proxyConfig) { option.proxy = proxyConfig; + } else if (host && shouldBypassProxy(host)) { + option.proxy = false; } + // When host is in NO_PROXY, do not add proxy to option at all if (config.endpoint) { option.endpoint = config.endpoint; } diff --git a/packages/contentstack-utilities/src/http-client/client.ts b/packages/contentstack-utilities/src/http-client/client.ts index 2fd213d2ed..c96a890152 100644 --- a/packages/contentstack-utilities/src/http-client/client.ts +++ b/packages/contentstack-utilities/src/http-client/client.ts @@ -3,19 +3,25 @@ import { IHttpClient } from './client-interface'; import { HttpResponse } from './http-response'; import configStore from '../config-handler'; import authHandler from '../auth-handler'; -import { hasProxy, getProxyUrl, getProxyConfig, getProxyConfigForHost } from '../proxy-helper'; +import { + hasProxy, + getProxyUrl, + getProxyConfigForHost, + resolveRequestHost, + shouldBypassProxy, +} from '../proxy-helper'; /** * Derive request host from baseURL or url for NO_PROXY checks. */ function getRequestHost(baseURL?: string, url?: string): string | undefined { const toTry = [baseURL, url].filter(Boolean) as string[]; - for (const candidateUrl of toTry) { + for (const u of toTry) { try { - const parsed = new URL(candidateUrl.startsWith('http') ? candidateUrl : `https://${candidateUrl}`); + const parsed = new URL(u.startsWith('http') ? u : `https://${u}`); return parsed.hostname || undefined; } catch { - // Invalid URL; try next candidate (baseURL or url) + // ignore } } return undefined; @@ -427,12 +433,14 @@ export class HttpClient implements IHttpClient { } } - // Configure proxy if available. NO_PROXY has priority: hosts in NO_PROXY never use proxy. + // Configure proxy if available. NO_PROXY has priority; fall back to region CMA for host resolution. if (!this.request.proxy) { - const host = getRequestHost(this.request.baseURL, url); - const proxyConfig = host ? getProxyConfigForHost(host) : getProxyConfig(); + const host = getRequestHost(this.request.baseURL, url) || resolveRequestHost({}); + const proxyConfig = getProxyConfigForHost(host); if (proxyConfig) { this.request.proxy = proxyConfig; + } else if (host && shouldBypassProxy(host)) { + this.request.proxy = false; } } diff --git a/packages/contentstack-utilities/src/proxy-helper.ts b/packages/contentstack-utilities/src/proxy-helper.ts index 68de79fc8d..7abd8eda74 100644 --- a/packages/contentstack-utilities/src/proxy-helper.ts +++ b/packages/contentstack-utilities/src/proxy-helper.ts @@ -82,44 +82,14 @@ export function shouldBypassProxy(host: string): boolean { } /** - * Get proxy configuration. Sources (in order): env (HTTP_PROXY/HTTPS_PROXY), then global config - * from `csdx config:set:proxy --host --port --protocol `. + * Get proxy configuration. Priority order (per spec): + * 1. Global CLI config from `csdx config:set:proxy --host --port --protocol ` + * 2. Environment variables (HTTPS_PROXY or HTTP_PROXY) * For per-request use, prefer getProxyConfigForHost(host) so NO_PROXY overrides both sources. * @returns ProxyConfig object or undefined if no proxy is configured */ export function getProxyConfig(): ProxyConfig | undefined { - // Priority 1: Environment variables (HTTPS_PROXY or HTTP_PROXY) - const proxyUrl = process.env.HTTPS_PROXY || process.env.HTTP_PROXY; - - if (proxyUrl) { - try { - const url = new URL(proxyUrl); - const defaultPort = url.protocol === 'https:' ? 443 : 80; - const port = url.port ? Number.parseInt(url.port, 10) : defaultPort; - - if (!Number.isNaN(port) && port >= 1 && port <= 65535) { - const protocol = url.protocol.replace(':', '') as 'http' | 'https'; - const proxyConfig: ProxyConfig = { - protocol: protocol, - host: url.hostname, - port: port, - }; - - if (url.username || url.password) { - proxyConfig.auth = { - username: url.username, - password: url.password, - }; - } - - return proxyConfig; - } - } catch { - // Invalid URL, continue to check global config - } - } - - // Priority 2: Global config (csdx config:set:proxy) + // Priority 1: Global config (csdx config:set:proxy) const globalProxyConfig = configStore.get('proxy'); if (globalProxyConfig) { if (typeof globalProxyConfig === 'object') { @@ -151,11 +121,42 @@ export function getProxyConfig(): ProxyConfig | undefined { return proxyConfig; } } catch { - // Invalid URL, return undefined + // Invalid URL, continue to check environment } } } + // Priority 2: Environment variables (HTTPS_PROXY or HTTP_PROXY) + const proxyUrl = process.env.HTTPS_PROXY || process.env.HTTP_PROXY; + + if (proxyUrl) { + try { + const url = new URL(proxyUrl); + const defaultPort = url.protocol === 'https:' ? 443 : 80; + const port = url.port ? Number.parseInt(url.port, 10) : defaultPort; + + if (!Number.isNaN(port) && port >= 1 && port <= 65535) { + const protocol = url.protocol.replace(':', '') as 'http' | 'https'; + const proxyConfig: ProxyConfig = { + protocol: protocol, + host: url.hostname, + port: port, + }; + + if (url.username || url.password) { + proxyConfig.auth = { + username: url.username, + password: url.password, + }; + } + + return proxyConfig; + } + } catch { + // Invalid URL, return undefined + } + } + return undefined; } @@ -172,27 +173,38 @@ export function getProxyConfigForHost(host: string): ProxyConfig | undefined { return getProxyConfig(); } +function regionCmaHostname(): string { + const cma = configStore.get('region')?.cma; + if (!cma || typeof cma !== 'string') { + return ''; + } + if (cma.startsWith('http')) { + try { + const u = new URL(cma); + return u.hostname || cma; + } catch { + return cma; + } + } + return cma; +} + /** - * Resolve request host for proxy/NO_PROXY checks: config.host or default CMA from region. - * Use when the caller may omit host so NO_PROXY still applies (e.g. from region.cma). - * @param config - Object with optional host (e.g. API client config) - * @returns Host string (hostname or empty) + * Hostname for NO_PROXY / proxy. Prefer `region.cma` when set so callers that pass a + * default SDK host (e.g. bulk-entries -> api.contentstack.io) still match rules like + * `.csnonprod.com` against the real API host (e.g. dev11-api.csnonprod.com). */ export function resolveRequestHost(config: { host?: string }): string { - if (config.host) return config.host; - const cma = configStore.get('region')?.cma; - if (cma && typeof cma === 'string') { - if (cma.startsWith('http')) { - try { - const u = new URL(cma); - return u.hostname || cma; - } catch { - return cma; - } - } - return cma; + const fromRegion = regionCmaHostname(); + if (fromRegion) { + return normalizeHost(fromRegion) || fromRegion; + } + + const raw = config.host?.trim() || ''; + if (!raw) { + return ''; } - return ''; + return normalizeHost(raw) || raw; } /** diff --git a/packages/contentstack/package.json b/packages/contentstack/package.json index 18510206cf..6cf688b92c 100755 --- a/packages/contentstack/package.json +++ b/packages/contentstack/package.json @@ -1,7 +1,7 @@ { "name": "@contentstack/cli", "description": "Command-line tool (CLI) to interact with Contentstack", - "version": "1.59.0", + "version": "1.60.0", "author": "Contentstack", "bin": { "csdx": "./bin/run.js" @@ -19,24 +19,24 @@ "prepack": "pnpm compile && oclif manifest && oclif readme" }, "dependencies": { - "@contentstack/cli-audit": "~1.18.0", - "@contentstack/cli-cm-export": "~1.23.2", - "@contentstack/cli-cm-import": "~1.31.3", - "@contentstack/cli-auth": "~1.7.3", - "@contentstack/cli-cm-bootstrap": "~1.18.4", - "@contentstack/cli-cm-branches": "~1.6.3", - "@contentstack/cli-cm-bulk-publish": "~1.10.7", - "@contentstack/cli-cm-clone": "~1.20.1", - "@contentstack/cli-cm-export-to-csv": "~1.11.0", - "@contentstack/cli-cm-import-setup": "~1.7.3", + "@contentstack/cli-audit": "~1.19.0", + "@contentstack/cli-cm-export": "~1.24.0", + "@contentstack/cli-cm-import": "~1.32.0", + "@contentstack/cli-auth": "~1.8.0", + "@contentstack/cli-cm-bootstrap": "~1.19.0", + "@contentstack/cli-cm-branches": "~1.7.0", + "@contentstack/cli-cm-bulk-publish": "~1.11.0", + "@contentstack/cli-cm-clone": "~1.21.0", + "@contentstack/cli-cm-export-to-csv": "~1.12.0", + "@contentstack/cli-cm-import-setup": "~1.8.0", "@contentstack/cli-cm-migrate-rte": "~1.6.4", - "@contentstack/cli-cm-seed": "~1.14.3", - "@contentstack/cli-command": "~1.7.2", - "@contentstack/cli-config": "~1.19.0", + "@contentstack/cli-cm-seed": "~1.15.0", + "@contentstack/cli-command": "~1.8.0", + "@contentstack/cli-config": "~1.20.0", "@contentstack/cli-launch": "^1.9.6", - "@contentstack/cli-migration": "~1.11.0", - "@contentstack/cli-utilities": "~1.17.4", - "@contentstack/cli-variants": "~1.3.8", + "@contentstack/cli-migration": "~1.12.0", + "@contentstack/cli-utilities": "~1.18.0", + "@contentstack/cli-variants": "~1.4.0", "@contentstack/management": "~1.27.5", "@oclif/core": "^4.8.3", "@oclif/plugin-help": "^6.2.28", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 5ad89037cf..ae676ea922 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -6,6 +6,7 @@ settings: overrides: picomatch: 4.0.4 + brace-expansion: 5.0.5 importers: @@ -21,59 +22,59 @@ importers: packages/contentstack: dependencies: '@contentstack/cli-audit': - specifier: ~1.18.0 - version: 1.18.0(@types/node@14.18.63)(debug@4.4.3) + specifier: ~1.19.0 + version: 1.19.0(@types/node@14.18.63)(debug@4.4.3) '@contentstack/cli-auth': - specifier: ~1.7.3 - version: 1.7.3(@types/node@14.18.63)(debug@4.4.3) + specifier: ~1.8.0 + version: link:../contentstack-auth '@contentstack/cli-cm-bootstrap': - specifier: ~1.18.4 - version: 1.18.4(@types/node@14.18.63)(debug@4.4.3) + specifier: ~1.19.0 + version: 1.19.0(@types/node@14.18.63)(debug@4.4.3) '@contentstack/cli-cm-branches': - specifier: ~1.6.3 - version: 1.6.3(@types/node@14.18.63)(debug@4.4.3) + specifier: ~1.7.0 + version: 1.7.0(@types/node@14.18.63)(debug@4.4.3) '@contentstack/cli-cm-bulk-publish': - specifier: ~1.10.7 - version: 1.10.7(@types/node@14.18.63)(debug@4.4.3) + specifier: ~1.11.0 + version: 1.11.0(@types/node@14.18.63)(debug@4.4.3) '@contentstack/cli-cm-clone': - specifier: ~1.20.1 - version: 1.20.1(@types/node@14.18.63)(debug@4.4.3) + specifier: ~1.21.0 + version: 1.21.0(@types/node@14.18.63)(debug@4.4.3) '@contentstack/cli-cm-export': - specifier: ~1.23.2 - version: 1.23.2(@types/node@14.18.63)(debug@4.4.3) + specifier: ~1.24.0 + version: 1.24.0(@types/node@14.18.63)(debug@4.4.3) '@contentstack/cli-cm-export-to-csv': - specifier: ~1.11.0 - version: 1.11.0(@types/node@14.18.63)(debug@4.4.3) + specifier: ~1.12.0 + version: 1.12.0(@types/node@14.18.63)(debug@4.4.3) '@contentstack/cli-cm-import': - specifier: ~1.31.3 - version: 1.31.3(@types/node@14.18.63) + specifier: ~1.32.0 + version: 1.32.0(@types/node@14.18.63) '@contentstack/cli-cm-import-setup': - specifier: ~1.7.3 - version: 1.7.3(@types/node@14.18.63)(debug@4.4.3) + specifier: ~1.8.0 + version: 1.8.0(@types/node@14.18.63)(debug@4.4.3) '@contentstack/cli-cm-migrate-rte': specifier: ~1.6.4 version: 1.6.4(@types/node@14.18.63)(debug@4.4.3) '@contentstack/cli-cm-seed': - specifier: ~1.14.3 - version: 1.14.3(@types/node@14.18.63)(debug@4.4.3) + specifier: ~1.15.0 + version: 1.15.0(@types/node@14.18.63)(debug@4.4.3) '@contentstack/cli-command': - specifier: ~1.7.2 - version: 1.7.2(@types/node@14.18.63)(debug@4.4.3) + specifier: ~1.8.0 + version: link:../contentstack-command '@contentstack/cli-config': - specifier: ~1.19.0 - version: 1.19.0(@types/node@14.18.63)(debug@4.4.3) + specifier: ~1.20.0 + version: link:../contentstack-config '@contentstack/cli-launch': specifier: ^1.9.6 version: 1.9.6(@types/node@14.18.63)(debug@4.4.3)(tslib@2.8.1)(typescript@4.9.5) '@contentstack/cli-migration': - specifier: ~1.11.0 - version: 1.11.0(@types/node@14.18.63)(debug@4.4.3) + specifier: ~1.12.0 + version: 1.12.0(@types/node@14.18.63)(debug@4.4.3) '@contentstack/cli-utilities': - specifier: ~1.17.4 - version: 1.17.4(@types/node@14.18.63)(debug@4.4.3) + specifier: ~1.18.0 + version: link:../contentstack-utilities '@contentstack/cli-variants': - specifier: ~1.3.8 - version: 1.3.8(@types/node@14.18.63)(debug@4.4.3) + specifier: ~1.4.0 + version: 1.4.0(@types/node@14.18.63)(debug@4.4.3) '@contentstack/management': specifier: ~1.27.5 version: 1.27.6(debug@4.4.3) @@ -782,66 +783,61 @@ packages: resolution: {integrity: sha512-Ir+AOibqzrIsL6ajt3Rz3LskB7OiMVHqltZmspbW/TJuTVuyOMirVqAkjfY6JISiLHgyNqicAC8AyHHGzNd/dA==} engines: {node: '>=0.1.90'} - '@contentstack/cli-audit@1.17.1': - resolution: {integrity: sha512-xJCA+oPqj5mmOkkK5+ElCEPLnbzlA/p1/HYnX3JLDJ8FvFEinVicUiTtH2xWdXXCQuBVnA/XgA/5ntkIzvxMWQ==} - engines: {node: '>=16'} - hasBin: true - - '@contentstack/cli-audit@1.18.0': - resolution: {integrity: sha512-ujEa17rPu/bBBQgdcGxLNRwurUVYLAAlN6YYZ18985ofgADgB6zSEopXdF40eOkY9+T7wqCIXkhgUFpu9E/ahw==} + '@contentstack/cli-audit@1.19.0': + resolution: {integrity: sha512-NwET9cBeCmM5tM3faJ8wG4YMX9JrGYo7lYE7WQhmVUOhC/7bbYKPpWb6Jmy3JMvzP9YSwmSrztEUdwotB4F6WQ==} engines: {node: '>=16'} hasBin: true - '@contentstack/cli-auth@1.7.3': - resolution: {integrity: sha512-C34CpY/avOhPgMPHEQVxpECtg5XzPM8hPut2ubUhmty8GT7YpacVkskEd3UwvAptc/cmVtdZgPf/3w1fp108pw==} - engines: {node: '>=14.0.0'} - - '@contentstack/cli-cm-bootstrap@1.18.4': - resolution: {integrity: sha512-m0sHhWjTHP8qFVtPs4OkXehFxxh6OloDrnWxofu5wNP02tv8QvDaAoDlL3iVweQ04Yd+Latk1ZSmN08VzhLX7g==} + '@contentstack/cli-cm-bootstrap@1.19.0': + resolution: {integrity: sha512-0v7rW02EYIEhLYU529zvXpc+T0x5I+zVagkENnlPIrh37huJFP9KKt3l+IGNC8PI5jsNE1RF3AylVDYz97Pf2A==} engines: {node: '>=14.0.0'} - '@contentstack/cli-cm-branches@1.6.3': - resolution: {integrity: sha512-t1z9MX7Egql3TG9QbxFAOswqVvknv0AeCcv8j+4dydPvdcZQ3UgUxyQdc6tUHLFaBqhjqIcPiZP8Dbf14bSenw==} + '@contentstack/cli-cm-branches@1.7.0': + resolution: {integrity: sha512-5uCqqzB1mGlHX8Ac3+3bteUuQ0CNBHmAZ6mRj9D6/DPTW7spbOHkKWksMyKuSrbkOTj57otjZUpcWvZobuW5kg==} engines: {node: '>=14.0.0'} - '@contentstack/cli-cm-bulk-publish@1.10.7': - resolution: {integrity: sha512-26m8Ge5o3M7TuyamtkIehN51gX10QsHDXEKdVbOW5UxGJGsqbMfyQouFQzT/FLRvTtohL/IqbwQIpDDksK2FpA==} + '@contentstack/cli-cm-bulk-publish@1.11.0': + resolution: {integrity: sha512-oQd1se/3qa18exmuIFvBL+zH3wuSWHuS4eV1nAyYA6pVl8HU4hqcCj1ygHdMdUx7ZLckESgZjeOfeglbUJg3zQ==} engines: {node: '>=14.0.0'} - '@contentstack/cli-cm-clone@1.20.1': - resolution: {integrity: sha512-nWBFLtDWoe7TOjf00zL/hrdZvdwgIbhM02qsd6oBizQLcXEAhVs9vsuZpRBhfbYoPCFGP98dSrvDZ8weFQaJ9A==} + '@contentstack/cli-cm-clone@1.21.0': + resolution: {integrity: sha512-StImHRgX+9iGjdnFOM3AAdU7+ccOrMk3mr1p0oaIlqPLu5QDrMqNZialhuV0BjZ0BXPhLm93bpXuEKg0cCK+5w==} engines: {node: '>=14.0.0'} - '@contentstack/cli-cm-export-to-csv@1.11.0': - resolution: {integrity: sha512-S7C5MCiEu3z9Unk3p6majXILpqmDNSuJPmZqt9m+f11+Wk3S1gHq2+mDre8hAx9zpN6Y9wloQCI3MIuC4vcp4g==} + '@contentstack/cli-cm-export-to-csv@1.12.0': + resolution: {integrity: sha512-eJHxBwO/k6L979jugS2G9dUQp9csuP1IL5boK4/2tT61H55ah3/EQR0TfDq8kwVQaUaRMmI/JbDscrauOR48TA==} engines: {node: '>=18.0.0'} - '@contentstack/cli-cm-export@1.23.2': - resolution: {integrity: sha512-Woa4nMiM9EyXJI4R33bi6MkBsZIkGiioOtDE1LrHp6gqDv9YB//QSj3xjJQ6Qo74a2DROVc9ZFD8xkInTJr3Gw==} + '@contentstack/cli-cm-export@1.24.0': + resolution: {integrity: sha512-eRdSt3z08W7MNH1CnXhZSwJ4o/jodYIBGv+f1G3Zs3ZrthNToDQBR7018gmVjjoZYXIRMvaHo8Nw8eZgbYtchA==} engines: {node: '>=14.0.0'} - '@contentstack/cli-cm-import-setup@1.7.3': - resolution: {integrity: sha512-dEPtaNCaf/oROG6s7McXHy2Eh00WBmGuwZyKLG7+a5k0j6zfkpbI18l8CziI1C7xWtAUAsufO7jGlCLDfjL9uA==} + '@contentstack/cli-cm-import-setup@1.8.0': + resolution: {integrity: sha512-h4vTeFNfKF09NTbJmki1p4EYEh9KxMJn3G7U3CJ7IurcxI6ccNxJuEFhsCHYGwX+UwmZ8TcJMqmbsHwAMQjP0Q==} engines: {node: '>=14.0.0'} - '@contentstack/cli-cm-import@1.31.3': - resolution: {integrity: sha512-s/vPCKQigZNmXQ0B5RpKHLypNVWT/Rk7KJIPp3Ua2jUrAG9hXQnbbG9/ySNeQZRFMPcosbgvRp7xUfysQXCouw==} + '@contentstack/cli-cm-import@1.32.0': + resolution: {integrity: sha512-S+WVN+b5kMa+VaaZSM0oaaYsR3SGTOjlJlvzeFe0Kykkxau6DKbEMvDE2esmsFn21HpUxjLb58//7KS5BhedhQ==} engines: {node: '>=14.0.0'} '@contentstack/cli-cm-migrate-rte@1.6.4': resolution: {integrity: sha512-TKswWWtq+DmUDXv+Fx88vxBAhS3kqfBoRXIOGJQNIdpQzHzaLxiCyOdmcCFyK1YhYDWzU19ad/s0GLBlv0D8fg==} engines: {node: '>=14.0.0'} - '@contentstack/cli-cm-seed@1.14.3': - resolution: {integrity: sha512-YQrh2lVv7bbp1RjuUZ1WNg5D2Kvmat/coMnMHNRZBMJ/zY7kVXhliDRdfioK7W31e66QyA084u80FxdGUJVyXQ==} + '@contentstack/cli-cm-seed@1.15.0': + resolution: {integrity: sha512-7G0c5Nn80MZ1/D7LCu2S3nEJG9J1gMXNcRYZdKB0AaG89DiMwDWX9WQ/xfWUSnOoMZq0izEkt76yC4hPD3cRaQ==} engines: {node: '>=14.0.0'} '@contentstack/cli-command@1.7.2': resolution: {integrity: sha512-dtXc3gIcnivfLegADy5/PZb+1x/esZ65H2E1CjO/pg50UC8Vy1U+U0ozS0hJZTFoaVjeG+1VJRoxf5MrtUGnNA==} engines: {node: '>=14.0.0'} - '@contentstack/cli-config@1.19.0': - resolution: {integrity: sha512-c2TMArDEguTneZXt6h7tVFGEPdtv+FhnxeTOpjxcGKRMvDxhQxFGhS5h9G5Q/mMrUjbDn8x5CizGV8zlnvC1Ag==} + '@contentstack/cli-command@1.8.0': + resolution: {integrity: sha512-JsOVaz7jBUMeul04DZagSlS74tsIyz/f0NmsHPsr9WV+u3fRO90ilRUG1SKrreUGa7x31gIU0CB5riQeu+TXYg==} + engines: {node: '>=14.0.0'} + + '@contentstack/cli-config@1.20.0': + resolution: {integrity: sha512-WURtexv9+lQWNPriWvaakHS+9SmGoO3Aq/zLu5SNt2k2Mj+awJwUehYcuZIVflTVzXlUQvxtU0Bn/mCpX2jkmQ==} engines: {node: '>=14.0.0'} '@contentstack/cli-launch@1.9.6': @@ -849,15 +845,18 @@ packages: engines: {node: '>=14.0.0'} hasBin: true - '@contentstack/cli-migration@1.11.0': - resolution: {integrity: sha512-lbPNtSK9EKm1EA9X6IyiijrELsjv4TRNZoHpuLNUB5iKzXWAM63L4e/q57sx7S9TkRR4NxMM+ckNwNfSj51Q9Q==} + '@contentstack/cli-migration@1.12.0': + resolution: {integrity: sha512-CMs/rkiKuWos2iNVH9pfZWvPACAtvdkXXBhGHnrM/ChT9rUCYd5a58WKFLMdF06EAYt3CW3hd29AnmbGoJgjeA==} engines: {node: '>=8.3.0'} '@contentstack/cli-utilities@1.17.4': resolution: {integrity: sha512-45Ujy0lNtQiU0FhZrtfGEfte4kjy3tlOnlVz6REH+cW/y1Dgg1nMh+YVgygbOh+6b8PkvTYVlEvb15UxRarNiA==} - '@contentstack/cli-variants@1.3.8': - resolution: {integrity: sha512-DtfA7hdH9zbbeSt0h0QQgwxp27yTdCH3jX58OK+EhPs6lf+c/q3tTxj6Jnf9BEUk3bYBkIkhC9OiRtiCRTaf+g==} + '@contentstack/cli-utilities@1.18.0': + resolution: {integrity: sha512-JEm6ElIegkcibHUEjRF+Id9529bAXBqkf0Givs9GL5CZE7d8eiLzFCUnlb51VZynk1g5+SmjY5nSeghrmcVSPg==} + + '@contentstack/cli-variants@1.4.0': + resolution: {integrity: sha512-avYWCteVVfChz2m/r6VzLAeRKboJjwZVZuQUEONJb0wOeSlFfUC/koYbUaoAtN8v+0vbVx4Z/EkQAaTJIMDbMg==} '@contentstack/json-rte-serializer@2.1.0': resolution: {integrity: sha512-klw+0kH5UtL4mHGDP7A8olZIaA4CoyAVzveYqso8uxeDXKkTvwF8D5HBhCqQLr0NXwhofl+FF431cbzGZ3TNCg==} @@ -2299,9 +2298,6 @@ packages: axios@1.13.6: resolution: {integrity: sha512-ChTCHMouEe2kn713WHbQGcuYrr6fXTBiu460OTwWrWob16g1bXn4vtz07Ope7ewMozJAnEquLk5lWQWtBig9DQ==} - balanced-match@1.0.2: - resolution: {integrity: sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==} - balanced-match@4.0.4: resolution: {integrity: sha512-BLrgEcRTwX2o6gGxGOCNyMvGSp35YofuYzw9h1IMTRmKqttAZZVU67bdb9Pr2vUHA8+j3i2tJfjO6C6+4myGTA==} engines: {node: 18 || 20 || >=22} @@ -2337,14 +2333,8 @@ packages: bowser@2.14.1: resolution: {integrity: sha512-tzPjzCxygAKWFOJP011oxFHs57HzIhOEracIgAePE4pqB3LikALKnSzUyU4MGs9/iCEUuHlAJTjTc5M+u7YEGg==} - brace-expansion@1.1.12: - resolution: {integrity: sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==} - - brace-expansion@2.0.2: - resolution: {integrity: sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==} - - brace-expansion@5.0.4: - resolution: {integrity: sha512-h+DEnpVvxmfVefa4jFbCf5HdH5YMDXRsmKflpf1pILZWRFlTbJpxeU55nJl4Smt5HQaGzg1o6RHFPJaOqnmBDg==} + brace-expansion@5.0.5: + resolution: {integrity: sha512-VZznLgtwhn+Mact9tfiwx64fA9erHH/MCXEUfB/0bX/6Fz6ny5EGTXYltMocqg4xFAQZtnO3DHWWXi8RiuN7cQ==} engines: {node: 18 || 20 || >=22} braces@3.0.3: @@ -2587,9 +2577,6 @@ packages: commondir@1.0.1: resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==} - concat-map@0.0.1: - resolution: {integrity: sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==} - concat-stream@2.0.0: resolution: {integrity: sha512-MWufYdFw53ccGjCA+Ol7XJYpAlW6/prSMzuPOTRnJGcGzuhLn4Scrz7qf6o8bROZ514ltazcIFJZevcfbo0x7A==} engines: {'0': node >= 6.0} @@ -5331,8 +5318,8 @@ packages: resolution: {integrity: sha512-g9ljZiwki/LfxmQADO3dEY1CbpmXT5Hm2fJ+QaGKwSXUylMybePR7/67YW7jOrrvjEgL1Fmz5kzyAjWVWLlucg==} engines: {node: '>=6'} - tar@7.5.10: - resolution: {integrity: sha512-8mOPs1//5q/rlkNSPcCegA6hiHJYDmSLEI8aMH/CdSQJNWztHC9WHNam5zdQlfpTwB9Xp7IBEsHfV5LKMJGVAw==} + tar@7.5.13: + resolution: {integrity: sha512-tOG/7GyXpFevhXVh8jOPJrmtRpOTsYqUIkVdVooZYJS/z8WhfQUX8RJILmeuJNinGAMSu1veBr4asSHFt5/hng==} engines: {node: '>=18'} test-exclude@6.0.0: @@ -6428,28 +6415,10 @@ snapshots: '@colors/colors@1.6.0': {} - '@contentstack/cli-audit@1.17.1(@types/node@14.18.63)(debug@4.4.3)': - dependencies: - '@contentstack/cli-command': 1.7.2(@types/node@14.18.63)(debug@4.4.3) - '@contentstack/cli-utilities': 1.17.4(@types/node@14.18.63)(debug@4.4.3) - '@oclif/core': 4.8.3 - '@oclif/plugin-help': 6.2.37 - '@oclif/plugin-plugins': 5.4.56 - chalk: 4.1.2 - fast-csv: 4.3.6 - fs-extra: 11.3.4 - lodash: 4.17.23 - uuid: 9.0.1 - winston: 3.19.0 - transitivePeerDependencies: - - '@types/node' - - debug - - supports-color - - '@contentstack/cli-audit@1.18.0(@types/node@14.18.63)(debug@4.4.3)': + '@contentstack/cli-audit@1.19.0(@types/node@14.18.63)(debug@4.4.3)': dependencies: - '@contentstack/cli-command': 1.7.2(@types/node@14.18.63)(debug@4.4.3) - '@contentstack/cli-utilities': 1.17.4(@types/node@14.18.63)(debug@4.4.3) + '@contentstack/cli-command': 1.8.0(@types/node@14.18.63)(debug@4.4.3) + '@contentstack/cli-utilities': 1.18.0(@types/node@14.18.63)(debug@4.4.3) '@oclif/core': 4.8.3 '@oclif/plugin-help': 6.2.37 '@oclif/plugin-plugins': 5.4.56 @@ -6464,37 +6433,26 @@ snapshots: - debug - supports-color - '@contentstack/cli-auth@1.7.3(@types/node@14.18.63)(debug@4.4.3)': - dependencies: - '@contentstack/cli-command': 1.7.2(@types/node@14.18.63)(debug@4.4.3) - '@contentstack/cli-utilities': 1.17.4(@types/node@14.18.63)(debug@4.4.3) - '@oclif/core': 4.8.3 - '@oclif/plugin-help': 6.2.37 - otplib: 12.0.1 - transitivePeerDependencies: - - '@types/node' - - debug - - '@contentstack/cli-cm-bootstrap@1.18.4(@types/node@14.18.63)(debug@4.4.3)': + '@contentstack/cli-cm-bootstrap@1.19.0(@types/node@14.18.63)(debug@4.4.3)': dependencies: - '@contentstack/cli-cm-seed': 1.14.3(@types/node@14.18.63)(debug@4.4.3) - '@contentstack/cli-command': 1.7.2(@types/node@14.18.63)(debug@4.4.3) - '@contentstack/cli-config': 1.19.0(@types/node@14.18.63)(debug@4.4.3) - '@contentstack/cli-utilities': 1.17.4(@types/node@14.18.63)(debug@4.4.3) + '@contentstack/cli-cm-seed': 1.15.0(@types/node@14.18.63)(debug@4.4.3) + '@contentstack/cli-command': 1.8.0(@types/node@14.18.63)(debug@4.4.3) + '@contentstack/cli-config': 1.20.0(@types/node@14.18.63)(debug@4.4.3) + '@contentstack/cli-utilities': 1.18.0(@types/node@14.18.63)(debug@4.4.3) '@oclif/core': 4.8.3 '@oclif/plugin-help': 6.2.37 inquirer: 8.2.7(@types/node@14.18.63) mkdirp: 1.0.4 - tar: 7.5.10 + tar: 7.5.13 transitivePeerDependencies: - '@types/node' - debug - supports-color - '@contentstack/cli-cm-branches@1.6.3(@types/node@14.18.63)(debug@4.4.3)': + '@contentstack/cli-cm-branches@1.7.0(@types/node@14.18.63)(debug@4.4.3)': dependencies: - '@contentstack/cli-command': 1.7.2(@types/node@14.18.63)(debug@4.4.3) - '@contentstack/cli-utilities': 1.17.4(@types/node@14.18.63)(debug@4.4.3) + '@contentstack/cli-command': 1.8.0(@types/node@14.18.63)(debug@4.4.3) + '@contentstack/cli-utilities': 1.18.0(@types/node@14.18.63)(debug@4.4.3) '@oclif/core': 4.8.3 '@oclif/plugin-help': 6.2.37 chalk: 4.1.2 @@ -6504,11 +6462,11 @@ snapshots: - '@types/node' - debug - '@contentstack/cli-cm-bulk-publish@1.10.7(@types/node@14.18.63)(debug@4.4.3)': + '@contentstack/cli-cm-bulk-publish@1.11.0(@types/node@14.18.63)(debug@4.4.3)': dependencies: - '@contentstack/cli-command': 1.7.2(@types/node@14.18.63)(debug@4.4.3) - '@contentstack/cli-config': 1.19.0(@types/node@14.18.63)(debug@4.4.3) - '@contentstack/cli-utilities': 1.17.4(@types/node@14.18.63)(debug@4.4.3) + '@contentstack/cli-command': 1.8.0(@types/node@14.18.63)(debug@4.4.3) + '@contentstack/cli-config': 1.20.0(@types/node@14.18.63)(debug@4.4.3) + '@contentstack/cli-utilities': 1.18.0(@types/node@14.18.63)(debug@4.4.3) '@oclif/core': 4.8.3 '@oclif/plugin-help': 6.2.37 chalk: 4.1.2 @@ -6520,13 +6478,13 @@ snapshots: - '@types/node' - debug - '@contentstack/cli-cm-clone@1.20.1(@types/node@14.18.63)(debug@4.4.3)': + '@contentstack/cli-cm-clone@1.21.0(@types/node@14.18.63)(debug@4.4.3)': dependencies: '@colors/colors': 1.6.0 - '@contentstack/cli-cm-export': 1.23.2(@types/node@14.18.63)(debug@4.4.3) - '@contentstack/cli-cm-import': 1.31.3(@types/node@14.18.63) - '@contentstack/cli-command': 1.7.2(@types/node@14.18.63)(debug@4.4.3) - '@contentstack/cli-utilities': 1.17.4(@types/node@14.18.63)(debug@4.4.3) + '@contentstack/cli-cm-export': 1.24.0(@types/node@14.18.63)(debug@4.4.3) + '@contentstack/cli-cm-import': 1.32.0(@types/node@14.18.63) + '@contentstack/cli-command': 1.8.0(@types/node@14.18.63)(debug@4.4.3) + '@contentstack/cli-utilities': 1.18.0(@types/node@14.18.63)(debug@4.4.3) '@oclif/core': 4.8.3 '@oclif/plugin-help': 6.2.37 chalk: 4.1.2 @@ -6541,10 +6499,10 @@ snapshots: - debug - supports-color - '@contentstack/cli-cm-export-to-csv@1.11.0(@types/node@14.18.63)(debug@4.4.3)': + '@contentstack/cli-cm-export-to-csv@1.12.0(@types/node@14.18.63)(debug@4.4.3)': dependencies: - '@contentstack/cli-command': 1.7.2(@types/node@14.18.63)(debug@4.4.3) - '@contentstack/cli-utilities': 1.17.4(@types/node@14.18.63)(debug@4.4.3) + '@contentstack/cli-command': 1.8.0(@types/node@14.18.63)(debug@4.4.3) + '@contentstack/cli-utilities': 1.18.0(@types/node@14.18.63)(debug@4.4.3) '@oclif/core': 4.8.3 '@oclif/plugin-help': 6.2.37 fast-csv: 4.3.6 @@ -6555,11 +6513,11 @@ snapshots: - '@types/node' - debug - '@contentstack/cli-cm-export@1.23.2(@types/node@14.18.63)(debug@4.4.3)': + '@contentstack/cli-cm-export@1.24.0(@types/node@14.18.63)(debug@4.4.3)': dependencies: - '@contentstack/cli-command': 1.7.2(@types/node@14.18.63)(debug@4.4.3) - '@contentstack/cli-utilities': 1.17.4(@types/node@14.18.63)(debug@4.4.3) - '@contentstack/cli-variants': 1.3.8(@types/node@14.18.63)(debug@4.4.3) + '@contentstack/cli-command': 1.8.0(@types/node@14.18.63)(debug@4.4.3) + '@contentstack/cli-utilities': 1.18.0(@types/node@14.18.63)(debug@4.4.3) + '@contentstack/cli-variants': 1.4.0(@types/node@14.18.63)(debug@4.4.3) '@oclif/core': 4.8.3 async: 3.2.6 big-json: 3.2.0 @@ -6575,10 +6533,10 @@ snapshots: - '@types/node' - debug - '@contentstack/cli-cm-import-setup@1.7.3(@types/node@14.18.63)(debug@4.4.3)': + '@contentstack/cli-cm-import-setup@1.8.0(@types/node@14.18.63)(debug@4.4.3)': dependencies: - '@contentstack/cli-command': 1.7.2(@types/node@14.18.63)(debug@4.4.3) - '@contentstack/cli-utilities': 1.17.4(@types/node@14.18.63)(debug@4.4.3) + '@contentstack/cli-command': 1.8.0(@types/node@14.18.63)(debug@4.4.3) + '@contentstack/cli-utilities': 1.18.0(@types/node@14.18.63)(debug@4.4.3) '@oclif/core': 4.8.3 big-json: 3.2.0 chalk: 4.1.2 @@ -6591,12 +6549,12 @@ snapshots: - '@types/node' - debug - '@contentstack/cli-cm-import@1.31.3(@types/node@14.18.63)': + '@contentstack/cli-cm-import@1.32.0(@types/node@14.18.63)': dependencies: - '@contentstack/cli-audit': 1.17.1(@types/node@14.18.63)(debug@4.4.3) - '@contentstack/cli-command': 1.7.2(@types/node@14.18.63)(debug@4.4.3) - '@contentstack/cli-utilities': 1.17.4(@types/node@14.18.63)(debug@4.4.3) - '@contentstack/cli-variants': 1.3.8(@types/node@14.18.63)(debug@4.4.3) + '@contentstack/cli-audit': 1.19.0(@types/node@14.18.63)(debug@4.4.3) + '@contentstack/cli-command': 1.8.0(@types/node@14.18.63)(debug@4.4.3) + '@contentstack/cli-utilities': 1.18.0(@types/node@14.18.63)(debug@4.4.3) + '@contentstack/cli-variants': 1.4.0(@types/node@14.18.63)(debug@4.4.3) '@oclif/core': 4.8.3 big-json: 3.2.0 bluebird: 3.7.2 @@ -6637,14 +6595,14 @@ snapshots: - supports-color - utf-8-validate - '@contentstack/cli-cm-seed@1.14.3(@types/node@14.18.63)(debug@4.4.3)': + '@contentstack/cli-cm-seed@1.15.0(@types/node@14.18.63)(debug@4.4.3)': dependencies: - '@contentstack/cli-cm-import': 1.31.3(@types/node@14.18.63) - '@contentstack/cli-command': 1.7.2(@types/node@14.18.63)(debug@4.4.3) - '@contentstack/cli-utilities': 1.17.4(@types/node@14.18.63)(debug@4.4.3) + '@contentstack/cli-cm-import': 1.32.0(@types/node@14.18.63) + '@contentstack/cli-command': 1.8.0(@types/node@14.18.63)(debug@4.4.3) + '@contentstack/cli-utilities': 1.18.0(@types/node@14.18.63)(debug@4.4.3) inquirer: 8.2.7(@types/node@14.18.63) mkdirp: 1.0.4 - tar: 7.5.10 + tar: 7.5.13 tmp: 0.2.5 transitivePeerDependencies: - '@types/node' @@ -6661,10 +6619,20 @@ snapshots: - '@types/node' - debug - '@contentstack/cli-config@1.19.0(@types/node@14.18.63)(debug@4.4.3)': + '@contentstack/cli-command@1.8.0(@types/node@14.18.63)(debug@4.4.3)': dependencies: - '@contentstack/cli-command': 1.7.2(@types/node@14.18.63)(debug@4.4.3) - '@contentstack/cli-utilities': 1.17.4(@types/node@14.18.63)(debug@4.4.3) + '@contentstack/cli-utilities': 1.18.0(@types/node@14.18.63)(debug@4.4.3) + '@oclif/core': 4.8.3 + '@oclif/plugin-help': 6.2.37 + contentstack: 3.26.4 + transitivePeerDependencies: + - '@types/node' + - debug + + '@contentstack/cli-config@1.20.0(@types/node@14.18.63)(debug@4.4.3)': + dependencies: + '@contentstack/cli-command': 1.8.0(@types/node@14.18.63)(debug@4.4.3) + '@contentstack/cli-utilities': 1.18.0(@types/node@14.18.63)(debug@4.4.3) '@contentstack/utils': 1.7.1 '@oclif/core': 4.8.3 '@oclif/plugin-help': 6.2.37 @@ -6711,10 +6679,10 @@ snapshots: - tslib - typescript - '@contentstack/cli-migration@1.11.0(@types/node@14.18.63)(debug@4.4.3)': + '@contentstack/cli-migration@1.12.0(@types/node@14.18.63)(debug@4.4.3)': dependencies: - '@contentstack/cli-command': 1.7.2(@types/node@14.18.63)(debug@4.4.3) - '@contentstack/cli-utilities': 1.17.4(@types/node@14.18.63)(debug@4.4.3) + '@contentstack/cli-command': 1.8.0(@types/node@14.18.63)(debug@4.4.3) + '@contentstack/cli-utilities': 1.18.0(@types/node@14.18.63)(debug@4.4.3) '@oclif/core': 4.8.3 '@oclif/plugin-help': 6.2.37 async: 3.2.6 @@ -6765,9 +6733,44 @@ snapshots: - '@types/node' - debug - '@contentstack/cli-variants@1.3.8(@types/node@14.18.63)(debug@4.4.3)': + '@contentstack/cli-utilities@1.18.0(@types/node@14.18.63)(debug@4.4.3)': dependencies: - '@contentstack/cli-utilities': 1.17.4(@types/node@14.18.63)(debug@4.4.3) + '@contentstack/management': 1.27.6(debug@4.4.3) + '@contentstack/marketplace-sdk': 1.5.0(debug@4.4.3) + '@oclif/core': 4.8.3 + axios: 1.13.6(debug@4.4.3) + chalk: 4.1.2 + cli-cursor: 3.1.0 + cli-progress: 3.12.0 + cli-table: 0.3.11 + conf: 10.2.0 + dotenv: 16.6.1 + figures: 3.2.0 + inquirer: 8.2.7(@types/node@14.18.63) + inquirer-search-checkbox: 1.0.0 + inquirer-search-list: 1.2.6 + js-yaml: 4.1.1 + klona: 2.0.6 + lodash: 4.17.23 + mkdirp: 1.0.4 + open: 8.4.2 + ora: 5.4.1 + papaparse: 5.5.3 + recheck: 4.4.5 + rxjs: 6.6.7 + traverse: 0.6.11 + tty-table: 4.2.3 + unique-string: 2.0.0 + uuid: 9.0.1 + winston: 3.19.0 + xdg-basedir: 4.0.0 + transitivePeerDependencies: + - '@types/node' + - debug + + '@contentstack/cli-variants@1.4.0(@types/node@14.18.63)(debug@4.4.3)': + dependencies: + '@contentstack/cli-utilities': 1.18.0(@types/node@14.18.63)(debug@4.4.3) '@oclif/core': 4.8.3 '@oclif/plugin-help': 6.2.37 lodash: 4.17.23 @@ -8458,8 +8461,6 @@ snapshots: transitivePeerDependencies: - debug - balanced-match@1.0.2: {} - balanced-match@4.0.4: {} base64-js@1.5.1: {} @@ -8506,16 +8507,7 @@ snapshots: bowser@2.14.1: {} - brace-expansion@1.1.12: - dependencies: - balanced-match: 1.0.2 - concat-map: 0.0.1 - - brace-expansion@2.0.2: - dependencies: - balanced-match: 1.0.2 - - brace-expansion@5.0.4: + brace-expansion@5.0.5: dependencies: balanced-match: 4.0.4 @@ -8790,8 +8782,6 @@ snapshots: commondir@1.0.1: {} - concat-map@0.0.1: {} - concat-stream@2.0.0: dependencies: buffer-from: 1.1.2 @@ -10748,23 +10738,23 @@ snapshots: minimatch@10.2.4: dependencies: - brace-expansion: 5.0.4 + brace-expansion: 5.0.5 minimatch@3.1.5: dependencies: - brace-expansion: 1.1.12 + brace-expansion: 5.0.5 minimatch@5.1.9: dependencies: - brace-expansion: 2.0.2 + brace-expansion: 5.0.5 minimatch@9.0.3: dependencies: - brace-expansion: 2.0.2 + brace-expansion: 5.0.5 minimatch@9.0.9: dependencies: - brace-expansion: 2.0.2 + brace-expansion: 5.0.5 minimist@1.2.8: {} @@ -11851,7 +11841,7 @@ snapshots: tapable@2.3.0: {} - tar@7.5.10: + tar@7.5.13: dependencies: '@isaacs/fs-minipass': 4.0.1 chownr: 3.0.0 diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 4ac3fe84fa..721daf7701 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -2,3 +2,4 @@ packages: - 'packages/*' overrides: picomatch: 4.0.4 + brace-expansion: 5.0.5