@capgo/cli 7.18.1 → 7.18.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 (179) hide show
  1. package/dist/index.js +238 -237
  2. package/dist/package.json +5 -5
  3. package/dist/src/api/app.d.ts +13 -0
  4. package/dist/src/api/app.d.ts.map +1 -0
  5. package/dist/src/api/app.js +45 -0
  6. package/dist/src/api/app.js.map +1 -0
  7. package/dist/src/api/channels.d.ts +4505 -0
  8. package/dist/src/api/channels.d.ts.map +1 -0
  9. package/dist/src/api/channels.js +167 -0
  10. package/dist/src/api/channels.js.map +1 -0
  11. package/dist/src/api/cryptoV2.d.ts +16 -0
  12. package/dist/src/api/cryptoV2.d.ts.map +1 -0
  13. package/dist/src/api/cryptoV2.js +102 -0
  14. package/dist/src/api/cryptoV2.js.map +1 -0
  15. package/dist/src/api/update.d.ts +2 -0
  16. package/dist/src/api/update.d.ts.map +1 -0
  17. package/dist/src/api/update.js +14 -0
  18. package/dist/src/api/update.js.map +1 -0
  19. package/dist/src/api/versions.d.ts +56 -0
  20. package/dist/src/api/versions.d.ts.map +1 -0
  21. package/dist/src/api/versions.js +92 -0
  22. package/dist/src/api/versions.js.map +1 -0
  23. package/dist/src/app/add.d.ts +18 -0
  24. package/dist/src/app/add.d.ts.map +1 -0
  25. package/dist/src/app/add.js +150 -0
  26. package/dist/src/app/add.js.map +1 -0
  27. package/dist/src/app/debug.d.ts +33 -0
  28. package/dist/src/app/debug.d.ts.map +1 -0
  29. package/dist/src/app/debug.js +222 -0
  30. package/dist/src/app/debug.js.map +1 -0
  31. package/dist/src/app/delete.d.ts +3 -0
  32. package/dist/src/app/delete.d.ts.map +1 -0
  33. package/dist/src/app/delete.js +89 -0
  34. package/dist/src/app/delete.js.map +1 -0
  35. package/dist/src/app/info.d.ts +13 -0
  36. package/dist/src/app/info.d.ts.map +1 -0
  37. package/dist/src/app/info.js +84 -0
  38. package/dist/src/app/info.js.map +1 -0
  39. package/dist/src/app/list.d.ts +16 -0
  40. package/dist/src/app/list.d.ts.map +1 -0
  41. package/dist/src/app/list.js +48 -0
  42. package/dist/src/app/list.js.map +1 -0
  43. package/dist/src/app/set.d.ts +3 -0
  44. package/dist/src/app/set.d.ts.map +1 -0
  45. package/dist/src/app/set.js +96 -0
  46. package/dist/src/app/set.js.map +1 -0
  47. package/dist/src/app/setting.d.ts +8 -0
  48. package/dist/src/app/setting.d.ts.map +1 -0
  49. package/dist/src/app/setting.js +50 -0
  50. package/dist/src/app/setting.js.map +1 -0
  51. package/dist/src/bundle/check.d.ts +3 -0
  52. package/dist/src/bundle/check.d.ts.map +1 -0
  53. package/dist/src/bundle/check.js +30 -0
  54. package/dist/src/bundle/check.js.map +1 -0
  55. package/dist/src/bundle/cleanup.d.ts +14 -0
  56. package/dist/src/bundle/cleanup.d.ts.map +1 -0
  57. package/dist/src/bundle/cleanup.js +105 -0
  58. package/dist/src/bundle/cleanup.js.map +1 -0
  59. package/dist/src/bundle/compatibility.d.ts +15 -0
  60. package/dist/src/bundle/compatibility.d.ts.map +1 -0
  61. package/dist/src/bundle/compatibility.js +62 -0
  62. package/dist/src/bundle/compatibility.js.map +1 -0
  63. package/dist/src/bundle/decryptV2.d.ts +13 -0
  64. package/dist/src/bundle/decryptV2.d.ts.map +1 -0
  65. package/dist/src/bundle/decryptV2.js +76 -0
  66. package/dist/src/bundle/decryptV2.js.map +1 -0
  67. package/dist/src/bundle/delete.d.ts +7 -0
  68. package/dist/src/bundle/delete.d.ts.map +1 -0
  69. package/dist/src/bundle/delete.js +40 -0
  70. package/dist/src/bundle/delete.js.map +1 -0
  71. package/dist/src/bundle/encryptV2.d.ts +14 -0
  72. package/dist/src/bundle/encryptV2.d.ts.map +1 -0
  73. package/dist/src/bundle/encryptV2.js +108 -0
  74. package/dist/src/bundle/encryptV2.js.map +1 -0
  75. package/dist/src/bundle/list.d.ts +22 -0
  76. package/dist/src/bundle/list.d.ts.map +1 -0
  77. package/dist/src/bundle/list.js +36 -0
  78. package/dist/src/bundle/list.js.map +1 -0
  79. package/dist/src/bundle/partial.d.ts +14 -0
  80. package/dist/src/bundle/partial.d.ts.map +1 -0
  81. package/dist/src/bundle/partial.js +332 -0
  82. package/dist/src/bundle/partial.js.map +1 -0
  83. package/dist/src/bundle/unlink.d.ts +9 -0
  84. package/dist/src/bundle/unlink.d.ts.map +1 -0
  85. package/dist/src/bundle/unlink.js +70 -0
  86. package/dist/src/bundle/unlink.js.map +1 -0
  87. package/dist/src/bundle/upload.d.ts +19 -0
  88. package/dist/src/bundle/upload.d.ts.map +1 -0
  89. package/dist/src/bundle/upload.js +700 -0
  90. package/dist/src/bundle/upload.js.map +1 -0
  91. package/dist/src/bundle/upload_interface.d.ts +49 -0
  92. package/dist/src/bundle/upload_interface.d.ts.map +1 -0
  93. package/dist/src/bundle/upload_interface.js +2 -0
  94. package/dist/src/bundle/upload_interface.js.map +1 -0
  95. package/dist/src/bundle/zip.d.ts +19 -0
  96. package/dist/src/bundle/zip.d.ts.map +1 -0
  97. package/dist/src/bundle/zip.js +148 -0
  98. package/dist/src/bundle/zip.js.map +1 -0
  99. package/dist/src/channel/add.d.ts +26 -0
  100. package/dist/src/channel/add.d.ts.map +1 -0
  101. package/dist/src/channel/add.js +68 -0
  102. package/dist/src/channel/add.js.map +1 -0
  103. package/dist/src/channel/currentBundle.d.ts +8 -0
  104. package/dist/src/channel/currentBundle.d.ts.map +1 -0
  105. package/dist/src/channel/currentBundle.js +54 -0
  106. package/dist/src/channel/currentBundle.js.map +1 -0
  107. package/dist/src/channel/delete.d.ts +8 -0
  108. package/dist/src/channel/delete.d.ts.map +1 -0
  109. package/dist/src/channel/delete.js +77 -0
  110. package/dist/src/channel/delete.js.map +1 -0
  111. package/dist/src/channel/list.d.ts +3 -0
  112. package/dist/src/channel/list.d.ts.map +1 -0
  113. package/dist/src/channel/list.js +45 -0
  114. package/dist/src/channel/list.js.map +1 -0
  115. package/dist/src/channel/set.d.ts +18 -0
  116. package/dist/src/channel/set.d.ts.map +1 -0
  117. package/dist/src/channel/set.js +220 -0
  118. package/dist/src/channel/set.js.map +1 -0
  119. package/dist/src/config/index.d.ts +16 -0
  120. package/dist/src/config/index.d.ts.map +1 -0
  121. package/dist/src/config/index.js +31 -0
  122. package/dist/src/config/index.js.map +1 -0
  123. package/dist/src/docs.d.ts +2 -0
  124. package/dist/src/docs.d.ts.map +1 -0
  125. package/dist/src/docs.js +280 -0
  126. package/dist/src/docs.js.map +1 -0
  127. package/dist/src/index.d.ts +2 -0
  128. package/dist/src/index.d.ts.map +1 -0
  129. package/dist/src/index.js +504 -0
  130. package/dist/src/index.js.map +1 -0
  131. package/dist/src/init.d.ts +7 -0
  132. package/dist/src/init.d.ts.map +1 -0
  133. package/dist/src/init.js +797 -0
  134. package/dist/src/init.js.map +1 -0
  135. package/dist/src/keyV2.d.ts +20 -0
  136. package/dist/src/keyV2.d.ts.map +1 -0
  137. package/dist/src/keyV2.js +163 -0
  138. package/dist/src/keyV2.js.map +1 -0
  139. package/dist/src/login.d.ts +10 -0
  140. package/dist/src/login.d.ts.map +1 -0
  141. package/dist/src/login.js +51 -0
  142. package/dist/src/login.js.map +1 -0
  143. package/dist/src/organisation/add.d.ts +18 -0
  144. package/dist/src/organisation/add.d.ts.map +1 -0
  145. package/dist/src/organisation/add.js +82 -0
  146. package/dist/src/organisation/add.js.map +1 -0
  147. package/dist/src/organisation/delete.d.ts +8 -0
  148. package/dist/src/organisation/delete.d.ts.map +1 -0
  149. package/dist/src/organisation/delete.js +91 -0
  150. package/dist/src/organisation/delete.js.map +1 -0
  151. package/dist/src/organisation/index.d.ts +5 -0
  152. package/dist/src/organisation/index.d.ts.map +1 -0
  153. package/dist/src/organisation/index.js +5 -0
  154. package/dist/src/organisation/index.js.map +1 -0
  155. package/dist/src/organisation/list.d.ts +19 -0
  156. package/dist/src/organisation/list.d.ts.map +1 -0
  157. package/dist/src/organisation/list.js +60 -0
  158. package/dist/src/organisation/list.js.map +1 -0
  159. package/dist/src/organisation/set.d.ts +13 -0
  160. package/dist/src/organisation/set.d.ts.map +1 -0
  161. package/dist/src/organisation/set.js +95 -0
  162. package/dist/src/organisation/set.js.map +1 -0
  163. package/dist/src/sdk.d.ts +605 -0
  164. package/dist/src/sdk.d.ts.map +1 -0
  165. package/dist/src/sdk.js +441 -0
  166. package/dist/src/sdk.js.map +1 -0
  167. package/dist/src/types/supabase.types.d.ts +2305 -0
  168. package/dist/src/types/supabase.types.d.ts.map +1 -0
  169. package/dist/src/types/supabase.types.js +86 -0
  170. package/dist/src/types/supabase.types.js.map +1 -0
  171. package/dist/src/user/account.d.ts +4 -0
  172. package/dist/src/user/account.d.ts.map +1 -0
  173. package/dist/src/user/account.js +31 -0
  174. package/dist/src/user/account.js.map +1 -0
  175. package/dist/src/utils.d.ts +2426 -0
  176. package/dist/src/utils.d.ts.map +1 -0
  177. package/dist/src/utils.js +1184 -0
  178. package/dist/src/utils.js.map +1 -0
  179. package/package.json +3 -3
@@ -0,0 +1,60 @@
1
+ import { intro, log, outro } from '@clack/prompts';
2
+ import { Table } from '@sauber/table';
3
+ import { checkAlerts } from '../api/update';
4
+ import { createSupabaseClient, findSavedKey, formatError, verifyUser, } from '../utils';
5
+ function displayOrganizations(data, silent) {
6
+ if (silent)
7
+ return;
8
+ if (!data.length) {
9
+ log.error('No organizations found');
10
+ return;
11
+ }
12
+ const t = new Table();
13
+ t.headers = ['Name', 'ID', 'Role', 'Apps'];
14
+ t.rows = [];
15
+ for (const row of data.toReversed()) {
16
+ t.rows.push([
17
+ row.name ?? 'Unknown',
18
+ row.gid,
19
+ row.role,
20
+ row.app_count?.toString() || '0',
21
+ ]);
22
+ }
23
+ log.success('Organizations');
24
+ log.success(t.toString());
25
+ }
26
+ export async function listOrganizationsInternal(options, silent = false) {
27
+ if (!silent)
28
+ intro('List organizations');
29
+ await checkAlerts();
30
+ const enrichedOptions = {
31
+ ...options,
32
+ apikey: options.apikey || findSavedKey(),
33
+ };
34
+ if (!enrichedOptions.apikey) {
35
+ if (!silent)
36
+ log.error('Missing API key, you need to provide an API key to list organizations');
37
+ throw new Error('Missing API key');
38
+ }
39
+ const supabase = await createSupabaseClient(enrichedOptions.apikey, enrichedOptions.supaHost, enrichedOptions.supaAnon);
40
+ await verifyUser(supabase, enrichedOptions.apikey, ['read', 'write', 'all']);
41
+ if (!silent)
42
+ log.info('Getting organizations from Capgo');
43
+ const { error, data: allOrganizations } = await supabase.rpc('get_orgs_v6');
44
+ if (error) {
45
+ if (!silent)
46
+ log.error(`Cannot get organizations ${formatError(error)}`);
47
+ throw new Error(`Cannot get organizations: ${formatError(error)}`);
48
+ }
49
+ const organizations = allOrganizations || [];
50
+ if (!silent) {
51
+ log.info(`Organizations found: ${organizations.length}`);
52
+ displayOrganizations(organizations, silent);
53
+ outro('Done ✅');
54
+ }
55
+ return organizations;
56
+ }
57
+ export async function listOrganizations(options) {
58
+ await listOrganizationsInternal(options, false);
59
+ }
60
+ //# sourceMappingURL=list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list.js","sourceRoot":"","sources":["../../../src/organisation/list.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import type { OptionsBase } from '../utils';
2
+ interface OptionsOrganization extends OptionsBase {
3
+ name?: string;
4
+ email?: string;
5
+ }
6
+ export declare function setOrganizationInternal(orgId: string, options: OptionsOrganization, silent?: boolean): Promise<{
7
+ orgId: string;
8
+ name: string;
9
+ email: string;
10
+ }>;
11
+ export declare function setOrganization(orgId: string, options: OptionsOrganization): Promise<void>;
12
+ export {};
13
+ //# sourceMappingURL=set.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"set.d.ts","sourceRoot":"","sources":["../../../src/organisation/set.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AAW3C,UAAU,mBAAoB,SAAQ,WAAW;IAC/C,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,wBAAsB,uBAAuB,CAC3C,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,mBAAmB,EAC5B,MAAM,UAAQ;;;;GA+Gf;AAED,wBAAsB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,mBAAmB,iBAEhF"}
@@ -0,0 +1,95 @@
1
+ import { intro, isCancel, log, outro, text } from '@clack/prompts';
2
+ import { checkAlerts } from '../api/update';
3
+ import { createSupabaseClient, findSavedKey, formatError, sendEvent, verifyUser, } from '../utils';
4
+ export async function setOrganizationInternal(orgId, options, silent = false) {
5
+ if (!silent)
6
+ intro('Updating organization');
7
+ await checkAlerts();
8
+ const enrichedOptions = {
9
+ ...options,
10
+ apikey: options.apikey || findSavedKey(),
11
+ };
12
+ if (!enrichedOptions.apikey) {
13
+ if (!silent)
14
+ log.error('Missing API key, you need to provide an API key to update an organization');
15
+ throw new Error('Missing API key');
16
+ }
17
+ if (!orgId) {
18
+ if (!silent)
19
+ log.error('Missing argument, you need to provide an organization ID');
20
+ throw new Error('Missing organization id');
21
+ }
22
+ const supabase = await createSupabaseClient(enrichedOptions.apikey, enrichedOptions.supaHost, enrichedOptions.supaAnon);
23
+ await verifyUser(supabase, enrichedOptions.apikey, ['write', 'all']);
24
+ const { data: orgData, error: orgError } = await supabase
25
+ .from('orgs')
26
+ .select('name, management_email, created_by')
27
+ .eq('id', orgId)
28
+ .single();
29
+ if (orgError || !orgData) {
30
+ if (!silent)
31
+ log.error(`Cannot get organization details ${formatError(orgError)}`);
32
+ throw new Error(`Cannot get organization details: ${formatError(orgError)}`);
33
+ }
34
+ let { name, email } = enrichedOptions;
35
+ if (!silent && !name) {
36
+ const nameInput = await text({
37
+ message: 'New organization name:',
38
+ placeholder: orgData.name || 'My Organization',
39
+ });
40
+ if (isCancel(nameInput)) {
41
+ log.error('Canceled updating organization');
42
+ throw new Error('Organization update cancelled');
43
+ }
44
+ name = nameInput;
45
+ }
46
+ if (!silent && !email) {
47
+ const emailInput = await text({
48
+ message: 'Management email:',
49
+ placeholder: orgData.management_email || 'admin@example.com',
50
+ });
51
+ if (isCancel(emailInput)) {
52
+ log.error('Canceled updating organization');
53
+ throw new Error('Organization update cancelled');
54
+ }
55
+ email = emailInput;
56
+ }
57
+ if (!name || !email) {
58
+ if (!silent)
59
+ log.error('Missing arguments, you need to provide an organization name and management email');
60
+ throw new Error('Missing organization name or management email');
61
+ }
62
+ if (!silent)
63
+ log.info(`Updating organization "${orgId}"`);
64
+ const { error: dbError } = await supabase
65
+ .from('orgs')
66
+ .update({
67
+ name,
68
+ management_email: email,
69
+ })
70
+ .eq('id', orgId);
71
+ if (dbError) {
72
+ if (!silent)
73
+ log.error(`Could not update organization ${formatError(dbError)}`);
74
+ throw new Error(`Could not update organization: ${formatError(dbError)}`);
75
+ }
76
+ await sendEvent(enrichedOptions.apikey, {
77
+ channel: 'organization',
78
+ event: 'Organization Updated',
79
+ icon: '✏️',
80
+ user_id: orgId,
81
+ tags: {
82
+ 'org-name': name,
83
+ },
84
+ notify: false,
85
+ }).catch(() => { });
86
+ if (!silent) {
87
+ log.success('Organization updated');
88
+ outro('Done ✅');
89
+ }
90
+ return { orgId, name, email };
91
+ }
92
+ export async function setOrganization(orgId, options) {
93
+ await setOrganizationInternal(orgId, options, false);
94
+ }
95
+ //# sourceMappingURL=set.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"set.js","sourceRoot":"","sources":["../../../src/organisation/set.ts"],"names":[],"mappings":"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"}