@akanjs/cli 1.0.7 → 1.0.8
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/esm/index.js
CHANGED
|
@@ -216,15 +216,15 @@ var Logger = class _Logger {
|
|
|
216
216
|
console.log(`${processMsg} ${timestampMsg} ${logLevelMsg} ${contextMsg} ${contentMsg} ${timeDiffMsg}
|
|
217
217
|
`);
|
|
218
218
|
}
|
|
219
|
-
static rawLog(msg = "", method) {
|
|
219
|
+
static rawLog(msg = "", method, outputStream) {
|
|
220
220
|
this.raw(`${msg}
|
|
221
|
-
`, method);
|
|
221
|
+
`, method, outputStream);
|
|
222
222
|
}
|
|
223
|
-
static raw(msg = "", method) {
|
|
223
|
+
static raw(msg = "", method, outputStream) {
|
|
224
224
|
if (typeof window === "undefined" && method !== "console" && global.process)
|
|
225
|
-
global.process
|
|
225
|
+
global.process[outputStream === "error" ? "stderr" : "stdout"].write(msg);
|
|
226
226
|
else
|
|
227
|
-
console
|
|
227
|
+
console[outputStream === "error" ? "error" : "log"](msg.trim());
|
|
228
228
|
}
|
|
229
229
|
};
|
|
230
230
|
|
|
@@ -3331,12 +3331,185 @@ var Target = {
|
|
|
3331
3331
|
Dev: getTarget("dev")
|
|
3332
3332
|
};
|
|
3333
3333
|
|
|
3334
|
+
// pkgs/@akanjs/devkit/src/commandDecorators/helpFormatter.ts
|
|
3335
|
+
import chalk4 from "chalk";
|
|
3336
|
+
var camelToKebabCase = (str) => str.replace(/([A-Z])/g, "-$1").toLowerCase();
|
|
3337
|
+
var groupCommands = (commands) => {
|
|
3338
|
+
const groups = /* @__PURE__ */ new Map();
|
|
3339
|
+
for (const command of commands) {
|
|
3340
|
+
const className = command.name.replace("Command", "");
|
|
3341
|
+
const groupName = className;
|
|
3342
|
+
if (!groups.has(groupName)) {
|
|
3343
|
+
groups.set(groupName, { name: groupName, commands: [] });
|
|
3344
|
+
}
|
|
3345
|
+
const targetMetas = getTargetMetas(command);
|
|
3346
|
+
for (const targetMeta of targetMetas) {
|
|
3347
|
+
if (targetMeta.targetOption.devOnly)
|
|
3348
|
+
continue;
|
|
3349
|
+
const [allArgMetas] = getArgMetas(command, targetMeta.key);
|
|
3350
|
+
const args = allArgMetas.filter((arg) => arg.type !== "Option").map((arg) => {
|
|
3351
|
+
if (arg.type === "Workspace")
|
|
3352
|
+
return "";
|
|
3353
|
+
if (arg.type === "Module")
|
|
3354
|
+
return "[sys:module]";
|
|
3355
|
+
if (arg.type === "Argument") {
|
|
3356
|
+
return `[${arg.name}]`;
|
|
3357
|
+
}
|
|
3358
|
+
return `[${arg.type.toLowerCase()}]`;
|
|
3359
|
+
}).filter(Boolean);
|
|
3360
|
+
const group = groups.get(groupName);
|
|
3361
|
+
if (group) {
|
|
3362
|
+
group.commands.push({
|
|
3363
|
+
key: camelToKebabCase(targetMeta.key),
|
|
3364
|
+
args,
|
|
3365
|
+
desc: targetMeta.targetOption.desc
|
|
3366
|
+
});
|
|
3367
|
+
}
|
|
3368
|
+
}
|
|
3369
|
+
}
|
|
3370
|
+
return groups;
|
|
3371
|
+
};
|
|
3372
|
+
var formatHelp = (commands, version) => {
|
|
3373
|
+
const groups = groupCommands(commands);
|
|
3374
|
+
const lines = [];
|
|
3375
|
+
lines.push("");
|
|
3376
|
+
lines.push(chalk4.bold.cyan(" \u2554\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2557"));
|
|
3377
|
+
lines.push(
|
|
3378
|
+
chalk4.bold.cyan(" \u2551") + chalk4.bold.white(" Akan.js Framework CLI ") + chalk4.bold.cyan(" \u2551")
|
|
3379
|
+
);
|
|
3380
|
+
lines.push(chalk4.bold.cyan(" \u255A\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u2550\u255D"));
|
|
3381
|
+
lines.push("");
|
|
3382
|
+
lines.push(chalk4.gray(` Version: ${version}`));
|
|
3383
|
+
lines.push("");
|
|
3384
|
+
lines.push(chalk4.bold.yellow(" USAGE"));
|
|
3385
|
+
lines.push("");
|
|
3386
|
+
lines.push(chalk4.gray(" $ ") + chalk4.white("akan") + chalk4.gray(" <command> [options]"));
|
|
3387
|
+
lines.push("");
|
|
3388
|
+
lines.push(chalk4.bold.yellow(" COMMANDS"));
|
|
3389
|
+
lines.push("");
|
|
3390
|
+
for (const [groupName, group] of groups) {
|
|
3391
|
+
if (group.commands.length === 0)
|
|
3392
|
+
continue;
|
|
3393
|
+
lines.push(chalk4.bold.magenta(` ${groupName}`));
|
|
3394
|
+
lines.push("");
|
|
3395
|
+
for (const cmd of group.commands) {
|
|
3396
|
+
const cmdName = chalk4.green(cmd.key);
|
|
3397
|
+
const cmdArgs = cmd.args.length > 0 ? chalk4.gray(` ${cmd.args.join(" ")}`) : "";
|
|
3398
|
+
if (cmd.desc) {
|
|
3399
|
+
const maxLineLength = 70;
|
|
3400
|
+
const cmdPrefix = ` ${cmdName}${cmdArgs}`;
|
|
3401
|
+
const indent = " ";
|
|
3402
|
+
if (cmdPrefix.length + cmd.desc.length + 3 < maxLineLength) {
|
|
3403
|
+
lines.push(`${cmdPrefix} ${chalk4.gray(cmd.desc)}`);
|
|
3404
|
+
} else {
|
|
3405
|
+
lines.push(cmdPrefix);
|
|
3406
|
+
lines.push(`${indent}${chalk4.gray(cmd.desc)}`);
|
|
3407
|
+
}
|
|
3408
|
+
} else {
|
|
3409
|
+
lines.push(` ${cmdName}${cmdArgs}`);
|
|
3410
|
+
}
|
|
3411
|
+
}
|
|
3412
|
+
lines.push("");
|
|
3413
|
+
}
|
|
3414
|
+
lines.push(chalk4.bold.yellow(" OPTIONS"));
|
|
3415
|
+
lines.push("");
|
|
3416
|
+
lines.push(` ${chalk4.green("-v, --verbose")} ${chalk4.gray("Enable verbose output")}`);
|
|
3417
|
+
lines.push(` ${chalk4.green("-h, --help")} ${chalk4.gray("Display this help message")}`);
|
|
3418
|
+
lines.push(` ${chalk4.green("-V, --version")} ${chalk4.gray("Output version number")}`);
|
|
3419
|
+
lines.push("");
|
|
3420
|
+
lines.push(chalk4.bold.yellow(" EXAMPLES"));
|
|
3421
|
+
lines.push("");
|
|
3422
|
+
lines.push(chalk4.gray(" # Create a new workspace"));
|
|
3423
|
+
lines.push(chalk4.white(" $ akan create-workspace myproject"));
|
|
3424
|
+
lines.push("");
|
|
3425
|
+
lines.push(chalk4.gray(" # Start development server"));
|
|
3426
|
+
lines.push(chalk4.white(" $ akan start myapp"));
|
|
3427
|
+
lines.push("");
|
|
3428
|
+
lines.push(chalk4.gray(" # Create a new module"));
|
|
3429
|
+
lines.push(chalk4.white(" $ akan create-module userProfile"));
|
|
3430
|
+
lines.push("");
|
|
3431
|
+
lines.push(chalk4.gray(" Documentation: ") + chalk4.cyan("https://akanjs.com/docs"));
|
|
3432
|
+
lines.push(chalk4.gray(" Report issues: ") + chalk4.cyan("https://github.com/akan-team/akanjs/issues"));
|
|
3433
|
+
lines.push("");
|
|
3434
|
+
return lines.join("\n");
|
|
3435
|
+
};
|
|
3436
|
+
var formatCommandHelp = (command, key) => {
|
|
3437
|
+
const [allArgMetas, argMetas] = getArgMetas(command, key);
|
|
3438
|
+
const kebabKey = camelToKebabCase(key);
|
|
3439
|
+
const lines = [];
|
|
3440
|
+
const targetMetas = getTargetMetas(command);
|
|
3441
|
+
const targetMeta = targetMetas.find((t) => t.key === key);
|
|
3442
|
+
const commandDesc = targetMeta?.targetOption.desc;
|
|
3443
|
+
lines.push("");
|
|
3444
|
+
lines.push(chalk4.bold.cyan(` Command: ${kebabKey}`));
|
|
3445
|
+
if (commandDesc) {
|
|
3446
|
+
lines.push(chalk4.gray(` ${commandDesc}`));
|
|
3447
|
+
}
|
|
3448
|
+
lines.push("");
|
|
3449
|
+
const args = allArgMetas.filter((arg) => arg.type !== "Option").map((arg) => {
|
|
3450
|
+
if (arg.type === "Workspace")
|
|
3451
|
+
return "";
|
|
3452
|
+
if (arg.type === "Module")
|
|
3453
|
+
return "[sys:module]";
|
|
3454
|
+
if (arg.type === "Argument") {
|
|
3455
|
+
return `[${camelToKebabCase(arg.name)}]`;
|
|
3456
|
+
}
|
|
3457
|
+
return `[${arg.type.toLowerCase()}]`;
|
|
3458
|
+
}).filter(Boolean).join(" ");
|
|
3459
|
+
lines.push(chalk4.bold.yellow(" USAGE"));
|
|
3460
|
+
lines.push("");
|
|
3461
|
+
lines.push(chalk4.gray(" $ ") + chalk4.white(`akan ${kebabKey}`) + (args ? chalk4.gray(` ${args}`) : ""));
|
|
3462
|
+
lines.push("");
|
|
3463
|
+
const nonOptionArgs = allArgMetas.filter((arg) => arg.type !== "Option");
|
|
3464
|
+
if (nonOptionArgs.length > 0) {
|
|
3465
|
+
lines.push(chalk4.bold.yellow(" ARGUMENTS"));
|
|
3466
|
+
lines.push("");
|
|
3467
|
+
for (const arg of nonOptionArgs) {
|
|
3468
|
+
if (arg.type === "Workspace")
|
|
3469
|
+
continue;
|
|
3470
|
+
let argName;
|
|
3471
|
+
let argDesc;
|
|
3472
|
+
let example = "";
|
|
3473
|
+
if (arg.type === "Argument") {
|
|
3474
|
+
argName = camelToKebabCase(arg.name);
|
|
3475
|
+
argDesc = arg.argsOption.desc ?? "";
|
|
3476
|
+
example = arg.argsOption.example ? chalk4.gray(` (e.g., ${String(arg.argsOption.example)})`) : "";
|
|
3477
|
+
} else if (arg.type === "Module") {
|
|
3478
|
+
argName = "sys:module";
|
|
3479
|
+
argDesc = "Module in format: app-name:module-name or lib-name:module-name";
|
|
3480
|
+
} else {
|
|
3481
|
+
argName = arg.type.toLowerCase();
|
|
3482
|
+
argDesc = `${arg.type} name in this workspace`;
|
|
3483
|
+
}
|
|
3484
|
+
lines.push(` ${chalk4.green(argName)} ${chalk4.gray(argDesc)}${example}`);
|
|
3485
|
+
}
|
|
3486
|
+
lines.push("");
|
|
3487
|
+
}
|
|
3488
|
+
const optionArgs = argMetas.filter((a) => a.type === "Option");
|
|
3489
|
+
if (optionArgs.length > 0) {
|
|
3490
|
+
lines.push(chalk4.bold.yellow(" OPTIONS"));
|
|
3491
|
+
lines.push("");
|
|
3492
|
+
for (const arg of optionArgs) {
|
|
3493
|
+
const opt = arg.argsOption;
|
|
3494
|
+
const flag = opt.flag ? `-${opt.flag}, ` : "";
|
|
3495
|
+
const kebabName = camelToKebabCase(arg.name);
|
|
3496
|
+
const optName = `${flag}--${kebabName}`;
|
|
3497
|
+
const optDesc = opt.desc ?? "";
|
|
3498
|
+
const defaultVal = opt.default !== void 0 ? chalk4.gray(` [default: ${String(opt.default)}]`) : "";
|
|
3499
|
+
const choices = opt.enum ? chalk4.gray(` (${opt.enum.join(", ")})`) : "";
|
|
3500
|
+
lines.push(` ${chalk4.green(optName)} ${chalk4.gray(optDesc)}${defaultVal}${choices}`);
|
|
3501
|
+
}
|
|
3502
|
+
lines.push("");
|
|
3503
|
+
}
|
|
3504
|
+
return lines.join("\n");
|
|
3505
|
+
};
|
|
3506
|
+
|
|
3334
3507
|
// pkgs/@akanjs/devkit/src/commandDecorators/command.ts
|
|
3335
3508
|
import { confirm, input, select as select2 } from "@inquirer/prompts";
|
|
3336
|
-
import
|
|
3509
|
+
import chalk5 from "chalk";
|
|
3337
3510
|
import { program } from "commander";
|
|
3338
3511
|
import fs12 from "fs";
|
|
3339
|
-
var
|
|
3512
|
+
var camelToKebabCase2 = (str) => str.replace(/([A-Z])/g, "-$1").toLowerCase();
|
|
3340
3513
|
var handleOption = (programCommand, argMeta) => {
|
|
3341
3514
|
const {
|
|
3342
3515
|
type,
|
|
@@ -3346,7 +3519,7 @@ var handleOption = (programCommand, argMeta) => {
|
|
|
3346
3519
|
enum: enumChoices,
|
|
3347
3520
|
ask
|
|
3348
3521
|
} = argMeta.argsOption;
|
|
3349
|
-
const kebabName =
|
|
3522
|
+
const kebabName = camelToKebabCase2(argMeta.name);
|
|
3350
3523
|
const choices = enumChoices?.map(
|
|
3351
3524
|
(choice) => typeof choice === "object" ? { value: choice.value, name: choice.label } : { value: choice, name: choice.toString() }
|
|
3352
3525
|
);
|
|
@@ -3357,7 +3530,7 @@ var handleOption = (programCommand, argMeta) => {
|
|
|
3357
3530
|
return programCommand;
|
|
3358
3531
|
};
|
|
3359
3532
|
var handleArgument = (programCommand, argMeta) => {
|
|
3360
|
-
const kebabName =
|
|
3533
|
+
const kebabName = camelToKebabCase2(argMeta.name);
|
|
3361
3534
|
if ((argMeta.argsOption.type ?? "string") !== "string")
|
|
3362
3535
|
throw new Error(`Argument type must be string: ${argMeta.name}`);
|
|
3363
3536
|
programCommand.argument(
|
|
@@ -3517,11 +3690,21 @@ var runCommands = async (...commands) => {
|
|
|
3517
3690
|
const __dirname = getDirname(import.meta.url);
|
|
3518
3691
|
const hasPackageJson = fs12.existsSync(`${__dirname}/../package.json`);
|
|
3519
3692
|
process.env.AKAN_VERSION = hasPackageJson ? JSON.parse(fs12.readFileSync(`${__dirname}/../package.json`, "utf8")).version : "0.0.1";
|
|
3520
|
-
|
|
3693
|
+
const hasHelpFlag = process.argv.includes("--help") || process.argv.includes("-h");
|
|
3694
|
+
const hasCommand = process.argv.length > 2 && !process.argv[2].startsWith("-");
|
|
3695
|
+
if (hasHelpFlag || !hasCommand) {
|
|
3696
|
+
if (process.argv.length === 2 || process.argv.length === 3 && hasHelpFlag) {
|
|
3697
|
+
Logger.rawLog(formatHelp(commands, process.env.AKAN_VERSION));
|
|
3698
|
+
process.exit(0);
|
|
3699
|
+
}
|
|
3700
|
+
}
|
|
3701
|
+
program.version(process.env.AKAN_VERSION).description("Akan CLI").configureHelp({
|
|
3702
|
+
helpWidth: 100
|
|
3703
|
+
});
|
|
3521
3704
|
const akanBasePackageJson = fs12.existsSync("./node_modules/@akanjs/base/package.json") ? JSON.parse(fs12.readFileSync("./node_modules/@akanjs/base/package.json", "utf8")) : null;
|
|
3522
3705
|
if (akanBasePackageJson && akanBasePackageJson.version !== process.env.AKAN_VERSION) {
|
|
3523
3706
|
Logger.rawLog(
|
|
3524
|
-
|
|
3707
|
+
chalk5.yellow(
|
|
3525
3708
|
`
|
|
3526
3709
|
Akan CLI version is mismatch with installed package. ${process.env.AKAN_VERSION} (global) vs ${akanBasePackageJson.version} (base)
|
|
3527
3710
|
It may cause unexpected behavior. Run \`akan update\` to update latest akanjs.`
|
|
@@ -3531,7 +3714,7 @@ It may cause unexpected behavior. Run \`akan update\` to update latest akanjs.`
|
|
|
3531
3714
|
for (const command of commands) {
|
|
3532
3715
|
const targetMetas = getTargetMetas(command);
|
|
3533
3716
|
for (const targetMeta of targetMetas) {
|
|
3534
|
-
const kebabKey =
|
|
3717
|
+
const kebabKey = camelToKebabCase2(targetMeta.key);
|
|
3535
3718
|
const commandNames = targetMeta.targetOption.short === true ? [
|
|
3536
3719
|
kebabKey,
|
|
3537
3720
|
typeof targetMeta.targetOption.short === "string" ? targetMeta.targetOption.short : kebabKey.split("-").map((s) => s.slice(0, 1)).join("")
|
|
@@ -3562,6 +3745,9 @@ It may cause unexpected behavior. Run \`akan update\` to update latest akanjs.`
|
|
|
3562
3745
|
}
|
|
3563
3746
|
}
|
|
3564
3747
|
programCommand = programCommand.option(`-v, --verbose [boolean]`, `verbose output`);
|
|
3748
|
+
programCommand.helpInformation = () => {
|
|
3749
|
+
return formatCommandHelp(command, targetMeta.key);
|
|
3750
|
+
};
|
|
3565
3751
|
programCommand.action(async (...args) => {
|
|
3566
3752
|
Logger.rawLog();
|
|
3567
3753
|
const cmdArgs = args.slice(0, args.length - 2);
|
|
@@ -3591,7 +3777,7 @@ It may cause unexpected behavior. Run \`akan update\` to update latest akanjs.`
|
|
|
3591
3777
|
} catch (e) {
|
|
3592
3778
|
const errMsg = e instanceof Error ? e.message : typeof e === "string" ? e : JSON.stringify(e);
|
|
3593
3779
|
Logger.rawLog(`
|
|
3594
|
-
${
|
|
3780
|
+
${chalk5.red(errMsg)}`);
|
|
3595
3781
|
throw e;
|
|
3596
3782
|
}
|
|
3597
3783
|
});
|
|
@@ -3611,7 +3797,7 @@ import {
|
|
|
3611
3797
|
} from "@langchain/core/messages";
|
|
3612
3798
|
import { ChatDeepSeek } from "@langchain/deepseek";
|
|
3613
3799
|
import { ChatOpenAI as ChatOpenAI2 } from "@langchain/openai";
|
|
3614
|
-
import
|
|
3800
|
+
import chalk6 from "chalk";
|
|
3615
3801
|
import fs13 from "fs";
|
|
3616
3802
|
var MAX_ASK_TRY = 300;
|
|
3617
3803
|
var supportedLlmModels = ["deepseek-chat", "deepseek-reasoner"];
|
|
@@ -3623,11 +3809,11 @@ var AiSession = class _AiSession {
|
|
|
3623
3809
|
const llmConfig2 = this.getLlmConfig();
|
|
3624
3810
|
if (llmConfig2) {
|
|
3625
3811
|
this.#setChatModel(llmConfig2.model, llmConfig2.apiKey);
|
|
3626
|
-
Logger.rawLog(
|
|
3812
|
+
Logger.rawLog(chalk6.dim(`\u{1F916}akan editor uses existing LLM config (${llmConfig2.model})`));
|
|
3627
3813
|
return this;
|
|
3628
3814
|
}
|
|
3629
3815
|
} else
|
|
3630
|
-
Logger.rawLog(
|
|
3816
|
+
Logger.rawLog(chalk6.yellow("\u{1F916}akan-editor is not initialized. LLM configuration should be set first."));
|
|
3631
3817
|
const llmConfig = await this.#requestLlmConfig();
|
|
3632
3818
|
const { model, apiKey } = llmConfig;
|
|
3633
3819
|
await this.#validateApiKey(model, apiKey);
|
|
@@ -3671,7 +3857,7 @@ var AiSession = class _AiSession {
|
|
|
3671
3857
|
return true;
|
|
3672
3858
|
} catch (error) {
|
|
3673
3859
|
spinner.fail(
|
|
3674
|
-
|
|
3860
|
+
chalk6.red(
|
|
3675
3861
|
`LLM API key is invalid. Please check your API key and try again. You can set it again by running "akan set-llm" or reset by running "akan reset-llm"`
|
|
3676
3862
|
)
|
|
3677
3863
|
);
|
|
@@ -3708,7 +3894,7 @@ var AiSession = class _AiSession {
|
|
|
3708
3894
|
}
|
|
3709
3895
|
async ask(question, {
|
|
3710
3896
|
onReasoning = (reasoning) => {
|
|
3711
|
-
Logger.raw(
|
|
3897
|
+
Logger.raw(chalk6.dim(reasoning));
|
|
3712
3898
|
},
|
|
3713
3899
|
onChunk = (chunk) => {
|
|
3714
3900
|
Logger.raw(chunk);
|
|
@@ -5546,82 +5732,82 @@ var ApplicationCommand = class {
|
|
|
5546
5732
|
}
|
|
5547
5733
|
};
|
|
5548
5734
|
__decorateClass([
|
|
5549
|
-
Target.Public(),
|
|
5735
|
+
Target.Public({ desc: "Create a new application in the workspace" }),
|
|
5550
5736
|
__decorateParam(0, Argument("appName", { desc: "name of application" })),
|
|
5551
5737
|
__decorateParam(1, Option("start", { type: "boolean", desc: "start application", default: false })),
|
|
5552
5738
|
__decorateParam(2, Workspace())
|
|
5553
5739
|
], ApplicationCommand.prototype, "createApplication", 1);
|
|
5554
5740
|
__decorateClass([
|
|
5555
|
-
Target.Public(),
|
|
5741
|
+
Target.Public({ desc: "Remove an application from the workspace" }),
|
|
5556
5742
|
__decorateParam(0, App())
|
|
5557
5743
|
], ApplicationCommand.prototype, "removeApplication", 1);
|
|
5558
5744
|
__decorateClass([
|
|
5559
|
-
Target.Public(),
|
|
5745
|
+
Target.Public({ desc: "Sync dependencies and configuration for an app or library" }),
|
|
5560
5746
|
__decorateParam(0, Sys())
|
|
5561
5747
|
], ApplicationCommand.prototype, "sync", 1);
|
|
5562
5748
|
__decorateClass([
|
|
5563
|
-
Target.Public(),
|
|
5749
|
+
Target.Public({ desc: "Run a custom script in the application" }),
|
|
5564
5750
|
__decorateParam(0, App()),
|
|
5565
5751
|
__decorateParam(1, Argument("filename", { desc: "name of script", nullable: true }))
|
|
5566
5752
|
], ApplicationCommand.prototype, "script", 1);
|
|
5567
5753
|
__decorateClass([
|
|
5568
|
-
Target.Public({ short: true }),
|
|
5754
|
+
Target.Public({ short: true, desc: "Build the application for production (frontend + backend)" }),
|
|
5569
5755
|
__decorateParam(0, App())
|
|
5570
5756
|
], ApplicationCommand.prototype, "build", 1);
|
|
5571
5757
|
__decorateClass([
|
|
5572
|
-
Target.Public({ short: true }),
|
|
5758
|
+
Target.Public({ short: true, desc: "Build only the backend for production" }),
|
|
5573
5759
|
__decorateParam(0, App())
|
|
5574
5760
|
], ApplicationCommand.prototype, "buildBackend", 1);
|
|
5575
5761
|
__decorateClass([
|
|
5576
|
-
Target.Public({ short: true }),
|
|
5762
|
+
Target.Public({ short: true, desc: "Build only the frontend (SSR) for production" }),
|
|
5577
5763
|
__decorateParam(0, App())
|
|
5578
5764
|
], ApplicationCommand.prototype, "buildFrontend", 1);
|
|
5579
5765
|
__decorateClass([
|
|
5580
|
-
Target.Public({ short: true }),
|
|
5766
|
+
Target.Public({ short: true, desc: "Build the CSR (Client-Side Rendering) frontend" }),
|
|
5581
5767
|
__decorateParam(0, App())
|
|
5582
5768
|
], ApplicationCommand.prototype, "buildCsr", 1);
|
|
5583
5769
|
__decorateClass([
|
|
5584
|
-
Target.Public({ short: true }),
|
|
5770
|
+
Target.Public({ short: true, desc: "Build iOS app with Capacitor" }),
|
|
5585
5771
|
__decorateParam(0, App())
|
|
5586
5772
|
], ApplicationCommand.prototype, "buildIos", 1);
|
|
5587
5773
|
__decorateClass([
|
|
5588
|
-
Target.Public({ short: true }),
|
|
5774
|
+
Target.Public({ short: true, desc: "Build Android app with Capacitor" }),
|
|
5589
5775
|
__decorateParam(0, App())
|
|
5590
5776
|
], ApplicationCommand.prototype, "buildAndroid", 1);
|
|
5591
5777
|
__decorateClass([
|
|
5592
|
-
Target.Public({ short: true }),
|
|
5778
|
+
Target.Public({ short: true, desc: "Start development server (frontend SSR + backend)" }),
|
|
5593
5779
|
__decorateParam(0, App()),
|
|
5594
5780
|
__decorateParam(1, Option("open", { type: "boolean", desc: "open web browser?", default: false })),
|
|
5595
5781
|
__decorateParam(2, Option("sync", { type: "boolean", desc: "sync application", default: true }))
|
|
5596
5782
|
], ApplicationCommand.prototype, "start", 1);
|
|
5597
5783
|
__decorateClass([
|
|
5598
|
-
Target.Public({ short: true }),
|
|
5784
|
+
Target.Public({ short: true, desc: "Start only the backend development server" }),
|
|
5599
5785
|
__decorateParam(0, App()),
|
|
5600
5786
|
__decorateParam(1, Option("open", { type: "boolean", desc: "open graphql playground", default: false })),
|
|
5601
5787
|
__decorateParam(2, Option("sync", { type: "boolean", desc: "sync application", default: true }))
|
|
5602
5788
|
], ApplicationCommand.prototype, "startBackend", 1);
|
|
5603
5789
|
__decorateClass([
|
|
5604
|
-
Target.Public({ short: true }),
|
|
5790
|
+
Target.Public({ short: true, desc: "Start only the frontend SSR development server" }),
|
|
5605
5791
|
__decorateParam(0, App()),
|
|
5606
5792
|
__decorateParam(1, Option("open", { type: "boolean", desc: "open web browser", default: false })),
|
|
5607
5793
|
__decorateParam(2, Option("turbo", { type: "boolean", desc: "turbo", default: false })),
|
|
5608
5794
|
__decorateParam(3, Option("sync", { type: "boolean", desc: "sync application", default: true }))
|
|
5609
5795
|
], ApplicationCommand.prototype, "startFrontend", 1);
|
|
5610
5796
|
__decorateClass([
|
|
5611
|
-
Target.Public({ short: true }),
|
|
5797
|
+
Target.Public({ short: true, desc: "Start CSR (Client-Side Rendering) development server" }),
|
|
5612
5798
|
__decorateParam(0, App()),
|
|
5613
5799
|
__decorateParam(1, Option("open", { type: "boolean", desc: "open web browser", default: false })),
|
|
5614
5800
|
__decorateParam(2, Option("sync", { type: "boolean", desc: "sync application", default: true }))
|
|
5615
5801
|
], ApplicationCommand.prototype, "startCsr", 1);
|
|
5616
5802
|
__decorateClass([
|
|
5617
|
-
Target.Public({ short: true }),
|
|
5803
|
+
Target.Public({ short: true, desc: "Start iOS app in simulator or device" }),
|
|
5618
5804
|
__decorateParam(0, App()),
|
|
5619
5805
|
__decorateParam(1, Option("open", { type: "boolean", desc: "open ios simulator", default: false })),
|
|
5620
5806
|
__decorateParam(2, Option("release", { type: "boolean", desc: "release mode", default: false })),
|
|
5621
5807
|
__decorateParam(3, Option("sync", { type: "boolean", desc: "sync application", default: true }))
|
|
5622
5808
|
], ApplicationCommand.prototype, "startIos", 1);
|
|
5623
5809
|
__decorateClass([
|
|
5624
|
-
Target.Public({ short: true }),
|
|
5810
|
+
Target.Public({ short: true, desc: "Start Android app in emulator or device" }),
|
|
5625
5811
|
__decorateParam(0, App()),
|
|
5626
5812
|
__decorateParam(1, Option("host", {
|
|
5627
5813
|
type: "string",
|
|
@@ -5634,16 +5820,16 @@ __decorateClass([
|
|
|
5634
5820
|
__decorateParam(4, Option("sync", { type: "boolean", desc: "sync application", default: true }))
|
|
5635
5821
|
], ApplicationCommand.prototype, "startAndroid", 1);
|
|
5636
5822
|
__decorateClass([
|
|
5637
|
-
Target.Public(),
|
|
5823
|
+
Target.Public({ desc: "Build and package iOS app for release (App Store)" }),
|
|
5638
5824
|
__decorateParam(0, App())
|
|
5639
5825
|
], ApplicationCommand.prototype, "releaseIos", 1);
|
|
5640
5826
|
__decorateClass([
|
|
5641
|
-
Target.Public(),
|
|
5827
|
+
Target.Public({ desc: "Build and package Android app for release (Play Store)" }),
|
|
5642
5828
|
__decorateParam(0, App()),
|
|
5643
5829
|
__decorateParam(1, Option("assembleType", { type: "string", enum: ["apk", "aab"], default: "apk" }))
|
|
5644
5830
|
], ApplicationCommand.prototype, "releaseAndroid", 1);
|
|
5645
5831
|
__decorateClass([
|
|
5646
|
-
Target.Public(),
|
|
5832
|
+
Target.Public({ desc: "Release app source code with OTA update support" }),
|
|
5647
5833
|
__decorateParam(0, App()),
|
|
5648
5834
|
__decorateParam(1, Option("rebuild", { type: "boolean", desc: "rebuild", default: false })),
|
|
5649
5835
|
__decorateParam(2, Option("buildNum", { desc: "build number", default: 0 })),
|
|
@@ -5651,11 +5837,11 @@ __decorateClass([
|
|
|
5651
5837
|
__decorateParam(4, Option("local", { type: "boolean", desc: "local", default: true }))
|
|
5652
5838
|
], ApplicationCommand.prototype, "releaseSource", 1);
|
|
5653
5839
|
__decorateClass([
|
|
5654
|
-
Target.Public(),
|
|
5840
|
+
Target.Public({ desc: "Deploy over-the-air (OTA) update for mobile app" }),
|
|
5655
5841
|
__decorateParam(0, App())
|
|
5656
5842
|
], ApplicationCommand.prototype, "codepush", 1);
|
|
5657
5843
|
__decorateClass([
|
|
5658
|
-
Target.Public(),
|
|
5844
|
+
Target.Public({ desc: "Dump application database to local file" }),
|
|
5659
5845
|
__decorateParam(0, App()),
|
|
5660
5846
|
__decorateParam(1, Option("environment", {
|
|
5661
5847
|
desc: "environment",
|
|
@@ -5665,7 +5851,7 @@ __decorateClass([
|
|
|
5665
5851
|
}))
|
|
5666
5852
|
], ApplicationCommand.prototype, "dumpDatabase", 1);
|
|
5667
5853
|
__decorateClass([
|
|
5668
|
-
Target.Public(),
|
|
5854
|
+
Target.Public({ desc: "Restore application database from local dump" }),
|
|
5669
5855
|
__decorateParam(0, App()),
|
|
5670
5856
|
__decorateParam(1, Option("source", {
|
|
5671
5857
|
desc: "source environment",
|
|
@@ -5679,21 +5865,21 @@ __decorateClass([
|
|
|
5679
5865
|
}))
|
|
5680
5866
|
], ApplicationCommand.prototype, "restoreDatabase", 1);
|
|
5681
5867
|
__decorateClass([
|
|
5682
|
-
Target.Public(),
|
|
5868
|
+
Target.Public({ desc: "Start local database services (MongoDB, Redis, Meilisearch)" }),
|
|
5683
5869
|
__decorateParam(0, Workspace())
|
|
5684
5870
|
], ApplicationCommand.prototype, "dbup", 1);
|
|
5685
5871
|
__decorateClass([
|
|
5686
|
-
Target.Public(),
|
|
5872
|
+
Target.Public({ desc: "Stop local database services" }),
|
|
5687
5873
|
__decorateParam(0, Workspace())
|
|
5688
5874
|
], ApplicationCommand.prototype, "dbdown", 1);
|
|
5689
5875
|
__decorateClass([
|
|
5690
|
-
Target.Public(),
|
|
5876
|
+
Target.Public({ desc: "Pull database from cloud to local" }),
|
|
5691
5877
|
__decorateParam(0, App()),
|
|
5692
5878
|
__decorateParam(1, Option("env", { default: "debug" })),
|
|
5693
5879
|
__decorateParam(2, Option("dump", { default: true }))
|
|
5694
5880
|
], ApplicationCommand.prototype, "pullDatabase", 1);
|
|
5695
5881
|
__decorateClass([
|
|
5696
|
-
Target.Public(),
|
|
5882
|
+
Target.Public({ desc: "Configure application settings interactively" }),
|
|
5697
5883
|
__decorateParam(0, App())
|
|
5698
5884
|
], ApplicationCommand.prototype, "configureApp", 1);
|
|
5699
5885
|
ApplicationCommand = __decorateClass([
|
|
@@ -5784,7 +5970,7 @@ var PackageScript = class {
|
|
|
5784
5970
|
|
|
5785
5971
|
// pkgs/@akanjs/cli/src/cloud/cloud.runner.ts
|
|
5786
5972
|
import { confirm as confirm3 } from "@inquirer/prompts";
|
|
5787
|
-
import
|
|
5973
|
+
import chalk7 from "chalk";
|
|
5788
5974
|
import latestVersion from "latest-version";
|
|
5789
5975
|
import open from "open";
|
|
5790
5976
|
import * as QRcode from "qrcode";
|
|
@@ -5794,17 +5980,17 @@ var CloudRunner = class {
|
|
|
5794
5980
|
const config = getHostConfig();
|
|
5795
5981
|
const self = config.auth ? await getSelf(config.auth.token) : null;
|
|
5796
5982
|
if (self) {
|
|
5797
|
-
Logger.rawLog(
|
|
5983
|
+
Logger.rawLog(chalk7.green(`
|
|
5798
5984
|
\u2713 Already logged in akan cloud as ${self.nickname}
|
|
5799
5985
|
`));
|
|
5800
5986
|
return true;
|
|
5801
5987
|
}
|
|
5802
5988
|
const remoteId = uuidv4();
|
|
5803
5989
|
const signinUrl = `${akanCloudClientUrl}/signin?remoteId=${remoteId}`;
|
|
5804
|
-
Logger.rawLog(
|
|
5805
|
-
${
|
|
5806
|
-
Logger.rawLog(
|
|
5807
|
-
Logger.rawLog(
|
|
5990
|
+
Logger.rawLog(chalk7.bold(`
|
|
5991
|
+
${chalk7.green("\u27A4")} Authentication Required`));
|
|
5992
|
+
Logger.rawLog(chalk7.dim("Please visit or click the following URL:"));
|
|
5993
|
+
Logger.rawLog(chalk7.cyan.underline(signinUrl) + "\n");
|
|
5808
5994
|
try {
|
|
5809
5995
|
const qrcode = await new Promise((resolve, reject) => {
|
|
5810
5996
|
QRcode.toString(signinUrl, { type: "terminal", small: true }, (err, data) => {
|
|
@@ -5815,11 +6001,11 @@ ${chalk6.green("\u27A4")} Authentication Required`));
|
|
|
5815
6001
|
});
|
|
5816
6002
|
Logger.rawLog(qrcode);
|
|
5817
6003
|
await open(signinUrl);
|
|
5818
|
-
Logger.rawLog(
|
|
6004
|
+
Logger.rawLog(chalk7.dim("Opening browser..."));
|
|
5819
6005
|
} catch {
|
|
5820
|
-
Logger.rawLog(
|
|
6006
|
+
Logger.rawLog(chalk7.yellow("Could not open browser. Please visit the URL manually."));
|
|
5821
6007
|
}
|
|
5822
|
-
Logger.rawLog(
|
|
6008
|
+
Logger.rawLog(chalk7.dim("Waiting for authentication..."));
|
|
5823
6009
|
const MAX_RETRY = 300;
|
|
5824
6010
|
for (let i = 0; i < MAX_RETRY; i++) {
|
|
5825
6011
|
const res = await fetch(`${akanCloudBackendUrl}/user/getRemoteAuthToken/${remoteId}`);
|
|
@@ -5827,28 +6013,28 @@ ${chalk6.green("\u27A4")} Authentication Required`));
|
|
|
5827
6013
|
const self2 = jwt ? await getSelf(jwt) : null;
|
|
5828
6014
|
if (jwt && self2) {
|
|
5829
6015
|
setHostConfig(akanCloudHost, { auth: { token: jwt, self: self2 } });
|
|
5830
|
-
Logger.rawLog(
|
|
5831
|
-
Logger.rawLog(
|
|
6016
|
+
Logger.rawLog(chalk7.green(`\r\u2713 Authentication successful!`));
|
|
6017
|
+
Logger.rawLog(chalk7.green.bold(`
|
|
5832
6018
|
\u2728 Welcome aboard, ${self2.nickname}!`));
|
|
5833
|
-
Logger.rawLog(
|
|
6019
|
+
Logger.rawLog(chalk7.dim("You're now ready to use Akan CLI!\n"));
|
|
5834
6020
|
return true;
|
|
5835
6021
|
}
|
|
5836
6022
|
await sleep(2e3);
|
|
5837
6023
|
}
|
|
5838
|
-
throw new Error(
|
|
6024
|
+
throw new Error(chalk7.red("\u2716 Authentication timed out after 10 minutes. Please try again."));
|
|
5839
6025
|
}
|
|
5840
6026
|
logout() {
|
|
5841
6027
|
const config = getHostConfig();
|
|
5842
6028
|
if (config.auth) {
|
|
5843
6029
|
setHostConfig(akanCloudHost, {});
|
|
5844
|
-
Logger.rawLog(
|
|
6030
|
+
Logger.rawLog(chalk7.magenta.bold(`
|
|
5845
6031
|
\u{1F44B} Goodbye, ${config.auth.self.nickname}!`));
|
|
5846
|
-
Logger.rawLog(
|
|
5847
|
-
Logger.rawLog(
|
|
5848
|
-
Logger.rawLog(
|
|
6032
|
+
Logger.rawLog(chalk7.dim("\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\n"));
|
|
6033
|
+
Logger.rawLog(chalk7.cyan("You have been successfully logged out."));
|
|
6034
|
+
Logger.rawLog(chalk7.dim("Thank you for using Akan CLI. Come back soon! \u{1F31F}\n"));
|
|
5849
6035
|
} else {
|
|
5850
|
-
Logger.rawLog(
|
|
5851
|
-
Logger.rawLog(
|
|
6036
|
+
Logger.rawLog(chalk7.yellow.bold("\n\u26A0\uFE0F No active session found"));
|
|
6037
|
+
Logger.rawLog(chalk7.dim("You were not logged in to begin with\n"));
|
|
5852
6038
|
}
|
|
5853
6039
|
}
|
|
5854
6040
|
async setLlm() {
|
|
@@ -5856,7 +6042,7 @@ ${chalk6.green("\u27A4")} Authentication Required`));
|
|
|
5856
6042
|
}
|
|
5857
6043
|
resetLlm() {
|
|
5858
6044
|
AiSession.setLlmConfig(null);
|
|
5859
|
-
Logger.rawLog(
|
|
6045
|
+
Logger.rawLog(chalk7.green("\u2611\uFE0F LLM model config is cleared. Please run `akan set-llm` to set a new LLM model."));
|
|
5860
6046
|
}
|
|
5861
6047
|
async getAkanPkgs(workspace) {
|
|
5862
6048
|
const pkgs = await workspace.getPkgs();
|
|
@@ -5996,32 +6182,32 @@ var CloudCommand = class {
|
|
|
5996
6182
|
}
|
|
5997
6183
|
};
|
|
5998
6184
|
__decorateClass([
|
|
5999
|
-
Target.Public(),
|
|
6185
|
+
Target.Public({ desc: "Login to Akan Cloud services" }),
|
|
6000
6186
|
__decorateParam(0, Workspace())
|
|
6001
6187
|
], CloudCommand.prototype, "login", 1);
|
|
6002
6188
|
__decorateClass([
|
|
6003
|
-
Target.Public(),
|
|
6189
|
+
Target.Public({ desc: "Logout from Akan Cloud services" }),
|
|
6004
6190
|
__decorateParam(0, Workspace())
|
|
6005
6191
|
], CloudCommand.prototype, "logout", 1);
|
|
6006
6192
|
__decorateClass([
|
|
6007
|
-
Target.Public(),
|
|
6193
|
+
Target.Public({ desc: "Configure LLM (Large Language Model) API key" }),
|
|
6008
6194
|
__decorateParam(0, Workspace())
|
|
6009
6195
|
], CloudCommand.prototype, "setLlm", 1);
|
|
6010
6196
|
__decorateClass([
|
|
6011
|
-
Target.Public(),
|
|
6197
|
+
Target.Public({ desc: "Reset LLM configuration to default" }),
|
|
6012
6198
|
__decorateParam(0, Workspace())
|
|
6013
6199
|
], CloudCommand.prototype, "resetLlm", 1);
|
|
6014
6200
|
__decorateClass([
|
|
6015
|
-
Target.Public(),
|
|
6201
|
+
Target.Public({ desc: "Ask AI assistant a question about your project" }),
|
|
6016
6202
|
__decorateParam(0, Option("question", { ask: "question to ask" })),
|
|
6017
6203
|
__decorateParam(1, Workspace())
|
|
6018
6204
|
], CloudCommand.prototype, "ask", 1);
|
|
6019
6205
|
__decorateClass([
|
|
6020
|
-
Target.Public({ devOnly: true }),
|
|
6206
|
+
Target.Public({ devOnly: true, desc: "Deploy Akan.js framework to cloud (internal use)" }),
|
|
6021
6207
|
__decorateParam(0, Workspace())
|
|
6022
6208
|
], CloudCommand.prototype, "deployAkan", 1);
|
|
6023
6209
|
__decorateClass([
|
|
6024
|
-
Target.Public(),
|
|
6210
|
+
Target.Public({ desc: "Update Akan.js framework to the latest version" }),
|
|
6025
6211
|
__decorateParam(0, Workspace()),
|
|
6026
6212
|
__decorateParam(1, Option("tag", {
|
|
6027
6213
|
desc: "tag of the update",
|
|
@@ -6050,20 +6236,20 @@ var LibraryCommand = class {
|
|
|
6050
6236
|
}
|
|
6051
6237
|
};
|
|
6052
6238
|
__decorateClass([
|
|
6053
|
-
Target.Public(),
|
|
6239
|
+
Target.Public({ desc: "Create a new shared library in the workspace" }),
|
|
6054
6240
|
__decorateParam(0, Argument("libName", { desc: "name of library" })),
|
|
6055
6241
|
__decorateParam(1, Workspace())
|
|
6056
6242
|
], LibraryCommand.prototype, "createLibrary", 1);
|
|
6057
6243
|
__decorateClass([
|
|
6058
|
-
Target.Public(),
|
|
6244
|
+
Target.Public({ desc: "Remove a library from the workspace" }),
|
|
6059
6245
|
__decorateParam(0, Lib())
|
|
6060
6246
|
], LibraryCommand.prototype, "removeLibrary", 1);
|
|
6061
6247
|
__decorateClass([
|
|
6062
|
-
Target.Public(),
|
|
6248
|
+
Target.Public({ desc: "Sync dependencies and configuration for a library" }),
|
|
6063
6249
|
__decorateParam(0, Lib())
|
|
6064
6250
|
], LibraryCommand.prototype, "syncLibrary", 1);
|
|
6065
6251
|
__decorateClass([
|
|
6066
|
-
Target.Public(),
|
|
6252
|
+
Target.Public({ desc: "Install pre-built library templates (shared, util, etc.)" }),
|
|
6067
6253
|
__decorateParam(0, Argument("libName", { desc: "name of library", nullable: true })),
|
|
6068
6254
|
__decorateParam(1, Workspace())
|
|
6069
6255
|
], LibraryCommand.prototype, "installLibrary", 1);
|
|
@@ -6616,25 +6802,25 @@ var ModuleCommand = class {
|
|
|
6616
6802
|
}
|
|
6617
6803
|
};
|
|
6618
6804
|
__decorateClass([
|
|
6619
|
-
Target.Public(),
|
|
6805
|
+
Target.Public({ desc: "Create a new domain module (constant, service, signal, store, UI)" }),
|
|
6620
6806
|
__decorateParam(0, Argument("moduleName", { desc: "name of module" })),
|
|
6621
6807
|
__decorateParam(1, Sys()),
|
|
6622
6808
|
__decorateParam(2, Option("page", { type: "boolean", desc: "create page", default: false }))
|
|
6623
6809
|
], ModuleCommand.prototype, "createModule", 1);
|
|
6624
6810
|
__decorateClass([
|
|
6625
|
-
Target.Public(),
|
|
6811
|
+
Target.Public({ desc: "Remove a module from an app or library" }),
|
|
6626
6812
|
__decorateParam(0, Module())
|
|
6627
6813
|
], ModuleCommand.prototype, "removeModule", 1);
|
|
6628
6814
|
__decorateClass([
|
|
6629
|
-
Target.Public(),
|
|
6815
|
+
Target.Public({ desc: "Create a View component for a module (full page view)" }),
|
|
6630
6816
|
__decorateParam(0, Module())
|
|
6631
6817
|
], ModuleCommand.prototype, "createView", 1);
|
|
6632
6818
|
__decorateClass([
|
|
6633
|
-
Target.Public(),
|
|
6819
|
+
Target.Public({ desc: "Create a Unit component for a module (list/card item)" }),
|
|
6634
6820
|
__decorateParam(0, Module())
|
|
6635
6821
|
], ModuleCommand.prototype, "createUnit", 1);
|
|
6636
6822
|
__decorateClass([
|
|
6637
|
-
Target.Public(),
|
|
6823
|
+
Target.Public({ desc: "Create a Template component for a module (form)" }),
|
|
6638
6824
|
__decorateParam(0, Module())
|
|
6639
6825
|
], ModuleCommand.prototype, "createTemplate", 1);
|
|
6640
6826
|
ModuleCommand = __decorateClass([
|
|
@@ -6661,24 +6847,24 @@ var PackageCommand = class {
|
|
|
6661
6847
|
}
|
|
6662
6848
|
};
|
|
6663
6849
|
__decorateClass([
|
|
6664
|
-
Target.Public(),
|
|
6850
|
+
Target.Public({ desc: "Show version information for all packages" }),
|
|
6665
6851
|
__decorateParam(0, Workspace())
|
|
6666
6852
|
], PackageCommand.prototype, "version", 1);
|
|
6667
6853
|
__decorateClass([
|
|
6668
|
-
Target.Public(),
|
|
6854
|
+
Target.Public({ desc: "Create a new package in pkgs/@akanjs/" }),
|
|
6669
6855
|
__decorateParam(0, Option("name", { desc: "name of package" })),
|
|
6670
6856
|
__decorateParam(1, Workspace())
|
|
6671
6857
|
], PackageCommand.prototype, "createPackage", 1);
|
|
6672
6858
|
__decorateClass([
|
|
6673
|
-
Target.Public(),
|
|
6859
|
+
Target.Public({ desc: "Remove a package from the workspace" }),
|
|
6674
6860
|
__decorateParam(0, Pkg())
|
|
6675
6861
|
], PackageCommand.prototype, "removePackage", 1);
|
|
6676
6862
|
__decorateClass([
|
|
6677
|
-
Target.Public(),
|
|
6863
|
+
Target.Public({ desc: "Sync dependencies and configuration for a package" }),
|
|
6678
6864
|
__decorateParam(0, Pkg())
|
|
6679
6865
|
], PackageCommand.prototype, "syncPackage", 1);
|
|
6680
6866
|
__decorateClass([
|
|
6681
|
-
Target.Public(),
|
|
6867
|
+
Target.Public({ desc: "Build a package for distribution" }),
|
|
6682
6868
|
__decorateParam(0, Pkg())
|
|
6683
6869
|
], PackageCommand.prototype, "buildPackage", 1);
|
|
6684
6870
|
PackageCommand = __decorateClass([
|
|
@@ -6693,7 +6879,7 @@ var PageCommand = class {
|
|
|
6693
6879
|
}
|
|
6694
6880
|
};
|
|
6695
6881
|
__decorateClass([
|
|
6696
|
-
Target.Public(),
|
|
6882
|
+
Target.Public({ desc: "Create CRUD pages for a module (list, detail, create, edit)" }),
|
|
6697
6883
|
__decorateParam(0, App()),
|
|
6698
6884
|
__decorateParam(1, Module()),
|
|
6699
6885
|
__decorateParam(2, Option("basePath", { desc: "base path", nullable: true })),
|
|
@@ -6900,7 +7086,7 @@ var WorkspaceCommand = class {
|
|
|
6900
7086
|
}
|
|
6901
7087
|
};
|
|
6902
7088
|
__decorateClass([
|
|
6903
|
-
Target.Public(),
|
|
7089
|
+
Target.Public({ desc: "Create a new Akan.js workspace" }),
|
|
6904
7090
|
__decorateParam(0, Argument("workspaceName", { desc: "what is the name of your organization?" })),
|
|
6905
7091
|
__decorateParam(1, Option("app", { desc: "what is the codename of your first application? (e.g. myapp)" })),
|
|
6906
7092
|
__decorateParam(2, Option("dir", { desc: "directory of workspace", default: process.env.USE_AKANJS_PKGS === "true" ? "local" : "." })),
|
|
@@ -6922,26 +7108,26 @@ __decorateClass([
|
|
|
6922
7108
|
}))
|
|
6923
7109
|
], WorkspaceCommand.prototype, "createWorkspace", 1);
|
|
6924
7110
|
__decorateClass([
|
|
6925
|
-
Target.Public(),
|
|
7111
|
+
Target.Public({ desc: "Generate MongoDB types and schemas" }),
|
|
6926
7112
|
__decorateParam(0, Workspace())
|
|
6927
7113
|
], WorkspaceCommand.prototype, "generateMongo", 1);
|
|
6928
7114
|
__decorateClass([
|
|
6929
|
-
Target.Public(),
|
|
7115
|
+
Target.Public({ desc: "Lint and fix code in a specific app/lib/pkg" }),
|
|
6930
7116
|
__decorateParam(0, Exec()),
|
|
6931
7117
|
__decorateParam(1, Option("fix", { type: "boolean", default: true })),
|
|
6932
7118
|
__decorateParam(2, Workspace())
|
|
6933
7119
|
], WorkspaceCommand.prototype, "lint", 1);
|
|
6934
7120
|
__decorateClass([
|
|
6935
|
-
Target.Public(),
|
|
7121
|
+
Target.Public({ desc: "Lint and fix code in all apps and libraries" }),
|
|
6936
7122
|
__decorateParam(0, Option("fix", { type: "boolean", default: true })),
|
|
6937
7123
|
__decorateParam(1, Workspace())
|
|
6938
7124
|
], WorkspaceCommand.prototype, "lintAll", 1);
|
|
6939
7125
|
__decorateClass([
|
|
6940
|
-
Target.Public(),
|
|
7126
|
+
Target.Public({ desc: "Sync dependencies and configuration for all apps and libraries" }),
|
|
6941
7127
|
__decorateParam(0, Workspace())
|
|
6942
7128
|
], WorkspaceCommand.prototype, "syncAll", 1);
|
|
6943
7129
|
__decorateClass([
|
|
6944
|
-
Target.Public(),
|
|
7130
|
+
Target.Public({ desc: "Dump all application databases to local files" }),
|
|
6945
7131
|
__decorateParam(0, Option("environment", {
|
|
6946
7132
|
desc: "environment",
|
|
6947
7133
|
default: "debug",
|
|
@@ -6951,7 +7137,7 @@ __decorateClass([
|
|
|
6951
7137
|
__decorateParam(1, Workspace())
|
|
6952
7138
|
], WorkspaceCommand.prototype, "dumpDatabaseAll", 1);
|
|
6953
7139
|
__decorateClass([
|
|
6954
|
-
Target.Public(),
|
|
7140
|
+
Target.Public({ desc: "Restore all application databases from local dump" }),
|
|
6955
7141
|
__decorateParam(0, Option("source", {
|
|
6956
7142
|
desc: "source environment",
|
|
6957
7143
|
enum: ["debug", "develop", "main"],
|
|
@@ -7271,23 +7457,23 @@ var GuidelineCommand = class {
|
|
|
7271
7457
|
}
|
|
7272
7458
|
};
|
|
7273
7459
|
__decorateClass([
|
|
7274
|
-
Target.Public(),
|
|
7460
|
+
Target.Public({ devOnly: true, desc: "Generate AI development guideline/instruction for your project" }),
|
|
7275
7461
|
__decorateParam(0, Argument("name", { ask: "name of the instruction", nullable: true })),
|
|
7276
7462
|
__decorateParam(1, Workspace())
|
|
7277
7463
|
], GuidelineCommand.prototype, "generateInstruction", 1);
|
|
7278
7464
|
__decorateClass([
|
|
7279
|
-
Target.Public(),
|
|
7465
|
+
Target.Public({ devOnly: true, desc: "Update existing AI guideline/instruction" }),
|
|
7280
7466
|
__decorateParam(0, Argument("name", { ask: "name of the instruction", nullable: true })),
|
|
7281
7467
|
__decorateParam(1, Option("request", { ask: "What do you want to update?" })),
|
|
7282
7468
|
__decorateParam(2, Workspace())
|
|
7283
7469
|
], GuidelineCommand.prototype, "updateInstruction", 1);
|
|
7284
7470
|
__decorateClass([
|
|
7285
|
-
Target.Public(),
|
|
7471
|
+
Target.Public({ devOnly: true, desc: "Generate documentation from guideline/instruction" }),
|
|
7286
7472
|
__decorateParam(0, Argument("name", { ask: "name of the instruction", nullable: true })),
|
|
7287
7473
|
__decorateParam(1, Workspace())
|
|
7288
7474
|
], GuidelineCommand.prototype, "generateDocument", 1);
|
|
7289
7475
|
__decorateClass([
|
|
7290
|
-
Target.Public(),
|
|
7476
|
+
Target.Public({ devOnly: true, desc: "Re-apply guideline/instruction to codebase" }),
|
|
7291
7477
|
__decorateParam(0, Argument("name", { ask: "name of the instruction", nullable: true })),
|
|
7292
7478
|
__decorateParam(1, Workspace())
|
|
7293
7479
|
], GuidelineCommand.prototype, "reapplyInstruction", 1);
|
|
@@ -7484,13 +7670,13 @@ var ScalarCommand = class {
|
|
|
7484
7670
|
}
|
|
7485
7671
|
};
|
|
7486
7672
|
__decorateClass([
|
|
7487
|
-
Target.Public(),
|
|
7673
|
+
Target.Public({ desc: "Create a new scalar type (simple data model without DB)" }),
|
|
7488
7674
|
__decorateParam(0, Argument("scalarName", { desc: "name of scalar" })),
|
|
7489
7675
|
__decorateParam(1, Option("ai", { type: "boolean", default: false, desc: "use ai to create scalar" })),
|
|
7490
7676
|
__decorateParam(2, Sys())
|
|
7491
7677
|
], ScalarCommand.prototype, "createScalar", 1);
|
|
7492
7678
|
__decorateClass([
|
|
7493
|
-
Target.Public(),
|
|
7679
|
+
Target.Public({ desc: "Remove a scalar type from an app or library" }),
|
|
7494
7680
|
__decorateParam(0, Argument("scalarName", { desc: "name of scalar" })),
|
|
7495
7681
|
__decorateParam(1, Sys())
|
|
7496
7682
|
], ScalarCommand.prototype, "removeScalar", 1);
|