@stacksjs/buddy 0.70.112 → 0.70.114
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli.js +23 -2
- package/dist/commands/add.js +1 -1
- package/dist/commands/build.js +58 -11
- package/dist/commands/clean.js +9 -2
- package/dist/commands/cloud.js +27 -11
- package/dist/commands/commit.js +1 -1
- package/dist/commands/create.js +20 -10
- package/dist/commands/deploy.js +31 -6
- package/dist/commands/dev.js +38 -31
- package/dist/commands/doctor.d.ts +9 -0
- package/dist/commands/doctor.js +162 -19
- package/dist/commands/extension.js +38 -2
- package/dist/commands/fresh.js +9 -2
- package/dist/commands/make.js +48 -31
- package/dist/commands/migrate.js +2 -1
- package/dist/commands/setup.d.ts +1 -0
- package/dist/commands/setup.js +56 -10
- package/dist/commands/types.js +1 -1
- package/dist/lazy-commands.js +15 -5
- package/package.json +45 -44
package/dist/commands/setup.js
CHANGED
|
@@ -14,7 +14,7 @@ function getTimeoutMs(envVar, fallbackMs) {
|
|
|
14
14
|
return value;
|
|
15
15
|
return fallbackMs;
|
|
16
16
|
}
|
|
17
|
-
const PANTRY_CHECK_TIMEOUT_MS = getTimeoutMs("PANTRY_CHECK_TIMEOUT_MS", 15000), PANTRY_INSTALL_TIMEOUT_MS = getTimeoutMs("PANTRY_INSTALL_TIMEOUT_MS", 600000), PANTRY_DEPENDENCIES_TIMEOUT_MS = getTimeoutMs("PANTRY_DEPENDENCIES_TIMEOUT_MS", 1200000), KEYGEN_TIMEOUT_MS = getTimeoutMs("KEYGEN_TIMEOUT_MS", 120000), AWS_CONFIG_TIMEOUT_MS = getTimeoutMs("AWS_CONFIG_TIMEOUT_MS", 900000);
|
|
17
|
+
const PANTRY_CHECK_TIMEOUT_MS = getTimeoutMs("PANTRY_CHECK_TIMEOUT_MS", 15000), PANTRY_INSTALL_TIMEOUT_MS = getTimeoutMs("PANTRY_INSTALL_TIMEOUT_MS", 600000), PANTRY_DEPENDENCIES_TIMEOUT_MS = getTimeoutMs("PANTRY_DEPENDENCIES_TIMEOUT_MS", 1200000), BUN_INSTALL_TIMEOUT_MS = getTimeoutMs("BUN_INSTALL_TIMEOUT_MS", 600000), KEYGEN_TIMEOUT_MS = getTimeoutMs("KEYGEN_TIMEOUT_MS", 120000), AWS_CONFIG_TIMEOUT_MS = getTimeoutMs("AWS_CONFIG_TIMEOUT_MS", 900000);
|
|
18
18
|
export function setup(buddy) {
|
|
19
19
|
const descriptions = {
|
|
20
20
|
setup: "This command ensures your project is setup correctly",
|
|
@@ -103,6 +103,25 @@ export async function ensurePantryDependencies(cwd) {
|
|
|
103
103
|
handleError(result.error);
|
|
104
104
|
process.exit(ExitCode.FatalError);
|
|
105
105
|
}
|
|
106
|
+
export async function ensureNodeDependencies(cwd) {
|
|
107
|
+
if (existsSync(join(cwd, "node_modules"))) {
|
|
108
|
+
log.success("node_modules existed, skipping bun install");
|
|
109
|
+
return;
|
|
110
|
+
}
|
|
111
|
+
log.info("Running bun install...");
|
|
112
|
+
const result = await runCommand("bun install", {
|
|
113
|
+
cwd,
|
|
114
|
+
timeoutMs: BUN_INSTALL_TIMEOUT_MS
|
|
115
|
+
}).catch((error) => {
|
|
116
|
+
handleError(error);
|
|
117
|
+
process.exit(ExitCode.FatalError);
|
|
118
|
+
});
|
|
119
|
+
if (result.isErr) {
|
|
120
|
+
handleError(result.error);
|
|
121
|
+
process.exit(ExitCode.FatalError);
|
|
122
|
+
}
|
|
123
|
+
log.success("Installed node dependencies");
|
|
124
|
+
}
|
|
106
125
|
function hasAppKey(cwd) {
|
|
107
126
|
const envPath = join(cwd, ".env");
|
|
108
127
|
if (!existsSync(envPath))
|
|
@@ -124,26 +143,53 @@ export async function ensureAppKey(cwd) {
|
|
|
124
143
|
}
|
|
125
144
|
log.success("Generated application key");
|
|
126
145
|
}
|
|
146
|
+
async function runInitialMigration(cwd) {
|
|
147
|
+
const appEnv = (process.env.APP_ENV || process.env.NODE_ENV || "local").toLowerCase();
|
|
148
|
+
if (!["local", "development", "dev", "test"].includes(appEnv)) {
|
|
149
|
+
log.info(`Skipping initial migration in the ${appEnv} environment`);
|
|
150
|
+
return;
|
|
151
|
+
}
|
|
152
|
+
log.info("Running initial database migration...");
|
|
153
|
+
try {
|
|
154
|
+
const result = await runAction(Action.Migrate, { cwd });
|
|
155
|
+
if (result.isErr) {
|
|
156
|
+
log.warn("Initial migration did not complete - you can run it later via ./buddy migrate");
|
|
157
|
+
log.debug(result.error);
|
|
158
|
+
return;
|
|
159
|
+
}
|
|
160
|
+
log.success("Database is migrated");
|
|
161
|
+
} catch (error) {
|
|
162
|
+
log.warn("Initial migration did not complete - you can run it later via ./buddy migrate");
|
|
163
|
+
log.debug(error);
|
|
164
|
+
}
|
|
165
|
+
}
|
|
127
166
|
async function initializeProject(options) {
|
|
128
167
|
const cwd = options.cwd || p.projectPath();
|
|
129
168
|
await ensurePantryDependencies(cwd);
|
|
169
|
+
await ensureNodeDependencies(cwd);
|
|
130
170
|
await ensureEnvIsSet(options);
|
|
131
171
|
if (!options.skipKeygen)
|
|
132
172
|
await ensureAppKey(cwd);
|
|
173
|
+
await runInitialMigration(cwd);
|
|
133
174
|
if (!options.skipAws) {
|
|
134
175
|
log.info("Ensuring AWS is connected...");
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
176
|
+
try {
|
|
177
|
+
const awsResult = await runCommand("./buddy configure:aws", {
|
|
178
|
+
cwd,
|
|
179
|
+
timeoutMs: AWS_CONFIG_TIMEOUT_MS
|
|
180
|
+
});
|
|
181
|
+
if (awsResult.isErr) {
|
|
182
|
+
log.warn("AWS not configured - you can do this later via ./buddy configure:aws");
|
|
183
|
+
log.debug(awsResult.error);
|
|
184
|
+
} else
|
|
185
|
+
log.success("Configured AWS");
|
|
186
|
+
} catch (error) {
|
|
187
|
+
log.warn("AWS not configured - you can do this later via ./buddy configure:aws");
|
|
188
|
+
log.debug(error);
|
|
142
189
|
}
|
|
143
|
-
log.success("Configured AWS");
|
|
144
190
|
}
|
|
145
191
|
log.success("Project is setup");
|
|
146
|
-
log.info("Happy coding! \uD83D\uDC99");
|
|
192
|
+
log.info("Run `./buddy doctor` anytime to check your setup. Happy coding! \uD83D\uDC99");
|
|
147
193
|
}
|
|
148
194
|
const DB_CONNECTION_PACKAGES = {
|
|
149
195
|
postgres: { name: "postgresql.org", version: "^17.10" },
|
package/dist/commands/types.js
CHANGED
|
@@ -5,7 +5,7 @@ import { onUnknownSubcommand } from "@stacksjs/cli";
|
|
|
5
5
|
export function types(buddy) {
|
|
6
6
|
const descriptions = {
|
|
7
7
|
generate: "Generate the types of & for your library/libraries",
|
|
8
|
-
fix: "
|
|
8
|
+
fix: "Fix the generated types of & for your library/libraries (not yet implemented)",
|
|
9
9
|
project: "Target a specific project",
|
|
10
10
|
verbose: "Enable verbose output"
|
|
11
11
|
};
|
package/dist/lazy-commands.js
CHANGED
|
@@ -12,6 +12,7 @@ const commandRegistry = {
|
|
|
12
12
|
"config:migrate": { path: "./commands/config-migrate.js", exportName: "configMigrate" },
|
|
13
13
|
configure: { path: "./commands/configure.js", exportName: "configure" },
|
|
14
14
|
create: { path: "./commands/create.js", exportName: "create" },
|
|
15
|
+
new: { path: "./commands/create.js", exportName: "create" },
|
|
15
16
|
deploy: { path: "./commands/deploy.js", exportName: "deploy" },
|
|
16
17
|
dev: { path: "./commands/dev.js", exportName: "dev" },
|
|
17
18
|
dns: { path: "./commands/dns.js", exportName: "dns" },
|
|
@@ -25,6 +26,9 @@ const commandRegistry = {
|
|
|
25
26
|
"extension:init": { path: "./commands/extension.js", exportName: "extension" },
|
|
26
27
|
"extension:build": { path: "./commands/extension.js", exportName: "extension" },
|
|
27
28
|
"extension:package": { path: "./commands/extension.js", exportName: "extension" },
|
|
29
|
+
"extension:safari:init": { path: "./commands/extension.js", exportName: "extension" },
|
|
30
|
+
"extension:safari:app": { path: "./commands/extension.js", exportName: "extension" },
|
|
31
|
+
"extension:safari:publish": { path: "./commands/extension.js", exportName: "extension" },
|
|
28
32
|
"dashboard:install": { path: "./commands/features.js", exportName: "features" },
|
|
29
33
|
"dashboard:uninstall": { path: "./commands/features.js", exportName: "features" },
|
|
30
34
|
"commerce:install": { path: "./commands/features.js", exportName: "features" },
|
|
@@ -45,6 +49,8 @@ const commandRegistry = {
|
|
|
45
49
|
install: { path: "./commands/install.js", exportName: "install" },
|
|
46
50
|
key: { path: "./commands/key.js", exportName: "key" },
|
|
47
51
|
lint: { path: "./commands/lint.js", exportName: "lint" },
|
|
52
|
+
format: { path: "./commands/lint.js", exportName: "lint" },
|
|
53
|
+
"format:check": { path: "./commands/lint.js", exportName: "lint" },
|
|
48
54
|
list: { path: "./commands/list.js", exportName: "list" },
|
|
49
55
|
mail: { path: "./commands/mail.js", exportName: "mailCommands" },
|
|
50
56
|
"mail:preview": { path: "./commands/mail.js", exportName: "mailCommands" },
|
|
@@ -52,7 +58,11 @@ const commandRegistry = {
|
|
|
52
58
|
down: { path: "./commands/maintenance.js", exportName: "maintenance" },
|
|
53
59
|
up: { path: "./commands/maintenance.js", exportName: "maintenance" },
|
|
54
60
|
status: { path: "./commands/maintenance.js", exportName: "maintenance" },
|
|
61
|
+
"coming-soon": { path: "./commands/maintenance.js", exportName: "maintenance" },
|
|
62
|
+
"coming-soon:status": { path: "./commands/maintenance.js", exportName: "maintenance" },
|
|
63
|
+
launch: { path: "./commands/maintenance.js", exportName: "maintenance" },
|
|
55
64
|
make: { path: "./commands/make.js", exportName: "make" },
|
|
65
|
+
"scaffold:crud": { path: "./commands/make.js", exportName: "make" },
|
|
56
66
|
migrate: { path: "./commands/migrate.js", exportName: "migrate" },
|
|
57
67
|
"migrate:fresh": { path: "./commands/migrate.js", exportName: "migrate" },
|
|
58
68
|
"migrate:switch": { path: "./commands/migrate.js", exportName: "migrate" },
|
|
@@ -74,8 +84,11 @@ const commandRegistry = {
|
|
|
74
84
|
release: { path: "./commands/release.js", exportName: "release" },
|
|
75
85
|
route: { path: "./commands/route.js", exportName: "route" },
|
|
76
86
|
saas: { path: "./commands/saas.js", exportName: "saas" },
|
|
87
|
+
"stripe:setup": { path: "./commands/saas.js", exportName: "saas" },
|
|
77
88
|
schedule: { path: "./commands/schedule.js", exportName: "schedule" },
|
|
78
89
|
search: { path: "./commands/search.js", exportName: "search" },
|
|
90
|
+
"search-engine:update": { path: "./commands/search.js", exportName: "search" },
|
|
91
|
+
"search-engine:settings": { path: "./commands/search.js", exportName: "search" },
|
|
79
92
|
seed: { path: "./commands/seed.js", exportName: "seed" },
|
|
80
93
|
"seed:roles": { path: "./commands/seed.js", exportName: "seed" },
|
|
81
94
|
"roles:seed": { path: "./commands/seed.js", exportName: "seed" },
|
|
@@ -177,12 +190,9 @@ export function getCommandsToLoad(args) {
|
|
|
177
190
|
const baseCommand = requestedCommand.split(":")[0];
|
|
178
191
|
if (baseCommand === "list")
|
|
179
192
|
return ["list", ...Object.keys(commandRegistry).filter((k) => k !== "list")];
|
|
193
|
+
if (commandRegistry[requestedCommand])
|
|
194
|
+
return [requestedCommand];
|
|
180
195
|
if (commandRegistry[baseCommand])
|
|
181
196
|
return [baseCommand];
|
|
182
|
-
if (requestedCommand.includes(":")) {
|
|
183
|
-
const namespace = baseCommand;
|
|
184
|
-
if (commandRegistry[namespace])
|
|
185
|
-
return [namespace];
|
|
186
|
-
}
|
|
187
197
|
return Object.keys(commandRegistry);
|
|
188
198
|
}
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "@stacksjs/buddy",
|
|
3
3
|
"type": "module",
|
|
4
4
|
"sideEffects": false,
|
|
5
|
-
"version": "0.70.
|
|
5
|
+
"version": "0.70.114",
|
|
6
6
|
"description": "Meet Buddy. The Stacks runtime.",
|
|
7
7
|
"author": "Chris Breuer",
|
|
8
8
|
"contributors": [
|
|
@@ -92,54 +92,55 @@
|
|
|
92
92
|
"prepublishOnly": "bun run build"
|
|
93
93
|
},
|
|
94
94
|
"dependencies": {
|
|
95
|
-
"@stacksjs/actions": "^0.70.
|
|
96
|
-
"@stacksjs/ai": "^0.70.
|
|
97
|
-
"@stacksjs/alias": "^0.70.
|
|
98
|
-
"@stacksjs/arrays": "^0.70.
|
|
99
|
-
"@stacksjs/auth": "^0.70.
|
|
100
|
-
"@stacksjs/build": "^0.70.
|
|
101
|
-
"@stacksjs/cache": "^0.70.
|
|
102
|
-
"@stacksjs/cli": "^0.70.
|
|
103
|
-
"@stacksjs/
|
|
104
|
-
"@stacksjs/
|
|
105
|
-
"@stacksjs/
|
|
106
|
-
"@stacksjs/
|
|
107
|
-
"@stacksjs/
|
|
108
|
-
"@stacksjs/
|
|
109
|
-
"@stacksjs/
|
|
110
|
-
"@stacksjs/
|
|
111
|
-
"@stacksjs/
|
|
112
|
-
"@stacksjs/
|
|
113
|
-
"@stacksjs/
|
|
95
|
+
"@stacksjs/actions": "^0.70.114",
|
|
96
|
+
"@stacksjs/ai": "^0.70.114",
|
|
97
|
+
"@stacksjs/alias": "^0.70.114",
|
|
98
|
+
"@stacksjs/arrays": "^0.70.114",
|
|
99
|
+
"@stacksjs/auth": "^0.70.114",
|
|
100
|
+
"@stacksjs/build": "^0.70.114",
|
|
101
|
+
"@stacksjs/cache": "^0.70.114",
|
|
102
|
+
"@stacksjs/cli": "^0.70.114",
|
|
103
|
+
"@stacksjs/clapp": "catalog:",
|
|
104
|
+
"@stacksjs/cloud": "^0.70.114",
|
|
105
|
+
"@stacksjs/collections": "^0.70.114",
|
|
106
|
+
"@stacksjs/config": "^0.70.114",
|
|
107
|
+
"@stacksjs/database": "^0.70.114",
|
|
108
|
+
"@stacksjs/desktop": "^0.70.114",
|
|
109
|
+
"@stacksjs/dns": "^0.70.114",
|
|
110
|
+
"@stacksjs/email": "^0.70.114",
|
|
111
|
+
"@stacksjs/enums": "^0.70.114",
|
|
112
|
+
"@stacksjs/error-handling": "^0.70.114",
|
|
113
|
+
"@stacksjs/events": "^0.70.114",
|
|
114
|
+
"@stacksjs/git": "^0.70.114",
|
|
114
115
|
"@stacksjs/gitit": "^0.2.5",
|
|
115
|
-
"@stacksjs/health": "^0.70.
|
|
116
|
+
"@stacksjs/health": "^0.70.114",
|
|
116
117
|
"@stacksjs/dnsx": "^0.2.3",
|
|
117
118
|
"@stacksjs/httx": "^0.1.10",
|
|
118
|
-
"@stacksjs/lint": "^0.70.
|
|
119
|
-
"@stacksjs/logging": "^0.70.
|
|
120
|
-
"@stacksjs/notifications": "^0.70.
|
|
121
|
-
"@stacksjs/objects": "^0.70.
|
|
122
|
-
"@stacksjs/orm": "^0.70.
|
|
123
|
-
"@stacksjs/path": "^0.70.
|
|
124
|
-
"@stacksjs/payments": "^0.70.
|
|
125
|
-
"@stacksjs/realtime": "^0.70.
|
|
126
|
-
"@stacksjs/router": "^0.70.
|
|
127
|
-
"@stacksjs/rpx": "^0.11.
|
|
128
|
-
"@stacksjs/search-engine": "^0.70.
|
|
129
|
-
"@stacksjs/security": "^0.70.
|
|
130
|
-
"@stacksjs/server": "^0.70.
|
|
131
|
-
"@stacksjs/storage": "^0.70.
|
|
132
|
-
"@stacksjs/strings": "^0.70.
|
|
133
|
-
"@stacksjs/testing": "^0.70.
|
|
134
|
-
"@stacksjs/tunnel": "^0.70.
|
|
135
|
-
"@stacksjs/types": "^0.70.
|
|
136
|
-
"@stacksjs/ui": "^0.70.
|
|
137
|
-
"@stacksjs/utils": "^0.70.
|
|
138
|
-
"@stacksjs/validation": "^0.70.
|
|
139
|
-
"@stacksjs/ts-cloud": "
|
|
119
|
+
"@stacksjs/lint": "^0.70.114",
|
|
120
|
+
"@stacksjs/logging": "^0.70.114",
|
|
121
|
+
"@stacksjs/notifications": "^0.70.114",
|
|
122
|
+
"@stacksjs/objects": "^0.70.114",
|
|
123
|
+
"@stacksjs/orm": "^0.70.114",
|
|
124
|
+
"@stacksjs/path": "^0.70.114",
|
|
125
|
+
"@stacksjs/payments": "^0.70.114",
|
|
126
|
+
"@stacksjs/realtime": "^0.70.114",
|
|
127
|
+
"@stacksjs/router": "^0.70.114",
|
|
128
|
+
"@stacksjs/rpx": "^0.11.29",
|
|
129
|
+
"@stacksjs/search-engine": "^0.70.114",
|
|
130
|
+
"@stacksjs/security": "^0.70.114",
|
|
131
|
+
"@stacksjs/server": "^0.70.114",
|
|
132
|
+
"@stacksjs/storage": "^0.70.114",
|
|
133
|
+
"@stacksjs/strings": "^0.70.114",
|
|
134
|
+
"@stacksjs/testing": "^0.70.114",
|
|
135
|
+
"@stacksjs/tunnel": "^0.70.114",
|
|
136
|
+
"@stacksjs/types": "^0.70.114",
|
|
137
|
+
"@stacksjs/ui": "^0.70.114",
|
|
138
|
+
"@stacksjs/utils": "^0.70.114",
|
|
139
|
+
"@stacksjs/validation": "^0.70.114",
|
|
140
|
+
"@stacksjs/ts-cloud": "catalog:"
|
|
140
141
|
},
|
|
141
142
|
"devDependencies": {
|
|
142
|
-
"better-dx": "
|
|
143
|
+
"better-dx": "catalog:"
|
|
143
144
|
},
|
|
144
145
|
"web-types": "./web-types.json"
|
|
145
146
|
}
|