@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
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "@capgo/cli",
3
- "version": "8.0.0-alpha.1",
3
+ "version": "8.0.0-alpha.3",
4
4
  "description": "A CLI to upload to capgo servers",
5
- "author": "github.com/riderx",
5
+ "author": "Martin martin@capgo.app",
6
6
  "license": "Apache 2.0",
7
7
  "homepage": "https://github.com/Cap-go/CLI#readme",
8
8
  "repository": {
@@ -53,10 +53,14 @@
53
53
  "types": "npx --yes supabase gen types typescript --project-id=xvwzpoazmxkqosrdewyv > src/types/supabase.types.ts",
54
54
  "lint": "eslint \"src/**/*.ts\" --fix",
55
55
  "check-posix-paths": "node test/check-posix-paths.js",
56
- "generate-docs": "node dist/index.js generate-docs README.md"
57
- },
58
- "//dependencies": {
59
- "ky": "We temporarily fixed ky version until this issue is resolved: https://github.com/sindresorhus/ky/issues/689 otherwise nodejs upload fails on node 18/20"
56
+ "generate-docs": "node dist/index.js generate-docs README.md",
57
+ "test:bundle": "bun test/test-bundle.mjs",
58
+ "test:functional": "bun test/test-functional.mjs",
59
+ "test:semver": "bun test/test-semver-validation.mjs",
60
+ "test:version-edge-cases": "bun test/test-version-validation.mjs",
61
+ "test:regex": "bun test/test-regex-validation.mjs",
62
+ "test:upload": "bun test/test-upload-validation.mjs",
63
+ "test": "bun run test:bundle && bun run test:functional && bun run test:semver && bun run test:version-edge-cases && bun run test:regex && bun run test:upload"
60
64
  },
61
65
  "devDependencies": {
62
66
  "@antfu/eslint-config": "^6.1.0",
@@ -66,17 +70,13 @@
66
70
  "@clack/prompts": "^0.11.0",
67
71
  "@sauber/table": "npm:@jsr/sauber__table",
68
72
  "@std/semver": "npm:@jsr/std__semver@1.0.6",
69
- "@supabase/supabase-js": "^2.76.1",
70
- "@tomasklaen/checksum": "^1.1.0",
73
+ "@supabase/supabase-js": "^2.79.0",
71
74
  "@types/adm-zip": "^0.5.7",
72
- "@types/brotli": "^1.3.4",
73
75
  "@types/node": "^24.9.1",
74
76
  "@types/prettyjson": "^0.0.33",
75
- "@types/semver": "^7.7.1",
76
77
  "@types/tmp": "^0.2.6",
77
78
  "@vercel/ncc": "^0.38.4",
78
79
  "adm-zip": "^0.5.16",
79
- "brotli": "^1.3.3",
80
80
  "ci-info": "^4.3.1",
81
81
  "commander": "^14.0.2",
82
82
  "esbuild": "^0.25.11",
@@ -84,12 +84,8 @@
84
84
  "git-format-staged": "3.1.1",
85
85
  "husky": "^9.1.7",
86
86
  "is-wsl": "^3.1.0",
87
- "ky": "1.13.0",
88
- "latest-version": "^9.0.0",
89
87
  "open": "^10.1.2",
90
- "pkg": "5.8.1",
91
88
  "prettyjson": "^1.2.5",
92
- "semver": "^7.7.3",
93
89
  "tmp": "^0.2.5",
94
90
  "tus-js-client": "^4.3.1",
95
91
  "typescript": "^5.9.3"
@@ -1,45 +0,0 @@
1
- import { log } from '@clack/prompts';
2
- import { getPMAndCommand, isAllowedAppOrg, OrganizationPerm } from '../utils';
3
- export async function checkAppExists(supabase, appid) {
4
- const { data: app } = await supabase
5
- .rpc('exist_app_v2', { appid })
6
- .single();
7
- return !!app;
8
- }
9
- export async function checkAppExistsAndHasPermissionOrgErr(supabase, apikey, appid, requiredPermission, silent = false) {
10
- const pm = getPMAndCommand();
11
- const permissions = await isAllowedAppOrg(supabase, apikey, appid);
12
- if (!permissions.okay) {
13
- switch (permissions.error) {
14
- case 'INVALID_APIKEY': {
15
- const msg = 'Invalid apikey, such apikey does not exists!';
16
- if (!silent)
17
- log.error(msg);
18
- throw new Error(msg);
19
- }
20
- case 'NO_APP': {
21
- const msg = `App ${appid} does not exist, run first \`${pm.runner} @capgo/cli app add ${appid}\` to create it`;
22
- if (!silent)
23
- log.error(msg);
24
- throw new Error(msg);
25
- }
26
- case 'NO_ORG': {
27
- const msg = 'Could not find organization, please contact support to resolve this!';
28
- if (!silent)
29
- log.error(msg);
30
- throw new Error(msg);
31
- }
32
- }
33
- }
34
- const remotePermNumber = permissions.data;
35
- const requiredPermNumber = requiredPermission;
36
- if (requiredPermNumber > remotePermNumber) {
37
- const msg = `Insuficcent permissions for app ${appid}. Current permission: ${OrganizationPerm[permissions.data]}, required for this action: ${OrganizationPerm[requiredPermission]}.`;
38
- if (!silent)
39
- log.error(msg);
40
- throw new Error(msg);
41
- }
42
- return permissions.data;
43
- }
44
- export const newIconPath = 'assets/icon.png';
45
- //# sourceMappingURL=app.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"app.js","sourceRoot":"","sources":["../../../src/api/app.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAA;AACpC,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAE7E,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,QAAkC,EAAE,KAAa;IACpF,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,GAAG,MAAM,QAAQ;SACjC,GAAG,CAAC,cAAc,EAAE,EAAE,KAAK,EAAE,CAAC;SAC9B,MAAM,EAAE,CAAA;IACX,OAAO,CAAC,CAAC,GAAG,CAAA;AACd,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oCAAoC,CACxD,QAAkC,EAClC,MAAc,EACd,KAAa,EACb,kBAAoC,EACpC,MAAM,GAAG,KAAK;IAEd,MAAM,EAAE,GAAG,eAAe,EAAE,CAAA;IAC5B,MAAM,WAAW,GAAG,MAAM,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,CAAC,CAAA;IAClE,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC;QACtB,QAAQ,WAAW,CAAC,KAAK,EAAE,CAAC;YAC1B,KAAK,gBAAgB,CAAC,CAAC,CAAC;gBACtB,MAAM,GAAG,GAAG,8CAA8C,CAAA;gBAC1D,IAAI,CAAC,MAAM;oBACT,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;gBAChB,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,CAAA;YACtB,CAAC;YACD,KAAK,QAAQ,CAAC,CAAC,CAAC;gBACd,MAAM,GAAG,GAAG,OAAO,KAAK,gCAAgC,EAAE,CAAC,MAAM,uBAAuB,KAAK,iBAAiB,CAAA;gBAC9G,IAAI,CAAC,MAAM;oBACT,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;gBAChB,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,CAAA;YACtB,CAAC;YACD,KAAK,QAAQ,CAAC,CAAC,CAAC;gBACd,MAAM,GAAG,GAAG,sEAAsE,CAAA;gBAClF,IAAI,CAAC,MAAM;oBACT,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;gBAChB,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,CAAA;YACtB,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,gBAAgB,GAAG,WAAW,CAAC,IAAc,CAAA;IACnD,MAAM,kBAAkB,GAAG,kBAA4B,CAAA;IAEvD,IAAI,kBAAkB,GAAG,gBAAgB,EAAE,CAAC;QAC1C,MAAM,GAAG,GAAG,mCAAmC,KAAK,yBAAyB,gBAAgB,CAAC,WAAW,CAAC,IAAI,CAAC,+BAA+B,gBAAgB,CAAC,kBAAkB,CAAC,GAAG,CAAA;QACrL,IAAI,CAAC,MAAM;YACT,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QAChB,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,CAAA;IACtB,CAAC;IAED,OAAO,WAAW,CAAC,IAAI,CAAA;AACzB,CAAC;AAQD,MAAM,CAAC,MAAM,WAAW,GAAG,iBAAiB,CAAA"}
@@ -1,167 +0,0 @@
1
- import { confirm as confirmC, intro, log, outro, spinner } from '@clack/prompts';
2
- import { Table } from '@sauber/table';
3
- import { formatError } from '../utils';
4
- export async function checkVersionNotUsedInChannel(supabase, appid, versionData, options = {}) {
5
- const { silent = false, autoUnlink = false } = options;
6
- const { data: channelFound, error: errorChannel } = await supabase
7
- .from('channels')
8
- .select()
9
- .eq('app_id', appid)
10
- .eq('version', versionData.id);
11
- if (errorChannel) {
12
- if (!silent)
13
- log.error(`Cannot check Version ${appid}@${versionData.name}: ${formatError(errorChannel)}`);
14
- throw new Error(`Cannot check version ${appid}@${versionData.name}: ${formatError(errorChannel)}`);
15
- }
16
- if (!channelFound?.length)
17
- return;
18
- if (silent)
19
- throw new Error(`Version ${appid}@${versionData.name} is used in ${channelFound.length} channel(s)`); // No interactivity allowed
20
- intro(`❌ Version ${appid}@${versionData.name} is used in ${channelFound.length} channel${channelFound.length > 1 ? 's' : ''}`);
21
- let shouldUnlink = autoUnlink;
22
- if (!autoUnlink) {
23
- const response = await confirmC({ message: 'unlink it?' });
24
- shouldUnlink = response === true;
25
- }
26
- if (!shouldUnlink) {
27
- log.error('Unlink it first');
28
- throw new Error(`Version ${appid}@${versionData.name} is still linked to channel(s)`); // Stop command
29
- }
30
- for (const channel of channelFound) {
31
- const s = spinner();
32
- s.start(`Unlinking channel ${channel.name}`);
33
- const unknownVersion = await findUnknownVersion(supabase, appid, { silent });
34
- if (!unknownVersion) {
35
- s.stop(`Cannot find unknown version for ${appid}`);
36
- throw new Error(`Cannot find unknown version for ${appid}`);
37
- }
38
- const { error: errorChannelUpdate } = await supabase
39
- .from('channels')
40
- .update({ version: unknownVersion.id })
41
- .eq('id', channel.id);
42
- if (errorChannelUpdate) {
43
- s.stop(`Cannot update channel ${channel.name} ${formatError(errorChannelUpdate)}`);
44
- throw new Error(`Cannot update channel ${channel.name}: ${formatError(errorChannelUpdate)}`);
45
- }
46
- s.stop(`✅ Channel ${channel.name} unlinked`);
47
- }
48
- outro(`Version unlinked from ${channelFound.length} channel${channelFound.length > 1 ? 's' : ''}`);
49
- }
50
- export async function findUnknownVersion(supabase, appId, options = {}) {
51
- const { silent = false } = options;
52
- const { data, error } = await supabase
53
- .from('app_versions')
54
- .select('id')
55
- .eq('app_id', appId)
56
- .eq('name', 'unknown')
57
- .single();
58
- if (error) {
59
- if (!silent)
60
- log.error(`Cannot call findUnknownVersion as it returned an error.\n${formatError(error)}`);
61
- throw new Error(`Cannot retrieve unknown version for app ${appId}: ${formatError(error)}`);
62
- }
63
- return data;
64
- }
65
- export function createChannel(supabase, update) {
66
- return supabase
67
- .from('channels')
68
- .insert(update)
69
- .select()
70
- .single();
71
- }
72
- export function delChannel(supabase, name, appId, _userId) {
73
- return supabase
74
- .from('channels')
75
- .delete()
76
- .eq('name', name)
77
- .eq('app_id', appId)
78
- .single();
79
- }
80
- export function findChannel(supabase, appId, name) {
81
- return supabase
82
- .from('channels')
83
- .select()
84
- .eq('app_id', appId)
85
- .eq('name', name)
86
- .single();
87
- }
88
- export function findChannelDevices(supabase, appId, channelId) {
89
- return supabase
90
- .from('channel_devices')
91
- .select('id')
92
- .eq('app_id', appId)
93
- .eq('channel_id', channelId);
94
- }
95
- export function delChannelDevices(supabase, appId, channelId) {
96
- return supabase
97
- .from('channel_devices')
98
- .delete()
99
- .eq('app_id', appId)
100
- .eq('channel_id', channelId);
101
- }
102
- export function findBundleIdByChannelName(supabase, appId, name) {
103
- return supabase
104
- .from('channels')
105
- .select(`
106
- id,
107
- version (id, name)
108
- `)
109
- .eq('app_id', appId)
110
- .eq('name', name)
111
- .single()
112
- .throwOnError()
113
- .then(({ data }) => data?.version);
114
- }
115
- export function displayChannels(data, silent = false) {
116
- if (silent)
117
- return;
118
- const t = new Table();
119
- t.theme = Table.roundTheme;
120
- t.headers = ['Name', 'Version', 'Public', 'iOS', 'Android', 'Auto Update', 'Native Auto Update', 'Device Self Set', 'Progressive Deploy', 'Secondary Version', 'Secondary Version Percentage', 'AB Testing', 'AB Testing Version', 'AB Testing Percentage', 'Emulator', 'Dev'];
121
- t.rows = [];
122
- for (const row of data.toReversed()) {
123
- t.rows.push([
124
- row.name,
125
- row.version?.name,
126
- row.public ? '✅' : '❌',
127
- row.ios ? '✅' : '❌',
128
- row.android ? '✅' : '❌',
129
- row.disable_auto_update,
130
- row.disable_auto_update_under_native ? '❌' : '✅',
131
- row.allow_device_self_set ? '✅' : '❌',
132
- row.allow_emulator ? '✅' : '❌',
133
- row.allow_dev ? '✅' : '❌',
134
- ]);
135
- }
136
- log.success('Channels');
137
- log.success(t.toString());
138
- }
139
- export async function getActiveChannels(supabase, appid, silent = false) {
140
- const { data, error: vError } = await supabase
141
- .from('channels')
142
- .select(`
143
- id,
144
- name,
145
- public,
146
- allow_emulator,
147
- allow_dev,
148
- ios,
149
- android,
150
- allow_device_self_set,
151
- disable_auto_update_under_native,
152
- disable_auto_update,
153
- created_at,
154
- created_by,
155
- app_id,
156
- version (id, name)
157
- `)
158
- .eq('app_id', appid)
159
- .order('created_at', { ascending: false });
160
- if (vError) {
161
- if (!silent)
162
- log.error(`App ${appid} not found in database`);
163
- throw new Error(`App ${appid} not found in database: ${formatError(vError)}`);
164
- }
165
- return data;
166
- }
167
- //# sourceMappingURL=channels.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"channels.js","sourceRoot":"","sources":["../../../src/api/channels.ts"],"names":[],"mappings":"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"}
@@ -1,102 +0,0 @@
1
- import { Buffer } from 'node:buffer';
2
- import { constants, createCipheriv, createDecipheriv, generateKeyPairSync, privateEncrypt, publicDecrypt, randomBytes, } from 'node:crypto';
3
- const algorithm = 'aes-128-cbc';
4
- const formatB64 = 'base64';
5
- const padding = constants.RSA_PKCS1_PADDING;
6
- export function generateSessionKey(key) {
7
- const initVector = randomBytes(16);
8
- const sessionKey = randomBytes(16);
9
- const ivB64 = initVector.toString(formatB64);
10
- const sessionb64Encrypted = privateEncrypt({
11
- key,
12
- padding,
13
- }, sessionKey).toString(formatB64);
14
- return {
15
- sessionKey,
16
- ivSessionKey: `${ivB64}:${sessionb64Encrypted}`,
17
- };
18
- }
19
- export function encryptSourceV2(source, sessionKey, ivSessionKey) {
20
- const [ivB64] = ivSessionKey.split(':');
21
- const initVector = Buffer.from(ivB64, formatB64);
22
- const cipher = createCipheriv(algorithm, sessionKey, initVector);
23
- cipher.setAutoPadding(true);
24
- const encryptedData = Buffer.concat([cipher.update(source), cipher.final()]);
25
- return encryptedData;
26
- }
27
- export function decryptSourceV2(source, ivSessionKey, key) {
28
- const [ivB64, sessionb64Encrypted] = ivSessionKey.split(':');
29
- const sessionKey = publicDecrypt({
30
- key,
31
- padding,
32
- }, Buffer.from(sessionb64Encrypted, formatB64));
33
- // ivB64 to uft-8
34
- const initVector = Buffer.from(ivB64, formatB64);
35
- // console.log('\nSessionB64', sessionB64)
36
- const decipher = createDecipheriv(algorithm, sessionKey, initVector);
37
- decipher.setAutoPadding(true);
38
- const decryptedData = Buffer.concat([decipher.update(source), decipher.final()]);
39
- return decryptedData;
40
- }
41
- export function encryptChecksumV2(checksum, key) {
42
- const checksumEncrypted = privateEncrypt({
43
- key,
44
- padding,
45
- }, Buffer.from(checksum, formatB64)).toString(formatB64);
46
- return checksumEncrypted;
47
- }
48
- export function createRSA(format = 'pem', keySize = 2048) {
49
- const { publicKey, privateKey } = generateKeyPairSync('rsa', {
50
- // The standard secure default length for RSA keys is 2048 bits
51
- modulusLength: keySize,
52
- });
53
- // Generate RSA key pair
54
- if (format === 'pem') {
55
- return {
56
- publicKey: publicKey.export({
57
- type: 'pkcs1',
58
- format: 'pem',
59
- }),
60
- privateKey: privateKey.export({
61
- type: 'pkcs1',
62
- format: 'pem',
63
- }),
64
- };
65
- }
66
- else {
67
- return {
68
- publicKey: publicKey.export({
69
- type: 'spki',
70
- format: 'der',
71
- }).toString('base64'),
72
- privateKey: privateKey.export({
73
- type: 'pkcs1',
74
- format: 'pem',
75
- }).toString('base64'),
76
- };
77
- }
78
- }
79
- export function decryptChecksumV2(checksum, key) {
80
- const checksumDecrypted = publicDecrypt({
81
- key,
82
- padding,
83
- }, Buffer.from(checksum, formatB64)).toString(formatB64);
84
- return checksumDecrypted;
85
- }
86
- export function createRSAV2() {
87
- const { publicKey, privateKey } = generateKeyPairSync('rsa', {
88
- modulusLength: 2048,
89
- });
90
- // Generate RSA key pair
91
- return {
92
- publicKey: publicKey.export({
93
- type: 'pkcs1',
94
- format: 'pem',
95
- }),
96
- privateKey: privateKey.export({
97
- type: 'pkcs1',
98
- format: 'pem',
99
- }),
100
- };
101
- }
102
- //# sourceMappingURL=cryptoV2.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cryptoV2.js","sourceRoot":"","sources":["../../../src/api/cryptoV2.ts"],"names":[],"mappings":"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"}
@@ -1,14 +0,0 @@
1
- import { log } from '@clack/prompts';
2
- import latestVersion from 'latest-version';
3
- import pack from '../../package.json';
4
- export async function checkAlerts() {
5
- const latest = await latestVersion('@capgo/cli')
6
- .catch(() => '');
7
- const major = latest?.split('.')[0];
8
- if (latest !== pack.version) {
9
- log.warning(`🚨 You are using @capgo/cli@${pack.version} it's not the latest version.
10
- Please use @capgo/cli@${latest}" or @capgo/cli@${major} to keep up to date with the latest features and bug fixes.`);
11
- }
12
- // check if the app use old encryption key and if so alert the user it not secure enouth and it should migrate on v2
13
- }
14
- //# sourceMappingURL=update.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"update.js","sourceRoot":"","sources":["../../../src/api/update.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAA;AACpC,OAAO,aAAa,MAAM,gBAAgB,CAAA;AAC1C,OAAO,IAAI,MAAM,oBAAoB,CAAA;AAErC,MAAM,CAAC,KAAK,UAAU,WAAW;IAC/B,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,YAAY,CAAC;SAC7C,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAA;IAClB,MAAM,KAAK,GAAG,MAAM,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;IACnC,IAAI,MAAM,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC;QAC5B,GAAG,CAAC,OAAO,CAAC,+BAA+B,IAAI,CAAC,OAAO;wBACnC,MAAM,mBAAmB,KAAK,6DAA6D,CAC9G,CAAA;IACH,CAAC;IACD,oHAAoH;AACtH,CAAC"}
@@ -1,92 +0,0 @@
1
- import { log } from '@clack/prompts';
2
- import { Table } from '@sauber/table';
3
- import { formatError, getHumanDate } from '../utils';
4
- import { checkVersionNotUsedInChannel } from './channels';
5
- export async function deleteAppVersion(supabase, appid, bundle, options = {}) {
6
- const { silent = false } = options;
7
- const { error: delAppSpecVersionError } = await supabase
8
- .from('app_versions')
9
- .update({ deleted: true })
10
- .eq('app_id', appid)
11
- .eq('deleted', false)
12
- .eq('name', bundle);
13
- if (delAppSpecVersionError) {
14
- const message = `App version ${appid}@${bundle} not found in database`;
15
- if (!silent)
16
- log.error(message);
17
- throw new Error(`${message}: ${formatError(delAppSpecVersionError)}`);
18
- }
19
- }
20
- export async function deleteSpecificVersion(supabase, appid, bundle, options = {}) {
21
- const { silent = false, autoUnlink = false } = options;
22
- const versionData = await getVersionData(supabase, appid, bundle, { silent });
23
- await checkVersionNotUsedInChannel(supabase, appid, versionData, { silent, autoUnlink });
24
- await deleteAppVersion(supabase, appid, bundle, { silent });
25
- }
26
- export function displayBundles(data, silent = false) {
27
- if (silent)
28
- return;
29
- if (!data.length)
30
- throw new Error('No bundle found');
31
- const t = new Table();
32
- t.theme = Table.roundTheme;
33
- t.headers = ['Version', 'Created', 'Keep'];
34
- t.rows = [];
35
- for (const row of data.toReversed()) {
36
- t.rows.push([
37
- row.name,
38
- getHumanDate(row.created_at),
39
- row.keep ?? '',
40
- ]);
41
- }
42
- log.success('Bundles');
43
- log.success(t.toString());
44
- }
45
- export async function getActiveAppVersions(supabase, appid, options = {}) {
46
- const { silent = false } = options;
47
- const { data, error: vError } = await supabase
48
- .from('app_versions')
49
- .select()
50
- .eq('app_id', appid)
51
- .eq('deleted', false)
52
- .order('created_at', { ascending: false });
53
- if (vError) {
54
- const message = `App ${appid} not found in database`;
55
- if (!silent)
56
- log.error(message);
57
- throw new Error(`${message}: ${formatError(vError)}`);
58
- }
59
- return data ?? [];
60
- }
61
- export async function getChannelsVersion(supabase, appid, options = {}) {
62
- const { silent = false } = options;
63
- const { data: channels, error: channelsError } = await supabase
64
- .from('channels')
65
- .select('version')
66
- .eq('app_id', appid);
67
- if (channelsError) {
68
- const message = `App ${appid} not found in database`;
69
- if (!silent)
70
- log.error(message);
71
- throw new Error(`${message}: ${formatError(channelsError)}`);
72
- }
73
- return (channels ?? []).map(c => c.version);
74
- }
75
- export async function getVersionData(supabase, appid, bundle, options = {}) {
76
- const { silent = false } = options;
77
- const { data: versionData, error: versionIdError } = await supabase
78
- .from('app_versions')
79
- .select()
80
- .eq('app_id', appid)
81
- .eq('name', bundle)
82
- .eq('deleted', false)
83
- .single();
84
- if (!versionData || versionIdError) {
85
- const message = `App version ${appid}@${bundle} doesn't exist`;
86
- if (!silent)
87
- log.error(message);
88
- throw new Error(`${message}${versionIdError ? `: ${formatError(versionIdError)}` : ''}`);
89
- }
90
- return versionData;
91
- }
92
- //# sourceMappingURL=versions.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"versions.js","sourceRoot":"","sources":["../../../src/api/versions.ts"],"names":[],"mappings":"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"}