3 Commits

Author SHA1 Message Date
nerdychara 0a0c8dc17c move generated folder back to where it belongs
Node.js CI / CI (pull_request) Failing after 19s
Security Scan and Upload / Security & DefectDojo Upload (pull_request) Successful in 52s
2026-01-07 09:05:18 -05:00
nerdychara 1e25328711 able to sign in and create a local database
Node.js CI / CI (pull_request) Failing after 18s
Security Scan and Upload / Security & DefectDojo Upload (pull_request) Successful in 49s
2026-01-06 15:50:17 -05:00
nerdychara 6fda359b2d feat: add prisma 2026-01-05 16:42:01 -05:00
13 changed files with 494 additions and 170 deletions
+2
View File
@@ -1,2 +1,4 @@
node_modules
prod
generated/prisma
+25
View File
@@ -0,0 +1,25 @@
# Package Manager Configuration
# Force pnpm usage - breaks npm/yarn intentionally
node-linker=pnpm
# Security: Disable all lifecycle scripts
ignore-scripts=true
enable-pre-post-scripts=false
# Security: Require packages to be 10+ days old before installation
minimum-release-age=14400
# Security: Verify package integrity hashes
verify-store-integrity=true
# Security: Enforce strict trust policies
trust-policy=strict
# Security: Strict peer dependency resolution
strict-peer-dependencies=true
# Performance: Use symlinks for node_modules
symlink=true
# Lockfile: Ensure lockfile is not modified during install
frozen-lockfile=false
+4 -1
View File
@@ -2,5 +2,8 @@
"editor.codeActionsOnSave": {
"source.fixAll.eslint": "explicit"
},
"eslint.validate": ["typescript"]
"eslint.validate": [
"typescript"
],
"prisma.pinToPrisma6": true
}
+1 -1
View File
@@ -18,7 +18,7 @@ This page is currently deployed. [View the live website.]
## Feedback and Bugs
If you have feedback or a bug report, please [log a ticket on our forum](https://support.nhcarrigan.com).
If you have feedback or a bug report, please feel free to open a GitHub issue!
## Contributing
+7 -5
View File
@@ -7,7 +7,7 @@
"scripts": {
"build": "rm -rf prod && tsc",
"lint": "eslint src --max-warnings 0",
"start": "op run --env-file=prod.env --no-masking -- node prod/index.js",
"start": "op run --env-file=prod.env --no-masking -- node prod/src/index.js",
"test": "echo \"No tests yet!\" && exit 0"
},
"keywords": [],
@@ -17,15 +17,17 @@
"@nhcarrigan/eslint-config": "5.2.0",
"@nhcarrigan/typescript-config": "4.0.0",
"@types/node": "24.0.6",
"@types/node-schedule": "2.1.8",
"@types/node-schedule": "2.1.7",
"@vitest/coverage-istanbul": "3.2.4",
"eslint": "9.30.0",
"typescript": "6.0.2",
"typescript": "5.8.3",
"vitest": "3.2.4"
},
"dependencies": {
"@nhcarrigan/logger": "1.1.1",
"@nhcarrigan/logger": "1.0.0",
"@prisma/client": "6.19.1",
"discord.js": "14.21.0",
"node-schedule": "2.1.1"
"node-schedule": "2.1.1",
"prisma": "6.19"
}
}
+409 -140
View File
File diff suppressed because it is too large Load Diff
-21
View File
@@ -1,21 +0,0 @@
# Security
# Do not execute any scripts of installed packages (project scripts still run)
ignoreDepScripts: true
# Do not automatically run pre/post scripts (e.g. preinstall, postbuild)
enablePrePostScripts: false
# Only allow packages published at least 10 days ago (reduces risk of compromised packages)
minimumReleaseAge: 14400
# Fail if a package's trust level has decreased compared to previous releases
trustPolicy: no-downgrade
# Ignore trust policy for packages published more than 1 year ago (predates provenance signing)
trustPolicyIgnoreAfter: 525960
# Fail if there are missing or invalid peer dependencies
strictPeerDependencies: true
# Prevent transitive dependencies from using exotic sources (git repos, direct tarball URLs)
blockExoticSubdeps: true
# Lockfile
# Allow the lockfile to be updated during install (set to true in CI for stricter reproducibility)
preferFrozenLockfile: false
+24
View File
@@ -0,0 +1,24 @@
// This is your Prisma schema file,
// learn more about it in the docs: https://pris.ly/d/prisma-schema
// Looking for ways to speed up your queries, or scale easily with your serverless or edge functions?
// Try Prisma Accelerate: https://pris.ly/cli/accelerate-init
generator client {
provider = "prisma-client"
output = "../generated/prisma"
}
datasource db {
provider = "mongodb"
url = env("DATABASE_URL")
}
model ServerData {
id String @id @default(auto()) @map("_id") @db.ObjectId
serverId String
channelId String
roleId String
message String
cron String
}
+2 -1
View File
@@ -1,2 +1,3 @@
DISCORD_TOKEN="op://Environment Variables - Naomi/Standup Bot/discord_token"
LOG_TOKEN="op://Environment Variables - Naomi/Alert Server/api_auth"
LOG_TOKEN="op://Environment Variables - Naomi/Alert Server/api_auth"
DATABASE_URL="op://Environment Variables - Naomi/Standup Bot/database_url"
+2
View File
@@ -6,6 +6,7 @@
import { Client, Events, GatewayIntentBits } from "discord.js";
import { scheduleJob } from "node-schedule";
import { channels } from "./config/channels.js";
import { prisma } from "./lib/prisma.js";
import { standup } from "./modules/standup.js";
import { logger } from "./utils/logger.js";
@@ -22,6 +23,7 @@ process.on("unhandledRejection", (error) => {
process.on("uncaughtException", (error) => {
if (error instanceof Error) {
void logger.error("Uncaught Exception", error);
void prisma.$disconnect();
return;
}
void logger.error("uncaught exception", new Error(String(error)));
+5
View File
@@ -0,0 +1,5 @@
import { PrismaClient } from "../../generated/prisma/client.js";
const prisma = new PrismaClient();
export { prisma };
+12
View File
@@ -0,0 +1,12 @@
import { defineConfig } from "prisma/config";
export default defineConfig({
datasource: {
url: process.env.DATABASE_URL ?? "",
},
engine: "classic",
migrations: {
path: "prisma/migrations",
},
schema: "prisma/schema.prisma",
});
+1 -1
View File
@@ -1,7 +1,7 @@
{
"include": ["**/*.ts"],
"extends": "@nhcarrigan/typescript-config",
"compilerOptions": {
"rootDir": "./src",
"outDir": "./prod"
},
"exclude": ["test/**/*.ts", "vitest.config.ts"]