@optima-chat/commerce-cli 1.8.1 → 1.9.1
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/.claude/skills/commerce-review/SKILL.md +222 -0
- package/dist/api/rest/commerce.d.ts +147 -1
- package/dist/api/rest/commerce.d.ts.map +1 -1
- package/dist/api/rest/commerce.js +90 -0
- package/dist/api/rest/commerce.js.map +1 -1
- package/dist/commands/review/approve.d.ts +3 -0
- package/dist/commands/review/approve.d.ts.map +1 -0
- package/dist/commands/review/approve.js +73 -0
- package/dist/commands/review/approve.js.map +1 -0
- package/dist/commands/review/batch.d.ts +3 -0
- package/dist/commands/review/batch.d.ts.map +1 -0
- package/dist/commands/review/batch.js +120 -0
- package/dist/commands/review/batch.js.map +1 -0
- package/dist/commands/review/delete-response.d.ts +3 -0
- package/dist/commands/review/delete-response.d.ts.map +1 -0
- package/dist/commands/review/delete-response.js +91 -0
- package/dist/commands/review/delete-response.js.map +1 -0
- package/dist/commands/review/delete.d.ts +3 -0
- package/dist/commands/review/delete.d.ts.map +1 -0
- package/dist/commands/review/delete.js +93 -0
- package/dist/commands/review/delete.js.map +1 -0
- package/dist/commands/review/feature.d.ts +3 -0
- package/dist/commands/review/feature.d.ts.map +1 -0
- package/dist/commands/review/feature.js +89 -0
- package/dist/commands/review/feature.js.map +1 -0
- package/dist/commands/review/get-settings.d.ts +3 -0
- package/dist/commands/review/get-settings.d.ts.map +1 -0
- package/dist/commands/review/get-settings.js +89 -0
- package/dist/commands/review/get-settings.js.map +1 -0
- package/dist/commands/review/get.d.ts +3 -0
- package/dist/commands/review/get.d.ts.map +1 -0
- package/dist/commands/review/get.js +79 -0
- package/dist/commands/review/get.js.map +1 -0
- package/dist/commands/review/handle-report.d.ts +3 -0
- package/dist/commands/review/handle-report.d.ts.map +1 -0
- package/dist/commands/review/handle-report.js +85 -0
- package/dist/commands/review/handle-report.js.map +1 -0
- package/dist/commands/review/index.d.ts +3 -0
- package/dist/commands/review/index.d.ts.map +1 -0
- package/dist/commands/review/index.js +32 -0
- package/dist/commands/review/index.js.map +1 -0
- package/dist/commands/review/list.d.ts +3 -0
- package/dist/commands/review/list.d.ts.map +1 -0
- package/dist/commands/review/list.js +144 -0
- package/dist/commands/review/list.js.map +1 -0
- package/dist/commands/review/reject.d.ts +3 -0
- package/dist/commands/review/reject.d.ts.map +1 -0
- package/dist/commands/review/reject.js +73 -0
- package/dist/commands/review/reject.js.map +1 -0
- package/dist/commands/review/reports.d.ts +3 -0
- package/dist/commands/review/reports.d.ts.map +1 -0
- package/dist/commands/review/reports.js +90 -0
- package/dist/commands/review/reports.js.map +1 -0
- package/dist/commands/review/respond.d.ts +3 -0
- package/dist/commands/review/respond.d.ts.map +1 -0
- package/dist/commands/review/respond.js +106 -0
- package/dist/commands/review/respond.js.map +1 -0
- package/dist/commands/review/stats.d.ts +3 -0
- package/dist/commands/review/stats.d.ts.map +1 -0
- package/dist/commands/review/stats.js +71 -0
- package/dist/commands/review/stats.js.map +1 -0
- package/dist/commands/review/update-settings.d.ts +3 -0
- package/dist/commands/review/update-settings.d.ts.map +1 -0
- package/dist/commands/review/update-settings.js +167 -0
- package/dist/commands/review/update-settings.js.map +1 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/utils/format.d.ts +28 -0
- package/dist/utils/format.d.ts.map +1 -1
- package/dist/utils/format.js +186 -0
- package/dist/utils/format.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { Command } from 'commander';
|
|
2
|
+
import chalk from 'chalk';
|
|
3
|
+
import { commerceApi } from '../../api/rest/commerce.js';
|
|
4
|
+
import { handleError, createApiError, ValidationError } from '../../utils/error.js';
|
|
5
|
+
import { output } from '../../utils/output.js';
|
|
6
|
+
import { addEnhancedHelp } from '../../utils/helpText.js';
|
|
7
|
+
import { isInteractiveEnvironment, requireParam } from '../../utils/interactive.js';
|
|
8
|
+
const cmd = new Command('reject')
|
|
9
|
+
.description('Reject a review')
|
|
10
|
+
.option('--id <uuid>', 'Review ID (required)')
|
|
11
|
+
.action(async (options) => {
|
|
12
|
+
try {
|
|
13
|
+
await rejectReview(options);
|
|
14
|
+
}
|
|
15
|
+
catch (error) {
|
|
16
|
+
handleError(error);
|
|
17
|
+
}
|
|
18
|
+
});
|
|
19
|
+
addEnhancedHelp(cmd, {
|
|
20
|
+
examples: [
|
|
21
|
+
'# Reject a review',
|
|
22
|
+
'$ commerce review reject --id abc-123-def',
|
|
23
|
+
],
|
|
24
|
+
output: {
|
|
25
|
+
example: JSON.stringify({
|
|
26
|
+
success: true,
|
|
27
|
+
data: {
|
|
28
|
+
review_id: 'abc-123-def',
|
|
29
|
+
moderation_status: 'rejected',
|
|
30
|
+
},
|
|
31
|
+
message: 'Review rejected',
|
|
32
|
+
}, null, 2),
|
|
33
|
+
},
|
|
34
|
+
relatedCommands: [
|
|
35
|
+
{ command: 'review list --status pending', description: 'Find pending reviews' },
|
|
36
|
+
{ command: 'review approve', description: 'Approve a review' },
|
|
37
|
+
{ command: 'review delete', description: 'Delete a review' },
|
|
38
|
+
],
|
|
39
|
+
notes: [
|
|
40
|
+
'Rejected reviews are hidden from customers',
|
|
41
|
+
'Consider deleting spam reviews instead of rejecting',
|
|
42
|
+
],
|
|
43
|
+
});
|
|
44
|
+
export const rejectCommand = cmd;
|
|
45
|
+
async function rejectReview(options) {
|
|
46
|
+
const reviewId = isInteractiveEnvironment()
|
|
47
|
+
? (options.id?.trim() || (() => { throw new ValidationError('Review ID is required', 'id'); })())
|
|
48
|
+
: requireParam(options.id, 'id', 'Review ID');
|
|
49
|
+
const spinner = output.spinner('Rejecting review...');
|
|
50
|
+
try {
|
|
51
|
+
const review = await commerceApi.reviews.update(reviewId, {
|
|
52
|
+
moderation_status: 'rejected',
|
|
53
|
+
});
|
|
54
|
+
spinner.succeed('Review rejected');
|
|
55
|
+
if (output.isJson()) {
|
|
56
|
+
output.success({
|
|
57
|
+
review_id: review.id,
|
|
58
|
+
moderation_status: review.moderation_status,
|
|
59
|
+
}, 'Review rejected');
|
|
60
|
+
}
|
|
61
|
+
else {
|
|
62
|
+
console.log();
|
|
63
|
+
console.log(chalk.yellow('Review rejected'));
|
|
64
|
+
console.log(chalk.gray('Review ID: ') + chalk.white(review.id));
|
|
65
|
+
console.log();
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
catch (error) {
|
|
69
|
+
spinner.fail('Failed to reject review');
|
|
70
|
+
throw createApiError(error);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
//# sourceMappingURL=reject.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reject.js","sourceRoot":"","sources":["../../../src/commands/review/reject.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reports.d.ts","sourceRoot":"","sources":["../../../src/commands/review/reports.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAU,MAAM,WAAW,CAAC;AAgE5C,eAAO,MAAM,cAAc,SAAM,CAAC"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import { Command, Option } from 'commander';
|
|
2
|
+
import chalk from 'chalk';
|
|
3
|
+
import { commerceApi } from '../../api/rest/commerce.js';
|
|
4
|
+
import { handleError, createApiError } from '../../utils/error.js';
|
|
5
|
+
import { formatReportList } from '../../utils/format.js';
|
|
6
|
+
import { output } from '../../utils/output.js';
|
|
7
|
+
import { addEnhancedHelp } from '../../utils/helpText.js';
|
|
8
|
+
const cmd = new Command('reports')
|
|
9
|
+
.description('List review reports')
|
|
10
|
+
.addOption(new Option('-s, --status <status>', 'Filter by status')
|
|
11
|
+
.choices(['pending', 'reviewed', 'dismissed']))
|
|
12
|
+
.action(async (options) => {
|
|
13
|
+
try {
|
|
14
|
+
await listReports(options);
|
|
15
|
+
}
|
|
16
|
+
catch (error) {
|
|
17
|
+
handleError(error);
|
|
18
|
+
}
|
|
19
|
+
});
|
|
20
|
+
addEnhancedHelp(cmd, {
|
|
21
|
+
examples: [
|
|
22
|
+
'# List all reports',
|
|
23
|
+
'$ commerce review reports',
|
|
24
|
+
'',
|
|
25
|
+
'# Filter by pending status',
|
|
26
|
+
'$ commerce review reports --status pending',
|
|
27
|
+
],
|
|
28
|
+
output: {
|
|
29
|
+
example: JSON.stringify({
|
|
30
|
+
success: true,
|
|
31
|
+
data: {
|
|
32
|
+
reports: [
|
|
33
|
+
{
|
|
34
|
+
id: 'report-uuid',
|
|
35
|
+
review_id: 'review-uuid',
|
|
36
|
+
reason: 'inappropriate',
|
|
37
|
+
description: 'Contains offensive language',
|
|
38
|
+
status: 'pending',
|
|
39
|
+
created_at: '2025-12-21T10:00:00Z',
|
|
40
|
+
},
|
|
41
|
+
],
|
|
42
|
+
total: 1,
|
|
43
|
+
},
|
|
44
|
+
}, null, 2),
|
|
45
|
+
},
|
|
46
|
+
relatedCommands: [
|
|
47
|
+
{ command: 'review handle-report', description: 'Process a report' },
|
|
48
|
+
{ command: 'review get', description: 'View the reported review' },
|
|
49
|
+
{ command: 'review delete', description: 'Delete reported review' },
|
|
50
|
+
],
|
|
51
|
+
notes: [
|
|
52
|
+
'Reports are submitted by customers for inappropriate content',
|
|
53
|
+
'Use handle-report to mark reports as reviewed or dismissed',
|
|
54
|
+
'Report reasons: fake, inappropriate, spam, other',
|
|
55
|
+
],
|
|
56
|
+
});
|
|
57
|
+
export const reportsCommand = cmd;
|
|
58
|
+
async function listReports(options) {
|
|
59
|
+
const spinner = output.spinner('Fetching reports...');
|
|
60
|
+
try {
|
|
61
|
+
const params = {};
|
|
62
|
+
if (options.status) {
|
|
63
|
+
params.status = options.status;
|
|
64
|
+
}
|
|
65
|
+
const result = await commerceApi.reviews.listReports(params);
|
|
66
|
+
spinner.succeed('Reports fetched');
|
|
67
|
+
const reports = result.reports || [];
|
|
68
|
+
const total = result.total || 0;
|
|
69
|
+
if (output.isJson()) {
|
|
70
|
+
output.success({ reports, total }, `Retrieved ${reports.length} reports`);
|
|
71
|
+
}
|
|
72
|
+
else {
|
|
73
|
+
console.log();
|
|
74
|
+
console.log(chalk.cyan(`Found ${total} reports`));
|
|
75
|
+
console.log();
|
|
76
|
+
if (reports.length === 0) {
|
|
77
|
+
console.log(chalk.yellow('No reports found'));
|
|
78
|
+
}
|
|
79
|
+
else {
|
|
80
|
+
console.log(formatReportList(reports));
|
|
81
|
+
}
|
|
82
|
+
console.log();
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
catch (error) {
|
|
86
|
+
spinner.fail('Failed to fetch reports');
|
|
87
|
+
throw createApiError(error);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
//# sourceMappingURL=reports.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reports.js","sourceRoot":"","sources":["../../../src/commands/review/reports.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"respond.d.ts","sourceRoot":"","sources":["../../../src/commands/review/respond.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAyDpC,eAAO,MAAM,cAAc,SAAM,CAAC"}
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import { Command } from 'commander';
|
|
2
|
+
import chalk from 'chalk';
|
|
3
|
+
import inquirer from 'inquirer';
|
|
4
|
+
import { commerceApi } from '../../api/rest/commerce.js';
|
|
5
|
+
import { handleError, createApiError, ValidationError } from '../../utils/error.js';
|
|
6
|
+
import { output } from '../../utils/output.js';
|
|
7
|
+
import { addEnhancedHelp } from '../../utils/helpText.js';
|
|
8
|
+
import { isInteractiveEnvironment, requireParam } from '../../utils/interactive.js';
|
|
9
|
+
const cmd = new Command('respond')
|
|
10
|
+
.description('Add or update merchant response to a review')
|
|
11
|
+
.option('--id <uuid>', 'Review ID (required)')
|
|
12
|
+
.option('--content <text>', 'Response content (required)')
|
|
13
|
+
.action(async (options) => {
|
|
14
|
+
try {
|
|
15
|
+
await respondToReview(options);
|
|
16
|
+
}
|
|
17
|
+
catch (error) {
|
|
18
|
+
handleError(error);
|
|
19
|
+
}
|
|
20
|
+
});
|
|
21
|
+
addEnhancedHelp(cmd, {
|
|
22
|
+
examples: [
|
|
23
|
+
'# Reply to a review',
|
|
24
|
+
'$ commerce review respond --id abc-123-def --content "Thank you for your feedback!"',
|
|
25
|
+
'',
|
|
26
|
+
'# Interactive mode (prompt for content)',
|
|
27
|
+
'$ commerce review respond --id abc-123-def',
|
|
28
|
+
],
|
|
29
|
+
output: {
|
|
30
|
+
example: JSON.stringify({
|
|
31
|
+
success: true,
|
|
32
|
+
data: {
|
|
33
|
+
review_id: 'abc-123-def',
|
|
34
|
+
merchant_response: 'Thank you for your feedback!',
|
|
35
|
+
merchant_response_at: '2025-12-21T12:00:00Z',
|
|
36
|
+
},
|
|
37
|
+
message: 'Response added',
|
|
38
|
+
}, null, 2),
|
|
39
|
+
},
|
|
40
|
+
relatedCommands: [
|
|
41
|
+
{ command: 'review get', description: 'View review details' },
|
|
42
|
+
{ command: 'review delete-response', description: 'Delete your response' },
|
|
43
|
+
{ command: 'review list', description: 'Find reviews to respond to' },
|
|
44
|
+
],
|
|
45
|
+
notes: [
|
|
46
|
+
'You can only have one response per review',
|
|
47
|
+
'Responding again will update the existing response',
|
|
48
|
+
'Maximum 1000 characters',
|
|
49
|
+
],
|
|
50
|
+
});
|
|
51
|
+
export const respondCommand = cmd;
|
|
52
|
+
async function respondToReview(options) {
|
|
53
|
+
const reviewId = isInteractiveEnvironment()
|
|
54
|
+
? (options.id?.trim() || (() => { throw new ValidationError('Review ID is required', 'id'); })())
|
|
55
|
+
: requireParam(options.id, 'id', 'Review ID');
|
|
56
|
+
let content = options.content;
|
|
57
|
+
// Interactive prompt for content if not provided
|
|
58
|
+
if (!content && isInteractiveEnvironment()) {
|
|
59
|
+
const answers = await inquirer.prompt([
|
|
60
|
+
{
|
|
61
|
+
type: 'editor',
|
|
62
|
+
name: 'content',
|
|
63
|
+
message: 'Enter your response (max 1000 characters):',
|
|
64
|
+
validate: (input) => {
|
|
65
|
+
if (!input || input.trim().length === 0) {
|
|
66
|
+
return 'Response content is required';
|
|
67
|
+
}
|
|
68
|
+
if (input.length > 1000) {
|
|
69
|
+
return 'Response must be 1000 characters or less';
|
|
70
|
+
}
|
|
71
|
+
return true;
|
|
72
|
+
},
|
|
73
|
+
},
|
|
74
|
+
]);
|
|
75
|
+
content = answers.content;
|
|
76
|
+
}
|
|
77
|
+
if (!content || content.trim().length === 0) {
|
|
78
|
+
throw new ValidationError('Response content is required (--content)', 'content');
|
|
79
|
+
}
|
|
80
|
+
if (content.length > 1000) {
|
|
81
|
+
throw new ValidationError('Response must be 1000 characters or less', 'content');
|
|
82
|
+
}
|
|
83
|
+
const spinner = output.spinner('Adding response...');
|
|
84
|
+
try {
|
|
85
|
+
const review = await commerceApi.reviews.respond(reviewId, content);
|
|
86
|
+
spinner.succeed('Response added');
|
|
87
|
+
if (output.isJson()) {
|
|
88
|
+
output.success({
|
|
89
|
+
review_id: review.id,
|
|
90
|
+
merchant_response: review.merchant_response,
|
|
91
|
+
merchant_response_at: review.merchant_response_at,
|
|
92
|
+
}, 'Response added');
|
|
93
|
+
}
|
|
94
|
+
else {
|
|
95
|
+
console.log();
|
|
96
|
+
console.log(chalk.green('Response added successfully'));
|
|
97
|
+
console.log(chalk.gray('Review ID: ') + chalk.white(review.id));
|
|
98
|
+
console.log();
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
catch (error) {
|
|
102
|
+
spinner.fail('Failed to add response');
|
|
103
|
+
throw createApiError(error);
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
//# sourceMappingURL=respond.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"respond.js","sourceRoot":"","sources":["../../../src/commands/review/respond.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stats.d.ts","sourceRoot":"","sources":["../../../src/commands/review/stats.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAqDpC,eAAO,MAAM,YAAY,SAAM,CAAC"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import { Command } from 'commander';
|
|
2
|
+
import { commerceApi } from '../../api/rest/commerce.js';
|
|
3
|
+
import { handleError, createApiError } from '../../utils/error.js';
|
|
4
|
+
import { formatReviewStats } from '../../utils/format.js';
|
|
5
|
+
import { output } from '../../utils/output.js';
|
|
6
|
+
import { addEnhancedHelp } from '../../utils/helpText.js';
|
|
7
|
+
const cmd = new Command('stats')
|
|
8
|
+
.description('Get shop review statistics')
|
|
9
|
+
.action(async () => {
|
|
10
|
+
try {
|
|
11
|
+
await getReviewStats();
|
|
12
|
+
}
|
|
13
|
+
catch (error) {
|
|
14
|
+
handleError(error);
|
|
15
|
+
}
|
|
16
|
+
});
|
|
17
|
+
addEnhancedHelp(cmd, {
|
|
18
|
+
examples: [
|
|
19
|
+
'# Get review statistics',
|
|
20
|
+
'$ commerce review stats',
|
|
21
|
+
],
|
|
22
|
+
output: {
|
|
23
|
+
example: JSON.stringify({
|
|
24
|
+
success: true,
|
|
25
|
+
data: {
|
|
26
|
+
total_reviews: 150,
|
|
27
|
+
average_rating: 4.5,
|
|
28
|
+
rating_distribution: {
|
|
29
|
+
'5': 80,
|
|
30
|
+
'4': 40,
|
|
31
|
+
'3': 20,
|
|
32
|
+
'2': 5,
|
|
33
|
+
'1': 5,
|
|
34
|
+
},
|
|
35
|
+
with_media_count: 30,
|
|
36
|
+
with_reply_count: 45,
|
|
37
|
+
featured_count: 10,
|
|
38
|
+
verified_count: 120,
|
|
39
|
+
},
|
|
40
|
+
message: 'Review statistics retrieved',
|
|
41
|
+
}, null, 2),
|
|
42
|
+
},
|
|
43
|
+
relatedCommands: [
|
|
44
|
+
{ command: 'review list', description: 'View all reviews' },
|
|
45
|
+
{ command: 'review list --status pending', description: 'View pending reviews' },
|
|
46
|
+
],
|
|
47
|
+
notes: [
|
|
48
|
+
'Shows overall review metrics for your store',
|
|
49
|
+
'Rating distribution shows count for each star level',
|
|
50
|
+
],
|
|
51
|
+
});
|
|
52
|
+
export const statsCommand = cmd;
|
|
53
|
+
async function getReviewStats() {
|
|
54
|
+
const spinner = output.spinner('Fetching review statistics...');
|
|
55
|
+
try {
|
|
56
|
+
const stats = await commerceApi.reviews.stats();
|
|
57
|
+
spinner.succeed('Statistics retrieved');
|
|
58
|
+
if (output.isJson()) {
|
|
59
|
+
output.success(stats, 'Review statistics retrieved');
|
|
60
|
+
}
|
|
61
|
+
else {
|
|
62
|
+
console.log();
|
|
63
|
+
console.log(formatReviewStats(stats));
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
catch (error) {
|
|
67
|
+
spinner.fail('Failed to fetch statistics');
|
|
68
|
+
throw createApiError(error);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
//# sourceMappingURL=stats.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"stats.js","sourceRoot":"","sources":["../../../src/commands/review/stats.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAE1D,MAAM,GAAG,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC;KAC7B,WAAW,CAAC,4BAA4B,CAAC;KACzC,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,IAAI,CAAC;QACH,MAAM,cAAc,EAAE,CAAC;IACzB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,WAAW,CAAC,KAAK,CAAC,CAAC;IACrB,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,eAAe,CAAC,GAAG,EAAE;IACnB,QAAQ,EAAE;QACR,yBAAyB;QACzB,yBAAyB;KAC1B;IACD,MAAM,EAAE;QACN,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC;YACtB,OAAO,EAAE,IAAI;YACb,IAAI,EAAE;gBACJ,aAAa,EAAE,GAAG;gBAClB,cAAc,EAAE,GAAG;gBACnB,mBAAmB,EAAE;oBACnB,GAAG,EAAE,EAAE;oBACP,GAAG,EAAE,EAAE;oBACP,GAAG,EAAE,EAAE;oBACP,GAAG,EAAE,CAAC;oBACN,GAAG,EAAE,CAAC;iBACP;gBACD,gBAAgB,EAAE,EAAE;gBACpB,gBAAgB,EAAE,EAAE;gBACpB,cAAc,EAAE,EAAE;gBAClB,cAAc,EAAE,GAAG;aACpB;YACD,OAAO,EAAE,6BAA6B;SACvC,EAAE,IAAI,EAAE,CAAC,CAAC;KACZ;IACD,eAAe,EAAE;QACf,EAAE,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,kBAAkB,EAAE;QAC3D,EAAE,OAAO,EAAE,8BAA8B,EAAE,WAAW,EAAE,sBAAsB,EAAE;KACjF;IACD,KAAK,EAAE;QACL,6CAA6C;QAC7C,qDAAqD;KACtD;CACF,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,YAAY,GAAG,GAAG,CAAC;AAEhC,KAAK,UAAU,cAAc;IAC3B,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,+BAA+B,CAAC,CAAC;IAEhE,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,MAAM,WAAW,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QAChD,OAAO,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;QAExC,IAAI,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC;YACpB,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,6BAA6B,CAAC,CAAC;QACvD,CAAC;aAAM,CAAC;YACN,OAAO,CAAC,GAAG,EAAE,CAAC;YACd,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC;QACxC,CAAC;IACH,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,OAAO,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;QAC3C,MAAM,cAAc,CAAC,KAAK,CAAC,CAAC;IAC9B,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update-settings.d.ts","sourceRoot":"","sources":["../../../src/commands/review/update-settings.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA6FpC,eAAO,MAAM,qBAAqB,SAAM,CAAC"}
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
import { Command } from 'commander';
|
|
2
|
+
import chalk from 'chalk';
|
|
3
|
+
import { commerceApi } from '../../api/rest/commerce.js';
|
|
4
|
+
import { handleError, createApiError, ValidationError } from '../../utils/error.js';
|
|
5
|
+
import { output } from '../../utils/output.js';
|
|
6
|
+
import { addEnhancedHelp } from '../../utils/helpText.js';
|
|
7
|
+
const cmd = new Command('update-settings')
|
|
8
|
+
.description('Update review settings for the merchant')
|
|
9
|
+
.option('--auto-approve', 'Enable auto-approve for new reviews')
|
|
10
|
+
.option('--no-auto-approve', 'Disable auto-approve')
|
|
11
|
+
.option('--require-purchase', 'Require verified purchase to review')
|
|
12
|
+
.option('--no-require-purchase', 'Allow reviews without purchase')
|
|
13
|
+
.option('--allow-anonymous', 'Allow anonymous reviews')
|
|
14
|
+
.option('--no-allow-anonymous', 'Disable anonymous reviews')
|
|
15
|
+
.option('--review-window-days <days>', 'Days after purchase to allow reviews (1-365)')
|
|
16
|
+
.option('--allow-images', 'Allow image uploads in reviews')
|
|
17
|
+
.option('--no-allow-images', 'Disable image uploads')
|
|
18
|
+
.option('--allow-videos', 'Allow video uploads in reviews')
|
|
19
|
+
.option('--no-allow-videos', 'Disable video uploads')
|
|
20
|
+
.option('--max-images <count>', 'Maximum images per review (0-10)')
|
|
21
|
+
.option('--allow-edit', 'Allow customers to edit their reviews')
|
|
22
|
+
.option('--no-allow-edit', 'Disable review editing')
|
|
23
|
+
.option('--edit-window-days <days>', 'Days to allow editing (1-365)')
|
|
24
|
+
.action(async (options) => {
|
|
25
|
+
try {
|
|
26
|
+
await updateReviewSettings(options);
|
|
27
|
+
}
|
|
28
|
+
catch (error) {
|
|
29
|
+
handleError(error);
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
addEnhancedHelp(cmd, {
|
|
33
|
+
examples: [
|
|
34
|
+
'# Enable auto-approve',
|
|
35
|
+
'$ commerce review update-settings --auto-approve',
|
|
36
|
+
'',
|
|
37
|
+
'# Disable anonymous reviews and require purchase',
|
|
38
|
+
'$ commerce review update-settings --no-allow-anonymous --require-purchase',
|
|
39
|
+
'',
|
|
40
|
+
'# Set review window and max images',
|
|
41
|
+
'$ commerce review update-settings --review-window-days 30 --max-images 5',
|
|
42
|
+
'',
|
|
43
|
+
'# Disable video uploads',
|
|
44
|
+
'$ commerce review update-settings --no-allow-videos',
|
|
45
|
+
],
|
|
46
|
+
output: {
|
|
47
|
+
example: JSON.stringify({
|
|
48
|
+
success: true,
|
|
49
|
+
data: {
|
|
50
|
+
auto_approve: true,
|
|
51
|
+
require_purchase: true,
|
|
52
|
+
allow_anonymous: false,
|
|
53
|
+
review_window_days: 30,
|
|
54
|
+
allow_images: true,
|
|
55
|
+
allow_videos: false,
|
|
56
|
+
max_images: 5,
|
|
57
|
+
allow_edit: true,
|
|
58
|
+
edit_window_days: 7,
|
|
59
|
+
},
|
|
60
|
+
message: 'Review settings updated',
|
|
61
|
+
}, null, 2),
|
|
62
|
+
},
|
|
63
|
+
relatedCommands: [
|
|
64
|
+
{ command: 'review get-settings', description: 'View current settings' },
|
|
65
|
+
{ command: 'review list --status pending', description: 'View pending reviews' },
|
|
66
|
+
],
|
|
67
|
+
notes: [
|
|
68
|
+
'Use --option to enable, --no-option to disable',
|
|
69
|
+
'Only specified options will be updated',
|
|
70
|
+
'review_window_days: 1-365 days',
|
|
71
|
+
'max_images: 0-10 images per review',
|
|
72
|
+
],
|
|
73
|
+
});
|
|
74
|
+
export const updateSettingsCommand = cmd;
|
|
75
|
+
async function updateReviewSettings(options) {
|
|
76
|
+
const updates = {};
|
|
77
|
+
// Handle boolean options
|
|
78
|
+
if (options.autoApprove !== undefined) {
|
|
79
|
+
updates.auto_approve = true;
|
|
80
|
+
}
|
|
81
|
+
else if (options.noAutoApprove !== undefined) {
|
|
82
|
+
updates.auto_approve = false;
|
|
83
|
+
}
|
|
84
|
+
if (options.requirePurchase !== undefined) {
|
|
85
|
+
updates.require_purchase = true;
|
|
86
|
+
}
|
|
87
|
+
else if (options.noRequirePurchase !== undefined) {
|
|
88
|
+
updates.require_purchase = false;
|
|
89
|
+
}
|
|
90
|
+
if (options.allowAnonymous !== undefined) {
|
|
91
|
+
updates.allow_anonymous = true;
|
|
92
|
+
}
|
|
93
|
+
else if (options.noAllowAnonymous !== undefined) {
|
|
94
|
+
updates.allow_anonymous = false;
|
|
95
|
+
}
|
|
96
|
+
if (options.allowImages !== undefined) {
|
|
97
|
+
updates.allow_images = true;
|
|
98
|
+
}
|
|
99
|
+
else if (options.noAllowImages !== undefined) {
|
|
100
|
+
updates.allow_images = false;
|
|
101
|
+
}
|
|
102
|
+
if (options.allowVideos !== undefined) {
|
|
103
|
+
updates.allow_videos = true;
|
|
104
|
+
}
|
|
105
|
+
else if (options.noAllowVideos !== undefined) {
|
|
106
|
+
updates.allow_videos = false;
|
|
107
|
+
}
|
|
108
|
+
if (options.allowEdit !== undefined) {
|
|
109
|
+
updates.allow_edit = true;
|
|
110
|
+
}
|
|
111
|
+
else if (options.noAllowEdit !== undefined) {
|
|
112
|
+
updates.allow_edit = false;
|
|
113
|
+
}
|
|
114
|
+
// Handle numeric options
|
|
115
|
+
if (options.reviewWindowDays) {
|
|
116
|
+
const days = parseInt(options.reviewWindowDays, 10);
|
|
117
|
+
if (isNaN(days) || days < 1 || days > 365) {
|
|
118
|
+
throw new ValidationError('review-window-days must be between 1 and 365', 'review-window-days');
|
|
119
|
+
}
|
|
120
|
+
updates.review_window_days = days;
|
|
121
|
+
}
|
|
122
|
+
if (options.maxImages) {
|
|
123
|
+
const count = parseInt(options.maxImages, 10);
|
|
124
|
+
if (isNaN(count) || count < 0 || count > 10) {
|
|
125
|
+
throw new ValidationError('max-images must be between 0 and 10', 'max-images');
|
|
126
|
+
}
|
|
127
|
+
updates.max_images = count;
|
|
128
|
+
}
|
|
129
|
+
if (options.editWindowDays) {
|
|
130
|
+
const days = parseInt(options.editWindowDays, 10);
|
|
131
|
+
if (isNaN(days) || days < 1 || days > 365) {
|
|
132
|
+
throw new ValidationError('edit-window-days must be between 1 and 365', 'edit-window-days');
|
|
133
|
+
}
|
|
134
|
+
updates.edit_window_days = days;
|
|
135
|
+
}
|
|
136
|
+
if (Object.keys(updates).length === 0) {
|
|
137
|
+
throw new ValidationError('At least one setting must be specified', 'options');
|
|
138
|
+
}
|
|
139
|
+
const spinner = output.spinner('Updating review settings...');
|
|
140
|
+
try {
|
|
141
|
+
const settings = await commerceApi.reviews.updateSettings(updates);
|
|
142
|
+
spinner.succeed('Review settings updated');
|
|
143
|
+
if (output.isJson()) {
|
|
144
|
+
output.success(settings, 'Review settings updated');
|
|
145
|
+
}
|
|
146
|
+
else {
|
|
147
|
+
console.log();
|
|
148
|
+
console.log(chalk.green('Review settings updated successfully'));
|
|
149
|
+
console.log();
|
|
150
|
+
console.log(chalk.gray('Updated settings:'));
|
|
151
|
+
Object.entries(updates).forEach(([key, value]) => {
|
|
152
|
+
const displayValue = typeof value === 'boolean'
|
|
153
|
+
? (value ? chalk.green('Yes') : chalk.yellow('No'))
|
|
154
|
+
: chalk.white(value);
|
|
155
|
+
console.log(` ${chalk.gray(key + ':')} ${displayValue}`);
|
|
156
|
+
});
|
|
157
|
+
console.log();
|
|
158
|
+
console.log(chalk.gray('Use `commerce review get-settings` to view all settings'));
|
|
159
|
+
console.log();
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
catch (error) {
|
|
163
|
+
spinner.fail('Failed to update review settings');
|
|
164
|
+
throw createApiError(error);
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
//# sourceMappingURL=update-settings.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update-settings.js","sourceRoot":"","sources":["../../../src/commands/review/update-settings.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -23,6 +23,7 @@ import collection from './commands/collection/index.js';
|
|
|
23
23
|
import { testCommand } from './commands/test/index.js';
|
|
24
24
|
import { productPageCommand } from './commands/product-page/index.js';
|
|
25
25
|
import { easyshipCommand } from './commands/easyship/index.js';
|
|
26
|
+
import { reviewCommand } from './commands/review/index.js';
|
|
26
27
|
import { output } from './utils/output.js';
|
|
27
28
|
const __filename = fileURLToPath(import.meta.url);
|
|
28
29
|
const __dirname = dirname(__filename);
|
|
@@ -108,6 +109,7 @@ program.addCommand(homepage);
|
|
|
108
109
|
program.addCommand(collection);
|
|
109
110
|
program.addCommand(productPageCommand);
|
|
110
111
|
program.addCommand(easyshipCommand);
|
|
112
|
+
program.addCommand(reviewCommand);
|
|
111
113
|
program
|
|
112
114
|
.command('version')
|
|
113
115
|
.description('显示版本信息')
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AACxE,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,QAAQ,MAAM,8BAA8B,CAAC;AACpD,OAAO,UAAU,MAAM,gCAAgC,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AACtE,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAE3C,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AACtC,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,iBAAiB,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;AAC1F,MAAM,OAAO,GAAG,WAAW,CAAC,OAAO,CAAC;AAEpC,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,UAAU,CAAC;KAChB,WAAW,CAAC,iCAAiC,CAAC;KAC9C,OAAO,CAAC,OAAO,CAAC;KAChB,MAAM,CAAC,QAAQ,EAAE,mBAAmB,CAAC;KACrC,MAAM,CAAC,UAAU,EAAE,cAAc,CAAC;KAClC,WAAW,CAAC,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoDvB,CAAC,CAAC;AAEH,OAAO;AACP,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;AAChC,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;AAChC,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;AACnC,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,CAAC;AACnC,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;AACjC,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AAClC,OAAO,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC;AACrC,OAAO,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;AACpC,OAAO,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;AACpC,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AAClC,OAAO,CAAC,UAAU,CAAC,mBAAmB,CAAC,CAAC;AACxC,OAAO,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;AACpC,OAAO,CAAC,UAAU,CAAC,mBAAmB,CAAC,CAAC;AACxC,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;AAChC,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;AAChC,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;AAC7B,OAAO,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;AAC/B,OAAO,CAAC,UAAU,CAAC,kBAAkB,CAAC,CAAC;AACvC,OAAO,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;AACpC,OAAO,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC;AAElC,OAAO;KACJ,OAAO,CAAC,SAAS,CAAC;KAClB,WAAW,CAAC,QAAQ,CAAC;KACrB,MAAM,CAAC,GAAG,EAAE;IACX,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,iBAAiB,OAAO,EAAE,CAAC,CAAC,CAAC;IACpD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC,CAAC;AACtD,CAAC,CAAC,CAAC;AAEL,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE;IAClB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,qBAAqB,OAAO,IAAI,CAAC,CAAC,CAAC;IAC/D,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC,CAAC;IAChE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,uBAAuB,CAAC,CAAC,CAAC;IAClD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,2CAA2C,CAAC,CAAC,CAAC;IACrE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC;IACrC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC;IAC1E,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,wBAAwB,CAAC,CAAC,CAAC;IACjF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC,CAAC;IAChF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC7F,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC;IACrC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,sDAAsD,CAAC,CAAC,CAAC;IAChF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC,CAAC;AAC1D,CAAC,CAAC,CAAC;AAEH,OAAO,CAAC,KAAK,EAAE,CAAC;AAEhB,4BAA4B;AAC5B,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC"}
|