@soulcraft/sdk 3.3.10 → 3.3.11

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.
@@ -0,0 +1,37 @@
1
+ /**
2
+ * @module server/handlers/billing
3
+ * @description Billing namespace handler — exposes the billing module's methods
4
+ * as RPC-callable namespace operations.
5
+ *
6
+ * This handler wraps a {@link BillingModule} instance (created by `createBillingModule()`)
7
+ * and makes its methods available to frontend clients via `sdk.billing.*`.
8
+ *
9
+ * Methods:
10
+ * - `getStatus` — Full billing status (subscription, usage, limits, portal URL)
11
+ * - `getUsage` — Current usage data for the billing period
12
+ * - `getSubscription` — Active subscription details
13
+ * - `getTopUpBalance` — Remaining top-up credits
14
+ * - `subscribe` — Create checkout session for subscription (returns redirect URL)
15
+ * - `cancel` — Cancel subscription at end of period
16
+ * - `topup` — Create checkout session for top-up credits (returns redirect URL)
17
+ * - `getPortalUrl` — Get Stripe customer portal URL
18
+ */
19
+ import type { NamespaceProvider } from '../namespace-router.js';
20
+ import type { BillingModule } from '../../modules/billing/types.js';
21
+ /**
22
+ * @description Options for creating the billing namespace handler.
23
+ */
24
+ export interface BillingHandlerOptions {
25
+ /** The billing module instance (from `createBillingModule()`). */
26
+ billing: BillingModule;
27
+ /** Soulcraft account URL for managed billing redirects. Defaults to `'https://soulcraft.com/account'`. */
28
+ accountUrl?: string;
29
+ }
30
+ /**
31
+ * @description Creates the `billing` namespace handler.
32
+ *
33
+ * @param options - Handler dependencies.
34
+ * @returns A {@link NamespaceProvider} implementing the billing namespace.
35
+ */
36
+ export declare function createBillingHandler(options: BillingHandlerOptions): NamespaceProvider;
37
+ //# sourceMappingURL=billing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"billing.d.ts","sourceRoot":"","sources":["../../../src/server/handlers/billing.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAkB,MAAM,wBAAwB,CAAA;AAC/E,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAA;AAEnE;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,kEAAkE;IAClE,OAAO,EAAE,aAAa,CAAA;IACtB,0GAA0G;IAC1G,UAAU,CAAC,EAAE,MAAM,CAAA;CACpB;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,qBAAqB,GAAG,iBAAiB,CAuHtF"}
@@ -0,0 +1,135 @@
1
+ /**
2
+ * @module server/handlers/billing
3
+ * @description Billing namespace handler — exposes the billing module's methods
4
+ * as RPC-callable namespace operations.
5
+ *
6
+ * This handler wraps a {@link BillingModule} instance (created by `createBillingModule()`)
7
+ * and makes its methods available to frontend clients via `sdk.billing.*`.
8
+ *
9
+ * Methods:
10
+ * - `getStatus` — Full billing status (subscription, usage, limits, portal URL)
11
+ * - `getUsage` — Current usage data for the billing period
12
+ * - `getSubscription` — Active subscription details
13
+ * - `getTopUpBalance` — Remaining top-up credits
14
+ * - `subscribe` — Create checkout session for subscription (returns redirect URL)
15
+ * - `cancel` — Cancel subscription at end of period
16
+ * - `topup` — Create checkout session for top-up credits (returns redirect URL)
17
+ * - `getPortalUrl` — Get Stripe customer portal URL
18
+ */
19
+ /**
20
+ * @description Creates the `billing` namespace handler.
21
+ *
22
+ * @param options - Handler dependencies.
23
+ * @returns A {@link NamespaceProvider} implementing the billing namespace.
24
+ */
25
+ export function createBillingHandler(options) {
26
+ const { billing, accountUrl = process.env.SOULCRAFT_ACCOUNT_URL || 'https://soulcraft.com/account' } = options;
27
+ const isManagedBilling = Boolean(process.env.PORTAL_CREDIT_SECRET || process.env.FIREBASE_SERVICE_ACCOUNT_KEY);
28
+ return {
29
+ /**
30
+ * @description Get full billing status — subscription, usage, limits, billing mode, portal URL.
31
+ *
32
+ * @param ctx - Handler context with authenticated user.
33
+ * @returns Billing status object.
34
+ */
35
+ async getStatus(ctx) {
36
+ const userId = ctx.user.email;
37
+ const hasPersonalKey = !!ctx.user.hasByok;
38
+ const [subscription, topUpBalance, usageStatus] = await Promise.all([
39
+ billing.getSubscription(userId),
40
+ billing.getTopUpBalance(userId),
41
+ billing.getUsageStatus(userId, hasPersonalKey),
42
+ ]);
43
+ return {
44
+ hasSubscription: !!subscription,
45
+ subscription: subscription || null,
46
+ topUpBalance,
47
+ usage: usageStatus,
48
+ billingMode: process.env.PORTAL_CREDIT_SECRET ? 'portal'
49
+ : process.env.FIREBASE_SERVICE_ACCOUNT_KEY ? 'firestore'
50
+ : 'local',
51
+ portalUrl: isManagedBilling ? accountUrl : null,
52
+ };
53
+ },
54
+ /**
55
+ * @description Get current AI usage data.
56
+ *
57
+ * @param ctx - Handler context with authenticated user.
58
+ * @returns Usage totals for the current billing period.
59
+ */
60
+ async getUsage(ctx) {
61
+ return billing.getUsage(ctx.user.email);
62
+ },
63
+ /**
64
+ * @description Get active subscription details.
65
+ *
66
+ * @param ctx - Handler context with authenticated user.
67
+ * @returns Subscription data or null.
68
+ */
69
+ async getSubscription(ctx) {
70
+ return (await billing.getSubscription(ctx.user.email)) || null;
71
+ },
72
+ /**
73
+ * @description Get remaining top-up credit balance.
74
+ *
75
+ * @param ctx - Handler context with authenticated user.
76
+ * @returns Number of credits remaining.
77
+ */
78
+ async getTopUpBalance(ctx) {
79
+ return billing.getTopUpBalance(ctx.user.email);
80
+ },
81
+ /**
82
+ * @description Subscribe to a plan. For managed billing, returns a redirect URL
83
+ * to the Soulcraft account page. For local billing, creates the subscription inline.
84
+ *
85
+ * @param plan - Plan identifier (e.g. `'standard'`, `'byok'`).
86
+ * @param ctx - Handler context with authenticated user.
87
+ * @returns `{ redirect: true, url }` for managed billing or `{ success: true }` for local.
88
+ */
89
+ async subscribe(plan, ctx) {
90
+ if (isManagedBilling) {
91
+ return { redirect: true, url: `${accountUrl}?action=subscribe&plan=${plan}` };
92
+ }
93
+ // Local billing — no Stripe, just mark as subscribed
94
+ return { success: true, subscription: { plan, status: 'active' } };
95
+ },
96
+ /**
97
+ * @description Cancel the user's subscription. For managed billing, returns a redirect URL.
98
+ *
99
+ * @param ctx - Handler context with authenticated user.
100
+ * @returns `{ redirect: true, url }` for managed billing or `{ success: true }` for local.
101
+ */
102
+ async cancel(ctx) {
103
+ if (isManagedBilling) {
104
+ return { redirect: true, url: `${accountUrl}?action=cancel` };
105
+ }
106
+ await billing.cancelSubscription(ctx.user.email);
107
+ return { success: true };
108
+ },
109
+ /**
110
+ * @description Purchase top-up credits. For managed billing, returns a redirect URL.
111
+ *
112
+ * @param size - Credit package size (e.g. `'small'`, `'medium'`, `'large'`).
113
+ * @param ctx - Handler context with authenticated user.
114
+ * @returns `{ redirect: true, url }` for managed billing or `{ success: true, newBalance }` for local.
115
+ */
116
+ async topup(size, ctx) {
117
+ if (isManagedBilling) {
118
+ return { redirect: true, url: `${accountUrl}?action=topup&size=${size}` };
119
+ }
120
+ const amounts = { small: 100, medium: 500, large: 2000 };
121
+ const newBalance = await billing.addTopUp(ctx.user.email, amounts[size] || 100);
122
+ return { success: true, newBalance };
123
+ },
124
+ /**
125
+ * @description Get the Stripe customer portal URL for managing subscriptions.
126
+ *
127
+ * @param ctx - Handler context with authenticated user.
128
+ * @returns `{ url }` or `{ url: null }` for local billing.
129
+ */
130
+ async getPortalUrl(ctx) {
131
+ return { url: isManagedBilling ? accountUrl : null };
132
+ },
133
+ };
134
+ }
135
+ //# sourceMappingURL=billing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"billing.js","sourceRoot":"","sources":["../../../src/server/handlers/billing.ts"],"names":[],"mappings":"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"}
@@ -67,4 +67,6 @@ export { createSettingsHandler } from './settings.js';
67
67
  export type { ApiKeyService, SettingsBillingService, StorageTracker, StorageLimitResolver, SettingsHandlerOptions, } from './settings.js';
68
68
  export { createWorkspaceHandler } from './workspace.js';
69
69
  export type { WorkspaceManager, WorkspaceHandlerOptions } from './workspace.js';
70
+ export { createBillingHandler } from './billing.js';
71
+ export type { BillingHandlerOptions } from './billing.js';
70
72
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/server/handlers/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/server/handlers/index.ts"],"names":[],"mappings":"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"}
@@ -70,4 +70,6 @@ export { createSessionHandler } from './session.js';
70
70
  export { createSettingsHandler } from './settings.js';
71
71
  // ── Workspace ────────────────────────────────────────────────────────────────
72
72
  export { createWorkspaceHandler } from './workspace.js';
73
+ // ── Billing ──────────────────────────────────────────────────────────────────
74
+ export { createBillingHandler } from './billing.js';
73
75
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/server/handlers/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,gFAAgF;AAChF,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAA;AAG3D,gFAAgF;AAChF,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAA;AAG7C,+EAA+E;AAC/E,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AAoCnD,OAAO,EACL,iBAAiB,EACjB,wBAAwB,EACxB,mBAAmB,EACnB,0BAA0B,EAC1B,YAAY,EACZ,UAAU,EACV,cAAc,EACd,mBAAmB,EACnB,aAAa,EACb,kBAAkB,EAClB,YAAY,EACZ,SAAS,EACT,QAAQ,EACR,WAAW,EACX,UAAU,EACV,WAAW,EACX,mBAAmB,EACnB,aAAa,EACb,WAAW,EACX,sBAAsB,GACvB,MAAM,iBAAiB,CAAA;AAExB,gFAAgF;AAChF,OAAO,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAA;AAE/D,gFAAgF;AAChF,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAA;AAG3D,gFAAgF;AAChF,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAA;AAGrD,gFAAgF;AAChF,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAGjD,gFAAgF;AAChF,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAGjD,gFAAgF;AAChF,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAA;AAGnD,gFAAgF;AAChF,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAE/C,+EAA+E;AAC/E,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAA;AAGnD,gFAAgF;AAChF,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAGjD,gFAAgF;AAChF,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAG/C,gFAAgF;AAChF,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAA;AAGnD,gFAAgF;AAChF,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAA;AAQnD,gFAAgF;AAChF,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAG/C,gFAAgF;AAChF,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAA;AAGrD,gFAAgF;AAChF,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAEjD,gFAAgF;AAChF,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAA;AAGnD,gFAAgF;AAChF,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAA;AASrD,gFAAgF;AAChF,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/server/handlers/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AAEH,gFAAgF;AAChF,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAA;AAG3D,gFAAgF;AAChF,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAA;AAG7C,+EAA+E;AAC/E,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AAoCnD,OAAO,EACL,iBAAiB,EACjB,wBAAwB,EACxB,mBAAmB,EACnB,0BAA0B,EAC1B,YAAY,EACZ,UAAU,EACV,cAAc,EACd,mBAAmB,EACnB,aAAa,EACb,kBAAkB,EAClB,YAAY,EACZ,SAAS,EACT,QAAQ,EACR,WAAW,EACX,UAAU,EACV,WAAW,EACX,mBAAmB,EACnB,aAAa,EACb,WAAW,EACX,sBAAsB,GACvB,MAAM,iBAAiB,CAAA;AAExB,gFAAgF;AAChF,OAAO,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAA;AAE/D,gFAAgF;AAChF,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAA;AAG3D,gFAAgF;AAChF,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAA;AAGrD,gFAAgF;AAChF,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAGjD,gFAAgF;AAChF,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAGjD,gFAAgF;AAChF,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAA;AAGnD,gFAAgF;AAChF,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAE/C,+EAA+E;AAC/E,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAA;AAGnD,gFAAgF;AAChF,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAGjD,gFAAgF;AAChF,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAG/C,gFAAgF;AAChF,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAA;AAGnD,gFAAgF;AAChF,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAA;AAQnD,gFAAgF;AAChF,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAA;AAG/C,gFAAgF;AAChF,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAA;AAGrD,gFAAgF;AAChF,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAEjD,gFAAgF;AAChF,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAA;AAGnD,gFAAgF;AAChF,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAA;AASrD,gFAAgF;AAChF,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAA;AAGvD,gFAAgF;AAChF,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@soulcraft/sdk",
3
- "version": "3.3.10",
3
+ "version": "3.3.11",
4
4
  "description": "The unified Soulcraft platform SDK — data, auth, AI, billing, and notifications",
5
5
  "type": "module",
6
6
  "publishConfig": {