@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,220 +0,0 @@
1
- import { intro, log, outro } from '@clack/prompts';
2
- import { checkAppExistsAndHasPermissionOrgErr } from '../api/app';
3
- import { checkCompatibilityNativePackages, checkPlanValid, createSupabaseClient, findSavedKey, getAppId, getBundleVersion, getConfig, getOrganizationId, getPMAndCommand, isCompatible, OrganizationPerm, sendEvent, updateOrCreateChannel, verifyUser, } from '../utils';
4
- const disableAutoUpdatesPossibleOptions = ['major', 'minor', 'metadata', 'patch', 'none'];
5
- export async function setChannel(channel, appId, options, silent = false) {
6
- if (!silent)
7
- intro('Set channel');
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 (!channel) {
22
- if (!silent)
23
- log.error('Missing argument, you need to provide a channel');
24
- throw new Error('Missing channel id');
25
- }
26
- const supabase = await createSupabaseClient(options.apikey, options.supaHost, options.supaAnon);
27
- const userId = await verifyUser(supabase, options.apikey, ['write', 'all']);
28
- await checkAppExistsAndHasPermissionOrgErr(supabase, options.apikey, appId, OrganizationPerm.admin, silent);
29
- const orgId = await getOrganizationId(supabase, appId);
30
- const { bundle, state, downgrade, latest, latestRemote, ios, android, selfAssign, disableAutoUpdate, dev, emulator, } = options;
31
- if (latest && bundle) {
32
- if (!silent)
33
- log.error('Cannot set latest and bundle at the same time');
34
- throw new Error('Cannot set both latest and bundle simultaneously');
35
- }
36
- if (latestRemote && bundle) {
37
- if (!silent)
38
- log.error('Cannot set latest remote and bundle at the same time');
39
- throw new Error('Cannot set both latest remote and bundle simultaneously');
40
- }
41
- if (latestRemote && latest) {
42
- if (!silent)
43
- log.error('Cannot set latest remote and latest at the same time');
44
- throw new Error('Cannot set both latest remote and latest simultaneously');
45
- }
46
- if (bundle == null
47
- && state == null
48
- && latest == null
49
- && latestRemote == null
50
- && downgrade == null
51
- && ios == null
52
- && android == null
53
- && selfAssign == null
54
- && dev == null
55
- && emulator == null
56
- && disableAutoUpdate == null) {
57
- if (!silent)
58
- log.error('Missing argument, you need to provide a option to set');
59
- throw new Error('No channel option provided');
60
- }
61
- await checkPlanValid(supabase, orgId, options.apikey, appId);
62
- const channelPayload = {
63
- created_by: userId,
64
- app_id: appId,
65
- name: channel,
66
- owner_org: orgId,
67
- version: undefined,
68
- };
69
- const { error: channelError } = await supabase
70
- .from('channels')
71
- .select()
72
- .eq('app_id', appId)
73
- .eq('name', channel)
74
- .single();
75
- if (channelError) {
76
- if (!silent)
77
- log.error(`Cannot find channel ${channel}`);
78
- throw new Error(`Cannot find channel ${channel}`);
79
- }
80
- const resolvedBundleVersion = latest
81
- ? (extConfig?.config?.plugins?.CapacitorUpdater?.version || getBundleVersion('', options.packageJson))
82
- : bundle;
83
- if (resolvedBundleVersion != null) {
84
- const { data, error: vError } = await supabase
85
- .from('app_versions')
86
- .select()
87
- .eq('app_id', appId)
88
- .eq('name', resolvedBundleVersion)
89
- .eq('user_id', userId)
90
- .eq('deleted', false)
91
- .single();
92
- if (vError || !data) {
93
- if (!silent)
94
- log.error(`Cannot find version ${resolvedBundleVersion}`);
95
- throw new Error(`Cannot find version ${resolvedBundleVersion}`);
96
- }
97
- if (!options.ignoreMetadataCheck) {
98
- const { finalCompatibility, localDependencies } = await checkCompatibilityNativePackages(supabase, appId, channel, data.native_packages ?? []);
99
- const pm = getPMAndCommand();
100
- if (localDependencies.length > 0 && finalCompatibility.some(item => !isCompatible(item))) {
101
- if (!silent) {
102
- log.warn(`Bundle NOT compatible with ${channel} channel`);
103
- log.warn(`You can check compatibility with "${pm.runner} @capgo/cli bundle compatibility"`);
104
- }
105
- throw new Error(`Bundle is not compatible with ${channel} channel`);
106
- }
107
- if (!silent) {
108
- if (localDependencies.length === 0 && finalCompatibility.length > 0)
109
- log.info(`Ignoring check compatibility with ${channel} channel because the bundle does not contain any native packages`);
110
- else
111
- log.info(`Bundle is compatible with ${channel} channel`);
112
- }
113
- }
114
- if (!silent)
115
- log.info(`Set ${appId} channel: ${channel} to @${resolvedBundleVersion}`);
116
- channelPayload.version = data.id;
117
- }
118
- if (latestRemote) {
119
- const { data, error: vError } = await supabase
120
- .from('app_versions')
121
- .select()
122
- .eq('app_id', appId)
123
- .eq('user_id', userId)
124
- .eq('deleted', false)
125
- .order('created_at', { ascending: false })
126
- .single();
127
- if (vError || !data) {
128
- if (!silent)
129
- log.error('Cannot find latest remote version');
130
- throw new Error('Cannot find latest remote version');
131
- }
132
- if (!options.ignoreMetadataCheck) {
133
- const { finalCompatibility } = await checkCompatibilityNativePackages(supabase, appId, channel, data.native_packages ?? []);
134
- const pm = getPMAndCommand();
135
- if (finalCompatibility.some(item => !isCompatible(item))) {
136
- if (!silent) {
137
- log.warn(`Bundle NOT compatible with ${channel} channel`);
138
- log.warn(`You can check compatibility with "${pm.runner} @capgo/cli bundle compatibility"`);
139
- }
140
- throw new Error(`Latest remote bundle is not compatible with ${channel} channel`);
141
- }
142
- }
143
- if (!silent)
144
- log.info(`Set ${appId} channel: ${channel} to @${data.name}`);
145
- channelPayload.version = data.id;
146
- }
147
- if (state != null) {
148
- if (state !== 'normal' && state !== 'default') {
149
- if (!silent)
150
- log.error(`State ${state} is not known. The possible values are: normal, default.`);
151
- throw new Error(`Unknown state ${state}. Expected normal or default`);
152
- }
153
- if (!silent)
154
- log.info(`Set ${appId} channel: ${channel} to ${state}`);
155
- channelPayload.public = state === 'default';
156
- }
157
- if (downgrade != null) {
158
- if (!silent)
159
- log.info(`Set ${appId} channel: ${channel} to ${downgrade ? 'allow' : 'disallow'} downgrade`);
160
- channelPayload.disable_auto_update_under_native = !downgrade;
161
- }
162
- if (ios != null) {
163
- if (!silent)
164
- log.info(`Set ${appId} channel: ${channel} to ${ios ? 'allow' : 'disallow'} ios update`);
165
- channelPayload.ios = !!ios;
166
- }
167
- if (android != null) {
168
- if (!silent)
169
- log.info(`Set ${appId} channel: ${channel} to ${android ? 'allow' : 'disallow'} android update`);
170
- channelPayload.android = !!android;
171
- }
172
- if (selfAssign != null) {
173
- if (!silent)
174
- log.info(`Set ${appId} channel: ${channel} to ${selfAssign ? 'allow' : 'disallow'} self assign to this channel`);
175
- channelPayload.allow_device_self_set = !!selfAssign;
176
- }
177
- if (dev != null) {
178
- if (!silent)
179
- log.info(`Set ${appId} channel: ${channel} to ${dev ? 'allow' : 'disallow'} dev devices`);
180
- channelPayload.allow_dev = !!dev;
181
- }
182
- if (emulator != null) {
183
- if (!silent)
184
- log.info(`Set ${appId} channel: ${channel} to ${emulator ? 'allow' : 'disallow'} emulator devices`);
185
- channelPayload.allow_emulator = !!emulator;
186
- }
187
- if (disableAutoUpdate != null) {
188
- let finalDisableAutoUpdate = disableAutoUpdate.toLowerCase();
189
- if (!disableAutoUpdatesPossibleOptions.includes(finalDisableAutoUpdate)) {
190
- if (!silent)
191
- log.error(`Channel strategy ${finalDisableAutoUpdate} is not known. The possible values are: ${disableAutoUpdatesPossibleOptions.join(', ')}.`);
192
- throw new Error(`Unknown channel strategy ${finalDisableAutoUpdate}`);
193
- }
194
- if (finalDisableAutoUpdate === 'metadata')
195
- finalDisableAutoUpdate = 'version_number';
196
- channelPayload.disable_auto_update = finalDisableAutoUpdate;
197
- if (!silent)
198
- log.info(`Set ${appId} channel: ${channel} to ${finalDisableAutoUpdate} disable update strategy to this channel`);
199
- }
200
- const { error: dbError } = await updateOrCreateChannel(supabase, channelPayload);
201
- if (dbError) {
202
- if (!silent)
203
- log.error('Cannot set channel the upload key is not allowed to do that, use the "all" for this.');
204
- throw new Error('Upload key is not allowed to set this channel');
205
- }
206
- await sendEvent(options.apikey, {
207
- channel: 'channel',
208
- event: 'Set channel',
209
- icon: '✅',
210
- user_id: orgId,
211
- tags: {
212
- 'app-id': appId,
213
- },
214
- notify: false,
215
- }).catch(() => { });
216
- if (!silent)
217
- outro('Done ✅');
218
- return true;
219
- }
220
- //# sourceMappingURL=set.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"set.js","sourceRoot":"","sources":["../../../src/channel/set.ts"],"names":[],"mappings":"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"}
@@ -1,31 +0,0 @@
1
- import { loadConfig as loadConfigCap, writeConfig as writeConfigCap } from '@capacitor/cli/dist/config';
2
- export async function loadConfig() {
3
- const config = await loadConfigCap();
4
- return {
5
- config: config.app.extConfig,
6
- path: config.app.extConfigFilePath,
7
- };
8
- }
9
- export async function writeConfig(key, config, raw = false) {
10
- const oldConfig = await loadConfigCap();
11
- let { extConfig } = oldConfig.app;
12
- if (extConfig) {
13
- if (!extConfig.plugins) {
14
- extConfig.plugins = {
15
- extConfig: {},
16
- [key]: {},
17
- };
18
- }
19
- if (!extConfig.plugins[key])
20
- extConfig.plugins[key] = {};
21
- if (!raw)
22
- extConfig.plugins[key] = config.config.plugins?.[key];
23
- else
24
- extConfig = config.config;
25
- writeConfigCap(extConfig, oldConfig.app.extConfigFilePath);
26
- }
27
- }
28
- export async function writeConfigUpdater(config, raw = false) {
29
- await writeConfig('CapacitorUpdater', config, raw);
30
- }
31
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/config/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,IAAI,aAAa,EAAE,WAAW,IAAI,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAgBvG,MAAM,CAAC,KAAK,UAAU,UAAU;IAC9B,MAAM,MAAM,GAAG,MAAM,aAAa,EAAE,CAAA;IACpC,OAAO;QACL,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,SAAS;QAC5B,IAAI,EAAE,MAAM,CAAC,GAAG,CAAC,iBAAiB;KACnC,CAAA;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,GAAW,EAAE,MAAsB,EAAE,GAAG,GAAG,KAAK;IAChF,MAAM,SAAS,GAAG,MAAM,aAAa,EAAE,CAAA;IAEvC,IAAI,EAAE,SAAS,EAAE,GAAG,SAAS,CAAC,GAAG,CAAA;IACjC,IAAI,SAAS,EAAE,CAAC;QACd,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;YACvB,SAAS,CAAC,OAAO,GAAG;gBAClB,SAAS,EAAE,EAAE;gBACb,CAAC,GAAG,CAAC,EAAE,EAAE;aACV,CAAA;QACH,CAAC;QACD,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC;YACzB,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,EAAE,CAAA;QAE7B,IAAI,CAAC,GAAG;YACN,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,GAAG,CAAC,CAAA;;YAErD,SAAS,GAAG,MAAM,CAAC,MAAM,CAAA;QAC3B,cAAc,CAAC,SAAS,EAAE,SAAS,CAAC,GAAG,CAAC,iBAAiB,CAAC,CAAA;IAC5D,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,MAAsB,EAAE,GAAG,GAAG,KAAK;IAC1E,MAAM,WAAW,CAAC,kBAAkB,EAAE,MAAM,EAAE,GAAG,CAAC,CAAA;AACpD,CAAC"}
package/dist/src/docs.js DELETED
@@ -1,280 +0,0 @@
1
- import { existsSync, mkdirSync, readFileSync, writeFileSync } from 'node:fs';
2
- import { log } from '@clack/prompts';
3
- import { program } from 'commander';
4
- // Helper function to get an emoji for a command
5
- function getCommandEmoji(cmdName) {
6
- let emoji = '🔹';
7
- if (cmdName.includes('upload'))
8
- emoji = '⬆️';
9
- else if (cmdName.includes('delete'))
10
- emoji = '🗑️';
11
- else if (cmdName.includes('list'))
12
- emoji = '📋';
13
- else if (cmdName.includes('add'))
14
- emoji = '➕';
15
- else if (cmdName.includes('set'))
16
- emoji = '⚙️';
17
- else if (cmdName.includes('create'))
18
- emoji = '🔨';
19
- else if (cmdName.includes('encrypt'))
20
- emoji = '🔒';
21
- else if (cmdName.includes('decrypt'))
22
- emoji = '🔓';
23
- else if (cmdName.includes('debug'))
24
- emoji = '🐞';
25
- else if (cmdName.includes('doctor'))
26
- emoji = '👨‍⚕️';
27
- else if (cmdName.includes('login'))
28
- emoji = '🔑';
29
- else if (cmdName.includes('init'))
30
- emoji = '🚀';
31
- else if (cmdName.includes('compatibility'))
32
- emoji = '🧪';
33
- else if (cmdName.includes('cleanup'))
34
- emoji = '🧹';
35
- else if (cmdName.includes('currentBundle'))
36
- emoji = '📦';
37
- else if (cmdName.includes('setting'))
38
- emoji = '⚙️';
39
- else if (cmdName === 'app')
40
- emoji = '📱';
41
- else if (cmdName === 'bundle')
42
- emoji = '📦';
43
- else if (cmdName === 'channel')
44
- emoji = '📢';
45
- else if (cmdName === 'key')
46
- emoji = '🔐';
47
- else if (cmdName === 'account')
48
- emoji = '👤';
49
- return emoji;
50
- }
51
- export function generateDocs(filePath = './README.md', folderPath) {
52
- const commands = program.commands.map((cmd) => {
53
- // Cast to access internal properties
54
- const cmdWithInternals = cmd;
55
- // Check if command has an action handler
56
- const hasAction = cmdWithInternals._actionHandler !== null && cmdWithInternals._actionHandler !== undefined;
57
- // Check if it has subcommands
58
- const hasSubcommands = cmd.commands && cmd.commands.length > 0;
59
- // A command group has subcommands but no action handler
60
- const isCommandGroup = hasSubcommands && !hasAction;
61
- return {
62
- name: cmd.name(),
63
- alias: cmd.alias() || '',
64
- description: cmd.description(),
65
- options: cmd.options.map((opt) => ({
66
- flags: opt.flags,
67
- description: opt.description || '',
68
- })),
69
- subcommands: cmd.commands
70
- ? cmd.commands.map((subCmd) => {
71
- const subCmdWithInternals = subCmd;
72
- const subCmdHasAction = subCmdWithInternals._actionHandler !== null && subCmdWithInternals._actionHandler !== undefined;
73
- return {
74
- name: subCmd.name(),
75
- alias: subCmd.alias() || '',
76
- description: subCmd.description(),
77
- options: subCmd.options.map((opt) => ({
78
- flags: opt.flags,
79
- description: opt.description || '',
80
- })),
81
- subcommands: [], // Subcommands don't have their own subcommands in this implementation
82
- hasAction: subCmdHasAction,
83
- isCommandGroup: false, // Subcommands are never command groups
84
- };
85
- })
86
- : [],
87
- hasAction,
88
- isCommandGroup,
89
- };
90
- });
91
- // Function to format command documentation
92
- const formatCommand = (cmd, isSubcommand = false, parentCmd, skipMainHeading = false) => {
93
- const cmdName = cmd.name;
94
- const cmdNameCapitalized = cmdName.charAt(0).toUpperCase() + cmdName.slice(1);
95
- // Create anchor for TOC linking - use different IDs for README vs individual files
96
- let anchor;
97
- if (isSubcommand) {
98
- // For subcommands, in README we use parent-child format, in individual files just child
99
- anchor = parentCmd ? `${parentCmd}-${cmdName}` : cmdName;
100
- }
101
- else {
102
- // For main commands, in README we use command name, in individual files we use 'options'
103
- anchor = skipMainHeading ? 'options' : cmdName;
104
- }
105
- const heading = isSubcommand ? `###` : `##`;
106
- let section = '';
107
- // Command heading with emoji based on command type
108
- const emoji = getCommandEmoji(cmdName);
109
- // For all commands, add the heading and description
110
- if (!(skipMainHeading && !isSubcommand)) {
111
- section += `${heading} <a id="${anchor}"></a> ${emoji} **${cmdNameCapitalized}**\n\n`;
112
- }
113
- if (cmd.alias) {
114
- section += `**Alias:** \`${cmd.alias}\`\n\n`;
115
- }
116
- // For regular commands, show usage example
117
- if (!cmd.isCommandGroup) {
118
- section += `\`\`\`bash\n`;
119
- if (isSubcommand) {
120
- section += `npx @capgo/cli@latest ${parentCmd} ${cmdName}\n`;
121
- }
122
- else {
123
- section += `npx @capgo/cli@latest ${cmdName}\n`;
124
- }
125
- section += `\`\`\`\n\n`;
126
- }
127
- // Description - split by line breaks and handle topics
128
- const descLines = cmd.description.split('\n');
129
- // Skip the first line for the main command since we already included it
130
- const startIndex = (!isSubcommand && skipMainHeading) ? 1 : 0;
131
- for (let i = startIndex; i < descLines.length; i++) {
132
- const line = descLines[i];
133
- if (line.trim().startsWith('Note:')) {
134
- // Format notes with emoji
135
- section += `> ℹ️ ${line.trim().substring(5).trim()}\n\n`;
136
- }
137
- else if (line.includes('Example:')) {
138
- // Skip example lines, they'll be handled separately
139
- }
140
- else if (line.trim()) { // Only add non-empty lines
141
- section += `${line}\n`;
142
- }
143
- }
144
- section += '\n';
145
- // Handle example separately - only for regular commands, not for command groups
146
- const exampleLine = cmd.description.split('\n').find((line) => line.includes('Example:'));
147
- if (exampleLine && !cmd.isCommandGroup) {
148
- section += `**Example:**\n\n`;
149
- section += `\`\`\`bash\n`;
150
- section += `${exampleLine.replace('Example: ', '')}\n`;
151
- section += `\`\`\`\n\n`;
152
- }
153
- // Options table - for all commands (even command groups may have global options)
154
- if (cmd.options.length > 0) {
155
- if (!isSubcommand) {
156
- // Only add the Options title for the main command
157
- section += `## <a id="options"></a> Options\n\n`;
158
- }
159
- else {
160
- section += `**Options:**\n\n`;
161
- }
162
- section += `| Param | Type | Description |\n`;
163
- section += `| -------------- | ------------- | -------------------- |\n`;
164
- for (const opt of cmd.options) {
165
- const param = opt.flags.split(' ')[0];
166
- const type = opt.flags.split(' ').length > 1 ? 'string' : 'boolean';
167
- section += `| **${param}** | <code>${type}</code> | ${opt.description} |\n`;
168
- }
169
- section += '\n';
170
- }
171
- return section;
172
- };
173
- // If folderPath is provided, generate individual files for each command
174
- if (folderPath) {
175
- // Create the directory if it doesn't exist
176
- if (!existsSync(folderPath)) {
177
- mkdirSync(folderPath, { recursive: true });
178
- }
179
- // Process each command
180
- for (const cmd of commands) {
181
- if (cmd.name === 'generate-docs')
182
- return; // Skip documenting this command
183
- // Determine emoji for this command
184
- const emoji = getCommandEmoji(cmd.name);
185
- // Generate frontmatter and content for the command
186
- let cmdFile = `---
187
- title: ${emoji} ${cmd.name}
188
- description: ${cmd.description.split('\n')[0]}
189
- sidebar_label: ${cmd.name}
190
- sidebar:
191
- order: ${commands.indexOf(cmd) + 1}
192
- ---
193
-
194
- `;
195
- // Add command description with emoji preserved, but skip the redundant title
196
- const description = cmd.description.split('\n')[0];
197
- cmdFile += `${description}\n\n`;
198
- let cmdMarkdown = '';
199
- if (cmd.subcommands.length === 0) {
200
- // Add command documentation
201
- cmdMarkdown = formatCommand(cmd, false, cmd.name, true); // Last param to skip the main heading
202
- }
203
- else {
204
- for (const subCmd of cmd.subcommands) {
205
- cmdMarkdown += formatCommand(subCmd, true, cmd.name);
206
- }
207
- }
208
- cmdFile += cmdMarkdown;
209
- // Write the file
210
- try {
211
- writeFileSync(`${folderPath}/${cmd.name}.mdx`, cmdFile, 'utf8');
212
- log.success(`Generated documentation file for ${cmd.name} command in ${folderPath}/${cmd.name}.mdx`);
213
- }
214
- catch (error) {
215
- console.error(`Error generating file for ${cmd.name}:`, error);
216
- }
217
- }
218
- log.success(`Documentation files generated in ${folderPath}/`);
219
- }
220
- else {
221
- // Generate combined markdown for README
222
- let markdown = '## 📑 Capgo CLI Commands\n\n';
223
- // Generate Table of Contents
224
- markdown += '## 📋 Table of Contents\n\n';
225
- for (const cmd of commands) {
226
- if (cmd.name === 'generate-docs')
227
- continue; // Skip documenting this command
228
- // Get emoji for this command
229
- const emoji = getCommandEmoji(cmd.name);
230
- markdown += `- ${emoji} [${cmd.name.charAt(0).toUpperCase() + cmd.name.slice(1)}](#${cmd.name})\n`;
231
- if (cmd.subcommands.length > 0) {
232
- for (const subCmd of cmd.subcommands) {
233
- markdown += ` - [${subCmd.name.charAt(0).toUpperCase() + subCmd.name.slice(1)}](#${cmd.name}-${subCmd.name})\n`;
234
- }
235
- }
236
- }
237
- markdown += '\n';
238
- // Generate documentation for each command
239
- for (const cmd of commands) {
240
- if (cmd.name === 'generate-docs')
241
- continue; // Skip documenting this command
242
- // Use the formatCommand function with the flag set to skip usage for command groups
243
- markdown += formatCommand(cmd, false, undefined, false);
244
- if (cmd.subcommands.length > 0) {
245
- // For command groups, don't add a subcommands heading since that's implied
246
- if (!cmd.isCommandGroup) {
247
- markdown += `#### ${cmd.name.toUpperCase()} Subcommands:\n\n`;
248
- }
249
- for (const subCmd of cmd.subcommands) {
250
- markdown += formatCommand(subCmd, true, cmd.name);
251
- }
252
- }
253
- markdown += '\n';
254
- }
255
- // Update README.md or write to the specified file
256
- const startTag = '<!-- AUTO-GENERATED-DOCS-START -->';
257
- const endTag = '<!-- AUTO-GENERATED-DOCS-END -->';
258
- let fileContent = '';
259
- try {
260
- fileContent = readFileSync(filePath, 'utf8');
261
- }
262
- catch {
263
- fileContent = '';
264
- }
265
- const startIndex = fileContent.indexOf(startTag);
266
- const endIndex = fileContent.indexOf(endTag, startIndex);
267
- if (startIndex !== -1 && endIndex !== -1) {
268
- const before = fileContent.substring(0, startIndex + startTag.length);
269
- const after = fileContent.substring(endIndex);
270
- const newContent = `${before}\n${markdown}\n${after}`;
271
- writeFileSync(filePath, newContent, 'utf8');
272
- log.success(`Documentation updated in ${filePath}`);
273
- }
274
- else {
275
- writeFileSync(filePath, markdown, 'utf8');
276
- log.success(`Documentation written to ${filePath}`);
277
- }
278
- }
279
- }
280
- //# sourceMappingURL=docs.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"docs.js","sourceRoot":"","sources":["../../src/docs.ts"],"names":[],"mappings":"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"}