diff --git a/package.json b/package.json index 77f31f6f44ee..bc58a1b8f01a 100644 --- a/package.json +++ b/package.json @@ -101,7 +101,7 @@ "got": "^13.0.0", "husky": "^9.0.11", "is-ci": "^4.0.0", - "lerna": "^9.0.7", + "lerna": "^10.0.0", "lint-staged": "^17.0.0", "nock": "^13.4.0", "playwright": "1.62.0", diff --git a/packages/impit-client/src/index.ts b/packages/impit-client/src/index.ts index ee9407319ef9..da72c480d517 100644 --- a/packages/impit-client/src/index.ts +++ b/packages/impit-client/src/index.ts @@ -2,7 +2,14 @@ import { pipeline, Readable, Transform } from 'node:stream'; import { type ReadableStream } from 'node:stream/web'; import { isGeneratorObject } from 'node:util/types'; -import type { BaseHttpClient, HttpRequest, HttpResponse, ResponseTypes, StreamingHttpResponse } from '@crawlee/core'; +import type { + BaseHttpClient, + HttpRequest, + HttpResponse, + RedirectHandler, + ResponseTypes, + StreamingHttpResponse, +} from '@crawlee/core'; import type { HttpMethod, ImpitOptions, ImpitResponse, RequestInit } from 'impit'; import { Impit } from 'impit'; import type { CookieJar as ToughCookieJar } from 'tough-cookie'; @@ -19,6 +26,8 @@ interface ResponseWithRedirects { redirectUrls: URL[]; } +type SimpleHeaders = Record; + /** * A HTTP client implementation based on the `impit library. */ @@ -119,6 +128,27 @@ export class ImpitHttpClient implements BaseHttpClient { return false; } + /** + * Converts Fetch/Impit headers into a simple header map. + * `Object.fromEntries` would keep only the last `set-cookie` value, so those are collected separately. + */ + private intoSimpleHeaders(headers: Headers): SimpleHeaders { + const result: SimpleHeaders = {}; + + for (const [key, value] of headers.entries()) { + if (key === 'set-cookie') continue; + result[key] = value; + } + + const setCookies = headers.getSetCookie(); + + if (setCookies.length > 0) { + result['set-cookie'] = setCookies.length === 1 ? setCookies[0] : setCookies; + } + + return result; + } + /** * Common implementation for `sendRequest` and `stream` methods. * @param request `HttpRequest` object @@ -130,6 +160,7 @@ export class ImpitHttpClient implements BaseHttpClient { redirectCount?: number; redirectUrls?: URL[]; }, + onRedirect?: RedirectHandler, ): Promise { if ((redirects?.redirectCount ?? 0) > this.maxRedirects) { throw new Error(`Too many redirects, maximum is ${this.maxRedirects}.`); @@ -159,16 +190,44 @@ export class ImpitHttpClient implements BaseHttpClient { throw new Error('Redirect response missing location header.'); } + const nextRedirectUrls = [...(redirects?.redirectUrls ?? []), redirectUrl]; + const updatedRequest: { url?: string | URL; headers: SimpleHeaders } = { + url: redirectUrl.href, + headers: { ...(request.headers ?? {}) }, + }; + + // Match GotScrapingHttpClient: allow HttpCrawler to persist redirect cookies into the session + // and mutate Cookie / URL for the next hop. + onRedirect?.( + { + redirectUrls: nextRedirectUrls, + url, + statusCode: response.status, + statusMessage: response.statusText, + headers: this.intoSimpleHeaders(response.headers), + trailers: {}, + complete: true, + }, + updatedRequest, + ); + + const nextUrl = + typeof updatedRequest.url === 'string' + ? updatedRequest.url + : (updatedRequest.url?.href ?? redirectUrl.href); + return this.getResponse( { ...request, method: this.shouldRewriteRedirectToGet(response.status, request.method) ? 'GET' : request.method, - url: redirectUrl.href, + url: nextUrl, + headers: updatedRequest.headers, }, { redirectCount: (redirects?.redirectCount ?? 0) + 1, - redirectUrls: [...(redirects?.redirectUrls ?? []), redirectUrl], + redirectUrls: nextRedirectUrls, }, + onRedirect, ); } @@ -203,7 +262,7 @@ export class ImpitHttpClient implements BaseHttpClient { } return { - headers: Object.fromEntries(response.headers.entries()), + headers: this.intoSimpleHeaders(response.headers), statusCode: response.status, url: response.url, request, @@ -243,8 +302,8 @@ export class ImpitHttpClient implements BaseHttpClient { /** * @inheritDoc */ - async stream(request: HttpRequest): Promise { - const { response, redirectUrls } = await this.getResponse(request); + async stream(request: HttpRequest, onRedirect?: RedirectHandler): Promise { + const { response, redirectUrls } = await this.getResponse(request, undefined, onRedirect); const [stream, getDownloadProgress] = this.getStreamWithProgress(response); return { @@ -258,7 +317,7 @@ export class ImpitHttpClient implements BaseHttpClient { }, uploadProgress: { percent: 100, transferred: 0 }, redirectUrls, - headers: Object.fromEntries(response.headers.entries()), + headers: this.intoSimpleHeaders(response.headers), trailers: {}, }; } diff --git a/test/core/crawlers/http_crawler.test.ts b/test/core/crawlers/http_crawler.test.ts index 0aa96976aca7..16d723df997e 100644 --- a/test/core/crawlers/http_crawler.test.ts +++ b/test/core/crawlers/http_crawler.test.ts @@ -39,6 +39,12 @@ router.set('/cookies', (req, res) => { res.end(JSON.stringify(req.headers.cookie)); }); +router.set('/setCookie', (req, res) => { + res.setHeader('content-type', 'text/html'); + res.setHeader('set-cookie', 'first=1'); + res.end(); +}); + router.set('/redirectWithoutCookies', (req, res) => { res.setHeader('location', '/cookies'); res.statusCode = 302; @@ -238,6 +244,27 @@ describe.each( expect(results).toStrictEqual(['foo=bar']); }); + test('handles cookies from redirects when the session already has cookies', async () => { + const results: string[] = []; + + const crawler = new HttpCrawler({ + httpClient, + sessionPoolOptions: { + maxPoolSize: 1, + // isolated so that cookies stored by the other tests / clients don't leak in + persistStateKey: `SDK_SESSION_POOL_STATE_${httpClient.constructor.name}`, + }, + maxConcurrency: 1, + requestHandler: async ({ body }) => { + results.push(body.toString()); + }, + }); + + await crawler.run([`${url}/setCookie`, `${url}/redirectAndCookies`]); + + expect(results[1]).toBe('"first=1; foo=bar"'); + }); + test('handles cookies from redirects - no empty cookie header', async () => { const results: string[] = []; diff --git a/test/core/impit_http_client.test.ts b/test/core/impit_http_client.test.ts index d85c8b427b6a..4f7542186afc 100644 --- a/test/core/impit_http_client.test.ts +++ b/test/core/impit_http_client.test.ts @@ -9,6 +9,37 @@ vi.mock('impit', () => ({ ), })); +function createRedirectResponse(status: number, location: string, setCookie: string[] = []) { + const headers = new Headers({ location }); + for (const cookie of setCookie) headers.append('set-cookie', cookie); + + return { + status, + statusText: 'Found', + url: 'http://example.com/start', + headers, + body: undefined, + }; +} + +function createFinalResponse(body = 'ok') { + return { + status: 200, + statusText: 'OK', + url: 'http://example.com/final', + headers: new Headers({ 'content-type': 'text/plain', 'content-length': String(body.length) }), + body: new ReadableStream({ + start(controller) { + controller.enqueue(new TextEncoder().encode(body)); + controller.close(); + }, + }), + text: async () => body, + json: async () => ({ body }), + bytes: async () => Buffer.from(body), + }; +} + describe('ImpitHttpClient', () => { beforeEach(() => { vi.mocked(Impit).mockClear(); @@ -31,4 +62,70 @@ describe('ImpitHttpClient', () => { expect(Impit).toHaveBeenCalledTimes(2); }); + + test('stream() invokes onRedirect and forwards mutated Cookie header to the next hop', async () => { + const httpClient = new ImpitHttpClient({ cacheClients: false }); + const fetchMock = vi.fn(); + + vi.mocked(Impit).mockImplementation( + class { + fetch = fetchMock; + } as any, + ); + + fetchMock + .mockResolvedValueOnce(createRedirectResponse(302, '/final', ['session=abc', 'other=def'])) + .mockResolvedValueOnce(createFinalResponse('done')); + + const onRedirect = vi.fn((_redirectResponse, updatedRequest) => { + updatedRequest.headers.Cookie = 'session=abc'; + }); + + const response = await httpClient.stream( + { + url: 'http://example.com/start', + method: 'GET', + headers: {}, + }, + onRedirect, + ); + + expect(onRedirect).toHaveBeenCalledTimes(1); + expect(fetchMock).toHaveBeenCalledTimes(2); + + const [redirectResponse] = onRedirect.mock.calls[0]; + expect(redirectResponse.statusCode).toBe(302); + expect(redirectResponse.headers['set-cookie']).toEqual(['session=abc', 'other=def']); + + const secondCallHeaders = fetchMock.mock.calls[1][1].headers as Headers; + expect(secondCallHeaders.get('Cookie')).toBe('session=abc'); + expect(fetchMock.mock.calls[1][0]).toBe('http://example.com/final'); + expect(response.statusCode).toBe(200); + expect(response.redirectUrls).toEqual([new URL('http://example.com/final')]); + }); + + test('stream() follows redirects without onRedirect for API compatibility', async () => { + const httpClient = new ImpitHttpClient({ cacheClients: false }); + const fetchMock = vi.fn(); + + vi.mocked(Impit).mockImplementation( + class { + fetch = fetchMock; + } as any, + ); + + fetchMock + .mockResolvedValueOnce(createRedirectResponse(302, 'http://example.com/final')) + .mockResolvedValueOnce(createFinalResponse('done')); + + const response = await httpClient.stream({ + url: 'http://example.com/start', + method: 'GET', + headers: {}, + }); + + expect(fetchMock).toHaveBeenCalledTimes(2); + expect(response.statusCode).toBe(200); + expect(response.redirectUrls).toHaveLength(1); + }); }); diff --git a/test/e2e/adaptive-playwright-robots-file/actor/main.js b/test/e2e/adaptive-playwright-robots-file/actor/main.js index d3355bc1f865..24b73bef554c 100644 --- a/test/e2e/adaptive-playwright-robots-file/actor/main.js +++ b/test/e2e/adaptive-playwright-robots-file/actor/main.js @@ -1,6 +1,48 @@ +import http from 'node:http'; + import { AdaptivePlaywrightCrawler } from '@crawlee/playwright'; import { Actor } from 'apify'; +// Self-contained fixture: robots.txt disallows /cart and /checkout, and the +// start page links to /cart alongside the allowed /collections/* pages. The +// crawler may only reach the collections. +const pages = { + '/robots.txt': ['User-agent: *', 'Disallow: /cart', 'Disallow: /checkout', ''].join('\n'), + '/': ` +Store + + Cart + Audio + TV +`, + // Every collection links back to /cart, so the robots.txt rule is what keeps + // it out of the dataset rather than a shortage of links to follow. + '/collections/audio': ` +Audio +Cart Home`, + '/collections/tv': ` +TV +Cart Home`, + '/cart': 'CartCart', + '/checkout': 'CheckoutCheckout', +}; + +const server = http.createServer((req, res) => { + const body = pages[req.url]; + if (body === undefined) { + res.statusCode = 404; + res.end('Not Found'); + return; + } + const type = req.url === '/robots.txt' ? 'text/plain' : 'text/html'; + res.writeHead(200, { 'content-type': `${type}; charset=utf-8` }); + res.end(body); +}); + +await new Promise((resolve) => server.listen(0, '127.0.0.1', resolve)); +const { port } = server.address(); +const baseUrl = `http://127.0.0.1:${port}`; + await Actor.init({ storage: process.env.STORAGE_IMPLEMENTATION === 'LOCAL' @@ -9,8 +51,6 @@ await Actor.init({ }); const crawler = new AdaptivePlaywrightCrawler({ - // The store rate-limits the platform's shared egress IP, so crawl through a proxy. - proxyConfiguration: await Actor.createProxyConfiguration(), maxRequestsPerCrawl: 10, respectRobotsTxtFile: true, onSkippedRequest: (args) => crawler.log.warningOnce(`Request ${args.url} was skipped, reason: ${args.reason}`), @@ -26,11 +66,13 @@ crawler.router.addDefaultHandler(async ({ log, request, enqueueLinks, pushData } }); await crawler.run([ - 'https://warehouse-theme-metal.myshopify.com', - 'https://warehouse-theme-metal.myshopify.com/checkout', // '/checkout' is disallowed by robots.txt + baseUrl, + `${baseUrl}/checkout`, // '/checkout' is disallowed by robots.txt ]); const data = await crawler.getData(); console.table(data.items); +server.close(); + await Actor.exit({ exit: Actor.isAtHome() }); diff --git a/test/e2e/adaptive-playwright-robots-file/test.mjs b/test/e2e/adaptive-playwright-robots-file/test.mjs index 9edc578f3585..867ebb305618 100644 --- a/test/e2e/adaptive-playwright-robots-file/test.mjs +++ b/test/e2e/adaptive-playwright-robots-file/test.mjs @@ -3,12 +3,12 @@ import { initialize, getActorTestDir, runActor, expect } from '../tools.mjs'; const testActorDirname = getActorTestDir(import.meta.url); await initialize(testActorDirname); -const { datasetItems } = await runActor(testActorDirname, 16384); +const { stats, datasetItems } = await runActor(testActorDirname, 16384); -const cartRequest = datasetItems.find((item) => item.url === 'https://warehouse-theme-metal.myshopify.com/cart'); -const checkoutRequest = datasetItems.find( - (item) => item.url === 'https://warehouse-theme-metal.myshopify.com/checkout', -); +// Without this the two assertions below hold vacuously when the crawl never starts. +await expect(stats.requestsFinished >= 1, 'All requests finished'); -await expect(!cartRequest, '/cart URL is not processed'); -await expect(!checkoutRequest, '/checkout URL is not processed'); +const paths = datasetItems.map((item) => new URL(item.url).pathname); + +await expect(!paths.includes('/cart'), '/cart URL is not processed'); +await expect(!paths.includes('/checkout'), '/checkout URL is not processed'); diff --git a/test/e2e/cheerio-enqueue-links-base/test.mjs b/test/e2e/cheerio-enqueue-links-base/test.mjs index 448973a3ecec..1af2a7738f4f 100644 --- a/test/e2e/cheerio-enqueue-links-base/test.mjs +++ b/test/e2e/cheerio-enqueue-links-base/test.mjs @@ -1,13 +1,4 @@ -import { initialize, getActorTestDir, runActor, expect, skipTest } from '../tools.mjs'; - -// The actor spins up an HTTP server on 127.0.0.1; that works inside the -// in-process LOCAL/MEMORY worker but is unreachable from the Apify platform -// container, so the run never finishes. Base-href handling is pure parsing -// logic in @crawlee/utils that doesn't depend on the storage backend, so -// LOCAL+MEMORY coverage is sufficient. -if (process.env.STORAGE_IMPLEMENTATION === 'PLATFORM') { - await skipTest('localhost fixture is not reachable from the Apify platform'); -} +import { initialize, getActorTestDir, runActor, expect } from '../tools.mjs'; const testActorDirname = getActorTestDir(import.meta.url); await initialize(testActorDirname); diff --git a/test/e2e/cheerio-robots-file/actor/main.js b/test/e2e/cheerio-robots-file/actor/main.js index c24a56e945fd..266ee1977d01 100644 --- a/test/e2e/cheerio-robots-file/actor/main.js +++ b/test/e2e/cheerio-robots-file/actor/main.js @@ -1,7 +1,48 @@ +import http from 'node:http'; + import { CheerioCrawler } from '@crawlee/cheerio'; -import { Browser, ImpitHttpClient } from '@crawlee/impit-client'; import { Actor } from 'apify'; +// Self-contained fixture: robots.txt disallows /cart and /checkout, and the +// start page links to /cart alongside the allowed /collections/* pages. The +// crawler may only reach the collections. +const pages = { + '/robots.txt': ['User-agent: *', 'Disallow: /cart', 'Disallow: /checkout', ''].join('\n'), + '/': ` +Store + + Cart + Audio + TV +`, + // Every collection links back to /cart, so the robots.txt rule is what keeps + // it out of the dataset rather than a shortage of links to follow. + '/collections/audio': ` +Audio +Cart Home`, + '/collections/tv': ` +TV +Cart Home`, + '/cart': 'CartCart', + '/checkout': 'CheckoutCheckout', +}; + +const server = http.createServer((req, res) => { + const body = pages[req.url]; + if (body === undefined) { + res.statusCode = 404; + res.end('Not Found'); + return; + } + const type = req.url === '/robots.txt' ? 'text/plain' : 'text/html'; + res.writeHead(200, { 'content-type': `${type}; charset=utf-8` }); + res.end(body); +}); + +await new Promise((resolve) => server.listen(0, '127.0.0.1', resolve)); +const { port } = server.address(); +const baseUrl = `http://127.0.0.1:${port}`; + await Actor.init({ storage: process.env.STORAGE_IMPLEMENTATION === 'LOCAL' @@ -10,9 +51,6 @@ await Actor.init({ }); const crawler = new CheerioCrawler({ - proxyConfiguration: await Actor.createProxyConfiguration(), - // The store 429s plain HTTP clients; impersonating a browser gets us through. - httpClient: new ImpitHttpClient({ browser: Browser.Firefox }), maxRequestsPerCrawl: 10, respectRobotsTxtFile: true, }); @@ -27,11 +65,13 @@ crawler.router.addDefaultHandler(async ({ log, request, enqueueLinks, pushData } }); await crawler.run([ - 'https://warehouse-theme-metal.myshopify.com', - 'https://warehouse-theme-metal.myshopify.com/checkout', // '/checkout' is disallowed by robots.txt + baseUrl, + `${baseUrl}/checkout`, // '/checkout' is disallowed by robots.txt ]); const data = await crawler.getData(); console.table(data.items); +server.close(); + await Actor.exit({ exit: Actor.isAtHome() }); diff --git a/test/e2e/cheerio-robots-file/actor/package.json b/test/e2e/cheerio-robots-file/actor/package.json index 32ff9de4411a..e101f7a748d1 100644 --- a/test/e2e/cheerio-robots-file/actor/package.json +++ b/test/e2e/cheerio-robots-file/actor/package.json @@ -11,7 +11,6 @@ "@crawlee/core": "file:./packages/core", "@crawlee/memory-storage": "file:./packages/memory-storage", "@crawlee/cheerio": "file:./packages/cheerio-crawler", - "@crawlee/impit-client": "file:./packages/impit-client", "@crawlee/types": "file:./packages/types", "@crawlee/utils": "file:./packages/utils" }, diff --git a/test/e2e/cheerio-robots-file/test.mjs b/test/e2e/cheerio-robots-file/test.mjs index a607b32bb974..fb879477178d 100644 --- a/test/e2e/cheerio-robots-file/test.mjs +++ b/test/e2e/cheerio-robots-file/test.mjs @@ -7,10 +7,7 @@ const { stats, datasetItems } = await runActor(testActorDirname); await expect(stats.requestsFinished >= 1, 'All requests finished'); -const cartRequest = datasetItems.find((item) => item.url === 'https://warehouse-theme-metal.myshopify.com/cart'); -const checkoutRequest = datasetItems.find( - (item) => item.url === 'https://warehouse-theme-metal.myshopify.com/checkout', -); +const paths = datasetItems.map((item) => new URL(item.url).pathname); -await expect(!cartRequest, '/cart URL is not processed'); -await expect(!checkoutRequest, '/checkout URL is not processed'); +await expect(!paths.includes('/cart'), '/cart URL is not processed'); +await expect(!paths.includes('/checkout'), '/checkout URL is not processed'); diff --git a/test/e2e/playwright-enqueue-links-base/test.mjs b/test/e2e/playwright-enqueue-links-base/test.mjs index 448973a3ecec..1af2a7738f4f 100644 --- a/test/e2e/playwright-enqueue-links-base/test.mjs +++ b/test/e2e/playwright-enqueue-links-base/test.mjs @@ -1,13 +1,4 @@ -import { initialize, getActorTestDir, runActor, expect, skipTest } from '../tools.mjs'; - -// The actor spins up an HTTP server on 127.0.0.1; that works inside the -// in-process LOCAL/MEMORY worker but is unreachable from the Apify platform -// container, so the run never finishes. Base-href handling is pure parsing -// logic in @crawlee/utils that doesn't depend on the storage backend, so -// LOCAL+MEMORY coverage is sufficient. -if (process.env.STORAGE_IMPLEMENTATION === 'PLATFORM') { - await skipTest('localhost fixture is not reachable from the Apify platform'); -} +import { initialize, getActorTestDir, runActor, expect } from '../tools.mjs'; const testActorDirname = getActorTestDir(import.meta.url); await initialize(testActorDirname); diff --git a/test/e2e/playwright-introduction-guide/actor/main.js b/test/e2e/playwright-introduction-guide/actor/main.js index f6cbd281f059..a6fc346bf928 100644 --- a/test/e2e/playwright-introduction-guide/actor/main.js +++ b/test/e2e/playwright-introduction-guide/actor/main.js @@ -89,8 +89,12 @@ router.addDefaultHandler(async ({ request, page, enqueueLinks, log }) => { }); const crawler = new PlaywrightCrawler({ - // The store rate-limits the platform's shared egress IP, so crawl through a proxy. - proxyConfiguration: await Actor.createProxyConfiguration(), + // The store 429s the platform's egress IP, direct or through the datacenter + // proxy pool; residential gets through. GitHub runners reach it directly, so + // they stay off the proxy and don't burn residential traffic. + proxyConfiguration: Actor.isAtHome() + ? await Actor.createProxyConfiguration({ groups: ['RESIDENTIAL'] }) + : undefined, maxRequestsPerCrawl: 15, // so the test runs faster // Instead of the long requestHandler with // if clauses we provide a router instance. diff --git a/test/e2e/playwright-robots-file/actor/main.js b/test/e2e/playwright-robots-file/actor/main.js index c50ba6939395..f0b5c3385e44 100644 --- a/test/e2e/playwright-robots-file/actor/main.js +++ b/test/e2e/playwright-robots-file/actor/main.js @@ -1,6 +1,48 @@ +import http from 'node:http'; + import { PlaywrightCrawler } from '@crawlee/playwright'; import { Actor } from 'apify'; +// Self-contained fixture: robots.txt disallows /cart and /checkout, and the +// start page links to /cart alongside the allowed /collections/* pages. The +// crawler may only reach the collections. +const pages = { + '/robots.txt': ['User-agent: *', 'Disallow: /cart', 'Disallow: /checkout', ''].join('\n'), + '/': ` +Store + + Cart + Audio + TV +`, + // Every collection links back to /cart, so the robots.txt rule is what keeps + // it out of the dataset rather than a shortage of links to follow. + '/collections/audio': ` +Audio +Cart Home`, + '/collections/tv': ` +TV +Cart Home`, + '/cart': 'CartCart', + '/checkout': 'CheckoutCheckout', +}; + +const server = http.createServer((req, res) => { + const body = pages[req.url]; + if (body === undefined) { + res.statusCode = 404; + res.end('Not Found'); + return; + } + const type = req.url === '/robots.txt' ? 'text/plain' : 'text/html'; + res.writeHead(200, { 'content-type': `${type}; charset=utf-8` }); + res.end(body); +}); + +await new Promise((resolve) => server.listen(0, '127.0.0.1', resolve)); +const { port } = server.address(); +const baseUrl = `http://127.0.0.1:${port}`; + await Actor.init({ storage: process.env.STORAGE_IMPLEMENTATION === 'LOCAL' @@ -9,8 +51,6 @@ await Actor.init({ }); const crawler = new PlaywrightCrawler({ - // The store rate-limits the platform's shared egress IP, so crawl through a proxy. - proxyConfiguration: await Actor.createProxyConfiguration(), maxRequestsPerCrawl: 10, respectRobotsTxtFile: true, }); @@ -25,11 +65,13 @@ crawler.router.addDefaultHandler(async ({ log, request, enqueueLinks, pushData } }); await crawler.run([ - 'https://warehouse-theme-metal.myshopify.com', - 'https://warehouse-theme-metal.myshopify.com/checkout', // '/checkout' is disallowed by robots.txt + baseUrl, + `${baseUrl}/checkout`, // '/checkout' is disallowed by robots.txt ]); const data = await crawler.getData(); console.table(data.items); +server.close(); + await Actor.exit({ exit: Actor.isAtHome() }); diff --git a/test/e2e/playwright-robots-file/test.mjs b/test/e2e/playwright-robots-file/test.mjs index 3eb38625dc9e..4876022e8042 100644 --- a/test/e2e/playwright-robots-file/test.mjs +++ b/test/e2e/playwright-robots-file/test.mjs @@ -7,10 +7,7 @@ const { stats, datasetItems } = await runActor(testActorDirname, 16384); await expect(stats.requestsFinished >= 1, 'All requests finished'); -const cartRequest = datasetItems.find((item) => item.url === 'https://warehouse-theme-metal.myshopify.com/cart'); -const checkoutRequest = datasetItems.find( - (item) => item.url === 'https://warehouse-theme-metal.myshopify.com/checkout', -); +const paths = datasetItems.map((item) => new URL(item.url).pathname); -await expect(!cartRequest, '/cart URL is not processed'); -await expect(!checkoutRequest, '/checkout URL is not processed'); +await expect(!paths.includes('/cart'), '/cart URL is not processed'); +await expect(!paths.includes('/checkout'), '/checkout URL is not processed'); diff --git a/test/e2e/puppeteer-store-pagination-jquery/actor/main.js b/test/e2e/puppeteer-store-pagination-jquery/actor/main.js index c78ef824182b..f52136894896 100644 --- a/test/e2e/puppeteer-store-pagination-jquery/actor/main.js +++ b/test/e2e/puppeteer-store-pagination-jquery/actor/main.js @@ -1,6 +1,69 @@ +import http from 'node:http'; + import { Actor } from 'apify'; import { Dataset, PuppeteerCrawler } from '@crawlee/puppeteer'; +// Self-contained fixture: three paginated listing pages, each linking to +// product detail pages, using the class names the crawler selects on. +const PAGE_SIZE = 6; +const PAGE_COUNT = 3; +const MANUFACTURERS = ['sony', 'denon', 'sennheiser', 'yamaha', 'pioneer', 'klipsch']; + +const products = Array.from({ length: PAGE_SIZE * PAGE_COUNT }, (_, i) => ({ + slug: `${MANUFACTURERS[i % MANUFACTURERS.length]}-model-${i + 1}`, + title: `Model ${i + 1}`, + sku: `SKU-${100 + i}`, + // Thousands separator so the handler's comma stripping is exercised. + price: `$${(1000 + i * 10).toLocaleString('en-US')}.00`, + inStock: i % 3 !== 0, +})); + +const listingPage = (pageNo) => ` +All TVs, page ${pageNo} + + ${products + .slice((pageNo - 1) * PAGE_SIZE, pageNo * PAGE_SIZE) + .map((p) => `${p.title}`) + .join('\n ')} + ${pageNo < PAGE_COUNT ? `Next` : ''} +`; + +const detailPage = (product) => ` +${product.title} + +

${product.title}

+ ${product.sku} + ${product.price} + Regular price + ${product.inStock ? 'In stock' : 'Out of stock'} +`; + +const server = http.createServer((req, res) => { + const { pathname, searchParams } = new URL(req.url, 'http://127.0.0.1'); + let body; + + if (pathname === '/collections/all-tvs') { + const pageNo = Number(searchParams.get('page') ?? 1); + if (pageNo >= 1 && pageNo <= PAGE_COUNT) body = listingPage(pageNo); + } else if (pathname.startsWith('/products/')) { + const product = products.find((p) => p.slug === pathname.slice('/products/'.length)); + if (product) body = detailPage(product); + } + + if (body === undefined) { + res.statusCode = 404; + res.end('Not Found'); + return; + } + + res.writeHead(200, { 'content-type': 'text/html; charset=utf-8' }); + res.end(body); +}); + +await new Promise((resolve) => server.listen(0, '127.0.0.1', resolve)); +const { port } = server.address(); +const baseUrl = `http://127.0.0.1:${port}`; + const mainOptions = { exit: Actor.isAtHome(), storage: @@ -11,14 +74,9 @@ const mainOptions = { await Actor.main(async () => { const crawler = new PuppeteerCrawler({ - // The store rate-limits the platform's shared egress IP, so crawl through a proxy. - proxyConfiguration: await Actor.createProxyConfiguration(), maxRequestsPerCrawl: 10, preNavigationHooks: [ - async ({ page }, goToOptions) => { - await page.evaluateOnNewDocument(() => { - localStorage.setItem('themeExitPopup', 'true'); - }); + (_crawlingContext, goToOptions) => { goToOptions.waitUntil = ['networkidle2']; }, ], @@ -31,7 +89,7 @@ await Actor.main(async () => { if (label === 'START') { log.info('Store opened'); const nextButtonSelector = '.pagination__next'; - // enqueue product details from the first three pages of the store + // enqueue product details from the first two pages of the store for (let pageNo = 1; pageNo < 3; pageNo++) { // Wait for network events to finish await page.waitForNetworkIdle({ concurrency: 2 }); @@ -39,7 +97,7 @@ await Actor.main(async () => { await enqueueLinks({ selector: 'a.product-item__image-wrapper', label: 'DETAIL', - globs: ['https://warehouse-theme-metal.myshopify.com/*/*'], + globs: [`${baseUrl}/*/*`], }); log.info(`Enqueued actors for page ${pageNo}`); log.info('Loading the next page'); @@ -48,8 +106,8 @@ await Actor.main(async () => { } else if (label === 'DETAIL') { log.info(`Scraping ${url}`); await injectJQuery(); - const urlPart = url.split('/').slice(-1); // ['sennheiser-mke-440-professional-stereo-shotgun-microphone-mke-440'] - const manufacturer = urlPart[0].split('-')[0]; // 'sennheiser' + const urlPart = url.split('/').slice(-1); // ['sony-model-1'] + const manufacturer = urlPart[0].split('-')[0]; // 'sony' /* eslint-disable no-undef */ const results = await page.evaluate(() => { @@ -81,7 +139,7 @@ await Actor.main(async () => { }, }); - await crawler.run([ - { url: 'https://warehouse-theme-metal.myshopify.com/collections/all-tvs', userData: { label: 'START' } }, - ]); + await crawler.run([{ url: `${baseUrl}/collections/all-tvs`, userData: { label: 'START' } }]); }, mainOptions); + +server.close(); diff --git a/test/e2e/puppeteer-store-pagination-jquery/test.mjs b/test/e2e/puppeteer-store-pagination-jquery/test.mjs index 8f87841e7009..06670dd9353c 100644 --- a/test/e2e/puppeteer-store-pagination-jquery/test.mjs +++ b/test/e2e/puppeteer-store-pagination-jquery/test.mjs @@ -8,6 +8,12 @@ const { stats, datasetItems } = await runActor(testActorDirname, 16384); await expect(stats.requestsFinished >= 10, 'All requests finished'); await expect(datasetItems.length > 5 && datasetItems.length < 15, 'Number of dataset items'); await expect( - validateDataset(datasetItems, ['url', 'manufacturer', 'title', 'sku', 'currentPrice', 'availableInStock']), + validateDataset(datasetItems, ['manufacturer', 'title', 'sku', 'currentPrice', 'availableInStock']), 'Dataset items validation', ); +// `url` is checked separately: validateDataset matches it against a regex that +// rejects the fixture's 127.0.0.1 origin. +await expect( + datasetItems.every((item) => URL.canParse(item.url) && new URL(item.url).pathname.startsWith('/products/')), + 'Dataset items have product URLs', +); diff --git a/test/e2e/puppeteer-store-pagination/actor/main.js b/test/e2e/puppeteer-store-pagination/actor/main.js index c9e1b0da758f..9c609ae4a643 100644 --- a/test/e2e/puppeteer-store-pagination/actor/main.js +++ b/test/e2e/puppeteer-store-pagination/actor/main.js @@ -1,6 +1,69 @@ +import http from 'node:http'; + import { Actor } from 'apify'; import { Dataset, PuppeteerCrawler } from '@crawlee/puppeteer'; +// Self-contained fixture: three paginated listing pages, each linking to +// product detail pages, using the class names the crawler selects on. +const PAGE_SIZE = 6; +const PAGE_COUNT = 3; +const MANUFACTURERS = ['sony', 'denon', 'sennheiser', 'yamaha', 'pioneer', 'klipsch']; + +const products = Array.from({ length: PAGE_SIZE * PAGE_COUNT }, (_, i) => ({ + slug: `${MANUFACTURERS[i % MANUFACTURERS.length]}-model-${i + 1}`, + title: `Model ${i + 1}`, + sku: `SKU-${100 + i}`, + // Thousands separator so the handler's comma stripping is exercised. + price: `$${(1000 + i * 10).toLocaleString('en-US')}.00`, + inStock: i % 3 !== 0, +})); + +const listingPage = (pageNo) => ` +All TVs, page ${pageNo} + + ${products + .slice((pageNo - 1) * PAGE_SIZE, pageNo * PAGE_SIZE) + .map((p) => `${p.title}`) + .join('\n ')} + ${pageNo < PAGE_COUNT ? `Next` : ''} +`; + +const detailPage = (product) => ` +${product.title} + +

${product.title}

+ ${product.sku} + ${product.price} + Regular price + ${product.inStock ? 'In stock' : 'Out of stock'} +`; + +const server = http.createServer((req, res) => { + const { pathname, searchParams } = new URL(req.url, 'http://127.0.0.1'); + let body; + + if (pathname === '/collections/all-tvs') { + const pageNo = Number(searchParams.get('page') ?? 1); + if (pageNo >= 1 && pageNo <= PAGE_COUNT) body = listingPage(pageNo); + } else if (pathname.startsWith('/products/')) { + const product = products.find((p) => p.slug === pathname.slice('/products/'.length)); + if (product) body = detailPage(product); + } + + if (body === undefined) { + res.statusCode = 404; + res.end('Not Found'); + return; + } + + res.writeHead(200, { 'content-type': 'text/html; charset=utf-8' }); + res.end(body); +}); + +await new Promise((resolve) => server.listen(0, '127.0.0.1', resolve)); +const { port } = server.address(); +const baseUrl = `http://127.0.0.1:${port}`; + await Actor.init({ storage: process.env.STORAGE_IMPLEMENTATION === 'LOCAL' @@ -9,14 +72,9 @@ await Actor.init({ }); const crawler = new PuppeteerCrawler({ - // The store rate-limits the platform's shared egress IP, so crawl through a proxy. - proxyConfiguration: await Actor.createProxyConfiguration(), maxRequestsPerCrawl: 10, preNavigationHooks: [ - async ({ page }, goToOptions) => { - await page.evaluateOnNewDocument(() => { - localStorage.setItem('themeExitPopup', 'true'); - }); + (_crawlingContext, goToOptions) => { goToOptions.waitUntil = ['networkidle2']; }, ], @@ -25,7 +83,7 @@ const crawler = new PuppeteerCrawler({ crawler.router.addHandler('START', async ({ log, enqueueLinks, page }) => { log.info('Store opened'); const nextButtonSelector = '.pagination__next'; - // enqueue product details from the first three pages of the store + // enqueue product details from the first two pages of the store for (let pageNo = 1; pageNo < 3; pageNo++) { // Wait for network events to finish await page.waitForNetworkIdle({ concurrency: 2 }); @@ -33,7 +91,7 @@ crawler.router.addHandler('START', async ({ log, enqueueLinks, page }) => { await enqueueLinks({ selector: 'a.product-item__image-wrapper', label: 'DETAIL', - globs: ['https://warehouse-theme-metal.myshopify.com/*/*'], + globs: [`${baseUrl}/*/*`], }); log.info(`Enqueued actors for page ${pageNo}`); log.info('Loading the next page'); @@ -44,8 +102,8 @@ crawler.router.addHandler('START', async ({ log, enqueueLinks, page }) => { crawler.router.addHandler('DETAIL', async ({ log, page, request: { url } }) => { log.info(`Scraping ${url}`); - const urlPart = url.split('/').slice(-1); // ['sennheiser-mke-440-professional-stereo-shotgun-microphone-mke-440'] - const manufacturer = urlPart[0].split('-')[0]; // 'sennheiser' + const urlPart = url.split('/').slice(-1); // ['sony-model-1'] + const manufacturer = urlPart[0].split('-')[0]; // 'sony' const title = await page .locator('.product-meta h1') @@ -80,8 +138,8 @@ crawler.router.addHandler('DETAIL', async ({ log, page, request: { url } }) => { await Dataset.pushData(results); }); -await crawler.run([ - { url: 'https://warehouse-theme-metal.myshopify.com/collections/all-tvs', userData: { label: 'START' } }, -]); +await crawler.run([{ url: `${baseUrl}/collections/all-tvs`, userData: { label: 'START' } }]); + +server.close(); await Actor.exit({ exit: Actor.isAtHome() }); diff --git a/test/e2e/puppeteer-store-pagination/test.mjs b/test/e2e/puppeteer-store-pagination/test.mjs index 8f87841e7009..06670dd9353c 100644 --- a/test/e2e/puppeteer-store-pagination/test.mjs +++ b/test/e2e/puppeteer-store-pagination/test.mjs @@ -8,6 +8,12 @@ const { stats, datasetItems } = await runActor(testActorDirname, 16384); await expect(stats.requestsFinished >= 10, 'All requests finished'); await expect(datasetItems.length > 5 && datasetItems.length < 15, 'Number of dataset items'); await expect( - validateDataset(datasetItems, ['url', 'manufacturer', 'title', 'sku', 'currentPrice', 'availableInStock']), + validateDataset(datasetItems, ['manufacturer', 'title', 'sku', 'currentPrice', 'availableInStock']), 'Dataset items validation', ); +// `url` is checked separately: validateDataset matches it against a regex that +// rejects the fixture's 127.0.0.1 origin. +await expect( + datasetItems.every((item) => URL.canParse(item.url) && new URL(item.url).pathname.startsWith('/products/')), + 'Dataset items have product URLs', +); diff --git a/test/e2e/tools.mjs b/test/e2e/tools.mjs index c47615d26be9..8ba4899d233c 100644 --- a/test/e2e/tools.mjs +++ b/test/e2e/tools.mjs @@ -21,9 +21,16 @@ function execSync(command, options) { } /** + * The index is not always 0: AdaptivePlaywrightCrawler discards the Statistics + * the base crawler created and installs its own, which lands on the next id. * @param {string} name */ -const isPrivateEntry = (name) => name === 'SDK_CRAWLER_STATISTICS_0' || name === 'SDK_SESSION_POOL_STATE'; +const isCrawlerStatisticsKey = (name) => name.startsWith('SDK_CRAWLER_STATISTICS_'); + +/** + * @param {string} name + */ +const isPrivateEntry = (name) => isCrawlerStatisticsKey(name) || name === 'SDK_SESSION_POOL_STATE'; export const SKIPPED_TEST_CLOSE_CODE = 404; @@ -49,14 +56,19 @@ export function getStorage(dirName) { * @param {string} dirName */ export async function getStats(dirName) { - const dir = getStorage(dirName); - const path = join(dir, `key_value_stores/default/SDK_CRAWLER_STATISTICS_0.json`); + const dir = join(getStorage(dirName), 'key_value_stores/default'); + + if (!existsSync(dir)) { + return false; + } + + const [statsFile] = (await readdir(dir)).filter((name) => isCrawlerStatisticsKey(name)).sort(); - if (!existsSync(path)) { + if (!statsFile) { return false; } - return fs.readJSON(path); + return fs.readJSON(join(dir, statsFile)); } /** @@ -217,7 +229,12 @@ export async function runActor(dirName, memory = 4096) { const runTook = (runFinishedAt.getTime() - runStartedAt.getTime()) / 1000; console.log(`[run] View run: https://console.apify.com/view/runs/${runId} [run took ${runTook}s]`); - const statsRecord = await client.keyValueStore(defaultKeyValueStoreId).getRecord('SDK_CRAWLER_STATISTICS_0'); + const { items: kvKeys } = await client.keyValueStore(defaultKeyValueStoreId).listKeys(); + const [statsKey] = kvKeys + .map(({ key }) => key) + .filter((key) => isCrawlerStatisticsKey(key)) + .sort(); + const statsRecord = statsKey && (await client.keyValueStore(defaultKeyValueStoreId).getRecord(statsKey)); stats = statsRecord?.value; const { items } = await client.dataset(defaultDatasetId).listItems(); diff --git a/yarn.lock b/yarn.lock index 67ee293662f3..0e8d530df557 100644 --- a/yarn.lock +++ b/yarn.lock @@ -809,6 +809,32 @@ __metadata: languageName: node linkType: hard +"@conventional-changelog/git-client@npm:^3.1.0": + version: 3.1.0 + resolution: "@conventional-changelog/git-client@npm:3.1.0" + dependencies: + "@simple-libs/child-process-utils": "npm:^2.0.0" + "@simple-libs/stream-utils": "npm:^2.0.0" + semver: "npm:^7.5.2" + peerDependencies: + conventional-commits-filter: ^6.0.1 + conventional-commits-parser: ^7.0.1 + peerDependenciesMeta: + conventional-commits-filter: + optional: true + conventional-commits-parser: + optional: true + checksum: 10c0/ab554a247f834457e2c3c8aec1311ddac3607645a13d4ca46ba66575718e4cb7448ec25f842cc12268fad3f4085525b28ed35fd80b028c7c5d553251b287a491 + languageName: node + linkType: hard + +"@conventional-changelog/template@npm:^1.2.1": + version: 1.2.1 + resolution: "@conventional-changelog/template@npm:1.2.1" + checksum: 10c0/5a391c5fa8f740d892aac8d5ee14e255625d6c1938e6c3c04c104129a58b5baff3c9c04592744ba0dbbbce7b421ca906af378f194b10d7803c4906b23028e0b4 + languageName: node + linkType: hard + "@crawlee/basic@npm:3.17.0, @crawlee/basic@workspace:packages/basic-crawler": version: 0.0.0-use.local resolution: "@crawlee/basic@workspace:packages/basic-crawler" @@ -1136,7 +1162,7 @@ __metadata: got: "npm:^13.0.0" husky: "npm:^9.0.11" is-ci: "npm:^4.0.0" - lerna: "npm:^9.0.7" + lerna: "npm:^10.0.0" lint-staged: "npm:^17.0.0" nock: "npm:^13.4.0" playwright: "npm:1.62.0" @@ -1705,13 +1731,6 @@ __metadata: languageName: node linkType: hard -"@hutson/parse-repository-url@npm:^3.0.0": - version: 3.0.2 - resolution: "@hutson/parse-repository-url@npm:3.0.2" - checksum: 10c0/d9197757ecad2df18d29d3e1d1fe0716d458fd88b849c71cbec9e78239f911074c97e8d764dfd8ed890431c1137e52dd7a337207fd65be20ce0784f7860ae4d1 - languageName: node - linkType: hard - "@inquirer/ansi@npm:^1.0.0, @inquirer/ansi@npm:^1.0.2": version: 1.0.2 resolution: "@inquirer/ansi@npm:1.0.2" @@ -1989,29 +2008,6 @@ __metadata: languageName: node linkType: hard -"@jest/diff-sequences@npm:30.4.0": - version: 30.4.0 - resolution: "@jest/diff-sequences@npm:30.4.0" - checksum: 10c0/b4358b1b885098b905cb777f58788ddd45f90c4ebc3ce2c04fb1d4c9516f35ac2d9daef8263cd21c537bd7a52ab320f03e4ba9521677959ae20e3d405356b420 - languageName: node - linkType: hard - -"@jest/get-type@npm:30.1.0": - version: 30.1.0 - resolution: "@jest/get-type@npm:30.1.0" - checksum: 10c0/3e65fd5015f551c51ec68fca31bbd25b466be0e8ee8075d9610fa1c686ea1e70a942a0effc7b10f4ea9a338c24337e1ad97ff69d3ebacc4681b7e3e80d1b24ac - languageName: node - linkType: hard - -"@jest/schemas@npm:30.4.1": - version: 30.4.1 - resolution: "@jest/schemas@npm:30.4.1" - dependencies: - "@sinclair/typebox": "npm:^0.34.0" - checksum: 10c0/96f388ebfc1974457fcbde2ad36c40a0b549cba3f624fe8d9d6e5903a152dc75e4043f4ac9ac7668622f2ecb0f9a4dcb9a38edf3bc0d52b82045b2bb2b69b72a - languageName: node - linkType: hard - "@jridgewell/resolve-uri@npm:^3.1.0": version: 3.1.2 resolution: "@jridgewell/resolve-uri@npm:3.1.2" @@ -2441,9 +2437,9 @@ __metadata: languageName: node linkType: hard -"@nx/devkit@npm:>=21.5.2 < 23.0.0": - version: 22.7.5 - resolution: "@nx/devkit@npm:22.7.5" +"@nx/devkit@npm:>=23.1.0 < 24.0.0": + version: 23.1.0 + resolution: "@nx/devkit@npm:23.1.0" dependencies: "@zkochan/js-yaml": "npm:0.0.7" ejs: "npm:5.0.1" @@ -2451,79 +2447,80 @@ __metadata: minimatch: "npm:10.2.5" semver: "npm:^7.6.3" tslib: "npm:^2.3.0" + yaml: "npm:^2.8.3" yargs-parser: "npm:21.1.1" peerDependencies: - nx: ">= 21 <= 23 || ^22.0.0-0" - checksum: 10c0/ece4144a2543e499f24f183fafa974afcc3293281d1651fe037b9be2543ea10422d6526506474c29dc25d7ce92477d69dfcd2bf5b2b5b6e73db18981e5f2fb38 + nx: ">= 22 <= 24 || ^23.0.0-0" + checksum: 10c0/128dc10fe60b38a2ec1fb50f5a7c924fc2c37ae4b065087f271bca394c2e7d791deafa0963724e9e6a303c6c6974f8cdb14c7038319900899e8056ba3c0c9d42 languageName: node linkType: hard -"@nx/nx-darwin-arm64@npm:22.7.5": - version: 22.7.5 - resolution: "@nx/nx-darwin-arm64@npm:22.7.5" +"@nx/nx-darwin-arm64@npm:23.1.0": + version: 23.1.0 + resolution: "@nx/nx-darwin-arm64@npm:23.1.0" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"@nx/nx-darwin-x64@npm:22.7.5": - version: 22.7.5 - resolution: "@nx/nx-darwin-x64@npm:22.7.5" +"@nx/nx-darwin-x64@npm:23.1.0": + version: 23.1.0 + resolution: "@nx/nx-darwin-x64@npm:23.1.0" conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"@nx/nx-freebsd-x64@npm:22.7.5": - version: 22.7.5 - resolution: "@nx/nx-freebsd-x64@npm:22.7.5" +"@nx/nx-freebsd-x64@npm:23.1.0": + version: 23.1.0 + resolution: "@nx/nx-freebsd-x64@npm:23.1.0" conditions: os=freebsd & cpu=x64 languageName: node linkType: hard -"@nx/nx-linux-arm-gnueabihf@npm:22.7.5": - version: 22.7.5 - resolution: "@nx/nx-linux-arm-gnueabihf@npm:22.7.5" +"@nx/nx-linux-arm-gnueabihf@npm:23.1.0": + version: 23.1.0 + resolution: "@nx/nx-linux-arm-gnueabihf@npm:23.1.0" conditions: os=linux & cpu=arm languageName: node linkType: hard -"@nx/nx-linux-arm64-gnu@npm:22.7.5": - version: 22.7.5 - resolution: "@nx/nx-linux-arm64-gnu@npm:22.7.5" +"@nx/nx-linux-arm64-gnu@npm:23.1.0": + version: 23.1.0 + resolution: "@nx/nx-linux-arm64-gnu@npm:23.1.0" conditions: os=linux & cpu=arm64 & libc=glibc languageName: node linkType: hard -"@nx/nx-linux-arm64-musl@npm:22.7.5": - version: 22.7.5 - resolution: "@nx/nx-linux-arm64-musl@npm:22.7.5" +"@nx/nx-linux-arm64-musl@npm:23.1.0": + version: 23.1.0 + resolution: "@nx/nx-linux-arm64-musl@npm:23.1.0" conditions: os=linux & cpu=arm64 & libc=musl languageName: node linkType: hard -"@nx/nx-linux-x64-gnu@npm:22.7.5": - version: 22.7.5 - resolution: "@nx/nx-linux-x64-gnu@npm:22.7.5" +"@nx/nx-linux-x64-gnu@npm:23.1.0": + version: 23.1.0 + resolution: "@nx/nx-linux-x64-gnu@npm:23.1.0" conditions: os=linux & cpu=x64 & libc=glibc languageName: node linkType: hard -"@nx/nx-linux-x64-musl@npm:22.7.5": - version: 22.7.5 - resolution: "@nx/nx-linux-x64-musl@npm:22.7.5" +"@nx/nx-linux-x64-musl@npm:23.1.0": + version: 23.1.0 + resolution: "@nx/nx-linux-x64-musl@npm:23.1.0" conditions: os=linux & cpu=x64 & libc=musl languageName: node linkType: hard -"@nx/nx-win32-arm64-msvc@npm:22.7.5": - version: 22.7.5 - resolution: "@nx/nx-win32-arm64-msvc@npm:22.7.5" +"@nx/nx-win32-arm64-msvc@npm:23.1.0": + version: 23.1.0 + resolution: "@nx/nx-win32-arm64-msvc@npm:23.1.0" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard -"@nx/nx-win32-x64-msvc@npm:22.7.5": - version: 22.7.5 - resolution: "@nx/nx-win32-x64-msvc@npm:22.7.5" +"@nx/nx-win32-x64-msvc@npm:23.1.0": + version: 23.1.0 + resolution: "@nx/nx-win32-x64-msvc@npm:23.1.0" conditions: os=win32 & cpu=x64 languageName: node linkType: hard @@ -3004,6 +3001,32 @@ __metadata: languageName: node linkType: hard +"@simple-libs/child-process-utils@npm:^2.0.0": + version: 2.0.0 + resolution: "@simple-libs/child-process-utils@npm:2.0.0" + dependencies: + "@simple-libs/stream-utils": "npm:^2.0.0" + checksum: 10c0/8bd2ad6fe0eb7ed45e7f656b8fb2ea249673dad807ba69b950a91319747fd871c386010c766cbf8ac7242aeef76d4a03f83765c068ebb6267e2bf7e6a042e2f2 + languageName: node + linkType: hard + +"@simple-libs/hosted-git-info@npm:^2.0.0": + version: 2.0.0 + resolution: "@simple-libs/hosted-git-info@npm:2.0.0" + checksum: 10c0/b8c5a4a604b959cb7dedae534c1777aea5823c09221e4059a6d2d2d54366b32b9d4529efaa29bce92674dbac6ea189c6dfed402093f890809f1039f5925fcc49 + languageName: node + linkType: hard + +"@simple-libs/normalize-package-data@npm:^1.0.0": + version: 1.0.0 + resolution: "@simple-libs/normalize-package-data@npm:1.0.0" + dependencies: + "@simple-libs/hosted-git-info": "npm:^2.0.0" + semver: "npm:^7.8.5" + checksum: 10c0/5405a8ec3fcdd04c2b97153855ec82b4a92fa3d498079611ed2b7144a3b1eafa5acc910e5aeda05e617cf895983baf8d71f6aea7f2a6b0df6203443308e95f84 + languageName: node + linkType: hard + "@simple-libs/stream-utils@npm:^1.2.0": version: 1.2.0 resolution: "@simple-libs/stream-utils@npm:1.2.0" @@ -3011,10 +3034,10 @@ __metadata: languageName: node linkType: hard -"@sinclair/typebox@npm:^0.34.0": - version: 0.34.49 - resolution: "@sinclair/typebox@npm:0.34.49" - checksum: 10c0/16b7d87f039a49b68c10bb4cdcae2ce5242b2472228851fd6483731616aba4ef977690aa517b230a8d20da8185bb416eb34e326f30568b3963c1cf26b05d1ad8 +"@simple-libs/stream-utils@npm:^2.0.0": + version: 2.0.0 + resolution: "@simple-libs/stream-utils@npm:2.0.0" + checksum: 10c0/27fa4a9eef3d652a80b970bee18589a618f66884cd15845a0c57d7b73f005ea4d9acda7fe580851af229d07de749419715d06dcedf33bcb1a671e7a27106fdda languageName: node linkType: hard @@ -3375,13 +3398,6 @@ __metadata: languageName: node linkType: hard -"@types/minimist@npm:^1.2.0": - version: 1.2.5 - resolution: "@types/minimist@npm:1.2.5" - checksum: 10c0/3f791258d8e99a1d7d0ca2bda1ca6ea5a94e5e7b8fc6cde84dd79b0552da6fb68ade750f0e17718f6587783c24254bbca0357648dd59dc3812c150305cabdc46 - languageName: node - linkType: hard - "@types/node-fetch@npm:^2.6.4": version: 2.6.13 resolution: "@types/node-fetch@npm:2.6.13" @@ -3419,13 +3435,6 @@ __metadata: languageName: node linkType: hard -"@types/normalize-package-data@npm:^2.4.0": - version: 2.4.4 - resolution: "@types/normalize-package-data@npm:2.4.4" - checksum: 10c0/aef7bb9b015883d6f4119c423dd28c4bdc17b0e8a0ccf112c78b4fe0e91fbc4af7c6204b04bba0e199a57d2f3fbbd5b4a14bf8739bf9d2a39b2a0aad545e0f86 - languageName: node - linkType: hard - "@types/proper-lockfile@npm:^4.1.2": version: 4.1.4 resolution: "@types/proper-lockfile@npm:4.1.4" @@ -3870,18 +3879,6 @@ __metadata: languageName: node linkType: hard -"JSONStream@npm:^1.3.5": - version: 1.3.5 - resolution: "JSONStream@npm:1.3.5" - dependencies: - jsonparse: "npm:^1.2.0" - through: "npm:>=2.2.7 <3" - bin: - JSONStream: ./bin.js - checksum: 10c0/0f54694da32224d57b715385d4a6b668d2117379d1f3223dc758459246cca58fdc4c628b83e8a8883334e454a0a30aa198ede77c788b55537c1844f686a751f2 - languageName: node - linkType: hard - "abbrev@npm:^3.0.0": version: 3.0.1 resolution: "abbrev@npm:3.0.1" @@ -3950,13 +3947,6 @@ __metadata: languageName: node linkType: hard -"add-stream@npm:^1.0.0": - version: 1.0.0 - resolution: "add-stream@npm:1.0.0" - checksum: 10c0/985014a14e76ca4cb24e0fc58bb1556794cf38c5c8937de335a10584f50a371dc48e1c34a59391c7eb9c1fc908b4b86764df5d2756f701df6ba95d1ca2f63ddc - languageName: node - linkType: hard - "adm-zip@npm:^0.5.16": version: 0.5.18 resolution: "adm-zip@npm:0.5.18" @@ -3971,7 +3961,7 @@ __metadata: languageName: node linkType: hard -"agent-base@npm:6": +"agent-base@npm:6, agent-base@npm:6.0.2": version: 6.0.2 resolution: "agent-base@npm:6.0.2" dependencies: @@ -4129,7 +4119,7 @@ __metadata: languageName: node linkType: hard -"ansi-styles@npm:^5.0.0, ansi-styles@npm:^5.2.0": +"ansi-styles@npm:^5.0.0": version: 5.2.0 resolution: "ansi-styles@npm:5.2.0" checksum: 10c0/9c4ca80eb3c2fb7b33841c210d2f20807f40865d27008d7c3f707b7f95cab7d67462a565e2388ac3285b71cb3d9bb2173de8da37c57692a362885ec34d6e27df @@ -4192,13 +4182,6 @@ __metadata: languageName: node linkType: hard -"aproba@npm:2.0.0": - version: 2.0.0 - resolution: "aproba@npm:2.0.0" - checksum: 10c0/d06e26384a8f6245d8c8896e138c0388824e259a329e0c9f196b4fa533c82502a6fd449586e3604950a0c42921832a458bb3aa0aa9f0ba449cfd4f50fd0d09b5 - languageName: node - linkType: hard - "argparse@npm:2.0.1, argparse@npm:^2.0.1": version: 2.0.1 resolution: "argparse@npm:2.0.1" @@ -4218,6 +4201,13 @@ __metadata: languageName: node linkType: hard +"argue-cli@npm:^3.1.0": + version: 3.1.0 + resolution: "argue-cli@npm:3.1.0" + checksum: 10c0/589f7f3cc6093264b7a6d5f2acb32fffadf5947c411e92e8c656cd90f178e24924bc405665cceb37510273debcf7611b89aa3dbbf9782474d4d8add912bc6325 + languageName: node + linkType: hard + "array-buffer-byte-length@npm:^1.0.0, array-buffer-byte-length@npm:^1.0.1, array-buffer-byte-length@npm:^1.0.2": version: 1.0.2 resolution: "array-buffer-byte-length@npm:1.0.2" @@ -4312,13 +4302,6 @@ __metadata: languageName: node linkType: hard -"arrify@npm:^1.0.1": - version: 1.0.1 - resolution: "arrify@npm:1.0.1" - checksum: 10c0/c35c8d1a81bcd5474c0c57fe3f4bad1a4d46a5fa353cedcff7a54da315df60db71829e69104b859dff96c5d68af46bd2be259fe5e50dc6aa9df3b36bea0383ab - languageName: node - linkType: hard - "assert@npm:^1.4.1": version: 1.5.1 resolution: "assert@npm:1.5.1" @@ -4402,14 +4385,15 @@ __metadata: languageName: node linkType: hard -"axios@npm:1.16.0": - version: 1.16.0 - resolution: "axios@npm:1.16.0" +"axios@npm:1.16.1": + version: 1.16.1 + resolution: "axios@npm:1.16.1" dependencies: follow-redirects: "npm:^1.16.0" form-data: "npm:^4.0.5" + https-proxy-agent: "npm:^5.0.1" proxy-from-env: "npm:^2.1.0" - checksum: 10c0/1c91a5221b77b76072026b4cc95ecdf38f7c3e33e63423abec09a85e6e9a12279637dcc9ac2ba1fc333e0c447fb3b0f46d7965acb5d7cea02d188e9c6d425c0b + checksum: 10c0/2f77e37e6552bbff8a772d058fb09500198e9188c6b20dc799d82dbe12a8cb506f6eed4e4e62a9ba612a35cbab496faa26d68f9bff14a53af6d15c3e136391a7 languageName: node linkType: hard @@ -4653,13 +4637,6 @@ __metadata: languageName: node linkType: hard -"buffer-from@npm:^1.0.0": - version: 1.1.2 - resolution: "buffer-from@npm:1.1.2" - checksum: 10c0/124fff9d66d691a86d3b062eff4663fe437a9d9ee4b47b1b9e97f5a5d14f6d5399345db80f796827be7c95e70a8e765dd404b7c3ff3b3324f98e9b0c8826cc34 - languageName: node - linkType: hard - "buffer@npm:5.7.1, buffer@npm:^5.5.0": version: 5.7.1 resolution: "buffer@npm:5.7.1" @@ -4687,13 +4664,6 @@ __metadata: languageName: node linkType: hard -"byte-size@npm:8.1.1": - version: 8.1.1 - resolution: "byte-size@npm:8.1.1" - checksum: 10c0/83170a16820fde48ebaef93bf6b2e86c5f72041f76e44eba1f3c738cceb699aeadf11088198944d5d7c6f970b465ab1e3dddc2e60bfb49a74374f3447a8db5b9 - languageName: node - linkType: hard - "bytes@npm:^3.1.2, bytes@npm:~3.1.2": version: 3.1.2 resolution: "bytes@npm:3.1.2" @@ -4802,17 +4772,6 @@ __metadata: languageName: node linkType: hard -"camelcase-keys@npm:^6.2.2": - version: 6.2.2 - resolution: "camelcase-keys@npm:6.2.2" - dependencies: - camelcase: "npm:^5.3.1" - map-obj: "npm:^4.0.0" - quick-lru: "npm:^4.0.1" - checksum: 10c0/bf1a28348c0f285c6c6f68fb98a9d088d3c0269fed0cdff3ea680d5a42df8a067b4de374e7a33e619eb9d5266a448fe66c2dd1f8e0c9209ebc348632882a3526 - languageName: node - linkType: hard - "camelcase@npm:5.0.0": version: 5.0.0 resolution: "camelcase@npm:5.0.0" @@ -4827,13 +4786,6 @@ __metadata: languageName: node linkType: hard -"camelcase@npm:^5.3.1": - version: 5.3.1 - resolution: "camelcase@npm:5.3.1" - checksum: 10c0/92ff9b443bfe8abb15f2b1513ca182d16126359ad4f955ebc83dc4ddcc4ef3fdd2c078bc223f2673dc223488e75c99b16cc4d056624374b799e6a1555cf61b23 - languageName: node - linkType: hard - "camoufox-js@npm:^0.11.0": version: 0.11.1 resolution: "camoufox-js@npm:0.11.1" @@ -4883,16 +4835,6 @@ __metadata: languageName: node linkType: hard -"chalk@npm:4.1.0": - version: 4.1.0 - resolution: "chalk@npm:4.1.0" - dependencies: - ansi-styles: "npm:^4.1.0" - supports-color: "npm:^7.1.0" - checksum: 10c0/3787bd65ecd98ab3a1acc3b4f71d006268a675875e49ee6ea75fb54ba73d268b97544368358c18c42445e408e076ae8ad5cec8fbad36942a2c7ac654883dc61e - languageName: node - linkType: hard - "chalk@npm:4.1.2, chalk@npm:^4.0.0, chalk@npm:^4.1.0, chalk@npm:^4.1.1, chalk@npm:^4.1.2": version: 4.1.2 resolution: "chalk@npm:4.1.2" @@ -5012,7 +4954,7 @@ __metadata: languageName: node linkType: hard -"ci-info@npm:^3.1.0, ci-info@npm:^3.2.0": +"ci-info@npm:^3.1.0": version: 3.9.0 resolution: "ci-info@npm:3.9.0" checksum: 10c0/6f0109e36e111684291d46123d491bc4e7b7a1934c3a20dea28cba89f1d4a03acd892f5f6a81ed3855c38647e285a150e3c9ba062e38943bef57fee6c1554c3a @@ -5109,17 +5051,6 @@ __metadata: languageName: node linkType: hard -"cliui@npm:^7.0.2": - version: 7.0.4 - resolution: "cliui@npm:7.0.4" - dependencies: - string-width: "npm:^4.2.0" - strip-ansi: "npm:^6.0.0" - wrap-ansi: "npm:^7.0.0" - checksum: 10c0/6035f5daf7383470cef82b3d3db00bec70afb3423538c50394386ffbbab135e26c3689c41791f911fa71b62d13d3863c712fdd70f0fbdffd938a1e6fd09aac00 - languageName: node - linkType: hard - "cliui@npm:^9.0.1": version: 9.0.1 resolution: "cliui@npm:9.0.1" @@ -5184,15 +5115,6 @@ __metadata: languageName: node linkType: hard -"color-support@npm:1.1.3": - version: 1.1.3 - resolution: "color-support@npm:1.1.3" - bin: - color-support: bin.js - checksum: 10c0/8ffeaa270a784dc382f62d9be0a98581db43e11eee301af14734a6d089bd456478b1a8b3e7db7ca7dc5b18a75f828f775c44074020b51c05fc00e6d0992b1cc6 - languageName: node - linkType: hard - "colorette@npm:^2.0.7": version: 2.0.20 resolution: "colorette@npm:2.0.20" @@ -5269,25 +5191,6 @@ __metadata: languageName: node linkType: hard -"concat-stream@npm:^2.0.0": - version: 2.0.0 - resolution: "concat-stream@npm:2.0.0" - dependencies: - buffer-from: "npm:^1.0.0" - inherits: "npm:^2.0.3" - readable-stream: "npm:^3.0.2" - typedarray: "npm:^0.0.6" - checksum: 10c0/29565dd9198fe1d8cf57f6cc71527dbc6ad67e12e4ac9401feb389c53042b2dceedf47034cbe702dfc4fd8df3ae7e6bfeeebe732cc4fa2674e484c13f04c219a - languageName: node - linkType: hard - -"console-control-strings@npm:^1.1.0": - version: 1.1.0 - resolution: "console-control-strings@npm:1.1.0" - checksum: 10c0/7ab51d30b52d461412cd467721bb82afe695da78fff8f29fe6f6b9cbaac9a2328e27a22a966014df9532100f6dd85370460be8130b9c677891ba36d96a343f50 - languageName: node - linkType: hard - "console-table-printer@npm:^2.12.1": version: 2.16.1 resolution: "console-table-printer@npm:2.16.1" @@ -5327,12 +5230,12 @@ __metadata: languageName: node linkType: hard -"conventional-changelog-angular@npm:7.0.0": - version: 7.0.0 - resolution: "conventional-changelog-angular@npm:7.0.0" +"conventional-changelog-angular@npm:9.2.1": + version: 9.2.1 + resolution: "conventional-changelog-angular@npm:9.2.1" dependencies: - compare-func: "npm:^2.0.0" - checksum: 10c0/90e73e25e224059b02951b6703b5f8742dc2a82c1fea62163978e6735fd3ab04350897a8fc6f443ec6b672d6b66e28a0820e833e544a0101f38879e5e6289b7e + "@conventional-changelog/template": "npm:^1.2.1" + checksum: 10c0/f9479e4d0c838f0b86bae26f6bce2a3a8957ad99b4627e4a2cca89174e2c2e0a306036d205809e1688c9c7a418d2f7c7d1cc32ef88f1396b7d744064571f52e9 languageName: node linkType: hard @@ -5354,70 +5257,62 @@ __metadata: languageName: node linkType: hard -"conventional-changelog-core@npm:5.0.1": - version: 5.0.1 - resolution: "conventional-changelog-core@npm:5.0.1" - dependencies: - add-stream: "npm:^1.0.0" - conventional-changelog-writer: "npm:^6.0.0" - conventional-commits-parser: "npm:^4.0.0" - dateformat: "npm:^3.0.3" - get-pkg-repo: "npm:^4.2.1" - git-raw-commits: "npm:^3.0.0" - git-remote-origin-url: "npm:^2.0.0" - git-semver-tags: "npm:^5.0.0" - normalize-package-data: "npm:^3.0.3" - read-pkg: "npm:^3.0.0" - read-pkg-up: "npm:^3.0.0" - checksum: 10c0/c026da415ea58346c167e58f8dd717592e92afc897aa604189a6d69f48b6943e7a656b2c83433810feea32dda117b0914a7f5860ed338a21f6ee9b0f56788b37 +"conventional-changelog-preset-loader@npm:^6.0.1": + version: 6.0.1 + resolution: "conventional-changelog-preset-loader@npm:6.0.1" + checksum: 10c0/71e15c91a831f2220155960abedfa04379f0f80dc29427ef977a7ecab637d926759023fc3f1973a1a2077fd05aa82d464751870b100e8e71977d4490c6cd1a93 languageName: node linkType: hard -"conventional-changelog-preset-loader@npm:^3.0.0": - version: 3.0.0 - resolution: "conventional-changelog-preset-loader@npm:3.0.0" - checksum: 10c0/5de23c4aa8b8526c3542fd5abe9758d56eed79821f32cc16d1fdf480cecc44855edbe4680113f229509dcaf4b97cc41e786ac8e3b0822b44fd9d0b98542ed0e0 +"conventional-changelog-writer@npm:^9.2.0": + version: 9.2.0 + resolution: "conventional-changelog-writer@npm:9.2.0" + dependencies: + "@conventional-changelog/template": "npm:^1.2.1" + "@simple-libs/stream-utils": "npm:^2.0.0" + argue-cli: "npm:^3.1.0" + conventional-commits-filter: "npm:^6.0.1" + semver: "npm:^7.5.2" + bin: + conventional-changelog-writer: ./dist/cli/index.js + checksum: 10c0/27f32aae0e545b4dd566eab039afb33e72b7015e6dcbff4cef89bffd339b4b7672abdba826f99ad50582f871f08139fd693d951d6ca8691db93941d38406f4f7 languageName: node linkType: hard -"conventional-changelog-writer@npm:^6.0.0": - version: 6.0.1 - resolution: "conventional-changelog-writer@npm:6.0.1" - dependencies: - conventional-commits-filter: "npm:^3.0.0" - dateformat: "npm:^3.0.3" - handlebars: "npm:^4.7.7" - json-stringify-safe: "npm:^5.0.1" - meow: "npm:^8.1.2" - semver: "npm:^7.0.0" - split: "npm:^1.0.1" +"conventional-changelog@npm:8.1.0": + version: 8.1.0 + resolution: "conventional-changelog@npm:8.1.0" + dependencies: + "@conventional-changelog/git-client": "npm:^3.1.0" + "@simple-libs/hosted-git-info": "npm:^2.0.0" + "@simple-libs/normalize-package-data": "npm:^1.0.0" + argue-cli: "npm:^3.1.0" + conventional-changelog-preset-loader: "npm:^6.0.1" + conventional-changelog-writer: "npm:^9.2.0" + conventional-commits-parser: "npm:^7.1.0" + fd-package-json: "npm:^2.0.0" bin: - conventional-changelog-writer: cli.js - checksum: 10c0/50790b0d92e06c5ab1c02cc4eb2ecd74575244d31cfacea1885d7c8afeae1bc7bbc169140fe062f2438b9952400762240b796e59521c0246278859296b323338 + conventional-changelog: ./dist/cli/index.js + checksum: 10c0/f9bedd4fc8a91c3092abde678ac672dec85481ba68a83eada0b34550b91a06c1e9e80b0ae27381d010bed2aa1c38933468ccc3be08e249fae1d9c0fe54660514 languageName: node linkType: hard -"conventional-commits-filter@npm:^3.0.0": - version: 3.0.0 - resolution: "conventional-commits-filter@npm:3.0.0" - dependencies: - lodash.ismatch: "npm:^4.4.0" - modify-values: "npm:^1.0.1" - checksum: 10c0/9d43cf9029bf39b70b394c551846a57b6f0473028ba5628c38bd447672655cc27bb80ba502d9a7e41335f63ad62b754cb26579f3d4bae7398dfc092acbb32578 +"conventional-commits-filter@npm:6.0.1, conventional-commits-filter@npm:^6.0.1": + version: 6.0.1 + resolution: "conventional-commits-filter@npm:6.0.1" + checksum: 10c0/afd7bd4dea9d5337e2f69ef868d77f7ff9293c5fa951513d5be483fd347a8810d982c6a93ac6f7a8785a8e38ef451dfc52fd311e9956a624820461daec6d6f5a languageName: node linkType: hard -"conventional-commits-parser@npm:^4.0.0": - version: 4.0.0 - resolution: "conventional-commits-parser@npm:4.0.0" +"conventional-commits-parser@npm:7.1.0": + version: 7.1.0 + resolution: "conventional-commits-parser@npm:7.1.0" dependencies: - JSONStream: "npm:^1.3.5" - is-text-path: "npm:^1.0.1" - meow: "npm:^8.1.2" - split2: "npm:^3.2.2" + "@simple-libs/stream-utils": "npm:^2.0.0" + argue-cli: "npm:^3.1.0" bin: - conventional-commits-parser: cli.js - checksum: 10c0/12e390cc80ad8a825c5775a329b95e11cf47a6df7b8a3875d375e28b8cb27c4f32955842ea73e4e357cff9757a6be99fdffe4fda87a23e9d8e73f983425537a0 + conventional-commits-parser: ./dist/cli/index.js + checksum: 10c0/7056dbe22c844561675dc08b9a3062da07d56e93fa4360fa1cb72dc5df5811b165cc5b2a317a6e05803cc3399ddcb641d701ed456443cffb36c407b2a17d1f97 languageName: node linkType: hard @@ -5433,20 +5328,30 @@ __metadata: languageName: node linkType: hard -"conventional-recommended-bump@npm:7.0.1": - version: 7.0.1 - resolution: "conventional-recommended-bump@npm:7.0.1" - dependencies: - concat-stream: "npm:^2.0.0" - conventional-changelog-preset-loader: "npm:^3.0.0" - conventional-commits-filter: "npm:^3.0.0" - conventional-commits-parser: "npm:^4.0.0" - git-raw-commits: "npm:^3.0.0" - git-semver-tags: "npm:^5.0.0" - meow: "npm:^8.1.2" +"conventional-commits-parser@npm:^7.1.0": + version: 7.1.1 + resolution: "conventional-commits-parser@npm:7.1.1" + dependencies: + "@simple-libs/stream-utils": "npm:^2.0.0" + argue-cli: "npm:^3.1.0" + bin: + conventional-commits-parser: ./dist/cli/index.js + checksum: 10c0/23248451ac02dc50867134d0128f785b50fb8dcc89c54eb72428661b95d936ccfe634070bb0e61ed465decf6e29cb69904a04d26183bb2808bd468984c7b8312 + languageName: node + linkType: hard + +"conventional-recommended-bump@npm:12.1.0": + version: 12.1.0 + resolution: "conventional-recommended-bump@npm:12.1.0" + dependencies: + "@conventional-changelog/git-client": "npm:^3.1.0" + argue-cli: "npm:^3.1.0" + conventional-changelog-preset-loader: "npm:^6.0.1" + conventional-commits-filter: "npm:^6.0.1" + conventional-commits-parser: "npm:^7.1.0" bin: - conventional-recommended-bump: cli.js - checksum: 10c0/ff751a256ddfbec62efd5a32de059b01659e945073793c6766143a8242864fd8099804a90bbf1e6a61928ade3d12292d6f66f721a113630de392d54eb7f0b0c3 + conventional-recommended-bump: ./dist/cli/index.js + checksum: 10c0/1d559ac3054c26a1dba7097eb4b3779ce159f71cc9098c627ff934c2e2c91e52731fb343928812e5bab390353ecd82ac26d2ab18c6064be4625f6ac5b00aa5de languageName: node linkType: hard @@ -5478,13 +5383,6 @@ __metadata: languageName: node linkType: hard -"core-util-is@npm:~1.0.0": - version: 1.0.3 - resolution: "core-util-is@npm:1.0.3" - checksum: 10c0/90a0e40abbddfd7618f8ccd63a74d88deea94e77d0e8dbbea059fa7ebebb8fbb4e2909667fe26f3a467073de1a542ebe6ae4c73a73745ac5833786759cd906c9 - languageName: node - linkType: hard - "cors@npm:^2.8.5": version: 2.8.6 resolution: "cors@npm:2.8.6" @@ -5654,13 +5552,6 @@ __metadata: languageName: node linkType: hard -"dargs@npm:^7.0.0": - version: 7.0.0 - resolution: "dargs@npm:7.0.0" - checksum: 10c0/ec7f6a8315a8fa2f8b12d39207615bdf62b4d01f631b96fbe536c8ad5469ab9ed710d55811e564d0d5c1d548fc8cb6cc70bf0939f2415790159f5a75e0f96c92 - languageName: node - linkType: hard - "data-uri-to-buffer@npm:^4.0.0": version: 4.0.1 resolution: "data-uri-to-buffer@npm:4.0.1" @@ -5718,13 +5609,6 @@ __metadata: languageName: node linkType: hard -"dateformat@npm:^3.0.3": - version: 3.0.3 - resolution: "dateformat@npm:3.0.3" - checksum: 10c0/2effb8bef52ff912f87a05e4adbeacff46353e91313ad1ea9ed31412db26849f5a0fcc7e3ce36dbfb84fc6c881a986d5694f84838ad0da7000d5150693e78678 - languageName: node - linkType: hard - "dateformat@npm:^4.6.3": version: 4.6.3 resolution: "dateformat@npm:4.6.3" @@ -5741,7 +5625,7 @@ __metadata: languageName: node linkType: hard -"debug@npm:4, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.1, debug@npm:^4.3.2, debug@npm:^4.3.4, debug@npm:^4.3.6, debug@npm:^4.4.0, debug@npm:^4.4.1, debug@npm:^4.4.3": +"debug@npm:4, debug@npm:4.4.3, debug@npm:^4.1.0, debug@npm:^4.1.1, debug@npm:^4.3.1, debug@npm:^4.3.2, debug@npm:^4.3.4, debug@npm:^4.3.6, debug@npm:^4.4.0, debug@npm:^4.4.1, debug@npm:^4.4.3": version: 4.4.3 resolution: "debug@npm:4.4.3" dependencies: @@ -5762,17 +5646,7 @@ __metadata: languageName: node linkType: hard -"decamelize-keys@npm:^1.1.0": - version: 1.1.1 - resolution: "decamelize-keys@npm:1.1.1" - dependencies: - decamelize: "npm:^1.1.0" - map-obj: "npm:^1.0.0" - checksum: 10c0/4ca385933127437658338c65fb9aead5f21b28d3dd3ccd7956eb29aab0953b5d3c047fbc207111672220c71ecf7a4d34f36c92851b7bbde6fca1a02c541bdd7d - languageName: node - linkType: hard - -"decamelize@npm:1.2.0, decamelize@npm:^1.1.0": +"decamelize@npm:1.2.0": version: 1.2.0 resolution: "decamelize@npm:1.2.0" checksum: 10c0/85c39fe8fbf0482d4a1e224ef0119db5c1897f8503bcef8b826adff7a1b11414972f6fef2d7dec2ee0b4be3863cf64ac1439137ae9e6af23a3d8dcbe26a5b4b2 @@ -7011,6 +6885,15 @@ __metadata: languageName: node linkType: hard +"fd-package-json@npm:^2.0.0": + version: 2.0.0 + resolution: "fd-package-json@npm:2.0.0" + dependencies: + walk-up-path: "npm:^4.0.0" + checksum: 10c0/a0a48745257bc09c939486608dad9f2ced238f0c64266222cc881618ed4c8f6aa0ccfe45a1e6d4f9ce828509e8d617cec60e2a114851bebb1ff4886dc5ed5112 + languageName: node + linkType: hard + "fdir@npm:^6.4.3, fdir@npm:^6.5.0": version: 6.5.0 resolution: "fdir@npm:6.5.0" @@ -7129,16 +7012,7 @@ __metadata: languageName: node linkType: hard -"find-up@npm:^2.0.0": - version: 2.1.0 - resolution: "find-up@npm:2.1.0" - dependencies: - locate-path: "npm:^2.0.0" - checksum: 10c0/c080875c9fe28eb1962f35cbe83c683796a0321899f1eed31a37577800055539815de13d53495049697d3ba313013344f843bb9401dd337a1b832be5edfc6840 - languageName: node - linkType: hard - -"find-up@npm:^4.0.0, find-up@npm:^4.1.0": +"find-up@npm:^4.0.0": version: 4.1.0 resolution: "find-up@npm:4.1.0" dependencies: @@ -7522,20 +7396,6 @@ __metadata: languageName: node linkType: hard -"get-pkg-repo@npm:^4.2.1": - version: 4.2.1 - resolution: "get-pkg-repo@npm:4.2.1" - dependencies: - "@hutson/parse-repository-url": "npm:^3.0.0" - hosted-git-info: "npm:^4.0.0" - through2: "npm:^2.0.0" - yargs: "npm:^16.2.0" - bin: - get-pkg-repo: src/cli.js - checksum: 10c0/1338d2e048a594da4a34e7dd69d909376d72784f5ba50963a242b4b35db77533786f618b3f6a9effdee2af20af4917a3b7cf12533b4575d7f9c163886be1fb62 - languageName: node - linkType: hard - "get-proto@npm:1.0.1, get-proto@npm:^1.0.1": version: 1.0.1 resolution: "get-proto@npm:1.0.1" @@ -7546,13 +7406,6 @@ __metadata: languageName: node linkType: hard -"get-stream@npm:6.0.0": - version: 6.0.0 - resolution: "get-stream@npm:6.0.0" - checksum: 10c0/7cd835cb9180041e7be2cc3de236e5db9f2144515921aeb60ae78d3a46f9944439d654c2aae5b0191e41eb6e2500f0237494a2e6c0790367183f788d1c9f6dd6 - languageName: node - linkType: hard - "get-stream@npm:^6.0.0, get-stream@npm:^6.0.1": version: 6.0.1 resolution: "get-stream@npm:6.0.1" @@ -7592,19 +7445,6 @@ __metadata: languageName: node linkType: hard -"git-raw-commits@npm:^3.0.0": - version: 3.0.0 - resolution: "git-raw-commits@npm:3.0.0" - dependencies: - dargs: "npm:^7.0.0" - meow: "npm:^8.1.2" - split2: "npm:^3.2.2" - bin: - git-raw-commits: cli.js - checksum: 10c0/2a5db2e4b5b1ef7b6ecbdc175e559920a5400cbdb8d36f130aaef3588bfd74d8650b354a51ff89e0929eadbb265a00078a6291ff26248a525f0b2f079b001bf6 - languageName: node - linkType: hard - "git-raw-commits@npm:^5.0.0": version: 5.0.1 resolution: "git-raw-commits@npm:5.0.1" @@ -7617,28 +7457,6 @@ __metadata: languageName: node linkType: hard -"git-remote-origin-url@npm:^2.0.0": - version: 2.0.0 - resolution: "git-remote-origin-url@npm:2.0.0" - dependencies: - gitconfiglocal: "npm:^1.0.0" - pify: "npm:^2.3.0" - checksum: 10c0/3a846ce98ed36b2d0b801e8ec1ab299a236cfc6fa264bfdf9f42301abfdfd8715c946507fd83a10b9db449eb609ac6f8a2a341daf52e3af0000367487f486355 - languageName: node - linkType: hard - -"git-semver-tags@npm:^5.0.0": - version: 5.0.1 - resolution: "git-semver-tags@npm:5.0.1" - dependencies: - meow: "npm:^8.1.2" - semver: "npm:^7.0.0" - bin: - git-semver-tags: cli.js - checksum: 10c0/7cacba2f4ac19c0ccb8e6bb7301409376e5a2cc178692667afff453e6fe81f79b5f3f5040343e2be127a2f34977528d354de2aa32430917e90b64884debd3102 - languageName: node - linkType: hard - "git-up@npm:^7.0.0": version: 7.0.0 resolution: "git-up@npm:7.0.0" @@ -7658,15 +7476,6 @@ __metadata: languageName: node linkType: hard -"gitconfiglocal@npm:^1.0.0": - version: 1.0.0 - resolution: "gitconfiglocal@npm:1.0.0" - dependencies: - ini: "npm:^1.3.2" - checksum: 10c0/cfcb16344834113199f209f2758ced778dc30e075ddb49b5dde659b4dd2deadee824db0a1b77e1303cb594d9e8b2240da18c67705f657aa76affb444aa349005 - languageName: node - linkType: hard - "github-from-package@npm:0.0.0": version: 0.0.0 resolution: "github-from-package@npm:0.0.0" @@ -7674,15 +7483,6 @@ __metadata: languageName: node linkType: hard -"glob-parent@npm:6.0.2, glob-parent@npm:^6.0.2": - version: 6.0.2 - resolution: "glob-parent@npm:6.0.2" - dependencies: - is-glob: "npm:^4.0.3" - checksum: 10c0/317034d88654730230b3f43bb7ad4f7c90257a426e872ea0bf157473ac61c99bf5d205fad8f0185f989be8d2fa6d3c7dce1645d99d545b6ea9089c39f838e7f8 - languageName: node - linkType: hard - "glob-parent@npm:^5.1.2": version: 5.1.2 resolution: "glob-parent@npm:5.1.2" @@ -7692,6 +7492,15 @@ __metadata: languageName: node linkType: hard +"glob-parent@npm:^6.0.2": + version: 6.0.2 + resolution: "glob-parent@npm:6.0.2" + dependencies: + is-glob: "npm:^4.0.3" + checksum: 10c0/317034d88654730230b3f43bb7ad4f7c90257a426e872ea0bf157473ac61c99bf5d205fad8f0185f989be8d2fa6d3c7dce1645d99d545b6ea9089c39f838e7f8 + languageName: node + linkType: hard + "glob@npm:^11.0.3": version: 11.1.0 resolution: "glob@npm:11.1.0" @@ -7862,7 +7671,7 @@ __metadata: languageName: node linkType: hard -"graceful-fs@npm:^4.1.15, graceful-fs@npm:^4.1.2, graceful-fs@npm:^4.1.6, graceful-fs@npm:^4.2.0, graceful-fs@npm:^4.2.4, graceful-fs@npm:^4.2.6": +"graceful-fs@npm:^4.1.15, graceful-fs@npm:^4.1.6, graceful-fs@npm:^4.2.0, graceful-fs@npm:^4.2.4, graceful-fs@npm:^4.2.6": version: 4.2.11 resolution: "graceful-fs@npm:4.2.11" checksum: 10c0/386d011a553e02bc594ac2ca0bd6d9e4c22d7fa8cfbfc448a6d148c59ea881b092db9dbe3547ae4b88e55f1b01f7c4a2ecc53b310c042793e63aa44cf6c257f2 @@ -7876,7 +7685,7 @@ __metadata: languageName: node linkType: hard -"handlebars@npm:^4.7.7": +"handlebars@npm:4.7.9": version: 4.7.9 resolution: "handlebars@npm:4.7.9" dependencies: @@ -7894,13 +7703,6 @@ __metadata: languageName: node linkType: hard -"hard-rejection@npm:^2.1.0": - version: 2.1.0 - resolution: "hard-rejection@npm:2.1.0" - checksum: 10c0/febc3343a1ad575aedcc112580835b44a89a89e01f400b4eda6e8110869edfdab0b00cd1bd4c3bfec9475a57e79e0b355aecd5be46454b6a62b9a359af60e564 - languageName: node - linkType: hard - "has-ansi@npm:^2.0.0": version: 2.0.0 resolution: "has-ansi@npm:2.0.0" @@ -7965,23 +7767,7 @@ __metadata: languageName: node linkType: hard -"has-unicode@npm:2.0.1": - version: 2.0.1 - resolution: "has-unicode@npm:2.0.1" - checksum: 10c0/ebdb2f4895c26bb08a8a100b62d362e49b2190bcfd84b76bc4be1a3bd4d254ec52d0dd9f2fbcc093fc5eb878b20c52146f9dfd33e2686ed28982187be593b47c - languageName: node - linkType: hard - -"hasown@npm:2.0.2": - version: 2.0.2 - resolution: "hasown@npm:2.0.2" - dependencies: - function-bind: "npm:^1.1.2" - checksum: 10c0/3769d434703b8ac66b209a4cca0737519925bbdb61dd887f93a16372b14694c63ff4e797686d87c90f08168e81082248b9b028bad60d4da9e0d1148766f56eb9 - languageName: node - linkType: hard - -"hasown@npm:^2.0.2, hasown@npm:^2.0.3, hasown@npm:^2.0.4": +"hasown@npm:2.0.4, hasown@npm:^2.0.2, hasown@npm:^2.0.3, hasown@npm:^2.0.4": version: 2.0.4 resolution: "hasown@npm:2.0.4" dependencies: @@ -8016,22 +7802,6 @@ __metadata: languageName: node linkType: hard -"hosted-git-info@npm:^2.1.4": - version: 2.8.9 - resolution: "hosted-git-info@npm:2.8.9" - checksum: 10c0/317cbc6b1bbbe23c2a40ae23f3dafe9fa349ce42a89a36f930e3f9c0530c179a3882d2ef1e4141a4c3674d6faaea862138ec55b43ad6f75e387fda2483a13c70 - languageName: node - linkType: hard - -"hosted-git-info@npm:^4.0.0, hosted-git-info@npm:^4.0.1": - version: 4.1.0 - resolution: "hosted-git-info@npm:4.1.0" - dependencies: - lru-cache: "npm:^6.0.0" - checksum: 10c0/150fbcb001600336d17fdbae803264abed013548eea7946c2264c49ebe2ebd8c4441ba71dd23dd8e18c65de79d637f98b22d4760ba5fb2e0b15d62543d0fff07 - languageName: node - linkType: hard - "hosted-git-info@npm:^8.0.0": version: 8.1.0 resolution: "hosted-git-info@npm:8.1.0" @@ -8149,7 +7919,7 @@ __metadata: languageName: node linkType: hard -"https-proxy-agent@npm:^5.0.1": +"https-proxy-agent@npm:5.0.1, https-proxy-agent@npm:^5.0.1": version: 5.0.1 resolution: "https-proxy-agent@npm:5.0.1" dependencies: @@ -8402,7 +8172,7 @@ __metadata: languageName: node linkType: hard -"inherits@npm:2.0.4, inherits@npm:^2.0.3, inherits@npm:^2.0.4, inherits@npm:~2.0.3, inherits@npm:~2.0.4": +"inherits@npm:2.0.4, inherits@npm:^2.0.3, inherits@npm:^2.0.4, inherits@npm:~2.0.4": version: 2.0.4 resolution: "inherits@npm:2.0.4" checksum: 10c0/4e531f648b29039fb7426fb94075e6545faa1eb9fe83c29f0b6d9e7263aceb4289d2d4557db0d428188eeb449cc7c5e77b0a0b2c4e248ff2a65933a0dee49ef2 @@ -8416,7 +8186,7 @@ __metadata: languageName: node linkType: hard -"ini@npm:^1.3.2, ini@npm:^1.3.8, ini@npm:~1.3.0": +"ini@npm:^1.3.8, ini@npm:~1.3.0": version: 1.3.8 resolution: "ini@npm:1.3.8" checksum: 10c0/ec93838d2328b619532e4f1ff05df7909760b6f66d9c9e2ded11e5c1897d6f2f9980c54dd638f88654b00919ce31e827040631eab0a3969e4d1abefa0719516a @@ -8607,17 +8377,6 @@ __metadata: languageName: node linkType: hard -"is-ci@npm:3.0.1": - version: 3.0.1 - resolution: "is-ci@npm:3.0.1" - dependencies: - ci-info: "npm:^3.2.0" - bin: - is-ci: bin.js - checksum: 10c0/0e81caa62f4520d4088a5bef6d6337d773828a88610346c4b1119fb50c842587ed8bef1e5d9a656835a599e7209405b5761ddf2339668f2d0f4e889a92fe6051 - languageName: node - linkType: hard - "is-ci@npm:^4.0.0": version: 4.1.0 resolution: "is-ci@npm:4.1.0" @@ -8629,7 +8388,7 @@ __metadata: languageName: node linkType: hard -"is-core-module@npm:^2.16.1, is-core-module@npm:^2.16.2, is-core-module@npm:^2.5.0": +"is-core-module@npm:^2.16.1, is-core-module@npm:^2.16.2": version: 2.16.2 resolution: "is-core-module@npm:2.16.2" dependencies: @@ -8776,13 +8535,6 @@ __metadata: languageName: node linkType: hard -"is-plain-obj@npm:^1.1.0": - version: 1.1.0 - resolution: "is-plain-obj@npm:1.1.0" - checksum: 10c0/daaee1805add26f781b413fdf192fc91d52409583be30ace35c82607d440da63cc4cac0ac55136716688d6c0a2c6ef3edb2254fecbd1fe06056d6bd15975ee8c - languageName: node - linkType: hard - "is-plain-obj@npm:^4.1.0": version: 4.1.0 resolution: "is-plain-obj@npm:4.1.0" @@ -8883,15 +8635,6 @@ __metadata: languageName: node linkType: hard -"is-text-path@npm:^1.0.1": - version: 1.0.1 - resolution: "is-text-path@npm:1.0.1" - dependencies: - text-extensions: "npm:^1.0.0" - checksum: 10c0/61c8650c29548febb6bf69e9541fc11abbbb087a0568df7bc471ba264e95fb254def4e610631cbab4ddb0a1a07949d06416f4ebeaf37875023fb184cdb87ee84 - languageName: node - linkType: hard - "is-typed-array@npm:^1.1.13, is-typed-array@npm:^1.1.14, is-typed-array@npm:^1.1.15": version: 1.1.15 resolution: "is-typed-array@npm:1.1.15" @@ -8959,14 +8702,7 @@ __metadata: languageName: node linkType: hard -"isarray@npm:~1.0.0": - version: 1.0.0 - resolution: "isarray@npm:1.0.0" - checksum: 10c0/18b5be6669be53425f0b84098732670ed4e727e3af33bc7f948aac01782110eb9a18b3b329c5323bcdd3acdaae547ee077d3951317e7f133bff7105264b3003d - languageName: node - linkType: hard - -"isexe@npm:^2.0.0": +"isexe@npm:2.0.0, isexe@npm:^2.0.0": version: 2.0.0 resolution: "isexe@npm:2.0.0" checksum: 10c0/228cfa503fadc2c31596ab06ed6aa82c9976eec2bfd83397e7eaf06d0ccf42cd1dfd6743bf9aeb01aebd4156d009994c5f76ea898d2832c1fe342da923ca457d @@ -9024,18 +8760,6 @@ __metadata: languageName: node linkType: hard -"jest-diff@npm:>=30.0.0 < 31": - version: 30.4.1 - resolution: "jest-diff@npm:30.4.1" - dependencies: - "@jest/diff-sequences": "npm:30.4.0" - "@jest/get-type": "npm:30.1.0" - chalk: "npm:^4.1.2" - pretty-format: "npm:30.4.1" - checksum: 10c0/787e11f0ea27e94815479d6c5415e4173da1e74bede34c1515b8515fc9d1fe053e2ad25a3c31f9998a7292c186a0e4d395ed82e0e149d57d7708ee6759b442e9 - languageName: node - linkType: hard - "jiti@npm:2.6.1": version: 2.6.1 resolution: "jiti@npm:2.6.1" @@ -9149,13 +8873,6 @@ __metadata: languageName: node linkType: hard -"json-parse-better-errors@npm:^1.0.1": - version: 1.0.2 - resolution: "json-parse-better-errors@npm:1.0.2" - checksum: 10c0/2f1287a7c833e397c9ddd361a78638e828fc523038bb3441fd4fc144cfd2c6cd4963ffb9e207e648cf7b692600f1e1e524e965c32df5152120910e4903a47dcb - languageName: node - linkType: hard - "json-parse-even-better-errors@npm:^2.3.0": version: 2.3.1 resolution: "json-parse-even-better-errors@npm:2.3.1" @@ -9246,10 +8963,10 @@ __metadata: languageName: node linkType: hard -"jsonc-parser@npm:3.2.0": - version: 3.2.0 - resolution: "jsonc-parser@npm:3.2.0" - checksum: 10c0/5a12d4d04dad381852476872a29dcee03a57439574e4181d91dca71904fcdcc5e8e4706c0a68a2c61ad9810e1e1c5806b5100d52d3e727b78f5cdc595401045b +"jsonc-parser@npm:3.3.1": + version: 3.3.1 + resolution: "jsonc-parser@npm:3.3.1" + checksum: 10c0/269c3ae0a0e4f907a914bf334306c384aabb9929bd8c99f909275ebd5c2d3bc70b9bcd119ad794f339dec9f24b6a4ee9cd5a8ab2e6435e730ad4075388fc2ab6 languageName: node linkType: hard @@ -9266,7 +8983,7 @@ __metadata: languageName: node linkType: hard -"jsonparse@npm:^1.2.0, jsonparse@npm:^1.3.1": +"jsonparse@npm:^1.3.1": version: 1.3.1 resolution: "jsonparse@npm:1.3.1" checksum: 10c0/89bc68080cd0a0e276d4b5ab1b79cacd68f562467008d176dc23e16e97d4efec9e21741d92ba5087a8433526a45a7e6a9d5ef25408696c402ca1cfbc01a90bf0 @@ -9326,13 +9043,6 @@ __metadata: languageName: node linkType: hard -"kind-of@npm:^6.0.3": - version: 6.0.3 - resolution: "kind-of@npm:6.0.3" - checksum: 10c0/61cdff9623dabf3568b6445e93e31376bee1cdb93f8ba7033d86022c2a9b1791a1d9510e026e6465ebd701a6dd2f7b0808483ad8838341ac52f003f512e0b4c4 - languageName: node - linkType: hard - "langsmith@npm:^0.3.67": version: 0.3.87 resolution: "langsmith@npm:0.3.87" @@ -9377,43 +9087,36 @@ __metadata: languageName: node linkType: hard -"lerna@npm:^9.0.7": - version: 9.0.7 - resolution: "lerna@npm:9.0.7" +"lerna@npm:^10.0.0": + version: 10.0.0 + resolution: "lerna@npm:10.0.0" dependencies: "@npmcli/arborist": "npm:9.1.6" "@npmcli/package-json": "npm:7.0.2" "@npmcli/run-script": "npm:10.0.3" - "@nx/devkit": "npm:>=21.5.2 < 23.0.0" + "@nx/devkit": "npm:>=23.1.0 < 24.0.0" "@octokit/plugin-enterprise-rest": "npm:6.0.1" "@octokit/rest": "npm:20.1.2" - aproba: "npm:2.0.0" - byte-size: "npm:8.1.1" - chalk: "npm:4.1.0" ci-info: "npm:4.3.1" cmd-shim: "npm:6.0.3" - color-support: "npm:1.1.3" columnify: "npm:1.6.0" - console-control-strings: "npm:^1.1.0" - conventional-changelog-angular: "npm:7.0.0" - conventional-changelog-core: "npm:5.0.1" - conventional-recommended-bump: "npm:7.0.1" + conventional-changelog: "npm:8.1.0" + conventional-changelog-angular: "npm:9.2.1" + conventional-commits-filter: "npm:6.0.1" + conventional-commits-parser: "npm:7.1.0" + conventional-recommended-bump: "npm:12.1.0" cosmiconfig: "npm:9.0.0" dedent: "npm:1.5.3" envinfo: "npm:7.13.0" execa: "npm:5.0.0" fs-extra: "npm:^11.2.0" - get-stream: "npm:6.0.0" git-url-parse: "npm:14.0.0" - glob-parent: "npm:6.0.2" - has-unicode: "npm:2.0.1" + handlebars: "npm:4.7.9" import-local: "npm:3.1.0" ini: "npm:^1.3.8" init-package-json: "npm:8.2.2" inquirer: "npm:12.9.6" - is-ci: "npm:3.0.1" - jest-diff: "npm:>=30.0.0 < 31" - js-yaml: "npm:4.1.1" + js-yaml: "npm:4.3.0" libnpmaccess: "npm:10.0.3" libnpmpublish: "npm:11.1.2" load-json-file: "npm:6.2.0" @@ -9422,34 +9125,24 @@ __metadata: npm-package-arg: "npm:13.0.1" npm-packlist: "npm:10.0.3" npm-registry-fetch: "npm:19.1.0" - nx: "npm:>=21.5.3 < 23.0.0" + nx: "npm:>=23.1.0 < 24.0.0" p-map: "npm:4.0.0" - p-map-series: "npm:2.1.0" - p-pipe: "npm:3.1.0" p-queue: "npm:6.6.2" - p-reduce: "npm:2.1.0" - p-waterfall: "npm:2.1.1" pacote: "npm:21.0.1" read-cmd-shim: "npm:4.0.0" semver: "npm:7.7.2" signal-exit: "npm:3.0.7" - slash: "npm:3.0.0" ssri: "npm:12.0.0" string-width: "npm:^4.2.3" - tar: "npm:7.5.11" - through: "npm:2.3.8" + tar: "npm:7.5.20" tinyglobby: "npm:0.2.12" - typescript: "npm:>=3 < 6" - upath: "npm:2.0.1" validate-npm-package-license: "npm:3.0.4" validate-npm-package-name: "npm:6.0.2" - wide-align: "npm:1.1.5" write-file-atomic: "npm:5.0.1" yargs: "npm:17.7.2" - yargs-parser: "npm:21.1.1" bin: lerna: dist/cli.js - checksum: 10c0/60e50239790ef3230ee3bfbd084553d6ec164991df5a37443cc9be680a358ed1e61e3334ec403d7a3fc4a5b6d6913e850e52df27d9b04d34cf1501b7eeedcb8a + checksum: 10c0/49e09f922df4eda5860cde0035873e6393960e828f81aabf14fe94538760ece86908233d1d0a85f0570c70140949dca8c89989c3093ef6c8f05b10e1eaf4dec4 languageName: node linkType: hard @@ -9708,28 +9401,6 @@ __metadata: languageName: node linkType: hard -"load-json-file@npm:^4.0.0": - version: 4.0.0 - resolution: "load-json-file@npm:4.0.0" - dependencies: - graceful-fs: "npm:^4.1.2" - parse-json: "npm:^4.0.0" - pify: "npm:^3.0.0" - strip-bom: "npm:^3.0.0" - checksum: 10c0/6b48f6a0256bdfcc8970be2c57f68f10acb2ee7e63709b386b2febb6ad3c86198f840889cdbe71d28f741cbaa2f23a7771206b138cd1bdd159564511ca37c1d5 - languageName: node - linkType: hard - -"locate-path@npm:^2.0.0": - version: 2.0.0 - resolution: "locate-path@npm:2.0.0" - dependencies: - p-locate: "npm:^2.0.0" - path-exists: "npm:^3.0.0" - checksum: 10c0/24efa0e589be6aa3c469b502f795126b26ab97afa378846cb508174211515633b770aa0ba610cab113caedab8d2a4902b061a08aaed5297c12ab6f5be4df0133 - languageName: node - linkType: hard - "locate-path@npm:^5.0.0": version: 5.0.0 resolution: "locate-path@npm:5.0.0" @@ -9755,13 +9426,6 @@ __metadata: languageName: node linkType: hard -"lodash.ismatch@npm:^4.4.0": - version: 4.4.0 - resolution: "lodash.ismatch@npm:4.4.0" - checksum: 10c0/8f96a5dc4b8d3fc5a033dcb259d0c3148a1044fa4d02b4a0e8dce0fa1f2ef3ec4ac131e20b5cb2c985a4e9bcb1c37c0aa5af2cef70094959389617347b8fc645 - languageName: node - linkType: hard - "lodash.merge@npm:^4.6.2": version: 4.6.2 resolution: "lodash.merge@npm:4.6.2" @@ -9776,7 +9440,7 @@ __metadata: languageName: node linkType: hard -"log-symbols@npm:4.1.0, log-symbols@npm:^4.0.0, log-symbols@npm:^4.1.0": +"log-symbols@npm:4.1.0, log-symbols@npm:^4.1.0": version: 4.1.0 resolution: "log-symbols@npm:4.1.0" dependencies: @@ -9827,15 +9491,6 @@ __metadata: languageName: node linkType: hard -"lru-cache@npm:^6.0.0": - version: 6.0.0 - resolution: "lru-cache@npm:6.0.0" - dependencies: - yallist: "npm:^4.0.0" - checksum: 10c0/cb53e582785c48187d7a188d3379c181b5ca2a9c78d2bce3e7dee36f32761d1c42983da3fe12b55cb74e1779fa94cdc2e5367c028a9b35317184ede0c07a30a9 - languageName: node - linkType: hard - "lru-cache@npm:^7.14.1": version: 7.18.3 resolution: "lru-cache@npm:7.18.3" @@ -9911,20 +9566,6 @@ __metadata: languageName: node linkType: hard -"map-obj@npm:^1.0.0": - version: 1.0.1 - resolution: "map-obj@npm:1.0.1" - checksum: 10c0/ccca88395e7d38671ed9f5652ecf471ecd546924be2fb900836b9da35e068a96687d96a5f93dcdfa94d9a27d649d2f10a84595590f89a347fb4dda47629dcc52 - languageName: node - linkType: hard - -"map-obj@npm:^4.0.0": - version: 4.3.0 - resolution: "map-obj@npm:4.3.0" - checksum: 10c0/1c19e1c88513c8abdab25c316367154c6a0a6a0f77e3e8c391bb7c0e093aefed293f539d026dc013d86219e5e4c25f23b0003ea588be2101ccd757bacc12d43b - languageName: node - linkType: hard - "map-stream@npm:~0.1.0": version: 0.1.0 resolution: "map-stream@npm:0.1.0" @@ -9977,25 +9618,6 @@ __metadata: languageName: node linkType: hard -"meow@npm:^8.1.2": - version: 8.1.2 - resolution: "meow@npm:8.1.2" - dependencies: - "@types/minimist": "npm:^1.2.0" - camelcase-keys: "npm:^6.2.2" - decamelize-keys: "npm:^1.1.0" - hard-rejection: "npm:^2.1.0" - minimist-options: "npm:4.1.0" - normalize-package-data: "npm:^3.0.0" - read-pkg-up: "npm:^7.0.1" - redent: "npm:^3.0.0" - trim-newlines: "npm:^3.0.0" - type-fest: "npm:^0.18.0" - yargs-parser: "npm:^20.2.3" - checksum: 10c0/9a8d90e616f783650728a90f4ea1e5f763c1c5260369e6596b52430f877f4af8ecbaa8c9d952c93bbefd6d5bda4caed6a96a20ba7d27b511d2971909b01922a2 - languageName: node - linkType: hard - "merge-descriptors@npm:1.0.3": version: 1.0.3 resolution: "merge-descriptors@npm:1.0.3" @@ -10110,13 +9732,6 @@ __metadata: languageName: node linkType: hard -"min-indent@npm:^1.0.0": - version: 1.0.1 - resolution: "min-indent@npm:1.0.1" - checksum: 10c0/7e207bd5c20401b292de291f02913230cb1163abca162044f7db1d951fa245b174dc00869d40dd9a9f32a885ad6a5f3e767ee104cf278f399cb4e92d3f582d5c - languageName: node - linkType: hard - "minimatch@npm:10.2.5, minimatch@npm:^10.0.3, minimatch@npm:^10.1.1, minimatch@npm:^10.2.2": version: 10.2.5 resolution: "minimatch@npm:10.2.5" @@ -10153,17 +9768,6 @@ __metadata: languageName: node linkType: hard -"minimist-options@npm:4.1.0": - version: 4.1.0 - resolution: "minimist-options@npm:4.1.0" - dependencies: - arrify: "npm:^1.0.1" - is-plain-obj: "npm:^1.1.0" - kind-of: "npm:^6.0.3" - checksum: 10c0/7871f9cdd15d1e7374e5b013e2ceda3d327a06a8c7b38ae16d9ef941e07d985e952c589e57213f7aa90a8744c60aed9524c0d85e501f5478382d9181f2763f54 - languageName: node - linkType: hard - "minimist@npm:1.2.8, minimist@npm:^1.2.0, minimist@npm:^1.2.3, minimist@npm:^1.2.5, minimist@npm:^1.2.6": version: 1.2.8 resolution: "minimist@npm:1.2.8" @@ -10347,13 +9951,6 @@ __metadata: languageName: node linkType: hard -"modify-values@npm:^1.0.1": - version: 1.0.1 - resolution: "modify-values@npm:1.0.1" - checksum: 10c0/6acb1b82aaf7a02f9f7b554b20cbfc159f223a79c66b0a257511c5933d50b85e12ea1220b0a90a2af6f80bc29ff784f929a52a51881867a93ae6a12ce87a729a - languageName: node - linkType: hard - "mri@npm:1.1.4": version: 1.1.4 resolution: "mri@npm:1.1.4" @@ -10620,30 +10217,6 @@ __metadata: languageName: node linkType: hard -"normalize-package-data@npm:^2.3.2, normalize-package-data@npm:^2.5.0": - version: 2.5.0 - resolution: "normalize-package-data@npm:2.5.0" - dependencies: - hosted-git-info: "npm:^2.1.4" - resolve: "npm:^1.10.0" - semver: "npm:2 || 3 || 4 || 5" - validate-npm-package-license: "npm:^3.0.1" - checksum: 10c0/357cb1646deb42f8eb4c7d42c4edf0eec312f3628c2ef98501963cc4bbe7277021b2b1d977f982b2edce78f5a1014613ce9cf38085c3df2d76730481357ca504 - languageName: node - linkType: hard - -"normalize-package-data@npm:^3.0.0, normalize-package-data@npm:^3.0.3": - version: 3.0.3 - resolution: "normalize-package-data@npm:3.0.3" - dependencies: - hosted-git-info: "npm:^4.0.1" - is-core-module: "npm:^2.5.0" - semver: "npm:^7.3.4" - validate-npm-package-license: "npm:^3.0.1" - checksum: 10c0/e5d0f739ba2c465d41f77c9d950e291ea4af78f8816ddb91c5da62257c40b76d8c83278b0d08ffbcd0f187636ebddad20e181e924873916d03e6e5ea2ef026be - languageName: node - linkType: hard - "normalize-url@npm:^8.0.0, normalize-url@npm:^8.1.1": version: 8.1.1 resolution: "normalize-url@npm:8.1.1" @@ -10838,34 +10411,35 @@ __metadata: languageName: node linkType: hard -"nx@npm:>=21.5.3 < 23.0.0": - version: 22.7.5 - resolution: "nx@npm:22.7.5" +"nx@npm:>=23.1.0 < 24.0.0": + version: 23.1.0 + resolution: "nx@npm:23.1.0" dependencies: "@emnapi/core": "npm:1.4.5" "@emnapi/runtime": "npm:1.4.5" "@emnapi/wasi-threads": "npm:1.0.4" "@jest/diff-sequences": "npm:30.0.1" "@napi-rs/wasm-runtime": "npm:0.2.4" - "@nx/nx-darwin-arm64": "npm:22.7.5" - "@nx/nx-darwin-x64": "npm:22.7.5" - "@nx/nx-freebsd-x64": "npm:22.7.5" - "@nx/nx-linux-arm-gnueabihf": "npm:22.7.5" - "@nx/nx-linux-arm64-gnu": "npm:22.7.5" - "@nx/nx-linux-arm64-musl": "npm:22.7.5" - "@nx/nx-linux-x64-gnu": "npm:22.7.5" - "@nx/nx-linux-x64-musl": "npm:22.7.5" - "@nx/nx-win32-arm64-msvc": "npm:22.7.5" - "@nx/nx-win32-x64-msvc": "npm:22.7.5" + "@nx/nx-darwin-arm64": "npm:23.1.0" + "@nx/nx-darwin-x64": "npm:23.1.0" + "@nx/nx-freebsd-x64": "npm:23.1.0" + "@nx/nx-linux-arm-gnueabihf": "npm:23.1.0" + "@nx/nx-linux-arm64-gnu": "npm:23.1.0" + "@nx/nx-linux-arm64-musl": "npm:23.1.0" + "@nx/nx-linux-x64-gnu": "npm:23.1.0" + "@nx/nx-linux-x64-musl": "npm:23.1.0" + "@nx/nx-win32-arm64-msvc": "npm:23.1.0" + "@nx/nx-win32-x64-msvc": "npm:23.1.0" "@tybys/wasm-util": "npm:0.9.0" "@yarnpkg/lockfile": "npm:1.1.0" "@zkochan/js-yaml": "npm:0.0.7" + agent-base: "npm:6.0.2" ansi-colors: "npm:4.1.3" ansi-regex: "npm:5.0.1" ansi-styles: "npm:4.3.0" argparse: "npm:2.0.1" asynckit: "npm:0.4.0" - axios: "npm:1.16.0" + axios: "npm:1.16.1" balanced-match: "npm:4.0.3" base64-js: "npm:1.5.1" bl: "npm:4.1.0" @@ -10880,6 +10454,7 @@ __metadata: color-convert: "npm:2.0.1" color-name: "npm:1.1.4" combined-stream: "npm:1.0.8" + debug: "npm:4.4.3" defaults: "npm:1.0.4" define-lazy-prop: "npm:2.0.0" delayed-stream: "npm:1.0.0" @@ -10899,7 +10474,7 @@ __metadata: figures: "npm:3.2.0" flat: "npm:5.0.2" follow-redirects: "npm:1.16.0" - form-data: "npm:4.0.5" + form-data: "npm:4.0.6" fs-constants: "npm:1.0.0" function-bind: "npm:1.1.2" get-caller-file: "npm:2.0.5" @@ -10909,7 +10484,8 @@ __metadata: has-flag: "npm:4.0.0" has-symbols: "npm:1.1.0" has-tostringtag: "npm:1.0.2" - hasown: "npm:2.0.2" + hasown: "npm:2.0.4" + https-proxy-agent: "npm:5.0.1" ieee754: "npm:1.2.1" ignore: "npm:7.0.5" inherits: "npm:2.0.4" @@ -10918,8 +10494,9 @@ __metadata: is-interactive: "npm:1.0.0" is-unicode-supported: "npm:0.1.0" is-wsl: "npm:2.2.0" + isexe: "npm:2.0.0" json5: "npm:2.2.3" - jsonc-parser: "npm:3.2.0" + jsonc-parser: "npm:3.3.1" lines-and-columns: "npm:2.0.3" log-symbols: "npm:4.1.0" math-intrinsics: "npm:1.1.0" @@ -10928,11 +10505,12 @@ __metadata: mimic-fn: "npm:2.1.0" minimatch: "npm:10.2.5" minimist: "npm:1.2.8" + ms: "npm:2.1.3" npm-run-path: "npm:4.0.1" once: "npm:1.4.0" onetime: "npm:5.1.2" open: "npm:8.4.2" - ora: "npm:5.3.0" + ora: "npm:5.4.1" path-key: "npm:3.1.1" picocolors: "npm:1.1.1" proxy-from-env: "npm:2.1.0" @@ -10941,7 +10519,7 @@ __metadata: resolve.exports: "npm:2.0.3" restore-cursor: "npm:3.1.0" safe-buffer: "npm:5.2.1" - semver: "npm:7.7.4" + semver: "npm:7.8.4" signal-exit: "npm:3.0.7" smol-toml: "npm:1.6.1" string-width: "npm:4.2.3" @@ -10950,12 +10528,12 @@ __metadata: strip-bom: "npm:3.0.0" supports-color: "npm:7.2.0" tar-stream: "npm:2.2.0" - tmp: "npm:0.2.6" - tree-kill: "npm:1.2.2" + tmp: "npm:0.2.7" tsconfig-paths: "npm:4.2.0" tslib: "npm:2.8.1" util-deprecate: "npm:1.0.2" wcwidth: "npm:1.0.1" + which: "npm:3.0.1" wrap-ansi: "npm:7.0.0" wrappy: "npm:1.0.2" y18n: "npm:5.0.8" @@ -10994,7 +10572,7 @@ __metadata: bin: nx: ./dist/bin/nx.js nx-cloud: ./dist/bin/nx-cloud.js - checksum: 10c0/ee43b36dbb9d824187b7ce1fdf19c2e49d7dd984631d2cf2ead11b291428cffafff1296d30bf23f5b8e2ff3dda1680889c576b151c9479b6f82ec07155f0335c + checksum: 10c0/949716a5847d596bd4ec0f3a4af2ebb57cb94a5096e6611ed57678ea6f946e61c85990f80d7b870a948c7836ca226d7d086a7d6c8354838c3688fd9193485099 languageName: node linkType: hard @@ -11202,23 +10780,7 @@ __metadata: languageName: node linkType: hard -"ora@npm:5.3.0": - version: 5.3.0 - resolution: "ora@npm:5.3.0" - dependencies: - bl: "npm:^4.0.3" - chalk: "npm:^4.1.0" - cli-cursor: "npm:^3.1.0" - cli-spinners: "npm:^2.5.0" - is-interactive: "npm:^1.0.0" - log-symbols: "npm:^4.0.0" - strip-ansi: "npm:^6.0.0" - wcwidth: "npm:^1.0.1" - checksum: 10c0/30d5f3218eb75b0a2028c5fb9aa88e83e38a2f1745ab56839abb06c3ba31bae35f768f4e72c4f9e04e2a66be6a898e9312e8cf85c9333e1e3613eabb8c7cdf57 - languageName: node - linkType: hard - -"ora@npm:^5.4.1": +"ora@npm:5.4.1, ora@npm:^5.4.1": version: 5.4.1 resolution: "ora@npm:5.4.1" dependencies: @@ -11293,15 +10855,6 @@ __metadata: languageName: node linkType: hard -"p-limit@npm:^1.1.0": - version: 1.3.0 - resolution: "p-limit@npm:1.3.0" - dependencies: - p-try: "npm:^1.0.0" - checksum: 10c0/5c1b1d53d180b2c7501efb04b7c817448e10efe1ba46f4783f8951994d5027e4cd88f36ad79af50546682594c4ebd11702ac4b9364c47f8074890e2acad0edee - languageName: node - linkType: hard - "p-limit@npm:^2.2.0": version: 2.3.0 resolution: "p-limit@npm:2.3.0" @@ -11320,15 +10873,6 @@ __metadata: languageName: node linkType: hard -"p-locate@npm:^2.0.0": - version: 2.0.0 - resolution: "p-locate@npm:2.0.0" - dependencies: - p-limit: "npm:^1.1.0" - checksum: 10c0/82da4be88fb02fd29175e66021610c881938d3cc97c813c71c1a605fac05617d57fd5d3b337494a6106c0edb2a37c860241430851411f1b265108cead34aee67 - languageName: node - linkType: hard - "p-locate@npm:^4.1.0": version: 4.1.0 resolution: "p-locate@npm:4.1.0" @@ -11347,13 +10891,6 @@ __metadata: languageName: node linkType: hard -"p-map-series@npm:2.1.0": - version: 2.1.0 - resolution: "p-map-series@npm:2.1.0" - checksum: 10c0/302ca686a61c498b227fc45d4e2b2e5bfd20a03f4156a976d94c4ff7decf9cd5a815fa6846b43b37d587ffa8d4671ff2bd596fa83fe8b9113b5102da94940e2a - languageName: node - linkType: hard - "p-map@npm:4.0.0": version: 4.0.0 resolution: "p-map@npm:4.0.0" @@ -11370,13 +10907,6 @@ __metadata: languageName: node linkType: hard -"p-pipe@npm:3.1.0": - version: 3.1.0 - resolution: "p-pipe@npm:3.1.0" - checksum: 10c0/9b3076828ea7e9469c0f92c78fa44096726208d547efdb2d6148cbe135d1a70bd449de5be13e234dd669d9515343bd68527b316bf9d5639cee639e2fdde20aaf - languageName: node - linkType: hard - "p-queue@npm:6.6.2, p-queue@npm:^6.6.2": version: 6.6.2 resolution: "p-queue@npm:6.6.2" @@ -11387,13 +10917,6 @@ __metadata: languageName: node linkType: hard -"p-reduce@npm:2.1.0, p-reduce@npm:^2.0.0": - version: 2.1.0 - resolution: "p-reduce@npm:2.1.0" - checksum: 10c0/27b8ff0fb044995507a06cd6357dffba0f2b98862864745972562a21885d7906ce5c794036d2aaa63ef6303158e41e19aed9f19651dfdafb38548ecec7d0de15 - languageName: node - linkType: hard - "p-retry@npm:4, p-retry@npm:^4.6.2": version: 4.6.2 resolution: "p-retry@npm:4.6.2" @@ -11413,13 +10936,6 @@ __metadata: languageName: node linkType: hard -"p-try@npm:^1.0.0": - version: 1.0.0 - resolution: "p-try@npm:1.0.0" - checksum: 10c0/757ba31de5819502b80c447826fac8be5f16d3cb4fbf9bc8bc4971dba0682e84ac33e4b24176ca7058c69e29f64f34d8d9e9b08e873b7b7bb0aa89d620fa224a - languageName: node - linkType: hard - "p-try@npm:^2.0.0": version: 2.2.0 resolution: "p-try@npm:2.2.0" @@ -11427,15 +10943,6 @@ __metadata: languageName: node linkType: hard -"p-waterfall@npm:2.1.1": - version: 2.1.1 - resolution: "p-waterfall@npm:2.1.1" - dependencies: - p-reduce: "npm:^2.0.0" - checksum: 10c0/ccae582b75a3597018a375f8eac32b93e8bfb9fc22a8e5037787ef4ebf5958d7465c2d3cbe26443971fbbfda2bcb7b645f694b91f928fc9a71fa5031e6e33f85 - languageName: node - linkType: hard - "pac-proxy-agent@npm:^7.1.0": version: 7.2.0 resolution: "pac-proxy-agent@npm:7.2.0" @@ -11550,16 +11057,6 @@ __metadata: languageName: node linkType: hard -"parse-json@npm:^4.0.0": - version: 4.0.0 - resolution: "parse-json@npm:4.0.0" - dependencies: - error-ex: "npm:^1.3.1" - json-parse-better-errors: "npm:^1.0.1" - checksum: 10c0/8d80790b772ccb1bcea4e09e2697555e519d83d04a77c2b4237389b813f82898943a93ffff7d0d2406203bdd0c30dcf95b1661e3a53f83d0e417f053957bef32 - languageName: node - linkType: hard - "parse-json@npm:^5.0.0, parse-json@npm:^5.2.0": version: 5.2.0 resolution: "parse-json@npm:5.2.0" @@ -11625,13 +11122,6 @@ __metadata: languageName: node linkType: hard -"path-exists@npm:^3.0.0": - version: 3.0.0 - resolution: "path-exists@npm:3.0.0" - checksum: 10c0/17d6a5664bc0a11d48e2b2127d28a0e58822c6740bde30403f08013da599182289c56518bec89407e3f31d3c2b6b296a4220bc3f867f0911fee6952208b04167 - languageName: node - linkType: hard - "path-exists@npm:^4.0.0": version: 4.0.0 resolution: "path-exists@npm:4.0.0" @@ -11677,15 +11167,6 @@ __metadata: languageName: node linkType: hard -"path-type@npm:^3.0.0": - version: 3.0.0 - resolution: "path-type@npm:3.0.0" - dependencies: - pify: "npm:^3.0.0" - checksum: 10c0/1332c632f1cac15790ebab8dd729b67ba04fc96f81647496feb1c2975d862d046f41e4b975dbd893048999b2cc90721f72924ad820acc58c78507ba7141a8e56 - languageName: node - linkType: hard - "path-type@npm:^6.0.0": version: 6.0.0 resolution: "path-type@npm:6.0.0" @@ -11730,20 +11211,6 @@ __metadata: languageName: node linkType: hard -"pify@npm:^2.3.0": - version: 2.3.0 - resolution: "pify@npm:2.3.0" - checksum: 10c0/551ff8ab830b1052633f59cb8adc9ae8407a436e06b4a9718bcb27dc5844b83d535c3a8512b388b6062af65a98c49bdc0dd523d8b2617b188f7c8fee457158dc - languageName: node - linkType: hard - -"pify@npm:^3.0.0": - version: 3.0.0 - resolution: "pify@npm:3.0.0" - checksum: 10c0/fead19ed9d801f1b1fcd0638a1ac53eabbb0945bf615f2f8806a8b646565a04a1b0e7ef115c951d225f042cca388fdc1cd3add46d10d1ed6951c20bd2998af10 - languageName: node - linkType: hard - "pino-abstract-transport@npm:^2.0.0": version: 2.0.0 resolution: "pino-abstract-transport@npm:2.0.0" @@ -11945,18 +11412,6 @@ __metadata: languageName: node linkType: hard -"pretty-format@npm:30.4.1": - version: 30.4.1 - resolution: "pretty-format@npm:30.4.1" - dependencies: - "@jest/schemas": "npm:30.4.1" - ansi-styles: "npm:^5.2.0" - react-is-18: "npm:react-is@^18.3.1" - react-is-19: "npm:react-is@^19.2.5" - checksum: 10c0/c7e6633740cd2f6d382f188c00c8b4b3f2bee3cda16db6753471c6bb4b94f76531358d3a7793062a0fb00d72ebfb934e8ae1d4f5ced6bb34c8e7f60996f90076 - languageName: node - linkType: hard - "proc-log@npm:^5.0.0": version: 5.0.0 resolution: "proc-log@npm:5.0.0" @@ -11978,13 +11433,6 @@ __metadata: languageName: node linkType: hard -"process-nextick-args@npm:~2.0.0": - version: 2.0.1 - resolution: "process-nextick-args@npm:2.0.1" - checksum: 10c0/bec089239487833d46b59d80327a1605e1c5287eaad770a291add7f45fda1bb5e28b38e0e061add0a1d0ee0984788ce74fa394d345eed1c420cacf392c554367 - languageName: node - linkType: hard - "process-warning@npm:^5.0.0": version: 5.0.0 resolution: "process-warning@npm:5.0.0" @@ -12223,13 +11671,6 @@ __metadata: languageName: node linkType: hard -"quick-lru@npm:^4.0.1": - version: 4.0.1 - resolution: "quick-lru@npm:4.0.1" - checksum: 10c0/f9b1596fa7595a35c2f9d913ac312fede13d37dc8a747a51557ab36e11ce113bbe88ef4c0154968845559a7709cb6a7e7cbe75f7972182451cd45e7f057a334d - languageName: node - linkType: hard - "quick-lru@npm:^5.1.1": version: 5.1.1 resolution: "quick-lru@npm:5.1.1" @@ -12289,20 +11730,6 @@ __metadata: languageName: node linkType: hard -"react-is-18@npm:react-is@^18.3.1": - version: 18.3.1 - resolution: "react-is@npm:18.3.1" - checksum: 10c0/f2f1e60010c683479e74c63f96b09fb41603527cd131a9959e2aee1e5a8b0caf270b365e5ca77d4a6b18aae659b60a86150bb3979073528877029b35aecd2072 - languageName: node - linkType: hard - -"react-is-19@npm:react-is@^19.2.5": - version: 19.2.7 - resolution: "react-is@npm:19.2.7" - checksum: 10c0/419fe54d5bd7fdf5414a5bb7bd9a1e0e36f9fae28ffb4cb73290fbe342bde15d8584a90d1db62547f6aa03018dce517b178a041abb522136cd4b4b51b4e94c83 - languageName: node - linkType: hard - "read-cmd-shim@npm:4.0.0": version: 4.0.0 resolution: "read-cmd-shim@npm:4.0.0" @@ -12317,50 +11744,6 @@ __metadata: languageName: node linkType: hard -"read-pkg-up@npm:^3.0.0": - version: 3.0.0 - resolution: "read-pkg-up@npm:3.0.0" - dependencies: - find-up: "npm:^2.0.0" - read-pkg: "npm:^3.0.0" - checksum: 10c0/2cd0a180260b0d235990e6e9c8c2330a03882d36bc2eba8930e437ef23ee52a68a894e7e1ccb1c33f03bcceb270a861ee5f7eac686f238857755e2cddfb48ffd - languageName: node - linkType: hard - -"read-pkg-up@npm:^7.0.1": - version: 7.0.1 - resolution: "read-pkg-up@npm:7.0.1" - dependencies: - find-up: "npm:^4.1.0" - read-pkg: "npm:^5.2.0" - type-fest: "npm:^0.8.1" - checksum: 10c0/82b3ac9fd7c6ca1bdc1d7253eb1091a98ff3d195ee0a45386582ce3e69f90266163c34121e6a0a02f1630073a6c0585f7880b3865efcae9c452fa667f02ca385 - languageName: node - linkType: hard - -"read-pkg@npm:^3.0.0": - version: 3.0.0 - resolution: "read-pkg@npm:3.0.0" - dependencies: - load-json-file: "npm:^4.0.0" - normalize-package-data: "npm:^2.3.2" - path-type: "npm:^3.0.0" - checksum: 10c0/65acf2df89fbcd506b48b7ced56a255ba00adf7ecaa2db759c86cc58212f6fd80f1f0b7a85c848551a5d0685232e9b64f45c1fd5b48d85df2761a160767eeb93 - languageName: node - linkType: hard - -"read-pkg@npm:^5.2.0": - version: 5.2.0 - resolution: "read-pkg@npm:5.2.0" - dependencies: - "@types/normalize-package-data": "npm:^2.4.0" - normalize-package-data: "npm:^2.5.0" - parse-json: "npm:^5.0.0" - type-fest: "npm:^0.6.0" - checksum: 10c0/b51a17d4b51418e777029e3a7694c9bd6c578a5ab99db544764a0b0f2c7c0f58f8a6bc101f86a6fceb8ba6d237d67c89acf6170f6b98695d0420ddc86cf109fb - languageName: node - linkType: hard - "read@npm:^4.0.0": version: 4.1.0 resolution: "read@npm:4.1.0" @@ -12370,7 +11753,7 @@ __metadata: languageName: node linkType: hard -"readable-stream@npm:3.6.2, readable-stream@npm:^3.0.0, readable-stream@npm:^3.0.2, readable-stream@npm:^3.1.1, readable-stream@npm:^3.4.0": +"readable-stream@npm:3.6.2, readable-stream@npm:^3.1.1, readable-stream@npm:^3.4.0": version: 3.6.2 resolution: "readable-stream@npm:3.6.2" dependencies: @@ -12381,21 +11764,6 @@ __metadata: languageName: node linkType: hard -"readable-stream@npm:~2.3.6": - version: 2.3.8 - resolution: "readable-stream@npm:2.3.8" - dependencies: - core-util-is: "npm:~1.0.0" - inherits: "npm:~2.0.3" - isarray: "npm:~1.0.0" - process-nextick-args: "npm:~2.0.0" - safe-buffer: "npm:~5.1.1" - string_decoder: "npm:~1.1.1" - util-deprecate: "npm:~1.0.1" - checksum: 10c0/7efdb01f3853bc35ac62ea25493567bf588773213f5f4a79f9c365e1ad13bab845ac0dae7bc946270dc40c3929483228415e92a3fc600cc7e4548992f41ee3fa - languageName: node - linkType: hard - "real-require@npm:^0.2.0": version: 0.2.0 resolution: "real-require@npm:0.2.0" @@ -12403,16 +11771,6 @@ __metadata: languageName: node linkType: hard -"redent@npm:^3.0.0": - version: 3.0.0 - resolution: "redent@npm:3.0.0" - dependencies: - indent-string: "npm:^4.0.0" - strip-indent: "npm:^3.0.0" - checksum: 10c0/d64a6b5c0b50eb3ddce3ab770f866658a2b9998c678f797919ceb1b586bab9259b311407280bd80b804e2a7c7539b19238ae6a2a20c843f1a7fcff21d48c2eae - languageName: node - linkType: hard - "reflect.getprototypeof@npm:^1.0.10, reflect.getprototypeof@npm:^1.0.9": version: 1.0.10 resolution: "reflect.getprototypeof@npm:1.0.10" @@ -12494,20 +11852,6 @@ __metadata: languageName: node linkType: hard -"resolve@npm:^1.10.0": - version: 1.22.12 - resolution: "resolve@npm:1.22.12" - dependencies: - es-errors: "npm:^1.3.0" - is-core-module: "npm:^2.16.1" - path-parse: "npm:^1.0.7" - supports-preserve-symlinks-flag: "npm:^1.0.0" - bin: - resolve: bin/resolve - checksum: 10c0/b16dc9b537c02e8c3388f7d3dcff9741d3071625f9a97ac1c885f2b0ca51e78df22328fb6d6ef214dd9101fb7cfc19aa2836fe3410402a94f3f7b8639c7149bf - languageName: node - linkType: hard - "resolve@npm:^2.0.0-next.6": version: 2.0.0-next.7 resolution: "resolve@npm:2.0.0-next.7" @@ -12524,20 +11868,6 @@ __metadata: languageName: node linkType: hard -"resolve@patch:resolve@npm%3A^1.10.0#optional!builtin": - version: 1.22.12 - resolution: "resolve@patch:resolve@npm%3A1.22.12#optional!builtin::version=1.22.12&hash=c3c19d" - dependencies: - es-errors: "npm:^1.3.0" - is-core-module: "npm:^2.16.1" - path-parse: "npm:^1.0.7" - supports-preserve-symlinks-flag: "npm:^1.0.0" - bin: - resolve: bin/resolve - checksum: 10c0/fc6519984ae1f894d877c0060ba8b1f5ba3bc0e85a02f74e141929c118c23d74d9735619a9cc2965397387e514884245c65d72a40731dcb6cfc84c7bcdc8321e - languageName: node - linkType: hard - "resolve@patch:resolve@npm%3A^2.0.0-next.6#optional!builtin": version: 2.0.0-next.7 resolution: "resolve@patch:resolve@npm%3A2.0.0-next.7#optional!builtin::version=2.0.0-next.7&hash=c3c19d" @@ -12776,13 +12106,6 @@ __metadata: languageName: node linkType: hard -"safe-buffer@npm:~5.1.0, safe-buffer@npm:~5.1.1": - version: 5.1.2 - resolution: "safe-buffer@npm:5.1.2" - checksum: 10c0/780ba6b5d99cc9a40f7b951d47152297d0e260f0df01472a1b99d4889679a4b94a13d644f7dbc4f022572f09ae9005fa2fbb93bbbd83643316f365a3e9a45b21 - languageName: node - linkType: hard - "safe-push-apply@npm:^1.0.0": version: 1.0.0 resolution: "safe-push-apply@npm:1.0.0" @@ -12841,15 +12164,6 @@ __metadata: languageName: node linkType: hard -"semver@npm:2 || 3 || 4 || 5": - version: 5.7.2 - resolution: "semver@npm:5.7.2" - bin: - semver: bin/semver - checksum: 10c0/e4cf10f86f168db772ae95d86ba65b3fd6c5967c94d97c708ccb463b778c2ee53b914cd7167620950fc07faf5a564e6efe903836639e512a1aa15fbc9667fa25 - languageName: node - linkType: hard - "semver@npm:7.7.2": version: 7.7.2 resolution: "semver@npm:7.7.2" @@ -12859,12 +12173,12 @@ __metadata: languageName: node linkType: hard -"semver@npm:7.7.4": - version: 7.7.4 - resolution: "semver@npm:7.7.4" +"semver@npm:7.8.4, semver@npm:^7.1.1, semver@npm:^7.3.5, semver@npm:^7.3.7, semver@npm:^7.5.2, semver@npm:^7.5.3, semver@npm:^7.5.4, semver@npm:^7.6.0, semver@npm:^7.6.3, semver@npm:^7.7.2": + version: 7.8.4 + resolution: "semver@npm:7.8.4" bin: semver: bin/semver.js - checksum: 10c0/5215ad0234e2845d4ea5bb9d836d42b03499546ddafb12075566899fc617f68794bb6f146076b6881d755de17d6c6cc73372555879ec7dce2c2feee947866ad2 + checksum: 10c0/81b7c296fd7927b80f67fa516b75fa1017caac8167795320de28e76ccbc6f7f01763c30ecd10d6a0d8fd089708ab0548a5aebb94b0870e99c2a2b4600a46389b languageName: node linkType: hard @@ -12877,12 +12191,12 @@ __metadata: languageName: node linkType: hard -"semver@npm:^7.0.0, semver@npm:^7.1.1, semver@npm:^7.3.4, semver@npm:^7.3.5, semver@npm:^7.3.7, semver@npm:^7.5.2, semver@npm:^7.5.3, semver@npm:^7.5.4, semver@npm:^7.6.0, semver@npm:^7.6.3, semver@npm:^7.7.2": - version: 7.8.4 - resolution: "semver@npm:7.8.4" +"semver@npm:^7.8.5": + version: 7.8.5 + resolution: "semver@npm:7.8.5" bin: semver: bin/semver.js - checksum: 10c0/81b7c296fd7927b80f67fa516b75fa1017caac8167795320de28e76ccbc6f7f01763c30ecd10d6a0d8fd089708ab0548a5aebb94b0870e99c2a2b4600a46389b + checksum: 10c0/b1f3127a5be8125a94f37188b361c212466c292c6910adce3ec106cff5dc211ccaedc4739c11bb70fda59d6fc1f040a9bca289f4e093451521a2372e5231fe0c languageName: node linkType: hard @@ -13125,13 +12439,6 @@ __metadata: languageName: node linkType: hard -"slash@npm:3.0.0": - version: 3.0.0 - resolution: "slash@npm:3.0.0" - checksum: 10c0/e18488c6a42bdfd4ac5be85b2ced3ccd0224773baae6ad42cfbb9ec74fc07f9fa8396bd35ee638084ead7a2a0818eb5e7151111544d4731ce843019dab4be47b - languageName: node - linkType: hard - "slash@npm:^5.1.0": version: 5.1.0 resolution: "slash@npm:5.1.0" @@ -13261,15 +12568,6 @@ __metadata: languageName: node linkType: hard -"split2@npm:^3.2.2": - version: 3.2.2 - resolution: "split2@npm:3.2.2" - dependencies: - readable-stream: "npm:^3.0.0" - checksum: 10c0/2dad5603c52b353939befa3e2f108f6e3aff42b204ad0f5f16dd12fd7c2beab48d117184ce6f7c8854f9ee5ffec6faae70d243711dd7d143a9f635b4a285de4e - languageName: node - linkType: hard - "split2@npm:^4.0.0": version: 4.2.0 resolution: "split2@npm:4.2.0" @@ -13286,15 +12584,6 @@ __metadata: languageName: node linkType: hard -"split@npm:^1.0.1": - version: 1.0.1 - resolution: "split@npm:1.0.1" - dependencies: - through: "npm:2" - checksum: 10c0/7f489e7ed5ff8a2e43295f30a5197ffcb2d6202c9cf99357f9690d645b19c812bccf0be3ff336fea5054cda17ac96b91d67147d95dbfc31fbb5804c61962af85 - languageName: node - linkType: hard - "ssri@npm:12.0.0, ssri@npm:^12.0.0": version: 12.0.0 resolution: "ssri@npm:12.0.0" @@ -13383,7 +12672,7 @@ __metadata: languageName: node linkType: hard -"string-width@npm:4.2.3, string-width@npm:^1.0.2 || 2 || 3 || 4, string-width@npm:^4.1.0, string-width@npm:^4.2.0, string-width@npm:^4.2.3": +"string-width@npm:4.2.3, string-width@npm:^4.1.0, string-width@npm:^4.2.0, string-width@npm:^4.2.3": version: 4.2.3 resolution: "string-width@npm:4.2.3" dependencies: @@ -13463,15 +12752,6 @@ __metadata: languageName: node linkType: hard -"string_decoder@npm:~1.1.1": - version: 1.1.1 - resolution: "string_decoder@npm:1.1.1" - dependencies: - safe-buffer: "npm:~5.1.0" - checksum: 10c0/b4f89f3a92fd101b5653ca3c99550e07bdf9e13b35037e9e2a1c7b47cec4e55e06ff3fc468e314a0b5e80bfbaf65c1ca5a84978764884ae9413bec1fc6ca924e - languageName: node - linkType: hard - "strip-ansi@npm:6.0.1, strip-ansi@npm:^6.0.0, strip-ansi@npm:^6.0.1": version: 6.0.1 resolution: "strip-ansi@npm:6.0.1" @@ -13520,15 +12800,6 @@ __metadata: languageName: node linkType: hard -"strip-indent@npm:^3.0.0": - version: 3.0.0 - resolution: "strip-indent@npm:3.0.0" - dependencies: - min-indent: "npm:^1.0.0" - checksum: 10c0/ae0deaf41c8d1001c5d4fbe16cb553865c1863da4fae036683b474fa926af9fc121e155cb3fc57a68262b2ae7d5b8420aa752c97a6428c315d00efe2a3875679 - languageName: node - linkType: hard - "strip-json-comments@npm:^3.1.1": version: 3.1.1 resolution: "strip-json-comments@npm:3.1.1" @@ -13636,13 +12907,6 @@ __metadata: languageName: node linkType: hard -"text-extensions@npm:^1.0.0": - version: 1.9.0 - resolution: "text-extensions@npm:1.9.0" - checksum: 10c0/9ad5a9f723a871e2d884e132d7e93f281c60b5759c95f3f6b04704856548715d93a36c10dbaf5f12b91bf405f0cf3893bf169d4d143c0f5509563b992d385443 - languageName: node - linkType: hard - "thread-stream@npm:^3.0.0": version: 3.2.0 resolution: "thread-stream@npm:3.2.0" @@ -13652,17 +12916,7 @@ __metadata: languageName: node linkType: hard -"through2@npm:^2.0.0": - version: 2.0.5 - resolution: "through2@npm:2.0.5" - dependencies: - readable-stream: "npm:~2.3.6" - xtend: "npm:~4.0.1" - checksum: 10c0/cbfe5b57943fa12b4f8c043658c2a00476216d79c014895cef1ac7a1d9a8b31f6b438d0e53eecbb81054b93128324a82ecd59ec1a4f91f01f7ac113dcb14eade - languageName: node - linkType: hard - -"through@npm:2, through@npm:2.3.8, through@npm:>=2.2.7 <3, through@npm:^2.3.6, through@npm:~2.3, through@npm:~2.3.1": +"through@npm:2, through@npm:^2.3.6, through@npm:~2.3, through@npm:~2.3.1": version: 2.3.8 resolution: "through@npm:2.3.8" checksum: 10c0/4b09f3774099de0d4df26d95c5821a62faee32c7e96fb1f4ebd54a2d7c11c57fe88b0a0d49cf375de5fee5ae6bf4eb56dbbf29d07366864e2ee805349970d3cc @@ -13828,15 +13082,6 @@ __metadata: languageName: node linkType: hard -"tree-kill@npm:1.2.2": - version: 1.2.2 - resolution: "tree-kill@npm:1.2.2" - bin: - tree-kill: cli.js - checksum: 10c0/7b1b7c7f17608a8f8d20a162e7957ac1ef6cd1636db1aba92f4e072dc31818c2ff0efac1e3d91064ede67ed5dc57c565420531a8134090a12ac10cf792ab14d2 - languageName: node - linkType: hard - "treeverse@npm:^3.0.0": version: 3.0.0 resolution: "treeverse@npm:3.0.0" @@ -13844,13 +13089,6 @@ __metadata: languageName: node linkType: hard -"trim-newlines@npm:^3.0.0": - version: 3.0.1 - resolution: "trim-newlines@npm:3.0.1" - checksum: 10c0/03cfefde6c59ff57138412b8c6be922ecc5aec30694d784f2a65ef8dcbd47faef580b7de0c949345abdc56ec4b4abf64dd1e5aea619b200316e471a3dd5bf1f6 - languageName: node - linkType: hard - "ts-api-utils@npm:^2.1.0": version: 2.5.0 resolution: "ts-api-utils@npm:2.5.0" @@ -13963,13 +13201,6 @@ __metadata: languageName: node linkType: hard -"type-fest@npm:^0.18.0": - version: 0.18.1 - resolution: "type-fest@npm:0.18.1" - checksum: 10c0/303f5ecf40d03e1d5b635ce7660de3b33c18ed8ebc65d64920c02974d9e684c72483c23f9084587e9dd6466a2ece1da42ddc95b412a461794dd30baca95e2bac - languageName: node - linkType: hard - "type-fest@npm:^0.21.3": version: 0.21.3 resolution: "type-fest@npm:0.21.3" @@ -13984,13 +13215,6 @@ __metadata: languageName: node linkType: hard -"type-fest@npm:^0.8.1": - version: 0.8.1 - resolution: "type-fest@npm:0.8.1" - checksum: 10c0/dffbb99329da2aa840f506d376c863bd55f5636f4741ad6e65e82f5ce47e6914108f44f340a0b74009b0cb5d09d6752ae83203e53e98b1192cf80ecee5651636 - languageName: node - linkType: hard - "type-fest@npm:^2.11.2": version: 2.19.0 resolution: "type-fest@npm:2.19.0" @@ -14086,13 +13310,6 @@ __metadata: languageName: node linkType: hard -"typedarray@npm:^0.0.6": - version: 0.0.6 - resolution: "typedarray@npm:0.0.6" - checksum: 10c0/6005cb31df50eef8b1f3c780eb71a17925f3038a100d82f9406ac2ad1de5eb59f8e6decbdc145b3a1f8e5836e17b0c0002fb698b9fe2516b8f9f9ff602d36412 - languageName: node - linkType: hard - "typescript-eslint@npm:8.46.4": version: 8.46.4 resolution: "typescript-eslint@npm:8.46.4" @@ -14108,16 +13325,6 @@ __metadata: languageName: node linkType: hard -"typescript@npm:>=3 < 6": - version: 5.9.3 - resolution: "typescript@npm:5.9.3" - bin: - tsc: bin/tsc - tsserver: bin/tsserver - checksum: 10c0/6bd7552ce39f97e711db5aa048f6f9995b53f1c52f7d8667c1abdc1700c68a76a308f579cd309ce6b53646deb4e9a1be7c813a93baaf0a28ccd536a30270e1c5 - languageName: node - linkType: hard - "typescript@npm:^6.0.0": version: 6.0.3 resolution: "typescript@npm:6.0.3" @@ -14128,16 +13335,6 @@ __metadata: languageName: node linkType: hard -"typescript@patch:typescript@npm%3A>=3 < 6#optional!builtin": - version: 5.9.3 - resolution: "typescript@patch:typescript@npm%3A5.9.3#optional!builtin::version=5.9.3&hash=5786d5" - bin: - tsc: bin/tsc - tsserver: bin/tsserver - checksum: 10c0/ad09fdf7a756814dce65bc60c1657b40d44451346858eea230e10f2e95a289d9183b6e32e5c11e95acc0ccc214b4f36289dcad4bf1886b0adb84d711d336a430 - languageName: node - linkType: hard - "typescript@patch:typescript@npm%3A^6.0.0#optional!builtin": version: 6.0.3 resolution: "typescript@patch:typescript@npm%3A6.0.3#optional!builtin::version=6.0.3&hash=5786d5" @@ -14259,13 +13456,6 @@ __metadata: languageName: node linkType: hard -"upath@npm:2.0.1": - version: 2.0.1 - resolution: "upath@npm:2.0.1" - checksum: 10c0/79e8e1296b00e24a093b077cfd7a238712d09290c850ce59a7a01458ec78c8d26dcc2ab50b1b9d6a84dabf6511fb4969afeb8a5c9a001aa7272b9cc74c34670f - languageName: node - linkType: hard - "update-browserslist-db@npm:^1.2.3": version: 1.2.3 resolution: "update-browserslist-db@npm:1.2.3" @@ -14296,7 +13486,7 @@ __metadata: languageName: node linkType: hard -"util-deprecate@npm:1.0.2, util-deprecate@npm:^1.0.1, util-deprecate@npm:^1.0.2, util-deprecate@npm:~1.0.1": +"util-deprecate@npm:1.0.2, util-deprecate@npm:^1.0.1, util-deprecate@npm:^1.0.2": version: 1.0.2 resolution: "util-deprecate@npm:1.0.2" checksum: 10c0/41a5bdd214df2f6c3ecf8622745e4a366c4adced864bc3c833739791aeeeb1838119af7daed4ba36428114b5c67dcda034a79c882e97e43c03e66a4dd7389942 @@ -14344,7 +13534,7 @@ __metadata: languageName: node linkType: hard -"validate-npm-package-license@npm:3.0.4, validate-npm-package-license@npm:^3.0.1, validate-npm-package-license@npm:^3.0.4": +"validate-npm-package-license@npm:3.0.4, validate-npm-package-license@npm:^3.0.4": version: 3.0.4 resolution: "validate-npm-package-license@npm:3.0.4" dependencies: @@ -14657,6 +13847,17 @@ __metadata: languageName: node linkType: hard +"which@npm:3.0.1": + version: 3.0.1 + resolution: "which@npm:3.0.1" + dependencies: + isexe: "npm:^2.0.0" + bin: + node-which: bin/which.js + checksum: 10c0/15263b06161a7c377328fd2066cb1f093f5e8a8f429618b63212b5b8847489be7bcab0ab3eb07f3ecc0eda99a5a7ea52105cf5fa8266bedd083cc5a9f6da24f1 + languageName: node + linkType: hard + "which@npm:^2.0.1": version: 2.0.2 resolution: "which@npm:2.0.2" @@ -14713,15 +13914,6 @@ __metadata: languageName: node linkType: hard -"wide-align@npm:1.1.5": - version: 1.1.5 - resolution: "wide-align@npm:1.1.5" - dependencies: - string-width: "npm:^1.0.2 || 2 || 3 || 4" - checksum: 10c0/1d9c2a3e36dfb09832f38e2e699c367ef190f96b82c71f809bc0822c306f5379df87bab47bed27ea99106d86447e50eb972d3c516c2f95782807a9d082fbea95 - languageName: node - linkType: hard - "word-wrap@npm:^1.2.5": version: 1.2.5 resolution: "word-wrap@npm:1.2.5" @@ -14853,13 +14045,6 @@ __metadata: languageName: node linkType: hard -"xtend@npm:~4.0.1": - version: 4.0.2 - resolution: "xtend@npm:4.0.2" - checksum: 10c0/366ae4783eec6100f8a02dff02ac907bf29f9a00b82ac0264b4d8b832ead18306797e283cf19de776538babfdcb2101375ec5646b59f08c52128ac4ab812ed0e - languageName: node - linkType: hard - "y18n@npm:5.0.8, y18n@npm:^5.0.5": version: 5.0.8 resolution: "y18n@npm:5.0.8" @@ -14881,7 +14066,7 @@ __metadata: languageName: node linkType: hard -"yaml@npm:2.9.0, yaml@npm:^2.9.0": +"yaml@npm:2.9.0, yaml@npm:^2.8.3, yaml@npm:^2.9.0": version: 2.9.0 resolution: "yaml@npm:2.9.0" bin: @@ -14908,13 +14093,6 @@ __metadata: languageName: node linkType: hard -"yargs-parser@npm:^20.2.2, yargs-parser@npm:^20.2.3": - version: 20.2.9 - resolution: "yargs-parser@npm:20.2.9" - checksum: 10c0/0685a8e58bbfb57fab6aefe03c6da904a59769bd803a722bb098bd5b0f29d274a1357762c7258fb487512811b8063fb5d2824a3415a0a4540598335b3b086c72 - languageName: node - linkType: hard - "yargs-parser@npm:^22.0.0": version: 22.0.0 resolution: "yargs-parser@npm:22.0.0" @@ -14937,21 +14115,6 @@ __metadata: languageName: node linkType: hard -"yargs@npm:^16.2.0": - version: 16.2.0 - resolution: "yargs@npm:16.2.0" - dependencies: - cliui: "npm:^7.0.2" - escalade: "npm:^3.1.1" - get-caller-file: "npm:^2.0.5" - require-directory: "npm:^2.1.1" - string-width: "npm:^4.2.0" - y18n: "npm:^5.0.5" - yargs-parser: "npm:^20.2.2" - checksum: 10c0/b1dbfefa679848442454b60053a6c95d62f2d2e21dd28def92b647587f415969173c6e99a0f3bab4f1b67ee8283bf735ebe3544013f09491186ba9e8a9a2b651 - languageName: node - linkType: hard - "yargs@npm:^18.0.0": version: 18.0.0 resolution: "yargs@npm:18.0.0"