From f479fa3aaf14d6250aae85f4bfd27264dfa10470 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sun, 1 Feb 2026 13:23:45 +0000 Subject: [PATCH 01/16] build(deps-dev): bump @types/archiver from 6.0.3 to 7.0.0 Bumps [@types/archiver](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/archiver) from 6.0.3 to 7.0.0. - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/archiver) --- updated-dependencies: - dependency-name: "@types/archiver" dependency-version: 7.0.0 dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- apps/api/package.json | 2 +- pnpm-lock.yaml | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/apps/api/package.json b/apps/api/package.json index d4815d83..71e03666 100644 --- a/apps/api/package.json +++ b/apps/api/package.json @@ -62,7 +62,7 @@ "@codeanker/eslint-config": "workspace:*", "@codeanker/typescript-config": "workspace:*", "@inquirer/prompts": "^7.1.0", - "@types/archiver": "^6.0.3", + "@types/archiver": "^7.0.0", "@types/config": "^3.3.3", "@types/http-errors": "^2.0.5", "@types/http-status-codes": "^1.2.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index a0f8c0d2..66fc6904 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -199,8 +199,8 @@ importers: specifier: ^7.1.0 version: 7.3.1(@types/node@22.10.2) '@types/archiver': - specifier: ^6.0.3 - version: 6.0.3 + specifier: ^7.0.0 + version: 7.0.0 '@types/config': specifier: ^3.3.3 version: 3.3.5 @@ -2335,8 +2335,8 @@ packages: peerDependencies: typescript: '>=5.7.2' - '@types/archiver@6.0.3': - resolution: {integrity: sha512-a6wUll6k3zX6qs5KlxIggs1P1JcYJaTCx2gnlr+f0S1yd2DoaEwoIK10HmBaLnZwWneBz+JBm0dwcZu0zECBcQ==} + '@types/archiver@7.0.0': + resolution: {integrity: sha512-/3vwGwx9n+mCQdYZ2IKGGHEFL30I96UgBlk8EtRDDFQ9uxM1l4O5Ci6r00EMAkiDaTqD9DQ6nVrWRICnBPtzzg==} '@types/bcryptjs@2.4.6': resolution: {integrity: sha512-9xlo6R2qDs5uixm0bcIqCeMCE6HiQsIyel9KQySStiyqNl2tnj2mP3DX1Nf56MD6KMenNNlBBsy3LJ7gUEQPXQ==} @@ -6676,7 +6676,7 @@ snapshots: dependencies: typescript: 5.7.2 - '@types/archiver@6.0.3': + '@types/archiver@7.0.0': dependencies: '@types/readdir-glob': 1.1.5 From 71d439ac30e052fda41cc7c45b9032787a2fc236 Mon Sep 17 00:00:00 2001 From: Axel Rindle Date: Sun, 15 Feb 2026 21:06:00 +0100 Subject: [PATCH 02/16] fix: record activity if applicable instead of throwing --- apps/api/src/trpc.ts | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/apps/api/src/trpc.ts b/apps/api/src/trpc.ts index c196beb5..d07123b0 100644 --- a/apps/api/src/trpc.ts +++ b/apps/api/src/trpc.ts @@ -57,15 +57,16 @@ const logActivityMiddleware = middleware(async (opts) => { if (type !== undefined) { // const rawInput = opts.getRawInput() as { id: number } const resultData = result.data as { id?: string } - logger.verbose(`Recording activity ${opts.path} of type ${type}`) const subjectId = type === 'CREATE' ? resultData?.id : '9999' - if (!subjectId) throw new TRPCError({ code: 'INTERNAL_SERVER_ERROR', message: 'No subjectId found' }) - await logActivity({ - subjectId, - subjectType: subject || 'NO_SUBJECT', - causerId: opts.ctx.authenticated ? opts.ctx.accountId : undefined, - type, - }) + if (subjectId) { + logger.verbose(`Recording activity ${opts.path} of type ${type}`) + await logActivity({ + subjectId, + subjectType: subject || 'NO_SUBJECT', + causerId: opts.ctx.authenticated ? opts.ctx.accountId : undefined, + type, + }) + } } } From a5aa623594232fd637804d84f6abe6ce3fd42344 Mon Sep 17 00:00:00 2001 From: Axel Rindle Date: Fri, 20 Feb 2026 10:17:10 +0100 Subject: [PATCH 03/16] chore: update dependabot labels --- .github/dependabot.yml | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/.github/dependabot.yml b/.github/dependabot.yml index cc7afd7c..5eaf2e77 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -1,11 +1,9 @@ -# To get started with Dependabot version updates, you'll need to specify which -# package ecosystems to update and where the package manifests are located. -# Please see the documentation for all configuration options: -# https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates - version: 2 updates: - - package-ecosystem: 'npm' # See documentation for possible values - directory: '/' # Location of package manifests + - package-ecosystem: npm + directory: / schedule: - interval: 'daily' + interval: "daily" + labels: + - component:deps + - deps:npm From 69d80df42e59b24db7c4386242e54289c444cc35 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 20 Feb 2026 09:37:08 +0000 Subject: [PATCH 04/16] chore(deps-dev): bump inquirer from 12.4.1 to 13.2.5 Bumps [inquirer](https://github.com/SBoudrias/Inquirer.js) from 12.4.1 to 13.2.5. - [Release notes](https://github.com/SBoudrias/Inquirer.js/releases) - [Commits](https://github.com/SBoudrias/Inquirer.js/compare/inquirer@12.4.1...inquirer@13.2.5) --- updated-dependencies: - dependency-name: inquirer dependency-version: 13.2.5 dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- apps/api/package.json | 2 +- pnpm-lock.yaml | 329 +++++++++++++++++++++++++++++++++++++++--- 2 files changed, 311 insertions(+), 20 deletions(-) diff --git a/apps/api/package.json b/apps/api/package.json index d4815d83..940fde9d 100644 --- a/apps/api/package.json +++ b/apps/api/package.json @@ -71,7 +71,7 @@ "@types/node": "catalog:", "commander": "^13.0.0", "eslint": "catalog:", - "inquirer": "^12.3.0", + "inquirer": "^13.2.5", "prisma": "^5.19.1", "tsx": "^4.2.0", "typescript": "catalog:" diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 3b26806c..eba19b5b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -226,8 +226,8 @@ importers: specifier: 'catalog:' version: 9.19.0(jiti@1.21.7) inquirer: - specifier: ^12.3.0 - version: 12.4.1(@types/node@22.10.2) + specifier: ^13.2.5 + version: 13.2.5(@types/node@22.10.2) prisma: specifier: ^5.19.1 version: 5.22.0 @@ -1463,6 +1463,10 @@ packages: '@iconify/types@2.0.0': resolution: {integrity: sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==} + '@inquirer/ansi@2.0.3': + resolution: {integrity: sha512-g44zhR3NIKVs0zUesa4iMzExmZpLUdTLRMCStqX3GE5NT6VkPcxQGJ+uC8tDgBUC/vB1rUhUd55cOf++4NZcmw==} + engines: {node: '>=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0'} + '@inquirer/checkbox@4.1.1': resolution: {integrity: sha512-os5kFd/52gZTl/W6xqMfhaKVJHQM8V/U1P8jcSaQJ/C4Qhdrf2jEXdA/HaxfQs9iiUA/0yzYhk5d3oRHTxGDDQ==} engines: {node: '>=18'} @@ -1472,6 +1476,15 @@ packages: '@types/node': optional: true + '@inquirer/checkbox@5.0.7': + resolution: {integrity: sha512-OGJykc3mpe4kiNXwXlDlP4MFqZso5QOoXJaJrmTJI+Y+gq68wxTyCUIFv34qgwZTHnGGeqwUKGOi4oxptTe+ZQ==} + engines: {node: '>=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + '@inquirer/confirm@5.1.5': resolution: {integrity: sha512-ZB2Cz8KeMINUvoeDi7IrvghaVkYT2RB0Zb31EaLWOE87u276w4wnApv0SH2qWaJ3r0VSUa3BIuz7qAV2ZvsZlg==} engines: {node: '>=18'} @@ -1481,6 +1494,15 @@ packages: '@types/node': optional: true + '@inquirer/confirm@6.0.7': + resolution: {integrity: sha512-lKdNloHLnGoBUUwprxKFd+SpkAnyQTBrZACFPtxDq9GiLICD2t+CaeJ1Ku4goZsGPyBIFc2YYpmDSJLEXoc16g==} + engines: {node: '>=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + '@inquirer/core@10.1.6': resolution: {integrity: sha512-Bwh/Zk6URrHwZnSSzAZAKH7YgGYi0xICIBDFOqBQoXNNAzBHw/bgXgLmChfp+GyR3PnChcTbiCTZGC6YJNJkMA==} engines: {node: '>=18'} @@ -1490,6 +1512,15 @@ packages: '@types/node': optional: true + '@inquirer/core@11.1.4': + resolution: {integrity: sha512-1HvwyASF0tE/7W8geTTn0ydiWb463pq4SBIpaWcVabTrw55+CiRmytV9eZoqt3ohchsPw4Vv60jfNiI6YljVUg==} + engines: {node: '>=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + '@inquirer/editor@4.2.6': resolution: {integrity: sha512-l0smvr8g/KAVdXx4I92sFxZiaTG4kFc06cFZw+qqwTirwdUHMFLnouXBB9OafWhpO3cfEkEz2CdPoCmor3059A==} engines: {node: '>=18'} @@ -1499,6 +1530,15 @@ packages: '@types/node': optional: true + '@inquirer/editor@5.0.7': + resolution: {integrity: sha512-d36tisyvmxH7H+LICTeTofrKmJ+R1jAYV8q0VTYh96cm8mP2BdGh9TAIqbCGcciX8/dr0fJW+VJq3jAnco5xfg==} + engines: {node: '>=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + '@inquirer/expand@4.0.8': resolution: {integrity: sha512-k0ouAC6L+0Yoj/j0ys2bat0fYcyFVtItDB7h+pDFKaDDSFJey/C/YY1rmIOqkmFVZ5rZySeAQuS8zLcKkKRLmg==} engines: {node: '>=18'} @@ -1508,10 +1548,32 @@ packages: '@types/node': optional: true + '@inquirer/expand@5.0.7': + resolution: {integrity: sha512-h2RRFzDdeXOXLrJOUAaHzyR1HbiZlrl/NxorOAgNrzhiSThbwEFVOf88lJzbF5WXGrQ2RwqK2h0xAE7eo8QP5w==} + engines: {node: '>=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + + '@inquirer/external-editor@2.0.3': + resolution: {integrity: sha512-LgyI7Agbda74/cL5MvA88iDpvdXI2KuMBCGRkbCl2Dg1vzHeOgs+s0SDcXV7b+WZJrv2+ERpWSM65Fpi9VfY3w==} + engines: {node: '>=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + '@inquirer/figures@1.0.10': resolution: {integrity: sha512-Ey6176gZmeqZuY/W/nZiUyvmb1/qInjcpiZjXWi6nON+nxJpD1bxtSoBxNliGISae32n6OwbY+TSXPZ1CfS4bw==} engines: {node: '>=18'} + '@inquirer/figures@2.0.3': + resolution: {integrity: sha512-y09iGt3JKoOCBQ3w4YrSJdokcD8ciSlMIWsD+auPu+OZpfxLuyz+gICAQ6GCBOmJJt4KEQGHuZSVff2jiNOy7g==} + engines: {node: '>=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0'} + '@inquirer/input@4.1.5': resolution: {integrity: sha512-bB6wR5wBCz5zbIVBPnhp94BHv/G4eKbUEjlpCw676pI2chcvzTx1MuwZSCZ/fgNOdqDlAxkhQ4wagL8BI1D3Zg==} engines: {node: '>=18'} @@ -1521,6 +1583,15 @@ packages: '@types/node': optional: true + '@inquirer/input@5.0.7': + resolution: {integrity: sha512-b+eKk/eUvKLQ6c+rDu9u4I1+twdjOfrEaw9NURDpCrWYJTWL1/JQEudZi0AeqXDGcn0tMdhlfpEfjcqr33B/qw==} + engines: {node: '>=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + '@inquirer/number@3.0.8': resolution: {integrity: sha512-CTKs+dT1gw8dILVWATn8Ugik1OHLkkfY82J+Musb57KpmF6EKyskv8zmMiEJPzOnLTZLo05X/QdMd8VH9oulXw==} engines: {node: '>=18'} @@ -1530,6 +1601,15 @@ packages: '@types/node': optional: true + '@inquirer/number@4.0.7': + resolution: {integrity: sha512-/l5KxcLFFexzOwh8DcVOI7zgVQCwcBt/9yHWtvMdYvaYLMK5J31BSR/fO3Z9WauA21qwAkDGRvYNHIG4vR6JwA==} + engines: {node: '>=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + '@inquirer/password@4.0.8': resolution: {integrity: sha512-MgA+Z7o3K1df2lGY649fyOBowHGfrKRz64dx3+b6c1w+h2W7AwBoOkHhhF/vfhbs5S4vsKNCuDzS3s9r5DpK1g==} engines: {node: '>=18'} @@ -1539,6 +1619,15 @@ packages: '@types/node': optional: true + '@inquirer/password@5.0.7': + resolution: {integrity: sha512-h3Rgzb8nFMxgK6X5246MtwTX/rXs5Z58DbeuUKI6W5dQ+CZusEunNeT7rosdB+Upn79BkfZJO0AaiH8MIi9v1A==} + engines: {node: '>=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + '@inquirer/prompts@7.3.1': resolution: {integrity: sha512-r1CiKuDV86BDpvj9DRFR+V+nIjsVBOsa2++dqdPqLYAef8kgHYvmQ8ySdP/ZeAIOWa27YGJZRkENdP3dK0H3gg==} engines: {node: '>=18'} @@ -1548,6 +1637,15 @@ packages: '@types/node': optional: true + '@inquirer/prompts@8.2.1': + resolution: {integrity: sha512-76knJFW2oXdI6If5YRmEoT5u7l+QroXYrMiINFcb97LsyECgsbO9m6iWlPuhBtaFgNITPHQCk3wbex38q8gsjg==} + engines: {node: '>=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + '@inquirer/rawlist@4.0.8': resolution: {integrity: sha512-hl7rvYW7Xl4un8uohQRUgO6uc2hpn7PKqfcGkCOWC0AA4waBxAv6MpGOFCEDrUaBCP+pXPVqp4LmnpWmn1E1+g==} engines: {node: '>=18'} @@ -1557,6 +1655,15 @@ packages: '@types/node': optional: true + '@inquirer/rawlist@5.2.3': + resolution: {integrity: sha512-EuvV6N/T3xDmRVihAOqfnbmtHGdu26TocRKANvcX/7nLLD8QO0c22Dtlc5C15+V433d9v0E0SSyqywdNCIXfLg==} + engines: {node: '>=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + '@inquirer/search@3.0.8': resolution: {integrity: sha512-ihSE9D3xQAupNg/aGDZaukqoUSXG2KfstWosVmFCG7jbMQPaj2ivxWtsB+CnYY/T4D6LX1GHKixwJLunNCffww==} engines: {node: '>=18'} @@ -1566,6 +1673,15 @@ packages: '@types/node': optional: true + '@inquirer/search@4.1.3': + resolution: {integrity: sha512-6BE8MqVMakEiLDRtrwj9fbx6AYhuj7McW3GOkOoEiQ5Qkh6v6f5HCoYNqSRE4j6nT+u+73518iUQPE+mZYlAjA==} + engines: {node: '>=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + '@inquirer/select@4.0.8': resolution: {integrity: sha512-Io2prxFyN2jOCcu4qJbVoilo19caiD3kqkD3WR0q3yDA5HUCo83v4LrRtg55ZwniYACW64z36eV7gyVbOfORjA==} engines: {node: '>=18'} @@ -1575,6 +1691,15 @@ packages: '@types/node': optional: true + '@inquirer/select@5.0.7': + resolution: {integrity: sha512-1JUJIR+Z2PsvwP6VWty7aE0aCPaT2cy2c4Vp3LPhL2Pi3+aXewAld/AyJ/CW9XWx1JbKxmdElfvls/G/7jG7ZQ==} + engines: {node: '>=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + '@inquirer/type@3.0.4': resolution: {integrity: sha512-2MNFrDY8jkFYc9Il9DgLsHhMzuHnOYM1+CUYVWbzu9oT0hC7V7EcYvdCKeoll/Fcci04A+ERZ9wcc7cQ8lTkIA==} engines: {node: '>=18'} @@ -1584,6 +1709,15 @@ packages: '@types/node': optional: true + '@inquirer/type@4.0.3': + resolution: {integrity: sha512-cKZN7qcXOpj1h+1eTTcGDVLaBIHNMT1Rz9JqJP5MnEJ0JhgVWllx7H/tahUp5YEK1qaByH2Itb8wLG/iScD5kw==} + engines: {node: '>=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0'} + peerDependencies: + '@types/node': '>=18' + peerDependenciesMeta: + '@types/node': + optional: true + '@internationalized/date@3.7.0': resolution: {integrity: sha512-VJ5WS3fcVx0bejE/YHfbDKR/yawZgKqn/if+oEeLqNwBtPzVB06olkfcnojTmEMX+gTpH+FlQ69SHNitJ8/erQ==} @@ -2895,6 +3029,9 @@ packages: chardet@0.7.0: resolution: {integrity: sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==} + chardet@2.1.1: + resolution: {integrity: sha512-PsezH1rqdV9VvyNhxxOW32/d75r01NY7TQCmOqomRo15ZSOKbpTFVsfjghxo6JloQUCGnH4k1LGu0R4yCLlWQQ==} + check-error@2.1.1: resolution: {integrity: sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==} engines: {node: '>= 16'} @@ -3326,6 +3463,15 @@ packages: fast-levenshtein@2.0.6: resolution: {integrity: sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==} + fast-string-truncated-width@3.0.3: + resolution: {integrity: sha512-0jjjIEL6+0jag3l2XWWizO64/aZVtpiGE3t0Zgqxv0DPuxiMjvB3M24fCyhZUO4KomJQPj3LTSUnDP3GpdwC0g==} + + fast-string-width@3.0.2: + resolution: {integrity: sha512-gX8LrtNEI5hq8DVUfRQMbr5lpaS4nMIWV+7XEbXk2b8kiQIizgnlr12B4dA3ZEx3308ze0O4Q1R+cHts8kyUJg==} + + fast-wrap-ansi@0.2.0: + resolution: {integrity: sha512-rLV8JHxTyhVmFYhBJuMujcrHqOT2cnO5Zxj37qROj23CP39GXubJRBUFF0z8KFK77Uc0SukZUf7JZhsVEQ6n8w==} + fast-xml-parser@4.5.1: resolution: {integrity: sha512-y655CeyUQ+jj7KBbYMc4FG01V8ZQqjN+gDYGJ50RtfsUB8iG9AmwmwoAgeKLJdmueKKMrH1RJ7yXHTSoczdv5w==} hasBin: true @@ -3522,6 +3668,10 @@ packages: resolution: {integrity: sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==} engines: {node: '>=0.10.0'} + iconv-lite@0.7.2: + resolution: {integrity: sha512-im9DjEDQ55s9fL4EYzOAv0yMqmMBSZp6G0VvFyTMPKWxiSBHUj9NW/qqLmXUwXrrM7AvqSlTCfvqRb0cM8yYqw==} + engines: {node: '>=0.10.0'} + ieee754@1.2.1: resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==} @@ -3546,9 +3696,9 @@ packages: ini@1.3.8: resolution: {integrity: sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==} - inquirer@12.4.1: - resolution: {integrity: sha512-/V7OyFkeUBFO2jAokUq5emSlcVMHVvzg8bwwZnzmCwErPgbeftsthmPUg71AIi5mR0YmiJOLQ+bTiHVWEjOw7A==} - engines: {node: '>=18'} + inquirer@13.2.5: + resolution: {integrity: sha512-JHvVPgOIre0NrA9o8BGHUBh9rNuKkN1gS1ffbYgy3BuuJmJZhnFy9IHz3pcNbZm9zK6qTYvQ6LN5wl3Xcg4Jkw==} + engines: {node: '>=23.5.0 || ^22.13.0 || ^21.7.0 || ^20.12.0'} peerDependencies: '@types/node': '>=18' peerDependenciesMeta: @@ -3983,6 +4133,10 @@ packages: resolution: {integrity: sha512-WWdIxpyjEn+FhQJQQv9aQAYlHoNVdzIzUySNV1gHUPDSdZJ3yZn7pAAbQcV7B56Mvu881q9FZV+0Vx2xC44VWA==} engines: {node: ^18.17.0 || >=20.5.0} + mute-stream@3.0.0: + resolution: {integrity: sha512-dkEJPVvun4FryqBmZ5KhDo0K9iDXAwn08tMLDinNdRBNPcYEDiWYysLcc6k3mjTMlbP9KyylvRpd4wFtwrT9rw==} + engines: {node: ^20.17.0 || >=22.9.0} + mz@2.7.0: resolution: {integrity: sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==} @@ -4430,15 +4584,15 @@ packages: resolution: {integrity: sha512-DPe5pVFaAsinSaV6QjQ6gdiedWDcRCbUuiQfQa2wmWV7+xC9bGulGI8+TdRmoFkAPaBXk8CrAbnlY2ISniJ47Q==} engines: {node: '>=18'} - run-async@3.0.0: - resolution: {integrity: sha512-540WwVDOMxA6dN6We19EcT9sc3hkXPw5mzRNGM3FkdN/vtE9NFvj5lFAPNwUDmJjXidm3v7TC1cTE7t17Ulm1Q==} + run-async@4.0.6: + resolution: {integrity: sha512-IoDlSLTs3Yq593mb3ZoKWKXMNu3UpObxhgA/Xuid5p4bbfi2jdY1Hj0m1K+0/tEuQTxIGMhQDqGjKb7RuxGpAQ==} engines: {node: '>=0.12.0'} run-parallel@1.2.0: resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} - rxjs@7.8.1: - resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==} + rxjs@7.8.2: + resolution: {integrity: sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA==} safe-buffer@5.1.2: resolution: {integrity: sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==} @@ -5933,6 +6087,8 @@ snapshots: '@iconify/types@2.0.0': {} + '@inquirer/ansi@2.0.3': {} + '@inquirer/checkbox@4.1.1(@types/node@22.10.2)': dependencies: '@inquirer/core': 10.1.6(@types/node@22.10.2) @@ -5943,6 +6099,15 @@ snapshots: optionalDependencies: '@types/node': 22.10.2 + '@inquirer/checkbox@5.0.7(@types/node@22.10.2)': + dependencies: + '@inquirer/ansi': 2.0.3 + '@inquirer/core': 11.1.4(@types/node@22.10.2) + '@inquirer/figures': 2.0.3 + '@inquirer/type': 4.0.3(@types/node@22.10.2) + optionalDependencies: + '@types/node': 22.10.2 + '@inquirer/confirm@5.1.5(@types/node@22.10.2)': dependencies: '@inquirer/core': 10.1.6(@types/node@22.10.2) @@ -5950,6 +6115,13 @@ snapshots: optionalDependencies: '@types/node': 22.10.2 + '@inquirer/confirm@6.0.7(@types/node@22.10.2)': + dependencies: + '@inquirer/core': 11.1.4(@types/node@22.10.2) + '@inquirer/type': 4.0.3(@types/node@22.10.2) + optionalDependencies: + '@types/node': 22.10.2 + '@inquirer/core@10.1.6(@types/node@22.10.2)': dependencies: '@inquirer/figures': 1.0.10 @@ -5963,6 +6135,18 @@ snapshots: optionalDependencies: '@types/node': 22.10.2 + '@inquirer/core@11.1.4(@types/node@22.10.2)': + dependencies: + '@inquirer/ansi': 2.0.3 + '@inquirer/figures': 2.0.3 + '@inquirer/type': 4.0.3(@types/node@22.10.2) + cli-width: 4.1.0 + fast-wrap-ansi: 0.2.0 + mute-stream: 3.0.0 + signal-exit: 4.1.0 + optionalDependencies: + '@types/node': 22.10.2 + '@inquirer/editor@4.2.6(@types/node@22.10.2)': dependencies: '@inquirer/core': 10.1.6(@types/node@22.10.2) @@ -5971,6 +6155,14 @@ snapshots: optionalDependencies: '@types/node': 22.10.2 + '@inquirer/editor@5.0.7(@types/node@22.10.2)': + dependencies: + '@inquirer/core': 11.1.4(@types/node@22.10.2) + '@inquirer/external-editor': 2.0.3(@types/node@22.10.2) + '@inquirer/type': 4.0.3(@types/node@22.10.2) + optionalDependencies: + '@types/node': 22.10.2 + '@inquirer/expand@4.0.8(@types/node@22.10.2)': dependencies: '@inquirer/core': 10.1.6(@types/node@22.10.2) @@ -5979,8 +6171,24 @@ snapshots: optionalDependencies: '@types/node': 22.10.2 + '@inquirer/expand@5.0.7(@types/node@22.10.2)': + dependencies: + '@inquirer/core': 11.1.4(@types/node@22.10.2) + '@inquirer/type': 4.0.3(@types/node@22.10.2) + optionalDependencies: + '@types/node': 22.10.2 + + '@inquirer/external-editor@2.0.3(@types/node@22.10.2)': + dependencies: + chardet: 2.1.1 + iconv-lite: 0.7.2 + optionalDependencies: + '@types/node': 22.10.2 + '@inquirer/figures@1.0.10': {} + '@inquirer/figures@2.0.3': {} + '@inquirer/input@4.1.5(@types/node@22.10.2)': dependencies: '@inquirer/core': 10.1.6(@types/node@22.10.2) @@ -5988,6 +6196,13 @@ snapshots: optionalDependencies: '@types/node': 22.10.2 + '@inquirer/input@5.0.7(@types/node@22.10.2)': + dependencies: + '@inquirer/core': 11.1.4(@types/node@22.10.2) + '@inquirer/type': 4.0.3(@types/node@22.10.2) + optionalDependencies: + '@types/node': 22.10.2 + '@inquirer/number@3.0.8(@types/node@22.10.2)': dependencies: '@inquirer/core': 10.1.6(@types/node@22.10.2) @@ -5995,6 +6210,13 @@ snapshots: optionalDependencies: '@types/node': 22.10.2 + '@inquirer/number@4.0.7(@types/node@22.10.2)': + dependencies: + '@inquirer/core': 11.1.4(@types/node@22.10.2) + '@inquirer/type': 4.0.3(@types/node@22.10.2) + optionalDependencies: + '@types/node': 22.10.2 + '@inquirer/password@4.0.8(@types/node@22.10.2)': dependencies: '@inquirer/core': 10.1.6(@types/node@22.10.2) @@ -6003,6 +6225,14 @@ snapshots: optionalDependencies: '@types/node': 22.10.2 + '@inquirer/password@5.0.7(@types/node@22.10.2)': + dependencies: + '@inquirer/ansi': 2.0.3 + '@inquirer/core': 11.1.4(@types/node@22.10.2) + '@inquirer/type': 4.0.3(@types/node@22.10.2) + optionalDependencies: + '@types/node': 22.10.2 + '@inquirer/prompts@7.3.1(@types/node@22.10.2)': dependencies: '@inquirer/checkbox': 4.1.1(@types/node@22.10.2) @@ -6018,6 +6248,21 @@ snapshots: optionalDependencies: '@types/node': 22.10.2 + '@inquirer/prompts@8.2.1(@types/node@22.10.2)': + dependencies: + '@inquirer/checkbox': 5.0.7(@types/node@22.10.2) + '@inquirer/confirm': 6.0.7(@types/node@22.10.2) + '@inquirer/editor': 5.0.7(@types/node@22.10.2) + '@inquirer/expand': 5.0.7(@types/node@22.10.2) + '@inquirer/input': 5.0.7(@types/node@22.10.2) + '@inquirer/number': 4.0.7(@types/node@22.10.2) + '@inquirer/password': 5.0.7(@types/node@22.10.2) + '@inquirer/rawlist': 5.2.3(@types/node@22.10.2) + '@inquirer/search': 4.1.3(@types/node@22.10.2) + '@inquirer/select': 5.0.7(@types/node@22.10.2) + optionalDependencies: + '@types/node': 22.10.2 + '@inquirer/rawlist@4.0.8(@types/node@22.10.2)': dependencies: '@inquirer/core': 10.1.6(@types/node@22.10.2) @@ -6026,6 +6271,13 @@ snapshots: optionalDependencies: '@types/node': 22.10.2 + '@inquirer/rawlist@5.2.3(@types/node@22.10.2)': + dependencies: + '@inquirer/core': 11.1.4(@types/node@22.10.2) + '@inquirer/type': 4.0.3(@types/node@22.10.2) + optionalDependencies: + '@types/node': 22.10.2 + '@inquirer/search@3.0.8(@types/node@22.10.2)': dependencies: '@inquirer/core': 10.1.6(@types/node@22.10.2) @@ -6035,6 +6287,14 @@ snapshots: optionalDependencies: '@types/node': 22.10.2 + '@inquirer/search@4.1.3(@types/node@22.10.2)': + dependencies: + '@inquirer/core': 11.1.4(@types/node@22.10.2) + '@inquirer/figures': 2.0.3 + '@inquirer/type': 4.0.3(@types/node@22.10.2) + optionalDependencies: + '@types/node': 22.10.2 + '@inquirer/select@4.0.8(@types/node@22.10.2)': dependencies: '@inquirer/core': 10.1.6(@types/node@22.10.2) @@ -6045,10 +6305,23 @@ snapshots: optionalDependencies: '@types/node': 22.10.2 + '@inquirer/select@5.0.7(@types/node@22.10.2)': + dependencies: + '@inquirer/ansi': 2.0.3 + '@inquirer/core': 11.1.4(@types/node@22.10.2) + '@inquirer/figures': 2.0.3 + '@inquirer/type': 4.0.3(@types/node@22.10.2) + optionalDependencies: + '@types/node': 22.10.2 + '@inquirer/type@3.0.4(@types/node@22.10.2)': optionalDependencies: '@types/node': 22.10.2 + '@inquirer/type@4.0.3(@types/node@22.10.2)': + optionalDependencies: + '@types/node': 22.10.2 + '@internationalized/date@3.7.0': dependencies: '@swc/helpers': 0.5.15 @@ -7375,6 +7648,8 @@ snapshots: chardet@0.7.0: {} + chardet@2.1.1: {} + check-error@2.1.1: {} cheerio-select@2.1.0: @@ -7885,6 +8160,16 @@ snapshots: fast-levenshtein@2.0.6: {} + fast-string-truncated-width@3.0.3: {} + + fast-string-width@3.0.2: + dependencies: + fast-string-truncated-width: 3.0.3 + + fast-wrap-ansi@0.2.0: + dependencies: + fast-string-width: 3.0.2 + fast-xml-parser@4.5.1: dependencies: strnum: 1.0.5 @@ -8091,6 +8376,10 @@ snapshots: dependencies: safer-buffer: 2.1.2 + iconv-lite@0.7.2: + dependencies: + safer-buffer: 2.1.2 + ieee754@1.2.1: {} ignore@5.3.2: {} @@ -8108,15 +8397,15 @@ snapshots: ini@1.3.8: {} - inquirer@12.4.1(@types/node@22.10.2): + inquirer@13.2.5(@types/node@22.10.2): dependencies: - '@inquirer/core': 10.1.6(@types/node@22.10.2) - '@inquirer/prompts': 7.3.1(@types/node@22.10.2) - '@inquirer/type': 3.0.4(@types/node@22.10.2) - ansi-escapes: 4.3.2 - mute-stream: 2.0.0 - run-async: 3.0.0 - rxjs: 7.8.1 + '@inquirer/ansi': 2.0.3 + '@inquirer/core': 11.1.4(@types/node@22.10.2) + '@inquirer/prompts': 8.2.1(@types/node@22.10.2) + '@inquirer/type': 4.0.3(@types/node@22.10.2) + mute-stream: 3.0.0 + run-async: 4.0.6 + rxjs: 7.8.2 optionalDependencies: '@types/node': 22.10.2 @@ -8718,6 +9007,8 @@ snapshots: mute-stream@2.0.0: {} + mute-stream@3.0.0: {} + mz@2.7.0: dependencies: any-promise: 1.3.0 @@ -9253,13 +9544,13 @@ snapshots: run-applescript@7.1.0: {} - run-async@3.0.0: {} + run-async@4.0.6: {} run-parallel@1.2.0: dependencies: queue-microtask: 1.2.3 - rxjs@7.8.1: + rxjs@7.8.2: dependencies: tslib: 2.8.1 From 2999b1553c41203eea699839768a9cfd9642adeb Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 20 Feb 2026 09:43:24 +0000 Subject: [PATCH 05/16] chore(deps): bump hono from 4.11.1 to 4.12.0 Bumps [hono](https://github.com/honojs/hono) from 4.11.1 to 4.12.0. - [Release notes](https://github.com/honojs/hono/releases) - [Commits](https://github.com/honojs/hono/compare/v4.11.1...v4.12.0) --- updated-dependencies: - dependency-name: hono dependency-version: 4.12.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- apps/api/package.json | 2 +- pnpm-lock.yaml | 22 +++++++++++----------- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/apps/api/package.json b/apps/api/package.json index d4815d83..161d5b9b 100644 --- a/apps/api/package.json +++ b/apps/api/package.json @@ -45,7 +45,7 @@ "dot-prop": "^9.0.0", "fast-csv": "^5.0.1", "handlebars": "^4.7.8", - "hono": "^4.10.7", + "hono": "^4.12.0", "http-errors": "^2.0.1", "jsonwebtoken": "^9.0.2", "meilisearch": "^0.37.0", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 3b26806c..9fcd44ee 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -118,10 +118,10 @@ importers: version: 10.1.0 '@hono/node-server': specifier: ^1.19.6 - version: 1.19.7(hono@4.11.1) + version: 1.19.7(hono@4.12.0) '@hono/trpc-server': specifier: ^0.4.0 - version: 0.4.1(@trpc/server@11.0.0-rc.682(typescript@5.7.2))(hono@4.11.1) + version: 0.4.1(@trpc/server@11.0.0-rc.682(typescript@5.7.2))(hono@4.12.0) '@prisma/client': specifier: ^5.19.1 version: 5.22.0(prisma@5.22.0) @@ -153,8 +153,8 @@ importers: specifier: ^4.7.8 version: 4.7.8 hono: - specifier: ^4.10.7 - version: 4.11.1 + specifier: ^4.12.0 + version: 4.12.0 http-errors: specifier: ^2.0.1 version: 2.0.1 @@ -3468,8 +3468,8 @@ packages: resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==} hasBin: true - hono@4.11.1: - resolution: {integrity: sha512-KsFcH0xxHes0J4zaQgWbYwmz3UPOOskdqZmItstUG93+Wk1ePBLkLGwbP9zlmh1BFUiL8Qp+Xfu9P7feJWpGNg==} + hono@4.12.0: + resolution: {integrity: sha512-NekXntS5M94pUfiVZ8oXXK/kkri+5WpX2/Ik+LVsl+uvw+soj4roXIsPqO+XsWrAw20mOzaXOZf3Q7PfB9A/IA==} engines: {node: '>=16.9.0'} hookable@5.5.3: @@ -5905,14 +5905,14 @@ snapshots: dependencies: vue: 3.5.13(typescript@5.7.2) - '@hono/node-server@1.19.7(hono@4.11.1)': + '@hono/node-server@1.19.7(hono@4.12.0)': dependencies: - hono: 4.11.1 + hono: 4.12.0 - '@hono/trpc-server@0.4.1(@trpc/server@11.0.0-rc.682(typescript@5.7.2))(hono@4.11.1)': + '@hono/trpc-server@0.4.1(@trpc/server@11.0.0-rc.682(typescript@5.7.2))(hono@4.12.0)': dependencies: '@trpc/server': 11.0.0-rc.682(typescript@5.7.2) - hono: 4.11.1 + hono: 4.12.0 '@humanfs/core@0.19.1': {} @@ -8020,7 +8020,7 @@ snapshots: he@1.2.0: {} - hono@4.11.1: {} + hono@4.12.0: {} hookable@5.5.3: {} From 62d5a340590645aa67c07835d3859c4c56be0591 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 20 Feb 2026 09:47:35 +0000 Subject: [PATCH 06/16] chore(deps): bump typescript-eslint from 8.32.0 to 8.56.0 Bumps [typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint) from 8.32.0 to 8.56.0. - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.56.0/packages/typescript-eslint) --- updated-dependencies: - dependency-name: typescript-eslint dependency-version: 8.56.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- pnpm-lock.yaml | 227 ++++++++++++++++++++++++++------------------ pnpm-workspace.yaml | 2 +- 2 files changed, 138 insertions(+), 91 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 3b26806c..0844db73 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -64,8 +64,8 @@ catalogs: specifier: ^5.7.2 version: 5.7.2 typescript-eslint: - specifier: ^8.27.0 - version: 8.32.0 + specifier: ^8.56.0 + version: 8.56.0 vitest: specifier: ^3.1.1 version: 3.1.1 @@ -513,7 +513,7 @@ importers: version: 15.14.0 typescript-eslint: specifier: 'catalog:' - version: 8.32.0(eslint@9.19.0(jiti@1.21.7))(typescript@5.7.2) + version: 8.56.0(eslint@9.19.0(jiti@1.21.7))(typescript@5.7.2) packages/helpers: dependencies: @@ -1357,8 +1357,8 @@ packages: peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 - '@eslint-community/eslint-utils@4.7.0': - resolution: {integrity: sha512-dyybb3AcajC7uha6CvhdVRJqaKyn7w2YKqKyAN37NKYgZT36w+iRb0Dymmc5qEJ549c/S31cMMSFd75bteCpCw==} + '@eslint-community/eslint-utils@4.9.1': + resolution: {integrity: sha512-phrYmNiYppR7znFEdqgfWHXR6NCkZEK7hwWDHZUjit/2/U0r6XvkDl0SYnoM51Hq7FhCGdLDT6zxCCOY1hexsQ==} engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} peerDependencies: eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 @@ -1367,6 +1367,10 @@ packages: resolution: {integrity: sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==} engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + '@eslint-community/regexpp@4.12.2': + resolution: {integrity: sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew==} + engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0} + '@eslint/config-array@0.19.2': resolution: {integrity: sha512-GNKqxfHG2ySmJOBSHg7LxeUx4xpuCoFjacmlCoYWEbaPXLwvfIjixRI12xCQZeULksQb23uiA8F40w5TojpV7w==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -2411,51 +2415,63 @@ packages: '@types/web-bluetooth@0.0.20': resolution: {integrity: sha512-g9gZnnXVq7gM7v3tJCWV/qw7w+KeOlSHAhgF9RytFyifW6AF61hdT2ucrYhPq9hLs5JIryeupHV3qGk95dH9ow==} - '@typescript-eslint/eslint-plugin@8.32.0': - resolution: {integrity: sha512-/jU9ettcntkBFmWUzzGgsClEi2ZFiikMX5eEQsmxIAWMOn4H3D4rvHssstmAHGVvrYnaMqdWWWg0b5M6IN/MTQ==} + '@typescript-eslint/eslint-plugin@8.56.0': + resolution: {integrity: sha512-lRyPDLzNCuae71A3t9NEINBiTn7swyOhvUj3MyUOxb8x6g6vPEFoOU+ZRmGMusNC3X3YMhqMIX7i8ShqhT74Pw==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + '@typescript-eslint/parser': ^8.56.0 + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 + typescript: '>=4.8.4 <6.0.0' + + '@typescript-eslint/parser@8.56.0': + resolution: {integrity: sha512-IgSWvLobTDOjnaxAfDTIHaECbkNlAlKv2j5SjpB2v7QHKv1FIfjwMy8FsDbVfDX/KjmCmYICcw7uGaXLhtsLNg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - '@typescript-eslint/parser': ^8.0.0 || ^8.0.0-alpha.0 - eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <5.9.0' + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 + typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/parser@8.32.0': - resolution: {integrity: sha512-B2MdzyWxCE2+SqiZHAjPphft+/2x2FlO9YBx7eKE1BCb+rqBlQdhtAEhzIEdozHd55DXPmxBdpMygFJjfjjA9A==} + '@typescript-eslint/project-service@8.56.0': + resolution: {integrity: sha512-M3rnyL1vIQOMeWxTWIW096/TtVP+8W3p/XnaFflhmcFp+U4zlxUxWj4XwNs6HbDeTtN4yun0GNTTDBw/SvufKg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <5.9.0' + typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/scope-manager@8.32.0': - resolution: {integrity: sha512-jc/4IxGNedXkmG4mx4nJTILb6TMjL66D41vyeaPWvDUmeYQzF3lKtN15WsAeTr65ce4mPxwopPSo1yUUAWw0hQ==} + '@typescript-eslint/scope-manager@8.56.0': + resolution: {integrity: sha512-7UiO/XwMHquH+ZzfVCfUNkIXlp/yQjjnlYUyYz7pfvlK3/EyyN6BK+emDmGNyQLBtLGaYrTAI6KOw8tFucWL2w==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/type-utils@8.32.0': - resolution: {integrity: sha512-t2vouuYQKEKSLtJaa5bB4jHeha2HJczQ6E5IXPDPgIty9EqcJxpr1QHQ86YyIPwDwxvUmLfP2YADQ5ZY4qddZg==} + '@typescript-eslint/tsconfig-utils@8.56.0': + resolution: {integrity: sha512-bSJoIIt4o3lKXD3xmDh9chZcjCz5Lk8xS7Rxn+6l5/pKrDpkCwtQNQQwZ2qRPk7TkUYhrq3WPIHXOXlbXP0itg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <5.9.0' + typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/types@8.32.0': - resolution: {integrity: sha512-O5Id6tGadAZEMThM6L9HmVf5hQUXNSxLVKeGJYWNhhVseps/0LddMkp7//VDkzwJ69lPL0UmZdcZwggj9akJaA==} + '@typescript-eslint/type-utils@8.56.0': + resolution: {integrity: sha512-qX2L3HWOU2nuDs6GzglBeuFXviDODreS58tLY/BALPC7iu3Fa+J7EOTwnX9PdNBxUI7Uh0ntP0YWGnxCkXzmfA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 + typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/typescript-estree@8.32.0': - resolution: {integrity: sha512-pU9VD7anSCOIoBFnhTGfOzlVFQIA1XXiQpH/CezqOBaDppRwTglJzCC6fUQGpfwey4T183NKhF1/mfatYmjRqQ==} + '@typescript-eslint/types@8.56.0': + resolution: {integrity: sha512-DBsLPs3GsWhX5HylbP9HNG15U0bnwut55Lx12bHB9MpXxQ+R5GC8MwQe+N1UFXxAeQDvEsEDY6ZYwX03K7Z6HQ==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + + '@typescript-eslint/typescript-estree@8.56.0': + resolution: {integrity: sha512-ex1nTUMWrseMltXUHmR2GAQ4d+WjkZCT4f+4bVsps8QEdh0vlBsaCokKTPlnqBFqqGaxilDNJG7b8dolW2m43Q==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - typescript: '>=4.8.4 <5.9.0' + typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/utils@8.32.0': - resolution: {integrity: sha512-8S9hXau6nQ/sYVtC3D6ISIDoJzS1NsCK+gluVhLN2YkBPX+/1wkwyUiDKnxRh15579WoOIyVWnoyIf3yGI9REw==} + '@typescript-eslint/utils@8.56.0': + resolution: {integrity: sha512-RZ3Qsmi2nFGsS+n+kjLAYDPVlrzf7UhTffrDIKr+h2yzAlYP/y5ZulU0yeDEPItos2Ph46JAL5P/On3pe7kDIQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <5.9.0' + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 + typescript: '>=4.8.4 <6.0.0' - '@typescript-eslint/visitor-keys@8.32.0': - resolution: {integrity: sha512-1rYQTCLFFzOI5Nl0c8LUpJT8HxpwVRn9E4CkMsYfuN6ctmQqExjSTzzSk0Tz2apmXy7WU6/6fyaZVVA/thPN+w==} + '@typescript-eslint/visitor-keys@8.56.0': + resolution: {integrity: sha512-q+SL+b+05Ud6LbEE35qe4A99P+htKTKVbyiNEe45eCbJFyh/HVK9QXwlrbz+Q4L8SOW4roxSVwXYj4DMBT7Ieg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@ungap/structured-clone@1.3.0': @@ -3250,6 +3266,10 @@ packages: resolution: {integrity: sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + eslint-visitor-keys@5.0.0: + resolution: {integrity: sha512-A0XeIi7CXU7nPlfHS9loMYEKxUaONu/hTEzHTGba9Huu94Cq1hPivf+DE5erJozZOky0LfvXAyrV/tcswpLI0Q==} + engines: {node: ^20.19.0 || ^22.13.0 || >=24} + eslint@9.19.0: resolution: {integrity: sha512-ug92j0LepKlbbEv6hD911THhoRHmbdXt2gX+VDABAW/Ir7D3nqKdv5Pf5vtlyY6HQMTEP2skXY43ueqTCWssEA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -3442,9 +3462,6 @@ packages: graceful-fs@4.2.11: resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==} - graphemer@1.4.0: - resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==} - handlebars@4.7.8: resolution: {integrity: sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==} engines: {node: '>=0.4.7'} @@ -3529,6 +3546,10 @@ packages: resolution: {integrity: sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==} engines: {node: '>= 4'} + ignore@7.0.5: + resolution: {integrity: sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==} + engines: {node: '>= 4'} + immutable@5.0.3: resolution: {integrity: sha512-P8IdPQHq3lA1xVeBRi5VPqUm5HDgKnx0Ru51wZz5mjxHr5n3RWhjIpOFU7ybkUxfB+5IToy+OLaHYDBIWsv+uw==} @@ -4470,6 +4491,11 @@ packages: engines: {node: '>=10'} hasBin: true + semver@7.7.4: + resolution: {integrity: sha512-vFKC2IEtQnVhpT78h1Yp8wzwrf8CM+MzKMHGJZfBtzhZNycRFnXsHk6E5TxIkkMsgNS7mdX3AGB7x2QM2di4lA==} + engines: {node: '>=10'} + hasBin: true + setprototypeof@1.2.0: resolution: {integrity: sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==} @@ -4671,8 +4697,8 @@ packages: resolution: {integrity: sha512-aZbgViZrg1QNcG+LULa7nhZpJTZSLm/mXnHXnbAbjmN5aSa0y7V+wvv6+4WaBtpISJzThKy+PIPxc1Nq1EJ9mg==} engines: {node: '>= 14.0.0'} - ts-api-utils@2.1.0: - resolution: {integrity: sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==} + ts-api-utils@2.4.0: + resolution: {integrity: sha512-3TaVTaAv2gTiMB35i3FiGJaRfwb3Pyn/j3m/bfAvGe8FB7CF6u+LMYqYlDh7reQf7UNvoTvdfAqHGmPGOSsPmA==} engines: {node: '>=18.12'} peerDependencies: typescript: '>=4.8.4' @@ -4738,12 +4764,12 @@ packages: resolution: {integrity: sha512-yCxltHW07Nkhv/1F6wWBr8kz+5BGMfP+RbRSYFnegVb0qV/UMT0G0ElBloPVerqn4M2ZV80Ir1FtCcYv1cT6vQ==} engines: {node: '>=16'} - typescript-eslint@8.32.0: - resolution: {integrity: sha512-UMq2kxdXCzinFFPsXc9o2ozIpYCCOiEC46MG3yEh5Vipq6BO27otTtEBZA1fQ66DulEUgE97ucQ/3YY66CPg0A==} + typescript-eslint@8.56.0: + resolution: {integrity: sha512-c7toRLrotJ9oixgdW7liukZpsnq5CZ7PuKztubGYlNppuTqhIoWfhgHo/7EU0v06gS2l/x0i2NEFK1qMIf0rIg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: - eslint: ^8.57.0 || ^9.0.0 - typescript: '>=4.8.4 <5.9.0' + eslint: ^8.57.0 || ^9.0.0 || ^10.0.0 + typescript: '>=4.8.4 <6.0.0' typescript@5.7.2: resolution: {integrity: sha512-i5t66RHxDvVN40HfDd1PsEThGNnlMCMT3jMUuoh9/0TaqWevNontacunWyN02LA9/fIbEWlcHZcgTKb9QoaLfg==} @@ -5538,7 +5564,7 @@ snapshots: '@babel/parser': 7.28.5 '@babel/template': 7.27.2 '@babel/types': 7.28.5 - debug: 4.4.0 + debug: 4.4.3 transitivePeerDependencies: - supports-color @@ -5815,13 +5841,15 @@ snapshots: eslint: 9.19.0(jiti@1.21.7) eslint-visitor-keys: 3.4.3 - '@eslint-community/eslint-utils@4.7.0(eslint@9.19.0(jiti@1.21.7))': + '@eslint-community/eslint-utils@4.9.1(eslint@9.19.0(jiti@1.21.7))': dependencies: eslint: 9.19.0(jiti@1.21.7) eslint-visitor-keys: 3.4.3 '@eslint-community/regexpp@4.12.1': {} + '@eslint-community/regexpp@4.12.2': {} + '@eslint/config-array@0.19.2': dependencies: '@eslint/object-schema': 2.1.6 @@ -6767,82 +6795,96 @@ snapshots: '@types/web-bluetooth@0.0.20': {} - '@typescript-eslint/eslint-plugin@8.32.0(@typescript-eslint/parser@8.32.0(eslint@9.19.0(jiti@1.21.7))(typescript@5.7.2))(eslint@9.19.0(jiti@1.21.7))(typescript@5.7.2)': + '@typescript-eslint/eslint-plugin@8.56.0(@typescript-eslint/parser@8.56.0(eslint@9.19.0(jiti@1.21.7))(typescript@5.7.2))(eslint@9.19.0(jiti@1.21.7))(typescript@5.7.2)': dependencies: - '@eslint-community/regexpp': 4.12.1 - '@typescript-eslint/parser': 8.32.0(eslint@9.19.0(jiti@1.21.7))(typescript@5.7.2) - '@typescript-eslint/scope-manager': 8.32.0 - '@typescript-eslint/type-utils': 8.32.0(eslint@9.19.0(jiti@1.21.7))(typescript@5.7.2) - '@typescript-eslint/utils': 8.32.0(eslint@9.19.0(jiti@1.21.7))(typescript@5.7.2) - '@typescript-eslint/visitor-keys': 8.32.0 + '@eslint-community/regexpp': 4.12.2 + '@typescript-eslint/parser': 8.56.0(eslint@9.19.0(jiti@1.21.7))(typescript@5.7.2) + '@typescript-eslint/scope-manager': 8.56.0 + '@typescript-eslint/type-utils': 8.56.0(eslint@9.19.0(jiti@1.21.7))(typescript@5.7.2) + '@typescript-eslint/utils': 8.56.0(eslint@9.19.0(jiti@1.21.7))(typescript@5.7.2) + '@typescript-eslint/visitor-keys': 8.56.0 eslint: 9.19.0(jiti@1.21.7) - graphemer: 1.4.0 - ignore: 5.3.2 + ignore: 7.0.5 natural-compare: 1.4.0 - ts-api-utils: 2.1.0(typescript@5.7.2) + ts-api-utils: 2.4.0(typescript@5.7.2) typescript: 5.7.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.32.0(eslint@9.19.0(jiti@1.21.7))(typescript@5.7.2)': + '@typescript-eslint/parser@8.56.0(eslint@9.19.0(jiti@1.21.7))(typescript@5.7.2)': dependencies: - '@typescript-eslint/scope-manager': 8.32.0 - '@typescript-eslint/types': 8.32.0 - '@typescript-eslint/typescript-estree': 8.32.0(typescript@5.7.2) - '@typescript-eslint/visitor-keys': 8.32.0 - debug: 4.4.0 + '@typescript-eslint/scope-manager': 8.56.0 + '@typescript-eslint/types': 8.56.0 + '@typescript-eslint/typescript-estree': 8.56.0(typescript@5.7.2) + '@typescript-eslint/visitor-keys': 8.56.0 + debug: 4.4.3 eslint: 9.19.0(jiti@1.21.7) typescript: 5.7.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/scope-manager@8.32.0': + '@typescript-eslint/project-service@8.56.0(typescript@5.7.2)': dependencies: - '@typescript-eslint/types': 8.32.0 - '@typescript-eslint/visitor-keys': 8.32.0 + '@typescript-eslint/tsconfig-utils': 8.56.0(typescript@5.7.2) + '@typescript-eslint/types': 8.56.0 + debug: 4.4.3 + typescript: 5.7.2 + transitivePeerDependencies: + - supports-color - '@typescript-eslint/type-utils@8.32.0(eslint@9.19.0(jiti@1.21.7))(typescript@5.7.2)': + '@typescript-eslint/scope-manager@8.56.0': dependencies: - '@typescript-eslint/typescript-estree': 8.32.0(typescript@5.7.2) - '@typescript-eslint/utils': 8.32.0(eslint@9.19.0(jiti@1.21.7))(typescript@5.7.2) - debug: 4.4.0 + '@typescript-eslint/types': 8.56.0 + '@typescript-eslint/visitor-keys': 8.56.0 + + '@typescript-eslint/tsconfig-utils@8.56.0(typescript@5.7.2)': + dependencies: + typescript: 5.7.2 + + '@typescript-eslint/type-utils@8.56.0(eslint@9.19.0(jiti@1.21.7))(typescript@5.7.2)': + dependencies: + '@typescript-eslint/types': 8.56.0 + '@typescript-eslint/typescript-estree': 8.56.0(typescript@5.7.2) + '@typescript-eslint/utils': 8.56.0(eslint@9.19.0(jiti@1.21.7))(typescript@5.7.2) + debug: 4.4.3 eslint: 9.19.0(jiti@1.21.7) - ts-api-utils: 2.1.0(typescript@5.7.2) + ts-api-utils: 2.4.0(typescript@5.7.2) typescript: 5.7.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/types@8.32.0': {} + '@typescript-eslint/types@8.56.0': {} - '@typescript-eslint/typescript-estree@8.32.0(typescript@5.7.2)': + '@typescript-eslint/typescript-estree@8.56.0(typescript@5.7.2)': dependencies: - '@typescript-eslint/types': 8.32.0 - '@typescript-eslint/visitor-keys': 8.32.0 - debug: 4.4.0 - fast-glob: 3.3.2 - is-glob: 4.0.3 + '@typescript-eslint/project-service': 8.56.0(typescript@5.7.2) + '@typescript-eslint/tsconfig-utils': 8.56.0(typescript@5.7.2) + '@typescript-eslint/types': 8.56.0 + '@typescript-eslint/visitor-keys': 8.56.0 + debug: 4.4.3 minimatch: 9.0.5 - semver: 7.6.3 - ts-api-utils: 2.1.0(typescript@5.7.2) + semver: 7.7.4 + tinyglobby: 0.2.15 + ts-api-utils: 2.4.0(typescript@5.7.2) typescript: 5.7.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.32.0(eslint@9.19.0(jiti@1.21.7))(typescript@5.7.2)': + '@typescript-eslint/utils@8.56.0(eslint@9.19.0(jiti@1.21.7))(typescript@5.7.2)': dependencies: - '@eslint-community/eslint-utils': 4.7.0(eslint@9.19.0(jiti@1.21.7)) - '@typescript-eslint/scope-manager': 8.32.0 - '@typescript-eslint/types': 8.32.0 - '@typescript-eslint/typescript-estree': 8.32.0(typescript@5.7.2) + '@eslint-community/eslint-utils': 4.9.1(eslint@9.19.0(jiti@1.21.7)) + '@typescript-eslint/scope-manager': 8.56.0 + '@typescript-eslint/types': 8.56.0 + '@typescript-eslint/typescript-estree': 8.56.0(typescript@5.7.2) eslint: 9.19.0(jiti@1.21.7) typescript: 5.7.2 transitivePeerDependencies: - supports-color - '@typescript-eslint/visitor-keys@8.32.0': + '@typescript-eslint/visitor-keys@8.56.0': dependencies: - '@typescript-eslint/types': 8.32.0 - eslint-visitor-keys: 4.2.0 + '@typescript-eslint/types': 8.56.0 + eslint-visitor-keys: 5.0.0 '@ungap/structured-clone@1.3.0': {} @@ -7781,6 +7823,8 @@ snapshots: eslint-visitor-keys@4.2.0: {} + eslint-visitor-keys@5.0.0: {} + eslint@9.19.0(jiti@1.21.7): dependencies: '@eslint-community/eslint-utils': 4.4.1(eslint@9.19.0(jiti@1.21.7)) @@ -7983,8 +8027,6 @@ snapshots: graceful-fs@4.2.11: {} - graphemer@1.4.0: {} - handlebars@4.7.8: dependencies: minimist: 1.2.8 @@ -8095,6 +8137,8 @@ snapshots: ignore@5.3.2: {} + ignore@7.0.5: {} + immutable@5.0.3: {} import-fresh@3.3.1: @@ -9285,6 +9329,8 @@ snapshots: semver@7.6.3: {} + semver@7.7.4: {} + setprototypeof@1.2.0: {} shebang-command@2.0.0: @@ -9499,7 +9545,7 @@ snapshots: triple-beam@1.4.1: {} - ts-api-utils@2.1.0(typescript@5.7.2): + ts-api-utils@2.4.0(typescript@5.7.2): dependencies: typescript: 5.7.2 @@ -9551,11 +9597,12 @@ snapshots: type-fest@4.31.0: {} - typescript-eslint@8.32.0(eslint@9.19.0(jiti@1.21.7))(typescript@5.7.2): + typescript-eslint@8.56.0(eslint@9.19.0(jiti@1.21.7))(typescript@5.7.2): dependencies: - '@typescript-eslint/eslint-plugin': 8.32.0(@typescript-eslint/parser@8.32.0(eslint@9.19.0(jiti@1.21.7))(typescript@5.7.2))(eslint@9.19.0(jiti@1.21.7))(typescript@5.7.2) - '@typescript-eslint/parser': 8.32.0(eslint@9.19.0(jiti@1.21.7))(typescript@5.7.2) - '@typescript-eslint/utils': 8.32.0(eslint@9.19.0(jiti@1.21.7))(typescript@5.7.2) + '@typescript-eslint/eslint-plugin': 8.56.0(@typescript-eslint/parser@8.56.0(eslint@9.19.0(jiti@1.21.7))(typescript@5.7.2))(eslint@9.19.0(jiti@1.21.7))(typescript@5.7.2) + '@typescript-eslint/parser': 8.56.0(eslint@9.19.0(jiti@1.21.7))(typescript@5.7.2) + '@typescript-eslint/typescript-estree': 8.56.0(typescript@5.7.2) + '@typescript-eslint/utils': 8.56.0(eslint@9.19.0(jiti@1.21.7))(typescript@5.7.2) eslint: 9.19.0(jiti@1.21.7) typescript: 5.7.2 transitivePeerDependencies: diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 5b55d3bb..ca4cc752 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -20,7 +20,7 @@ catalog: "@types/node": ^22.10.2 "eslint": ^9.17.0 "superjson": ^2.2.2 - "typescript-eslint": ^8.27.0 + "typescript-eslint": ^8.56.0 "typescript": ^5.7.2 "vitest": ^3.1.1 "vue-tsc": ^2.2.0 From fd23e1fbca30a1a140900329535b347fc0393f0e Mon Sep 17 00:00:00 2001 From: silasjak Date: Fri, 20 Feb 2026 10:55:54 +0100 Subject: [PATCH 07/16] implement program edit and delete --- .../src/services/program/program.create.ts | 23 +- .../src/services/program/program.delete.ts | 18 ++ apps/api/src/services/program/program.edit.ts | 36 +++ apps/api/src/services/program/program.get.ts | 26 +++ apps/api/src/services/program/program.list.ts | 1 + .../src/services/program/program.router.ts | 13 +- .../veranstaltung/veranstaltungPublicGet.ts | 1 + .../src/views/Development/Mitwirkende.vue | 5 + .../Verwaltung/Program/ProgramCreate.vue | 127 ---------- .../views/Verwaltung/Program/ProgramForm.vue | 216 ++++++++++++++++++ .../views/Verwaltung/Program/ProgramList.vue | 30 +-- .../Verwaltung/Veranstaltungen/routes.ts | 14 +- 12 files changed, 350 insertions(+), 160 deletions(-) create mode 100644 apps/api/src/services/program/program.delete.ts create mode 100644 apps/api/src/services/program/program.edit.ts create mode 100644 apps/api/src/services/program/program.get.ts delete mode 100644 apps/frontend/src/views/Verwaltung/Program/ProgramCreate.vue create mode 100644 apps/frontend/src/views/Verwaltung/Program/ProgramForm.vue diff --git a/apps/api/src/services/program/program.create.ts b/apps/api/src/services/program/program.create.ts index 0a1c173e..95cd91aa 100644 --- a/apps/api/src/services/program/program.create.ts +++ b/apps/api/src/services/program/program.create.ts @@ -9,15 +9,17 @@ export const programCreateProcedure = defineProtectedMutateProcedure({ roleIds: ['ADMIN'], inputSchema: z.strictObject({ veranstaltungId: z.string().uuid(), - name: z.string(), - description: z.string(), - location: z.string(), - responsible: z.string(), - startingAt: z.date(), - endingAt: z.date(), + data: z.object({ + name: z.string(), + description: z.string(), + location: z.string(), + responsible: z.string(), + startingAt: z.date(), + endingAt: z.date(), + }), }), - handler: async ({ input }) => { - if (dayjs(input.endingAt).isBefore(input.startingAt)) { + handler: async ({ input: { veranstaltungId, data } }) => { + if (dayjs(data.endingAt).isBefore(data.startingAt)) { throw new TRPCError({ code: 'BAD_REQUEST', message: 'Das Enddatum kann nicht vor dem Startdatum liegen.', @@ -25,7 +27,10 @@ export const programCreateProcedure = defineProtectedMutateProcedure({ } await prisma.programmPunkt.create({ - data: input, + data: { + ...data, + veranstaltungId: veranstaltungId, + }, }) }, }) diff --git a/apps/api/src/services/program/program.delete.ts b/apps/api/src/services/program/program.delete.ts new file mode 100644 index 00000000..df00e8e9 --- /dev/null +++ b/apps/api/src/services/program/program.delete.ts @@ -0,0 +1,18 @@ +import { z } from 'zod' +import prisma from '../../prisma.js' +import { defineProtectedMutateProcedure } from '../../types/defineProcedure.js' + +export const programDeleteProcedure = defineProtectedMutateProcedure({ + key: 'delete', + roleIds: ['ADMIN'], + inputSchema: z.strictObject({ + programId: z.string().uuid(), + }), + handler: async ({ input: { programId } }) => { + await prisma.programmPunkt.delete({ + where: { + id: programId, + }, + }) + }, +}) diff --git a/apps/api/src/services/program/program.edit.ts b/apps/api/src/services/program/program.edit.ts new file mode 100644 index 00000000..31d0ff18 --- /dev/null +++ b/apps/api/src/services/program/program.edit.ts @@ -0,0 +1,36 @@ +import { TRPCError } from '@trpc/server' +import dayjs from 'dayjs' +import { z } from 'zod' +import prisma from '../../prisma.js' +import { defineProtectedMutateProcedure } from '../../types/defineProcedure.js' + +export const programEditProcedure = defineProtectedMutateProcedure({ + key: 'edit', + roleIds: ['ADMIN'], + inputSchema: z.strictObject({ + programId: z.string().uuid(), + data: z.object({ + name: z.string(), + description: z.string(), + location: z.string(), + responsible: z.string(), + startingAt: z.date(), + endingAt: z.date(), + }), + }), + handler: async ({ input: { programId, data } }) => { + if (dayjs(data.endingAt).isBefore(data.startingAt)) { + throw new TRPCError({ + code: 'BAD_REQUEST', + message: 'Das Enddatum kann nicht vor dem Startdatum liegen.', + }) + } + + await prisma.programmPunkt.update({ + where: { + id: programId, + }, + data: data, + }) + }, +}) diff --git a/apps/api/src/services/program/program.get.ts b/apps/api/src/services/program/program.get.ts new file mode 100644 index 00000000..f4ad48ca --- /dev/null +++ b/apps/api/src/services/program/program.get.ts @@ -0,0 +1,26 @@ +import { z } from 'zod' +import prisma from '../../prisma.js' +import { defineProtectedMutateProcedure } from '../../types/defineProcedure.js' + +export const programGetProcedure = defineProtectedMutateProcedure({ + key: 'get', + roleIds: ['ADMIN'], + inputSchema: z.strictObject({ + programId: z.string().uuid(), + }), + handler: async ({ input }) => { + return await prisma.programmPunkt.findUniqueOrThrow({ + where: { + id: input.programId, + }, + select: { + name: true, + description: true, + location: true, + responsible: true, + startingAt: true, + endingAt: true, + }, + }) + }, +}) diff --git a/apps/api/src/services/program/program.list.ts b/apps/api/src/services/program/program.list.ts index ff7a0722..f5ca45ee 100644 --- a/apps/api/src/services/program/program.list.ts +++ b/apps/api/src/services/program/program.list.ts @@ -14,6 +14,7 @@ export const programListProcedure = defineProtectedQueryProcedure({ veranstaltungId: input.veranstaltungId, }, select: { + id: true, name: true, description: true, location: true, diff --git a/apps/api/src/services/program/program.router.ts b/apps/api/src/services/program/program.router.ts index 68404965..185a1648 100644 --- a/apps/api/src/services/program/program.router.ts +++ b/apps/api/src/services/program/program.router.ts @@ -2,14 +2,23 @@ import { mergeRouters } from '../../trpc.js' import { programSearchLocationProcedure, programSearchResponsiblesProcedure } from './program.autocomplete.js' import { programCreateProcedure } from './program.create.js' +import { programDeleteProcedure } from './program.delete.js' +import { programEditProcedure } from './program.edit.js' +import { programGetProcedure } from './program.get.js' import { programListProcedure } from './program.list.js' // Import Routes here - do not delete this line export const programRouter = mergeRouters( + // Queries programListProcedure, - programCreateProcedure, + programGetProcedure, programSearchLocationProcedure, - programSearchResponsiblesProcedure + programSearchResponsiblesProcedure, + + // Mutations + programCreateProcedure, + programEditProcedure, + programDeleteProcedure // Add Routes here - do not delete this line ) diff --git a/apps/api/src/services/veranstaltung/veranstaltungPublicGet.ts b/apps/api/src/services/veranstaltung/veranstaltungPublicGet.ts index bebacd65..3a86d860 100644 --- a/apps/api/src/services/veranstaltung/veranstaltungPublicGet.ts +++ b/apps/api/src/services/veranstaltung/veranstaltungPublicGet.ts @@ -19,6 +19,7 @@ export const veranstaltungPublicGetProcedure = definePublicQueryProcedure({ ort: true, programmPunkte: { select: { + id: true, name: true, description: true, location: true, diff --git a/apps/frontend/src/views/Development/Mitwirkende.vue b/apps/frontend/src/views/Development/Mitwirkende.vue index fb276002..086ea648 100644 --- a/apps/frontend/src/views/Development/Mitwirkende.vue +++ b/apps/frontend/src/views/Development/Mitwirkende.vue @@ -52,6 +52,11 @@ const people = [ role: 'Contributor', imageUrl: 'https://avatars.githubusercontent.com/u/16214836?v=4', }, + { + name: 'Silas Jakubzik', + role: 'Contributor', + imageUrl: 'https://avatars.githubusercontent.com/u/115188138?v=4', + }, { name: 'CODEANKER', role: 'Sponsor', diff --git a/apps/frontend/src/views/Verwaltung/Program/ProgramCreate.vue b/apps/frontend/src/views/Verwaltung/Program/ProgramCreate.vue deleted file mode 100644 index 554caecd..00000000 --- a/apps/frontend/src/views/Verwaltung/Program/ProgramCreate.vue +++ /dev/null @@ -1,127 +0,0 @@ - - - diff --git a/apps/frontend/src/views/Verwaltung/Program/ProgramForm.vue b/apps/frontend/src/views/Verwaltung/Program/ProgramForm.vue new file mode 100644 index 00000000..4486481b --- /dev/null +++ b/apps/frontend/src/views/Verwaltung/Program/ProgramForm.vue @@ -0,0 +1,216 @@ + + + diff --git a/apps/frontend/src/views/Verwaltung/Program/ProgramList.vue b/apps/frontend/src/views/Verwaltung/Program/ProgramList.vue index 4810a607..924c184e 100644 --- a/apps/frontend/src/views/Verwaltung/Program/ProgramList.vue +++ b/apps/frontend/src/views/Verwaltung/Program/ProgramList.vue @@ -1,10 +1,10 @@ diff --git a/apps/frontend/src/views/Verwaltung/Veranstaltungen/VeranstaltungDetail.vue b/apps/frontend/src/views/Verwaltung/Veranstaltungen/VeranstaltungDetail.vue index a64b9a9a..c33cec7e 100644 --- a/apps/frontend/src/views/Verwaltung/Veranstaltungen/VeranstaltungDetail.vue +++ b/apps/frontend/src/views/Verwaltung/Veranstaltungen/VeranstaltungDetail.vue @@ -310,7 +310,14 @@ function copyProgramLink() { Date: Fri, 20 Feb 2026 14:51:10 +0100 Subject: [PATCH 09/16] fix naming --- .../views/Verwaltung/Veranstaltungen/VeranstaltungDetail.vue | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/frontend/src/views/Verwaltung/Veranstaltungen/VeranstaltungDetail.vue b/apps/frontend/src/views/Verwaltung/Veranstaltungen/VeranstaltungDetail.vue index c33cec7e..9a0c62ff 100644 --- a/apps/frontend/src/views/Verwaltung/Veranstaltungen/VeranstaltungDetail.vue +++ b/apps/frontend/src/views/Verwaltung/Veranstaltungen/VeranstaltungDetail.vue @@ -294,9 +294,9 @@ function copyProgramLink() { >
-
Unterveranstaltungen
+
Ausschreibungen

- Zu dieser Veranstaltung wurden die folgenden Unterveranstaltungen erstellt. + Zu dieser Veranstaltung wurden die folgenden Ausschreibungen erstellt.

Date: Fri, 20 Feb 2026 18:07:07 +0100 Subject: [PATCH 10/16] remove static seed --- apps/api/prisma/seeders/anmeldungen.ts | 2 -- 1 file changed, 2 deletions(-) diff --git a/apps/api/prisma/seeders/anmeldungen.ts b/apps/api/prisma/seeders/anmeldungen.ts index c342c7b6..14ceb498 100644 --- a/apps/api/prisma/seeders/anmeldungen.ts +++ b/apps/api/prisma/seeders/anmeldungen.ts @@ -14,8 +14,6 @@ import type { Seeder } from './index.js' const ENTRY_COUNT = 100 -faker.seed(123) - async function create(prisma: PrismaClient, unterveranstaltung: Unterveranstaltung): Promise { const address = await prisma.address.create({ data: { From 0516361319bf27b3ad7abd2d59278903f1bd1aa4 Mon Sep 17 00:00:00 2001 From: silasjak Date: Fri, 20 Feb 2026 20:18:39 +0100 Subject: [PATCH 11/16] fixes --- .../src/components/BasicInputs/BasicSelect.vue | 4 +++- .../src/components/BasicInputs/BasicTypeahead.vue | 2 ++ .../FormUnterveranstaltungGeneral.vue | 13 ++++++++++--- .../components/PublicAusschreibungDaten.vue | 3 ++- .../Unterveranstaltung/UnterveranstaltungDetail.vue | 9 +++------ .../Unterveranstaltung/UnterveranstaltungEdit.vue | 1 + .../Veranstaltungen/VeranstaltungDetail.vue | 6 +++--- 7 files changed, 24 insertions(+), 14 deletions(-) diff --git a/apps/frontend/src/components/BasicInputs/BasicSelect.vue b/apps/frontend/src/components/BasicInputs/BasicSelect.vue index ad72eddb..d9813370 100644 --- a/apps/frontend/src/components/BasicInputs/BasicSelect.vue +++ b/apps/frontend/src/components/BasicInputs/BasicSelect.vue @@ -6,6 +6,7 @@ import useValidationModel from '../../composables/useValidationModel' import BasicValidationFeedback from './components/BasicValidationFeedback.vue' import { type BasicInputDefaultProps } from './defaultProps' +import cn from '@/helpers/cn' export interface Option { label: string @@ -47,9 +48,10 @@ const { model, errorMessage } = useValidationModel(props, emit) as="div" :name="id || name || label" :multiple="props.multiple" + :disabled="disabled" > - + {{ options.find((option) => option.value === modelValue)?.label || placeholder || 'Bitte wählen...' }} diff --git a/apps/frontend/src/components/BasicInputs/BasicTypeahead.vue b/apps/frontend/src/components/BasicInputs/BasicTypeahead.vue index fc4fee86..6199d536 100644 --- a/apps/frontend/src/components/BasicInputs/BasicTypeahead.vue +++ b/apps/frontend/src/components/BasicInputs/BasicTypeahead.vue @@ -16,6 +16,7 @@ const props = withDefaults( /** Flag, die gesetzt werden kann, wenn die query nicht async ist. Debounce wird geskipped */ sync?: InstanceType['sync'] /** Ob ein Ergebnis von der Query ausgewählt werden muss oder ob auch ein Freitext erlaubt ist */ + disabled?: InstanceType['disabled'] strict?: InstanceType['strict'] immediate?: InstanceType['immediate'] debounceTime?: InstanceType['debounceTime'] @@ -53,6 +54,7 @@ const { model, errorMessage } = useValidationModel(props, emit) :name="name" :debounce-time="debounceTime" :strict="strict" + :disabled="disabled" >