From 33750b22c12f793332c25590201ea8f9954a5e07 Mon Sep 17 00:00:00 2001 From: kirillgroshkov Date: Sat, 9 Nov 2024 09:24:39 +0100 Subject: [PATCH] fix: use branded UnixTimestamp --- src/adapter/file/file.db.ts | 7 +- src/adapter/inmemory/inMemory.db.ts | 5 +- src/commondao/common.dao.model.ts | 4 +- src/commondao/common.dao.ts | 14 +-- src/db.model.ts | 4 +- src/kv/commonKeyValueDB.ts | 4 +- src/kv/commonKeyValueDaoMemoCache.ts | 12 +- src/pipeline/dbPipelineBackup.ts | 6 +- src/pipeline/dbPipelineCopy.ts | 3 +- src/pipeline/dbPipelineRestore.ts | 3 +- src/testing/test.model.ts | 10 +- yarn.lock | 178 +++++++++++++-------------- 12 files changed, 134 insertions(+), 116 deletions(-) diff --git a/src/adapter/file/file.db.ts b/src/adapter/file/file.db.ts index bb4dc2e..91079bf 100644 --- a/src/adapter/file/file.db.ts +++ b/src/adapter/file/file.db.ts @@ -10,6 +10,7 @@ import { generateJsonSchemaFromData, JsonSchemaRootObject, ObjectWithId, + UnixTimestampMillis, } from '@naturalcycles/js-lib' import { dimGrey, readableCreate, ReadableTyped } from '@naturalcycles/nodejs-lib' import { @@ -240,14 +241,14 @@ export class FileDB extends BaseCommonDB implements CommonDB { return rows } - private logStarted(op: string): number { + private logStarted(op: string): UnixTimestampMillis { if (this.cfg.logStarted) { this.cfg.logger?.log(`>> ${op}`) } - return Date.now() + return Date.now() as UnixTimestampMillis } - private logFinished(started: number, op: string): void { + private logFinished(started: UnixTimestampMillis, op: string): void { if (!this.cfg.logFinished) return this.cfg.logger?.log(`<< ${op} ${dimGrey(`in ${_since(started)}`)}`) } diff --git a/src/adapter/inmemory/inMemory.db.ts b/src/adapter/inmemory/inMemory.db.ts index f65aa67..0529fad 100644 --- a/src/adapter/inmemory/inMemory.db.ts +++ b/src/adapter/inmemory/inMemory.db.ts @@ -16,6 +16,7 @@ import { ObjectWithId, pMap, StringMap, + UnixTimestampMillis, } from '@naturalcycles/js-lib' import { _pipeline, @@ -314,7 +315,7 @@ export class InMemoryDB implements CommonDB { _assert(this.cfg.persistenceEnabled, 'flushToDisk() called but persistenceEnabled=false') const { persistentStoragePath, persistZip } = this.cfg - const started = Date.now() + const started = Date.now() as UnixTimestampMillis await fs2.emptyDirAsync(persistentStoragePath) @@ -343,7 +344,7 @@ export class InMemoryDB implements CommonDB { _assert(this.cfg.persistenceEnabled, 'restoreFromDisk() called but persistenceEnabled=false') const { persistentStoragePath } = this.cfg - const started = Date.now() + const started = Date.now() as UnixTimestampMillis await fs2.ensureDirAsync(persistentStoragePath) diff --git a/src/commondao/common.dao.model.ts b/src/commondao/common.dao.model.ts index 6a51c62..39b73e3 100644 --- a/src/commondao/common.dao.model.ts +++ b/src/commondao/common.dao.model.ts @@ -3,7 +3,7 @@ import { CommonLogger, ErrorMode, Promisable, - UnixTimestampNumber, + UnixTimestamp, ZodError, ZodSchema, } from '@naturalcycles/js-lib' @@ -257,7 +257,7 @@ export interface CommonDaoReadOptions extends CommonDaoOptions { * If provided (and supported by the DB) - will read the data at that point in time (aka "Time machine" feature). * This feature is named PITR (point-in-time-recovery) query in Datastore. */ - readAt?: UnixTimestampNumber + readAt?: UnixTimestamp } export interface CommonDaoSaveOptions diff --git a/src/commondao/common.dao.ts b/src/commondao/common.dao.ts index b492322..a0a3684 100644 --- a/src/commondao/common.dao.ts +++ b/src/commondao/common.dao.ts @@ -23,7 +23,7 @@ import { pMap, SKIP, StringMap, - UnixTimestampMillisNumber, + UnixTimestampMillis, Unsaved, ZodSchema, ZodValidationError, @@ -1326,7 +1326,7 @@ export class CommonDao> ${table}.${op}`) } - return Date.now() + return Date.now() as UnixTimestampMillis } - protected logSaveStarted(op: string, items: any, table: string): UnixTimestampMillisNumber { + protected logSaveStarted(op: string, items: any, table: string): UnixTimestampMillis { if (this.cfg.logStarted) { const args: any[] = [`>> ${table}.${op}`] if (Array.isArray(items)) { @@ -1379,7 +1379,7 @@ export class CommonDao { @@ -26,7 +32,9 @@ export class CommonKeyValueDaoMemoCache implements AsyncMemoCache { - const opt = this.cfg.ttl ? { expireAt: localTime.nowUnix() + this.cfg.ttl } : undefined + const opt = this.cfg.ttl + ? { expireAt: (localTime.nowUnix() + this.cfg.ttl) as UnixTimestamp } + : undefined await this.cfg.dao.save(k, v, opt) } diff --git a/src/pipeline/dbPipelineBackup.ts b/src/pipeline/dbPipelineBackup.ts index d8ef9d5..07815fc 100644 --- a/src/pipeline/dbPipelineBackup.ts +++ b/src/pipeline/dbPipelineBackup.ts @@ -6,7 +6,7 @@ import { localTime, pMap, StringMap, - UnixTimestampNumber, + UnixTimestamp, } from '@naturalcycles/js-lib' import { _pipeline, @@ -61,13 +61,13 @@ export interface DBPipelineBackupOptions extends TransformLogProgressOptions { /** * If set - will do "incremental backup" (not full), only for entities that updated >= `sinceUpdated` */ - sinceUpdated?: UnixTimestampNumber + sinceUpdated?: UnixTimestamp /** * Map for each table a `sinceUpdated` timestamp, or `undefined`. * If set - will do "incremental backup" (not full), only for entities that updated >= `sinceUpdated` (on a per table basis) */ - sinceUpdatedPerTable?: StringMap + sinceUpdatedPerTable?: StringMap /** * By default, dbPipelineBackup creates a Query based on sinceUpdated. diff --git a/src/pipeline/dbPipelineCopy.ts b/src/pipeline/dbPipelineCopy.ts index 49185e8..3c962b3 100644 --- a/src/pipeline/dbPipelineCopy.ts +++ b/src/pipeline/dbPipelineCopy.ts @@ -5,6 +5,7 @@ import { ErrorMode, localTime, pMap, + UnixTimestamp, } from '@naturalcycles/js-lib' import { _pipeline, @@ -68,7 +69,7 @@ export interface DBPipelineCopyOptions extends TransformLogProgressOptions { * * @default undefined */ - sinceUpdated?: number + sinceUpdated?: UnixTimestamp /** * Optionally you can provide mapper that is going to run for each table. diff --git a/src/pipeline/dbPipelineRestore.ts b/src/pipeline/dbPipelineRestore.ts index 549a624..43eb46f 100644 --- a/src/pipeline/dbPipelineRestore.ts +++ b/src/pipeline/dbPipelineRestore.ts @@ -8,6 +8,7 @@ import { JsonSchemaObject, localTime, pMap, + UnixTimestamp, } from '@naturalcycles/js-lib' import { _pipeline, @@ -80,7 +81,7 @@ export interface DBPipelineRestoreOptions extends TransformLogProgressOptions { * * @default undefined */ - sinceUpdated?: number + sinceUpdated?: UnixTimestamp /** * @default false diff --git a/src/testing/test.model.ts b/src/testing/test.model.ts index e27184c..57f8887 100644 --- a/src/testing/test.model.ts +++ b/src/testing/test.model.ts @@ -1,4 +1,10 @@ -import { _range, BaseDBEntity, jsonSchema, JsonSchemaObject } from '@naturalcycles/js-lib' +import { + _range, + BaseDBEntity, + jsonSchema, + JsonSchemaObject, + UnixTimestamp, +} from '@naturalcycles/js-lib' import { baseDBEntitySchema, binarySchema, @@ -8,7 +14,7 @@ import { stringSchema, } from '@naturalcycles/nodejs-lib' -const MOCK_TS_2018_06_21 = 1529539200 +const MOCK_TS_2018_06_21 = 1529539200 as UnixTimestamp export const TEST_TABLE = 'TEST_TABLE' diff --git a/yarn.lock b/yarn.lock index c10be7b..f4c0a83 100644 --- a/yarn.lock +++ b/yarn.lock @@ -602,9 +602,9 @@ integrity sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA== "@humanwhocodes/retry@^0.4.0": - version "0.4.0" - resolved "https://registry.yarnpkg.com/@humanwhocodes/retry/-/retry-0.4.0.tgz#b57438cab2a2381b4b597b0ab17339be381bd755" - integrity sha512-xnRgu9DxZbkWak/te3fcytNyp8MTbuiZIaueg2rgEvBuN55n04nwLYLU9TX/VVlusc9L2ZNXi99nUFNkHXtr5g== + version "0.4.1" + resolved "https://registry.yarnpkg.com/@humanwhocodes/retry/-/retry-0.4.1.tgz#9a96ce501bc62df46c4031fbd970e3cc6b10f07b" + integrity sha512-c7hNEllBlenFTHBky65mhq8WD2kbN9Q6gk0bTk8lSBvc554jpXSkST1iePudpt7+A/AQvuHs9EMqjHDXMY1lrA== "@inquirer/checkbox@^4.0.1": version "4.0.1" @@ -998,9 +998,9 @@ benchmark "^2.1.4" "@naturalcycles/cli@^1.0.0": - version "1.7.0" - resolved "https://registry.yarnpkg.com/@naturalcycles/cli/-/cli-1.7.0.tgz#2df44b88a3b19a78a528d2def5d4009221b638e2" - integrity sha512-MKhIizahcWWsDfG83dAgkn5JyKcTMeaJKn3lq+a7pcSzk2T764hp4kRT77biGaWoMLl67+T5te7lp4d32AKKrw== + version "1.8.1" + resolved "https://registry.yarnpkg.com/@naturalcycles/cli/-/cli-1.8.1.tgz#9e5cd513495a9a94b6591d7776f0a50a66472bdc" + integrity sha512-WtZNBeIA8QDiHOx87jTan63PUoZSSMk/wPexhvZ5ls5xzc1eGXTpDh21mowFxJufjSnx/Pz01l4aTWytyzlyvA== dependencies: "@naturalcycles/nodejs-lib" "^13.0.1" dotenv "^16.0.0" @@ -1009,9 +1009,9 @@ typescript "^5.0.2" "@naturalcycles/dev-lib@^15.4.1": - version "15.26.0" - resolved "https://registry.yarnpkg.com/@naturalcycles/dev-lib/-/dev-lib-15.26.0.tgz#1c82a78716e4dd874d32668edf90cd7cd6cfbe93" - integrity sha512-qnPe2uk2AdOvi/iqewpdWq5HxAGAYQ9Nmk/7aTlwIAwD3SREYeAgEij/zEOYqAEQDaRjLYBfbtVVqec52wy5kg== + version "15.27.1" + resolved "https://registry.yarnpkg.com/@naturalcycles/dev-lib/-/dev-lib-15.27.1.tgz#8620e279e92f6b76bf01446094bfba1fa4482aa9" + integrity sha512-3mov6Hfd7BXpjXhuLi5MZC2bBiLfXNLDkbVsYAvYorx587w9sQMLtI7PvlnI+R370joO+/kAxjJFXIb3RaINCg== dependencies: "@biomejs/biome" "^1.8.3" "@commitlint/cli" "^19.0.0" @@ -1047,17 +1047,17 @@ yargs "^17.0.0" "@naturalcycles/js-lib@^14.0.0", "@naturalcycles/js-lib@^14.116.0", "@naturalcycles/js-lib@^14.244.0": - version "14.258.0" - resolved "https://registry.yarnpkg.com/@naturalcycles/js-lib/-/js-lib-14.258.0.tgz#4f28cef9d056212d3a6c1b6a8c83296589d4624e" - integrity sha512-VOSdLijY/YKG73FzSVssd9HGHvf1nMNu1c1IItzbZO/Mo41udA/mlQN7ix01O9Ltd+T2EeG3eDvVLS9zNmaXCg== + version "14.260.0" + resolved "https://registry.yarnpkg.com/@naturalcycles/js-lib/-/js-lib-14.260.0.tgz#1086a684ff4ccd028be053d9fa701d9cd5358dbf" + integrity sha512-GfkmD+xAP8GODx2kh++5MErmDMu50S/QAslbtoaKtpWrmFlfaMEtNpYLXLDYGjcj4NJRilbE9hwiM8Rizs5V2g== dependencies: tslib "^2.0.0" zod "^3.20.2" "@naturalcycles/nodejs-lib@^13.0.1", "@naturalcycles/nodejs-lib@^13.0.2", "@naturalcycles/nodejs-lib@^13.1.1": - version "13.35.0" - resolved "https://registry.yarnpkg.com/@naturalcycles/nodejs-lib/-/nodejs-lib-13.35.0.tgz#473f7ddfb3432e5a91d803950868c070fcba0e59" - integrity sha512-Dwil0k3oDjDBHKeEw6qxEiHUidoFHYlaxiLtUaADeTSa8FwgHKw6PIyax3pYcaITkJ0EQftpDTosTKhOr2UVRw== + version "13.36.0" + resolved "https://registry.yarnpkg.com/@naturalcycles/nodejs-lib/-/nodejs-lib-13.36.0.tgz#cea71bd4e88ba37d28cb4af9a12fd5e0678d4fd0" + integrity sha512-v6t2P2HGFhaCFN9iM5Fgvg7qnf7FAK76SatCLGoQtdozyUX7xnPj8xUe35ft2YGvmu1TaWU4UWqRKTJEWGwByA== dependencies: "@naturalcycles/js-lib" "^14.244.0" "@types/js-yaml" "^4.0.9" @@ -1268,9 +1268,9 @@ "@types/node" "*" "@types/node@*", "@types/node@^22.0.0", "@types/node@^22.1.0": - version "22.8.7" - resolved "https://registry.yarnpkg.com/@types/node/-/node-22.8.7.tgz#04ab7a073d95b4a6ee899f235d43f3c320a976f4" - integrity sha512-LidcG+2UeYIWcMuMUpBKOnryBWG/rnmOHQR5apjn8myTQcx3rinFRn7DcIFhMnS0PPFSC6OafdIKEad0lj6U0Q== + version "22.9.0" + resolved "https://registry.yarnpkg.com/@types/node/-/node-22.9.0.tgz#b7f16e5c3384788542c72dc3d561a7ceae2c0365" + integrity sha512-vuyHg81vvWA1Z1ELfvLko2c8f34gyA0zaic0+Rllc5lbCnbSyuvb2Oxpm6TAUAC/2xZN3QGqxBNggD1nNR2AfQ== dependencies: undici-types "~6.19.8" @@ -1318,62 +1318,62 @@ dependencies: "@types/yargs-parser" "*" -"@typescript-eslint/eslint-plugin@8.12.2": - version "8.12.2" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.12.2.tgz#c2ef660bb83fd1432368319312a2581fc92ccac1" - integrity sha512-gQxbxM8mcxBwaEmWdtLCIGLfixBMHhQjBqR8sVWNTPpcj45WlYL2IObS/DNMLH1DBP0n8qz+aiiLTGfopPEebw== +"@typescript-eslint/eslint-plugin@8.13.0": + version "8.13.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.13.0.tgz#650c50b8c795b5d092189f139f6d00535b5b0f3d" + integrity sha512-nQtBLiZYMUPkclSeC3id+x4uVd1SGtHuElTxL++SfP47jR0zfkZBJHc+gL4qPsgTuypz0k8Y2GheaDYn6Gy3rg== dependencies: "@eslint-community/regexpp" "^4.10.0" - "@typescript-eslint/scope-manager" "8.12.2" - "@typescript-eslint/type-utils" "8.12.2" - "@typescript-eslint/utils" "8.12.2" - "@typescript-eslint/visitor-keys" "8.12.2" + "@typescript-eslint/scope-manager" "8.13.0" + "@typescript-eslint/type-utils" "8.13.0" + "@typescript-eslint/utils" "8.13.0" + "@typescript-eslint/visitor-keys" "8.13.0" graphemer "^1.4.0" ignore "^5.3.1" natural-compare "^1.4.0" ts-api-utils "^1.3.0" -"@typescript-eslint/parser@8.12.2": - version "8.12.2" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-8.12.2.tgz#2e8173b34e1685e918b2d571c16c906d3747bad2" - integrity sha512-MrvlXNfGPLH3Z+r7Tk+Z5moZAc0dzdVjTgUgwsdGweH7lydysQsnSww3nAmsq8blFuRD5VRlAr9YdEFw3e6PBw== +"@typescript-eslint/parser@8.13.0": + version "8.13.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-8.13.0.tgz#ef76203b7cac515aa3ccc4f7ce5320dd61c46b29" + integrity sha512-w0xp+xGg8u/nONcGw1UXAr6cjCPU1w0XVyBs6Zqaj5eLmxkKQAByTdV/uGgNN5tVvN/kKpoQlP2cL7R+ajZZIQ== dependencies: - "@typescript-eslint/scope-manager" "8.12.2" - "@typescript-eslint/types" "8.12.2" - "@typescript-eslint/typescript-estree" "8.12.2" - "@typescript-eslint/visitor-keys" "8.12.2" + "@typescript-eslint/scope-manager" "8.13.0" + "@typescript-eslint/types" "8.13.0" + "@typescript-eslint/typescript-estree" "8.13.0" + "@typescript-eslint/visitor-keys" "8.13.0" debug "^4.3.4" -"@typescript-eslint/scope-manager@8.12.2": - version "8.12.2" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-8.12.2.tgz#6db0213745e6392c8e90fe9af5915e6da32eb94a" - integrity sha512-gPLpLtrj9aMHOvxJkSbDBmbRuYdtiEbnvO25bCMza3DhMjTQw0u7Y1M+YR5JPbMsXXnSPuCf5hfq0nEkQDL/JQ== +"@typescript-eslint/scope-manager@8.13.0": + version "8.13.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-8.13.0.tgz#2f4aed0b87d72360e64e4ea194b1fde14a59082e" + integrity sha512-XsGWww0odcUT0gJoBZ1DeulY1+jkaHUciUq4jKNv4cpInbvvrtDoyBH9rE/n2V29wQJPk8iCH1wipra9BhmiMA== dependencies: - "@typescript-eslint/types" "8.12.2" - "@typescript-eslint/visitor-keys" "8.12.2" + "@typescript-eslint/types" "8.13.0" + "@typescript-eslint/visitor-keys" "8.13.0" -"@typescript-eslint/type-utils@8.12.2": - version "8.12.2" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-8.12.2.tgz#132b0c52d45f6814e6f2e32416c7951ed480b016" - integrity sha512-bwuU4TAogPI+1q/IJSKuD4shBLc/d2vGcRT588q+jzayQyjVK2X6v/fbR4InY2U2sgf8MEvVCqEWUzYzgBNcGQ== +"@typescript-eslint/type-utils@8.13.0": + version "8.13.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-8.13.0.tgz#8c8fa68490dcb9ae1687ffc7de8fbe23c26417bd" + integrity sha512-Rqnn6xXTR316fP4D2pohZenJnp+NwQ1mo7/JM+J1LWZENSLkJI8ID8QNtlvFeb0HnFSK94D6q0cnMX6SbE5/vA== dependencies: - "@typescript-eslint/typescript-estree" "8.12.2" - "@typescript-eslint/utils" "8.12.2" + "@typescript-eslint/typescript-estree" "8.13.0" + "@typescript-eslint/utils" "8.13.0" debug "^4.3.4" ts-api-utils "^1.3.0" -"@typescript-eslint/types@8.12.2": - version "8.12.2" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-8.12.2.tgz#8d70098c0e90442495b53d0296acdca6d0f3f73c" - integrity sha512-VwDwMF1SZ7wPBUZwmMdnDJ6sIFk4K4s+ALKLP6aIQsISkPv8jhiw65sAK6SuWODN/ix+m+HgbYDkH+zLjrzvOA== +"@typescript-eslint/types@8.13.0": + version "8.13.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-8.13.0.tgz#3f35dead2b2491a04339370dcbcd17bbdfc204d8" + integrity sha512-4cyFErJetFLckcThRUFdReWJjVsPCqyBlJTi6IDEpc1GWCIIZRFxVppjWLIMcQhNGhdWJJRYFHpHoDWvMlDzng== -"@typescript-eslint/typescript-estree@8.12.2": - version "8.12.2" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-8.12.2.tgz#206df9b1cbff212aaa9401985ef99f04daa84da5" - integrity sha512-mME5MDwGe30Pq9zKPvyduyU86PH7aixwqYR2grTglAdB+AN8xXQ1vFGpYaUSJ5o5P/5znsSBeNcs5g5/2aQwow== +"@typescript-eslint/typescript-estree@8.13.0": + version "8.13.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-8.13.0.tgz#db8c93dd5437ca3ce417a255fb35ddc3c12c3e95" + integrity sha512-v7SCIGmVsRK2Cy/LTLGN22uea6SaUIlpBcO/gnMGT/7zPtxp90bphcGf4fyrCQl3ZtiBKqVTG32hb668oIYy1g== dependencies: - "@typescript-eslint/types" "8.12.2" - "@typescript-eslint/visitor-keys" "8.12.2" + "@typescript-eslint/types" "8.13.0" + "@typescript-eslint/visitor-keys" "8.13.0" debug "^4.3.4" fast-glob "^3.3.2" is-glob "^4.0.3" @@ -1381,22 +1381,22 @@ semver "^7.6.0" ts-api-utils "^1.3.0" -"@typescript-eslint/utils@8.12.2", "@typescript-eslint/utils@^6.0.0 || ^7.0.0 || ^8.0.0", "@typescript-eslint/utils@^8.1.0", "@typescript-eslint/utils@^8.12.2": - version "8.12.2" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-8.12.2.tgz#726cc9f49f5866605bd15bbc1768ffc15637930e" - integrity sha512-UTTuDIX3fkfAz6iSVa5rTuSfWIYZ6ATtEocQ/umkRSyC9O919lbZ8dcH7mysshrCdrAM03skJOEYaBugxN+M6A== +"@typescript-eslint/utils@8.13.0", "@typescript-eslint/utils@^6.0.0 || ^7.0.0 || ^8.0.0", "@typescript-eslint/utils@^8.1.0", "@typescript-eslint/utils@^8.12.2": + version "8.13.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-8.13.0.tgz#f6d40e8b5053dcaeabbd2e26463857abf27d62c0" + integrity sha512-A1EeYOND6Uv250nybnLZapeXpYMl8tkzYUxqmoKAWnI4sei3ihf2XdZVd+vVOmHGcp3t+P7yRrNsyyiXTvShFQ== dependencies: "@eslint-community/eslint-utils" "^4.4.0" - "@typescript-eslint/scope-manager" "8.12.2" - "@typescript-eslint/types" "8.12.2" - "@typescript-eslint/typescript-estree" "8.12.2" + "@typescript-eslint/scope-manager" "8.13.0" + "@typescript-eslint/types" "8.13.0" + "@typescript-eslint/typescript-estree" "8.13.0" -"@typescript-eslint/visitor-keys@8.12.2": - version "8.12.2" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-8.12.2.tgz#94d7410f78eb6d134b9fcabaf1eeedb910ba8c38" - integrity sha512-PChz8UaKQAVNHghsHcPyx1OMHoFRUEA7rJSK/mDhdq85bk+PLsUHUBqTQTFt18VJZbmxBovM65fezlheQRsSDA== +"@typescript-eslint/visitor-keys@8.13.0": + version "8.13.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-8.13.0.tgz#e97b0d92b266ef38a1faf40a74da289b66683a5b" + integrity sha512-7N/+lztJqH4Mrf0lb10R/CbI1EaAMMGyF5y0oJvFoAhafwgiRA7TXyd8TFn8FC8k5y2dTsYogg238qavRGNnlw== dependencies: - "@typescript-eslint/types" "8.12.2" + "@typescript-eslint/types" "8.13.0" eslint-visitor-keys "^3.4.3" JSONStream@^1.3.5: @@ -1749,9 +1749,9 @@ camelcase@^6.2.0: integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== caniuse-lite@^1.0.30001669: - version "1.0.30001677" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001677.tgz#27c2e2c637e007cfa864a16f7dfe7cde66b38b5f" - integrity sha512-fmfjsOlJUpMWu+mAAtZZZHz7UEwsUxIIvu1TJfO1HqFQvB/B+ii0xr9B5HpbZY/mC4XZ8SvjHJqtAY6pDPQEog== + version "1.0.30001679" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001679.tgz#18c573b72f72ba70822194f6c39e7888597f9e32" + integrity sha512-j2YqID/YwpLnKzCmBOS4tlZdWprXm3ZmQLBH9ZBXFOhoxLA46fwyBvx6toCBWBmnuwUY/qB3kEU6gFx8qgCroA== chalk@^4.0.0, chalk@^4.0.2, chalk@^4.1.0: version "4.1.2" @@ -1985,9 +1985,9 @@ cross-argv@^2.0.0: integrity sha512-YIaY9TR5Nxeb8SMdtrU8asWVM4jqJDNDYlKV21LxtYcfNJhp1kEsgSa6qXwXgzN0WQWGODps0+TlGp2xQSHwOg== cross-spawn@^7.0.2, cross-spawn@^7.0.3: - version "7.0.3" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" - integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== + version "7.0.5" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.5.tgz#910aac880ff5243da96b728bc6521a5f6c2f2f82" + integrity sha512-ZVJrKKYunU38/76t0RMOulHOnUcbU9GbpWKAOZ0mhjr7CX6FVrH+4FrAapSOekrgFQ3f/8gwMEuIft0aKq6Hug== dependencies: path-key "^3.1.0" shebang-command "^2.0.0" @@ -2093,9 +2093,9 @@ ejs@^3.1.10: jake "^10.8.5" electron-to-chromium@^1.5.41: - version "1.5.50" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.50.tgz#d9ba818da7b2b5ef1f3dd32bce7046feb7e93234" - integrity sha512-eMVObiUQ2LdgeO1F/ySTXsvqvxb6ZH2zPGaMYsWzRDdOddUa77tdmI0ltg+L16UpbWdhPmuF3wIQYyQq65WfZw== + version "1.5.55" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.55.tgz#73684752aa2e1aa49cafb355a41386c6637e76a9" + integrity sha512-6maZ2ASDOTBtjt9FhqYPRnbvKU5tjG0IN9SztUOWYw2AzNDNpKJYLJmlK0/En4Hs/aiWnB+JZ+gW19PIGszgKg== emittery@^0.13.1: version "0.13.1" @@ -2180,9 +2180,9 @@ eslint-plugin-import-x@^4.0.0: tslib "^2.6.3" eslint-plugin-jest@^28.0.0: - version "28.8.3" - resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-28.8.3.tgz#c5699bba0ad06090ad613535e4f1572f4c2567c0" - integrity sha512-HIQ3t9hASLKm2IhIOqnu+ifw7uLZkIlR7RYNv7fMcEi/p0CIiJmfriStQS2LDkgtY4nyLbIZAD+JL347Yc2ETQ== + version "28.9.0" + resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-28.9.0.tgz#19168dfaed124339cd2252c4c4d1ac3688aeb243" + integrity sha512-rLu1s1Wf96TgUUxSw6loVIkNtUjq1Re7A9QdCCHSohnvXEBAjuL420h0T/fMmkQlNsQP2GhQzEUpYHPfxBkvYQ== dependencies: "@typescript-eslint/utils" "^6.0.0 || ^7.0.0 || ^8.0.0" @@ -2648,9 +2648,9 @@ globals@^14.0.0: integrity sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ== globals@^15.8.0, globals@^15.9.0: - version "15.11.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-15.11.0.tgz#b96ed4c6998540c6fb824b24b5499216d2438d6e" - integrity sha512-yeyNSjdbyVaWurlwCpcA6XNBrHTMIeDdj0/hnvX/OLJ9ekOXYbLsLinH/MucQyGvNnXhidTdNhTtJaffL2sMfw== + version "15.12.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-15.12.0.tgz#1811872883ad8f41055b61457a130221297de5b5" + integrity sha512-1+gLErljJFhbOVyaetcwJiJ4+eLe45S2E7P5UiZ9xGfeq3ATQf5DOv9G7MH3gGbKQLkzmNh2DxfZwLdw+j6oTQ== globby@^11.0.0: version "11.1.0" @@ -4649,13 +4649,13 @@ type-fest@^0.8.1: integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== typescript-eslint@^8.0.0: - version "8.12.2" - resolved "https://registry.yarnpkg.com/typescript-eslint/-/typescript-eslint-8.12.2.tgz#e273d69af30b478b1c410f4159d675ce7925f9a7" - integrity sha512-UbuVUWSrHVR03q9CWx+JDHeO6B/Hr9p4U5lRH++5tq/EbFq1faYZe50ZSBePptgfIKLEti0aPQ3hFgnPVcd8ZQ== + version "8.13.0" + resolved "https://registry.yarnpkg.com/typescript-eslint/-/typescript-eslint-8.13.0.tgz#c7d92cc06188176c7d0e3825e10305b9c22fb102" + integrity sha512-vIMpDRJrQd70au2G8w34mPps0ezFSPMEX4pXkTzUkrNbRX+36ais2ksGWN0esZL+ZMaFJEneOBHzCgSqle7DHw== dependencies: - "@typescript-eslint/eslint-plugin" "8.12.2" - "@typescript-eslint/parser" "8.12.2" - "@typescript-eslint/utils" "8.12.2" + "@typescript-eslint/eslint-plugin" "8.13.0" + "@typescript-eslint/parser" "8.13.0" + "@typescript-eslint/utils" "8.13.0" typescript@^5.0.2: version "5.6.3"