@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.
- package/README.md +1 -0
- package/dist/index.js +238 -411
- package/dist/package.json +89 -93
- package/dist/src/api/channels.d.ts +592 -16
- package/dist/src/api/channels.d.ts.map +1 -1
- package/dist/src/api/update.d.ts.map +1 -1
- package/dist/src/app/add.d.ts +2 -8
- package/dist/src/app/add.d.ts.map +1 -1
- package/dist/src/app/debug.d.ts +1 -1
- package/dist/src/app/debug.d.ts.map +1 -1
- package/dist/src/app/delete.d.ts +2 -1
- package/dist/src/app/delete.d.ts.map +1 -1
- package/dist/src/app/info.d.ts +9 -1
- package/dist/src/app/info.d.ts.map +1 -1
- package/dist/src/app/list.d.ts +19 -1
- package/dist/src/app/list.d.ts.map +1 -1
- package/dist/src/app/set.d.ts +2 -1
- package/dist/src/app/set.d.ts.map +1 -1
- package/dist/src/app/setting.d.ts +2 -1
- package/dist/src/app/setting.d.ts.map +1 -1
- package/dist/src/bundle/cleanup.d.ts +5 -1
- package/dist/src/bundle/cleanup.d.ts.map +1 -1
- package/dist/src/bundle/compatibility.d.ts +4 -4
- package/dist/src/bundle/compatibility.d.ts.map +1 -1
- package/dist/src/bundle/delete.d.ts +2 -1
- package/dist/src/bundle/delete.d.ts.map +1 -1
- package/dist/src/bundle/partial.d.ts +2 -2
- package/dist/src/bundle/partial.d.ts.map +1 -1
- package/dist/src/bundle/upload.d.ts +3 -3
- package/dist/src/bundle/upload.d.ts.map +1 -1
- package/dist/src/bundle/upload_interface.d.ts +1 -0
- package/dist/src/bundle/upload_interface.d.ts.map +1 -1
- package/dist/src/bundle/zip.d.ts.map +1 -1
- package/dist/src/channel/add.d.ts +2 -2
- package/dist/src/channel/add.d.ts.map +1 -1
- package/dist/src/channel/currentBundle.d.ts +2 -1
- package/dist/src/channel/currentBundle.d.ts.map +1 -1
- package/dist/src/channel/delete.d.ts +2 -1
- package/dist/src/channel/delete.d.ts.map +1 -1
- package/dist/src/channel/list.d.ts +2 -1
- package/dist/src/channel/list.d.ts.map +1 -1
- package/dist/src/channel/set.d.ts +2 -1
- package/dist/src/channel/set.d.ts.map +1 -1
- package/dist/src/checksum.d.ts +9 -0
- package/dist/src/checksum.d.ts.map +1 -0
- package/dist/src/init.d.ts.map +1 -1
- package/dist/src/keyV2.d.ts +2 -3
- package/dist/src/keyV2.d.ts.map +1 -1
- package/dist/src/login.d.ts +2 -2
- package/dist/src/login.d.ts.map +1 -1
- package/dist/src/organisation/list.d.ts +3 -0
- package/dist/src/organisation/list.d.ts.map +1 -1
- package/dist/src/sdk.d.ts +107 -4
- package/dist/src/sdk.d.ts.map +1 -1
- package/dist/src/sdk.js +247 -310
- package/dist/src/types/supabase.types.d.ts +313 -9
- package/dist/src/types/supabase.types.d.ts.map +1 -1
- package/dist/src/utils/latest-version.d.ts +7 -0
- package/dist/src/utils/latest-version.d.ts.map +1 -0
- package/dist/src/utils.d.ts +302 -21
- package/dist/src/utils.d.ts.map +1 -1
- package/package.json +11 -15
- package/dist/src/api/app.js +0 -45
- package/dist/src/api/app.js.map +0 -1
- package/dist/src/api/channels.js +0 -167
- package/dist/src/api/channels.js.map +0 -1
- package/dist/src/api/cryptoV2.js +0 -102
- package/dist/src/api/cryptoV2.js.map +0 -1
- package/dist/src/api/update.js +0 -14
- package/dist/src/api/update.js.map +0 -1
- package/dist/src/api/versions.js +0 -92
- package/dist/src/api/versions.js.map +0 -1
- package/dist/src/app/add.js +0 -150
- package/dist/src/app/add.js.map +0 -1
- package/dist/src/app/debug.js +0 -222
- package/dist/src/app/debug.js.map +0 -1
- package/dist/src/app/delete.js +0 -89
- package/dist/src/app/delete.js.map +0 -1
- package/dist/src/app/info.js +0 -84
- package/dist/src/app/info.js.map +0 -1
- package/dist/src/app/list.js +0 -48
- package/dist/src/app/list.js.map +0 -1
- package/dist/src/app/set.js +0 -96
- package/dist/src/app/set.js.map +0 -1
- package/dist/src/app/setting.js +0 -50
- package/dist/src/app/setting.js.map +0 -1
- package/dist/src/bundle/check.js +0 -30
- package/dist/src/bundle/check.js.map +0 -1
- package/dist/src/bundle/cleanup.js +0 -105
- package/dist/src/bundle/cleanup.js.map +0 -1
- package/dist/src/bundle/compatibility.js +0 -62
- package/dist/src/bundle/compatibility.js.map +0 -1
- package/dist/src/bundle/decryptV2.js +0 -76
- package/dist/src/bundle/decryptV2.js.map +0 -1
- package/dist/src/bundle/delete.js +0 -40
- package/dist/src/bundle/delete.js.map +0 -1
- package/dist/src/bundle/encryptV2.js +0 -108
- package/dist/src/bundle/encryptV2.js.map +0 -1
- package/dist/src/bundle/list.js +0 -36
- package/dist/src/bundle/list.js.map +0 -1
- package/dist/src/bundle/partial.js +0 -332
- package/dist/src/bundle/partial.js.map +0 -1
- package/dist/src/bundle/unlink.js +0 -70
- package/dist/src/bundle/unlink.js.map +0 -1
- package/dist/src/bundle/upload.js +0 -700
- package/dist/src/bundle/upload.js.map +0 -1
- package/dist/src/bundle/upload_interface.js +0 -2
- package/dist/src/bundle/upload_interface.js.map +0 -1
- package/dist/src/bundle/zip.js +0 -148
- package/dist/src/bundle/zip.js.map +0 -1
- package/dist/src/channel/add.js +0 -68
- package/dist/src/channel/add.js.map +0 -1
- package/dist/src/channel/currentBundle.js +0 -54
- package/dist/src/channel/currentBundle.js.map +0 -1
- package/dist/src/channel/delete.js +0 -77
- package/dist/src/channel/delete.js.map +0 -1
- package/dist/src/channel/list.js +0 -45
- package/dist/src/channel/list.js.map +0 -1
- package/dist/src/channel/set.js +0 -220
- package/dist/src/channel/set.js.map +0 -1
- package/dist/src/config/index.js +0 -31
- package/dist/src/config/index.js.map +0 -1
- package/dist/src/docs.js +0 -280
- package/dist/src/docs.js.map +0 -1
- package/dist/src/index.js +0 -504
- package/dist/src/index.js.map +0 -1
- package/dist/src/init.js +0 -797
- package/dist/src/init.js.map +0 -1
- package/dist/src/keyV2.js +0 -163
- package/dist/src/keyV2.js.map +0 -1
- package/dist/src/login.js +0 -51
- package/dist/src/login.js.map +0 -1
- package/dist/src/organisation/add.js +0 -82
- package/dist/src/organisation/add.js.map +0 -1
- package/dist/src/organisation/delete.js +0 -91
- package/dist/src/organisation/delete.js.map +0 -1
- package/dist/src/organisation/index.js +0 -5
- package/dist/src/organisation/index.js.map +0 -1
- package/dist/src/organisation/list.js +0 -60
- package/dist/src/organisation/list.js.map +0 -1
- package/dist/src/organisation/set.js +0 -95
- package/dist/src/organisation/set.js.map +0 -1
- package/dist/src/sdk.js.map +0 -1
- package/dist/src/types/supabase.types.js +0 -88
- package/dist/src/types/supabase.types.js.map +0 -1
- package/dist/src/user/account.js +0 -31
- package/dist/src/user/account.js.map +0 -1
- package/dist/src/utils.js +0 -1184
- 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.
|
|
3
|
+
"version": "8.0.0-alpha.3",
|
|
4
4
|
"description": "A CLI to upload to capgo servers",
|
|
5
|
-
"author": "
|
|
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
|
-
|
|
59
|
-
"
|
|
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.
|
|
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"
|
package/dist/src/api/app.js
DELETED
|
@@ -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
|
package/dist/src/api/app.js.map
DELETED
|
@@ -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"}
|
package/dist/src/api/channels.js
DELETED
|
@@ -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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"}
|
package/dist/src/api/cryptoV2.js
DELETED
|
@@ -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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"}
|
package/dist/src/api/update.js
DELETED
|
@@ -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"}
|
package/dist/src/api/versions.js
DELETED
|
@@ -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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"}
|