@capuchoo/cli 0.2.0

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.
Files changed (111) hide show
  1. package/README.md +351 -0
  2. package/bin/dev.cmd +3 -0
  3. package/bin/dev.js +5 -0
  4. package/bin/run.cmd +3 -0
  5. package/bin/run.js +5 -0
  6. package/dist/base-command.d.ts +15 -0
  7. package/dist/base-command.d.ts.map +1 -0
  8. package/dist/base-command.js +61 -0
  9. package/dist/base-command.js.map +1 -0
  10. package/dist/commands/auth/login.d.ts +19 -0
  11. package/dist/commands/auth/login.d.ts.map +1 -0
  12. package/dist/commands/auth/login.js +74 -0
  13. package/dist/commands/auth/login.js.map +1 -0
  14. package/dist/commands/auth/logout.d.ts +6 -0
  15. package/dist/commands/auth/logout.d.ts.map +1 -0
  16. package/dist/commands/auth/logout.js +22 -0
  17. package/dist/commands/auth/logout.js.map +1 -0
  18. package/dist/commands/auth/whoami.d.ts +9 -0
  19. package/dist/commands/auth/whoami.d.ts.map +1 -0
  20. package/dist/commands/auth/whoami.js +77 -0
  21. package/dist/commands/auth/whoami.js.map +1 -0
  22. package/dist/commands/channel/list.d.ts +9 -0
  23. package/dist/commands/channel/list.d.ts.map +1 -0
  24. package/dist/commands/channel/list.js +47 -0
  25. package/dist/commands/channel/list.js.map +1 -0
  26. package/dist/commands/config/list.d.ts +9 -0
  27. package/dist/commands/config/list.d.ts.map +1 -0
  28. package/dist/commands/config/list.js +116 -0
  29. package/dist/commands/config/list.js.map +1 -0
  30. package/dist/commands/config/set.d.ts +11 -0
  31. package/dist/commands/config/set.d.ts.map +1 -0
  32. package/dist/commands/config/set.js +44 -0
  33. package/dist/commands/config/set.js.map +1 -0
  34. package/dist/commands/deploy/native.d.ts +23 -0
  35. package/dist/commands/deploy/native.d.ts.map +1 -0
  36. package/dist/commands/deploy/native.js +39 -0
  37. package/dist/commands/deploy/native.js.map +1 -0
  38. package/dist/commands/deploy/ota.d.ts +20 -0
  39. package/dist/commands/deploy/ota.d.ts.map +1 -0
  40. package/dist/commands/deploy/ota.js +20 -0
  41. package/dist/commands/deploy/ota.js.map +1 -0
  42. package/dist/commands/init.d.ts +17 -0
  43. package/dist/commands/init.d.ts.map +1 -0
  44. package/dist/commands/init.js +232 -0
  45. package/dist/commands/init.js.map +1 -0
  46. package/dist/commands/version/bump.d.ts +13 -0
  47. package/dist/commands/version/bump.d.ts.map +1 -0
  48. package/dist/commands/version/bump.js +52 -0
  49. package/dist/commands/version/bump.js.map +1 -0
  50. package/dist/commands/version/sync.d.ts +12 -0
  51. package/dist/commands/version/sync.d.ts.map +1 -0
  52. package/dist/commands/version/sync.js +81 -0
  53. package/dist/commands/version/sync.js.map +1 -0
  54. package/dist/deploy/execute.d.ts +48 -0
  55. package/dist/deploy/execute.d.ts.map +1 -0
  56. package/dist/deploy/execute.js +280 -0
  57. package/dist/deploy/execute.js.map +1 -0
  58. package/dist/index.d.ts +2 -0
  59. package/dist/index.d.ts.map +1 -0
  60. package/dist/index.js +2 -0
  61. package/dist/index.js.map +1 -0
  62. package/dist/pipeline/android.d.ts +37 -0
  63. package/dist/pipeline/android.d.ts.map +1 -0
  64. package/dist/pipeline/android.js +96 -0
  65. package/dist/pipeline/android.js.map +1 -0
  66. package/dist/pipeline/build.d.ts +69 -0
  67. package/dist/pipeline/build.d.ts.map +1 -0
  68. package/dist/pipeline/build.js +138 -0
  69. package/dist/pipeline/build.js.map +1 -0
  70. package/dist/pipeline/deploy.d.ts +74 -0
  71. package/dist/pipeline/deploy.d.ts.map +1 -0
  72. package/dist/pipeline/deploy.js +198 -0
  73. package/dist/pipeline/deploy.js.map +1 -0
  74. package/dist/pipeline/flavour.d.ts +66 -0
  75. package/dist/pipeline/flavour.d.ts.map +1 -0
  76. package/dist/pipeline/flavour.js +120 -0
  77. package/dist/pipeline/flavour.js.map +1 -0
  78. package/dist/pipeline/native-config.d.ts +43 -0
  79. package/dist/pipeline/native-config.d.ts.map +1 -0
  80. package/dist/pipeline/native-config.js +127 -0
  81. package/dist/pipeline/native-config.js.map +1 -0
  82. package/dist/pipeline/toolchain.d.ts +80 -0
  83. package/dist/pipeline/toolchain.d.ts.map +1 -0
  84. package/dist/pipeline/toolchain.js +146 -0
  85. package/dist/pipeline/toolchain.js.map +1 -0
  86. package/dist/pipeline/zip.d.ts +22 -0
  87. package/dist/pipeline/zip.d.ts.map +1 -0
  88. package/dist/pipeline/zip.js +188 -0
  89. package/dist/pipeline/zip.js.map +1 -0
  90. package/dist/services/cloud.d.ts +58 -0
  91. package/dist/services/cloud.d.ts.map +1 -0
  92. package/dist/services/cloud.js +89 -0
  93. package/dist/services/cloud.js.map +1 -0
  94. package/dist/utils/config.d.ts +52 -0
  95. package/dist/utils/config.d.ts.map +1 -0
  96. package/dist/utils/config.js +144 -0
  97. package/dist/utils/config.js.map +1 -0
  98. package/dist/utils/exec.d.ts +44 -0
  99. package/dist/utils/exec.d.ts.map +1 -0
  100. package/dist/utils/exec.js +136 -0
  101. package/dist/utils/exec.js.map +1 -0
  102. package/dist/utils/http.d.ts +37 -0
  103. package/dist/utils/http.d.ts.map +1 -0
  104. package/dist/utils/http.js +137 -0
  105. package/dist/utils/http.js.map +1 -0
  106. package/dist/utils/reporter.d.ts +48 -0
  107. package/dist/utils/reporter.d.ts.map +1 -0
  108. package/dist/utils/reporter.js +108 -0
  109. package/dist/utils/reporter.js.map +1 -0
  110. package/oclif.manifest.json +568 -0
  111. package/package.json +81 -0
@@ -0,0 +1,77 @@
1
+ import { Flags } from "@oclif/core";
2
+ import chalk from "chalk";
3
+ import { CloudClient } from "../../services/cloud.js";
4
+ import { resolveCredentials } from "../../utils/config.js";
5
+ import { BaseCommand } from "../../base-command.js";
6
+ export default class AuthWhoami extends BaseCommand {
7
+ static description = "Show the signed-in account, and the organizations and apps it can reach";
8
+ static flags = {
9
+ json: Flags.boolean({ default: false, description: "Machine-readable output" }),
10
+ };
11
+ async run() {
12
+ const { flags } = await this.parse(AuthWhoami);
13
+ const credentials = resolveCredentials();
14
+ if (!credentials) {
15
+ if (flags.json) {
16
+ this.log(JSON.stringify({ authenticated: false }, null, 2));
17
+ return;
18
+ }
19
+ this.log("");
20
+ this.log(chalk.yellow(" Not signed in."));
21
+ this.log(` Run ${chalk.cyan("capuchoo auth login")}.`);
22
+ this.log("");
23
+ return;
24
+ }
25
+ // Always asks the server. The old command printed organizations and apps
26
+ // from the local config file - which login never wrote - so it always said
27
+ // "No apps found", and it reported a session as valid without checking.
28
+ const cloud = new CloudClient(credentials.endpoint, credentials.apiKey);
29
+ const profile = await cloud.whoami();
30
+ if (!profile) {
31
+ if (flags.json) {
32
+ this.log(JSON.stringify({ authenticated: false, endpoint: credentials.endpoint }, null, 2));
33
+ process.exitCode = 1;
34
+ return;
35
+ }
36
+ this.error(`The stored credentials for ${credentials.endpoint} are no longer valid. ` +
37
+ `Run ${chalk.cyan("capuchoo auth login")}.`);
38
+ }
39
+ if (flags.json) {
40
+ this.log(JSON.stringify({
41
+ authenticated: true,
42
+ endpoint: credentials.endpoint,
43
+ credentialSource: credentials.source,
44
+ user: profile.user,
45
+ organizations: profile.organizations,
46
+ apps: profile.apps,
47
+ }, null, 2));
48
+ return;
49
+ }
50
+ this.log("");
51
+ this.log(` ${chalk.bold("account")} ${chalk.green(profile.user.email)}`);
52
+ this.log(` ${chalk.bold("endpoint")} ${credentials.endpoint}`);
53
+ this.log(` ${chalk.bold("source")} ${credentials.source === "environment"
54
+ ? "CAPUCHO_ENDPOINT / CAPUCHO_API_KEY"
55
+ : "~/.capuchoo/config.json"}`);
56
+ if (profile.organizations.length > 0) {
57
+ this.log("");
58
+ this.log(chalk.bold(" organizations"));
59
+ for (const org of profile.organizations) {
60
+ this.log(` ${org.name} ${chalk.dim(`(${org.role})`)}`);
61
+ }
62
+ }
63
+ if (profile.apps.length > 0) {
64
+ this.log("");
65
+ this.log(chalk.bold(" apps"));
66
+ for (const app of profile.apps) {
67
+ this.log(` ${app.name} ${chalk.dim(app.app_id)}`);
68
+ }
69
+ }
70
+ else {
71
+ this.log("");
72
+ this.log(chalk.dim(" This key can reach no apps yet."));
73
+ }
74
+ this.log("");
75
+ }
76
+ }
77
+ //# sourceMappingURL=whoami.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"whoami.js","sourceRoot":"","sources":["../../../src/commands/auth/whoami.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import { BaseCommand } from "../../base-command.js";
2
+ export default class ChannelList extends BaseCommand {
3
+ static description: string;
4
+ static flags: {
5
+ json: import("@oclif/core/interfaces").BooleanFlag<boolean>;
6
+ };
7
+ run(): Promise<void>;
8
+ }
9
+ //# sourceMappingURL=list.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../src/commands/channel/list.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEpD,MAAM,CAAC,OAAO,OAAO,WAAY,SAAQ,WAAW;IAClD,OAAgB,WAAW,SAAkD;IAE7E,OAAgB,KAAK;;MAEnB;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CA6C3B"}
@@ -0,0 +1,47 @@
1
+ import { Flags } from "@oclif/core";
2
+ import chalk from "chalk";
3
+ import { CloudClient } from "../../services/cloud.js";
4
+ import { requireProjectConfig, resolveCredentials } from "../../utils/config.js";
5
+ import { BaseCommand } from "../../base-command.js";
6
+ export default class ChannelList extends BaseCommand {
7
+ static description = "List this app's channels and what they serve";
8
+ static flags = {
9
+ json: Flags.boolean({ default: false, description: "Machine-readable output" }),
10
+ };
11
+ async run() {
12
+ const { flags } = await this.parse(ChannelList);
13
+ const project = requireProjectConfig(process.cwd());
14
+ const credentials = resolveCredentials();
15
+ if (!credentials) {
16
+ this.error(`Not authenticated. Run ${chalk.cyan("capuchoo auth login")}.`);
17
+ }
18
+ const cloud = new CloudClient(credentials.endpoint, credentials.apiKey);
19
+ const channels = await cloud.channels(project.cloudAppId);
20
+ if (flags.json) {
21
+ this.log(JSON.stringify(channels, null, 2));
22
+ return;
23
+ }
24
+ if (channels.length === 0) {
25
+ this.log("");
26
+ this.log(chalk.yellow(` ${project.appName} has no channels yet.`));
27
+ this.log(chalk.dim(" Create one in the dashboard."));
28
+ this.log("");
29
+ return;
30
+ }
31
+ this.log("");
32
+ this.log(chalk.dim(` ${project.appName}`));
33
+ this.log("");
34
+ for (const channel of channels) {
35
+ // A channel with no environment cannot be deployed to, because the
36
+ // environment is what selects the build flavour. Flag it here rather than
37
+ // letting a deploy discover it.
38
+ const environment = channel.environment
39
+ ? chalk.dim(`(${channel.environment})`)
40
+ : chalk.red("(no environment - not deployable)");
41
+ this.log(` ${channel.name.padEnd(16)} ${environment} ` +
42
+ chalk.dim(channel.public ? "public" : "private"));
43
+ }
44
+ this.log("");
45
+ }
46
+ }
47
+ //# sourceMappingURL=list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/commands/channel/list.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AACjF,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEpD,MAAM,CAAC,OAAO,OAAO,WAAY,SAAQ,WAAW;IAClD,MAAM,CAAU,WAAW,GAAG,8CAA8C,CAAC;IAE7E,MAAM,CAAU,KAAK,GAAG;QACtB,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,yBAAyB,EAAE,CAAC;KAChF,CAAC;IAEF,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAChD,MAAM,OAAO,GAAG,oBAAoB,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC;QAEpD,MAAM,WAAW,GAAG,kBAAkB,EAAE,CAAC;QACzC,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,IAAI,CAAC,KAAK,CAAC,0BAA0B,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,GAAG,CAAC,CAAC;QAC7E,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,WAAW,CAAC,WAAW,CAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;QACxE,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAE1D,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;YACf,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;YAC5C,OAAO;QACT,CAAC;QAED,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC1B,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACb,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,OAAO,CAAC,OAAO,uBAAuB,CAAC,CAAC,CAAC;YACpE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC,CAAC;YACtD,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACb,OAAO;QACT,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QACb,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QAC5C,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAEb,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,mEAAmE;YACnE,0EAA0E;YAC1E,gCAAgC;YAChC,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW;gBACrC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,WAAW,GAAG,CAAC;gBACvC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC;YAEnD,IAAI,CAAC,GAAG,CACN,KAAK,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,WAAW,GAAG;gBAC5C,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CACnD,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACf,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { BaseCommand } from "../../base-command.js";
2
+ export default class ConfigList extends BaseCommand {
3
+ static description: string;
4
+ static flags: {
5
+ json: import("@oclif/core/interfaces").BooleanFlag<boolean>;
6
+ };
7
+ run(): Promise<void>;
8
+ }
9
+ //# sourceMappingURL=list.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list.d.ts","sourceRoot":"","sources":["../../../src/commands/config/list.ts"],"names":[],"mappings":"AAYA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEpD,MAAM,CAAC,OAAO,OAAO,UAAW,SAAQ,WAAW;IACjD,OAAgB,WAAW,SAAuE;IAElG,OAAgB,KAAK;;MAEnB;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CA0H3B"}
@@ -0,0 +1,116 @@
1
+ import { Flags } from "@oclif/core";
2
+ import chalk from "chalk";
3
+ import { globalConfigPath, projectConfigPath, readGlobalConfig, readProjectConfig, resolveCredentials, } from "../../utils/config.js";
4
+ import { detectToolchain, lookupTools } from "../../pipeline/toolchain.js";
5
+ import { resolveFlavour } from "../../pipeline/flavour.js";
6
+ import { ENVIRONMENTS, normaliseProjectConfig } from "@capuchoo/core";
7
+ import { BaseCommand } from "../../base-command.js";
8
+ export default class ConfigList extends BaseCommand {
9
+ static description = "Show the resolved configuration, and which build tools were found";
10
+ static flags = {
11
+ json: Flags.boolean({ default: false, description: "Machine-readable output" }),
12
+ };
13
+ async run() {
14
+ const { flags } = await this.parse(ConfigList);
15
+ const appDir = process.cwd();
16
+ const globalConfig = readGlobalConfig();
17
+ const credentials = resolveCredentials();
18
+ const rawProject = readProjectConfig(appDir);
19
+ const project = rawProject ? normaliseProjectConfig(rawProject) : null;
20
+ const toolchain = detectToolchain(appDir);
21
+ const tools = lookupTools(appDir);
22
+ const flavours = project
23
+ ? ENVIRONMENTS.map((environment) => {
24
+ const flavour = resolveFlavour(appDir, project, environment);
25
+ return {
26
+ environment,
27
+ envFile: flavour.config.envFile,
28
+ envFilePresent: flavour.envFile !== null,
29
+ trapezeConfig: flavour.config.trapezeConfig,
30
+ trapezePresent: flavour.trapezeConfig !== null,
31
+ assetsPresent: flavour.assetPath !== null,
32
+ };
33
+ })
34
+ : [];
35
+ const report = {
36
+ endpoint: credentials?.endpoint ?? null,
37
+ // Never printed. The whole point of this command is to be safe to paste
38
+ // into an issue.
39
+ authenticated: Boolean(credentials),
40
+ credentialSource: credentials?.source ?? null,
41
+ account: globalConfig.user?.email ?? null,
42
+ project: project
43
+ ? {
44
+ appId: project.appId,
45
+ cloudAppId: project.cloudAppId,
46
+ appName: project.appName,
47
+ configVersion: project.version,
48
+ webDir: project.webDir,
49
+ androidDir: project.androidDir,
50
+ versionCodeFile: project.versionCodeFile,
51
+ build: project.build,
52
+ }
53
+ : null,
54
+ flavours,
55
+ toolchain: {
56
+ workspaceRoot: toolchain.workspaceRoot,
57
+ packageManager: toolchain.packageManager,
58
+ vitePlus: toolchain.hasVitePlus,
59
+ },
60
+ tools: Object.fromEntries(Object.entries(tools).map(([name, tool]) => [
61
+ name,
62
+ { installed: tool.bin !== null, package: tool.packageName },
63
+ ])),
64
+ files: {
65
+ global: globalConfigPath(),
66
+ project: projectConfigPath(appDir),
67
+ },
68
+ };
69
+ if (flags.json) {
70
+ this.log(JSON.stringify(report, null, 2));
71
+ return;
72
+ }
73
+ this.log("");
74
+ this.log(chalk.bold(" account"));
75
+ this.log(` endpoint ${report.endpoint ?? chalk.dim("not set")}`);
76
+ this.log(` signed in ${report.authenticated ? chalk.green(report.account ?? "yes") : chalk.yellow("no")}` +
77
+ (report.credentialSource ? chalk.dim(` via ${report.credentialSource}`) : ""));
78
+ this.log("");
79
+ this.log(chalk.bold(" project"));
80
+ if (!report.project) {
81
+ this.log(chalk.yellow(" not initialised - run capuchoo init"));
82
+ }
83
+ else {
84
+ this.log(` app ${report.project.appName}`);
85
+ this.log(` bundle id ${report.project.appId}`);
86
+ this.log(` web dir ${report.project.webDir}`);
87
+ this.log(` schema v${report.project.configVersion}` +
88
+ (report.project.configVersion < 2 ? chalk.dim(" (defaults applied for the rest)") : ""));
89
+ }
90
+ if (flavours.length > 0) {
91
+ this.log("");
92
+ this.log(chalk.bold(" flavours"));
93
+ for (const flavour of flavours) {
94
+ const mark = flavour.envFilePresent ? chalk.green("*") : chalk.red("!");
95
+ const extras = [
96
+ flavour.trapezePresent ? "trapeze" : null,
97
+ flavour.assetsPresent ? "assets" : null,
98
+ ].filter(Boolean);
99
+ this.log(` ${mark} ${flavour.environment.padEnd(8)} ${chalk.dim(flavour.envFile)}` +
100
+ (extras.length > 0 ? chalk.dim(` + ${extras.join(", ")}`) : ""));
101
+ }
102
+ }
103
+ this.log("");
104
+ this.log(chalk.bold(" toolchain"));
105
+ this.log(` manager ${report.toolchain.packageManager}`);
106
+ this.log(` root ${chalk.dim(report.toolchain.workspaceRoot)}`);
107
+ for (const [name, tool] of Object.entries(report.tools)) {
108
+ this.log(` ${name.padEnd(11)} ${tool.installed ? chalk.green("found") : chalk.yellow("missing")} ${chalk.dim(tool.package)}`);
109
+ }
110
+ this.log("");
111
+ this.log(chalk.dim(` global config ${report.files.global}`));
112
+ this.log(chalk.dim(` project config ${report.files.project}`));
113
+ this.log("");
114
+ }
115
+ }
116
+ //# sourceMappingURL=list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/commands/config/list.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import { BaseCommand } from "../../base-command.js";
2
+ export default class ConfigSet extends BaseCommand {
3
+ static description: string;
4
+ static examples: string[];
5
+ static args: {
6
+ key: import("@oclif/core/interfaces").Arg<string, Record<string, unknown>>;
7
+ value: import("@oclif/core/interfaces").Arg<string, Record<string, unknown>>;
8
+ };
9
+ run(): Promise<void>;
10
+ }
11
+ //# sourceMappingURL=set.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"set.d.ts","sourceRoot":"","sources":["../../../src/commands/config/set.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAgBpD,MAAM,CAAC,OAAO,OAAO,SAAU,SAAQ,WAAW;IAChD,OAAgB,WAAW,SAAsD;IAEjF,OAAgB,QAAQ,WAGtB;IAEF,OAAgB,IAAI;;;MAOlB;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAe3B"}
@@ -0,0 +1,44 @@
1
+ import { Args } from "@oclif/core";
2
+ import chalk from "chalk";
3
+ import { updateGlobalConfig } from "../../utils/config.js";
4
+ import { BaseCommand } from "../../base-command.js";
5
+ /**
6
+ * Only the keys that are genuinely a user preference.
7
+ *
8
+ * The old command accepted any key and wrote it to either file, which is how
9
+ * `apiKey` ended up settable in a committed `project.json`. Credentials go
10
+ * through `auth login`; the project identity goes through `init`.
11
+ */
12
+ const SETTABLE = {
13
+ endpoint: "Backend base URL",
14
+ defaultChannel: "Channel used when --channel is omitted",
15
+ };
16
+ export default class ConfigSet extends BaseCommand {
17
+ static description = "Set a user preference in ~/.capuchoo/config.json";
18
+ static examples = [
19
+ "<%= config.bin %> config set endpoint https://capucho.internal",
20
+ "<%= config.bin %> config set defaultChannel staging",
21
+ ];
22
+ static args = {
23
+ key: Args.string({
24
+ description: "Preference to set",
25
+ options: Object.keys(SETTABLE),
26
+ required: true,
27
+ }),
28
+ value: Args.string({ description: "New value", required: true }),
29
+ };
30
+ async run() {
31
+ const { args } = await this.parse(ConfigSet);
32
+ const key = args.key;
33
+ let value = args.value.trim();
34
+ if (key === "endpoint") {
35
+ if (!/^https?:\/\/.+/.test(value)) {
36
+ this.error("endpoint must start with http:// or https://");
37
+ }
38
+ value = value.replace(/\/+$/, "");
39
+ }
40
+ updateGlobalConfig({ [key]: value });
41
+ this.log(chalk.green(`${key} = ${value}`));
42
+ }
43
+ }
44
+ //# sourceMappingURL=set.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"set.js","sourceRoot":"","sources":["../../../src/commands/config/set.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AACnC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,kBAAkB,EAAqB,MAAM,uBAAuB,CAAC;AAC9E,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEpD;;;;;;GAMG;AACH,MAAM,QAAQ,GAAG;IACf,QAAQ,EAAE,kBAAkB;IAC5B,cAAc,EAAE,wCAAwC;CACH,CAAC;AAIxD,MAAM,CAAC,OAAO,OAAO,SAAU,SAAQ,WAAW;IAChD,MAAM,CAAU,WAAW,GAAG,kDAAkD,CAAC;IAEjF,MAAM,CAAU,QAAQ,GAAG;QACzB,gEAAgE;QAChE,qDAAqD;KACtD,CAAC;IAEF,MAAM,CAAU,IAAI,GAAG;QACrB,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC;YACf,WAAW,EAAE,mBAAmB;YAChC,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC;YAC9B,QAAQ,EAAE,IAAI;SACf,CAAC;QACF,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,WAAW,EAAE,WAAW,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;KACjE,CAAC;IAEF,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAC7C,MAAM,GAAG,GAAG,IAAI,CAAC,GAAkB,CAAC;QACpC,IAAI,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;QAE9B,IAAI,GAAG,KAAK,UAAU,EAAE,CAAC;YACvB,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;gBAClC,IAAI,CAAC,KAAK,CAAC,8CAA8C,CAAC,CAAC;YAC7D,CAAC;YACD,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QACpC,CAAC;QAED,kBAAkB,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;QACrC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,GAAG,MAAM,KAAK,EAAE,CAAC,CAAC,CAAC;IAC7C,CAAC"}
@@ -0,0 +1,23 @@
1
+ import { BaseCommand } from "../../base-command.js";
2
+ export default class DeployNative extends BaseCommand {
3
+ static description: string;
4
+ static examples: string[];
5
+ static flags: {
6
+ platform: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
7
+ type: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
8
+ "allow-unsigned": import("@oclif/core/interfaces").BooleanFlag<boolean>;
9
+ channel: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
10
+ note: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
11
+ version: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
12
+ active: import("@oclif/core/interfaces").BooleanFlag<boolean>;
13
+ required: import("@oclif/core/interfaces").BooleanFlag<boolean>;
14
+ "skip-assets": import("@oclif/core/interfaces").BooleanFlag<boolean>;
15
+ "skip-build": import("@oclif/core/interfaces").BooleanFlag<boolean>;
16
+ "dry-run": import("@oclif/core/interfaces").BooleanFlag<boolean>;
17
+ json: import("@oclif/core/interfaces").BooleanFlag<boolean>;
18
+ verbose: import("@oclif/core/interfaces").BooleanFlag<boolean>;
19
+ yes: import("@oclif/core/interfaces").BooleanFlag<boolean>;
20
+ };
21
+ run(): Promise<void>;
22
+ }
23
+ //# sourceMappingURL=native.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"native.d.ts","sourceRoot":"","sources":["../../../src/commands/deploy/native.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEpD,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,WAAW;IACnD,OAAgB,WAAW,SACmD;IAE9E,OAAgB,QAAQ,WAItB;IAEF,OAAgB,KAAK;;;;;;;;;;;;;;;MAkBnB;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAQ3B"}
@@ -0,0 +1,39 @@
1
+ import { Flags } from "@oclif/core";
2
+ import { commonDeployFlags, executeDeploy } from "../../deploy/execute.js";
3
+ import { BaseCommand } from "../../base-command.js";
4
+ export default class DeployNative extends BaseCommand {
5
+ static description = "Build and publish a native binary (APK). Users install it through the OS.";
6
+ static examples = [
7
+ "<%= config.bin %> <%= command.id %> --channel staging",
8
+ "<%= config.bin %> <%= command.id %> -c production -v minor --type release",
9
+ "<%= config.bin %> <%= command.id %> -c staging --type debug -y",
10
+ ];
11
+ static flags = {
12
+ ...commonDeployFlags,
13
+ platform: Flags.string({
14
+ char: "p",
15
+ default: "android",
16
+ options: ["android", "ios"],
17
+ description: "Target platform",
18
+ }),
19
+ type: Flags.string({
20
+ char: "t",
21
+ default: "release",
22
+ options: ["debug", "release"],
23
+ description: "Gradle variant to assemble",
24
+ }),
25
+ "allow-unsigned": Flags.boolean({
26
+ default: false,
27
+ description: "Publish a release build with no signature. Android will refuse to install it.",
28
+ }),
29
+ };
30
+ async run() {
31
+ const { flags } = await this.parse(DeployNative);
32
+ await executeDeploy({
33
+ kind: "native",
34
+ command: this,
35
+ flags: flags,
36
+ });
37
+ }
38
+ }
39
+ //# sourceMappingURL=native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"native.js","sourceRoot":"","sources":["../../../src/commands/deploy/native.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAoB,MAAM,yBAAyB,CAAC;AAC7F,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEpD,MAAM,CAAC,OAAO,OAAO,YAAa,SAAQ,WAAW;IACnD,MAAM,CAAU,WAAW,GACzB,2EAA2E,CAAC;IAE9E,MAAM,CAAU,QAAQ,GAAG;QACzB,uDAAuD;QACvD,2EAA2E;QAC3E,gEAAgE;KACjE,CAAC;IAEF,MAAM,CAAU,KAAK,GAAG;QACtB,GAAG,iBAAiB;QACpB,QAAQ,EAAE,KAAK,CAAC,MAAM,CAAC;YACrB,IAAI,EAAE,GAAG;YACT,OAAO,EAAE,SAAS;YAClB,OAAO,EAAE,CAAC,SAAS,EAAE,KAAK,CAAC;YAC3B,WAAW,EAAE,iBAAiB;SAC/B,CAAC;QACF,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC;YACjB,IAAI,EAAE,GAAG;YACT,OAAO,EAAE,SAAS;YAClB,OAAO,EAAE,CAAC,OAAO,EAAE,SAAS,CAAC;YAC7B,WAAW,EAAE,4BAA4B;SAC1C,CAAC;QACF,gBAAgB,EAAE,KAAK,CAAC,OAAO,CAAC;YAC9B,OAAO,EAAE,KAAK;YACd,WAAW,EAAE,+EAA+E;SAC7F,CAAC;KACH,CAAC;IAEF,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QACjD,MAAM,aAAa,CAAC;YAClB,IAAI,EAAE,QAAQ;YACd,OAAO,EAAE,IAAI;YACb,KAAK,EAAE,KAA+B;SACvC,CAAC,CAAC;IACL,CAAC"}
@@ -0,0 +1,20 @@
1
+ import { BaseCommand } from "../../base-command.js";
2
+ export default class DeployOta extends BaseCommand {
3
+ static description: string;
4
+ static examples: string[];
5
+ static flags: {
6
+ readonly channel: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
7
+ readonly note: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
8
+ readonly version: import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
9
+ readonly active: import("@oclif/core/interfaces").BooleanFlag<boolean>;
10
+ readonly required: import("@oclif/core/interfaces").BooleanFlag<boolean>;
11
+ readonly "skip-assets": import("@oclif/core/interfaces").BooleanFlag<boolean>;
12
+ readonly "skip-build": import("@oclif/core/interfaces").BooleanFlag<boolean>;
13
+ readonly "dry-run": import("@oclif/core/interfaces").BooleanFlag<boolean>;
14
+ readonly json: import("@oclif/core/interfaces").BooleanFlag<boolean>;
15
+ readonly verbose: import("@oclif/core/interfaces").BooleanFlag<boolean>;
16
+ readonly yes: import("@oclif/core/interfaces").BooleanFlag<boolean>;
17
+ };
18
+ run(): Promise<void>;
19
+ }
20
+ //# sourceMappingURL=ota.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ota.d.ts","sourceRoot":"","sources":["../../../src/commands/deploy/ota.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEpD,MAAM,CAAC,OAAO,OAAO,SAAU,SAAQ,WAAW;IAChD,OAAgB,WAAW,SACkD;IAE7E,OAAgB,QAAQ,WAItB;IAEF,OAAgB,KAAK;;;;;;;;;;;;MAAqB;IAEpC,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAQ3B"}
@@ -0,0 +1,20 @@
1
+ import { commonDeployFlags, executeDeploy } from "../../deploy/execute.js";
2
+ import { BaseCommand } from "../../base-command.js";
3
+ export default class DeployOta extends BaseCommand {
4
+ static description = "Publish a web bundle over the air. Does not change the installed binary.";
5
+ static examples = [
6
+ "<%= config.bin %> <%= command.id %> --channel staging",
7
+ "<%= config.bin %> <%= command.id %> -c production -v patch -n 'Fixes the invoice total'",
8
+ "<%= config.bin %> <%= command.id %> -c staging --dry-run",
9
+ ];
10
+ static flags = commonDeployFlags;
11
+ async run() {
12
+ const { flags } = await this.parse(DeployOta);
13
+ await executeDeploy({
14
+ kind: "ota",
15
+ command: this,
16
+ flags: flags,
17
+ });
18
+ }
19
+ }
20
+ //# sourceMappingURL=ota.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ota.js","sourceRoot":"","sources":["../../../src/commands/deploy/ota.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAoB,MAAM,yBAAyB,CAAC;AAC7F,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAEpD,MAAM,CAAC,OAAO,OAAO,SAAU,SAAQ,WAAW;IAChD,MAAM,CAAU,WAAW,GACzB,0EAA0E,CAAC;IAE7E,MAAM,CAAU,QAAQ,GAAG;QACzB,uDAAuD;QACvD,yFAAyF;QACzF,0DAA0D;KAC3D,CAAC;IAEF,MAAM,CAAU,KAAK,GAAG,iBAAiB,CAAC;IAE1C,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;QAC9C,MAAM,aAAa,CAAC;YAClB,IAAI,EAAE,KAAK;YACX,OAAO,EAAE,IAAI;YACb,KAAK,EAAE,KAA+B;SACvC,CAAC,CAAC;IACL,CAAC"}
@@ -0,0 +1,17 @@
1
+ import { BaseCommand } from "../base-command.js";
2
+ export default class Init extends BaseCommand {
3
+ static description: string;
4
+ static examples: string[];
5
+ static flags: {
6
+ link: import("@oclif/core/interfaces").BooleanFlag<boolean>;
7
+ force: import("@oclif/core/interfaces").BooleanFlag<boolean>;
8
+ };
9
+ run(): Promise<void>;
10
+ /** Detects which flavours the project actually has files for. */
11
+ private detectFlavours;
12
+ /** Reads `webDir` out of capacitor.config.* so the CLI zips the right folder. */
13
+ private detectWebDir;
14
+ private linkExisting;
15
+ private createNew;
16
+ }
17
+ //# sourceMappingURL=init.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAyBA,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD,MAAM,CAAC,OAAO,OAAO,IAAK,SAAQ,WAAW;IAC3C,OAAgB,WAAW,SAC8C;IAEzE,OAAgB,QAAQ,WAA+D;IAEvF,OAAgB,KAAK;;;MAWnB;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;IAwI1B,iEAAiE;IACjE,OAAO,CAAC,cAAc;IAatB,iFAAiF;IACjF,OAAO,CAAC,YAAY;YAYN,YAAY;YAqBZ,SAAS;CAiExB"}