diff --git a/.gitignore b/.gitignore index 915cd478..180b1894 100644 --- a/.gitignore +++ b/.gitignore @@ -30,4 +30,8 @@ node_modules !.pnp.loader.mjs # 생성되더라도 굳이 커밋할 필요 없는 PnP 바이너리 데이터 -.pnp.data.mdb \ No newline at end of file +.pnp.data.mdb + + +#노드 버전 관리 +.nvmrc \ No newline at end of file diff --git a/.husky/pre-commit b/.husky/pre-commit new file mode 100755 index 00000000..37236231 --- /dev/null +++ b/.husky/pre-commit @@ -0,0 +1 @@ +yarn lint-staged diff --git a/.lintstagedrc.mjs b/.lintstagedrc.mjs new file mode 100644 index 00000000..c85ea6ca --- /dev/null +++ b/.lintstagedrc.mjs @@ -0,0 +1,11 @@ +export default { + "apps/nowait-admin/src/**/*.{ts,tsx,js,jsx}": (files) => [ + `yarn workspace nowait-admin run eslint --fix ${files.join(" ")}`, + `prettier --write ${files.join(" ")}`, + ], + "apps/nowait-user/src/**/*.{ts,tsx,js,jsx}": (files) => [ + `yarn workspace nowait-user run eslint --fix ${files.join(" ")}`, + `prettier --write ${files.join(" ")}`, + ], + "**/*.{css,json,md,yaml,yml,html}": "prettier --write", +}; diff --git a/.pnp.cjs b/.pnp.cjs index a3312f0a..dd93ebeb 100644 --- a/.pnp.cjs +++ b/.pnp.cjs @@ -68,14 +68,18 @@ const RAW_RUNTIME_STATE = ["@yarnpkg/sdks", "npm:3.2.3"],\ ["clsx", "npm:2.1.1"],\ ["dompurify", "npm:3.3.0"],\ + ["eslint", "virtual:126cdbadba5e8bc60c16e5ca60a6b6a066859a2a3035538550c2863938d34232c6957439128f75a42d45e171e70ca3d5212b1883f69b095de34326e72923545d#npm:10.2.1"],\ ["framer-motion", "virtual:126cdbadba5e8bc60c16e5ca60a6b6a066859a2a3035538550c2863938d34232c6957439128f75a42d45e171e70ca3d5212b1883f69b095de34326e72923545d#npm:12.23.24"],\ ["heic2any", "npm:0.0.4"],\ ["highlight.js", "npm:11.11.1"],\ + ["husky", "npm:9.1.7"],\ ["jsqr", "npm:1.4.0"],\ + ["lint-staged", "npm:16.4.0"],\ ["lottie-react", "virtual:126cdbadba5e8bc60c16e5ca60a6b6a066859a2a3035538550c2863938d34232c6957439128f75a42d45e171e70ca3d5212b1883f69b095de34326e72923545d#npm:2.4.1"],\ ["lowlight", "npm:3.3.0"],\ ["monorepo-nowaitFE", "workspace:."],\ ["npm", "npm:11.6.2"],\ + ["prettier", "npm:3.8.3"],\ ["prop-types", "npm:15.8.1"],\ ["prosemirror-model", "npm:1.25.4"],\ ["prosemirror-state", "npm:1.4.4"],\ @@ -342,6 +346,13 @@ const RAW_RUNTIME_STATE = ["@babel/runtime", "npm:7.28.4"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:7.29.2", {\ + "packageLocation": "./.yarn/cache/@babel-runtime-npm-7.29.2-b49cad1c67-30b80a0140.zip/node_modules/@babel/runtime/",\ + "packageDependencies": [\ + ["@babel/runtime", "npm:7.29.2"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["@babel/template", [\ @@ -656,6 +667,20 @@ const RAW_RUNTIME_STATE = ],\ "linkType": "SOFT"\ }],\ + ["virtual:86aad01fa0fef138598aaa8b7f31876991da134fe3c010503de673f84dc6ec50da0fbf51501897d0809214e0b8211420a0edcc340bb7e30ec9dd6088346a9d5b#npm:4.9.0", {\ + "packageLocation": "./.yarn/__virtual__/@eslint-community-eslint-utils-virtual-c6edc29c0f/0/cache/@eslint-community-eslint-utils-npm-4.9.0-fe45a08548-8881e22d51.zip/node_modules/@eslint-community/eslint-utils/",\ + "packageDependencies": [\ + ["@eslint-community/eslint-utils", "virtual:86aad01fa0fef138598aaa8b7f31876991da134fe3c010503de673f84dc6ec50da0fbf51501897d0809214e0b8211420a0edcc340bb7e30ec9dd6088346a9d5b#npm:4.9.0"],\ + ["@types/eslint", null],\ + ["eslint", "virtual:126cdbadba5e8bc60c16e5ca60a6b6a066859a2a3035538550c2863938d34232c6957439128f75a42d45e171e70ca3d5212b1883f69b095de34326e72923545d#npm:10.2.1"],\ + ["eslint-visitor-keys", "npm:3.4.3"]\ + ],\ + "packagePeers": [\ + "@types/eslint",\ + "eslint"\ + ],\ + "linkType": "HARD"\ + }],\ ["virtual:dd20287a5a1e86b12a5b04609f98bd729fafd847d08e1fc89cdc68f92d1acf209e53b09ef0af4b6e7781d88e1f9acf94e3bf34619939e434ad5ffb0f24855eb4#npm:4.9.0", {\ "packageLocation": "./.yarn/__virtual__/@eslint-community-eslint-utils-virtual-3983e37ebe/0/cache/@eslint-community-eslint-utils-npm-4.9.0-fe45a08548-8881e22d51.zip/node_modules/@eslint-community/eslint-utils/",\ "packageDependencies": [\ @@ -704,6 +729,16 @@ const RAW_RUNTIME_STATE = ["minimatch", "npm:3.1.2"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:0.23.5", {\ + "packageLocation": "./.yarn/cache/@eslint-config-array-npm-0.23.5-2ed0814e14-b24833c4c7.zip/node_modules/@eslint/config-array/",\ + "packageDependencies": [\ + ["@eslint/config-array", "npm:0.23.5"],\ + ["@eslint/object-schema", "npm:3.0.5"],\ + ["debug", "virtual:643ed7cc338bcf145a82d8b05b3bef6bcf150ca545df386225596f10ce53cc90b88b3ca83e348ade1ccea5f3f8e76c92d2f0e2ba544da60d40aff9921c56872d#npm:4.4.3"],\ + ["minimatch", "npm:10.2.5"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["@eslint/config-helpers", [\ @@ -714,6 +749,14 @@ const RAW_RUNTIME_STATE = ["@eslint/core", "npm:0.17.0"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:0.5.5", {\ + "packageLocation": "./.yarn/cache/@eslint-config-helpers-npm-0.5.5-df2a302b83-18889c062c.zip/node_modules/@eslint/config-helpers/",\ + "packageDependencies": [\ + ["@eslint/config-helpers", "npm:0.5.5"],\ + ["@eslint/core", "npm:1.2.1"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["@eslint/core", [\ @@ -724,6 +767,14 @@ const RAW_RUNTIME_STATE = ["@types/json-schema", "npm:7.0.15"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:1.2.1", {\ + "packageLocation": "./.yarn/cache/@eslint-core-npm-1.2.1-99bf82852d-10979b4058.zip/node_modules/@eslint/core/",\ + "packageDependencies": [\ + ["@eslint/core", "npm:1.2.1"],\ + ["@types/json-schema", "npm:7.0.15"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["@eslint/eslintrc", [\ @@ -783,6 +834,13 @@ const RAW_RUNTIME_STATE = ["@eslint/object-schema", "npm:2.1.7"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:3.0.5", {\ + "packageLocation": "./.yarn/cache/@eslint-object-schema-npm-3.0.5-eb218c381f-1db337431f.zip/node_modules/@eslint/object-schema/",\ + "packageDependencies": [\ + ["@eslint/object-schema", "npm:3.0.5"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["@eslint/plugin-kit", [\ @@ -794,6 +852,15 @@ const RAW_RUNTIME_STATE = ["levn", "npm:0.4.1"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:0.7.1", {\ + "packageLocation": "./.yarn/cache/@eslint-plugin-kit-npm-0.7.1-810c4a63bf-335b0c1c46.zip/node_modules/@eslint/plugin-kit/",\ + "packageDependencies": [\ + ["@eslint/core", "npm:1.2.1"],\ + ["@eslint/plugin-kit", "npm:0.7.1"],\ + ["levn", "npm:0.4.1"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["@floating-ui/core", [\ @@ -826,6 +893,37 @@ const RAW_RUNTIME_STATE = "linkType": "HARD"\ }]\ ]],\ + ["@hello-pangea/dnd", [\ + ["npm:18.0.1", {\ + "packageLocation": "./.yarn/cache/@hello-pangea-dnd-npm-18.0.1-ce7b95f26d-30c47ac804.zip/node_modules/@hello-pangea/dnd/",\ + "packageDependencies": [\ + ["@hello-pangea/dnd", "npm:18.0.1"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["virtual:90ba738da64cc41a6a40703c7ac5e2c2c261729a24fb736c3057b9db1463c5ff20217c4c849e768425e7a5dbbcc4a4c1acbda29afa5757900668d8ef42dd597e#npm:18.0.1", {\ + "packageLocation": "./.yarn/__virtual__/@hello-pangea-dnd-virtual-42c0a787da/0/cache/@hello-pangea-dnd-npm-18.0.1-ce7b95f26d-30c47ac804.zip/node_modules/@hello-pangea/dnd/",\ + "packageDependencies": [\ + ["@babel/runtime", "npm:7.29.2"],\ + ["@hello-pangea/dnd", "virtual:90ba738da64cc41a6a40703c7ac5e2c2c261729a24fb736c3057b9db1463c5ff20217c4c849e768425e7a5dbbcc4a4c1acbda29afa5757900668d8ef42dd597e#npm:18.0.1"],\ + ["@types/react", "npm:19.2.2"],\ + ["@types/react-dom", "virtual:90ba738da64cc41a6a40703c7ac5e2c2c261729a24fb736c3057b9db1463c5ff20217c4c849e768425e7a5dbbcc4a4c1acbda29afa5757900668d8ef42dd597e#npm:19.2.2"],\ + ["css-box-model", "npm:1.2.1"],\ + ["raf-schd", "npm:4.0.3"],\ + ["react", "npm:19.2.1"],\ + ["react-dom", "virtual:90ba738da64cc41a6a40703c7ac5e2c2c261729a24fb736c3057b9db1463c5ff20217c4c849e768425e7a5dbbcc4a4c1acbda29afa5757900668d8ef42dd597e#npm:19.2.1"],\ + ["react-redux", "virtual:42c0a787da8f7633f18c8637859bcbc11b356612405d59f0cf0a069418a5338720e2333bbec45b068c28d82cad8ebb3da65475c7633ab9379240b914fd8b5d73#npm:9.2.0"],\ + ["redux", "npm:5.0.1"]\ + ],\ + "packagePeers": [\ + "@types/react-dom",\ + "@types/react",\ + "react-dom",\ + "react"\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ ["@humanfs/core", [\ ["npm:0.19.1", {\ "packageLocation": "./.yarn/cache/@humanfs-core-npm-0.19.1-e2e7aaeb6e-aa4e015217.zip/node_modules/@humanfs/core/",\ @@ -3534,7 +3632,7 @@ const RAW_RUNTIME_STATE = ["fast-deep-equal", "npm:3.1.3"],\ ["react", "npm:19.2.1"],\ ["react-dom", "virtual:90ba738da64cc41a6a40703c7ac5e2c2c261729a24fb736c3057b9db1463c5ff20217c4c849e768425e7a5dbbcc4a4c1acbda29afa5757900668d8ef42dd597e#npm:19.2.1"],\ - ["use-sync-external-store", "virtual:e314dacea767a9f63d3d862765f8461152adf0c64b5616175dfc1fd773c98964cd2e522b76c6ab2e5cb9a58c7074a3631934dfcccae9c2d830f93f0c99922157#npm:1.6.0"]\ + ["use-sync-external-store", "virtual:c4cc0dcb6e16674155eb82bccc7c0708ed0bdad8201b0e31bbcd14e66a467e93904a8ca3180a67ee210e7628e45c9b0f0ba5fb3133bc346046133bed98b3cda0#npm:1.6.0"]\ ],\ "packagePeers": [\ "@tiptap/core",\ @@ -3744,6 +3842,15 @@ const RAW_RUNTIME_STATE = "linkType": "HARD"\ }]\ ]],\ + ["@types/esrecurse", [\ + ["npm:4.3.1", {\ + "packageLocation": "./.yarn/cache/@types-esrecurse-npm-4.3.1-237d34a55f-90dad74d5d.zip/node_modules/@types/esrecurse/",\ + "packageDependencies": [\ + ["@types/esrecurse", "npm:4.3.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ ["@types/estree", [\ ["npm:1.0.8", {\ "packageLocation": "./.yarn/cache/@types-estree-npm-1.0.8-2195bac6d6-39d34d1afa.zip/node_modules/@types/estree/",\ @@ -4581,6 +4688,13 @@ const RAW_RUNTIME_STATE = ["acorn", "npm:8.15.0"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:8.16.0", {\ + "packageLocation": "./.yarn/cache/acorn-npm-8.16.0-b2096bf83f-c9c5269722.zip/node_modules/acorn/",\ + "packageDependencies": [\ + ["acorn", "npm:8.16.0"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["acorn-jsx", [\ @@ -4591,6 +4705,19 @@ const RAW_RUNTIME_STATE = ],\ "linkType": "SOFT"\ }],\ + ["virtual:095134f369df0febb59b405d1d96de91e36b49a16b28c6eda695cd28aba278caec06884ca3b195cb6db693ede7600d97d8c77f61429df5805bc1c1b203a0b9bd#npm:5.3.2", {\ + "packageLocation": "./.yarn/__virtual__/acorn-jsx-virtual-823b7aa3f1/0/cache/acorn-jsx-npm-5.3.2-d7594599ea-4c54868fbe.zip/node_modules/acorn-jsx/",\ + "packageDependencies": [\ + ["@types/acorn", null],\ + ["acorn", "npm:8.16.0"],\ + ["acorn-jsx", "virtual:095134f369df0febb59b405d1d96de91e36b49a16b28c6eda695cd28aba278caec06884ca3b195cb6db693ede7600d97d8c77f61429df5805bc1c1b203a0b9bd#npm:5.3.2"]\ + ],\ + "packagePeers": [\ + "@types/acorn",\ + "acorn"\ + ],\ + "linkType": "HARD"\ + }],\ ["virtual:9633b00e55c5aebf81b0127f50addd44705c175a47a287258963782da8f9f4e66c2da6640a60ed2826e19f024f73cd554a58729ee1644f93800bbd0d7b7ddd79#npm:5.3.2", {\ "packageLocation": "./.yarn/__virtual__/acorn-jsx-virtual-642bf0c873/0/cache/acorn-jsx-npm-5.3.2-d7594599ea-4c54868fbe.zip/node_modules/acorn-jsx/",\ "packageDependencies": [\ @@ -4633,6 +4760,27 @@ const RAW_RUNTIME_STATE = ["uri-js", "npm:4.4.1"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:6.15.0", {\ + "packageLocation": "./.yarn/cache/ajv-npm-6.15.0-0a6bf8fa72-67966499dd.zip/node_modules/ajv/",\ + "packageDependencies": [\ + ["ajv", "npm:6.15.0"],\ + ["fast-deep-equal", "npm:3.1.3"],\ + ["fast-json-stable-stringify", "npm:2.1.0"],\ + ["json-schema-traverse", "npm:0.4.1"],\ + ["uri-js", "npm:4.4.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["ansi-escapes", [\ + ["npm:7.3.0", {\ + "packageLocation": "./.yarn/cache/ansi-escapes-npm-7.3.0-f8978d12b5-068961d99f.zip/node_modules/ansi-escapes/",\ + "packageDependencies": [\ + ["ansi-escapes", "npm:7.3.0"],\ + ["environment", "npm:1.1.0"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["ansi-regex", [\ @@ -4825,6 +4973,13 @@ const RAW_RUNTIME_STATE = ["balanced-match", "npm:1.0.2"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:4.0.4", {\ + "packageLocation": "./.yarn/cache/balanced-match-npm-4.0.4-fd666b3c7f-07e86102a3.zip/node_modules/balanced-match/",\ + "packageDependencies": [\ + ["balanced-match", "npm:4.0.4"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["baseline-browser-mapping", [\ @@ -4893,6 +5048,14 @@ const RAW_RUNTIME_STATE = ["brace-expansion", "npm:2.0.2"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:5.0.5", {\ + "packageLocation": "./.yarn/cache/brace-expansion-npm-5.0.5-b81f6c30d6-4d238e14ed.zip/node_modules/brace-expansion/",\ + "packageDependencies": [\ + ["balanced-match", "npm:4.0.4"],\ + ["brace-expansion", "npm:5.0.5"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["braces", [\ @@ -5150,6 +5313,27 @@ const RAW_RUNTIME_STATE = "linkType": "HARD"\ }]\ ]],\ + ["cli-cursor", [\ + ["npm:5.0.0", {\ + "packageLocation": "./.yarn/cache/cli-cursor-npm-5.0.0-444bec1bef-7ec62f69b7.zip/node_modules/cli-cursor/",\ + "packageDependencies": [\ + ["cli-cursor", "npm:5.0.0"],\ + ["restore-cursor", "npm:5.1.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["cli-truncate", [\ + ["npm:5.2.0", {\ + "packageLocation": "./.yarn/cache/cli-truncate-npm-5.2.0-4f8f591c55-0d4ec94702.zip/node_modules/cli-truncate/",\ + "packageDependencies": [\ + ["cli-truncate", "npm:5.2.0"],\ + ["slice-ansi", "npm:8.0.0"],\ + ["string-width", "npm:8.2.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ ["clipanion", [\ ["npm:4.0.0-rc.4", {\ "packageLocation": "./.yarn/cache/clipanion-npm-4.0.0-rc.4-40deb7eb3b-047b415b59.zip/node_modules/clipanion/",\ @@ -5258,6 +5442,15 @@ const RAW_RUNTIME_STATE = "linkType": "HARD"\ }]\ ]],\ + ["colorette", [\ + ["npm:2.0.20", {\ + "packageLocation": "./.yarn/cache/colorette-npm-2.0.20-692d428726-e94116ff33.zip/node_modules/colorette/",\ + "packageDependencies": [\ + ["colorette", "npm:2.0.20"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ ["colorthief", [\ ["npm:2.3.2", {\ "packageLocation": "./.yarn/cache/colorthief-npm-2.3.2-3da996f5be-b34d7e2c0e.zip/node_modules/colorthief/",\ @@ -5279,6 +5472,15 @@ const RAW_RUNTIME_STATE = "linkType": "HARD"\ }]\ ]],\ + ["commander", [\ + ["npm:14.0.3", {\ + "packageLocation": "./.yarn/cache/commander-npm-14.0.3-93ab31471d-755652564b.zip/node_modules/commander/",\ + "packageDependencies": [\ + ["commander", "npm:14.0.3"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ ["comment-json", [\ ["npm:2.4.2", {\ "packageLocation": "./.yarn/cache/comment-json-npm-2.4.2-ad40caa02b-409aafaab6.zip/node_modules/comment-json/",\ @@ -5738,6 +5940,13 @@ const RAW_RUNTIME_STATE = }]\ ]],\ ["emoji-regex", [\ + ["npm:10.6.0", {\ + "packageLocation": "./.yarn/cache/emoji-regex-npm-10.6.0-c849a5dbe0-1e4aa097bb.zip/node_modules/emoji-regex/",\ + "packageDependencies": [\ + ["emoji-regex", "npm:10.6.0"]\ + ],\ + "linkType": "HARD"\ + }],\ ["npm:8.0.0", {\ "packageLocation": "./.yarn/cache/emoji-regex-npm-8.0.0-213764015c-b6053ad399.zip/node_modules/emoji-regex/",\ "packageDependencies": [\ @@ -5802,6 +6011,15 @@ const RAW_RUNTIME_STATE = "linkType": "HARD"\ }]\ ]],\ + ["environment", [\ + ["npm:1.1.0", {\ + "packageLocation": "./.yarn/cache/environment-npm-1.1.0-3f2409b698-fb26434b0b.zip/node_modules/environment/",\ + "packageDependencies": [\ + ["environment", "npm:1.1.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ ["err-code", [\ ["npm:2.0.3", {\ "packageLocation": "./.yarn/cache/err-code-npm-2.0.3-082e0ff9a7-b642f7b4dd.zip/node_modules/err-code/",\ @@ -5935,6 +6153,13 @@ const RAW_RUNTIME_STATE = }]\ ]],\ ["eslint", [\ + ["npm:10.2.1", {\ + "packageLocation": "./.yarn/cache/eslint-npm-10.2.1-b6525bf0d7-176795a379.zip/node_modules/eslint/",\ + "packageDependencies": [\ + ["eslint", "npm:10.2.1"]\ + ],\ + "linkType": "SOFT"\ + }],\ ["npm:8.57.1", {\ "packageLocation": "./.yarn/cache/eslint-npm-8.57.1-dd20287a5a-1fd3153308.zip/node_modules/eslint/",\ "packageDependencies": [\ @@ -5987,6 +6212,49 @@ const RAW_RUNTIME_STATE = ],\ "linkType": "SOFT"\ }],\ + ["virtual:126cdbadba5e8bc60c16e5ca60a6b6a066859a2a3035538550c2863938d34232c6957439128f75a42d45e171e70ca3d5212b1883f69b095de34326e72923545d#npm:10.2.1", {\ + "packageLocation": "./.yarn/__virtual__/eslint-virtual-86aad01fa0/0/cache/eslint-npm-10.2.1-b6525bf0d7-176795a379.zip/node_modules/eslint/",\ + "packageDependencies": [\ + ["@eslint-community/eslint-utils", "virtual:86aad01fa0fef138598aaa8b7f31876991da134fe3c010503de673f84dc6ec50da0fbf51501897d0809214e0b8211420a0edcc340bb7e30ec9dd6088346a9d5b#npm:4.9.0"],\ + ["@eslint-community/regexpp", "npm:4.12.2"],\ + ["@eslint/config-array", "npm:0.23.5"],\ + ["@eslint/config-helpers", "npm:0.5.5"],\ + ["@eslint/core", "npm:1.2.1"],\ + ["@eslint/plugin-kit", "npm:0.7.1"],\ + ["@humanfs/node", "npm:0.16.7"],\ + ["@humanwhocodes/module-importer", "npm:1.0.1"],\ + ["@humanwhocodes/retry", "npm:0.4.3"],\ + ["@types/estree", "npm:1.0.8"],\ + ["@types/jiti", null],\ + ["ajv", "npm:6.15.0"],\ + ["cross-spawn", "npm:7.0.6"],\ + ["debug", "virtual:643ed7cc338bcf145a82d8b05b3bef6bcf150ca545df386225596f10ce53cc90b88b3ca83e348ade1ccea5f3f8e76c92d2f0e2ba544da60d40aff9921c56872d#npm:4.4.3"],\ + ["escape-string-regexp", "npm:4.0.0"],\ + ["eslint", "virtual:126cdbadba5e8bc60c16e5ca60a6b6a066859a2a3035538550c2863938d34232c6957439128f75a42d45e171e70ca3d5212b1883f69b095de34326e72923545d#npm:10.2.1"],\ + ["eslint-scope", "npm:9.1.2"],\ + ["eslint-visitor-keys", "npm:5.0.1"],\ + ["espree", "npm:11.2.0"],\ + ["esquery", "npm:1.7.0"],\ + ["esutils", "npm:2.0.3"],\ + ["fast-deep-equal", "npm:3.1.3"],\ + ["file-entry-cache", "npm:8.0.0"],\ + ["find-up", "npm:5.0.0"],\ + ["glob-parent", "npm:6.0.2"],\ + ["ignore", "npm:5.3.2"],\ + ["imurmurhash", "npm:0.1.4"],\ + ["is-glob", "npm:4.0.3"],\ + ["jiti", null],\ + ["json-stable-stringify-without-jsonify", "npm:1.0.1"],\ + ["minimatch", "npm:10.2.5"],\ + ["natural-compare", "npm:1.4.0"],\ + ["optionator", "npm:0.9.4"]\ + ],\ + "packagePeers": [\ + "@types/jiti",\ + "jiti"\ + ],\ + "linkType": "HARD"\ + }],\ ["virtual:90ba738da64cc41a6a40703c7ac5e2c2c261729a24fb736c3057b9db1463c5ff20217c4c849e768425e7a5dbbcc4a4c1acbda29afa5757900668d8ef42dd597e#npm:9.39.1", {\ "packageLocation": "./.yarn/__virtual__/eslint-virtual-e5c95e2db3/0/cache/eslint-npm-9.39.1-b5f4bb34fc-59b2480639.zip/node_modules/eslint/",\ "packageDependencies": [\ @@ -6035,6 +6303,41 @@ const RAW_RUNTIME_STATE = "linkType": "HARD"\ }]\ ]],\ + ["eslint-config-prettier", [\ + ["npm:10.1.8", {\ + "packageLocation": "./.yarn/cache/eslint-config-prettier-npm-10.1.8-c1c834370f-e1bcfadc9e.zip/node_modules/eslint-config-prettier/",\ + "packageDependencies": [\ + ["eslint-config-prettier", "npm:10.1.8"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["virtual:2fb7e13bcbc24e77d357ed68b75b19744e934ae2d614ddea7b43a10b4e02ae8e0572e27e2c3a0691906d2d7f03ee876b6fcb59bf03c28692b4236510131025d6#npm:10.1.8", {\ + "packageLocation": "./.yarn/__virtual__/eslint-config-prettier-virtual-a67db359c3/0/cache/eslint-config-prettier-npm-10.1.8-c1c834370f-e1bcfadc9e.zip/node_modules/eslint-config-prettier/",\ + "packageDependencies": [\ + ["@types/eslint", null],\ + ["eslint", "npm:8.57.1"],\ + ["eslint-config-prettier", "virtual:2fb7e13bcbc24e77d357ed68b75b19744e934ae2d614ddea7b43a10b4e02ae8e0572e27e2c3a0691906d2d7f03ee876b6fcb59bf03c28692b4236510131025d6#npm:10.1.8"]\ + ],\ + "packagePeers": [\ + "@types/eslint",\ + "eslint"\ + ],\ + "linkType": "HARD"\ + }],\ + ["virtual:90ba738da64cc41a6a40703c7ac5e2c2c261729a24fb736c3057b9db1463c5ff20217c4c849e768425e7a5dbbcc4a4c1acbda29afa5757900668d8ef42dd597e#npm:10.1.8", {\ + "packageLocation": "./.yarn/__virtual__/eslint-config-prettier-virtual-d8fd70c714/0/cache/eslint-config-prettier-npm-10.1.8-c1c834370f-e1bcfadc9e.zip/node_modules/eslint-config-prettier/",\ + "packageDependencies": [\ + ["@types/eslint", null],\ + ["eslint", "virtual:90ba738da64cc41a6a40703c7ac5e2c2c261729a24fb736c3057b9db1463c5ff20217c4c849e768425e7a5dbbcc4a4c1acbda29afa5757900668d8ef42dd597e#npm:9.39.1"],\ + ["eslint-config-prettier", "virtual:90ba738da64cc41a6a40703c7ac5e2c2c261729a24fb736c3057b9db1463c5ff20217c4c849e768425e7a5dbbcc4a4c1acbda29afa5757900668d8ef42dd597e#npm:10.1.8"]\ + ],\ + "packagePeers": [\ + "@types/eslint",\ + "eslint"\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ ["eslint-plugin-react-hooks", [\ ["npm:5.2.0", {\ "packageLocation": "./.yarn/cache/eslint-plugin-react-hooks-npm-5.2.0-1c4af50caf-1c8d50fa59.zip/node_modules/eslint-plugin-react-hooks/",\ @@ -6123,6 +6426,17 @@ const RAW_RUNTIME_STATE = ["estraverse", "npm:5.3.0"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:9.1.2", {\ + "packageLocation": "./.yarn/cache/eslint-scope-npm-9.1.2-50e6e92f41-9fb8bca5a7.zip/node_modules/eslint-scope/",\ + "packageDependencies": [\ + ["@types/esrecurse", "npm:4.3.1"],\ + ["@types/estree", "npm:1.0.8"],\ + ["eslint-scope", "npm:9.1.2"],\ + ["esrecurse", "npm:4.3.0"],\ + ["estraverse", "npm:5.3.0"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["eslint-visitor-keys", [\ @@ -6139,6 +6453,13 @@ const RAW_RUNTIME_STATE = ["eslint-visitor-keys", "npm:4.2.1"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:5.0.1", {\ + "packageLocation": "./.yarn/cache/eslint-visitor-keys-npm-5.0.1-30a44b062b-16190bdf2c.zip/node_modules/eslint-visitor-keys/",\ + "packageDependencies": [\ + ["eslint-visitor-keys", "npm:5.0.1"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["esm-env", [\ @@ -6161,6 +6482,16 @@ const RAW_RUNTIME_STATE = ],\ "linkType": "HARD"\ }],\ + ["npm:11.2.0", {\ + "packageLocation": "./.yarn/cache/espree-npm-11.2.0-095134f369-cf87e18ffd.zip/node_modules/espree/",\ + "packageDependencies": [\ + ["acorn", "npm:8.16.0"],\ + ["acorn-jsx", "virtual:095134f369df0febb59b405d1d96de91e36b49a16b28c6eda695cd28aba278caec06884ca3b195cb6db693ede7600d97d8c77f61429df5805bc1c1b203a0b9bd#npm:5.3.2"],\ + ["eslint-visitor-keys", "npm:5.0.1"],\ + ["espree", "npm:11.2.0"]\ + ],\ + "linkType": "HARD"\ + }],\ ["npm:9.6.1", {\ "packageLocation": "./.yarn/cache/espree-npm-9.6.1-a50722a5a9-1a2e9b4699.zip/node_modules/espree/",\ "packageDependencies": [\ @@ -6189,6 +6520,14 @@ const RAW_RUNTIME_STATE = ["estraverse", "npm:5.3.0"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:1.7.0", {\ + "packageLocation": "./.yarn/cache/esquery-npm-1.7.0-c1e8da438a-77d5173db4.zip/node_modules/esquery/",\ + "packageDependencies": [\ + ["esquery", "npm:1.7.0"],\ + ["estraverse", "npm:5.3.0"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["esrecurse", [\ @@ -6235,6 +6574,13 @@ const RAW_RUNTIME_STATE = ["eventemitter3", "npm:2.0.3"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:5.0.4", {\ + "packageLocation": "./.yarn/cache/eventemitter3-npm-5.0.4-012eae30d7-575b8cac8d.zip/node_modules/eventemitter3/",\ + "packageDependencies": [\ + ["eventemitter3", "npm:5.0.4"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["exponential-backoff", [\ @@ -6654,6 +7000,15 @@ const RAW_RUNTIME_STATE = "linkType": "HARD"\ }]\ ]],\ + ["get-east-asian-width", [\ + ["npm:1.5.0", {\ + "packageLocation": "./.yarn/cache/get-east-asian-width-npm-1.5.0-b9efadad1a-bff8bbc8d8.zip/node_modules/get-east-asian-width/",\ + "packageDependencies": [\ + ["get-east-asian-width", "npm:1.5.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ ["get-intrinsic", [\ ["npm:1.3.1", {\ "packageLocation": "./.yarn/cache/get-intrinsic-npm-1.3.1-2f734f40ec-9f4ab0cf7e.zip/node_modules/get-intrinsic/",\ @@ -7086,6 +7441,15 @@ const RAW_RUNTIME_STATE = "linkType": "HARD"\ }]\ ]],\ + ["husky", [\ + ["npm:9.1.7", {\ + "packageLocation": "./.yarn/cache/husky-npm-9.1.7-5b02eaabc4-35bb110a71.zip/node_modules/husky/",\ + "packageDependencies": [\ + ["husky", "npm:9.1.7"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ ["hyphenate-style-name", [\ ["npm:1.1.0", {\ "packageLocation": "./.yarn/cache/hyphenate-style-name-npm-1.1.0-9ef705067a-bfe88deac2.zip/node_modules/hyphenate-style-name/",\ @@ -7309,6 +7673,14 @@ const RAW_RUNTIME_STATE = ["is-fullwidth-code-point", "npm:3.0.0"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:5.1.0", {\ + "packageLocation": "./.yarn/cache/is-fullwidth-code-point-npm-5.1.0-4eb5872a79-c1172c2e41.zip/node_modules/is-fullwidth-code-point/",\ + "packageDependencies": [\ + ["get-east-asian-width", "npm:1.5.0"],\ + ["is-fullwidth-code-point", "npm:5.1.0"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["is-glob", [\ @@ -7944,6 +8316,36 @@ const RAW_RUNTIME_STATE = "linkType": "HARD"\ }]\ ]],\ + ["lint-staged", [\ + ["npm:16.4.0", {\ + "packageLocation": "./.yarn/cache/lint-staged-npm-16.4.0-bc70d40d4b-67625a49a2.zip/node_modules/lint-staged/",\ + "packageDependencies": [\ + ["commander", "npm:14.0.3"],\ + ["lint-staged", "npm:16.4.0"],\ + ["listr2", "npm:9.0.5"],\ + ["picomatch", "npm:4.0.3"],\ + ["string-argv", "npm:0.3.2"],\ + ["tinyexec", "npm:1.1.2"],\ + ["yaml", "npm:2.8.3"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["listr2", [\ + ["npm:9.0.5", {\ + "packageLocation": "./.yarn/cache/listr2-npm-9.0.5-8443b39154-46448d1ba0.zip/node_modules/listr2/",\ + "packageDependencies": [\ + ["cli-truncate", "npm:5.2.0"],\ + ["colorette", "npm:2.0.20"],\ + ["eventemitter3", "npm:5.0.4"],\ + ["listr2", "npm:9.0.5"],\ + ["log-update", "npm:6.1.0"],\ + ["rfdc", "npm:1.4.1"],\ + ["wrap-ansi", "npm:9.0.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ ["load-script", [\ ["npm:2.0.0", {\ "packageLocation": "./.yarn/cache/load-script-npm-2.0.0-005874056f-118bd891f0.zip/node_modules/load-script/",\ @@ -8026,6 +8428,20 @@ const RAW_RUNTIME_STATE = "linkType": "HARD"\ }]\ ]],\ + ["log-update", [\ + ["npm:6.1.0", {\ + "packageLocation": "./.yarn/cache/log-update-npm-6.1.0-2ca9435417-4b350c0a83.zip/node_modules/log-update/",\ + "packageDependencies": [\ + ["ansi-escapes", "npm:7.3.0"],\ + ["cli-cursor", "npm:5.0.0"],\ + ["log-update", "npm:6.1.0"],\ + ["slice-ansi", "npm:7.1.2"],\ + ["strip-ansi", "npm:7.1.2"],\ + ["wrap-ansi", "npm:9.0.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ ["loose-envify", [\ ["npm:1.4.0", {\ "packageLocation": "./.yarn/cache/loose-envify-npm-1.4.0-6307b72ccf-655d110220.zip/node_modules/loose-envify/",\ @@ -8313,6 +8729,15 @@ const RAW_RUNTIME_STATE = "linkType": "HARD"\ }]\ ]],\ + ["mimic-function", [\ + ["npm:5.0.1", {\ + "packageLocation": "./.yarn/cache/mimic-function-npm-5.0.1-5078456e31-f3d9464dd1.zip/node_modules/mimic-function/",\ + "packageDependencies": [\ + ["mimic-function", "npm:5.0.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ ["mimic-response", [\ ["npm:1.0.1", {\ "packageLocation": "./.yarn/cache/mimic-response-npm-1.0.1-f6f85dde84-c5381a5eae.zip/node_modules/mimic-response/",\ @@ -8338,6 +8763,14 @@ const RAW_RUNTIME_STATE = ],\ "linkType": "HARD"\ }],\ + ["npm:10.2.5", {\ + "packageLocation": "./.yarn/cache/minimatch-npm-10.2.5-f1c8297822-6bb058bd63.zip/node_modules/minimatch/",\ + "packageDependencies": [\ + ["brace-expansion", "npm:5.0.5"],\ + ["minimatch", "npm:10.2.5"]\ + ],\ + "linkType": "HARD"\ + }],\ ["npm:3.1.2", {\ "packageLocation": "./.yarn/cache/minimatch-npm-3.1.2-9405269906-0262810a8f.zip/node_modules/minimatch/",\ "packageDependencies": [\ @@ -8489,14 +8922,18 @@ const RAW_RUNTIME_STATE = ["@yarnpkg/sdks", "npm:3.2.3"],\ ["clsx", "npm:2.1.1"],\ ["dompurify", "npm:3.3.0"],\ + ["eslint", "virtual:126cdbadba5e8bc60c16e5ca60a6b6a066859a2a3035538550c2863938d34232c6957439128f75a42d45e171e70ca3d5212b1883f69b095de34326e72923545d#npm:10.2.1"],\ ["framer-motion", "virtual:126cdbadba5e8bc60c16e5ca60a6b6a066859a2a3035538550c2863938d34232c6957439128f75a42d45e171e70ca3d5212b1883f69b095de34326e72923545d#npm:12.23.24"],\ ["heic2any", "npm:0.0.4"],\ ["highlight.js", "npm:11.11.1"],\ + ["husky", "npm:9.1.7"],\ ["jsqr", "npm:1.4.0"],\ + ["lint-staged", "npm:16.4.0"],\ ["lottie-react", "virtual:126cdbadba5e8bc60c16e5ca60a6b6a066859a2a3035538550c2863938d34232c6957439128f75a42d45e171e70ca3d5212b1883f69b095de34326e72923545d#npm:2.4.1"],\ ["lowlight", "npm:3.3.0"],\ ["monorepo-nowaitFE", "workspace:."],\ ["npm", "npm:11.6.2"],\ + ["prettier", "npm:3.8.3"],\ ["prop-types", "npm:15.8.1"],\ ["prosemirror-model", "npm:1.25.4"],\ ["prosemirror-state", "npm:1.4.4"],\ @@ -8777,6 +9214,7 @@ const RAW_RUNTIME_STATE = "packageLocation": "./apps/nowait-admin/",\ "packageDependencies": [\ ["@eslint/js", "npm:9.39.1"],\ + ["@hello-pangea/dnd", "virtual:90ba738da64cc41a6a40703c7ac5e2c2c261729a24fb736c3057b9db1463c5ff20217c4c849e768425e7a5dbbcc4a4c1acbda29afa5757900668d8ef42dd597e#npm:18.0.1"],\ ["@repo/tailwind-config", "workspace:packages/tailwind-config"],\ ["@repo/typescript-config", "workspace:packages/typescript-config"],\ ["@repo/ui", "virtual:90ba738da64cc41a6a40703c7ac5e2c2c261729a24fb736c3057b9db1463c5ff20217c4c849e768425e7a5dbbcc4a4c1acbda29afa5757900668d8ef42dd597e#workspace:packages/ui"],\ @@ -8801,6 +9239,7 @@ const RAW_RUNTIME_STATE = ["clsx", "npm:2.1.1"],\ ["dompurify", "npm:3.3.0"],\ ["eslint", "virtual:90ba738da64cc41a6a40703c7ac5e2c2c261729a24fb736c3057b9db1463c5ff20217c4c849e768425e7a5dbbcc4a4c1acbda29afa5757900668d8ef42dd597e#npm:9.39.1"],\ + ["eslint-config-prettier", "virtual:90ba738da64cc41a6a40703c7ac5e2c2c261729a24fb736c3057b9db1463c5ff20217c4c849e768425e7a5dbbcc4a4c1acbda29afa5757900668d8ef42dd597e#npm:10.1.8"],\ ["eslint-plugin-react-hooks", "virtual:90ba738da64cc41a6a40703c7ac5e2c2c261729a24fb736c3057b9db1463c5ff20217c4c849e768425e7a5dbbcc4a4c1acbda29afa5757900668d8ef42dd597e#npm:5.2.0"],\ ["eslint-plugin-react-refresh", "virtual:90ba738da64cc41a6a40703c7ac5e2c2c261729a24fb736c3057b9db1463c5ff20217c4c849e768425e7a5dbbcc4a4c1acbda29afa5757900668d8ef42dd597e#npm:0.4.24"],\ ["globals", "npm:16.5.0"],\ @@ -8859,6 +9298,7 @@ const RAW_RUNTIME_STATE = ["axios", "npm:1.13.2"],\ ["color-thief-react", "virtual:2fb7e13bcbc24e77d357ed68b75b19744e934ae2d614ddea7b43a10b4e02ae8e0572e27e2c3a0691906d2d7f03ee876b6fcb59bf03c28692b4236510131025d6#npm:2.1.0"],\ ["eslint", "npm:8.57.1"],\ + ["eslint-config-prettier", "virtual:2fb7e13bcbc24e77d357ed68b75b19744e934ae2d614ddea7b43a10b4e02ae8e0572e27e2c3a0691906d2d7f03ee876b6fcb59bf03c28692b4236510131025d6#npm:10.1.8"],\ ["eslint-plugin-react-hooks", "virtual:2fb7e13bcbc24e77d357ed68b75b19744e934ae2d614ddea7b43a10b4e02ae8e0572e27e2c3a0691906d2d7f03ee876b6fcb59bf03c28692b4236510131025d6#npm:5.2.0"],\ ["eslint-plugin-react-refresh", "virtual:2fb7e13bcbc24e77d357ed68b75b19744e934ae2d614ddea7b43a10b4e02ae8e0572e27e2c3a0691906d2d7f03ee876b6fcb59bf03c28692b4236510131025d6#npm:0.4.24"],\ ["framer-motion", "virtual:2fb7e13bcbc24e77d357ed68b75b19744e934ae2d614ddea7b43a10b4e02ae8e0572e27e2c3a0691906d2d7f03ee876b6fcb59bf03c28692b4236510131025d6#npm:12.23.24"],\ @@ -9169,6 +9609,16 @@ const RAW_RUNTIME_STATE = "linkType": "HARD"\ }]\ ]],\ + ["onetime", [\ + ["npm:7.0.0", {\ + "packageLocation": "./.yarn/cache/onetime-npm-7.0.0-cfdd2a579d-5cb9179d74.zip/node_modules/onetime/",\ + "packageDependencies": [\ + ["mimic-function", "npm:5.0.1"],\ + ["onetime", "npm:7.0.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ ["optionator", [\ ["npm:0.9.4", {\ "packageLocation": "./.yarn/cache/optionator-npm-0.9.4-1f114b00e8-4afb687a05.zip/node_modules/optionator/",\ @@ -9484,6 +9934,15 @@ const RAW_RUNTIME_STATE = "linkType": "HARD"\ }]\ ]],\ + ["prettier", [\ + ["npm:3.8.3", {\ + "packageLocation": "./.yarn/unplugged/prettier-npm-3.8.3-ecd857a540/node_modules/prettier/",\ + "packageDependencies": [\ + ["prettier", "npm:3.8.3"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ ["proc-log", [\ ["npm:5.0.0", {\ "packageLocation": "./.yarn/cache/proc-log-npm-5.0.0-405173f9b4-bbe5edb944.zip/node_modules/proc-log/",\ @@ -10372,6 +10831,32 @@ const RAW_RUNTIME_STATE = ],\ "linkType": "SOFT"\ }],\ + ["npm:9.2.0", {\ + "packageLocation": "./.yarn/cache/react-redux-npm-9.2.0-d87bb27c82-00d485f9d9.zip/node_modules/react-redux/",\ + "packageDependencies": [\ + ["react-redux", "npm:9.2.0"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["virtual:42c0a787da8f7633f18c8637859bcbc11b356612405d59f0cf0a069418a5338720e2333bbec45b068c28d82cad8ebb3da65475c7633ab9379240b914fd8b5d73#npm:9.2.0", {\ + "packageLocation": "./.yarn/__virtual__/react-redux-virtual-c4cc0dcb6e/0/cache/react-redux-npm-9.2.0-d87bb27c82-00d485f9d9.zip/node_modules/react-redux/",\ + "packageDependencies": [\ + ["@types/react", "npm:19.2.2"],\ + ["@types/redux", null],\ + ["@types/use-sync-external-store", "npm:0.0.6"],\ + ["react", "npm:19.2.1"],\ + ["react-redux", "virtual:42c0a787da8f7633f18c8637859bcbc11b356612405d59f0cf0a069418a5338720e2333bbec45b068c28d82cad8ebb3da65475c7633ab9379240b914fd8b5d73#npm:9.2.0"],\ + ["redux", "npm:5.0.1"],\ + ["use-sync-external-store", "virtual:c4cc0dcb6e16674155eb82bccc7c0708ed0bdad8201b0e31bbcd14e66a467e93904a8ca3180a67ee210e7628e45c9b0f0ba5fb3133bc346046133bed98b3cda0#npm:1.6.0"]\ + ],\ + "packagePeers": [\ + "@types/react",\ + "@types/redux",\ + "react",\ + "redux"\ + ],\ + "linkType": "HARD"\ + }],\ ["virtual:89e409b2ff333c4217dcab39f802f3c31cf0f2de016df72c9bf4ccac9380f1fa6cdae548fb23cc30bc23b898a433b56c831ce95d962e67eda85ad17e0287080d#npm:7.2.9", {\ "packageLocation": "./.yarn/__virtual__/react-redux-virtual-3ba21e4a58/0/cache/react-redux-npm-7.2.9-612aa35519-904fac7f49.zip/node_modules/react-redux/",\ "packageDependencies": [\ @@ -10707,6 +11192,13 @@ const RAW_RUNTIME_STATE = ["redux", "npm:4.2.1"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:5.0.1", {\ + "packageLocation": "./.yarn/cache/redux-npm-5.0.1-f8e6b1cb23-b10c283571.zip/node_modules/redux/",\ + "packageDependencies": [\ + ["redux", "npm:5.0.1"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["regexp.prototype.flags", [\ @@ -10799,6 +11291,17 @@ const RAW_RUNTIME_STATE = "linkType": "HARD"\ }]\ ]],\ + ["restore-cursor", [\ + ["npm:5.1.0", {\ + "packageLocation": "./.yarn/cache/restore-cursor-npm-5.1.0-b8fd1128bf-c2ba89131e.zip/node_modules/restore-cursor/",\ + "packageDependencies": [\ + ["onetime", "npm:7.0.0"],\ + ["restore-cursor", "npm:5.1.0"],\ + ["signal-exit", "npm:4.1.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ ["retry", [\ ["npm:0.12.0", {\ "packageLocation": "./.yarn/cache/retry-npm-0.12.0-72ac7fb4cc-59933e8501.zip/node_modules/retry/",\ @@ -10817,6 +11320,15 @@ const RAW_RUNTIME_STATE = "linkType": "HARD"\ }]\ ]],\ + ["rfdc", [\ + ["npm:1.4.1", {\ + "packageLocation": "./.yarn/cache/rfdc-npm-1.4.1-1a1c63d052-4614e42923.zip/node_modules/rfdc/",\ + "packageDependencies": [\ + ["rfdc", "npm:1.4.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ ["rimraf", [\ ["npm:3.0.2", {\ "packageLocation": "./.yarn/cache/rimraf-npm-3.0.2-2cb7dac69a-9cb7757acb.zip/node_modules/rimraf/",\ @@ -11038,6 +11550,26 @@ const RAW_RUNTIME_STATE = "linkType": "HARD"\ }]\ ]],\ + ["slice-ansi", [\ + ["npm:7.1.2", {\ + "packageLocation": "./.yarn/cache/slice-ansi-npm-7.1.2-704a2770d3-36742f2eb0.zip/node_modules/slice-ansi/",\ + "packageDependencies": [\ + ["ansi-styles", "npm:6.2.3"],\ + ["is-fullwidth-code-point", "npm:5.1.0"],\ + ["slice-ansi", "npm:7.1.2"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:8.0.0", {\ + "packageLocation": "./.yarn/cache/slice-ansi-npm-8.0.0-43410a40af-0ce4aa91fe.zip/node_modules/slice-ansi/",\ + "packageDependencies": [\ + ["ansi-styles", "npm:6.2.3"],\ + ["is-fullwidth-code-point", "npm:5.1.0"],\ + ["slice-ansi", "npm:8.0.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ ["smart-buffer", [\ ["npm:4.2.0", {\ "packageLocation": "./.yarn/cache/smart-buffer-npm-4.2.0-5ac3f668bb-a16775323e.zip/node_modules/smart-buffer/",\ @@ -11234,6 +11766,15 @@ const RAW_RUNTIME_STATE = "linkType": "HARD"\ }]\ ]],\ + ["string-argv", [\ + ["npm:0.3.2", {\ + "packageLocation": "./.yarn/cache/string-argv-npm-0.3.2-6e057a88f1-75c02a8375.zip/node_modules/string-argv/",\ + "packageDependencies": [\ + ["string-argv", "npm:0.3.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ ["string-width", [\ ["npm:4.2.3", {\ "packageLocation": "./.yarn/cache/string-width-npm-4.2.3-2c27177bae-1e525e92e5.zip/node_modules/string-width/",\ @@ -11254,6 +11795,25 @@ const RAW_RUNTIME_STATE = ["strip-ansi", "npm:7.1.2"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:7.2.0", {\ + "packageLocation": "./.yarn/cache/string-width-npm-7.2.0-93572222c9-eb0430dd43.zip/node_modules/string-width/",\ + "packageDependencies": [\ + ["emoji-regex", "npm:10.6.0"],\ + ["get-east-asian-width", "npm:1.5.0"],\ + ["string-width", "npm:7.2.0"],\ + ["strip-ansi", "npm:7.1.2"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:8.2.1", {\ + "packageLocation": "./.yarn/cache/string-width-npm-8.2.1-28adc8e13a-d467b4eaf4.zip/node_modules/string-width/",\ + "packageDependencies": [\ + ["get-east-asian-width", "npm:1.5.0"],\ + ["string-width", "npm:8.2.1"],\ + ["strip-ansi", "npm:7.2.0"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["strip-ansi", [\ @@ -11272,6 +11832,14 @@ const RAW_RUNTIME_STATE = ["strip-ansi", "npm:7.1.2"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:7.2.0", {\ + "packageLocation": "./.yarn/cache/strip-ansi-npm-7.2.0-f2a3a63299-544d13b758.zip/node_modules/strip-ansi/",\ + "packageDependencies": [\ + ["ansi-regex", "npm:6.2.2"],\ + ["strip-ansi", "npm:7.2.0"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["strip-json-comments", [\ @@ -11439,6 +12007,15 @@ const RAW_RUNTIME_STATE = "linkType": "HARD"\ }]\ ]],\ + ["tinyexec", [\ + ["npm:1.1.2", {\ + "packageLocation": "./.yarn/cache/tinyexec-npm-1.1.2-1bfd8015d0-9e0ef6c001.zip/node_modules/tinyexec/",\ + "packageDependencies": [\ + ["tinyexec", "npm:1.1.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ ["tinyglobby", [\ ["npm:0.2.15", {\ "packageLocation": "./.yarn/cache/tinyglobby-npm-0.2.15-0e783aadbd-869c31490d.zip/node_modules/tinyglobby/",\ @@ -11946,12 +12523,12 @@ const RAW_RUNTIME_STATE = ],\ "linkType": "HARD"\ }],\ - ["virtual:e314dacea767a9f63d3d862765f8461152adf0c64b5616175dfc1fd773c98964cd2e522b76c6ab2e5cb9a58c7074a3631934dfcccae9c2d830f93f0c99922157#npm:1.6.0", {\ - "packageLocation": "./.yarn/__virtual__/use-sync-external-store-virtual-7688862141/0/cache/use-sync-external-store-npm-1.6.0-2db2af616d-35e1179f87.zip/node_modules/use-sync-external-store/",\ + ["virtual:c4cc0dcb6e16674155eb82bccc7c0708ed0bdad8201b0e31bbcd14e66a467e93904a8ca3180a67ee210e7628e45c9b0f0ba5fb3133bc346046133bed98b3cda0#npm:1.6.0", {\ + "packageLocation": "./.yarn/__virtual__/use-sync-external-store-virtual-4965e477ee/0/cache/use-sync-external-store-npm-1.6.0-2db2af616d-35e1179f87.zip/node_modules/use-sync-external-store/",\ "packageDependencies": [\ ["@types/react", "npm:19.2.2"],\ ["react", "npm:19.2.1"],\ - ["use-sync-external-store", "virtual:e314dacea767a9f63d3d862765f8461152adf0c64b5616175dfc1fd773c98964cd2e522b76c6ab2e5cb9a58c7074a3631934dfcccae9c2d830f93f0c99922157#npm:1.6.0"]\ + ["use-sync-external-store", "virtual:c4cc0dcb6e16674155eb82bccc7c0708ed0bdad8201b0e31bbcd14e66a467e93904a8ca3180a67ee210e7628e45c9b0f0ba5fb3133bc346046133bed98b3cda0#npm:1.6.0"]\ ],\ "packagePeers": [\ "@types/react",\ @@ -12308,6 +12885,16 @@ const RAW_RUNTIME_STATE = ["wrap-ansi", "npm:8.1.0"]\ ],\ "linkType": "HARD"\ + }],\ + ["npm:9.0.2", {\ + "packageLocation": "./.yarn/cache/wrap-ansi-npm-9.0.2-b66ec4013c-3305839b9a.zip/node_modules/wrap-ansi/",\ + "packageDependencies": [\ + ["ansi-styles", "npm:6.2.3"],\ + ["string-width", "npm:7.2.0"],\ + ["strip-ansi", "npm:7.1.2"],\ + ["wrap-ansi", "npm:9.0.2"]\ + ],\ + "linkType": "HARD"\ }]\ ]],\ ["wrappy", [\ @@ -12353,6 +12940,15 @@ const RAW_RUNTIME_STATE = "linkType": "HARD"\ }]\ ]],\ + ["yaml", [\ + ["npm:2.8.3", {\ + "packageLocation": "./.yarn/cache/yaml-npm-2.8.3-dfea86f9e0-ddff0e11c1.zip/node_modules/yaml/",\ + "packageDependencies": [\ + ["yaml", "npm:2.8.3"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ ["yocto-queue", [\ ["npm:0.1.0", {\ "packageLocation": "./.yarn/cache/yocto-queue-npm-0.1.0-c6c9a7db29-dceb44c285.zip/node_modules/yocto-queue/",\ diff --git a/.prettierignore b/.prettierignore new file mode 100644 index 00000000..65acabdd --- /dev/null +++ b/.prettierignore @@ -0,0 +1,5 @@ +dist +.yarn +.pnp.* +*.tsbuildinfo +node_modules diff --git a/.prettierrc b/.prettierrc new file mode 100644 index 00000000..c8481ad2 --- /dev/null +++ b/.prettierrc @@ -0,0 +1,8 @@ +{ + "semi": true, + "singleQuote": true, + "tabWidth": 2, + "trailingComma": "es5", + "printWidth": 100, + "endOfLine": "lf" +} diff --git a/.vscode/settings.json b/.vscode/settings.json index 7629b325..7140231b 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -4,5 +4,13 @@ "**/.pnp.*": true }, "typescript.tsdk": ".yarn/sdks/typescript/lib", - "typescript.enablePromptUseWorkspaceTsdk": true + "typescript.enablePromptUseWorkspaceTsdk": true, + "typescript.useWorkspaceTsdk": true, + "editor.formatOnSave": true, + "editor.defaultFormatter": "esbenp.prettier-vscode", + "editor.codeActionsOnSave": { + "source.fixAll.eslint": "explicit" + }, + "eslint.useFlatConfig": true, + "prettier.requireConfig": true } diff --git a/.yarn/cache/@babel-runtime-npm-7.29.2-b49cad1c67-30b80a0140.zip b/.yarn/cache/@babel-runtime-npm-7.29.2-b49cad1c67-30b80a0140.zip new file mode 100644 index 00000000..5c624c2b Binary files /dev/null and b/.yarn/cache/@babel-runtime-npm-7.29.2-b49cad1c67-30b80a0140.zip differ diff --git a/.yarn/cache/@esbuild-win32-x64-npm-0.25.12-2425a2e173-10c0.zip b/.yarn/cache/@esbuild-darwin-arm64-npm-0.25.12-2a5a9f9710-10c0.zip similarity index 55% rename from .yarn/cache/@esbuild-win32-x64-npm-0.25.12-2425a2e173-10c0.zip rename to .yarn/cache/@esbuild-darwin-arm64-npm-0.25.12-2a5a9f9710-10c0.zip index 0cc639c9..442b8c4e 100644 Binary files a/.yarn/cache/@esbuild-win32-x64-npm-0.25.12-2425a2e173-10c0.zip and b/.yarn/cache/@esbuild-darwin-arm64-npm-0.25.12-2a5a9f9710-10c0.zip differ diff --git a/.yarn/cache/@eslint-config-array-npm-0.21.2-a0cc6c6855-89dfe815d1.zip b/.yarn/cache/@eslint-config-array-npm-0.21.2-a0cc6c6855-89dfe815d1.zip new file mode 100644 index 00000000..f96be783 Binary files /dev/null and b/.yarn/cache/@eslint-config-array-npm-0.21.2-a0cc6c6855-89dfe815d1.zip differ diff --git a/.yarn/cache/@eslint-config-array-npm-0.23.5-2ed0814e14-b24833c4c7.zip b/.yarn/cache/@eslint-config-array-npm-0.23.5-2ed0814e14-b24833c4c7.zip new file mode 100644 index 00000000..528defad Binary files /dev/null and b/.yarn/cache/@eslint-config-array-npm-0.23.5-2ed0814e14-b24833c4c7.zip differ diff --git a/.yarn/cache/@eslint-config-helpers-npm-0.5.5-df2a302b83-18889c062c.zip b/.yarn/cache/@eslint-config-helpers-npm-0.5.5-df2a302b83-18889c062c.zip new file mode 100644 index 00000000..888b9385 Binary files /dev/null and b/.yarn/cache/@eslint-config-helpers-npm-0.5.5-df2a302b83-18889c062c.zip differ diff --git a/.yarn/cache/@eslint-core-npm-1.2.1-99bf82852d-10979b4058.zip b/.yarn/cache/@eslint-core-npm-1.2.1-99bf82852d-10979b4058.zip new file mode 100644 index 00000000..62a6a7f0 Binary files /dev/null and b/.yarn/cache/@eslint-core-npm-1.2.1-99bf82852d-10979b4058.zip differ diff --git a/.yarn/cache/@eslint-eslintrc-npm-3.3.5-7ab5ba52b9-9fb9f1ca65.zip b/.yarn/cache/@eslint-eslintrc-npm-3.3.5-7ab5ba52b9-9fb9f1ca65.zip new file mode 100644 index 00000000..3356e60d Binary files /dev/null and b/.yarn/cache/@eslint-eslintrc-npm-3.3.5-7ab5ba52b9-9fb9f1ca65.zip differ diff --git a/.yarn/cache/@eslint-js-npm-9.39.4-d661bbea79-5aa7dea2cb.zip b/.yarn/cache/@eslint-js-npm-9.39.4-d661bbea79-5aa7dea2cb.zip new file mode 100644 index 00000000..79f448b3 Binary files /dev/null and b/.yarn/cache/@eslint-js-npm-9.39.4-d661bbea79-5aa7dea2cb.zip differ diff --git a/.yarn/cache/@eslint-object-schema-npm-3.0.5-eb218c381f-1db337431f.zip b/.yarn/cache/@eslint-object-schema-npm-3.0.5-eb218c381f-1db337431f.zip new file mode 100644 index 00000000..814dc7e4 Binary files /dev/null and b/.yarn/cache/@eslint-object-schema-npm-3.0.5-eb218c381f-1db337431f.zip differ diff --git a/.yarn/cache/@eslint-plugin-kit-npm-0.7.1-810c4a63bf-335b0c1c46.zip b/.yarn/cache/@eslint-plugin-kit-npm-0.7.1-810c4a63bf-335b0c1c46.zip new file mode 100644 index 00000000..5eea3eb9 Binary files /dev/null and b/.yarn/cache/@eslint-plugin-kit-npm-0.7.1-810c4a63bf-335b0c1c46.zip differ diff --git a/.yarn/cache/@hello-pangea-dnd-npm-18.0.1-ce7b95f26d-30c47ac804.zip b/.yarn/cache/@hello-pangea-dnd-npm-18.0.1-ce7b95f26d-30c47ac804.zip new file mode 100644 index 00000000..f7eae309 Binary files /dev/null and b/.yarn/cache/@hello-pangea-dnd-npm-18.0.1-ce7b95f26d-30c47ac804.zip differ diff --git a/.yarn/cache/@parcel-watcher-darwin-arm64-npm-2.5.1-12be747bca-10c0.zip b/.yarn/cache/@parcel-watcher-darwin-arm64-npm-2.5.1-12be747bca-10c0.zip new file mode 100644 index 00000000..bec9ed1d Binary files /dev/null and b/.yarn/cache/@parcel-watcher-darwin-arm64-npm-2.5.1-12be747bca-10c0.zip differ diff --git a/.yarn/cache/@parcel-watcher-win32-x64-npm-2.5.1-6e3012ad80-10c0.zip b/.yarn/cache/@parcel-watcher-win32-x64-npm-2.5.1-6e3012ad80-10c0.zip deleted file mode 100644 index 5fc48fe1..00000000 Binary files a/.yarn/cache/@parcel-watcher-win32-x64-npm-2.5.1-6e3012ad80-10c0.zip and /dev/null differ diff --git a/.yarn/cache/@rollup-rollup-darwin-arm64-npm-4.53.2-5fce7146cd-10c0.zip b/.yarn/cache/@rollup-rollup-darwin-arm64-npm-4.53.2-5fce7146cd-10c0.zip new file mode 100644 index 00000000..7e2c169d Binary files /dev/null and b/.yarn/cache/@rollup-rollup-darwin-arm64-npm-4.53.2-5fce7146cd-10c0.zip differ diff --git a/.yarn/cache/@rollup-rollup-win32-x64-gnu-npm-4.53.2-e204c95015-10c0.zip b/.yarn/cache/@rollup-rollup-win32-x64-gnu-npm-4.53.2-e204c95015-10c0.zip deleted file mode 100644 index 80b24e19..00000000 Binary files a/.yarn/cache/@rollup-rollup-win32-x64-gnu-npm-4.53.2-e204c95015-10c0.zip and /dev/null differ diff --git a/.yarn/cache/@rollup-rollup-win32-x64-msvc-npm-4.53.2-b69273fe45-10c0.zip b/.yarn/cache/@rollup-rollup-win32-x64-msvc-npm-4.53.2-b69273fe45-10c0.zip deleted file mode 100644 index 5cffab4f..00000000 Binary files a/.yarn/cache/@rollup-rollup-win32-x64-msvc-npm-4.53.2-b69273fe45-10c0.zip and /dev/null differ diff --git a/.yarn/cache/turbo-windows-64-npm-2.6.0-08a058737d-10c0.zip b/.yarn/cache/@sentry-cli-darwin-npm-2.58.0-0d6c4eb647-10c0.zip similarity index 66% rename from .yarn/cache/turbo-windows-64-npm-2.6.0-08a058737d-10c0.zip rename to .yarn/cache/@sentry-cli-darwin-npm-2.58.0-0d6c4eb647-10c0.zip index 8eb02fc1..d6ff6847 100644 Binary files a/.yarn/cache/turbo-windows-64-npm-2.6.0-08a058737d-10c0.zip and b/.yarn/cache/@sentry-cli-darwin-npm-2.58.0-0d6c4eb647-10c0.zip differ diff --git a/.yarn/cache/@sentry-cli-win32-x64-npm-2.58.0-6714cdeb2b-10c0.zip b/.yarn/cache/@sentry-cli-win32-x64-npm-2.58.0-6714cdeb2b-10c0.zip deleted file mode 100644 index 9a7b7f66..00000000 Binary files a/.yarn/cache/@sentry-cli-win32-x64-npm-2.58.0-6714cdeb2b-10c0.zip and /dev/null differ diff --git a/.yarn/cache/@tailwindcss-oxide-darwin-arm64-npm-4.1.17-d42dccd811-10c0.zip b/.yarn/cache/@tailwindcss-oxide-darwin-arm64-npm-4.1.17-d42dccd811-10c0.zip new file mode 100644 index 00000000..2c152e15 Binary files /dev/null and b/.yarn/cache/@tailwindcss-oxide-darwin-arm64-npm-4.1.17-d42dccd811-10c0.zip differ diff --git a/.yarn/cache/@tailwindcss-oxide-win32-x64-msvc-npm-4.1.17-1eb35761b5-10c0.zip b/.yarn/cache/@tailwindcss-oxide-win32-x64-msvc-npm-4.1.17-1eb35761b5-10c0.zip deleted file mode 100644 index d5ce331c..00000000 Binary files a/.yarn/cache/@tailwindcss-oxide-win32-x64-msvc-npm-4.1.17-1eb35761b5-10c0.zip and /dev/null differ diff --git a/.yarn/cache/@types-esrecurse-npm-4.3.1-237d34a55f-90dad74d5d.zip b/.yarn/cache/@types-esrecurse-npm-4.3.1-237d34a55f-90dad74d5d.zip new file mode 100644 index 00000000..b9fbfbce Binary files /dev/null and b/.yarn/cache/@types-esrecurse-npm-4.3.1-237d34a55f-90dad74d5d.zip differ diff --git a/.yarn/cache/acorn-npm-8.16.0-b2096bf83f-c9c5269722.zip b/.yarn/cache/acorn-npm-8.16.0-b2096bf83f-c9c5269722.zip new file mode 100644 index 00000000..9982e281 Binary files /dev/null and b/.yarn/cache/acorn-npm-8.16.0-b2096bf83f-c9c5269722.zip differ diff --git a/.yarn/cache/ajv-npm-6.15.0-0a6bf8fa72-67966499dd.zip b/.yarn/cache/ajv-npm-6.15.0-0a6bf8fa72-67966499dd.zip new file mode 100644 index 00000000..0bec901b Binary files /dev/null and b/.yarn/cache/ajv-npm-6.15.0-0a6bf8fa72-67966499dd.zip differ diff --git a/.yarn/cache/ansi-escapes-npm-7.3.0-f8978d12b5-068961d99f.zip b/.yarn/cache/ansi-escapes-npm-7.3.0-f8978d12b5-068961d99f.zip new file mode 100644 index 00000000..df80600a Binary files /dev/null and b/.yarn/cache/ansi-escapes-npm-7.3.0-f8978d12b5-068961d99f.zip differ diff --git a/.yarn/cache/balanced-match-npm-4.0.4-fd666b3c7f-07e86102a3.zip b/.yarn/cache/balanced-match-npm-4.0.4-fd666b3c7f-07e86102a3.zip new file mode 100644 index 00000000..a16089ff Binary files /dev/null and b/.yarn/cache/balanced-match-npm-4.0.4-fd666b3c7f-07e86102a3.zip differ diff --git a/.yarn/cache/brace-expansion-npm-5.0.5-b81f6c30d6-4d238e14ed.zip b/.yarn/cache/brace-expansion-npm-5.0.5-b81f6c30d6-4d238e14ed.zip new file mode 100644 index 00000000..f4293eb1 Binary files /dev/null and b/.yarn/cache/brace-expansion-npm-5.0.5-b81f6c30d6-4d238e14ed.zip differ diff --git a/.yarn/cache/cli-cursor-npm-5.0.0-444bec1bef-7ec62f69b7.zip b/.yarn/cache/cli-cursor-npm-5.0.0-444bec1bef-7ec62f69b7.zip new file mode 100644 index 00000000..3c727f00 Binary files /dev/null and b/.yarn/cache/cli-cursor-npm-5.0.0-444bec1bef-7ec62f69b7.zip differ diff --git a/.yarn/cache/cli-truncate-npm-5.2.0-4f8f591c55-0d4ec94702.zip b/.yarn/cache/cli-truncate-npm-5.2.0-4f8f591c55-0d4ec94702.zip new file mode 100644 index 00000000..2eb380c5 Binary files /dev/null and b/.yarn/cache/cli-truncate-npm-5.2.0-4f8f591c55-0d4ec94702.zip differ diff --git a/.yarn/cache/colorette-npm-2.0.20-692d428726-e94116ff33.zip b/.yarn/cache/colorette-npm-2.0.20-692d428726-e94116ff33.zip new file mode 100644 index 00000000..31ccdf6d Binary files /dev/null and b/.yarn/cache/colorette-npm-2.0.20-692d428726-e94116ff33.zip differ diff --git a/.yarn/cache/commander-npm-14.0.3-93ab31471d-755652564b.zip b/.yarn/cache/commander-npm-14.0.3-93ab31471d-755652564b.zip new file mode 100644 index 00000000..e078f121 Binary files /dev/null and b/.yarn/cache/commander-npm-14.0.3-93ab31471d-755652564b.zip differ diff --git a/.yarn/cache/emoji-regex-npm-10.6.0-c849a5dbe0-1e4aa097bb.zip b/.yarn/cache/emoji-regex-npm-10.6.0-c849a5dbe0-1e4aa097bb.zip new file mode 100644 index 00000000..e32f67a3 Binary files /dev/null and b/.yarn/cache/emoji-regex-npm-10.6.0-c849a5dbe0-1e4aa097bb.zip differ diff --git a/.yarn/cache/environment-npm-1.1.0-3f2409b698-fb26434b0b.zip b/.yarn/cache/environment-npm-1.1.0-3f2409b698-fb26434b0b.zip new file mode 100644 index 00000000..21ee3a0c Binary files /dev/null and b/.yarn/cache/environment-npm-1.1.0-3f2409b698-fb26434b0b.zip differ diff --git a/.yarn/cache/eslint-config-prettier-npm-10.1.8-c1c834370f-e1bcfadc9e.zip b/.yarn/cache/eslint-config-prettier-npm-10.1.8-c1c834370f-e1bcfadc9e.zip new file mode 100644 index 00000000..7fa43ea9 Binary files /dev/null and b/.yarn/cache/eslint-config-prettier-npm-10.1.8-c1c834370f-e1bcfadc9e.zip differ diff --git a/.yarn/cache/eslint-npm-10.2.1-b6525bf0d7-176795a379.zip b/.yarn/cache/eslint-npm-10.2.1-b6525bf0d7-176795a379.zip new file mode 100644 index 00000000..c0f11f02 Binary files /dev/null and b/.yarn/cache/eslint-npm-10.2.1-b6525bf0d7-176795a379.zip differ diff --git a/.yarn/cache/eslint-npm-9.39.4-81a84865c0-1955067c2d.zip b/.yarn/cache/eslint-npm-9.39.4-81a84865c0-1955067c2d.zip new file mode 100644 index 00000000..285fb6f3 Binary files /dev/null and b/.yarn/cache/eslint-npm-9.39.4-81a84865c0-1955067c2d.zip differ diff --git a/.yarn/cache/eslint-scope-npm-9.1.2-50e6e92f41-9fb8bca5a7.zip b/.yarn/cache/eslint-scope-npm-9.1.2-50e6e92f41-9fb8bca5a7.zip new file mode 100644 index 00000000..bdebb98b Binary files /dev/null and b/.yarn/cache/eslint-scope-npm-9.1.2-50e6e92f41-9fb8bca5a7.zip differ diff --git a/.yarn/cache/eslint-visitor-keys-npm-5.0.1-30a44b062b-16190bdf2c.zip b/.yarn/cache/eslint-visitor-keys-npm-5.0.1-30a44b062b-16190bdf2c.zip new file mode 100644 index 00000000..8b79fa53 Binary files /dev/null and b/.yarn/cache/eslint-visitor-keys-npm-5.0.1-30a44b062b-16190bdf2c.zip differ diff --git a/.yarn/cache/espree-npm-11.2.0-095134f369-cf87e18ffd.zip b/.yarn/cache/espree-npm-11.2.0-095134f369-cf87e18ffd.zip new file mode 100644 index 00000000..264c60f8 Binary files /dev/null and b/.yarn/cache/espree-npm-11.2.0-095134f369-cf87e18ffd.zip differ diff --git a/.yarn/cache/esquery-npm-1.7.0-c1e8da438a-77d5173db4.zip b/.yarn/cache/esquery-npm-1.7.0-c1e8da438a-77d5173db4.zip new file mode 100644 index 00000000..765a96dd Binary files /dev/null and b/.yarn/cache/esquery-npm-1.7.0-c1e8da438a-77d5173db4.zip differ diff --git a/.yarn/cache/eventemitter3-npm-5.0.4-012eae30d7-575b8cac8d.zip b/.yarn/cache/eventemitter3-npm-5.0.4-012eae30d7-575b8cac8d.zip new file mode 100644 index 00000000..3a806b4d Binary files /dev/null and b/.yarn/cache/eventemitter3-npm-5.0.4-012eae30d7-575b8cac8d.zip differ diff --git a/.yarn/cache/fsevents-patch-6b67494872-10c0.zip b/.yarn/cache/fsevents-patch-6b67494872-10c0.zip new file mode 100644 index 00000000..996683a7 Binary files /dev/null and b/.yarn/cache/fsevents-patch-6b67494872-10c0.zip differ diff --git a/.yarn/cache/get-east-asian-width-npm-1.5.0-b9efadad1a-bff8bbc8d8.zip b/.yarn/cache/get-east-asian-width-npm-1.5.0-b9efadad1a-bff8bbc8d8.zip new file mode 100644 index 00000000..eb47bfd7 Binary files /dev/null and b/.yarn/cache/get-east-asian-width-npm-1.5.0-b9efadad1a-bff8bbc8d8.zip differ diff --git a/.yarn/cache/husky-npm-9.1.7-5b02eaabc4-35bb110a71.zip b/.yarn/cache/husky-npm-9.1.7-5b02eaabc4-35bb110a71.zip new file mode 100644 index 00000000..73c63eb9 Binary files /dev/null and b/.yarn/cache/husky-npm-9.1.7-5b02eaabc4-35bb110a71.zip differ diff --git a/.yarn/cache/is-fullwidth-code-point-npm-5.1.0-4eb5872a79-c1172c2e41.zip b/.yarn/cache/is-fullwidth-code-point-npm-5.1.0-4eb5872a79-c1172c2e41.zip new file mode 100644 index 00000000..c5f0f4ab Binary files /dev/null and b/.yarn/cache/is-fullwidth-code-point-npm-5.1.0-4eb5872a79-c1172c2e41.zip differ diff --git a/.yarn/cache/js-yaml-npm-4.1.1-86ec786790-561c7d7088.zip b/.yarn/cache/js-yaml-npm-4.1.1-86ec786790-561c7d7088.zip new file mode 100644 index 00000000..5a2a77ee Binary files /dev/null and b/.yarn/cache/js-yaml-npm-4.1.1-86ec786790-561c7d7088.zip differ diff --git a/.yarn/cache/lightningcss-darwin-arm64-npm-1.30.2-57ebf00548-10c0.zip b/.yarn/cache/lightningcss-darwin-arm64-npm-1.30.2-57ebf00548-10c0.zip new file mode 100644 index 00000000..c239a611 Binary files /dev/null and b/.yarn/cache/lightningcss-darwin-arm64-npm-1.30.2-57ebf00548-10c0.zip differ diff --git a/.yarn/cache/lightningcss-win32-x64-msvc-npm-1.30.2-868de13b8a-10c0.zip b/.yarn/cache/lightningcss-win32-x64-msvc-npm-1.30.2-868de13b8a-10c0.zip deleted file mode 100644 index ae776672..00000000 Binary files a/.yarn/cache/lightningcss-win32-x64-msvc-npm-1.30.2-868de13b8a-10c0.zip and /dev/null differ diff --git a/.yarn/cache/lint-staged-npm-16.4.0-bc70d40d4b-67625a49a2.zip b/.yarn/cache/lint-staged-npm-16.4.0-bc70d40d4b-67625a49a2.zip new file mode 100644 index 00000000..e6444abd Binary files /dev/null and b/.yarn/cache/lint-staged-npm-16.4.0-bc70d40d4b-67625a49a2.zip differ diff --git a/.yarn/cache/listr2-npm-9.0.5-8443b39154-46448d1ba0.zip b/.yarn/cache/listr2-npm-9.0.5-8443b39154-46448d1ba0.zip new file mode 100644 index 00000000..32dbb29e Binary files /dev/null and b/.yarn/cache/listr2-npm-9.0.5-8443b39154-46448d1ba0.zip differ diff --git a/.yarn/cache/log-update-npm-6.1.0-2ca9435417-4b350c0a83.zip b/.yarn/cache/log-update-npm-6.1.0-2ca9435417-4b350c0a83.zip new file mode 100644 index 00000000..1fdf3104 Binary files /dev/null and b/.yarn/cache/log-update-npm-6.1.0-2ca9435417-4b350c0a83.zip differ diff --git a/.yarn/cache/mimic-function-npm-5.0.1-5078456e31-f3d9464dd1.zip b/.yarn/cache/mimic-function-npm-5.0.1-5078456e31-f3d9464dd1.zip new file mode 100644 index 00000000..bd47b7fd Binary files /dev/null and b/.yarn/cache/mimic-function-npm-5.0.1-5078456e31-f3d9464dd1.zip differ diff --git a/.yarn/cache/minimatch-npm-10.2.5-f1c8297822-6bb058bd63.zip b/.yarn/cache/minimatch-npm-10.2.5-f1c8297822-6bb058bd63.zip new file mode 100644 index 00000000..8b1045ad Binary files /dev/null and b/.yarn/cache/minimatch-npm-10.2.5-f1c8297822-6bb058bd63.zip differ diff --git a/.yarn/cache/minimatch-npm-3.1.5-86958baf50-2ecbdc0d33.zip b/.yarn/cache/minimatch-npm-3.1.5-86958baf50-2ecbdc0d33.zip new file mode 100644 index 00000000..7f7b4542 Binary files /dev/null and b/.yarn/cache/minimatch-npm-3.1.5-86958baf50-2ecbdc0d33.zip differ diff --git a/.yarn/cache/onetime-npm-7.0.0-cfdd2a579d-5cb9179d74.zip b/.yarn/cache/onetime-npm-7.0.0-cfdd2a579d-5cb9179d74.zip new file mode 100644 index 00000000..bd3cef93 Binary files /dev/null and b/.yarn/cache/onetime-npm-7.0.0-cfdd2a579d-5cb9179d74.zip differ diff --git a/.yarn/cache/prettier-npm-3.8.3-ecd857a540-754816fd75.zip b/.yarn/cache/prettier-npm-3.8.3-ecd857a540-754816fd75.zip new file mode 100644 index 00000000..59540e0d Binary files /dev/null and b/.yarn/cache/prettier-npm-3.8.3-ecd857a540-754816fd75.zip differ diff --git a/.yarn/cache/react-redux-npm-9.2.0-d87bb27c82-00d485f9d9.zip b/.yarn/cache/react-redux-npm-9.2.0-d87bb27c82-00d485f9d9.zip new file mode 100644 index 00000000..d812c40a Binary files /dev/null and b/.yarn/cache/react-redux-npm-9.2.0-d87bb27c82-00d485f9d9.zip differ diff --git a/.yarn/cache/redux-npm-5.0.1-f8e6b1cb23-b10c283571.zip b/.yarn/cache/redux-npm-5.0.1-f8e6b1cb23-b10c283571.zip new file mode 100644 index 00000000..1446fda1 Binary files /dev/null and b/.yarn/cache/redux-npm-5.0.1-f8e6b1cb23-b10c283571.zip differ diff --git a/.yarn/cache/restore-cursor-npm-5.1.0-b8fd1128bf-c2ba89131e.zip b/.yarn/cache/restore-cursor-npm-5.1.0-b8fd1128bf-c2ba89131e.zip new file mode 100644 index 00000000..9351ffff Binary files /dev/null and b/.yarn/cache/restore-cursor-npm-5.1.0-b8fd1128bf-c2ba89131e.zip differ diff --git a/.yarn/cache/rfdc-npm-1.4.1-1a1c63d052-4614e42923.zip b/.yarn/cache/rfdc-npm-1.4.1-1a1c63d052-4614e42923.zip new file mode 100644 index 00000000..65cf4fa7 Binary files /dev/null and b/.yarn/cache/rfdc-npm-1.4.1-1a1c63d052-4614e42923.zip differ diff --git a/.yarn/cache/slice-ansi-npm-7.1.2-704a2770d3-36742f2eb0.zip b/.yarn/cache/slice-ansi-npm-7.1.2-704a2770d3-36742f2eb0.zip new file mode 100644 index 00000000..2659d14a Binary files /dev/null and b/.yarn/cache/slice-ansi-npm-7.1.2-704a2770d3-36742f2eb0.zip differ diff --git a/.yarn/cache/slice-ansi-npm-8.0.0-43410a40af-0ce4aa91fe.zip b/.yarn/cache/slice-ansi-npm-8.0.0-43410a40af-0ce4aa91fe.zip new file mode 100644 index 00000000..75c3a335 Binary files /dev/null and b/.yarn/cache/slice-ansi-npm-8.0.0-43410a40af-0ce4aa91fe.zip differ diff --git a/.yarn/cache/string-argv-npm-0.3.2-6e057a88f1-75c02a8375.zip b/.yarn/cache/string-argv-npm-0.3.2-6e057a88f1-75c02a8375.zip new file mode 100644 index 00000000..616e7949 Binary files /dev/null and b/.yarn/cache/string-argv-npm-0.3.2-6e057a88f1-75c02a8375.zip differ diff --git a/.yarn/cache/string-width-npm-7.2.0-93572222c9-eb0430dd43.zip b/.yarn/cache/string-width-npm-7.2.0-93572222c9-eb0430dd43.zip new file mode 100644 index 00000000..53015289 Binary files /dev/null and b/.yarn/cache/string-width-npm-7.2.0-93572222c9-eb0430dd43.zip differ diff --git a/.yarn/cache/string-width-npm-8.2.1-28adc8e13a-d467b4eaf4.zip b/.yarn/cache/string-width-npm-8.2.1-28adc8e13a-d467b4eaf4.zip new file mode 100644 index 00000000..ab76f3ad Binary files /dev/null and b/.yarn/cache/string-width-npm-8.2.1-28adc8e13a-d467b4eaf4.zip differ diff --git a/.yarn/cache/strip-ansi-npm-7.2.0-f2a3a63299-544d13b758.zip b/.yarn/cache/strip-ansi-npm-7.2.0-f2a3a63299-544d13b758.zip new file mode 100644 index 00000000..5f42abdf Binary files /dev/null and b/.yarn/cache/strip-ansi-npm-7.2.0-f2a3a63299-544d13b758.zip differ diff --git a/.yarn/cache/tinyexec-npm-1.1.2-1bfd8015d0-9e0ef6c001.zip b/.yarn/cache/tinyexec-npm-1.1.2-1bfd8015d0-9e0ef6c001.zip new file mode 100644 index 00000000..03f69b07 Binary files /dev/null and b/.yarn/cache/tinyexec-npm-1.1.2-1bfd8015d0-9e0ef6c001.zip differ diff --git a/.yarn/cache/turbo-darwin-arm64-npm-2.6.0-f639398cc6-10c0.zip b/.yarn/cache/turbo-darwin-arm64-npm-2.6.0-f639398cc6-10c0.zip new file mode 100644 index 00000000..a2739eb0 Binary files /dev/null and b/.yarn/cache/turbo-darwin-arm64-npm-2.6.0-f639398cc6-10c0.zip differ diff --git a/.yarn/cache/wrap-ansi-npm-9.0.2-b66ec4013c-3305839b9a.zip b/.yarn/cache/wrap-ansi-npm-9.0.2-b66ec4013c-3305839b9a.zip new file mode 100644 index 00000000..10c0d898 Binary files /dev/null and b/.yarn/cache/wrap-ansi-npm-9.0.2-b66ec4013c-3305839b9a.zip differ diff --git a/.yarn/cache/yaml-npm-2.8.3-dfea86f9e0-ddff0e11c1.zip b/.yarn/cache/yaml-npm-2.8.3-dfea86f9e0-ddff0e11c1.zip new file mode 100644 index 00000000..bbef118e Binary files /dev/null and b/.yarn/cache/yaml-npm-2.8.3-dfea86f9e0-ddff0e11c1.zip differ diff --git a/apps/nowait-admin/eslint.config.js b/apps/nowait-admin/eslint.config.js index 092408a9..179899af 100644 --- a/apps/nowait-admin/eslint.config.js +++ b/apps/nowait-admin/eslint.config.js @@ -3,6 +3,7 @@ import globals from 'globals' import reactHooks from 'eslint-plugin-react-hooks' import reactRefresh from 'eslint-plugin-react-refresh' import tseslint from 'typescript-eslint' +import eslintConfigPrettier from 'eslint-config-prettier' export default tseslint.config( { ignores: ['dist'] }, @@ -12,6 +13,9 @@ export default tseslint.config( languageOptions: { ecmaVersion: 2020, globals: globals.browser, + parserOptions: { + tsconfigRootDir: import.meta.dirname, + }, }, plugins: { 'react-hooks': reactHooks, @@ -25,4 +29,5 @@ export default tseslint.config( ], }, }, + eslintConfigPrettier, ) diff --git a/apps/nowait-admin/package.json b/apps/nowait-admin/package.json index a1cd6c2f..51c35bcd 100644 --- a/apps/nowait-admin/package.json +++ b/apps/nowait-admin/package.json @@ -11,6 +11,7 @@ "preview": "vite preview" }, "dependencies": { + "@hello-pangea/dnd": "^18.0.1", "@repo/ui": "workspace:*", "@tanstack/react-query": "^5.81.2", "@tiptap/core": "^3.0.7", @@ -55,6 +56,7 @@ "@vitejs/plugin-react": "^4.4.1", "autoprefixer": "^10.4.20", "eslint": "^9.25.0", + "eslint-config-prettier": "^10.1.8", "eslint-plugin-react-hooks": "^5.2.0", "eslint-plugin-react-refresh": "^0.4.19", "globals": "^16.0.0", diff --git a/apps/nowait-admin/src/pages/AdminBooth/components/AccountPage.tsx b/apps/nowait-admin/src/pages/AdminBooth/components/AccountPage.tsx index 062059db..9e2a20e5 100644 --- a/apps/nowait-admin/src/pages/AdminBooth/components/AccountPage.tsx +++ b/apps/nowait-admin/src/pages/AdminBooth/components/AccountPage.tsx @@ -146,10 +146,10 @@ const AccountPage = () => { (opt) => (inputs[opt.id] ?? "").trim().length > 0 ); - const serverKakao = storePayment?.response.kakaoPayUrl; - const serverToss = storePayment?.response.tossUrl; - const serverNaver = storePayment?.response.naverPayUrl; - const serverAccount = storePayment?.response.accountNumber; + const serverKakao = storePayment?.response?.kakaoPayUrl; + const serverToss = storePayment?.response?.tossUrl; + const serverNaver = storePayment?.response?.naverPayUrl; + const serverAccount = storePayment?.response?.accountNumber; const curKakao = inputs.kakao; const curToss = inputs.toss; diff --git a/apps/nowait-admin/src/pages/AdminBooth/components/MenuSection.tsx b/apps/nowait-admin/src/pages/AdminBooth/components/MenuSection.tsx index 1ffb47c2..ad63b86b 100644 --- a/apps/nowait-admin/src/pages/AdminBooth/components/MenuSection.tsx +++ b/apps/nowait-admin/src/pages/AdminBooth/components/MenuSection.tsx @@ -1,35 +1,34 @@ -import { Suspense, lazy, useEffect, useState } from "react"; -import type { CSSProperties } from "react"; -import editOrderIcon from "../../../assets/edit_order_icon.svg"; -import ToggleSwitch from "../../AdminHome/components/ToggleSwitch"; -import MenuModal from "./Modal/menuModal"; -import { useCreateMenu } from "../../../hooks/booth/menu/useCreateMenu"; -import { useUploadMenuImage } from "../../../hooks/booth/useUploadMenuImage"; -import { useGetAllMenus } from "../../../hooks/booth/menu/useGetAllMenus"; -import { useUpdateMenu } from "../../../hooks/booth/useUpdateMenu"; -import addIcon from "../../../assets/booth/add.svg"; -import MenuRemoveModal from "./Modal/MenuRemoveModal"; -import { useDeleteMenu } from "../../../hooks/booth/menu/useDeleteMenu"; -import { useToggleMenuSoldOut } from "../../../hooks/booth/menu/useToggleMenuSoldOut"; -import { useUpdateMenuSort } from "../../../hooks/booth/menu/useUpadateMenuSort"; -import imgPlaceHolder from "../../../assets/menu_placeholder.png"; -import { SwipeableRow } from "./Swipe/SwipeableRow"; +import { Suspense, lazy, useEffect, useState } from 'react'; +import type { CSSProperties } from 'react'; +import type { DropResult } from '@hello-pangea/dnd'; +import editOrderIcon from '../../../assets/edit_order_icon.svg'; +import ToggleSwitch from '../../AdminHome/components/ToggleSwitch'; +import MenuModal from './Modal/menuModal'; +import { useCreateMenu } from '../../../hooks/booth/menu/useCreateMenu'; +import { useUploadMenuImage } from '../../../hooks/booth/useUploadMenuImage'; +import { useGetAllMenus } from '../../../hooks/booth/menu/useGetAllMenus'; +import { useUpdateMenu } from '../../../hooks/booth/useUpdateMenu'; +import addIcon from '../../../assets/booth/add.svg'; +import MenuRemoveModal from './Modal/MenuRemoveModal'; +import { useDeleteMenu } from '../../../hooks/booth/menu/useDeleteMenu'; +import { useToggleMenuSoldOut } from '../../../hooks/booth/menu/useToggleMenuSoldOut'; +import { useUpdateMenuSort } from '../../../hooks/booth/menu/useUpadateMenuSort'; +import imgPlaceHolder from '../../../assets/menu_placeholder.png'; +import { SwipeableRow } from './Swipe/SwipeableRow'; const DragDropContext = lazy(() => - import("react-beautiful-dnd").then((mod) => ({ + import('@hello-pangea/dnd').then((mod) => ({ default: mod.DragDropContext, })) ); const Droppable = lazy(() => - import("react-beautiful-dnd").then((mod) => ({ default: mod.Droppable })) + import('@hello-pangea/dnd').then((mod) => ({ default: mod.Droppable })) ); const Draggable = lazy(() => - import("react-beautiful-dnd").then((mod) => ({ default: mod.Draggable })) + import('@hello-pangea/dnd').then((mod) => ({ default: mod.Draggable })) ); -function lockVertical( - style?: CSSProperties -): CSSProperties | undefined { +function lockVertical(style?: CSSProperties): CSSProperties | undefined { if (!style || !style.transform) return style; const t = String(style.transform); const m2d = t.match(/translate\((-?\d+\.?\d*)px,\s*(-?\d+\.?\d*)px\)/); @@ -37,9 +36,7 @@ function lockVertical( const [, , y] = m2d; return { ...style, transform: `translate(0px, ${y}px)` }; } - const m3d = t.match( - /translate3d\((-?\d+\.?\d*)px,\s*(-?\d+\.?\d*)px,\s*(-?\d+\.?\d*)px\)/ - ); + const m3d = t.match(/translate3d\((-?\d+\.?\d*)px,\s*(-?\d+\.?\d*)px,\s*(-?\d+\.?\d*)px\)/); if (m3d) { const [, , y, z] = m3d; return { ...style, transform: `translate3d(0px, ${y}px, ${z}px)` }; @@ -49,8 +46,8 @@ function lockVertical( // 세 자리마다 , 붙여서 가격표시 const formatNumber = (num: number) => { - if (!num) return ""; - return String(num).replace(/\B(?=(\d{3})+(?!\d))/g, ","); + if (!num) return ''; + return String(num).replace(/\B(?=(\d{3})+(?!\d))/g, ','); }; interface Menu { @@ -69,12 +66,12 @@ const MenuSection = ({ isTablet }: { isTablet: boolean }) => { const [isAddModalOpen, setIsAddModalOpen] = useState(false); const [isEditModalOpen, setIsEditModalOpen] = useState(false); const [isRemoveModalOpen, setIsRemoveModalOpen] = useState(false); - const [selectedMenu, setSelectedMenu] = useState(null); + const [selectedMenu, setSelectedMenu] = useState(null); const [tempImages, setTempImages] = useState>({}); const { mutate: soldOut } = useToggleMenuSoldOut(); - const storeId = Number(localStorage.getItem("storeId")); - const { data: fetchedMenus = [], refetch } = useGetAllMenus(storeId); + const storeId = Number(localStorage.getItem('storeId')); + const { data: fetchedMenus, refetch } = useGetAllMenus(storeId); // 메뉴 생성 훅 const { mutate: createMenu } = useCreateMenu(); @@ -86,7 +83,7 @@ const MenuSection = ({ isTablet }: { isTablet: boolean }) => { const { mutate: updateMenu } = useUpdateMenu(); const { mutate: updateMenuSort } = useUpdateMenuSort(); - const openEditModal = (menu: any) => { + const openEditModal = (menu: Menu) => { setSelectedMenu(menu); setIsEditModalOpen(true); }; @@ -103,13 +100,13 @@ const MenuSection = ({ isTablet }: { isTablet: boolean }) => { adminDisplayName: newMenu.adminDisplayName, name: newMenu.name, description: newMenu.description, - price: parseInt(newMenu.price.replace(/[^0-9]/g, ""), 10), + price: parseInt(newMenu.price.replace(/[^0-9]/g, ''), 10), }; createMenu(payload, { onSuccess: (data) => { const created = data.response; - console.log(created, "생성된 메뉴"); + console.log(created, '생성된 메뉴'); // 상태에 넣을 새 객체 const menuItem: Menu = { @@ -131,9 +128,7 @@ const MenuSection = ({ isTablet }: { isTablet: boolean }) => { setTempImages((prev) => ({ ...prev, [created.menuId]: tempUrl })); setMenus((prev) => - prev.map((m) => - m.id === created.menuId ? { ...m, imageUrl: tempUrl } : m - ) + prev.map((m) => (m.id === created.menuId ? { ...m, imageUrl: tempUrl } : m)) ); uploadMenuImage( { @@ -144,24 +139,20 @@ const MenuSection = ({ isTablet }: { isTablet: boolean }) => { onSuccess: (imgData) => { const url = imgData.url; setMenus((prev) => - prev.map((m) => - m.id === created.menuId ? { ...m, imageUrl: url } : m - ) + prev.map((m) => (m.id === created.menuId ? { ...m, imageUrl: url } : m)) ); }, onError: () => { - console.log( - "메뉴는 추가되었지만 이미지 업로드에 실패했습니다." - ); + console.log('메뉴는 추가되었지만 이미지 업로드에 실패했습니다.'); }, } ); } else { - console.log("메뉴가 성공적으로 추가되었습니다."); + console.log('메뉴가 성공적으로 추가되었습니다.'); } }, onError: () => { - console.log("메뉴 추가에 실패했습니다."); + console.log('메뉴 추가에 실패했습니다.'); }, }); }; @@ -179,19 +170,17 @@ const MenuSection = ({ isTablet }: { isTablet: boolean }) => { adminDisplayName: updated.adminDisplayName, name: updated.name, description: updated.description, - price: parseInt(String(updated.price).replace(/[^0-9]/g, ""), 10), + price: parseInt(String(updated.price).replace(/[^0-9]/g, ''), 10), }; updateMenu(payload, { onSuccess: () => { setMenus((prev) => - prev.map((menu) => - menu.id === updated.id ? { ...menu, ...payload } : menu - ) + prev.map((menu) => (menu.id === updated.id ? { ...menu, ...payload } : menu)) ); }, onError: () => { - console.log("메뉴 수정에 실패했습니다."); + console.log('메뉴 수정에 실패했습니다.'); }, }); @@ -204,13 +193,11 @@ const MenuSection = ({ isTablet }: { isTablet: boolean }) => { onSuccess: (imgData) => { const url = imgData.url; setMenus((prev) => - prev.map((m) => - m.id === updated.id ? { ...m, imageUrl: url } : m - ) + prev.map((m) => (m.id === updated.id ? { ...m, imageUrl: url } : m)) ); }, onError: () => { - console.log("이미지 업로드 실패"); + console.log('이미지 업로드 실패'); }, } ); @@ -227,7 +214,7 @@ const MenuSection = ({ isTablet }: { isTablet: boolean }) => { setIsEditModalOpen(false); }, onError: () => { - console.log("메뉴 삭제에 실패했습니다."); + console.log('메뉴 삭제에 실패했습니다.'); }, }); }; @@ -242,7 +229,7 @@ const MenuSection = ({ isTablet }: { isTablet: boolean }) => { const updatedMenus = [...menus]; updatedMenus[index].soldOut = !updatedMenus[index].soldOut; setMenus(updatedMenus); - console.log(data, "품절 토글"); + console.log(data, '품절 토글'); console.log(menus); }, onError: () => { @@ -257,7 +244,7 @@ const MenuSection = ({ isTablet }: { isTablet: boolean }) => { ); }; - const handleDragEnd = (result: any) => { + const handleDragEnd = (result: DropResult) => { if (!result.destination) return; const reordered = Array.from(menus); @@ -272,16 +259,17 @@ const MenuSection = ({ isTablet }: { isTablet: boolean }) => { })); updateMenuSort(body, { onSuccess: (res) => { - console.log("순서 저장 성공", res); + console.log('순서 저장 성공', res); refetch(); }, onError: (err) => { - console.log("순서 저장 에러", err); + console.log('순서 저장 에러', err); }, }); }; useEffect(() => { + if (!fetchedMenus) return; const transformed = fetchedMenus .map((menu) => ({ id: menu.menuId, @@ -297,7 +285,7 @@ const MenuSection = ({ isTablet }: { isTablet: boolean }) => { setMenus(transformed); }, [fetchedMenus]); - console.log(menus, "메뉴목록들"); + console.log(menus, '메뉴목록들'); return (
@@ -306,13 +294,11 @@ const MenuSection = ({ isTablet }: { isTablet: boolean }) => {
-

- {menus.length}개의 메뉴 -

+

{menus.length}개의 메뉴

{

- {editMode ? "순서 표시" : "품절 표시"} + {editMode ? '순서 표시' : '품절 표시'}

}
@@ -337,10 +321,12 @@ const MenuSection = ({ isTablet }: { isTablet: boolean }) => {
}> + {/* @hello-pangea/dnd: react19,strictmode에서 isCombineEnabled prop 겁증 */} {(provided) => (
@@ -352,9 +338,7 @@ const MenuSection = ({ isTablet }: { isTablet: boolean }) => { isDragDisabled={!editMode} > {(provided) => { - const lockedStyle = lockVertical( - provided.draggableProps.style - ); + const lockedStyle = lockVertical(provided.draggableProps.style); return editMode ? (
{ >
placeholder
- - {menu.name} - + {menu.name} {formatNumber(menu.price)}원 @@ -408,8 +386,7 @@ const MenuSection = ({ isTablet }: { isTablet: boolean }) => { contentProps={{ ...provided.draggableProps, // isDragDisabled=true라 드래그는 안됨 style: lockedStyle, - className: - "flex justify-between items-center py-4 w-full", + className: 'flex justify-between items-center py-4 w-full', }} >
{ >
placeholder
- - {menu.name} - + {menu.name} {formatNumber(menu.price)}원
- toggleSoldOut(idx)} - /> + toggleSoldOut(idx)} /> ); }} diff --git a/apps/nowait-admin/src/pages/AdminBooth/components/NoticeEditor.tsx b/apps/nowait-admin/src/pages/AdminBooth/components/NoticeEditor.tsx index 53fbffd9..7afc17e2 100644 --- a/apps/nowait-admin/src/pages/AdminBooth/components/NoticeEditor.tsx +++ b/apps/nowait-admin/src/pages/AdminBooth/components/NoticeEditor.tsx @@ -1,33 +1,27 @@ -import { useState, useEffect } from "react"; -import { useEditor, EditorContent } from "@tiptap/react"; -import StarterKit from "@tiptap/starter-kit"; -import Underline from "@tiptap/extension-underline"; -import { useRemoveEmoji } from "../../../hooks/useRemoveEmoji"; -import boldIcon from "../../../assets/editorToolBar/bold.svg"; -import italicIcon from "../../../assets/editorToolBar/italic.svg"; -import sunderIcon from "../../../assets/editorToolBar/sunder.svg"; -import underlineIcon from "../../../assets/editorToolBar/underline.svg"; -import Placeholder from "@tiptap/extension-placeholder"; -import HardBreak from "@tiptap/extension-hard-break"; +import { useState, useEffect } from 'react'; +import { useEditor, EditorContent, type Editor } from '@tiptap/react'; +import StarterKit from '@tiptap/starter-kit'; +import Underline from '@tiptap/extension-underline'; +import { useRemoveEmoji } from '../../../hooks/useRemoveEmoji'; +import boldIcon from '../../../assets/editorToolBar/bold.svg'; +import italicIcon from '../../../assets/editorToolBar/italic.svg'; +import sunderIcon from '../../../assets/editorToolBar/sunder.svg'; +import underlineIcon from '../../../assets/editorToolBar/underline.svg'; +import Placeholder from '@tiptap/extension-placeholder'; +import HardBreak from '@tiptap/extension-hard-break'; -const MenuBar = ({ editor }: { editor: any }) => { +const MenuBar = ({ editor }: { editor: Editor | null }) => { const [editorChanged, setEditorChanged] = useState(0); - const exclusive = (tool: "bold" | "italic" | "underline" | "strike") => { + const exclusive = (tool: 'bold' | 'italic' | 'underline' | 'strike') => { if (!editor) return; const isActiveNow = - (tool === "bold" && editor.isActive("bold")) || - (tool === "italic" && editor.isActive("italic")) || - (tool === "underline" && editor.isActive("underline")) || - (tool === "strike" && editor.isActive("strike")); + (tool === 'bold' && editor.isActive('bold')) || + (tool === 'italic' && editor.isActive('italic')) || + (tool === 'underline' && editor.isActive('underline')) || + (tool === 'strike' && editor.isActive('strike')); // 전부해제 - const c = editor - .chain() - .focus() - .unsetBold() - .unsetItalic() - .unsetUnderline() - .unsetStrike(); + const c = editor.chain().focus().unsetBold().unsetItalic().unsetUnderline().unsetStrike(); //이미 활성 상태였다면 툴 바 전체 해제 --> 즉 기본 글꼴 if (isActiveNow) { @@ -36,10 +30,10 @@ const MenuBar = ({ editor }: { editor: any }) => { } //활성 상태였던게 없다면 클릭한 툴 버튼 기능만 활성화 - if (tool === "bold") c.setBold(); - if (tool === "italic") c.setItalic(); - if (tool === "underline") c.setUnderline(); - if (tool === "strike") c.setStrike(); + if (tool === 'bold') c.setBold(); + if (tool === 'italic') c.setItalic(); + if (tool === 'underline') c.setUnderline(); + if (tool === 'strike') c.setStrike(); c.run(); }; @@ -50,46 +44,40 @@ const MenuBar = ({ editor }: { editor: any }) => { console.log(editorChanged); const update = () => setEditorChanged((prev) => prev + 1); - editor.on("transaction", update); - return () => editor.off("transaction", update); + editor.on('transaction', update); + return () => { + editor.off('transaction', update); + }; }, [editor]); if (!editor) return null; const baseBtnClass = - "h-[34px] w-[34px] flex justify-center items-center rounded hover:bg-gray-100 transition-colors duration-200"; + 'h-[34px] w-[34px] flex justify-center items-center rounded hover:bg-gray-100 transition-colors duration-200'; return (
@@ -115,21 +103,23 @@ const NoticeEditor = ({ keepMarks: true, // 줄바꿈 시 볼드/이탤릭 같은 마크 유지 }), Placeholder.configure({ - placeholder: "내용을 입력해주세요", + placeholder: '내용을 입력해주세요', showOnlyCurrent: false, // 포커스 없을 때도 표시 - emptyNodeClass: "is-editor-empty", // CSS 타겟 클래스 + emptyNodeClass: 'is-editor-empty', // CSS 타겟 클래스 }), ], - content: notice || "", + content: notice || '', }); const { removeEmojiAll } = useRemoveEmoji(); // 부모로 내용 동기화 useEffect(() => { if (!editor) return; - editor.on("update", () => { - setNotice(editor.getHTML()); - }); + const handleUpdate = () => setNotice(editor.getHTML()); + editor.on('update', handleUpdate); + return () => { + editor.off('update', handleUpdate); + }; }, [editor, setNotice]); useEffect(() => { diff --git a/apps/nowait-admin/tsconfig.app.json b/apps/nowait-admin/tsconfig.app.json index 1d89d607..ae1e82ee 100644 --- a/apps/nowait-admin/tsconfig.app.json +++ b/apps/nowait-admin/tsconfig.app.json @@ -15,8 +15,6 @@ "noEmit": true, "jsx": "react-jsx", - "types": ["vite/client"], - /* Linting */ "strict": true, "noUnusedLocals": true, diff --git a/apps/nowait-admin/tsconfig.app.tsbuildinfo b/apps/nowait-admin/tsconfig.app.tsbuildinfo index 16b045b0..2e70d338 100644 --- a/apps/nowait-admin/tsconfig.app.tsbuildinfo +++ b/apps/nowait-admin/tsconfig.app.tsbuildinfo @@ -1 +1 @@ -{"root":["./src/AppRouter.tsx","./src/global.d.ts","./src/main.tsx","./src/vite-env.d.ts","./src/Context/dirtyModeContext.tsx","./src/components/AdminSidebar.tsx","./src/components/ConfirmRemoveModal.tsx","./src/components/ImageBox.tsx","./src/components/MenuItem.tsx","./src/components/MobileAdminNav.tsx","./src/components/MobileMenuBar.tsx","./src/components/NewOrderToast.tsx","./src/components/RedBadge.tsx","./src/components/RequireAdminAuth.tsx","./src/components/closeButton.tsx","./src/hooks/useDetectNewOrders.tsx","./src/hooks/useGetOrderList.tsx","./src/hooks/useNewOrderToastStore.tsx","./src/hooks/usePostAdminLogin.tsx","./src/hooks/useRemoveEmoji.tsx","./src/hooks/useToggleActive.tsx","./src/hooks/useUpdateOrderStatus.tsx","./src/hooks/useWindowWidth.tsx","./src/hooks/Reservation/useGetCompletedList.tsx","./src/hooks/Reservation/useGetReservationList.tsx","./src/hooks/Reservation/useUpdateReservationStatus.tsx","./src/hooks/analytics/useGetPopularMenu.tsx","./src/hooks/analytics/useGetSalesByDate.tsx","./src/hooks/analytics/useGetTopSalse.tsx","./src/hooks/booth/useUpdateMenu.tsx","./src/hooks/booth/useUploadMenuImage.tsx","./src/hooks/booth/menu/useCreateMenu.tsx","./src/hooks/booth/menu/useDeleteBannerImage.tsx","./src/hooks/booth/menu/useDeleteMenu.tsx","./src/hooks/booth/menu/useGetAllMenus.tsx","./src/hooks/booth/menu/useGetMenuDetail.tsx","./src/hooks/booth/menu/useToggleMenuSoldOut.tsx","./src/hooks/booth/menu/useUpadateMenuSort.tsx","./src/hooks/booth/payment/useCreateStorePayment.tsx","./src/hooks/booth/payment/useGetStorePayment.tsx","./src/hooks/booth/payment/useUpdateStorePayment.tsx","./src/hooks/booth/store/useGetStore.tsx","./src/hooks/booth/store/useUpdateStore.tsx","./src/hooks/booth/store/useUploadStoreBannerImages.ts","./src/hooks/booth/store/useUploadStoreProfileImage.tsx","./src/hooks/booth/type/booth.ts","./src/layout/AdminLayout.tsx","./src/pages/AdminAnalytics/AdminAnalytics.tsx","./src/pages/AdminAnalytics/components/BoothSalesRankingCard .tsx","./src/pages/AdminAnalytics/components/HeaderStatus.tsx","./src/pages/AdminAnalytics/components/SalesCard.tsx","./src/pages/AdminAnalytics/components/TotalSalesCard.tsx","./src/pages/AdminAuth/AdminAuth.tsx","./src/pages/AdminBooth/AdminBooth.tsx","./src/pages/AdminBooth/components/AccountPage.tsx","./src/pages/AdminBooth/components/BoothProfileImage.tsx","./src/pages/AdminBooth/components/BoothSection.tsx","./src/pages/AdminBooth/components/MenuSection.tsx","./src/pages/AdminBooth/components/NoticeEditor.tsx","./src/pages/AdminBooth/components/OperatingTimeSelector.tsx","./src/pages/AdminBooth/components/QrGuides.tsx","./src/pages/AdminBooth/components/SwipeItem.tsx","./src/pages/AdminBooth/components/Button/saveBttn.tsx","./src/pages/AdminBooth/components/DropDown/DropDownSelect.tsx","./src/pages/AdminBooth/components/Modal/ImageCropModal.tsx","./src/pages/AdminBooth/components/Modal/MenuRemoveModal.tsx","./src/pages/AdminBooth/components/Modal/PreviewModal.tsx","./src/pages/AdminBooth/components/Modal/UnsavedChangesModal.tsx","./src/pages/AdminBooth/components/Modal/menuModal.tsx","./src/pages/AdminBooth/components/Rule/payUrlRule.tsx","./src/pages/AdminBooth/components/Swipe/SwipeableRow.tsx","./src/pages/AdminBooth/types/booth.ts","./src/pages/AdminBooth/types/react-swipeable-list.d.ts","./src/pages/AdminHome/AdminHome.tsx","./src/pages/AdminHome/components/RoundTabButton.tsx","./src/pages/AdminHome/components/ToggleSwitch.tsx","./src/pages/AdminHome/components/WaitingCard.tsx","./src/pages/AdminOrders/AdminOrders.tsx","./src/pages/AdminOrders/CookedPage.tsx","./src/pages/AdminOrders/DetailCard.tsx","./src/pages/AdminOrders/OrderCard.tsx","./src/pages/AdminOrders/OrderPageModal.tsx","./src/pages/LoingPage/LoginPage.tsx","./src/pages/LoingPage/components/HalfLabelInput.tsx","./src/pages/NotFound/NotFound.tsx","./src/types/order.ts","./src/utils/AdminApi.tsx","./src/utils/UserApi.tsx","./src/utils/cropUserSelect.tsx","./src/utils/imageCrop.tsx","./src/utils/tableColors.ts","./src/utils/useObjectUrl.ts","./src/utils/useVerticalLockStyle.ts"],"version":"5.8.3"} \ No newline at end of file +{"root":["./src/AppRouter.tsx","./src/global.d.ts","./src/main.tsx","./src/vite-env.d.ts","./src/Context/dirtyModeContext.tsx","./src/components/AdminSidebar.tsx","./src/components/ConfirmRemoveModal.tsx","./src/components/ImageBox.tsx","./src/components/MenuItem.tsx","./src/components/MobileAdminNav.tsx","./src/components/MobileMenuBar.tsx","./src/components/NewOrderToast.tsx","./src/components/RedBadge.tsx","./src/components/RequireAdminAuth.tsx","./src/components/closeButton.tsx","./src/hooks/useDetectNewOrders.tsx","./src/hooks/useGetOrderList.tsx","./src/hooks/useNewOrderToastStore.tsx","./src/hooks/usePostAdminLogin.tsx","./src/hooks/useRemoveEmoji.tsx","./src/hooks/useToggleActive.tsx","./src/hooks/useUpdateOrderStatus.tsx","./src/hooks/useWindowWidth.tsx","./src/hooks/Reservation/useGetCompletedList.tsx","./src/hooks/Reservation/useGetReservationList.tsx","./src/hooks/Reservation/useUpdateReservationStatus.tsx","./src/hooks/analytics/useGetPopularMenu.tsx","./src/hooks/analytics/useGetSalesByDate.tsx","./src/hooks/analytics/useGetTopSalse.tsx","./src/hooks/booth/useUpdateMenu.tsx","./src/hooks/booth/useUploadMenuImage.tsx","./src/hooks/booth/menu/useCreateMenu.tsx","./src/hooks/booth/menu/useDeleteBannerImage.tsx","./src/hooks/booth/menu/useDeleteMenu.tsx","./src/hooks/booth/menu/useGetAllMenus.tsx","./src/hooks/booth/menu/useGetMenuDetail.tsx","./src/hooks/booth/menu/useToggleMenuSoldOut.tsx","./src/hooks/booth/menu/useUpadateMenuSort.tsx","./src/hooks/booth/payment/useCreateStorePayment.tsx","./src/hooks/booth/payment/useGetStorePayment.tsx","./src/hooks/booth/payment/useUpdateStorePayment.tsx","./src/hooks/booth/store/useGetStore.tsx","./src/hooks/booth/store/useUpdateStore.tsx","./src/hooks/booth/store/useUploadStoreBannerImages.ts","./src/hooks/booth/store/useUploadStoreProfileImage.tsx","./src/hooks/booth/type/booth.ts","./src/layout/AdminLayout.tsx","./src/pages/AdminAnalytics/AdminAnalytics.tsx","./src/pages/AdminAnalytics/components/BoothSalesRankingCard .tsx","./src/pages/AdminAnalytics/components/HeaderStatus.tsx","./src/pages/AdminAnalytics/components/SalesCard.tsx","./src/pages/AdminAnalytics/components/TotalSalesCard.tsx","./src/pages/AdminAuth/AdminAuth.tsx","./src/pages/AdminBooth/AdminBooth.tsx","./src/pages/AdminBooth/components/AccountPage.tsx","./src/pages/AdminBooth/components/BoothProfileImage.tsx","./src/pages/AdminBooth/components/BoothSection.tsx","./src/pages/AdminBooth/components/tsx","./src/pages/AdminBooth/components/NoticeEditor.tsx","./src/pages/AdminBooth/components/OperatingTimeSelector.tsx","./src/pages/AdminBooth/components/QrGuides.tsx","./src/pages/AdminBooth/components/SwipeItem.tsx","./src/pages/AdminBooth/components/Button/saveBttn.tsx","./src/pages/AdminBooth/components/DropDown/DropDownSelect.tsx","./src/pages/AdminBooth/components/Modal/ImageCropModal.tsx","./src/pages/AdminBooth/components/Modal/MenuRemoveModal.tsx","./src/pages/AdminBooth/components/Modal/PreviewModal.tsx","./src/pages/AdminBooth/components/Modal/UnsavedChangesModal.tsx","./src/pages/AdminBooth/components/Modal/menuModal.tsx","./src/pages/AdminBooth/components/Rule/payUrlRule.tsx","./src/pages/AdminBooth/components/Swipe/SwipeableRow.tsx","./src/pages/AdminBooth/types/booth.ts","./src/pages/AdminBooth/types/react-swipeable-list.d.ts","./src/pages/AdminHome/AdminHome.tsx","./src/pages/AdminHome/components/RoundTabButton.tsx","./src/pages/AdminHome/components/ToggleSwitch.tsx","./src/pages/AdminHome/components/WaitingCard.tsx","./src/pages/AdminOrders/AdminOrders.tsx","./src/pages/AdminOrders/CookedPage.tsx","./src/pages/AdminOrders/DetailCard.tsx","./src/pages/AdminOrders/OrderCard.tsx","./src/pages/AdminOrders/OrderPageModal.tsx","./src/pages/LoingPage/LoginPage.tsx","./src/pages/LoingPage/components/HalfLabelInput.tsx","./src/pages/NotFound/NotFound.tsx","./src/types/order.ts","./src/utils/AdminApi.tsx","./src/utils/UserApi.tsx","./src/utils/cropUserSelect.tsx","./src/utils/imageCrop.tsx","./src/utils/tableColors.ts","./src/utils/useObjectUrl.ts","./src/utils/useVerticalLockStyle.ts"],"version":"5.8.3"} \ No newline at end of file diff --git a/apps/nowait-user/eslint.config.js b/apps/nowait-user/eslint.config.js index 092408a9..179899af 100644 --- a/apps/nowait-user/eslint.config.js +++ b/apps/nowait-user/eslint.config.js @@ -3,6 +3,7 @@ import globals from 'globals' import reactHooks from 'eslint-plugin-react-hooks' import reactRefresh from 'eslint-plugin-react-refresh' import tseslint from 'typescript-eslint' +import eslintConfigPrettier from 'eslint-config-prettier' export default tseslint.config( { ignores: ['dist'] }, @@ -12,6 +13,9 @@ export default tseslint.config( languageOptions: { ecmaVersion: 2020, globals: globals.browser, + parserOptions: { + tsconfigRootDir: import.meta.dirname, + }, }, plugins: { 'react-hooks': reactHooks, @@ -25,4 +29,5 @@ export default tseslint.config( ], }, }, + eslintConfigPrettier, ) diff --git a/apps/nowait-user/package.json b/apps/nowait-user/package.json index 7809cebc..728d6809 100644 --- a/apps/nowait-user/package.json +++ b/apps/nowait-user/package.json @@ -50,6 +50,7 @@ "@vitejs/plugin-react": "^4.4.1", "autoprefixer": "^10.4.20", "eslint": "8", + "eslint-config-prettier": "^10.1.8", "eslint-plugin-react-hooks": "^5.2.0", "eslint-plugin-react-refresh": "^0.4.19", "globals": "^16.0.0", diff --git a/package.json b/package.json index d7397610..1fc37717 100644 --- a/package.json +++ b/package.json @@ -9,10 +9,15 @@ "scripts": { "dev:admin": "turbo run dev --filter=nowait-admin", "dev:user": "turbo run dev --filter=nowait-user", - "vercel-build": "turbo run build && node scripts/merge-builds.js" + "vercel-build": "turbo run build && node scripts/merge-builds.js", + "prepare": "husky" }, "devDependencies": { "@yarnpkg/sdks": "^3.2.2", + "eslint": "^9", + "husky": "^9.1.7", + "lint-staged": "^16.4.0", + "prettier": "^3.8.3", "turbo": "^2.5.6", "typescript": "^5.8.3" }, diff --git a/yarn.lock b/yarn.lock index 3b3bc0f6..0cc8db20 100644 --- a/yarn.lock +++ b/yarn.lock @@ -196,6 +196,13 @@ __metadata: languageName: node linkType: hard +"@babel/runtime@npm:^7.26.7": + version: 7.29.2 + resolution: "@babel/runtime@npm:7.29.2" + checksum: 10c0/30b80a0140d16467792e1bbeb06f655b0dab70407da38dfac7fedae9c859f9ae9d846ef14ad77bd3814c064295fe9b1bc551f1541ea14646ae9f22b71a8bc17a + languageName: node + linkType: hard + "@babel/template@npm:^7.27.2": version: 7.27.2 resolution: "@babel/template@npm:7.27.2" @@ -453,7 +460,7 @@ __metadata: languageName: node linkType: hard -"@eslint-community/regexpp@npm:^4.10.0, @eslint-community/regexpp@npm:^4.12.1, @eslint-community/regexpp@npm:^4.6.1": +"@eslint-community/regexpp@npm:^4.10.0, @eslint-community/regexpp@npm:^4.12.1, @eslint-community/regexpp@npm:^4.12.2, @eslint-community/regexpp@npm:^4.6.1": version: 4.12.2 resolution: "@eslint-community/regexpp@npm:4.12.2" checksum: 10c0/fddcbc66851b308478d04e302a4d771d6917a0b3740dc351513c0da9ca2eab8a1adf99f5e0aa7ab8b13fa0df005c81adeee7e63a92f3effd7d367a163b721c2d @@ -471,6 +478,17 @@ __metadata: languageName: node linkType: hard +"@eslint/config-array@npm:^0.23.5": + version: 0.23.5 + resolution: "@eslint/config-array@npm:0.23.5" + dependencies: + "@eslint/object-schema": "npm:^3.0.5" + debug: "npm:^4.3.1" + minimatch: "npm:^10.2.4" + checksum: 10c0/b24833c4c76e78ee075d306cd3f095db46b2db0f90cc13a6ee6e4275f9889731c05bf5403ab5fefb79c756e07ac9184ed0e04570341382f9eccbccc80e6d1a0c + languageName: node + linkType: hard + "@eslint/config-helpers@npm:^0.4.2": version: 0.4.2 resolution: "@eslint/config-helpers@npm:0.4.2" @@ -480,6 +498,15 @@ __metadata: languageName: node linkType: hard +"@eslint/config-helpers@npm:^0.5.5": + version: 0.5.5 + resolution: "@eslint/config-helpers@npm:0.5.5" + dependencies: + "@eslint/core": "npm:^1.2.1" + checksum: 10c0/18889c062cd6bdbd4cd92fe57318c44465ea66184aa0ba204a4420712c66764c64093a7905b6c2ffde23e51b268ca2cec1a39c605d336bebf17ee1ba4f0fc0bb + languageName: node + linkType: hard + "@eslint/core@npm:^0.17.0": version: 0.17.0 resolution: "@eslint/core@npm:0.17.0" @@ -489,6 +516,15 @@ __metadata: languageName: node linkType: hard +"@eslint/core@npm:^1.2.1": + version: 1.2.1 + resolution: "@eslint/core@npm:1.2.1" + dependencies: + "@types/json-schema": "npm:^7.0.15" + checksum: 10c0/10979b40588ecfef771fcb5013a542a35fb30692cc95a65f3481b0b36fbd89f5679efeb30d57f4eed35203d859aabace2a620177d6c536f71b299a1af2f3398f + languageName: node + linkType: hard + "@eslint/eslintrc@npm:^2.1.4": version: 2.1.4 resolution: "@eslint/eslintrc@npm:2.1.4" @@ -544,6 +580,13 @@ __metadata: languageName: node linkType: hard +"@eslint/object-schema@npm:^3.0.5": + version: 3.0.5 + resolution: "@eslint/object-schema@npm:3.0.5" + checksum: 10c0/1db337431f520b99e9edda64ef5fafd7ec6a029843eeb608753025125b6649d861d843cffafafd3c4e37926d7d5f9ec0c6a8e3665c13c3da2144e8132892e92e + languageName: node + linkType: hard + "@eslint/plugin-kit@npm:^0.4.1": version: 0.4.1 resolution: "@eslint/plugin-kit@npm:0.4.1" @@ -554,6 +597,16 @@ __metadata: languageName: node linkType: hard +"@eslint/plugin-kit@npm:^0.7.1": + version: 0.7.1 + resolution: "@eslint/plugin-kit@npm:0.7.1" + dependencies: + "@eslint/core": "npm:^1.2.1" + levn: "npm:^0.4.1" + checksum: 10c0/335b0c1c46fd906cb50bd5ce442b9cee18dc44342ce35c718ba4a63d1aa51d2797f16a517b2f4fe371ccd777b6862fafb2dc8195e00e69197ef4cb17ab32c01b + languageName: node + linkType: hard + "@floating-ui/core@npm:^1.7.3": version: 1.7.3 resolution: "@floating-ui/core@npm:1.7.3" @@ -580,6 +633,22 @@ __metadata: languageName: node linkType: hard +"@hello-pangea/dnd@npm:^18.0.1": + version: 18.0.1 + resolution: "@hello-pangea/dnd@npm:18.0.1" + dependencies: + "@babel/runtime": "npm:^7.26.7" + css-box-model: "npm:^1.2.1" + raf-schd: "npm:^4.0.3" + react-redux: "npm:^9.2.0" + redux: "npm:^5.0.1" + peerDependencies: + react: ^18.0.0 || ^19.0.0 + react-dom: ^18.0.0 || ^19.0.0 + checksum: 10c0/30c47ac8048f85e5c6d39c0b5a492cf2cc9e5f532cee12c5ecc77688596c8846670be142bd716212db789f161cd769601a5da135fa99ac65824fbb6a07d4d137 + languageName: node + linkType: hard + "@humanfs/core@npm:^0.19.1": version: 0.19.1 resolution: "@humanfs/core@npm:0.19.1" @@ -2551,7 +2620,14 @@ __metadata: languageName: node linkType: hard -"@types/estree@npm:*, @types/estree@npm:1.0.8, @types/estree@npm:^1.0.0, @types/estree@npm:^1.0.6": +"@types/esrecurse@npm:^4.3.1": + version: 4.3.1 + resolution: "@types/esrecurse@npm:4.3.1" + checksum: 10c0/90dad74d5da3ad27606d8e8e757322f33171cfeaa15ad558b615cf71bb2a516492d18f55f4816384685a3eb2412142e732bbae9a4a7cd2cf3deb7572aa4ebe03 + languageName: node + linkType: hard + +"@types/estree@npm:*, @types/estree@npm:1.0.8, @types/estree@npm:^1.0.0, @types/estree@npm:^1.0.6, @types/estree@npm:^1.0.8": version: 1.0.8 resolution: "@types/estree@npm:1.0.8" checksum: 10c0/39d34d1afaa338ab9763f37ad6066e3f349444f9052b9676a7cc0252ef9485a41c6d81c9c4e0d26e9077993354edf25efc853f3224dd4b447175ef62bdcc86a5 @@ -3088,6 +3164,15 @@ __metadata: languageName: node linkType: hard +"acorn@npm:^8.16.0": + version: 8.16.0 + resolution: "acorn@npm:8.16.0" + bin: + acorn: bin/acorn + checksum: 10c0/c9c52697227661b68d0debaf972222d4f622aa06b185824164e153438afa7b08273432ca43ea792cadb24dada1d46f6f6bb1ef8de9956979288cc1b96bf9914e + languageName: node + linkType: hard + "agent-base@npm:6": version: 6.0.2 resolution: "agent-base@npm:6.0.2" @@ -3116,6 +3201,27 @@ __metadata: languageName: node linkType: hard +"ajv@npm:^6.14.0": + version: 6.15.0 + resolution: "ajv@npm:6.15.0" + dependencies: + fast-deep-equal: "npm:^3.1.1" + fast-json-stable-stringify: "npm:^2.0.0" + json-schema-traverse: "npm:^0.4.1" + uri-js: "npm:^4.2.2" + checksum: 10c0/67966499dd272ecde1c2e467084411132891523d057487587879d39ac04207f4351b7b2324c83198013967fbfa632c1612adc960114a30770fbe07a0773b32c2 + languageName: node + linkType: hard + +"ansi-escapes@npm:^7.0.0": + version: 7.3.0 + resolution: "ansi-escapes@npm:7.3.0" + dependencies: + environment: "npm:^1.0.0" + checksum: 10c0/068961d99f0ef28b661a4a9f84a5d645df93ccf3b9b93816cc7d46bbe1913321d4cdf156bb842a4e1e4583b7375c631fa963efb43001c4eb7ff9ab8f78fc0679 + languageName: node + linkType: hard + "ansi-regex@npm:^5.0.1": version: 5.0.1 resolution: "ansi-regex@npm:5.0.1" @@ -3123,7 +3229,7 @@ __metadata: languageName: node linkType: hard -"ansi-regex@npm:^6.0.1": +"ansi-regex@npm:^6.0.1, ansi-regex@npm:^6.2.2": version: 6.2.2 resolution: "ansi-regex@npm:6.2.2" checksum: 10c0/05d4acb1d2f59ab2cf4b794339c7b168890d44dda4bf0ce01152a8da0213aca207802f930442ce8cd22d7a92f44907664aac6508904e75e038fa944d2601b30f @@ -3139,7 +3245,7 @@ __metadata: languageName: node linkType: hard -"ansi-styles@npm:^6.1.0": +"ansi-styles@npm:^6.1.0, ansi-styles@npm:^6.2.1, ansi-styles@npm:^6.2.3": version: 6.2.3 resolution: "ansi-styles@npm:6.2.3" checksum: 10c0/23b8a4ce14e18fb854693b95351e286b771d23d8844057ed2e7d083cd3e708376c3323707ec6a24365f7d7eda3ca00327fe04092e29e551499ec4c8b7bfac868 @@ -3273,6 +3379,13 @@ __metadata: languageName: node linkType: hard +"balanced-match@npm:^4.0.2": + version: 4.0.4 + resolution: "balanced-match@npm:4.0.4" + checksum: 10c0/07e86102a3eb2ee2a6a1a89164f29d0dbaebd28f2ca3f5ca786f36b8b23d9e417eb3be45a4acf754f837be5ac0a2317de90d3fcb7f4f4dc95720a1f36b26a17b + languageName: node + linkType: hard + "baseline-browser-mapping@npm:^2.8.19": version: 2.8.25 resolution: "baseline-browser-mapping@npm:2.8.25" @@ -3337,6 +3450,15 @@ __metadata: languageName: node linkType: hard +"brace-expansion@npm:^5.0.5": + version: 5.0.5 + resolution: "brace-expansion@npm:5.0.5" + dependencies: + balanced-match: "npm:^4.0.2" + checksum: 10c0/4d238e14ed4f5cc9c07285550a41cef23121ca08ba99fa9eb5b55b580dcb6bf868b8210aa10526bdc9f8dc97f33ca2a7259039c4cc131a93042beddb424c48e3 + languageName: node + linkType: hard + "braces@npm:^3.0.3, braces@npm:~3.0.2": version: 3.0.3 resolution: "braces@npm:3.0.3" @@ -3574,6 +3696,25 @@ __metadata: languageName: node linkType: hard +"cli-cursor@npm:^5.0.0": + version: 5.0.0 + resolution: "cli-cursor@npm:5.0.0" + dependencies: + restore-cursor: "npm:^5.0.0" + checksum: 10c0/7ec62f69b79f6734ab209a3e4dbdc8af7422d44d360a7cb1efa8a0887bbe466a6e625650c466fe4359aee44dbe2dc0b6994b583d40a05d0808a5cb193641d220 + languageName: node + linkType: hard + +"cli-truncate@npm:^5.0.0": + version: 5.2.0 + resolution: "cli-truncate@npm:5.2.0" + dependencies: + slice-ansi: "npm:^8.0.0" + string-width: "npm:^8.2.0" + checksum: 10c0/0d4ec94702ca85b64522ac93633837fb5ea7db17b79b1322a60f6045e6ae2b8cd7bd4c1d19ac7d1f9e10e3bbda1112e172e439b68c02b785ee00da8d6a5c5471 + languageName: node + linkType: hard + "clipanion@npm:^4.0.0-rc.2": version: 4.0.0-rc.4 resolution: "clipanion@npm:4.0.0-rc.4" @@ -3647,6 +3788,13 @@ __metadata: languageName: node linkType: hard +"colorette@npm:^2.0.20": + version: 2.0.20 + resolution: "colorette@npm:2.0.20" + checksum: 10c0/e94116ff33b0ff56f3b83b9ace895e5bf87c2a7a47b3401b8c3f3226e050d5ef76cf4072fb3325f9dc24d1698f9b730baf4e05eeaf861d74a1883073f4c98a40 + languageName: node + linkType: hard + "colorthief@npm:2.3.2": version: 2.3.2 resolution: "colorthief@npm:2.3.2" @@ -3666,6 +3814,13 @@ __metadata: languageName: node linkType: hard +"commander@npm:^14.0.3": + version: 14.0.3 + resolution: "commander@npm:14.0.3" + checksum: 10c0/755652564bbf56ff2ff083313912b326450d3f8d8c85f4b71416539c9a05c3c67dbd206821ca72635bf6b160e2afdefcb458e86b317827d5cb333b69ce7f1a24 + languageName: node + linkType: hard + "comment-json@npm:^2.2.0": version: 2.4.2 resolution: "comment-json@npm:2.4.2" @@ -3771,7 +3926,7 @@ __metadata: languageName: node linkType: hard -"css-box-model@npm:^1.2.0": +"css-box-model@npm:^1.2.0, css-box-model@npm:^1.2.1": version: 1.2.1 resolution: "css-box-model@npm:1.2.1" dependencies: @@ -4054,6 +4209,13 @@ __metadata: languageName: node linkType: hard +"emoji-regex@npm:^10.3.0": + version: 10.6.0 + resolution: "emoji-regex@npm:10.6.0" + checksum: 10c0/1e4aa097bb007301c3b4b1913879ae27327fdc48e93eeefefe3b87e495eb33c5af155300be951b4349ff6ac084f4403dc9eff970acba7c1c572d89396a9a32d7 + languageName: node + linkType: hard + "emoji-regex@npm:^8.0.0": version: 8.0.0 resolution: "emoji-regex@npm:8.0.0" @@ -4110,6 +4272,13 @@ __metadata: languageName: node linkType: hard +"environment@npm:^1.0.0": + version: 1.1.0 + resolution: "environment@npm:1.1.0" + checksum: 10c0/fb26434b0b581ab397039e51ff3c92b34924a98b2039dcb47e41b7bca577b9dbf134a8eadb364415c74464b682e2d3afe1a4c0eb9873dc44ea814c5d3103331d + languageName: node + linkType: hard + "err-code@npm:^2.0.2": version: 2.0.3 resolution: "err-code@npm:2.0.3" @@ -4285,6 +4454,17 @@ __metadata: languageName: node linkType: hard +"eslint-config-prettier@npm:^10.1.8": + version: 10.1.8 + resolution: "eslint-config-prettier@npm:10.1.8" + peerDependencies: + eslint: ">=7.0.0" + bin: + eslint-config-prettier: bin/cli.js + checksum: 10c0/e1bcfadc9eccd526c240056b1e59c5cd26544fe59feb85f38f4f1f116caed96aea0b3b87868e68b3099e55caaac3f2e5b9f58110f85db893e83a332751192682 + languageName: node + linkType: hard + "eslint-plugin-react-hooks@npm:^5.2.0": version: 5.2.0 resolution: "eslint-plugin-react-hooks@npm:5.2.0" @@ -4323,6 +4503,18 @@ __metadata: languageName: node linkType: hard +"eslint-scope@npm:^9.1.2": + version: 9.1.2 + resolution: "eslint-scope@npm:9.1.2" + dependencies: + "@types/esrecurse": "npm:^4.3.1" + "@types/estree": "npm:^1.0.8" + esrecurse: "npm:^4.3.0" + estraverse: "npm:^5.2.0" + checksum: 10c0/9fb8bca5a73e5741efb6cec84467027b6cb6f4203ff9b43a938e272c5cd30800bde46a5c20dfd1609f840225f0b62b7673be391b20acadf8658ca9fa4729b3dd + languageName: node + linkType: hard + "eslint-visitor-keys@npm:^3.4.1, eslint-visitor-keys@npm:^3.4.3": version: 3.4.3 resolution: "eslint-visitor-keys@npm:3.4.3" @@ -4337,6 +4529,13 @@ __metadata: languageName: node linkType: hard +"eslint-visitor-keys@npm:^5.0.1": + version: 5.0.1 + resolution: "eslint-visitor-keys@npm:5.0.1" + checksum: 10c0/16190bdf2cbae40a1109384c94450c526a79b0b9c3cb21e544256ed85ac48a4b84db66b74a6561d20fe6ab77447f150d711c2ad5ad74df4fcc133736bce99678 + languageName: node + linkType: hard + "eslint@npm:8": version: 8.57.1 resolution: "eslint@npm:8.57.1" @@ -4385,6 +4584,51 @@ __metadata: languageName: node linkType: hard +"eslint@npm:^10.2.1": + version: 10.2.1 + resolution: "eslint@npm:10.2.1" + dependencies: + "@eslint-community/eslint-utils": "npm:^4.8.0" + "@eslint-community/regexpp": "npm:^4.12.2" + "@eslint/config-array": "npm:^0.23.5" + "@eslint/config-helpers": "npm:^0.5.5" + "@eslint/core": "npm:^1.2.1" + "@eslint/plugin-kit": "npm:^0.7.1" + "@humanfs/node": "npm:^0.16.6" + "@humanwhocodes/module-importer": "npm:^1.0.1" + "@humanwhocodes/retry": "npm:^0.4.2" + "@types/estree": "npm:^1.0.6" + ajv: "npm:^6.14.0" + cross-spawn: "npm:^7.0.6" + debug: "npm:^4.3.2" + escape-string-regexp: "npm:^4.0.0" + eslint-scope: "npm:^9.1.2" + eslint-visitor-keys: "npm:^5.0.1" + espree: "npm:^11.2.0" + esquery: "npm:^1.7.0" + esutils: "npm:^2.0.2" + fast-deep-equal: "npm:^3.1.3" + file-entry-cache: "npm:^8.0.0" + find-up: "npm:^5.0.0" + glob-parent: "npm:^6.0.2" + ignore: "npm:^5.2.0" + imurmurhash: "npm:^0.1.4" + is-glob: "npm:^4.0.0" + json-stable-stringify-without-jsonify: "npm:^1.0.1" + minimatch: "npm:^10.2.4" + natural-compare: "npm:^1.4.0" + optionator: "npm:^0.9.3" + peerDependencies: + jiti: "*" + peerDependenciesMeta: + jiti: + optional: true + bin: + eslint: bin/eslint.js + checksum: 10c0/176795a3794a785502fa5cd14a9609264c2be5405552d20fed3e499bd465c29639c91ac44619ae66787b0fb7494e72d112550a2136a735d92a26bc6a7af4915c + languageName: node + linkType: hard + "eslint@npm:^9.25.0, eslint@npm:^9.29.0": version: 9.39.1 resolution: "eslint@npm:9.39.1" @@ -4452,6 +4696,17 @@ __metadata: languageName: node linkType: hard +"espree@npm:^11.2.0": + version: 11.2.0 + resolution: "espree@npm:11.2.0" + dependencies: + acorn: "npm:^8.16.0" + acorn-jsx: "npm:^5.3.2" + eslint-visitor-keys: "npm:^5.0.1" + checksum: 10c0/cf87e18ffd9dc113eb8d16588e7757701bc10c9934a71cce8b89c2611d51672681a918307bd6b19ac3ccd0e7ba1cbccc2f815b36b52fa7e73097b251014c3d81 + languageName: node + linkType: hard + "espree@npm:^9.6.0, espree@npm:^9.6.1": version: 9.6.1 resolution: "espree@npm:9.6.1" @@ -4482,6 +4737,15 @@ __metadata: languageName: node linkType: hard +"esquery@npm:^1.7.0": + version: 1.7.0 + resolution: "esquery@npm:1.7.0" + dependencies: + estraverse: "npm:^5.1.0" + checksum: 10c0/77d5173db450b66f3bc685d11af4c90cffeedb340f34a39af96d43509a335ce39c894fd79233df32d38f5e4e219fa0f7076f6ec90bae8320170ba082c0db4793 + languageName: node + linkType: hard + "esrecurse@npm:^4.3.0": version: 4.3.0 resolution: "esrecurse@npm:4.3.0" @@ -4519,6 +4783,13 @@ __metadata: languageName: node linkType: hard +"eventemitter3@npm:^5.0.1": + version: 5.0.4 + resolution: "eventemitter3@npm:5.0.4" + checksum: 10c0/575b8cac8d709e1473da46f8f15ef311b57ff7609445a7c71af5cd42598583eee6f098fa7a593e30f27e94b8865642baa0689e8fa97c016f742abdb3b1bf6d9a + languageName: node + linkType: hard + "exponential-backoff@npm:^3.1.1": version: 3.1.3 resolution: "exponential-backoff@npm:3.1.3" @@ -4847,6 +5118,13 @@ __metadata: languageName: node linkType: hard +"get-east-asian-width@npm:^1.0.0, get-east-asian-width@npm:^1.3.1, get-east-asian-width@npm:^1.5.0": + version: 1.5.0 + resolution: "get-east-asian-width@npm:1.5.0" + checksum: 10c0/bff8bbc8d81790b9477f7aa55b1806b9f082a8dc1359fff7bd8b96939622c86b729685afc2bfeb22def1fc6ef1e5228e4d87dd4e6da60bc43a5edfb03c4ee167 + languageName: node + linkType: hard + "get-intrinsic@npm:^1.2.4, get-intrinsic@npm:^1.2.6, get-intrinsic@npm:^1.3.0": version: 1.3.1 resolution: "get-intrinsic@npm:1.3.1" @@ -5232,6 +5510,15 @@ __metadata: languageName: node linkType: hard +"husky@npm:^9.1.7": + version: 9.1.7 + resolution: "husky@npm:9.1.7" + bin: + husky: bin.js + checksum: 10c0/35bb110a71086c48906aa7cd3ed4913fb913823715359d65e32e0b964cb1e255593b0ae8014a5005c66a68e6fa66c38dcfa8056dbbdfb8b0187c0ffe7ee3a58f + languageName: node + linkType: hard + "hyphenate-style-name@npm:^1.0.3": version: 1.1.0 resolution: "hyphenate-style-name@npm:1.1.0" @@ -5423,6 +5710,15 @@ __metadata: languageName: node linkType: hard +"is-fullwidth-code-point@npm:^5.0.0, is-fullwidth-code-point@npm:^5.1.0": + version: 5.1.0 + resolution: "is-fullwidth-code-point@npm:5.1.0" + dependencies: + get-east-asian-width: "npm:^1.3.1" + checksum: 10c0/c1172c2e417fb73470c56c431851681591f6a17233603a9e6f94b7ba870b2e8a5266506490573b607fb1081318589372034aa436aec07b465c2029c0bc7f07a4 + languageName: node + linkType: hard + "is-glob@npm:^4.0.0, is-glob@npm:^4.0.1, is-glob@npm:^4.0.3, is-glob@npm:~4.0.1": version: 4.0.3 resolution: "is-glob@npm:4.0.3" @@ -5997,6 +6293,36 @@ __metadata: languageName: node linkType: hard +"lint-staged@npm:^16.4.0": + version: 16.4.0 + resolution: "lint-staged@npm:16.4.0" + dependencies: + commander: "npm:^14.0.3" + listr2: "npm:^9.0.5" + picomatch: "npm:^4.0.3" + string-argv: "npm:^0.3.2" + tinyexec: "npm:^1.0.4" + yaml: "npm:^2.8.2" + bin: + lint-staged: bin/lint-staged.js + checksum: 10c0/67625a49a2a01368c7df2da7e553567a79c4b261d9faf3436e00fc3a2f9c4bbe7295909012c47b3d9029e269fd7d7469901a5120573527a032f15797aa497c26 + languageName: node + linkType: hard + +"listr2@npm:^9.0.5": + version: 9.0.5 + resolution: "listr2@npm:9.0.5" + dependencies: + cli-truncate: "npm:^5.0.0" + colorette: "npm:^2.0.20" + eventemitter3: "npm:^5.0.1" + log-update: "npm:^6.1.0" + rfdc: "npm:^1.4.1" + wrap-ansi: "npm:^9.0.0" + checksum: 10c0/46448d1ba0addc9d71aeafd05bb8e86ded9641ccad930ac302c2bd2ad71580375604743e18586fcb8f11906edf98e8e17fca75ba0759947bf275d381f68e311d + languageName: node + linkType: hard + "load-script@npm:^2.0.0": version: 2.0.0 resolution: "load-script@npm:2.0.0" @@ -6062,6 +6388,19 @@ __metadata: languageName: node linkType: hard +"log-update@npm:^6.1.0": + version: 6.1.0 + resolution: "log-update@npm:6.1.0" + dependencies: + ansi-escapes: "npm:^7.0.0" + cli-cursor: "npm:^5.0.0" + slice-ansi: "npm:^7.1.0" + strip-ansi: "npm:^7.1.0" + wrap-ansi: "npm:^9.0.0" + checksum: 10c0/4b350c0a83d7753fea34dcac6cd797d1dc9603291565de009baa4aa91c0447eab0d3815a05c8ec9ac04fdfffb43c82adcdb03ec1fceafd8518e1a8c1cff4ff89 + languageName: node + linkType: hard + "loose-envify@npm:^1.4.0": version: 1.4.0 resolution: "loose-envify@npm:1.4.0" @@ -6284,6 +6623,13 @@ __metadata: languageName: node linkType: hard +"mimic-function@npm:^5.0.0": + version: 5.0.1 + resolution: "mimic-function@npm:5.0.1" + checksum: 10c0/f3d9464dd1816ecf6bdf2aec6ba32c0728022039d992f178237d8e289b48764fee4131319e72eedd4f7f094e22ded0af836c3187a7edc4595d28dd74368fd81d + languageName: node + linkType: hard + "mimic-response@npm:^1.0.0": version: 1.0.1 resolution: "mimic-response@npm:1.0.1" @@ -6307,6 +6653,15 @@ __metadata: languageName: node linkType: hard +"minimatch@npm:^10.2.4": + version: 10.2.5 + resolution: "minimatch@npm:10.2.5" + dependencies: + brace-expansion: "npm:^5.0.5" + checksum: 10c0/6bb058bd6324104b9ec2f763476a35386d05079c1f5fe4fbf1f324a25237cd4534d6813ecd71f48208f4e635c1221899bef94c3c89f7df55698fe373aaae20fd + languageName: node + linkType: hard + "minimatch@npm:^3.0.5, minimatch@npm:^3.1.1, minimatch@npm:^3.1.2": version: 3.1.2 resolution: "minimatch@npm:3.1.2" @@ -6457,13 +6812,17 @@ __metadata: "@yarnpkg/sdks": "npm:^3.2.2" clsx: "npm:^2.1.1" dompurify: "npm:^3.2.6" + eslint: "npm:^10.2.1" framer-motion: "npm:^12.20.1" heic2any: "npm:^0.0.4" highlight.js: "npm:^11.11.1" + husky: "npm:^9.1.7" jsqr: "npm:^1.4.0" + lint-staged: "npm:^16.4.0" lottie-react: "npm:^2.4.1" lowlight: "npm:^3.3.0" npm: "npm:^11.6.0" + prettier: "npm:^3.8.3" prop-types: "npm:^15.8.1" prosemirror-model: "npm:^1.25.2" prosemirror-state: "npm:^1.4.3" @@ -6692,6 +7051,7 @@ __metadata: resolution: "nowait-admin@workspace:apps/nowait-admin" dependencies: "@eslint/js": "npm:^9.25.0" + "@hello-pangea/dnd": "npm:^18.0.1" "@repo/tailwind-config": "workspace:*" "@repo/typescript-config": "workspace:*" "@repo/ui": "workspace:*" @@ -6716,6 +7076,7 @@ __metadata: clsx: "npm:^2.1.1" dompurify: "npm:^3.2.6" eslint: "npm:^9.25.0" + eslint-config-prettier: "npm:^10.1.8" eslint-plugin-react-hooks: "npm:^5.2.0" eslint-plugin-react-refresh: "npm:^0.4.19" globals: "npm:^16.0.0" @@ -6772,6 +7133,7 @@ __metadata: axios: "npm:^1.10.0" color-thief-react: "npm:^2.1.0" eslint: "npm:8" + eslint-config-prettier: "npm:^10.1.8" eslint-plugin-react-hooks: "npm:^5.2.0" eslint-plugin-react-refresh: "npm:^0.4.19" framer-motion: "npm:^12.20.1" @@ -7058,6 +7420,15 @@ __metadata: languageName: node linkType: hard +"onetime@npm:^7.0.0": + version: 7.0.0 + resolution: "onetime@npm:7.0.0" + dependencies: + mimic-function: "npm:^5.0.0" + checksum: 10c0/5cb9179d74b63f52a196a2e7037ba2b9a893245a5532d3f44360012005c9cadb60851d56716ebff18a6f47129dab7168022445df47c2aff3b276d92585ed1221 + languageName: node + linkType: hard + "optionator@npm:^0.9.3": version: 0.9.4 resolution: "optionator@npm:0.9.4" @@ -7334,6 +7705,15 @@ __metadata: languageName: node linkType: hard +"prettier@npm:^3.8.3": + version: 3.8.3 + resolution: "prettier@npm:3.8.3" + bin: + prettier: bin/prettier.cjs + checksum: 10c0/754816fd7593eb80f6376d7476d463e832c38a12f32775a82683adb6e35b772b1f484d65f19401507b983a8c8a7cd5a4a9f12006bd56491e8f35503473f77473 + languageName: node + linkType: hard + "proc-log@npm:^5.0.0": version: 5.0.0 resolution: "proc-log@npm:5.0.0" @@ -7713,7 +8093,7 @@ __metadata: languageName: node linkType: hard -"raf-schd@npm:^4.0.2": +"raf-schd@npm:^4.0.2, raf-schd@npm:^4.0.3": version: 4.0.3 resolution: "raf-schd@npm:4.0.3" checksum: 10c0/ecabf0957c05fad059779bddcd992f1a9d3a35dfea439a6f0935c382fcf4f7f7fa60489e467b4c2db357a3665167d2a379782586b59712bb36c766e02824709b @@ -7904,6 +8284,25 @@ __metadata: languageName: node linkType: hard +"react-redux@npm:^9.2.0": + version: 9.2.0 + resolution: "react-redux@npm:9.2.0" + dependencies: + "@types/use-sync-external-store": "npm:^0.0.6" + use-sync-external-store: "npm:^1.4.0" + peerDependencies: + "@types/react": ^18.2.25 || ^19 + react: ^18.0 || ^19 + redux: ^5.0.0 + peerDependenciesMeta: + "@types/react": + optional: true + redux: + optional: true + checksum: 10c0/00d485f9d9219ca1507b4d30dde5f6ff8fb68ba642458f742e0ec83af052f89e65cd668249b99299e1053cc6ad3d2d8ac6cb89e2f70d2ac5585ae0d7fa0ef259 + languageName: node + linkType: hard + "react-refresh@npm:^0.17.0": version: 0.17.0 resolution: "react-refresh@npm:0.17.0" @@ -8065,6 +8464,13 @@ __metadata: languageName: node linkType: hard +"redux@npm:^5.0.1": + version: 5.0.1 + resolution: "redux@npm:5.0.1" + checksum: 10c0/b10c28357194f38e7d53b760ed5e64faa317cc63de1fb95bc5d9e127fab956392344368c357b8e7a9bedb0c35b111e7efa522210cfdc3b3c75e5074718e9069c + languageName: node + linkType: hard + "regexp.prototype.flags@npm:^1.5.1": version: 1.5.4 resolution: "regexp.prototype.flags@npm:1.5.4" @@ -8144,6 +8550,16 @@ __metadata: languageName: node linkType: hard +"restore-cursor@npm:^5.0.0": + version: 5.1.0 + resolution: "restore-cursor@npm:5.1.0" + dependencies: + onetime: "npm:^7.0.0" + signal-exit: "npm:^4.1.0" + checksum: 10c0/c2ba89131eea791d1b25205bdfdc86699767e2b88dee2a590b1a6caa51737deac8bad0260a5ded2f7c074b7db2f3a626bcf1fcf3cdf35974cbeea5e2e6764f60 + languageName: node + linkType: hard + "retry@npm:^0.12.0": version: 0.12.0 resolution: "retry@npm:0.12.0" @@ -8158,6 +8574,13 @@ __metadata: languageName: node linkType: hard +"rfdc@npm:^1.4.1": + version: 1.4.1 + resolution: "rfdc@npm:1.4.1" + checksum: 10c0/4614e4292356cafade0b6031527eea9bc90f2372a22c012313be1dcc69a3b90c7338158b414539be863fa95bfcb2ddcd0587be696841af4e6679d85e62c060c7 + languageName: node + linkType: hard + "rimraf@npm:^3.0.2": version: 3.0.2 resolution: "rimraf@npm:3.0.2" @@ -8412,6 +8835,26 @@ __metadata: languageName: node linkType: hard +"slice-ansi@npm:^7.1.0": + version: 7.1.2 + resolution: "slice-ansi@npm:7.1.2" + dependencies: + ansi-styles: "npm:^6.2.1" + is-fullwidth-code-point: "npm:^5.0.0" + checksum: 10c0/36742f2eb0c03e2e81a38ed14d13a64f7b732fe38c3faf96cce0599788a345011e840db35f1430ca606ea3f8db2abeb92a8d25c2753a819e3babaa10c2e289a2 + languageName: node + linkType: hard + +"slice-ansi@npm:^8.0.0": + version: 8.0.0 + resolution: "slice-ansi@npm:8.0.0" + dependencies: + ansi-styles: "npm:^6.2.3" + is-fullwidth-code-point: "npm:^5.1.0" + checksum: 10c0/0ce4aa91febb7cea4a00c2c27bb820fa53b6d2862ce0f80f7120134719f7914fc416b0ed966cf35250a3169e152916392f35917a2d7cad0fcc5d8b841010fa9a + languageName: node + linkType: hard + "smart-buffer@npm:^4.2.0": version: 4.2.0 resolution: "smart-buffer@npm:4.2.0" @@ -8589,6 +9032,13 @@ __metadata: languageName: node linkType: hard +"string-argv@npm:^0.3.2": + version: 0.3.2 + resolution: "string-argv@npm:0.3.2" + checksum: 10c0/75c02a83759ad1722e040b86823909d9a2fc75d15dd71ec4b537c3560746e33b5f5a07f7332d1e3f88319909f82190843aa2f0a0d8c8d591ec08e93d5b8dec82 + languageName: node + linkType: hard + "string-width-cjs@npm:string-width@^4.2.0, string-width@npm:^4.1.0, string-width@npm:^4.2.3": version: 4.2.3 resolution: "string-width@npm:4.2.3" @@ -8611,6 +9061,27 @@ __metadata: languageName: node linkType: hard +"string-width@npm:^7.0.0": + version: 7.2.0 + resolution: "string-width@npm:7.2.0" + dependencies: + emoji-regex: "npm:^10.3.0" + get-east-asian-width: "npm:^1.0.0" + strip-ansi: "npm:^7.1.0" + checksum: 10c0/eb0430dd43f3199c7a46dcbf7a0b34539c76fe3aa62763d0b0655acdcbdf360b3f66f3d58ca25ba0205f42ea3491fa00f09426d3b7d3040e506878fc7664c9b9 + languageName: node + linkType: hard + +"string-width@npm:^8.2.0": + version: 8.2.1 + resolution: "string-width@npm:8.2.1" + dependencies: + get-east-asian-width: "npm:^1.5.0" + strip-ansi: "npm:^7.1.2" + checksum: 10c0/d467b4eaf4c40a01bb438a2620e77badd2456ffd5131c9973abe4f3acf7c802d5b21f3b6a00a5e33a7fc28ca8f9c103226e01bac61e9f259659c6f46d78e353a + languageName: node + linkType: hard + "strip-ansi-cjs@npm:strip-ansi@^6.0.1, strip-ansi@npm:^6.0.0, strip-ansi@npm:^6.0.1": version: 6.0.1 resolution: "strip-ansi@npm:6.0.1" @@ -8629,6 +9100,15 @@ __metadata: languageName: node linkType: hard +"strip-ansi@npm:^7.1.2": + version: 7.2.0 + resolution: "strip-ansi@npm:7.2.0" + dependencies: + ansi-regex: "npm:^6.2.2" + checksum: 10c0/544d13b7582f8254811ea97db202f519e189e59d35740c46095897e254e4f1aa9fe1524a83ad6bc5ad67d4dd6c0281d2e0219ed62b880a6238a16a17d375f221 + languageName: node + linkType: hard + "strip-json-comments@npm:^3.1.1": version: 3.1.1 resolution: "strip-json-comments@npm:3.1.1" @@ -8758,6 +9238,13 @@ __metadata: languageName: node linkType: hard +"tinyexec@npm:^1.0.4": + version: 1.1.2 + resolution: "tinyexec@npm:1.1.2" + checksum: 10c0/9e0ef6c001ce54688cf16833a02f70a339276219ca947b88930b124267de2cffc764ff44e87e7369384b1d75ab63491465412cbbdf06f2437956b9ab66ab4491 + languageName: node + linkType: hard + "tinyglobby@npm:^0.2.12, tinyglobby@npm:^0.2.13, tinyglobby@npm:^0.2.14": version: 0.2.15 resolution: "tinyglobby@npm:0.2.15" @@ -9432,6 +9919,17 @@ __metadata: languageName: node linkType: hard +"wrap-ansi@npm:^9.0.0": + version: 9.0.2 + resolution: "wrap-ansi@npm:9.0.2" + dependencies: + ansi-styles: "npm:^6.2.1" + string-width: "npm:^7.0.0" + strip-ansi: "npm:^7.1.0" + checksum: 10c0/3305839b9a0d6fb930cb63a52f34d3936013d8b0682ff3ec133c9826512620f213800ffa19ea22904876d5b7e9a3c1f40682f03597d986a4ca881fa7b033688c + languageName: node + linkType: hard + "wrappy@npm:1": version: 1.0.2 resolution: "wrappy@npm:1.0.2" @@ -9470,6 +9968,15 @@ __metadata: languageName: node linkType: hard +"yaml@npm:^2.8.2": + version: 2.8.3 + resolution: "yaml@npm:2.8.3" + bin: + yaml: bin.mjs + checksum: 10c0/ddff0e11c1b467728d7eb4633db61c5f5de3d8e9373cf84d08fb0cdee03e1f58f02b9f1c51a4a8a865751695addbd465a77f73f1079be91fe5493b29c305fd77 + languageName: node + linkType: hard + "yocto-queue@npm:^0.1.0": version: 0.1.0 resolution: "yocto-queue@npm:0.1.0"