@iyexin/mio-cli 0.1.3 → 0.1.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/constants.d.ts +2 -2
- package/dist/constants.js +2 -2
- package/dist/create.js +1 -1
- package/dist/create.js.map +1 -1
- package/dist/index.js +25 -0
- package/dist/index.js.map +1 -1
- package/dist/keystore-command.d.ts +17 -0
- package/dist/keystore-command.js +47 -0
- package/dist/keystore-command.js.map +1 -0
- package/package.json +3 -3
package/dist/constants.d.ts
CHANGED
|
@@ -7,10 +7,10 @@
|
|
|
7
7
|
*/
|
|
8
8
|
export declare const MIO_API_VERSION = "1.0.0";
|
|
9
9
|
/** Version stamped into generated manifests for traceability. */
|
|
10
|
-
export declare const MIO_CLI_VERSION = "0.1.
|
|
10
|
+
export declare const MIO_CLI_VERSION = "0.1.4";
|
|
11
11
|
/** Where release assets (templates, tool bundles) are published. */
|
|
12
12
|
export declare const MIO_RELEASE_BASE = "https://github.com/iYeXin/Mio/releases/download";
|
|
13
13
|
/** Packages published to npm under the @iyexin scope. */
|
|
14
14
|
export declare const MIO_API_PACKAGE = "@iyexin/mio-api";
|
|
15
15
|
/** Version range written into scaffolds; matches packages/api's version. */
|
|
16
|
-
export declare const MIO_API_PACKAGE_VERSION = "0.1.
|
|
16
|
+
export declare const MIO_API_PACKAGE_VERSION = "0.1.4";
|
package/dist/constants.js
CHANGED
|
@@ -7,11 +7,11 @@
|
|
|
7
7
|
*/
|
|
8
8
|
export const MIO_API_VERSION = "1.0.0";
|
|
9
9
|
/** Version stamped into generated manifests for traceability. */
|
|
10
|
-
export const MIO_CLI_VERSION = "0.1.
|
|
10
|
+
export const MIO_CLI_VERSION = "0.1.4";
|
|
11
11
|
/** Where release assets (templates, tool bundles) are published. */
|
|
12
12
|
export const MIO_RELEASE_BASE = "https://github.com/iYeXin/Mio/releases/download";
|
|
13
13
|
/** Packages published to npm under the @iyexin scope. */
|
|
14
14
|
export const MIO_API_PACKAGE = "@iyexin/mio-api";
|
|
15
15
|
/** Version range written into scaffolds; matches packages/api's version. */
|
|
16
|
-
export const MIO_API_PACKAGE_VERSION = "0.1.
|
|
16
|
+
export const MIO_API_PACKAGE_VERSION = "0.1.4";
|
|
17
17
|
//# sourceMappingURL=constants.js.map
|
package/dist/create.js
CHANGED
|
@@ -37,7 +37,7 @@ export async function createProject(options) {
|
|
|
37
37
|
if (config.android)
|
|
38
38
|
delete config.android.template;
|
|
39
39
|
await writeJson(configPath, config);
|
|
40
|
-
await writeFile(join(target, ".gitignore"), ["node_modules/", "dist/", "build/", ".mio
|
|
40
|
+
await writeFile(join(target, ".gitignore"), ["node_modules/", "dist/", "build/", ".mio/*.p12", "*.log", ""].join("\n"), "utf8");
|
|
41
41
|
console.log(`Created ${target}`);
|
|
42
42
|
console.log("");
|
|
43
43
|
console.log("Next:");
|
package/dist/create.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create.js","sourceRoot":"","sources":["../src/create.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7E,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AAC1E,OAAO,EACL,OAAO,EACP,aAAa,EACb,MAAM,EACN,QAAQ,EACR,eAAe,EACf,SAAS,GACV,MAAM,cAAc,CAAC;AAMtB,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,OAAsB;IACxD,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACvC,IAAI,MAAM,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC;QAChC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,8BAA8B,MAAM,EAAE,CAAC,CAAC;QACjF,IAAI,CAAC,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvC,MAAM,IAAI,KAAK,CAAC,kCAAkC,MAAM,EAAE,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC;QACnC,IAAI,CAAC,OAAO,EAAE,WAAW,EAAE,KAAK,CAAC;QACjC,IAAI,CAAC,QAAQ,EAAE,WAAW,EAAE,KAAK,CAAC;KACnC,CAAC,CAAC;IAEH,MAAM,aAAa,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IACtC,MAAM,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAEtD,6EAA6E;IAC7E,2DAA2D;IAC3D,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IACjD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC,CAIzD,CAAC;IACF,MAAM,WAAW,GAAG,eAAe,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;IACtD,GAAG,CAAC,IAAI,GAAG,WAAW,CAAC;IACvB,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC;IACnB,GAAG,CAAC,YAAY,GAAG;QACjB,GAAG,CAAC,GAAG,CAAC,YAAY,IAAI,EAAE,CAAC;QAC3B,CAAC,eAAe,CAAC,EAAE,IAAI,uBAAuB,EAAE;KACjD,CAAC;IACF,MAAM,SAAS,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;IAElC,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;IACnD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,CAG3D,CAAC;IACF,MAAM,CAAC,GAAG,CAAC,EAAE,GAAG,WAAW,WAAW,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC;IAC9D,MAAM,CAAC,GAAG,CAAC,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;IACnC,IAAI,MAAM,CAAC,OAAO;QAAE,OAAO,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC;IACnD,MAAM,SAAS,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IAEpC,MAAM,SAAS,CACb,IAAI,CAAC,MAAM,EAAE,YAAY,CAAC,EAC1B,CAAC,eAAe,EAAE,OAAO,EAAE,QAAQ,EAAE,
|
|
1
|
+
{"version":3,"file":"create.js","sourceRoot":"","sources":["../src/create.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7E,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AAC1E,OAAO,EACL,OAAO,EACP,aAAa,EACb,MAAM,EACN,QAAQ,EACR,eAAe,EACf,SAAS,GACV,MAAM,cAAc,CAAC;AAMtB,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,OAAsB;IACxD,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACvC,IAAI,MAAM,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,CAAC;QAChC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,8BAA8B,MAAM,EAAE,CAAC,CAAC;QACjF,IAAI,CAAC,MAAM,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvC,MAAM,IAAI,KAAK,CAAC,kCAAkC,MAAM,EAAE,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,aAAa,CAAC;QACnC,IAAI,CAAC,OAAO,EAAE,WAAW,EAAE,KAAK,CAAC;QACjC,IAAI,CAAC,QAAQ,EAAE,WAAW,EAAE,KAAK,CAAC;KACnC,CAAC,CAAC;IAEH,MAAM,aAAa,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IACtC,MAAM,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAEtD,6EAA6E;IAC7E,2DAA2D;IAC3D,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IACjD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC,CAIzD,CAAC;IACF,MAAM,WAAW,GAAG,eAAe,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;IACtD,GAAG,CAAC,IAAI,GAAG,WAAW,CAAC;IACvB,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC;IACnB,GAAG,CAAC,YAAY,GAAG;QACjB,GAAG,CAAC,GAAG,CAAC,YAAY,IAAI,EAAE,CAAC;QAC3B,CAAC,eAAe,CAAC,EAAE,IAAI,uBAAuB,EAAE;KACjD,CAAC;IACF,MAAM,SAAS,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;IAElC,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC;IACnD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,CAG3D,CAAC;IACF,MAAM,CAAC,GAAG,CAAC,EAAE,GAAG,WAAW,WAAW,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,CAAC;IAC9D,MAAM,CAAC,GAAG,CAAC,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;IACnC,IAAI,MAAM,CAAC,OAAO;QAAE,OAAO,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC;IACnD,MAAM,SAAS,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;IAEpC,MAAM,SAAS,CACb,IAAI,CAAC,MAAM,EAAE,YAAY,CAAC,EAC1B,CAAC,eAAe,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAC1E,MAAM,CACP,CAAC;IAEF,OAAO,CAAC,GAAG,CAAC,WAAW,MAAM,EAAE,CAAC,CAAC;IACjC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACrB,OAAO,CAAC,GAAG,CAAC,QAAQ,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IACxC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;IAC7B,OAAO,CAAC,GAAG,CAAC,8CAA8C,CAAC,CAAC;AAC9D,CAAC;AAED,KAAK,UAAU,aAAa,CAAC,UAAoB;IAC/C,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,IAAI,MAAM,MAAM,CAAC,SAAS,CAAC;YAAE,OAAO,SAAS,CAAC;IAChD,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,mCAAmC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC9E,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -7,6 +7,7 @@ import { buildAndroid } from "./build-android.js";
|
|
|
7
7
|
import { buildWindows } from "./build-windows.js";
|
|
8
8
|
import { dev } from "./dev.js";
|
|
9
9
|
import { doctor } from "./doctor.js";
|
|
10
|
+
import { keystoreCommand } from "./keystore-command.js";
|
|
10
11
|
import { exists } from "./project.js";
|
|
11
12
|
const HELP = `Mio — lightweight cross-platform app framework
|
|
12
13
|
|
|
@@ -14,6 +15,7 @@ Usage:
|
|
|
14
15
|
mio create [target]
|
|
15
16
|
mio build [--platform android|windows] [--skip-web] [--template <path>] [--config mio.config.json]
|
|
16
17
|
mio dev --platform android|windows [--no-install] [--template <path>]
|
|
18
|
+
mio keystore [--out <path>] [--alias <name>] [--dname <dn>] [--days <n>] [--force]
|
|
17
19
|
mio doctor
|
|
18
20
|
|
|
19
21
|
Examples:
|
|
@@ -34,6 +36,12 @@ export async function main(argv = process.argv.slice(2)) {
|
|
|
34
36
|
config: { type: "string" },
|
|
35
37
|
"skip-web": { type: "boolean" },
|
|
36
38
|
"no-install": { type: "boolean" },
|
|
39
|
+
out: { type: "string" },
|
|
40
|
+
alias: { type: "string" },
|
|
41
|
+
dname: { type: "string" },
|
|
42
|
+
days: { type: "string" },
|
|
43
|
+
force: { type: "boolean" },
|
|
44
|
+
"password-env": { type: "string" },
|
|
37
45
|
},
|
|
38
46
|
});
|
|
39
47
|
if (values.help) {
|
|
@@ -83,6 +91,23 @@ export async function main(argv = process.argv.slice(2)) {
|
|
|
83
91
|
await dev({ loaded, platform, install: !values["no-install"], template: values.template });
|
|
84
92
|
return;
|
|
85
93
|
}
|
|
94
|
+
case "keystore": {
|
|
95
|
+
const loaded = await loadConfig(process.cwd(), values.config);
|
|
96
|
+
const days = values.days ? Number.parseInt(values.days, 10) : undefined;
|
|
97
|
+
if (days !== undefined && (!Number.isFinite(days) || days <= 0)) {
|
|
98
|
+
throw new Error(`Invalid --days: ${values.days}`);
|
|
99
|
+
}
|
|
100
|
+
await keystoreCommand({
|
|
101
|
+
loaded,
|
|
102
|
+
out: values.out,
|
|
103
|
+
alias: values.alias,
|
|
104
|
+
distinguishedName: values.dname,
|
|
105
|
+
validityDays: days,
|
|
106
|
+
force: values.force ?? false,
|
|
107
|
+
passwordEnv: values["password-env"],
|
|
108
|
+
});
|
|
109
|
+
return;
|
|
110
|
+
}
|
|
86
111
|
case "doctor": {
|
|
87
112
|
const hasConfig = await exists(join(process.cwd(), values.config ?? "mio.config.json"));
|
|
88
113
|
await doctor(hasConfig ? await loadConfig(process.cwd(), values.config) : undefined);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,GAAG,EAAE,MAAM,UAAU,CAAC;AAC/B,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAEtC,MAAM,IAAI,GAAG
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { LoadedConfig } from "./config.js";
|
|
2
|
+
export interface KeystoreCommandOptions {
|
|
3
|
+
loaded: LoadedConfig;
|
|
4
|
+
/** Output path, relative to the project. Defaults to .mio/release.p12 */
|
|
5
|
+
out?: string;
|
|
6
|
+
alias?: string;
|
|
7
|
+
distinguishedName?: string;
|
|
8
|
+
validityDays?: number;
|
|
9
|
+
force?: boolean;
|
|
10
|
+
/** Environment variable holding the password. Defaults to MIO_KS_PASS. */
|
|
11
|
+
passwordEnv?: string;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Creates a release keystore with the keytool that ships in Mio's tool bundle,
|
|
15
|
+
* so a machine without a JDK can still sign its own builds.
|
|
16
|
+
*/
|
|
17
|
+
export declare function keystoreCommand(options: KeystoreCommandOptions): Promise<void>;
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { resolve } from "node:path";
|
|
2
|
+
import { ensureAndroidTools, generateKeystore } from "@iyexin/mio-android-tools";
|
|
3
|
+
import { MIO_CLI_VERSION, MIO_RELEASE_BASE } from "./constants.js";
|
|
4
|
+
/**
|
|
5
|
+
* Creates a release keystore with the keytool that ships in Mio's tool bundle,
|
|
6
|
+
* so a machine without a JDK can still sign its own builds.
|
|
7
|
+
*/
|
|
8
|
+
export async function keystoreCommand(options) {
|
|
9
|
+
const passwordEnv = options.passwordEnv ?? "MIO_KS_PASS";
|
|
10
|
+
if (!process.env[passwordEnv]) {
|
|
11
|
+
throw new Error(`Set ${passwordEnv} before generating a keystore, e.g.\n` +
|
|
12
|
+
` $env:${passwordEnv} = "<password>" (PowerShell)\n` +
|
|
13
|
+
` export ${passwordEnv}=<password> (bash)`);
|
|
14
|
+
}
|
|
15
|
+
const resolved = await ensureAndroidTools({
|
|
16
|
+
manifest: process.env.MIO_TOOLS_MANIFEST_URL ??
|
|
17
|
+
`${MIO_RELEASE_BASE}/v${MIO_CLI_VERSION}/mio-tools.json`,
|
|
18
|
+
allowDownload: process.env.MIO_NO_TOOL_DOWNLOAD !== "1",
|
|
19
|
+
cacheDir: process.env.MIO_TOOLS_CACHE_DIR,
|
|
20
|
+
log: (message) => console.error(`[tools] ${message}`),
|
|
21
|
+
});
|
|
22
|
+
if (!resolved.tools.keytool) {
|
|
23
|
+
throw new Error("keytool is not available in the resolved toolchain");
|
|
24
|
+
}
|
|
25
|
+
const out = resolve(options.loaded.projectDir, options.out ?? ".mio/release.p12");
|
|
26
|
+
const alias = options.alias ?? "release";
|
|
27
|
+
const result = await generateKeystore(resolved.tools, {
|
|
28
|
+
path: out,
|
|
29
|
+
alias,
|
|
30
|
+
passwordEnv,
|
|
31
|
+
distinguishedName: options.distinguishedName,
|
|
32
|
+
validityDays: options.validityDays,
|
|
33
|
+
force: options.force,
|
|
34
|
+
});
|
|
35
|
+
console.log(`Keystore: ${result.path}`);
|
|
36
|
+
console.log(`Alias: ${alias}`);
|
|
37
|
+
console.log("");
|
|
38
|
+
console.log("Add this to mio.config.json (the password stays in the environment):");
|
|
39
|
+
console.log(JSON.stringify({
|
|
40
|
+
android: {
|
|
41
|
+
keystore: result.path.replace(options.loaded.projectDir, "").replace(/^[\\/]/, "").replaceAll("\\", "/"),
|
|
42
|
+
alias,
|
|
43
|
+
storePasswordEnv: passwordEnv,
|
|
44
|
+
},
|
|
45
|
+
}, null, 2));
|
|
46
|
+
}
|
|
47
|
+
//# sourceMappingURL=keystore-command.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"keystore-command.js","sourceRoot":"","sources":["../src/keystore-command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AACjF,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAenE;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,OAA+B;IACnE,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,IAAI,aAAa,CAAC;IACzD,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CACb,OAAO,WAAW,uCAAuC;YACvD,UAAU,WAAW,kCAAkC;YACvD,YAAY,WAAW,wBAAwB,CAClD,CAAC;IACJ,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,kBAAkB,CAAC;QACxC,QAAQ,EACN,OAAO,CAAC,GAAG,CAAC,sBAAsB;YAClC,GAAG,gBAAgB,KAAK,eAAe,iBAAiB;QAC1D,aAAa,EAAE,OAAO,CAAC,GAAG,CAAC,oBAAoB,KAAK,GAAG;QACvD,QAAQ,EAAE,OAAO,CAAC,GAAG,CAAC,mBAAmB;QACzC,GAAG,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC,WAAW,OAAO,EAAE,CAAC;KACtD,CAAC,CAAC;IAEH,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;IACxE,CAAC;IAED,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE,OAAO,CAAC,GAAG,IAAI,kBAAkB,CAAC,CAAC;IAClF,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,SAAS,CAAC;IACzC,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,QAAQ,CAAC,KAAK,EAAE;QACpD,IAAI,EAAE,GAAG;QACT,KAAK;QACL,WAAW;QACX,iBAAiB,EAAE,OAAO,CAAC,iBAAiB;QAC5C,YAAY,EAAE,OAAO,CAAC,YAAY;QAClC,KAAK,EAAE,OAAO,CAAC,KAAK;KACrB,CAAC,CAAC;IAEH,OAAO,CAAC,GAAG,CAAC,aAAa,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;IACxC,OAAO,CAAC,GAAG,CAAC,aAAa,KAAK,EAAE,CAAC,CAAC;IAClC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,sEAAsE,CAAC,CAAC;IACpF,OAAO,CAAC,GAAG,CACT,IAAI,CAAC,SAAS,CACZ;QACE,OAAO,EAAE;YACP,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,IAAI,EAAE,GAAG,CAAC;YACxG,KAAK;YACL,gBAAgB,EAAE,WAAW;SAC9B;KACF,EACD,IAAI,EACJ,CAAC,CACF,CACF,CAAC;AACJ,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@iyexin/mio-cli",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.4",
|
|
4
4
|
"private": false,
|
|
5
5
|
"type": "module",
|
|
6
6
|
"description": "Mio application CLI",
|
|
@@ -20,8 +20,8 @@
|
|
|
20
20
|
"dependencies": {
|
|
21
21
|
"@electron/asar": "^4.3.1",
|
|
22
22
|
"undici": "^7.16.0",
|
|
23
|
-
"@iyexin/mio-android-tools": "0.1.
|
|
24
|
-
"@iyexin/mio-api": "0.1.
|
|
23
|
+
"@iyexin/mio-android-tools": "0.1.4",
|
|
24
|
+
"@iyexin/mio-api": "0.1.4"
|
|
25
25
|
},
|
|
26
26
|
"engines": {
|
|
27
27
|
"node": ">=22.12"
|