@butterbase/cli 0.2.2 → 0.3.2

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 (58) hide show
  1. package/README.md +118 -0
  2. package/dist/bin/butterbase.js +313 -1
  3. package/dist/bin/butterbase.js.map +1 -1
  4. package/dist/src/commands/ai.d.ts +36 -0
  5. package/dist/src/commands/ai.d.ts.map +1 -0
  6. package/dist/src/commands/ai.js +131 -0
  7. package/dist/src/commands/ai.js.map +1 -0
  8. package/dist/src/commands/app-billing.d.ts +62 -0
  9. package/dist/src/commands/app-billing.d.ts.map +1 -0
  10. package/dist/src/commands/app-billing.js +220 -0
  11. package/dist/src/commands/app-billing.js.map +1 -0
  12. package/dist/src/commands/app-config.d.ts +37 -0
  13. package/dist/src/commands/app-config.d.ts.map +1 -0
  14. package/dist/src/commands/app-config.js +152 -0
  15. package/dist/src/commands/app-config.js.map +1 -0
  16. package/dist/src/commands/audit.d.ts +15 -0
  17. package/dist/src/commands/audit.d.ts.map +1 -0
  18. package/dist/src/commands/audit.js +49 -0
  19. package/dist/src/commands/audit.js.map +1 -0
  20. package/dist/src/commands/do.js +1 -1
  21. package/dist/src/commands/do.js.map +1 -1
  22. package/dist/src/commands/functions.d.ts +4 -0
  23. package/dist/src/commands/functions.d.ts.map +1 -1
  24. package/dist/src/commands/functions.js +28 -2
  25. package/dist/src/commands/functions.js.map +1 -1
  26. package/dist/src/commands/integrations.d.ts +2 -0
  27. package/dist/src/commands/integrations.d.ts.map +1 -1
  28. package/dist/src/commands/integrations.js +2 -2
  29. package/dist/src/commands/integrations.js.map +1 -1
  30. package/dist/src/commands/keys.d.ts +1 -0
  31. package/dist/src/commands/keys.d.ts.map +1 -1
  32. package/dist/src/commands/keys.js +1 -1
  33. package/dist/src/commands/keys.js.map +1 -1
  34. package/dist/src/commands/move.d.ts +25 -0
  35. package/dist/src/commands/move.d.ts.map +1 -0
  36. package/dist/src/commands/move.js +157 -0
  37. package/dist/src/commands/move.js.map +1 -0
  38. package/dist/src/commands/oauth.d.ts +33 -0
  39. package/dist/src/commands/oauth.d.ts.map +1 -0
  40. package/dist/src/commands/oauth.js +122 -0
  41. package/dist/src/commands/oauth.js.map +1 -0
  42. package/dist/src/commands/regions.d.ts +4 -0
  43. package/dist/src/commands/regions.d.ts.map +1 -0
  44. package/dist/src/commands/regions.js +16 -0
  45. package/dist/src/commands/regions.js.map +1 -0
  46. package/dist/src/commands/rls.d.ts +1 -0
  47. package/dist/src/commands/rls.d.ts.map +1 -1
  48. package/dist/src/commands/rls.js +1 -0
  49. package/dist/src/commands/rls.js.map +1 -1
  50. package/dist/src/lib/api-client.d.ts +42 -3
  51. package/dist/src/lib/api-client.d.ts.map +1 -1
  52. package/dist/src/lib/api-client.js +142 -9
  53. package/dist/src/lib/api-client.js.map +1 -1
  54. package/dist/src/lib/errors.d.ts +8 -0
  55. package/dist/src/lib/errors.d.ts.map +1 -0
  56. package/dist/src/lib/errors.js +24 -0
  57. package/dist/src/lib/errors.js.map +1 -0
  58. package/package.json +2 -1
@@ -0,0 +1,36 @@
1
+ export declare function aiChatCommand(prompt: string, options: {
2
+ app?: string;
3
+ model?: string;
4
+ temperature?: number;
5
+ maxTokens?: number;
6
+ system?: string;
7
+ json?: boolean;
8
+ }): Promise<void>;
9
+ export declare function aiEmbedCommand(input: string[], options: {
10
+ app?: string;
11
+ model?: string;
12
+ json?: boolean;
13
+ }): Promise<void>;
14
+ export declare function aiModelsCommand(options: {
15
+ app?: string;
16
+ json?: boolean;
17
+ }): Promise<void>;
18
+ export declare function aiConfigGetCommand(options: {
19
+ app?: string;
20
+ json?: boolean;
21
+ }): Promise<void>;
22
+ export declare function aiConfigSetCommand(options: {
23
+ app?: string;
24
+ defaultModel?: string;
25
+ allowedModels?: string[];
26
+ maxTokensPerRequest?: number;
27
+ byokKey?: string;
28
+ json?: boolean;
29
+ }): Promise<void>;
30
+ export declare function aiUsageCommand(options: {
31
+ app?: string;
32
+ startDate?: string;
33
+ endDate?: string;
34
+ json?: boolean;
35
+ }): Promise<void>;
36
+ //# sourceMappingURL=ai.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai.d.ts","sourceRoot":"","sources":["../../../src/commands/ai.ts"],"names":[],"mappings":"AAkBA,wBAAsB,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE,iBAsBvK;AAED,wBAAsB,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE,iBAe9G;AAED,wBAAsB,eAAe,CAAC,OAAO,EAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE,iBAiB9E;AAED,wBAAsB,kBAAkB,CAAC,OAAO,EAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE,iBASjF;AAED,wBAAsB,kBAAkB,CAAC,OAAO,EAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAC;IAAC,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IAAC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE,iBAqBlL;AAED,wBAAsB,cAAc,CAAC,OAAO,EAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE,iBASnH"}
@@ -0,0 +1,131 @@
1
+ import chalk from 'chalk';
2
+ import ora from 'ora';
3
+ import { aiChat, aiEmbed, aiListModels, aiGetConfig, aiUpdateConfig, aiGetUsage, } from '../lib/api-client.js';
4
+ import { getCurrentAppId } from '../lib/config.js';
5
+ async function requireAppId(appId) {
6
+ if (appId)
7
+ return appId;
8
+ const current = await getCurrentAppId();
9
+ if (!current) {
10
+ console.log(chalk.red('No app specified and no current app set'));
11
+ console.log(chalk.gray('Use: butterbase apps use <app-id>'));
12
+ process.exit(1);
13
+ }
14
+ return current;
15
+ }
16
+ export async function aiChatCommand(prompt, options) {
17
+ const appId = await requireAppId(options.app);
18
+ const messages = [];
19
+ if (options.system)
20
+ messages.push({ role: 'system', content: options.system });
21
+ messages.push({ role: 'user', content: prompt });
22
+ const spinner = ora('Calling AI...').start();
23
+ try {
24
+ const r = await aiChat(appId, {
25
+ messages, stream: false,
26
+ ...(options.model ? { model: options.model } : {}),
27
+ ...(options.temperature !== undefined ? { temperature: options.temperature } : {}),
28
+ ...(options.maxTokens !== undefined ? { max_tokens: options.maxTokens } : {}),
29
+ });
30
+ spinner.stop();
31
+ if (options.json)
32
+ return console.log(JSON.stringify(r, null, 2));
33
+ const content = r.choices?.[0]?.message?.content;
34
+ console.log(content ?? JSON.stringify(r, null, 2));
35
+ }
36
+ catch (e) {
37
+ spinner.fail('AI request failed');
38
+ console.error(chalk.red(e.message));
39
+ process.exit(1);
40
+ }
41
+ }
42
+ export async function aiEmbedCommand(input, options) {
43
+ const appId = await requireAppId(options.app);
44
+ const body = { input: input.length === 1 ? input[0] : input };
45
+ if (options.model)
46
+ body.model = options.model;
47
+ const spinner = ora('Embedding...').start();
48
+ try {
49
+ const r = await aiEmbed(appId, body);
50
+ spinner.stop();
51
+ if (options.json)
52
+ return console.log(JSON.stringify(r, null, 2));
53
+ console.log(`${r.data?.length ?? 0} embedding(s) model=${r.model ?? '?'} tokens=${r.usage?.total_tokens ?? '?'}`);
54
+ }
55
+ catch (e) {
56
+ spinner.fail('Embed failed');
57
+ console.error(chalk.red(e.message));
58
+ process.exit(1);
59
+ }
60
+ }
61
+ export async function aiModelsCommand(options) {
62
+ const appId = await requireAppId(options.app);
63
+ const spinner = ora('Fetching models...').start();
64
+ try {
65
+ const r = await aiListModels(appId);
66
+ spinner.stop();
67
+ if (options.json)
68
+ return console.log(JSON.stringify(r, null, 2));
69
+ for (const m of r.models ?? []) {
70
+ const ctx = m.context_window ? ` ctx=${m.context_window}` : '';
71
+ const caps = m.capabilities ? ` ${m.capabilities.join(',')}` : '';
72
+ console.log(`${m.id} (${m.provider})${caps}${ctx}`);
73
+ }
74
+ }
75
+ catch (e) {
76
+ spinner.fail('List models failed');
77
+ console.error(chalk.red(e.message));
78
+ process.exit(1);
79
+ }
80
+ }
81
+ export async function aiConfigGetCommand(options) {
82
+ const appId = await requireAppId(options.app);
83
+ try {
84
+ const r = await aiGetConfig(appId);
85
+ console.log(options.json ? JSON.stringify(r, null, 2) : r);
86
+ }
87
+ catch (e) {
88
+ console.error(chalk.red(e.message));
89
+ process.exit(1);
90
+ }
91
+ }
92
+ export async function aiConfigSetCommand(options) {
93
+ const appId = await requireAppId(options.app);
94
+ const body = {};
95
+ if (options.defaultModel)
96
+ body.defaultModel = options.defaultModel;
97
+ if (options.allowedModels)
98
+ body.allowedModels = options.allowedModels;
99
+ if (options.maxTokensPerRequest !== undefined)
100
+ body.maxTokensPerRequest = options.maxTokensPerRequest;
101
+ if (options.byokKey !== undefined)
102
+ body.byokKey = options.byokKey;
103
+ if (Object.keys(body).length === 0) {
104
+ console.log(chalk.yellow('Nothing to update — pass at least one of --default-model, --allowed-models, --max-tokens-per-request, --byok-key'));
105
+ process.exit(1);
106
+ }
107
+ const spinner = ora('Updating AI config...').start();
108
+ try {
109
+ const r = await aiUpdateConfig(appId, body);
110
+ spinner.succeed('AI config updated');
111
+ if (options.json)
112
+ console.log(JSON.stringify(r, null, 2));
113
+ }
114
+ catch (e) {
115
+ spinner.fail('Update failed');
116
+ console.error(chalk.red(e.message));
117
+ process.exit(1);
118
+ }
119
+ }
120
+ export async function aiUsageCommand(options) {
121
+ const appId = await requireAppId(options.app);
122
+ try {
123
+ const r = await aiGetUsage(appId, { startDate: options.startDate, endDate: options.endDate });
124
+ console.log(options.json ? JSON.stringify(r, null, 2) : r);
125
+ }
126
+ catch (e) {
127
+ console.error(chalk.red(e.message));
128
+ process.exit(1);
129
+ }
130
+ }
131
+ //# sourceMappingURL=ai.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai.js","sourceRoot":"","sources":["../../../src/commands/ai.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,62 @@
1
+ export declare function plansListCommand(options: {
2
+ app?: string;
3
+ json?: boolean;
4
+ }): Promise<void>;
5
+ export declare function plansCreateCommand(options: {
6
+ app?: string;
7
+ name: string;
8
+ priceCents: number;
9
+ interval: 'month' | 'year';
10
+ description?: string;
11
+ json?: boolean;
12
+ }): Promise<void>;
13
+ export declare function plansUpdateCommand(planId: string, options: {
14
+ app?: string;
15
+ name?: string;
16
+ priceCents?: number;
17
+ description?: string;
18
+ json?: boolean;
19
+ }): Promise<void>;
20
+ export declare function productsListCommand(options: {
21
+ app?: string;
22
+ json?: boolean;
23
+ }): Promise<void>;
24
+ export declare function productsCreateCommand(options: {
25
+ app?: string;
26
+ name: string;
27
+ priceCents: number;
28
+ description?: string;
29
+ json?: boolean;
30
+ }): Promise<void>;
31
+ export declare function productsUpdateCommand(productId: string, options: {
32
+ app?: string;
33
+ name?: string;
34
+ priceCents?: number;
35
+ description?: string;
36
+ json?: boolean;
37
+ }): Promise<void>;
38
+ export declare function subscribeCommand(planId: string, options: {
39
+ app?: string;
40
+ json?: boolean;
41
+ }): Promise<void>;
42
+ export declare function subscriptionCommand(options: {
43
+ app?: string;
44
+ json?: boolean;
45
+ }): Promise<void>;
46
+ export declare function cancelCommand(options: {
47
+ app?: string;
48
+ json?: boolean;
49
+ }): Promise<void>;
50
+ export declare function purchaseCommand(productId: string, options: {
51
+ app?: string;
52
+ json?: boolean;
53
+ }): Promise<void>;
54
+ export declare function ordersListCommand(options: {
55
+ app?: string;
56
+ json?: boolean;
57
+ }): Promise<void>;
58
+ export declare function ordersGetCommand(orderId: string, options: {
59
+ app?: string;
60
+ json?: boolean;
61
+ }): Promise<void>;
62
+ //# sourceMappingURL=app-billing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app-billing.d.ts","sourceRoot":"","sources":["../../../src/commands/app-billing.ts"],"names":[],"mappings":"AAuBA,wBAAsB,gBAAgB,CAAC,OAAO,EAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE,iBAW/E;AAED,wBAAsB,kBAAkB,CAAC,OAAO,EAAE;IAChD,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,OAAO,GAAG,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAC;CAClH,iBAeA;AAED,wBAAsB,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE;IAChE,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAC;CACxF,iBAoBA;AAID,wBAAsB,mBAAmB,CAAC,OAAO,EAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE,iBAWlF;AAED,wBAAsB,qBAAqB,CAAC,OAAO,EAAE;IACnD,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAC;CACtF,iBAeA;AAED,wBAAsB,qBAAqB,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE;IACtE,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAC;CACxF,iBAoBA;AAID,wBAAsB,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE,iBAY/F;AAED,wBAAsB,mBAAmB,CAAC,OAAO,EAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE,iBASlF;AAED,wBAAsB,aAAa,CAAC,OAAO,EAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE,iBAY5E;AAED,wBAAsB,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE,iBAYjG;AAID,wBAAsB,iBAAiB,CAAC,OAAO,EAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE,iBAWhF;AAED,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE,iBAShG"}
@@ -0,0 +1,220 @@
1
+ import chalk from 'chalk';
2
+ import ora from 'ora';
3
+ import { createPlan, updatePlan, listPlans, createProduct, updateProduct, listProducts, subscribePlan, getSubscription, cancelSubscription, purchase, listOrders, getOrder, } from '../lib/api-client.js';
4
+ import { getCurrentAppId } from '../lib/config.js';
5
+ async function requireAppId(appId) {
6
+ if (appId)
7
+ return appId;
8
+ const current = await getCurrentAppId();
9
+ if (!current) {
10
+ console.log(chalk.red('No app specified and no current app set'));
11
+ console.log(chalk.gray('Use: butterbase apps use <app-id>'));
12
+ process.exit(1);
13
+ }
14
+ return current;
15
+ }
16
+ // ─── Plans ───────────────────────────────────────────────────────────────────
17
+ export async function plansListCommand(options) {
18
+ const appId = await requireAppId(options.app);
19
+ try {
20
+ const r = await listPlans(appId);
21
+ if (options.json)
22
+ return console.log(JSON.stringify(r, null, 2));
23
+ const list = r.plans ?? r;
24
+ for (const p of list)
25
+ console.log(`${p.id} ${p.name} ${p.price_cents}¢/${p.interval}`);
26
+ }
27
+ catch (e) {
28
+ console.error(chalk.red(e.message));
29
+ process.exit(1);
30
+ }
31
+ }
32
+ export async function plansCreateCommand(options) {
33
+ const appId = await requireAppId(options.app);
34
+ const spinner = ora(`Creating plan '${options.name}'...`).start();
35
+ try {
36
+ const r = await createPlan(appId, {
37
+ name: options.name, price_cents: options.priceCents, interval: options.interval,
38
+ ...(options.description ? { description: options.description } : {}),
39
+ });
40
+ spinner.succeed(`Created plan ${r.id ?? options.name}`);
41
+ if (options.json)
42
+ console.log(JSON.stringify(r, null, 2));
43
+ }
44
+ catch (e) {
45
+ spinner.fail('Create plan failed');
46
+ console.error(chalk.red(e.message));
47
+ process.exit(1);
48
+ }
49
+ }
50
+ export async function plansUpdateCommand(planId, options) {
51
+ const appId = await requireAppId(options.app);
52
+ const body = {};
53
+ if (options.name)
54
+ body.name = options.name;
55
+ if (options.priceCents !== undefined)
56
+ body.price_cents = options.priceCents;
57
+ if (options.description)
58
+ body.description = options.description;
59
+ if (Object.keys(body).length === 0) {
60
+ console.log(chalk.yellow('Nothing to update — pass at least one of --name, --price-cents, --description'));
61
+ process.exit(1);
62
+ }
63
+ const spinner = ora(`Updating plan ${planId}...`).start();
64
+ try {
65
+ const r = await updatePlan(appId, planId, body);
66
+ spinner.succeed(`Updated plan ${planId}`);
67
+ if (options.json)
68
+ console.log(JSON.stringify(r, null, 2));
69
+ }
70
+ catch (e) {
71
+ spinner.fail('Update plan failed');
72
+ console.error(chalk.red(e.message));
73
+ process.exit(1);
74
+ }
75
+ }
76
+ // ─── Products ────────────────────────────────────────────────────────────────
77
+ export async function productsListCommand(options) {
78
+ const appId = await requireAppId(options.app);
79
+ try {
80
+ const r = await listProducts(appId);
81
+ if (options.json)
82
+ return console.log(JSON.stringify(r, null, 2));
83
+ const list = r.products ?? r;
84
+ for (const p of list)
85
+ console.log(`${p.id} ${p.name} ${p.price_cents}¢`);
86
+ }
87
+ catch (e) {
88
+ console.error(chalk.red(e.message));
89
+ process.exit(1);
90
+ }
91
+ }
92
+ export async function productsCreateCommand(options) {
93
+ const appId = await requireAppId(options.app);
94
+ const spinner = ora(`Creating product '${options.name}'...`).start();
95
+ try {
96
+ const r = await createProduct(appId, {
97
+ name: options.name, price_cents: options.priceCents,
98
+ ...(options.description ? { description: options.description } : {}),
99
+ });
100
+ spinner.succeed(`Created product ${r.id ?? options.name}`);
101
+ if (options.json)
102
+ console.log(JSON.stringify(r, null, 2));
103
+ }
104
+ catch (e) {
105
+ spinner.fail('Create product failed');
106
+ console.error(chalk.red(e.message));
107
+ process.exit(1);
108
+ }
109
+ }
110
+ export async function productsUpdateCommand(productId, options) {
111
+ const appId = await requireAppId(options.app);
112
+ const body = {};
113
+ if (options.name)
114
+ body.name = options.name;
115
+ if (options.priceCents !== undefined)
116
+ body.price_cents = options.priceCents;
117
+ if (options.description)
118
+ body.description = options.description;
119
+ if (Object.keys(body).length === 0) {
120
+ console.log(chalk.yellow('Nothing to update'));
121
+ process.exit(1);
122
+ }
123
+ const spinner = ora(`Updating product ${productId}...`).start();
124
+ try {
125
+ const r = await updateProduct(appId, productId, body);
126
+ spinner.succeed(`Updated product ${productId}`);
127
+ if (options.json)
128
+ console.log(JSON.stringify(r, null, 2));
129
+ }
130
+ catch (e) {
131
+ spinner.fail('Update product failed');
132
+ console.error(chalk.red(e.message));
133
+ process.exit(1);
134
+ }
135
+ }
136
+ // ─── Subscriptions ───────────────────────────────────────────────────────────
137
+ export async function subscribeCommand(planId, options) {
138
+ const appId = await requireAppId(options.app);
139
+ const spinner = ora(`Subscribing to ${planId}...`).start();
140
+ try {
141
+ const r = await subscribePlan(appId, { plan_id: planId });
142
+ spinner.succeed(`Subscribed to ${planId}`);
143
+ if (options.json)
144
+ console.log(JSON.stringify(r, null, 2));
145
+ }
146
+ catch (e) {
147
+ spinner.fail('Subscribe failed');
148
+ console.error(chalk.red(e.message));
149
+ process.exit(1);
150
+ }
151
+ }
152
+ export async function subscriptionCommand(options) {
153
+ const appId = await requireAppId(options.app);
154
+ try {
155
+ const r = await getSubscription(appId);
156
+ console.log(options.json ? JSON.stringify(r, null, 2) : r);
157
+ }
158
+ catch (e) {
159
+ console.error(chalk.red(e.message));
160
+ process.exit(1);
161
+ }
162
+ }
163
+ export async function cancelCommand(options) {
164
+ const appId = await requireAppId(options.app);
165
+ const spinner = ora('Cancelling subscription...').start();
166
+ try {
167
+ const r = await cancelSubscription(appId);
168
+ spinner.succeed('Subscription cancelled');
169
+ if (options.json)
170
+ console.log(JSON.stringify(r, null, 2));
171
+ }
172
+ catch (e) {
173
+ spinner.fail('Cancel failed');
174
+ console.error(chalk.red(e.message));
175
+ process.exit(1);
176
+ }
177
+ }
178
+ export async function purchaseCommand(productId, options) {
179
+ const appId = await requireAppId(options.app);
180
+ const spinner = ora(`Purchasing ${productId}...`).start();
181
+ try {
182
+ const r = await purchase(appId, { product_id: productId });
183
+ spinner.succeed('Purchased');
184
+ if (options.json)
185
+ console.log(JSON.stringify(r, null, 2));
186
+ }
187
+ catch (e) {
188
+ spinner.fail('Purchase failed');
189
+ console.error(chalk.red(e.message));
190
+ process.exit(1);
191
+ }
192
+ }
193
+ // ─── Orders ──────────────────────────────────────────────────────────────────
194
+ export async function ordersListCommand(options) {
195
+ const appId = await requireAppId(options.app);
196
+ try {
197
+ const r = await listOrders(appId);
198
+ if (options.json)
199
+ return console.log(JSON.stringify(r, null, 2));
200
+ const list = r.orders ?? r;
201
+ for (const o of list)
202
+ console.log(`${o.id} ${o.status} ${o.amount_cents}¢ ${o.created_at}`);
203
+ }
204
+ catch (e) {
205
+ console.error(chalk.red(e.message));
206
+ process.exit(1);
207
+ }
208
+ }
209
+ export async function ordersGetCommand(orderId, options) {
210
+ const appId = await requireAppId(options.app);
211
+ try {
212
+ const r = await getOrder(appId, orderId);
213
+ console.log(options.json ? JSON.stringify(r, null, 2) : r);
214
+ }
215
+ catch (e) {
216
+ console.error(chalk.red(e.message));
217
+ process.exit(1);
218
+ }
219
+ }
220
+ //# sourceMappingURL=app-billing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app-billing.js","sourceRoot":"","sources":["../../../src/commands/app-billing.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ export declare function appConfigGetCommand(options: {
2
+ app?: string;
3
+ json?: boolean;
4
+ }): Promise<void>;
5
+ export declare function appCorsCommand(options: {
6
+ app?: string;
7
+ allowedOrigin?: string[];
8
+ allowedMethod?: string[];
9
+ allowedHeader?: string[];
10
+ allowCredentials?: boolean;
11
+ json?: boolean;
12
+ }): Promise<void>;
13
+ export declare function appJwtCommand(options: {
14
+ app?: string;
15
+ accessTokenTtl?: string;
16
+ refreshTokenTtlDays?: number;
17
+ json?: boolean;
18
+ }): Promise<void>;
19
+ export declare function appStorageCommand(options: {
20
+ app?: string;
21
+ publicRead?: boolean;
22
+ maxFileSizeMb?: number;
23
+ allowedContentType?: string[];
24
+ json?: boolean;
25
+ }): Promise<void>;
26
+ export declare function appAccessModeCommand(mode: string, options: {
27
+ app?: string;
28
+ json?: boolean;
29
+ }): Promise<void>;
30
+ export declare function appSecureCommand(options: {
31
+ app?: string;
32
+ table?: string[];
33
+ userColumn?: string;
34
+ accessMode?: string;
35
+ json?: boolean;
36
+ }): Promise<void>;
37
+ //# sourceMappingURL=app-config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"app-config.d.ts","sourceRoot":"","sources":["../../../src/commands/app-config.ts"],"names":[],"mappings":"AAkBA,wBAAsB,mBAAmB,CAAC,OAAO,EAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE,iBASlF;AAED,wBAAsB,cAAc,CAAC,OAAO,EAAE;IAC5C,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IAAC,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IAAC,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IAAC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IACzG,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB,iBAqBA;AAED,wBAAsB,aAAa,CAAC,OAAO,EAAE;IAC3C,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IAAC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAC;CACrF,iBAmBA;AAED,wBAAsB,iBAAiB,CAAC,OAAO,EAAE;IAC/C,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,OAAO,CAAC;IAAC,aAAa,CAAC,EAAE,MAAM,CAAC;IAAC,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAC;CAC3G,iBAoBA;AAED,wBAAsB,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE,iBAgBjG;AAED,wBAAsB,gBAAgB,CAAC,OAAO,EAAE;IAC9C,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAC;CAC1F,iBAyBA"}