codebuff 1.0.244 → 1.0.246

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 (158) hide show
  1. package/dist/code-map/tsconfig.tsbuildinfo +1 -1
  2. package/dist/common/actions.d.ts +86 -104
  3. package/dist/common/actions.js +0 -1
  4. package/dist/common/actions.js.map +1 -1
  5. package/dist/common/bigquery/client.js +29 -10
  6. package/dist/common/bigquery/client.js.map +1 -1
  7. package/dist/common/constants.d.ts +13 -32
  8. package/dist/common/constants.js +23 -72
  9. package/dist/common/constants.js.map +1 -1
  10. package/dist/common/env.mjs +1 -0
  11. package/dist/common/env.mjs.map +1 -1
  12. package/dist/common/types/usage.d.ts +4 -7
  13. package/dist/common/types/usage.js +0 -1
  14. package/dist/common/types/usage.js.map +1 -1
  15. package/dist/common/util/currency.d.ts +14 -0
  16. package/dist/common/util/currency.js +23 -0
  17. package/dist/common/util/currency.js.map +1 -0
  18. package/dist/common/websockets/websocket-schema.d.ts +172 -202
  19. package/package.json +4 -2
  20. package/dist/background-process-manager.d.ts +0 -50
  21. package/dist/background-process-manager.js +0 -359
  22. package/dist/background-process-manager.js.map +0 -1
  23. package/dist/browser-runner.d.ts +0 -35
  24. package/dist/browser-runner.js +0 -680
  25. package/dist/browser-runner.js.map +0 -1
  26. package/dist/chat-storage.d.ts +0 -2
  27. package/dist/chat-storage.js +0 -93
  28. package/dist/chat-storage.js.map +0 -1
  29. package/dist/checkpoints/checkpoint-manager.d.ts +0 -94
  30. package/dist/checkpoints/checkpoint-manager.js +0 -280
  31. package/dist/checkpoints/checkpoint-manager.js.map +0 -1
  32. package/dist/checkpoints/file-manager.d.ts +0 -72
  33. package/dist/checkpoints/file-manager.js +0 -311
  34. package/dist/checkpoints/file-manager.js.map +0 -1
  35. package/dist/cli-handlers/api-key.d.ts +0 -25
  36. package/dist/cli-handlers/api-key.js +0 -66
  37. package/dist/cli-handlers/api-key.js.map +0 -1
  38. package/dist/cli-handlers/checkpoint.d.ts +0 -18
  39. package/dist/cli-handlers/checkpoint.js +0 -195
  40. package/dist/cli-handlers/checkpoint.js.map +0 -1
  41. package/dist/cli-handlers/diff.d.ts +0 -2
  42. package/dist/cli-handlers/diff.js +0 -31
  43. package/dist/cli-handlers/diff.js.map +0 -1
  44. package/dist/cli-handlers/easter-egg.d.ts +0 -1
  45. package/dist/cli-handlers/easter-egg.js +0 -126
  46. package/dist/cli-handlers/easter-egg.js.map +0 -1
  47. package/dist/cli-handlers/inititalization-flow.d.ts +0 -1
  48. package/dist/cli-handlers/inititalization-flow.js +0 -24
  49. package/dist/cli-handlers/inititalization-flow.js.map +0 -1
  50. package/dist/cli.d.ts +0 -44
  51. package/dist/cli.js +0 -463
  52. package/dist/cli.js.map +0 -1
  53. package/dist/client.d.ts +0 -149
  54. package/dist/client.js +0 -820
  55. package/dist/client.js.map +0 -1
  56. package/dist/common/billing/auto-topup.d.ts +0 -8
  57. package/dist/common/billing/auto-topup.js +0 -192
  58. package/dist/common/billing/auto-topup.js.map +0 -1
  59. package/dist/common/billing/balance-calculator.d.ts +0 -57
  60. package/dist/common/billing/balance-calculator.js +0 -218
  61. package/dist/common/billing/balance-calculator.js.map +0 -1
  62. package/dist/common/billing/conversion.d.ts +0 -9
  63. package/dist/common/billing/conversion.js +0 -20
  64. package/dist/common/billing/conversion.js.map +0 -1
  65. package/dist/common/billing/credit-conversion.d.ts +0 -24
  66. package/dist/common/billing/credit-conversion.js +0 -48
  67. package/dist/common/billing/credit-conversion.js.map +0 -1
  68. package/dist/common/billing/grant-credits.d.ts +0 -43
  69. package/dist/common/billing/grant-credits.js +0 -266
  70. package/dist/common/billing/grant-credits.js.map +0 -1
  71. package/dist/common/billing/plans.d.ts +0 -13
  72. package/dist/common/billing/plans.js +0 -44
  73. package/dist/common/billing/plans.js.map +0 -1
  74. package/dist/common/json-config/__tests__/__snapshots__/stringify-schema.test.js.snap +0 -66
  75. package/dist/common/types/plan.d.ts +0 -24
  76. package/dist/common/types/plan.js +0 -3
  77. package/dist/common/types/plan.js.map +0 -1
  78. package/dist/common/util/server/referral.d.ts +0 -14
  79. package/dist/common/util/server/referral.js +0 -85
  80. package/dist/common/util/server/referral.js.map +0 -1
  81. package/dist/config.d.ts +0 -4
  82. package/dist/config.js +0 -12
  83. package/dist/config.js.map +0 -1
  84. package/dist/create-template-project.d.ts +0 -1
  85. package/dist/create-template-project.js +0 -107
  86. package/dist/create-template-project.js.map +0 -1
  87. package/dist/credentials.d.ts +0 -4
  88. package/dist/credentials.js +0 -38
  89. package/dist/credentials.js.map +0 -1
  90. package/dist/dev-process-manager.d.ts +0 -10
  91. package/dist/dev-process-manager.js +0 -54
  92. package/dist/dev-process-manager.js.map +0 -1
  93. package/dist/fingerprint.d.ts +0 -1
  94. package/dist/fingerprint.js +0 -48
  95. package/dist/fingerprint.js.map +0 -1
  96. package/dist/index.d.ts +0 -2
  97. package/dist/index.js +0 -117
  98. package/dist/index.js.map +0 -1
  99. package/dist/menu.d.ts +0 -3
  100. package/dist/menu.js +0 -126
  101. package/dist/menu.js.map +0 -1
  102. package/dist/project-files.d.ts +0 -114
  103. package/dist/project-files.js +0 -513
  104. package/dist/project-files.js.map +0 -1
  105. package/dist/startup-process-handler.d.ts +0 -2
  106. package/dist/startup-process-handler.js +0 -21
  107. package/dist/startup-process-handler.js.map +0 -1
  108. package/dist/tool-handlers.d.ts +0 -28
  109. package/dist/tool-handlers.js +0 -240
  110. package/dist/tool-handlers.js.map +0 -1
  111. package/dist/types.d.ts +0 -9
  112. package/dist/types.js +0 -3
  113. package/dist/types.js.map +0 -1
  114. package/dist/update-codebuff.d.ts +0 -1
  115. package/dist/update-codebuff.js +0 -160
  116. package/dist/update-codebuff.js.map +0 -1
  117. package/dist/utils/__tests__/background-process-manager.test.d.ts +0 -1
  118. package/dist/utils/__tests__/background-process-manager.test.js +0 -289
  119. package/dist/utils/__tests__/background-process-manager.test.js.map +0 -1
  120. package/dist/utils/__tests__/tool-renderers.test.d.ts +0 -1
  121. package/dist/utils/__tests__/tool-renderers.test.js +0 -51
  122. package/dist/utils/__tests__/tool-renderers.test.js.map +0 -1
  123. package/dist/utils/__tests__/xml-stream-parser.test.d.ts +0 -1
  124. package/dist/utils/__tests__/xml-stream-parser.test.js +0 -229
  125. package/dist/utils/__tests__/xml-stream-parser.test.js.map +0 -1
  126. package/dist/utils/analytics.d.ts +0 -6
  127. package/dist/utils/analytics.js +0 -53
  128. package/dist/utils/analytics.js.map +0 -1
  129. package/dist/utils/detect-shell.d.ts +0 -1
  130. package/dist/utils/detect-shell.js +0 -60
  131. package/dist/utils/detect-shell.js.map +0 -1
  132. package/dist/utils/logger.d.ts +0 -21
  133. package/dist/utils/logger.js +0 -80
  134. package/dist/utils/logger.js.map +0 -1
  135. package/dist/utils/spinner.d.ts +0 -11
  136. package/dist/utils/spinner.js +0 -87
  137. package/dist/utils/spinner.js.map +0 -1
  138. package/dist/utils/system-info.d.ts +0 -8
  139. package/dist/utils/system-info.js +0 -22
  140. package/dist/utils/system-info.js.map +0 -1
  141. package/dist/utils/terminal.d.ts +0 -38
  142. package/dist/utils/terminal.js +0 -460
  143. package/dist/utils/terminal.js.map +0 -1
  144. package/dist/utils/tool-renderers.d.ts +0 -16
  145. package/dist/utils/tool-renderers.js +0 -145
  146. package/dist/utils/tool-renderers.js.map +0 -1
  147. package/dist/utils/xml-stream-parser.d.ts +0 -9
  148. package/dist/utils/xml-stream-parser.js +0 -128
  149. package/dist/utils/xml-stream-parser.js.map +0 -1
  150. package/dist/web-scraper.d.ts +0 -3
  151. package/dist/web-scraper.js +0 -57
  152. package/dist/web-scraper.js.map +0 -1
  153. package/dist/workers/checkpoint-worker.d.ts +0 -1
  154. package/dist/workers/checkpoint-worker.js +0 -48
  155. package/dist/workers/checkpoint-worker.js.map +0 -1
  156. package/dist/workers/project-context.d.ts +0 -1
  157. package/dist/workers/project-context.js +0 -17
  158. package/dist/workers/project-context.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
@@ -1,8 +0,0 @@
1
- import type Stripe from 'stripe';
2
- interface AutoTopupValidationResult {
3
- blockedReason: string | null;
4
- validPaymentMethod: Stripe.PaymentMethod | null;
5
- }
6
- export declare function validateAutoTopupStatus(userId: string): Promise<AutoTopupValidationResult>;
7
- export declare function checkAndTriggerAutoTopup(userId: string): Promise<void>;
8
- export {};
@@ -1,192 +0,0 @@
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 (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- var __importDefault = (this && this.__importDefault) || function (mod) {
26
- return (mod && mod.__esModule) ? mod : { "default": mod };
27
- };
28
- Object.defineProperty(exports, "__esModule", { value: true });
29
- exports.validateAutoTopupStatus = validateAutoTopupStatus;
30
- exports.checkAndTriggerAutoTopup = checkAndTriggerAutoTopup;
31
- const db_1 = __importDefault(require("../db"));
32
- const schema = __importStar(require("../db/schema"));
33
- const drizzle_orm_1 = require("drizzle-orm");
34
- const stripe_1 = require("../util/stripe");
35
- const logger_1 = require("../util/logger");
36
- const grant_credits_1 = require("./grant-credits");
37
- const balance_calculator_1 = require("./balance-calculator");
38
- const conversion_1 = require("./conversion");
39
- const string_1 = require("../util/string");
40
- const env_mjs_1 = require("src/env.mjs");
41
- const MINIMUM_PURCHASE_CREDITS = 500;
42
- class AutoTopupValidationError extends Error {
43
- constructor(message) {
44
- super(message);
45
- this.name = 'AutoTopupValidationError';
46
- }
47
- }
48
- class AutoTopupPaymentError extends Error {
49
- constructor(message) {
50
- super(message);
51
- this.name = 'AutoTopupPaymentError';
52
- }
53
- }
54
- async function validateAutoTopupStatus(userId) {
55
- const logContext = { userId };
56
- try {
57
- const user = await db_1.default.query.user.findFirst({
58
- where: (0, drizzle_orm_1.eq)(schema.user.id, userId),
59
- columns: {
60
- stripe_customer_id: true,
61
- },
62
- });
63
- if (!user?.stripe_customer_id) {
64
- throw new AutoTopupValidationError(`You don't have a valid account with us. Please log in at ${env_mjs_1.env.NEXT_PUBLIC_APP_URL}/login`);
65
- }
66
- const paymentMethods = await stripe_1.stripeServer.paymentMethods.list({
67
- customer: user.stripe_customer_id,
68
- type: 'card',
69
- });
70
- const validPaymentMethod = paymentMethods.data.find((pm) => pm.card?.exp_year &&
71
- pm.card.exp_month &&
72
- new Date(pm.card.exp_year, pm.card.exp_month - 1) > new Date());
73
- if (!validPaymentMethod) {
74
- throw new AutoTopupValidationError('You need a valid payment method to enable auto top-up. Try buying some credits!');
75
- }
76
- return {
77
- blockedReason: null,
78
- validPaymentMethod,
79
- };
80
- }
81
- catch (error) {
82
- const blockedReason = error instanceof AutoTopupValidationError
83
- ? error.message
84
- : 'Unable to verify payment method status.';
85
- await disableAutoTopup(userId, blockedReason);
86
- return {
87
- blockedReason,
88
- validPaymentMethod: null,
89
- };
90
- }
91
- }
92
- async function disableAutoTopup(userId, reason) {
93
- await db_1.default
94
- .update(schema.user)
95
- .set({ auto_topup_enabled: false })
96
- .where((0, drizzle_orm_1.eq)(schema.user.id, userId));
97
- logger_1.logger.info({ userId, reason }, 'Disabled auto top-up');
98
- }
99
- async function processAutoTopupPayment(userId, amountToTopUp, stripeCustomerId, paymentMethod) {
100
- const logContext = { userId, amountToTopUp };
101
- const operationId = `auto-${userId}-${(0, string_1.generateCompactId)()}`;
102
- const centsPerCredit = await (0, conversion_1.getUserCostPerCredit)(userId);
103
- const amountInCents = (0, conversion_1.convertCreditsToUsdCents)(amountToTopUp, centsPerCredit);
104
- if (amountInCents <= 0) {
105
- throw new AutoTopupPaymentError('Invalid payment amount calculated');
106
- }
107
- const paymentIntent = await stripe_1.stripeServer.paymentIntents.create({
108
- amount: amountInCents,
109
- currency: 'usd',
110
- customer: stripeCustomerId,
111
- payment_method: paymentMethod.id,
112
- off_session: true,
113
- confirm: true,
114
- description: `Auto top-up: ${amountToTopUp.toLocaleString()} credits`,
115
- metadata: {
116
- userId,
117
- credits: amountToTopUp.toString(),
118
- operationId,
119
- grantType: 'purchase',
120
- type: 'auto-topup',
121
- },
122
- });
123
- if (paymentIntent.status !== 'succeeded') {
124
- throw new AutoTopupPaymentError('Payment failed or requires action');
125
- }
126
- await (0, grant_credits_1.processAndGrantCredit)(userId, amountToTopUp, 'purchase', `Auto top-up of ${amountToTopUp.toLocaleString()} credits`, null, operationId);
127
- logger_1.logger.info({
128
- ...logContext,
129
- operationId,
130
- paymentIntentId: paymentIntent.id,
131
- }, 'Auto top-up payment succeeded and credits granted');
132
- }
133
- async function checkAndTriggerAutoTopup(userId) {
134
- const logContext = { userId };
135
- try {
136
- const user = await db_1.default.query.user.findFirst({
137
- where: (0, drizzle_orm_1.eq)(schema.user.id, userId),
138
- columns: {
139
- id: true,
140
- stripe_customer_id: true,
141
- auto_topup_enabled: true,
142
- auto_topup_threshold: true,
143
- auto_topup_amount: true,
144
- next_quota_reset: true,
145
- },
146
- });
147
- if (!user ||
148
- !user.auto_topup_enabled ||
149
- user.auto_topup_threshold === null ||
150
- user.auto_topup_amount === null ||
151
- !user.stripe_customer_id) {
152
- return;
153
- }
154
- const { blockedReason, validPaymentMethod } = await validateAutoTopupStatus(userId);
155
- if (blockedReason || !validPaymentMethod) {
156
- throw new Error(blockedReason || 'Auto top-up is not available.');
157
- }
158
- const { balance } = await (0, balance_calculator_1.calculateUsageAndBalance)(userId, user.next_quota_reset ?? new Date(0));
159
- if (balance.totalRemaining >= user.auto_topup_threshold && balance.totalDebt === 0) {
160
- return;
161
- }
162
- const amountToTopUp = balance.totalDebt > 0
163
- ? Math.max(user.auto_topup_amount, balance.totalDebt)
164
- : user.auto_topup_amount;
165
- if (amountToTopUp < MINIMUM_PURCHASE_CREDITS) {
166
- logger_1.logger.warn(logContext, `Auto-top-up triggered but amount ${amountToTopUp} is less than minimum ${MINIMUM_PURCHASE_CREDITS}. Skipping top-up. Check user settings.`);
167
- return;
168
- }
169
- logger_1.logger.info({
170
- ...logContext,
171
- currentBalance: balance.totalRemaining,
172
- currentDebt: balance.totalDebt,
173
- threshold: user.auto_topup_threshold,
174
- amountToTopUp,
175
- }, `Auto-top-up triggered for user ${userId}. Attempting to purchase ${amountToTopUp} credits.`);
176
- try {
177
- await processAutoTopupPayment(userId, amountToTopUp, user.stripe_customer_id, validPaymentMethod);
178
- }
179
- catch (error) {
180
- const message = error instanceof AutoTopupPaymentError
181
- ? error.message
182
- : 'Payment failed. Please check your payment method and re-enable auto top-up.';
183
- await disableAutoTopup(userId, message);
184
- throw new Error(message);
185
- }
186
- }
187
- catch (error) {
188
- logger_1.logger.error({ ...logContext, error }, `Error during auto-top-up check for user ${userId}`);
189
- throw error;
190
- }
191
- }
192
- //# sourceMappingURL=auto-topup.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"auto-topup.js","sourceRoot":"","sources":["../../src/billing/auto-topup.ts"],"names":[],"mappings":"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"}
@@ -1,57 +0,0 @@
1
- import db from '../db';
2
- import { GrantType } from '../db/schema';
3
- export interface CreditBalance {
4
- totalRemaining: number;
5
- totalDebt: number;
6
- netBalance: number;
7
- breakdown: Partial<Record<GrantType, number>>;
8
- principals: Partial<Record<GrantType, number>>;
9
- }
10
- export interface CreditUsageAndBalance {
11
- usageThisCycle: number;
12
- balance: CreditBalance;
13
- }
14
- export interface CreditConsumptionResult {
15
- consumed: number;
16
- fromPurchased: number;
17
- }
18
- type DbConn = Pick<typeof db, 'select' | 'update'>;
19
- /**
20
- * Gets active grants for a user, ordered by expiration (soonest first), then priority, and creation date.
21
- * Added optional `conn` param so callers inside a transaction can supply their TX object.
22
- */
23
- export declare function getOrderedActiveGrants(userId: string, now: Date, conn?: DbConn): Promise<{
24
- created_at: Date;
25
- type: import("../types/grant").GrantType;
26
- expires_at: Date | null;
27
- operation_id: string;
28
- user_id: string;
29
- principal: number;
30
- balance: number;
31
- description: string | null;
32
- priority: number;
33
- }[]>;
34
- /**
35
- * Calculates both the current balance and usage in this cycle in a single query.
36
- * This is more efficient than calculating them separately.
37
- */
38
- export declare function calculateUsageAndBalance(userId: string, quotaResetDate: Date, now?: Date): Promise<CreditUsageAndBalance>;
39
- /**
40
- * Updates the remaining amounts in credit grants after consumption.
41
- * Follows priority order strictly - higher priority grants (lower number) are consumed first.
42
- * Returns details about credit consumption including how many came from purchased credits.
43
- *
44
- * Uses SERIALIZABLE isolation to prevent concurrent modifications that could lead to
45
- * incorrect credit usage (e.g., "double spending" credits).
46
- *
47
- * @param userId The ID of the user
48
- * @param creditsToConsume Number of credits being consumed
49
- * @returns Promise resolving to number of credits consumed
50
- */
51
- export declare function consumeCredits(userId: string, creditsToConsume: number): Promise<CreditConsumptionResult>;
52
- /**
53
- * Calculate the total credits used during the current billing cycle for a user
54
- * by summing the difference between initial and remaining amounts for all relevant grants.
55
- */
56
- export declare function calculateUsageThisCycle(userId: string, quotaResetDate: Date): Promise<number>;
57
- export {};
@@ -1,218 +0,0 @@
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 (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
25
- var __importDefault = (this && this.__importDefault) || function (mod) {
26
- return (mod && mod.__esModule) ? mod : { "default": mod };
27
- };
28
- Object.defineProperty(exports, "__esModule", { value: true });
29
- exports.getOrderedActiveGrants = getOrderedActiveGrants;
30
- exports.calculateUsageAndBalance = calculateUsageAndBalance;
31
- exports.consumeCredits = consumeCredits;
32
- exports.calculateUsageThisCycle = calculateUsageThisCycle;
33
- const db_1 = __importDefault(require("../db"));
34
- const schema = __importStar(require("../db/schema"));
35
- const drizzle_orm_1 = require("drizzle-orm");
36
- const logger_1 = require("../util/logger");
37
- const transaction_1 = require("../db/transaction");
38
- /**
39
- * Gets active grants for a user, ordered by expiration (soonest first), then priority, and creation date.
40
- * Added optional `conn` param so callers inside a transaction can supply their TX object.
41
- */
42
- async function getOrderedActiveGrants(userId, now, conn = db_1.default // use DbConn instead of typeof db
43
- ) {
44
- return conn
45
- .select()
46
- .from(schema.creditLedger)
47
- .where((0, drizzle_orm_1.and)((0, drizzle_orm_1.eq)(schema.creditLedger.user_id, userId), (0, drizzle_orm_1.or)((0, drizzle_orm_1.isNull)(schema.creditLedger.expires_at), (0, drizzle_orm_1.gt)(schema.creditLedger.expires_at, now))))
48
- .orderBy(
49
- // Use grants based on priority, then expiration date, then creation date
50
- (0, drizzle_orm_1.asc)(schema.creditLedger.priority), (0, drizzle_orm_1.asc)(schema.creditLedger.expires_at), (0, drizzle_orm_1.asc)(schema.creditLedger.created_at));
51
- }
52
- /**
53
- * Updates a single grant's balance and logs the change.
54
- */
55
- async function updateGrantBalance(userId, grant, consumed, newBalance, tx) {
56
- await tx
57
- .update(schema.creditLedger)
58
- .set({ balance: newBalance })
59
- .where((0, drizzle_orm_1.eq)(schema.creditLedger.operation_id, grant.operation_id));
60
- logger_1.logger.debug({
61
- userId,
62
- grantId: grant.operation_id,
63
- grantType: grant.type,
64
- consumed,
65
- remaining: newBalance,
66
- expiresAt: grant.expires_at,
67
- }, 'Updated grant remaining amount after consumption');
68
- }
69
- /**
70
- * Consumes credits from a list of ordered grants.
71
- */
72
- async function consumeFromOrderedGrants(userId, creditsToConsume, grants, tx) {
73
- let remainingToConsume = creditsToConsume;
74
- let consumed = 0;
75
- let fromPurchased = 0;
76
- // First pass: try to repay any debt
77
- for (const grant of grants) {
78
- if (grant.balance < 0 && remainingToConsume > 0) {
79
- const debtAmount = Math.abs(grant.balance);
80
- const repayAmount = Math.min(debtAmount, remainingToConsume);
81
- const newBalance = grant.balance + repayAmount;
82
- remainingToConsume -= repayAmount;
83
- consumed += repayAmount;
84
- await updateGrantBalance(userId, grant, -repayAmount, newBalance, tx);
85
- logger_1.logger.debug({ userId, grantId: grant.operation_id, repayAmount, newBalance }, 'Repaid debt in grant');
86
- }
87
- }
88
- // Second pass: consume from positive balances
89
- for (const grant of grants) {
90
- if (remainingToConsume <= 0)
91
- break;
92
- if (grant.balance <= 0)
93
- continue;
94
- const consumeFromThisGrant = Math.min(remainingToConsume, grant.balance);
95
- const newBalance = grant.balance - consumeFromThisGrant;
96
- remainingToConsume -= consumeFromThisGrant;
97
- consumed += consumeFromThisGrant;
98
- // Track consumption from purchased credits
99
- if (grant.type === 'purchase') {
100
- fromPurchased += consumeFromThisGrant;
101
- }
102
- await updateGrantBalance(userId, grant, consumeFromThisGrant, newBalance, tx);
103
- }
104
- // If we still have remaining to consume and no grants left, create debt in the last grant
105
- if (remainingToConsume > 0 && grants.length > 0) {
106
- const lastGrant = grants[grants.length - 1];
107
- if (lastGrant.balance <= 0) {
108
- const newBalance = lastGrant.balance - remainingToConsume;
109
- await updateGrantBalance(userId, lastGrant, remainingToConsume, newBalance, tx);
110
- consumed += remainingToConsume;
111
- logger_1.logger.warn({
112
- userId,
113
- grantId: lastGrant.operation_id,
114
- requested: remainingToConsume,
115
- consumed: remainingToConsume,
116
- newDebt: Math.abs(newBalance),
117
- }, 'Created new debt in grant');
118
- }
119
- }
120
- return { consumed, fromPurchased };
121
- }
122
- /**
123
- * Calculates both the current balance and usage in this cycle in a single query.
124
- * This is more efficient than calculating them separately.
125
- */
126
- async function calculateUsageAndBalance(userId, quotaResetDate, now = new Date()) {
127
- // Get all relevant grants in one query
128
- const grants = await getOrderedActiveGrants(userId, now);
129
- // Initialize balance structure
130
- const balance = {
131
- totalRemaining: 0,
132
- totalDebt: 0,
133
- netBalance: 0,
134
- breakdown: {},
135
- principals: {},
136
- };
137
- // Calculate both metrics in one pass
138
- let usageThisCycle = 0;
139
- let totalPositiveBalance = 0;
140
- let totalDebt = 0;
141
- // First pass: calculate initial totals and usage
142
- for (const grant of grants) {
143
- const grantType = grant.type;
144
- // Calculate usage if grant was active in this cycle
145
- if (grant.created_at > quotaResetDate ||
146
- !grant.expires_at ||
147
- grant.expires_at > quotaResetDate) {
148
- usageThisCycle += grant.principal - grant.balance;
149
- }
150
- // Add to balance if grant is currently active
151
- if (!grant.expires_at || grant.expires_at > now) {
152
- if (grant.balance > 0) {
153
- totalPositiveBalance += grant.balance;
154
- balance.breakdown[grantType] =
155
- (balance.breakdown[grantType] || 0) + grant.balance;
156
- balance.principals[grantType] =
157
- (balance.principals[grantType] || 0) + grant.principal;
158
- }
159
- else if (grant.balance < 0) {
160
- totalDebt += Math.abs(grant.balance);
161
- }
162
- }
163
- }
164
- // Perform in-memory settlement if there's both debt and positive balance
165
- if (totalDebt > 0 && totalPositiveBalance > 0) {
166
- const settlementAmount = Math.min(totalDebt, totalPositiveBalance);
167
- logger_1.logger.debug({ userId, totalDebt, totalPositiveBalance, settlementAmount }, 'Performing in-memory settlement');
168
- // After settlement:
169
- totalPositiveBalance -= settlementAmount;
170
- totalDebt -= settlementAmount;
171
- }
172
- // Set final balance values after settlement
173
- balance.totalRemaining = totalPositiveBalance;
174
- balance.totalDebt = totalDebt;
175
- balance.netBalance = totalPositiveBalance - totalDebt;
176
- logger_1.logger.debug({ userId, balance, usageThisCycle, grantsCount: grants.length }, 'Calculated usage and settled balance');
177
- return { usageThisCycle, balance };
178
- }
179
- /**
180
- * Updates the remaining amounts in credit grants after consumption.
181
- * Follows priority order strictly - higher priority grants (lower number) are consumed first.
182
- * Returns details about credit consumption including how many came from purchased credits.
183
- *
184
- * Uses SERIALIZABLE isolation to prevent concurrent modifications that could lead to
185
- * incorrect credit usage (e.g., "double spending" credits).
186
- *
187
- * @param userId The ID of the user
188
- * @param creditsToConsume Number of credits being consumed
189
- * @returns Promise resolving to number of credits consumed
190
- */
191
- async function consumeCredits(userId, creditsToConsume) {
192
- return await (0, transaction_1.withSerializableTransaction)(async (tx) => {
193
- const now = new Date();
194
- const activeGrants = await getOrderedActiveGrants(userId, now, tx);
195
- if (activeGrants.length === 0) {
196
- logger_1.logger.error({ userId, creditsToConsume }, 'No active grants found to consume credits from');
197
- throw new Error('No active grants found');
198
- }
199
- const result = await consumeFromOrderedGrants(userId, creditsToConsume, activeGrants, tx);
200
- return result;
201
- }, { userId, creditsToConsume });
202
- }
203
- /**
204
- * Calculate the total credits used during the current billing cycle for a user
205
- * by summing the difference between initial and remaining amounts for all relevant grants.
206
- */
207
- async function calculateUsageThisCycle(userId, quotaResetDate) {
208
- const usageResult = await db_1.default
209
- .select({
210
- totalUsed: (0, drizzle_orm_1.sql) `COALESCE(SUM(${schema.creditLedger.principal} - ${schema.creditLedger.balance}), 0)`,
211
- })
212
- .from(schema.creditLedger)
213
- .where((0, drizzle_orm_1.and)((0, drizzle_orm_1.eq)(schema.creditLedger.user_id, userId),
214
- // Grant was created during this cycle OR expires after this cycle starts (including never expires)
215
- (0, drizzle_orm_1.or)((0, drizzle_orm_1.gt)(schema.creditLedger.created_at, quotaResetDate), (0, drizzle_orm_1.and)((0, drizzle_orm_1.or)((0, drizzle_orm_1.isNull)(schema.creditLedger.expires_at), (0, drizzle_orm_1.gt)(schema.creditLedger.expires_at, quotaResetDate))))));
216
- return usageResult[0].totalUsed;
217
- }
218
- //# sourceMappingURL=balance-calculator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"balance-calculator.js","sourceRoot":"","sources":["../../src/billing/balance-calculator.ts"],"names":[],"mappings":"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"}
@@ -1,9 +0,0 @@
1
- /**
2
- * Determines the cost of one internal credit in USD cents for a given user.
3
- * TODO: Enhance this function to fetch user's plan and apply plan-specific rates.
4
- *
5
- * @param userId - The ID of the user (currently unused, for future enhancement).
6
- * @returns The cost of one internal credit in cents.
7
- */
8
- export declare function getUserCostPerCredit(userId: string | undefined): Promise<number>;
9
- export { convertCreditsToUsdCents, convertStripeGrantAmountToCredits } from './credit-conversion';
@@ -1,20 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.convertStripeGrantAmountToCredits = exports.convertCreditsToUsdCents = void 0;
4
- exports.getUserCostPerCredit = getUserCostPerCredit;
5
- /**
6
- * Determines the cost of one internal credit in USD cents for a given user.
7
- * TODO: Enhance this function to fetch user's plan and apply plan-specific rates.
8
- *
9
- * @param userId - The ID of the user (currently unused, for future enhancement).
10
- * @returns The cost of one internal credit in cents.
11
- */
12
- async function getUserCostPerCredit(userId) {
13
- // Placeholder: Currently 1 cent per credit for all users. Can adjust in the future based on user
14
- return 1;
15
- }
16
- // Re-export the pure conversion functions
17
- var credit_conversion_1 = require("./credit-conversion");
18
- Object.defineProperty(exports, "convertCreditsToUsdCents", { enumerable: true, get: function () { return credit_conversion_1.convertCreditsToUsdCents; } });
19
- Object.defineProperty(exports, "convertStripeGrantAmountToCredits", { enumerable: true, get: function () { return credit_conversion_1.convertStripeGrantAmountToCredits; } });
20
- //# sourceMappingURL=conversion.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"conversion.js","sourceRoot":"","sources":["../../src/billing/conversion.ts"],"names":[],"mappings":";;;AAUA,oDAKC;AAZD;;;;;;GAMG;AACI,KAAK,UAAU,oBAAoB,CACxC,MAA0B;IAE1B,iGAAiG;IACjG,OAAO,CAAC,CAAA;AACV,CAAC;AAED,0CAA0C;AAC1C,yDAAiG;AAAxF,6HAAA,wBAAwB,OAAA;AAAE,sIAAA,iCAAiC,OAAA"}
@@ -1,24 +0,0 @@
1
- /**
2
- * Gets the cost per credit for a user. Currently hardcoded to 1 cent per credit,
3
- * but could be customized per user in the future.
4
- */
5
- export declare function getUserCostPerCredit(userId: string | undefined): Promise<number>;
6
- /**
7
- * Converts an internal credit system value to the equivalent monetary amount in USD cents,
8
- * based on the user's cost per credit.
9
- * Uses Math.ceil to ensure enough monetary value is calculated if rounding occurs.
10
- *
11
- * @param credits - The amount in internal credits.
12
- * @param centsPerCredit - The user's effective cost per internal credit (in cents).
13
- * @returns The equivalent amount in USD cents.
14
- */
15
- export declare function convertCreditsToUsdCents(credits: number, centsPerCredit: number): number;
16
- /**
17
- * Converts a Stripe grant amount (in the smallest currency unit, e.g., cents for USD)
18
- * to the application's internal credit system units, based on the user's cost per credit.
19
- *
20
- * @param amountInSmallestUnit - The grant amount from Stripe, typically in cents.
21
- * @param centsPerCredit - The user's effective cost per internal credit (in cents).
22
- * @returns The equivalent amount in application credits. Uses Math.round for conversion.
23
- */
24
- export declare function convertStripeGrantAmountToCredits(amountInSmallestUnit: number, centsPerCredit: number): number;