@simplysm/sd-cli 7.0.80 → 7.0.145

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 (37) hide show
  1. package/dist/bin/sd-cli.mjs +36 -6
  2. package/dist/build-tool/SdCliCordova.d.ts +4 -4
  3. package/dist/build-tool/SdCliCordova.mjs +108 -107
  4. package/dist/build-tool/SdCliElectron.d.ts +9 -0
  5. package/dist/build-tool/SdCliElectron.mjs +66 -0
  6. package/dist/build-tool/SdCliGithubApi.d.ts +14 -0
  7. package/dist/build-tool/SdCliGithubApi.mjs +96 -0
  8. package/dist/builder/SdCliClientBuilder.mjs +151 -65
  9. package/dist/builder/SdCliJsLibBuilder.mjs +4 -4
  10. package/dist/builder/SdCliServerBuilder.mjs +6 -7
  11. package/dist/builder/SdCliTsLibBuilder.mjs +4 -4
  12. package/dist/commons.d.ts +38 -11
  13. package/dist/entry-points/SdCliLocalUpdate.mjs +3 -3
  14. package/dist/entry-points/SdCliWorkspace.mjs +48 -6
  15. package/dist/index.d.ts +2 -0
  16. package/dist/index.mjs +3 -1
  17. package/dist/ng-tools/babel/SdCliBbFileMetadata.mjs +2 -2
  18. package/dist/ng-tools/babel/SdCliBbRootMetadata.d.ts +1 -0
  19. package/dist/ng-tools/babel/SdCliBbRootMetadata.mjs +29 -3
  20. package/dist/packages/SdCliPackage.mjs +13 -2
  21. package/package.json +13 -7
  22. package/src/bin/sd-cli.ts +46 -7
  23. package/src/build-tool/SdCliCordova.ts +133 -141
  24. package/src/build-tool/SdCliElectron.ts +76 -0
  25. package/src/build-tool/SdCliGithubApi.ts +117 -0
  26. package/src/builder/SdCliClientBuilder.ts +165 -65
  27. package/src/builder/SdCliJsLibBuilder.ts +3 -3
  28. package/src/builder/SdCliServerBuilder.ts +6 -7
  29. package/src/builder/SdCliTsLibBuilder.ts +3 -3
  30. package/src/commons.ts +35 -11
  31. package/src/entry-points/SdCliLocalUpdate.ts +2 -2
  32. package/src/entry-points/SdCliWorkspace.ts +47 -6
  33. package/src/index.ts +2 -0
  34. package/src/ng-tools/babel/SdCliBbFileMetadata.ts +1 -1
  35. package/src/ng-tools/babel/SdCliBbRootMetadata.ts +30 -2
  36. package/src/packages/SdCliPackage.ts +18 -1
  37. package/tsconfig.json +3 -0
@@ -8,6 +8,7 @@ import { SdCliNpm } from "../entry-points/SdCliNpm";
8
8
  import { SdCliPrepare } from "../entry-points/SdCliPrepare";
9
9
  import { SdCliFileCrypto } from "../entry-points/SdCliFileCrypto";
10
10
  import { SdCliCordova } from "../build-tool/SdCliCordova";
11
+ import { SdCliElectron } from "../build-tool/SdCliElectron";
11
12
  Error.stackTraceLimit = Infinity;
12
13
  const argv = yargs(hideBin(process.argv))
13
14
  .version(false)
@@ -46,16 +47,38 @@ const argv = yargs(hideBin(process.argv))
46
47
  describe: "수행할 패키지 설정"
47
48
  }
48
49
  }))
49
- .command("run-device <cordovaPath> <platform> <url>", "변경감지중인 플랫폼을 디바이스에 앱 형태로 띄웁니다.", (cmd) => cmd
50
- .positional("cordovaPath", {
50
+ .command("run-electron <package> <url>", "변경감지중인 플랫폼을 ELECTRON 앱 형태로 띄웁니다.", (cmd) => cmd
51
+ .positional("package", {
51
52
  type: "string",
52
- describe: "CORDOVA 프로젝트 경로",
53
+ describe: "패키지명",
53
54
  demandOption: true
54
55
  })
56
+ .positional("url", {
57
+ type: "string",
58
+ describe: "Webview로 오픈할 URL",
59
+ demandOption: true
60
+ })
61
+ .options({
62
+ config: {
63
+ type: "string",
64
+ describe: "simplysm.json 파일 경로"
65
+ },
66
+ options: {
67
+ type: "string",
68
+ array: true,
69
+ describe: "옵션 설정 (설정파일에서 @로 시작하는 부분)"
70
+ }
71
+ }))
72
+ .command("run-cordova <platform> <package> <url>", "변경감지중인 플랫폼을 코도바 디바이스에 앱 형태로 띄웁니다.", (cmd) => cmd
55
73
  .positional("platform", {
56
74
  type: "string",
57
75
  describe: "빌드 플랫폼(android,...)",
58
76
  demandOption: true
77
+ })
78
+ .positional("package", {
79
+ type: "string",
80
+ describe: "패키지명",
81
+ demandOption: true
59
82
  })
60
83
  .positional("url", {
61
84
  type: "string",
@@ -149,8 +172,15 @@ const logger = Logger.get(["simplysm", "sd-cli", "bin", "sd-cli"]);
149
172
  pkgs: argv.packages ?? []
150
173
  });
151
174
  }
152
- else if (argv._[0] === "run-device") {
153
- await SdCliCordova.runWebviewOnDeviceAsync(argv.cordovaPath, argv.platform, argv.url);
175
+ else if (argv._[0] === "run-electron") {
176
+ await new SdCliElectron(process.cwd())
177
+ .runWebviewOnDeviceAsync(argv.package, argv.url, {
178
+ confFileRelPath: argv.config ?? "simplysm.json",
179
+ optNames: argv.options ?? []
180
+ });
181
+ }
182
+ else if (argv._[0] === "run-cordova") {
183
+ await SdCliCordova.runWebviewOnDeviceAsync(process.cwd(), argv.platform, argv.package, argv.url);
154
184
  }
155
185
  else if (argv._[0] === "build") {
156
186
  await new SdCliWorkspace(process.cwd())
@@ -186,4 +216,4 @@ const logger = Logger.get(["simplysm", "sd-cli", "bin", "sd-cli"]);
186
216
  logger.error(err);
187
217
  process.exit(1);
188
218
  });
189
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2QtY2xpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2Jpbi9zZC1jbGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUVBLE9BQU8sS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUMxQixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxNQUFNLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUUxRCxLQUFLLENBQUMsZUFBZSxHQUFHLFFBQVEsQ0FBQztBQUVqQyxNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztLQUN0QyxPQUFPLENBQUMsS0FBSyxDQUFDO0tBQ2QsSUFBSSxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUM7S0FDbkIsS0FBSyxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUM7S0FDbEIsT0FBTyxDQUFDO0lBQ1AsS0FBSyxFQUFFO1FBQ0wsSUFBSSxFQUFFLFNBQVM7UUFDZixRQUFRLEVBQUUsb0JBQW9CO1FBQzlCLE9BQU8sRUFBRSxLQUFLO0tBQ2Y7Q0FDRixDQUFDO0tBQ0QsT0FBTyxDQUNOLFNBQVMsRUFDVCxXQUFXLEVBQ1gsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQzVCO0tB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
219
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2QtY2xpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2Jpbi9zZC1jbGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUVBLE9BQU8sS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUMxQixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxNQUFNLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3BFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFFNUQsS0FBSyxDQUFDLGVBQWUsR0FBRyxRQUFRLENBQUM7QUFFakMsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7S0FDdEMsT0FBTyxDQUFDLEtBQUssQ0FBQztLQUNkLElBQUksQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDO0tBQ25CLEtBQUssQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDO0tBQ2xCLE9BQU8sQ0FBQztJQUNQLEtBQUssRUFBRTtRQUNMLElBQUksRUFBRSxTQUFTO1FBQ2YsUUFBUSxFQUFFLG9CQUFvQjtRQUM5QixPQUFPLEVBQUUsS0FBSztLQUNmO0NBQ0YsQ0FBQztLQUNELE9BQU8sQ0FDTixTQUFTLEVBQ1QsV0FBVyxFQUNYLENBQUMsR0FBRyxFQUFFLEVBQUUs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
@@ -1,4 +1,4 @@
1
- import { ISdCliClientPackageCordovaConfig, TSdCliCordovaPlatform } from "../commons";
1
+ import { ISdCliClientBuilderCordovaConfig } from "../commons";
2
2
  import { Logger } from "@simplysm/sd-core-node";
3
3
  export declare class SdCliCordova {
4
4
  private readonly _rootPath;
@@ -7,10 +7,10 @@ export declare class SdCliCordova {
7
7
  private readonly _npmConfig;
8
8
  readonly cordovaPath: string;
9
9
  private readonly _binPath;
10
- get platforms(): TSdCliCordovaPlatform[];
11
- constructor(_rootPath: string, _config: ISdCliClientPackageCordovaConfig);
10
+ get platforms(): ("browser" | "android")[];
11
+ constructor(_rootPath: string, _config: ISdCliClientBuilderCordovaConfig);
12
12
  private _execAsync;
13
13
  initializeAsync(): Promise<void>;
14
14
  buildAsync(outPath: string): Promise<void>;
15
- static runWebviewOnDeviceAsync(cordovaPath: string, platform: TSdCliCordovaPlatform, url: string): Promise<void>;
15
+ static runWebviewOnDeviceAsync(rootPath: string, platform: "browser" | "android", pkgName: string, url: string): Promise<void>;
16
16
  }
@@ -1,7 +1,7 @@
1
1
  import * as path from "path";
2
2
  import { FsUtil, Logger, SdProcess } from "@simplysm/sd-core-node";
3
- import { NotImplementError } from "@simplysm/sd-core-common";
4
3
  import JSZip from "jszip";
4
+ import xml2js from "xml2js";
5
5
  export class SdCliCordova {
6
6
  constructor(_rootPath, _config) {
7
7
  this._rootPath = _rootPath;
@@ -12,7 +12,10 @@ export class SdCliCordova {
12
12
  this._logger = Logger.get(["simplysm", "sd-cli", this.constructor.name, this._npmConfig.name]);
13
13
  }
14
14
  get platforms() {
15
- return this._config.platforms;
15
+ return [
16
+ ...this._config.target?.browser ? ["browser"] : [],
17
+ ...this._config.target?.android ? ["android"] : []
18
+ ];
16
19
  }
17
20
  async _execAsync(cmd, cwd) {
18
21
  this._logger.debug(cmd);
@@ -39,119 +42,125 @@ export class SdCliCordova {
39
42
  await this._execAsync(`${this._binPath} platform add ${platform}`, this.cordovaPath);
40
43
  }
41
44
  }
45
+ // 설치 미빌드 플랫폼 삭제
46
+ for (const alreadyPlatform of alreadyPlatforms) {
47
+ if (this._config.target?.[alreadyPlatform] == null) {
48
+ await this._execAsync(`${this._binPath} platform remove ${alreadyPlatform}`, this.cordovaPath);
49
+ }
50
+ }
42
51
  // 미설치 플러그인들 설치
43
- if (this._config.plugins) {
44
- const pluginsFetch = FsUtil.exists(path.resolve(this.cordovaPath, "plugins/fetch.json"))
45
- ? await FsUtil.readJsonAsync(path.resolve(this.cordovaPath, "plugins/fetch.json"))
46
- : undefined;
47
- const alreadyPlugins = pluginsFetch != undefined
48
- ? Object.values(pluginsFetch)
49
- .map((item) => (item.source.id !== undefined ? item.source.id.replace(/@.*$/, "") : item.source.url))
50
- : [];
51
- for (const plugin of this._config.plugins.distinct()) {
52
- if (!alreadyPlugins.includes(plugin)) {
53
- await this._execAsync(`${this._binPath} plugin add ${plugin}`, this.cordovaPath);
54
- }
52
+ const pluginsFetch = FsUtil.exists(path.resolve(this.cordovaPath, "plugins/fetch.json"))
53
+ ? await FsUtil.readJsonAsync(path.resolve(this.cordovaPath, "plugins/fetch.json"))
54
+ : undefined;
55
+ const alreadyPlugins = pluginsFetch != undefined
56
+ ? Object.values(pluginsFetch)
57
+ .map((item) => (item.source.id !== undefined ? item.source.id.replace(/@.*$/, "") : item.source.url))
58
+ : [];
59
+ for (const plugin of this._config.plugins?.distinct() ?? []) {
60
+ if (!alreadyPlugins.includes(plugin)) {
61
+ await this._execAsync(`${this._binPath} plugin add ${plugin}`, this.cordovaPath);
62
+ }
63
+ }
64
+ // 설치된 미사용 플러그인 삭제
65
+ for (const alreadyPlugin of alreadyPlugins) {
66
+ if (!(this._config.plugins?.distinct() ?? []).includes(alreadyPlugin)) {
67
+ await this._execAsync(`${this._binPath} plugin remove ${alreadyPlugin}`, this.cordovaPath);
55
68
  }
56
69
  }
70
+ // ANDROID SIGN 파일 복사
71
+ if (this._config.target?.android?.sign) {
72
+ await FsUtil.copyAsync(path.resolve(this._rootPath, this._config.target.android.sign.keystore), path.resolve(this.cordovaPath, "android.keystore"));
73
+ }
74
+ else {
75
+ await FsUtil.removeAsync(path.resolve(this.cordovaPath, "android.keystore"));
76
+ }
77
+ // 빌드 옵션 파일 생성
78
+ await FsUtil.writeJsonAsync(path.resolve(this.cordovaPath, "build.json"), {
79
+ ...this._config.target?.android ? {
80
+ android: {
81
+ release: {
82
+ packageType: this._config.target.android.bundle ? "bundle" : "apk",
83
+ ...this._config.target.android.sign ? {
84
+ keystore: path.resolve(this.cordovaPath, "android.keystore"),
85
+ storePassword: this._config.target.android.sign.storePassword,
86
+ alias: this._config.target.android.sign.alias,
87
+ password: this._config.target.android.sign.password,
88
+ keystoreType: this._config.target.android.sign.keystoreType
89
+ } : {}
90
+ }
91
+ }
92
+ } : {}
93
+ });
57
94
  // ICON 파일 복사
58
95
  if (this._config.icon !== undefined) {
59
- await FsUtil.copyAsync(path.resolve(this._rootPath, this._config.icon), path.resolve(this.cordovaPath, "res", "icon", "icon.png"));
96
+ await FsUtil.copyAsync(path.resolve(this._rootPath, this._config.icon), path.resolve(this.cordovaPath, "res", "icon.png"));
60
97
  }
61
- // CONFIG
98
+ else {
99
+ await FsUtil.removeAsync(path.resolve(this.cordovaPath, "res", "icon.png"));
100
+ }
101
+ // CONFIG: 초기값 백업
62
102
  const configFilePath = path.resolve(this.cordovaPath, "config.xml");
63
- let configFileContent = await FsUtil.readFileAsync(configFilePath);
103
+ const configBackFilePath = path.resolve(this.cordovaPath, "config.xml.bak");
104
+ if (!FsUtil.exists(configBackFilePath)) {
105
+ await FsUtil.copyAsync(configFilePath, configBackFilePath);
106
+ }
107
+ // CONFIG: 초기값 읽기
108
+ const configFileContent = await FsUtil.readFileAsync(configBackFilePath);
109
+ const configXml = await xml2js.parseStringPromise(configFileContent);
64
110
  // CONFIG: 버전 설정
65
- configFileContent = configFileContent.replace(/version="[^"]*"/g, `version="${this._npmConfig.version}"`);
111
+ configXml.widget.$.version = this._npmConfig.version;
66
112
  // CONFIG: ICON 설정
67
- if (this._config.icon !== undefined && !configFileContent.includes("<icon")) {
68
- configFileContent = configFileContent.replace("</widget>", " <icon src=\"res/icon/icon.png\" />\r\n</widget>");
113
+ if (this._config.icon !== undefined) {
114
+ configXml["widget"]["icon"] = [{ "$": { "src": "res/icon.png" } }];
69
115
  }
116
+ // CONFIG: 접근허용 세팅
117
+ configXml["widget"]["allow-navigation"] = [{ "$": { "href": "*://*/*" } }];
70
118
  // CONFIG: ANDROID usesCleartextTraffic 설정
71
- if (this._config.platforms.includes("android")) {
72
- if (!configFileContent.includes("xmlns:android=\"http://schemas.android.com/apk/res/android\"")) {
73
- configFileContent = configFileContent.replace("xmlns=\"http://www.w3.org/ns/widgets\"", `xmlns="http://www.w3.org/ns/widgets" xmlns:android="http://schemas.android.com/apk/res/android"`);
74
- }
75
- if (!configFileContent.includes("application android:usesCleartextTraffic=\"true\" />")) {
76
- if (configFileContent.includes("<platform name=\"android\">")) {
77
- configFileContent = configFileContent.replace("<platform name=\"android\">", `<platform name="android">
78
- <edit-config file="app/src/main/AndroidManifest.xml" mode="merge" target="/manifest/application">
79
- <application android:usesCleartextTraffic="true" />
80
- </edit-config>`);
81
- }
82
- else {
83
- configFileContent = configFileContent.replace("<content src=\"index.html\" />", `<content src="index.html" />
84
- <platform name="android">
85
- <edit-config file="app/src/main/AndroidManifest.xml" mode="merge" target="/manifest/application">
86
- <application android:usesCleartextTraffic="true" />
87
- </edit-config>
88
- </platform>`);
89
- }
90
- }
119
+ if (this._config.target?.android) {
120
+ configXml.widget.$["xmlns:android"] = "http://schemas.android.com/apk/res/android";
121
+ configXml["widget"]["platform"] = configXml["widget"]["platform"] ?? [];
122
+ configXml["widget"]["platform"].push({
123
+ "$": {
124
+ "name": "android"
125
+ },
126
+ "edit-config": [{
127
+ "$": {
128
+ "file": "app/src/main/AndroidManifest.xml",
129
+ "mode": "merge",
130
+ "target": "/manifest/application"
131
+ },
132
+ "application": [{
133
+ "android:usesCleartextTraffic": "true"
134
+ }]
135
+ }]
136
+ });
91
137
  }
92
- // CONFIG: 파일쓰기
93
- await FsUtil.writeFileAsync(configFilePath, configFileContent);
138
+ // CONFIG: 파일 새로 쓰기
139
+ const configResultContent = new xml2js.Builder().buildObject(configXml);
140
+ await FsUtil.writeFileAsync(configFilePath, configResultContent);
141
+ // 각 플랫폼 www 준비
142
+ await this._execAsync(`${this._binPath} prepare`, this.cordovaPath);
94
143
  }
95
144
  async buildAsync(outPath) {
96
- const packageType = this._config.buildOption?.bundle ? "bundle" : "apk";
97
- // ANDROID 서명 처리
98
- if (this._config.buildOption?.sign?.android) {
99
- await FsUtil.copyAsync(path.resolve(this._rootPath, this._config.buildOption.sign.android.keystore), path.resolve(this.cordovaPath, path.basename(this._config.buildOption.sign.android.keystore)));
100
- await FsUtil.writeJsonAsync(path.resolve(this.cordovaPath, "build.json"), {
101
- android: {
102
- release: {
103
- keystore: path.basename(this._config.buildOption.sign.android.keystore),
104
- storePassword: this._config.buildOption.sign.android.storePassword,
105
- alias: this._config.buildOption.sign.android.alias,
106
- password: this._config.buildOption.sign.android.password,
107
- keystoreType: this._config.buildOption.sign.android.keystoreType,
108
- packageType
109
- }
110
- }
111
- });
112
- }
113
- // CONFIG
114
- const configFilePath = path.resolve(this.cordovaPath, "config.xml");
115
- let configFileContent = await FsUtil.readFileAsync(configFilePath);
116
- // CONFIG: 접근허용 일단 모두 지우기
117
- configFileContent = configFileContent.replace(/ {4}<allow-navigation href="[^"]*" \/>\n/g, "");
118
- // CONFIG: 접근허용 등록
119
- configFileContent = configFileContent.replace("</widget>", ` <allow-navigation href="*://*/*" />\n</widget>`);
120
- // CONFIG: 파일쓰기
121
- await FsUtil.writeFileAsync(configFilePath, configFileContent);
122
145
  // 실행
123
- const buildType = this._config.buildOption?.debug ? "debug" : "release";
146
+ const buildType = this._config.debug ? "debug" : "release";
124
147
  for (const platform of this.platforms) {
125
- await this._execAsync(`${this._binPath} build ${platform} --${buildType} --packageType=${packageType}`, this.cordovaPath);
148
+ await this._execAsync(`${this._binPath} build ${platform} --${buildType}`, this.cordovaPath);
126
149
  }
127
- // 결과물 복사
128
- for (const platform of this.platforms) {
129
- if (platform === "android") {
130
- const targetOutPath = path.resolve(outPath, platform);
131
- const apkFileName = this._config.buildOption?.sign?.android ? `app-${buildType}.apk` : `app-${buildType}-unsigned.apk`;
132
- const distApkFileName = path.basename(`${this._config.appName}${this._config.buildOption?.sign?.android ? "" : "-unsigned"}-v${this._npmConfig.version}.apk`);
133
- const latestDistApkFileName = path.basename(`${this._config.appName}${this._config.buildOption?.sign?.android ? "" : "-unsigned"}-latest.apk`);
134
- await FsUtil.mkdirsAsync(targetOutPath);
135
- await FsUtil.copyAsync(path.resolve(this.cordovaPath, "platforms/android/app/build/outputs/apk", buildType, apkFileName), path.resolve(targetOutPath, distApkFileName));
136
- await FsUtil.copyAsync(path.resolve(this.cordovaPath, "platforms/android/app/build/outputs/apk", buildType, apkFileName), path.resolve(targetOutPath, latestDistApkFileName));
137
- }
138
- else if (platform === "electron") {
139
- const targetOutPath = path.resolve(outPath, platform);
140
- const outFileName = `${this._config.appName} Setup ${this._npmConfig.version}.exe`;
141
- const distFileName = outFileName;
142
- const latestDistFileName = `${this._config.appName} Setup latest.exe`;
143
- await FsUtil.mkdirsAsync(targetOutPath);
144
- await FsUtil.copyAsync(path.resolve(this.cordovaPath, "platforms/electron/build/", outFileName), path.resolve(targetOutPath, distFileName));
145
- await FsUtil.copyAsync(path.resolve(this.cordovaPath, "platforms/electron/build/", outFileName), path.resolve(targetOutPath, latestDistFileName));
146
- }
147
- else {
148
- throw new NotImplementError();
149
- }
150
+ // 결과물 복사: ANDROID
151
+ if (this._config.target?.android) {
152
+ const targetOutPath = path.resolve(outPath, "android");
153
+ const apkFileName = this._config.target.android.sign ? `app-${buildType}.apk` : `app-${buildType}-unsigned.apk`;
154
+ const distApkFileName = path.basename(`${this._config.appName}${this._config.target.android.sign ? "" : "-unsigned"}-v${this._npmConfig.version}.apk`);
155
+ const latestDistApkFileName = path.basename(`${this._config.appName}${this._config.target.android.sign ? "" : "-unsigned"}-latest.apk`);
156
+ await FsUtil.mkdirsAsync(targetOutPath);
157
+ await FsUtil.copyAsync(path.resolve(this.cordovaPath, "platforms/android/app/build/outputs/apk", buildType, apkFileName), path.resolve(targetOutPath, distApkFileName));
158
+ await FsUtil.copyAsync(path.resolve(this.cordovaPath, "platforms/android/app/build/outputs/apk", buildType, apkFileName), path.resolve(targetOutPath, latestDistApkFileName));
150
159
  }
151
- if (this.platforms.includes("android")) {
160
+ if (this._config.target?.android) {
152
161
  // 자동업데이트를 위한 zip 파일 쓰기
153
162
  const zip = new JSZip();
154
- const resultFiles = await FsUtil.globAsync(path.resolve(this.cordovaPath, "www", "**/*"), {
163
+ const resultFiles = await FsUtil.globAsync(path.resolve(this.cordovaPath, "platforms", "android", "app", "src", "main", "assets", "www", "**/*"), {
155
164
  dot: true,
156
165
  nodir: true
157
166
  });
@@ -165,21 +174,13 @@ export class SdCliCordova {
165
174
  await FsUtil.writeFileAsync(path.resolve(outPath, "updates/", zipFileName), resultBuffer);
166
175
  }
167
176
  }
168
- static async runWebviewOnDeviceAsync(cordovaPath, platform, url) {
177
+ static async runWebviewOnDeviceAsync(rootPath, platform, pkgName, url) {
178
+ const cordovaPath = path.resolve(rootPath, `packages/${pkgName}/.cordova/`);
169
179
  await FsUtil.removeAsync(path.resolve(cordovaPath, "www"));
170
180
  await FsUtil.mkdirsAsync(path.resolve(cordovaPath, "www"));
171
- await FsUtil.writeFileAsync(path.resolve(cordovaPath, "www/index.html"), `'${url}'로 이동중... <script>setTimeout(function () {window.location.href = "${url}"}, 3000);</script>`.trim());
172
- // CONFIG
173
- const configFilePath = path.resolve(cordovaPath, "config.xml");
174
- let configFileContent = await FsUtil.readFileAsync(configFilePath);
175
- // CONFIG: 접근허용 일단 모두 지우기
176
- configFileContent = configFileContent.replace(/ {4}<allow-navigation href="[^"]*" \/>\n/g, "");
177
- // CONFIG: 접근허용 등록
178
- configFileContent = configFileContent.replace("</widget>", ` <allow-navigation href="*://*/*" />\n</widget>`);
179
- // CONFIG: 파일쓰기
180
- await FsUtil.writeFileAsync(configFilePath, configFileContent);
181
+ await FsUtil.writeFileAsync(path.resolve(cordovaPath, "www/index.html"), `'${url}'로 이동중... <script>setTimeout(function () {window.location.href = "${url.replace(/\/$/, "")}/${pkgName}/cordova/"}, 3000);</script>`.trim());
181
182
  const binPath = path.resolve(process.cwd(), "node_modules/.bin/cordova.cmd");
182
183
  await SdProcess.spawnAsync(`${binPath} run ${platform} --device`, { cwd: cordovaPath }, true);
183
184
  }
184
185
  }
185
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2RDbGlDb3Jkb3ZhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2J1aWxkLXRvb2wvU2RDbGlDb3Jkb3ZhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sS0FBSyxJQUFJLE1BQU0sTUFBTSxDQUFDO0FBQzdCLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ25FLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzdELE9BQU8sS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUUxQixNQUFNLE9BQU8sWUFBWTtJQVl2QixZQUFvQyxTQUFpQixFQUFtQixPQUF5QztRQUE3RSxjQUFTLEdBQVQsU0FBUyxDQUFRO1FBQW1CLFlBQU8sR0FBUCxPQUFPLENBQWtDO1FBUGpHLGdCQUFXLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBQ3RELGFBQVEsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsRUFBRSwrQkFBK0IsQ0FBQyxDQUFDO1FBT3ZGLElBQUksQ0FBQyxVQUFVLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsY0FBYyxDQUFDLENBQUMsQ0FBQztRQUNoRixJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxVQUFVLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUNqRyxDQUFDO0lBUEQsSUFBVyxTQUFTO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUM7SUFDaEMsQ0FBQztJQU9PLEtBQUssQ0FBQyxVQUFVLENBQUMsR0FBVyxFQUFFLEdBQVc7UUFDL0MsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDeEIsTUFBTSxHQUFHLEdBQUcsTUFBTSxTQUFTLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRSxFQUFFLEdBQUcsRUFBRSxDQUFDLENBQUM7UUFDckQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDMUIsQ0FBQztJQUVNLEtBQUssQ0FBQyxlQUFlO1FBQzFCLElBQUksTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEVBQUU7WUFDbkMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsOEJBQThCLENBQUMsQ0FBQztTQUNsRDthQUNJO1lBQ0gsTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsSUFBSSxDQUFDLFFBQVEsZUFBZSxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUV2RSxVQUFVO1lBQ1YsTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsSUFBSSxDQUFDLFFBQVEsWUFBWSxJQUFJLENBQUMsV0FBVyxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxHQUFHLEVBQUUsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUM7U0FDekk7UUFFRCx5QkFBeUI7UUFDekIsTUFBTSxNQUFNLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDO1FBRXRFLG1CQUFtQjtRQUNuQixNQUFNLE1BQU0sQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFFaEUsbUJBQW1CO1FBQ25CLE1BQU0sZ0JBQWdCLEdBQUcsTUFBTSxNQUFNLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxXQUFXLENBQUMsQ0FBQyxDQUFDO1FBQ2hHLEtBQUssTUFBTSxRQUFRLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNyQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxFQUFFO2dCQUN4QyxNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxpQkFBaUIsUUFBUSxFQUFFLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO2FBQ3RGO1NBQ0Y7UUFFRCxlQUFlO1FBQ2YsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRTtZQUN4QixNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxvQkFBb0IsQ0FBQyxDQUFDO2dCQUN0RixDQUFDLENBQUMsTUFBTSxNQUFNLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxvQkFBb0IsQ0FBQyxDQUFDO2dCQUNsRixDQUFDLENBQUMsU0FBUyxDQUFDO1lBQ2QsTUFBTSxjQUFjLEdBQUcsWUFBWSxJQUFJLFNBQVM7Z0JBQzlDLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQztxQkFDMUIsR0FBRyxDQUFDLENBQUMsSUFBUyxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDNUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUVQLEtBQUssTUFBTSxNQUFNLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLEVBQUU7Z0JBQ3BELElBQUksQ0FBQyxjQUFjLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUFFO29CQUNwQyxNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxlQUFlLE1BQU0sRUFBRSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztpQkFDbEY7YUFDRjtTQUNGO1FBRUQsYUFBYTtRQUNiLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEtBQUssU0FBUyxFQUFFO1lBQ25DLE1BQU0sTUFBTSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFDO1NBQ3BJO1FBRUQsU0FBUztRQUNULE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxZQUFZLENBQUMsQ0FBQztRQUNwRSxJQUFJLGlCQUFpQixHQUFHLE1BQU0sTUFBTSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUVuRSxnQkFBZ0I7UUFDaEIsaUJBQWlCLEdBQUcsaUJBQWlCLENBQUMsT0FBTyxDQUFDLGtCQUFrQixFQUFFLFlBQVksSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLEdBQUcsQ0FBQyxDQUFDO1FBRTFHLGtCQUFrQjtRQUNsQixJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxLQUFLLFNBQVMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUMzRSxpQkFBaUIsR0FBRyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLHFEQUFxRCxDQUFDLENBQUM7U0FDbkg7UUFFRCwwQ0FBMEM7UUFDMUMsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLEVBQUU7WUFDOUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyw4REFBOEQsQ0FBQyxFQUFFO2dCQUMvRixpQkFBaUIsR0FBRyxpQkFBaUIsQ0FBQyxPQUFPLENBQzNDLHdDQUF3QyxFQUN4QyxpR0FBaUcsQ0FDbEcsQ0FBQzthQUNIO1lBQ0QsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyxzREFBc0QsQ0FBQyxFQUFFO2dCQUN2RixJQUFJLGlCQUFpQixDQUFDLFFBQVEsQ0FBQyw2QkFBNkIsQ0FBQyxFQUFFO29CQUM3RCxpQkFBaUIsR0FBRyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsNkJBQTZCLEVBQUU7OztxQkFHbEUsQ0FBQyxDQUFDO2lCQUNkO3FCQUNJO29CQUNILGlCQUFpQixHQUFHLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxnQ0FBZ0MsRUFBRTs7Ozs7Z0JBSzFFLENBQUMsQ0FBQztpQkFDVDthQUNGO1NBQ0Y7UUFFRCxlQUFlO1FBQ2YsTUFBTSxNQUFNLENBQUMsY0FBYyxDQUFDLGNBQWMsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFFTSxLQUFLLENBQUMsVUFBVSxDQUFDLE9BQWU7UUFDckMsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUV4RSxnQkFBZ0I7UUFDaEIsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFO1lBQzNDLE1BQU0sTUFBTSxDQUFDLFNBQVMsQ0FDcEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEVBQzVFLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FDOUYsQ0FBQztZQUNGLE1BQU0sTUFBTSxDQUFDLGNBQWMsQ0FDekIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLFlBQVksQ0FBQyxFQUM1QztnQkFDRSxPQUFPLEVBQUU7b0JBQ1AsT0FBTyxFQUFFO3dCQUNQLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDO3dCQUN2RSxhQUFhLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhO3dCQUNsRSxLQUFLLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxLQUFLO3dCQUNsRCxRQUFRLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRO3dCQUN4RCxZQUFZLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZO3dCQUNoRSxXQUFXO3FCQUNaO2lCQUNGO2FBQ0YsQ0FDRixDQUFDO1NBQ0g7UUFFRCxTQUFTO1FBQ1QsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBQ3BFLElBQUksaUJBQWlCLEdBQUcsTUFBTSxNQUFNLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBRW5FLHlCQUF5QjtRQUN6QixpQkFBaUIsR0FBRyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsMkNBQTJDLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFL0Ysa0JBQWtCO1FBQ2xCLGlCQUFpQixHQUFHLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsb0RBQW9ELENBQUMsQ0FBQztRQUVqSCxlQUFlO1FBQ2YsTUFBTSxNQUFNLENBQUMsY0FBYyxDQUFDLGNBQWMsRUFBRSxpQkFBaUIsQ0FBQyxDQUFDO1FBRS9ELEtBQUs7UUFDTCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO1FBQ3hFLEtBQUssTUFBTSxRQUFRLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNyQyxNQUFNLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxJQUFJLENBQUMsUUFBUSxVQUFVLFFBQVEsTUFBTSxTQUFTLGtCQUFrQixXQUFXLEVBQUUsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7U0FDM0g7UUFFRCxTQUFTO1FBQ1QsS0FBSyxNQUFNLFFBQVEsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ3JDLElBQUksUUFBUSxLQUFLLFNBQVMsRUFBRTtnQkFDMUIsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsUUFBUSxDQUFDLENBQUM7Z0JBQ3RELE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLE9BQU8sU0FBUyxNQUFNLENBQUMsQ0FBQyxDQUFDLE9BQU8sU0FBUyxlQUFlLENBQUM7Z0JBQ3ZILE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFdBQVcsS0FBSyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sTUFBTSxDQUFDLENBQUM7Z0JBQzlKLE1BQU0scUJBQXFCLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsV0FBVyxhQUFhLENBQUMsQ0FBQztnQkFDL0ksTUFBTSxNQUFNLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxDQUFDO2dCQUN4QyxNQUFNLE1BQU0sQ0FBQyxTQUFTLENBQ3BCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSx5Q0FBeUMsRUFBRSxTQUFTLEVBQUUsV0FBVyxDQUFDLEVBQ2pHLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLGVBQWUsQ0FBQyxDQUM3QyxDQUFDO2dCQUNGLE1BQU0sTUFBTSxDQUFDLFNBQVMsQ0FDcEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLHlDQUF5QyxFQUFFLFNBQVMsRUFBRSxXQUFXLENBQUMsRUFDakcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUscUJBQXFCLENBQUMsQ0FDbkQsQ0FBQzthQUNIO2lCQUNJLElBQUksUUFBUSxLQUFLLFVBQVUsRUFBRTtnQkFDaEMsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsUUFBUSxDQUFDLENBQUM7Z0JBQ3RELE1BQU0sV0FBVyxHQUFHLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLFVBQVUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLE1BQU0sQ0FBQztnQkFDbkYsTUFBTSxZQUFZLEdBQUcsV0FBVyxDQUFDO2dCQUNqQyxNQUFNLGtCQUFrQixHQUFHLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLG1CQUFtQixDQUFDO2dCQUN0RSxNQUFNLE1BQU0sQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDLENBQUM7Z0JBQ3hDLE1BQU0sTUFBTSxDQUFDLFNBQVMsQ0FDcEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLDJCQUEyQixFQUFFLFdBQVcsQ0FBQyxFQUN4RSxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRSxZQUFZLENBQUMsQ0FDMUMsQ0FBQztnQkFDRixNQUFNLE1BQU0sQ0FBQyxTQUFTLENBQ3BCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSwyQkFBMkIsRUFBRSxXQUFXLENBQUMsRUFDeEUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsa0JBQWtCLENBQUMsQ0FDaEQsQ0FBQzthQUNIO2lCQUNJO2dCQUNILE1BQU0sSUFBSSxpQkFBaUIsRUFBRSxDQUFDO2FBQy9CO1NBQ0Y7UUFFRCxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxFQUFFO1lBQ3RDLHVCQUF1QjtZQUN2QixNQUFNLEdBQUcsR0FBRyxJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ3hCLE1BQU0sV0FBVyxHQUFHLE1BQU0sTUFBTSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sQ0FBQyxFQUFFO2dCQUN4RixHQUFHLEVBQUUsSUFBSTtnQkFDVCxLQUFLLEVBQUUsSUFBSTthQUNaLENBQUMsQ0FBQztZQUNILEtBQUssTUFBTSxVQUFVLElBQUksV0FBVyxFQUFFO2dCQUNwQyxNQUFNLGFBQWEsR0FBRyxNQUFNLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxVQUFVLENBQUMsQ0FBQztnQkFDbkUsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsS0FBSyxDQUFDLEVBQUUsVUFBVSxDQUFDLENBQUM7Z0JBQ3RGLEdBQUcsQ0FBQyxJQUFJLENBQUMsR0FBRyxHQUFHLFlBQVksRUFBRSxhQUFhLENBQUMsQ0FBQzthQUM3QztZQUVELE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sS0FBSyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sTUFBTSxDQUFDLENBQUM7WUFDN0YsTUFBTSxZQUFZLEdBQUcsTUFBTSxHQUFHLENBQUMsYUFBYSxDQUFDLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRSxDQUFDLENBQUM7WUFFckUsTUFBTSxNQUFNLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxXQUFXLENBQUMsRUFBRSxZQUFZLENBQUMsQ0FBQztTQUMzRjtJQUNILENBQUM7SUFFTSxNQUFNLENBQUMsS0FBSyxDQUFDLHVCQUF1QixDQUFDLFdBQW1CLEVBQUUsUUFBK0IsRUFBRSxHQUFXO1FBQzNHLE1BQU0sTUFBTSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQzNELE1BQU0sTUFBTSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQzNELE1BQU0sTUFBTSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxnQkFBZ0IsQ0FBQyxFQUFFLElBQUksR0FBRyxxRUFBcUUsR0FBRyxxQkFBcUIsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBRXRMLFNBQVM7UUFDVCxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxZQUFZLENBQUMsQ0FBQztRQUMvRCxJQUFJLGlCQUFpQixHQUFHLE1BQU0sTUFBTSxDQUFDLGFBQWEsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUVuRSx5QkFBeUI7UUFDekIsaUJBQWlCLEdBQUcsaUJBQWlCLENBQUMsT0FBTyxDQUFDLDJDQUEyQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRS9GLGtCQUFrQjtRQUNsQixpQkFBaUIsR0FBRyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLG9EQUFvRCxDQUFDLENBQUM7UUFFakgsZUFBZTtRQUNmLE1BQU0sTUFBTSxDQUFDLGNBQWMsQ0FBQyxjQUFjLEVBQUUsaUJBQWlCLENBQUMsQ0FBQztRQUUvRCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsRUFBRSwrQkFBK0IsQ0FBQyxDQUFDO1FBQzdFLE1BQU0sU0FBUyxDQUFDLFVBQVUsQ0FBQyxHQUFHLE9BQU8sUUFBUSxRQUFRLFdBQVcsRUFBRSxFQUFFLEdBQUcsRUFBRSxXQUFXLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNoRyxDQUFDO0NBQ0YifQ==
186
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2RDbGlDb3Jkb3ZhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2J1aWxkLXRvb2wvU2RDbGlDb3Jkb3ZhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sS0FBSyxJQUFJLE1BQU0sTUFBTSxDQUFDO0FBQzdCLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ25FLE9BQU8sS0FBSyxNQUFNLE9BQU8sQ0FBQztBQUMxQixPQUFPLE1BQU0sTUFBTSxRQUFRLENBQUM7QUFFNUIsTUFBTSxPQUFPLFlBQVk7SUFldkIsWUFBb0MsU0FBaUIsRUFBbUIsT0FBeUM7UUFBN0UsY0FBUyxHQUFULFNBQVMsQ0FBUTtRQUFtQixZQUFPLEdBQVAsT0FBTyxDQUFrQztRQVZqRyxnQkFBVyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUN0RCxhQUFRLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEVBQUUsK0JBQStCLENBQUMsQ0FBQztRQVV2RixJQUFJLENBQUMsVUFBVSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLGNBQWMsQ0FBQyxDQUFDLENBQUM7UUFDaEYsSUFBSSxDQUFDLE9BQU8sR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsVUFBVSxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDakcsQ0FBQztJQVZELElBQVcsU0FBUztRQUNsQixPQUFPO1lBQ0wsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBa0IsQ0FB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
@@ -0,0 +1,9 @@
1
+ export declare class SdCliElectron {
2
+ private readonly _rootPath;
3
+ private readonly _logger;
4
+ constructor(_rootPath: string);
5
+ runWebviewOnDeviceAsync(pkgName: string, url: string, opt: {
6
+ confFileRelPath: string;
7
+ optNames: string[];
8
+ }): Promise<void>;
9
+ }
@@ -0,0 +1,66 @@
1
+ import { FsUtil, Logger, SdProcess } from "@simplysm/sd-core-node";
2
+ import path from "path";
3
+ import { SdCliConfigUtil } from "../utils/SdCliConfigUtil";
4
+ import ts from "typescript";
5
+ export class SdCliElectron {
6
+ constructor(_rootPath) {
7
+ this._rootPath = _rootPath;
8
+ this._logger = Logger.get(["simplysm", "sd-cli", this.constructor.name]);
9
+ }
10
+ async runWebviewOnDeviceAsync(pkgName, url, opt) {
11
+ this._logger.debug("프로젝트 설정 가져오기...");
12
+ const config = await SdCliConfigUtil.loadConfigAsync(path.resolve(this._rootPath, opt.confFileRelPath), true, opt.optNames);
13
+ const pkgConfig = config.packages[pkgName];
14
+ if (!pkgConfig)
15
+ throw new Error("패키지 설정을 찾을 수 없습니다.");
16
+ const electronConfig = pkgConfig.builder?.electron;
17
+ if (!electronConfig)
18
+ throw new Error("ELECTRON 설정을 찾을 수 없습니다.");
19
+ const pkgRootPath = path.resolve(this._rootPath, `packages/${pkgName}`);
20
+ const electronSrcPath = path.resolve(pkgRootPath, `.electron/src`);
21
+ await FsUtil.removeAsync(electronSrcPath);
22
+ const npmConfig = (await FsUtil.readJsonAsync(path.resolve(pkgRootPath, `package.json`)));
23
+ const electronVersion = npmConfig.dependencies?.["electron"];
24
+ if (electronVersion === undefined) {
25
+ throw new Error("ELECTRON 빌드 패키지의 'dependencies'에는 'electron'이 반드시 포함되어야 합니다.");
26
+ }
27
+ const dotenvVersion = npmConfig.dependencies?.["dotenv"];
28
+ if (dotenvVersion === undefined) {
29
+ throw new Error("ELECTRON 빌드 패키지의 'dependencies'에는 'dotenv'가 반드시 포함되어야 합니다.");
30
+ }
31
+ await FsUtil.writeJsonAsync(path.resolve(electronSrcPath, `package.json`), {
32
+ name: npmConfig.name,
33
+ version: npmConfig.version,
34
+ description: npmConfig.description,
35
+ main: "electron.js",
36
+ author: npmConfig.author,
37
+ license: npmConfig.license,
38
+ devDependencies: {
39
+ "electron": electronVersion.replace("^", "")
40
+ },
41
+ dependencies: {
42
+ "dotenv": dotenvVersion
43
+ }
44
+ });
45
+ if (FsUtil.exists(path.resolve(pkgRootPath, "src/favicon.ico"))) {
46
+ await FsUtil.copyAsync(path.resolve(pkgRootPath, "src/favicon.ico"), path.resolve(electronSrcPath, "favicon.ico"));
47
+ }
48
+ if (FsUtil.exists(path.resolve(pkgRootPath, "src/assets"))) {
49
+ await FsUtil.copyAsync(path.resolve(pkgRootPath, "src/assets"), path.resolve(electronSrcPath, "assets"));
50
+ }
51
+ await FsUtil.writeFileAsync(path.resolve(electronSrcPath, `.env`), [
52
+ "NODE_ENV=development",
53
+ `SD_TITLE=${npmConfig.description}`,
54
+ `SD_VERSION=${npmConfig.version}`,
55
+ `SD_ELECTRON_DEV_URL=${url.replace(/\/$/, "")}/${pkgName}/electron/`,
56
+ (electronConfig.icon !== undefined) ? `SD_ELECTRON_ICON=${electronConfig.icon}` : `SD_ELECTRON_ICON=favicon.ico`,
57
+ ...(pkgConfig.env !== undefined) ? Object.keys(pkgConfig.env).map((key) => `${key}=${pkgConfig.env[key]}`) : []
58
+ ].filterExists().join("\n"));
59
+ let electronTsFileContent = await FsUtil.readFileAsync(path.resolve(pkgRootPath, `src/electron.ts`));
60
+ electronTsFileContent = "require(\"dotenv\").config({ path: `${__dirname}\\\\.env` });\n" + electronTsFileContent;
61
+ const result = ts.transpileModule(electronTsFileContent, { compilerOptions: { module: ts.ModuleKind.CommonJS } });
62
+ await FsUtil.writeFileAsync(path.resolve(electronSrcPath, "electron.js"), result.outputText);
63
+ await SdProcess.spawnAsync(`${path.resolve(this._rootPath, "node_modules/.bin/electron.cmd")} ${electronSrcPath}`, { cwd: electronSrcPath }, true);
64
+ }
65
+ }
66
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU2RDbGlFbGVjdHJvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9idWlsZC10b29sL1NkQ2xpRWxlY3Ryb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFbkUsT0FBTyxJQUFJLE1BQU0sTUFBTSxDQUFDO0FBQ3hCLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsTUFBTSxZQUFZLENBQUM7QUFFNUIsTUFBTSxPQUFPLGFBQWE7SUFHeEIsWUFBb0MsU0FBaUI7UUFBakIsY0FBUyxHQUFULFNBQVMsQ0FBUTtRQUZwQyxZQUFPLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFVBQVUsRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBR3JGLENBQUM7SUFFTSxLQUFLLENBQUMsdUJBQXVCLENBQUMsT0FBZSxFQUFFLEdBQVcsRUFBRSxHQUFvRDtRQUNySCxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQ3RDLE1BQU0sTUFBTSxHQUFHLE1BQU0sZUFBZSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsR0FBRyxDQUFDLGVBQWUsQ0FBQyxFQUFFLElBQUksRUFBRSxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDNUgsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQTBDLENBQUM7UUFDcEYsSUFBSSxDQUFDLFNBQVM7WUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFFdEQsTUFBTSxjQUFjLEdBQUcsU0FBUyxDQUFDLE9BQU8sRUFBRSxRQUFRLENBQUM7UUFD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
@@ -0,0 +1,14 @@
1
+ /// <reference types="node" />
2
+ export declare class SdCliGithubApi {
3
+ private readonly _apiKey;
4
+ private readonly _repoOwner;
5
+ private readonly _repoName;
6
+ constructor(_apiKey: string, _repoOwner: string, _repoName: string);
7
+ uploadAsync(version: string, files: {
8
+ name: string;
9
+ buffer: Buffer;
10
+ }[]): Promise<void>;
11
+ private _uploadFileAsync;
12
+ private _createReleaseTagAsync;
13
+ private _pushAllAsync;
14
+ }