From 3e771f4d4e64a73f972c329b9d8e43ab795dcb96 Mon Sep 17 00:00:00 2001 From: Mia Moir Date: Wed, 23 Jul 2025 17:36:02 +0100 Subject: [PATCH 1/8] Add required packages for linting --- .eslintrc.cjs | 30 ++ .eslintrc.json | 12 - .prettierrc | 3 + package.json | 4 + yarn.lock | 1208 +++++++++++++++++++++++++++++++++++++++++++++++- 5 files changed, 1243 insertions(+), 14 deletions(-) create mode 100644 .eslintrc.cjs delete mode 100644 .eslintrc.json create mode 100644 .prettierrc diff --git a/.eslintrc.cjs b/.eslintrc.cjs new file mode 100644 index 00000000..24ed1c89 --- /dev/null +++ b/.eslintrc.cjs @@ -0,0 +1,30 @@ +/** @type {import("eslint").Linter.Config} */ +const config = { + parser: "@typescript-eslint/parser", + parserOptions: { + project: true, + }, + ignorePatterns: [".eslintrc.js", "lib/db/types/**/*"], + extends: ["next/core-web-vitals", "prettier", "plugin:storybook/recommended"], + plugins: [ + "@typescript-eslint", + "eslint-plugin-unused-imports", + "eslint-plugin-react", + ], + rules: { + "@next/next/no-async-client-component": "error", + "@typescript-eslint/consistent-type-imports": [ + "warn", + { + prefer: "type-imports", + fixStyle: "inline-type-imports", + }, + ], + "@typescript-eslint/no-unused-vars": [ + "warn", + { argsIgnorePattern: "^_", varsIgnorePattern: "^_" }, + ], + }, +}; + +module.exports = config; diff --git a/.eslintrc.json b/.eslintrc.json deleted file mode 100644 index 6f7e20d7..00000000 --- a/.eslintrc.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "extends": [ - "next/core-web-vitals", - "prettier", - "plugin:storybook/recommended", - "plugin:@tanstack/query/recommended" - ], - "plugins": ["@typescript-eslint"], - "rules": { - "@next/next/no-async-client-component": "error" - } -} diff --git a/.prettierrc b/.prettierrc new file mode 100644 index 00000000..55c1943a --- /dev/null +++ b/.prettierrc @@ -0,0 +1,3 @@ +{ + "plugins": ["prettier-plugin-organize-imports"] +} diff --git a/package.json b/package.json index 0ad44b5f..b8d8e43d 100644 --- a/package.json +++ b/package.json @@ -102,9 +102,12 @@ "@tanstack/eslint-plugin-query": "^5.59.7", "@types/ws": "^8.5.9", "@typescript-eslint/eslint-plugin": "^6.0.0", + "@typescript-eslint/parser": "^8.38.0", "dotenv-cli": "^7.2.1", "eslint-config-prettier": "^8.8.0", + "eslint-plugin-react": "^7.37.5", "eslint-plugin-storybook": "^0.6.12", + "eslint-plugin-unused-imports": "^4.1.4", "husky": "^9.0.6", "lint-staged": "^15.2.0", "nodemon": "^3.1.4", @@ -112,6 +115,7 @@ "postcss-preset-mantine": "^1.7.0", "postcss-simple-vars": "^7.0.1", "prettier": "^3.0.3", + "prettier-plugin-organize-imports": "^4.2.0", "prettier-plugin-tailwindcss": "^0.4.0", "prisma": "^5.21.1", "prisma-json-types-generator": "^3.0.2", diff --git a/yarn.lock b/yarn.lock index e458a932..36bbe027 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6073,6 +6073,35 @@ __metadata: languageName: node linkType: hard +"@typescript-eslint/parser@npm:^8.38.0": + version: 8.38.0 + resolution: "@typescript-eslint/parser@npm:8.38.0" + dependencies: + "@typescript-eslint/scope-manager": 8.38.0 + "@typescript-eslint/types": 8.38.0 + "@typescript-eslint/typescript-estree": 8.38.0 + "@typescript-eslint/visitor-keys": 8.38.0 + debug: ^4.3.4 + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: ">=4.8.4 <5.9.0" + checksum: 8964da26cef76509c4c6015ccf3eff3ab837676adb5fbe8da5ac6d95b08ddbf1c66946c9ce29c0e3b05fa9942632d7cd10c8376a073fbfdbfeb07f32a0d83336 + languageName: node + linkType: hard + +"@typescript-eslint/project-service@npm:8.38.0": + version: 8.38.0 + resolution: "@typescript-eslint/project-service@npm:8.38.0" + dependencies: + "@typescript-eslint/tsconfig-utils": ^8.38.0 + "@typescript-eslint/types": ^8.38.0 + debug: ^4.3.4 + peerDependencies: + typescript: ">=4.8.4 <5.9.0" + checksum: 8d2466fd0efe2e0328416322d968f2274a1678e7435f58879a282187c28831162f5c5c41223702cfb38700dede295b98b2792f22ce5834344999fc652d519fd2 + languageName: node + linkType: hard + "@typescript-eslint/scope-manager@npm:5.62.0": version: 5.62.0 resolution: "@typescript-eslint/scope-manager@npm:5.62.0" @@ -6103,6 +6132,16 @@ __metadata: languageName: node linkType: hard +"@typescript-eslint/scope-manager@npm:8.38.0": + version: 8.38.0 + resolution: "@typescript-eslint/scope-manager@npm:8.38.0" + dependencies: + "@typescript-eslint/types": 8.38.0 + "@typescript-eslint/visitor-keys": 8.38.0 + checksum: a70e1bf0e227abe45ddb330747e5241710aee419a2bf05d369231bb5b27d88cf9bfdb1dc4233a38d5ec62dfe1d6eeba642eca31d0d6ed12966366e0f5f29b6ff + languageName: node + linkType: hard + "@typescript-eslint/scope-manager@npm:8.8.1": version: 8.8.1 resolution: "@typescript-eslint/scope-manager@npm:8.8.1" @@ -6113,6 +6152,15 @@ __metadata: languageName: node linkType: hard +"@typescript-eslint/tsconfig-utils@npm:8.38.0, @typescript-eslint/tsconfig-utils@npm:^8.38.0": + version: 8.38.0 + resolution: "@typescript-eslint/tsconfig-utils@npm:8.38.0" + peerDependencies: + typescript: ">=4.8.4 <5.9.0" + checksum: e1c80d2a4bd50edc5c1da418bd11cf67fc10e55fc9e2e937df2799c44de7f48739c7821c0579a3b92658e50eb75e341ab89610e952ea28b7deb901219235821c + languageName: node + linkType: hard + "@typescript-eslint/type-utils@npm:6.0.0": version: 6.0.0 resolution: "@typescript-eslint/type-utils@npm:6.0.0" @@ -6151,6 +6199,13 @@ __metadata: languageName: node linkType: hard +"@typescript-eslint/types@npm:8.38.0, @typescript-eslint/types@npm:^8.38.0": + version: 8.38.0 + resolution: "@typescript-eslint/types@npm:8.38.0" + checksum: 66c293e0e7bec90a94c9622197c373dfa9b3427ff568d81ffe47b8f95198ec599e1bc39b28464f91674a621bca0324628ece236837493d5401cc86562ae74e29 + languageName: node + linkType: hard + "@typescript-eslint/types@npm:8.8.1": version: 8.8.1 resolution: "@typescript-eslint/types@npm:8.8.1" @@ -6212,6 +6267,26 @@ __metadata: languageName: node linkType: hard +"@typescript-eslint/typescript-estree@npm:8.38.0": + version: 8.38.0 + resolution: "@typescript-eslint/typescript-estree@npm:8.38.0" + dependencies: + "@typescript-eslint/project-service": 8.38.0 + "@typescript-eslint/tsconfig-utils": 8.38.0 + "@typescript-eslint/types": 8.38.0 + "@typescript-eslint/visitor-keys": 8.38.0 + debug: ^4.3.4 + fast-glob: ^3.3.2 + is-glob: ^4.0.3 + minimatch: ^9.0.4 + semver: ^7.6.0 + ts-api-utils: ^2.1.0 + peerDependencies: + typescript: ">=4.8.4 <5.9.0" + checksum: 3acb587458247577bfbae2069c381bb9ac37fcd121fb6a9d3e911167a8a1d9dbffb377d9ab32cec93cfd61acd075c80a037c7152ab0c91ebfc0b3305de10b73a + languageName: node + linkType: hard + "@typescript-eslint/typescript-estree@npm:8.8.1": version: 8.8.1 resolution: "@typescript-eslint/typescript-estree@npm:8.8.1" @@ -6311,6 +6386,16 @@ __metadata: languageName: node linkType: hard +"@typescript-eslint/visitor-keys@npm:8.38.0": + version: 8.38.0 + resolution: "@typescript-eslint/visitor-keys@npm:8.38.0" + dependencies: + "@typescript-eslint/types": 8.38.0 + eslint-visitor-keys: ^4.2.1 + checksum: d6e5f1e7595acc53c24e238cd6f947c386f64ed535e914068e67371bf595e6e419687754ea712eb370a34ceaecdc35a169c472bc9d5dcaf9a8b2cfab307e9486 + languageName: node + linkType: hard + "@typescript-eslint/visitor-keys@npm:8.8.1": version: 8.8.1 resolution: "@typescript-eslint/visitor-keys@npm:8.8.1" @@ -6904,6 +6989,16 @@ __metadata: languageName: node linkType: hard +"array-buffer-byte-length@npm:^1.0.1, array-buffer-byte-length@npm:^1.0.2": + version: 1.0.2 + resolution: "array-buffer-byte-length@npm:1.0.2" + dependencies: + call-bound: ^1.0.3 + is-array-buffer: ^3.0.5 + checksum: 0ae3786195c3211b423e5be8dd93357870e6fb66357d81da968c2c39ef43583ef6eece1f9cb1caccdae4806739c65dea832b44b8593414313cd76a89795fca63 + languageName: node + linkType: hard + "array-flatten@npm:1.1.1": version: 1.1.1 resolution: "array-flatten@npm:1.1.1" @@ -6931,6 +7026,22 @@ __metadata: languageName: node linkType: hard +"array-includes@npm:^3.1.8": + version: 3.1.9 + resolution: "array-includes@npm:3.1.9" + dependencies: + call-bind: ^1.0.8 + call-bound: ^1.0.4 + define-properties: ^1.2.1 + es-abstract: ^1.24.0 + es-object-atoms: ^1.1.1 + get-intrinsic: ^1.3.0 + is-string: ^1.1.1 + math-intrinsics: ^1.1.0 + checksum: b58dc526fe415252e50319eaf88336e06e75aa673e3b58d252414739a4612dbe56e7b613fdcc7c90561dc9cf9202bbe5ca029ccd8c08362746459475ae5a8f3e + languageName: node + linkType: hard + "array-union@npm:^2.1.0": version: 2.1.0 resolution: "array-union@npm:2.1.0" @@ -6938,6 +7049,20 @@ __metadata: languageName: node linkType: hard +"array.prototype.findlast@npm:^1.2.5": + version: 1.2.5 + resolution: "array.prototype.findlast@npm:1.2.5" + dependencies: + call-bind: ^1.0.7 + define-properties: ^1.2.1 + es-abstract: ^1.23.2 + es-errors: ^1.3.0 + es-object-atoms: ^1.0.0 + es-shim-unscopables: ^1.0.2 + checksum: 83ce4ad95bae07f136d316f5a7c3a5b911ac3296c3476abe60225bc4a17938bf37541972fcc37dd5adbc99cbb9c928c70bbbfc1c1ce549d41a415144030bb446 + languageName: node + linkType: hard + "array.prototype.findlastindex@npm:^1.2.2": version: 1.2.3 resolution: "array.prototype.findlastindex@npm:1.2.3" @@ -6975,6 +7100,18 @@ __metadata: languageName: node linkType: hard +"array.prototype.flatmap@npm:^1.3.3": + version: 1.3.3 + resolution: "array.prototype.flatmap@npm:1.3.3" + dependencies: + call-bind: ^1.0.8 + define-properties: ^1.2.1 + es-abstract: ^1.23.5 + es-shim-unscopables: ^1.0.2 + checksum: 11b4de09b1cf008be6031bb507d997ad6f1892e57dc9153583de6ebca0f74ea403fffe0f203461d359de05048d609f3f480d9b46fed4099652d8b62cc972f284 + languageName: node + linkType: hard + "array.prototype.tosorted@npm:^1.1.1": version: 1.1.1 resolution: "array.prototype.tosorted@npm:1.1.1" @@ -6988,6 +7125,19 @@ __metadata: languageName: node linkType: hard +"array.prototype.tosorted@npm:^1.1.4": + version: 1.1.4 + resolution: "array.prototype.tosorted@npm:1.1.4" + dependencies: + call-bind: ^1.0.7 + define-properties: ^1.2.1 + es-abstract: ^1.23.3 + es-errors: ^1.3.0 + es-shim-unscopables: ^1.0.2 + checksum: e4142d6f556bcbb4f393c02e7dbaea9af8f620c040450c2be137c9cbbd1a17f216b9c688c5f2c08fbb038ab83f55993fa6efdd9a05881d84693c7bcb5422127a + languageName: node + linkType: hard + "arraybuffer.prototype.slice@npm:^1.0.2": version: 1.0.2 resolution: "arraybuffer.prototype.slice@npm:1.0.2" @@ -7003,6 +7153,21 @@ __metadata: languageName: node linkType: hard +"arraybuffer.prototype.slice@npm:^1.0.4": + version: 1.0.4 + resolution: "arraybuffer.prototype.slice@npm:1.0.4" + 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.6 + is-array-buffer: ^3.0.4 + checksum: b1d1fd20be4e972a3779b1569226f6740170dca10f07aa4421d42cefeec61391e79c557cda8e771f5baefe47d878178cd4438f60916ce831813c08132bced765 + languageName: node + linkType: hard + "asn1.js@npm:^5.2.0": version: 5.4.1 resolution: "asn1.js@npm:5.4.1" @@ -7116,6 +7281,15 @@ __metadata: languageName: node linkType: hard +"available-typed-arrays@npm:^1.0.7": + version: 1.0.7 + resolution: "available-typed-arrays@npm:1.0.7" + dependencies: + possible-typed-array-names: ^1.0.0 + checksum: 1aa3ffbfe6578276996de660848b6e95669d9a95ad149e3dd0c0cda77db6ee1dbd9d1dd723b65b6d277b882dd0c4b91a654ae9d3cf9e1254b7e93e4908d78fd3 + languageName: node + linkType: hard + "axe-core@npm:^4.6.2": version: 4.7.2 resolution: "axe-core@npm:4.7.2" @@ -7727,6 +7901,16 @@ __metadata: languageName: node linkType: hard +"call-bind-apply-helpers@npm:^1.0.0, call-bind-apply-helpers@npm:^1.0.1, call-bind-apply-helpers@npm:^1.0.2": + version: 1.0.2 + resolution: "call-bind-apply-helpers@npm:1.0.2" + dependencies: + es-errors: ^1.3.0 + function-bind: ^1.1.2 + checksum: b2863d74fcf2a6948221f65d95b91b4b2d90cfe8927650b506141e669f7d5de65cea191bf788838bc40d13846b7886c5bc5c84ab96c3adbcf88ad69a72fcdc6b + languageName: node + linkType: hard + "call-bind@npm:^1.0.0, call-bind@npm:^1.0.2": version: 1.0.2 resolution: "call-bind@npm:1.0.2" @@ -7750,6 +7934,28 @@ __metadata: languageName: node linkType: hard +"call-bind@npm:^1.0.8": + version: 1.0.8 + resolution: "call-bind@npm:1.0.8" + dependencies: + call-bind-apply-helpers: ^1.0.0 + es-define-property: ^1.0.0 + get-intrinsic: ^1.2.4 + set-function-length: ^1.2.2 + checksum: aa2899bce917a5392fd73bd32e71799c37c0b7ab454e0ed13af7f6727549091182aade8bbb7b55f304a5bc436d543241c14090fb8a3137e9875e23f444f4f5a9 + languageName: node + linkType: hard + +"call-bound@npm:^1.0.2, call-bound@npm:^1.0.3, call-bound@npm:^1.0.4": + version: 1.0.4 + resolution: "call-bound@npm:1.0.4" + dependencies: + call-bind-apply-helpers: ^1.0.2 + get-intrinsic: ^1.3.0 + checksum: 2f6399488d1c272f56306ca60ff696575e2b7f31daf23bc11574798c84d9f2759dceb0cb1f471a85b77f28962a7ac6411f51d283ea2e45319009a19b6ccab3b2 + languageName: node + linkType: hard + "callsites@npm:^3.0.0": version: 3.1.0 resolution: "callsites@npm:3.1.0" @@ -8503,6 +8709,39 @@ __metadata: languageName: node linkType: hard +"data-view-buffer@npm:^1.0.2": + version: 1.0.2 + resolution: "data-view-buffer@npm:1.0.2" + dependencies: + call-bound: ^1.0.3 + es-errors: ^1.3.0 + is-data-view: ^1.0.2 + checksum: 1e1cd509c3037ac0f8ba320da3d1f8bf1a9f09b0be09394b5e40781b8cc15ff9834967ba7c9f843a425b34f9fe14ce44cf055af6662c44263424c1eb8d65659b + languageName: node + linkType: hard + +"data-view-byte-length@npm:^1.0.2": + version: 1.0.2 + resolution: "data-view-byte-length@npm:1.0.2" + dependencies: + call-bound: ^1.0.3 + es-errors: ^1.3.0 + is-data-view: ^1.0.2 + checksum: 3600c91ced1cfa935f19ef2abae11029e01738de8d229354d3b2a172bf0d7e4ed08ff8f53294b715569fdf72dfeaa96aa7652f479c0f60570878d88e7e8bddf6 + languageName: node + linkType: hard + +"data-view-byte-offset@npm:^1.0.1": + version: 1.0.1 + resolution: "data-view-byte-offset@npm:1.0.1" + dependencies: + call-bound: ^1.0.2 + es-errors: ^1.3.0 + is-data-view: ^1.0.1 + checksum: 8dd492cd51d19970876626b5b5169fbb67ca31ec1d1d3238ee6a71820ca8b80cafb141c485999db1ee1ef02f2cc3b99424c5eda8d59e852d9ebb79ab290eb5ee + languageName: node + linkType: hard + "date-fns@npm:^2.30.0": version: 2.30.0 resolution: "date-fns@npm:2.30.0" @@ -9019,6 +9258,17 @@ __metadata: languageName: node linkType: hard +"dunder-proto@npm:^1.0.0, dunder-proto@npm:^1.0.1": + version: 1.0.1 + resolution: "dunder-proto@npm:1.0.1" + dependencies: + call-bind-apply-helpers: ^1.0.1 + es-errors: ^1.3.0 + gopd: ^1.2.0 + checksum: 149207e36f07bd4941921b0ca929e3a28f1da7bd6b6ff8ff7f4e2f2e460675af4576eeba359c635723dc189b64cdd4787e0255897d5b135ccc5d15cb8685fc90 + languageName: node + linkType: hard + "duplexify@npm:^3.5.0, duplexify@npm:^3.6.0": version: 3.7.1 resolution: "duplexify@npm:3.7.1" @@ -9261,6 +9511,68 @@ __metadata: languageName: node linkType: hard +"es-abstract@npm:^1.17.5, es-abstract@npm:^1.23.2, es-abstract@npm:^1.23.3, es-abstract@npm:^1.23.5, es-abstract@npm:^1.23.6, es-abstract@npm:^1.23.9, es-abstract@npm:^1.24.0": + version: 1.24.0 + resolution: "es-abstract@npm:1.24.0" + dependencies: + array-buffer-byte-length: ^1.0.2 + arraybuffer.prototype.slice: ^1.0.4 + available-typed-arrays: ^1.0.7 + call-bind: ^1.0.8 + call-bound: ^1.0.4 + data-view-buffer: ^1.0.2 + data-view-byte-length: ^1.0.2 + data-view-byte-offset: ^1.0.1 + es-define-property: ^1.0.1 + es-errors: ^1.3.0 + es-object-atoms: ^1.1.1 + es-set-tostringtag: ^2.1.0 + es-to-primitive: ^1.3.0 + function.prototype.name: ^1.1.8 + get-intrinsic: ^1.3.0 + get-proto: ^1.0.1 + get-symbol-description: ^1.1.0 + globalthis: ^1.0.4 + gopd: ^1.2.0 + has-property-descriptors: ^1.0.2 + has-proto: ^1.2.0 + has-symbols: ^1.1.0 + hasown: ^2.0.2 + internal-slot: ^1.1.0 + is-array-buffer: ^3.0.5 + is-callable: ^1.2.7 + is-data-view: ^1.0.2 + is-negative-zero: ^2.0.3 + is-regex: ^1.2.1 + is-set: ^2.0.3 + is-shared-array-buffer: ^1.0.4 + is-string: ^1.1.1 + is-typed-array: ^1.1.15 + is-weakref: ^1.1.1 + math-intrinsics: ^1.1.0 + object-inspect: ^1.13.4 + object-keys: ^1.1.1 + object.assign: ^4.1.7 + own-keys: ^1.0.1 + regexp.prototype.flags: ^1.5.4 + safe-array-concat: ^1.1.3 + safe-push-apply: ^1.0.0 + safe-regex-test: ^1.1.0 + set-proto: ^1.0.0 + stop-iteration-iterator: ^1.1.0 + string.prototype.trim: ^1.2.10 + string.prototype.trimend: ^1.0.9 + string.prototype.trimstart: ^1.0.8 + typed-array-buffer: ^1.0.3 + typed-array-byte-length: ^1.0.3 + typed-array-byte-offset: ^1.0.4 + typed-array-length: ^1.0.7 + unbox-primitive: ^1.1.0 + which-typed-array: ^1.1.19 + checksum: 06b3d605e56e3da9d16d4db2629a42dac1ca31f2961a41d15c860422a266115e865b43e82d6b9da81a0fabbbb65ebc12fb68b0b755bc9dbddacb6bf7450e96df + languageName: node + linkType: hard + "es-abstract@npm:^1.19.0, es-abstract@npm:^1.20.4": version: 1.21.2 resolution: "es-abstract@npm:1.21.2" @@ -9359,6 +9671,13 @@ __metadata: languageName: node linkType: hard +"es-define-property@npm:^1.0.1": + version: 1.0.1 + resolution: "es-define-property@npm:1.0.1" + checksum: 0512f4e5d564021c9e3a644437b0155af2679d10d80f21adaf868e64d30efdfbd321631956f20f42d655fedb2e3a027da479fad3fa6048f768eb453a80a5f80a + languageName: node + linkType: hard + "es-errors@npm:^1.3.0": version: 1.3.0 resolution: "es-errors@npm:1.3.0" @@ -9405,6 +9724,30 @@ __metadata: languageName: node linkType: hard +"es-iterator-helpers@npm:^1.2.1": + version: 1.2.1 + resolution: "es-iterator-helpers@npm:1.2.1" + dependencies: + call-bind: ^1.0.8 + call-bound: ^1.0.3 + define-properties: ^1.2.1 + es-abstract: ^1.23.6 + es-errors: ^1.3.0 + es-set-tostringtag: ^2.0.3 + function-bind: ^1.1.2 + get-intrinsic: ^1.2.6 + globalthis: ^1.0.4 + gopd: ^1.2.0 + has-property-descriptors: ^1.0.2 + has-proto: ^1.2.0 + has-symbols: ^1.1.0 + internal-slot: ^1.1.0 + iterator.prototype: ^1.1.4 + safe-array-concat: ^1.1.3 + checksum: 952808dd1df3643d67ec7adf20c30b36e5eecadfbf36354e6f39ed3266c8e0acf3446ce9bc465e38723d613cb1d915c1c07c140df65bdce85da012a6e7bda62b + languageName: node + linkType: hard + "es-module-lexer@npm:^1.2.1": version: 1.3.0 resolution: "es-module-lexer@npm:1.3.0" @@ -9412,6 +9755,15 @@ __metadata: languageName: node linkType: hard +"es-object-atoms@npm:^1.0.0, es-object-atoms@npm:^1.1.1": + version: 1.1.1 + resolution: "es-object-atoms@npm:1.1.1" + dependencies: + es-errors: ^1.3.0 + checksum: 214d3767287b12f36d3d7267ef342bbbe1e89f899cfd67040309fc65032372a8e60201410a99a1645f2f90c1912c8c49c8668066f6bdd954bcd614dda2e3da97 + languageName: node + linkType: hard + "es-set-tostringtag@npm:^2.0.1": version: 2.0.1 resolution: "es-set-tostringtag@npm:2.0.1" @@ -9423,6 +9775,18 @@ __metadata: languageName: node linkType: hard +"es-set-tostringtag@npm:^2.0.3, es-set-tostringtag@npm:^2.1.0": + version: 2.1.0 + resolution: "es-set-tostringtag@npm:2.1.0" + dependencies: + es-errors: ^1.3.0 + get-intrinsic: ^1.2.6 + has-tostringtag: ^1.0.2 + hasown: ^2.0.2 + checksum: 789f35de4be3dc8d11fdcb91bc26af4ae3e6d602caa93299a8c45cf05d36cc5081454ae2a6d3afa09cceca214b76c046e4f8151e092e6fc7feeb5efb9e794fc6 + languageName: node + linkType: hard + "es-shim-unscopables@npm:^1.0.0": version: 1.0.0 resolution: "es-shim-unscopables@npm:1.0.0" @@ -9432,6 +9796,15 @@ __metadata: languageName: node linkType: hard +"es-shim-unscopables@npm:^1.0.2": + version: 1.1.0 + resolution: "es-shim-unscopables@npm:1.1.0" + dependencies: + hasown: ^2.0.2 + checksum: 33cfb1ebcb2f869f0bf528be1a8660b4fe8b6cec8fc641f330e508db2284b58ee2980fad6d0828882d22858c759c0806076427a3673b6daa60f753e3b558ee15 + languageName: node + linkType: hard + "es-to-primitive@npm:^1.2.1": version: 1.2.1 resolution: "es-to-primitive@npm:1.2.1" @@ -9443,6 +9816,17 @@ __metadata: languageName: node linkType: hard +"es-to-primitive@npm:^1.3.0": + version: 1.3.0 + resolution: "es-to-primitive@npm:1.3.0" + dependencies: + is-callable: ^1.2.7 + is-date-object: ^1.0.5 + is-symbol: ^1.0.4 + checksum: 966965880356486cd4d1fe9a523deda2084c81b3702d951212c098f5f2ee93605d1b7c1840062efb48a07d892641c7ed1bc194db563645c0dd2b919cb6d65b93 + languageName: node + linkType: hard + "es6-object-assign@npm:^1.1.0": version: 1.1.0 resolution: "es6-object-assign@npm:1.1.0" @@ -9842,6 +10226,34 @@ __metadata: languageName: node linkType: hard +"eslint-plugin-react@npm:^7.37.5": + version: 7.37.5 + resolution: "eslint-plugin-react@npm:7.37.5" + dependencies: + array-includes: ^3.1.8 + array.prototype.findlast: ^1.2.5 + array.prototype.flatmap: ^1.3.3 + array.prototype.tosorted: ^1.1.4 + doctrine: ^2.1.0 + es-iterator-helpers: ^1.2.1 + estraverse: ^5.3.0 + hasown: ^2.0.2 + jsx-ast-utils: ^2.4.1 || ^3.0.0 + minimatch: ^3.1.2 + object.entries: ^1.1.9 + object.fromentries: ^2.0.8 + object.values: ^1.2.1 + prop-types: ^15.8.1 + resolve: ^2.0.0-next.5 + semver: ^6.3.1 + string.prototype.matchall: ^4.0.12 + string.prototype.repeat: ^1.0.0 + peerDependencies: + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9.7 + checksum: 8675e7558e646e3c2fcb04bb60cfe416000b831ef0b363f0117838f5bfc799156113cb06058ad4d4b39fc730903b7360b05038da11093064ca37caf76b7cf2ca + languageName: node + linkType: hard + "eslint-plugin-storybook@npm:^0.6.12": version: 0.6.12 resolution: "eslint-plugin-storybook@npm:0.6.12" @@ -9856,6 +10268,19 @@ __metadata: languageName: node linkType: hard +"eslint-plugin-unused-imports@npm:^4.1.4": + version: 4.1.4 + resolution: "eslint-plugin-unused-imports@npm:4.1.4" + peerDependencies: + "@typescript-eslint/eslint-plugin": ^8.0.0-0 || ^7.0.0 || ^6.0.0 || ^5.0.0 + eslint: ^9.0.0 || ^8.0.0 + peerDependenciesMeta: + "@typescript-eslint/eslint-plugin": + optional: true + checksum: 1f4ce3e3972699345513840f3af1b783033dbc3a3e85b62ce12b3f6a89fd8c92afe46d0c00af40bacb14465445983ba0ccc326a6fd5132553061fb0e47bcba19 + languageName: node + linkType: hard + "eslint-scope@npm:5.1.1, eslint-scope@npm:^5.1.1": version: 5.1.1 resolution: "eslint-scope@npm:5.1.1" @@ -9890,6 +10315,13 @@ __metadata: languageName: node linkType: hard +"eslint-visitor-keys@npm:^4.2.1": + version: 4.2.1 + resolution: "eslint-visitor-keys@npm:4.2.1" + checksum: 3a77e3f99a49109f6fb2c5b7784bc78f9743b834d238cdba4d66c602c6b52f19ed7bcd0a5c5dbbeae3a8689fd785e76c001799f53d2228b278282cf9f699fff5 + languageName: node + linkType: hard + "eslint@npm:8.44.0": version: 8.44.0 resolution: "eslint@npm:8.44.0" @@ -10532,6 +10964,15 @@ __metadata: languageName: node linkType: hard +"for-each@npm:^0.3.5": + version: 0.3.5 + resolution: "for-each@npm:0.3.5" + dependencies: + is-callable: ^1.2.7 + checksum: 3c986d7e11f4381237cc98baa0a2f87eabe74719eee65ed7bed275163082b940ede19268c61d04c6260e0215983b12f8d885e3c8f9aa8c2113bf07c37051745c + languageName: node + linkType: hard + "foreground-child@npm:^2.0.0": version: 2.0.0 resolution: "foreground-child@npm:2.0.0" @@ -10773,6 +11214,20 @@ __metadata: languageName: node linkType: hard +"function.prototype.name@npm:^1.1.8": + version: 1.1.8 + resolution: "function.prototype.name@npm:1.1.8" + dependencies: + call-bind: ^1.0.8 + call-bound: ^1.0.3 + define-properties: ^1.2.1 + functions-have-names: ^1.2.3 + hasown: ^2.0.2 + is-callable: ^1.2.7 + checksum: 3a366535dc08b25f40a322efefa83b2da3cd0f6da41db7775f2339679120ef63b6c7e967266182609e655b8f0a8f65596ed21c7fd72ad8bd5621c2340edd4010 + languageName: node + linkType: hard + "functions-have-names@npm:^1.2.2, functions-have-names@npm:^1.2.3": version: 1.2.3 resolution: "functions-have-names@npm:1.2.3" @@ -10881,6 +11336,24 @@ __metadata: languageName: node linkType: hard +"get-intrinsic@npm:^1.2.5, get-intrinsic@npm:^1.2.6, get-intrinsic@npm:^1.2.7, get-intrinsic@npm:^1.3.0": + version: 1.3.0 + resolution: "get-intrinsic@npm:1.3.0" + dependencies: + call-bind-apply-helpers: ^1.0.2 + es-define-property: ^1.0.1 + es-errors: ^1.3.0 + es-object-atoms: ^1.1.1 + function-bind: ^1.1.2 + get-proto: ^1.0.1 + gopd: ^1.2.0 + has-symbols: ^1.1.0 + hasown: ^2.0.2 + math-intrinsics: ^1.1.0 + checksum: 301008e4482bb9a9cb49e132b88fee093bff373b4e6def8ba219b1e96b60158a6084f273ef5cafe832e42cd93462f4accb46a618d35fe59a2b507f2388c5b79d + languageName: node + linkType: hard + "get-nonce@npm:^1.0.0": version: 1.0.1 resolution: "get-nonce@npm:1.0.1" @@ -10909,6 +11382,16 @@ __metadata: languageName: node linkType: hard +"get-proto@npm:^1.0.0, get-proto@npm:^1.0.1": + version: 1.0.1 + resolution: "get-proto@npm:1.0.1" + dependencies: + dunder-proto: ^1.0.1 + es-object-atoms: ^1.0.0 + checksum: 4fc96afdb58ced9a67558698b91433e6b037aaa6f1493af77498d7c85b141382cf223c0e5946f334fb328ee85dfe6edd06d218eaf09556f4bc4ec6005d7f5f7b + languageName: node + linkType: hard + "get-stream@npm:^6.0.0, get-stream@npm:^6.0.1": version: 6.0.1 resolution: "get-stream@npm:6.0.1" @@ -10933,6 +11416,17 @@ __metadata: languageName: node linkType: hard +"get-symbol-description@npm:^1.1.0": + version: 1.1.0 + resolution: "get-symbol-description@npm:1.1.0" + dependencies: + call-bound: ^1.0.3 + es-errors: ^1.3.0 + get-intrinsic: ^1.2.6 + checksum: 655ed04db48ee65ef2ddbe096540d4405e79ba0a7f54225775fef43a7e2afcb93a77d141c5f05fdef0afce2eb93bcbfb3597142189d562ac167ff183582683cd + languageName: node + linkType: hard + "get-tsconfig@npm:^4.5.0": version: 4.6.2 resolution: "get-tsconfig@npm:4.6.2" @@ -11142,6 +11636,16 @@ __metadata: languageName: node linkType: hard +"globalthis@npm:^1.0.4": + version: 1.0.4 + resolution: "globalthis@npm:1.0.4" + dependencies: + define-properties: ^1.2.1 + gopd: ^1.0.1 + checksum: 39ad667ad9f01476474633a1834a70842041f70a55571e8dcef5fb957980a92da5022db5430fca8aecc5d47704ae30618c0bc877a579c70710c904e9ef06108a + languageName: node + linkType: hard + "globby@npm:^11.0.1, globby@npm:^11.0.2, globby@npm:^11.0.4, globby@npm:^11.1.0": version: 11.1.0 resolution: "globby@npm:11.1.0" @@ -11193,6 +11697,13 @@ __metadata: languageName: node linkType: hard +"gopd@npm:^1.2.0": + version: 1.2.0 + resolution: "gopd@npm:1.2.0" + checksum: cc6d8e655e360955bdccaca51a12a474268f95bb793fc3e1f2bdadb075f28bfd1fd988dab872daf77a61d78cbaf13744bc8727a17cfb1d150d76047d805375f3 + languageName: node + linkType: hard + "graceful-fs@npm:^4.1.11, graceful-fs@npm:^4.1.2, graceful-fs@npm:^4.1.6, graceful-fs@npm:^4.2.0, graceful-fs@npm:^4.2.11, graceful-fs@npm:^4.2.4, graceful-fs@npm:^4.2.6, graceful-fs@npm:^4.2.9": version: 4.2.11 resolution: "graceful-fs@npm:4.2.11" @@ -11304,6 +11815,15 @@ __metadata: languageName: node linkType: hard +"has-proto@npm:^1.2.0": + version: 1.2.0 + resolution: "has-proto@npm:1.2.0" + dependencies: + dunder-proto: ^1.0.0 + checksum: f55010cb94caa56308041d77967c72a02ffd71386b23f9afa8447e58bc92d49d15c19bf75173713468e92fe3fb1680b03b115da39c21c32c74886d1d50d3e7ff + languageName: node + linkType: hard + "has-symbols@npm:^1.0.2, has-symbols@npm:^1.0.3": version: 1.0.3 resolution: "has-symbols@npm:1.0.3" @@ -11311,6 +11831,13 @@ __metadata: languageName: node linkType: hard +"has-symbols@npm:^1.1.0": + version: 1.1.0 + resolution: "has-symbols@npm:1.1.0" + checksum: b2316c7302a0e8ba3aaba215f834e96c22c86f192e7310bdf689dd0e6999510c89b00fbc5742571507cebf25764d68c988b3a0da217369a73596191ac0ce694b + languageName: node + linkType: hard + "has-tostringtag@npm:^1.0.0": version: 1.0.0 resolution: "has-tostringtag@npm:1.0.0" @@ -11320,6 +11847,15 @@ __metadata: languageName: node linkType: hard +"has-tostringtag@npm:^1.0.2": + version: 1.0.2 + resolution: "has-tostringtag@npm:1.0.2" + dependencies: + has-symbols: ^1.0.3 + checksum: 999d60bb753ad714356b2c6c87b7fb74f32463b8426e159397da4bde5bca7e598ab1073f4d8d4deafac297f2eb311484cd177af242776bf05f0d11565680468d + languageName: node + linkType: hard + "has-unicode@npm:^2.0.1": version: 2.0.1 resolution: "has-unicode@npm:2.0.1" @@ -11357,7 +11893,7 @@ __metadata: languageName: node linkType: hard -"hasown@npm:^2.0.0": +"hasown@npm:^2.0.0, hasown@npm:^2.0.2": version: 2.0.2 resolution: "hasown@npm:2.0.2" dependencies: @@ -11620,6 +12156,7 @@ __metadata: "@types/react-dom": ^18.2.14 "@types/ws": ^8.5.9 "@typescript-eslint/eslint-plugin": ^6.0.0 + "@typescript-eslint/parser": ^8.38.0 async: ^3.2.4 autoprefixer: ^10.4.14 base64-arraybuffer: ^1.0.2 @@ -11633,7 +12170,9 @@ __metadata: eslint: 8.44.0 eslint-config-next: ^14.1.0 eslint-config-prettier: ^8.8.0 + eslint-plugin-react: ^7.37.5 eslint-plugin-storybook: ^0.6.12 + eslint-plugin-unused-imports: ^4.1.4 fast-xml-parser: ^4.2.5 fetch-cookie: ^2.1.0 fs: ^0.0.1-security @@ -11651,6 +12190,7 @@ __metadata: postcss-preset-mantine: ^1.7.0 postcss-simple-vars: ^7.0.1 prettier: ^3.0.3 + prettier-plugin-organize-imports: ^4.2.0 prettier-plugin-tailwindcss: ^0.4.0 prisma: ^5.21.1 prisma-json-types-generator: ^3.0.2 @@ -11912,6 +12452,17 @@ __metadata: languageName: node linkType: hard +"internal-slot@npm:^1.1.0": + version: 1.1.0 + resolution: "internal-slot@npm:1.1.0" + dependencies: + es-errors: ^1.3.0 + hasown: ^2.0.2 + side-channel: ^1.1.0 + checksum: 8e0991c2d048cc08dab0a91f573c99f6a4215075887517ea4fa32203ce8aea60fa03f95b177977fa27eb502e5168366d0f3e02c762b799691411d49900611861 + languageName: node + linkType: hard + "interpret@npm:^1.0.0": version: 1.4.0 resolution: "interpret@npm:1.4.0" @@ -11970,6 +12521,17 @@ __metadata: languageName: node linkType: hard +"is-array-buffer@npm:^3.0.4, is-array-buffer@npm:^3.0.5": + version: 3.0.5 + resolution: "is-array-buffer@npm:3.0.5" + dependencies: + call-bind: ^1.0.8 + call-bound: ^1.0.3 + get-intrinsic: ^1.2.6 + checksum: f137a2a6e77af682cdbffef1e633c140cf596f72321baf8bba0f4ef22685eb4339dde23dfe9e9ca430b5f961dee4d46577dcf12b792b68518c8449b134fb9156 + languageName: node + linkType: hard + "is-arrayish@npm:^0.2.1": version: 0.2.1 resolution: "is-arrayish@npm:0.2.1" @@ -12002,6 +12564,15 @@ __metadata: languageName: node linkType: hard +"is-bigint@npm:^1.1.0": + version: 1.1.0 + resolution: "is-bigint@npm:1.1.0" + dependencies: + has-bigints: ^1.0.2 + checksum: ee1544f0e664f253306786ed1dce494b8cf242ef415d6375d8545b4d8816b0f054bd9f948a8988ae2c6325d1c28260dd02978236b2f7b8fb70dfc4838a6c9fa7 + languageName: node + linkType: hard + "is-binary-path@npm:~2.1.0": version: 2.1.0 resolution: "is-binary-path@npm:2.1.0" @@ -12021,6 +12592,16 @@ __metadata: languageName: node linkType: hard +"is-boolean-object@npm:^1.2.1": + version: 1.2.2 + resolution: "is-boolean-object@npm:1.2.2" + dependencies: + call-bound: ^1.0.3 + has-tostringtag: ^1.0.2 + checksum: 0415b181e8f1bfd5d3f8a20f8108e64d372a72131674eea9c2923f39d065b6ad08d654765553bdbffbd92c3746f1007986c34087db1bd89a31f71be8359ccdaa + languageName: node + linkType: hard + "is-callable@npm:^1.1.3, is-callable@npm:^1.1.4, is-callable@npm:^1.2.7": version: 1.2.7 resolution: "is-callable@npm:1.2.7" @@ -12046,6 +12627,17 @@ __metadata: languageName: node linkType: hard +"is-data-view@npm:^1.0.1, is-data-view@npm:^1.0.2": + version: 1.0.2 + resolution: "is-data-view@npm:1.0.2" + dependencies: + call-bound: ^1.0.2 + get-intrinsic: ^1.2.6 + is-typed-array: ^1.1.13 + checksum: 31600dd19932eae7fd304567e465709ffbfa17fa236427c9c864148e1b54eb2146357fcf3aed9b686dee13c217e1bb5a649cb3b9c479e1004c0648e9febde1b2 + languageName: node + linkType: hard + "is-date-object@npm:^1.0.1, is-date-object@npm:^1.0.5": version: 1.0.5 resolution: "is-date-object@npm:1.0.5" @@ -12055,6 +12647,16 @@ __metadata: languageName: node linkType: hard +"is-date-object@npm:^1.1.0": + version: 1.1.0 + resolution: "is-date-object@npm:1.1.0" + dependencies: + call-bound: ^1.0.2 + has-tostringtag: ^1.0.2 + checksum: d6c36ab9d20971d65f3fc64cef940d57a4900a2ac85fb488a46d164c2072a33da1cb51eefcc039e3e5c208acbce343d3480b84ab5ff0983f617512da2742562a + languageName: node + linkType: hard + "is-deflate@npm:^1.0.0": version: 1.0.0 resolution: "is-deflate@npm:1.0.0" @@ -12103,6 +12705,15 @@ __metadata: languageName: node linkType: hard +"is-finalizationregistry@npm:^1.1.0": + version: 1.1.1 + resolution: "is-finalizationregistry@npm:1.1.1" + dependencies: + call-bound: ^1.0.3 + checksum: 38c646c506e64ead41a36c182d91639833311970b6b6c6268634f109eef0a1a9d2f1f2e499ef4cb43c744a13443c4cdd2f0812d5afdcee5e9b65b72b28c48557 + languageName: node + linkType: hard + "is-fullwidth-code-point@npm:^3.0.0": version: 3.0.0 resolution: "is-fullwidth-code-point@npm:3.0.0" @@ -12183,6 +12794,13 @@ __metadata: languageName: node linkType: hard +"is-map@npm:^2.0.3": + version: 2.0.3 + resolution: "is-map@npm:2.0.3" + checksum: e6ce5f6380f32b141b3153e6ba9074892bbbbd655e92e7ba5ff195239777e767a976dcd4e22f864accaf30e53ebf961ab1995424aef91af68788f0591b7396cc + languageName: node + linkType: hard + "is-nan@npm:^1.2.1": version: 1.3.2 resolution: "is-nan@npm:1.3.2" @@ -12200,6 +12818,13 @@ __metadata: languageName: node linkType: hard +"is-negative-zero@npm:^2.0.3": + version: 2.0.3 + resolution: "is-negative-zero@npm:2.0.3" + checksum: c1e6b23d2070c0539d7b36022d5a94407132411d01aba39ec549af824231f3804b1aea90b5e4e58e807a65d23ceb538ed6e355ce76b267bdd86edb757ffcbdcd + languageName: node + linkType: hard + "is-number-object@npm:^1.0.4": version: 1.0.7 resolution: "is-number-object@npm:1.0.7" @@ -12209,6 +12834,16 @@ __metadata: languageName: node linkType: hard +"is-number-object@npm:^1.1.1": + version: 1.1.1 + resolution: "is-number-object@npm:1.1.1" + dependencies: + call-bound: ^1.0.3 + has-tostringtag: ^1.0.2 + checksum: 6517f0a0e8c4b197a21afb45cd3053dc711e79d45d8878aa3565de38d0102b130ca8732485122c7b336e98c27dacd5236854e3e6526e0eb30cae64956535662f + languageName: node + linkType: hard + "is-number@npm:^7.0.0": version: 7.0.0 resolution: "is-number@npm:7.0.0" @@ -12272,6 +12907,18 @@ __metadata: languageName: node linkType: hard +"is-regex@npm:^1.2.1": + version: 1.2.1 + resolution: "is-regex@npm:1.2.1" + dependencies: + call-bound: ^1.0.2 + gopd: ^1.2.0 + has-tostringtag: ^1.0.2 + hasown: ^2.0.2 + checksum: 99ee0b6d30ef1bb61fa4b22fae7056c6c9b3c693803c0c284ff7a8570f83075a7d38cda53b06b7996d441215c27895ea5d1af62124562e13d91b3dbec41a5e13 + languageName: node + linkType: hard + "is-set@npm:^2.0.1, is-set@npm:^2.0.2": version: 2.0.2 resolution: "is-set@npm:2.0.2" @@ -12279,6 +12926,13 @@ __metadata: languageName: node linkType: hard +"is-set@npm:^2.0.3": + version: 2.0.3 + resolution: "is-set@npm:2.0.3" + checksum: 36e3f8c44bdbe9496c9689762cc4110f6a6a12b767c5d74c0398176aa2678d4467e3bf07595556f2dba897751bde1422480212b97d973c7b08a343100b0c0dfe + languageName: node + linkType: hard + "is-shared-array-buffer@npm:^1.0.2": version: 1.0.2 resolution: "is-shared-array-buffer@npm:1.0.2" @@ -12288,6 +12942,15 @@ __metadata: languageName: node linkType: hard +"is-shared-array-buffer@npm:^1.0.4": + version: 1.0.4 + resolution: "is-shared-array-buffer@npm:1.0.4" + dependencies: + call-bound: ^1.0.3 + checksum: 1611fedc175796eebb88f4dfc393dd969a4a8e6c69cadaff424ee9d4464f9f026399a5f84a90f7c62d6d7ee04e3626a912149726de102b0bd6c1ee6a9868fa5a + languageName: node + linkType: hard + "is-stream@npm:^2, is-stream@npm:^2.0.0": version: 2.0.1 resolution: "is-stream@npm:2.0.1" @@ -12311,6 +12974,16 @@ __metadata: languageName: node linkType: hard +"is-string@npm:^1.1.1": + version: 1.1.1 + resolution: "is-string@npm:1.1.1" + dependencies: + call-bound: ^1.0.3 + has-tostringtag: ^1.0.2 + checksum: 2eeaaff605250f5e836ea3500d33d1a5d3aa98d008641d9d42fb941e929ffd25972326c2ef912987e54c95b6f10416281aaf1b35cdf81992cfb7524c5de8e193 + languageName: node + linkType: hard + "is-symbol@npm:^1.0.2, is-symbol@npm:^1.0.3": version: 1.0.4 resolution: "is-symbol@npm:1.0.4" @@ -12320,6 +12993,17 @@ __metadata: languageName: node linkType: hard +"is-symbol@npm:^1.0.4, is-symbol@npm:^1.1.1": + version: 1.1.1 + resolution: "is-symbol@npm:1.1.1" + dependencies: + call-bound: ^1.0.2 + has-symbols: ^1.1.0 + safe-regex-test: ^1.1.0 + checksum: bfafacf037af6f3c9d68820b74be4ae8a736a658a3344072df9642a090016e281797ba8edbeb1c83425879aae55d1cb1f30b38bf132d703692b2570367358032 + languageName: node + linkType: hard + "is-typed-array@npm:^1.1.10, is-typed-array@npm:^1.1.3, is-typed-array@npm:^1.1.9": version: 1.1.10 resolution: "is-typed-array@npm:1.1.10" @@ -12342,6 +13026,15 @@ __metadata: languageName: node linkType: hard +"is-typed-array@npm:^1.1.13, is-typed-array@npm:^1.1.14, is-typed-array@npm:^1.1.15": + version: 1.1.15 + resolution: "is-typed-array@npm:1.1.15" + dependencies: + which-typed-array: ^1.1.16 + checksum: ea7cfc46c282f805d19a9ab2084fd4542fed99219ee9dbfbc26284728bd713a51eac66daa74eca00ae0a43b61322920ba334793607dc39907465913e921e0892 + languageName: node + linkType: hard + "is-unicode-supported@npm:^0.1.0": version: 0.1.0 resolution: "is-unicode-supported@npm:0.1.0" @@ -12356,6 +13049,13 @@ __metadata: languageName: node linkType: hard +"is-weakmap@npm:^2.0.2": + version: 2.0.2 + resolution: "is-weakmap@npm:2.0.2" + checksum: f36aef758b46990e0d3c37269619c0a08c5b29428c0bb11ecba7f75203442d6c7801239c2f31314bc79199217ef08263787f3837d9e22610ad1da62970d6616d + languageName: node + linkType: hard + "is-weakref@npm:^1.0.2": version: 1.0.2 resolution: "is-weakref@npm:1.0.2" @@ -12365,6 +13065,15 @@ __metadata: languageName: node linkType: hard +"is-weakref@npm:^1.1.1": + version: 1.1.1 + resolution: "is-weakref@npm:1.1.1" + dependencies: + call-bound: ^1.0.3 + checksum: 1769b9aed5d435a3a989ffc18fc4ad1947d2acdaf530eb2bd6af844861b545047ea51102f75901f89043bed0267ed61d914ee21e6e8b9aa734ec201cdfc0726f + languageName: node + linkType: hard + "is-weakset@npm:^2.0.1": version: 2.0.2 resolution: "is-weakset@npm:2.0.2" @@ -12375,6 +13084,16 @@ __metadata: languageName: node linkType: hard +"is-weakset@npm:^2.0.3": + version: 2.0.4 + resolution: "is-weakset@npm:2.0.4" + dependencies: + call-bound: ^1.0.3 + get-intrinsic: ^1.2.6 + checksum: 5c6c8415a06065d78bdd5e3a771483aa1cd928df19138aa73c4c51333226f203f22117b4325df55cc8b3085a6716870a320c2d757efee92d7a7091a039082041 + languageName: node + linkType: hard + "is-wsl@npm:^2.1.1, is-wsl@npm:^2.2.0": version: 2.2.0 resolution: "is-wsl@npm:2.2.0" @@ -12476,6 +13195,20 @@ __metadata: languageName: node linkType: hard +"iterator.prototype@npm:^1.1.4": + version: 1.1.5 + resolution: "iterator.prototype@npm:1.1.5" + dependencies: + define-data-property: ^1.1.4 + es-object-atoms: ^1.0.0 + get-intrinsic: ^1.2.6 + get-proto: ^1.0.0 + has-symbols: ^1.1.0 + set-function-name: ^2.0.2 + checksum: 7db23c42629ba4790e6e15f78b555f41dbd08818c85af306988364bd19d86716a1187cb333444f3a0036bfc078a0e9cb7ec67fef3a61662736d16410d7f77869 + languageName: node + linkType: hard + "jackspeak@npm:^2.0.3": version: 2.2.1 resolution: "jackspeak@npm:2.2.1" @@ -13295,6 +14028,13 @@ __metadata: languageName: node linkType: hard +"math-intrinsics@npm:^1.1.0": + version: 1.1.0 + resolution: "math-intrinsics@npm:1.1.0" + checksum: 0e513b29d120f478c85a70f49da0b8b19bc638975eca466f2eeae0071f3ad00454c621bf66e16dd435896c208e719fc91ad79bbfba4e400fe0b372e7c1c9c9a2 + languageName: node + linkType: hard + "md5.js@npm:^1.3.4": version: 1.3.5 resolution: "md5.js@npm:1.3.5" @@ -14196,6 +14936,13 @@ __metadata: languageName: node linkType: hard +"object-inspect@npm:^1.13.3, object-inspect@npm:^1.13.4": + version: 1.13.4 + resolution: "object-inspect@npm:1.13.4" + checksum: 582810c6a8d2ef988ea0a39e69e115a138dad8f42dd445383b394877e5816eb4268489f316a6f74ee9c4e0a984b3eab1028e3e79d62b1ed67c726661d55c7a8b + languageName: node + linkType: hard + "object-is@npm:^1.0.1, object-is@npm:^1.1.5": version: 1.1.5 resolution: "object-is@npm:1.1.5" @@ -14225,6 +14972,20 @@ __metadata: languageName: node linkType: hard +"object.assign@npm:^4.1.7": + version: 4.1.7 + resolution: "object.assign@npm:4.1.7" + dependencies: + call-bind: ^1.0.8 + call-bound: ^1.0.3 + define-properties: ^1.2.1 + es-object-atoms: ^1.0.0 + has-symbols: ^1.1.0 + object-keys: ^1.1.1 + checksum: 60e07d2651cf4f5528c485f1aa4dbded9b384c47d80e8187cefd11320abb1aebebf78df5483451dfa549059f8281c21f7b4bf7d19e9e5e97d8d617df0df298de + languageName: node + linkType: hard + "object.entries@npm:^1.1.6": version: 1.1.6 resolution: "object.entries@npm:1.1.6" @@ -14236,6 +14997,18 @@ __metadata: languageName: node linkType: hard +"object.entries@npm:^1.1.9": + version: 1.1.9 + resolution: "object.entries@npm:1.1.9" + dependencies: + call-bind: ^1.0.8 + call-bound: ^1.0.4 + define-properties: ^1.2.1 + es-object-atoms: ^1.1.1 + checksum: 0ab2ef331c4d6a53ff600a5d69182948d453107c3a1f7fd91bc29d387538c2aba21d04949a74f57c21907208b1f6fb175567fd1f39f1a7a4046ba1bca762fb41 + languageName: node + linkType: hard + "object.fromentries@npm:^2.0.6": version: 2.0.6 resolution: "object.fromentries@npm:2.0.6" @@ -14247,6 +15020,18 @@ __metadata: languageName: node linkType: hard +"object.fromentries@npm:^2.0.8": + version: 2.0.8 + resolution: "object.fromentries@npm:2.0.8" + dependencies: + call-bind: ^1.0.7 + define-properties: ^1.2.1 + es-abstract: ^1.23.2 + es-object-atoms: ^1.0.0 + checksum: 29b2207a2db2782d7ced83f93b3ff5d425f901945f3665ffda1821e30a7253cd1fd6b891a64279976098137ddfa883d748787a6fea53ecdb51f8df8b8cec0ae1 + languageName: node + linkType: hard + "object.groupby@npm:^1.0.0": version: 1.0.1 resolution: "object.groupby@npm:1.0.1" @@ -14280,6 +15065,18 @@ __metadata: languageName: node linkType: hard +"object.values@npm:^1.2.1": + version: 1.2.1 + resolution: "object.values@npm:1.2.1" + dependencies: + call-bind: ^1.0.8 + call-bound: ^1.0.3 + define-properties: ^1.2.1 + es-object-atoms: ^1.0.0 + checksum: f9b9a2a125ccf8ded29414d7c056ae0d187b833ee74919821fc60d7e216626db220d9cb3cf33f965c84aaaa96133626ca13b80f3c158b673976dc8cfcfcd26bb + languageName: node + linkType: hard + "objectorarray@npm:^1.0.5": version: 1.0.5 resolution: "objectorarray@npm:1.0.5" @@ -14420,6 +15217,17 @@ __metadata: languageName: node linkType: hard +"own-keys@npm:^1.0.1": + version: 1.0.1 + resolution: "own-keys@npm:1.0.1" + dependencies: + get-intrinsic: ^1.2.6 + object-keys: ^1.1.1 + safe-push-apply: ^1.0.0 + checksum: cc9dd7d85c4ccfbe8109fce307d581ac7ede7b26de892b537873fbce2dc6a206d89aea0630dbb98e47ce0873517cefeaa7be15fcf94aaf4764a3b34b474a5b61 + languageName: node + linkType: hard + "p-finally@npm:^1.0.0": version: 1.0.0 resolution: "p-finally@npm:1.0.0" @@ -14922,6 +15730,13 @@ __metadata: languageName: node linkType: hard +"possible-typed-array-names@npm:^1.0.0": + version: 1.1.0 + resolution: "possible-typed-array-names@npm:1.1.0" + checksum: cfcd4f05264eee8fd184cd4897a17890561d1d473434b43ab66ad3673d9c9128981ec01e0cb1d65a52cd6b1eebfb2eae1e53e39b2e0eca86afc823ede7a4f41b + languageName: node + linkType: hard + "postcss-import@npm:^15.1.0": version: 15.1.0 resolution: "postcss-import@npm:15.1.0" @@ -15221,6 +16036,20 @@ __metadata: languageName: node linkType: hard +"prettier-plugin-organize-imports@npm:^4.2.0": + version: 4.2.0 + resolution: "prettier-plugin-organize-imports@npm:4.2.0" + peerDependencies: + prettier: ">=2.0" + typescript: ">=2.9" + vue-tsc: ^2.1.0 || 3 + peerDependenciesMeta: + vue-tsc: + optional: true + checksum: 566484cb05b4458d9e919be268a065d01bb04abdc3a1ec1191017d91e4e4d2c75284e3c3042a704ed08b7820035322753f07d4e0301b69951ff654897811de4b + languageName: node + linkType: hard + "prettier-plugin-tailwindcss@npm:^0.4.0": version: 0.4.0 resolution: "prettier-plugin-tailwindcss@npm:0.4.0" @@ -16008,6 +16837,22 @@ __metadata: languageName: node linkType: hard +"reflect.getprototypeof@npm:^1.0.6, reflect.getprototypeof@npm:^1.0.9": + version: 1.0.10 + resolution: "reflect.getprototypeof@npm:1.0.10" + dependencies: + call-bind: ^1.0.8 + define-properties: ^1.2.1 + es-abstract: ^1.23.9 + es-errors: ^1.3.0 + es-object-atoms: ^1.0.0 + get-intrinsic: ^1.2.7 + get-proto: ^1.0.1 + which-builtin-type: ^1.2.1 + checksum: ccc5debeb66125e276ae73909cecb27e47c35d9bb79d9cc8d8d055f008c58010ab8cb401299786e505e4aab733a64cba9daf5f312a58e96a43df66adad221870 + languageName: node + linkType: hard + "regenerate-unicode-properties@npm:^10.1.0": version: 10.1.0 resolution: "regenerate-unicode-properties@npm:10.1.0" @@ -16076,6 +16921,20 @@ __metadata: languageName: node linkType: hard +"regexp.prototype.flags@npm:^1.5.3, regexp.prototype.flags@npm:^1.5.4": + version: 1.5.4 + resolution: "regexp.prototype.flags@npm:1.5.4" + dependencies: + call-bind: ^1.0.8 + define-properties: ^1.2.1 + es-errors: ^1.3.0 + get-proto: ^1.0.1 + gopd: ^1.2.0 + set-function-name: ^2.0.2 + checksum: 18cb667e56cb328d2dda569d7f04e3ea78f2683135b866d606538cf7b1d4271f7f749f09608c877527799e6cf350e531368f3c7a20ccd1bb41048a48926bdeeb + languageName: node + linkType: hard + "regexpu-core@npm:^5.3.1": version: 5.3.2 resolution: "regexpu-core@npm:5.3.2" @@ -16270,6 +17129,19 @@ __metadata: languageName: node linkType: hard +"resolve@npm:^2.0.0-next.5": + version: 2.0.0-next.5 + resolution: "resolve@npm:2.0.0-next.5" + dependencies: + is-core-module: ^2.13.0 + path-parse: ^1.0.7 + supports-preserve-symlinks-flag: ^1.0.0 + bin: + resolve: bin/resolve + checksum: a73ac69a1c4bd34c56b213d91f5b17ce390688fdb4a1a96ed3025cc7e08e7bfb90b3a06fcce461780cb0b589c958afcb0080ab802c71c01a7ecc8c64feafc89f + languageName: node + linkType: hard + "resolve@patch:resolve@1.22.8#~builtin, resolve@patch:resolve@^1.22.8#~builtin": version: 1.22.8 resolution: "resolve@patch:resolve@npm%3A1.22.8#~builtin::version=1.22.8&hash=c3c19d" @@ -16322,6 +17194,19 @@ __metadata: languageName: node linkType: hard +"resolve@patch:resolve@^2.0.0-next.5#~builtin": + version: 2.0.0-next.5 + resolution: "resolve@patch:resolve@npm%3A2.0.0-next.5#~builtin::version=2.0.0-next.5&hash=c3c19d" + dependencies: + is-core-module: ^2.13.0 + path-parse: ^1.0.7 + supports-preserve-symlinks-flag: ^1.0.0 + bin: + resolve: bin/resolve + checksum: 064d09c1808d0c51b3d90b5d27e198e6d0c5dad0eb57065fd40803d6a20553e5398b07f76739d69cbabc12547058bec6b32106ea66622375fb0d7e8fca6a846c + languageName: node + linkType: hard + "restore-cursor@npm:^3.1.0": version: 3.1.0 resolution: "restore-cursor@npm:3.1.0" @@ -16472,6 +17357,19 @@ __metadata: languageName: node linkType: hard +"safe-array-concat@npm:^1.1.3": + version: 1.1.3 + resolution: "safe-array-concat@npm:1.1.3" + dependencies: + call-bind: ^1.0.8 + call-bound: ^1.0.2 + get-intrinsic: ^1.2.6 + has-symbols: ^1.1.0 + isarray: ^2.0.5 + checksum: 00f6a68140e67e813f3ad5e73e6dedcf3e42a9fa01f04d44b0d3f7b1f4b257af876832a9bfc82ac76f307e8a6cc652e3cf95876048a26cbec451847cf6ae3707 + languageName: node + linkType: hard + "safe-buffer@npm:5.1.1": version: 5.1.1 resolution: "safe-buffer@npm:5.1.1" @@ -16493,6 +17391,16 @@ __metadata: languageName: node linkType: hard +"safe-push-apply@npm:^1.0.0": + version: 1.0.0 + resolution: "safe-push-apply@npm:1.0.0" + dependencies: + es-errors: ^1.3.0 + isarray: ^2.0.5 + checksum: 8c11cbee6dc8ff5cc0f3d95eef7052e43494591384015902e4292aef4ae9e539908288520ed97179cee17d6ffb450fe5f05a46ce7a1749685f7524fd568ab5db + languageName: node + linkType: hard + "safe-regex-test@npm:^1.0.0": version: 1.0.0 resolution: "safe-regex-test@npm:1.0.0" @@ -16504,6 +17412,17 @@ __metadata: languageName: node linkType: hard +"safe-regex-test@npm:^1.1.0": + version: 1.1.0 + resolution: "safe-regex-test@npm:1.1.0" + dependencies: + call-bound: ^1.0.2 + es-errors: ^1.3.0 + is-regex: ^1.2.1 + checksum: 3c809abeb81977c9ed6c869c83aca6873ea0f3ab0f806b8edbba5582d51713f8a6e9757d24d2b4b088f563801475ea946c8e77e7713e8c65cdd02305b6caedab + languageName: node + linkType: hard + "safer-buffer@npm:>= 2.1.2 < 3, safer-buffer@npm:>= 2.1.2 < 3.0.0, safer-buffer@npm:^2.1.0": version: 2.1.2 resolution: "safer-buffer@npm:2.1.2" @@ -16785,7 +17704,7 @@ __metadata: languageName: node linkType: hard -"set-function-length@npm:^1.2.1": +"set-function-length@npm:^1.2.1, set-function-length@npm:^1.2.2": version: 1.2.2 resolution: "set-function-length@npm:1.2.2" dependencies: @@ -16810,6 +17729,29 @@ __metadata: languageName: node linkType: hard +"set-function-name@npm:^2.0.2": + version: 2.0.2 + resolution: "set-function-name@npm: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 + checksum: d6229a71527fd0404399fc6227e0ff0652800362510822a291925c9d7b48a1ca1a468b11b281471c34cd5a2da0db4f5d7ff315a61d26655e77f6e971e6d0c80f + languageName: node + linkType: hard + +"set-proto@npm:^1.0.0": + version: 1.0.0 + resolution: "set-proto@npm:1.0.0" + dependencies: + dunder-proto: ^1.0.1 + es-errors: ^1.3.0 + es-object-atoms: ^1.0.0 + checksum: ec27cbbe334598547e99024403e96da32aca3e530583e4dba7f5db1c43cbc4affa9adfbd77c7b2c210b9b8b2e7b2e600bad2a6c44fd62e804d8233f96bbb62f4 + languageName: node + linkType: hard + "setimmediate@npm:^1.0.4": version: 1.0.5 resolution: "setimmediate@npm:1.0.5" @@ -16898,6 +17840,41 @@ __metadata: languageName: node linkType: hard +"side-channel-list@npm:^1.0.0": + version: 1.0.0 + resolution: "side-channel-list@npm:1.0.0" + dependencies: + es-errors: ^1.3.0 + object-inspect: ^1.13.3 + checksum: 603b928997abd21c5a5f02ae6b9cc36b72e3176ad6827fab0417ead74580cc4fb4d5c7d0a8a2ff4ead34d0f9e35701ed7a41853dac8a6d1a664fcce1a044f86f + languageName: node + linkType: hard + +"side-channel-map@npm:^1.0.1": + version: 1.0.1 + resolution: "side-channel-map@npm:1.0.1" + dependencies: + call-bound: ^1.0.2 + es-errors: ^1.3.0 + get-intrinsic: ^1.2.5 + object-inspect: ^1.13.3 + checksum: 42501371cdf71f4ccbbc9c9e2eb00aaaab80a4c1c429d5e8da713fd4d39ef3b8d4a4b37ed4f275798a65260a551a7131fd87fe67e922dba4ac18586d6aab8b06 + languageName: node + linkType: hard + +"side-channel-weakmap@npm:^1.0.2": + version: 1.0.2 + resolution: "side-channel-weakmap@npm:1.0.2" + dependencies: + call-bound: ^1.0.2 + es-errors: ^1.3.0 + get-intrinsic: ^1.2.5 + object-inspect: ^1.13.3 + side-channel-map: ^1.0.1 + checksum: a815c89bc78c5723c714ea1a77c938377ea710af20d4fb886d362b0d1f8ac73a17816a5f6640f354017d7e292a43da9c5e876c22145bac00b76cfb3468001736 + languageName: node + linkType: hard + "side-channel@npm:^1.0.4": version: 1.0.4 resolution: "side-channel@npm:1.0.4" @@ -16921,6 +17898,19 @@ __metadata: languageName: node linkType: hard +"side-channel@npm:^1.1.0": + version: 1.1.0 + resolution: "side-channel@npm:1.1.0" + dependencies: + es-errors: ^1.3.0 + object-inspect: ^1.13.3 + side-channel-list: ^1.0.0 + side-channel-map: ^1.0.1 + side-channel-weakmap: ^1.0.2 + checksum: bf73d6d6682034603eb8e99c63b50155017ed78a522d27c2acec0388a792c3ede3238b878b953a08157093b85d05797217d270b7666ba1f111345fbe933380ff + languageName: node + linkType: hard + "signal-exit@npm:^3.0.0, signal-exit@npm:^3.0.2, signal-exit@npm:^3.0.3, signal-exit@npm:^3.0.7": version: 3.0.7 resolution: "signal-exit@npm:3.0.7" @@ -17223,6 +18213,16 @@ __metadata: languageName: node linkType: hard +"stop-iteration-iterator@npm:^1.1.0": + version: 1.1.0 + resolution: "stop-iteration-iterator@npm:1.1.0" + dependencies: + es-errors: ^1.3.0 + internal-slot: ^1.1.0 + checksum: be944489d8829fb3bdec1a1cc4a2142c6b6eb317305eeace1ece978d286d6997778afa1ae8cb3bd70e2b274b9aa8c69f93febb1e15b94b1359b11058f9d3c3a1 + languageName: node + linkType: hard + "store2@npm:^2.14.2": version: 2.14.2 resolution: "store2@npm:2.14.2" @@ -17328,6 +18328,27 @@ __metadata: languageName: node linkType: hard +"string.prototype.matchall@npm:^4.0.12": + version: 4.0.12 + resolution: "string.prototype.matchall@npm:4.0.12" + dependencies: + call-bind: ^1.0.8 + call-bound: ^1.0.3 + define-properties: ^1.2.1 + es-abstract: ^1.23.6 + es-errors: ^1.3.0 + es-object-atoms: ^1.0.0 + get-intrinsic: ^1.2.6 + gopd: ^1.2.0 + has-symbols: ^1.1.0 + internal-slot: ^1.1.0 + regexp.prototype.flags: ^1.5.3 + set-function-name: ^2.0.2 + side-channel: ^1.1.0 + checksum: 98a09d6af91bfc6ee25556f3d7cd6646d02f5f08bda55d45528ed273d266d55a71af7291fe3fc76854deffb9168cc1a917d0b07a7d5a178c7e9537c99e6d2b57 + languageName: node + linkType: hard + "string.prototype.matchall@npm:^4.0.8": version: 4.0.8 resolution: "string.prototype.matchall@npm:4.0.8" @@ -17344,6 +18365,31 @@ __metadata: languageName: node linkType: hard +"string.prototype.repeat@npm:^1.0.0": + version: 1.0.0 + resolution: "string.prototype.repeat@npm:1.0.0" + dependencies: + define-properties: ^1.1.3 + es-abstract: ^1.17.5 + checksum: 95dfc514ed7f328d80a066dabbfbbb1615c3e51490351085409db2eb7cbfed7ea29fdadaf277647fbf9f4a1e10e6dd9e95e78c0fd2c4e6bb6723ea6e59401004 + languageName: node + linkType: hard + +"string.prototype.trim@npm:^1.2.10": + version: 1.2.10 + resolution: "string.prototype.trim@npm:1.2.10" + dependencies: + call-bind: ^1.0.8 + call-bound: ^1.0.2 + define-data-property: ^1.1.4 + define-properties: ^1.2.1 + es-abstract: ^1.23.5 + es-object-atoms: ^1.0.0 + has-property-descriptors: ^1.0.2 + checksum: 87659cd8561237b6c69f5376328fda934693aedde17bb7a2c57008e9d9ff992d0c253a391c7d8d50114e0e49ff7daf86a362f7961cf92f7564cd01342ca2e385 + languageName: node + linkType: hard + "string.prototype.trim@npm:^1.2.7": version: 1.2.7 resolution: "string.prototype.trim@npm:1.2.7" @@ -17388,6 +18434,18 @@ __metadata: languageName: node linkType: hard +"string.prototype.trimend@npm:^1.0.9": + version: 1.0.9 + resolution: "string.prototype.trimend@npm:1.0.9" + dependencies: + call-bind: ^1.0.8 + call-bound: ^1.0.2 + define-properties: ^1.2.1 + es-object-atoms: ^1.0.0 + checksum: cb86f639f41d791a43627784be2175daa9ca3259c7cb83e7a207a729909b74f2ea0ec5d85de5761e6835e5f443e9420c6ff3f63a845378e4a61dd793177bc287 + languageName: node + linkType: hard + "string.prototype.trimstart@npm:^1.0.6": version: 1.0.6 resolution: "string.prototype.trimstart@npm:1.0.6" @@ -17410,6 +18468,17 @@ __metadata: languageName: node linkType: hard +"string.prototype.trimstart@npm:^1.0.8": + version: 1.0.8 + resolution: "string.prototype.trimstart@npm:1.0.8" + dependencies: + call-bind: ^1.0.7 + define-properties: ^1.2.1 + es-object-atoms: ^1.0.0 + checksum: df1007a7f580a49d692375d996521dc14fd103acda7f3034b3c558a60b82beeed3a64fa91e494e164581793a8ab0ae2f59578a49896a7af6583c1f20472bce96 + languageName: node + linkType: hard + "string_decoder@npm:^1.1.1, string_decoder@npm:^1.3.0": version: 1.3.0 resolution: "string_decoder@npm:1.3.0" @@ -17939,6 +19008,15 @@ __metadata: languageName: node linkType: hard +"ts-api-utils@npm:^2.1.0": + version: 2.1.0 + resolution: "ts-api-utils@npm:2.1.0" + peerDependencies: + typescript: ">=4.8.4" + checksum: 5b1ef89105654d93d67582308bd8dfe4bbf6874fccbcaa729b08fbb00a940fd4c691ca6d0d2b18c3c70878d9a7e503421b7cc473dbc3d0d54258b86401d4b15d + languageName: node + linkType: hard + "ts-dedent@npm:^2.0.0, ts-dedent@npm:^2.2.0": version: 2.2.0 resolution: "ts-dedent@npm:2.2.0" @@ -18229,6 +19307,17 @@ __metadata: languageName: node linkType: hard +"typed-array-buffer@npm:^1.0.3": + version: 1.0.3 + resolution: "typed-array-buffer@npm:1.0.3" + dependencies: + call-bound: ^1.0.3 + es-errors: ^1.3.0 + is-typed-array: ^1.1.14 + checksum: 3fb91f0735fb413b2bbaaca9fabe7b8fc14a3fa5a5a7546bab8a57e755be0e3788d893195ad9c2b842620592de0e68d4c077d4c2c41f04ec25b8b5bb82fa9a80 + languageName: node + linkType: hard + "typed-array-byte-length@npm:^1.0.0": version: 1.0.0 resolution: "typed-array-byte-length@npm:1.0.0" @@ -18241,6 +19330,19 @@ __metadata: languageName: node linkType: hard +"typed-array-byte-length@npm:^1.0.3": + version: 1.0.3 + resolution: "typed-array-byte-length@npm:1.0.3" + dependencies: + call-bind: ^1.0.8 + for-each: ^0.3.3 + gopd: ^1.2.0 + has-proto: ^1.2.0 + is-typed-array: ^1.1.14 + checksum: cda9352178ebeab073ad6499b03e938ebc30c4efaea63a26839d89c4b1da9d2640b0d937fc2bd1f049eb0a38def6fbe8a061b601292ae62fe079a410ce56e3a6 + languageName: node + linkType: hard + "typed-array-byte-offset@npm:^1.0.0": version: 1.0.0 resolution: "typed-array-byte-offset@npm:1.0.0" @@ -18254,6 +19356,21 @@ __metadata: languageName: node linkType: hard +"typed-array-byte-offset@npm:^1.0.4": + version: 1.0.4 + resolution: "typed-array-byte-offset@npm:1.0.4" + dependencies: + available-typed-arrays: ^1.0.7 + call-bind: ^1.0.8 + for-each: ^0.3.3 + gopd: ^1.2.0 + has-proto: ^1.2.0 + is-typed-array: ^1.1.15 + reflect.getprototypeof: ^1.0.9 + checksum: 670b7e6bb1d3c2cf6160f27f9f529e60c3f6f9611c67e47ca70ca5cfa24ad95415694c49d1dbfeda016d3372cab7dfc9e38c7b3e1bb8d692cae13a63d3c144d7 + languageName: node + linkType: hard + "typed-array-length@npm:^1.0.4": version: 1.0.4 resolution: "typed-array-length@npm:1.0.4" @@ -18265,6 +19382,20 @@ __metadata: languageName: node linkType: hard +"typed-array-length@npm:^1.0.7": + version: 1.0.7 + resolution: "typed-array-length@npm:1.0.7" + dependencies: + call-bind: ^1.0.7 + 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.6 + checksum: deb1a4ffdb27cd930b02c7030cb3e8e0993084c643208e52696e18ea6dd3953dfc37b939df06ff78170423d353dc8b10d5bae5796f3711c1b3abe52872b3774c + languageName: node + linkType: hard + "typedarray@npm:^0.0.6": version: 0.0.6 resolution: "typedarray@npm:0.0.6" @@ -18333,6 +19464,18 @@ __metadata: languageName: node linkType: hard +"unbox-primitive@npm:^1.1.0": + version: 1.1.0 + resolution: "unbox-primitive@npm:1.1.0" + dependencies: + call-bound: ^1.0.3 + has-bigints: ^1.0.2 + has-symbols: ^1.1.0 + which-boxed-primitive: ^1.1.1 + checksum: 729f13b84a5bfa3fead1d8139cee5c38514e63a8d6a437819a473e241ba87eeb593646568621c7fc7f133db300ef18d65d1a5a60dc9c7beb9000364d93c581df + languageName: node + linkType: hard + "undefsafe@npm:^2.0.5": version: 2.0.5 resolution: "undefsafe@npm:2.0.5" @@ -18882,6 +20025,19 @@ __metadata: languageName: node linkType: hard +"which-boxed-primitive@npm:^1.1.0, which-boxed-primitive@npm:^1.1.1": + version: 1.1.1 + resolution: "which-boxed-primitive@npm:1.1.1" + dependencies: + is-bigint: ^1.1.0 + is-boolean-object: ^1.2.1 + is-number-object: ^1.1.1 + is-string: ^1.1.1 + is-symbol: ^1.1.1 + checksum: ee41d0260e4fd39551ad77700c7047d3d281ec03d356f5e5c8393fe160ba0db53ef446ff547d05f76ffabfd8ad9df7c9a827e12d4cccdbc8fccf9239ff8ac21e + languageName: node + linkType: hard + "which-builtin-type@npm:^1.1.3": version: 1.1.3 resolution: "which-builtin-type@npm:1.1.3" @@ -18902,6 +20058,27 @@ __metadata: languageName: node linkType: hard +"which-builtin-type@npm:^1.2.1": + version: 1.2.1 + resolution: "which-builtin-type@npm:1.2.1" + dependencies: + call-bound: ^1.0.2 + function.prototype.name: ^1.1.6 + has-tostringtag: ^1.0.2 + is-async-function: ^2.0.0 + is-date-object: ^1.1.0 + is-finalizationregistry: ^1.1.0 + is-generator-function: ^1.0.10 + is-regex: ^1.2.1 + is-weakref: ^1.0.2 + isarray: ^2.0.5 + which-boxed-primitive: ^1.1.0 + which-collection: ^1.0.2 + which-typed-array: ^1.1.16 + checksum: 7a3617ba0e7cafb795f74db418df889867d12bce39a477f3ee29c6092aa64d396955bf2a64eae3726d8578440e26777695544057b373c45a8bcf5fbe920bf633 + languageName: node + linkType: hard + "which-collection@npm:^1.0.1": version: 1.0.1 resolution: "which-collection@npm:1.0.1" @@ -18914,6 +20091,18 @@ __metadata: languageName: node linkType: hard +"which-collection@npm:^1.0.2": + version: 1.0.2 + resolution: "which-collection@npm:1.0.2" + dependencies: + is-map: ^2.0.3 + is-set: ^2.0.3 + is-weakmap: ^2.0.2 + is-weakset: ^2.0.3 + checksum: c51821a331624c8197916598a738fc5aeb9a857f1e00d89f5e4c03dc7c60b4032822b8ec5696d28268bb83326456a8b8216344fb84270d18ff1d7628051879d9 + languageName: node + linkType: hard + "which-typed-array@npm:^1.1.11": version: 1.1.11 resolution: "which-typed-array@npm:1.1.11" @@ -18927,6 +20116,21 @@ __metadata: languageName: node linkType: hard +"which-typed-array@npm:^1.1.16, which-typed-array@npm:^1.1.19": + version: 1.1.19 + resolution: "which-typed-array@npm:1.1.19" + dependencies: + available-typed-arrays: ^1.0.7 + call-bind: ^1.0.8 + call-bound: ^1.0.4 + for-each: ^0.3.5 + get-proto: ^1.0.1 + gopd: ^1.2.0 + has-tostringtag: ^1.0.2 + checksum: 162d2a07f68ea323f88ed9419861487ce5d02cb876f2cf9dd1e428d04a63133f93a54f89308f337b27cabd312ee3d027cae4a79002b2f0a85b79b9ef4c190670 + languageName: node + linkType: hard + "which-typed-array@npm:^1.1.2": version: 1.1.10 resolution: "which-typed-array@npm:1.1.10" From f0245715de78f2b95d7eabfd9e27570a42407c56 Mon Sep 17 00:00:00 2001 From: Mia Moir Date: Wed, 23 Jul 2025 18:17:51 +0100 Subject: [PATCH 2/8] More updates to config and packages --- .eslintrc.cjs | 29 +- .prettierrc | 3 - package.json | 13 +- prettier.config.js | 2 +- yarn.lock | 1347 +++++++++++++++++++++++++------------------- 5 files changed, 819 insertions(+), 575 deletions(-) delete mode 100644 .prettierrc diff --git a/.eslintrc.cjs b/.eslintrc.cjs index 24ed1c89..2b0d8d9c 100644 --- a/.eslintrc.cjs +++ b/.eslintrc.cjs @@ -4,8 +4,13 @@ const config = { parserOptions: { project: true, }, - ignorePatterns: [".eslintrc.js", "lib/db/types/**/*"], + ignorePatterns: [".eslintrc.cjs", "lib/db/types/**/*"], extends: ["next/core-web-vitals", "prettier", "plugin:storybook/recommended"], + settings: { + react: { + version: "detect", + }, + }, plugins: [ "@typescript-eslint", "eslint-plugin-unused-imports", @@ -24,6 +29,28 @@ const config = { "warn", { argsIgnorePattern: "^_", varsIgnorePattern: "^_" }, ], + "import/order": [ + "error", + { + groups: [ + ["builtin", "external"], + ["internal"], + ["parent", "sibling", "index"], + ], + pathGroups: [ + { + pattern: "@/**", + group: "internal", + }, + ], + pathGroupsExcludedImportTypes: ["builtin", "external"], + "newlines-between": "always", + alphabetize: { + order: "asc", + caseInsensitive: true, + }, + }, + ], }, }; diff --git a/.prettierrc b/.prettierrc deleted file mode 100644 index 55c1943a..00000000 --- a/.prettierrc +++ /dev/null @@ -1,3 +0,0 @@ -{ - "plugins": ["prettier-plugin-organize-imports"] -} diff --git a/package.json b/package.json index b8d8e43d..c57b992b 100644 --- a/package.json +++ b/package.json @@ -62,8 +62,8 @@ "crypto": "^1.0.1", "date-fns": "^2.30.0", "dayjs": "^1.11.10", - "eslint": "8.44.0", - "eslint-config-next": "^14.1.0", + "eslint": "^8", + "eslint-config-next": "^15.4.3", "fast-xml-parser": "^4.2.5", "fetch-cookie": "^2.1.0", "fs": "^0.0.1-security", @@ -73,10 +73,10 @@ "jwt-decode": "^4.0.0", "lodash": "^4.17.21", "lru-cache": "^10.0.0", - "next": "^14.1.0", + "next": "^15.4.3", "querystring": "^0.2.1", - "react": "18.3.0-canary-7118f5dd7-20230705", - "react-dom": "18.3.0-canary-7118f5dd7-20230705", + "react": "^19.1.0", + "react-dom": "^19.1.0", "react-hook-form": "^7.45.1", "react-icons": "^4.10.1", "server-only": "^0.0.1", @@ -105,7 +105,8 @@ "@typescript-eslint/parser": "^8.38.0", "dotenv-cli": "^7.2.1", "eslint-config-prettier": "^8.8.0", - "eslint-plugin-react": "^7.37.5", + "eslint-plugin-import": "^2.32.0", + "eslint-plugin-react": "latest", "eslint-plugin-storybook": "^0.6.12", "eslint-plugin-unused-imports": "^4.1.4", "husky": "^9.0.6", diff --git a/prettier.config.js b/prettier.config.js index 33f3e3c6..200c8697 100644 --- a/prettier.config.js +++ b/prettier.config.js @@ -1,4 +1,4 @@ /** @type {import('prettier').Config & import('prettier-plugin-tailwindcss').PluginOptions} */ module.exports = { - plugins: ["prettier-plugin-tailwindcss"], + plugins: ["prettier-plugin-tailwindcss", "prettier-plugin-organize-imports"], }; diff --git a/yarn.lock b/yarn.lock index 36bbe027..7b45a803 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1968,7 +1968,7 @@ __metadata: languageName: node linkType: hard -"@babel/runtime@npm:^7.12.5, @babel/runtime@npm:^7.17.8, @babel/runtime@npm:^7.20.7, @babel/runtime@npm:^7.21.0, @babel/runtime@npm:^7.7.6, @babel/runtime@npm:^7.8.4": +"@babel/runtime@npm:^7.12.5, @babel/runtime@npm:^7.17.8, @babel/runtime@npm:^7.21.0, @babel/runtime@npm:^7.7.6, @babel/runtime@npm:^7.8.4": version: 7.22.6 resolution: "@babel/runtime@npm:7.22.6" dependencies: @@ -2138,6 +2138,15 @@ __metadata: languageName: node linkType: hard +"@emnapi/runtime@npm:^1.4.4": + version: 1.4.5 + resolution: "@emnapi/runtime@npm:1.4.5" + dependencies: + tslib: ^2.4.0 + checksum: 99ab25d55cf1ceeec12f83b60f48e744f8e1dfc8d52a2ed81b3b09bf15182e61ef55f25b69d51ec83044861bddaa4404e7c3285bf71dd518a7980867e41c2a10 + languageName: node + linkType: hard + "@emotion/use-insertion-effect-with-fallbacks@npm:^1.0.0": version: 1.0.1 resolution: "@emotion/use-insertion-effect-with-fallbacks@npm:1.0.1" @@ -2473,16 +2482,34 @@ __metadata: languageName: node linkType: hard -"@eslint-community/regexpp@npm:^4.4.0, @eslint-community/regexpp@npm:^4.5.0": +"@eslint-community/eslint-utils@npm:^4.7.0": + version: 4.7.0 + resolution: "@eslint-community/eslint-utils@npm:4.7.0" + dependencies: + eslint-visitor-keys: ^3.4.3 + peerDependencies: + eslint: ^6.0.0 || ^7.0.0 || >=8.0.0 + checksum: b177e3b75c0b8d0e5d71f1c532edb7e40b31313db61f0c879f9bf19c3abb2783c6c372b5deb2396dab4432f2946b9972122ac682e77010376c029dfd0149c681 + languageName: node + linkType: hard + +"@eslint-community/regexpp@npm:^4.10.0, @eslint-community/regexpp@npm:^4.6.1": + version: 4.12.1 + resolution: "@eslint-community/regexpp@npm:4.12.1" + checksum: 0d628680e204bc316d545b4993d3658427ca404ae646ce541fcc65306b8c712c340e5e573e30fb9f85f4855c0c5f6dca9868931f2fcced06417fbe1a0c6cd2d6 + languageName: node + linkType: hard + +"@eslint-community/regexpp@npm:^4.5.0": version: 4.5.1 resolution: "@eslint-community/regexpp@npm:4.5.1" checksum: 6d901166d64998d591fab4db1c2f872981ccd5f6fe066a1ad0a93d4e11855ecae6bfb76660869a469563e8882d4307228cebd41142adb409d182f2966771e57e languageName: node linkType: hard -"@eslint/eslintrc@npm:^2.1.0": - version: 2.1.0 - resolution: "@eslint/eslintrc@npm:2.1.0" +"@eslint/eslintrc@npm:^2.1.4": + version: 2.1.4 + resolution: "@eslint/eslintrc@npm:2.1.4" dependencies: ajv: ^6.12.4 debug: ^4.3.2 @@ -2493,14 +2520,14 @@ __metadata: js-yaml: ^4.1.0 minimatch: ^3.1.2 strip-json-comments: ^3.1.1 - checksum: d5ed0adbe23f6571d8c9bb0ca6edf7618dc6aed4046aa56df7139f65ae7b578874e0d9c796df784c25bda648ceb754b6320277d828c8b004876d7443b8dc018c + checksum: 10957c7592b20ca0089262d8c2a8accbad14b4f6507e35416c32ee6b4dbf9cad67dfb77096bbd405405e9ada2b107f3797fe94362e1c55e0b09d6e90dd149127 languageName: node linkType: hard -"@eslint/js@npm:8.44.0": - version: 8.44.0 - resolution: "@eslint/js@npm:8.44.0" - checksum: fc539583226a28f5677356e9f00d2789c34253f076643d2e32888250e509a4e13aafe0880cb2425139051de0f3a48d25bfc5afa96b7304f203b706c17340e3cf +"@eslint/js@npm:8.57.1": + version: 8.57.1 + resolution: "@eslint/js@npm:8.57.1" + checksum: 2afb77454c06e8316793d2e8e79a0154854d35e6782a1217da274ca60b5044d2c69d6091155234ed0551a1e408f86f09dd4ece02752c59568fa403e60611e880 languageName: node linkType: hard @@ -2630,14 +2657,14 @@ __metadata: languageName: node linkType: hard -"@humanwhocodes/config-array@npm:^0.11.10": - version: 0.11.10 - resolution: "@humanwhocodes/config-array@npm:0.11.10" +"@humanwhocodes/config-array@npm:^0.13.0": + version: 0.13.0 + resolution: "@humanwhocodes/config-array@npm:0.13.0" dependencies: - "@humanwhocodes/object-schema": ^1.2.1 - debug: ^4.1.1 + "@humanwhocodes/object-schema": ^2.0.3 + debug: ^4.3.1 minimatch: ^3.0.5 - checksum: 1b1302e2403d0e35bc43e66d67a2b36b0ad1119efc704b5faff68c41f791a052355b010fb2d27ef022670f550de24cd6d08d5ecf0821c16326b7dcd0ee5d5d8a + checksum: eae69ff9134025dd2924f0b430eb324981494be26f0fddd267a33c28711c4db643242cf9fddf7dadb9d16c96b54b2d2c073e60a56477df86e0173149313bd5d6 languageName: node linkType: hard @@ -2648,10 +2675,211 @@ __metadata: languageName: node linkType: hard -"@humanwhocodes/object-schema@npm:^1.2.1": - version: 1.2.1 - resolution: "@humanwhocodes/object-schema@npm:1.2.1" - checksum: a824a1ec31591231e4bad5787641f59e9633827d0a2eaae131a288d33c9ef0290bd16fda8da6f7c0fcb014147865d12118df10db57f27f41e20da92369fcb3f1 +"@humanwhocodes/object-schema@npm:^2.0.3": + version: 2.0.3 + resolution: "@humanwhocodes/object-schema@npm:2.0.3" + checksum: d3b78f6c5831888c6ecc899df0d03bcc25d46f3ad26a11d7ea52944dc36a35ef543fad965322174238d677a43d5c694434f6607532cff7077062513ad7022631 + languageName: node + linkType: hard + +"@img/sharp-darwin-arm64@npm:0.34.3": + version: 0.34.3 + resolution: "@img/sharp-darwin-arm64@npm:0.34.3" + dependencies: + "@img/sharp-libvips-darwin-arm64": 1.2.0 + dependenciesMeta: + "@img/sharp-libvips-darwin-arm64": + optional: true + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + +"@img/sharp-darwin-x64@npm:0.34.3": + version: 0.34.3 + resolution: "@img/sharp-darwin-x64@npm:0.34.3" + dependencies: + "@img/sharp-libvips-darwin-x64": 1.2.0 + dependenciesMeta: + "@img/sharp-libvips-darwin-x64": + optional: true + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + +"@img/sharp-libvips-darwin-arm64@npm:1.2.0": + version: 1.2.0 + resolution: "@img/sharp-libvips-darwin-arm64@npm:1.2.0" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + +"@img/sharp-libvips-darwin-x64@npm:1.2.0": + version: 1.2.0 + resolution: "@img/sharp-libvips-darwin-x64@npm:1.2.0" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + +"@img/sharp-libvips-linux-arm64@npm:1.2.0": + version: 1.2.0 + resolution: "@img/sharp-libvips-linux-arm64@npm:1.2.0" + conditions: os=linux & cpu=arm64 & libc=glibc + languageName: node + linkType: hard + +"@img/sharp-libvips-linux-arm@npm:1.2.0": + version: 1.2.0 + resolution: "@img/sharp-libvips-linux-arm@npm:1.2.0" + conditions: os=linux & cpu=arm & libc=glibc + languageName: node + linkType: hard + +"@img/sharp-libvips-linux-ppc64@npm:1.2.0": + version: 1.2.0 + resolution: "@img/sharp-libvips-linux-ppc64@npm:1.2.0" + conditions: os=linux & cpu=ppc64 & libc=glibc + languageName: node + linkType: hard + +"@img/sharp-libvips-linux-s390x@npm:1.2.0": + version: 1.2.0 + resolution: "@img/sharp-libvips-linux-s390x@npm:1.2.0" + conditions: os=linux & cpu=s390x & libc=glibc + languageName: node + linkType: hard + +"@img/sharp-libvips-linux-x64@npm:1.2.0": + version: 1.2.0 + resolution: "@img/sharp-libvips-linux-x64@npm:1.2.0" + conditions: os=linux & cpu=x64 & libc=glibc + languageName: node + linkType: hard + +"@img/sharp-libvips-linuxmusl-arm64@npm:1.2.0": + version: 1.2.0 + resolution: "@img/sharp-libvips-linuxmusl-arm64@npm:1.2.0" + conditions: os=linux & cpu=arm64 & libc=musl + languageName: node + linkType: hard + +"@img/sharp-libvips-linuxmusl-x64@npm:1.2.0": + version: 1.2.0 + resolution: "@img/sharp-libvips-linuxmusl-x64@npm:1.2.0" + conditions: os=linux & cpu=x64 & libc=musl + languageName: node + linkType: hard + +"@img/sharp-linux-arm64@npm:0.34.3": + version: 0.34.3 + resolution: "@img/sharp-linux-arm64@npm:0.34.3" + dependencies: + "@img/sharp-libvips-linux-arm64": 1.2.0 + dependenciesMeta: + "@img/sharp-libvips-linux-arm64": + optional: true + conditions: os=linux & cpu=arm64 & libc=glibc + languageName: node + linkType: hard + +"@img/sharp-linux-arm@npm:0.34.3": + version: 0.34.3 + resolution: "@img/sharp-linux-arm@npm:0.34.3" + dependencies: + "@img/sharp-libvips-linux-arm": 1.2.0 + dependenciesMeta: + "@img/sharp-libvips-linux-arm": + optional: true + conditions: os=linux & cpu=arm & libc=glibc + languageName: node + linkType: hard + +"@img/sharp-linux-ppc64@npm:0.34.3": + version: 0.34.3 + resolution: "@img/sharp-linux-ppc64@npm:0.34.3" + dependencies: + "@img/sharp-libvips-linux-ppc64": 1.2.0 + dependenciesMeta: + "@img/sharp-libvips-linux-ppc64": + optional: true + conditions: os=linux & cpu=ppc64 & libc=glibc + languageName: node + linkType: hard + +"@img/sharp-linux-s390x@npm:0.34.3": + version: 0.34.3 + resolution: "@img/sharp-linux-s390x@npm:0.34.3" + dependencies: + "@img/sharp-libvips-linux-s390x": 1.2.0 + dependenciesMeta: + "@img/sharp-libvips-linux-s390x": + optional: true + conditions: os=linux & cpu=s390x & libc=glibc + languageName: node + linkType: hard + +"@img/sharp-linux-x64@npm:0.34.3": + version: 0.34.3 + resolution: "@img/sharp-linux-x64@npm:0.34.3" + dependencies: + "@img/sharp-libvips-linux-x64": 1.2.0 + dependenciesMeta: + "@img/sharp-libvips-linux-x64": + optional: true + conditions: os=linux & cpu=x64 & libc=glibc + languageName: node + linkType: hard + +"@img/sharp-linuxmusl-arm64@npm:0.34.3": + version: 0.34.3 + resolution: "@img/sharp-linuxmusl-arm64@npm:0.34.3" + dependencies: + "@img/sharp-libvips-linuxmusl-arm64": 1.2.0 + dependenciesMeta: + "@img/sharp-libvips-linuxmusl-arm64": + optional: true + conditions: os=linux & cpu=arm64 & libc=musl + languageName: node + linkType: hard + +"@img/sharp-linuxmusl-x64@npm:0.34.3": + version: 0.34.3 + resolution: "@img/sharp-linuxmusl-x64@npm:0.34.3" + dependencies: + "@img/sharp-libvips-linuxmusl-x64": 1.2.0 + dependenciesMeta: + "@img/sharp-libvips-linuxmusl-x64": + optional: true + conditions: os=linux & cpu=x64 & libc=musl + languageName: node + linkType: hard + +"@img/sharp-wasm32@npm:0.34.3": + version: 0.34.3 + resolution: "@img/sharp-wasm32@npm:0.34.3" + dependencies: + "@emnapi/runtime": ^1.4.4 + conditions: cpu=wasm32 + languageName: node + linkType: hard + +"@img/sharp-win32-arm64@npm:0.34.3": + version: 0.34.3 + resolution: "@img/sharp-win32-arm64@npm:0.34.3" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + +"@img/sharp-win32-ia32@npm:0.34.3": + version: 0.34.3 + resolution: "@img/sharp-win32-ia32@npm:0.34.3" + conditions: os=win32 & cpu=ia32 + languageName: node + linkType: hard + +"@img/sharp-win32-x64@npm:0.34.3": + version: 0.34.3 + resolution: "@img/sharp-win32-x64@npm:0.34.3" + conditions: os=win32 & cpu=x64 languageName: node linkType: hard @@ -3015,81 +3243,74 @@ __metadata: languageName: node linkType: hard -"@next/env@npm:14.1.0": - version: 14.1.0 - resolution: "@next/env@npm:14.1.0" - checksum: ecec03a3e9745996ed1c7fc218fc9a1a4345a0cf368afb50f38a3b6fbf6f966a36dba174c90b5f90b568188dbd0eba48a2c5448b6742298417df4ff3351c6d40 +"@next/env@npm:15.4.3": + version: 15.4.3 + resolution: "@next/env@npm:15.4.3" + checksum: 0d784a170479b061b5595fe178abf86593dfc9035163ef67be71b7e1093a41cc6afd5565d9f0d81c1e34a72dd050b19450ebe7c7ec9be936383dba75b19b53d4 languageName: node linkType: hard -"@next/eslint-plugin-next@npm:14.1.0": - version: 14.1.0 - resolution: "@next/eslint-plugin-next@npm:14.1.0" +"@next/eslint-plugin-next@npm:15.4.3": + version: 15.4.3 + resolution: "@next/eslint-plugin-next@npm:15.4.3" dependencies: - glob: 10.3.10 - checksum: 7cd6789f27da102314b5784d4a4ba1a1789349f0c227bf5a90afcbd307bea98ea43b4cb1924fe9e67e11d48d3280eec1a1ca81558b6149e0122545fa37f00470 + fast-glob: 3.3.1 + checksum: 259342577f22855ec72d1e609a015b07144e72d52effc1695ea472e108798e7f44e2172f311209367963b8546f0765583841e20773b7efb60835bc19177f087d languageName: node linkType: hard -"@next/swc-darwin-arm64@npm:14.1.0": - version: 14.1.0 - resolution: "@next/swc-darwin-arm64@npm:14.1.0" +"@next/swc-darwin-arm64@npm:15.4.3": + version: 15.4.3 + resolution: "@next/swc-darwin-arm64@npm:15.4.3" conditions: os=darwin & cpu=arm64 languageName: node linkType: hard -"@next/swc-darwin-x64@npm:14.1.0": - version: 14.1.0 - resolution: "@next/swc-darwin-x64@npm:14.1.0" +"@next/swc-darwin-x64@npm:15.4.3": + version: 15.4.3 + resolution: "@next/swc-darwin-x64@npm:15.4.3" conditions: os=darwin & cpu=x64 languageName: node linkType: hard -"@next/swc-linux-arm64-gnu@npm:14.1.0": - version: 14.1.0 - resolution: "@next/swc-linux-arm64-gnu@npm:14.1.0" +"@next/swc-linux-arm64-gnu@npm:15.4.3": + version: 15.4.3 + resolution: "@next/swc-linux-arm64-gnu@npm:15.4.3" conditions: os=linux & cpu=arm64 & libc=glibc languageName: node linkType: hard -"@next/swc-linux-arm64-musl@npm:14.1.0": - version: 14.1.0 - resolution: "@next/swc-linux-arm64-musl@npm:14.1.0" +"@next/swc-linux-arm64-musl@npm:15.4.3": + version: 15.4.3 + resolution: "@next/swc-linux-arm64-musl@npm:15.4.3" conditions: os=linux & cpu=arm64 & libc=musl languageName: node linkType: hard -"@next/swc-linux-x64-gnu@npm:14.1.0": - version: 14.1.0 - resolution: "@next/swc-linux-x64-gnu@npm:14.1.0" +"@next/swc-linux-x64-gnu@npm:15.4.3": + version: 15.4.3 + resolution: "@next/swc-linux-x64-gnu@npm:15.4.3" conditions: os=linux & cpu=x64 & libc=glibc languageName: node linkType: hard -"@next/swc-linux-x64-musl@npm:14.1.0": - version: 14.1.0 - resolution: "@next/swc-linux-x64-musl@npm:14.1.0" +"@next/swc-linux-x64-musl@npm:15.4.3": + version: 15.4.3 + resolution: "@next/swc-linux-x64-musl@npm:15.4.3" conditions: os=linux & cpu=x64 & libc=musl languageName: node linkType: hard -"@next/swc-win32-arm64-msvc@npm:14.1.0": - version: 14.1.0 - resolution: "@next/swc-win32-arm64-msvc@npm:14.1.0" +"@next/swc-win32-arm64-msvc@npm:15.4.3": + version: 15.4.3 + resolution: "@next/swc-win32-arm64-msvc@npm:15.4.3" conditions: os=win32 & cpu=arm64 languageName: node linkType: hard -"@next/swc-win32-ia32-msvc@npm:14.1.0": - version: 14.1.0 - resolution: "@next/swc-win32-ia32-msvc@npm:14.1.0" - conditions: os=win32 & cpu=ia32 - languageName: node - linkType: hard - -"@next/swc-win32-x64-msvc@npm:14.1.0": - version: 14.1.0 - resolution: "@next/swc-win32-x64-msvc@npm:14.1.0" +"@next/swc-win32-x64-msvc@npm:15.4.3": + version: 15.4.3 + resolution: "@next/swc-win32-x64-msvc@npm:15.4.3" conditions: os=win32 & cpu=x64 languageName: node linkType: hard @@ -3687,10 +3908,17 @@ __metadata: languageName: node linkType: hard -"@rushstack/eslint-patch@npm:^1.3.3": - version: 1.4.0 - resolution: "@rushstack/eslint-patch@npm:1.4.0" - checksum: 29b216288deda3dee69dfb49adb1d809217d67331775a854de18771905268a65c11be5325313d47fb1c62ea0b477733e17310bc9708ccb7f3fb6f0a3816b82d9 +"@rtsao/scc@npm:^1.1.0": + version: 1.1.0 + resolution: "@rtsao/scc@npm:1.1.0" + checksum: 17d04adf404e04c1e61391ed97bca5117d4c2767a76ae3e879390d6dec7b317fcae68afbf9e98badee075d0b64fa60f287729c4942021b4d19cd01db77385c01 + languageName: node + linkType: hard + +"@rushstack/eslint-patch@npm:^1.10.3": + version: 1.12.0 + resolution: "@rushstack/eslint-patch@npm:1.12.0" + checksum: 186788a93e2f141f622696091a593727fe7964d4925236a308e29754e29dcb182377f8d292ae954d227fb0574433863af055c0156593a40fd525e88b76e891ec languageName: node linkType: hard @@ -5260,12 +5488,12 @@ __metadata: languageName: node linkType: hard -"@swc/helpers@npm:0.5.2": - version: 0.5.2 - resolution: "@swc/helpers@npm:0.5.2" +"@swc/helpers@npm:0.5.15": + version: 0.5.15 + resolution: "@swc/helpers@npm:0.5.15" dependencies: - tslib: ^2.4.0 - checksum: 51d7e3d8bd56818c49d6bfbd715f0dbeedc13cf723af41166e45c03e37f109336bbcb57a1f2020f4015957721aeb21e1a7fff281233d797ff7d3dd1f447fa258 + tslib: ^2.8.0 + checksum: 1a9e0dbb792b2d1e0c914d69c201dbc96af3a0e6e6e8cf5a7f7d6a5d7b0e8b762915cd4447acb6b040e2ecc1ed49822875a7239f99a2d63c96c3c3407fb6fccf languageName: node linkType: hard @@ -6028,6 +6256,27 @@ __metadata: languageName: node linkType: hard +"@typescript-eslint/eslint-plugin@npm:^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0": + version: 8.38.0 + resolution: "@typescript-eslint/eslint-plugin@npm:8.38.0" + dependencies: + "@eslint-community/regexpp": ^4.10.0 + "@typescript-eslint/scope-manager": 8.38.0 + "@typescript-eslint/type-utils": 8.38.0 + "@typescript-eslint/utils": 8.38.0 + "@typescript-eslint/visitor-keys": 8.38.0 + graphemer: ^1.4.0 + ignore: ^7.0.0 + natural-compare: ^1.4.0 + ts-api-utils: ^2.1.0 + peerDependencies: + "@typescript-eslint/parser": ^8.38.0 + eslint: ^8.57.0 || ^9.0.0 + typescript: ">=4.8.4 <5.9.0" + checksum: 7c9a584c413fe868c75b20eeb65ef82e98fce3129875b78ccf5e459b2a64532a0d582ade73b9f3ff5902e7d185e2f41f515332cc58b54644fe50b817b9a4d943 + languageName: node + linkType: hard + "@typescript-eslint/eslint-plugin@npm:^6.0.0": version: 6.0.0 resolution: "@typescript-eslint/eslint-plugin@npm:6.0.0" @@ -6055,25 +6304,7 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/parser@npm:^5.4.2 || ^6.0.0": - version: 6.7.0 - resolution: "@typescript-eslint/parser@npm:6.7.0" - dependencies: - "@typescript-eslint/scope-manager": 6.7.0 - "@typescript-eslint/types": 6.7.0 - "@typescript-eslint/typescript-estree": 6.7.0 - "@typescript-eslint/visitor-keys": 6.7.0 - debug: ^4.3.4 - peerDependencies: - eslint: ^7.0.0 || ^8.0.0 - peerDependenciesMeta: - typescript: - optional: true - checksum: 21d52a49abf78a3b037261c01f1f4d2d550919ddc906ebb058db3410a706457ac3a7d082716328ce98a6741d4e77c945b71ff386d9047c5a2e5beef23e14ab45 - languageName: node - linkType: hard - -"@typescript-eslint/parser@npm:^8.38.0": +"@typescript-eslint/parser@npm:^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0, @typescript-eslint/parser@npm:^8.38.0": version: 8.38.0 resolution: "@typescript-eslint/parser@npm:8.38.0" dependencies: @@ -6122,16 +6353,6 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/scope-manager@npm:6.7.0": - version: 6.7.0 - resolution: "@typescript-eslint/scope-manager@npm:6.7.0" - dependencies: - "@typescript-eslint/types": 6.7.0 - "@typescript-eslint/visitor-keys": 6.7.0 - checksum: f6ea33c647783d53d98938bd5d3fc94c9a5ebc83bd64cf379215863921dd1c57e66c33af7948d6ac1884623e1917a3b42565e6d02e1fd7adfbce4b3424a2382e - languageName: node - linkType: hard - "@typescript-eslint/scope-manager@npm:8.38.0": version: 8.38.0 resolution: "@typescript-eslint/scope-manager@npm:8.38.0" @@ -6178,6 +6399,22 @@ __metadata: languageName: node linkType: hard +"@typescript-eslint/type-utils@npm:8.38.0": + version: 8.38.0 + resolution: "@typescript-eslint/type-utils@npm:8.38.0" + dependencies: + "@typescript-eslint/types": 8.38.0 + "@typescript-eslint/typescript-estree": 8.38.0 + "@typescript-eslint/utils": 8.38.0 + debug: ^4.3.4 + ts-api-utils: ^2.1.0 + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: ">=4.8.4 <5.9.0" + checksum: af6931ca64d99c41365c563f32e5e9062465d76d3ff64263749b8b78ca4307eb59e8e0a3ded5854827df21ce6273cf534e560c25f05f4c6f18ce3a6024ed0dda + languageName: node + linkType: hard + "@typescript-eslint/types@npm:5.62.0": version: 5.62.0 resolution: "@typescript-eslint/types@npm:5.62.0" @@ -6192,13 +6429,6 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/types@npm:6.7.0": - version: 6.7.0 - resolution: "@typescript-eslint/types@npm:6.7.0" - checksum: fb76031432a009813d559b1cc63091eb5434279012cdb98de62fcd556910663c6a1b506e0a77c4f86e223a5e2c00e76a2d1d2170802c75168008d19a52a51fca - languageName: node - linkType: hard - "@typescript-eslint/types@npm:8.38.0, @typescript-eslint/types@npm:^8.38.0": version: 8.38.0 resolution: "@typescript-eslint/types@npm:8.38.0" @@ -6249,24 +6479,6 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/typescript-estree@npm:6.7.0": - version: 6.7.0 - resolution: "@typescript-eslint/typescript-estree@npm:6.7.0" - dependencies: - "@typescript-eslint/types": 6.7.0 - "@typescript-eslint/visitor-keys": 6.7.0 - debug: ^4.3.4 - globby: ^11.1.0 - is-glob: ^4.0.3 - semver: ^7.5.4 - ts-api-utils: ^1.0.1 - peerDependenciesMeta: - typescript: - optional: true - checksum: 9bd57910085f0dd97d7083e0468c34e0753d20d36d3ffaa4ba111f13cc4986743374f5aed928e645ea982cf2ed9a8141598bee41393cad0abee001f0842ad117 - languageName: node - linkType: hard - "@typescript-eslint/typescript-estree@npm:8.38.0": version: 8.38.0 resolution: "@typescript-eslint/typescript-estree@npm:8.38.0" @@ -6324,6 +6536,21 @@ __metadata: languageName: node linkType: hard +"@typescript-eslint/utils@npm:8.38.0": + version: 8.38.0 + resolution: "@typescript-eslint/utils@npm:8.38.0" + dependencies: + "@eslint-community/eslint-utils": ^4.7.0 + "@typescript-eslint/scope-manager": 8.38.0 + "@typescript-eslint/types": 8.38.0 + "@typescript-eslint/typescript-estree": 8.38.0 + peerDependencies: + eslint: ^8.57.0 || ^9.0.0 + typescript: ">=4.8.4 <5.9.0" + checksum: cef57b6ff702f6caa9d5fde1390f27191cdb2e2587cb6cbad0135359b2232f70116e57ef8f643c0d72908cfb56ff3b6d03d11e8dddc657afbe277745a9842c50 + languageName: node + linkType: hard + "@typescript-eslint/utils@npm:^5.45.0": version: 5.62.0 resolution: "@typescript-eslint/utils@npm:5.62.0" @@ -6376,16 +6603,6 @@ __metadata: languageName: node linkType: hard -"@typescript-eslint/visitor-keys@npm:6.7.0": - version: 6.7.0 - resolution: "@typescript-eslint/visitor-keys@npm:6.7.0" - dependencies: - "@typescript-eslint/types": 6.7.0 - eslint-visitor-keys: ^3.4.1 - checksum: cd85722d26ccfa23a76e5cb5aa0229f89eb3c4f1ed87d71a0f902db15f420f3f3e94cbd16dc711039f611ac60b1e7d0fee9ee78c48c88310a5f1926a2bc8778e - languageName: node - linkType: hard - "@typescript-eslint/visitor-keys@npm:8.38.0": version: 8.38.0 resolution: "@typescript-eslint/visitor-keys@npm:8.38.0" @@ -6406,6 +6623,13 @@ __metadata: languageName: node linkType: hard +"@ungap/structured-clone@npm:^1.2.0": + version: 1.3.0 + resolution: "@ungap/structured-clone@npm:1.3.0" + checksum: 64ed518f49c2b31f5b50f8570a1e37bde3b62f2460042c50f132430b2d869c4a6586f13aa33a58a4722715b8158c68cae2827389d6752ac54da2893c83e480fc + languageName: node + linkType: hard + "@webassemblyjs/ast@npm:1.11.6, @webassemblyjs/ast@npm:^1.11.5": version: 1.11.6 resolution: "@webassemblyjs/ast@npm:1.11.6" @@ -6687,11 +6911,11 @@ __metadata: linkType: hard "acorn@npm:^8.9.0": - version: 8.9.0 - resolution: "acorn@npm:8.9.0" + version: 8.15.0 + resolution: "acorn@npm:8.15.0" bin: acorn: bin/acorn - checksum: 25dfb94952386ecfb847e61934de04a4e7c2dc21c2e700fc4e2ef27ce78cb717700c4c4f279cd630bb4774948633c3859fc16063ec8573bda4568e0a312e6744 + checksum: 309c6b49aedf1a2e34aaf266de06de04aab6eb097c02375c66fdeb0f64556a6a823540409914fb364d9a11bc30d79d485a2eba29af47992d3490e9886c4391c3 languageName: node linkType: hard @@ -6792,7 +7016,7 @@ __metadata: languageName: node linkType: hard -"ajv@npm:^6.10.0, ajv@npm:^6.12.4, ajv@npm:^6.12.5": +"ajv@npm:^6.12.4, ajv@npm:^6.12.5": version: 6.12.6 resolution: "ajv@npm:6.12.6" dependencies: @@ -6970,12 +7194,10 @@ __metadata: languageName: node linkType: hard -"aria-query@npm:^5.1.3": - version: 5.3.0 - resolution: "aria-query@npm:5.3.0" - dependencies: - dequal: ^2.0.3 - checksum: 305bd73c76756117b59aba121d08f413c7ff5e80fa1b98e217a3443fcddb9a232ee790e24e432b59ae7625aebcf4c47cb01c2cac872994f0b426f5bdfcd96ba9 +"aria-query@npm:^5.3.2": + version: 5.3.2 + resolution: "aria-query@npm:5.3.2" + checksum: d971175c85c10df0f6d14adfe6f1292409196114ab3c62f238e208b53103686f46cc70695a4f775b73bc65f6a09b6a092fd963c4f3a5a7d690c8fc5094925717 languageName: node linkType: hard @@ -7026,7 +7248,7 @@ __metadata: languageName: node linkType: hard -"array-includes@npm:^3.1.8": +"array-includes@npm:^3.1.8, array-includes@npm:^3.1.9": version: 3.1.9 resolution: "array-includes@npm:3.1.9" dependencies: @@ -7063,16 +7285,18 @@ __metadata: languageName: node linkType: hard -"array.prototype.findlastindex@npm:^1.2.2": - version: 1.2.3 - resolution: "array.prototype.findlastindex@npm:1.2.3" +"array.prototype.findlastindex@npm:^1.2.6": + version: 1.2.6 + resolution: "array.prototype.findlastindex@npm:1.2.6" dependencies: - call-bind: ^1.0.2 - define-properties: ^1.2.0 - es-abstract: ^1.22.1 - es-shim-unscopables: ^1.0.0 - get-intrinsic: ^1.2.1 - checksum: 31f35d7b370c84db56484618132041a9af401b338f51899c2e78ef7690fbba5909ee7ca3c59a7192085b328cc0c68c6fd1f6d1553db01a689a589ae510f3966e + call-bind: ^1.0.8 + call-bound: ^1.0.4 + define-properties: ^1.2.1 + es-abstract: ^1.23.9 + es-errors: ^1.3.0 + es-object-atoms: ^1.1.1 + es-shim-unscopables: ^1.1.0 + checksum: bd2665bd51f674d4e1588ce5d5848a8adb255f414070e8e652585598b801480516df2c6cef2c60b6ea1a9189140411c49157a3f112d52e9eabb4e9fc80936ea6 languageName: node linkType: hard @@ -7088,19 +7312,19 @@ __metadata: languageName: node linkType: hard -"array.prototype.flatmap@npm:^1.3.1": - version: 1.3.1 - resolution: "array.prototype.flatmap@npm:1.3.1" +"array.prototype.flat@npm:^1.3.3": + version: 1.3.3 + resolution: "array.prototype.flat@npm:1.3.3" dependencies: - call-bind: ^1.0.2 - define-properties: ^1.1.4 - es-abstract: ^1.20.4 - es-shim-unscopables: ^1.0.0 - checksum: 8c1c43a4995f12cf12523436da28515184c753807b3f0bc2ca6c075f71c470b099e2090cc67dba8e5280958fea401c1d0c59e1db0143272aef6cd1103921a987 + call-bind: ^1.0.8 + define-properties: ^1.2.1 + es-abstract: ^1.23.5 + es-shim-unscopables: ^1.0.2 + checksum: 5d5a7829ab2bb271a8d30a1c91e6271cef0ec534593c0fe6d2fb9ebf8bb62c1e5326e2fddcbbcbbe5872ca04f5e6b54a1ecf092e0af704fb538da9b2bfd95b40 languageName: node linkType: hard -"array.prototype.flatmap@npm:^1.3.3": +"array.prototype.flatmap@npm:^1.3.2, array.prototype.flatmap@npm:^1.3.3": version: 1.3.3 resolution: "array.prototype.flatmap@npm:1.3.3" dependencies: @@ -7112,19 +7336,6 @@ __metadata: languageName: node linkType: hard -"array.prototype.tosorted@npm:^1.1.1": - version: 1.1.1 - resolution: "array.prototype.tosorted@npm:1.1.1" - dependencies: - call-bind: ^1.0.2 - define-properties: ^1.1.4 - es-abstract: ^1.20.4 - es-shim-unscopables: ^1.0.0 - get-intrinsic: ^1.1.3 - checksum: 7923324a67e70a2fc0a6e40237405d92395e45ebd76f5cb89c2a5cf1e66b47aca6baacd0cd628ffd88830b90d47fff268071493d09c9ae123645613dac2c2ca3 - languageName: node - linkType: hard - "array.prototype.tosorted@npm:^1.1.4": version: 1.1.4 resolution: "array.prototype.tosorted@npm:1.1.4" @@ -7192,10 +7403,10 @@ __metadata: languageName: node linkType: hard -"ast-types-flow@npm:^0.0.7": - version: 0.0.7 - resolution: "ast-types-flow@npm:0.0.7" - checksum: a26dcc2182ffee111cad7c471759b0bda22d3b7ebacf27c348b22c55f16896b18ab0a4d03b85b4020dce7f3e634b8f00b593888f622915096ea1927fa51866c4 +"ast-types-flow@npm:^0.0.8": + version: 0.0.8 + resolution: "ast-types-flow@npm:0.0.8" + checksum: 0a64706609a179233aac23817837abab614f3548c252a2d3d79ea1e10c74aa28a0846e11f466cf72771b6ed8713abc094dcf8c40c3ec4207da163efa525a94a8 languageName: node linkType: hard @@ -7240,15 +7451,6 @@ __metadata: languageName: node linkType: hard -"asynciterator.prototype@npm:^1.0.0": - version: 1.0.0 - resolution: "asynciterator.prototype@npm:1.0.0" - dependencies: - has-symbols: ^1.0.3 - checksum: e8ebfd9493ac651cf9b4165e9d64030b3da1d17181bb1963627b59e240cdaf021d9b59d44b827dc1dde4e22387ec04c2d0f8720cf58a1c282e34e40cc12721b3 - languageName: node - linkType: hard - "asynckit@npm:^0.4.0": version: 0.4.0 resolution: "asynckit@npm:0.4.0" @@ -7290,10 +7492,10 @@ __metadata: languageName: node linkType: hard -"axe-core@npm:^4.6.2": - version: 4.7.2 - resolution: "axe-core@npm:4.7.2" - checksum: 5d86fa0f45213b0e54cbb5d713ce885c4a8fe3a72b92dd915a47aa396d6fd149c4a87fec53aa978511f6d941402256cfeb26f2db35129e370f25a453c688655a +"axe-core@npm:^4.10.0": + version: 4.10.3 + resolution: "axe-core@npm:4.10.3" + checksum: e89fa5bcad9216f2de29bbdf95d6211d8c5b1025cbdcf56b6695c18b2e9a1eebd0b997a0141334169f6f062fc68fd39a5b97f86348d9f5be05958eade5c1ec78 languageName: node linkType: hard @@ -7308,12 +7510,10 @@ __metadata: languageName: node linkType: hard -"axobject-query@npm:^3.1.1": - version: 3.2.1 - resolution: "axobject-query@npm:3.2.1" - dependencies: - dequal: ^2.0.3 - checksum: a94047e702b57c91680e6a952ec4a1aaa2cfd0d80ead76bc8c954202980d8c51968a6ea18b4d8010e8e2cf95676533d8022a8ebba9abc1dfe25686721df26fd2 +"axobject-query@npm:^4.1.0": + version: 4.1.0 + resolution: "axobject-query@npm:4.1.0" + checksum: 7d1e87bf0aa7ae7a76cd39ab627b7c48fda3dc40181303d9adce4ba1d5b5ce73b5e5403ee6626ec8e91090448c887294d6144e24b6741a976f5be9347e3ae1df languageName: node linkType: hard @@ -7836,15 +8036,6 @@ __metadata: languageName: node linkType: hard -"busboy@npm:1.6.0": - version: 1.6.0 - resolution: "busboy@npm:1.6.0" - dependencies: - streamsearch: ^1.1.0 - checksum: 32801e2c0164e12106bf236291a00795c3c4e4b709ae02132883fe8478ba2ae23743b11c5735a0aae8afe65ac4b6ca4568b91f0d9fed1fdbc32ede824a73746e - languageName: node - linkType: hard - "bytes@npm:3.0.0": version: 3.0.0 resolution: "bytes@npm:3.0.0" @@ -8604,7 +8795,7 @@ __metadata: languageName: node linkType: hard -"cross-spawn@npm:7.0.3, cross-spawn@npm:^7.0.0, cross-spawn@npm:^7.0.2, cross-spawn@npm:^7.0.3": +"cross-spawn@npm:7.0.3, cross-spawn@npm:^7.0.0, cross-spawn@npm:^7.0.3": version: 7.0.3 resolution: "cross-spawn@npm:7.0.3" dependencies: @@ -8615,6 +8806,17 @@ __metadata: languageName: node linkType: hard +"cross-spawn@npm:^7.0.2": + version: 7.0.6 + resolution: "cross-spawn@npm:7.0.6" + dependencies: + path-key: ^3.1.0 + shebang-command: ^2.0.0 + which: ^2.0.1 + checksum: 8d306efacaf6f3f60e0224c287664093fa9185680b2d195852ba9a863f85d02dcc737094c6e512175f8ee0161f9b87c73c6826034c2422e39de7d6569cf4503b + languageName: node + linkType: hard + "crypto-browserify@npm:^3.12.0": version: 3.12.0 resolution: "crypto-browserify@npm:3.12.0" @@ -9016,7 +9218,7 @@ __metadata: languageName: node linkType: hard -"dequal@npm:^2.0.2, dequal@npm:^2.0.3": +"dequal@npm:^2.0.2": version: 2.0.3 resolution: "dequal@npm:2.0.3" checksum: 8679b850e1a3d0ebbc46ee780d5df7b478c23f335887464023a631d1b9af051ad4a6595a44220f9ff8ff95a8ddccf019b5ad778a976fd7bbf77383d36f412f90 @@ -9054,6 +9256,13 @@ __metadata: languageName: node linkType: hard +"detect-libc@npm:^2.0.4": + version: 2.0.4 + resolution: "detect-libc@npm:2.0.4" + checksum: 3d186b7d4e16965e10e21db596c78a4e131f9eee69c0081d13b85e6a61d7448d3ba23fe7997648022bdfa3b0eb4cc3c289a44c8188df949445a20852689abef6 + languageName: node + linkType: hard + "detect-node-es@npm:^1.1.0": version: 1.1.0 resolution: "detect-node-es@npm:1.1.0" @@ -9702,28 +9911,6 @@ __metadata: languageName: node linkType: hard -"es-iterator-helpers@npm:^1.0.12": - version: 1.0.15 - resolution: "es-iterator-helpers@npm:1.0.15" - dependencies: - asynciterator.prototype: ^1.0.0 - call-bind: ^1.0.2 - define-properties: ^1.2.1 - es-abstract: ^1.22.1 - es-set-tostringtag: ^2.0.1 - function-bind: ^1.1.1 - get-intrinsic: ^1.2.1 - globalthis: ^1.0.3 - has-property-descriptors: ^1.0.0 - has-proto: ^1.0.1 - has-symbols: ^1.0.3 - internal-slot: ^1.0.5 - iterator.prototype: ^1.1.2 - safe-array-concat: ^1.0.1 - checksum: 50081ae5c549efe62e5c1d244df0194b40b075f7897fc2116b7e1aa437eb3c41f946d2afda18c33f9b31266ec544765932542765af839f76fa6d7b7855d1e0e1 - languageName: node - linkType: hard - "es-iterator-helpers@npm:^1.2.1": version: 1.2.1 resolution: "es-iterator-helpers@npm:1.2.1" @@ -9796,7 +9983,7 @@ __metadata: languageName: node linkType: hard -"es-shim-unscopables@npm:^1.0.2": +"es-shim-unscopables@npm:^1.0.2, es-shim-unscopables@npm:^1.1.0": version: 1.1.0 resolution: "es-shim-unscopables@npm:1.1.0" dependencies: @@ -10062,26 +10249,27 @@ __metadata: languageName: node linkType: hard -"eslint-config-next@npm:^14.1.0": - version: 14.1.0 - resolution: "eslint-config-next@npm:14.1.0" +"eslint-config-next@npm:^15.4.3": + version: 15.4.3 + resolution: "eslint-config-next@npm:15.4.3" dependencies: - "@next/eslint-plugin-next": 14.1.0 - "@rushstack/eslint-patch": ^1.3.3 - "@typescript-eslint/parser": ^5.4.2 || ^6.0.0 + "@next/eslint-plugin-next": 15.4.3 + "@rushstack/eslint-patch": ^1.10.3 + "@typescript-eslint/eslint-plugin": ^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0 + "@typescript-eslint/parser": ^5.4.2 || ^6.0.0 || ^7.0.0 || ^8.0.0 eslint-import-resolver-node: ^0.3.6 eslint-import-resolver-typescript: ^3.5.2 - eslint-plugin-import: ^2.28.1 - eslint-plugin-jsx-a11y: ^6.7.1 - eslint-plugin-react: ^7.33.2 - eslint-plugin-react-hooks: ^4.5.0 || 5.0.0-canary-7118f5dd7-20230705 + eslint-plugin-import: ^2.31.0 + eslint-plugin-jsx-a11y: ^6.10.0 + eslint-plugin-react: ^7.37.0 + eslint-plugin-react-hooks: ^5.0.0 peerDependencies: - eslint: ^7.23.0 || ^8.0.0 + eslint: ^7.23.0 || ^8.0.0 || ^9.0.0 typescript: ">=3.3.1" peerDependenciesMeta: typescript: optional: true - checksum: 6275f6bd05d0db34e11bda22efc88f56a3f10e2620cbaaad001016497d87b9cf9814ca9ddbf8f4ecd1456e6a2a486e5f12806602aac488b167a240488fe07611 + checksum: c3784035d9260b133bdd2114c24c623b99bbefbd6014c06731e74cc67f0f56fe74cfbd3af93021e2dfac3e17c67b6f2a69d040e87687e6aef1e07d189943270b languageName: node linkType: hard @@ -10096,7 +10284,7 @@ __metadata: languageName: node linkType: hard -"eslint-import-resolver-node@npm:^0.3.6, eslint-import-resolver-node@npm:^0.3.7": +"eslint-import-resolver-node@npm:^0.3.6": version: 0.3.7 resolution: "eslint-import-resolver-node@npm:0.3.7" dependencies: @@ -10107,6 +10295,17 @@ __metadata: languageName: node linkType: hard +"eslint-import-resolver-node@npm:^0.3.9": + version: 0.3.9 + resolution: "eslint-import-resolver-node@npm:0.3.9" + dependencies: + debug: ^3.2.7 + is-core-module: ^2.13.0 + resolve: ^1.22.4 + checksum: 439b91271236b452d478d0522a44482e8c8540bf9df9bd744062ebb89ab45727a3acd03366a6ba2bdbcde8f9f718bab7fe8db64688aca75acf37e04eafd25e22 + languageName: node + linkType: hard + "eslint-import-resolver-typescript@npm:^3.5.2": version: 3.5.5 resolution: "eslint-import-resolver-typescript@npm:3.5.5" @@ -10126,7 +10325,19 @@ __metadata: languageName: node linkType: hard -"eslint-module-utils@npm:^2.7.4, eslint-module-utils@npm:^2.8.0": +"eslint-module-utils@npm:^2.12.1": + version: 2.12.1 + resolution: "eslint-module-utils@npm:2.12.1" + dependencies: + debug: ^3.2.7 + peerDependenciesMeta: + eslint: + optional: true + checksum: 2f074670d8c934687820a83140048776b28bbaf35fc37f35623f63cc9c438d496d11f0683b4feabb9a120435435d4a69604b1c6c567f118be2c9a0aba6760fc1 + languageName: node + linkType: hard + +"eslint-module-utils@npm:^2.7.4": version: 2.8.0 resolution: "eslint-module-utils@npm:2.8.0" dependencies: @@ -10138,95 +10349,70 @@ __metadata: languageName: node linkType: hard -"eslint-plugin-import@npm:^2.28.1": - version: 2.28.1 - resolution: "eslint-plugin-import@npm:2.28.1" +"eslint-plugin-import@npm:^2.31.0, eslint-plugin-import@npm:^2.32.0": + version: 2.32.0 + resolution: "eslint-plugin-import@npm:2.32.0" dependencies: - array-includes: ^3.1.6 - array.prototype.findlastindex: ^1.2.2 - array.prototype.flat: ^1.3.1 - array.prototype.flatmap: ^1.3.1 + "@rtsao/scc": ^1.1.0 + array-includes: ^3.1.9 + array.prototype.findlastindex: ^1.2.6 + array.prototype.flat: ^1.3.3 + array.prototype.flatmap: ^1.3.3 debug: ^3.2.7 doctrine: ^2.1.0 - eslint-import-resolver-node: ^0.3.7 - eslint-module-utils: ^2.8.0 - has: ^1.0.3 - is-core-module: ^2.13.0 + eslint-import-resolver-node: ^0.3.9 + eslint-module-utils: ^2.12.1 + hasown: ^2.0.2 + is-core-module: ^2.16.1 is-glob: ^4.0.3 minimatch: ^3.1.2 - object.fromentries: ^2.0.6 - object.groupby: ^1.0.0 - object.values: ^1.1.6 + object.fromentries: ^2.0.8 + object.groupby: ^1.0.3 + object.values: ^1.2.1 semver: ^6.3.1 - tsconfig-paths: ^3.14.2 + string.prototype.trimend: ^1.0.9 + tsconfig-paths: ^3.15.0 peerDependencies: - eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 - checksum: e8ae6dd8f06d8adf685f9c1cfd46ac9e053e344a05c4090767e83b63a85c8421ada389807a39e73c643b9bff156715c122e89778169110ed68d6428e12607edf + eslint: ^2 || ^3 || ^4 || ^5 || ^6 || ^7.2.0 || ^8 || ^9 + checksum: 8cd40595b5e4346d3698eb577014b4b6d0ba57b7b9edf975be4f052a89330ec202d0cc5c3861d37ebeafa151b6264821410243889b0c31710911a6b625bcf76b languageName: node linkType: hard -"eslint-plugin-jsx-a11y@npm:^6.7.1": - version: 6.7.1 - resolution: "eslint-plugin-jsx-a11y@npm:6.7.1" +"eslint-plugin-jsx-a11y@npm:^6.10.0": + version: 6.10.2 + resolution: "eslint-plugin-jsx-a11y@npm:6.10.2" dependencies: - "@babel/runtime": ^7.20.7 - aria-query: ^5.1.3 - array-includes: ^3.1.6 - array.prototype.flatmap: ^1.3.1 - ast-types-flow: ^0.0.7 - axe-core: ^4.6.2 - axobject-query: ^3.1.1 + aria-query: ^5.3.2 + array-includes: ^3.1.8 + array.prototype.flatmap: ^1.3.2 + ast-types-flow: ^0.0.8 + axe-core: ^4.10.0 + axobject-query: ^4.1.0 damerau-levenshtein: ^1.0.8 emoji-regex: ^9.2.2 - has: ^1.0.3 - jsx-ast-utils: ^3.3.3 - language-tags: =1.0.5 + hasown: ^2.0.2 + jsx-ast-utils: ^3.3.5 + language-tags: ^1.0.9 minimatch: ^3.1.2 - object.entries: ^1.1.6 - object.fromentries: ^2.0.6 - semver: ^6.3.0 - peerDependencies: - eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 - checksum: f166dd5fe7257c7b891c6692e6a3ede6f237a14043ae3d97581daf318fc5833ddc6b4871aa34ab7656187430170500f6d806895747ea17ecdf8231a666c3c2fd - languageName: node - linkType: hard - -"eslint-plugin-react-hooks@npm:^4.5.0 || 5.0.0-canary-7118f5dd7-20230705": - version: 5.0.0-canary-7118f5dd7-20230705 - resolution: "eslint-plugin-react-hooks@npm:5.0.0-canary-7118f5dd7-20230705" + object.fromentries: ^2.0.8 + safe-regex-test: ^1.0.3 + string.prototype.includes: ^2.0.1 peerDependencies: - eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 - checksum: 20e334e60bf5e56cf9f760598411847525c3ff826e6ae7757c8efdc60b33d47a97ddbe1b94ce95956ea9f7bbef37995b19c716be50bd44e6a1e789cba08b6224 + eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 || ^9 + checksum: 0cc861398fa26ada61ed5703eef5b335495fcb96253263dcd5e399488ff019a2636372021baacc040e3560d1a34bfcd5d5ad9f1754f44cd0509c956f7df94050 languageName: node linkType: hard -"eslint-plugin-react@npm:^7.33.2": - version: 7.33.2 - resolution: "eslint-plugin-react@npm:7.33.2" - dependencies: - array-includes: ^3.1.6 - array.prototype.flatmap: ^1.3.1 - array.prototype.tosorted: ^1.1.1 - doctrine: ^2.1.0 - es-iterator-helpers: ^1.0.12 - estraverse: ^5.3.0 - jsx-ast-utils: ^2.4.1 || ^3.0.0 - minimatch: ^3.1.2 - object.entries: ^1.1.6 - object.fromentries: ^2.0.6 - object.hasown: ^1.1.2 - object.values: ^1.1.6 - prop-types: ^15.8.1 - resolve: ^2.0.0-next.4 - semver: ^6.3.1 - string.prototype.matchall: ^4.0.8 +"eslint-plugin-react-hooks@npm:^5.0.0": + version: 5.2.0 + resolution: "eslint-plugin-react-hooks@npm:5.2.0" peerDependencies: - eslint: ^3 || ^4 || ^5 || ^6 || ^7 || ^8 - checksum: b4c3d76390b0ae6b6f9fed78170604cc2c04b48e6778a637db339e8e3911ec9ef22510b0ae77c429698151d0f1b245f282177f384105b6830e7b29b9c9b26610 + eslint: ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0 + checksum: 5920736a78c0075488e7e30e04fbe5dba5b6b5a6c8c4b5742fdae6f9b8adf4ee387bc45dc6e03b4012865e6fd39d134da7b83a40f57c90cc9eecf80692824e3a languageName: node linkType: hard -"eslint-plugin-react@npm:^7.37.5": +"eslint-plugin-react@npm:^7.37.0, eslint-plugin-react@npm:latest": version: 7.37.5 resolution: "eslint-plugin-react@npm:7.37.5" dependencies: @@ -10291,13 +10477,13 @@ __metadata: languageName: node linkType: hard -"eslint-scope@npm:^7.2.0": - version: 7.2.0 - resolution: "eslint-scope@npm:7.2.0" +"eslint-scope@npm:^7.2.2": + version: 7.2.2 + resolution: "eslint-scope@npm:7.2.2" dependencies: esrecurse: ^4.3.0 estraverse: ^5.2.0 - checksum: 64591a2d8b244ade9c690b59ef238a11d5c721a98bcee9e9f445454f442d03d3e04eda88e95a4daec558220a99fa384309d9faae3d459bd40e7a81b4063980ae + checksum: ec97dbf5fb04b94e8f4c5a91a7f0a6dd3c55e46bfc7bbcd0e3138c3a76977570e02ed89a1810c778dcd72072ff0e9621ba1379b4babe53921d71e2e4486fda3e languageName: node linkType: hard @@ -10322,26 +10508,27 @@ __metadata: languageName: node linkType: hard -"eslint@npm:8.44.0": - version: 8.44.0 - resolution: "eslint@npm:8.44.0" +"eslint@npm:^8": + version: 8.57.1 + resolution: "eslint@npm:8.57.1" dependencies: "@eslint-community/eslint-utils": ^4.2.0 - "@eslint-community/regexpp": ^4.4.0 - "@eslint/eslintrc": ^2.1.0 - "@eslint/js": 8.44.0 - "@humanwhocodes/config-array": ^0.11.10 + "@eslint-community/regexpp": ^4.6.1 + "@eslint/eslintrc": ^2.1.4 + "@eslint/js": 8.57.1 + "@humanwhocodes/config-array": ^0.13.0 "@humanwhocodes/module-importer": ^1.0.1 "@nodelib/fs.walk": ^1.2.8 - ajv: ^6.10.0 + "@ungap/structured-clone": ^1.2.0 + ajv: ^6.12.4 chalk: ^4.0.0 cross-spawn: ^7.0.2 debug: ^4.3.2 doctrine: ^3.0.0 escape-string-regexp: ^4.0.0 - eslint-scope: ^7.2.0 - eslint-visitor-keys: ^3.4.1 - espree: ^9.6.0 + eslint-scope: ^7.2.2 + eslint-visitor-keys: ^3.4.3 + espree: ^9.6.1 esquery: ^1.4.2 esutils: ^2.0.2 fast-deep-equal: ^3.1.3 @@ -10351,7 +10538,6 @@ __metadata: globals: ^13.19.0 graphemer: ^1.4.0 ignore: ^5.2.0 - import-fresh: ^3.0.0 imurmurhash: ^0.1.4 is-glob: ^4.0.0 is-path-inside: ^3.0.3 @@ -10363,22 +10549,21 @@ __metadata: natural-compare: ^1.4.0 optionator: ^0.9.3 strip-ansi: ^6.0.1 - strip-json-comments: ^3.1.0 text-table: ^0.2.0 bin: eslint: bin/eslint.js - checksum: d06309ce4aafb9d27d558c8e5e5aa5cba3bbec3ce8ceccbc7d4b7a35f2b67fd40189159155553270e2e6febeb69bd8a3b60d6241c8f5ddc2ef1702ccbd328501 + checksum: e2489bb7f86dd2011967759a09164e65744ef7688c310bc990612fc26953f34cc391872807486b15c06833bdff737726a23e9b4cdba5de144c311377dc41d91b languageName: node linkType: hard -"espree@npm:^9.6.0": - version: 9.6.0 - resolution: "espree@npm:9.6.0" +"espree@npm:^9.6.0, espree@npm:^9.6.1": + version: 9.6.1 + resolution: "espree@npm:9.6.1" dependencies: acorn: ^8.9.0 acorn-jsx: ^5.3.2 eslint-visitor-keys: ^3.4.1 - checksum: 1287979510efb052a6a97c73067ea5d0a40701b29adde87bbe2d3eb1667e39ca55e8129e20e2517fed3da570150e7ef470585228459a8f3e3755f45007a1c662 + checksum: eb8c149c7a2a77b3f33a5af80c10875c3abd65450f60b8af6db1bfcfa8f101e21c1e56a561c6dc13b848e18148d43469e7cd208506238554fb5395a9ea5a1ab9 languageName: node linkType: hard @@ -10393,11 +10578,11 @@ __metadata: linkType: hard "esquery@npm:^1.4.2": - version: 1.5.0 - resolution: "esquery@npm:1.5.0" + version: 1.6.0 + resolution: "esquery@npm:1.6.0" dependencies: estraverse: ^5.1.0 - checksum: aefb0d2596c230118656cd4ec7532d447333a410a48834d80ea648b1e7b5c9bc9ed8b5e33a89cb04e487b60d622f44cf5713bf4abed7c97343edefdc84a35900 + checksum: 08ec4fe446d9ab27186da274d979558557fbdbbd10968fa9758552482720c54152a5640e08b9009e5a30706b66aba510692054d4129d32d0e12e05bbc0b96fb2 languageName: node linkType: hard @@ -10674,6 +10859,19 @@ __metadata: languageName: node linkType: hard +"fast-glob@npm:3.3.1": + version: 3.3.1 + resolution: "fast-glob@npm:3.3.1" + dependencies: + "@nodelib/fs.stat": ^2.0.2 + "@nodelib/fs.walk": ^1.2.3 + glob-parent: ^5.1.2 + merge2: ^1.3.0 + micromatch: ^4.0.4 + checksum: b6f3add6403e02cf3a798bfbb1183d0f6da2afd368f27456010c0bc1f9640aea308243d4cb2c0ab142f618276e65ecb8be1661d7c62a7b4e5ba774b9ce5432e5 + languageName: node + linkType: hard + "fast-glob@npm:^3.2.11, fast-glob@npm:^3.2.12, fast-glob@npm:^3.2.7, fast-glob@npm:^3.2.9": version: 3.3.0 resolution: "fast-glob@npm:3.3.0" @@ -11512,21 +11710,6 @@ __metadata: languageName: node linkType: hard -"glob@npm:10.3.10": - version: 10.3.10 - resolution: "glob@npm:10.3.10" - dependencies: - foreground-child: ^3.1.0 - jackspeak: ^2.3.5 - minimatch: ^9.0.1 - minipass: ^5.0.0 || ^6.0.2 || ^7.0.0 - path-scurry: ^1.10.1 - bin: - glob: dist/esm/bin.mjs - checksum: 4f2fe2511e157b5a3f525a54092169a5f92405f24d2aed3142f4411df328baca13059f4182f1db1bf933e2c69c0bd89e57ae87edd8950cba8c7ccbe84f721cf3 - languageName: node - linkType: hard - "glob@npm:7.1.6": version: 7.1.6 resolution: "glob@npm:7.1.6" @@ -11619,11 +11802,11 @@ __metadata: linkType: hard "globals@npm:^13.19.0": - version: 13.20.0 - resolution: "globals@npm:13.20.0" + version: 13.24.0 + resolution: "globals@npm:13.24.0" dependencies: type-fest: ^0.20.2 - checksum: ad1ecf914bd051325faad281d02ea2c0b1df5d01bd94d368dcc5513340eac41d14b3c61af325768e3c7f8d44576e72780ec0b6f2d366121f8eec6e03c3a3b97a + checksum: 56066ef058f6867c04ff203b8a44c15b038346a62efbc3060052a1016be9f56f4cf0b2cd45b74b22b81e521a889fc7786c73691b0549c2f3a6e825b3d394f43c languageName: node linkType: hard @@ -11704,7 +11887,7 @@ __metadata: languageName: node linkType: hard -"graceful-fs@npm:^4.1.11, graceful-fs@npm:^4.1.2, graceful-fs@npm:^4.1.6, graceful-fs@npm:^4.2.0, graceful-fs@npm:^4.2.11, graceful-fs@npm:^4.2.4, graceful-fs@npm:^4.2.6, graceful-fs@npm:^4.2.9": +"graceful-fs@npm:^4.1.11, graceful-fs@npm:^4.1.2, graceful-fs@npm:^4.1.6, graceful-fs@npm:^4.2.0, graceful-fs@npm:^4.2.4, graceful-fs@npm:^4.2.6, graceful-fs@npm:^4.2.9": version: 4.2.11 resolution: "graceful-fs@npm:4.2.11" checksum: ac85f94da92d8eb6b7f5a8b20ce65e43d66761c55ce85ac96df6865308390da45a8d3f0296dd3a663de65d30ba497bd46c696cc1e248c72b13d6d567138a4fc7 @@ -12167,10 +12350,11 @@ __metadata: date-fns: ^2.30.0 dayjs: ^1.11.10 dotenv-cli: ^7.2.1 - eslint: 8.44.0 - eslint-config-next: ^14.1.0 + eslint: ^8 + eslint-config-next: ^15.4.3 eslint-config-prettier: ^8.8.0 - eslint-plugin-react: ^7.37.5 + eslint-plugin-import: ^2.32.0 + eslint-plugin-react: latest eslint-plugin-storybook: ^0.6.12 eslint-plugin-unused-imports: ^4.1.4 fast-xml-parser: ^4.2.5 @@ -12184,7 +12368,7 @@ __metadata: lint-staged: ^15.2.0 lodash: ^4.17.21 lru-cache: ^10.0.0 - next: ^14.1.0 + next: ^15.4.3 nodemon: ^3.1.4 postcss: ^8.4.30 postcss-preset-mantine: ^1.7.0 @@ -12195,8 +12379,8 @@ __metadata: prisma: ^5.21.1 prisma-json-types-generator: ^3.0.2 querystring: ^0.2.1 - react: 18.3.0-canary-7118f5dd7-20230705 - react-dom: 18.3.0-canary-7118f5dd7-20230705 + react: ^19.1.0 + react-dom: ^19.1.0 react-hook-form: ^7.45.1 react-icons: ^4.10.1 server-only: ^0.0.1 @@ -12351,6 +12535,13 @@ __metadata: languageName: node linkType: hard +"ignore@npm:^7.0.0": + version: 7.0.5 + resolution: "ignore@npm:7.0.5" + checksum: d0862bf64d3d58bf34d5fb0a9f725bec9ca5ce8cd1aecc8f28034269e8f69b8009ffd79ca3eda96962a6a444687781cd5efdb8c7c8ddc0a6996e36d31c217f14 + languageName: node + linkType: hard + "image-size@npm:^1.0.0": version: 1.0.2 resolution: "image-size@npm:1.0.2" @@ -12369,7 +12560,7 @@ __metadata: languageName: node linkType: hard -"import-fresh@npm:^3.0.0, import-fresh@npm:^3.2.1": +"import-fresh@npm:^3.2.1": version: 3.3.0 resolution: "import-fresh@npm:3.3.0" dependencies: @@ -12441,7 +12632,7 @@ __metadata: languageName: node linkType: hard -"internal-slot@npm:^1.0.3, internal-slot@npm:^1.0.4, internal-slot@npm:^1.0.5": +"internal-slot@npm:^1.0.4, internal-slot@npm:^1.0.5": version: 1.0.5 resolution: "internal-slot@npm:1.0.5" dependencies: @@ -12609,7 +12800,7 @@ __metadata: languageName: node linkType: hard -"is-core-module@npm:^2.11.0, is-core-module@npm:^2.12.0, is-core-module@npm:^2.9.0": +"is-core-module@npm:^2.11.0, is-core-module@npm:^2.12.0": version: 2.12.1 resolution: "is-core-module@npm:2.12.1" dependencies: @@ -12627,6 +12818,15 @@ __metadata: languageName: node linkType: hard +"is-core-module@npm:^2.16.0, is-core-module@npm:^2.16.1": + version: 2.16.1 + resolution: "is-core-module@npm:2.16.1" + dependencies: + hasown: ^2.0.2 + checksum: 6ec5b3c42d9cbf1ac23f164b16b8a140c3cec338bf8f884c076ca89950c7cc04c33e78f02b8cae7ff4751f3247e3174b2330f1fe4de194c7210deb8b1ea316a7 + languageName: node + linkType: hard + "is-data-view@npm:^1.0.1, is-data-view@npm:^1.0.2": version: 1.0.2 resolution: "is-data-view@npm:1.0.2" @@ -12696,15 +12896,6 @@ __metadata: languageName: node linkType: hard -"is-finalizationregistry@npm:^1.0.2": - version: 1.0.2 - resolution: "is-finalizationregistry@npm:1.0.2" - dependencies: - call-bind: ^1.0.2 - checksum: 4f243a8e06228cd45bdab8608d2cb7abfc20f6f0189c8ac21ea8d603f1f196eabd531ce0bb8e08cbab047e9845ef2c191a3761c9a17ad5cabf8b35499c4ad35d - languageName: node - linkType: hard - "is-finalizationregistry@npm:^1.1.0": version: 1.1.1 resolution: "is-finalizationregistry@npm:1.1.1" @@ -13182,19 +13373,6 @@ __metadata: languageName: node linkType: hard -"iterator.prototype@npm:^1.1.2": - version: 1.1.2 - resolution: "iterator.prototype@npm:1.1.2" - dependencies: - define-properties: ^1.2.1 - get-intrinsic: ^1.2.1 - has-symbols: ^1.0.3 - reflect.getprototypeof: ^1.0.4 - set-function-name: ^2.0.1 - checksum: d8a507e2ccdc2ce762e8a1d3f4438c5669160ac72b88b648e59a688eec6bc4e64b22338e74000518418d9e693faf2a092d2af21b9ec7dbf7763b037a54701168 - languageName: node - linkType: hard - "iterator.prototype@npm:^1.1.4": version: 1.1.5 resolution: "iterator.prototype@npm:1.1.5" @@ -13222,19 +13400,6 @@ __metadata: languageName: node linkType: hard -"jackspeak@npm:^2.3.5": - version: 2.3.6 - resolution: "jackspeak@npm:2.3.6" - dependencies: - "@isaacs/cliui": ^8.0.2 - "@pkgjs/parseargs": ^0.11.0 - dependenciesMeta: - "@pkgjs/parseargs": - optional: true - checksum: 57d43ad11eadc98cdfe7496612f6bbb5255ea69fe51ea431162db302c2a11011642f50cfad57288bd0aea78384a0612b16e131944ad8ecd09d619041c8531b54 - languageName: node - linkType: hard - "jackspeak@npm:^3.1.2": version: 3.4.3 resolution: "jackspeak@npm:3.4.3" @@ -13515,7 +13680,7 @@ __metadata: languageName: node linkType: hard -"jsx-ast-utils@npm:^2.4.1 || ^3.0.0, jsx-ast-utils@npm:^3.3.3": +"jsx-ast-utils@npm:^2.4.1 || ^3.0.0": version: 3.3.4 resolution: "jsx-ast-utils@npm:3.3.4" dependencies: @@ -13527,6 +13692,18 @@ __metadata: languageName: node linkType: hard +"jsx-ast-utils@npm:^3.3.5": + version: 3.3.5 + resolution: "jsx-ast-utils@npm:3.3.5" + dependencies: + array-includes: ^3.1.6 + array.prototype.flat: ^1.3.1 + object.assign: ^4.1.4 + object.values: ^1.1.6 + checksum: f4b05fa4d7b5234230c905cfa88d36dc8a58a6666975a3891429b1a8cdc8a140bca76c297225cb7a499fad25a2c052ac93934449a2c31a44fc9edd06c773780a + languageName: node + linkType: hard + "jwa@npm:^1.4.1": version: 1.4.1 resolution: "jwa@npm:1.4.1" @@ -13604,19 +13781,19 @@ __metadata: languageName: node linkType: hard -"language-subtag-registry@npm:~0.3.2": - version: 0.3.22 - resolution: "language-subtag-registry@npm:0.3.22" - checksum: 8ab70a7e0e055fe977ac16ea4c261faec7205ac43db5e806f72e5b59606939a3b972c4bd1e10e323b35d6ffa97c3e1c4c99f6553069dad2dfdd22020fa3eb56a +"language-subtag-registry@npm:^0.3.20": + version: 0.3.23 + resolution: "language-subtag-registry@npm:0.3.23" + checksum: 0b64c1a6c5431c8df648a6d25594ff280613c886f4a1a542d9b864e5472fb93e5c7856b9c41595c38fac31370328fc79fcc521712e89ea6d6866cbb8e0995d81 languageName: node linkType: hard -"language-tags@npm:=1.0.5": - version: 1.0.5 - resolution: "language-tags@npm:1.0.5" +"language-tags@npm:^1.0.9": + version: 1.0.9 + resolution: "language-tags@npm:1.0.9" dependencies: - language-subtag-registry: ~0.3.2 - checksum: c81b5d8b9f5f9cfd06ee71ada6ddfe1cf83044dd5eeefcd1e420ad491944da8957688db4a0a9bc562df4afdc2783425cbbdfd152c01d93179cf86888903123cf + language-subtag-registry: ^0.3.20 + checksum: 57c530796dc7179914dee71bc94f3747fd694612480241d0453a063777265dfe3a951037f7acb48f456bf167d6eb419d4c00263745326b3ba1cdcf4657070e78 languageName: node linkType: hard @@ -13868,7 +14045,7 @@ __metadata: languageName: node linkType: hard -"loose-envify@npm:^1.0.0, loose-envify@npm:^1.1.0, loose-envify@npm:^1.4.0": +"loose-envify@npm:^1.0.0, loose-envify@npm:^1.4.0": version: 1.4.0 resolution: "loose-envify@npm:1.4.0" dependencies: @@ -14547,30 +14724,30 @@ __metadata: languageName: node linkType: hard -"next@npm:^14.1.0": - version: 14.1.0 - resolution: "next@npm:14.1.0" +"next@npm:^15.4.3": + version: 15.4.3 + resolution: "next@npm:15.4.3" dependencies: - "@next/env": 14.1.0 - "@next/swc-darwin-arm64": 14.1.0 - "@next/swc-darwin-x64": 14.1.0 - "@next/swc-linux-arm64-gnu": 14.1.0 - "@next/swc-linux-arm64-musl": 14.1.0 - "@next/swc-linux-x64-gnu": 14.1.0 - "@next/swc-linux-x64-musl": 14.1.0 - "@next/swc-win32-arm64-msvc": 14.1.0 - "@next/swc-win32-ia32-msvc": 14.1.0 - "@next/swc-win32-x64-msvc": 14.1.0 - "@swc/helpers": 0.5.2 - busboy: 1.6.0 + "@next/env": 15.4.3 + "@next/swc-darwin-arm64": 15.4.3 + "@next/swc-darwin-x64": 15.4.3 + "@next/swc-linux-arm64-gnu": 15.4.3 + "@next/swc-linux-arm64-musl": 15.4.3 + "@next/swc-linux-x64-gnu": 15.4.3 + "@next/swc-linux-x64-musl": 15.4.3 + "@next/swc-win32-arm64-msvc": 15.4.3 + "@next/swc-win32-x64-msvc": 15.4.3 + "@swc/helpers": 0.5.15 caniuse-lite: ^1.0.30001579 - graceful-fs: ^4.2.11 postcss: 8.4.31 - styled-jsx: 5.1.1 + sharp: ^0.34.3 + styled-jsx: 5.1.6 peerDependencies: "@opentelemetry/api": ^1.1.0 - react: ^18.2.0 - react-dom: ^18.2.0 + "@playwright/test": ^1.51.1 + babel-plugin-react-compiler: "*" + react: ^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0 + react-dom: ^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0 sass: ^1.3.0 dependenciesMeta: "@next/swc-darwin-arm64": @@ -14587,18 +14764,22 @@ __metadata: optional: true "@next/swc-win32-arm64-msvc": optional: true - "@next/swc-win32-ia32-msvc": - optional: true "@next/swc-win32-x64-msvc": optional: true + sharp: + optional: true peerDependenciesMeta: "@opentelemetry/api": optional: true + "@playwright/test": + optional: true + babel-plugin-react-compiler: + optional: true sass: optional: true bin: next: dist/bin/next - checksum: 077fd76a6fe7127a8be3d11035dcefb2c829f304aaa85144e0d1b531a1549b6c9bb99459af1ef0782c1f1110ca08f6f33efd293a2dc51672dd9dc45ede608ecf + checksum: cc01cab278f1a9bf3513099be4153e9309a12d2aff06e8389a884a33f804a9d525a1b95a8356a8f3cba0e17a09db94517cb386124893fc11c20c731215e8f56a languageName: node linkType: hard @@ -14986,17 +15167,6 @@ __metadata: languageName: node linkType: hard -"object.entries@npm:^1.1.6": - version: 1.1.6 - resolution: "object.entries@npm:1.1.6" - dependencies: - call-bind: ^1.0.2 - define-properties: ^1.1.4 - es-abstract: ^1.20.4 - checksum: 0f8c47517e6a9a980241eafe3b73de11e59511883173c2b93d67424a008e47e11b77c80e431ad1d8a806f6108b225a1cab9223e53e555776c612a24297117d28 - languageName: node - linkType: hard - "object.entries@npm:^1.1.9": version: 1.1.9 resolution: "object.entries@npm:1.1.9" @@ -15009,17 +15179,6 @@ __metadata: languageName: node linkType: hard -"object.fromentries@npm:^2.0.6": - version: 2.0.6 - resolution: "object.fromentries@npm:2.0.6" - dependencies: - call-bind: ^1.0.2 - define-properties: ^1.1.4 - es-abstract: ^1.20.4 - checksum: 453c6d694180c0c30df451b60eaf27a5b9bca3fb43c37908fd2b78af895803dc631242bcf05582173afa40d8d0e9c96e16e8874b39471aa53f3ac1f98a085d85 - languageName: node - linkType: hard - "object.fromentries@npm:^2.0.8": version: 2.0.8 resolution: "object.fromentries@npm:2.0.8" @@ -15032,25 +15191,14 @@ __metadata: languageName: node linkType: hard -"object.groupby@npm:^1.0.0": - version: 1.0.1 - resolution: "object.groupby@npm:1.0.1" - dependencies: - call-bind: ^1.0.2 - define-properties: ^1.2.0 - es-abstract: ^1.22.1 - get-intrinsic: ^1.2.1 - checksum: d7959d6eaaba358b1608066fc67ac97f23ce6f573dc8fc661f68c52be165266fcb02937076aedb0e42722fdda0bdc0bbf74778196ac04868178888e9fd3b78b5 - languageName: node - linkType: hard - -"object.hasown@npm:^1.1.2": - version: 1.1.2 - resolution: "object.hasown@npm:1.1.2" +"object.groupby@npm:^1.0.3": + version: 1.0.3 + resolution: "object.groupby@npm:1.0.3" dependencies: - define-properties: ^1.1.4 - es-abstract: ^1.20.4 - checksum: b936572536db0cdf38eb30afd2f1026a8b6f2cc5d2c4497c9d9bbb01eaf3e980dead4fd07580cfdd098e6383e5a9db8212d3ea0c6bdd2b5e68c60aa7e3b45566 + call-bind: ^1.0.7 + define-properties: ^1.2.1 + es-abstract: ^1.23.2 + checksum: 0d30693ca3ace29720bffd20b3130451dca7a56c612e1926c0a1a15e4306061d84410bdb1456be2656c5aca53c81b7a3661eceaa362db1bba6669c2c9b6d1982 languageName: node linkType: hard @@ -16529,15 +16677,14 @@ __metadata: languageName: node linkType: hard -"react-dom@npm:18.3.0-canary-7118f5dd7-20230705": - version: 18.3.0-canary-7118f5dd7-20230705 - resolution: "react-dom@npm:18.3.0-canary-7118f5dd7-20230705" +"react-dom@npm:^19.1.0": + version: 19.1.0 + resolution: "react-dom@npm:19.1.0" dependencies: - loose-envify: ^1.1.0 - scheduler: 0.24.0-canary-7118f5dd7-20230705 + scheduler: ^0.26.0 peerDependencies: - react: 18.3.0-canary-7118f5dd7-20230705 - checksum: a33f49a92df0234358461c2c5fb1fb270267b06e7090b4a7c2c4a5082bb088496b4eec67feb2a1ddf22c797b57004b00017be402d94fcd81e7a08826d1f2155b + react: ^19.1.0 + checksum: 1d154b6543467095ac269e61ca59db546f34ef76bcdeb90f2dad41d682cd210aae492e70c85010ed5d0a2caea225e9a55139ebc1a615ee85bf197d7f99678cdf languageName: node linkType: hard @@ -16700,12 +16847,10 @@ __metadata: languageName: node linkType: hard -"react@npm:18.3.0-canary-7118f5dd7-20230705": - version: 18.3.0-canary-7118f5dd7-20230705 - resolution: "react@npm:18.3.0-canary-7118f5dd7-20230705" - dependencies: - loose-envify: ^1.1.0 - checksum: f8d6c697aa57afbd28faae4c7f82a1b38180fa6e2ac9e45fdd9eedddf65753742eb744e7b9d30a1e173f45510f2b38a29e61786a1d3254a46f39f9172a85ace5 +"react@npm:^19.1.0": + version: 19.1.0 + resolution: "react@npm:19.1.0" + checksum: c0905f8cfb878b0543a5522727e5ed79c67c8111dc16ceee135b7fe19dce77b2c1c19293513061a8934e721292bfc1517e0487e262d1906f306bdf95fa54d02f languageName: node linkType: hard @@ -16823,20 +16968,6 @@ __metadata: languageName: node linkType: hard -"reflect.getprototypeof@npm:^1.0.4": - version: 1.0.4 - resolution: "reflect.getprototypeof@npm:1.0.4" - dependencies: - call-bind: ^1.0.2 - define-properties: ^1.2.0 - es-abstract: ^1.22.1 - get-intrinsic: ^1.2.1 - globalthis: ^1.0.3 - which-builtin-type: ^1.1.3 - checksum: 16e2361988dbdd23274b53fb2b1b9cefeab876c3941a2543b4cadac6f989e3db3957b07a44aac46cfceb3e06e2871785ec2aac992d824f76292f3b5ee87f66f2 - languageName: node - linkType: hard - "reflect.getprototypeof@npm:^1.0.6, reflect.getprototypeof@npm:^1.0.9": version: 1.0.10 resolution: "reflect.getprototypeof@npm:1.0.10" @@ -17116,16 +17247,16 @@ __metadata: languageName: node linkType: hard -"resolve@npm:^2.0.0-next.4": - version: 2.0.0-next.4 - resolution: "resolve@npm:2.0.0-next.4" +"resolve@npm:^1.22.4": + version: 1.22.10 + resolution: "resolve@npm:1.22.10" dependencies: - is-core-module: ^2.9.0 + is-core-module: ^2.16.0 path-parse: ^1.0.7 supports-preserve-symlinks-flag: ^1.0.0 bin: resolve: bin/resolve - checksum: c438ac9a650f2030fd074219d7f12ceb983b475da2d89ad3d6dd05fbf6b7a0a8cd37d4d10b43cb1f632bc19f22246ab7f36ebda54d84a29bfb2910a0680906d3 + checksum: ab7a32ff4046fcd7c6fdd525b24a7527847d03c3650c733b909b01b757f92eb23510afa9cc3e9bf3f26a3e073b48c88c706dfd4c1d2fb4a16a96b73b6328ddcf languageName: node linkType: hard @@ -17181,16 +17312,16 @@ __metadata: languageName: node linkType: hard -"resolve@patch:resolve@^2.0.0-next.4#~builtin": - version: 2.0.0-next.4 - resolution: "resolve@patch:resolve@npm%3A2.0.0-next.4#~builtin::version=2.0.0-next.4&hash=c3c19d" +"resolve@patch:resolve@^1.22.4#~builtin": + version: 1.22.10 + resolution: "resolve@patch:resolve@npm%3A1.22.10#~builtin::version=1.22.10&hash=c3c19d" dependencies: - is-core-module: ^2.9.0 + is-core-module: ^2.16.0 path-parse: ^1.0.7 supports-preserve-symlinks-flag: ^1.0.0 bin: resolve: bin/resolve - checksum: 4bf9f4f8a458607af90518ff73c67a4bc1a38b5a23fef2bb0ccbd45e8be89820a1639b637b0ba377eb2be9eedfb1739a84cde24fe4cd670c8207d8fea922b011 + checksum: 8aac1e4e4628bd00bf4b94b23de137dd3fe44097a8d528fd66db74484be929936e20c696e1a3edf4488f37e14180b73df6f600992baea3e089e8674291f16c9d languageName: node linkType: hard @@ -17412,7 +17543,7 @@ __metadata: languageName: node linkType: hard -"safe-regex-test@npm:^1.1.0": +"safe-regex-test@npm:^1.0.3, safe-regex-test@npm:^1.1.0": version: 1.1.0 resolution: "safe-regex-test@npm:1.1.0" dependencies: @@ -17479,12 +17610,10 @@ __metadata: languageName: node linkType: hard -"scheduler@npm:0.24.0-canary-7118f5dd7-20230705": - version: 0.24.0-canary-7118f5dd7-20230705 - resolution: "scheduler@npm:0.24.0-canary-7118f5dd7-20230705" - dependencies: - loose-envify: ^1.1.0 - checksum: ee56c760d8ae1250d06532fa67c6a24273614924b0d3b6129bc112050b2016f96aaa439f84a4a370f39615e280e888466471eaf7624a304da42ff197d555f844 +"scheduler@npm:^0.26.0": + version: 0.26.0 + resolution: "scheduler@npm:0.26.0" + checksum: c63a9f1c0e5089b537231cff6c11f75455b5c8625ae09535c1d7cd0a1b0c77ceecdd9f1074e5e063da5d8dc11e73e8033dcac3361791088be08a6e60c0283ed9 languageName: node linkType: hard @@ -17587,6 +17716,15 @@ __metadata: languageName: node linkType: hard +"semver@npm:^7.7.2": + version: 7.7.2 + resolution: "semver@npm:7.7.2" + bin: + semver: bin/semver.js + checksum: dd94ba8f1cbc903d8eeb4dd8bf19f46b3deb14262b6717d0de3c804b594058ae785ef2e4b46c5c3b58733c99c83339068203002f9e37cfe44f7e2cc5e3d2f621 + languageName: node + linkType: hard + "semver@npm:~7.0.0": version: 7.0.0 resolution: "semver@npm:7.0.0" @@ -17718,7 +17856,7 @@ __metadata: languageName: node linkType: hard -"set-function-name@npm:^2.0.0, set-function-name@npm:^2.0.1": +"set-function-name@npm:^2.0.0": version: 2.0.1 resolution: "set-function-name@npm:2.0.1" dependencies: @@ -17804,6 +17942,84 @@ __metadata: languageName: node linkType: hard +"sharp@npm:^0.34.3": + version: 0.34.3 + resolution: "sharp@npm:0.34.3" + dependencies: + "@img/sharp-darwin-arm64": 0.34.3 + "@img/sharp-darwin-x64": 0.34.3 + "@img/sharp-libvips-darwin-arm64": 1.2.0 + "@img/sharp-libvips-darwin-x64": 1.2.0 + "@img/sharp-libvips-linux-arm": 1.2.0 + "@img/sharp-libvips-linux-arm64": 1.2.0 + "@img/sharp-libvips-linux-ppc64": 1.2.0 + "@img/sharp-libvips-linux-s390x": 1.2.0 + "@img/sharp-libvips-linux-x64": 1.2.0 + "@img/sharp-libvips-linuxmusl-arm64": 1.2.0 + "@img/sharp-libvips-linuxmusl-x64": 1.2.0 + "@img/sharp-linux-arm": 0.34.3 + "@img/sharp-linux-arm64": 0.34.3 + "@img/sharp-linux-ppc64": 0.34.3 + "@img/sharp-linux-s390x": 0.34.3 + "@img/sharp-linux-x64": 0.34.3 + "@img/sharp-linuxmusl-arm64": 0.34.3 + "@img/sharp-linuxmusl-x64": 0.34.3 + "@img/sharp-wasm32": 0.34.3 + "@img/sharp-win32-arm64": 0.34.3 + "@img/sharp-win32-ia32": 0.34.3 + "@img/sharp-win32-x64": 0.34.3 + color: ^4.2.3 + detect-libc: ^2.0.4 + semver: ^7.7.2 + dependenciesMeta: + "@img/sharp-darwin-arm64": + optional: true + "@img/sharp-darwin-x64": + optional: true + "@img/sharp-libvips-darwin-arm64": + optional: true + "@img/sharp-libvips-darwin-x64": + optional: true + "@img/sharp-libvips-linux-arm": + optional: true + "@img/sharp-libvips-linux-arm64": + optional: true + "@img/sharp-libvips-linux-ppc64": + optional: true + "@img/sharp-libvips-linux-s390x": + optional: true + "@img/sharp-libvips-linux-x64": + optional: true + "@img/sharp-libvips-linuxmusl-arm64": + optional: true + "@img/sharp-libvips-linuxmusl-x64": + optional: true + "@img/sharp-linux-arm": + optional: true + "@img/sharp-linux-arm64": + optional: true + "@img/sharp-linux-ppc64": + optional: true + "@img/sharp-linux-s390x": + optional: true + "@img/sharp-linux-x64": + optional: true + "@img/sharp-linuxmusl-arm64": + optional: true + "@img/sharp-linuxmusl-x64": + optional: true + "@img/sharp-wasm32": + optional: true + "@img/sharp-win32-arm64": + optional: true + "@img/sharp-win32-ia32": + optional: true + "@img/sharp-win32-x64": + optional: true + checksum: f1d70751ab15080957f1a5db5583d00b002e644878e3e9a6d00bdbb31255f6e9df218ef82d96d3588b83023681f35bcf03e265a44e214b11306ef3fb439ac04d + languageName: node + linkType: hard + "shebang-command@npm:^2.0.0": version: 2.0.0 resolution: "shebang-command@npm:2.0.0" @@ -18271,13 +18487,6 @@ __metadata: languageName: node linkType: hard -"streamsearch@npm:^1.1.0": - version: 1.1.0 - resolution: "streamsearch@npm:1.1.0" - checksum: 1cce16cea8405d7a233d32ca5e00a00169cc0e19fbc02aa839959985f267335d435c07f96e5e0edd0eadc6d39c98d5435fb5bbbdefc62c41834eadc5622ad942 - languageName: node - linkType: hard - "streamx@npm:^2.15.0": version: 2.15.0 resolution: "streamx@npm:2.15.0" @@ -18328,6 +18537,17 @@ __metadata: languageName: node linkType: hard +"string.prototype.includes@npm:^2.0.1": + version: 2.0.1 + resolution: "string.prototype.includes@npm:2.0.1" + dependencies: + call-bind: ^1.0.7 + define-properties: ^1.2.1 + es-abstract: ^1.23.3 + checksum: ed4b7058b092f30d41c4df1e3e805eeea92479d2c7a886aa30f42ae32fde8924a10cc99cccc99c29b8e18c48216608a0fe6bf887f8b4aadf9559096a758f313a + languageName: node + linkType: hard + "string.prototype.matchall@npm:^4.0.12": version: 4.0.12 resolution: "string.prototype.matchall@npm:4.0.12" @@ -18349,22 +18569,6 @@ __metadata: languageName: node linkType: hard -"string.prototype.matchall@npm:^4.0.8": - version: 4.0.8 - resolution: "string.prototype.matchall@npm:4.0.8" - dependencies: - call-bind: ^1.0.2 - define-properties: ^1.1.4 - es-abstract: ^1.20.4 - get-intrinsic: ^1.1.3 - has-symbols: ^1.0.3 - internal-slot: ^1.0.3 - regexp.prototype.flags: ^1.4.3 - side-channel: ^1.0.4 - checksum: 952da3a818de42ad1c10b576140a5e05b4de7b34b8d9dbf00c3ac8c1293e9c0f533613a39c5cda53e0a8221f2e710bc2150e730b1c2278d60004a8a35726efb6 - languageName: node - linkType: hard - "string.prototype.repeat@npm:^1.0.0": version: 1.0.0 resolution: "string.prototype.repeat@npm:1.0.0" @@ -18545,7 +18749,7 @@ __metadata: languageName: node linkType: hard -"strip-json-comments@npm:^3.0.1, strip-json-comments@npm:^3.1.0, strip-json-comments@npm:^3.1.1": +"strip-json-comments@npm:^3.0.1, strip-json-comments@npm:^3.1.1": version: 3.1.1 resolution: "strip-json-comments@npm:3.1.1" checksum: 492f73e27268f9b1c122733f28ecb0e7e8d8a531a6662efbd08e22cccb3f9475e90a1b82cab06a392f6afae6d2de636f977e231296400d0ec5304ba70f166443 @@ -18591,6 +18795,22 @@ __metadata: languageName: node linkType: hard +"styled-jsx@npm:5.1.6": + version: 5.1.6 + resolution: "styled-jsx@npm:5.1.6" + dependencies: + client-only: 0.0.1 + peerDependencies: + react: ">= 16.8.0 || 17.x.x || ^18.0.0-0 || ^19.0.0-0" + peerDependenciesMeta: + "@babel/core": + optional: true + babel-plugin-macros: + optional: true + checksum: 879ad68e3e81adcf4373038aaafe55f968294955593660e173fbf679204aff158c59966716a60b29af72dc88795cfb2c479b6d2c3c87b2b2d282f3e27cc66461 + languageName: node + linkType: hard + "sucrase@npm:^3.32.0": version: 3.32.0 resolution: "sucrase@npm:3.32.0" @@ -19116,7 +19336,19 @@ __metadata: languageName: node linkType: hard -"tsconfig-paths@npm:^3.14.2, tsconfig-paths@npm:^3.9.0": +"tsconfig-paths@npm:^3.15.0": + version: 3.15.0 + resolution: "tsconfig-paths@npm:3.15.0" + dependencies: + "@types/json5": ^0.0.29 + json5: ^1.0.2 + minimist: ^1.2.6 + strip-bom: ^3.0.0 + checksum: 59f35407a390d9482b320451f52a411a256a130ff0e7543d18c6f20afab29ac19fbe55c360a93d6476213cc335a4d76ce90f67df54c4e9037f7d240920832201 + languageName: node + linkType: hard + +"tsconfig-paths@npm:^3.9.0": version: 3.14.2 resolution: "tsconfig-paths@npm:3.14.2" dependencies: @@ -19160,6 +19392,13 @@ __metadata: languageName: node linkType: hard +"tslib@npm:^2.8.0": + version: 2.8.1 + resolution: "tslib@npm:2.8.1" + checksum: e4aba30e632b8c8902b47587fd13345e2827fa639e7c3121074d5ee0880723282411a8838f830b55100cbe4517672f84a2472667d355b81e8af165a55dc6203a + languageName: node + linkType: hard + "tsscmp@npm:^1.0.6": version: 1.0.6 resolution: "tsscmp@npm:1.0.6" @@ -20038,26 +20277,6 @@ __metadata: languageName: node linkType: hard -"which-builtin-type@npm:^1.1.3": - version: 1.1.3 - resolution: "which-builtin-type@npm:1.1.3" - dependencies: - function.prototype.name: ^1.1.5 - has-tostringtag: ^1.0.0 - is-async-function: ^2.0.0 - is-date-object: ^1.0.5 - is-finalizationregistry: ^1.0.2 - 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.1 - which-typed-array: ^1.1.9 - checksum: 43730f7d8660ff9e33d1d3f9f9451c4784265ee7bf222babc35e61674a11a08e1c2925019d6c03154fcaaca4541df43abe35d2720843b9b4cbcebdcc31408f36 - languageName: node - linkType: hard - "which-builtin-type@npm:^1.2.1": version: 1.2.1 resolution: "which-builtin-type@npm:1.2.1" From ab4e9cbf7556d0f94db0cd1c285e76adc19f12f0 Mon Sep 17 00:00:00 2001 From: Mia Moir Date: Wed, 23 Jul 2025 18:27:45 +0100 Subject: [PATCH 3/8] Some final(I hope) changes to the config --- .eslintrc.cjs | 2 +- package.json | 1 - prettier.config.js | 2 +- yarn.lock | 15 --------------- 4 files changed, 2 insertions(+), 18 deletions(-) diff --git a/.eslintrc.cjs b/.eslintrc.cjs index 2b0d8d9c..5eef5b8a 100644 --- a/.eslintrc.cjs +++ b/.eslintrc.cjs @@ -4,7 +4,7 @@ const config = { parserOptions: { project: true, }, - ignorePatterns: [".eslintrc.cjs", "lib/db/types/**/*"], + ignorePatterns: [".eslintrc.cjs", ".eslintrc.js", "lib/db/types/**/*"], extends: ["next/core-web-vitals", "prettier", "plugin:storybook/recommended"], settings: { react: { diff --git a/package.json b/package.json index c57b992b..436de08e 100644 --- a/package.json +++ b/package.json @@ -116,7 +116,6 @@ "postcss-preset-mantine": "^1.7.0", "postcss-simple-vars": "^7.0.1", "prettier": "^3.0.3", - "prettier-plugin-organize-imports": "^4.2.0", "prettier-plugin-tailwindcss": "^0.4.0", "prisma": "^5.21.1", "prisma-json-types-generator": "^3.0.2", diff --git a/prettier.config.js b/prettier.config.js index 200c8697..33f3e3c6 100644 --- a/prettier.config.js +++ b/prettier.config.js @@ -1,4 +1,4 @@ /** @type {import('prettier').Config & import('prettier-plugin-tailwindcss').PluginOptions} */ module.exports = { - plugins: ["prettier-plugin-tailwindcss", "prettier-plugin-organize-imports"], + plugins: ["prettier-plugin-tailwindcss"], }; diff --git a/yarn.lock b/yarn.lock index 7b45a803..294cecfd 100644 --- a/yarn.lock +++ b/yarn.lock @@ -12374,7 +12374,6 @@ __metadata: postcss-preset-mantine: ^1.7.0 postcss-simple-vars: ^7.0.1 prettier: ^3.0.3 - prettier-plugin-organize-imports: ^4.2.0 prettier-plugin-tailwindcss: ^0.4.0 prisma: ^5.21.1 prisma-json-types-generator: ^3.0.2 @@ -16184,20 +16183,6 @@ __metadata: languageName: node linkType: hard -"prettier-plugin-organize-imports@npm:^4.2.0": - version: 4.2.0 - resolution: "prettier-plugin-organize-imports@npm:4.2.0" - peerDependencies: - prettier: ">=2.0" - typescript: ">=2.9" - vue-tsc: ^2.1.0 || 3 - peerDependenciesMeta: - vue-tsc: - optional: true - checksum: 566484cb05b4458d9e919be268a065d01bb04abdc3a1ec1191017d91e4e4d2c75284e3c3042a704ed08b7820035322753f07d4e0301b69951ff654897811de4b - languageName: node - linkType: hard - "prettier-plugin-tailwindcss@npm:^0.4.0": version: 0.4.0 resolution: "prettier-plugin-tailwindcss@npm:0.4.0" From e068b3b34d499aec4ad8ea335b5847e8eae7e705 Mon Sep 17 00:00:00 2001 From: Mia Moir Date: Wed, 23 Jul 2025 18:30:10 +0100 Subject: [PATCH 4/8] Run eslint in github actions --- .github/workflows/eslint.yml | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 .github/workflows/eslint.yml diff --git a/.github/workflows/eslint.yml b/.github/workflows/eslint.yml new file mode 100644 index 00000000..ab829866 --- /dev/null +++ b/.github/workflows/eslint.yml @@ -0,0 +1,20 @@ +name: Check Eslint + +on: + pull_request: + branches: [master, main] + +jobs: + check-eslint: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - name: Use Node.js 18.x + uses: actions/setup-node@v3 + with: + node-version: 18.x + cache: "yarn" + cache-dependency-path: "yarn.lock" + - run: yarn install --immutable --inline-builds + + - run: yarn lint From 28124dcb0a175aca5f90bbe2df5a54afc92ff6d1 Mon Sep 17 00:00:00 2001 From: Mia Moir Date: Wed, 23 Jul 2025 18:31:00 +0100 Subject: [PATCH 5/8] Run linter and formatter --- app/(authenticated)/admin/layout.tsx | 1 - app/(authenticated)/admin/page.tsx | 3 +- .../admin/positions/PositionCard.tsx | 14 ++--- .../admin/positions/PositionView.tsx | 25 ++++----- .../admin/positions/actions.ts | 18 ++++--- app/(authenticated)/admin/positions/form.tsx | 12 +++-- app/(authenticated)/admin/positions/page.tsx | 12 +++-- app/(authenticated)/admin/roles/RoleCard.tsx | 20 +++---- app/(authenticated)/admin/roles/RoleView.tsx | 25 ++++----- app/(authenticated)/admin/roles/actions.ts | 17 +++--- app/(authenticated)/admin/roles/form.tsx | 14 ++--- app/(authenticated)/admin/roles/page.tsx | 12 +++-- app/(authenticated)/admin/roles/schema.ts | 3 +- app/(authenticated)/admin/users/UserCard.tsx | 14 ++--- app/(authenticated)/admin/users/UserView.tsx | 15 +++--- .../admin/users/[userID]/AdminUserView.tsx | 34 ++++++------ .../admin/users/[userID]/EditUserForm.tsx | 10 ++-- .../admin/users/[userID]/GiveUserRoleForm.tsx | 5 +- .../admin/users/[userID]/page.tsx | 8 +-- app/(authenticated)/admin/users/actions.ts | 10 ++-- app/(authenticated)/admin/users/page.tsx | 12 +++-- app/(authenticated)/calendar/YSTVCalendar.tsx | 47 +++++++++-------- .../[eventID]/AddEditSignUpSheetForm.tsx | 21 ++++---- .../calendar/[eventID]/AttendeeStatus.tsx | 12 +++-- .../calendar/[eventID]/CheckWithTech.tsx | 21 ++++---- .../calendar/[eventID]/EventActionsUI.tsx | 41 ++++++++------- .../calendar/[eventID]/SignupSheet.tsx | 41 ++++++++------- .../calendar/[eventID]/actions.ts | 34 ++++++------ .../calendar/[eventID]/page.tsx | 45 +++++++++------- .../calendar/[eventID]/signUpSheetActions.ts | 19 +++---- app/(authenticated)/calendar/actions.ts | 7 +-- .../calendar/discover/DiscoverView.tsx | 7 +-- .../calendar/discover/page.tsx | 7 ++- app/(authenticated)/calendar/helpers.ts | 2 +- app/(authenticated)/calendar/new/actions.ts | 18 ++++--- app/(authenticated)/calendar/new/form.tsx | 18 ++++--- app/(authenticated)/calendar/new/page.tsx | 20 +++---- app/(authenticated)/calendar/new/schema.ts | 5 +- app/(authenticated)/calendar/page.tsx | 18 ++++--- app/(authenticated)/error.tsx | 3 +- app/(authenticated)/feedback/actions.ts | 7 +-- app/(authenticated)/feedback/form.tsx | 12 +++-- app/(authenticated)/feedback/page.tsx | 5 +- app/(authenticated)/layout.tsx | 17 +++--- .../quotes/AddEditQuoteForm.tsx | 14 ++--- app/(authenticated)/quotes/actions.ts | 9 ++-- app/(authenticated)/quotes/page.tsx | 6 ++- app/(authenticated)/quotes/schema.ts | 1 - app/(authenticated)/user/[id]/page.tsx | 1 + .../user/me/UserPreferences.tsx | 20 +++---- app/(authenticated)/user/me/actions.ts | 7 +-- app/(authenticated)/user/me/page.tsx | 28 +++++----- app/(authenticated)/webcam/WebcamGrid.tsx | 12 +++-- app/(authenticated)/webcam/actions.ts | 16 +++--- app/(authenticated)/webcam/form.tsx | 22 ++++---- app/(authenticated)/webcam/page.tsx | 10 ++-- app/(authenticated)/wrapped/page.tsx | 6 ++- app/api/public/events/route.ts | 3 +- app/bios/CookiesView.tsx | 7 +-- app/bios/actions.ts | 3 +- app/bios/page.tsx | 1 + app/enableDebugMode/route.ts | 6 ++- app/healthz/route.ts | 3 +- app/iCal/[token]/route.ts | 3 +- app/layout.tsx | 16 +++--- app/login/google/callback/route.ts | 5 +- app/login/google/route.ts | 5 +- app/login/page.tsx | 14 ++--- app/login/slack/callback/route.ts | 5 +- app/login/slack/route.ts | 3 +- app/page.tsx | 3 +- components/Breadcrumbs.tsx | 5 +- components/DebugMode.tsx | 2 +- components/Form.tsx | 16 +++--- components/FormFieldPreloadedData.tsx | 3 +- components/FormFields.tsx | 52 ++++++++++--------- components/FormServerHelpers.ts | 5 +- components/Nav.tsx | 3 +- components/PublicURLContext.tsx | 2 +- components/QueryProvider.tsx | 2 +- components/SelectOption.tsx | 1 - components/SelectWithCustomOption.tsx | 3 +- components/SignoutButton/actions.ts | 3 +- components/SignoutButton/index.tsx | 1 + components/SlackChannelField.tsx | 7 +-- components/Spinner.tsx | 3 +- components/UserContext.tsx | 7 +-- components/UserMenu.tsx | 5 +- components/WebcamView.tsx | 4 +- components/WebsocketProvider.tsx | 5 +- components/google/GoogleLoginButton.tsx | 7 +-- components/google/actions.ts | 3 +- components/slack/SlackChannelName.tsx | 5 +- components/slack/SlackChannelsProvider.tsx | 5 +- components/slack/SlackEnabledProvider.tsx | 3 +- components/slack/SlackLoginButton.tsx | 11 ++-- components/slack/SlackUserInfo.tsx | 17 ++---- features/calendar/adamRMS.ts | 2 +- features/calendar/check_with_tech.ts | 16 +++--- features/calendar/check_with_tech_actions.ts | 12 ++--- features/calendar/events.ts | 14 ++--- features/calendar/ical.ts | 7 ++- features/calendar/index.ts | 10 ++-- features/calendar/permissions.ts | 4 +- features/calendar/signup_sheets.ts | 8 +-- features/people/index.ts | 2 +- features/people/users.ts | 12 ++--- features/positions/index.ts | 1 - features/userFeedback/index.ts | 1 - lib/actions.ts | 1 + lib/adamrms/client.ts | 1 + lib/adamrms/index.ts | 3 +- lib/auth/core.ts | 7 +-- lib/auth/google/index.ts | 4 +- lib/auth/server.ts | 26 +++++----- lib/auth/slack/index.ts | 11 ++-- lib/db/index.ts | 1 + lib/searchParams/validate.ts | 7 +-- lib/searchParams/validateHook.ts | 7 +-- lib/sessionSecrets.ts | 3 +- lib/slack/actions.ts | 3 +- lib/slack/slackApiConnection.ts | 1 + lib/socket/index.ts | 6 +-- lib/socket/server/index.ts | 2 +- server/auth.ts | 8 +-- server/index.ts | 8 +-- server/lib.ts | 10 ++-- stories/Button.tsx | 2 +- 128 files changed, 714 insertions(+), 606 deletions(-) diff --git a/app/(authenticated)/admin/layout.tsx b/app/(authenticated)/admin/layout.tsx index fd8cfb39..c3bc802f 100644 --- a/app/(authenticated)/admin/layout.tsx +++ b/app/(authenticated)/admin/layout.tsx @@ -1,6 +1,5 @@ import ErrorPage from "@/components/ErrorPage"; import { hasPermission } from "@/lib/auth/server"; -import { notFound } from "next/navigation"; export default async function AuthenticatedLayout({ children, diff --git a/app/(authenticated)/admin/page.tsx b/app/(authenticated)/admin/page.tsx index 726b6c23..6e83347e 100644 --- a/app/(authenticated)/admin/page.tsx +++ b/app/(authenticated)/admin/page.tsx @@ -1,7 +1,8 @@ -import { PageInfo } from "@/components/PageInfo"; import { Button, Card, Stack } from "@mantine/core"; import Link from "next/link"; +import { PageInfo } from "@/components/PageInfo"; + export const dynamic = "force-dynamic"; export default function AdminPage() { diff --git a/app/(authenticated)/admin/positions/PositionCard.tsx b/app/(authenticated)/admin/positions/PositionCard.tsx index 6616a381..980c73cf 100644 --- a/app/(authenticated)/admin/positions/PositionCard.tsx +++ b/app/(authenticated)/admin/positions/PositionCard.tsx @@ -1,12 +1,14 @@ -import { Card, Group, Stack, Menu, ActionIcon, Text } from "@mantine/core"; +import { ActionIcon, Card, Group, Menu, Stack, Text } from "@mantine/core"; import { modals } from "@mantine/modals"; import { notifications } from "@mantine/notifications"; -import { Position } from "@prisma/client"; +import { type Position } from "@prisma/client"; import { FaEdit } from "react-icons/fa"; -import { MdMoreHoriz, MdDeleteForever } from "react-icons/md"; -import { deletePositionSchema } from "./schema"; -import { z } from "zod"; -import { FormResponse } from "@/components/Form"; +import { MdDeleteForever, MdMoreHoriz } from "react-icons/md"; +import { type z } from "zod"; + +import { type FormResponse } from "@/components/Form"; + +import { type deletePositionSchema } from "./schema"; export function PositionCard(props: { position: Position; diff --git a/app/(authenticated)/admin/positions/PositionView.tsx b/app/(authenticated)/admin/positions/PositionView.tsx index ce36f19b..ac48d3fa 100644 --- a/app/(authenticated)/admin/positions/PositionView.tsx +++ b/app/(authenticated)/admin/positions/PositionView.tsx @@ -10,32 +10,33 @@ import { Stack, Text, } from "@mantine/core"; -import { Position } from "@prisma/client"; -import { usePathname, useSearchParams } from "next/navigation"; -import { searchParamsSchema } from "./schema"; -import { useRouter } from "next/navigation"; -import { FaPlus } from "react-icons/fa"; -import { z } from "zod"; +import { useDisclosure } from "@mantine/hooks"; +import { type Position } from "@prisma/client"; +import { useQuery } from "@tanstack/react-query"; +import { usePathname, useRouter, useSearchParams } from "next/navigation"; import { useEffect, useState } from "react"; +import { FaPlus } from "react-icons/fa"; +import { type z } from "zod"; + import { CountControls, PageControls, PaginationProvider, } from "@/components/Pagination"; -import { useDisclosure } from "@mantine/hooks"; import { SearchBar } from "@/components/SearchBar"; -import { CreatePositionForm, UpdatePositionForm } from "./form"; import { getSearchParamsString } from "@/lib/searchParams/util"; -import { PositionCard } from "./PositionCard"; +import { useValidSearchParams } from "@/lib/searchParams/validateHook"; + import { createPositionAction, deletePositionAction, fetchPositionsAction, - TFetchPositions, + type TFetchPositions, updatePositionAction, } from "./actions"; -import { useQuery } from "@tanstack/react-query"; -import { useValidSearchParams } from "@/lib/searchParams/validateHook"; +import { CreatePositionForm, UpdatePositionForm } from "./form"; +import { PositionCard } from "./PositionCard"; +import { searchParamsSchema } from "./schema"; export function PositionView(props: { initialPositions: TFetchPositions }) { const pathname = usePathname(); diff --git a/app/(authenticated)/admin/positions/actions.ts b/app/(authenticated)/admin/positions/actions.ts index d852fd2d..6e6eea6e 100644 --- a/app/(authenticated)/admin/positions/actions.ts +++ b/app/(authenticated)/admin/positions/actions.ts @@ -1,20 +1,22 @@ "use server"; +import { type Position } from "@prisma/client"; + +import { type FormResponse } from "@/components/Form"; import { zodErrorResponse } from "@/components/FormServerHelpers"; -import { - createPositionSchema, - deletePositionSchema, - searchParamsSchema, - updatePositionSchema, -} from "./schema"; import { createPosition, deletePosition, fetchPositions, updatePosition, } from "@/features/positions"; -import { Position } from "@prisma/client"; -import { FormResponse } from "@/components/Form"; + +import { + createPositionSchema, + deletePositionSchema, + searchParamsSchema, + updatePositionSchema, +} from "./schema"; export type TFetchPositions = { positions: Position[]; diff --git a/app/(authenticated)/admin/positions/form.tsx b/app/(authenticated)/admin/positions/form.tsx index 1b1aa134..088995e8 100644 --- a/app/(authenticated)/admin/positions/form.tsx +++ b/app/(authenticated)/admin/positions/form.tsx @@ -1,9 +1,11 @@ -import Form, { FormResponse } from "@/components/Form"; -import { createPositionSchema, updatePositionSchema } from "./schema"; -import { z } from "zod"; -import { TextAreaField, TextField } from "@/components/FormFields"; -import { Position } from "@prisma/client"; import { notifications } from "@mantine/notifications"; +import { type Position } from "@prisma/client"; +import { type z } from "zod"; + +import Form, { type FormResponse } from "@/components/Form"; +import { TextAreaField, TextField } from "@/components/FormFields"; + +import { createPositionSchema, updatePositionSchema } from "./schema"; export function CreatePositionForm(props: { action: (data: z.infer) => Promise; diff --git a/app/(authenticated)/admin/positions/page.tsx b/app/(authenticated)/admin/positions/page.tsx index 99fdf673..541e6e75 100644 --- a/app/(authenticated)/admin/positions/page.tsx +++ b/app/(authenticated)/admin/positions/page.tsx @@ -1,10 +1,12 @@ -import { PositionView } from "./PositionView"; -import { fetchPositions } from "@/features/positions"; -import { searchParamsSchema } from "./schema"; import { redirect } from "next/navigation"; -import { validateSearchParams } from "@/lib/searchParams/validate"; -import { getSearchParamsString } from "@/lib/searchParams/util"; + import { PageInfo } from "@/components/PageInfo"; +import { fetchPositions } from "@/features/positions"; +import { getSearchParamsString } from "@/lib/searchParams/util"; +import { validateSearchParams } from "@/lib/searchParams/validate"; + +import { PositionView } from "./PositionView"; +import { searchParamsSchema } from "./schema"; export const dynamic = "force-dynamic"; diff --git a/app/(authenticated)/admin/roles/RoleCard.tsx b/app/(authenticated)/admin/roles/RoleCard.tsx index 0de50b15..83939329 100644 --- a/app/(authenticated)/admin/roles/RoleCard.tsx +++ b/app/(authenticated)/admin/roles/RoleCard.tsx @@ -1,20 +1,22 @@ -import { RoleWithPermissions } from "@/features/people"; import { + ActionIcon, Card, - Stack, - Highlight, Group, - ActionIcon, - Tooltip, + Highlight, + Stack, Text, + Tooltip, } from "@mantine/core"; -import { FaEdit } from "react-icons/fa"; -import { z } from "zod"; -import { deleteRoleSchema } from "./schema"; -import { FormResponse } from "@/components/Form"; import { modals } from "@mantine/modals"; import { notifications } from "@mantine/notifications"; +import { FaEdit } from "react-icons/fa"; import { MdDeleteForever } from "react-icons/md"; +import { type z } from "zod"; + +import { type FormResponse } from "@/components/Form"; +import { type RoleWithPermissions } from "@/features/people"; + +import { type deleteRoleSchema } from "./schema"; export function RoleCard(props: { role: RoleWithPermissions; diff --git a/app/(authenticated)/admin/roles/RoleView.tsx b/app/(authenticated)/admin/roles/RoleView.tsx index 90026d29..123c4fa4 100644 --- a/app/(authenticated)/admin/roles/RoleView.tsx +++ b/app/(authenticated)/admin/roles/RoleView.tsx @@ -10,32 +10,33 @@ import { Stack, Text, } from "@mantine/core"; -import { usePathname, useSearchParams } from "next/navigation"; -import { searchParamsSchema } from "./schema"; -import { useRouter } from "next/navigation"; -import { z } from "zod"; +import { useDisclosure } from "@mantine/hooks"; +import { useQuery } from "@tanstack/react-query"; +import { usePathname, useRouter, useSearchParams } from "next/navigation"; import { useEffect, useState } from "react"; +import { FaPlus } from "react-icons/fa"; +import { type z } from "zod"; + import { CountControls, PageControls, PaginationProvider, } from "@/components/Pagination"; -import { useDisclosure } from "@mantine/hooks"; import { SearchBar } from "@/components/SearchBar"; +import { type RoleWithPermissions } from "@/features/people"; import { getSearchParamsString } from "@/lib/searchParams/util"; -import { RoleCard } from "./RoleCard"; -import { CreateRoleForm, UpdateRoleForm } from "./form"; -import { FaPlus } from "react-icons/fa"; -import { RoleWithPermissions } from "@/features/people"; +import { useValidSearchParams } from "@/lib/searchParams/validateHook"; + import { createRoleAction, deleteRoleAction, fetchRolesAction, - TFetchRoles, + type TFetchRoles, updateRoleAction, } from "./actions"; -import { useQuery } from "@tanstack/react-query"; -import { useValidSearchParams } from "@/lib/searchParams/validateHook"; +import { CreateRoleForm, UpdateRoleForm } from "./form"; +import { RoleCard } from "./RoleCard"; +import { searchParamsSchema } from "./schema"; export function RoleView(props: { initialRoles: TFetchRoles }) { const pathname = usePathname(); diff --git a/app/(authenticated)/admin/roles/actions.ts b/app/(authenticated)/admin/roles/actions.ts index 91b3abe9..28d31b04 100644 --- a/app/(authenticated)/admin/roles/actions.ts +++ b/app/(authenticated)/admin/roles/actions.ts @@ -1,20 +1,21 @@ "use server"; +import { type FormResponse } from "@/components/Form"; import { zodErrorResponse } from "@/components/FormServerHelpers"; +import { + createRole, + deleteRole, + type RoleWithPermissions, + updateRole, +} from "@/features/people"; +import { fetchRoles } from "@/features/roles"; + import { createRoleSchema, deleteRoleSchema, searchParamsSchema, updateRoleSchema, } from "./schema"; -import { fetchRoles } from "@/features/roles"; -import { - createRole, - deleteRole, - RoleWithPermissions, - updateRole, -} from "@/features/people"; -import { FormResponse } from "@/components/Form"; export type TFetchRoles = { roles: RoleWithPermissions[]; diff --git a/app/(authenticated)/admin/roles/form.tsx b/app/(authenticated)/admin/roles/form.tsx index 42ec8303..ddfccf58 100644 --- a/app/(authenticated)/admin/roles/form.tsx +++ b/app/(authenticated)/admin/roles/form.tsx @@ -1,14 +1,16 @@ -import Form, { FormResponse } from "@/components/Form"; -import { createRoleSchema, updateRoleSchema } from "./schema"; -import { z } from "zod"; +import { Space } from "@mantine/core"; +import { type z } from "zod"; + +import Form, { type FormResponse } from "@/components/Form"; import { PermissionSelectField, TextAreaField, TextField, } from "@/components/FormFields"; -import { Permission } from "@/lib/auth/permissions"; -import { Space } from "@mantine/core"; -import { RoleWithPermissions } from "@/features/people"; +import { type RoleWithPermissions } from "@/features/people"; +import { type Permission } from "@/lib/auth/permissions"; + +import { createRoleSchema, updateRoleSchema } from "./schema"; export function CreateRoleForm(props: { action: (data: z.infer) => Promise; diff --git a/app/(authenticated)/admin/roles/page.tsx b/app/(authenticated)/admin/roles/page.tsx index 7482f306..52e4e3b6 100644 --- a/app/(authenticated)/admin/roles/page.tsx +++ b/app/(authenticated)/admin/roles/page.tsx @@ -1,11 +1,13 @@ -import { RoleView } from "./RoleView"; -import { searchParamsSchema } from "./schema"; +import { Stack, Text } from "@mantine/core"; import { redirect } from "next/navigation"; -import { validateSearchParams } from "@/lib/searchParams/validate"; + +import { PageInfo } from "@/components/PageInfo"; import { getSearchParamsString } from "@/lib/searchParams/util"; +import { validateSearchParams } from "@/lib/searchParams/validate"; + import { fetchRolesAction } from "./actions"; -import { Stack, Text } from "@mantine/core"; -import { PageInfo } from "@/components/PageInfo"; +import { RoleView } from "./RoleView"; +import { searchParamsSchema } from "./schema"; export const dynamic = "force-dynamic"; diff --git a/app/(authenticated)/admin/roles/schema.ts b/app/(authenticated)/admin/roles/schema.ts index 9ab7b01c..c4598f54 100644 --- a/app/(authenticated)/admin/roles/schema.ts +++ b/app/(authenticated)/admin/roles/schema.ts @@ -1,6 +1,7 @@ -import { PermissionEnum } from "@/lib/auth/permissions"; import { z } from "zod"; +import { PermissionEnum } from "@/lib/auth/permissions"; + export const searchParamsSchema = z.object({ count: z .preprocess((val) => (val ? val : undefined), z.coerce.number()) diff --git a/app/(authenticated)/admin/users/UserCard.tsx b/app/(authenticated)/admin/users/UserCard.tsx index f3ef7831..b2d2bdff 100644 --- a/app/(authenticated)/admin/users/UserCard.tsx +++ b/app/(authenticated)/admin/users/UserCard.tsx @@ -1,18 +1,20 @@ -import GoogleIcon from "@/components/icons/GoogleIcon"; -import SlackIcon from "@/components/icons/SlackIcon"; import { - Card, - Group, - Stack, ActionIcon, Avatar, + Card, + Group, Highlight, + Stack, Text, Tooltip, } from "@mantine/core"; import Link from "next/link"; import { FaEye } from "react-icons/fa"; -import { UserWithIdentitiesBasicRoles } from "./actions"; + +import GoogleIcon from "@/components/icons/GoogleIcon"; +import SlackIcon from "@/components/icons/SlackIcon"; + +import { type UserWithIdentitiesBasicRoles } from "./actions"; export function UserCard(props: { user: UserWithIdentitiesBasicRoles; diff --git a/app/(authenticated)/admin/users/UserView.tsx b/app/(authenticated)/admin/users/UserView.tsx index e5f3d1a3..3bd1f7f9 100644 --- a/app/(authenticated)/admin/users/UserView.tsx +++ b/app/(authenticated)/admin/users/UserView.tsx @@ -8,22 +8,23 @@ import { Stack, Text, } from "@mantine/core"; -import { usePathname, useSearchParams } from "next/navigation"; -import { searchParamsSchema } from "./schema"; -import { useRouter } from "next/navigation"; -import { z } from "zod"; +import { useQuery } from "@tanstack/react-query"; +import { usePathname, useRouter, useSearchParams } from "next/navigation"; import { useEffect, useState } from "react"; +import { type z } from "zod"; + import { CountControls, PageControls, PaginationProvider, } from "@/components/Pagination"; import { SearchBar } from "@/components/SearchBar"; -import { useValidSearchParams } from "@/lib/searchParams/validateHook"; import { getSearchParamsString } from "@/lib/searchParams/util"; +import { useValidSearchParams } from "@/lib/searchParams/validateHook"; + +import { fetchUsersAction, type TFetchUsers } from "./actions"; +import { searchParamsSchema } from "./schema"; import { UserCard } from "./UserCard"; -import { useQuery } from "@tanstack/react-query"; -import { fetchUsersAction, TFetchUsers } from "./actions"; export function UserView(props: { initialUsers: TFetchUsers }) { const pathname = usePathname(); diff --git a/app/(authenticated)/admin/users/[userID]/AdminUserView.tsx b/app/(authenticated)/admin/users/[userID]/AdminUserView.tsx index bb464832..acecb60f 100644 --- a/app/(authenticated)/admin/users/[userID]/AdminUserView.tsx +++ b/app/(authenticated)/admin/users/[userID]/AdminUserView.tsx @@ -1,32 +1,34 @@ "use client"; -import { FormResponse } from "@/components/Form"; -import { getUserName } from "@/components/UserHelpers"; -import { UserWithIdentitiesRoles } from "@/features/people"; import { - Stack, + ActionIcon, + Avatar, + Button, Card, Group, - Avatar, + Modal, Space, + Stack, Text, - Modal, - Button, - ActionIcon, Tooltip, } from "@mantine/core"; import { useDisclosure } from "@mantine/hooks"; -import { Role } from "@prisma/client"; -import { Suspense } from "react"; -import { z } from "zod"; -import { GiveUserRoleForm } from "./GiveUserRoleForm"; -import { useRouter } from "next/navigation"; -import { FaEdit, FaMinus } from "react-icons/fa"; import { modals } from "@mantine/modals"; import { notifications } from "@mantine/notifications"; -import { editUserSchema } from "./schema"; +import { type Role } from "@prisma/client"; +import { useRouter } from "next/navigation"; +import { Suspense } from "react"; +import { FaEdit, FaMinus } from "react-icons/fa"; +import { type z } from "zod"; + +import { type FormResponse } from "@/components/Form"; +import { getUserName } from "@/components/UserHelpers"; +import { type UserWithIdentitiesRoles } from "@/features/people"; +import { type giveUserRoleSchema } from "@/features/people/schema"; + import { EditUserForm } from "./EditUserForm"; -import { giveUserRoleSchema } from "@/features/people/schema"; +import { GiveUserRoleForm } from "./GiveUserRoleForm"; +import { type editUserSchema } from "./schema"; export function AdminUserView(props: { user: UserWithIdentitiesRoles; diff --git a/app/(authenticated)/admin/users/[userID]/EditUserForm.tsx b/app/(authenticated)/admin/users/[userID]/EditUserForm.tsx index 68da7287..5dd78203 100644 --- a/app/(authenticated)/admin/users/[userID]/EditUserForm.tsx +++ b/app/(authenticated)/admin/users/[userID]/EditUserForm.tsx @@ -1,8 +1,10 @@ -import Form, { FormResponse } from "@/components/Form"; -import { User } from "@prisma/client"; -import { editUserSchema } from "./schema"; +import { type User } from "@prisma/client"; +import { type z } from "zod"; + +import Form, { type FormResponse } from "@/components/Form"; import { TextField } from "@/components/FormFields"; -import { z } from "zod"; + +import { editUserSchema } from "./schema"; export function EditUserForm(props: { user: User; diff --git a/app/(authenticated)/admin/users/[userID]/GiveUserRoleForm.tsx b/app/(authenticated)/admin/users/[userID]/GiveUserRoleForm.tsx index c3600a18..e0f6c591 100644 --- a/app/(authenticated)/admin/users/[userID]/GiveUserRoleForm.tsx +++ b/app/(authenticated)/admin/users/[userID]/GiveUserRoleForm.tsx @@ -1,6 +1,5 @@ "use client"; -import { FormResponse } from "@/components/Form"; import { ActionIcon, Card, @@ -11,10 +10,12 @@ import { } from "@mantine/core"; import { useDisclosure } from "@mantine/hooks"; import { notifications } from "@mantine/notifications"; -import { Role } from "@prisma/client"; +import { type Role } from "@prisma/client"; import { use } from "react"; import { FaPlus } from "react-icons/fa"; +import { type FormResponse } from "@/components/Form"; + export function GiveUserRoleForm(props: { onGiveRole: (role_id: number) => Promise; roles: Promise; diff --git a/app/(authenticated)/admin/users/[userID]/page.tsx b/app/(authenticated)/admin/users/[userID]/page.tsx index 15641ab4..60b8c649 100644 --- a/app/(authenticated)/admin/users/[userID]/page.tsx +++ b/app/(authenticated)/admin/users/[userID]/page.tsx @@ -1,3 +1,7 @@ +import { z } from "zod"; + +import { PageInfo } from "@/components/PageInfo"; +import { getUserName } from "@/components/UserHelpers"; import { editUserAdmin, fetchUserForAdmin, @@ -5,10 +9,8 @@ import { giveUserRole, removeUserRole, } from "@/features/people"; -import { z } from "zod"; + import { AdminUserView } from "./AdminUserView"; -import { PageInfo } from "@/components/PageInfo"; -import { getUserName } from "@/components/UserHelpers"; export default async function SingleUserPage({ params, diff --git a/app/(authenticated)/admin/users/actions.ts b/app/(authenticated)/admin/users/actions.ts index 387c0d7d..e0db2487 100644 --- a/app/(authenticated)/admin/users/actions.ts +++ b/app/(authenticated)/admin/users/actions.ts @@ -1,11 +1,13 @@ "use server"; +import { type Role } from "@prisma/client"; + +import { type FormResponse } from "@/components/Form"; import { zodErrorResponse } from "@/components/FormServerHelpers"; -import { searchParamsSchema } from "./schema"; import { fetchUsers } from "@/features/people"; -import { FormResponse } from "@/components/Form"; -import { UserWithIdentities } from "@/lib/auth/server"; -import { Role } from "@prisma/client"; +import { type UserWithIdentities } from "@/lib/auth/server"; + +import { searchParamsSchema } from "./schema"; export type UserWithIdentitiesBasicRoles = UserWithIdentities & { roles: Role[]; diff --git a/app/(authenticated)/admin/users/page.tsx b/app/(authenticated)/admin/users/page.tsx index c7f1794e..91a2ed05 100644 --- a/app/(authenticated)/admin/users/page.tsx +++ b/app/(authenticated)/admin/users/page.tsx @@ -1,10 +1,12 @@ -import { UserView } from "./UserView"; -import { fetchUsers } from "@/features/people"; -import { searchParamsSchema } from "./schema"; import { redirect } from "next/navigation"; -import { validateSearchParams } from "@/lib/searchParams/validate"; -import { getSearchParamsString } from "@/lib/searchParams/util"; + import { PageInfo } from "@/components/PageInfo"; +import { fetchUsers } from "@/features/people"; +import { getSearchParamsString } from "@/lib/searchParams/util"; +import { validateSearchParams } from "@/lib/searchParams/validate"; + +import { searchParamsSchema } from "./schema"; +import { UserView } from "./UserView"; export default async function PositionPage({ searchParams, diff --git a/app/(authenticated)/calendar/YSTVCalendar.tsx b/app/(authenticated)/calendar/YSTVCalendar.tsx index 5bc2f15d..52006ca1 100644 --- a/app/(authenticated)/calendar/YSTVCalendar.tsx +++ b/app/(authenticated)/calendar/YSTVCalendar.tsx @@ -1,39 +1,40 @@ "use client"; -import FullCalendar from "@fullcalendar/react"; +import { type EventInput, formatDate } from "@fullcalendar/core"; import dayGridPlugin from "@fullcalendar/daygrid"; -import timeGridPlugin from "@fullcalendar/timegrid"; import listPlugin from "@fullcalendar/list"; -import { EventInput, formatDate } from "@fullcalendar/core"; -import { useRouter } from "next/navigation"; -import { useMediaQuery } from "@mantine/hooks"; -import { - CalendarType, - academicYears, - getNextPeriod, - Holiday, -} from "uoy-week-calendar/dist/calendar"; -import "./YSTVCalendar.css"; -import dayjs from "dayjs"; -import weekOfYear from "dayjs/plugin/weekOfYear"; +import FullCalendar from "@fullcalendar/react"; +import timeGridPlugin from "@fullcalendar/timegrid"; import { ActionIcon, - Menu, - Select, - Loader, Box, + Loader, LoadingOverlay, + Menu, + Select, } from "@mantine/core"; -import { useEffect, useRef, useState } from "react"; +import { useMediaQuery } from "@mantine/hooks"; import * as Sentry from "@sentry/nextjs"; -import { TbCheck, TbFilter } from "react-icons/tb"; +import { keepPreviousData, useQuery } from "@tanstack/react-query"; import findLast from "core-js-pure/stable/array/find-last"; -import { useUserPreferences } from "../../../components/UserContext"; +import dayjs from "dayjs"; +import weekOfYear from "dayjs/plugin/weekOfYear"; +import { useRouter } from "next/navigation"; +import { useEffect, useRef, useState } from "react"; +import { TbCheck, TbFilter } from "react-icons/tb"; +import { + academicYears, + CalendarType, + getNextPeriod, + Holiday, +} from "uoy-week-calendar/dist/calendar"; import { z } from "zod"; -import { keepPreviousData, useQuery } from "@tanstack/react-query"; +import "./YSTVCalendar.css"; + +import { EventColours, type EventType } from "@/features/calendar/types"; + import { fetchEvents } from "./actions"; import { calendarEventsQueryKey } from "./helpers"; -import { EventColours } from "@/features/calendar/types"; -import { EventType } from "@/features/calendar/types"; +import { useUserPreferences } from "../../../components/UserContext"; dayjs.extend(weekOfYear); diff --git a/app/(authenticated)/calendar/[eventID]/AddEditSignUpSheetForm.tsx b/app/(authenticated)/calendar/[eventID]/AddEditSignUpSheetForm.tsx index 47355ae5..f36f1576 100644 --- a/app/(authenticated)/calendar/[eventID]/AddEditSignUpSheetForm.tsx +++ b/app/(authenticated)/calendar/[eventID]/AddEditSignUpSheetForm.tsx @@ -1,9 +1,16 @@ -import { z } from "zod"; +import { Fragment, useMemo, useState } from "react"; +import { useController } from "react-hook-form"; +import { type z } from "zod"; + import { - CrewSchema, + type CrewSchema, SignupSheetSchema, } from "@/app/(authenticated)/calendar/[eventID]/schema"; -import Form, { FormResponse } from "@/components/Form"; +import Form, { type FormResponse } from "@/components/Form"; +import { + useCrewPositions, + useMembers, +} from "@/components/FormFieldPreloadedData"; import { ArrayField, CheckBoxField, @@ -12,14 +19,8 @@ import { TextAreaField, TextField, } from "@/components/FormFields"; -import { - useCrewPositions, - useMembers, -} from "@/components/FormFieldPreloadedData"; -import { Fragment, useEffect, useMemo, useRef, useState } from "react"; -import { useController, useFormContext } from "react-hook-form"; -import { getUserName } from "@/components/UserHelpers"; import SelectWithCustomOption from "@/components/SelectWithCustomOption"; +import { getUserName } from "@/components/UserHelpers"; function CrewPositionField(props: { parentName: string }) { const vals = useCrewPositions(); diff --git a/app/(authenticated)/calendar/[eventID]/AttendeeStatus.tsx b/app/(authenticated)/calendar/[eventID]/AttendeeStatus.tsx index f6ad102b..fd7db35c 100644 --- a/app/(authenticated)/calendar/[eventID]/AttendeeStatus.tsx +++ b/app/(authenticated)/calendar/[eventID]/AttendeeStatus.tsx @@ -1,12 +1,16 @@ "use client"; +import { NativeSelect } from "@mantine/core"; import { useTransition } from "react"; -import { getUserName } from "@/components/UserHelpers"; + import { updateAttendeeStatus } from "@/app/(authenticated)/calendar/[eventID]/actions"; -import { AttendStatus, AttendStatusLabels } from "@/features/calendar/statuses"; import Spinner from "@/components/Spinner"; +import { getUserName } from "@/components/UserHelpers"; +import { type EventObjectType } from "@/features/calendar/events"; +import { + type AttendStatus, + AttendStatusLabels, +} from "@/features/calendar/statuses"; import type { UserType } from "@/lib/auth/server"; -import { EventObjectType } from "@/features/calendar/events"; -import { NativeSelect } from "@mantine/core"; export function CurrentUserAttendeeRow({ event, diff --git a/app/(authenticated)/calendar/[eventID]/CheckWithTech.tsx b/app/(authenticated)/calendar/[eventID]/CheckWithTech.tsx index df09b8cc..a150d411 100644 --- a/app/(authenticated)/calendar/[eventID]/CheckWithTech.tsx +++ b/app/(authenticated)/calendar/[eventID]/CheckWithTech.tsx @@ -13,24 +13,25 @@ import { Stack, Textarea, } from "@mantine/core"; +import { useModals } from "@mantine/modals"; +import { notifications } from "@mantine/notifications"; import { Suspense, cache, use, useState, useTransition } from "react"; import { TbTool } from "react-icons/tb"; + +import Form from "@/components/Form"; +import { HiddenField, TextAreaField } from "@/components/FormFields"; +import SlackIcon from "@/components/icons/SlackIcon"; +import SlackLoginButton from "@/components/slack/SlackLoginButton"; +import { getUserName } from "@/components/UserHelpers"; +import { type CheckWithTechType } from "@/features/calendar"; +import invariant from "@/lib/invariant"; + import { actionCheckWithTech, doCheckWithTech, equipmentListTemplates, } from "./actions"; -import { notifications } from "@mantine/notifications"; -import { CheckWithTechType } from "@/features/calendar"; -import { getUserName } from "@/components/UserHelpers"; -import { useModals } from "@mantine/modals"; -import Form from "@/components/Form"; import { CheckWithTechActionSchema } from "./schema"; -import { HiddenField, TextAreaField } from "@/components/FormFields"; -import SlackIcon from "@/components/icons/SlackIcon"; -import Link from "next/link"; -import SlackLoginButton from "@/components/slack/SlackLoginButton"; -import invariant from "@/lib/invariant"; const _getEquipmentListTemplates = cache(equipmentListTemplates); diff --git a/app/(authenticated)/calendar/[eventID]/EventActionsUI.tsx b/app/(authenticated)/calendar/[eventID]/EventActionsUI.tsx index 66a16e96..3f5103f5 100644 --- a/app/(authenticated)/calendar/[eventID]/EventActionsUI.tsx +++ b/app/(authenticated)/calendar/[eventID]/EventActionsUI.tsx @@ -1,37 +1,40 @@ "use client"; +import { Alert, Button, Menu, Modal, Select, Text } from "@mantine/core"; +import { useModals } from "@mantine/modals"; +import Image from "next/image"; +import { useRouter } from "next/navigation"; +import { useCallback, useState, useTransition } from "react"; +import { TbAlertTriangle } from "react-icons/tb"; + import Form from "@/components/Form"; -import { EventObjectType, EventType } from "@/features/calendar"; +import { + CheckBoxField, + ConditionalField, + DatePickerField, + SearchedMemberSelect, + SelectField, + TextAreaField, + TextField, +} from "@/components/FormFields"; +import { PermissionGate } from "@/components/UserContext"; +import { type EventObjectType } from "@/features/calendar"; +import type { Project } from "@/lib/adamrms"; + import { cancelEvent, createAdamRMSProject, deleteEvent, editEvent, - reinstateEvent, getAdamRMSLinkCandidates, linkAdamRMSProject, + reinstateEvent, unlinkAdamRMS, } from "./actions"; import { EditEventSchema } from "./schema"; -import { - CheckBoxField, - ConditionalField, - DatePickerField, - SearchedMemberSelect, - SelectField, - TextAreaField, - TextField, -} from "@/components/FormFields"; -import { useCallback, useState, useTransition } from "react"; -import Image from "next/image"; import AdamRMSLogo from "../../../_assets/adamrms-logo.png"; -import { Alert, Button, Menu, Modal, Select, Text } from "@mantine/core"; -import { useModals } from "@mantine/modals"; -import { useRouter } from "next/navigation"; -import { PermissionGate } from "@/components/UserContext"; + // eslint-disable-next-line @typescript-eslint/no-restricted-imports -import type { Project } from "@/lib/adamrms"; -import { TbAlertTriangle } from "react-icons/tb"; function EditModal(props: { event: EventObjectType; close: () => void }) { return ( diff --git a/app/(authenticated)/calendar/[eventID]/SignupSheet.tsx b/app/(authenticated)/calendar/[eventID]/SignupSheet.tsx index 3bc18d0b..6ef1cb34 100644 --- a/app/(authenticated)/calendar/[eventID]/SignupSheet.tsx +++ b/app/(authenticated)/calendar/[eventID]/SignupSheet.tsx @@ -1,10 +1,5 @@ "use client"; -import { isBefore, isSameDay } from "date-fns"; -import { Suspense, useEffect, useMemo, useState, useTransition } from "react"; -import { getUserName } from "@/components/UserHelpers"; -import type { UserType } from "@/lib/auth/server"; -import invariant from "@/lib/invariant"; import { Alert, Button, @@ -19,19 +14,13 @@ import { Stack, Text, } from "@mantine/core"; -import { - canManage, - canManageSignUpSheet, -} from "@/features/calendar/permissions"; -import { DateTime } from "@/components/DateTimeHelpers"; +import { useQuery, useQueryClient } from "@tanstack/react-query"; +import { isBefore, isSameDay } from "date-fns"; +import dayjs from "dayjs"; +import { Suspense, useEffect, useMemo, useState, useTransition } from "react"; +import { TbCalendarCheck } from "react-icons/tb"; + import { AddEditSignUpSheetForm } from "@/app/(authenticated)/calendar/[eventID]/AddEditSignUpSheetForm"; -import { - CrewType, - SignUpSheetType, - SignUpSheetWithEvent, -} from "@/features/calendar/signup_sheets"; -import { EventObjectType } from "@/features/calendar/events"; -import { ExposedUser } from "@/features/people"; import { checkRoleClashes, createSignUpSheet, @@ -41,10 +30,22 @@ import { removeSelfFromRole, signUpToRole, } from "@/app/(authenticated)/calendar/[eventID]/signUpSheetActions"; -import { TbCalendarCheck } from "react-icons/tb"; -import dayjs from "dayjs"; -import { useQuery, useQueryClient } from "@tanstack/react-query"; +import { DateTime } from "@/components/DateTimeHelpers"; +import { getUserName } from "@/components/UserHelpers"; import { useWebsocket } from "@/components/WebsocketProvider"; +import { type EventObjectType } from "@/features/calendar/events"; +import { + canManage, + canManageSignUpSheet, +} from "@/features/calendar/permissions"; +import { + type CrewType, + type SignUpSheetType, + type SignUpSheetWithEvent, +} from "@/features/calendar/signup_sheets"; +import { type ExposedUser } from "@/features/people"; +import type { UserType } from "@/lib/auth/server"; +import invariant from "@/lib/invariant"; function SignupSheet({ event, diff --git a/app/(authenticated)/calendar/[eventID]/actions.ts b/app/(authenticated)/calendar/[eventID]/actions.ts index 7bc79312..1609c9d4 100644 --- a/app/(authenticated)/calendar/[eventID]/actions.ts +++ b/app/(authenticated)/calendar/[eventID]/actions.ts @@ -1,29 +1,33 @@ "use server"; -import { - getCurrentUser, - mustGetCurrentUser, - requirePermission, -} from "@/lib/auth/server"; import { revalidatePath } from "next/cache"; -import { z } from "zod"; -import { AttendStatus, AttendStatuses } from "@/features/calendar/statuses"; -import * as Calendar from "@/features/calendar"; -import { EventType, hasRSVP } from "@/features/calendar/types"; -import { canManage } from "@/features/calendar/permissions"; -import { zodErrorResponse } from "@/components/FormServerHelpers"; +import { type z } from "zod"; + import { CheckWithTechActionSchema, EditEventSchema, } from "@/app/(authenticated)/calendar/[eventID]/schema"; -import { FormResponse } from "@/components/Form"; +import { type FormResponse } from "@/components/Form"; +import { zodErrorResponse } from "@/components/FormServerHelpers"; +import * as Calendar from "@/features/calendar"; import { updateEventAttendeeStatus } from "@/features/calendar/events"; +import { canManage } from "@/features/calendar/permissions"; +import { + type AttendStatus, + AttendStatuses, +} from "@/features/calendar/statuses"; +import { type EventType, hasRSVP } from "@/features/calendar/types"; +import { wrapServerAction } from "@/lib/actions"; +import { + getCurrentUser, + mustGetCurrentUser, + requirePermission, +} from "@/lib/auth/server"; +import { env } from "@/lib/env"; import invariant from "@/lib/invariant"; +import { parseAndThrowOrIgnoreSlackError } from "@/lib/slack/errors"; import slackApiConnection, { isSlackEnabled, } from "@/lib/slack/slackApiConnection"; -import { wrapServerAction } from "@/lib/actions"; -import { env } from "@/lib/env"; -import { parseAndThrowOrIgnoreSlackError } from "@/lib/slack/errors"; export const editEvent = wrapServerAction( "editEvent", diff --git a/app/(authenticated)/calendar/[eventID]/page.tsx b/app/(authenticated)/calendar/[eventID]/page.tsx index f93852f6..e971a5dd 100644 --- a/app/(authenticated)/calendar/[eventID]/page.tsx +++ b/app/(authenticated)/calendar/[eventID]/page.tsx @@ -1,41 +1,46 @@ +import { Alert, Group, Space, Stack } from "@mantine/core"; +import { isSameDay } from "date-fns"; +import dayjs from "dayjs"; import { notFound } from "next/navigation"; -import invariant from "@/lib/invariant"; -import { getUserName } from "@/components/UserHelpers"; -import { hasPermission, mustGetCurrentUser, UserType } from "@/lib/auth/server"; +import { Suspense } from "react"; +import { TbAlertTriangle, TbInfoCircle, TbTool } from "react-icons/tb"; +import { twMerge } from "tailwind-merge"; + import { CurrentUserAttendeeRow } from "@/app/(authenticated)/calendar/[eventID]/AttendeeStatus"; -import { AttendStatusLabels } from "@/features/calendar/statuses"; import { SignupSheetsView } from "@/app/(authenticated)/calendar/[eventID]/SignupSheet"; import { DateTime } from "@/components/DateTimeHelpers"; -import { isSameDay } from "date-fns"; -import { twMerge } from "tailwind-merge"; -import { EventObjectType, getEvent } from "@/features/calendar/events"; +import { + CrewPositionsProvider, + MembersProvider, +} from "@/components/FormFieldPreloadedData"; +import { PageInfo } from "@/components/PageInfo"; +import SlackChannelName from "@/components/slack/SlackChannelName"; +import SlackLoginButton from "@/components/slack/SlackLoginButton"; +import { getUserName } from "@/components/UserHelpers"; import { canManage, canManageAnySignupSheet, getAllCrewPositions, getLatestRequest, } from "@/features/calendar"; -import { - CrewPositionsProvider, - MembersProvider, -} from "@/components/FormFieldPreloadedData"; +import { type EventObjectType, getEvent } from "@/features/calendar/events"; +import { AttendStatusLabels } from "@/features/calendar/statuses"; import { getAllUsers } from "@/features/people"; -import { EventActionsUI } from "./EventActionsUI"; -import { Alert, Group, Space, Stack } from "@mantine/core"; -import { TbInfoCircle, TbAlertTriangle, TbTool } from "react-icons/tb"; +import { + hasPermission, + mustGetCurrentUser, + type UserType, +} from "@/lib/auth/server"; +import invariant from "@/lib/invariant"; import slackApiConnection, { isSlackEnabled, } from "@/lib/slack/slackApiConnection"; -import { Suspense } from "react"; -import SlackChannelName from "@/components/slack/SlackChannelName"; -import SlackLoginButton from "@/components/slack/SlackLoginButton"; + import { CheckWithTechAdminBanner, CheckWithTechPromptContents, } from "./CheckWithTech"; -import { C } from "@fullcalendar/core/internal-common"; -import dayjs from "dayjs"; -import { PageInfo } from "@/components/PageInfo"; +import { EventActionsUI } from "./EventActionsUI"; async function AttendeesView({ event, diff --git a/app/(authenticated)/calendar/[eventID]/signUpSheetActions.ts b/app/(authenticated)/calendar/[eventID]/signUpSheetActions.ts index a6021684..560b99ae 100644 --- a/app/(authenticated)/calendar/[eventID]/signUpSheetActions.ts +++ b/app/(authenticated)/calendar/[eventID]/signUpSheetActions.ts @@ -1,23 +1,24 @@ "use server"; -import { getCurrentUser } from "@/lib/auth/server"; +import { isBefore } from "date-fns"; +import { revalidatePath } from "next/cache"; +import { type z } from "zod"; + +import { SignupSheetSchema } from "@/app/(authenticated)/calendar/[eventID]/schema"; +import { type FormResponse } from "@/components/Form"; +import { zodErrorResponse } from "@/components/FormServerHelpers"; import * as Calendar from "@/features/calendar"; import { canManage, canManageSignUpSheet, updateSignUpSheet, } from "@/features/calendar"; -import { isBefore } from "date-fns"; -import { revalidatePath } from "next/cache"; -import { z } from "zod"; -import { SignupSheetSchema } from "@/app/(authenticated)/calendar/[eventID]/schema"; -import { FormResponse } from "@/components/Form"; -import { zodErrorResponse } from "@/components/FormServerHelpers"; +import { wrapServerAction } from "@/lib/actions"; +import { getCurrentUser } from "@/lib/auth/server"; +import { parseAndThrowOrIgnoreSlackError } from "@/lib/slack/errors"; import slackApiConnection, { isSlackEnabled, } from "@/lib/slack/slackApiConnection"; -import { wrapServerAction } from "@/lib/actions"; -import { parseAndThrowOrIgnoreSlackError } from "@/lib/slack/errors"; export const createSignUpSheet = wrapServerAction( "createSignUpSheet", diff --git a/app/(authenticated)/calendar/actions.ts b/app/(authenticated)/calendar/actions.ts index 272d9d30..574daf47 100644 --- a/app/(authenticated)/calendar/actions.ts +++ b/app/(authenticated)/calendar/actions.ts @@ -1,11 +1,12 @@ "use server"; +import dayjs from "dayjs"; +import { z } from "zod"; + +import { EventTypes, listEvents, listVacantEvents } from "@/features/calendar"; import { wrapServerAction } from "@/lib/actions"; import { mustGetCurrentUser } from "@/lib/auth/server"; -import { EventTypes, listEvents, listVacantEvents } from "@/features/calendar"; import invariant from "@/lib/invariant"; -import dayjs from "dayjs"; -import { z } from "zod"; dayjs.locale("en-gb"); diff --git a/app/(authenticated)/calendar/discover/DiscoverView.tsx b/app/(authenticated)/calendar/discover/DiscoverView.tsx index a0767042..a803ec3a 100644 --- a/app/(authenticated)/calendar/discover/DiscoverView.tsx +++ b/app/(authenticated)/calendar/discover/DiscoverView.tsx @@ -9,14 +9,15 @@ import { Select, Tooltip, } from "@mantine/core"; -import { DateTime } from "@/components/DateTimeHelpers"; import { isSameDay } from "date-fns"; import { useRouter } from "next/navigation"; -import { CrewType, EventObjectType } from "@/features/calendar"; import { useState } from "react"; import { TbArticle, TbFilter, TbInfoCircle } from "react-icons/tb"; + import { MyRoleSignUpModal } from "@/app/(authenticated)/calendar/[eventID]/SignupSheet"; -import { CrewPositionsTypeWithAvailability } from "@/app/(authenticated)/calendar/discover/page"; +import { type CrewPositionsTypeWithAvailability } from "@/app/(authenticated)/calendar/discover/page"; +import { DateTime } from "@/components/DateTimeHelpers"; +import { type CrewType, type EventObjectType } from "@/features/calendar"; export function DiscoverView({ vacantRoles, diff --git a/app/(authenticated)/calendar/discover/page.tsx b/app/(authenticated)/calendar/discover/page.tsx index 381d0edf..8a952051 100644 --- a/app/(authenticated)/calendar/discover/page.tsx +++ b/app/(authenticated)/calendar/discover/page.tsx @@ -1,7 +1,10 @@ -import { listVacantEvents } from "@/features/calendar/events"; -import { CrewPositionType, getAllCrewPositions } from "@/features/calendar"; import { DiscoverView } from "@/app/(authenticated)/calendar/discover/DiscoverView"; import { PageInfo } from "@/components/PageInfo"; +import { + type CrewPositionType, + getAllCrewPositions, +} from "@/features/calendar"; +import { listVacantEvents } from "@/features/calendar/events"; export default async function CalendarDiscoverPage({ searchParams, diff --git a/app/(authenticated)/calendar/helpers.ts b/app/(authenticated)/calendar/helpers.ts index 30811abe..3320445f 100644 --- a/app/(authenticated)/calendar/helpers.ts +++ b/app/(authenticated)/calendar/helpers.ts @@ -1,4 +1,4 @@ -import { QueryKey } from "@tanstack/react-query"; +import { type QueryKey } from "@tanstack/react-query"; export function calendarEventsQueryKey({ year, diff --git a/app/(authenticated)/calendar/new/actions.ts b/app/(authenticated)/calendar/new/actions.ts index a8a9c611..063bcd6e 100644 --- a/app/(authenticated)/calendar/new/actions.ts +++ b/app/(authenticated)/calendar/new/actions.ts @@ -1,22 +1,24 @@ "use server"; -import { FormResponse } from "@/components/Form"; +import { type App } from "@slack/bolt"; +import { type ConversationsInfoResponse } from "@slack/web-api/dist/types/response/ConversationsInfoResponse"; +import { revalidatePath } from "next/cache"; +import { env } from "process"; + +import { type FormResponse } from "@/components/Form"; import { zodErrorResponse } from "@/components/FormServerHelpers"; +import * as Calendar from "@/features/calendar"; import { canCreate } from "@/features/calendar"; import { wrapServerAction } from "@/lib/actions"; import { Forbidden } from "@/lib/auth/errors"; -import { Permission } from "@/lib/auth/permissions"; +import { type Permission } from "@/lib/auth/permissions"; import { getCurrentUser } from "@/lib/auth/server"; +import { parseAndThrowOrIgnoreSlackError } from "@/lib/slack/errors"; import slackApiConnection, { isSlackEnabled, } from "@/lib/slack/slackApiConnection"; -import { ConversationsInfoResponse } from "@slack/web-api/dist/types/response/ConversationsInfoResponse"; -import * as Calendar from "@/features/calendar"; -import { revalidatePath } from "next/cache"; -import { env } from "process"; + import { schema } from "./schema"; -import { App } from "@slack/bolt"; -import { parseAndThrowOrIgnoreSlackError } from "@/lib/slack/errors"; export const createEvent = wrapServerAction( "createEvent", diff --git a/app/(authenticated)/calendar/new/form.tsx b/app/(authenticated)/calendar/new/form.tsx index 8402645d..91d40fe4 100644 --- a/app/(authenticated)/calendar/new/form.tsx +++ b/app/(authenticated)/calendar/new/form.tsx @@ -1,7 +1,11 @@ "use client"; -import Form, { FormAction } from "@/components/Form"; -import { schema } from "./schema"; +import { Alert, InputLabel } from "@mantine/core"; +import { identity } from "lodash"; +import { useRouter } from "next/navigation"; +import { TbAlertTriangle } from "react-icons/tb"; + +import Form, { type FormAction } from "@/components/Form"; import { CheckBoxField, ConditionalField, @@ -12,14 +16,12 @@ import { TextAreaField, TextField, } from "@/components/FormFields"; -import { useRouter } from "next/navigation"; -import { EventType } from "@/features/calendar/types"; -import { identity } from "lodash"; -import { Alert, InputLabel } from "@mantine/core"; -import SlackChannelField from "@/components/SlackChannelField"; import { useSlackEnabled } from "@/components/slack/SlackEnabledProvider"; +import SlackChannelField from "@/components/SlackChannelField"; import { useCurrentUser } from "@/components/UserContext"; -import { TbAlertTriangle } from "react-icons/tb"; +import { type EventType } from "@/features/calendar/types"; + +import { schema } from "./schema"; export function CreateEventForm(props: { action: FormAction<{ id: number }>; diff --git a/app/(authenticated)/calendar/new/page.tsx b/app/(authenticated)/calendar/new/page.tsx index 985a1eca..465018d9 100644 --- a/app/(authenticated)/calendar/new/page.tsx +++ b/app/(authenticated)/calendar/new/page.tsx @@ -1,19 +1,21 @@ -import { mustGetCurrentUser } from "@/lib/auth/server"; +import { type App } from "@slack/bolt"; +import { type Channel } from "@slack/web-api/dist/types/response/ConversationsListResponse"; + import { CreateEventForm } from "@/app/(authenticated)/calendar/new/form"; +import { MembersProvider } from "@/components/FormFieldPreloadedData"; +import { PageInfo } from "@/components/PageInfo"; +import { SlackChannelsProvider } from "@/components/slack/SlackChannelsProvider"; +import { SlackEnabledProvider } from "@/components/slack/SlackEnabledProvider"; import { creatableEventTypes } from "@/features/calendar/permissions"; -import { Forbidden } from "@/lib/auth/errors"; import { getAllUsers } from "@/features/people"; -import { MembersProvider } from "@/components/FormFieldPreloadedData"; +import { Forbidden } from "@/lib/auth/errors"; +import { mustGetCurrentUser } from "@/lib/auth/server"; +import { env } from "@/lib/env"; import slackApiConnection, { isSlackEnabled, } from "@/lib/slack/slackApiConnection"; -import { SlackChannelsProvider } from "@/components/slack/SlackChannelsProvider"; -import { SlackEnabledProvider } from "@/components/slack/SlackEnabledProvider"; -import { App } from "@slack/bolt"; -import { Channel } from "@slack/web-api/dist/types/response/ConversationsListResponse"; -import { env } from "@/lib/env"; + import { createEvent } from "./actions"; -import { PageInfo } from "@/components/PageInfo"; async function getSlackChannels(): Promise { var fetchedSlackChannels: Channel[] = []; diff --git a/app/(authenticated)/calendar/new/schema.ts b/app/(authenticated)/calendar/new/schema.ts index 9dea2faa..1df2dd2f 100644 --- a/app/(authenticated)/calendar/new/schema.ts +++ b/app/(authenticated)/calendar/new/schema.ts @@ -1,7 +1,8 @@ -import { zfd } from "zod-form-data"; +import { isBefore } from "date-fns"; import { z } from "zod"; +import { zfd } from "zod-form-data"; + import { EventTypes } from "@/features/calendar/types"; -import { isBefore } from "date-fns"; export const schema = zfd .formData({ diff --git a/app/(authenticated)/calendar/page.tsx b/app/(authenticated)/calendar/page.tsx index a546fd9c..00958212 100644 --- a/app/(authenticated)/calendar/page.tsx +++ b/app/(authenticated)/calendar/page.tsx @@ -1,19 +1,21 @@ -import YSTVCalendar from "@/app/(authenticated)/calendar/YSTVCalendar"; -import Link from "next/link"; -import { PermissionGate } from "@/components/UserContext"; -import { listVacantEvents } from "@/features/calendar/events"; import { Alert, Button } from "@mantine/core"; -import { Permission } from "@/lib/auth/permissions"; -import { mustGetCurrentUser } from "@/lib/auth/server"; -import { TbArticle, TbCalendarEvent } from "react-icons/tb"; import { HydrationBoundary, QueryClient, dehydrate, } from "@tanstack/react-query"; +import Link from "next/link"; +import { TbArticle, TbCalendarEvent } from "react-icons/tb"; + +import YSTVCalendar from "@/app/(authenticated)/calendar/YSTVCalendar"; +import EventColoursKey from "@/components/EventColoursKey"; +import { PermissionGate } from "@/components/UserContext"; +import { listVacantEvents } from "@/features/calendar/events"; +import { type Permission } from "@/lib/auth/permissions"; +import { mustGetCurrentUser } from "@/lib/auth/server"; + import { fetchEvents } from "./actions"; import { calendarEventsQueryKey } from "./helpers"; -import EventColoursKey from "@/components/EventColoursKey"; export default async function CalendarPage() { await mustGetCurrentUser(); diff --git a/app/(authenticated)/error.tsx b/app/(authenticated)/error.tsx index 9df70aa4..f6f0a6e8 100644 --- a/app/(authenticated)/error.tsx +++ b/app/(authenticated)/error.tsx @@ -1,9 +1,10 @@ "use client"; +import * as Sentry from "@sentry/nextjs"; import { usePathname, useRouter } from "next/navigation"; import { useEffect } from "react"; + import { isNotLoggedIn } from "@/lib/auth/errors"; -import * as Sentry from "@sentry/nextjs"; export default function Error({ error, diff --git a/app/(authenticated)/feedback/actions.ts b/app/(authenticated)/feedback/actions.ts index 609c300b..4f18e25a 100644 --- a/app/(authenticated)/feedback/actions.ts +++ b/app/(authenticated)/feedback/actions.ts @@ -1,11 +1,12 @@ "use server"; +import { type FormResponse } from "@/components/Form"; import { zodErrorResponse } from "@/components/FormServerHelpers"; -import { UserReportSchema } from "./schema"; import * as Feedback from "@/features/userFeedback"; -import { getCurrentUser } from "@/lib/auth/server"; -import { FormResponse } from "@/components/Form"; import { wrapServerAction } from "@/lib/actions"; +import { getCurrentUser } from "@/lib/auth/server"; + +import { UserReportSchema } from "./schema"; export const doHandleUserReport = wrapServerAction( "doHandleUserReport", diff --git a/app/(authenticated)/feedback/form.tsx b/app/(authenticated)/feedback/form.tsx index 715423d7..01d8f385 100644 --- a/app/(authenticated)/feedback/form.tsx +++ b/app/(authenticated)/feedback/form.tsx @@ -1,15 +1,17 @@ "use client"; -import Form, { FormResponse } from "@/components/Form"; -import { UserReportSchema } from "./schema"; +import { notifications } from "@mantine/notifications"; +import { identity } from "lodash"; +import { useRouter, useSearchParams } from "next/navigation"; + +import Form, { type FormResponse } from "@/components/Form"; import { HiddenField, SelectField, TextAreaField, } from "@/components/FormFields"; -import { identity } from "lodash"; -import { useRouter, useSearchParams } from "next/navigation"; -import { notifications } from "@mantine/notifications"; + +import { UserReportSchema } from "./schema"; export function UserReportForm({ action, diff --git a/app/(authenticated)/feedback/page.tsx b/app/(authenticated)/feedback/page.tsx index 9eea6f44..4821ae0e 100644 --- a/app/(authenticated)/feedback/page.tsx +++ b/app/(authenticated)/feedback/page.tsx @@ -1,8 +1,9 @@ +import { BackButton } from "@/components/BackButton"; +import { PageInfo } from "@/components/PageInfo"; import { isSlackEnabled } from "@/lib/slack/slackApiConnection"; + import { doHandleUserReport } from "./actions"; import { UserReportForm } from "./form"; -import { PageInfo } from "@/components/PageInfo"; -import { BackButton } from "@/components/BackButton"; export default async function ReportPage({ searchParams, diff --git a/app/(authenticated)/layout.tsx b/app/(authenticated)/layout.tsx index 535d1987..1121cc2c 100644 --- a/app/(authenticated)/layout.tsx +++ b/app/(authenticated)/layout.tsx @@ -1,17 +1,12 @@ -import Image from "next/image"; -import Logo from "@/app/_assets/logo-new.png"; -import Link from "next/link"; -import { UserProvider } from "@/components/UserContext"; -import { getCurrentUserOrNull } from "@/lib/auth/server"; -import YSTVBreadcrumbs from "@/components/Breadcrumbs"; import * as Sentry from "@sentry/nextjs"; -import { UserMenu } from "@/components/UserMenu"; -import { QueryProvider } from "@/components/QueryProvider"; -import { LoginPrompt } from "@/components/LoginPrompt"; -import { WebsocketProvider } from "@/components/WebsocketProvider"; -import { useCreateSocket } from "@/lib/socket"; + import { FeedbackPrompt } from "@/components/FeedbackPrompt"; +import { LoginPrompt } from "@/components/LoginPrompt"; import Nav from "@/components/Nav"; +import { QueryProvider } from "@/components/QueryProvider"; +import { UserProvider } from "@/components/UserContext"; +import { WebsocketProvider } from "@/components/WebsocketProvider"; +import { getCurrentUserOrNull } from "@/lib/auth/server"; export default async function AuthenticatedLayout({ children, diff --git a/app/(authenticated)/quotes/AddEditQuoteForm.tsx b/app/(authenticated)/quotes/AddEditQuoteForm.tsx index 34470ffc..6ba5ba38 100644 --- a/app/(authenticated)/quotes/AddEditQuoteForm.tsx +++ b/app/(authenticated)/quotes/AddEditQuoteForm.tsx @@ -1,13 +1,15 @@ "use client"; -import { z } from "zod"; -import { AddQuoteSchema, EditQuoteSchema } from "./schema"; +import { Button, Card, Group, Text } from "@mantine/core"; +import { type Quote } from "@prisma/client"; +import { useState, useTransition } from "react"; +import { type z } from "zod"; + import Form from "@/components/Form"; -import { addQuote, deletQuote, editQuote } from "./actions"; import { HiddenField, TextAreaField, TextField } from "@/components/FormFields"; -import { useState, useTransition } from "react"; -import { Button, Card, Group, Text } from "@mantine/core"; -import { Quote } from "@prisma/client"; + +import { addQuote, deletQuote, editQuote } from "./actions"; +import { AddQuoteSchema, EditQuoteSchema } from "./schema"; export function AddEditQuoteForm(props: { initialData?: z.infer; diff --git a/app/(authenticated)/quotes/actions.ts b/app/(authenticated)/quotes/actions.ts index 97d193b3..3bc7c9e4 100644 --- a/app/(authenticated)/quotes/actions.ts +++ b/app/(authenticated)/quotes/actions.ts @@ -1,11 +1,12 @@ "use server"; -import { z } from "zod"; -import { AddQuoteSchema, EditQuoteSchema } from "./schema"; -import * as Quotes from "@/features/quotes"; -import { getCurrentUser, requirePermission } from "@/lib/auth/server"; import { revalidatePath } from "next/cache"; + +import * as Quotes from "@/features/quotes"; import { wrapServerAction } from "@/lib/actions"; +import { getCurrentUser, requirePermission } from "@/lib/auth/server"; + +import { AddQuoteSchema, EditQuoteSchema } from "./schema"; export const addQuote = wrapServerAction( "addQuote", diff --git a/app/(authenticated)/quotes/page.tsx b/app/(authenticated)/quotes/page.tsx index 145d56c0..b0098157 100644 --- a/app/(authenticated)/quotes/page.tsx +++ b/app/(authenticated)/quotes/page.tsx @@ -1,9 +1,11 @@ +import { Stack } from "@mantine/core"; + +import { PageInfo } from "@/components/PageInfo"; import * as Quotes from "@/features/quotes"; import { requirePermission } from "@/lib/auth/server"; + import { AddQuote, QuoteView } from "./AddEditQuoteForm"; -import { Stack } from "@mantine/core"; import { QuotesPagination } from "./pagination"; -import { PageInfo } from "@/components/PageInfo"; export const dynamic = "force-dynamic"; diff --git a/app/(authenticated)/quotes/schema.ts b/app/(authenticated)/quotes/schema.ts index a1021b3c..996fe0b2 100644 --- a/app/(authenticated)/quotes/schema.ts +++ b/app/(authenticated)/quotes/schema.ts @@ -1,5 +1,4 @@ import { z } from "zod"; -import { zfd } from "zod-form-data"; export const AddQuoteSchema = z.object({ text: z.string().nonempty(), diff --git a/app/(authenticated)/user/[id]/page.tsx b/app/(authenticated)/user/[id]/page.tsx index 46228184..8628cd47 100644 --- a/app/(authenticated)/user/[id]/page.tsx +++ b/app/(authenticated)/user/[id]/page.tsx @@ -1,4 +1,5 @@ import { requirePermission } from "@/lib/auth/server"; + import { UserPage } from "../me/page"; export default async function ArbitraryUserPage({ diff --git a/app/(authenticated)/user/me/UserPreferences.tsx b/app/(authenticated)/user/me/UserPreferences.tsx index d4fe6137..14908bd1 100644 --- a/app/(authenticated)/user/me/UserPreferences.tsx +++ b/app/(authenticated)/user/me/UserPreferences.tsx @@ -1,23 +1,17 @@ "use client"; import { - Stack, - InputWrapper, - SegmentedControl, - Group, Divider, + Group, InputLabel, + InputWrapper, + SegmentedControl, + Stack, } from "@mantine/core"; -import { - ReactNode, - useEffect, - useOptimistic, - useState, - useTransition, -} from "react"; -import { changePreference } from "./actions"; import { notifications } from "@mantine/notifications"; -import { useWebsocket } from "@/components/WebsocketProvider"; +import { type ReactNode, useOptimistic, useTransition } from "react"; + +import { changePreference } from "./actions"; type ReqPrefs = Required; diff --git a/app/(authenticated)/user/me/actions.ts b/app/(authenticated)/user/me/actions.ts index 1734acf2..ec25d293 100644 --- a/app/(authenticated)/user/me/actions.ts +++ b/app/(authenticated)/user/me/actions.ts @@ -1,10 +1,11 @@ "use server"; -import { FormResponse } from "@/components/Form"; -import { getCurrentUser } from "@/lib/auth/server"; -import * as People from "@/features/people"; import { revalidatePath } from "next/cache"; + +import { type FormResponse } from "@/components/Form"; +import * as People from "@/features/people"; import { wrapServerAction } from "@/lib/actions"; +import { getCurrentUser } from "@/lib/auth/server"; export const changePreference = wrapServerAction( "changePreference", diff --git a/app/(authenticated)/user/me/page.tsx b/app/(authenticated)/user/me/page.tsx index ccda88a7..872fff16 100644 --- a/app/(authenticated)/user/me/page.tsx +++ b/app/(authenticated)/user/me/page.tsx @@ -1,7 +1,3 @@ -import { getCurrentUser, mustGetCurrentUser } from "@/lib/auth/server"; -import * as People from "@/features/people"; -import * as Calendar from "@/features/calendar"; -import { getUserName } from "@/components/UserHelpers"; import { Avatar, Card, @@ -16,20 +12,26 @@ import { TableThead, TableTr, } from "@mantine/core"; -import { UserPreferences } from "./UserPreferences"; +import Link from "next/link"; +import { notFound } from "next/navigation"; +import { Suspense } from "react"; + +import { DateTime } from "@/components/DateTimeHelpers"; import { ICalCopyButton } from "@/components/ICalCopyButton"; +import { PageInfo } from "@/components/PageInfo"; +import { SignoutButton } from "@/components/SignoutButton"; import SlackLoginButton from "@/components/slack/SlackLoginButton"; import SlackUserInfo from "@/components/slack/SlackUserInfo"; -import { Suspense } from "react"; -import { isSlackEnabled } from "@/lib/slack/slackApiConnection"; -import { hasWrapped } from "../../wrapped/util"; -import Link from "next/link"; +import { getUserName } from "@/components/UserHelpers"; +import * as Calendar from "@/features/calendar"; +import * as People from "@/features/people"; +import { getCurrentUser, mustGetCurrentUser } from "@/lib/auth/server"; import { env } from "@/lib/env"; -import { SignoutButton } from "@/components/SignoutButton"; -import { PageInfo } from "@/components/PageInfo"; -import { notFound } from "next/navigation"; import invariant from "@/lib/invariant"; -import { DateTime } from "@/components/DateTimeHelpers"; +import { isSlackEnabled } from "@/lib/slack/slackApiConnection"; + +import { UserPreferences } from "./UserPreferences"; +import { hasWrapped } from "../../wrapped/util"; export default async function MePage() { return ; diff --git a/app/(authenticated)/webcam/WebcamGrid.tsx b/app/(authenticated)/webcam/WebcamGrid.tsx index a06eef7a..f687d730 100644 --- a/app/(authenticated)/webcam/WebcamGrid.tsx +++ b/app/(authenticated)/webcam/WebcamGrid.tsx @@ -1,13 +1,15 @@ "use client"; -import { WebcamView } from "@/components/WebcamView"; -import { WebcamFeed } from "@prisma/client"; -import { use } from "react"; -import { WebcamCreateForm, WebcamEditForm, WebcamRemoveForm } from "./form"; -import { addWebcam, editWebcam, removeWebcam } from "./actions"; import { Card, Grid, Group, Stack, Text } from "@mantine/core"; import { useElementSize } from "@mantine/hooks"; +import { type WebcamFeed } from "@prisma/client"; +import { use } from "react"; + import { PermissionGate } from "@/components/UserContext"; +import { WebcamView } from "@/components/WebcamView"; + +import { addWebcam, editWebcam, removeWebcam } from "./actions"; +import { WebcamCreateForm, WebcamEditForm, WebcamRemoveForm } from "./form"; export function WebcamGrid(props: { webcams: Promise }) { const webcamFeeds = use(props.webcams); diff --git a/app/(authenticated)/webcam/actions.ts b/app/(authenticated)/webcam/actions.ts index 766918d7..c7615001 100644 --- a/app/(authenticated)/webcam/actions.ts +++ b/app/(authenticated)/webcam/actions.ts @@ -1,18 +1,20 @@ "use server"; -import { FormResponse } from "@/components/Form"; -import { - addWebcamSchema, - editWebcamSchema, - removeWebcamSchema, -} from "./schema"; +import { revalidatePath } from "next/cache"; + +import { type FormResponse } from "@/components/Form"; import { zodErrorResponse } from "@/components/FormServerHelpers"; import { addWebcamFeed, editWebcamFeed, removeWebcamFeed, } from "@/features/webcams"; -import { revalidatePath } from "next/cache"; + +import { + addWebcamSchema, + editWebcamSchema, + removeWebcamSchema, +} from "./schema"; export async function addWebcam(unsafeData: unknown): Promise { const parsedData = await addWebcamSchema.safeParseAsync(unsafeData); diff --git a/app/(authenticated)/webcam/form.tsx b/app/(authenticated)/webcam/form.tsx index 52519d53..fd21f8ac 100644 --- a/app/(authenticated)/webcam/form.tsx +++ b/app/(authenticated)/webcam/form.tsx @@ -1,19 +1,21 @@ "use client"; -import { z } from "zod"; +import { ActionIcon, Button, Modal, Tooltip } from "@mantine/core"; +import { useDisclosure } from "@mantine/hooks"; +import { openConfirmModal } from "@mantine/modals"; +import { notifications } from "@mantine/notifications"; +import { type WebcamFeed } from "@prisma/client"; +import { FaEdit, FaTrash } from "react-icons/fa"; +import { type z } from "zod"; + +import Form, { type FormResponse } from "@/components/Form"; +import { TextField } from "@/components/FormFields"; + import { addWebcamSchema, editWebcamSchema, - removeWebcamSchema, + type removeWebcamSchema, } from "./schema"; -import Form, { FormResponse } from "@/components/Form"; -import { useDisclosure } from "@mantine/hooks"; -import { ActionIcon, Button, Modal, Tooltip } from "@mantine/core"; -import { notifications } from "@mantine/notifications"; -import { TextField } from "@/components/FormFields"; -import { WebcamFeed } from "@prisma/client"; -import { FaEdit, FaTrash } from "react-icons/fa"; -import { openConfirmModal } from "@mantine/modals"; export function WebcamCreateForm(props: { create: (data: z.infer) => Promise; diff --git a/app/(authenticated)/webcam/page.tsx b/app/(authenticated)/webcam/page.tsx index 2b9f8a10..b1c22518 100644 --- a/app/(authenticated)/webcam/page.tsx +++ b/app/(authenticated)/webcam/page.tsx @@ -1,10 +1,10 @@ -import { WebcamView } from "@/components/WebcamView"; -import { fetchWebcamFeeds } from "@/features/webcams"; -import { Center, Group, Loader, Stack } from "@mantine/core"; +import { Center, Loader, Stack } from "@mantine/core"; import { Suspense } from "react"; -import { WebcamGrid } from "./WebcamGrid"; -import { addWebcam, editWebcam, removeWebcam } from "./actions"; + import { PageInfo } from "@/components/PageInfo"; +import { fetchWebcamFeeds } from "@/features/webcams"; + +import { WebcamGrid } from "./WebcamGrid"; export const dynamic = "force-dynamic"; diff --git a/app/(authenticated)/wrapped/page.tsx b/app/(authenticated)/wrapped/page.tsx index ca51fb50..7cbc426b 100644 --- a/app/(authenticated)/wrapped/page.tsx +++ b/app/(authenticated)/wrapped/page.tsx @@ -1,8 +1,10 @@ -import { mustGetCurrentUser } from "@/lib/auth/server"; import { notFound } from "next/navigation"; import { createHash } from "node:crypto"; -import { hasWrapped } from "./util"; + import { PageInfo } from "@/components/PageInfo"; +import { mustGetCurrentUser } from "@/lib/auth/server"; + +import { hasWrapped } from "./util"; export default async function WrappedPage({ searchParams, diff --git a/app/api/public/events/route.ts b/app/api/public/events/route.ts index 7fe1b0b1..1cf31cf5 100644 --- a/app/api/public/events/route.ts +++ b/app/api/public/events/route.ts @@ -1,5 +1,6 @@ +import { type NextRequest, NextResponse } from "next/server"; + import { listPublicEvents } from "@/features/calendar"; -import { NextRequest, NextResponse } from "next/server"; export const dynamic = "force-dynamic"; diff --git a/app/bios/CookiesView.tsx b/app/bios/CookiesView.tsx index 5ffdbe49..e1068092 100644 --- a/app/bios/CookiesView.tsx +++ b/app/bios/CookiesView.tsx @@ -1,10 +1,11 @@ "use client"; -import { Stack, Card, Group, Button, Text } from "@mantine/core"; -import { RequestCookie } from "next/dist/compiled/@edge-runtime/cookies"; -import { deleteCookie } from "./actions"; +import { Button, Card, Group, Stack, Text } from "@mantine/core"; +import { type RequestCookie } from "next/dist/compiled/@edge-runtime/cookies"; import { useRouter } from "next/navigation"; +import { deleteCookie } from "./actions"; + export function CookieView(props: { cookies: RequestCookie[] }) { const router = useRouter(); diff --git a/app/bios/actions.ts b/app/bios/actions.ts index b76eeb76..cfde9514 100644 --- a/app/bios/actions.ts +++ b/app/bios/actions.ts @@ -1,8 +1,9 @@ "use server"; -import { env } from "@/lib/env"; import { cookies } from "next/headers"; +import { env } from "@/lib/env"; + export async function deleteCookie(name: string) { const cookieStore = cookies(); return cookieStore.set({ diff --git a/app/bios/page.tsx b/app/bios/page.tsx index 4cd3662f..cd09fe0b 100644 --- a/app/bios/page.tsx +++ b/app/bios/page.tsx @@ -1,4 +1,5 @@ import { cookies } from "next/headers"; + import { CookieView } from "./CookiesView"; export default function BIOSPage() { diff --git a/app/enableDebugMode/route.ts b/app/enableDebugMode/route.ts index d98c0b21..708e065d 100644 --- a/app/enableDebugMode/route.ts +++ b/app/enableDebugMode/route.ts @@ -1,8 +1,10 @@ -import { NextRequest, NextResponse } from "next/server"; import { cookies } from "next/headers"; -import { DEBUG_MODE_COOKIE } from "./common"; +import { type NextRequest, NextResponse } from "next/server"; + import { env } from "@/lib/env"; +import { DEBUG_MODE_COOKIE } from "./common"; + export function GET(req: NextRequest): NextResponse { const val = req.nextUrl.searchParams.get("value") ? req.nextUrl.searchParams.get("value") === "true" diff --git a/app/healthz/route.ts b/app/healthz/route.ts index 136bdc85..779c7f00 100644 --- a/app/healthz/route.ts +++ b/app/healthz/route.ts @@ -1,8 +1,9 @@ // eslint-disable-next-line @typescript-eslint/no-restricted-imports -import { prisma } from "@/lib/db"; import { Prisma } from "@prisma/client"; import { NextResponse } from "next/server"; +import { prisma } from "@/lib/db"; + export const dynamic = "force-dynamic"; export async function GET() { diff --git a/app/iCal/[token]/route.ts b/app/iCal/[token]/route.ts index df42e33a..61e4ab52 100644 --- a/app/iCal/[token]/route.ts +++ b/app/iCal/[token]/route.ts @@ -1,4 +1,5 @@ -import { NextRequest, NextResponse } from "next/server"; +import { type NextRequest, NextResponse } from "next/server"; + import * as Calendar from "@/features/calendar"; export const dynamic = "force-dynamic"; diff --git a/app/layout.tsx b/app/layout.tsx index 59c7d708..c379f9c7 100644 --- a/app/layout.tsx +++ b/app/layout.tsx @@ -1,18 +1,20 @@ -import "./globals.css"; +import { ColorSchemeScript, MantineProvider } from "@mantine/core"; +import { ModalsProvider } from "@mantine/modals"; +import { Notifications } from "@mantine/notifications"; import { Inter } from "next/font/google"; import { cookies } from "next/headers"; -import { DebugIndicator, DebugModeProvider } from "@/components/DebugMode"; +import "./globals.css"; + import { DEBUG_MODE_COOKIE } from "@/app/enableDebugMode/common"; +import { DebugIndicator, DebugModeProvider } from "@/components/DebugMode"; import { PublicURLProvider } from "@/components/PublicURLContext"; -import { ColorSchemeScript, MantineProvider } from "@mantine/core"; -import { ModalsProvider } from "@mantine/modals"; +import { env } from "@/lib/env"; + import { theme } from "./theme"; import "@mantine/core/styles.css"; import "@mantine/dates/styles.css"; import "@mantine/notifications/styles.css"; -import { Notifications } from "@mantine/notifications"; -import { env } from "@/lib/env"; const inter = Inter({ subsets: ["latin"], @@ -29,7 +31,7 @@ export default async function RootLayout({ }: { children: React.ReactNode; }) { - const debugMode = cookies().get(DEBUG_MODE_COOKIE)?.value === "true"; + const debugMode = (await cookies()).get(DEBUG_MODE_COOKIE)?.value === "true"; return ( diff --git a/app/login/google/callback/route.ts b/app/login/google/callback/route.ts index 64f305b1..abd80017 100644 --- a/app/login/google/callback/route.ts +++ b/app/login/google/callback/route.ts @@ -1,7 +1,8 @@ -import { loginOrCreateUserGoogle } from "@/lib/auth/server"; +import { type NextRequest, NextResponse } from "next/server"; + import { COOKIE_NAME } from "@/lib/auth/core"; +import { loginOrCreateUserGoogle } from "@/lib/auth/server"; import { env } from "@/lib/env"; -import { NextRequest, NextResponse } from "next/server"; export const dynamic = "force-dynamic"; diff --git a/app/login/google/route.ts b/app/login/google/route.ts index bb1cd023..9a8f5ad0 100644 --- a/app/login/google/route.ts +++ b/app/login/google/route.ts @@ -1,7 +1,8 @@ +import { randomUUID } from "crypto"; +import { type NextRequest, NextResponse } from "next/server"; + import { COOKIE_NAME } from "@/lib/auth/core"; import { env } from "@/lib/env"; -import { randomUUID } from "crypto"; -import { NextRequest, NextResponse } from "next/server"; export async function GET(req: NextRequest) { const redirect = req.nextUrl.searchParams.get("redirect"); diff --git a/app/login/page.tsx b/app/login/page.tsx index 36e73258..241c09aa 100644 --- a/app/login/page.tsx +++ b/app/login/page.tsx @@ -1,13 +1,15 @@ +import { Center, Stack } from "@mantine/core"; import Image from "next/image"; -import BG from "./login-bg.png"; + import { GoogleLoginButton } from "@/components/google/GoogleLoginButton"; -import invariant from "@/lib/invariant"; +import { PageInfo } from "@/components/PageInfo"; import SlackLoginButton from "@/components/slack/SlackLoginButton"; -import { isSlackEnabled } from "@/lib/slack/slackApiConnection"; -import { Center, Stack } from "@mantine/core"; -import { env } from "@/lib/env"; import { ensureNoActiveSession } from "@/lib/auth/server"; -import { PageInfo } from "@/components/PageInfo"; +import { env } from "@/lib/env"; +import invariant from "@/lib/invariant"; +import { isSlackEnabled } from "@/lib/slack/slackApiConnection"; + +import BG from "./login-bg.png"; export default async function GoogleSignInPage(props: { searchParams: { error?: string; redirect?: string }; diff --git a/app/login/slack/callback/route.ts b/app/login/slack/callback/route.ts index d47e9982..836932e4 100644 --- a/app/login/slack/callback/route.ts +++ b/app/login/slack/callback/route.ts @@ -1,10 +1,11 @@ -import { NextRequest, NextResponse } from "next/server"; -import { getSlackUserInfo } from "@/lib/auth/slack"; +import { type NextRequest, NextResponse } from "next/server"; + import { COOKIE_NAME, getCurrentUserOrNull, loginOrCreateUserSlack, } from "@/lib/auth/server"; +import { getSlackUserInfo } from "@/lib/auth/slack"; import { env } from "@/lib/env"; export const dynamic = "force-dynamic"; diff --git a/app/login/slack/route.ts b/app/login/slack/route.ts index 462754b8..45c0a25c 100644 --- a/app/login/slack/route.ts +++ b/app/login/slack/route.ts @@ -1,6 +1,7 @@ +import { type NextRequest, NextResponse } from "next/server"; + import { COOKIE_NAME } from "@/lib/auth/core"; import { env } from "@/lib/env"; -import { NextRequest, NextResponse } from "next/server"; export async function GET(req: NextRequest) { const redirect = req.nextUrl.searchParams.get("redirect"); diff --git a/app/page.tsx b/app/page.tsx index 0977d94d..ae7dd13c 100644 --- a/app/page.tsx +++ b/app/page.tsx @@ -1,6 +1,7 @@ +import { redirect } from "next/navigation"; + import { NotLoggedIn } from "@/lib/auth/errors"; import { getCurrentUser } from "@/lib/auth/server"; -import { redirect } from "next/navigation"; export default async function Home() { try { diff --git a/components/Breadcrumbs.tsx b/components/Breadcrumbs.tsx index cc5fdc71..6dc8f86f 100644 --- a/components/Breadcrumbs.tsx +++ b/components/Breadcrumbs.tsx @@ -1,9 +1,8 @@ "use client"; +import { Anchor, Breadcrumbs, Text } from "@mantine/core"; +import Link from "next/link"; import { usePathname } from "next/navigation"; import { useMemo } from "react"; -import Link from "next/link"; -import { Anchor, Breadcrumbs, Text } from "@mantine/core"; -import { LuHome } from "react-icons/lu"; const breadcrumbSegments: { [K: string]: string } = { calendar: "Calendar", diff --git a/components/DebugMode.tsx b/components/DebugMode.tsx index c7022460..46e34758 100644 --- a/components/DebugMode.tsx +++ b/components/DebugMode.tsx @@ -1,6 +1,6 @@ "use client"; -import { createContext, useContext } from "react"; import Link from "next/link"; +import { createContext, useContext } from "react"; const DebugContext = createContext(false); diff --git a/components/Form.tsx b/components/Form.tsx index f38e3b89..61918547 100644 --- a/components/Form.tsx +++ b/components/Form.tsx @@ -1,17 +1,17 @@ "use client"; -import { z, ZodEffects, ZodTypeAny } from "zod"; +import { zodResolver } from "@hookform/resolvers/zod"; +import { Button, type DefaultMantineColor } from "@mantine/core"; +import { useCallback, useState, useTransition } from "react"; import { - DeepPartial, - FieldValues, + type DeepPartial, + type FieldValues, FormProvider, useForm, } from "react-hook-form"; -import { zodResolver } from "@hookform/resolvers/zod"; -import { useCallback, useState, useTransition } from "react"; -import classNames from "classnames"; -import { FieldPath } from "react-hook-form/dist/types/path"; +import { type FieldPath } from "react-hook-form/dist/types/path"; +import { type z, type ZodEffects, type ZodTypeAny } from "zod"; + import { DebugOnly } from "@/components/DebugMode"; -import { Button, DefaultMantineColor } from "@mantine/core"; export interface FormErrorResponse { ok: false; diff --git a/components/FormFieldPreloadedData.tsx b/components/FormFieldPreloadedData.tsx index c24b9b05..96743c24 100644 --- a/components/FormFieldPreloadedData.tsx +++ b/components/FormFieldPreloadedData.tsx @@ -1,9 +1,10 @@ "use client"; import { createContext, useContext } from "react"; + import type { CrewPositionType } from "@/features/calendar"; +import { type ExposedUser } from "@/features/people"; import invariant from "@/lib/invariant"; -import { ExposedUser } from "@/features/people"; const CrewPositionsContext = createContext(null); diff --git a/components/FormFields.tsx b/components/FormFields.tsx index 9a750021..5f06dd40 100644 --- a/components/FormFields.tsx +++ b/components/FormFields.tsx @@ -1,41 +1,43 @@ import { - ArrayPath, - Controller, - FieldArray, - FieldValues, - useController, - useFieldArray, - useFormContext, -} from "react-hook-form"; -import { ReactNode, useEffect, useMemo, useState } from "react"; -import { + ActionIcon, + Box, Button, + Card, + Center, Checkbox, - NativeSelect, - TextInput, - Textarea, - Box, - SegmentedControl, + Chip, Input, + InputError, InputLabel, - Card, - ActionIcon, - Chip, + NativeSelect, + SegmentedControl, Space, Stack, - InputError, + TextInput, + Textarea, useMatches, - Center, } from "@mantine/core"; import { DatePicker, DateTimePicker } from "@mantine/dates"; -import { useMembers } from "@/components/FormFieldPreloadedData"; -import { getUserName } from "@/components/UserHelpers"; import dayjs from "dayjs"; +import { type ReactNode, useEffect, useMemo, useState } from "react"; +import { + type ArrayPath, + Controller, + type FieldArray, + type FieldValues, + useController, + useFieldArray, + useFormContext, +} from "react-hook-form"; +import { type FieldPath } from "react-hook-form/dist/types/path"; +import { IoClose } from "react-icons/io5"; import { twMerge } from "tailwind-merge"; -import { FieldPath } from "react-hook-form/dist/types/path"; + +import { useMembers } from "@/components/FormFieldPreloadedData"; +import { getUserName } from "@/components/UserHelpers"; +import { type Permission, PermissionEnum } from "@/lib/auth/permissions"; + import SelectOption from "./SelectOption"; -import { PermissionEnum, Permission } from "@/lib/auth/permissions"; -import { IoClose } from "react-icons/io5"; export function TextField(props: { name: string; diff --git a/components/FormServerHelpers.ts b/components/FormServerHelpers.ts index 3a322be7..26059480 100644 --- a/components/FormServerHelpers.ts +++ b/components/FormServerHelpers.ts @@ -1,5 +1,6 @@ -import { ZodError } from "zod"; -import { FormErrorResponse } from "@/components/Form"; +import { type ZodError } from "zod"; + +import { type FormErrorResponse } from "@/components/Form"; export function zodErrorResponse(err: ZodError): FormErrorResponse { return { diff --git a/components/Nav.tsx b/components/Nav.tsx index ca090be7..f1cdfb61 100644 --- a/components/Nav.tsx +++ b/components/Nav.tsx @@ -3,10 +3,11 @@ import { AppShell, Group, rem } from "@mantine/core"; import { useHeadroom } from "@mantine/hooks"; import Image from "next/image"; import Link from "next/link"; + import Logo from "@/app/_assets/logo-new.png"; +import YSTVBreadcrumbs from "@/components/Breadcrumbs"; import { UserMenu } from "@/components/UserMenu"; import styles from "@/styles/Nav.module.css"; -import YSTVBreadcrumbs from "@/components/Breadcrumbs"; interface NavProps { children: React.ReactNode; diff --git a/components/PublicURLContext.tsx b/components/PublicURLContext.tsx index a8c4b074..5e018dfe 100644 --- a/components/PublicURLContext.tsx +++ b/components/PublicURLContext.tsx @@ -1,5 +1,5 @@ "use client"; -import { ReactNode, createContext, useContext } from "react"; +import { type ReactNode, createContext, useContext } from "react"; export const PublicURLContext = createContext(""); diff --git a/components/QueryProvider.tsx b/components/QueryProvider.tsx index 78ecee38..0625a281 100644 --- a/components/QueryProvider.tsx +++ b/components/QueryProvider.tsx @@ -1,7 +1,7 @@ "use client"; import { QueryClient, QueryClientProvider } from "@tanstack/react-query"; -import { ReactNode } from "react"; +import { type ReactNode } from "react"; export function QueryProvider(props: { children: ReactNode }) { const queryClient = new QueryClient(); diff --git a/components/SelectOption.tsx b/components/SelectOption.tsx index 3b34905a..6485a173 100644 --- a/components/SelectOption.tsx +++ b/components/SelectOption.tsx @@ -1,4 +1,3 @@ -import invariant from "@/lib/invariant"; import { Combobox, ComboboxChevron, diff --git a/components/SelectWithCustomOption.tsx b/components/SelectWithCustomOption.tsx index 93fd601f..ffe4ddda 100644 --- a/components/SelectWithCustomOption.tsx +++ b/components/SelectWithCustomOption.tsx @@ -1,4 +1,3 @@ -import invariant from "@/lib/invariant"; import { Combobox, ComboboxChevron, @@ -11,6 +10,8 @@ import { } from "@mantine/core"; import { useEffect, useMemo, useRef, useState } from "react"; +import invariant from "@/lib/invariant"; + /** * React component for a select input with custom options. * diff --git a/components/SignoutButton/actions.ts b/components/SignoutButton/actions.ts index 016cf0c5..7a3c492e 100644 --- a/components/SignoutButton/actions.ts +++ b/components/SignoutButton/actions.ts @@ -1,9 +1,10 @@ "use server"; +import { cookies } from "next/headers"; + import { wrapServerAction } from "@/lib/actions"; import { COOKIE_NAME } from "@/lib/auth/core"; import { env } from "@/lib/env"; -import { cookies } from "next/headers"; export const signOut = wrapServerAction("signOut", async function signOut() { cookies().set(COOKIE_NAME, "", { diff --git a/components/SignoutButton/index.tsx b/components/SignoutButton/index.tsx index 92977313..48f337e3 100644 --- a/components/SignoutButton/index.tsx +++ b/components/SignoutButton/index.tsx @@ -1,6 +1,7 @@ "use client"; import { Button } from "@mantine/core"; + import { signOut } from "./actions"; export function SignoutButton() { diff --git a/components/SlackChannelField.tsx b/components/SlackChannelField.tsx index 43163dad..dc6eb380 100644 --- a/components/SlackChannelField.tsx +++ b/components/SlackChannelField.tsx @@ -1,11 +1,12 @@ "use client"; +import { InputError } from "@mantine/core"; +import { useForceUpdate } from "@mantine/hooks"; import { use, useMemo } from "react"; import { useController, useFormContext } from "react-hook-form"; -import { useSlackChannels } from "@/components/slack/SlackChannelsProvider"; + import SelectWithCustomOption from "@/components/SelectWithCustomOption"; -import { useForceUpdate } from "@mantine/hooks"; -import { InputError } from "@mantine/core"; +import { useSlackChannels } from "@/components/slack/SlackChannelsProvider"; export default function SlackChannelField(props: { parentName: string }) { const ctx = useFormContext(); diff --git a/components/Spinner.tsx b/components/Spinner.tsx index d1f41940..a31529e2 100644 --- a/components/Spinner.tsx +++ b/components/Spinner.tsx @@ -1,6 +1,7 @@ +import classNames from "classnames"; import Image from "next/image"; + import spinnerImage from "@/app/_assets/spinner.svg"; -import classNames from "classnames"; export default function Spinner(props: { className?: string }) { return ( diff --git a/components/UserContext.tsx b/components/UserContext.tsx index 0119ef24..0b2885d6 100644 --- a/components/UserContext.tsx +++ b/components/UserContext.tsx @@ -1,10 +1,11 @@ "use client"; -import { createContext, useContext, useEffect, useMemo } from "react"; -import { Permission } from "@/lib/auth/permissions"; -import { UserType } from "@/lib/auth/server"; import * as Sentry from "@sentry/nextjs"; +import { createContext, useContext, useEffect, useMemo } from "react"; + import { preferenceDefaults } from "@/features/people/preferences"; +import { type Permission } from "@/lib/auth/permissions"; +import { type UserType } from "@/lib/auth/server"; const UserContext = createContext( null as unknown as UserType /* Bit naughty, but getCurrentUser ensures there's a user signed in */, diff --git a/components/UserMenu.tsx b/components/UserMenu.tsx index e8b10a50..fe08985c 100644 --- a/components/UserMenu.tsx +++ b/components/UserMenu.tsx @@ -1,15 +1,14 @@ "use client"; -import Image from "next/image"; import { - Box, Center, - MantineColorScheme, + type MantineColorScheme, Menu, SegmentedControl, useMantineColorScheme, VisuallyHidden, } from "@mantine/core"; +import Image from "next/image"; import { LuLaptop, LuMoon, LuSun } from "react-icons/lu"; export function UserMenu({ userAvatar }: { userAvatar: string }) { diff --git a/components/WebcamView.tsx b/components/WebcamView.tsx index c37361c9..bfae2c6f 100644 --- a/components/WebcamView.tsx +++ b/components/WebcamView.tsx @@ -1,8 +1,8 @@ "use client"; -import { useEffect, useRef, useState } from "react"; -import MuxVideo from "@mux/mux-video-react"; import { Box, LoadingOverlay } from "@mantine/core"; +import MuxVideo from "@mux/mux-video-react"; +import { useEffect, useRef, useState } from "react"; export function WebcamView(props: { webcamUrl: string; diff --git a/components/WebsocketProvider.tsx b/components/WebsocketProvider.tsx index 80ca46ac..3a848d36 100644 --- a/components/WebsocketProvider.tsx +++ b/components/WebsocketProvider.tsx @@ -1,7 +1,8 @@ "use client"; -import { TSocket, useCreateSocket } from "@/lib/socket"; -import { ReactNode, createContext, useContext } from "react"; +import { type ReactNode, createContext, useContext } from "react"; + +import { type TSocket, useCreateSocket } from "@/lib/socket"; export const WebsocketContext = createContext( null as unknown as TSocket, diff --git a/components/google/GoogleLoginButton.tsx b/components/google/GoogleLoginButton.tsx index b078a8fb..44444ce4 100644 --- a/components/google/GoogleLoginButton.tsx +++ b/components/google/GoogleLoginButton.tsx @@ -1,10 +1,11 @@ "use client"; -import { usePublicURL } from "@/components/PublicURLContext"; -import { useSearchParams } from "next/navigation"; -import Script from "next/script"; import { Button } from "@mantine/core"; import Link from "next/link"; +import { useSearchParams } from "next/navigation"; +import Script from "next/script"; + +import { usePublicURL } from "@/components/PublicURLContext"; export function GoogleLoginButton(props: { redirect?: string }) { const publicURL = usePublicURL(); diff --git a/components/google/actions.ts b/components/google/actions.ts index efb61bff..2195b9e4 100644 --- a/components/google/actions.ts +++ b/components/google/actions.ts @@ -1,9 +1,10 @@ "use server"; +import { cookies } from "next/headers"; + import { wrapServerAction } from "@/lib/actions"; import { COOKIE_NAME } from "@/lib/auth/core"; import { env } from "@/lib/env"; -import { cookies } from "next/headers"; export const setRedirectCookie = wrapServerAction( "setRedirectCookie", diff --git a/components/slack/SlackChannelName.tsx b/components/slack/SlackChannelName.tsx index 8f65efd3..abebf52d 100644 --- a/components/slack/SlackChannelName.tsx +++ b/components/slack/SlackChannelName.tsx @@ -1,8 +1,9 @@ +import { Text } from "@mantine/core"; +import { type ConversationsInfoResponse } from "@slack/web-api/dist/types/response"; + import slackApiConnection, { isSlackEnabled, } from "@/lib/slack/slackApiConnection"; -import { Text } from "@mantine/core"; -import { ConversationsInfoResponse } from "@slack/web-api/dist/types/response"; export default async function SlackChannelName({ slackChannelID, diff --git a/components/slack/SlackChannelsProvider.tsx b/components/slack/SlackChannelsProvider.tsx index 0119c3a7..50e9648d 100644 --- a/components/slack/SlackChannelsProvider.tsx +++ b/components/slack/SlackChannelsProvider.tsx @@ -1,9 +1,10 @@ "use client"; -import invariant from "@/lib/invariant"; -import { Channel } from "@slack/web-api/dist/types/response/ConversationsListResponse"; +import { type Channel } from "@slack/web-api/dist/types/response/ConversationsListResponse"; import { createContext, useContext } from "react"; +import invariant from "@/lib/invariant"; + const SlackChannelContext = createContext | null>(null); export function SlackChannelsProvider(props: { diff --git a/components/slack/SlackEnabledProvider.tsx b/components/slack/SlackEnabledProvider.tsx index 62a4e82c..b098608f 100644 --- a/components/slack/SlackEnabledProvider.tsx +++ b/components/slack/SlackEnabledProvider.tsx @@ -1,8 +1,9 @@ "use client"; -import invariant from "@/lib/invariant"; import { createContext, useContext } from "react"; +import invariant from "@/lib/invariant"; + const SlackEnabledContext = createContext(null); export function SlackEnabledProvider(props: { diff --git a/components/slack/SlackLoginButton.tsx b/components/slack/SlackLoginButton.tsx index 2365f80d..ce8622b6 100644 --- a/components/slack/SlackLoginButton.tsx +++ b/components/slack/SlackLoginButton.tsx @@ -1,11 +1,16 @@ "use client"; +import { + Button, + type ButtonProps, + type MantineStyleProps, +} from "@mantine/core"; +import { type PolymorphicComponentProps } from "@mantine/core/lib/core/factory/create-polymorphic-component"; import Link from "next/link"; import { useSearchParams } from "next/navigation"; -import { usePublicURL } from "../PublicURLContext"; + import SlackIcon from "../icons/SlackIcon"; -import { Button, ButtonProps, MantineStyleProps } from "@mantine/core"; -import { PolymorphicComponentProps } from "@mantine/core/lib/core/factory/create-polymorphic-component"; +import { usePublicURL } from "../PublicURLContext"; export default function SlackLoginButton(props: { height?: number | string; diff --git a/components/slack/SlackUserInfo.tsx b/components/slack/SlackUserInfo.tsx index 10e0a1fc..eb971e3e 100644 --- a/components/slack/SlackUserInfo.tsx +++ b/components/slack/SlackUserInfo.tsx @@ -1,22 +1,15 @@ +import { Avatar, Card, Group, Stack, Text } from "@mantine/core"; import * as Sentry from "@sentry/nextjs"; +import { type App } from "@slack/bolt"; +import { redirect } from "next/navigation"; + import { removeSlackLink } from "@/features/people"; import { mustGetCurrentUser } from "@/lib/auth/server"; import slackApiConnection, { isSlackEnabled, } from "@/lib/slack/slackApiConnection"; -import { - Avatar, - Group, - Stack, - Text, - Button, - Card, - HoverCard, -} from "@mantine/core"; -import { redirect } from "next/navigation"; + import SlackLogoutButton from "./SlackLogoutButton"; -import { App } from "@slack/bolt"; -import { notifications } from "@mantine/notifications"; export default async function SlackUserInfo({ slack_user_id, diff --git a/features/calendar/adamRMS.ts b/features/calendar/adamRMS.ts index d9a81a6e..3a5bd3a1 100644 --- a/features/calendar/adamRMS.ts +++ b/features/calendar/adamRMS.ts @@ -1,5 +1,5 @@ -import { prisma } from "@/lib/db"; import * as AdamRMS from "@/lib/adamrms"; +import { prisma } from "@/lib/db"; import { env } from "@/lib/env"; export async function addProjectToAdamRMS( diff --git a/features/calendar/check_with_tech.ts b/features/calendar/check_with_tech.ts index 23876a58..472697c9 100644 --- a/features/calendar/check_with_tech.ts +++ b/features/calendar/check_with_tech.ts @@ -1,18 +1,18 @@ -import slackApiConnection from "@/lib/slack/slackApiConnection"; -import { getEvent } from "./events"; -import dayjs from "dayjs"; -import utc from "dayjs/plugin/utc"; -import timezone from "dayjs/plugin/timezone"; -import { prisma } from "@/lib/db"; -import { env } from "@/lib/env"; import { getCurrentUser, mustGetCurrentUser, requirePermission, } from "@/lib/auth/server"; +import { prisma } from "@/lib/db"; +import { env } from "@/lib/env"; +import invariant from "@/lib/invariant"; +import slackApiConnection from "@/lib/slack/slackApiConnection"; +import dayjs from "dayjs"; +import timezone from "dayjs/plugin/timezone"; +import utc from "dayjs/plugin/utc"; import { ExposedUserModel } from "../people/users"; import { _sendCWTFollowUpAndUpdateMessage } from "./check_with_tech_actions"; -import invariant from "@/lib/invariant"; +import { getEvent } from "./events"; dayjs.extend(utc); dayjs.extend(timezone); diff --git a/features/calendar/check_with_tech_actions.ts b/features/calendar/check_with_tech_actions.ts index fb617fbb..27a9c54e 100644 --- a/features/calendar/check_with_tech_actions.ts +++ b/features/calendar/check_with_tech_actions.ts @@ -1,6 +1,7 @@ -import { getUserName } from "../../components/UserHelpers"; +import * as AdamRMS from "@/lib/adamrms"; import { userHasPermission } from "@/lib/auth/core"; import { prisma } from "@/lib/db"; +import { env } from "@/lib/env"; import invariant from "@/lib/invariant"; import slackApiConnection from "@/lib/slack/slackApiConnection"; import { @@ -10,11 +11,10 @@ import { Identity, User, } from "@prisma/client"; -import * as AdamRMS from "@/lib/adamrms"; import { - SlackActionMiddlewareArgs, BlockAction, ButtonAction, + SlackActionMiddlewareArgs, SlackViewMiddlewareArgs, ViewSubmitAction, } from "@slack/bolt"; @@ -23,10 +23,10 @@ import { RichTextBlock, } from "@slack/types/dist/block-kit/blocks"; import dayjs from "dayjs"; -import { env } from "@/lib/env"; -import { z } from "zod"; -import utc from "dayjs/plugin/utc"; import timezone from "dayjs/plugin/timezone"; +import utc from "dayjs/plugin/utc"; +import { z } from "zod"; +import { getUserName } from "../../components/UserHelpers"; import { addProjectToAdamRMS } from "./adamRMS"; dayjs.extend(utc); diff --git a/features/calendar/events.ts b/features/calendar/events.ts index 7f58a1b1..fd57097d 100644 --- a/features/calendar/events.ts +++ b/features/calendar/events.ts @@ -1,5 +1,8 @@ -import "server-only"; -import { produce } from "immer"; +import { SignUpSheetType } from "@/features/calendar/signup_sheets"; +import { AttendStatus } from "@/features/calendar/statuses"; +import { EventType } from "@/features/calendar/types"; +import { ExposedUser, ExposedUserModel } from "@/features/people"; +import * as AdamRMS from "@/lib/adamrms"; import { prisma } from "@/lib/db"; import { Attendee, @@ -11,12 +14,9 @@ import { SignupSheet, User, } from "@prisma/client"; -import { AttendStatus } from "@/features/calendar/statuses"; -import { ExposedUser, ExposedUserModel } from "@/features/people"; -import { SignUpSheetType } from "@/features/calendar/signup_sheets"; -import { EventType } from "@/features/calendar/types"; -import * as AdamRMS from "@/lib/adamrms"; import dayjs from "dayjs"; +import { produce } from "immer"; +import "server-only"; import { z } from "zod"; export interface EventAttendee { diff --git a/features/calendar/ical.ts b/features/calendar/ical.ts index 60a95d0f..45b5cba0 100644 --- a/features/calendar/ical.ts +++ b/features/calendar/ical.ts @@ -1,13 +1,12 @@ import { getUserName } from "@/components/UserHelpers"; import { prisma } from "@/lib/db"; +import { env } from "@/lib/env"; +import invariant from "@/lib/invariant"; import { decode, encode } from "@/lib/sessionSecrets"; +import { add } from "date-fns"; import ical, { ICalEventStatus } from "ical-generator"; -import invariant from "@/lib/invariant"; -import { Prisma } from "@prisma/client"; import { preferenceDefaults } from "../people"; import { EventObjectType, listEvents } from "./events"; -import { add } from "date-fns"; -import { env } from "@/lib/env"; export function encodeUserID(userID: number) { return encode({ userID }); diff --git a/features/calendar/index.ts b/features/calendar/index.ts index f8665c33..8f7b6fcf 100644 --- a/features/calendar/index.ts +++ b/features/calendar/index.ts @@ -1,9 +1,9 @@ +export * from "./adamRMS"; +export * from "./check_with_tech"; +export * from "./crew_positions"; export * from "./events"; +export * from "./ical"; +export * from "./permissions"; export * from "./signup_sheets"; export * from "./statuses"; export * from "./types"; -export * from "./permissions"; -export * from "./crew_positions"; -export * from "./ical"; -export * from "./adamRMS"; -export * from "./check_with_tech"; diff --git a/features/calendar/permissions.ts b/features/calendar/permissions.ts index 23b4353d..1c1ce552 100644 --- a/features/calendar/permissions.ts +++ b/features/calendar/permissions.ts @@ -1,9 +1,9 @@ +import { EventObjectType } from "@/features/calendar/events"; +import { SignUpSheetType } from "@/features/calendar/signup_sheets"; import { EventType } from "@/features/calendar/types"; import { Permission } from "@/lib/auth/permissions"; import { UserType } from "@/lib/auth/server"; import { Event } from "@prisma/client"; -import { SignUpSheetType } from "@/features/calendar/signup_sheets"; -import { EventObjectType } from "@/features/calendar/events"; /** * Which event types can a user with the given permissions administer, diff --git a/features/calendar/signup_sheets.ts b/features/calendar/signup_sheets.ts index 1326809c..9f78827d 100644 --- a/features/calendar/signup_sheets.ts +++ b/features/calendar/signup_sheets.ts @@ -1,12 +1,12 @@ import SignupSheetUpdateInput = Prisma.SignupSheetUpdateInput; -import { prisma } from "@/lib/db"; -import { Event, Prisma, SignupSheet } from "@prisma/client"; import { CrewPositionType } from "@/features/calendar/crew_positions"; -import { omit } from "lodash"; import { ExposedUser } from "@/features/people"; -import invariant from "@/lib/invariant"; import { UserType } from "@/lib/auth/server"; +import { prisma } from "@/lib/db"; +import invariant from "@/lib/invariant"; import { socketUpdateSignupSheet } from "@/lib/socket/server"; +import { Event, Prisma, SignupSheet } from "@prisma/client"; +import { omit } from "lodash"; export interface CrewType { crew_id: number; diff --git a/features/people/index.ts b/features/people/index.ts index de4eeeb9..dbea7863 100644 --- a/features/people/index.ts +++ b/features/people/index.ts @@ -1,3 +1,3 @@ -export * from "./users"; export * from "./preferences"; export * from "./roles"; +export * from "./users"; diff --git a/features/people/users.ts b/features/people/users.ts index cbdb3315..532f78f0 100644 --- a/features/people/users.ts +++ b/features/people/users.ts @@ -1,12 +1,12 @@ +import { editUserSchema } from "@/app/(authenticated)/admin/users/[userID]/schema"; +import { FormResponse } from "@/components/Form"; +import { zodErrorResponse } from "@/components/FormServerHelpers"; +import { mustGetCurrentUser, requirePermission } from "@/lib/auth/server"; import { prisma } from "@/lib/db"; -import { z } from "zod"; import { UserPreferencesSchema } from "@/lib/db/preferences"; -import { zodErrorResponse } from "@/components/FormServerHelpers"; -import { FormResponse } from "@/components/Form"; -import { Identity, Prisma, Role, RolePermission, User } from "@prisma/client"; import { getTsQuery } from "@/lib/search"; -import { editUserSchema } from "@/app/(authenticated)/admin/users/[userID]/schema"; -import { mustGetCurrentUser, requirePermission } from "@/lib/auth/server"; +import { Identity, Prisma, Role, RolePermission, User } from "@prisma/client"; +import { z } from "zod"; /** * Fields of a user object that we (usually) want to expose to the world. diff --git a/features/positions/index.ts b/features/positions/index.ts index c024f670..c75a1b64 100644 --- a/features/positions/index.ts +++ b/features/positions/index.ts @@ -6,7 +6,6 @@ import { updatePositionSchema, } from "@/app/(authenticated)/admin/positions/schema"; import { FormResponse } from "@/components/Form"; -import { zodErrorResponse } from "@/components/FormServerHelpers"; import { wrapServerAction } from "@/lib/actions"; import { requirePermission } from "@/lib/auth/server"; import { prisma } from "@/lib/db"; diff --git a/features/userFeedback/index.ts b/features/userFeedback/index.ts index bb1ce8ea..ba22408c 100644 --- a/features/userFeedback/index.ts +++ b/features/userFeedback/index.ts @@ -2,7 +2,6 @@ import { FormResponse } from "@/components/Form"; import { getUserName } from "@/components/UserHelpers"; import { getCurrentUser } from "@/lib/auth/server"; import { env } from "@/lib/env"; -import invariant from "@/lib/invariant"; import slackApiConnection, { isSlackEnabled, } from "@/lib/slack/slackApiConnection"; diff --git a/lib/actions.ts b/lib/actions.ts index 002177b7..11cfabbb 100644 --- a/lib/actions.ts +++ b/lib/actions.ts @@ -1,4 +1,5 @@ import * as Sentry from "@sentry/nextjs"; + import { getCurrentUserOrNull } from "./auth/server"; /** diff --git a/lib/adamrms/client.ts b/lib/adamrms/client.ts index 65550372..f4e90c3b 100644 --- a/lib/adamrms/client.ts +++ b/lib/adamrms/client.ts @@ -1,4 +1,5 @@ import makeFetchCookie from "fetch-cookie"; + import { env } from "../env"; const fetchCookie = makeFetchCookie(fetch); diff --git a/lib/adamrms/index.ts b/lib/adamrms/index.ts index d6526b31..89e9795e 100644 --- a/lib/adamrms/index.ts +++ b/lib/adamrms/index.ts @@ -1,6 +1,7 @@ import invariant from "@/lib/invariant"; -import { login, makeRequest } from "./client"; + import { env } from "../env"; +import { makeRequest } from "./client"; async function findIDOfUser(email: string): Promise { const usersSearchResult = (await makeRequest("/instances/users.php", "GET", { diff --git a/lib/auth/core.ts b/lib/auth/core.ts index eeac6e95..78b34c1a 100644 --- a/lib/auth/core.ts +++ b/lib/auth/core.ts @@ -1,8 +1,9 @@ -import { Identity, User } from "@prisma/client"; -import { Permission } from "./permissions"; -import { prisma } from "../db"; +import { type Identity, type User } from "@prisma/client"; import { cache } from "react"; +import { prisma } from "../db"; +import { type Permission } from "./permissions"; + export const COOKIE_NAME = "ystv-calendar-session"; export interface UserWithIdentities extends User { diff --git a/lib/auth/google/index.ts b/lib/auth/google/index.ts index 9dad3c35..38ef4055 100644 --- a/lib/auth/google/index.ts +++ b/lib/auth/google/index.ts @@ -1,6 +1,6 @@ -import { prisma } from "@/lib/db"; import { OAuth2Client } from "google-auth-library"; -import { SlackTokenJson } from "../slack"; + +import { prisma } from "@/lib/db"; import { env } from "@/lib/env"; const Google = new OAuth2Client(); diff --git a/lib/auth/server.ts b/lib/auth/server.ts index 114bfabb..11b44896 100644 --- a/lib/auth/server.ts +++ b/lib/auth/server.ts @@ -1,23 +1,25 @@ -import "server-only"; -import { prisma } from "@/lib/db"; -import { Forbidden, NotLoggedIn } from "./errors"; -import { Permission } from "./permissions"; -import { Identity } from "@prisma/client"; -import { NextRequest } from "next/server"; -import { findOrCreateUserFromGoogleToken } from "./google"; +import { type Identity } from "@prisma/client"; +import { type RequestCookie } from "next/dist/compiled/@edge-runtime/cookies"; import { redirect } from "next/navigation"; +import { type NextRequest } from "next/server"; +import { cache } from "react"; +import "server-only"; import { z } from "zod"; -import { decode, encode } from "../sessionSecrets"; -import { SlackTokenJson, findOrCreateUserFromSlackToken } from "./slack"; + +import { prisma } from "@/lib/db"; + import { env } from "../env"; -import { RequestCookie } from "next/dist/compiled/@edge-runtime/cookies"; -import { cache } from "react"; +import { decode, encode } from "../sessionSecrets"; import { COOKIE_NAME, - UserType, + type UserType, resolvePermissionsForUser, userHasPermission, } from "./core"; +import { Forbidden, NotLoggedIn } from "./errors"; +import { findOrCreateUserFromGoogleToken } from "./google"; +import { type Permission } from "./permissions"; +import { type SlackTokenJson, findOrCreateUserFromSlackToken } from "./slack"; export * from "./core"; diff --git a/lib/auth/slack/index.ts b/lib/auth/slack/index.ts index 4ef2a922..70003b45 100644 --- a/lib/auth/slack/index.ts +++ b/lib/auth/slack/index.ts @@ -1,12 +1,11 @@ -import slackApiConnection, { - isSlackEnabled, -} from "@/lib/slack/slackApiConnection"; -import * as People from "@/features/people"; import { jwtDecode } from "jwt-decode"; -import { mustGetCurrentUser } from "../server"; -import invariant from "@/lib/invariant"; + import { prisma } from "@/lib/db"; import { env } from "@/lib/env"; +import invariant from "@/lib/invariant"; +import slackApiConnection, { + isSlackEnabled, +} from "@/lib/slack/slackApiConnection"; export type SlackTokenJson = { iss: string; diff --git a/lib/db/index.ts b/lib/db/index.ts index 444f9071..0c6a29d5 100644 --- a/lib/db/index.ts +++ b/lib/db/index.ts @@ -1,5 +1,6 @@ // import "server-only"; import { PrismaClient } from "@prisma/client"; + import { env } from "../env"; // Work around for hot reloading in development diff --git a/lib/searchParams/validate.ts b/lib/searchParams/validate.ts index 54d259e9..197735b1 100644 --- a/lib/searchParams/validate.ts +++ b/lib/searchParams/validate.ts @@ -1,10 +1,5 @@ -import { - ReadonlyURLSearchParams, - redirect, - useSearchParams, -} from "next/navigation"; +import { ReadonlyURLSearchParams } from "next/navigation"; import { z } from "zod"; -import { getSearchParamsString } from "./util"; export function validateSearchParams( schema: Schema, diff --git a/lib/searchParams/validateHook.ts b/lib/searchParams/validateHook.ts index ea8803f3..cefdabb7 100644 --- a/lib/searchParams/validateHook.ts +++ b/lib/searchParams/validateHook.ts @@ -1,12 +1,13 @@ "use client"; import { - ReadonlyURLSearchParams, + type ReadonlyURLSearchParams, + redirect, usePathname, useSearchParams, - redirect, } from "next/navigation"; -import { z } from "zod"; +import { type z } from "zod"; + import { getSearchParamsString } from "./util"; import { validateSearchParams } from "./validate"; diff --git a/lib/sessionSecrets.ts b/lib/sessionSecrets.ts index 3f180c5f..7adc424b 100644 --- a/lib/sessionSecrets.ts +++ b/lib/sessionSecrets.ts @@ -1,6 +1,7 @@ +import { decode as b64Decode, encode as b64Encode } from "base64-arraybuffer"; + import { env } from "./env"; import invariant from "./invariant"; -import { encode as b64Encode, decode as b64Decode } from "base64-arraybuffer"; function urlbase64Unescape(str: string) { return (str + "===".slice((str.length + 3) % 4)) diff --git a/lib/slack/actions.ts b/lib/slack/actions.ts index 9b28f23d..b5cc94b1 100644 --- a/lib/slack/actions.ts +++ b/lib/slack/actions.ts @@ -1,5 +1,6 @@ +import { type App } from "@slack/bolt"; + import * as CheckWithTech from "@/features/calendar/check_with_tech_actions"; -import { App } from "@slack/bolt"; export async function setupActionHandlers(app: App) { // Check With Tech diff --git a/lib/slack/slackApiConnection.ts b/lib/slack/slackApiConnection.ts index e55968e6..08d47bc1 100644 --- a/lib/slack/slackApiConnection.ts +++ b/lib/slack/slackApiConnection.ts @@ -1,4 +1,5 @@ import { App } from "@slack/bolt"; + import { env } from "../env"; import invariant from "../invariant"; diff --git a/lib/socket/index.ts b/lib/socket/index.ts index 1c6511a4..a7460fca 100644 --- a/lib/socket/index.ts +++ b/lib/socket/index.ts @@ -1,9 +1,9 @@ "use client"; import { usePathname, useRouter } from "next/navigation"; -import { useState, useEffect } from "react"; -import { Socket, io } from "socket.io-client"; -import { DefaultEventsMap } from "socket.io/dist/typed-events"; +import { useEffect, useState } from "react"; +import { type DefaultEventsMap } from "socket.io/dist/typed-events"; +import { type Socket, io } from "socket.io-client"; export const socket = io(); diff --git a/lib/socket/server/index.ts b/lib/socket/server/index.ts index 61c9ab10..af45e351 100644 --- a/lib/socket/server/index.ts +++ b/lib/socket/server/index.ts @@ -1,6 +1,6 @@ import "server-only"; -import { Server } from "socket.io"; +import { type Server } from "socket.io"; export const io = (globalThis as unknown as { io: Server }).io; diff --git a/server/auth.ts b/server/auth.ts index 32df3ead..fdde9554 100644 --- a/server/auth.ts +++ b/server/auth.ts @@ -1,9 +1,9 @@ -import { prisma } from "../lib/db"; -import { decode } from "../lib/sessionSecrets"; -import { z } from "zod"; +import { Socket } from "socket.io"; import { ExtendedError } from "socket.io/dist/namespace"; +import { z } from "zod"; +import { prisma } from "../lib/db"; import { env } from "../lib/env"; -import { Socket } from "socket.io"; +import { decode } from "../lib/sessionSecrets"; export async function authenticateSocket( socket: Socket, diff --git a/server/index.ts b/server/index.ts index 01a3cb6a..14136220 100644 --- a/server/index.ts +++ b/server/index.ts @@ -1,13 +1,13 @@ +import { App } from "@slack/bolt"; import next from "next"; import { Server } from "socket.io"; -import { authenticateSocket } from "./auth"; import { env, validateEnv } from "../lib/env.js"; -import slackApiConnection, { +import { setupActionHandlers } from "../lib/slack/actions"; +import { createSlackApp, isSlackEnabled, } from "../lib/slack/slackApiConnection"; -import { App } from "@slack/bolt"; -import { setupActionHandlers } from "../lib/slack/actions"; +import { authenticateSocket } from "./auth"; import { checkDatabaseConnection, prepareHttpServer } from "./lib"; const dev = env.NODE_ENV !== "production"; diff --git a/server/lib.ts b/server/lib.ts index a2f5a3b7..a7a8e988 100644 --- a/server/lib.ts +++ b/server/lib.ts @@ -1,13 +1,13 @@ import { Prisma } from "@prisma/client"; -import { prisma } from "../lib/db"; -import { exit } from "process"; -import { createServer as createHttpsServer } from "node:https"; +import { readFileSync } from "fs"; +import { RequestHandler } from "next/dist/server/next"; import { createServer as createHttpServer, Server as HttpServer, } from "node:http"; -import { readFileSync } from "fs"; -import { RequestHandler } from "next/dist/server/next"; +import { createServer as createHttpsServer } from "node:https"; +import { exit } from "process"; +import { prisma } from "../lib/db"; export async function checkDatabaseConnection() { return new Promise(async (resolve, reject) => { diff --git a/stories/Button.tsx b/stories/Button.tsx index 19126519..041d3ea1 100644 --- a/stories/Button.tsx +++ b/stories/Button.tsx @@ -1,4 +1,4 @@ -import React, { useMemo } from "react"; +import { useMemo } from "react"; const getSizeClasses = (size: string) => { switch (size) { From 47c437483480ed78b3e60088213a3c80d4a533b3 Mon Sep 17 00:00:00 2001 From: Mia Moir Date: Wed, 23 Jul 2025 18:43:51 +0100 Subject: [PATCH 6/8] Everything is happy now --- .eslintrc.cjs | 7 ++++++- app/(authenticated)/admin/positions/PositionView.tsx | 1 + app/(authenticated)/admin/roles/RoleView.tsx | 1 + app/(authenticated)/admin/users/UserView.tsx | 1 + .../calendar/[eventID]/EventActionsUI.tsx | 1 + app/(authenticated)/calendar/[eventID]/SignupSheet.tsx | 7 +++---- app/(authenticated)/calendar/[eventID]/actions.ts | 10 +++++++--- .../calendar/[eventID]/signUpSheetActions.ts | 2 +- app/(authenticated)/user/me/UserPreferences.tsx | 2 +- app/(authenticated)/webcam/actions.ts | 6 +++--- app/api/public/events/route.ts | 4 ++-- app/healthz/route.ts | 1 + app/login/slack/callback/route.ts | 4 ++-- components/Form.tsx | 4 ++-- lib/db/index.ts | 2 +- lib/searchParams/util.ts | 2 +- lib/socket/index.ts | 1 + 17 files changed, 35 insertions(+), 21 deletions(-) diff --git a/.eslintrc.cjs b/.eslintrc.cjs index 5eef5b8a..63118b3a 100644 --- a/.eslintrc.cjs +++ b/.eslintrc.cjs @@ -4,7 +4,12 @@ const config = { parserOptions: { project: true, }, - ignorePatterns: [".eslintrc.cjs", ".eslintrc.js", "lib/db/types/**/*"], + ignorePatterns: [ + ".eslintrc.cjs", + ".eslintrc.js", + "prettier.config.js", + "lib/db/types/**/*", + ], extends: ["next/core-web-vitals", "prettier", "plugin:storybook/recommended"], settings: { react: { diff --git a/app/(authenticated)/admin/positions/PositionView.tsx b/app/(authenticated)/admin/positions/PositionView.tsx index ac48d3fa..e114e761 100644 --- a/app/(authenticated)/admin/positions/PositionView.tsx +++ b/app/(authenticated)/admin/positions/PositionView.tsx @@ -75,6 +75,7 @@ export function PositionView(props: { initialPositions: TFetchPositions }) { ) { router.push(`${pathname}?${newSearchParamsString}`); } + // eslint-disable-next-line react-hooks/exhaustive-deps }, [searchParamsState]); // States for modals diff --git a/app/(authenticated)/admin/roles/RoleView.tsx b/app/(authenticated)/admin/roles/RoleView.tsx index 123c4fa4..7a9b2443 100644 --- a/app/(authenticated)/admin/roles/RoleView.tsx +++ b/app/(authenticated)/admin/roles/RoleView.tsx @@ -75,6 +75,7 @@ export function RoleView(props: { initialRoles: TFetchRoles }) { ) { router.push(`${pathname}?${newSearchParamsString}`); } + // eslint-disable-next-line react-hooks/exhaustive-deps }, [searchParamsState]); // States for modals diff --git a/app/(authenticated)/admin/users/UserView.tsx b/app/(authenticated)/admin/users/UserView.tsx index 3bd1f7f9..78ecc18f 100644 --- a/app/(authenticated)/admin/users/UserView.tsx +++ b/app/(authenticated)/admin/users/UserView.tsx @@ -63,6 +63,7 @@ export function UserView(props: { initialUsers: TFetchUsers }) { ) { router.push(`${pathname}?${newSearchParamsString}`); } + // eslint-disable-next-line react-hooks/exhaustive-deps }, [searchParamsState]); function updateState(state: Partial>) { diff --git a/app/(authenticated)/calendar/[eventID]/EventActionsUI.tsx b/app/(authenticated)/calendar/[eventID]/EventActionsUI.tsx index 3f5103f5..7c2bb400 100644 --- a/app/(authenticated)/calendar/[eventID]/EventActionsUI.tsx +++ b/app/(authenticated)/calendar/[eventID]/EventActionsUI.tsx @@ -19,6 +19,7 @@ import { } from "@/components/FormFields"; import { PermissionGate } from "@/components/UserContext"; import { type EventObjectType } from "@/features/calendar"; +// eslint-disable-next-line @typescript-eslint/no-restricted-imports import type { Project } from "@/lib/adamrms"; import { diff --git a/app/(authenticated)/calendar/[eventID]/SignupSheet.tsx b/app/(authenticated)/calendar/[eventID]/SignupSheet.tsx index 6ef1cb34..4f8cadbd 100644 --- a/app/(authenticated)/calendar/[eventID]/SignupSheet.tsx +++ b/app/(authenticated)/calendar/[eventID]/SignupSheet.tsx @@ -64,11 +64,11 @@ function SignupSheet({ const sheetData = sheetQuery.data!; - const { socket, isConnected, transport } = useWebsocket(); + const { socket } = useWebsocket(); const queryClient = useQueryClient(); useEffect(() => { - async function onSheetUpdate(value: any) { + async function onSheetUpdate() { sheetQuery.refetch(); await queryClient.invalidateQueries({ queryKey: ["clashes", sheet.signup_id], @@ -143,7 +143,7 @@ function SignupSheet({ > {sheetData.crews .sort((a, b) => a.ordering - b.ordering) - .map((crew, index) => { + .map((crew, _index) => { const isProducer = crew.positions.admin; return ( @@ -462,7 +462,6 @@ export function SignupSheetsView({ me: UserType; }) { invariant(event.signup_sheets, "no signup_sheets for SignupSheetsView"); - const [isPending, startTransition] = useTransition(); const [isCreateOpen, setCreateOpen] = useState(false); return ( <> diff --git a/app/(authenticated)/calendar/[eventID]/actions.ts b/app/(authenticated)/calendar/[eventID]/actions.ts index 1609c9d4..92d433c6 100644 --- a/app/(authenticated)/calendar/[eventID]/actions.ts +++ b/app/(authenticated)/calendar/[eventID]/actions.ts @@ -90,11 +90,15 @@ export const editEvent = wrapServerAction( for (const { event_id: eventIDToUpdate } of eventsToUpdate) { let updateData: Calendar.EventUpdateFields; if (eventIDToUpdate != eventID) { - const { recurring_update_type, start_date, end_date, ...rest } = - data.data; + const { + recurring_update_type: _r, + start_date: _s, + end_date: _e, + ...rest + } = data.data; updateData = rest; } else { - const { recurring_update_type, ...rest } = data.data; + const { recurring_update_type: _, ...rest } = data.data; updateData = rest; } const result = await Calendar.updateEvent( diff --git a/app/(authenticated)/calendar/[eventID]/signUpSheetActions.ts b/app/(authenticated)/calendar/[eventID]/signUpSheetActions.ts index 560b99ae..290f1daa 100644 --- a/app/(authenticated)/calendar/[eventID]/signUpSheetActions.ts +++ b/app/(authenticated)/calendar/[eventID]/signUpSheetActions.ts @@ -62,7 +62,7 @@ export const fetchSignUpSheet = wrapServerAction( async function fetchSignUpSheet( sheetID: number, ): Promise { - const me = await getCurrentUser(); + const _me = await getCurrentUser(); const sheet = await Calendar.getSignUpSheet(sheetID); if (!sheet) { diff --git a/app/(authenticated)/user/me/UserPreferences.tsx b/app/(authenticated)/user/me/UserPreferences.tsx index 14908bd1..039045f8 100644 --- a/app/(authenticated)/user/me/UserPreferences.tsx +++ b/app/(authenticated)/user/me/UserPreferences.tsx @@ -68,7 +68,7 @@ function SegmentedPreference( values: ReqPrefs[K][] | Array<{ value: ReqPrefs[K]; label: string }>; }, ) { - const { values, label, ...rest } = props; + const { label, ...rest } = props; return ( { const data = parsedData.data; - const addResult = await addWebcamFeed(data); + await addWebcamFeed(data); revalidatePath("webcam"); @@ -41,7 +41,7 @@ export async function editWebcam(unsafeData: unknown): Promise { const data = parsedData.data; - const addResult = await editWebcamFeed(data); + await editWebcamFeed(data); revalidatePath("webcam"); @@ -57,7 +57,7 @@ export async function removeWebcam(unsafeData: unknown): Promise { const data = parsedData.data; - const addResult = await removeWebcamFeed(data); + await removeWebcamFeed(data); revalidatePath("webcam"); diff --git a/app/api/public/events/route.ts b/app/api/public/events/route.ts index 1cf31cf5..eddd596b 100644 --- a/app/api/public/events/route.ts +++ b/app/api/public/events/route.ts @@ -1,10 +1,10 @@ -import { type NextRequest, NextResponse } from "next/server"; +import { NextResponse } from "next/server"; import { listPublicEvents } from "@/features/calendar"; export const dynamic = "force-dynamic"; -export async function GET(req: NextRequest, res: NextResponse) { +export async function GET() { const events = await listPublicEvents(); return NextResponse.json(events); diff --git a/app/healthz/route.ts b/app/healthz/route.ts index 779c7f00..1897f870 100644 --- a/app/healthz/route.ts +++ b/app/healthz/route.ts @@ -2,6 +2,7 @@ import { Prisma } from "@prisma/client"; import { NextResponse } from "next/server"; +// eslint-disable-next-line @typescript-eslint/no-restricted-imports import { prisma } from "@/lib/db"; export const dynamic = "force-dynamic"; diff --git a/app/login/slack/callback/route.ts b/app/login/slack/callback/route.ts index 836932e4..a7f34f37 100644 --- a/app/login/slack/callback/route.ts +++ b/app/login/slack/callback/route.ts @@ -27,8 +27,8 @@ export async function GET(req: NextRequest): Promise { } const slackUserInfo = await getSlackUserInfo(code); - let user = await getCurrentUserOrNull(req); - user = await loginOrCreateUserSlack(slackUserInfo); + let _user = await getCurrentUserOrNull(req); + _user = await loginOrCreateUserSlack(slackUserInfo); var url = new URL(redirect?.value ?? "/user/me", env.PUBLIC_URL!); diff --git a/components/Form.tsx b/components/Form.tsx index 61918547..555bafe4 100644 --- a/components/Form.tsx +++ b/components/Form.tsx @@ -15,12 +15,12 @@ import { DebugOnly } from "@/components/DebugMode"; export interface FormErrorResponse { ok: false; - errors: { [K in keyof Fields | "root"]?: string }; + errors: { [_K in keyof Fields | "root"]?: string }; } export type FormResponse< OK extends Record = {}, - Fields extends FieldValues = any, + _Fields extends FieldValues = any, > = ({ ok: true } & OK) | FormErrorResponse; export type FormAction< OK extends Record = {}, diff --git a/lib/db/index.ts b/lib/db/index.ts index 0c6a29d5..828ff627 100644 --- a/lib/db/index.ts +++ b/lib/db/index.ts @@ -20,7 +20,7 @@ if (env.NODE_ENV !== "production") globalForPrisma.prisma = rawPrisma; export const prisma = rawPrisma.$extends({ query: { event: { - $allOperations({ model, operation, args, query }) { + $allOperations({ model: _model, operation, args, query }) { switch (operation) { case "findMany": case "findUnique": diff --git a/lib/searchParams/util.ts b/lib/searchParams/util.ts index 0739e5fe..f88a8995 100644 --- a/lib/searchParams/util.ts +++ b/lib/searchParams/util.ts @@ -1,6 +1,6 @@ export function getSearchParamsString(paramsObject: Object) { return Object.entries(paramsObject) - .filter(([key, value]) => value !== undefined) + .filter(([_key, value]) => value !== undefined) .map(([key, value]) => `${key}=${encodeURIComponent(value)}`) .join("&"); } diff --git a/lib/socket/index.ts b/lib/socket/index.ts index a7460fca..d28e9d26 100644 --- a/lib/socket/index.ts +++ b/lib/socket/index.ts @@ -53,6 +53,7 @@ export function useCreateSocket(): TSocket { socket.off("invalidSession", onInvalidSession); socket.off("disconnect", onDisconnect); }; + // eslint-disable-next-line react-hooks/exhaustive-deps }, []); return { socket, isConnected, transport }; From 1424efe53dd53e157ae5bc214a960a98677b61fe Mon Sep 17 00:00:00 2001 From: Mia Moir Date: Wed, 23 Jul 2025 19:07:38 +0100 Subject: [PATCH 7/8] Update sentry and fix builds --- app/bios/actions.ts | 2 +- app/bios/page.tsx | 4 +- app/enableDebugMode/route.ts | 6 +- components/SignoutButton/actions.ts | 2 +- components/google/actions.ts | 2 +- lib/auth/server.ts | 4 +- package.json | 2 +- yarn.lock | 1176 ++++++++++++++++----------- 8 files changed, 726 insertions(+), 472 deletions(-) diff --git a/app/bios/actions.ts b/app/bios/actions.ts index cfde9514..2b038088 100644 --- a/app/bios/actions.ts +++ b/app/bios/actions.ts @@ -5,7 +5,7 @@ import { cookies } from "next/headers"; import { env } from "@/lib/env"; export async function deleteCookie(name: string) { - const cookieStore = cookies(); + const cookieStore = await cookies(); return cookieStore.set({ name: name, value: "", diff --git a/app/bios/page.tsx b/app/bios/page.tsx index cd09fe0b..0b9ae8e0 100644 --- a/app/bios/page.tsx +++ b/app/bios/page.tsx @@ -2,8 +2,8 @@ import { cookies } from "next/headers"; import { CookieView } from "./CookiesView"; -export default function BIOSPage() { - const cookieStore = cookies(); +export default async function BIOSPage() { + const cookieStore = await cookies(); return ; } diff --git a/app/enableDebugMode/route.ts b/app/enableDebugMode/route.ts index 708e065d..ea53e17b 100644 --- a/app/enableDebugMode/route.ts +++ b/app/enableDebugMode/route.ts @@ -5,10 +5,12 @@ import { env } from "@/lib/env"; import { DEBUG_MODE_COOKIE } from "./common"; -export function GET(req: NextRequest): NextResponse { +export async function GET(req: NextRequest): Promise { const val = req.nextUrl.searchParams.get("value") ? req.nextUrl.searchParams.get("value") === "true" : true; - cookies().set(DEBUG_MODE_COOKIE, String(val), { domain: env.COOKIE_DOMAIN }); + (await cookies()).set(DEBUG_MODE_COOKIE, String(val), { + domain: env.COOKIE_DOMAIN, + }); return NextResponse.redirect(new URL("/", env.PUBLIC_URL)); } diff --git a/components/SignoutButton/actions.ts b/components/SignoutButton/actions.ts index 7a3c492e..95d0db6d 100644 --- a/components/SignoutButton/actions.ts +++ b/components/SignoutButton/actions.ts @@ -7,7 +7,7 @@ import { COOKIE_NAME } from "@/lib/auth/core"; import { env } from "@/lib/env"; export const signOut = wrapServerAction("signOut", async function signOut() { - cookies().set(COOKIE_NAME, "", { + (await cookies()).set(COOKIE_NAME, "", { maxAge: 0, domain: env.COOKIE_DOMAIN, }); diff --git a/components/google/actions.ts b/components/google/actions.ts index 2195b9e4..92b7876d 100644 --- a/components/google/actions.ts +++ b/components/google/actions.ts @@ -9,7 +9,7 @@ import { env } from "@/lib/env"; export const setRedirectCookie = wrapServerAction( "setRedirectCookie", async function setRedirectCookie(redirect: string) { - cookies().set(`${COOKIE_NAME}.redirect`, redirect, { + (await cookies()).set(`${COOKIE_NAME}.redirect`, redirect, { domain: env.COOKIE_DOMAIN, }); }, diff --git a/lib/auth/server.ts b/lib/auth/server.ts index 11b44896..5364ee6e 100644 --- a/lib/auth/server.ts +++ b/lib/auth/server.ts @@ -43,7 +43,7 @@ async function getSession(req?: NextRequest) { sessionID = req.cookies.get(COOKIE_NAME); } else { const { cookies } = await import("next/headers"); - sessionID = cookies().get(COOKIE_NAME); + sessionID = (await cookies()).get(COOKIE_NAME); } if (!sessionID) return null; if (sessionID.value == "") return null; @@ -62,7 +62,7 @@ async function getSession(req?: NextRequest) { async function setSession(user: z.infer) { const payload = await encode(user); const { cookies } = await import("next/headers"); - cookies().set(COOKIE_NAME, payload, { + (await cookies()).set(COOKIE_NAME, payload, { httpOnly: true, sameSite: "lax", secure: env.NODE_ENV === "production", diff --git a/package.json b/package.json index 436de08e..f7831590 100644 --- a/package.json +++ b/package.json @@ -44,7 +44,7 @@ "@mantine/notifications": "^7.13.4", "@mux/mux-video-react": "^0.11.4", "@prisma/client": "^5.21.1", - "@sentry/nextjs": "^8.28.0", + "@sentry/nextjs": "^9.40.0", "@slack/bolt": "^4.0.0", "@tanstack/react-query": "^5.51.23", "@trpc/server": "^10.33.1", diff --git a/yarn.lock b/yarn.lock index 294cecfd..7da4a9f4 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3360,32 +3360,43 @@ __metadata: languageName: node linkType: hard -"@opentelemetry/api-logs@npm:0.52.1": - version: 0.52.1 - resolution: "@opentelemetry/api-logs@npm:0.52.1" +"@opentelemetry/api-logs@npm:0.57.2": + version: 0.57.2 + resolution: "@opentelemetry/api-logs@npm:0.57.2" dependencies: - "@opentelemetry/api": ^1.0.0 - checksum: 500cd35527580732921d198bd7007224402cb89fef791f0b64bea839c9f2ad796d54486ee9aee0ee6422ded3963cba793408086eda0adfec2bd1d66f9114d96c + "@opentelemetry/api": ^1.3.0 + checksum: 9c654feea3cbe9a3bba9a0e01d044df12fb6762b69ea4763a1803ef616187b23c0f415c70ee8a325e76919366c1611d429a2f58f58bd90b7e5bb224ff8c23233 languageName: node linkType: hard -"@opentelemetry/api@npm:^1.0.0, @opentelemetry/api@npm:^1.8, @opentelemetry/api@npm:^1.9.0": +"@opentelemetry/api@npm:^1.3.0, @opentelemetry/api@npm:^1.9.0": version: 1.9.0 resolution: "@opentelemetry/api@npm:1.9.0" checksum: 9e88e59d53ced668f3daaecfd721071c5b85a67dd386f1c6f051d1be54375d850016c881f656ffbe9a03bedae85f7e89c2f2b635313f9c9b195ad033cdc31020 languageName: node linkType: hard -"@opentelemetry/context-async-hooks@npm:^1.25.1": - version: 1.25.1 - resolution: "@opentelemetry/context-async-hooks@npm:1.25.1" +"@opentelemetry/context-async-hooks@npm:^1.30.1": + version: 1.30.1 + resolution: "@opentelemetry/context-async-hooks@npm:1.30.1" peerDependencies: "@opentelemetry/api": ">=1.0.0 <1.10.0" - checksum: fb2ac7381ea8203a1321e2a4989c193b6eede0b0f46bafc150e452ac5fc4645127f0ca66f60e44ff2816032afc68cbe3ab9cf235fbdffb0ad83f484729b70e82 + checksum: 9bc42d4be4bf988d30bb7b20215d6aafb141d21e0088ab3c23b177122cfafef20581c2b7c8ff577a0e0e0a18b65249db6d84817d2aa53c7de83583ee1a117897 languageName: node linkType: hard -"@opentelemetry/core@npm:1.25.1, @opentelemetry/core@npm:^1.1.0, @opentelemetry/core@npm:^1.25.1, @opentelemetry/core@npm:^1.8.0": +"@opentelemetry/core@npm:1.30.1, @opentelemetry/core@npm:^1.26.0, @opentelemetry/core@npm:^1.30.1": + version: 1.30.1 + resolution: "@opentelemetry/core@npm:1.30.1" + dependencies: + "@opentelemetry/semantic-conventions": 1.28.0 + peerDependencies: + "@opentelemetry/api": ">=1.0.0 <1.10.0" + checksum: fe71452fffc6b5efe4bd1f0ab18b0424e744825f9a837f5bf08be80fe6d2c90c443743cb3d220cffad27b7d83dc38e0a7861c91ec965be156394e752c95e583c + languageName: node + linkType: hard + +"@opentelemetry/core@npm:^1.1.0, @opentelemetry/core@npm:^1.8.0": version: 1.25.1 resolution: "@opentelemetry/core@npm:1.25.1" dependencies: @@ -3396,242 +3407,298 @@ __metadata: languageName: node linkType: hard -"@opentelemetry/instrumentation-connect@npm:0.38.0": - version: 0.38.0 - resolution: "@opentelemetry/instrumentation-connect@npm:0.38.0" +"@opentelemetry/instrumentation-amqplib@npm:^0.46.1": + version: 0.46.1 + resolution: "@opentelemetry/instrumentation-amqplib@npm:0.46.1" dependencies: "@opentelemetry/core": ^1.8.0 - "@opentelemetry/instrumentation": ^0.52.0 - "@opentelemetry/semantic-conventions": ^1.22.0 - "@types/connect": 3.4.36 + "@opentelemetry/instrumentation": ^0.57.1 + "@opentelemetry/semantic-conventions": ^1.27.0 peerDependencies: "@opentelemetry/api": ^1.3.0 - checksum: 4dff447ff9a7ee2ca94872d904df260213e8e05b27742713f8dce35593ec8f52bcb07adfb7730e7b208b8b49566e032cdee316f0ccea405e42ffc5804d222750 + checksum: 97beb23c1a99a9a9e194add325a60c091987317efb1f6e11efd24ee3fcbd23c51176adae98b9b02bc838b1d5dbecced60bec7c1741d13f4b87718dbdcb262f64 languageName: node linkType: hard -"@opentelemetry/instrumentation-express@npm:0.41.1": - version: 0.41.1 - resolution: "@opentelemetry/instrumentation-express@npm:0.41.1" +"@opentelemetry/instrumentation-connect@npm:0.43.1": + version: 0.43.1 + resolution: "@opentelemetry/instrumentation-connect@npm:0.43.1" dependencies: "@opentelemetry/core": ^1.8.0 - "@opentelemetry/instrumentation": ^0.52.0 - "@opentelemetry/semantic-conventions": ^1.22.0 + "@opentelemetry/instrumentation": ^0.57.1 + "@opentelemetry/semantic-conventions": ^1.27.0 + "@types/connect": 3.4.38 + peerDependencies: + "@opentelemetry/api": ^1.3.0 + checksum: 5d1f378040c685d9284bbc7be6f7a35283e75958ac606813cd493e186d9e109ee190b8057ab1c854be8d73083143fa33d25321c878b8198bfda6dfcde0f786c4 + languageName: node + linkType: hard + +"@opentelemetry/instrumentation-dataloader@npm:0.16.1": + version: 0.16.1 + resolution: "@opentelemetry/instrumentation-dataloader@npm:0.16.1" + dependencies: + "@opentelemetry/instrumentation": ^0.57.1 peerDependencies: "@opentelemetry/api": ^1.3.0 - checksum: fe2939ab377cc4b1c6dfe77cae6d23156ccd227cc9984bf03eb5f108fa048815d6dd0be9a8240bb3bd053a271789c9928a9e544725e2e099709e9b2c60d456f0 + checksum: 7ee25069f17454d526b5651d690b2ac787a9625a5656668b3398d96b848c2acafce602a22931b1da914b8847cf39527250f4b84a0da88cf68e7b2a3786299604 languageName: node linkType: hard -"@opentelemetry/instrumentation-fastify@npm:0.38.0": - version: 0.38.0 - resolution: "@opentelemetry/instrumentation-fastify@npm:0.38.0" +"@opentelemetry/instrumentation-express@npm:0.47.1": + version: 0.47.1 + resolution: "@opentelemetry/instrumentation-express@npm:0.47.1" dependencies: "@opentelemetry/core": ^1.8.0 - "@opentelemetry/instrumentation": ^0.52.0 - "@opentelemetry/semantic-conventions": ^1.22.0 + "@opentelemetry/instrumentation": ^0.57.1 + "@opentelemetry/semantic-conventions": ^1.27.0 peerDependencies: "@opentelemetry/api": ^1.3.0 - checksum: 3cd7996398d783397782fc327a336e37b1eaabee6c9d8a25daa15d86cf6634408bc790e67207548dcae61f064a4a85780d9ae51bc31414bd61e0291d22a8d3f8 + checksum: be09e0df7a243d69bae61324838ed32fdcb5220e7645291f7696c1351f4e4504df360f668d24991e2d43ce1f61dc5752068455ecd5789d4e7751aaeb3185549a languageName: node linkType: hard -"@opentelemetry/instrumentation-fs@npm:0.14.0": - version: 0.14.0 - resolution: "@opentelemetry/instrumentation-fs@npm:0.14.0" +"@opentelemetry/instrumentation-fs@npm:0.19.1": + version: 0.19.1 + resolution: "@opentelemetry/instrumentation-fs@npm:0.19.1" dependencies: "@opentelemetry/core": ^1.8.0 - "@opentelemetry/instrumentation": ^0.52.0 + "@opentelemetry/instrumentation": ^0.57.1 peerDependencies: "@opentelemetry/api": ^1.3.0 - checksum: cc6b90e9496bddbbc992adf3cb585b728260e6b22d35e48720e06505e2477e962bd1b62d9d1bf331c877c04ce7b393d87d2f61a3ade08519b73252a342351bf0 + checksum: 771817e43fc0edf143b4d033c31e01efab120a5da9e759f6fbe08aab63e27f62f14366592dc9289eb31067e204710e1acc20dc67635d6d3c7ea9210583c634d3 languageName: node linkType: hard -"@opentelemetry/instrumentation-graphql@npm:0.42.0": - version: 0.42.0 - resolution: "@opentelemetry/instrumentation-graphql@npm:0.42.0" +"@opentelemetry/instrumentation-generic-pool@npm:0.43.1": + version: 0.43.1 + resolution: "@opentelemetry/instrumentation-generic-pool@npm:0.43.1" dependencies: - "@opentelemetry/instrumentation": ^0.52.0 + "@opentelemetry/instrumentation": ^0.57.1 peerDependencies: "@opentelemetry/api": ^1.3.0 - checksum: cae523cf75312457dc176a1ae2e4157b41025c5d01d8174467c8a62f8031c3a90151888fcdd804778183f58618ec320a24fe78f5bb0a1a72a119dc37245be676 + checksum: c89981bf8ecf1ae7149247124842772192be2114e3e8d1fb4db4b57eed0be1470f248c6ff32bb44a711e5d4efd7a517f9afee0bb04d14792062dc76a90ae03d1 languageName: node linkType: hard -"@opentelemetry/instrumentation-hapi@npm:0.40.0": - version: 0.40.0 - resolution: "@opentelemetry/instrumentation-hapi@npm:0.40.0" +"@opentelemetry/instrumentation-graphql@npm:0.47.1": + version: 0.47.1 + resolution: "@opentelemetry/instrumentation-graphql@npm:0.47.1" + dependencies: + "@opentelemetry/instrumentation": ^0.57.1 + peerDependencies: + "@opentelemetry/api": ^1.3.0 + checksum: c51cf728547ce7fb513d01deac18cb6982f85182442879adb5d4292c450bfd9427ad5e51fd10cd6f73f9d1f7aff9f6f06b9f6419790d3535d27882a5f9c6b1d2 + languageName: node + linkType: hard + +"@opentelemetry/instrumentation-hapi@npm:0.45.2": + version: 0.45.2 + resolution: "@opentelemetry/instrumentation-hapi@npm:0.45.2" dependencies: "@opentelemetry/core": ^1.8.0 - "@opentelemetry/instrumentation": ^0.52.0 - "@opentelemetry/semantic-conventions": ^1.22.0 + "@opentelemetry/instrumentation": ^0.57.1 + "@opentelemetry/semantic-conventions": ^1.27.0 peerDependencies: "@opentelemetry/api": ^1.3.0 - checksum: 71ff845ca2376b5f1cf7514d649f829044dec6486e784351a26278afc092a1cd90eb0eaf34ab79afcae9244e8b126d6059ac0c7c286743ceb8e12126cf7e0255 + checksum: 208d37a90698cf4cad1c0e8956164bcfc9716b93483c92477764e1aa5f23ce38761ed565c426be6b321b8f4cc77cfd028bf854b146ea1a1b0663796dee7493b2 languageName: node linkType: hard -"@opentelemetry/instrumentation-http@npm:0.52.1": - version: 0.52.1 - resolution: "@opentelemetry/instrumentation-http@npm:0.52.1" +"@opentelemetry/instrumentation-http@npm:0.57.2": + version: 0.57.2 + resolution: "@opentelemetry/instrumentation-http@npm:0.57.2" dependencies: - "@opentelemetry/core": 1.25.1 - "@opentelemetry/instrumentation": 0.52.1 - "@opentelemetry/semantic-conventions": 1.25.1 + "@opentelemetry/core": 1.30.1 + "@opentelemetry/instrumentation": 0.57.2 + "@opentelemetry/semantic-conventions": 1.28.0 + forwarded-parse: 2.1.2 semver: ^7.5.2 peerDependencies: "@opentelemetry/api": ^1.3.0 - checksum: 67a31e14d9ee4da745b7529777c1525f717b2ddf09f2a9247acaa9677f32e4a863d8f0712c95917fdbe74d8211cf650065bb3a95ef2fdd9f81630e063cbc2d4f + checksum: ade80431e940f4da45e66ba0721fe8b57d828656e136ac4b9ddc7d8d073ebbdada8eb142623b9a99ec403451ad523857b5df854e09fe7eb02b6acf8692e4f4f3 languageName: node linkType: hard -"@opentelemetry/instrumentation-ioredis@npm:0.42.0": - version: 0.42.0 - resolution: "@opentelemetry/instrumentation-ioredis@npm:0.42.0" +"@opentelemetry/instrumentation-ioredis@npm:0.47.1": + version: 0.47.1 + resolution: "@opentelemetry/instrumentation-ioredis@npm:0.47.1" dependencies: - "@opentelemetry/instrumentation": ^0.52.0 + "@opentelemetry/instrumentation": ^0.57.1 "@opentelemetry/redis-common": ^0.36.2 - "@opentelemetry/semantic-conventions": ^1.23.0 + "@opentelemetry/semantic-conventions": ^1.27.0 peerDependencies: "@opentelemetry/api": ^1.3.0 - checksum: ae4804732b4380007b09ba11051aae927da0c53cd74d556916a838fb4de4f3c2aa7156bc05c4f34e6669411835604a4587822b2b585c51042e502d0e5079c143 + checksum: 828999d2d569e6bf4320da21c440b1100fceb0b987bdef73b561b865c6f49bb8b051632babaca857854f0fb32c65720e9e74358249ae1860dbcbe157c1ea43f3 languageName: node linkType: hard -"@opentelemetry/instrumentation-koa@npm:0.42.0": - version: 0.42.0 - resolution: "@opentelemetry/instrumentation-koa@npm:0.42.0" +"@opentelemetry/instrumentation-kafkajs@npm:0.7.1": + version: 0.7.1 + resolution: "@opentelemetry/instrumentation-kafkajs@npm:0.7.1" dependencies: - "@opentelemetry/core": ^1.8.0 - "@opentelemetry/instrumentation": ^0.52.0 - "@opentelemetry/semantic-conventions": ^1.22.0 + "@opentelemetry/instrumentation": ^0.57.1 + "@opentelemetry/semantic-conventions": ^1.27.0 peerDependencies: "@opentelemetry/api": ^1.3.0 - checksum: 4e41f4b1c2abb4d31151ae3b5999af3247affa99fadcf87ff542a8523f108275d83a54057d79453ff56bc40938a622803562db87c826bfac9f99fb409207c6fd + checksum: 84e04579a8880fd8aa7f777f15b0563164d7b89b99b93ceb9d723149280ca07e7c92dd8245dfc87d93a976bcace5dc8bbb5665b5a2c9a05afc5eb66e2c3c0d10 languageName: node linkType: hard -"@opentelemetry/instrumentation-mongodb@npm:0.46.0": - version: 0.46.0 - resolution: "@opentelemetry/instrumentation-mongodb@npm:0.46.0" +"@opentelemetry/instrumentation-knex@npm:0.44.1": + version: 0.44.1 + resolution: "@opentelemetry/instrumentation-knex@npm:0.44.1" dependencies: - "@opentelemetry/instrumentation": ^0.52.0 - "@opentelemetry/sdk-metrics": ^1.9.1 - "@opentelemetry/semantic-conventions": ^1.22.0 + "@opentelemetry/instrumentation": ^0.57.1 + "@opentelemetry/semantic-conventions": ^1.27.0 peerDependencies: "@opentelemetry/api": ^1.3.0 - checksum: fab5db536e2e95177a0ae0975bd8b9fc76f2d59bf89a6023547ba39071b97789859e1ac0582f86498a263611403a70b5f543b025207180770c07e178b04af5ad + checksum: e80a201b59209c2d63b52ed1ec0c886ad5d5c597046f702d16b10b52d6cb43f5df01f8e89c0523f09bf37e18dc7d413aaed0a0cd3362823ef4d5cf889f7cfa2c languageName: node linkType: hard -"@opentelemetry/instrumentation-mongoose@npm:0.40.0": - version: 0.40.0 - resolution: "@opentelemetry/instrumentation-mongoose@npm:0.40.0" +"@opentelemetry/instrumentation-koa@npm:0.47.1": + version: 0.47.1 + resolution: "@opentelemetry/instrumentation-koa@npm:0.47.1" dependencies: "@opentelemetry/core": ^1.8.0 - "@opentelemetry/instrumentation": ^0.52.0 - "@opentelemetry/semantic-conventions": ^1.22.0 + "@opentelemetry/instrumentation": ^0.57.1 + "@opentelemetry/semantic-conventions": ^1.27.0 peerDependencies: "@opentelemetry/api": ^1.3.0 - checksum: 3ee4cdee6afc93b313f013ef35a2d4829244e463dceea9229c71e0d4c9d398051986978591d253129f83ec75c5417837d068c1408296faa6d5566a53a8683270 + checksum: 3bb9d41cf2735b4a1781272986fb0673693cec0d4b078be351edec0aba3cf8b3360d1faf006c29bceeef596c2a83820ce013c804bdd361ea79b458d2004b3140 languageName: node linkType: hard -"@opentelemetry/instrumentation-mysql2@npm:0.40.0": - version: 0.40.0 - resolution: "@opentelemetry/instrumentation-mysql2@npm:0.40.0" +"@opentelemetry/instrumentation-lru-memoizer@npm:0.44.1": + version: 0.44.1 + resolution: "@opentelemetry/instrumentation-lru-memoizer@npm:0.44.1" dependencies: - "@opentelemetry/instrumentation": ^0.52.0 - "@opentelemetry/semantic-conventions": ^1.22.0 - "@opentelemetry/sql-common": ^0.40.1 + "@opentelemetry/instrumentation": ^0.57.1 peerDependencies: "@opentelemetry/api": ^1.3.0 - checksum: acdb9883d1ab92d0bfbe507736888cc0b0d7b25c3d24c27b51add17abceff4bf15988a3cd2e54b93256f28bbc65aa172f116df9277545143e20e8d7b497e2e63 + checksum: 93df72f85e40eefef8c9800bd1ab29317b881b3eadb4bdce77cc6dabb9003f8189f910ffba538167039d2b08300f7d56ec34cdf74c15d30b050550314c2d6c64 languageName: node linkType: hard -"@opentelemetry/instrumentation-mysql@npm:0.40.0": - version: 0.40.0 - resolution: "@opentelemetry/instrumentation-mysql@npm:0.40.0" +"@opentelemetry/instrumentation-mongodb@npm:0.52.0": + version: 0.52.0 + resolution: "@opentelemetry/instrumentation-mongodb@npm:0.52.0" dependencies: - "@opentelemetry/instrumentation": ^0.52.0 - "@opentelemetry/semantic-conventions": ^1.22.0 - "@types/mysql": 2.15.22 + "@opentelemetry/instrumentation": ^0.57.1 + "@opentelemetry/semantic-conventions": ^1.27.0 peerDependencies: "@opentelemetry/api": ^1.3.0 - checksum: 6eeba06f7507ab9086ef18b9e37802f12ac0a9f6182d4aba3aaf71a3e0f0759cb51c044247653eb8e359383d922a12a0fc0f129b2982bae17910462450cdb189 + checksum: a0d88afea94c5968eb5134d74e6b9466d6d20fa961c45811f86bfdad1a6c5f289a3cff5e9c6da27a0e000bdd4488122f269c3fcf5f8bc92253fb287c4a5f5c93 languageName: node linkType: hard -"@opentelemetry/instrumentation-nestjs-core@npm:0.39.0": - version: 0.39.0 - resolution: "@opentelemetry/instrumentation-nestjs-core@npm:0.39.0" +"@opentelemetry/instrumentation-mongoose@npm:0.46.1": + version: 0.46.1 + resolution: "@opentelemetry/instrumentation-mongoose@npm:0.46.1" dependencies: - "@opentelemetry/instrumentation": ^0.52.0 - "@opentelemetry/semantic-conventions": ^1.23.0 + "@opentelemetry/core": ^1.8.0 + "@opentelemetry/instrumentation": ^0.57.1 + "@opentelemetry/semantic-conventions": ^1.27.0 peerDependencies: "@opentelemetry/api": ^1.3.0 - checksum: 4394754ce3ef4747e39a59a602c744112f9d6d3ee7ef43a51f1562a977a8e2bb2944687d3dd199f0a5941517e71a84ff9ea9ce183d94b63a3311e9de6ac8e09c + checksum: 05ed52c5b7a556b119a5e93054848fdb15f35a977d2be44558f84d070d7313e03504573577d20f09dc2c470f5cd331fc1428798cfc0f981b52cd05cac6b0e797 languageName: node linkType: hard -"@opentelemetry/instrumentation-pg@npm:0.43.0": - version: 0.43.0 - resolution: "@opentelemetry/instrumentation-pg@npm:0.43.0" +"@opentelemetry/instrumentation-mysql2@npm:0.45.2": + version: 0.45.2 + resolution: "@opentelemetry/instrumentation-mysql2@npm:0.45.2" dependencies: - "@opentelemetry/instrumentation": ^0.52.0 - "@opentelemetry/semantic-conventions": ^1.22.0 + "@opentelemetry/instrumentation": ^0.57.1 + "@opentelemetry/semantic-conventions": ^1.27.0 + "@opentelemetry/sql-common": ^0.40.1 + peerDependencies: + "@opentelemetry/api": ^1.3.0 + checksum: 626fb2953514d9c9ac0a556ef0ce97fbe2b4cf40aa4e304d8c1079515ba06cf9568c884d76edba92d9ffd90cea701f6033a600bacb8aabd70feedfd5a5acb02a + languageName: node + linkType: hard + +"@opentelemetry/instrumentation-mysql@npm:0.45.1": + version: 0.45.1 + resolution: "@opentelemetry/instrumentation-mysql@npm:0.45.1" + dependencies: + "@opentelemetry/instrumentation": ^0.57.1 + "@opentelemetry/semantic-conventions": ^1.27.0 + "@types/mysql": 2.15.26 + peerDependencies: + "@opentelemetry/api": ^1.3.0 + checksum: 4117cda307e5c9a0489b0de317e8ad08b30e36536e1cf9e5b0551a6d35c0ccc436ebce2536f03d2060e2af3ef228df988fbf6b5e73d7ab6ec457c87380e5cb89 + languageName: node + linkType: hard + +"@opentelemetry/instrumentation-pg@npm:0.51.1": + version: 0.51.1 + resolution: "@opentelemetry/instrumentation-pg@npm:0.51.1" + dependencies: + "@opentelemetry/core": ^1.26.0 + "@opentelemetry/instrumentation": ^0.57.1 + "@opentelemetry/semantic-conventions": ^1.27.0 "@opentelemetry/sql-common": ^0.40.1 "@types/pg": 8.6.1 - "@types/pg-pool": 2.0.4 + "@types/pg-pool": 2.0.6 peerDependencies: "@opentelemetry/api": ^1.3.0 - checksum: d255806b9e5ffd449b7ab3c7c072e919ad8a18118cdf5aec636d89a89d9ac63ef282f280d3b2dd7fa9c57e748fc0c9b38294911bf1aaff35e821079aaeacbd82 + checksum: ebd36407a5ce6ab1a4e3ced1da949cc86d77e143e394ac0ef7b48ba108ff806691d60fd98571d641da5ea088cf1663622ed8b2cfa8e2e0211f0dc516507c0b12 languageName: node linkType: hard -"@opentelemetry/instrumentation-redis-4@npm:0.41.0": - version: 0.41.0 - resolution: "@opentelemetry/instrumentation-redis-4@npm:0.41.0" +"@opentelemetry/instrumentation-redis-4@npm:0.46.1": + version: 0.46.1 + resolution: "@opentelemetry/instrumentation-redis-4@npm:0.46.1" dependencies: - "@opentelemetry/instrumentation": ^0.52.0 + "@opentelemetry/instrumentation": ^0.57.1 "@opentelemetry/redis-common": ^0.36.2 - "@opentelemetry/semantic-conventions": ^1.22.0 + "@opentelemetry/semantic-conventions": ^1.27.0 peerDependencies: "@opentelemetry/api": ^1.3.0 - checksum: 1809e3badea5ee5fff0d0a1e7a8204d4a6cf29e0e3b41677fba8eabb444cca62b88f815c5682bc5a827e3ff4ed2c186ed1965d0b2e0b9d1043130a410ee57b50 + checksum: 9350ab6d7c1af3904f2b6acd5f87eb69525cbb0552d798217ae02863f08d479cab68c80125b096cc9b9652c23593a49b19c9b2a8c6fcaace33f883f260a09ada languageName: node linkType: hard -"@opentelemetry/instrumentation@npm:0.52.1, @opentelemetry/instrumentation@npm:^0.49 || ^0.50 || ^0.51 || ^0.52.0, @opentelemetry/instrumentation@npm:^0.52.0, @opentelemetry/instrumentation@npm:^0.52.1": - version: 0.52.1 - resolution: "@opentelemetry/instrumentation@npm:0.52.1" +"@opentelemetry/instrumentation-tedious@npm:0.18.1": + version: 0.18.1 + resolution: "@opentelemetry/instrumentation-tedious@npm:0.18.1" dependencies: - "@opentelemetry/api-logs": 0.52.1 - "@types/shimmer": ^1.0.2 - import-in-the-middle: ^1.8.1 - require-in-the-middle: ^7.1.1 - semver: ^7.5.2 - shimmer: ^1.2.1 + "@opentelemetry/instrumentation": ^0.57.1 + "@opentelemetry/semantic-conventions": ^1.27.0 + "@types/tedious": ^4.0.14 peerDependencies: "@opentelemetry/api": ^1.3.0 - checksum: e8b4f202dc9355ca46714349a5e1663346e162f79706eed38015edf38fc536330fde4cc19ed7d3d6b03258c890c1dc0ba6d658d7aac3f41f1803bd03699d2701 + checksum: b46ef75a59d18b3d0aa3e7eb72317f7a240c706d05e842c4c61733b3c8e8f7aa18bfff9cb2352e7dad8a40a4a6c7d29068a02caaf074fcc5e7ca12a394df36fa languageName: node linkType: hard -"@opentelemetry/instrumentation@npm:^0.46.0": - version: 0.46.0 - resolution: "@opentelemetry/instrumentation@npm:0.46.0" +"@opentelemetry/instrumentation-undici@npm:0.10.1": + version: 0.10.1 + resolution: "@opentelemetry/instrumentation-undici@npm:0.10.1" dependencies: - "@types/shimmer": ^1.0.2 - import-in-the-middle: 1.7.1 + "@opentelemetry/core": ^1.8.0 + "@opentelemetry/instrumentation": ^0.57.1 + peerDependencies: + "@opentelemetry/api": ^1.7.0 + checksum: 0f54bd14c9dda8df76c0f207d42c9efb6c24d90e2d873c606be01f18a0e90e35b439bb501d4dddd451f4ba52d63e85805ad24a1f7b5a9ef8aee8eaea1c076865 + languageName: node + linkType: hard + +"@opentelemetry/instrumentation@npm:0.57.2, @opentelemetry/instrumentation@npm:^0.52.0 || ^0.53.0 || ^0.54.0 || ^0.55.0 || ^0.56.0 || ^0.57.0, @opentelemetry/instrumentation@npm:^0.57.1, @opentelemetry/instrumentation@npm:^0.57.2": + version: 0.57.2 + resolution: "@opentelemetry/instrumentation@npm:0.57.2" + dependencies: + "@opentelemetry/api-logs": 0.57.2 + "@types/shimmer": ^1.2.0 + import-in-the-middle: ^1.8.1 require-in-the-middle: ^7.1.1 semver: ^7.5.2 shimmer: ^1.2.1 peerDependencies: "@opentelemetry/api": ^1.3.0 - checksum: 9589058da858eeb99b52ba191f93d82b3076b83f4a6cb745666fa742ce7fab8a219fd96a2f2bfad9609984d7462aedbaafa266a1ec3abca57964fdda0e43f5d6 + checksum: 8a494d2ea473ab49fe8096711f6c9528859fe2423db7aba453d0c6d574ac261495d33d4c8c2e38769c3946e046a0cf6975f210d36467330330aba360bc083182 languageName: node linkType: hard @@ -3642,51 +3709,52 @@ __metadata: languageName: node linkType: hard -"@opentelemetry/resources@npm:1.25.1, @opentelemetry/resources@npm:^1.25.1": - version: 1.25.1 - resolution: "@opentelemetry/resources@npm:1.25.1" +"@opentelemetry/resources@npm:1.30.1, @opentelemetry/resources@npm:^1.30.1": + version: 1.30.1 + resolution: "@opentelemetry/resources@npm:1.30.1" dependencies: - "@opentelemetry/core": 1.25.1 - "@opentelemetry/semantic-conventions": 1.25.1 + "@opentelemetry/core": 1.30.1 + "@opentelemetry/semantic-conventions": 1.28.0 peerDependencies: "@opentelemetry/api": ">=1.0.0 <1.10.0" - checksum: 806e5aabbc93afcab767dc84707f702ca51bbc93e4565eb69a8591ed2fe78439aca19c5ca0d9f044c85ed97b9efb35936fdb65bef01f5f3e68504002c8a07220 + checksum: a930d52fcdb18bda6d27a5d867493a6aa560fcad9f266af0c5d24c26069253b463f5cb9961577c3ebb1de752ae37ef4e1344009273504e19604ea7495a4028bd languageName: node linkType: hard -"@opentelemetry/sdk-metrics@npm:^1.9.1": - version: 1.25.1 - resolution: "@opentelemetry/sdk-metrics@npm:1.25.1" +"@opentelemetry/sdk-trace-base@npm:^1.30.1": + version: 1.30.1 + resolution: "@opentelemetry/sdk-trace-base@npm:1.30.1" dependencies: - "@opentelemetry/core": 1.25.1 - "@opentelemetry/resources": 1.25.1 - lodash.merge: ^4.6.2 - peerDependencies: - "@opentelemetry/api": ">=1.3.0 <1.10.0" - checksum: efd3902d30e75bfc16e4208ffc92096743148ed8cec84900d05f98cc17ff146c711c398c3a526589433509c82399641b0759b4ba9fffc12be2e5007a55af7517 - languageName: node - linkType: hard - -"@opentelemetry/sdk-trace-base@npm:^1.22, @opentelemetry/sdk-trace-base@npm:^1.25.1": - version: 1.25.1 - resolution: "@opentelemetry/sdk-trace-base@npm:1.25.1" - dependencies: - "@opentelemetry/core": 1.25.1 - "@opentelemetry/resources": 1.25.1 - "@opentelemetry/semantic-conventions": 1.25.1 + "@opentelemetry/core": 1.30.1 + "@opentelemetry/resources": 1.30.1 + "@opentelemetry/semantic-conventions": 1.28.0 peerDependencies: "@opentelemetry/api": ">=1.0.0 <1.10.0" - checksum: 8ac97f7d8d36bf412c5f47ff98ded07c5dfd11602a6ae7657ec7b5f50bb6ddaa20fc682626afcf74e21b375dbad0d1d47c8e20204d5139431afec25165f6252b + checksum: 212c19fb2595d5abc9eb6728946acacb4ca760761625217209d66ad9e3b83efa65fe0c68917a4ac5fb800070f241a4ebdc89e8d6e016134ae95cb8925cf22440 languageName: node linkType: hard -"@opentelemetry/semantic-conventions@npm:1.25.1, @opentelemetry/semantic-conventions@npm:^1.17.0, @opentelemetry/semantic-conventions@npm:^1.22.0, @opentelemetry/semantic-conventions@npm:^1.23.0, @opentelemetry/semantic-conventions@npm:^1.25.1": +"@opentelemetry/semantic-conventions@npm:1.25.1": version: 1.25.1 resolution: "@opentelemetry/semantic-conventions@npm:1.25.1" checksum: fea418a4b09c55121c6da11c49dd2105116533838c484aead17e8acf8029dad711e145849812f9c61f9e48fad8e2b6cf103d2c18847ca993032ce9b27c2f863d languageName: node linkType: hard +"@opentelemetry/semantic-conventions@npm:1.28.0": + version: 1.28.0 + resolution: "@opentelemetry/semantic-conventions@npm:1.28.0" + checksum: 1d708afa654990236cdb6b5da84f7ab899b70bff9f753bc49d93616a5c7f7f339ba1eba6a9fbb57dee596995334f4e7effa57a4624741882ab5b3c419c3511e2 + languageName: node + linkType: hard + +"@opentelemetry/semantic-conventions@npm:^1.27.0, @opentelemetry/semantic-conventions@npm:^1.34.0": + version: 1.36.0 + resolution: "@opentelemetry/semantic-conventions@npm:1.36.0" + checksum: 6ce39742710ba0e198476e3fd31433965ffe6297ce6e8834edc3cc03d5f21018a49fee22b54da19412f96285b6c3945a3186d8457281374fb7e70e6d3c7630cd + languageName: node + linkType: hard + "@opentelemetry/sql-common@npm:^0.40.1": version: 0.40.1 resolution: "@opentelemetry/sql-common@npm:0.40.1" @@ -3862,33 +3930,34 @@ __metadata: languageName: node linkType: hard -"@prisma/instrumentation@npm:5.18.0": - version: 5.18.0 - resolution: "@prisma/instrumentation@npm:5.18.0" +"@prisma/instrumentation@npm:6.11.1": + version: 6.11.1 + resolution: "@prisma/instrumentation@npm:6.11.1" dependencies: + "@opentelemetry/instrumentation": ^0.52.0 || ^0.53.0 || ^0.54.0 || ^0.55.0 || ^0.56.0 || ^0.57.0 + peerDependencies: "@opentelemetry/api": ^1.8 - "@opentelemetry/instrumentation": ^0.49 || ^0.50 || ^0.51 || ^0.52.0 - "@opentelemetry/sdk-trace-base": ^1.22 - checksum: a61892e7e5ed501002947bbccc1a275d52ac42f13a69a3192c1ceef086014e45cb9cac1787f8d589556e8c48cb5d7d3a355b3710c9094d62b276147b3527c411 + checksum: 6a9aae9c77846f5aec8247c1b68cf23d07a1e38744d9211abfe341f5da009458fa219892088a1b21dee9f7e0829086108721d7eefb4ba0c6d53e2770d0055e5f languageName: node linkType: hard -"@rollup/plugin-commonjs@npm:26.0.1": - version: 26.0.1 - resolution: "@rollup/plugin-commonjs@npm:26.0.1" +"@rollup/plugin-commonjs@npm:28.0.1": + version: 28.0.1 + resolution: "@rollup/plugin-commonjs@npm:28.0.1" dependencies: "@rollup/pluginutils": ^5.0.1 commondir: ^1.0.1 estree-walker: ^2.0.2 - glob: ^10.4.1 + fdir: ^6.2.0 is-reference: 1.2.1 magic-string: ^0.30.3 + picomatch: ^4.0.2 peerDependencies: rollup: ^2.68.0||^3.0.0||^4.0.0 peerDependenciesMeta: rollup: optional: true - checksum: 88d1349cc2cda4ad6193cce901356e4c14a830497fc01c91f38c94a871b203ffe657b29c9a98cd16787e3a6a8b45169dd0b471cb36d26d645478a177c958779a + checksum: b230b2733b7198fca1b585f6b237ab05f3305ef7a50083caff28baef0fd611c0e90399ea7548181f97a4d0b0372487ca27f81327e355db495396a0fb8934244d languageName: node linkType: hard @@ -3908,6 +3977,146 @@ __metadata: languageName: node linkType: hard +"@rollup/rollup-android-arm-eabi@npm:4.45.1": + version: 4.45.1 + resolution: "@rollup/rollup-android-arm-eabi@npm:4.45.1" + conditions: os=android & cpu=arm + languageName: node + linkType: hard + +"@rollup/rollup-android-arm64@npm:4.45.1": + version: 4.45.1 + resolution: "@rollup/rollup-android-arm64@npm:4.45.1" + conditions: os=android & cpu=arm64 + languageName: node + linkType: hard + +"@rollup/rollup-darwin-arm64@npm:4.45.1": + version: 4.45.1 + resolution: "@rollup/rollup-darwin-arm64@npm:4.45.1" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + +"@rollup/rollup-darwin-x64@npm:4.45.1": + version: 4.45.1 + resolution: "@rollup/rollup-darwin-x64@npm:4.45.1" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + +"@rollup/rollup-freebsd-arm64@npm:4.45.1": + version: 4.45.1 + resolution: "@rollup/rollup-freebsd-arm64@npm:4.45.1" + conditions: os=freebsd & cpu=arm64 + languageName: node + linkType: hard + +"@rollup/rollup-freebsd-x64@npm:4.45.1": + version: 4.45.1 + resolution: "@rollup/rollup-freebsd-x64@npm:4.45.1" + conditions: os=freebsd & cpu=x64 + languageName: node + linkType: hard + +"@rollup/rollup-linux-arm-gnueabihf@npm:4.45.1": + version: 4.45.1 + resolution: "@rollup/rollup-linux-arm-gnueabihf@npm:4.45.1" + conditions: os=linux & cpu=arm & libc=glibc + languageName: node + linkType: hard + +"@rollup/rollup-linux-arm-musleabihf@npm:4.45.1": + version: 4.45.1 + resolution: "@rollup/rollup-linux-arm-musleabihf@npm:4.45.1" + conditions: os=linux & cpu=arm & libc=musl + languageName: node + linkType: hard + +"@rollup/rollup-linux-arm64-gnu@npm:4.45.1": + version: 4.45.1 + resolution: "@rollup/rollup-linux-arm64-gnu@npm:4.45.1" + conditions: os=linux & cpu=arm64 & libc=glibc + languageName: node + linkType: hard + +"@rollup/rollup-linux-arm64-musl@npm:4.45.1": + version: 4.45.1 + resolution: "@rollup/rollup-linux-arm64-musl@npm:4.45.1" + conditions: os=linux & cpu=arm64 & libc=musl + languageName: node + linkType: hard + +"@rollup/rollup-linux-loongarch64-gnu@npm:4.45.1": + version: 4.45.1 + resolution: "@rollup/rollup-linux-loongarch64-gnu@npm:4.45.1" + conditions: os=linux & cpu=loong64 & libc=glibc + languageName: node + linkType: hard + +"@rollup/rollup-linux-powerpc64le-gnu@npm:4.45.1": + version: 4.45.1 + resolution: "@rollup/rollup-linux-powerpc64le-gnu@npm:4.45.1" + conditions: os=linux & cpu=ppc64 & libc=glibc + languageName: node + linkType: hard + +"@rollup/rollup-linux-riscv64-gnu@npm:4.45.1": + version: 4.45.1 + resolution: "@rollup/rollup-linux-riscv64-gnu@npm:4.45.1" + conditions: os=linux & cpu=riscv64 & libc=glibc + languageName: node + linkType: hard + +"@rollup/rollup-linux-riscv64-musl@npm:4.45.1": + version: 4.45.1 + resolution: "@rollup/rollup-linux-riscv64-musl@npm:4.45.1" + conditions: os=linux & cpu=riscv64 & libc=musl + languageName: node + linkType: hard + +"@rollup/rollup-linux-s390x-gnu@npm:4.45.1": + version: 4.45.1 + resolution: "@rollup/rollup-linux-s390x-gnu@npm:4.45.1" + conditions: os=linux & cpu=s390x & libc=glibc + languageName: node + linkType: hard + +"@rollup/rollup-linux-x64-gnu@npm:4.45.1": + version: 4.45.1 + resolution: "@rollup/rollup-linux-x64-gnu@npm:4.45.1" + conditions: os=linux & cpu=x64 & libc=glibc + languageName: node + linkType: hard + +"@rollup/rollup-linux-x64-musl@npm:4.45.1": + version: 4.45.1 + resolution: "@rollup/rollup-linux-x64-musl@npm:4.45.1" + conditions: os=linux & cpu=x64 & libc=musl + languageName: node + linkType: hard + +"@rollup/rollup-win32-arm64-msvc@npm:4.45.1": + version: 4.45.1 + resolution: "@rollup/rollup-win32-arm64-msvc@npm:4.45.1" + conditions: os=win32 & cpu=arm64 + languageName: node + linkType: hard + +"@rollup/rollup-win32-ia32-msvc@npm:4.45.1": + version: 4.45.1 + resolution: "@rollup/rollup-win32-ia32-msvc@npm:4.45.1" + conditions: os=win32 & cpu=ia32 + languageName: node + linkType: hard + +"@rollup/rollup-win32-x64-msvc@npm:4.45.1": + version: 4.45.1 + resolution: "@rollup/rollup-win32-x64-msvc@npm:4.45.1" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + "@rtsao/scc@npm:^1.1.0": version: 1.1.0 resolution: "@rtsao/scc@npm:1.1.0" @@ -3922,150 +4131,148 @@ __metadata: languageName: node linkType: hard -"@sentry-internal/browser-utils@npm:8.28.0": - version: 8.28.0 - resolution: "@sentry-internal/browser-utils@npm:8.28.0" +"@sentry-internal/browser-utils@npm:9.40.0": + version: 9.40.0 + resolution: "@sentry-internal/browser-utils@npm:9.40.0" dependencies: - "@sentry/core": 8.28.0 - "@sentry/types": 8.28.0 - "@sentry/utils": 8.28.0 - checksum: 33cb061158204781cfea9a5d2ea1af3c38ebc06bbd6c8ffbacfea564de4ba8adc2d47d70bc51f0cba7b1135ce5e6846ff63b2a601ce314ae4e49a5c8c5b7fb8a + "@sentry/core": 9.40.0 + checksum: 15d83bfa9af8c12c0c743e8053550d3dd460bec2ffb8bf8864e70a6a33bc9904f32fbd96f9bc5c8d1b72001369b1ecfbfb714c34d0fad4e7e7ccba5c1fb78ccc languageName: node linkType: hard -"@sentry-internal/feedback@npm:8.28.0": - version: 8.28.0 - resolution: "@sentry-internal/feedback@npm:8.28.0" +"@sentry-internal/feedback@npm:9.40.0": + version: 9.40.0 + resolution: "@sentry-internal/feedback@npm:9.40.0" dependencies: - "@sentry/core": 8.28.0 - "@sentry/types": 8.28.0 - "@sentry/utils": 8.28.0 - checksum: e767624ef5b94037ec6457fabf23f105eb6fc945665edcd7dc1fd0a139ad93ccc3aafc0406fdb5a6d37ef6b6209423dfbab4ba288da362a69fc60aa7fbd62cb8 + "@sentry/core": 9.40.0 + checksum: 5cf17fff345ff42115d3ec24b08142274759a21dc4abb65756bce7843d95de73f5517fcb27099079bd52475b9822ea4441920aa0b66cba731f458fcde2dc486d languageName: node linkType: hard -"@sentry-internal/replay-canvas@npm:8.28.0": - version: 8.28.0 - resolution: "@sentry-internal/replay-canvas@npm:8.28.0" +"@sentry-internal/replay-canvas@npm:9.40.0": + version: 9.40.0 + resolution: "@sentry-internal/replay-canvas@npm:9.40.0" dependencies: - "@sentry-internal/replay": 8.28.0 - "@sentry/core": 8.28.0 - "@sentry/types": 8.28.0 - "@sentry/utils": 8.28.0 - checksum: a652a9427c0de7d6b406bdc0af299e92d556feb60f867707f49e46083c82afa6938e900c598c5dcdf5153d5382f3a05ca6537fd8448f10ca8a084b54bdafa614 + "@sentry-internal/replay": 9.40.0 + "@sentry/core": 9.40.0 + checksum: ba0414dda1eb5086d410d73a18cae9618020a98d8f28135221bc6e83a31aa909b44a737ba57a0ba8d0ecf882257333054635975abfade5b1f842677cb609c734 languageName: node linkType: hard -"@sentry-internal/replay@npm:8.28.0": - version: 8.28.0 - resolution: "@sentry-internal/replay@npm:8.28.0" +"@sentry-internal/replay@npm:9.40.0": + version: 9.40.0 + resolution: "@sentry-internal/replay@npm:9.40.0" dependencies: - "@sentry-internal/browser-utils": 8.28.0 - "@sentry/core": 8.28.0 - "@sentry/types": 8.28.0 - "@sentry/utils": 8.28.0 - checksum: 02833baf0ef4e6c1970cfb22679f2604b6f98f2ff58cd0e98620156ada41446ffd16a5b81208ddce4f941180161bc9826364038227bd2b010d565a7af3fbf535 + "@sentry-internal/browser-utils": 9.40.0 + "@sentry/core": 9.40.0 + checksum: 20b83b6672bb3bbc6bd4bc85e0081050e41f1511481a3ab80eee45811e3be6d834a39bdca2a0b380a91519cd03d5ccffe8755305d54e57ea82866498052c2315 languageName: node linkType: hard -"@sentry/babel-plugin-component-annotate@npm:2.22.3": - version: 2.22.3 - resolution: "@sentry/babel-plugin-component-annotate@npm:2.22.3" - checksum: 8dccbe700ffdd4cbdbcf2466d342fba40b3619aef06aa855205a9fa09707a92e80cb401cd341bed1ebe77d28b96fd11a06a6e78ba12b8045b52201f89cb6eced +"@sentry/babel-plugin-component-annotate@npm:3.6.1": + version: 3.6.1 + resolution: "@sentry/babel-plugin-component-annotate@npm:3.6.1" + checksum: 5a8d4f5b5ce68a57bbab753b1b8c244c831c3e1efbe1fc91488f553a33bd554822bcd53eb70731f11924143736d28935f282f3eef30a19b844b3f810017ff421 languageName: node linkType: hard -"@sentry/browser@npm:8.28.0": - version: 8.28.0 - resolution: "@sentry/browser@npm:8.28.0" +"@sentry/browser@npm:9.40.0": + version: 9.40.0 + resolution: "@sentry/browser@npm:9.40.0" dependencies: - "@sentry-internal/browser-utils": 8.28.0 - "@sentry-internal/feedback": 8.28.0 - "@sentry-internal/replay": 8.28.0 - "@sentry-internal/replay-canvas": 8.28.0 - "@sentry/core": 8.28.0 - "@sentry/types": 8.28.0 - "@sentry/utils": 8.28.0 - checksum: 712e05b178624dec7f0c6d981a7065ee0f0034b293ac22a4f0b9e1ea63656463f9505473e9953eba1e64409db7aa7105a64b5726e14560b7e0f1197a2fd4e46b + "@sentry-internal/browser-utils": 9.40.0 + "@sentry-internal/feedback": 9.40.0 + "@sentry-internal/replay": 9.40.0 + "@sentry-internal/replay-canvas": 9.40.0 + "@sentry/core": 9.40.0 + checksum: e2b0df6dec7dfb5a1791e7c83a033f43bdf049d93462ebf4a8af005faeb0507580bbfc42dccd41467b220981524c3280ca3c7440e5a440effe551bd826079bc4 languageName: node linkType: hard -"@sentry/bundler-plugin-core@npm:2.22.3": - version: 2.22.3 - resolution: "@sentry/bundler-plugin-core@npm:2.22.3" +"@sentry/bundler-plugin-core@npm:3.6.1": + version: 3.6.1 + resolution: "@sentry/bundler-plugin-core@npm:3.6.1" dependencies: "@babel/core": ^7.18.5 - "@sentry/babel-plugin-component-annotate": 2.22.3 - "@sentry/cli": ^2.33.1 + "@sentry/babel-plugin-component-annotate": 3.6.1 + "@sentry/cli": ^2.49.0 dotenv: ^16.3.1 find-up: ^5.0.0 glob: ^9.3.2 magic-string: 0.30.8 unplugin: 1.0.1 - checksum: cbf7befb78ecf2c1cd0af9b22c26acb7da63c030309452172a34146e834c644dcd24538eedfa6e4296c51bbf46fd1ab50c2b2f108d26c16d8169b7eb29f1e53c + checksum: b0dd98dc8018a9cc389a1bb8a9321a95c8d471e6b2ee637b3cd35f5f47b58131fd5f04e4e13cf69855b1f536f409c56a5d6219fc471e67e88b069ee7d69c040e languageName: node linkType: hard -"@sentry/cli-darwin@npm:2.35.0": - version: 2.35.0 - resolution: "@sentry/cli-darwin@npm:2.35.0" +"@sentry/cli-darwin@npm:2.50.2": + version: 2.50.2 + resolution: "@sentry/cli-darwin@npm:2.50.2" conditions: os=darwin languageName: node linkType: hard -"@sentry/cli-linux-arm64@npm:2.35.0": - version: 2.35.0 - resolution: "@sentry/cli-linux-arm64@npm:2.35.0" - conditions: (os=linux | os=freebsd) & cpu=arm64 +"@sentry/cli-linux-arm64@npm:2.50.2": + version: 2.50.2 + resolution: "@sentry/cli-linux-arm64@npm:2.50.2" + conditions: (os=linux | os=freebsd | os=android) & cpu=arm64 + languageName: node + linkType: hard + +"@sentry/cli-linux-arm@npm:2.50.2": + version: 2.50.2 + resolution: "@sentry/cli-linux-arm@npm:2.50.2" + conditions: (os=linux | os=freebsd | os=android) & cpu=arm languageName: node linkType: hard -"@sentry/cli-linux-arm@npm:2.35.0": - version: 2.35.0 - resolution: "@sentry/cli-linux-arm@npm:2.35.0" - conditions: (os=linux | os=freebsd) & cpu=arm +"@sentry/cli-linux-i686@npm:2.50.2": + version: 2.50.2 + resolution: "@sentry/cli-linux-i686@npm:2.50.2" + conditions: (os=linux | os=freebsd | os=android) & (cpu=x86 | cpu=ia32) languageName: node linkType: hard -"@sentry/cli-linux-i686@npm:2.35.0": - version: 2.35.0 - resolution: "@sentry/cli-linux-i686@npm:2.35.0" - conditions: (os=linux | os=freebsd) & (cpu=x86 | cpu=ia32) +"@sentry/cli-linux-x64@npm:2.50.2": + version: 2.50.2 + resolution: "@sentry/cli-linux-x64@npm:2.50.2" + conditions: (os=linux | os=freebsd | os=android) & cpu=x64 languageName: node linkType: hard -"@sentry/cli-linux-x64@npm:2.35.0": - version: 2.35.0 - resolution: "@sentry/cli-linux-x64@npm:2.35.0" - conditions: (os=linux | os=freebsd) & cpu=x64 +"@sentry/cli-win32-arm64@npm:2.50.2": + version: 2.50.2 + resolution: "@sentry/cli-win32-arm64@npm:2.50.2" + conditions: os=win32 & cpu=arm64 languageName: node linkType: hard -"@sentry/cli-win32-i686@npm:2.35.0": - version: 2.35.0 - resolution: "@sentry/cli-win32-i686@npm:2.35.0" +"@sentry/cli-win32-i686@npm:2.50.2": + version: 2.50.2 + resolution: "@sentry/cli-win32-i686@npm:2.50.2" conditions: os=win32 & (cpu=x86 | cpu=ia32) languageName: node linkType: hard -"@sentry/cli-win32-x64@npm:2.35.0": - version: 2.35.0 - resolution: "@sentry/cli-win32-x64@npm:2.35.0" +"@sentry/cli-win32-x64@npm:2.50.2": + version: 2.50.2 + resolution: "@sentry/cli-win32-x64@npm:2.50.2" conditions: os=win32 & cpu=x64 languageName: node linkType: hard -"@sentry/cli@npm:^2.33.1": - version: 2.35.0 - resolution: "@sentry/cli@npm:2.35.0" +"@sentry/cli@npm:^2.49.0": + version: 2.50.2 + resolution: "@sentry/cli@npm:2.50.2" dependencies: - "@sentry/cli-darwin": 2.35.0 - "@sentry/cli-linux-arm": 2.35.0 - "@sentry/cli-linux-arm64": 2.35.0 - "@sentry/cli-linux-i686": 2.35.0 - "@sentry/cli-linux-x64": 2.35.0 - "@sentry/cli-win32-i686": 2.35.0 - "@sentry/cli-win32-x64": 2.35.0 + "@sentry/cli-darwin": 2.50.2 + "@sentry/cli-linux-arm": 2.50.2 + "@sentry/cli-linux-arm64": 2.50.2 + "@sentry/cli-linux-i686": 2.50.2 + "@sentry/cli-linux-x64": 2.50.2 + "@sentry/cli-win32-arm64": 2.50.2 + "@sentry/cli-win32-i686": 2.50.2 + "@sentry/cli-win32-x64": 2.50.2 https-proxy-agent: ^5.0.0 node-fetch: ^2.6.7 progress: ^2.0.3 @@ -4082,165 +4289,162 @@ __metadata: optional: true "@sentry/cli-linux-x64": optional: true + "@sentry/cli-win32-arm64": + optional: true "@sentry/cli-win32-i686": optional: true "@sentry/cli-win32-x64": optional: true bin: sentry-cli: bin/sentry-cli - checksum: 15e76ad1cb53cc46823aa48ea99844cd9a944d33c2667cbecf1260b564428a7ef47c1ca38e9a9e222e4d697ed7e5892b107a0b00eddc9e740add290cbe0ad1eb + checksum: 16241b45f2521cae60ae819db4b8e7f9dd394f3dfbdafa19ca91a5508712adc8e7ce334e8eecfd8517cd42f4c69b08e7a3f84a5cfd1ebc92f20c2e3506104899 languageName: node linkType: hard -"@sentry/core@npm:8.28.0": - version: 8.28.0 - resolution: "@sentry/core@npm:8.28.0" - dependencies: - "@sentry/types": 8.28.0 - "@sentry/utils": 8.28.0 - checksum: 2a37f14b36a68c496050054f952d56e639863257f59ffcccb7aed4b1a35fb063c1ced38a08e89f2bb789124b18b7f955fd78ef8b38408ad91853aa1a5aa51cbb +"@sentry/core@npm:9.40.0": + version: 9.40.0 + resolution: "@sentry/core@npm:9.40.0" + checksum: 8471d18d6ff5619ad63f93b0fed8d0d9965f934cfdb63ff72fee17ab35426c377a0c44ab278cfa92770c141f2c9e794a70ddf480e2c9e7a0ae273807593ab2d4 languageName: node linkType: hard -"@sentry/nextjs@npm:^8.28.0": - version: 8.28.0 - resolution: "@sentry/nextjs@npm:8.28.0" +"@sentry/nextjs@npm:^9.40.0": + version: 9.40.0 + resolution: "@sentry/nextjs@npm:9.40.0" dependencies: - "@opentelemetry/instrumentation-http": 0.52.1 - "@opentelemetry/semantic-conventions": ^1.25.1 - "@rollup/plugin-commonjs": 26.0.1 - "@sentry/core": 8.28.0 - "@sentry/node": 8.28.0 - "@sentry/opentelemetry": 8.28.0 - "@sentry/react": 8.28.0 - "@sentry/types": 8.28.0 - "@sentry/utils": 8.28.0 - "@sentry/vercel-edge": 8.28.0 - "@sentry/webpack-plugin": 2.22.3 + "@opentelemetry/api": ^1.9.0 + "@opentelemetry/semantic-conventions": ^1.34.0 + "@rollup/plugin-commonjs": 28.0.1 + "@sentry-internal/browser-utils": 9.40.0 + "@sentry/core": 9.40.0 + "@sentry/node": 9.40.0 + "@sentry/opentelemetry": 9.40.0 + "@sentry/react": 9.40.0 + "@sentry/vercel-edge": 9.40.0 + "@sentry/webpack-plugin": ^3.5.0 chalk: 3.0.0 resolve: 1.22.8 - rollup: 3.29.4 + rollup: ^4.35.0 stacktrace-parser: ^0.1.10 peerDependencies: next: ^13.2.0 || ^14.0 || ^15.0.0-rc.0 - webpack: ">= 5.0.0" - peerDependenciesMeta: - webpack: - optional: true - checksum: 5f2ad54789e9eea667fc42bc7c99253cd4ffe6545a878c03e9d977625fe5bb70e1ce09634e308d510182591726a6e6d749e84362c067ed2e5b984bf71034edc8 + checksum: b190796184d72731c98fb5330e516bd7c3833925706f398a5300c7a18fef24b180b491df1ce099604fbfdc8d6292e6dff60c2e3de08c978ff5ce1f03b40b2579 languageName: node linkType: hard -"@sentry/node@npm:8.28.0": - version: 8.28.0 - resolution: "@sentry/node@npm:8.28.0" +"@sentry/node-core@npm:9.40.0": + version: 9.40.0 + resolution: "@sentry/node-core@npm:9.40.0" dependencies: + "@sentry/core": 9.40.0 + "@sentry/opentelemetry": 9.40.0 + import-in-the-middle: ^1.14.2 + peerDependencies: "@opentelemetry/api": ^1.9.0 - "@opentelemetry/context-async-hooks": ^1.25.1 - "@opentelemetry/core": ^1.25.1 - "@opentelemetry/instrumentation": ^0.52.1 - "@opentelemetry/instrumentation-connect": 0.38.0 - "@opentelemetry/instrumentation-express": 0.41.1 - "@opentelemetry/instrumentation-fastify": 0.38.0 - "@opentelemetry/instrumentation-fs": 0.14.0 - "@opentelemetry/instrumentation-graphql": 0.42.0 - "@opentelemetry/instrumentation-hapi": 0.40.0 - "@opentelemetry/instrumentation-http": 0.52.1 - "@opentelemetry/instrumentation-ioredis": 0.42.0 - "@opentelemetry/instrumentation-koa": 0.42.0 - "@opentelemetry/instrumentation-mongodb": 0.46.0 - "@opentelemetry/instrumentation-mongoose": 0.40.0 - "@opentelemetry/instrumentation-mysql": 0.40.0 - "@opentelemetry/instrumentation-mysql2": 0.40.0 - "@opentelemetry/instrumentation-nestjs-core": 0.39.0 - "@opentelemetry/instrumentation-pg": 0.43.0 - "@opentelemetry/instrumentation-redis-4": 0.41.0 - "@opentelemetry/resources": ^1.25.1 - "@opentelemetry/sdk-trace-base": ^1.25.1 - "@opentelemetry/semantic-conventions": ^1.25.1 - "@prisma/instrumentation": 5.18.0 - "@sentry/core": 8.28.0 - "@sentry/opentelemetry": 8.28.0 - "@sentry/types": 8.28.0 - "@sentry/utils": 8.28.0 - import-in-the-middle: ^1.11.0 - opentelemetry-instrumentation-fetch-node: 1.2.3 - dependenciesMeta: - opentelemetry-instrumentation-fetch-node: - optional: true - checksum: 795d81e9257070c9557e79f1b22ba0d042ab5320766860a83e5adf76f0e6b57352b73ccd194a36732da680d5f6ebb041ead435b81bdda676137371cc73ba0723 + "@opentelemetry/context-async-hooks": ^1.30.1 || ^2.0.0 + "@opentelemetry/core": ^1.30.1 || ^2.0.0 + "@opentelemetry/instrumentation": ">=0.57.1 <1" + "@opentelemetry/resources": ^1.30.1 || ^2.0.0 + "@opentelemetry/sdk-trace-base": ^1.30.1 || ^2.0.0 + "@opentelemetry/semantic-conventions": ^1.34.0 + checksum: 14e750272291d67f216a01cf5a5fb4f930135313e17ef0090ee77b35b28e2b300123ea3fa9a5546a400cb19bb2e12f3e45c579b9a81b7863315858f280e25b66 languageName: node linkType: hard -"@sentry/opentelemetry@npm:8.28.0": - version: 8.28.0 - resolution: "@sentry/opentelemetry@npm:8.28.0" +"@sentry/node@npm:9.40.0": + version: 9.40.0 + resolution: "@sentry/node@npm:9.40.0" dependencies: - "@sentry/core": 8.28.0 - "@sentry/types": 8.28.0 - "@sentry/utils": 8.28.0 + "@opentelemetry/api": ^1.9.0 + "@opentelemetry/context-async-hooks": ^1.30.1 + "@opentelemetry/core": ^1.30.1 + "@opentelemetry/instrumentation": ^0.57.2 + "@opentelemetry/instrumentation-amqplib": ^0.46.1 + "@opentelemetry/instrumentation-connect": 0.43.1 + "@opentelemetry/instrumentation-dataloader": 0.16.1 + "@opentelemetry/instrumentation-express": 0.47.1 + "@opentelemetry/instrumentation-fs": 0.19.1 + "@opentelemetry/instrumentation-generic-pool": 0.43.1 + "@opentelemetry/instrumentation-graphql": 0.47.1 + "@opentelemetry/instrumentation-hapi": 0.45.2 + "@opentelemetry/instrumentation-http": 0.57.2 + "@opentelemetry/instrumentation-ioredis": 0.47.1 + "@opentelemetry/instrumentation-kafkajs": 0.7.1 + "@opentelemetry/instrumentation-knex": 0.44.1 + "@opentelemetry/instrumentation-koa": 0.47.1 + "@opentelemetry/instrumentation-lru-memoizer": 0.44.1 + "@opentelemetry/instrumentation-mongodb": 0.52.0 + "@opentelemetry/instrumentation-mongoose": 0.46.1 + "@opentelemetry/instrumentation-mysql": 0.45.1 + "@opentelemetry/instrumentation-mysql2": 0.45.2 + "@opentelemetry/instrumentation-pg": 0.51.1 + "@opentelemetry/instrumentation-redis-4": 0.46.1 + "@opentelemetry/instrumentation-tedious": 0.18.1 + "@opentelemetry/instrumentation-undici": 0.10.1 + "@opentelemetry/resources": ^1.30.1 + "@opentelemetry/sdk-trace-base": ^1.30.1 + "@opentelemetry/semantic-conventions": ^1.34.0 + "@prisma/instrumentation": 6.11.1 + "@sentry/core": 9.40.0 + "@sentry/node-core": 9.40.0 + "@sentry/opentelemetry": 9.40.0 + import-in-the-middle: ^1.14.2 + minimatch: ^9.0.0 + checksum: 05b4a16571293a33ce0b212751e27d8348f432cf6a2da6811333607232b44af3c08bdc57e9263a6302b4731a32186d52c78f3a37c852bc41353caf2c356c0b9a + languageName: node + linkType: hard + +"@sentry/opentelemetry@npm:9.40.0": + version: 9.40.0 + resolution: "@sentry/opentelemetry@npm:9.40.0" + dependencies: + "@sentry/core": 9.40.0 peerDependencies: "@opentelemetry/api": ^1.9.0 - "@opentelemetry/core": ^1.25.1 - "@opentelemetry/instrumentation": ^0.52.1 - "@opentelemetry/sdk-trace-base": ^1.25.1 - "@opentelemetry/semantic-conventions": ^1.25.1 - checksum: 68421a9df72a9b9203447cbf34ddad74b7bb845d3bbb296e607eb2cddf164deb6ecefa0a78d1ccd324ffdb491df3f6f7a63167c602b22aeef33c9c9f78f7c03c + "@opentelemetry/context-async-hooks": ^1.30.1 || ^2.0.0 + "@opentelemetry/core": ^1.30.1 || ^2.0.0 + "@opentelemetry/sdk-trace-base": ^1.30.1 || ^2.0.0 + "@opentelemetry/semantic-conventions": ^1.34.0 + checksum: 970341f01619b2dc8d036b922a80330b471884742ec3532423908231cd8096737d8b158a3c7875f9ec4db41fdf3631918da125b8791792ae197e5f9327c11616 languageName: node linkType: hard -"@sentry/react@npm:8.28.0": - version: 8.28.0 - resolution: "@sentry/react@npm:8.28.0" +"@sentry/react@npm:9.40.0": + version: 9.40.0 + resolution: "@sentry/react@npm:9.40.0" dependencies: - "@sentry/browser": 8.28.0 - "@sentry/core": 8.28.0 - "@sentry/types": 8.28.0 - "@sentry/utils": 8.28.0 + "@sentry/browser": 9.40.0 + "@sentry/core": 9.40.0 hoist-non-react-statics: ^3.3.2 peerDependencies: react: ^16.14.0 || 17.x || 18.x || 19.x - checksum: f3c16345aeaa6699fb2ef0dbe9ef2c46cec651740743d69a297093da1ebe6239a65e8a406f60c6841a43e74c21932c5bb055fda0443d469fc1ae2a57a9f5c607 + checksum: d877086c3f3fdc264f8a7ca0a28da34da41b3ea6631760c3174d9afc00c86b2b4bf60f5691c4d38c775b69a823da01aa412727e2b2445f34a5f76823e5630450 languageName: node linkType: hard -"@sentry/types@npm:8.28.0": - version: 8.28.0 - resolution: "@sentry/types@npm:8.28.0" - checksum: 2f2ffc31042e17492c4869202bb67e5bd4c7dd136dad7e0e49d1c5c6cc5ad41eee3b9bc6e156db24136ea90fc8827a4a1bd185324b586a6488ebc94d9d7a4988 - languageName: node - linkType: hard - -"@sentry/utils@npm:8.28.0": - version: 8.28.0 - resolution: "@sentry/utils@npm:8.28.0" +"@sentry/vercel-edge@npm:9.40.0": + version: 9.40.0 + resolution: "@sentry/vercel-edge@npm:9.40.0" dependencies: - "@sentry/types": 8.28.0 - checksum: e0e70a2076e5ca0110865ec89a84f683531da222cf3fd85020d392da2e8b160fc103066576e21f75039751db9178aacf83be44e6930a9e38c927e279e147ea18 - languageName: node - linkType: hard - -"@sentry/vercel-edge@npm:8.28.0": - version: 8.28.0 - resolution: "@sentry/vercel-edge@npm:8.28.0" - dependencies: - "@sentry/core": 8.28.0 - "@sentry/types": 8.28.0 - "@sentry/utils": 8.28.0 - checksum: 68e5e75bb573863c6ebf9cf0a387531a8557f62cd43d55fc29356693e3b135670f64a0875de73eb4d0c7de2a8f66cbba5b3e928c1a0a761a830c6e3f8d26faee + "@opentelemetry/api": ^1.9.0 + "@opentelemetry/resources": ^1.30.1 + "@opentelemetry/semantic-conventions": ^1.34.0 + "@sentry/core": 9.40.0 + "@sentry/opentelemetry": 9.40.0 + checksum: 7c9895a73530c335ce3b146fdba12a2782e32c592d984c4de357a1a787050f13c5c94be3d457329ce4e5143e05980aed65f901915d39e7076c9ef40908ca2845 languageName: node linkType: hard -"@sentry/webpack-plugin@npm:2.22.3": - version: 2.22.3 - resolution: "@sentry/webpack-plugin@npm:2.22.3" +"@sentry/webpack-plugin@npm:^3.5.0": + version: 3.6.1 + resolution: "@sentry/webpack-plugin@npm:3.6.1" dependencies: - "@sentry/bundler-plugin-core": 2.22.3 + "@sentry/bundler-plugin-core": 3.6.1 unplugin: 1.0.1 uuid: ^9.0.0 peerDependencies: webpack: ">=4.40.0" - checksum: f6eb12337e35d6514b750acf6bee75227fec7da142a62b660a864e48a3ece6b7d7e96dc8a3c126ebb650ea8acaa6b423399a31a6f48e59e51708965745d3a3f4 + checksum: 171a9cbaf76cc5bedb0e423103e63ed5f138fc0bb6427b369aade7acc0c925497bb755479325cb3aa880b98a40bab13dd1abbcc4f9300e5f930b5d97924b9157 languageName: node linkType: hard @@ -5692,12 +5896,12 @@ __metadata: languageName: node linkType: hard -"@types/connect@npm:3.4.36": - version: 3.4.36 - resolution: "@types/connect@npm:3.4.36" +"@types/connect@npm:3.4.38": + version: 3.4.38 + resolution: "@types/connect@npm:3.4.38" dependencies: "@types/node": "*" - checksum: 4dee3d966fb527b98f0cbbdcf6977c9193fc3204ed539b7522fe5e64dfa45f9017bdda4ffb1f760062262fce7701a0ee1c2f6ce2e50af36c74d4e37052303172 + checksum: 7eb1bc5342a9604facd57598a6c62621e244822442976c443efb84ff745246b10d06e8b309b6e80130026a396f19bf6793b7cecd7380169f369dac3bfc46fb99 languageName: node linkType: hard @@ -5808,6 +6012,13 @@ __metadata: languageName: node linkType: hard +"@types/estree@npm:1.0.8": + version: 1.0.8 + resolution: "@types/estree@npm:1.0.8" + checksum: bd93e2e415b6f182ec4da1074e1f36c480f1d26add3e696d54fb30c09bc470897e41361c8fd957bf0985024f8fbf1e6e2aff977d79352ef7eb93a5c6dcff6c11 + languageName: node + linkType: hard + "@types/estree@npm:^0.0.51": version: 0.0.51 resolution: "@types/estree@npm:0.0.51" @@ -5988,12 +6199,12 @@ __metadata: languageName: node linkType: hard -"@types/mysql@npm:2.15.22": - version: 2.15.22 - resolution: "@types/mysql@npm:2.15.22" +"@types/mysql@npm:2.15.26": + version: 2.15.26 + resolution: "@types/mysql@npm:2.15.26" dependencies: "@types/node": "*" - checksum: 325120f027b04052b3ed056fef096d186ecc0988d9efe110a52bd3f2233d02e17fb802ea42da7fa1ae1d150b0194cddf56ff71bfb28411bc05361f947b0635af + checksum: c43395643aca3565492a12f7bb7168cea7f5fa1b6539caabc99e657bbbea3ef330d65e8d8fc873fedfbbbed48a01ac8c1ce0d31c7989cd44a4845b32253daf6c languageName: node linkType: hard @@ -6067,12 +6278,12 @@ __metadata: languageName: node linkType: hard -"@types/pg-pool@npm:2.0.4": - version: 2.0.4 - resolution: "@types/pg-pool@npm:2.0.4" +"@types/pg-pool@npm:2.0.6": + version: 2.0.6 + resolution: "@types/pg-pool@npm:2.0.6" dependencies: "@types/pg": "*" - checksum: 5ae1c49fe1820ec011f8e2a877198a62f4c9795d2cc340dff4527c26f24ee22dffe99a8ca5cdec6edb54613bded820cc51256fb668e0eb4d22794181b94fad82 + checksum: cc54ce97115effc982bd052f79901a78215e76554aca0ecc92e78eb907e4fb2962924039369cd9aaf48075f1637593ce14647c62d3a2eb03789ce5d1c6df750b languageName: node linkType: hard @@ -6199,13 +6410,22 @@ __metadata: languageName: node linkType: hard -"@types/shimmer@npm:^1.0.2": +"@types/shimmer@npm:^1.2.0": version: 1.2.0 resolution: "@types/shimmer@npm:1.2.0" checksum: f081a31d826ce7bfe8cc7ba8129d2b1dffae44fd580eba4fcf741237646c4c2494ae6de2cada4b7713d138f35f4bc512dbf01311d813dee82020f97d7d8c491c languageName: node linkType: hard +"@types/tedious@npm:^4.0.14": + version: 4.0.14 + resolution: "@types/tedious@npm:4.0.14" + dependencies: + "@types/node": "*" + checksum: 88505dda8b8e57e1da58ce74fb29bc2b4d64d90e9c34dc1d4b4010116b9785e23ce43f1e8016901bd27037e17d9d148e34d4ebd5f57d060212847e0df91cf024 + languageName: node + linkType: hard + "@types/unist@npm:^2.0.0": version: 2.0.7 resolution: "@types/unist@npm:2.0.7" @@ -6892,6 +7112,15 @@ __metadata: languageName: node linkType: hard +"acorn@npm:^8.14.0, acorn@npm:^8.9.0": + version: 8.15.0 + resolution: "acorn@npm:8.15.0" + bin: + acorn: bin/acorn + checksum: 309c6b49aedf1a2e34aaf266de06de04aab6eb097c02375c66fdeb0f64556a6a823540409914fb364d9a11bc30d79d485a2eba29af47992d3490e9886c4391c3 + languageName: node + linkType: hard + "acorn@npm:^8.4.1, acorn@npm:^8.7.1, acorn@npm:^8.8.0, acorn@npm:^8.8.2": version: 8.10.0 resolution: "acorn@npm:8.10.0" @@ -6910,15 +7139,6 @@ __metadata: languageName: node linkType: hard -"acorn@npm:^8.9.0": - version: 8.15.0 - resolution: "acorn@npm:8.15.0" - bin: - acorn: bin/acorn - checksum: 309c6b49aedf1a2e34aaf266de06de04aab6eb097c02375c66fdeb0f64556a6a823540409914fb364d9a11bc30d79d485a2eba29af47992d3490e9886c4391c3 - languageName: node - linkType: hard - "address@npm:^1.0.1": version: 1.2.2 resolution: "address@npm:1.2.2" @@ -10957,6 +11177,18 @@ __metadata: languageName: node linkType: hard +"fdir@npm:^6.2.0": + version: 6.4.6 + resolution: "fdir@npm:6.4.6" + peerDependencies: + picomatch: ^3 || ^4 + peerDependenciesMeta: + picomatch: + optional: true + checksum: fe9f3014901d023cf631831dcb9eae5447f4d7f69218001dd01ecf007eccc40f6c129a04411b5cc273a5f93c14e02e971e17270afc9022041c80be924091eb6f + languageName: node + linkType: hard + "fetch-cookie@npm:^2.1.0": version: 2.1.0 resolution: "fetch-cookie@npm:2.1.0" @@ -11240,6 +11472,13 @@ __metadata: languageName: node linkType: hard +"forwarded-parse@npm:2.1.2": + version: 2.1.2 + resolution: "forwarded-parse@npm:2.1.2" + checksum: fca4df8898248d123d9d29a9fdf48005dd757366c2c17c1e195e8311a9aa89caf9f5e592f58f7d3d635087675ff39e85c32c6205838510f6f1fa4109de519930 + languageName: node + linkType: hard + "forwarded@npm:0.2.0": version: 0.2.0 resolution: "forwarded@npm:0.2.0" @@ -11739,22 +11978,6 @@ __metadata: languageName: node linkType: hard -"glob@npm:^10.4.1": - version: 10.4.5 - resolution: "glob@npm:10.4.5" - dependencies: - foreground-child: ^3.1.0 - jackspeak: ^3.1.2 - minimatch: ^9.0.4 - minipass: ^7.1.2 - package-json-from-dist: ^1.0.0 - path-scurry: ^1.11.1 - bin: - glob: dist/esm/bin.mjs - checksum: 0bc725de5e4862f9f387fd0f2b274baf16850dcd2714502ccf471ee401803997983e2c05590cb65f9675a3c6f2a58e7a53f9e365704108c6ad3cbf1d60934c4a - languageName: node - linkType: hard - "glob@npm:^7.0.0, glob@npm:^7.1.3, glob@npm:^7.1.4": version: 7.2.3 resolution: "glob@npm:7.2.3" @@ -12318,7 +12541,7 @@ __metadata: "@mantine/notifications": ^7.13.4 "@mux/mux-video-react": ^0.11.4 "@prisma/client": ^5.21.1 - "@sentry/nextjs": ^8.28.0 + "@sentry/nextjs": ^9.40.0 "@slack/bolt": ^4.0.0 "@storybook/addon-essentials": ^7.0.27 "@storybook/addon-interactions": ^7.0.27 @@ -12569,19 +12792,19 @@ __metadata: languageName: node linkType: hard -"import-in-the-middle@npm:1.7.1": - version: 1.7.1 - resolution: "import-in-the-middle@npm:1.7.1" +"import-in-the-middle@npm:^1.14.2": + version: 1.14.2 + resolution: "import-in-the-middle@npm:1.14.2" dependencies: - acorn: ^8.8.2 - acorn-import-assertions: ^1.9.0 + acorn: ^8.14.0 + acorn-import-attributes: ^1.9.5 cjs-module-lexer: ^1.2.2 module-details-from-path: ^1.0.3 - checksum: 37cc8c75fb7eac60611bafafea7fc60f794d0931fdabcec516c8a26effe69e914b1f7e8116e98549c6fdd1fe88dcaebfdebf35d7f52c761b48b312e40f3bf323 + checksum: afa323d909f252e35ba8caa10db7f9c6cac84aa7a1f885c933a1e93b0c736eff866fb43f9c8ee7516aa8bc507a7d4d4c7fac6ff74088252141a44cb153aeefaa languageName: node linkType: hard -"import-in-the-middle@npm:^1.11.0, import-in-the-middle@npm:^1.8.1": +"import-in-the-middle@npm:^1.8.1": version: 1.11.0 resolution: "import-in-the-middle@npm:1.11.0" dependencies: @@ -13399,19 +13622,6 @@ __metadata: languageName: node linkType: hard -"jackspeak@npm:^3.1.2": - version: 3.4.3 - resolution: "jackspeak@npm:3.4.3" - dependencies: - "@isaacs/cliui": ^8.0.2 - "@pkgjs/parseargs": ^0.11.0 - dependenciesMeta: - "@pkgjs/parseargs": - optional: true - checksum: be31027fc72e7cc726206b9f560395604b82e0fddb46c4cbf9f97d049bcef607491a5afc0699612eaa4213ca5be8fd3e1e7cd187b3040988b65c9489838a7c00 - languageName: node - linkType: hard - "jake@npm:^10.8.5": version: 10.8.7 resolution: "jake@npm:10.8.7" @@ -14455,21 +14665,21 @@ __metadata: languageName: node linkType: hard -"minimatch@npm:^9.0.1": - version: 9.0.3 - resolution: "minimatch@npm:9.0.3" +"minimatch@npm:^9.0.0, minimatch@npm:^9.0.4": + version: 9.0.5 + resolution: "minimatch@npm:9.0.5" dependencies: brace-expansion: ^2.0.1 - checksum: 253487976bf485b612f16bf57463520a14f512662e592e95c571afdab1442a6a6864b6c88f248ce6fc4ff0b6de04ac7aa6c8bb51e868e99d1d65eb0658a708b5 + checksum: 2c035575eda1e50623c731ec6c14f65a85296268f749b9337005210bb2b34e2705f8ef1a358b188f69892286ab99dc42c8fb98a57bde55c8d81b3023c19cea28 languageName: node linkType: hard -"minimatch@npm:^9.0.4": - version: 9.0.5 - resolution: "minimatch@npm:9.0.5" +"minimatch@npm:^9.0.1": + version: 9.0.3 + resolution: "minimatch@npm:9.0.3" dependencies: brace-expansion: ^2.0.1 - checksum: 2c035575eda1e50623c731ec6c14f65a85296268f749b9337005210bb2b34e2705f8ef1a358b188f69892286ab99dc42c8fb98a57bde55c8d81b3023c19cea28 + checksum: 253487976bf485b612f16bf57463520a14f512662e592e95c571afdab1442a6a6864b6c88f248ce6fc4ff0b6de04ac7aa6c8bb51e868e99d1d65eb0658a708b5 languageName: node linkType: hard @@ -14561,13 +14771,6 @@ __metadata: languageName: node linkType: hard -"minipass@npm:^7.1.2": - version: 7.1.2 - resolution: "minipass@npm:7.1.2" - checksum: 2bfd325b95c555f2b4d2814d49325691c7bee937d753814861b0b49d5edcda55cbbf22b6b6a60bb91eddac8668771f03c5ff647dcd9d0f798e9548b9cdc46ee3 - languageName: node - linkType: hard - "minizlib@npm:^2.1.1, minizlib@npm:^2.1.2": version: 2.1.2 resolution: "minizlib@npm:2.1.2" @@ -15314,18 +15517,6 @@ __metadata: languageName: node linkType: hard -"opentelemetry-instrumentation-fetch-node@npm:1.2.3": - version: 1.2.3 - resolution: "opentelemetry-instrumentation-fetch-node@npm:1.2.3" - dependencies: - "@opentelemetry/instrumentation": ^0.46.0 - "@opentelemetry/semantic-conventions": ^1.17.0 - peerDependencies: - "@opentelemetry/api": ^1.6.0 - checksum: 1249388c22c5942572895031c7adb355b9563685cc9f773f617a524ca0033f62ad4c904001088a53c433998ca68ce44fe17ed04f04179374f56a5d6b610a9c83 - languageName: node - linkType: hard - "optionator@npm:^0.9.3": version: 0.9.3 resolution: "optionator@npm:0.9.3" @@ -15490,13 +15681,6 @@ __metadata: languageName: node linkType: hard -"package-json-from-dist@npm:^1.0.0": - version: 1.0.0 - resolution: "package-json-from-dist@npm:1.0.0" - checksum: ac706ec856a5a03f5261e4e48fa974f24feb044d51f84f8332e2af0af04fbdbdd5bbbfb9cbbe354190409bc8307c83a9e38c6672c3c8855f709afb0006a009ea - languageName: node - linkType: hard - "pako@npm:~0.2.0": version: 0.2.9 resolution: "pako@npm:0.2.9" @@ -15645,7 +15829,7 @@ __metadata: languageName: node linkType: hard -"path-scurry@npm:^1.11.1, path-scurry@npm:^1.6.1": +"path-scurry@npm:^1.6.1": version: 1.11.1 resolution: "path-scurry@npm:1.11.1" dependencies: @@ -15784,6 +15968,13 @@ __metadata: languageName: node linkType: hard +"picomatch@npm:^4.0.2": + version: 4.0.3 + resolution: "picomatch@npm:4.0.3" + checksum: 6817fb74eb745a71445debe1029768de55fd59a42b75606f478ee1d0dc1aa6e78b711d041a7c9d5550e042642029b7f373dc1a43b224c4b7f12d23436735dba0 + languageName: node + linkType: hard + "pidtree@npm:0.6.0": version: 0.6.0 resolution: "pidtree@npm:0.6.0" @@ -17414,17 +17605,78 @@ __metadata: languageName: node linkType: hard -"rollup@npm:3.29.4": - version: 3.29.4 - resolution: "rollup@npm:3.29.4" - dependencies: +"rollup@npm:^4.35.0": + version: 4.45.1 + resolution: "rollup@npm:4.45.1" + dependencies: + "@rollup/rollup-android-arm-eabi": 4.45.1 + "@rollup/rollup-android-arm64": 4.45.1 + "@rollup/rollup-darwin-arm64": 4.45.1 + "@rollup/rollup-darwin-x64": 4.45.1 + "@rollup/rollup-freebsd-arm64": 4.45.1 + "@rollup/rollup-freebsd-x64": 4.45.1 + "@rollup/rollup-linux-arm-gnueabihf": 4.45.1 + "@rollup/rollup-linux-arm-musleabihf": 4.45.1 + "@rollup/rollup-linux-arm64-gnu": 4.45.1 + "@rollup/rollup-linux-arm64-musl": 4.45.1 + "@rollup/rollup-linux-loongarch64-gnu": 4.45.1 + "@rollup/rollup-linux-powerpc64le-gnu": 4.45.1 + "@rollup/rollup-linux-riscv64-gnu": 4.45.1 + "@rollup/rollup-linux-riscv64-musl": 4.45.1 + "@rollup/rollup-linux-s390x-gnu": 4.45.1 + "@rollup/rollup-linux-x64-gnu": 4.45.1 + "@rollup/rollup-linux-x64-musl": 4.45.1 + "@rollup/rollup-win32-arm64-msvc": 4.45.1 + "@rollup/rollup-win32-ia32-msvc": 4.45.1 + "@rollup/rollup-win32-x64-msvc": 4.45.1 + "@types/estree": 1.0.8 fsevents: ~2.3.2 dependenciesMeta: + "@rollup/rollup-android-arm-eabi": + optional: true + "@rollup/rollup-android-arm64": + optional: true + "@rollup/rollup-darwin-arm64": + optional: true + "@rollup/rollup-darwin-x64": + optional: true + "@rollup/rollup-freebsd-arm64": + optional: true + "@rollup/rollup-freebsd-x64": + optional: true + "@rollup/rollup-linux-arm-gnueabihf": + optional: true + "@rollup/rollup-linux-arm-musleabihf": + optional: true + "@rollup/rollup-linux-arm64-gnu": + optional: true + "@rollup/rollup-linux-arm64-musl": + optional: true + "@rollup/rollup-linux-loongarch64-gnu": + optional: true + "@rollup/rollup-linux-powerpc64le-gnu": + optional: true + "@rollup/rollup-linux-riscv64-gnu": + optional: true + "@rollup/rollup-linux-riscv64-musl": + optional: true + "@rollup/rollup-linux-s390x-gnu": + optional: true + "@rollup/rollup-linux-x64-gnu": + optional: true + "@rollup/rollup-linux-x64-musl": + optional: true + "@rollup/rollup-win32-arm64-msvc": + optional: true + "@rollup/rollup-win32-ia32-msvc": + optional: true + "@rollup/rollup-win32-x64-msvc": + optional: true fsevents: optional: true bin: rollup: dist/bin/rollup - checksum: 8bb20a39c8d91130825159c3823eccf4dc2295c9a0a5c4ed851a5bf2167dbf24d9a29f23461a54c955e5506395e6cc188eafc8ab0e20399d7489fb33793b184e + checksum: 3a84cad560ed0f7a15bc6b8408a52a103c624c1748ef47bbbb845a0dc352a294717754cd6158bdbcade9c1aa82f527a5d28e3640ac6f1458e3f7590fd1f31a4e languageName: node linkType: hard From 4375a235fc62dcbeac050d82dcebd98aa91848cd Mon Sep 17 00:00:00 2001 From: Mia Moir Date: Thu, 24 Jul 2025 09:50:42 +0100 Subject: [PATCH 8/8] Update prisma and slack bolt --- ...ent.config.ts => instrumentation-client.ts | 2 + lib/db/schema.prisma | 2 +- lib/env.ts | 3 + lib/slack/slackApiConnection.ts | 5 +- next.config.build.js | 3 - next.config.js | 3 - package.json | 9 +- yarn.lock | 331 +++++++++--------- 8 files changed, 190 insertions(+), 168 deletions(-) rename sentry.client.config.ts => instrumentation-client.ts (95%) diff --git a/sentry.client.config.ts b/instrumentation-client.ts similarity index 95% rename from sentry.client.config.ts rename to instrumentation-client.ts index 6e1e5e54..4529da57 100644 --- a/sentry.client.config.ts +++ b/instrumentation-client.ts @@ -43,3 +43,5 @@ Sentry.init({ return event; }, }); + +export const onRouterTransitionStart = Sentry.captureRouterTransitionStart; diff --git a/lib/db/schema.prisma b/lib/db/schema.prisma index d9ba6905..7d68063f 100644 --- a/lib/db/schema.prisma +++ b/lib/db/schema.prisma @@ -1,6 +1,6 @@ generator client { provider = "prisma-client-js" - previewFeatures = ["postgresqlExtensions", "tracing", "fullTextSearch"] + previewFeatures = ["postgresqlExtensions", "fullTextSearchPostgres"] } generator json { diff --git a/lib/env.ts b/lib/env.ts index e0949b48..b99a6537 100644 --- a/lib/env.ts +++ b/lib/env.ts @@ -1,6 +1,9 @@ +import dotenv from "dotenv"; import { exit } from "process"; import { z } from "zod"; +dotenv.config({ quiet: true }); + const slackEnvType = process.env.SLACK_ENABLED == "true" ? z.string({ diff --git a/lib/slack/slackApiConnection.ts b/lib/slack/slackApiConnection.ts index 08d47bc1..a9fb7eb3 100644 --- a/lib/slack/slackApiConnection.ts +++ b/lib/slack/slackApiConnection.ts @@ -23,8 +23,11 @@ function slackApiConnection(): App { } export function createSlackApp(): App { + if ((globalThis as unknown as { slackApp: App | undefined }).slackApp) + return (globalThis as unknown as { slackApp: App }).slackApp; + invariant( - (globalThis as unknown as { slackApp: App | undefined }).slackApp, + !(globalThis as unknown as { slackApp: App | undefined }).slackApp, "createSlackApp was called but a global app already exists", ); diff --git a/next.config.build.js b/next.config.build.js index 16b5334b..e83ae507 100644 --- a/next.config.build.js +++ b/next.config.build.js @@ -3,9 +3,6 @@ const { withSentryConfig } = require("@sentry/nextjs"); /** @type {import('next').NextConfig} */ const nextConfig = { - experimental: { - instrumentationHook: true, - }, images: { remotePatterns: [ // User avatars diff --git a/next.config.js b/next.config.js index f14fb4af..6d12d5c3 100644 --- a/next.config.js +++ b/next.config.js @@ -11,9 +11,6 @@ const sentryRelease = `${version}-${gitCommit.slice(0, 7)}`; /** @type {import('next').NextConfig} */ const nextConfig = { output: "standalone", - experimental: { - instrumentationHook: true, - }, images: { remotePatterns: [ // User avatars diff --git a/package.json b/package.json index f7831590..74e3d415 100644 --- a/package.json +++ b/package.json @@ -43,9 +43,9 @@ "@mantine/modals": "^7.13.4", "@mantine/notifications": "^7.13.4", "@mux/mux-video-react": "^0.11.4", - "@prisma/client": "^5.21.1", + "@prisma/client": "^6.12.0", "@sentry/nextjs": "^9.40.0", - "@slack/bolt": "^4.0.0", + "@slack/bolt": "^4.4.0", "@tanstack/react-query": "^5.51.23", "@trpc/server": "^10.33.1", "@types/async": "^3.2.20", @@ -62,6 +62,7 @@ "crypto": "^1.0.1", "date-fns": "^2.30.0", "dayjs": "^1.11.10", + "dotenv": "^17.2.0", "eslint": "^8", "eslint-config-next": "^15.4.3", "fast-xml-parser": "^4.2.5", @@ -117,8 +118,8 @@ "postcss-simple-vars": "^7.0.1", "prettier": "^3.0.3", "prettier-plugin-tailwindcss": "^0.4.0", - "prisma": "^5.21.1", - "prisma-json-types-generator": "^3.0.2", + "prisma": "^6.12.0", + "prisma-json-types-generator": "^3.5.1", "sharp": "^0.32.3", "storybook": "^7.0.27", "tailwindcss-animate": "^1.0.7", diff --git a/yarn.lock b/yarn.lock index 7da4a9f4..f8e28714 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3826,15 +3826,27 @@ __metadata: languageName: node linkType: hard -"@prisma/client@npm:^5.21.1": - version: 5.21.1 - resolution: "@prisma/client@npm:5.21.1" +"@prisma/client@npm:^6.12.0": + version: 6.12.0 + resolution: "@prisma/client@npm:6.12.0" peerDependencies: prisma: "*" + typescript: ">=5.1.0" peerDependenciesMeta: prisma: optional: true - checksum: 4514e8805073c31ac91196870b732f191a911e64983857a7bd41638d30d6a75ac1dd79173a6d2ddf2cdf62546e4229936d27ba803a8bc82aad3c2c51f54288ec + typescript: + optional: true + checksum: 3d6d9354b57872b58b97c01e3e90d1359d9dc47fd081f0db8ce81af0b3a1f5277678424c5a5a2f6a801ec0c87db3612da1e8be18913ee62ec54e6b4428eb6c96 + languageName: node + linkType: hard + +"@prisma/config@npm:6.12.0": + version: 6.12.0 + resolution: "@prisma/config@npm:6.12.0" + dependencies: + jiti: 2.4.2 + checksum: b06b8fb9f8f07e44dcba250e059551d0439c82b5c2957385d5132e9040e7e40e5bc7bc3620cc671092b880552ad6f7247ae76d8288851ab06c8d01bfba6c7dfc languageName: node linkType: hard @@ -3849,63 +3861,58 @@ __metadata: languageName: node linkType: hard -"@prisma/debug@npm:5.21.1": - version: 5.21.1 - resolution: "@prisma/debug@npm:5.21.1" - checksum: f329c4fa6f317d6f1c42f07402a51c20435d206d152f66a0021b3aaa014e2c0199fcbdb25f9131bbb9c2e266ea2f81c0c318d2db9e42ae134184141011084bb7 +"@prisma/debug@npm:6.12.0": + version: 6.12.0 + resolution: "@prisma/debug@npm:6.12.0" + checksum: eebf9aed967964f8187cc7b3df0205e25f99a2874163b09031a7283748f038d841a076809b1c593a01dc198d1736f562f11b06e66be01edbf1642a3a2f357174 languageName: node linkType: hard -"@prisma/debug@npm:5.4.1": - version: 5.4.1 - resolution: "@prisma/debug@npm:5.4.1" - dependencies: - "@types/debug": 4.1.9 - debug: 4.3.4 - strip-ansi: 6.0.1 - checksum: 9f1f7ec89393fa6226fade21cb72ec83d2d5d519b68a69d3420a39cbf600746dc4f49ea8e0fffbeba1dacb514f1e94af0398392d23da5dc2b62beaba176b7202 +"@prisma/dmmf@npm:6.12.0": + version: 6.12.0 + resolution: "@prisma/dmmf@npm:6.12.0" + checksum: abddd6c3c80a06195ba1ee97f08634322cfa5cd020fac7f369e5a65a719aa0b48c8de1f78da09339d07bc9fd5cbc9bd7b45afcb05fb42cd0f6ddf4f94ac32625 languageName: node linkType: hard -"@prisma/engines-version@npm:5.21.1-1.bf0e5e8a04cada8225617067eaa03d041e2bba36": - version: 5.21.1-1.bf0e5e8a04cada8225617067eaa03d041e2bba36 - resolution: "@prisma/engines-version@npm:5.21.1-1.bf0e5e8a04cada8225617067eaa03d041e2bba36" - checksum: 8ec736023d458a44657b05c1502993f143cdb604fd8a49bc3fb5d03ddf265ebeeab217f2a45bbf2400c4c4f58c5a3c7e726523079523e37c541defcf4be188f2 +"@prisma/engines-version@npm:6.12.0-15.8047c96bbd92db98a2abc7c9323ce77c02c89dbc": + version: 6.12.0-15.8047c96bbd92db98a2abc7c9323ce77c02c89dbc + resolution: "@prisma/engines-version@npm:6.12.0-15.8047c96bbd92db98a2abc7c9323ce77c02c89dbc" + checksum: 108e213a2cc3f85cf11c74c8b17f16f89b36cfc1a2146f918c935da0b9f9f3b0b1c59cdb4edf30c81767182ab9de5730330105af25d8b9cb6eacf400be4f7dfd languageName: node linkType: hard -"@prisma/engines@npm:5.21.1": - version: 5.21.1 - resolution: "@prisma/engines@npm:5.21.1" +"@prisma/engines@npm:6.12.0": + version: 6.12.0 + resolution: "@prisma/engines@npm:6.12.0" dependencies: - "@prisma/debug": 5.21.1 - "@prisma/engines-version": 5.21.1-1.bf0e5e8a04cada8225617067eaa03d041e2bba36 - "@prisma/fetch-engine": 5.21.1 - "@prisma/get-platform": 5.21.1 - checksum: 4b184f88aa4324819a1aa4ff0f4f4e1c8d89b5290070c778585cbd90d8d71a4a41d7322d773a4f09a324bb7fc59e2182f9c35374c420571088bf91891f9642a8 + "@prisma/debug": 6.12.0 + "@prisma/engines-version": 6.12.0-15.8047c96bbd92db98a2abc7c9323ce77c02c89dbc + "@prisma/fetch-engine": 6.12.0 + "@prisma/get-platform": 6.12.0 + checksum: ab52544ce07ca375f4dbda448952a9ae7a920f9aa0385a7a02a082a12392c20fa2a0e450951dd4255a9918ec92ef4acc87290993c3bb9fa2cd55c4600b6c8919 languageName: node linkType: hard -"@prisma/fetch-engine@npm:5.21.1": - version: 5.21.1 - resolution: "@prisma/fetch-engine@npm:5.21.1" +"@prisma/fetch-engine@npm:6.12.0": + version: 6.12.0 + resolution: "@prisma/fetch-engine@npm:6.12.0" dependencies: - "@prisma/debug": 5.21.1 - "@prisma/engines-version": 5.21.1-1.bf0e5e8a04cada8225617067eaa03d041e2bba36 - "@prisma/get-platform": 5.21.1 - checksum: b3d816545a261ee486d5b0b43d22474e49110a70bb7f4cdf1dd8177e7ccfc6ba9c9e9172ded4a806e545e8bdded049fd37da92878e3b5087017c98b30516a56e + "@prisma/debug": 6.12.0 + "@prisma/engines-version": 6.12.0-15.8047c96bbd92db98a2abc7c9323ce77c02c89dbc + "@prisma/get-platform": 6.12.0 + checksum: 16ebe12e4d9ae03defcc08fee43cc8f4cd29edf57032df1c88070576fb23dd99de3dbc10a6dea702c8e5ff24e57e99efc050a7c65821b1c1a4575eac64a19540 languageName: node linkType: hard -"@prisma/generator-helper@npm:5.4.1": - version: 5.4.1 - resolution: "@prisma/generator-helper@npm:5.4.1" +"@prisma/generator-helper@npm:^6.11.0": + version: 6.12.0 + resolution: "@prisma/generator-helper@npm:6.12.0" dependencies: - "@prisma/debug": 5.4.1 - "@types/cross-spawn": 6.0.3 - cross-spawn: 7.0.3 - kleur: 4.1.5 - checksum: 8820ded3eb6719aa0a9540c749fce1a0b18e3c7ff4b15f4dbc694175b6cb32483bae109b9ded2b7d54c595b723f8a1896e488650f80643cc511323f9852ea142 + "@prisma/debug": 6.12.0 + "@prisma/dmmf": 6.12.0 + "@prisma/generator": 6.12.0 + checksum: dd16234272ca4dc613b08d39110503393b87109149aa7bc58c61dabe0816d70d108c36a0b15174ec3323dd037c8095d237eceadee0a68963edffb67189ddf0a5 languageName: node linkType: hard @@ -3921,12 +3928,19 @@ __metadata: languageName: node linkType: hard -"@prisma/get-platform@npm:5.21.1": - version: 5.21.1 - resolution: "@prisma/get-platform@npm:5.21.1" +"@prisma/generator@npm:6.12.0": + version: 6.12.0 + resolution: "@prisma/generator@npm:6.12.0" + checksum: 8fac10c85e59bf441398baf443765e3ecf72df6d844ce63f4dba3061379a833dba3b6d7096fb5da2a564f0551df5a200f9ca529e4d7dede97d42e715c6a90a46 + languageName: node + linkType: hard + +"@prisma/get-platform@npm:6.12.0": + version: 6.12.0 + resolution: "@prisma/get-platform@npm:6.12.0" dependencies: - "@prisma/debug": 5.21.1 - checksum: d53edfd9cac8a55fa1b8fbf55c3f0d87c52f695904b936985cf14e25853a2e74b79c35a370e3f36135185ffb589cc7aa98cefc22193e6783bb995b1a91e26d00 + "@prisma/debug": 6.12.0 + checksum: 64a9594088eb840fa10f3e42e3ef6428a136cb5736cb133824ce220216b5179352254e37e296568bf2afaa0db3eb8a600f120d9e91e08a1b18fb515474140112 languageName: node linkType: hard @@ -4455,22 +4469,23 @@ __metadata: languageName: node linkType: hard -"@slack/bolt@npm:^4.0.0": - version: 4.0.0 - resolution: "@slack/bolt@npm:4.0.0" +"@slack/bolt@npm:^4.4.0": + version: 4.4.0 + resolution: "@slack/bolt@npm:4.4.0" dependencies: "@slack/logger": ^4.0.0 - "@slack/oauth": ^3 - "@slack/socket-mode": ^2.0.2 - "@slack/types": ^2.13.0 - "@slack/web-api": ^7 - "@types/express": ^4.17.21 - axios: ^1.7.4 + "@slack/oauth": ^3.0.3 + "@slack/socket-mode": ^2.0.4 + "@slack/types": ^2.14.0 + "@slack/web-api": ^7.9.1 + axios: ^1.8.3 express: ^5.0.0 path-to-regexp: ^8.1.0 raw-body: ^3 tsscmp: ^1.0.6 - checksum: 1be195272e1f5ff204e57c2892daa2c0b1b8bc49cc29f8348659cce5fa8677e9dc856659ebd8d1ef02f473642f78357ca082e453a4251ef8b865e0a5985887c7 + peerDependencies: + "@types/express": ^5.0.0 + checksum: 638e9b84faebf3a7da44646d3de6f3600c7c2c155b86e62db9a2e8660743c109b1f748f80e86c4fdb395d08089e053f5ecf4017db895402818bf1e1f0b165c97 languageName: node linkType: hard @@ -4483,50 +4498,57 @@ __metadata: languageName: node linkType: hard -"@slack/oauth@npm:^3": - version: 3.0.1 - resolution: "@slack/oauth@npm:3.0.1" +"@slack/oauth@npm:^3.0.3": + version: 3.0.3 + resolution: "@slack/oauth@npm:3.0.3" dependencies: "@slack/logger": ^4 - "@slack/web-api": ^7.3.4 + "@slack/web-api": ^7.9.1 "@types/jsonwebtoken": ^9 "@types/node": ">=18" jsonwebtoken: ^9 lodash.isstring: ^4 - checksum: a0101869a7b7028fef41d437fb55858f52ebea9f10e7eacb9dbf738f169711d29828e05683de894f1698be81c34818fe2190076a1fc66ae9dc9b1f81240eb301 + checksum: 338553ee9970941fac3ff82311a1c3f2cbf275221f3bb660b23f47a88ebd2e5077f3f630f4200730933ba9ffdeb7e2c4bd9650b237d681e2dc630aac5155b272 languageName: node linkType: hard -"@slack/socket-mode@npm:^2.0.2": - version: 2.0.2 - resolution: "@slack/socket-mode@npm:2.0.2" +"@slack/socket-mode@npm:^2.0.4": + version: 2.0.4 + resolution: "@slack/socket-mode@npm:2.0.4" dependencies: "@slack/logger": ^4 - "@slack/web-api": ^7.3.4 + "@slack/web-api": ^7.9.1 "@types/node": ">=18" "@types/ws": ^8 eventemitter3: ^5 ws: ^8 - checksum: 0c7d9ddb267b03682111ea6525d24491d6b12017fe893da9110d52ee071f0b81b335affb2f3871f5d78327086d4e30c4dd91582a1932195901f943630a7ddbe4 + checksum: c1bb80ad6adfbb261e8633f49d4d0a55c81544a37ca65a35a233fcf40ab39adaaa6125e089ed99343d91fc23cce8c30a59ac96a098ded63e95e607cc9a15a30e + languageName: node + linkType: hard + +"@slack/types@npm:^2.14.0": + version: 2.15.0 + resolution: "@slack/types@npm:2.15.0" + checksum: 9c7e719d91fb206d936ab7802277141cbfeb55501ecc9f64d4b396b014ffc4fd9d1608ec957c24cf83212e5985542e1c87ec5ad5ae0abeddc00190a7a1d9b9b6 languageName: node linkType: hard -"@slack/types@npm:^2.13.0, @slack/types@npm:^2.9.0": +"@slack/types@npm:^2.9.0": version: 2.14.0 resolution: "@slack/types@npm:2.14.0" checksum: fbef74d50d0de8f16125f7178bd2e664a69eeefd827b09c6f78153957278fc4400049685c756076e7dbcabd04c22730ac783bcc5d36fd588c7749d35f02c2afd languageName: node linkType: hard -"@slack/web-api@npm:^7, @slack/web-api@npm:^7.3.4": - version: 7.6.0 - resolution: "@slack/web-api@npm:7.6.0" +"@slack/web-api@npm:^7.9.1": + version: 7.9.3 + resolution: "@slack/web-api@npm:7.9.3" dependencies: "@slack/logger": ^4.0.0 "@slack/types": ^2.9.0 "@types/node": ">=18.0.0" "@types/retry": 0.12.0 - axios: ^1.7.4 + axios: ^1.8.3 eventemitter3: ^5.0.1 form-data: ^4.0.0 is-electron: 2.2.2 @@ -4534,7 +4556,7 @@ __metadata: p-queue: ^6 p-retry: ^4 retry: ^0.13.1 - checksum: 2910e55ef6539beac64ea774978f3e1ae7648017d550cddda2ef6acd8ceb648d904e8ed23f417cad54b7a90d12eb39dbb8731b34c78509aa46be0948fd954840 + checksum: a683d92496f0f654cc5e6e8daf6618d27b2a844ea9195ae49d689ae1602b1077920e960e19bb6f85dcd71106db0101d82037dd6b3202f41eddc9a605d90d5e75 languageName: node linkType: hard @@ -5930,15 +5952,6 @@ __metadata: languageName: node linkType: hard -"@types/cross-spawn@npm:6.0.3": - version: 6.0.3 - resolution: "@types/cross-spawn@npm:6.0.3" - dependencies: - "@types/node": "*" - checksum: 06d50fa1e1370ef60b9c9085b76adec7d7bc20728fbb02b3c2061d4d922312acf1ba56a7c94d88c27a22fc6241ab6b970c936f3294038a9c97a719fbc8eb8a76 - languageName: node - linkType: hard - "@types/debug@npm:4.1.7": version: 4.1.7 resolution: "@types/debug@npm:4.1.7" @@ -5948,15 +5961,6 @@ __metadata: languageName: node linkType: hard -"@types/debug@npm:4.1.9": - version: 4.1.9 - resolution: "@types/debug@npm:4.1.9" - dependencies: - "@types/ms": "*" - checksum: e88ee8b19d106f33eb0d3bc58bacff9702e98d821fd1ebd1de8942e6b97419e19a1ccf39370f1764a1dc66f79fd4619f3412e1be6eeb9f0b76412f5ffe4ead93 - languageName: node - linkType: hard - "@types/detect-port@npm:^1.3.0": version: 1.3.3 resolution: "@types/detect-port@npm:1.3.3" @@ -6038,18 +6042,6 @@ __metadata: languageName: node linkType: hard -"@types/express@npm:^4.17.21": - version: 4.17.21 - resolution: "@types/express@npm:4.17.21" - dependencies: - "@types/body-parser": "*" - "@types/express-serve-static-core": ^4.17.33 - "@types/qs": "*" - "@types/serve-static": "*" - checksum: fb238298630370a7392c7abdc80f495ae6c716723e114705d7e3fb67e3850b3859bbfd29391463a3fb8c0b32051847935933d99e719c0478710f8098ee7091c5 - languageName: node - linkType: hard - "@types/express@npm:^4.7.0": version: 4.17.17 resolution: "@types/express@npm:4.17.17" @@ -7719,14 +7711,14 @@ __metadata: languageName: node linkType: hard -"axios@npm:^1.7.4": - version: 1.7.7 - resolution: "axios@npm:1.7.7" +"axios@npm:^1.8.3": + version: 1.11.0 + resolution: "axios@npm:1.11.0" dependencies: follow-redirects: ^1.15.6 - form-data: ^4.0.0 + form-data: ^4.0.4 proxy-from-env: ^1.1.0 - checksum: 882d4fe0ec694a07c7f5c1f68205eb6dc5a62aecdb632cc7a4a3d0985188ce3030e0b277e1a8260ac3f194d314ae342117660a151fabffdc5081ca0b5a8b47fe + checksum: 0a33dc600b588bfd3111b198d5985527ed89f722817455d7cdb66c1d055e5f8859cc2bebb7320888957fc8458ebe77d5f83af02af9cd260217c91c4e92b6dfb6 languageName: node linkType: hard @@ -9687,6 +9679,13 @@ __metadata: languageName: node linkType: hard +"dotenv@npm:^17.2.0": + version: 17.2.0 + resolution: "dotenv@npm:17.2.0" + checksum: 389d25dac7afeb1890bcd113c84d8d8175e95967559e90b8a6c8dc19bfc81ad3ede0036873c459cd8de1f90055a88232ddf74c550bcd2ea7a94b8d570f116470 + languageName: node + linkType: hard + "dunder-proto@npm:^1.0.0, dunder-proto@npm:^1.0.1": version: 1.0.1 resolution: "dunder-proto@npm:1.0.1" @@ -11472,6 +11471,19 @@ __metadata: languageName: node linkType: hard +"form-data@npm:^4.0.4": + version: 4.0.4 + resolution: "form-data@npm:4.0.4" + dependencies: + asynckit: ^0.4.0 + combined-stream: ^1.0.8 + es-set-tostringtag: ^2.1.0 + hasown: ^2.0.2 + mime-types: ^2.1.12 + checksum: 9b7788836df9fa5a6999e0c02515b001946b2a868cfe53f026c69e2c537a2ff9fbfb8e9d2b678744628f3dc7a2d6e14e4e45dfaf68aa6239727f0bdb8ce0abf2 + languageName: node + linkType: hard + "forwarded-parse@npm:2.1.2": version: 2.1.2 resolution: "forwarded-parse@npm:2.1.2" @@ -11575,16 +11587,6 @@ __metadata: languageName: node linkType: hard -"fsevents@npm:2.3.3, fsevents@npm:~2.3.3": - version: 2.3.3 - resolution: "fsevents@npm:2.3.3" - dependencies: - node-gyp: latest - checksum: 11e6ea6fea15e42461fc55b4b0e4a0a3c654faa567f1877dbd353f39156f69def97a69936d1746619d656c4b93de2238bf731f6085a03a50cabf287c9d024317 - conditions: os=darwin - languageName: node - linkType: hard - "fsevents@npm:^2.3.2, fsevents@npm:~2.3.2": version: 2.3.2 resolution: "fsevents@npm:2.3.2" @@ -11595,11 +11597,12 @@ __metadata: languageName: node linkType: hard -"fsevents@patch:fsevents@2.3.3#~builtin, fsevents@patch:fsevents@~2.3.3#~builtin": +"fsevents@npm:~2.3.3": version: 2.3.3 - resolution: "fsevents@patch:fsevents@npm%3A2.3.3#~builtin::version=2.3.3&hash=df0bf1" + resolution: "fsevents@npm:2.3.3" dependencies: node-gyp: latest + checksum: 11e6ea6fea15e42461fc55b4b0e4a0a3c654faa567f1877dbd353f39156f69def97a69936d1746619d656c4b93de2238bf731f6085a03a50cabf287c9d024317 conditions: os=darwin languageName: node linkType: hard @@ -11613,6 +11616,15 @@ __metadata: languageName: node linkType: hard +"fsevents@patch:fsevents@~2.3.3#~builtin": + version: 2.3.3 + resolution: "fsevents@patch:fsevents@npm%3A2.3.3#~builtin::version=2.3.3&hash=df0bf1" + dependencies: + node-gyp: latest + conditions: os=darwin + languageName: node + linkType: hard + "function-bind@npm:^1.1.1": version: 1.1.1 resolution: "function-bind@npm:1.1.1" @@ -12540,9 +12552,9 @@ __metadata: "@mantine/modals": ^7.13.4 "@mantine/notifications": ^7.13.4 "@mux/mux-video-react": ^0.11.4 - "@prisma/client": ^5.21.1 + "@prisma/client": ^6.12.0 "@sentry/nextjs": ^9.40.0 - "@slack/bolt": ^4.0.0 + "@slack/bolt": ^4.4.0 "@storybook/addon-essentials": ^7.0.27 "@storybook/addon-interactions": ^7.0.27 "@storybook/addon-links": ^7.0.27 @@ -12572,6 +12584,7 @@ __metadata: crypto: ^1.0.1 date-fns: ^2.30.0 dayjs: ^1.11.10 + dotenv: ^17.2.0 dotenv-cli: ^7.2.1 eslint: ^8 eslint-config-next: ^15.4.3 @@ -12598,8 +12611,8 @@ __metadata: postcss-simple-vars: ^7.0.1 prettier: ^3.0.3 prettier-plugin-tailwindcss: ^0.4.0 - prisma: ^5.21.1 - prisma-json-types-generator: ^3.0.2 + prisma: ^6.12.0 + prisma-json-types-generator: ^3.5.1 querystring: ^0.2.1 react: ^19.1.0 react-dom: ^19.1.0 @@ -13713,6 +13726,15 @@ __metadata: languageName: node linkType: hard +"jiti@npm:2.4.2": + version: 2.4.2 + resolution: "jiti@npm:2.4.2" + bin: + jiti: lib/jiti-cli.mjs + checksum: c6c30c7b6b293e9f26addfb332b63d964a9f143cdd2cf5e946dbe5143db89f7c1b50ad9223b77fb1f6ddb0b9c5ecef995fea024ecf7d2861d285d779cde66e1e + languageName: node + linkType: hard + "jiti@npm:^1.18.2": version: 1.19.1 resolution: "jiti@npm:1.19.1" @@ -13969,13 +13991,6 @@ __metadata: languageName: node linkType: hard -"kleur@npm:4.1.5": - version: 4.1.5 - resolution: "kleur@npm:4.1.5" - checksum: 1dc476e32741acf0b1b5b0627ffd0d722e342c1b0da14de3e8ae97821327ca08f9fb944542fb3c126d90ac5f27f9d804edbe7c585bf7d12ef495d115e0f22c12 - languageName: node - linkType: hard - "kleur@npm:^3.0.3": version: 3.0.3 resolution: "kleur@npm:3.0.3" @@ -16475,33 +16490,37 @@ __metadata: languageName: node linkType: hard -"prisma-json-types-generator@npm:^3.0.2": - version: 3.0.2 - resolution: "prisma-json-types-generator@npm:3.0.2" +"prisma-json-types-generator@npm:^3.5.1": + version: 3.5.1 + resolution: "prisma-json-types-generator@npm:3.5.1" dependencies: - "@prisma/generator-helper": 5.4.1 - tslib: 2.6.2 + "@prisma/generator-helper": ^6.11.0 + semver: ^7.7.2 + tslib: ^2.8.1 peerDependencies: - prisma: ^5.1 - typescript: ^5.1 + "@prisma/client": ~6.11 + prisma: ~6.11 + typescript: ^5.8 bin: prisma-json-types-generator: index.js - checksum: 89b901f88788ab39aa52aa9f96bb7688d9644c6e554848af7ed15f846c3e66d07bc3f48c153f43f2b2b551b2eea8f0d245b5440f26bead0c1bdb088f491b2ec9 + checksum: f596db27112b90fcd519ee6b75eabf5a5c89ec6a1ec0ccc922455159e7a05c2e2bc2072f88704e57c9476b3d573c7cb6de1ade72cb682586fdb6e79598159afb languageName: node linkType: hard -"prisma@npm:^5.21.1": - version: 5.21.1 - resolution: "prisma@npm:5.21.1" +"prisma@npm:^6.12.0": + version: 6.12.0 + resolution: "prisma@npm:6.12.0" dependencies: - "@prisma/engines": 5.21.1 - fsevents: 2.3.3 - dependenciesMeta: - fsevents: + "@prisma/config": 6.12.0 + "@prisma/engines": 6.12.0 + peerDependencies: + typescript: ">=5.1.0" + peerDependenciesMeta: + typescript: optional: true bin: prisma: build/index.js - checksum: 805f1d386d1b4f08d4319995351a0db70063e1b88a3d459c44bdad05eadf681878947a7528fc37641d0d0e314bc007d359cb8eed609d67cdce0bdae48a400053 + checksum: a8f18bfe55514048ceb2263467472032a0d0b8f2ac95510bc493c903efa57cf06dfa32bf5fdd16da360e11e86e207f1e24b258215a01efbcace4c45b39dd958c languageName: node linkType: hard @@ -19608,13 +19627,6 @@ __metadata: languageName: node linkType: hard -"tslib@npm:2.6.2, tslib@npm:^2.1.0": - version: 2.6.2 - resolution: "tslib@npm:2.6.2" - checksum: 329ea56123005922f39642318e3d1f0f8265d1e7fcb92c633e0809521da75eeaca28d2cf96d7248229deb40e5c19adf408259f4b9640afd20d13aecc1430f3ad - languageName: node - linkType: hard - "tslib@npm:^1.8.1": version: 1.14.1 resolution: "tslib@npm:1.14.1" @@ -19629,7 +19641,14 @@ __metadata: languageName: node linkType: hard -"tslib@npm:^2.8.0": +"tslib@npm:^2.1.0": + version: 2.6.2 + resolution: "tslib@npm:2.6.2" + checksum: 329ea56123005922f39642318e3d1f0f8265d1e7fcb92c633e0809521da75eeaca28d2cf96d7248229deb40e5c19adf408259f4b9640afd20d13aecc1430f3ad + languageName: node + linkType: hard + +"tslib@npm:^2.8.0, tslib@npm:^2.8.1": version: 2.8.1 resolution: "tslib@npm:2.8.1" checksum: e4aba30e632b8c8902b47587fd13345e2827fa639e7c3121074d5ee0880723282411a8838f830b55100cbe4517672f84a2472667d355b81e8af165a55dc6203a