@creem_io/cli 0.2.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/README.md +155 -0
- package/dist/commands/checkouts.d.ts +3 -0
- package/dist/commands/checkouts.d.ts.map +1 -0
- package/dist/commands/checkouts.js +175 -0
- package/dist/commands/checkouts.js.map +1 -0
- package/dist/commands/config.d.ts +3 -0
- package/dist/commands/config.d.ts.map +1 -0
- package/dist/commands/config.js +184 -0
- package/dist/commands/config.js.map +1 -0
- package/dist/commands/customers.d.ts +3 -0
- package/dist/commands/customers.d.ts.map +1 -0
- package/dist/commands/customers.js +246 -0
- package/dist/commands/customers.js.map +1 -0
- package/dist/commands/discounts.d.ts +3 -0
- package/dist/commands/discounts.d.ts.map +1 -0
- package/dist/commands/discounts.js +419 -0
- package/dist/commands/discounts.js.map +1 -0
- package/dist/commands/index.d.ts +12 -0
- package/dist/commands/index.d.ts.map +1 -0
- package/dist/commands/index.js +26 -0
- package/dist/commands/index.js.map +1 -0
- package/dist/commands/login.d.ts +3 -0
- package/dist/commands/login.d.ts.map +1 -0
- package/dist/commands/login.js +115 -0
- package/dist/commands/login.js.map +1 -0
- package/dist/commands/logout.d.ts +3 -0
- package/dist/commands/logout.d.ts.map +1 -0
- package/dist/commands/logout.js +61 -0
- package/dist/commands/logout.js.map +1 -0
- package/dist/commands/migrate.d.ts +3 -0
- package/dist/commands/migrate.d.ts.map +1 -0
- package/dist/commands/migrate.js +1073 -0
- package/dist/commands/migrate.js.map +1 -0
- package/dist/commands/products.d.ts +3 -0
- package/dist/commands/products.d.ts.map +1 -0
- package/dist/commands/products.js +400 -0
- package/dist/commands/products.js.map +1 -0
- package/dist/commands/subscriptions.d.ts +3 -0
- package/dist/commands/subscriptions.d.ts.map +1 -0
- package/dist/commands/subscriptions.js +476 -0
- package/dist/commands/subscriptions.js.map +1 -0
- package/dist/commands/transactions.d.ts +3 -0
- package/dist/commands/transactions.d.ts.map +1 -0
- package/dist/commands/transactions.js +326 -0
- package/dist/commands/transactions.js.map +1 -0
- package/dist/commands/whoami.d.ts +3 -0
- package/dist/commands/whoami.d.ts.map +1 -0
- package/dist/commands/whoami.js +76 -0
- package/dist/commands/whoami.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +109 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/api.d.ts +25 -0
- package/dist/lib/api.d.ts.map +1 -0
- package/dist/lib/api.js +77 -0
- package/dist/lib/api.js.map +1 -0
- package/dist/lib/auth.d.ts +28 -0
- package/dist/lib/auth.d.ts.map +1 -0
- package/dist/lib/auth.js +113 -0
- package/dist/lib/auth.js.map +1 -0
- package/dist/lib/config.d.ts +34 -0
- package/dist/lib/config.d.ts.map +1 -0
- package/dist/lib/config.js +144 -0
- package/dist/lib/config.js.map +1 -0
- package/dist/lib/env-cache.d.ts +10 -0
- package/dist/lib/env-cache.d.ts.map +1 -0
- package/dist/lib/env-cache.js +27 -0
- package/dist/lib/env-cache.js.map +1 -0
- package/dist/tui/command-bar.d.ts +10 -0
- package/dist/tui/command-bar.d.ts.map +1 -0
- package/dist/tui/command-bar.js +35 -0
- package/dist/tui/command-bar.js.map +1 -0
- package/dist/tui/engine.d.ts +3 -0
- package/dist/tui/engine.d.ts.map +1 -0
- package/dist/tui/engine.js +454 -0
- package/dist/tui/engine.js.map +1 -0
- package/dist/tui/index.d.ts +3 -0
- package/dist/tui/index.d.ts.map +1 -0
- package/dist/tui/index.js +6 -0
- package/dist/tui/index.js.map +1 -0
- package/dist/tui/keymap.d.ts +29 -0
- package/dist/tui/keymap.d.ts.map +1 -0
- package/dist/tui/keymap.js +143 -0
- package/dist/tui/keymap.js.map +1 -0
- package/dist/tui/renderer.d.ts +12 -0
- package/dist/tui/renderer.d.ts.map +1 -0
- package/dist/tui/renderer.js +379 -0
- package/dist/tui/renderer.js.map +1 -0
- package/dist/tui/types.d.ts +53 -0
- package/dist/tui/types.d.ts.map +1 -0
- package/dist/tui/types.js +24 -0
- package/dist/tui/types.js.map +1 -0
- package/dist/utils/output.d.ts +67 -0
- package/dist/utils/output.d.ts.map +1 -0
- package/dist/utils/output.js +245 -0
- package/dist/utils/output.js.map +1 -0
- package/package.json +56 -0
package/README.md
ADDED
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
# Creem CLI
|
|
2
|
+
|
|
3
|
+
The official command-line tool for [Creem](https://creem.io) — the Merchant of Record for SaaS and digital businesses.
|
|
4
|
+
|
|
5
|
+
Manage products, customers, subscriptions, checkouts, transactions, and discounts from your terminal.
|
|
6
|
+
|
|
7
|
+
## Installation
|
|
8
|
+
|
|
9
|
+
### Homebrew (macOS/Linux)
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
brew tap armitage-labs/creem
|
|
13
|
+
brew install creem
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
### npm (Global)
|
|
17
|
+
|
|
18
|
+
```bash
|
|
19
|
+
npm install -g @creem_io/cli
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
### npx (No Install)
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
npx @creem_io/cli <command>
|
|
26
|
+
```
|
|
27
|
+
|
|
28
|
+
## Quick Start
|
|
29
|
+
|
|
30
|
+
```bash
|
|
31
|
+
# Authenticate with your API key
|
|
32
|
+
creem login
|
|
33
|
+
|
|
34
|
+
# Check your auth status
|
|
35
|
+
creem whoami
|
|
36
|
+
|
|
37
|
+
# Switch to live mode
|
|
38
|
+
creem config set environment live
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
Get your API key from the [Creem Dashboard](https://creem.io/dashboard/developers).
|
|
42
|
+
|
|
43
|
+
- Test keys start with `creem_test_`
|
|
44
|
+
- Live keys start with `creem_`
|
|
45
|
+
|
|
46
|
+
## Commands
|
|
47
|
+
|
|
48
|
+
### Authentication
|
|
49
|
+
|
|
50
|
+
```bash
|
|
51
|
+
# Login with API key (interactive)
|
|
52
|
+
creem login
|
|
53
|
+
|
|
54
|
+
# Login with API key (non-interactive)
|
|
55
|
+
creem login --api-key creem_xxxxx
|
|
56
|
+
|
|
57
|
+
# Check current authentication
|
|
58
|
+
creem whoami
|
|
59
|
+
|
|
60
|
+
# Logout
|
|
61
|
+
creem logout
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
### Configuration
|
|
65
|
+
|
|
66
|
+
```bash
|
|
67
|
+
# Show all config
|
|
68
|
+
creem config show
|
|
69
|
+
|
|
70
|
+
# Get a specific value
|
|
71
|
+
creem config get environment
|
|
72
|
+
|
|
73
|
+
# Set a value
|
|
74
|
+
creem config set environment live
|
|
75
|
+
creem config set output_format json
|
|
76
|
+
|
|
77
|
+
# List available config keys
|
|
78
|
+
creem config list
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
### Resources
|
|
82
|
+
|
|
83
|
+
- `creem products` — list, create, get, update products
|
|
84
|
+
- `creem customers` — list, get, create customers and open billing portals
|
|
85
|
+
- `creem subscriptions` — list, get, cancel, pause, resume, upgrade, update
|
|
86
|
+
- `creem checkouts` — create and get checkout sessions
|
|
87
|
+
- `creem transactions` — list and inspect transactions
|
|
88
|
+
- `creem discounts` — create and list discount codes
|
|
89
|
+
- `creem migrate` — migrate from LemonSqueezy to Creem
|
|
90
|
+
|
|
91
|
+
Run `creem <command> --help` for details on any command.
|
|
92
|
+
|
|
93
|
+
### Global Options
|
|
94
|
+
|
|
95
|
+
- `--json` — Output in JSON format (works with most commands)
|
|
96
|
+
- `--help` — Show help for any command
|
|
97
|
+
- `--version` — Show CLI version
|
|
98
|
+
|
|
99
|
+
## Configuration
|
|
100
|
+
|
|
101
|
+
Config is stored at `~/.creem/config.json`:
|
|
102
|
+
|
|
103
|
+
```json
|
|
104
|
+
{
|
|
105
|
+
"api_key": "creem_xxxxx",
|
|
106
|
+
"environment": "test",
|
|
107
|
+
"output_format": "table"
|
|
108
|
+
}
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
### Environment
|
|
112
|
+
|
|
113
|
+
- `test` — Uses `https://test-api.creem.io` (default)
|
|
114
|
+
- `live` — Uses `https://api.creem.io`
|
|
115
|
+
|
|
116
|
+
## Development
|
|
117
|
+
|
|
118
|
+
This package lives inside the [armitage-labs/creem](https://github.com/armitage-labs/creem) monorepo and uses `pnpm` + `turbo`.
|
|
119
|
+
|
|
120
|
+
```bash
|
|
121
|
+
# From the repo root
|
|
122
|
+
pnpm install
|
|
123
|
+
pnpm --filter @creem_io/cli build
|
|
124
|
+
|
|
125
|
+
# Or from this directory
|
|
126
|
+
cd packages/cli
|
|
127
|
+
pnpm build # build once
|
|
128
|
+
pnpm dev # watch mode
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
Run the locally built binary:
|
|
132
|
+
|
|
133
|
+
```bash
|
|
134
|
+
node packages/cli/dist/index.js <command>
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
### Optional: direnv
|
|
138
|
+
|
|
139
|
+
A `.envrc` is included that adds `packages/cli/bin` to your `PATH`, so after building you can just run `creem`:
|
|
140
|
+
|
|
141
|
+
```bash
|
|
142
|
+
brew install direnv # if not already installed
|
|
143
|
+
cd packages/cli
|
|
144
|
+
direnv allow
|
|
145
|
+
creem whoami
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
## Contributing
|
|
149
|
+
|
|
150
|
+
Contributions are welcome! Please open an issue or pull request at
|
|
151
|
+
[github.com/armitage-labs/creem](https://github.com/armitage-labs/creem).
|
|
152
|
+
|
|
153
|
+
## License
|
|
154
|
+
|
|
155
|
+
MIT
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"checkouts.d.ts","sourceRoot":"","sources":["../../src/commands/checkouts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAsCpC,wBAAgB,sBAAsB,IAAI,OAAO,CAmJhD"}
|
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.createCheckoutsCommand = createCheckoutsCommand;
|
|
40
|
+
const commander_1 = require("commander");
|
|
41
|
+
const ora_1 = __importDefault(require("ora"));
|
|
42
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
43
|
+
const api_1 = require("../lib/api");
|
|
44
|
+
const config_1 = require("../lib/config");
|
|
45
|
+
const output = __importStar(require("../utils/output"));
|
|
46
|
+
/**
|
|
47
|
+
* Formats checkout status with color
|
|
48
|
+
*/
|
|
49
|
+
function formatStatus(status) {
|
|
50
|
+
switch (status?.toLowerCase()) {
|
|
51
|
+
case "completed":
|
|
52
|
+
return chalk_1.default.green(status);
|
|
53
|
+
case "expired":
|
|
54
|
+
return chalk_1.default.red(status);
|
|
55
|
+
case "pending":
|
|
56
|
+
case "open":
|
|
57
|
+
return chalk_1.default.yellow(status);
|
|
58
|
+
default:
|
|
59
|
+
return status || "-";
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
function createCheckoutsCommand() {
|
|
63
|
+
const command = new commander_1.Command("checkouts").description("Manage checkout sessions");
|
|
64
|
+
// Create checkout
|
|
65
|
+
command
|
|
66
|
+
.command("create")
|
|
67
|
+
.description("Create a new checkout session")
|
|
68
|
+
.requiredOption("--product <id>", "Product ID")
|
|
69
|
+
.option("--customer <id>", "Customer ID (optional)")
|
|
70
|
+
.option("--success-url <url>", "Success redirect URL")
|
|
71
|
+
.option("--discount <code>", "Discount code")
|
|
72
|
+
.option("--request-id <id>", "Idempotency request ID")
|
|
73
|
+
.option("--json", "Output as JSON")
|
|
74
|
+
.action(async (options) => {
|
|
75
|
+
const spinner = (0, ora_1.default)("Creating checkout session...").start();
|
|
76
|
+
try {
|
|
77
|
+
const client = (0, api_1.getClient)();
|
|
78
|
+
// Build request params
|
|
79
|
+
const params = {
|
|
80
|
+
productId: options.product,
|
|
81
|
+
};
|
|
82
|
+
if (options.customer) {
|
|
83
|
+
params.customer = { id: options.customer };
|
|
84
|
+
}
|
|
85
|
+
if (options.successUrl) {
|
|
86
|
+
params.successUrl = options.successUrl;
|
|
87
|
+
}
|
|
88
|
+
if (options.discount) {
|
|
89
|
+
params.discountCode = options.discount;
|
|
90
|
+
}
|
|
91
|
+
if (options.requestId) {
|
|
92
|
+
params.requestId = options.requestId;
|
|
93
|
+
}
|
|
94
|
+
const checkout = (await client.checkouts.create(params));
|
|
95
|
+
spinner.stop();
|
|
96
|
+
if ((0, config_1.shouldOutputJson)(options.json)) {
|
|
97
|
+
output.outputJson(checkout);
|
|
98
|
+
return;
|
|
99
|
+
}
|
|
100
|
+
output.newline();
|
|
101
|
+
output.success("Checkout session created!");
|
|
102
|
+
output.newline();
|
|
103
|
+
output.outputKeyValue({
|
|
104
|
+
ID: checkout.id,
|
|
105
|
+
Status: formatStatus(checkout.status),
|
|
106
|
+
"Product ID": checkout.product || "-",
|
|
107
|
+
"Customer ID": checkout.customer || "-",
|
|
108
|
+
Mode: checkout.mode,
|
|
109
|
+
Created: checkout.createdAt ? output.formatDate(checkout.createdAt) : "N/A",
|
|
110
|
+
});
|
|
111
|
+
output.newline();
|
|
112
|
+
output.info("Checkout URL:");
|
|
113
|
+
console.log(chalk_1.default.cyan.bold(checkout.checkoutUrl));
|
|
114
|
+
output.newline();
|
|
115
|
+
output.dim("Share this URL with your customer to complete payment.");
|
|
116
|
+
output.newline();
|
|
117
|
+
}
|
|
118
|
+
catch (error) {
|
|
119
|
+
spinner.stop();
|
|
120
|
+
output.error(error instanceof Error ? error.message : "Failed to create checkout");
|
|
121
|
+
process.exit(1);
|
|
122
|
+
}
|
|
123
|
+
});
|
|
124
|
+
// Get checkout by ID
|
|
125
|
+
command
|
|
126
|
+
.command("get <checkout-id>")
|
|
127
|
+
.description("Get checkout session details")
|
|
128
|
+
.option("--json", "Output as JSON")
|
|
129
|
+
.action(async (checkoutId, options) => {
|
|
130
|
+
const spinner = (0, ora_1.default)("Fetching checkout...").start();
|
|
131
|
+
try {
|
|
132
|
+
const client = (0, api_1.getClient)();
|
|
133
|
+
const checkout = (await client.checkouts.retrieve(checkoutId));
|
|
134
|
+
spinner.stop();
|
|
135
|
+
if ((0, config_1.shouldOutputJson)(options.json)) {
|
|
136
|
+
output.outputJson(checkout);
|
|
137
|
+
return;
|
|
138
|
+
}
|
|
139
|
+
output.newline();
|
|
140
|
+
output.header("Checkout Session");
|
|
141
|
+
output.newline();
|
|
142
|
+
output.outputKeyValue({
|
|
143
|
+
ID: checkout.id,
|
|
144
|
+
Status: formatStatus(checkout.status),
|
|
145
|
+
"Product ID": checkout.product || "-",
|
|
146
|
+
"Customer ID": checkout.customer || "-",
|
|
147
|
+
Mode: checkout.mode,
|
|
148
|
+
Created: checkout.createdAt ? output.formatDate(checkout.createdAt) : "N/A",
|
|
149
|
+
});
|
|
150
|
+
if (checkout.checkoutUrl) {
|
|
151
|
+
output.newline();
|
|
152
|
+
output.dim("Checkout URL:");
|
|
153
|
+
console.log(chalk_1.default.cyan(checkout.checkoutUrl));
|
|
154
|
+
}
|
|
155
|
+
if (checkout.successUrl) {
|
|
156
|
+
output.newline();
|
|
157
|
+
output.dim("Success URL:");
|
|
158
|
+
console.log(checkout.successUrl);
|
|
159
|
+
}
|
|
160
|
+
if (checkout.expiresAt) {
|
|
161
|
+
output.newline();
|
|
162
|
+
output.dim("Expires:");
|
|
163
|
+
console.log(checkout.expiresAt ? output.formatDate(checkout.expiresAt) : "N/A");
|
|
164
|
+
}
|
|
165
|
+
output.newline();
|
|
166
|
+
}
|
|
167
|
+
catch (error) {
|
|
168
|
+
spinner.stop();
|
|
169
|
+
output.error(error instanceof Error ? error.message : "Failed to fetch checkout");
|
|
170
|
+
process.exit(1);
|
|
171
|
+
}
|
|
172
|
+
});
|
|
173
|
+
return command;
|
|
174
|
+
}
|
|
175
|
+
//# sourceMappingURL=checkouts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"checkouts.js","sourceRoot":"","sources":["../../src/commands/checkouts.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AA4BpC,wBAAgB,mBAAmB,IAAI,OAAO,CAkJ7C"}
|
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
+
exports.createConfigCommand = createConfigCommand;
|
|
37
|
+
const commander_1 = require("commander");
|
|
38
|
+
const config_1 = require("../lib/config");
|
|
39
|
+
const api_1 = require("../lib/api");
|
|
40
|
+
const auth_1 = require("../lib/auth");
|
|
41
|
+
const output = __importStar(require("../utils/output"));
|
|
42
|
+
const VALID_KEYS = ["environment", "output_format"];
|
|
43
|
+
const VALID_VALUES = {
|
|
44
|
+
environment: ["test", "live"],
|
|
45
|
+
output_format: ["table", "json"],
|
|
46
|
+
};
|
|
47
|
+
/**
|
|
48
|
+
* Displays current configuration (shared by 'show' subcommand and default action)
|
|
49
|
+
*/
|
|
50
|
+
function displayConfig() {
|
|
51
|
+
const config = (0, config_1.loadConfig)();
|
|
52
|
+
output.header("Creem CLI Configuration");
|
|
53
|
+
output.newline();
|
|
54
|
+
output.outputKeyValue({
|
|
55
|
+
"Config file": (0, config_1.getConfigPath)(),
|
|
56
|
+
Environment: config.environment,
|
|
57
|
+
"Output format": config.output_format,
|
|
58
|
+
"API Key": config.api_key ? "[configured]" : "[not set]",
|
|
59
|
+
});
|
|
60
|
+
output.newline();
|
|
61
|
+
}
|
|
62
|
+
function createConfigCommand() {
|
|
63
|
+
const command = new commander_1.Command("config").description("View and manage CLI configuration");
|
|
64
|
+
// Show all config
|
|
65
|
+
command
|
|
66
|
+
.command("show")
|
|
67
|
+
.description("Display current configuration")
|
|
68
|
+
.option("--json", "Output as JSON")
|
|
69
|
+
.action((options) => {
|
|
70
|
+
if (options.json) {
|
|
71
|
+
const config = (0, config_1.loadConfig)();
|
|
72
|
+
// Don't expose full API key in JSON output
|
|
73
|
+
const safeConfig = {
|
|
74
|
+
...config,
|
|
75
|
+
api_key: config.api_key ? "[REDACTED]" : undefined,
|
|
76
|
+
};
|
|
77
|
+
output.outputJson(safeConfig);
|
|
78
|
+
return;
|
|
79
|
+
}
|
|
80
|
+
displayConfig();
|
|
81
|
+
});
|
|
82
|
+
// Get a specific config value
|
|
83
|
+
command
|
|
84
|
+
.command("get <key>")
|
|
85
|
+
.description("Get a configuration value")
|
|
86
|
+
.option("--json", "Output as JSON")
|
|
87
|
+
.action((key, options) => {
|
|
88
|
+
const config = (0, config_1.loadConfig)();
|
|
89
|
+
if (key === "api_key") {
|
|
90
|
+
output.warning("API key cannot be displayed. Use `creem whoami` instead.");
|
|
91
|
+
return;
|
|
92
|
+
}
|
|
93
|
+
if (!VALID_KEYS.includes(key)) {
|
|
94
|
+
output.error(`Unknown config key: ${key}`);
|
|
95
|
+
output.info(`Valid keys: ${VALID_KEYS.join(", ")}`);
|
|
96
|
+
process.exit(1);
|
|
97
|
+
}
|
|
98
|
+
const value = config[key];
|
|
99
|
+
if (options.json) {
|
|
100
|
+
output.outputJson({ [key]: value });
|
|
101
|
+
}
|
|
102
|
+
else {
|
|
103
|
+
console.log(value);
|
|
104
|
+
}
|
|
105
|
+
});
|
|
106
|
+
// Set a config value
|
|
107
|
+
command
|
|
108
|
+
.command("set <key> <value>")
|
|
109
|
+
.description("Set a configuration value")
|
|
110
|
+
.action((key, value) => {
|
|
111
|
+
if (key === "api_key") {
|
|
112
|
+
output.warning("Use `creem login` to set your API key.");
|
|
113
|
+
return;
|
|
114
|
+
}
|
|
115
|
+
if (!VALID_KEYS.includes(key)) {
|
|
116
|
+
output.error(`Unknown config key: ${key}`);
|
|
117
|
+
output.info(`Valid keys: ${VALID_KEYS.join(", ")}`);
|
|
118
|
+
process.exit(1);
|
|
119
|
+
}
|
|
120
|
+
const validValues = VALID_VALUES[key];
|
|
121
|
+
if (validValues && !validValues.includes(value)) {
|
|
122
|
+
output.error(`Invalid value for ${key}: ${value}`);
|
|
123
|
+
output.info(`Valid values: ${validValues.join(", ")}`);
|
|
124
|
+
process.exit(1);
|
|
125
|
+
}
|
|
126
|
+
// Validate environment-key consistency when setting environment
|
|
127
|
+
if (key === "environment") {
|
|
128
|
+
const config = (0, config_1.loadConfig)();
|
|
129
|
+
if (config.api_key) {
|
|
130
|
+
try {
|
|
131
|
+
const keyEnv = (0, auth_1.detectEnvironment)(config.api_key);
|
|
132
|
+
if (keyEnv !== value) {
|
|
133
|
+
output.error(`Environment mismatch: your API key is for "${keyEnv}" but you're setting environment to "${value}".`);
|
|
134
|
+
output.info("Run `creem login` with the correct API key for your desired environment.");
|
|
135
|
+
process.exit(1);
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
catch {
|
|
139
|
+
// Invalid key format - let them set environment, login will catch it
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
(0, config_1.setConfigValue)(key, value);
|
|
144
|
+
// Reset client when environment changes so subsequent API calls use new endpoint
|
|
145
|
+
if (key === "environment") {
|
|
146
|
+
(0, api_1.resetClient)();
|
|
147
|
+
}
|
|
148
|
+
output.success(`Set ${key} = ${value}`);
|
|
149
|
+
});
|
|
150
|
+
// List available config keys
|
|
151
|
+
command
|
|
152
|
+
.command("list")
|
|
153
|
+
.description("List available configuration keys")
|
|
154
|
+
.option("--json", "Output as JSON")
|
|
155
|
+
.action((options) => {
|
|
156
|
+
const keys = [
|
|
157
|
+
{
|
|
158
|
+
key: "environment",
|
|
159
|
+
validValues: ["test", "live"],
|
|
160
|
+
description: "API environment (test or live mode)",
|
|
161
|
+
},
|
|
162
|
+
{
|
|
163
|
+
key: "output_format",
|
|
164
|
+
validValues: ["table", "json"],
|
|
165
|
+
description: "Default output format",
|
|
166
|
+
},
|
|
167
|
+
];
|
|
168
|
+
if (options.json) {
|
|
169
|
+
output.outputJson(keys);
|
|
170
|
+
return;
|
|
171
|
+
}
|
|
172
|
+
output.header("Available Configuration Keys");
|
|
173
|
+
output.newline();
|
|
174
|
+
output.outputTable(["Key", "Valid Values", "Description"], keys.map((k) => [k.key, k.validValues.join(", "), k.description]));
|
|
175
|
+
output.newline();
|
|
176
|
+
});
|
|
177
|
+
// Default action (show config) - delegates to shared displayConfig()
|
|
178
|
+
command.action(() => {
|
|
179
|
+
displayConfig();
|
|
180
|
+
output.info('Tip: Use "creem config show --json" for JSON output');
|
|
181
|
+
});
|
|
182
|
+
return command;
|
|
183
|
+
}
|
|
184
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/commands/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"customers.d.ts","sourceRoot":"","sources":["../../src/commands/customers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAwIpC,wBAAgB,sBAAsB,IAAI,OAAO,CAuIhD"}
|