@capgo/cli 8.0.0-alpha.1 → 8.0.0-alpha.3

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 (149) hide show
  1. package/README.md +1 -0
  2. package/dist/index.js +238 -411
  3. package/dist/package.json +89 -93
  4. package/dist/src/api/channels.d.ts +592 -16
  5. package/dist/src/api/channels.d.ts.map +1 -1
  6. package/dist/src/api/update.d.ts.map +1 -1
  7. package/dist/src/app/add.d.ts +2 -8
  8. package/dist/src/app/add.d.ts.map +1 -1
  9. package/dist/src/app/debug.d.ts +1 -1
  10. package/dist/src/app/debug.d.ts.map +1 -1
  11. package/dist/src/app/delete.d.ts +2 -1
  12. package/dist/src/app/delete.d.ts.map +1 -1
  13. package/dist/src/app/info.d.ts +9 -1
  14. package/dist/src/app/info.d.ts.map +1 -1
  15. package/dist/src/app/list.d.ts +19 -1
  16. package/dist/src/app/list.d.ts.map +1 -1
  17. package/dist/src/app/set.d.ts +2 -1
  18. package/dist/src/app/set.d.ts.map +1 -1
  19. package/dist/src/app/setting.d.ts +2 -1
  20. package/dist/src/app/setting.d.ts.map +1 -1
  21. package/dist/src/bundle/cleanup.d.ts +5 -1
  22. package/dist/src/bundle/cleanup.d.ts.map +1 -1
  23. package/dist/src/bundle/compatibility.d.ts +4 -4
  24. package/dist/src/bundle/compatibility.d.ts.map +1 -1
  25. package/dist/src/bundle/delete.d.ts +2 -1
  26. package/dist/src/bundle/delete.d.ts.map +1 -1
  27. package/dist/src/bundle/partial.d.ts +2 -2
  28. package/dist/src/bundle/partial.d.ts.map +1 -1
  29. package/dist/src/bundle/upload.d.ts +3 -3
  30. package/dist/src/bundle/upload.d.ts.map +1 -1
  31. package/dist/src/bundle/upload_interface.d.ts +1 -0
  32. package/dist/src/bundle/upload_interface.d.ts.map +1 -1
  33. package/dist/src/bundle/zip.d.ts.map +1 -1
  34. package/dist/src/channel/add.d.ts +2 -2
  35. package/dist/src/channel/add.d.ts.map +1 -1
  36. package/dist/src/channel/currentBundle.d.ts +2 -1
  37. package/dist/src/channel/currentBundle.d.ts.map +1 -1
  38. package/dist/src/channel/delete.d.ts +2 -1
  39. package/dist/src/channel/delete.d.ts.map +1 -1
  40. package/dist/src/channel/list.d.ts +2 -1
  41. package/dist/src/channel/list.d.ts.map +1 -1
  42. package/dist/src/channel/set.d.ts +2 -1
  43. package/dist/src/channel/set.d.ts.map +1 -1
  44. package/dist/src/checksum.d.ts +9 -0
  45. package/dist/src/checksum.d.ts.map +1 -0
  46. package/dist/src/init.d.ts.map +1 -1
  47. package/dist/src/keyV2.d.ts +2 -3
  48. package/dist/src/keyV2.d.ts.map +1 -1
  49. package/dist/src/login.d.ts +2 -2
  50. package/dist/src/login.d.ts.map +1 -1
  51. package/dist/src/organisation/list.d.ts +3 -0
  52. package/dist/src/organisation/list.d.ts.map +1 -1
  53. package/dist/src/sdk.d.ts +107 -4
  54. package/dist/src/sdk.d.ts.map +1 -1
  55. package/dist/src/sdk.js +247 -310
  56. package/dist/src/types/supabase.types.d.ts +313 -9
  57. package/dist/src/types/supabase.types.d.ts.map +1 -1
  58. package/dist/src/utils/latest-version.d.ts +7 -0
  59. package/dist/src/utils/latest-version.d.ts.map +1 -0
  60. package/dist/src/utils.d.ts +302 -21
  61. package/dist/src/utils.d.ts.map +1 -1
  62. package/package.json +11 -15
  63. package/dist/src/api/app.js +0 -45
  64. package/dist/src/api/app.js.map +0 -1
  65. package/dist/src/api/channels.js +0 -167
  66. package/dist/src/api/channels.js.map +0 -1
  67. package/dist/src/api/cryptoV2.js +0 -102
  68. package/dist/src/api/cryptoV2.js.map +0 -1
  69. package/dist/src/api/update.js +0 -14
  70. package/dist/src/api/update.js.map +0 -1
  71. package/dist/src/api/versions.js +0 -92
  72. package/dist/src/api/versions.js.map +0 -1
  73. package/dist/src/app/add.js +0 -150
  74. package/dist/src/app/add.js.map +0 -1
  75. package/dist/src/app/debug.js +0 -222
  76. package/dist/src/app/debug.js.map +0 -1
  77. package/dist/src/app/delete.js +0 -89
  78. package/dist/src/app/delete.js.map +0 -1
  79. package/dist/src/app/info.js +0 -84
  80. package/dist/src/app/info.js.map +0 -1
  81. package/dist/src/app/list.js +0 -48
  82. package/dist/src/app/list.js.map +0 -1
  83. package/dist/src/app/set.js +0 -96
  84. package/dist/src/app/set.js.map +0 -1
  85. package/dist/src/app/setting.js +0 -50
  86. package/dist/src/app/setting.js.map +0 -1
  87. package/dist/src/bundle/check.js +0 -30
  88. package/dist/src/bundle/check.js.map +0 -1
  89. package/dist/src/bundle/cleanup.js +0 -105
  90. package/dist/src/bundle/cleanup.js.map +0 -1
  91. package/dist/src/bundle/compatibility.js +0 -62
  92. package/dist/src/bundle/compatibility.js.map +0 -1
  93. package/dist/src/bundle/decryptV2.js +0 -76
  94. package/dist/src/bundle/decryptV2.js.map +0 -1
  95. package/dist/src/bundle/delete.js +0 -40
  96. package/dist/src/bundle/delete.js.map +0 -1
  97. package/dist/src/bundle/encryptV2.js +0 -108
  98. package/dist/src/bundle/encryptV2.js.map +0 -1
  99. package/dist/src/bundle/list.js +0 -36
  100. package/dist/src/bundle/list.js.map +0 -1
  101. package/dist/src/bundle/partial.js +0 -332
  102. package/dist/src/bundle/partial.js.map +0 -1
  103. package/dist/src/bundle/unlink.js +0 -70
  104. package/dist/src/bundle/unlink.js.map +0 -1
  105. package/dist/src/bundle/upload.js +0 -700
  106. package/dist/src/bundle/upload.js.map +0 -1
  107. package/dist/src/bundle/upload_interface.js +0 -2
  108. package/dist/src/bundle/upload_interface.js.map +0 -1
  109. package/dist/src/bundle/zip.js +0 -148
  110. package/dist/src/bundle/zip.js.map +0 -1
  111. package/dist/src/channel/add.js +0 -68
  112. package/dist/src/channel/add.js.map +0 -1
  113. package/dist/src/channel/currentBundle.js +0 -54
  114. package/dist/src/channel/currentBundle.js.map +0 -1
  115. package/dist/src/channel/delete.js +0 -77
  116. package/dist/src/channel/delete.js.map +0 -1
  117. package/dist/src/channel/list.js +0 -45
  118. package/dist/src/channel/list.js.map +0 -1
  119. package/dist/src/channel/set.js +0 -220
  120. package/dist/src/channel/set.js.map +0 -1
  121. package/dist/src/config/index.js +0 -31
  122. package/dist/src/config/index.js.map +0 -1
  123. package/dist/src/docs.js +0 -280
  124. package/dist/src/docs.js.map +0 -1
  125. package/dist/src/index.js +0 -504
  126. package/dist/src/index.js.map +0 -1
  127. package/dist/src/init.js +0 -797
  128. package/dist/src/init.js.map +0 -1
  129. package/dist/src/keyV2.js +0 -163
  130. package/dist/src/keyV2.js.map +0 -1
  131. package/dist/src/login.js +0 -51
  132. package/dist/src/login.js.map +0 -1
  133. package/dist/src/organisation/add.js +0 -82
  134. package/dist/src/organisation/add.js.map +0 -1
  135. package/dist/src/organisation/delete.js +0 -91
  136. package/dist/src/organisation/delete.js.map +0 -1
  137. package/dist/src/organisation/index.js +0 -5
  138. package/dist/src/organisation/index.js.map +0 -1
  139. package/dist/src/organisation/list.js +0 -60
  140. package/dist/src/organisation/list.js.map +0 -1
  141. package/dist/src/organisation/set.js +0 -95
  142. package/dist/src/organisation/set.js.map +0 -1
  143. package/dist/src/sdk.js.map +0 -1
  144. package/dist/src/types/supabase.types.js +0 -88
  145. package/dist/src/types/supabase.types.js.map +0 -1
  146. package/dist/src/user/account.js +0 -31
  147. package/dist/src/user/account.js.map +0 -1
  148. package/dist/src/utils.js +0 -1184
  149. package/dist/src/utils.js.map +0 -1
@@ -1,96 +0,0 @@
1
- import { randomUUID } from 'node:crypto';
2
- import { existsSync, readFileSync } from 'node:fs';
3
- import { intro, log, outro } from '@clack/prompts';
4
- import { checkAppExistsAndHasPermissionOrgErr, newIconPath } from '../api/app';
5
- import { createSupabaseClient, findSavedKey, formatError, getAppId, getConfig, getContentType, getOrganization, OrganizationPerm, verifyUser, } from '../utils';
6
- export async function setApp(appId, options, silent = false) {
7
- if (!silent)
8
- intro('Set app');
9
- options.apikey = options.apikey || findSavedKey();
10
- const extConfig = await getConfig();
11
- appId = getAppId(appId, extConfig?.config);
12
- if (!options.apikey) {
13
- if (!silent)
14
- log.error('Missing API key, you need to provide an API key to upload your bundle');
15
- throw new Error('Missing API key');
16
- }
17
- if (!appId) {
18
- if (!silent)
19
- log.error('Missing argument, you need to provide a appId, or be in a capacitor project');
20
- throw new Error('Missing appId');
21
- }
22
- const supabase = await createSupabaseClient(options.apikey, options.supaHost, options.supaAnon);
23
- const organization = await getOrganization(supabase, ['admin', 'super_admin']);
24
- const organizationUid = organization.gid;
25
- const userId = await verifyUser(supabase, options.apikey, ['write', 'all']);
26
- await checkAppExistsAndHasPermissionOrgErr(supabase, options.apikey, appId, OrganizationPerm.admin, silent);
27
- const { name, icon, retention } = options;
28
- if (retention && Number.isNaN(Number(retention))) {
29
- if (!silent)
30
- log.error('retention value must be a number');
31
- throw new Error('Retention value must be a number');
32
- }
33
- else if (retention && retention < 0) {
34
- if (!silent)
35
- log.error('retention value cannot be less than 0');
36
- throw new Error('Retention value cannot be less than 0');
37
- }
38
- else if (retention && retention >= 63113904) {
39
- if (!silent)
40
- log.error('retention value cannot be greater than 63113904 seconds (2 years)');
41
- throw new Error('Retention value cannot be greater than 63113904 seconds (2 years)');
42
- }
43
- let iconBuff;
44
- let iconType;
45
- const fileName = `icon_${randomUUID()}`;
46
- let signedURL = 'https://xvwzpoazmxkqosrdewyv.supabase.co/storage/v1/object/public/images/capgo.png';
47
- if (icon && existsSync(icon)) {
48
- iconBuff = readFileSync(icon);
49
- const contentType = getContentType(icon);
50
- iconType = contentType || 'image/png';
51
- if (!silent)
52
- log.warn(`Found app icon ${icon}`);
53
- }
54
- else if (existsSync(newIconPath)) {
55
- iconBuff = readFileSync(newIconPath);
56
- const contentType = getContentType(newIconPath);
57
- iconType = contentType || 'image/png';
58
- if (!silent)
59
- log.warn(`Found app icon ${newIconPath}`);
60
- }
61
- else if (!silent) {
62
- log.warn(`Cannot find app icon in any of the following locations: ${icon}, ${newIconPath}`);
63
- }
64
- if (iconBuff && iconType) {
65
- const { error } = await supabase.storage
66
- .from(`images/org/${organizationUid}/${appId}`)
67
- .upload(fileName, iconBuff, { contentType: iconType });
68
- if (error) {
69
- if (!silent)
70
- log.error(`Could not set app ${formatError(error)}`);
71
- throw new Error(`Could not set app: ${formatError(error)}`);
72
- }
73
- const { data: signedURLData } = await supabase.storage
74
- .from(`images/org/${organizationUid}/${appId}`)
75
- .getPublicUrl(fileName);
76
- signedURL = signedURLData?.publicUrl || signedURL;
77
- }
78
- const { error: dbError } = await supabase
79
- .from('apps')
80
- .update({
81
- icon_url: signedURL,
82
- name,
83
- retention: !retention ? undefined : retention * 24 * 60 * 60,
84
- })
85
- .eq('app_id', appId)
86
- .eq('user_id', userId);
87
- if (dbError) {
88
- if (!silent)
89
- log.error(`Could not set app ${formatError(dbError)}`);
90
- throw new Error(`Could not set app: ${formatError(dbError)}`);
91
- }
92
- if (!silent)
93
- outro('Done ✅');
94
- return true;
95
- }
96
- //# sourceMappingURL=set.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"set.js","sourceRoot":"","sources":["../../../src/app/set.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAClD,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAA;AAClD,OAAO,EAAE,oCAAoC,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAC9E,OAAO,EACL,oBAAoB,EACpB,YAAY,EACZ,WAAW,EACX,QAAQ,EACR,SAAS,EACT,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,UAAU,GACX,MAAM,UAAU,CAAA;AAEjB,MAAM,CAAC,KAAK,UAAU,MAAM,CAAC,KAAa,EAAE,OAAgB,EAAE,MAAM,GAAG,KAAK;IAC1E,IAAI,CAAC,MAAM;QACT,KAAK,CAAC,SAAS,CAAC,CAAA;IAElB,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,YAAY,EAAE,CAAA;IACjD,MAAM,SAAS,GAAG,MAAM,SAAS,EAAE,CAAA;IACnC,KAAK,GAAG,QAAQ,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,CAAC,CAAA;IAE1C,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;QACpB,IAAI,CAAC,MAAM;YACT,GAAG,CAAC,KAAK,CAAC,uEAAuE,CAAC,CAAA;QACpF,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAA;IACpC,CAAC;IAED,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,IAAI,CAAC,MAAM;YACT,GAAG,CAAC,KAAK,CAAC,6EAA6E,CAAC,CAAA;QAC1F,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAA;IAClC,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,oBAAoB,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAA;IAC/F,MAAM,YAAY,GAAG,MAAM,eAAe,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC,CAAA;IAC9E,MAAM,eAAe,GAAG,YAAY,CAAC,GAAG,CAAA;IAExC,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,QAAQ,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAA;IAE3E,MAAM,oCAAoC,CAAC,QAAQ,EAAE,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;IAE3G,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,OAAO,CAAA;IAEzC,IAAI,SAAS,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC;QACjD,IAAI,CAAC,MAAM;YACT,GAAG,CAAC,KAAK,CAAC,kCAAkC,CAAC,CAAA;QAC/C,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAA;IACrD,CAAC;SACI,IAAI,SAAS,IAAI,SAAS,GAAG,CAAC,EAAE,CAAC;QACpC,IAAI,CAAC,MAAM;YACT,GAAG,CAAC,KAAK,CAAC,uCAAuC,CAAC,CAAA;QACpD,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAA;IAC1D,CAAC;SACI,IAAI,SAAS,IAAI,SAAS,IAAI,QAAQ,EAAE,CAAC;QAC5C,IAAI,CAAC,MAAM;YACT,GAAG,CAAC,KAAK,CAAC,mEAAmE,CAAC,CAAA;QAChF,MAAM,IAAI,KAAK,CAAC,mEAAmE,CAAC,CAAA;IACtF,CAAC;IAED,IAAI,QAA4B,CAAA;IAChC,IAAI,QAA4B,CAAA;IAChC,MAAM,QAAQ,GAAG,QAAQ,UAAU,EAAE,EAAE,CAAA;IACvC,IAAI,SAAS,GAAG,oFAAoF,CAAA;IAEpG,IAAI,IAAI,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QAC7B,QAAQ,GAAG,YAAY,CAAC,IAAI,CAAC,CAAA;QAC7B,MAAM,WAAW,GAAG,cAAc,CAAC,IAAI,CAAC,CAAA;QACxC,QAAQ,GAAG,WAAW,IAAI,WAAW,CAAA;QACrC,IAAI,CAAC,MAAM;YACT,GAAG,CAAC,IAAI,CAAC,kBAAkB,IAAI,EAAE,CAAC,CAAA;IACtC,CAAC;SACI,IAAI,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QACjC,QAAQ,GAAG,YAAY,CAAC,WAAW,CAAC,CAAA;QACpC,MAAM,WAAW,GAAG,cAAc,CAAC,WAAW,CAAC,CAAA;QAC/C,QAAQ,GAAG,WAAW,IAAI,WAAW,CAAA;QACrC,IAAI,CAAC,MAAM;YACT,GAAG,CAAC,IAAI,CAAC,kBAAkB,WAAW,EAAE,CAAC,CAAA;IAC7C,CAAC;SACI,IAAI,CAAC,MAAM,EAAE,CAAC;QACjB,GAAG,CAAC,IAAI,CAAC,2DAA2D,IAAI,KAAK,WAAW,EAAE,CAAC,CAAA;IAC7F,CAAC;IAED,IAAI,QAAQ,IAAI,QAAQ,EAAE,CAAC;QACzB,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,QAAQ,CAAC,OAAO;aACrC,IAAI,CAAC,cAAc,eAAe,IAAI,KAAK,EAAE,CAAC;aAC9C,MAAM,CAAC,QAAQ,EAAE,QAAQ,EAAE,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC,CAAA;QAExD,IAAI,KAAK,EAAE,CAAC;YACV,IAAI,CAAC,MAAM;gBACT,GAAG,CAAC,KAAK,CAAC,qBAAqB,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;YACtD,MAAM,IAAI,KAAK,CAAC,sBAAsB,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;QAC7D,CAAC;QAED,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,MAAM,QAAQ,CAAC,OAAO;aACnD,IAAI,CAAC,cAAc,eAAe,IAAI,KAAK,EAAE,CAAC;aAC9C,YAAY,CAAC,QAAQ,CAAC,CAAA;QAEzB,SAAS,GAAG,aAAa,EAAE,SAAS,IAAI,SAAS,CAAA;IACnD,CAAC;IAED,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,MAAM,QAAQ;SACtC,IAAI,CAAC,MAAM,CAAC;SACZ,MAAM,CAAC;QACN,QAAQ,EAAE,SAAS;QACnB,IAAI;QACJ,SAAS,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE;KAC7D,CAAC;SACD,EAAE,CAAC,QAAQ,EAAE,KAAK,CAAC;SACnB,EAAE,CAAC,SAAS,EAAE,MAAM,CAAC,CAAA;IAExB,IAAI,OAAO,EAAE,CAAC;QACZ,IAAI,CAAC,MAAM;YACT,GAAG,CAAC,KAAK,CAAC,qBAAqB,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;QACxD,MAAM,IAAI,KAAK,CAAC,sBAAsB,WAAW,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;IAC/D,CAAC;IAED,IAAI,CAAC,MAAM;QACT,KAAK,CAAC,QAAQ,CAAC,CAAA;IAEjB,OAAO,IAAI,CAAA;AACb,CAAC"}
@@ -1,50 +0,0 @@
1
- import { intro, log, outro } from '@clack/prompts';
2
- import { writeConfigUpdater } from '../config';
3
- import { formatError, getConfig } from '../utils';
4
- export async function setSetting(setting, options, silent = false) {
5
- if (!silent)
6
- intro('Set a specific setting in capacitor config');
7
- if (options.bool && options.string) {
8
- if (!silent)
9
- log.error('Bool and string CANNOT be set at the same time');
10
- throw new Error('Bool and string cannot both be provided');
11
- }
12
- if (!options.bool && !options.string) {
13
- if (!silent)
14
- log.error('You MUST provide either bool or string as the value');
15
- throw new Error('Either bool or string value is required');
16
- }
17
- if (options.bool && options.bool !== 'true' && options.bool !== 'false') {
18
- if (!silent)
19
- log.error('Invalid bool');
20
- throw new Error('Invalid bool value; expected true or false');
21
- }
22
- try {
23
- const config = await getConfig();
24
- let baseObj = config.config;
25
- const pathElements = setting.split('.');
26
- if (pathElements.length === 0) {
27
- if (!silent)
28
- log.error('Invalid path');
29
- throw new Error('Invalid config path');
30
- }
31
- for (const path of pathElements.slice(0, -1)) {
32
- if (!Object.prototype.hasOwnProperty.call(baseObj, path))
33
- baseObj[path] = {};
34
- baseObj = baseObj[path];
35
- }
36
- const finalValue = options.bool ? options.bool === 'true' : options.string;
37
- baseObj[pathElements.at(-1)] = finalValue;
38
- await writeConfigUpdater(config, true);
39
- if (!silent)
40
- log.success(`Set "${setting}" to "${finalValue}"`);
41
- }
42
- catch (error) {
43
- if (!silent)
44
- log.error(`Cannot set config in capacitor settings ${formatError(error)}`);
45
- throw new Error(`Cannot set capacitor config: ${formatError(error)}`);
46
- }
47
- if (!silent)
48
- outro('Done ✅');
49
- }
50
- //# sourceMappingURL=setting.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"setting.js","sourceRoot":"","sources":["../../../src/app/setting.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAA;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAA;AAC9C,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAOjD,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,OAAe,EAAE,OAAgB,EAAE,MAAM,GAAG,KAAK;IAChF,IAAI,CAAC,MAAM;QACT,KAAK,CAAC,4CAA4C,CAAC,CAAA;IAErD,IAAI,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QACnC,IAAI,CAAC,MAAM;YACT,GAAG,CAAC,KAAK,CAAC,gDAAgD,CAAC,CAAA;QAC7D,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAA;IAC5D,CAAC;IAED,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;QACrC,IAAI,CAAC,MAAM;YACT,GAAG,CAAC,KAAK,CAAC,qDAAqD,CAAC,CAAA;QAClE,MAAM,IAAI,KAAK,CAAC,yCAAyC,CAAC,CAAA;IAC5D,CAAC;IAED,IAAI,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QACxE,IAAI,CAAC,MAAM;YACT,GAAG,CAAC,KAAK,CAAC,cAAc,CAAC,CAAA;QAC3B,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAA;IAC/D,CAAC;IAED,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,SAAS,EAAE,CAAA;QAChC,IAAI,OAAO,GAAG,MAAM,CAAC,MAAa,CAAA;QAClC,MAAM,YAAY,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QAEvC,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC9B,IAAI,CAAC,MAAM;gBACT,GAAG,CAAC,KAAK,CAAC,cAAc,CAAC,CAAA;YAC3B,MAAM,IAAI,KAAK,CAAC,qBAAqB,CAAC,CAAA;QACxC,CAAC;QAED,KAAK,MAAM,IAAI,IAAI,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7C,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC;gBACtD,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,CAAA;YACpB,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;QACzB,CAAC;QAED,MAAM,UAAU,GAAqB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,OAAO,CAAC,MAAO,CAAA;QAE7F,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC,CAAE,CAAC,GAAG,UAAU,CAAA;QAC1C,MAAM,kBAAkB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;QAEtC,IAAI,CAAC,MAAM;YACT,GAAG,CAAC,OAAO,CAAC,QAAQ,OAAO,SAAS,UAAU,GAAG,CAAC,CAAA;IACtD,CAAC;IACD,OAAO,KAAK,EAAE,CAAC;QACb,IAAI,CAAC,MAAM;YACT,GAAG,CAAC,KAAK,CAAC,2CAA2C,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;QAC5E,MAAM,IAAI,KAAK,CAAC,gCAAgC,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;IACvE,CAAC;IAED,IAAI,CAAC,MAAM;QACT,KAAK,CAAC,QAAQ,CAAC,CAAA;AACnB,CAAC"}
@@ -1,30 +0,0 @@
1
- import { readdirSync, readFileSync, statSync } from 'node:fs';
2
- import { extname, join } from 'node:path';
3
- function searchInFile(filePath, searchString) {
4
- const content = readFileSync(filePath, 'utf8');
5
- return content.includes(searchString);
6
- }
7
- export function searchInDirectory(dirPath, searchString) {
8
- const files = readdirSync(dirPath);
9
- for (const file of files) {
10
- const filePath = join(dirPath, file);
11
- const stats = statSync(filePath);
12
- if (stats.isDirectory()) {
13
- if (searchInDirectory(filePath, searchString))
14
- return true;
15
- }
16
- else if (stats.isFile() && extname(filePath) === '.js') {
17
- if (searchInFile(filePath, searchString))
18
- return true;
19
- }
20
- }
21
- return false;
22
- }
23
- export function checkIndexPosition(dirPath) {
24
- const files = readdirSync(dirPath);
25
- const index = files.indexOf('index.html');
26
- if (index > -1)
27
- return true;
28
- return false;
29
- }
30
- //# sourceMappingURL=check.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"check.js","sourceRoot":"","sources":["../../../src/bundle/check.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AAC7D,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AAEzC,SAAS,YAAY,CAAC,QAAgB,EAAE,YAAoB;IAC1D,MAAM,OAAO,GAAG,YAAY,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;IAC9C,OAAO,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAA;AACvC,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,OAAe,EAAE,YAAoB;IACrE,MAAM,KAAK,GAAG,WAAW,CAAC,OAAO,CAAC,CAAA;IAClC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAA;QACpC,MAAM,KAAK,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAA;QAEhC,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;YACxB,IAAI,iBAAiB,CAAC,QAAQ,EAAE,YAAY,CAAC;gBAC3C,OAAO,IAAI,CAAA;QACf,CAAC;aACI,IAAI,KAAK,CAAC,MAAM,EAAE,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,KAAK,EAAE,CAAC;YACvD,IAAI,YAAY,CAAC,QAAQ,EAAE,YAAY,CAAC;gBACtC,OAAO,IAAI,CAAA;QACf,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAA;AACd,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,OAAe;IAChD,MAAM,KAAK,GAAG,WAAW,CAAC,OAAO,CAAC,CAAA;IAClC,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,CAAA;IACzC,IAAI,KAAK,GAAG,CAAC,CAAC;QACZ,OAAO,IAAI,CAAA;IAEb,OAAO,KAAK,CAAA;AACd,CAAC"}
@@ -1,105 +0,0 @@
1
- import { confirm as confirmC, intro, isCancel, log, outro } from '@clack/prompts';
2
- import { format, greaterThan, increment, lessThan, parse, } from '@std/semver';
3
- import { checkAppExistsAndHasPermissionOrgErr } from '../api/app';
4
- import { checkAlerts } from '../api/update';
5
- import { deleteSpecificVersion, displayBundles, getActiveAppVersions, getChannelsVersion } from '../api/versions';
6
- import { createSupabaseClient, findSavedKey, getAppId, getConfig, getHumanDate, OrganizationPerm, verifyUser, } from '../utils';
7
- async function removeVersions(toRemove, supabase, appId, silent) {
8
- for await (const row of toRemove) {
9
- if (!silent)
10
- log.warn(`Removing ${row.name} created on ${getHumanDate(row.created_at)}`);
11
- await deleteSpecificVersion(supabase, appId, row.name);
12
- }
13
- }
14
- function getRemovableVersionsInSemverRange(data, bundleVersion, nextMajorVersion) {
15
- const toRemove = [];
16
- for (const row of data ?? []) {
17
- const rowVersion = parse(row.name);
18
- if (greaterThan(rowVersion, bundleVersion) && lessThan(rowVersion, nextMajorVersion))
19
- toRemove.push(row);
20
- }
21
- return toRemove;
22
- }
23
- export async function cleanupBundle(appId, options, silent = false) {
24
- if (!silent)
25
- intro('Cleanup versions in Capgo');
26
- await checkAlerts();
27
- options.apikey = options.apikey || findSavedKey();
28
- const { bundle, keep = 4 } = options;
29
- const force = options.force || false;
30
- const ignoreChannel = options.ignoreChannel || false;
31
- const extConfig = await getConfig();
32
- appId = getAppId(appId, extConfig?.config);
33
- if (!options.apikey) {
34
- if (!silent)
35
- log.error('Missing API key, you need to provide an API key to delete your app');
36
- throw new Error('Missing API key');
37
- }
38
- if (!appId) {
39
- if (!silent)
40
- log.error('Missing argument, you need to provide a appid, or be in a capacitor project');
41
- throw new Error('Missing appId');
42
- }
43
- const supabase = await createSupabaseClient(options.apikey, options.supaHost, options.supaAnon);
44
- await verifyUser(supabase, options.apikey, ['write', 'all']);
45
- await checkAppExistsAndHasPermissionOrgErr(supabase, options.apikey, appId, OrganizationPerm.write, silent);
46
- if (!silent)
47
- log.info('Querying all available versions in Capgo');
48
- let allVersions = await getActiveAppVersions(supabase, appId);
49
- const versionInUse = await getChannelsVersion(supabase, appId);
50
- if (!silent)
51
- log.info(`Total active versions in Capgo: ${allVersions?.length ?? 0}`);
52
- if (!allVersions?.length) {
53
- if (!silent)
54
- log.error('No versions found, aborting cleanup');
55
- throw new Error('No versions found');
56
- }
57
- if (bundle) {
58
- const bundleVersion = parse(bundle);
59
- const nextMajorVersion = increment(bundleVersion, 'major');
60
- if (!silent)
61
- log.info(`Querying available versions in Capgo between ${format(bundleVersion)} and ${format(nextMajorVersion)}`);
62
- allVersions = getRemovableVersionsInSemverRange(allVersions, bundleVersion, nextMajorVersion);
63
- if (!silent)
64
- log.info(`Active versions in Capgo between ${format(bundleVersion)} and ${format(nextMajorVersion)}: ${allVersions?.length ?? 0}`);
65
- }
66
- const toRemove = [];
67
- let kept = 0;
68
- for (const v of allVersions) {
69
- const isInUse = versionInUse.find(vi => vi === v.id);
70
- if (kept < keep || (isInUse && !ignoreChannel)) {
71
- v.keep = isInUse ? '✅ (Linked to channel)' : '✅';
72
- kept += 1;
73
- }
74
- else {
75
- v.keep = '❌';
76
- toRemove.push(v);
77
- }
78
- }
79
- if (!toRemove.length) {
80
- if (!silent)
81
- log.warn('Nothing to be removed, aborting removal...');
82
- return { removed: 0, kept };
83
- }
84
- if (!silent)
85
- displayBundles(allVersions);
86
- if (!force) {
87
- if (!silent) {
88
- const doDelete = await confirmC({ message: 'Do you want to continue removing the versions specified?' });
89
- if (isCancel(doDelete) || !doDelete) {
90
- log.warn('Not confirmed, aborting removal...');
91
- throw new Error('Cleanup cancelled by user');
92
- }
93
- }
94
- else {
95
- throw new Error('Cleanup requires force=true in SDK mode to prevent accidental deletions');
96
- }
97
- }
98
- if (!silent)
99
- log.success('You have confirmed removal, removing versions now');
100
- await removeVersions(toRemove, supabase, appId, silent);
101
- if (!silent)
102
- outro('Done ✅');
103
- return { removed: toRemove.length, kept };
104
- }
105
- //# sourceMappingURL=cleanup.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cleanup.js","sourceRoot":"","sources":["../../../src/bundle/cleanup.ts"],"names":[],"mappings":"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"}
@@ -1,62 +0,0 @@
1
- import { intro, log } from '@clack/prompts';
2
- import { Table } from '@sauber/table';
3
- import { checkAppExistsAndHasPermissionOrgErr } from '../api/app';
4
- import { checkCompatibility, createSupabaseClient, findSavedKey, formatError, getAppId, getConfig, isCompatible, OrganizationPerm, verifyUser, } from '../utils';
5
- export async function checkCompatibilityCommandInternal(appId, options, silent = false) {
6
- if (!silent)
7
- intro('Check compatibility');
8
- const enrichedOptions = {
9
- ...options,
10
- apikey: options.apikey || findSavedKey(),
11
- };
12
- const extConfig = await getConfig();
13
- const resolvedAppId = getAppId(appId, extConfig?.config);
14
- const channel = enrichedOptions.channel;
15
- if (!channel) {
16
- if (!silent)
17
- log.error('Missing argument, you need to provide a channel');
18
- throw new Error('Missing channel');
19
- }
20
- if (!enrichedOptions.apikey) {
21
- if (!silent)
22
- log.error('Missing API key, you need to provide an API key to upload your bundle');
23
- throw new Error('Missing API key');
24
- }
25
- if (!resolvedAppId) {
26
- if (!silent)
27
- log.error('Missing argument, you need to provide an appId, or be in a capacitor project');
28
- throw new Error('Missing appId');
29
- }
30
- const supabase = await createSupabaseClient(enrichedOptions.apikey, enrichedOptions.supaHost, enrichedOptions.supaAnon);
31
- await verifyUser(supabase, enrichedOptions.apikey, ['write', 'all', 'read', 'upload']);
32
- await checkAppExistsAndHasPermissionOrgErr(supabase, enrichedOptions.apikey, resolvedAppId, OrganizationPerm.read, silent);
33
- const compatibility = await checkCompatibility(supabase, resolvedAppId, channel, enrichedOptions.packageJson, enrichedOptions.nodeModules);
34
- if (!silent) {
35
- const table = new Table();
36
- table.headers = ['Package', 'Local version', 'Remote version', 'Compatible'];
37
- table.theme = Table.roundTheme;
38
- table.rows = [];
39
- const yesSymbol = enrichedOptions.text ? 'Yes' : '✅';
40
- const noSymbol = enrichedOptions.text ? 'No' : '❌';
41
- for (const entry of compatibility.finalCompatibility) {
42
- const { name, localVersion, remoteVersion } = entry;
43
- const compatible = isCompatible(entry) ? yesSymbol : noSymbol;
44
- table.rows.push([name, localVersion, remoteVersion, compatible]);
45
- }
46
- log.success('Compatibility');
47
- log.success(table.toString());
48
- }
49
- return {
50
- finalCompatibility: compatibility.finalCompatibility,
51
- };
52
- }
53
- export async function checkCompatibilityCommand(appId, options) {
54
- try {
55
- await checkCompatibilityCommandInternal(appId, options, false);
56
- }
57
- catch (error) {
58
- log.error(`Error checking compatibility ${formatError(error)}`);
59
- throw error;
60
- }
61
- }
62
- //# sourceMappingURL=compatibility.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"compatibility.js","sourceRoot":"","sources":["../../../src/bundle/compatibility.ts"],"names":[],"mappings":"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"}
@@ -1,76 +0,0 @@
1
- import { existsSync, readFileSync, writeFileSync } from 'node:fs';
2
- import { intro, log, outro } from '@clack/prompts';
3
- import { checksum as getChecksum } from '@tomasklaen/checksum';
4
- import { decryptChecksumV2, decryptSourceV2 } from '../api/cryptoV2';
5
- import { checkAlerts } from '../api/update';
6
- import { baseKeyPubV2, formatError, getConfig } from '../utils';
7
- function resolvePublicKey(options, extConfig) {
8
- const fallbackKeyPath = options.key || baseKeyPubV2;
9
- let publicKey = extConfig.config.plugins?.CapacitorUpdater?.publicKey;
10
- if (existsSync(fallbackKeyPath)) {
11
- publicKey = readFileSync(fallbackKeyPath, 'utf8');
12
- }
13
- else if (!publicKey && options.keyData) {
14
- publicKey = options.keyData;
15
- }
16
- return { publicKey, fallbackKeyPath };
17
- }
18
- export async function decryptZipV2Internal(zipPath, ivsessionKey, options, silent = false) {
19
- if (!silent)
20
- intro('Decrypt zip file');
21
- try {
22
- await checkAlerts();
23
- if (!existsSync(zipPath)) {
24
- const message = `Zip not found at the path ${zipPath}`;
25
- if (!silent)
26
- log.error(message);
27
- throw new Error(message);
28
- }
29
- const extConfig = await getConfig();
30
- if (!options.key && !existsSync(baseKeyPubV2) && !extConfig.config.plugins?.CapacitorUpdater?.privateKey) {
31
- const message = `Private Key not found at the path ${baseKeyPubV2} or in ${extConfig.path}`;
32
- if (!silent)
33
- log.error(message);
34
- throw new Error(message);
35
- }
36
- const { publicKey, fallbackKeyPath } = resolvePublicKey(options, extConfig);
37
- if (!publicKey) {
38
- const message = `Cannot find public key ${fallbackKeyPath} or as keyData option or in ${extConfig.path}`;
39
- if (!silent)
40
- log.error(message);
41
- throw new Error(message);
42
- }
43
- const zipFile = readFileSync(zipPath);
44
- const decodedZip = decryptSourceV2(zipFile, ivsessionKey, options.keyData ?? publicKey);
45
- const outputPath = `${zipPath}_decrypted.zip`;
46
- writeFileSync(outputPath, decodedZip);
47
- if (!silent)
48
- log.info(`Decrypted zip file at ${outputPath}`);
49
- let checksumMatches;
50
- if (options.checksum) {
51
- const checksum = await getChecksum(decodedZip, 'sha256');
52
- const decryptedChecksum = decryptChecksumV2(options.checksum, options.keyData ?? publicKey);
53
- checksumMatches = checksum === decryptedChecksum;
54
- if (!checksumMatches) {
55
- const message = `Checksum does not match ${checksum} !== ${decryptedChecksum}`;
56
- if (!silent)
57
- log.error(message);
58
- throw new Error(message);
59
- }
60
- if (!silent)
61
- log.info('Checksum matches');
62
- }
63
- if (!silent)
64
- outro('✅ done');
65
- return { outputPath, checksumMatches };
66
- }
67
- catch (error) {
68
- if (!silent)
69
- log.error(`Error decrypting zip file ${formatError(error)}`);
70
- throw error instanceof Error ? error : new Error(String(error));
71
- }
72
- }
73
- export async function decryptZipV2(zipPath, ivsessionKey, options) {
74
- await decryptZipV2Internal(zipPath, ivsessionKey, options, false);
75
- }
76
- //# sourceMappingURL=decryptV2.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"decryptV2.js","sourceRoot":"","sources":["../../../src/bundle/decryptV2.ts"],"names":[],"mappings":"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"}
@@ -1,40 +0,0 @@
1
- import { intro, log, outro } from '@clack/prompts';
2
- import { checkAppExistsAndHasPermissionOrgErr } from '../api/app';
3
- import { deleteSpecificVersion } from '../api/versions';
4
- import { createSupabaseClient, findSavedKey, getAppId, getConfig, OrganizationPerm, verifyUser } from '../utils';
5
- export async function deleteBundle(bundleId, appId, options, silent = false) {
6
- if (!silent)
7
- intro('Delete bundle');
8
- options.apikey = options.apikey || findSavedKey();
9
- const extConfig = await getConfig();
10
- appId = getAppId(appId, extConfig?.config);
11
- if (!options.apikey) {
12
- if (!silent)
13
- log.error('Missing API key, you need to provide an API key to upload your bundle');
14
- throw new Error('Missing API key');
15
- }
16
- if (!appId) {
17
- if (!silent)
18
- log.error('Missing argument, you need to provide a appId, or be in a capacitor project');
19
- throw new Error('Missing appId');
20
- }
21
- if (!bundleId) {
22
- if (!silent)
23
- log.error('Missing argument, you need to provide a bundleId, or be in a capacitor project');
24
- throw new Error('Missing bundleId');
25
- }
26
- const supabase = await createSupabaseClient(options.apikey, options.supaHost, options.supaAnon);
27
- await verifyUser(supabase, options.apikey, ['write', 'all']);
28
- await checkAppExistsAndHasPermissionOrgErr(supabase, options.apikey, appId, OrganizationPerm.write, silent);
29
- if (!silent) {
30
- log.info(`Deleting bundle ${appId}@${bundleId} from Capgo`);
31
- log.info(`Keep in mind that you will not be able to reuse this bundle version, it's gone forever`);
32
- }
33
- await deleteSpecificVersion(supabase, appId, bundleId);
34
- if (!silent) {
35
- log.success(`Bundle ${appId}@${bundleId} deleted in Capgo`);
36
- outro('Done');
37
- }
38
- return true;
39
- }
40
- //# sourceMappingURL=delete.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"delete.js","sourceRoot":"","sources":["../../../src/bundle/delete.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAA;AAClD,OAAO,EAAE,oCAAoC,EAAE,MAAM,YAAY,CAAA;AACjE,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAA;AACvD,OAAO,EAAE,oBAAoB,EAAE,YAAY,EAAE,QAAQ,EAAE,SAAS,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA;AAMhH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,QAAgB,EAAE,KAAa,EAAE,OAAgB,EAAE,MAAM,GAAG,KAAK;IAClG,IAAI,CAAC,MAAM;QACT,KAAK,CAAC,eAAe,CAAC,CAAA;IAExB,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,YAAY,EAAE,CAAA;IACjD,MAAM,SAAS,GAAG,MAAM,SAAS,EAAE,CAAA;IACnC,KAAK,GAAG,QAAQ,CAAC,KAAK,EAAE,SAAS,EAAE,MAAM,CAAC,CAAA;IAE1C,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;QACpB,IAAI,CAAC,MAAM;YACT,GAAG,CAAC,KAAK,CAAC,uEAAuE,CAAC,CAAA;QACpF,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAA;IACpC,CAAC;IAED,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,IAAI,CAAC,MAAM;YACT,GAAG,CAAC,KAAK,CAAC,6EAA6E,CAAC,CAAA;QAC1F,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAA;IAClC,CAAC;IAED,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,IAAI,CAAC,MAAM;YACT,GAAG,CAAC,KAAK,CAAC,gFAAgF,CAAC,CAAA;QAC7F,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAA;IACrC,CAAC;IAED,MAAM,QAAQ,GAAG,MAAM,oBAAoB,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAA;IAE/F,MAAM,UAAU,CAAC,QAAQ,EAAE,OAAO,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAA;IAC5D,MAAM,oCAAoC,CAAC,QAAQ,EAAE,OAAO,CAAC,MAAM,EAAE,KAAK,EAAE,gBAAgB,CAAC,KAAK,EAAE,MAAM,CAAC,CAAA;IAE3G,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,GAAG,CAAC,IAAI,CAAC,mBAAmB,KAAK,IAAI,QAAQ,aAAa,CAAC,CAAA;QAC3D,GAAG,CAAC,IAAI,CAAC,wFAAwF,CAAC,CAAA;IACpG,CAAC;IAED,MAAM,qBAAqB,CAAC,QAAQ,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAA;IAEtD,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,GAAG,CAAC,OAAO,CAAC,UAAU,KAAK,IAAI,QAAQ,mBAAmB,CAAC,CAAA;QAC3D,KAAK,CAAC,MAAM,CAAC,CAAA;IACf,CAAC;IAED,OAAO,IAAI,CAAA;AACb,CAAC"}
@@ -1,108 +0,0 @@
1
- import { existsSync, readFileSync, writeFileSync } from 'node:fs';
2
- import { intro, log, outro } from '@clack/prompts';
3
- import { encryptChecksumV2, encryptSourceV2, generateSessionKey } from '../api/cryptoV2';
4
- import { checkAlerts } from '../api/update';
5
- import { baseKeyV2, formatError, getConfig } from '../utils';
6
- function emitJsonError(error) {
7
- console.error(formatError(error));
8
- }
9
- export async function encryptZipV2Internal(zipPath, checksum, options, silent = false) {
10
- const { json } = options;
11
- const shouldShowPrompts = !json && !silent;
12
- if (shouldShowPrompts) {
13
- intro('Encryption');
14
- await checkAlerts();
15
- }
16
- try {
17
- const extConfig = await getConfig();
18
- const hasPrivateKeyInConfig = !!extConfig.config.plugins?.CapacitorUpdater?.privateKey;
19
- const hasPublicKeyInConfig = !!extConfig.config.plugins?.CapacitorUpdater?.publicKey;
20
- if (hasPrivateKeyInConfig && shouldShowPrompts)
21
- log.warning('There is still a privateKey in the config');
22
- if (!existsSync(zipPath)) {
23
- const message = `Zip not found at the path ${zipPath}`;
24
- if (!silent) {
25
- if (json)
26
- emitJsonError({ error: 'zip_not_found' });
27
- else
28
- log.error(`Error: ${message}`);
29
- }
30
- throw new Error(message);
31
- }
32
- if (!hasPublicKeyInConfig) {
33
- if (!silent) {
34
- if (json)
35
- emitJsonError({ error: 'missing_public_key' });
36
- else
37
- log.warning('Warning: Missing Public Key in config');
38
- }
39
- throw new Error('Missing public key in config');
40
- }
41
- const keyPath = options.key || baseKeyV2;
42
- let privateKey = options.keyData || '';
43
- if (!existsSync(keyPath) && !privateKey) {
44
- if (!silent) {
45
- if (json) {
46
- emitJsonError({ error: 'missing_key' });
47
- }
48
- else {
49
- log.warning(`Cannot find a private key at ${keyPath} or as a keyData option`);
50
- log.error('Error: Missing key');
51
- }
52
- }
53
- throw new Error('Missing private key');
54
- }
55
- else if (existsSync(keyPath)) {
56
- privateKey = readFileSync(keyPath, 'utf8');
57
- }
58
- if (privateKey && !privateKey.startsWith('-----BEGIN RSA PRIVATE KEY-----')) {
59
- if (!silent) {
60
- if (json)
61
- emitJsonError({ error: 'invalid_private_key' });
62
- else
63
- log.error('The private key provided is not a valid RSA Private key');
64
- }
65
- throw new Error('Invalid private key format');
66
- }
67
- const zipFile = readFileSync(zipPath);
68
- const { sessionKey, ivSessionKey } = generateSessionKey(privateKey);
69
- const encryptedData = encryptSourceV2(zipFile, sessionKey, ivSessionKey);
70
- const encodedChecksum = encryptChecksumV2(checksum, privateKey);
71
- const filenameEncrypted = `${zipPath}_encrypted.zip`;
72
- writeFileSync(filenameEncrypted, encryptedData);
73
- if (!silent) {
74
- if (json) {
75
- // eslint-disable-next-line no-console
76
- console.log(JSON.stringify({
77
- checksum: encodedChecksum,
78
- filename: filenameEncrypted,
79
- ivSessionKey,
80
- }, null, 2));
81
- }
82
- else {
83
- log.success(`Encoded Checksum: ${encodedChecksum}`);
84
- log.success(`ivSessionKey: ${ivSessionKey}`);
85
- log.success(`Encrypted zip saved at ${filenameEncrypted}`);
86
- outro('Done ✅');
87
- }
88
- }
89
- return {
90
- checksum: encodedChecksum,
91
- filename: filenameEncrypted,
92
- ivSessionKey,
93
- };
94
- }
95
- catch (error) {
96
- if (!silent) {
97
- if (options.json)
98
- emitJsonError(error);
99
- else
100
- log.error(`Error encrypting zip file ${formatError(error)}`);
101
- }
102
- throw error instanceof Error ? error : new Error(String(error));
103
- }
104
- }
105
- export async function encryptZipV2(zipPath, checksum, options) {
106
- await encryptZipV2Internal(zipPath, checksum, options, false);
107
- }
108
- //# sourceMappingURL=encryptV2.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"encryptV2.js","sourceRoot":"","sources":["../../../src/bundle/encryptV2.ts"],"names":[],"mappings":"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"}