feat(db): mesh data model — meshes, members, invites, audit log
- pgSchema "mesh" with 4 tables isolating the peer mesh domain - Enums: visibility, transport, tier, role - audit_log is metadata-only (E2E encryption enforced at broker/client) - Cascade on mesh delete, soft-delete via archivedAt/revokedAt Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
61
tooling/scripts/src/requirements.mjs
Normal file
61
tooling/scripts/src/requirements.mjs
Normal file
@@ -0,0 +1,61 @@
|
||||
import { execSync } from "child_process";
|
||||
|
||||
// check requirements to run TurboStarter
|
||||
void checkRequirements();
|
||||
|
||||
function checkRequirements() {
|
||||
validateNodeInstalled();
|
||||
validatePnpmInstalled();
|
||||
validatePathNotOneDrive();
|
||||
}
|
||||
|
||||
/**
|
||||
* Validates that pnpm is installed.
|
||||
* If pnpm is not installed, it exits the script with an error message.
|
||||
*/
|
||||
function validatePnpmInstalled() {
|
||||
const currentPnpmVersion = execSync("pnpm --version").toString().trim();
|
||||
|
||||
if (!currentPnpmVersion) {
|
||||
console.error(
|
||||
`\x1b[31m%s\x1b[0m`,
|
||||
`You are running TurboStarter from a directory that does not have pnpm installed. Please install pnpm and run "pnpm install" in your project directory.`,
|
||||
);
|
||||
|
||||
process.exit(1);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Validates that Node is installed.
|
||||
* If Node is not installed, it exits the script with an error message.
|
||||
*/
|
||||
function validateNodeInstalled() {
|
||||
const currentNodeVersion = process.versions.node;
|
||||
|
||||
if (!currentNodeVersion) {
|
||||
console.error(
|
||||
`\x1b[31m%s\x1b[0m`,
|
||||
`You are running TurboStarter from a device that does not have Node installed. Please install Node (https://nodejs.org/en/download/) and try again.`,
|
||||
);
|
||||
|
||||
process.exit(1);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks if the current working directory is not OneDrive.
|
||||
* If the current working directory is OneDrive, it exits the script with an error message.
|
||||
*/
|
||||
function validatePathNotOneDrive() {
|
||||
const path = process.cwd();
|
||||
|
||||
if (path.includes("OneDrive")) {
|
||||
console.error(
|
||||
`\x1b[31m%s\x1b[0m`,
|
||||
`You are running TurboStarter from OneDrive. Please move your project to a local folder.`,
|
||||
);
|
||||
|
||||
process.exit(1);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user