From a1cc3b15b3f08038ca3a1d8e51fefe683ecc840e Mon Sep 17 00:00:00 2001 From: Naomi Date: Mon, 9 Dec 2024 13:32:58 -0800 Subject: [PATCH] chore: big ol' dependency update (#738) * chore: update dependencies * chore: update node * chore: use it instead of test * feat: last lint issues --- .github/workflows/node-checks.yaml | 2 +- eslint.config.js | 5 +- package.json | 14 +- pnpm-lock.yaml | 1777 ++++++++++++----- src/modules/formatter.ts | 1 - src/modules/generateProfileImage.ts | 37 +- src/server/serve.ts | 1 - test/commands/author.spec.ts | 4 +- test/commands/community.spec.ts | 18 +- test/commands/github.spec.ts | 12 +- test/commands/management.spec.ts | 8 +- test/commands/moderation.spec.ts | 20 +- test/commands/report.spec.ts | 4 +- .../community/handleCodeOfConduct.spec.ts | 16 +- .../community/handleContribute.spec.ts | 16 +- .../subcommands/community/handleForum.spec.ts | 4 +- .../community/handleLeaderboard.spec.ts | 4 +- .../community/handleProfile.spec.ts | 4 +- .../subcommands/community/handleQuote.spec.ts | 4 +- .../community/handleTruism.spec.ts | 4 +- .../github/handleAddLabels.spec.ts | 10 +- .../subcommands/github/handleClose.spec.ts | 10 +- .../subcommands/github/handleComment.spec.ts | 10 +- .../github/handleSyncLabels.spec.ts | 10 +- .../management/handlePrivate.spec.ts | 10 +- .../subcommands/management/handleRole.spec.ts | 12 +- .../subcommands/moderation/handleBan.spec.ts | 10 +- .../moderation/handleHistory.spec.ts | 10 +- .../subcommands/moderation/handleKick.spec.ts | 10 +- .../subcommands/moderation/handleMute.spec.ts | 10 +- .../moderation/handlePrune.spec.ts | 12 +- .../moderation/handleUnban.spec.ts | 10 +- .../moderation/handleUnmute.spec.ts | 10 +- .../subcommands/moderation/handleWarn.spec.ts | 10 +- test/commands/supporter.spec.ts | 4 +- test/commands/translator.spec.ts | 4 +- test/commands/userSettings.spec.ts | 4 +- test/config/badges.spec.ts | 4 +- test/config/intentOptions.spec.ts | 4 +- test/config/languages.spec.ts | 4 +- test/config/levelScale.spec.ts | 4 +- test/config/pullComments.spec.ts | 4 +- test/config/roles.spec.ts | 6 +- test/config/tags.spec.ts | 22 +- test/config/truisms.spec.ts | 4 +- test/contexts/bookmark.spec.ts | 6 +- test/contexts/format.spec.ts | 6 +- test/contexts/report.spec.ts | 6 +- test/contexts/snippet.spec.ts | 4 +- test/contexts/translate.spec.ts | 6 +- test/database/connectDatabase.spec.ts | 4 +- .../handleGuildScheduledEvents.spec.ts | 4 +- .../handlers/handleInteractionCreate.spec.ts | 4 +- test/events/handlers/handleMemberAdd.spec.ts | 4 +- .../handlers/handleMemberRemove.spec.ts | 4 +- .../handlers/handleMessageCreate.spec.ts | 4 +- .../handlers/handleMessageDelete.spec.ts | 4 +- .../events/handlers/handleMessageEdit.spec.ts | 4 +- test/events/handlers/handleReady.spec.ts | 4 +- .../handlers/handleThreadCreate.spec.ts | 4 +- .../handlers/handleVoiceStateUpdate.spec.ts | 4 +- test/events/registerEvents.spec.ts | 6 +- test/modules/addFormatting.spec.ts | 26 +- test/modules/closePrivateChannel.spec.ts | 4 +- test/modules/createLogFile.spec.ts | 6 +- test/modules/formatCodeblock.spec.ts | 8 +- test/modules/formatter.spec.ts | 22 +- test/modules/generateCertSvg.spec.ts | 4 +- test/modules/generateConfig.spec.ts | 8 +- test/modules/generateLogs.spec.ts | 6 +- test/modules/generateProfileImage.spec.ts | 4 +- test/modules/isSupportedByPrettier.spec.ts | 10 +- test/modules/levelListener.spec.ts | 4 +- test/modules/loadRoles.spec.ts | 4 +- test/modules/messageCounter.spec.ts | 4 +- test/modules/reactionRoleClick.spec.ts | 4 +- test/modules/send100DaysOfCode.spec.ts | 4 +- test/modules/sendModerationDm.spec.ts | 4 +- test/modules/settingsValidation.spec.ts | 6 +- test/modules/updateHistory.spec.ts | 8 +- test/utils/calculateMilliseconds.spec.ts | 18 +- test/utils/customSubstring.spec.ts | 8 +- test/utils/errorHandler.spec.ts | 4 +- test/utils/fetchLearnRecord.spec.ts | 4 +- test/utils/formatText.spec.ts | 36 +- test/utils/generateDiff.spec.ts | 12 +- test/utils/isModerator.spec.ts | 8 +- test/utils/loadCommands.spec.ts | 8 +- test/utils/loadContexts.spec.ts | 8 +- test/utils/loadQuotes.spec.ts | 6 +- test/utils/logHandler.spec.ts | 6 +- test/utils/registerCommands.spec.ts | 6 +- 92 files changed, 1666 insertions(+), 835 deletions(-) diff --git a/.github/workflows/node-checks.yaml b/.github/workflows/node-checks.yaml index 6dc19a7a..442d4bca 100644 --- a/.github/workflows/node-checks.yaml +++ b/.github/workflows/node-checks.yaml @@ -14,7 +14,7 @@ jobs: strategy: matrix: - node-version: [20.x] + node-version: [22.x] steps: - name: Checkout Source Files diff --git a/eslint.config.js b/eslint.config.js index 36800f59..6ed933e2 100644 --- a/eslint.config.js +++ b/eslint.config.js @@ -34,7 +34,10 @@ export default [ { files: ["test/**/*.spec.ts"], rules: { - "@typescript-eslint/consistent-type-assertions": "off" + "@typescript-eslint/consistent-type-assertions": "off", + "max-nested-callbacks": "off", + // TODO: migrate the tests and turn these on... + "vitest/prefer-expect-assertions": "off", } } ]; diff --git a/package.json b/package.json index e7533d07..f82f3876 100644 --- a/package.json +++ b/package.json @@ -17,12 +17,12 @@ "db:deploy": "prisma db push" }, "engines": { - "node": "20", - "pnpm": "9" + "node": ">=22", + "pnpm": ">=9" }, "license": "MIT", "dependencies": { - "@prisma/client": "5.22.0", + "@prisma/client": "6.0.1", "@tryghost/admin-api": "1.13.12", "deepl-node": "1.15.0", "diff": "7.0.0", @@ -41,16 +41,16 @@ "winston": "3.17.0" }, "devDependencies": { - "@nhcarrigan/eslint-config": "4.0.0", + "@nhcarrigan/eslint-config": "5.0.0", "@nhcarrigan/typescript-config": "4.0.0", "@types/diff": "6.0.0", - "@types/node": "22.9.0", + "@types/node": "22.10.1", "@types/node-schedule": "2.1.7", "@types/string-similarity": "4.0.2", "@vitest/coverage-istanbul": "2.1.8", "discordjs-testing": "0.2.0", - "eslint": "9.14.0", - "prisma": "5.22.0", + "eslint": "9.16.0", + "prisma": "6.0.1", "rimraf": "6.0.1", "tsx": "4.19.2", "typescript": "5.7.2", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a32bcdf2..9bb9f53b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -9,8 +9,8 @@ importers: .: dependencies: '@prisma/client': - specifier: 5.22.0 - version: 5.22.0(prisma@5.22.0) + specifier: 6.0.1 + version: 6.0.1(prisma@6.0.1) '@tryghost/admin-api': specifier: 1.13.12 version: 1.13.12 @@ -61,8 +61,8 @@ importers: version: 3.17.0 devDependencies: '@nhcarrigan/eslint-config': - specifier: 4.0.0 - version: 4.0.0(@types/eslint@8.56.11)(eslint@9.14.0)(prettier@3.4.2)(typescript@5.7.2) + specifier: 5.0.0 + version: 5.0.0(@typescript-eslint/utils@8.18.0(eslint@9.16.0)(typescript@5.7.2))(eslint@9.16.0)(playwright@1.49.0)(react@19.0.0)(typescript@5.7.2)(vitest@2.1.8(@types/node@22.10.1)) '@nhcarrigan/typescript-config': specifier: 4.0.0 version: 4.0.0(typescript@5.7.2) @@ -70,8 +70,8 @@ importers: specifier: 6.0.0 version: 6.0.0 '@types/node': - specifier: 22.9.0 - version: 22.9.0 + specifier: 22.10.1 + version: 22.10.1 '@types/node-schedule': specifier: 2.1.7 version: 2.1.7 @@ -80,16 +80,16 @@ importers: version: 4.0.2 '@vitest/coverage-istanbul': specifier: 2.1.8 - version: 2.1.8(vitest@2.1.8(@types/node@22.9.0)) + version: 2.1.8(vitest@2.1.8(@types/node@22.10.1)) discordjs-testing: specifier: 0.2.0 version: 0.2.0(discord.js@14.16.3) eslint: - specifier: 9.14.0 - version: 9.14.0 + specifier: 9.16.0 + version: 9.16.0 prisma: - specifier: 5.22.0 - version: 5.22.0 + specifier: 6.0.1 + version: 6.0.1 rimraf: specifier: 6.0.1 version: 6.0.1 @@ -101,7 +101,7 @@ importers: version: 5.7.2 vitest: specifier: 2.1.8 - version: 2.1.8(@types/node@22.9.0) + version: 2.1.8(@types/node@22.10.1) packages: @@ -239,8 +239,8 @@ packages: resolution: {integrity: sha512-PZ+vLpxGCRtmr2RMkqh8Zp+BenUaJqlS6xhgWKEZcgC/vfHLEzpHtKkB0sl3nZWpwtcKk6YWy+pU3okL2I97FA==} engines: {node: '>=16.11.0'} - '@es-joy/jsdoccomment@0.46.0': - resolution: {integrity: sha512-C3Axuq1xd/9VqFZpW4YAzOx5O9q/LP46uIQy/iNDpHG3fmPa6TBtvfglMCs3RBiBxAIi0Go97r8+jvTt55XMyQ==} + '@es-joy/jsdoccomment@0.49.0': + resolution: {integrity: sha512-xjZTSFgECpb9Ohuk5yMX5RhUEbfeQcuOp8IF60e+wyzWEF0M5xeSgqsfLtvPEX8BIyOX9saZqzuGPmZ8oWc+5Q==} engines: {node: '>=16'} '@esbuild/aix-ppc64@0.21.5': @@ -535,36 +535,37 @@ packages: resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} - '@eslint/compat@1.1.1': - resolution: {integrity: sha512-lpHyRyplhGPL5mGEh6M9O5nnKk0Gz4bFI+Zu6tKlPpDUN7XshWvH9C/px4UVm87IAANE0W81CEsNGbS1KlzXpA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - '@eslint/config-array@0.18.0': - resolution: {integrity: sha512-fTxvnS1sRMu3+JjXwJG0j/i4RT9u4qJ+lqS/yCGap4lH4zZGzQ7tu+xZqQmcMZq5OBZDL4QRxQzRjkWcGt8IVw==} + '@eslint/compat@1.2.4': + resolution: {integrity: sha512-S8ZdQj/N69YAtuqFt7653jwcvuUj131+6qGLUyDqfDg1OIoBQ66OCuXC473YQfO2AaxITTutiRQiDwoo7ZLYyg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^9.10.0 + peerDependenciesMeta: + eslint: + optional: true - '@eslint/core@0.7.0': - resolution: {integrity: sha512-xp5Jirz5DyPYlPiKat8jaq0EmYvDXKKpzTbxXMpT9eqlRJkRKIz9AGMdlvYjih+im+QlhWrpvVjl8IPC/lHlUw==} + '@eslint/config-array@0.19.1': + resolution: {integrity: sha512-fo6Mtm5mWyKjA/Chy1BYTdn5mGJoDNjC7C64ug20ADsRDGrA85bN3uK3MaKbeRkRuuIEAR5N33Jr1pbm411/PA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/eslintrc@3.1.0': - resolution: {integrity: sha512-4Bfj15dVJdoy3RfZmmo86RK1Fwzn6SstsvK9JS+BaVKqC6QQQQyXekNaC+g+LKNgkQ+2VhGAzm6hO40AhMR3zQ==} + '@eslint/core@0.9.1': + resolution: {integrity: sha512-GuUdqkyyzQI5RMIWkHhvTWLCyLo1jNK3vzkSyaExH5kHPDHcuL2VOpHjmMY+y3+NC69qAKToBqldTBgYeLSr9Q==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/js@9.14.0': - resolution: {integrity: sha512-pFoEtFWCPyDOl+C6Ift+wC7Ro89otjigCf5vcuWqWgqNSQbRrpjSvdeE6ofLz4dHmyxD5f7gIdGT4+p36L6Twg==} + '@eslint/eslintrc@3.2.0': + resolution: {integrity: sha512-grOjVNN8P3hjJn/eIETF1wwd12DdnwFDoyceUJLYYdkpbwq3nLi+4fqrTAONx7XDALqlL220wC/RHSC/QTI/0w==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/js@9.7.0': - resolution: {integrity: sha512-ChuWDQenef8OSFnvuxv0TCVxEwmu3+hPNKvM9B34qpM0rDRbjL8t5QkQeHHeAfsKQjuH9wS82WeCi1J/owatng==} + '@eslint/js@9.16.0': + resolution: {integrity: sha512-tw2HxzQkrbeuvyj1tG2Yqq+0H9wGoI2IMk4EOsQeX+vmd75FtJAzf+gTA69WF+baUKRYQ3x2kbLE08js5OsTVg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/object-schema@2.1.4': - resolution: {integrity: sha512-BsWiH1yFGjXXS2yvrf5LyuoSIIbPrGUWob917o+BTKuZ7qJdxX8aJLRxs1fS9n6r7vESrq1OUqb68dANcFXuQQ==} + '@eslint/object-schema@2.1.5': + resolution: {integrity: sha512-o0bhxnL89h5Bae5T318nFoFzGy+YE5i/gGkoPAgkmTVdRKTiv3p8JHevPiPaMwoloKfEiiaHlawCqaZMqRm+XQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/plugin-kit@0.2.0': - resolution: {integrity: sha512-vH9PiIMMwvhCx31Af3HiGzsVNULDbyVkHXwlemn/B0TFj/00ho3y55efXrUZTfQipxoHC5u4xq6zblww1zm1Ig==} + '@eslint/plugin-kit@0.2.4': + resolution: {integrity: sha512-zSkKow6H5Kdm0ZUQUB2kV5JIXqoG0+uH5YADhaEHswm664N9Db8dXSi0nMJpacpMf+MyyglF1vnZohpEg5yUtg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@fastify/ajv-compiler@4.0.1': @@ -633,12 +634,15 @@ packages: '@mongodb-js/saslprep@1.1.9': resolution: {integrity: sha512-tVkljjeEaAhCqTzajSdgbQ6gE6f3oneVwa3iXR6csiEwXXOFsiC6Uh9iAjAhXPtqa/XMDHWjjeNH/77m/Yq2dw==} - '@nhcarrigan/eslint-config@4.0.0': - resolution: {integrity: sha512-zVJjnb39OjV0N5ot5v6z3RDUdFBVX4qW6NRc8c9OPHxGlayX27g7sASZvjwjSoLUP9Twb9aX9JW/OWOHgMm0AQ==} - engines: {node: '20', pnpm: '9'} + '@nhcarrigan/eslint-config@5.0.0': + resolution: {integrity: sha512-J4AgB+S/3BgK90rbpsgi2TDnn0RDu22lVDLFxwHq31UbNagYaGradBFUprhzmfB0FGW3nz3TauHR9xgYCDVPPQ==} + engines: {node: '>=22', pnpm: '>=9'} peerDependencies: eslint: '>=9' + playwright: '>=1' + react: '>=18' typescript: '>=5' + vitest: '>=2' '@nhcarrigan/typescript-config@4.0.0': resolution: {integrity: sha512-969HVha7A/Sg77fuMwOm6p14a+7C5iE6g55OD71srqwKIgksQl+Ex/hAI/pyzTQFDQ/FBJbpnHlR4Ov25QV/rw==} @@ -773,29 +777,29 @@ packages: resolution: {integrity: sha512-cq8o4cWH0ibXh9VGi5P20Tu9XF/0fFXl9EUinr9QfTM7a7p0oTA4iJRCQWppXR1Pg8dSM0UCItCkPwsk9qWWYA==} engines: {node: ^12.20.0 || ^14.18.0 || >=16.0.0} - '@prisma/client@5.22.0': - resolution: {integrity: sha512-M0SVXfyHnQREBKxCgyo7sffrKttwE6R8PMq330MIUF0pTwjUhLbW84pFDlf06B27XyCR++VtjugEnIHdr07SVA==} - engines: {node: '>=16.13'} + '@prisma/client@6.0.1': + resolution: {integrity: sha512-60w7kL6bUxz7M6Gs/V+OWMhwy94FshpngVmOY05TmGD0Lhk+Ac0ZgtjlL6Wll9TD4G03t4Sq1wZekNVy+Xdlbg==} + engines: {node: '>=18.18'} peerDependencies: prisma: '*' peerDependenciesMeta: prisma: optional: true - '@prisma/debug@5.22.0': - resolution: {integrity: sha512-AUt44v3YJeggO2ZU5BkXI7M4hu9BF2zzH2iF2V5pyXT/lRTyWiElZ7It+bRH1EshoMRxHgpYg4VB6rCM+mG5jQ==} + '@prisma/debug@6.0.1': + resolution: {integrity: sha512-jQylgSOf7ibTVxqBacnAlVGvek6fQxJIYCQOeX2KexsfypNzXjJQSS2o5s+Mjj2Np93iSOQUaw6TvPj8syhG4w==} - '@prisma/engines-version@5.22.0-44.605197351a3c8bdd595af2d2a9bc3025bca48ea2': - resolution: {integrity: sha512-2PTmxFR2yHW/eB3uqWtcgRcgAbG1rwG9ZriSvQw+nnb7c4uCr3RAcGMb6/zfE88SKlC1Nj2ziUvc96Z379mHgQ==} + '@prisma/engines-version@5.23.0-27.5dbef10bdbfb579e07d35cc85fb1518d357cb99e': + resolution: {integrity: sha512-JmIds0Q2/vsOmnuTJYxY4LE+sajqjYKhLtdOT6y4imojqv5d/aeVEfbBGC74t8Be1uSp0OP8lxIj2OqoKbLsfQ==} - '@prisma/engines@5.22.0': - resolution: {integrity: sha512-UNjfslWhAt06kVL3CjkuYpHAWSO6L4kDCVPegV6itt7nD1kSJavd3vhgAEhjglLJJKEdJ7oIqDJ+yHk6qO8gPA==} + '@prisma/engines@6.0.1': + resolution: {integrity: sha512-4hxzI+YQIR2uuDyVsDooFZGu5AtixbvM2psp+iayDZ4hRrAHo/YwgA17N23UWq7G6gRu18NvuNMb48qjP3DPQw==} - '@prisma/fetch-engine@5.22.0': - resolution: {integrity: sha512-bkrD/Mc2fSvkQBV5EpoFcZ87AvOgDxbG99488a5cexp5Ccny+UM6MAe/UFkUC0wLYD9+9befNOqGiIJhhq+HbA==} + '@prisma/fetch-engine@6.0.1': + resolution: {integrity: sha512-T36bWFVGeGYYSyYOj9d+O9G3sBC+pAyMC+jc45iSL63/Haq1GrYjQPgPMxrEj9m739taXrupoysRedQ+VyvM/Q==} - '@prisma/get-platform@5.22.0': - resolution: {integrity: sha512-pHhpQdr1UPFpt+zFfnPazhulaZYCUqeIcPpJViYoq9R+D/yw4fjE+CtnsnKzPYm0ddUbeXUzjGVGIRVgPDCk4Q==} + '@prisma/get-platform@6.0.1': + resolution: {integrity: sha512-zspC9vlxAqx4E6epMPMLLBMED2VD8axDe8sPnquZ8GOsn6tiacWK0oxrGK4UAHYzYUVuMVUApJbdXB2dFpLhvg==} '@puppeteer/browsers@2.3.1': resolution: {integrity: sha512-uK7o3hHkK+naEobMSJ+2ySYyXtQkBxIH8Gn4MK9ciePjNV+Pf+PgY/W7iPzn2MTjl3stcYB5AlcTmPYw7AXDwA==} @@ -882,6 +886,9 @@ packages: cpu: [x64] os: [win32] + '@rtsao/scc@1.1.0': + resolution: {integrity: sha512-zt6OdqaDoOnJ1ZYsCYGt9YmWzDXl4vQdKTyJev62gFhRGKdx7mcT54V9KIjg+d2wi9EXsPvAPKe7i7WjfVWB8g==} + '@sapphire/async-queue@1.5.3': resolution: {integrity: sha512-x7zadcfJGxFka1Q3f8gCts1F0xMwCKbZweM85xECGI0hBTeIZJGGCrHgLggihBoprlQ/hBmDR5LKfIPqnmHM3w==} engines: {node: '>=v14.0.0', npm: '>=7.0.0'} @@ -898,31 +905,8 @@ packages: resolution: {integrity: sha512-jjmJywLAFoWeBi1W7994zZyiNWPIiqRRNAmSERxyg93xRGzNYvGjlZ0gR6x0F4gPRi2+0O6S71kOZYyr3cxaIQ==} engines: {node: '>=v14.0.0', npm: '>=7.0.0'} - '@stylistic/eslint-plugin-js@2.3.0': - resolution: {integrity: sha512-lQwoiYb0Fs6Yc5QS3uT8+T9CPKK2Eoxc3H8EnYJgM26v/DgtW+1lvy2WNgyBflU+ThShZaHm3a6CdD9QeKx23w==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: '>=8.40.0' - - '@stylistic/eslint-plugin-jsx@2.3.0': - resolution: {integrity: sha512-tsQ0IEKB195H6X9A4iUSgLLLKBc8gUBWkBIU8tp1/3g2l8stu+PtMQVV/VmK1+3bem5FJCyvfcZIQ/WF1fsizA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: '>=8.40.0' - - '@stylistic/eslint-plugin-plus@2.3.0': - resolution: {integrity: sha512-xboPWGUU5yaPlR+WR57GwXEuY4PSlPqA0C3IdNA/+1o2MuBi95XgDJcZiJ9N+aXsqBXAPIpFFb+WQ7QEHo4f7g==} - peerDependencies: - eslint: '*' - - '@stylistic/eslint-plugin-ts@2.3.0': - resolution: {integrity: sha512-wqOR38/uz/0XPnHX68ftp8sNMSAqnYGjovOTN7w00xnjS6Lxr3Sk7q6AaxWWqbMvOj7V2fQiMC5HWAbTruJsCg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - peerDependencies: - eslint: '>=8.40.0' - - '@stylistic/eslint-plugin@2.3.0': - resolution: {integrity: sha512-rtiz6u5gRyyEZp36FcF1/gHJbsbT3qAgXZ1qkad6Nr/xJ9wrSJkiSFFQhpYVTIZ7FJNRJurEcumZDCwN9dEI4g==} + '@stylistic/eslint-plugin@2.12.0': + resolution: {integrity: sha512-IvD2WXbOoSp0zNpyYbjdSyEjZtut78RYfj2WIlbChE7HFuposTK5X1hc5+4AyqYcjLXYdD5oo/sJtqMGFNRb1w==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: '>=8.40.0' @@ -939,9 +923,6 @@ packages: '@types/diff@6.0.0': resolution: {integrity: sha512-dhVCYGv3ZSbzmQaBSagrv1WJ6rXCdkyTcDyoNu1MD8JohI7pR7k8wdZEm+mvdxRKXyHVwckFzWU1vJc+Z29MlA==} - '@types/eslint@8.56.11': - resolution: {integrity: sha512-sVBpJMf7UPo/wGecYOpk2aQya2VUGeHhe38WG7/mN5FufNSubf5VT9Uh9Uyp8/eLJpu1/tuhJ/qTo4mhSB4V4Q==} - '@types/estree@1.0.5': resolution: {integrity: sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw==} @@ -957,8 +938,8 @@ packages: '@types/node-schedule@2.1.7': resolution: {integrity: sha512-G7Z3R9H7r3TowoH6D2pkzUHPhcJrDF4Jz1JOQ80AX0K2DWTHoN9VC94XzFAPNMdbW9TBzMZ3LjpFi7RYdbxtXA==} - '@types/node@22.9.0': - resolution: {integrity: sha512-vuyHg81vvWA1Z1ELfvLko2c8f34gyA0zaic0+Rllc5lbCnbSyuvb2Oxpm6TAUAC/2xZN3QGqxBNggD1nNR2AfQ==} + '@types/node@22.10.1': + resolution: {integrity: sha512-qKgsUwfHZV2WCWLAnVP1JqnpE6Im6h3Y0+fYgMTasNQ7V++CBX5OT1as0g0f+OyubbFqhf6XVNIsmN4IIhEgGQ==} '@types/normalize-package-data@2.4.4': resolution: {integrity: sha512-37i+OaWTh9qeK4LSHPsyRC7NahnGotNuZvjLSgcPzblpHB3rrCJxAOgI5gCdKm7coonsaX1Of0ILiTcnZjbfxA==} @@ -981,8 +962,8 @@ packages: '@types/yauzl@2.10.3': resolution: {integrity: sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q==} - '@typescript-eslint/eslint-plugin@8.0.0-alpha.62': - resolution: {integrity: sha512-Z6AZHCuXN1JZyRBnspavVLerdgpUZjGf9aXxeglVZuKHB9/aMMyyvDxpMlmapVaD2T98Bhfgk48P9ir+KCS8nQ==} + '@typescript-eslint/eslint-plugin@8.17.0': + resolution: {integrity: sha512-HU1KAdW3Tt8zQkdvNoIijfWDMvdSweFYm4hWh+KwhPstv+sCmWb89hCIP8msFm9N1R/ooh9honpSuvqKWlYy3w==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0 @@ -992,8 +973,8 @@ packages: typescript: optional: true - '@typescript-eslint/parser@8.0.0-alpha.62': - resolution: {integrity: sha512-Pj8KH5FlwhUU0TUIg2xRmgW6GMO4RMDZLrqq6ziBfv5uGUJLUGJLrBRIvljquYqbeMApKObCryj2ciGTwLqpjw==} + '@typescript-eslint/parser@8.17.0': + resolution: {integrity: sha512-Drp39TXuUlD49F7ilHHCG7TTg8IkA+hxCuULdmzWYICxGXvDXmDmWEjJYZQYgf6l/TFfYNE167m7isnc3xlIEg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -1006,14 +987,19 @@ packages: resolution: {integrity: sha512-0P2jTTqyxWp9HiKLu/Vemr2Rg1Xb5B7uHItdVZ6iAenXmPo4SZ86yOPCJwMqpCyaMiEHTNqizHfsbmCFT1x9SA==} engines: {node: ^18.18.0 || >=20.0.0} - '@typescript-eslint/scope-manager@8.0.0-alpha.62': - resolution: {integrity: sha512-a73vOBkgSNnKUQob03Rv5D8Ydg3JJnN/UCxey6Rncfme5m1SCxp8x4xa5pJw1wkeeripKkeF8iccslRNPKU6DQ==} + '@typescript-eslint/scope-manager@8.17.0': + resolution: {integrity: sha512-/ewp4XjvnxaREtqsZjF4Mfn078RD/9GmiEAtTeLQ7yFdKnqwTOgRMSvFz4et9U5RiJQ15WTGXPLj89zGusvxBg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@typescript-eslint/scope-manager@8.18.0': + resolution: {integrity: sha512-PNGcHop0jkK2WVYGotk/hxj+UFLhXtGPiGtiaWgVBVP1jhMoMCHlTyJA+hEj4rszoSdLTK3fN4oOatrL0Cp+Xw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/type-utils@8.0.0-alpha.62': - resolution: {integrity: sha512-LTxVHmo+ztNtlNnVrQVLdO3dlnKOOdjH0yfS4qP0wMufVZfQVB9TAsXfiAurmvNh+3SWoxRSl3L8I3QHgAoUmA==} + '@typescript-eslint/type-utils@8.17.0': + resolution: {integrity: sha512-q38llWJYPd63rRnJ6wY/ZQqIzPrBCkPdpIsaCfkR3Q4t3p6sb422zougfad4TFW9+ElIFLVDzWGiGAfbb/v2qw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: + eslint: ^8.57.0 || ^9.0.0 typescript: '*' peerDependenciesMeta: typescript: @@ -1023,8 +1009,12 @@ packages: resolution: {integrity: sha512-a29Ir0EbyKTKHnZWbNsrc/gqfIBqYPwj3F2M+jWE/9bqfEHg0AMtXzkbUkOG6QgEScxh2+Pz9OXe11jHDnHR7A==} engines: {node: ^18.18.0 || >=20.0.0} - '@typescript-eslint/types@8.0.0-alpha.62': - resolution: {integrity: sha512-COx2JJSRdgemh/0vGKip3z2wYcfyZ1ZgZ9durBM6+NDK1OSaVYesWNl2hfwRm0XNd6SxghKjfESwbGghcTK2UQ==} + '@typescript-eslint/types@8.17.0': + resolution: {integrity: sha512-gY2TVzeve3z6crqh2Ic7Cr+CAv6pfb0Egee7J5UAVWCpVvDI/F71wNfolIim4FE6hT15EbpZFVUj9j5i38jYXA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@typescript-eslint/types@8.18.0': + resolution: {integrity: sha512-FNYxgyTCAnFwTrzpBGq+zrnoTO4x0c1CKYY5MuUTzpScqmY5fmsh2o3+57lqdI3NZucBDCzDgdEbIaNfAjAHQA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@typescript-eslint/typescript-estree@7.17.0': @@ -1036,8 +1026,8 @@ packages: typescript: optional: true - '@typescript-eslint/typescript-estree@8.0.0-alpha.62': - resolution: {integrity: sha512-8CSWluaB1AspQ2pgp5atQtEaMinreQQ2LzhKRv72UTf8vX5m75fqfXvC+pbSiBo4lVkjEeVBffD3lfbN0kCwag==} + '@typescript-eslint/typescript-estree@8.17.0': + resolution: {integrity: sha512-JqkOopc1nRKZpX+opvKqnM3XUlM7LpFMD0lYxTqOTKQfCWAmxw45e3qlOCsEqEB2yuacujivudOFpCnqkBDNMw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '*' @@ -1045,24 +1035,45 @@ packages: typescript: optional: true + '@typescript-eslint/typescript-estree@8.18.0': + resolution: {integrity: sha512-rqQgFRu6yPkauz+ms3nQpohwejS8bvgbPyIDq13cgEDbkXt4LH4OkDMT0/fN1RUtzG8e8AKJyDBoocuQh8qNeg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + typescript: '>=4.8.4 <5.8.0' + '@typescript-eslint/utils@7.17.0': resolution: {integrity: sha512-r+JFlm5NdB+JXc7aWWZ3fKSm1gn0pkswEwIYsrGPdsT2GjsRATAKXiNtp3vgAAO1xZhX8alIOEQnNMl3kbTgJw==} engines: {node: ^18.18.0 || >=20.0.0} peerDependencies: eslint: ^8.56.0 - '@typescript-eslint/utils@8.0.0-alpha.62': - resolution: {integrity: sha512-PqeKaUQWqRX/ZumjQpfmL8sDzRb1n2NQz36ZVGayynL00UR4Q6dwuiwPCKDBDAZAc8iqbTOTdRzWVGsN5vWTqA==} + '@typescript-eslint/utils@8.17.0': + resolution: {integrity: sha512-bQC8BnEkxqG8HBGKwG9wXlZqg37RKSMY7v/X8VEWD8JG2JuTHuNK0VFvMPMUKQcbk6B+tf05k+4AShAEtCtJ/w==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: '*' + peerDependenciesMeta: + typescript: + optional: true + + '@typescript-eslint/utils@8.18.0': + resolution: {integrity: sha512-p6GLdY383i7h5b0Qrfbix3Vc3+J2k6QWw6UMUeY5JGfm3C5LbZ4QIZzJNoNOfgyRe0uuYKjvVOsO/jD4SJO+xg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 + typescript: '>=4.8.4 <5.8.0' '@typescript-eslint/visitor-keys@7.17.0': resolution: {integrity: sha512-RVGC9UhPOCsfCdI9pU++K4nD7to+jTcMIbXTSOcrLqUEW6gF2pU1UUbYJKc9cvcRSK1UDeMJ7pdMxf4bhMpV/A==} engines: {node: ^18.18.0 || >=20.0.0} - '@typescript-eslint/visitor-keys@8.0.0-alpha.62': - resolution: {integrity: sha512-W1A4hx+PDBfIYKGkv7sGAz8I0iqzvwP4LhPuQZyIrnJ93WSa8LxYsnadnjJlmyGgjd4t+dIapPwa9eAWrsScQw==} + '@typescript-eslint/visitor-keys@8.17.0': + resolution: {integrity: sha512-1Hm7THLpO6ww5QU6H/Qp+AusUUl+z/CAm3cNZZ0jQvon9yicgO7Rwd+/WWRpMKLYV6p2UvdbR27c86rzCPpreg==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@typescript-eslint/visitor-keys@8.18.0': + resolution: {integrity: sha512-pCh/qEA8Lb1wVIqNvBke8UaRjJ6wrAWkJO5yyIbs8Yx6TNGYyfNjOo61tLv+WwLvoLPp4BQ8B7AHKijl8NGUfw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@vitest/coverage-istanbul@2.1.8': @@ -1070,6 +1081,19 @@ packages: peerDependencies: vitest: 2.1.8 + '@vitest/eslint-plugin@1.1.14': + resolution: {integrity: sha512-ej0cT5rUt7uvwxuu7Qxkm7fI+eaOq8vD34qGpuRoXCdvOybOlE5GDqtgvVCYbxLANkcRJfm5VDU1TnJmQRHi9g==} + peerDependencies: + '@typescript-eslint/utils': '>= 8.0' + eslint: '>= 8.57.0' + typescript: '>= 5.0.0' + vitest: '*' + peerDependenciesMeta: + typescript: + optional: true + vitest: + optional: true + '@vitest/expect@2.1.8': resolution: {integrity: sha512-8ytZ/fFHq2g4PJVAtDX57mayemKgDR6X3Oa2Foro+EygiOJHUXhCqBAAKQYYajZpFoIfvBCF1j6R6IYRSIUFuw==} @@ -1120,11 +1144,6 @@ packages: engines: {node: '>=0.4.0'} hasBin: true - acorn@8.12.0: - resolution: {integrity: sha512-RTvkC4w+KNXrM39/lWCUaG0IbRkWdCv7W/IOW9oU6SawyxulvkQy5HQPVTKxEjczcUvapcrw3cFx/60VN/NRNw==} - engines: {node: '>=0.4.0'} - hasBin: true - acorn@8.14.0: resolution: {integrity: sha512-cl669nCJTZBsL97OF4kUQm5g5hC2uihk0NxY3WENAC0TYdILVkAyHymAntgxGkl7K+t0cXIrH5siy5S4XkFycA==} engines: {node: '>=0.4.0'} @@ -1182,16 +1201,24 @@ packages: array-buffer-byte-length@1.0.0: resolution: {integrity: sha512-LPuwb2P+NrQw3XhxGc36+XSvuBPopovXYTR9Ew++Du9Yb/bx5AzBfrIsBoj0EZUifjQU+sHL21sseZ3jerWO/A==} - array-includes@3.1.7: - resolution: {integrity: sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ==} + array-buffer-byte-length@1.0.1: + resolution: {integrity: sha512-ahC5W1xgou+KTXix4sAO8Ki12Q+jf4i0+tmk3sC+zgcynshkHxzpXdImBehiUYKKKDwvfFiJl1tZt6ewscS1Mg==} + engines: {node: '>= 0.4'} + + array-includes@3.1.8: + resolution: {integrity: sha512-itaWrbYbqpGXkGhZPGUulwnhVf5Hpy1xiCFsGqyIGglbBxmG5vSjxQen3/WGOjPpNEv1RtBLKxbmVXm8HpJStQ==} engines: {node: '>= 0.4'} array-union@2.1.0: resolution: {integrity: sha512-HGyxoOTYUyCM6stUe6EJgnd4EoewAI7zMdfqO+kGjnlZmBDz/cR5pf8r/cR4Wq60sL/p0IkcjUEEPwS3GFrIyw==} engines: {node: '>=8'} - array.prototype.findlastindex@1.2.3: - resolution: {integrity: sha512-LzLoiOMAxvy+Gd3BAq3B7VeIgPdo+Q8hthvKtXybMvRV0jrXfJM/t8mw7nNlpEcVlVUnCnM2KSX4XU5HmpodOA==} + array.prototype.findlast@1.2.5: + resolution: {integrity: sha512-CVvd6FHg1Z3POpBLxO6E6zr+rSKEQ9L6rZHAaY7lLfhKsWYUBBOuMs0e9o24oopj6H+geRCX0YJ+TJLBK2eHyQ==} + engines: {node: '>= 0.4'} + + array.prototype.findlastindex@1.2.5: + resolution: {integrity: sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==} engines: {node: '>= 0.4'} array.prototype.flat@1.3.2: @@ -1202,10 +1229,18 @@ packages: resolution: {integrity: sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ==} engines: {node: '>= 0.4'} + array.prototype.tosorted@1.1.4: + resolution: {integrity: sha512-p6Fx8B7b7ZhL/gmUsAy0D15WhvDccw3mnGNbZpi3pmeJdxtWsj2jEaI4Y6oo3XiHfzuSgPwKc04MYt6KgvC/wA==} + engines: {node: '>= 0.4'} + arraybuffer.prototype.slice@1.0.2: resolution: {integrity: sha512-yMBKppFur/fbHu9/6USUe03bZ4knMYiwFBcyiaXB8Go0qNehwX6inYPzK9U0NeQvGxKthcmHcaR8P5MStSRBAw==} engines: {node: '>= 0.4'} + arraybuffer.prototype.slice@1.0.3: + resolution: {integrity: sha512-bMxMKAjg13EBSVscxTaYA4mRc5t1UAXa2kXiGTNfZ079HIWXEkKmkgFrh/nJqamaLSrXO5H4WFFkPEaLJWbs3A==} + engines: {node: '>= 0.4'} + assertion-error@2.0.1: resolution: {integrity: sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==} engines: {node: '>=12'} @@ -1228,6 +1263,10 @@ packages: resolution: {integrity: sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==} engines: {node: '>= 0.4'} + available-typed-arrays@1.0.7: + resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==} + engines: {node: '>= 0.4'} + avvio@9.1.0: resolution: {integrity: sha512-fYASnYi600CsH/j9EQov7lECAniYiBFiiAtBNuZYLA2leLe9qOvZzqYHFjtIj6gD2VMoMLP14834LFWvr4IfDw==} @@ -1286,6 +1325,11 @@ packages: engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} hasBin: true + browserslist@4.24.2: + resolution: {integrity: sha512-ZIc+Q62revdMcqC6aChtW4jz3My3klmCO1fEmINZY/8J3EpBg5/A/D0AKmBveUh6pgoeycoMkVMko84tuYS+Gg==} + engines: {node: ^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7} + hasBin: true + bson@6.10.0: resolution: {integrity: sha512-ROchNosXMJD2cbQGm84KoP7vOGPO6/bOAW0veMMbzhXLqoZptcaYRVLitwvuhwhjjpU1qP4YZRWLhgETdgqUQw==} engines: {node: '>=16.20.1'} @@ -1310,9 +1354,17 @@ packages: resolution: {integrity: sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==} engines: {node: '>=8'} + call-bind-apply-helpers@1.0.1: + resolution: {integrity: sha512-BhYE+WDaywFg2TBWYNXAE+8B1ATnThNBqXHP5nQu0jWJdVvY2hvkpyB3qOmtmDePiS5/BDQ8wASEWGMWRG148g==} + engines: {node: '>= 0.4'} + call-bind@1.0.5: resolution: {integrity: sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==} + call-bind@1.0.8: + resolution: {integrity: sha512-oKlSFMcMwpUg2ednkhQ454wfWiU/ul3CkJe/PEHcTKuiX6RpbehUiFMXu13HalGZxfUwCQzZG747YXBn1im9ww==} + engines: {node: '>= 0.4'} + callsites@3.1.0: resolution: {integrity: sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==} engines: {node: '>=6'} @@ -1320,6 +1372,9 @@ packages: caniuse-lite@1.0.30001637: resolution: {integrity: sha512-1x0qRI1mD1o9e+7mBI7XtzFAP4XszbHaVWsMiGbSPLYekKTJF7K+FNk6AsXH4sUpc+qrsI3pVgf1Jdl/uGkuSQ==} + caniuse-lite@1.0.30001687: + resolution: {integrity: sha512-0S/FDhf4ZiqrTUiQ39dKeUjYRjkv7lOZU1Dgif2rIqrTzX/1wV2hfKu9TOm1IHkdSijfLswxTFzl/cvir+SLSQ==} + chai@5.1.2: resolution: {integrity: sha512-aGtmf24DW6MLHHG5gCx4zaI3uBq3KRtxeVs0DjFH6Z0rDNbsvTxFASFvdj79pxjxZ8/5u3PIiN3IwEIQkiiuPw==} engines: {node: '>=12'} @@ -1397,8 +1452,8 @@ packages: resolution: {integrity: sha512-Xd8lFX4LM9QEEwxQpF9J9NTUh8pmdJO0cyRJhFiDoLTk2eH8FXlRv2IFGYVadZpqI3j8fhNrSdKCeYPxiAhLXw==} engines: {node: '>=18'} - core-js-compat@3.37.1: - resolution: {integrity: sha512-9TNiImhKvQqSUkOvk/mMRZzOANTiEVC7WaBNhHcKM7x+/5E1l5NvsysR19zuDQScE8k+kfQXWRN3AtS/eOSHpg==} + core-js-compat@3.39.0: + resolution: {integrity: sha512-VgEUx3VwlExr5no0tXlBt+silBvhTryPwCXRI2Id1PN8WTKu7MreethvddqOubrYxkFdv/RnYrqlv1sFNAUelw==} cosmiconfig@9.0.0: resolution: {integrity: sha512-itvL5h8RETACmOTFc4UfIyB2RfEHi71Ax6E/PivVxq9NseKbOWpeyHEOIbmAw1rs8Ak0VursQNww7lf7YtUwzg==} @@ -1417,10 +1472,26 @@ packages: resolution: {integrity: sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==} engines: {node: '>= 8'} + cross-spawn@7.0.6: + resolution: {integrity: sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==} + engines: {node: '>= 8'} + data-uri-to-buffer@6.0.2: resolution: {integrity: sha512-7hvf7/GW8e86rW0ptuwS3OcBGDjIi6SZva7hCyWC0yYry2cOPmLIjXAUHI6DK2HsnwJd9ifmt57i8eV2n4YNpw==} engines: {node: '>= 14'} + data-view-buffer@1.0.1: + resolution: {integrity: sha512-0lht7OugA5x3iJLOWFhWK/5ehONdprk0ISXqVFn/NFrDu+cuc8iADFrGQz5BnRK7LLU3JmkbXSxaqX+/mXYtUA==} + engines: {node: '>= 0.4'} + + data-view-byte-length@1.0.1: + resolution: {integrity: sha512-4J7wRJD3ABAzr8wP+OcIcqq2dlUKp4DVflx++hs5h5ZKydWMI6/D/fAot+yh6g2tHh8fLFTvNOaVN357NvSrOQ==} + engines: {node: '>= 0.4'} + + data-view-byte-offset@1.0.0: + resolution: {integrity: sha512-t/Ygsytq+R995EJ5PZlD4Cu56sWa8InXySaViRzw9apusqsOO2bQP+SbYzAhR0pFKoB+43lYy8rWban9JSuXnA==} + engines: {node: '>= 0.4'} + debug@3.2.7: resolution: {integrity: sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==} peerDependencies: @@ -1429,15 +1500,6 @@ packages: supports-color: optional: true - debug@4.3.6: - resolution: {integrity: sha512-O/09Bd4Z1fBrU4VzkhFqVgpPzaGbw6Sm9FEkBT1A/YBXQFGuuSxa1dN2nxgxS34JmKXqYx8CZAwEVoJFImUXIg==} - engines: {node: '>=6.0'} - peerDependencies: - supports-color: '*' - peerDependenciesMeta: - supports-color: - optional: true - debug@4.3.7: resolution: {integrity: sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==} engines: {node: '>=6.0'} @@ -1462,10 +1524,18 @@ packages: resolution: {integrity: sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==} engines: {node: '>= 0.4'} + define-data-property@1.1.4: + resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==} + engines: {node: '>= 0.4'} + define-properties@1.2.0: resolution: {integrity: sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==} engines: {node: '>= 0.4'} + define-properties@1.2.1: + resolution: {integrity: sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg==} + engines: {node: '>= 0.4'} + degenerator@5.0.1: resolution: {integrity: sha512-TllpMR/t0M5sqCXfj85i4XaAzxmS5tVA16dqvdkMwGmzI+dXLXnw3J+3Vdv7VKw+ThlTMboK6i9rnZ6Nntj5CQ==} engines: {node: '>= 14'} @@ -1517,6 +1587,10 @@ packages: resolution: {integrity: sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ==} engines: {node: '>=12'} + dunder-proto@1.0.0: + resolution: {integrity: sha512-9+Sj30DIu+4KvHqMfLUGLFYL2PkURSYMVXJyXe92nFRvlYq5hBjLEhblKB+vkd/WVlUYMWigiY07T91Fkk0+4A==} + engines: {node: '>= 0.4'} + eastasianwidth@0.2.0: resolution: {integrity: sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==} @@ -1526,6 +1600,9 @@ packages: electron-to-chromium@1.4.812: resolution: {integrity: sha512-7L8fC2Ey/b6SePDFKR2zHAy4mbdp1/38Yk5TsARO66W3hC5KEaeKMMHoxwtuH+jcu2AYLSn9QX04i95t6Fl1Hg==} + electron-to-chromium@1.5.71: + resolution: {integrity: sha512-dB68l59BI75W1BUGVTAEJy45CEVuEGy9qPVVQ8pnHyHMn36PLPPoE1mjLH+lo9rKulO3HC2OhbACI/8tCqJBcA==} + emoji-regex@8.0.0: resolution: {integrity: sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==} @@ -1549,16 +1626,43 @@ packages: resolution: {integrity: sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA==} engines: {node: '>= 0.4'} + es-abstract@1.23.5: + resolution: {integrity: sha512-vlmniQ0WNPwXqA0BnmwV3Ng7HxiGlh6r5U6JcTMNx8OilcAGqVJBHJcPjqOMaczU9fRuRK5Px2BdVyPRnKMMVQ==} + engines: {node: '>= 0.4'} + + es-define-property@1.0.1: + resolution: {integrity: sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==} + engines: {node: '>= 0.4'} + + es-errors@1.3.0: + resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==} + engines: {node: '>= 0.4'} + + es-iterator-helpers@1.2.0: + resolution: {integrity: sha512-tpxqxncxnpw3c93u8n3VOzACmRFoVmWJqbWXvX/JfKbkhBw1oslgPrUfeSt2psuqyEJFD6N/9lg5i7bsKpoq+Q==} + engines: {node: '>= 0.4'} + es-module-lexer@1.5.4: resolution: {integrity: sha512-MVNK56NiMrOwitFB7cqDwq0CQutbw+0BvLshJSse0MUNU+y1FC3bUS/AQg7oUng+/wKrrki7JfmwtVHkVfPLlw==} + es-object-atoms@1.0.0: + resolution: {integrity: sha512-MZ4iQ6JwHOBQjahnjwaC1ZtIBH+2ohjamzAO3oaHcXYup7qxjF2fixyH+Q71voWHeOkI2q/TnJao/KfXYIZWbw==} + engines: {node: '>= 0.4'} + es-set-tostringtag@2.0.1: resolution: {integrity: sha512-g3OMbtlwY3QewlqAiMLI47KywjWZoEytKr8pf6iTC8uJq5bIAH52Z9pnQ8pVL6whrCto53JZDuUIsifGeLorTg==} engines: {node: '>= 0.4'} + es-set-tostringtag@2.0.3: + resolution: {integrity: sha512-3T8uNMC3OQTHkFUsFq8r/BwAXLHvU/9O9mE0fBc/MY5iq/8H7ncvO947LmYA6ldWw9Uh8Yhf25zu6n7nML5QWQ==} + engines: {node: '>= 0.4'} + es-shim-unscopables@1.0.0: resolution: {integrity: sha512-Jm6GPcCdC30eMLbZ2x8z2WuRwAws3zTBBKuusffYVUrNj/GVSUAZ+xKMaUpfNDR5IbyNA5LJbaecoUVbmUcB1w==} + es-shim-unscopables@1.0.2: + resolution: {integrity: sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw==} + es-to-primitive@1.2.1: resolution: {integrity: sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==} engines: {node: '>= 0.4'} @@ -1577,6 +1681,10 @@ packages: resolution: {integrity: sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==} engines: {node: '>=6'} + escalade@3.2.0: + resolution: {integrity: sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==} + engines: {node: '>=6'} + escape-string-regexp@1.0.5: resolution: {integrity: sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==} engines: {node: '>=0.8.0'} @@ -1594,17 +1702,11 @@ packages: engines: {node: '>=6.0'} hasBin: true - eslint-config-prettier@9.1.0: - resolution: {integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==} - hasBin: true - peerDependencies: - eslint: '>=7.0.0' - eslint-import-resolver-node@0.3.9: resolution: {integrity: sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g==} - eslint-module-utils@2.8.0: - resolution: {integrity: sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw==} + eslint-module-utils@2.12.0: + resolution: {integrity: sha512-wALZ0HFoytlyh/1+4wuZ9FJCD/leWHQzzrxJ8+rebyReSLk7LApMyd3WJaLVoN+D5+WIdJyDK1c6JnE65V4Zyg==} engines: {node: '>=4'} peerDependencies: '@typescript-eslint/parser': '*' @@ -1630,46 +1732,40 @@ packages: eslint: ^8.0.0 typescript: ^4.2.4 || ^5.0.0 - eslint-plugin-import@2.29.1: - resolution: {integrity: sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw==} + eslint-plugin-import@2.31.0: + resolution: {integrity: sha512-ixmkI62Rbc2/w8Vfxyh1jQRTdRTF52VxwRVHl/ykPAmqG+Nb7/kNn+byLP0LxPgI7zWA16Jt82SybJInmMia3A==} engines: {node: '>=4'} peerDependencies: '@typescript-eslint/parser': '*' - eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 + eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9 peerDependenciesMeta: '@typescript-eslint/parser': optional: true - eslint-plugin-jsdoc@48.8.3: - resolution: {integrity: sha512-AtIvwwW9D17MRkM0Z0y3/xZYaa9mdAvJrkY6fU/HNUwGbmMtHVvK4qRM9CDixGVtfNrQitb8c6zQtdh6cTOvLg==} + eslint-plugin-jsdoc@50.6.0: + resolution: {integrity: sha512-tCNp4fR79Le3dYTPB0dKEv7yFyvGkUCa+Z3yuTrrNGGOxBlXo9Pn0PEgroOZikUQOGjxoGMVKNjrOHcYEdfszg==} engines: {node: '>=18'} peerDependencies: eslint: ^7.0.0 || ^8.0.0 || ^9.0.0 - eslint-plugin-no-only-tests@3.1.0: - resolution: {integrity: sha512-Lf4YW/bL6Un1R6A76pRZyE1dl1vr31G/ev8UzIc/geCgFWyrKil8hVjYqWVKGB/UIGmb6Slzs9T0wNezdSVegw==} - engines: {node: '>=5.0.0'} + eslint-plugin-playwright@2.1.0: + resolution: {integrity: sha512-wMbHOehofSB1cBdzz2CLaCYaKNLeTQ0YnOW+7AHa281TJqlpEJUBgTHbRUYOUxiXphfWwOyTPvgr6vvEmArbSA==} + engines: {node: '>=16.6.0'} + peerDependencies: + eslint: '>=8.40.0' - eslint-plugin-prettier@5.2.1: - resolution: {integrity: sha512-gH3iR3g4JfF+yYPaJYkN7jEl9QbweL/YfkoRlNnuIEHEz1vHVlCmWOS+eGGiRuzHQXdJFCOTxRgvju9b8VUmrw==} - engines: {node: ^14.18.0 || >=16.0.0} + eslint-plugin-react@7.37.2: + resolution: {integrity: sha512-EsTAnj9fLVr/GZleBLFbj/sSuXeWmp1eXIN60ceYnZveqEaUCyW4X+Vh4WTdUhCkW4xutXYqTXCUSyqD4rB75w==} + engines: {node: '>=4'} peerDependencies: - '@types/eslint': '>=8.0.0' - eslint: '>=8.0.0' - eslint-config-prettier: '*' - prettier: '>=3.0.0' - peerDependenciesMeta: - '@types/eslint': - optional: true - eslint-config-prettier: - optional: true + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7 eslint-plugin-sort-keys-fix@1.1.2: resolution: {integrity: sha512-DNPHFGCA0/hZIsfODbeLZqaGY/+q3vgtshF85r+YWDNCQ2apd9PNs/zL6ttKm0nD1IFwvxyg3YOTI7FHl4unrw==} engines: {node: '>=0.10.0'} - eslint-plugin-unicorn@55.0.0: - resolution: {integrity: sha512-n3AKiVpY2/uDcGrS3+QsYDkjPfaOrNrsfQxU9nt5nitd9KuvVXrfAvgCO9DYPSfap+Gqjw9EOrXIsBp5tlHZjA==} + eslint-plugin-unicorn@56.0.1: + resolution: {integrity: sha512-FwVV0Uwf8XPfVnKSGpMg7NtlZh0G0gBarCaFcMUOoqPxXryxdYxTRRv4kH6B9TFCVIrjRXG+emcxIk2ayZilog==} engines: {node: '>=18.18'} peerDependencies: eslint: '>=8.56.0' @@ -1686,20 +1782,12 @@ packages: resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} - eslint-visitor-keys@4.0.0: - resolution: {integrity: sha512-OtIRv/2GyiF6o/d8K7MYKKbXrOUBIK6SfkIRM4Z0dY3w+LiQ0vy3F57m0Z71bjbyeiWFiHJ8brqnmE6H6/jEuw==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - - eslint-visitor-keys@4.1.0: - resolution: {integrity: sha512-Q7lok0mqMUSf5a/AdAZkA5a/gHcO6snwQClVNNvFKCAVlxXucdU8pKydU5ZVZjBx5xr37vGbFFWtLQYreLzrZg==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - eslint-visitor-keys@4.2.0: resolution: {integrity: sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - eslint@9.14.0: - resolution: {integrity: sha512-c2FHsVBr87lnUtjP4Yhvk4yEhKrQavGafRA/Se1ouse8PfbfC/Qh9Mxa00yWsZRlqeUB9raXip0aiiUZkgnr9g==} + eslint@9.16.0: + resolution: {integrity: sha512-whp8mSQI4C8VXd+fLgSM0lh3UlmcFtVwUQjyKCFfsp+2ItAIYhlq/hqGahGqHE6cv9unM41VlqKk2VtKYR2TaA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} hasBin: true peerDependencies: @@ -1708,10 +1796,6 @@ packages: jiti: optional: true - espree@10.1.0: - resolution: {integrity: sha512-M1M6CpiE6ffoigIOWYO9UDP8TMUw9kqb21tf+08IgDYjCsOvCuDt4jQcZmoYxx+w7zlKw9/N0KXfto+I8/FrXA==} - engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - espree@10.3.0: resolution: {integrity: sha512-0QYC8b24HWY8zjRnDTL6RiHfDbAWn63qb4LMj1Z4b076A4une81+z03Kg7l7mn/48PUTqoLptSXez8oknU8Clg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -1767,9 +1851,6 @@ packages: fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} - fast-diff@1.3.0: - resolution: {integrity: sha512-VxPP4NqbUjj6MaAOafWeUn2cXWLcCtljklUtZf0Ind4XQ+QPtmA0b18zZy0jIQx+ExRVCR/ZQpBmik5lXshNsw==} - fast-fifo@1.3.2: resolution: {integrity: sha512-/d9sfos4yxzpwkDkuN7k2SqFKtYNmCTzgfEpz82x34IM9/zc8KGxQoXg1liNC/izpRM/MBdt44Nmx41ZWqk+FQ==} @@ -1777,6 +1858,10 @@ packages: resolution: {integrity: sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==} engines: {node: '>=8.6.0'} + fast-glob@3.3.2: + resolution: {integrity: sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==} + engines: {node: '>=8.6.0'} + fast-json-stable-stringify@2.1.0: resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} @@ -1873,6 +1958,11 @@ packages: resolution: {integrity: sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==} engines: {node: '>=14.14'} + fsevents@2.3.2: + resolution: {integrity: sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==} + engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} + os: [darwin] + fsevents@2.3.3: resolution: {integrity: sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==} engines: {node: ^8.16.0 || ^10.6.0 || >=11.0.0} @@ -1899,6 +1989,10 @@ packages: get-intrinsic@1.2.2: resolution: {integrity: sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==} + get-intrinsic@1.2.5: + resolution: {integrity: sha512-Y4+pKa7XeRUPWFNvOOYHkRYrfzW07oraURSvjDmRVOJ748OrVmeXtpE4+GCEHncjCjkTxPNRt8kEbxDhsn6VTg==} + engines: {node: '>= 0.4'} + get-stream@5.2.0: resolution: {integrity: sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==} engines: {node: '>=8'} @@ -1907,6 +2001,10 @@ packages: resolution: {integrity: sha512-2EmdH1YvIQiZpltCNgkuiUnyukzxM/R6NDJX31Ke3BG1Nq5b0S2PhX59UKi9vZpPDQVdqn+1IcaAwnzTT5vCjw==} engines: {node: '>= 0.4'} + get-symbol-description@1.0.2: + resolution: {integrity: sha512-g0QYk1dZBxGwk+Ngc+ltRH2IBp2f7zBkBMBJZCDerh6EhlhSR6+9irMCuT/09zD6qkarHUSn529sK/yL4S27mg==} + engines: {node: '>= 0.4'} + get-tsconfig@4.7.5: resolution: {integrity: sha512-ZCuZCnlqNzjb4QprAzXKdpp/gh6KTxSJuw3IBsPnV/7fV4NxC9ckB+vPTt8w7fJA0TaSD7c55BR47JD6MEDyDw==} @@ -1935,18 +2033,26 @@ packages: resolution: {integrity: sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==} engines: {node: '>=4'} + globals@13.24.0: + resolution: {integrity: sha512-AhO5QUcj8llrbG09iWhPU2B204J1xnPeL8kQmVorSsy+Sjj1sk8gIyh6cUocGmH4L0UuhAJy+hJMRA4mgA4mFQ==} + engines: {node: '>=8'} + globals@14.0.0: resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==} engines: {node: '>=18'} - globals@15.8.0: - resolution: {integrity: sha512-VZAJ4cewHTExBWDHR6yptdIBlx9YSSZuwojj9Nt5mBRXQzrKakDsVKQ1J63sklLvzAJm0X5+RpO4i3Y2hcOnFw==} + globals@15.13.0: + resolution: {integrity: sha512-49TewVEz0UxZjr1WYYsWpPrhyC/B/pA8Bq0fUmet2n+eR7yn0IvNzNaoBwnK6mdkzcN+se7Ez9zUgULTz2QH4g==} engines: {node: '>=18'} globalthis@1.0.3: resolution: {integrity: sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==} engines: {node: '>= 0.4'} + globalthis@1.0.4: + resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==} + engines: {node: '>= 0.4'} + globby@11.1.0: resolution: {integrity: sha512-jhIXaOzy1sb8IyocaruWSn1TjmnBVs8Ayhcy83rmxNJ8q2uWKCAj3CnJY+KpGSXCueAPc0i05kVvVKtP1t9S3g==} engines: {node: '>=10'} @@ -1954,6 +2060,10 @@ packages: gopd@1.0.1: resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==} + gopd@1.2.0: + resolution: {integrity: sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==} + engines: {node: '>= 0.4'} + graceful-fs@4.2.11: resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} @@ -1988,24 +2098,39 @@ packages: has-property-descriptors@1.0.0: resolution: {integrity: sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==} + has-property-descriptors@1.0.2: + resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==} + has-proto@1.0.1: resolution: {integrity: sha512-7qE+iP+O+bgF9clE5+UoBFzE65mlBiVj3tKCrlNQ0Ogwm0BjpT/gK4SlLYDMybDh5I3TCTKnPPa0oMG7JDYrhg==} engines: {node: '>= 0.4'} + has-proto@1.2.0: + resolution: {integrity: sha512-KIL7eQPfHQRC8+XluaIw7BHUwwqL19bQn4hzNgdr+1wXoU0KKj6rufu47lhY7KbJR2C6T6+PfyN0Ea7wkSS+qQ==} + engines: {node: '>= 0.4'} + has-symbols@1.0.3: resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==} engines: {node: '>= 0.4'} + has-symbols@1.1.0: + resolution: {integrity: sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==} + engines: {node: '>= 0.4'} + has-tostringtag@1.0.0: resolution: {integrity: sha512-kFjcSNhnlGV1kyoGk7OXKSawH5JOb/LzUc5w9B02hOTO0dfFRjbHQKvg1d6cf3HbeUmtU9VbbV3qzZ2Teh97WQ==} engines: {node: '>= 0.4'} + has-tostringtag@1.0.2: + resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==} + engines: {node: '>= 0.4'} + has@1.0.3: resolution: {integrity: sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==} engines: {node: '>= 0.4.0'} - hasown@2.0.0: - resolution: {integrity: sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==} + hasown@2.0.2: + resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==} engines: {node: '>= 0.4'} highlight.js@11.10.0: @@ -2056,6 +2181,10 @@ packages: resolution: {integrity: sha512-Y+R5hJrzs52QCG2laLn4udYVnxsfny9CpOhNhUvk/SSSVyF6T27FzRbF0sroPidSu3X8oEAkOn2K804mjpt6UQ==} engines: {node: '>= 0.4'} + internal-slot@1.0.7: + resolution: {integrity: sha512-NGnrKwXzSms2qUUih/ILZ5JBqNTSa1+ZmP6flaIp6KmSElgE9qdndzS3cqjrDovwFdmwsGsLdeFgB6suw+1e9g==} + engines: {node: '>= 0.4'} + ip-address@9.0.5: resolution: {integrity: sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==} engines: {node: '>= 12'} @@ -2067,12 +2196,20 @@ packages: is-array-buffer@3.0.2: resolution: {integrity: sha512-y+FyyR/w8vfIRq4eQcM1EYgSTnmHXPqaF+IgzgraytCFq5Xh8lllDVmAZolPJiZttZLeFSINPYMaEJ7/vWUa1w==} + is-array-buffer@3.0.4: + resolution: {integrity: sha512-wcjaerHw0ydZwfhiKbXJWLDY8A7yV7KhjQOpb83hGgGfId/aQa4TOvwyzn2PuswW2gPCYEL/nEAiSVpdOj1lXw==} + engines: {node: '>= 0.4'} + is-arrayish@0.2.1: resolution: {integrity: sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==} is-arrayish@0.3.2: resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==} + is-async-function@2.0.0: + resolution: {integrity: sha512-Y1JXKrfykRJGdlDwdKlLpLyMIiWqWvuSd17TvZk68PLAOGOoF4Xyav1z0Xhoi+gCYjZVeC5SI+hYFOfvXmGRCA==} + engines: {node: '>= 0.4'} + is-bigint@1.0.4: resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==} @@ -2091,6 +2228,14 @@ packages: is-core-module@2.13.1: resolution: {integrity: sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw==} + is-core-module@2.15.1: + resolution: {integrity: sha512-z0vtXSwucUJtANQWldhbtbt7BnL0vxiFjIdDLAatwhDYty2bad6s+rijD6Ri4YuYJubLzIJLUidCh09e1djEVQ==} + engines: {node: '>= 0.4'} + + is-data-view@1.0.1: + resolution: {integrity: sha512-AHkaJrsUVW6wq6JS8y3JnM/GJF/9cf+k20+iDzlSaJrinEo5+7vRiteOSwBhHRiAyQATN1AmY4hwzxJKPmYf+w==} + engines: {node: '>= 0.4'} + is-date-object@1.0.5: resolution: {integrity: sha512-9YQaSxsAiSwcvS33MBk3wTCVnWK+HhF8VZR2jRxehM16QcVOdHqPn4VPHmRK4lSr38n9JriurInLcP90xsYNfQ==} engines: {node: '>= 0.4'} @@ -2099,18 +2244,34 @@ packages: resolution: {integrity: sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==} engines: {node: '>=0.10.0'} + is-finalizationregistry@1.1.0: + resolution: {integrity: sha512-qfMdqbAQEwBw78ZyReKnlA8ezmPdb9BemzIIip/JkjaZUhitfXDkkr+3QTboW0JrSXT1QWyYShpvnNHGZ4c4yA==} + engines: {node: '>= 0.4'} + is-fullwidth-code-point@3.0.0: resolution: {integrity: sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==} engines: {node: '>=8'} + is-generator-function@1.0.10: + resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==} + engines: {node: '>= 0.4'} + is-glob@4.0.3: resolution: {integrity: sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==} engines: {node: '>=0.10.0'} + is-map@2.0.3: + resolution: {integrity: sha512-1Qed0/Hr2m+YqxnM09CjA2d/i6YZNfF6R2oRAOj36eUdS6qIV/huPJNSEpKbupewFs+ZsJlxsjjPbc0/afW6Lw==} + engines: {node: '>= 0.4'} + is-negative-zero@2.0.2: resolution: {integrity: sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA==} engines: {node: '>= 0.4'} + is-negative-zero@2.0.3: + resolution: {integrity: sha512-5KoIu2Ngpyek75jXodFvnafB6DJgr3u8uuK0LEZJjrU19DrMD3EVERaR8sjz8CCGgpZvxPl9SuE1GMVPFHx1mw==} + engines: {node: '>= 0.4'} + is-number-object@1.0.7: resolution: {integrity: sha512-k1U0IRzLMo7ZlYIfzRu23Oh6MiIFasgpb9X76eqfFZAqwH44UI4KTBvBYIZ1dSL9ZzChTB9ShHfLkR4pdW5krQ==} engines: {node: '>= 0.4'} @@ -2123,9 +2284,17 @@ packages: resolution: {integrity: sha512-kvRdxDsxZjhzUX07ZnLydzS1TU/TJlTUHHY4YLL87e37oUA49DfkLqgy+VjFocowy29cKvcSiu+kIv728jTTVg==} engines: {node: '>= 0.4'} + is-set@2.0.3: + resolution: {integrity: sha512-iPAjerrse27/ygGLxw+EBR9agv9Y6uLeYVJMu+QNCoouJ1/1ri0mGrcWpfCqFZuzzx3WjtwxG098X+n4OuRkPg==} + engines: {node: '>= 0.4'} + is-shared-array-buffer@1.0.2: resolution: {integrity: sha512-sqN2UDu1/0y6uvXyStCOzyhAjCSlHceFoMKJW8W9EU9cvic/QdsZ0kEU93HEy3IUEFZIiH/3w+AH/UQbPHNdhA==} + is-shared-array-buffer@1.0.3: + resolution: {integrity: sha512-nA2hv5XIhLR3uVzDDfCIknerhx8XUKnstuOERPNNIinXG7v9u+ohXF67vxm4TPTEPU6lm61ZkwP3c9PCB97rhg==} + engines: {node: '>= 0.4'} + is-stream@2.0.1: resolution: {integrity: sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==} engines: {node: '>=8'} @@ -2142,9 +2311,21 @@ packages: resolution: {integrity: sha512-Z14TF2JNG8Lss5/HMqt0//T9JeHXttXy5pH/DBU4vi98ozO2btxzq9MwYDZYnKwU8nRsz/+GVFVRDq3DkVuSPg==} engines: {node: '>= 0.4'} + is-typed-array@1.1.13: + resolution: {integrity: sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==} + engines: {node: '>= 0.4'} + + is-weakmap@2.0.2: + resolution: {integrity: sha512-K5pXYOm9wqY1RgjpL3YTkF39tni1XajUIkawTLUo9EZEVUFga5gSQJF8nNS7ZwJQ02y+1YCNYcMh+HIf1ZqE+w==} + engines: {node: '>= 0.4'} + is-weakref@1.0.2: resolution: {integrity: sha512-qctsuLZmIQ0+vSSMfoVvyFe2+GSEvnmZ2ezTup1SBse9+twCCeial6EEi3Nc2KFcf6+qz2FBPnjXsk8xhKSaPQ==} + is-weakset@2.0.3: + resolution: {integrity: sha512-LvIm3/KWzS9oRFHugab7d+M/GcBXuXX5xZkzPmN+NxihdQlZUQ4dWuSV1xR/sq6upL1TJEDrfBgRepHFdBtSNQ==} + engines: {node: '>= 0.4'} + isarray@2.0.5: resolution: {integrity: sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw==} @@ -2171,6 +2352,10 @@ packages: resolution: {integrity: sha512-BewmUXImeuRk2YY0PVbxgKAysvhRPUQE0h5QRM++nVWyubKGV0l8qQ5op8+B2DOmwSe63Jivj0BjkPQVf8fP5g==} engines: {node: '>=8'} + iterator.prototype@1.1.3: + resolution: {integrity: sha512-FW5iMbeQ6rBGm/oKgzq2aW4KvAGpxPzYES8N4g4xNXUKpL1mclMvOe+76AcLDTvD+Ze+sOpVhgdAQEKF4L9iGQ==} + engines: {node: '>= 0.4'} + jackspeak@3.4.3: resolution: {integrity: sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==} @@ -2188,8 +2373,8 @@ packages: jsbn@1.1.0: resolution: {integrity: sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==} - jsdoc-type-pratt-parser@4.0.0: - resolution: {integrity: sha512-YtOli5Cmzy3q4dP26GraSOeAhqecewG04hoO8DY56CH4KJ9Fvv5qKWUCCo3HZob7esJQHCv6/+bnTy72xZZaVQ==} + jsdoc-type-pratt-parser@4.1.0: + resolution: {integrity: sha512-Hicd6JK5Njt2QB6XYFS7ok9e37O8AYk3jTcppG4YVQnYjOemymvTcmc7OWsmq/Qqj5TdRFO5/x/tIPmBeRtGHg==} engines: {node: '>=12.0.0'} jsesc@0.5.0: @@ -2240,6 +2425,10 @@ packages: resolution: {integrity: sha512-PRp66vJ865SSqOlgqS8hujT5U4AOgMfhrwYIuIhfKaoSCZcirrmASQr8CX7cUg+RMih+hgznrjp99o+W4pJLHQ==} engines: {node: '>=12', npm: '>=6'} + jsx-ast-utils@3.3.5: + resolution: {integrity: sha512-ZZow9HBI5O6EPgSJLUb8n2NKgmVWTwCvHGwFuJlMjvLFqlGG6pjirPhtdsseaLZjSibD8eegzmYpUZwoIlj2cQ==} + engines: {node: '>=4.0'} + jwa@1.4.1: resolution: {integrity: sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==} @@ -2318,6 +2507,10 @@ packages: long-timeout@0.1.1: resolution: {integrity: sha512-BFRuQUqc7x2NWxfJBCyUrN8iYUYznzL9JROmRz1gZ6KlOIgmoD+njPVbb+VNn2nGMKggMsK79iUNErillsrx7w==} + loose-envify@1.4.0: + resolution: {integrity: sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==} + hasBin: true + loupe@3.1.2: resolution: {integrity: sha512-23I4pFZHmAemUnz8WZXbYRSKYj801VDaNv9ETuMh7IrMc7VuVVSo+Z9iLE3ni30+U48iDWfi30d3twAXBYmnCg==} @@ -2430,9 +2623,6 @@ packages: socks: optional: true - ms@2.1.2: - resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==} - ms@2.1.3: resolution: {integrity: sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==} @@ -2457,6 +2647,9 @@ packages: node-releases@2.0.14: resolution: {integrity: sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw==} + node-releases@2.0.18: + resolution: {integrity: sha512-d9VeXT4SJ7ZeOqGX6R5EM022wpL+eWPooLI+5UpWn2jCT1aosUQEhQP214x33Wkwx3JQMvIm+tIoVOdodFS40g==} + node-schedule@2.1.1: resolution: {integrity: sha512-OXdegQq03OmXEjt2hZP33W2YPs/E5BcFQks46+G2gAxs4gHOIVD1u7EqlYLYSKsaIpyKCK9Gbk0ta1/gjRSMRQ==} engines: {node: '>=6'} @@ -2464,9 +2657,17 @@ packages: normalize-package-data@2.5.0: resolution: {integrity: sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==} + object-assign@4.1.1: + resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==} + engines: {node: '>=0.10.0'} + object-inspect@1.13.1: resolution: {integrity: sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==} + object-inspect@1.13.3: + resolution: {integrity: sha512-kDCGIbxkDSXE3euJZZXzc6to7fCrKHNI/hSRQnRuQ+BWjFNzZwiFF8fj/6o2t2G9/jTj8PSIYTfCLelLZEeRpA==} + engines: {node: '>= 0.4'} + object-keys@1.1.1: resolution: {integrity: sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==} engines: {node: '>= 0.4'} @@ -2475,15 +2676,24 @@ packages: resolution: {integrity: sha512-1mxKf0e58bvyjSCtKYY4sRe9itRk3PJpquJOjeIkz885CczcI4IvJJDLPS72oowuSh+pBxUFROpX+TU++hxhZQ==} engines: {node: '>= 0.4'} - object.fromentries@2.0.7: - resolution: {integrity: sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA==} + object.assign@4.1.5: + resolution: {integrity: sha512-byy+U7gp+FVwmyzKPYhW2h5l3crpmGsxl7X2s8y43IgxvG4g3QZ6CffDtsNQy1WsmZpQbO+ybo0AlW7TY6DcBQ==} engines: {node: '>= 0.4'} - object.groupby@1.0.1: - resolution: {integrity: sha512-HqaQtqLnp/8Bn4GL16cj+CUYbnpe1bh0TtEaWvybszDG4tgxCJuRpV8VGuvNaI1fAnI4lUJzDG55MXcOH4JZcQ==} + object.entries@1.1.8: + resolution: {integrity: sha512-cmopxi8VwRIAw/fkijJohSfpef5PdN0pMQJN6VC/ZKvn0LIknWD8KtgY6KlQdEc4tIjcQ3HxSMmnvtzIscdaYQ==} + engines: {node: '>= 0.4'} + + object.fromentries@2.0.8: + resolution: {integrity: sha512-k6E21FzySsSK5a21KRADBd/NGneRegFO5pLHfdQLpRDETUNJueLXs3WCzyQ3tFRDYgbq3KHGXfTbi2bs8WQ6rQ==} + engines: {node: '>= 0.4'} + + object.groupby@1.0.3: + resolution: {integrity: sha512-+Lhy3TQTuzXI5hevh8sBGqbmurHbbIjAi0Z4S63nthVLmLxfbj4T54a4CfZrXIrt9iP4mVAPYMo/v99taj3wjQ==} + engines: {node: '>= 0.4'} - object.values@1.1.7: - resolution: {integrity: sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng==} + object.values@1.2.0: + resolution: {integrity: sha512-yBYjY9QX2hnRmZHAjG/f13MzmBzxzYgQhFrke06TTyKY5zSTEqkOeukBzIdVA3j3ulu8Qa3MbVFShV7T2RmGtQ==} engines: {node: '>= 0.4'} octokit@4.0.2: @@ -2583,6 +2793,9 @@ packages: picocolors@1.0.1: resolution: {integrity: sha512-anP1Z8qwhkbmu7MFP5iTt+wQKXgwzf7zTyGlcdzabySa9vd0Xt392U0rVmz9poOaBj0uHJKyyo9/upk0HrEQew==} + picocolors@1.1.1: + resolution: {integrity: sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==} + picomatch@2.3.1: resolution: {integrity: sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==} engines: {node: '>=8.6'} @@ -2601,10 +2814,24 @@ packages: resolution: {integrity: sha512-WtARBjgZ7LNEkrGWxMBN/jvlFiE17LTbBoH0konmBU684Kd0uIiDwBXlcTCW7iJnA6HfIKwUssS/2AC6cDEanw==} hasBin: true + playwright-core@1.49.0: + resolution: {integrity: sha512-R+3KKTQF3npy5GTiKH/T+kdhoJfJojjHESR1YEWhYuEKRVfVaxH3+4+GvXE5xyCngCxhxnykk0Vlah9v8fs3jA==} + engines: {node: '>=18'} + hasBin: true + + playwright@1.49.0: + resolution: {integrity: sha512-eKpmys0UFDnfNb3vfsf8Vx2LEOtflgRebl0Im2eQQnYMA4Aqd+Zw8bEOB+7ZKvN76901mRnqdsiOGKxzVTbi7A==} + engines: {node: '>=18'} + hasBin: true + pluralize@8.0.0: resolution: {integrity: sha512-Nc3IT5yHzflTfbjgqWcCPpo7DaKy4FnpB0l/zCAW0Tc7jxAiuqSxHasntB3D7887LSrA93kDJ9IXovxJYxyLCA==} engines: {node: '>=4'} + possible-typed-array-names@1.0.0: + resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==} + engines: {node: '>= 0.4'} + postcss@8.4.38: resolution: {integrity: sha512-Wglpdk03BSfXkHoQa3b/oulrotAkwrlLDRSOb9D0bN86FdRyE9lppSp33aHNPgBa0JKCoB+drFLZkQoRRYae5A==} engines: {node: ^10 || ^12 || >=14} @@ -2613,18 +2840,14 @@ packages: resolution: {integrity: sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==} engines: {node: '>= 0.8.0'} - prettier-linter-helpers@1.0.0: - resolution: {integrity: sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==} - engines: {node: '>=6.0.0'} - prettier@3.4.2: resolution: {integrity: sha512-e9MewbtFo+Fevyuxn/4rrcDAaq0IYxPGLvObpQjiZBMAzB9IGmzlnG9RZy3FFas+eBMu2vA0CszMeduow5dIuQ==} engines: {node: '>=14'} hasBin: true - prisma@5.22.0: - resolution: {integrity: sha512-vtpjW3XuYCSnMsNVBjLMNkTj6OZbudcPPTPYHqX0CJfpcdWciI1dM8uHETwmDxxiqEwCIE6WvXucWUetJgfu/A==} - engines: {node: '>=16.13'} + prisma@6.0.1: + resolution: {integrity: sha512-CaMNFHkf+DDq8zq3X/JJsQ4Koy7dyWwwtOKibkT/Am9j/tDxcfbg7+lB1Dzhx18G/+RQCMgjPYB61bhRqteNBQ==} + engines: {node: '>=18.18'} hasBin: true process-warning@4.0.0: @@ -2638,6 +2861,9 @@ packages: resolution: {integrity: sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==} engines: {node: '>=0.4.0'} + prop-types@15.8.1: + resolution: {integrity: sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==} + proxy-addr@2.0.7: resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} engines: {node: '>= 0.10'} @@ -2679,6 +2905,13 @@ packages: quick-format-unescaped@4.0.4: resolution: {integrity: sha512-tYC1Q1hgyRuHgloV/YXs2w15unPVh8qfu/qCTfhTYamaw7fyhumKa2yGpdSo87vY32rIclj+4fWYQXUMs9EHvg==} + react-is@16.13.1: + resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} + + react@19.0.0: + resolution: {integrity: sha512-V8AVnmPIICiWpGfm6GLzCR/W5FXLchHop40W4nXBmdlEceh16rCN8O8LNWm5bh5XUX91fh7KpA+W0TgMKmgTpQ==} + engines: {node: '>=0.10.0'} + read-pkg-up@7.0.1: resolution: {integrity: sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==} engines: {node: '>=8'} @@ -2699,6 +2932,10 @@ packages: resolution: {integrity: sha512-57frrGM/OCTLqLOAh0mhVA9VBMHd+9U7Zb2THMGdBUoZVOtGbJzjxsYGDJ3A9AYYCP4hn6y1TVbaOfzWtm5GFg==} engines: {node: '>= 12.13.0'} + reflect.getprototypeof@1.0.8: + resolution: {integrity: sha512-B5dj6usc5dkk8uFliwjwDHM8To5/QwdKz9JcBZ8Ic4G1f0YmeeJTtE/ZTdgRFPAfxZFiUaPhZ1Jcs4qeagItGQ==} + engines: {node: '>= 0.4'} + regexp-tree@0.1.27: resolution: {integrity: sha512-iETxpjK6YoRWJG5o6hXLwvjYAoW+FEZn9os0PD/b6AP6xQwsa/Y7lCVgIixBbUPMfhu+i2LtdeAqVTgGlQarfA==} hasBin: true @@ -2707,6 +2944,10 @@ packages: resolution: {integrity: sha512-sy6TXMN+hnP/wMy+ISxg3krXx7BAtWVO4UouuCN/ziM9UEne0euamVNafDfvC83bRNr95y0V5iijeDQFUNpvrg==} engines: {node: '>= 0.4'} + regexp.prototype.flags@1.5.3: + resolution: {integrity: sha512-vqlC04+RQoFalODCbCumG2xIOvapzVMHwsyIGM/SIE8fRhFFsXeH8/QQ+s0T0kDAhKc4k30s73/0ydkHQz6HlQ==} + engines: {node: '>= 0.4'} + regjsparser@0.10.0: resolution: {integrity: sha512-qx+xQGZVsy55CH0a1hiVwHmqjLryfh7wQyF5HO07XJ9f7dQMY/gPQHhlyDkIzJKC+x2fUCpCcUODUUUFrm7SHA==} hasBin: true @@ -2734,6 +2975,10 @@ packages: resolution: {integrity: sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw==} hasBin: true + resolve@2.0.0-next.5: + resolution: {integrity: sha512-U7WjGVG9sH8tvjW5SmGbQuui75FiyjAX72HX15DwBBwF9dNiQZRQAg9nnPhYy+TUnE0+VcrttuvNI8oSxZcocA==} + hasBin: true + ret@0.5.0: resolution: {integrity: sha512-I1XxrZSQ+oErkRR4jYbAyEEu2I0avBvvMM5JN+6EBprOGRCs63ENqZ3vjavq8fBw2+62G5LF5XelKwuJpcvcxw==} engines: {node: '>=10'} @@ -2762,12 +3007,20 @@ packages: resolution: {integrity: sha512-6XbUAseYE2KtOuGueyeobCySj9L4+66Tn6KQMOPQJrAJEowYKW/YR/MGJZl7FdydUdaFu4LYyDZjxf4/Nmo23Q==} engines: {node: '>=0.4'} + safe-array-concat@1.1.2: + resolution: {integrity: sha512-vj6RsCsWBCf19jIeHEfkRMw8DPiBb+DMXklQ/1SGDHOMlHdPUkZXFQ2YdplS23zESTijAcurb1aSgJA3AgMu1Q==} + engines: {node: '>=0.4'} + safe-buffer@5.2.1: resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==} safe-regex-test@1.0.0: resolution: {integrity: sha512-JBUUzyOgEwXQY1NuPtvcj/qcBDbDmEvWufhlnXZIm75DEHp+afM1r1ujJpJsV/gSM4t59tpDyPi1sd6ZaPFfsA==} + safe-regex-test@1.0.3: + resolution: {integrity: sha512-CdASjNJPvRa7roO6Ra/gLYBTzYzzPyyBXxIMdGW3USQLyjWEls2RgW5UBTXaQVp+OrpeCK3bLem8smtmheoRuw==} + engines: {node: '>= 0.4'} + safe-regex2@4.0.0: resolution: {integrity: sha512-Hvjfv25jPDVr3U+4LDzBuZPPOymELG3PYcSk5hcevooo1yxxamQL/bHs/GrEPGmMoMEwRrHVGiCA1pXi97B8Ew==} @@ -2803,10 +3056,18 @@ packages: resolution: {integrity: sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==} engines: {node: '>= 0.4'} + set-function-length@1.2.2: + resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==} + engines: {node: '>= 0.4'} + set-function-name@2.0.1: resolution: {integrity: sha512-tMNCiqYVkXIZgc2Hnoy2IvC/f8ezc5koaRFkCjrpWzGpCd3qbZXPzVy9MAZzK1ch/X0jvSkojys3oqJN0qCmdA==} engines: {node: '>= 0.4'} + set-function-name@2.0.2: + resolution: {integrity: sha512-7PGFlmtwsEADb0WYyvCMa1t+yke6daIG4Wirafur5kcf+MhUnPms1UeR0CKQdTZD81yESwMHbtn+TR+dMviakQ==} + engines: {node: '>= 0.4'} + shebang-command@2.0.0: resolution: {integrity: sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==} engines: {node: '>=8'} @@ -2818,6 +3079,10 @@ packages: side-channel@1.0.4: resolution: {integrity: sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==} + side-channel@1.0.6: + resolution: {integrity: sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==} + engines: {node: '>= 0.4'} + siginfo@2.0.0: resolution: {integrity: sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==} @@ -2913,16 +3178,31 @@ packages: resolution: {integrity: sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==} engines: {node: '>=12'} + string.prototype.matchall@4.0.11: + resolution: {integrity: sha512-NUdh0aDavY2og7IbBPenWqR9exH+E26Sv8e0/eTe1tltDGZL+GtBkDAnnyBtmekfK6/Dq3MkcGtzXFEd1LQrtg==} + engines: {node: '>= 0.4'} + + string.prototype.repeat@1.0.0: + resolution: {integrity: sha512-0u/TldDbKD8bFCQ/4f5+mNRrXwZ8hg2w7ZR8wa16e8z9XpePWl3eGEcUD0OXpEH/VJH/2G3gjUtR3ZOiBe2S/w==} + string.prototype.trim@1.2.8: resolution: {integrity: sha512-lfjY4HcixfQXOfaqCvcBuOIapyaroTXhbkfJN3gcB1OtyupngWK4sEET9Knd0cXd28kTUqu/kHoV4HKSJdnjiQ==} engines: {node: '>= 0.4'} - string.prototype.trimend@1.0.7: - resolution: {integrity: sha512-Ni79DqeB72ZFq1uH/L6zJ+DKZTkOtPIHovb3YZHQViE+HDouuU4mBrLOLDn5Dde3RF8qw5qVETEjhu9locMLvA==} + string.prototype.trim@1.2.9: + resolution: {integrity: sha512-klHuCNxiMZ8MlsOihJhJEBJAiMVqU3Z2nEXWfWnIqjN0gEFS9J9+IxKozWWtQGcgoa1WUZzLjKPTr4ZHNFTFxw==} + engines: {node: '>= 0.4'} + + string.prototype.trimend@1.0.8: + resolution: {integrity: sha512-p73uL5VCHCO2BZZ6krwwQE3kCzM7NKmis8S//xEC6fQonchbum4eP6kR4DLEjQFO3Wnj3Fuo8NM0kOSjVdHjZQ==} string.prototype.trimstart@1.0.7: resolution: {integrity: sha512-NGhtDFu3jCEm7B4Fy0DpLewdJQOZcQ0rGbwQ/+stjnrp2i+rlKeCvos9hOIeCmqwratM47OBxY7uFZzjxHXmrg==} + string.prototype.trimstart@1.0.8: + resolution: {integrity: sha512-UXSH262CSZY1tfu3G3Secr6uGLCFVPMhIqHjlgCUtCCcgihYc/xKs9djMTMUOb2j1mVSeU8EU6NWc/iQKU6Gfg==} + engines: {node: '>= 0.4'} + string_decoder@1.3.0: resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==} @@ -2978,9 +3258,6 @@ packages: text-hex@1.0.0: resolution: {integrity: sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==} - text-table@0.2.0: - resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==} - thread-stream@3.1.0: resolution: {integrity: sha512-OqyPZ9u96VohAyMfJykzmivOrY2wfMSf3C5TtFJVgN+Hm6aj+voFhlK+kZEIv2FBh1X6Xp3DlnCOfEQ3B2J86A==} @@ -3044,6 +3321,10 @@ packages: resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} engines: {node: '>= 0.8.0'} + type-fest@0.20.2: + resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==} + engines: {node: '>=10'} + type-fest@0.6.0: resolution: {integrity: sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==} engines: {node: '>=8'} @@ -3056,17 +3337,33 @@ packages: resolution: {integrity: sha512-Y8KTSIglk9OZEr8zywiIHG/kmQ7KWyjseXs1CbSo8vC42w7hg2HgYTxSWwP0+is7bWDc1H+Fo026CpHFwm8tkw==} engines: {node: '>= 0.4'} + typed-array-buffer@1.0.2: + resolution: {integrity: sha512-gEymJYKZtKXzzBzM4jqa9w6Q1Jjm7x2d+sh19AdsD4wqnMPDYyvwpsIc2Q/835kHuo3BEQ7CjelGhfTsoBb2MQ==} + engines: {node: '>= 0.4'} + typed-array-byte-length@1.0.0: resolution: {integrity: sha512-Or/+kvLxNpeQ9DtSydonMxCx+9ZXOswtwJn17SNLvhptaXYDJvkFFP5zbfU/uLmvnBJlI4yrnXRxpdWH/M5tNA==} engines: {node: '>= 0.4'} + typed-array-byte-length@1.0.1: + resolution: {integrity: sha512-3iMJ9q0ao7WE9tWcaYKIptkNBuOIcZCCT0d4MRvuuH88fEoEH62IuQe0OtraD3ebQEoTRk8XCBoknUNc1Y67pw==} + engines: {node: '>= 0.4'} + typed-array-byte-offset@1.0.0: resolution: {integrity: sha512-RD97prjEt9EL8YgAgpOkf3O4IF9lhJFr9g0htQkm0rchFp/Vx7LW5Q8fSXXub7BXAODyUQohRMyOc3faCPd0hg==} engines: {node: '>= 0.4'} + typed-array-byte-offset@1.0.3: + resolution: {integrity: sha512-GsvTyUHTriq6o/bHcTd0vM7OQ9JEdlvluu9YISaA7+KzDzPaIzEeDFNkTfhdE3MYcNhNi0vq/LlegYgIs5yPAw==} + engines: {node: '>= 0.4'} + typed-array-length@1.0.4: resolution: {integrity: sha512-KjZypGq+I/H7HI5HlOoGHkWUUGq+Q0TPhQurLbyrVrvnKTBgzLhIJ7j6J/XTQOi0d1RjyZ0wdas8bKs2p0x3Ng==} + typed-array-length@1.0.7: + resolution: {integrity: sha512-3KS2b+kL7fsuk/eJZ7EQdnEmQoaho/r6KUef7hxvltNA5DR8NAUM+8wJMbJyZ4G9/7i3v5zPBIMN5aybAh2/Jg==} + engines: {node: '>= 0.4'} + typed-query-selector@2.12.0: resolution: {integrity: sha512-SbklCd1F0EiZOyPiW192rrHZzZ5sBijB6xM+cpmrwDqObvdtunOHHIk9fCGsoK5JVIYXoyEp4iEdE3upFH3PAg==} @@ -3086,8 +3383,8 @@ packages: unbzip2-stream@1.4.3: resolution: {integrity: sha512-mlExGW4w71ebDJviH16lQLtZS32VKqsSfk80GCfUlwT/4/hNRFsoscrF/c++9xinkMzECL1uL9DDwXqFWkruPg==} - undici-types@6.19.8: - resolution: {integrity: sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==} + undici-types@6.20.0: + resolution: {integrity: sha512-Ny6QZ2Nju20vw1SRHe3d9jVu6gJ+4e3+MMpqu7pqE5HT6WsTSlce++GQmK5UXS8mzV8DSYHrQH+Xrf2jVcuKNg==} undici@6.19.8: resolution: {integrity: sha512-U8uCCl2x9TK3WANvmBavymRzxbfFYG+tAu+fgx3zxQy3qdagQqBLwJVrdyO1TBfUXvfKveMKJZhpvUYoOjM+4g==} @@ -3109,6 +3406,12 @@ packages: peerDependencies: browserslist: '>= 4.21.0' + update-browserslist-db@1.1.1: + resolution: {integrity: sha512-R8UzCaa9Az+38REPiJ1tXlImTJXlVfgHZsglwBD/k6nj76ctsH1E3q4doGrukiLQd3sGQYu56r5+lo5r94l29A==} + hasBin: true + peerDependencies: + browserslist: '>= 4.21.0' + uri-js@4.4.1: resolution: {integrity: sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==} @@ -3190,11 +3493,23 @@ packages: which-boxed-primitive@1.0.2: resolution: {integrity: sha512-bwZdv0AKLpplFY2KZRX6TvyuN7ojjr7lwkg6ml0roIy9YeuSr7JS372qlNW18UQYzgYK9ziGcerWqZOmEn9VNg==} + which-builtin-type@1.2.0: + resolution: {integrity: sha512-I+qLGQ/vucCby4tf5HsLmGueEla4ZhwTBSqaooS+Y0BuxN4Cp+okmGuV+8mXZ84KDI9BA+oklo+RzKg0ONdSUA==} + engines: {node: '>= 0.4'} + + which-collection@1.0.2: + resolution: {integrity: sha512-K4jVyjnBdgvc86Y6BkaLZEN933SwYOuBFkdmBu9ZfkcAbdVbpITnDmjvZ/aQjRXQrv5EPkTnD1s39GiiqbngCw==} + engines: {node: '>= 0.4'} + which-typed-array@1.1.13: resolution: {integrity: sha512-P5Nra0qjSncduVPEAr7xhoF5guty49ArDTwzJ/yNuPIbZppyRxFQsRCWrocxIY+CnMVG+qfbU2FmDKyvSGClow==} engines: {node: '>= 0.4'} - which@2.0.2: + which-typed-array@1.1.16: + resolution: {integrity: sha512-g+N+GAWiRj66DngFwHvISJd+ITsyphZvD1vChfVg6cEdnzy53GzB3oy0fUNlvhz7H7+MiqhYr26qxQShCpKTTQ==} + engines: {node: '>= 0.4'} + + which@2.0.2: resolution: {integrity: sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==} engines: {node: '>= 8'} hasBin: true @@ -3484,11 +3799,11 @@ snapshots: - bufferutil - utf-8-validate - '@es-joy/jsdoccomment@0.46.0': + '@es-joy/jsdoccomment@0.49.0': dependencies: comment-parser: 1.4.1 esquery: 1.6.0 - jsdoc-type-pratt-parser: 4.0.0 + jsdoc-type-pratt-parser: 4.1.0 '@esbuild/aix-ppc64@0.21.5': optional: true @@ -3631,30 +3946,34 @@ snapshots: '@esbuild/win32-x64@0.23.0': optional: true - '@eslint-community/eslint-utils@4.4.0(eslint@9.14.0)': + '@eslint-community/eslint-utils@4.4.0(eslint@9.16.0)': dependencies: - eslint: 9.14.0 + eslint: 9.16.0 eslint-visitor-keys: 3.4.3 '@eslint-community/regexpp@4.12.1': {} - '@eslint/compat@1.1.1': {} + '@eslint/compat@1.2.4(eslint@9.16.0)': + optionalDependencies: + eslint: 9.16.0 - '@eslint/config-array@0.18.0': + '@eslint/config-array@0.19.1': dependencies: - '@eslint/object-schema': 2.1.4 + '@eslint/object-schema': 2.1.5 debug: 4.3.7 minimatch: 3.1.2 transitivePeerDependencies: - supports-color - '@eslint/core@0.7.0': {} + '@eslint/core@0.9.1': + dependencies: + '@types/json-schema': 7.0.15 - '@eslint/eslintrc@3.1.0': + '@eslint/eslintrc@3.2.0': dependencies: ajv: 6.12.6 debug: 4.3.7 - espree: 10.1.0 + espree: 10.3.0 globals: 14.0.0 ignore: 5.3.1 import-fresh: 3.3.0 @@ -3664,13 +3983,11 @@ snapshots: transitivePeerDependencies: - supports-color - '@eslint/js@9.14.0': {} - - '@eslint/js@9.7.0': {} + '@eslint/js@9.16.0': {} - '@eslint/object-schema@2.1.4': {} + '@eslint/object-schema@2.1.5': {} - '@eslint/plugin-kit@0.2.0': + '@eslint/plugin-kit@0.2.4': dependencies: levn: 0.4.1 @@ -3739,30 +4056,32 @@ snapshots: dependencies: sparse-bitfield: 3.0.3 - '@nhcarrigan/eslint-config@4.0.0(@types/eslint@8.56.11)(eslint@9.14.0)(prettier@3.4.2)(typescript@5.7.2)': - dependencies: - '@eslint/compat': 1.1.1 - '@eslint/eslintrc': 3.1.0 - '@eslint/js': 9.7.0 - '@stylistic/eslint-plugin': 2.3.0(eslint@9.14.0)(typescript@5.7.2) - '@typescript-eslint/eslint-plugin': 8.0.0-alpha.62(@typescript-eslint/parser@8.0.0-alpha.62(eslint@9.14.0)(typescript@5.7.2))(eslint@9.14.0)(typescript@5.7.2) - '@typescript-eslint/parser': 8.0.0-alpha.62(eslint@9.14.0)(typescript@5.7.2) - eslint: 9.14.0 - eslint-config-prettier: 9.1.0(eslint@9.14.0) - eslint-plugin-deprecation: 3.0.0(eslint@9.14.0)(typescript@5.7.2) - eslint-plugin-import: 2.29.1(@typescript-eslint/parser@8.0.0-alpha.62(eslint@9.14.0)(typescript@5.7.2))(eslint@9.14.0) - eslint-plugin-jsdoc: 48.8.3(eslint@9.14.0) - eslint-plugin-no-only-tests: 3.1.0 - eslint-plugin-prettier: 5.2.1(@types/eslint@8.56.11)(eslint-config-prettier@9.1.0(eslint@9.14.0))(eslint@9.14.0)(prettier@3.4.2) + '@nhcarrigan/eslint-config@5.0.0(@typescript-eslint/utils@8.18.0(eslint@9.16.0)(typescript@5.7.2))(eslint@9.16.0)(playwright@1.49.0)(react@19.0.0)(typescript@5.7.2)(vitest@2.1.8(@types/node@22.10.1))': + dependencies: + '@eslint/compat': 1.2.4(eslint@9.16.0) + '@eslint/eslintrc': 3.2.0 + '@eslint/js': 9.16.0 + '@stylistic/eslint-plugin': 2.12.0(eslint@9.16.0)(typescript@5.7.2) + '@typescript-eslint/eslint-plugin': 8.17.0(@typescript-eslint/parser@8.17.0(eslint@9.16.0)(typescript@5.7.2))(eslint@9.16.0)(typescript@5.7.2) + '@typescript-eslint/parser': 8.17.0(eslint@9.16.0)(typescript@5.7.2) + '@vitest/eslint-plugin': 1.1.14(@typescript-eslint/utils@8.18.0(eslint@9.16.0)(typescript@5.7.2))(eslint@9.16.0)(typescript@5.7.2)(vitest@2.1.8(@types/node@22.10.1)) + eslint: 9.16.0 + eslint-plugin-deprecation: 3.0.0(eslint@9.16.0)(typescript@5.7.2) + eslint-plugin-import: 2.31.0(@typescript-eslint/parser@8.17.0(eslint@9.16.0)(typescript@5.7.2))(eslint@9.16.0) + eslint-plugin-jsdoc: 50.6.0(eslint@9.16.0) + eslint-plugin-playwright: 2.1.0(eslint@9.16.0) + eslint-plugin-react: 7.37.2(eslint@9.16.0) eslint-plugin-sort-keys-fix: 1.1.2 - eslint-plugin-unicorn: 55.0.0(eslint@9.14.0) - globals: 15.8.0 + eslint-plugin-unicorn: 56.0.1(eslint@9.16.0) + globals: 15.13.0 + playwright: 1.49.0 + react: 19.0.0 typescript: 5.7.2 + vitest: 2.1.8(@types/node@22.10.1) transitivePeerDependencies: - - '@types/eslint' + - '@typescript-eslint/utils' - eslint-import-resolver-typescript - eslint-import-resolver-webpack - - prettier - supports-color '@nhcarrigan/typescript-config@4.0.0(typescript@5.7.2)': @@ -3933,30 +4252,30 @@ snapshots: '@pkgr/core@0.1.1': {} - '@prisma/client@5.22.0(prisma@5.22.0)': + '@prisma/client@6.0.1(prisma@6.0.1)': optionalDependencies: - prisma: 5.22.0 + prisma: 6.0.1 - '@prisma/debug@5.22.0': {} + '@prisma/debug@6.0.1': {} - '@prisma/engines-version@5.22.0-44.605197351a3c8bdd595af2d2a9bc3025bca48ea2': {} + '@prisma/engines-version@5.23.0-27.5dbef10bdbfb579e07d35cc85fb1518d357cb99e': {} - '@prisma/engines@5.22.0': + '@prisma/engines@6.0.1': dependencies: - '@prisma/debug': 5.22.0 - '@prisma/engines-version': 5.22.0-44.605197351a3c8bdd595af2d2a9bc3025bca48ea2 - '@prisma/fetch-engine': 5.22.0 - '@prisma/get-platform': 5.22.0 + '@prisma/debug': 6.0.1 + '@prisma/engines-version': 5.23.0-27.5dbef10bdbfb579e07d35cc85fb1518d357cb99e + '@prisma/fetch-engine': 6.0.1 + '@prisma/get-platform': 6.0.1 - '@prisma/fetch-engine@5.22.0': + '@prisma/fetch-engine@6.0.1': dependencies: - '@prisma/debug': 5.22.0 - '@prisma/engines-version': 5.22.0-44.605197351a3c8bdd595af2d2a9bc3025bca48ea2 - '@prisma/get-platform': 5.22.0 + '@prisma/debug': 6.0.1 + '@prisma/engines-version': 5.23.0-27.5dbef10bdbfb579e07d35cc85fb1518d357cb99e + '@prisma/get-platform': 6.0.1 - '@prisma/get-platform@5.22.0': + '@prisma/get-platform@6.0.1': dependencies: - '@prisma/debug': 5.22.0 + '@prisma/debug': 6.0.1 '@puppeteer/browsers@2.3.1': dependencies: @@ -4019,6 +4338,8 @@ snapshots: '@rollup/rollup-win32-x64-msvc@4.18.0': optional: true + '@rtsao/scc@1.1.0': {} + '@sapphire/async-queue@1.5.3': {} '@sapphire/shapeshift@4.0.0': @@ -4030,49 +4351,14 @@ snapshots: '@sapphire/snowflake@3.5.3': {} - '@stylistic/eslint-plugin-js@2.3.0(eslint@9.14.0)': - dependencies: - '@types/eslint': 8.56.11 - acorn: 8.12.0 - eslint: 9.14.0 - eslint-visitor-keys: 4.0.0 - espree: 10.1.0 - - '@stylistic/eslint-plugin-jsx@2.3.0(eslint@9.14.0)': + '@stylistic/eslint-plugin@2.12.0(eslint@9.16.0)(typescript@5.7.2)': dependencies: - '@stylistic/eslint-plugin-js': 2.3.0(eslint@9.14.0) - '@types/eslint': 8.56.11 - eslint: 9.14.0 + '@typescript-eslint/utils': 8.18.0(eslint@9.16.0)(typescript@5.7.2) + eslint: 9.16.0 + eslint-visitor-keys: 4.2.0 + espree: 10.3.0 estraverse: 5.3.0 picomatch: 4.0.2 - - '@stylistic/eslint-plugin-plus@2.3.0(eslint@9.14.0)(typescript@5.7.2)': - dependencies: - '@types/eslint': 8.56.11 - '@typescript-eslint/utils': 7.17.0(eslint@9.14.0)(typescript@5.7.2) - eslint: 9.14.0 - transitivePeerDependencies: - - supports-color - - typescript - - '@stylistic/eslint-plugin-ts@2.3.0(eslint@9.14.0)(typescript@5.7.2)': - dependencies: - '@stylistic/eslint-plugin-js': 2.3.0(eslint@9.14.0) - '@types/eslint': 8.56.11 - '@typescript-eslint/utils': 7.17.0(eslint@9.14.0)(typescript@5.7.2) - eslint: 9.14.0 - transitivePeerDependencies: - - supports-color - - typescript - - '@stylistic/eslint-plugin@2.3.0(eslint@9.14.0)(typescript@5.7.2)': - dependencies: - '@stylistic/eslint-plugin-js': 2.3.0(eslint@9.14.0) - '@stylistic/eslint-plugin-jsx': 2.3.0(eslint@9.14.0) - '@stylistic/eslint-plugin-plus': 2.3.0(eslint@9.14.0)(typescript@5.7.2) - '@stylistic/eslint-plugin-ts': 2.3.0(eslint@9.14.0)(typescript@5.7.2) - '@types/eslint': 8.56.11 - eslint: 9.14.0 transitivePeerDependencies: - supports-color - typescript @@ -4091,11 +4377,6 @@ snapshots: '@types/diff@6.0.0': {} - '@types/eslint@8.56.11': - dependencies: - '@types/estree': 1.0.6 - '@types/json-schema': 7.0.15 - '@types/estree@1.0.5': {} '@types/estree@1.0.6': {} @@ -4106,11 +4387,11 @@ snapshots: '@types/node-schedule@2.1.7': dependencies: - '@types/node': 22.9.0 + '@types/node': 22.10.1 - '@types/node@22.9.0': + '@types/node@22.10.1': dependencies: - undici-types: 6.19.8 + undici-types: 6.20.0 '@types/normalize-package-data@2.4.4': {} @@ -4126,22 +4407,22 @@ snapshots: '@types/ws@8.5.10': dependencies: - '@types/node': 22.9.0 + '@types/node': 22.10.1 '@types/yauzl@2.10.3': dependencies: - '@types/node': 22.9.0 + '@types/node': 22.10.1 optional: true - '@typescript-eslint/eslint-plugin@8.0.0-alpha.62(@typescript-eslint/parser@8.0.0-alpha.62(eslint@9.14.0)(typescript@5.7.2))(eslint@9.14.0)(typescript@5.7.2)': + '@typescript-eslint/eslint-plugin@8.17.0(@typescript-eslint/parser@8.17.0(eslint@9.16.0)(typescript@5.7.2))(eslint@9.16.0)(typescript@5.7.2)': dependencies: '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 8.0.0-alpha.62(eslint@9.14.0)(typescript@5.7.2) - '@typescript-eslint/scope-manager': 8.0.0-alpha.62 - '@typescript-eslint/type-utils': 8.0.0-alpha.62(eslint@9.14.0)(typescript@5.7.2) - '@typescript-eslint/utils': 8.0.0-alpha.62(eslint@9.14.0)(typescript@5.7.2) - '@typescript-eslint/visitor-keys': 8.0.0-alpha.62 - eslint: 9.14.0 + '@typescript-eslint/parser': 8.17.0(eslint@9.16.0)(typescript@5.7.2) + '@typescript-eslint/scope-manager': 8.17.0 + '@typescript-eslint/type-utils': 8.17.0(eslint@9.16.0)(typescript@5.7.2) + '@typescript-eslint/utils': 8.17.0(eslint@9.16.0)(typescript@5.7.2) + '@typescript-eslint/visitor-keys': 8.17.0 + eslint: 9.16.0 graphemer: 1.4.0 ignore: 5.3.1 natural-compare: 1.4.0 @@ -4151,14 +4432,14 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.0.0-alpha.62(eslint@9.14.0)(typescript@5.7.2)': + '@typescript-eslint/parser@8.17.0(eslint@9.16.0)(typescript@5.7.2)': dependencies: - '@typescript-eslint/scope-manager': 8.0.0-alpha.62 - '@typescript-eslint/types': 8.0.0-alpha.62 - '@typescript-eslint/typescript-estree': 8.0.0-alpha.62(typescript@5.7.2) - '@typescript-eslint/visitor-keys': 8.0.0-alpha.62 + '@typescript-eslint/scope-manager': 8.17.0 + '@typescript-eslint/types': 8.17.0 + '@typescript-eslint/typescript-estree': 8.17.0(typescript@5.7.2) + '@typescript-eslint/visitor-keys': 8.17.0 debug: 4.3.7 - eslint: 9.14.0 + eslint: 9.16.0 optionalDependencies: typescript: 5.7.2 transitivePeerDependencies: @@ -4169,26 +4450,33 @@ snapshots: '@typescript-eslint/types': 7.17.0 '@typescript-eslint/visitor-keys': 7.17.0 - '@typescript-eslint/scope-manager@8.0.0-alpha.62': + '@typescript-eslint/scope-manager@8.17.0': + dependencies: + '@typescript-eslint/types': 8.17.0 + '@typescript-eslint/visitor-keys': 8.17.0 + + '@typescript-eslint/scope-manager@8.18.0': dependencies: - '@typescript-eslint/types': 8.0.0-alpha.62 - '@typescript-eslint/visitor-keys': 8.0.0-alpha.62 + '@typescript-eslint/types': 8.18.0 + '@typescript-eslint/visitor-keys': 8.18.0 - '@typescript-eslint/type-utils@8.0.0-alpha.62(eslint@9.14.0)(typescript@5.7.2)': + '@typescript-eslint/type-utils@8.17.0(eslint@9.16.0)(typescript@5.7.2)': dependencies: - '@typescript-eslint/typescript-estree': 8.0.0-alpha.62(typescript@5.7.2) - '@typescript-eslint/utils': 8.0.0-alpha.62(eslint@9.14.0)(typescript@5.7.2) + '@typescript-eslint/typescript-estree': 8.17.0(typescript@5.7.2) + '@typescript-eslint/utils': 8.17.0(eslint@9.16.0)(typescript@5.7.2) debug: 4.3.7 + eslint: 9.16.0 ts-api-utils: 1.3.0(typescript@5.7.2) optionalDependencies: typescript: 5.7.2 transitivePeerDependencies: - - eslint - supports-color '@typescript-eslint/types@7.17.0': {} - '@typescript-eslint/types@8.0.0-alpha.62': {} + '@typescript-eslint/types@8.17.0': {} + + '@typescript-eslint/types@8.18.0': {} '@typescript-eslint/typescript-estree@7.17.0(typescript@5.7.2)': dependencies: @@ -4205,12 +4493,12 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/typescript-estree@8.0.0-alpha.62(typescript@5.7.2)': + '@typescript-eslint/typescript-estree@8.17.0(typescript@5.7.2)': dependencies: - '@typescript-eslint/types': 8.0.0-alpha.62 - '@typescript-eslint/visitor-keys': 8.0.0-alpha.62 + '@typescript-eslint/types': 8.17.0 + '@typescript-eslint/visitor-keys': 8.17.0 debug: 4.3.7 - globby: 11.1.0 + fast-glob: 3.3.2 is-glob: 4.0.3 minimatch: 9.0.5 semver: 7.6.3 @@ -4220,39 +4508,70 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@7.17.0(eslint@9.14.0)(typescript@5.7.2)': + '@typescript-eslint/typescript-estree@8.18.0(typescript@5.7.2)': + dependencies: + '@typescript-eslint/types': 8.18.0 + '@typescript-eslint/visitor-keys': 8.18.0 + debug: 4.3.7 + fast-glob: 3.3.2 + is-glob: 4.0.3 + minimatch: 9.0.5 + semver: 7.6.3 + ts-api-utils: 1.3.0(typescript@5.7.2) + typescript: 5.7.2 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/utils@7.17.0(eslint@9.16.0)(typescript@5.7.2)': dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.14.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.16.0) '@typescript-eslint/scope-manager': 7.17.0 '@typescript-eslint/types': 7.17.0 '@typescript-eslint/typescript-estree': 7.17.0(typescript@5.7.2) - eslint: 9.14.0 + eslint: 9.16.0 transitivePeerDependencies: - supports-color - typescript - '@typescript-eslint/utils@8.0.0-alpha.62(eslint@9.14.0)(typescript@5.7.2)': + '@typescript-eslint/utils@8.17.0(eslint@9.16.0)(typescript@5.7.2)': dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.14.0) - '@typescript-eslint/scope-manager': 8.0.0-alpha.62 - '@typescript-eslint/types': 8.0.0-alpha.62 - '@typescript-eslint/typescript-estree': 8.0.0-alpha.62(typescript@5.7.2) - eslint: 9.14.0 + '@eslint-community/eslint-utils': 4.4.0(eslint@9.16.0) + '@typescript-eslint/scope-manager': 8.17.0 + '@typescript-eslint/types': 8.17.0 + '@typescript-eslint/typescript-estree': 8.17.0(typescript@5.7.2) + eslint: 9.16.0 + optionalDependencies: + typescript: 5.7.2 + transitivePeerDependencies: + - supports-color + + '@typescript-eslint/utils@8.18.0(eslint@9.16.0)(typescript@5.7.2)': + dependencies: + '@eslint-community/eslint-utils': 4.4.0(eslint@9.16.0) + '@typescript-eslint/scope-manager': 8.18.0 + '@typescript-eslint/types': 8.18.0 + '@typescript-eslint/typescript-estree': 8.18.0(typescript@5.7.2) + eslint: 9.16.0 + typescript: 5.7.2 transitivePeerDependencies: - supports-color - - typescript '@typescript-eslint/visitor-keys@7.17.0': dependencies: '@typescript-eslint/types': 7.17.0 eslint-visitor-keys: 3.4.3 - '@typescript-eslint/visitor-keys@8.0.0-alpha.62': + '@typescript-eslint/visitor-keys@8.17.0': dependencies: - '@typescript-eslint/types': 8.0.0-alpha.62 - eslint-visitor-keys: 3.4.3 + '@typescript-eslint/types': 8.17.0 + eslint-visitor-keys: 4.2.0 - '@vitest/coverage-istanbul@2.1.8(vitest@2.1.8(@types/node@22.9.0))': + '@typescript-eslint/visitor-keys@8.18.0': + dependencies: + '@typescript-eslint/types': 8.18.0 + eslint-visitor-keys: 4.2.0 + + '@vitest/coverage-istanbul@2.1.8(vitest@2.1.8(@types/node@22.10.1))': dependencies: '@istanbuljs/schema': 0.1.3 debug: 4.3.7 @@ -4264,10 +4583,18 @@ snapshots: magicast: 0.3.5 test-exclude: 7.0.1 tinyrainbow: 1.2.0 - vitest: 2.1.8(@types/node@22.9.0) + vitest: 2.1.8(@types/node@22.10.1) transitivePeerDependencies: - supports-color + '@vitest/eslint-plugin@1.1.14(@typescript-eslint/utils@8.18.0(eslint@9.16.0)(typescript@5.7.2))(eslint@9.16.0)(typescript@5.7.2)(vitest@2.1.8(@types/node@22.10.1))': + dependencies: + '@typescript-eslint/utils': 8.18.0(eslint@9.16.0)(typescript@5.7.2) + eslint: 9.16.0 + optionalDependencies: + typescript: 5.7.2 + vitest: 2.1.8(@types/node@22.10.1) + '@vitest/expect@2.1.8': dependencies: '@vitest/spy': 2.1.8 @@ -4275,13 +4602,13 @@ snapshots: chai: 5.1.2 tinyrainbow: 1.2.0 - '@vitest/mocker@2.1.8(vite@5.3.1(@types/node@22.9.0))': + '@vitest/mocker@2.1.8(vite@5.3.1(@types/node@22.10.1))': dependencies: '@vitest/spy': 2.1.8 estree-walker: 3.0.3 magic-string: 0.30.12 optionalDependencies: - vite: 5.3.1(@types/node@22.9.0) + vite: 5.3.1(@types/node@22.10.1) '@vitest/pretty-format@2.1.8': dependencies: @@ -4320,18 +4647,12 @@ snapshots: dependencies: acorn: 7.4.1 - acorn-jsx@5.3.2(acorn@8.12.0): - dependencies: - acorn: 8.12.0 - acorn-jsx@5.3.2(acorn@8.14.0): dependencies: acorn: 8.14.0 acorn@7.4.1: {} - acorn@8.12.0: {} - acorn@8.14.0: {} agent-base@7.1.0: @@ -4386,23 +4707,39 @@ snapshots: call-bind: 1.0.5 is-array-buffer: 3.0.2 - array-includes@3.1.7: + array-buffer-byte-length@1.0.1: dependencies: - call-bind: 1.0.5 - define-properties: 1.2.0 - es-abstract: 1.22.3 - get-intrinsic: 1.2.2 + call-bind: 1.0.8 + is-array-buffer: 3.0.4 + + array-includes@3.1.8: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + es-abstract: 1.23.5 + es-object-atoms: 1.0.0 + get-intrinsic: 1.2.5 is-string: 1.0.7 array-union@2.1.0: {} - array.prototype.findlastindex@1.2.3: + array.prototype.findlast@1.2.5: dependencies: - call-bind: 1.0.5 - define-properties: 1.2.0 - es-abstract: 1.22.3 - es-shim-unscopables: 1.0.0 - get-intrinsic: 1.2.2 + call-bind: 1.0.8 + define-properties: 1.2.1 + es-abstract: 1.23.5 + es-errors: 1.3.0 + es-object-atoms: 1.0.0 + es-shim-unscopables: 1.0.2 + + array.prototype.findlastindex@1.2.5: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + es-abstract: 1.23.5 + es-errors: 1.3.0 + es-object-atoms: 1.0.0 + es-shim-unscopables: 1.0.2 array.prototype.flat@1.3.2: dependencies: @@ -4418,6 +4755,14 @@ snapshots: es-abstract: 1.22.3 es-shim-unscopables: 1.0.0 + array.prototype.tosorted@1.1.4: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + es-abstract: 1.23.5 + es-errors: 1.3.0 + es-shim-unscopables: 1.0.2 + arraybuffer.prototype.slice@1.0.2: dependencies: array-buffer-byte-length: 1.0.0 @@ -4428,6 +4773,17 @@ snapshots: is-array-buffer: 3.0.2 is-shared-array-buffer: 1.0.2 + arraybuffer.prototype.slice@1.0.3: + dependencies: + array-buffer-byte-length: 1.0.1 + call-bind: 1.0.8 + define-properties: 1.2.1 + es-abstract: 1.23.5 + es-errors: 1.3.0 + get-intrinsic: 1.2.5 + is-array-buffer: 3.0.4 + is-shared-array-buffer: 1.0.3 + assertion-error@2.0.1: {} ast-types@0.13.4: @@ -4442,6 +4798,10 @@ snapshots: available-typed-arrays@1.0.5: {} + available-typed-arrays@1.0.7: + dependencies: + possible-typed-array-names: 1.0.0 + avvio@9.1.0: dependencies: '@fastify/error': 4.0.0 @@ -4518,6 +4878,13 @@ snapshots: node-releases: 2.0.14 update-browserslist-db: 1.0.16(browserslist@4.23.1) + browserslist@4.24.2: + dependencies: + caniuse-lite: 1.0.30001687 + electron-to-chromium: 1.5.71 + node-releases: 2.0.18 + update-browserslist-db: 1.1.1(browserslist@4.24.2) + bson@6.10.0: {} buffer-crc32@0.2.13: {} @@ -4538,16 +4905,30 @@ snapshots: cac@6.7.14: {} + call-bind-apply-helpers@1.0.1: + dependencies: + es-errors: 1.3.0 + function-bind: 1.1.2 + call-bind@1.0.5: dependencies: function-bind: 1.1.2 get-intrinsic: 1.2.2 set-function-length: 1.1.1 + call-bind@1.0.8: + dependencies: + call-bind-apply-helpers: 1.0.1 + es-define-property: 1.0.1 + get-intrinsic: 1.2.5 + set-function-length: 1.2.2 + callsites@3.1.0: {} caniuse-lite@1.0.30001637: {} + caniuse-lite@1.0.30001687: {} + chai@5.1.2: dependencies: assertion-error: 2.0.1 @@ -4631,9 +5012,9 @@ snapshots: cookie@1.0.1: {} - core-js-compat@3.37.1: + core-js-compat@3.39.0: dependencies: - browserslist: 4.23.1 + browserslist: 4.24.2 cosmiconfig@9.0.0(typescript@5.7.2): dependencies: @@ -4654,15 +5035,35 @@ snapshots: shebang-command: 2.0.0 which: 2.0.2 + cross-spawn@7.0.6: + dependencies: + path-key: 3.1.1 + shebang-command: 2.0.0 + which: 2.0.2 + data-uri-to-buffer@6.0.2: {} - debug@3.2.7: + data-view-buffer@1.0.1: dependencies: - ms: 2.1.3 + call-bind: 1.0.8 + es-errors: 1.3.0 + is-data-view: 1.0.1 + + data-view-byte-length@1.0.1: + dependencies: + call-bind: 1.0.8 + es-errors: 1.3.0 + is-data-view: 1.0.1 - debug@4.3.6: + data-view-byte-offset@1.0.0: dependencies: - ms: 2.1.2 + call-bind: 1.0.8 + es-errors: 1.3.0 + is-data-view: 1.0.1 + + debug@3.2.7: + dependencies: + ms: 2.1.3 debug@4.3.7: dependencies: @@ -4674,7 +5075,7 @@ snapshots: deepl-node@1.15.0: dependencies: - '@types/node': 22.9.0 + '@types/node': 22.10.1 axios: 1.7.5 form-data: 3.0.1 loglevel: 1.9.1 @@ -4683,15 +5084,27 @@ snapshots: define-data-property@1.1.1: dependencies: - get-intrinsic: 1.2.2 + get-intrinsic: 1.2.5 gopd: 1.0.1 has-property-descriptors: 1.0.0 + define-data-property@1.1.4: + dependencies: + es-define-property: 1.0.1 + es-errors: 1.3.0 + gopd: 1.0.1 + define-properties@1.2.0: dependencies: has-property-descriptors: 1.0.0 object-keys: 1.1.1 + define-properties@1.2.1: + dependencies: + define-data-property: 1.1.1 + has-property-descriptors: 1.0.0 + object-keys: 1.1.1 + degenerator@5.0.1: dependencies: ast-types: 0.13.4 @@ -4747,6 +5160,12 @@ snapshots: dotenv@16.4.7: {} + dunder-proto@1.0.0: + dependencies: + call-bind-apply-helpers: 1.0.1 + es-errors: 1.3.0 + gopd: 1.2.0 + eastasianwidth@0.2.0: {} ecdsa-sig-formatter@1.0.11: @@ -4755,6 +5174,8 @@ snapshots: electron-to-chromium@1.4.812: {} + electron-to-chromium@1.5.71: {} + emoji-regex@8.0.0: {} emoji-regex@9.2.2: {} @@ -4787,7 +5208,7 @@ snapshots: has-property-descriptors: 1.0.0 has-proto: 1.0.1 has-symbols: 1.0.3 - hasown: 2.0.0 + hasown: 2.0.2 internal-slot: 1.0.5 is-array-buffer: 3.0.2 is-callable: 1.2.7 @@ -4804,7 +5225,7 @@ snapshots: safe-array-concat: 1.0.1 safe-regex-test: 1.0.0 string.prototype.trim: 1.2.8 - string.prototype.trimend: 1.0.7 + string.prototype.trimend: 1.0.8 string.prototype.trimstart: 1.0.7 typed-array-buffer: 1.0.0 typed-array-byte-length: 1.0.0 @@ -4813,18 +5234,103 @@ snapshots: unbox-primitive: 1.0.2 which-typed-array: 1.1.13 + es-abstract@1.23.5: + dependencies: + array-buffer-byte-length: 1.0.1 + arraybuffer.prototype.slice: 1.0.3 + available-typed-arrays: 1.0.7 + call-bind: 1.0.8 + data-view-buffer: 1.0.1 + data-view-byte-length: 1.0.1 + data-view-byte-offset: 1.0.0 + es-define-property: 1.0.1 + es-errors: 1.3.0 + es-object-atoms: 1.0.0 + es-set-tostringtag: 2.0.3 + es-to-primitive: 1.2.1 + function.prototype.name: 1.1.6 + get-intrinsic: 1.2.5 + get-symbol-description: 1.0.2 + globalthis: 1.0.4 + gopd: 1.0.1 + has-property-descriptors: 1.0.2 + has-proto: 1.2.0 + has-symbols: 1.0.3 + hasown: 2.0.2 + internal-slot: 1.0.7 + is-array-buffer: 3.0.4 + is-callable: 1.2.7 + is-data-view: 1.0.1 + is-negative-zero: 2.0.3 + is-regex: 1.1.4 + is-shared-array-buffer: 1.0.3 + is-string: 1.0.7 + is-typed-array: 1.1.13 + is-weakref: 1.0.2 + object-inspect: 1.13.3 + object-keys: 1.1.1 + object.assign: 4.1.5 + regexp.prototype.flags: 1.5.3 + safe-array-concat: 1.1.2 + safe-regex-test: 1.0.3 + string.prototype.trim: 1.2.9 + string.prototype.trimend: 1.0.8 + string.prototype.trimstart: 1.0.8 + typed-array-buffer: 1.0.2 + typed-array-byte-length: 1.0.1 + typed-array-byte-offset: 1.0.3 + typed-array-length: 1.0.7 + unbox-primitive: 1.0.2 + which-typed-array: 1.1.16 + + es-define-property@1.0.1: {} + + es-errors@1.3.0: {} + + es-iterator-helpers@1.2.0: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + es-abstract: 1.23.5 + es-errors: 1.3.0 + es-set-tostringtag: 2.0.3 + function-bind: 1.1.2 + get-intrinsic: 1.2.5 + globalthis: 1.0.4 + gopd: 1.0.1 + has-property-descriptors: 1.0.2 + has-proto: 1.2.0 + has-symbols: 1.0.3 + internal-slot: 1.0.7 + iterator.prototype: 1.1.3 + safe-array-concat: 1.1.2 + es-module-lexer@1.5.4: {} + es-object-atoms@1.0.0: + dependencies: + es-errors: 1.3.0 + es-set-tostringtag@2.0.1: dependencies: get-intrinsic: 1.2.2 has: 1.0.3 has-tostringtag: 1.0.0 + es-set-tostringtag@2.0.3: + dependencies: + get-intrinsic: 1.2.5 + has-tostringtag: 1.0.2 + hasown: 2.0.2 + es-shim-unscopables@1.0.0: dependencies: has: 1.0.3 + es-shim-unscopables@1.0.2: + dependencies: + hasown: 2.0.2 + es-to-primitive@1.2.1: dependencies: is-callable: 1.2.7 @@ -4886,6 +5392,8 @@ snapshots: escalade@3.1.2: {} + escalade@3.2.0: {} + escape-string-regexp@1.0.5: {} escape-string-regexp@4.0.0: {} @@ -4900,73 +5408,72 @@ snapshots: optionalDependencies: source-map: 0.6.1 - eslint-config-prettier@9.1.0(eslint@9.14.0): - dependencies: - eslint: 9.14.0 - eslint-import-resolver-node@0.3.9: dependencies: debug: 3.2.7 - is-core-module: 2.13.1 + is-core-module: 2.15.1 resolve: 1.22.8 transitivePeerDependencies: - supports-color - eslint-module-utils@2.8.0(@typescript-eslint/parser@8.0.0-alpha.62(eslint@9.14.0)(typescript@5.7.2))(eslint-import-resolver-node@0.3.9)(eslint@9.14.0): + eslint-module-utils@2.12.0(@typescript-eslint/parser@8.17.0(eslint@9.16.0)(typescript@5.7.2))(eslint-import-resolver-node@0.3.9)(eslint@9.16.0): dependencies: debug: 3.2.7 optionalDependencies: - '@typescript-eslint/parser': 8.0.0-alpha.62(eslint@9.14.0)(typescript@5.7.2) - eslint: 9.14.0 + '@typescript-eslint/parser': 8.17.0(eslint@9.16.0)(typescript@5.7.2) + eslint: 9.16.0 eslint-import-resolver-node: 0.3.9 transitivePeerDependencies: - supports-color - eslint-plugin-deprecation@3.0.0(eslint@9.14.0)(typescript@5.7.2): + eslint-plugin-deprecation@3.0.0(eslint@9.16.0)(typescript@5.7.2): dependencies: - '@typescript-eslint/utils': 7.17.0(eslint@9.14.0)(typescript@5.7.2) - eslint: 9.14.0 + '@typescript-eslint/utils': 7.17.0(eslint@9.16.0)(typescript@5.7.2) + eslint: 9.16.0 ts-api-utils: 1.3.0(typescript@5.7.2) tslib: 2.7.0 typescript: 5.7.2 transitivePeerDependencies: - supports-color - eslint-plugin-import@2.29.1(@typescript-eslint/parser@8.0.0-alpha.62(eslint@9.14.0)(typescript@5.7.2))(eslint@9.14.0): + eslint-plugin-import@2.31.0(@typescript-eslint/parser@8.17.0(eslint@9.16.0)(typescript@5.7.2))(eslint@9.16.0): dependencies: - array-includes: 3.1.7 - array.prototype.findlastindex: 1.2.3 + '@rtsao/scc': 1.1.0 + array-includes: 3.1.8 + array.prototype.findlastindex: 1.2.5 array.prototype.flat: 1.3.2 array.prototype.flatmap: 1.3.2 debug: 3.2.7 doctrine: 2.1.0 - eslint: 9.14.0 + eslint: 9.16.0 eslint-import-resolver-node: 0.3.9 - eslint-module-utils: 2.8.0(@typescript-eslint/parser@8.0.0-alpha.62(eslint@9.14.0)(typescript@5.7.2))(eslint-import-resolver-node@0.3.9)(eslint@9.14.0) - hasown: 2.0.0 - is-core-module: 2.13.1 + eslint-module-utils: 2.12.0(@typescript-eslint/parser@8.17.0(eslint@9.16.0)(typescript@5.7.2))(eslint-import-resolver-node@0.3.9)(eslint@9.16.0) + hasown: 2.0.2 + is-core-module: 2.15.1 is-glob: 4.0.3 minimatch: 3.1.2 - object.fromentries: 2.0.7 - object.groupby: 1.0.1 - object.values: 1.1.7 + object.fromentries: 2.0.8 + object.groupby: 1.0.3 + object.values: 1.2.0 semver: 6.3.1 + string.prototype.trimend: 1.0.8 tsconfig-paths: 3.15.0 optionalDependencies: - '@typescript-eslint/parser': 8.0.0-alpha.62(eslint@9.14.0)(typescript@5.7.2) + '@typescript-eslint/parser': 8.17.0(eslint@9.16.0)(typescript@5.7.2) transitivePeerDependencies: - eslint-import-resolver-typescript - eslint-import-resolver-webpack - supports-color - eslint-plugin-jsdoc@48.8.3(eslint@9.14.0): + eslint-plugin-jsdoc@50.6.0(eslint@9.16.0): dependencies: - '@es-joy/jsdoccomment': 0.46.0 + '@es-joy/jsdoccomment': 0.49.0 are-docs-informative: 0.0.2 comment-parser: 1.4.1 debug: 4.3.7 escape-string-regexp: 4.0.0 - eslint: 9.14.0 + eslint: 9.16.0 + espree: 10.3.0 esquery: 1.6.0 parse-imports: 2.1.1 semver: 7.6.3 @@ -4975,17 +5482,32 @@ snapshots: transitivePeerDependencies: - supports-color - eslint-plugin-no-only-tests@3.1.0: {} + eslint-plugin-playwright@2.1.0(eslint@9.16.0): + dependencies: + eslint: 9.16.0 + globals: 13.24.0 - eslint-plugin-prettier@5.2.1(@types/eslint@8.56.11)(eslint-config-prettier@9.1.0(eslint@9.14.0))(eslint@9.14.0)(prettier@3.4.2): + eslint-plugin-react@7.37.2(eslint@9.16.0): dependencies: - eslint: 9.14.0 - prettier: 3.4.2 - prettier-linter-helpers: 1.0.0 - synckit: 0.9.1 - optionalDependencies: - '@types/eslint': 8.56.11 - eslint-config-prettier: 9.1.0(eslint@9.14.0) + array-includes: 3.1.8 + array.prototype.findlast: 1.2.5 + array.prototype.flatmap: 1.3.2 + array.prototype.tosorted: 1.1.4 + doctrine: 2.1.0 + es-iterator-helpers: 1.2.0 + eslint: 9.16.0 + estraverse: 5.3.0 + hasown: 2.0.2 + jsx-ast-utils: 3.3.5 + minimatch: 3.1.2 + object.entries: 1.1.8 + object.fromentries: 2.0.8 + object.values: 1.2.0 + prop-types: 15.8.1 + resolve: 2.0.0-next.5 + semver: 6.3.1 + string.prototype.matchall: 4.0.11 + string.prototype.repeat: 1.0.0 eslint-plugin-sort-keys-fix@1.1.2: dependencies: @@ -4994,16 +5516,16 @@ snapshots: natural-compare: 1.4.0 requireindex: 1.2.0 - eslint-plugin-unicorn@55.0.0(eslint@9.14.0): + eslint-plugin-unicorn@56.0.1(eslint@9.16.0): dependencies: '@babel/helper-validator-identifier': 7.25.9 - '@eslint-community/eslint-utils': 4.4.0(eslint@9.14.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.16.0) ci-info: 4.0.0 clean-regexp: 1.0.0 - core-js-compat: 3.37.1 - eslint: 9.14.0 + core-js-compat: 3.39.0 + eslint: 9.16.0 esquery: 1.6.0 - globals: 15.8.0 + globals: 15.13.0 indent-string: 4.0.0 is-builtin-module: 3.2.1 jsesc: 3.0.2 @@ -5023,21 +5545,17 @@ snapshots: eslint-visitor-keys@3.4.3: {} - eslint-visitor-keys@4.0.0: {} - - eslint-visitor-keys@4.1.0: {} - eslint-visitor-keys@4.2.0: {} - eslint@9.14.0: + eslint@9.16.0: dependencies: - '@eslint-community/eslint-utils': 4.4.0(eslint@9.14.0) + '@eslint-community/eslint-utils': 4.4.0(eslint@9.16.0) '@eslint-community/regexpp': 4.12.1 - '@eslint/config-array': 0.18.0 - '@eslint/core': 0.7.0 - '@eslint/eslintrc': 3.1.0 - '@eslint/js': 9.14.0 - '@eslint/plugin-kit': 0.2.0 + '@eslint/config-array': 0.19.1 + '@eslint/core': 0.9.1 + '@eslint/eslintrc': 3.2.0 + '@eslint/js': 9.16.0 + '@eslint/plugin-kit': 0.2.4 '@humanfs/node': 0.16.6 '@humanwhocodes/module-importer': 1.0.1 '@humanwhocodes/retry': 0.4.1 @@ -5045,8 +5563,8 @@ snapshots: '@types/json-schema': 7.0.15 ajv: 6.12.6 chalk: 4.1.2 - cross-spawn: 7.0.3 - debug: 4.3.6 + cross-spawn: 7.0.6 + debug: 4.3.7 escape-string-regexp: 4.0.0 eslint-scope: 8.2.0 eslint-visitor-keys: 4.2.0 @@ -5065,16 +5583,9 @@ snapshots: minimatch: 3.1.2 natural-compare: 1.4.0 optionator: 0.9.3 - text-table: 0.2.0 transitivePeerDependencies: - supports-color - espree@10.1.0: - dependencies: - acorn: 8.12.0 - acorn-jsx: 5.3.2(acorn@8.12.0) - eslint-visitor-keys: 4.1.0 - espree@10.3.0: dependencies: acorn: 8.14.0 @@ -5125,8 +5636,6 @@ snapshots: fast-deep-equal@3.1.3: {} - fast-diff@1.3.0: {} - fast-fifo@1.3.2: {} fast-glob@3.2.12: @@ -5137,6 +5646,14 @@ snapshots: merge2: 1.4.1 micromatch: 4.0.5 + fast-glob@3.3.2: + dependencies: + '@nodelib/fs.stat': 2.0.5 + '@nodelib/fs.walk': 1.2.8 + glob-parent: 5.1.2 + merge2: 1.4.1 + micromatch: 4.0.5 + fast-json-stable-stringify@2.1.0: {} fast-json-stringify@6.0.0: @@ -5253,6 +5770,9 @@ snapshots: jsonfile: 6.1.0 universalify: 2.0.1 + fsevents@2.3.2: + optional: true + fsevents@2.3.3: optional: true @@ -5260,9 +5780,9 @@ snapshots: function.prototype.name@1.1.6: dependencies: - call-bind: 1.0.5 - define-properties: 1.2.0 - es-abstract: 1.22.3 + call-bind: 1.0.8 + define-properties: 1.2.1 + es-abstract: 1.23.5 functions-have-names: 1.2.3 functions-have-names@1.2.3: {} @@ -5276,7 +5796,18 @@ snapshots: function-bind: 1.1.2 has-proto: 1.0.1 has-symbols: 1.0.3 - hasown: 2.0.0 + hasown: 2.0.2 + + get-intrinsic@1.2.5: + dependencies: + call-bind-apply-helpers: 1.0.1 + dunder-proto: 1.0.0 + es-define-property: 1.0.1 + es-errors: 1.3.0 + function-bind: 1.1.2 + gopd: 1.2.0 + has-symbols: 1.1.0 + hasown: 2.0.2 get-stream@5.2.0: dependencies: @@ -5287,6 +5818,12 @@ snapshots: call-bind: 1.0.5 get-intrinsic: 1.2.2 + get-symbol-description@1.0.2: + dependencies: + call-bind: 1.0.8 + es-errors: 1.3.0 + get-intrinsic: 1.2.5 + get-tsconfig@4.7.5: dependencies: resolve-pkg-maps: 1.0.0 @@ -5328,14 +5865,23 @@ snapshots: globals@11.12.0: {} + globals@13.24.0: + dependencies: + type-fest: 0.20.2 + globals@14.0.0: {} - globals@15.8.0: {} + globals@15.13.0: {} globalthis@1.0.3: dependencies: define-properties: 1.2.0 + globalthis@1.0.4: + dependencies: + define-properties: 1.2.1 + gopd: 1.0.1 + globby@11.1.0: dependencies: array-union: 2.1.0 @@ -5347,7 +5893,9 @@ snapshots: gopd@1.0.1: dependencies: - get-intrinsic: 1.2.2 + get-intrinsic: 1.2.5 + + gopd@1.2.0: {} graceful-fs@4.2.11: {} @@ -5377,21 +5925,35 @@ snapshots: has-property-descriptors@1.0.0: dependencies: - get-intrinsic: 1.2.2 + get-intrinsic: 1.2.5 + + has-property-descriptors@1.0.2: + dependencies: + es-define-property: 1.0.1 has-proto@1.0.1: {} + has-proto@1.2.0: + dependencies: + dunder-proto: 1.0.0 + has-symbols@1.0.3: {} + has-symbols@1.1.0: {} + has-tostringtag@1.0.0: dependencies: has-symbols: 1.0.3 + has-tostringtag@1.0.2: + dependencies: + has-symbols: 1.0.3 + has@1.0.3: dependencies: function-bind: 1.1.2 - hasown@2.0.0: + hasown@2.0.2: dependencies: function-bind: 1.1.2 @@ -5438,6 +6000,12 @@ snapshots: has: 1.0.3 side-channel: 1.0.4 + internal-slot@1.0.7: + dependencies: + es-errors: 1.3.0 + hasown: 2.0.2 + side-channel: 1.0.4 + ip-address@9.0.5: dependencies: jsbn: 1.1.0 @@ -5451,17 +6019,26 @@ snapshots: get-intrinsic: 1.2.2 is-typed-array: 1.1.12 + is-array-buffer@3.0.4: + dependencies: + call-bind: 1.0.8 + get-intrinsic: 1.2.5 + is-arrayish@0.2.1: {} is-arrayish@0.3.2: {} + is-async-function@2.0.0: + dependencies: + has-tostringtag: 1.0.2 + is-bigint@1.0.4: dependencies: has-bigints: 1.0.2 is-boolean-object@1.1.2: dependencies: - call-bind: 1.0.5 + call-bind: 1.0.8 has-tostringtag: 1.0.0 is-builtin-module@3.2.1: @@ -5472,7 +6049,15 @@ snapshots: is-core-module@2.13.1: dependencies: - hasown: 2.0.0 + hasown: 2.0.2 + + is-core-module@2.15.1: + dependencies: + hasown: 2.0.2 + + is-data-view@1.0.1: + dependencies: + is-typed-array: 1.1.13 is-date-object@1.0.5: dependencies: @@ -5480,14 +6065,26 @@ snapshots: is-extglob@2.1.1: {} + is-finalizationregistry@1.1.0: + dependencies: + call-bind: 1.0.8 + is-fullwidth-code-point@3.0.0: {} + is-generator-function@1.0.10: + dependencies: + has-tostringtag: 1.0.2 + is-glob@4.0.3: dependencies: is-extglob: 2.1.1 + is-map@2.0.3: {} + is-negative-zero@2.0.2: {} + is-negative-zero@2.0.3: {} + is-number-object@1.0.7: dependencies: has-tostringtag: 1.0.0 @@ -5496,13 +6093,19 @@ snapshots: is-regex@1.1.4: dependencies: - call-bind: 1.0.5 + call-bind: 1.0.8 has-tostringtag: 1.0.0 + is-set@2.0.3: {} + is-shared-array-buffer@1.0.2: dependencies: call-bind: 1.0.5 + is-shared-array-buffer@1.0.3: + dependencies: + call-bind: 1.0.8 + is-stream@2.0.1: {} is-string@1.0.7: @@ -5517,9 +6120,20 @@ snapshots: dependencies: which-typed-array: 1.1.13 + is-typed-array@1.1.13: + dependencies: + which-typed-array: 1.1.16 + + is-weakmap@2.0.2: {} + is-weakref@1.0.2: dependencies: - call-bind: 1.0.5 + call-bind: 1.0.8 + + is-weakset@2.0.3: + dependencies: + call-bind: 1.0.8 + get-intrinsic: 1.2.5 isarray@2.0.5: {} @@ -5556,6 +6170,14 @@ snapshots: html-escaper: 2.0.2 istanbul-lib-report: 3.0.1 + iterator.prototype@1.1.3: + dependencies: + define-properties: 1.2.1 + get-intrinsic: 1.2.5 + has-symbols: 1.0.3 + reflect.getprototypeof: 1.0.8 + set-function-name: 2.0.1 + jackspeak@3.4.3: dependencies: '@isaacs/cliui': 8.0.2 @@ -5576,7 +6198,7 @@ snapshots: jsbn@1.1.0: {} - jsdoc-type-pratt-parser@4.0.0: {} + jsdoc-type-pratt-parser@4.1.0: {} jsesc@0.5.0: {} @@ -5623,6 +6245,13 @@ snapshots: ms: 2.1.3 semver: 7.6.0 + jsx-ast-utils@3.3.5: + dependencies: + array-includes: 3.1.8 + array.prototype.flat: 1.3.2 + object.assign: 4.1.4 + object.values: 1.2.0 + jwa@1.4.1: dependencies: buffer-equal-constant-time: 1.0.1 @@ -5712,6 +6341,10 @@ snapshots: long-timeout@0.1.1: {} + loose-envify@1.4.0: + dependencies: + js-tokens: 4.0.0 + loupe@3.1.2: {} lru-cache@10.4.3: {} @@ -5794,8 +6427,6 @@ snapshots: optionalDependencies: socks: 2.8.1 - ms@2.1.2: {} - ms@2.1.3: {} nanoid@3.3.7: {} @@ -5819,6 +6450,8 @@ snapshots: node-releases@2.0.14: {} + node-releases@2.0.18: {} + node-schedule@2.1.1: dependencies: cron-parser: 4.9.0 @@ -5832,8 +6465,12 @@ snapshots: semver: 5.7.2 validate-npm-package-license: 3.0.4 + object-assign@4.1.1: {} + object-inspect@1.13.1: {} + object-inspect@1.13.3: {} + object-keys@1.1.1: {} object.assign@4.1.4: @@ -5843,24 +6480,37 @@ snapshots: has-symbols: 1.0.3 object-keys: 1.1.1 - object.fromentries@2.0.7: + object.assign@4.1.5: dependencies: - call-bind: 1.0.5 - define-properties: 1.2.0 - es-abstract: 1.22.3 + call-bind: 1.0.8 + define-properties: 1.2.1 + has-symbols: 1.0.3 + object-keys: 1.1.1 - object.groupby@1.0.1: + object.entries@1.1.8: dependencies: - call-bind: 1.0.5 - define-properties: 1.2.0 - es-abstract: 1.22.3 - get-intrinsic: 1.2.2 + call-bind: 1.0.8 + define-properties: 1.2.1 + es-object-atoms: 1.0.0 - object.values@1.1.7: + object.fromentries@2.0.8: dependencies: - call-bind: 1.0.5 - define-properties: 1.2.0 - es-abstract: 1.22.3 + call-bind: 1.0.8 + define-properties: 1.2.1 + es-abstract: 1.23.5 + es-object-atoms: 1.0.0 + + object.groupby@1.0.3: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + es-abstract: 1.23.5 + + object.values@1.2.0: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + es-object-atoms: 1.0.0 octokit@4.0.2: dependencies: @@ -5974,6 +6624,8 @@ snapshots: picocolors@1.0.1: {} + picocolors@1.1.1: {} + picomatch@2.3.1: {} picomatch@4.0.2: {} @@ -5999,8 +6651,18 @@ snapshots: sonic-boom: 4.0.1 thread-stream: 3.1.0 + playwright-core@1.49.0: {} + + playwright@1.49.0: + dependencies: + playwright-core: 1.49.0 + optionalDependencies: + fsevents: 2.3.2 + pluralize@8.0.0: {} + possible-typed-array-names@1.0.0: {} + postcss@8.4.38: dependencies: nanoid: 3.3.7 @@ -6009,15 +6671,11 @@ snapshots: prelude-ls@1.2.1: {} - prettier-linter-helpers@1.0.0: - dependencies: - fast-diff: 1.3.0 - prettier@3.4.2: {} - prisma@5.22.0: + prisma@6.0.1: dependencies: - '@prisma/engines': 5.22.0 + '@prisma/engines': 6.0.1 optionalDependencies: fsevents: 2.3.3 @@ -6027,6 +6685,12 @@ snapshots: progress@2.0.3: {} + prop-types@15.8.1: + dependencies: + loose-envify: 1.4.0 + object-assign: 4.1.1 + react-is: 16.13.1 + proxy-addr@2.0.7: dependencies: forwarded: 0.2.0 @@ -6094,6 +6758,10 @@ snapshots: quick-format-unescaped@4.0.4: {} + react-is@16.13.1: {} + + react@19.0.0: {} + read-pkg-up@7.0.1: dependencies: find-up: 4.1.0 @@ -6123,6 +6791,17 @@ snapshots: real-require@0.2.0: {} + reflect.getprototypeof@1.0.8: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + dunder-proto: 1.0.0 + es-abstract: 1.23.5 + es-errors: 1.3.0 + get-intrinsic: 1.2.5 + gopd: 1.2.0 + which-builtin-type: 1.2.0 + regexp-tree@0.1.27: {} regexp.prototype.flags@1.5.1: @@ -6131,6 +6810,13 @@ snapshots: define-properties: 1.2.0 set-function-name: 2.0.1 + regexp.prototype.flags@1.5.3: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + es-errors: 1.3.0 + set-function-name: 2.0.2 + regjsparser@0.10.0: dependencies: jsesc: 0.5.0 @@ -6146,6 +6832,12 @@ snapshots: resolve-pkg-maps@1.0.0: {} resolve@1.22.8: + dependencies: + is-core-module: 2.15.1 + path-parse: 1.0.7 + supports-preserve-symlinks-flag: 1.0.0 + + resolve@2.0.0-next.5: dependencies: is-core-module: 2.13.1 path-parse: 1.0.7 @@ -6195,6 +6887,13 @@ snapshots: has-symbols: 1.0.3 isarray: 2.0.5 + safe-array-concat@1.1.2: + dependencies: + call-bind: 1.0.8 + get-intrinsic: 1.2.5 + has-symbols: 1.0.3 + isarray: 2.0.5 + safe-buffer@5.2.1: {} safe-regex-test@1.0.0: @@ -6203,6 +6902,12 @@ snapshots: get-intrinsic: 1.2.2 is-regex: 1.1.4 + safe-regex-test@1.0.3: + dependencies: + call-bind: 1.0.8 + es-errors: 1.3.0 + is-regex: 1.1.4 + safe-regex2@4.0.0: dependencies: ret: 0.5.0 @@ -6230,11 +6935,27 @@ snapshots: gopd: 1.0.1 has-property-descriptors: 1.0.0 + set-function-length@1.2.2: + dependencies: + define-data-property: 1.1.4 + es-errors: 1.3.0 + function-bind: 1.1.2 + get-intrinsic: 1.2.5 + gopd: 1.0.1 + has-property-descriptors: 1.0.2 + set-function-name@2.0.1: dependencies: define-data-property: 1.1.1 functions-have-names: 1.2.3 - has-property-descriptors: 1.0.0 + has-property-descriptors: 1.0.2 + + set-function-name@2.0.2: + dependencies: + define-data-property: 1.1.4 + es-errors: 1.3.0 + functions-have-names: 1.2.3 + has-property-descriptors: 1.0.2 shebang-command@2.0.0: dependencies: @@ -6244,8 +6965,15 @@ snapshots: side-channel@1.0.4: dependencies: - call-bind: 1.0.5 - get-intrinsic: 1.2.2 + call-bind: 1.0.8 + get-intrinsic: 1.2.5 + object-inspect: 1.13.1 + + side-channel@1.0.6: + dependencies: + call-bind: 1.0.8 + es-errors: 1.3.0 + get-intrinsic: 1.2.5 object-inspect: 1.13.1 siginfo@2.0.0: {} @@ -6348,24 +7076,57 @@ snapshots: emoji-regex: 9.2.2 strip-ansi: 7.1.0 - string.prototype.trim@1.2.8: + string.prototype.matchall@4.0.11: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + es-abstract: 1.23.5 + es-errors: 1.3.0 + es-object-atoms: 1.0.0 + get-intrinsic: 1.2.5 + gopd: 1.0.1 + has-symbols: 1.0.3 + internal-slot: 1.0.7 + regexp.prototype.flags: 1.5.3 + set-function-name: 2.0.2 + side-channel: 1.0.6 + + string.prototype.repeat@1.0.0: dependencies: - call-bind: 1.0.5 define-properties: 1.2.0 es-abstract: 1.22.3 - string.prototype.trimend@1.0.7: + string.prototype.trim@1.2.8: dependencies: call-bind: 1.0.5 define-properties: 1.2.0 es-abstract: 1.22.3 + string.prototype.trim@1.2.9: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + es-abstract: 1.23.5 + es-object-atoms: 1.0.0 + + string.prototype.trimend@1.0.8: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + es-object-atoms: 1.0.0 + string.prototype.trimstart@1.0.7: dependencies: call-bind: 1.0.5 define-properties: 1.2.0 es-abstract: 1.22.3 + string.prototype.trimstart@1.0.8: + dependencies: + call-bind: 1.0.8 + define-properties: 1.2.1 + es-object-atoms: 1.0.0 + string_decoder@1.3.0: dependencies: safe-buffer: 5.2.1 @@ -6426,8 +7187,6 @@ snapshots: text-hex@1.0.0: {} - text-table@0.2.0: {} - thread-stream@3.1.0: dependencies: real-require: 0.2.0 @@ -6482,6 +7241,8 @@ snapshots: dependencies: prelude-ls: 1.2.1 + type-fest@0.20.2: {} + type-fest@0.6.0: {} type-fest@0.8.1: {} @@ -6492,6 +7253,12 @@ snapshots: get-intrinsic: 1.2.2 is-typed-array: 1.1.12 + typed-array-buffer@1.0.2: + dependencies: + call-bind: 1.0.8 + es-errors: 1.3.0 + is-typed-array: 1.1.13 + typed-array-byte-length@1.0.0: dependencies: call-bind: 1.0.5 @@ -6499,6 +7266,14 @@ snapshots: has-proto: 1.0.1 is-typed-array: 1.1.12 + typed-array-byte-length@1.0.1: + dependencies: + call-bind: 1.0.8 + for-each: 0.3.3 + gopd: 1.0.1 + has-proto: 1.2.0 + is-typed-array: 1.1.13 + typed-array-byte-offset@1.0.0: dependencies: available-typed-arrays: 1.0.5 @@ -6507,12 +7282,31 @@ snapshots: has-proto: 1.0.1 is-typed-array: 1.1.12 + typed-array-byte-offset@1.0.3: + dependencies: + available-typed-arrays: 1.0.7 + call-bind: 1.0.8 + for-each: 0.3.3 + gopd: 1.0.1 + has-proto: 1.2.0 + is-typed-array: 1.1.13 + reflect.getprototypeof: 1.0.8 + typed-array-length@1.0.4: dependencies: call-bind: 1.0.5 for-each: 0.3.3 is-typed-array: 1.1.12 + typed-array-length@1.0.7: + dependencies: + call-bind: 1.0.8 + for-each: 0.3.3 + gopd: 1.0.1 + is-typed-array: 1.1.13 + possible-typed-array-names: 1.0.0 + reflect.getprototypeof: 1.0.8 + typed-query-selector@2.12.0: {} typescript@5.7.2: {} @@ -6522,7 +7316,7 @@ snapshots: unbox-primitive@1.0.2: dependencies: - call-bind: 1.0.5 + call-bind: 1.0.8 has-bigints: 1.0.2 has-symbols: 1.0.3 which-boxed-primitive: 1.0.2 @@ -6532,7 +7326,7 @@ snapshots: buffer: 5.7.1 through: 2.3.8 - undici-types@6.19.8: {} + undici-types@6.20.0: {} undici@6.19.8: {} @@ -6548,6 +7342,12 @@ snapshots: escalade: 3.1.2 picocolors: 1.0.1 + update-browserslist-db@1.1.1(browserslist@4.24.2): + dependencies: + browserslist: 4.24.2 + escalade: 3.2.0 + picocolors: 1.1.1 + uri-js@4.4.1: dependencies: punycode: 2.3.0 @@ -6561,13 +7361,13 @@ snapshots: spdx-correct: 3.2.0 spdx-expression-parse: 3.0.1 - vite-node@2.1.8(@types/node@22.9.0): + vite-node@2.1.8(@types/node@22.10.1): dependencies: cac: 6.7.14 debug: 4.3.7 es-module-lexer: 1.5.4 pathe: 1.1.2 - vite: 5.3.1(@types/node@22.9.0) + vite: 5.3.1(@types/node@22.10.1) transitivePeerDependencies: - '@types/node' - less @@ -6578,19 +7378,19 @@ snapshots: - supports-color - terser - vite@5.3.1(@types/node@22.9.0): + vite@5.3.1(@types/node@22.10.1): dependencies: esbuild: 0.21.5 postcss: 8.4.38 rollup: 4.18.0 optionalDependencies: - '@types/node': 22.9.0 + '@types/node': 22.10.1 fsevents: 2.3.3 - vitest@2.1.8(@types/node@22.9.0): + vitest@2.1.8(@types/node@22.10.1): dependencies: '@vitest/expect': 2.1.8 - '@vitest/mocker': 2.1.8(vite@5.3.1(@types/node@22.9.0)) + '@vitest/mocker': 2.1.8(vite@5.3.1(@types/node@22.10.1)) '@vitest/pretty-format': 2.1.8 '@vitest/runner': 2.1.8 '@vitest/snapshot': 2.1.8 @@ -6606,11 +7406,11 @@ snapshots: tinyexec: 0.3.1 tinypool: 1.0.1 tinyrainbow: 1.2.0 - vite: 5.3.1(@types/node@22.9.0) - vite-node: 2.1.8(@types/node@22.9.0) + vite: 5.3.1(@types/node@22.10.1) + vite-node: 2.1.8(@types/node@22.10.1) why-is-node-running: 2.3.0 optionalDependencies: - '@types/node': 22.9.0 + '@types/node': 22.10.1 transitivePeerDependencies: - less - lightningcss @@ -6636,6 +7436,29 @@ snapshots: is-string: 1.0.7 is-symbol: 1.0.4 + which-builtin-type@1.2.0: + dependencies: + call-bind: 1.0.8 + function.prototype.name: 1.1.6 + has-tostringtag: 1.0.2 + is-async-function: 2.0.0 + is-date-object: 1.0.5 + is-finalizationregistry: 1.1.0 + is-generator-function: 1.0.10 + is-regex: 1.1.4 + is-weakref: 1.0.2 + isarray: 2.0.5 + which-boxed-primitive: 1.0.2 + which-collection: 1.0.2 + which-typed-array: 1.1.16 + + which-collection@1.0.2: + dependencies: + is-map: 2.0.3 + is-set: 2.0.3 + is-weakmap: 2.0.2 + is-weakset: 2.0.3 + which-typed-array@1.1.13: dependencies: available-typed-arrays: 1.0.5 @@ -6644,6 +7467,14 @@ snapshots: gopd: 1.0.1 has-tostringtag: 1.0.0 + which-typed-array@1.1.16: + dependencies: + available-typed-arrays: 1.0.7 + call-bind: 1.0.8 + for-each: 0.3.3 + gopd: 1.0.1 + has-tostringtag: 1.0.2 + which@2.0.2: dependencies: isexe: 2.0.0 diff --git a/src/modules/formatter.ts b/src/modules/formatter.ts index fdd9b814..140266fe 100644 --- a/src/modules/formatter.ts +++ b/src/modules/formatter.ts @@ -1,5 +1,4 @@ import { format, type Options } from "prettier"; -// eslint-disable-next-line import/default, import/no-named-as-default, import/no-named-as-default-member import stripAnsi from "strip-ansi"; /** diff --git a/src/modules/generateProfileImage.ts b/src/modules/generateProfileImage.ts index f9203819..2ef92c8e 100644 --- a/src/modules/generateProfileImage.ts +++ b/src/modules/generateProfileImage.ts @@ -194,8 +194,8 @@ const generateProfileImage = async( } body { background: url(${backgroundImage === "" - ? `https://cdn.freecodecamp.org/platform/universal/fcc_meta_1920X1080-indigo.png"` - : backgroundImage}) no-repeat center center fixed; + ? `https://cdn.freecodecamp.org/platform/universal/fcc_meta_1920X1080-indigo.png"` + : backgroundImage}) no-repeat center center fixed; background-size: cover; width: 1920px; height: 1080px; @@ -213,11 +213,11 @@ const generateProfileImage = async( width: 100%; height: 100%; background-color: #${backgroundColour === "" - ? "0a0a23" - : backgroundColour}bf; + ? "0a0a23" + : backgroundColour}bf; color: #${colour === "" - ? "d0d0d5" - : colour}; + ? "d0d0d5" + : colour}; padding: 2.5%; border-radius: 100px; } @@ -267,8 +267,8 @@ const generateProfileImage = async(
+ ? "https://cdn.freecodecamp.org/platform/universal/fcc_puck_500.jpg" + : avatar}>

${userTag}

Level ${String(level)} (${points.toLocaleString("en-GB")}xp)

@@ -363,22 +363,23 @@ const generateLeaderboardImage = async( ${levels.map( - (l) => { - return `
+ (l) => { + return `
+ // eslint-disable-next-line stylistic/max-len + ? "https://cdn.freecodecamp.org/platform/universal/fcc_puck_500.jpg" + : l.avatar}>

#${String(l.index)}. ${l.userTag}

Level ${String(l.level)} (${String(l.points)}xp)

`; - }, - ).join(", ")} + }, + ).join(", ")} `; const alt = levels. diff --git a/src/server/serve.ts b/src/server/serve.ts index a90c5493..c628e114 100644 --- a/src/server/serve.ts +++ b/src/server/serve.ts @@ -7,7 +7,6 @@ import { createHmac, timingSafeEqual } from "node:crypto"; import { readFile } from "node:fs/promises"; import { WebhookClient } from "discord.js"; -// eslint-disable-next-line import/default, import/no-named-as-default, import/no-named-as-default-member import fastify from "fastify"; import { errorHandler } from "../utils/errorHandler.js"; import type { ExtendedClient } from "../interfaces/extendedClient.js"; diff --git a/test/commands/author.spec.ts b/test/commands/author.spec.ts index ad5a13c4..88ecfd26 100644 --- a/test/commands/author.spec.ts +++ b/test/commands/author.spec.ts @@ -1,8 +1,8 @@ -import { describe, assert, test } from "vitest"; +import { describe, assert, it } from "vitest"; import { author } from "../../src/commands/author.js"; describe("author command", () => { - test("is defined", () => { + it("is defined", () => { assert.isDefined(author); }); }); diff --git a/test/commands/community.spec.ts b/test/commands/community.spec.ts index dc24c82a..c885008c 100644 --- a/test/commands/community.spec.ts +++ b/test/commands/community.spec.ts @@ -2,7 +2,7 @@ import { ApplicationCommandOptionType, type SlashCommandSubcommandBuilder, } from "discord.js"; -import { describe, assert, test } from "vitest"; +import { describe, assert, it } from "vitest"; import { community } from "../../src/commands/community.js"; describe("community command", () => { @@ -12,7 +12,7 @@ describe("community command", () => { }, ) as Array; - test("has correct data", () => { + it("has correct data", () => { assert.strictEqual(community.data.name, "community"); assert.strictEqual( community.data.description, @@ -21,7 +21,7 @@ describe("community command", () => { assert.lengthOf(subcommands, 7); }); - test("has correct code of conduct", () => { + it("has correct code of conduct", () => { const codeOfConduct = subcommands.find( (sub) => { return sub.name === "code-of-conduct"; @@ -36,7 +36,7 @@ describe("community command", () => { assert.lengthOf(codeOfConduct?.options || "hi", 0); }); - test("has correct contribute", () => { + it("has correct contribute", () => { const contribute = subcommands.find((sub) => { return sub.name === "contribute"; }); @@ -49,7 +49,7 @@ describe("community command", () => { assert.lengthOf(contribute?.options || "hi", 0); }); - test("has correct forum", () => { + it("has correct forum", () => { const forum = subcommands.find((sub) => { return sub.name === "forum"; }); @@ -62,7 +62,7 @@ describe("community command", () => { assert.lengthOf(forum?.options || "hi", 0); }); - test("has correct leaderboard", () => { + it("has correct leaderboard", () => { const leaderboard = subcommands.find((sub) => { return sub.name === "leaderboard"; }); @@ -72,7 +72,7 @@ describe("community command", () => { assert.lengthOf(leaderboard?.options || "hi", 0); }); - test("has correct quote", () => { + it("has correct quote", () => { const quote = subcommands.find((sub) => { return sub.name === "quote"; }); @@ -82,7 +82,7 @@ describe("community command", () => { assert.lengthOf(quote?.options || "hi", 0); }); - test("has correct profile", () => { + it("has correct profile", () => { const rank = subcommands.find((sub) => { return sub.name === "profile"; }); @@ -91,7 +91,7 @@ describe("community command", () => { assert.lengthOf(rank?.options || "hi", 0); }); - test("has correct truism", () => { + it("has correct truism", () => { const truism = subcommands.find((sub) => { return sub.name === "truism"; }); diff --git a/test/commands/github.spec.ts b/test/commands/github.spec.ts index ef3b6cc5..5e403239 100644 --- a/test/commands/github.spec.ts +++ b/test/commands/github.spec.ts @@ -2,7 +2,7 @@ import { ApplicationCommandOptionType, type SlashCommandSubcommandBuilder, } from "discord.js"; -import { describe, assert, test } from "vitest"; +import { describe, assert, it } from "vitest"; import { github } from "../../src/commands/github.js"; describe("github command", () => { @@ -12,7 +12,7 @@ describe("github command", () => { }, ) as Array; - test("has correct data", () => { + it("has correct data", () => { assert.strictEqual(github.data.name, "github"); assert.strictEqual( github.data.description, @@ -21,7 +21,7 @@ describe("github command", () => { assert.lengthOf(subcommands, 4); }); - test("has correct close", () => { + it("has correct close", () => { const close = subcommands.find((sub) => { return sub.name === "close"; }); @@ -74,7 +74,7 @@ describe("github command", () => { ); }); - test("has correct comment", () => { + it("has correct comment", () => { const comment = subcommands.find((sub) => { return sub.name === "comment"; }); @@ -117,7 +117,7 @@ describe("github command", () => { ); }); - test("has correct add labels", () => { + it("has correct add labels", () => { const command = subcommands.find((sub) => { return sub.name === "add-labels"; }); @@ -160,7 +160,7 @@ describe("github command", () => { ); }); - test("has correct sync labels", () => { + it("has correct sync labels", () => { const command = subcommands.find((sub) => { return sub.name === "sync-labels"; }); diff --git a/test/commands/management.spec.ts b/test/commands/management.spec.ts index c84d575e..b5c1621e 100644 --- a/test/commands/management.spec.ts +++ b/test/commands/management.spec.ts @@ -2,7 +2,7 @@ import { ApplicationCommandOptionType, type SlashCommandSubcommandBuilder, } from "discord.js"; -import { describe, assert, test } from "vitest"; +import { describe, assert, it } from "vitest"; import { management } from "../../src/commands/management.js"; describe("management command", () => { @@ -12,7 +12,7 @@ describe("management command", () => { }, ) as Array; - test("has correct data", () => { + it("has correct data", () => { assert.strictEqual(management.data.name, "management"); assert.strictEqual( management.data.description, @@ -21,7 +21,7 @@ describe("management command", () => { assert.lengthOf(subcommands, 3); }); - test("has correct private", () => { + it("has correct private", () => { const privateC = subcommands.find((sub) => { return sub.name === "private"; }); @@ -42,7 +42,7 @@ describe("management command", () => { ); }); - test("has correct role", () => { + it("has correct role", () => { const role = subcommands.find((sub) => { return sub.name === "role"; }); diff --git a/test/commands/moderation.spec.ts b/test/commands/moderation.spec.ts index a4f615a1..5c1cb50a 100644 --- a/test/commands/moderation.spec.ts +++ b/test/commands/moderation.spec.ts @@ -2,7 +2,7 @@ import { ApplicationCommandOptionType, type SlashCommandSubcommandBuilder, } from "discord.js"; -import { describe, assert, test } from "vitest"; +import { describe, assert, it } from "vitest"; import { moderation } from "../../src/commands/moderation.js"; describe("moderation command", () => { @@ -12,13 +12,13 @@ describe("moderation command", () => { }, ) as Array; - test("has correct data", () => { + it("has correct data", () => { assert.strictEqual(moderation.data.name, "moderation"); assert.strictEqual(moderation.data.description, "Moderation commands."); assert.lengthOf(subcommands, 8); }); - test("has correct ban", () => { + it("has correct ban", () => { const ban = subcommands.find((sub) => { return sub.name === "ban"; }); @@ -44,7 +44,7 @@ describe("moderation command", () => { ); }); - test("has correct history", () => { + it("has correct history", () => { const history = subcommands.find((sub) => { return sub.name === "history"; }); @@ -66,7 +66,7 @@ describe("moderation command", () => { ); }); - test("has correct kick", () => { + it("has correct kick", () => { const kick = subcommands.find((sub) => { return sub.name === "kick"; }); @@ -92,7 +92,7 @@ describe("moderation command", () => { ); }); - test("has correct mute", () => { + it("has correct mute", () => { const mute = subcommands.find((sub) => { return sub.name === "mute"; }); @@ -138,7 +138,7 @@ describe("moderation command", () => { ); }); - test("has correct prune", () => { + it("has correct prune", () => { const prune = subcommands.find((sub) => { return sub.name === "prune"; }); @@ -160,7 +160,7 @@ describe("moderation command", () => { ); }); - test("has correct unban", () => { + it("has correct unban", () => { const unban = subcommands.find((sub) => { return sub.name === "unban"; }); @@ -186,7 +186,7 @@ describe("moderation command", () => { ); }); - test("has correct unmute", () => { + it("has correct unmute", () => { const unmute = subcommands.find((sub) => { return sub.name === "unmute"; }); @@ -212,7 +212,7 @@ describe("moderation command", () => { ); }); - test("has correct warn", () => { + it("has correct warn", () => { const warn = subcommands.find((sub) => { return sub.name === "warn"; }); diff --git a/test/commands/report.spec.ts b/test/commands/report.spec.ts index 35c95070..9bb73af9 100644 --- a/test/commands/report.spec.ts +++ b/test/commands/report.spec.ts @@ -1,8 +1,8 @@ -import { describe, assert, test } from "vitest"; +import { describe, assert, it } from "vitest"; import { report } from "../../src/commands/report.js"; describe("report command", () => { - test("is defined", () => { + it("is defined", () => { assert.isDefined(report); }); }); diff --git a/test/commands/subcommands/community/handleCodeOfConduct.spec.ts b/test/commands/subcommands/community/handleCodeOfConduct.spec.ts index 670fd132..df6348d0 100644 --- a/test/commands/subcommands/community/handleCodeOfConduct.spec.ts +++ b/test/commands/subcommands/community/handleCodeOfConduct.spec.ts @@ -7,25 +7,25 @@ import { MockMember, MockUser, } from "discordjs-testing"; -import { describe, assert, test } from "vitest"; +import { describe, assert, it } from "vitest"; import { handleCodeOfConduct } from "../../../../src/commands/subcommands/community/handleCodeOfConduct.js"; const guild = new MockGuild({ - name: "Test Guild", + name: "it Guild", }); const bot = new MockUser({ - avatar: "test", + avatar: "it", bot: true, discriminator: 1234, system: false, - username: "Test Bot", + username: "it Bot", }); const user = new MockUser({ - avatar: "test", + avatar: "it", bot: false, discriminator: 1234, system: false, - username: "Test User", + username: "it User", }); const member = new MockMember({ guild, @@ -33,12 +33,12 @@ const member = new MockMember({ }); const channel = new MockChannel({ guild: guild, - name: "test-channel", + name: "it-channel", type: ChannelType.GuildText, }); describe("codeOfConduct Handler", () => { - test("should send an embed with the code of conduct", async() => { + it("should send an embed with the code of conduct", async() => { const command = new MockChatInputCommandInteraction({ bot: bot, channel: channel, diff --git a/test/commands/subcommands/community/handleContribute.spec.ts b/test/commands/subcommands/community/handleContribute.spec.ts index f90b0bb7..f98fb825 100644 --- a/test/commands/subcommands/community/handleContribute.spec.ts +++ b/test/commands/subcommands/community/handleContribute.spec.ts @@ -6,26 +6,26 @@ import { MockMember, MockUser, } from "discordjs-testing"; -import { describe, assert, test } from "vitest"; +import { describe, assert, it } from "vitest"; import { handleContribute } from "../../../../src/commands/subcommands/community/handleContribute.js"; const guild = new MockGuild({ - name: "Test Guild", + name: "it Guild", }); const bot = new MockUser({ - avatar: "test", + avatar: "it", bot: true, discriminator: 1234, system: false, - username: "Test Bot", + username: "it Bot", }); const user = new MockUser({ - avatar: "test", + avatar: "it", bot: false, discriminator: 1234, system: false, - username: "Test User", + username: "it User", }); const member = new MockMember({ guild, @@ -33,12 +33,12 @@ const member = new MockMember({ }); const channel = new MockChannel({ guild: guild, - name: "test-channel", + name: "it-channel", type: ChannelType.GuildText, }); describe("contribute Handler", () => { - test("should send an embed with contributing information", async() => { + it("should send an embed with contributing information", async() => { const command = new MockChatInputCommandInteraction({ bot: bot, channel: channel, diff --git a/test/commands/subcommands/community/handleForum.spec.ts b/test/commands/subcommands/community/handleForum.spec.ts index 1272694f..f347d683 100644 --- a/test/commands/subcommands/community/handleForum.spec.ts +++ b/test/commands/subcommands/community/handleForum.spec.ts @@ -1,9 +1,9 @@ -import { describe, assert, test } from "vitest"; +import { describe, assert, it } from "vitest"; import { handleForum } from "../../../../src/commands/subcommands/community/handleForum.js"; describe("forum handler", () => { - test("is defined", () => { + it("is defined", () => { assert.isDefined(handleForum); }); }); diff --git a/test/commands/subcommands/community/handleLeaderboard.spec.ts b/test/commands/subcommands/community/handleLeaderboard.spec.ts index 57bca0b1..3076cc6c 100644 --- a/test/commands/subcommands/community/handleLeaderboard.spec.ts +++ b/test/commands/subcommands/community/handleLeaderboard.spec.ts @@ -1,9 +1,9 @@ -import { describe, assert, test } from "vitest"; +import { describe, assert, it } from "vitest"; import { handleLeaderboard } from "../../../../src/commands/subcommands/community/handleLeaderboard.js"; describe("leaderboard handler", () => { - test("is defined", () => { + it("is defined", () => { assert.isDefined(handleLeaderboard); }); }); diff --git a/test/commands/subcommands/community/handleProfile.spec.ts b/test/commands/subcommands/community/handleProfile.spec.ts index 31bc3e24..c5933025 100644 --- a/test/commands/subcommands/community/handleProfile.spec.ts +++ b/test/commands/subcommands/community/handleProfile.spec.ts @@ -1,9 +1,9 @@ -import { describe, assert, test } from "vitest"; +import { describe, assert, it } from "vitest"; import { handleProfile } from "../../../../src/commands/subcommands/community/handleProfile.js"; describe("profile handler", () => { - test("profile command is defined", () => { + it("profile command is defined", () => { assert.isDefined(handleProfile); }); }); diff --git a/test/commands/subcommands/community/handleQuote.spec.ts b/test/commands/subcommands/community/handleQuote.spec.ts index 4ebe46d8..263d9737 100644 --- a/test/commands/subcommands/community/handleQuote.spec.ts +++ b/test/commands/subcommands/community/handleQuote.spec.ts @@ -1,9 +1,9 @@ -import { describe, assert, test } from "vitest"; +import { describe, assert, it } from "vitest"; import { handleQuote } from "../../../../src/commands/subcommands/community/handleQuote.js"; describe("quote handler", () => { - test("is defined", () => { + it("is defined", () => { assert.isDefined(handleQuote); }); }); diff --git a/test/commands/subcommands/community/handleTruism.spec.ts b/test/commands/subcommands/community/handleTruism.spec.ts index ca24a099..834ca8d3 100644 --- a/test/commands/subcommands/community/handleTruism.spec.ts +++ b/test/commands/subcommands/community/handleTruism.spec.ts @@ -1,9 +1,9 @@ -import { describe, assert, test } from "vitest"; +import { describe, assert, it } from "vitest"; import { handleTruism } from "../../../../src/commands/subcommands/community/handleTruism.js"; describe("truism handler", () => { - test("truism command is defined", () => { + it("truism command is defined", () => { assert.isDefined(handleTruism); }); }); diff --git a/test/commands/subcommands/github/handleAddLabels.spec.ts b/test/commands/subcommands/github/handleAddLabels.spec.ts index a7298a1d..884129e5 100644 --- a/test/commands/subcommands/github/handleAddLabels.spec.ts +++ b/test/commands/subcommands/github/handleAddLabels.spec.ts @@ -1,10 +1,10 @@ import { PermissionFlagsBits } from "discord.js"; -import { describe, assert, test } from "vitest"; +import { describe, assert, it } from "vitest"; import { handleAddLabels } from "../../../../src/commands/subcommands/github/handleAddLabels.js"; describe("add labels handler", () => { - test("does not allow non-moderators permission", () => { + it("does not allow non-moderators permission", () => { assert.isFalse( handleAddLabels.permissionValidator({ permissions: new Set([ PermissionFlagsBits.SendMessages ]), @@ -12,7 +12,7 @@ describe("add labels handler", () => { ); }); - test("allows moderate members permission", () => { + it("allows moderate members permission", () => { assert.isTrue( handleAddLabels.permissionValidator({ permissions: new Set([ PermissionFlagsBits.ModerateMembers ]), @@ -20,7 +20,7 @@ describe("add labels handler", () => { ); }); - test("allows kick members permission", () => { + it("allows kick members permission", () => { assert.isTrue( handleAddLabels.permissionValidator({ permissions: new Set([ PermissionFlagsBits.KickMembers ]), @@ -28,7 +28,7 @@ describe("add labels handler", () => { ); }); - test("allows ban members permission", () => { + it("allows ban members permission", () => { assert.isTrue( handleAddLabels.permissionValidator({ permissions: new Set([ PermissionFlagsBits.BanMembers ]), diff --git a/test/commands/subcommands/github/handleClose.spec.ts b/test/commands/subcommands/github/handleClose.spec.ts index a54324e9..9c77c822 100644 --- a/test/commands/subcommands/github/handleClose.spec.ts +++ b/test/commands/subcommands/github/handleClose.spec.ts @@ -1,10 +1,10 @@ import { PermissionFlagsBits } from "discord.js"; -import { describe, assert, test } from "vitest"; +import { describe, assert, it } from "vitest"; import { handleClose } from "../../../../src/commands/subcommands/github/handleClose.js"; describe("close handler", () => { - test("does not allow non-moderators permission", () => { + it("does not allow non-moderators permission", () => { assert.isFalse( handleClose.permissionValidator({ permissions: new Set([ PermissionFlagsBits.SendMessages ]), @@ -12,7 +12,7 @@ describe("close handler", () => { ); }); - test("allows moderate members permission", () => { + it("allows moderate members permission", () => { assert.isTrue( handleClose.permissionValidator({ permissions: new Set([ PermissionFlagsBits.ModerateMembers ]), @@ -20,7 +20,7 @@ describe("close handler", () => { ); }); - test("allows kick members permission", () => { + it("allows kick members permission", () => { assert.isTrue( handleClose.permissionValidator({ permissions: new Set([ PermissionFlagsBits.KickMembers ]), @@ -28,7 +28,7 @@ describe("close handler", () => { ); }); - test("allows ban members permission", () => { + it("allows ban members permission", () => { assert.isTrue( handleClose.permissionValidator({ permissions: new Set([ PermissionFlagsBits.BanMembers ]), diff --git a/test/commands/subcommands/github/handleComment.spec.ts b/test/commands/subcommands/github/handleComment.spec.ts index 1182320a..91326053 100644 --- a/test/commands/subcommands/github/handleComment.spec.ts +++ b/test/commands/subcommands/github/handleComment.spec.ts @@ -1,10 +1,10 @@ import { PermissionFlagsBits } from "discord.js"; -import { describe, assert, test } from "vitest"; +import { describe, assert, it } from "vitest"; import { handleComment } from "../../../../src/commands/subcommands/github/handleComment.js"; describe("comment command", () => { - test("does not allow non-moderators permission", () => { + it("does not allow non-moderators permission", () => { assert.isFalse( handleComment.permissionValidator({ permissions: new Set([ PermissionFlagsBits.SendMessages ]), @@ -12,7 +12,7 @@ describe("comment command", () => { ); }); - test("allows moderate members permission", () => { + it("allows moderate members permission", () => { assert.isTrue( handleComment.permissionValidator({ permissions: new Set([ PermissionFlagsBits.ModerateMembers ]), @@ -20,7 +20,7 @@ describe("comment command", () => { ); }); - test("allows kick members permission", () => { + it("allows kick members permission", () => { assert.isTrue( handleComment.permissionValidator({ permissions: new Set([ PermissionFlagsBits.KickMembers ]), @@ -28,7 +28,7 @@ describe("comment command", () => { ); }); - test("allows ban members permission", () => { + it("allows ban members permission", () => { assert.isTrue( handleComment.permissionValidator({ permissions: new Set([ PermissionFlagsBits.BanMembers ]), diff --git a/test/commands/subcommands/github/handleSyncLabels.spec.ts b/test/commands/subcommands/github/handleSyncLabels.spec.ts index ecfacaaf..9c778589 100644 --- a/test/commands/subcommands/github/handleSyncLabels.spec.ts +++ b/test/commands/subcommands/github/handleSyncLabels.spec.ts @@ -1,10 +1,10 @@ import { PermissionFlagsBits } from "discord.js"; -import { describe, assert, test } from "vitest"; +import { describe, assert, it } from "vitest"; import { handleSyncLabels } from "../../../../src/commands/subcommands/github/handleSyncLabels.js"; describe("sync labels handler", () => { - test("does not allow non-moderators permission", () => { + it("does not allow non-moderators permission", () => { assert.isFalse( handleSyncLabels.permissionValidator({ permissions: new Set([ PermissionFlagsBits.SendMessages ]), @@ -12,7 +12,7 @@ describe("sync labels handler", () => { ); }); - test("allows moderate members permission", () => { + it("allows moderate members permission", () => { assert.isTrue( handleSyncLabels.permissionValidator({ permissions: new Set([ PermissionFlagsBits.ModerateMembers ]), @@ -20,7 +20,7 @@ describe("sync labels handler", () => { ); }); - test("allows kick members permission", () => { + it("allows kick members permission", () => { assert.isTrue( handleSyncLabels.permissionValidator({ permissions: new Set([ PermissionFlagsBits.KickMembers ]), @@ -28,7 +28,7 @@ describe("sync labels handler", () => { ); }); - test("allows ban members permission", () => { + it("allows ban members permission", () => { assert.isTrue( handleSyncLabels.permissionValidator({ permissions: new Set([ PermissionFlagsBits.BanMembers ]), diff --git a/test/commands/subcommands/management/handlePrivate.spec.ts b/test/commands/subcommands/management/handlePrivate.spec.ts index e337fab2..16d528fc 100644 --- a/test/commands/subcommands/management/handlePrivate.spec.ts +++ b/test/commands/subcommands/management/handlePrivate.spec.ts @@ -1,10 +1,10 @@ import { PermissionFlagsBits } from "discord.js"; -import { describe, assert, test } from "vitest"; +import { describe, assert, it } from "vitest"; import { handlePrivate } from "../../../../src/commands/subcommands/management/handlePrivate.js"; describe("handlePrivate command", () => { - test("does not allow non-moderators permission", () => { + it("does not allow non-moderators permission", () => { assert.isFalse( handlePrivate.permissionValidator({ permissions: new Set([ PermissionFlagsBits.SendMessages ]), @@ -12,7 +12,7 @@ describe("handlePrivate command", () => { ); }); - test("allows moderate members permission", () => { + it("allows moderate members permission", () => { assert.isTrue( handlePrivate.permissionValidator({ permissions: new Set([ PermissionFlagsBits.ModerateMembers ]), @@ -20,7 +20,7 @@ describe("handlePrivate command", () => { ); }); - test("allows kick members permission", () => { + it("allows kick members permission", () => { assert.isTrue( handlePrivate.permissionValidator({ permissions: new Set([ PermissionFlagsBits.KickMembers ]), @@ -28,7 +28,7 @@ describe("handlePrivate command", () => { ); }); - test("allows ban members permission", () => { + it("allows ban members permission", () => { assert.isTrue( handlePrivate.permissionValidator({ permissions: new Set([ PermissionFlagsBits.BanMembers ]), diff --git a/test/commands/subcommands/management/handleRole.spec.ts b/test/commands/subcommands/management/handleRole.spec.ts index 1032a6a5..65072157 100644 --- a/test/commands/subcommands/management/handleRole.spec.ts +++ b/test/commands/subcommands/management/handleRole.spec.ts @@ -1,10 +1,10 @@ import { PermissionFlagsBits } from "discord.js"; -import { describe, assert, test } from "vitest"; +import { describe, assert, it } from "vitest"; import { handleRole } from "../../../../src/commands/subcommands/management/handleRole.js"; describe("handleRole command", () => { - test("does not allow non-moderators permission", () => { + it("does not allow non-moderators permission", () => { assert.isFalse( handleRole.permissionValidator({ permissions: new Set([ PermissionFlagsBits.SendMessages ]), @@ -12,7 +12,7 @@ describe("handleRole command", () => { ); }); - test("does not allow moderate members permission", () => { + it("does not allow moderate members permission", () => { assert.isFalse( handleRole.permissionValidator({ permissions: new Set([ PermissionFlagsBits.ModerateMembers ]), @@ -20,7 +20,7 @@ describe("handleRole command", () => { ); }); - test("does not allow kick members permission", () => { + it("does not allow kick members permission", () => { assert.isFalse( handleRole.permissionValidator({ permissions: new Set([ PermissionFlagsBits.KickMembers ]), @@ -28,7 +28,7 @@ describe("handleRole command", () => { ); }); - test("does not allow ban members permission", () => { + it("does not allow ban members permission", () => { assert.isFalse( handleRole.permissionValidator({ permissions: new Set([ PermissionFlagsBits.BanMembers ]), @@ -36,7 +36,7 @@ describe("handleRole command", () => { ); }); - test("allows manage server permission", () => { + it("allows manage server permission", () => { assert.isTrue( handleRole.permissionValidator({ permissions: new Set([ PermissionFlagsBits.ManageGuild ]), diff --git a/test/commands/subcommands/moderation/handleBan.spec.ts b/test/commands/subcommands/moderation/handleBan.spec.ts index 0a315bcb..cbf1a2fe 100644 --- a/test/commands/subcommands/moderation/handleBan.spec.ts +++ b/test/commands/subcommands/moderation/handleBan.spec.ts @@ -1,10 +1,10 @@ import { PermissionFlagsBits } from "discord.js"; -import { describe, assert, test } from "vitest"; +import { describe, assert, it } from "vitest"; import { handleBan } from "../../../../src/commands/subcommands/moderation/handleBan.js"; describe("ban handler", () => { - test("does not allow non-moderators permission", () => { + it("does not allow non-moderators permission", () => { assert.isFalse( handleBan.permissionValidator({ permissions: new Set([ PermissionFlagsBits.SendMessages ]), @@ -12,7 +12,7 @@ describe("ban handler", () => { ); }); - test("does not allow moderate members permission", () => { + it("does not allow moderate members permission", () => { assert.isFalse( handleBan.permissionValidator({ permissions: new Set([ PermissionFlagsBits.ModerateMembers ]), @@ -20,7 +20,7 @@ describe("ban handler", () => { ); }); - test("does not allow kick members permission", () => { + it("does not allow kick members permission", () => { assert.isFalse( handleBan.permissionValidator({ permissions: new Set([ PermissionFlagsBits.KickMembers ]), @@ -28,7 +28,7 @@ describe("ban handler", () => { ); }); - test("allows ban members permission", () => { + it("allows ban members permission", () => { assert.isTrue( handleBan.permissionValidator({ permissions: new Set([ PermissionFlagsBits.BanMembers ]), diff --git a/test/commands/subcommands/moderation/handleHistory.spec.ts b/test/commands/subcommands/moderation/handleHistory.spec.ts index c8814f47..4bf0d455 100644 --- a/test/commands/subcommands/moderation/handleHistory.spec.ts +++ b/test/commands/subcommands/moderation/handleHistory.spec.ts @@ -1,10 +1,10 @@ import { PermissionFlagsBits } from "discord.js"; -import { describe, assert, test } from "vitest"; +import { describe, assert, it } from "vitest"; import { handleHistory } from "../../../../src/commands/subcommands/moderation/handleHistory.js"; describe("history handler", () => { - test("does not allow non-moderators permission", () => { + it("does not allow non-moderators permission", () => { assert.isFalse( handleHistory.permissionValidator({ permissions: new Set([ PermissionFlagsBits.SendMessages ]), @@ -12,7 +12,7 @@ describe("history handler", () => { ); }); - test("allows moderate members permission", () => { + it("allows moderate members permission", () => { assert.isTrue( handleHistory.permissionValidator({ permissions: new Set([ PermissionFlagsBits.ModerateMembers ]), @@ -20,7 +20,7 @@ describe("history handler", () => { ); }); - test("allows kick members permission", () => { + it("allows kick members permission", () => { assert.isTrue( handleHistory.permissionValidator({ permissions: new Set([ PermissionFlagsBits.KickMembers ]), @@ -28,7 +28,7 @@ describe("history handler", () => { ); }); - test("allows ban members permission", () => { + it("allows ban members permission", () => { assert.isTrue( handleHistory.permissionValidator({ permissions: new Set([ PermissionFlagsBits.BanMembers ]), diff --git a/test/commands/subcommands/moderation/handleKick.spec.ts b/test/commands/subcommands/moderation/handleKick.spec.ts index f953ad0e..b75ce6f5 100644 --- a/test/commands/subcommands/moderation/handleKick.spec.ts +++ b/test/commands/subcommands/moderation/handleKick.spec.ts @@ -1,10 +1,10 @@ import { PermissionFlagsBits } from "discord.js"; -import { describe, assert, test } from "vitest"; +import { describe, assert, it } from "vitest"; import { handleKick } from "../../../../src/commands/subcommands/moderation/handleKick.js"; describe("kick handler", () => { - test("does not allow non-moderators permission", () => { + it("does not allow non-moderators permission", () => { assert.isFalse( handleKick.permissionValidator({ permissions: new Set([ PermissionFlagsBits.SendMessages ]), @@ -12,7 +12,7 @@ describe("kick handler", () => { ); }); - test("does not allow moderate members permission", () => { + it("does not allow moderate members permission", () => { assert.isFalse( handleKick.permissionValidator({ permissions: new Set([ PermissionFlagsBits.ModerateMembers ]), @@ -20,7 +20,7 @@ describe("kick handler", () => { ); }); - test("allows kick members permission", () => { + it("allows kick members permission", () => { assert.isTrue( handleKick.permissionValidator({ permissions: new Set([ PermissionFlagsBits.KickMembers ]), @@ -28,7 +28,7 @@ describe("kick handler", () => { ); }); - test("does not allow ban members permission", () => { + it("does not allow ban members permission", () => { assert.isFalse( handleKick.permissionValidator({ permissions: new Set([ PermissionFlagsBits.BanMembers ]), diff --git a/test/commands/subcommands/moderation/handleMute.spec.ts b/test/commands/subcommands/moderation/handleMute.spec.ts index deb81783..d2abe8df 100644 --- a/test/commands/subcommands/moderation/handleMute.spec.ts +++ b/test/commands/subcommands/moderation/handleMute.spec.ts @@ -1,10 +1,10 @@ import { PermissionFlagsBits } from "discord.js"; -import { describe, assert, test } from "vitest"; +import { describe, assert, it } from "vitest"; import { handleMute } from "../../../../src/commands/subcommands/moderation/handleMute.js"; describe("mute handler", () => { - test("does not allow non-moderators permission", () => { + it("does not allow non-moderators permission", () => { assert.isFalse( handleMute.permissionValidator({ permissions: new Set([ PermissionFlagsBits.SendMessages ]), @@ -12,7 +12,7 @@ describe("mute handler", () => { ); }); - test("allows moderate members permission", () => { + it("allows moderate members permission", () => { assert.isTrue( handleMute.permissionValidator({ permissions: new Set([ PermissionFlagsBits.ModerateMembers ]), @@ -20,7 +20,7 @@ describe("mute handler", () => { ); }); - test("does not allow kick members permission", () => { + it("does not allow kick members permission", () => { assert.isFalse( handleMute.permissionValidator({ permissions: new Set([ PermissionFlagsBits.KickMembers ]), @@ -28,7 +28,7 @@ describe("mute handler", () => { ); }); - test("does not allow ban members permission", () => { + it("does not allow ban members permission", () => { assert.isFalse( handleMute.permissionValidator({ permissions: new Set([ PermissionFlagsBits.BanMembers ]), diff --git a/test/commands/subcommands/moderation/handlePrune.spec.ts b/test/commands/subcommands/moderation/handlePrune.spec.ts index f1083205..9a8ba46f 100644 --- a/test/commands/subcommands/moderation/handlePrune.spec.ts +++ b/test/commands/subcommands/moderation/handlePrune.spec.ts @@ -1,10 +1,10 @@ import { PermissionFlagsBits } from "discord.js"; -import { describe, assert, test } from "vitest"; +import { describe, assert, it } from "vitest"; import { handlePrune } from "../../../../src/commands/subcommands/moderation/handlePrune.js"; describe("prune handler", () => { - test("does not allow non-moderators permission", () => { + it("does not allow non-moderators permission", () => { assert.isFalse( handlePrune.permissionValidator({ permissions: new Set([ PermissionFlagsBits.SendMessages ]), @@ -12,7 +12,7 @@ describe("prune handler", () => { ); }); - test("allows manage messages permission", () => { + it("allows manage messages permission", () => { assert.isTrue( handlePrune.permissionValidator({ permissions: new Set([ PermissionFlagsBits.ManageMessages ]), @@ -20,7 +20,7 @@ describe("prune handler", () => { ); }); - test("does not allow moderate members permission", () => { + it("does not allow moderate members permission", () => { assert.isFalse( handlePrune.permissionValidator({ permissions: new Set([ PermissionFlagsBits.ModerateMembers ]), @@ -28,7 +28,7 @@ describe("prune handler", () => { ); }); - test("does not allow kick members permission", () => { + it("does not allow kick members permission", () => { assert.isFalse( handlePrune.permissionValidator({ permissions: new Set([ PermissionFlagsBits.KickMembers ]), @@ -36,7 +36,7 @@ describe("prune handler", () => { ); }); - test("does not allow ban members permission", () => { + it("does not allow ban members permission", () => { assert.isFalse( handlePrune.permissionValidator({ permissions: new Set([ PermissionFlagsBits.BanMembers ]), diff --git a/test/commands/subcommands/moderation/handleUnban.spec.ts b/test/commands/subcommands/moderation/handleUnban.spec.ts index 3228e02b..832c5348 100644 --- a/test/commands/subcommands/moderation/handleUnban.spec.ts +++ b/test/commands/subcommands/moderation/handleUnban.spec.ts @@ -1,10 +1,10 @@ import { PermissionFlagsBits } from "discord.js"; -import { describe, assert, test } from "vitest"; +import { describe, assert, it } from "vitest"; import { handleUnban } from "../../../../src/commands/subcommands/moderation/handleUnban.js"; describe("unban handler", () => { - test("does not allow non-moderators permission", () => { + it("does not allow non-moderators permission", () => { assert.isFalse( handleUnban.permissionValidator({ permissions: new Set([ PermissionFlagsBits.SendMessages ]), @@ -12,7 +12,7 @@ describe("unban handler", () => { ); }); - test("does not allow moderate members permission", () => { + it("does not allow moderate members permission", () => { assert.isFalse( handleUnban.permissionValidator({ permissions: new Set([ PermissionFlagsBits.ModerateMembers ]), @@ -20,7 +20,7 @@ describe("unban handler", () => { ); }); - test("does not allow kick members permission", () => { + it("does not allow kick members permission", () => { assert.isFalse( handleUnban.permissionValidator({ permissions: new Set([ PermissionFlagsBits.KickMembers ]), @@ -28,7 +28,7 @@ describe("unban handler", () => { ); }); - test("allows ban members permission", () => { + it("allows ban members permission", () => { assert.isTrue( handleUnban.permissionValidator({ permissions: new Set([ PermissionFlagsBits.BanMembers ]), diff --git a/test/commands/subcommands/moderation/handleUnmute.spec.ts b/test/commands/subcommands/moderation/handleUnmute.spec.ts index 2404fcf0..220134df 100644 --- a/test/commands/subcommands/moderation/handleUnmute.spec.ts +++ b/test/commands/subcommands/moderation/handleUnmute.spec.ts @@ -1,10 +1,10 @@ import { PermissionFlagsBits } from "discord.js"; -import { describe, assert, test } from "vitest"; +import { describe, assert, it } from "vitest"; import { handleUnmute } from "../../../../src/commands/subcommands/moderation/handleUnmute.js"; describe("unmute handler", () => { - test("does not allow non-moderators permission", () => { + it("does not allow non-moderators permission", () => { assert.isFalse( handleUnmute.permissionValidator({ permissions: new Set([ PermissionFlagsBits.SendMessages ]), @@ -12,7 +12,7 @@ describe("unmute handler", () => { ); }); - test("allows moderate members permission", () => { + it("allows moderate members permission", () => { assert.isTrue( handleUnmute.permissionValidator({ permissions: new Set([ PermissionFlagsBits.ModerateMembers ]), @@ -20,7 +20,7 @@ describe("unmute handler", () => { ); }); - test("does not allow kick members permission", () => { + it("does not allow kick members permission", () => { assert.isFalse( handleUnmute.permissionValidator({ permissions: new Set([ PermissionFlagsBits.KickMembers ]), @@ -28,7 +28,7 @@ describe("unmute handler", () => { ); }); - test("does not allow ban members permission", () => { + it("does not allow ban members permission", () => { assert.isFalse( handleUnmute.permissionValidator({ permissions: new Set([ PermissionFlagsBits.BanMembers ]), diff --git a/test/commands/subcommands/moderation/handleWarn.spec.ts b/test/commands/subcommands/moderation/handleWarn.spec.ts index 52dffb29..bdb72a20 100644 --- a/test/commands/subcommands/moderation/handleWarn.spec.ts +++ b/test/commands/subcommands/moderation/handleWarn.spec.ts @@ -1,10 +1,10 @@ import { PermissionFlagsBits } from "discord.js"; -import { describe, assert, test } from "vitest"; +import { describe, assert, it } from "vitest"; import { handleWarn } from "../../../../src/commands/subcommands/moderation/handleWarn.js"; describe("warn handler", () => { - test("does not allow non-moderators permission", () => { + it("does not allow non-moderators permission", () => { assert.isFalse( handleWarn.permissionValidator({ permissions: new Set([ PermissionFlagsBits.SendMessages ]), @@ -12,7 +12,7 @@ describe("warn handler", () => { ); }); - test("allows moderate members permission", () => { + it("allows moderate members permission", () => { assert.isTrue( handleWarn.permissionValidator({ permissions: new Set([ PermissionFlagsBits.ModerateMembers ]), @@ -20,7 +20,7 @@ describe("warn handler", () => { ); }); - test("allows kick members permission", () => { + it("allows kick members permission", () => { assert.isTrue( handleWarn.permissionValidator({ permissions: new Set([ PermissionFlagsBits.KickMembers ]), @@ -28,7 +28,7 @@ describe("warn handler", () => { ); }); - test("allows ban members permission", () => { + it("allows ban members permission", () => { assert.isTrue( handleWarn.permissionValidator({ permissions: new Set([ PermissionFlagsBits.BanMembers ]), diff --git a/test/commands/supporter.spec.ts b/test/commands/supporter.spec.ts index 3ea1241e..15f13e76 100644 --- a/test/commands/supporter.spec.ts +++ b/test/commands/supporter.spec.ts @@ -1,8 +1,8 @@ -import { describe, assert, test } from "vitest"; +import { describe, assert, it } from "vitest"; import { supporter } from "../../src/commands/supporter.js"; describe("supporter command", () => { - test("is defined", () => { + it("is defined", () => { assert.isDefined(supporter); }); }); diff --git a/test/commands/translator.spec.ts b/test/commands/translator.spec.ts index e80b1803..fbfe84d2 100644 --- a/test/commands/translator.spec.ts +++ b/test/commands/translator.spec.ts @@ -1,8 +1,8 @@ -import { describe, assert, test } from "vitest"; +import { describe, assert, it } from "vitest"; import { translator } from "../../src/commands/translator.js"; describe("translator command", () => { - test("is defined", () => { + it("is defined", () => { assert.isDefined(translator); }); }); diff --git a/test/commands/userSettings.spec.ts b/test/commands/userSettings.spec.ts index 6763ea1d..a6856624 100644 --- a/test/commands/userSettings.spec.ts +++ b/test/commands/userSettings.spec.ts @@ -1,8 +1,8 @@ -import { describe, assert, test } from "vitest"; +import { describe, assert, it } from "vitest"; import { userSettings } from "../../src/commands/userSettings.js"; describe("user settings command", () => { - test("exists", () => { + it("exists", () => { assert.exists(userSettings); }); }); diff --git a/test/config/badges.spec.ts b/test/config/badges.spec.ts index 73a570d1..e47a66af 100644 --- a/test/config/badges.spec.ts +++ b/test/config/badges.spec.ts @@ -1,9 +1,9 @@ -import { describe, assert, test } from "vitest"; +import { describe, assert, it } from "vitest"; import { badges } from "../../src/config/badges.js"; describe("badges Config", () => { - test("should be unique", () => { + it("should be unique", () => { const set = new Set(badges.map((b) => { return b.name; })); diff --git a/test/config/intentOptions.spec.ts b/test/config/intentOptions.spec.ts index bfac4dd1..8100cbcc 100644 --- a/test/config/intentOptions.spec.ts +++ b/test/config/intentOptions.spec.ts @@ -1,9 +1,9 @@ import { GatewayIntentBits } from "discord.js"; -import { describe, assert, test } from "vitest"; +import { describe, assert, it } from "vitest"; import { intentOptions } from "../../src/config/intentOptions.js"; describe("intentOptions", () => { - test("All necessary intents should be declared.", () => { + it("all necessary intents should be declared.", () => { assert.include(intentOptions, GatewayIntentBits.Guilds); assert.include(intentOptions, GatewayIntentBits.GuildMembers); assert.include(intentOptions, GatewayIntentBits.GuildModeration); diff --git a/test/config/languages.spec.ts b/test/config/languages.spec.ts index 8cacca27..96d5e6cb 100644 --- a/test/config/languages.spec.ts +++ b/test/config/languages.spec.ts @@ -1,8 +1,8 @@ -import { describe, assert, test } from "vitest"; +import { describe, assert, it } from "vitest"; import { languages } from "../../src/config/languages.js"; describe("languages Config", () => { - test("should be unique", () => { + it("should be unique", () => { const set = new Set(languages); assert.equal(set.size, languages.length); }); diff --git a/test/config/levelScale.spec.ts b/test/config/levelScale.spec.ts index d60688ed..c1ca4886 100644 --- a/test/config/levelScale.spec.ts +++ b/test/config/levelScale.spec.ts @@ -1,8 +1,8 @@ -import { describe, assert, test } from "vitest"; +import { describe, assert, it } from "vitest"; import { levelScale } from "../../src/config/levelScale.js"; describe("levelScale", () => { - test("level scale should return the correct values", () => { + it("level scale should return the correct values", () => { assert.equal(levelScale[0], 0); assert.equal(levelScale[1], 100); assert.equal(levelScale[2], 300); diff --git a/test/config/pullComments.spec.ts b/test/config/pullComments.spec.ts index bcbb145e..fcf44e0d 100644 --- a/test/config/pullComments.spec.ts +++ b/test/config/pullComments.spec.ts @@ -1,8 +1,8 @@ -import { describe, assert, test } from "vitest"; +import { describe, assert, it } from "vitest"; import { pullComments } from "../../src/config/pullComments.js"; describe("pullComments", () => { - test("All keys should be under 100 characters (Discord limitation)", () => { + it("all keys should be under 100 characters (Discord limitation)", () => { for (const object of pullComments) { assert.isBelow( object.key.length, diff --git a/test/config/roles.spec.ts b/test/config/roles.spec.ts index 5026fb2f..7b1adbef 100644 --- a/test/config/roles.spec.ts +++ b/test/config/roles.spec.ts @@ -1,12 +1,12 @@ -import { describe, assert, test } from "vitest"; +import { describe, assert, it } from "vitest"; import { authorRoleId, supporterRoleId } from "../../src/config/roles.js"; describe("roles config", () => { - test("supporter role should be id", () => { + it("supporter role should be id", () => { assert.match(supporterRoleId, /^\d{16,19}$/); }); - test("author role should be id", () => { + it("author role should be id", () => { assert.match(authorRoleId, /^\d{16,19}$/); }); }); diff --git a/test/config/tags.spec.ts b/test/config/tags.spec.ts index 71a75ae9..b12ad47d 100644 --- a/test/config/tags.spec.ts +++ b/test/config/tags.spec.ts @@ -1,18 +1,16 @@ -import { describe, assert, test } from "vitest"; +import { describe, assert, it } from "vitest"; import { tags } from "../../src/config/tags.js"; describe("tags", () => { - test("quantity", () => { + it("quantity", () => { assert.isAtMost(tags.length, 25, "Cannot have more than 25 tags."); }); - for (const tag of tags) { - test(`${tag.name} should be formatted correctly.`, () => { - assert.isAtMost(tag.name.length, 100, "Name is too long."); - assert.isAtMost( - tag.message.length, - 4000, - "Message exceeds Discord limits.", - ); - }); - } + it.each(tags)(`%s should be formatted correctly.`, (tag) => { + assert.isAtMost(tag.name.length, 100, "Name is too long."); + assert.isAtMost( + tag.message.length, + 4000, + "Message exceeds Discord limits.", + ); + }); }); diff --git a/test/config/truisms.spec.ts b/test/config/truisms.spec.ts index 7f51a5a3..3d101936 100644 --- a/test/config/truisms.spec.ts +++ b/test/config/truisms.spec.ts @@ -1,8 +1,8 @@ -import { describe, assert, test } from "vitest"; +import { describe, assert, it } from "vitest"; import { truisms } from "../../src/config/truisms.js"; describe("truisms", () => { - test("truisms should be formatted correctly.", () => { + it("truisms should be formatted correctly.", () => { for (const truism of truisms) { assert.isAtMost(truism.length, 4000, "Truism exceeds Discord limits."); } diff --git a/test/contexts/bookmark.spec.ts b/test/contexts/bookmark.spec.ts index bcf7555b..f8706477 100644 --- a/test/contexts/bookmark.spec.ts +++ b/test/contexts/bookmark.spec.ts @@ -1,15 +1,15 @@ import { ApplicationCommandType } from "discord.js"; -import { describe, assert, test } from "vitest"; +import { describe, assert, it } from "vitest"; import { bookmark } from "../../src/contexts/bookmark.js"; describe("bookmark context", () => { - test("bookmark context should be a context object.", () => { + it("bookmark context should be a context object.", () => { assert.isDefined(bookmark.data); assert.isObject(bookmark.data); assert.isDefined(bookmark.run); assert.isFunction(bookmark.run); }); - test("bookmark context should be formatted correctly.", () => { + it("bookmark context should be formatted correctly.", () => { assert.equal(bookmark.data.name, "bookmark"); assert.equal(bookmark.data.type, ApplicationCommandType.Message); }); diff --git a/test/contexts/format.spec.ts b/test/contexts/format.spec.ts index 68486db2..524b6654 100644 --- a/test/contexts/format.spec.ts +++ b/test/contexts/format.spec.ts @@ -1,15 +1,15 @@ import { ApplicationCommandType } from "discord.js"; -import { describe, assert, test } from "vitest"; +import { describe, assert, it } from "vitest"; import { format } from "../../src/contexts/format.js"; describe("format context", () => { - test("format context should be a context object.", () => { + it("format context should be a context object.", () => { assert.isDefined(format.data); assert.isObject(format.data); assert.isDefined(format.run); assert.isFunction(format.run); }); - test("format context should be formatted correctly.", () => { + it("format context should be formatted correctly.", () => { assert.equal(format.data.name, "format"); assert.equal(format.data.type, ApplicationCommandType.Message); }); diff --git a/test/contexts/report.spec.ts b/test/contexts/report.spec.ts index 8a9e43fc..c9503c35 100644 --- a/test/contexts/report.spec.ts +++ b/test/contexts/report.spec.ts @@ -1,15 +1,15 @@ import { ApplicationCommandType } from "discord.js"; -import { describe, assert, test } from "vitest"; +import { describe, assert, it } from "vitest"; import { report } from "../../src/contexts/report.js"; describe("report context", () => { - test("report context should be a context object.", () => { + it("report context should be a context object.", () => { assert.isDefined(report.data); assert.isObject(report.data); assert.isDefined(report.run); assert.isFunction(report.run); }); - test("report context should be formatted correctly.", () => { + it("report context should be formatted correctly.", () => { assert.equal(report.data.name, "report"); assert.equal(report.data.type, ApplicationCommandType.Message); }); diff --git a/test/contexts/snippet.spec.ts b/test/contexts/snippet.spec.ts index ec27902a..cfc98147 100644 --- a/test/contexts/snippet.spec.ts +++ b/test/contexts/snippet.spec.ts @@ -1,8 +1,8 @@ -import { describe, assert, test } from "vitest"; +import { describe, assert, it } from "vitest"; import { snippet } from "../../src/contexts/snippet.js"; describe("snippet context", () => { - test("is defined", () => { + it("is defined", () => { assert.isDefined(snippet); }); }); diff --git a/test/contexts/translate.spec.ts b/test/contexts/translate.spec.ts index 06a2838b..49eefdba 100644 --- a/test/contexts/translate.spec.ts +++ b/test/contexts/translate.spec.ts @@ -1,15 +1,15 @@ import { ApplicationCommandType } from "discord.js"; -import { describe, assert, test } from "vitest"; +import { describe, assert, it } from "vitest"; import { translate } from "../../src/contexts/translate.js"; describe("translate context", () => { - test("translate context should be a context object.", () => { + it("translate context should be a context object.", () => { assert.isDefined(translate.data); assert.isObject(translate.data); assert.isDefined(translate.run); assert.isFunction(translate.run); }); - test("translate context should be formatted correctly.", () => { + it("translate context should be formatted correctly.", () => { assert.equal(translate.data.name, "translate"); assert.equal(translate.data.type, ApplicationCommandType.Message); }); diff --git a/test/database/connectDatabase.spec.ts b/test/database/connectDatabase.spec.ts index 0df2ca15..5d5a72c2 100644 --- a/test/database/connectDatabase.spec.ts +++ b/test/database/connectDatabase.spec.ts @@ -1,8 +1,8 @@ -import { describe, assert, test } from "vitest"; +import { describe, assert, it } from "vitest"; import { connectDatabase } from "../../src/database/connectDatabase.js"; describe("connectDatabase", () => { - test("should be defined", () => { + it("should be defined", () => { assert.isDefined(connectDatabase, "connectDatabase is not defined"); assert.isFunction(connectDatabase, "connectDatabase is not a function"); }); diff --git a/test/events/handlers/handleGuildScheduledEvents.spec.ts b/test/events/handlers/handleGuildScheduledEvents.spec.ts index eedb15df..2ce0c712 100644 --- a/test/events/handlers/handleGuildScheduledEvents.spec.ts +++ b/test/events/handlers/handleGuildScheduledEvents.spec.ts @@ -1,9 +1,9 @@ -import { describe, assert, test } from "vitest"; +import { describe, assert, it } from "vitest"; import { handleGuildScheduledEvents } from "../../../src/events/handlers/handleGuildScheduledEvents.js"; describe("handleGuildScheduledEvents", () => { - test("handleGuildScheduledEvents is a function", () => { + it("handleGuildScheduledEvents is a function", () => { assert.isFunction(handleGuildScheduledEvents); }); }); diff --git a/test/events/handlers/handleInteractionCreate.spec.ts b/test/events/handlers/handleInteractionCreate.spec.ts index 2ed28eed..a55c957d 100644 --- a/test/events/handlers/handleInteractionCreate.spec.ts +++ b/test/events/handlers/handleInteractionCreate.spec.ts @@ -1,9 +1,9 @@ -import { describe, assert, test } from "vitest"; +import { describe, assert, it } from "vitest"; import { handleInteractionCreate } from "../../../src/events/handlers/handleInteractionCreate.js"; describe("handleInteractionCreate", () => { - test("handleInteractionCreate is a function", () => { + it("handleInteractionCreate is a function", () => { assert.isFunction(handleInteractionCreate); }); }); diff --git a/test/events/handlers/handleMemberAdd.spec.ts b/test/events/handlers/handleMemberAdd.spec.ts index ab26ed89..d6c9a743 100644 --- a/test/events/handlers/handleMemberAdd.spec.ts +++ b/test/events/handlers/handleMemberAdd.spec.ts @@ -1,9 +1,9 @@ -import { describe, assert, test } from "vitest"; +import { describe, assert, it } from "vitest"; import { handleMemberAdd } from "../../../src/events/handlers/handleMemberAdd.js"; describe("handleMemberAdd", () => { - test("handleMemberAdd is a function", () => { + it("handleMemberAdd is a function", () => { assert.isFunction(handleMemberAdd); }); }); diff --git a/test/events/handlers/handleMemberRemove.spec.ts b/test/events/handlers/handleMemberRemove.spec.ts index 54058f39..40cf440b 100644 --- a/test/events/handlers/handleMemberRemove.spec.ts +++ b/test/events/handlers/handleMemberRemove.spec.ts @@ -1,9 +1,9 @@ -import { describe, assert, test } from "vitest"; +import { describe, assert, it } from "vitest"; import { handleMemberRemove } from "../../../src/events/handlers/handleMemberRemove.js"; describe("handleMemberRemove", () => { - test("handleMemberRemove is a function", () => { + it("handleMemberRemove is a function", () => { assert.isFunction(handleMemberRemove); }); }); diff --git a/test/events/handlers/handleMessageCreate.spec.ts b/test/events/handlers/handleMessageCreate.spec.ts index d6d1fd70..54a3361b 100644 --- a/test/events/handlers/handleMessageCreate.spec.ts +++ b/test/events/handlers/handleMessageCreate.spec.ts @@ -1,9 +1,9 @@ -import { describe, assert, test } from "vitest"; +import { describe, assert, it } from "vitest"; import { handleMessageCreate } from "../../../src/events/handlers/handleMessageCreate.js"; describe("handleMessageCreate", () => { - test("handleMessageCreate is a function", () => { + it("handleMessageCreate is a function", () => { assert.isFunction(handleMessageCreate); }); }); diff --git a/test/events/handlers/handleMessageDelete.spec.ts b/test/events/handlers/handleMessageDelete.spec.ts index 2de8e999..12608ded 100644 --- a/test/events/handlers/handleMessageDelete.spec.ts +++ b/test/events/handlers/handleMessageDelete.spec.ts @@ -1,9 +1,9 @@ -import { describe, assert, test } from "vitest"; +import { describe, assert, it } from "vitest"; import { handleMessageDelete } from "../../../src/events/handlers/handleMessageDelete.js"; describe("handleMessageDelete", () => { - test("handleMessageDelete is a function", () => { + it("handleMessageDelete is a function", () => { assert.isFunction(handleMessageDelete); }); }); diff --git a/test/events/handlers/handleMessageEdit.spec.ts b/test/events/handlers/handleMessageEdit.spec.ts index 1d225c88..a41eceb7 100644 --- a/test/events/handlers/handleMessageEdit.spec.ts +++ b/test/events/handlers/handleMessageEdit.spec.ts @@ -1,9 +1,9 @@ -import { describe, assert, test } from "vitest"; +import { describe, assert, it } from "vitest"; import { handleMessageEdit } from "../../../src/events/handlers/handleMessageEdit.js"; describe("handleMessageEdit", () => { - test("handleMessageEdit is a function", () => { + it("handleMessageEdit is a function", () => { assert.isFunction(handleMessageEdit); }); }); diff --git a/test/events/handlers/handleReady.spec.ts b/test/events/handlers/handleReady.spec.ts index f0f67bf3..20b69ee1 100644 --- a/test/events/handlers/handleReady.spec.ts +++ b/test/events/handlers/handleReady.spec.ts @@ -1,10 +1,10 @@ -import { describe, assert, test, vi } from "vitest"; +import { describe, assert, it, vi } from "vitest"; import { handleReady } from "../../../src/events/handlers/handleReady.js"; vi.mock("discord.js"); describe("handleReady", () => { - test("handleReady is a function", () => { + it("handleReady is a function", () => { assert.isFunction(handleReady); }); }); diff --git a/test/events/handlers/handleThreadCreate.spec.ts b/test/events/handlers/handleThreadCreate.spec.ts index 21e99743..deefdba1 100644 --- a/test/events/handlers/handleThreadCreate.spec.ts +++ b/test/events/handlers/handleThreadCreate.spec.ts @@ -1,9 +1,9 @@ -import { describe, assert, test } from "vitest"; +import { describe, assert, it } from "vitest"; import { handleThreadCreate } from "../../../src/events/handlers/handleThreadCreate.js"; describe("handleThreadCreate", () => { - test("handleThreadCreate is a function", () => { + it("handleThreadCreate is a function", () => { assert.isFunction(handleThreadCreate); }); }); diff --git a/test/events/handlers/handleVoiceStateUpdate.spec.ts b/test/events/handlers/handleVoiceStateUpdate.spec.ts index 850b6189..29515897 100644 --- a/test/events/handlers/handleVoiceStateUpdate.spec.ts +++ b/test/events/handlers/handleVoiceStateUpdate.spec.ts @@ -1,9 +1,9 @@ -import { describe, assert, test } from "vitest"; +import { describe, assert, it } from "vitest"; import { handleVoiceStateUpdate } from "../../../src/events/handlers/handleVoiceStateUpdate.js"; describe("handleVoiceStateUpdate", () => { - test("handleVoiceStateUpdate is a function", () => { + it("handleVoiceStateUpdate is a function", () => { assert.isFunction(handleVoiceStateUpdate); }); }); diff --git a/test/events/registerEvents.spec.ts b/test/events/registerEvents.spec.ts index 3aefea47..f704a883 100644 --- a/test/events/registerEvents.spec.ts +++ b/test/events/registerEvents.spec.ts @@ -1,4 +1,4 @@ -import { describe, assert, test, vi } from "vitest"; +import { describe, assert, it, vi } from "vitest"; import { registerEvents } from "../../src/events/registerEvents.js"; vi.mock("discord.js"); @@ -11,11 +11,11 @@ const bot = { }; describe("registerEvents", () => { - test("registerEvents is a function", () => { + it("registerEvents is a function", () => { assert.isFunction(registerEvents); }); - test("should register all events", async() => { + it("should register all events", async() => { await registerEvents(bot as never); assert.property(bot.events, "ready"); assert.property(bot.events, "messageCreate"); diff --git a/test/modules/addFormatting.spec.ts b/test/modules/addFormatting.spec.ts index 3945040f..53f2cafe 100644 --- a/test/modules/addFormatting.spec.ts +++ b/test/modules/addFormatting.spec.ts @@ -1,4 +1,4 @@ -import { describe, assert, test } from "vitest"; +import { describe, assert, it } from "vitest"; import { addFormatting } from "../../src/modules/addFormatting.js"; import type { Message } from "discord.js"; @@ -7,42 +7,42 @@ const typeCoerce = (object: unknown): Message => { }; describe("addFormatting", () => { - test("is defined", () => { + it("is defined", () => { assert.isDefined(addFormatting, "addFormatting is not defined"); assert.isFunction(addFormatting, "addFormatting is not a function"); }); - test("should format HTML", async() => { + it("should format HTML", async() => { const content = "

Hello

"; const output = await addFormatting(typeCoerce({ content })); assert.equal(output, "```XML\n

Hello

\n```"); }); - test("should format CSS", async() => { + it("should format CSS", async() => { const content = "body { color: red }"; const output = await addFormatting(typeCoerce({ content })); assert.equal(output, "```css\nbody {\n color: red;\n}\n```"); }); - test("should format SCSS", async() => { + it("should format SCSS", async() => { const content = "body { color: red }"; const output = await addFormatting(typeCoerce({ content })); assert.equal(output, "```css\nbody {\n color: red;\n}\n```"); }); - test("should format JS", async() => { + it("should format JS", async() => { const content = "const foo = 'bar';"; const output = await addFormatting(typeCoerce({ content })); assert.equal(output, `\`\`\`js\nconst foo = "bar";\n\`\`\``); }); - test("should format TS", async() => { + it("should format TS", async() => { const content = "const foo: string = 'bar';"; const output = await addFormatting(typeCoerce({ content })); assert.equal(output, "```TypeScript\nconst foo: string = 'bar';\n```"); }); - test("should format JSX", async() => { + it("should format JSX", async() => { const content = `let jsxElement=(

Welcome To freeCodeCamp

Hello World

);`; const output = await addFormatting(typeCoerce({ content })); assert.equal( @@ -51,7 +51,7 @@ describe("addFormatting", () => { ); }); - test("should format PHP", async() => { + it("should format PHP", async() => { const content = ``; const output = await addFormatting(typeCoerce({ content })); assert.equal(output, `\`\`\`PHP\n\n\`\`\``); @@ -59,14 +59,14 @@ describe("addFormatting", () => { /* * TODO: Python is currently throwing a CSS sytnax error? - * test("should format Python", async () => { + * it("should format Python", async () => { * const content = `for i in range(10):\n print(i)`; * const output = await addFormatting(typeCoerce({ content })); * assert.equal(output, `\`\`\`Python\nprint("Hello World")\n\`\`\``); * }); */ - test("should format Markdown", async() => { + it("should format Markdown", async() => { const content = `# Hello World\n\n## Subheading\n\n- List Item`; const output = await addFormatting(typeCoerce({ content })); assert.equal( @@ -75,13 +75,13 @@ describe("addFormatting", () => { ); }); - test("should format JSON", async() => { + it("should format JSON", async() => { const content = `{"name": "Naomi"}`; const output = await addFormatting(typeCoerce({ content })); assert.equal(output, `\`\`\`json\n{ "name": "Naomi" }\n\`\`\``); }); - test("should format HTTP", async() => { + it("should format HTTP", async() => { const content = `GET / HTTP/1.1\nHost: example.com\n\n`; const output = await addFormatting(typeCoerce({ content })); assert.equal( diff --git a/test/modules/closePrivateChannel.spec.ts b/test/modules/closePrivateChannel.spec.ts index 6ebcf4ea..591c00de 100644 --- a/test/modules/closePrivateChannel.spec.ts +++ b/test/modules/closePrivateChannel.spec.ts @@ -1,8 +1,8 @@ -import { describe, assert, test } from "vitest"; +import { describe, assert, it } from "vitest"; import { closePrivateChannel } from "../../src/modules/closePrivateChannel.js"; describe("closePrivateChannel", () => { - test("is defined", () => { + it("is defined", () => { assert.isDefined(closePrivateChannel, "closePrivateChannel is not defined"); assert.isFunction( closePrivateChannel, diff --git a/test/modules/createLogFile.spec.ts b/test/modules/createLogFile.spec.ts index 8ed9025e..ee7690d8 100644 --- a/test/modules/createLogFile.spec.ts +++ b/test/modules/createLogFile.spec.ts @@ -1,16 +1,16 @@ import { stat, unlink } from "node:fs/promises"; import { join } from "node:path"; -import { describe, assert, test } from "vitest"; +import { describe, assert, it } from "vitest"; import { createLogFile } from "../../src/modules/createLogFile.js"; import type { ExtendedClient } from "../../src/interfaces/extendedClient.js"; describe("createLogFile", () => { - test("is defined", () => { + it("is defined", () => { assert.isDefined(createLogFile, "createLogFile is not defined"); assert.isFunction(createLogFile, "createLogFile is not a function"); }); - test("returns the expected data structure", async() => { + it("returns the expected data structure", async() => { const mockBot = { privateLogs: {} } as ExtendedClient; await createLogFile(mockBot, "Naomi"); assert.property(mockBot.privateLogs, "Naomi", "Naomi is not defined"); diff --git a/test/modules/formatCodeblock.spec.ts b/test/modules/formatCodeblock.spec.ts index 37ab2d63..edeae0b7 100644 --- a/test/modules/formatCodeblock.spec.ts +++ b/test/modules/formatCodeblock.spec.ts @@ -1,19 +1,19 @@ -import { describe, assert, test } from "vitest"; +import { describe, assert, it } from "vitest"; import { formatCodeBlock } from "../../src/modules/formatCodeblock.js"; describe("formatCodeBlock", () => { - test("is defined", () => { + it("is defined", () => { assert.isDefined(formatCodeBlock, "formatCodeBlock is not defined"); assert.isFunction(formatCodeBlock, "formatCodeBlock is not a function"); }); - test("formats string as expected", () => { + it("formats string as expected", () => { const code = "const foo = 'bar';"; const lang = "ts"; assert.equal(formatCodeBlock(lang, code), "```ts\nconst foo = 'bar';\n```"); }); - test("does not add trailing new line if present", () => { + it("does not add trailing new line if present", () => { const code = "const foo = 'bar';\n"; const lang = "ts"; assert.equal(formatCodeBlock(lang, code), "```ts\nconst foo = 'bar';\n```"); diff --git a/test/modules/formatter.spec.ts b/test/modules/formatter.spec.ts index cd8ac49a..e85a075e 100644 --- a/test/modules/formatter.spec.ts +++ b/test/modules/formatter.spec.ts @@ -1,13 +1,13 @@ -import { describe, assert, test } from "vitest"; +import { describe, assert, it } from "vitest"; import { formatter } from "../../src/modules/formatter.js"; describe("formatter", () => { - test("is defined", () => { + it("is defined", () => { assert.isDefined(formatter, "formatter is not defined"); assert.isFunction(formatter, "formatter is not a function"); }); - test("should format HTML", async() => { + it("should format HTML", async() => { const content = `

Hello world this is a very long string from Naomi to force a line break.

`; const output = await formatter(content, "html"); @@ -17,31 +17,31 @@ describe("formatter", () => { ); }); - test("should format CSS", async() => { + it("should format CSS", async() => { const content = "body { color: red }"; const output = await formatter(content, "css"); assert.equal(output, "body {\n color: red;\n}\n"); }); - test("should format SCSS", async() => { + it("should format SCSS", async() => { const content = "@mixin center {margin: 0}"; const output = await formatter(content, "css"); assert.equal(output, "@mixin center {\n margin: 0;\n}\n"); }); - test("should format JS", async() => { + it("should format JS", async() => { const content = "const foo = 'bar';"; const output = await formatter(content, "js"); assert.equal(output, `const foo = "bar";\n`); }); - test("should format TS", async() => { + it("should format TS", async() => { const content = "const foo: string = 'bar';"; const output = await formatter(content, "ts"); assert.equal(output, `const foo: string = "bar";\n`); }); - test("should format JSX", async() => { + it("should format JSX", async() => { const content = `let jsxElement=(

Welcome To freeCodeCamp

Hello World

);`; const output = await formatter(content, "js"); assert.equal( @@ -50,19 +50,19 @@ describe("formatter", () => { ); }); - test("should format Markdown", async() => { + it("should format Markdown", async() => { const content = `# Hello World\n\n## Subheading\n\n- List Item`; const output = await formatter(content, "markdown"); assert.equal(output, `# Hello World\n\n## Subheading\n\n- List Item\n`); }); - test("should format JSON", async() => { + it("should format JSON", async() => { const content = `{"name": "Naomi"}`; const output = await formatter(content, "json"); assert.equal(output, `{ "name": "Naomi" }\n`); }); - test("should format YAML", async() => { + it("should format YAML", async() => { const content = `name: Naomi\nuse:\n - Naomi`; const output = await formatter(content, "yaml"); assert.equal(output, `name: Naomi\nuse:\n - Naomi\n`); diff --git a/test/modules/generateCertSvg.spec.ts b/test/modules/generateCertSvg.spec.ts index 569544b8..d2f2568a 100644 --- a/test/modules/generateCertSvg.spec.ts +++ b/test/modules/generateCertSvg.spec.ts @@ -1,8 +1,8 @@ -import { describe, assert, test } from "vitest"; +import { describe, assert, it } from "vitest"; import { generatorMap } from "../../src/modules/generateCertSvg.js"; describe("generateCertSvg", () => { - test("has generator map object", () => { + it("has generator map object", () => { assert.isObject(generatorMap); }); }); diff --git a/test/modules/generateConfig.spec.ts b/test/modules/generateConfig.spec.ts index 603ee7ed..7f609a03 100644 --- a/test/modules/generateConfig.spec.ts +++ b/test/modules/generateConfig.spec.ts @@ -1,19 +1,19 @@ import { WebhookClient } from "discord.js"; -import { describe, assert, test } from "vitest"; +import { describe, assert, it } from "vitest"; import { generateConfig } from "../../src/modules/generateConfig.js"; describe("generateConfig", () => { - test("is defined", () => { + it("is defined", () => { assert.isDefined(generateConfig, "generateConfig is not defined"); assert.isFunction(generateConfig, "generateConfig is not a function"); }); - test("should throw an error on missing environment", () => { + it("should throw an error on missing environment", () => { delete process.env.TOKEN; assert.throw(generateConfig, "Missing required config variables"); }); - test("should return expected object on valid environment", () => { + it("should return expected object on valid environment", () => { process.env.TOKEN = "Naomi"; process.env.MONGO_URI = "Was"; process.env.HOME_GUILD = "Here"; diff --git a/test/modules/generateLogs.spec.ts b/test/modules/generateLogs.spec.ts index 6f7983bb..07b7316d 100644 --- a/test/modules/generateLogs.spec.ts +++ b/test/modules/generateLogs.spec.ts @@ -1,6 +1,6 @@ import { stat } from "node:fs/promises"; import { join } from "node:path"; -import { describe, assert, test } from "vitest"; +import { describe, assert, it } from "vitest"; import { createLogFile } from "../../src/modules/createLogFile.js"; import { generateLogs } from "../../src/modules/generateLogs.js"; import type { ExtendedClient } from "../../src/interfaces/extendedClient.js"; @@ -8,12 +8,12 @@ import type { ExtendedClient } from "../../src/interfaces/extendedClient.js"; const mockBot = { privateLogs: {} } as ExtendedClient; describe("generateLogs", () => { - test("is defined", () => { + it("is defined", () => { assert.isDefined(generateLogs, "generateLogs is not defined"); assert.isFunction(generateLogs, "generateLogs is not a function"); }); - test("generates logs as expected", async() => { + it("generates logs as expected", async() => { await createLogFile(mockBot, "Naomi"); assert.property(mockBot.privateLogs, "Naomi", "Naomi is not defined"); const attachment = await generateLogs(mockBot, "Naomi"); diff --git a/test/modules/generateProfileImage.spec.ts b/test/modules/generateProfileImage.spec.ts index 7cdd14dc..67c4f8fd 100644 --- a/test/modules/generateProfileImage.spec.ts +++ b/test/modules/generateProfileImage.spec.ts @@ -1,9 +1,9 @@ -import { describe, assert, test } from "vitest"; +import { describe, assert, it } from "vitest"; import { generateProfileImage } from "../../src/modules/generateProfileImage.js"; describe("generateProfileImage", () => { - test("is defined", () => { + it("is defined", () => { assert.isDefined( generateProfileImage, "generateProfileImage is not defined", diff --git a/test/modules/isSupportedByPrettier.spec.ts b/test/modules/isSupportedByPrettier.spec.ts index 1a2a14a8..fac86b95 100644 --- a/test/modules/isSupportedByPrettier.spec.ts +++ b/test/modules/isSupportedByPrettier.spec.ts @@ -1,9 +1,9 @@ -import { describe, assert, test } from "vitest"; +import { describe, assert, it } from "vitest"; import { isSupportedByPrettier } from "../../src/modules/isSupportedByPrettier.js"; describe("isSupportedByPrettier", () => { - test("is defined", () => { + it("is defined", () => { assert.isDefined( isSupportedByPrettier, "isSupportedByPrettier is not defined", @@ -14,11 +14,11 @@ describe("isSupportedByPrettier", () => { ); }); - test("returns false on empty language name", () => { + it("returns false on empty language name", () => { assert.isFalse(isSupportedByPrettier("")); }); - test("returns expected language names for supported langs", () => { + it("returns expected language names for supported langs", () => { assert.equal(isSupportedByPrettier("HTML"), "html"); assert.equal(isSupportedByPrettier("CSS"), "css"); assert.equal(isSupportedByPrettier("SCSS"), "css"); @@ -29,7 +29,7 @@ describe("isSupportedByPrettier", () => { assert.equal(isSupportedByPrettier("YAML"), "yaml"); }); - test("returns false for unsupported languages", () => { + it("returns false for unsupported languages", () => { assert.isFalse(isSupportedByPrettier("Python")); assert.isFalse(isSupportedByPrettier("Ruby")); assert.isFalse(isSupportedByPrettier("C++")); diff --git a/test/modules/levelListener.spec.ts b/test/modules/levelListener.spec.ts index f7a2e736..fdbcea05 100644 --- a/test/modules/levelListener.spec.ts +++ b/test/modules/levelListener.spec.ts @@ -1,8 +1,8 @@ -import { describe, assert, test } from "vitest"; +import { describe, assert, it } from "vitest"; import { levelListener } from "../../src/modules/levelListener.js"; describe("levelListener", () => { - test("levelListener is a function", () => { + it("levelListener is a function", () => { assert.isFunction(levelListener); }); }); diff --git a/test/modules/loadRoles.spec.ts b/test/modules/loadRoles.spec.ts index fb719312..8cf82bd9 100644 --- a/test/modules/loadRoles.spec.ts +++ b/test/modules/loadRoles.spec.ts @@ -1,8 +1,8 @@ -import { describe, assert, test } from "vitest"; +import { describe, assert, it } from "vitest"; import { loadRoles } from "../../src/modules/loadRoles.js"; describe("load roles module", () => { - test("is defined", () => { + it("is defined", () => { assert.isDefined(loadRoles); }); }); diff --git a/test/modules/messageCounter.spec.ts b/test/modules/messageCounter.spec.ts index 9e76bb4c..42b9574c 100644 --- a/test/modules/messageCounter.spec.ts +++ b/test/modules/messageCounter.spec.ts @@ -1,8 +1,8 @@ -import { describe, assert, test } from "vitest"; +import { describe, assert, it } from "vitest"; import { messageCounter } from "../../src/modules/messageCounter.js"; describe("message counter module", () => { - test("is defined", () => { + it("is defined", () => { assert.isDefined(messageCounter); }); }); diff --git a/test/modules/reactionRoleClick.spec.ts b/test/modules/reactionRoleClick.spec.ts index 7a37de3c..25a4f15d 100644 --- a/test/modules/reactionRoleClick.spec.ts +++ b/test/modules/reactionRoleClick.spec.ts @@ -1,8 +1,8 @@ -import { describe, assert, test } from "vitest"; +import { describe, assert, it } from "vitest"; import { reactionRoleClick } from "../../src/modules/reactionRoleClick.js"; describe("reactionRoleClick", () => { - test("reactionRoleClick is a function", () => { + it("reactionRoleClick is a function", () => { assert.isFunction(reactionRoleClick); }); }); diff --git a/test/modules/send100DaysOfCode.spec.ts b/test/modules/send100DaysOfCode.spec.ts index 5f402c6a..5a3e8261 100644 --- a/test/modules/send100DaysOfCode.spec.ts +++ b/test/modules/send100DaysOfCode.spec.ts @@ -1,8 +1,8 @@ -import { describe, assert, test } from "vitest"; +import { describe, assert, it } from "vitest"; import { send100DaysOfCode } from "../../src/modules/send100DaysOfCode.js"; describe("send100DaysOfCode", () => { - test("send100DaysOfCode is a function", () => { + it("send100DaysOfCode is a function", () => { assert.isFunction(send100DaysOfCode); }); }); diff --git a/test/modules/sendModerationDm.spec.ts b/test/modules/sendModerationDm.spec.ts index efd67860..fc088b3a 100644 --- a/test/modules/sendModerationDm.spec.ts +++ b/test/modules/sendModerationDm.spec.ts @@ -1,8 +1,8 @@ -import { describe, assert, test } from "vitest"; +import { describe, assert, it } from "vitest"; import { sendModerationDm } from "../../src/modules/sendModerationDm.js"; describe("sendModerationDm", () => { - test("sendModerationDm is a function", () => { + it("sendModerationDm is a function", () => { assert.isFunction(sendModerationDm); }); }); diff --git a/test/modules/settingsValidation.spec.ts b/test/modules/settingsValidation.spec.ts index 5bc5536a..4a40ab94 100644 --- a/test/modules/settingsValidation.spec.ts +++ b/test/modules/settingsValidation.spec.ts @@ -1,15 +1,15 @@ -import { describe, assert, test } from "vitest"; +import { describe, assert, it } from "vitest"; import { validateColour, validateImage, } from "../../src/modules/settingsValidation.js"; describe("settings validation", () => { - test("validateColour", () => { + it("validateColour", () => { assert.exists(validateColour); }); - test("validateImage", () => { + it("validateImage", () => { assert.exists(validateImage); }); }); diff --git a/test/modules/updateHistory.spec.ts b/test/modules/updateHistory.spec.ts index a4c949e5..d5a3d65e 100644 --- a/test/modules/updateHistory.spec.ts +++ b/test/modules/updateHistory.spec.ts @@ -1,15 +1,15 @@ -import { describe, assert, test } from "vitest"; +import { describe, assert, it } from "vitest"; import { updateHistory } from "../../src/modules/updateHistory.js"; import { Database } from "../__mocks__/Database.mock.js"; const database = new Database(); describe("updateHistory", () => { - test("updateHistory is a function", () => { + it("updateHistory is a function", () => { assert.isFunction(updateHistory); }); - test("should create a new history when user does not exist", async() => { + it("should create a new history when user does not exist", async() => { await updateHistory({ db: database } as never, "ban", "123"); const history = await database.histories.findUnique({ where: { @@ -25,7 +25,7 @@ describe("updateHistory", () => { assert.equal(history?.unbans, 0); }); - test("should update an existing history", async() => { + it("should update an existing history", async() => { await updateHistory({ db: database } as never, "ban", "123"); await updateHistory({ db: database } as never, "mute", "123"); const history = await database.histories.findUnique({ diff --git a/test/utils/calculateMilliseconds.spec.ts b/test/utils/calculateMilliseconds.spec.ts index 73536145..dcf65574 100644 --- a/test/utils/calculateMilliseconds.spec.ts +++ b/test/utils/calculateMilliseconds.spec.ts @@ -1,42 +1,42 @@ -import { describe, assert, test } from "vitest"; +import { describe, assert, it } from "vitest"; import { calculateMilliseconds, isValidTimeUnit, } from "../../src/utils/calculateMilliseconds.js"; describe("calculateMilliseconds", () => { - test("10 seconds equals 10,000 milliseconds", () => { + it("10 seconds equals 10,000 milliseconds", () => { assert.equal(calculateMilliseconds(10, "seconds"), 10_000); }); - test("10 minutes equals 60,000 milliseconds", () => { + it("10 minutes equals 60,000 milliseconds", () => { assert.equal(calculateMilliseconds(10, "minutes"), 600_000); }); - test("10 hours equals 36,000,000 milliseconds", () => { + it("10 hours equals 36,000,000 milliseconds", () => { assert.equal(calculateMilliseconds(10, "hours"), 36_000_000); }); - test("10 days equals 864,000,000 milliseconds", () => { + it("10 days equals 864,000,000 milliseconds", () => { assert.equal(calculateMilliseconds(10, "days"), 864_000_000); }); - test("10 weeks equals 6,048,000,000 milliseconds", () => { + it("10 weeks equals 6,048,000,000 milliseconds", () => { assert.equal(calculateMilliseconds(10, "weeks"), 6_048_000_000); }); - test("should handle invalid time units", () => { + it("should handle invalid time units", () => { // @ts-expect-error intentionally ignoring type for testing assert.equal(calculateMilliseconds(10, "invalid"), 0); }); }); describe("isValidTimeUnit", () => { - test("should return true for valid time units", () => { + it("should return true for valid time units", () => { assert.isTrue(isValidTimeUnit("seconds")); }); - test("should return false for invalid time units", () => { + it("should return false for invalid time units", () => { assert.isFalse(isValidTimeUnit("invalid")); }); }); diff --git a/test/utils/customSubstring.spec.ts b/test/utils/customSubstring.spec.ts index f0323599..2c619982 100644 --- a/test/utils/customSubstring.spec.ts +++ b/test/utils/customSubstring.spec.ts @@ -1,18 +1,18 @@ -import { describe, assert, test } from "vitest"; +import { describe, assert, it } from "vitest"; import { customSubstring } from "../../src/utils/customSubstring.js"; describe("customSubstring", () => { - test("is defined", () => { + it("is defined", () => { assert.isDefined(customSubstring, "customSubstring is not defined"); assert.isFunction(customSubstring, "customSubstring is not a function"); }); - test("returns original string when shorter", () => { + it("returns original string when shorter", () => { assert.equal(customSubstring("long", 9), "long"); assert.equal(customSubstring("short", 5), "short"); }); - test("returns truncated string when longer", () => { + it("returns truncated string when longer", () => { assert.equal(customSubstring("longer", 2), "..."); assert.equal(customSubstring("longer", 5), "lo..."); }); diff --git a/test/utils/errorHandler.spec.ts b/test/utils/errorHandler.spec.ts index 88347e03..d689fc85 100644 --- a/test/utils/errorHandler.spec.ts +++ b/test/utils/errorHandler.spec.ts @@ -1,8 +1,8 @@ -import { describe, assert, test } from "vitest"; +import { describe, assert, it } from "vitest"; import { errorHandler } from "../../src/utils/errorHandler.js"; describe("errorHandler", () => { - test("is defined", () => { + it("is defined", () => { assert.isDefined(errorHandler, "errorHandler is not defined"); assert.isFunction(errorHandler, "errorHandler is not a function"); }); diff --git a/test/utils/fetchLearnRecord.spec.ts b/test/utils/fetchLearnRecord.spec.ts index 2436e5d4..bd9c7fe8 100644 --- a/test/utils/fetchLearnRecord.spec.ts +++ b/test/utils/fetchLearnRecord.spec.ts @@ -1,8 +1,8 @@ -import { describe, assert, test } from "vitest"; +import { describe, assert, it } from "vitest"; import { fetchLearnRecord } from "../../src/utils/fetchLearnRecord.js"; describe("fetchLearnRecord", () => { - test("is defined", () => { + it("is defined", () => { assert.isDefined(fetchLearnRecord, "fetchLearnRecord is not defined"); assert.isFunction(fetchLearnRecord, "fetchLearnRecord is not a function"); }); diff --git a/test/utils/formatText.spec.ts b/test/utils/formatText.spec.ts index 47000731..842f5124 100644 --- a/test/utils/formatText.spec.ts +++ b/test/utils/formatText.spec.ts @@ -1,31 +1,31 @@ -import { describe, assert, test } from "vitest"; +import { describe, assert, it } from "vitest"; import { formatTextToTable } from "../../src/utils/formatText.js"; describe("formatTextToTable", () => { - test("is defined", () => { + it("is defined", () => { assert.isDefined(formatTextToTable, "formatTextToTable is not defined!"); assert.isFunction( formatTextToTable, "formatTextToTable is not a function!", ); }); - test("given empty array returns empty string", () => { - return assert.deepEqual( + it("given empty array returns empty string", () => { + assert.deepEqual( formatTextToTable([]), "", "function did not return empty string", ); }); - test("given 2d empty array, returns empty string", () => { - return assert.deepEqual( + it("given 2d empty array, returns empty string", () => { + assert.deepEqual( formatTextToTable([ [] ]), "", "function did not return empty string", ); }); - test("given 2d empty array, with separate defined headers, returns headers", + it("given 2d empty array, with separate defined headers, returns headers", () => { - return assert.deepEqual( + assert.deepEqual( formatTextToTable([], { headers: [ "one", "two" ], }), @@ -33,9 +33,9 @@ describe("formatTextToTable", () => { "did not return headers", ); }); - test(`given 2d empty array, with separate defined headers and a custom column delimiter, returns headers`, + it(`given 2d empty array, with separate defined headers and a custom column delimiter, returns headers`, () => { - return assert.deepEqual( + assert.deepEqual( formatTextToTable([], { columnDelimiter: "l", headers: [ "one", "two" ], @@ -44,9 +44,9 @@ describe("formatTextToTable", () => { "did not return headers", ); }); - test(`given 2d array, with separate defined headers and a custom column delimiter, returns table`, + it(`given 2d array, with separate defined headers and a custom column delimiter, returns table`, () => { - return assert.deepEqual( + assert.deepEqual( formatTextToTable( [ [ "chicken", "egg" ], @@ -61,9 +61,9 @@ describe("formatTextToTable", () => { "did not return headers", ); }); - test(`given 2d empty array, with empty separate defined headers, returns empty string`, + it(`given 2d empty array, with empty separate defined headers, returns empty string`, () => { - return assert.deepEqual( + assert.deepEqual( formatTextToTable([ [] ], { headers: [], }), @@ -71,9 +71,9 @@ describe("formatTextToTable", () => { "did not return empty string", ); }); - test(`given 2d array with data with headers and custom row delimiter, display table `, + it(`given 2d array with data with headers and custom row delimiter, display table`, () => { - return assert.deepEqual( + assert.deepEqual( formatTextToTable( [ [ "brad", "100" ], @@ -88,8 +88,8 @@ describe("formatTextToTable", () => { "did not return table", ); }); - test("given 2d array with data with long headers, display table", () => { - return assert.deepEqual( + it("given 2d array with data with long headers, display table", () => { + assert.deepEqual( formatTextToTable( [ [ "brad", "100" ], diff --git a/test/utils/generateDiff.spec.ts b/test/utils/generateDiff.spec.ts index b347705c..90c0c051 100644 --- a/test/utils/generateDiff.spec.ts +++ b/test/utils/generateDiff.spec.ts @@ -1,16 +1,16 @@ -import { describe, assert, test } from "vitest"; +import { describe, assert, it } from "vitest"; import { generateDiff } from "../../src/utils/generateDiff.js"; describe("generateDiff", () => { - test("is defined", () => { + it("is defined", () => { assert.isDefined(generateDiff, "generateDiff is not defined"); assert.isFunction(generateDiff, "generateDiff is not a function"); }); - test("returns an expected diff string", () => { - const old = "this is a test"; - const updated = "this is a test, but different"; - const expected = "- this is a test\n+ this is a test, but different"; + it("returns an expected diff string", () => { + const old = "this is a it"; + const updated = "this is a it, but different"; + const expected = "- this is a it\n+ this is a it, but different"; const actual = generateDiff(old, updated); assert.equal(actual, expected); }); diff --git a/test/utils/isModerator.spec.ts b/test/utils/isModerator.spec.ts index c8770e4d..d5a2ab69 100644 --- a/test/utils/isModerator.spec.ts +++ b/test/utils/isModerator.spec.ts @@ -1,5 +1,5 @@ import { type GuildMember, PermissionFlagsBits } from "discord.js"; -import { describe, assert, test } from "vitest"; +import { describe, assert, it } from "vitest"; import { isModerator } from "../../src/utils/isModerator.js"; const typeCoerce = (object: unknown): GuildMember => { @@ -29,12 +29,12 @@ const moderateMembersSet = typeCoerce({ }); describe("isModerator", () => { - test("is defined", () => { + it("is defined", () => { assert.isDefined(isModerator, "isModerator is not defined"); assert.isFunction(isModerator, "isModerator is not a function"); }); - test("returns true when moderator", () => { + it("returns true when moderator", () => { assert.isTrue(isModerator(kickMembersSet), "isModerator returned false"); assert.isTrue(isModerator(banMembersSet), "isModerator returned false"); assert.isTrue(isModerator(manageMessagesSet), "isModerator returned false"); @@ -44,7 +44,7 @@ describe("isModerator", () => { ); }); - test("returns false when not moderator", () => { + it("returns false when not moderator", () => { assert.isFalse( isModerator(typeCoerce({ permissions: new Set(basePermissions) })), ); diff --git a/test/utils/loadCommands.spec.ts b/test/utils/loadCommands.spec.ts index dc60b951..6189ab34 100644 --- a/test/utils/loadCommands.spec.ts +++ b/test/utils/loadCommands.spec.ts @@ -1,22 +1,22 @@ import { readdir } from "node:fs/promises"; import { join } from "node:path"; -import { describe, assert, test } from "vitest"; +import { describe, assert, it } from "vitest"; import { loadCommands } from "../../src/utils/loadCommands.js"; import type { Command } from "../../src/interfaces/command.js"; import type { ExtendedClient } from "../../src/interfaces/extendedClient.js"; describe("loadCommands", () => { - test("is defined", () => { + it("is defined", () => { assert.isDefined(loadCommands, "loadCommands is not defined"); assert.isFunction(loadCommands, "loadCommands is not a function"); }); - test("returns array of commands", async() => { + it("returns array of commands", async() => { const result = await loadCommands({} as ExtendedClient); assert.isArray(result, "loadCommands did not return an array"); }); - test("returns the expected command list", async() => { + it("returns the expected command list", async() => { const bot: { commands: Array } = { commands: [], }; diff --git a/test/utils/loadContexts.spec.ts b/test/utils/loadContexts.spec.ts index 3af2ba6f..ddcf517e 100644 --- a/test/utils/loadContexts.spec.ts +++ b/test/utils/loadContexts.spec.ts @@ -1,22 +1,22 @@ import { readdir } from "node:fs/promises"; import { join } from "node:path"; -import { describe, assert, test } from "vitest"; +import { describe, assert, it } from "vitest"; import { loadContexts } from "../../src/utils/loadContexts.js"; import type { Context } from "../../src/interfaces/context.js"; import type { ExtendedClient } from "../../src/interfaces/extendedClient.js"; describe("loadContexts", () => { - test("is defined", () => { + it("is defined", () => { assert.isDefined(loadContexts, "loadContexts is not defined"); assert.isFunction(loadContexts, "loadContexts is not a function"); }); - test("returns array of commands", async() => { + it("returns array of commands", async() => { const result = await loadContexts({} as ExtendedClient); assert.isArray(result, "loadContexts did not return an array"); }); - test("returns the expected command list", async() => { + it("returns the expected command list", async() => { const bot: { contexts: Array } = { contexts: [] }; const contextFiles = await readdir(join(process.cwd(), "src", "contexts")); const contextNames = contextFiles.map((file) => { diff --git a/test/utils/loadQuotes.spec.ts b/test/utils/loadQuotes.spec.ts index 31a8bfa1..2c52990c 100644 --- a/test/utils/loadQuotes.spec.ts +++ b/test/utils/loadQuotes.spec.ts @@ -1,14 +1,14 @@ -import { describe, assert, test } from "vitest"; +import { describe, assert, it } from "vitest"; import { loadQuotes } from "../../src/utils/loadQuotes.js"; import type { ExtendedClient } from "../../src/interfaces/extendedClient.js"; describe("loadQuotes", () => { - test("is defined", () => { + it("is defined", () => { assert.isDefined(loadQuotes, "loadQuotes is not defined"); assert.isFunction(loadQuotes, "loadQuotes is not a function"); }); - test("returns the expected data structure", async() => { + it("returns the expected data structure", async() => { const quotes = await loadQuotes({} as ExtendedClient); assert.property(quotes, "motivationalQuotes", "quotes is not defined"); assert.isArray(quotes.motivationalQuotes, "quotes is not an array"); diff --git a/test/utils/logHandler.spec.ts b/test/utils/logHandler.spec.ts index 5c9cf221..f61e410e 100644 --- a/test/utils/logHandler.spec.ts +++ b/test/utils/logHandler.spec.ts @@ -1,13 +1,13 @@ -import { describe, assert, test } from "vitest"; +import { describe, assert, it } from "vitest"; import { logHandler } from "../../src/utils/logHandler.js"; describe("logHandler", () => { - test("is defined", () => { + it("is defined", () => { assert.isDefined(logHandler, "logHandler is not defined"); assert.isObject(logHandler, "logHandler is not an object"); }); - test("has log function", () => { + it("has log function", () => { assert.isDefined(logHandler.log, "log is not defined"); assert.isFunction(logHandler.log, "log is not a function"); }); diff --git a/test/utils/registerCommands.spec.ts b/test/utils/registerCommands.spec.ts index 647c8c7f..7ab6b2b8 100644 --- a/test/utils/registerCommands.spec.ts +++ b/test/utils/registerCommands.spec.ts @@ -1,19 +1,19 @@ import { MockRest } from "discordjs-testing"; -import { describe, assert, test } from "vitest"; +import { describe, assert, it } from "vitest"; import { loadCommands } from "../../src/utils/loadCommands.js"; import { registerCommands } from "../../src/utils/registerCommands.js"; import type { Command } from "../../src/interfaces/command.js"; import type { Context } from "../../src/interfaces/context.js"; describe("registerCommands", () => { - test("throws when bot is not authenticated", async() => { + it("throws when bot is not authenticated", async() => { let threw = false; await registerCommands({} as never).catch(() => { threw = true; }); assert.isTrue(threw); }); - test("registers the command payload", async() => { + it("registers the command payload", async() => { const bot: { commands: Array; config: { botId: string; homeGuild: string; token: string };