ecomcoder-cli 1.3.13 → 1.3.15

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 (65) hide show
  1. package/dist/cli.js +4 -0
  2. package/dist/cli.js.map +1 -1
  3. package/dist/commands/collection/get-product-collections.d.ts +7 -0
  4. package/dist/commands/collection/get-product-collections.d.ts.map +1 -0
  5. package/dist/commands/collection/get-product-collections.js +99 -0
  6. package/dist/commands/collection/get-product-collections.js.map +1 -0
  7. package/dist/commands/collection/get.d.ts +7 -0
  8. package/dist/commands/collection/get.d.ts.map +1 -0
  9. package/dist/commands/collection/get.js +80 -0
  10. package/dist/commands/collection/get.js.map +1 -0
  11. package/dist/commands/collection/index.d.ts +10 -0
  12. package/dist/commands/collection/index.d.ts.map +1 -0
  13. package/dist/commands/collection/index.js +54 -0
  14. package/dist/commands/collection/index.js.map +1 -0
  15. package/dist/commands/collection/list-products.d.ts +7 -0
  16. package/dist/commands/collection/list-products.d.ts.map +1 -0
  17. package/dist/commands/collection/list-products.js +105 -0
  18. package/dist/commands/collection/list-products.js.map +1 -0
  19. package/dist/commands/collection/list.d.ts +7 -0
  20. package/dist/commands/collection/list.d.ts.map +1 -0
  21. package/dist/commands/collection/list.js +105 -0
  22. package/dist/commands/collection/list.js.map +1 -0
  23. package/dist/commands/collection/queries.d.ts +32 -0
  24. package/dist/commands/collection/queries.d.ts.map +1 -0
  25. package/dist/commands/collection/queries.js +158 -0
  26. package/dist/commands/collection/queries.js.map +1 -0
  27. package/dist/commands/collection/service.d.ts +53 -0
  28. package/dist/commands/collection/service.d.ts.map +1 -0
  29. package/dist/commands/collection/service.js +232 -0
  30. package/dist/commands/collection/service.js.map +1 -0
  31. package/dist/commands/collection/types.d.ts +156 -0
  32. package/dist/commands/collection/types.d.ts.map +1 -0
  33. package/dist/commands/collection/types.js +6 -0
  34. package/dist/commands/collection/types.js.map +1 -0
  35. package/dist/commands/collection/utils.d.ts +33 -0
  36. package/dist/commands/collection/utils.d.ts.map +1 -0
  37. package/dist/commands/collection/utils.js +84 -0
  38. package/dist/commands/collection/utils.js.map +1 -0
  39. package/dist/commands/image/generate.d.ts +6 -0
  40. package/dist/commands/image/generate.d.ts.map +1 -0
  41. package/dist/commands/image/generate.js +135 -0
  42. package/dist/commands/image/generate.js.map +1 -0
  43. package/dist/commands/image/index.d.ts +5 -0
  44. package/dist/commands/image/index.d.ts.map +1 -0
  45. package/dist/commands/image/index.js +25 -0
  46. package/dist/commands/image/index.js.map +1 -0
  47. package/dist/commands/image/openai.d.ts +19 -0
  48. package/dist/commands/image/openai.d.ts.map +1 -0
  49. package/dist/commands/image/openai.js +35 -0
  50. package/dist/commands/image/openai.js.map +1 -0
  51. package/dist/commands/image/service.d.ts +31 -0
  52. package/dist/commands/image/service.d.ts.map +1 -0
  53. package/dist/commands/image/service.js +72 -0
  54. package/dist/commands/image/service.js.map +1 -0
  55. package/dist/lib/approval.d.ts +19 -4
  56. package/dist/lib/approval.d.ts.map +1 -1
  57. package/dist/lib/approval.js +26 -5
  58. package/dist/lib/approval.js.map +1 -1
  59. package/dist/lib/config.d.ts +52 -0
  60. package/dist/lib/config.d.ts.map +1 -0
  61. package/dist/lib/config.js +83 -0
  62. package/dist/lib/config.js.map +1 -0
  63. package/dist/lib/types.d.ts +5 -0
  64. package/dist/lib/types.d.ts.map +1 -1
  65. package/package.json +4 -2
@@ -0,0 +1,83 @@
1
+ /**
2
+ * Configuration Management
3
+ *
4
+ * Centralized configuration for CLI behavior
5
+ * Supports multiple configuration sources with priority order:
6
+ * 1. Environment variables (highest priority)
7
+ * 2. .ecomcoder.json in current directory
8
+ * 3. .ecomcoder.json in home directory
9
+ * 4. Default values (lowest priority)
10
+ */
11
+ import { existsSync, readFileSync } from 'fs';
12
+ import { join } from 'path';
13
+ import { homedir } from 'os';
14
+ let cachedConfig = null;
15
+ /**
16
+ * Get current CLI configuration
17
+ *
18
+ * Priority order:
19
+ * 1. REQUIRE_APPROVAL environment variable
20
+ * 2. .ecomcoder.json in current working directory
21
+ * 3. .ecomcoder.json in home directory
22
+ * 4. Default values (requireApproval: false)
23
+ *
24
+ * @returns Current configuration
25
+ *
26
+ * @example
27
+ * // Environment variable (highest priority)
28
+ * REQUIRE_APPROVAL=false ecomcoder product update-price --id=123 --price=29.99
29
+ *
30
+ * @example
31
+ * // Project-specific config
32
+ * echo '{"requireApproval": false}' > .ecomcoder.json
33
+ * ecomcoder product update-price --id=123 --price=29.99
34
+ *
35
+ * @example
36
+ * // Global user config
37
+ * echo '{"requireApproval": false}' > ~/.ecomcoder.json
38
+ * ecomcoder product update-price --id=123 --price=29.99
39
+ */
40
+ export function getConfig() {
41
+ // Return cached config if available
42
+ if (cachedConfig) {
43
+ return cachedConfig;
44
+ }
45
+ // Default configuration
46
+ let requireApproval = false;
47
+ // Priority 1: Check environment variable
48
+ if (process.env.REQUIRE_APPROVAL !== undefined) {
49
+ requireApproval = process.env.REQUIRE_APPROVAL !== 'false';
50
+ }
51
+ else {
52
+ // Priority 2 & 3: Check for config files
53
+ const configPaths = [
54
+ join(process.cwd(), '.ecomcoder.json'), // Current directory
55
+ join(homedir(), '.ecomcoder.json') // Home directory
56
+ ];
57
+ for (const configPath of configPaths) {
58
+ if (existsSync(configPath)) {
59
+ try {
60
+ const configData = JSON.parse(readFileSync(configPath, 'utf-8'));
61
+ if (configData.requireApproval !== undefined) {
62
+ requireApproval = configData.requireApproval;
63
+ break; // Use first found config file
64
+ }
65
+ }
66
+ catch (error) {
67
+ // Invalid JSON or read error, skip to next config file
68
+ continue;
69
+ }
70
+ }
71
+ }
72
+ }
73
+ // Cache and return configuration
74
+ cachedConfig = { requireApproval };
75
+ return cachedConfig;
76
+ }
77
+ /**
78
+ * Clear cached configuration (useful for testing)
79
+ */
80
+ export function clearConfigCache() {
81
+ cachedConfig = null;
82
+ }
83
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/lib/config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAC9C,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,OAAO,EAAE,MAAM,IAAI,CAAC;AAqB7B,IAAI,YAAY,GAAkB,IAAI,CAAC;AAEvC;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,UAAU,SAAS;IACvB,oCAAoC;IACpC,IAAI,YAAY,EAAE,CAAC;QACjB,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,wBAAwB;IACxB,IAAI,eAAe,GAAG,KAAK,CAAC;IAE5B,yCAAyC;IACzC,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB,KAAK,SAAS,EAAE,CAAC;QAC/C,eAAe,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,KAAK,OAAO,CAAC;IAC7D,CAAC;SAAM,CAAC;QACN,yCAAyC;QACzC,MAAM,WAAW,GAAG;YAClB,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,iBAAiB,CAAC,EAAY,oBAAoB;YACtE,IAAI,CAAC,OAAO,EAAE,EAAE,iBAAiB,CAAC,CAAgB,iBAAiB;SACpE,CAAC;QAEF,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;YACrC,IAAI,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC3B,IAAI,CAAC;oBACH,MAAM,UAAU,GAAe,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;oBAC7E,IAAI,UAAU,CAAC,eAAe,KAAK,SAAS,EAAE,CAAC;wBAC7C,eAAe,GAAG,UAAU,CAAC,eAAe,CAAC;wBAC7C,MAAM,CAAC,8BAA8B;oBACvC,CAAC;gBACH,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,uDAAuD;oBACvD,SAAS;gBACX,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,iCAAiC;IACjC,YAAY,GAAG,EAAE,eAAe,EAAE,CAAC;IACnC,OAAO,YAAY,CAAC;AACtB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB;IAC9B,YAAY,GAAG,IAAI,CAAC;AACtB,CAAC"}
@@ -10,6 +10,11 @@ export interface BackendAPIResponse<T = any> {
10
10
  data?: T;
11
11
  error?: string;
12
12
  }
13
+ export interface CommandResult<T = any> {
14
+ success: boolean;
15
+ data?: T;
16
+ error?: string;
17
+ }
13
18
  export interface ProductCreateInput {
14
19
  product: {
15
20
  title: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/lib/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,oBAAoB,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,kBAAkB,CAAC,CAAC,GAAG,GAAG;IACzC,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,CAAC,CAAC;IACT,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE;QACP,KAAK,EAAE,MAAM,CAAC;QACd,eAAe,EAAE,MAAM,CAAC;QACxB,MAAM,EAAE,MAAM,CAAC;QACf,WAAW,EAAE,MAAM,CAAC;QACpB,IAAI,EAAE,MAAM,EAAE,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,KAAK,EAAE,KAAK,CAAC;QACX,cAAc,EAAE,MAAM,CAAC;QACvB,gBAAgB,EAAE,MAAM,CAAC;QACzB,GAAG,EAAE,MAAM,CAAC;KACb,CAAC,CAAC;IACH,OAAO,EAAE;QACP,KAAK,EAAE,MAAM,CAAC;QACd,cAAc,EAAE,MAAM,CAAC;KACxB,CAAC;CACH;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE;QACT,KAAK,EAAE,KAAK,CAAC;YACX,IAAI,EAAE;gBACJ,EAAE,EAAE,MAAM,CAAC;gBACX,KAAK,EAAE,MAAM,CAAC;aACf,CAAC;SACH,CAAC,CAAC;KACJ,CAAC;CACH;AAED,MAAM,WAAW,sBAAsB,CAAC,CAAC,GAAG,GAAG;IAC7C,IAAI,CAAC,EAAE,CAAC,CAAC;IACT,MAAM,CAAC,EAAE,KAAK,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,UAAU,CAAC,EAAE,GAAG,CAAC;KAClB,CAAC,CAAC;CACJ;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/lib/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,kBAAkB;IACjC,UAAU,EAAE,MAAM,CAAC;IACnB,oBAAoB,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,kBAAkB,CAAC,CAAC,GAAG,GAAG;IACzC,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,CAAC,CAAC;IACT,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,aAAa,CAAC,CAAC,GAAG,GAAG;IACpC,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,CAAC,CAAC;IACT,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE;QACP,KAAK,EAAE,MAAM,CAAC;QACd,eAAe,EAAE,MAAM,CAAC;QACxB,MAAM,EAAE,MAAM,CAAC;QACf,WAAW,EAAE,MAAM,CAAC;QACpB,IAAI,EAAE,MAAM,EAAE,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,KAAK,EAAE,KAAK,CAAC;QACX,cAAc,EAAE,MAAM,CAAC;QACvB,gBAAgB,EAAE,MAAM,CAAC;QACzB,GAAG,EAAE,MAAM,CAAC;KACb,CAAC,CAAC;IACH,OAAO,EAAE;QACP,KAAK,EAAE,MAAM,CAAC;QACd,cAAc,EAAE,MAAM,CAAC;KACxB,CAAC;CACH;AAED,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE;QACT,KAAK,EAAE,KAAK,CAAC;YACX,IAAI,EAAE;gBACJ,EAAE,EAAE,MAAM,CAAC;gBACX,KAAK,EAAE,MAAM,CAAC;aACf,CAAC;SACH,CAAC,CAAC;KACJ,CAAC;CACH;AAED,MAAM,WAAW,sBAAsB,CAAC,CAAC,GAAG,GAAG;IAC7C,IAAI,CAAC,EAAE,CAAC,CAAC;IACT,MAAM,CAAC,EAAE,KAAK,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,UAAU,CAAC,EAAE,GAAG,CAAC;KAClB,CAAC,CAAC;CACJ;AAED,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ecomcoder-cli",
3
- "version": "1.3.13",
3
+ "version": "1.3.15",
4
4
  "type": "module",
5
5
  "description": "CLI tools for EcomCoder - Shopify development utilities",
6
6
  "main": "./dist/index.js",
@@ -51,9 +51,11 @@
51
51
  "dependencies": {
52
52
  "@pinecone-database/pinecone": "^6.1.3",
53
53
  "@supabase/supabase-js": "^2.87.0",
54
- "form-data": "^4.0.0"
54
+ "form-data": "^4.0.0",
55
+ "openai": "^6.17.0"
55
56
  },
56
57
  "devDependencies": {
58
+ "@types/form-data": "^2.2.1",
57
59
  "@types/node": "^20.10.0",
58
60
  "@vitest/coverage-v8": "^2.1.9",
59
61
  "tsx": "^4.21.0",