@simplysm/capacitor-plugin-auto-update 13.0.0-beta.5 → 13.0.0-beta.50

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 (215) hide show
  1. package/dist/ApkInstaller.d.ts.map +1 -0
  2. package/dist/ApkInstaller.js.map +0 -1
  3. package/dist/AutoUpdate.d.ts.map +1 -0
  4. package/dist/AutoUpdate.js +3 -3
  5. package/dist/AutoUpdate.js.map +0 -1
  6. package/dist/IApkInstallerPlugin.d.ts.map +1 -0
  7. package/dist/IApkInstallerPlugin.js.map +0 -1
  8. package/dist/index.d.ts.map +1 -0
  9. package/dist/index.js +3 -3
  10. package/dist/index.js.map +0 -1
  11. package/dist/web/ApkInstallerWeb.d.ts.map +1 -0
  12. package/dist/web/ApkInstallerWeb.js.map +0 -1
  13. package/package.json +13 -9
  14. package/.cache/typecheck-browser.tsbuildinfo +0 -1
  15. package/dist/capacitor-plugin-auto-update/src/ApkInstaller.d.ts.map +0 -1
  16. package/dist/capacitor-plugin-auto-update/src/AutoUpdate.d.ts.map +0 -1
  17. package/dist/capacitor-plugin-auto-update/src/IApkInstallerPlugin.d.ts.map +0 -1
  18. package/dist/capacitor-plugin-auto-update/src/index.d.ts.map +0 -1
  19. package/dist/capacitor-plugin-auto-update/src/web/ApkInstallerWeb.d.ts.map +0 -1
  20. package/dist/capacitor-plugin-file-system/src/FileSystem.d.ts +0 -65
  21. package/dist/capacitor-plugin-file-system/src/FileSystem.d.ts.map +0 -1
  22. package/dist/capacitor-plugin-file-system/src/IFileSystemPlugin.d.ts +0 -49
  23. package/dist/capacitor-plugin-file-system/src/IFileSystemPlugin.d.ts.map +0 -1
  24. package/dist/capacitor-plugin-file-system/src/index.d.ts +0 -3
  25. package/dist/capacitor-plugin-file-system/src/index.d.ts.map +0 -1
  26. package/dist/capacitor-plugin-file-system/src/web/FileSystemWeb.d.ts +0 -54
  27. package/dist/capacitor-plugin-file-system/src/web/FileSystemWeb.d.ts.map +0 -1
  28. package/dist/capacitor-plugin-file-system/src/web/IndexedDbStore.d.ts +0 -16
  29. package/dist/capacitor-plugin-file-system/src/web/IndexedDbStore.d.ts.map +0 -1
  30. package/dist/capacitor-plugin-file-system/src/web/VirtualFileSystem.d.ts +0 -26
  31. package/dist/capacitor-plugin-file-system/src/web/VirtualFileSystem.d.ts.map +0 -1
  32. package/dist/core-browser/src/extensions/element-ext.d.ts +0 -98
  33. package/dist/core-browser/src/extensions/element-ext.d.ts.map +0 -1
  34. package/dist/core-browser/src/extensions/html-element-ext.d.ts +0 -54
  35. package/dist/core-browser/src/extensions/html-element-ext.d.ts.map +0 -1
  36. package/dist/core-browser/src/index.d.ts +0 -7
  37. package/dist/core-browser/src/index.d.ts.map +0 -1
  38. package/dist/core-browser/src/utils/blob.d.ts +0 -10
  39. package/dist/core-browser/src/utils/blob.d.ts.map +0 -1
  40. package/dist/core-browser/src/utils/download.d.ts +0 -11
  41. package/dist/core-browser/src/utils/download.d.ts.map +0 -1
  42. package/dist/core-common/src/common.types.d.ts +0 -74
  43. package/dist/core-common/src/common.types.d.ts.map +0 -1
  44. package/dist/core-common/src/env.d.ts +0 -6
  45. package/dist/core-common/src/env.d.ts.map +0 -1
  46. package/dist/core-common/src/errors/argument-error.d.ts +0 -25
  47. package/dist/core-common/src/errors/argument-error.d.ts.map +0 -1
  48. package/dist/core-common/src/errors/not-implemented-error.d.ts +0 -29
  49. package/dist/core-common/src/errors/not-implemented-error.d.ts.map +0 -1
  50. package/dist/core-common/src/errors/sd-error.d.ts +0 -27
  51. package/dist/core-common/src/errors/sd-error.d.ts.map +0 -1
  52. package/dist/core-common/src/errors/timeout-error.d.ts +0 -31
  53. package/dist/core-common/src/errors/timeout-error.d.ts.map +0 -1
  54. package/dist/core-common/src/extensions/arr-ext.d.ts +0 -15
  55. package/dist/core-common/src/extensions/arr-ext.d.ts.map +0 -1
  56. package/dist/core-common/src/extensions/arr-ext.helpers.d.ts +0 -19
  57. package/dist/core-common/src/extensions/arr-ext.helpers.d.ts.map +0 -1
  58. package/dist/core-common/src/extensions/arr-ext.types.d.ts +0 -215
  59. package/dist/core-common/src/extensions/arr-ext.types.d.ts.map +0 -1
  60. package/dist/core-common/src/extensions/map-ext.d.ts +0 -57
  61. package/dist/core-common/src/extensions/map-ext.d.ts.map +0 -1
  62. package/dist/core-common/src/extensions/set-ext.d.ts +0 -36
  63. package/dist/core-common/src/extensions/set-ext.d.ts.map +0 -1
  64. package/dist/core-common/src/features/debounce-queue.d.ts +0 -53
  65. package/dist/core-common/src/features/debounce-queue.d.ts.map +0 -1
  66. package/dist/core-common/src/features/event-emitter.d.ts +0 -66
  67. package/dist/core-common/src/features/event-emitter.d.ts.map +0 -1
  68. package/dist/core-common/src/features/serial-queue.d.ts +0 -47
  69. package/dist/core-common/src/features/serial-queue.d.ts.map +0 -1
  70. package/dist/core-common/src/index.d.ts +0 -32
  71. package/dist/core-common/src/index.d.ts.map +0 -1
  72. package/dist/core-common/src/types/date-only.d.ts +0 -152
  73. package/dist/core-common/src/types/date-only.d.ts.map +0 -1
  74. package/dist/core-common/src/types/date-time.d.ts +0 -96
  75. package/dist/core-common/src/types/date-time.d.ts.map +0 -1
  76. package/dist/core-common/src/types/lazy-gc-map.d.ts +0 -80
  77. package/dist/core-common/src/types/lazy-gc-map.d.ts.map +0 -1
  78. package/dist/core-common/src/types/time.d.ts +0 -68
  79. package/dist/core-common/src/types/time.d.ts.map +0 -1
  80. package/dist/core-common/src/types/uuid.d.ts +0 -35
  81. package/dist/core-common/src/types/uuid.d.ts.map +0 -1
  82. package/dist/core-common/src/utils/bytes.d.ts +0 -51
  83. package/dist/core-common/src/utils/bytes.d.ts.map +0 -1
  84. package/dist/core-common/src/utils/date-format.d.ts +0 -90
  85. package/dist/core-common/src/utils/date-format.d.ts.map +0 -1
  86. package/dist/core-common/src/utils/json.d.ts +0 -34
  87. package/dist/core-common/src/utils/json.d.ts.map +0 -1
  88. package/dist/core-common/src/utils/num.d.ts +0 -60
  89. package/dist/core-common/src/utils/num.d.ts.map +0 -1
  90. package/dist/core-common/src/utils/obj.d.ts +0 -258
  91. package/dist/core-common/src/utils/obj.d.ts.map +0 -1
  92. package/dist/core-common/src/utils/path.d.ts +0 -23
  93. package/dist/core-common/src/utils/path.d.ts.map +0 -1
  94. package/dist/core-common/src/utils/primitive.d.ts +0 -18
  95. package/dist/core-common/src/utils/primitive.d.ts.map +0 -1
  96. package/dist/core-common/src/utils/str.d.ts +0 -103
  97. package/dist/core-common/src/utils/str.d.ts.map +0 -1
  98. package/dist/core-common/src/utils/template-strings.d.ts +0 -84
  99. package/dist/core-common/src/utils/template-strings.d.ts.map +0 -1
  100. package/dist/core-common/src/utils/transferable.d.ts +0 -47
  101. package/dist/core-common/src/utils/transferable.d.ts.map +0 -1
  102. package/dist/core-common/src/utils/wait.d.ts +0 -19
  103. package/dist/core-common/src/utils/wait.d.ts.map +0 -1
  104. package/dist/core-common/src/utils/xml.d.ts +0 -36
  105. package/dist/core-common/src/utils/xml.d.ts.map +0 -1
  106. package/dist/core-common/src/zip/sd-zip.d.ts +0 -80
  107. package/dist/core-common/src/zip/sd-zip.d.ts.map +0 -1
  108. package/dist/orm-common/src/db-context.d.ts +0 -669
  109. package/dist/orm-common/src/db-context.d.ts.map +0 -1
  110. package/dist/orm-common/src/errors/db-transaction-error.d.ts +0 -51
  111. package/dist/orm-common/src/errors/db-transaction-error.d.ts.map +0 -1
  112. package/dist/orm-common/src/exec/executable.d.ts +0 -79
  113. package/dist/orm-common/src/exec/executable.d.ts.map +0 -1
  114. package/dist/orm-common/src/exec/queryable.d.ts +0 -708
  115. package/dist/orm-common/src/exec/queryable.d.ts.map +0 -1
  116. package/dist/orm-common/src/exec/search-parser.d.ts +0 -72
  117. package/dist/orm-common/src/exec/search-parser.d.ts.map +0 -1
  118. package/dist/orm-common/src/expr/expr-unit.d.ts +0 -25
  119. package/dist/orm-common/src/expr/expr-unit.d.ts.map +0 -1
  120. package/dist/orm-common/src/expr/expr.d.ts +0 -1369
  121. package/dist/orm-common/src/expr/expr.d.ts.map +0 -1
  122. package/dist/orm-common/src/index.d.ts +0 -32
  123. package/dist/orm-common/src/index.d.ts.map +0 -1
  124. package/dist/orm-common/src/models/system-migration.d.ts +0 -10
  125. package/dist/orm-common/src/models/system-migration.d.ts.map +0 -1
  126. package/dist/orm-common/src/query-builder/base/expr-renderer-base.d.ts +0 -95
  127. package/dist/orm-common/src/query-builder/base/expr-renderer-base.d.ts.map +0 -1
  128. package/dist/orm-common/src/query-builder/base/query-builder-base.d.ts +0 -66
  129. package/dist/orm-common/src/query-builder/base/query-builder-base.d.ts.map +0 -1
  130. package/dist/orm-common/src/query-builder/mssql/mssql-expr-renderer.d.ts +0 -84
  131. package/dist/orm-common/src/query-builder/mssql/mssql-expr-renderer.d.ts.map +0 -1
  132. package/dist/orm-common/src/query-builder/mssql/mssql-query-builder.d.ts +0 -45
  133. package/dist/orm-common/src/query-builder/mssql/mssql-query-builder.d.ts.map +0 -1
  134. package/dist/orm-common/src/query-builder/mysql/mysql-expr-renderer.d.ts +0 -84
  135. package/dist/orm-common/src/query-builder/mysql/mysql-expr-renderer.d.ts.map +0 -1
  136. package/dist/orm-common/src/query-builder/mysql/mysql-query-builder.d.ts +0 -54
  137. package/dist/orm-common/src/query-builder/mysql/mysql-query-builder.d.ts.map +0 -1
  138. package/dist/orm-common/src/query-builder/postgresql/postgresql-expr-renderer.d.ts +0 -84
  139. package/dist/orm-common/src/query-builder/postgresql/postgresql-expr-renderer.d.ts.map +0 -1
  140. package/dist/orm-common/src/query-builder/postgresql/postgresql-query-builder.d.ts +0 -52
  141. package/dist/orm-common/src/query-builder/postgresql/postgresql-query-builder.d.ts.map +0 -1
  142. package/dist/orm-common/src/query-builder/query-builder.d.ts +0 -7
  143. package/dist/orm-common/src/query-builder/query-builder.d.ts.map +0 -1
  144. package/dist/orm-common/src/schema/factory/column-builder.d.ts +0 -394
  145. package/dist/orm-common/src/schema/factory/column-builder.d.ts.map +0 -1
  146. package/dist/orm-common/src/schema/factory/index-builder.d.ts +0 -151
  147. package/dist/orm-common/src/schema/factory/index-builder.d.ts.map +0 -1
  148. package/dist/orm-common/src/schema/factory/relation-builder.d.ts +0 -337
  149. package/dist/orm-common/src/schema/factory/relation-builder.d.ts.map +0 -1
  150. package/dist/orm-common/src/schema/procedure-builder.d.ts +0 -202
  151. package/dist/orm-common/src/schema/procedure-builder.d.ts.map +0 -1
  152. package/dist/orm-common/src/schema/table-builder.d.ts +0 -259
  153. package/dist/orm-common/src/schema/table-builder.d.ts.map +0 -1
  154. package/dist/orm-common/src/schema/view-builder.d.ts +0 -183
  155. package/dist/orm-common/src/schema/view-builder.d.ts.map +0 -1
  156. package/dist/orm-common/src/types/column.d.ts +0 -172
  157. package/dist/orm-common/src/types/column.d.ts.map +0 -1
  158. package/dist/orm-common/src/types/db.d.ts +0 -175
  159. package/dist/orm-common/src/types/db.d.ts.map +0 -1
  160. package/dist/orm-common/src/types/expr.d.ts +0 -474
  161. package/dist/orm-common/src/types/expr.d.ts.map +0 -1
  162. package/dist/orm-common/src/types/query-def.d.ts +0 -351
  163. package/dist/orm-common/src/types/query-def.d.ts.map +0 -1
  164. package/dist/orm-common/src/utils/result-parser.d.ts +0 -38
  165. package/dist/orm-common/src/utils/result-parser.d.ts.map +0 -1
  166. package/dist/service-client/src/features/event-client.d.ts +0 -14
  167. package/dist/service-client/src/features/event-client.d.ts.map +0 -1
  168. package/dist/service-client/src/features/file-client.d.ts +0 -13
  169. package/dist/service-client/src/features/file-client.d.ts.map +0 -1
  170. package/dist/service-client/src/features/orm/orm-client-connector.d.ts +0 -10
  171. package/dist/service-client/src/features/orm/orm-client-connector.d.ts.map +0 -1
  172. package/dist/service-client/src/features/orm/orm-client-db-context-executor.d.ts +0 -26
  173. package/dist/service-client/src/features/orm/orm-client-db-context-executor.d.ts.map +0 -1
  174. package/dist/service-client/src/features/orm/orm-connect-config.d.ts +0 -13
  175. package/dist/service-client/src/features/orm/orm-connect-config.d.ts.map +0 -1
  176. package/dist/service-client/src/index.d.ts +0 -12
  177. package/dist/service-client/src/index.d.ts.map +0 -1
  178. package/dist/service-client/src/protocol/client-protocol-wrapper.d.ts +0 -23
  179. package/dist/service-client/src/protocol/client-protocol-wrapper.d.ts.map +0 -1
  180. package/dist/service-client/src/service-client.d.ts +0 -41
  181. package/dist/service-client/src/service-client.d.ts.map +0 -1
  182. package/dist/service-client/src/transport/service-transport.d.ts +0 -24
  183. package/dist/service-client/src/transport/service-transport.d.ts.map +0 -1
  184. package/dist/service-client/src/transport/socket-provider.d.ts +0 -31
  185. package/dist/service-client/src/transport/socket-provider.d.ts.map +0 -1
  186. package/dist/service-client/src/types/connection-config.d.ts +0 -8
  187. package/dist/service-client/src/types/connection-config.d.ts.map +0 -1
  188. package/dist/service-client/src/types/progress.types.d.ts +0 -10
  189. package/dist/service-client/src/types/progress.types.d.ts.map +0 -1
  190. package/dist/service-common/src/index.d.ts +0 -8
  191. package/dist/service-common/src/index.d.ts.map +0 -1
  192. package/dist/service-common/src/protocol/protocol.types.d.ts +0 -100
  193. package/dist/service-common/src/protocol/protocol.types.d.ts.map +0 -1
  194. package/dist/service-common/src/protocol/service-protocol.d.ts +0 -63
  195. package/dist/service-common/src/protocol/service-protocol.d.ts.map +0 -1
  196. package/dist/service-common/src/service-types/auto-update-service.types.d.ts +0 -17
  197. package/dist/service-common/src/service-types/auto-update-service.types.d.ts.map +0 -1
  198. package/dist/service-common/src/service-types/crypto-service.types.d.ts +0 -22
  199. package/dist/service-common/src/service-types/crypto-service.types.d.ts.map +0 -1
  200. package/dist/service-common/src/service-types/orm-service.types.d.ts +0 -30
  201. package/dist/service-common/src/service-types/orm-service.types.d.ts.map +0 -1
  202. package/dist/service-common/src/service-types/smtp-service.types.d.ts +0 -55
  203. package/dist/service-common/src/service-types/smtp-service.types.d.ts.map +0 -1
  204. package/dist/service-common/src/types.d.ts +0 -43
  205. package/dist/service-common/src/types.d.ts.map +0 -1
  206. package/src/ApkInstaller.ts +0 -54
  207. package/src/AutoUpdate.ts +0 -215
  208. package/src/IApkInstallerPlugin.ts +0 -12
  209. package/src/index.ts +0 -3
  210. package/src/web/ApkInstallerWeb.ts +0 -30
  211. /package/dist/{capacitor-plugin-auto-update/src/ApkInstaller.d.ts → ApkInstaller.d.ts} +0 -0
  212. /package/dist/{capacitor-plugin-auto-update/src/AutoUpdate.d.ts → AutoUpdate.d.ts} +0 -0
  213. /package/dist/{capacitor-plugin-auto-update/src/IApkInstallerPlugin.d.ts → IApkInstallerPlugin.d.ts} +0 -0
  214. /package/dist/{capacitor-plugin-auto-update/src/index.d.ts → index.d.ts} +0 -0
  215. /package/dist/{capacitor-plugin-auto-update/src/web → web}/ApkInstallerWeb.d.ts +0 -0
package/src/AutoUpdate.ts DELETED
@@ -1,215 +0,0 @@
1
- import { FileSystem } from "@simplysm/capacitor-plugin-file-system";
2
- import { html, waitUntil, pathJoin, pathBasename, pathExtname } from "@simplysm/core-common";
3
- import { downloadBytes } from "@simplysm/core-browser";
4
- import type { ServiceClient } from "@simplysm/service-client";
5
- import type { AutoUpdateService } from "@simplysm/service-common";
6
- import semver from "semver";
7
- import { ApkInstaller } from "./ApkInstaller";
8
-
9
- export abstract class AutoUpdate {
10
- private static readonly _BUTTON_CSS = `
11
- all: unset;
12
- color: blue;
13
- width: 100%;
14
- padding: 10px;
15
- line-height: 1.5em;
16
- font-size: 20px;
17
- position: fixed;
18
- bottom: 0;
19
- left: 0;
20
- border-top: 1px solid lightgrey;
21
- `;
22
-
23
- private static readonly _BUTTON_ACTIVE_CSS = `
24
- background: lightgrey;
25
- `;
26
-
27
- private static _throwAboutReinstall(code: number, targetHref?: string) {
28
- const downloadHtml =
29
- targetHref != null
30
- ? html`
31
- <style>
32
- ._button { ${this._BUTTON_CSS} }
33
- ._button:active { ${this._BUTTON_ACTIVE_CSS} }
34
- </style>
35
- <a class="_button" href="intent://${targetHref.replace(/^https?:\/\//, "")}#Intent;scheme=http;end">
36
- 다운로드
37
- </a>
38
- `
39
- : "";
40
-
41
- throw new Error(html`
42
- APK파일을 다시 다운로드 받아, 설치해야 합니다(${code}). ${downloadHtml}
43
- `);
44
- }
45
-
46
- private static async _checkPermission(log: (messageHtml: string) => void, targetHref?: string) {
47
- if (!navigator.userAgent.toLowerCase().includes("android")) {
48
- throw new Error("안드로이드만 지원합니다.");
49
- }
50
-
51
- try {
52
- if (!(await ApkInstaller.hasPermissionManifest())) {
53
- this._throwAboutReinstall(1, targetHref);
54
- }
55
- } catch (err) {
56
- // eslint-disable-next-line no-console
57
- console.error("[AutoUpdate] hasPermissionManifest 체크 실패:", err);
58
- this._throwAboutReinstall(2, targetHref);
59
- }
60
-
61
- const hasPerm = await ApkInstaller.hasPermission();
62
- if (!hasPerm) {
63
- log(html`
64
- 설치권한이 설정되어야합니다.
65
- <style>
66
- button { ${this._BUTTON_CSS} }
67
- button:active { ${this._BUTTON_ACTIVE_CSS} }
68
- </style>
69
- <button onclick="location.reload()">재시도</button>
70
- `);
71
- await ApkInstaller.requestPermission();
72
- // 최대 5분(300초) 대기 - 사용자가 설정 화면에서 권한을 승인할 시간
73
- await waitUntil(
74
- async () => {
75
- return ApkInstaller.hasPermission();
76
- },
77
- 1000,
78
- 300,
79
- );
80
- }
81
- }
82
-
83
- private static async _installApk(log: (messageHtml: string) => void, apkFilePath: string): Promise<void> {
84
- log(html`
85
- 최신버전을 설치한 후 재시작하세요.
86
- <style>
87
- button { ${this._BUTTON_CSS} }
88
- button:active { ${this._BUTTON_ACTIVE_CSS} }
89
- </style>
90
- <button onclick="location.reload()">재시도</button>
91
- `);
92
- const apkFileUri = await FileSystem.getFileUri(apkFilePath);
93
- await ApkInstaller.install(apkFileUri);
94
- }
95
-
96
- private static _getErrorMessage(err: unknown) {
97
- return html`
98
- 업데이트 중 오류 발생:
99
- <br />
100
- ${err instanceof Error ? err.message : String(err)}
101
- `;
102
- }
103
-
104
- private static async _freezeApp() {
105
- await new Promise(() => {}); // 무한대기
106
- }
107
-
108
- static async run(opt: { log: (messageHtml: string) => void; serviceClient: ServiceClient }) {
109
- try {
110
- opt.log(`최신버전 확인 중...`);
111
-
112
- // 서버의 버전 및 다운로드링크 가져오기
113
- const autoUpdateServiceClient = opt.serviceClient.getService<AutoUpdateService>("AutoUpdateService");
114
-
115
- const serverVersionInfo = await autoUpdateServiceClient.getLastVersion("android");
116
- if (!serverVersionInfo) {
117
- // eslint-disable-next-line no-console
118
- console.log("서버에서 최신버전 정보를 가져오지 못했습니다.");
119
- return;
120
- }
121
-
122
- opt.log(`권한 확인 중...`);
123
- await this._checkPermission(opt.log, opt.serviceClient.hostUrl + serverVersionInfo.downloadPath);
124
-
125
- // 현재 앱 버전 가져오기
126
- const currentVersionInfo = await ApkInstaller.getVersionInfo();
127
-
128
- // 최신버전이거나 서버 버전이 낮으면 반환
129
- if (semver.valid(currentVersionInfo.versionName) === null || semver.valid(serverVersionInfo.version) === null) {
130
- // eslint-disable-next-line no-console
131
- console.log("Invalid semver version, skipping update check");
132
- return;
133
- }
134
- if (!semver.gt(serverVersionInfo.version, currentVersionInfo.versionName)) {
135
- return;
136
- }
137
-
138
- opt.log(`최신버전 파일 다운로드중...`);
139
- const buffer = await downloadBytes(opt.serviceClient.hostUrl + serverVersionInfo.downloadPath, {
140
- onProgress: (progress) => {
141
- const progressText = ((progress.receivedLength * 100) / progress.contentLength).toFixed(2);
142
- opt.log(`최신버전 파일 다운로드중...(${progressText}%)`);
143
- },
144
- });
145
- const storagePath = await FileSystem.getStoragePath("appCache");
146
- const apkFilePath = pathJoin(storagePath, `latest.apk`);
147
- await FileSystem.writeFile(apkFilePath, buffer);
148
-
149
- await this._installApk(opt.log, apkFilePath);
150
- await this._freezeApp();
151
- } catch (err) {
152
- opt.log(this._getErrorMessage(err));
153
- await this._freezeApp();
154
- }
155
- }
156
-
157
- static async runByExternalStorage(opt: { log: (messageHtml: string) => void; dirPath: string }) {
158
- try {
159
- opt.log(`권한 확인 중...`);
160
- await this._checkPermission(opt.log);
161
-
162
- opt.log(`최신버전 확인 중...`);
163
-
164
- // 버전 가져오기
165
- const externalPath = await FileSystem.getStoragePath("external");
166
- const fileInfos = await FileSystem.readdir(pathJoin(externalPath, opt.dirPath));
167
-
168
- const versions = fileInfos
169
- .filter((fileInfo) => !fileInfo.isDirectory)
170
- .map((fileInfo) => ({
171
- fileName: fileInfo.name,
172
- version: pathBasename(fileInfo.name, pathExtname(fileInfo.name)),
173
- extName: pathExtname(fileInfo.name),
174
- }))
175
- .filter((item) => {
176
- return item.extName === ".apk" && /^[0-9.]*$/.test(item.version);
177
- });
178
-
179
- // 버전파일 저장된것 없으면 반환
180
- if (versions.length === 0) return;
181
-
182
- const latestVersion = semver.maxSatisfying(
183
- versions.map((item) => item.version),
184
- "*",
185
- );
186
-
187
- // 유효한 semver 버전이 없으면 반환
188
- if (latestVersion == null) {
189
- // eslint-disable-next-line no-console
190
- console.log("유효한 semver 버전 파일이 없습니다.");
191
- return;
192
- }
193
-
194
- // 현재 앱 버전 가져오기
195
- const currentVersionInfo = await ApkInstaller.getVersionInfo();
196
-
197
- // 최신버전이거나 외부 저장소 버전이 낮으면 반환
198
- if (semver.valid(currentVersionInfo.versionName) === null || semver.valid(latestVersion) === null) {
199
- // eslint-disable-next-line no-console
200
- console.log("Invalid semver version, skipping update check");
201
- return;
202
- }
203
- if (!semver.gt(latestVersion, currentVersionInfo.versionName)) {
204
- return;
205
- }
206
-
207
- const apkFilePath = pathJoin(externalPath, opt.dirPath, latestVersion + ".apk");
208
- await this._installApk(opt.log, apkFilePath);
209
- await this._freezeApp();
210
- } catch (err) {
211
- opt.log(this._getErrorMessage(err));
212
- await this._freezeApp();
213
- }
214
- }
215
- }
@@ -1,12 +0,0 @@
1
- export interface IVersionInfo {
2
- versionName: string;
3
- versionCode: string;
4
- }
5
-
6
- export interface IApkInstallerPlugin {
7
- install(options: { uri: string }): Promise<void>;
8
- hasPermission(): Promise<{ granted: boolean }>;
9
- requestPermission(): Promise<void>;
10
- hasPermissionManifest(): Promise<{ declared: boolean }>;
11
- getVersionInfo(): Promise<IVersionInfo>;
12
- }
package/src/index.ts DELETED
@@ -1,3 +0,0 @@
1
- export * from "./ApkInstaller";
2
- export * from "./AutoUpdate";
3
- export * from "./IApkInstallerPlugin";
@@ -1,30 +0,0 @@
1
- import { WebPlugin } from "@capacitor/core";
2
- import type { IApkInstallerPlugin, IVersionInfo } from "../IApkInstallerPlugin";
3
-
4
- export class ApkInstallerWeb extends WebPlugin implements IApkInstallerPlugin {
5
- install(_options: { uri: string }): Promise<void> {
6
- alert("[ApkInstaller] 웹 환경에서는 APK 설치를 지원하지 않습니다.");
7
- return Promise.resolve();
8
- }
9
-
10
- hasPermission(): Promise<{ granted: boolean }> {
11
- // 웹에서는 권한 체크 스킵
12
- return Promise.resolve({ granted: true });
13
- }
14
-
15
- async requestPermission(): Promise<void> {
16
- // 웹에서는 no-op
17
- }
18
-
19
- hasPermissionManifest(): Promise<{ declared: boolean }> {
20
- // 웹에서는 매니페스트 체크 스킵
21
- return Promise.resolve({ declared: true });
22
- }
23
-
24
- getVersionInfo(): Promise<IVersionInfo> {
25
- return Promise.resolve({
26
- versionName: (import.meta as unknown as { env?: Record<string, string> }).env?.["__VER__"] ?? "0.0.0",
27
- versionCode: "0",
28
- });
29
- }
30
- }