diff --git a/package.json b/package.json index 2494451b..d19eaa71 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "@internxt/sdk", "author": "Internxt ", - "version": "1.10.13", + "version": "1.11.0", "description": "An sdk for interacting with Internxt's services", "repository": { "type": "git", @@ -26,22 +26,22 @@ "format": "prettier src/**/*.ts" }, "devDependencies": { - "@internxt/eslint-config-internxt": "2.0.0", + "@internxt/eslint-config-internxt": "2.0.1", "@internxt/prettier-config": "1.0.2", "@types/jest": "30.0.0", "@types/sinon": "17.0.4", "@types/uuid": "10.0.0", - "eslint": "9.29.0", + "eslint": "9.34.0", "husky": "9.1.7", - "jest": "30.0.3", - "lint-staged": "16.1.2", - "prettier": "3.6.1", + "jest": "30.0.5", + "lint-staged": "16.1.5", + "prettier": "3.6.2", "sinon": "21.0.0", - "ts-jest": "29.4.0", - "typescript": "5.8.3" + "ts-jest": "29.4.1", + "typescript": "5.9.2" }, "dependencies": { - "axios": "1.10.0", + "axios": "1.11.0", "uuid": "11.1.0" }, "lint-staged": { diff --git a/src/auth/index.ts b/src/auth/index.ts index c1022d7e..a884db0a 100644 --- a/src/auth/index.ts +++ b/src/auth/index.ts @@ -580,10 +580,22 @@ export class Auth { } private basicHeaders() { - return basicHeaders(this.appDetails.clientName, this.appDetails.clientVersion, this.appDetails.customHeaders); + return basicHeaders({ + clientName: this.appDetails.clientName, + clientVersion: this.appDetails.clientVersion, + desktopToken: this.appDetails.desktopHeader, + customHeaders: this.appDetails.customHeaders, + }); } private headersWithToken(token: Token) { - return headersWithToken(this.appDetails.clientName, this.appDetails.clientVersion, token); + return headersWithToken({ + clientName: this.appDetails.clientName, + clientVersion: this.appDetails.clientVersion, + token: token, + workspaceToken: this.apiSecurity?.workspaceToken, + desktopToken: this.appDetails.desktopHeader, + customHeaders: this.appDetails.customHeaders, + }); } } diff --git a/src/drive/backups/index.ts b/src/drive/backups/index.ts index c9482daf..d0023067 100644 --- a/src/drive/backups/index.ts +++ b/src/drive/backups/index.ts @@ -20,15 +20,11 @@ export class Backups { } /** - * @deprecated Use `getBackupDevices` instead. + * @deprecated Use `getBackupDevices` instead. * This method uses the old drive backend, while `getBackupDevices` uses the new drive backend. */ public getAllDevices(): Promise { - return this.client - .get( - '/backup/device', - this.headers() - ); + return this.client.get('/backup/device', this.headers()); } /** @@ -37,11 +33,7 @@ export class Backups { * @returns {Promise} A promise that resolves to an array of Devices. */ public getBackupDevices(): Promise { - return this.client - .get( - '/backup/devices', - this.headers() - ); + return this.client.get('/backup/devices', this.headers()); } /** @@ -54,11 +46,7 @@ export class Backups { * @returns {Promise} A promise that resolves to an array of DriveFolderData. */ public getAllDevicesAsFolder(): Promise { - return this.client - .get( - '/backup/deviceAsFolder', - this.headers() - ); + return this.client.get('/backup/deviceAsFolder', this.headers()); } /** @@ -68,11 +56,7 @@ export class Backups { * @returns A promise that resolves to an array of DeviceBackups. */ public getAllBackups(mac: string): Promise { - return this.client - .get( - `/backup/${mac}`, - this.headers() - ); + return this.client.get(`/backup/${mac}`, this.headers()); } /** @@ -82,11 +66,7 @@ export class Backups { * @returns A promise that resolves when the backup is successfully deleted. */ public deleteBackup(backupId: number): Promise { - return this.client - .delete( - `/backup/${backupId}`, - this.headers() - ); + return this.client.delete(`/backup/${backupId}`, this.headers()); } /** @@ -94,11 +74,7 @@ export class Backups { * This method uses the old drive backend, while `deleteBackupDevice` uses the new drive backend. */ public deleteDevice(deviceId: number): Promise { - return this.client - .delete( - `/backup/device/${deviceId}`, - this.headers() - ); + return this.client.delete(`/backup/device/${deviceId}`, this.headers()); } /** @@ -108,11 +84,7 @@ export class Backups { * @returns A promise that resolves when the device is successfully deleted. */ public deleteBackupDevice(deviceId: number): Promise { - return this.client - .delete( - `/backup/devices/${deviceId}`, - this.headers() - ); + return this.client.delete(`/backup/devices/${deviceId}`, this.headers()); } /** @@ -122,11 +94,7 @@ export class Backups { * @returns A promise that resolves when the device is successfully deleted. */ public deleteBackupDeviceAsFolder(folderId: string): Promise { - return this.client - .delete( - `/backup/deviceAsFolder/${folderId}`, - this.headers() - ); + return this.client.delete(`/backup/deviceAsFolder/${folderId}`, this.headers()); } /** @@ -134,11 +102,13 @@ export class Backups { * @private */ private headers() { - return headersWithToken( - this.appDetails.clientName, - this.appDetails.clientVersion, - this.apiSecurity.token - ); + return headersWithToken({ + clientName: this.appDetails.clientName, + clientVersion: this.appDetails.clientVersion, + token: this.apiSecurity.token, + workspaceToken: this.apiSecurity.workspaceToken, + desktopToken: this.appDetails.desktopHeader, + customHeaders: this.appDetails.customHeaders, + }); } } - diff --git a/src/drive/payments/index.ts b/src/drive/payments/index.ts index 1cab5e58..a62209ca 100644 --- a/src/drive/payments/index.ts +++ b/src/drive/payments/index.ts @@ -260,18 +260,13 @@ export class Payments { * @private */ private headers() { - const additionalHeaders: Record = {}; - - if (this.appDetails.desktopHeader) { - additionalHeaders['x-internxt-desktop-header'] = this.appDetails.desktopHeader; - } - - return headersWithToken( - this.appDetails.clientName, - this.appDetails.clientVersion, - this.apiSecurity.token, - undefined, - additionalHeaders, - ); + return headersWithToken({ + clientName: this.appDetails.clientName, + clientVersion: this.appDetails.clientVersion, + token: this.apiSecurity.token, + workspaceToken: this.apiSecurity.workspaceToken, + desktopToken: this.appDetails.desktopHeader, + customHeaders: this.appDetails.customHeaders, + }); } } diff --git a/src/drive/payments/object-storage.ts b/src/drive/payments/object-storage.ts index 538e7666..dfe13288 100644 --- a/src/drive/payments/object-storage.ts +++ b/src/drive/payments/object-storage.ts @@ -108,6 +108,11 @@ export class ObjectStorage { } private headers() { - return basicHeaders(this.appDetails.clientName, this.appDetails.clientVersion); + return basicHeaders({ + clientName: this.appDetails.clientName, + clientVersion: this.appDetails.clientVersion, + desktopToken: this.appDetails.desktopHeader, + customHeaders: this.appDetails.customHeaders, + }); } } diff --git a/src/drive/referrals/index.ts b/src/drive/referrals/index.ts index 9507c974..86713088 100644 --- a/src/drive/referrals/index.ts +++ b/src/drive/referrals/index.ts @@ -32,6 +32,13 @@ export class Referrals { * @private */ private headers() { - return headersWithToken(this.appDetails.clientName, this.appDetails.clientVersion, this.apiSecurity.token); + return headersWithToken({ + clientName: this.appDetails.clientName, + clientVersion: this.appDetails.clientVersion, + token: this.apiSecurity.token, + workspaceToken: this.apiSecurity.workspaceToken, + desktopToken: this.appDetails.desktopHeader, + customHeaders: this.appDetails.customHeaders, + }); } } diff --git a/src/drive/share/index.ts b/src/drive/share/index.ts index dbe024b3..758bb901 100644 --- a/src/drive/share/index.ts +++ b/src/drive/share/index.ts @@ -621,16 +621,24 @@ export class Share { * @private */ private headers(password?: string) { - const args: [string, string, string, string | undefined] = [ - this.appDetails.clientName, - this.appDetails.clientVersion, - this.apiSecurity.token, - this.apiSecurity.workspaceToken, - ]; if (password) { - return headersWithTokenAndPassword(...args, password); + return headersWithTokenAndPassword({ + clientName: this.appDetails.clientName, + clientVersion: this.appDetails.clientVersion, + token: this.apiSecurity.token, + workspaceToken: this.apiSecurity.workspaceToken, + desktopToken: this.appDetails.desktopHeader, + password, + }); } - return headersWithToken(...args); + return headersWithToken({ + clientName: this.appDetails.clientName, + clientVersion: this.appDetails.clientVersion, + token: this.apiSecurity.token, + workspaceToken: this.apiSecurity.workspaceToken, + desktopToken: this.appDetails.desktopHeader, + customHeaders: this.appDetails.customHeaders, + }); } /** @@ -638,7 +646,12 @@ export class Share { * @private */ private basicHeaders() { - return basicHeaders(this.appDetails.clientName, this.appDetails.clientVersion); + return basicHeaders({ + clientName: this.appDetails.clientName, + clientVersion: this.appDetails.clientVersion, + desktopToken: this.appDetails.desktopHeader, + customHeaders: this.appDetails.customHeaders, + }); } /** @@ -646,7 +659,12 @@ export class Share { * @private */ private basicHeadersWithPassword(password: string) { - return basicHeadersWithPassword(this.appDetails.clientName, this.appDetails.clientVersion, password); + return basicHeadersWithPassword({ + clientName: this.appDetails.clientName, + clientVersion: this.appDetails.clientVersion, + desktopToken: this.appDetails.desktopHeader, + password, + }); } /** diff --git a/src/drive/storage/index.ts b/src/drive/storage/index.ts index 9af18a77..43f89bcd 100644 --- a/src/drive/storage/index.ts +++ b/src/drive/storage/index.ts @@ -699,13 +699,24 @@ export class Storage { * @private */ private headers(customHeaders?: CustomHeaders) { - return headersWithToken( - this.appDetails.clientName, - this.appDetails.clientVersion, - this.apiSecurity.token, - this.apiSecurity?.workspaceToken, - customHeaders, - ); + let customExtraHeaders: CustomHeaders = {}; + if (customHeaders) { + customExtraHeaders = customHeaders; + } + if (this.appDetails.customHeaders) { + customExtraHeaders = { + ...customExtraHeaders, + ...this.appDetails.customHeaders, + }; + } + return headersWithToken({ + clientName: this.appDetails.clientName, + clientVersion: this.appDetails.clientVersion, + token: this.apiSecurity.token, + workspaceToken: this.apiSecurity.workspaceToken, + desktopToken: this.appDetails.desktopHeader, + customHeaders: customExtraHeaders, + }); } /** diff --git a/src/drive/trash/index.ts b/src/drive/trash/index.ts index 8b4bd95d..baac70fd 100644 --- a/src/drive/trash/index.ts +++ b/src/drive/trash/index.ts @@ -152,11 +152,13 @@ export class Trash { * @private */ private headers() { - return headersWithToken( - this.appDetails.clientName, - this.appDetails.clientVersion, - this.apiSecurity.token, - this.apiSecurity.workspaceToken, - ); + return headersWithToken({ + clientName: this.appDetails.clientName, + clientVersion: this.appDetails.clientVersion, + token: this.apiSecurity.token, + workspaceToken: this.apiSecurity.workspaceToken, + desktopToken: this.appDetails.desktopHeader, + customHeaders: this.appDetails.customHeaders, + }); } } diff --git a/src/drive/users/index.ts b/src/drive/users/index.ts index 2a58589f..f7ca2cc9 100644 --- a/src/drive/users/index.ts +++ b/src/drive/users/index.ts @@ -322,14 +322,33 @@ export class Users { } private basicHeaders() { - return basicHeaders(this.appDetails.clientName, this.appDetails.clientVersion); + return basicHeaders({ + clientName: this.appDetails.clientName, + clientVersion: this.appDetails.clientVersion, + desktopToken: this.appDetails.desktopHeader, + customHeaders: this.appDetails.customHeaders, + }); } private headers() { - return headersWithToken(this.appDetails.clientName, this.appDetails.clientVersion, this.apiSecurity.token); + return headersWithToken({ + clientName: this.appDetails.clientName, + clientVersion: this.appDetails.clientVersion, + token: this.apiSecurity.token, + workspaceToken: this.apiSecurity.workspaceToken, + desktopToken: this.appDetails.desktopHeader, + customHeaders: this.appDetails.customHeaders, + }); } private headersWithToken(token: Token) { - return headersWithToken(this.appDetails.clientName, this.appDetails.clientVersion, token); + return headersWithToken({ + clientName: this.appDetails.clientName, + clientVersion: this.appDetails.clientVersion, + token: token, + workspaceToken: this.apiSecurity.workspaceToken, + desktopToken: this.appDetails.desktopHeader, + customHeaders: this.appDetails.customHeaders, + }); } } diff --git a/src/drive/users/inext.test.ts b/src/drive/users/inext.test.ts index 742625a9..18fa85b1 100644 --- a/src/drive/users/inext.test.ts +++ b/src/drive/users/inext.test.ts @@ -54,6 +54,10 @@ function clientAndHeaders( unauthorizedCallback: () => {}, }; const client = Users.client(apiUrl, appDetails, apiSecurity); - const headers = headersWithToken(clientName, clientVersion, token); + const headers = headersWithToken({ + clientName, + clientVersion, + token, + }); return { client, headers }; } diff --git a/src/meet/index.test.ts b/src/meet/index.test.ts index 8cf856cc..d13c6620 100644 --- a/src/meet/index.test.ts +++ b/src/meet/index.test.ts @@ -183,7 +183,7 @@ function clientAndHeadersWithToken( token, }; const client = Meet.client(apiUrl, appDetails, apiSecurity); - const headers = headersWithToken(clientName, clientVersion, token); + const headers = headersWithToken({ clientName, clientVersion, token }); return { client, headers }; } @@ -200,6 +200,6 @@ function clientAndHeadersWithoutToken( clientVersion, }; const client = Meet.client(apiUrl, appDetails); - const headers = basicHeaders(clientName, clientVersion); + const headers = basicHeaders({ clientName, clientVersion }); return { client, headers }; } diff --git a/src/meet/index.ts b/src/meet/index.ts index a9c907c6..1c9f2215 100644 --- a/src/meet/index.ts +++ b/src/meet/index.ts @@ -44,10 +44,22 @@ export class Meet { if (!this.apiSecurity?.token) { throw new Error('Token is required for Meet operations'); } - return headersWithToken(this.appDetails.clientName, this.appDetails.clientVersion, this.apiSecurity.token); + return headersWithToken({ + clientName: this.appDetails.clientName, + clientVersion: this.appDetails.clientVersion, + token: this.apiSecurity.token, + workspaceToken: this.apiSecurity.workspaceToken, + desktopToken: this.appDetails.desktopHeader, + customHeaders: this.appDetails.customHeaders, + }); } private basicHeaders() { - return basicHeaders(this.appDetails.clientName, this.appDetails.clientVersion); + return basicHeaders({ + clientName: this.appDetails.clientName, + clientVersion: this.appDetails.clientVersion, + desktopToken: this.appDetails.desktopHeader, + customHeaders: this.appDetails.customHeaders, + }); } } diff --git a/src/network/index.ts b/src/network/index.ts index 34f3bd46..dab7cedd 100644 --- a/src/network/index.ts +++ b/src/network/index.ts @@ -265,20 +265,22 @@ export class Network { * @param auth */ private static headersWithBasicAuth(appDetails: AppDetails, auth: BasicAuth) { - const additionalHeaders = this.mapAdditionalHeaders(appDetails); - return headersWithBasicAuth(appDetails.clientName, appDetails.clientVersion, auth, undefined, additionalHeaders); + return headersWithBasicAuth({ + clientName: appDetails.clientName, + clientVersion: appDetails.clientVersion, + auth, + desktopToken: appDetails.desktopHeader, + customHeaders: appDetails.customHeaders, + }); } private static headersWithAuthToken(appDetails: AppDetails, token: string) { - const additionalHeaders = this.mapAdditionalHeaders(appDetails); - return headersWithAuthToken(appDetails.clientName, appDetails.clientVersion, token, undefined, additionalHeaders); - } - - private static mapAdditionalHeaders(appDetails: AppDetails): Record { - const additionalHeaders: Record = {}; - if (appDetails.desktopHeader) { - additionalHeaders['x-internxt-desktop-header'] = appDetails.desktopHeader; - } - return additionalHeaders; + return headersWithAuthToken({ + clientName: appDetails.clientName, + clientVersion: appDetails.clientVersion, + token, + desktopToken: appDetails.desktopHeader, + customHeaders: appDetails.customHeaders, + }); } } diff --git a/src/payments/checkout.ts b/src/payments/checkout.ts index a4b049a6..d3aff8f4 100644 --- a/src/payments/checkout.ts +++ b/src/payments/checkout.ts @@ -181,19 +181,13 @@ export class Checkout { * @private */ private authHeaders() { - const additionalHeaders: Record = {}; - - if (this.appDetails.desktopHeader) { - additionalHeaders['x-internxt-desktop-header'] = this.appDetails.desktopHeader; - } - - return headersWithToken( - this.appDetails.clientName, - this.appDetails.clientVersion, - this.apiSecurity.token, - undefined, - additionalHeaders, - ); + return headersWithToken({ + clientName: this.appDetails.clientName, + clientVersion: this.appDetails.clientVersion, + token: this.apiSecurity.token, + workspaceToken: this.apiSecurity.workspaceToken, + desktopToken: this.appDetails.desktopHeader, + }); } /** @@ -201,9 +195,13 @@ export class Checkout { * @private */ private headers() { - const additionalHeaders: Record = { + const customHeaders: Record = { ...(this.appDetails.customHeaders ?? {}), }; - return basicHeaders(this.appDetails.clientName, this.appDetails.clientVersion, additionalHeaders); + return basicHeaders({ + clientName: this.appDetails.clientName, + clientVersion: this.appDetails.clientVersion, + customHeaders, + }); } } diff --git a/src/shared/headers/index.ts b/src/shared/headers/index.ts index 059e089e..c64b553d 100644 --- a/src/shared/headers/index.ts +++ b/src/shared/headers/index.ts @@ -12,48 +12,83 @@ type InternxtHeaders = { Authorization?: string; 'x-token'?: string; 'internxt-resources-token'?: string; + 'x-internxt-desktop-header'?: string; }; -export function basicHeaders( - clientName: string, - clientVersion: string, - customHeaders?: Record, -): InternxtHeaders { +export function basicHeaders({ + clientName, + clientVersion, + customHeaders, + desktopToken, +}: { + clientName: string; + clientVersion: string; + customHeaders?: Record; + desktopToken?: Token; +}): InternxtHeaders { + const extra: ExtraHeaders = {}; + if (desktopToken) { + extra['x-internxt-desktop-header'] = desktopToken; + } return { 'content-type': 'application/json; charset=utf-8', 'internxt-version': clientVersion, 'internxt-client': clientName, + ...extra, ...customHeaders, }; } -export function basicHeadersWithPassword(clientName: string, clientVersion: string, password: string): InternxtHeaders { +export function basicHeadersWithPassword({ + clientName, + clientVersion, + password, + desktopToken, +}: { + clientName: string; + clientVersion: string; + password: string; + desktopToken?: Token; +}): InternxtHeaders { + const extra: ExtraHeaders = {}; + if (desktopToken) { + extra['x-internxt-desktop-header'] = desktopToken; + } return { 'content-type': 'application/json; charset=utf-8', 'internxt-version': clientVersion, 'internxt-client': clientName, 'x-share-password': password, + ...extra, }; } type ExtraHeaders = { Authorization?: string; 'x-internxt-workspace'?: Token; + 'x-internxt-desktop-header'?: Token; }; -export function headersWithToken( - clientName: string, - clientVersion: string, - token: Token, - workspaceToken?: Token, - customHeaders?: CustomHeaders, -): InternxtHeaders { - const headers = basicHeaders(clientName, clientVersion); +export function headersWithToken({ + clientName, + clientVersion, + token, + workspaceToken, + desktopToken, + customHeaders, +}: { + clientName: string; + clientVersion: string; + token: Token; + workspaceToken?: Token; + desktopToken?: Token; + customHeaders?: CustomHeaders; +}): InternxtHeaders { + const headers = basicHeaders({ clientName, clientVersion, desktopToken }); const extra: ExtraHeaders = { Authorization: 'Bearer ' + token, }; - - if (workspaceToken !== undefined) { + if (workspaceToken) { extra['x-internxt-workspace'] = workspaceToken; } return { @@ -63,14 +98,22 @@ export function headersWithToken( }; } -export function headersWithTokenAndPassword( - clientName: string, - clientVersion: string, - token: Token, - workspaceToken: Token | undefined, - password: string, -): InternxtHeaders { - const headers = headersWithToken(clientName, clientVersion, token, workspaceToken); +export function headersWithTokenAndPassword({ + clientName, + clientVersion, + token, + workspaceToken, + desktopToken, + password, +}: { + clientName: string; + clientVersion: string; + token: Token; + workspaceToken: Token | undefined; + desktopToken: Token | undefined; + password: string; +}): InternxtHeaders { + const headers = headersWithToken({ clientName, clientVersion, token, workspaceToken, desktopToken }); const extra = { 'x-share-password': password, }; @@ -80,14 +123,22 @@ export function headersWithTokenAndPassword( }; } -export function headersWithBasicAuth( - clientName: string, - clientVersion: string, - auth: BasicAuth, - workspaceToken?: Token, - customHeaders?: CustomHeaders, -): InternxtHeaders { - const headers = basicHeaders(clientName, clientVersion); +export function headersWithBasicAuth({ + clientName, + clientVersion, + auth, + workspaceToken, + desktopToken, + customHeaders, +}: { + clientName: string; + clientVersion: string; + auth: BasicAuth; + workspaceToken?: Token; + desktopToken?: Token; + customHeaders?: CustomHeaders; +}): InternxtHeaders { + const headers = basicHeaders({ clientName, clientVersion, desktopToken }); const token = `${auth.username}:${auth.password}`; const encodedToken = Buffer.from(token).toString('base64'); const extra: ExtraHeaders = { @@ -103,14 +154,22 @@ export function headersWithBasicAuth( }; } -export function headersWithAuthToken( - clientName: string, - clientVersion: string, - token: Token, - workspaceToken?: Token, - customHeaders?: CustomHeaders, -): InternxtHeaders { - const headers = basicHeaders(clientName, clientVersion); +export function headersWithAuthToken({ + clientName, + clientVersion, + token, + workspaceToken, + desktopToken, + customHeaders, +}: { + clientName: string; + clientVersion: string; + token: Token; + workspaceToken?: Token; + desktopToken?: Token; + customHeaders?: CustomHeaders; +}): InternxtHeaders { + const headers = basicHeaders({ clientName, clientVersion, desktopToken }); const extra: ExtraHeaders = {}; if (workspaceToken !== undefined) { extra['x-internxt-workspace'] = workspaceToken; diff --git a/src/workspaces/index.test.ts b/src/workspaces/index.test.ts index 56199a4c..6304b699 100644 --- a/src/workspaces/index.test.ts +++ b/src/workspaces/index.test.ts @@ -717,6 +717,6 @@ function clientAndHeaders( workspaceToken, }; const client = Workspaces.client(apiUrl, appDetails, apiSecurity); - const headers = headersWithToken(clientName, clientVersion, token, workspaceToken); + const headers = headersWithToken({ clientName, clientVersion, token, workspaceToken }); return { client, headers }; } diff --git a/src/workspaces/index.ts b/src/workspaces/index.ts index 2153a546..e128c961 100644 --- a/src/workspaces/index.ts +++ b/src/workspaces/index.ts @@ -57,12 +57,14 @@ export class Workspaces { * @private */ private headers() { - return headersWithToken( - this.appDetails.clientName, - this.appDetails.clientVersion, - this.apiSecurity.token, - this.apiSecurity.workspaceToken, - ); + return headersWithToken({ + clientName: this.appDetails.clientName, + clientVersion: this.appDetails.clientVersion, + token: this.apiSecurity.token, + workspaceToken: this.apiSecurity.workspaceToken, + desktopToken: this.appDetails.desktopHeader, + customHeaders: this.appDetails.customHeaders, + }); } private getRequestHeaders(token?: string) { diff --git a/test/auth/index.test.ts b/test/auth/index.test.ts index df7880f1..f8bd285a 100644 --- a/test/auth/index.test.ts +++ b/test/auth/index.test.ts @@ -946,7 +946,7 @@ function clientAndHeaders( clientVersion: clientVersion, }; const client = Auth.client(apiUrl, appDetails); - const headers = basicHeaders(clientName, clientVersion); + const headers = basicHeaders({ clientName, clientVersion }); return { client, headers }; } @@ -967,6 +967,6 @@ function clientAndHeadersWithToken( token: token, }; const client = Auth.client(apiUrl, appDetails, apiSecurity); - const headers = headersWithToken(clientName, clientVersion, token); + const headers = headersWithToken({ clientName, clientVersion, token }); return { client, headers }; } diff --git a/test/drive/backups/index.test.ts b/test/drive/backups/index.test.ts index 1ec7a284..0217dadb 100644 --- a/test/drive/backups/index.test.ts +++ b/test/drive/backups/index.test.ts @@ -7,7 +7,6 @@ import { Backups } from '../../../src/drive/backups'; const httpClient = HttpClient.create(''); describe('backups service', () => { - beforeEach(() => { sinon.stub(HttpClient, 'create').returns(httpClient); }); @@ -17,36 +16,30 @@ describe('backups service', () => { }); describe('get all devices', () => { - it('should call with right params & return data', async () => { // Arrange - const {client, headers} = clientAndHeadersWithToken(); + const { client, headers } = clientAndHeadersWithToken(); const callStub = sinon.stub(httpClient, 'get').resolves({ - devices: 'some' + devices: 'some', }); // Act const body = await client.getAllDevices(); // Assert - expect(callStub.firstCall.args).toEqual([ - '/backup/device', - headers - ]); + expect(callStub.firstCall.args).toEqual(['/backup/device', headers]); expect(body).toEqual({ - devices: 'some' + devices: 'some', }); }); - }); describe('get all backups', () => { - it('should call with right params & return data', async () => { // Arrange - const {client, headers} = clientAndHeadersWithToken(); + const { client, headers } = clientAndHeadersWithToken(); const callStub = sinon.stub(httpClient, 'get').resolves({ - backups: 'some' + backups: 'some', }); const mac = 'lololo'; @@ -54,24 +47,19 @@ describe('backups service', () => { const body = await client.getAllBackups(mac); // Assert - expect(callStub.firstCall.args).toEqual([ - `/backup/${mac}`, - headers - ]); + expect(callStub.firstCall.args).toEqual([`/backup/${mac}`, headers]); expect(body).toEqual({ - backups: 'some' + backups: 'some', }); }); - }); describe('delete backup', () => { - it('should call with right params & return data', async () => { // Arrange - const {client, headers} = clientAndHeadersWithToken(); + const { client, headers } = clientAndHeadersWithToken(); const callStub = sinon.stub(httpClient, 'delete').resolves({ - done: true + done: true, }); const backupId = 1; @@ -79,24 +67,19 @@ describe('backups service', () => { const body = await client.deleteBackup(backupId); // Assert - expect(callStub.firstCall.args).toEqual([ - `/backup/${backupId}`, - headers - ]); + expect(callStub.firstCall.args).toEqual([`/backup/${backupId}`, headers]); expect(body).toEqual({ - done: true + done: true, }); }); - }); describe('delete device', () => { - it('should call with right params & return data', async () => { // Arrange - const {client, headers} = clientAndHeadersWithToken(); + const { client, headers } = clientAndHeadersWithToken(); const callStub = sinon.stub(httpClient, 'delete').resolves({ - done: true + done: true, }); const deviceId = 1; @@ -104,27 +87,22 @@ describe('backups service', () => { const body = await client.deleteDevice(deviceId); // Assert - expect(callStub.firstCall.args).toEqual([ - `/backup/device/${deviceId}`, - headers - ]); + expect(callStub.firstCall.args).toEqual([`/backup/device/${deviceId}`, headers]); expect(body).toEqual({ - done: true + done: true, }); }); - }); - }); function clientAndHeadersWithToken( apiUrl = '', clientName = 'c-name', clientVersion = '0.1', - token = 'token' + token = 'token', ): { - client: Backups, - headers: object + client: Backups; + headers: object; } { const appDetails: AppDetails = { clientName: clientName, @@ -134,6 +112,6 @@ function clientAndHeadersWithToken( token: token, }; const client = Backups.client(apiUrl, appDetails, apiSecurity); - const headers = headersWithToken(clientName, clientVersion, token); + const headers = headersWithToken({ clientName, clientVersion, token }); return { client, headers }; } diff --git a/test/drive/payments/index.test.ts b/test/drive/payments/index.test.ts index 08f1f64f..7243a470 100644 --- a/test/drive/payments/index.test.ts +++ b/test/drive/payments/index.test.ts @@ -169,18 +169,19 @@ function clientAndHeadersWithToken({ clientName = 'c-name', clientVersion = '0.1', token = 'token', + workspaceToken, desktopHeader, }: { apiUrl?: string; clientName?: string; clientVersion?: string; token?: string; + workspaceToken?: string; desktopHeader?: string; }): { client: Payments; headers: object; } { - const additionalHeaders: Record = {}; const appDetails: AppDetails = { clientName: clientName, clientVersion: clientVersion, @@ -188,13 +189,17 @@ function clientAndHeadersWithToken({ }; const apiSecurity: ApiSecurity = { token: token, + workspaceToken: workspaceToken, }; - if (desktopHeader) { - additionalHeaders['x-internxt-desktop-header'] = desktopHeader; - } - const client = Payments.client(apiUrl, appDetails, apiSecurity); - const headers = headersWithToken(clientName, clientVersion, token, undefined, additionalHeaders); + const headers = headersWithToken({ + clientName: appDetails.clientName, + clientVersion: appDetails.clientVersion, + token: apiSecurity.token, + workspaceToken: apiSecurity.workspaceToken, + desktopToken: appDetails.desktopHeader, + customHeaders: appDetails.customHeaders, + }); return { client, headers }; } diff --git a/test/drive/payments/object-storage.test.ts b/test/drive/payments/object-storage.test.ts index 6bfd5c34..a54a02cf 100644 --- a/test/drive/payments/object-storage.test.ts +++ b/test/drive/payments/object-storage.test.ts @@ -172,6 +172,6 @@ function basicHeadersAndClient( }; const client = ObjectStorage.client(apiUrl, appDetails); - const headers = basicHeaders(clientName, clientVersion); + const headers = basicHeaders({ clientName, clientVersion }); return { client, headers }; } diff --git a/test/drive/referrals/index.test.ts b/test/drive/referrals/index.test.ts index d793b36c..8e06647e 100644 --- a/test/drive/referrals/index.test.ts +++ b/test/drive/referrals/index.test.ts @@ -52,6 +52,6 @@ function clientAndHeaders( token: token, }; const client = Referrals.client(apiUrl, appDetails, apiSecurity); - const headers = headersWithToken(clientName, clientVersion, token); + const headers = headersWithToken({ clientName, clientVersion, token }); return { client, headers }; } diff --git a/test/drive/share/index.test.ts b/test/drive/share/index.test.ts index 80499a51..ebc5d4f6 100644 --- a/test/drive/share/index.test.ts +++ b/test/drive/share/index.test.ts @@ -438,7 +438,7 @@ describe('# share service tests', () => { token: token, }; const client = Share.client(apiUrl, appDetails, apiSecurity); - const headers = headersWithToken(clientName, clientVersion, token); + const headers = headersWithToken({ clientName, clientVersion, token }); return { client, headers }; } @@ -458,7 +458,7 @@ describe('# share service tests', () => { token: '', }; const client = Share.client(apiUrl, appDetails, apiSecurity); - const headers = basicHeaders(clientName, clientVersion); + const headers = basicHeaders({ clientName, clientVersion }); return { client, headers }; } }); diff --git a/test/drive/storage/index.test.ts b/test/drive/storage/index.test.ts index 58767b17..c40eaa47 100644 --- a/test/drive/storage/index.test.ts +++ b/test/drive/storage/index.test.ts @@ -959,6 +959,6 @@ function clientAndHeaders({ token: token, }; const client = Storage.client(apiUrl, appDetails, apiSecurity); - const headers = headersWithToken(clientName, clientVersion, token, workspaceToken, customHeaders); + const headers = headersWithToken({ clientName, clientVersion, token, workspaceToken, customHeaders }); return { client, headers }; } diff --git a/test/drive/trash/index.test.ts b/test/drive/trash/index.test.ts index 5854af2f..8e7a409c 100644 --- a/test/drive/trash/index.test.ts +++ b/test/drive/trash/index.test.ts @@ -149,6 +149,6 @@ function clientAndHeaders( token: token, }; const client = Trash.client(apiUrl, appDetails, apiSecurity); - const headers = headersWithToken(clientName, clientVersion, token); + const headers = headersWithToken({ clientName, clientVersion, token }); return { client, headers }; } diff --git a/test/drive/users/index.test.ts b/test/drive/users/index.test.ts index 0ee372f6..e3405e7e 100644 --- a/test/drive/users/index.test.ts +++ b/test/drive/users/index.test.ts @@ -201,6 +201,6 @@ function clientAndHeaders( token: token, }; const client = Users.client(apiUrl, appDetails, apiSecurity); - const headers = headersWithToken(clientName, clientVersion, token); + const headers = headersWithToken({ clientName, clientVersion, token }); return { client, headers }; } diff --git a/test/network/network.test.ts b/test/network/network.test.ts index ea6f103a..9266519b 100644 --- a/test/network/network.test.ts +++ b/test/network/network.test.ts @@ -74,7 +74,10 @@ describe('network ', () => { try { await client.startUpload(idBucket, { - uploads: [{ index: validIndex, size: validSize }, { index: validIndex, size: validSize }], + uploads: [ + { index: validIndex, size: validSize }, + { index: validIndex, size: validSize }, + ], }); expect(true).toBeFalsy(); } catch (err) { @@ -87,11 +90,11 @@ describe('network ', () => { const idBucket = 'id-bucket'; const uploads = [ { index: validIndex, size: validSize }, - { index: validIndex + 1, size: validSize } + { index: validIndex + 1, size: validSize }, ]; const expected = { - uploads: uploads.map(u => ({ + uploads: uploads.map((u) => ({ index: u.index, uuid: validUUID, url, @@ -238,7 +241,7 @@ describe('network ', () => { expect(staticGetDownloadLinks).toHaveBeenCalled(); expect(callStub.firstCall.args).toEqual([ `/buckets/${idBucket}/files/${file}/info`, - { ...headers, 'x-api-version': '2' } + { ...headers, 'x-api-version': '2' }, ]); }); @@ -280,15 +283,14 @@ function clientAndHeadersWithBasicAuth( desktopHeader, }; const client = Network.client(apiUrl, appDetails, auth); - const headers = headersWithBasicAuth( + const headers = headersWithBasicAuth({ clientName, clientVersion, - { + auth: { username: auth.bridgeUser, password: auth.userId, }, - undefined, - { 'x-internxt-desktop-header': desktopHeader}, - ); + desktopToken: desktopHeader, + }); return { client, headers }; } diff --git a/test/payments/checkout.test.ts b/test/payments/checkout.test.ts index 3a9cf953..2ff0fb78 100644 --- a/test/payments/checkout.test.ts +++ b/test/payments/checkout.test.ts @@ -80,7 +80,6 @@ function clientAndHeadersWithToken({ client: Checkout; headers: object; } { - const additionalHeaders: Record = {}; const appDetails: AppDetails = { clientName: clientName, clientVersion: clientVersion, @@ -90,12 +89,8 @@ function clientAndHeadersWithToken({ token: token, }; - if (desktopHeader) { - additionalHeaders['x-internxt-desktop-header'] = desktopHeader; - } - const client = Checkout.client(apiUrl, appDetails, apiSecurity); - const headers = basicHeaders(clientName, clientVersion); + const headers = basicHeaders({ clientName, clientVersion, desktopToken: desktopHeader }); return { client, headers }; } @@ -115,7 +110,6 @@ function clientAndHeadersWithAuthToken({ client: Checkout; headers: object; } { - const additionalHeaders: Record = {}; const appDetails: AppDetails = { clientName: clientName, clientVersion: clientVersion, @@ -125,11 +119,7 @@ function clientAndHeadersWithAuthToken({ token: token, }; - if (desktopHeader) { - additionalHeaders['x-internxt-desktop-header'] = desktopHeader; - } - const client = Checkout.client(apiUrl, appDetails, apiSecurity); - const headers = headersWithToken(clientName, clientVersion, token, undefined, additionalHeaders); + const headers = headersWithToken({ clientName, clientVersion, token, desktopToken: desktopHeader }); return { client, headers }; } diff --git a/yarn.lock b/yarn.lock index 585f5abd..6196b4f3 100644 --- a/yarn.lock +++ b/yarn.lock @@ -353,31 +353,24 @@ resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.12.1.tgz#cfc6cffe39df390a3841cde2abccf92eaa7ae0e0" integrity sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ== -"@eslint/config-array@^0.20.1": - version "0.20.1" - resolved "https://registry.yarnpkg.com/@eslint/config-array/-/config-array-0.20.1.tgz#454f89be82b0e5b1ae872c154c7e2f3dd42c3979" - integrity sha512-OL0RJzC/CBzli0DrrR31qzj6d6i6Mm3HByuhflhl4LOBiWxN+3i6/t/ZQQNii4tjksXi8r2CRW1wMpWA2ULUEw== +"@eslint/config-array@^0.21.0": + version "0.21.0" + resolved "https://registry.yarnpkg.com/@eslint/config-array/-/config-array-0.21.0.tgz#abdbcbd16b124c638081766392a4d6b509f72636" + integrity sha512-ENIdc4iLu0d93HeYirvKmrzshzofPw6VkZRKQGe9Nv46ZnWUzcF1xV01dcvEg/1wXUR61OmmlSfyeyO7EvjLxQ== dependencies: "@eslint/object-schema" "^2.1.6" debug "^4.3.1" minimatch "^3.1.2" -"@eslint/config-helpers@^0.2.1": - version "0.2.3" - resolved "https://registry.yarnpkg.com/@eslint/config-helpers/-/config-helpers-0.2.3.tgz#39d6da64ed05d7662659aa7035b54cd55a9f3672" - integrity sha512-u180qk2Um1le4yf0ruXH3PYFeEZeYC3p/4wCTKrr2U1CmGdzGi3KtY0nuPDH48UJxlKCC5RDzbcbh4X0XlqgHg== - -"@eslint/core@^0.14.0": - version "0.14.0" - resolved "https://registry.yarnpkg.com/@eslint/core/-/core-0.14.0.tgz#326289380968eaf7e96f364e1e4cf8f3adf2d003" - integrity sha512-qIbV0/JZr7iSDjqAc60IqbLdsj9GDt16xQtWD+B78d/HAlvysGdZZ6rpJHGAc2T0FQx1X6thsSPdnoiGKdNtdg== - dependencies: - "@types/json-schema" "^7.0.15" +"@eslint/config-helpers@^0.3.1": + version "0.3.1" + resolved "https://registry.yarnpkg.com/@eslint/config-helpers/-/config-helpers-0.3.1.tgz#d316e47905bd0a1a931fa50e669b9af4104d1617" + integrity sha512-xR93k9WhrDYpXHORXpxVL5oHj3Era7wo6k/Wd8/IsQNnZUTzkGS29lyn3nAT05v6ltUuTFVCCYDEGfy2Or/sPA== -"@eslint/core@^0.15.0": - version "0.15.0" - resolved "https://registry.yarnpkg.com/@eslint/core/-/core-0.15.0.tgz#8fc04709a7b9a179d9f7d93068fc000cb8c5603d" - integrity sha512-b7ePw78tEWWkpgZCDYkbqDOP8dmM6qe+AOC6iuJqlq1R/0ahMAeH3qynpnqKFGkMltrp44ohV4ubGyvLX28tzw== +"@eslint/core@^0.15.2": + version "0.15.2" + resolved "https://registry.yarnpkg.com/@eslint/core/-/core-0.15.2.tgz#59386327d7862cc3603ebc7c78159d2dcc4a868f" + integrity sha512-78Md3/Rrxh83gCxoUc0EiciuOHsIITzLy53m3d9UyiW8y9Dj2D29FeETqyKA+BRK76tnTp6RXWb3pCay8Oyomg== dependencies: "@types/json-schema" "^7.0.15" @@ -396,22 +389,22 @@ minimatch "^3.1.2" strip-json-comments "^3.1.1" -"@eslint/js@9.29.0": - version "9.29.0" - resolved "https://registry.yarnpkg.com/@eslint/js/-/js-9.29.0.tgz#dc6fd117c19825f8430867a662531da36320fe56" - integrity sha512-3PIF4cBw/y+1u2EazflInpV+lYsSG0aByVIQzAgb1m1MhHFSbqTyNqtBKHgWf/9Ykud+DhILS9EGkmekVhbKoQ== +"@eslint/js@9.34.0": + version "9.34.0" + resolved "https://registry.yarnpkg.com/@eslint/js/-/js-9.34.0.tgz#fc423168b9d10e08dea9088d083788ec6442996b" + integrity sha512-EoyvqQnBNsV1CWaEJ559rxXL4c8V92gxirbawSmVUOWXlsRxxQXl6LmCpdUblgxgSkDIqKnhzba2SjRTI/A5Rw== "@eslint/object-schema@^2.1.6": version "2.1.6" resolved "https://registry.yarnpkg.com/@eslint/object-schema/-/object-schema-2.1.6.tgz#58369ab5b5b3ca117880c0f6c0b0f32f6950f24f" integrity sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA== -"@eslint/plugin-kit@^0.3.1": - version "0.3.2" - resolved "https://registry.yarnpkg.com/@eslint/plugin-kit/-/plugin-kit-0.3.2.tgz#0cad96b134d23a653348e3342f485636b5ef4732" - integrity sha512-4SaFZCNfJqvk/kenHpI8xvN42DMaoycy4PzKc5otHxRswww1kAt82OlBuwRVLofCACCTZEcla2Ydxv8scMXaTg== +"@eslint/plugin-kit@^0.3.5": + version "0.3.5" + resolved "https://registry.yarnpkg.com/@eslint/plugin-kit/-/plugin-kit-0.3.5.tgz#fd8764f0ee79c8ddab4da65460c641cefee017c5" + integrity sha512-Z5kJ+wU3oA7MMIqVR9tyZRtjYPr4OC004Q4Rw7pgOKUOKkJfZ3O24nz3WYfGRpMDNmcOi3TwQOmgm7B7Tpii0w== dependencies: - "@eslint/core" "^0.15.0" + "@eslint/core" "^0.15.2" levn "^0.4.1" "@humanfs/core@^0.19.1": @@ -442,13 +435,13 @@ resolved "https://registry.yarnpkg.com/@humanwhocodes/retry/-/retry-0.4.3.tgz#c2b9d2e374ee62c586d3adbea87199b1d7a7a6ba" integrity sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ== -"@internxt/eslint-config-internxt@2.0.0": - version "2.0.0" - resolved "https://npm.pkg.github.com/download/@internxt/eslint-config-internxt/2.0.0/f33a336a149b928d35e5361813252c3f67268318#f33a336a149b928d35e5361813252c3f67268318" - integrity sha512-KS506IkeH0LTgaH//sAnrUvoUTZF303S7xT5LrL5Eo2eQE76pk+TMWoU0V9Wc9+uvlwr056M9uFKJtXP2CHlXQ== +"@internxt/eslint-config-internxt@2.0.1": + version "2.0.1" + resolved "https://npm.pkg.github.com/download/@internxt/eslint-config-internxt/2.0.1/da01ca87ded6781de963cda13c292d9f273bd392#da01ca87ded6781de963cda13c292d9f273bd392" + integrity sha512-TeRsWhp9UVHMbhsDuz2gXieSva677ugM8NUjeFyskd8AzP/H43FZNzrfhCO4H1uP7SUsh2IjkJN7HDaL/z9jJw== dependencies: - eslint-config-prettier "^9.1.0" - typescript-eslint "^8.15.0" + eslint-config-prettier "^10.1.8" + typescript-eslint "^8.40.0" "@internxt/prettier-config@1.0.2": version "1.0.2" @@ -483,50 +476,50 @@ resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.3.tgz#e45e384e4b8ec16bce2fd903af78450f6bf7ec98" integrity sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA== -"@jest/console@30.0.2": - version "30.0.2" - resolved "https://registry.yarnpkg.com/@jest/console/-/console-30.0.2.tgz#e2bf6c7703d45f9824d77c7332388c3e1685afd7" - integrity sha512-krGElPU0FipAqpVZ/BRZOy0MZh/ARdJ0Nj+PiH1ykFY1+VpBlYNLjdjVA5CFKxnKR6PFqFutO4Z7cdK9BlGiDA== +"@jest/console@30.0.5": + version "30.0.5" + resolved "https://registry.yarnpkg.com/@jest/console/-/console-30.0.5.tgz#d7d027c2db5c64c20a973b7f3e57b49956d6c335" + integrity sha512-xY6b0XiL0Nav3ReresUarwl2oIz1gTnxGbGpho9/rbUWsLH0f1OD/VT84xs8c7VmH7MChnLb0pag6PhZhAdDiA== dependencies: - "@jest/types" "30.0.1" + "@jest/types" "30.0.5" "@types/node" "*" chalk "^4.1.2" - jest-message-util "30.0.2" - jest-util "30.0.2" + jest-message-util "30.0.5" + jest-util "30.0.5" slash "^3.0.0" -"@jest/core@30.0.3": - version "30.0.3" - resolved "https://registry.yarnpkg.com/@jest/core/-/core-30.0.3.tgz#87967dd3ea6bd6bc98e99aa4b47bfbb0b7f2a77e" - integrity sha512-Mgs1N+NSHD3Fusl7bOq1jyxv1JDAUwjy+0DhVR93Q6xcBP9/bAQ+oZhXb5TTnP5sQzAHgb7ROCKQ2SnovtxYtg== +"@jest/core@30.0.5": + version "30.0.5" + resolved "https://registry.yarnpkg.com/@jest/core/-/core-30.0.5.tgz#b5778922d2928f676636e3ec199829554e61e452" + integrity sha512-fKD0OulvRsXF1hmaFgHhVJzczWzA1RXMMo9LTPuFXo9q/alDbME3JIyWYqovWsUBWSoBcsHaGPSLF9rz4l9Qeg== dependencies: - "@jest/console" "30.0.2" + "@jest/console" "30.0.5" "@jest/pattern" "30.0.1" - "@jest/reporters" "30.0.2" - "@jest/test-result" "30.0.2" - "@jest/transform" "30.0.2" - "@jest/types" "30.0.1" + "@jest/reporters" "30.0.5" + "@jest/test-result" "30.0.5" + "@jest/transform" "30.0.5" + "@jest/types" "30.0.5" "@types/node" "*" ansi-escapes "^4.3.2" chalk "^4.1.2" ci-info "^4.2.0" exit-x "^0.2.2" graceful-fs "^4.2.11" - jest-changed-files "30.0.2" - jest-config "30.0.3" - jest-haste-map "30.0.2" - jest-message-util "30.0.2" + jest-changed-files "30.0.5" + jest-config "30.0.5" + jest-haste-map "30.0.5" + jest-message-util "30.0.5" jest-regex-util "30.0.1" - jest-resolve "30.0.2" - jest-resolve-dependencies "30.0.3" - jest-runner "30.0.3" - jest-runtime "30.0.3" - jest-snapshot "30.0.3" - jest-util "30.0.2" - jest-validate "30.0.2" - jest-watcher "30.0.2" + jest-resolve "30.0.5" + jest-resolve-dependencies "30.0.5" + jest-runner "30.0.5" + jest-runtime "30.0.5" + jest-snapshot "30.0.5" + jest-util "30.0.5" + jest-validate "30.0.5" + jest-watcher "30.0.5" micromatch "^4.0.8" - pretty-format "30.0.2" + pretty-format "30.0.5" slash "^3.0.0" "@jest/diff-sequences@30.0.1": @@ -534,15 +527,15 @@ resolved "https://registry.yarnpkg.com/@jest/diff-sequences/-/diff-sequences-30.0.1.tgz#0ededeae4d071f5c8ffe3678d15f3a1be09156be" integrity sha512-n5H8QLDJ47QqbCNn5SuFjCRDrOLEZ0h8vAHCK5RL9Ls7Xa8AQLa/YxAc9UjFqoEDM48muwtBGjtMY5cr0PLDCw== -"@jest/environment@30.0.2": - version "30.0.2" - resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-30.0.2.tgz#1b0d055070e97f697e9edb25059e9435221cbe65" - integrity sha512-hRLhZRJNxBiOhxIKSq2UkrlhMt3/zVFQOAi5lvS8T9I03+kxsbflwHJEF+eXEYXCrRGRhHwECT7CDk6DyngsRA== +"@jest/environment@30.0.5": + version "30.0.5" + resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-30.0.5.tgz#eaaae0403c7d3f8414053c2224acc3011e1c3a1b" + integrity sha512-aRX7WoaWx1oaOkDQvCWImVQ8XNtdv5sEWgk4gxR6NXb7WBUnL5sRak4WRzIQRZ1VTWPvV4VI4mgGjNL9TeKMYA== dependencies: - "@jest/fake-timers" "30.0.2" - "@jest/types" "30.0.1" + "@jest/fake-timers" "30.0.5" + "@jest/types" "30.0.5" "@types/node" "*" - jest-mock "30.0.2" + jest-mock "30.0.5" "@jest/expect-utils@30.0.3": version "30.0.3" @@ -551,40 +544,47 @@ dependencies: "@jest/get-type" "30.0.1" -"@jest/expect@30.0.3": - version "30.0.3" - resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-30.0.3.tgz#9653e868ca27dd2194f6c20c81b8a690f9669465" - integrity sha512-73BVLqfCeWjYWPEQoYjiRZ4xuQRhQZU0WdgvbyXGRHItKQqg5e6mt2y1kVhzLSuZpmUnccZHbGynoaL7IcLU3A== +"@jest/expect-utils@30.0.5": + version "30.0.5" + resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-30.0.5.tgz#9d42e4b8bc80367db30abc6c42b2cb14073f66fc" + integrity sha512-F3lmTT7CXWYywoVUGTCmom0vXq3HTTkaZyTAzIy+bXSBizB7o5qzlC9VCtq0arOa8GqmNsbg/cE9C6HLn7Szew== dependencies: - expect "30.0.3" - jest-snapshot "30.0.3" + "@jest/get-type" "30.0.1" -"@jest/fake-timers@30.0.2": - version "30.0.2" - resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-30.0.2.tgz#ec758b28ae6f63a49eda9e8d6af274d152d37c09" - integrity sha512-jfx0Xg7l0gmphTY9UKm5RtH12BlLYj/2Plj6wXjVW5Era4FZKfXeIvwC67WX+4q8UCFxYS20IgnMcFBcEU0DtA== +"@jest/expect@30.0.5": + version "30.0.5" + resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-30.0.5.tgz#2bbd101df4869f5d171c3cfee881f810f1525005" + integrity sha512-6udac8KKrtTtC+AXZ2iUN/R7dp7Ydry+Fo6FPFnDG54wjVMnb6vW/XNlf7Xj8UDjAE3aAVAsR4KFyKk3TCXmTA== dependencies: - "@jest/types" "30.0.1" + expect "30.0.5" + jest-snapshot "30.0.5" + +"@jest/fake-timers@30.0.5": + version "30.0.5" + resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-30.0.5.tgz#c028a9465a44b7744cb2368196bed89ce13c7054" + integrity sha512-ZO5DHfNV+kgEAeP3gK3XlpJLL4U3Sz6ebl/n68Uwt64qFFs5bv4bfEEjyRGK5uM0C90ewooNgFuKMdkbEoMEXw== + dependencies: + "@jest/types" "30.0.5" "@sinonjs/fake-timers" "^13.0.0" "@types/node" "*" - jest-message-util "30.0.2" - jest-mock "30.0.2" - jest-util "30.0.2" + jest-message-util "30.0.5" + jest-mock "30.0.5" + jest-util "30.0.5" "@jest/get-type@30.0.1": version "30.0.1" resolved "https://registry.yarnpkg.com/@jest/get-type/-/get-type-30.0.1.tgz#0d32f1bbfba511948ad247ab01b9007724fc9f52" integrity sha512-AyYdemXCptSRFirI5EPazNxyPwAL0jXt3zceFjaj8NFiKP9pOi0bfXonf6qkf82z2t3QWPeLCWWw4stPBzctLw== -"@jest/globals@30.0.3": - version "30.0.3" - resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-30.0.3.tgz#9c9ef55e6f5e6b7e946244bdbf2af85044b7bb04" - integrity sha512-fIduqNyYpMeeSr5iEAiMn15KxCzvrmxl7X7VwLDRGj7t5CoHtbF+7K3EvKk32mOUIJ4kIvFRlaixClMH2h/Vaw== +"@jest/globals@30.0.5": + version "30.0.5" + resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-30.0.5.tgz#ca70e0ac08ab40417cf8cd92bcb76116c2ccca63" + integrity sha512-7oEJT19WW4oe6HR7oLRvHxwlJk2gev0U9px3ufs8sX9PoD1Eza68KF0/tlN7X0dq/WVsBScXQGgCldA1V9Y/jA== dependencies: - "@jest/environment" "30.0.2" - "@jest/expect" "30.0.3" - "@jest/types" "30.0.1" - jest-mock "30.0.2" + "@jest/environment" "30.0.5" + "@jest/expect" "30.0.5" + "@jest/types" "30.0.5" + jest-mock "30.0.5" "@jest/pattern@30.0.1": version "30.0.1" @@ -594,16 +594,16 @@ "@types/node" "*" jest-regex-util "30.0.1" -"@jest/reporters@30.0.2": - version "30.0.2" - resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-30.0.2.tgz#e804435ab77cd05b7e8732b91006cd00bd822399" - integrity sha512-l4QzS/oKf57F8WtPZK+vvF4Io6ukplc6XgNFu4Hd/QxaLEO9f+8dSFzUua62Oe0HKlCUjKHpltKErAgDiMJKsA== +"@jest/reporters@30.0.5": + version "30.0.5" + resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-30.0.5.tgz#b83585e6448d390a8d92a641c567f1655976d5c6" + integrity sha512-mafft7VBX4jzED1FwGC1o/9QUM2xebzavImZMeqnsklgcyxBto8mV4HzNSzUrryJ+8R9MFOM3HgYuDradWR+4g== dependencies: "@bcoe/v8-coverage" "^0.2.3" - "@jest/console" "30.0.2" - "@jest/test-result" "30.0.2" - "@jest/transform" "30.0.2" - "@jest/types" "30.0.1" + "@jest/console" "30.0.5" + "@jest/test-result" "30.0.5" + "@jest/transform" "30.0.5" + "@jest/types" "30.0.5" "@jridgewell/trace-mapping" "^0.3.25" "@types/node" "*" chalk "^4.1.2" @@ -616,9 +616,9 @@ istanbul-lib-report "^3.0.0" istanbul-lib-source-maps "^5.0.0" istanbul-reports "^3.1.3" - jest-message-util "30.0.2" - jest-util "30.0.2" - jest-worker "30.0.2" + jest-message-util "30.0.5" + jest-util "30.0.5" + jest-worker "30.0.5" slash "^3.0.0" string-length "^4.0.2" v8-to-istanbul "^9.0.1" @@ -630,12 +630,19 @@ dependencies: "@sinclair/typebox" "^0.34.0" -"@jest/snapshot-utils@30.0.1": - version "30.0.1" - resolved "https://registry.yarnpkg.com/@jest/snapshot-utils/-/snapshot-utils-30.0.1.tgz#536108aa6b74858d758ae3b5229518c3d818bd68" - integrity sha512-6Dpv7vdtoRiISEFwYF8/c7LIvqXD7xDXtLPNzC2xqAfBznKip0MQM+rkseKwUPUpv2PJ7KW/YsnwWXrIL2xF+A== +"@jest/schemas@30.0.5": + version "30.0.5" + resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-30.0.5.tgz#7bdf69fc5a368a5abdb49fd91036c55225846473" + integrity sha512-DmdYgtezMkh3cpU8/1uyXakv3tJRcmcXxBOcO0tbaozPwpmh4YMsnWrQm9ZmZMfa5ocbxzbFk6O4bDPEc/iAnA== dependencies: - "@jest/types" "30.0.1" + "@sinclair/typebox" "^0.34.0" + +"@jest/snapshot-utils@30.0.5": + version "30.0.5" + resolved "https://registry.yarnpkg.com/@jest/snapshot-utils/-/snapshot-utils-30.0.5.tgz#e23a0e786f174e8cff7f150c1cfbdc9cb7cc81a4" + integrity sha512-XcCQ5qWHLvi29UUrowgDFvV4t7ETxX91CbDczMnoqXPOIcZOxyNdSjm6kV5XMc8+HkxfRegU/MUmnTbJRzGrUQ== + dependencies: + "@jest/types" "30.0.5" chalk "^4.1.2" graceful-fs "^4.2.11" natural-compare "^1.4.0" @@ -649,42 +656,42 @@ callsites "^3.1.0" graceful-fs "^4.2.11" -"@jest/test-result@30.0.2": - version "30.0.2" - resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-30.0.2.tgz#786849e33da6060381c508986fa7309ff855a367" - integrity sha512-KKMuBKkkZYP/GfHMhI+cH2/P3+taMZS3qnqqiPC1UXZTJskkCS+YU/ILCtw5anw1+YsTulDHFpDo70mmCedW8w== +"@jest/test-result@30.0.5": + version "30.0.5" + resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-30.0.5.tgz#064c5210c24d5ea192fb02ceddad3be1cfa557c8" + integrity sha512-wPyztnK0gbDMQAJZ43tdMro+qblDHH1Ru/ylzUo21TBKqt88ZqnKKK2m30LKmLLoKtR2lxdpCC/P3g1vfKcawQ== dependencies: - "@jest/console" "30.0.2" - "@jest/types" "30.0.1" + "@jest/console" "30.0.5" + "@jest/types" "30.0.5" "@types/istanbul-lib-coverage" "^2.0.6" collect-v8-coverage "^1.0.2" -"@jest/test-sequencer@30.0.2": - version "30.0.2" - resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-30.0.2.tgz#2693692d285b1c929ed353f7f0b7cbea51c57515" - integrity sha512-fbyU5HPka0rkalZ3MXVvq0hwZY8dx3Y6SCqR64zRmh+xXlDeFl0IdL4l9e7vp4gxEXTYHbwLFA1D+WW5CucaSw== +"@jest/test-sequencer@30.0.5": + version "30.0.5" + resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-30.0.5.tgz#c6dba8fc3c386dd793c087626e8508ff1ead19f4" + integrity sha512-Aea/G1egWoIIozmDD7PBXUOxkekXl7ueGzrsGGi1SbeKgQqCYCIf+wfbflEbf2LiPxL8j2JZGLyrzZagjvW4YQ== dependencies: - "@jest/test-result" "30.0.2" + "@jest/test-result" "30.0.5" graceful-fs "^4.2.11" - jest-haste-map "30.0.2" + jest-haste-map "30.0.5" slash "^3.0.0" -"@jest/transform@30.0.2": - version "30.0.2" - resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-30.0.2.tgz#62ba84fcc2389ab751e7ec923958c9b1163d90c3" - integrity sha512-kJIuhLMTxRF7sc0gPzPtCDib/V9KwW3I2U25b+lYCYMVqHHSrcZopS8J8H+znx9yixuFv+Iozl8raLt/4MoxrA== +"@jest/transform@30.0.5": + version "30.0.5" + resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-30.0.5.tgz#f8ca2e9f7466b77b406807d3bef1f6790dd384e4" + integrity sha512-Vk8amLQCmuZyy6GbBht1Jfo9RSdBtg7Lks+B0PecnjI8J+PCLQPGh7uI8Q/2wwpW2gLdiAfiHNsmekKlywULqg== dependencies: "@babel/core" "^7.27.4" - "@jest/types" "30.0.1" + "@jest/types" "30.0.5" "@jridgewell/trace-mapping" "^0.3.25" babel-plugin-istanbul "^7.0.0" chalk "^4.1.2" convert-source-map "^2.0.0" fast-json-stable-stringify "^2.1.0" graceful-fs "^4.2.11" - jest-haste-map "30.0.2" + jest-haste-map "30.0.5" jest-regex-util "30.0.1" - jest-util "30.0.2" + jest-util "30.0.5" micromatch "^4.0.8" pirates "^4.0.7" slash "^3.0.0" @@ -703,6 +710,19 @@ "@types/yargs" "^17.0.33" chalk "^4.1.2" +"@jest/types@30.0.5": + version "30.0.5" + resolved "https://registry.yarnpkg.com/@jest/types/-/types-30.0.5.tgz#29a33a4c036e3904f1cfd94f6fe77f89d2e1cc05" + integrity sha512-aREYa3aku9SSnea4aX6bhKn4bgv3AXkgijoQgbYV3yvbiGt6z+MQ85+6mIhx9DsKW2BuB/cLR/A+tcMThx+KLQ== + dependencies: + "@jest/pattern" "30.0.1" + "@jest/schemas" "30.0.5" + "@types/istanbul-lib-coverage" "^2.0.6" + "@types/istanbul-reports" "^3.0.4" + "@types/node" "*" + "@types/yargs" "^17.0.33" + chalk "^4.1.2" + "@jridgewell/gen-mapping@^0.3.5": version "0.3.5" resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.5.tgz#dcce6aff74bdf6dad1a95802b69b04a2fcb1fb36" @@ -921,78 +941,79 @@ dependencies: "@types/yargs-parser" "*" -"@typescript-eslint/eslint-plugin@8.35.0": - version "8.35.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.35.0.tgz#515170100ff867445fe0a17ce05c14fc5fd9ca63" - integrity sha512-ijItUYaiWuce0N1SoSMrEd0b6b6lYkYt99pqCPfybd+HKVXtEvYhICfLdwp42MhiI5mp0oq7PKEL+g1cNiz/Eg== +"@typescript-eslint/eslint-plugin@8.40.0": + version "8.40.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.40.0.tgz#19f959f273b32f5082c891903645e6a85328db4e" + integrity sha512-w/EboPlBwnmOBtRbiOvzjD+wdiZdgFeo17lkltrtn7X37vagKKWJABvyfsJXTlHe6XBzugmYgd4A4nW+k8Mixw== dependencies: "@eslint-community/regexpp" "^4.10.0" - "@typescript-eslint/scope-manager" "8.35.0" - "@typescript-eslint/type-utils" "8.35.0" - "@typescript-eslint/utils" "8.35.0" - "@typescript-eslint/visitor-keys" "8.35.0" + "@typescript-eslint/scope-manager" "8.40.0" + "@typescript-eslint/type-utils" "8.40.0" + "@typescript-eslint/utils" "8.40.0" + "@typescript-eslint/visitor-keys" "8.40.0" graphemer "^1.4.0" ignore "^7.0.0" natural-compare "^1.4.0" ts-api-utils "^2.1.0" -"@typescript-eslint/parser@8.35.0": - version "8.35.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-8.35.0.tgz#20a0e17778a329a6072722f5ac418d4376b767d2" - integrity sha512-6sMvZePQrnZH2/cJkwRpkT7DxoAWh+g6+GFRK6bV3YQo7ogi3SX5rgF6099r5Q53Ma5qeT7LGmOmuIutF4t3lA== +"@typescript-eslint/parser@8.40.0": + version "8.40.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-8.40.0.tgz#1bc9f3701ced29540eb76ff2d95ce0d52ddc7e69" + integrity sha512-jCNyAuXx8dr5KJMkecGmZ8KI61KBUhkCob+SD+C+I5+Y1FWI2Y3QmY4/cxMCC5WAsZqoEtEETVhUiUMIGCf6Bw== dependencies: - "@typescript-eslint/scope-manager" "8.35.0" - "@typescript-eslint/types" "8.35.0" - "@typescript-eslint/typescript-estree" "8.35.0" - "@typescript-eslint/visitor-keys" "8.35.0" + "@typescript-eslint/scope-manager" "8.40.0" + "@typescript-eslint/types" "8.40.0" + "@typescript-eslint/typescript-estree" "8.40.0" + "@typescript-eslint/visitor-keys" "8.40.0" debug "^4.3.4" -"@typescript-eslint/project-service@8.35.0": - version "8.35.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/project-service/-/project-service-8.35.0.tgz#00bd77e6845fbdb5684c6ab2d8a400a58dcfb07b" - integrity sha512-41xatqRwWZuhUMF/aZm2fcUsOFKNcG28xqRSS6ZVr9BVJtGExosLAm5A1OxTjRMagx8nJqva+P5zNIGt8RIgbQ== +"@typescript-eslint/project-service@8.40.0": + version "8.40.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/project-service/-/project-service-8.40.0.tgz#1b7ba6079ff580c3215882fe75a43e5d3ed166b9" + integrity sha512-/A89vz7Wf5DEXsGVvcGdYKbVM9F7DyFXj52lNYUDS1L9yJfqjW/fIp5PgMuEJL/KeqVTe2QSbXAGUZljDUpArw== dependencies: - "@typescript-eslint/tsconfig-utils" "^8.35.0" - "@typescript-eslint/types" "^8.35.0" + "@typescript-eslint/tsconfig-utils" "^8.40.0" + "@typescript-eslint/types" "^8.40.0" debug "^4.3.4" -"@typescript-eslint/scope-manager@8.35.0": - version "8.35.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-8.35.0.tgz#8ccb2ab63383544fab98fc4b542d8d141259ff4f" - integrity sha512-+AgL5+mcoLxl1vGjwNfiWq5fLDZM1TmTPYs2UkyHfFhgERxBbqHlNjRzhThJqz+ktBqTChRYY6zwbMwy0591AA== +"@typescript-eslint/scope-manager@8.40.0": + version "8.40.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-8.40.0.tgz#2fbfcc8643340d8cd692267e61548b946190be8a" + integrity sha512-y9ObStCcdCiZKzwqsE8CcpyuVMwRouJbbSrNuThDpv16dFAj429IkM6LNb1dZ2m7hK5fHyzNcErZf7CEeKXR4w== dependencies: - "@typescript-eslint/types" "8.35.0" - "@typescript-eslint/visitor-keys" "8.35.0" + "@typescript-eslint/types" "8.40.0" + "@typescript-eslint/visitor-keys" "8.40.0" -"@typescript-eslint/tsconfig-utils@8.35.0", "@typescript-eslint/tsconfig-utils@^8.35.0": - version "8.35.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.35.0.tgz#6e05aeb999999e31d562ceb4fe144f3cbfbd670e" - integrity sha512-04k/7247kZzFraweuEirmvUj+W3bJLI9fX6fbo1Qm2YykuBvEhRTPl8tcxlYO8kZZW+HIXfkZNoasVb8EV4jpA== +"@typescript-eslint/tsconfig-utils@8.40.0", "@typescript-eslint/tsconfig-utils@^8.40.0": + version "8.40.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.40.0.tgz#8e8fdb9b988854aedd04abdde3239c4bdd2d26e4" + integrity sha512-jtMytmUaG9d/9kqSl/W3E3xaWESo4hFDxAIHGVW/WKKtQhesnRIJSAJO6XckluuJ6KDB5woD1EiqknriCtAmcw== -"@typescript-eslint/type-utils@8.35.0": - version "8.35.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-8.35.0.tgz#0201eae9d83ffcc3451ef8c94f53ecfbf2319ecc" - integrity sha512-ceNNttjfmSEoM9PW87bWLDEIaLAyR+E6BoYJQ5PfaDau37UGca9Nyq3lBk8Bw2ad0AKvYabz6wxc7DMTO2jnNA== +"@typescript-eslint/type-utils@8.40.0": + version "8.40.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-8.40.0.tgz#a7e4a1f0815dd0ba3e4eef945cc87193ca32c422" + integrity sha512-eE60cK4KzAc6ZrzlJnflXdrMqOBaugeukWICO2rB0KNvwdIMaEaYiywwHMzA1qFpTxrLhN9Lp4E/00EgWcD3Ow== dependencies: - "@typescript-eslint/typescript-estree" "8.35.0" - "@typescript-eslint/utils" "8.35.0" + "@typescript-eslint/types" "8.40.0" + "@typescript-eslint/typescript-estree" "8.40.0" + "@typescript-eslint/utils" "8.40.0" debug "^4.3.4" ts-api-utils "^2.1.0" -"@typescript-eslint/types@8.35.0", "@typescript-eslint/types@^8.35.0": - version "8.35.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-8.35.0.tgz#e60d062907930e30008d796de5c4170f02618a93" - integrity sha512-0mYH3emanku0vHw2aRLNGqe7EXh9WHEhi7kZzscrMDf6IIRUQ5Jk4wp1QrledE/36KtdZrVfKnE32eZCf/vaVQ== +"@typescript-eslint/types@8.40.0", "@typescript-eslint/types@^8.40.0": + version "8.40.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-8.40.0.tgz#0b580fdf643737aa5c01285314b5c6e9543846a9" + integrity sha512-ETdbFlgbAmXHyFPwqUIYrfc12ArvpBhEVgGAxVYSwli26dn8Ko+lIo4Su9vI9ykTZdJn+vJprs/0eZU0YMAEQg== -"@typescript-eslint/typescript-estree@8.35.0": - version "8.35.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-8.35.0.tgz#86141e6c55b75bc1eaecc0781bd39704de14e52a" - integrity sha512-F+BhnaBemgu1Qf8oHrxyw14wq6vbL8xwWKKMwTMwYIRmFFY/1n/9T/jpbobZL8vp7QyEUcC6xGrnAO4ua8Kp7w== +"@typescript-eslint/typescript-estree@8.40.0": + version "8.40.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-8.40.0.tgz#295149440ce7da81c790a4e14e327599a3a1e5c9" + integrity sha512-k1z9+GJReVVOkc1WfVKs1vBrR5MIKKbdAjDTPvIK3L8De6KbFfPFt6BKpdkdk7rZS2GtC/m6yI5MYX+UsuvVYQ== dependencies: - "@typescript-eslint/project-service" "8.35.0" - "@typescript-eslint/tsconfig-utils" "8.35.0" - "@typescript-eslint/types" "8.35.0" - "@typescript-eslint/visitor-keys" "8.35.0" + "@typescript-eslint/project-service" "8.40.0" + "@typescript-eslint/tsconfig-utils" "8.40.0" + "@typescript-eslint/types" "8.40.0" + "@typescript-eslint/visitor-keys" "8.40.0" debug "^4.3.4" fast-glob "^3.3.2" is-glob "^4.0.3" @@ -1000,22 +1021,22 @@ semver "^7.6.0" ts-api-utils "^2.1.0" -"@typescript-eslint/utils@8.35.0": - version "8.35.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-8.35.0.tgz#aaf0afab5ab51ea2f1897002907eacd9834606d5" - integrity sha512-nqoMu7WWM7ki5tPgLVsmPM8CkqtoPUG6xXGeefM5t4x3XumOEKMoUZPdi+7F+/EotukN4R9OWdmDxN80fqoZeg== +"@typescript-eslint/utils@8.40.0": + version "8.40.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-8.40.0.tgz#8d0c6430ed2f5dc350784bb0d8be514da1e54054" + integrity sha512-Cgzi2MXSZyAUOY+BFwGs17s7ad/7L+gKt6Y8rAVVWS+7o6wrjeFN4nVfTpbE25MNcxyJ+iYUXflbs2xR9h4UBg== dependencies: "@eslint-community/eslint-utils" "^4.7.0" - "@typescript-eslint/scope-manager" "8.35.0" - "@typescript-eslint/types" "8.35.0" - "@typescript-eslint/typescript-estree" "8.35.0" + "@typescript-eslint/scope-manager" "8.40.0" + "@typescript-eslint/types" "8.40.0" + "@typescript-eslint/typescript-estree" "8.40.0" -"@typescript-eslint/visitor-keys@8.35.0": - version "8.35.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-8.35.0.tgz#93e905e7f1e94d26a79771d1b1eb0024cb159dbf" - integrity sha512-zTh2+1Y8ZpmeQaQVIc/ZZxsx8UzgKJyNg1PTvjzC7WMhPSVS8bfDX34k1SrwOf016qd5RU3az2UxUNue3IfQ5g== +"@typescript-eslint/visitor-keys@8.40.0": + version "8.40.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-8.40.0.tgz#c1b45196981311fed7256863be4bfb2d3eda332a" + integrity sha512-8CZ47QwalyRjsypfwnbI3hKy5gJDPmrkLjkgMxhi0+DZZ2QNx2naS6/hWoVYUHU7LU2zleF68V9miaVZvhFfTA== dependencies: - "@typescript-eslint/types" "8.35.0" + "@typescript-eslint/types" "8.40.0" eslint-visitor-keys "^4.2.1" "@ungap/structured-clone@^1.3.0": @@ -1201,31 +1222,26 @@ argparse@^2.0.1: resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== -async@^3.2.3: - version "3.2.6" - resolved "https://registry.yarnpkg.com/async/-/async-3.2.6.tgz#1b0728e14929d51b85b449b7f06e27c1145e38ce" - integrity sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA== - asynckit@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== -axios@1.10.0: - version "1.10.0" - resolved "https://registry.yarnpkg.com/axios/-/axios-1.10.0.tgz#af320aee8632eaf2a400b6a1979fa75856f38d54" - integrity sha512-/1xYAC4MP/HEG+3duIhFr4ZQXR4sQXOIe+o6sdqzeykGLx6Upp/1p8MHqhINOvGeP7xyNHe7tsiJByc4SSVUxw== +axios@1.11.0: + version "1.11.0" + resolved "https://registry.yarnpkg.com/axios/-/axios-1.11.0.tgz#c2ec219e35e414c025b2095e8b8280278478fdb6" + integrity sha512-1Lx3WLFQWm3ooKDYZD1eXmoGO9fxYQjrycfHFC8P0sCfQVXyROp0p9PFWBehewBOdCwHc+f/b8I0fMto5eSfwA== dependencies: follow-redirects "^1.15.6" - form-data "^4.0.0" + form-data "^4.0.4" proxy-from-env "^1.1.0" -babel-jest@30.0.2: - version "30.0.2" - resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-30.0.2.tgz#f627dc5afc3bd5795fc84735b4f1d74f9d4b8e91" - integrity sha512-A5kqR1/EUTidM2YC2YMEUDP2+19ppgOwK0IAd9Swc3q2KqFb5f9PtRUXVeZcngu0z5mDMyZ9zH2huJZSOMLiTQ== +babel-jest@30.0.5: + version "30.0.5" + resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-30.0.5.tgz#7cc7dd03d0d613125d458521f635b8c2361e89cc" + integrity sha512-mRijnKimhGDMsizTvBTWotwNpzrkHr+VvZUQBof2AufXKB8NXrL1W69TG20EvOz7aevx6FTJIaBuBkYxS8zolg== dependencies: - "@jest/transform" "30.0.2" + "@jest/transform" "30.0.5" "@types/babel__core" "^7.20.5" babel-plugin-istanbul "^7.0.0" babel-preset-jest "30.0.1" @@ -1366,7 +1382,7 @@ caniuse-lite@^1.0.30001669: resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001678.tgz#b930b04cd0b295136405634aa32ad540d7eeb71e" integrity sha512-RR+4U/05gNtps58PEBDZcPWTgEO2MBeoPZ96aQcjmfkBWRIDfN451fW2qyDA9/+HohLLIL5GqiMwA+IB1pWarw== -chalk@^4.0.0, chalk@^4.0.2, chalk@^4.1.2: +chalk@^4.0.0, chalk@^4.1.2: version "4.1.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== @@ -1374,10 +1390,10 @@ chalk@^4.0.0, chalk@^4.0.2, chalk@^4.1.2: ansi-styles "^4.1.0" supports-color "^7.1.0" -chalk@^5.4.1: - version "5.4.1" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.4.1.tgz#1b48bf0963ec158dce2aacf69c093ae2dd2092d8" - integrity sha512-zgVZuo2WcZgfUEmsn6eO3kINexW8RAE4maiQ8QNs8CtpPCSyMiYsULR3HQYkm3w8FIA3SberyMJMSldGsW+U3w== +chalk@^5.5.0: + version "5.6.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.6.0.tgz#a1a8d294ea3526dbb77660f12649a08490e33ab8" + integrity sha512-46QrSQFyVSEyYAgQ22hQ+zDa60YHA4fBstHmtSApj1Y5vKtG27fWowW03jCk5KcbXEWPZUIR894aARCA/G1kfQ== char-regex@^1.0.2: version "1.0.2" @@ -1543,13 +1559,6 @@ eastasianwidth@^0.2.0: resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== -ejs@^3.1.10: - version "3.1.10" - resolved "https://registry.yarnpkg.com/ejs/-/ejs-3.1.10.tgz#69ab8358b14e896f80cc39e62087b88500c3ac3b" - integrity sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA== - dependencies: - jake "^10.8.5" - electron-to-chromium@^1.5.41: version "1.5.52" resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.52.tgz#2bed832c95a56a195504f918150e548474687da8" @@ -1629,10 +1638,10 @@ escape-string-regexp@^4.0.0: resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== -eslint-config-prettier@^9.1.0: - version "9.1.0" - resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz#31af3d94578645966c082fcb71a5846d3c94867f" - integrity sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw== +eslint-config-prettier@^10.1.8: + version "10.1.8" + resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-10.1.8.tgz#15734ce4af8c2778cc32f0b01b37b0b5cd1ecb97" + integrity sha512-82GZUjRS0p/jganf6q1rEO25VSoHH0hKPCTrgillPjdI/3bgBhAE1QzHrHTizjpRvy6pGAvKjDJtk2pF9NDq8w== eslint-scope@^8.4.0: version "8.4.0" @@ -1652,19 +1661,19 @@ eslint-visitor-keys@^4.2.1: resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz#4cfea60fe7dd0ad8e816e1ed026c1d5251b512c1" integrity sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ== -eslint@9.29.0: - version "9.29.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-9.29.0.tgz#65e3db3b7e5a5b04a8af541741a0f3648d0a81a6" - integrity sha512-GsGizj2Y1rCWDu6XoEekL3RLilp0voSePurjZIkxL3wlm5o5EC9VpgaP7lrCvjnkuLvzFBQWB3vWB3K5KQTveQ== +eslint@9.34.0: + version "9.34.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-9.34.0.tgz#0ea1f2c1b5d1671db8f01aa6b8ce722302016f7b" + integrity sha512-RNCHRX5EwdrESy3Jc9o8ie8Bog+PeYvvSR8sDGoZxNFTvZ4dlxUB3WzQ3bQMztFrSRODGrLLj8g6OFuGY/aiQg== dependencies: "@eslint-community/eslint-utils" "^4.2.0" "@eslint-community/regexpp" "^4.12.1" - "@eslint/config-array" "^0.20.1" - "@eslint/config-helpers" "^0.2.1" - "@eslint/core" "^0.14.0" + "@eslint/config-array" "^0.21.0" + "@eslint/config-helpers" "^0.3.1" + "@eslint/core" "^0.15.2" "@eslint/eslintrc" "^3.3.1" - "@eslint/js" "9.29.0" - "@eslint/plugin-kit" "^0.3.1" + "@eslint/js" "9.34.0" + "@eslint/plugin-kit" "^0.3.5" "@humanfs/node" "^0.16.6" "@humanwhocodes/module-importer" "^1.0.1" "@humanwhocodes/retry" "^0.4.2" @@ -1756,7 +1765,19 @@ exit-x@^0.2.2: resolved "https://registry.yarnpkg.com/exit-x/-/exit-x-0.2.2.tgz#1f9052de3b8d99a696b10dad5bced9bdd5c3aa64" integrity sha512-+I6B/IkJc1o/2tiURyz/ivu/O0nKNEArIUB5O7zBrlDVJr22SCLH3xTeEry428LvFhRzIA1g8izguxJ/gbNcVQ== -expect@30.0.3, expect@^30.0.0: +expect@30.0.5: + version "30.0.5" + resolved "https://registry.yarnpkg.com/expect/-/expect-30.0.5.tgz#c23bf193c5e422a742bfd2990ad990811de41a5a" + integrity sha512-P0te2pt+hHI5qLJkIR+iMvS+lYUZml8rKKsohVHAGY+uClp9XVbdyYNJOIjSRpHVp8s8YqxJCiHUkSYZGr8rtQ== + dependencies: + "@jest/expect-utils" "30.0.5" + "@jest/get-type" "30.0.1" + jest-matcher-utils "30.0.5" + jest-message-util "30.0.5" + jest-mock "30.0.5" + jest-util "30.0.5" + +expect@^30.0.0: version "30.0.3" resolved "https://registry.yarnpkg.com/expect/-/expect-30.0.3.tgz#8bf31a67514f78c5e4ac8d67774192ab95d5ec25" integrity sha512-HXg6NvK35/cSYZCUKAtmlgCFyqKM4frEPbzrav5hRqb0GMz0E0lS5hfzYjSaiaE5ysnp/qI2aeZkeyeIAOeXzQ== @@ -1815,13 +1836,6 @@ file-entry-cache@^8.0.0: dependencies: flat-cache "^4.0.0" -filelist@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/filelist/-/filelist-1.0.4.tgz#f78978a1e944775ff9e62e744424f215e58352b5" - integrity sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q== - dependencies: - minimatch "^5.0.1" - fill-range@^7.1.1: version "7.1.1" resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.1.1.tgz#44265d3cac07e3ea7dc247516380643754a05292" @@ -1871,10 +1885,10 @@ foreground-child@^3.1.0: cross-spawn "^7.0.6" signal-exit "^4.0.1" -form-data@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.3.tgz#608b1b3f3e28be0fccf5901fc85fb3641e5cf0ae" - integrity sha512-qsITQPfmvMOSAdeyZ+12I1c+CKSstAFAwu+97zrnWAbIr5u8wfsExUzCesVLC8NgHuRUqNN4Zy6UPWUTRGslcA== +form-data@^4.0.4: + version "4.0.4" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.4.tgz#784cdcce0669a9d68e94d11ac4eea98088edd2c4" + integrity sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow== dependencies: asynckit "^0.4.0" combined-stream "^1.0.8" @@ -2009,6 +2023,18 @@ graphemer@^1.4.0: resolved "https://registry.yarnpkg.com/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6" integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag== +handlebars@^4.7.8: + version "4.7.8" + resolved "https://registry.yarnpkg.com/handlebars/-/handlebars-4.7.8.tgz#41c42c18b1be2365439188c77c6afae71c0cd9e9" + integrity sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ== + dependencies: + minimist "^1.2.5" + neo-async "^2.6.2" + source-map "^0.6.1" + wordwrap "^1.0.0" + optionalDependencies: + uglify-js "^3.1.4" + has-flag@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" @@ -2197,94 +2223,84 @@ jackspeak@^3.1.2: optionalDependencies: "@pkgjs/parseargs" "^0.11.0" -jake@^10.8.5: - version "10.9.2" - resolved "https://registry.yarnpkg.com/jake/-/jake-10.9.2.tgz#6ae487e6a69afec3a5e167628996b59f35ae2b7f" - integrity sha512-2P4SQ0HrLQ+fw6llpLnOaGAvN2Zu6778SJMrCUwns4fOoG9ayrTiZk3VV8sCPkVZF8ab0zksVpS8FDY5pRCNBA== - dependencies: - async "^3.2.3" - chalk "^4.0.2" - filelist "^1.0.4" - minimatch "^3.1.2" - -jest-changed-files@30.0.2: - version "30.0.2" - resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-30.0.2.tgz#2c275263037f8f291b71cbb0a4f639c519ab7eb8" - integrity sha512-Ius/iRST9FKfJI+I+kpiDh8JuUlAISnRszF9ixZDIqJF17FckH5sOzKC8a0wd0+D+8em5ADRHA5V5MnfeDk2WA== +jest-changed-files@30.0.5: + version "30.0.5" + resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-30.0.5.tgz#ec448f83bd9caa894dd7da8707f207c356a19924" + integrity sha512-bGl2Ntdx0eAwXuGpdLdVYVr5YQHnSZlQ0y9HVDu565lCUAe9sj6JOtBbMmBBikGIegne9piDDIOeiLVoqTkz4A== dependencies: execa "^5.1.1" - jest-util "30.0.2" + jest-util "30.0.5" p-limit "^3.1.0" -jest-circus@30.0.3: - version "30.0.3" - resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-30.0.3.tgz#d2de4adb92cfdbce18668e27176c1b9f79afdf5a" - integrity sha512-rD9qq2V28OASJHJWDRVdhoBdRs6k3u3EmBzDYcyuMby8XCO3Ll1uq9kyqM41ZcC4fMiPulMVh3qMw0cBvDbnyg== +jest-circus@30.0.5: + version "30.0.5" + resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-30.0.5.tgz#9b4d44feb56c7ffe14411ad7fc08af188c5d4da7" + integrity sha512-h/sjXEs4GS+NFFfqBDYT7y5Msfxh04EwWLhQi0F8kuWpe+J/7tICSlswU8qvBqumR3kFgHbfu7vU6qruWWBPug== dependencies: - "@jest/environment" "30.0.2" - "@jest/expect" "30.0.3" - "@jest/test-result" "30.0.2" - "@jest/types" "30.0.1" + "@jest/environment" "30.0.5" + "@jest/expect" "30.0.5" + "@jest/test-result" "30.0.5" + "@jest/types" "30.0.5" "@types/node" "*" chalk "^4.1.2" co "^4.6.0" dedent "^1.6.0" is-generator-fn "^2.1.0" - jest-each "30.0.2" - jest-matcher-utils "30.0.3" - jest-message-util "30.0.2" - jest-runtime "30.0.3" - jest-snapshot "30.0.3" - jest-util "30.0.2" + jest-each "30.0.5" + jest-matcher-utils "30.0.5" + jest-message-util "30.0.5" + jest-runtime "30.0.5" + jest-snapshot "30.0.5" + jest-util "30.0.5" p-limit "^3.1.0" - pretty-format "30.0.2" + pretty-format "30.0.5" pure-rand "^7.0.0" slash "^3.0.0" stack-utils "^2.0.6" -jest-cli@30.0.3: - version "30.0.3" - resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-30.0.3.tgz#2340b69c580c471fd9f4a197f969025a545608dd" - integrity sha512-UWDSj0ayhumEAxpYRlqQLrssEi29kdQ+kddP94AuHhZknrE+mT0cR0J+zMHKFe9XPfX3dKQOc2TfWki3WhFTsA== +jest-cli@30.0.5: + version "30.0.5" + resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-30.0.5.tgz#c3fbfdabd1a5c428429476f915a1ba6d0774cc50" + integrity sha512-Sa45PGMkBZzF94HMrlX4kUyPOwUpdZasaliKN3mifvDmkhLYqLLg8HQTzn6gq7vJGahFYMQjXgyJWfYImKZzOw== dependencies: - "@jest/core" "30.0.3" - "@jest/test-result" "30.0.2" - "@jest/types" "30.0.1" + "@jest/core" "30.0.5" + "@jest/test-result" "30.0.5" + "@jest/types" "30.0.5" chalk "^4.1.2" exit-x "^0.2.2" import-local "^3.2.0" - jest-config "30.0.3" - jest-util "30.0.2" - jest-validate "30.0.2" + jest-config "30.0.5" + jest-util "30.0.5" + jest-validate "30.0.5" yargs "^17.7.2" -jest-config@30.0.3: - version "30.0.3" - resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-30.0.3.tgz#978853722b9b0f2d0596025ea423cc6c7b603c07" - integrity sha512-j0L4oRCtJwNyZktXIqwzEiDVQXBbQ4dqXuLD/TZdn++hXIcIfZmjHgrViEy5s/+j4HvITmAXbexVZpQ/jnr0bg== +jest-config@30.0.5: + version "30.0.5" + resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-30.0.5.tgz#567cf39b595229b786506a496c22e222d5e8d480" + integrity sha512-aIVh+JNOOpzUgzUnPn5FLtyVnqc3TQHVMupYtyeURSb//iLColiMIR8TxCIDKyx9ZgjKnXGucuW68hCxgbrwmA== dependencies: "@babel/core" "^7.27.4" "@jest/get-type" "30.0.1" "@jest/pattern" "30.0.1" - "@jest/test-sequencer" "30.0.2" - "@jest/types" "30.0.1" - babel-jest "30.0.2" + "@jest/test-sequencer" "30.0.5" + "@jest/types" "30.0.5" + babel-jest "30.0.5" chalk "^4.1.2" ci-info "^4.2.0" deepmerge "^4.3.1" glob "^10.3.10" graceful-fs "^4.2.11" - jest-circus "30.0.3" + jest-circus "30.0.5" jest-docblock "30.0.1" - jest-environment-node "30.0.2" + jest-environment-node "30.0.5" jest-regex-util "30.0.1" - jest-resolve "30.0.2" - jest-runner "30.0.3" - jest-util "30.0.2" - jest-validate "30.0.2" + jest-resolve "30.0.5" + jest-runner "30.0.5" + jest-util "30.0.5" + jest-validate "30.0.5" micromatch "^4.0.8" parse-json "^5.2.0" - pretty-format "30.0.2" + pretty-format "30.0.5" slash "^3.0.0" strip-json-comments "^3.1.1" @@ -2298,6 +2314,16 @@ jest-diff@30.0.3: chalk "^4.1.2" pretty-format "30.0.2" +jest-diff@30.0.5: + version "30.0.5" + resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-30.0.5.tgz#b40f81e0c0d13e5b81c4d62b0d0dfa6a524ee0fd" + integrity sha512-1UIqE9PoEKaHcIKvq2vbibrCog4Y8G0zmOxgQUVEiTqwR5hJVMCoDsN1vFvI5JvwD37hjueZ1C4l2FyGnfpE0A== + dependencies: + "@jest/diff-sequences" "30.0.1" + "@jest/get-type" "30.0.1" + chalk "^4.1.2" + pretty-format "30.0.5" + jest-docblock@30.0.1: version "30.0.1" resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-30.0.1.tgz#545ff59f2fa88996bd470dba7d3798a8421180b1" @@ -2305,55 +2331,55 @@ jest-docblock@30.0.1: dependencies: detect-newline "^3.1.0" -jest-each@30.0.2: - version "30.0.2" - resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-30.0.2.tgz#402e189784715f5c76f1bb97c29842e79abe99a1" - integrity sha512-ZFRsTpe5FUWFQ9cWTMguCaiA6kkW5whccPy9JjD1ezxh+mJeqmz8naL8Fl/oSbNJv3rgB0x87WBIkA5CObIUZQ== +jest-each@30.0.5: + version "30.0.5" + resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-30.0.5.tgz#5962264ff246cd757ba44db096c1bc5b4835173e" + integrity sha512-dKjRsx1uZ96TVyejD3/aAWcNKy6ajMaN531CwWIsrazIqIoXI9TnnpPlkrEYku/8rkS3dh2rbH+kMOyiEIv0xQ== dependencies: "@jest/get-type" "30.0.1" - "@jest/types" "30.0.1" + "@jest/types" "30.0.5" chalk "^4.1.2" - jest-util "30.0.2" - pretty-format "30.0.2" + jest-util "30.0.5" + pretty-format "30.0.5" -jest-environment-node@30.0.2: - version "30.0.2" - resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-30.0.2.tgz#3c24d6becb505f344f52cddb15ea506cf3288543" - integrity sha512-XsGtZ0H+a70RsxAQkKuIh0D3ZlASXdZdhpOSBq9WRPq6lhe0IoQHGW0w9ZUaPiZQ/CpkIdprvlfV1QcXcvIQLQ== +jest-environment-node@30.0.5: + version "30.0.5" + resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-30.0.5.tgz#6a98dd80e0384ead67ed05643381395f6cda93c9" + integrity sha512-ppYizXdLMSvciGsRsMEnv/5EFpvOdXBaXRBzFUDPWrsfmog4kYrOGWXarLllz6AXan6ZAA/kYokgDWuos1IKDA== dependencies: - "@jest/environment" "30.0.2" - "@jest/fake-timers" "30.0.2" - "@jest/types" "30.0.1" + "@jest/environment" "30.0.5" + "@jest/fake-timers" "30.0.5" + "@jest/types" "30.0.5" "@types/node" "*" - jest-mock "30.0.2" - jest-util "30.0.2" - jest-validate "30.0.2" + jest-mock "30.0.5" + jest-util "30.0.5" + jest-validate "30.0.5" -jest-haste-map@30.0.2: - version "30.0.2" - resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-30.0.2.tgz#83826e7e352fa139dc95100337aff4de58c99453" - integrity sha512-telJBKpNLeCb4MaX+I5k496556Y2FiKR/QLZc0+MGBYl4k3OO0472drlV2LUe7c1Glng5HuAu+5GLYp//GpdOQ== +jest-haste-map@30.0.5: + version "30.0.5" + resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-30.0.5.tgz#fdd0daa322b02eb34267854cff2859fae21e92a6" + integrity sha512-dkmlWNlsTSR0nH3nRfW5BKbqHefLZv0/6LCccG0xFCTWcJu8TuEwG+5Cm75iBfjVoockmO6J35o5gxtFSn5xeg== dependencies: - "@jest/types" "30.0.1" + "@jest/types" "30.0.5" "@types/node" "*" anymatch "^3.1.3" fb-watchman "^2.0.2" graceful-fs "^4.2.11" jest-regex-util "30.0.1" - jest-util "30.0.2" - jest-worker "30.0.2" + jest-util "30.0.5" + jest-worker "30.0.5" micromatch "^4.0.8" walker "^1.0.8" optionalDependencies: fsevents "^2.3.3" -jest-leak-detector@30.0.2: - version "30.0.2" - resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-30.0.2.tgz#da4df660615d170136d2b468af3bf1c9bff0137e" - integrity sha512-U66sRrAYdALq+2qtKffBLDWsQ/XoNNs2Lcr83sc9lvE/hEpNafJlq2lXCPUBMNqamMECNxSIekLfe69qg4KMIQ== +jest-leak-detector@30.0.5: + version "30.0.5" + resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-30.0.5.tgz#00cfd2b323f48d8f4416b0a3e05fcf4c51f18864" + integrity sha512-3Uxr5uP8jmHMcsOtYMRB/zf1gXN3yUIc+iPorhNETG54gErFIiUhLvyY/OggYpSMOEYqsmRxmuU4ZOoX5jpRFg== dependencies: "@jest/get-type" "30.0.1" - pretty-format "30.0.2" + pretty-format "30.0.5" jest-matcher-utils@30.0.3: version "30.0.3" @@ -2365,6 +2391,16 @@ jest-matcher-utils@30.0.3: jest-diff "30.0.3" pretty-format "30.0.2" +jest-matcher-utils@30.0.5: + version "30.0.5" + resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-30.0.5.tgz#dff3334be58faea4a5e1becc228656fbbfc2467d" + integrity sha512-uQgGWt7GOrRLP1P7IwNWwK1WAQbq+m//ZY0yXygyfWp0rJlksMSLQAA4wYQC3b6wl3zfnchyTx+k3HZ5aPtCbQ== + dependencies: + "@jest/get-type" "30.0.1" + chalk "^4.1.2" + jest-diff "30.0.5" + pretty-format "30.0.5" + jest-message-util@30.0.2: version "30.0.2" resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-30.0.2.tgz#9dfdc37570d172f0ffdc42a0318036ff4008837f" @@ -2380,6 +2416,21 @@ jest-message-util@30.0.2: slash "^3.0.0" stack-utils "^2.0.6" +jest-message-util@30.0.5: + version "30.0.5" + resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-30.0.5.tgz#dd12ffec91dd3fa6a59cbd538a513d8e239e070c" + integrity sha512-NAiDOhsK3V7RU0Aa/HnrQo+E4JlbarbmI3q6Pi4KcxicdtjV82gcIUrejOtczChtVQR4kddu1E1EJlW6EN9IyA== + dependencies: + "@babel/code-frame" "^7.27.1" + "@jest/types" "30.0.5" + "@types/stack-utils" "^2.0.3" + chalk "^4.1.2" + graceful-fs "^4.2.11" + micromatch "^4.0.8" + pretty-format "30.0.5" + slash "^3.0.0" + stack-utils "^2.0.6" + jest-mock@30.0.2: version "30.0.2" resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-30.0.2.tgz#5e4245f25f6f9532714906cab10a2b9e39eb2183" @@ -2389,6 +2440,15 @@ jest-mock@30.0.2: "@types/node" "*" jest-util "30.0.2" +jest-mock@30.0.5: + version "30.0.5" + resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-30.0.5.tgz#ef437e89212560dd395198115550085038570bdd" + integrity sha512-Od7TyasAAQX/6S+QCbN6vZoWOMwlTtzzGuxJku1GhGanAjz9y+QsQkpScDmETvdc9aSXyJ/Op4rhpMYBWW91wQ== + dependencies: + "@jest/types" "30.0.5" + "@types/node" "*" + jest-util "30.0.5" + jest-pnp-resolver@^1.2.3: version "1.2.3" resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz#930b1546164d4ad5937d5540e711d4d38d4cad2e" @@ -2399,108 +2459,108 @@ jest-regex-util@30.0.1: resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-30.0.1.tgz#f17c1de3958b67dfe485354f5a10093298f2a49b" integrity sha512-jHEQgBXAgc+Gh4g0p3bCevgRCVRkB4VB70zhoAE48gxeSr1hfUOsM/C2WoJgVL7Eyg//hudYENbm3Ne+/dRVVA== -jest-resolve-dependencies@30.0.3: - version "30.0.3" - resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-30.0.3.tgz#8278f54a84009028b823f5c1f7033fb968405b2f" - integrity sha512-FlL6u7LiHbF0Oe27k7DHYMq2T2aNpPhxnNo75F7lEtu4A6sSw+TKkNNUGNcVckdFoL0RCWREJsC1HsKDwKRZzQ== +jest-resolve-dependencies@30.0.5: + version "30.0.5" + resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-30.0.5.tgz#53be4c51d296c84a0e75608e7b77b6fe92dbac29" + integrity sha512-/xMvBR4MpwkrHW4ikZIWRttBBRZgWK4d6xt3xW1iRDSKt4tXzYkMkyPfBnSCgv96cpkrctfXs6gexeqMYqdEpw== dependencies: jest-regex-util "30.0.1" - jest-snapshot "30.0.3" + jest-snapshot "30.0.5" -jest-resolve@30.0.2: - version "30.0.2" - resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-30.0.2.tgz#4b7c826a35e9657189568e4dafc0ba5f05868cf2" - integrity sha512-q/XT0XQvRemykZsvRopbG6FQUT6/ra+XV6rPijyjT6D0msOyCvR2A5PlWZLd+fH0U8XWKZfDiAgrUNDNX2BkCw== +jest-resolve@30.0.5: + version "30.0.5" + resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-30.0.5.tgz#f52f91600070b7073db465dc553eee5471ea8e06" + integrity sha512-d+DjBQ1tIhdz91B79mywH5yYu76bZuE96sSbxj8MkjWVx5WNdt1deEFRONVL4UkKLSrAbMkdhb24XN691yDRHg== dependencies: chalk "^4.1.2" graceful-fs "^4.2.11" - jest-haste-map "30.0.2" + jest-haste-map "30.0.5" jest-pnp-resolver "^1.2.3" - jest-util "30.0.2" - jest-validate "30.0.2" + jest-util "30.0.5" + jest-validate "30.0.5" slash "^3.0.0" unrs-resolver "^1.7.11" -jest-runner@30.0.3: - version "30.0.3" - resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-30.0.3.tgz#baa1d5e77655c70cea9aa4138cfb437f6bada607" - integrity sha512-CxYBzu9WStOBBXAKkLXGoUtNOWsiS1RRmUQb6SsdUdTcqVncOau7m8AJ4cW3Mz+YL1O9pOGPSYLyvl8HBdFmkQ== +jest-runner@30.0.5: + version "30.0.5" + resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-30.0.5.tgz#5cbaaf85964246da4f65d697f186846f23cd9b5a" + integrity sha512-JcCOucZmgp+YuGgLAXHNy7ualBx4wYSgJVWrYMRBnb79j9PD0Jxh0EHvR5Cx/r0Ce+ZBC4hCdz2AzFFLl9hCiw== dependencies: - "@jest/console" "30.0.2" - "@jest/environment" "30.0.2" - "@jest/test-result" "30.0.2" - "@jest/transform" "30.0.2" - "@jest/types" "30.0.1" + "@jest/console" "30.0.5" + "@jest/environment" "30.0.5" + "@jest/test-result" "30.0.5" + "@jest/transform" "30.0.5" + "@jest/types" "30.0.5" "@types/node" "*" chalk "^4.1.2" emittery "^0.13.1" exit-x "^0.2.2" graceful-fs "^4.2.11" jest-docblock "30.0.1" - jest-environment-node "30.0.2" - jest-haste-map "30.0.2" - jest-leak-detector "30.0.2" - jest-message-util "30.0.2" - jest-resolve "30.0.2" - jest-runtime "30.0.3" - jest-util "30.0.2" - jest-watcher "30.0.2" - jest-worker "30.0.2" + jest-environment-node "30.0.5" + jest-haste-map "30.0.5" + jest-leak-detector "30.0.5" + jest-message-util "30.0.5" + jest-resolve "30.0.5" + jest-runtime "30.0.5" + jest-util "30.0.5" + jest-watcher "30.0.5" + jest-worker "30.0.5" p-limit "^3.1.0" source-map-support "0.5.13" -jest-runtime@30.0.3: - version "30.0.3" - resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-30.0.3.tgz#1eb112924426e8b90c37f0ea7da1b51966e252bf" - integrity sha512-Xjosq0C48G9XEQOtmgrjXJwPaUPaq3sPJwHDRaiC+5wi4ZWxO6Lx6jNkizK/0JmTulVNuxP8iYwt77LGnfg3/w== +jest-runtime@30.0.5: + version "30.0.5" + resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-30.0.5.tgz#d6a7e22687264240d1786d6f7682ac6a2872e552" + integrity sha512-7oySNDkqpe4xpX5PPiJTe5vEa+Ak/NnNz2bGYZrA1ftG3RL3EFlHaUkA1Cjx+R8IhK0Vg43RML5mJedGTPNz3A== dependencies: - "@jest/environment" "30.0.2" - "@jest/fake-timers" "30.0.2" - "@jest/globals" "30.0.3" + "@jest/environment" "30.0.5" + "@jest/fake-timers" "30.0.5" + "@jest/globals" "30.0.5" "@jest/source-map" "30.0.1" - "@jest/test-result" "30.0.2" - "@jest/transform" "30.0.2" - "@jest/types" "30.0.1" + "@jest/test-result" "30.0.5" + "@jest/transform" "30.0.5" + "@jest/types" "30.0.5" "@types/node" "*" chalk "^4.1.2" cjs-module-lexer "^2.1.0" collect-v8-coverage "^1.0.2" glob "^10.3.10" graceful-fs "^4.2.11" - jest-haste-map "30.0.2" - jest-message-util "30.0.2" - jest-mock "30.0.2" + jest-haste-map "30.0.5" + jest-message-util "30.0.5" + jest-mock "30.0.5" jest-regex-util "30.0.1" - jest-resolve "30.0.2" - jest-snapshot "30.0.3" - jest-util "30.0.2" + jest-resolve "30.0.5" + jest-snapshot "30.0.5" + jest-util "30.0.5" slash "^3.0.0" strip-bom "^4.0.0" -jest-snapshot@30.0.3: - version "30.0.3" - resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-30.0.3.tgz#f605254223eee0946d205c6e7ede7238e87be920" - integrity sha512-F05JCohd3OA1N9+5aEPXA6I0qOfZDGIx0zTq5Z4yMBg2i1p5ELfBusjYAWwTkC12c7dHcbyth4QAfQbS7cRjow== +jest-snapshot@30.0.5: + version "30.0.5" + resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-30.0.5.tgz#6600716eef2e6d8ea1dd788ae4385f3a2791b11f" + integrity sha512-T00dWU/Ek3LqTp4+DcW6PraVxjk28WY5Ua/s+3zUKSERZSNyxTqhDXCWKG5p2HAJ+crVQ3WJ2P9YVHpj1tkW+g== dependencies: "@babel/core" "^7.27.4" "@babel/generator" "^7.27.5" "@babel/plugin-syntax-jsx" "^7.27.1" "@babel/plugin-syntax-typescript" "^7.27.1" "@babel/types" "^7.27.3" - "@jest/expect-utils" "30.0.3" + "@jest/expect-utils" "30.0.5" "@jest/get-type" "30.0.1" - "@jest/snapshot-utils" "30.0.1" - "@jest/transform" "30.0.2" - "@jest/types" "30.0.1" + "@jest/snapshot-utils" "30.0.5" + "@jest/transform" "30.0.5" + "@jest/types" "30.0.5" babel-preset-current-node-syntax "^1.1.0" chalk "^4.1.2" - expect "30.0.3" + expect "30.0.5" graceful-fs "^4.2.11" - jest-diff "30.0.3" - jest-matcher-utils "30.0.3" - jest-message-util "30.0.2" - jest-util "30.0.2" - pretty-format "30.0.2" + jest-diff "30.0.5" + jest-matcher-utils "30.0.5" + jest-message-util "30.0.5" + jest-util "30.0.5" + pretty-format "30.0.5" semver "^7.7.2" synckit "^0.11.8" @@ -2516,52 +2576,64 @@ jest-util@30.0.2: graceful-fs "^4.2.11" picomatch "^4.0.2" -jest-validate@30.0.2: - version "30.0.2" - resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-30.0.2.tgz#f62a2f0e014dac94747509ba8c2bcd5d48215b7f" - integrity sha512-noOvul+SFER4RIvNAwGn6nmV2fXqBq67j+hKGHKGFCmK4ks/Iy1FSrqQNBLGKlu4ZZIRL6Kg1U72N1nxuRCrGQ== +jest-util@30.0.5: + version "30.0.5" + resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-30.0.5.tgz#035d380c660ad5f1748dff71c4105338e05f8669" + integrity sha512-pvyPWssDZR0FlfMxCBoc0tvM8iUEskaRFALUtGQYzVEAqisAztmy+R8LnU14KT4XA0H/a5HMVTXat1jLne010g== + dependencies: + "@jest/types" "30.0.5" + "@types/node" "*" + chalk "^4.1.2" + ci-info "^4.2.0" + graceful-fs "^4.2.11" + picomatch "^4.0.2" + +jest-validate@30.0.5: + version "30.0.5" + resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-30.0.5.tgz#d26fd218b8d566bff48fd98880b8ea94fd0d8456" + integrity sha512-ouTm6VFHaS2boyl+k4u+Qip4TSH7Uld5tyD8psQ8abGgt2uYYB8VwVfAHWHjHc0NWmGGbwO5h0sCPOGHHevefw== dependencies: "@jest/get-type" "30.0.1" - "@jest/types" "30.0.1" + "@jest/types" "30.0.5" camelcase "^6.3.0" chalk "^4.1.2" leven "^3.1.0" - pretty-format "30.0.2" + pretty-format "30.0.5" -jest-watcher@30.0.2: - version "30.0.2" - resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-30.0.2.tgz#ec93ed25183679f549a47f6197267d50ec83ea51" - integrity sha512-vYO5+E7jJuF+XmONr6CrbXdlYrgvZqtkn6pdkgjt/dU64UAdc0v1cAVaAeWtAfUUMScxNmnUjKPUMdCpNVASwg== +jest-watcher@30.0.5: + version "30.0.5" + resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-30.0.5.tgz#90db6e3f582b88085bde58f7555cbdd3a1beb10d" + integrity sha512-z9slj/0vOwBDBjN3L4z4ZYaA+pG56d6p3kTUhFRYGvXbXMWhXmb/FIxREZCD06DYUwDKKnj2T80+Pb71CQ0KEg== dependencies: - "@jest/test-result" "30.0.2" - "@jest/types" "30.0.1" + "@jest/test-result" "30.0.5" + "@jest/types" "30.0.5" "@types/node" "*" ansi-escapes "^4.3.2" chalk "^4.1.2" emittery "^0.13.1" - jest-util "30.0.2" + jest-util "30.0.5" string-length "^4.0.2" -jest-worker@30.0.2: - version "30.0.2" - resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-30.0.2.tgz#e67bd7debbc9d8445907a17067a89359acedc8c5" - integrity sha512-RN1eQmx7qSLFA+o9pfJKlqViwL5wt+OL3Vff/A+/cPsmuw7NPwfgl33AP+/agRmHzPOFgXviRycR9kYwlcRQXg== +jest-worker@30.0.5: + version "30.0.5" + resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-30.0.5.tgz#0b85cbab10610303e8d84e214f94d8f052c3cd04" + integrity sha512-ojRXsWzEP16NdUuBw/4H/zkZdHOa7MMYCk4E430l+8fELeLg/mqmMlRhjL7UNZvQrDmnovWZV4DxX03fZF48fQ== dependencies: "@types/node" "*" "@ungap/structured-clone" "^1.3.0" - jest-util "30.0.2" + jest-util "30.0.5" merge-stream "^2.0.0" supports-color "^8.1.1" -jest@30.0.3: - version "30.0.3" - resolved "https://registry.yarnpkg.com/jest/-/jest-30.0.3.tgz#fc3b6b370e2820d718ea299d159a7ba4637dbd35" - integrity sha512-Uy8xfeE/WpT2ZLGDXQmaYNzw2v8NUKuYeKGtkS6sDxwsdQihdgYCXaKIYnph1h95DN5H35ubFDm0dfmsQnjn4Q== +jest@30.0.5: + version "30.0.5" + resolved "https://registry.yarnpkg.com/jest/-/jest-30.0.5.tgz#ee62729fb77829790d67c660d852350fbde315ce" + integrity sha512-y2mfcJywuTUkvLm2Lp1/pFX8kTgMO5yyQGq/Sk/n2mN7XWYp4JsCZ/QXW34M8YScgk8bPZlREH04f6blPnoHnQ== dependencies: - "@jest/core" "30.0.3" - "@jest/types" "30.0.1" + "@jest/core" "30.0.5" + "@jest/types" "30.0.5" import-local "^3.2.0" - jest-cli "30.0.3" + jest-cli "30.0.5" js-tokens@^4.0.0: version "4.0.0" @@ -2643,26 +2715,26 @@ lines-and-columns@^1.1.6: resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" integrity sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg== -lint-staged@16.1.2: - version "16.1.2" - resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-16.1.2.tgz#8cb84daa844f39c7a9790dd2c0caa327125ef059" - integrity sha512-sQKw2Si2g9KUZNY3XNvRuDq4UJqpHwF0/FQzZR2M7I5MvtpWvibikCjUVJzZdGE0ByurEl3KQNvsGetd1ty1/Q== +lint-staged@16.1.5: + version "16.1.5" + resolved "https://registry.yarnpkg.com/lint-staged/-/lint-staged-16.1.5.tgz#e102066b2c98157bad03afffb491d2329553e86b" + integrity sha512-uAeQQwByI6dfV7wpt/gVqg+jAPaSp8WwOA8kKC/dv1qw14oGpnpAisY65ibGHUGDUv0rYaZ8CAJZ/1U8hUvC2A== dependencies: - chalk "^5.4.1" + chalk "^5.5.0" commander "^14.0.0" debug "^4.4.1" lilconfig "^3.1.3" - listr2 "^8.3.3" + listr2 "^9.0.1" micromatch "^4.0.8" nano-spawn "^1.0.2" pidtree "^0.6.0" string-argv "^0.3.2" - yaml "^2.8.0" + yaml "^2.8.1" -listr2@^8.3.3: - version "8.3.3" - resolved "https://registry.yarnpkg.com/listr2/-/listr2-8.3.3.tgz#815fc8f738260ff220981bf9e866b3e11e8121bf" - integrity sha512-LWzX2KsqcB1wqQ4AHgYb4RsDXauQiqhjLk+6hjbaeHG4zpjjVAB6wC/gz6X0l+Du1cN3pUB5ZlrvTbhGSNnUQQ== +listr2@^9.0.1: + version "9.0.2" + resolved "https://registry.yarnpkg.com/listr2/-/listr2-9.0.2.tgz#007f8eaefac2b6de30731f6583ddb10430838354" + integrity sha512-VVd7cS6W+vLJu2wmq4QmfVj14Iep7cz4r/OWNk36Aq5ZOY7G8/BfCrQFexcwB1OIxB3yERiePfE/REBjEFulag== dependencies: cli-truncate "^4.0.0" colorette "^2.0.20" @@ -2794,13 +2866,6 @@ minimatch@^3.0.4, minimatch@^3.1.1, minimatch@^3.1.2: dependencies: brace-expansion "^1.1.7" -minimatch@^5.0.1: - version "5.1.6" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.1.6.tgz#1cfcb8cf5522ea69952cd2af95ae09477f122a96" - integrity sha512-lKwV/1brpG6mBUFHtb7NUmtABCb2WZZmm2wNiOA5hAb8VdCS4B3dtMWyvcoViccwAW/COERjXLt0zP1zXUN26g== - dependencies: - brace-expansion "^2.0.1" - minimatch@^9.0.4: version "9.0.5" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.5.tgz#d74f9dd6b57d83d8e98cfb82133b03978bc929e5" @@ -2808,6 +2873,11 @@ minimatch@^9.0.4: dependencies: brace-expansion "^2.0.1" +minimist@^1.2.5: + version "1.2.8" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" + integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== + "minipass@^5.0.0 || ^6.0.2 || ^7.0.0", minipass@^7.1.2: version "7.1.2" resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.1.2.tgz#93a9626ce5e5e66bd4db86849e7515e92340a707" @@ -2833,6 +2903,11 @@ natural-compare@^1.4.0: resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" integrity sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw== +neo-async@^2.6.2: + version "2.6.2" + resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" + integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== + node-int64@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/node-int64/-/node-int64-0.4.0.tgz#87a9065cdb355d3182d8f94ce11188b825c68a3b" @@ -3003,10 +3078,10 @@ prelude-ls@^1.2.1: resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g== -prettier@3.6.1: - version "3.6.1" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.6.1.tgz#cc3bce21c09a477b1e987b76ce9663925d86ae44" - integrity sha512-5xGWRa90Sp2+x1dQtNpIpeOQpTDBs9cZDmA/qs2vDNN2i18PdapqY7CmBeyLlMuGqXJRIOPaCaVZTLNQRWUH/A== +prettier@3.6.2: + version "3.6.2" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.6.2.tgz#ccda02a1003ebbb2bfda6f83a074978f608b9393" + integrity sha512-I7AIg5boAr5R0FFtJ6rCfD+LFsWHp81dolrFD8S79U9tb8Az2nGrJncnMSnys+bpQJfRUzqs9hnA81OAA3hCuQ== pretty-format@30.0.2, pretty-format@^30.0.0: version "30.0.2" @@ -3017,6 +3092,15 @@ pretty-format@30.0.2, pretty-format@^30.0.0: ansi-styles "^5.2.0" react-is "^18.3.1" +pretty-format@30.0.5: + version "30.0.5" + resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-30.0.5.tgz#e001649d472800396c1209684483e18a4d250360" + integrity sha512-D1tKtYvByrBkFLe2wHJl2bwMJIiT8rW+XA+TiataH79/FszLQMrpGEvzUVkzPau7OCO0Qnrhpe87PqtOAIB8Yw== + dependencies: + "@jest/schemas" "30.0.5" + ansi-styles "^5.2.0" + react-is "^18.3.1" + proxy-from-env@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2" @@ -3166,7 +3250,7 @@ source-map-support@0.5.13: buffer-from "^1.0.0" source-map "^0.6.0" -source-map@^0.6.0: +source-map@^0.6.0, source-map@^0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== @@ -3315,14 +3399,14 @@ ts-api-utils@^2.1.0: resolved "https://registry.yarnpkg.com/ts-api-utils/-/ts-api-utils-2.1.0.tgz#595f7094e46eed364c13fd23e75f9513d29baf91" integrity sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ== -ts-jest@29.4.0: - version "29.4.0" - resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-29.4.0.tgz#bef0ee98d94c83670af7462a1617bf2367a83740" - integrity sha512-d423TJMnJGu80/eSgfQ5w/R+0zFJvdtTxwtF9KzFFunOpSeD+79lHJQIiAhluJoyGRbvj9NZJsl9WjCUo0ND7Q== +ts-jest@29.4.1: + version "29.4.1" + resolved "https://registry.yarnpkg.com/ts-jest/-/ts-jest-29.4.1.tgz#42d33beb74657751d315efb9a871fe99e3b9b519" + integrity sha512-SaeUtjfpg9Uqu8IbeDKtdaS0g8lS6FT6OzM3ezrDfErPJPHNDo/Ey+VFGP1bQIDfagYDLyRpd7O15XpG1Es2Uw== dependencies: bs-logger "^0.2.6" - ejs "^3.1.10" fast-json-stable-stringify "^2.1.0" + handlebars "^4.7.8" json5 "^2.2.3" lodash.memoize "^4.1.2" make-error "^1.3.6" @@ -3362,19 +3446,25 @@ type-fest@^4.41.0: resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-4.41.0.tgz#6ae1c8e5731273c2bf1f58ad39cbae2c91a46c58" integrity sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA== -typescript-eslint@^8.15.0: - version "8.35.0" - resolved "https://registry.yarnpkg.com/typescript-eslint/-/typescript-eslint-8.35.0.tgz#65afcdde973614b8f44fa89293919420ca9b904e" - integrity sha512-uEnz70b7kBz6eg/j0Czy6K5NivaYopgxRjsnAJ2Fx5oTLo3wefTHIbL7AkQr1+7tJCRVpTs/wiM8JR/11Loq9A== +typescript-eslint@^8.40.0: + version "8.40.0" + resolved "https://registry.yarnpkg.com/typescript-eslint/-/typescript-eslint-8.40.0.tgz#27541748f3ca889c9698327bdacf815f7dc61804" + integrity sha512-Xvd2l+ZmFDPEt4oj1QEXzA4A2uUK6opvKu3eGN9aGjB8au02lIVcLyi375w94hHyejTOmzIU77L8ol2sRg9n7Q== dependencies: - "@typescript-eslint/eslint-plugin" "8.35.0" - "@typescript-eslint/parser" "8.35.0" - "@typescript-eslint/utils" "8.35.0" + "@typescript-eslint/eslint-plugin" "8.40.0" + "@typescript-eslint/parser" "8.40.0" + "@typescript-eslint/typescript-estree" "8.40.0" + "@typescript-eslint/utils" "8.40.0" + +typescript@5.9.2: + version "5.9.2" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.9.2.tgz#d93450cddec5154a2d5cabe3b8102b83316fb2a6" + integrity sha512-CWBzXQrc/qOkhidw1OzBTQuYRbfyxDXJMVJ1XNwUHGROVmuaeiEm3OslpZ1RV96d7SKKjZKrSJu3+t/xlw3R9A== -typescript@5.8.3: - version "5.8.3" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.8.3.tgz#92f8a3e5e3cf497356f4178c34cd65a7f5e8440e" - integrity sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ== +uglify-js@^3.1.4: + version "3.19.3" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.19.3.tgz#82315e9bbc6f2b25888858acd1fff8441035b77f" + integrity sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ== undici-types@~6.19.8: version "6.19.8" @@ -3456,6 +3546,11 @@ word-wrap@^1.2.5: resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.5.tgz#d2c45c6dd4fbce621a66f136cbe328afd0410b34" integrity sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA== +wordwrap@^1.0.0: + version "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": version "7.0.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" @@ -3515,10 +3610,10 @@ yallist@^3.0.2: resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== -yaml@^2.8.0: - version "2.8.0" - resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.8.0.tgz#15f8c9866211bdc2d3781a0890e44d4fa1a5fff6" - integrity sha512-4lLa/EcQCB0cJkyts+FpIRx5G/llPxfP6VQU5KByHEhLxY3IJCH0f0Hy1MHI8sClTvsIb8qwRJ6R/ZdlDJ/leQ== +yaml@^2.8.1: + version "2.8.1" + resolved "https://registry.yarnpkg.com/yaml/-/yaml-2.8.1.tgz#1870aa02b631f7e8328b93f8bc574fac5d6c4d79" + integrity sha512-lcYcMxX2PO9XMGvAJkJ3OsNMw+/7FKes7/hgerGUYWIoWu5j/+YQqcZr5JnPZWzOsEBgMbSbiSTn/dv/69Mkpw== yargs-parser@^21.1.1: version "21.1.1"