- 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>
62 lines
1.6 KiB
JavaScript
62 lines
1.6 KiB
JavaScript
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);
|
|
}
|
|
}
|