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.
- package/dist/cli.js +4 -0
- package/dist/cli.js.map +1 -1
- package/dist/commands/collection/get-product-collections.d.ts +7 -0
- package/dist/commands/collection/get-product-collections.d.ts.map +1 -0
- package/dist/commands/collection/get-product-collections.js +99 -0
- package/dist/commands/collection/get-product-collections.js.map +1 -0
- package/dist/commands/collection/get.d.ts +7 -0
- package/dist/commands/collection/get.d.ts.map +1 -0
- package/dist/commands/collection/get.js +80 -0
- package/dist/commands/collection/get.js.map +1 -0
- package/dist/commands/collection/index.d.ts +10 -0
- package/dist/commands/collection/index.d.ts.map +1 -0
- package/dist/commands/collection/index.js +54 -0
- package/dist/commands/collection/index.js.map +1 -0
- package/dist/commands/collection/list-products.d.ts +7 -0
- package/dist/commands/collection/list-products.d.ts.map +1 -0
- package/dist/commands/collection/list-products.js +105 -0
- package/dist/commands/collection/list-products.js.map +1 -0
- package/dist/commands/collection/list.d.ts +7 -0
- package/dist/commands/collection/list.d.ts.map +1 -0
- package/dist/commands/collection/list.js +105 -0
- package/dist/commands/collection/list.js.map +1 -0
- package/dist/commands/collection/queries.d.ts +32 -0
- package/dist/commands/collection/queries.d.ts.map +1 -0
- package/dist/commands/collection/queries.js +158 -0
- package/dist/commands/collection/queries.js.map +1 -0
- package/dist/commands/collection/service.d.ts +53 -0
- package/dist/commands/collection/service.d.ts.map +1 -0
- package/dist/commands/collection/service.js +232 -0
- package/dist/commands/collection/service.js.map +1 -0
- package/dist/commands/collection/types.d.ts +156 -0
- package/dist/commands/collection/types.d.ts.map +1 -0
- package/dist/commands/collection/types.js +6 -0
- package/dist/commands/collection/types.js.map +1 -0
- package/dist/commands/collection/utils.d.ts +33 -0
- package/dist/commands/collection/utils.d.ts.map +1 -0
- package/dist/commands/collection/utils.js +84 -0
- package/dist/commands/collection/utils.js.map +1 -0
- package/dist/commands/image/generate.d.ts +6 -0
- package/dist/commands/image/generate.d.ts.map +1 -0
- package/dist/commands/image/generate.js +135 -0
- package/dist/commands/image/generate.js.map +1 -0
- package/dist/commands/image/index.d.ts +5 -0
- package/dist/commands/image/index.d.ts.map +1 -0
- package/dist/commands/image/index.js +25 -0
- package/dist/commands/image/index.js.map +1 -0
- package/dist/commands/image/openai.d.ts +19 -0
- package/dist/commands/image/openai.d.ts.map +1 -0
- package/dist/commands/image/openai.js +35 -0
- package/dist/commands/image/openai.js.map +1 -0
- package/dist/commands/image/service.d.ts +31 -0
- package/dist/commands/image/service.d.ts.map +1 -0
- package/dist/commands/image/service.js +72 -0
- package/dist/commands/image/service.js.map +1 -0
- package/dist/lib/approval.d.ts +19 -4
- package/dist/lib/approval.d.ts.map +1 -1
- package/dist/lib/approval.js +26 -5
- package/dist/lib/approval.js.map +1 -1
- package/dist/lib/config.d.ts +52 -0
- package/dist/lib/config.d.ts.map +1 -0
- package/dist/lib/config.js +83 -0
- package/dist/lib/config.js.map +1 -0
- package/dist/lib/types.d.ts +5 -0
- package/dist/lib/types.d.ts.map +1 -1
- 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"}
|
package/dist/lib/types.d.ts
CHANGED
|
@@ -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;
|
package/dist/lib/types.d.ts.map
CHANGED
|
@@ -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.
|
|
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",
|