@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
|
@@ -0,0 +1,476 @@
|
|
|
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.createSubscriptionsCommand = createSubscriptionsCommand;
|
|
40
|
+
const commander_1 = require("commander");
|
|
41
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
42
|
+
const ora_1 = __importDefault(require("ora"));
|
|
43
|
+
const api_1 = require("../lib/api");
|
|
44
|
+
const config_1 = require("../lib/config");
|
|
45
|
+
const output = __importStar(require("../utils/output"));
|
|
46
|
+
function formatStatus(status) {
|
|
47
|
+
const statusColors = {
|
|
48
|
+
active: chalk_1.default.green,
|
|
49
|
+
paused: chalk_1.default.yellow,
|
|
50
|
+
canceled: chalk_1.default.red,
|
|
51
|
+
unpaid: chalk_1.default.red,
|
|
52
|
+
trialing: chalk_1.default.cyan,
|
|
53
|
+
scheduled_cancel: chalk_1.default.yellow,
|
|
54
|
+
};
|
|
55
|
+
const normalizedStatus = status?.toLowerCase();
|
|
56
|
+
const colorFn = statusColors[normalizedStatus] || chalk_1.default.white;
|
|
57
|
+
return colorFn(status);
|
|
58
|
+
}
|
|
59
|
+
async function fetchSubscriptionsFromTransactions(options) {
|
|
60
|
+
const client = (0, api_1.getClient)();
|
|
61
|
+
const { targetCount, maxTransactionPages = 20, statusFilter, onProgress } = options;
|
|
62
|
+
// Phase 1: Collect unique subscription IDs from transactions
|
|
63
|
+
const subscriptionIds = new Set();
|
|
64
|
+
let transactionPage = 1;
|
|
65
|
+
let noMoreTransactions = false;
|
|
66
|
+
onProgress?.("Scanning transactions for subscriptions...");
|
|
67
|
+
while (subscriptionIds.size < targetCount && transactionPage <= maxTransactionPages) {
|
|
68
|
+
const transactions = await client.transactions.search(undefined, undefined, undefined, transactionPage, 50);
|
|
69
|
+
const items = transactions.items || [];
|
|
70
|
+
if (items.length === 0) {
|
|
71
|
+
noMoreTransactions = true;
|
|
72
|
+
break;
|
|
73
|
+
}
|
|
74
|
+
for (const txn of items) {
|
|
75
|
+
if (txn.subscription) {
|
|
76
|
+
subscriptionIds.add(txn.subscription);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
transactionPage++;
|
|
80
|
+
}
|
|
81
|
+
if (subscriptionIds.size === 0) {
|
|
82
|
+
return { subscriptions: [], hasMore: false };
|
|
83
|
+
}
|
|
84
|
+
// Phase 2: Batch fetch subscriptions in parallel
|
|
85
|
+
onProgress?.(`Fetching ${subscriptionIds.size} subscription(s)...`);
|
|
86
|
+
const subscriptionIdArray = Array.from(subscriptionIds);
|
|
87
|
+
const allSubscriptions = [];
|
|
88
|
+
const batchSize = 10;
|
|
89
|
+
for (let i = 0; i < subscriptionIdArray.length; i += batchSize) {
|
|
90
|
+
const batch = subscriptionIdArray.slice(i, i + batchSize);
|
|
91
|
+
const results = await Promise.allSettled(batch.map((id) => client.subscriptions.get(id)));
|
|
92
|
+
for (const result of results) {
|
|
93
|
+
if (result.status === "fulfilled") {
|
|
94
|
+
allSubscriptions.push(result.value);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
// Phase 3: Apply status filter if specified
|
|
99
|
+
let filteredSubscriptions = allSubscriptions;
|
|
100
|
+
if (statusFilter) {
|
|
101
|
+
filteredSubscriptions = allSubscriptions.filter((sub) => sub.status.toLowerCase() === statusFilter);
|
|
102
|
+
}
|
|
103
|
+
return {
|
|
104
|
+
subscriptions: filteredSubscriptions,
|
|
105
|
+
hasMore: !noMoreTransactions,
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
function formatSubscription(sub, jsonFlag) {
|
|
109
|
+
if ((0, config_1.shouldOutputJson)(jsonFlag)) {
|
|
110
|
+
output.outputJson(sub);
|
|
111
|
+
return;
|
|
112
|
+
}
|
|
113
|
+
const product = typeof sub.product === "object" ? sub.product : null;
|
|
114
|
+
const customer = typeof sub.customer === "object" ? sub.customer : null;
|
|
115
|
+
output.header("Subscription Details");
|
|
116
|
+
output.newline();
|
|
117
|
+
const data = {
|
|
118
|
+
ID: sub.id,
|
|
119
|
+
Status: formatStatus(sub.status),
|
|
120
|
+
Mode: sub.mode,
|
|
121
|
+
Customer: customer
|
|
122
|
+
? `${customer.email}${customer.name ? ` (${customer.name})` : ""}`
|
|
123
|
+
: sub.customer,
|
|
124
|
+
"Customer ID": customer?.id || sub.customer,
|
|
125
|
+
Product: product?.name || sub.product,
|
|
126
|
+
"Product ID": product?.id || sub.product,
|
|
127
|
+
};
|
|
128
|
+
if (product) {
|
|
129
|
+
data["Price"] = output.formatCurrency(product.price, product.currency);
|
|
130
|
+
if (product.billingPeriod) {
|
|
131
|
+
data["Billing Period"] = product.billingPeriod;
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
if (sub.currentPeriodStartDate) {
|
|
135
|
+
data["Period Start"] = output.formatDate(sub.currentPeriodStartDate);
|
|
136
|
+
}
|
|
137
|
+
if (sub.currentPeriodEndDate) {
|
|
138
|
+
data["Period End"] = output.formatDate(sub.currentPeriodEndDate);
|
|
139
|
+
}
|
|
140
|
+
if (sub.nextTransactionDate) {
|
|
141
|
+
data["Next Billing"] = output.formatDate(sub.nextTransactionDate);
|
|
142
|
+
}
|
|
143
|
+
if (sub.canceledAt) {
|
|
144
|
+
data["Canceled At"] = output.formatDate(sub.canceledAt);
|
|
145
|
+
}
|
|
146
|
+
data["Created"] = output.formatDate(sub.createdAt);
|
|
147
|
+
data["Updated"] = output.formatDate(sub.updatedAt);
|
|
148
|
+
output.outputKeyValue(data);
|
|
149
|
+
}
|
|
150
|
+
function getSubscriptionDetailLines(sub) {
|
|
151
|
+
const product = typeof sub.product === "object" ? sub.product : null;
|
|
152
|
+
const customer = typeof sub.customer === "object" ? sub.customer : null;
|
|
153
|
+
const lines = [];
|
|
154
|
+
const dl = output.detailLine;
|
|
155
|
+
lines.push("");
|
|
156
|
+
lines.push(dl("ID", sub.id));
|
|
157
|
+
lines.push(dl("Status", formatStatus(sub.status)));
|
|
158
|
+
lines.push(dl("Mode", sub.mode));
|
|
159
|
+
lines.push(dl("Customer", customer
|
|
160
|
+
? `${customer.email}${customer.name ? ` (${customer.name})` : ""}`
|
|
161
|
+
: sub.customer));
|
|
162
|
+
lines.push(dl("Customer ID", String(customer?.id || sub.customer)));
|
|
163
|
+
lines.push(dl("Product", String(product?.name || sub.product)));
|
|
164
|
+
lines.push(dl("Product ID", String(product?.id || sub.product)));
|
|
165
|
+
if (product) {
|
|
166
|
+
lines.push(dl("Price", output.formatCurrency(product.price, product.currency)));
|
|
167
|
+
if (product.billingPeriod) {
|
|
168
|
+
lines.push(dl("Billing Period", product.billingPeriod));
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
if (sub.currentPeriodStartDate) {
|
|
172
|
+
lines.push(dl("Period Start", output.formatDate(sub.currentPeriodStartDate)));
|
|
173
|
+
}
|
|
174
|
+
if (sub.currentPeriodEndDate) {
|
|
175
|
+
lines.push(dl("Period End", output.formatDate(sub.currentPeriodEndDate)));
|
|
176
|
+
}
|
|
177
|
+
if (sub.nextTransactionDate) {
|
|
178
|
+
lines.push(dl("Next Billing", output.formatDate(sub.nextTransactionDate)));
|
|
179
|
+
}
|
|
180
|
+
if (sub.canceledAt) {
|
|
181
|
+
lines.push(dl("Canceled At", output.formatDate(sub.canceledAt)));
|
|
182
|
+
}
|
|
183
|
+
lines.push(dl("Created", output.formatDate(sub.createdAt)));
|
|
184
|
+
lines.push(dl("Updated", output.formatDate(sub.updatedAt)));
|
|
185
|
+
return lines;
|
|
186
|
+
}
|
|
187
|
+
function getSubscriptionsTuiDescriptor() {
|
|
188
|
+
return {
|
|
189
|
+
name: "Subscriptions",
|
|
190
|
+
columns: [
|
|
191
|
+
{ header: "ID", width: 24, value: (s) => s.id },
|
|
192
|
+
{
|
|
193
|
+
header: "Customer",
|
|
194
|
+
width: 28,
|
|
195
|
+
value: (s) => (typeof s.customer === "object" ? s.customer.email : String(s.customer)),
|
|
196
|
+
},
|
|
197
|
+
{
|
|
198
|
+
header: "Product",
|
|
199
|
+
width: 20,
|
|
200
|
+
value: (s) => (typeof s.product === "object" ? s.product.name : String(s.product)),
|
|
201
|
+
},
|
|
202
|
+
{ header: "Status", width: 12, value: (s) => formatStatus(s.status) },
|
|
203
|
+
{
|
|
204
|
+
header: "Next Billing",
|
|
205
|
+
width: "auto",
|
|
206
|
+
value: (s) => (s.nextTransactionDate ? output.formatDate(s.nextTransactionDate) : "-"),
|
|
207
|
+
},
|
|
208
|
+
],
|
|
209
|
+
fetchPage: (() => {
|
|
210
|
+
// Cache subscriptions to avoid re-fetching on pagination
|
|
211
|
+
let cachedSubscriptions = [];
|
|
212
|
+
let hasMorePages = true;
|
|
213
|
+
return async (page, pageSize) => {
|
|
214
|
+
// On page 1 (or refresh), fetch fresh data using shared helper
|
|
215
|
+
if (page === 1) {
|
|
216
|
+
const result = await fetchSubscriptionsFromTransactions({
|
|
217
|
+
targetCount: 200, // Fetch enough for TUI browsing
|
|
218
|
+
maxTransactionPages: 20,
|
|
219
|
+
});
|
|
220
|
+
cachedSubscriptions = result.subscriptions;
|
|
221
|
+
hasMorePages = result.hasMore;
|
|
222
|
+
}
|
|
223
|
+
// Calculate pagination
|
|
224
|
+
const startIndex = (page - 1) * pageSize;
|
|
225
|
+
const endIndex = startIndex + pageSize;
|
|
226
|
+
const pageItems = cachedSubscriptions.slice(startIndex, endIndex);
|
|
227
|
+
// hasMore should be true only if there are actually more items to show:
|
|
228
|
+
// - Either more items exist in cache beyond current page
|
|
229
|
+
// - Or we're on page 1 and API indicated more pages exist (for initial load indicator)
|
|
230
|
+
// Don't use hasMorePages on pages > 1 as we only slice from cache at that point
|
|
231
|
+
const hasMoreInCache = cachedSubscriptions.length > endIndex;
|
|
232
|
+
const mightHaveMoreFromApi = page === 1 && hasMorePages && pageItems.length > 0;
|
|
233
|
+
return {
|
|
234
|
+
items: pageItems,
|
|
235
|
+
hasMore: hasMoreInCache || mightHaveMoreFromApi,
|
|
236
|
+
};
|
|
237
|
+
};
|
|
238
|
+
})(),
|
|
239
|
+
getId: (s) => s.id,
|
|
240
|
+
renderDetail: (s) => getSubscriptionDetailLines(s),
|
|
241
|
+
commands: [
|
|
242
|
+
{
|
|
243
|
+
name: "cancel",
|
|
244
|
+
description: "Cancel subscription",
|
|
245
|
+
requiresSelection: true,
|
|
246
|
+
destructive: true,
|
|
247
|
+
execute: async (item) => {
|
|
248
|
+
const client = (0, api_1.getClient)();
|
|
249
|
+
await client.subscriptions.cancel(item.id, { mode: "immediate" });
|
|
250
|
+
return {
|
|
251
|
+
success: true,
|
|
252
|
+
message: "Subscription canceled",
|
|
253
|
+
refreshList: true,
|
|
254
|
+
};
|
|
255
|
+
},
|
|
256
|
+
},
|
|
257
|
+
{
|
|
258
|
+
name: "pause",
|
|
259
|
+
description: "Pause subscription",
|
|
260
|
+
requiresSelection: true,
|
|
261
|
+
destructive: true,
|
|
262
|
+
execute: async (item) => {
|
|
263
|
+
const client = (0, api_1.getClient)();
|
|
264
|
+
await client.subscriptions.pause(item.id);
|
|
265
|
+
return {
|
|
266
|
+
success: true,
|
|
267
|
+
message: "Subscription paused",
|
|
268
|
+
refreshList: true,
|
|
269
|
+
};
|
|
270
|
+
},
|
|
271
|
+
},
|
|
272
|
+
{
|
|
273
|
+
name: "resume",
|
|
274
|
+
description: "Resume subscription",
|
|
275
|
+
requiresSelection: true,
|
|
276
|
+
execute: async (item) => {
|
|
277
|
+
const client = (0, api_1.getClient)();
|
|
278
|
+
await client.subscriptions.resume(item.id);
|
|
279
|
+
return {
|
|
280
|
+
success: true,
|
|
281
|
+
message: "Subscription resumed",
|
|
282
|
+
refreshList: true,
|
|
283
|
+
};
|
|
284
|
+
},
|
|
285
|
+
},
|
|
286
|
+
],
|
|
287
|
+
searchFilter: (s, query) => {
|
|
288
|
+
const q = query.toLowerCase();
|
|
289
|
+
const customer = typeof s.customer === "object" ? s.customer.email : String(s.customer);
|
|
290
|
+
const product = typeof s.product === "object" ? s.product.name : String(s.product);
|
|
291
|
+
return (s.id.toLowerCase().includes(q) ||
|
|
292
|
+
customer.toLowerCase().includes(q) ||
|
|
293
|
+
product.toLowerCase().includes(q) ||
|
|
294
|
+
s.status.toLowerCase().includes(q));
|
|
295
|
+
},
|
|
296
|
+
};
|
|
297
|
+
}
|
|
298
|
+
function createSubscriptionsCommand() {
|
|
299
|
+
const command = new commander_1.Command("subscriptions")
|
|
300
|
+
.description("Manage subscriptions")
|
|
301
|
+
.alias("subs")
|
|
302
|
+
.action(async () => {
|
|
303
|
+
const { launchInteractiveMode } = await Promise.resolve().then(() => __importStar(require("../tui")));
|
|
304
|
+
const descriptor = getSubscriptionsTuiDescriptor();
|
|
305
|
+
await launchInteractiveMode(descriptor);
|
|
306
|
+
});
|
|
307
|
+
// Get subscription
|
|
308
|
+
command
|
|
309
|
+
.command("get <id>")
|
|
310
|
+
.description("Get subscription details by ID")
|
|
311
|
+
.option("--json", "Output as JSON")
|
|
312
|
+
.action(async (id, options) => {
|
|
313
|
+
const spinner = (0, ora_1.default)("Fetching subscription...").start();
|
|
314
|
+
try {
|
|
315
|
+
const client = (0, api_1.getClient)();
|
|
316
|
+
const result = (await client.subscriptions.get(id));
|
|
317
|
+
spinner.stop();
|
|
318
|
+
formatSubscription(result, options.json);
|
|
319
|
+
}
|
|
320
|
+
catch (error) {
|
|
321
|
+
spinner.fail("Failed to fetch subscription");
|
|
322
|
+
output.error(error instanceof Error ? error.message : "Unknown error");
|
|
323
|
+
process.exit(1);
|
|
324
|
+
}
|
|
325
|
+
});
|
|
326
|
+
// Cancel subscription
|
|
327
|
+
command
|
|
328
|
+
.command("cancel <id>")
|
|
329
|
+
.description("Cancel a subscription")
|
|
330
|
+
.option("--mode <mode>", "Cancellation mode: immediate or scheduled", "immediate")
|
|
331
|
+
.option("--on-execute <action>", "Action on scheduled cancel: cancel or pause")
|
|
332
|
+
.option("--json", "Output as JSON")
|
|
333
|
+
.action(async (id, options) => {
|
|
334
|
+
const spinner = (0, ora_1.default)("Canceling subscription...").start();
|
|
335
|
+
try {
|
|
336
|
+
const client = (0, api_1.getClient)();
|
|
337
|
+
// Cast to the expected SDK types
|
|
338
|
+
const params = {};
|
|
339
|
+
if (options.mode === "immediate" || options.mode === "scheduled") {
|
|
340
|
+
params.mode = options.mode;
|
|
341
|
+
}
|
|
342
|
+
if (options.onExecute === "cancel" || options.onExecute === "pause") {
|
|
343
|
+
params.onExecute = options.onExecute;
|
|
344
|
+
}
|
|
345
|
+
const result = (await client.subscriptions.cancel(id, params));
|
|
346
|
+
spinner.succeed("Subscription canceled");
|
|
347
|
+
if (!(0, config_1.shouldOutputJson)(options.json)) {
|
|
348
|
+
output.newline();
|
|
349
|
+
}
|
|
350
|
+
formatSubscription(result, options.json);
|
|
351
|
+
}
|
|
352
|
+
catch (error) {
|
|
353
|
+
spinner.fail("Failed to cancel subscription");
|
|
354
|
+
output.error(error instanceof Error ? error.message : "Unknown error");
|
|
355
|
+
process.exit(1);
|
|
356
|
+
}
|
|
357
|
+
});
|
|
358
|
+
// Pause subscription
|
|
359
|
+
command
|
|
360
|
+
.command("pause <id>")
|
|
361
|
+
.description("Pause a subscription")
|
|
362
|
+
.option("--json", "Output as JSON")
|
|
363
|
+
.action(async (id, options) => {
|
|
364
|
+
const spinner = (0, ora_1.default)("Pausing subscription...").start();
|
|
365
|
+
try {
|
|
366
|
+
const client = (0, api_1.getClient)();
|
|
367
|
+
const result = (await client.subscriptions.pause(id));
|
|
368
|
+
spinner.succeed("Subscription paused");
|
|
369
|
+
if (!(0, config_1.shouldOutputJson)(options.json)) {
|
|
370
|
+
output.newline();
|
|
371
|
+
}
|
|
372
|
+
formatSubscription(result, options.json);
|
|
373
|
+
}
|
|
374
|
+
catch (error) {
|
|
375
|
+
spinner.fail("Failed to pause subscription");
|
|
376
|
+
output.error(error instanceof Error ? error.message : "Unknown error");
|
|
377
|
+
process.exit(1);
|
|
378
|
+
}
|
|
379
|
+
});
|
|
380
|
+
// Resume subscription
|
|
381
|
+
command
|
|
382
|
+
.command("resume <id>")
|
|
383
|
+
.description("Resume a paused subscription")
|
|
384
|
+
.option("--json", "Output as JSON")
|
|
385
|
+
.action(async (id, options) => {
|
|
386
|
+
const spinner = (0, ora_1.default)("Resuming subscription...").start();
|
|
387
|
+
try {
|
|
388
|
+
const client = (0, api_1.getClient)();
|
|
389
|
+
const result = (await client.subscriptions.resume(id));
|
|
390
|
+
spinner.succeed("Subscription resumed");
|
|
391
|
+
if (!(0, config_1.shouldOutputJson)(options.json)) {
|
|
392
|
+
output.newline();
|
|
393
|
+
}
|
|
394
|
+
formatSubscription(result, options.json);
|
|
395
|
+
}
|
|
396
|
+
catch (error) {
|
|
397
|
+
spinner.fail("Failed to resume subscription");
|
|
398
|
+
output.error(error instanceof Error ? error.message : "Unknown error");
|
|
399
|
+
process.exit(1);
|
|
400
|
+
}
|
|
401
|
+
});
|
|
402
|
+
// List subscriptions (derived from transactions with subscription field)
|
|
403
|
+
command
|
|
404
|
+
.command("list")
|
|
405
|
+
.description("List all subscriptions")
|
|
406
|
+
.option("--page <number>", "Page number", "1")
|
|
407
|
+
.option("--limit <number>", "Results per page", "10")
|
|
408
|
+
.option("--status <status>", "Filter by status (active, paused, canceled, scheduled_cancel)")
|
|
409
|
+
.option("--json", "Output as JSON")
|
|
410
|
+
.action(async (options) => {
|
|
411
|
+
const spinner = (0, ora_1.default)("Fetching subscriptions...").start();
|
|
412
|
+
try {
|
|
413
|
+
const pageSize = Math.min(parseInt(options.limit || "10", 10), 50);
|
|
414
|
+
const statusFilter = options.status?.toLowerCase();
|
|
415
|
+
const requestedPage = parseInt(options.page || "1", 10);
|
|
416
|
+
// Use shared helper to fetch subscriptions (avoids N+1 queries)
|
|
417
|
+
const targetCount = requestedPage * pageSize + 50; // Fetch extra to account for filtering
|
|
418
|
+
const result = await fetchSubscriptionsFromTransactions({
|
|
419
|
+
targetCount,
|
|
420
|
+
statusFilter,
|
|
421
|
+
onProgress: (msg) => {
|
|
422
|
+
spinner.text = msg;
|
|
423
|
+
},
|
|
424
|
+
});
|
|
425
|
+
if (result.subscriptions.length === 0) {
|
|
426
|
+
spinner.stop();
|
|
427
|
+
output.info("No subscriptions found");
|
|
428
|
+
return;
|
|
429
|
+
}
|
|
430
|
+
// Apply pagination
|
|
431
|
+
const startIndex = (requestedPage - 1) * pageSize;
|
|
432
|
+
const subscriptions = result.subscriptions.slice(startIndex, startIndex + pageSize);
|
|
433
|
+
spinner.stop();
|
|
434
|
+
if ((0, config_1.shouldOutputJson)(options.json)) {
|
|
435
|
+
output.outputJson({
|
|
436
|
+
items: subscriptions,
|
|
437
|
+
total: result.subscriptions.length,
|
|
438
|
+
page: requestedPage,
|
|
439
|
+
pageSize: pageSize,
|
|
440
|
+
note: "Subscriptions derived from transaction history",
|
|
441
|
+
});
|
|
442
|
+
return;
|
|
443
|
+
}
|
|
444
|
+
if (subscriptions.length === 0) {
|
|
445
|
+
output.info("No subscriptions found");
|
|
446
|
+
return;
|
|
447
|
+
}
|
|
448
|
+
// Format as table
|
|
449
|
+
const headers = ["ID", "Customer", "Product", "Status", "Next Billing"];
|
|
450
|
+
const rows = subscriptions.map((sub) => {
|
|
451
|
+
const customer = typeof sub.customer === "object" ? sub.customer.email : sub.customer;
|
|
452
|
+
const product = typeof sub.product === "object" ? sub.product.name : sub.product;
|
|
453
|
+
return [
|
|
454
|
+
sub.id,
|
|
455
|
+
customer,
|
|
456
|
+
product,
|
|
457
|
+
formatStatus(sub.status),
|
|
458
|
+
sub.nextTransactionDate ? output.formatDate(sub.nextTransactionDate) : "-",
|
|
459
|
+
];
|
|
460
|
+
});
|
|
461
|
+
output.outputTable(headers, rows);
|
|
462
|
+
output.newline();
|
|
463
|
+
output.info(`Showing ${subscriptions.length} of ${result.subscriptions.length} subscription(s) (page ${requestedPage})`);
|
|
464
|
+
if (statusFilter) {
|
|
465
|
+
output.info(`Filtered by status: ${statusFilter}`);
|
|
466
|
+
}
|
|
467
|
+
}
|
|
468
|
+
catch (error) {
|
|
469
|
+
spinner.fail("Failed to fetch subscriptions");
|
|
470
|
+
output.error(error instanceof Error ? error.message : "Unknown error");
|
|
471
|
+
process.exit(1);
|
|
472
|
+
}
|
|
473
|
+
});
|
|
474
|
+
return command;
|
|
475
|
+
}
|
|
476
|
+
//# sourceMappingURL=subscriptions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"subscriptions.js","sourceRoot":"","sources":["../../src/commands/subscriptions.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transactions.d.ts","sourceRoot":"","sources":["../../src/commands/transactions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAkQpC,wBAAgB,yBAAyB,IAAI,OAAO,CAuHnD"}
|