@cakemail-org/cakemail-cli 1.3.0 → 1.7.0
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 +312 -12
- package/dist/cli.js +59 -8
- package/dist/cli.js.map +1 -1
- package/dist/client.d.ts +2 -0
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +15 -7
- package/dist/client.js.map +1 -1
- package/dist/commands/account.d.ts +5 -0
- package/dist/commands/account.d.ts.map +1 -0
- package/dist/commands/account.js +231 -0
- package/dist/commands/account.js.map +1 -0
- package/dist/commands/attributes.d.ts.map +1 -1
- package/dist/commands/attributes.js +43 -15
- package/dist/commands/attributes.js.map +1 -1
- package/dist/commands/campaigns.d.ts.map +1 -1
- package/dist/commands/campaigns.js +255 -26
- package/dist/commands/campaigns.js.map +1 -1
- package/dist/commands/config.d.ts +8 -0
- package/dist/commands/config.d.ts.map +1 -0
- package/dist/commands/config.js +294 -0
- package/dist/commands/config.js.map +1 -0
- package/dist/commands/contacts.d.ts.map +1 -1
- package/dist/commands/contacts.js +321 -47
- package/dist/commands/contacts.js.map +1 -1
- package/dist/commands/interests.d.ts +5 -0
- package/dist/commands/interests.d.ts.map +1 -0
- package/dist/commands/interests.js +172 -0
- package/dist/commands/interests.js.map +1 -0
- package/dist/commands/lists.d.ts.map +1 -1
- package/dist/commands/lists.js +165 -30
- package/dist/commands/lists.js.map +1 -1
- package/dist/commands/logs.d.ts +5 -0
- package/dist/commands/logs.d.ts.map +1 -0
- package/dist/commands/logs.js +237 -0
- package/dist/commands/logs.js.map +1 -0
- package/dist/commands/reports.d.ts.map +1 -1
- package/dist/commands/reports.js +90 -13
- package/dist/commands/reports.js.map +1 -1
- package/dist/commands/segments.d.ts.map +1 -1
- package/dist/commands/segments.js +59 -21
- package/dist/commands/segments.js.map +1 -1
- package/dist/commands/senders.d.ts.map +1 -1
- package/dist/commands/senders.js +46 -12
- package/dist/commands/senders.js.map +1 -1
- package/dist/commands/suppressed.d.ts.map +1 -1
- package/dist/commands/suppressed.js +20 -6
- package/dist/commands/suppressed.js.map +1 -1
- package/dist/commands/tags.d.ts +5 -0
- package/dist/commands/tags.d.ts.map +1 -0
- package/dist/commands/tags.js +124 -0
- package/dist/commands/tags.js.map +1 -0
- package/dist/commands/templates.d.ts.map +1 -1
- package/dist/commands/templates.js +11 -3
- package/dist/commands/templates.js.map +1 -1
- package/dist/commands/transactional-templates.d.ts +5 -0
- package/dist/commands/transactional-templates.d.ts.map +1 -0
- package/dist/commands/transactional-templates.js +354 -0
- package/dist/commands/transactional-templates.js.map +1 -0
- package/dist/types/profile.d.ts +92 -0
- package/dist/types/profile.d.ts.map +1 -0
- package/dist/types/profile.js +119 -0
- package/dist/types/profile.js.map +1 -0
- package/dist/utils/auth.d.ts +33 -0
- package/dist/utils/auth.d.ts.map +1 -0
- package/dist/utils/auth.js +226 -0
- package/dist/utils/auth.js.map +1 -0
- package/dist/utils/config-file.d.ts +99 -0
- package/dist/utils/config-file.d.ts.map +1 -0
- package/dist/utils/config-file.js +259 -0
- package/dist/utils/config-file.js.map +1 -0
- package/dist/utils/config.d.ts +13 -2
- package/dist/utils/config.d.ts.map +1 -1
- package/dist/utils/config.js +82 -8
- package/dist/utils/config.js.map +1 -1
- package/dist/utils/confirm.d.ts +38 -0
- package/dist/utils/confirm.d.ts.map +1 -0
- package/dist/utils/confirm.js +124 -0
- package/dist/utils/confirm.js.map +1 -0
- package/dist/utils/defaults.d.ts +39 -0
- package/dist/utils/defaults.d.ts.map +1 -0
- package/dist/utils/defaults.js +195 -0
- package/dist/utils/defaults.js.map +1 -0
- package/dist/utils/errors.d.ts +67 -0
- package/dist/utils/errors.d.ts.map +1 -0
- package/dist/utils/errors.js +395 -0
- package/dist/utils/errors.js.map +1 -0
- package/dist/utils/interactive.d.ts +97 -0
- package/dist/utils/interactive.d.ts.map +1 -0
- package/dist/utils/interactive.js +265 -0
- package/dist/utils/interactive.js.map +1 -0
- package/dist/utils/list-defaults.d.ts +33 -0
- package/dist/utils/list-defaults.d.ts.map +1 -0
- package/dist/utils/list-defaults.js +52 -0
- package/dist/utils/list-defaults.js.map +1 -0
- package/dist/utils/output.d.ts +72 -2
- package/dist/utils/output.d.ts.map +1 -1
- package/dist/utils/output.js +407 -38
- package/dist/utils/output.js.map +1 -1
- package/dist/utils/progress.d.ts +139 -0
- package/dist/utils/progress.d.ts.map +1 -0
- package/dist/utils/progress.js +216 -0
- package/dist/utils/progress.js.map +1 -0
- package/package.json +19 -3
|
@@ -0,0 +1,237 @@
|
|
|
1
|
+
import { Command } from 'commander';
|
|
2
|
+
import ora from 'ora';
|
|
3
|
+
import { displayError } from '../utils/errors.js';
|
|
4
|
+
import { autoDetectList } from '../utils/defaults.js';
|
|
5
|
+
export function createLogsCommand(client, formatter) {
|
|
6
|
+
const logs = new Command('logs')
|
|
7
|
+
.description('View activity logs');
|
|
8
|
+
// Get campaign logs
|
|
9
|
+
logs
|
|
10
|
+
.command('campaign <campaign-id>')
|
|
11
|
+
.description('View logs for a campaign')
|
|
12
|
+
.option('--start-time <timestamp>', 'Start time (Unix timestamp)')
|
|
13
|
+
.option('--end-time <timestamp>', 'End time (Unix timestamp)')
|
|
14
|
+
.option('-p, --page <number>', 'Page number')
|
|
15
|
+
.option('--per-page <number>', 'Results per page')
|
|
16
|
+
.option('--with-count', 'Include total count')
|
|
17
|
+
.option('--filter <filter>', 'Filter (e.g., "type==open;email==user@example.com")')
|
|
18
|
+
.option('--sort <sort>', 'Sort by field: +time, -log_id, etc.')
|
|
19
|
+
.option('--cursor <cursor>', 'Cursor for pagination')
|
|
20
|
+
.action(async (campaignId, options) => {
|
|
21
|
+
const spinner = ora(`Fetching logs for campaign ${campaignId}...`).start();
|
|
22
|
+
try {
|
|
23
|
+
const params = {
|
|
24
|
+
campaignId: parseInt(campaignId)
|
|
25
|
+
};
|
|
26
|
+
if (options.startTime)
|
|
27
|
+
params.startTime = parseInt(options.startTime);
|
|
28
|
+
if (options.endTime)
|
|
29
|
+
params.endTime = parseInt(options.endTime);
|
|
30
|
+
if (options.page)
|
|
31
|
+
params.page = parseInt(options.page);
|
|
32
|
+
if (options.perPage)
|
|
33
|
+
params.perPage = parseInt(options.perPage);
|
|
34
|
+
if (options.withCount)
|
|
35
|
+
params.withCount = true;
|
|
36
|
+
if (options.filter)
|
|
37
|
+
params.filter = options.filter;
|
|
38
|
+
if (options.sort)
|
|
39
|
+
params.sort = options.sort;
|
|
40
|
+
if (options.cursor)
|
|
41
|
+
params.cursor = options.cursor;
|
|
42
|
+
const data = await client.sdk.logService.getCampaignLogs(params);
|
|
43
|
+
spinner.stop();
|
|
44
|
+
formatter.output(data);
|
|
45
|
+
}
|
|
46
|
+
catch (error) {
|
|
47
|
+
spinner.stop();
|
|
48
|
+
displayError(error, {
|
|
49
|
+
command: 'logs campaign',
|
|
50
|
+
resource: 'campaign',
|
|
51
|
+
resourceId: campaignId,
|
|
52
|
+
operation: 'fetch logs'
|
|
53
|
+
});
|
|
54
|
+
process.exit(1);
|
|
55
|
+
}
|
|
56
|
+
});
|
|
57
|
+
// Get list logs
|
|
58
|
+
logs
|
|
59
|
+
.command('list [list-id]')
|
|
60
|
+
.description('View logs for a list (auto-detects if only one list exists)')
|
|
61
|
+
.option('--start-time <timestamp>', 'Start time (Unix timestamp)')
|
|
62
|
+
.option('--end-time <timestamp>', 'End time (Unix timestamp)')
|
|
63
|
+
.option('-p, --page <number>', 'Page number')
|
|
64
|
+
.option('--per-page <number>', 'Results per page')
|
|
65
|
+
.option('--with-count', 'Include total count')
|
|
66
|
+
.option('--filter <filter>', 'Filter (e.g., "type==subscribe;email==user@example.com")')
|
|
67
|
+
.action(async (listId, options) => {
|
|
68
|
+
// Auto-detect list ID if not provided
|
|
69
|
+
const detectedListId = await autoDetectList(client, formatter, listId, { useCache: true });
|
|
70
|
+
if (!detectedListId) {
|
|
71
|
+
process.exit(1);
|
|
72
|
+
}
|
|
73
|
+
const spinner = ora(`Fetching logs for list ${detectedListId}...`).start();
|
|
74
|
+
try {
|
|
75
|
+
const params = {
|
|
76
|
+
listId: detectedListId
|
|
77
|
+
};
|
|
78
|
+
if (options.startTime)
|
|
79
|
+
params.startTime = parseInt(options.startTime);
|
|
80
|
+
if (options.endTime)
|
|
81
|
+
params.endTime = parseInt(options.endTime);
|
|
82
|
+
if (options.page)
|
|
83
|
+
params.page = parseInt(options.page);
|
|
84
|
+
if (options.perPage)
|
|
85
|
+
params.perPage = parseInt(options.perPage);
|
|
86
|
+
if (options.withCount)
|
|
87
|
+
params.withCount = true;
|
|
88
|
+
if (options.filter)
|
|
89
|
+
params.filter = options.filter;
|
|
90
|
+
const data = await client.sdk.logService.getListLogs(params);
|
|
91
|
+
spinner.stop();
|
|
92
|
+
formatter.output(data);
|
|
93
|
+
}
|
|
94
|
+
catch (error) {
|
|
95
|
+
spinner.stop();
|
|
96
|
+
displayError(error, {
|
|
97
|
+
command: 'logs list',
|
|
98
|
+
resource: 'list',
|
|
99
|
+
resourceId: detectedListId,
|
|
100
|
+
operation: 'fetch logs'
|
|
101
|
+
});
|
|
102
|
+
process.exit(1);
|
|
103
|
+
}
|
|
104
|
+
});
|
|
105
|
+
// Export campaign logs
|
|
106
|
+
logs
|
|
107
|
+
.command('campaign-export <campaign-id>')
|
|
108
|
+
.description('Create a campaign log export')
|
|
109
|
+
.option('--description <description>', 'Export description')
|
|
110
|
+
.option('--filter <filter>', 'Filter logs to export')
|
|
111
|
+
.action(async (campaignId, options) => {
|
|
112
|
+
const spinner = ora(`Creating log export for campaign ${campaignId}...`).start();
|
|
113
|
+
try {
|
|
114
|
+
const payload = {};
|
|
115
|
+
if (options.description)
|
|
116
|
+
payload.description = options.description;
|
|
117
|
+
if (options.filter)
|
|
118
|
+
payload.filter = options.filter;
|
|
119
|
+
const data = await client.sdk.logService.campaignLogExportCreate({
|
|
120
|
+
campaignId: parseInt(campaignId),
|
|
121
|
+
requestBody: payload
|
|
122
|
+
});
|
|
123
|
+
spinner.stop();
|
|
124
|
+
formatter.success('Campaign log export created successfully');
|
|
125
|
+
formatter.output(data);
|
|
126
|
+
formatter.info('\nUse the export ID to download: cakemail logs campaign-export-download <campaign-id> <export-id>');
|
|
127
|
+
}
|
|
128
|
+
catch (error) {
|
|
129
|
+
spinner.stop();
|
|
130
|
+
displayError(error, {
|
|
131
|
+
command: 'logs campaign-export',
|
|
132
|
+
resource: 'campaign',
|
|
133
|
+
resourceId: campaignId,
|
|
134
|
+
operation: 'create log export'
|
|
135
|
+
});
|
|
136
|
+
process.exit(1);
|
|
137
|
+
}
|
|
138
|
+
});
|
|
139
|
+
// Download campaign log export
|
|
140
|
+
logs
|
|
141
|
+
.command('campaign-export-download <campaign-id> <export-id>')
|
|
142
|
+
.description('Download a campaign log export')
|
|
143
|
+
.action(async (campaignId, exportId) => {
|
|
144
|
+
const spinner = ora('Fetching download URL...').start();
|
|
145
|
+
try {
|
|
146
|
+
const data = await client.sdk.logService.campaignLogExportDownload({
|
|
147
|
+
campaignId: parseInt(campaignId),
|
|
148
|
+
campaignLogExportId: exportId
|
|
149
|
+
});
|
|
150
|
+
spinner.stop();
|
|
151
|
+
formatter.success('Export download URL retrieved');
|
|
152
|
+
formatter.output(data);
|
|
153
|
+
}
|
|
154
|
+
catch (error) {
|
|
155
|
+
spinner.stop();
|
|
156
|
+
displayError(error, {
|
|
157
|
+
command: 'logs campaign-export-download',
|
|
158
|
+
resource: 'campaign log export',
|
|
159
|
+
resourceId: exportId,
|
|
160
|
+
operation: 'download'
|
|
161
|
+
});
|
|
162
|
+
process.exit(1);
|
|
163
|
+
}
|
|
164
|
+
});
|
|
165
|
+
// Export list logs
|
|
166
|
+
logs
|
|
167
|
+
.command('list-export [list-id]')
|
|
168
|
+
.description('Create a list log export (auto-detects if only one list exists)')
|
|
169
|
+
.option('--description <description>', 'Export description')
|
|
170
|
+
.option('--filter <filter>', 'Filter logs to export')
|
|
171
|
+
.action(async (listId, options) => {
|
|
172
|
+
// Auto-detect list ID if not provided
|
|
173
|
+
const detectedListId = await autoDetectList(client, formatter, listId, { useCache: true });
|
|
174
|
+
if (!detectedListId) {
|
|
175
|
+
process.exit(1);
|
|
176
|
+
}
|
|
177
|
+
const spinner = ora(`Creating log export for list ${detectedListId}...`).start();
|
|
178
|
+
try {
|
|
179
|
+
const payload = {};
|
|
180
|
+
if (options.description)
|
|
181
|
+
payload.description = options.description;
|
|
182
|
+
if (options.filter)
|
|
183
|
+
payload.filter = options.filter;
|
|
184
|
+
const data = await client.sdk.logService.listLogsExportCreate({
|
|
185
|
+
listId: detectedListId,
|
|
186
|
+
requestBody: payload
|
|
187
|
+
});
|
|
188
|
+
spinner.stop();
|
|
189
|
+
formatter.success('List log export created successfully');
|
|
190
|
+
formatter.output(data);
|
|
191
|
+
formatter.info('\nUse the export ID to download: cakemail logs list-export-download <list-id> <export-id>');
|
|
192
|
+
}
|
|
193
|
+
catch (error) {
|
|
194
|
+
spinner.stop();
|
|
195
|
+
displayError(error, {
|
|
196
|
+
command: 'logs list-export',
|
|
197
|
+
resource: 'list',
|
|
198
|
+
resourceId: detectedListId,
|
|
199
|
+
operation: 'create log export'
|
|
200
|
+
});
|
|
201
|
+
process.exit(1);
|
|
202
|
+
}
|
|
203
|
+
});
|
|
204
|
+
// Download list log export
|
|
205
|
+
logs
|
|
206
|
+
.command('list-export-download [list-id] <export-id>')
|
|
207
|
+
.description('Download a list log export (auto-detects if only one list exists)')
|
|
208
|
+
.action(async (listId, exportId) => {
|
|
209
|
+
// Auto-detect list ID if not provided
|
|
210
|
+
const detectedListId = await autoDetectList(client, formatter, listId, { useCache: true });
|
|
211
|
+
if (!detectedListId) {
|
|
212
|
+
process.exit(1);
|
|
213
|
+
}
|
|
214
|
+
const spinner = ora('Fetching download URL...').start();
|
|
215
|
+
try {
|
|
216
|
+
const data = await client.sdk.logService.listLogsExportDownload({
|
|
217
|
+
listId: detectedListId,
|
|
218
|
+
listLogsExportId: exportId
|
|
219
|
+
});
|
|
220
|
+
spinner.stop();
|
|
221
|
+
formatter.success('Export download URL retrieved');
|
|
222
|
+
formatter.output(data);
|
|
223
|
+
}
|
|
224
|
+
catch (error) {
|
|
225
|
+
spinner.stop();
|
|
226
|
+
displayError(error, {
|
|
227
|
+
command: 'logs list-export-download',
|
|
228
|
+
resource: 'list log export',
|
|
229
|
+
resourceId: exportId,
|
|
230
|
+
operation: 'download'
|
|
231
|
+
});
|
|
232
|
+
process.exit(1);
|
|
233
|
+
}
|
|
234
|
+
});
|
|
235
|
+
return logs;
|
|
236
|
+
}
|
|
237
|
+
//# sourceMappingURL=logs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logs.js","sourceRoot":"","sources":["../../src/commands/logs.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reports.d.ts","sourceRoot":"","sources":["../../src/commands/reports.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"reports.d.ts","sourceRoot":"","sources":["../../src/commands/reports.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAMrD,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,cAAc,EAAE,SAAS,EAAE,eAAe,GAAG,OAAO,CAgVhG"}
|
package/dist/commands/reports.js
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
import { Command } from 'commander';
|
|
2
2
|
import ora from 'ora';
|
|
3
|
+
import { pollUntilComplete } from '../utils/progress.js';
|
|
4
|
+
import { displayError, validate } from '../utils/errors.js';
|
|
5
|
+
import { confirmDelete } from '../utils/confirm.js';
|
|
3
6
|
export function createReportsCommand(client, formatter) {
|
|
4
7
|
const reports = new Command('reports')
|
|
5
8
|
.description('View analytics and reports');
|
|
@@ -8,6 +11,12 @@ export function createReportsCommand(client, formatter) {
|
|
|
8
11
|
.command('campaign <id>')
|
|
9
12
|
.description('Get campaign analytics and statistics')
|
|
10
13
|
.action(async (id) => {
|
|
14
|
+
// Validate ID
|
|
15
|
+
const validation = validate.id(id, 'Campaign ID');
|
|
16
|
+
if (!validation.valid) {
|
|
17
|
+
formatter.error(validation.error);
|
|
18
|
+
process.exit(1);
|
|
19
|
+
}
|
|
11
20
|
const spinner = ora(`Fetching campaign ${id} report...`).start();
|
|
12
21
|
try {
|
|
13
22
|
const data = await client.sdk.reportService.getCampaignStats({ campaignId: parseInt(id) });
|
|
@@ -16,7 +25,12 @@ export function createReportsCommand(client, formatter) {
|
|
|
16
25
|
}
|
|
17
26
|
catch (error) {
|
|
18
27
|
spinner.stop();
|
|
19
|
-
|
|
28
|
+
displayError(error, {
|
|
29
|
+
command: 'reports campaign',
|
|
30
|
+
resource: 'campaign',
|
|
31
|
+
resourceId: id,
|
|
32
|
+
operation: 'fetch report'
|
|
33
|
+
});
|
|
20
34
|
process.exit(1);
|
|
21
35
|
}
|
|
22
36
|
});
|
|
@@ -25,6 +39,12 @@ export function createReportsCommand(client, formatter) {
|
|
|
25
39
|
.command('campaign-links <id>')
|
|
26
40
|
.description('Get campaign link click analytics')
|
|
27
41
|
.action(async (id) => {
|
|
42
|
+
// Validate ID
|
|
43
|
+
const validation = validate.id(id, 'Campaign ID');
|
|
44
|
+
if (!validation.valid) {
|
|
45
|
+
formatter.error(validation.error);
|
|
46
|
+
process.exit(1);
|
|
47
|
+
}
|
|
28
48
|
const spinner = ora(`Fetching link analytics for campaign ${id}...`).start();
|
|
29
49
|
try {
|
|
30
50
|
const data = await client.sdk.reportService.getCampaignLinksStats({ campaignId: parseInt(id) });
|
|
@@ -33,7 +53,12 @@ export function createReportsCommand(client, formatter) {
|
|
|
33
53
|
}
|
|
34
54
|
catch (error) {
|
|
35
55
|
spinner.stop();
|
|
36
|
-
|
|
56
|
+
displayError(error, {
|
|
57
|
+
command: 'reports campaign-links',
|
|
58
|
+
resource: 'campaign',
|
|
59
|
+
resourceId: id,
|
|
60
|
+
operation: 'fetch link analytics'
|
|
61
|
+
});
|
|
37
62
|
process.exit(1);
|
|
38
63
|
}
|
|
39
64
|
});
|
|
@@ -42,6 +67,12 @@ export function createReportsCommand(client, formatter) {
|
|
|
42
67
|
.command('list <id>')
|
|
43
68
|
.description('Get list analytics and statistics')
|
|
44
69
|
.action(async (id) => {
|
|
70
|
+
// Validate ID
|
|
71
|
+
const validation = validate.id(id, 'List ID');
|
|
72
|
+
if (!validation.valid) {
|
|
73
|
+
formatter.error(validation.error);
|
|
74
|
+
process.exit(1);
|
|
75
|
+
}
|
|
45
76
|
const spinner = ora(`Fetching list ${id} report...`).start();
|
|
46
77
|
try {
|
|
47
78
|
const data = await client.sdk.reportService.getListStats({ listId: parseInt(id) });
|
|
@@ -50,7 +81,12 @@ export function createReportsCommand(client, formatter) {
|
|
|
50
81
|
}
|
|
51
82
|
catch (error) {
|
|
52
83
|
spinner.stop();
|
|
53
|
-
|
|
84
|
+
displayError(error, {
|
|
85
|
+
command: 'reports list',
|
|
86
|
+
resource: 'list',
|
|
87
|
+
resourceId: id,
|
|
88
|
+
operation: 'fetch report'
|
|
89
|
+
});
|
|
54
90
|
process.exit(1);
|
|
55
91
|
}
|
|
56
92
|
});
|
|
@@ -170,12 +206,12 @@ export function createReportsCommand(client, formatter) {
|
|
|
170
206
|
// Create campaigns export
|
|
171
207
|
reports
|
|
172
208
|
.command('export-campaigns')
|
|
173
|
-
.description('Create a campaigns report export')
|
|
209
|
+
.description('Create and download a campaigns report export')
|
|
174
210
|
.option('--from <date>', 'Start date (YYYY-MM-DD)')
|
|
175
211
|
.option('--to <date>', 'End date (YYYY-MM-DD)')
|
|
176
212
|
.option('--status <status>', 'Filter by status')
|
|
213
|
+
.option('--no-wait', 'Create export without waiting for completion')
|
|
177
214
|
.action(async (options) => {
|
|
178
|
-
const spinner = ora('Creating campaign report export...').start();
|
|
179
215
|
try {
|
|
180
216
|
const params = {};
|
|
181
217
|
if (options.from)
|
|
@@ -184,13 +220,48 @@ export function createReportsCommand(client, formatter) {
|
|
|
184
220
|
params.to = options.to;
|
|
185
221
|
if (options.status)
|
|
186
222
|
params.status = options.status;
|
|
187
|
-
|
|
188
|
-
spinner.
|
|
189
|
-
|
|
190
|
-
|
|
223
|
+
// Create the export
|
|
224
|
+
const spinner = ora('Creating campaign report export...').start();
|
|
225
|
+
const exportResponse = await client.sdk.reportService.createCampaignsReportsExport({ requestBody: params });
|
|
226
|
+
spinner.succeed('Export job created');
|
|
227
|
+
const exportId = exportResponse.data?.id;
|
|
228
|
+
if (!exportId) {
|
|
229
|
+
formatter.error('Export ID not returned');
|
|
230
|
+
process.exit(1);
|
|
231
|
+
}
|
|
232
|
+
// If --no-wait flag is set, just show the export ID
|
|
233
|
+
if (options.wait === false) {
|
|
234
|
+
formatter.info(`Export ID: ${exportId}`);
|
|
235
|
+
formatter.info(`Check status with: cakemail reports campaigns-export ${exportId}`);
|
|
236
|
+
formatter.output(exportResponse);
|
|
237
|
+
return;
|
|
238
|
+
}
|
|
239
|
+
// Poll until export is ready
|
|
240
|
+
const result = await pollUntilComplete(async () => {
|
|
241
|
+
const status = await client.sdk.reportService.getCampaignsReportsExport({
|
|
242
|
+
exportId: exportId
|
|
243
|
+
});
|
|
244
|
+
const exportStatus = status.data?.status;
|
|
245
|
+
const complete = exportStatus === 'ready' || exportStatus === 'error';
|
|
246
|
+
return {
|
|
247
|
+
complete,
|
|
248
|
+
status: exportStatus === 'ready'
|
|
249
|
+
? 'Export ready'
|
|
250
|
+
: `Export ${exportStatus || 'processing'}...`,
|
|
251
|
+
data: status
|
|
252
|
+
};
|
|
253
|
+
}, 'Waiting for export to complete...', { checkInterval: 2000, maxAttempts: 60 });
|
|
254
|
+
if (result.data?.status === 'ready') {
|
|
255
|
+
formatter.info(`Export completed. Download with: cakemail reports download-campaigns-export ${exportId}`);
|
|
256
|
+
formatter.output(result);
|
|
257
|
+
}
|
|
258
|
+
else {
|
|
259
|
+
formatter.error('Export failed');
|
|
260
|
+
formatter.output(result);
|
|
261
|
+
process.exit(1);
|
|
262
|
+
}
|
|
191
263
|
}
|
|
192
264
|
catch (error) {
|
|
193
|
-
spinner.stop();
|
|
194
265
|
formatter.error(error.message);
|
|
195
266
|
process.exit(1);
|
|
196
267
|
}
|
|
@@ -234,11 +305,17 @@ export function createReportsCommand(client, formatter) {
|
|
|
234
305
|
reports
|
|
235
306
|
.command('delete-campaigns-export <id>')
|
|
236
307
|
.description('Delete a campaigns report export')
|
|
237
|
-
.option('-f, --force', 'Skip confirmation')
|
|
308
|
+
.option('-f, --force', 'Skip confirmation prompt')
|
|
238
309
|
.action(async (id, options) => {
|
|
310
|
+
// Interactive confirmation (unless --force is used)
|
|
239
311
|
if (!options.force) {
|
|
240
|
-
|
|
241
|
-
|
|
312
|
+
const confirmed = await confirmDelete('campaigns report export', id, [
|
|
313
|
+
'Export file will be permanently deleted'
|
|
314
|
+
]);
|
|
315
|
+
if (!confirmed) {
|
|
316
|
+
formatter.info('Deletion cancelled');
|
|
317
|
+
return;
|
|
318
|
+
}
|
|
242
319
|
}
|
|
243
320
|
const spinner = ora(`Deleting export ${id}...`).start();
|
|
244
321
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reports.js","sourceRoot":"","sources":["../../src/commands/reports.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"reports.js","sourceRoot":"","sources":["../../src/commands/reports.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"segments.d.ts","sourceRoot":"","sources":["../../src/commands/segments.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"segments.d.ts","sourceRoot":"","sources":["../../src/commands/segments.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAKrD,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,cAAc,EAAE,SAAS,EAAE,eAAe,GAAG,OAAO,CAmNjG"}
|
|
@@ -1,19 +1,26 @@
|
|
|
1
1
|
import { Command } from 'commander';
|
|
2
2
|
import ora from 'ora';
|
|
3
|
+
import { confirmDelete } from '../utils/confirm.js';
|
|
4
|
+
import { autoDetectList } from '../utils/defaults.js';
|
|
3
5
|
export function createSegmentsCommand(client, formatter) {
|
|
4
6
|
const segments = new Command('segments')
|
|
5
7
|
.description('Manage contact segments');
|
|
6
8
|
// List segments
|
|
7
9
|
segments
|
|
8
|
-
.command('list
|
|
9
|
-
.description('List all segments in a list')
|
|
10
|
+
.command('list [list-id]')
|
|
11
|
+
.description('List all segments in a list (auto-detects if only one list exists)')
|
|
10
12
|
.option('-l, --limit <number>', 'Limit number of results')
|
|
11
13
|
.option('-p, --page <number>', 'Page number')
|
|
12
14
|
.action(async (listId, options) => {
|
|
15
|
+
// Auto-detect list ID if not provided
|
|
16
|
+
const detectedListId = await autoDetectList(client, formatter, listId, { useCache: true });
|
|
17
|
+
if (!detectedListId) {
|
|
18
|
+
process.exit(1);
|
|
19
|
+
}
|
|
13
20
|
const spinner = ora('Fetching segments...').start();
|
|
14
21
|
try {
|
|
15
22
|
const params = {
|
|
16
|
-
listId:
|
|
23
|
+
listId: detectedListId
|
|
17
24
|
};
|
|
18
25
|
if (options.limit)
|
|
19
26
|
params.per_page = parseInt(options.limit);
|
|
@@ -31,13 +38,18 @@ export function createSegmentsCommand(client, formatter) {
|
|
|
31
38
|
});
|
|
32
39
|
// Get segment
|
|
33
40
|
segments
|
|
34
|
-
.command('get
|
|
35
|
-
.description('Get segment details')
|
|
41
|
+
.command('get [list-id] <segment-id>')
|
|
42
|
+
.description('Get segment details (auto-detects if only one list exists)')
|
|
36
43
|
.action(async (listId, segmentId) => {
|
|
44
|
+
// Auto-detect list ID if not provided
|
|
45
|
+
const detectedListId = await autoDetectList(client, formatter, listId, { useCache: true });
|
|
46
|
+
if (!detectedListId) {
|
|
47
|
+
process.exit(1);
|
|
48
|
+
}
|
|
37
49
|
const spinner = ora(`Fetching segment ${segmentId}...`).start();
|
|
38
50
|
try {
|
|
39
51
|
const data = await client.sdk.segmentService.getSegment({
|
|
40
|
-
listId:
|
|
52
|
+
listId: detectedListId,
|
|
41
53
|
segmentId: parseInt(segmentId)
|
|
42
54
|
});
|
|
43
55
|
spinner.stop();
|
|
@@ -51,11 +63,16 @@ export function createSegmentsCommand(client, formatter) {
|
|
|
51
63
|
});
|
|
52
64
|
// Create segment
|
|
53
65
|
segments
|
|
54
|
-
.command('create
|
|
55
|
-
.description('Create a new segment')
|
|
66
|
+
.command('create [list-id]')
|
|
67
|
+
.description('Create a new segment (auto-detects if only one list exists)')
|
|
56
68
|
.requiredOption('-n, --name <name>', 'Segment name')
|
|
57
69
|
.option('-c, --conditions <json>', 'Segment conditions as JSON')
|
|
58
70
|
.action(async (listId, options) => {
|
|
71
|
+
// Auto-detect list ID if not provided
|
|
72
|
+
const detectedListId = await autoDetectList(client, formatter, listId, { useCache: true });
|
|
73
|
+
if (!detectedListId) {
|
|
74
|
+
process.exit(1);
|
|
75
|
+
}
|
|
59
76
|
const spinner = ora('Creating segment...').start();
|
|
60
77
|
try {
|
|
61
78
|
const payload = {
|
|
@@ -65,7 +82,7 @@ export function createSegmentsCommand(client, formatter) {
|
|
|
65
82
|
payload.conditions = JSON.parse(options.conditions);
|
|
66
83
|
}
|
|
67
84
|
const data = await client.sdk.segmentService.createSegment({
|
|
68
|
-
listId:
|
|
85
|
+
listId: detectedListId,
|
|
69
86
|
requestBody: payload
|
|
70
87
|
});
|
|
71
88
|
spinner.stop();
|
|
@@ -80,11 +97,16 @@ export function createSegmentsCommand(client, formatter) {
|
|
|
80
97
|
});
|
|
81
98
|
// Update segment
|
|
82
99
|
segments
|
|
83
|
-
.command('update
|
|
84
|
-
.description('Update a segment')
|
|
100
|
+
.command('update [list-id] <segment-id>')
|
|
101
|
+
.description('Update a segment (auto-detects if only one list exists)')
|
|
85
102
|
.option('-n, --name <name>', 'Segment name')
|
|
86
103
|
.option('-c, --conditions <json>', 'Segment conditions as JSON')
|
|
87
104
|
.action(async (listId, segmentId, options) => {
|
|
105
|
+
// Auto-detect list ID if not provided
|
|
106
|
+
const detectedListId = await autoDetectList(client, formatter, listId, { useCache: true });
|
|
107
|
+
if (!detectedListId) {
|
|
108
|
+
process.exit(1);
|
|
109
|
+
}
|
|
88
110
|
const spinner = ora(`Updating segment ${segmentId}...`).start();
|
|
89
111
|
try {
|
|
90
112
|
const payload = {};
|
|
@@ -94,7 +116,7 @@ export function createSegmentsCommand(client, formatter) {
|
|
|
94
116
|
payload.conditions = JSON.parse(options.conditions);
|
|
95
117
|
}
|
|
96
118
|
const data = await client.sdk.segmentService.patchSegment({
|
|
97
|
-
listId:
|
|
119
|
+
listId: detectedListId,
|
|
98
120
|
segmentId: parseInt(segmentId),
|
|
99
121
|
requestBody: payload
|
|
100
122
|
});
|
|
@@ -110,18 +132,29 @@ export function createSegmentsCommand(client, formatter) {
|
|
|
110
132
|
});
|
|
111
133
|
// Delete segment
|
|
112
134
|
segments
|
|
113
|
-
.command('delete
|
|
114
|
-
.description('Delete a segment')
|
|
115
|
-
.option('-f, --force', 'Skip confirmation')
|
|
135
|
+
.command('delete [list-id] <segment-id>')
|
|
136
|
+
.description('Delete a segment (auto-detects if only one list exists)')
|
|
137
|
+
.option('-f, --force', 'Skip confirmation prompt')
|
|
116
138
|
.action(async (listId, segmentId, options) => {
|
|
117
|
-
if
|
|
118
|
-
|
|
139
|
+
// Auto-detect list ID if not provided
|
|
140
|
+
const detectedListId = await autoDetectList(client, formatter, listId, { useCache: true });
|
|
141
|
+
if (!detectedListId) {
|
|
119
142
|
process.exit(1);
|
|
120
143
|
}
|
|
144
|
+
// Interactive confirmation (unless --force is used)
|
|
145
|
+
if (!options.force) {
|
|
146
|
+
const confirmed = await confirmDelete('segment', segmentId, [
|
|
147
|
+
'Segment will be permanently deleted'
|
|
148
|
+
]);
|
|
149
|
+
if (!confirmed) {
|
|
150
|
+
formatter.info('Deletion cancelled');
|
|
151
|
+
return;
|
|
152
|
+
}
|
|
153
|
+
}
|
|
121
154
|
const spinner = ora(`Deleting segment ${segmentId}...`).start();
|
|
122
155
|
try {
|
|
123
156
|
await client.sdk.segmentService.deleteSegment({
|
|
124
|
-
listId:
|
|
157
|
+
listId: detectedListId,
|
|
125
158
|
segmentId: parseInt(segmentId)
|
|
126
159
|
});
|
|
127
160
|
spinner.stop();
|
|
@@ -135,15 +168,20 @@ export function createSegmentsCommand(client, formatter) {
|
|
|
135
168
|
});
|
|
136
169
|
// List segment contacts
|
|
137
170
|
segments
|
|
138
|
-
.command('contacts
|
|
139
|
-
.description('List contacts in a segment')
|
|
171
|
+
.command('contacts [list-id] <segment-id>')
|
|
172
|
+
.description('List contacts in a segment (auto-detects if only one list exists)')
|
|
140
173
|
.option('-l, --limit <number>', 'Limit number of results')
|
|
141
174
|
.option('-p, --page <number>', 'Page number')
|
|
142
175
|
.action(async (listId, segmentId, options) => {
|
|
176
|
+
// Auto-detect list ID if not provided
|
|
177
|
+
const detectedListId = await autoDetectList(client, formatter, listId, { useCache: true });
|
|
178
|
+
if (!detectedListId) {
|
|
179
|
+
process.exit(1);
|
|
180
|
+
}
|
|
143
181
|
const spinner = ora('Fetching segment contacts...').start();
|
|
144
182
|
try {
|
|
145
183
|
const params = {
|
|
146
|
-
listId:
|
|
184
|
+
listId: detectedListId,
|
|
147
185
|
segmentId: parseInt(segmentId)
|
|
148
186
|
};
|
|
149
187
|
if (options.limit)
|