fixed package.json and a rfew othr things

This commit is contained in:
2025-02-03 12:57:15 -05:00
parent ffb42ba2d1
commit f614b064a0
8 changed files with 205 additions and 130 deletions

231
package-lock.json generated
View File

@@ -8,7 +8,7 @@
"name": "balistics-builder", "name": "balistics-builder",
"version": "0.2.0", "version": "0.2.0",
"dependencies": { "dependencies": {
"@clerk/nextjs": "^6.10.0", "@clerk/nextjs": "^6.10.6",
"@emotion/react": "^11.13.5", "@emotion/react": "^11.13.5",
"@emotion/styled": "^11.13.5", "@emotion/styled": "^11.13.5",
"@headlessui/react": "^2.2.0", "@headlessui/react": "^2.2.0",
@@ -79,6 +79,8 @@
"@types/react": "^18", "@types/react": "^18",
"@types/react-dom": "^18", "@types/react-dom": "^18",
"@types/uuid": "^10.0.0", "@types/uuid": "^10.0.0",
"@typescript-eslint/eslint-plugin": "^8.22.0",
"@typescript-eslint/parser": "^8.22.0",
"autoprefixer": "^10.4.20", "autoprefixer": "^10.4.20",
"csv-parse": "^5.6.0", "csv-parse": "^5.6.0",
"csv-parser": "^3.0.0", "csv-parser": "^3.0.0",
@@ -86,6 +88,7 @@
"drizzle-orm": "^0.38.4", "drizzle-orm": "^0.38.4",
"eslint": "^8", "eslint": "^8",
"eslint-config-next": "15.0.3", "eslint-config-next": "15.0.3",
"eslint-plugin-drizzle": "^0.2.3",
"fs": "0.0.1-security", "fs": "0.0.1-security",
"next-auth": "^5.0.0-beta.25", "next-auth": "^5.0.0-beta.25",
"postcss": "^8.5.1", "postcss": "^8.5.1",
@@ -332,13 +335,13 @@
} }
}, },
"node_modules/@clerk/backend": { "node_modules/@clerk/backend": {
"version": "1.23.5", "version": "1.23.11",
"resolved": "https://registry.npmjs.org/@clerk/backend/-/backend-1.23.5.tgz", "resolved": "https://registry.npmjs.org/@clerk/backend/-/backend-1.23.11.tgz",
"integrity": "sha512-3HVYa1qiOIny+45V5UBwVfMRZDXl4deVfjFMPvmAYbAiNqY39TgtHdMnDsGZF09eOUnnpTu/6jV4doPLdmWHWg==", "integrity": "sha512-N5CYCnVbSVXUkQg9oAAAf9r/kfPmBGxMqjzslDC9Tl3rkXFTkWjkBNnToB6We2ySdrmqiQGR/+/c4mS9XRbaOQ==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@clerk/shared": "^2.20.12", "@clerk/shared": "^2.20.18",
"@clerk/types": "^4.42.0", "@clerk/types": "^4.45.0",
"cookie": "1.0.2", "cookie": "1.0.2",
"snakecase-keys": "8.0.1", "snakecase-keys": "8.0.1",
"tslib": "2.4.1" "tslib": "2.4.1"
@@ -363,13 +366,13 @@
"license": "0BSD" "license": "0BSD"
}, },
"node_modules/@clerk/clerk-react": { "node_modules/@clerk/clerk-react": {
"version": "5.22.4", "version": "5.22.10",
"resolved": "https://registry.npmjs.org/@clerk/clerk-react/-/clerk-react-5.22.4.tgz", "resolved": "https://registry.npmjs.org/@clerk/clerk-react/-/clerk-react-5.22.10.tgz",
"integrity": "sha512-uDUczpvP4PgTp3mDEd+ITka4yVdQUrU3pVxWBb4Q81XGHDF9GCPb5XbDjV0iR8gB0txI9xopXwUez5/T4VZRVA==", "integrity": "sha512-3tTUt+3w5E+4ePl+6q6ugNTgjyjQw000nouXRngCEorDC2545Lc2HTZ37n1W8WuTx2BN32Rerjf2UJDmpRqrYg==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@clerk/shared": "^2.20.12", "@clerk/shared": "^2.20.18",
"@clerk/types": "^4.42.0", "@clerk/types": "^4.45.0",
"tslib": "2.4.1" "tslib": "2.4.1"
}, },
"engines": { "engines": {
@@ -387,15 +390,15 @@
"license": "0BSD" "license": "0BSD"
}, },
"node_modules/@clerk/nextjs": { "node_modules/@clerk/nextjs": {
"version": "6.10.0", "version": "6.10.6",
"resolved": "https://registry.npmjs.org/@clerk/nextjs/-/nextjs-6.10.0.tgz", "resolved": "https://registry.npmjs.org/@clerk/nextjs/-/nextjs-6.10.6.tgz",
"integrity": "sha512-s6srzAxMStgP2UBsgSNyWECt+c7s/Zq+/qLAk05O17HXTjb1ydmK/cGxJI5JS9MYv49Z88Ct3AL9CiUbGv/0bA==", "integrity": "sha512-/Pn/DxwGRJF4RM/yVOjZv7ogwE9z5MjUmzcQxZhnbf/wiEj/lP/kTEFEgjo77qBPVAGjm7tHzvsecYyCx0iExA==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@clerk/backend": "^1.23.5", "@clerk/backend": "^1.23.11",
"@clerk/clerk-react": "^5.22.4", "@clerk/clerk-react": "^5.22.10",
"@clerk/shared": "^2.20.12", "@clerk/shared": "^2.20.18",
"@clerk/types": "^4.42.0", "@clerk/types": "^4.45.0",
"crypto-js": "4.2.0", "crypto-js": "4.2.0",
"server-only": "0.0.1", "server-only": "0.0.1",
"tslib": "2.4.1" "tslib": "2.4.1"
@@ -416,13 +419,13 @@
"license": "0BSD" "license": "0BSD"
}, },
"node_modules/@clerk/shared": { "node_modules/@clerk/shared": {
"version": "2.20.12", "version": "2.20.18",
"resolved": "https://registry.npmjs.org/@clerk/shared/-/shared-2.20.12.tgz", "resolved": "https://registry.npmjs.org/@clerk/shared/-/shared-2.20.18.tgz",
"integrity": "sha512-uy9Z2h0VXbQ4xwjj8mKuQSwm8MEFTAec+3gu4MSTyc1WboaPfX3MnO3qjqJEwu/oQkakocVI0P3nViYbXokZtQ==", "integrity": "sha512-vSQLZSRFr62+YeE1KE/Xu/eWCrwYJRNA2KRyQYmb2VPleFNmOjtTNlO4xkMZ0eN6BLKxrBo9b0NVwu3L28FhKg==",
"hasInstallScript": true, "hasInstallScript": true,
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@clerk/types": "^4.42.0", "@clerk/types": "^4.45.0",
"dequal": "2.0.3", "dequal": "2.0.3",
"glob-to-regexp": "0.4.1", "glob-to-regexp": "0.4.1",
"js-cookie": "3.0.5", "js-cookie": "3.0.5",
@@ -446,9 +449,9 @@
} }
}, },
"node_modules/@clerk/types": { "node_modules/@clerk/types": {
"version": "4.42.0", "version": "4.45.0",
"resolved": "https://registry.npmjs.org/@clerk/types/-/types-4.42.0.tgz", "resolved": "https://registry.npmjs.org/@clerk/types/-/types-4.45.0.tgz",
"integrity": "sha512-SPBRHdP+ZggeudncbSj8KLOZ5PdVmtgZhL+tXremVJrETi9WHpf1UOYgnIHl+clp6GZC2IQM4tq57RSrHf0Oew==", "integrity": "sha512-DSXPWq1xD01tzyHv7CugX2T/XfVUZX2xxQ92cs+JPTrGoqIYm+yjRWqOz1CVJ/76TbYMOrB0efCGOxEcNV/PQw==",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"csstype": "3.1.1" "csstype": "3.1.1"
@@ -4875,20 +4878,21 @@
} }
}, },
"node_modules/@typescript-eslint/eslint-plugin": { "node_modules/@typescript-eslint/eslint-plugin": {
"version": "8.14.0", "version": "8.23.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.14.0.tgz", "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.23.0.tgz",
"integrity": "sha512-tqp8H7UWFaZj0yNO6bycd5YjMwxa6wIHOLZvWPkidwbgLCsBMetQoGj7DPuAlWa2yGO3H48xmPwjhsSPPCGU5w==", "integrity": "sha512-vBz65tJgRrA1Q5gWlRfvoH+w943dq9K1p1yDBY2pc+a1nbBLZp7fB9+Hk8DaALUbzjqlMfgaqlVPT1REJdkt/w==",
"dev": true, "dev": true,
"license": "MIT",
"dependencies": { "dependencies": {
"@eslint-community/regexpp": "^4.10.0", "@eslint-community/regexpp": "^4.10.0",
"@typescript-eslint/scope-manager": "8.14.0", "@typescript-eslint/scope-manager": "8.23.0",
"@typescript-eslint/type-utils": "8.14.0", "@typescript-eslint/type-utils": "8.23.0",
"@typescript-eslint/utils": "8.14.0", "@typescript-eslint/utils": "8.23.0",
"@typescript-eslint/visitor-keys": "8.14.0", "@typescript-eslint/visitor-keys": "8.23.0",
"graphemer": "^1.4.0", "graphemer": "^1.4.0",
"ignore": "^5.3.1", "ignore": "^5.3.1",
"natural-compare": "^1.4.0", "natural-compare": "^1.4.0",
"ts-api-utils": "^1.3.0" "ts-api-utils": "^2.0.1"
}, },
"engines": { "engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0" "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -4899,24 +4903,21 @@
}, },
"peerDependencies": { "peerDependencies": {
"@typescript-eslint/parser": "^8.0.0 || ^8.0.0-alpha.0", "@typescript-eslint/parser": "^8.0.0 || ^8.0.0-alpha.0",
"eslint": "^8.57.0 || ^9.0.0" "eslint": "^8.57.0 || ^9.0.0",
}, "typescript": ">=4.8.4 <5.8.0"
"peerDependenciesMeta": {
"typescript": {
"optional": true
}
} }
}, },
"node_modules/@typescript-eslint/parser": { "node_modules/@typescript-eslint/parser": {
"version": "8.14.0", "version": "8.23.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.14.0.tgz", "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.23.0.tgz",
"integrity": "sha512-2p82Yn9juUJq0XynBXtFCyrBDb6/dJombnz6vbo6mgQEtWHfvHbQuEa9kAOVIt1c9YFwi7H6WxtPj1kg+80+RA==", "integrity": "sha512-h2lUByouOXFAlMec2mILeELUbME5SZRN/7R9Cw2RD2lRQQY08MWMM+PmVVKKJNK1aIwqTo9t/0CvOxwPbRIE2Q==",
"dev": true, "dev": true,
"license": "MIT",
"dependencies": { "dependencies": {
"@typescript-eslint/scope-manager": "8.14.0", "@typescript-eslint/scope-manager": "8.23.0",
"@typescript-eslint/types": "8.14.0", "@typescript-eslint/types": "8.23.0",
"@typescript-eslint/typescript-estree": "8.14.0", "@typescript-eslint/typescript-estree": "8.23.0",
"@typescript-eslint/visitor-keys": "8.14.0", "@typescript-eslint/visitor-keys": "8.23.0",
"debug": "^4.3.4" "debug": "^4.3.4"
}, },
"engines": { "engines": {
@@ -4927,22 +4928,19 @@
"url": "https://opencollective.com/typescript-eslint" "url": "https://opencollective.com/typescript-eslint"
}, },
"peerDependencies": { "peerDependencies": {
"eslint": "^8.57.0 || ^9.0.0" "eslint": "^8.57.0 || ^9.0.0",
}, "typescript": ">=4.8.4 <5.8.0"
"peerDependenciesMeta": {
"typescript": {
"optional": true
}
} }
}, },
"node_modules/@typescript-eslint/scope-manager": { "node_modules/@typescript-eslint/scope-manager": {
"version": "8.14.0", "version": "8.23.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.14.0.tgz", "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.23.0.tgz",
"integrity": "sha512-aBbBrnW9ARIDn92Zbo7rguLnqQ/pOrUguVpbUwzOhkFg2npFDwTgPGqFqE0H5feXcOoJOfX3SxlJaKEVtq54dw==", "integrity": "sha512-OGqo7+dXHqI7Hfm+WqkZjKjsiRtFUQHPdGMXzk5mYXhJUedO7e/Y7i8AK3MyLMgZR93TX4bIzYrfyVjLC+0VSw==",
"dev": true, "dev": true,
"license": "MIT",
"dependencies": { "dependencies": {
"@typescript-eslint/types": "8.14.0", "@typescript-eslint/types": "8.23.0",
"@typescript-eslint/visitor-keys": "8.14.0" "@typescript-eslint/visitor-keys": "8.23.0"
}, },
"engines": { "engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0" "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -4953,15 +4951,16 @@
} }
}, },
"node_modules/@typescript-eslint/type-utils": { "node_modules/@typescript-eslint/type-utils": {
"version": "8.14.0", "version": "8.23.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.14.0.tgz", "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.23.0.tgz",
"integrity": "sha512-Xcz9qOtZuGusVOH5Uk07NGs39wrKkf3AxlkK79RBK6aJC1l03CobXjJbwBPSidetAOV+5rEVuiT1VSBUOAsanQ==", "integrity": "sha512-iIuLdYpQWZKbiH+RkCGc6iu+VwscP5rCtQ1lyQ7TYuKLrcZoeJVpcLiG8DliXVkUxirW/PWlmS+d6yD51L9jvA==",
"dev": true, "dev": true,
"license": "MIT",
"dependencies": { "dependencies": {
"@typescript-eslint/typescript-estree": "8.14.0", "@typescript-eslint/typescript-estree": "8.23.0",
"@typescript-eslint/utils": "8.14.0", "@typescript-eslint/utils": "8.23.0",
"debug": "^4.3.4", "debug": "^4.3.4",
"ts-api-utils": "^1.3.0" "ts-api-utils": "^2.0.1"
}, },
"engines": { "engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0" "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -4970,17 +4969,17 @@
"type": "opencollective", "type": "opencollective",
"url": "https://opencollective.com/typescript-eslint" "url": "https://opencollective.com/typescript-eslint"
}, },
"peerDependenciesMeta": { "peerDependencies": {
"typescript": { "eslint": "^8.57.0 || ^9.0.0",
"optional": true "typescript": ">=4.8.4 <5.8.0"
}
} }
}, },
"node_modules/@typescript-eslint/types": { "node_modules/@typescript-eslint/types": {
"version": "8.14.0", "version": "8.23.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.14.0.tgz", "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.23.0.tgz",
"integrity": "sha512-yjeB9fnO/opvLJFAsPNYlKPnEM8+z4og09Pk504dkqonT02AyL5Z9SSqlE0XqezS93v6CXn49VHvB2G7XSsl0g==", "integrity": "sha512-1sK4ILJbCmZOTt9k4vkoulT6/y5CHJ1qUYxqpF1K/DBAd8+ZUL4LlSCxOssuH5m4rUaaN0uS0HlVPvd45zjduQ==",
"dev": true, "dev": true,
"license": "MIT",
"engines": { "engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0" "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
}, },
@@ -4990,19 +4989,20 @@
} }
}, },
"node_modules/@typescript-eslint/typescript-estree": { "node_modules/@typescript-eslint/typescript-estree": {
"version": "8.14.0", "version": "8.23.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.14.0.tgz", "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.23.0.tgz",
"integrity": "sha512-OPXPLYKGZi9XS/49rdaCbR5j/S14HazviBlUQFvSKz3npr3NikF+mrgK7CFVur6XEt95DZp/cmke9d5i3vtVnQ==", "integrity": "sha512-LcqzfipsB8RTvH8FX24W4UUFk1bl+0yTOf9ZA08XngFwMg4Kj8A+9hwz8Cr/ZS4KwHrmo9PJiLZkOt49vPnuvQ==",
"dev": true, "dev": true,
"license": "MIT",
"dependencies": { "dependencies": {
"@typescript-eslint/types": "8.14.0", "@typescript-eslint/types": "8.23.0",
"@typescript-eslint/visitor-keys": "8.14.0", "@typescript-eslint/visitor-keys": "8.23.0",
"debug": "^4.3.4", "debug": "^4.3.4",
"fast-glob": "^3.3.2", "fast-glob": "^3.3.2",
"is-glob": "^4.0.3", "is-glob": "^4.0.3",
"minimatch": "^9.0.4", "minimatch": "^9.0.4",
"semver": "^7.6.0", "semver": "^7.6.0",
"ts-api-utils": "^1.3.0" "ts-api-utils": "^2.0.1"
}, },
"engines": { "engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0" "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -5011,10 +5011,8 @@
"type": "opencollective", "type": "opencollective",
"url": "https://opencollective.com/typescript-eslint" "url": "https://opencollective.com/typescript-eslint"
}, },
"peerDependenciesMeta": { "peerDependencies": {
"typescript": { "typescript": ">=4.8.4 <5.8.0"
"optional": true
}
} }
}, },
"node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": {
@@ -5022,21 +5020,23 @@
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz",
"integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==",
"dev": true, "dev": true,
"license": "MIT",
"dependencies": { "dependencies": {
"balanced-match": "^1.0.0" "balanced-match": "^1.0.0"
} }
}, },
"node_modules/@typescript-eslint/typescript-estree/node_modules/fast-glob": { "node_modules/@typescript-eslint/typescript-estree/node_modules/fast-glob": {
"version": "3.3.2", "version": "3.3.3",
"resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.2.tgz", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz",
"integrity": "sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow==", "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==",
"dev": true, "dev": true,
"license": "MIT",
"dependencies": { "dependencies": {
"@nodelib/fs.stat": "^2.0.2", "@nodelib/fs.stat": "^2.0.2",
"@nodelib/fs.walk": "^1.2.3", "@nodelib/fs.walk": "^1.2.3",
"glob-parent": "^5.1.2", "glob-parent": "^5.1.2",
"merge2": "^1.3.0", "merge2": "^1.3.0",
"micromatch": "^4.0.4" "micromatch": "^4.0.8"
}, },
"engines": { "engines": {
"node": ">=8.6.0" "node": ">=8.6.0"
@@ -5047,6 +5047,7 @@
"resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
"integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
"dev": true, "dev": true,
"license": "ISC",
"dependencies": { "dependencies": {
"is-glob": "^4.0.1" "is-glob": "^4.0.1"
}, },
@@ -5059,6 +5060,7 @@
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
"integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
"dev": true, "dev": true,
"license": "ISC",
"dependencies": { "dependencies": {
"brace-expansion": "^2.0.1" "brace-expansion": "^2.0.1"
}, },
@@ -5070,15 +5072,16 @@
} }
}, },
"node_modules/@typescript-eslint/utils": { "node_modules/@typescript-eslint/utils": {
"version": "8.14.0", "version": "8.23.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.14.0.tgz", "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.23.0.tgz",
"integrity": "sha512-OGqj6uB8THhrHj0Fk27DcHPojW7zKwKkPmHXHvQ58pLYp4hy8CSUdTKykKeh+5vFqTTVmjz0zCOOPKRovdsgHA==", "integrity": "sha512-uB/+PSo6Exu02b5ZEiVtmY6RVYO7YU5xqgzTIVZwTHvvK3HsL8tZZHFaTLFtRG3CsV4A5mhOv+NZx5BlhXPyIA==",
"dev": true, "dev": true,
"license": "MIT",
"dependencies": { "dependencies": {
"@eslint-community/eslint-utils": "^4.4.0", "@eslint-community/eslint-utils": "^4.4.0",
"@typescript-eslint/scope-manager": "8.14.0", "@typescript-eslint/scope-manager": "8.23.0",
"@typescript-eslint/types": "8.14.0", "@typescript-eslint/types": "8.23.0",
"@typescript-eslint/typescript-estree": "8.14.0" "@typescript-eslint/typescript-estree": "8.23.0"
}, },
"engines": { "engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0" "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -5088,17 +5091,19 @@
"url": "https://opencollective.com/typescript-eslint" "url": "https://opencollective.com/typescript-eslint"
}, },
"peerDependencies": { "peerDependencies": {
"eslint": "^8.57.0 || ^9.0.0" "eslint": "^8.57.0 || ^9.0.0",
"typescript": ">=4.8.4 <5.8.0"
} }
}, },
"node_modules/@typescript-eslint/visitor-keys": { "node_modules/@typescript-eslint/visitor-keys": {
"version": "8.14.0", "version": "8.23.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.14.0.tgz", "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.23.0.tgz",
"integrity": "sha512-vG0XZo8AdTH9OE6VFRwAZldNc7qtJ/6NLGWak+BtENuEUXGZgFpihILPiBvKXvJ2nFu27XNGC6rKiwuaoMbYzQ==", "integrity": "sha512-oWWhcWDLwDfu++BGTZcmXWqpwtkwb5o7fxUIGksMQQDSdPW9prsSnfIOZMlsj4vBOSrcnjIUZMiIjODgGosFhQ==",
"dev": true, "dev": true,
"license": "MIT",
"dependencies": { "dependencies": {
"@typescript-eslint/types": "8.14.0", "@typescript-eslint/types": "8.23.0",
"eslint-visitor-keys": "^3.4.3" "eslint-visitor-keys": "^4.2.0"
}, },
"engines": { "engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0" "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@@ -5108,6 +5113,19 @@
"url": "https://opencollective.com/typescript-eslint" "url": "https://opencollective.com/typescript-eslint"
} }
}, },
"node_modules/@typescript-eslint/visitor-keys/node_modules/eslint-visitor-keys": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.0.tgz",
"integrity": "sha512-UyLnSehNt62FFhSwjZlHmeokpRK59rcz29j+F1/aDgbkbRTk7wIc9XzdoasMUbRNKDM0qQt/+BJ4BrpFeABemw==",
"dev": true,
"license": "Apache-2.0",
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
},
"funding": {
"url": "https://opencollective.com/eslint"
}
},
"node_modules/@ungap/structured-clone": { "node_modules/@ungap/structured-clone": {
"version": "1.2.0", "version": "1.2.0",
"resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz", "resolved": "https://registry.npmjs.org/@ungap/structured-clone/-/structured-clone-1.2.0.tgz",
@@ -7217,6 +7235,16 @@
"ms": "^2.1.1" "ms": "^2.1.1"
} }
}, },
"node_modules/eslint-plugin-drizzle": {
"version": "0.2.3",
"resolved": "https://registry.npmjs.org/eslint-plugin-drizzle/-/eslint-plugin-drizzle-0.2.3.tgz",
"integrity": "sha512-BO+ymHo33IUNoJlC0rbd7HP9EwwpW4VIp49R/tWQF/d2E1K2kgTf0tCXT0v9MSiBr6gGR1LtPwMLapTKEWSg9A==",
"dev": true,
"license": "Apache-2.0",
"peerDependencies": {
"eslint": ">=8.0.0"
}
},
"node_modules/eslint-plugin-import": { "node_modules/eslint-plugin-import": {
"version": "2.31.0", "version": "2.31.0",
"resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.31.0.tgz", "resolved": "https://registry.npmjs.org/eslint-plugin-import/-/eslint-plugin-import-2.31.0.tgz",
@@ -11127,15 +11155,16 @@
} }
}, },
"node_modules/ts-api-utils": { "node_modules/ts-api-utils": {
"version": "1.4.0", "version": "2.0.1",
"resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-1.4.0.tgz", "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.0.1.tgz",
"integrity": "sha512-032cPxaEKwM+GT3vA5JXNzIaizx388rhsSW79vGRNGXfRRAdEAn2mvk36PvK5HnOchyWZ7afLEXqYCvPCrzuzQ==", "integrity": "sha512-dnlgjFSVetynI8nzgJ+qF62efpglpWRk8isUEWZGWlJYySCTD6aKvbUDu+zbPeDakk3bg5H4XpitHukgfL1m9w==",
"dev": true, "dev": true,
"license": "MIT",
"engines": { "engines": {
"node": ">=16" "node": ">=18.12"
}, },
"peerDependencies": { "peerDependencies": {
"typescript": ">=4.2.0" "typescript": ">=4.8.4"
} }
}, },
"node_modules/ts-interface-checker": { "node_modules/ts-interface-checker": {

View File

@@ -3,13 +3,13 @@
"version": "0.2.0", "version": "0.2.0",
"private": "true", "private": "true",
"scripts": { "scripts": {
"dev": "next dev --turbopack", "dev": "next dev",
"build": "next build", "build": "next build",
"start": "next start", "start": "next start",
"lint": "next lint" "lint": "next lint"
}, },
"dependencies": { "dependencies": {
"@clerk/nextjs": "^6.10.0", "@clerk/nextjs": "^6.10.6",
"@emotion/react": "^11.13.5", "@emotion/react": "^11.13.5",
"@emotion/styled": "^11.13.5", "@emotion/styled": "^11.13.5",
"@headlessui/react": "^2.2.0", "@headlessui/react": "^2.2.0",

View File

@@ -68,6 +68,16 @@ export const editUser = async (id: string, first_name: string, last_name: string
revalidatePath("/"); revalidatePath("/");
}; };
export const isAdmin = async (userId: string): Promise<boolean | null> => {
const data = await db.select().from(users).where(eq(users.id, userId));
if(!data[0] == null){
return false;
} else {
return data[0].isAdmin;
}
}
export const makeAdmin = async ( email : string) => { export const makeAdmin = async ( email : string) => {
await db await db
.update(users) .update(users)

View File

@@ -0,0 +1,8 @@
"use client";
const ButtonProducts = ( props:any ) => {
const category = props.category;
return (
<button onClick={async () => { alert(category); return false;}} >{props.category}</button>
)
}
export default ButtonProducts;

View File

@@ -1,19 +1,26 @@
import React from "react"; import React from "react";
import { getBBProductsCategories } from "@/db/queries/Products"; import { getBBProductsCategories } from "@/db/queries/Products";
import Link from "next/link"; // import Link from "next/link";
import ButtonProducts from "../ButtonProduct";
const Filter: React.FC<{ [key: string]: any }> = async (props: unknown) => { interface FilterProps {
heading: string;
[key: string]: unknown;
}
const Filter: React.FC<FilterProps> = async (props) => {
const bbCats = getBBProductsCategories(); const bbCats = getBBProductsCategories();
return ( return (
<div className="mt-20"> <div className="mt-20">
<h1 className="pt-10 ml-2 font-bold">{props.heading}</h1> <h1 className="pt-10 ml-2 font-bold">{props.heading}</h1>
<div className="flex flex-col pt-2 pb-6 ml-2 rounded-r-lg text-white bg-[#334155]"> <div className="flex flex-col pt-2 pb-6 ml-2 rounded-r-lg text-white bg-[#334155]">
{(await bbCats).map((cat) => ( {(await bbCats).map((cat) => (
<div className="ml-2 " key={cat.category}> <div className="ml-2 " key={cat.category}>
<Link href={`/products/${cat.category}`} onClick={() => alert("Coming")}> {/* <Link href={`/products/${cat.category}`}> */}
{cat.category} <ButtonProducts category={cat.category} />
</Link> {/* </Link> */}
</div> </div>
)) ))
} }

View File

@@ -1,40 +1,43 @@
import Link from "next/link"; import Link from "next/link";
import constants from "@/lib/constants"; import constants from "@/lib/constants";
import { validateRequest } from "@/lib/auth/validate-request";
import { isAdmin } from "@/actions/userActions";
const navigation = { const navigation = {
armory: [ armory: [
{ name: 'Builder', href: '/Builder' }, { name: 'Builder', href: '/Builder', role: null },
{ name: 'Lowers', href: '/Products/lowers' }, { name: 'Lowers', href: '/Products/lowers', role: null },
{ name: 'Uppers', href: '/Products/uppers' }, { name: 'Uppers', href: '/Products/uppers', role: null },
{ name: 'Optics', href: '/Products/optics' }, { name: 'Optics', href: '/Products/optics', role: null },
{ name: 'Accessories', href: '/Products/accessories' }, { name: 'Accessories', href: '/Products/accessories', role: null },
{ name: 'Suppressors', href: '/Products/suppressors' }, { name: 'Suppressors', href: '/Products/suppressors', role: null },
], ],
admin: [ admin: [
{ name: 'Users', href: '/Admin/Users' }, { name: 'Users', href: '/Admin/Users', role: "Admin" },
], ],
account: [ account: [
{ name: 'Accounts', href: '/Admin/Accounts' }, { name: 'Accounts', href: '/Admin/Accounts', role: null },
{ name: 'My Account', href: '/MyAccount' }, { name: 'My Account', href: '/MyAccount', role: null },
{ name: 'Register', href: '/login' }, { name: 'Register', href: '/login', role: null },
{ name: 'Guides', href: '/Guides' }, { name: 'Guides', href: '/Guides', role: null },
], ],
about: [ about: [
{ name: 'About', href: '/About' }, { name: 'About', href: '/About', role: null },
{ name: 'Blog', href: '/Blog' }, { name: 'Blog', href: '/Blog', role: null },
{ name: 'Jobs', href: '/Jobs' }, { name: 'Jobs', href: '/Jobs', role: null },
{ name: 'Press', href: '/Press' }, { name: 'Press', href: '/Press', role: null },
{ name: 'Contact', href: '/Contact' }, { name: 'Contact', href: '/Contact', role: null },
], ],
legal: [ legal: [
{ name: 'Terms of service', href: '/TOS' }, { name: 'Terms of service', href: '/TOS', role: null },
{ name: 'Privacy policy', href: '/PP' }, { name: 'Privacy policy', href: '/PP', role: null },
{ name: 'Affiliate Disclosure', href: '/Disclosure' }, { name: 'Affiliate Disclosure', href: '/Disclosure', role: null },
], ],
social: [ social: [
{ {
name: 'Facebook', name: 'Facebook',
href: '#', href: '#',
role: null,
icon: (props: any) => ( icon: (props: any) => (
<svg fill="currentColor" viewBox="0 0 24 24" {...props}> <svg fill="currentColor" viewBox="0 0 24 24" {...props}>
<path <path
@@ -48,6 +51,7 @@ const navigation = {
{ {
name: 'Instagram', name: 'Instagram',
href: '#', href: '#',
role: null,
icon: (props: any) => ( icon: (props: any) => (
<svg fill="currentColor" viewBox="0 0 24 24" {...props}> <svg fill="currentColor" viewBox="0 0 24 24" {...props}>
<path <path
@@ -61,6 +65,7 @@ const navigation = {
{ {
name: 'X', name: 'X',
href: '#', href: '#',
role: null,
icon: (props: any) => ( icon: (props: any) => (
<svg fill="currentColor" viewBox="0 0 24 24" {...props}> <svg fill="currentColor" viewBox="0 0 24 24" {...props}>
<path d="M13.6823 10.6218L20.2391 3H18.6854L12.9921 9.61788L8.44486 3H3.2002L10.0765 13.0074L3.2002 21H4.75404L10.7663 14.0113L15.5685 21H20.8131L13.6819 10.6218H13.6823ZM11.5541 13.0956L10.8574 12.0991L5.31391 4.16971H7.70053L12.1742 10.5689L12.8709 11.5655L18.6861 19.8835H16.2995L11.5541 13.096V13.0956Z" /> <path d="M13.6823 10.6218L20.2391 3H18.6854L12.9921 9.61788L8.44486 3H3.2002L10.0765 13.0074L3.2002 21H4.75404L10.7663 14.0113L15.5685 21H20.8131L13.6819 10.6218H13.6823ZM11.5541 13.0956L10.8574 12.0991L5.31391 4.16971H7.70053L12.1742 10.5689L12.8709 11.5655L18.6861 19.8835H16.2995L11.5541 13.096V13.0956Z" />
@@ -70,6 +75,7 @@ const navigation = {
{ {
name: 'YouTube', name: 'YouTube',
href: '#', href: '#',
role: null,
icon: (props: any) => ( icon: (props: any) => (
<svg fill="currentColor" viewBox="0 0 24 24" {...props}> <svg fill="currentColor" viewBox="0 0 24 24" {...props}>
<path <path
@@ -83,11 +89,24 @@ const navigation = {
], ],
} }
export default function Footer() { export default async function Footer() {
const newDate = new Date(); const newDate = new Date();
const year = newDate.getFullYear(); const year = newDate.getFullYear();
const { session, user } = await validateRequest();
let message = user?.id ?? '';
let isAdminFlag:boolean = false;
console.log("console log:"+ message);
console.log(user?.email);
if(session != null) {
message = (await isAdmin(message)) ? user.id : '';
isAdminFlag = (await isAdmin(message)) ?? false;
} else{
console.log("session is empty");
}
return ( return (
<footer className="bg-zinc-900"> <footer className="bg-zinc-900">
<div className="bg-white">{message}should be something here</div>
<div className="mx-auto max-w-7xl px-6 pb-8 pt-20 sm:pt-24 lg:px-8 lg:pt-32"> <div className="mx-auto max-w-7xl px-6 pb-8 pt-20 sm:pt-24 lg:px-8 lg:pt-32">
<div className="xl:grid xl:grid-cols-3 xl:gap-8"> <div className="xl:grid xl:grid-cols-3 xl:gap-8">
<div className="grid grid-cols-2 gap-8 xl:col-span-2"> <div className="grid grid-cols-2 gap-8 xl:col-span-2">
@@ -117,6 +136,7 @@ export default function Footer() {
))} ))}
</ul> </ul>
</div> </div>
{(isAdminFlag) ?
<div className="mt-10 md:mt-0"> <div className="mt-10 md:mt-0">
<h3 className="text-sm/6 font-semibold text-white">Administration</h3> <h3 className="text-sm/6 font-semibold text-white">Administration</h3>
<ul role="list" className="mt-6 space-y-4"> <ul role="list" className="mt-6 space-y-4">
@@ -130,6 +150,7 @@ export default function Footer() {
))} ))}
</ul> </ul>
</div> </div>
:""}
</div> </div>
<div className="md:grid md:grid-cols-2 md:gap-8"> <div className="md:grid md:grid-cols-2 md:gap-8">
<div> <div>

View File

@@ -120,7 +120,7 @@ export default async function SortTable(props: any) {
type="button" type="button"
className="inline-flex items-center gap-x-1.5 rounded-xl bg-lime-800 px-2.5 py-1.5 text-sm font-semibold text-white shadow-sm hover:bg-lime-900 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-lime-900" className="inline-flex items-center gap-x-1.5 rounded-xl bg-lime-800 px-2.5 py-1.5 text-sm font-semibold text-white shadow-sm hover:bg-lime-900 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-lime-900"
> >
Add Add to Build
<PlusCircleIcon <PlusCircleIcon
aria-hidden="true" aria-hidden="true"
className="-mr-0.5 size-5" className="-mr-0.5 size-5"

View File

@@ -32,7 +32,7 @@ export const uncachedValidateRequest = async (): Promise<
); );
} }
} catch { } catch {
console.error("Failed to set session cookie"); //console.error("Failed to set session cookie");
} }
return result; return result;
}; };