playcademy 0.17.4-alpha.1 → 0.17.5
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/bin.js +20 -3
- package/dist/cli.js +36 -28
- package/dist/index.d.ts +2 -2
- package/dist/index.js +45 -37
- package/dist/utils.js +6 -6
- package/dist/version.js +1 -1
- package/package.json +1 -1
package/dist/bin.js
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
import { spawnSync } from "node:child_process";
|
|
5
5
|
import { existsSync } from "node:fs";
|
|
6
6
|
import { homedir as homedir2 } from "node:os";
|
|
7
|
-
import { join as join2 } from "node:path";
|
|
7
|
+
import { delimiter, join as join2 } from "node:path";
|
|
8
8
|
import { green, red } from "colorette";
|
|
9
9
|
|
|
10
10
|
// src/constants/paths.ts
|
|
@@ -29,8 +29,25 @@ var CLI_DEFAULT_OUTPUTS = {
|
|
|
29
29
|
|
|
30
30
|
// src/bin.ts
|
|
31
31
|
var exe = process.platform === "win32" ? "playcademy.exe" : "playcademy";
|
|
32
|
-
|
|
33
|
-
|
|
32
|
+
function findBinary() {
|
|
33
|
+
const knownDirs = [CLI_USER_DIRECTORIES.BIN, join2(homedir2(), ".local", "bin")];
|
|
34
|
+
for (const dir of knownDirs) {
|
|
35
|
+
const p = join2(dir, exe);
|
|
36
|
+
if (existsSync(p)) {
|
|
37
|
+
return p;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
const nmBin = join2("node_modules", ".bin");
|
|
41
|
+
for (const dir of (process.env.PATH ?? "").split(delimiter)) {
|
|
42
|
+
if (dir && !dir.endsWith(nmBin)) {
|
|
43
|
+
const p = join2(dir, exe);
|
|
44
|
+
if (existsSync(p)) {
|
|
45
|
+
return p;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
var binary = findBinary();
|
|
34
51
|
if (binary) {
|
|
35
52
|
const result = spawnSync(binary, process.argv.slice(2), { stdio: "inherit" });
|
|
36
53
|
if (result.signal) {
|
package/dist/cli.js
CHANGED
|
@@ -2330,31 +2330,29 @@ function displaySuccessMessage(context2) {
|
|
|
2330
2330
|
const pm = getPackageManager();
|
|
2331
2331
|
const isVite = context2.engineType === "vite";
|
|
2332
2332
|
const isGodot = context2.engineType === "godot";
|
|
2333
|
-
|
|
2333
|
+
function nextStepNum() {
|
|
2334
|
+
return nextSteps.length + 1;
|
|
2335
|
+
}
|
|
2336
|
+
nextSteps.push(`${nextStepNum()}. Review your config file: <${context2.configFileName}>`);
|
|
2334
2337
|
if (context2.hasDatabase) {
|
|
2335
|
-
nextSteps.push(
|
|
2336
|
-
nextSteps.push(
|
|
2337
|
-
nextSteps.push(
|
|
2338
|
+
nextSteps.push(`${nextStepNum()}. Review schema: <db/schema/index.ts>`);
|
|
2339
|
+
nextSteps.push(`${nextStepNum()}. Start dev server: \`playcademy dev\``);
|
|
2340
|
+
nextSteps.push(`${nextStepNum()}. Push your schema: \`${getRunCommand(pm, "db:push")}\``);
|
|
2338
2341
|
}
|
|
2339
2342
|
if (context2.hasAuth) {
|
|
2340
|
-
|
|
2341
|
-
nextSteps.push(`${stepNum}. Review auth config: <server/lib/auth.ts>`);
|
|
2343
|
+
nextSteps.push(`${nextStepNum()}. Review auth config: <server/lib/auth.ts>`);
|
|
2342
2344
|
}
|
|
2343
2345
|
if (isVite) {
|
|
2344
2346
|
const buildExample = getRunCommand(pm, "build");
|
|
2345
|
-
|
|
2346
|
-
nextSteps.push(`${buildStepNum}. Build your app: \`${buildExample}\``);
|
|
2347
|
+
nextSteps.push(`${nextStepNum()}. Build your app: \`${buildExample}\``);
|
|
2347
2348
|
}
|
|
2348
2349
|
if (isGodot) {
|
|
2349
|
-
|
|
2350
|
-
nextSteps.push(`${stepNum}. Open in Godot Editor`);
|
|
2350
|
+
nextSteps.push(`${nextStepNum()}. Open in Godot Editor`);
|
|
2351
2351
|
}
|
|
2352
2352
|
if (context2.apiDirectory) {
|
|
2353
|
-
|
|
2354
|
-
nextSteps.push(`${stepNum}. Customize API routes: <${context2.apiDirectory}>`);
|
|
2353
|
+
nextSteps.push(`${nextStepNum()}. Customize API routes: <${context2.apiDirectory}>`);
|
|
2355
2354
|
}
|
|
2356
|
-
|
|
2357
|
-
nextSteps.push(`${deployStep}. Deploy: \`playcademy deploy\``);
|
|
2355
|
+
nextSteps.push(`${nextStepNum()}. Deploy: \`playcademy deploy\``);
|
|
2358
2356
|
nextSteps.push("");
|
|
2359
2357
|
nextSteps.push(`Learn more: <<${DOCS_URL}>>`);
|
|
2360
2358
|
logger.admonition("tip", "Next Steps", nextSteps);
|
|
@@ -2816,6 +2814,7 @@ async function promptForProjectDirectory(projectDir) {
|
|
|
2816
2814
|
}
|
|
2817
2815
|
const targetDir = resolve5(process.cwd(), dir);
|
|
2818
2816
|
if (existsSync9(targetDir)) {
|
|
2817
|
+
logger.newLine();
|
|
2819
2818
|
logger.admonition("warning", "Directory Exists", [`Directory "${dir}" already exists.`]);
|
|
2820
2819
|
logger.newLine();
|
|
2821
2820
|
const shouldContinue = await confirm2({
|
|
@@ -2969,7 +2968,8 @@ function updateEnvForAuth(workspace, strategies) {
|
|
|
2969
2968
|
}
|
|
2970
2969
|
async function scaffoldAuthSetup(options = {}) {
|
|
2971
2970
|
const workspace = getWorkspace();
|
|
2972
|
-
const { strategies = [], appName } = options;
|
|
2971
|
+
const { strategies = [], appName, silent } = options;
|
|
2972
|
+
const stepOptions = silent ? { silent: true } : void 0;
|
|
2973
2973
|
let packagesUpdated = false;
|
|
2974
2974
|
await runStep(
|
|
2975
2975
|
"Configuring authentication...",
|
|
@@ -2979,14 +2979,15 @@ async function scaffoldAuthSetup(options = {}) {
|
|
|
2979
2979
|
scaffoldAuthRoutes(workspace);
|
|
2980
2980
|
scaffoldAuthSchema(workspace);
|
|
2981
2981
|
scaffoldProtectedExample(workspace);
|
|
2982
|
-
packagesUpdated = await setupPackageJson(workspace);
|
|
2982
|
+
packagesUpdated = await setupPackageJson(workspace, stepOptions);
|
|
2983
2983
|
updateEnvForAuth(workspace, strategies);
|
|
2984
2984
|
},
|
|
2985
|
-
"Authentication configured"
|
|
2985
|
+
"Authentication configured",
|
|
2986
|
+
stepOptions
|
|
2986
2987
|
);
|
|
2987
2988
|
return packagesUpdated;
|
|
2988
2989
|
}
|
|
2989
|
-
async function setupPackageJson(workspace) {
|
|
2990
|
+
async function setupPackageJson(workspace, stepOptions) {
|
|
2990
2991
|
const pkgPath = join12(workspace, "package.json");
|
|
2991
2992
|
const authDeps = {
|
|
2992
2993
|
"@playcademy/better-auth": PLAYCADEMY_AUTH_VERSION,
|
|
@@ -3001,7 +3002,8 @@ async function setupPackageJson(workspace) {
|
|
|
3001
3002
|
writeFileSync5(pkgPath, `${JSON.stringify(existing, null, 2)}
|
|
3002
3003
|
`);
|
|
3003
3004
|
},
|
|
3004
|
-
"Updated package.json deps"
|
|
3005
|
+
"Updated package.json deps",
|
|
3006
|
+
stepOptions
|
|
3005
3007
|
);
|
|
3006
3008
|
return true;
|
|
3007
3009
|
}
|
|
@@ -3013,7 +3015,7 @@ import { existsSync as existsSync11, mkdirSync as mkdirSync5, readFileSync as re
|
|
|
3013
3015
|
import { join as join13 } from "node:path";
|
|
3014
3016
|
|
|
3015
3017
|
// src/version.ts
|
|
3016
|
-
var cliVersion = false ? "0.0.0-dev" : "0.17.
|
|
3018
|
+
var cliVersion = false ? "0.0.0-dev" : "0.17.5";
|
|
3017
3019
|
|
|
3018
3020
|
// src/lib/init/database.ts
|
|
3019
3021
|
var drizzleConfigTemplate = loadTemplateString("database/drizzle-config.ts");
|
|
@@ -3025,6 +3027,7 @@ var dbSeedTemplate = loadTemplateString("database/db-seed.ts");
|
|
|
3025
3027
|
var packageTemplate = loadTemplateString("database/package.json");
|
|
3026
3028
|
async function scaffoldDatabaseSetup(options) {
|
|
3027
3029
|
const workspace = getWorkspace();
|
|
3030
|
+
const stepOptions = options.silent ? { silent: true } : void 0;
|
|
3028
3031
|
let packagesUpdated = false;
|
|
3029
3032
|
await runStep(
|
|
3030
3033
|
"Configuring database...",
|
|
@@ -3049,13 +3052,14 @@ async function scaffoldDatabaseSetup(options) {
|
|
|
3049
3052
|
writeFileSync6(dbSeedPath, dbSeedTemplate);
|
|
3050
3053
|
const drizzleConfigPath = join13(workspace, DRIZZLE_CONFIG_FILES[0]);
|
|
3051
3054
|
writeFileSync6(drizzleConfigPath, drizzleConfigTemplate);
|
|
3052
|
-
packagesUpdated = await setupPackageJson2(workspace, options.appName);
|
|
3055
|
+
packagesUpdated = await setupPackageJson2(workspace, options.appName, stepOptions);
|
|
3053
3056
|
},
|
|
3054
|
-
"Database configured"
|
|
3057
|
+
"Database configured",
|
|
3058
|
+
stepOptions
|
|
3055
3059
|
);
|
|
3056
3060
|
return packagesUpdated;
|
|
3057
3061
|
}
|
|
3058
|
-
async function setupPackageJson2(workspace, appName) {
|
|
3062
|
+
async function setupPackageJson2(workspace, appName, stepOptions) {
|
|
3059
3063
|
const pkgPath = join13(workspace, "package.json");
|
|
3060
3064
|
const dbDeps = {
|
|
3061
3065
|
"drizzle-orm": "^0.42.0",
|
|
@@ -3087,7 +3091,8 @@ async function setupPackageJson2(workspace, appName) {
|
|
|
3087
3091
|
writeFileSync6(pkgPath, `${JSON.stringify(existing, null, 2)}
|
|
3088
3092
|
`);
|
|
3089
3093
|
},
|
|
3090
|
-
"Updated package.json deps"
|
|
3094
|
+
"Updated package.json deps",
|
|
3095
|
+
stepOptions
|
|
3091
3096
|
);
|
|
3092
3097
|
return true;
|
|
3093
3098
|
} else {
|
|
@@ -3139,7 +3144,7 @@ function ensurePlaycademyGitignore() {
|
|
|
3139
3144
|
writeFileSync7(gitignorePath, playcademyGitignoreTemplate);
|
|
3140
3145
|
}
|
|
3141
3146
|
async function scaffoldIntegrations(appName, options) {
|
|
3142
|
-
const { customRoutes, database, auth, kv, bucket } = options;
|
|
3147
|
+
const { customRoutes, database, auth, kv, bucket, silent } = options;
|
|
3143
3148
|
let depsAdded = false;
|
|
3144
3149
|
ensurePlaycademyGitignore();
|
|
3145
3150
|
if (customRoutes) {
|
|
@@ -3165,13 +3170,13 @@ async function scaffoldIntegrations(appName, options) {
|
|
|
3165
3170
|
await scaffoldApiDirectory(customRoutes.directory, sampleRoutes);
|
|
3166
3171
|
}
|
|
3167
3172
|
if (database) {
|
|
3168
|
-
const dbDepsAdded = await scaffoldDatabaseSetup({ appName });
|
|
3173
|
+
const dbDepsAdded = await scaffoldDatabaseSetup({ appName, silent });
|
|
3169
3174
|
if (dbDepsAdded) {
|
|
3170
3175
|
depsAdded = true;
|
|
3171
3176
|
}
|
|
3172
3177
|
}
|
|
3173
3178
|
if (auth) {
|
|
3174
|
-
const authDepsAdded = await scaffoldAuthSetup({ ...auth, appName });
|
|
3179
|
+
const authDepsAdded = await scaffoldAuthSetup({ ...auth, appName, silent });
|
|
3175
3180
|
if (authDepsAdded) {
|
|
3176
3181
|
depsAdded = true;
|
|
3177
3182
|
}
|
|
@@ -3753,7 +3758,10 @@ async function setupProjectFiles(dirInfo, engineSelection, projectName, integrat
|
|
|
3753
3758
|
}
|
|
3754
3759
|
}
|
|
3755
3760
|
if (integrationOptions.customRoutes || integrationOptions.database || integrationOptions.auth) {
|
|
3756
|
-
const scaffoldDepsAdded = await scaffoldIntegrations(projectName,
|
|
3761
|
+
const scaffoldDepsAdded = await scaffoldIntegrations(projectName, {
|
|
3762
|
+
...integrationOptions,
|
|
3763
|
+
silent: true
|
|
3764
|
+
});
|
|
3757
3765
|
if (scaffoldDepsAdded) {
|
|
3758
3766
|
depsAdded = true;
|
|
3759
3767
|
}
|
package/dist/index.d.ts
CHANGED
|
@@ -1202,8 +1202,8 @@ interface EmbeddedSourcePaths {
|
|
|
1202
1202
|
constantsEntry: string;
|
|
1203
1203
|
/** User's workspace node_modules */
|
|
1204
1204
|
workspaceNodeModules: string;
|
|
1205
|
-
/** Resolution
|
|
1206
|
-
|
|
1205
|
+
/** Resolution root for CLI dependencies — monorepo root in dev (hoisted deps); specific node_modules when published/binary */
|
|
1206
|
+
cliDepsRoot: string;
|
|
1207
1207
|
}
|
|
1208
1208
|
|
|
1209
1209
|
/**
|
package/dist/index.js
CHANGED
|
@@ -3941,7 +3941,8 @@ function updateEnvForAuth(workspace, strategies) {
|
|
|
3941
3941
|
}
|
|
3942
3942
|
async function scaffoldAuthSetup(options = {}) {
|
|
3943
3943
|
const workspace = getWorkspace();
|
|
3944
|
-
const { strategies = [], appName } = options;
|
|
3944
|
+
const { strategies = [], appName, silent } = options;
|
|
3945
|
+
const stepOptions = silent ? { silent: true } : void 0;
|
|
3945
3946
|
let packagesUpdated = false;
|
|
3946
3947
|
await runStep(
|
|
3947
3948
|
"Configuring authentication...",
|
|
@@ -3951,14 +3952,15 @@ async function scaffoldAuthSetup(options = {}) {
|
|
|
3951
3952
|
scaffoldAuthRoutes(workspace);
|
|
3952
3953
|
scaffoldAuthSchema(workspace);
|
|
3953
3954
|
scaffoldProtectedExample(workspace);
|
|
3954
|
-
packagesUpdated = await setupPackageJson(workspace);
|
|
3955
|
+
packagesUpdated = await setupPackageJson(workspace, stepOptions);
|
|
3955
3956
|
updateEnvForAuth(workspace, strategies);
|
|
3956
3957
|
},
|
|
3957
|
-
"Authentication configured"
|
|
3958
|
+
"Authentication configured",
|
|
3959
|
+
stepOptions
|
|
3958
3960
|
);
|
|
3959
3961
|
return packagesUpdated;
|
|
3960
3962
|
}
|
|
3961
|
-
async function setupPackageJson(workspace) {
|
|
3963
|
+
async function setupPackageJson(workspace, stepOptions) {
|
|
3962
3964
|
const pkgPath = join12(workspace, "package.json");
|
|
3963
3965
|
const authDeps = {
|
|
3964
3966
|
"@playcademy/better-auth": PLAYCADEMY_AUTH_VERSION,
|
|
@@ -3973,7 +3975,8 @@ async function setupPackageJson(workspace) {
|
|
|
3973
3975
|
writeFileSync3(pkgPath, `${JSON.stringify(existing, null, 2)}
|
|
3974
3976
|
`);
|
|
3975
3977
|
},
|
|
3976
|
-
"Updated package.json deps"
|
|
3978
|
+
"Updated package.json deps",
|
|
3979
|
+
stepOptions
|
|
3977
3980
|
);
|
|
3978
3981
|
return true;
|
|
3979
3982
|
}
|
|
@@ -4014,7 +4017,7 @@ import { existsSync as existsSync9, mkdirSync as mkdirSync2, readFileSync as rea
|
|
|
4014
4017
|
import { join as join13 } from "node:path";
|
|
4015
4018
|
|
|
4016
4019
|
// src/version.ts
|
|
4017
|
-
var cliVersion = false ? "0.0.0-dev" : "0.17.
|
|
4020
|
+
var cliVersion = false ? "0.0.0-dev" : "0.17.5";
|
|
4018
4021
|
|
|
4019
4022
|
// src/lib/init/database.ts
|
|
4020
4023
|
var drizzleConfigTemplate = loadTemplateString("database/drizzle-config.ts");
|
|
@@ -4026,6 +4029,7 @@ var dbSeedTemplate = loadTemplateString("database/db-seed.ts");
|
|
|
4026
4029
|
var packageTemplate = loadTemplateString("database/package.json");
|
|
4027
4030
|
async function scaffoldDatabaseSetup(options) {
|
|
4028
4031
|
const workspace = getWorkspace();
|
|
4032
|
+
const stepOptions = options.silent ? { silent: true } : void 0;
|
|
4029
4033
|
let packagesUpdated = false;
|
|
4030
4034
|
await runStep(
|
|
4031
4035
|
"Configuring database...",
|
|
@@ -4050,13 +4054,14 @@ async function scaffoldDatabaseSetup(options) {
|
|
|
4050
4054
|
writeFileSync4(dbSeedPath, dbSeedTemplate);
|
|
4051
4055
|
const drizzleConfigPath = join13(workspace, DRIZZLE_CONFIG_FILES[0]);
|
|
4052
4056
|
writeFileSync4(drizzleConfigPath, drizzleConfigTemplate);
|
|
4053
|
-
packagesUpdated = await setupPackageJson2(workspace, options.appName);
|
|
4057
|
+
packagesUpdated = await setupPackageJson2(workspace, options.appName, stepOptions);
|
|
4054
4058
|
},
|
|
4055
|
-
"Database configured"
|
|
4059
|
+
"Database configured",
|
|
4060
|
+
stepOptions
|
|
4056
4061
|
);
|
|
4057
4062
|
return packagesUpdated;
|
|
4058
4063
|
}
|
|
4059
|
-
async function setupPackageJson2(workspace, appName) {
|
|
4064
|
+
async function setupPackageJson2(workspace, appName, stepOptions) {
|
|
4060
4065
|
const pkgPath = join13(workspace, "package.json");
|
|
4061
4066
|
const dbDeps = {
|
|
4062
4067
|
"drizzle-orm": "^0.42.0",
|
|
@@ -4088,7 +4093,8 @@ async function setupPackageJson2(workspace, appName) {
|
|
|
4088
4093
|
writeFileSync4(pkgPath, `${JSON.stringify(existing, null, 2)}
|
|
4089
4094
|
`);
|
|
4090
4095
|
},
|
|
4091
|
-
"Updated package.json deps"
|
|
4096
|
+
"Updated package.json deps",
|
|
4097
|
+
stepOptions
|
|
4092
4098
|
);
|
|
4093
4099
|
return true;
|
|
4094
4100
|
} else {
|
|
@@ -4157,7 +4163,7 @@ function ensurePlaycademyGitignore() {
|
|
|
4157
4163
|
writeFileSync5(gitignorePath, playcademyGitignoreTemplate);
|
|
4158
4164
|
}
|
|
4159
4165
|
async function scaffoldIntegrations(appName, options) {
|
|
4160
|
-
const { customRoutes, database, auth, kv, bucket } = options;
|
|
4166
|
+
const { customRoutes, database, auth, kv, bucket, silent } = options;
|
|
4161
4167
|
let depsAdded = false;
|
|
4162
4168
|
ensurePlaycademyGitignore();
|
|
4163
4169
|
if (customRoutes) {
|
|
@@ -4183,13 +4189,13 @@ async function scaffoldIntegrations(appName, options) {
|
|
|
4183
4189
|
await scaffoldApiDirectory(customRoutes.directory, sampleRoutes);
|
|
4184
4190
|
}
|
|
4185
4191
|
if (database) {
|
|
4186
|
-
const dbDepsAdded = await scaffoldDatabaseSetup({ appName });
|
|
4192
|
+
const dbDepsAdded = await scaffoldDatabaseSetup({ appName, silent });
|
|
4187
4193
|
if (dbDepsAdded) {
|
|
4188
4194
|
depsAdded = true;
|
|
4189
4195
|
}
|
|
4190
4196
|
}
|
|
4191
4197
|
if (auth) {
|
|
4192
|
-
const authDepsAdded = await scaffoldAuthSetup({ ...auth, appName });
|
|
4198
|
+
const authDepsAdded = await scaffoldAuthSetup({ ...auth, appName, silent });
|
|
4193
4199
|
if (authDepsAdded) {
|
|
4194
4200
|
depsAdded = true;
|
|
4195
4201
|
}
|
|
@@ -4452,31 +4458,29 @@ function displaySuccessMessage(context2) {
|
|
|
4452
4458
|
const pm = getPackageManager();
|
|
4453
4459
|
const isVite = context2.engineType === "vite";
|
|
4454
4460
|
const isGodot = context2.engineType === "godot";
|
|
4455
|
-
|
|
4461
|
+
function nextStepNum() {
|
|
4462
|
+
return nextSteps.length + 1;
|
|
4463
|
+
}
|
|
4464
|
+
nextSteps.push(`${nextStepNum()}. Review your config file: <${context2.configFileName}>`);
|
|
4456
4465
|
if (context2.hasDatabase) {
|
|
4457
|
-
nextSteps.push(
|
|
4458
|
-
nextSteps.push(
|
|
4459
|
-
nextSteps.push(
|
|
4466
|
+
nextSteps.push(`${nextStepNum()}. Review schema: <db/schema/index.ts>`);
|
|
4467
|
+
nextSteps.push(`${nextStepNum()}. Start dev server: \`playcademy dev\``);
|
|
4468
|
+
nextSteps.push(`${nextStepNum()}. Push your schema: \`${getRunCommand(pm, "db:push")}\``);
|
|
4460
4469
|
}
|
|
4461
4470
|
if (context2.hasAuth) {
|
|
4462
|
-
|
|
4463
|
-
nextSteps.push(`${stepNum}. Review auth config: <server/lib/auth.ts>`);
|
|
4471
|
+
nextSteps.push(`${nextStepNum()}. Review auth config: <server/lib/auth.ts>`);
|
|
4464
4472
|
}
|
|
4465
4473
|
if (isVite) {
|
|
4466
4474
|
const buildExample = getRunCommand(pm, "build");
|
|
4467
|
-
|
|
4468
|
-
nextSteps.push(`${buildStepNum}. Build your app: \`${buildExample}\``);
|
|
4475
|
+
nextSteps.push(`${nextStepNum()}. Build your app: \`${buildExample}\``);
|
|
4469
4476
|
}
|
|
4470
4477
|
if (isGodot) {
|
|
4471
|
-
|
|
4472
|
-
nextSteps.push(`${stepNum}. Open in Godot Editor`);
|
|
4478
|
+
nextSteps.push(`${nextStepNum()}. Open in Godot Editor`);
|
|
4473
4479
|
}
|
|
4474
4480
|
if (context2.apiDirectory) {
|
|
4475
|
-
|
|
4476
|
-
nextSteps.push(`${stepNum}. Customize API routes: <${context2.apiDirectory}>`);
|
|
4481
|
+
nextSteps.push(`${nextStepNum()}. Customize API routes: <${context2.apiDirectory}>`);
|
|
4477
4482
|
}
|
|
4478
|
-
|
|
4479
|
-
nextSteps.push(`${deployStep}. Deploy: \`playcademy deploy\``);
|
|
4483
|
+
nextSteps.push(`${nextStepNum()}. Deploy: \`playcademy deploy\``);
|
|
4480
4484
|
nextSteps.push("");
|
|
4481
4485
|
nextSteps.push(`Learn more: <<${DOCS_URL}>>`);
|
|
4482
4486
|
logger.admonition("tip", "Next Steps", nextSteps);
|
|
@@ -5937,6 +5941,7 @@ async function promptForProjectDirectory(projectDir) {
|
|
|
5937
5941
|
}
|
|
5938
5942
|
const targetDir = resolve8(process.cwd(), dir);
|
|
5939
5943
|
if (existsSync18(targetDir)) {
|
|
5944
|
+
logger.newLine();
|
|
5940
5945
|
logger.admonition("warning", "Directory Exists", [`Directory "${dir}" already exists.`]);
|
|
5941
5946
|
logger.newLine();
|
|
5942
5947
|
const shouldContinue = await confirm4({
|
|
@@ -6025,7 +6030,10 @@ async function setupProjectFiles(dirInfo, engineSelection, projectName, integrat
|
|
|
6025
6030
|
}
|
|
6026
6031
|
}
|
|
6027
6032
|
if (integrationOptions.customRoutes || integrationOptions.database || integrationOptions.auth) {
|
|
6028
|
-
const scaffoldDepsAdded = await scaffoldIntegrations(projectName,
|
|
6033
|
+
const scaffoldDepsAdded = await scaffoldIntegrations(projectName, {
|
|
6034
|
+
...integrationOptions,
|
|
6035
|
+
silent: true
|
|
6036
|
+
});
|
|
6029
6037
|
if (scaffoldDepsAdded) {
|
|
6030
6038
|
depsAdded = true;
|
|
6031
6039
|
}
|
|
@@ -6840,7 +6848,7 @@ function resolveEmbeddedSourcePaths() {
|
|
|
6840
6848
|
edgePlaySrc: edgePlaySrc2,
|
|
6841
6849
|
constantsEntry: constantsEntry2,
|
|
6842
6850
|
workspaceNodeModules: workspaceNodeModules2,
|
|
6843
|
-
|
|
6851
|
+
cliDepsRoot: playcademyNodeModules
|
|
6844
6852
|
};
|
|
6845
6853
|
}
|
|
6846
6854
|
const distDir = new URL(".", import.meta.url).pathname;
|
|
@@ -6850,7 +6858,7 @@ function resolveEmbeddedSourcePaths() {
|
|
|
6850
6858
|
const monorepoEdgeSrc = join28(monorepoRoot, "packages/edge-play/src");
|
|
6851
6859
|
const edgePlaySrc = isBuiltPackage ? embeddedEdgeSrc : monorepoEdgeSrc;
|
|
6852
6860
|
const cliPackageRoot = isBuiltPackage ? join28(distDir, "../../..") : join28(monorepoRoot, "packages/cli");
|
|
6853
|
-
const
|
|
6861
|
+
const cliDepsRoot = isBuiltPackage ? join28(cliPackageRoot, "node_modules") : monorepoRoot;
|
|
6854
6862
|
const workspaceNodeModules = join28(workspace, "node_modules");
|
|
6855
6863
|
const constantsEntry = isBuiltPackage ? join28(embeddedEdgeSrc, "..", "..", "constants", "src", "index.ts") : join28(monorepoRoot, "packages", "constants", "src", "index.ts");
|
|
6856
6864
|
return {
|
|
@@ -6858,12 +6866,12 @@ function resolveEmbeddedSourcePaths() {
|
|
|
6858
6866
|
edgePlaySrc,
|
|
6859
6867
|
constantsEntry,
|
|
6860
6868
|
workspaceNodeModules,
|
|
6861
|
-
|
|
6869
|
+
cliDepsRoot
|
|
6862
6870
|
};
|
|
6863
6871
|
}
|
|
6864
6872
|
function createEsbuildConfig(entryCode, paths, bundleConfig, customRoutesDir, options) {
|
|
6865
6873
|
const workspace = getWorkspace();
|
|
6866
|
-
const { edgePlaySrc, constantsEntry, workspaceNodeModules,
|
|
6874
|
+
const { edgePlaySrc, constantsEntry, workspaceNodeModules, cliDepsRoot } = paths;
|
|
6867
6875
|
return {
|
|
6868
6876
|
// ──── Input Configuration ────
|
|
6869
6877
|
stdin: {
|
|
@@ -6894,7 +6902,7 @@ function createEsbuildConfig(entryCode, paths, bundleConfig, customRoutesDir, op
|
|
|
6894
6902
|
// Dev: workspace node_modules + monorepo root (hoisted deps)
|
|
6895
6903
|
// Published: workspace node_modules + same (user's project)
|
|
6896
6904
|
// Binary: workspace node_modules + .playcademy/node_modules (hono lives there)
|
|
6897
|
-
nodePaths: [workspaceNodeModules,
|
|
6905
|
+
nodePaths: [workspaceNodeModules, cliDepsRoot],
|
|
6898
6906
|
// ──── Build-time Constants ────
|
|
6899
6907
|
// Inject the Playcademy config as a global constant
|
|
6900
6908
|
// Code can access it via: const config = PLAYCADEMY_CONFIG
|
|
@@ -10849,10 +10857,10 @@ var INSTALL_SCRIPT_URL = "https://playcademy.net/cli";
|
|
|
10849
10857
|
import { execSync as execSync8 } from "node:child_process";
|
|
10850
10858
|
var PACKAGE_MANAGERS = ["bun", "pnpm", "yarn", "npm"];
|
|
10851
10859
|
var GLOBAL_LIST_COMMANDS = {
|
|
10852
|
-
npm: "npm list -g --depth=0
|
|
10853
|
-
bun: "bun pm ls -g
|
|
10854
|
-
pnpm: "pnpm list -g --depth=0
|
|
10855
|
-
yarn: "yarn global list
|
|
10860
|
+
npm: "npm list -g --depth=0",
|
|
10861
|
+
bun: "bun pm ls -g",
|
|
10862
|
+
pnpm: "pnpm list -g --depth=0",
|
|
10863
|
+
yarn: "yarn global list"
|
|
10856
10864
|
};
|
|
10857
10865
|
function runCommand(cmd) {
|
|
10858
10866
|
try {
|
package/dist/utils.js
CHANGED
|
@@ -2458,7 +2458,7 @@ import { existsSync as existsSync7, mkdirSync as mkdirSync2, writeFileSync as wr
|
|
|
2458
2458
|
import { dirname as dirname4, join as join12 } from "node:path";
|
|
2459
2459
|
|
|
2460
2460
|
// src/version.ts
|
|
2461
|
-
var cliVersion = false ? "0.0.0-dev" : "0.17.
|
|
2461
|
+
var cliVersion = false ? "0.0.0-dev" : "0.17.5";
|
|
2462
2462
|
|
|
2463
2463
|
// src/lib/deploy/embedded-sources.ts
|
|
2464
2464
|
var EMBEDDED_SOURCES = null;
|
|
@@ -2524,7 +2524,7 @@ function resolveEmbeddedSourcePaths() {
|
|
|
2524
2524
|
edgePlaySrc: edgePlaySrc2,
|
|
2525
2525
|
constantsEntry: constantsEntry2,
|
|
2526
2526
|
workspaceNodeModules: workspaceNodeModules2,
|
|
2527
|
-
|
|
2527
|
+
cliDepsRoot: playcademyNodeModules
|
|
2528
2528
|
};
|
|
2529
2529
|
}
|
|
2530
2530
|
const distDir = new URL(".", import.meta.url).pathname;
|
|
@@ -2534,7 +2534,7 @@ function resolveEmbeddedSourcePaths() {
|
|
|
2534
2534
|
const monorepoEdgeSrc = join13(monorepoRoot, "packages/edge-play/src");
|
|
2535
2535
|
const edgePlaySrc = isBuiltPackage ? embeddedEdgeSrc : monorepoEdgeSrc;
|
|
2536
2536
|
const cliPackageRoot = isBuiltPackage ? join13(distDir, "../../..") : join13(monorepoRoot, "packages/cli");
|
|
2537
|
-
const
|
|
2537
|
+
const cliDepsRoot = isBuiltPackage ? join13(cliPackageRoot, "node_modules") : monorepoRoot;
|
|
2538
2538
|
const workspaceNodeModules = join13(workspace, "node_modules");
|
|
2539
2539
|
const constantsEntry = isBuiltPackage ? join13(embeddedEdgeSrc, "..", "..", "constants", "src", "index.ts") : join13(monorepoRoot, "packages", "constants", "src", "index.ts");
|
|
2540
2540
|
return {
|
|
@@ -2542,12 +2542,12 @@ function resolveEmbeddedSourcePaths() {
|
|
|
2542
2542
|
edgePlaySrc,
|
|
2543
2543
|
constantsEntry,
|
|
2544
2544
|
workspaceNodeModules,
|
|
2545
|
-
|
|
2545
|
+
cliDepsRoot
|
|
2546
2546
|
};
|
|
2547
2547
|
}
|
|
2548
2548
|
function createEsbuildConfig(entryCode, paths, bundleConfig, customRoutesDir, options) {
|
|
2549
2549
|
const workspace = getWorkspace();
|
|
2550
|
-
const { edgePlaySrc, constantsEntry, workspaceNodeModules,
|
|
2550
|
+
const { edgePlaySrc, constantsEntry, workspaceNodeModules, cliDepsRoot } = paths;
|
|
2551
2551
|
return {
|
|
2552
2552
|
// ──── Input Configuration ────
|
|
2553
2553
|
stdin: {
|
|
@@ -2578,7 +2578,7 @@ function createEsbuildConfig(entryCode, paths, bundleConfig, customRoutesDir, op
|
|
|
2578
2578
|
// Dev: workspace node_modules + monorepo root (hoisted deps)
|
|
2579
2579
|
// Published: workspace node_modules + same (user's project)
|
|
2580
2580
|
// Binary: workspace node_modules + .playcademy/node_modules (hono lives there)
|
|
2581
|
-
nodePaths: [workspaceNodeModules,
|
|
2581
|
+
nodePaths: [workspaceNodeModules, cliDepsRoot],
|
|
2582
2582
|
// ──── Build-time Constants ────
|
|
2583
2583
|
// Inject the Playcademy config as a global constant
|
|
2584
2584
|
// Code can access it via: const config = PLAYCADEMY_CONFIG
|
package/dist/version.js
CHANGED