ecomcoder-cli 1.3.9 → 1.3.11

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 (55) hide show
  1. package/dist/cli.js +2 -0
  2. package/dist/cli.js.map +1 -1
  3. package/dist/commands/asset/delete.d.ts +5 -0
  4. package/dist/commands/asset/delete.d.ts.map +1 -0
  5. package/dist/commands/asset/delete.js +54 -0
  6. package/dist/commands/asset/delete.js.map +1 -0
  7. package/dist/commands/asset/external-apis.d.ts +13 -0
  8. package/dist/commands/asset/external-apis.d.ts.map +1 -0
  9. package/dist/commands/asset/external-apis.js +99 -0
  10. package/dist/commands/asset/external-apis.js.map +1 -0
  11. package/dist/commands/asset/get.d.ts +5 -0
  12. package/dist/commands/asset/get.d.ts.map +1 -0
  13. package/dist/commands/asset/get.js +54 -0
  14. package/dist/commands/asset/get.js.map +1 -0
  15. package/dist/commands/asset/import.d.ts +5 -0
  16. package/dist/commands/asset/import.d.ts.map +1 -0
  17. package/dist/commands/asset/import.js +57 -0
  18. package/dist/commands/asset/import.js.map +1 -0
  19. package/dist/commands/asset/index.d.ts +5 -0
  20. package/dist/commands/asset/index.d.ts.map +1 -0
  21. package/dist/commands/asset/index.js +75 -0
  22. package/dist/commands/asset/index.js.map +1 -0
  23. package/dist/commands/asset/list.d.ts +5 -0
  24. package/dist/commands/asset/list.d.ts.map +1 -0
  25. package/dist/commands/asset/list.js +53 -0
  26. package/dist/commands/asset/list.js.map +1 -0
  27. package/dist/commands/asset/queries.d.ts +12 -0
  28. package/dist/commands/asset/queries.d.ts.map +1 -0
  29. package/dist/commands/asset/queries.js +135 -0
  30. package/dist/commands/asset/queries.js.map +1 -0
  31. package/dist/commands/asset/search-icons.d.ts +6 -0
  32. package/dist/commands/asset/search-icons.d.ts.map +1 -0
  33. package/dist/commands/asset/search-icons.js +84 -0
  34. package/dist/commands/asset/search-icons.js.map +1 -0
  35. package/dist/commands/asset/search-stock.d.ts +6 -0
  36. package/dist/commands/asset/search-stock.d.ts.map +1 -0
  37. package/dist/commands/asset/search-stock.js +79 -0
  38. package/dist/commands/asset/search-stock.js.map +1 -0
  39. package/dist/commands/asset/service.d.ts +62 -0
  40. package/dist/commands/asset/service.d.ts.map +1 -0
  41. package/dist/commands/asset/service.js +417 -0
  42. package/dist/commands/asset/service.js.map +1 -0
  43. package/dist/commands/asset/types.d.ts +166 -0
  44. package/dist/commands/asset/types.d.ts.map +1 -0
  45. package/dist/commands/asset/types.js +5 -0
  46. package/dist/commands/asset/types.js.map +1 -0
  47. package/dist/commands/asset/upload.d.ts +5 -0
  48. package/dist/commands/asset/upload.d.ts.map +1 -0
  49. package/dist/commands/asset/upload.js +75 -0
  50. package/dist/commands/asset/upload.js.map +1 -0
  51. package/dist/commands/asset/utils.d.ts +13 -0
  52. package/dist/commands/asset/utils.d.ts.map +1 -0
  53. package/dist/commands/asset/utils.js +68 -0
  54. package/dist/commands/asset/utils.js.map +1 -0
  55. package/package.json +4 -2
@@ -0,0 +1,417 @@
1
+ /**
2
+ * Asset Service
3
+ *
4
+ * Handles all asset management business logic
5
+ * Following Service Layer Pattern
6
+ */
7
+ import { shopifyGraphQL } from '../../lib/shopify-client.js';
8
+ import * as fs from 'fs';
9
+ import * as path from 'path';
10
+ import FormData from 'form-data';
11
+ import { URL } from 'url';
12
+ import { downloadUrlToTemp } from './utils.js';
13
+ import { FILE_CREATE, FILES_LIST, FILE_GET, FILE_DELETE, STAGED_UPLOADS_CREATE } from './queries.js';
14
+ export class AssetService {
15
+ /**
16
+ * Upload single asset to Shopify
17
+ *
18
+ * Three-step process:
19
+ * 1. Create staged upload target
20
+ * 2. Upload file to signed URL
21
+ * 3. Create file record in Shopify
22
+ */
23
+ static async upload(credentials, input) {
24
+ let filePath;
25
+ let cleanup = null;
26
+ try {
27
+ // Validate: must provide either --file or --url
28
+ if (!input.file && !input.url) {
29
+ return {
30
+ success: false,
31
+ error: 'Must provide either --file or --url'
32
+ };
33
+ }
34
+ if (input.file && input.url) {
35
+ return {
36
+ success: false,
37
+ error: 'Cannot use both --file and --url'
38
+ };
39
+ }
40
+ // If URL provided, download to temp file
41
+ if (input.url) {
42
+ const downloaded = await downloadUrlToTemp(input.url);
43
+ filePath = downloaded.path;
44
+ cleanup = downloaded.cleanup;
45
+ }
46
+ else {
47
+ filePath = input.file;
48
+ }
49
+ // Step 1: Validate file exists
50
+ if (!fs.existsSync(filePath)) {
51
+ return {
52
+ success: false,
53
+ error: `File not found: ${filePath}`
54
+ };
55
+ }
56
+ // Step 2: Get file metadata
57
+ const stats = fs.statSync(filePath);
58
+ const fileName = path.basename(filePath);
59
+ const mimeType = getMimeType(filePath);
60
+ const fileSize = stats.size;
61
+ // Step 3: Detect content type
62
+ const contentType = input.contentType || detectContentType(mimeType);
63
+ // Step 4: Create staged upload
64
+ // CRITICAL: httpMethod must match the actual upload request method (POST for multipart)
65
+ const stagedUpload = await shopifyGraphQL(credentials, STAGED_UPLOADS_CREATE, {
66
+ input: [{
67
+ filename: fileName,
68
+ mimeType,
69
+ resource: 'FILE',
70
+ fileSize: fileSize.toString(),
71
+ httpMethod: 'POST' // Required: Must match the upload request method
72
+ }]
73
+ });
74
+ if (stagedUpload.errors || !stagedUpload.data?.stagedUploadsCreate?.stagedTargets?.[0]) {
75
+ return {
76
+ success: false,
77
+ error: stagedUpload.errors?.[0]?.message || 'Failed to create staged upload'
78
+ };
79
+ }
80
+ const target = stagedUpload.data.stagedUploadsCreate.stagedTargets[0];
81
+ // Step 5: Upload file to signed URL
82
+ // CRITICAL: GCS signed URLs require multipart/form-data with parameters
83
+ // Reference: https://community.shopify.com/c/shopify-apis-and-sdks/error-uploading-file-after-stageduploadscreate/td-p/1718315
84
+ const fileBuffer = fs.readFileSync(filePath);
85
+ const form = new FormData();
86
+ // Add parameters from stagedUploadsCreate response FIRST (required for GCS auth)
87
+ target.parameters.forEach(param => {
88
+ form.append(param.name, param.value);
89
+ });
90
+ // Add file as LAST parameter (required by GCS)
91
+ form.append('file', fileBuffer, {
92
+ filename: fileName,
93
+ contentType: mimeType
94
+ });
95
+ // Upload to signed URL using form.submit() (required for form-data package)
96
+ // CRITICAL: Don't add extra headers - form.submit() handles everything
97
+ const urlObj = new URL(target.url);
98
+ try {
99
+ await new Promise((resolve, reject) => {
100
+ form.submit({
101
+ protocol: urlObj.protocol,
102
+ host: urlObj.host,
103
+ path: urlObj.pathname + urlObj.search,
104
+ method: 'POST'
105
+ }, (err, res) => {
106
+ if (err) {
107
+ return reject(new Error(`Upload request failed: ${err.message}`));
108
+ }
109
+ let responseBody = '';
110
+ res.on('data', (chunk) => { responseBody += chunk; });
111
+ res.on('end', () => {
112
+ if (res.statusCode && res.statusCode >= 200 && res.statusCode < 300) {
113
+ resolve();
114
+ }
115
+ else {
116
+ reject(new Error(`Upload failed (${res.statusCode}): ${responseBody}`));
117
+ }
118
+ });
119
+ res.on('error', (err) => {
120
+ reject(new Error(`Response error: ${err.message}`));
121
+ });
122
+ });
123
+ });
124
+ }
125
+ catch (error) {
126
+ return {
127
+ success: false,
128
+ error: error.message || 'Unknown error during file upload'
129
+ };
130
+ }
131
+ // Step 6: Create file record in Shopify
132
+ const fileCreate = await shopifyGraphQL(credentials, FILE_CREATE, {
133
+ files: [{
134
+ alt: input.alt || fileName,
135
+ contentType,
136
+ originalSource: target.resourceUrl
137
+ }]
138
+ });
139
+ if (fileCreate.errors || fileCreate.data?.fileCreate?.userErrors?.length) {
140
+ return {
141
+ success: false,
142
+ error: fileCreate.data?.fileCreate?.userErrors?.[0]?.message ||
143
+ fileCreate.errors?.[0]?.message ||
144
+ 'Failed to create file record'
145
+ };
146
+ }
147
+ const file = fileCreate.data.fileCreate.files[0];
148
+ return {
149
+ success: true,
150
+ data: {
151
+ asset: {
152
+ id: file.id,
153
+ url: file.preview?.image?.url || target.resourceUrl,
154
+ alt: file.alt,
155
+ mediaContentType: contentType,
156
+ width: file.preview?.image?.width || null,
157
+ height: file.preview?.image?.height || null,
158
+ fileSize,
159
+ mimeType,
160
+ createdAt: file.createdAt
161
+ }
162
+ }
163
+ };
164
+ }
165
+ catch (error) {
166
+ return {
167
+ success: false,
168
+ error: error.message || 'Unknown error during upload'
169
+ };
170
+ }
171
+ finally {
172
+ // Cleanup temp file if we downloaded from URL
173
+ if (cleanup) {
174
+ cleanup();
175
+ }
176
+ }
177
+ }
178
+ /**
179
+ * List all assets
180
+ */
181
+ static async list(credentials, input = {}) {
182
+ try {
183
+ const limit = input.limit || 50;
184
+ const query = input.type ? `media_type:${input.type}` : undefined;
185
+ const response = await shopifyGraphQL(credentials, FILES_LIST, {
186
+ first: limit,
187
+ after: input.cursor || null,
188
+ query
189
+ });
190
+ if (response.errors) {
191
+ return {
192
+ success: false,
193
+ error: response.errors[0]?.message || 'Failed to list assets'
194
+ };
195
+ }
196
+ const files = response.data?.files?.edges || [];
197
+ const assets = files.map(edge => formatAsset(edge.node));
198
+ return {
199
+ success: true,
200
+ data: {
201
+ assets,
202
+ hasMore: response.data?.files?.pageInfo?.hasNextPage || false,
203
+ cursor: response.data?.files?.pageInfo?.endCursor || null
204
+ }
205
+ };
206
+ }
207
+ catch (error) {
208
+ return {
209
+ success: false,
210
+ error: error.message || 'Unknown error while listing assets'
211
+ };
212
+ }
213
+ }
214
+ /**
215
+ * Get single asset details
216
+ */
217
+ static async get(credentials, input) {
218
+ try {
219
+ const response = await shopifyGraphQL(credentials, FILE_GET, { id: input.id });
220
+ if (response.errors || !response.data?.node) {
221
+ return {
222
+ success: false,
223
+ error: response.errors?.[0]?.message || 'Asset not found'
224
+ };
225
+ }
226
+ return {
227
+ success: true,
228
+ data: {
229
+ asset: formatAsset(response.data.node)
230
+ }
231
+ };
232
+ }
233
+ catch (error) {
234
+ return {
235
+ success: false,
236
+ error: error.message || 'Unknown error while fetching asset'
237
+ };
238
+ }
239
+ }
240
+ /**
241
+ * Delete asset
242
+ */
243
+ static async delete(credentials, input) {
244
+ try {
245
+ const response = await shopifyGraphQL(credentials, FILE_DELETE, { fileIds: [input.id] });
246
+ if (response.errors || response.data?.fileDelete?.userErrors?.length) {
247
+ return {
248
+ success: false,
249
+ error: response.data?.fileDelete?.userErrors?.[0]?.message ||
250
+ response.errors?.[0]?.message ||
251
+ 'Failed to delete asset'
252
+ };
253
+ }
254
+ return {
255
+ success: true,
256
+ data: {
257
+ deletedId: response.data.fileDelete.deletedFileIds[0]
258
+ }
259
+ };
260
+ }
261
+ catch (error) {
262
+ return {
263
+ success: false,
264
+ error: error.message || 'Unknown error while deleting asset'
265
+ };
266
+ }
267
+ }
268
+ /**
269
+ * Bulk import assets from directory
270
+ */
271
+ static async import(credentials, input) {
272
+ try {
273
+ // Validate directory exists
274
+ if (!fs.existsSync(input.directory)) {
275
+ return {
276
+ success: false,
277
+ error: `Directory not found: ${input.directory}`
278
+ };
279
+ }
280
+ // Get all files in directory
281
+ const files = getFilesInDirectory(input.directory, input.pattern);
282
+ if (files.length === 0) {
283
+ return {
284
+ success: false,
285
+ error: 'No files found matching criteria'
286
+ };
287
+ }
288
+ let uploaded = 0;
289
+ let failed = 0;
290
+ const errors = [];
291
+ // Upload each file
292
+ for (const file of files) {
293
+ const result = await this.upload(credentials, { file });
294
+ if (result.success) {
295
+ uploaded++;
296
+ }
297
+ else {
298
+ failed++;
299
+ errors.push(`${path.basename(file)}: ${result.error}`);
300
+ }
301
+ // Rate limit: 500ms between uploads
302
+ await new Promise(resolve => setTimeout(resolve, 500));
303
+ }
304
+ return {
305
+ success: failed === 0,
306
+ data: { uploaded, failed, errors }
307
+ };
308
+ }
309
+ catch (error) {
310
+ return {
311
+ success: false,
312
+ error: error.message || 'Unknown error during bulk import'
313
+ };
314
+ }
315
+ }
316
+ /**
317
+ * Search stock images from Pexels
318
+ */
319
+ static async searchStock(input) {
320
+ try {
321
+ const { searchPexelsImages } = await import('./external-apis.js');
322
+ const images = await searchPexelsImages(input);
323
+ return {
324
+ success: true,
325
+ data: { images }
326
+ };
327
+ }
328
+ catch (error) {
329
+ return {
330
+ success: false,
331
+ error: error.message || 'Unknown error during stock image search'
332
+ };
333
+ }
334
+ }
335
+ /**
336
+ * Search icons from Lucide
337
+ */
338
+ static async searchIcons(input) {
339
+ try {
340
+ const { searchLucideIcons } = await import('./external-apis.js');
341
+ const icons = await searchLucideIcons(input);
342
+ return {
343
+ success: true,
344
+ data: { icons }
345
+ };
346
+ }
347
+ catch (error) {
348
+ return {
349
+ success: false,
350
+ error: error.message || 'Unknown error during icon search'
351
+ };
352
+ }
353
+ }
354
+ }
355
+ // Helper functions
356
+ function getMimeType(filePath) {
357
+ const ext = path.extname(filePath).toLowerCase();
358
+ const mimeTypes = {
359
+ '.jpg': 'image/jpeg',
360
+ '.jpeg': 'image/jpeg',
361
+ '.png': 'image/png',
362
+ '.gif': 'image/gif',
363
+ '.webp': 'image/webp',
364
+ '.svg': 'image/svg+xml',
365
+ '.mp4': 'video/mp4',
366
+ '.mov': 'video/quicktime',
367
+ '.avi': 'video/x-msvideo',
368
+ '.webm': 'video/webm'
369
+ };
370
+ return mimeTypes[ext] || 'application/octet-stream';
371
+ }
372
+ function detectContentType(mimeType) {
373
+ if (mimeType.startsWith('image/'))
374
+ return 'IMAGE';
375
+ if (mimeType.startsWith('video/'))
376
+ return 'VIDEO';
377
+ return 'GENERIC_FILE';
378
+ }
379
+ function formatAsset(node) {
380
+ return {
381
+ id: node.id,
382
+ url: node.image?.url || node.sources?.[0]?.url || '',
383
+ alt: node.alt || null,
384
+ mediaContentType: node.image ? 'IMAGE' : (node.sources ? 'VIDEO' : 'GENERIC_FILE'),
385
+ width: node.image?.width || node.sources?.[0]?.width || null,
386
+ height: node.image?.height || node.sources?.[0]?.height || null,
387
+ fileSize: node.fileSize || node.sources?.[0]?.fileSize || null,
388
+ mimeType: node.mimeType || node.sources?.[0]?.mimeType || null,
389
+ createdAt: node.createdAt
390
+ };
391
+ }
392
+ function getFilesInDirectory(directory, pattern) {
393
+ const files = [];
394
+ // Read all files in directory
395
+ const entries = fs.readdirSync(directory, { withFileTypes: true });
396
+ for (const entry of entries) {
397
+ if (entry.isFile()) {
398
+ const fullPath = path.join(directory, entry.name);
399
+ // If pattern provided, match it
400
+ if (pattern) {
401
+ const regex = new RegExp(pattern.replace(/\*/g, '.*'));
402
+ if (regex.test(entry.name)) {
403
+ files.push(fullPath);
404
+ }
405
+ }
406
+ else {
407
+ // No pattern, include all image/video files
408
+ const ext = path.extname(entry.name).toLowerCase();
409
+ if (['.jpg', '.jpeg', '.png', '.gif', '.webp', '.svg', '.mp4', '.mov', '.avi', '.webm'].includes(ext)) {
410
+ files.push(fullPath);
411
+ }
412
+ }
413
+ }
414
+ }
415
+ return files;
416
+ }
417
+ //# sourceMappingURL=service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service.js","sourceRoot":"","sources":["../../../src/commands/asset/service.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,166 @@
1
+ /**
2
+ * Asset Management Types
3
+ */
4
+ export interface CommandResult<T = any> {
5
+ success: boolean;
6
+ data?: T;
7
+ error?: string;
8
+ }
9
+ export interface UploadAssetInput {
10
+ file?: string;
11
+ url?: string;
12
+ alt?: string;
13
+ contentType?: 'IMAGE' | 'VIDEO' | 'GENERIC_FILE';
14
+ }
15
+ export interface ListAssetsInput {
16
+ type?: 'IMAGE' | 'VIDEO';
17
+ limit?: number;
18
+ cursor?: string;
19
+ }
20
+ export interface GetAssetInput {
21
+ id: string;
22
+ }
23
+ export interface DeleteAssetInput {
24
+ id: string;
25
+ }
26
+ export interface ImportAssetsInput {
27
+ directory: string;
28
+ pattern?: string;
29
+ }
30
+ export interface FormattedAsset {
31
+ id: string;
32
+ url: string;
33
+ alt: string | null;
34
+ mediaContentType: 'IMAGE' | 'VIDEO' | 'GENERIC_FILE';
35
+ width: number | null;
36
+ height: number | null;
37
+ fileSize: number | null;
38
+ mimeType: string | null;
39
+ createdAt: string;
40
+ }
41
+ export interface StagedUploadResponse {
42
+ stagedUploadsCreate: {
43
+ stagedTargets: Array<{
44
+ url: string;
45
+ resourceUrl: string;
46
+ parameters: Array<{
47
+ name: string;
48
+ value: string;
49
+ }>;
50
+ }>;
51
+ userErrors: Array<{
52
+ field: string[];
53
+ message: string;
54
+ }>;
55
+ };
56
+ }
57
+ export interface AssetUploadResponse {
58
+ fileCreate: {
59
+ files: Array<{
60
+ id: string;
61
+ alt: string;
62
+ fileStatus: string;
63
+ createdAt: string;
64
+ preview?: {
65
+ image?: {
66
+ url: string;
67
+ width: number;
68
+ height: number;
69
+ };
70
+ };
71
+ }>;
72
+ userErrors: Array<{
73
+ field: string[];
74
+ message: string;
75
+ }>;
76
+ };
77
+ }
78
+ export interface AssetListResponse {
79
+ files: {
80
+ edges: Array<{
81
+ node: {
82
+ id: string;
83
+ alt: string;
84
+ fileStatus: string;
85
+ createdAt: string;
86
+ image?: {
87
+ url: string;
88
+ width: number;
89
+ height: number;
90
+ };
91
+ mimeType?: string;
92
+ fileSize?: number;
93
+ sources?: Array<{
94
+ url: string;
95
+ mimeType: string;
96
+ width: number;
97
+ height: number;
98
+ fileSize: number;
99
+ }>;
100
+ };
101
+ }>;
102
+ pageInfo: {
103
+ hasNextPage: boolean;
104
+ endCursor: string;
105
+ };
106
+ };
107
+ }
108
+ export interface AssetGetResponse {
109
+ node: {
110
+ id: string;
111
+ alt: string;
112
+ createdAt: string;
113
+ image?: {
114
+ url: string;
115
+ width: number;
116
+ height: number;
117
+ };
118
+ mimeType?: string;
119
+ fileSize?: number;
120
+ sources?: Array<{
121
+ url: string;
122
+ mimeType: string;
123
+ width: number;
124
+ height: number;
125
+ fileSize: number;
126
+ }>;
127
+ };
128
+ }
129
+ export interface AssetDeleteResponse {
130
+ fileDelete: {
131
+ deletedFileIds: string[];
132
+ userErrors: Array<{
133
+ field: string[];
134
+ message: string;
135
+ }>;
136
+ };
137
+ }
138
+ export interface SearchStockInput {
139
+ query: string;
140
+ limit?: number;
141
+ orientation?: 'landscape' | 'portrait' | 'square';
142
+ size?: 'large' | 'medium' | 'small';
143
+ color?: string;
144
+ }
145
+ export interface StockImage {
146
+ id: number;
147
+ url: string;
148
+ photographer: string;
149
+ photographerUrl: string;
150
+ width: number;
151
+ height: number;
152
+ alt: string;
153
+ avgColor: string;
154
+ }
155
+ export interface SearchIconsInput {
156
+ query: string;
157
+ limit?: number;
158
+ style?: 'outline' | 'filled';
159
+ }
160
+ export interface Icon {
161
+ name: string;
162
+ url: string;
163
+ tags: string[];
164
+ category?: string;
165
+ }
166
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/commands/asset/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Asset Management Types
3
+ */
4
+ export {};
5
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/commands/asset/types.ts"],"names":[],"mappings":"AAAA;;GAEG"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Upload Asset Command
3
+ */
4
+ export declare function run(argv?: string[]): Promise<void>;
5
+ //# sourceMappingURL=upload.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"upload.d.ts","sourceRoot":"","sources":["../../../src/commands/asset/upload.ts"],"names":[],"mappings":"AAAA;;GAEG;AAkCH,wBAAsB,GAAG,CAAC,IAAI,GAAE,MAAM,EAA0B,iBA8C/D"}