From ba1cbbefb4e16a220c263fdccbffcdb4d1a7ea37 Mon Sep 17 00:00:00 2001 From: Sam Lin <456807+maxisam@users.noreply.github.com.> Date: Tue, 20 Aug 2024 14:47:59 -0500 Subject: [PATCH 01/28] chore(isr): update CacheHandler and IsrServiceInterface typings --- libs/isr/models/src/cache-handler.ts | 2 +- libs/isr/models/src/isr-service.interface.ts | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/libs/isr/models/src/cache-handler.ts b/libs/isr/models/src/cache-handler.ts index 61bdb9ed9a..fceb5cd24e 100644 --- a/libs/isr/models/src/cache-handler.ts +++ b/libs/isr/models/src/cache-handler.ts @@ -32,7 +32,7 @@ export abstract class CacheHandler { abstract add( url: string, html: string, - config?: CacheISRConfig + config?: CacheISRConfig, ): Promise; abstract get(url: string): Promise; diff --git a/libs/isr/models/src/isr-service.interface.ts b/libs/isr/models/src/isr-service.interface.ts index 0785c325b7..3ebf40cbb6 100644 --- a/libs/isr/models/src/isr-service.interface.ts +++ b/libs/isr/models/src/isr-service.interface.ts @@ -1,14 +1,14 @@ export interface IsrState { revalidate: number | null; errors: Error[]; - extra: Record; + extra: Record; } export interface IsrServiceInterface { getState(): IsrState; patchState(partialState: Partial): void; - getExtra(): Record; + getExtra(): Record; activate(): void; addError(error: Error): void; - addExtra(extra?: Record): void; + addExtra(extra?: Record): void; } From f7755ac2928a085a559aea1fa3303860c350cce1 Mon Sep 17 00:00:00 2001 From: Sam Lin <456807+maxisam@users.noreply.github.com.> Date: Tue, 20 Aug 2024 15:35:21 -0500 Subject: [PATCH 02/28] refactor: fix eslint issues --- .../filesystem-cache-handler.ts | 40 +++++---- .../cache-handlers/in-memory-cache-handler.ts | 12 +-- libs/isr/server/src/cache-regeneration.ts | 42 ++++++---- libs/isr/server/src/isr-handler.ts | 83 +++++++++---------- libs/isr/server/src/isr-logger.ts | 2 +- libs/isr/server/src/isr-server.service.ts | 12 +-- libs/isr/server/src/isr.module.ts | 2 +- libs/isr/server/src/provide-isr.ts | 9 +- .../utils/add-isr-data-before-serialized.ts | 17 ++-- libs/isr/server/src/utils/get-isr-options.ts | 7 +- libs/isr/server/src/utils/render-url.ts | 9 +- 11 files changed, 128 insertions(+), 107 deletions(-) diff --git a/libs/isr/server/src/cache-handlers/filesystem-cache-handler.ts b/libs/isr/server/src/cache-handlers/filesystem-cache-handler.ts index a816ca3a43..92396e99b9 100644 --- a/libs/isr/server/src/cache-handlers/filesystem-cache-handler.ts +++ b/libs/isr/server/src/cache-handlers/filesystem-cache-handler.ts @@ -34,7 +34,7 @@ export class FileSystemCacheHandler extends CacheHandler { if (options.addPrerenderedPagesToCache && !options.prerenderedPagesPath) { throw new Error( - 'Prerendered pages path is required when `addPrerenderedPagesToCache` is enabled!' + 'Prerendered pages path is required when `addPrerenderedPagesToCache` is enabled!', ); } @@ -44,7 +44,7 @@ export class FileSystemCacheHandler extends CacheHandler { async add( route: string, html: string, - config?: CacheISRConfig + config?: CacheISRConfig, ): Promise { return new Promise((resolve, reject) => { // ex: route is like: / or /details/user/1 @@ -76,14 +76,20 @@ export class FileSystemCacheHandler extends CacheHandler { if (cachedRoute) { // on html field we have saved path to file - this.readFromFile(cachedRoute.htmlFilePath).then((html) => { - const cacheData: CacheData = { - html, - options: cachedRoute.options, - createdAt: cachedRoute.createdAt, - }; - resolve(cacheData); - }); + this.readFromFile(cachedRoute.htmlFilePath) + .then((html) => { + const cacheData: CacheData = { + html, + options: cachedRoute.options, + createdAt: cachedRoute.createdAt, + }; + resolve(cacheData); + }) + .catch((err) => { + reject( + `Error: šŸ’„ Cannot read cache file for route ${route}: ${cachedRoute.htmlFilePath}, ${err}`, + ); + }); } else { reject('Error: šŸ’„ Url is not cached.'); } @@ -104,7 +110,7 @@ export class FileSystemCacheHandler extends CacheHandler { reject( 'Error: šŸ’„ Cannot delete cache file for route ' + route + - `: ${cacheData.htmlFilePath}` + `: ${cacheData.htmlFilePath}`, ); } else { this.cache.delete(route); @@ -184,7 +190,7 @@ export class FileSystemCacheHandler extends CacheHandler { // if yes add the folder name to cache as url and index.html as html // then remove the found files because they will be handled by ISR - const folderPath = this.options.prerenderedPagesPath!; + const folderPath = this.options.prerenderedPagesPath || ''; // path is full path to file const pathsToCache: Array<{ path: string; html: string }> = []; @@ -216,12 +222,12 @@ export class FileSystemCacheHandler extends CacheHandler { console.error('ERROR! šŸ’„ ! Cannot read folder: ' + folderPath); } - for (const { path, html } of pathsToCache) { + for (const { path } of pathsToCache) { // from: '/Users/enea/Documents/GitHub/ngx-isr/dist/ngx-isr-demo/browser/details/1/index.html // to: '/details/1/index.html' const pathWithoutPrerenderedPagesPath = path.replace( - this.options.prerenderedPagesPath!, - '' + this.options.prerenderedPagesPath || '', + '', ); let route = ''; @@ -255,7 +261,7 @@ export class FileSystemCacheHandler extends CacheHandler { } console.log( - `${pathsToCache.length} Prerendered pages were moved to cache folder.` + `${pathsToCache.length} Prerendered pages were moved to cache folder.`, ); } @@ -280,7 +286,7 @@ export class FileSystemCacheHandler extends CacheHandler { * @returns {Array<{ path: string; html: string }>} An array of objects, where each object contains the path and contents of an 'index.html' file found in the specified directory or its subdirectories. */ function findIndexHtmlFilesRecursively( - path: string + path: string, ): Array<{ path: string; html: string }> { // Initialize an empty array to hold the data for each file found const data: Array<{ path: string; html: string }> = []; diff --git a/libs/isr/server/src/cache-handlers/in-memory-cache-handler.ts b/libs/isr/server/src/cache-handlers/in-memory-cache-handler.ts index da5823a9bc..0f0e6255a4 100644 --- a/libs/isr/server/src/cache-handlers/in-memory-cache-handler.ts +++ b/libs/isr/server/src/cache-handlers/in-memory-cache-handler.ts @@ -15,11 +15,11 @@ export class InMemoryCacheHandler implements CacheHandler { add( url: string, html: string, - config: CacheISRConfig = defaultCacheISRConfig + config: CacheISRConfig = defaultCacheISRConfig, ): Promise { const htmlWithMsg = html + cacheMsg(config.revalidate); - return new Promise((resolve, reject) => { + return new Promise((resolve) => { const cacheData: CacheData = { html: htmlWithMsg, options: config, @@ -33,26 +33,26 @@ export class InMemoryCacheHandler implements CacheHandler { get(url: string): Promise { return new Promise((resolve, reject) => { if (this.cache.has(url)) { - resolve(this.cache.get(url)!); + resolve(this.cache.get(url) as CacheData); } reject('This url does not exist in cache!'); }); } getAll(): Promise { - return new Promise((resolve, reject) => { + return new Promise((resolve) => { resolve(Array.from(this.cache.keys())); }); } has(url: string): Promise { - return new Promise((resolve, reject) => { + return new Promise((resolve) => { resolve(this.cache.has(url)); }); } delete(url: string): Promise { - return new Promise((resolve, reject) => { + return new Promise((resolve) => { resolve(this.cache.delete(url)); }); } diff --git a/libs/isr/server/src/cache-regeneration.ts b/libs/isr/server/src/cache-regeneration.ts index d5531061f4..4945fd0aea 100644 --- a/libs/isr/server/src/cache-regeneration.ts +++ b/libs/isr/server/src/cache-regeneration.ts @@ -47,16 +47,18 @@ export class CacheRegeneration { this.urlsOnHold.push(cacheKey); - renderUrl({ - req, - res, - url, - indexHtml: this.indexHtml, - providers, - commonEngine: this.commonEngine, - bootstrap: this.bootstrap, - browserDistFolder: this.browserDistFolder, - }).then((html) => { + try { + const html = await renderUrl({ + req, + res, + url, + indexHtml: this.indexHtml, + providers, + commonEngine: this.commonEngine, + bootstrap: this.bootstrap, + browserDistFolder: this.browserDistFolder, + }); + const { errors } = getRouteISRDataFromHTML(html); // if there are errors, don't add the page to cache @@ -71,13 +73,17 @@ export class CacheRegeneration { } // add the regenerated page to cache - this.cache - .add(cacheKey, html, { revalidate, buildId: this.isrConfig.buildId }) - .then(() => { - // remove from urlsOnHold because we are done - this.urlsOnHold = this.urlsOnHold.filter((x) => x !== cacheKey); - logger.log('Url: ' + cacheKey + ' was regenerated!'); - }); - }); + await this.cache.add(cacheKey, html, { + revalidate, + buildId: this.isrConfig.buildId, + }); + // remove from urlsOnHold because we are done + this.urlsOnHold = this.urlsOnHold.filter((x) => x !== cacheKey); + logger.log('Url: ' + cacheKey + ' was regenerated!'); + } catch (error) { + logger.log(`Error regenerating url: ${cacheKey}`, error); + // Ensure removal from urlsOnHold in case of error + this.urlsOnHold = this.urlsOnHold.filter((x) => x !== cacheKey); + } } } diff --git a/libs/isr/server/src/isr-handler.ts b/libs/isr/server/src/isr-handler.ts index 9a0c0bc799..27f52028f1 100644 --- a/libs/isr/server/src/isr-handler.ts +++ b/libs/isr/server/src/isr-handler.ts @@ -19,13 +19,14 @@ import { renderUrl, RenderUrlConfig } from './utils/render-url'; export class ISRHandler { protected cache!: CacheHandler; protected cacheRegeneration!: CacheRegeneration; - protected logger = new ISRLogger(this.config?.enableLogging || false); + protected logger: ISRLogger; constructor(protected config: ISRHandlerConfig) { if (!config) { throw new Error('Provide ISRHandlerConfig!'); } + this.logger = new ISRLogger(this.config?.enableLogging || false); // if skipCachingOnHttpError is not provided it will default to true config.skipCachingOnHttpError = config.skipCachingOnHttpError !== false; // if buildId is not provided it will default to null @@ -55,7 +56,7 @@ export class ISRHandler { req: Request, res: Response, config?: InvalidateConfig, - ): Promise { + ): Promise { const { token, urlsToInvalidate } = extractDataFromBody(req); const { indexHtml } = this.config; @@ -74,7 +75,7 @@ export class ISRHandler { } const notInCache: string[] = []; - const urlWithErrors: Record = {}; + const urlWithErrors: Record = {}; // Include all possible variants in the list of URLs to be invalidated including // their modified request to regenerate the pages @@ -120,7 +121,7 @@ export class ISRHandler { }; await this.cache.add(cacheKey, html, cacheConfig); } catch (err) { - urlWithErrors[cacheKey] = err; + urlWithErrors[cacheKey] = err as string[]; } } @@ -139,9 +140,7 @@ export class ISRHandler { if (Object.keys(urlWithErrors).length) { this.logger.log( - `Urls: ${Object.keys(urlWithErrors).join( - ', ', - )} had errors while regenerating!`, + `Urls: ${Object.keys(urlWithErrors).join(', ')} had errors while regenerating!`, ); } @@ -185,7 +184,7 @@ export class ISRHandler { res: Response, next: NextFunction, config?: ServeFromCacheConfig, - ): Promise { + ): Promise { try { const variant = this.getVariant(req); @@ -243,7 +242,7 @@ export class ISRHandler { res: Response, next: NextFunction, config?: RenderConfig, - ): Promise { + ): Promise { const renderUrlConfig: RenderUrlConfig = { req, res, @@ -255,45 +254,38 @@ export class ISRHandler { browserDistFolder: this.config.browserDistFolder, inlineCriticalCss: this.config.inlineCriticalCss, }; + const html = await renderUrl(renderUrlConfig); + const { revalidate, errors } = getRouteISRDataFromHTML(html); + + // Apply the callback if given + const finalHtml = config?.modifyGeneratedHtml + ? config.modifyGeneratedHtml(req, html) + : html; + + // if we have any http errors when rendering the site, and we have skipCachingOnHttpError enabled + // we don't want to cache it, and, we will fall back to client side rendering + if (errors?.length && this.config.skipCachingOnHttpError) { + this.logger.log('Http errors: \n', errors); + return res.send(finalHtml); + } - renderUrl(renderUrlConfig).then(async (html) => { - // If headers are already sent, we can't send the response - if (res.headersSent) { - return; - } - - const { revalidate, errors } = getRouteISRDataFromHTML(html); - - // Apply the callback if given - const finalHtml = config?.modifyGeneratedHtml - ? config.modifyGeneratedHtml(req, html) - : html; - - // if we have any http errors when rendering the site, and we have skipCachingOnHttpError enabled - // we don't want to cache it, and, we will fall back to client side rendering - if (errors?.length && this.config.skipCachingOnHttpError) { - this.logger.log('Http errors: \n', errors); - return res.send(finalHtml); - } - - // if revalidate is null we won't cache it - // if revalidate is 0, we will never clear the cache automatically - // if revalidate is x, we will clear cache every x seconds (after the last request) for that url + // if revalidate is null we won't cache it + // if revalidate is 0, we will never clear the cache automatically + // if revalidate is x, we will clear cache every x seconds (after the last request) for that url - if (revalidate === null || revalidate === undefined) { - // don't do !revalidate because it will also catch "0" - return res.send(finalHtml); - } + if (revalidate === null || revalidate === undefined) { + // don't do !revalidate because it will also catch "0" + return res.send(finalHtml); + } - const variant = this.getVariant(req); + const variant = this.getVariant(req); - // Cache the rendered `html` for this request url to use for subsequent requests - await this.cache.add(getCacheKey(req.url, variant), finalHtml, { - revalidate, - buildId: this.config.buildId, - }); - return res.send(finalHtml); + // Cache the rendered `html` for this request url to use for subsequent requests + await this.cache.add(getCacheKey(req.url, variant), finalHtml, { + revalidate, + buildId: this.config.buildId, }); + return res.send(finalHtml); } protected getVariant(req: Request): RenderVariant | null { @@ -309,6 +301,9 @@ export class ISRHandler { const extractDataFromBody = ( req: Request, ): { token: string | null; urlsToInvalidate: string[] } => { - const { urlsToInvalidate, token } = req.body; + const { urlsToInvalidate, token } = req.body as { + urlsToInvalidate: string[]; + token: string; + }; return { urlsToInvalidate, token }; }; diff --git a/libs/isr/server/src/isr-logger.ts b/libs/isr/server/src/isr-logger.ts index 6045201f35..9f57ed7f2a 100644 --- a/libs/isr/server/src/isr-logger.ts +++ b/libs/isr/server/src/isr-logger.ts @@ -11,7 +11,7 @@ export class ISRLogger { * @param optionalParams Optional parameters to log * @internal */ - log(message?: any, ...optionalParams: any[]): void { + log(message?: string, ...optionalParams: unknown[]): void { this.showLogs && console.log(message, ...optionalParams); } } diff --git a/libs/isr/server/src/isr-server.service.ts b/libs/isr/server/src/isr-server.service.ts index 8407f5f5a2..cceae482ea 100644 --- a/libs/isr/server/src/isr-server.service.ts +++ b/libs/isr/server/src/isr-server.service.ts @@ -23,7 +23,7 @@ export class IsrServerService implements IsrServiceInterface { this.state = { ...this.state, ...partialState }; } - getExtra(): Record { + getExtra(): Record { return this.state.extra; } @@ -34,7 +34,7 @@ export class IsrServerService implements IsrServiceInterface { activate(): void { this.router.events .pipe( - filter((e) => e instanceof ChildActivationEnd), + filter((e) => 'snapshot' in e), map((event) => { let snapshot = (event as ChildActivationEnd).snapshot; // get the last child route @@ -44,11 +44,11 @@ export class IsrServerService implements IsrServiceInterface { // get the data from the last child route return snapshot.data; }), - take(1) + take(1), ) - .subscribe((data: any) => { + .subscribe((data) => { // if revalidate is defined, set it - if (data?.['revalidate'] !== undefined) { + if (typeof data?.['revalidate'] === 'number') { this.patchState({ revalidate: data['revalidate'] }); } }); @@ -76,7 +76,7 @@ export class IsrServerService implements IsrServiceInterface { * this.isrService.addExtra({ foo: 'bar' }); * ``` */ - addExtra(extra: Record = {}): void { + addExtra(extra: Record = {}): void { this.patchState({ extra: { ...this.getExtra(), ...extra } }); } } diff --git a/libs/isr/server/src/isr.module.ts b/libs/isr/server/src/isr.module.ts index 5401968b03..43c28b6241 100644 --- a/libs/isr/server/src/isr.module.ts +++ b/libs/isr/server/src/isr.module.ts @@ -15,7 +15,7 @@ import { addIsrDataBeforeSerialized } from './utils/add-isr-data-before-serializ export class IsrModule { constructor( private isrService: IsrService, - @Inject(PLATFORM_ID) private platformId: object + @Inject(PLATFORM_ID) private platformId: object, ) { // Activate ISR only on the server if (isPlatformServer(platformId)) { diff --git a/libs/isr/server/src/provide-isr.ts b/libs/isr/server/src/provide-isr.ts index fd8ba44e12..dd29b5151b 100644 --- a/libs/isr/server/src/provide-isr.ts +++ b/libs/isr/server/src/provide-isr.ts @@ -1,7 +1,10 @@ import { DOCUMENT, isPlatformServer } from '@angular/common'; -import { EnvironmentProviders, makeEnvironmentProviders } from '@angular/core'; -import { ENVIRONMENT_INITIALIZER } from '@angular/core'; -import { PLATFORM_ID } from '@angular/core'; +import { + ENVIRONMENT_INITIALIZER, + EnvironmentProviders, + makeEnvironmentProviders, + PLATFORM_ID, +} from '@angular/core'; import { BEFORE_APP_SERIALIZED } from '@angular/platform-server'; import { IsrService } from '@rx-angular/isr/browser'; import { diff --git a/libs/isr/server/src/utils/add-isr-data-before-serialized.ts b/libs/isr/server/src/utils/add-isr-data-before-serialized.ts index 4613365b2f..3f5d760cc4 100644 --- a/libs/isr/server/src/utils/add-isr-data-before-serialized.ts +++ b/libs/isr/server/src/utils/add-isr-data-before-serialized.ts @@ -1,8 +1,14 @@ import { IsrServiceInterface, IsrState } from '@rx-angular/isr/models'; +type ToBeSerializedType = { + revalidate: number | null; + errors?: Error[]; + extra?: Record; // Assuming extra is an object with unknown structure +}; + export function addIsrDataBeforeSerialized( isrService: IsrServiceInterface, - doc: Document + doc: Document, ): () => Promise { return () => addISRDataToBody(doc, isrService.getState()); } @@ -10,16 +16,17 @@ export function addIsrDataBeforeSerialized( // append script with revalidate and errors data for the current route function addISRDataToBody( doc: Document, - { revalidate, errors, extra }: IsrState + { revalidate, errors, extra }: IsrState, ): Promise { return new Promise((resolve) => { const script = doc.createElement('script'); script.id = 'isr-state'; script.setAttribute('type', 'application/json'); - let toBeSerialized: any = { revalidate }; - - if (errors.length) toBeSerialized = { ...toBeSerialized, errors }; + let toBeSerialized: ToBeSerializedType = { revalidate }; + if (errors.length) { + toBeSerialized = { ...toBeSerialized, errors }; + } if (Object.keys(extra).length) toBeSerialized = { ...toBeSerialized, extra }; diff --git a/libs/isr/server/src/utils/get-isr-options.ts b/libs/isr/server/src/utils/get-isr-options.ts index 3e07ad2526..2d0d99a670 100644 --- a/libs/isr/server/src/utils/get-isr-options.ts +++ b/libs/isr/server/src/utils/get-isr-options.ts @@ -4,7 +4,7 @@ * @returns * @example * ```typescript - * const { revalidate, errors } = getISROptions(html); + * const { revalidate, errors } = getRouteISRDataFromHTML(html); * ``` * @internal */ @@ -29,7 +29,10 @@ export function getRouteISRDataFromHTML(html: string): { .substring(0, indexOfCloseScriptTag) // remove close script tag .replace(ISR_SCRIPT_TAG, ''); // remove start script tag - return JSON.parse(val); + return JSON.parse(val) as { + revalidate: number | null; + errors: string[]; + }; } /** diff --git a/libs/isr/server/src/utils/render-url.ts b/libs/isr/server/src/utils/render-url.ts index 2ac7374450..91f7ce1fe7 100644 --- a/libs/isr/server/src/utils/render-url.ts +++ b/libs/isr/server/src/utils/render-url.ts @@ -10,7 +10,6 @@ export interface RenderUrlConfig { url: string; indexHtml: string; providers?: Provider[]; - commonEngine?: CommonEngine; bootstrap?: CommonEngineRenderOptions['bootstrap']; browserDistFolder?: string; @@ -35,7 +34,8 @@ export const renderUrl = async (options: RenderUrlConfig): Promise => { inlineCriticalCss, } = options; - // we need to override url of req with the one we have in parameters + // we need to override url of req with the one we have in parameters, + // because during invalidate process, the url is not from the request req.url = url; req.originalUrl = url; @@ -70,11 +70,12 @@ export const renderUrl = async (options: RenderUrlConfig): Promise => { res.render( indexHtml, { req, providers: allProviders }, - async (err: Error, html: string) => { + (err: Error, html: string) => { if (err) { reject(err); + } else { + resolve(html); } - resolve(html); }, ); } From 0af4f562023f618d78569ab86d1a04af59e1d67a Mon Sep 17 00:00:00 2001 From: Sam Lin <456807+maxisam@users.noreply.github.com.> Date: Tue, 20 Aug 2024 15:06:40 -0500 Subject: [PATCH 03/28] fix(isr): filter urlsOnHold by cacheKey instead of url --- libs/isr/server/src/cache-regeneration.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libs/isr/server/src/cache-regeneration.ts b/libs/isr/server/src/cache-regeneration.ts index 4945fd0aea..41ab1ffb2e 100644 --- a/libs/isr/server/src/cache-regeneration.ts +++ b/libs/isr/server/src/cache-regeneration.ts @@ -64,7 +64,7 @@ export class CacheRegeneration { // if there are errors, don't add the page to cache if (errors?.length && this.isrConfig.skipCachingOnHttpError) { // remove url from urlsOnHold because we want to try to regenerate it again - this.urlsOnHold = this.urlsOnHold.filter((x) => x !== url); + this.urlsOnHold = this.urlsOnHold.filter((x) => x !== cacheKey); logger.log( 'šŸ’„ ERROR: Url: ' + cacheKey + ' was not regenerated!', errors, From 244bff7f2b8e10a63c109bae45f25d474ed62286 Mon Sep 17 00:00:00 2001 From: Sam Lin <456807+maxisam@users.noreply.github.com.> Date: Thu, 22 Aug 2024 11:12:27 -0500 Subject: [PATCH 04/28] feat: add allowed query params options #1743 --- libs/isr/models/src/isr-handler-config.ts | 7 ++++ libs/isr/server/src/cache-regeneration.ts | 6 ++- libs/isr/server/src/isr-handler.ts | 21 ++++++---- libs/isr/server/src/utils/cache-utils.spec.ts | 38 +++++++++++++++++++ libs/isr/server/src/utils/cache-utils.ts | 21 +++++++++- 5 files changed, 82 insertions(+), 11 deletions(-) create mode 100644 libs/isr/server/src/utils/cache-utils.spec.ts diff --git a/libs/isr/models/src/isr-handler-config.ts b/libs/isr/models/src/isr-handler-config.ts index 023d8198d8..89ad286e29 100644 --- a/libs/isr/models/src/isr-handler-config.ts +++ b/libs/isr/models/src/isr-handler-config.ts @@ -97,6 +97,13 @@ export interface ISRHandlerConfig { * ], */ variants?: RenderVariant[]; + + /** + * This array of query params will be allowed to be part of the cache key. + * If not provided, which is null, all query params will be part of the cache key. + * If provided as an empty array, no query params will be part of the cache key. + */ + allowedQueryParams?: string[]; } export interface ServeFromCacheConfig { diff --git a/libs/isr/server/src/cache-regeneration.ts b/libs/isr/server/src/cache-regeneration.ts index 41ab1ffb2e..72f0417885 100644 --- a/libs/isr/server/src/cache-regeneration.ts +++ b/libs/isr/server/src/cache-regeneration.ts @@ -34,7 +34,11 @@ export class CacheRegeneration { ): Promise { const { url } = req; const variant = getVariant(req, this.isrConfig); - const cacheKey = getCacheKey(url, variant); + const cacheKey = getCacheKey( + url, + this.isrConfig.allowedQueryParams, + variant, + ); if (this.urlsOnHold.includes(cacheKey)) { logger.log('Another regeneration is on-going for this url...'); diff --git a/libs/isr/server/src/isr-handler.ts b/libs/isr/server/src/isr-handler.ts index 27f52028f1..8ccd24dd95 100644 --- a/libs/isr/server/src/isr-handler.ts +++ b/libs/isr/server/src/isr-handler.ts @@ -168,7 +168,7 @@ export class ISRHandler { for (const variant of variants) { result.push({ url, - cacheKey: getCacheKey(url, variant), + cacheKey: getCacheKey(url, this.config.allowedQueryParams, variant), reqSimulator: variant.simulateVariant ? variant.simulateVariant : defaultVariant, @@ -187,8 +187,9 @@ export class ISRHandler { ): Promise { try { const variant = this.getVariant(req); - - const cacheData = await this.cache.get(getCacheKey(req.url, variant)); + const cacheData = await this.cache.get( + getCacheKey(req.url, this.config.allowedQueryParams, variant), + ); const { html, options: cacheConfig, createdAt } = cacheData; const cacheHasBuildId = @@ -228,7 +229,7 @@ export class ISRHandler { // Cache exists. Send it. this.logger.log( `Page was retrieved from cache: `, - getCacheKey(req.url, variant), + getCacheKey(req.url, this.config.allowedQueryParams, variant), ); return res.send(finalHtml); } catch (error) { @@ -281,10 +282,14 @@ export class ISRHandler { const variant = this.getVariant(req); // Cache the rendered `html` for this request url to use for subsequent requests - await this.cache.add(getCacheKey(req.url, variant), finalHtml, { - revalidate, - buildId: this.config.buildId, - }); + await this.cache.add( + getCacheKey(req.url, this.config.allowedQueryParams, variant), + finalHtml, + { + revalidate, + buildId: this.config.buildId, + }, + ); return res.send(finalHtml); } diff --git a/libs/isr/server/src/utils/cache-utils.spec.ts b/libs/isr/server/src/utils/cache-utils.spec.ts new file mode 100644 index 0000000000..80281f11b0 --- /dev/null +++ b/libs/isr/server/src/utils/cache-utils.spec.ts @@ -0,0 +1,38 @@ +import { RenderVariant } from '../../../models/src'; +import { getCacheKey } from './cache-utils'; + +describe('getCacheKey', () => { + it('should return the URL without query parameters when none are allowed', () => { + const url = '/page?param1=value1¶m2=value2'; + const result = getCacheKey(url, [], null); + expect(result).toBe('/page'); + }); + + it('should return the URL with query parameters when it is null or undefined', () => { + const url = '/page?param1=value1¶m2=value2'; + const result = getCacheKey(url, null, null); + expect(result).toBe('/page?param1=value1¶m2=value2'); + }); + + it('should include only allowed query parameters in the result', () => { + const url = '/page?allowed=value&disallowed=value'; + const result = getCacheKey(url, ['allowed'], null); + expect(result).toBe('/page?allowed=value'); + }); + + it('should exclude disallowed query parameters', () => { + const url = '/page?allowed=value&disallowed=value'; + const result = getCacheKey(url, ['allowed'], null); + expect(result).not.toContain('disallowed=value'); + }); + + it('should append the variant identifier when a variant is provided', () => { + const url = '/page?param=value'; + const variant: RenderVariant = { + identifier: 'variant123', + detectVariant: () => true, + }; + const result = getCacheKey(url, ['param'], variant); + expect(result).toBe('/page?param=value'); + }); +}); diff --git a/libs/isr/server/src/utils/cache-utils.ts b/libs/isr/server/src/utils/cache-utils.ts index 2040c5882c..d076a4e363 100644 --- a/libs/isr/server/src/utils/cache-utils.ts +++ b/libs/isr/server/src/utils/cache-utils.ts @@ -3,10 +3,27 @@ import { Request } from 'express'; export const getCacheKey = ( url: string, + allowedQueryParams: string[] | null | undefined, variant: RenderVariant | null, ): string => { - if (!variant) return url; - return `${url}`; + let normalizedUrl = url; + if (allowedQueryParams) { + // Normalize the URL by removing disallowed query parameters + // using http://localhost as the base URL to parse the URL + // since the URL constructor requires a base URL to parse relative URLs + // it will not be used in the final cache key + const urlObj = new URL(url, 'http://localhost'); + const searchParams = urlObj.searchParams; + const filteredSearchParams = new URLSearchParams(); + searchParams.forEach((value, key) => { + if (allowedQueryParams.includes(key)) { + filteredSearchParams.append(key, value); + } + }); + normalizedUrl = `${urlObj.pathname}${filteredSearchParams.toString() ? '?' + filteredSearchParams.toString() : ''}`; + } + if (!variant) return normalizedUrl; + return `${normalizedUrl}`; }; export const getVariant = ( From 50643b318a127a66365c72604ee8554609352f4d Mon Sep 17 00:00:00 2001 From: Sam Lin <456807+maxisam@users.noreply.github.com.> Date: Thu, 22 Aug 2024 11:55:58 -0500 Subject: [PATCH 05/28] feat: handle query string for filesystem cache #1690 --- .../filesystem-cache-handler.spec.ts | 35 +++++++++++++++++++ .../filesystem-cache-handler.ts | 12 ++++--- 2 files changed, 43 insertions(+), 4 deletions(-) create mode 100644 libs/isr/server/src/cache-handlers/filesystem-cache-handler.spec.ts diff --git a/libs/isr/server/src/cache-handlers/filesystem-cache-handler.spec.ts b/libs/isr/server/src/cache-handlers/filesystem-cache-handler.spec.ts new file mode 100644 index 0000000000..a430924124 --- /dev/null +++ b/libs/isr/server/src/cache-handlers/filesystem-cache-handler.spec.ts @@ -0,0 +1,35 @@ +import { + convertFileNameToRoute, + convertRouteToFileName, +} from './filesystem-cache-handler'; + +// Use the functions as needed +describe('Route and File Name Conversion', () => { + describe('convertRouteToFileName', () => { + it('should convert a simple route without query parameters', () => { + const route = '/users/profile'; + const expectedFileName = '__users__profile'; + expect(convertRouteToFileName(route)).toEqual(expectedFileName); + }); + + it('should convert a route with query parameters', () => { + const route = '/search?query=test'; + const expectedFileName = '__search++query=test'; + expect(convertRouteToFileName(route)).toEqual(expectedFileName); + }); + }); + + describe('convertFileNameToRoute', () => { + it('should convert a simple file name back to a route', () => { + const fileName = '__users__profile'; + const expectedRoute = '/users/profile'; + expect(convertFileNameToRoute(fileName)).toEqual(expectedRoute); + }); + + it('should convert a file name with "++" back to a route with a query parameter', () => { + const fileName = '__search++query=test'; + const expectedRoute = '/search?query=test'; + expect(convertFileNameToRoute(fileName)).toEqual(expectedRoute); + }); + }); +}); diff --git a/libs/isr/server/src/cache-handlers/filesystem-cache-handler.ts b/libs/isr/server/src/cache-handlers/filesystem-cache-handler.ts index 92396e99b9..d6318ab6e6 100644 --- a/libs/isr/server/src/cache-handlers/filesystem-cache-handler.ts +++ b/libs/isr/server/src/cache-handlers/filesystem-cache-handler.ts @@ -344,16 +344,20 @@ function getFileFullPath(fileName: string, cacheFolderPath: string): string { * @param {string} route - The string representing the route to be converted into a file name. * @returns {string} The modified string representing the file name obtained by replacing '/' characters with '__'. */ -function convertRouteToFileName(route: string): string { +export function convertRouteToFileName(route: string): string { // replace all occurrences of '/' character in the 'route' string with '__' using regular expression - return route.replace(new RegExp('/', 'g'), '__'); + return route + .replace(new RegExp('/', 'g'), '__') + .replace(new RegExp('\\?', 'g'), '++'); } /** * This function takes a string parameter 'fileName' and replaces all '__' strings in it with '/' and returns the modified string. * @param fileName - The string representing the file name to be converted into a route. */ -function convertFileNameToRoute(fileName: string): string { +export function convertFileNameToRoute(fileName: string): string { // replace all occurrences of '__' string in the 'fileName' string with '/' using regular expression - return fileName.replace(new RegExp('__', 'g'), '/'); + return fileName + .replace(new RegExp('\\+\\+', 'g'), '?') + .replace(new RegExp('__', 'g'), '/'); } From 9dc5a70965e69ddc1e76662e4d85f155f852865e Mon Sep 17 00:00:00 2001 From: Sam Lin <456807+maxisam@users.noreply.github.com.> Date: Thu, 22 Aug 2024 14:27:28 -0500 Subject: [PATCH 06/28] fix(isr): in memory cache handler should use extends #1736 --- .../cache-handlers/in-memory-cache-handler.ts | 22 ++++++++++++++----- 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/libs/isr/server/src/cache-handlers/in-memory-cache-handler.ts b/libs/isr/server/src/cache-handlers/in-memory-cache-handler.ts index da5823a9bc..50adf85d6d 100644 --- a/libs/isr/server/src/cache-handlers/in-memory-cache-handler.ts +++ b/libs/isr/server/src/cache-handlers/in-memory-cache-handler.ts @@ -9,17 +9,20 @@ const defaultCacheISRConfig: CacheISRConfig = { buildId: null, }; -export class InMemoryCacheHandler implements CacheHandler { +export class InMemoryCacheHandler extends CacheHandler { protected cache = new Map(); + constructor() { + super(); + } add( url: string, html: string, - config: CacheISRConfig = defaultCacheISRConfig + config: CacheISRConfig = defaultCacheISRConfig, ): Promise { const htmlWithMsg = html + cacheMsg(config.revalidate); - return new Promise((resolve, reject) => { + return new Promise((resolve) => { const cacheData: CacheData = { html: htmlWithMsg, options: config, @@ -40,22 +43,29 @@ export class InMemoryCacheHandler implements CacheHandler { } getAll(): Promise { - return new Promise((resolve, reject) => { + return new Promise((resolve) => { resolve(Array.from(this.cache.keys())); }); } has(url: string): Promise { - return new Promise((resolve, reject) => { + return new Promise((resolve) => { resolve(this.cache.has(url)); }); } delete(url: string): Promise { - return new Promise((resolve, reject) => { + return new Promise((resolve) => { resolve(this.cache.delete(url)); }); } + + override clearCache?(): Promise { + return new Promise((resolve) => { + this.cache.clear(); + resolve(true); + }); + } } const cacheMsg = (revalidateTime?: number | null): string => { From c37269b716aaa58cfe197181a11c50a37612d0c5 Mon Sep 17 00:00:00 2001 From: Sam Lin <456807+maxisam@users.noreply.github.com.> Date: Fri, 23 Aug 2024 15:00:53 -0500 Subject: [PATCH 07/28] refactor(isr): rename CacheRegeneration to CacheGeneration --- libs/isr/server/src/cache-regeneration.ts | 4 ++-- libs/isr/server/src/isr-handler.ts | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/libs/isr/server/src/cache-regeneration.ts b/libs/isr/server/src/cache-regeneration.ts index 72f0417885..578ae91fd1 100644 --- a/libs/isr/server/src/cache-regeneration.ts +++ b/libs/isr/server/src/cache-regeneration.ts @@ -11,7 +11,7 @@ import { getCacheKey, getVariant } from './utils/cache-utils'; import { getRouteISRDataFromHTML } from './utils/get-isr-options'; import { renderUrl } from './utils/render-url'; -export class CacheRegeneration { +export class CacheGeneration { // TODO: make this pluggable because on serverless environments we can't share memory between functions // so we need to use a database or redis cache to store the urls that are on hold if we want to use this feature private urlsOnHold: string[] = []; // urls that have regeneration loading @@ -25,7 +25,7 @@ export class CacheRegeneration { public browserDistFolder?: string, ) {} - async regenerate( + async generate( req: Request, res: Response, cacheData: CacheData, diff --git a/libs/isr/server/src/isr-handler.ts b/libs/isr/server/src/isr-handler.ts index 8ccd24dd95..d3097620cc 100644 --- a/libs/isr/server/src/isr-handler.ts +++ b/libs/isr/server/src/isr-handler.ts @@ -10,7 +10,7 @@ import { } from '@rx-angular/isr/models'; import { NextFunction, Request, Response } from 'express'; import { InMemoryCacheHandler } from './cache-handlers/in-memory-cache-handler'; -import { CacheRegeneration } from './cache-regeneration'; +import { CacheGeneration } from './cache-regeneration'; import { ISRLogger } from './isr-logger'; import { getCacheKey } from './utils/cache-utils'; import { getRouteISRDataFromHTML } from './utils/get-isr-options'; @@ -18,7 +18,7 @@ import { renderUrl, RenderUrlConfig } from './utils/render-url'; export class ISRHandler { protected cache!: CacheHandler; - protected cacheRegeneration!: CacheRegeneration; + protected cacheGeneration!: CacheGeneration; protected logger: ISRLogger; constructor(protected config: ISRHandlerConfig) { @@ -42,7 +42,7 @@ export class ISRHandler { this.cache = new InMemoryCacheHandler(); } - this.cacheRegeneration = new CacheRegeneration( + this.cacheGeneration = new CacheGeneration( this.config, this.cache, config.indexHtml, @@ -206,7 +206,7 @@ export class ISRHandler { const lastCacheDateDiff = (Date.now() - createdAt) / 1000; // in seconds if (lastCacheDateDiff > cacheConfig.revalidate) { - await this.cacheRegeneration.regenerate( + await this.cacheGeneration.generate( req, res, cacheData, From 039f09c3b4998e06755e63eb6d7b2a25e181abe2 Mon Sep 17 00:00:00 2001 From: Sam Lin <456807+maxisam@users.noreply.github.com.> Date: Fri, 23 Aug 2024 15:23:53 -0500 Subject: [PATCH 08/28] refactor(isr): rename CacheRegeneration to CacheGeneration --- .../isr/server/src/{cache-regeneration.ts => cache-generation.ts} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename libs/isr/server/src/{cache-regeneration.ts => cache-generation.ts} (100%) diff --git a/libs/isr/server/src/cache-regeneration.ts b/libs/isr/server/src/cache-generation.ts similarity index 100% rename from libs/isr/server/src/cache-regeneration.ts rename to libs/isr/server/src/cache-generation.ts From c95d1c6d9f59f9708e0953f7b668e697894b50c3 Mon Sep 17 00:00:00 2001 From: Sam Lin <456807+maxisam@users.noreply.github.com.> Date: Wed, 28 Aug 2024 23:21:03 -0500 Subject: [PATCH 09/28] fix(isr): handle modifyGeneratedHtml behavior consistantly #1758 --- apps/docs/docs/isr/cache-hooks.md | 23 ++- libs/isr/models/src/index.ts | 1 + libs/isr/models/src/isr-handler-config.ts | 21 +- libs/isr/server/src/cache-generation.ts | 123 +++++++----- libs/isr/server/src/isr-handler.ts | 195 +++++++------------ libs/isr/server/src/modify-generated-html.ts | 17 ++ libs/isr/server/src/utils/cache-utils.ts | 11 +- 7 files changed, 200 insertions(+), 191 deletions(-) create mode 100644 libs/isr/server/src/modify-generated-html.ts diff --git a/apps/docs/docs/isr/cache-hooks.md b/apps/docs/docs/isr/cache-hooks.md index 9038a1334c..f043026aa0 100644 --- a/apps/docs/docs/isr/cache-hooks.md +++ b/apps/docs/docs/isr/cache-hooks.md @@ -32,13 +32,24 @@ server.get( return `${cachedHtml}`; }, }), + // Server side render the page and add to cache if needed - async (req, res, next) => - await isr.render(req, res, next, { - modifyGeneratedHtml: (req, html) => { - return `${html}`; - }, - }) + const isr = new ISRHandler({ + indexHtml, + invalidateSecretToken: 'MY_TOKEN', // replace with env secret key ex. process.env.REVALIDATE_SECRET_TOKEN + enableLogging: true, + serverDistFolder, + browserDistFolder, + bootstrap, + commonEngine, + modifyGeneratedHtml: (req, html) => { + return `${html}`; + }, + // cache: fsCacheHandler, + }); + + + async (req, res, next) => await isr.render(req, res, next), ); ``` diff --git a/libs/isr/models/src/index.ts b/libs/isr/models/src/index.ts index db810d8523..ce3aa7ce4c 100644 --- a/libs/isr/models/src/index.ts +++ b/libs/isr/models/src/index.ts @@ -9,6 +9,7 @@ export { export { InvalidateConfig, ISRHandlerConfig, + modifyHtmlCallbackFn, RenderConfig, RouteISRConfig, ServeFromCacheConfig, diff --git a/libs/isr/models/src/isr-handler-config.ts b/libs/isr/models/src/isr-handler-config.ts index 89ad286e29..6b66c86741 100644 --- a/libs/isr/models/src/isr-handler-config.ts +++ b/libs/isr/models/src/isr-handler-config.ts @@ -104,6 +104,15 @@ export interface ISRHandlerConfig { * If provided as an empty array, no query params will be part of the cache key. */ allowedQueryParams?: string[]; + + /** + * This callback lets you hook into the generated html and provide any modifications + * necessary on-the-fly. + * Use with caution as this may lead to a performance loss on serving the html. + * if null, it will use defaultModifyGeneratedHtml function, + * which only add commented text to the html to indicate when it was generated with very low performance impact + */ + modifyGeneratedHtml?: modifyHtmlCallbackFn; } export interface ServeFromCacheConfig { @@ -124,14 +133,14 @@ export interface InvalidateConfig { providers?: Provider[]; } +export type modifyHtmlCallbackFn = ( + req: Request, + html: string, + revalidateTime?: number | null, +) => string; + export interface RenderConfig { providers?: Provider[]; - /** - * This callback lets you hook into the generated html and provide any modifications - * necessary on-the-fly. - * Use with caution as this may lead to a performance loss on serving the html. - */ - modifyGeneratedHtml?: (req: Request, html: string) => string; } /** diff --git a/libs/isr/server/src/cache-generation.ts b/libs/isr/server/src/cache-generation.ts index 578ae91fd1..5d17ed6643 100644 --- a/libs/isr/server/src/cache-generation.ts +++ b/libs/isr/server/src/cache-generation.ts @@ -1,15 +1,16 @@ import { Provider } from '@angular/core'; -import { CommonEngine, CommonEngineRenderOptions } from '@angular/ssr'; -import { - CacheData, - CacheHandler, - ISRHandlerConfig, -} from '@rx-angular/isr/models'; +import { CacheHandler, ISRHandlerConfig } from '@rx-angular/isr/models'; import { Request, Response } from 'express'; import { ISRLogger } from './isr-logger'; +import { defaultModifyGeneratedHtml } from './modify-generated-html'; import { getCacheKey, getVariant } from './utils/cache-utils'; import { getRouteISRDataFromHTML } from './utils/get-isr-options'; -import { renderUrl } from './utils/render-url'; +import { renderUrl, RenderUrlConfig } from './utils/render-url'; + +export interface IGeneratedResult { + html?: string; + errors?: string[]; +} export class CacheGeneration { // TODO: make this pluggable because on serverless environments we can't share memory between functions @@ -19,75 +20,103 @@ export class CacheGeneration { constructor( public isrConfig: ISRHandlerConfig, public cache: CacheHandler, - public indexHtml: string, - public commonEngine?: CommonEngine, - public bootstrap?: CommonEngineRenderOptions['bootstrap'], - public browserDistFolder?: string, + public logger: ISRLogger, ) {} - async generate( req: Request, res: Response, - cacheData: CacheData, - logger: ISRLogger, providers?: Provider[], - ): Promise { + mode: 'regenerate' | 'generate' = 'regenerate', + ): Promise { const { url } = req; - const variant = getVariant(req, this.isrConfig); + const variant = getVariant(req, this.isrConfig.variants); const cacheKey = getCacheKey( url, this.isrConfig.allowedQueryParams, variant, ); - if (this.urlsOnHold.includes(cacheKey)) { - logger.log('Another regeneration is on-going for this url...'); - return; - } - - const { revalidate } = cacheData.options; - - logger.log(`The url: ${cacheKey} is being regenerated.`); + return this.generateWithCacheKey(req, res, cacheKey, providers, mode); + } + async generateWithCacheKey( + req: Request, + res: Response, + cacheKey: string, + providers?: Provider[], + mode: 'regenerate' | 'generate' = 'regenerate', + ): Promise { + const { url } = req; - this.urlsOnHold.push(cacheKey); + if (mode === 'regenerate') { + // only regenerate will use queue to avoid multiple regenerations for the same url + // generate mode is used for the request without cache + if (this.urlsOnHold.includes(cacheKey)) { + this.logger.log('Another generation is on-going for this url...'); + return; + } + this.logger.log(`The url: ${cacheKey} is being generated.`); + this.urlsOnHold.push(cacheKey); + } + const renderUrlConfig: RenderUrlConfig = { + req, + res, + url, + indexHtml: this.isrConfig.indexHtml, + providers, + commonEngine: this.isrConfig.commonEngine, + bootstrap: this.isrConfig.bootstrap, + browserDistFolder: this.isrConfig.browserDistFolder, + inlineCriticalCss: this.isrConfig.inlineCriticalCss, + }; try { - const html = await renderUrl({ - req, - res, - url, - indexHtml: this.indexHtml, - providers, - commonEngine: this.commonEngine, - bootstrap: this.bootstrap, - browserDistFolder: this.browserDistFolder, - }); + const html = await renderUrl(renderUrlConfig); + const { revalidate, errors } = getRouteISRDataFromHTML(html); - const { errors } = getRouteISRDataFromHTML(html); + // Apply the modify generation callback + // If undefined, use the default modifyGeneratedHtml function + const finalHtml = this.isrConfig.modifyGeneratedHtml + ? this.isrConfig.modifyGeneratedHtml(req, html, revalidate) + : defaultModifyGeneratedHtml(req, html, revalidate); // if there are errors, don't add the page to cache if (errors?.length && this.isrConfig.skipCachingOnHttpError) { // remove url from urlsOnHold because we want to try to regenerate it again - this.urlsOnHold = this.urlsOnHold.filter((x) => x !== cacheKey); - logger.log( - 'šŸ’„ ERROR: Url: ' + cacheKey + ' was not regenerated!', + if (mode === 'regenerate') { + this.urlsOnHold = this.urlsOnHold.filter((x) => x !== cacheKey); + } + this.logger.log( + `šŸ’„ ERROR: Url: ${cacheKey} was not regenerated!`, errors, ); - return; + return { html: finalHtml, errors }; } + // if revalidate is null we won't cache it + // if revalidate is 0, we will never clear the cache automatically + // if revalidate is x, we will clear cache every x seconds (after the last request) for that url + if (revalidate === null || revalidate === undefined) { + // don't do !revalidate because it will also catch "0" + return { html: finalHtml }; + } // add the regenerated page to cache - await this.cache.add(cacheKey, html, { + await this.cache.add(cacheKey, finalHtml, { revalidate, buildId: this.isrConfig.buildId, }); - // remove from urlsOnHold because we are done - this.urlsOnHold = this.urlsOnHold.filter((x) => x !== cacheKey); - logger.log('Url: ' + cacheKey + ' was regenerated!'); + if (mode === 'regenerate') { + // remove from urlsOnHold because we are done + this.urlsOnHold = this.urlsOnHold.filter((x) => x !== cacheKey); + this.logger.log(`Url: ${cacheKey} was regenerated!`); + } + return { html: finalHtml }; } catch (error) { - logger.log(`Error regenerating url: ${cacheKey}`, error); - // Ensure removal from urlsOnHold in case of error - this.urlsOnHold = this.urlsOnHold.filter((x) => x !== cacheKey); + this.logger.log(`Error regenerating url: ${cacheKey}`, error); + if (mode === 'regenerate') { + // Ensure removal from urlsOnHold in case of error + this.urlsOnHold = this.urlsOnHold.filter((x) => x !== cacheKey); + } + throw error; } } } diff --git a/libs/isr/server/src/isr-handler.ts b/libs/isr/server/src/isr-handler.ts index d3097620cc..29d6522f21 100644 --- a/libs/isr/server/src/isr-handler.ts +++ b/libs/isr/server/src/isr-handler.ts @@ -1,54 +1,48 @@ import { CacheHandler, - CacheISRConfig, InvalidateConfig, ISRHandlerConfig, RenderConfig, - RenderVariant, ServeFromCacheConfig, VariantRebuildItem, } from '@rx-angular/isr/models'; import { NextFunction, Request, Response } from 'express'; +import { CacheGeneration } from './cache-generation'; import { InMemoryCacheHandler } from './cache-handlers/in-memory-cache-handler'; -import { CacheGeneration } from './cache-regeneration'; import { ISRLogger } from './isr-logger'; -import { getCacheKey } from './utils/cache-utils'; -import { getRouteISRDataFromHTML } from './utils/get-isr-options'; -import { renderUrl, RenderUrlConfig } from './utils/render-url'; +import { getCacheKey, getVariant } from './utils/cache-utils'; export class ISRHandler { protected cache!: CacheHandler; protected cacheGeneration!: CacheGeneration; protected logger: ISRLogger; - constructor(protected config: ISRHandlerConfig) { - if (!config) { + constructor(protected isrConfig: ISRHandlerConfig) { + if (!isrConfig) { throw new Error('Provide ISRHandlerConfig!'); } - this.logger = new ISRLogger(this.config?.enableLogging || false); + this.logger = new ISRLogger(this.isrConfig?.enableLogging || false); // if skipCachingOnHttpError is not provided it will default to true - config.skipCachingOnHttpError = config.skipCachingOnHttpError !== false; + isrConfig.skipCachingOnHttpError = + isrConfig.skipCachingOnHttpError !== false; // if buildId is not provided it will default to null - config.buildId = config.buildId || null; + isrConfig.buildId = isrConfig.buildId || null; // if invalidateSecretToken is not provided it will default to null - config.invalidateSecretToken = config.invalidateSecretToken || null; + isrConfig.invalidateSecretToken = isrConfig.invalidateSecretToken || null; - if (config.cache && config.cache instanceof CacheHandler) { + if (isrConfig.cache && isrConfig.cache instanceof CacheHandler) { this.logger.log('Using custom cache handler!'); - this.cache = config.cache; + this.cache = isrConfig.cache; } else { this.logger.log('Using in memory cache handler!'); this.cache = new InMemoryCacheHandler(); } this.cacheGeneration = new CacheGeneration( - this.config, + this.isrConfig, this.cache, - config.indexHtml, - config.commonEngine, - config.bootstrap, - config.browserDistFolder, + this.logger, ); } @@ -58,9 +52,8 @@ export class ISRHandler { config?: InvalidateConfig, ): Promise { const { token, urlsToInvalidate } = extractDataFromBody(req); - const { indexHtml } = this.config; - if (token !== this.config.invalidateSecretToken) { + if (token !== this.isrConfig.invalidateSecretToken) { return res.json({ status: 'error', message: 'Your secret token is wrong!!!', @@ -92,34 +85,20 @@ export class ISRHandler { notInCache.push(cacheKey); continue; } - + // override url of req with the one in parameters, + req.url = url; try { - // re-render the page again - const html = await renderUrl({ - req: reqSimulator(req), + const result = await this.cacheGeneration.generateWithCacheKey( + reqSimulator(req), res, - url, - indexHtml, - providers: config?.providers, - bootstrap: this.config.bootstrap, - commonEngine: this.config.commonEngine, - browserDistFolder: this.config.browserDistFolder, - }); - - // get revalidate data in order to set it to cache data - const { revalidate, errors } = getRouteISRDataFromHTML(html); + cacheKey, + config?.providers, + 'generate', + ); - // if there are errors when rendering the site we throw an error - if (errors?.length && this.config.skipCachingOnHttpError) { - urlWithErrors[cacheKey] = errors; + if (result && result.errors?.length) { + urlWithErrors[cacheKey] = result.errors; } - - // add the regenerated page to cache - const cacheConfig: CacheISRConfig = { - revalidate, - buildId: this.config.buildId, - }; - await this.cache.add(cacheKey, html, cacheConfig); } catch (err) { urlWithErrors[cacheKey] = err as string[]; } @@ -158,7 +137,7 @@ export class ISRHandler { } getVariantUrlsToInvalidate(urlsToInvalidate: string[]): VariantRebuildItem[] { - const variants = this.config.variants || []; + const variants = this.isrConfig.variants || []; const result: VariantRebuildItem[] = []; const defaultVariant = (req: Request) => req; @@ -168,7 +147,11 @@ export class ISRHandler { for (const variant of variants) { result.push({ url, - cacheKey: getCacheKey(url, this.config.allowedQueryParams, variant), + cacheKey: getCacheKey( + url, + this.isrConfig.allowedQueryParams, + variant, + ), reqSimulator: variant.simulateVariant ? variant.simulateVariant : defaultVariant, @@ -186,36 +169,24 @@ export class ISRHandler { config?: ServeFromCacheConfig, ): Promise { try { - const variant = this.getVariant(req); - const cacheData = await this.cache.get( - getCacheKey(req.url, this.config.allowedQueryParams, variant), + const variant = getVariant(req, this.isrConfig.variants); + const cacheKey = getCacheKey( + req.url, + this.isrConfig.allowedQueryParams, + variant, ); + const cacheData = await this.cache.get(cacheKey); const { html, options: cacheConfig, createdAt } = cacheData; const cacheHasBuildId = cacheConfig.buildId !== null && cacheConfig.buildId !== undefined; - if (cacheHasBuildId && cacheConfig.buildId !== this.config.buildId) { + if (cacheHasBuildId && cacheConfig.buildId !== this.isrConfig.buildId) { // Cache is from a different build. Serve user using SSR next(); return; } - // if the cache is expired, we will regenerate it - if (cacheConfig.revalidate && cacheConfig.revalidate > 0) { - const lastCacheDateDiff = (Date.now() - createdAt) / 1000; // in seconds - - if (lastCacheDateDiff > cacheConfig.revalidate) { - await this.cacheGeneration.generate( - req, - res, - cacheData, - this.logger, - config?.providers, - ); - } - } - // Apply the callback if given let finalHtml = html; if (config?.modifyCachedHtml) { @@ -227,10 +198,23 @@ export class ISRHandler { } // Cache exists. Send it. - this.logger.log( - `Page was retrieved from cache: `, - getCacheKey(req.url, this.config.allowedQueryParams, variant), - ); + this.logger.log(`Page was retrieved from cache: `, cacheKey); + + // if the cache is expired, we will regenerate it + if (cacheConfig.revalidate && cacheConfig.revalidate > 0) { + const lastCacheDateDiff = (Date.now() - createdAt) / 1000; // in seconds + + if (lastCacheDateDiff > cacheConfig.revalidate) { + // regenerate the page without awaiting, so the user gets the cached page immediately + this.cacheGeneration.generateWithCacheKey( + req, + res, + cacheKey, + config?.providers, + 'regenerate', + ); + } + } return res.send(finalHtml); } catch (error) { // Cache does not exist. Serve user using SSR @@ -243,63 +227,22 @@ export class ISRHandler { res: Response, next: NextFunction, config?: RenderConfig, - ): Promise { - const renderUrlConfig: RenderUrlConfig = { - req, - res, - url: req.url, - indexHtml: this.config.indexHtml, - providers: config?.providers, - bootstrap: this.config.bootstrap, - commonEngine: this.config.commonEngine, - browserDistFolder: this.config.browserDistFolder, - inlineCriticalCss: this.config.inlineCriticalCss, - }; - const html = await renderUrl(renderUrlConfig); - const { revalidate, errors } = getRouteISRDataFromHTML(html); - - // Apply the callback if given - const finalHtml = config?.modifyGeneratedHtml - ? config.modifyGeneratedHtml(req, html) - : html; - - // if we have any http errors when rendering the site, and we have skipCachingOnHttpError enabled - // we don't want to cache it, and, we will fall back to client side rendering - if (errors?.length && this.config.skipCachingOnHttpError) { - this.logger.log('Http errors: \n', errors); - return res.send(finalHtml); - } - - // if revalidate is null we won't cache it - // if revalidate is 0, we will never clear the cache automatically - // if revalidate is x, we will clear cache every x seconds (after the last request) for that url - - if (revalidate === null || revalidate === undefined) { - // don't do !revalidate because it will also catch "0" - return res.send(finalHtml); - } - - const variant = this.getVariant(req); - - // Cache the rendered `html` for this request url to use for subsequent requests - await this.cache.add( - getCacheKey(req.url, this.config.allowedQueryParams, variant), - finalHtml, - { - revalidate, - buildId: this.config.buildId, - }, - ); - return res.send(finalHtml); - } - - protected getVariant(req: Request): RenderVariant | null { - if (!this.config.variants) { - return null; + ): Promise { + try { + const result = await this.cacheGeneration.generate( + req, + res, + config?.providers, + 'generate', + ); + if (!result) { + throw new Error('Error while generating the page!'); + } else { + return res.send(result.html); + } + } catch (error) { + next(); } - return ( - this.config.variants.find((variant) => variant.detectVariant(req)) || null - ); } } diff --git a/libs/isr/server/src/modify-generated-html.ts b/libs/isr/server/src/modify-generated-html.ts new file mode 100644 index 0000000000..10f9f33891 --- /dev/null +++ b/libs/isr/server/src/modify-generated-html.ts @@ -0,0 +1,17 @@ +import { modifyHtmlCallbackFn } from '@rx-angular/isr/models'; +import { Request } from 'express'; + +export const defaultModifyGeneratedHtml: modifyHtmlCallbackFn = ( + req: Request, + html: string, + revalidateTime?: number | null, +): string => { + const time = new Date().toISOString().replace(/T/, ' ').replace(/\..+/, ''); + + let msg = ''; + return html + msg; +}; diff --git a/libs/isr/server/src/utils/cache-utils.ts b/libs/isr/server/src/utils/cache-utils.ts index d076a4e363..898bf8a8c2 100644 --- a/libs/isr/server/src/utils/cache-utils.ts +++ b/libs/isr/server/src/utils/cache-utils.ts @@ -1,4 +1,4 @@ -import { ISRHandlerConfig, RenderVariant } from '@rx-angular/isr/models'; +import { RenderVariant } from '@rx-angular/isr/models'; import { Request } from 'express'; export const getCacheKey = ( @@ -28,14 +28,13 @@ export const getCacheKey = ( export const getVariant = ( req: Request, - config: ISRHandlerConfig, + variants: RenderVariant[] | undefined, ): RenderVariant | null => { - if (!config.variants) { + if (!variants) { return null; } return ( - config.variants.find((variant: RenderVariant) => - variant.detectVariant(req), - ) || null + variants.find((variant: RenderVariant) => variant.detectVariant(req)) || + null ); }; From cb0261ac7f89ad61f7336dd0a0755344933ea34a Mon Sep 17 00:00:00 2001 From: Sam Lin <456807+maxisam@users.noreply.github.com.> Date: Thu, 29 Aug 2024 11:12:27 -0500 Subject: [PATCH 10/28] refactor(isr): use modifyGeneratedHtml instead --- .../src/cache-handlers/in-memory-cache-handler.ts | 15 +-------------- 1 file changed, 1 insertion(+), 14 deletions(-) diff --git a/libs/isr/server/src/cache-handlers/in-memory-cache-handler.ts b/libs/isr/server/src/cache-handlers/in-memory-cache-handler.ts index 465d445135..27c674f0da 100644 --- a/libs/isr/server/src/cache-handlers/in-memory-cache-handler.ts +++ b/libs/isr/server/src/cache-handlers/in-memory-cache-handler.ts @@ -20,11 +20,9 @@ export class InMemoryCacheHandler extends CacheHandler { html: string, config: CacheISRConfig = defaultCacheISRConfig, ): Promise { - const htmlWithMsg = html + cacheMsg(config.revalidate); - return new Promise((resolve) => { const cacheData: CacheData = { - html: htmlWithMsg, + html, options: config, createdAt: Date.now(), }; @@ -67,14 +65,3 @@ export class InMemoryCacheHandler extends CacheHandler { }); } } - -const cacheMsg = (revalidateTime?: number | null): string => { - const time = new Date().toISOString().replace(/T/, ' ').replace(/\..+/, ''); - - let msg = ''; - return msg; -}; From 2dd95511cf17cc9f50debb2fc8c2c6fb586544cd Mon Sep 17 00:00:00 2001 From: Sam Lin <456807+maxisam@users.noreply.github.com.> Date: Thu, 29 Aug 2024 11:13:26 -0500 Subject: [PATCH 11/28] feat(isr): update the example to show modifyGeneratedHtml usage --- apps/ssr-isr/server.ts | 20 +++++++++++++++++++- apps/ssr-isr/src/app/dynamic.component.ts | 21 ++++++++++++++------- 2 files changed, 33 insertions(+), 8 deletions(-) diff --git a/apps/ssr-isr/server.ts b/apps/ssr-isr/server.ts index 0fb2ba1202..4a88edaae3 100644 --- a/apps/ssr-isr/server.ts +++ b/apps/ssr-isr/server.ts @@ -1,6 +1,7 @@ import { CommonEngine } from '@angular/ssr'; +import { modifyHtmlCallbackFn } from '@rx-angular/isr/models'; import { ISRHandler } from '@rx-angular/isr/server'; -import express from 'express'; +import express, { Request } from 'express'; import { dirname, join, resolve } from 'node:path'; import { fileURLToPath } from 'node:url'; import { RESPONSE } from './src/app/redirect.component'; @@ -30,6 +31,7 @@ export function app(): express.Express { browserDistFolder, bootstrap, commonEngine, + modifyGeneratedHtml: customModifyGeneratedHtml, // cache: fsCacheHandler, }); @@ -72,6 +74,22 @@ export function app(): express.Express { return server; } +const customModifyGeneratedHtml: modifyHtmlCallbackFn = ( + req: Request, + html: string, + revalidateTime?: number | null, +): string => { + const time = new Date().toISOString().replace(/T/, ' ').replace(/\..+/, ''); + + let msg = ''; + html = html.replace('Original content', 'Modified content'); + return html + msg; +}; + function run(): void { const port = process.env['PORT'] || 4000; diff --git a/apps/ssr-isr/src/app/dynamic.component.ts b/apps/ssr-isr/src/app/dynamic.component.ts index 62eca66546..77e8a84ed1 100644 --- a/apps/ssr-isr/src/app/dynamic.component.ts +++ b/apps/ssr-isr/src/app/dynamic.component.ts @@ -8,11 +8,18 @@ import { map, switchMap } from 'rxjs'; selector: 'app-dynamic-page', template: ` @if (post$ | async; as post) { +
+

{{ post.title }}

+

{{ post.body }}

+
+ }
-

{{ post.title }}

-

{{ post.body }}

+

+ Dynamically Modification (controlled by modifyGeneratedHtml in + ISRHandlerConfig) +

+

Original content

- } `, imports: [AsyncPipe], standalone: true, @@ -22,14 +29,14 @@ export class DynamicPageComponent { private http = inject(HttpClient); private postId$ = inject(ActivatedRoute).params.pipe( - map((p) => p['id'] as string) + map((p) => p['id'] as string), ); post$ = this.postId$.pipe( switchMap((id) => this.http.get<{ title: string; body: string }>( - `https://jsonplaceholder.typicode.com/posts/${id}` - ) - ) + `https://jsonplaceholder.typicode.com/posts/${id}`, + ), + ), ); } From 2c88c4f6dc6bbe0b65f306afbeef3ba07612f250 Mon Sep 17 00:00:00 2001 From: Sam Lin <456807+maxisam@users.noreply.github.com.> Date: Thu, 29 Aug 2024 12:42:35 -0500 Subject: [PATCH 12/28] feat(isr): add non-blocking-render option --- libs/isr/models/src/isr-handler-config.ts | 6 ++++++ libs/isr/server/src/cache-generation.ts | 15 +++++++++++---- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/libs/isr/models/src/isr-handler-config.ts b/libs/isr/models/src/isr-handler-config.ts index 6b66c86741..026d02a16e 100644 --- a/libs/isr/models/src/isr-handler-config.ts +++ b/libs/isr/models/src/isr-handler-config.ts @@ -113,6 +113,12 @@ export interface ISRHandlerConfig { * which only add commented text to the html to indicate when it was generated with very low performance impact */ modifyGeneratedHtml?: modifyHtmlCallbackFn; + + /** + * If set to true, the server will not wait for storing the rendered page to the cache storage first and will return the rendered HTML as soon as possible. + * This can avoid client-side waiting times if the remote cache storage is down. + */ + nonBlockingRender?: boolean; } export interface ServeFromCacheConfig { diff --git a/libs/isr/server/src/cache-generation.ts b/libs/isr/server/src/cache-generation.ts index 5d17ed6643..513dafebf0 100644 --- a/libs/isr/server/src/cache-generation.ts +++ b/libs/isr/server/src/cache-generation.ts @@ -100,10 +100,17 @@ export class CacheGeneration { return { html: finalHtml }; } // add the regenerated page to cache - await this.cache.add(cacheKey, finalHtml, { - revalidate, - buildId: this.isrConfig.buildId, - }); + if (this.isrConfig.nonBlockingRender) { + this.cache.add(cacheKey, finalHtml, { + revalidate, + buildId: this.isrConfig.buildId, + }); + } else { + await this.cache.add(cacheKey, finalHtml, { + revalidate, + buildId: this.isrConfig.buildId, + }); + } if (mode === 'regenerate') { // remove from urlsOnHold because we are done this.urlsOnHold = this.urlsOnHold.filter((x) => x !== cacheKey); From dcc61f9add0b3747b4e62b740b1e6557491afd42 Mon Sep 17 00:00:00 2001 From: Sam Lin <456807+maxisam@users.noreply.github.com.> Date: Thu, 29 Aug 2024 12:43:58 -0500 Subject: [PATCH 13/28] feat(isr): add background revalidation option --- libs/isr/models/src/isr-handler-config.ts | 5 +++ libs/isr/server/src/isr-handler.ts | 46 ++++++++++++++--------- 2 files changed, 34 insertions(+), 17 deletions(-) diff --git a/libs/isr/models/src/isr-handler-config.ts b/libs/isr/models/src/isr-handler-config.ts index 026d02a16e..d33152ad0d 100644 --- a/libs/isr/models/src/isr-handler-config.ts +++ b/libs/isr/models/src/isr-handler-config.ts @@ -119,6 +119,11 @@ export interface ISRHandlerConfig { * This can avoid client-side waiting times if the remote cache storage is down. */ nonBlockingRender?: boolean; + + /** + * If set to true, the server will provide the cached HTML as soon as possible and will revalidate the cache in the background. + */ + backgroundRevalidation?: boolean; } export interface ServeFromCacheConfig { diff --git a/libs/isr/server/src/isr-handler.ts b/libs/isr/server/src/isr-handler.ts index 29d6522f21..ae46974a41 100644 --- a/libs/isr/server/src/isr-handler.ts +++ b/libs/isr/server/src/isr-handler.ts @@ -187,18 +187,9 @@ export class ISRHandler { return; } - // Apply the callback if given - let finalHtml = html; - if (config?.modifyCachedHtml) { - const timeStart = performance.now(); - finalHtml = config.modifyCachedHtml(req, html); - const totalTime = (performance.now() - timeStart).toFixed(2); - finalHtml += ``; - } - // Cache exists. Send it. this.logger.log(`Page was retrieved from cache: `, cacheKey); + let finalHtml = html; // if the cache is expired, we will regenerate it if (cacheConfig.revalidate && cacheConfig.revalidate > 0) { @@ -206,15 +197,36 @@ export class ISRHandler { if (lastCacheDateDiff > cacheConfig.revalidate) { // regenerate the page without awaiting, so the user gets the cached page immediately - this.cacheGeneration.generateWithCacheKey( - req, - res, - cacheKey, - config?.providers, - 'regenerate', - ); + if (this.isrConfig.backgroundRevalidation) { + this.cacheGeneration.generateWithCacheKey( + req, + res, + cacheKey, + config?.providers, + 'regenerate', + ); + } else { + const result = await this.cacheGeneration.generateWithCacheKey( + req, + res, + cacheKey, + config?.providers, + 'regenerate', + ); + if (result?.html) { + finalHtml = result.html; + } + } } } + // Apply the callback if given + if (config?.modifyCachedHtml) { + const timeStart = performance.now(); + finalHtml = config.modifyCachedHtml(req, finalHtml); + const totalTime = (performance.now() - timeStart).toFixed(2); + finalHtml += ``; + } return res.send(finalHtml); } catch (error) { // Cache does not exist. Serve user using SSR From fe0bac2577bc6de2221afd272775c6b86552d99d Mon Sep 17 00:00:00 2001 From: Sam Lin <456807+maxisam@users.noreply.github.com.> Date: Thu, 29 Aug 2024 12:57:37 -0500 Subject: [PATCH 14/28] feat(isr): enable background revalidation and non-blocking render --- apps/ssr-isr/server.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/apps/ssr-isr/server.ts b/apps/ssr-isr/server.ts index 4a88edaae3..b2af9b3ebd 100644 --- a/apps/ssr-isr/server.ts +++ b/apps/ssr-isr/server.ts @@ -31,6 +31,8 @@ export function app(): express.Express { browserDistFolder, bootstrap, commonEngine, + backgroundRevalidation: true, // will revalidate in background and serve the cache page first + nonBlockingRender: true, // will serve page first and store in cache in background modifyGeneratedHtml: customModifyGeneratedHtml, // cache: fsCacheHandler, }); From 2ae885799f39be3a7c2ea361249ccdf78a1aa5d4 Mon Sep 17 00:00:00 2001 From: Sam Lin <456807+maxisam@users.noreply.github.com.> Date: Fri, 30 Aug 2024 12:29:03 -0500 Subject: [PATCH 15/28] feat(isr): add compression #1755 --- apps/ssr-isr/server.ts | 12 ++- libs/isr/models/src/index.ts | 1 + libs/isr/models/src/isr-handler-config.ts | 15 ++++ libs/isr/server/src/cache-generation.ts | 16 ++-- libs/isr/server/src/compress-html.ts | 14 ++++ libs/isr/server/src/index.ts | 2 + libs/isr/server/src/isr-handler.ts | 39 +++++++--- .../isr/server/src/utils/compression-utils.ts | 32 ++++++++ package.json | 5 +- yarn.lock | 76 ++++++++++++------- 10 files changed, 169 insertions(+), 43 deletions(-) create mode 100644 libs/isr/server/src/compress-html.ts create mode 100644 libs/isr/server/src/utils/compression-utils.ts diff --git a/apps/ssr-isr/server.ts b/apps/ssr-isr/server.ts index b2af9b3ebd..627db2cdc0 100644 --- a/apps/ssr-isr/server.ts +++ b/apps/ssr-isr/server.ts @@ -1,6 +1,11 @@ import { CommonEngine } from '@angular/ssr'; import { modifyHtmlCallbackFn } from '@rx-angular/isr/models'; -import { ISRHandler } from '@rx-angular/isr/server'; +import { + compressHtml, + CompressStaticFilter, + ISRHandler, +} from '@rx-angular/isr/server'; +import compression from 'compression'; import express, { Request } from 'express'; import { dirname, join, resolve } from 'node:path'; import { fileURLToPath } from 'node:url'; @@ -34,9 +39,12 @@ export function app(): express.Express { backgroundRevalidation: true, // will revalidate in background and serve the cache page first nonBlockingRender: true, // will serve page first and store in cache in background modifyGeneratedHtml: customModifyGeneratedHtml, + compressHtml: compressHtml, // compress the html before storing in cache + // cacheHtmlCompressionMethod: 'gzip', // compression method for cache // cache: fsCacheHandler, }); - + // compress js|css files + server.use(compression({ filter: CompressStaticFilter })); server.use(express.json()); server.post( diff --git a/libs/isr/models/src/index.ts b/libs/isr/models/src/index.ts index ce3aa7ce4c..9554e5dfb2 100644 --- a/libs/isr/models/src/index.ts +++ b/libs/isr/models/src/index.ts @@ -7,6 +7,7 @@ export { VariantRebuildItem, } from './cache-handler'; export { + CompressHtmlFn, InvalidateConfig, ISRHandlerConfig, modifyHtmlCallbackFn, diff --git a/libs/isr/models/src/isr-handler-config.ts b/libs/isr/models/src/isr-handler-config.ts index d33152ad0d..b40ea35915 100644 --- a/libs/isr/models/src/isr-handler-config.ts +++ b/libs/isr/models/src/isr-handler-config.ts @@ -124,6 +124,19 @@ export interface ISRHandlerConfig { * If set to true, the server will provide the cached HTML as soon as possible and will revalidate the cache in the background. */ backgroundRevalidation?: boolean; + + /** + * compression callback to compress the html before storing it in the cache. + * If not provided, the html will not be compressed. + * If provided, the html will be compressed before storing it as base64 in the cache, + * also this will disable the modifyCachedHtml callback, because html is compressed and can't be modified. + */ + compressHtml?: CompressHtmlFn; + + /** + * Compression solution, it will use gzip by default if not provided. + */ + cacheHtmlCompressionMethod?: 'gzip' | 'brotli' | undefined | null; } export interface ServeFromCacheConfig { @@ -172,3 +185,5 @@ export interface RenderConfig { export interface RouteISRConfig { revalidate?: number | null; } + +export type CompressHtmlFn = (html: string) => Promise; diff --git a/libs/isr/server/src/cache-generation.ts b/libs/isr/server/src/cache-generation.ts index 513dafebf0..20f5378271 100644 --- a/libs/isr/server/src/cache-generation.ts +++ b/libs/isr/server/src/cache-generation.ts @@ -4,11 +4,12 @@ import { Request, Response } from 'express'; import { ISRLogger } from './isr-logger'; import { defaultModifyGeneratedHtml } from './modify-generated-html'; import { getCacheKey, getVariant } from './utils/cache-utils'; +import { bufferToString } from './utils/compression-utils'; import { getRouteISRDataFromHTML } from './utils/get-isr-options'; import { renderUrl, RenderUrlConfig } from './utils/render-url'; export interface IGeneratedResult { - html?: string; + html?: string | Buffer; errors?: string[]; } @@ -75,10 +76,15 @@ export class CacheGeneration { // Apply the modify generation callback // If undefined, use the default modifyGeneratedHtml function - const finalHtml = this.isrConfig.modifyGeneratedHtml + let finalHtml: string | Buffer = this.isrConfig.modifyGeneratedHtml ? this.isrConfig.modifyGeneratedHtml(req, html, revalidate) : defaultModifyGeneratedHtml(req, html, revalidate); - + let cacheString: string = finalHtml; + // Apply the compressHtml callback + if (this.isrConfig.compressHtml) { + finalHtml = await this.isrConfig.compressHtml(finalHtml); + cacheString = bufferToString(finalHtml); + } // if there are errors, don't add the page to cache if (errors?.length && this.isrConfig.skipCachingOnHttpError) { // remove url from urlsOnHold because we want to try to regenerate it again @@ -101,12 +107,12 @@ export class CacheGeneration { } // add the regenerated page to cache if (this.isrConfig.nonBlockingRender) { - this.cache.add(cacheKey, finalHtml, { + this.cache.add(cacheKey, cacheString, { revalidate, buildId: this.isrConfig.buildId, }); } else { - await this.cache.add(cacheKey, finalHtml, { + await this.cache.add(cacheKey, cacheString, { revalidate, buildId: this.isrConfig.buildId, }); diff --git a/libs/isr/server/src/compress-html.ts b/libs/isr/server/src/compress-html.ts new file mode 100644 index 0000000000..faec9dcfdc --- /dev/null +++ b/libs/isr/server/src/compress-html.ts @@ -0,0 +1,14 @@ +import { CompressHtmlFn } from '@rx-angular/isr/models'; +import * as zlib from 'zlib'; + +export const compressHtml: CompressHtmlFn = (html: string): Promise => { + return new Promise((resolve, reject) => { + zlib.gzip(html, (err, buffer) => { + if (err) { + reject(err); + } else { + resolve(buffer); + } + }); + }); +}; diff --git a/libs/isr/server/src/index.ts b/libs/isr/server/src/index.ts index 23a6c623b6..a109f0eb55 100644 --- a/libs/isr/server/src/index.ts +++ b/libs/isr/server/src/index.ts @@ -3,7 +3,9 @@ export { FileSystemCacheOptions, } from './cache-handlers/filesystem-cache-handler'; export { InMemoryCacheHandler } from './cache-handlers/in-memory-cache-handler'; +export { compressHtml } from './compress-html'; export { IsrModule } from './isr.module'; export { ISRHandler } from './isr-handler'; export { IsrServerService } from './isr-server.service'; export { isrHttpInterceptors, provideISR } from './provide-isr'; +export { CompressStaticFilter } from './utils/compression-utils'; diff --git a/libs/isr/server/src/isr-handler.ts b/libs/isr/server/src/isr-handler.ts index ae46974a41..29e49c882b 100644 --- a/libs/isr/server/src/isr-handler.ts +++ b/libs/isr/server/src/isr-handler.ts @@ -11,6 +11,7 @@ import { CacheGeneration } from './cache-generation'; import { InMemoryCacheHandler } from './cache-handlers/in-memory-cache-handler'; import { ISRLogger } from './isr-logger'; import { getCacheKey, getVariant } from './utils/cache-utils'; +import { setCompressHeader, stringToBuffer } from './utils/compression-utils'; export class ISRHandler { protected cache!: CacheHandler; @@ -189,7 +190,11 @@ export class ISRHandler { // Cache exists. Send it. this.logger.log(`Page was retrieved from cache: `, cacheKey); - let finalHtml = html; + let finalHtml: string | Buffer = html; + + if (this.isrConfig.compressHtml) { + finalHtml = stringToBuffer(finalHtml); + } // if the cache is expired, we will regenerate it if (cacheConfig.revalidate && cacheConfig.revalidate > 0) { @@ -219,14 +224,24 @@ export class ISRHandler { } } } - // Apply the callback if given - if (config?.modifyCachedHtml) { - const timeStart = performance.now(); - finalHtml = config.modifyCachedHtml(req, finalHtml); - const totalTime = (performance.now() - timeStart).toFixed(2); - finalHtml += ``; + + if (!this.isrConfig.compressHtml) { + // Apply the callback if given + // It doesn't work with compressed html + if (config?.modifyCachedHtml) { + const timeStart = performance.now(); + finalHtml = config.modifyCachedHtml(req, finalHtml as string); + const totalTime = (performance.now() - timeStart).toFixed(2); + finalHtml += ``; + } + } else { + setCompressHeader( + res, + this.isrConfig.cacheHtmlCompressionMethod || 'gzip', + ); } + return res.send(finalHtml); } catch (error) { // Cache does not exist. Serve user using SSR @@ -247,9 +262,15 @@ export class ISRHandler { config?.providers, 'generate', ); - if (!result) { + if (!result?.html) { throw new Error('Error while generating the page!'); } else { + if (this.isrConfig.compressHtml) { + setCompressHeader( + res, + this.isrConfig.cacheHtmlCompressionMethod || 'gzip', + ); + } return res.send(result.html); } } catch (error) { diff --git a/libs/isr/server/src/utils/compression-utils.ts b/libs/isr/server/src/utils/compression-utils.ts new file mode 100644 index 0000000000..685ec90bc3 --- /dev/null +++ b/libs/isr/server/src/utils/compression-utils.ts @@ -0,0 +1,32 @@ +import * as compression from 'compression'; +import * as express from 'express'; + +export function setCompressHeader( + response: express.Response, + method: string, +): void { + response.setHeader('Content-Encoding', method); + response.setHeader('Content-type', 'text/html; charset=utf-8'); + response.setHeader('Vary', 'Accept-Encoding'); +} + +export function CompressStaticFilter( + req: express.Request, + res: express.Response, +): boolean { + const isStatic = new RegExp('.(?:js|css)$'); + if (!isStatic.test(req.url)) { + // don't compress responses with this request header + return false; + } + // fallback to standard filter function + return compression.filter(req, res); +} + +export const bufferToString = (buffer: Buffer): string => { + return buffer.toString('base64'); +}; + +export const stringToBuffer = (str: string): Buffer => { + return Buffer.from(str, 'base64'); +}; diff --git a/package.json b/package.json index e78ccc0622..495cbfac66 100644 --- a/package.json +++ b/package.json @@ -54,6 +54,7 @@ "@angular/ssr": "18.0.2", "@typescript-eslint/utils": "7.4.0", "bootstrap": "^5.2.3", + "compression": "^1.7.4", "eslint-plugin-unused-imports": "^3.1.0", "ngx-skeleton-loader": "^7.0.0", "normalize-css": "^2.3.1", @@ -62,6 +63,7 @@ "rxjs": "7.8.0", "rxjs-zone-less": "^1.0.0", "tslib": "^2.4.1", + "zlib": "^1.0.5", "zone.js": "0.14.4" }, "devDependencies": { @@ -91,7 +93,8 @@ "@swc-node/register": "1.8.0", "@swc/core": "~1.3.85", "@types/benchmark": "^2.1.0", - "@types/express": "4.17.14", + "@types/compression": "^1.7.5", + "@types/express": "4.17.21", "@types/jest": "^29.4.0", "@types/klaw-sync": "^6.0.0", "@types/lodash": "^4.14.196", diff --git a/yarn.lock b/yarn.lock index 02562bf0d1..8446ac0e7f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4207,7 +4207,7 @@ "@docusaurus/theme-search-algolia" "2.0.1" "@docusaurus/types" "2.0.1" -"@docusaurus/react-loadable@5.5.2", "react-loadable@npm:@docusaurus/react-loadable@5.5.2": +"@docusaurus/react-loadable@5.5.2": version "5.5.2" resolved "https://registry.yarnpkg.com/@docusaurus/react-loadable/-/react-loadable-5.5.2.tgz#81aae0db81ecafbdaee3651f12804580868fa6ce" integrity sha512-A3dYjdBGuy0IGT+wyLIGIKLRE+sAk1iNk0f1HjNDysO7u8lhL4N3VEm+FAubmJbAztn94F7MxBTPmnixbiyFdQ== @@ -7392,6 +7392,13 @@ dependencies: "@types/node" "*" +"@types/compression@^1.7.5": + version "1.7.5" + resolved "https://registry.yarnpkg.com/@types/compression/-/compression-1.7.5.tgz#0f80efef6eb031be57b12221c4ba6bc3577808f7" + integrity sha512-AAQvK5pxMpaT+nDvhHrsBhLSYG5yQdtkaJE1WYieSNY2mVFKAgmU4ks65rkZD5oqnGCFLyQpUr1CqI4DmUMyDg== + dependencies: + "@types/express" "*" + "@types/connect-history-api-fallback@^1.3.5": version "1.3.5" resolved "https://registry.yarnpkg.com/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.3.5.tgz#d1f7a8a09d0ed5a57aee5ae9c18ab9b803205dae" @@ -7474,16 +7481,6 @@ "@types/qs" "*" "@types/range-parser" "*" -"@types/express-serve-static-core@^4.17.18": - version "4.17.41" - resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.41.tgz#5077defa630c2e8d28aa9ffc2c01c157c305bef6" - integrity sha512-OaJ7XLaelTgrvlZD8/aa0vvvxZdUmlCn6MtWeB7TkiKW70BQLc9XEPpDLPdbo52ZhXUCrznlWdCHWxJWtdyajA== - dependencies: - "@types/node" "*" - "@types/qs" "*" - "@types/range-parser" "*" - "@types/send" "*" - "@types/express@*", "@types/express@^4.17.13": version "4.17.17" resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.17.tgz#01d5437f6ef9cfa8668e616e13c2f2ac9a491ae4" @@ -7494,17 +7491,7 @@ "@types/qs" "*" "@types/serve-static" "*" -"@types/express@4.17.14": - version "4.17.14" - resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.14.tgz#143ea0557249bc1b3b54f15db4c81c3d4eb3569c" - integrity sha512-TEbt+vaPFQ+xpxFLFssxUDXj5cWCxZJjIcB7Yg0k0GMHGtgtQgpvx/MUQUeAkNbA9AAGrwkAsoeItdTgS7FMyg== - dependencies: - "@types/body-parser" "*" - "@types/express-serve-static-core" "^4.17.18" - "@types/qs" "*" - "@types/serve-static" "*" - -"@types/express@^4.17.21": +"@types/express@4.17.21", "@types/express@^4.17.21": version "4.17.21" resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.21.tgz#c26d4a151e60efe0084b23dc3369ebc631ed192d" integrity sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ== @@ -18507,6 +18494,14 @@ react-loadable-ssr-addon-v5-slorber@^1.0.1: dependencies: "@babel/runtime" "^7.10.3" +"react-loadable@npm:@docusaurus/react-loadable@5.5.2": + version "5.5.2" + resolved "https://registry.yarnpkg.com/@docusaurus/react-loadable/-/react-loadable-5.5.2.tgz#81aae0db81ecafbdaee3651f12804580868fa6ce" + integrity sha512-A3dYjdBGuy0IGT+wyLIGIKLRE+sAk1iNk0f1HjNDysO7u8lhL4N3VEm+FAubmJbAztn94F7MxBTPmnixbiyFdQ== + dependencies: + "@types/react" "*" + prop-types "^15.6.2" + react-player@^2.12.0: version "2.12.0" resolved "https://registry.yarnpkg.com/react-player/-/react-player-2.12.0.tgz#2fc05dbfec234c829292fbca563b544064bd14f0" @@ -19947,7 +19942,16 @@ string-length@^4.0.1: char-regex "^1.0.2" strip-ansi "^6.0.0" -"string-width-cjs@npm:string-width@^4.2.0", string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.2, string-width@^4.2.3: +"string-width-cjs@npm:string-width@^4.2.0": + version "4.2.3" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + +string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.2, string-width@^4.2.3: version "4.2.3" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== @@ -19988,7 +19992,14 @@ stringify-object@^3.3.0: is-obj "^1.0.1" is-regexp "^1.0.0" -"strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.0, strip-ansi@^6.0.1: +"strip-ansi-cjs@npm:strip-ansi@^6.0.1": + version "6.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + +strip-ansi@^6.0.0, strip-ansi@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== @@ -21484,8 +21495,7 @@ wordwrap@^1.0.0: resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" integrity sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q== -"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0", wrap-ansi@^7.0.0: - name wrap-ansi-cjs +"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0": version "7.0.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== @@ -21503,6 +21513,15 @@ wrap-ansi@^6.0.1, wrap-ansi@^6.2.0: string-width "^4.1.0" strip-ansi "^6.0.0" +wrap-ansi@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + wrap-ansi@^8.0.1, wrap-ansi@^8.1.0: version "8.1.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214" @@ -21673,6 +21692,11 @@ yocto-queue@^1.0.0: resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-1.0.0.tgz#7f816433fb2cbc511ec8bf7d263c3b58a1a3c251" integrity sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g== +zlib@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/zlib/-/zlib-1.0.5.tgz#6e7c972fc371c645a6afb03ab14769def114fcc0" + integrity sha512-40fpE2II+Cd3k8HWTWONfeKE2jL+P42iWJ1zzps5W51qcTsOUKM5Q5m2PFb0CLxlmFAaUuUdJGc3OfZy947v0w== + zone.js@0.14.4: version "0.14.4" resolved "https://registry.yarnpkg.com/zone.js/-/zone.js-0.14.4.tgz#e0168fe450e3e4313c8efdb4a0ae4b557ac0fdd8" From 85b0dc36a8a80105ad40731e2092a9a011ab4232 Mon Sep 17 00:00:00 2001 From: Sam Lin <456807+maxisam@users.noreply.github.com.> Date: Fri, 30 Aug 2024 12:41:59 -0500 Subject: [PATCH 16/28] chore(isr): rename HTML compression method --- libs/isr/models/src/isr-handler-config.ts | 4 ++-- libs/isr/server/src/isr-handler.ts | 10 ++-------- libs/isr/server/src/utils/compression-utils.ts | 4 ++-- 3 files changed, 6 insertions(+), 12 deletions(-) diff --git a/libs/isr/models/src/isr-handler-config.ts b/libs/isr/models/src/isr-handler-config.ts index b40ea35915..ee4c615531 100644 --- a/libs/isr/models/src/isr-handler-config.ts +++ b/libs/isr/models/src/isr-handler-config.ts @@ -134,9 +134,9 @@ export interface ISRHandlerConfig { compressHtml?: CompressHtmlFn; /** - * Compression solution, it will use gzip by default if not provided. + * Cached Html compression method, it will use gzip by default if not provided. */ - cacheHtmlCompressionMethod?: 'gzip' | 'brotli' | undefined | null; + htmlCompressionMethod?: string; } export interface ServeFromCacheConfig { diff --git a/libs/isr/server/src/isr-handler.ts b/libs/isr/server/src/isr-handler.ts index 29e49c882b..f963c17d89 100644 --- a/libs/isr/server/src/isr-handler.ts +++ b/libs/isr/server/src/isr-handler.ts @@ -236,10 +236,7 @@ export class ISRHandler { This resulted into more ${totalTime}ms of processing time.\n-->`; } } else { - setCompressHeader( - res, - this.isrConfig.cacheHtmlCompressionMethod || 'gzip', - ); + setCompressHeader(res, this.isrConfig.htmlCompressionMethod); } return res.send(finalHtml); @@ -266,10 +263,7 @@ export class ISRHandler { throw new Error('Error while generating the page!'); } else { if (this.isrConfig.compressHtml) { - setCompressHeader( - res, - this.isrConfig.cacheHtmlCompressionMethod || 'gzip', - ); + setCompressHeader(res, this.isrConfig.htmlCompressionMethod); } return res.send(result.html); } diff --git a/libs/isr/server/src/utils/compression-utils.ts b/libs/isr/server/src/utils/compression-utils.ts index 685ec90bc3..74961b2582 100644 --- a/libs/isr/server/src/utils/compression-utils.ts +++ b/libs/isr/server/src/utils/compression-utils.ts @@ -3,9 +3,9 @@ import * as express from 'express'; export function setCompressHeader( response: express.Response, - method: string, + method?: string, ): void { - response.setHeader('Content-Encoding', method); + response.setHeader('Content-Encoding', method || 'gzip'); response.setHeader('Content-type', 'text/html; charset=utf-8'); response.setHeader('Vary', 'Accept-Encoding'); } From a2192db003fb4b494bf5ca61cc0c7bd6aa641784 Mon Sep 17 00:00:00 2001 From: Sam Lin <456807+maxisam@users.noreply.github.com.> Date: Tue, 3 Sep 2024 12:38:12 -0500 Subject: [PATCH 17/28] fix: merging issue --- libs/isr/server/src/isr-handler.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libs/isr/server/src/isr-handler.ts b/libs/isr/server/src/isr-handler.ts index 7a22df104e..81932f3c6a 100644 --- a/libs/isr/server/src/isr-handler.ts +++ b/libs/isr/server/src/isr-handler.ts @@ -280,7 +280,7 @@ export class ISRHandler { config?.providers, 'generate', ); - if (!result) { + if (!result?.html) { throw new Error('Error while generating the page!'); } else { if (this.isrConfig.compressHtml) { From 9ef74631700b3749203c274ab1bd013d705fe97d Mon Sep 17 00:00:00 2001 From: Sam Lin <456807+maxisam@users.noreply.github.com.> Date: Tue, 3 Sep 2024 14:17:10 -0500 Subject: [PATCH 18/28] feat(isr): add compression --- apps/ssr-isr/server.ts | 12 ++- libs/isr/models/src/index.ts | 1 + libs/isr/models/src/isr-handler-config.ts | 15 ++++ libs/isr/server/src/cache-generation.ts | 18 +++-- libs/isr/server/src/compress-html.ts | 14 ++++ libs/isr/server/src/index.ts | 2 + libs/isr/server/src/isr-handler.ts | 26 ++++++- .../isr/server/src/utils/compression-utils.ts | 32 ++++++++ package.json | 4 +- yarn.lock | 77 ++++++++++++------- 10 files changed, 159 insertions(+), 42 deletions(-) create mode 100644 libs/isr/server/src/compress-html.ts create mode 100644 libs/isr/server/src/utils/compression-utils.ts diff --git a/apps/ssr-isr/server.ts b/apps/ssr-isr/server.ts index ea0f137e0b..c045804cc1 100644 --- a/apps/ssr-isr/server.ts +++ b/apps/ssr-isr/server.ts @@ -1,6 +1,11 @@ import { CommonEngine } from '@angular/ssr'; import { ModifyHtmlCallbackFn } from '@rx-angular/isr/models'; -import { ISRHandler } from '@rx-angular/isr/server'; +import { + compressHtml, + CompressStaticFilter, + ISRHandler, +} from '@rx-angular/isr/server'; +import compression from 'compression'; import express, { Request } from 'express'; import { dirname, join, resolve } from 'node:path'; import { fileURLToPath } from 'node:url'; @@ -34,9 +39,12 @@ export function app(): express.Express { backgroundRevalidation: true, // will revalidate in background and serve the cache page first nonBlockingRender: true, // will serve page first and store in cache in background modifyGeneratedHtml: customModifyGeneratedHtml, + compressHtml: compressHtml, // compress the html before storing in cache + // cacheHtmlCompressionMethod: 'gzip', // compression method for cache // cache: fsCacheHandler, }); - + // compress js|css files + server.use(compression({ filter: CompressStaticFilter })); server.use(express.json()); server.post( diff --git a/libs/isr/models/src/index.ts b/libs/isr/models/src/index.ts index 7275263760..de7bcfee99 100644 --- a/libs/isr/models/src/index.ts +++ b/libs/isr/models/src/index.ts @@ -7,6 +7,7 @@ export { VariantRebuildItem, } from './cache-handler'; export { + CompressHtmlFn, InvalidateConfig, ISRHandlerConfig, ModifyHtmlCallbackFn, diff --git a/libs/isr/models/src/isr-handler-config.ts b/libs/isr/models/src/isr-handler-config.ts index 6c4f46de8d..e2c2230e77 100644 --- a/libs/isr/models/src/isr-handler-config.ts +++ b/libs/isr/models/src/isr-handler-config.ts @@ -124,6 +124,19 @@ export interface ISRHandlerConfig { * If set to true, the server will provide the cached HTML as soon as possible and will revalidate the cache in the background. */ backgroundRevalidation?: boolean; + + /** + * compression callback to compress the html before storing it in the cache. + * If not provided, the html will not be compressed. + * If provided, the html will be compressed before storing it as base64 in the cache, + * also this will disable the modifyCachedHtml callback, because html is compressed and can't be modified. + */ + compressHtml?: CompressHtmlFn; + + /** + * Cached Html compression method, it will use gzip by default if not provided. + */ + htmlCompressionMethod?: string; } export interface ServeFromCacheConfig { @@ -181,3 +194,5 @@ export interface RenderConfig { export interface RouteISRConfig { revalidate?: number | null; } + +export type CompressHtmlFn = (html: string) => Promise; diff --git a/libs/isr/server/src/cache-generation.ts b/libs/isr/server/src/cache-generation.ts index 2c28840174..d83ab36587 100644 --- a/libs/isr/server/src/cache-generation.ts +++ b/libs/isr/server/src/cache-generation.ts @@ -4,11 +4,12 @@ import { Request, Response } from 'express'; import { ISRLogger } from './isr-logger'; import { defaultModifyGeneratedHtml } from './modify-generated-html'; import { getCacheKey, getVariant } from './utils/cache-utils'; +import { bufferToString } from './utils/compression-utils'; import { getRouteISRDataFromHTML } from './utils/get-isr-options'; import { renderUrl, RenderUrlConfig } from './utils/render-url'; export interface IGeneratedResult { - html?: string; + html?: string | Buffer; errors?: string[]; } @@ -22,7 +23,6 @@ export class CacheGeneration { public cache: CacheHandler, public logger: ISRLogger, ) {} - async generate( req: Request, res: Response, @@ -39,7 +39,6 @@ export class CacheGeneration { return this.generateWithCacheKey(req, res, cacheKey, providers, mode); } - async generateWithCacheKey( req: Request, res: Response, @@ -60,7 +59,6 @@ export class CacheGeneration { this.urlsOnHold.push(cacheKey); } - const renderUrlConfig: RenderUrlConfig = { req, res, @@ -72,17 +70,21 @@ export class CacheGeneration { browserDistFolder: this.isrConfig.browserDistFolder, inlineCriticalCss: this.isrConfig.inlineCriticalCss, }; - try { const html = await renderUrl(renderUrlConfig); const { revalidate, errors } = getRouteISRDataFromHTML(html); // Apply the modify generation callback // If undefined, use the default modifyGeneratedHtml function - const finalHtml = this.isrConfig.modifyGeneratedHtml + let finalHtml: string | Buffer = this.isrConfig.modifyGeneratedHtml ? this.isrConfig.modifyGeneratedHtml(req, html, revalidate) : defaultModifyGeneratedHtml(req, html, revalidate); - + let cacheString: string = finalHtml; + // Apply the compressHtml callback + if (this.isrConfig.compressHtml) { + finalHtml = await this.isrConfig.compressHtml(finalHtml); + cacheString = bufferToString(finalHtml); + } // if there are errors, don't add the page to cache if (errors?.length && this.isrConfig.skipCachingOnHttpError) { // remove url from urlsOnHold because we want to try to regenerate it again @@ -106,7 +108,7 @@ export class CacheGeneration { // add the regenerated page to cache const addToCache = () => { - return this.cache.add(cacheKey, finalHtml, { + return this.cache.add(cacheKey, cacheString, { revalidate, buildId: this.isrConfig.buildId, }); diff --git a/libs/isr/server/src/compress-html.ts b/libs/isr/server/src/compress-html.ts new file mode 100644 index 0000000000..faec9dcfdc --- /dev/null +++ b/libs/isr/server/src/compress-html.ts @@ -0,0 +1,14 @@ +import { CompressHtmlFn } from '@rx-angular/isr/models'; +import * as zlib from 'zlib'; + +export const compressHtml: CompressHtmlFn = (html: string): Promise => { + return new Promise((resolve, reject) => { + zlib.gzip(html, (err, buffer) => { + if (err) { + reject(err); + } else { + resolve(buffer); + } + }); + }); +}; diff --git a/libs/isr/server/src/index.ts b/libs/isr/server/src/index.ts index 23a6c623b6..a109f0eb55 100644 --- a/libs/isr/server/src/index.ts +++ b/libs/isr/server/src/index.ts @@ -3,7 +3,9 @@ export { FileSystemCacheOptions, } from './cache-handlers/filesystem-cache-handler'; export { InMemoryCacheHandler } from './cache-handlers/in-memory-cache-handler'; +export { compressHtml } from './compress-html'; export { IsrModule } from './isr.module'; export { ISRHandler } from './isr-handler'; export { IsrServerService } from './isr-server.service'; export { isrHttpInterceptors, provideISR } from './provide-isr'; +export { CompressStaticFilter } from './utils/compression-utils'; diff --git a/libs/isr/server/src/isr-handler.ts b/libs/isr/server/src/isr-handler.ts index 101033bd19..81932f3c6a 100644 --- a/libs/isr/server/src/isr-handler.ts +++ b/libs/isr/server/src/isr-handler.ts @@ -12,6 +12,7 @@ import { CacheGeneration } from './cache-generation'; import { InMemoryCacheHandler } from './cache-handlers/in-memory-cache-handler'; import { ISRLogger } from './isr-logger'; import { getCacheKey, getVariant } from './utils/cache-utils'; +import { setCompressHeader, stringToBuffer } from './utils/compression-utils'; export class ISRHandler { protected cache!: CacheHandler; @@ -190,7 +191,11 @@ export class ISRHandler { // Cache exists. Send it. this.logger.log(`Page was retrieved from cache: `, cacheKey); - let finalHtml = html; + let finalHtml: string | Buffer = html; + + if (this.isrConfig.compressHtml) { + finalHtml = stringToBuffer(finalHtml); + } // if the cache is expired, we will regenerate it if (cacheConfig.revalidate && cacheConfig.revalidate > 0) { @@ -224,6 +229,20 @@ export class ISRHandler { } } + if (!this.isrConfig.compressHtml) { + // Apply the callback if given + // It doesn't work with compressed html + if (config?.modifyCachedHtml) { + const timeStart = performance.now(); + finalHtml = config.modifyCachedHtml(req, finalHtml as string); + const totalTime = (performance.now() - timeStart).toFixed(2); + finalHtml += ``; + } + } else { + setCompressHeader(res, this.isrConfig.htmlCompressionMethod); + } + return res.send(finalHtml); } catch (error) { // Cache does not exist. Serve user using SSR @@ -261,9 +280,12 @@ export class ISRHandler { config?.providers, 'generate', ); - if (!result) { + if (!result?.html) { throw new Error('Error while generating the page!'); } else { + if (this.isrConfig.compressHtml) { + setCompressHeader(res, this.isrConfig.htmlCompressionMethod); + } return res.send(result.html); } } catch (error) { diff --git a/libs/isr/server/src/utils/compression-utils.ts b/libs/isr/server/src/utils/compression-utils.ts new file mode 100644 index 0000000000..74961b2582 --- /dev/null +++ b/libs/isr/server/src/utils/compression-utils.ts @@ -0,0 +1,32 @@ +import * as compression from 'compression'; +import * as express from 'express'; + +export function setCompressHeader( + response: express.Response, + method?: string, +): void { + response.setHeader('Content-Encoding', method || 'gzip'); + response.setHeader('Content-type', 'text/html; charset=utf-8'); + response.setHeader('Vary', 'Accept-Encoding'); +} + +export function CompressStaticFilter( + req: express.Request, + res: express.Response, +): boolean { + const isStatic = new RegExp('.(?:js|css)$'); + if (!isStatic.test(req.url)) { + // don't compress responses with this request header + return false; + } + // fallback to standard filter function + return compression.filter(req, res); +} + +export const bufferToString = (buffer: Buffer): string => { + return buffer.toString('base64'); +}; + +export const stringToBuffer = (str: string): Buffer => { + return Buffer.from(str, 'base64'); +}; diff --git a/package.json b/package.json index e78ccc0622..f166582684 100644 --- a/package.json +++ b/package.json @@ -54,6 +54,7 @@ "@angular/ssr": "18.0.2", "@typescript-eslint/utils": "7.4.0", "bootstrap": "^5.2.3", + "compression": "^1.7.4", "eslint-plugin-unused-imports": "^3.1.0", "ngx-skeleton-loader": "^7.0.0", "normalize-css": "^2.3.1", @@ -91,7 +92,8 @@ "@swc-node/register": "1.8.0", "@swc/core": "~1.3.85", "@types/benchmark": "^2.1.0", - "@types/express": "4.17.14", + "@types/compression": "^1.7.2", + "@types/express": "4.17.21", "@types/jest": "^29.4.0", "@types/klaw-sync": "^6.0.0", "@types/lodash": "^4.14.196", diff --git a/yarn.lock b/yarn.lock index 02562bf0d1..6da041c127 100644 --- a/yarn.lock +++ b/yarn.lock @@ -4207,7 +4207,7 @@ "@docusaurus/theme-search-algolia" "2.0.1" "@docusaurus/types" "2.0.1" -"@docusaurus/react-loadable@5.5.2", "react-loadable@npm:@docusaurus/react-loadable@5.5.2": +"@docusaurus/react-loadable@5.5.2": version "5.5.2" resolved "https://registry.yarnpkg.com/@docusaurus/react-loadable/-/react-loadable-5.5.2.tgz#81aae0db81ecafbdaee3651f12804580868fa6ce" integrity sha512-A3dYjdBGuy0IGT+wyLIGIKLRE+sAk1iNk0f1HjNDysO7u8lhL4N3VEm+FAubmJbAztn94F7MxBTPmnixbiyFdQ== @@ -7392,6 +7392,13 @@ dependencies: "@types/node" "*" +"@types/compression@^1.7.2": + version "1.7.5" + resolved "https://registry.yarnpkg.com/@types/compression/-/compression-1.7.5.tgz#0f80efef6eb031be57b12221c4ba6bc3577808f7" + integrity sha512-AAQvK5pxMpaT+nDvhHrsBhLSYG5yQdtkaJE1WYieSNY2mVFKAgmU4ks65rkZD5oqnGCFLyQpUr1CqI4DmUMyDg== + dependencies: + "@types/express" "*" + "@types/connect-history-api-fallback@^1.3.5": version "1.3.5" resolved "https://registry.yarnpkg.com/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.3.5.tgz#d1f7a8a09d0ed5a57aee5ae9c18ab9b803205dae" @@ -7474,16 +7481,6 @@ "@types/qs" "*" "@types/range-parser" "*" -"@types/express-serve-static-core@^4.17.18": - version "4.17.41" - resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.41.tgz#5077defa630c2e8d28aa9ffc2c01c157c305bef6" - integrity sha512-OaJ7XLaelTgrvlZD8/aa0vvvxZdUmlCn6MtWeB7TkiKW70BQLc9XEPpDLPdbo52ZhXUCrznlWdCHWxJWtdyajA== - dependencies: - "@types/node" "*" - "@types/qs" "*" - "@types/range-parser" "*" - "@types/send" "*" - "@types/express@*", "@types/express@^4.17.13": version "4.17.17" resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.17.tgz#01d5437f6ef9cfa8668e616e13c2f2ac9a491ae4" @@ -7494,17 +7491,7 @@ "@types/qs" "*" "@types/serve-static" "*" -"@types/express@4.17.14": - version "4.17.14" - resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.14.tgz#143ea0557249bc1b3b54f15db4c81c3d4eb3569c" - integrity sha512-TEbt+vaPFQ+xpxFLFssxUDXj5cWCxZJjIcB7Yg0k0GMHGtgtQgpvx/MUQUeAkNbA9AAGrwkAsoeItdTgS7FMyg== - dependencies: - "@types/body-parser" "*" - "@types/express-serve-static-core" "^4.17.18" - "@types/qs" "*" - "@types/serve-static" "*" - -"@types/express@^4.17.21": +"@types/express@4.17.21", "@types/express@^4.17.21": version "4.17.21" resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.21.tgz#c26d4a151e60efe0084b23dc3369ebc631ed192d" integrity sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ== @@ -7662,9 +7649,9 @@ integrity sha512-w+tIMs3rq2afQdsPJlODhoUEKzFP1ayaoyl1CcnwtIlsVe7K7bA1NGm4s3PraqTLlXnbIN84zuBlxBWo1u9BLw== "@types/node@^18.16.9": - version "18.19.21" - resolved "https://registry.yarnpkg.com/@types/node/-/node-18.19.21.tgz#f4ca1ac8ffb05ee4b89163c2d6fac9a1a59ee149" - integrity sha512-2Q2NeB6BmiTFQi4DHBzncSoq/cJMLDdhPaAoJFnFCyD9a8VPZRf7a1GAwp1Edb7ROaZc5Jz/tnZyL6EsWMRaqw== + version "18.19.48" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.19.48.tgz#3a1696f4a7298d8831ed9ce47db62bf4c62c8880" + integrity sha512-7WevbG4ekUcRQSZzOwxWgi5dZmTak7FaxXDoW7xVxPBmKx1rTzfmRLkeCgJzcbBnOV2dkhAPc8cCeT6agocpjg== dependencies: undici-types "~5.26.4" @@ -18507,6 +18494,14 @@ react-loadable-ssr-addon-v5-slorber@^1.0.1: dependencies: "@babel/runtime" "^7.10.3" +"react-loadable@npm:@docusaurus/react-loadable@5.5.2": + version "5.5.2" + resolved "https://registry.yarnpkg.com/@docusaurus/react-loadable/-/react-loadable-5.5.2.tgz#81aae0db81ecafbdaee3651f12804580868fa6ce" + integrity sha512-A3dYjdBGuy0IGT+wyLIGIKLRE+sAk1iNk0f1HjNDysO7u8lhL4N3VEm+FAubmJbAztn94F7MxBTPmnixbiyFdQ== + dependencies: + "@types/react" "*" + prop-types "^15.6.2" + react-player@^2.12.0: version "2.12.0" resolved "https://registry.yarnpkg.com/react-player/-/react-player-2.12.0.tgz#2fc05dbfec234c829292fbca563b544064bd14f0" @@ -19947,7 +19942,16 @@ string-length@^4.0.1: char-regex "^1.0.2" strip-ansi "^6.0.0" -"string-width-cjs@npm:string-width@^4.2.0", string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.2, string-width@^4.2.3: +"string-width-cjs@npm:string-width@^4.2.0": + version "4.2.3" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + +string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0, string-width@^4.2.2, string-width@^4.2.3: version "4.2.3" resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== @@ -19988,7 +19992,14 @@ stringify-object@^3.3.0: is-obj "^1.0.1" is-regexp "^1.0.0" -"strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.0, strip-ansi@^6.0.1: +"strip-ansi-cjs@npm:strip-ansi@^6.0.1": + version "6.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + +strip-ansi@^6.0.0, strip-ansi@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== @@ -21484,8 +21495,7 @@ wordwrap@^1.0.0: resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-1.0.0.tgz#27584810891456a4171c8d0226441ade90cbcaeb" integrity sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q== -"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0", wrap-ansi@^7.0.0: - name wrap-ansi-cjs +"wrap-ansi-cjs@npm:wrap-ansi@^7.0.0": version "7.0.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== @@ -21503,6 +21513,15 @@ wrap-ansi@^6.0.1, wrap-ansi@^6.2.0: string-width "^4.1.0" strip-ansi "^6.0.0" +wrap-ansi@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + wrap-ansi@^8.0.1, wrap-ansi@^8.1.0: version "8.1.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214" From bb74688ebfef7680df5bf54bbbcf4353b21b6e9a Mon Sep 17 00:00:00 2001 From: Sam Lin <456807+maxisam@users.noreply.github.com.> Date: Tue, 3 Sep 2024 15:28:22 -0500 Subject: [PATCH 19/28] fix(isr): fix eslint issue --- libs/isr/server/src/isr-handler.ts | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/libs/isr/server/src/isr-handler.ts b/libs/isr/server/src/isr-handler.ts index 101033bd19..399f778485 100644 --- a/libs/isr/server/src/isr-handler.ts +++ b/libs/isr/server/src/isr-handler.ts @@ -247,9 +247,8 @@ export class ISRHandler { const patchedModifyFn: ModifyHtmlCallbackFn = ( req: Request, html: string, - validate?: number | null, ) => { - return config!.modifyGeneratedHtml!(req, html); + return config.modifyGeneratedHtml?.(req, html) || html; }; this.isrConfig['modifyGeneratedHtml'] = patchedModifyFn; } From d910520427e8b137e70298dff785c59db6571551 Mon Sep 17 00:00:00 2001 From: Sam Lin <456807+maxisam@users.noreply.github.com.> Date: Wed, 18 Sep 2024 15:49:34 -0500 Subject: [PATCH 20/28] chore: update yarn lock --- yarn.lock | 47 +++++++++++++++++++++-------------------------- 1 file changed, 21 insertions(+), 26 deletions(-) diff --git a/yarn.lock b/yarn.lock index eeecc47858..caa7740595 100644 --- a/yarn.lock +++ b/yarn.lock @@ -10013,6 +10013,15 @@ __metadata: languageName: node linkType: hard +"@types/compression@npm:^1.7.5": + version: 1.7.5 + resolution: "@types/compression@npm:1.7.5" + dependencies: + "@types/express": "npm:*" + checksum: 10c0/3818f3d10cede38a835b40b80c341eae162aef1691f2e8f81178a77dbc109f04234cf760b6066eaa06ecbb1da143433c00db2fd9999198b76cd5a193e1d09675 + languageName: node + linkType: hard + "@types/connect-history-api-fallback@npm:^1.3.5": version: 1.3.5 resolution: "@types/connect-history-api-fallback@npm:1.3.5" @@ -10119,18 +10128,6 @@ __metadata: languageName: node linkType: hard -"@types/express-serve-static-core@npm:^4.17.18": - version: 4.17.41 - resolution: "@types/express-serve-static-core@npm:4.17.41" - dependencies: - "@types/node": "npm:*" - "@types/qs": "npm:*" - "@types/range-parser": "npm:*" - "@types/send": "npm:*" - checksum: 10c0/dc166cbf4475c00a81fbcab120bf7477c527184be11ae149df7f26d9c1082114c68f8d387a2926fe80291b06477c8bbd9231ff4f5775de328e887695aefce269 - languageName: node - linkType: hard - "@types/express@npm:*, @types/express@npm:^4.17.13": version: 4.17.17 resolution: "@types/express@npm:4.17.17" @@ -10143,19 +10140,7 @@ __metadata: languageName: node linkType: hard -"@types/express@npm:4.17.14": - version: 4.17.14 - resolution: "@types/express@npm:4.17.14" - dependencies: - "@types/body-parser": "npm:*" - "@types/express-serve-static-core": "npm:^4.17.18" - "@types/qs": "npm:*" - "@types/serve-static": "npm:*" - checksum: 10c0/616e3618dfcbafe387bf2213e1e40f77f101685f3e9efff47c66fd2da611b7578ed5f4e61e1cdb1f2a32c8f01eff4ee74f93c52ad56d45e69b7154da66b3443a - languageName: node - linkType: hard - -"@types/express@npm:^4.17.21": +"@types/express@npm:4.17.21, @types/express@npm:^4.17.21": version: 4.17.21 resolution: "@types/express@npm:4.17.21" dependencies: @@ -26026,7 +26011,8 @@ __metadata: "@swc-node/register": "npm:1.8.0" "@swc/core": "npm:~1.3.85" "@types/benchmark": "npm:^2.1.0" - "@types/express": "npm:4.17.14" + "@types/compression": "npm:^1.7.5" + "@types/express": "npm:4.17.21" "@types/jest": "npm:^29.4.0" "@types/klaw-sync": "npm:^6.0.0" "@types/lodash": "npm:^4.14.196" @@ -26038,6 +26024,7 @@ __metadata: benchmark: "npm:^2.1.4" bootstrap: "npm:^5.2.3" browser-sync: "npm:^3.0.0" + compression: "npm:^1.7.4" cpx: "npm:^1.5.0" cypress: "npm:13.9.0" eslint: "npm:8.57.0" @@ -26073,6 +26060,7 @@ __metadata: ts-node: "npm:10.9.1" tslib: "npm:^2.4.1" typescript: "npm:5.4.3" + zlib: "npm:^1.0.5" zone.js: "npm:0.14.4" languageName: unknown linkType: soft @@ -29766,6 +29754,13 @@ __metadata: languageName: node linkType: hard +"zlib@npm:^1.0.5": + version: 1.0.5 + resolution: "zlib@npm:1.0.5" + checksum: 10c0/34bd33f4fdcda34f57a1ab628ceb423bdf8ef07290f46cd944eedd9a66458cc24ccf3c770da73dc0f8d28016607d861290ac5c53d49113177f7c321838df2913 + languageName: node + linkType: hard + "zone.js@npm:0.14.4": version: 0.14.4 resolution: "zone.js@npm:0.14.4" From b6f90a15c3ac4f7f98e2afa748c9e66e1b164013 Mon Sep 17 00:00:00 2001 From: Sam Lin <456807+maxisam@users.noreply.github.com.> Date: Wed, 18 Sep 2024 21:43:01 -0500 Subject: [PATCH 21/28] fix: format --- libs/isr/server/src/cache-generation.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libs/isr/server/src/cache-generation.ts b/libs/isr/server/src/cache-generation.ts index 775014b441..d83ab36587 100644 --- a/libs/isr/server/src/cache-generation.ts +++ b/libs/isr/server/src/cache-generation.ts @@ -6,7 +6,7 @@ import { defaultModifyGeneratedHtml } from './modify-generated-html'; import { getCacheKey, getVariant } from './utils/cache-utils'; import { bufferToString } from './utils/compression-utils'; import { getRouteISRDataFromHTML } from './utils/get-isr-options'; -import { renderUrl,RenderUrlConfig } from './utils/render-url'; +import { renderUrl, RenderUrlConfig } from './utils/render-url'; export interface IGeneratedResult { html?: string | Buffer; From ce45c3245a49617074cec32ff157db5d69fcbe9b Mon Sep 17 00:00:00 2001 From: Sam Lin <456807+maxisam@users.noreply.github.com.> Date: Mon, 7 Oct 2024 10:58:35 -0500 Subject: [PATCH 22/28] feat: let cache handler handle cache html either buffer or string default using base64 string is not an ideal solution, it could add 50% in size --- libs/isr/models/src/cache-handler.ts | 4 ++-- libs/isr/server/src/cache-generation.ts | 5 +---- .../cache-handlers/filesystem-cache-handler.ts | 15 +++++++++++---- .../src/cache-handlers/in-memory-cache-handler.ts | 2 +- libs/isr/server/src/isr-handler.ts | 6 +----- libs/isr/server/src/utils/compression-utils.ts | 8 -------- 6 files changed, 16 insertions(+), 24 deletions(-) diff --git a/libs/isr/models/src/cache-handler.ts b/libs/isr/models/src/cache-handler.ts index fceb5cd24e..fc46e3a06b 100644 --- a/libs/isr/models/src/cache-handler.ts +++ b/libs/isr/models/src/cache-handler.ts @@ -11,7 +11,7 @@ export interface CacheISRConfig { } export interface CacheData { - html: string; + html: string | Buffer; options: CacheISRConfig; createdAt: number; } @@ -31,7 +31,7 @@ export interface VariantRebuildItem { export abstract class CacheHandler { abstract add( url: string, - html: string, + html: string | Buffer, config?: CacheISRConfig, ): Promise; diff --git a/libs/isr/server/src/cache-generation.ts b/libs/isr/server/src/cache-generation.ts index d83ab36587..50222179fc 100644 --- a/libs/isr/server/src/cache-generation.ts +++ b/libs/isr/server/src/cache-generation.ts @@ -4,7 +4,6 @@ import { Request, Response } from 'express'; import { ISRLogger } from './isr-logger'; import { defaultModifyGeneratedHtml } from './modify-generated-html'; import { getCacheKey, getVariant } from './utils/cache-utils'; -import { bufferToString } from './utils/compression-utils'; import { getRouteISRDataFromHTML } from './utils/get-isr-options'; import { renderUrl, RenderUrlConfig } from './utils/render-url'; @@ -79,11 +78,9 @@ export class CacheGeneration { let finalHtml: string | Buffer = this.isrConfig.modifyGeneratedHtml ? this.isrConfig.modifyGeneratedHtml(req, html, revalidate) : defaultModifyGeneratedHtml(req, html, revalidate); - let cacheString: string = finalHtml; // Apply the compressHtml callback if (this.isrConfig.compressHtml) { finalHtml = await this.isrConfig.compressHtml(finalHtml); - cacheString = bufferToString(finalHtml); } // if there are errors, don't add the page to cache if (errors?.length && this.isrConfig.skipCachingOnHttpError) { @@ -108,7 +105,7 @@ export class CacheGeneration { // add the regenerated page to cache const addToCache = () => { - return this.cache.add(cacheKey, cacheString, { + return this.cache.add(cacheKey, finalHtml, { revalidate, buildId: this.isrConfig.buildId, }); diff --git a/libs/isr/server/src/cache-handlers/filesystem-cache-handler.ts b/libs/isr/server/src/cache-handlers/filesystem-cache-handler.ts index d6318ab6e6..e834d8ef2a 100644 --- a/libs/isr/server/src/cache-handlers/filesystem-cache-handler.ts +++ b/libs/isr/server/src/cache-handlers/filesystem-cache-handler.ts @@ -16,6 +16,7 @@ export interface FileSystemCacheOptions { interface FileSystemCacheData { htmlFilePath: string; // full path to file options: CacheISRConfig; + isBuffer: boolean; createdAt: number; } @@ -43,7 +44,7 @@ export class FileSystemCacheHandler extends CacheHandler { async add( route: string, - html: string, + html: string | Buffer, config?: CacheISRConfig, ): Promise { return new Promise((resolve, reject) => { @@ -61,6 +62,7 @@ export class FileSystemCacheHandler extends CacheHandler { htmlFilePath: filePath, options: config || { revalidate: null }, createdAt: Date.now(), + isBuffer: Buffer.isBuffer(html), }); resolve(); @@ -76,7 +78,7 @@ export class FileSystemCacheHandler extends CacheHandler { if (cachedRoute) { // on html field we have saved path to file - this.readFromFile(cachedRoute.htmlFilePath) + this.readFromFile(cachedRoute.htmlFilePath, cachedRoute.isBuffer) .then((html) => { const cacheData: CacheData = { html, @@ -179,6 +181,7 @@ export class FileSystemCacheHandler extends CacheHandler { htmlFilePath: filePath, // full path to file options: { revalidate, errors }, createdAt: Date.now(), + isBuffer: false, }); console.log('The request was stored in cache! Route: ', route); @@ -265,9 +268,13 @@ export class FileSystemCacheHandler extends CacheHandler { ); } - private async readFromFile(filePath: string): Promise { + private async readFromFile( + filePath: string, + isBuffer: boolean, + ): Promise { + const options = isBuffer ? undefined : 'utf-8'; return new Promise((resolve, reject) => { - fs.readFile(filePath, 'utf-8', (err, data) => { + fs.readFile(filePath, options, (err, data) => { if (err) { console.error('ERROR! šŸ’„ ! Cannot read file: ' + filePath); reject(err); diff --git a/libs/isr/server/src/cache-handlers/in-memory-cache-handler.ts b/libs/isr/server/src/cache-handlers/in-memory-cache-handler.ts index 27c674f0da..efc77570c3 100644 --- a/libs/isr/server/src/cache-handlers/in-memory-cache-handler.ts +++ b/libs/isr/server/src/cache-handlers/in-memory-cache-handler.ts @@ -17,7 +17,7 @@ export class InMemoryCacheHandler extends CacheHandler { add( url: string, - html: string, + html: string | Buffer, config: CacheISRConfig = defaultCacheISRConfig, ): Promise { return new Promise((resolve) => { diff --git a/libs/isr/server/src/isr-handler.ts b/libs/isr/server/src/isr-handler.ts index f83894263e..cd633b0d06 100644 --- a/libs/isr/server/src/isr-handler.ts +++ b/libs/isr/server/src/isr-handler.ts @@ -12,7 +12,7 @@ import { CacheGeneration } from './cache-generation'; import { InMemoryCacheHandler } from './cache-handlers/in-memory-cache-handler'; import { ISRLogger } from './isr-logger'; import { getCacheKey, getVariant } from './utils/cache-utils'; -import { setCompressHeader, stringToBuffer } from './utils/compression-utils'; +import { setCompressHeader } from './utils/compression-utils'; export class ISRHandler { protected cache!: CacheHandler; @@ -193,10 +193,6 @@ export class ISRHandler { this.logger.log(`Page was retrieved from cache: `, cacheKey); let finalHtml: string | Buffer = html; - if (this.isrConfig.compressHtml) { - finalHtml = stringToBuffer(finalHtml); - } - // if the cache is expired, we will regenerate it if (cacheConfig.revalidate && cacheConfig.revalidate > 0) { const lastCacheDateDiff = (Date.now() - createdAt) / 1000; // in seconds diff --git a/libs/isr/server/src/utils/compression-utils.ts b/libs/isr/server/src/utils/compression-utils.ts index 74961b2582..d229af33bc 100644 --- a/libs/isr/server/src/utils/compression-utils.ts +++ b/libs/isr/server/src/utils/compression-utils.ts @@ -22,11 +22,3 @@ export function CompressStaticFilter( // fallback to standard filter function return compression.filter(req, res); } - -export const bufferToString = (buffer: Buffer): string => { - return buffer.toString('base64'); -}; - -export const stringToBuffer = (str: string): Buffer => { - return Buffer.from(str, 'base64'); -}; From 65b0381920c6bd3d0aa9f2cbf3c6ca202710dce1 Mon Sep 17 00:00:00 2001 From: Sam Lin <456807+maxisam@users.noreply.github.com.> Date: Mon, 7 Oct 2024 11:37:34 -0500 Subject: [PATCH 23/28] docs: how to use buffer in redis and compressHtml callback --- apps/docs/docs/isr/cache-handlers.md | 93 +++++++++++------------ apps/docs/docs/isr/cache-hooks.md | 8 +- libs/isr/models/src/cache-handler.ts | 4 + libs/isr/models/src/isr-handler-config.ts | 11 +-- 4 files changed, 61 insertions(+), 55 deletions(-) diff --git a/apps/docs/docs/isr/cache-handlers.md b/apps/docs/docs/isr/cache-handlers.md index 699964782a..5210cdc464 100644 --- a/apps/docs/docs/isr/cache-handlers.md +++ b/apps/docs/docs/isr/cache-handlers.md @@ -71,67 +71,61 @@ export class RedisCacheHandler extends CacheHandler { this.redis = new Redis(this.options.connectionString); console.log('RedisCacheHandler initialized šŸš€'); + options.keyPrefix = options.keyPrefix || 'isr'; } - add( - url: string, - html: string, - options: ISROptions = { revalidate: null } - ): Promise { - const htmlWithMsg = html + cacheMsg(options.revalidate); - - return new Promise((resolve, reject) => { - const cacheData: CacheData = { - html: htmlWithMsg, - options, - createdAt: Date.now(), - }; - const key = this.createKey(url); - this.redis.set(key, JSON.stringify(cacheData)).then(() => { - resolve(); - }); + add(url: string, html: string | Buffer, options: ISROptions = { revalidate: null }): Promise { + const key = this.createKey(cacheKey); + const createdAt = Date.now().toString(); + await this.redis.hmset(key, { + html, + revalidate: config.revalidate ? config.revalidate.toString() : '', + buildId: config.buildId || '', + createdAt, }); } - get(url: string): Promise { - return new Promise((resolve, reject) => { - const key = this.createKey(url); - this.redis.get(key, (err, result) => { - if (err || result === null || result === undefined) { - reject('This url does not exist in cache!'); - } else { - resolve(JSON.parse(result)); - } - }); - }); + // in this example, it is assumed that the html is stored as a buffer, use hgetall if it is stored as a string + async get(cacheKey: string): Promise { + const key = this.createKey(cacheKey); + const data = await this.redis.hgetallBuffer(key); + if (Object.keys(data).length > 0) { + const revalidate = data['revalidate'] ? parseInt(data['revalidate'].toString(), 10) : null; + return { + html: data['html'], + options: { + revalidate, + buildId: data['buildId'].toString() || null, + }, + createdAt: parseInt(data['createdAt'].toString(), 10), + } as CacheData; + } else { + this.logger.info(`Cache with key ${cacheKey} not found`); + throw new Error(`Cache with key ${cacheKey} not found`); + } } - getAll(): Promise { - console.log('getAll() is not implemented for RedisCacheHandler'); - return Promise.resolve([]); + async getAll(): Promise { + return await this.redis.keys(`${this.redisCacheOptions.keyPrefix}:*`); } - has(url: string): Promise { - return new Promise((resolve, reject) => { - const key = this.createKey(url); - resolve(this.redis.exists(key).then((exists) => exists === 1)); - }); + async has(cacheKey: string): Promise { + const key = this.createKey(cacheKey); + return (await this.redis.exists(key)) === 1; } - delete(url: string): Promise { - return new Promise((resolve, reject) => { - const key = this.createKey(url); - resolve(this.redis.del(key).then((deleted) => deleted === 1)); - }); + async delete(cacheKey: string): Promise { + const key = this.createKey(cacheKey); + return (await this.redis.del(key)) === 1; } - clearCache?(): Promise { - throw new Error('Method not implemented.'); + async clearCache(): Promise { + await this.redis.flushdb(); + return true; } - private createKey(url: string): string { - const prefix = this.options.keyPrefix || 'isr'; - return `${prefix}:${url}`; + private createKey(cacheKey: string): string { + return `${this.redisCacheOptions.keyPrefix}:${cacheKey}`; } } @@ -203,7 +197,7 @@ The `CacheHandler` abstract class has the following API: ```typescript export abstract class CacheHandler { - abstract add(url: string, html: string, options: ISROptions): Promise; + abstract add(url: string | Buffer, html: string, options: ISROptions): Promise; abstract get(url: string): Promise; @@ -223,8 +217,11 @@ The `CacheData` interface is used to store the cached pages in the cache handler ```typescript export interface CacheData { - html: string; + html: string | Buffer; options: ISROptions; createdAt: number; } ``` + +note: The `html` field can be a string or a buffer. It depends on if you set `compressHtml` function in the `ISRHandler` options. +If it is set, the html will be compressed and stored as a buffer. If it is not set, the html will be stored as a string. diff --git a/apps/docs/docs/isr/cache-hooks.md b/apps/docs/docs/isr/cache-hooks.md index 132712e545..a489cf41b4 100644 --- a/apps/docs/docs/isr/cache-hooks.md +++ b/apps/docs/docs/isr/cache-hooks.md @@ -14,13 +14,13 @@ To do that, you can use the `modifyCachedHtml` and `modifyGeneratedHtml` callbac ### modifyCachedHtml -The `modifyCachedHtml` callback is called when the html is served from cache (on every user request). It receives the request and the cached html as parameters. It should return the modified html. +The `modifyCachedHtml` callback is called when the html is served from cache (on every user request). It receives the request and the cached html as parameters. It should return the modified html. However, if compressHtml is set, this callback will not be called, since the cached html is compressed and cannot be modified. ### modifyGeneratedHtml The `modifyGeneratedHtml` callback is called when the html is generated on the fly (before the cache is stored). It receives the request and the generated html as parameters. It should return the modified html. -### Example +#### Example ```ts server.get( @@ -55,3 +55,7 @@ server.get( :::caution **Important:** Use these methods with caution as the logic written can increase the processing time. ::: + +### compressHtml (> v18.1.0) + +A compression callback can be provided to compress the HTML before storing it in the cache. If not provided, the HTML will be stored without compression. When provided, the HTML will be compressed and stored as Buffer | string in the cache (depending on how cache handler is implemented. Default examples use Buffer). Note that this will disable the modifyCachedHtml callback, as compressed HTML cannot be modified. diff --git a/libs/isr/models/src/cache-handler.ts b/libs/isr/models/src/cache-handler.ts index fc46e3a06b..cb9fd020b5 100644 --- a/libs/isr/models/src/cache-handler.ts +++ b/libs/isr/models/src/cache-handler.ts @@ -10,6 +10,8 @@ export interface CacheISRConfig { errors?: string[]; } +// html could be a string or a buffer, it is depending on if `compressHtml` is set in `ISRHandler` config. +// if `compressHtml` is set, the html will be a buffer, otherwise it will be a string export interface CacheData { html: string | Buffer; options: CacheISRConfig; @@ -29,6 +31,8 @@ export interface VariantRebuildItem { } export abstract class CacheHandler { + // html could be a string or a buffer, it is depending on if `compressHtml` is set in `ISRHandler` config. + // if `compressHtml` is set, the html will be a buffer, otherwise it will be a string abstract add( url: string, html: string | Buffer, diff --git a/libs/isr/models/src/isr-handler-config.ts b/libs/isr/models/src/isr-handler-config.ts index e2c2230e77..08a8a27e9c 100644 --- a/libs/isr/models/src/isr-handler-config.ts +++ b/libs/isr/models/src/isr-handler-config.ts @@ -126,11 +126,12 @@ export interface ISRHandlerConfig { backgroundRevalidation?: boolean; /** - * compression callback to compress the html before storing it in the cache. - * If not provided, the html will not be compressed. - * If provided, the html will be compressed before storing it as base64 in the cache, - * also this will disable the modifyCachedHtml callback, because html is compressed and can't be modified. - */ + * A compression callback can be provided to compress the HTML before storing it in the cache. + * If not provided, the HTML will be stored without compression. + * When provided, the HTML will be compressed and stored as Buffer | string in the cache + * (depending on how cache handler is implemented. Default examples use Buffer) + * Note that this will disable the modifyCachedHtml callback, as compressed HTML cannot be modified. + **/ compressHtml?: CompressHtmlFn; /** From 7e8512b83535fba4aeca722faaefd66bc93917dc Mon Sep 17 00:00:00 2001 From: Sam Lin <456807+maxisam@users.noreply.github.com.> Date: Wed, 16 Oct 2024 16:07:33 -0500 Subject: [PATCH 24/28] docs(isr): add compression support for caching https://github.com/rx-angular/rx-angular/issues/1767 --- apps/docs/docs/isr/compression.md | 54 ++++++++++++++++++++++++++++ libs/isr/models/src/cache-handler.ts | 1 + 2 files changed, 55 insertions(+) create mode 100644 apps/docs/docs/isr/compression.md diff --git a/apps/docs/docs/isr/compression.md b/apps/docs/docs/isr/compression.md new file mode 100644 index 0000000000..3c3491b23a --- /dev/null +++ b/apps/docs/docs/isr/compression.md @@ -0,0 +1,54 @@ +--- +sidebar_label: Compression +sidebar_position: 12 +title: Compression +--- + +## Why Compression? + +Caching pages on the server can lead to high memory usage, especially when caching a large number of pages. Even when caching pages on disk, reading them from disk and sending them to the client can result in high disk I/O usage. + +Typically, reverse proxies like Nginx are used to compress responses before sending them to clients. However, if we compress cached pages and serve them as compressed responses, we eliminate the need to compress them every time in Nginx, reducing server load and improving performance. + +## How to Use Compression + +You can enable compression by setting the `compressHtml` property in `ISRHandlerConfig` to a compression callback function. This function will be called with the HTML content of the page and should return the compressed HTML content. The signature of the function is: + +```typescript +export type CompressHtmlFn = (html: string) => Promise; +``` + +### Example + +```typescript +import { ISRHandler } from '@rx-angular/isr'; +import { CompressHtmlFn } from '@rx-angular/isr/models'; +import * as zlib from 'zlib'; + +// Example compressHtml function +const compressHtml: CompressHtmlFn = (html: string): Promise => { + return new Promise((resolve, reject) => { + zlib.gzip(html, (err, buffer) => { + if (err) { + reject(err); + } else { + resolve(buffer); + } + }); + }); +}; + +// ISRHandler configuration +const isr = new ISRHandler({ + indexHtml, + // other options omitted for brevity + compressHtml: compressHtml, // compress the HTML before storing in cache + htmlCompressionMethod: 'gzip', // specify the compression method, default is 'gzip' +}); +``` + +## Important Notes + +- **HTML Parameter Type**: With compression enabled, the type of the `html` parameter in `CacheHandler` will be `Buffer` instead of `string`. +- **Content-Encoding Header**: The `htmlCompressionMethod` property is used for the `Content-Encoding` header and should match the compression method used in the `compressHtml` function. +- **Modify Cached HTML**: The `modifyCachedHtml` function will be ignored when `compressHtml` is set, since it is not possible to modify the compressed cached HTML content without decompressing it first. diff --git a/libs/isr/models/src/cache-handler.ts b/libs/isr/models/src/cache-handler.ts index cb9fd020b5..f7366c03a0 100644 --- a/libs/isr/models/src/cache-handler.ts +++ b/libs/isr/models/src/cache-handler.ts @@ -35,6 +35,7 @@ export abstract class CacheHandler { // if `compressHtml` is set, the html will be a buffer, otherwise it will be a string abstract add( url: string, + // it will be buffer when we use compressHtml html: string | Buffer, config?: CacheISRConfig, ): Promise; From 28b86d2aa697b2e70dc53e60b88a9e027062f9a2 Mon Sep 17 00:00:00 2001 From: Sam Lin <456807+maxisam@users.noreply.github.com.> Date: Sun, 24 Nov 2024 00:05:03 -0600 Subject: [PATCH 25/28] Merge branch 'main' into compress-new --- .eslintignore | 1 + .eslintrc.json | 10 +- .github/actions/setup/action.yml | 4 +- .github/workflows/build-and-test.yml | 111 +- .gitignore | 1 + .nx/workflows/dynamic-changesets.yml | 4 + .prettierignore | 4 +- ...lus-docusaurus-npm-14.1.0-b526e34c01.patch | 26 + .../rx-virtual-for/rx-virtual-for.menu.ts | 4 + .../virtual-for-experiments.module.ts | 5 + .../virtual-for-scrollto-demo.component.ts | 108 + .../strategies/basic-strategies.md | 14 +- apps/docs/docs/isr/irs-configuration.md | 38 + apps/ssr-isr/cypress/support/commands.ts | 2 +- apps/ssr-isr/server.ts | 5 +- apps/ssr/cypress/support/commands.ts | 2 +- libs/cdk/README.md | 12 +- libs/cdk/coalescing/src/lib/model.ts | 2 +- .../scheduler/src/lib/scheduler.spec.ts | 2 +- libs/cdk/render-strategies/src/lib/model.ts | 4 +- .../src/lib/zone-config.ts | 5 +- libs/isr/README.md | 19 +- libs/isr/models/src/cache-handler.ts | 8 +- libs/isr/models/src/index.ts | 1 + libs/isr/models/src/isr-handler-config.ts | 10 + libs/isr/server/src/cache-generation.ts | 26 +- .../filesystem-cache-handler.spec.ts | 16 +- .../filesystem-cache-handler.ts | 62 +- .../cache-handlers/in-memory-cache-handler.ts | 18 +- libs/isr/server/src/isr-handler.ts | 6 +- libs/isr/server/src/isr-logger.ts | 1 + libs/isr/server/src/utils/cache-utils.spec.ts | 12 +- libs/isr/server/src/utils/cache-utils.ts | 2 +- libs/state/CHANGELOG.md | 9 + libs/state/README.md | 14 +- libs/state/actions/src/lib/actions.factory.ts | 6 +- libs/state/actions/src/lib/rx-actions.spec.ts | 4 +- libs/state/actions/src/lib/rx-actions.ts | 5 +- libs/state/actions/src/lib/types.ts | 25 +- libs/state/package.json | 2 +- .../transformation-helpers/one-of.suite.ts | 16 +- libs/state/spec/rx-state.spec.ts | 25 + libs/state/src/lib/rx-state.ts | 6 +- libs/template/CHANGELOG.md | 11 + libs/template/README.md | 12 +- .../autosize-virtual-scroll-strategy.ts | 43 +- .../virtual-scroll-viewport.component.scss | 4 + libs/template/package.json | 2 +- nx.json | 3 +- package.json | 98 +- yarn.lock | 8216 ++++++++++------- 51 files changed, 5486 insertions(+), 3560 deletions(-) create mode 100644 .nx/workflows/dynamic-changesets.yml create mode 100644 .yarn/patches/@nx-plus-docusaurus-npm-14.1.0-b526e34c01.patch create mode 100644 apps/demos/src/app/features/template/rx-virtual-for/virtual-rendering/virtual-for-scrollto-demo.component.ts create mode 100644 apps/docs/docs/isr/irs-configuration.md diff --git a/.eslintignore b/.eslintignore index 3c3629e647..44b274308a 100644 --- a/.eslintignore +++ b/.eslintignore @@ -1 +1,2 @@ node_modules +.yarn diff --git a/.eslintrc.json b/.eslintrc.json index db6bfa8642..b739df76ae 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -61,11 +61,11 @@ "rules": { "@typescript-eslint/ban-ts-comment": "warn", "@typescript-eslint/no-inferrable-types": "warn", - "@typescript-eslint/ban-types": "warn", "@typescript-eslint/no-empty-interface": "warn", "@typescript-eslint/no-empty-function": "warn", "@typescript-eslint/no-unused-vars": "warn", "@typescript-eslint/no-explicit-any": "warn", + "@typescript-eslint/no-unsafe-function-type": "off", "prefer-rest-params": "warn", "no-prototype-builtins": "warn", "no-empty": "warn", @@ -75,9 +75,7 @@ "selector": "typeParameter", "format": ["PascalCase"] } - ], - "@typescript-eslint/no-extra-semi": "error", - "no-extra-semi": "off" + ] } }, { @@ -88,9 +86,7 @@ "plugin:@nx/javascript" ], "rules": { - "@typescript-eslint/no-non-null-assertion": "off", - "@typescript-eslint/no-extra-semi": "error", - "no-extra-semi": "off" + "@typescript-eslint/no-non-null-assertion": "off" } } ] diff --git a/.github/actions/setup/action.yml b/.github/actions/setup/action.yml index 7266bdc053..bbbb992aa6 100644 --- a/.github/actions/setup/action.yml +++ b/.github/actions/setup/action.yml @@ -9,11 +9,9 @@ runs: using: composite steps: # Requires git checkout with fetch depth 0 - - name: Derive appropriate SHAs for base and head for `nx affected` commands - uses: nrwl/nx-set-shas@v4 - name: Use Node.js - uses: actions/setup-node@v3 + uses: actions/setup-node@v4 with: node-version: ${{ inputs.node-version }} cache: 'yarn' diff --git a/.github/workflows/build-and-test.yml b/.github/workflows/build-and-test.yml index c6245cdbcf..d83bd8789e 100644 --- a/.github/workflows/build-and-test.yml +++ b/.github/workflows/build-and-test.yml @@ -23,56 +23,19 @@ env: NODE_OPTIONS: --max-old-space-size=6144 docs-name: docs docs-path: dist/apps/docs - NX_CLOUD_DISTRIBUTED_EXECUTION: true # this enables DTE - NX_CLOUD_DISTRIBUTED_EXECUTION_AGENT_COUNT: 4 # expected number of agents NX_BRANCH: ${{ github.event.number || github.ref_name }} -jobs: - dte_agents: - name: DTE Agent ${{ matrix.agent }} - runs-on: ubuntu-latest - timeout-minutes: 20 - - # The Free GitHub plan has a limit of 20 concurrent jobs on Ubuntu images - # Reference: https://docs.github.com/en/actions/learn-github-actions/usage-limits-billing-and-administration - # If we need to, we can optimize for 2 simultaneous workflow runs: - # 2 x 1 main job = 2 concurrent jobs - # 2 x 9 agent jobs = 18 concurrent jobs - # Total = 20 concurrent jobs - # - # However, we don't have many projects or targets in this workspace, so we - # lower the number of agents to reduce spent compute time. - strategy: - matrix: - # Must match the argument passed to `nx-cloud --agent-count` in the dte_coordinator job - agent: [1, 2, 3, 4] - - steps: - - name: Checkout all commits - uses: actions/checkout@v3 - - - name: Set up dependencies - uses: ./.github/actions/setup +permissions: + actions: read + contents: read - - name: Start Nx Cloud DTE Agent - run: yarn nx-cloud start-agent - env: - NX_AGENT_NAME: ${{ matrix.agent }} - - # We're using Nx Cloud for Distributed Task Execution - # Reference: https://nx.dev/using-nx/dte - # - # The coordinator outputs the combination of task outputs from the agents, - # both terminal and file outputs - dte_coordinator: - name: DTE Coordinator +jobs: + main: + name: Main CI runs-on: ubuntu-latest - env: - NX_CLOUD_DISTRIBUTED_EXECUTION: true - NX_DISTRIBUTED_TASK_EXECUTION: true steps: - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 name: Checkout [Pull Request] if: ${{ github.event_name == 'pull_request' }} with: @@ -81,53 +44,27 @@ jobs: # We need to fetch all branches and commits so that Nx affected has a base to compare against. fetch-depth: 0 - - uses: actions/checkout@v3 + - uses: actions/checkout@v4 name: Checkout [Default Branch] if: ${{ github.event_name != 'pull_request' }} with: # We need to fetch all branches and commits so that Nx affected has a base to compare against. fetch-depth: 0 - - name: Set up dependencies - uses: ./.github/actions/setup + - name: Derive appropriate SHAs for base and head for `nx affected` commands + uses: nrwl/nx-set-shas@v4 - name: Initialize the Nx Cloud distributed CI run - run: yarn nx-cloud start-ci-run + run: npx nx-cloud start-ci-run --distribute-on="./nx/workflows/dynamic-changesets.yml" --stop-agents-after="e2e" --require-explicit-completion + + - name: Set up dependencies + uses: ./.github/actions/setup - name: Run commands in parallel run: | - pids=() - # list of commands to be run on main has env flag NX_CLOUD_DISTRIBUTED_EXECUTION set to false - NX_CLOUD_DISTRIBUTED_EXECUTION=false yarn nx-cloud record -- yarn nx format:check & pids+=($!) - - # list of commands to be run on agents - yarn nx affected -t lint --parallel=3 & - pids+=($!) - - yarn nx affected -t test --parallel=3 & - pids+=($!) - - yarn nx affected -t build --exclude=docs --parallel=3 & - pids+=($!) - - yarn nx affected -t e2e --parallel=1 & - pids+=($!) - - yarn nx affected -t component-test --parallel=1 & - pids+=($!) - - # run all commands in parallel and bail if one of them fails - for pid in ${pids[*]}; do - if ! wait $pid; then - exit 1 - fi - done - - exit 0 - - - name: Stop Nx Cloud DTE agents - if: ${{ always() }} - run: yarn nx-cloud stop-all-agents + npx nx-cloud record -- npx nx format:check + npx nx affected -t lint build test component-test e2e --parallel=4 --exclude=docs + npx nx-cloud complete-ci-run # Upload coverage reports to Codecov - name: Upload coverage @@ -142,27 +79,21 @@ jobs: build-docs: name: Build docs runs-on: ubuntu-latest - permissions: - actions: read - contents: read steps: - name: Checkout all commits - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: fetch-depth: 0 - name: Set up dependencies uses: ./.github/actions/setup - name: Build docs - env: - NX_CLOUD_DISTRIBUTED_EXECUTION: false - NX_DISTRIBUTED_TASK_EXECUTION: false run: yarn nx build docs - name: '[Merge] Upload docs' if: github.ref == 'refs/heads/main' - uses: actions/upload-artifact@v3 + uses: actions/upload-artifact@v4 with: name: ${{ env.docs-name }} path: ${{ env.docs-path }} @@ -186,13 +117,13 @@ jobs: steps: - name: Download docs - uses: actions/download-artifact@v3 + uses: actions/download-artifact@v4 with: name: ${{ env.docs-name }} path: ${{ env.docs-path }} - name: Set up GitHub Pages - uses: actions/configure-pages@v2 + uses: actions/configure-pages@v4 - name: Upload docs to GitHub Pages uses: actions/upload-pages-artifact@v1 diff --git a/.gitignore b/.gitignore index 56fb3bcb08..434fd88783 100644 --- a/.gitignore +++ b/.gitignore @@ -53,4 +53,5 @@ Thumbs.db .angular .nx/cache +.nx/workspace-data migrations.json diff --git a/.nx/workflows/dynamic-changesets.yml b/.nx/workflows/dynamic-changesets.yml new file mode 100644 index 0000000000..20a757374f --- /dev/null +++ b/.nx/workflows/dynamic-changesets.yml @@ -0,0 +1,4 @@ +distribute-on: + small-changeset: 3 linux-large-js + medium-changeset: 3 linux-large-js + large-changeset: 4 linux-large-js diff --git a/.prettierignore b/.prettierignore index 3ab5243c8c..699138bc15 100644 --- a/.prettierignore +++ b/.prettierignore @@ -9,4 +9,6 @@ CHANGELOG.md .angular -/.nx/cache \ No newline at end of file +.yarn +/.nx/cache +/.nx/workspace-data diff --git a/.yarn/patches/@nx-plus-docusaurus-npm-14.1.0-b526e34c01.patch b/.yarn/patches/@nx-plus-docusaurus-npm-14.1.0-b526e34c01.patch new file mode 100644 index 0000000000..e4ea91c84d --- /dev/null +++ b/.yarn/patches/@nx-plus-docusaurus-npm-14.1.0-b526e34c01.patch @@ -0,0 +1,26 @@ +diff --git a/src/executors/browser/executor.js b/src/executors/browser/executor.js +index b8d8b074e4d9565be6cb399f733b80fd9f500215..6e46f96c52f9b82c4b44762c7133a6b2241768ef 100644 +--- a/src/executors/browser/executor.js ++++ b/src/executors/browser/executor.js +@@ -7,7 +7,7 @@ const path_1 = require("path"); + function runExecutor(options, context) { + var _a; + return tslib_1.__asyncGenerator(this, arguments, function* runExecutor_1() { +- const projectRoot = path.join(context.root, context.workspace.projects[(_a = context.projectName) !== null && _a !== void 0 ? _a : ''].root); ++ const projectRoot = path.join(context.root, context.projectsConfigurations.projects[(_a = context.projectName) !== null && _a !== void 0 ? _a : ''].root); + try { + yield tslib_1.__await((0, lib_1.build)(projectRoot, { + bundleAnalyzer: options.bundleAnalyzer, +diff --git a/src/executors/dev-server/executor.js b/src/executors/dev-server/executor.js +index e9e7867cfde26eb2e1c68079ddcf494f957c3417..1ccaf1f06702090da39b1d1541412027558067dd 100644 +--- a/src/executors/dev-server/executor.js ++++ b/src/executors/dev-server/executor.js +@@ -6,7 +6,7 @@ const path = require("path"); + function runExecutor(options, context) { + var _a; + return tslib_1.__asyncGenerator(this, arguments, function* runExecutor_1() { +- const projectRoot = path.join(context.root, context.workspace.projects[(_a = context.projectName) !== null && _a !== void 0 ? _a : ''].root); ++ const projectRoot = path.join(context.root, context.projectsConfigurations.projects[(_a = context.projectName) !== null && _a !== void 0 ? _a : ''].root); + const port = options.port.toString(); + yield tslib_1.__await((0, lib_1.start)(projectRoot, { + port, diff --git a/apps/demos/src/app/features/template/rx-virtual-for/rx-virtual-for.menu.ts b/apps/demos/src/app/features/template/rx-virtual-for/rx-virtual-for.menu.ts index edb77a425d..33cec9af82 100644 --- a/apps/demos/src/app/features/template/rx-virtual-for/rx-virtual-for.menu.ts +++ b/apps/demos/src/app/features/template/rx-virtual-for/rx-virtual-for.menu.ts @@ -23,4 +23,8 @@ export const RX_VIRTUAL_FOR_MENU_ITEMS = [ label: 'Crazy Update', link: 'crazy-update', }, + { + label: 'Scroll To', + link: 'scroll-to', + }, ]; diff --git a/apps/demos/src/app/features/template/rx-virtual-for/virtual-rendering/virtual-for-experiments.module.ts b/apps/demos/src/app/features/template/rx-virtual-for/virtual-rendering/virtual-for-experiments.module.ts index c8bbc2bde9..a1619b70ac 100644 --- a/apps/demos/src/app/features/template/rx-virtual-for/virtual-rendering/virtual-for-experiments.module.ts +++ b/apps/demos/src/app/features/template/rx-virtual-for/virtual-rendering/virtual-for-experiments.module.ts @@ -27,6 +27,7 @@ import { VirtualForMonkeyTestComponent } from './virtual-for-monkey-test.compone import { VirtualForReverseInfiniteScrollComponent } from './virtual-for-reverse-infinite-scroll.component'; import { VirtualForScrollWindowDemoComponent } from './virtual-for-scroll-window-demo.component'; import { VirtualForCustomScrollableDemoComponent } from './virtual-for-scrollable-demo.component'; +import { VirtualForScrollToDemoComponent } from './virtual-for-scrollto-demo.component'; @NgModule({ imports: [ @@ -60,6 +61,10 @@ import { VirtualForCustomScrollableDemoComponent } from './virtual-for-scrollabl path: 'crazy-update', component: VirtualForCrazyUpdateComponent, }, + { + path: 'scroll-to', + component: VirtualForScrollToDemoComponent, + }, ]), ValueProvidersModule, RxLet, diff --git a/apps/demos/src/app/features/template/rx-virtual-for/virtual-rendering/virtual-for-scrollto-demo.component.ts b/apps/demos/src/app/features/template/rx-virtual-for/virtual-rendering/virtual-for-scrollto-demo.component.ts new file mode 100644 index 0000000000..21bfdea9e3 --- /dev/null +++ b/apps/demos/src/app/features/template/rx-virtual-for/virtual-rendering/virtual-for-scrollto-demo.component.ts @@ -0,0 +1,108 @@ +import { coerceNumberProperty } from '@angular/cdk/coercion'; +import { CdkVirtualScrollViewport } from '@angular/cdk/scrolling'; +import { NgTemplateOutlet } from '@angular/common'; +import { + AfterViewInit, + ChangeDetectionStrategy, + Component, + ElementRef, + OnInit, + QueryList, + TemplateRef, + ViewChild, + ViewChildren, +} from '@angular/core'; +import { RxStrategyNames } from '@rx-angular/cdk/render-strategies'; +import { patch, toDictionary, update } from '@rx-angular/cdk/transformations'; +import { RxState } from '@rx-angular/state'; +import { + BehaviorSubject, + combineLatest, + defer, + pairwise, + ReplaySubject, + Subject, + switchMap, +} from 'rxjs'; +import { + distinctUntilChanged, + map, + shareReplay, + startWith, + withLatestFrom, +} from 'rxjs/operators'; +import { ArrayProviderComponent } from '../../../../shared/debug-helper/value-provider/array-provider/array-provider.component'; +import { TestItem } from '../../../../shared/debug-helper/value-provider/index'; +import { + AutoSizeVirtualScrollStrategy, + RxVirtualFor, + RxVirtualScrollViewportComponent, +} from '@rx-angular/template/experimental/virtual-scrolling'; + +@Component({ + selector: 'rxa-virtual-for-scroll-to', + template: ` +

Scroll To

+
+ +
+ {{ item }} +
+
+
+ `, + styles: [ + ` + :host { + display: flex; + flex-flow: column; + height: 100%; + } + .container { + height: 100%; + flex-grow: 1; + } + rx-virtual-scroll-viewport { + position: absolute; + width: 100%; + height: 100%; + top: 0; + left: 0; + } + + .item { + width: 100%; + height: 50px; + display: flex; + align-items: center; + justify-content: center; + background: lightpink; + border-top: 1px solid gray; + } + `, + ], + providers: [RxState], + changeDetection: ChangeDetectionStrategy.OnPush, + standalone: true, + imports: [ + RxVirtualScrollViewportComponent, + AutoSizeVirtualScrollStrategy, + RxVirtualFor, + ], +}) +export class VirtualForScrollToDemoComponent implements OnInit { + items: string[] | undefined; + initialScrollIndex = 5; + + ngOnInit() { + this.items = Array.from({ length: 100 }, (_, i) => i.toString()); + } + + onScrolledIndexChange(index: number) { + console.log('onScrolledIndexChange', index); + } +} diff --git a/apps/docs/docs/cdk/render-strategies/strategies/basic-strategies.md b/apps/docs/docs/cdk/render-strategies/strategies/basic-strategies.md index 45bcd37fa4..55a4023024 100644 --- a/apps/docs/docs/cdk/render-strategies/strategies/basic-strategies.md +++ b/apps/docs/docs/cdk/render-strategies/strategies/basic-strategies.md @@ -97,8 +97,8 @@ This means for every emitted value [`ChangeDetectorRef#markForCheck`](https://gi Angular still needs zone.js to trigger the [`ApplicationRef#tick`](https://github.com/angular/angular/blob/7d8dce11c0726cdba999fc59a83295d19e5e92e6/packages/core/src/application_ref.ts#L719) to re-render, as the internally called function [`markViewDirty`](https://github.com/angular/angular/blob/930eeaf177a4c277f437f42314605ff8dc56fc82/packages/core/src/render3/instructions/shared.ts#L1837) is only responsible for dirty marking and not rendering. -| Name | Zone Agnostic | Render Method | Coalescing | Scheduling | -| -------- | ------------- | ---------------- | ------------- | ----------------------- | +| Name | Zone Agnostic | Render Method | Coalescing | Scheduling | +| -------- | ------------- | ---------------- | -------------- | ----------------------- | | `native` | āŒ | ⮁ `markForCheck` | āœ” RootContext | `requestAnimationFrame` | #### Local @@ -112,7 +112,7 @@ As detectChanges has no coalescing of render calls like [`ChangeDetectorRef#markForCheck`](https://github.com/angular/angular/blob/930eeaf177a4c277f437f42314605ff8dc56fc82/packages/core/src/render3/view_ref.ts#L128) or [`ɵmarkDirty`](https://github.com/angular/angular/blob/930eeaf177a4c277f437f42314605ff8dc56fc82/packages/core/src/render3/instructions/change_detection.ts#L36) have, we apply our own coalescing, 'scoped' on component level. Coalescing, in this very manner, means _collecting all events_ in the same -[EventLoop](https://developer.mozilla.org/de/docs/Web/JavaScript/EventLoop) tick, that would cause a re-render. Then execute re-rendering only _once_. +[EventLoop](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Event_loop) tick, that would cause a re-render. Then execute re-rendering only _once_. 'Scoped' coalescing, in addition, means _grouping the collected events_ by a specific context. E. g. the _component_ from which the re-rendering was initiated. @@ -120,9 +120,9 @@ E. g. the _component_ from which the re-rendering was initiated. This context could be the Component instance or a `ViewContextRef`, both accessed over the context over `ChangeDetectorRef#context`. -| Name | Zone Agnostic | Render Method | Coalescing | Scheduling | -| ------- | ------------- | ----------------- | ------------------ | ----------------------- | -| `local` | āœ” | šŸ — `detectChanges` | āœ” ComponentContext | `requestAnimationFrame` | +| Name | Zone Agnostic | Render Method | Coalescing | Scheduling | +| ------- | ------------- | ----------------- | ------------------- | ----------------------- | +| `local` | āœ” | šŸ — `detectChanges` | āœ” ComponentContext | `requestAnimationFrame` | The best place to use the local strategy is a structural directive like `*rxLet`. Those will have a independent template from the component and perform changes only there. @@ -138,7 +138,7 @@ The no-operation strategy does nothing. It can be a valuable tool for performanc | Name | Zone Agnostic | Render Method | Coalescing | Scheduling | | ------ | ------------- | ------------- | ---------- | ---------- | -| `noop` | āœ” | - `noop` | āŒ | āŒ | +| `noop` | āœ” | - `noop` | āŒ | āŒ | ## Usage diff --git a/apps/docs/docs/isr/irs-configuration.md b/apps/docs/docs/isr/irs-configuration.md new file mode 100644 index 0000000000..b592e84800 --- /dev/null +++ b/apps/docs/docs/isr/irs-configuration.md @@ -0,0 +1,38 @@ +--- +sidebar_label: ISR Handler Config +sidebar_position: 12 +title: ISR Handler Config +--- + +## ISR Handler Configuration + +### allowedQueryParams + +The `allowedQueryParams` property specifies which query parameters should be included in the cache key. This property can be configured as follows: + +- **Undefined**: If `allowedQueryParams` is not provided, all query parameters will be included in the cache key. +- **Empty Array**: If `allowedQueryParams` is provided as an empty array, no query parameters will be included in the cache key. +- **Array of Strings**: If `allowedQueryParams` is provided as an array of strings, only the specified query parameters will be included in the cache key. + +#### Example + +```typescript +const isrHandlerConfig = { + allowedQueryParams: ['param1', 'param2'], // Only 'param1' and 'param2' will be allowed to be part of the cache key +}; +``` + +### modifyGeneratedHtml + +> [!IMPORTANT] +> This replaced the `modifyGeneratedHtml` property in `RenderConfig`. + +The `modifyGeneratedHtml` property allows you to hook into the generated HTML and provide any modifications on-the-fly. Use this with caution as it may lead to a performance loss when serving the HTML. If set to null, the `defaultModifyGeneratedHtml` function will be used, which only adds a commented text to the HTML to indicate when it was generated. + +### backgroundRevalidation + +The `backgroundRevalidation` property determines whether the server should provide the cached HTML as soon as possible and revalidate the cache in the background. If set to true, the server will serve the cached HTML immediately and update the cache in the background. This feature allows sites to serve stale content when live backend APIs are down, slow, or rate-limited. + +### nonBlockingRender + +The `nonBlockingRender` property determines whether the server should return the rendered HTML as soon as possible without waiting to store it in the cache storage first. If set to true, this can avoid client-side waiting times if the remote cache storage is down. diff --git a/apps/ssr-isr/cypress/support/commands.ts b/apps/ssr-isr/cypress/support/commands.ts index 032fb4c661..4ee3e11502 100644 --- a/apps/ssr-isr/cypress/support/commands.ts +++ b/apps/ssr-isr/cypress/support/commands.ts @@ -12,6 +12,6 @@ // eslint-disable-next-line @typescript-eslint/no-namespace, @typescript-eslint/no-unused-vars declare namespace Cypress { - // eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/no-empty-interface + // eslint-disable-next-line interface Chainable {} } diff --git a/apps/ssr-isr/server.ts b/apps/ssr-isr/server.ts index c045804cc1..eda7dd1310 100644 --- a/apps/ssr-isr/server.ts +++ b/apps/ssr-isr/server.ts @@ -63,7 +63,10 @@ export function app(): express.Express { server.get( '*', // Serve page if it exists in cache - async (req, res, next) => await isr.serveFromCache(req, res, next), + async (req, res, next) => + await isr.serveFromCache(req, res, next, { + providers: [{ provide: RESPONSE, useValue: res }], + }), // Server side render the page and add to cache if needed async (req, res, next) => diff --git a/apps/ssr/cypress/support/commands.ts b/apps/ssr/cypress/support/commands.ts index 032fb4c661..4ee3e11502 100644 --- a/apps/ssr/cypress/support/commands.ts +++ b/apps/ssr/cypress/support/commands.ts @@ -12,6 +12,6 @@ // eslint-disable-next-line @typescript-eslint/no-namespace, @typescript-eslint/no-unused-vars declare namespace Cypress { - // eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/no-empty-interface + // eslint-disable-next-line interface Chainable {} } diff --git a/libs/cdk/README.md b/libs/cdk/README.md index 5c914e42ef..350ea50524 100644 --- a/libs/cdk/README.md +++ b/libs/cdk/README.md @@ -37,10 +37,12 @@ npm install @rx-angular/cdk | RxAngular | Angular | | --------- | ---------- | -| `^1.0.0` | `>=12.0.0` | -| `^2.0.0` | `>=13.0.0` | -| `^14.0.0` | `^14.0.0` | -| `^15.0.0` | `^15.0.0` | +| `^18.0.0` | `^18.0.0` | +| `^17.0.0` | `^17.0.0` | | `^16.0.0` | `^16.0.0` | +| `^15.0.0` | `^15.0.0` | +| `^14.0.0` | `^14.0.0` | +| `^2.0.0` | `>=13.0.0` | +| `^1.0.0` | `>=12.0.0` | -Regarding the compatibility with RxJS, we generally stick to the compatibilities of the Angular framework itself, for more information about the compatibilities of Angular itself see the [official guide](https://angular.io/guide/versions). +Regarding the compatibility with RxJS, we generally stick to the compatibilities of the Angular framework itself, for more information about the compatibilities of Angular itself see the [official guide](https://angular.dev/reference/versions). diff --git a/libs/cdk/coalescing/src/lib/model.ts b/libs/cdk/coalescing/src/lib/model.ts index 59a0cb28fd..75b9488d2a 100644 --- a/libs/cdk/coalescing/src/lib/model.ts +++ b/libs/cdk/coalescing/src/lib/model.ts @@ -1,4 +1,4 @@ -export type coalescingObj = Object; +export type coalescingObj = object; export interface RxCoalescingOptions { scope?: coalescingObj; } diff --git a/libs/cdk/internals/scheduler/src/lib/scheduler.spec.ts b/libs/cdk/internals/scheduler/src/lib/scheduler.spec.ts index be278dd0fe..2794b7c38d 100644 --- a/libs/cdk/internals/scheduler/src/lib/scheduler.spec.ts +++ b/libs/cdk/internals/scheduler/src/lib/scheduler.spec.ts @@ -38,7 +38,7 @@ describe('Scheduler', () => { break; } performance = ɵglobal.performance; - // eslint-disable-next-line @typescript-eslint/no-var-requires + // eslint-disable-next-line @typescript-eslint/no-require-imports const Scheduler = require('./scheduler'); scheduleCallback = Scheduler.scheduleCallback; cancelCallback = Scheduler.cancelCallback; diff --git a/libs/cdk/render-strategies/src/lib/model.ts b/libs/cdk/render-strategies/src/lib/model.ts index 54a78db213..662b52cc09 100644 --- a/libs/cdk/render-strategies/src/lib/model.ts +++ b/libs/cdk/render-strategies/src/lib/model.ts @@ -4,7 +4,7 @@ import { RxNotification } from '@rx-angular/cdk/notifications'; import { Observable } from 'rxjs'; export interface ScheduleOnStrategyOptions { - scope?: {}; + scope?: object; strategy?: string; patchZone?: false | NgZone; } @@ -12,7 +12,7 @@ export interface ScheduleOnStrategyOptions { export type RxRenderWork = ( cdRef: ChangeDetectorRef, scope?: coalescingObj, - notification?: RxNotification + notification?: RxNotification, ) => void; export type RxRenderBehavior = (params: { work: () => any; diff --git a/libs/cdk/zone-configurations/src/lib/zone-config.ts b/libs/cdk/zone-configurations/src/lib/zone-config.ts index 863221b6e5..4b88495a45 100644 --- a/libs/cdk/zone-configurations/src/lib/zone-config.ts +++ b/libs/cdk/zone-configurations/src/lib/zone-config.ts @@ -91,6 +91,7 @@ function createZoneFlagsConfigurator(): RxZoneConfig { // append as global method for easy debugging (cfg as RxZoneFlagsHelperFunctions).__rxa_zone_config__log = (): void => { configProps.forEach((flag) => { + // eslint-disable-next-line @typescript-eslint/no-unused-expressions cfg[flag] && console.log(flag, cfg[flag]); }); }; @@ -110,12 +111,12 @@ function createZoneFlagsConfigurator(): RxZoneConfig { }, events: { disable: reduceToObject( - zoneGlobalEventsConfigurationsKeys.map(addArraySymbolFlag) + zoneGlobalEventsConfigurationsKeys.map(addArraySymbolFlag), ), }, runtime: { disable: reduceToObject( - zoneRuntimeConfigurationsKeys.map(addSymbolFlag) + zoneRuntimeConfigurationsKeys.map(addSymbolFlag), ), }, }; diff --git a/libs/isr/README.md b/libs/isr/README.md index 5fe0ae321e..9df54fd5fb 100644 --- a/libs/isr/README.md +++ b/libs/isr/README.md @@ -21,6 +21,14 @@ A library that enables Angular Universal applications to generate static pages a npm install @rx-angular/isr ``` +## Version Compatibility + +| RxAngular | Angular | +| --------- | --------- | +| `^18.0.0` | `^18.0.0` | +| `^17.1.0` | `^17.0.0` | +| `^16.0.0` | `^16.0.0` | + ## How to use it? 1. Initialize `ISRHandler` inside `server.ts` @@ -37,10 +45,7 @@ const isr = new ISRHandler({ ```ts server.use(express.json()); -server.post( - '/api/invalidate', - async (req, res) => await isr.invalidate(req, res) -); +server.post('/api/invalidate', async (req, res) => await isr.invalidate(req, res)); ``` 3. Replace Angular default server side rendering with ISR rendering @@ -64,7 +69,7 @@ server.get( // Serve page if it exists in cache async (req, res, next) => await isr.serveFromCache(req, res, next), // Server side render the page and add to cache if needed - async (req, res, next) => await isr.render(req, res, next) + async (req, res, next) => await isr.render(req, res, next), ); ``` @@ -80,7 +85,7 @@ server.get( { provide: CUSTOM_TOKEN, useValue: 'Hello from ISR' }, CustomService, ], - }) + }), ); ``` @@ -105,7 +110,7 @@ server.get( modifyGeneratedHtml: (req, html) => { return `${html}`; }, - }) + }), ); ``` diff --git a/libs/isr/models/src/cache-handler.ts b/libs/isr/models/src/cache-handler.ts index f7366c03a0..5b46d77fef 100644 --- a/libs/isr/models/src/cache-handler.ts +++ b/libs/isr/models/src/cache-handler.ts @@ -34,17 +34,17 @@ export abstract class CacheHandler { // html could be a string or a buffer, it is depending on if `compressHtml` is set in `ISRHandler` config. // if `compressHtml` is set, the html will be a buffer, otherwise it will be a string abstract add( - url: string, + cacheKey: string, // it will be buffer when we use compressHtml html: string | Buffer, config?: CacheISRConfig, ): Promise; - abstract get(url: string): Promise; + abstract get(cacheKey: string): Promise; - abstract has(url: string): Promise; + abstract has(cacheKey: string): Promise; - abstract delete(url: string): Promise; + abstract delete(cacheKey: string): Promise; abstract getAll(): Promise; diff --git a/libs/isr/models/src/index.ts b/libs/isr/models/src/index.ts index de7bcfee99..f1cc2a1637 100644 --- a/libs/isr/models/src/index.ts +++ b/libs/isr/models/src/index.ts @@ -7,6 +7,7 @@ export { VariantRebuildItem, } from './cache-handler'; export { + CacheKeyGeneratorFn, CompressHtmlFn, InvalidateConfig, ISRHandlerConfig, diff --git a/libs/isr/models/src/isr-handler-config.ts b/libs/isr/models/src/isr-handler-config.ts index 08a8a27e9c..d35e91d156 100644 --- a/libs/isr/models/src/isr-handler-config.ts +++ b/libs/isr/models/src/isr-handler-config.ts @@ -138,6 +138,10 @@ export interface ISRHandlerConfig { * Cached Html compression method, it will use gzip by default if not provided. */ htmlCompressionMethod?: string; + /** + * This callback lets you use custom cache key generation logic. If not provided, it will use the default cache key generation logic. + */ + cacheKeyGenerator?: CacheKeyGeneratorFn; } export interface ServeFromCacheConfig { @@ -158,6 +162,12 @@ export interface InvalidateConfig { providers?: Provider[]; } +export type CacheKeyGeneratorFn = ( + url: string, + allowedQueryParams: string[] | null | undefined, + variant: RenderVariant | null, +) => string; + export type ModifyHtmlCallbackFn = ( req: Request, html: string, diff --git a/libs/isr/server/src/cache-generation.ts b/libs/isr/server/src/cache-generation.ts index 50222179fc..68ac9b98b9 100644 --- a/libs/isr/server/src/cache-generation.ts +++ b/libs/isr/server/src/cache-generation.ts @@ -1,9 +1,14 @@ import { Provider } from '@angular/core'; -import { CacheHandler, ISRHandlerConfig } from '@rx-angular/isr/models'; +import { + CacheHandler, + CacheKeyGeneratorFn, + ISRHandlerConfig, + RenderVariant, +} from '@rx-angular/isr/models'; import { Request, Response } from 'express'; import { ISRLogger } from './isr-logger'; import { defaultModifyGeneratedHtml } from './modify-generated-html'; -import { getCacheKey, getVariant } from './utils/cache-utils'; +import { defaultCacheKeyGenerator, getVariant } from './utils/cache-utils'; import { getRouteISRDataFromHTML } from './utils/get-isr-options'; import { renderUrl, RenderUrlConfig } from './utils/render-url'; @@ -21,7 +26,20 @@ export class CacheGeneration { public isrConfig: ISRHandlerConfig, public cache: CacheHandler, public logger: ISRLogger, - ) {} + ) { + if (!this.isrConfig.cacheKeyGenerator) { + this.isrConfig.cacheKeyGenerator = defaultCacheKeyGenerator; + } + } + getCacheKey: CacheKeyGeneratorFn = ( + url: string, + allowedQueryParams: string[] | null | undefined, + variant: RenderVariant | null, + ) => { + // eslint-disable-next-line @typescript-eslint/no-non-null-assertion + return this.isrConfig.cacheKeyGenerator!(url, allowedQueryParams, variant); + }; + async generate( req: Request, res: Response, @@ -30,7 +48,7 @@ export class CacheGeneration { ): Promise { const { url } = req; const variant = getVariant(req, this.isrConfig.variants); - const cacheKey = getCacheKey( + const cacheKey = this.getCacheKey( url, this.isrConfig.allowedQueryParams, variant, diff --git a/libs/isr/server/src/cache-handlers/filesystem-cache-handler.spec.ts b/libs/isr/server/src/cache-handlers/filesystem-cache-handler.spec.ts index a430924124..d4a027781b 100644 --- a/libs/isr/server/src/cache-handlers/filesystem-cache-handler.spec.ts +++ b/libs/isr/server/src/cache-handlers/filesystem-cache-handler.spec.ts @@ -1,35 +1,35 @@ import { - convertFileNameToRoute, - convertRouteToFileName, + convertCacheKeyToFileName, + convertFileNameToCacheKey, } from './filesystem-cache-handler'; // Use the functions as needed describe('Route and File Name Conversion', () => { - describe('convertRouteToFileName', () => { + describe('convertCacheKeyToFileName', () => { it('should convert a simple route without query parameters', () => { const route = '/users/profile'; const expectedFileName = '__users__profile'; - expect(convertRouteToFileName(route)).toEqual(expectedFileName); + expect(convertCacheKeyToFileName(route)).toEqual(expectedFileName); }); it('should convert a route with query parameters', () => { const route = '/search?query=test'; const expectedFileName = '__search++query=test'; - expect(convertRouteToFileName(route)).toEqual(expectedFileName); + expect(convertCacheKeyToFileName(route)).toEqual(expectedFileName); }); }); - describe('convertFileNameToRoute', () => { + describe('convertFileNameToCacheKey', () => { it('should convert a simple file name back to a route', () => { const fileName = '__users__profile'; const expectedRoute = '/users/profile'; - expect(convertFileNameToRoute(fileName)).toEqual(expectedRoute); + expect(convertFileNameToCacheKey(fileName)).toEqual(expectedRoute); }); it('should convert a file name with "++" back to a route with a query parameter', () => { const fileName = '__search++query=test'; const expectedRoute = '/search?query=test'; - expect(convertFileNameToRoute(fileName)).toEqual(expectedRoute); + expect(convertFileNameToCacheKey(fileName)).toEqual(expectedRoute); }); }); }); diff --git a/libs/isr/server/src/cache-handlers/filesystem-cache-handler.ts b/libs/isr/server/src/cache-handlers/filesystem-cache-handler.ts index e834d8ef2a..a4ee24d3fa 100644 --- a/libs/isr/server/src/cache-handlers/filesystem-cache-handler.ts +++ b/libs/isr/server/src/cache-handlers/filesystem-cache-handler.ts @@ -43,8 +43,8 @@ export class FileSystemCacheHandler extends CacheHandler { } async add( - route: string, html: string | Buffer, + cacheKey: string, config?: CacheISRConfig, ): Promise { return new Promise((resolve, reject) => { @@ -52,13 +52,13 @@ export class FileSystemCacheHandler extends CacheHandler { // convert route to file name (replace / with __) // ex. /details/user/1 => /details__user__1.html - const fileName = convertRouteToFileName(route) + '.html'; + const fileName = convertCacheKeyToFileName(cacheKey) + '.html'; const filePath = getFileFullPath(fileName, this.cacheFolderPath); fs.writeFile(filePath, html, 'utf-8', (err) => { if (err) reject('Error: šŸ’„ The request was not cached!'); - this.cache.set(route, { + this.cache.set(cacheKey, { htmlFilePath: filePath, options: config || { revalidate: null }, createdAt: Date.now(), @@ -70,26 +70,26 @@ export class FileSystemCacheHandler extends CacheHandler { }); } - get(route: string): Promise { + get(cacheKey: string): Promise { return new Promise((resolve, reject) => { // ex: route is like: / or /details/user/1 // cachedUrl is like: { html: 'full-path-to-cache/__filename.html', options: { revalidate: 60 } } - const cachedRoute = this.cache.get(route); + const cachedMeta = this.cache.get(cacheKey); - if (cachedRoute) { + if (cachedMeta) { // on html field we have saved path to file - this.readFromFile(cachedRoute.htmlFilePath, cachedRoute.isBuffer) + this.readFromFile(cachedMeta.htmlFilePath, cachedMeta.isBuffer) .then((html) => { const cacheData: CacheData = { html, - options: cachedRoute.options, - createdAt: cachedRoute.createdAt, + options: cachedMeta.options, + createdAt: cachedMeta.createdAt, }; resolve(cacheData); }) .catch((err) => { reject( - `Error: šŸ’„ Cannot read cache file for route ${route}: ${cachedRoute.htmlFilePath}, ${err}`, + `Error: šŸ’„ Cannot read cache file for route ${cacheKey}: ${cachedMeta.htmlFilePath}, ${err}`, ); }); } else { @@ -98,29 +98,29 @@ export class FileSystemCacheHandler extends CacheHandler { }); } - has(route: string): Promise { - return Promise.resolve(this.cache.has(route)); + has(cacheKey: string): Promise { + return Promise.resolve(this.cache.has(cacheKey)); } - delete(route: string): Promise { + delete(cacheKey: string): Promise { return new Promise((resolve, reject) => { - const cacheData = this.cache.get(route); + const cacheMeta = this.cache.get(cacheKey); - if (cacheData) { - fs.unlink(cacheData.htmlFilePath, (err) => { + if (cacheMeta) { + fs.unlink(cacheMeta.htmlFilePath, (err) => { if (err) { reject( 'Error: šŸ’„ Cannot delete cache file for route ' + - route + - `: ${cacheData.htmlFilePath}`, + cacheKey + + `: ${cacheMeta.htmlFilePath}`, ); } else { - this.cache.delete(route); + this.cache.delete(cacheKey); resolve(true); } }); } else { - reject(`Error: šŸ’„ Route: ${route} is not cached.`); + reject(`Error: šŸ’„ CacheKey: ${cacheKey} is not cached.`); } }); } @@ -172,19 +172,19 @@ export class FileSystemCacheHandler extends CacheHandler { const filePath = join(this.cacheFolderPath, file); const fileName = file.replace('.html', ''); // remove .html extension - const route = convertFileNameToRoute(fileName); + const cacheKey = convertFileNameToCacheKey(fileName); const html = fs.readFileSync(filePath, 'utf-8'); const { revalidate, errors } = getRouteISRDataFromHTML(html); - this.cache.set(route, { + this.cache.set(cacheKey, { htmlFilePath: filePath, // full path to file options: { revalidate, errors }, createdAt: Date.now(), isBuffer: false, }); - console.log('The request was stored in cache! Route: ', route); + console.log('The request was stored in cache! Route: ', cacheKey); } } @@ -233,16 +233,16 @@ export class FileSystemCacheHandler extends CacheHandler { '', ); - let route = ''; + let cacheKey = ''; if (pathWithoutPrerenderedPagesPath === '/index.html') { - route = '/'; + cacheKey = '/'; } else { - route = pathWithoutPrerenderedPagesPath + cacheKey = pathWithoutPrerenderedPagesPath .substring(0) .replace('/index.html', ''); } - const newFileName = convertRouteToFileName(route); + const newFileName = convertCacheKeyToFileName(cacheKey); const newFilePath = getFileFullPath(newFileName, this.cacheFolderPath) + '.html'; @@ -348,12 +348,12 @@ function getFileFullPath(fileName: string, cacheFolderPath: string): string { * This function takes a string parameter 'route' and replaces all '/' characters in it with '__' and returns the modified string. * * @internal - * @param {string} route - The string representing the route to be converted into a file name. + * @param {string} cacheKey - The string representing the route to be converted into a file name. * @returns {string} The modified string representing the file name obtained by replacing '/' characters with '__'. */ -export function convertRouteToFileName(route: string): string { +export function convertCacheKeyToFileName(cacheKey: string): string { // replace all occurrences of '/' character in the 'route' string with '__' using regular expression - return route + return cacheKey .replace(new RegExp('/', 'g'), '__') .replace(new RegExp('\\?', 'g'), '++'); } @@ -362,7 +362,7 @@ export function convertRouteToFileName(route: string): string { * This function takes a string parameter 'fileName' and replaces all '__' strings in it with '/' and returns the modified string. * @param fileName - The string representing the file name to be converted into a route. */ -export function convertFileNameToRoute(fileName: string): string { +export function convertFileNameToCacheKey(fileName: string): string { // replace all occurrences of '__' string in the 'fileName' string with '/' using regular expression return fileName .replace(new RegExp('\\+\\+', 'g'), '?') diff --git a/libs/isr/server/src/cache-handlers/in-memory-cache-handler.ts b/libs/isr/server/src/cache-handlers/in-memory-cache-handler.ts index efc77570c3..2ec1c0c555 100644 --- a/libs/isr/server/src/cache-handlers/in-memory-cache-handler.ts +++ b/libs/isr/server/src/cache-handlers/in-memory-cache-handler.ts @@ -16,8 +16,8 @@ export class InMemoryCacheHandler extends CacheHandler { } add( - url: string, html: string | Buffer, + cacheKey: string, config: CacheISRConfig = defaultCacheISRConfig, ): Promise { return new Promise((resolve) => { @@ -26,15 +26,15 @@ export class InMemoryCacheHandler extends CacheHandler { options: config, createdAt: Date.now(), }; - this.cache.set(url, cacheData); + this.cache.set(cacheKey, cacheData); resolve(); }); } - get(url: string): Promise { + get(cacheKey: string): Promise { return new Promise((resolve, reject) => { - if (this.cache.has(url)) { - resolve(this.cache.get(url) as CacheData); + if (this.cache.has(cacheKey)) { + resolve(this.cache.get(cacheKey) as CacheData); } reject('This url does not exist in cache!'); }); @@ -46,15 +46,15 @@ export class InMemoryCacheHandler extends CacheHandler { }); } - has(url: string): Promise { + has(cacheKey: string): Promise { return new Promise((resolve) => { - resolve(this.cache.has(url)); + resolve(this.cache.has(cacheKey)); }); } - delete(url: string): Promise { + delete(cacheKey: string): Promise { return new Promise((resolve) => { - resolve(this.cache.delete(url)); + resolve(this.cache.delete(cacheKey)); }); } diff --git a/libs/isr/server/src/isr-handler.ts b/libs/isr/server/src/isr-handler.ts index cd633b0d06..011bff61bf 100644 --- a/libs/isr/server/src/isr-handler.ts +++ b/libs/isr/server/src/isr-handler.ts @@ -11,7 +11,7 @@ import { NextFunction, Request, Response } from 'express'; import { CacheGeneration } from './cache-generation'; import { InMemoryCacheHandler } from './cache-handlers/in-memory-cache-handler'; import { ISRLogger } from './isr-logger'; -import { getCacheKey, getVariant } from './utils/cache-utils'; +import { getVariant } from './utils/cache-utils'; import { setCompressHeader } from './utils/compression-utils'; export class ISRHandler { @@ -149,7 +149,7 @@ export class ISRHandler { for (const variant of variants) { result.push({ url, - cacheKey: getCacheKey( + cacheKey: this.cacheGeneration.getCacheKey( url, this.isrConfig.allowedQueryParams, variant, @@ -172,7 +172,7 @@ export class ISRHandler { ): Promise { try { const variant = getVariant(req, this.isrConfig.variants); - const cacheKey = getCacheKey( + const cacheKey = this.cacheGeneration.getCacheKey( req.url, this.isrConfig.allowedQueryParams, variant, diff --git a/libs/isr/server/src/isr-logger.ts b/libs/isr/server/src/isr-logger.ts index 9f57ed7f2a..f989a4e2f1 100644 --- a/libs/isr/server/src/isr-logger.ts +++ b/libs/isr/server/src/isr-logger.ts @@ -12,6 +12,7 @@ export class ISRLogger { * @internal */ log(message?: string, ...optionalParams: unknown[]): void { + // eslint-disable-next-line @typescript-eslint/no-unused-expressions this.showLogs && console.log(message, ...optionalParams); } } diff --git a/libs/isr/server/src/utils/cache-utils.spec.ts b/libs/isr/server/src/utils/cache-utils.spec.ts index 80281f11b0..5c9f4d0423 100644 --- a/libs/isr/server/src/utils/cache-utils.spec.ts +++ b/libs/isr/server/src/utils/cache-utils.spec.ts @@ -1,28 +1,28 @@ import { RenderVariant } from '../../../models/src'; -import { getCacheKey } from './cache-utils'; +import { defaultCacheKeyGenerator } from './cache-utils'; describe('getCacheKey', () => { it('should return the URL without query parameters when none are allowed', () => { const url = '/page?param1=value1¶m2=value2'; - const result = getCacheKey(url, [], null); + const result = defaultCacheKeyGenerator(url, [], null); expect(result).toBe('/page'); }); it('should return the URL with query parameters when it is null or undefined', () => { const url = '/page?param1=value1¶m2=value2'; - const result = getCacheKey(url, null, null); + const result = defaultCacheKeyGenerator(url, null, null); expect(result).toBe('/page?param1=value1¶m2=value2'); }); it('should include only allowed query parameters in the result', () => { const url = '/page?allowed=value&disallowed=value'; - const result = getCacheKey(url, ['allowed'], null); + const result = defaultCacheKeyGenerator(url, ['allowed'], null); expect(result).toBe('/page?allowed=value'); }); it('should exclude disallowed query parameters', () => { const url = '/page?allowed=value&disallowed=value'; - const result = getCacheKey(url, ['allowed'], null); + const result = defaultCacheKeyGenerator(url, ['allowed'], null); expect(result).not.toContain('disallowed=value'); }); @@ -32,7 +32,7 @@ describe('getCacheKey', () => { identifier: 'variant123', detectVariant: () => true, }; - const result = getCacheKey(url, ['param'], variant); + const result = defaultCacheKeyGenerator(url, ['param'], variant); expect(result).toBe('/page?param=value'); }); }); diff --git a/libs/isr/server/src/utils/cache-utils.ts b/libs/isr/server/src/utils/cache-utils.ts index 898bf8a8c2..c329bec5f4 100644 --- a/libs/isr/server/src/utils/cache-utils.ts +++ b/libs/isr/server/src/utils/cache-utils.ts @@ -1,7 +1,7 @@ import { RenderVariant } from '@rx-angular/isr/models'; import { Request } from 'express'; -export const getCacheKey = ( +export const defaultCacheKeyGenerator = ( url: string, allowedQueryParams: string[] | null | undefined, variant: RenderVariant | null, diff --git a/libs/state/CHANGELOG.md b/libs/state/CHANGELOG.md index f246e94a6f..40c5c24fc5 100644 --- a/libs/state/CHANGELOG.md +++ b/libs/state/CHANGELOG.md @@ -2,6 +2,15 @@ This file was generated using [@jscutlery/semver](https://github.com/jscutlery/semver). +# [18.1.0](https://github.com/rx-angular/rx-angular/compare/state@18.0.0...state@18.1.0) (2024-10-03) + + +### Features + +* **state:** expose asReadOnly() when create state instance using functional approach ([60c4aa4](https://github.com/rx-angular/rx-angular/commit/60c4aa45ddbb45c281e362db4e1493abcc7f6960)), closes [#1789](https://github.com/rx-angular/rx-angular/issues/1789) + + + # [18.0.0](https://github.com/rx-angular/rx-angular/compare/state@17.2.0...state@18.0.0) (2024-05-31) diff --git a/libs/state/README.md b/libs/state/README.md index 9c2d2fe400..8a42464bda 100644 --- a/libs/state/README.md +++ b/libs/state/README.md @@ -63,7 +63,7 @@ export class MovieListComponent { The functional approach will be the new default approach for newer versions. -Read the [Migration Guide](https://rx-angular.io/docs/state/setup#migrate-to-new-functional-api) for a migration guide explaining how to upgrade your codebase to the new API. +Read the [Migration Guide](https://rx-angular.io/docs/state/getting-started#migrate-to-new-functional-api) for a migration guide explaining how to upgrade your codebase to the new API. ### Class Based @@ -147,13 +147,15 @@ Optimize state selections and data transfer, ensure only the necessary data is t | RxAngular | Angular | | --------- | ---------- | -| `^1.0.0` | `>=12.0.0` | -| `^2.0.0` | `>=13.0.0` | -| `^14.0.0` | `^14.0.0` | -| `^15.0.0` | `^15.0.0` | +| `^18.0.0` | `^18.0.0` | +| `^17.0.0` | `^17.0.0` | | `^16.0.0` | `^16.0.0` | +| `^15.0.0` | `^15.0.0` | +| `^14.0.0` | `^14.0.0` | +| `^2.0.0` | `>=13.0.0` | +| `^1.0.0` | `>=12.0.0` | -Regarding the compatibility with RxJS, we generally stick to the compatibilities of the Angular framework itself, for more information about the compatibilities of Angular itself see the [official guide](https://angular.io/guide/versions). +Regarding the compatibility with RxJS, we generally stick to the compatibilities of the Angular framework itself, for more information about the compatibilities of Angular itself see the [official guide](https://angular.dev/reference/versions). ## Contribution diff --git a/libs/state/actions/src/lib/actions.factory.ts b/libs/state/actions/src/lib/actions.factory.ts index ece61051dd..6246891617 100644 --- a/libs/state/actions/src/lib/actions.factory.ts +++ b/libs/state/actions/src/lib/actions.factory.ts @@ -70,7 +70,9 @@ export class RxActionFactory> implements OnDestroy { * actions.search$.subscribe(); // string Observable * */ - create = {}>(transforms?: U): RxActions { + create = object>( + transforms?: U, + ): RxActions { const subjectMap: SubjectMap = {} as SubjectMap; const effectMap: EffectMap = {} as EffectMap; this.subjects.push(subjectMap); @@ -85,7 +87,7 @@ export class RxActionFactory> implements OnDestroy { effectMap, transformsMap: transforms, errorHandler: this.errorHandler ?? null, - }) + }), ) as any as RxActions; } diff --git a/libs/state/actions/src/lib/rx-actions.spec.ts b/libs/state/actions/src/lib/rx-actions.spec.ts index 1da1963240..66321b8a10 100644 --- a/libs/state/actions/src/lib/rx-actions.spec.ts +++ b/libs/state/actions/src/lib/rx-actions.spec.ts @@ -197,7 +197,7 @@ describe('actions fn', () => { fixture.componentInstance.actions.resize(42); expect(customErrorHandler.handleError).toHaveBeenCalledWith( - new Error('something went wrong') + new Error('something went wrong'), ); }); @@ -215,7 +215,7 @@ type Actions = { }; function setupComponent< Actions extends object, - Transforms extends ActionTransforms = {} + Transforms extends ActionTransforms = object, >(cfg?: { transformFns?: Transforms; providers?: Provider[] }) { let providers = []; if (Array.isArray(cfg?.providers)) { diff --git a/libs/state/actions/src/lib/rx-actions.ts b/libs/state/actions/src/lib/rx-actions.ts index 631efd4278..72e9e1085a 100644 --- a/libs/state/actions/src/lib/rx-actions.ts +++ b/libs/state/actions/src/lib/rx-actions.ts @@ -45,7 +45,7 @@ import { */ export function rxActions< T extends Partial, - U extends ActionTransforms = {} + U extends ActionTransforms = object, >(setupFn?: (cfg: { transforms: (t: U) => void }) => void): RxActions { // Assert rxAction usage assertInInjectionContext(rxActions); @@ -64,6 +64,7 @@ export function rxActions< }); // run setup function if given + // eslint-disable-next-line @typescript-eslint/no-unused-expressions setupFn && setupFn({ transforms: (t: U) => (transformsMap = t), @@ -78,6 +79,6 @@ export function rxActions< transformsMap, effectMap, errorHandler, - }) + }), ) as any as RxActions; } diff --git a/libs/state/actions/src/lib/types.ts b/libs/state/actions/src/lib/types.ts index 7b85c611a7..f83ba71b08 100644 --- a/libs/state/actions/src/lib/types.ts +++ b/libs/state/actions/src/lib/types.ts @@ -19,18 +19,17 @@ type Select = K extends keyof U ? U[K] : never; type ExtractString = Extract; // Helper to get either the params of the transform function, or if the function is not present a fallback type -type FunctionParamsOrValueType = InferArguments< - Select -> extends never - ? [F] - : InferArguments>; +type FunctionParamsOrValueType = + InferArguments> extends never + ? [F] + : InferArguments>; -export type Actions = {}; +export type Actions = object; export type SubjectMap = { [K in keyof T]: Subject }; export type EffectMap = { [K in keyof T]: Subscription }; -export type ActionTransforms = Partial<{ +export type ActionTransforms = Partial<{ [K in keyof T]: (...args: any[]) => T[K]; }>; @@ -38,7 +37,7 @@ export type ActionDispatchFn = ( ...value: InstanceOrType ) => void; -export type ActionDispatchers = { +export type ActionDispatchers = { [K in keyof T]: ActionDispatchFn< FunctionParamsOrValueType> >; @@ -51,14 +50,14 @@ export type ActionObservables = { export type ActionEffects = { [K in ExtractString as `on${Capitalize}`]: ( fn: OperatorFunction, - sideEffectFn?: (value: R) => void + sideEffectFn?: (value: R) => void, ) => () => void; }; -export type RxActions = ActionDispatchers< - T, - U -> & +export type RxActions< + T extends Actions, + U extends object = T, +> = ActionDispatchers & ActionObservables & ActionEffects & ((slice: Partial) => void) & { diff --git a/libs/state/package.json b/libs/state/package.json index 10a3c8d48f..d99b21422c 100644 --- a/libs/state/package.json +++ b/libs/state/package.json @@ -1,6 +1,6 @@ { "name": "@rx-angular/state", - "version": "18.0.0", + "version": "18.1.0", "description": "@rx-angular/state is a light-weight, flexible, strongly typed and tested tool dedicated to reduce the complexity of managing component state and side effects in angular", "publishConfig": { "access": "public" diff --git a/libs/state/perf/core/transformation-helpers/one-of.suite.ts b/libs/state/perf/core/transformation-helpers/one-of.suite.ts index a1323847e2..947b41b835 100644 --- a/libs/state/perf/core/transformation-helpers/one-of.suite.ts +++ b/libs/state/perf/core/transformation-helpers/one-of.suite.ts @@ -7,8 +7,8 @@ export const oneOfSuite: BenchmarkSuite = { expression: expression, 'Array#includes2': arrayIncludes2, 'Object#prop2': objectProperty2, - expression2: expression2 - } + expression2: expression2, + }, }; function arrayIncludes() { @@ -19,15 +19,17 @@ function objectProperty() { const obj: any = { string: true, symbol: true, - number: true + number: true, }; + // eslint-disable-next-line @typescript-eslint/no-unused-expressions obj[typeof 'test']; } function expression() { + // eslint-disable-next-line @typescript-eslint/no-unused-expressions,no-constant-binary-expression typeof 'test' === 'string' || - typeof 'test' === 'symbol' || - typeof 'test' === 'number'; + typeof 'test' === 'symbol' || + typeof 'test' === 'number'; } const arr = ['string', 'symbol', 'number']; @@ -39,15 +41,17 @@ function arrayIncludes2() { const obj: any = { string: true, symbol: true, - number: true + number: true, }; function objectProperty2() { + // eslint-disable-next-line @typescript-eslint/no-unused-expressions obj[typeof 'test']; } const typeOf = typeof 'test'; function expression2() { + // eslint-disable-next-line @typescript-eslint/no-unused-expressions typeOf === 'string' || typeOf === 'symbol' || typeOf === 'number'; } diff --git a/libs/state/spec/rx-state.spec.ts b/libs/state/spec/rx-state.spec.ts index 07407f6965..1bde5ad2ec 100644 --- a/libs/state/spec/rx-state.spec.ts +++ b/libs/state/spec/rx-state.spec.ts @@ -379,6 +379,31 @@ describe(rxState, () => { expect(accumulator).toHaveBeenCalled(); }); }); + + describe('asReadOnly', () => { + it('should throw error when trying to call set from readOnlystate', () => { + const { component } = setupComponent<{ count: number }>(); + + const readOnlyState = component.state.asReadOnly(); + + expect((): void => { + readOnlyState['set']( + 'count', + (state: { count: number }) => state.count + 1, + ); + }).toThrowError('readOnlyState.set is not a function'); + }); + + it('should throw error when trying to call connect from readOnlystate', () => { + const { component } = setupComponent<{ count: number }>(); + + const readOnlyState = component.state.asReadOnly(); + + expect((): void => { + readOnlyState['connect']('count', of(10)); + }).toThrowError('readOnlyState.connect is not a function'); + }); + }); }); type ITestComponent = { diff --git a/libs/state/src/lib/rx-state.ts b/libs/state/src/lib/rx-state.ts index c963a8b6b3..d82283ec13 100644 --- a/libs/state/src/lib/rx-state.ts +++ b/libs/state/src/lib/rx-state.ts @@ -12,13 +12,14 @@ export type RxState = Pick< | 'signal' | 'computed' | 'computedFrom' + | 'asReadOnly' >; export type RxStateSetupFn = ( rxState: Pick< RxState, 'connect' | 'set' | 'get' | 'select' | 'setAccumulator' - > + >, ) => void; /** @@ -46,7 +47,7 @@ export type RxStateSetupFn = ( * */ export function rxState( - setupFn?: RxStateSetupFn + setupFn?: RxStateSetupFn, ): RxState { assertInInjectionContext(rxState); @@ -65,6 +66,7 @@ export function rxState( computedFrom: legacyState.computedFrom.bind(legacyState), $: legacyState.$, setAccumulator: legacyState.setAccumulator.bind(legacyState), + asReadOnly: legacyState.asReadOnly.bind(legacyState), }; setupFn?.(state); diff --git a/libs/template/CHANGELOG.md b/libs/template/CHANGELOG.md index 3ef2496512..e9117a4c6d 100644 --- a/libs/template/CHANGELOG.md +++ b/libs/template/CHANGELOG.md @@ -2,6 +2,17 @@ This file was generated using [@jscutlery/semver](https://github.com/jscutlery/semver). +## [18.0.3](https://github.com/rx-angular/rx-angular/compare/template@18.0.2...template@18.0.3) (2024-10-03) + + +### Bug Fixes + +* **template:** enforce absolute positioned children. fixes [#1783](https://github.com/rx-angular/rx-angular/issues/1783) ([cc26bcd](https://github.com/rx-angular/rx-angular/commit/cc26bcd3828a93959bff6110a76d570a2ffd1179)) +* **template:** properly calculate anchorItem ([04fb418](https://github.com/rx-angular/rx-angular/commit/04fb418a82abea2c382b0d06ce50783419893640)) +* **template:** wait for scroll until container is init. fixes [#1779](https://github.com/rx-angular/rx-angular/issues/1779) ([e6727bf](https://github.com/rx-angular/rx-angular/commit/e6727bfb7a0341198f07ba112c7d26b40484b96c)) + + + ## [18.0.2](https://github.com/rx-angular/rx-angular/compare/template@18.0.1...template@18.0.2) (2024-09-04) diff --git a/libs/template/README.md b/libs/template/README.md index 8e5ea83770..57d3ea123a 100644 --- a/libs/template/README.md +++ b/libs/template/README.md @@ -68,10 +68,12 @@ export class AnyComponent {} | RxAngular | Angular | | --------- | ---------- | -| `^1.0.0` | `>=12.0.0` | -| `^2.0.0` | `>=13.0.0` | -| `^14.0.0` | `^14.0.0` | -| `^15.0.0` | `^15.0.0` | +| `^18.0.0` | `^18.0.0` | +| `^17.0.0` | `^17.0.0` | | `^16.0.0` | `^16.0.0` | +| `^15.0.0` | `^15.0.0` | +| `^14.0.0` | `^14.0.0` | +| `^2.0.0` | `>=13.0.0` | +| `^1.0.0` | `>=12.0.0` | -Regarding the compatibility with RxJS, we generally stick to the compatibilities of the Angular framework itself, for more information about the compatibilities of Angular itself see the [official guide](https://angular.io/guide/versions). +Regarding the compatibility with RxJS, we generally stick to the compatibilities of the Angular framework itself, for more information about the compatibilities of Angular itself see the [official guide](https://angular.dev/reference/versions). diff --git a/libs/template/experimental/virtual-scrolling/src/lib/scroll-strategies/autosize-virtual-scroll-strategy.ts b/libs/template/experimental/virtual-scrolling/src/lib/scroll-strategies/autosize-virtual-scroll-strategy.ts index 0168d72d2c..a405d0d67b 100644 --- a/libs/template/experimental/virtual-scrolling/src/lib/scroll-strategies/autosize-virtual-scroll-strategy.ts +++ b/libs/template/experimental/virtual-scrolling/src/lib/scroll-strategies/autosize-virtual-scroll-strategy.ts @@ -14,6 +14,7 @@ import { merge, MonoTypeOperatorFunction, Observable, + of, pairwise, ReplaySubject, Subject, @@ -28,6 +29,7 @@ import { mergeMap, startWith, switchMap, + take, takeUntil, takeWhile, tap, @@ -225,6 +227,14 @@ export class AutoSizeVirtualScrollStrategy< private readonly _scrolledIndex$ = new ReplaySubject(1); /** @internal */ readonly scrolledIndex$ = this._scrolledIndex$.pipe(distinctUntilChanged()); + /** + * @internal + * The action used to kick off the scroll process + */ + private scrollToTrigger$ = new Subject<{ + scrollTop: number; + behavior?: ScrollBehavior; + }>(); /** @internal */ private _scrolledIndex = 0; /** @internal */ @@ -332,6 +342,7 @@ export class AutoSizeVirtualScrollStrategy< this.maintainVirtualItems(); this.calcRenderedRange(); this.positionElements(); + this.listenToScrollTrigger(); } /** @internal */ @@ -352,7 +363,7 @@ export class AutoSizeVirtualScrollStrategy< if (_index !== this.scrolledIndex) { const scrollTop = this.calcInitialPosition(_index); this._scrollToIndex = _index; - this.scrollTo(scrollTop, behavior); + this.scrollToTrigger$.next({ scrollTop, behavior }); } } @@ -493,10 +504,13 @@ export class AutoSizeVirtualScrollStrategy< index: dataLength, offset: 0, }, - -calculateVisibleContainerSize( - this.containerSize, - this.scrollTopWithOutOffset, - this.scrollTopAfterOffset, + Math.max( + -size, + -calculateVisibleContainerSize( + this.containerSize, + this.scrollTopWithOutOffset, + this.scrollTopAfterOffset, + ), ), ); this.calcAnchorScrollTop(); @@ -796,6 +810,25 @@ export class AutoSizeVirtualScrollStrategy< .subscribe(); } + /** listen to API initiated scroll triggers (e.g. initialScrollIndex) */ + private listenToScrollTrigger(): void { + this.scrollToTrigger$ + .pipe( + switchMap((scrollTo) => + // wait until containerRect at least emitted once + this.containerSize === 0 + ? this.viewport!.containerRect$.pipe( + map(() => scrollTo), + take(1), + ) + : of(scrollTo), + ), + this.until$(), + ) + .subscribe(({ scrollTop, behavior }) => { + this.scrollTo(scrollTop, behavior); + }); + } /** @internal */ private adjustContentSize(position: number) { let newContentSize = position; diff --git a/libs/template/experimental/virtual-scrolling/src/lib/virtual-scroll-viewport.component.scss b/libs/template/experimental/virtual-scrolling/src/lib/virtual-scroll-viewport.component.scss index 9359a3e845..d16f86983b 100644 --- a/libs/template/experimental/virtual-scrolling/src/lib/virtual-scroll-viewport.component.scss +++ b/libs/template/experimental/virtual-scrolling/src/lib/virtual-scroll-viewport.component.scss @@ -12,6 +12,10 @@ position: absolute; top: 0; bottom: 0; + + > * { + position: absolute; + } } &__sentinel { width: 1px; diff --git a/libs/template/package.json b/libs/template/package.json index b1d974f152..0698c7d734 100644 --- a/libs/template/package.json +++ b/libs/template/package.json @@ -1,6 +1,6 @@ { "name": "@rx-angular/template", - "version": "18.0.2", + "version": "18.0.3", "description": "**Fully** Reactive Component Template Rendering in Angular. @rx-angular/template aims to be a reflection of Angular's built in renderings just reactive.", "publishConfig": { "access": "public" diff --git a/nx.json b/nx.json index 62cb8b7eda..01ed7a7221 100644 --- a/nx.json +++ b/nx.json @@ -31,7 +31,6 @@ "namedInputs": { "default": ["{projectRoot}/**/*", "sharedGlobals", "projectSpecificFiles"], "sharedGlobals": [ - "{workspaceRoot}/angular.json", "{workspaceRoot}/tsconfig.json", "{workspaceRoot}/nx.json" ], @@ -106,5 +105,5 @@ }, "nxCloudAccessToken": "OTg2OGFkNmMtNzA5Zi00MjBiLWFhMmQtOGYwNTQ1MjM1ZjQ3fHJlYWQtd3JpdGU=", "parallel": 1, - "defaultBase": "origin/main" + "useLegacyCache": true } diff --git a/package.json b/package.json index 7fb5290743..7464b02fc3 100644 --- a/package.json +++ b/package.json @@ -39,23 +39,23 @@ "libs/**" ], "dependencies": { - "@angular/animations": "18.0.1", - "@angular/cdk": "18.0.0", - "@angular/cdk-experimental": "18.0.0", - "@angular/common": "18.0.1", - "@angular/compiler": "18.0.1", - "@angular/core": "18.0.1", - "@angular/forms": "18.0.1", - "@angular/material": "18.0.0", - "@angular/platform-browser": "18.0.1", - "@angular/platform-browser-dynamic": "18.0.1", - "@angular/platform-server": "18.0.1", - "@angular/router": "18.0.1", - "@angular/ssr": "18.0.2", - "@typescript-eslint/utils": "7.4.0", + "@angular/animations": "18.2.9", + "@angular/cdk": "18.2.9", + "@angular/cdk-experimental": "18.2.9", + "@angular/common": "18.2.9", + "@angular/compiler": "18.2.9", + "@angular/core": "18.2.9", + "@angular/forms": "18.2.9", + "@angular/material": "18.2.9", + "@angular/platform-browser": "18.2.9", + "@angular/platform-browser-dynamic": "18.2.9", + "@angular/platform-server": "18.2.9", + "@angular/router": "18.2.9", + "@angular/ssr": "18.2.9", + "@typescript-eslint/utils": "7.18.0", "bootstrap": "^5.2.3", "compression": "^1.7.4", - "eslint-plugin-unused-imports": "^3.1.0", + "eslint-plugin-unused-imports": "^4.1.4", "ngx-skeleton-loader": "^7.0.0", "normalize-css": "^2.3.1", "react-player": "^2.12.0", @@ -64,56 +64,56 @@ "rxjs-zone-less": "^1.0.0", "tslib": "^2.4.1", "zlib": "^1.0.5", - "zone.js": "0.14.4" + "zone.js": "0.14.10" }, "devDependencies": { - "@angular-devkit/build-angular": "18.0.2", - "@angular-devkit/core": "18.0.2", - "@angular-devkit/schematics": "18.0.2", - "@angular-eslint/eslint-plugin": "18.0.0", - "@angular-eslint/eslint-plugin-template": "18.0.0", - "@angular-eslint/template-parser": "18.0.0", - "@angular/build": "^18.0.2", - "@angular/cli": "~18.0.2", - "@angular/compiler-cli": "18.0.1", - "@angular/language-service": "18.0.1", + "@angular-devkit/build-angular": "18.2.9", + "@angular-devkit/core": "18.2.9", + "@angular-devkit/schematics": "18.2.9", + "@angular-eslint/eslint-plugin": "18.4.0", + "@angular-eslint/eslint-plugin-template": "18.4.0", + "@angular-eslint/template-parser": "18.4.0", + "@angular/build": "18.2.9", + "@angular/cli": "~18.2.0", + "@angular/compiler-cli": "18.2.9", + "@angular/language-service": "18.2.9", "@commitlint/cli": "^19.2.1", "@commitlint/config-angular": "^19.1.0", "@jscutlery/semver": "^4.1.0", - "@nx-plus/docusaurus": "14.1.0", - "@nx/angular": "19.1.1", - "@nx/cypress": "19.1.1", - "@nx/eslint": "19.1.1", - "@nx/eslint-plugin": "19.1.1", - "@nx/jest": "19.1.1", - "@nx/js": "19.1.1", - "@nx/node": "19.1.1", - "@nx/workspace": "19.1.1", - "@schematics/angular": "18.0.2", - "@swc-node/register": "1.8.0", - "@swc/core": "~1.3.85", + "@nx-plus/docusaurus": "patch:@nx-plus/docusaurus@npm%3A14.1.0#~/.yarn/patches/@nx-plus-docusaurus-npm-14.1.0-b526e34c01.patch", + "@nx/angular": "20.1.0", + "@nx/cypress": "20.1.0", + "@nx/eslint": "20.1.0", + "@nx/eslint-plugin": "20.1.0", + "@nx/jest": "20.1.0", + "@nx/js": "20.1.0", + "@nx/node": "20.1.0", + "@nx/workspace": "20.1.0", + "@schematics/angular": "18.2.9", + "@swc-node/register": "1.9.2", + "@swc/core": "1.5.7", "@types/benchmark": "^2.1.0", "@types/compression": "^1.7.5", "@types/express": "4.17.21", - "@types/jest": "^29.4.0", + "@types/jest": "29.5.14", "@types/klaw-sync": "^6.0.0", "@types/lodash": "^4.14.196", "@types/node": "^18.16.9", - "@typescript-eslint/eslint-plugin": "7.4.0", - "@typescript-eslint/parser": "7.4.0", + "@typescript-eslint/eslint-plugin": "8.15.0", + "@typescript-eslint/parser": "8.15.0", "autoprefixer": "^10.4.0", "benchmark": "^2.1.4", "browser-sync": "^3.0.0", "cpx": "^1.5.0", - "cypress": "13.9.0", - "eslint": "8.57.0", + "cypress": "13.15.2", + "eslint": "^8.57.1", "eslint-config-prettier": "^9.1.0", - "eslint-plugin-cypress": "2.15.1", + "eslint-plugin-cypress": "^4.1.0", "eslint-plugin-simple-import-sort": "^12.0.0", "express": "4.18.2", "husky": "^9.0.11", - "jest": "^29.4.1", - "jest-environment-jsdom": "29.5.0", + "jest": "29.7.0", + "jest-environment-jsdom": "29.7.0", "jest-preset-angular": "14.1.0", "jsonc-eslint-parser": "^2.1.0", "klaw-sync": "^6.0.0", @@ -121,8 +121,8 @@ "lodash": "^4.17.21", "markdown-link-check": "^3.11.2", "ng-morph": "^4.0.3", - "ng-packagr": "18.0.0", - "nx": "19.1.1", + "ng-packagr": "18.2.1", + "nx": "20.1.0", "postcss": "^8.4.6", "postcss-import": "14.1.0", "postcss-preset-env": "7.5.0", @@ -130,7 +130,7 @@ "prettier": "3.2.5", "ts-jest": "29.1.0", "ts-node": "10.9.1", - "typescript": "5.4.3" + "typescript": "5.5.4" }, "packageManager": "yarn@4.4.1" } diff --git a/yarn.lock b/yarn.lock index caa7740595..0bf9f3b99e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -12,10 +12,10 @@ __metadata: languageName: node linkType: hard -"@adobe/css-tools@npm:^4.0.1": - version: 4.3.1 - resolution: "@adobe/css-tools@npm:4.3.1" - checksum: 10c0/05672719b544cc0c21ae3ed0eb6349bf458e9d09457578eeeb07cf0f696469ac6417e9c9be1b129e5d6a18098a061c1db55b2275591760ef30a79822436fcbfa +"@adobe/css-tools@npm:~4.3.3": + version: 4.3.3 + resolution: "@adobe/css-tools@npm:4.3.3" + checksum: 10c0/e76e712df713964b87cdf2aca1f0477f19bebd845484d5fcba726d3ec7782366e2f26ec8cb2dcfaf47081a5c891987d8a9f5c3f30d11e1eb3c1848adc27fcb24 languageName: node linkType: hard @@ -206,84 +206,102 @@ __metadata: languageName: node linkType: hard -"@angular-devkit/architect@npm:0.1800.2": - version: 0.1800.2 - resolution: "@angular-devkit/architect@npm:0.1800.2" +"@angular-devkit/architect@npm:0.1802.11": + version: 0.1802.11 + resolution: "@angular-devkit/architect@npm:0.1802.11" + dependencies: + "@angular-devkit/core": "npm:18.2.11" + rxjs: "npm:7.8.1" + dependenciesMeta: + esbuild: + built: true + puppeteer: + built: true + checksum: 10c0/286a5519bbd5ed3e3cdbb4d1110daa5831eeef785f61fbf17e4f5244a31f72c847e4f2b4fbecff5eaba1b1482477cf6730fa8ee9c738bf15d684ee260b509f30 + languageName: node + linkType: hard + +"@angular-devkit/architect@npm:0.1802.9": + version: 0.1802.9 + resolution: "@angular-devkit/architect@npm:0.1802.9" dependencies: - "@angular-devkit/core": "npm:18.0.2" + "@angular-devkit/core": "npm:18.2.9" rxjs: "npm:7.8.1" - checksum: 10c0/648f39de230bea2f0eb833c2f38500b60daa96b16932987aacdc4835602e448d8ab207ac0ba9198c3d0a2902606ef51cf12d71342ec85d637dcbd2bed0070a9e + dependenciesMeta: + esbuild: + built: true + puppeteer: + built: true + checksum: 10c0/3dad5c84ef020fea542eb2113bef03767abc6d1627e314f018c7d3cbe8794c2a19de8be2f73a417e64fe17dbca37518bd0abbe070d68c57abcc7761a77291ebf languageName: node linkType: hard -"@angular-devkit/build-angular@npm:18.0.2": - version: 18.0.2 - resolution: "@angular-devkit/build-angular@npm:18.0.2" +"@angular-devkit/build-angular@npm:18.2.9": + version: 18.2.9 + resolution: "@angular-devkit/build-angular@npm:18.2.9" dependencies: "@ampproject/remapping": "npm:2.3.0" - "@angular-devkit/architect": "npm:0.1800.2" - "@angular-devkit/build-webpack": "npm:0.1800.2" - "@angular-devkit/core": "npm:18.0.2" - "@angular/build": "npm:18.0.2" - "@babel/core": "npm:7.24.5" - "@babel/generator": "npm:7.24.5" - "@babel/helper-annotate-as-pure": "npm:7.22.5" - "@babel/helper-split-export-declaration": "npm:7.24.5" - "@babel/plugin-transform-async-generator-functions": "npm:7.24.3" - "@babel/plugin-transform-async-to-generator": "npm:7.24.1" - "@babel/plugin-transform-runtime": "npm:7.24.3" - "@babel/preset-env": "npm:7.24.5" - "@babel/runtime": "npm:7.24.5" - "@discoveryjs/json-ext": "npm:0.5.7" - "@ngtools/webpack": "npm:18.0.2" + "@angular-devkit/architect": "npm:0.1802.9" + "@angular-devkit/build-webpack": "npm:0.1802.9" + "@angular-devkit/core": "npm:18.2.9" + "@angular/build": "npm:18.2.9" + "@babel/core": "npm:7.25.2" + "@babel/generator": "npm:7.25.0" + "@babel/helper-annotate-as-pure": "npm:7.24.7" + "@babel/helper-split-export-declaration": "npm:7.24.7" + "@babel/plugin-transform-async-generator-functions": "npm:7.25.0" + "@babel/plugin-transform-async-to-generator": "npm:7.24.7" + "@babel/plugin-transform-runtime": "npm:7.24.7" + "@babel/preset-env": "npm:7.25.3" + "@babel/runtime": "npm:7.25.0" + "@discoveryjs/json-ext": "npm:0.6.1" + "@ngtools/webpack": "npm:18.2.9" "@vitejs/plugin-basic-ssl": "npm:1.1.0" ansi-colors: "npm:4.1.3" - autoprefixer: "npm:10.4.19" + autoprefixer: "npm:10.4.20" babel-loader: "npm:9.1.3" - babel-plugin-istanbul: "npm:6.1.1" browserslist: "npm:^4.21.5" - copy-webpack-plugin: "npm:11.0.0" - critters: "npm:0.0.22" - css-loader: "npm:7.1.1" - esbuild: "npm:0.21.3" - esbuild-wasm: "npm:0.21.3" + copy-webpack-plugin: "npm:12.0.2" + critters: "npm:0.0.24" + css-loader: "npm:7.1.2" + esbuild: "npm:0.23.0" + esbuild-wasm: "npm:0.23.0" fast-glob: "npm:3.3.2" http-proxy-middleware: "npm:3.0.0" - https-proxy-agent: "npm:7.0.4" - inquirer: "npm:9.2.22" - jsonc-parser: "npm:3.2.1" + https-proxy-agent: "npm:7.0.5" + istanbul-lib-instrument: "npm:6.0.3" + jsonc-parser: "npm:3.3.1" karma-source-map-support: "npm:1.4.0" less: "npm:4.2.0" less-loader: "npm:12.2.0" license-webpack-plugin: "npm:4.0.2" - loader-utils: "npm:3.2.1" - magic-string: "npm:0.30.10" + loader-utils: "npm:3.3.1" + magic-string: "npm:0.30.11" mini-css-extract-plugin: "npm:2.9.0" mrmime: "npm:2.0.0" - open: "npm:8.4.2" + open: "npm:10.1.0" ora: "npm:5.4.1" parse5-html-rewriting-stream: "npm:7.0.0" picomatch: "npm:4.0.2" - piscina: "npm:4.5.0" - postcss: "npm:8.4.38" + piscina: "npm:4.6.1" + postcss: "npm:8.4.41" postcss-loader: "npm:8.1.1" resolve-url-loader: "npm:5.0.0" rxjs: "npm:7.8.1" - sass: "npm:1.77.2" - sass-loader: "npm:14.2.1" - semver: "npm:7.6.2" + sass: "npm:1.77.6" + sass-loader: "npm:16.0.0" + semver: "npm:7.6.3" source-map-loader: "npm:5.0.0" source-map-support: "npm:0.5.21" - terser: "npm:5.31.0" + terser: "npm:5.31.6" tree-kill: "npm:1.2.2" - tslib: "npm:2.6.2" - undici: "npm:6.18.0" - vite: "npm:5.2.11" + tslib: "npm:2.6.3" + vite: "npm:5.4.6" watchpack: "npm:2.4.1" - webpack: "npm:5.91.0" - webpack-dev-middleware: "npm:7.2.1" + webpack: "npm:5.94.0" + webpack-dev-middleware: "npm:7.4.2" webpack-dev-server: "npm:5.0.4" - webpack-merge: "npm:5.10.0" + webpack-merge: "npm:6.0.1" webpack-subresource-integrity: "npm:5.1.0" peerDependencies: "@angular/compiler-cli": ^18.0.0 @@ -298,10 +316,13 @@ __metadata: ng-packagr: ^18.0.0 protractor: ^7.0.0 tailwindcss: ^2.0.0 || ^3.0.0 - typescript: ">=5.4 <5.5" + typescript: ">=5.4 <5.6" dependenciesMeta: esbuild: + built: true optional: true + puppeteer: + built: true peerDependenciesMeta: "@angular/localize": optional: true @@ -325,157 +346,215 @@ __metadata: optional: true tailwindcss: optional: true - checksum: 10c0/d7ee606ed36faf0b7675a49bf727343d02f31e68f1b9713a464fa6ed5804fb8edc894b501e9f4e9f165801ebc5559fe62d1242662ec098baab013e67b05bcca3 + checksum: 10c0/824b1277fbf048b7088f5c589ea5eec54c42ca852610a37c8e56b50d2be98c29fac2d5e9416f0fdbc98e700084945e1e1c554066348cde9b86aba1399d4658be languageName: node linkType: hard -"@angular-devkit/build-webpack@npm:0.1800.2": - version: 0.1800.2 - resolution: "@angular-devkit/build-webpack@npm:0.1800.2" +"@angular-devkit/build-webpack@npm:0.1802.9": + version: 0.1802.9 + resolution: "@angular-devkit/build-webpack@npm:0.1802.9" dependencies: - "@angular-devkit/architect": "npm:0.1800.2" + "@angular-devkit/architect": "npm:0.1802.9" rxjs: "npm:7.8.1" peerDependencies: webpack: ^5.30.0 webpack-dev-server: ^5.0.2 - checksum: 10c0/62ab3fe939820b7015132b27e1db9846eba43e2018cf3e26ebf25b2cefe33e32e75088bcf2ff646b22dbb44b4bc80e46fad2c1910e30768428ee59f2b7222806 + dependenciesMeta: + esbuild: + built: true + puppeteer: + built: true + checksum: 10c0/16c30407fe38fb476277a6e386edfa3b70f097096d46bcea8aaeaa40dc69f0077e043f02e334aa9e3fde08824eb3146517e4869adc10f4228f1cee4266257fa4 + languageName: node + linkType: hard + +"@angular-devkit/core@npm:18.2.11": + version: 18.2.11 + resolution: "@angular-devkit/core@npm:18.2.11" + dependencies: + ajv: "npm:8.17.1" + ajv-formats: "npm:3.0.1" + jsonc-parser: "npm:3.3.1" + picomatch: "npm:4.0.2" + rxjs: "npm:7.8.1" + source-map: "npm:0.7.4" + peerDependencies: + chokidar: ^3.5.2 + dependenciesMeta: + esbuild: + built: true + puppeteer: + built: true + peerDependenciesMeta: + chokidar: + optional: true + checksum: 10c0/37e7ef8da14be852c3dab3eef285f65c64ef4315399f87292ecd4d803faf5ac85609bde054e92d49f31ed6626e1ddff2bed6d6bd23e8cbae3a9ed4196fbb3643 languageName: node linkType: hard -"@angular-devkit/core@npm:18.0.2": - version: 18.0.2 - resolution: "@angular-devkit/core@npm:18.0.2" +"@angular-devkit/core@npm:18.2.9": + version: 18.2.9 + resolution: "@angular-devkit/core@npm:18.2.9" dependencies: - ajv: "npm:8.13.0" + ajv: "npm:8.17.1" ajv-formats: "npm:3.0.1" - jsonc-parser: "npm:3.2.1" + jsonc-parser: "npm:3.3.1" picomatch: "npm:4.0.2" rxjs: "npm:7.8.1" source-map: "npm:0.7.4" peerDependencies: chokidar: ^3.5.2 + dependenciesMeta: + esbuild: + built: true + puppeteer: + built: true peerDependenciesMeta: chokidar: optional: true - checksum: 10c0/ae852be80f4f74fc03c04dd20d818201dfeeff40b9aadc9f2dffdfae6d5bc3476d2758bbeff5dac845cfc58e99c5d58392bc74dae7cee231e0d9b3fe1b5adfe5 + checksum: 10c0/ab336889c110bb86f0bd27c93566ca4e98a4127de19c1ee6a8513ddb28f285556c3b017733bcb8f5b69408fa02003ed7dae256ac898291d1532cc73851c1677b + languageName: node + linkType: hard + +"@angular-devkit/schematics@npm:18.2.11": + version: 18.2.11 + resolution: "@angular-devkit/schematics@npm:18.2.11" + dependencies: + "@angular-devkit/core": "npm:18.2.11" + jsonc-parser: "npm:3.3.1" + magic-string: "npm:0.30.11" + ora: "npm:5.4.1" + rxjs: "npm:7.8.1" + dependenciesMeta: + esbuild: + built: true + puppeteer: + built: true + checksum: 10c0/e9ed796d6b996dbbff9f1f6c9b0da04e8d94addaca6378bce803caf617fb8c414df3dba67fe420e6d08a473dbc50953f74fe4f544761979ab305bae812b0c0d8 languageName: node linkType: hard -"@angular-devkit/schematics@npm:18.0.2": - version: 18.0.2 - resolution: "@angular-devkit/schematics@npm:18.0.2" +"@angular-devkit/schematics@npm:18.2.9": + version: 18.2.9 + resolution: "@angular-devkit/schematics@npm:18.2.9" dependencies: - "@angular-devkit/core": "npm:18.0.2" - jsonc-parser: "npm:3.2.1" - magic-string: "npm:0.30.10" + "@angular-devkit/core": "npm:18.2.9" + jsonc-parser: "npm:3.3.1" + magic-string: "npm:0.30.11" ora: "npm:5.4.1" rxjs: "npm:7.8.1" - checksum: 10c0/4ebfb3428517aa194852714546bd747529bba3705abe8708c97ac931aeef2464211d462f251fdf8c3c312c0f050e408fa1b9ddc3f6e56d3be1a6cf48a5cd3edd + dependenciesMeta: + esbuild: + built: true + puppeteer: + built: true + checksum: 10c0/f7f2f41913750bac1c7277ca6cdd841705bc83c34315782bb12706d23561b292a86dfdbbaa00513e16b4aaa729338e5dd8bb8bace9643d4a17ad67811e309d95 languageName: node linkType: hard -"@angular-eslint/bundled-angular-compiler@npm:18.0.0": - version: 18.0.0 - resolution: "@angular-eslint/bundled-angular-compiler@npm:18.0.0" - checksum: 10c0/8395b1cdd218b6c6cd47db369eed352eb16eae8ce7c47f3ca15bbfe61b0506977922583e5b62925c1b79a62c4c6c75cb69ce984c1bf359f43d39bcc6481eda72 +"@angular-eslint/bundled-angular-compiler@npm:18.4.0": + version: 18.4.0 + resolution: "@angular-eslint/bundled-angular-compiler@npm:18.4.0" + checksum: 10c0/279ceeb5b5efc936c11722f374a11dae99cb23939f2fe6f7fdcfb8a8dd847aef2ba35ae42e36139970c7b95b27b103ea171ae2f48c1bfca3798f10d812a555c3 languageName: node linkType: hard -"@angular-eslint/eslint-plugin-template@npm:18.0.0": - version: 18.0.0 - resolution: "@angular-eslint/eslint-plugin-template@npm:18.0.0" +"@angular-eslint/eslint-plugin-template@npm:18.4.0": + version: 18.4.0 + resolution: "@angular-eslint/eslint-plugin-template@npm:18.4.0" dependencies: - "@angular-eslint/bundled-angular-compiler": "npm:18.0.0" - "@angular-eslint/utils": "npm:18.0.0" - "@typescript-eslint/utils": "npm:8.0.0-alpha.20" - aria-query: "npm:5.3.0" - axobject-query: "npm:4.0.0" + "@angular-eslint/bundled-angular-compiler": "npm:18.4.0" + "@angular-eslint/utils": "npm:18.4.0" + aria-query: "npm:5.3.2" + axobject-query: "npm:4.1.0" peerDependencies: + "@typescript-eslint/types": ^7.11.0 || ^8.0.0 + "@typescript-eslint/utils": ^7.11.0 || ^8.0.0 eslint: ^8.57.0 || ^9.0.0 typescript: "*" - checksum: 10c0/0893c28357ffd8bf0bcce206fa49576dce589450eeb33157d530f65a78c0cd119e1db718fd3af73903bdb337ff15d00125a1b405face06dbf008068952413d8f + checksum: 10c0/e720584f3d7acb58bb981307b686df5aa282612b0fbaf44db0c585367b41e9ed70c6780fa299b1f15bcdf9795157b6950e3feac586217631e3307ef37e56dc57 languageName: node linkType: hard -"@angular-eslint/eslint-plugin@npm:18.0.0": - version: 18.0.0 - resolution: "@angular-eslint/eslint-plugin@npm:18.0.0" +"@angular-eslint/eslint-plugin@npm:18.4.0": + version: 18.4.0 + resolution: "@angular-eslint/eslint-plugin@npm:18.4.0" dependencies: - "@angular-eslint/bundled-angular-compiler": "npm:18.0.0" - "@angular-eslint/utils": "npm:18.0.0" - "@typescript-eslint/utils": "npm:8.0.0-alpha.20" + "@angular-eslint/bundled-angular-compiler": "npm:18.4.0" + "@angular-eslint/utils": "npm:18.4.0" peerDependencies: + "@typescript-eslint/utils": ^7.11.0 || ^8.0.0 eslint: ^8.57.0 || ^9.0.0 typescript: "*" - checksum: 10c0/49994e1de4d180b19d35a76db3ffff68f6b3ffdf8ae8e9ec63789db7b42166bbabab0d54e5f4212041fc22f1d5a303376503b8690b27dee46135c8f16363899d + checksum: 10c0/222601bf5f0bd6d921573fd6b9232c27f34234a0071b686865cd1f7b0c636efe91aa5102515f67b30707b6c31fcda70939d894a707e74a6aba0e55a2c5cfa879 languageName: node linkType: hard -"@angular-eslint/template-parser@npm:18.0.0": - version: 18.0.0 - resolution: "@angular-eslint/template-parser@npm:18.0.0" +"@angular-eslint/template-parser@npm:18.4.0": + version: 18.4.0 + resolution: "@angular-eslint/template-parser@npm:18.4.0" dependencies: - "@angular-eslint/bundled-angular-compiler": "npm:18.0.0" - eslint-scope: "npm:^8.0.0" + "@angular-eslint/bundled-angular-compiler": "npm:18.4.0" + eslint-scope: "npm:^8.0.2" peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: "*" - checksum: 10c0/f2f4f10ea52a9b3501b9717719f9476d76d4f0e4fee546e843fe964d89c032d68db05e99bc7867e62a0606b65274de5e9a606e4add17c1be3ef06151e94d42eb + checksum: 10c0/b40196cb12a8c2e875f4a5cb638afd927fd7a98fd0d80d65d53bddac8659fc990692ce81c699f8deae4775abda7144035c7ffe276b19c5e61ad849aa2936c83b languageName: node linkType: hard -"@angular-eslint/utils@npm:18.0.0": - version: 18.0.0 - resolution: "@angular-eslint/utils@npm:18.0.0" +"@angular-eslint/utils@npm:18.4.0": + version: 18.4.0 + resolution: "@angular-eslint/utils@npm:18.4.0" dependencies: - "@angular-eslint/bundled-angular-compiler": "npm:18.0.0" - "@typescript-eslint/utils": "npm:8.0.0-alpha.20" + "@angular-eslint/bundled-angular-compiler": "npm:18.4.0" peerDependencies: + "@typescript-eslint/utils": ^7.11.0 || ^8.0.0 eslint: ^8.57.0 || ^9.0.0 typescript: "*" - checksum: 10c0/7aa5f3ad6da924ea2977541fb5bfdea87d2426d3f5fdb7daeb2920bc27790fd25cbc5f764e117322adddf59805a985cc52c48f0aed10ee33b80c78946add6e0e + checksum: 10c0/d6b7ad894cf9cbeda7999f8c21c13bf85fce2d0a8bbc5c38b62b8f555ae34c069956665e9cd6739bd8161fd1050445e9351098900120c9a8309dcaa4e3270a3f languageName: node linkType: hard -"@angular/animations@npm:18.0.1": - version: 18.0.1 - resolution: "@angular/animations@npm:18.0.1" +"@angular/animations@npm:18.2.9": + version: 18.2.9 + resolution: "@angular/animations@npm:18.2.9" dependencies: tslib: "npm:^2.3.0" peerDependencies: - "@angular/core": 18.0.1 - checksum: 10c0/5311908d1766fa76cae6e9b281e9568c3dec93f65cd4f6b9cf34d65d5935f71b01f5b6f6068f66d20d273ea04d6f230eec6924844301be5f7f63ce90c9c551e3 + "@angular/core": 18.2.9 + checksum: 10c0/1fca1ab346b4c1eb0d304e2a9e3bbe1a34b0fd20f0e63628f0ca907f097c5bd8aa1191040a920bd7397e5370755603c24e399f651800105105b0d04308afe7a1 languageName: node linkType: hard -"@angular/build@npm:18.0.2, @angular/build@npm:^18.0.2": - version: 18.0.2 - resolution: "@angular/build@npm:18.0.2" +"@angular/build@npm:18.2.9": + version: 18.2.9 + resolution: "@angular/build@npm:18.2.9" dependencies: "@ampproject/remapping": "npm:2.3.0" - "@angular-devkit/architect": "npm:0.1800.2" - "@babel/core": "npm:7.24.5" - "@babel/helper-annotate-as-pure": "npm:7.22.5" - "@babel/helper-split-export-declaration": "npm:7.24.5" + "@angular-devkit/architect": "npm:0.1802.9" + "@babel/core": "npm:7.25.2" + "@babel/helper-annotate-as-pure": "npm:7.24.7" + "@babel/helper-split-export-declaration": "npm:7.24.7" + "@babel/plugin-syntax-import-attributes": "npm:7.24.7" + "@inquirer/confirm": "npm:3.1.22" "@vitejs/plugin-basic-ssl": "npm:1.1.0" - ansi-colors: "npm:4.1.3" browserslist: "npm:^4.23.0" - critters: "npm:0.0.22" - esbuild: "npm:0.21.3" + critters: "npm:0.0.24" + esbuild: "npm:0.23.0" fast-glob: "npm:3.3.2" - https-proxy-agent: "npm:7.0.4" - inquirer: "npm:9.2.22" - lmdb: "npm:3.0.8" - magic-string: "npm:0.30.10" + https-proxy-agent: "npm:7.0.5" + listr2: "npm:8.2.4" + lmdb: "npm:3.0.13" + magic-string: "npm:0.30.11" mrmime: "npm:2.0.0" - ora: "npm:5.4.1" parse5-html-rewriting-stream: "npm:7.0.0" picomatch: "npm:4.0.2" - piscina: "npm:4.5.0" - sass: "npm:1.77.2" - semver: "npm:7.6.2" - undici: "npm:6.18.0" - vite: "npm:5.2.11" + piscina: "npm:4.6.1" + rollup: "npm:4.22.4" + sass: "npm:1.77.6" + semver: "npm:7.6.3" + vite: "npm:5.4.6" watchpack: "npm:2.4.1" peerDependencies: "@angular/compiler-cli": ^18.0.0 @@ -485,7 +564,12 @@ __metadata: less: ^4.2.0 postcss: ^8.4.0 tailwindcss: ^2.0.0 || ^3.0.0 - typescript: ">=5.4 <5.5" + typescript: ">=5.4 <5.6" + dependenciesMeta: + esbuild: + built: true + puppeteer: + built: true peerDependenciesMeta: "@angular/localize": optional: true @@ -499,25 +583,25 @@ __metadata: optional: true tailwindcss: optional: true - checksum: 10c0/ffae01ce46e9aab1eba125124e9bfdc36ebcf889e6cb7302420a0c3fec6e14ccfe86807d8f58eb6394e8bbee54ae9ecd3726763426996bfe8c3e2a1f8afb8cb0 + checksum: 10c0/e69e9ba5cc722450de275a30e7cb257ae431c5fe6c1bb7a658014ba0cf62acb50476e49f086649b5b5651f1c4fd8ec944219de3815acb28f23ca086a857aa895 languageName: node linkType: hard -"@angular/cdk-experimental@npm:18.0.0": - version: 18.0.0 - resolution: "@angular/cdk-experimental@npm:18.0.0" +"@angular/cdk-experimental@npm:18.2.9": + version: 18.2.9 + resolution: "@angular/cdk-experimental@npm:18.2.9" dependencies: tslib: "npm:^2.3.0" peerDependencies: - "@angular/cdk": 18.0.0 + "@angular/cdk": 18.2.9 "@angular/core": ^18.0.0 || ^19.0.0 - checksum: 10c0/766e675d3013c12255a13fdbbace8ae9134a565a680e29548d54c609f71ede98386998cd50f3c03b337b3f4b6c1660a903a1a773b6da6e5ca3b28ba85e94fd37 + checksum: 10c0/9bb401dad36acf0a19b0744f8ee37facf7912e7ca9019877c8a272b7ac6585c95f0613ccfaf06e332c40c48dbcf0a33b4235fb6acb13b4fc87286fe5b60e0f6b languageName: node linkType: hard -"@angular/cdk@npm:18.0.0": - version: 18.0.0 - resolution: "@angular/cdk@npm:18.0.0" +"@angular/cdk@npm:18.2.9": + version: 18.2.9 + resolution: "@angular/cdk@npm:18.2.9" dependencies: parse5: "npm:^7.1.2" tslib: "npm:^2.3.0" @@ -528,254 +612,211 @@ __metadata: dependenciesMeta: parse5: optional: true - checksum: 10c0/06a76a89e7fa971a81fcfb607ac0a8ed47d7011f32067132bed871c0db01e4b915c2994a3b05ffcc9e79487c8ddcdc21d22b0d3df3db11b14e53a9effd751798 + checksum: 10c0/2ddc67f8d3e2ee186c5b0e111be8e08ddfa286bb4bfd2d297e39b077819df132f940a5b959b947341fe0e841182fd44cd46a9da7ffe5e36158e489b6a5e5e42b languageName: node linkType: hard -"@angular/cli@npm:~18.0.2": - version: 18.0.2 - resolution: "@angular/cli@npm:18.0.2" +"@angular/cli@npm:~18.2.0": + version: 18.2.11 + resolution: "@angular/cli@npm:18.2.11" dependencies: - "@angular-devkit/architect": "npm:0.1800.2" - "@angular-devkit/core": "npm:18.0.2" - "@angular-devkit/schematics": "npm:18.0.2" - "@schematics/angular": "npm:18.0.2" + "@angular-devkit/architect": "npm:0.1802.11" + "@angular-devkit/core": "npm:18.2.11" + "@angular-devkit/schematics": "npm:18.2.11" + "@inquirer/prompts": "npm:5.3.8" + "@listr2/prompt-adapter-inquirer": "npm:2.0.15" + "@schematics/angular": "npm:18.2.11" "@yarnpkg/lockfile": "npm:1.1.0" - ansi-colors: "npm:4.1.3" - ini: "npm:4.1.2" - inquirer: "npm:9.2.22" - jsonc-parser: "npm:3.2.1" - npm-package-arg: "npm:11.0.2" - npm-pick-manifest: "npm:9.0.1" - ora: "npm:5.4.1" + ini: "npm:4.1.3" + jsonc-parser: "npm:3.3.1" + listr2: "npm:8.2.4" + npm-package-arg: "npm:11.0.3" + npm-pick-manifest: "npm:9.1.0" pacote: "npm:18.0.6" resolve: "npm:1.22.8" - semver: "npm:7.6.2" + semver: "npm:7.6.3" symbol-observable: "npm:4.0.0" yargs: "npm:17.7.2" + dependenciesMeta: + esbuild: + built: true + puppeteer: + built: true bin: ng: bin/ng.js - checksum: 10c0/121ba01eb9001f8b10fa4828c5dd229719dedfe61964db2ae2f07a5482bb5ce592beb8c058615dd82a5a0bb24f6e9c39bcd6bd2ee8cbb3367c6bd681a7def0d1 + checksum: 10c0/6fff4e95620557ab4b1f8dbfcffa4ca2fa4552f56bb2587ee06afc0e3b907b6cdcd0c8a3902e42f200ecbf09beb002ead51e8f914a2a60efd9b6830ef17d9a23 languageName: node linkType: hard -"@angular/common@npm:18.0.1": - version: 18.0.1 - resolution: "@angular/common@npm:18.0.1" +"@angular/common@npm:18.2.9": + version: 18.2.9 + resolution: "@angular/common@npm:18.2.9" dependencies: tslib: "npm:^2.3.0" peerDependencies: - "@angular/core": 18.0.1 + "@angular/core": 18.2.9 rxjs: ^6.5.3 || ^7.4.0 - checksum: 10c0/d8e2161e02ba85c0235e1a80e8f4a105b3b555aeda1b519a7bf72bf9646f828061285d345988a4c0e1aec4028fe842d941380cde35e6dcfdbd86a92fc505deac + checksum: 10c0/0a8bf6c352f31407319098dcdadf073c8f51f72084b38e8f7b70e283c95e6b65b93f10aab592b789f7302a6f875924eb703f639fffd340a03f1455c839789ade languageName: node linkType: hard -"@angular/compiler-cli@npm:18.0.1": - version: 18.0.1 - resolution: "@angular/compiler-cli@npm:18.0.1" +"@angular/compiler-cli@npm:18.2.9": + version: 18.2.9 + resolution: "@angular/compiler-cli@npm:18.2.9" dependencies: - "@babel/core": "npm:7.24.4" + "@babel/core": "npm:7.25.2" "@jridgewell/sourcemap-codec": "npm:^1.4.14" - chokidar: "npm:^3.0.0" + chokidar: "npm:^4.0.0" convert-source-map: "npm:^1.5.1" reflect-metadata: "npm:^0.2.0" semver: "npm:^7.0.0" tslib: "npm:^2.3.0" yargs: "npm:^17.2.1" peerDependencies: - "@angular/compiler": 18.0.1 - typescript: ">=5.4 <5.5" + "@angular/compiler": 18.2.9 + typescript: ">=5.4 <5.6" bin: ng-xi18n: bundles/src/bin/ng_xi18n.js ngc: bundles/src/bin/ngc.js ngcc: bundles/ngcc/index.js - checksum: 10c0/6ed84b95aecdefee8d04ff8d75572ffbdca08469427fddc91742015f7e17eb6eca35cbc502eb9ea6dee9edfd338c09a900c14ff37a253f6e589dc6bd18444b1f + checksum: 10c0/d13958baa0f08e41cd6658719ebff8b848a5f57b3f8c91eb9b7813fae6b2cb632d610194e50687547aeca540e24a76bd7d641ff47fac4bae43b3ed7592c4c880 languageName: node linkType: hard -"@angular/compiler@npm:18.0.1": - version: 18.0.1 - resolution: "@angular/compiler@npm:18.0.1" +"@angular/compiler@npm:18.2.9": + version: 18.2.9 + resolution: "@angular/compiler@npm:18.2.9" dependencies: tslib: "npm:^2.3.0" peerDependencies: - "@angular/core": 18.0.1 + "@angular/core": 18.2.9 peerDependenciesMeta: "@angular/core": optional: true - checksum: 10c0/4f74d0bc9f39c20ab38f4d3bfcb94dcaa55f06048833546565b6b1b47a017f2882f591ca1f238938569f921783b69b1b99e752de39dd391f2411e45c51d858c0 + checksum: 10c0/8c4e18cf5a5539c7cc799efedb96e1efd09dd31bba8e40f860e96d3b52e270d62da7f092b91a3df9b4ccd1053c6d10d6c80ca7c5c6f0852f6173b93c39481b2d languageName: node linkType: hard -"@angular/core@npm:18.0.1": - version: 18.0.1 - resolution: "@angular/core@npm:18.0.1" +"@angular/core@npm:18.2.9": + version: 18.2.9 + resolution: "@angular/core@npm:18.2.9" dependencies: tslib: "npm:^2.3.0" peerDependencies: rxjs: ^6.5.3 || ^7.4.0 - zone.js: ~0.14.0 - checksum: 10c0/908e345a5ddebec96fda634f5d94b50bb47ab0e377345c323cc371bf96574cecb21420f3ee22358336b7d8a23730a89064996e89d43bdc40ab95ae1b01527c59 + zone.js: ~0.14.10 + checksum: 10c0/1087df36b1a851b82ee5c7b85f2c305b00a234942714a35966741d8479f974104dfbfc8ee9734775636517ab270fdaa199ea477633fcae18230475e23e5c577d languageName: node linkType: hard -"@angular/forms@npm:18.0.1": - version: 18.0.1 - resolution: "@angular/forms@npm:18.0.1" +"@angular/forms@npm:18.2.9": + version: 18.2.9 + resolution: "@angular/forms@npm:18.2.9" dependencies: tslib: "npm:^2.3.0" peerDependencies: - "@angular/common": 18.0.1 - "@angular/core": 18.0.1 - "@angular/platform-browser": 18.0.1 + "@angular/common": 18.2.9 + "@angular/core": 18.2.9 + "@angular/platform-browser": 18.2.9 rxjs: ^6.5.3 || ^7.4.0 - checksum: 10c0/615257f7e87bfdf81b15e57fe180aae0493bfbda83729964e072b7037a97f9d03dcfe678cc1106099714439c526ee8e0aa2b67842523b144d722e335709caa32 + checksum: 10c0/3423ec4d5a6218d7a0bd2cab61d08de49540a1ed66dcb8441c8e01ab64e10864d5d02487ba90d1830515bedfcd79881d97f7e04eeee18cf597a0e4149670a83e languageName: node linkType: hard -"@angular/language-service@npm:18.0.1": - version: 18.0.1 - resolution: "@angular/language-service@npm:18.0.1" - checksum: 10c0/179daefac14f18086085e348657a2e3a19e04a9c8925105dbc708d0fe85ee4bf2c05fbb801214a80476a4dedcb20e894c96e51c28bdee953d81ccd98b88f0b92 +"@angular/language-service@npm:18.2.9": + version: 18.2.9 + resolution: "@angular/language-service@npm:18.2.9" + checksum: 10c0/4ced292fa122a08e1e083cd7b2c57d971b0e54c021be7a413093c7d5c1e4562deed8aabc175e1982ec505de7e0d412cc4e67579fa6c9095fabcfb5a14468fa31 languageName: node linkType: hard -"@angular/material@npm:18.0.0": - version: 18.0.0 - resolution: "@angular/material@npm:18.0.0" - dependencies: - "@material/animation": "npm:15.0.0-canary.7f224ddd4.0" - "@material/auto-init": "npm:15.0.0-canary.7f224ddd4.0" - "@material/banner": "npm:15.0.0-canary.7f224ddd4.0" - "@material/base": "npm:15.0.0-canary.7f224ddd4.0" - "@material/button": "npm:15.0.0-canary.7f224ddd4.0" - "@material/card": "npm:15.0.0-canary.7f224ddd4.0" - "@material/checkbox": "npm:15.0.0-canary.7f224ddd4.0" - "@material/chips": "npm:15.0.0-canary.7f224ddd4.0" - "@material/circular-progress": "npm:15.0.0-canary.7f224ddd4.0" - "@material/data-table": "npm:15.0.0-canary.7f224ddd4.0" - "@material/density": "npm:15.0.0-canary.7f224ddd4.0" - "@material/dialog": "npm:15.0.0-canary.7f224ddd4.0" - "@material/dom": "npm:15.0.0-canary.7f224ddd4.0" - "@material/drawer": "npm:15.0.0-canary.7f224ddd4.0" - "@material/elevation": "npm:15.0.0-canary.7f224ddd4.0" - "@material/fab": "npm:15.0.0-canary.7f224ddd4.0" - "@material/feature-targeting": "npm:15.0.0-canary.7f224ddd4.0" - "@material/floating-label": "npm:15.0.0-canary.7f224ddd4.0" - "@material/form-field": "npm:15.0.0-canary.7f224ddd4.0" - "@material/icon-button": "npm:15.0.0-canary.7f224ddd4.0" - "@material/image-list": "npm:15.0.0-canary.7f224ddd4.0" - "@material/layout-grid": "npm:15.0.0-canary.7f224ddd4.0" - "@material/line-ripple": "npm:15.0.0-canary.7f224ddd4.0" - "@material/linear-progress": "npm:15.0.0-canary.7f224ddd4.0" - "@material/list": "npm:15.0.0-canary.7f224ddd4.0" - "@material/menu": "npm:15.0.0-canary.7f224ddd4.0" - "@material/menu-surface": "npm:15.0.0-canary.7f224ddd4.0" - "@material/notched-outline": "npm:15.0.0-canary.7f224ddd4.0" - "@material/radio": "npm:15.0.0-canary.7f224ddd4.0" - "@material/ripple": "npm:15.0.0-canary.7f224ddd4.0" - "@material/rtl": "npm:15.0.0-canary.7f224ddd4.0" - "@material/segmented-button": "npm:15.0.0-canary.7f224ddd4.0" - "@material/select": "npm:15.0.0-canary.7f224ddd4.0" - "@material/shape": "npm:15.0.0-canary.7f224ddd4.0" - "@material/slider": "npm:15.0.0-canary.7f224ddd4.0" - "@material/snackbar": "npm:15.0.0-canary.7f224ddd4.0" - "@material/switch": "npm:15.0.0-canary.7f224ddd4.0" - "@material/tab": "npm:15.0.0-canary.7f224ddd4.0" - "@material/tab-bar": "npm:15.0.0-canary.7f224ddd4.0" - "@material/tab-indicator": "npm:15.0.0-canary.7f224ddd4.0" - "@material/tab-scroller": "npm:15.0.0-canary.7f224ddd4.0" - "@material/textfield": "npm:15.0.0-canary.7f224ddd4.0" - "@material/theme": "npm:15.0.0-canary.7f224ddd4.0" - "@material/tokens": "npm:15.0.0-canary.7f224ddd4.0" - "@material/tooltip": "npm:15.0.0-canary.7f224ddd4.0" - "@material/top-app-bar": "npm:15.0.0-canary.7f224ddd4.0" - "@material/touch-target": "npm:15.0.0-canary.7f224ddd4.0" - "@material/typography": "npm:15.0.0-canary.7f224ddd4.0" +"@angular/material@npm:18.2.9": + version: 18.2.9 + resolution: "@angular/material@npm:18.2.9" + dependencies: tslib: "npm:^2.3.0" peerDependencies: "@angular/animations": ^18.0.0 || ^19.0.0 - "@angular/cdk": 18.0.0 + "@angular/cdk": 18.2.9 "@angular/common": ^18.0.0 || ^19.0.0 "@angular/core": ^18.0.0 || ^19.0.0 "@angular/forms": ^18.0.0 || ^19.0.0 "@angular/platform-browser": ^18.0.0 || ^19.0.0 rxjs: ^6.5.3 || ^7.4.0 - checksum: 10c0/9d18825487abfb445cc3444fd4c21d88f713505eef31a1a8ace19e8660f4742096c87363bcf7840bc7cda715562999ba6ebfc21d7d82d0d45640557b9efe7ad8 + checksum: 10c0/c41e858e627db1c87d3e5b15fffac9404efd8323100cf5c439501ad6ac2da707b37e6b732c93ba6dddb2a6c532c6a6566d4a799e7bf15a00e77a7c56da90d72f languageName: node linkType: hard -"@angular/platform-browser-dynamic@npm:18.0.1": - version: 18.0.1 - resolution: "@angular/platform-browser-dynamic@npm:18.0.1" +"@angular/platform-browser-dynamic@npm:18.2.9": + version: 18.2.9 + resolution: "@angular/platform-browser-dynamic@npm:18.2.9" dependencies: tslib: "npm:^2.3.0" peerDependencies: - "@angular/common": 18.0.1 - "@angular/compiler": 18.0.1 - "@angular/core": 18.0.1 - "@angular/platform-browser": 18.0.1 - checksum: 10c0/4ce6cb03b02835d517ad0679abfd7c698a5ee04631d4553fd51bce9b4716c5b9307eab473ce3987bb014606670b2513bad9354b9ed1d0e83bee5a77ebbc9a48f + "@angular/common": 18.2.9 + "@angular/compiler": 18.2.9 + "@angular/core": 18.2.9 + "@angular/platform-browser": 18.2.9 + checksum: 10c0/a57a2dcdac7f539ab400a63fe7cc846ccd93b09d4c575d19861262c6938014d199de755100261fd66e9f75e4ace17896ba63643c5151f73c0f63927f15b700d1 languageName: node linkType: hard -"@angular/platform-browser@npm:18.0.1": - version: 18.0.1 - resolution: "@angular/platform-browser@npm:18.0.1" +"@angular/platform-browser@npm:18.2.9": + version: 18.2.9 + resolution: "@angular/platform-browser@npm:18.2.9" dependencies: tslib: "npm:^2.3.0" peerDependencies: - "@angular/animations": 18.0.1 - "@angular/common": 18.0.1 - "@angular/core": 18.0.1 + "@angular/animations": 18.2.9 + "@angular/common": 18.2.9 + "@angular/core": 18.2.9 peerDependenciesMeta: "@angular/animations": optional: true - checksum: 10c0/3f57dcaf1697f43b326df4a6200a5c61ac63b52e4f67558e72b497d32253b5c8aefd7a2afc45b114b6a4b0b94dd35fcad0abbe1d08e8ae51a7ea200f5d4add8e + checksum: 10c0/93e11ce0c754d0f2b4010479af15c77c189bfa4709121f7cf8ede4dbc46e7d4683b1b059f359d96f0f5f33947182c9c85c74ad6715cdbe22a0984069d629bd26 languageName: node linkType: hard -"@angular/platform-server@npm:18.0.1": - version: 18.0.1 - resolution: "@angular/platform-server@npm:18.0.1" +"@angular/platform-server@npm:18.2.9": + version: 18.2.9 + resolution: "@angular/platform-server@npm:18.2.9" dependencies: tslib: "npm:^2.3.0" xhr2: "npm:^0.2.0" peerDependencies: - "@angular/animations": 18.0.1 - "@angular/common": 18.0.1 - "@angular/compiler": 18.0.1 - "@angular/core": 18.0.1 - "@angular/platform-browser": 18.0.1 - checksum: 10c0/4f11ba0be15c92928010da8cad799ebb375db1efd703665bf82d6ef990cb5174e271d8b179098eb14c94355687b06da8a8ce42b63d4e0e1812e2d2a065864662 + "@angular/animations": 18.2.9 + "@angular/common": 18.2.9 + "@angular/compiler": 18.2.9 + "@angular/core": 18.2.9 + "@angular/platform-browser": 18.2.9 + checksum: 10c0/2f0bf9e2a2c8f73e0f8b30d3be4c1727e0234813908e0b531ff8f9849c0ff6a71a28a7430960d50bcba3f5d76fedd6f45b5fd90ee9375ee05ecc31254aa6ca9b languageName: node linkType: hard -"@angular/router@npm:18.0.1": - version: 18.0.1 - resolution: "@angular/router@npm:18.0.1" +"@angular/router@npm:18.2.9": + version: 18.2.9 + resolution: "@angular/router@npm:18.2.9" dependencies: tslib: "npm:^2.3.0" peerDependencies: - "@angular/common": 18.0.1 - "@angular/core": 18.0.1 - "@angular/platform-browser": 18.0.1 + "@angular/common": 18.2.9 + "@angular/core": 18.2.9 + "@angular/platform-browser": 18.2.9 rxjs: ^6.5.3 || ^7.4.0 - checksum: 10c0/883c582472895c097610cce1702672e6b1b650382a45f4297c239367b4b0f17b83814d9c355fbecdfb63ddf2acf743f9f276342a725b9d114b3348f361b12a68 + checksum: 10c0/99379a9d0f71d85099c1b9a8c2b3c7c8aaa53b33c7e32e1f826f9dbe61beca67a8368fb96741fbb2daebe5e6f6c412cf345c83f6a39c81b06c80bd10de24732c languageName: node linkType: hard -"@angular/ssr@npm:18.0.2": - version: 18.0.2 - resolution: "@angular/ssr@npm:18.0.2" +"@angular/ssr@npm:18.2.9": + version: 18.2.9 + resolution: "@angular/ssr@npm:18.2.9" dependencies: - critters: "npm:0.0.22" + critters: "npm:0.0.24" tslib: "npm:^2.3.0" peerDependencies: "@angular/common": ^18.0.0 "@angular/core": ^18.0.0 - checksum: 10c0/0243089c2ed8aa46884a82f73a6b56bcf0a388c6d6749824d9d7b362312191732b125dc23f6e5363b10d33cbef41e7ee23336c63786071b4c24fd6438579ff8d + checksum: 10c0/2a2d1a6ab0ccab0ed6ba670b56ac34233fb12e707d7bf5ad87ff8243550cf0f5ded2aa81469915886e94fb7d452f33e40c95be7b80f519673582b39eb1a65b5e languageName: node linkType: hard @@ -808,23 +849,14 @@ __metadata: languageName: node linkType: hard -"@babel/code-frame@npm:^7.24.1": - version: 7.24.2 - resolution: "@babel/code-frame@npm:7.24.2" - dependencies: - "@babel/highlight": "npm:^7.24.2" - picocolors: "npm:^1.0.0" - checksum: 10c0/d1d4cba89475ab6aab7a88242e1fd73b15ecb9f30c109b69752956434d10a26a52cbd37727c4eca104b6d45227bd1dfce39a6a6f4a14c9b2f07f871e968cf406 - languageName: node - linkType: hard - -"@babel/code-frame@npm:^7.24.2, @babel/code-frame@npm:^7.24.6": - version: 7.24.6 - resolution: "@babel/code-frame@npm:7.24.6" +"@babel/code-frame@npm:^7.24.7, @babel/code-frame@npm:^7.25.9, @babel/code-frame@npm:^7.26.0": + version: 7.26.2 + resolution: "@babel/code-frame@npm:7.26.2" dependencies: - "@babel/highlight": "npm:^7.24.6" + "@babel/helper-validator-identifier": "npm:^7.25.9" + js-tokens: "npm:^4.0.0" picocolors: "npm:^1.0.0" - checksum: 10c0/c93c6d1763530f415218c31d07359364397f19b70026abdff766164c21ed352a931cf07f3102c5fb9e04792de319e332d68bcb1f7debef601a02197f90f9ba24 + checksum: 10c0/7d79621a6849183c415486af99b1a20b84737e8c11cd55b6544f688c51ce1fd710e6d869c3dd21232023da272a79b91efb3e83b5bc2dc65c1187c5fcd1b72ea8 languageName: node linkType: hard @@ -849,10 +881,10 @@ __metadata: languageName: node linkType: hard -"@babel/compat-data@npm:^7.24.4, @babel/compat-data@npm:^7.24.6": - version: 7.24.6 - resolution: "@babel/compat-data@npm:7.24.6" - checksum: 10c0/f50abbd4008eb2a5d12139c578809cebbeaeb8e660fb12d546eb2e7c2108ae1836ab8339184a5f5ce0e95bf81bb91e18edce86b387c59db937b01693ec0bc774 +"@babel/compat-data@npm:^7.25.2, @babel/compat-data@npm:^7.25.9": + version: 7.26.2 + resolution: "@babel/compat-data@npm:7.26.2" + checksum: 10c0/c9b5f3724828d17f728a778f9d66c19b55c018d0d76de6d731178cca64f182c22b71400a73bf2b65dcc4fcfe52b630088a94d5902911b54206aa90e3ffe07d12 languageName: node linkType: hard @@ -880,49 +912,26 @@ __metadata: languageName: node linkType: hard -"@babel/core@npm:7.24.4": - version: 7.24.4 - resolution: "@babel/core@npm:7.24.4" +"@babel/core@npm:7.25.2": + version: 7.25.2 + resolution: "@babel/core@npm:7.25.2" dependencies: "@ampproject/remapping": "npm:^2.2.0" - "@babel/code-frame": "npm:^7.24.2" - "@babel/generator": "npm:^7.24.4" - "@babel/helper-compilation-targets": "npm:^7.23.6" - "@babel/helper-module-transforms": "npm:^7.23.3" - "@babel/helpers": "npm:^7.24.4" - "@babel/parser": "npm:^7.24.4" - "@babel/template": "npm:^7.24.0" - "@babel/traverse": "npm:^7.24.1" - "@babel/types": "npm:^7.24.0" - convert-source-map: "npm:^2.0.0" - debug: "npm:^4.1.0" - gensync: "npm:^1.0.0-beta.2" - json5: "npm:^2.2.3" - semver: "npm:^6.3.1" - checksum: 10c0/fc136966583e64d6f84f4a676368de6ab4583aa87f867186068655b30ef67f21f8e65a88c6d446a7efd219ad7ffb9185c82e8a90183ee033f6f47b5026641e16 - languageName: node - linkType: hard - -"@babel/core@npm:7.24.5": - version: 7.24.5 - resolution: "@babel/core@npm:7.24.5" - dependencies: - "@ampproject/remapping": "npm:^2.2.0" - "@babel/code-frame": "npm:^7.24.2" - "@babel/generator": "npm:^7.24.5" - "@babel/helper-compilation-targets": "npm:^7.23.6" - "@babel/helper-module-transforms": "npm:^7.24.5" - "@babel/helpers": "npm:^7.24.5" - "@babel/parser": "npm:^7.24.5" - "@babel/template": "npm:^7.24.0" - "@babel/traverse": "npm:^7.24.5" - "@babel/types": "npm:^7.24.5" + "@babel/code-frame": "npm:^7.24.7" + "@babel/generator": "npm:^7.25.0" + "@babel/helper-compilation-targets": "npm:^7.25.2" + "@babel/helper-module-transforms": "npm:^7.25.2" + "@babel/helpers": "npm:^7.25.0" + "@babel/parser": "npm:^7.25.0" + "@babel/template": "npm:^7.25.0" + "@babel/traverse": "npm:^7.25.2" + "@babel/types": "npm:^7.25.2" convert-source-map: "npm:^2.0.0" debug: "npm:^4.1.0" gensync: "npm:^1.0.0-beta.2" json5: "npm:^2.2.3" semver: "npm:^6.3.1" - checksum: 10c0/e26ba810a77bc8e21579a12fc36c79a0a60554404dc9447f2d64eb1f26d181c48d3b97d39d9f158e9911ec7162a8280acfaf2b4b210e975f0dd4bd4dbb1ee159 + checksum: 10c0/a425fa40e73cb72b6464063a57c478bc2de9dbcc19c280f1b55a3d88b35d572e87e8594e7d7b4880331addb6faef641bbeb701b91b41b8806cd4deae5d74f401 languageName: node linkType: hard @@ -972,15 +981,38 @@ __metadata: languageName: node linkType: hard -"@babel/generator@npm:7.24.5": - version: 7.24.5 - resolution: "@babel/generator@npm:7.24.5" +"@babel/core@npm:^7.23.9": + version: 7.26.0 + resolution: "@babel/core@npm:7.26.0" dependencies: - "@babel/types": "npm:^7.24.5" + "@ampproject/remapping": "npm:^2.2.0" + "@babel/code-frame": "npm:^7.26.0" + "@babel/generator": "npm:^7.26.0" + "@babel/helper-compilation-targets": "npm:^7.25.9" + "@babel/helper-module-transforms": "npm:^7.26.0" + "@babel/helpers": "npm:^7.26.0" + "@babel/parser": "npm:^7.26.0" + "@babel/template": "npm:^7.25.9" + "@babel/traverse": "npm:^7.25.9" + "@babel/types": "npm:^7.26.0" + convert-source-map: "npm:^2.0.0" + debug: "npm:^4.1.0" + gensync: "npm:^1.0.0-beta.2" + json5: "npm:^2.2.3" + semver: "npm:^6.3.1" + checksum: 10c0/91de73a7ff5c4049fbc747930aa039300e4d2670c2a91f5aa622f1b4868600fc89b01b6278385fbcd46f9574186fa3d9b376a9e7538e50f8d118ec13cfbcb63e + languageName: node + linkType: hard + +"@babel/generator@npm:7.25.0": + version: 7.25.0 + resolution: "@babel/generator@npm:7.25.0" + dependencies: + "@babel/types": "npm:^7.25.0" "@jridgewell/gen-mapping": "npm:^0.3.5" "@jridgewell/trace-mapping": "npm:^0.3.25" jsesc: "npm:^2.5.1" - checksum: 10c0/0d64f880150e7dfb92ceff2b4ac865f36aa1e295120920246492ffd0146562dabf79ba8699af1c8833f8a7954818d4d146b7b02f808df4d6024fb99f98b2f78d + checksum: 10c0/d0e2dfcdc8bdbb5dded34b705ceebf2e0bc1b06795a1530e64fb6a3ccf313c189db7f60c1616effae48114e1a25adc75855bc4496f3779a396b3377bae718ce7 languageName: node linkType: hard @@ -1008,36 +1040,25 @@ __metadata: languageName: node linkType: hard -"@babel/generator@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/generator@npm:7.24.1" - dependencies: - "@babel/types": "npm:^7.24.0" - "@jridgewell/gen-mapping": "npm:^0.3.5" - "@jridgewell/trace-mapping": "npm:^0.3.25" - jsesc: "npm:^2.5.1" - checksum: 10c0/f0eea7497657cdf68cfb4b7d181588e1498eefd1f303d73b0d8ca9b21a6db27136a6f5beb8f988b6bdcd4249870826080950450fd310951de42ecf36df274881 - languageName: node - linkType: hard - -"@babel/generator@npm:^7.24.4, @babel/generator@npm:^7.24.5, @babel/generator@npm:^7.24.6": - version: 7.24.6 - resolution: "@babel/generator@npm:7.24.6" +"@babel/generator@npm:^7.25.0, @babel/generator@npm:^7.25.9, @babel/generator@npm:^7.26.0": + version: 7.26.2 + resolution: "@babel/generator@npm:7.26.2" dependencies: - "@babel/types": "npm:^7.24.6" + "@babel/parser": "npm:^7.26.2" + "@babel/types": "npm:^7.26.0" "@jridgewell/gen-mapping": "npm:^0.3.5" "@jridgewell/trace-mapping": "npm:^0.3.25" - jsesc: "npm:^2.5.1" - checksum: 10c0/8d71a17b386536582354afba53cc784396458a88cc9f05f0c6de0ec99475f6f539943b3566b2e733820c4928236952473831765e483c25d68cc007a6e604d782 + jsesc: "npm:^3.0.2" + checksum: 10c0/167ebce8977142f5012fad6bd91da51ac52bcd752f2261a54b7ab605d928aebe57e21636cdd2a9c7757e552652c68d9fcb5d40b06fcb66e02d9ee7526e118a5c languageName: node linkType: hard -"@babel/helper-annotate-as-pure@npm:7.22.5, @babel/helper-annotate-as-pure@npm:^7.22.5": - version: 7.22.5 - resolution: "@babel/helper-annotate-as-pure@npm:7.22.5" +"@babel/helper-annotate-as-pure@npm:7.24.7": + version: 7.24.7 + resolution: "@babel/helper-annotate-as-pure@npm:7.24.7" dependencies: - "@babel/types": "npm:^7.22.5" - checksum: 10c0/5a80dc364ddda26b334bbbc0f6426cab647381555ef7d0cd32eb284e35b867c012ce6ce7d52a64672ed71383099c99d32765b3d260626527bb0e3470b0f58e45 + "@babel/types": "npm:^7.24.7" + checksum: 10c0/4679f7df4dffd5b3e26083ae65228116c3da34c3fff2c11ae11b259a61baec440f51e30fd236f7a0435b9d471acd93d0bc5a95df8213cbf02b1e083503d81b9a languageName: node linkType: hard @@ -1050,12 +1071,21 @@ __metadata: languageName: node linkType: hard -"@babel/helper-annotate-as-pure@npm:^7.24.6": - version: 7.24.6 - resolution: "@babel/helper-annotate-as-pure@npm:7.24.6" +"@babel/helper-annotate-as-pure@npm:^7.22.5": + version: 7.22.5 + resolution: "@babel/helper-annotate-as-pure@npm:7.22.5" + dependencies: + "@babel/types": "npm:^7.22.5" + checksum: 10c0/5a80dc364ddda26b334bbbc0f6426cab647381555ef7d0cd32eb284e35b867c012ce6ce7d52a64672ed71383099c99d32765b3d260626527bb0e3470b0f58e45 + languageName: node + linkType: hard + +"@babel/helper-annotate-as-pure@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/helper-annotate-as-pure@npm:7.25.9" dependencies: - "@babel/types": "npm:^7.24.6" - checksum: 10c0/3fe446e3bd37e5e32152279c84ace4e83815e5b88b9e09a82a83974a0bb22e941d89db26b23aaab4c9eb0f9713772c2f6163feffc1bcb055c4cdb6b67e5dc82f + "@babel/types": "npm:^7.25.9" + checksum: 10c0/095b6ba50489d797733abebc4596a81918316a99e3632755c9f02508882912b00c2ae5e468532a25a5c2108d109ddbe9b7da78333ee7cc13817fc50c00cf06fe languageName: node linkType: hard @@ -1078,12 +1108,13 @@ __metadata: languageName: node linkType: hard -"@babel/helper-builder-binary-assignment-operator-visitor@npm:^7.24.6": - version: 7.24.6 - resolution: "@babel/helper-builder-binary-assignment-operator-visitor@npm:7.24.6" +"@babel/helper-builder-binary-assignment-operator-visitor@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/helper-builder-binary-assignment-operator-visitor@npm:7.25.9" dependencies: - "@babel/types": "npm:^7.24.6" - checksum: 10c0/d468ba492163bdcf5b6c53248edcf0aaed6194c0f7bdebef4f29ef626e5b03e9fcc7ed737445eb80a961ec6e687c330e1c5242d8a724efb0af002141f3b3e66c + "@babel/traverse": "npm:^7.25.9" + "@babel/types": "npm:^7.25.9" + checksum: 10c0/a6068bb813e7f72d12b72edeecb99167f60cd7964cacedfb60e01fff5e7bed4a5a7f4f7414de7cf352a1b71487df5f8dab8c2b5230de4ad5aea16adf32e14219 languageName: node linkType: hard @@ -1128,16 +1159,16 @@ __metadata: languageName: node linkType: hard -"@babel/helper-compilation-targets@npm:^7.24.6": - version: 7.24.6 - resolution: "@babel/helper-compilation-targets@npm:7.24.6" +"@babel/helper-compilation-targets@npm:^7.25.2, @babel/helper-compilation-targets@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/helper-compilation-targets@npm:7.25.9" dependencies: - "@babel/compat-data": "npm:^7.24.6" - "@babel/helper-validator-option": "npm:^7.24.6" - browserslist: "npm:^4.22.2" + "@babel/compat-data": "npm:^7.25.9" + "@babel/helper-validator-option": "npm:^7.25.9" + browserslist: "npm:^4.24.0" lru-cache: "npm:^5.1.1" semver: "npm:^6.3.1" - checksum: 10c0/4d41150086959f5f4d72d27bae29204192e943537ecb71df1711d1f5d8791358a44f3a5882ed3c8238ba0c874b0b55213af43767e14771765f13b8d15b262432 + checksum: 10c0/a6b26a1e4222e69ef8e62ee19374308f060b007828bc11c65025ecc9e814aba21ff2175d6d3f8bf53c863edd728ee8f94ba7870f8f90a37d39552ad9933a8aaa languageName: node linkType: hard @@ -1178,22 +1209,20 @@ __metadata: languageName: node linkType: hard -"@babel/helper-create-class-features-plugin@npm:^7.24.6": - version: 7.24.6 - resolution: "@babel/helper-create-class-features-plugin@npm:7.24.6" +"@babel/helper-create-class-features-plugin@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/helper-create-class-features-plugin@npm:7.25.9" dependencies: - "@babel/helper-annotate-as-pure": "npm:^7.24.6" - "@babel/helper-environment-visitor": "npm:^7.24.6" - "@babel/helper-function-name": "npm:^7.24.6" - "@babel/helper-member-expression-to-functions": "npm:^7.24.6" - "@babel/helper-optimise-call-expression": "npm:^7.24.6" - "@babel/helper-replace-supers": "npm:^7.24.6" - "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.24.6" - "@babel/helper-split-export-declaration": "npm:^7.24.6" + "@babel/helper-annotate-as-pure": "npm:^7.25.9" + "@babel/helper-member-expression-to-functions": "npm:^7.25.9" + "@babel/helper-optimise-call-expression": "npm:^7.25.9" + "@babel/helper-replace-supers": "npm:^7.25.9" + "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.25.9" + "@babel/traverse": "npm:^7.25.9" semver: "npm:^6.3.1" peerDependencies: "@babel/core": ^7.0.0 - checksum: 10c0/e6734671bc6a5f3cca4ec46e4cc70238e5a2fa063e51225c2be572f157119002af419b33ea0f846dbb1307370fe9f3aa92d199449abbea5e88e0262513c8a821 + checksum: 10c0/b2bdd39f38056a76b9ba00ec5b209dd84f5c5ebd998d0f4033cf0e73d5f2c357fbb49d1ce52db77a2709fb29ee22321f84a5734dc9914849bdfee9ad12ce8caf languageName: node linkType: hard @@ -1222,16 +1251,16 @@ __metadata: languageName: node linkType: hard -"@babel/helper-create-regexp-features-plugin@npm:^7.24.6": - version: 7.24.6 - resolution: "@babel/helper-create-regexp-features-plugin@npm:7.24.6" +"@babel/helper-create-regexp-features-plugin@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/helper-create-regexp-features-plugin@npm:7.25.9" dependencies: - "@babel/helper-annotate-as-pure": "npm:^7.24.6" - regexpu-core: "npm:^5.3.1" + "@babel/helper-annotate-as-pure": "npm:^7.25.9" + regexpu-core: "npm:^6.1.1" semver: "npm:^6.3.1" peerDependencies: "@babel/core": ^7.0.0 - checksum: 10c0/c6e1b07c94b3b93a3f534039da88bc67ec3156080f1959aa07d5d534e9a640de3533e7ded0516dfcbccde955e91687044e6a950852b1d3f402ac5d5001be56cf + checksum: 10c0/3adc60a758febbf07d65a15eaccab1f7b9fcc55e7141e59122f13c9f81fc0d1cce4525b7f4af50285d27c93b34c859fd2c39c39820c5fb92211898c3bbdc77ef languageName: node linkType: hard @@ -1295,13 +1324,6 @@ __metadata: languageName: node linkType: hard -"@babel/helper-environment-visitor@npm:^7.24.6": - version: 7.24.6 - resolution: "@babel/helper-environment-visitor@npm:7.24.6" - checksum: 10c0/fdcd18ac505ed71f40c05cc992b648a4495b0aa5310a774492a0f74d8dcf3579691102f516561a651d3de6c3a44fe64bfb3049d11c14c5857634ef1823ea409a - languageName: node - linkType: hard - "@babel/helper-explode-assignable-expression@npm:^7.18.6": version: 7.18.6 resolution: "@babel/helper-explode-assignable-expression@npm:7.18.6" @@ -1331,16 +1353,6 @@ __metadata: languageName: node linkType: hard -"@babel/helper-function-name@npm:^7.24.6": - version: 7.24.6 - resolution: "@babel/helper-function-name@npm:7.24.6" - dependencies: - "@babel/template": "npm:^7.24.6" - "@babel/types": "npm:^7.24.6" - checksum: 10c0/5ba2f8db789b3f5a2b2239300a217aa212e303cd7bfad9c8b90563807f49215e8c679e8f8f177b6aaca2038038e29bc702b83839e1f7b4896d79c44a75cac97a - languageName: node - linkType: hard - "@babel/helper-hoist-variables@npm:^7.18.6": version: 7.18.6 resolution: "@babel/helper-hoist-variables@npm:7.18.6" @@ -1359,15 +1371,6 @@ __metadata: languageName: node linkType: hard -"@babel/helper-hoist-variables@npm:^7.24.6": - version: 7.24.6 - resolution: "@babel/helper-hoist-variables@npm:7.24.6" - dependencies: - "@babel/types": "npm:^7.24.6" - checksum: 10c0/e10ec6b864aaa419ec4934f5fcb5d0cfcc9d0657584a1b6c3c42ada949d44ca6bffcdab433a90ada4396c747e551cca31ba0e565ea005ab3f50964e3817bf6cf - languageName: node - linkType: hard - "@babel/helper-member-expression-to-functions@npm:^7.20.7, @babel/helper-member-expression-to-functions@npm:^7.21.0": version: 7.21.0 resolution: "@babel/helper-member-expression-to-functions@npm:7.21.0" @@ -1386,12 +1389,13 @@ __metadata: languageName: node linkType: hard -"@babel/helper-member-expression-to-functions@npm:^7.24.6": - version: 7.24.6 - resolution: "@babel/helper-member-expression-to-functions@npm:7.24.6" +"@babel/helper-member-expression-to-functions@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/helper-member-expression-to-functions@npm:7.25.9" dependencies: - "@babel/types": "npm:^7.24.6" - checksum: 10c0/7595f62978f55921b24de6ed5252fcedbffacfb8271f71e092f38724179ba554cb3a24a4764a1a3890b8a53504c2bee9c99eab81f1f365582739f566c8e28eaa + "@babel/traverse": "npm:^7.25.9" + "@babel/types": "npm:^7.25.9" + checksum: 10c0/e08c7616f111e1fb56f398365e78858e26e466d4ac46dff25921adc5ccae9b232f66e952a2f4162bbe336627ba336c7fd9eca4835b6548935973d3380d77eaff languageName: node linkType: hard @@ -1413,12 +1417,13 @@ __metadata: languageName: node linkType: hard -"@babel/helper-module-imports@npm:^7.24.1, @babel/helper-module-imports@npm:^7.24.3, @babel/helper-module-imports@npm:^7.24.6": - version: 7.24.6 - resolution: "@babel/helper-module-imports@npm:7.24.6" +"@babel/helper-module-imports@npm:^7.24.7, @babel/helper-module-imports@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/helper-module-imports@npm:7.25.9" dependencies: - "@babel/types": "npm:^7.24.6" - checksum: 10c0/e0db3fbfcd963d138f0792ff626f940a576fcf212d02b8fe6478dccf3421bd1c2a76f8e69c7450c049985e7b63b30be309a24eeeb6ad7c2137a31b676a095a84 + "@babel/traverse": "npm:^7.25.9" + "@babel/types": "npm:^7.25.9" + checksum: 10c0/078d3c2b45d1f97ffe6bb47f61961be4785d2342a4156d8b42c92ee4e1b7b9e365655dd6cb25329e8fe1a675c91eeac7e3d04f0c518b67e417e29d6e27b6aa70 languageName: node linkType: hard @@ -1468,18 +1473,16 @@ __metadata: languageName: node linkType: hard -"@babel/helper-module-transforms@npm:^7.24.5, @babel/helper-module-transforms@npm:^7.24.6": - version: 7.24.6 - resolution: "@babel/helper-module-transforms@npm:7.24.6" +"@babel/helper-module-transforms@npm:^7.25.2, @babel/helper-module-transforms@npm:^7.25.9, @babel/helper-module-transforms@npm:^7.26.0": + version: 7.26.0 + resolution: "@babel/helper-module-transforms@npm:7.26.0" dependencies: - "@babel/helper-environment-visitor": "npm:^7.24.6" - "@babel/helper-module-imports": "npm:^7.24.6" - "@babel/helper-simple-access": "npm:^7.24.6" - "@babel/helper-split-export-declaration": "npm:^7.24.6" - "@babel/helper-validator-identifier": "npm:^7.24.6" + "@babel/helper-module-imports": "npm:^7.25.9" + "@babel/helper-validator-identifier": "npm:^7.25.9" + "@babel/traverse": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0 - checksum: 10c0/9e2e3d0ddb397b36b9e8c7d94e175a36be8cb888ef370cefef2cdfd53ae1f87d567b268bd90ed9a6c706485a8de3da19cac577657613e9cd17210b91cbdfb00b + checksum: 10c0/ee111b68a5933481d76633dad9cdab30c41df4479f0e5e1cc4756dc9447c1afd2c9473b5ba006362e35b17f4ebddd5fca090233bef8dfc84dca9d9127e56ec3a languageName: node linkType: hard @@ -1501,12 +1504,12 @@ __metadata: languageName: node linkType: hard -"@babel/helper-optimise-call-expression@npm:^7.24.6": - version: 7.24.6 - resolution: "@babel/helper-optimise-call-expression@npm:7.24.6" +"@babel/helper-optimise-call-expression@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/helper-optimise-call-expression@npm:7.25.9" dependencies: - "@babel/types": "npm:^7.24.6" - checksum: 10c0/7fce2c4ce22c4ba3c2178d1ce85f34fc9bbe286af5ec153b4b6ea9bf2212390359c4a1e8a54551c4daa4688022d619668bdb8c8060cb185c0c9ad02c5247efc9 + "@babel/types": "npm:^7.25.9" + checksum: 10c0/90203e6607edeadd2a154940803fd616c0ed92c1013d6774c4b8eb491f1a5a3448b68faae6268141caa5c456e55e3ee49a4ed2bd7ddaf2365daea321c435914c languageName: node linkType: hard @@ -1538,10 +1541,10 @@ __metadata: languageName: node linkType: hard -"@babel/helper-plugin-utils@npm:^7.24.5, @babel/helper-plugin-utils@npm:^7.24.6": - version: 7.24.6 - resolution: "@babel/helper-plugin-utils@npm:7.24.6" - checksum: 10c0/636d3ce8cabc0621c1f78187e1d95f1087209921fa452f76aad06224ef5dffb3d934946f5183109920f32a4b94dd75ac91c63bc52813fee639d10cd54d49ba1f +"@babel/helper-plugin-utils@npm:^7.24.7, @babel/helper-plugin-utils@npm:^7.24.8, @babel/helper-plugin-utils@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/helper-plugin-utils@npm:7.25.9" + checksum: 10c0/483066a1ba36ff16c0116cd24f93de05de746a603a777cd695ac7a1b034928a65a4ecb35f255761ca56626435d7abdb73219eba196f9aa83b6c3c3169325599d languageName: node linkType: hard @@ -1572,16 +1575,16 @@ __metadata: languageName: node linkType: hard -"@babel/helper-remap-async-to-generator@npm:^7.24.6": - version: 7.24.6 - resolution: "@babel/helper-remap-async-to-generator@npm:7.24.6" +"@babel/helper-remap-async-to-generator@npm:^7.24.7, @babel/helper-remap-async-to-generator@npm:^7.25.0, @babel/helper-remap-async-to-generator@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/helper-remap-async-to-generator@npm:7.25.9" dependencies: - "@babel/helper-annotate-as-pure": "npm:^7.24.6" - "@babel/helper-environment-visitor": "npm:^7.24.6" - "@babel/helper-wrap-function": "npm:^7.24.6" + "@babel/helper-annotate-as-pure": "npm:^7.25.9" + "@babel/helper-wrap-function": "npm:^7.25.9" + "@babel/traverse": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0 - checksum: 10c0/b379b844eba352ac9487d31867e7bb2b8a264057f1739d9161b614145ea6e60969a7a82e75e5e83089e50cf1b6559f53aa085a787942bf40706fee15a2faa33c + checksum: 10c0/6798b562f2788210980f29c5ee96056d90dc73458c88af5bd32f9c82e28e01975588aa2a57bb866c35556bd9b76bac937e824ee63ba472b6430224b91b4879e9 languageName: node linkType: hard @@ -1612,16 +1615,16 @@ __metadata: languageName: node linkType: hard -"@babel/helper-replace-supers@npm:^7.24.6": - version: 7.24.6 - resolution: "@babel/helper-replace-supers@npm:7.24.6" +"@babel/helper-replace-supers@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/helper-replace-supers@npm:7.25.9" dependencies: - "@babel/helper-environment-visitor": "npm:^7.24.6" - "@babel/helper-member-expression-to-functions": "npm:^7.24.6" - "@babel/helper-optimise-call-expression": "npm:^7.24.6" + "@babel/helper-member-expression-to-functions": "npm:^7.25.9" + "@babel/helper-optimise-call-expression": "npm:^7.25.9" + "@babel/traverse": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0 - checksum: 10c0/aaf2dfaf25360da1525ecea5979d5afed201b96f0feeed2e15f90883a97776132a720b25039e67fee10a5c537363aea5cc2a46c0f1d13fdb86d0e920244f2da7 + checksum: 10c0/0b40d7d2925bd3ba4223b3519e2e4d2456d471ad69aa458f1c1d1783c80b522c61f8237d3a52afc9e47c7174129bbba650df06393a6787d5722f2ec7f223c3f4 languageName: node linkType: hard @@ -1643,12 +1646,13 @@ __metadata: languageName: node linkType: hard -"@babel/helper-simple-access@npm:^7.24.6": - version: 7.24.6 - resolution: "@babel/helper-simple-access@npm:7.24.6" +"@babel/helper-simple-access@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/helper-simple-access@npm:7.25.9" dependencies: - "@babel/types": "npm:^7.24.6" - checksum: 10c0/b17e404dd6c9787fc7d558aea5222471a77e29596705f0d10b4c2a58b9d71ff7eae915094204848cc1af99b771553caa69337a768b9abdd82b54a0050ba83eb9 + "@babel/traverse": "npm:^7.25.9" + "@babel/types": "npm:^7.25.9" + checksum: 10c0/3f1bcdb88ee3883ccf86959869a867f6bbf8c4737cd44fb9f799c38e54f67474590bc66802500ae9fe18161792875b2cfb7ec15673f48ed6c8663f6d09686ca8 languageName: node linkType: hard @@ -1670,21 +1674,22 @@ __metadata: languageName: node linkType: hard -"@babel/helper-skip-transparent-expression-wrappers@npm:^7.24.6": - version: 7.24.6 - resolution: "@babel/helper-skip-transparent-expression-wrappers@npm:7.24.6" +"@babel/helper-skip-transparent-expression-wrappers@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/helper-skip-transparent-expression-wrappers@npm:7.25.9" dependencies: - "@babel/types": "npm:^7.24.6" - checksum: 10c0/6928f698362d6082a67ee2bc73991ef6b0cc6b5f2854177389bc8f3c09296580f0ee20134dd1a29dfcb1906ad9e346fa0f7c6fcd7589ab3ff176d4f09504577f + "@babel/traverse": "npm:^7.25.9" + "@babel/types": "npm:^7.25.9" + checksum: 10c0/09ace0c6156961624ac9524329ce7f45350bab94bbe24335cbe0da7dfaa1448e658771831983cb83fe91cf6635b15d0a3cab57c03b92657480bfb49fb56dd184 languageName: node linkType: hard -"@babel/helper-split-export-declaration@npm:7.24.5": - version: 7.24.5 - resolution: "@babel/helper-split-export-declaration@npm:7.24.5" +"@babel/helper-split-export-declaration@npm:7.24.7": + version: 7.24.7 + resolution: "@babel/helper-split-export-declaration@npm:7.24.7" dependencies: - "@babel/types": "npm:^7.24.5" - checksum: 10c0/d7a812d67d031a348f3fb0e6263ce2dbe6038f81536ba7fb16db385383bcd6542b71833194303bf6d3d0e4f7b6b584c9c8fae8772122e2ce68fc9bdf07f4135d + "@babel/types": "npm:^7.24.7" + checksum: 10c0/0254577d7086bf09b01bbde98f731d4fcf4b7c3fa9634fdb87929801307c1f6202a1352e3faa5492450fa8da4420542d44de604daf540704ff349594a78184f6 languageName: node linkType: hard @@ -1706,15 +1711,6 @@ __metadata: languageName: node linkType: hard -"@babel/helper-split-export-declaration@npm:^7.24.6": - version: 7.24.6 - resolution: "@babel/helper-split-export-declaration@npm:7.24.6" - dependencies: - "@babel/types": "npm:^7.24.6" - checksum: 10c0/53a5dd8691fdffc89cc7fcf5aed0ad1d8bc39796a5782a3d170dcbf249eb5c15cc8a290e8d09615711d18798ad04a7d0694ab5195d35fa651abbc1b9c885d6a8 - languageName: node - linkType: hard - "@babel/helper-string-parser@npm:^7.19.4": version: 7.19.4 resolution: "@babel/helper-string-parser@npm:7.19.4" @@ -1736,13 +1732,6 @@ __metadata: languageName: node linkType: hard -"@babel/helper-string-parser@npm:^7.24.6": - version: 7.24.6 - resolution: "@babel/helper-string-parser@npm:7.24.6" - checksum: 10c0/95115bf676e92c4e99166395649108d97447e6cabef1fabaec8cdbc53a43f27b5df2268ff6534439d405bc1bd06685b163eb3b470455bd49f69159dada414145 - languageName: node - linkType: hard - "@babel/helper-string-parser@npm:^7.24.8": version: 7.24.8 resolution: "@babel/helper-string-parser@npm:7.24.8" @@ -1750,6 +1739,13 @@ __metadata: languageName: node linkType: hard +"@babel/helper-string-parser@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/helper-string-parser@npm:7.25.9" + checksum: 10c0/7244b45d8e65f6b4338a6a68a8556f2cb161b782343e97281a5f2b9b93e420cad0d9f5773a59d79f61d0c448913d06f6a2358a87f2e203cf112e3c5b53522ee6 + languageName: node + linkType: hard + "@babel/helper-validator-identifier@npm:^7.18.6, @babel/helper-validator-identifier@npm:^7.19.1": version: 7.19.1 resolution: "@babel/helper-validator-identifier@npm:7.19.1" @@ -1764,13 +1760,6 @@ __metadata: languageName: node linkType: hard -"@babel/helper-validator-identifier@npm:^7.24.6": - version: 7.24.6 - resolution: "@babel/helper-validator-identifier@npm:7.24.6" - checksum: 10c0/d29d2e3fca66c31867a009014169b93f7bc21c8fc1dd7d0b9d85d7a4000670526ff2222d966febb75a6e12f9859a31d1e75b558984e28ecb69651314dd0a6fd1 - languageName: node - linkType: hard - "@babel/helper-validator-identifier@npm:^7.24.7": version: 7.24.7 resolution: "@babel/helper-validator-identifier@npm:7.24.7" @@ -1778,6 +1767,13 @@ __metadata: languageName: node linkType: hard +"@babel/helper-validator-identifier@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/helper-validator-identifier@npm:7.25.9" + checksum: 10c0/4fc6f830177b7b7e887ad3277ddb3b91d81e6c4a24151540d9d1023e8dc6b1c0505f0f0628ae653601eb4388a8db45c1c14b2c07a9173837aef7e4116456259d + languageName: node + linkType: hard + "@babel/helper-validator-option@npm:^7.18.6, @babel/helper-validator-option@npm:^7.21.0": version: 7.21.0 resolution: "@babel/helper-validator-option@npm:7.21.0" @@ -1799,10 +1795,10 @@ __metadata: languageName: node linkType: hard -"@babel/helper-validator-option@npm:^7.24.6": - version: 7.24.6 - resolution: "@babel/helper-validator-option@npm:7.24.6" - checksum: 10c0/787268dff5cf77f3b704454b96ab7b58aa4f43b2808247e51859a103a1c28a9c252100f830433f4b37a73f4a61ba745bbeef4cdccbab48c1e9adf037f4ca3491 +"@babel/helper-validator-option@npm:^7.24.8, @babel/helper-validator-option@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/helper-validator-option@npm:7.25.9" + checksum: 10c0/27fb195d14c7dcb07f14e58fe77c44eea19a6a40a74472ec05c441478fa0bb49fa1c32b2d64be7a38870ee48ef6601bdebe98d512f0253aea0b39756c4014f3e languageName: node linkType: hard @@ -1829,14 +1825,14 @@ __metadata: languageName: node linkType: hard -"@babel/helper-wrap-function@npm:^7.24.6": - version: 7.24.6 - resolution: "@babel/helper-wrap-function@npm:7.24.6" +"@babel/helper-wrap-function@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/helper-wrap-function@npm:7.25.9" dependencies: - "@babel/helper-function-name": "npm:^7.24.6" - "@babel/template": "npm:^7.24.6" - "@babel/types": "npm:^7.24.6" - checksum: 10c0/d32844275a544a8e7c71c13e9832d34d80656aafce659dc6c23b02e14d1c1179d8045125ded5096da1a99de83299ffb48211183d0403da2c8584ed55dc0ab646 + "@babel/template": "npm:^7.25.9" + "@babel/traverse": "npm:^7.25.9" + "@babel/types": "npm:^7.25.9" + checksum: 10c0/b6627d83291e7b80df020f8ee2890c52b8d49272962cac0114ef90f189889c90f1027985873d1b5261a4e986e109b2754292dc112392f0b1fcbfc91cc08bd003 languageName: node linkType: hard @@ -1862,13 +1858,13 @@ __metadata: languageName: node linkType: hard -"@babel/helpers@npm:^7.24.4, @babel/helpers@npm:^7.24.5": - version: 7.24.6 - resolution: "@babel/helpers@npm:7.24.6" +"@babel/helpers@npm:^7.25.0, @babel/helpers@npm:^7.26.0": + version: 7.26.0 + resolution: "@babel/helpers@npm:7.26.0" dependencies: - "@babel/template": "npm:^7.24.6" - "@babel/types": "npm:^7.24.6" - checksum: 10c0/e5b5c0919fd6fa56ae11c15a72962d8de0ac19db524849554af28cf08ac32f9ae5aee49a43146eb150f54418cefb8e890fa2b2f33d029434dc7777dbcdfd5bac + "@babel/template": "npm:^7.25.9" + "@babel/types": "npm:^7.26.0" + checksum: 10c0/343333cced6946fe46617690a1d0789346960910225ce359021a88a60a65bc0d791f0c5d240c0ed46cf8cc63b5fd7df52734ff14e43b9c32feae2b61b1647097 languageName: node linkType: hard @@ -1905,30 +1901,6 @@ __metadata: languageName: node linkType: hard -"@babel/highlight@npm:^7.24.2": - version: 7.24.2 - resolution: "@babel/highlight@npm:7.24.2" - dependencies: - "@babel/helper-validator-identifier": "npm:^7.22.20" - chalk: "npm:^2.4.2" - js-tokens: "npm:^4.0.0" - picocolors: "npm:^1.0.0" - checksum: 10c0/98ce00321daedeed33a4ed9362dc089a70375ff1b3b91228b9f05e6591d387a81a8cba68886e207861b8871efa0bc997ceabdd9c90f6cce3ee1b2f7f941b42db - languageName: node - linkType: hard - -"@babel/highlight@npm:^7.24.6": - version: 7.24.6 - resolution: "@babel/highlight@npm:7.24.6" - dependencies: - "@babel/helper-validator-identifier": "npm:^7.24.6" - chalk: "npm:^2.4.2" - js-tokens: "npm:^4.0.0" - picocolors: "npm:^1.0.0" - checksum: 10c0/5bbc31695e5d44e97feb267f7aaf4c52908560d184ffeb2e2e57aae058d40125592931883889413e19def3326895ddb41ff45e090fa90b459d8c294b4ffc238c - languageName: node - linkType: hard - "@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.12.7, @babel/parser@npm:^7.14.7, @babel/parser@npm:^7.18.8, @babel/parser@npm:^7.20.7, @babel/parser@npm:^7.21.4": version: 7.21.4 resolution: "@babel/parser@npm:7.21.4" @@ -1947,42 +1919,46 @@ __metadata: languageName: node linkType: hard -"@babel/parser@npm:^7.24.0": - version: 7.24.0 - resolution: "@babel/parser@npm:7.24.0" +"@babel/parser@npm:^7.23.9, @babel/parser@npm:^7.25.0, @babel/parser@npm:^7.25.9, @babel/parser@npm:^7.26.0, @babel/parser@npm:^7.26.2": + version: 7.26.2 + resolution: "@babel/parser@npm:7.26.2" + dependencies: + "@babel/types": "npm:^7.26.0" bin: parser: ./bin/babel-parser.js - checksum: 10c0/77593d0b9de9906823c4d653bb6cda1c7593837598516330f655f70cba6224a37def7dbe5b4dad0038482d407d8d209eb8be5f48ca9a13357d769f829c5adb8e + checksum: 10c0/751a743087b3a9172a7599f1421830d44c38f065ef781588d2bfb1c98f9b461719a226feb13c868d7a284783eee120c88ea522593118f2668f46ebfb1105c4d7 languageName: node linkType: hard -"@babel/parser@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/parser@npm:7.24.1" +"@babel/parser@npm:^7.24.0": + version: 7.24.0 + resolution: "@babel/parser@npm:7.24.0" bin: parser: ./bin/babel-parser.js - checksum: 10c0/d2a8b99aa5f33182b69d5569367403a40e7c027ae3b03a1f81fd8ac9b06ceb85b31f6ee4267fb90726dc2ac99909c6bdaa9cf16c379efab73d8dfe85cee32c50 + checksum: 10c0/77593d0b9de9906823c4d653bb6cda1c7593837598516330f655f70cba6224a37def7dbe5b4dad0038482d407d8d209eb8be5f48ca9a13357d769f829c5adb8e languageName: node linkType: hard -"@babel/parser@npm:^7.24.4, @babel/parser@npm:^7.24.5, @babel/parser@npm:^7.24.6": - version: 7.24.6 - resolution: "@babel/parser@npm:7.24.6" - bin: - parser: ./bin/babel-parser.js - checksum: 10c0/cbef70923078a20fe163b03f4a6482be65ed99d409a57f3091a23ce3a575ee75716c30e7ea9f40b692ac5660f34055f4cbeb66a354fad15a6cf1fca35c3496c5 +"@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:^7.25.3": + version: 7.25.9 + resolution: "@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:7.25.9" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.9" + "@babel/traverse": "npm:^7.25.9" + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 10c0/7aab47fcbb8c1ddc195a3cd66609edcad54c5022f018db7de40185f0182950389690e953e952f117a1737b72f665ff02ad30de6c02b49b97f1d8f4ccdffedc34 languageName: node linkType: hard -"@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:^7.24.5": - version: 7.24.6 - resolution: "@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:7.24.6" +"@babel/plugin-bugfix-safari-class-field-initializer-scope@npm:^7.25.0": + version: 7.25.9 + resolution: "@babel/plugin-bugfix-safari-class-field-initializer-scope@npm:7.25.9" dependencies: - "@babel/helper-environment-visitor": "npm:^7.24.6" - "@babel/helper-plugin-utils": "npm:^7.24.6" + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0 - checksum: 10c0/0dbf12de5a7e5d092271124f0d9bff1ceb94871d5563041940512671cd40ab2a93d613715ee37076cd8263cf49579afb805faa3189996c11639bb10d3e9837f1 + checksum: 10c0/3a652b3574ca62775c5f101f8457950edc540c3581226579125da535d67765f41ad7f0e6327f8efeb2540a5dad5bb0c60a89fb934af3f67472e73fb63612d004 languageName: node linkType: hard @@ -2008,14 +1984,14 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:^7.24.1": - version: 7.24.6 - resolution: "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:7.24.6" +"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:^7.25.0": + version: 7.25.9 + resolution: "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.6" + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0 - checksum: 10c0/b0a03d4f587e1fa92312c912864a0af3f68bfc87367b7c93770e94f171767d563d7adfca7ad571d20cd755e89e1373e7414973ce30e694e7b6eb8f57d2b1b889 + checksum: 10c0/18fc9004104a150f9f5da9f3307f361bc3104d16778bb593b7523d5110f04a8df19a2587e6bdd5e726fb1d397191add45223f4f731bb556c33f14f2779d596e8 languageName: node linkType: hard @@ -2045,16 +2021,16 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:^7.24.1": - version: 7.24.6 - resolution: "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:7.24.6" +"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:^7.24.7": + version: 7.25.9 + resolution: "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.6" - "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.24.6" - "@babel/plugin-transform-optional-chaining": "npm:^7.24.6" + "@babel/helper-plugin-utils": "npm:^7.25.9" + "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.25.9" + "@babel/plugin-transform-optional-chaining": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.13.0 - checksum: 10c0/fdd40fdf7e87f3dbc5396c9a8f92005798865f6f20d2c24c33246ac43aab8df93742b63dfcfcda67c0a5cf1f7b8a987fdbccaceb9ccbb9a67bef10012b522390 + checksum: 10c0/3f6c8781a2f7aa1791a31d2242399ca884df2ab944f90c020b6f112fb19f05fa6dad5be143d274dad1377e40415b63d24d5489faf5060b9c4a99e55d8f0c317c languageName: node linkType: hard @@ -2070,15 +2046,15 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@npm:^7.24.1": - version: 7.24.6 - resolution: "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@npm:7.24.6" +"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@npm:^7.25.0": + version: 7.25.9 + resolution: "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@npm:7.25.9" dependencies: - "@babel/helper-environment-visitor": "npm:^7.24.6" - "@babel/helper-plugin-utils": "npm:^7.24.6" + "@babel/helper-plugin-utils": "npm:^7.25.9" + "@babel/traverse": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0 - checksum: 10c0/cc1e8ee138c71e78ec262a5198d2cf75c305f2fb4ea9771ebd4ded47f51bc1bacbf917db3cb28c681e7499a07f9803ab0bbe5ad50b9576cbe03902189e3871ed + checksum: 10c0/02b365f0cc4df8b8b811c68697c93476da387841e5f153fe42766f34241b685503ea51110d5ed6df7132759820b93e48d9fa3743cffc091eed97c19f7e5fe272 languageName: node linkType: hard @@ -2407,14 +2383,25 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-syntax-import-assertions@npm:^7.24.1": - version: 7.24.6 - resolution: "@babel/plugin-syntax-import-assertions@npm:7.24.6" +"@babel/plugin-syntax-import-assertions@npm:^7.24.7": + version: 7.26.0 + resolution: "@babel/plugin-syntax-import-assertions@npm:7.26.0" + dependencies: + "@babel/helper-plugin-utils": "npm:^7.25.9" + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 10c0/525b174e60b210d96c1744c1575fc2ddedcc43a479cba64a5344cf77bd0541754fc58120b5a11ff832ba098437bb05aa80900d1f49bb3d888c5e349a4a3a356e + languageName: node + linkType: hard + +"@babel/plugin-syntax-import-attributes@npm:7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-syntax-import-attributes@npm:7.24.7" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.6" + "@babel/helper-plugin-utils": "npm:^7.24.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/8e81c7cd3d5812a3dda32f06f84492a1b5640f42c594619ed57bf4017529889f87bfb4e8e95c50ba1527d89501dae71a0c73770502676545c2cd9ce58ce3258d + checksum: 10c0/eccc54d0f03c96d0eec7a6e2fa124dadbc7298345b62ffc4238f173308c4325b5598f139695ff05a95cf78412ef6903599e4b814496612bf39aad4715a16375b languageName: node linkType: hard @@ -2429,14 +2416,14 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-syntax-import-attributes@npm:^7.24.1": - version: 7.24.6 - resolution: "@babel/plugin-syntax-import-attributes@npm:7.24.6" +"@babel/plugin-syntax-import-attributes@npm:^7.24.7": + version: 7.26.0 + resolution: "@babel/plugin-syntax-import-attributes@npm:7.26.0" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.6" + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/c4d8554b89c0daa6d3c430582b98c10a3af2de8eab484082e97cb73f2712780ab6dd8d11d783c4b266efef76f4479abf4944ef8f416a4459b05eecaf438f8774 + checksum: 10c0/e594c185b12bfe0bbe7ca78dfeebe870e6d569a12128cac86f3164a075fe0ff70e25ddbd97fd0782906b91f65560c9dc6957716b7b4a68aba2516c9b7455e352 languageName: node linkType: hard @@ -2639,28 +2626,28 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-arrow-functions@npm:^7.24.1": - version: 7.24.6 - resolution: "@babel/plugin-transform-arrow-functions@npm:7.24.6" +"@babel/plugin-transform-arrow-functions@npm:^7.24.7": + version: 7.25.9 + resolution: "@babel/plugin-transform-arrow-functions@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.6" + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/46250eb3f535327825db323740a301b76b882b70979f1fb5f89cbb1a820378ab68ee880b912981dd5276dd116deaaee0f4a2a95f1c9cf537a67749fd4209a2d3 + checksum: 10c0/851fef9f58be60a80f46cc0ce1e46a6f7346a6f9d50fa9e0fa79d46ec205320069d0cc157db213e2bea88ef5b7d9bd7618bb83f0b1996a836e2426c3a3a1f622 languageName: node linkType: hard -"@babel/plugin-transform-async-generator-functions@npm:7.24.3": - version: 7.24.3 - resolution: "@babel/plugin-transform-async-generator-functions@npm:7.24.3" +"@babel/plugin-transform-async-generator-functions@npm:7.25.0": + version: 7.25.0 + resolution: "@babel/plugin-transform-async-generator-functions@npm:7.25.0" dependencies: - "@babel/helper-environment-visitor": "npm:^7.22.20" - "@babel/helper-plugin-utils": "npm:^7.24.0" - "@babel/helper-remap-async-to-generator": "npm:^7.22.20" + "@babel/helper-plugin-utils": "npm:^7.24.8" + "@babel/helper-remap-async-to-generator": "npm:^7.25.0" "@babel/plugin-syntax-async-generators": "npm:^7.8.4" + "@babel/traverse": "npm:^7.25.0" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/55ceed059f819dcccbfe69600bfa1c055ada466bd54eda117cfdd2cf773dd85799e2f6556e4a559b076e93b9704abcca2aef9d72aad7dc8a5d3d17886052f1d3 + checksum: 10c0/5348c3a33d16e0d62f13482c6fa432185ba096d58880b08d42450f7db662d6b03e6149d495c8620897dcd3da35061068cbd6c09da7d0ec95743e55a788809e4e languageName: node linkType: hard @@ -2678,30 +2665,29 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-async-generator-functions@npm:^7.24.3": - version: 7.24.6 - resolution: "@babel/plugin-transform-async-generator-functions@npm:7.24.6" +"@babel/plugin-transform-async-generator-functions@npm:^7.25.0": + version: 7.25.9 + resolution: "@babel/plugin-transform-async-generator-functions@npm:7.25.9" dependencies: - "@babel/helper-environment-visitor": "npm:^7.24.6" - "@babel/helper-plugin-utils": "npm:^7.24.6" - "@babel/helper-remap-async-to-generator": "npm:^7.24.6" - "@babel/plugin-syntax-async-generators": "npm:^7.8.4" + "@babel/helper-plugin-utils": "npm:^7.25.9" + "@babel/helper-remap-async-to-generator": "npm:^7.25.9" + "@babel/traverse": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/8876431855220ccfbf1ae510a4a7c4e0377b21189d3f73ea6dde5ffd31eee57f03ea2b2d1da59b6a36b6e107e41b38d0c1d1bb015e0d1c2c2fb627962260edb7 + checksum: 10c0/e3fcb9fc3d6ab6cbd4fcd956b48c17b5e92fe177553df266ffcd2b2c1f2f758b893e51b638e77ed867941e0436487d2b8b505908d615c41799241699b520dec6 languageName: node linkType: hard -"@babel/plugin-transform-async-to-generator@npm:7.24.1": - version: 7.24.1 - resolution: "@babel/plugin-transform-async-to-generator@npm:7.24.1" +"@babel/plugin-transform-async-to-generator@npm:7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-async-to-generator@npm:7.24.7" dependencies: - "@babel/helper-module-imports": "npm:^7.24.1" - "@babel/helper-plugin-utils": "npm:^7.24.0" - "@babel/helper-remap-async-to-generator": "npm:^7.22.20" + "@babel/helper-module-imports": "npm:^7.24.7" + "@babel/helper-plugin-utils": "npm:^7.24.7" + "@babel/helper-remap-async-to-generator": "npm:^7.24.7" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/3731ba8e83cbea1ab22905031f25b3aeb0b97c6467360a2cc685352f16e7c786417d8883bc747f5a0beff32266bdb12a05b6292e7b8b75967087200a7bc012c4 + checksum: 10c0/83c82e243898875af8457972a26ab29baf8a2078768ee9f35141eb3edff0f84b165582a2ff73e90a9e08f5922bf813dbf15a85c1213654385198f4591c0dc45d languageName: node linkType: hard @@ -2731,16 +2717,16 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-async-to-generator@npm:^7.24.1": - version: 7.24.6 - resolution: "@babel/plugin-transform-async-to-generator@npm:7.24.6" +"@babel/plugin-transform-async-to-generator@npm:^7.24.7": + version: 7.25.9 + resolution: "@babel/plugin-transform-async-to-generator@npm:7.25.9" dependencies: - "@babel/helper-module-imports": "npm:^7.24.6" - "@babel/helper-plugin-utils": "npm:^7.24.6" - "@babel/helper-remap-async-to-generator": "npm:^7.24.6" + "@babel/helper-module-imports": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.25.9" + "@babel/helper-remap-async-to-generator": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/52c137668e7a35356c3b1caf25ab3bf90ff61199885bfd9f0232bfe168a53a5cf0ca4c1e283c27e44ad76cc366b73e4ff7042241469d1944c7042fb78c57bfd8 + checksum: 10c0/c443d9e462ddef733ae56360064f32fc800105803d892e4ff32d7d6a6922b3765fa97b9ddc9f7f1d3f9d8c2d95721d85bef9dbf507804214c6cf6466b105c168 languageName: node linkType: hard @@ -2766,14 +2752,14 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-block-scoped-functions@npm:^7.24.1": - version: 7.24.6 - resolution: "@babel/plugin-transform-block-scoped-functions@npm:7.24.6" +"@babel/plugin-transform-block-scoped-functions@npm:^7.24.7": + version: 7.25.9 + resolution: "@babel/plugin-transform-block-scoped-functions@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.6" + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/0c761b5e3a2959b63edf47d67f6752e01f24777ad1accd82457a2dca059877f8a8297fbc7a062db6b48836309932f2ac645c507070ef6ad4e765b3600822c048 + checksum: 10c0/e92ba0e3d72c038513844d8fca1cc8437dcb35cd42778e97fd03cb8303380b201468611e7ecfdcae3de33473b2679fe2de1552c5f925d112c5693425cf851f10 languageName: node linkType: hard @@ -2799,14 +2785,14 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-block-scoping@npm:^7.24.5": - version: 7.24.6 - resolution: "@babel/plugin-transform-block-scoping@npm:7.24.6" +"@babel/plugin-transform-block-scoping@npm:^7.25.0": + version: 7.25.9 + resolution: "@babel/plugin-transform-block-scoping@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.6" + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/95c25e501c4553515f92d4e86032a8859a8855cea8aafb6df30f956979caa70af1e126e6dfaf9e51328d1306232ff1e081bda7d84a9aaf23f418d9da120c7018 + checksum: 10c0/a76e30becb6c75b4d87a2cd53556fddb7c88ddd56bfadb965287fd944810ac159aa8eb5705366fc37336041f63154ed9fab3862fb10482a45bf5ede63fd55fda languageName: node linkType: hard @@ -2834,15 +2820,15 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-class-properties@npm:^7.24.1": - version: 7.24.6 - resolution: "@babel/plugin-transform-class-properties@npm:7.24.6" +"@babel/plugin-transform-class-properties@npm:^7.24.7": + version: 7.25.9 + resolution: "@babel/plugin-transform-class-properties@npm:7.25.9" dependencies: - "@babel/helper-create-class-features-plugin": "npm:^7.24.6" - "@babel/helper-plugin-utils": "npm:^7.24.6" + "@babel/helper-create-class-features-plugin": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/ae01e00dd528112d542a77f0f1cf6b43726553d2011bbdec9e4fac441dfa161d44bf14449dc4121b45cc971686a8c652652032594e83c5d6cab8e9fd794eecb2 + checksum: 10c0/f0603b6bd34d8ba62c03fc0572cb8bbc75874d097ac20cc7c5379e001081210a84dba1749e7123fca43b978382f605bb9973c99caf2c5b4c492d5c0a4a441150 languageName: node linkType: hard @@ -2859,16 +2845,15 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-class-static-block@npm:^7.24.4": - version: 7.24.6 - resolution: "@babel/plugin-transform-class-static-block@npm:7.24.6" +"@babel/plugin-transform-class-static-block@npm:^7.24.7": + version: 7.26.0 + resolution: "@babel/plugin-transform-class-static-block@npm:7.26.0" dependencies: - "@babel/helper-create-class-features-plugin": "npm:^7.24.6" - "@babel/helper-plugin-utils": "npm:^7.24.6" - "@babel/plugin-syntax-class-static-block": "npm:^7.14.5" + "@babel/helper-create-class-features-plugin": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.12.0 - checksum: 10c0/425f237faf62b531d973f23ac3eefe3f29c4f6c988c33c2dd660b6dfb61d4ed1e865a5088574742d87ed02437d26aa6ec6b107468b7df35ca9d3082bad742d8f + checksum: 10c0/cdcf5545ae6514ed75fbd73cccfa209c6a5dfdf0c2bb7bb62c0fb4ec334a32281bcf1bc16ace494d9dbe93feb8bdc0bd3cf9d9ccb6316e634a67056fa13b741b languageName: node linkType: hard @@ -2909,21 +2894,19 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-classes@npm:^7.24.5": - version: 7.24.6 - resolution: "@babel/plugin-transform-classes@npm:7.24.6" +"@babel/plugin-transform-classes@npm:^7.25.0": + version: 7.25.9 + resolution: "@babel/plugin-transform-classes@npm:7.25.9" dependencies: - "@babel/helper-annotate-as-pure": "npm:^7.24.6" - "@babel/helper-compilation-targets": "npm:^7.24.6" - "@babel/helper-environment-visitor": "npm:^7.24.6" - "@babel/helper-function-name": "npm:^7.24.6" - "@babel/helper-plugin-utils": "npm:^7.24.6" - "@babel/helper-replace-supers": "npm:^7.24.6" - "@babel/helper-split-export-declaration": "npm:^7.24.6" + "@babel/helper-annotate-as-pure": "npm:^7.25.9" + "@babel/helper-compilation-targets": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.25.9" + "@babel/helper-replace-supers": "npm:^7.25.9" + "@babel/traverse": "npm:^7.25.9" globals: "npm:^11.1.0" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/d29c26feea9ad5a64d790aeab1833b7a50d6af2be24140dad7e06510b754b8fe0ffb292d43d96fedaf7765fcb90c0034ac7c42635f814d9235697431076a1cf0 + checksum: 10c0/02742ea7cd25be286c982e672619effca528d7a931626a6f3d6cea11852951b7ee973276127eaf6418ac0e18c4d749a16b520709c707e86a67012bd23ff2927d languageName: node linkType: hard @@ -2951,15 +2934,15 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-computed-properties@npm:^7.24.1": - version: 7.24.6 - resolution: "@babel/plugin-transform-computed-properties@npm:7.24.6" +"@babel/plugin-transform-computed-properties@npm:^7.24.7": + version: 7.25.9 + resolution: "@babel/plugin-transform-computed-properties@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.6" - "@babel/template": "npm:^7.24.6" + "@babel/helper-plugin-utils": "npm:^7.25.9" + "@babel/template": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/c464144c2eda8d526d70c8d8e3bf30820f591424991452f816617347ef3ccc5d04133c6e903b90c1d832d95d9c8550e5693ea40ea14856ede54fb8e1cd36c5de + checksum: 10c0/948c0ae3ce0ba2375241d122a9bc7cda4a7ac8110bd8a62cd804bc46a5fdb7a7a42c7799c4cd972e14e0a579d2bd0999b92e53177b73f240bb0d4b09972c758b languageName: node linkType: hard @@ -2985,14 +2968,14 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-destructuring@npm:^7.24.5": - version: 7.24.6 - resolution: "@babel/plugin-transform-destructuring@npm:7.24.6" +"@babel/plugin-transform-destructuring@npm:^7.24.8": + version: 7.25.9 + resolution: "@babel/plugin-transform-destructuring@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.6" + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/1fcc064e2b0c45a4340418bd70d2cf2b3644d1215eb975ec14f83e4f7615fdc3948e355db5091f81602f6c3d933f9308caa66232091aad4edd6c16b00240fcc7 + checksum: 10c0/7beec5fda665d108f69d5023aa7c298a1e566b973dd41290faa18aeea70f6f571295c1ece0a058f3ceb6c6c96de76de7cd34f5a227fbf09a1b8d8a735d28ca49 languageName: node linkType: hard @@ -3020,15 +3003,15 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-dotall-regex@npm:^7.24.1": - version: 7.24.6 - resolution: "@babel/plugin-transform-dotall-regex@npm:7.24.6" +"@babel/plugin-transform-dotall-regex@npm:^7.24.7": + version: 7.25.9 + resolution: "@babel/plugin-transform-dotall-regex@npm:7.25.9" dependencies: - "@babel/helper-create-regexp-features-plugin": "npm:^7.24.6" - "@babel/helper-plugin-utils": "npm:^7.24.6" + "@babel/helper-create-regexp-features-plugin": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/4a2c98f1c22a18754c6ada1486563865690008df2536066d8a146fa58eed8515b607e162c7efb0b8fa062d755e77afea145495046cffdb4ea56194d38f489254 + checksum: 10c0/7c3471ae5cf7521fd8da5b03e137e8d3733fc5ee4524ce01fb0c812f0bb77cb2c9657bc8a6253186be3a15bb4caa8974993c7ddc067f554ecc6a026f0a3b5e12 languageName: node linkType: hard @@ -3054,14 +3037,26 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-duplicate-keys@npm:^7.24.1": - version: 7.24.6 - resolution: "@babel/plugin-transform-duplicate-keys@npm:7.24.6" +"@babel/plugin-transform-duplicate-keys@npm:^7.24.7": + version: 7.25.9 + resolution: "@babel/plugin-transform-duplicate-keys@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.6" + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/44ddba252f0b9f1f0b1ff8d903bbcf8871246670fb2883f65d09d371d403ce9c3e2e582b94b36506c1d042110b464eb3492e53cd1e87c1d479b145bcc01c04fd + checksum: 10c0/d0c74894b9bf6ff2a04189afffb9cd43d87ebd7b7943e51a827c92d2aaa40fa89ac81565a2fd6fbeabf9e38413a9264c45862eee2b017f1d49046cc3c8ff06b4 + languageName: node + linkType: hard + +"@babel/plugin-transform-duplicate-named-capturing-groups-regex@npm:^7.25.0": + version: 7.25.9 + resolution: "@babel/plugin-transform-duplicate-named-capturing-groups-regex@npm:7.25.9" + dependencies: + "@babel/helper-create-regexp-features-plugin": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.25.9" + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 10c0/a8039a6d2b90e011c7b30975edee47b5b1097cf3c2f95ec1f5ddd029898d783a995f55f7d6eb8d6bb8873c060fb64f9f1ccba938dfe22d118d09cf68e0cd3bf6 languageName: node linkType: hard @@ -3077,15 +3072,14 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-dynamic-import@npm:^7.24.1": - version: 7.24.6 - resolution: "@babel/plugin-transform-dynamic-import@npm:7.24.6" +"@babel/plugin-transform-dynamic-import@npm:^7.24.7": + version: 7.25.9 + resolution: "@babel/plugin-transform-dynamic-import@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.6" - "@babel/plugin-syntax-dynamic-import": "npm:^7.8.3" + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/b4411f21112127a02aef15103765e207e4c03e7321d7f4de3522fc181cb377c5abc8484cf0169e6c30f2e51e6c602c09894fa6b15643d24f66273833ef34e4a6 + checksum: 10c0/5e643a8209072b668350f5788f23c64e9124f81f958b595c80fecca6561086d8ef346c04391b9e5e4cad8b8cbe22c258f0cd5f4ea89b97e74438e7d1abfd98cf languageName: node linkType: hard @@ -3113,15 +3107,15 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-exponentiation-operator@npm:^7.24.1": - version: 7.24.6 - resolution: "@babel/plugin-transform-exponentiation-operator@npm:7.24.6" +"@babel/plugin-transform-exponentiation-operator@npm:^7.24.7": + version: 7.25.9 + resolution: "@babel/plugin-transform-exponentiation-operator@npm:7.25.9" dependencies: - "@babel/helper-builder-binary-assignment-operator-visitor": "npm:^7.24.6" - "@babel/helper-plugin-utils": "npm:^7.24.6" + "@babel/helper-builder-binary-assignment-operator-visitor": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/c4f15518a5d1614dfac0dbadfb99b0f36a98c1c1ff1c39794a105c3c87cfce00689e0943fcb13368b43b00b2eebaa01136ea12fb8600a574720853b5a8a11de7 + checksum: 10c0/3b42f65bab3fee28c385115ce6bcb6ba544dff187012df408a432c9fb44c980afd898911020c723dc1c9257aaf3d7d0131ad83ba15102bf30ad9a86fc2a8a912 languageName: node linkType: hard @@ -3137,15 +3131,14 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-export-namespace-from@npm:^7.24.1": - version: 7.24.6 - resolution: "@babel/plugin-transform-export-namespace-from@npm:7.24.6" +"@babel/plugin-transform-export-namespace-from@npm:^7.24.7": + version: 7.25.9 + resolution: "@babel/plugin-transform-export-namespace-from@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.6" - "@babel/plugin-syntax-export-namespace-from": "npm:^7.8.3" + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/bff16d1800d7e5b38d3a3c8d404cc14442a37383dff7769dcc599a0723b2507647cafe9ba7d9b52d2e2f02a78bb78d149676d8d8ddf7357b160f4096b89ae9c5 + checksum: 10c0/f291ea2ec5f36de9028a00cbd5b32f08af281b8183bf047200ff001f4cb260be56f156b2449f42149448a4a033bd6e86a3a7f06d0c2825532eb0ae6b03058dfb languageName: node linkType: hard @@ -3172,15 +3165,15 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-for-of@npm:^7.24.1": - version: 7.24.6 - resolution: "@babel/plugin-transform-for-of@npm:7.24.6" +"@babel/plugin-transform-for-of@npm:^7.24.7": + version: 7.25.9 + resolution: "@babel/plugin-transform-for-of@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.6" - "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.24.6" + "@babel/helper-plugin-utils": "npm:^7.25.9" + "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/c8def2a160783c5c4a1c136c721fc88aca9cd3757a60f1c885a804b5320edb5f143d3f989f698bdd9aae359fdabab0830dba3d35138cea42988a77d2c72c8443 + checksum: 10c0/bf11abc71934a1f369f39cd7a33cf3d4dc5673026a53f70b7c1238c4fcc44e68b3ca1bdbe3db2076f60defb6ffe117cbe10b90f3e1a613b551d88f7c4e693bbe languageName: node linkType: hard @@ -3210,16 +3203,16 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-function-name@npm:^7.24.1": - version: 7.24.6 - resolution: "@babel/plugin-transform-function-name@npm:7.24.6" +"@babel/plugin-transform-function-name@npm:^7.25.1": + version: 7.25.9 + resolution: "@babel/plugin-transform-function-name@npm:7.25.9" dependencies: - "@babel/helper-compilation-targets": "npm:^7.24.6" - "@babel/helper-function-name": "npm:^7.24.6" - "@babel/helper-plugin-utils": "npm:^7.24.6" + "@babel/helper-compilation-targets": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.25.9" + "@babel/traverse": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/efa6527438ad94df0b7a4c92c33110ec40b086a0aceda567176b150ed291f8eb44b2ce697d8e3e1d4841496c10693add1e88f296418e72a171ead5c76b890a47 + checksum: 10c0/8e67fbd1dd367927b8b6afdf0a6e7cb3a3fd70766c52f700ca77428b6d536f6c9d7ec643e7762d64b23093233765c66bffa40e31aabe6492682879bcb45423e1 languageName: node linkType: hard @@ -3235,15 +3228,14 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-json-strings@npm:^7.24.1": - version: 7.24.6 - resolution: "@babel/plugin-transform-json-strings@npm:7.24.6" +"@babel/plugin-transform-json-strings@npm:^7.24.7": + version: 7.25.9 + resolution: "@babel/plugin-transform-json-strings@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.6" - "@babel/plugin-syntax-json-strings": "npm:^7.8.3" + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/46af52dcc16f494c6c11dc22c944f2533623b9d9dfce5097bc0bdb99535ad4c4cfe5bca0d8ce8c39a94202e69d99ee60f546ce0be0ad782b681c7b5b4c9ddd6f + checksum: 10c0/00bc2d4751dfc9d44ab725be16ee534de13cfd7e77dfb386e5dac9e48101ce8fcbc5971df919dc25b3f8a0fa85d6dc5f2a0c3cf7ec9d61c163d9823c091844f0 languageName: node linkType: hard @@ -3269,14 +3261,14 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-literals@npm:^7.24.1": - version: 7.24.6 - resolution: "@babel/plugin-transform-literals@npm:7.24.6" +"@babel/plugin-transform-literals@npm:^7.25.2": + version: 7.25.9 + resolution: "@babel/plugin-transform-literals@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.6" + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/961b64df79a673706d74cf473d1f4646f250b4f8813f9d7ef5d897e30acdacd1ca104584de2e88546289fce055d71bd7559cdb8ad4a2d5e7eea17f3c829faa97 + checksum: 10c0/00b14e9c14cf1e871c1f3781bf6334cac339c360404afd6aba63d2f6aca9270854d59a2b40abff1c4c90d4ffdca614440842d3043316c2f0ceb155fdf7726b3b languageName: node linkType: hard @@ -3292,15 +3284,14 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-logical-assignment-operators@npm:^7.24.1": - version: 7.24.6 - resolution: "@babel/plugin-transform-logical-assignment-operators@npm:7.24.6" +"@babel/plugin-transform-logical-assignment-operators@npm:^7.24.7": + version: 7.25.9 + resolution: "@babel/plugin-transform-logical-assignment-operators@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.6" - "@babel/plugin-syntax-logical-assignment-operators": "npm:^7.10.4" + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/0ae7f4098c63f442fd038de6034155bcf20214e7e490e92189decb2980932247b97cb069b11ac8bc471b53f71d6859e607969440d63ff400b8932ee3e05b4958 + checksum: 10c0/6e2051e10b2d6452980fc4bdef9da17c0d6ca48f81b8529e8804b031950e4fff7c74a7eb3de4a2b6ad22ffb631d0b67005425d232cce6e2b29ce861c78ed04f5 languageName: node linkType: hard @@ -3326,14 +3317,14 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-member-expression-literals@npm:^7.24.1": - version: 7.24.6 - resolution: "@babel/plugin-transform-member-expression-literals@npm:7.24.6" +"@babel/plugin-transform-member-expression-literals@npm:^7.24.7": + version: 7.25.9 + resolution: "@babel/plugin-transform-member-expression-literals@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.6" + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/ec8908a409bd39d20f0428e35425c9e4c540bad252a0e33e08b84e3bea5088c785531197bdcf049afbdba841325962a93030b7be6da3586cb13d0ca0ebab89c9 + checksum: 10c0/91d17b451bcc5ea9f1c6f8264144057ade3338d4b92c0b248366e4db3a7790a28fd59cc56ac433a9627a9087a17a5684e53f4995dd6ae92831cb72f1bd540b54 languageName: node linkType: hard @@ -3361,15 +3352,15 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-modules-amd@npm:^7.24.1": - version: 7.24.6 - resolution: "@babel/plugin-transform-modules-amd@npm:7.24.6" +"@babel/plugin-transform-modules-amd@npm:^7.24.7": + version: 7.25.9 + resolution: "@babel/plugin-transform-modules-amd@npm:7.25.9" dependencies: - "@babel/helper-module-transforms": "npm:^7.24.6" - "@babel/helper-plugin-utils": "npm:^7.24.6" + "@babel/helper-module-transforms": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/074d26c79f517b27a07fef00319aff9705df1e6b41a805db855fe719e0f246b9815d6525cf1c5f0890c7f830dd0b9776e9b2493bbc929a3c23c0dee15f10a514 + checksum: 10c0/849957d9484d0a2d93331226ed6cf840cee7d57454549534c447c93f8b839ef8553eae9877f8f550e3c39f14d60992f91244b2e8e7502a46064b56c5d68ba855 languageName: node linkType: hard @@ -3412,16 +3403,16 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-modules-commonjs@npm:^7.24.1": - version: 7.24.6 - resolution: "@babel/plugin-transform-modules-commonjs@npm:7.24.6" +"@babel/plugin-transform-modules-commonjs@npm:^7.24.8": + version: 7.25.9 + resolution: "@babel/plugin-transform-modules-commonjs@npm:7.25.9" dependencies: - "@babel/helper-module-transforms": "npm:^7.24.6" - "@babel/helper-plugin-utils": "npm:^7.24.6" - "@babel/helper-simple-access": "npm:^7.24.6" + "@babel/helper-module-transforms": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.25.9" + "@babel/helper-simple-access": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/4fc790136d066105fa773ffc7e249d88c6f0d0126984ede36fedd51ac2b622b46c08565bcdd1ab62ac10195eeedeaba0d26e7e4c676ed50906cbed16540a4e22 + checksum: 10c0/6ce771fb04d4810257fc8900374fece877dacaed74b05eaa16ad9224b390f43795c4d046cbe9ae304e1eb5aad035d37383895e3c64496d647c2128d183916e74 languageName: node linkType: hard @@ -3453,17 +3444,17 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-modules-systemjs@npm:^7.24.1": - version: 7.24.6 - resolution: "@babel/plugin-transform-modules-systemjs@npm:7.24.6" +"@babel/plugin-transform-modules-systemjs@npm:^7.25.0": + version: 7.25.9 + resolution: "@babel/plugin-transform-modules-systemjs@npm:7.25.9" dependencies: - "@babel/helper-hoist-variables": "npm:^7.24.6" - "@babel/helper-module-transforms": "npm:^7.24.6" - "@babel/helper-plugin-utils": "npm:^7.24.6" - "@babel/helper-validator-identifier": "npm:^7.24.6" + "@babel/helper-module-transforms": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.25.9" + "@babel/helper-validator-identifier": "npm:^7.25.9" + "@babel/traverse": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/500962e3ac1bb1a9890e94f1967ec9e3aa3d41e22d4a9d1c739918707e4a8936710fd8d0ed4f3a8aad87260f7566b54566bead77977eb21e90124835cb6bcdca + checksum: 10c0/8299e3437542129c2684b86f98408c690df27db4122a79edded4782cf04e755d6ecb05b1e812c81a34224a81e664303392d5f3c36f3d2d51fdc99bb91c881e9a languageName: node linkType: hard @@ -3491,15 +3482,15 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-modules-umd@npm:^7.24.1": - version: 7.24.6 - resolution: "@babel/plugin-transform-modules-umd@npm:7.24.6" +"@babel/plugin-transform-modules-umd@npm:^7.24.7": + version: 7.25.9 + resolution: "@babel/plugin-transform-modules-umd@npm:7.25.9" dependencies: - "@babel/helper-module-transforms": "npm:^7.24.6" - "@babel/helper-plugin-utils": "npm:^7.24.6" + "@babel/helper-module-transforms": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/73c6cecb4f45ca3f665e2c57b6d04d65358518522dfaffb9b6913c026aeb704281d015324d02bf07f2cb026de6bac9308c62e82979364bd39f3687f752652b0d + checksum: 10c0/fa11a621f023e2ac437b71d5582f819e667c94306f022583d77da9a8f772c4128861a32bbb63bef5cba581a70cd7dbe87a37238edaafcfacf889470c395e7076 languageName: node linkType: hard @@ -3527,6 +3518,18 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-named-capturing-groups-regex@npm:^7.24.7": + version: 7.25.9 + resolution: "@babel/plugin-transform-named-capturing-groups-regex@npm:7.25.9" + dependencies: + "@babel/helper-create-regexp-features-plugin": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.25.9" + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 10c0/32b14fda5c885d1706863f8af2ee6c703d39264355b57482d3a24fce7f6afbd4c7a0896e501c0806ed2b0759beb621bf7f3f7de1fbbc82026039a98d961e78ef + languageName: node + linkType: hard + "@babel/plugin-transform-new-target@npm:^7.18.6": version: 7.18.6 resolution: "@babel/plugin-transform-new-target@npm:7.18.6" @@ -3549,14 +3552,14 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-new-target@npm:^7.24.1": - version: 7.24.6 - resolution: "@babel/plugin-transform-new-target@npm:7.24.6" +"@babel/plugin-transform-new-target@npm:^7.24.7": + version: 7.25.9 + resolution: "@babel/plugin-transform-new-target@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.6" + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/5e9b9edfbe46489f64013d2bbd422f29acdb8057ccc85e7c759f7cf1415fde6a82ac13a13f0f246defaba6e2f7f4d424178ba78fc02237bdbf7df6692fc1dca8 + checksum: 10c0/7b5f1b7998f1cf183a7fa646346e2f3742e5805b609f28ad5fee22d666a15010f3e398b7e1ab78cddb7901841a3d3f47135929af23d54e8bf4ce69b72051f71e languageName: node linkType: hard @@ -3572,15 +3575,14 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-nullish-coalescing-operator@npm:^7.24.1": - version: 7.24.6 - resolution: "@babel/plugin-transform-nullish-coalescing-operator@npm:7.24.6" +"@babel/plugin-transform-nullish-coalescing-operator@npm:^7.24.7": + version: 7.25.9 + resolution: "@babel/plugin-transform-nullish-coalescing-operator@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.6" - "@babel/plugin-syntax-nullish-coalescing-operator": "npm:^7.8.3" + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/53ab5b16bbcf47e842a48f1f0774d238dae0222c3e1f31653307808048e249ed140cba12dfc280cbc9a577cb3bb5b2f50ca0e3e4ffe5260fcf8c3ca0b83fb21e + checksum: 10c0/eb623db5be078a1c974afe7c7797b0309ba2ea9e9237c0b6831ade0f56d8248bb4ab3432ab34495ff8c877ec2fe412ff779d1e9b3c2b8139da18e1753d950bc3 languageName: node linkType: hard @@ -3596,15 +3598,14 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-numeric-separator@npm:^7.24.1": - version: 7.24.6 - resolution: "@babel/plugin-transform-numeric-separator@npm:7.24.6" +"@babel/plugin-transform-numeric-separator@npm:^7.24.7": + version: 7.25.9 + resolution: "@babel/plugin-transform-numeric-separator@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.6" - "@babel/plugin-syntax-numeric-separator": "npm:^7.10.4" + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/14863e735fc407e065e1574914864a956b8250a84cfb4704592656763c9455d67034c7745e53066725195d9ed042121f424c4aaee00027791640e2639386b701 + checksum: 10c0/ad63ad341977844b6f9535fcca15ca0d6d6ad112ed9cc509d4f6b75e9bf4b1b1a96a0bcb1986421a601505d34025373608b5f76d420d924b4e21f86b1a1f2749 languageName: node linkType: hard @@ -3623,17 +3624,16 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-object-rest-spread@npm:^7.24.5": - version: 7.24.6 - resolution: "@babel/plugin-transform-object-rest-spread@npm:7.24.6" +"@babel/plugin-transform-object-rest-spread@npm:^7.24.7": + version: 7.25.9 + resolution: "@babel/plugin-transform-object-rest-spread@npm:7.25.9" dependencies: - "@babel/helper-compilation-targets": "npm:^7.24.6" - "@babel/helper-plugin-utils": "npm:^7.24.6" - "@babel/plugin-syntax-object-rest-spread": "npm:^7.8.3" - "@babel/plugin-transform-parameters": "npm:^7.24.6" + "@babel/helper-compilation-targets": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.25.9" + "@babel/plugin-transform-parameters": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/1a192b9756ebfa0bc69ad5e285d7d0284963b4b95738ca7721354297329d5c1ab4eb05ff5b198cbfffa3ec00e97a15a712aa7a5011d9407478796966aab54527 + checksum: 10c0/02077d8abd83bf6a48ff0b59e98d7561407cf75b591cffd3fdc5dc5e9a13dec1c847a7a690983762a3afecddb244831e897e0515c293e7c653b262c30cd614af languageName: node linkType: hard @@ -3661,15 +3661,15 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-object-super@npm:^7.24.1": - version: 7.24.6 - resolution: "@babel/plugin-transform-object-super@npm:7.24.6" +"@babel/plugin-transform-object-super@npm:^7.24.7": + version: 7.25.9 + resolution: "@babel/plugin-transform-object-super@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.6" - "@babel/helper-replace-supers": "npm:^7.24.6" + "@babel/helper-plugin-utils": "npm:^7.25.9" + "@babel/helper-replace-supers": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/2e48b9e0a1f3b04b439ede2d0c83bcc5324a81c8bab73c70f0c466cf48061a4ff469f283e2feb17b4cc2e20372c1362253604477ecd77e622192d5d7906aa062 + checksum: 10c0/0348d00e76f1f15ada44481a76e8c923d24cba91f6e49ee9b30d6861eb75344e7f84d62a18df8a6f9e9a7eacf992f388174b7f9cc4ce48287bcefca268c07600 languageName: node linkType: hard @@ -3685,15 +3685,14 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-optional-catch-binding@npm:^7.24.1": - version: 7.24.6 - resolution: "@babel/plugin-transform-optional-catch-binding@npm:7.24.6" +"@babel/plugin-transform-optional-catch-binding@npm:^7.24.7": + version: 7.25.9 + resolution: "@babel/plugin-transform-optional-catch-binding@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.6" - "@babel/plugin-syntax-optional-catch-binding": "npm:^7.8.3" + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/411db3177b1bffd2f9e5b33a6b62e70158380e67d91ff4725755312e8a0a2f2c3fd340c60005295a672115fb593222ab2d7076266aebced6ef087a5505b6f371 + checksum: 10c0/722fd5ee12ab905309d4e84421584fce4b6d9e6b639b06afb20b23fa809e6ab251e908a8d5e8b14d066a28186b8ef8f58d69fd6eca9ce1b9ef7af08333378f6c languageName: node linkType: hard @@ -3710,16 +3709,15 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-optional-chaining@npm:^7.24.5, @babel/plugin-transform-optional-chaining@npm:^7.24.6": - version: 7.24.6 - resolution: "@babel/plugin-transform-optional-chaining@npm:7.24.6" +"@babel/plugin-transform-optional-chaining@npm:^7.24.8, @babel/plugin-transform-optional-chaining@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-optional-chaining@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.6" - "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.24.6" - "@babel/plugin-syntax-optional-chaining": "npm:^7.8.3" + "@babel/helper-plugin-utils": "npm:^7.25.9" + "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/8ee5a500a2309444d4fb27979857598e9c91d804fe23217c51cc208b1bc6b9cd0650b355b1ebd625f180c5f1dc4cb89b5f313c982f7c89d90281a69b24a88ccb + checksum: 10c0/041ad2beae5affb8e68a0bcb6882a2dadb758db3c629a0e012f57488ab43a822ac1ea17a29db8ef36560a28262a5dfa4dbbbf06ed6e431db55abe024b7cd3961 languageName: node linkType: hard @@ -3745,14 +3743,14 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-parameters@npm:^7.24.5, @babel/plugin-transform-parameters@npm:^7.24.6": - version: 7.24.6 - resolution: "@babel/plugin-transform-parameters@npm:7.24.6" +"@babel/plugin-transform-parameters@npm:^7.24.7, @babel/plugin-transform-parameters@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/plugin-transform-parameters@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.6" + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/d9648924b9c0d35a243c0742c22838932a024205c61f4cc419857e5195edd893a33e6be4f2c8fbd89e925051c7cbe8968029ec2d3e7f2f098bfa682f4e2b9731 + checksum: 10c0/aecb446754b9e09d6b6fa95fd09e7cf682f8aaeed1d972874ba24c0a30a7e803ad5f014bb1fffc7bfeed22f93c0d200947407894ea59bf7687816f2f464f8df3 languageName: node linkType: hard @@ -3768,15 +3766,15 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-private-methods@npm:^7.24.1": - version: 7.24.6 - resolution: "@babel/plugin-transform-private-methods@npm:7.24.6" +"@babel/plugin-transform-private-methods@npm:^7.24.7": + version: 7.25.9 + resolution: "@babel/plugin-transform-private-methods@npm:7.25.9" dependencies: - "@babel/helper-create-class-features-plugin": "npm:^7.24.6" - "@babel/helper-plugin-utils": "npm:^7.24.6" + "@babel/helper-create-class-features-plugin": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/55f93959b2e8aeda818db7cdc7dfdcd5076f5bdc8a819566818004a68969fb7297d617f9d108bf76ac232d6056d9f9d20f73ce10380baa43ff1755c5591aa803 + checksum: 10c0/64bd71de93d39daefa3e6c878d6f2fd238ed7d4ecfb13b0e771ddbbc131487def3ceb405b62b534a5cbb5043046b504e1b189b0a45229cc75af979a9fbcaa7bd languageName: node linkType: hard @@ -3794,17 +3792,16 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-private-property-in-object@npm:^7.24.5": - version: 7.24.6 - resolution: "@babel/plugin-transform-private-property-in-object@npm:7.24.6" +"@babel/plugin-transform-private-property-in-object@npm:^7.24.7": + version: 7.25.9 + resolution: "@babel/plugin-transform-private-property-in-object@npm:7.25.9" dependencies: - "@babel/helper-annotate-as-pure": "npm:^7.24.6" - "@babel/helper-create-class-features-plugin": "npm:^7.24.6" - "@babel/helper-plugin-utils": "npm:^7.24.6" - "@babel/plugin-syntax-private-property-in-object": "npm:^7.14.5" + "@babel/helper-annotate-as-pure": "npm:^7.25.9" + "@babel/helper-create-class-features-plugin": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/c9eb9597362b598a91536375a49ba80cdf13461e849680e040898b103f7998c4d33a7832da5afba9fa51e3473f79cf8605f9ace07a887e386b7801797021631b + checksum: 10c0/d4965de19d9f204e692cc74dbc39f0bb469e5f29df96dd4457ea23c5e5596fba9d5af76eaa96f9d48a9fc20ec5f12a94c679285e36b8373406868ea228109e27 languageName: node linkType: hard @@ -3830,14 +3827,14 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-property-literals@npm:^7.24.1": - version: 7.24.6 - resolution: "@babel/plugin-transform-property-literals@npm:7.24.6" +"@babel/plugin-transform-property-literals@npm:^7.24.7": + version: 7.25.9 + resolution: "@babel/plugin-transform-property-literals@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.6" + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/d1195d93406b6c400cdbc9ac57a2b8b58c72cc6480cc03656abfc243be0e2a48133cbb96559c2db95b1c78803daeb538277821540fe19e2a9105905e727ef618 + checksum: 10c0/1639e35b2438ccf3107af760d34e6a8e4f9acdd3ae6186ae771a6e3029bd59dfe778e502d67090f1185ecda5c16addfed77561e39c518a3f51ff10d41790e106 languageName: node linkType: hard @@ -3925,15 +3922,15 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-regenerator@npm:^7.24.1": - version: 7.24.6 - resolution: "@babel/plugin-transform-regenerator@npm:7.24.6" +"@babel/plugin-transform-regenerator@npm:^7.24.7": + version: 7.25.9 + resolution: "@babel/plugin-transform-regenerator@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.6" + "@babel/helper-plugin-utils": "npm:^7.25.9" regenerator-transform: "npm:^0.15.2" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/d17eaa97514d583866182420024b8c22da2c6ca822bdbf16fe7564121564c1844935592dc3315c73d1f78f7c908a4338b1d783618811e694c9bb6d5f9233e58d + checksum: 10c0/eef3ffc19f7d291b863635f32b896ad7f87806d9219a0d3404a470219abcfc5b43aabecd691026c48e875b965760d9c16abee25e6447272233f30cd07f453ec7 languageName: node linkType: hard @@ -3959,30 +3956,30 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-reserved-words@npm:^7.24.1": - version: 7.24.6 - resolution: "@babel/plugin-transform-reserved-words@npm:7.24.6" +"@babel/plugin-transform-reserved-words@npm:^7.24.7": + version: 7.25.9 + resolution: "@babel/plugin-transform-reserved-words@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.6" + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/5d2d4c579bd90c60fc6468a1285b3384e7b650b47d41a937a1590d4aecfc28bd945e82704c6e71cc91aa016b7e78c5594290c1c386edf11ec98e09e36235c5ae + checksum: 10c0/8b028b80d1983e3e02f74e21924323cc66ba930e5c5758909a122aa7d80e341b8b0f42e1698e42b50d47a6ba911332f584200b28e1a4e2104b7514d9dc011e96 languageName: node linkType: hard -"@babel/plugin-transform-runtime@npm:7.24.3": - version: 7.24.3 - resolution: "@babel/plugin-transform-runtime@npm:7.24.3" +"@babel/plugin-transform-runtime@npm:7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-runtime@npm:7.24.7" dependencies: - "@babel/helper-module-imports": "npm:^7.24.3" - "@babel/helper-plugin-utils": "npm:^7.24.0" + "@babel/helper-module-imports": "npm:^7.24.7" + "@babel/helper-plugin-utils": "npm:^7.24.7" babel-plugin-polyfill-corejs2: "npm:^0.4.10" babel-plugin-polyfill-corejs3: "npm:^0.10.1" babel-plugin-polyfill-regenerator: "npm:^0.6.1" semver: "npm:^6.3.1" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/ee01967bf405d84bd95ca4089166a18fb23fe9851a6da53dcf712a7f8ba003319996f21f320d568ec76126e18adfaee978206ccda86eef7652d47cc9a052e75e + checksum: 10c0/a33f5095872bbba00b8ee553dfe6941477e69a017a2e65e9dd86e80dab5c627635093b796eb1eb22aaaf2f874704f63ad1d99b952b83b59ef6b368ae04e5bb41 languageName: node linkType: hard @@ -4040,14 +4037,14 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-shorthand-properties@npm:^7.24.1": - version: 7.24.6 - resolution: "@babel/plugin-transform-shorthand-properties@npm:7.24.6" +"@babel/plugin-transform-shorthand-properties@npm:^7.24.7": + version: 7.25.9 + resolution: "@babel/plugin-transform-shorthand-properties@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.6" + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/4141b5da1d0d20d66ca0affaef8dfc45ed5e954bfa9003eb8aa779842599de443b37c2b265da27693f304c35ab68a682b44098e9eea0d39f8f94072ab616657f + checksum: 10c0/05a20d45f0fb62567644c507ccd4e379c1a74dacf887d2b2cac70247415e3f6d7d3bf4850c8b336053144715fedb6200fc38f7130c4b76c94eec9b9c0c2a8e9b languageName: node linkType: hard @@ -4075,15 +4072,15 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-spread@npm:^7.24.1": - version: 7.24.6 - resolution: "@babel/plugin-transform-spread@npm:7.24.6" +"@babel/plugin-transform-spread@npm:^7.24.7": + version: 7.25.9 + resolution: "@babel/plugin-transform-spread@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.6" - "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.24.6" + "@babel/helper-plugin-utils": "npm:^7.25.9" + "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/6d12da05311690c4a73d775688ba6931b441e96e512377a166a60184292edeac0b17f5154a49e2f1d262a3f80b96e064bc9c88c63b2a6125f0a2132eff9ed585 + checksum: 10c0/996c8fed238efc30e0664f9f58bd7ec8c148f4659f84425f68923a094fe891245711d26eb10d1f815f50c124434e076e860dbe9662240844d1b77cd09907dcdf languageName: node linkType: hard @@ -4109,14 +4106,14 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-sticky-regex@npm:^7.24.1": - version: 7.24.6 - resolution: "@babel/plugin-transform-sticky-regex@npm:7.24.6" +"@babel/plugin-transform-sticky-regex@npm:^7.24.7": + version: 7.25.9 + resolution: "@babel/plugin-transform-sticky-regex@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.6" + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/2a65f57554f51d3b9cd035513a610f47e46b26dba112b3b9fb42d1c1f2ae153fce8f76294b4721d099817814f57895c656f5b7dccd5df683277da6522c817ee9 + checksum: 10c0/e9612b0615dab4c4fba1c560769616a9bd7b9226c73191ef84b6c3ee185c8b719b4f887cdd8336a0a13400ce606ab4a0d33bc8fa6b4fcdb53e2896d07f2568f6 languageName: node linkType: hard @@ -4142,14 +4139,14 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-template-literals@npm:^7.24.1": - version: 7.24.6 - resolution: "@babel/plugin-transform-template-literals@npm:7.24.6" +"@babel/plugin-transform-template-literals@npm:^7.24.7": + version: 7.25.9 + resolution: "@babel/plugin-transform-template-literals@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.6" + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/fcde48e9c3ecd7f5f37ceb6908f1edd537d3115fc2f27d187d58fd83b2a13637a1bb3d24589d841529ed081405b951bf1c5d194ea81eff6ad2d88204d153010d + checksum: 10c0/5144da6036807bbd4e9d2a8b92ae67a759543929f34f4db9b463448a77298f4a40bf1e92e582db208fe08ee116224806a3bd0bed75d9da404fc2c0af9e6da540 languageName: node linkType: hard @@ -4175,14 +4172,14 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-typeof-symbol@npm:^7.24.5": - version: 7.24.6 - resolution: "@babel/plugin-transform-typeof-symbol@npm:7.24.6" +"@babel/plugin-transform-typeof-symbol@npm:^7.24.8": + version: 7.25.9 + resolution: "@babel/plugin-transform-typeof-symbol@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.6" + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/a24b3a3c7b87c6496ee13d2438effd4645868f054397357ec3cbe92a2f0df4152ac7fd7228cb956576c1b772c0675b065d6ad5f5053c382e97dd022015e9a028 + checksum: 10c0/2b19fd88608589d9bc6b607ff17b06791d35c67ef3249f4659283454e6a9984241e3bd4c4eb72bb8b3d860a73223f3874558b861adb7314aa317c1c6a2f0cafb languageName: node linkType: hard @@ -4236,14 +4233,14 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-unicode-escapes@npm:^7.24.1": - version: 7.24.6 - resolution: "@babel/plugin-transform-unicode-escapes@npm:7.24.6" +"@babel/plugin-transform-unicode-escapes@npm:^7.24.7": + version: 7.25.9 + resolution: "@babel/plugin-transform-unicode-escapes@npm:7.25.9" dependencies: - "@babel/helper-plugin-utils": "npm:^7.24.6" + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/0e4038c589b7a63a2469466a25b78aad4ecb7267732e3c953c3055f9a77c7bee859a71983a08b025179f1b094964f2ebbfca1b6c33de4ead90a0b5ef06ddb47e + checksum: 10c0/615c84d7c53e1575d54ba9257e753e0b98c5de1e3225237d92f55226eaab8eb5bceb74df43f50f4aa162b0bbcc934ed11feafe2b60b8ec4934ce340fad4b8828 languageName: node linkType: hard @@ -4259,15 +4256,15 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-unicode-property-regex@npm:^7.24.1": - version: 7.24.6 - resolution: "@babel/plugin-transform-unicode-property-regex@npm:7.24.6" +"@babel/plugin-transform-unicode-property-regex@npm:^7.24.7": + version: 7.25.9 + resolution: "@babel/plugin-transform-unicode-property-regex@npm:7.25.9" dependencies: - "@babel/helper-create-regexp-features-plugin": "npm:^7.24.6" - "@babel/helper-plugin-utils": "npm:^7.24.6" + "@babel/helper-create-regexp-features-plugin": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/bca99e00de91d0460dfcb25f285f3606248acc905193c05587e2862c54ddb790c5d8cb45e80927290390cffbcba7620f8af3e74c5301ff0c1c59ce7d47c5629f + checksum: 10c0/1685836fc38af4344c3d2a9edbd46f7c7b28d369b63967d5b83f2f6849ec45b97223461cea3d14cc3f0be6ebb284938e637a5ca3955c0e79c873d62f593d615c languageName: node linkType: hard @@ -4295,15 +4292,15 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-unicode-regex@npm:^7.24.1": - version: 7.24.6 - resolution: "@babel/plugin-transform-unicode-regex@npm:7.24.6" +"@babel/plugin-transform-unicode-regex@npm:^7.24.7": + version: 7.25.9 + resolution: "@babel/plugin-transform-unicode-regex@npm:7.25.9" dependencies: - "@babel/helper-create-regexp-features-plugin": "npm:^7.24.6" - "@babel/helper-plugin-utils": "npm:^7.24.6" + "@babel/helper-create-regexp-features-plugin": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/ab6e253cfc38c7e8a2844d7ad46f85fdcbe33610b7f92f71045cf0b040438a08f1f1717ab4b84c480537f54e5478db8b404a4ccc2ff846b4e3ed33d373e3b47a + checksum: 10c0/448004f978279e726af26acd54f63f9002c9e2582ecd70d1c5c4436f6de490fcd817afb60016d11c52f5ef17dbaac2590e8cc7bfaf4e91b58c452cf188c7920f languageName: node linkType: hard @@ -4319,38 +4316,39 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-unicode-sets-regex@npm:^7.24.1": - version: 7.24.6 - resolution: "@babel/plugin-transform-unicode-sets-regex@npm:7.24.6" +"@babel/plugin-transform-unicode-sets-regex@npm:^7.24.7": + version: 7.25.9 + resolution: "@babel/plugin-transform-unicode-sets-regex@npm:7.25.9" dependencies: - "@babel/helper-create-regexp-features-plugin": "npm:^7.24.6" - "@babel/helper-plugin-utils": "npm:^7.24.6" + "@babel/helper-create-regexp-features-plugin": "npm:^7.25.9" + "@babel/helper-plugin-utils": "npm:^7.25.9" peerDependencies: "@babel/core": ^7.0.0 - checksum: 10c0/a52e84f85519fed330e88f7a17611064d2b5f1d0fe2823f8113ed312828e69787888bd023f404e8d35d0bb96461e42e19cdc4f0a44d35959bc86c219a3062237 + checksum: 10c0/56ee04fbe236b77cbcd6035cbf0be7566d1386b8349154ac33244c25f61170c47153a9423cd1d92855f7d6447b53a4a653d9e8fd1eaeeee14feb4b2baf59bd9f languageName: node linkType: hard -"@babel/preset-env@npm:7.24.5": - version: 7.24.5 - resolution: "@babel/preset-env@npm:7.24.5" +"@babel/preset-env@npm:7.25.3": + version: 7.25.3 + resolution: "@babel/preset-env@npm:7.25.3" dependencies: - "@babel/compat-data": "npm:^7.24.4" - "@babel/helper-compilation-targets": "npm:^7.23.6" - "@babel/helper-plugin-utils": "npm:^7.24.5" - "@babel/helper-validator-option": "npm:^7.23.5" - "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "npm:^7.24.5" - "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "npm:^7.24.1" - "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "npm:^7.24.1" - "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "npm:^7.24.1" + "@babel/compat-data": "npm:^7.25.2" + "@babel/helper-compilation-targets": "npm:^7.25.2" + "@babel/helper-plugin-utils": "npm:^7.24.8" + "@babel/helper-validator-option": "npm:^7.24.8" + "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "npm:^7.25.3" + "@babel/plugin-bugfix-safari-class-field-initializer-scope": "npm:^7.25.0" + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "npm:^7.25.0" + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "npm:^7.24.7" + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly": "npm:^7.25.0" "@babel/plugin-proposal-private-property-in-object": "npm:7.21.0-placeholder-for-preset-env.2" "@babel/plugin-syntax-async-generators": "npm:^7.8.4" "@babel/plugin-syntax-class-properties": "npm:^7.12.13" "@babel/plugin-syntax-class-static-block": "npm:^7.14.5" "@babel/plugin-syntax-dynamic-import": "npm:^7.8.3" "@babel/plugin-syntax-export-namespace-from": "npm:^7.8.3" - "@babel/plugin-syntax-import-assertions": "npm:^7.24.1" - "@babel/plugin-syntax-import-attributes": "npm:^7.24.1" + "@babel/plugin-syntax-import-assertions": "npm:^7.24.7" + "@babel/plugin-syntax-import-attributes": "npm:^7.24.7" "@babel/plugin-syntax-import-meta": "npm:^7.10.4" "@babel/plugin-syntax-json-strings": "npm:^7.8.3" "@babel/plugin-syntax-logical-assignment-operators": "npm:^7.10.4" @@ -4362,63 +4360,64 @@ __metadata: "@babel/plugin-syntax-private-property-in-object": "npm:^7.14.5" "@babel/plugin-syntax-top-level-await": "npm:^7.14.5" "@babel/plugin-syntax-unicode-sets-regex": "npm:^7.18.6" - "@babel/plugin-transform-arrow-functions": "npm:^7.24.1" - "@babel/plugin-transform-async-generator-functions": "npm:^7.24.3" - "@babel/plugin-transform-async-to-generator": "npm:^7.24.1" - "@babel/plugin-transform-block-scoped-functions": "npm:^7.24.1" - "@babel/plugin-transform-block-scoping": "npm:^7.24.5" - "@babel/plugin-transform-class-properties": "npm:^7.24.1" - "@babel/plugin-transform-class-static-block": "npm:^7.24.4" - "@babel/plugin-transform-classes": "npm:^7.24.5" - "@babel/plugin-transform-computed-properties": "npm:^7.24.1" - "@babel/plugin-transform-destructuring": "npm:^7.24.5" - "@babel/plugin-transform-dotall-regex": "npm:^7.24.1" - "@babel/plugin-transform-duplicate-keys": "npm:^7.24.1" - "@babel/plugin-transform-dynamic-import": "npm:^7.24.1" - "@babel/plugin-transform-exponentiation-operator": "npm:^7.24.1" - "@babel/plugin-transform-export-namespace-from": "npm:^7.24.1" - "@babel/plugin-transform-for-of": "npm:^7.24.1" - "@babel/plugin-transform-function-name": "npm:^7.24.1" - "@babel/plugin-transform-json-strings": "npm:^7.24.1" - "@babel/plugin-transform-literals": "npm:^7.24.1" - "@babel/plugin-transform-logical-assignment-operators": "npm:^7.24.1" - "@babel/plugin-transform-member-expression-literals": "npm:^7.24.1" - "@babel/plugin-transform-modules-amd": "npm:^7.24.1" - "@babel/plugin-transform-modules-commonjs": "npm:^7.24.1" - "@babel/plugin-transform-modules-systemjs": "npm:^7.24.1" - "@babel/plugin-transform-modules-umd": "npm:^7.24.1" - "@babel/plugin-transform-named-capturing-groups-regex": "npm:^7.22.5" - "@babel/plugin-transform-new-target": "npm:^7.24.1" - "@babel/plugin-transform-nullish-coalescing-operator": "npm:^7.24.1" - "@babel/plugin-transform-numeric-separator": "npm:^7.24.1" - "@babel/plugin-transform-object-rest-spread": "npm:^7.24.5" - "@babel/plugin-transform-object-super": "npm:^7.24.1" - "@babel/plugin-transform-optional-catch-binding": "npm:^7.24.1" - "@babel/plugin-transform-optional-chaining": "npm:^7.24.5" - "@babel/plugin-transform-parameters": "npm:^7.24.5" - "@babel/plugin-transform-private-methods": "npm:^7.24.1" - "@babel/plugin-transform-private-property-in-object": "npm:^7.24.5" - "@babel/plugin-transform-property-literals": "npm:^7.24.1" - "@babel/plugin-transform-regenerator": "npm:^7.24.1" - "@babel/plugin-transform-reserved-words": "npm:^7.24.1" - "@babel/plugin-transform-shorthand-properties": "npm:^7.24.1" - "@babel/plugin-transform-spread": "npm:^7.24.1" - "@babel/plugin-transform-sticky-regex": "npm:^7.24.1" - "@babel/plugin-transform-template-literals": "npm:^7.24.1" - "@babel/plugin-transform-typeof-symbol": "npm:^7.24.5" - "@babel/plugin-transform-unicode-escapes": "npm:^7.24.1" - "@babel/plugin-transform-unicode-property-regex": "npm:^7.24.1" - "@babel/plugin-transform-unicode-regex": "npm:^7.24.1" - "@babel/plugin-transform-unicode-sets-regex": "npm:^7.24.1" + "@babel/plugin-transform-arrow-functions": "npm:^7.24.7" + "@babel/plugin-transform-async-generator-functions": "npm:^7.25.0" + "@babel/plugin-transform-async-to-generator": "npm:^7.24.7" + "@babel/plugin-transform-block-scoped-functions": "npm:^7.24.7" + "@babel/plugin-transform-block-scoping": "npm:^7.25.0" + "@babel/plugin-transform-class-properties": "npm:^7.24.7" + "@babel/plugin-transform-class-static-block": "npm:^7.24.7" + "@babel/plugin-transform-classes": "npm:^7.25.0" + "@babel/plugin-transform-computed-properties": "npm:^7.24.7" + "@babel/plugin-transform-destructuring": "npm:^7.24.8" + "@babel/plugin-transform-dotall-regex": "npm:^7.24.7" + "@babel/plugin-transform-duplicate-keys": "npm:^7.24.7" + "@babel/plugin-transform-duplicate-named-capturing-groups-regex": "npm:^7.25.0" + "@babel/plugin-transform-dynamic-import": "npm:^7.24.7" + "@babel/plugin-transform-exponentiation-operator": "npm:^7.24.7" + "@babel/plugin-transform-export-namespace-from": "npm:^7.24.7" + "@babel/plugin-transform-for-of": "npm:^7.24.7" + "@babel/plugin-transform-function-name": "npm:^7.25.1" + "@babel/plugin-transform-json-strings": "npm:^7.24.7" + "@babel/plugin-transform-literals": "npm:^7.25.2" + "@babel/plugin-transform-logical-assignment-operators": "npm:^7.24.7" + "@babel/plugin-transform-member-expression-literals": "npm:^7.24.7" + "@babel/plugin-transform-modules-amd": "npm:^7.24.7" + "@babel/plugin-transform-modules-commonjs": "npm:^7.24.8" + "@babel/plugin-transform-modules-systemjs": "npm:^7.25.0" + "@babel/plugin-transform-modules-umd": "npm:^7.24.7" + "@babel/plugin-transform-named-capturing-groups-regex": "npm:^7.24.7" + "@babel/plugin-transform-new-target": "npm:^7.24.7" + "@babel/plugin-transform-nullish-coalescing-operator": "npm:^7.24.7" + "@babel/plugin-transform-numeric-separator": "npm:^7.24.7" + "@babel/plugin-transform-object-rest-spread": "npm:^7.24.7" + "@babel/plugin-transform-object-super": "npm:^7.24.7" + "@babel/plugin-transform-optional-catch-binding": "npm:^7.24.7" + "@babel/plugin-transform-optional-chaining": "npm:^7.24.8" + "@babel/plugin-transform-parameters": "npm:^7.24.7" + "@babel/plugin-transform-private-methods": "npm:^7.24.7" + "@babel/plugin-transform-private-property-in-object": "npm:^7.24.7" + "@babel/plugin-transform-property-literals": "npm:^7.24.7" + "@babel/plugin-transform-regenerator": "npm:^7.24.7" + "@babel/plugin-transform-reserved-words": "npm:^7.24.7" + "@babel/plugin-transform-shorthand-properties": "npm:^7.24.7" + "@babel/plugin-transform-spread": "npm:^7.24.7" + "@babel/plugin-transform-sticky-regex": "npm:^7.24.7" + "@babel/plugin-transform-template-literals": "npm:^7.24.7" + "@babel/plugin-transform-typeof-symbol": "npm:^7.24.8" + "@babel/plugin-transform-unicode-escapes": "npm:^7.24.7" + "@babel/plugin-transform-unicode-property-regex": "npm:^7.24.7" + "@babel/plugin-transform-unicode-regex": "npm:^7.24.7" + "@babel/plugin-transform-unicode-sets-regex": "npm:^7.24.7" "@babel/preset-modules": "npm:0.1.6-no-external-plugins" babel-plugin-polyfill-corejs2: "npm:^0.4.10" babel-plugin-polyfill-corejs3: "npm:^0.10.4" babel-plugin-polyfill-regenerator: "npm:^0.6.1" - core-js-compat: "npm:^3.31.0" + core-js-compat: "npm:^3.37.1" semver: "npm:^6.3.1" peerDependencies: "@babel/core": ^7.0.0-0 - checksum: 10c0/2cc0edae09205d6409a75d02e53aaa1c590e89adbb7b389019c7b75e4c47b6b63eeb1a816df5c42b672ce410747e7ddc23b6747e8e41a6c95d6fa00c665509e2 + checksum: 10c0/9287dc2e296fe2aa3367d84c2a799db17c9d1e48bba86525f47c6f51f5ba2e2cce454f45f4ae2ef928f9077c0640b04556b55b94835675ceeca94a0c5133205e languageName: node linkType: hard @@ -4688,12 +4687,12 @@ __metadata: languageName: node linkType: hard -"@babel/runtime@npm:7.24.5": - version: 7.24.5 - resolution: "@babel/runtime@npm:7.24.5" +"@babel/runtime@npm:7.25.0": + version: 7.25.0 + resolution: "@babel/runtime@npm:7.25.0" dependencies: regenerator-runtime: "npm:^0.14.0" - checksum: 10c0/05730e43e8ba6550eae9fd4fb5e7d9d3cb91140379425abcb2a1ff9cebad518a280d82c4c4b0f57ada26a863106ac54a748d90c775790c0e2cd0ddd85ccdf346 + checksum: 10c0/bd3faf246170826cef2071a94d7b47b49d532351360ecd17722d03f6713fd93a3eb3dbd9518faa778d5e8ccad7392a7a604e56bd37aaad3f3aa68d619ccd983d languageName: node linkType: hard @@ -4748,14 +4747,14 @@ __metadata: languageName: node linkType: hard -"@babel/template@npm:^7.24.6": - version: 7.24.6 - resolution: "@babel/template@npm:7.24.6" +"@babel/template@npm:^7.25.0, @babel/template@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/template@npm:7.25.9" dependencies: - "@babel/code-frame": "npm:^7.24.6" - "@babel/parser": "npm:^7.24.6" - "@babel/types": "npm:^7.24.6" - checksum: 10c0/a4d5805770de908b445f7cdcebfcb6eaa07b1ec9c7b78fd3f375a911b1522c249bddae6b96bc4aac24247cc603e3e6cffcf2fe50b4c929dfeb22de289b517525 + "@babel/code-frame": "npm:^7.25.9" + "@babel/parser": "npm:^7.25.9" + "@babel/types": "npm:^7.25.9" + checksum: 10c0/ebe677273f96a36c92cc15b7aa7b11cc8bc8a3bb7a01d55b2125baca8f19cae94ff3ce15f1b1880fb8437f3a690d9f89d4e91f16fc1dc4d3eb66226d128983ab languageName: node linkType: hard @@ -4795,39 +4794,18 @@ __metadata: languageName: node linkType: hard -"@babel/traverse@npm:^7.24.1": - version: 7.24.1 - resolution: "@babel/traverse@npm:7.24.1" - dependencies: - "@babel/code-frame": "npm:^7.24.1" - "@babel/generator": "npm:^7.24.1" - "@babel/helper-environment-visitor": "npm:^7.22.20" - "@babel/helper-function-name": "npm:^7.23.0" - "@babel/helper-hoist-variables": "npm:^7.22.5" - "@babel/helper-split-export-declaration": "npm:^7.22.6" - "@babel/parser": "npm:^7.24.1" - "@babel/types": "npm:^7.24.0" - debug: "npm:^4.3.1" - globals: "npm:^11.1.0" - checksum: 10c0/c087b918f6823776537ba246136c70e7ce0719fc05361ebcbfd16f4e6f2f6f1f8f4f9167f1d9b675f27d12074839605189cc9d689de20b89a85e7c140f23daab - languageName: node - linkType: hard - -"@babel/traverse@npm:^7.24.5": - version: 7.24.6 - resolution: "@babel/traverse@npm:7.24.6" +"@babel/traverse@npm:^7.25.0, @babel/traverse@npm:^7.25.2, @babel/traverse@npm:^7.25.9": + version: 7.25.9 + resolution: "@babel/traverse@npm:7.25.9" dependencies: - "@babel/code-frame": "npm:^7.24.6" - "@babel/generator": "npm:^7.24.6" - "@babel/helper-environment-visitor": "npm:^7.24.6" - "@babel/helper-function-name": "npm:^7.24.6" - "@babel/helper-hoist-variables": "npm:^7.24.6" - "@babel/helper-split-export-declaration": "npm:^7.24.6" - "@babel/parser": "npm:^7.24.6" - "@babel/types": "npm:^7.24.6" + "@babel/code-frame": "npm:^7.25.9" + "@babel/generator": "npm:^7.25.9" + "@babel/parser": "npm:^7.25.9" + "@babel/template": "npm:^7.25.9" + "@babel/types": "npm:^7.25.9" debug: "npm:^4.3.1" globals: "npm:^11.1.0" - checksum: 10c0/39027d5fc7a241c6b71bb5872c2bdcec53743cd7ef3c151bbe6fd7cf874d15f4bc09e5d7e19e2f534b0eb2c115f5368553885fa4253aa1bc9441c6e5bf9efdaf + checksum: 10c0/e90be586a714da4adb80e6cb6a3c5cfcaa9b28148abdafb065e34cc109676fc3db22cf98cd2b2fff66ffb9b50c0ef882cab0f466b6844be0f6c637b82719bba1 languageName: node linkType: hard @@ -4864,14 +4842,13 @@ __metadata: languageName: node linkType: hard -"@babel/types@npm:^7.24.5, @babel/types@npm:^7.24.6": - version: 7.24.6 - resolution: "@babel/types@npm:7.24.6" +"@babel/types@npm:^7.24.7, @babel/types@npm:^7.25.0, @babel/types@npm:^7.25.2, @babel/types@npm:^7.25.9, @babel/types@npm:^7.26.0": + version: 7.26.0 + resolution: "@babel/types@npm:7.26.0" dependencies: - "@babel/helper-string-parser": "npm:^7.24.6" - "@babel/helper-validator-identifier": "npm:^7.24.6" - to-fast-properties: "npm:^2.0.0" - checksum: 10c0/1d94d92d97ef49030ad7f9e14cfccfeb70b1706dabcaa69037e659ec9d2c3178fb005d2088cce40d88dfc1306153d9157fe038a79ea2be92e5e6b99a59ef80cc + "@babel/helper-string-parser": "npm:^7.25.9" + "@babel/helper-validator-identifier": "npm:^7.25.9" + checksum: 10c0/b694f41ad1597127e16024d766c33a641508aad037abd08d0d1f73af753e1119fa03b4a107d04b5f92cc19c095a594660547ae9bead1db2299212d644b0a5cb8 languageName: node linkType: hard @@ -5228,9 +5205,9 @@ __metadata: languageName: node linkType: hard -"@cypress/request@npm:^3.0.0": - version: 3.0.1 - resolution: "@cypress/request@npm:3.0.1" +"@cypress/request@npm:^3.0.6": + version: 3.0.6 + resolution: "@cypress/request@npm:3.0.6" dependencies: aws-sign2: "npm:~0.7.0" aws4: "npm:^1.8.0" @@ -5238,19 +5215,19 @@ __metadata: combined-stream: "npm:~1.0.6" extend: "npm:~3.0.2" forever-agent: "npm:~0.6.1" - form-data: "npm:~2.3.2" - http-signature: "npm:~1.3.6" + form-data: "npm:~4.0.0" + http-signature: "npm:~1.4.0" is-typedarray: "npm:~1.0.0" isstream: "npm:~0.1.2" json-stringify-safe: "npm:~5.0.1" mime-types: "npm:~2.1.19" performance-now: "npm:^2.1.0" - qs: "npm:6.10.4" + qs: "npm:6.13.0" safe-buffer: "npm:^5.1.2" - tough-cookie: "npm:^4.1.3" + tough-cookie: "npm:^5.0.0" tunnel-agent: "npm:^0.6.0" uuid: "npm:^8.3.2" - checksum: 10c0/8eb92a665e6549e2533f5169431addcaad0307f51a8c7f3b6b169eb79b4d673373784a527590a47b0a2905ad5f601b24ab2d1b31d184243235aba470ffc9c1f7 + checksum: 10c0/24671e655768ef09b099e93fdef5bab58f501a050ddb833d0bf13a44d146e5b3359d71658daecd183d2cb37a1e56cf8aed8a736e3730a23e2383263bd87b2305 languageName: node linkType: hard @@ -5271,6 +5248,13 @@ __metadata: languageName: node linkType: hard +"@discoveryjs/json-ext@npm:0.6.1": + version: 0.6.1 + resolution: "@discoveryjs/json-ext@npm:0.6.1" + checksum: 10c0/116838b9685f26ce88335703f0f0cb84a242f9db93a6b408676c314a3bfd916ef405d84c3ff427e882dc4775b586e3a8a9d88fecc07cc93cbd33f6d560db29bf + languageName: node + linkType: hard + "@docsearch/css@npm:3.3.3": version: 3.3.3 resolution: "@docsearch/css@npm:3.3.3" @@ -6104,6 +6088,34 @@ __metadata: languageName: node linkType: hard +"@emnapi/core@npm:^1.1.0": + version: 1.3.1 + resolution: "@emnapi/core@npm:1.3.1" + dependencies: + "@emnapi/wasi-threads": "npm:1.0.1" + tslib: "npm:^2.4.0" + checksum: 10c0/d3be1044ad704e2c486641bc18908523490f28c7d38bd12d9c1d4ce37d39dae6c4aecd2f2eaf44c6e3bd90eaf04e0591acc440b1b038cdf43cce078a355a0ea0 + languageName: node + linkType: hard + +"@emnapi/runtime@npm:^1.1.0": + version: 1.3.1 + resolution: "@emnapi/runtime@npm:1.3.1" + dependencies: + tslib: "npm:^2.4.0" + checksum: 10c0/060ffede50f1b619c15083312b80a9e62a5b0c87aa8c1b54854c49766c9d69f8d1d3d87bd963a647071263a320db41b25eaa50b74d6a80dcc763c23dbeaafd6c + languageName: node + linkType: hard + +"@emnapi/wasi-threads@npm:1.0.1": + version: 1.0.1 + resolution: "@emnapi/wasi-threads@npm:1.0.1" + dependencies: + tslib: "npm:^2.4.0" + checksum: 10c0/1e0c8036b8d53e9b07cc9acf021705ef6c86ab6b13e1acda7fffaf541a2d3565072afb92597419173ced9ea14f6bf32fce149106e669b5902b825e8b499e5c6c + languageName: node + linkType: hard + "@esbuild/aix-ppc64@npm:0.20.2": version: 0.20.2 resolution: "@esbuild/aix-ppc64@npm:0.20.2" @@ -6111,16 +6123,23 @@ __metadata: languageName: node linkType: hard -"@esbuild/aix-ppc64@npm:0.21.3": - version: 0.21.3 - resolution: "@esbuild/aix-ppc64@npm:0.21.3" +"@esbuild/aix-ppc64@npm:0.21.4": + version: 0.21.4 + resolution: "@esbuild/aix-ppc64@npm:0.21.4" conditions: os=aix & cpu=ppc64 languageName: node linkType: hard -"@esbuild/aix-ppc64@npm:0.21.4": - version: 0.21.4 - resolution: "@esbuild/aix-ppc64@npm:0.21.4" +"@esbuild/aix-ppc64@npm:0.23.0": + version: 0.23.0 + resolution: "@esbuild/aix-ppc64@npm:0.23.0" + conditions: os=aix & cpu=ppc64 + languageName: node + linkType: hard + +"@esbuild/aix-ppc64@npm:0.23.1": + version: 0.23.1 + resolution: "@esbuild/aix-ppc64@npm:0.23.1" conditions: os=aix & cpu=ppc64 languageName: node linkType: hard @@ -6132,16 +6151,23 @@ __metadata: languageName: node linkType: hard -"@esbuild/android-arm64@npm:0.21.3": - version: 0.21.3 - resolution: "@esbuild/android-arm64@npm:0.21.3" +"@esbuild/android-arm64@npm:0.21.4": + version: 0.21.4 + resolution: "@esbuild/android-arm64@npm:0.21.4" conditions: os=android & cpu=arm64 languageName: node linkType: hard -"@esbuild/android-arm64@npm:0.21.4": - version: 0.21.4 - resolution: "@esbuild/android-arm64@npm:0.21.4" +"@esbuild/android-arm64@npm:0.23.0": + version: 0.23.0 + resolution: "@esbuild/android-arm64@npm:0.23.0" + conditions: os=android & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/android-arm64@npm:0.23.1": + version: 0.23.1 + resolution: "@esbuild/android-arm64@npm:0.23.1" conditions: os=android & cpu=arm64 languageName: node linkType: hard @@ -6153,16 +6179,23 @@ __metadata: languageName: node linkType: hard -"@esbuild/android-arm@npm:0.21.3": - version: 0.21.3 - resolution: "@esbuild/android-arm@npm:0.21.3" +"@esbuild/android-arm@npm:0.21.4": + version: 0.21.4 + resolution: "@esbuild/android-arm@npm:0.21.4" conditions: os=android & cpu=arm languageName: node linkType: hard -"@esbuild/android-arm@npm:0.21.4": - version: 0.21.4 - resolution: "@esbuild/android-arm@npm:0.21.4" +"@esbuild/android-arm@npm:0.23.0": + version: 0.23.0 + resolution: "@esbuild/android-arm@npm:0.23.0" + conditions: os=android & cpu=arm + languageName: node + linkType: hard + +"@esbuild/android-arm@npm:0.23.1": + version: 0.23.1 + resolution: "@esbuild/android-arm@npm:0.23.1" conditions: os=android & cpu=arm languageName: node linkType: hard @@ -6174,16 +6207,23 @@ __metadata: languageName: node linkType: hard -"@esbuild/android-x64@npm:0.21.3": - version: 0.21.3 - resolution: "@esbuild/android-x64@npm:0.21.3" +"@esbuild/android-x64@npm:0.21.4": + version: 0.21.4 + resolution: "@esbuild/android-x64@npm:0.21.4" conditions: os=android & cpu=x64 languageName: node linkType: hard -"@esbuild/android-x64@npm:0.21.4": - version: 0.21.4 - resolution: "@esbuild/android-x64@npm:0.21.4" +"@esbuild/android-x64@npm:0.23.0": + version: 0.23.0 + resolution: "@esbuild/android-x64@npm:0.23.0" + conditions: os=android & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/android-x64@npm:0.23.1": + version: 0.23.1 + resolution: "@esbuild/android-x64@npm:0.23.1" conditions: os=android & cpu=x64 languageName: node linkType: hard @@ -6195,16 +6235,23 @@ __metadata: languageName: node linkType: hard -"@esbuild/darwin-arm64@npm:0.21.3": - version: 0.21.3 - resolution: "@esbuild/darwin-arm64@npm:0.21.3" +"@esbuild/darwin-arm64@npm:0.21.4": + version: 0.21.4 + resolution: "@esbuild/darwin-arm64@npm:0.21.4" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"@esbuild/darwin-arm64@npm:0.21.4": - version: 0.21.4 - resolution: "@esbuild/darwin-arm64@npm:0.21.4" +"@esbuild/darwin-arm64@npm:0.23.0": + version: 0.23.0 + resolution: "@esbuild/darwin-arm64@npm:0.23.0" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/darwin-arm64@npm:0.23.1": + version: 0.23.1 + resolution: "@esbuild/darwin-arm64@npm:0.23.1" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard @@ -6216,16 +6263,23 @@ __metadata: languageName: node linkType: hard -"@esbuild/darwin-x64@npm:0.21.3": - version: 0.21.3 - resolution: "@esbuild/darwin-x64@npm:0.21.3" +"@esbuild/darwin-x64@npm:0.21.4": + version: 0.21.4 + resolution: "@esbuild/darwin-x64@npm:0.21.4" conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"@esbuild/darwin-x64@npm:0.21.4": - version: 0.21.4 - resolution: "@esbuild/darwin-x64@npm:0.21.4" +"@esbuild/darwin-x64@npm:0.23.0": + version: 0.23.0 + resolution: "@esbuild/darwin-x64@npm:0.23.0" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/darwin-x64@npm:0.23.1": + version: 0.23.1 + resolution: "@esbuild/darwin-x64@npm:0.23.1" conditions: os=darwin & cpu=x64 languageName: node linkType: hard @@ -6237,16 +6291,23 @@ __metadata: languageName: node linkType: hard -"@esbuild/freebsd-arm64@npm:0.21.3": - version: 0.21.3 - resolution: "@esbuild/freebsd-arm64@npm:0.21.3" +"@esbuild/freebsd-arm64@npm:0.21.4": + version: 0.21.4 + resolution: "@esbuild/freebsd-arm64@npm:0.21.4" conditions: os=freebsd & cpu=arm64 languageName: node linkType: hard -"@esbuild/freebsd-arm64@npm:0.21.4": - version: 0.21.4 - resolution: "@esbuild/freebsd-arm64@npm:0.21.4" +"@esbuild/freebsd-arm64@npm:0.23.0": + version: 0.23.0 + resolution: "@esbuild/freebsd-arm64@npm:0.23.0" + conditions: os=freebsd & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/freebsd-arm64@npm:0.23.1": + version: 0.23.1 + resolution: "@esbuild/freebsd-arm64@npm:0.23.1" conditions: os=freebsd & cpu=arm64 languageName: node linkType: hard @@ -6258,16 +6319,23 @@ __metadata: languageName: node linkType: hard -"@esbuild/freebsd-x64@npm:0.21.3": - version: 0.21.3 - resolution: "@esbuild/freebsd-x64@npm:0.21.3" +"@esbuild/freebsd-x64@npm:0.21.4": + version: 0.21.4 + resolution: "@esbuild/freebsd-x64@npm:0.21.4" conditions: os=freebsd & cpu=x64 languageName: node linkType: hard -"@esbuild/freebsd-x64@npm:0.21.4": - version: 0.21.4 - resolution: "@esbuild/freebsd-x64@npm:0.21.4" +"@esbuild/freebsd-x64@npm:0.23.0": + version: 0.23.0 + resolution: "@esbuild/freebsd-x64@npm:0.23.0" + conditions: os=freebsd & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/freebsd-x64@npm:0.23.1": + version: 0.23.1 + resolution: "@esbuild/freebsd-x64@npm:0.23.1" conditions: os=freebsd & cpu=x64 languageName: node linkType: hard @@ -6279,16 +6347,23 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-arm64@npm:0.21.3": - version: 0.21.3 - resolution: "@esbuild/linux-arm64@npm:0.21.3" +"@esbuild/linux-arm64@npm:0.21.4": + version: 0.21.4 + resolution: "@esbuild/linux-arm64@npm:0.21.4" conditions: os=linux & cpu=arm64 languageName: node linkType: hard -"@esbuild/linux-arm64@npm:0.21.4": - version: 0.21.4 - resolution: "@esbuild/linux-arm64@npm:0.21.4" +"@esbuild/linux-arm64@npm:0.23.0": + version: 0.23.0 + resolution: "@esbuild/linux-arm64@npm:0.23.0" + conditions: os=linux & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/linux-arm64@npm:0.23.1": + version: 0.23.1 + resolution: "@esbuild/linux-arm64@npm:0.23.1" conditions: os=linux & cpu=arm64 languageName: node linkType: hard @@ -6300,16 +6375,23 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-arm@npm:0.21.3": - version: 0.21.3 - resolution: "@esbuild/linux-arm@npm:0.21.3" +"@esbuild/linux-arm@npm:0.21.4": + version: 0.21.4 + resolution: "@esbuild/linux-arm@npm:0.21.4" conditions: os=linux & cpu=arm languageName: node linkType: hard -"@esbuild/linux-arm@npm:0.21.4": - version: 0.21.4 - resolution: "@esbuild/linux-arm@npm:0.21.4" +"@esbuild/linux-arm@npm:0.23.0": + version: 0.23.0 + resolution: "@esbuild/linux-arm@npm:0.23.0" + conditions: os=linux & cpu=arm + languageName: node + linkType: hard + +"@esbuild/linux-arm@npm:0.23.1": + version: 0.23.1 + resolution: "@esbuild/linux-arm@npm:0.23.1" conditions: os=linux & cpu=arm languageName: node linkType: hard @@ -6321,16 +6403,23 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-ia32@npm:0.21.3": - version: 0.21.3 - resolution: "@esbuild/linux-ia32@npm:0.21.3" +"@esbuild/linux-ia32@npm:0.21.4": + version: 0.21.4 + resolution: "@esbuild/linux-ia32@npm:0.21.4" conditions: os=linux & cpu=ia32 languageName: node linkType: hard -"@esbuild/linux-ia32@npm:0.21.4": - version: 0.21.4 - resolution: "@esbuild/linux-ia32@npm:0.21.4" +"@esbuild/linux-ia32@npm:0.23.0": + version: 0.23.0 + resolution: "@esbuild/linux-ia32@npm:0.23.0" + conditions: os=linux & cpu=ia32 + languageName: node + linkType: hard + +"@esbuild/linux-ia32@npm:0.23.1": + version: 0.23.1 + resolution: "@esbuild/linux-ia32@npm:0.23.1" conditions: os=linux & cpu=ia32 languageName: node linkType: hard @@ -6342,16 +6431,23 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-loong64@npm:0.21.3": - version: 0.21.3 - resolution: "@esbuild/linux-loong64@npm:0.21.3" +"@esbuild/linux-loong64@npm:0.21.4": + version: 0.21.4 + resolution: "@esbuild/linux-loong64@npm:0.21.4" conditions: os=linux & cpu=loong64 languageName: node linkType: hard -"@esbuild/linux-loong64@npm:0.21.4": - version: 0.21.4 - resolution: "@esbuild/linux-loong64@npm:0.21.4" +"@esbuild/linux-loong64@npm:0.23.0": + version: 0.23.0 + resolution: "@esbuild/linux-loong64@npm:0.23.0" + conditions: os=linux & cpu=loong64 + languageName: node + linkType: hard + +"@esbuild/linux-loong64@npm:0.23.1": + version: 0.23.1 + resolution: "@esbuild/linux-loong64@npm:0.23.1" conditions: os=linux & cpu=loong64 languageName: node linkType: hard @@ -6363,16 +6459,23 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-mips64el@npm:0.21.3": - version: 0.21.3 - resolution: "@esbuild/linux-mips64el@npm:0.21.3" +"@esbuild/linux-mips64el@npm:0.21.4": + version: 0.21.4 + resolution: "@esbuild/linux-mips64el@npm:0.21.4" conditions: os=linux & cpu=mips64el languageName: node linkType: hard -"@esbuild/linux-mips64el@npm:0.21.4": - version: 0.21.4 - resolution: "@esbuild/linux-mips64el@npm:0.21.4" +"@esbuild/linux-mips64el@npm:0.23.0": + version: 0.23.0 + resolution: "@esbuild/linux-mips64el@npm:0.23.0" + conditions: os=linux & cpu=mips64el + languageName: node + linkType: hard + +"@esbuild/linux-mips64el@npm:0.23.1": + version: 0.23.1 + resolution: "@esbuild/linux-mips64el@npm:0.23.1" conditions: os=linux & cpu=mips64el languageName: node linkType: hard @@ -6384,16 +6487,23 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-ppc64@npm:0.21.3": - version: 0.21.3 - resolution: "@esbuild/linux-ppc64@npm:0.21.3" +"@esbuild/linux-ppc64@npm:0.21.4": + version: 0.21.4 + resolution: "@esbuild/linux-ppc64@npm:0.21.4" conditions: os=linux & cpu=ppc64 languageName: node linkType: hard -"@esbuild/linux-ppc64@npm:0.21.4": - version: 0.21.4 - resolution: "@esbuild/linux-ppc64@npm:0.21.4" +"@esbuild/linux-ppc64@npm:0.23.0": + version: 0.23.0 + resolution: "@esbuild/linux-ppc64@npm:0.23.0" + conditions: os=linux & cpu=ppc64 + languageName: node + linkType: hard + +"@esbuild/linux-ppc64@npm:0.23.1": + version: 0.23.1 + resolution: "@esbuild/linux-ppc64@npm:0.23.1" conditions: os=linux & cpu=ppc64 languageName: node linkType: hard @@ -6405,16 +6515,23 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-riscv64@npm:0.21.3": - version: 0.21.3 - resolution: "@esbuild/linux-riscv64@npm:0.21.3" +"@esbuild/linux-riscv64@npm:0.21.4": + version: 0.21.4 + resolution: "@esbuild/linux-riscv64@npm:0.21.4" conditions: os=linux & cpu=riscv64 languageName: node linkType: hard -"@esbuild/linux-riscv64@npm:0.21.4": - version: 0.21.4 - resolution: "@esbuild/linux-riscv64@npm:0.21.4" +"@esbuild/linux-riscv64@npm:0.23.0": + version: 0.23.0 + resolution: "@esbuild/linux-riscv64@npm:0.23.0" + conditions: os=linux & cpu=riscv64 + languageName: node + linkType: hard + +"@esbuild/linux-riscv64@npm:0.23.1": + version: 0.23.1 + resolution: "@esbuild/linux-riscv64@npm:0.23.1" conditions: os=linux & cpu=riscv64 languageName: node linkType: hard @@ -6426,16 +6543,23 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-s390x@npm:0.21.3": - version: 0.21.3 - resolution: "@esbuild/linux-s390x@npm:0.21.3" +"@esbuild/linux-s390x@npm:0.21.4": + version: 0.21.4 + resolution: "@esbuild/linux-s390x@npm:0.21.4" conditions: os=linux & cpu=s390x languageName: node linkType: hard -"@esbuild/linux-s390x@npm:0.21.4": - version: 0.21.4 - resolution: "@esbuild/linux-s390x@npm:0.21.4" +"@esbuild/linux-s390x@npm:0.23.0": + version: 0.23.0 + resolution: "@esbuild/linux-s390x@npm:0.23.0" + conditions: os=linux & cpu=s390x + languageName: node + linkType: hard + +"@esbuild/linux-s390x@npm:0.23.1": + version: 0.23.1 + resolution: "@esbuild/linux-s390x@npm:0.23.1" conditions: os=linux & cpu=s390x languageName: node linkType: hard @@ -6447,16 +6571,23 @@ __metadata: languageName: node linkType: hard -"@esbuild/linux-x64@npm:0.21.3": - version: 0.21.3 - resolution: "@esbuild/linux-x64@npm:0.21.3" +"@esbuild/linux-x64@npm:0.21.4": + version: 0.21.4 + resolution: "@esbuild/linux-x64@npm:0.21.4" conditions: os=linux & cpu=x64 languageName: node linkType: hard -"@esbuild/linux-x64@npm:0.21.4": - version: 0.21.4 - resolution: "@esbuild/linux-x64@npm:0.21.4" +"@esbuild/linux-x64@npm:0.23.0": + version: 0.23.0 + resolution: "@esbuild/linux-x64@npm:0.23.0" + conditions: os=linux & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/linux-x64@npm:0.23.1": + version: 0.23.1 + resolution: "@esbuild/linux-x64@npm:0.23.1" conditions: os=linux & cpu=x64 languageName: node linkType: hard @@ -6468,20 +6599,41 @@ __metadata: languageName: node linkType: hard -"@esbuild/netbsd-x64@npm:0.21.3": - version: 0.21.3 - resolution: "@esbuild/netbsd-x64@npm:0.21.3" +"@esbuild/netbsd-x64@npm:0.21.4": + version: 0.21.4 + resolution: "@esbuild/netbsd-x64@npm:0.21.4" conditions: os=netbsd & cpu=x64 languageName: node linkType: hard -"@esbuild/netbsd-x64@npm:0.21.4": - version: 0.21.4 - resolution: "@esbuild/netbsd-x64@npm:0.21.4" +"@esbuild/netbsd-x64@npm:0.23.0": + version: 0.23.0 + resolution: "@esbuild/netbsd-x64@npm:0.23.0" conditions: os=netbsd & cpu=x64 languageName: node linkType: hard +"@esbuild/netbsd-x64@npm:0.23.1": + version: 0.23.1 + resolution: "@esbuild/netbsd-x64@npm:0.23.1" + conditions: os=netbsd & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/openbsd-arm64@npm:0.23.0": + version: 0.23.0 + resolution: "@esbuild/openbsd-arm64@npm:0.23.0" + conditions: os=openbsd & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/openbsd-arm64@npm:0.23.1": + version: 0.23.1 + resolution: "@esbuild/openbsd-arm64@npm:0.23.1" + conditions: os=openbsd & cpu=arm64 + languageName: node + linkType: hard + "@esbuild/openbsd-x64@npm:0.20.2": version: 0.20.2 resolution: "@esbuild/openbsd-x64@npm:0.20.2" @@ -6489,16 +6641,23 @@ __metadata: languageName: node linkType: hard -"@esbuild/openbsd-x64@npm:0.21.3": - version: 0.21.3 - resolution: "@esbuild/openbsd-x64@npm:0.21.3" +"@esbuild/openbsd-x64@npm:0.21.4": + version: 0.21.4 + resolution: "@esbuild/openbsd-x64@npm:0.21.4" conditions: os=openbsd & cpu=x64 languageName: node linkType: hard -"@esbuild/openbsd-x64@npm:0.21.4": - version: 0.21.4 - resolution: "@esbuild/openbsd-x64@npm:0.21.4" +"@esbuild/openbsd-x64@npm:0.23.0": + version: 0.23.0 + resolution: "@esbuild/openbsd-x64@npm:0.23.0" + conditions: os=openbsd & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/openbsd-x64@npm:0.23.1": + version: 0.23.1 + resolution: "@esbuild/openbsd-x64@npm:0.23.1" conditions: os=openbsd & cpu=x64 languageName: node linkType: hard @@ -6510,16 +6669,23 @@ __metadata: languageName: node linkType: hard -"@esbuild/sunos-x64@npm:0.21.3": - version: 0.21.3 - resolution: "@esbuild/sunos-x64@npm:0.21.3" +"@esbuild/sunos-x64@npm:0.21.4": + version: 0.21.4 + resolution: "@esbuild/sunos-x64@npm:0.21.4" conditions: os=sunos & cpu=x64 languageName: node linkType: hard -"@esbuild/sunos-x64@npm:0.21.4": - version: 0.21.4 - resolution: "@esbuild/sunos-x64@npm:0.21.4" +"@esbuild/sunos-x64@npm:0.23.0": + version: 0.23.0 + resolution: "@esbuild/sunos-x64@npm:0.23.0" + conditions: os=sunos & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/sunos-x64@npm:0.23.1": + version: 0.23.1 + resolution: "@esbuild/sunos-x64@npm:0.23.1" conditions: os=sunos & cpu=x64 languageName: node linkType: hard @@ -6531,16 +6697,23 @@ __metadata: languageName: node linkType: hard -"@esbuild/win32-arm64@npm:0.21.3": - version: 0.21.3 - resolution: "@esbuild/win32-arm64@npm:0.21.3" +"@esbuild/win32-arm64@npm:0.21.4": + version: 0.21.4 + resolution: "@esbuild/win32-arm64@npm:0.21.4" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard -"@esbuild/win32-arm64@npm:0.21.4": - version: 0.21.4 - resolution: "@esbuild/win32-arm64@npm:0.21.4" +"@esbuild/win32-arm64@npm:0.23.0": + version: 0.23.0 + resolution: "@esbuild/win32-arm64@npm:0.23.0" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + +"@esbuild/win32-arm64@npm:0.23.1": + version: 0.23.1 + resolution: "@esbuild/win32-arm64@npm:0.23.1" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard @@ -6552,16 +6725,23 @@ __metadata: languageName: node linkType: hard -"@esbuild/win32-ia32@npm:0.21.3": - version: 0.21.3 - resolution: "@esbuild/win32-ia32@npm:0.21.3" +"@esbuild/win32-ia32@npm:0.21.4": + version: 0.21.4 + resolution: "@esbuild/win32-ia32@npm:0.21.4" conditions: os=win32 & cpu=ia32 languageName: node linkType: hard -"@esbuild/win32-ia32@npm:0.21.4": - version: 0.21.4 - resolution: "@esbuild/win32-ia32@npm:0.21.4" +"@esbuild/win32-ia32@npm:0.23.0": + version: 0.23.0 + resolution: "@esbuild/win32-ia32@npm:0.23.0" + conditions: os=win32 & cpu=ia32 + languageName: node + linkType: hard + +"@esbuild/win32-ia32@npm:0.23.1": + version: 0.23.1 + resolution: "@esbuild/win32-ia32@npm:0.23.1" conditions: os=win32 & cpu=ia32 languageName: node linkType: hard @@ -6573,16 +6753,23 @@ __metadata: languageName: node linkType: hard -"@esbuild/win32-x64@npm:0.21.3": - version: 0.21.3 - resolution: "@esbuild/win32-x64@npm:0.21.3" +"@esbuild/win32-x64@npm:0.21.4": + version: 0.21.4 + resolution: "@esbuild/win32-x64@npm:0.21.4" conditions: os=win32 & cpu=x64 languageName: node linkType: hard -"@esbuild/win32-x64@npm:0.21.4": - version: 0.21.4 - resolution: "@esbuild/win32-x64@npm:0.21.4" +"@esbuild/win32-x64@npm:0.23.0": + version: 0.23.0 + resolution: "@esbuild/win32-x64@npm:0.23.0" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + +"@esbuild/win32-x64@npm:0.23.1": + version: 0.23.1 + resolution: "@esbuild/win32-x64@npm:0.23.1" conditions: os=win32 & cpu=x64 languageName: node linkType: hard @@ -6598,17 +6785,10 @@ __metadata: languageName: node linkType: hard -"@eslint-community/regexpp@npm:^4.5.1": - version: 4.10.0 - resolution: "@eslint-community/regexpp@npm:4.10.0" - checksum: 10c0/c5f60ef1f1ea7649fa7af0e80a5a79f64b55a8a8fa5086de4727eb4c86c652aedee407a9c143b8995d2c0b2d75c1222bec9ba5d73dbfc1f314550554f0979ef4 - languageName: node - linkType: hard - -"@eslint-community/regexpp@npm:^4.6.1": - version: 4.9.1 - resolution: "@eslint-community/regexpp@npm:4.9.1" - checksum: 10c0/d0e1bd1a37cb2cb6bbac88dfe97b62b412d4b6ea3a4bb1c4e1e503be03125063db5d80999cef9728f57b19b49979aa902ac68182bcf5f80dfce6fa9a9d34eee1 +"@eslint-community/regexpp@npm:^4.10.0, @eslint-community/regexpp@npm:^4.6.1": + version: 4.12.1 + resolution: "@eslint-community/regexpp@npm:4.12.1" + checksum: 10c0/a03d98c246bcb9109aec2c08e4d10c8d010256538dcb3f56610191607214523d4fb1b00aa81df830b6dffb74c5fa0be03642513a289c567949d3e550ca11cdf6 languageName: node linkType: hard @@ -6629,10 +6809,10 @@ __metadata: languageName: node linkType: hard -"@eslint/js@npm:8.57.0": - version: 8.57.0 - resolution: "@eslint/js@npm:8.57.0" - checksum: 10c0/9a518bb8625ba3350613903a6d8c622352ab0c6557a59fe6ff6178bf882bf57123f9d92aa826ee8ac3ee74b9c6203fe630e9ee00efb03d753962dcf65ee4bd94 +"@eslint/js@npm:8.57.1": + version: 8.57.1 + resolution: "@eslint/js@npm:8.57.1" + checksum: 10c0/b489c474a3b5b54381c62e82b3f7f65f4b8a5eaaed126546520bf2fede5532a8ed53212919fed1e9048dcf7f37167c8561d58d0ba4492a4244004e7793805223 languageName: node linkType: hard @@ -6647,47 +6827,225 @@ __metadata: version: 5.1.0 resolution: "@hapi/topo@npm:5.1.0" dependencies: - "@hapi/hoek": "npm:^9.0.0" - checksum: 10c0/b16b06d9357947149e032bdf10151eb71aea8057c79c4046bf32393cb89d0d0f7ca501c40c0f7534a5ceca078de0700d2257ac855c15e59fe4e00bba2f25c86f + "@hapi/hoek": "npm:^9.0.0" + checksum: 10c0/b16b06d9357947149e032bdf10151eb71aea8057c79c4046bf32393cb89d0d0f7ca501c40c0f7534a5ceca078de0700d2257ac855c15e59fe4e00bba2f25c86f + languageName: node + linkType: hard + +"@humanwhocodes/config-array@npm:^0.13.0": + version: 0.13.0 + resolution: "@humanwhocodes/config-array@npm:0.13.0" + dependencies: + "@humanwhocodes/object-schema": "npm:^2.0.3" + debug: "npm:^4.3.1" + minimatch: "npm:^3.0.5" + checksum: 10c0/205c99e756b759f92e1f44a3dc6292b37db199beacba8f26c2165d4051fe73a4ae52fdcfd08ffa93e7e5cb63da7c88648f0e84e197d154bbbbe137b2e0dd332e + languageName: node + linkType: hard + +"@humanwhocodes/module-importer@npm:^1.0.1": + version: 1.0.1 + resolution: "@humanwhocodes/module-importer@npm:1.0.1" + checksum: 10c0/909b69c3b86d482c26b3359db16e46a32e0fb30bd306a3c176b8313b9e7313dba0f37f519de6aa8b0a1921349e505f259d19475e123182416a506d7f87e7f529 + languageName: node + linkType: hard + +"@humanwhocodes/object-schema@npm:^2.0.3": + version: 2.0.3 + resolution: "@humanwhocodes/object-schema@npm:2.0.3" + checksum: 10c0/80520eabbfc2d32fe195a93557cef50dfe8c8905de447f022675aaf66abc33ae54098f5ea78548d925aa671cd4ab7c7daa5ad704fe42358c9b5e7db60f80696c + languageName: node + linkType: hard + +"@hutson/parse-repository-url@npm:^5.0.0": + version: 5.0.0 + resolution: "@hutson/parse-repository-url@npm:5.0.0" + checksum: 10c0/068c5c9e38fecc10e3aa6f6eee5818db6f3f29a70d01fec64e9ec0ee985e8995a0cf79ec5f7c80530f1fb27d99668ee2f38d8929b712b82d5100ebd2c9153e85 + languageName: node + linkType: hard + +"@inquirer/checkbox@npm:^2.4.7": + version: 2.5.0 + resolution: "@inquirer/checkbox@npm:2.5.0" + dependencies: + "@inquirer/core": "npm:^9.1.0" + "@inquirer/figures": "npm:^1.0.5" + "@inquirer/type": "npm:^1.5.3" + ansi-escapes: "npm:^4.3.2" + yoctocolors-cjs: "npm:^2.1.2" + checksum: 10c0/679d17ffe3aef0825593f3bc8d193b6c37b860c6cf6e0e9a10d4e60cc254a2dfc5da4a982bf5b9b5147018e456fffcb0b0dadf93ee1914b9d600b0c814284e22 + languageName: node + linkType: hard + +"@inquirer/confirm@npm:3.1.22": + version: 3.1.22 + resolution: "@inquirer/confirm@npm:3.1.22" + dependencies: + "@inquirer/core": "npm:^9.0.10" + "@inquirer/type": "npm:^1.5.2" + checksum: 10c0/99e1a17e62a674d8e440a11bf4e9d5a62666247823b091314e52ee40929a6a6e8ce60086ec653bbeb59117bfc940d807c6f4b604cf5cf51f24009b9d09d5bf98 + languageName: node + linkType: hard + +"@inquirer/confirm@npm:^3.1.22": + version: 3.2.0 + resolution: "@inquirer/confirm@npm:3.2.0" + dependencies: + "@inquirer/core": "npm:^9.1.0" + "@inquirer/type": "npm:^1.5.3" + checksum: 10c0/a2cbfc8ae9c880bba4cce1993f5c399fb0d12741fdd574917c87fceb40ece62ffa60e35aaadf4e62d7c114f54008e45aee5d6d90497bb62d493996c02725d243 + languageName: node + linkType: hard + +"@inquirer/core@npm:^9.0.10, @inquirer/core@npm:^9.1.0": + version: 9.2.1 + resolution: "@inquirer/core@npm:9.2.1" + dependencies: + "@inquirer/figures": "npm:^1.0.6" + "@inquirer/type": "npm:^2.0.0" + "@types/mute-stream": "npm:^0.0.4" + "@types/node": "npm:^22.5.5" + "@types/wrap-ansi": "npm:^3.0.0" + ansi-escapes: "npm:^4.3.2" + cli-width: "npm:^4.1.0" + mute-stream: "npm:^1.0.0" + signal-exit: "npm:^4.1.0" + strip-ansi: "npm:^6.0.1" + wrap-ansi: "npm:^6.2.0" + yoctocolors-cjs: "npm:^2.1.2" + checksum: 10c0/11c14be77a9fa85831de799a585721b0a49ab2f3b7d8fd1780c48ea2b29229c6bdc94e7892419086d0f7734136c2ba87b6a32e0782571eae5bbd655b1afad453 + languageName: node + linkType: hard + +"@inquirer/editor@npm:^2.1.22": + version: 2.2.0 + resolution: "@inquirer/editor@npm:2.2.0" + dependencies: + "@inquirer/core": "npm:^9.1.0" + "@inquirer/type": "npm:^1.5.3" + external-editor: "npm:^3.1.0" + checksum: 10c0/b8afc0790a7a5d82998bdfe469cbaa83b0cd0700be432cf95256c548e2a6a494997b5e93d65cbf94979c17b510758cf8494d85559f6b9508eb15d239a7f22aee + languageName: node + linkType: hard + +"@inquirer/expand@npm:^2.1.22": + version: 2.3.0 + resolution: "@inquirer/expand@npm:2.3.0" + dependencies: + "@inquirer/core": "npm:^9.1.0" + "@inquirer/type": "npm:^1.5.3" + yoctocolors-cjs: "npm:^2.1.2" + checksum: 10c0/f2030cb482a715e4d5153c19b3f0fd8bf47c16cdc16e1c669e90985386edf4f7b0f3b0e97e2990bb228878b93716228eb067d94fc557c25d3c5ee58747c0a995 + languageName: node + linkType: hard + +"@inquirer/figures@npm:^1.0.5, @inquirer/figures@npm:^1.0.6": + version: 1.0.8 + resolution: "@inquirer/figures@npm:1.0.8" + checksum: 10c0/34d287ff1fd16476c58bbd5b169db315f8319b5ffb09f81a1bb9aabd4165114e7406b1f418d021fd9cd48923008446e3eec274bb818f378ea132a0450bbc91d4 + languageName: node + linkType: hard + +"@inquirer/input@npm:^2.2.9": + version: 2.3.0 + resolution: "@inquirer/input@npm:2.3.0" + dependencies: + "@inquirer/core": "npm:^9.1.0" + "@inquirer/type": "npm:^1.5.3" + checksum: 10c0/44c8cea38c9192f528cae556f38709135a00230132deab3b9bb9a925375fce0513fecf4e8c1df7c4319e1ed7aa31fb4dd2c4956c8bc9dd39af087aafff5b6f1f + languageName: node + linkType: hard + +"@inquirer/number@npm:^1.0.10": + version: 1.1.0 + resolution: "@inquirer/number@npm:1.1.0" + dependencies: + "@inquirer/core": "npm:^9.1.0" + "@inquirer/type": "npm:^1.5.3" + checksum: 10c0/db472dab57c951c4a083b2a749ce58262b1efd9889e7603de6e9c3f9af7d8dce8fbdfa3859f65402d3587470e0397a076e5fb4ed775db33310f17a42c9faeb20 + languageName: node + linkType: hard + +"@inquirer/password@npm:^2.1.22": + version: 2.2.0 + resolution: "@inquirer/password@npm:2.2.0" + dependencies: + "@inquirer/core": "npm:^9.1.0" + "@inquirer/type": "npm:^1.5.3" + ansi-escapes: "npm:^4.3.2" + checksum: 10c0/fa4b335164b2c9c3304d29a7214ef93bac8d3da6788146603ea3d0485b8d811151e49bf66cb0dcc729a9dc21406c3a8c2718c5beec572a91d07026d22842c13f + languageName: node + linkType: hard + +"@inquirer/prompts@npm:5.3.8": + version: 5.3.8 + resolution: "@inquirer/prompts@npm:5.3.8" + dependencies: + "@inquirer/checkbox": "npm:^2.4.7" + "@inquirer/confirm": "npm:^3.1.22" + "@inquirer/editor": "npm:^2.1.22" + "@inquirer/expand": "npm:^2.1.22" + "@inquirer/input": "npm:^2.2.9" + "@inquirer/number": "npm:^1.0.10" + "@inquirer/password": "npm:^2.1.22" + "@inquirer/rawlist": "npm:^2.2.4" + "@inquirer/search": "npm:^1.0.7" + "@inquirer/select": "npm:^2.4.7" + checksum: 10c0/2c49afb5e9f7d825c1489d8c587f985418e890508802e1483d1cb8da46644e9803b2f0a8b71f53f0ff5d9273ca39e28faeadf7d6691467eb5c0dbbde900e5233 languageName: node linkType: hard -"@humanwhocodes/config-array@npm:^0.11.14": - version: 0.11.14 - resolution: "@humanwhocodes/config-array@npm:0.11.14" +"@inquirer/rawlist@npm:^2.2.4": + version: 2.3.0 + resolution: "@inquirer/rawlist@npm:2.3.0" dependencies: - "@humanwhocodes/object-schema": "npm:^2.0.2" - debug: "npm:^4.3.1" - minimatch: "npm:^3.0.5" - checksum: 10c0/66f725b4ee5fdd8322c737cb5013e19fac72d4d69c8bf4b7feb192fcb83442b035b92186f8e9497c220e58b2d51a080f28a73f7899bc1ab288c3be172c467541 + "@inquirer/core": "npm:^9.1.0" + "@inquirer/type": "npm:^1.5.3" + yoctocolors-cjs: "npm:^2.1.2" + checksum: 10c0/d49d5e12b7a54394c140b27c8d8748ba1ab855c67c01fa72b5a63810f12865df3bf4d5ae929f54fad77b5fc2f7431a332ae1e5fe4babb335380c28917002f364 languageName: node linkType: hard -"@humanwhocodes/module-importer@npm:^1.0.1": - version: 1.0.1 - resolution: "@humanwhocodes/module-importer@npm:1.0.1" - checksum: 10c0/909b69c3b86d482c26b3359db16e46a32e0fb30bd306a3c176b8313b9e7313dba0f37f519de6aa8b0a1921349e505f259d19475e123182416a506d7f87e7f529 +"@inquirer/search@npm:^1.0.7": + version: 1.1.0 + resolution: "@inquirer/search@npm:1.1.0" + dependencies: + "@inquirer/core": "npm:^9.1.0" + "@inquirer/figures": "npm:^1.0.5" + "@inquirer/type": "npm:^1.5.3" + yoctocolors-cjs: "npm:^2.1.2" + checksum: 10c0/20d7e910266b9e3f0dc8eef8f3007f487e6149fa8421d293eaf7c11a1e35c3d82aa30af118b3a6e35eed1048a27d7d806f45722abb10005db5d099ea64b00b17 languageName: node linkType: hard -"@humanwhocodes/object-schema@npm:^2.0.2": - version: 2.0.2 - resolution: "@humanwhocodes/object-schema@npm:2.0.2" - checksum: 10c0/6fd83dc320231d71c4541d0244051df61f301817e9f9da9fd4cb7e44ec8aacbde5958c1665b0c419401ab935114fdf532a6ad5d4e7294b1af2f347dd91a6983f +"@inquirer/select@npm:^2.4.7": + version: 2.5.0 + resolution: "@inquirer/select@npm:2.5.0" + dependencies: + "@inquirer/core": "npm:^9.1.0" + "@inquirer/figures": "npm:^1.0.5" + "@inquirer/type": "npm:^1.5.3" + ansi-escapes: "npm:^4.3.2" + yoctocolors-cjs: "npm:^2.1.2" + checksum: 10c0/280fa700187ff29da0ad4bf32aa11db776261584ddf5cc1ceac5caebb242a4ac0c5944af522a2579d78b6ec7d6e8b1b9f6564872101abd8dcc69929b4e33fc4c languageName: node linkType: hard -"@hutson/parse-repository-url@npm:^5.0.0": - version: 5.0.0 - resolution: "@hutson/parse-repository-url@npm:5.0.0" - checksum: 10c0/068c5c9e38fecc10e3aa6f6eee5818db6f3f29a70d01fec64e9ec0ee985e8995a0cf79ec5f7c80530f1fb27d99668ee2f38d8929b712b82d5100ebd2c9153e85 +"@inquirer/type@npm:^1.5.1, @inquirer/type@npm:^1.5.2, @inquirer/type@npm:^1.5.3": + version: 1.5.5 + resolution: "@inquirer/type@npm:1.5.5" + dependencies: + mute-stream: "npm:^1.0.0" + checksum: 10c0/4c41736c09ba9426b5a9e44993bdd54e8f532e791518802e33866f233a2a6126a25c1c82c19d1abbf1df627e57b1b957dd3f8318ea96073d8bfc32193943bcb3 languageName: node linkType: hard -"@inquirer/figures@npm:^1.0.2": - version: 1.0.2 - resolution: "@inquirer/figures@npm:1.0.2" - checksum: 10c0/7e74c41385d940d43a97d31386114669986548f878a1d12d8387c36e51f8e491d2cc307ece7670b068982dc3579269bd1258d30ebe36cb19006cf6a20a07dc66 +"@inquirer/type@npm:^2.0.0": + version: 2.0.0 + resolution: "@inquirer/type@npm:2.0.0" + dependencies: + mute-stream: "npm:^1.0.0" + checksum: 10c0/8c663d52beb2b89a896d3c3d5cc3d6d024fa149e565555bcb42fa640cbe23fba7ff2c51445342cef1fe6e46305e2d16c1590fa1d11ad0ddf93a67b655ef41f0a languageName: node linkType: hard @@ -6718,7 +7076,7 @@ __metadata: languageName: node linkType: hard -"@istanbuljs/schema@npm:^0.1.2": +"@istanbuljs/schema@npm:^0.1.2, @istanbuljs/schema@npm:^0.1.3": version: 0.1.3 resolution: "@istanbuljs/schema@npm:0.1.3" checksum: 10c0/61c5286771676c9ca3eb2bd8a7310a9c063fb6e0e9712225c8471c582d157392c88f5353581c8c9adbe0dff98892317d2fdfc56c3499aa42e0194405206a963a @@ -6739,50 +7097,50 @@ __metadata: languageName: node linkType: hard -"@jest/console@npm:^29.6.2": - version: 29.6.2 - resolution: "@jest/console@npm:29.6.2" +"@jest/console@npm:^29.7.0": + version: 29.7.0 + resolution: "@jest/console@npm:29.7.0" dependencies: - "@jest/types": "npm:^29.6.1" + "@jest/types": "npm:^29.6.3" "@types/node": "npm:*" chalk: "npm:^4.0.0" - jest-message-util: "npm:^29.6.2" - jest-util: "npm:^29.6.2" + jest-message-util: "npm:^29.7.0" + jest-util: "npm:^29.7.0" slash: "npm:^3.0.0" - checksum: 10c0/cdd97d89df5e3e84ba7927ba58a297eb0eae25190575299fede876f7d09a08dc120094be08e49bf01859c54053470215194c0d9a64fc56beb735c5de4de8c5a8 + checksum: 10c0/7be408781d0a6f657e969cbec13b540c329671819c2f57acfad0dae9dbfe2c9be859f38fe99b35dba9ff1536937dc6ddc69fdcd2794812fa3c647a1619797f6c languageName: node linkType: hard -"@jest/core@npm:^29.6.2": - version: 29.6.2 - resolution: "@jest/core@npm:29.6.2" +"@jest/core@npm:^29.7.0": + version: 29.7.0 + resolution: "@jest/core@npm:29.7.0" dependencies: - "@jest/console": "npm:^29.6.2" - "@jest/reporters": "npm:^29.6.2" - "@jest/test-result": "npm:^29.6.2" - "@jest/transform": "npm:^29.6.2" - "@jest/types": "npm:^29.6.1" + "@jest/console": "npm:^29.7.0" + "@jest/reporters": "npm:^29.7.0" + "@jest/test-result": "npm:^29.7.0" + "@jest/transform": "npm:^29.7.0" + "@jest/types": "npm:^29.6.3" "@types/node": "npm:*" ansi-escapes: "npm:^4.2.1" chalk: "npm:^4.0.0" ci-info: "npm:^3.2.0" exit: "npm:^0.1.2" graceful-fs: "npm:^4.2.9" - jest-changed-files: "npm:^29.5.0" - jest-config: "npm:^29.6.2" - jest-haste-map: "npm:^29.6.2" - jest-message-util: "npm:^29.6.2" - jest-regex-util: "npm:^29.4.3" - jest-resolve: "npm:^29.6.2" - jest-resolve-dependencies: "npm:^29.6.2" - jest-runner: "npm:^29.6.2" - jest-runtime: "npm:^29.6.2" - jest-snapshot: "npm:^29.6.2" - jest-util: "npm:^29.6.2" - jest-validate: "npm:^29.6.2" - jest-watcher: "npm:^29.6.2" + jest-changed-files: "npm:^29.7.0" + jest-config: "npm:^29.7.0" + jest-haste-map: "npm:^29.7.0" + jest-message-util: "npm:^29.7.0" + jest-regex-util: "npm:^29.6.3" + jest-resolve: "npm:^29.7.0" + jest-resolve-dependencies: "npm:^29.7.0" + jest-runner: "npm:^29.7.0" + jest-runtime: "npm:^29.7.0" + jest-snapshot: "npm:^29.7.0" + jest-util: "npm:^29.7.0" + jest-validate: "npm:^29.7.0" + jest-watcher: "npm:^29.7.0" micromatch: "npm:^4.0.4" - pretty-format: "npm:^29.6.2" + pretty-format: "npm:^29.7.0" slash: "npm:^3.0.0" strip-ansi: "npm:^6.0.0" peerDependencies: @@ -6790,7 +7148,7 @@ __metadata: peerDependenciesMeta: node-notifier: optional: true - checksum: 10c0/066fc9dc66bb3785c2670280f05cb4f01a776a2d88bc6106ad4224e4a1064b1dbe3752545b4d744d6e0e3203fb0a2a102e9864104f160f2266fd30e756d9d693 + checksum: 10c0/934f7bf73190f029ac0f96662c85cd276ec460d407baf6b0dbaec2872e157db4d55a7ee0b1c43b18874602f662b37cb973dda469a4e6d88b4e4845b521adeeb2 languageName: node linkType: hard @@ -6806,18 +7164,6 @@ __metadata: languageName: node linkType: hard -"@jest/environment@npm:^29.6.2": - version: 29.6.2 - resolution: "@jest/environment@npm:29.6.2" - dependencies: - "@jest/fake-timers": "npm:^29.6.2" - "@jest/types": "npm:^29.6.1" - "@types/node": "npm:*" - jest-mock: "npm:^29.6.2" - checksum: 10c0/82f040b4f729e1a3ab9e61b33e009a7b4ccf572ff94fc157e6fe8ecd267c8af53c8c02853bfe7f023d0f6bf35edf06b6bc7873efc433f335a3774b6c2445662d - languageName: node - linkType: hard - "@jest/environment@npm:^29.7.0": version: 29.7.0 resolution: "@jest/environment@npm:29.7.0" @@ -6848,6 +7194,15 @@ __metadata: languageName: node linkType: hard +"@jest/expect-utils@npm:^29.7.0": + version: 29.7.0 + resolution: "@jest/expect-utils@npm:29.7.0" + dependencies: + jest-get-type: "npm:^29.6.3" + checksum: 10c0/60b79d23a5358dc50d9510d726443316253ecda3a7fb8072e1526b3e0d3b14f066ee112db95699b7a43ad3f0b61b750c72e28a5a1cac361d7a2bb34747fa938a + languageName: node + linkType: hard + "@jest/expect@npm:^29.5.0": version: 29.5.0 resolution: "@jest/expect@npm:29.5.0" @@ -6858,13 +7213,13 @@ __metadata: languageName: node linkType: hard -"@jest/expect@npm:^29.6.2": - version: 29.6.2 - resolution: "@jest/expect@npm:29.6.2" +"@jest/expect@npm:^29.7.0": + version: 29.7.0 + resolution: "@jest/expect@npm:29.7.0" dependencies: - expect: "npm:^29.6.2" - jest-snapshot: "npm:^29.6.2" - checksum: 10c0/2cd9a5613b1bae5300dd16d76c7790d1d3b43cb55654dc2b64b202d1522bb03844f88c7bc60b72e3095c8479873ade91009ab0cb8a851842dab00d4d9fc1e3cb + expect: "npm:^29.7.0" + jest-snapshot: "npm:^29.7.0" + checksum: 10c0/b41f193fb697d3ced134349250aed6ccea075e48c4f803159db102b826a4e473397c68c31118259868fd69a5cba70e97e1c26d2c2ff716ca39dc73a2ccec037e languageName: node linkType: hard @@ -6882,20 +7237,6 @@ __metadata: languageName: node linkType: hard -"@jest/fake-timers@npm:^29.6.2": - version: 29.6.2 - resolution: "@jest/fake-timers@npm:29.6.2" - dependencies: - "@jest/types": "npm:^29.6.1" - "@sinonjs/fake-timers": "npm:^10.0.2" - "@types/node": "npm:*" - jest-message-util: "npm:^29.6.2" - jest-mock: "npm:^29.6.2" - jest-util: "npm:^29.6.2" - checksum: 10c0/4f333b7f8f6bc8e0549e3838e68c3859de1faa3e0639f8ede2786602ec1c237f4691e7bd13649b308ddfaf3fd5aa6b75067fe34f6b6dfa9c0b570773611e0e73 - languageName: node - linkType: hard - "@jest/fake-timers@npm:^29.7.0": version: 29.7.0 resolution: "@jest/fake-timers@npm:29.7.0" @@ -6922,15 +7263,15 @@ __metadata: languageName: node linkType: hard -"@jest/globals@npm:^29.6.2": - version: 29.6.2 - resolution: "@jest/globals@npm:29.6.2" +"@jest/globals@npm:^29.7.0": + version: 29.7.0 + resolution: "@jest/globals@npm:29.7.0" dependencies: - "@jest/environment": "npm:^29.6.2" - "@jest/expect": "npm:^29.6.2" - "@jest/types": "npm:^29.6.1" - jest-mock: "npm:^29.6.2" - checksum: 10c0/3ee73f13d51a08b9fe3bc39305a3b9c0259a7610d89f17b9579684b80bdff3e079adc81d6aec298f5ebe07b43ba0dfdb305be2747b9dc87aa7f337bddc83fedc + "@jest/environment": "npm:^29.7.0" + "@jest/expect": "npm:^29.7.0" + "@jest/types": "npm:^29.6.3" + jest-mock: "npm:^29.7.0" + checksum: 10c0/a385c99396878fe6e4460c43bd7bb0a5cc52befb462cc6e7f2a3810f9e7bcce7cdeb51908fd530391ee452dc856c98baa2c5f5fa8a5b30b071d31ef7f6955cea languageName: node linkType: hard @@ -6971,15 +7312,15 @@ __metadata: languageName: node linkType: hard -"@jest/reporters@npm:^29.6.2": - version: 29.6.2 - resolution: "@jest/reporters@npm:29.6.2" +"@jest/reporters@npm:^29.7.0": + version: 29.7.0 + resolution: "@jest/reporters@npm:29.7.0" dependencies: "@bcoe/v8-coverage": "npm:^0.2.3" - "@jest/console": "npm:^29.6.2" - "@jest/test-result": "npm:^29.6.2" - "@jest/transform": "npm:^29.6.2" - "@jest/types": "npm:^29.6.1" + "@jest/console": "npm:^29.7.0" + "@jest/test-result": "npm:^29.7.0" + "@jest/transform": "npm:^29.7.0" + "@jest/types": "npm:^29.6.3" "@jridgewell/trace-mapping": "npm:^0.3.18" "@types/node": "npm:*" chalk: "npm:^4.0.0" @@ -6988,13 +7329,13 @@ __metadata: glob: "npm:^7.1.3" graceful-fs: "npm:^4.2.9" istanbul-lib-coverage: "npm:^3.0.0" - istanbul-lib-instrument: "npm:^5.1.0" + istanbul-lib-instrument: "npm:^6.0.0" istanbul-lib-report: "npm:^3.0.0" istanbul-lib-source-maps: "npm:^4.0.0" istanbul-reports: "npm:^3.1.3" - jest-message-util: "npm:^29.6.2" - jest-util: "npm:^29.6.2" - jest-worker: "npm:^29.6.2" + jest-message-util: "npm:^29.7.0" + jest-util: "npm:^29.7.0" + jest-worker: "npm:^29.7.0" slash: "npm:^3.0.0" string-length: "npm:^4.0.1" strip-ansi: "npm:^6.0.0" @@ -7004,7 +7345,7 @@ __metadata: peerDependenciesMeta: node-notifier: optional: true - checksum: 10c0/d4321978208fa8c64ff4e14694508ec8fa5712801b66db62a6c58456798ffc2fab5761db24b1c3596664f2ad0862fcabc69927f0ed54cc9f219689a77cc7db4a + checksum: 10c0/a754402a799541c6e5aff2c8160562525e2a47e7d568f01ebfc4da66522de39cbb809bbb0a841c7052e4270d79214e70aec3c169e4eae42a03bc1a8a20cb9fa2 languageName: node linkType: hard @@ -7046,14 +7387,14 @@ __metadata: languageName: node linkType: hard -"@jest/source-map@npm:^29.6.0": - version: 29.6.0 - resolution: "@jest/source-map@npm:29.6.0" +"@jest/source-map@npm:^29.6.3": + version: 29.6.3 + resolution: "@jest/source-map@npm:29.6.3" dependencies: "@jridgewell/trace-mapping": "npm:^0.3.18" callsites: "npm:^3.0.0" graceful-fs: "npm:^4.2.9" - checksum: 10c0/afa654e3634ad74d5f8388ccffd7ecbd745bdce7f6f0860b69c07827c3ee5bb408f52b6c3136b43157ef5874c099059484e43bd3aa391232ab27d8c330399789 + checksum: 10c0/a2f177081830a2e8ad3f2e29e20b63bd40bade294880b595acf2fc09ec74b6a9dd98f126a2baa2bf4941acd89b13a4ade5351b3885c224107083a0059b60a219 languageName: node linkType: hard @@ -7069,15 +7410,15 @@ __metadata: languageName: node linkType: hard -"@jest/test-result@npm:^29.6.2": - version: 29.6.2 - resolution: "@jest/test-result@npm:29.6.2" +"@jest/test-result@npm:^29.7.0": + version: 29.7.0 + resolution: "@jest/test-result@npm:29.7.0" dependencies: - "@jest/console": "npm:^29.6.2" - "@jest/types": "npm:^29.6.1" + "@jest/console": "npm:^29.7.0" + "@jest/types": "npm:^29.6.3" "@types/istanbul-lib-coverage": "npm:^2.0.0" collect-v8-coverage: "npm:^1.0.0" - checksum: 10c0/9c373db297d6cc4b23b143592b3121da047890ba3609115e4db7b94220095d5e32a11f7179ca3dfa1ab29fa30a5e51cbdbbdf58dcd8ef3216e92e86d2aa3251c + checksum: 10c0/7de54090e54a674ca173470b55dc1afdee994f2d70d185c80236003efd3fa2b753fff51ffcdda8e2890244c411fd2267529d42c4a50a8303755041ee493e6a04 languageName: node linkType: hard @@ -7093,15 +7434,15 @@ __metadata: languageName: node linkType: hard -"@jest/test-sequencer@npm:^29.6.2": - version: 29.6.2 - resolution: "@jest/test-sequencer@npm:29.6.2" +"@jest/test-sequencer@npm:^29.7.0": + version: 29.7.0 + resolution: "@jest/test-sequencer@npm:29.7.0" dependencies: - "@jest/test-result": "npm:^29.6.2" + "@jest/test-result": "npm:^29.7.0" graceful-fs: "npm:^4.2.9" - jest-haste-map: "npm:^29.6.2" + jest-haste-map: "npm:^29.7.0" slash: "npm:^3.0.0" - checksum: 10c0/dc6a37f0eb93a72ce76a5100f8adb97e40bb0ab9b6f49b07476e0b83b07d1366803185b3d64da2219448312fa78a687f473f54e0c1da08efc4d2e1cb2d3c1dfb + checksum: 10c0/593a8c4272797bb5628984486080cbf57aed09c7cfdc0a634e8c06c38c6bef329c46c0016e84555ee55d1cd1f381518cf1890990ff845524c1123720c8c1481b languageName: node linkType: hard @@ -7128,26 +7469,26 @@ __metadata: languageName: node linkType: hard -"@jest/transform@npm:^29.6.2": - version: 29.6.2 - resolution: "@jest/transform@npm:29.6.2" +"@jest/transform@npm:^29.7.0": + version: 29.7.0 + resolution: "@jest/transform@npm:29.7.0" dependencies: "@babel/core": "npm:^7.11.6" - "@jest/types": "npm:^29.6.1" + "@jest/types": "npm:^29.6.3" "@jridgewell/trace-mapping": "npm:^0.3.18" babel-plugin-istanbul: "npm:^6.1.1" chalk: "npm:^4.0.0" convert-source-map: "npm:^2.0.0" fast-json-stable-stringify: "npm:^2.1.0" graceful-fs: "npm:^4.2.9" - jest-haste-map: "npm:^29.6.2" - jest-regex-util: "npm:^29.4.3" - jest-util: "npm:^29.6.2" + jest-haste-map: "npm:^29.7.0" + jest-regex-util: "npm:^29.6.3" + jest-util: "npm:^29.7.0" micromatch: "npm:^4.0.4" pirates: "npm:^4.0.4" slash: "npm:^3.0.0" write-file-atomic: "npm:^4.0.2" - checksum: 10c0/dce3a28ca01ce78923bb0faf7ff4fa6e64f1ec77a729a89f874b05a98c8f4408df52fc41a9e39755e9490660163ecebb58d2364530391a443fc2e4bd0e4195d6 + checksum: 10c0/7f4a7f73dcf45dfdf280c7aa283cbac7b6e5a904813c3a93ead7e55873761fc20d5c4f0191d2019004fac6f55f061c82eb3249c2901164ad80e362e7a7ede5a6 languageName: node linkType: hard @@ -7277,6 +7618,13 @@ __metadata: languageName: node linkType: hard +"@jridgewell/sourcemap-codec@npm:^1.5.0": + version: 1.5.0 + resolution: "@jridgewell/sourcemap-codec@npm:1.5.0" + checksum: 10c0/2eb864f276eb1096c3c11da3e9bb518f6d9fc0023c78344cdc037abadc725172c70314bdb360f2d4b7bffec7f5d657ce006816bc5d4ecb35e61b66132db00c18 + languageName: node + linkType: hard + "@jridgewell/trace-mapping@npm:0.3.9": version: 0.3.9 resolution: "@jridgewell/trace-mapping@npm:0.3.9" @@ -7383,899 +7731,462 @@ __metadata: languageName: node linkType: hard -"@ljharb/through@npm:^2.3.13": - version: 2.3.13 - resolution: "@ljharb/through@npm:2.3.13" +"@listr2/prompt-adapter-inquirer@npm:2.0.15": + version: 2.0.15 + resolution: "@listr2/prompt-adapter-inquirer@npm:2.0.15" dependencies: - call-bind: "npm:^1.0.7" - checksum: 10c0/fb60b2fb2c674a674d8ebdb8972ccf52f8a62a9c1f5a2ac42557bc0273231c65d642aa2d7627cbb300766a25ae4642acd0f95fba2f8a1ff891086f0cb15807c3 + "@inquirer/type": "npm:^1.5.1" + peerDependencies: + "@inquirer/prompts": ">= 3 < 6" + checksum: 10c0/c7eb85315be9ea11973b095331a7cd55b2ec4b2655da071e119e3233f0a2412df1e7319641da30f07cfadee21862d721177618147c3a50830dd6ae0778d4c5f4 languageName: node linkType: hard -"@lmdb/lmdb-darwin-arm64@npm:3.0.8": - version: 3.0.8 - resolution: "@lmdb/lmdb-darwin-arm64@npm:3.0.8" +"@lmdb/lmdb-darwin-arm64@npm:3.0.13": + version: 3.0.13 + resolution: "@lmdb/lmdb-darwin-arm64@npm:3.0.13" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"@lmdb/lmdb-darwin-x64@npm:3.0.8": - version: 3.0.8 - resolution: "@lmdb/lmdb-darwin-x64@npm:3.0.8" +"@lmdb/lmdb-darwin-x64@npm:3.0.13": + version: 3.0.13 + resolution: "@lmdb/lmdb-darwin-x64@npm:3.0.13" conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"@lmdb/lmdb-linux-arm64@npm:3.0.8": - version: 3.0.8 - resolution: "@lmdb/lmdb-linux-arm64@npm:3.0.8" +"@lmdb/lmdb-linux-arm64@npm:3.0.13": + version: 3.0.13 + resolution: "@lmdb/lmdb-linux-arm64@npm:3.0.13" conditions: os=linux & cpu=arm64 languageName: node linkType: hard -"@lmdb/lmdb-linux-arm@npm:3.0.8": - version: 3.0.8 - resolution: "@lmdb/lmdb-linux-arm@npm:3.0.8" +"@lmdb/lmdb-linux-arm@npm:3.0.13": + version: 3.0.13 + resolution: "@lmdb/lmdb-linux-arm@npm:3.0.13" conditions: os=linux & cpu=arm languageName: node linkType: hard -"@lmdb/lmdb-linux-x64@npm:3.0.8": - version: 3.0.8 - resolution: "@lmdb/lmdb-linux-x64@npm:3.0.8" +"@lmdb/lmdb-linux-x64@npm:3.0.13": + version: 3.0.13 + resolution: "@lmdb/lmdb-linux-x64@npm:3.0.13" conditions: os=linux & cpu=x64 languageName: node linkType: hard -"@lmdb/lmdb-win32-x64@npm:3.0.8": - version: 3.0.8 - resolution: "@lmdb/lmdb-win32-x64@npm:3.0.8" +"@lmdb/lmdb-win32-x64@npm:3.0.13": + version: 3.0.13 + resolution: "@lmdb/lmdb-win32-x64@npm:3.0.13" conditions: os=win32 & cpu=x64 languageName: node linkType: hard -"@material/animation@npm:15.0.0-canary.7f224ddd4.0": - version: 15.0.0-canary.7f224ddd4.0 - resolution: "@material/animation@npm:15.0.0-canary.7f224ddd4.0" - dependencies: - tslib: "npm:^2.1.0" - checksum: 10c0/ffe3cff8c2790ee1c9d0e6f358c8673a718848e1dac966b75fc905175b0ae4559685842abf3bcb4ebf9c09848ddcb5b43f4b872b591e360fb50f1177aaa8673e - languageName: node - linkType: hard - -"@material/auto-init@npm:15.0.0-canary.7f224ddd4.0": - version: 15.0.0-canary.7f224ddd4.0 - resolution: "@material/auto-init@npm:15.0.0-canary.7f224ddd4.0" - dependencies: - "@material/base": "npm:15.0.0-canary.7f224ddd4.0" - tslib: "npm:^2.1.0" - checksum: 10c0/fa6c30695faa4c04f89018f06603aae843fe60a19d663136094df4cc34afb8729b623589b090a5710f7c0c47fbeb180798cb1f16328dc2a513971b8d96d4b309 - languageName: node - linkType: hard - -"@material/banner@npm:15.0.0-canary.7f224ddd4.0": - version: 15.0.0-canary.7f224ddd4.0 - resolution: "@material/banner@npm:15.0.0-canary.7f224ddd4.0" - dependencies: - "@material/base": "npm:15.0.0-canary.7f224ddd4.0" - "@material/button": "npm:15.0.0-canary.7f224ddd4.0" - "@material/dom": "npm:15.0.0-canary.7f224ddd4.0" - "@material/elevation": "npm:15.0.0-canary.7f224ddd4.0" - "@material/feature-targeting": "npm:15.0.0-canary.7f224ddd4.0" - "@material/ripple": "npm:15.0.0-canary.7f224ddd4.0" - "@material/rtl": "npm:15.0.0-canary.7f224ddd4.0" - "@material/shape": "npm:15.0.0-canary.7f224ddd4.0" - "@material/theme": "npm:15.0.0-canary.7f224ddd4.0" - "@material/tokens": "npm:15.0.0-canary.7f224ddd4.0" - "@material/typography": "npm:15.0.0-canary.7f224ddd4.0" - tslib: "npm:^2.1.0" - checksum: 10c0/b7275e4004643b4f8c0f0d214ef19a12c1427ea1a41421007936b00146076c371caab0305451e431847b49aed0079199325cc0464a2c2fa3c69cb63a98c16f69 - languageName: node - linkType: hard - -"@material/base@npm:15.0.0-canary.7f224ddd4.0": - version: 15.0.0-canary.7f224ddd4.0 - resolution: "@material/base@npm:15.0.0-canary.7f224ddd4.0" - dependencies: - tslib: "npm:^2.1.0" - checksum: 10c0/1b3bb7dad0f13717b6df55fd82e152175e7eece230232ab4b286a0c4b78adfe7c3e034c773f74a6f42c9a72389cd55b47d4ab4dc980a063d3f22a8977bfe4230 - languageName: node - linkType: hard - -"@material/button@npm:15.0.0-canary.7f224ddd4.0": - version: 15.0.0-canary.7f224ddd4.0 - resolution: "@material/button@npm:15.0.0-canary.7f224ddd4.0" - dependencies: - "@material/density": "npm:15.0.0-canary.7f224ddd4.0" - "@material/dom": "npm:15.0.0-canary.7f224ddd4.0" - "@material/elevation": "npm:15.0.0-canary.7f224ddd4.0" - "@material/feature-targeting": "npm:15.0.0-canary.7f224ddd4.0" - "@material/focus-ring": "npm:15.0.0-canary.7f224ddd4.0" - "@material/ripple": "npm:15.0.0-canary.7f224ddd4.0" - "@material/rtl": "npm:15.0.0-canary.7f224ddd4.0" - "@material/shape": "npm:15.0.0-canary.7f224ddd4.0" - "@material/theme": "npm:15.0.0-canary.7f224ddd4.0" - "@material/tokens": "npm:15.0.0-canary.7f224ddd4.0" - "@material/touch-target": "npm:15.0.0-canary.7f224ddd4.0" - "@material/typography": "npm:15.0.0-canary.7f224ddd4.0" - tslib: "npm:^2.1.0" - checksum: 10c0/79fab41c23aa97ae91ae0e83e95cd91eaf2011994a7189942893175c85ec131e7cb3b5c677c1373075fb4991941e84ad9cd3053bcd17c376528305a3ee8bf83a - languageName: node - linkType: hard - -"@material/card@npm:15.0.0-canary.7f224ddd4.0": - version: 15.0.0-canary.7f224ddd4.0 - resolution: "@material/card@npm:15.0.0-canary.7f224ddd4.0" - dependencies: - "@material/dom": "npm:15.0.0-canary.7f224ddd4.0" - "@material/elevation": "npm:15.0.0-canary.7f224ddd4.0" - "@material/feature-targeting": "npm:15.0.0-canary.7f224ddd4.0" - "@material/ripple": "npm:15.0.0-canary.7f224ddd4.0" - "@material/rtl": "npm:15.0.0-canary.7f224ddd4.0" - "@material/shape": "npm:15.0.0-canary.7f224ddd4.0" - "@material/theme": "npm:15.0.0-canary.7f224ddd4.0" - "@material/tokens": "npm:15.0.0-canary.7f224ddd4.0" - tslib: "npm:^2.1.0" - checksum: 10c0/593150e75a1ada3cd0b2518cccaec1920e2b3ffdcaa66631cbe03459c6646094e26ed5423e9c020cee1db2c8d438c85fdbe99db8ebd16a7f84d8d20b9e5e592b - languageName: node - linkType: hard - -"@material/checkbox@npm:15.0.0-canary.7f224ddd4.0": - version: 15.0.0-canary.7f224ddd4.0 - resolution: "@material/checkbox@npm:15.0.0-canary.7f224ddd4.0" - dependencies: - "@material/animation": "npm:15.0.0-canary.7f224ddd4.0" - "@material/base": "npm:15.0.0-canary.7f224ddd4.0" - "@material/density": "npm:15.0.0-canary.7f224ddd4.0" - "@material/dom": "npm:15.0.0-canary.7f224ddd4.0" - "@material/feature-targeting": "npm:15.0.0-canary.7f224ddd4.0" - "@material/focus-ring": "npm:15.0.0-canary.7f224ddd4.0" - "@material/ripple": "npm:15.0.0-canary.7f224ddd4.0" - "@material/rtl": "npm:15.0.0-canary.7f224ddd4.0" - "@material/theme": "npm:15.0.0-canary.7f224ddd4.0" - "@material/touch-target": "npm:15.0.0-canary.7f224ddd4.0" - tslib: "npm:^2.1.0" - checksum: 10c0/ae60a8ca11e61ceba6f6467beb525adf315e33272639bbe486779af04f24f50989b0401ac3e831ed516c0aadc09c67341a6cdfcb9ef0d3ce38c15bffbc78fe28 - languageName: node - linkType: hard - -"@material/chips@npm:15.0.0-canary.7f224ddd4.0": - version: 15.0.0-canary.7f224ddd4.0 - resolution: "@material/chips@npm:15.0.0-canary.7f224ddd4.0" - dependencies: - "@material/animation": "npm:15.0.0-canary.7f224ddd4.0" - "@material/base": "npm:15.0.0-canary.7f224ddd4.0" - "@material/checkbox": "npm:15.0.0-canary.7f224ddd4.0" - "@material/density": "npm:15.0.0-canary.7f224ddd4.0" - "@material/dom": "npm:15.0.0-canary.7f224ddd4.0" - "@material/elevation": "npm:15.0.0-canary.7f224ddd4.0" - "@material/feature-targeting": "npm:15.0.0-canary.7f224ddd4.0" - "@material/focus-ring": "npm:15.0.0-canary.7f224ddd4.0" - "@material/ripple": "npm:15.0.0-canary.7f224ddd4.0" - "@material/rtl": "npm:15.0.0-canary.7f224ddd4.0" - "@material/shape": "npm:15.0.0-canary.7f224ddd4.0" - "@material/theme": "npm:15.0.0-canary.7f224ddd4.0" - "@material/tokens": "npm:15.0.0-canary.7f224ddd4.0" - "@material/touch-target": "npm:15.0.0-canary.7f224ddd4.0" - "@material/typography": "npm:15.0.0-canary.7f224ddd4.0" - safevalues: "npm:^0.3.4" - tslib: "npm:^2.1.0" - checksum: 10c0/1f1a6a05c08dd54c5c33e3293aac2c37f1973701f4fd563a532a4bb72ccf0e7262a1e4ac928d04d1838679944378cd95cf82dc8297421aad064790686bea3cac - languageName: node - linkType: hard - -"@material/circular-progress@npm:15.0.0-canary.7f224ddd4.0": - version: 15.0.0-canary.7f224ddd4.0 - resolution: "@material/circular-progress@npm:15.0.0-canary.7f224ddd4.0" - dependencies: - "@material/animation": "npm:15.0.0-canary.7f224ddd4.0" - "@material/base": "npm:15.0.0-canary.7f224ddd4.0" - "@material/dom": "npm:15.0.0-canary.7f224ddd4.0" - "@material/feature-targeting": "npm:15.0.0-canary.7f224ddd4.0" - "@material/progress-indicator": "npm:15.0.0-canary.7f224ddd4.0" - "@material/rtl": "npm:15.0.0-canary.7f224ddd4.0" - "@material/theme": "npm:15.0.0-canary.7f224ddd4.0" - tslib: "npm:^2.1.0" - checksum: 10c0/15065364f984e27ac59496432105bae3d7d266bdd17470cdb36957636bdcb9fe0dec0966c2a790ff6bd36fd77ae1b73aa40c877fffa515d444dded332a68f0c6 - languageName: node - linkType: hard - -"@material/data-table@npm:15.0.0-canary.7f224ddd4.0": - version: 15.0.0-canary.7f224ddd4.0 - resolution: "@material/data-table@npm:15.0.0-canary.7f224ddd4.0" - dependencies: - "@material/animation": "npm:15.0.0-canary.7f224ddd4.0" - "@material/base": "npm:15.0.0-canary.7f224ddd4.0" - "@material/checkbox": "npm:15.0.0-canary.7f224ddd4.0" - "@material/density": "npm:15.0.0-canary.7f224ddd4.0" - "@material/dom": "npm:15.0.0-canary.7f224ddd4.0" - "@material/elevation": "npm:15.0.0-canary.7f224ddd4.0" - "@material/feature-targeting": "npm:15.0.0-canary.7f224ddd4.0" - "@material/icon-button": "npm:15.0.0-canary.7f224ddd4.0" - "@material/linear-progress": "npm:15.0.0-canary.7f224ddd4.0" - "@material/list": "npm:15.0.0-canary.7f224ddd4.0" - "@material/menu": "npm:15.0.0-canary.7f224ddd4.0" - "@material/rtl": "npm:15.0.0-canary.7f224ddd4.0" - "@material/select": "npm:15.0.0-canary.7f224ddd4.0" - "@material/shape": "npm:15.0.0-canary.7f224ddd4.0" - "@material/theme": "npm:15.0.0-canary.7f224ddd4.0" - "@material/tokens": "npm:15.0.0-canary.7f224ddd4.0" - "@material/touch-target": "npm:15.0.0-canary.7f224ddd4.0" - "@material/typography": "npm:15.0.0-canary.7f224ddd4.0" - tslib: "npm:^2.1.0" - checksum: 10c0/95b444eae168faa39f1f2bdfb2b2c8b85b4aa45663cf4d5a8c7c0b48c75efd242bb8c1bca566f1db779af8aa8f9d1431050e698bd2563b0f328a4a2aa2f23a87 - languageName: node - linkType: hard - -"@material/density@npm:15.0.0-canary.7f224ddd4.0": - version: 15.0.0-canary.7f224ddd4.0 - resolution: "@material/density@npm:15.0.0-canary.7f224ddd4.0" - dependencies: - tslib: "npm:^2.1.0" - checksum: 10c0/5a3d8a53b6473023f014c5b755719f1c198f0842cf35df8abffa4dbedbe6b01fa84bb1eb53dc2bfc7172555815e90d2bc1bc729f2127078548649d43d8960985 - languageName: node - linkType: hard - -"@material/dialog@npm:15.0.0-canary.7f224ddd4.0": - version: 15.0.0-canary.7f224ddd4.0 - resolution: "@material/dialog@npm:15.0.0-canary.7f224ddd4.0" - dependencies: - "@material/animation": "npm:15.0.0-canary.7f224ddd4.0" - "@material/base": "npm:15.0.0-canary.7f224ddd4.0" - "@material/button": "npm:15.0.0-canary.7f224ddd4.0" - "@material/dom": "npm:15.0.0-canary.7f224ddd4.0" - "@material/elevation": "npm:15.0.0-canary.7f224ddd4.0" - "@material/feature-targeting": "npm:15.0.0-canary.7f224ddd4.0" - "@material/icon-button": "npm:15.0.0-canary.7f224ddd4.0" - "@material/ripple": "npm:15.0.0-canary.7f224ddd4.0" - "@material/rtl": "npm:15.0.0-canary.7f224ddd4.0" - "@material/shape": "npm:15.0.0-canary.7f224ddd4.0" - "@material/theme": "npm:15.0.0-canary.7f224ddd4.0" - "@material/tokens": "npm:15.0.0-canary.7f224ddd4.0" - "@material/touch-target": "npm:15.0.0-canary.7f224ddd4.0" - "@material/typography": "npm:15.0.0-canary.7f224ddd4.0" - tslib: "npm:^2.1.0" - checksum: 10c0/44d50da1830115f4f71e611841265aa386c15e58785479f124ca52be12b224ae05a6bab6c793a79e588b802bcadceec25ca1216b8cb499cca141d9d32ea5ab21 - languageName: node - linkType: hard - -"@material/dom@npm:15.0.0-canary.7f224ddd4.0": - version: 15.0.0-canary.7f224ddd4.0 - resolution: "@material/dom@npm:15.0.0-canary.7f224ddd4.0" - dependencies: - "@material/feature-targeting": "npm:15.0.0-canary.7f224ddd4.0" - "@material/rtl": "npm:15.0.0-canary.7f224ddd4.0" - tslib: "npm:^2.1.0" - checksum: 10c0/d0bfb6f409f59b8cbfce155b26941dcd8fac56d00b7b159cf4928643aad39ac772e4b7c549b8c789704af7071d66c23c02fa0137551b0fd87e7776d0fb570cb7 - languageName: node - linkType: hard - -"@material/drawer@npm:15.0.0-canary.7f224ddd4.0": - version: 15.0.0-canary.7f224ddd4.0 - resolution: "@material/drawer@npm:15.0.0-canary.7f224ddd4.0" - dependencies: - "@material/animation": "npm:15.0.0-canary.7f224ddd4.0" - "@material/base": "npm:15.0.0-canary.7f224ddd4.0" - "@material/dom": "npm:15.0.0-canary.7f224ddd4.0" - "@material/elevation": "npm:15.0.0-canary.7f224ddd4.0" - "@material/feature-targeting": "npm:15.0.0-canary.7f224ddd4.0" - "@material/list": "npm:15.0.0-canary.7f224ddd4.0" - "@material/ripple": "npm:15.0.0-canary.7f224ddd4.0" - "@material/rtl": "npm:15.0.0-canary.7f224ddd4.0" - "@material/shape": "npm:15.0.0-canary.7f224ddd4.0" - "@material/theme": "npm:15.0.0-canary.7f224ddd4.0" - "@material/typography": "npm:15.0.0-canary.7f224ddd4.0" - tslib: "npm:^2.1.0" - checksum: 10c0/4fbea206164b9b8f891776ab222fc01349b16b23e11e08c6619966cfc62e2ac1cbda0c721eb2f0028678c252918764b9c1cf5d05d13c6c2bc2eb22ae10505fc5 - languageName: node - linkType: hard - -"@material/elevation@npm:15.0.0-canary.7f224ddd4.0": - version: 15.0.0-canary.7f224ddd4.0 - resolution: "@material/elevation@npm:15.0.0-canary.7f224ddd4.0" - dependencies: - "@material/animation": "npm:15.0.0-canary.7f224ddd4.0" - "@material/base": "npm:15.0.0-canary.7f224ddd4.0" - "@material/feature-targeting": "npm:15.0.0-canary.7f224ddd4.0" - "@material/rtl": "npm:15.0.0-canary.7f224ddd4.0" - "@material/theme": "npm:15.0.0-canary.7f224ddd4.0" - tslib: "npm:^2.1.0" - checksum: 10c0/f155a56ee4fa6ada8a8e5cf53fb598971a9a71d984a28aa8a879799301d9d35ac4b7e6cb816e682173ce43a9e442fc4c91d4881834488a5874abb8ab9ce3f79a - languageName: node - linkType: hard - -"@material/fab@npm:15.0.0-canary.7f224ddd4.0": - version: 15.0.0-canary.7f224ddd4.0 - resolution: "@material/fab@npm:15.0.0-canary.7f224ddd4.0" - dependencies: - "@material/animation": "npm:15.0.0-canary.7f224ddd4.0" - "@material/dom": "npm:15.0.0-canary.7f224ddd4.0" - "@material/elevation": "npm:15.0.0-canary.7f224ddd4.0" - "@material/feature-targeting": "npm:15.0.0-canary.7f224ddd4.0" - "@material/focus-ring": "npm:15.0.0-canary.7f224ddd4.0" - "@material/ripple": "npm:15.0.0-canary.7f224ddd4.0" - "@material/rtl": "npm:15.0.0-canary.7f224ddd4.0" - "@material/shape": "npm:15.0.0-canary.7f224ddd4.0" - "@material/theme": "npm:15.0.0-canary.7f224ddd4.0" - "@material/tokens": "npm:15.0.0-canary.7f224ddd4.0" - "@material/touch-target": "npm:15.0.0-canary.7f224ddd4.0" - "@material/typography": "npm:15.0.0-canary.7f224ddd4.0" - tslib: "npm:^2.1.0" - checksum: 10c0/c1a26d30b14588312e8de24cb66deae023f6ec33215e5726ef9295a791155a58c5adf772bfcbaf53a2d12c83c1f5399c253f4346d1c49f50ced1ba7a7f4e2bc8 - languageName: node - linkType: hard - -"@material/feature-targeting@npm:15.0.0-canary.7f224ddd4.0": - version: 15.0.0-canary.7f224ddd4.0 - resolution: "@material/feature-targeting@npm:15.0.0-canary.7f224ddd4.0" - dependencies: - tslib: "npm:^2.1.0" - checksum: 10c0/f4c473ddb4904646afedfacc903f0753664621c037c3c9b6701acac37bb036f4385579c6a5e54352eb70e204c3af35a83613af2084ca5aed30cbe9e7b6f0acb2 - languageName: node - linkType: hard - -"@material/floating-label@npm:15.0.0-canary.7f224ddd4.0": - version: 15.0.0-canary.7f224ddd4.0 - resolution: "@material/floating-label@npm:15.0.0-canary.7f224ddd4.0" - dependencies: - "@material/animation": "npm:15.0.0-canary.7f224ddd4.0" - "@material/base": "npm:15.0.0-canary.7f224ddd4.0" - "@material/dom": "npm:15.0.0-canary.7f224ddd4.0" - "@material/feature-targeting": "npm:15.0.0-canary.7f224ddd4.0" - "@material/rtl": "npm:15.0.0-canary.7f224ddd4.0" - "@material/theme": "npm:15.0.0-canary.7f224ddd4.0" - "@material/typography": "npm:15.0.0-canary.7f224ddd4.0" - tslib: "npm:^2.1.0" - checksum: 10c0/45fdf5f567eda97a88cd7b956e472136d8eceaa9532312ddc5f09dc2676faa4e88f4820a1f75a644acaaa0cd5e64a5132ecfd070d087dfab14d974e13bb1e628 - languageName: node - linkType: hard - -"@material/focus-ring@npm:15.0.0-canary.7f224ddd4.0": - version: 15.0.0-canary.7f224ddd4.0 - resolution: "@material/focus-ring@npm:15.0.0-canary.7f224ddd4.0" - dependencies: - "@material/dom": "npm:15.0.0-canary.7f224ddd4.0" - "@material/feature-targeting": "npm:15.0.0-canary.7f224ddd4.0" - "@material/rtl": "npm:15.0.0-canary.7f224ddd4.0" - checksum: 10c0/22a3f6cc4c3ca0284bbd3ab0e3f8761c00179452015ba3ca20a35feb2058230e21d08bda07ee3a875db847a59374830f1a6596825de0059ed29feee5bedb065c - languageName: node - linkType: hard - -"@material/form-field@npm:15.0.0-canary.7f224ddd4.0": - version: 15.0.0-canary.7f224ddd4.0 - resolution: "@material/form-field@npm:15.0.0-canary.7f224ddd4.0" - dependencies: - "@material/base": "npm:15.0.0-canary.7f224ddd4.0" - "@material/feature-targeting": "npm:15.0.0-canary.7f224ddd4.0" - "@material/ripple": "npm:15.0.0-canary.7f224ddd4.0" - "@material/rtl": "npm:15.0.0-canary.7f224ddd4.0" - "@material/theme": "npm:15.0.0-canary.7f224ddd4.0" - "@material/typography": "npm:15.0.0-canary.7f224ddd4.0" - tslib: "npm:^2.1.0" - checksum: 10c0/763dd5d0589a1366f04d0bf872f4801f7a87c458cdc8f1663a4d57bee3394c4b1b4b0a3654fcb30bb5040f754b952bcb56806c0219960e39e90b04a99598cf44 - languageName: node - linkType: hard - -"@material/icon-button@npm:15.0.0-canary.7f224ddd4.0": - version: 15.0.0-canary.7f224ddd4.0 - resolution: "@material/icon-button@npm:15.0.0-canary.7f224ddd4.0" +"@mdx-js/mdx@npm:^1.6.22": + version: 1.6.22 + resolution: "@mdx-js/mdx@npm:1.6.22" dependencies: - "@material/base": "npm:15.0.0-canary.7f224ddd4.0" - "@material/density": "npm:15.0.0-canary.7f224ddd4.0" - "@material/dom": "npm:15.0.0-canary.7f224ddd4.0" - "@material/elevation": "npm:15.0.0-canary.7f224ddd4.0" - "@material/feature-targeting": "npm:15.0.0-canary.7f224ddd4.0" - "@material/focus-ring": "npm:15.0.0-canary.7f224ddd4.0" - "@material/ripple": "npm:15.0.0-canary.7f224ddd4.0" - "@material/rtl": "npm:15.0.0-canary.7f224ddd4.0" - "@material/theme": "npm:15.0.0-canary.7f224ddd4.0" - "@material/touch-target": "npm:15.0.0-canary.7f224ddd4.0" - tslib: "npm:^2.1.0" - checksum: 10c0/a5fac124d9f6f15e1f80c9434d294a42067f098b51b417a0df3a864c1000bb4a5830aaf92160d8137e4e69098f0623a7551b81ea185730255ef5ffabdc249d4c + "@babel/core": "npm:7.12.9" + "@babel/plugin-syntax-jsx": "npm:7.12.1" + "@babel/plugin-syntax-object-rest-spread": "npm:7.8.3" + "@mdx-js/util": "npm:1.6.22" + babel-plugin-apply-mdx-type-prop: "npm:1.6.22" + babel-plugin-extract-import-names: "npm:1.6.22" + camelcase-css: "npm:2.0.1" + detab: "npm:2.0.4" + hast-util-raw: "npm:6.0.1" + lodash.uniq: "npm:4.5.0" + mdast-util-to-hast: "npm:10.0.1" + remark-footnotes: "npm:2.0.0" + remark-mdx: "npm:1.6.22" + remark-parse: "npm:8.0.3" + remark-squeeze-paragraphs: "npm:4.0.0" + style-to-object: "npm:0.3.0" + unified: "npm:9.2.0" + unist-builder: "npm:2.0.3" + unist-util-visit: "npm:2.0.3" + checksum: 10c0/7f4c38911fc269159834240d3cc9279839145022a992bd61657530750c7ab5d0f674e8d6319b6e2e426d0e1adc6cc5ab1876e57548208783d8a3d1b8ef73ebca languageName: node linkType: hard -"@material/image-list@npm:15.0.0-canary.7f224ddd4.0": - version: 15.0.0-canary.7f224ddd4.0 - resolution: "@material/image-list@npm:15.0.0-canary.7f224ddd4.0" - dependencies: - "@material/feature-targeting": "npm:15.0.0-canary.7f224ddd4.0" - "@material/shape": "npm:15.0.0-canary.7f224ddd4.0" - "@material/theme": "npm:15.0.0-canary.7f224ddd4.0" - "@material/typography": "npm:15.0.0-canary.7f224ddd4.0" - tslib: "npm:^2.1.0" - checksum: 10c0/653ee666cf0083a76aa0280b8da81aa1d965565abe09ad986c9a3a745671812d8cb41ae0652071066a4d74c155db136e31bf4ced2acddeb4e52b2322662b3105 +"@mdx-js/react@npm:^1.6.22": + version: 1.6.22 + resolution: "@mdx-js/react@npm:1.6.22" + peerDependencies: + react: ^16.13.1 || ^17.0.0 + checksum: 10c0/ed896671ffab04c1f11cdba45bfb2786acff58cd0b749b0a13d9b7a7022ac75cc036bec067ca946e6540e2934727e0ba8bf174e4ae10c916f30cda6aecac8992 languageName: node linkType: hard -"@material/layout-grid@npm:15.0.0-canary.7f224ddd4.0": - version: 15.0.0-canary.7f224ddd4.0 - resolution: "@material/layout-grid@npm:15.0.0-canary.7f224ddd4.0" - dependencies: - tslib: "npm:^2.1.0" - checksum: 10c0/13b0ebb043193bc98862af2bde79e3bc534a1b38bc58d3d223b0e899ad468b6c6be9479ee345361ebd5742be3b2c378e482102c068490b9c0efc70efabeefbfc +"@mdx-js/util@npm:1.6.22": + version: 1.6.22 + resolution: "@mdx-js/util@npm:1.6.22" + checksum: 10c0/2ee8da6afea0f42297ea31f52b1d50d228744d2895cce7cc9571b7d5ce97c7c96037c80b6dbcded9caa8099c9a994eda62980099eabe1c000aaa792816c66f10 languageName: node linkType: hard -"@material/line-ripple@npm:15.0.0-canary.7f224ddd4.0": - version: 15.0.0-canary.7f224ddd4.0 - resolution: "@material/line-ripple@npm:15.0.0-canary.7f224ddd4.0" +"@module-federation/bridge-react-webpack-plugin@npm:0.6.16": + version: 0.6.16 + resolution: "@module-federation/bridge-react-webpack-plugin@npm:0.6.16" dependencies: - "@material/animation": "npm:15.0.0-canary.7f224ddd4.0" - "@material/base": "npm:15.0.0-canary.7f224ddd4.0" - "@material/feature-targeting": "npm:15.0.0-canary.7f224ddd4.0" - "@material/theme": "npm:15.0.0-canary.7f224ddd4.0" - tslib: "npm:^2.1.0" - checksum: 10c0/fa7e37c44d8e98855fdc38f3705ccaaefc157a876b042276f9cff1c1a8eacb99922865ad5182505f15a0eaea71b777089bb3bef70187fa56be3e0a0daa9312c8 + "@module-federation/sdk": "npm:0.6.16" + "@types/semver": "npm:7.5.8" + semver: "npm:7.6.3" + checksum: 10c0/9725cac48e4de65a5ef1e6541dd837a0618d89957e2f2ae8a12050f7a1f129f1f4858d43b20d86a96c7f405172ffd6be5b62ab5c15ca944c8d0038077c9315cd languageName: node linkType: hard -"@material/linear-progress@npm:15.0.0-canary.7f224ddd4.0": - version: 15.0.0-canary.7f224ddd4.0 - resolution: "@material/linear-progress@npm:15.0.0-canary.7f224ddd4.0" +"@module-federation/bridge-react-webpack-plugin@npm:0.6.9": + version: 0.6.9 + resolution: "@module-federation/bridge-react-webpack-plugin@npm:0.6.9" dependencies: - "@material/animation": "npm:15.0.0-canary.7f224ddd4.0" - "@material/base": "npm:15.0.0-canary.7f224ddd4.0" - "@material/dom": "npm:15.0.0-canary.7f224ddd4.0" - "@material/feature-targeting": "npm:15.0.0-canary.7f224ddd4.0" - "@material/progress-indicator": "npm:15.0.0-canary.7f224ddd4.0" - "@material/rtl": "npm:15.0.0-canary.7f224ddd4.0" - "@material/theme": "npm:15.0.0-canary.7f224ddd4.0" - tslib: "npm:^2.1.0" - checksum: 10c0/ff310273eb9c457a9d7cbd8b1df45e3cbf44a1c8f160940a9cbc109b685cff36b4a00e5854108b8ebed658b168e88c6d3e21135241332b611eccb5e02f113c32 + "@module-federation/sdk": "npm:0.6.9" + "@types/semver": "npm:7.5.8" + semver: "npm:7.6.3" + checksum: 10c0/34b1d9814e340cec2a4d16a2566537495c38ac19a0a024ef3030df5527a5212d50dd4ba9e4e874c87449d82dae024f624adfa17e50bb8ec4ad88133261a91f6b languageName: node linkType: hard -"@material/list@npm:15.0.0-canary.7f224ddd4.0": - version: 15.0.0-canary.7f224ddd4.0 - resolution: "@material/list@npm:15.0.0-canary.7f224ddd4.0" +"@module-federation/data-prefetch@npm:0.6.16": + version: 0.6.16 + resolution: "@module-federation/data-prefetch@npm:0.6.16" dependencies: - "@material/base": "npm:15.0.0-canary.7f224ddd4.0" - "@material/density": "npm:15.0.0-canary.7f224ddd4.0" - "@material/dom": "npm:15.0.0-canary.7f224ddd4.0" - "@material/feature-targeting": "npm:15.0.0-canary.7f224ddd4.0" - "@material/ripple": "npm:15.0.0-canary.7f224ddd4.0" - "@material/rtl": "npm:15.0.0-canary.7f224ddd4.0" - "@material/shape": "npm:15.0.0-canary.7f224ddd4.0" - "@material/theme": "npm:15.0.0-canary.7f224ddd4.0" - "@material/tokens": "npm:15.0.0-canary.7f224ddd4.0" - "@material/typography": "npm:15.0.0-canary.7f224ddd4.0" - tslib: "npm:^2.1.0" - checksum: 10c0/d2d8f8d583e155081c687dd5e5a1d3f18c256c3686d0b7325fbf982e983015db32d29a79243cc4bfa7737068b0fee38ac2fdc8b32116e0a7163cb4816cfff735 + "@module-federation/runtime": "npm:0.6.16" + "@module-federation/sdk": "npm:0.6.16" + fs-extra: "npm:9.1.0" + peerDependencies: + react: ">=16.9.0" + react-dom: ">=16.9.0" + checksum: 10c0/ddfe10805ce7e50772884663b38cfc3bad22c0560c8d8446375fe42212ae5fc954bed7219444e69adaa2b793cc660dd4a8e1e87490e1e3523a06568ca4f4ae85 languageName: node linkType: hard -"@material/menu-surface@npm:15.0.0-canary.7f224ddd4.0": - version: 15.0.0-canary.7f224ddd4.0 - resolution: "@material/menu-surface@npm:15.0.0-canary.7f224ddd4.0" +"@module-federation/data-prefetch@npm:0.6.9": + version: 0.6.9 + resolution: "@module-federation/data-prefetch@npm:0.6.9" dependencies: - "@material/animation": "npm:15.0.0-canary.7f224ddd4.0" - "@material/base": "npm:15.0.0-canary.7f224ddd4.0" - "@material/elevation": "npm:15.0.0-canary.7f224ddd4.0" - "@material/feature-targeting": "npm:15.0.0-canary.7f224ddd4.0" - "@material/rtl": "npm:15.0.0-canary.7f224ddd4.0" - "@material/shape": "npm:15.0.0-canary.7f224ddd4.0" - "@material/theme": "npm:15.0.0-canary.7f224ddd4.0" - tslib: "npm:^2.1.0" - checksum: 10c0/b6f81f46a0f2ccbe892b56e7b6f139b44423e5fd4f3367c1871de82a8fb48652ee88c72ee412717c590b2a4f95e3fc33abce3b343ccd67acb30ef1fa39dd28ca + "@module-federation/runtime": "npm:0.6.9" + "@module-federation/sdk": "npm:0.6.9" + fs-extra: "npm:9.1.0" + peerDependencies: + react: ">=16.9.0" + react-dom: ">=16.9.0" + checksum: 10c0/94903e45a540125582752e9b496adb3feb783dcc0d4cca9825168c11984cbcf2b440409190ae8327bbfe60a2c2def8c71292d5efbe653c342371e33b8e46cba9 languageName: node linkType: hard -"@material/menu@npm:15.0.0-canary.7f224ddd4.0": - version: 15.0.0-canary.7f224ddd4.0 - resolution: "@material/menu@npm:15.0.0-canary.7f224ddd4.0" +"@module-federation/dts-plugin@npm:0.6.16": + version: 0.6.16 + resolution: "@module-federation/dts-plugin@npm:0.6.16" dependencies: - "@material/base": "npm:15.0.0-canary.7f224ddd4.0" - "@material/dom": "npm:15.0.0-canary.7f224ddd4.0" - "@material/elevation": "npm:15.0.0-canary.7f224ddd4.0" - "@material/feature-targeting": "npm:15.0.0-canary.7f224ddd4.0" - "@material/list": "npm:15.0.0-canary.7f224ddd4.0" - "@material/menu-surface": "npm:15.0.0-canary.7f224ddd4.0" - "@material/ripple": "npm:15.0.0-canary.7f224ddd4.0" - "@material/rtl": "npm:15.0.0-canary.7f224ddd4.0" - "@material/shape": "npm:15.0.0-canary.7f224ddd4.0" - "@material/theme": "npm:15.0.0-canary.7f224ddd4.0" - "@material/tokens": "npm:15.0.0-canary.7f224ddd4.0" - tslib: "npm:^2.1.0" - checksum: 10c0/d67bbb3fbabfcd658b209f118943435220c936377ec332bb0822aa60238d48f3bbfc62f20f303582012840dc08dcb6500ab8db6f0ee622355279a3c3039687c8 + "@module-federation/error-codes": "npm:0.6.14" + "@module-federation/managers": "npm:0.6.16" + "@module-federation/sdk": "npm:0.6.16" + "@module-federation/third-party-dts-extractor": "npm:0.6.16" + adm-zip: "npm:^0.5.10" + ansi-colors: "npm:^4.1.3" + axios: "npm:^1.7.4" + chalk: "npm:3.0.0" + fs-extra: "npm:9.1.0" + isomorphic-ws: "npm:5.0.0" + koa: "npm:2.15.3" + lodash.clonedeepwith: "npm:4.5.0" + log4js: "npm:6.9.1" + node-schedule: "npm:2.1.1" + rambda: "npm:^9.1.0" + ws: "npm:8.18.0" + peerDependencies: + typescript: ^4.9.0 || ^5.0.0 + vue-tsc: ">=1.0.24" + peerDependenciesMeta: + vue-tsc: + optional: true + checksum: 10c0/f92e7191d11065cdbcaf818b1efc644a72350938307a42595930c6d8036693b7e134f8c0f89ed4c3f8cbd9b9d9be6b8967023c99e2ba5e991cdf5b89c2a93a57 languageName: node linkType: hard -"@material/notched-outline@npm:15.0.0-canary.7f224ddd4.0": - version: 15.0.0-canary.7f224ddd4.0 - resolution: "@material/notched-outline@npm:15.0.0-canary.7f224ddd4.0" +"@module-federation/dts-plugin@npm:0.6.9": + version: 0.6.9 + resolution: "@module-federation/dts-plugin@npm:0.6.9" dependencies: - "@material/base": "npm:15.0.0-canary.7f224ddd4.0" - "@material/feature-targeting": "npm:15.0.0-canary.7f224ddd4.0" - "@material/floating-label": "npm:15.0.0-canary.7f224ddd4.0" - "@material/rtl": "npm:15.0.0-canary.7f224ddd4.0" - "@material/shape": "npm:15.0.0-canary.7f224ddd4.0" - "@material/theme": "npm:15.0.0-canary.7f224ddd4.0" - tslib: "npm:^2.1.0" - checksum: 10c0/02c195c93a484e589d35064a74a0f1e68f2770e0f4358b50f20d4a54ae6bcd6f8d741e96b2d3e9e8990118ad678f74cc1b8d60bdcb480458fb3d34e2dd029608 + "@module-federation/managers": "npm:0.6.9" + "@module-federation/sdk": "npm:0.6.9" + "@module-federation/third-party-dts-extractor": "npm:0.6.9" + adm-zip: "npm:^0.5.10" + ansi-colors: "npm:^4.1.3" + axios: "npm:^1.7.4" + chalk: "npm:3.0.0" + fs-extra: "npm:9.1.0" + isomorphic-ws: "npm:5.0.0" + koa: "npm:2.15.3" + lodash.clonedeepwith: "npm:4.5.0" + log4js: "npm:6.9.1" + node-schedule: "npm:2.1.1" + rambda: "npm:^9.1.0" + ws: "npm:8.17.1" + peerDependencies: + typescript: ^4.9.0 || ^5.0.0 + vue-tsc: ">=1.0.24" + peerDependenciesMeta: + vue-tsc: + optional: true + checksum: 10c0/ee562fadcb44cfe3411eb24fb654341211fe022d47f0744d81bd9f73e4eb95e4929f3163e538a6fbec188af5d038a79c64a73a00e5a6e7f648fe1cdfd3399bc0 languageName: node linkType: hard -"@material/progress-indicator@npm:15.0.0-canary.7f224ddd4.0": - version: 15.0.0-canary.7f224ddd4.0 - resolution: "@material/progress-indicator@npm:15.0.0-canary.7f224ddd4.0" +"@module-federation/enhanced@npm:0.6.9": + version: 0.6.9 + resolution: "@module-federation/enhanced@npm:0.6.9" dependencies: - tslib: "npm:^2.1.0" - checksum: 10c0/369937a52a6f074cfcdc20c7c51933f4eec3604f79b0048b5d85938905a560d05a14cc92728cbf1cc96a13f5919a715df238607c84cfc318f576159f64b1a6a9 + "@module-federation/bridge-react-webpack-plugin": "npm:0.6.9" + "@module-federation/data-prefetch": "npm:0.6.9" + "@module-federation/dts-plugin": "npm:0.6.9" + "@module-federation/managers": "npm:0.6.9" + "@module-federation/manifest": "npm:0.6.9" + "@module-federation/rspack": "npm:0.6.9" + "@module-federation/runtime-tools": "npm:0.6.9" + "@module-federation/sdk": "npm:0.6.9" + btoa: "npm:^1.2.1" + upath: "npm:2.0.1" + peerDependencies: + typescript: ^4.9.0 || ^5.0.0 + vue-tsc: ">=1.0.24" + webpack: ^5.0.0 + peerDependenciesMeta: + typescript: + optional: true + vue-tsc: + optional: true + webpack: + optional: true + checksum: 10c0/ba228483a3042e5ce94e5b64dc7a5fe30675af1e3780d1ab58424302e3064c539cc76f7f013d5ec9e649a14397c22b09a37ace3d59b567e4692a6d66b69f0896 languageName: node linkType: hard -"@material/radio@npm:15.0.0-canary.7f224ddd4.0": - version: 15.0.0-canary.7f224ddd4.0 - resolution: "@material/radio@npm:15.0.0-canary.7f224ddd4.0" +"@module-federation/enhanced@npm:^0.6.0": + version: 0.6.16 + resolution: "@module-federation/enhanced@npm:0.6.16" dependencies: - "@material/animation": "npm:15.0.0-canary.7f224ddd4.0" - "@material/base": "npm:15.0.0-canary.7f224ddd4.0" - "@material/density": "npm:15.0.0-canary.7f224ddd4.0" - "@material/dom": "npm:15.0.0-canary.7f224ddd4.0" - "@material/feature-targeting": "npm:15.0.0-canary.7f224ddd4.0" - "@material/focus-ring": "npm:15.0.0-canary.7f224ddd4.0" - "@material/ripple": "npm:15.0.0-canary.7f224ddd4.0" - "@material/theme": "npm:15.0.0-canary.7f224ddd4.0" - "@material/touch-target": "npm:15.0.0-canary.7f224ddd4.0" - tslib: "npm:^2.1.0" - checksum: 10c0/07b9d6354fa598af3099856d63a3f4684262828dd6559cceeb7a0b58943966ad458f1012b6059572af17446cbc13d7859e4baa02b4425efb32c83eec5bd19def + "@module-federation/bridge-react-webpack-plugin": "npm:0.6.16" + "@module-federation/data-prefetch": "npm:0.6.16" + "@module-federation/dts-plugin": "npm:0.6.16" + "@module-federation/managers": "npm:0.6.16" + "@module-federation/manifest": "npm:0.6.16" + "@module-federation/rspack": "npm:0.6.16" + "@module-federation/runtime-tools": "npm:0.6.16" + "@module-federation/sdk": "npm:0.6.16" + btoa: "npm:^1.2.1" + upath: "npm:2.0.1" + peerDependencies: + typescript: ^4.9.0 || ^5.0.0 + vue-tsc: ">=1.0.24" + webpack: ^5.0.0 + peerDependenciesMeta: + typescript: + optional: true + vue-tsc: + optional: true + webpack: + optional: true + checksum: 10c0/eddfb0ca51593b75d520a59e781c04ee2ebeb33cdc087ec19a80bd4ccdd8cd279041dc82db8983b910c6ca0ea4713a8a5c22aaa888dda83b989401491c0f3218 languageName: node linkType: hard -"@material/ripple@npm:15.0.0-canary.7f224ddd4.0": - version: 15.0.0-canary.7f224ddd4.0 - resolution: "@material/ripple@npm:15.0.0-canary.7f224ddd4.0" - dependencies: - "@material/animation": "npm:15.0.0-canary.7f224ddd4.0" - "@material/base": "npm:15.0.0-canary.7f224ddd4.0" - "@material/dom": "npm:15.0.0-canary.7f224ddd4.0" - "@material/feature-targeting": "npm:15.0.0-canary.7f224ddd4.0" - "@material/rtl": "npm:15.0.0-canary.7f224ddd4.0" - "@material/theme": "npm:15.0.0-canary.7f224ddd4.0" - tslib: "npm:^2.1.0" - checksum: 10c0/b5bbed660c15222c88c26f6149011dc572bda8768499a62ac496916a2d6bd201558072d2d94bdeba3689e8a64e3f3a2f158285b9b0d038179afa5d1cc9930cfc +"@module-federation/error-codes@npm:0.6.14": + version: 0.6.14 + resolution: "@module-federation/error-codes@npm:0.6.14" + checksum: 10c0/60809049f470942ab99b02b2070b2e57a1b783e2467ac83340c3e6947b74c282670985dfed617d13da94a6fa7433c2a959e5c1183eecfa32f8b8ebc548da96cc languageName: node linkType: hard -"@material/rtl@npm:15.0.0-canary.7f224ddd4.0": - version: 15.0.0-canary.7f224ddd4.0 - resolution: "@material/rtl@npm:15.0.0-canary.7f224ddd4.0" +"@module-federation/managers@npm:0.6.16": + version: 0.6.16 + resolution: "@module-federation/managers@npm:0.6.16" dependencies: - "@material/theme": "npm:15.0.0-canary.7f224ddd4.0" - tslib: "npm:^2.1.0" - checksum: 10c0/84a184f28e11aac5fec8071bcd27fa916d3d6cdd3c006c6b96fbfd74c3f2b438f3e40ad3f54496a2975f67cb618303eda80d112b26709e99aeeca86e2a8ec7b1 + "@module-federation/sdk": "npm:0.6.16" + find-pkg: "npm:2.0.0" + fs-extra: "npm:9.1.0" + checksum: 10c0/9a36c8070c343b544f89323397cce987012d8af9e4f390d9875b082535b8a83cc6fc8b688bbbfe78da447f3652dda18561f737a114bb4e4ffcb1a804c450b2a2 languageName: node linkType: hard -"@material/segmented-button@npm:15.0.0-canary.7f224ddd4.0": - version: 15.0.0-canary.7f224ddd4.0 - resolution: "@material/segmented-button@npm:15.0.0-canary.7f224ddd4.0" +"@module-federation/managers@npm:0.6.9": + version: 0.6.9 + resolution: "@module-federation/managers@npm:0.6.9" dependencies: - "@material/base": "npm:15.0.0-canary.7f224ddd4.0" - "@material/elevation": "npm:15.0.0-canary.7f224ddd4.0" - "@material/feature-targeting": "npm:15.0.0-canary.7f224ddd4.0" - "@material/ripple": "npm:15.0.0-canary.7f224ddd4.0" - "@material/theme": "npm:15.0.0-canary.7f224ddd4.0" - "@material/touch-target": "npm:15.0.0-canary.7f224ddd4.0" - "@material/typography": "npm:15.0.0-canary.7f224ddd4.0" - tslib: "npm:^2.1.0" - checksum: 10c0/3182bcfd40a5ca30c255350219946a26d650376b6f554443858543803fde77cf95c18ee4d659688ea5136b64d3a6133ef925bebdc918c663952b5a73df3d1472 - languageName: node - linkType: hard - -"@material/select@npm:15.0.0-canary.7f224ddd4.0": - version: 15.0.0-canary.7f224ddd4.0 - resolution: "@material/select@npm:15.0.0-canary.7f224ddd4.0" - dependencies: - "@material/animation": "npm:15.0.0-canary.7f224ddd4.0" - "@material/base": "npm:15.0.0-canary.7f224ddd4.0" - "@material/density": "npm:15.0.0-canary.7f224ddd4.0" - "@material/dom": "npm:15.0.0-canary.7f224ddd4.0" - "@material/elevation": "npm:15.0.0-canary.7f224ddd4.0" - "@material/feature-targeting": "npm:15.0.0-canary.7f224ddd4.0" - "@material/floating-label": "npm:15.0.0-canary.7f224ddd4.0" - "@material/line-ripple": "npm:15.0.0-canary.7f224ddd4.0" - "@material/list": "npm:15.0.0-canary.7f224ddd4.0" - "@material/menu": "npm:15.0.0-canary.7f224ddd4.0" - "@material/menu-surface": "npm:15.0.0-canary.7f224ddd4.0" - "@material/notched-outline": "npm:15.0.0-canary.7f224ddd4.0" - "@material/ripple": "npm:15.0.0-canary.7f224ddd4.0" - "@material/rtl": "npm:15.0.0-canary.7f224ddd4.0" - "@material/shape": "npm:15.0.0-canary.7f224ddd4.0" - "@material/theme": "npm:15.0.0-canary.7f224ddd4.0" - "@material/tokens": "npm:15.0.0-canary.7f224ddd4.0" - "@material/typography": "npm:15.0.0-canary.7f224ddd4.0" - tslib: "npm:^2.1.0" - checksum: 10c0/a3a3e18162ad6181ec39445177c5dce964ff4e01148bde519ce46df521ee01ae73d20e13cbcb02df1a54a71b55e0247900db944efd6a4736fc4588bd490a785e + "@module-federation/sdk": "npm:0.6.9" + find-pkg: "npm:2.0.0" + fs-extra: "npm:9.1.0" + checksum: 10c0/5ae81f0be6570ec20a1162085efc96c85acfd3a9dc12c28429e829ccdb0dabf5ee57f39814d9ea25162793a151be60f71dad80e49e5b045a723bda9a9ef23e16 languageName: node linkType: hard -"@material/shape@npm:15.0.0-canary.7f224ddd4.0": - version: 15.0.0-canary.7f224ddd4.0 - resolution: "@material/shape@npm:15.0.0-canary.7f224ddd4.0" +"@module-federation/manifest@npm:0.6.16": + version: 0.6.16 + resolution: "@module-federation/manifest@npm:0.6.16" dependencies: - "@material/feature-targeting": "npm:15.0.0-canary.7f224ddd4.0" - "@material/rtl": "npm:15.0.0-canary.7f224ddd4.0" - "@material/theme": "npm:15.0.0-canary.7f224ddd4.0" - tslib: "npm:^2.1.0" - checksum: 10c0/f8efa2d6f92a2a5efad7dc3a350ce9dcb50b6062cda7dcc34de0817d84b129217c94507fd1ee2ec0e2d71c733f6507762207a58b6336eb8f722e5ef1aeefce22 + "@module-federation/dts-plugin": "npm:0.6.16" + "@module-federation/managers": "npm:0.6.16" + "@module-federation/sdk": "npm:0.6.16" + chalk: "npm:3.0.0" + find-pkg: "npm:2.0.0" + checksum: 10c0/ca6b1b547d166b8b180f120d89f7371b34a09dd356631ce9ca69dd7adfd667ace4ad2ea097be865a221fa5f1f15044be55cdbf735f252344ee31e3f3c4ac06f8 languageName: node linkType: hard -"@material/slider@npm:15.0.0-canary.7f224ddd4.0": - version: 15.0.0-canary.7f224ddd4.0 - resolution: "@material/slider@npm:15.0.0-canary.7f224ddd4.0" +"@module-federation/manifest@npm:0.6.9": + version: 0.6.9 + resolution: "@module-federation/manifest@npm:0.6.9" dependencies: - "@material/animation": "npm:15.0.0-canary.7f224ddd4.0" - "@material/base": "npm:15.0.0-canary.7f224ddd4.0" - "@material/dom": "npm:15.0.0-canary.7f224ddd4.0" - "@material/elevation": "npm:15.0.0-canary.7f224ddd4.0" - "@material/feature-targeting": "npm:15.0.0-canary.7f224ddd4.0" - "@material/ripple": "npm:15.0.0-canary.7f224ddd4.0" - "@material/rtl": "npm:15.0.0-canary.7f224ddd4.0" - "@material/theme": "npm:15.0.0-canary.7f224ddd4.0" - "@material/tokens": "npm:15.0.0-canary.7f224ddd4.0" - "@material/typography": "npm:15.0.0-canary.7f224ddd4.0" - tslib: "npm:^2.1.0" - checksum: 10c0/8313c70f601c1ae3f3b23b1ef889d993c609da8ade8633e768a9936a38ca0870e504b2588b097f0156bd8a984b946a6073345c0f6c8e6158d98a60326688df83 - languageName: node - linkType: hard - -"@material/snackbar@npm:15.0.0-canary.7f224ddd4.0": - version: 15.0.0-canary.7f224ddd4.0 - resolution: "@material/snackbar@npm:15.0.0-canary.7f224ddd4.0" - dependencies: - "@material/animation": "npm:15.0.0-canary.7f224ddd4.0" - "@material/base": "npm:15.0.0-canary.7f224ddd4.0" - "@material/button": "npm:15.0.0-canary.7f224ddd4.0" - "@material/dom": "npm:15.0.0-canary.7f224ddd4.0" - "@material/elevation": "npm:15.0.0-canary.7f224ddd4.0" - "@material/feature-targeting": "npm:15.0.0-canary.7f224ddd4.0" - "@material/icon-button": "npm:15.0.0-canary.7f224ddd4.0" - "@material/ripple": "npm:15.0.0-canary.7f224ddd4.0" - "@material/rtl": "npm:15.0.0-canary.7f224ddd4.0" - "@material/shape": "npm:15.0.0-canary.7f224ddd4.0" - "@material/theme": "npm:15.0.0-canary.7f224ddd4.0" - "@material/tokens": "npm:15.0.0-canary.7f224ddd4.0" - "@material/typography": "npm:15.0.0-canary.7f224ddd4.0" - tslib: "npm:^2.1.0" - checksum: 10c0/2ac17cc071eb4c39c9b78255a395b7a7cbc16876ef169ed9a7846b676d4c6cf60b8160c28a338d70bb4e10010168c15faddc235862a9e0fe31555624c3c22ecf - languageName: node - linkType: hard - -"@material/switch@npm:15.0.0-canary.7f224ddd4.0": - version: 15.0.0-canary.7f224ddd4.0 - resolution: "@material/switch@npm:15.0.0-canary.7f224ddd4.0" - dependencies: - "@material/animation": "npm:15.0.0-canary.7f224ddd4.0" - "@material/base": "npm:15.0.0-canary.7f224ddd4.0" - "@material/density": "npm:15.0.0-canary.7f224ddd4.0" - "@material/dom": "npm:15.0.0-canary.7f224ddd4.0" - "@material/elevation": "npm:15.0.0-canary.7f224ddd4.0" - "@material/feature-targeting": "npm:15.0.0-canary.7f224ddd4.0" - "@material/focus-ring": "npm:15.0.0-canary.7f224ddd4.0" - "@material/ripple": "npm:15.0.0-canary.7f224ddd4.0" - "@material/rtl": "npm:15.0.0-canary.7f224ddd4.0" - "@material/shape": "npm:15.0.0-canary.7f224ddd4.0" - "@material/theme": "npm:15.0.0-canary.7f224ddd4.0" - "@material/tokens": "npm:15.0.0-canary.7f224ddd4.0" - safevalues: "npm:^0.3.4" - tslib: "npm:^2.1.0" - checksum: 10c0/73eb8fdae2f8367580d748300f4023a3b26c3c695060d4db82ca32fac945002a54d23ee7f722ee926dae2060f3da07d905ca9dd868b20e129d14955f963b351d + "@module-federation/dts-plugin": "npm:0.6.9" + "@module-federation/managers": "npm:0.6.9" + "@module-federation/sdk": "npm:0.6.9" + chalk: "npm:3.0.0" + find-pkg: "npm:2.0.0" + checksum: 10c0/65f7a5fa050f934bc8161d228682c9fe65cd454a404f2fcbde0b88692ef463fd87a2e7e3f0c15efa072cc2512eea192a294a5551b78709fbf9fc04d86be7b210 languageName: node linkType: hard -"@material/tab-bar@npm:15.0.0-canary.7f224ddd4.0": - version: 15.0.0-canary.7f224ddd4.0 - resolution: "@material/tab-bar@npm:15.0.0-canary.7f224ddd4.0" +"@module-federation/rspack@npm:0.6.16": + version: 0.6.16 + resolution: "@module-federation/rspack@npm:0.6.16" dependencies: - "@material/animation": "npm:15.0.0-canary.7f224ddd4.0" - "@material/base": "npm:15.0.0-canary.7f224ddd4.0" - "@material/density": "npm:15.0.0-canary.7f224ddd4.0" - "@material/elevation": "npm:15.0.0-canary.7f224ddd4.0" - "@material/feature-targeting": "npm:15.0.0-canary.7f224ddd4.0" - "@material/tab": "npm:15.0.0-canary.7f224ddd4.0" - "@material/tab-indicator": "npm:15.0.0-canary.7f224ddd4.0" - "@material/tab-scroller": "npm:15.0.0-canary.7f224ddd4.0" - "@material/theme": "npm:15.0.0-canary.7f224ddd4.0" - "@material/tokens": "npm:15.0.0-canary.7f224ddd4.0" - "@material/typography": "npm:15.0.0-canary.7f224ddd4.0" - tslib: "npm:^2.1.0" - checksum: 10c0/891a0c102495d4ceb78090a24b2bf06cf2a4f76ffac77a6a69d859c0833ec239d4c5d6ccb4476af56cecc0b6c56ea010e5440c2a73fba6c529903f7e908e4cda + "@module-federation/bridge-react-webpack-plugin": "npm:0.6.16" + "@module-federation/dts-plugin": "npm:0.6.16" + "@module-federation/managers": "npm:0.6.16" + "@module-federation/manifest": "npm:0.6.16" + "@module-federation/runtime-tools": "npm:0.6.16" + "@module-federation/sdk": "npm:0.6.16" + peerDependencies: + typescript: ^4.9.0 || ^5.0.0 + vue-tsc: ">=1.0.24" + peerDependenciesMeta: + typescript: + optional: true + vue-tsc: + optional: true + checksum: 10c0/9357bc9254c0dacaabd0d4bb444772de32d4935fd52b2551adf426cd32bdba97d54a21bbc293fdfc44460fdb65aa339dbb11d169a701f04f4f134f252b7dfeb9 languageName: node linkType: hard -"@material/tab-indicator@npm:15.0.0-canary.7f224ddd4.0": - version: 15.0.0-canary.7f224ddd4.0 - resolution: "@material/tab-indicator@npm:15.0.0-canary.7f224ddd4.0" +"@module-federation/rspack@npm:0.6.9": + version: 0.6.9 + resolution: "@module-federation/rspack@npm:0.6.9" dependencies: - "@material/animation": "npm:15.0.0-canary.7f224ddd4.0" - "@material/base": "npm:15.0.0-canary.7f224ddd4.0" - "@material/feature-targeting": "npm:15.0.0-canary.7f224ddd4.0" - "@material/theme": "npm:15.0.0-canary.7f224ddd4.0" - tslib: "npm:^2.1.0" - checksum: 10c0/672722f6090cf670e2b668a8274c6d7f12b72c249afea33ee0708872f60faabf8f2537e4618b7d1b2b26bb8d7d2f54bd408256e03c948eff2015294aa8d437cd + "@module-federation/bridge-react-webpack-plugin": "npm:0.6.9" + "@module-federation/dts-plugin": "npm:0.6.9" + "@module-federation/managers": "npm:0.6.9" + "@module-federation/manifest": "npm:0.6.9" + "@module-federation/runtime-tools": "npm:0.6.9" + "@module-federation/sdk": "npm:0.6.9" + peerDependencies: + typescript: ^4.9.0 || ^5.0.0 + vue-tsc: ">=1.0.24" + peerDependenciesMeta: + typescript: + optional: true + vue-tsc: + optional: true + checksum: 10c0/34da65c4d602329d53603f1357aad75205b55e0b4b4ac810772810b698251d22e93cd99be7bf2aaa6d8c55843406d694ac68baef6f7330aa7684aa408b6d24bc languageName: node linkType: hard -"@material/tab-scroller@npm:15.0.0-canary.7f224ddd4.0": - version: 15.0.0-canary.7f224ddd4.0 - resolution: "@material/tab-scroller@npm:15.0.0-canary.7f224ddd4.0" +"@module-federation/runtime-tools@npm:0.6.16": + version: 0.6.16 + resolution: "@module-federation/runtime-tools@npm:0.6.16" dependencies: - "@material/animation": "npm:15.0.0-canary.7f224ddd4.0" - "@material/base": "npm:15.0.0-canary.7f224ddd4.0" - "@material/dom": "npm:15.0.0-canary.7f224ddd4.0" - "@material/feature-targeting": "npm:15.0.0-canary.7f224ddd4.0" - "@material/tab": "npm:15.0.0-canary.7f224ddd4.0" - tslib: "npm:^2.1.0" - checksum: 10c0/ea2f01f75a4a97d038909b11802c4524c9099cda6f48e796ed359326acc0989df95096ce1ec1446ef138124ee7084ff1bee30c527230d2a058fc4fd5395539df + "@module-federation/runtime": "npm:0.6.16" + "@module-federation/webpack-bundler-runtime": "npm:0.6.16" + checksum: 10c0/bb9a17c82bdaca5beeac7f944b49fb813480a5ea5999e3ee29e07b6e6e19ff253a5244bdb4f2d69f2f450851a1627827927274f64d8539032a2dcab2a8bcf738 languageName: node linkType: hard -"@material/tab@npm:15.0.0-canary.7f224ddd4.0": - version: 15.0.0-canary.7f224ddd4.0 - resolution: "@material/tab@npm:15.0.0-canary.7f224ddd4.0" +"@module-federation/runtime-tools@npm:0.6.9": + version: 0.6.9 + resolution: "@module-federation/runtime-tools@npm:0.6.9" dependencies: - "@material/base": "npm:15.0.0-canary.7f224ddd4.0" - "@material/elevation": "npm:15.0.0-canary.7f224ddd4.0" - "@material/feature-targeting": "npm:15.0.0-canary.7f224ddd4.0" - "@material/focus-ring": "npm:15.0.0-canary.7f224ddd4.0" - "@material/ripple": "npm:15.0.0-canary.7f224ddd4.0" - "@material/rtl": "npm:15.0.0-canary.7f224ddd4.0" - "@material/tab-indicator": "npm:15.0.0-canary.7f224ddd4.0" - "@material/theme": "npm:15.0.0-canary.7f224ddd4.0" - "@material/tokens": "npm:15.0.0-canary.7f224ddd4.0" - "@material/typography": "npm:15.0.0-canary.7f224ddd4.0" - tslib: "npm:^2.1.0" - checksum: 10c0/f5eba9168d3adc2165cc6b5b622a68bcf43ef64ff455524a6836c1725135329f02f9a1f2406204d6df60c9332bdf86a098a9f22ba070e643ad8f19629afece90 - languageName: node - linkType: hard - -"@material/textfield@npm:15.0.0-canary.7f224ddd4.0": - version: 15.0.0-canary.7f224ddd4.0 - resolution: "@material/textfield@npm:15.0.0-canary.7f224ddd4.0" - dependencies: - "@material/animation": "npm:15.0.0-canary.7f224ddd4.0" - "@material/base": "npm:15.0.0-canary.7f224ddd4.0" - "@material/density": "npm:15.0.0-canary.7f224ddd4.0" - "@material/dom": "npm:15.0.0-canary.7f224ddd4.0" - "@material/feature-targeting": "npm:15.0.0-canary.7f224ddd4.0" - "@material/floating-label": "npm:15.0.0-canary.7f224ddd4.0" - "@material/line-ripple": "npm:15.0.0-canary.7f224ddd4.0" - "@material/notched-outline": "npm:15.0.0-canary.7f224ddd4.0" - "@material/ripple": "npm:15.0.0-canary.7f224ddd4.0" - "@material/rtl": "npm:15.0.0-canary.7f224ddd4.0" - "@material/shape": "npm:15.0.0-canary.7f224ddd4.0" - "@material/theme": "npm:15.0.0-canary.7f224ddd4.0" - "@material/tokens": "npm:15.0.0-canary.7f224ddd4.0" - "@material/typography": "npm:15.0.0-canary.7f224ddd4.0" - tslib: "npm:^2.1.0" - checksum: 10c0/ed51bfb114a68a0d9827087beed496da636297b67d0f16e57a113d84b4ae1d8366c54ddc9efc648cd820d2e05a33b7fafb37f4dc5b53ca0cdff6faf68f8e402e + "@module-federation/runtime": "npm:0.6.9" + "@module-federation/webpack-bundler-runtime": "npm:0.6.9" + checksum: 10c0/ab20c8b8a03384b58e83f4d89b0949e1fdd1b774e49ac74fe3eb38ffb7a2191cd47e80862485a8c2045c48ccf335299532a4d2db0738e8fb777a983e43e6b425 languageName: node linkType: hard -"@material/theme@npm:15.0.0-canary.7f224ddd4.0": - version: 15.0.0-canary.7f224ddd4.0 - resolution: "@material/theme@npm:15.0.0-canary.7f224ddd4.0" +"@module-federation/runtime@npm:0.6.16": + version: 0.6.16 + resolution: "@module-federation/runtime@npm:0.6.16" dependencies: - "@material/feature-targeting": "npm:15.0.0-canary.7f224ddd4.0" - tslib: "npm:^2.1.0" - checksum: 10c0/19017fe2b0e937229b7f5773cd3e20f99ab3b35474afb8af1cb943cb26093e5e29e90c0e85cc35c3fa82ac9fd4c45221b3af8396836abc99e0b09bc061e874f2 + "@module-federation/error-codes": "npm:0.6.14" + "@module-federation/sdk": "npm:0.6.16" + checksum: 10c0/5520ec1f21ac8d1fdda1f876cf137bc52c8799e580a90b9bb000ae654b71ff9559289a1d972f174b885cf2381334d80bff6446134cf35bd1d52825275bbefd4d languageName: node linkType: hard -"@material/tokens@npm:15.0.0-canary.7f224ddd4.0": - version: 15.0.0-canary.7f224ddd4.0 - resolution: "@material/tokens@npm:15.0.0-canary.7f224ddd4.0" +"@module-federation/runtime@npm:0.6.9": + version: 0.6.9 + resolution: "@module-federation/runtime@npm:0.6.9" dependencies: - "@material/elevation": "npm:15.0.0-canary.7f224ddd4.0" - checksum: 10c0/9f26d5403cf8ffb82366f9ba2e1252f421c15b8c680a69ba2572d0abf4e18fdc6f63b8523bb23c6badc8ce42f4ccfdd97e0852ab225ce4049a5ff5ee189133de + "@module-federation/sdk": "npm:0.6.9" + checksum: 10c0/c2a7cf129282bf47a9edb57ac8c9af2253147fda5d86aafc9d8ba8b54d56fe6ba9cc49e1f2c84829b3c28082d861cddae5acb8fc2c00b7bd8c0e49d49d72b94e languageName: node linkType: hard -"@material/tooltip@npm:15.0.0-canary.7f224ddd4.0": - version: 15.0.0-canary.7f224ddd4.0 - resolution: "@material/tooltip@npm:15.0.0-canary.7f224ddd4.0" +"@module-federation/sdk@npm:0.6.16, @module-federation/sdk@npm:^0.6.0": + version: 0.6.16 + resolution: "@module-federation/sdk@npm:0.6.16" dependencies: - "@material/animation": "npm:15.0.0-canary.7f224ddd4.0" - "@material/base": "npm:15.0.0-canary.7f224ddd4.0" - "@material/button": "npm:15.0.0-canary.7f224ddd4.0" - "@material/dom": "npm:15.0.0-canary.7f224ddd4.0" - "@material/elevation": "npm:15.0.0-canary.7f224ddd4.0" - "@material/feature-targeting": "npm:15.0.0-canary.7f224ddd4.0" - "@material/rtl": "npm:15.0.0-canary.7f224ddd4.0" - "@material/shape": "npm:15.0.0-canary.7f224ddd4.0" - "@material/theme": "npm:15.0.0-canary.7f224ddd4.0" - "@material/tokens": "npm:15.0.0-canary.7f224ddd4.0" - "@material/typography": "npm:15.0.0-canary.7f224ddd4.0" - safevalues: "npm:^0.3.4" - tslib: "npm:^2.1.0" - checksum: 10c0/09ac415b53874110c93c965914ff3407a811fe48829794009f354a05ea53fdd79ab955e2f906e1d3eeaed568faa66a7ff012b77c1db58dc92aae543aa6fe877b + isomorphic-rslog: "npm:0.0.5" + checksum: 10c0/3dd47f299f9b775cf6cf35cb71d80e577c430a97df5100cec6f0211db67a735f4ec62ab2e288b81f7e902cdd61ea1bdfe5e574b9f038d3d6b86965488242d837 languageName: node linkType: hard -"@material/top-app-bar@npm:15.0.0-canary.7f224ddd4.0": - version: 15.0.0-canary.7f224ddd4.0 - resolution: "@material/top-app-bar@npm:15.0.0-canary.7f224ddd4.0" - dependencies: - "@material/animation": "npm:15.0.0-canary.7f224ddd4.0" - "@material/base": "npm:15.0.0-canary.7f224ddd4.0" - "@material/elevation": "npm:15.0.0-canary.7f224ddd4.0" - "@material/ripple": "npm:15.0.0-canary.7f224ddd4.0" - "@material/rtl": "npm:15.0.0-canary.7f224ddd4.0" - "@material/shape": "npm:15.0.0-canary.7f224ddd4.0" - "@material/theme": "npm:15.0.0-canary.7f224ddd4.0" - "@material/typography": "npm:15.0.0-canary.7f224ddd4.0" - tslib: "npm:^2.1.0" - checksum: 10c0/c982b1fac4889e60a5b45b8b90750ffeb8d1878f1698df16c6bbbe014d984776059119ec2070631630ccc9215a5b3f8976d22d02b51a286b9c1cb4e5c03b748b +"@module-federation/sdk@npm:0.6.9": + version: 0.6.9 + resolution: "@module-federation/sdk@npm:0.6.9" + checksum: 10c0/9c196333aec74c7f3e128e6223d3459aab1a8406b0e7389cce5826a92317cd2e811bfacb6c67d72e07224728c9261bd1c2eedd71303e999db6a6a55e0967b3a6 languageName: node linkType: hard -"@material/touch-target@npm:15.0.0-canary.7f224ddd4.0": - version: 15.0.0-canary.7f224ddd4.0 - resolution: "@material/touch-target@npm:15.0.0-canary.7f224ddd4.0" +"@module-federation/third-party-dts-extractor@npm:0.6.16": + version: 0.6.16 + resolution: "@module-federation/third-party-dts-extractor@npm:0.6.16" dependencies: - "@material/base": "npm:15.0.0-canary.7f224ddd4.0" - "@material/feature-targeting": "npm:15.0.0-canary.7f224ddd4.0" - "@material/rtl": "npm:15.0.0-canary.7f224ddd4.0" - "@material/theme": "npm:15.0.0-canary.7f224ddd4.0" - tslib: "npm:^2.1.0" - checksum: 10c0/620c9f0dbf3f4a3f7105d7fc5294d7952d3aa8ecb8800cd4faeb9c6e78eb9e8e0a5aa456552601b02fb69a57c00aca6f08f965f1ad27a33dccacec8c160ecefa + find-pkg: "npm:2.0.0" + fs-extra: "npm:9.1.0" + resolve: "npm:1.22.8" + checksum: 10c0/a181963daecbd40789042b1dea33a0438fcfa6699d2bcd5eee03a7a7d9a8813a3bcf3c1ee3947da64410b136b3bdc1f8b3562ad7baa164d8b91b7538423d3ae9 languageName: node linkType: hard -"@material/typography@npm:15.0.0-canary.7f224ddd4.0": - version: 15.0.0-canary.7f224ddd4.0 - resolution: "@material/typography@npm:15.0.0-canary.7f224ddd4.0" +"@module-federation/third-party-dts-extractor@npm:0.6.9": + version: 0.6.9 + resolution: "@module-federation/third-party-dts-extractor@npm:0.6.9" dependencies: - "@material/feature-targeting": "npm:15.0.0-canary.7f224ddd4.0" - "@material/theme": "npm:15.0.0-canary.7f224ddd4.0" - tslib: "npm:^2.1.0" - checksum: 10c0/f17ec962c832457c87da7e2a65f61e9611ef6b1f8b6cb143151dbff9bb0ec2962517772539bc4f54509fb95397512e81ec7c293027e11e8508545900e016be33 + find-pkg: "npm:2.0.0" + fs-extra: "npm:9.1.0" + resolve: "npm:1.22.8" + checksum: 10c0/601451d5d5887f44b5d85aafdcc895fcdf95d79414799a14fb0aa5e5d7c50e75afe4a09ed71e652cfce759f93d0decd56241fdeea8bc1626276c339ef796457d languageName: node linkType: hard -"@mdx-js/mdx@npm:^1.6.22": - version: 1.6.22 - resolution: "@mdx-js/mdx@npm:1.6.22" +"@module-federation/webpack-bundler-runtime@npm:0.6.16": + version: 0.6.16 + resolution: "@module-federation/webpack-bundler-runtime@npm:0.6.16" dependencies: - "@babel/core": "npm:7.12.9" - "@babel/plugin-syntax-jsx": "npm:7.12.1" - "@babel/plugin-syntax-object-rest-spread": "npm:7.8.3" - "@mdx-js/util": "npm:1.6.22" - babel-plugin-apply-mdx-type-prop: "npm:1.6.22" - babel-plugin-extract-import-names: "npm:1.6.22" - camelcase-css: "npm:2.0.1" - detab: "npm:2.0.4" - hast-util-raw: "npm:6.0.1" - lodash.uniq: "npm:4.5.0" - mdast-util-to-hast: "npm:10.0.1" - remark-footnotes: "npm:2.0.0" - remark-mdx: "npm:1.6.22" - remark-parse: "npm:8.0.3" - remark-squeeze-paragraphs: "npm:4.0.0" - style-to-object: "npm:0.3.0" - unified: "npm:9.2.0" - unist-builder: "npm:2.0.3" - unist-util-visit: "npm:2.0.3" - checksum: 10c0/7f4c38911fc269159834240d3cc9279839145022a992bd61657530750c7ab5d0f674e8d6319b6e2e426d0e1adc6cc5ab1876e57548208783d8a3d1b8ef73ebca - languageName: node - linkType: hard - -"@mdx-js/react@npm:^1.6.22": - version: 1.6.22 - resolution: "@mdx-js/react@npm:1.6.22" - peerDependencies: - react: ^16.13.1 || ^17.0.0 - checksum: 10c0/ed896671ffab04c1f11cdba45bfb2786acff58cd0b749b0a13d9b7a7022ac75cc036bec067ca946e6540e2934727e0ba8bf174e4ae10c916f30cda6aecac8992 + "@module-federation/runtime": "npm:0.6.16" + "@module-federation/sdk": "npm:0.6.16" + checksum: 10c0/7f8e84035b630c7f78baf673152d52a8fbd8fb36571b394c774cb43787c5945b79314db4824ea3f03ee70a1a93ed9a263b1d9b7cbb75fb59e2a8c4e9f6802649 languageName: node linkType: hard -"@mdx-js/util@npm:1.6.22": - version: 1.6.22 - resolution: "@mdx-js/util@npm:1.6.22" - checksum: 10c0/2ee8da6afea0f42297ea31f52b1d50d228744d2895cce7cc9571b7d5ce97c7c96037c80b6dbcded9caa8099c9a994eda62980099eabe1c000aaa792816c66f10 +"@module-federation/webpack-bundler-runtime@npm:0.6.9": + version: 0.6.9 + resolution: "@module-federation/webpack-bundler-runtime@npm:0.6.9" + dependencies: + "@module-federation/runtime": "npm:0.6.9" + "@module-federation/sdk": "npm:0.6.9" + checksum: 10c0/3b5754ce8f651645693e5c24901b542fce323c9ec323640b555d8d27f59076dcecf2ab4513a04d7628de17eb1c1571bdcf584addd5682fd979b499ce880aeba8 languageName: node linkType: hard @@ -8321,14 +8232,30 @@ __metadata: languageName: node linkType: hard -"@ngtools/webpack@npm:18.0.2": - version: 18.0.2 - resolution: "@ngtools/webpack@npm:18.0.2" +"@napi-rs/wasm-runtime@npm:0.2.4": + version: 0.2.4 + resolution: "@napi-rs/wasm-runtime@npm:0.2.4" + dependencies: + "@emnapi/core": "npm:^1.1.0" + "@emnapi/runtime": "npm:^1.1.0" + "@tybys/wasm-util": "npm:^0.9.0" + checksum: 10c0/1040de49b2ef509db207e2517465dbf7fb3474f20e8ec32897672a962ff4f59872385666dac61dc9dbeae3cae5dad265d8dc3865da756adeb07d1634c67b03a1 + languageName: node + linkType: hard + +"@ngtools/webpack@npm:18.2.9": + version: 18.2.9 + resolution: "@ngtools/webpack@npm:18.2.9" peerDependencies: "@angular/compiler-cli": ^18.0.0 - typescript: ">=5.4 <5.5" + typescript: ">=5.4 <5.6" webpack: ^5.54.0 - checksum: 10c0/9d0df7867e53cc5934ea0990e44c5f2e925878619f1e37f284cef4ba2e99c636bb3259879b6bc22d6b4ad5534efe920fff896f41d62a413636d67362fe9ad9ef + dependenciesMeta: + esbuild: + built: true + puppeteer: + built: true + checksum: 10c0/4d5acc5327c67c487caf300488924d80187ba492ebb936c4b573e05f1a29ac78bec6590302f70135dbdc871e0e81b2c2124fa55611f220cda4476fa907d6838b languageName: node linkType: hard @@ -8600,34 +8527,6 @@ __metadata: languageName: node linkType: hard -"@nrwl/angular@npm:19.1.1": - version: 19.1.1 - resolution: "@nrwl/angular@npm:19.1.1" - dependencies: - "@nx/angular": "npm:19.1.1" - tslib: "npm:^2.3.0" - checksum: 10c0/3647e72afe579b45edbb0be43b89240106e8ced34a14f4b5e1c5b608f56db2ae4a4ff623bd1c07d60c5d0a32192c88498c3409613a5500add2da4511131d965b - languageName: node - linkType: hard - -"@nrwl/cypress@npm:19.1.1": - version: 19.1.1 - resolution: "@nrwl/cypress@npm:19.1.1" - dependencies: - "@nx/cypress": "npm:19.1.1" - checksum: 10c0/388fa3629bec079b35772bdaf439869814bad712e5cf54d8e192e3a9a23f2e6202493825ebbfe6235841e61b941758e5d876f787102fedbfdc511b6fd2031972 - languageName: node - linkType: hard - -"@nrwl/devkit@npm:19.1.1": - version: 19.1.1 - resolution: "@nrwl/devkit@npm:19.1.1" - dependencies: - "@nx/devkit": "npm:19.1.1" - checksum: 10c0/1f2098f36231e8d9ca1391e0465c81ea4dbf41696c276f275bd336675d1b5670e33acd1e1cee648b16edbff84539572246a226600422601d9e5a6a2c7fe1bcba - languageName: node - linkType: hard - "@nrwl/devkit@npm:^14.3.6": version: 14.8.8 resolution: "@nrwl/devkit@npm:14.8.8" @@ -8642,137 +8541,67 @@ __metadata: languageName: node linkType: hard -"@nrwl/eslint-plugin-nx@npm:19.1.1": - version: 19.1.1 - resolution: "@nrwl/eslint-plugin-nx@npm:19.1.1" - dependencies: - "@nx/eslint-plugin": "npm:19.1.1" - checksum: 10c0/d76d2a88490fe24d8f53b297e9b62ae21e93b04a3bd651438f5565adaec4af760397550704964a3b4897a7ae6c34698e5ccf7e9beb64925c43b97a4cd99d5323 - languageName: node - linkType: hard - -"@nrwl/jest@npm:19.1.1": - version: 19.1.1 - resolution: "@nrwl/jest@npm:19.1.1" - dependencies: - "@nx/jest": "npm:19.1.1" - checksum: 10c0/dc843e93aca53f29c358d675fe0fd3bd5f7decab6f5e36ed76dc8f1ed9569883b68b66fb3bb924b1913213198ede70469341157f78034c2975c71ab1969c1061 - languageName: node - linkType: hard - -"@nrwl/js@npm:19.1.1": - version: 19.1.1 - resolution: "@nrwl/js@npm:19.1.1" - dependencies: - "@nx/js": "npm:19.1.1" - checksum: 10c0/f80228db7903c676417267c0ab17cce30eafe79f6d1c257adbb3bdfc7c3ea8b09d1d628303c6b37bf4d5e509c6c244e82692e20be579e9e78760f0044c4ea46f - languageName: node - linkType: hard - -"@nrwl/node@npm:19.1.1": - version: 19.1.1 - resolution: "@nrwl/node@npm:19.1.1" - dependencies: - "@nx/node": "npm:19.1.1" - checksum: 10c0/5b1bcbfc19f83178b0f25ece46274d6916d792996ff69c9c014de9fc95cc3fd89ed88360ab1591ee40c8eab89c03594acd1ca7639223e6680fd1452f87d7a590 - languageName: node - linkType: hard - -"@nrwl/tao@npm:19.1.1": - version: 19.1.1 - resolution: "@nrwl/tao@npm:19.1.1" - dependencies: - nx: "npm:19.1.1" - tslib: "npm:^2.3.0" - bin: - tao: index.js - checksum: 10c0/e47ae39eb38817996d53013785dd8feb608fcd3793fe3b4e8860244b382e704b878276395e1faff5f8f827696f4043ed575173cbad4bfd7ed050dea56d524d4e - languageName: node - linkType: hard - -"@nrwl/web@npm:19.1.1": - version: 19.1.1 - resolution: "@nrwl/web@npm:19.1.1" - dependencies: - "@nx/web": "npm:19.1.1" - checksum: 10c0/4227fa0b0cebe266d108ccf4153b7264c4c9666e85dff5ddb974e6d1c5f689b8b6735e3e0ce6521560c7614b8f2e819e5885ea06eea31fdbaf93b7a1ba3499da - languageName: node - linkType: hard - -"@nrwl/webpack@npm:19.1.1": - version: 19.1.1 - resolution: "@nrwl/webpack@npm:19.1.1" - dependencies: - "@nx/webpack": "npm:19.1.1" - checksum: 10c0/63a5c290b8ec2e48a0a1314e95660e1078a4fce1eb22e9e1ccb787ef58271f166f7497beb4152540de2926d846180d5bdd597d4b5f157aba684ced56f04a47bc - languageName: node - linkType: hard - -"@nrwl/workspace@npm:19.1.1": - version: 19.1.1 - resolution: "@nrwl/workspace@npm:19.1.1" +"@nx-plus/docusaurus@npm:14.1.0": + version: 14.1.0 + resolution: "@nx-plus/docusaurus@npm:14.1.0" dependencies: - "@nx/workspace": "npm:19.1.1" - checksum: 10c0/8f0943c9d0f2028b828ebe749e9493ddc25b8968dc271d51f9b0a32d7b20d90aa2bbbf648b252dbed3c4002b83104f80a2beba4182918c1b1057071b24e0ded3 + "@nrwl/devkit": "npm:^14.3.6" + peerDependencies: + "@nrwl/workspace": ^14.3.6 + checksum: 10c0/1ce73a8998109b3ccc3db8bcedc8f229bc2b8226b26c477d9237dd89b626ac8da830e7c51808db45920fcb6445762c0953f913daf753ed0df799d34544112539 languageName: node linkType: hard -"@nx-plus/docusaurus@npm:14.1.0": +"@nx-plus/docusaurus@patch:@nx-plus/docusaurus@npm%3A14.1.0#~/.yarn/patches/@nx-plus-docusaurus-npm-14.1.0-b526e34c01.patch": version: 14.1.0 - resolution: "@nx-plus/docusaurus@npm:14.1.0" + resolution: "@nx-plus/docusaurus@patch:@nx-plus/docusaurus@npm%3A14.1.0#~/.yarn/patches/@nx-plus-docusaurus-npm-14.1.0-b526e34c01.patch::version=14.1.0&hash=e29990" dependencies: "@nrwl/devkit": "npm:^14.3.6" peerDependencies: "@nrwl/workspace": ^14.3.6 - checksum: 10c0/1ce73a8998109b3ccc3db8bcedc8f229bc2b8226b26c477d9237dd89b626ac8da830e7c51808db45920fcb6445762c0953f913daf753ed0df799d34544112539 + checksum: 10c0/6c831f5560ede824e6c40b24fd2cbdf1b99d4c3a4fe955e51439df7be0a0e08a83b1bfddad28227d47ec3ffdfee0522c0a4bca65b531945ca0845455b42daa29 languageName: node linkType: hard -"@nx/angular@npm:19.1.1": - version: 19.1.1 - resolution: "@nx/angular@npm:19.1.1" +"@nx/angular@npm:20.1.0": + version: 20.1.0 + resolution: "@nx/angular@npm:20.1.0" dependencies: - "@nrwl/angular": "npm:19.1.1" - "@nx/devkit": "npm:19.1.1" - "@nx/eslint": "npm:19.1.1" - "@nx/js": "npm:19.1.1" - "@nx/web": "npm:19.1.1" - "@nx/webpack": "npm:19.1.1" - "@nx/workspace": "npm:19.1.1" + "@module-federation/enhanced": "npm:0.6.9" + "@nx/devkit": "npm:20.1.0" + "@nx/eslint": "npm:20.1.0" + "@nx/js": "npm:20.1.0" + "@nx/web": "npm:20.1.0" + "@nx/webpack": "npm:20.1.0" + "@nx/workspace": "npm:20.1.0" "@phenomnomnominal/tsquery": "npm:~5.0.1" - "@typescript-eslint/type-utils": "npm:^7.3.0" + "@typescript-eslint/type-utils": "npm:^8.0.0" chalk: "npm:^4.1.0" find-cache-dir: "npm:^3.3.2" - ignore: "npm:^5.0.4" magic-string: "npm:~0.30.2" minimatch: "npm:9.0.3" piscina: "npm:^4.4.0" semver: "npm:^7.5.3" tslib: "npm:^2.3.0" - webpack: "npm:^5.80.0" + webpack: "npm:^5.88.0" webpack-merge: "npm:^5.8.0" peerDependencies: "@angular-devkit/build-angular": ">= 16.0.0 < 19.0.0" "@angular-devkit/core": ">= 16.0.0 < 19.0.0" "@angular-devkit/schematics": ">= 16.0.0 < 19.0.0" "@schematics/angular": ">= 16.0.0 < 19.0.0" - esbuild: ^0.19.2 rxjs: ^6.5.3 || ^7.5.0 - peerDependenciesMeta: - esbuild: - optional: true - checksum: 10c0/cc2540f58f9e98694fa9aa5c5710d53738bf0ef3055566983c4f6a8192e614c4295feae1411727aa9089d8a6b39e108179f35684f7fec753ae9990a1e865b34d + checksum: 10c0/34a4c67c1f17fe8f3eec9714c2af1b50239ac0e89bc22adfce604be19ef8af1e5f476acc36d8376884e9b01a1af8a196f239bce16a0d94aa97efab23c213ee4b languageName: node linkType: hard -"@nx/cypress@npm:19.1.1": - version: 19.1.1 - resolution: "@nx/cypress@npm:19.1.1" +"@nx/cypress@npm:20.1.0": + version: 20.1.0 + resolution: "@nx/cypress@npm:20.1.0" dependencies: - "@nrwl/cypress": "npm:19.1.1" - "@nx/devkit": "npm:19.1.1" - "@nx/eslint": "npm:19.1.1" - "@nx/js": "npm:19.1.1" + "@nx/devkit": "npm:20.1.0" + "@nx/eslint": "npm:20.1.0" + "@nx/js": "npm:20.1.0" "@phenomnomnominal/tsquery": "npm:~5.0.1" detect-port: "npm:^1.5.1" tslib: "npm:^2.3.0" @@ -8781,15 +8610,14 @@ __metadata: peerDependenciesMeta: cypress: optional: true - checksum: 10c0/b2026d081f6ce3e1e59e574a0a108b25ff9cb3959556b24ece820eed51a676039401794251b1c0c5ff24ab8c841bc88a4ca9b7349b3b4ec0760d051b26b13b5e + checksum: 10c0/89175ad0cdade511c1eb7087192fc4536fa7a8a86524d8f4f0dd6f85d8b662cc91a96090891eeb9234b06c34cda6649b7509a7a87f12630003a2d82a02188148 languageName: node linkType: hard -"@nx/devkit@npm:19.1.1": - version: 19.1.1 - resolution: "@nx/devkit@npm:19.1.1" +"@nx/devkit@npm:20.1.0": + version: 20.1.0 + resolution: "@nx/devkit@npm:20.1.0" dependencies: - "@nrwl/devkit": "npm:19.1.1" ejs: "npm:^3.1.7" enquirer: "npm:~2.3.6" ignore: "npm:^5.0.4" @@ -8799,42 +8627,41 @@ __metadata: tslib: "npm:^2.3.0" yargs-parser: "npm:21.1.1" peerDependencies: - nx: ">= 17 <= 20" - checksum: 10c0/5abe5d31cea1eefe9f8d4b98ae74d708bae66d3cc7a90ca1bb0ad12a026415ecac01477fb0b36c56a0180ff53dd69a84998cf8994fb25cc5affb946b058b6d44 + nx: ">= 19 <= 21" + checksum: 10c0/395a34b47ab4f446e3b10693a368441c3502bcc4961727491746b0683cf297ad27954293d29d10c003978c65d32073951877df480bccd44a9e297a811e43d6a1 languageName: node linkType: hard -"@nx/eslint-plugin@npm:19.1.1": - version: 19.1.1 - resolution: "@nx/eslint-plugin@npm:19.1.1" +"@nx/eslint-plugin@npm:20.1.0": + version: 20.1.0 + resolution: "@nx/eslint-plugin@npm:20.1.0" dependencies: - "@nrwl/eslint-plugin-nx": "npm:19.1.1" - "@nx/devkit": "npm:19.1.1" - "@nx/js": "npm:19.1.1" - "@typescript-eslint/type-utils": "npm:^7.3.0" - "@typescript-eslint/utils": "npm:^7.3.0" + "@nx/devkit": "npm:20.1.0" + "@nx/js": "npm:20.1.0" + "@typescript-eslint/type-utils": "npm:^8.0.0" + "@typescript-eslint/utils": "npm:^8.0.0" chalk: "npm:^4.1.0" confusing-browser-globals: "npm:^1.0.9" + globals: "npm:^15.9.0" jsonc-eslint-parser: "npm:^2.1.0" semver: "npm:^7.5.3" tslib: "npm:^2.3.0" peerDependencies: - "@typescript-eslint/parser": ^6.13.2 || ^7.0.0 + "@typescript-eslint/parser": ^6.13.2 || ^7.0.0 || ^8.0.0 eslint-config-prettier: ^9.0.0 peerDependenciesMeta: eslint-config-prettier: optional: true - checksum: 10c0/31c9fc8def6bf44e3d150b2bed91f1886372ddb788738402b81474c6108d2e1077ba24a2d70c01a5e0430c8f4dd1e83dbcb84c7fce499ed603ed276e8ef8ac15 + checksum: 10c0/cf38aee4745505239fd5a5c2fe7287f6e3ab271d9bb6f9b9d8d98df0561296df48eedd3e1abd450072c5b382b42d14552246ef8c1646658e884f642240adf543 languageName: node linkType: hard -"@nx/eslint@npm:19.1.1": - version: 19.1.1 - resolution: "@nx/eslint@npm:19.1.1" +"@nx/eslint@npm:20.1.0": + version: 20.1.0 + resolution: "@nx/eslint@npm:20.1.0" dependencies: - "@nx/devkit": "npm:19.1.1" - "@nx/js": "npm:19.1.1" - "@nx/linter": "npm:19.1.1" + "@nx/devkit": "npm:20.1.0" + "@nx/js": "npm:20.1.0" semver: "npm:^7.5.3" tslib: "npm:^2.3.0" typescript: "npm:~5.4.2" @@ -8844,19 +8671,18 @@ __metadata: peerDependenciesMeta: "@zkochan/js-yaml": optional: true - checksum: 10c0/db15bf56673334d28ecae95b45fdf9a26314a047b0a7be21acd74bfdb010c7b3f8eb60d7217b3c3d4ef3c48f768eaa13e30d154c5b39acb25da4eae367f7c017 + checksum: 10c0/a0e1b75e81120596dbfb66f957936000892131c76409c3a1f035c0bfae36f5ef5ab1215f3e8e52d49802ef14938ec954e8b85131395103f8afca930b4759c1b1 languageName: node linkType: hard -"@nx/jest@npm:19.1.1": - version: 19.1.1 - resolution: "@nx/jest@npm:19.1.1" +"@nx/jest@npm:20.1.0": + version: 20.1.0 + resolution: "@nx/jest@npm:20.1.0" dependencies: "@jest/reporters": "npm:^29.4.1" "@jest/test-result": "npm:^29.4.1" - "@nrwl/jest": "npm:19.1.1" - "@nx/devkit": "npm:19.1.1" - "@nx/js": "npm:19.1.1" + "@nx/devkit": "npm:20.1.0" + "@nx/js": "npm:20.1.0" "@phenomnomnominal/tsquery": "npm:~5.0.1" chalk: "npm:^4.1.0" identity-obj-proxy: "npm:3.0.0" @@ -8865,15 +8691,16 @@ __metadata: jest-util: "npm:^29.4.1" minimatch: "npm:9.0.3" resolve.exports: "npm:1.1.0" + semver: "npm:^7.5.3" tslib: "npm:^2.3.0" yargs-parser: "npm:21.1.1" - checksum: 10c0/634edf69fbc8e1991683754d9b1e27bc56040efd99e75f9e291f9b9fb74f6e4d19e3d42bc2045b54dc5614bb55c6160a6fc11b61b5753a8cf7573146c366c38f + checksum: 10c0/2adf522ae552b61f84c64bc31dccb3c9d123aeedcd53d5bf7adc0480d790f184cb0097ffad169f377f9127967bae2cd588e039e8ad417f8b6a225a68216b37a9 languageName: node linkType: hard -"@nx/js@npm:19.1.1": - version: 19.1.1 - resolution: "@nx/js@npm:19.1.1" +"@nx/js@npm:20.1.0": + version: 20.1.0 + resolution: "@nx/js@npm:20.1.0" dependencies: "@babel/core": "npm:^7.23.2" "@babel/plugin-proposal-decorators": "npm:^7.22.7" @@ -8882,19 +8709,20 @@ __metadata: "@babel/preset-env": "npm:^7.23.2" "@babel/preset-typescript": "npm:^7.22.5" "@babel/runtime": "npm:^7.22.6" - "@nrwl/js": "npm:19.1.1" - "@nx/devkit": "npm:19.1.1" - "@nx/workspace": "npm:19.1.1" + "@nx/devkit": "npm:20.1.0" + "@nx/workspace": "npm:20.1.0" + "@zkochan/js-yaml": "npm:0.0.7" babel-plugin-const-enum: "npm:^1.0.1" babel-plugin-macros: "npm:^2.8.0" babel-plugin-transform-typescript-metadata: "npm:^0.3.1" chalk: "npm:^4.1.0" columnify: "npm:^1.6.0" detect-port: "npm:^1.5.1" + enquirer: "npm:~2.3.6" fast-glob: "npm:3.2.7" - fs-extra: "npm:^11.1.0" ignore: "npm:^5.0.4" js-tokens: "npm:^4.0.0" + jsonc-parser: "npm:3.2.0" minimatch: "npm:9.0.3" npm-package-arg: "npm:11.0.1" npm-run-path: "npm:^4.0.1" @@ -8909,175 +8737,167 @@ __metadata: peerDependenciesMeta: verdaccio: optional: true - checksum: 10c0/e1e19b879989506dcf72f5f8504e58ad39bc5defc66dc037b1102ddc06247684f80aa2b2d0e1032f1eb10b8bd7261d3d207df94f66cdefd1d9c443fe937fec62 - languageName: node - linkType: hard - -"@nx/linter@npm:19.1.1": - version: 19.1.1 - resolution: "@nx/linter@npm:19.1.1" - dependencies: - "@nx/eslint": "npm:19.1.1" - checksum: 10c0/ecab73602c7a05cdaac5e2024ad3020256d6b72d47cc8fa41d05708e60678c941b8fc54c76510ae395d9df99f44778dfdd52710233dc87cc684ec1dcb7489fd2 + checksum: 10c0/6665feb40d2d33ca0058b020ace81177faf6d0e2b808bd53650bd06a6fc7427919738105215fc523c478e3d6f30c677a6f6f52a7b48ff91b0da7a72f0fe171b4 languageName: node linkType: hard -"@nx/node@npm:19.1.1": - version: 19.1.1 - resolution: "@nx/node@npm:19.1.1" +"@nx/node@npm:20.1.0": + version: 20.1.0 + resolution: "@nx/node@npm:20.1.0" dependencies: - "@nrwl/node": "npm:19.1.1" - "@nx/devkit": "npm:19.1.1" - "@nx/eslint": "npm:19.1.1" - "@nx/jest": "npm:19.1.1" - "@nx/js": "npm:19.1.1" + "@nx/devkit": "npm:20.1.0" + "@nx/eslint": "npm:20.1.0" + "@nx/jest": "npm:20.1.0" + "@nx/js": "npm:20.1.0" tslib: "npm:^2.3.0" - checksum: 10c0/5dd7ee58916c6f776747bc080d37620f3bdb0dfddd774e1cc6b786a3ce0f6124a466801551ae70979198eee6d447f7240f0ee38e727c499bf1701094035ff776 + checksum: 10c0/ee922def3112c57e19d5da226e074fe6870ce7db5e0e23238021307eeb81ec2ae85fdb2cb407a5a423cd0e498cc6c144571019c35871ebdc332c4e8d6170f35c languageName: node linkType: hard -"@nx/nx-darwin-arm64@npm:19.1.1": - version: 19.1.1 - resolution: "@nx/nx-darwin-arm64@npm:19.1.1" +"@nx/nx-darwin-arm64@npm:20.1.0": + version: 20.1.0 + resolution: "@nx/nx-darwin-arm64@npm:20.1.0" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"@nx/nx-darwin-x64@npm:19.1.1": - version: 19.1.1 - resolution: "@nx/nx-darwin-x64@npm:19.1.1" +"@nx/nx-darwin-x64@npm:20.1.0": + version: 20.1.0 + resolution: "@nx/nx-darwin-x64@npm:20.1.0" conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"@nx/nx-freebsd-x64@npm:19.1.1": - version: 19.1.1 - resolution: "@nx/nx-freebsd-x64@npm:19.1.1" +"@nx/nx-freebsd-x64@npm:20.1.0": + version: 20.1.0 + resolution: "@nx/nx-freebsd-x64@npm:20.1.0" conditions: os=freebsd & cpu=x64 languageName: node linkType: hard -"@nx/nx-linux-arm-gnueabihf@npm:19.1.1": - version: 19.1.1 - resolution: "@nx/nx-linux-arm-gnueabihf@npm:19.1.1" +"@nx/nx-linux-arm-gnueabihf@npm:20.1.0": + version: 20.1.0 + resolution: "@nx/nx-linux-arm-gnueabihf@npm:20.1.0" conditions: os=linux & cpu=arm languageName: node linkType: hard -"@nx/nx-linux-arm64-gnu@npm:19.1.1": - version: 19.1.1 - resolution: "@nx/nx-linux-arm64-gnu@npm:19.1.1" +"@nx/nx-linux-arm64-gnu@npm:20.1.0": + version: 20.1.0 + resolution: "@nx/nx-linux-arm64-gnu@npm:20.1.0" conditions: os=linux & cpu=arm64 & libc=glibc languageName: node linkType: hard -"@nx/nx-linux-arm64-musl@npm:19.1.1": - version: 19.1.1 - resolution: "@nx/nx-linux-arm64-musl@npm:19.1.1" +"@nx/nx-linux-arm64-musl@npm:20.1.0": + version: 20.1.0 + resolution: "@nx/nx-linux-arm64-musl@npm:20.1.0" conditions: os=linux & cpu=arm64 & libc=musl languageName: node linkType: hard -"@nx/nx-linux-x64-gnu@npm:19.1.1": - version: 19.1.1 - resolution: "@nx/nx-linux-x64-gnu@npm:19.1.1" +"@nx/nx-linux-x64-gnu@npm:20.1.0": + version: 20.1.0 + resolution: "@nx/nx-linux-x64-gnu@npm:20.1.0" conditions: os=linux & cpu=x64 & libc=glibc languageName: node linkType: hard -"@nx/nx-linux-x64-musl@npm:19.1.1": - version: 19.1.1 - resolution: "@nx/nx-linux-x64-musl@npm:19.1.1" +"@nx/nx-linux-x64-musl@npm:20.1.0": + version: 20.1.0 + resolution: "@nx/nx-linux-x64-musl@npm:20.1.0" conditions: os=linux & cpu=x64 & libc=musl languageName: node linkType: hard -"@nx/nx-win32-arm64-msvc@npm:19.1.1": - version: 19.1.1 - resolution: "@nx/nx-win32-arm64-msvc@npm:19.1.1" +"@nx/nx-win32-arm64-msvc@npm:20.1.0": + version: 20.1.0 + resolution: "@nx/nx-win32-arm64-msvc@npm:20.1.0" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard -"@nx/nx-win32-x64-msvc@npm:19.1.1": - version: 19.1.1 - resolution: "@nx/nx-win32-x64-msvc@npm:19.1.1" +"@nx/nx-win32-x64-msvc@npm:20.1.0": + version: 20.1.0 + resolution: "@nx/nx-win32-x64-msvc@npm:20.1.0" conditions: os=win32 & cpu=x64 languageName: node linkType: hard -"@nx/web@npm:19.1.1": - version: 19.1.1 - resolution: "@nx/web@npm:19.1.1" +"@nx/web@npm:20.1.0": + version: 20.1.0 + resolution: "@nx/web@npm:20.1.0" dependencies: - "@nrwl/web": "npm:19.1.1" - "@nx/devkit": "npm:19.1.1" - "@nx/js": "npm:19.1.1" - chalk: "npm:^4.1.0" + "@nx/devkit": "npm:20.1.0" + "@nx/js": "npm:20.1.0" detect-port: "npm:^1.5.1" http-server: "npm:^14.1.0" + picocolors: "npm:^1.1.0" tslib: "npm:^2.3.0" - checksum: 10c0/0f2e5826aa3d9e49f8d222600023bad6df33c1913a04b8deb168b39604d98782c4447efa37404e9bcb3b080389dfe29548012a5b11ed42b3282e2e7ae3005b3f + checksum: 10c0/8f1f59a1f58186b062a21267da313d2f796191d9b9085e60e9efe42c71dc6fc6db5d8afd15ebba97ce3e6bc33bd08bc97ca975fcd310a3138c0915127dfdde67 languageName: node linkType: hard -"@nx/webpack@npm:19.1.1": - version: 19.1.1 - resolution: "@nx/webpack@npm:19.1.1" +"@nx/webpack@npm:20.1.0": + version: 20.1.0 + resolution: "@nx/webpack@npm:20.1.0" dependencies: "@babel/core": "npm:^7.23.2" - "@nrwl/webpack": "npm:19.1.1" - "@nx/devkit": "npm:19.1.1" - "@nx/js": "npm:19.1.1" + "@module-federation/enhanced": "npm:^0.6.0" + "@module-federation/sdk": "npm:^0.6.0" + "@nx/devkit": "npm:20.1.0" + "@nx/js": "npm:20.1.0" + "@phenomnomnominal/tsquery": "npm:~5.0.1" ajv: "npm:^8.12.0" autoprefixer: "npm:^10.4.9" babel-loader: "npm:^9.1.2" browserslist: "npm:^4.21.4" - chalk: "npm:^4.1.0" copy-webpack-plugin: "npm:^10.2.4" css-loader: "npm:^6.4.0" css-minimizer-webpack-plugin: "npm:^5.0.0" + express: "npm:^4.19.2" fork-ts-checker-webpack-plugin: "npm:7.2.13" + http-proxy-middleware: "npm:^3.0.3" less: "npm:4.1.3" less-loader: "npm:11.1.0" license-webpack-plugin: "npm:^4.0.2" loader-utils: "npm:^2.0.3" mini-css-extract-plugin: "npm:~2.4.7" parse5: "npm:4.0.0" - postcss: "npm:^8.4.14" + picocolors: "npm:^1.1.0" + postcss: "npm:^8.4.38" postcss-import: "npm:~14.1.0" postcss-loader: "npm:^6.1.1" rxjs: "npm:^7.8.0" sass: "npm:^1.42.1" sass-loader: "npm:^12.2.0" - source-map-loader: "npm:^3.0.0" + source-map-loader: "npm:^5.0.0" style-loader: "npm:^3.3.0" - stylus: "npm:^0.59.0" + stylus: "npm:^0.64.0" stylus-loader: "npm:^7.1.0" terser-webpack-plugin: "npm:^5.3.3" ts-loader: "npm:^9.3.1" tsconfig-paths-webpack-plugin: "npm:4.0.0" tslib: "npm:^2.3.0" webpack: "npm:^5.80.0" - webpack-dev-server: "npm:^4.9.3" + webpack-dev-server: "npm:^5.0.4" webpack-node-externals: "npm:^3.0.0" webpack-subresource-integrity: "npm:^5.1.0" - checksum: 10c0/fe56efd4178991ced4ccebf10fc72edfde3dbf373d287de9605fb718db518da57fe0e6df8573512cad039b01f5e1292bf0f1969e07872fe4a25ec5fa791161a4 + checksum: 10c0/0b3af59f448c2334e4e81f7ad5614341c006c5c4049b64a425819b95db2f036842b61572be7ff408b2307766024462608db09d39c0d5153b04a1cec3ff322779 languageName: node linkType: hard -"@nx/workspace@npm:19.1.1": - version: 19.1.1 - resolution: "@nx/workspace@npm:19.1.1" +"@nx/workspace@npm:20.1.0": + version: 20.1.0 + resolution: "@nx/workspace@npm:20.1.0" dependencies: - "@nrwl/workspace": "npm:19.1.1" - "@nx/devkit": "npm:19.1.1" + "@nx/devkit": "npm:20.1.0" chalk: "npm:^4.1.0" enquirer: "npm:~2.3.6" - nx: "npm:19.1.1" + nx: "npm:20.1.0" tslib: "npm:^2.3.0" yargs-parser: "npm:21.1.1" - checksum: 10c0/45225db68087e2b039c638420b46c06a70630354aa9a93377a895da5dff202162f8ac9f3e347b6a61be810a266aa354c5b033558f61cdf521c48ccf4841f9877 + checksum: 10c0/3cd92a8773160c026edd79a9207d176edea470723c85c63713a59574f846ce0dcda9d0483c4c6a3c3f6d497304fdfcbd2c9f958fa97a036344c20c34e0c87eb1 languageName: node linkType: hard @@ -9189,6 +9009,20 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-android-arm-eabi@npm:4.22.4": + version: 4.22.4 + resolution: "@rollup/rollup-android-arm-eabi@npm:4.22.4" + conditions: os=android & cpu=arm + languageName: node + linkType: hard + +"@rollup/rollup-android-arm-eabi@npm:4.25.0": + version: 4.25.0 + resolution: "@rollup/rollup-android-arm-eabi@npm:4.25.0" + conditions: os=android & cpu=arm + languageName: node + linkType: hard + "@rollup/rollup-android-arm64@npm:4.18.0": version: 4.18.0 resolution: "@rollup/rollup-android-arm64@npm:4.18.0" @@ -9196,6 +9030,20 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-android-arm64@npm:4.22.4": + version: 4.22.4 + resolution: "@rollup/rollup-android-arm64@npm:4.22.4" + conditions: os=android & cpu=arm64 + languageName: node + linkType: hard + +"@rollup/rollup-android-arm64@npm:4.25.0": + version: 4.25.0 + resolution: "@rollup/rollup-android-arm64@npm:4.25.0" + conditions: os=android & cpu=arm64 + languageName: node + linkType: hard + "@rollup/rollup-darwin-arm64@npm:4.18.0": version: 4.18.0 resolution: "@rollup/rollup-darwin-arm64@npm:4.18.0" @@ -9203,6 +9051,20 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-darwin-arm64@npm:4.22.4": + version: 4.22.4 + resolution: "@rollup/rollup-darwin-arm64@npm:4.22.4" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + +"@rollup/rollup-darwin-arm64@npm:4.25.0": + version: 4.25.0 + resolution: "@rollup/rollup-darwin-arm64@npm:4.25.0" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + "@rollup/rollup-darwin-x64@npm:4.18.0": version: 4.18.0 resolution: "@rollup/rollup-darwin-x64@npm:4.18.0" @@ -9210,6 +9072,34 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-darwin-x64@npm:4.22.4": + version: 4.22.4 + resolution: "@rollup/rollup-darwin-x64@npm:4.22.4" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + +"@rollup/rollup-darwin-x64@npm:4.25.0": + version: 4.25.0 + resolution: "@rollup/rollup-darwin-x64@npm:4.25.0" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + +"@rollup/rollup-freebsd-arm64@npm:4.25.0": + version: 4.25.0 + resolution: "@rollup/rollup-freebsd-arm64@npm:4.25.0" + conditions: os=freebsd & cpu=arm64 + languageName: node + linkType: hard + +"@rollup/rollup-freebsd-x64@npm:4.25.0": + version: 4.25.0 + resolution: "@rollup/rollup-freebsd-x64@npm:4.25.0" + conditions: os=freebsd & cpu=x64 + languageName: node + linkType: hard + "@rollup/rollup-linux-arm-gnueabihf@npm:4.18.0": version: 4.18.0 resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.18.0" @@ -9217,6 +9107,20 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-linux-arm-gnueabihf@npm:4.22.4": + version: 4.22.4 + resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.22.4" + conditions: os=linux & cpu=arm & libc=glibc + languageName: node + linkType: hard + +"@rollup/rollup-linux-arm-gnueabihf@npm:4.25.0": + version: 4.25.0 + resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.25.0" + conditions: os=linux & cpu=arm & libc=glibc + languageName: node + linkType: hard + "@rollup/rollup-linux-arm-musleabihf@npm:4.18.0": version: 4.18.0 resolution: "@rollup/rollup-linux-arm-musleabihf@npm:4.18.0" @@ -9224,6 +9128,20 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-linux-arm-musleabihf@npm:4.22.4": + version: 4.22.4 + resolution: "@rollup/rollup-linux-arm-musleabihf@npm:4.22.4" + conditions: os=linux & cpu=arm & libc=musl + languageName: node + linkType: hard + +"@rollup/rollup-linux-arm-musleabihf@npm:4.25.0": + version: 4.25.0 + resolution: "@rollup/rollup-linux-arm-musleabihf@npm:4.25.0" + conditions: os=linux & cpu=arm & libc=musl + languageName: node + linkType: hard + "@rollup/rollup-linux-arm64-gnu@npm:4.18.0": version: 4.18.0 resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.18.0" @@ -9231,6 +9149,20 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-linux-arm64-gnu@npm:4.22.4": + version: 4.22.4 + resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.22.4" + conditions: os=linux & cpu=arm64 & libc=glibc + languageName: node + linkType: hard + +"@rollup/rollup-linux-arm64-gnu@npm:4.25.0": + version: 4.25.0 + resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.25.0" + conditions: os=linux & cpu=arm64 & libc=glibc + languageName: node + linkType: hard + "@rollup/rollup-linux-arm64-musl@npm:4.18.0": version: 4.18.0 resolution: "@rollup/rollup-linux-arm64-musl@npm:4.18.0" @@ -9238,6 +9170,20 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-linux-arm64-musl@npm:4.22.4": + version: 4.22.4 + resolution: "@rollup/rollup-linux-arm64-musl@npm:4.22.4" + conditions: os=linux & cpu=arm64 & libc=musl + languageName: node + linkType: hard + +"@rollup/rollup-linux-arm64-musl@npm:4.25.0": + version: 4.25.0 + resolution: "@rollup/rollup-linux-arm64-musl@npm:4.25.0" + conditions: os=linux & cpu=arm64 & libc=musl + languageName: node + linkType: hard + "@rollup/rollup-linux-powerpc64le-gnu@npm:4.18.0": version: 4.18.0 resolution: "@rollup/rollup-linux-powerpc64le-gnu@npm:4.18.0" @@ -9245,6 +9191,20 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-linux-powerpc64le-gnu@npm:4.22.4": + version: 4.22.4 + resolution: "@rollup/rollup-linux-powerpc64le-gnu@npm:4.22.4" + conditions: os=linux & cpu=ppc64 & libc=glibc + languageName: node + linkType: hard + +"@rollup/rollup-linux-powerpc64le-gnu@npm:4.25.0": + version: 4.25.0 + resolution: "@rollup/rollup-linux-powerpc64le-gnu@npm:4.25.0" + conditions: os=linux & cpu=ppc64 & libc=glibc + languageName: node + linkType: hard + "@rollup/rollup-linux-riscv64-gnu@npm:4.18.0": version: 4.18.0 resolution: "@rollup/rollup-linux-riscv64-gnu@npm:4.18.0" @@ -9252,9 +9212,37 @@ __metadata: languageName: node linkType: hard -"@rollup/rollup-linux-s390x-gnu@npm:4.18.0": - version: 4.18.0 - resolution: "@rollup/rollup-linux-s390x-gnu@npm:4.18.0" +"@rollup/rollup-linux-riscv64-gnu@npm:4.22.4": + version: 4.22.4 + resolution: "@rollup/rollup-linux-riscv64-gnu@npm:4.22.4" + conditions: os=linux & cpu=riscv64 & libc=glibc + languageName: node + linkType: hard + +"@rollup/rollup-linux-riscv64-gnu@npm:4.25.0": + version: 4.25.0 + resolution: "@rollup/rollup-linux-riscv64-gnu@npm:4.25.0" + conditions: os=linux & cpu=riscv64 & libc=glibc + languageName: node + linkType: hard + +"@rollup/rollup-linux-s390x-gnu@npm:4.18.0": + version: 4.18.0 + resolution: "@rollup/rollup-linux-s390x-gnu@npm:4.18.0" + conditions: os=linux & cpu=s390x & libc=glibc + languageName: node + linkType: hard + +"@rollup/rollup-linux-s390x-gnu@npm:4.22.4": + version: 4.22.4 + resolution: "@rollup/rollup-linux-s390x-gnu@npm:4.22.4" + conditions: os=linux & cpu=s390x & libc=glibc + languageName: node + linkType: hard + +"@rollup/rollup-linux-s390x-gnu@npm:4.25.0": + version: 4.25.0 + resolution: "@rollup/rollup-linux-s390x-gnu@npm:4.25.0" conditions: os=linux & cpu=s390x & libc=glibc languageName: node linkType: hard @@ -9266,6 +9254,20 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-linux-x64-gnu@npm:4.22.4": + version: 4.22.4 + resolution: "@rollup/rollup-linux-x64-gnu@npm:4.22.4" + conditions: os=linux & cpu=x64 & libc=glibc + languageName: node + linkType: hard + +"@rollup/rollup-linux-x64-gnu@npm:4.25.0": + version: 4.25.0 + resolution: "@rollup/rollup-linux-x64-gnu@npm:4.25.0" + conditions: os=linux & cpu=x64 & libc=glibc + languageName: node + linkType: hard + "@rollup/rollup-linux-x64-musl@npm:4.18.0": version: 4.18.0 resolution: "@rollup/rollup-linux-x64-musl@npm:4.18.0" @@ -9273,6 +9275,20 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-linux-x64-musl@npm:4.22.4": + version: 4.22.4 + resolution: "@rollup/rollup-linux-x64-musl@npm:4.22.4" + conditions: os=linux & cpu=x64 & libc=musl + languageName: node + linkType: hard + +"@rollup/rollup-linux-x64-musl@npm:4.25.0": + version: 4.25.0 + resolution: "@rollup/rollup-linux-x64-musl@npm:4.25.0" + conditions: os=linux & cpu=x64 & libc=musl + languageName: node + linkType: hard + "@rollup/rollup-win32-arm64-msvc@npm:4.18.0": version: 4.18.0 resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.18.0" @@ -9280,6 +9296,20 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-win32-arm64-msvc@npm:4.22.4": + version: 4.22.4 + resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.22.4" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + +"@rollup/rollup-win32-arm64-msvc@npm:4.25.0": + version: 4.25.0 + resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.25.0" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + "@rollup/rollup-win32-ia32-msvc@npm:4.18.0": version: 4.18.0 resolution: "@rollup/rollup-win32-ia32-msvc@npm:4.18.0" @@ -9287,6 +9317,20 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-win32-ia32-msvc@npm:4.22.4": + version: 4.22.4 + resolution: "@rollup/rollup-win32-ia32-msvc@npm:4.22.4" + conditions: os=win32 & cpu=ia32 + languageName: node + linkType: hard + +"@rollup/rollup-win32-ia32-msvc@npm:4.25.0": + version: 4.25.0 + resolution: "@rollup/rollup-win32-ia32-msvc@npm:4.25.0" + conditions: os=win32 & cpu=ia32 + languageName: node + linkType: hard + "@rollup/rollup-win32-x64-msvc@npm:4.18.0": version: 4.18.0 resolution: "@rollup/rollup-win32-x64-msvc@npm:4.18.0" @@ -9294,6 +9338,20 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-win32-x64-msvc@npm:4.22.4": + version: 4.22.4 + resolution: "@rollup/rollup-win32-x64-msvc@npm:4.22.4" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + +"@rollup/rollup-win32-x64-msvc@npm:4.25.0": + version: 4.25.0 + resolution: "@rollup/rollup-win32-x64-msvc@npm:4.25.0" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + "@rollup/wasm-node@npm:^4.18.0": version: 4.18.0 resolution: "@rollup/wasm-node@npm:4.18.0" @@ -9372,14 +9430,35 @@ __metadata: languageName: unknown linkType: soft -"@schematics/angular@npm:18.0.2": - version: 18.0.2 - resolution: "@schematics/angular@npm:18.0.2" +"@schematics/angular@npm:18.2.11": + version: 18.2.11 + resolution: "@schematics/angular@npm:18.2.11" + dependencies: + "@angular-devkit/core": "npm:18.2.11" + "@angular-devkit/schematics": "npm:18.2.11" + jsonc-parser: "npm:3.3.1" + dependenciesMeta: + esbuild: + built: true + puppeteer: + built: true + checksum: 10c0/f2fb598c83eb3857295439044f69d955f70a9df58e19401e51ac707500bf7b2264596fdbcb8ddc49aa12c6f0d8ff712f06f14121d9c7ccc7ace5719a3d6cb0fd + languageName: node + linkType: hard + +"@schematics/angular@npm:18.2.9": + version: 18.2.9 + resolution: "@schematics/angular@npm:18.2.9" dependencies: - "@angular-devkit/core": "npm:18.0.2" - "@angular-devkit/schematics": "npm:18.0.2" - jsonc-parser: "npm:3.2.1" - checksum: 10c0/5d3c4d86ef6c29e4722235f057ebbafb3c6467450cf42d2766c42f8261d10fef7d66afc2a1d9f00b317566652c931d06ca4a7dd2172835f61f7891cc7ebce94f + "@angular-devkit/core": "npm:18.2.9" + "@angular-devkit/schematics": "npm:18.2.9" + jsonc-parser: "npm:3.3.1" + dependenciesMeta: + esbuild: + built: true + puppeteer: + built: true + checksum: 10c0/da504e2144e3ee6a2c1708140362f4a91ed820208354c4cb88b606a5652d80a1855de1fe4160a2a2b88a398bbd69ed9006cae42b9d2f7f9a6ab4eaa7c70bf763 languageName: node linkType: hard @@ -9483,6 +9562,13 @@ __metadata: languageName: node linkType: hard +"@sindresorhus/merge-streams@npm:^2.1.0": + version: 2.3.0 + resolution: "@sindresorhus/merge-streams@npm:2.3.0" + checksum: 10c0/69ee906f3125fb2c6bb6ec5cdd84e8827d93b49b3892bce8b62267116cc7e197b5cccf20c160a1d32c26014ecd14470a72a5e3ee37a58f1d6dadc0db1ccf3894 + languageName: node + linkType: hard + "@sinonjs/commons@npm:^2.0.0": version: 2.0.0 resolution: "@sinonjs/commons@npm:2.0.0" @@ -9675,129 +9761,129 @@ __metadata: languageName: node linkType: hard -"@swc-node/core@npm:^1.12.0": - version: 1.12.0 - resolution: "@swc-node/core@npm:1.12.0" +"@swc-node/core@npm:^1.13.1": + version: 1.13.3 + resolution: "@swc-node/core@npm:1.13.3" peerDependencies: - "@swc/core": ">= 1.3" + "@swc/core": ">= 1.4.13" "@swc/types": ">= 0.1" - checksum: 10c0/b7eb65de202e76ca039556c774a638daa9b6ccaf2598b9be861000a5cf3f9260b106dcfedcbe3f80acb7675b03e5d37b20cc52575b3cb5fd770c50b939976417 + checksum: 10c0/01f69d6124691569cedd2e6d0c6d3e33ab96d8fca6607780d64359c884750cfd77541e112e545cf37d9f0ee5fdccd57fbf9eb07cfd0ae26f8cca88c974e82e08 languageName: node linkType: hard -"@swc-node/register@npm:1.8.0": - version: 1.8.0 - resolution: "@swc-node/register@npm:1.8.0" +"@swc-node/register@npm:1.9.2": + version: 1.9.2 + resolution: "@swc-node/register@npm:1.9.2" dependencies: - "@swc-node/core": "npm:^1.12.0" - "@swc-node/sourcemap-support": "npm:^0.4.0" + "@swc-node/core": "npm:^1.13.1" + "@swc-node/sourcemap-support": "npm:^0.5.0" colorette: "npm:^2.0.20" debug: "npm:^4.3.4" pirates: "npm:^4.0.6" tslib: "npm:^2.6.2" peerDependencies: - "@swc/core": ">= 1.3" + "@swc/core": ">= 1.4.13" typescript: ">= 4.3" - checksum: 10c0/82181150a977b05d7eaf7b02c218954342e930c8700482bc71479b0dd1649f0621086e79ae67e4026dbc03b8096260af1cdae0cf40778fcc62efbeaa3bd9ca4b + checksum: 10c0/9169461866b5081074e4ca96256776d0dc586e979ec0f589115daba6959628cdad7233ad7a66816c0fc412dad1c0b83a32fc271f8e46dd19a82f9e4843198a2f languageName: node linkType: hard -"@swc-node/sourcemap-support@npm:^0.4.0": - version: 0.4.0 - resolution: "@swc-node/sourcemap-support@npm:0.4.0" +"@swc-node/sourcemap-support@npm:^0.5.0": + version: 0.5.1 + resolution: "@swc-node/sourcemap-support@npm:0.5.1" dependencies: source-map-support: "npm:^0.5.21" - tslib: "npm:^2.6.2" - checksum: 10c0/b5130e17ee255fbb04233ce0ab39480c863850ce12aafbc7e784104c10403b19a7339646abb71dbb1659b3ffd53608a48e86f174112b946ba31fd7acdb811dd0 + tslib: "npm:^2.6.3" + checksum: 10c0/5ac7e701a0683e0e6760c8078d4bb2829daa78c4946dcc729c75588b87112afc7352f7c8cd90cea9417b5f7494418d374a354795344c4cf81152bce3d5a17853 languageName: node linkType: hard -"@swc/core-darwin-arm64@npm:1.3.106": - version: 1.3.106 - resolution: "@swc/core-darwin-arm64@npm:1.3.106" +"@swc/core-darwin-arm64@npm:1.5.7": + version: 1.5.7 + resolution: "@swc/core-darwin-arm64@npm:1.5.7" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"@swc/core-darwin-x64@npm:1.3.106": - version: 1.3.106 - resolution: "@swc/core-darwin-x64@npm:1.3.106" +"@swc/core-darwin-x64@npm:1.5.7": + version: 1.5.7 + resolution: "@swc/core-darwin-x64@npm:1.5.7" conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"@swc/core-linux-arm-gnueabihf@npm:1.3.106": - version: 1.3.106 - resolution: "@swc/core-linux-arm-gnueabihf@npm:1.3.106" +"@swc/core-linux-arm-gnueabihf@npm:1.5.7": + version: 1.5.7 + resolution: "@swc/core-linux-arm-gnueabihf@npm:1.5.7" conditions: os=linux & cpu=arm languageName: node linkType: hard -"@swc/core-linux-arm64-gnu@npm:1.3.106": - version: 1.3.106 - resolution: "@swc/core-linux-arm64-gnu@npm:1.3.106" +"@swc/core-linux-arm64-gnu@npm:1.5.7": + version: 1.5.7 + resolution: "@swc/core-linux-arm64-gnu@npm:1.5.7" conditions: os=linux & cpu=arm64 & libc=glibc languageName: node linkType: hard -"@swc/core-linux-arm64-musl@npm:1.3.106": - version: 1.3.106 - resolution: "@swc/core-linux-arm64-musl@npm:1.3.106" +"@swc/core-linux-arm64-musl@npm:1.5.7": + version: 1.5.7 + resolution: "@swc/core-linux-arm64-musl@npm:1.5.7" conditions: os=linux & cpu=arm64 & libc=musl languageName: node linkType: hard -"@swc/core-linux-x64-gnu@npm:1.3.106": - version: 1.3.106 - resolution: "@swc/core-linux-x64-gnu@npm:1.3.106" +"@swc/core-linux-x64-gnu@npm:1.5.7": + version: 1.5.7 + resolution: "@swc/core-linux-x64-gnu@npm:1.5.7" conditions: os=linux & cpu=x64 & libc=glibc languageName: node linkType: hard -"@swc/core-linux-x64-musl@npm:1.3.106": - version: 1.3.106 - resolution: "@swc/core-linux-x64-musl@npm:1.3.106" +"@swc/core-linux-x64-musl@npm:1.5.7": + version: 1.5.7 + resolution: "@swc/core-linux-x64-musl@npm:1.5.7" conditions: os=linux & cpu=x64 & libc=musl languageName: node linkType: hard -"@swc/core-win32-arm64-msvc@npm:1.3.106": - version: 1.3.106 - resolution: "@swc/core-win32-arm64-msvc@npm:1.3.106" +"@swc/core-win32-arm64-msvc@npm:1.5.7": + version: 1.5.7 + resolution: "@swc/core-win32-arm64-msvc@npm:1.5.7" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard -"@swc/core-win32-ia32-msvc@npm:1.3.106": - version: 1.3.106 - resolution: "@swc/core-win32-ia32-msvc@npm:1.3.106" +"@swc/core-win32-ia32-msvc@npm:1.5.7": + version: 1.5.7 + resolution: "@swc/core-win32-ia32-msvc@npm:1.5.7" conditions: os=win32 & cpu=ia32 languageName: node linkType: hard -"@swc/core-win32-x64-msvc@npm:1.3.106": - version: 1.3.106 - resolution: "@swc/core-win32-x64-msvc@npm:1.3.106" +"@swc/core-win32-x64-msvc@npm:1.5.7": + version: 1.5.7 + resolution: "@swc/core-win32-x64-msvc@npm:1.5.7" conditions: os=win32 & cpu=x64 languageName: node linkType: hard -"@swc/core@npm:~1.3.85": - version: 1.3.106 - resolution: "@swc/core@npm:1.3.106" +"@swc/core@npm:1.5.7": + version: 1.5.7 + resolution: "@swc/core@npm:1.5.7" dependencies: - "@swc/core-darwin-arm64": "npm:1.3.106" - "@swc/core-darwin-x64": "npm:1.3.106" - "@swc/core-linux-arm-gnueabihf": "npm:1.3.106" - "@swc/core-linux-arm64-gnu": "npm:1.3.106" - "@swc/core-linux-arm64-musl": "npm:1.3.106" - "@swc/core-linux-x64-gnu": "npm:1.3.106" - "@swc/core-linux-x64-musl": "npm:1.3.106" - "@swc/core-win32-arm64-msvc": "npm:1.3.106" - "@swc/core-win32-ia32-msvc": "npm:1.3.106" - "@swc/core-win32-x64-msvc": "npm:1.3.106" - "@swc/counter": "npm:^0.1.1" - "@swc/types": "npm:^0.1.5" + "@swc/core-darwin-arm64": "npm:1.5.7" + "@swc/core-darwin-x64": "npm:1.5.7" + "@swc/core-linux-arm-gnueabihf": "npm:1.5.7" + "@swc/core-linux-arm64-gnu": "npm:1.5.7" + "@swc/core-linux-arm64-musl": "npm:1.5.7" + "@swc/core-linux-x64-gnu": "npm:1.5.7" + "@swc/core-linux-x64-musl": "npm:1.5.7" + "@swc/core-win32-arm64-msvc": "npm:1.5.7" + "@swc/core-win32-ia32-msvc": "npm:1.5.7" + "@swc/core-win32-x64-msvc": "npm:1.5.7" + "@swc/counter": "npm:^0.1.2" + "@swc/types": "npm:0.1.7" peerDependencies: "@swc/helpers": ^0.5.0 dependenciesMeta: @@ -9824,21 +9910,23 @@ __metadata: peerDependenciesMeta: "@swc/helpers": optional: true - checksum: 10c0/6bb5ce3282c7d6cedf269391a926f6b2f029582c458ee6e7a32cce6927df5170d5383ca2cbe4f5360dc8237a6bcb6117a2c07cb9678c359879370c40599a57ca + checksum: 10c0/83ab96bee5d448e580d8a6c8c1d1fbfdfaf5561f8904140122e49c428c2336790d31e7bdcdf610ce8f20c7f682785263d2ebab7cb56c2dcb5ea46be54eab2c03 languageName: node linkType: hard -"@swc/counter@npm:^0.1.1": - version: 0.1.2 - resolution: "@swc/counter@npm:0.1.2" - checksum: 10c0/18be012107d4ba1f79776c48d83391ca2159103d7d31a59ff52fcc8024db51b71c5f46714a9fb73981739bc8a38dc6f385a046b71cc08f6043f3c47f5c409eab +"@swc/counter@npm:^0.1.2, @swc/counter@npm:^0.1.3": + version: 0.1.3 + resolution: "@swc/counter@npm:0.1.3" + checksum: 10c0/8424f60f6bf8694cfd2a9bca45845bce29f26105cda8cf19cdb9fd3e78dc6338699e4db77a89ae449260bafa1cc6bec307e81e7fb96dbf7dcfce0eea55151356 languageName: node linkType: hard -"@swc/types@npm:^0.1.5": - version: 0.1.5 - resolution: "@swc/types@npm:0.1.5" - checksum: 10c0/b35f93fe896a2240f6f10544e408f9648c2bd4bcff9bd8d022d9a6942d31cf859f86119fb0bbb04a12eefa1f6a6745ffc7d18f3a490d76d7b6a074a7c9608144 +"@swc/types@npm:0.1.7": + version: 0.1.7 + resolution: "@swc/types@npm:0.1.7" + dependencies: + "@swc/counter": "npm:^0.1.3" + checksum: 10c0/da7c542de0a44b85a98139db03920448e86309d28ad9e9335f91b4025e5f32ae4fbbfdd0f287330fb0de737e7c5ec4f64ade0fc5fffea6c2fd9ac681b1e97bea languageName: node linkType: hard @@ -9937,6 +10025,15 @@ __metadata: languageName: node linkType: hard +"@tybys/wasm-util@npm:^0.9.0": + version: 0.9.0 + resolution: "@tybys/wasm-util@npm:0.9.0" + dependencies: + tslib: "npm:^2.4.0" + checksum: 10c0/f9fde5c554455019f33af6c8215f1a1435028803dc2a2825b077d812bed4209a1a64444a4ca0ce2ea7e1175c8d88e2f9173a36a33c199e8a5c671aa31de8242d + languageName: node + linkType: hard + "@types/babel__core@npm:^7.1.14": version: 7.20.0 resolution: "@types/babel__core@npm:7.20.0" @@ -10086,6 +10183,16 @@ __metadata: languageName: node linkType: hard +"@types/eslint-scope@npm:^3.7.7": + version: 3.7.7 + resolution: "@types/eslint-scope@npm:3.7.7" + dependencies: + "@types/eslint": "npm:*" + "@types/estree": "npm:*" + checksum: 10c0/a0ecbdf2f03912679440550817ff77ef39a30fa8bfdacaf6372b88b1f931828aec392f52283240f0d648cf3055c5ddc564544a626bcf245f3d09fcb099ebe3cc + languageName: node + linkType: hard + "@types/eslint@npm:*": version: 8.37.0 resolution: "@types/eslint@npm:8.37.0" @@ -10110,6 +10217,13 @@ __metadata: languageName: node linkType: hard +"@types/estree@npm:1.0.6, @types/estree@npm:^1.0.6": + version: 1.0.6 + resolution: "@types/estree@npm:1.0.6" + checksum: 10c0/cdfd751f6f9065442cd40957c07fd80361c962869aa853c1c2fd03e101af8b9389d8ff4955a43a6fcfa223dd387a089937f95be0f3eec21ca527039fd2d9859a + languageName: node + linkType: hard + "@types/estree@npm:^0.0.51": version: 0.0.51 resolution: "@types/estree@npm:0.0.51" @@ -10200,6 +10314,15 @@ __metadata: languageName: node linkType: hard +"@types/http-proxy@npm:^1.17.15": + version: 1.17.15 + resolution: "@types/http-proxy@npm:1.17.15" + dependencies: + "@types/node": "npm:*" + checksum: 10c0/e2bf2fcdf23c88141b8d2c85ed5e5418b62ef78285884a2b5a717af55f4d9062136aa475489d10292093343df58fb81975f34bebd6b9df322288fd9821cbee07 + languageName: node + linkType: hard + "@types/http-proxy@npm:^1.17.8": version: 1.17.10 resolution: "@types/http-proxy@npm:1.17.10" @@ -10234,13 +10357,13 @@ __metadata: languageName: node linkType: hard -"@types/jest@npm:^29.4.0": - version: 29.5.3 - resolution: "@types/jest@npm:29.5.3" +"@types/jest@npm:29.5.14": + version: 29.5.14 + resolution: "@types/jest@npm:29.5.14" dependencies: expect: "npm:^29.0.0" pretty-format: "npm:^29.0.0" - checksum: 10c0/ba5a28569368db62eeff85ea53661c7dff79a5be739a59926c37868888cc69f8b7d0c7c6209139ecca5b83056843ba67fa764f7e7fc9c8d1c4e1f80351ede0f4 + checksum: 10c0/18e0712d818890db8a8dab3d91e9ea9f7f19e3f83c2e50b312f557017dc81466207a71f3ed79cf4428e813ba939954fa26ffa0a9a7f153181ba174581b1c2aed languageName: node linkType: hard @@ -10262,13 +10385,6 @@ __metadata: languageName: node linkType: hard -"@types/json-schema@npm:^7.0.12": - version: 7.0.15 - resolution: "@types/json-schema@npm:7.0.15" - checksum: 10c0/a996a745e6c5d60292f36731dd41341339d4eeed8180bb09226e5c8d23759067692b1d88e5d91d72ee83dfc00d3aca8e7bd43ea120516c17922cbcb7c3e252db - languageName: node - linkType: hard - "@types/keyv@npm:^3.1.1": version: 3.1.4 resolution: "@types/keyv@npm:3.1.4" @@ -10324,6 +10440,15 @@ __metadata: languageName: node linkType: hard +"@types/mute-stream@npm:^0.0.4": + version: 0.0.4 + resolution: "@types/mute-stream@npm:0.0.4" + dependencies: + "@types/node": "npm:*" + checksum: 10c0/944730fd7b398c5078de3c3d4d0afeec8584283bc694da1803fdfca14149ea385e18b1b774326f1601baf53898ce6d121a952c51eb62d188ef6fcc41f725c0dc + languageName: node + linkType: hard + "@types/node-forge@npm:^1.3.0": version: 1.3.11 resolution: "@types/node-forge@npm:1.3.11" @@ -10365,6 +10490,15 @@ __metadata: languageName: node linkType: hard +"@types/node@npm:^22.5.5": + version: 22.9.0 + resolution: "@types/node@npm:22.9.0" + dependencies: + undici-types: "npm:~6.19.8" + checksum: 10c0/3f46cbe0a49bab4ba30494025e4c8a6e699b98ac922857aa1f0209ce11a1313ee46e6808b8f13fe5b8b960a9d7796b77c8d542ad4e9810e85ef897d5593b5d51 + languageName: node + linkType: hard + "@types/normalize-package-data@npm:^2.4.1": version: 2.4.4 resolution: "@types/normalize-package-data@npm:2.4.4" @@ -10503,10 +10637,10 @@ __metadata: languageName: node linkType: hard -"@types/semver@npm:^7.5.0": - version: 7.5.5 - resolution: "@types/semver@npm:7.5.5" - checksum: 10c0/bb1b525221d93c9e7b45914af5ed1729a5bfdfa80927d6b02bcb4550ff7015f8c713152c32cb679ffcc79e77c0dda66d1f972ff5ee8d2205336729c51198bb18 +"@types/semver@npm:7.5.8": + version: 7.5.8 + resolution: "@types/semver@npm:7.5.8" + checksum: 10c0/8663ff927234d1c5fcc04b33062cb2b9fcfbe0f5f351ed26c4d1e1581657deebd506b41ff7fdf89e787e3d33ce05854bc01686379b89e9c49b564c4cfa988efa languageName: node linkType: hard @@ -10612,6 +10746,13 @@ __metadata: languageName: node linkType: hard +"@types/wrap-ansi@npm:^3.0.0": + version: 3.0.0 + resolution: "@types/wrap-ansi@npm:3.0.0" + checksum: 10c0/8d8f53363f360f38135301a06b596c295433ad01debd082078c33c6ed98b05a5c8fe8853a88265432126096084f4a135ec1564e3daad631b83296905509f90b3 + languageName: node + linkType: hard + "@types/ws@npm:^8.5.1": version: 8.5.4 resolution: "@types/ws@npm:8.5.4" @@ -10655,46 +10796,44 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/eslint-plugin@npm:7.4.0": - version: 7.4.0 - resolution: "@typescript-eslint/eslint-plugin@npm:7.4.0" +"@typescript-eslint/eslint-plugin@npm:8.15.0": + version: 8.15.0 + resolution: "@typescript-eslint/eslint-plugin@npm:8.15.0" dependencies: - "@eslint-community/regexpp": "npm:^4.5.1" - "@typescript-eslint/scope-manager": "npm:7.4.0" - "@typescript-eslint/type-utils": "npm:7.4.0" - "@typescript-eslint/utils": "npm:7.4.0" - "@typescript-eslint/visitor-keys": "npm:7.4.0" - debug: "npm:^4.3.4" + "@eslint-community/regexpp": "npm:^4.10.0" + "@typescript-eslint/scope-manager": "npm:8.15.0" + "@typescript-eslint/type-utils": "npm:8.15.0" + "@typescript-eslint/utils": "npm:8.15.0" + "@typescript-eslint/visitor-keys": "npm:8.15.0" graphemer: "npm:^1.4.0" - ignore: "npm:^5.2.4" + ignore: "npm:^5.3.1" natural-compare: "npm:^1.4.0" - semver: "npm:^7.5.4" - ts-api-utils: "npm:^1.0.1" + ts-api-utils: "npm:^1.3.0" peerDependencies: - "@typescript-eslint/parser": ^7.0.0 - eslint: ^8.56.0 + "@typescript-eslint/parser": ^8.0.0 || ^8.0.0-alpha.0 + eslint: ^8.57.0 || ^9.0.0 peerDependenciesMeta: typescript: optional: true - checksum: 10c0/840da6536da48e95602ee11450485bdba34d357f2b6dbbad4cc80d2491a3ee4eda35bd23345f4c9cfc0e3c3b05bd1257bb40ea32fe27b023252bb3177668c642 + checksum: 10c0/90ef10cc7d37a81abec4f4a3ffdfc3a0da8e99d949e03c75437e96e8ab2e896e34b85ab64718690180a7712581031b8611c5d8e7666d6ed4d60b9ace834d58e3 languageName: node linkType: hard -"@typescript-eslint/parser@npm:7.4.0": - version: 7.4.0 - resolution: "@typescript-eslint/parser@npm:7.4.0" +"@typescript-eslint/parser@npm:8.15.0": + version: 8.15.0 + resolution: "@typescript-eslint/parser@npm:8.15.0" dependencies: - "@typescript-eslint/scope-manager": "npm:7.4.0" - "@typescript-eslint/types": "npm:7.4.0" - "@typescript-eslint/typescript-estree": "npm:7.4.0" - "@typescript-eslint/visitor-keys": "npm:7.4.0" + "@typescript-eslint/scope-manager": "npm:8.15.0" + "@typescript-eslint/types": "npm:8.15.0" + "@typescript-eslint/typescript-estree": "npm:8.15.0" + "@typescript-eslint/visitor-keys": "npm:8.15.0" debug: "npm:^4.3.4" peerDependencies: - eslint: ^8.56.0 + eslint: ^8.57.0 || ^9.0.0 peerDependenciesMeta: typescript: optional: true - checksum: 10c0/70ae32d406685e83fc26b4f4d3eb90c59965e0ff4fec4fd89ecd3cb386376bedb75cd8c11691b9de4743243d61a7d17ae242fe6c689a7c443a8977bc9755700b + checksum: 10c0/19c25aea0dc51faa758701a5319a89950fd30494d9d645db8ced84fb60714c5e7d4b51fc4ee8ccb07ddefec88c51ee307ee7e49addd6330ee8f3e7ee9ba329fc languageName: node linkType: hard @@ -10708,40 +10847,65 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/scope-manager@npm:7.4.0": - version: 7.4.0 - resolution: "@typescript-eslint/scope-manager@npm:7.4.0" +"@typescript-eslint/scope-manager@npm:7.18.0": + version: 7.18.0 + resolution: "@typescript-eslint/scope-manager@npm:7.18.0" dependencies: - "@typescript-eslint/types": "npm:7.4.0" - "@typescript-eslint/visitor-keys": "npm:7.4.0" - checksum: 10c0/d1dddf6819d753063fbbcae2cd01e861d0162a9755c6c786901654ccb9d316ca1dcc5887a61fb70e72372db4c2e67c6d1890f09d8b0270971c18b48808765ba9 + "@typescript-eslint/types": "npm:7.18.0" + "@typescript-eslint/visitor-keys": "npm:7.18.0" + checksum: 10c0/038cd58c2271de146b3a594afe2c99290034033326d57ff1f902976022c8b0138ffd3cb893ae439ae41003b5e4bcc00cabf6b244ce40e8668f9412cc96d97b8e languageName: node linkType: hard -"@typescript-eslint/scope-manager@npm:8.0.0-alpha.20": - version: 8.0.0-alpha.20 - resolution: "@typescript-eslint/scope-manager@npm:8.0.0-alpha.20" +"@typescript-eslint/scope-manager@npm:8.14.0": + version: 8.14.0 + resolution: "@typescript-eslint/scope-manager@npm:8.14.0" dependencies: - "@typescript-eslint/types": "npm:8.0.0-alpha.20" - "@typescript-eslint/visitor-keys": "npm:8.0.0-alpha.20" - checksum: 10c0/9ac19f538a68dba8b1bff3798697b1e2c5dd0ed3d1f5e0279e9f1d6e7c32593b7a902617093dae34f2c80674dc3121614a26a0bd506a4cb3596ae719babbae61 + "@typescript-eslint/types": "npm:8.14.0" + "@typescript-eslint/visitor-keys": "npm:8.14.0" + checksum: 10c0/1e1295c6f9febadf63559aad328b23d960510ce6b4c9f74e10d881c3858fa7f1db767cd1af5272d2fe7c9c5c7daebee71854e6f841e413e5d70af282f6616e26 languageName: node linkType: hard -"@typescript-eslint/type-utils@npm:7.4.0, @typescript-eslint/type-utils@npm:^7.3.0": - version: 7.4.0 - resolution: "@typescript-eslint/type-utils@npm:7.4.0" +"@typescript-eslint/scope-manager@npm:8.15.0": + version: 8.15.0 + resolution: "@typescript-eslint/scope-manager@npm:8.15.0" + dependencies: + "@typescript-eslint/types": "npm:8.15.0" + "@typescript-eslint/visitor-keys": "npm:8.15.0" + checksum: 10c0/c27dfdcea4100cc2d6fa967f857067cbc93155b55e648f9f10887a1b9372bb76cf864f7c804f3fa48d7868d9461cdef10bcea3dab7637d5337e8aa8042dc08b9 + languageName: node + linkType: hard + +"@typescript-eslint/type-utils@npm:8.15.0": + version: 8.15.0 + resolution: "@typescript-eslint/type-utils@npm:8.15.0" dependencies: - "@typescript-eslint/typescript-estree": "npm:7.4.0" - "@typescript-eslint/utils": "npm:7.4.0" + "@typescript-eslint/typescript-estree": "npm:8.15.0" + "@typescript-eslint/utils": "npm:8.15.0" debug: "npm:^4.3.4" - ts-api-utils: "npm:^1.0.1" + ts-api-utils: "npm:^1.3.0" peerDependencies: - eslint: ^8.56.0 + eslint: ^8.57.0 || ^9.0.0 + peerDependenciesMeta: + typescript: + optional: true + checksum: 10c0/20f09c79c83b38a962cf7eff10d47a2c01bcc0bab7bf6d762594221cd89023ef8c7aec26751c47b524f53f5c8d38bba55a282529b3df82d5f5ab4350496316f9 + languageName: node + linkType: hard + +"@typescript-eslint/type-utils@npm:^8.0.0": + version: 8.14.0 + resolution: "@typescript-eslint/type-utils@npm:8.14.0" + dependencies: + "@typescript-eslint/typescript-estree": "npm:8.14.0" + "@typescript-eslint/utils": "npm:8.14.0" + debug: "npm:^4.3.4" + ts-api-utils: "npm:^1.3.0" peerDependenciesMeta: typescript: optional: true - checksum: 10c0/17cc4159095f978fe885dba7299fc3bdb89b74068f2c30aff55b3281a2920ab0a8f5ebb15276bd3dd22ae5504e15dc6ac5021c8f0a5c05cf3f5e514f90049c96 + checksum: 10c0/42616a664b38ca418e13504247e5e1bad6ae85c045b48e5735ffab977d4bd58cc86fb9d2292bbb314fa408d78d4b0454c3a27dbf9f881f9921917a942825c806 languageName: node linkType: hard @@ -10752,17 +10916,24 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/types@npm:7.4.0": - version: 7.4.0 - resolution: "@typescript-eslint/types@npm:7.4.0" - checksum: 10c0/685df163cdd6d546de8a2d22896e461777a89756faf1f34342c959e7d3f4cc75b1f47a96da50483fe1da75d06515bb105f58339d277ad7e02c15ab61c90ad097 +"@typescript-eslint/types@npm:7.18.0": + version: 7.18.0 + resolution: "@typescript-eslint/types@npm:7.18.0" + checksum: 10c0/eb7371ac55ca77db8e59ba0310b41a74523f17e06f485a0ef819491bc3dd8909bb930120ff7d30aaf54e888167e0005aa1337011f3663dc90fb19203ce478054 + languageName: node + linkType: hard + +"@typescript-eslint/types@npm:8.14.0": + version: 8.14.0 + resolution: "@typescript-eslint/types@npm:8.14.0" + checksum: 10c0/7707f900e24e60e6780c5705f69627b7c0ef912cb3b095dfc8f4a0c84e866c66b1c4c10278cf99724560dc66985ec640750c4192786a09b853f9bb4c3ca5a7ce languageName: node linkType: hard -"@typescript-eslint/types@npm:8.0.0-alpha.20": - version: 8.0.0-alpha.20 - resolution: "@typescript-eslint/types@npm:8.0.0-alpha.20" - checksum: 10c0/6564739e2ecefd07a9d8c928334dab3d5f457d383ebf38ecce1a4cc21cbebd7fafdfdd54b8a2cf7abae3dd15ca8f2a61b0bb4fb6328640a307d52c93da3710a9 +"@typescript-eslint/types@npm:8.15.0": + version: 8.15.0 + resolution: "@typescript-eslint/types@npm:8.15.0" + checksum: 10c0/84abc6fd954aff13822a76ac49efdcb90a55c0025c20eee5d8cebcfb68faff33b79bbc711ea524e0209cecd90c5ee3a5f92babc7083c081d3a383a0710264a41 languageName: node linkType: hard @@ -10785,33 +10956,33 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/typescript-estree@npm:7.4.0": - version: 7.4.0 - resolution: "@typescript-eslint/typescript-estree@npm:7.4.0" +"@typescript-eslint/typescript-estree@npm:7.18.0": + version: 7.18.0 + resolution: "@typescript-eslint/typescript-estree@npm:7.18.0" dependencies: - "@typescript-eslint/types": "npm:7.4.0" - "@typescript-eslint/visitor-keys": "npm:7.4.0" + "@typescript-eslint/types": "npm:7.18.0" + "@typescript-eslint/visitor-keys": "npm:7.18.0" debug: "npm:^4.3.4" globby: "npm:^11.1.0" is-glob: "npm:^4.0.3" - minimatch: "npm:9.0.3" - semver: "npm:^7.5.4" - ts-api-utils: "npm:^1.0.1" + minimatch: "npm:^9.0.4" + semver: "npm:^7.6.0" + ts-api-utils: "npm:^1.3.0" peerDependenciesMeta: typescript: optional: true - checksum: 10c0/31910f9283bcb2db7d3dd77b5a3b0c52e9769cd296e78a5ba742360f9e1971a6a3e1b5eb31109b4d584a62c2caa3075a346c5413b55e28cda0226a73865d62b7 + checksum: 10c0/0c7f109a2e460ec8a1524339479cf78ff17814d23c83aa5112c77fb345e87b3642616291908dcddea1e671da63686403dfb712e4a4435104f92abdfddf9aba81 languageName: node linkType: hard -"@typescript-eslint/typescript-estree@npm:8.0.0-alpha.20": - version: 8.0.0-alpha.20 - resolution: "@typescript-eslint/typescript-estree@npm:8.0.0-alpha.20" +"@typescript-eslint/typescript-estree@npm:8.14.0": + version: 8.14.0 + resolution: "@typescript-eslint/typescript-estree@npm:8.14.0" dependencies: - "@typescript-eslint/types": "npm:8.0.0-alpha.20" - "@typescript-eslint/visitor-keys": "npm:8.0.0-alpha.20" + "@typescript-eslint/types": "npm:8.14.0" + "@typescript-eslint/visitor-keys": "npm:8.14.0" debug: "npm:^4.3.4" - globby: "npm:^11.1.0" + fast-glob: "npm:^3.3.2" is-glob: "npm:^4.0.3" minimatch: "npm:^9.0.4" semver: "npm:^7.6.0" @@ -10819,38 +10990,71 @@ __metadata: peerDependenciesMeta: typescript: optional: true - checksum: 10c0/ef9c7e14f3abb65e45e66a5005e69b2ce07aefdc5daa6e0ac83e6929a92e6e914d351c556f67a44791d69c95b7fce8a689477195ea29278386ca421ad1ba4415 + checksum: 10c0/5e890d22bd067095f871cf144907a8c302db5b5f014c58906ad58d7f23569951cba805042eac6844744e5abb0d3648c9cc221a91b0703da0a8d6345dc1f83e74 languageName: node linkType: hard -"@typescript-eslint/utils@npm:7.4.0, @typescript-eslint/utils@npm:^7.3.0": - version: 7.4.0 - resolution: "@typescript-eslint/utils@npm:7.4.0" +"@typescript-eslint/typescript-estree@npm:8.15.0": + version: 8.15.0 + resolution: "@typescript-eslint/typescript-estree@npm:8.15.0" + dependencies: + "@typescript-eslint/types": "npm:8.15.0" + "@typescript-eslint/visitor-keys": "npm:8.15.0" + debug: "npm:^4.3.4" + fast-glob: "npm:^3.3.2" + is-glob: "npm:^4.0.3" + minimatch: "npm:^9.0.4" + semver: "npm:^7.6.0" + ts-api-utils: "npm:^1.3.0" + peerDependenciesMeta: + typescript: + optional: true + checksum: 10c0/3af5c129532db3575349571bbf64d32aeccc4f4df924ac447f5d8f6af8b387148df51965eb2c9b99991951d3dadef4f2509d7ce69bf34a2885d013c040762412 + languageName: node + linkType: hard + +"@typescript-eslint/utils@npm:7.18.0": + version: 7.18.0 + resolution: "@typescript-eslint/utils@npm:7.18.0" dependencies: "@eslint-community/eslint-utils": "npm:^4.4.0" - "@types/json-schema": "npm:^7.0.12" - "@types/semver": "npm:^7.5.0" - "@typescript-eslint/scope-manager": "npm:7.4.0" - "@typescript-eslint/types": "npm:7.4.0" - "@typescript-eslint/typescript-estree": "npm:7.4.0" - semver: "npm:^7.5.4" + "@typescript-eslint/scope-manager": "npm:7.18.0" + "@typescript-eslint/types": "npm:7.18.0" + "@typescript-eslint/typescript-estree": "npm:7.18.0" peerDependencies: eslint: ^8.56.0 - checksum: 10c0/347897e0c20e752b62988cbc6477a3788140671692f383355c1fa21e21272561a1bb81927cf99b4ec6fe6094fdb4d010e330ef58674020513e9209992db8aac1 + checksum: 10c0/a25a6d50eb45c514469a01ff01f215115a4725fb18401055a847ddf20d1b681409c4027f349033a95c4ff7138d28c3b0a70253dfe8262eb732df4b87c547bd1e + languageName: node + linkType: hard + +"@typescript-eslint/utils@npm:8.14.0, @typescript-eslint/utils@npm:^8.0.0": + version: 8.14.0 + resolution: "@typescript-eslint/utils@npm:8.14.0" + dependencies: + "@eslint-community/eslint-utils": "npm:^4.4.0" + "@typescript-eslint/scope-manager": "npm:8.14.0" + "@typescript-eslint/types": "npm:8.14.0" + "@typescript-eslint/typescript-estree": "npm:8.14.0" + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + checksum: 10c0/1fcc2651d870832a799a5d1c85fc9421853508a006d6a6073c8316b012489dda77e123d13aea8f53eb9030a2da2c0eb273a6946a9941caa2519b99b33e89b720 languageName: node linkType: hard -"@typescript-eslint/utils@npm:8.0.0-alpha.20": - version: 8.0.0-alpha.20 - resolution: "@typescript-eslint/utils@npm:8.0.0-alpha.20" +"@typescript-eslint/utils@npm:8.15.0": + version: 8.15.0 + resolution: "@typescript-eslint/utils@npm:8.15.0" dependencies: "@eslint-community/eslint-utils": "npm:^4.4.0" - "@typescript-eslint/scope-manager": "npm:8.0.0-alpha.20" - "@typescript-eslint/types": "npm:8.0.0-alpha.20" - "@typescript-eslint/typescript-estree": "npm:8.0.0-alpha.20" + "@typescript-eslint/scope-manager": "npm:8.15.0" + "@typescript-eslint/types": "npm:8.15.0" + "@typescript-eslint/typescript-estree": "npm:8.15.0" peerDependencies: eslint: ^8.57.0 || ^9.0.0 - checksum: 10c0/c659c0ae5f05779b04d10624b2a697217fb15d4834d60403f2788a2e19f3f07fe3bbf607c69d55d951c106ee7c078ab693b8b96ce1a169609a150b094622c3b9 + peerDependenciesMeta: + typescript: + optional: true + checksum: 10c0/65743f51845a1f6fd2d21f66ca56182ba33e966716bdca73d30b7a67c294e47889c322de7d7b90ab0818296cd33c628e5eeeb03cec7ef2f76c47de7a453eeda2 languageName: node linkType: hard @@ -10878,23 +11082,33 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/visitor-keys@npm:7.4.0": - version: 7.4.0 - resolution: "@typescript-eslint/visitor-keys@npm:7.4.0" +"@typescript-eslint/visitor-keys@npm:7.18.0": + version: 7.18.0 + resolution: "@typescript-eslint/visitor-keys@npm:7.18.0" dependencies: - "@typescript-eslint/types": "npm:7.4.0" - eslint-visitor-keys: "npm:^3.4.1" - checksum: 10c0/bd2ca99f4a771494b89124a1e4cd7f3c817ca4916b8a0168c5c226a245f25cf646b10095100fb8cb6d97134f63fa5bb15098daa94f48657b65332e8671ffdb52 + "@typescript-eslint/types": "npm:7.18.0" + eslint-visitor-keys: "npm:^3.4.3" + checksum: 10c0/538b645f8ff1d9debf264865c69a317074eaff0255e63d7407046176b0f6a6beba34a6c51d511f12444bae12a98c69891eb6f403c9f54c6c2e2849d1c1cb73c0 languageName: node linkType: hard -"@typescript-eslint/visitor-keys@npm:8.0.0-alpha.20": - version: 8.0.0-alpha.20 - resolution: "@typescript-eslint/visitor-keys@npm:8.0.0-alpha.20" +"@typescript-eslint/visitor-keys@npm:8.14.0": + version: 8.14.0 + resolution: "@typescript-eslint/visitor-keys@npm:8.14.0" dependencies: - "@typescript-eslint/types": "npm:8.0.0-alpha.20" + "@typescript-eslint/types": "npm:8.14.0" eslint-visitor-keys: "npm:^3.4.3" - checksum: 10c0/26ed5e457d5035ac0b3810538587108512a50e89831735f0459763575d336a232f07e143a1eb74ddae82d9c809330f35efd72f891492f4e643740b6251c1b7ba + checksum: 10c0/d0faf70ed9ecff5e36694bbb161a90bea6db59e0e79a7d4f264d67d565c12b13733d664b736b2730935f013c87ce3155cea954a533d28e99987681bc5f6259c3 + languageName: node + linkType: hard + +"@typescript-eslint/visitor-keys@npm:8.15.0": + version: 8.15.0 + resolution: "@typescript-eslint/visitor-keys@npm:8.15.0" + dependencies: + "@typescript-eslint/types": "npm:8.15.0" + eslint-visitor-keys: "npm:^4.2.0" + checksum: 10c0/02a954c3752c4328482a884eb1da06ca8fb72ae78ef28f1d854b18f3779406ed47263af22321cf3f65a637ec7584e5f483e34a263b5c8cec60ec85aebc263574 languageName: node linkType: hard @@ -11388,13 +11602,13 @@ __metadata: languageName: node linkType: hard -"@yarnpkg/parsers@npm:3.0.0-rc.46": - version: 3.0.0-rc.46 - resolution: "@yarnpkg/parsers@npm:3.0.0-rc.46" +"@yarnpkg/parsers@npm:3.0.2": + version: 3.0.2 + resolution: "@yarnpkg/parsers@npm:3.0.2" dependencies: js-yaml: "npm:^3.10.0" tslib: "npm:^2.4.0" - checksum: 10c0/c7f421c6885142f351459031c093fb2e79abcce6f4a89765a10e600bb7ab122949c54bcea2b23de9572a2b34ba29f822b17831c1c43ba50373ceb8cb5b336667 + checksum: 10c0/a0c340e13129643162423d7e666061c0b39b143bfad3fc5a74c7d92a30fd740f6665d41cd4e61832c20375889d793eea1d1d103cacb39ed68f7acd168add8c53 languageName: node linkType: hard @@ -11421,7 +11635,7 @@ __metadata: languageName: node linkType: hard -"abab@npm:^2.0.5, abab@npm:^2.0.6": +"abab@npm:^2.0.6": version: 2.0.6 resolution: "abab@npm:2.0.6" checksum: 10c0/0b245c3c3ea2598fe0025abf7cc7bb507b06949d51e8edae5d12c1b847a0a0c09639abcb94788332b4e2044ac4491c1e8f571b51c7826fd4b0bda1685ad4a278 @@ -11435,7 +11649,7 @@ __metadata: languageName: node linkType: hard -"accepts@npm:~1.3.4, accepts@npm:~1.3.5, accepts@npm:~1.3.8": +"accepts@npm:^1.3.5, accepts@npm:~1.3.4, accepts@npm:~1.3.5, accepts@npm:~1.3.8": version: 1.3.8 resolution: "accepts@npm:1.3.8" dependencies: @@ -11464,12 +11678,12 @@ __metadata: languageName: node linkType: hard -"acorn-import-assertions@npm:^1.9.0": - version: 1.9.0 - resolution: "acorn-import-assertions@npm:1.9.0" +"acorn-import-attributes@npm:^1.9.5": + version: 1.9.5 + resolution: "acorn-import-attributes@npm:1.9.5" peerDependencies: acorn: ^8 - checksum: 10c0/3b4a194e128efdc9b86c2b1544f623aba4c1aa70d638f8ab7dc3971a5b4aa4c57bd62f99af6e5325bb5973c55863b4112e708a6f408bad7a138647ca72283afe + checksum: 10c0/5926eaaead2326d5a86f322ff1b617b0f698aa61dc719a5baa0e9d955c9885cc71febac3fb5bacff71bbf2c4f9c12db2056883c68c53eb962c048b952e1e013d languageName: node linkType: hard @@ -11498,6 +11712,15 @@ __metadata: languageName: node linkType: hard +"acorn@npm:^8.14.0": + version: 8.14.0 + resolution: "acorn@npm:8.14.0" + bin: + acorn: bin/acorn + checksum: 10c0/6d4ee461a7734b2f48836ee0fbb752903606e576cc100eb49340295129ca0b452f3ba91ddd4424a1d4406a98adfb2ebb6bd0ff4c49d7a0930c10e462719bbfd7 + languageName: node + linkType: hard + "acorn@npm:^8.8.2, acorn@npm:^8.9.0": version: 8.10.0 resolution: "acorn@npm:8.10.0" @@ -11531,6 +11754,13 @@ __metadata: languageName: node linkType: hard +"adm-zip@npm:^0.5.10": + version: 0.5.16 + resolution: "adm-zip@npm:0.5.16" + checksum: 10c0/6f10119d4570c7ba76dcf428abb8d3f69e63f92e51f700a542b43d4c0130373dd2ddfc8f85059f12d4a843703a90c3970cfd17876844b4f3f48bf042bfa6b49f + languageName: node + linkType: hard + "agent-base@npm:6": version: 6.0.2 resolution: "agent-base@npm:6.0.2" @@ -11607,15 +11837,15 @@ __metadata: languageName: node linkType: hard -"ajv@npm:8.13.0": - version: 8.13.0 - resolution: "ajv@npm:8.13.0" +"ajv@npm:8.17.1": + version: 8.17.1 + resolution: "ajv@npm:8.17.1" dependencies: fast-deep-equal: "npm:^3.1.3" + fast-uri: "npm:^3.0.1" json-schema-traverse: "npm:^1.0.0" require-from-string: "npm:^2.0.2" - uri-js: "npm:^4.4.1" - checksum: 10c0/14c6497b6f72843986d7344175a1aa0e2c35b1e7f7475e55bc582cddb765fca7e6bf950f465dc7846f817776d9541b706f4b5b3fbedd8dfdeb5fce6f22864264 + checksum: 10c0/ec3ba10a573c6b60f94639ffc53526275917a2df6810e4ab5a6b959d87459f9ef3f00d5e7865b82677cb7d21590355b34da14d1d0b9c32d75f95a187e76fff35 languageName: node linkType: hard @@ -11701,6 +11931,15 @@ __metadata: languageName: node linkType: hard +"ansi-escapes@npm:^7.0.0": + version: 7.0.0 + resolution: "ansi-escapes@npm:7.0.0" + dependencies: + environment: "npm:^1.0.0" + checksum: 10c0/86e51e36fabef18c9c004af0a280573e828900641cea35134a124d2715e0c5a473494ab4ce396614505da77638ae290ff72dd8002d9747d2ee53f5d6bbe336be + languageName: node + linkType: hard + "ansi-html-community@npm:^0.0.8": version: 0.0.8 resolution: "ansi-html-community@npm:0.0.8" @@ -11749,7 +11988,7 @@ __metadata: languageName: node linkType: hard -"ansi-styles@npm:^6.0.0, ansi-styles@npm:^6.1.0": +"ansi-styles@npm:^6.0.0, ansi-styles@npm:^6.1.0, ansi-styles@npm:^6.2.1": version: 6.2.1 resolution: "ansi-styles@npm:6.2.1" checksum: 10c0/5d1ec38c123984bcedd996eac680d548f31828bd679a66db2bdf11844634dde55fec3efa9c6bb1d89056a5e79c1ac540c4c784d592ea1d25028a92227d2f2d5c @@ -11813,12 +12052,10 @@ __metadata: languageName: node linkType: hard -"aria-query@npm:5.3.0": - version: 5.3.0 - resolution: "aria-query@npm:5.3.0" - dependencies: - dequal: "npm:^2.0.3" - checksum: 10c0/2bff0d4eba5852a9dd578ecf47eaef0e82cc52569b48469b0aac2db5145db0b17b7a58d9e01237706d1e14b7a1b0ac9b78e9c97027ad97679dd8f91b85da1469 +"aria-query@npm:5.3.2": + version: 5.3.2 + resolution: "aria-query@npm:5.3.2" + checksum: 10c0/003c7e3e2cff5540bf7a7893775fc614de82b0c5dde8ae823d47b7a28a9d4da1f7ed85f340bdb93d5649caa927755f0e31ecc7ab63edfdfc00c8ef07e505e03e languageName: node linkType: hard @@ -12005,21 +12242,21 @@ __metadata: languageName: node linkType: hard -"autoprefixer@npm:10.4.19": - version: 10.4.19 - resolution: "autoprefixer@npm:10.4.19" +"autoprefixer@npm:10.4.20": + version: 10.4.20 + resolution: "autoprefixer@npm:10.4.20" dependencies: - browserslist: "npm:^4.23.0" - caniuse-lite: "npm:^1.0.30001599" + browserslist: "npm:^4.23.3" + caniuse-lite: "npm:^1.0.30001646" fraction.js: "npm:^4.3.7" normalize-range: "npm:^0.1.2" - picocolors: "npm:^1.0.0" + picocolors: "npm:^1.0.1" postcss-value-parser: "npm:^4.2.0" peerDependencies: postcss: ^8.1.0 bin: autoprefixer: bin/autoprefixer - checksum: 10c0/fe0178eb8b1da4f15c6535cd329926609b22d1811e047371dccce50563623f8075dd06fb167daff059e4228da651b0bdff6d9b44281541eaf0ce0b79125bfd19 + checksum: 10c0/e1f00978a26e7c5b54ab12036d8c13833fad7222828fc90914771b1263f51b28c7ddb5803049de4e77696cbd02bb25cfc3634e80533025bb26c26aacdf938940 languageName: node linkType: hard @@ -12082,23 +12319,21 @@ __metadata: languageName: node linkType: hard -"axios@npm:^1.6.0": - version: 1.6.7 - resolution: "axios@npm:1.6.7" +"axios@npm:^1.7.4": + version: 1.7.7 + resolution: "axios@npm:1.7.7" dependencies: - follow-redirects: "npm:^1.15.4" + follow-redirects: "npm:^1.15.6" form-data: "npm:^4.0.0" proxy-from-env: "npm:^1.1.0" - checksum: 10c0/131bf8e62eee48ca4bd84e6101f211961bf6a21a33b95e5dfb3983d5a2fe50d9fffde0b57668d7ce6f65063d3dc10f2212cbcb554f75cfca99da1c73b210358d + checksum: 10c0/4499efc89e86b0b49ffddc018798de05fab26e3bf57913818266be73279a6418c3ce8f9e934c7d2d707ab8c095e837fc6c90608fb7715b94d357720b5f568af7 languageName: node linkType: hard -"axobject-query@npm:4.0.0": - version: 4.0.0 - resolution: "axobject-query@npm:4.0.0" - dependencies: - dequal: "npm:^2.0.3" - checksum: 10c0/4d756b5c2ff099f1c7f99e55a5de9b2066cb2a13a3170185ff34bfec2d7bcab81eb820a4e7340d35c251341b61ebee6e705b7ce64db78224df1df5a4d68448fe +"axobject-query@npm:4.1.0": + version: 4.1.0 + resolution: "axobject-query@npm:4.1.0" + checksum: 10c0/c470e4f95008f232eadd755b018cb55f16c03ccf39c027b941cd8820ac6b68707ce5d7368a46756db4256fbc91bb4ead368f84f7fb034b2b7932f082f6dc0775 languageName: node linkType: hard @@ -12119,20 +12354,20 @@ __metadata: languageName: node linkType: hard -"babel-jest@npm:^29.6.2": - version: 29.6.2 - resolution: "babel-jest@npm:29.6.2" +"babel-jest@npm:^29.7.0": + version: 29.7.0 + resolution: "babel-jest@npm:29.7.0" dependencies: - "@jest/transform": "npm:^29.6.2" + "@jest/transform": "npm:^29.7.0" "@types/babel__core": "npm:^7.1.14" babel-plugin-istanbul: "npm:^6.1.1" - babel-preset-jest: "npm:^29.5.0" + babel-preset-jest: "npm:^29.6.3" chalk: "npm:^4.0.0" graceful-fs: "npm:^4.2.9" slash: "npm:^3.0.0" peerDependencies: "@babel/core": ^7.8.0 - checksum: 10c0/c1ebaecd1323852867765a6920ab8b5e1e4236254415090a682e0ebf6a3339a9861f65791b23acad2e3a4c4bf5bca31c9abc154306ba7cf9725c2f6e78c92444 + checksum: 10c0/2eda9c1391e51936ca573dd1aedfee07b14c59b33dbe16ef347873ddd777bcf6e2fc739681e9e9661ab54ef84a3109a03725be2ac32cd2124c07ea4401cbe8c1 languageName: node linkType: hard @@ -12220,7 +12455,7 @@ __metadata: languageName: node linkType: hard -"babel-plugin-istanbul@npm:6.1.1, babel-plugin-istanbul@npm:^6.1.1": +"babel-plugin-istanbul@npm:^6.1.1": version: 6.1.1 resolution: "babel-plugin-istanbul@npm:6.1.1" dependencies: @@ -12245,6 +12480,18 @@ __metadata: languageName: node linkType: hard +"babel-plugin-jest-hoist@npm:^29.6.3": + version: 29.6.3 + resolution: "babel-plugin-jest-hoist@npm:29.6.3" + dependencies: + "@babel/template": "npm:^7.3.3" + "@babel/types": "npm:^7.3.3" + "@types/babel__core": "npm:^7.1.14" + "@types/babel__traverse": "npm:^7.0.6" + checksum: 10c0/7e6451caaf7dce33d010b8aafb970e62f1b0c0b57f4978c37b0d457bbcf0874d75a395a102daf0bae0bd14eafb9f6e9a165ee5e899c0a4f1f3bb2e07b304ed2e + languageName: node + linkType: hard + "babel-plugin-macros@npm:^2.8.0": version: 2.8.0 resolution: "babel-plugin-macros@npm:2.8.0" @@ -12407,6 +12654,18 @@ __metadata: languageName: node linkType: hard +"babel-preset-jest@npm:^29.6.3": + version: 29.6.3 + resolution: "babel-preset-jest@npm:29.6.3" + dependencies: + babel-plugin-jest-hoist: "npm:^29.6.3" + babel-preset-current-node-syntax: "npm:^1.0.0" + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 10c0/ec5fd0276b5630b05f0c14bb97cc3815c6b31600c683ebb51372e54dcb776cff790bdeeabd5b8d01ede375a040337ccbf6a3ccd68d3a34219125945e167ad943 + languageName: node + linkType: hard + "babel-runtime@npm:^6.9.2": version: 6.26.0 resolution: "babel-runtime@npm:6.26.0" @@ -12577,6 +12836,26 @@ __metadata: languageName: node linkType: hard +"body-parser@npm:1.20.3": + version: 1.20.3 + resolution: "body-parser@npm:1.20.3" + dependencies: + bytes: "npm:3.1.2" + content-type: "npm:~1.0.5" + debug: "npm:2.6.9" + depd: "npm:2.0.0" + destroy: "npm:1.2.0" + http-errors: "npm:2.0.0" + iconv-lite: "npm:0.4.24" + on-finished: "npm:2.4.1" + qs: "npm:6.13.0" + raw-body: "npm:2.5.2" + type-is: "npm:~1.6.18" + unpipe: "npm:1.0.0" + checksum: 10c0/0a9a93b7518f222885498dcecaad528cf010dd109b071bf471c93def4bfe30958b83e03496eb9c1ad4896db543d999bb62be1a3087294162a88cfa1b42c16310 + languageName: node + linkType: hard + "bonjour-service@npm:^1.0.11": version: 1.1.1 resolution: "bonjour-service@npm:1.1.1" @@ -12704,6 +12983,15 @@ __metadata: languageName: node linkType: hard +"braces@npm:^3.0.3": + version: 3.0.3 + resolution: "braces@npm:3.0.3" + dependencies: + fill-range: "npm:^7.1.1" + checksum: 10c0/7c6dfd30c338d2997ba77500539227b9d1f85e388a5f43220865201e407e076783d0881f2d297b9f80951b4c957fcf0b51c1d2d24227631643c3f7c284b0aa04 + languageName: node + linkType: hard + "browser-sync-client@npm:^3.0.2": version: 3.0.2 resolution: "browser-sync-client@npm:3.0.2" @@ -12810,6 +13098,20 @@ __metadata: languageName: node linkType: hard +"browserslist@npm:^4.23.3, browserslist@npm:^4.24.0, browserslist@npm:^4.24.2": + version: 4.24.2 + resolution: "browserslist@npm:4.24.2" + dependencies: + caniuse-lite: "npm:^1.0.30001669" + electron-to-chromium: "npm:^1.5.41" + node-releases: "npm:^2.0.18" + update-browserslist-db: "npm:^1.1.1" + bin: + browserslist: cli.js + checksum: 10c0/d747c9fb65ed7b4f1abcae4959405707ed9a7b835639f8a9ba0da2911995a6ab9b0648fd05baf2a4d4e3cf7f9fdbad56d3753f91881e365992c1d49c8d88ff7a + languageName: node + linkType: hard + "bs-logger@npm:0.x, bs-logger@npm:^0.2.6": version: 0.2.6 resolution: "bs-logger@npm:0.2.6" @@ -12835,6 +13137,15 @@ __metadata: languageName: node linkType: hard +"btoa@npm:^1.2.1": + version: 1.2.1 + resolution: "btoa@npm:1.2.1" + bin: + btoa: bin/btoa.js + checksum: 10c0/557b9682e40a68ae057af1b377e28884e6ff756ba0f499fe0f8c7b725a5bfb5c0d891604ac09944dbe330c9d43fb3976fef734f9372608d0d8e78a30eda292ae + languageName: node + linkType: hard + "buffer-crc32@npm:~0.2.3": version: 0.2.13 resolution: "buffer-crc32@npm:0.2.13" @@ -12935,6 +13246,16 @@ __metadata: languageName: node linkType: hard +"cache-content-type@npm:^1.0.0": + version: 1.0.1 + resolution: "cache-content-type@npm:1.0.1" + dependencies: + mime-types: "npm:^2.1.18" + ylru: "npm:^1.2.0" + checksum: 10c0/59b50e29e64a24bb52a16e5d35b69ad27ef14313701acc5e462b0aeebf2f09ff87fb6538eb0c0f0de4de05c8a1eecaef47f455f5b4928079e68f607f816a0843 + languageName: node + linkType: hard + "cacheable-request@npm:^6.0.0": version: 6.1.0 resolution: "cacheable-request@npm:6.1.0" @@ -13051,10 +13372,10 @@ __metadata: languageName: node linkType: hard -"caniuse-lite@npm:^1.0.30001599": - version: 1.0.30001623 - resolution: "caniuse-lite@npm:1.0.30001623" - checksum: 10c0/bf4fdae0cc9ec9282741e2c2dd3d35d853049ad69b33115cc39ee2d74fcbe03319aec27932b3480b626a4524e715c5b148c60d4d29ddd709db9008505ccf1a85 +"caniuse-lite@npm:^1.0.30001646, caniuse-lite@npm:^1.0.30001669": + version: 1.0.30001680 + resolution: "caniuse-lite@npm:1.0.30001680" + checksum: 10c0/11a4e7f6f5d5f965cfd4b7dc4aef34e12a26e99647f02b5ac9fd7f7670845473b95ada416a785473237e4b1b67281f7b043c8736c85b77097f6b697e8950b15f languageName: node linkType: hard @@ -13072,6 +13393,16 @@ __metadata: languageName: node linkType: hard +"chalk@npm:3.0.0": + version: 3.0.0 + resolution: "chalk@npm:3.0.0" + dependencies: + ansi-styles: "npm:^4.1.0" + supports-color: "npm:^7.1.0" + checksum: 10c0/ee650b0a065b3d7a6fda258e75d3a86fc8e4effa55871da730a9e42ccb035bf5fd203525e5a1ef45ec2582ecc4f65b47eb11357c526b84dd29a14fb162c414d2 + languageName: node + linkType: hard + "chalk@npm:4.1.2, chalk@npm:^4.0.0, chalk@npm:^4.0.2, 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" @@ -13178,7 +13509,7 @@ __metadata: languageName: node linkType: hard -"chokidar@npm:>=3.0.0 <4.0.0, chokidar@npm:^3.0.0, chokidar@npm:^3.4.2, chokidar@npm:^3.5.3": +"chokidar@npm:>=3.0.0 <4.0.0, chokidar@npm:^3.4.2, chokidar@npm:^3.5.3": version: 3.5.3 resolution: "chokidar@npm:3.5.3" dependencies: @@ -13236,6 +13567,15 @@ __metadata: languageName: node linkType: hard +"chokidar@npm:^4.0.0": + version: 4.0.1 + resolution: "chokidar@npm:4.0.1" + dependencies: + readdirp: "npm:^4.0.1" + checksum: 10c0/4bb7a3adc304059810bb6c420c43261a15bb44f610d77c35547addc84faa0374265c3adc67f25d06f363d9a4571962b02679268c40de07676d260de1986efea9 + languageName: node + linkType: hard + "chownr@npm:^2.0.0": version: 2.0.0 resolution: "chownr@npm:2.0.0" @@ -13264,6 +13604,13 @@ __metadata: languageName: node linkType: hard +"ci-info@npm:^4.0.0": + version: 4.1.0 + resolution: "ci-info@npm:4.1.0" + checksum: 10c0/0f969ce32a974c542bc8abe4454b220d9d9323bb9415054c92a900faa5fdda0bb222eda68c490127c1d78503510d46b6aca614ecaba5a60515b8ac7e170119e6 + languageName: node + linkType: hard + "cjs-module-lexer@npm:^1.0.0": version: 1.2.2 resolution: "cjs-module-lexer@npm:1.2.2" @@ -13322,6 +13669,15 @@ __metadata: languageName: node linkType: hard +"cli-cursor@npm:^5.0.0": + version: 5.0.0 + resolution: "cli-cursor@npm:5.0.0" + dependencies: + restore-cursor: "npm:^5.0.0" + checksum: 10c0/7ec62f69b79f6734ab209a3e4dbdc8af7422d44d360a7cb1efa8a0887bbe466a6e625650c466fe4359aee44dbe2dc0b6994b583d40a05d0808a5cb193641d220 + languageName: node + linkType: hard + "cli-spinners@npm:2.6.1": version: 2.6.1 resolution: "cli-spinners@npm:2.6.1" @@ -13369,6 +13725,16 @@ __metadata: languageName: node linkType: hard +"cli-truncate@npm:^4.0.0": + version: 4.0.0 + resolution: "cli-truncate@npm:4.0.0" + dependencies: + slice-ansi: "npm:^5.0.0" + string-width: "npm:^7.0.0" + checksum: 10c0/d7f0b73e3d9b88cb496e6c086df7410b541b56a43d18ade6a573c9c18bd001b1c3fba1ad578f741a4218fdc794d042385f8ac02c25e1c295a2d8b9f3cb86eb4c + languageName: node + linkType: hard + "cli-width@npm:^3.0.0": version: 3.0.0 resolution: "cli-width@npm:3.0.0" @@ -13536,7 +13902,7 @@ __metadata: languageName: node linkType: hard -"combined-stream@npm:^1.0.6, combined-stream@npm:^1.0.8, combined-stream@npm:~1.0.6": +"combined-stream@npm:^1.0.8, combined-stream@npm:~1.0.6": version: 1.0.8 resolution: "combined-stream@npm:1.0.8" dependencies: @@ -13738,7 +14104,7 @@ __metadata: languageName: node linkType: hard -"content-disposition@npm:0.5.4": +"content-disposition@npm:0.5.4, content-disposition@npm:~0.5.2": version: 0.5.4 resolution: "content-disposition@npm:0.5.4" dependencies: @@ -13747,7 +14113,7 @@ __metadata: languageName: node linkType: hard -"content-type@npm:~1.0.4": +"content-type@npm:^1.0.4, content-type@npm:~1.0.4, content-type@npm:~1.0.5": version: 1.0.5 resolution: "content-type@npm:1.0.5" checksum: 10c0/b76ebed15c000aee4678c3707e0860cb6abd4e680a598c0a26e17f0bfae723ec9cc2802f0ff1bc6e4d80603719010431d2231018373d4dde10f9ccff9dadf5af @@ -13948,6 +14314,13 @@ __metadata: languageName: node linkType: hard +"cookie@npm:0.7.1": + version: 0.7.1 + resolution: "cookie@npm:0.7.1" + checksum: 10c0/5de60c67a410e7c8dc8a46a4b72eb0fe925871d057c9a5d2c0e8145c4270a4f81076de83410c4d397179744b478e33cd80ccbcc457abf40a9409ad27dcd21dde + languageName: node + linkType: hard + "cookie@npm:~0.4.1": version: 0.4.2 resolution: "cookie@npm:0.4.2" @@ -13955,6 +14328,16 @@ __metadata: languageName: node linkType: hard +"cookies@npm:~0.9.0": + version: 0.9.1 + resolution: "cookies@npm:0.9.1" + dependencies: + depd: "npm:~2.0.0" + keygrip: "npm:~1.1.0" + checksum: 10c0/3ffa1c0e992b62ee119adae4dd2ddd4a89166fa5434cd9bd9ff84ec4d2f14dfe2318a601280abfe32a4f64f884ec9345fb1912e488b002d188d2efa0d3919ba3 + languageName: node + linkType: hard + "copy-anything@npm:^2.0.1": version: 2.0.6 resolution: "copy-anything@npm:2.0.6" @@ -13978,19 +14361,19 @@ __metadata: languageName: node linkType: hard -"copy-webpack-plugin@npm:11.0.0, copy-webpack-plugin@npm:^11.0.0": - version: 11.0.0 - resolution: "copy-webpack-plugin@npm:11.0.0" +"copy-webpack-plugin@npm:12.0.2": + version: 12.0.2 + resolution: "copy-webpack-plugin@npm:12.0.2" dependencies: - fast-glob: "npm:^3.2.11" + fast-glob: "npm:^3.3.2" glob-parent: "npm:^6.0.1" - globby: "npm:^13.1.1" + globby: "npm:^14.0.0" normalize-path: "npm:^3.0.0" - schema-utils: "npm:^4.0.0" - serialize-javascript: "npm:^6.0.0" + schema-utils: "npm:^4.2.0" + serialize-javascript: "npm:^6.0.2" peerDependencies: webpack: ^5.1.0 - checksum: 10c0/a667dd226b26f148584a35fb705f5af926d872584912cf9fd203c14f2b3a68f473a1f5cf768ec1dd5da23820823b850e5d50458b685c468e4a224b25c12a15b4 + checksum: 10c0/1a2715a1280a37b81b7040b89ed962db4aa75475b164f84f266fa4e81f209269b13f8bff10b104dff7558854bafedcdd4f30c40fd23ecd8fa28af45516b459cd languageName: node linkType: hard @@ -14010,6 +14393,22 @@ __metadata: languageName: node linkType: hard +"copy-webpack-plugin@npm:^11.0.0": + version: 11.0.0 + resolution: "copy-webpack-plugin@npm:11.0.0" + dependencies: + fast-glob: "npm:^3.2.11" + glob-parent: "npm:^6.0.1" + globby: "npm:^13.1.1" + normalize-path: "npm:^3.0.0" + schema-utils: "npm:^4.0.0" + serialize-javascript: "npm:^6.0.0" + peerDependencies: + webpack: ^5.1.0 + checksum: 10c0/a667dd226b26f148584a35fb705f5af926d872584912cf9fd203c14f2b3a68f473a1f5cf768ec1dd5da23820823b850e5d50458b685c468e4a224b25c12a15b4 + languageName: node + linkType: hard + "core-js-compat@npm:^3.25.1": version: 3.30.0 resolution: "core-js-compat@npm:3.30.0" @@ -14046,6 +14445,15 @@ __metadata: languageName: node linkType: hard +"core-js-compat@npm:^3.37.1": + version: 3.39.0 + resolution: "core-js-compat@npm:3.39.0" + dependencies: + browserslist: "npm:^4.24.2" + checksum: 10c0/880579a3dab235e3b6350f1e324269c600753b48e891ea859331618d5051e68b7a95db6a03ad2f3cc7df4397318c25a5bc7740562ad39e94f56568638d09d414 + languageName: node + linkType: hard + "core-js-pure@npm:^3.25.1": version: 3.30.0 resolution: "core-js-pure@npm:3.30.0" @@ -14199,6 +14607,23 @@ __metadata: languageName: node linkType: hard +"create-jest@npm:^29.7.0": + version: 29.7.0 + resolution: "create-jest@npm:29.7.0" + dependencies: + "@jest/types": "npm:^29.6.3" + chalk: "npm:^4.0.0" + exit: "npm:^0.1.2" + graceful-fs: "npm:^4.2.9" + jest-config: "npm:^29.7.0" + jest-util: "npm:^29.7.0" + prompts: "npm:^2.0.1" + bin: + create-jest: bin/create-jest.js + checksum: 10c0/e7e54c280692470d3398f62a6238fd396327e01c6a0757002833f06d00afc62dd7bfe04ff2b9cd145264460e6b4d1eb8386f2925b7e567f97939843b7b0e812f + languageName: node + linkType: hard + "create-require@npm:^1.1.0": version: 1.1.1 resolution: "create-require@npm:1.1.1" @@ -14206,9 +14631,9 @@ __metadata: languageName: node linkType: hard -"critters@npm:0.0.22": - version: 0.0.22 - resolution: "critters@npm:0.0.22" +"critters@npm:0.0.24": + version: 0.0.24 + resolution: "critters@npm:0.0.24" dependencies: chalk: "npm:^4.1.0" css-select: "npm:^5.1.0" @@ -14217,7 +14642,16 @@ __metadata: htmlparser2: "npm:^8.0.2" postcss: "npm:^8.4.23" postcss-media-query-parser: "npm:^0.2.3" - checksum: 10c0/951c1c2f46b848f188b0e4a169e6fe56cc2a6d2934f5270372cfd48aadb6d475b9ad8d55b6d6182843c3ae117cfc05952f353bd4455122b122d2ecf7ff28687b + checksum: 10c0/a8f2fc45200e1e48ec82a1832565ec0c869b338cbb35506e0155c4affee5ed9a7478b956e699bd837926051d4249c93f371add7fb14bb9c383944077d696814e + languageName: node + linkType: hard + +"cron-parser@npm:^4.2.0": + version: 4.9.0 + resolution: "cron-parser@npm:4.9.0" + dependencies: + luxon: "npm:^3.2.1" + checksum: 10c0/348622bdcd1a15695b61fc33af8a60133e5913a85cf99f6344367579e7002896514ba3b0a9d6bb569b02667d6b06836722bf2295fcd101b3de378f71d37bed0b languageName: node linkType: hard @@ -14230,7 +14664,7 @@ __metadata: languageName: node linkType: hard -"cross-spawn@npm:^7.0.0, cross-spawn@npm:^7.0.2, cross-spawn@npm:^7.0.3": +"cross-spawn@npm:^7.0.0, cross-spawn@npm:^7.0.3": version: 7.0.3 resolution: "cross-spawn@npm:7.0.3" dependencies: @@ -14241,6 +14675,17 @@ __metadata: languageName: node linkType: hard +"cross-spawn@npm:^7.0.2": + version: 7.0.6 + resolution: "cross-spawn@npm:7.0.6" + dependencies: + path-key: "npm:^3.1.0" + shebang-command: "npm:^2.0.0" + which: "npm:^2.0.1" + checksum: 10c0/053ea8b2135caff68a9e81470e845613e374e7309a47731e81639de3eaeb90c3d01af0e0b44d2ab9d50b43467223b88567dfeb3262db942dc063b9976718ffc1 + languageName: node + linkType: hard + "crypto-random-string@npm:^2.0.0": version: 2.0.0 resolution: "crypto-random-string@npm:2.0.0" @@ -14283,9 +14728,9 @@ __metadata: languageName: node linkType: hard -"css-loader@npm:7.1.1": - version: 7.1.1 - resolution: "css-loader@npm:7.1.1" +"css-loader@npm:7.1.2": + version: 7.1.2 + resolution: "css-loader@npm:7.1.2" dependencies: icss-utils: "npm:^5.1.0" postcss: "npm:^8.4.33" @@ -14303,7 +14748,7 @@ __metadata: optional: true webpack: optional: true - checksum: 10c0/ebb4ffe68e9df0036fcce66ae182648d4d16b2fdfdc04a5bf7d7783776d389a23be161bb7139a3f842dc75466882544f46d2183bc9399d0bacf83b66a1802b41 + checksum: 10c0/edec9ed71e3c416c9c6ad41c138834c94baf7629de3b97a3337ae8cec4a45e05c57bdb7c4b4d267229fc04b8970d0d1c0734ded8dcd0ac8c7c286b36facdbbf0 languageName: node linkType: hard @@ -14665,11 +15110,11 @@ __metadata: languageName: node linkType: hard -"cypress@npm:13.9.0": - version: 13.9.0 - resolution: "cypress@npm:13.9.0" +"cypress@npm:13.15.2": + version: 13.15.2 + resolution: "cypress@npm:13.15.2" dependencies: - "@cypress/request": "npm:^3.0.0" + "@cypress/request": "npm:^3.0.6" "@cypress/xvfb": "npm:^1.2.4" "@types/sinonjs__fake-timers": "npm:8.1.1" "@types/sizzle": "npm:^2.3.2" @@ -14680,6 +15125,7 @@ __metadata: cachedir: "npm:^2.3.0" chalk: "npm:^4.1.0" check-more-types: "npm:^2.24.0" + ci-info: "npm:^4.0.0" cli-cursor: "npm:^3.1.0" cli-table3: "npm:~0.6.1" commander: "npm:^6.2.1" @@ -14694,7 +15140,6 @@ __metadata: figures: "npm:^3.2.0" fs-extra: "npm:^9.1.0" getos: "npm:^3.2.1" - is-ci: "npm:^3.0.1" is-installed-globally: "npm:~0.4.0" lazy-ass: "npm:^1.6.0" listr2: "npm:^3.8.3" @@ -14708,12 +15153,13 @@ __metadata: request-progress: "npm:^3.0.0" semver: "npm:^7.5.3" supports-color: "npm:^8.1.1" - tmp: "npm:~0.2.1" + tmp: "npm:~0.2.3" + tree-kill: "npm:1.2.2" untildify: "npm:^4.0.0" yauzl: "npm:^2.10.0" bin: cypress: bin/cypress - checksum: 10c0/1254609d8186c438f59c3f5bbef77fd22309260c1204228c39d07a9c9a555a823f24a69cbe9169d1e79af0d93f9cc9fee5e74b85cd0aa265e0add471cba86f32 + checksum: 10c0/07b1019a82941f3a5986d38dcd630a3ad08398dcd53c2e9bd316dad822b65fa7e4d9822be4e0cc8229747ac1b2bb4fc29747f0b509ff13b1853218a2ce2427aa languageName: node linkType: hard @@ -14744,6 +15190,13 @@ __metadata: languageName: node linkType: hard +"date-format@npm:^4.0.14": + version: 4.0.14 + resolution: "date-format@npm:4.0.14" + checksum: 10c0/1c67a4d77c677bb880328c81d81f5b9ed7fbf672bdaff74e5a0f7314b21188f3a829b06acf120c70cc1df876a7724e3e5c23d511e86d64656a3035a76ac3930b + languageName: node + linkType: hard + "dayjs@npm:^1.10.4": version: 1.11.7 resolution: "dayjs@npm:1.11.7" @@ -14781,6 +15234,18 @@ __metadata: languageName: node linkType: hard +"debug@npm:^4.3.6": + version: 4.3.7 + resolution: "debug@npm:4.3.7" + dependencies: + ms: "npm:^2.1.3" + peerDependenciesMeta: + supports-color: + optional: true + checksum: 10c0/1471db19c3b06d485a622d62f65947a19a23fbd0dd73f7fd3eafb697eec5360cde447fb075919987899b1a2096e85d35d4eb5a4de09a57600ac9cf7e6c8e768b + languageName: node + linkType: hard + "decimal.js@npm:^10.4.2": version: 10.4.3 resolution: "decimal.js@npm:10.4.3" @@ -14823,6 +15288,13 @@ __metadata: languageName: node linkType: hard +"deep-equal@npm:~1.0.1": + version: 1.0.1 + resolution: "deep-equal@npm:1.0.1" + checksum: 10c0/bef838ef9824e124d10335deb9c7540bfc9f2f0eab17ad1bb870d0eee83ee4e7e6f6f892e5eebc2bd82759a76676926ad5246180097e28e57752176ff7dae888 + languageName: node + linkType: hard + "deep-extend@npm:^0.6.0": version: 0.6.0 resolution: "deep-extend@npm:0.6.0" @@ -14972,7 +15444,14 @@ __metadata: languageName: node linkType: hard -"depd@npm:2.0.0": +"delegates@npm:^1.0.0": + version: 1.0.0 + resolution: "delegates@npm:1.0.0" + checksum: 10c0/ba05874b91148e1db4bf254750c042bf2215febd23a6d3cda2e64896aef79745fbd4b9996488bd3cafb39ce19dbce0fd6e3b6665275638befffe1c9b312b91b5 + languageName: node + linkType: hard + +"depd@npm:2.0.0, depd@npm:^2.0.0, depd@npm:~2.0.0": version: 2.0.0 resolution: "depd@npm:2.0.0" checksum: 10c0/58bd06ec20e19529b06f7ad07ddab60e504d9e0faca4bd23079fac2d279c3594334d736508dc350e06e510aba5e22e4594483b3a6562ce7c17dd797f4cc4ad2c @@ -14993,14 +15472,7 @@ __metadata: languageName: node linkType: hard -"dequal@npm:^2.0.3": - version: 2.0.3 - resolution: "dequal@npm:2.0.3" - checksum: 10c0/f98860cdf58b64991ae10205137c0e97d384c3a4edc7f807603887b7c4b850af1224a33d88012009f150861cbee4fa2d322c4cc04b9313bee312e47f6ecaa888 - languageName: node - linkType: hard - -"destroy@npm:1.2.0": +"destroy@npm:1.2.0, destroy@npm:^1.0.4": version: 1.2.0 resolution: "destroy@npm:1.2.0" checksum: 10c0/bd7633942f57418f5a3b80d5cb53898127bcf53e24cdf5d5f4396be471417671f0fee48a4ebe9a1e9defbde2a31280011af58a57e090ff822f589b443ed4e643 @@ -15265,17 +15737,19 @@ __metadata: languageName: node linkType: hard -"dotenv-expand@npm:~10.0.0": - version: 10.0.0 - resolution: "dotenv-expand@npm:10.0.0" - checksum: 10c0/298f5018e29cfdcb0b5f463ba8e8627749103fbcf6cf81c561119115754ed582deee37b49dfc7253028aaba875ab7aea5fa90e5dac88e511d009ab0e6677924e +"dotenv-expand@npm:~11.0.6": + version: 11.0.6 + resolution: "dotenv-expand@npm:11.0.6" + dependencies: + dotenv: "npm:^16.4.4" + checksum: 10c0/e22891ec72cb926d46d9a26290ef77f9cc9ddcba92d2f83d5e6f3a803d1590887be68e25b559415d080053000441b6f63f5b36093a565bb8c5c994b992ae49f2 languageName: node linkType: hard -"dotenv@npm:~16.3.1": - version: 16.3.1 - resolution: "dotenv@npm:16.3.1" - checksum: 10c0/b95ff1bbe624ead85a3cd70dbd827e8e06d5f05f716f2d0cbc476532d54c7c9469c3bc4dd93ea519f6ad711cb522c00ac9a62b6eb340d5affae8008facc3fbd7 +"dotenv@npm:^16.4.4, dotenv@npm:~16.4.5": + version: 16.4.5 + resolution: "dotenv@npm:16.4.5" + checksum: 10c0/48d92870076832af0418b13acd6e5a5a3e83bb00df690d9812e94b24aff62b88ade955ac99a05501305b8dc8f1b0ee7638b18493deb6fe93d680e5220936292f languageName: node linkType: hard @@ -15367,6 +15841,13 @@ __metadata: languageName: node linkType: hard +"electron-to-chromium@npm:^1.5.41": + version: 1.5.57 + resolution: "electron-to-chromium@npm:1.5.57" + checksum: 10c0/42b969681985016be6069ae68cf29e84ba3f2191fcb7f9d3355e83e81da8dbd100e4b5c9d69b88637003e06dc1860125a50332ec0caee49fd9c2c4ab62feb288 + languageName: node + linkType: hard + "emittery@npm:^0.13.1": version: 0.13.1 resolution: "emittery@npm:0.13.1" @@ -15374,6 +15855,13 @@ __metadata: languageName: node linkType: hard +"emoji-regex@npm:^10.3.0": + version: 10.4.0 + resolution: "emoji-regex@npm:10.4.0" + checksum: 10c0/a3fcedfc58bfcce21a05a5f36a529d81e88d602100145fcca3dc6f795e3c8acc4fc18fe773fbf9b6d6e9371205edb3afa2668ec3473fa2aa7fd47d2a9d46482d + languageName: node + linkType: hard + "emoji-regex@npm:^8.0.0": version: 8.0.0 resolution: "emoji-regex@npm:8.0.0" @@ -15402,13 +15890,20 @@ __metadata: languageName: node linkType: hard -"encodeurl@npm:~1.0.1, encodeurl@npm:~1.0.2": +"encodeurl@npm:^1.0.2, encodeurl@npm:~1.0.1, encodeurl@npm:~1.0.2": version: 1.0.2 resolution: "encodeurl@npm:1.0.2" checksum: 10c0/f6c2387379a9e7c1156c1c3d4f9cb7bb11cf16dd4c1682e1f6746512564b053df5781029b6061296832b59fb22f459dbe250386d217c2f6e203601abb2ee0bec languageName: node linkType: hard +"encodeurl@npm:~2.0.0": + version: 2.0.0 + resolution: "encodeurl@npm:2.0.0" + checksum: 10c0/5d317306acb13e6590e28e27924c754163946a2480de11865c991a3a7eed4315cd3fba378b543ca145829569eefe9b899f3d84bb09870f675ae60bc924b01ceb + languageName: node + linkType: hard + "encoding@npm:^0.1.13": version: 0.1.13 resolution: "encoding@npm:0.1.13" @@ -15485,13 +15980,13 @@ __metadata: languageName: node linkType: hard -"enhanced-resolve@npm:^5.16.0": - version: 5.16.1 - resolution: "enhanced-resolve@npm:5.16.1" +"enhanced-resolve@npm:^5.17.1": + version: 5.17.1 + resolution: "enhanced-resolve@npm:5.17.1" dependencies: graceful-fs: "npm:^4.2.4" tapable: "npm:^2.2.0" - checksum: 10c0/57d52625b978f18b32351a03006699de1e3695ce27af936ab4f1f98d3a4c825b219b445910bb4eef398303bbb5f37d7e382f842513d0f3a32614b78f6fd07ab7 + checksum: 10c0/81a0515675eca17efdba2cf5bad87abc91a528fc1191aad50e275e74f045b41506167d420099022da7181c8d787170ea41e4a11a0b10b7a16f6237daecb15370 languageName: node linkType: hard @@ -15525,6 +16020,13 @@ __metadata: languageName: node linkType: hard +"environment@npm:^1.0.0": + version: 1.1.0 + resolution: "environment@npm:1.1.0" + checksum: 10c0/fb26434b0b581ab397039e51ff3c92b34924a98b2039dcb47e41b7bca577b9dbf134a8eadb364415c74464b682e2d3afe1a4c0eb9873dc44ea814c5d3103331d + languageName: node + linkType: hard + "err-code@npm:^2.0.2": version: 2.0.3 resolution: "err-code@npm:2.0.3" @@ -15582,12 +16084,12 @@ __metadata: languageName: node linkType: hard -"esbuild-wasm@npm:0.21.3": - version: 0.21.3 - resolution: "esbuild-wasm@npm:0.21.3" +"esbuild-wasm@npm:0.23.0": + version: 0.23.0 + resolution: "esbuild-wasm@npm:0.23.0" bin: esbuild: bin/esbuild - checksum: 10c0/2afbd5a868cfa73c17aa57cd7756dee021e9013db122ac0d434770376fcbd8daba193d764b9fe38e00e408f5867435df81806e8db947bf55efcad12eaa16b882 + checksum: 10c0/027a5d8db3b9a39523d68885de9e02f82ec0a0174668fa184b1bc7af4c1e17ed07180d9ceccc714ec8d5d8b7d43faf3f81e8c675b4921fa5262b1e1aa876f457 languageName: node linkType: hard @@ -15600,33 +16102,34 @@ __metadata: languageName: node linkType: hard -"esbuild@npm:0.21.3": - version: 0.21.3 - resolution: "esbuild@npm:0.21.3" - dependencies: - "@esbuild/aix-ppc64": "npm:0.21.3" - "@esbuild/android-arm": "npm:0.21.3" - "@esbuild/android-arm64": "npm:0.21.3" - "@esbuild/android-x64": "npm:0.21.3" - "@esbuild/darwin-arm64": "npm:0.21.3" - "@esbuild/darwin-x64": "npm:0.21.3" - "@esbuild/freebsd-arm64": "npm:0.21.3" - "@esbuild/freebsd-x64": "npm:0.21.3" - "@esbuild/linux-arm": "npm:0.21.3" - "@esbuild/linux-arm64": "npm:0.21.3" - "@esbuild/linux-ia32": "npm:0.21.3" - "@esbuild/linux-loong64": "npm:0.21.3" - "@esbuild/linux-mips64el": "npm:0.21.3" - "@esbuild/linux-ppc64": "npm:0.21.3" - "@esbuild/linux-riscv64": "npm:0.21.3" - "@esbuild/linux-s390x": "npm:0.21.3" - "@esbuild/linux-x64": "npm:0.21.3" - "@esbuild/netbsd-x64": "npm:0.21.3" - "@esbuild/openbsd-x64": "npm:0.21.3" - "@esbuild/sunos-x64": "npm:0.21.3" - "@esbuild/win32-arm64": "npm:0.21.3" - "@esbuild/win32-ia32": "npm:0.21.3" - "@esbuild/win32-x64": "npm:0.21.3" +"esbuild@npm:0.23.0": + version: 0.23.0 + resolution: "esbuild@npm:0.23.0" + dependencies: + "@esbuild/aix-ppc64": "npm:0.23.0" + "@esbuild/android-arm": "npm:0.23.0" + "@esbuild/android-arm64": "npm:0.23.0" + "@esbuild/android-x64": "npm:0.23.0" + "@esbuild/darwin-arm64": "npm:0.23.0" + "@esbuild/darwin-x64": "npm:0.23.0" + "@esbuild/freebsd-arm64": "npm:0.23.0" + "@esbuild/freebsd-x64": "npm:0.23.0" + "@esbuild/linux-arm": "npm:0.23.0" + "@esbuild/linux-arm64": "npm:0.23.0" + "@esbuild/linux-ia32": "npm:0.23.0" + "@esbuild/linux-loong64": "npm:0.23.0" + "@esbuild/linux-mips64el": "npm:0.23.0" + "@esbuild/linux-ppc64": "npm:0.23.0" + "@esbuild/linux-riscv64": "npm:0.23.0" + "@esbuild/linux-s390x": "npm:0.23.0" + "@esbuild/linux-x64": "npm:0.23.0" + "@esbuild/netbsd-x64": "npm:0.23.0" + "@esbuild/openbsd-arm64": "npm:0.23.0" + "@esbuild/openbsd-x64": "npm:0.23.0" + "@esbuild/sunos-x64": "npm:0.23.0" + "@esbuild/win32-arm64": "npm:0.23.0" + "@esbuild/win32-ia32": "npm:0.23.0" + "@esbuild/win32-x64": "npm:0.23.0" dependenciesMeta: "@esbuild/aix-ppc64": optional: true @@ -15664,6 +16167,8 @@ __metadata: optional: true "@esbuild/netbsd-x64": optional: true + "@esbuild/openbsd-arm64": + optional: true "@esbuild/openbsd-x64": optional: true "@esbuild/sunos-x64": @@ -15676,11 +16181,11 @@ __metadata: optional: true bin: esbuild: bin/esbuild - checksum: 10c0/5bf85ccd11cc7e7fbbb7ca3458a0fa019ec9b38e1ed9e61f0866b29419e7348231da0aa336e4645c3bda8e757fa20bd3fd8a5f73256308488086a6c7ec9b6ac5 + checksum: 10c0/08c148c067795165798c0467ce02d2d1ecedc096989bded5f0d795c61a1fcbec6c14d0a3c9f4ad6185cc29ec52087acaa335ed6d98be6ad57f7fa4264626bde0 languageName: node linkType: hard -"esbuild@npm:>=0.15.13, esbuild@npm:^0.20.1": +"esbuild@npm:>=0.15.13": version: 0.20.2 resolution: "esbuild@npm:0.20.2" dependencies: @@ -15840,6 +16345,89 @@ __metadata: languageName: node linkType: hard +"esbuild@npm:^0.23.0": + version: 0.23.1 + resolution: "esbuild@npm:0.23.1" + dependencies: + "@esbuild/aix-ppc64": "npm:0.23.1" + "@esbuild/android-arm": "npm:0.23.1" + "@esbuild/android-arm64": "npm:0.23.1" + "@esbuild/android-x64": "npm:0.23.1" + "@esbuild/darwin-arm64": "npm:0.23.1" + "@esbuild/darwin-x64": "npm:0.23.1" + "@esbuild/freebsd-arm64": "npm:0.23.1" + "@esbuild/freebsd-x64": "npm:0.23.1" + "@esbuild/linux-arm": "npm:0.23.1" + "@esbuild/linux-arm64": "npm:0.23.1" + "@esbuild/linux-ia32": "npm:0.23.1" + "@esbuild/linux-loong64": "npm:0.23.1" + "@esbuild/linux-mips64el": "npm:0.23.1" + "@esbuild/linux-ppc64": "npm:0.23.1" + "@esbuild/linux-riscv64": "npm:0.23.1" + "@esbuild/linux-s390x": "npm:0.23.1" + "@esbuild/linux-x64": "npm:0.23.1" + "@esbuild/netbsd-x64": "npm:0.23.1" + "@esbuild/openbsd-arm64": "npm:0.23.1" + "@esbuild/openbsd-x64": "npm:0.23.1" + "@esbuild/sunos-x64": "npm:0.23.1" + "@esbuild/win32-arm64": "npm:0.23.1" + "@esbuild/win32-ia32": "npm:0.23.1" + "@esbuild/win32-x64": "npm:0.23.1" + dependenciesMeta: + "@esbuild/aix-ppc64": + optional: true + "@esbuild/android-arm": + optional: true + "@esbuild/android-arm64": + optional: true + "@esbuild/android-x64": + optional: true + "@esbuild/darwin-arm64": + optional: true + "@esbuild/darwin-x64": + optional: true + "@esbuild/freebsd-arm64": + optional: true + "@esbuild/freebsd-x64": + optional: true + "@esbuild/linux-arm": + optional: true + "@esbuild/linux-arm64": + optional: true + "@esbuild/linux-ia32": + optional: true + "@esbuild/linux-loong64": + optional: true + "@esbuild/linux-mips64el": + optional: true + "@esbuild/linux-ppc64": + optional: true + "@esbuild/linux-riscv64": + optional: true + "@esbuild/linux-s390x": + optional: true + "@esbuild/linux-x64": + optional: true + "@esbuild/netbsd-x64": + optional: true + "@esbuild/openbsd-arm64": + optional: true + "@esbuild/openbsd-x64": + optional: true + "@esbuild/sunos-x64": + optional: true + "@esbuild/win32-arm64": + optional: true + "@esbuild/win32-ia32": + optional: true + "@esbuild/win32-x64": + optional: true + bin: + esbuild: bin/esbuild + checksum: 10c0/08c2ed1105cc3c5e3a24a771e35532fe6089dd24a39c10097899072cef4a99f20860e41e9294e000d86380f353b04d8c50af482483d7f69f5208481cce61eec7 + languageName: node + linkType: hard + "escalade@npm:^3.1.1": version: 3.1.1 resolution: "escalade@npm:3.1.1" @@ -15847,6 +16435,13 @@ __metadata: languageName: node linkType: hard +"escalade@npm:^3.2.0": + version: 3.2.0 + resolution: "escalade@npm:3.2.0" + checksum: 10c0/ced4dd3a78e15897ed3be74e635110bbf3b08877b0a41be50dcb325ee0e0b5f65fc2d50e9845194d7c4633f327e2e1c6cce00a71b617c5673df0374201d67f65 + languageName: node + linkType: hard + "escape-goat@npm:^2.0.0": version: 2.1.1 resolution: "escape-goat@npm:2.1.1" @@ -15912,14 +16507,14 @@ __metadata: languageName: node linkType: hard -"eslint-plugin-cypress@npm:2.15.1": - version: 2.15.1 - resolution: "eslint-plugin-cypress@npm:2.15.1" +"eslint-plugin-cypress@npm:^4.1.0": + version: 4.1.0 + resolution: "eslint-plugin-cypress@npm:4.1.0" dependencies: - globals: "npm:^13.20.0" + globals: "npm:^15.11.0" peerDependencies: - eslint: ">= 3.2.1" - checksum: 10c0/f404adf415ef6b986d3480397a26eb73976a9156bbf786f2d22b8df28bbf0e50d4b3c699caefd230f0de9d6e8850596ab1bcc471b173aede05373d2a5ae3c624 + eslint: ">=9" + checksum: 10c0/991d3cc48ed139a52bec4e48e3be2b97274c63f0dd1d14f5b2a1a86315c9adf8a85c91837d64a83b177f07b8c410634d6db44f2555b97aeb96549f4dfac04b10 languageName: node linkType: hard @@ -15932,25 +16527,16 @@ __metadata: languageName: node linkType: hard -"eslint-plugin-unused-imports@npm:^3.1.0": - version: 3.1.0 - resolution: "eslint-plugin-unused-imports@npm:3.1.0" - dependencies: - eslint-rule-composer: "npm:^0.3.0" +"eslint-plugin-unused-imports@npm:^4.1.4": + version: 4.1.4 + resolution: "eslint-plugin-unused-imports@npm:4.1.4" peerDependencies: - "@typescript-eslint/eslint-plugin": 6 - 7 - eslint: 8 + "@typescript-eslint/eslint-plugin": ^8.0.0-0 || ^7.0.0 || ^6.0.0 || ^5.0.0 + eslint: ^9.0.0 || ^8.0.0 peerDependenciesMeta: "@typescript-eslint/eslint-plugin": optional: true - checksum: 10c0/712268fc10e7a5b169070c5ec2655733f4cdcf079848b2812ebe716b429a16cb87f315d3c0004cf128ba3874f68dd938eec8394a03587484e97e146494b48cda - languageName: node - linkType: hard - -"eslint-rule-composer@npm:^0.3.0": - version: 0.3.0 - resolution: "eslint-rule-composer@npm:0.3.0" - checksum: 10c0/1f0c40d209e1503a955101a0dbba37e7fc67c8aaa47a5b9ae0b0fcbae7022c86e52b3df2b1b9ffd658e16cd80f31fff92e7222460a44d8251e61d49e0af79a07 + checksum: 10c0/3899f64b0e8b23fa6b81e2754fc10f93d8741e051d70390a8100ca39af7878bde8625f234b76111af69562ef2512104b52c3703e986ccb3ac9adc07911896acf languageName: node linkType: hard @@ -15974,13 +16560,13 @@ __metadata: languageName: node linkType: hard -"eslint-scope@npm:^8.0.0": - version: 8.0.1 - resolution: "eslint-scope@npm:8.0.1" +"eslint-scope@npm:^8.0.2": + version: 8.2.0 + resolution: "eslint-scope@npm:8.2.0" dependencies: esrecurse: "npm:^4.3.0" estraverse: "npm:^5.2.0" - checksum: 10c0/0ec40ab284e58ac7ef064ecd23c127e03d339fa57173c96852336c73afc70ce5631da21dc1c772415a37a421291845538dd69db83c68d611044c0fde1d1fa269 + checksum: 10c0/8d2d58e2136d548ac7e0099b1a90d9fab56f990d86eb518de1247a7066d38c908be2f3df477a79cf60d70b30ba18735d6c6e70e9914dca2ee515a729975d70d6 languageName: node linkType: hard @@ -15998,15 +16584,22 @@ __metadata: languageName: node linkType: hard -"eslint@npm:8.57.0": - version: 8.57.0 - resolution: "eslint@npm:8.57.0" +"eslint-visitor-keys@npm:^4.2.0": + version: 4.2.0 + resolution: "eslint-visitor-keys@npm:4.2.0" + checksum: 10c0/2ed81c663b147ca6f578312919483eb040295bbab759e5a371953456c636c5b49a559883e2677112453728d66293c0a4c90ab11cab3428cf02a0236d2e738269 + languageName: node + linkType: hard + +"eslint@npm:^8.57.1": + version: 8.57.1 + resolution: "eslint@npm:8.57.1" dependencies: "@eslint-community/eslint-utils": "npm:^4.2.0" "@eslint-community/regexpp": "npm:^4.6.1" "@eslint/eslintrc": "npm:^2.1.4" - "@eslint/js": "npm:8.57.0" - "@humanwhocodes/config-array": "npm:^0.11.14" + "@eslint/js": "npm:8.57.1" + "@humanwhocodes/config-array": "npm:^0.13.0" "@humanwhocodes/module-importer": "npm:^1.0.1" "@nodelib/fs.walk": "npm:^1.2.8" "@ungap/structured-clone": "npm:^1.2.0" @@ -16042,7 +16635,7 @@ __metadata: text-table: "npm:^0.2.0" bin: eslint: bin/eslint.js - checksum: 10c0/00bb96fd2471039a312435a6776fe1fd557c056755eaa2b96093ef3a8508c92c8775d5f754768be6b1dddd09fdd3379ddb231eeb9b6c579ee17ea7d68000a529 + checksum: 10c0/1fd31533086c1b72f86770a4d9d7058ee8b4643fd1cfd10c7aac1ecb8725698e88352a87805cf4b2ce890aa35947df4b4da9655fb7fdfa60dbb448a43f6ebcf1 languageName: node linkType: hard @@ -16067,7 +16660,7 @@ __metadata: languageName: node linkType: hard -"esquery@npm:^1.0.1, esquery@npm:^1.4.0, esquery@npm:^1.4.2": +"esquery@npm:^1.0.1, esquery@npm:^1.4.0": version: 1.5.0 resolution: "esquery@npm:1.5.0" dependencies: @@ -16076,6 +16669,15 @@ __metadata: languageName: node linkType: hard +"esquery@npm:^1.4.2": + version: 1.6.0 + resolution: "esquery@npm:1.6.0" + dependencies: + estraverse: "npm:^5.1.0" + checksum: 10c0/cb9065ec605f9da7a76ca6dadb0619dfb611e37a81e318732977d90fab50a256b95fee2d925fba7c2f3f0523aa16f91587246693bc09bc34d5a59575fe6e93d2 + languageName: node + linkType: hard + "esrecurse@npm:^4.3.0": version: 4.3.0 resolution: "esrecurse@npm:4.3.0" @@ -16158,6 +16760,13 @@ __metadata: languageName: node linkType: hard +"eventemitter3@npm:^5.0.1": + version: 5.0.1 + resolution: "eventemitter3@npm:5.0.1" + checksum: 10c0/4ba5c00c506e6c786b4d6262cfbce90ddc14c10d4667e5c83ae993c9de88aa856033994dd2b35b83e8dc1170e224e66a319fa80adc4c32adcd2379bbc75da814 + languageName: node + linkType: hard + "events@npm:^3.2.0": version: 3.3.0 resolution: "events@npm:3.3.0" @@ -16265,7 +16874,16 @@ __metadata: languageName: node linkType: hard -"expect@npm:^29.0.0, expect@npm:^29.6.2": +"expand-tilde@npm:^2.0.0, expand-tilde@npm:^2.0.2": + version: 2.0.2 + resolution: "expand-tilde@npm:2.0.2" + dependencies: + homedir-polyfill: "npm:^1.0.1" + checksum: 10c0/205a60497422746d1c3acbc1d65bd609b945066f239a2b785e69a7a651ac4cbeb4e08555b1ea0023abbe855e6fcb5bbf27d0b371367fdccd303d4fb2b4d66845 + languageName: node + linkType: hard + +"expect@npm:^29.0.0": version: 29.6.2 resolution: "expect@npm:29.6.2" dependencies: @@ -16292,6 +16910,19 @@ __metadata: languageName: node linkType: hard +"expect@npm:^29.7.0": + version: 29.7.0 + resolution: "expect@npm:29.7.0" + dependencies: + "@jest/expect-utils": "npm:^29.7.0" + jest-get-type: "npm:^29.6.3" + jest-matcher-utils: "npm:^29.7.0" + jest-message-util: "npm:^29.7.0" + jest-util: "npm:^29.7.0" + checksum: 10c0/2eddeace66e68b8d8ee5f7be57f3014b19770caaf6815c7a08d131821da527fb8c8cb7b3dcd7c883d2d3d8d184206a4268984618032d1e4b16dc8d6596475d41 + languageName: node + linkType: hard + "exponential-backoff@npm:^3.1.1": version: 3.1.1 resolution: "exponential-backoff@npm:3.1.1" @@ -16338,6 +16969,45 @@ __metadata: languageName: node linkType: hard +"express@npm:^4.19.2": + version: 4.21.1 + resolution: "express@npm:4.21.1" + dependencies: + accepts: "npm:~1.3.8" + array-flatten: "npm:1.1.1" + body-parser: "npm:1.20.3" + content-disposition: "npm:0.5.4" + content-type: "npm:~1.0.4" + cookie: "npm:0.7.1" + cookie-signature: "npm:1.0.6" + debug: "npm:2.6.9" + depd: "npm:2.0.0" + encodeurl: "npm:~2.0.0" + escape-html: "npm:~1.0.3" + etag: "npm:~1.8.1" + finalhandler: "npm:1.3.1" + fresh: "npm:0.5.2" + http-errors: "npm:2.0.0" + merge-descriptors: "npm:1.0.3" + methods: "npm:~1.1.2" + on-finished: "npm:2.4.1" + parseurl: "npm:~1.3.3" + path-to-regexp: "npm:0.1.10" + proxy-addr: "npm:~2.0.7" + qs: "npm:6.13.0" + range-parser: "npm:~1.2.1" + safe-buffer: "npm:5.2.1" + send: "npm:0.19.0" + serve-static: "npm:1.16.2" + setprototypeof: "npm:1.2.0" + statuses: "npm:2.0.1" + type-is: "npm:~1.6.18" + utils-merge: "npm:1.0.1" + vary: "npm:~1.1.2" + checksum: 10c0/0c287867e5f6129d3def1edd9b63103a53c40d4dc8628839d4b6827e35eb8f0de5a4656f9d85f4457eba584f9871ebb2ad26c750b36bd75d9bbb8bcebdc4892c + languageName: node + linkType: hard + "extend-shallow@npm:^2.0.1": version: 2.0.1 resolution: "extend-shallow@npm:2.0.1" @@ -16451,7 +17121,7 @@ __metadata: languageName: node linkType: hard -"fast-glob@npm:3.3.2, fast-glob@npm:^3.3.1": +"fast-glob@npm:3.3.2, fast-glob@npm:^3.3.1, fast-glob@npm:^3.3.2": version: 3.3.2 resolution: "fast-glob@npm:3.3.2" dependencies: @@ -16491,6 +17161,13 @@ __metadata: languageName: node linkType: hard +"fast-uri@npm:^3.0.1": + version: 3.0.3 + resolution: "fast-uri@npm:3.0.3" + checksum: 10c0/4b2c5ce681a062425eae4f15cdc8fc151fd310b2f69b1f96680677820a8b49c3cd6e80661a406e19d50f0c40a3f8bffdd458791baf66f4a879d80be28e10a320 + languageName: node + linkType: hard + "fast-url-parser@npm:1.1.3": version: 1.1.3 resolution: "fast-url-parser@npm:1.1.3" @@ -16666,7 +17343,16 @@ __metadata: resolution: "fill-range@npm:7.0.1" dependencies: to-regex-range: "npm:^5.0.1" - checksum: 10c0/7cdad7d426ffbaadf45aeb5d15ec675bbd77f7597ad5399e3d2766987ed20bda24d5fac64b3ee79d93276f5865608bb22344a26b9b1ae6c4d00bd94bf611623f + checksum: 10c0/7cdad7d426ffbaadf45aeb5d15ec675bbd77f7597ad5399e3d2766987ed20bda24d5fac64b3ee79d93276f5865608bb22344a26b9b1ae6c4d00bd94bf611623f + languageName: node + linkType: hard + +"fill-range@npm:^7.1.1": + version: 7.1.1 + resolution: "fill-range@npm:7.1.1" + dependencies: + to-regex-range: "npm:^5.0.1" + checksum: 10c0/b75b691bbe065472f38824f694c2f7449d7f5004aa950426a2c28f0306c60db9b880c0b0e4ed819997ffb882d1da02cfcfc819bddc94d71627f5269682edf018 languageName: node linkType: hard @@ -16700,6 +17386,21 @@ __metadata: languageName: node linkType: hard +"finalhandler@npm:1.3.1": + version: 1.3.1 + resolution: "finalhandler@npm:1.3.1" + dependencies: + debug: "npm:2.6.9" + encodeurl: "npm:~2.0.0" + escape-html: "npm:~1.0.3" + on-finished: "npm:2.4.1" + parseurl: "npm:~1.3.3" + statuses: "npm:2.0.1" + unpipe: "npm:~1.0.0" + checksum: 10c0/d38035831865a49b5610206a3a9a9aae4e8523cbbcd01175d0480ffbf1278c47f11d89be3ca7f617ae6d94f29cf797546a4619cd84dd109009ef33f12f69019f + languageName: node + linkType: hard + "find-cache-dir@npm:^3.3.1, find-cache-dir@npm:^3.3.2": version: 3.3.2 resolution: "find-cache-dir@npm:3.3.2" @@ -16721,6 +17422,15 @@ __metadata: languageName: node linkType: hard +"find-file-up@npm:^2.0.1": + version: 2.0.1 + resolution: "find-file-up@npm:2.0.1" + dependencies: + resolve-dir: "npm:^1.0.1" + checksum: 10c0/2caaaddc2688b221d604d47c813dcf2ed1b76f51f85f78558be49fe71182f45ab169efb268540f2d7e5cb6dc4f0c77b6fdf10b86d9b29f0b0e8ea9e2fe2e08ab + languageName: node + linkType: hard + "find-index@npm:^0.1.1": version: 0.1.1 resolution: "find-index@npm:0.1.1" @@ -16728,6 +17438,15 @@ __metadata: languageName: node linkType: hard +"find-pkg@npm:2.0.0": + version: 2.0.0 + resolution: "find-pkg@npm:2.0.0" + dependencies: + find-file-up: "npm:^2.0.1" + checksum: 10c0/27a8935ad7da313fe66d4d527bbcafc05137df73253f10109fcc50ce285d93ae15f787a625e096e68fdbc32d716fd234efdb003559059978896e17a7846a70a4 + languageName: node + linkType: hard + "find-up@npm:^3.0.0": version: 3.0.0 resolution: "find-up@npm:3.0.0" @@ -16779,12 +17498,13 @@ __metadata: linkType: hard "flat-cache@npm:^3.0.4": - version: 3.0.4 - resolution: "flat-cache@npm:3.0.4" + version: 3.2.0 + resolution: "flat-cache@npm:3.2.0" dependencies: - flatted: "npm:^3.1.0" + flatted: "npm:^3.2.9" + keyv: "npm:^4.5.3" rimraf: "npm:^3.0.2" - checksum: 10c0/f274dcbadb09ad8d7b6edf2ee9b034bc40bf0c12638f6c4084e9f1d39208cb104a5ebbb24b398880ef048200eaa116852f73d2d8b72e8c9627aba8c3e27ca057 + checksum: 10c0/b76f611bd5f5d68f7ae632e3ae503e678d205cf97a17c6ab5b12f6ca61188b5f1f7464503efae6dc18683ed8f0b41460beb48ac4b9ac63fe6201296a91ba2f75 languageName: node linkType: hard @@ -16797,10 +17517,17 @@ __metadata: languageName: node linkType: hard -"flatted@npm:^3.1.0": - version: 3.2.7 - resolution: "flatted@npm:3.2.7" - checksum: 10c0/207a87c7abfc1ea6928ea16bac84f9eaa6d44d365620ece419e5c41cf44a5e9902b4c1f59c9605771b10e4565a0cb46e99d78e0464e8aabb42c97de880642257 +"flatted@npm:^3.2.7": + version: 3.3.1 + resolution: "flatted@npm:3.3.1" + checksum: 10c0/324166b125ee07d4ca9bcf3a5f98d915d5db4f39d711fba640a3178b959919aae1f7cfd8aabcfef5826ed8aa8a2aa14cc85b2d7d18ff638ddf4ae3df39573eaf + languageName: node + linkType: hard + +"flatted@npm:^3.2.9": + version: 3.3.2 + resolution: "flatted@npm:3.3.2" + checksum: 10c0/24cc735e74d593b6c767fe04f2ef369abe15b62f6906158079b9874bdb3ee5ae7110bb75042e70cd3f99d409d766f357caf78d5ecee9780206f5fdc5edbad334 languageName: node linkType: hard @@ -16826,13 +17553,13 @@ __metadata: languageName: node linkType: hard -"follow-redirects@npm:^1.15.4": - version: 1.15.5 - resolution: "follow-redirects@npm:1.15.5" +"follow-redirects@npm:^1.15.6": + version: 1.15.9 + resolution: "follow-redirects@npm:1.15.9" peerDependenciesMeta: debug: optional: true - checksum: 10c0/418d71688ceaf109dfd6f85f747a0c75de30afe43a294caa211def77f02ef19865b547dfb73fde82b751e1cc507c06c754120b848fe5a7400b0a669766df7615 + checksum: 10c0/5829165bd112c3c0e82be6c15b1a58fa9dcfaede3b3c54697a82fe4a62dd5ae5e8222956b448d2f98e331525f05d00404aba7d696de9e761ef6e42fdc780244f languageName: node linkType: hard @@ -16938,14 +17665,14 @@ __metadata: languageName: node linkType: hard -"form-data@npm:~2.3.2": - version: 2.3.3 - resolution: "form-data@npm:2.3.3" +"form-data@npm:~4.0.0": + version: 4.0.1 + resolution: "form-data@npm:4.0.1" dependencies: asynckit: "npm:^0.4.0" - combined-stream: "npm:^1.0.6" + combined-stream: "npm:^1.0.8" mime-types: "npm:^2.1.12" - checksum: 10c0/706ef1e5649286b6a61e5bb87993a9842807fd8f149cd2548ee807ea4fb882247bdf7f6e64ac4720029c0cd5c80343de0e22eee1dc9e9882e12db9cc7bc016a4 + checksum: 10c0/bb102d570be8592c23f4ea72d7df9daa50c7792eb0cf1c5d7e506c1706e7426a4e4ae48a35b109e91c85f1c0ec63774a21ae252b66f4eb981cb8efef7d0463c8 languageName: node linkType: hard @@ -16979,13 +17706,22 @@ __metadata: languageName: node linkType: hard -"fresh@npm:0.5.2, fresh@npm:^0.5.2": +"fresh@npm:0.5.2, fresh@npm:^0.5.2, fresh@npm:~0.5.2": version: 0.5.2 resolution: "fresh@npm:0.5.2" checksum: 10c0/c6d27f3ed86cc5b601404822f31c900dd165ba63fff8152a3ef714e2012e7535027063bc67ded4cb5b3a49fa596495d46cacd9f47d6328459cf570f08b7d9e5a languageName: node linkType: hard +"front-matter@npm:^4.0.2": + version: 4.0.2 + resolution: "front-matter@npm:4.0.2" + dependencies: + js-yaml: "npm:^3.13.1" + checksum: 10c0/7a0df5ca37428dd563c057bc17a8940481fe53876609bcdc443a02ce463c70f1842c7cb4628b80916de46a253732794b36fb6a31105db0f185698a93acee4011 + languageName: node + linkType: hard + "fs-constants@npm:^1.0.0": version: 1.0.0 resolution: "fs-constants@npm:1.0.0" @@ -17004,37 +17740,37 @@ __metadata: languageName: node linkType: hard -"fs-extra@npm:^10.0.0, fs-extra@npm:^10.1.0": - version: 10.1.0 - resolution: "fs-extra@npm:10.1.0" +"fs-extra@npm:9.1.0, fs-extra@npm:^9.0.0, fs-extra@npm:^9.1.0": + version: 9.1.0 + resolution: "fs-extra@npm:9.1.0" dependencies: + at-least-node: "npm:^1.0.0" graceful-fs: "npm:^4.2.0" jsonfile: "npm:^6.0.1" universalify: "npm:^2.0.0" - checksum: 10c0/5f579466e7109719d162a9249abbeffe7f426eb133ea486e020b89bc6d67a741134076bf439983f2eb79276ceaf6bd7b7c1e43c3fd67fe889863e69072fb0a5e + checksum: 10c0/9b808bd884beff5cb940773018179a6b94a966381d005479f00adda6b44e5e3d4abf765135773d849cc27efe68c349e4a7b86acd7d3306d5932c14f3a4b17a92 languageName: node linkType: hard -"fs-extra@npm:^11.1.0": - version: 11.1.1 - resolution: "fs-extra@npm:11.1.1" +"fs-extra@npm:^10.0.0, fs-extra@npm:^10.1.0": + version: 10.1.0 + resolution: "fs-extra@npm:10.1.0" dependencies: graceful-fs: "npm:^4.2.0" jsonfile: "npm:^6.0.1" universalify: "npm:^2.0.0" - checksum: 10c0/a2480243d7dcfa7d723c5f5b24cf4eba02a6ccece208f1524a2fbde1c629492cfb9a59e4b6d04faff6fbdf71db9fdc8ef7f396417a02884195a625f5d8dc9427 + checksum: 10c0/5f579466e7109719d162a9249abbeffe7f426eb133ea486e020b89bc6d67a741134076bf439983f2eb79276ceaf6bd7b7c1e43c3fd67fe889863e69072fb0a5e languageName: node linkType: hard -"fs-extra@npm:^9.0.0, fs-extra@npm:^9.1.0": - version: 9.1.0 - resolution: "fs-extra@npm:9.1.0" +"fs-extra@npm:^8.1.0": + version: 8.1.0 + resolution: "fs-extra@npm:8.1.0" dependencies: - at-least-node: "npm:^1.0.0" graceful-fs: "npm:^4.2.0" - jsonfile: "npm:^6.0.1" - universalify: "npm:^2.0.0" - checksum: 10c0/9b808bd884beff5cb940773018179a6b94a966381d005479f00adda6b44e5e3d4abf765135773d849cc27efe68c349e4a7b86acd7d3306d5932c14f3a4b17a92 + jsonfile: "npm:^4.0.0" + universalify: "npm:^0.1.0" + checksum: 10c0/259f7b814d9e50d686899550c4f9ded85c46c643f7fe19be69504888e007fcbc08f306fae8ec495b8b998635e997c9e3e175ff2eeed230524ef1c1684cc96423 languageName: node linkType: hard @@ -17157,6 +17893,13 @@ __metadata: languageName: node linkType: hard +"get-east-asian-width@npm:^1.0.0": + version: 1.3.0 + resolution: "get-east-asian-width@npm:1.3.0" + checksum: 10c0/1a049ba697e0f9a4d5514c4623781c5246982bdb61082da6b5ae6c33d838e52ce6726407df285cdbb27ec1908b333cf2820989bd3e986e37bb20979437fdf34b + languageName: node + linkType: hard + "get-intrinsic@npm:^1.0.2, get-intrinsic@npm:^1.1.1": version: 1.2.0 resolution: "get-intrinsic@npm:1.2.0" @@ -17382,6 +18125,22 @@ __metadata: languageName: node linkType: hard +"glob@npm:^10.4.5": + version: 10.4.5 + resolution: "glob@npm:10.4.5" + dependencies: + foreground-child: "npm:^3.1.0" + jackspeak: "npm:^3.1.2" + minimatch: "npm:^9.0.4" + minipass: "npm:^7.1.2" + package-json-from-dist: "npm:^1.0.0" + path-scurry: "npm:^1.11.1" + bin: + glob: dist/esm/bin.mjs + checksum: 10c0/19a9759ea77b8e3ca0a43c2f07ecddc2ad46216b786bb8f993c445aee80d345925a21e5280c7b7c6c59e860a0154b84e4b2b60321fea92cd3c56b4a7489f160e + languageName: node + linkType: hard + "glob@npm:^7.0.0, glob@npm:^7.0.5, glob@npm:^7.1.3, glob@npm:^7.1.4, glob@npm:^7.1.6": version: 7.2.3 resolution: "glob@npm:7.2.3" @@ -17414,6 +18173,17 @@ __metadata: languageName: node linkType: hard +"global-modules@npm:^1.0.0": + version: 1.0.0 + resolution: "global-modules@npm:1.0.0" + dependencies: + global-prefix: "npm:^1.0.1" + is-windows: "npm:^1.0.1" + resolve-dir: "npm:^1.0.0" + checksum: 10c0/7d91ecf78d4fcbc966b2d89c1400df273afea795bc8cadf39857ee1684e442065621fd79413ff5fcd9e90c6f1b2dc0123e644fa0b7811f987fd54c6b9afad858 + languageName: node + linkType: hard + "global-modules@npm:^2.0.0": version: 2.0.0 resolution: "global-modules@npm:2.0.0" @@ -17423,6 +18193,19 @@ __metadata: languageName: node linkType: hard +"global-prefix@npm:^1.0.1": + version: 1.0.2 + resolution: "global-prefix@npm:1.0.2" + dependencies: + expand-tilde: "npm:^2.0.2" + homedir-polyfill: "npm:^1.0.1" + ini: "npm:^1.3.4" + is-windows: "npm:^1.0.1" + which: "npm:^1.2.14" + checksum: 10c0/d8037e300f1dc04d5d410d16afa662e71bfad22dcceba6c9727bb55cc273b8988ca940b3402f62e5392fd261dd9924a9a73a865ef2000219461f31f3fc86be06 + languageName: node + linkType: hard + "global-prefix@npm:^3.0.0": version: 3.0.0 resolution: "global-prefix@npm:3.0.0" @@ -17442,20 +18225,18 @@ __metadata: linkType: hard "globals@npm:^13.19.0": - version: 13.20.0 - resolution: "globals@npm:13.20.0" + version: 13.24.0 + resolution: "globals@npm:13.24.0" dependencies: type-fest: "npm:^0.20.2" - checksum: 10c0/9a028f136f1e7a3574689f430f7d57faa0d699c4c7e92ade00b02882a892be31c314d50dff07b48e607283013117bb8a997406d03a1f7ab4a33a005eb16efd6c + checksum: 10c0/d3c11aeea898eb83d5ec7a99508600fbe8f83d2cf00cbb77f873dbf2bcb39428eff1b538e4915c993d8a3b3473fa71eeebfe22c9bb3a3003d1e26b1f2c8a42cd languageName: node linkType: hard -"globals@npm:^13.20.0": - version: 13.23.0 - resolution: "globals@npm:13.23.0" - dependencies: - type-fest: "npm:^0.20.2" - checksum: 10c0/fc05e184b3be59bffa2580f28551a12a758c3a18df4be91444202982c76f13f52821ad54ffaf7d3f2a4d2498fdf54aeaca8d4540fd9e860a9edb09d34ef4c507 +"globals@npm:^15.11.0, globals@npm:^15.9.0": + version: 15.12.0 + resolution: "globals@npm:15.12.0" + checksum: 10c0/f34e0a1845b694f45188331742af9f488b07ba7440a06e9d2039fce0386fbbfc24afdbb9846ebdccd4092d03644e43081c49eb27b30f4b88e43af156e1c1dc34 languageName: node linkType: hard @@ -17500,6 +18281,20 @@ __metadata: languageName: node linkType: hard +"globby@npm:^14.0.0": + version: 14.0.2 + resolution: "globby@npm:14.0.2" + dependencies: + "@sindresorhus/merge-streams": "npm:^2.1.0" + fast-glob: "npm:^3.3.2" + ignore: "npm:^5.2.4" + path-type: "npm:^5.0.0" + slash: "npm:^5.1.0" + unicorn-magic: "npm:^0.1.0" + checksum: 10c0/3f771cd683b8794db1e7ebc8b6b888d43496d93a82aad4e9d974620f578581210b6c5a6e75ea29573ed16a1345222fab6e9b877a8d1ed56eeb147e09f69c6f78 + languageName: node + linkType: hard + "gopd@npm:^1.0.1": version: 1.0.1 resolution: "gopd@npm:1.0.1" @@ -17641,6 +18436,15 @@ __metadata: languageName: node linkType: hard +"has-tostringtag@npm:^1.0.0": + version: 1.0.2 + resolution: "has-tostringtag@npm:1.0.2" + dependencies: + has-symbols: "npm:^1.0.3" + checksum: 10c0/a8b166462192bafe3d9b6e420a1d581d93dd867adb61be223a17a8d6dad147aa77a8be32c961bb2f27b3ef893cae8d36f564ab651f5e9b7938ae86f74027c48c + languageName: node + linkType: hard + "has-value@npm:^0.3.1": version: 0.3.1 resolution: "has-value@npm:0.3.1" @@ -17817,6 +18621,15 @@ __metadata: languageName: node linkType: hard +"homedir-polyfill@npm:^1.0.1": + version: 1.0.3 + resolution: "homedir-polyfill@npm:1.0.3" + dependencies: + parse-passwd: "npm:^1.0.0" + checksum: 10c0/3c099844f94b8b438f124bd5698bdcfef32b2d455115fb8050d7148e7f7b95fc89ba9922586c491f0e1cdebf437b1053c84ecddb8d596e109e9ac69c5b4a9e27 + languageName: node + linkType: hard + "hosted-git-info@npm:^7.0.0": version: 7.0.1 resolution: "hosted-git-info@npm:7.0.1" @@ -17947,6 +18760,16 @@ __metadata: languageName: node linkType: hard +"http-assert@npm:^1.3.0": + version: 1.5.0 + resolution: "http-assert@npm:1.5.0" + dependencies: + deep-equal: "npm:~1.0.1" + http-errors: "npm:~1.8.0" + checksum: 10c0/7b4e631114a1a77654f9ba3feb96da305ddbdeb42112fe384b7b3249c7141e460d7177970155bea6e54e655a04850415b744b452c1fe5052eba6f4186d16b095 + languageName: node + linkType: hard + "http-cache-semantics@npm:^4.0.0, http-cache-semantics@npm:^4.1.1": version: 4.1.1 resolution: "http-cache-semantics@npm:4.1.1" @@ -17974,6 +18797,19 @@ __metadata: languageName: node linkType: hard +"http-errors@npm:^1.6.3, http-errors@npm:~1.8.0": + version: 1.8.1 + resolution: "http-errors@npm:1.8.1" + dependencies: + depd: "npm:~1.1.2" + inherits: "npm:2.0.4" + setprototypeof: "npm:1.2.0" + statuses: "npm:>= 1.5.0 < 2" + toidentifier: "npm:1.0.1" + checksum: 10c0/f01aeecd76260a6fe7f08e192fcbe9b2f39ed20fc717b852669a69930167053b01790998275c6297d44f435cf0e30edd50c05223d1bec9bc484e6cf35b2d6f43 + languageName: node + linkType: hard + "http-errors@npm:~1.6.2": version: 1.6.3 resolution: "http-errors@npm:1.6.3" @@ -18046,6 +18882,20 @@ __metadata: languageName: node linkType: hard +"http-proxy-middleware@npm:^3.0.3": + version: 3.0.3 + resolution: "http-proxy-middleware@npm:3.0.3" + dependencies: + "@types/http-proxy": "npm:^1.17.15" + debug: "npm:^4.3.6" + http-proxy: "npm:^1.18.1" + is-glob: "npm:^4.0.3" + is-plain-object: "npm:^5.0.0" + micromatch: "npm:^4.0.8" + checksum: 10c0/c4d68a10d8d42f02e59f7dc8249c98d1ac03aecee177b42c2d8b6a0cb6b71c6688e759e5387f4cdb570150070ca1c6808b38010cbdf67f4500a2e75671a36e05 + languageName: node + linkType: hard + "http-proxy@npm:^1.18.1": version: 1.18.1 resolution: "http-proxy@npm:1.18.1" @@ -18080,24 +18930,24 @@ __metadata: languageName: node linkType: hard -"http-signature@npm:~1.3.6": - version: 1.3.6 - resolution: "http-signature@npm:1.3.6" +"http-signature@npm:~1.4.0": + version: 1.4.0 + resolution: "http-signature@npm:1.4.0" dependencies: assert-plus: "npm:^1.0.0" jsprim: "npm:^2.0.2" - sshpk: "npm:^1.14.1" - checksum: 10c0/f8d15d8c91a5a80805530e2f401a3f83ed55162058651d86ad00df294b159a54e001b5d00e04983f7542a55865aee02d2d83d68c8499137ff2bc142553d8dfc2 + sshpk: "npm:^1.18.0" + checksum: 10c0/b9806f5a9ed82a146589837d175c43b596b1cc8c9431665e83d47c152aa8a4629dd1b1e050f8f56e7f17f62cf97b58e888775093310441ddee5f105f28646b2b languageName: node linkType: hard -"https-proxy-agent@npm:7.0.4": - version: 7.0.4 - resolution: "https-proxy-agent@npm:7.0.4" +"https-proxy-agent@npm:7.0.5": + version: 7.0.5 + resolution: "https-proxy-agent@npm:7.0.5" dependencies: agent-base: "npm:^7.0.2" debug: "npm:4" - checksum: 10c0/bc4f7c38da32a5fc622450b6cb49a24ff596f9bd48dcedb52d2da3fa1c1a80e100fb506bd59b326c012f21c863c69b275c23de1a01d0b84db396822fdf25e52b + checksum: 10c0/2490e3acec397abeb88807db52cac59102d5ed758feee6df6112ab3ccd8325e8a1ce8bce6f4b66e5470eca102d31e425ace904242e4fa28dbe0c59c4bafa7b2c languageName: node linkType: hard @@ -18217,6 +19067,13 @@ __metadata: languageName: node linkType: hard +"ignore@npm:^5.3.1": + version: 5.3.2 + resolution: "ignore@npm:5.3.2" + checksum: 10c0/f9f652c957983634ded1e7f02da3b559a0d4cc210fca3792cb67f1b153623c9c42efdc1c4121af171e295444459fc4a9201101fb041b1104a3c000bccb188337 + languageName: node + linkType: hard + "image-size@npm:^1.0.1": version: 1.0.2 resolution: "image-size@npm:1.0.2" @@ -18360,14 +19217,14 @@ __metadata: languageName: node linkType: hard -"ini@npm:4.1.2": - version: 4.1.2 - resolution: "ini@npm:4.1.2" - checksum: 10c0/e0ffe587038e26ca1debfece6f5e52fd17f4e65be59bb481bb24b89cd2be31a71f619465918da215916b4deba7d1134c228c58fe5e0db66a71a472dee9b8f99c +"ini@npm:4.1.3": + version: 4.1.3 + resolution: "ini@npm:4.1.3" + checksum: 10c0/0d27eff094d5f3899dd7c00d0c04ea733ca03a8eb6f9406ce15daac1a81de022cb417d6eaff7e4342451ffa663389c565ffc68d6825eaf686bf003280b945764 languageName: node linkType: hard -"ini@npm:^1.3.5, ini@npm:~1.3.0": +"ini@npm:^1.3.4, ini@npm:^1.3.5, ini@npm:~1.3.0": version: 1.3.8 resolution: "ini@npm:1.3.8" checksum: 10c0/ec93838d2328b619532e4f1ff05df7909760b6f66d9c9e2ded11e5c1897d6f2f9980c54dd638f88654b00919ce31e827040631eab0a3969e4d1abefa0719516a @@ -18413,29 +19270,6 @@ __metadata: languageName: node linkType: hard -"inquirer@npm:9.2.22": - version: 9.2.22 - resolution: "inquirer@npm:9.2.22" - dependencies: - "@inquirer/figures": "npm:^1.0.2" - "@ljharb/through": "npm:^2.3.13" - ansi-escapes: "npm:^4.3.2" - chalk: "npm:^5.3.0" - cli-cursor: "npm:^3.1.0" - cli-width: "npm:^4.1.0" - external-editor: "npm:^3.1.0" - lodash: "npm:^4.17.21" - mute-stream: "npm:1.0.0" - ora: "npm:^5.4.1" - run-async: "npm:^3.0.0" - rxjs: "npm:^7.8.1" - string-width: "npm:^4.2.3" - strip-ansi: "npm:^6.0.1" - wrap-ansi: "npm:^6.2.0" - checksum: 10c0/a7dc69a42b634a7222e75783d733a24d776bff43dcc77c6f0a47637dbc02a362de182b30165ede7978cd9fe7d22bae14fdd84e0cbfaec8c2b0a89d9131867bca - languageName: node - linkType: hard - "insert-css@npm:0.0.0": version: 0.0.0 resolution: "insert-css@npm:0.0.0" @@ -18588,17 +19422,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-core-module@npm:^2.11.0, is-core-module@npm:^2.8.1": version: 2.12.0 resolution: "is-core-module@npm:2.12.0" @@ -18742,6 +19565,15 @@ __metadata: languageName: node linkType: hard +"is-fullwidth-code-point@npm:^5.0.0": + version: 5.0.0 + resolution: "is-fullwidth-code-point@npm:5.0.0" + dependencies: + get-east-asian-width: "npm:^1.0.0" + checksum: 10c0/cd591b27d43d76b05fa65ed03eddce57a16e1eca0b7797ff7255de97019bcaf0219acfc0c4f7af13319e13541f2a53c0ace476f442b13267b9a6a7568f2b65c8 + languageName: node + linkType: hard + "is-generator-fn@npm:^2.0.0": version: 2.1.0 resolution: "is-generator-fn@npm:2.1.0" @@ -18749,6 +19581,15 @@ __metadata: languageName: node linkType: hard +"is-generator-function@npm:^1.0.7": + version: 1.0.10 + resolution: "is-generator-function@npm:1.0.10" + dependencies: + has-tostringtag: "npm:^1.0.0" + checksum: 10c0/df03514df01a6098945b5a0cfa1abff715807c8e72f57c49a0686ad54b3b74d394e2d8714e6f709a71eb00c9630d48e73ca1796c1ccc84ac95092c1fecc0d98b + languageName: node + linkType: hard + "is-glob@npm:^2.0.0, is-glob@npm:^2.0.1": version: 2.0.1 resolution: "is-glob@npm:2.0.1" @@ -18922,6 +19763,13 @@ __metadata: languageName: node linkType: hard +"is-plain-object@npm:^5.0.0": + version: 5.0.0 + resolution: "is-plain-object@npm:5.0.0" + checksum: 10c0/893e42bad832aae3511c71fd61c0bf61aa3a6d853061c62a307261842727d0d25f761ce9379f7ba7226d6179db2a3157efa918e7fe26360f3bf0842d9f28942c + languageName: node + linkType: hard + "is-posix-bracket@npm:^0.1.0": version: 0.1.1 resolution: "is-posix-bracket@npm:0.1.1" @@ -19017,7 +19865,7 @@ __metadata: languageName: node linkType: hard -"is-windows@npm:^1.0.2": +"is-windows@npm:^1.0.1, is-windows@npm:^1.0.2": version: 1.0.2 resolution: "is-windows@npm:1.0.2" checksum: 10c0/b32f418ab3385604a66f1b7a3ce39d25e8881dee0bd30816dc8344ef6ff9df473a732bcc1ec4e84fe99b2f229ae474f7133e8e93f9241686cfcf7eebe53ba7a5 @@ -19116,6 +19964,22 @@ __metadata: languageName: node linkType: hard +"isomorphic-rslog@npm:0.0.5": + version: 0.0.5 + resolution: "isomorphic-rslog@npm:0.0.5" + checksum: 10c0/1b5837ee5dd8eeaa4fce3bfd7b439aeb2c793e41d72988316fd22dd83edd1fda928f4879ec3e86af4c16732624cf16d6c6040d147c311abbd0b490a1f15ef889 + languageName: node + linkType: hard + +"isomorphic-ws@npm:5.0.0": + version: 5.0.0 + resolution: "isomorphic-ws@npm:5.0.0" + peerDependencies: + ws: "*" + checksum: 10c0/a058ac8b5e6efe9e46252cb0bc67fd325005d7216451d1a51238bc62d7da8486f828ef017df54ddf742e0fffcbe4b1bcc2a66cc115b027ed0180334cd18df252 + languageName: node + linkType: hard + "isstream@npm:~0.1.2": version: 0.1.2 resolution: "isstream@npm:0.1.2" @@ -19130,6 +19994,19 @@ __metadata: languageName: node linkType: hard +"istanbul-lib-instrument@npm:6.0.3, istanbul-lib-instrument@npm:^6.0.0": + version: 6.0.3 + resolution: "istanbul-lib-instrument@npm:6.0.3" + dependencies: + "@babel/core": "npm:^7.23.9" + "@babel/parser": "npm:^7.23.9" + "@istanbuljs/schema": "npm:^0.1.3" + istanbul-lib-coverage: "npm:^3.2.0" + semver: "npm:^7.5.4" + checksum: 10c0/a1894e060dd2a3b9f046ffdc87b44c00a35516f5e6b7baf4910369acca79e506fc5323a816f811ae23d82334b38e3ddeb8b3b331bd2c860540793b59a8689128 + languageName: node + linkType: hard + "istanbul-lib-instrument@npm:^5.0.4, istanbul-lib-instrument@npm:^5.1.0": version: 5.2.1 resolution: "istanbul-lib-instrument@npm:5.2.1" @@ -19228,13 +20105,14 @@ __metadata: languageName: node linkType: hard -"jest-changed-files@npm:^29.5.0": - version: 29.5.0 - resolution: "jest-changed-files@npm:29.5.0" +"jest-changed-files@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-changed-files@npm:29.7.0" dependencies: execa: "npm:^5.0.0" + jest-util: "npm:^29.7.0" p-limit: "npm:^3.1.0" - checksum: 10c0/96334c78507a13c0f11f1360d893ade78fba7fd169825ca4acf7565156ceddd89b952be81c00378fa87ab642d3f44902c34a20f21b561e985e79f6e81fa7e9a8 + checksum: 10c0/e071384d9e2f6bb462231ac53f29bff86f0e12394c1b49ccafbad225ce2ab7da226279a8a94f421949920bef9be7ef574fd86aee22e8adfa149be73554ab828b languageName: node linkType: hard @@ -19266,49 +20144,48 @@ __metadata: languageName: node linkType: hard -"jest-circus@npm:^29.6.2": - version: 29.6.2 - resolution: "jest-circus@npm:29.6.2" +"jest-circus@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-circus@npm:29.7.0" dependencies: - "@jest/environment": "npm:^29.6.2" - "@jest/expect": "npm:^29.6.2" - "@jest/test-result": "npm:^29.6.2" - "@jest/types": "npm:^29.6.1" + "@jest/environment": "npm:^29.7.0" + "@jest/expect": "npm:^29.7.0" + "@jest/test-result": "npm:^29.7.0" + "@jest/types": "npm:^29.6.3" "@types/node": "npm:*" chalk: "npm:^4.0.0" co: "npm:^4.6.0" dedent: "npm:^1.0.0" is-generator-fn: "npm:^2.0.0" - jest-each: "npm:^29.6.2" - jest-matcher-utils: "npm:^29.6.2" - jest-message-util: "npm:^29.6.2" - jest-runtime: "npm:^29.6.2" - jest-snapshot: "npm:^29.6.2" - jest-util: "npm:^29.6.2" + jest-each: "npm:^29.7.0" + jest-matcher-utils: "npm:^29.7.0" + jest-message-util: "npm:^29.7.0" + jest-runtime: "npm:^29.7.0" + jest-snapshot: "npm:^29.7.0" + jest-util: "npm:^29.7.0" p-limit: "npm:^3.1.0" - pretty-format: "npm:^29.6.2" + pretty-format: "npm:^29.7.0" pure-rand: "npm:^6.0.0" slash: "npm:^3.0.0" stack-utils: "npm:^2.0.3" - checksum: 10c0/04f3176bcc3adf0a5d5895f3ce2cb86fafa5d0d03d246cddd0a39021ec4bbc1092ef30792a9d8cdfb1cb6fcee75a277354d65aef6ca8c364fd3747d8ce67e255 + checksum: 10c0/8d15344cf7a9f14e926f0deed64ed190c7a4fa1ed1acfcd81e4cc094d3cc5bf7902ebb7b874edc98ada4185688f90c91e1747e0dfd7ac12463b097968ae74b5e languageName: node linkType: hard -"jest-cli@npm:^29.6.2": - version: 29.6.2 - resolution: "jest-cli@npm:29.6.2" +"jest-cli@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-cli@npm:29.7.0" dependencies: - "@jest/core": "npm:^29.6.2" - "@jest/test-result": "npm:^29.6.2" - "@jest/types": "npm:^29.6.1" + "@jest/core": "npm:^29.7.0" + "@jest/test-result": "npm:^29.7.0" + "@jest/types": "npm:^29.6.3" chalk: "npm:^4.0.0" + create-jest: "npm:^29.7.0" exit: "npm:^0.1.2" - graceful-fs: "npm:^4.2.9" import-local: "npm:^3.0.2" - jest-config: "npm:^29.6.2" - jest-util: "npm:^29.6.2" - jest-validate: "npm:^29.6.2" - prompts: "npm:^2.0.1" + jest-config: "npm:^29.7.0" + jest-util: "npm:^29.7.0" + jest-validate: "npm:^29.7.0" yargs: "npm:^17.3.1" peerDependencies: node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 @@ -19317,7 +20194,7 @@ __metadata: optional: true bin: jest: bin/jest.js - checksum: 10c0/76d359427a573821b0b4f80a8b752e54778b8da1e09e737ae1ff5c29487d762a6f0d16becd5c1d2017cd337295945be82448539f90d04d173c72ee577c6cf897 + checksum: 10c0/a658fd55050d4075d65c1066364595962ead7661711495cfa1dfeecf3d6d0a8ffec532f3dbd8afbb3e172dd5fd2fb2e813c5e10256e7cf2fea766314942fb43a languageName: node linkType: hard @@ -19359,30 +20236,30 @@ __metadata: languageName: node linkType: hard -"jest-config@npm:^29.6.2": - version: 29.6.2 - resolution: "jest-config@npm:29.6.2" +"jest-config@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-config@npm:29.7.0" dependencies: "@babel/core": "npm:^7.11.6" - "@jest/test-sequencer": "npm:^29.6.2" - "@jest/types": "npm:^29.6.1" - babel-jest: "npm:^29.6.2" + "@jest/test-sequencer": "npm:^29.7.0" + "@jest/types": "npm:^29.6.3" + babel-jest: "npm:^29.7.0" chalk: "npm:^4.0.0" ci-info: "npm:^3.2.0" deepmerge: "npm:^4.2.2" glob: "npm:^7.1.3" graceful-fs: "npm:^4.2.9" - jest-circus: "npm:^29.6.2" - jest-environment-node: "npm:^29.6.2" - jest-get-type: "npm:^29.4.3" - jest-regex-util: "npm:^29.4.3" - jest-resolve: "npm:^29.6.2" - jest-runner: "npm:^29.6.2" - jest-util: "npm:^29.6.2" - jest-validate: "npm:^29.6.2" + jest-circus: "npm:^29.7.0" + jest-environment-node: "npm:^29.7.0" + jest-get-type: "npm:^29.6.3" + jest-regex-util: "npm:^29.6.3" + jest-resolve: "npm:^29.7.0" + jest-runner: "npm:^29.7.0" + jest-util: "npm:^29.7.0" + jest-validate: "npm:^29.7.0" micromatch: "npm:^4.0.4" parse-json: "npm:^5.2.0" - pretty-format: "npm:^29.6.2" + pretty-format: "npm:^29.7.0" slash: "npm:^3.0.0" strip-json-comments: "npm:^3.1.1" peerDependencies: @@ -19393,11 +20270,11 @@ __metadata: optional: true ts-node: optional: true - checksum: 10c0/334b8cf02c9c9f5f3685fd6f673d634691a370c9a96f1a855234c7513c409a1cc842f2c8e786da9ef8734d33b6ee95d7b7b4d586c1a4f22bcae59118755d7d2a + checksum: 10c0/bab23c2eda1fff06e0d104b00d6adfb1d1aabb7128441899c9bff2247bd26710b050a5364281ce8d52b46b499153bf7e3ee88b19831a8f3451f1477a0246a0f1 languageName: node linkType: hard -"jest-diff@npm:^29.4.1": +"jest-diff@npm:^29.4.1, jest-diff@npm:^29.7.0": version: 29.7.0 resolution: "jest-diff@npm:29.7.0" dependencies: @@ -19442,54 +20319,42 @@ __metadata: languageName: node linkType: hard -"jest-each@npm:^29.5.0": - version: 29.5.0 - resolution: "jest-each@npm:29.5.0" - dependencies: - "@jest/types": "npm:^29.5.0" - chalk: "npm:^4.0.0" - jest-get-type: "npm:^29.4.3" - jest-util: "npm:^29.5.0" - pretty-format: "npm:^29.5.0" - checksum: 10c0/214f6b5adfc0d6a3e837769018b7a7b69f41e99aac939fe4730bcca23f69e3566ed23706f95a396b20e63e6b9f90990053fc3c1662808036d4f41e4d6d32641d - languageName: node - linkType: hard - -"jest-each@npm:^29.6.2": - version: 29.6.2 - resolution: "jest-each@npm:29.6.2" +"jest-docblock@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-docblock@npm:29.7.0" dependencies: - "@jest/types": "npm:^29.6.1" - chalk: "npm:^4.0.0" - jest-get-type: "npm:^29.4.3" - jest-util: "npm:^29.6.2" - pretty-format: "npm:^29.6.2" - checksum: 10c0/b586f5c811011589308f2d8e0d5e596fa26d101e1116b55c624342327b932d3644aac37ce7b6c4eb8ef018893d2a41610ed7edbabfe125c3b46cf9a2b0f03d9b + detect-newline: "npm:^3.0.0" + checksum: 10c0/d932a8272345cf6b6142bb70a2bb63e0856cc0093f082821577ea5bdf4643916a98744dfc992189d2b1417c38a11fa42466f6111526bc1fb81366f56410f3be9 languageName: node linkType: hard -"jest-environment-jsdom@npm:29.5.0": +"jest-each@npm:^29.5.0": version: 29.5.0 - resolution: "jest-environment-jsdom@npm:29.5.0" + resolution: "jest-each@npm:29.5.0" dependencies: - "@jest/environment": "npm:^29.5.0" - "@jest/fake-timers": "npm:^29.5.0" "@jest/types": "npm:^29.5.0" - "@types/jsdom": "npm:^20.0.0" - "@types/node": "npm:*" - jest-mock: "npm:^29.5.0" - jest-util: "npm:^29.5.0" - jsdom: "npm:^20.0.0" - peerDependencies: - canvas: ^2.5.0 - peerDependenciesMeta: - canvas: - optional: true - checksum: 10c0/972a1bdfb1d508a359951ec11ade5dfad7cfabea0ab9f7746737ba10e0c6381e34f2b4acb03c7e5eb623611813310dfb0775eb0607c5537b7618234d04aab2ac + chalk: "npm:^4.0.0" + jest-get-type: "npm:^29.4.3" + jest-util: "npm:^29.5.0" + pretty-format: "npm:^29.5.0" + checksum: 10c0/214f6b5adfc0d6a3e837769018b7a7b69f41e99aac939fe4730bcca23f69e3566ed23706f95a396b20e63e6b9f90990053fc3c1662808036d4f41e4d6d32641d + languageName: node + linkType: hard + +"jest-each@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-each@npm:29.7.0" + dependencies: + "@jest/types": "npm:^29.6.3" + chalk: "npm:^4.0.0" + jest-get-type: "npm:^29.6.3" + jest-util: "npm:^29.7.0" + pretty-format: "npm:^29.7.0" + checksum: 10c0/f7f9a90ebee80cc688e825feceb2613627826ac41ea76a366fa58e669c3b2403d364c7c0a74d862d469b103c843154f8456d3b1c02b487509a12afa8b59edbb4 languageName: node linkType: hard -"jest-environment-jsdom@npm:^29.0.0": +"jest-environment-jsdom@npm:29.7.0, jest-environment-jsdom@npm:^29.0.0": version: 29.7.0 resolution: "jest-environment-jsdom@npm:29.7.0" dependencies: @@ -19524,17 +20389,17 @@ __metadata: languageName: node linkType: hard -"jest-environment-node@npm:^29.6.2": - version: 29.6.2 - resolution: "jest-environment-node@npm:29.6.2" +"jest-environment-node@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-environment-node@npm:29.7.0" dependencies: - "@jest/environment": "npm:^29.6.2" - "@jest/fake-timers": "npm:^29.6.2" - "@jest/types": "npm:^29.6.1" + "@jest/environment": "npm:^29.7.0" + "@jest/fake-timers": "npm:^29.7.0" + "@jest/types": "npm:^29.6.3" "@types/node": "npm:*" - jest-mock: "npm:^29.6.2" - jest-util: "npm:^29.6.2" - checksum: 10c0/fea7c71e2b6ef901679983809918f670551d0122380f60695df554ca1dc9a065ec347e14c516c9b5a184494572320cd1696bd5bc817853a3e6cdb89b44d4054e + jest-mock: "npm:^29.7.0" + jest-util: "npm:^29.7.0" + checksum: 10c0/61f04fec077f8b1b5c1a633e3612fc0c9aa79a0ab7b05600683428f1e01a4d35346c474bde6f439f9fcc1a4aa9a2861ff852d079a43ab64b02105d1004b2592b languageName: node linkType: hard @@ -19575,26 +20440,26 @@ __metadata: languageName: node linkType: hard -"jest-haste-map@npm:^29.6.2": - version: 29.6.2 - resolution: "jest-haste-map@npm:29.6.2" +"jest-haste-map@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-haste-map@npm:29.7.0" dependencies: - "@jest/types": "npm:^29.6.1" + "@jest/types": "npm:^29.6.3" "@types/graceful-fs": "npm:^4.1.3" "@types/node": "npm:*" anymatch: "npm:^3.0.3" fb-watchman: "npm:^2.0.0" fsevents: "npm:^2.3.2" graceful-fs: "npm:^4.2.9" - jest-regex-util: "npm:^29.4.3" - jest-util: "npm:^29.6.2" - jest-worker: "npm:^29.6.2" + jest-regex-util: "npm:^29.6.3" + jest-util: "npm:^29.7.0" + jest-worker: "npm:^29.7.0" micromatch: "npm:^4.0.4" walker: "npm:^1.0.8" dependenciesMeta: fsevents: optional: true - checksum: 10c0/12c921ff059613b67e8b3a0730fe8f5f38e39a1aeb2050948a5c6890c4705f39decd4f7da8ebc7ede22e0eeef37fef2e9256952ac6557dd3bcd62416cab0612f + checksum: 10c0/2683a8f29793c75a4728787662972fedd9267704c8f7ef9d84f2beed9a977f1cf5e998c07b6f36ba5603f53cb010c911fe8cd0ac9886e073fe28ca66beefd30c languageName: node linkType: hard @@ -19608,13 +20473,13 @@ __metadata: languageName: node linkType: hard -"jest-leak-detector@npm:^29.6.2": - version: 29.6.2 - resolution: "jest-leak-detector@npm:29.6.2" +"jest-leak-detector@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-leak-detector@npm:29.7.0" dependencies: - jest-get-type: "npm:^29.4.3" - pretty-format: "npm:^29.6.2" - checksum: 10c0/70eb538bb137b769908d4d1e15d9b380a06285ea31c1d2ae05bcc9269863efe6369484cb33bf6c6f3e325dd53cd252cd7e868bdbd2b31367a9b41b449eb8e4a9 + jest-get-type: "npm:^29.6.3" + pretty-format: "npm:^29.7.0" + checksum: 10c0/71bb9f77fc489acb842a5c7be030f2b9acb18574dc9fb98b3100fc57d422b1abc55f08040884bd6e6dbf455047a62f7eaff12aa4058f7cbdc11558718ca6a395 languageName: node linkType: hard @@ -19642,6 +20507,18 @@ __metadata: languageName: node linkType: hard +"jest-matcher-utils@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-matcher-utils@npm:29.7.0" + dependencies: + chalk: "npm:^4.0.0" + jest-diff: "npm:^29.7.0" + jest-get-type: "npm:^29.6.3" + pretty-format: "npm:^29.7.0" + checksum: 10c0/0d0e70b28fa5c7d4dce701dc1f46ae0922102aadc24ed45d594dd9b7ae0a8a6ef8b216718d1ab79e451291217e05d4d49a82666e1a3cc2b428b75cd9c933244e + languageName: node + linkType: hard + "jest-message-util@npm:^29.5.0": version: 29.5.0 resolution: "jest-message-util@npm:29.5.0" @@ -19704,17 +20581,6 @@ __metadata: languageName: node linkType: hard -"jest-mock@npm:^29.6.2": - version: 29.6.2 - resolution: "jest-mock@npm:29.6.2" - dependencies: - "@jest/types": "npm:^29.6.1" - "@types/node": "npm:*" - jest-util: "npm:^29.6.2" - checksum: 10c0/34e8119876696d640db1b33b2c88f3bbd56b676f5e82ae65babdb56b0dab054d856b903785d38e1e8e3274549622b9a4556bfaa301d75fe4e2b30494cac5b8ee - languageName: node - linkType: hard - "jest-mock@npm:^29.7.0": version: 29.7.0 resolution: "jest-mock@npm:29.7.0" @@ -19770,13 +20636,20 @@ __metadata: languageName: node linkType: hard -"jest-resolve-dependencies@npm:^29.6.2": - version: 29.6.2 - resolution: "jest-resolve-dependencies@npm:29.6.2" +"jest-regex-util@npm:^29.6.3": + version: 29.6.3 + resolution: "jest-regex-util@npm:29.6.3" + checksum: 10c0/4e33fb16c4f42111159cafe26397118dcfc4cf08bc178a67149fb05f45546a91928b820894572679d62559839d0992e21080a1527faad65daaae8743a5705a3b + languageName: node + linkType: hard + +"jest-resolve-dependencies@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-resolve-dependencies@npm:29.7.0" dependencies: - jest-regex-util: "npm:^29.4.3" - jest-snapshot: "npm:^29.6.2" - checksum: 10c0/b80172d164fe36a3cd9b19c458c3e8075e7935cdaa191f6e2e335f9b5c603faf0785efc35f9cf6c496729de34a3bd98f6cb8dd877c11fa6e17adf385d1ca85a6 + jest-regex-util: "npm:^29.6.3" + jest-snapshot: "npm:^29.7.0" + checksum: 10c0/b6e9ad8ae5b6049474118ea6441dfddd385b6d1fc471db0136f7c8fbcfe97137a9665e4f837a9f49f15a29a1deb95a14439b7aec812f3f99d08f228464930f0d languageName: node linkType: hard @@ -19797,20 +20670,20 @@ __metadata: languageName: node linkType: hard -"jest-resolve@npm:^29.6.2": - version: 29.6.2 - resolution: "jest-resolve@npm:29.6.2" +"jest-resolve@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-resolve@npm:29.7.0" dependencies: chalk: "npm:^4.0.0" graceful-fs: "npm:^4.2.9" - jest-haste-map: "npm:^29.6.2" + jest-haste-map: "npm:^29.7.0" jest-pnp-resolver: "npm:^1.2.2" - jest-util: "npm:^29.6.2" - jest-validate: "npm:^29.6.2" + jest-util: "npm:^29.7.0" + jest-validate: "npm:^29.7.0" resolve: "npm:^1.20.0" resolve.exports: "npm:^2.0.0" slash: "npm:^3.0.0" - checksum: 10c0/df6ace45facf1f9d8f2911fcc1eefcc871afa107748f41a2f84a3d7b707d2211be1450ba5044fe8fa1ffc497b6814309f71f376aac139683ddc7b05b263d45f9 + checksum: 10c0/59da5c9c5b50563e959a45e09e2eace783d7f9ac0b5dcc6375dea4c0db938d2ebda97124c8161310082760e8ebbeff9f6b177c15ca2f57fb424f637a5d2adb47 languageName: node linkType: hard @@ -19843,32 +20716,32 @@ __metadata: languageName: node linkType: hard -"jest-runner@npm:^29.6.2": - version: 29.6.2 - resolution: "jest-runner@npm:29.6.2" +"jest-runner@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-runner@npm:29.7.0" dependencies: - "@jest/console": "npm:^29.6.2" - "@jest/environment": "npm:^29.6.2" - "@jest/test-result": "npm:^29.6.2" - "@jest/transform": "npm:^29.6.2" - "@jest/types": "npm:^29.6.1" + "@jest/console": "npm:^29.7.0" + "@jest/environment": "npm:^29.7.0" + "@jest/test-result": "npm:^29.7.0" + "@jest/transform": "npm:^29.7.0" + "@jest/types": "npm:^29.6.3" "@types/node": "npm:*" chalk: "npm:^4.0.0" emittery: "npm:^0.13.1" graceful-fs: "npm:^4.2.9" - jest-docblock: "npm:^29.4.3" - jest-environment-node: "npm:^29.6.2" - jest-haste-map: "npm:^29.6.2" - jest-leak-detector: "npm:^29.6.2" - jest-message-util: "npm:^29.6.2" - jest-resolve: "npm:^29.6.2" - jest-runtime: "npm:^29.6.2" - jest-util: "npm:^29.6.2" - jest-watcher: "npm:^29.6.2" - jest-worker: "npm:^29.6.2" + jest-docblock: "npm:^29.7.0" + jest-environment-node: "npm:^29.7.0" + jest-haste-map: "npm:^29.7.0" + jest-leak-detector: "npm:^29.7.0" + jest-message-util: "npm:^29.7.0" + jest-resolve: "npm:^29.7.0" + jest-runtime: "npm:^29.7.0" + jest-util: "npm:^29.7.0" + jest-watcher: "npm:^29.7.0" + jest-worker: "npm:^29.7.0" p-limit: "npm:^3.1.0" source-map-support: "npm:0.5.13" - checksum: 10c0/d0f2fc80b01c40b28bb86ace6a1f913a346dbdd81d8ed84e689bc0e21b27f7e9d1b963e6d8ece44df1a870ba14016730ce08444b15f3fdee92a15dff0c6c1aa3 + checksum: 10c0/2194b4531068d939f14c8d3274fe5938b77fa73126aedf9c09ec9dec57d13f22c72a3b5af01ac04f5c1cf2e28d0ac0b4a54212a61b05f10b5d6b47f2a1097bb4 languageName: node linkType: hard @@ -19902,33 +20775,33 @@ __metadata: languageName: node linkType: hard -"jest-runtime@npm:^29.6.2": - version: 29.6.2 - resolution: "jest-runtime@npm:29.6.2" - dependencies: - "@jest/environment": "npm:^29.6.2" - "@jest/fake-timers": "npm:^29.6.2" - "@jest/globals": "npm:^29.6.2" - "@jest/source-map": "npm:^29.6.0" - "@jest/test-result": "npm:^29.6.2" - "@jest/transform": "npm:^29.6.2" - "@jest/types": "npm:^29.6.1" +"jest-runtime@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-runtime@npm:29.7.0" + dependencies: + "@jest/environment": "npm:^29.7.0" + "@jest/fake-timers": "npm:^29.7.0" + "@jest/globals": "npm:^29.7.0" + "@jest/source-map": "npm:^29.6.3" + "@jest/test-result": "npm:^29.7.0" + "@jest/transform": "npm:^29.7.0" + "@jest/types": "npm:^29.6.3" "@types/node": "npm:*" chalk: "npm:^4.0.0" cjs-module-lexer: "npm:^1.0.0" collect-v8-coverage: "npm:^1.0.0" glob: "npm:^7.1.3" graceful-fs: "npm:^4.2.9" - jest-haste-map: "npm:^29.6.2" - jest-message-util: "npm:^29.6.2" - jest-mock: "npm:^29.6.2" - jest-regex-util: "npm:^29.4.3" - jest-resolve: "npm:^29.6.2" - jest-snapshot: "npm:^29.6.2" - jest-util: "npm:^29.6.2" + jest-haste-map: "npm:^29.7.0" + jest-message-util: "npm:^29.7.0" + jest-mock: "npm:^29.7.0" + jest-regex-util: "npm:^29.6.3" + jest-resolve: "npm:^29.7.0" + jest-snapshot: "npm:^29.7.0" + jest-util: "npm:^29.7.0" slash: "npm:^3.0.0" strip-bom: "npm:^4.0.0" - checksum: 10c0/026a5fa33fa370561e6ab33a01b59e3e382b72f8eb7a42a85d1c9619bc9123a274ec791b823ad4bf58e20285758e9e895e53da6ae971c92124612f99fe7c7ffe + checksum: 10c0/7cd89a1deda0bda7d0941835434e44f9d6b7bd50b5c5d9b0fc9a6c990b2d4d2cab59685ab3cb2850ed4cc37059f6de903af5a50565d7f7f1192a77d3fd6dd2a6 languageName: node linkType: hard @@ -19963,31 +20836,31 @@ __metadata: languageName: node linkType: hard -"jest-snapshot@npm:^29.6.2": - version: 29.6.2 - resolution: "jest-snapshot@npm:29.6.2" +"jest-snapshot@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-snapshot@npm:29.7.0" dependencies: "@babel/core": "npm:^7.11.6" "@babel/generator": "npm:^7.7.2" "@babel/plugin-syntax-jsx": "npm:^7.7.2" "@babel/plugin-syntax-typescript": "npm:^7.7.2" "@babel/types": "npm:^7.3.3" - "@jest/expect-utils": "npm:^29.6.2" - "@jest/transform": "npm:^29.6.2" - "@jest/types": "npm:^29.6.1" + "@jest/expect-utils": "npm:^29.7.0" + "@jest/transform": "npm:^29.7.0" + "@jest/types": "npm:^29.6.3" babel-preset-current-node-syntax: "npm:^1.0.0" chalk: "npm:^4.0.0" - expect: "npm:^29.6.2" + expect: "npm:^29.7.0" graceful-fs: "npm:^4.2.9" - jest-diff: "npm:^29.6.2" - jest-get-type: "npm:^29.4.3" - jest-matcher-utils: "npm:^29.6.2" - jest-message-util: "npm:^29.6.2" - jest-util: "npm:^29.6.2" + jest-diff: "npm:^29.7.0" + jest-get-type: "npm:^29.6.3" + jest-matcher-utils: "npm:^29.7.0" + jest-message-util: "npm:^29.7.0" + jest-util: "npm:^29.7.0" natural-compare: "npm:^1.4.0" - pretty-format: "npm:^29.6.2" + pretty-format: "npm:^29.7.0" semver: "npm:^7.5.3" - checksum: 10c0/79f02c2becf90a1b5c5d06833b0a4c9f6e0d7a9fcd36e69f81750ab147180dd06e3565e83c1d79a1ef8b7943c5af3eb3e0119c45e92f78e1189279c4fba2e136 + checksum: 10c0/6e9003c94ec58172b4a62864a91c0146513207bedf4e0a06e1e2ac70a4484088a2683e3a0538d8ea913bcfd53dc54a9b98a98cdfa562e7fe1d1339aeae1da570 languageName: node linkType: hard @@ -20047,17 +20920,17 @@ __metadata: languageName: node linkType: hard -"jest-validate@npm:^29.6.2": - version: 29.6.2 - resolution: "jest-validate@npm:29.6.2" +"jest-validate@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-validate@npm:29.7.0" dependencies: - "@jest/types": "npm:^29.6.1" + "@jest/types": "npm:^29.6.3" camelcase: "npm:^6.2.0" chalk: "npm:^4.0.0" - jest-get-type: "npm:^29.4.3" + jest-get-type: "npm:^29.6.3" leven: "npm:^3.1.0" - pretty-format: "npm:^29.6.2" - checksum: 10c0/79af1153268d896deb183230fba547398fde7b8a4f45fe33f1cd5c3b6b84d317e4b87ea7988d1137348c693e7f9450cce7af4529d5b190891bf493bc93024e40 + pretty-format: "npm:^29.7.0" + checksum: 10c0/a20b930480c1ed68778c739f4739dce39423131bc070cd2505ddede762a5570a256212e9c2401b7ae9ba4d7b7c0803f03c5b8f1561c62348213aba18d9dbece2 languageName: node linkType: hard @@ -20077,19 +20950,19 @@ __metadata: languageName: node linkType: hard -"jest-watcher@npm:^29.6.2": - version: 29.6.2 - resolution: "jest-watcher@npm:29.6.2" +"jest-watcher@npm:^29.7.0": + version: 29.7.0 + resolution: "jest-watcher@npm:29.7.0" dependencies: - "@jest/test-result": "npm:^29.6.2" - "@jest/types": "npm:^29.6.1" + "@jest/test-result": "npm:^29.7.0" + "@jest/types": "npm:^29.6.3" "@types/node": "npm:*" ansi-escapes: "npm:^4.2.1" chalk: "npm:^4.0.0" emittery: "npm:^0.13.1" - jest-util: "npm:^29.6.2" + jest-util: "npm:^29.7.0" string-length: "npm:^4.0.1" - checksum: 10c0/ba567798961d52b3ca1f853169a5860111ae764de90634b86a4a5cc676848c147bee5d95cd168b5c5941533ed384f677764474d009437a03b6b6a15da6232eb3 + checksum: 10c0/ec6c75030562fc8f8c727cb8f3b94e75d831fc718785abfc196e1f2a2ebc9a2e38744a15147170039628a853d77a3b695561ce850375ede3a4ee6037a2574567 languageName: node linkType: hard @@ -20116,7 +20989,7 @@ __metadata: languageName: node linkType: hard -"jest-worker@npm:^29.4.3": +"jest-worker@npm:^29.4.3, jest-worker@npm:^29.7.0": version: 29.7.0 resolution: "jest-worker@npm:29.7.0" dependencies: @@ -20128,26 +21001,14 @@ __metadata: languageName: node linkType: hard -"jest-worker@npm:^29.6.2": - version: 29.6.2 - resolution: "jest-worker@npm:29.6.2" - dependencies: - "@types/node": "npm:*" - jest-util: "npm:^29.6.2" - merge-stream: "npm:^2.0.0" - supports-color: "npm:^8.0.0" - checksum: 10c0/8b978cb4851222e536aef552bdc06a60db580d0f921107fe1a1b94cdc8b39ddeb076b23e5bb96b69752c2f936b803295cdff11484f7c5efaf4562952e2cc0897 - languageName: node - linkType: hard - -"jest@npm:^29.4.1": - version: 29.6.2 - resolution: "jest@npm:29.6.2" +"jest@npm:29.7.0": + version: 29.7.0 + resolution: "jest@npm:29.7.0" dependencies: - "@jest/core": "npm:^29.6.2" - "@jest/types": "npm:^29.6.1" + "@jest/core": "npm:^29.7.0" + "@jest/types": "npm:^29.6.3" import-local: "npm:^3.0.2" - jest-cli: "npm:^29.6.2" + jest-cli: "npm:^29.7.0" peerDependencies: node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0 peerDependenciesMeta: @@ -20155,7 +21016,7 @@ __metadata: optional: true bin: jest: bin/jest.js - checksum: 10c0/fdb4df81f2bf1ad58f98f74b6d6f74d7727bd8fd5a8ddefc1e7612b8a68cbd0a4ae134060c5b987b01281f1fe93276c1abb034ef1ce06a0ea1468f288fafc7c1 + checksum: 10c0/f40eb8171cf147c617cc6ada49d062fbb03b4da666cb8d39cdbfb739a7d75eea4c3ca150fb072d0d273dce0c753db4d0467d54906ad0293f59c54f9db4a09d8b languageName: node linkType: hard @@ -20266,6 +21127,15 @@ __metadata: languageName: node linkType: hard +"jsesc@npm:^3.0.2, jsesc@npm:~3.0.2": + version: 3.0.2 + resolution: "jsesc@npm:3.0.2" + bin: + jsesc: bin/jsesc + checksum: 10c0/ef22148f9e793180b14d8a145ee6f9f60f301abf443288117b4b6c53d0ecd58354898dc506ccbb553a5f7827965cd38bc5fb726575aae93c5e8915e2de8290e1 + languageName: node + linkType: hard + "jsesc@npm:~0.5.0": version: 0.5.0 resolution: "jsesc@npm:0.5.0" @@ -20282,6 +21152,13 @@ __metadata: languageName: node linkType: hard +"json-buffer@npm:3.0.1": + version: 3.0.1 + resolution: "json-buffer@npm:3.0.1" + checksum: 10c0/0d1c91569d9588e7eef2b49b59851f297f3ab93c7b35c7c221e288099322be6b562767d11e4821da500f3219542b9afd2e54c5dc573107c1126ed1080f8e96d7 + languageName: node + linkType: hard + "json-parse-even-better-errors@npm:^2.3.0, json-parse-even-better-errors@npm:^2.3.1": version: 2.3.1 resolution: "json-parse-even-better-errors@npm:2.3.1" @@ -20359,10 +21236,10 @@ __metadata: languageName: node linkType: hard -"jsonc-parser@npm:3.2.1": - version: 3.2.1 - resolution: "jsonc-parser@npm:3.2.1" - checksum: 10c0/ada66dec143d7f9cb0e2d0d29c69e9ce40d20f3a4cb96b0c6efb745025ac7f9ba647d7ac0990d0adfc37a2d2ae084a12009a9c833dbdbeadf648879a99b9df89 +"jsonc-parser@npm:3.3.1": + version: 3.3.1 + resolution: "jsonc-parser@npm:3.3.1" + checksum: 10c0/269c3ae0a0e4f907a914bf334306c384aabb9929bd8c99f909275ebd5c2d3bc70b9bcd119ad794f339dec9f24b6a4ee9cd5a8ab2e6435e730ad4075388fc2ab6 languageName: node linkType: hard @@ -20378,6 +21255,18 @@ __metadata: languageName: node linkType: hard +"jsonfile@npm:^4.0.0": + version: 4.0.0 + resolution: "jsonfile@npm:4.0.0" + dependencies: + graceful-fs: "npm:^4.1.6" + dependenciesMeta: + graceful-fs: + optional: true + checksum: 10c0/7dc94b628d57a66b71fb1b79510d460d662eb975b5f876d723f81549c2e9cd316d58a2ddf742b2b93a4fa6b17b2accaf1a738a0e2ea114bdfb13a32e5377e480 + languageName: node + linkType: hard + "jsonfile@npm:^6.0.1": version: 6.1.0 resolution: "jsonfile@npm:6.1.0" @@ -20419,6 +21308,15 @@ __metadata: languageName: node linkType: hard +"keygrip@npm:~1.1.0": + version: 1.1.0 + resolution: "keygrip@npm:1.1.0" + dependencies: + tsscmp: "npm:1.0.6" + checksum: 10c0/2aceec1a1e642a0caf938044056ed67b1909cfe67a93a59b32aae2863e0f35a1a53782ecc8f9cd0e3bdb60863fa0f401ccbd257cd7dfae61915f78445139edea + languageName: node + linkType: hard + "keyv@npm:^3.0.0": version: 3.1.0 resolution: "keyv@npm:3.1.0" @@ -20428,6 +21326,15 @@ __metadata: languageName: node linkType: hard +"keyv@npm:^4.5.3": + version: 4.5.4 + resolution: "keyv@npm:4.5.4" + dependencies: + json-buffer: "npm:3.0.1" + checksum: 10c0/aa52f3c5e18e16bb6324876bb8b59dd02acf782a4b789c7b2ae21107fab95fab3890ed448d4f8dba80ce05391eeac4bfabb4f02a20221342982f806fa2cf271e + languageName: node + linkType: hard + "kind-of@npm:^3.0.2, kind-of@npm:^3.0.3, kind-of@npm:^3.2.0": version: 3.2.2 resolution: "kind-of@npm:3.2.2" @@ -20483,6 +21390,54 @@ __metadata: languageName: node linkType: hard +"koa-compose@npm:^4.1.0": + version: 4.1.0 + resolution: "koa-compose@npm:4.1.0" + checksum: 10c0/f1f786f994a691931148e7f38f443865bf2702af4a61610d1eea04dab79c04b1232285b59d82a0cf61c830516dd92f10ab0d009b024fcecd4098e7d296ab771a + languageName: node + linkType: hard + +"koa-convert@npm:^2.0.0": + version: 2.0.0 + resolution: "koa-convert@npm:2.0.0" + dependencies: + co: "npm:^4.6.0" + koa-compose: "npm:^4.1.0" + checksum: 10c0/d3e243ceccd11524d5f4942f6ccd828a9b18a1a967c4375192aa9eedf844f790563632839f006732ce8ca720275737c65a3bab344e13b25f41fb2be451ea102c + languageName: node + linkType: hard + +"koa@npm:2.15.3": + version: 2.15.3 + resolution: "koa@npm:2.15.3" + dependencies: + accepts: "npm:^1.3.5" + cache-content-type: "npm:^1.0.0" + content-disposition: "npm:~0.5.2" + content-type: "npm:^1.0.4" + cookies: "npm:~0.9.0" + debug: "npm:^4.3.2" + delegates: "npm:^1.0.0" + depd: "npm:^2.0.0" + destroy: "npm:^1.0.4" + encodeurl: "npm:^1.0.2" + escape-html: "npm:^1.0.3" + fresh: "npm:~0.5.2" + http-assert: "npm:^1.3.0" + http-errors: "npm:^1.6.3" + is-generator-function: "npm:^1.0.7" + koa-compose: "npm:^4.1.0" + koa-convert: "npm:^2.0.0" + on-finished: "npm:^2.3.0" + only: "npm:~0.0.2" + parseurl: "npm:^1.3.2" + statuses: "npm:^1.5.0" + type-is: "npm:^1.6.16" + vary: "npm:^1.1.2" + checksum: 10c0/1dca5027e06855dfc4144093fc678c445b5718c3a61b3b7840e3def999f3efcd0359665fb30d3f427890dfee12ebb1e7d01e210d2122a17240d2f3ceae12b2f2 + languageName: node + linkType: hard + "latest-version@npm:^5.1.0": version: 5.1.0 resolution: "latest-version@npm:5.1.0" @@ -20679,6 +21634,13 @@ __metadata: languageName: node linkType: hard +"lines-and-columns@npm:2.0.3": + version: 2.0.3 + resolution: "lines-and-columns@npm:2.0.3" + checksum: 10c0/09525c10010a925b7efe858f1dd3184eeac34f0a9bc34993075ec490efad71e948147746b18e9540279cc87cd44085b038f986903db3de65ffe96d38a7b91c4c + languageName: node + linkType: hard + "lines-and-columns@npm:^1.1.6": version: 1.2.4 resolution: "lines-and-columns@npm:1.2.4" @@ -20693,13 +21655,6 @@ __metadata: languageName: node linkType: hard -"lines-and-columns@npm:~2.0.3": - version: 2.0.3 - resolution: "lines-and-columns@npm:2.0.3" - checksum: 10c0/09525c10010a925b7efe858f1dd3184eeac34f0a9bc34993075ec490efad71e948147746b18e9540279cc87cd44085b038f986903db3de65ffe96d38a7b91c4c - languageName: node - linkType: hard - "link-check@npm:^5.2.0": version: 5.2.0 resolution: "link-check@npm:5.2.0" @@ -20736,6 +21691,20 @@ __metadata: languageName: node linkType: hard +"listr2@npm:8.2.4": + version: 8.2.4 + resolution: "listr2@npm:8.2.4" + dependencies: + cli-truncate: "npm:^4.0.0" + colorette: "npm:^2.0.20" + eventemitter3: "npm:^5.0.1" + log-update: "npm:^6.1.0" + rfdc: "npm:^1.4.1" + wrap-ansi: "npm:^9.0.0" + checksum: 10c0/df5b129e9767de1997973cec6103cd4bd6fc3b3367685b7c23048d12b61d5b7e44fecd8a3d3534c0e1c963bd5ac43ca501d14712f46fa101050037be323a5c16 + languageName: node + linkType: hard + "listr2@npm:^3.8.3": version: 3.14.0 resolution: "listr2@npm:3.14.0" @@ -20778,20 +21747,20 @@ __metadata: languageName: node linkType: hard -"lmdb@npm:3.0.8": - version: 3.0.8 - resolution: "lmdb@npm:3.0.8" - dependencies: - "@lmdb/lmdb-darwin-arm64": "npm:3.0.8" - "@lmdb/lmdb-darwin-x64": "npm:3.0.8" - "@lmdb/lmdb-linux-arm": "npm:3.0.8" - "@lmdb/lmdb-linux-arm64": "npm:3.0.8" - "@lmdb/lmdb-linux-x64": "npm:3.0.8" - "@lmdb/lmdb-win32-x64": "npm:3.0.8" - msgpackr: "npm:^1.9.9" +"lmdb@npm:3.0.13": + version: 3.0.13 + resolution: "lmdb@npm:3.0.13" + dependencies: + "@lmdb/lmdb-darwin-arm64": "npm:3.0.13" + "@lmdb/lmdb-darwin-x64": "npm:3.0.13" + "@lmdb/lmdb-linux-arm": "npm:3.0.13" + "@lmdb/lmdb-linux-arm64": "npm:3.0.13" + "@lmdb/lmdb-linux-x64": "npm:3.0.13" + "@lmdb/lmdb-win32-x64": "npm:3.0.13" + msgpackr: "npm:^1.10.2" node-addon-api: "npm:^6.1.0" node-gyp: "npm:latest" - node-gyp-build-optional-packages: "npm:5.1.1" + node-gyp-build-optional-packages: "npm:5.2.2" ordered-binary: "npm:^1.4.1" weak-lru-cache: "npm:^1.2.2" dependenciesMeta: @@ -20809,7 +21778,7 @@ __metadata: optional: true bin: download-lmdb-prebuilds: bin/download-prebuilds.js - checksum: 10c0/167a90984e0e843fd4280db357069a4814a2fe19770bfab9693387a44abc6690926c3a620e3c8fc70d2acd307507a72308be9121c28a569d7c258f5c5fb02fa0 + checksum: 10c0/feac522854112af3c8204c837356c70c06a6ce3a39c57c061008ac63aa52a71505e2e217b730e96ab5120ce4c22efc84b78a9fc0b8001a7e5af2e135938a7fd1 languageName: node linkType: hard @@ -20827,10 +21796,10 @@ __metadata: languageName: node linkType: hard -"loader-utils@npm:3.2.1, loader-utils@npm:^3.2.0": - version: 3.2.1 - resolution: "loader-utils@npm:3.2.1" - checksum: 10c0/d3e1f217d160e8e894a0385a33500d4ce14065e8ffb250f5a81ae65bc2c3baa50625ec34182ba4417b46b4ac6725aed64429e1104d6401e074af2aa1dd018394 +"loader-utils@npm:3.3.1": + version: 3.3.1 + resolution: "loader-utils@npm:3.3.1" + checksum: 10c0/f2af4eb185ac5bf7e56e1337b666f90744e9f443861ac521b48f093fb9e8347f191c8960b4388a3365147d218913bc23421234e7788db69f385bacfefa0b4758 languageName: node linkType: hard @@ -20845,6 +21814,13 @@ __metadata: languageName: node linkType: hard +"loader-utils@npm:^3.2.0": + version: 3.2.1 + resolution: "loader-utils@npm:3.2.1" + checksum: 10c0/d3e1f217d160e8e894a0385a33500d4ce14065e8ffb250f5a81ae65bc2c3baa50625ec34182ba4417b46b4ac6725aed64429e1104d6401e074af2aa1dd018394 + languageName: node + linkType: hard + "locate-path@npm:^3.0.0": version: 3.0.0 resolution: "locate-path@npm:3.0.0" @@ -20889,6 +21865,13 @@ __metadata: languageName: node linkType: hard +"lodash.clonedeepwith@npm:4.5.0": + version: 4.5.0 + resolution: "lodash.clonedeepwith@npm:4.5.0" + checksum: 10c0/a7de84be9ad796811e8084deb79ef07f8f87122d87adffcd52ce4e6fa528fbe917f3dc6cc1d556362dc5dfadef68405e54f4b4d3ae72056e32ec5e84492a3fc2 + languageName: node + linkType: hard + "lodash.curry@npm:^4.0.1": version: 4.1.1 resolution: "lodash.curry@npm:4.1.1" @@ -21016,6 +21999,39 @@ __metadata: languageName: node linkType: hard +"log-update@npm:^6.1.0": + version: 6.1.0 + resolution: "log-update@npm:6.1.0" + dependencies: + ansi-escapes: "npm:^7.0.0" + cli-cursor: "npm:^5.0.0" + slice-ansi: "npm:^7.1.0" + strip-ansi: "npm:^7.1.0" + wrap-ansi: "npm:^9.0.0" + checksum: 10c0/4b350c0a83d7753fea34dcac6cd797d1dc9603291565de009baa4aa91c0447eab0d3815a05c8ec9ac04fdfffb43c82adcdb03ec1fceafd8518e1a8c1cff4ff89 + languageName: node + linkType: hard + +"log4js@npm:6.9.1": + version: 6.9.1 + resolution: "log4js@npm:6.9.1" + dependencies: + date-format: "npm:^4.0.14" + debug: "npm:^4.3.4" + flatted: "npm:^3.2.7" + rfdc: "npm:^1.3.0" + streamroller: "npm:^3.1.5" + checksum: 10c0/05846e48f72d662800c8189bd178c42b4aa2f0c574cfc90a1942cf90b76f621c44019e26796c8fd88da1b6f0fe8272cba607cbaad6ae6ede50a7a096b58197ea + languageName: node + linkType: hard + +"long-timeout@npm:0.1.1": + version: 0.1.1 + resolution: "long-timeout@npm:0.1.1" + checksum: 10c0/a62240cc8f449d7a00081e817ae543fb1ded4d9fc05492e9fa8d6868cb33b2c9d5d71176a6f8be4473df7ba4b208460b3073b0e05069c3ec286122f3e4b5747f + languageName: node + linkType: hard + "loose-envify@npm:^1.0.0, loose-envify@npm:^1.1.0, loose-envify@npm:^1.2.0, loose-envify@npm:^1.3.1, loose-envify@npm:^1.4.0": version: 1.4.0 resolution: "loose-envify@npm:1.4.0" @@ -21103,12 +22119,19 @@ __metadata: languageName: node linkType: hard -"magic-string@npm:0.30.10": - version: 0.30.10 - resolution: "magic-string@npm:0.30.10" +"luxon@npm:^3.2.1": + version: 3.5.0 + resolution: "luxon@npm:3.5.0" + checksum: 10c0/335789bba95077db831ef99894edadeb23023b3eb2137a1b56acd0d290082b691cf793143d69e30bc069ec95f0b49f36419f48e951c68014f19ffe12045e3494 + languageName: node + linkType: hard + +"magic-string@npm:0.30.11": + version: 0.30.11 + resolution: "magic-string@npm:0.30.11" dependencies: - "@jridgewell/sourcemap-codec": "npm:^1.4.15" - checksum: 10c0/aa9ca17eae571a19bce92c8221193b6f93ee8511abb10f085e55ffd398db8e4c089a208d9eac559deee96a08b7b24d636ea4ab92f09c6cf42a7d1af51f7fd62b + "@jridgewell/sourcemap-codec": "npm:^1.5.0" + checksum: 10c0/b9eb370773d0bd90ca11a848753409d8e5309b1ad56d2a1aa49d6649da710a6d2fe7237ad1a643c5a5d3800de2b9946ed9690acdfc00e6cc1aeafff3ab1752c4 languageName: node linkType: hard @@ -21367,6 +22390,13 @@ __metadata: languageName: node linkType: hard +"merge-descriptors@npm:1.0.3": + version: 1.0.3 + resolution: "merge-descriptors@npm:1.0.3" + checksum: 10c0/866b7094afd9293b5ea5dcd82d71f80e51514bed33b4c4e9f516795dc366612a4cbb4dc94356e943a8a6914889a914530badff27f397191b9b75cda20b6bae93 + languageName: node + linkType: hard + "merge-stream@npm:^2.0.0": version: 2.0.0 resolution: "merge-stream@npm:2.0.0" @@ -21440,6 +22470,16 @@ __metadata: languageName: node linkType: hard +"micromatch@npm:^4.0.8": + version: 4.0.8 + resolution: "micromatch@npm:4.0.8" + dependencies: + braces: "npm:^3.0.3" + picomatch: "npm:^2.3.1" + checksum: 10c0/166fa6eb926b9553f32ef81f5f531d27b4ce7da60e5baf8c021d043b27a388fb95e46a8038d5045877881e673f8134122b59624d5cecbd16eb50a42e7a6b5ca8 + languageName: node + linkType: hard + "mime-db@npm:1.52.0, mime-db@npm:>= 1.43.0 < 2": version: 1.52.0 resolution: "mime-db@npm:1.52.0" @@ -21463,7 +22503,7 @@ __metadata: languageName: node linkType: hard -"mime-types@npm:^2.1.12, mime-types@npm:^2.1.27, mime-types@npm:^2.1.31, mime-types@npm:~2.1.17, mime-types@npm:~2.1.19, mime-types@npm:~2.1.24, mime-types@npm:~2.1.34": +"mime-types@npm:^2.1.12, mime-types@npm:^2.1.18, mime-types@npm:^2.1.27, mime-types@npm:^2.1.31, mime-types@npm:~2.1.17, mime-types@npm:~2.1.19, mime-types@npm:~2.1.24, mime-types@npm:~2.1.34": version: 2.1.35 resolution: "mime-types@npm:2.1.35" dependencies: @@ -21513,6 +22553,13 @@ __metadata: languageName: node linkType: hard +"mimic-function@npm:^5.0.0": + version: 5.0.1 + resolution: "mimic-function@npm:5.0.1" + checksum: 10c0/f3d9464dd1816ecf6bdf2aec6ba32c0728022039d992f178237d8e289b48764fee4131319e72eedd4f7f094e22ded0af836c3187a7edc4595d28dd74368fd81d + languageName: node + linkType: hard + "mimic-response@npm:^1.0.0, mimic-response@npm:^1.0.1": version: 1.0.1 resolution: "mimic-response@npm:1.0.1" @@ -21851,15 +22898,15 @@ __metadata: languageName: node linkType: hard -"msgpackr@npm:^1.9.9": - version: 1.10.2 - resolution: "msgpackr@npm:1.10.2" +"msgpackr@npm:^1.10.2": + version: 1.11.2 + resolution: "msgpackr@npm:1.11.2" dependencies: msgpackr-extract: "npm:^3.0.2" dependenciesMeta: msgpackr-extract: optional: true - checksum: 10c0/eb0a47b3d32a3be92f7a5b1182a67e5d9bfd5668d1aed63d3df03480a06798311eea339319b442ffafe83de19d9f3c9c6ac4d9081af0c9f896599d766a53db20 + checksum: 10c0/7d2e81ca82c397b2352d470d6bc8f4a967fe4fe14f8fc1fc9906b23009fdfb543999b1ad29c700b8861581e0b6bf903d6f0fefb69a09375cbca6d4d802e6c906 languageName: node linkType: hard @@ -21895,7 +22942,7 @@ __metadata: languageName: node linkType: hard -"mute-stream@npm:1.0.0": +"mute-stream@npm:^1.0.0": version: 1.0.0 resolution: "mute-stream@npm:1.0.0" checksum: 10c0/dce2a9ccda171ec979a3b4f869a102b1343dee35e920146776780de182f16eae459644d187e38d59a3d37adf85685e1c17c38cf7bfda7e39a9880f7a1d10a74c @@ -21998,9 +23045,9 @@ __metadata: languageName: node linkType: hard -"ng-packagr@npm:18.0.0": - version: 18.0.0 - resolution: "ng-packagr@npm:18.0.0" +"ng-packagr@npm:18.2.1": + version: 18.2.1 + resolution: "ng-packagr@npm:18.2.1" dependencies: "@rollup/plugin-json": "npm:^6.1.0" "@rollup/plugin-node-resolve": "npm:^15.2.3" @@ -22013,7 +23060,7 @@ __metadata: commander: "npm:^12.0.0" convert-source-map: "npm:^2.0.0" dependency-graph: "npm:^1.0.0" - esbuild: "npm:^0.21.3" + esbuild: "npm:^0.23.0" fast-glob: "npm:^3.3.1" find-cache-dir: "npm:^3.3.2" injection-js: "npm:^2.4.0" @@ -22026,10 +23073,10 @@ __metadata: rxjs: "npm:^7.8.1" sass: "npm:^1.69.5" peerDependencies: - "@angular/compiler-cli": ^18.0.0-next.0 || ^18.1.0-next.0 + "@angular/compiler-cli": ^18.0.0 || ^18.2.0-next.0 tailwindcss: ^2.0.0 || ^3.0.0 tslib: ^2.3.0 - typescript: ">=5.4 <5.5" + typescript: ">=5.4 <5.6" dependenciesMeta: rollup: optional: true @@ -22038,7 +23085,7 @@ __metadata: optional: true bin: ng-packagr: cli/main.js - checksum: 10c0/7e8cb80f7a41c6735146aa9ad82fa6917051ff913965cd12f0a4a12421900ad410a8b9cd32109285112405ddeac99ddef75a093abe1d24afa8be7677da521f82 + checksum: 10c0/230417542cf5ded0695ae431eb0c61618f1f2596bb3aa1bb3cac579b8c7d1ffe1762ada24d8a315a0c547358134ba64370aad2ac56dd6caab480f261866993ea languageName: node linkType: hard @@ -22142,16 +23189,16 @@ __metadata: languageName: node linkType: hard -"node-gyp-build-optional-packages@npm:5.1.1": - version: 5.1.1 - resolution: "node-gyp-build-optional-packages@npm:5.1.1" +"node-gyp-build-optional-packages@npm:5.2.2": + version: 5.2.2 + resolution: "node-gyp-build-optional-packages@npm:5.2.2" dependencies: detect-libc: "npm:^2.0.1" bin: node-gyp-build-optional-packages: bin.js node-gyp-build-optional-packages-optional: optional.js node-gyp-build-optional-packages-test: build-test.js - checksum: 10c0/f9fad2061c48fb0fc90831cd11d6a7670d731d22a5b00c7d3441b43b4003543299ff64ff2729afe2cefd7d14928e560d469336e5bb00f613932ec2cd56b3665b + checksum: 10c0/c81128c6f91873381be178c5eddcbdf66a148a6a89a427ce2bcd457593ce69baf2a8662b6d22cac092d24aa9c43c230dec4e69b3a0da604503f4777cd77e282b languageName: node linkType: hard @@ -22234,6 +23281,13 @@ __metadata: languageName: node linkType: hard +"node-releases@npm:^2.0.18": + version: 2.0.18 + resolution: "node-releases@npm:2.0.18" + checksum: 10c0/786ac9db9d7226339e1dc84bbb42007cb054a346bd9257e6aa154d294f01bc6a6cddb1348fa099f079be6580acbb470e3c048effd5f719325abd0179e566fd27 + languageName: node + linkType: hard + "node-releases@npm:^2.0.8": version: 2.0.10 resolution: "node-releases@npm:2.0.10" @@ -22241,6 +23295,17 @@ __metadata: languageName: node linkType: hard +"node-schedule@npm:2.1.1": + version: 2.1.1 + resolution: "node-schedule@npm:2.1.1" + dependencies: + cron-parser: "npm:^4.2.0" + long-timeout: "npm:0.1.1" + sorted-array-functions: "npm:^1.3.0" + checksum: 10c0/6ec51b34b9e676740ac25298e4ced5ee46053379f0d3aad533e51d7e083bc24ced045df1772a95bf9d9cfdb81299340bbf551549a7c5eb6e4d2dc6468c85c70e + languageName: node + linkType: hard + "nopt@npm:^7.0.0": version: 7.2.0 resolution: "nopt@npm:7.2.0" @@ -22347,15 +23412,15 @@ __metadata: languageName: node linkType: hard -"npm-package-arg@npm:11.0.2": - version: 11.0.2 - resolution: "npm-package-arg@npm:11.0.2" +"npm-package-arg@npm:11.0.3": + version: 11.0.3 + resolution: "npm-package-arg@npm:11.0.3" dependencies: hosted-git-info: "npm:^7.0.0" proc-log: "npm:^4.0.0" semver: "npm:^7.3.5" validate-npm-package-name: "npm:^5.0.0" - checksum: 10c0/d730572e128980db45c97c184a454cb565283bf849484bf92e3b4e8ec2d08a21bd4b2cba9467466853add3e8c7d81e5de476904ac241f3ae63e6905dfc8196d4 + checksum: 10c0/e18333485e05c3a8774f4b5701ef74f4799533e650b70a68ca8dd697666c9a8d46932cb765fc593edce299521033bd4025a40323d5240cea8a393c784c0c285a languageName: node linkType: hard @@ -22368,15 +23433,15 @@ __metadata: languageName: node linkType: hard -"npm-pick-manifest@npm:9.0.1": - version: 9.0.1 - resolution: "npm-pick-manifest@npm:9.0.1" +"npm-pick-manifest@npm:9.1.0": + version: 9.1.0 + resolution: "npm-pick-manifest@npm:9.1.0" dependencies: npm-install-checks: "npm:^6.0.0" npm-normalize-package-bin: "npm:^3.0.0" npm-package-arg: "npm:^11.0.0" semver: "npm:^7.3.5" - checksum: 10c0/c9b93a533b599bccba4f5d7ba313725d83a0058d981e8318176bfbb3a6c9435acd1a995847eaa3ffb45162161947db9b0674ceee13cfe716b345573ca1073d8e + checksum: 10c0/8765f4199755b381323da2bff2202b4b15b59f59dba0d1be3f2f793b591321cd19e1b5a686ef48d9753a6bd4868550da632541a45dfb61809d55664222d73e44 languageName: node linkType: hard @@ -22449,39 +23514,39 @@ __metadata: languageName: node linkType: hard -"nx@npm:19.1.1": - version: 19.1.1 - resolution: "nx@npm:19.1.1" +"nx@npm:20.1.0": + version: 20.1.0 + resolution: "nx@npm:20.1.0" dependencies: - "@nrwl/tao": "npm:19.1.1" - "@nx/nx-darwin-arm64": "npm:19.1.1" - "@nx/nx-darwin-x64": "npm:19.1.1" - "@nx/nx-freebsd-x64": "npm:19.1.1" - "@nx/nx-linux-arm-gnueabihf": "npm:19.1.1" - "@nx/nx-linux-arm64-gnu": "npm:19.1.1" - "@nx/nx-linux-arm64-musl": "npm:19.1.1" - "@nx/nx-linux-x64-gnu": "npm:19.1.1" - "@nx/nx-linux-x64-musl": "npm:19.1.1" - "@nx/nx-win32-arm64-msvc": "npm:19.1.1" - "@nx/nx-win32-x64-msvc": "npm:19.1.1" + "@napi-rs/wasm-runtime": "npm:0.2.4" + "@nx/nx-darwin-arm64": "npm:20.1.0" + "@nx/nx-darwin-x64": "npm:20.1.0" + "@nx/nx-freebsd-x64": "npm:20.1.0" + "@nx/nx-linux-arm-gnueabihf": "npm:20.1.0" + "@nx/nx-linux-arm64-gnu": "npm:20.1.0" + "@nx/nx-linux-arm64-musl": "npm:20.1.0" + "@nx/nx-linux-x64-gnu": "npm:20.1.0" + "@nx/nx-linux-x64-musl": "npm:20.1.0" + "@nx/nx-win32-arm64-msvc": "npm:20.1.0" + "@nx/nx-win32-x64-msvc": "npm:20.1.0" "@yarnpkg/lockfile": "npm:^1.1.0" - "@yarnpkg/parsers": "npm:3.0.0-rc.46" + "@yarnpkg/parsers": "npm:3.0.2" "@zkochan/js-yaml": "npm:0.0.7" - axios: "npm:^1.6.0" + axios: "npm:^1.7.4" chalk: "npm:^4.1.0" cli-cursor: "npm:3.1.0" cli-spinners: "npm:2.6.1" cliui: "npm:^8.0.1" - dotenv: "npm:~16.3.1" - dotenv-expand: "npm:~10.0.0" + dotenv: "npm:~16.4.5" + dotenv-expand: "npm:~11.0.6" enquirer: "npm:~2.3.6" figures: "npm:3.2.0" flat: "npm:^5.0.2" - fs-extra: "npm:^11.1.0" + front-matter: "npm:^4.0.2" ignore: "npm:^5.0.4" jest-diff: "npm:^29.4.1" jsonc-parser: "npm:3.2.0" - lines-and-columns: "npm:~2.0.3" + lines-and-columns: "npm:2.0.3" minimatch: "npm:9.0.3" node-machine-id: "npm:1.1.12" npm-run-path: "npm:^4.0.1" @@ -22489,7 +23554,6 @@ __metadata: ora: "npm:5.3.0" semver: "npm:^7.5.3" string-width: "npm:^4.2.3" - strong-log-transformer: "npm:^2.1.0" tar-stream: "npm:~2.2.0" tmp: "npm:~0.2.1" tsconfig-paths: "npm:^4.1.2" @@ -22528,7 +23592,7 @@ __metadata: bin: nx: bin/nx.js nx-cloud: bin/nx-cloud.js - checksum: 10c0/f7a3c9a6f4b63484ea0a4d80df38f26e491a45d1a3c961a29692e9cbd8f1b53ae72395f4328eaf82d74d6929c36be822777206089207ca40a08b03bf9843ed75 + checksum: 10c0/83f2c40357aadb88dfa641998f9356fb7536456421473446027bc0042425c1f04e74d1bfd592591182e033c58c01daef827a7c9064e8af09e90eb9af682db49f languageName: node linkType: hard @@ -22557,6 +23621,13 @@ __metadata: languageName: node linkType: hard +"object-inspect@npm:^1.13.1": + version: 1.13.3 + resolution: "object-inspect@npm:1.13.3" + checksum: 10c0/cc3f15213406be89ffdc54b525e115156086796a515410a8d390215915db9f23c8eab485a06f1297402f440a33715fe8f71a528c1dcbad6e1a3bcaf5a46921d4 + languageName: node + linkType: hard + "object-keys@npm:^1.1.1": version: 1.1.1 resolution: "object-keys@npm:1.1.1" @@ -22611,7 +23682,7 @@ __metadata: languageName: node linkType: hard -"on-finished@npm:2.4.1, on-finished@npm:^2.4.1": +"on-finished@npm:2.4.1, on-finished@npm:^2.3.0, on-finished@npm:^2.4.1": version: 2.4.1 resolution: "on-finished@npm:2.4.1" dependencies: @@ -22663,18 +23734,23 @@ __metadata: languageName: node linkType: hard -"open@npm:8.4.2, open@npm:^8.0.9, open@npm:^8.4.0": - version: 8.4.2 - resolution: "open@npm:8.4.2" +"onetime@npm:^7.0.0": + version: 7.0.0 + resolution: "onetime@npm:7.0.0" dependencies: - define-lazy-prop: "npm:^2.0.0" - is-docker: "npm:^2.1.1" - is-wsl: "npm:^2.2.0" - checksum: 10c0/bb6b3a58401dacdb0aad14360626faf3fb7fba4b77816b373495988b724fb48941cad80c1b65d62bb31a17609b2cd91c41a181602caea597ca80dfbcc27e84c9 + mimic-function: "npm:^5.0.0" + checksum: 10c0/5cb9179d74b63f52a196a2e7037ba2b9a893245a5532d3f44360012005c9cadb60851d56716ebff18a6f47129dab7168022445df47c2aff3b276d92585ed1221 + languageName: node + linkType: hard + +"only@npm:~0.0.2": + version: 0.0.2 + resolution: "only@npm:0.0.2" + checksum: 10c0/d26b1347835a5a9b17afbd889ed60de3d3ae14cdeca5ba008d86e6bf055466a431adc731b82e1e8ab24a3b8be5b5c2cdbc16e652d231d18cc1a5752320aaf0a0 languageName: node linkType: hard -"open@npm:^10.0.3": +"open@npm:10.1.0, open@npm:^10.0.3": version: 10.1.0 resolution: "open@npm:10.1.0" dependencies: @@ -22686,6 +23762,17 @@ __metadata: languageName: node linkType: hard +"open@npm:^8.0.9, open@npm:^8.4.0": + version: 8.4.2 + resolution: "open@npm:8.4.2" + dependencies: + define-lazy-prop: "npm:^2.0.0" + is-docker: "npm:^2.1.1" + is-wsl: "npm:^2.2.0" + checksum: 10c0/bb6b3a58401dacdb0aad14360626faf3fb7fba4b77816b373495988b724fb48941cad80c1b65d62bb31a17609b2cd91c41a181602caea597ca80dfbcc27e84c9 + languageName: node + linkType: hard + "opener@npm:^1.5.1, opener@npm:^1.5.2": version: 1.5.2 resolution: "opener@npm:1.5.2" @@ -22893,6 +23980,13 @@ __metadata: languageName: node linkType: hard +"package-json-from-dist@npm:^1.0.0": + version: 1.0.1 + resolution: "package-json-from-dist@npm:1.0.1" + checksum: 10c0/62ba2785eb655fec084a257af34dbe24292ab74516d6aecef97ef72d4897310bc6898f6c85b5cd22770eaa1ce60d55a0230e150fb6a966e3ecd6c511e23d164b + languageName: node + linkType: hard + "package-json@npm:^6.3.0": version: 6.5.0 resolution: "package-json@npm:6.5.0" @@ -23016,6 +24110,13 @@ __metadata: languageName: node linkType: hard +"parse-passwd@npm:^1.0.0": + version: 1.0.0 + resolution: "parse-passwd@npm:1.0.0" + checksum: 10c0/1c05c05f95f184ab9ca604841d78e4fe3294d46b8e3641d305dcc28e930da0e14e602dbda9f3811cd48df5b0e2e27dbef7357bf0d7c40e41b18c11c3a8b8d17b + languageName: node + linkType: hard + "parse5-html-rewriting-stream@npm:7.0.0": version: 7.0.0 resolution: "parse5-html-rewriting-stream@npm:7.0.0" @@ -23069,7 +24170,7 @@ __metadata: languageName: node linkType: hard -"parseurl@npm:~1.3.2, parseurl@npm:~1.3.3": +"parseurl@npm:^1.3.2, parseurl@npm:~1.3.2, parseurl@npm:~1.3.3": version: 1.3.3 resolution: "parseurl@npm:1.3.3" checksum: 10c0/90dd4760d6f6174adb9f20cf0965ae12e23879b5f5464f38e92fce8073354341e4b3b76fa3d878351efe7d01e617121955284cfd002ab087fba1a0726ec0b4f5 @@ -23186,6 +24287,13 @@ __metadata: languageName: node linkType: hard +"path-to-regexp@npm:0.1.10": + version: 0.1.10 + resolution: "path-to-regexp@npm:0.1.10" + checksum: 10c0/34196775b9113ca6df88e94c8d83ba82c0e1a2063dd33bfe2803a980da8d49b91db8104f49d5191b44ea780d46b8670ce2b7f4a5e349b0c48c6779b653f1afe4 + languageName: node + linkType: hard + "path-to-regexp@npm:0.1.7": version: 0.1.7 resolution: "path-to-regexp@npm:0.1.7" @@ -23216,6 +24324,13 @@ __metadata: languageName: node linkType: hard +"path-type@npm:^5.0.0": + version: 5.0.0 + resolution: "path-type@npm:5.0.0" + checksum: 10c0/e8f4b15111bf483900c75609e5e74e3fcb79f2ddb73e41470028fcd3e4b5162ec65da9907be077ee5012c18801ff7fffb35f9f37a077f3f81d85a0b7d6578efd + languageName: node + linkType: hard + "pend@npm:~1.2.0": version: 1.2.0 resolution: "pend@npm:1.2.0" @@ -23246,6 +24361,13 @@ __metadata: languageName: node linkType: hard +"picocolors@npm:^1.0.1, picocolors@npm:^1.1.0, picocolors@npm:^1.1.1": + version: 1.1.1 + resolution: "picocolors@npm:1.1.1" + checksum: 10c0/e2e3e8170ab9d7c7421969adaa7e1b31434f789afb9b3f115f6b96d91945041ac3ceb02e9ec6fe6510ff036bcc0bf91e69a1772edc0b707e12b19c0f2d6bcf58 + languageName: node + linkType: hard + "picomatch@npm:4.0.2": version: 4.0.2 resolution: "picomatch@npm:4.0.2" @@ -23297,15 +24419,15 @@ __metadata: languageName: node linkType: hard -"piscina@npm:4.5.0": - version: 4.5.0 - resolution: "piscina@npm:4.5.0" +"piscina@npm:4.6.1": + version: 4.6.1 + resolution: "piscina@npm:4.6.1" dependencies: nice-napi: "npm:^1.0.2" dependenciesMeta: nice-napi: optional: true - checksum: 10c0/8eaf07dbd49fdbd9d6447585fa6ab005c0b226ace1a836a09d66021850fa6cca9cd479671fb0dd10784b4544363f08348642950caee9b80fd14f5d6ce6e45af0 + checksum: 10c0/2225fb42806f8d72bf09f2528bd65721b440dcc63ece957a9542a28b3b958be353dc48802fb11a8af66fdfd28a419300ed28e04573b8bf420e6dcfe63d6f58b5 languageName: node linkType: hard @@ -24600,14 +25722,14 @@ __metadata: languageName: node linkType: hard -"postcss@npm:8.4.38, postcss@npm:^8.4.33, postcss@npm:^8.4.38": - version: 8.4.38 - resolution: "postcss@npm:8.4.38" +"postcss@npm:8.4.41": + version: 8.4.41 + resolution: "postcss@npm:8.4.41" dependencies: nanoid: "npm:^3.3.7" - picocolors: "npm:^1.0.0" + picocolors: "npm:^1.0.1" source-map-js: "npm:^1.2.0" - checksum: 10c0/955407b8f70cf0c14acf35dab3615899a2a60a26718a63c848cf3c29f2467b0533991b985a2b994430d890bd7ec2b1963e36352b0774a19143b5f591540f7c06 + checksum: 10c0/c1828fc59e7ec1a3bf52b3a42f615dba53c67960ed82a81df6441b485fe43c20aba7f4e7c55425762fd99c594ecabbaaba8cf5b30fd79dfec5b52a9f63a2d690 languageName: node linkType: hard @@ -24633,6 +25755,28 @@ __metadata: languageName: node linkType: hard +"postcss@npm:^8.4.33, postcss@npm:^8.4.38": + version: 8.4.38 + resolution: "postcss@npm:8.4.38" + dependencies: + nanoid: "npm:^3.3.7" + picocolors: "npm:^1.0.0" + source-map-js: "npm:^1.2.0" + checksum: 10c0/955407b8f70cf0c14acf35dab3615899a2a60a26718a63c848cf3c29f2467b0533991b985a2b994430d890bd7ec2b1963e36352b0774a19143b5f591540f7c06 + languageName: node + linkType: hard + +"postcss@npm:^8.4.43": + version: 8.4.49 + resolution: "postcss@npm:8.4.49" + dependencies: + nanoid: "npm:^3.3.7" + picocolors: "npm:^1.1.1" + source-map-js: "npm:^1.2.1" + checksum: 10c0/f1b3f17aaf36d136f59ec373459f18129908235e65dbdc3aee5eef8eba0756106f52de5ec4682e29a2eab53eb25170e7e871b3e4b52a8f1de3d344a514306be3 + languageName: node + linkType: hard + "postcss@npm:^8.4.6": version: 8.4.23 resolution: "postcss@npm:8.4.23" @@ -24930,15 +26074,6 @@ __metadata: languageName: node linkType: hard -"qs@npm:6.10.4": - version: 6.10.4 - resolution: "qs@npm:6.10.4" - dependencies: - side-channel: "npm:^1.0.4" - checksum: 10c0/7a8c9d77968aeccb769aedd7e047c0e0109dad0cfa57cab1ad906f4069fd58f361b80abd2de5854ba9a09b4c5d06d6a2c82108766f1f1527572fe6130deaa471 - languageName: node - linkType: hard - "qs@npm:6.11.0": version: 6.11.0 resolution: "qs@npm:6.11.0" @@ -24948,6 +26083,15 @@ __metadata: languageName: node linkType: hard +"qs@npm:6.13.0": + version: 6.13.0 + resolution: "qs@npm:6.13.0" + dependencies: + side-channel: "npm:^1.0.6" + checksum: 10c0/62372cdeec24dc83a9fb240b7533c0fdcf0c5f7e0b83343edd7310f0ab4c8205a5e7c56406531f2e47e1b4878a3821d652be4192c841de5b032ca83619d8f860 + languageName: node + linkType: hard + "qs@npm:^6.4.0": version: 6.11.1 resolution: "qs@npm:6.11.1" @@ -24980,6 +26124,13 @@ __metadata: languageName: node linkType: hard +"rambda@npm:^9.1.0": + version: 9.4.0 + resolution: "rambda@npm:9.4.0" + checksum: 10c0/da85e74502c20362eecd9237ec575ee9c107451ef69bf4642518cb2334326dbb963ac2064965c370391712dabc05f8f716c2a894438fc2b48d66eb7a104f5fc3 + languageName: node + linkType: hard + "randomatic@npm:^3.0.0": version: 3.1.1 resolution: "randomatic@npm:3.1.1" @@ -25026,7 +26177,7 @@ __metadata: languageName: node linkType: hard -"raw-body@npm:^2.3.2": +"raw-body@npm:2.5.2, raw-body@npm:^2.3.2": version: 2.5.2 resolution: "raw-body@npm:2.5.2" dependencies: @@ -25342,6 +26493,13 @@ __metadata: languageName: node linkType: hard +"readdirp@npm:^4.0.1": + version: 4.0.2 + resolution: "readdirp@npm:4.0.2" + checksum: 10c0/a16ecd8ef3286dcd90648c3b103e3826db2b766cdb4a988752c43a83f683d01c7059158d623cbcd8bdfb39e65d302d285be2d208e7d9f34d022d912b929217dd + languageName: node + linkType: hard + "readdirp@npm:~3.6.0": version: 3.6.0 resolution: "readdirp@npm:3.6.0" @@ -25392,6 +26550,15 @@ __metadata: languageName: node linkType: hard +"regenerate-unicode-properties@npm:^10.2.0": + version: 10.2.0 + resolution: "regenerate-unicode-properties@npm:10.2.0" + dependencies: + regenerate: "npm:^1.4.2" + checksum: 10c0/5510785eeaf56bbfdf4e663d6753f125c08d2a372d4107bc1b756b7bf142e2ed80c2733a8b54e68fb309ba37690e66a0362699b0e21d5c1f0255dea1b00e6460 + languageName: node + linkType: hard + "regenerate@npm:^1.4.2": version: 1.4.2 resolution: "regenerate@npm:1.4.2" @@ -25478,6 +26645,20 @@ __metadata: languageName: node linkType: hard +"regexpu-core@npm:^6.1.1": + version: 6.1.1 + resolution: "regexpu-core@npm:6.1.1" + dependencies: + regenerate: "npm:^1.4.2" + regenerate-unicode-properties: "npm:^10.2.0" + regjsgen: "npm:^0.8.0" + regjsparser: "npm:^0.11.0" + unicode-match-property-ecmascript: "npm:^2.0.0" + unicode-match-property-value-ecmascript: "npm:^2.1.0" + checksum: 10c0/07d49697e20f9b65977535abba4858b7f5171c13f7c366be53ec1886d3d5f69f1b98cc6a6e63cf271adda077c3366a4c851c7473c28bbd69cf5a6b6b008efc3e + languageName: node + linkType: hard + "registry-auth-token@npm:^4.0.0": version: 4.2.2 resolution: "registry-auth-token@npm:4.2.2" @@ -25496,6 +26677,24 @@ __metadata: languageName: node linkType: hard +"regjsgen@npm:^0.8.0": + version: 0.8.0 + resolution: "regjsgen@npm:0.8.0" + checksum: 10c0/44f526c4fdbf0b29286101a282189e4dbb303f4013cf3fea058668d96d113b9180d3d03d1e13f6d4cbde38b7728bf951aecd9dc199938c080093a9a6f0d7a6bd + languageName: node + linkType: hard + +"regjsparser@npm:^0.11.0": + version: 0.11.2 + resolution: "regjsparser@npm:0.11.2" + dependencies: + jsesc: "npm:~3.0.2" + bin: + regjsparser: bin/parser + checksum: 10c0/764e762de1b26a0cf48b45728fc1b2087f9c55bd4cea858cce28e4d5544c237f3f2dd6d40e2c41b80068e9cb92cc7d731a4285bc1f27d6ebc227792c70e4af1b + languageName: node + linkType: hard + "regjsparser@npm:^0.9.1": version: 0.9.1 resolution: "regjsparser@npm:0.9.1" @@ -25661,6 +26860,16 @@ __metadata: languageName: node linkType: hard +"resolve-dir@npm:^1.0.0, resolve-dir@npm:^1.0.1": + version: 1.0.1 + resolution: "resolve-dir@npm:1.0.1" + dependencies: + expand-tilde: "npm:^2.0.0" + global-modules: "npm:^1.0.0" + checksum: 10c0/8197ed13e4a51d9cd786ef6a09fc83450db016abe7ef3311ca39389b3e508d77c26fe0cf0483a9b407b8caa2764bb5ccc52cf6a017ded91492a416475a56066f + languageName: node + linkType: hard + "resolve-from@npm:^4.0.0": version: 4.0.0 resolution: "resolve-from@npm:4.0.0" @@ -25797,6 +27006,16 @@ __metadata: languageName: node linkType: hard +"restore-cursor@npm:^5.0.0": + version: 5.1.0 + resolution: "restore-cursor@npm:5.1.0" + dependencies: + onetime: "npm:^7.0.0" + signal-exit: "npm:^4.1.0" + checksum: 10c0/c2ba89131eea791d1b25205bdfdc86699767e2b88dee2a590b1a6caa51737deac8bad0260a5ded2f7c074b7db2f3a626bcf1fcf3cdf35974cbeea5e2e6764f60 + languageName: node + linkType: hard + "ret@npm:~0.1.10": version: 0.1.15 resolution: "ret@npm:0.1.15" @@ -25832,6 +27051,13 @@ __metadata: languageName: node linkType: hard +"rfdc@npm:^1.4.1": + version: 1.4.1 + resolution: "rfdc@npm:1.4.1" + checksum: 10c0/4614e4292356cafade0b6031527eea9bc90f2372a22c012313be1dcc69a3b90c7338158b414539be863fa95bfcb2ddcd0587be696841af4e6679d85e62c060c7 + languageName: node + linkType: hard + "rimraf@npm:^3.0.0, rimraf@npm:^3.0.2": version: 3.0.2 resolution: "rimraf@npm:3.0.2" @@ -25854,7 +27080,70 @@ __metadata: languageName: node linkType: hard -"rollup@npm:^4.13.0, rollup@npm:^4.18.0": +"rollup@npm:4.22.4": + version: 4.22.4 + resolution: "rollup@npm:4.22.4" + dependencies: + "@rollup/rollup-android-arm-eabi": "npm:4.22.4" + "@rollup/rollup-android-arm64": "npm:4.22.4" + "@rollup/rollup-darwin-arm64": "npm:4.22.4" + "@rollup/rollup-darwin-x64": "npm:4.22.4" + "@rollup/rollup-linux-arm-gnueabihf": "npm:4.22.4" + "@rollup/rollup-linux-arm-musleabihf": "npm:4.22.4" + "@rollup/rollup-linux-arm64-gnu": "npm:4.22.4" + "@rollup/rollup-linux-arm64-musl": "npm:4.22.4" + "@rollup/rollup-linux-powerpc64le-gnu": "npm:4.22.4" + "@rollup/rollup-linux-riscv64-gnu": "npm:4.22.4" + "@rollup/rollup-linux-s390x-gnu": "npm:4.22.4" + "@rollup/rollup-linux-x64-gnu": "npm:4.22.4" + "@rollup/rollup-linux-x64-musl": "npm:4.22.4" + "@rollup/rollup-win32-arm64-msvc": "npm:4.22.4" + "@rollup/rollup-win32-ia32-msvc": "npm:4.22.4" + "@rollup/rollup-win32-x64-msvc": "npm:4.22.4" + "@types/estree": "npm:1.0.5" + fsevents: "npm:~2.3.2" + dependenciesMeta: + "@rollup/rollup-android-arm-eabi": + optional: true + "@rollup/rollup-android-arm64": + optional: true + "@rollup/rollup-darwin-arm64": + optional: true + "@rollup/rollup-darwin-x64": + optional: true + "@rollup/rollup-linux-arm-gnueabihf": + optional: true + "@rollup/rollup-linux-arm-musleabihf": + optional: true + "@rollup/rollup-linux-arm64-gnu": + optional: true + "@rollup/rollup-linux-arm64-musl": + optional: true + "@rollup/rollup-linux-powerpc64le-gnu": + optional: true + "@rollup/rollup-linux-riscv64-gnu": + optional: true + "@rollup/rollup-linux-s390x-gnu": + optional: true + "@rollup/rollup-linux-x64-gnu": + optional: true + "@rollup/rollup-linux-x64-musl": + optional: true + "@rollup/rollup-win32-arm64-msvc": + optional: true + "@rollup/rollup-win32-ia32-msvc": + optional: true + "@rollup/rollup-win32-x64-msvc": + optional: true + fsevents: + optional: true + bin: + rollup: dist/bin/rollup + checksum: 10c0/4c96b6e2e0c5dbe73b4ba899cea894a05115ab8c65ccff631fbbb944e2b3a9f2eb3b99c2dce3dd91b179647df1892ffc44ecee29381ccf155ba8000b22712a32 + languageName: node + linkType: hard + +"rollup@npm:^4.18.0": version: 4.18.0 resolution: "rollup@npm:4.18.0" dependencies: @@ -25917,6 +27206,75 @@ __metadata: languageName: node linkType: hard +"rollup@npm:^4.20.0": + version: 4.25.0 + resolution: "rollup@npm:4.25.0" + dependencies: + "@rollup/rollup-android-arm-eabi": "npm:4.25.0" + "@rollup/rollup-android-arm64": "npm:4.25.0" + "@rollup/rollup-darwin-arm64": "npm:4.25.0" + "@rollup/rollup-darwin-x64": "npm:4.25.0" + "@rollup/rollup-freebsd-arm64": "npm:4.25.0" + "@rollup/rollup-freebsd-x64": "npm:4.25.0" + "@rollup/rollup-linux-arm-gnueabihf": "npm:4.25.0" + "@rollup/rollup-linux-arm-musleabihf": "npm:4.25.0" + "@rollup/rollup-linux-arm64-gnu": "npm:4.25.0" + "@rollup/rollup-linux-arm64-musl": "npm:4.25.0" + "@rollup/rollup-linux-powerpc64le-gnu": "npm:4.25.0" + "@rollup/rollup-linux-riscv64-gnu": "npm:4.25.0" + "@rollup/rollup-linux-s390x-gnu": "npm:4.25.0" + "@rollup/rollup-linux-x64-gnu": "npm:4.25.0" + "@rollup/rollup-linux-x64-musl": "npm:4.25.0" + "@rollup/rollup-win32-arm64-msvc": "npm:4.25.0" + "@rollup/rollup-win32-ia32-msvc": "npm:4.25.0" + "@rollup/rollup-win32-x64-msvc": "npm:4.25.0" + "@types/estree": "npm:1.0.6" + fsevents: "npm:~2.3.2" + dependenciesMeta: + "@rollup/rollup-android-arm-eabi": + optional: true + "@rollup/rollup-android-arm64": + optional: true + "@rollup/rollup-darwin-arm64": + optional: true + "@rollup/rollup-darwin-x64": + optional: true + "@rollup/rollup-freebsd-arm64": + optional: true + "@rollup/rollup-freebsd-x64": + optional: true + "@rollup/rollup-linux-arm-gnueabihf": + optional: true + "@rollup/rollup-linux-arm-musleabihf": + optional: true + "@rollup/rollup-linux-arm64-gnu": + optional: true + "@rollup/rollup-linux-arm64-musl": + optional: true + "@rollup/rollup-linux-powerpc64le-gnu": + optional: true + "@rollup/rollup-linux-riscv64-gnu": + optional: true + "@rollup/rollup-linux-s390x-gnu": + optional: true + "@rollup/rollup-linux-x64-gnu": + optional: true + "@rollup/rollup-linux-x64-musl": + optional: true + "@rollup/rollup-win32-arm64-msvc": + optional: true + "@rollup/rollup-win32-ia32-msvc": + optional: true + "@rollup/rollup-win32-x64-msvc": + optional: true + fsevents: + optional: true + bin: + rollup: dist/bin/rollup + checksum: 10c0/fdb4d530bc942024f6e9ee3b5051fd2a8ef545a3869a689f6d1fea0f391e0b257835b639c01dc3024dbafe3790c8210aea547bcddbdb38c002087e5bf4630ad8 + languageName: node + linkType: hard + "rtl-detect@npm:^1.0.4": version: 1.0.4 resolution: "rtl-detect@npm:1.0.4" @@ -25952,13 +27310,6 @@ __metadata: languageName: node linkType: hard -"run-async@npm:^3.0.0": - version: 3.0.0 - resolution: "run-async@npm:3.0.0" - checksum: 10c0/b18b562ae37c3020083dcaae29642e4cc360c824fbfb6b7d50d809a9d5227bb986152d09310255842c8dce40526e82ca768f02f00806c91ba92a8dfa6159cb85 - languageName: node - linkType: hard - "run-parallel@npm:^1.1.9": version: 1.2.0 resolution: "run-parallel@npm:1.2.0" @@ -25972,70 +27323,70 @@ __metadata: version: 0.0.0-use.local resolution: "rx-angular@workspace:." dependencies: - "@angular-devkit/build-angular": "npm:18.0.2" - "@angular-devkit/core": "npm:18.0.2" - "@angular-devkit/schematics": "npm:18.0.2" - "@angular-eslint/eslint-plugin": "npm:18.0.0" - "@angular-eslint/eslint-plugin-template": "npm:18.0.0" - "@angular-eslint/template-parser": "npm:18.0.0" - "@angular/animations": "npm:18.0.1" - "@angular/build": "npm:^18.0.2" - "@angular/cdk": "npm:18.0.0" - "@angular/cdk-experimental": "npm:18.0.0" - "@angular/cli": "npm:~18.0.2" - "@angular/common": "npm:18.0.1" - "@angular/compiler": "npm:18.0.1" - "@angular/compiler-cli": "npm:18.0.1" - "@angular/core": "npm:18.0.1" - "@angular/forms": "npm:18.0.1" - "@angular/language-service": "npm:18.0.1" - "@angular/material": "npm:18.0.0" - "@angular/platform-browser": "npm:18.0.1" - "@angular/platform-browser-dynamic": "npm:18.0.1" - "@angular/platform-server": "npm:18.0.1" - "@angular/router": "npm:18.0.1" - "@angular/ssr": "npm:18.0.2" + "@angular-devkit/build-angular": "npm:18.2.9" + "@angular-devkit/core": "npm:18.2.9" + "@angular-devkit/schematics": "npm:18.2.9" + "@angular-eslint/eslint-plugin": "npm:18.4.0" + "@angular-eslint/eslint-plugin-template": "npm:18.4.0" + "@angular-eslint/template-parser": "npm:18.4.0" + "@angular/animations": "npm:18.2.9" + "@angular/build": "npm:18.2.9" + "@angular/cdk": "npm:18.2.9" + "@angular/cdk-experimental": "npm:18.2.9" + "@angular/cli": "npm:~18.2.0" + "@angular/common": "npm:18.2.9" + "@angular/compiler": "npm:18.2.9" + "@angular/compiler-cli": "npm:18.2.9" + "@angular/core": "npm:18.2.9" + "@angular/forms": "npm:18.2.9" + "@angular/language-service": "npm:18.2.9" + "@angular/material": "npm:18.2.9" + "@angular/platform-browser": "npm:18.2.9" + "@angular/platform-browser-dynamic": "npm:18.2.9" + "@angular/platform-server": "npm:18.2.9" + "@angular/router": "npm:18.2.9" + "@angular/ssr": "npm:18.2.9" "@commitlint/cli": "npm:^19.2.1" "@commitlint/config-angular": "npm:^19.1.0" "@jscutlery/semver": "npm:^4.1.0" - "@nx-plus/docusaurus": "npm:14.1.0" - "@nx/angular": "npm:19.1.1" - "@nx/cypress": "npm:19.1.1" - "@nx/eslint": "npm:19.1.1" - "@nx/eslint-plugin": "npm:19.1.1" - "@nx/jest": "npm:19.1.1" - "@nx/js": "npm:19.1.1" - "@nx/node": "npm:19.1.1" - "@nx/workspace": "npm:19.1.1" - "@schematics/angular": "npm:18.0.2" - "@swc-node/register": "npm:1.8.0" - "@swc/core": "npm:~1.3.85" + "@nx-plus/docusaurus": "patch:@nx-plus/docusaurus@npm%3A14.1.0#~/.yarn/patches/@nx-plus-docusaurus-npm-14.1.0-b526e34c01.patch" + "@nx/angular": "npm:20.1.0" + "@nx/cypress": "npm:20.1.0" + "@nx/eslint": "npm:20.1.0" + "@nx/eslint-plugin": "npm:20.1.0" + "@nx/jest": "npm:20.1.0" + "@nx/js": "npm:20.1.0" + "@nx/node": "npm:20.1.0" + "@nx/workspace": "npm:20.1.0" + "@schematics/angular": "npm:18.2.9" + "@swc-node/register": "npm:1.9.2" + "@swc/core": "npm:1.5.7" "@types/benchmark": "npm:^2.1.0" "@types/compression": "npm:^1.7.5" "@types/express": "npm:4.17.21" - "@types/jest": "npm:^29.4.0" + "@types/jest": "npm:29.5.14" "@types/klaw-sync": "npm:^6.0.0" "@types/lodash": "npm:^4.14.196" "@types/node": "npm:^18.16.9" - "@typescript-eslint/eslint-plugin": "npm:7.4.0" - "@typescript-eslint/parser": "npm:7.4.0" - "@typescript-eslint/utils": "npm:7.4.0" + "@typescript-eslint/eslint-plugin": "npm:8.15.0" + "@typescript-eslint/parser": "npm:8.15.0" + "@typescript-eslint/utils": "npm:7.18.0" autoprefixer: "npm:^10.4.0" benchmark: "npm:^2.1.4" bootstrap: "npm:^5.2.3" browser-sync: "npm:^3.0.0" compression: "npm:^1.7.4" cpx: "npm:^1.5.0" - cypress: "npm:13.9.0" - eslint: "npm:8.57.0" + cypress: "npm:13.15.2" + eslint: "npm:^8.57.1" eslint-config-prettier: "npm:^9.1.0" - eslint-plugin-cypress: "npm:2.15.1" + eslint-plugin-cypress: "npm:^4.1.0" eslint-plugin-simple-import-sort: "npm:^12.0.0" - eslint-plugin-unused-imports: "npm:^3.1.0" + eslint-plugin-unused-imports: "npm:^4.1.4" express: "npm:4.18.2" husky: "npm:^9.0.11" - jest: "npm:^29.4.1" - jest-environment-jsdom: "npm:29.5.0" + jest: "npm:29.7.0" + jest-environment-jsdom: "npm:29.7.0" jest-preset-angular: "npm:14.1.0" jsonc-eslint-parser: "npm:^2.1.0" klaw-sync: "npm:^6.0.0" @@ -26043,10 +27394,10 @@ __metadata: lodash: "npm:^4.17.21" markdown-link-check: "npm:^3.11.2" ng-morph: "npm:^4.0.3" - ng-packagr: "npm:18.0.0" + ng-packagr: "npm:18.2.1" ngx-skeleton-loader: "npm:^7.0.0" normalize-css: "npm:^2.3.1" - nx: "npm:19.1.1" + nx: "npm:20.1.0" postcss: "npm:^8.4.6" postcss-import: "npm:14.1.0" postcss-preset-env: "npm:7.5.0" @@ -26059,9 +27410,9 @@ __metadata: ts-jest: "npm:29.1.0" ts-node: "npm:10.9.1" tslib: "npm:^2.4.1" - typescript: "npm:5.4.3" + typescript: "npm:5.5.4" zlib: "npm:^1.0.5" - zone.js: "npm:0.14.4" + zone.js: "npm:0.14.10" languageName: unknown linkType: soft @@ -26139,16 +27490,9 @@ __metadata: languageName: node linkType: hard -"safevalues@npm:^0.3.4": - version: 0.3.4 - resolution: "safevalues@npm:0.3.4" - checksum: 10c0/28d5b8bea34f4b51f5d9960a5abec07885ea57df3e21f124c9343208053b735ee5d9153702a7552040dd5732243fc7c9ffe7b6c395225b19a5d561f0a9f6e1f3 - languageName: node - linkType: hard - -"sass-loader@npm:14.2.1": - version: 14.2.1 - resolution: "sass-loader@npm:14.2.1" +"sass-loader@npm:16.0.0": + version: 16.0.0 + resolution: "sass-loader@npm:16.0.0" dependencies: neo-async: "npm:^2.6.2" peerDependencies: @@ -26168,7 +27512,7 @@ __metadata: optional: true webpack: optional: true - checksum: 10c0/9a48d454584d96d6c562eb323bb9e3c6808e930eeaaa916975b97d45831e0b87936a8655cdb3a4512a25abc9587dea65a9616e42396be0d7e7c507a4795a8146 + checksum: 10c0/0d2c2ee89a380ae19f1d024008c241afb747c254cf8e2163b281533c803a1cb3933236f0cfbb59a296fce864e4274e32a80c30dadd5b98618a362f0be8bac20f languageName: node linkType: hard @@ -26197,16 +27541,16 @@ __metadata: languageName: node linkType: hard -"sass@npm:1.77.2": - version: 1.77.2 - resolution: "sass@npm:1.77.2" +"sass@npm:1.77.6": + version: 1.77.6 + resolution: "sass@npm:1.77.6" dependencies: chokidar: "npm:>=3.0.0 <4.0.0" immutable: "npm:^4.0.0" source-map-js: "npm:>=0.6.2 <2.0.0" bin: sass: sass.js - checksum: 10c0/0d292339064de3c902e209d41de9c4eb2038cff326476aeebbb5be3eee1d23400d975face2b8e124ae617b10af3e93bec01580f61912f34e4c517fe137a118b6 + checksum: 10c0/fe5a393c0aa29eda9f83c06be9b94788b61fe8bad0616ee6e3a25d21ab504f430d40c0064fdca89b02b8e426411ae6dcd906c91f2e48c263575c3d392b6daeb1 languageName: node linkType: hard @@ -26236,13 +27580,20 @@ __metadata: languageName: node linkType: hard -"sax@npm:^1.2.4, sax@npm:~1.2.4": +"sax@npm:^1.2.4": version: 1.2.4 resolution: "sax@npm:1.2.4" checksum: 10c0/6e9b05ff443ee5e5096ce92d31c0740a20d33002fad714ebcb8fc7a664d9ee159103ebe8f7aef0a1f7c5ecacdd01f177f510dff95611c589399baf76437d3fe3 languageName: node linkType: hard +"sax@npm:~1.4.1": + version: 1.4.1 + resolution: "sax@npm:1.4.1" + checksum: 10c0/6bf86318a254c5d898ede6bd3ded15daf68ae08a5495a2739564eb265cd13bcc64a07ab466fb204f67ce472bb534eb8612dac587435515169593f4fffa11de7c + languageName: node + linkType: hard + "saxes@npm:^6.0.0": version: 6.0.0 resolution: "saxes@npm:6.0.0" @@ -26393,12 +27744,12 @@ __metadata: languageName: node linkType: hard -"semver@npm:7.6.2": - version: 7.6.2 - resolution: "semver@npm:7.6.2" +"semver@npm:7.6.3": + version: 7.6.3 + resolution: "semver@npm:7.6.3" bin: semver: bin/semver.js - checksum: 10c0/97d3441e97ace8be4b1976433d1c32658f6afaff09f143e52c593bae7eef33de19e3e369c88bd985ce1042c6f441c80c6803078d1de2a9988080b66684cbb30c + checksum: 10c0/88f33e148b210c153873cb08cfe1e281d518aaa9a666d4d148add6560db5cd3c582f3a08ccb91f38d5f379ead256da9931234ed122057f40bb5766e65e58adaf languageName: node linkType: hard @@ -26504,6 +27855,27 @@ __metadata: languageName: node linkType: hard +"send@npm:0.19.0": + version: 0.19.0 + resolution: "send@npm:0.19.0" + dependencies: + debug: "npm:2.6.9" + depd: "npm:2.0.0" + destroy: "npm:1.2.0" + encodeurl: "npm:~1.0.2" + escape-html: "npm:~1.0.3" + etag: "npm:~1.8.1" + fresh: "npm:0.5.2" + http-errors: "npm:2.0.0" + mime: "npm:1.6.0" + ms: "npm:2.1.3" + on-finished: "npm:2.4.1" + range-parser: "npm:~1.2.1" + statuses: "npm:2.0.1" + checksum: 10c0/ea3f8a67a8f0be3d6bf9080f0baed6d2c51d11d4f7b4470de96a5029c598a7011c497511ccc28968b70ef05508675cebff27da9151dd2ceadd60be4e6cf845e3 + languageName: node + linkType: hard + "serialize-javascript@npm:^6.0.0, serialize-javascript@npm:^6.0.1": version: 6.0.1 resolution: "serialize-javascript@npm:6.0.1" @@ -26513,6 +27885,15 @@ __metadata: languageName: node linkType: hard +"serialize-javascript@npm:^6.0.2": + version: 6.0.2 + resolution: "serialize-javascript@npm:6.0.2" + dependencies: + randombytes: "npm:^2.1.0" + checksum: 10c0/2dd09ef4b65a1289ba24a788b1423a035581bef60817bea1f01eda8e3bda623f86357665fe7ac1b50f6d4f583f97db9615b3f07b2a2e8cbcb75033965f771dd2 + languageName: node + linkType: hard + "serve-handler@npm:^6.1.3": version: 6.1.5 resolution: "serve-handler@npm:6.1.5" @@ -26568,6 +27949,18 @@ __metadata: languageName: node linkType: hard +"serve-static@npm:1.16.2": + version: 1.16.2 + resolution: "serve-static@npm:1.16.2" + dependencies: + encodeurl: "npm:~2.0.0" + escape-html: "npm:~1.0.3" + parseurl: "npm:~1.3.3" + send: "npm:0.19.0" + checksum: 10c0/528fff6f5e12d0c5a391229ad893910709bc51b5705962b09404a1d813857578149b8815f35d3ee5752f44cd378d0f31669d4b1d7e2d11f41e08283d5134bd1f + languageName: node + linkType: hard + "server-destroy@npm:1.0.1": version: 1.0.1 resolution: "server-destroy@npm:1.0.1" @@ -26685,6 +28078,18 @@ __metadata: languageName: node linkType: hard +"side-channel@npm:^1.0.6": + version: 1.0.6 + resolution: "side-channel@npm:1.0.6" + dependencies: + call-bind: "npm:^1.0.7" + es-errors: "npm:^1.3.0" + get-intrinsic: "npm:^1.2.4" + object-inspect: "npm:^1.13.1" + checksum: 10c0/d2afd163dc733cc0a39aa6f7e39bf0c436293510dbccbff446733daeaf295857dbccf94297092ec8c53e2503acac30f0b78830876f0485991d62a90e9cad305f + languageName: node + linkType: hard + "signal-exit@npm:^3.0.2, signal-exit@npm:^3.0.3, signal-exit@npm:^3.0.7": version: 3.0.7 resolution: "signal-exit@npm:3.0.7" @@ -26766,6 +28171,13 @@ __metadata: languageName: node linkType: hard +"slash@npm:^5.1.0": + version: 5.1.0 + resolution: "slash@npm:5.1.0" + checksum: 10c0/eb48b815caf0bdc390d0519d41b9e0556a14380f6799c72ba35caf03544d501d18befdeeef074bc9c052acf69654bc9e0d79d7f1de0866284137a40805299eb3 + languageName: node + linkType: hard + "slice-ansi@npm:^3.0.0": version: 3.0.0 resolution: "slice-ansi@npm:3.0.0" @@ -26798,6 +28210,16 @@ __metadata: languageName: node linkType: hard +"slice-ansi@npm:^7.1.0": + version: 7.1.0 + resolution: "slice-ansi@npm:7.1.0" + dependencies: + ansi-styles: "npm:^6.2.1" + is-fullwidth-code-point: "npm:^5.0.0" + checksum: 10c0/631c971d4abf56cf880f034d43fcc44ff883624867bf11ecbd538c47343911d734a4656d7bc02362b40b89d765652a7f935595441e519b59e2ad3f4d5d6fe7ca + languageName: node + linkType: hard + "smart-buffer@npm:^4.2.0": version: 4.2.0 resolution: "smart-buffer@npm:4.2.0" @@ -26938,6 +28360,13 @@ __metadata: languageName: node linkType: hard +"sorted-array-functions@npm:^1.3.0": + version: 1.3.0 + resolution: "sorted-array-functions@npm:1.3.0" + checksum: 10c0/d94e3401a2bc1689dc913f56939621c892a3ff1288e984e85689a6c6e46b0ec16f65edc8b47d46b0f09d06857f67ca245553b462da597619102b9fad270476d9 + languageName: node + linkType: hard + "source-map-js@npm:>=0.6.2 <2.0.0, source-map-js@npm:^1.0.1, source-map-js@npm:^1.0.2": version: 1.0.2 resolution: "source-map-js@npm:1.0.2" @@ -26952,7 +28381,14 @@ __metadata: languageName: node linkType: hard -"source-map-loader@npm:5.0.0": +"source-map-js@npm:^1.2.1": + version: 1.2.1 + resolution: "source-map-js@npm:1.2.1" + checksum: 10c0/7bda1fc4c197e3c6ff17de1b8b2c20e60af81b63a52cb32ec5a5d67a20a7d42651e2cb34ebe93833c5a2a084377e17455854fee3e21e7925c64a51b6a52b0faf + languageName: node + linkType: hard + +"source-map-loader@npm:5.0.0, source-map-loader@npm:^5.0.0": version: 5.0.0 resolution: "source-map-loader@npm:5.0.0" dependencies: @@ -26964,19 +28400,6 @@ __metadata: languageName: node linkType: hard -"source-map-loader@npm:^3.0.0": - version: 3.0.2 - resolution: "source-map-loader@npm:3.0.2" - dependencies: - abab: "npm:^2.0.5" - iconv-lite: "npm:^0.6.3" - source-map-js: "npm:^1.0.1" - peerDependencies: - webpack: ^5.0.0 - checksum: 10c0/ce38822d10ac0fc09f3a3f320f184d5a5c7e66a6c447e5f2c36476d901e3224a00cc7843be615212a50b8607beee565f08b526fbb0621357a1a6247f48fd09bc - languageName: node - linkType: hard - "source-map-resolve@npm:^0.5.0": version: 0.5.3 resolution: "source-map-resolve@npm:0.5.3" @@ -27139,9 +28562,9 @@ __metadata: languageName: node linkType: hard -"sshpk@npm:^1.14.1": - version: 1.17.0 - resolution: "sshpk@npm:1.17.0" +"sshpk@npm:^1.18.0": + version: 1.18.0 + resolution: "sshpk@npm:1.18.0" dependencies: asn1: "npm:~0.2.3" assert-plus: "npm:^1.0.0" @@ -27156,7 +28579,7 @@ __metadata: sshpk-conv: bin/sshpk-conv sshpk-sign: bin/sshpk-sign sshpk-verify: bin/sshpk-verify - checksum: 10c0/cf5e7f4c72e8a505ef41daac9f9ca26da365cfe26ae265a01ce98a8868991943857a8526c1cf98a42ef0dc4edf1dbe4e77aeea378cfeb58054beb78505e85402 + checksum: 10c0/e516e34fa981cfceef45fd2e947772cc70dbd57523e5c608e2cd73752ba7f8a99a04df7c3ed751588e8d91956b6f16531590b35d3489980d1c54c38bebcd41b1 languageName: node linkType: hard @@ -27209,7 +28632,7 @@ __metadata: languageName: node linkType: hard -"statuses@npm:>= 1.4.0 < 2": +"statuses@npm:>= 1.4.0 < 2, statuses@npm:>= 1.5.0 < 2, statuses@npm:^1.5.0": version: 1.5.0 resolution: "statuses@npm:1.5.0" checksum: 10c0/e433900956357b3efd79b1c547da4d291799ac836960c016d10a98f6a810b1b5c0dcc13b5a7aa609a58239b5190e1ea176ad9221c2157d2fd1c747393e6b2940 @@ -27249,6 +28672,17 @@ __metadata: languageName: node linkType: hard +"streamroller@npm:^3.1.5": + version: 3.1.5 + resolution: "streamroller@npm:3.1.5" + dependencies: + date-format: "npm:^4.0.14" + debug: "npm:^4.3.4" + fs-extra: "npm:^8.1.0" + checksum: 10c0/0bdeec34ad37487d959ba908f17067c938f544db88b5bb1669497a67a6b676413229ce5a6145c2812d06959ebeb8842e751076647d4b323ca06be612963b9099 + languageName: node + linkType: hard + "string-argv@npm:^0.3.1": version: 0.3.1 resolution: "string-argv@npm:0.3.1" @@ -27288,6 +28722,17 @@ __metadata: languageName: node linkType: hard +"string-width@npm:^7.0.0": + version: 7.2.0 + resolution: "string-width@npm:7.2.0" + dependencies: + emoji-regex: "npm:^10.3.0" + get-east-asian-width: "npm:^1.0.0" + strip-ansi: "npm:^7.1.0" + checksum: 10c0/eb0430dd43f3199c7a46dcbf7a0b34539c76fe3aa62763d0b0655acdcbdf360b3f66f3d58ca25ba0205f42ea3491fa00f09426d3b7d3040e506878fc7664c9b9 + languageName: node + linkType: hard + "string_decoder@npm:^1.1.1": version: 1.3.0 resolution: "string_decoder@npm:1.3.0" @@ -27335,6 +28780,15 @@ __metadata: languageName: node linkType: hard +"strip-ansi@npm:^7.1.0": + version: 7.1.0 + resolution: "strip-ansi@npm:7.1.0" + dependencies: + ansi-regex: "npm:^6.0.1" + checksum: 10c0/a198c3762e8832505328cbf9e8c8381de14a4fa50a4f9b2160138158ea88c0f5549fb50cb13c651c3088f47e63a108b34622ec18c0499b6c8c3a5ddf6b305ac4 + languageName: node + linkType: hard + "strip-bom-string@npm:^1.0.0": version: 1.0.0 resolution: "strip-bom-string@npm:1.0.0" @@ -27384,19 +28838,6 @@ __metadata: languageName: node linkType: hard -"strong-log-transformer@npm:^2.1.0": - version: 2.1.0 - resolution: "strong-log-transformer@npm:2.1.0" - dependencies: - duplexer: "npm:^0.1.1" - minimist: "npm:^1.2.0" - through: "npm:^2.3.4" - bin: - sl-log-transformer: bin/sl-log-transformer.js - checksum: 10c0/3c3b8aa8f34d661910563ff996412e2f527fc814e699a376854b554d4a4294ab7e285b4e2c08a080a7b19c5600a9b93a98798d3ac600fe3de545ca6605c07829 - languageName: node - linkType: hard - "style-loader@npm:^3.3.0": version: 3.3.2 resolution: "style-loader@npm:3.3.2" @@ -27452,18 +28893,18 @@ __metadata: languageName: node linkType: hard -"stylus@npm:^0.59.0": - version: 0.59.0 - resolution: "stylus@npm:0.59.0" +"stylus@npm:^0.64.0": + version: 0.64.0 + resolution: "stylus@npm:0.64.0" dependencies: - "@adobe/css-tools": "npm:^4.0.1" + "@adobe/css-tools": "npm:~4.3.3" debug: "npm:^4.3.2" - glob: "npm:^7.1.6" - sax: "npm:~1.2.4" + glob: "npm:^10.4.5" + sax: "npm:~1.4.1" source-map: "npm:^0.7.3" bin: stylus: bin/stylus - checksum: 10c0/77888e4bf66a934a70fcc39af015355c7a2e5ca4e4a8131ffac3a1021d6764380c0c9d882266fb278879501c55349e7cc3bb6cbde9c77cbd2605111ad5c51ad6 + checksum: 10c0/8081ec48a6e85945202f72c3dae495c1086b1acedfb0b969fc7d9bac25be6de21efe073da5d287a5cdd2592b23b4b6e2af6eb0d8db42c3d39edb89715343d8aa languageName: node linkType: hard @@ -27692,9 +29133,9 @@ __metadata: languageName: node linkType: hard -"terser@npm:5.31.0": - version: 5.31.0 - resolution: "terser@npm:5.31.0" +"terser@npm:5.31.6": + version: 5.31.6 + resolution: "terser@npm:5.31.6" dependencies: "@jridgewell/source-map": "npm:^0.3.3" acorn: "npm:^8.8.2" @@ -27702,7 +29143,7 @@ __metadata: source-map-support: "npm:~0.5.20" bin: terser: bin/terser - checksum: 10c0/cb127a579b03fb9dcee0d293ff24814deedcd430f447933b618e8593b7454f615b5c8493c68e86a4b0188769d5ea2af5251b5d507edb208114f7e8aebdc7c850 + checksum: 10c0/b17d02b65a52a5041430572b3c514475820f5e7590fa93773c0f5b4be601ccf3f6d745bf5a79f3ee58187cf85edf61c24ddf4345783839fccb44c9c8fa9b427e languageName: node linkType: hard @@ -27789,7 +29230,7 @@ __metadata: languageName: node linkType: hard -"through@npm:>=2.2.7 <3, through@npm:^2.3.4, through@npm:^2.3.6, through@npm:^2.3.8": +"through@npm:>=2.2.7 <3, through@npm:^2.3.6, through@npm:^2.3.8": version: 2.3.8 resolution: "through@npm:2.3.8" checksum: 10c0/4b09f3774099de0d4df26d95c5821a62faee32c7e96fb1f4ebd54a2d7c11c57fe88b0a0d49cf375de5fee5ae6bf4eb56dbbf29d07366864e2ee805349970d3cc @@ -27817,6 +29258,24 @@ __metadata: languageName: node linkType: hard +"tldts-core@npm:^6.1.60": + version: 6.1.60 + resolution: "tldts-core@npm:6.1.60" + checksum: 10c0/fece0a6c6297e45323e4e4f9602e5e8378bb31f36b99ce26a60b7985ba0f175de992435b3de6c0e9526afeea3ce8090bc5426b99627c890731053892fe0e0266 + languageName: node + linkType: hard + +"tldts@npm:^6.1.32": + version: 6.1.60 + resolution: "tldts@npm:6.1.60" + dependencies: + tldts-core: "npm:^6.1.60" + bin: + tldts: bin/cli.js + checksum: 10c0/7b8609cd2017099dbbb0747f8f4e762e2feb88806674275acfa83dacdaced34b8cc6623174159d28a3fbc186be58b3cdd2cd1c79cab903ac11b33e1022c05ad6 + languageName: node + linkType: hard + "tmp@npm:^0.0.33": version: 0.0.33 resolution: "tmp@npm:0.0.33" @@ -27835,6 +29294,13 @@ __metadata: languageName: node linkType: hard +"tmp@npm:~0.2.3": + version: 0.2.3 + resolution: "tmp@npm:0.2.3" + checksum: 10c0/3e809d9c2f46817475b452725c2aaa5d11985cf18d32a7a970ff25b568438e2c076c2e8609224feef3b7923fa9749b74428e3e634f6b8e520c534eef2fd24125 + languageName: node + linkType: hard + "tmpl@npm:1.0.5": version: 1.0.5 resolution: "tmpl@npm:1.0.5" @@ -27922,15 +29388,12 @@ __metadata: languageName: node linkType: hard -"tough-cookie@npm:^4.1.3": - version: 4.1.3 - resolution: "tough-cookie@npm:4.1.3" +"tough-cookie@npm:^5.0.0": + version: 5.0.0 + resolution: "tough-cookie@npm:5.0.0" dependencies: - psl: "npm:^1.1.33" - punycode: "npm:^2.1.1" - universalify: "npm:^0.2.0" - url-parse: "npm:^1.5.3" - checksum: 10c0/4fc0433a0cba370d57c4b240f30440c848906dee3180bb6e85033143c2726d322e7e4614abb51d42d111ebec119c4876ed8d7247d4113563033eebbc1739c831 + tldts: "npm:^6.1.32" + checksum: 10c0/4a69c885bf6f45c5a64e60262af99e8c0d58a33bd3d0ce5da62121eeb9c00996d0128a72df8fc4614cbde59cc8b70aa3e21e4c3c98c2bbde137d7aba7fa00124 languageName: node linkType: hard @@ -27989,15 +29452,6 @@ __metadata: languageName: node linkType: hard -"ts-api-utils@npm:^1.0.1": - version: 1.0.3 - resolution: "ts-api-utils@npm:1.0.3" - peerDependencies: - typescript: ">=4.2.0" - checksum: 10c0/9408338819c3aca2a709f0bc54e3f874227901506cacb1163612a6c8a43df224174feb965a5eafdae16f66fc68fd7bfee8d3275d0fa73fbb8699e03ed26520c9 - languageName: node - linkType: hard - "ts-api-utils@npm:^1.3.0": version: 1.3.0 resolution: "ts-api-utils@npm:1.3.0" @@ -28165,6 +29619,13 @@ __metadata: languageName: node linkType: hard +"tslib@npm:2.6.3": + version: 2.6.3 + resolution: "tslib@npm:2.6.3" + checksum: 10c0/2598aef53d9dbe711af75522464b2104724d6467b26a60f2bdac8297d2b5f1f6b86a71f61717384aa8fd897240467aaa7bcc36a0700a0faf751293d1331db39a + languageName: node + linkType: hard + "tslib@npm:^2.0.0, tslib@npm:^2.0.3, tslib@npm:^2.1.0, tslib@npm:^2.3.0, tslib@npm:^2.4.0, tslib@npm:^2.4.1": version: 2.5.0 resolution: "tslib@npm:2.5.0" @@ -28172,6 +29633,20 @@ __metadata: languageName: node linkType: hard +"tslib@npm:^2.6.3": + version: 2.8.1 + resolution: "tslib@npm:2.8.1" + checksum: 10c0/9c4759110a19c53f992d9aae23aac5ced636e99887b51b9e61def52611732872ff7668757d4e4c61f19691e36f4da981cd9485e869b4a7408d689f6bf1f14e62 + languageName: node + linkType: hard + +"tsscmp@npm:1.0.6": + version: 1.0.6 + resolution: "tsscmp@npm:1.0.6" + checksum: 10c0/2f79a9455e7e3e8071995f98cdf3487ccfc91b760bec21a9abb4d90519557eafaa37246e87c92fa8bf3fef8fd30cfd0cc3c4212bb929baa9fb62494bfa4d24b2 + languageName: node + linkType: hard + "tuf-js@npm:^2.2.0": version: 2.2.0 resolution: "tuf-js@npm:2.2.0" @@ -28259,7 +29734,7 @@ __metadata: languageName: node linkType: hard -"type-is@npm:~1.6.18": +"type-is@npm:^1.6.16, type-is@npm:~1.6.18": version: 1.6.18 resolution: "type-is@npm:1.6.18" dependencies: @@ -28285,13 +29760,13 @@ __metadata: languageName: node linkType: hard -"typescript@npm:5.4.3, typescript@npm:~5.4.2": - version: 5.4.3 - resolution: "typescript@npm:5.4.3" +"typescript@npm:5.5.4": + version: 5.5.4 + resolution: "typescript@npm:5.5.4" bin: tsc: bin/tsc tsserver: bin/tsserver - checksum: 10c0/22443a8760c3668e256c0b34b6b45c359ef6cecc10c42558806177a7d500ab1a7d7aac1f976d712e26989ddf6731d2fbdd3212b7c73290a45127c1c43ba2005a + checksum: 10c0/422be60f89e661eab29ac488c974b6cc0a660fb2228003b297c3d10c32c90f3bcffc1009b43876a082515a3c376b1eefcce823d6e78982e6878408b9a923199c languageName: node linkType: hard @@ -28305,13 +29780,23 @@ __metadata: languageName: node linkType: hard -"typescript@patch:typescript@npm%3A5.4.3#optional!builtin, typescript@patch:typescript@npm%3A~5.4.2#optional!builtin": +"typescript@npm:~5.4.2": version: 5.4.3 - resolution: "typescript@patch:typescript@npm%3A5.4.3#optional!builtin::version=5.4.3&hash=5adc0c" + resolution: "typescript@npm:5.4.3" bin: tsc: bin/tsc tsserver: bin/tsserver - checksum: 10c0/6e51f8b7e6ec55b897b9e56b67e864fe8f44e30f4a14357aad5dc0f7432db2f01efc0522df0b6c36d361c51f2dc3dcac5c832efd96a404cfabf884e915d38828 + checksum: 10c0/22443a8760c3668e256c0b34b6b45c359ef6cecc10c42558806177a7d500ab1a7d7aac1f976d712e26989ddf6731d2fbdd3212b7c73290a45127c1c43ba2005a + languageName: node + linkType: hard + +"typescript@patch:typescript@npm%3A5.5.4#optional!builtin": + version: 5.5.4 + resolution: "typescript@patch:typescript@npm%3A5.5.4#optional!builtin::version=5.5.4&hash=379a07" + bin: + tsc: bin/tsc + tsserver: bin/tsserver + checksum: 10c0/73409d7b9196a5a1217b3aaad929bf76294d3ce7d6e9766dd880ece296ee91cf7d7db6b16c6c6c630ee5096eccde726c0ef17c7dfa52b01a243e57ae1f09ef07 languageName: node linkType: hard @@ -28325,6 +29810,16 @@ __metadata: languageName: node linkType: hard +"typescript@patch:typescript@npm%3A~5.4.2#optional!builtin": + version: 5.4.3 + resolution: "typescript@patch:typescript@npm%3A5.4.3#optional!builtin::version=5.4.3&hash=5adc0c" + bin: + tsc: bin/tsc + tsserver: bin/tsserver + checksum: 10c0/6e51f8b7e6ec55b897b9e56b67e864fe8f44e30f4a14357aad5dc0f7432db2f01efc0522df0b6c36d361c51f2dc3dcac5c832efd96a404cfabf884e915d38828 + languageName: node + linkType: hard + "ua-parser-js@npm:^0.7.30": version: 0.7.35 resolution: "ua-parser-js@npm:0.7.35" @@ -28355,10 +29850,10 @@ __metadata: languageName: node linkType: hard -"undici@npm:6.18.0": - version: 6.18.0 - resolution: "undici@npm:6.18.0" - checksum: 10c0/b888f13169357999abe94f7a9870800987696887952dd3780a5e4d9b43532088ef8d2e747969934ac57752900fb59e5725289f97cad458da3317501a47ccb85a +"undici-types@npm:~6.19.8": + version: 6.19.8 + resolution: "undici-types@npm:6.19.8" + checksum: 10c0/078afa5990fba110f6824823ace86073b4638f1d5112ee26e790155f481f2a868cc3e0615505b6f4282bdf74a3d8caad715fd809e870c2bb0704e3ea6082f344 languageName: node linkType: hard @@ -28607,6 +30102,13 @@ __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.0.10": version: 1.0.10 resolution: "update-browserslist-db@npm:1.0.10" @@ -28635,6 +30137,20 @@ __metadata: languageName: node linkType: hard +"update-browserslist-db@npm:^1.1.1": + version: 1.1.1 + resolution: "update-browserslist-db@npm:1.1.1" + dependencies: + escalade: "npm:^3.2.0" + picocolors: "npm:^1.1.0" + peerDependencies: + browserslist: ">= 4.21.0" + bin: + update-browserslist-db: cli.js + checksum: 10c0/536a2979adda2b4be81b07e311bd2f3ad5e978690987956bc5f514130ad50cac87cd22c710b686d79731e00fbee8ef43efe5fcd72baa241045209195d43dcc80 + languageName: node + linkType: hard + "update-notifier@npm:^5.1.0": version: 5.1.0 resolution: "update-notifier@npm:5.1.0" @@ -28657,7 +30173,7 @@ __metadata: languageName: node linkType: hard -"uri-js@npm:^4.2.2, uri-js@npm:^4.4.1": +"uri-js@npm:^4.2.2": version: 4.4.1 resolution: "uri-js@npm:4.4.1" dependencies: @@ -28839,7 +30355,7 @@ __metadata: languageName: node linkType: hard -"vary@npm:^1, vary@npm:~1.1.2": +"vary@npm:^1, vary@npm:^1.1.2, vary@npm:~1.1.2": version: 1.1.2 resolution: "vary@npm:1.1.2" checksum: 10c0/f15d588d79f3675135ba783c91a4083dcd290a2a5be9fcb6514220a1634e23df116847b1cc51f66bfb0644cf9353b2abb7815ae499bab06e46dd33c1a6bf1f4f @@ -28886,19 +30402,20 @@ __metadata: languageName: node linkType: hard -"vite@npm:5.2.11": - version: 5.2.11 - resolution: "vite@npm:5.2.11" +"vite@npm:5.4.6": + version: 5.4.6 + resolution: "vite@npm:5.4.6" dependencies: - esbuild: "npm:^0.20.1" + esbuild: "npm:^0.21.3" fsevents: "npm:~2.3.3" - postcss: "npm:^8.4.38" - rollup: "npm:^4.13.0" + postcss: "npm:^8.4.43" + rollup: "npm:^4.20.0" peerDependencies: "@types/node": ^18.0.0 || >=20.0.0 less: "*" lightningcss: ^1.21.0 sass: "*" + sass-embedded: "*" stylus: "*" sugarss: "*" terser: ^5.4.0 @@ -28914,6 +30431,8 @@ __metadata: optional: true sass: optional: true + sass-embedded: + optional: true stylus: optional: true sugarss: @@ -28922,7 +30441,7 @@ __metadata: optional: true bin: vite: bin/vite.js - checksum: 10c0/664b8d68e4f5152ae16bd2041af1bbaf11c43630ac461835bc31ff7d019913b33e465386e09f66dc1037d7aeefbb06939e0173787c063319bc2bd30c3b9ad8e4 + checksum: 10c0/5f87be3a10e970eaf9ac52dfab39cf9fff583036685252fb64570b6d7bfa749f6d221fb78058f5ef4b5664c180d45a8e7a7ff68d7f3770e69e24c7c68b958bde languageName: node linkType: hard @@ -29045,9 +30564,9 @@ __metadata: languageName: node linkType: hard -"webpack-dev-middleware@npm:7.2.1, webpack-dev-middleware@npm:^7.1.0": - version: 7.2.1 - resolution: "webpack-dev-middleware@npm:7.2.1" +"webpack-dev-middleware@npm:7.4.2, webpack-dev-middleware@npm:^7.4.2": + version: 7.4.2 + resolution: "webpack-dev-middleware@npm:7.4.2" dependencies: colorette: "npm:^2.0.10" memfs: "npm:^4.6.0" @@ -29060,7 +30579,7 @@ __metadata: peerDependenciesMeta: webpack: optional: true - checksum: 10c0/e3a61098d5fe3325f698f8f97395f8625b96717e690170f3e4704c939dc96cbb57a871730d3ba4d19f06975b558d4f283bdcc801d823463a12da0dbc3844b531 + checksum: 10c0/2aa873ef57a7095d7fba09400737b6066adc3ded229fd6eba89a666f463c2614c68e01ae58f662c9cdd74f0c8da088523d972329bf4a054e470bc94feb8bcad0 languageName: node linkType: hard @@ -29079,6 +30598,25 @@ __metadata: languageName: node linkType: hard +"webpack-dev-middleware@npm:^7.1.0": + version: 7.2.1 + resolution: "webpack-dev-middleware@npm:7.2.1" + dependencies: + colorette: "npm:^2.0.10" + memfs: "npm:^4.6.0" + mime-types: "npm:^2.1.31" + on-finished: "npm:^2.4.1" + range-parser: "npm:^1.2.1" + schema-utils: "npm:^4.0.0" + peerDependencies: + webpack: ^5.0.0 + peerDependenciesMeta: + webpack: + optional: true + checksum: 10c0/e3a61098d5fe3325f698f8f97395f8625b96717e690170f3e4704c939dc96cbb57a871730d3ba4d19f06975b558d4f283bdcc801d823463a12da0dbc3844b531 + languageName: node + linkType: hard + "webpack-dev-server@npm:5.0.4": version: 5.0.4 resolution: "webpack-dev-server@npm:5.0.4" @@ -29173,14 +30711,59 @@ __metadata: languageName: node linkType: hard -"webpack-merge@npm:5.10.0": - version: 5.10.0 - resolution: "webpack-merge@npm:5.10.0" +"webpack-dev-server@npm:^5.0.4": + version: 5.1.0 + resolution: "webpack-dev-server@npm:5.1.0" + dependencies: + "@types/bonjour": "npm:^3.5.13" + "@types/connect-history-api-fallback": "npm:^1.5.4" + "@types/express": "npm:^4.17.21" + "@types/serve-index": "npm:^1.9.4" + "@types/serve-static": "npm:^1.15.5" + "@types/sockjs": "npm:^0.3.36" + "@types/ws": "npm:^8.5.10" + ansi-html-community: "npm:^0.0.8" + bonjour-service: "npm:^1.2.1" + chokidar: "npm:^3.6.0" + colorette: "npm:^2.0.10" + compression: "npm:^1.7.4" + connect-history-api-fallback: "npm:^2.0.0" + express: "npm:^4.19.2" + graceful-fs: "npm:^4.2.6" + html-entities: "npm:^2.4.0" + http-proxy-middleware: "npm:^2.0.3" + ipaddr.js: "npm:^2.1.0" + launch-editor: "npm:^2.6.1" + open: "npm:^10.0.3" + p-retry: "npm:^6.2.0" + schema-utils: "npm:^4.2.0" + selfsigned: "npm:^2.4.1" + serve-index: "npm:^1.9.1" + sockjs: "npm:^0.3.24" + spdy: "npm:^4.0.2" + webpack-dev-middleware: "npm:^7.4.2" + ws: "npm:^8.18.0" + peerDependencies: + webpack: ^5.0.0 + peerDependenciesMeta: + webpack: + optional: true + webpack-cli: + optional: true + bin: + webpack-dev-server: bin/webpack-dev-server.js + checksum: 10c0/303c72b743d649dec706aedaeea2f0e924e3fb4432aa5a1e43f807e7c6052817027ccf33f88adb566fa7ebf89f6aed551ce2c2d76b5ccaaaefade83fde7f7a38 + languageName: node + linkType: hard + +"webpack-merge@npm:6.0.1": + version: 6.0.1 + resolution: "webpack-merge@npm:6.0.1" dependencies: clone-deep: "npm:^4.0.1" flat: "npm:^5.0.2" - wildcard: "npm:^2.0.0" - checksum: 10c0/b607c84cabaf74689f965420051a55a08722d897bdd6c29cb0b2263b451c090f962d41ecf8c9bf56b0ab3de56e65476ace0a8ecda4f4a4663684243d90e0512b + wildcard: "npm:^2.0.1" + checksum: 10c0/bf1429567858b353641801b8a2696ca0aac270fc8c55d4de8a7b586fe07d27fdcfc83099a98ab47e6162383db8dd63bb8cc25b1beb2ec82150422eec843b0dc0 languageName: node linkType: hard @@ -29223,20 +30806,19 @@ __metadata: languageName: node linkType: hard -"webpack@npm:5.91.0": - version: 5.91.0 - resolution: "webpack@npm:5.91.0" +"webpack@npm:5.94.0": + version: 5.94.0 + resolution: "webpack@npm:5.94.0" dependencies: - "@types/eslint-scope": "npm:^3.7.3" "@types/estree": "npm:^1.0.5" "@webassemblyjs/ast": "npm:^1.12.1" "@webassemblyjs/wasm-edit": "npm:^1.12.1" "@webassemblyjs/wasm-parser": "npm:^1.12.1" acorn: "npm:^8.7.1" - acorn-import-assertions: "npm:^1.9.0" + acorn-import-attributes: "npm:^1.9.5" browserslist: "npm:^4.21.10" chrome-trace-event: "npm:^1.0.2" - enhanced-resolve: "npm:^5.16.0" + enhanced-resolve: "npm:^5.17.1" es-module-lexer: "npm:^1.2.1" eslint-scope: "npm:5.1.1" events: "npm:^3.2.0" @@ -29256,7 +30838,7 @@ __metadata: optional: true bin: webpack: bin/webpack.js - checksum: 10c0/74a3e0ea1c9a492accf035317f31769ffeaaab415811524b9f17bc7bf7012c5b6e1a9860df5ca6903f3ae2618727b801eb47d9351a2595dfffb25941d368b88c + checksum: 10c0/b4d1b751f634079bd177a89eef84d80fa5bb8d6fc15d72ab40fc2b9ca5167a79b56585e1a849e9e27e259803ee5c4365cb719e54af70a43c06358ec268ff4ebf languageName: node linkType: hard @@ -29334,6 +30916,42 @@ __metadata: languageName: node linkType: hard +"webpack@npm:^5.88.0": + version: 5.96.1 + resolution: "webpack@npm:5.96.1" + dependencies: + "@types/eslint-scope": "npm:^3.7.7" + "@types/estree": "npm:^1.0.6" + "@webassemblyjs/ast": "npm:^1.12.1" + "@webassemblyjs/wasm-edit": "npm:^1.12.1" + "@webassemblyjs/wasm-parser": "npm:^1.12.1" + acorn: "npm:^8.14.0" + browserslist: "npm:^4.24.0" + chrome-trace-event: "npm:^1.0.2" + enhanced-resolve: "npm:^5.17.1" + es-module-lexer: "npm:^1.2.1" + eslint-scope: "npm:5.1.1" + events: "npm:^3.2.0" + glob-to-regexp: "npm:^0.4.1" + graceful-fs: "npm:^4.2.11" + json-parse-even-better-errors: "npm:^2.3.1" + loader-runner: "npm:^4.2.0" + mime-types: "npm:^2.1.27" + neo-async: "npm:^2.6.2" + schema-utils: "npm:^3.2.0" + tapable: "npm:^2.1.1" + terser-webpack-plugin: "npm:^5.3.10" + watchpack: "npm:^2.4.1" + webpack-sources: "npm:^3.2.3" + peerDependenciesMeta: + webpack-cli: + optional: true + bin: + webpack: bin/webpack.js + checksum: 10c0/ae6052fde9a546f79f14987b65823ba4024c6642a8489339ecfee7a351dff93325842aad453295bbdc6b65fb1690e4ef07529db63aa84ece55c7869e991a0039 + languageName: node + linkType: hard + "webpackbar@npm:^5.0.2": version: 5.0.2 resolution: "webpackbar@npm:5.0.2" @@ -29402,7 +31020,7 @@ __metadata: languageName: node linkType: hard -"which@npm:^1.3.1": +"which@npm:^1.2.14, which@npm:^1.3.1": version: 1.3.1 resolution: "which@npm:1.3.1" dependencies: @@ -29460,6 +31078,13 @@ __metadata: languageName: node linkType: hard +"wildcard@npm:^2.0.1": + version: 2.0.1 + resolution: "wildcard@npm:2.0.1" + checksum: 10c0/08f70cd97dd9a20aea280847a1fe8148e17cae7d231640e41eb26d2388697cbe65b67fd9e68715251c39b080c5ae4f76d71a9a69fa101d897273efdfb1b58bf7 + languageName: node + linkType: hard + "word-wrap@npm:~1.2.3": version: 1.2.3 resolution: "word-wrap@npm:1.2.3" @@ -29507,6 +31132,17 @@ __metadata: languageName: node linkType: hard +"wrap-ansi@npm:^9.0.0": + version: 9.0.0 + resolution: "wrap-ansi@npm:9.0.0" + dependencies: + ansi-styles: "npm:^6.2.1" + string-width: "npm:^7.0.0" + strip-ansi: "npm:^7.1.0" + checksum: 10c0/a139b818da9573677548dd463bd626a5a5286271211eb6e4e82f34a4f643191d74e6d4a9bb0a3c26ec90e6f904f679e0569674ac099ea12378a8b98e20706066 + languageName: node + linkType: hard + "wrappy@npm:1": version: 1.0.2 resolution: "wrappy@npm:1.0.2" @@ -29536,6 +31172,36 @@ __metadata: languageName: node linkType: hard +"ws@npm:8.17.1": + version: 8.17.1 + resolution: "ws@npm:8.17.1" + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: ">=5.0.2" + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + checksum: 10c0/f4a49064afae4500be772abdc2211c8518f39e1c959640457dcee15d4488628620625c783902a52af2dd02f68558da2868fd06e6fd0e67ebcd09e6881b1b5bfe + languageName: node + linkType: hard + +"ws@npm:8.18.0, ws@npm:^8.18.0": + version: 8.18.0 + resolution: "ws@npm:8.18.0" + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: ">=5.0.2" + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + checksum: 10c0/25eb33aff17edcb90721ed6b0eb250976328533ad3cd1a28a274bd263682e7296a6591ff1436d6cbc50fa67463158b062f9d1122013b361cec99a05f84680e06 + languageName: node + linkType: hard + "ws@npm:^7.3.1": version: 7.5.9 resolution: "ws@npm:7.5.9" @@ -29733,6 +31399,13 @@ __metadata: languageName: node linkType: hard +"ylru@npm:^1.2.0": + version: 1.4.0 + resolution: "ylru@npm:1.4.0" + checksum: 10c0/eaadc38ed6d78d4fda49abed45cfdaf149bd334df761dbeadd3cff62936d25ffa94571f84c25b64a9a4b5efd8f489ee6fee3eaaf8e7b2886418a3bcb9ec84b84 + languageName: node + linkType: hard + "yn@npm:3.1.1": version: 3.1.1 resolution: "yn@npm:3.1.1" @@ -29754,6 +31427,13 @@ __metadata: languageName: node linkType: hard +"yoctocolors-cjs@npm:^2.1.2": + version: 2.1.2 + resolution: "yoctocolors-cjs@npm:2.1.2" + checksum: 10c0/a0e36eb88fea2c7981eab22d1ba45e15d8d268626e6c4143305e2c1628fa17ebfaa40cd306161a8ce04c0a60ee0262058eab12567493d5eb1409780853454c6f + languageName: node + linkType: hard + "zlib@npm:^1.0.5": version: 1.0.5 resolution: "zlib@npm:1.0.5" @@ -29761,12 +31441,10 @@ __metadata: languageName: node linkType: hard -"zone.js@npm:0.14.4": - version: 0.14.4 - resolution: "zone.js@npm:0.14.4" - dependencies: - tslib: "npm:^2.3.0" - checksum: 10c0/141a30b43e70a76123e4b71fc7a7cd3b449e1550099e401d875f43b21fc4d178b219cff2c515dd0f2da739ff4baa837f369b285f1128dc2686ca2b480a90c594 +"zone.js@npm:0.14.10": + version: 0.14.10 + resolution: "zone.js@npm:0.14.10" + checksum: 10c0/61283d152cb1eff899bae61621dccd572aa9f47e0c60c04b249bf86b43e3e4ba627bf6dba371b725023a4f302f39e554d7bf2d25bbf40c869c6c52f774b17e8b languageName: node linkType: hard From f7fb152d2214f809cced3d253ba8bc3685d7b4f5 Mon Sep 17 00:00:00 2001 From: Sam Lin <456807+maxisam@users.noreply.github.com.> Date: Wed, 27 Nov 2024 09:39:49 -0600 Subject: [PATCH 26/28] refactor(isr): standardize terminology from 'route' to 'cacheKey' --- .../filesystem-cache-handler.ts | 32 +++++++++++-------- 1 file changed, 18 insertions(+), 14 deletions(-) diff --git a/libs/isr/server/src/cache-handlers/filesystem-cache-handler.ts b/libs/isr/server/src/cache-handlers/filesystem-cache-handler.ts index 70ec449bcb..1bff25da8e 100644 --- a/libs/isr/server/src/cache-handlers/filesystem-cache-handler.ts +++ b/libs/isr/server/src/cache-handlers/filesystem-cache-handler.ts @@ -89,7 +89,7 @@ export class FileSystemCacheHandler extends CacheHandler { }) .catch((err) => { reject( - `Error: šŸ’„ Cannot read cache file for route ${cacheKey}: ${cachedMeta.htmlFilePath}, ${err}`, + `Error: šŸ’„ Cannot read cache file for cacheKey ${cacheKey}: ${cachedMeta.htmlFilePath}, ${err}`, ); }); } else { @@ -104,15 +104,15 @@ export class FileSystemCacheHandler extends CacheHandler { delete(cacheKey: string): Promise { return new Promise((resolve, reject) => { - const cacheMeta = this.cache.get(cacheKey); + const cachedMeta = this.cache.get(cacheKey); - if (cacheMeta) { - fs.unlink(cacheMeta.htmlFilePath, (err) => { + if (cachedMeta) { + fs.unlink(cachedMeta.htmlFilePath, (err) => { if (err) { reject( - 'Error: šŸ’„ Cannot delete cache file for route ' + + 'Error: šŸ’„ Cannot delete cache file for cacheKey ' + cacheKey + - `: ${cacheMeta.htmlFilePath}`, + `: ${cachedMeta.htmlFilePath}`, ); } else { this.cache.delete(cacheKey); @@ -120,7 +120,7 @@ export class FileSystemCacheHandler extends CacheHandler { } }); } else { - reject(`Error: šŸ’„ CacheKey: ${cacheKey} is not cached.`); + reject(`Error: šŸ’„ cacheKey: ${cacheKey} is not cached.`); } }); } @@ -184,7 +184,7 @@ export class FileSystemCacheHandler extends CacheHandler { isBuffer: false, }); - console.log('The request was stored in cache! Route: ', cacheKey); + console.log('The request was stored in cache! cacheKey: ', cacheKey); } } @@ -222,7 +222,9 @@ export class FileSystemCacheHandler extends CacheHandler { } } } catch (err) { - console.error('ERROR! šŸ’„ ! Cannot read folder: ' + folderPath); + console.error( + `ERROR! šŸ’„ ! Cannot read folder: ${folderPath}, err: ${err instanceof Error ? err.message : ''}`, + ); } for (const { path } of pathsToCache) { @@ -316,7 +318,9 @@ function findIndexHtmlFilesRecursively( }); } catch (err) { // If an error occurs, log an error message and return an empty array - console.error('ERROR! šŸ’„ ! Cannot read folder: ' + path); + console.error( + `ERROR! šŸ’„ ! Cannot read folder: ${path}, err: ${err instanceof Error ? err.message : ''}`, + ); return []; } @@ -345,14 +349,14 @@ function getFileFullPath(fileName: string, cacheFolderPath: string): string { } /** - * This function takes a string parameter 'route' and replaces all '/' characters in it with '__' and returns the modified string. + * This function takes a string parameter 'cacheKey' and replaces all '/' characters in it with '__' and returns the modified string. * * @internal - * @param {string} cacheKey - The string representing the route to be converted into a file name. + * @param {string} cacheKey - The string representing the cacheKey to be converted into a file name. * @returns {string} The modified string representing the file name obtained by replacing '/' characters with '__'. */ export function convertCacheKeyToFileName(cacheKey: string): string { - // replace all occurrences of '/' character in the 'route' string with '__' using regular expression + // replace all occurrences of '/' character in the 'cacheKey' string with '__' using regular expression return cacheKey .replace(new RegExp('/', 'g'), '__') .replace(new RegExp('\\?', 'g'), '++'); @@ -360,7 +364,7 @@ export function convertCacheKeyToFileName(cacheKey: string): string { /** * This function takes a string parameter 'fileName' and replaces all '__' strings in it with '/' and returns the modified string. - * @param fileName - The string representing the file name to be converted into a route. + * @param fileName - The string representing the file name to be converted into a cacheKey. */ export function convertFileNameToCacheKey(fileName: string): string { // replace all occurrences of '__' string in the 'fileName' string with '/' using regular expression From bd14b62a339f4a3b81db9dfe792eed993c014eb7 Mon Sep 17 00:00:00 2001 From: Sam Lin <456807+maxisam@users.noreply.github.com.> Date: Wed, 27 Nov 2024 10:00:02 -0600 Subject: [PATCH 27/28] docs(isr): update CacheHandler API doc --- apps/docs/docs/isr/cache-handlers.md | 37 +++++++++++----------------- 1 file changed, 14 insertions(+), 23 deletions(-) diff --git a/apps/docs/docs/isr/cache-handlers.md b/apps/docs/docs/isr/cache-handlers.md index 5210cdc464..0219459f72 100644 --- a/apps/docs/docs/isr/cache-handlers.md +++ b/apps/docs/docs/isr/cache-handlers.md @@ -74,7 +74,7 @@ export class RedisCacheHandler extends CacheHandler { options.keyPrefix = options.keyPrefix || 'isr'; } - add(url: string, html: string | Buffer, options: ISROptions = { revalidate: null }): Promise { + add(cacheKey: string, html: string | Buffer, options: ISROptions = { revalidate: null }): Promise { const key = this.createKey(cacheKey); const createdAt = Date.now().toString(); await this.redis.hmset(key, { @@ -128,22 +128,6 @@ export class RedisCacheHandler extends CacheHandler { return `${this.redisCacheOptions.keyPrefix}:${cacheKey}`; } } - -const cacheMsg = (revalidateTime?: number | null): string => { - const time = new Date().toISOString().replace(/T/, ' ').replace(/\..+/, ''); - - let msg = ''; - - return msg; -}; ``` And then, to register the cache handler, you need to pass it to the `cache` field in ISRHandler: @@ -197,15 +181,22 @@ The `CacheHandler` abstract class has the following API: ```typescript export abstract class CacheHandler { - abstract add(url: string | Buffer, html: string, options: ISROptions): Promise; + // html could be a string or a buffer, it is depending on if `compressHtml` is set in `ISRHandler` config. + // if `compressHtml` is set, the html will be a buffer, otherwise it will be a string + abstract add( + cacheKey: string, + // it will be buffer when we use compressHtml + html: string | Buffer, + config?: CacheISRConfig, + ): Promise; - abstract get(url: string): Promise; + abstract get(cacheKey: string): Promise; - abstract getAll(): Promise; + abstract has(cacheKey: string): Promise; - abstract has(url: string): Promise; + abstract delete(cacheKey: string): Promise; - abstract delete(url: string): Promise; + abstract getAll(): Promise; abstract clearCache?(): Promise; } @@ -223,5 +214,5 @@ export interface CacheData { } ``` -note: The `html` field can be a string or a buffer. It depends on if you set `compressHtml` function in the `ISRHandler` options. +**note**: The `html` field can be a string or a buffer. It depends on if you set `compressHtml` function in the `ISRHandler` options. If it is set, the html will be compressed and stored as a buffer. If it is not set, the html will be stored as a string. From e08dd514e86b3a09106c73c7ed65b63644408db4 Mon Sep 17 00:00:00 2001 From: Sam Lin <456807+maxisam@users.noreply.github.com.> Date: Wed, 27 Nov 2024 10:34:50 -0600 Subject: [PATCH 28/28] docs: revert --- libs/cdk/README.md | 2 +- libs/state/README.md | 2 +- libs/template/README.md | 3 ++- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/libs/cdk/README.md b/libs/cdk/README.md index 350ea50524..a763de0184 100644 --- a/libs/cdk/README.md +++ b/libs/cdk/README.md @@ -36,7 +36,7 @@ npm install @rx-angular/cdk ## Version Compatibility | RxAngular | Angular | -| --------- | ---------- | +|-----------|------------| | `^18.0.0` | `^18.0.0` | | `^17.0.0` | `^17.0.0` | | `^16.0.0` | `^16.0.0` | diff --git a/libs/state/README.md b/libs/state/README.md index 8a42464bda..27278d823d 100644 --- a/libs/state/README.md +++ b/libs/state/README.md @@ -146,7 +146,7 @@ Optimize state selections and data transfer, ensure only the necessary data is t ## Version Compatibility | RxAngular | Angular | -| --------- | ---------- | +|-----------|------------| | `^18.0.0` | `^18.0.0` | | `^17.0.0` | `^17.0.0` | | `^16.0.0` | `^16.0.0` | diff --git a/libs/template/README.md b/libs/template/README.md index 57d3ea123a..c6565018da 100644 --- a/libs/template/README.md +++ b/libs/template/README.md @@ -67,7 +67,7 @@ export class AnyComponent {} ## Version Compatibility | RxAngular | Angular | -| --------- | ---------- | +|-----------|------------| | `^18.0.0` | `^18.0.0` | | `^17.0.0` | `^17.0.0` | | `^16.0.0` | `^16.0.0` | @@ -77,3 +77,4 @@ export class AnyComponent {} | `^1.0.0` | `>=12.0.0` | Regarding the compatibility with RxJS, we generally stick to the compatibilities of the Angular framework itself, for more information about the compatibilities of Angular itself see the [official guide](https://angular.dev/reference/versions). +