@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.
- package/README.md +351 -0
- package/bin/dev.cmd +3 -0
- package/bin/dev.js +5 -0
- package/bin/run.cmd +3 -0
- package/bin/run.js +5 -0
- package/dist/base-command.d.ts +15 -0
- package/dist/base-command.d.ts.map +1 -0
- package/dist/base-command.js +61 -0
- package/dist/base-command.js.map +1 -0
- package/dist/commands/auth/login.d.ts +19 -0
- package/dist/commands/auth/login.d.ts.map +1 -0
- package/dist/commands/auth/login.js +74 -0
- package/dist/commands/auth/login.js.map +1 -0
- package/dist/commands/auth/logout.d.ts +6 -0
- package/dist/commands/auth/logout.d.ts.map +1 -0
- package/dist/commands/auth/logout.js +22 -0
- package/dist/commands/auth/logout.js.map +1 -0
- package/dist/commands/auth/whoami.d.ts +9 -0
- package/dist/commands/auth/whoami.d.ts.map +1 -0
- package/dist/commands/auth/whoami.js +77 -0
- package/dist/commands/auth/whoami.js.map +1 -0
- package/dist/commands/channel/list.d.ts +9 -0
- package/dist/commands/channel/list.d.ts.map +1 -0
- package/dist/commands/channel/list.js +47 -0
- package/dist/commands/channel/list.js.map +1 -0
- package/dist/commands/config/list.d.ts +9 -0
- package/dist/commands/config/list.d.ts.map +1 -0
- package/dist/commands/config/list.js +116 -0
- package/dist/commands/config/list.js.map +1 -0
- package/dist/commands/config/set.d.ts +11 -0
- package/dist/commands/config/set.d.ts.map +1 -0
- package/dist/commands/config/set.js +44 -0
- package/dist/commands/config/set.js.map +1 -0
- package/dist/commands/deploy/native.d.ts +23 -0
- package/dist/commands/deploy/native.d.ts.map +1 -0
- package/dist/commands/deploy/native.js +39 -0
- package/dist/commands/deploy/native.js.map +1 -0
- package/dist/commands/deploy/ota.d.ts +20 -0
- package/dist/commands/deploy/ota.d.ts.map +1 -0
- package/dist/commands/deploy/ota.js +20 -0
- package/dist/commands/deploy/ota.js.map +1 -0
- package/dist/commands/init.d.ts +17 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +232 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/version/bump.d.ts +13 -0
- package/dist/commands/version/bump.d.ts.map +1 -0
- package/dist/commands/version/bump.js +52 -0
- package/dist/commands/version/bump.js.map +1 -0
- package/dist/commands/version/sync.d.ts +12 -0
- package/dist/commands/version/sync.d.ts.map +1 -0
- package/dist/commands/version/sync.js +81 -0
- package/dist/commands/version/sync.js.map +1 -0
- package/dist/deploy/execute.d.ts +48 -0
- package/dist/deploy/execute.d.ts.map +1 -0
- package/dist/deploy/execute.js +280 -0
- package/dist/deploy/execute.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -0
- package/dist/pipeline/android.d.ts +37 -0
- package/dist/pipeline/android.d.ts.map +1 -0
- package/dist/pipeline/android.js +96 -0
- package/dist/pipeline/android.js.map +1 -0
- package/dist/pipeline/build.d.ts +69 -0
- package/dist/pipeline/build.d.ts.map +1 -0
- package/dist/pipeline/build.js +138 -0
- package/dist/pipeline/build.js.map +1 -0
- package/dist/pipeline/deploy.d.ts +74 -0
- package/dist/pipeline/deploy.d.ts.map +1 -0
- package/dist/pipeline/deploy.js +198 -0
- package/dist/pipeline/deploy.js.map +1 -0
- package/dist/pipeline/flavour.d.ts +66 -0
- package/dist/pipeline/flavour.d.ts.map +1 -0
- package/dist/pipeline/flavour.js +120 -0
- package/dist/pipeline/flavour.js.map +1 -0
- package/dist/pipeline/native-config.d.ts +43 -0
- package/dist/pipeline/native-config.d.ts.map +1 -0
- package/dist/pipeline/native-config.js +127 -0
- package/dist/pipeline/native-config.js.map +1 -0
- package/dist/pipeline/toolchain.d.ts +80 -0
- package/dist/pipeline/toolchain.d.ts.map +1 -0
- package/dist/pipeline/toolchain.js +146 -0
- package/dist/pipeline/toolchain.js.map +1 -0
- package/dist/pipeline/zip.d.ts +22 -0
- package/dist/pipeline/zip.d.ts.map +1 -0
- package/dist/pipeline/zip.js +188 -0
- package/dist/pipeline/zip.js.map +1 -0
- package/dist/services/cloud.d.ts +58 -0
- package/dist/services/cloud.d.ts.map +1 -0
- package/dist/services/cloud.js +89 -0
- package/dist/services/cloud.js.map +1 -0
- package/dist/utils/config.d.ts +52 -0
- package/dist/utils/config.d.ts.map +1 -0
- package/dist/utils/config.js +144 -0
- package/dist/utils/config.js.map +1 -0
- package/dist/utils/exec.d.ts +44 -0
- package/dist/utils/exec.d.ts.map +1 -0
- package/dist/utils/exec.js +136 -0
- package/dist/utils/exec.js.map +1 -0
- package/dist/utils/http.d.ts +37 -0
- package/dist/utils/http.d.ts.map +1 -0
- package/dist/utils/http.js +137 -0
- package/dist/utils/http.js.map +1 -0
- package/dist/utils/reporter.d.ts +48 -0
- package/dist/utils/reporter.d.ts.map +1 -0
- package/dist/utils/reporter.js +108 -0
- package/dist/utils/reporter.js.map +1 -0
- package/oclif.manifest.json +568 -0
- 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"}
|