@nehorai/credits 1.0.2 → 1.2.0
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/dist/adapters/generic.d.ts.map +1 -1
- package/dist/adapters/generic.js +9 -5
- package/dist/adapters/generic.js.map +1 -1
- package/dist/config/costs.d.ts +13 -18
- package/dist/config/costs.d.ts.map +1 -1
- package/dist/config/costs.js +17 -32
- package/dist/config/costs.js.map +1 -1
- package/dist/config/index.d.ts +26 -7
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/index.js +63 -7
- package/dist/config/index.js.map +1 -1
- package/dist/config/provider.d.ts +12 -0
- package/dist/config/provider.d.ts.map +1 -0
- package/dist/config/provider.js +14 -0
- package/dist/config/provider.js.map +1 -0
- package/dist/core/index.d.ts +1 -1
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +1 -1
- package/dist/core/index.js.map +1 -1
- package/dist/core/operations.d.ts.map +1 -1
- package/dist/core/operations.js +3 -2
- package/dist/core/operations.js.map +1 -1
- package/dist/core/types.d.ts +0 -11
- package/dist/core/types.d.ts.map +1 -1
- package/dist/core/types.js +0 -11
- package/dist/core/types.js.map +1 -1
- package/dist/index.d.ts +3 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -2
- package/dist/index.js.map +1 -1
- package/dist/notifications/index.d.ts +1 -1
- package/dist/notifications/index.d.ts.map +1 -1
- package/dist/notifications/index.js +3 -11
- package/dist/notifications/index.js.map +1 -1
- package/dist/service/credits-service.d.ts.map +1 -1
- package/dist/service/credits-service.js +7 -11
- package/dist/service/credits-service.js.map +1 -1
- package/package.json +10 -11
- package/LICENSE +0 -21
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generic.d.ts","sourceRoot":"","sources":["../../src/adapters/generic.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAgB,cAAc,EAAE,oBAAoB,EAAuB,MAAM,YAAY,CAAC;AAgB1G;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,oBAAoB,GAAG,cAAc,
|
|
1
|
+
{"version":3,"file":"generic.d.ts","sourceRoot":"","sources":["../../src/adapters/generic.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAgB,cAAc,EAAE,oBAAoB,EAAuB,MAAM,YAAY,CAAC;AAgB1G;;;;;;;;GAQG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,oBAAoB,GAAG,cAAc,CAqIjF"}
|
package/dist/adapters/generic.js
CHANGED
|
@@ -25,7 +25,12 @@ function generateRequestId() {
|
|
|
25
25
|
export function createGenericAdapter(config) {
|
|
26
26
|
const { repository, authProvider, deferred, operationCosts } = config;
|
|
27
27
|
function getOperationCost(operationType) {
|
|
28
|
-
|
|
28
|
+
const cost = operationCosts[operationType];
|
|
29
|
+
if (cost === undefined) {
|
|
30
|
+
throw new Error(`Unknown operation type: "${operationType}". ` +
|
|
31
|
+
`Configured types: ${Object.keys(operationCosts).join(", ")}`);
|
|
32
|
+
}
|
|
33
|
+
return cost;
|
|
29
34
|
}
|
|
30
35
|
function logUsage(params) {
|
|
31
36
|
deferred.defer(async () => {
|
|
@@ -56,11 +61,10 @@ export function createGenericAdapter(config) {
|
|
|
56
61
|
const dummyReservation = createDummyReservation(user.id, options.operationType);
|
|
57
62
|
return handler(user, data, dummyReservation);
|
|
58
63
|
}
|
|
59
|
-
// Calculate cost
|
|
60
|
-
const cost = options.customCost ?? getOperationCost(options.operationType);
|
|
61
|
-
// Reserve credits
|
|
64
|
+
// Calculate cost and reserve credits
|
|
62
65
|
let reservation;
|
|
63
66
|
try {
|
|
67
|
+
const cost = options.customCost ?? getOperationCost(options.operationType);
|
|
64
68
|
reservation = await reserveCreditsForOperation(repository, user.id, cost, options.operationType);
|
|
65
69
|
}
|
|
66
70
|
catch (error) {
|
|
@@ -85,7 +89,7 @@ export function createGenericAdapter(config) {
|
|
|
85
89
|
logUsage({
|
|
86
90
|
userId: user.id,
|
|
87
91
|
operationType: options.operationType,
|
|
88
|
-
creditsUsed:
|
|
92
|
+
creditsUsed: reservation.amount,
|
|
89
93
|
success: true,
|
|
90
94
|
resourceId: options.resourceId,
|
|
91
95
|
resourceType: options.resourceType,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generic.js","sourceRoot":"","sources":["../../src/adapters/generic.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EACL,4BAA4B,EAC5B,6BAA6B,EAC7B,0BAA0B,GAC3B,MAAM,uBAAuB,CAAC;AAE/B;;GAEG;AACH,SAAS,iBAAiB;IACxB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAC7B,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IAC/D,OAAO,OAAO,SAAS,IAAI,UAAU,EAAE,CAAC;AAC1C,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,oBAAoB,CAAC,MAA4B;IAC/D,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,QAAQ,EAAE,cAAc,EAAE,GAAG,MAAM,CAAC;IAEtE,SAAS,gBAAgB,CAAC,aAAqB;QAC7C,
|
|
1
|
+
{"version":3,"file":"generic.js","sourceRoot":"","sources":["../../src/adapters/generic.ts"],"names":[],"mappings":"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"}
|
package/dist/config/costs.d.ts
CHANGED
|
@@ -15,14 +15,6 @@ export declare function getOperationCosts(): Record<string, number>;
|
|
|
15
15
|
*/
|
|
16
16
|
export declare function getOperationCost(type: string): number;
|
|
17
17
|
export { getValidOperationTypes, isValidOperationType };
|
|
18
|
-
/**
|
|
19
|
-
* Tier configurations with monthly limits and pricing
|
|
20
|
-
*
|
|
21
|
-
* NOTE: This is kept for backward compatibility.
|
|
22
|
-
* The actual configs are loaded from configuration.
|
|
23
|
-
* Use getTierConfig() instead of accessing this directly.
|
|
24
|
-
*/
|
|
25
|
-
export declare const TIER_CONFIGS: Record<SubscriptionTier, TierConfig>;
|
|
26
18
|
/**
|
|
27
19
|
* Get tier configuration
|
|
28
20
|
* Uses the configuration system for dynamic configs
|
|
@@ -40,22 +32,25 @@ export declare function getTierConfig(tier: SubscriptionTier): TierConfig;
|
|
|
40
32
|
* @returns Monthly credit limit
|
|
41
33
|
*/
|
|
42
34
|
export declare function getMonthlyLimit(tier: SubscriptionTier): number;
|
|
43
|
-
/**
|
|
44
|
-
* Default credits for new users (free tier)
|
|
45
|
-
* Uses the configuration system
|
|
46
|
-
*/
|
|
47
|
-
export declare const DEFAULT_FREE_CREDITS = 25;
|
|
48
35
|
/**
|
|
49
36
|
* Get default free credits from configuration
|
|
50
37
|
*/
|
|
51
38
|
export declare function getDefaultFreeCredits(): number;
|
|
52
|
-
/**
|
|
53
|
-
* Reservation expiry time in milliseconds
|
|
54
|
-
* Uses the configuration system
|
|
55
|
-
*/
|
|
56
|
-
export declare const RESERVATION_EXPIRY_MS: number;
|
|
57
39
|
/**
|
|
58
40
|
* Get reservation expiry time from configuration
|
|
59
41
|
*/
|
|
60
42
|
export declare function getReservationExpiryMs(): number;
|
|
43
|
+
/**
|
|
44
|
+
* Information about an operation's cost and display label
|
|
45
|
+
*/
|
|
46
|
+
export interface OperationCostInfo {
|
|
47
|
+
key: string;
|
|
48
|
+
cost: number;
|
|
49
|
+
label: string;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Get all operation costs with their display labels.
|
|
53
|
+
* Returns a record keyed by operation type with cost + label.
|
|
54
|
+
*/
|
|
55
|
+
export declare function getOperationCostsWithLabels(): Record<string, OperationCostInfo>;
|
|
61
56
|
//# sourceMappingURL=costs.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"costs.d.ts","sourceRoot":"","sources":["../../src/config/costs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACrE,OAAO,EAKL,sBAAsB,EACtB,oBAAoB,
|
|
1
|
+
{"version":3,"file":"costs.d.ts","sourceRoot":"","sources":["../../src/config/costs.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACrE,OAAO,EAKL,sBAAsB,EACtB,oBAAoB,EAErB,MAAM,YAAY,CAAC;AAEpB;;;GAGG;AACH,wBAAgB,iBAAiB,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAE1D;AAED;;;;;;;GAOG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAErD;AAGD,OAAO,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,CAAC;AAExD;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,gBAAgB,GAAG,UAAU,CAEhE;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,gBAAgB,GAAG,MAAM,CAE9D;AAED;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,MAAM,CAE9C;AAED;;GAEG;AACH,wBAAgB,sBAAsB,IAAI,MAAM,CAE/C;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;GAGG;AACH,wBAAgB,2BAA2B,IAAI,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAW/E"}
|
package/dist/config/costs.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { getConfig, getConfigOperationCost, getConfigTierConfig, getConfigMonthlyLimit, getValidOperationTypes, isValidOperationType, } from "./index.js";
|
|
1
|
+
import { getConfig, getConfigOperationCost, getConfigTierConfig, getConfigMonthlyLimit, getValidOperationTypes, isValidOperationType, getOperationLabel, } from "./index.js";
|
|
2
2
|
/**
|
|
3
3
|
* Get operation costs as a record
|
|
4
4
|
* Returns all configured operation costs from the current config
|
|
@@ -19,27 +19,6 @@ export function getOperationCost(type) {
|
|
|
19
19
|
}
|
|
20
20
|
// Re-export validation helpers for convenience
|
|
21
21
|
export { getValidOperationTypes, isValidOperationType };
|
|
22
|
-
/**
|
|
23
|
-
* Tier configurations with monthly limits and pricing
|
|
24
|
-
*
|
|
25
|
-
* NOTE: This is kept for backward compatibility.
|
|
26
|
-
* The actual configs are loaded from configuration.
|
|
27
|
-
* Use getTierConfig() instead of accessing this directly.
|
|
28
|
-
*/
|
|
29
|
-
export const TIER_CONFIGS = {
|
|
30
|
-
get free() {
|
|
31
|
-
return getConfig().tierConfigs.free;
|
|
32
|
-
},
|
|
33
|
-
get basic() {
|
|
34
|
-
return getConfig().tierConfigs.basic;
|
|
35
|
-
},
|
|
36
|
-
get premium() {
|
|
37
|
-
return getConfig().tierConfigs.premium;
|
|
38
|
-
},
|
|
39
|
-
get unlimited() {
|
|
40
|
-
return getConfig().tierConfigs.unlimited;
|
|
41
|
-
},
|
|
42
|
-
};
|
|
43
22
|
/**
|
|
44
23
|
* Get tier configuration
|
|
45
24
|
* Uses the configuration system for dynamic configs
|
|
@@ -61,26 +40,32 @@ export function getTierConfig(tier) {
|
|
|
61
40
|
export function getMonthlyLimit(tier) {
|
|
62
41
|
return getConfigMonthlyLimit(tier);
|
|
63
42
|
}
|
|
64
|
-
/**
|
|
65
|
-
* Default credits for new users (free tier)
|
|
66
|
-
* Uses the configuration system
|
|
67
|
-
*/
|
|
68
|
-
export const DEFAULT_FREE_CREDITS = 25; // Static fallback, actual value from getConfig().defaultFreeCredits
|
|
69
43
|
/**
|
|
70
44
|
* Get default free credits from configuration
|
|
71
45
|
*/
|
|
72
46
|
export function getDefaultFreeCredits() {
|
|
73
47
|
return getConfig().defaultFreeCredits;
|
|
74
48
|
}
|
|
75
|
-
/**
|
|
76
|
-
* Reservation expiry time in milliseconds
|
|
77
|
-
* Uses the configuration system
|
|
78
|
-
*/
|
|
79
|
-
export const RESERVATION_EXPIRY_MS = 5 * 60 * 1000; // Static fallback
|
|
80
49
|
/**
|
|
81
50
|
* Get reservation expiry time from configuration
|
|
82
51
|
*/
|
|
83
52
|
export function getReservationExpiryMs() {
|
|
84
53
|
return getConfig().reservationExpiryMs;
|
|
85
54
|
}
|
|
55
|
+
/**
|
|
56
|
+
* Get all operation costs with their display labels.
|
|
57
|
+
* Returns a record keyed by operation type with cost + label.
|
|
58
|
+
*/
|
|
59
|
+
export function getOperationCostsWithLabels() {
|
|
60
|
+
const config = getConfig();
|
|
61
|
+
const result = {};
|
|
62
|
+
for (const [key, cost] of Object.entries(config.operationCosts)) {
|
|
63
|
+
result[key] = {
|
|
64
|
+
key,
|
|
65
|
+
cost,
|
|
66
|
+
label: getOperationLabel(key),
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
return result;
|
|
70
|
+
}
|
|
86
71
|
//# sourceMappingURL=costs.js.map
|
package/dist/config/costs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"costs.js","sourceRoot":"","sources":["../../src/config/costs.ts"],"names":[],"mappings":"AACA,OAAO,EACL,SAAS,EACT,sBAAsB,EACtB,mBAAmB,EACnB,qBAAqB,EACrB,sBAAsB,EACtB,oBAAoB,
|
|
1
|
+
{"version":3,"file":"costs.js","sourceRoot":"","sources":["../../src/config/costs.ts"],"names":[],"mappings":"AACA,OAAO,EACL,SAAS,EACT,sBAAsB,EACtB,mBAAmB,EACnB,qBAAqB,EACrB,sBAAsB,EACtB,oBAAoB,EACpB,iBAAiB,GAClB,MAAM,YAAY,CAAC;AAEpB;;;GAGG;AACH,MAAM,UAAU,iBAAiB;IAC/B,OAAO,EAAE,GAAG,SAAS,EAAE,CAAC,cAAc,EAAE,CAAC;AAC3C,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,gBAAgB,CAAC,IAAY;IAC3C,OAAO,sBAAsB,CAAC,IAAI,CAAC,CAAC;AACtC,CAAC;AAED,+CAA+C;AAC/C,OAAO,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,CAAC;AAExD;;;;;;GAMG;AACH,MAAM,UAAU,aAAa,CAAC,IAAsB;IAClD,OAAO,mBAAmB,CAAC,IAAI,CAAC,CAAC;AACnC,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,eAAe,CAAC,IAAsB;IACpD,OAAO,qBAAqB,CAAC,IAAI,CAAC,CAAC;AACrC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB;IACnC,OAAO,SAAS,EAAE,CAAC,kBAAkB,CAAC;AACxC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,sBAAsB;IACpC,OAAO,SAAS,EAAE,CAAC,mBAAmB,CAAC;AACzC,CAAC;AAWD;;;GAGG;AACH,MAAM,UAAU,2BAA2B;IACzC,MAAM,MAAM,GAAG,SAAS,EAAE,CAAC;IAC3B,MAAM,MAAM,GAAsC,EAAE,CAAC;IACrD,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,cAAc,CAAC,EAAE,CAAC;QAChE,MAAM,CAAC,GAAG,CAAC,GAAG;YACZ,GAAG;YACH,IAAI;YACJ,KAAK,EAAE,iBAAiB,CAAC,GAAG,CAAC;SAC9B,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
package/dist/config/index.d.ts
CHANGED
|
@@ -10,6 +10,11 @@ declare const creditSystemConfigSchema: z.ZodObject<{
|
|
|
10
10
|
* Values are positive numbers representing credit cost
|
|
11
11
|
*/
|
|
12
12
|
operationCosts: z.ZodRecord<z.ZodString, z.ZodNumber>;
|
|
13
|
+
/**
|
|
14
|
+
* Display labels for operation types (English canonical labels).
|
|
15
|
+
* Falls back to auto-generating from snake_case keys if not provided.
|
|
16
|
+
*/
|
|
17
|
+
operationLabels: z.ZodDefault<z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>>;
|
|
13
18
|
/**
|
|
14
19
|
* Tier configurations
|
|
15
20
|
*/
|
|
@@ -69,19 +74,20 @@ declare const creditSystemConfigSchema: z.ZodObject<{
|
|
|
69
74
|
usageHistory?: boolean | undefined;
|
|
70
75
|
}>>;
|
|
71
76
|
}, "strip", z.ZodTypeAny, {
|
|
72
|
-
features: {
|
|
73
|
-
journalEntries: boolean;
|
|
74
|
-
notifications: boolean;
|
|
75
|
-
subscriptionExpiry: boolean;
|
|
76
|
-
usageHistory: boolean;
|
|
77
|
-
};
|
|
78
77
|
operationCosts: Record<string, number>;
|
|
78
|
+
operationLabels: Record<string, string>;
|
|
79
79
|
tierConfigs: Partial<Record<"free" | "basic" | "premium" | "unlimited", {
|
|
80
80
|
tier: "free" | "basic" | "premium" | "unlimited";
|
|
81
81
|
monthlyCredits: number;
|
|
82
82
|
priceUsd: number;
|
|
83
83
|
features: string[];
|
|
84
84
|
}>>;
|
|
85
|
+
features: {
|
|
86
|
+
journalEntries: boolean;
|
|
87
|
+
notifications: boolean;
|
|
88
|
+
subscriptionExpiry: boolean;
|
|
89
|
+
usageHistory: boolean;
|
|
90
|
+
};
|
|
85
91
|
reservationExpiryMs: number;
|
|
86
92
|
defaultFreeCredits: number;
|
|
87
93
|
subscriptionGracePeriodDays: number;
|
|
@@ -95,6 +101,7 @@ declare const creditSystemConfigSchema: z.ZodObject<{
|
|
|
95
101
|
priceUsd: number;
|
|
96
102
|
features: string[];
|
|
97
103
|
}>>;
|
|
104
|
+
operationLabels?: Record<string, string> | undefined;
|
|
98
105
|
features?: {
|
|
99
106
|
journalEntries?: boolean | undefined;
|
|
100
107
|
notifications?: boolean | undefined;
|
|
@@ -125,7 +132,9 @@ export declare function loadConfigFromEnv(): Partial<CreditSystemConfig>;
|
|
|
125
132
|
*/
|
|
126
133
|
export declare function initializeConfig(overrides?: Partial<CreditSystemConfig>): CreditSystemConfig;
|
|
127
134
|
/**
|
|
128
|
-
* Get the current configuration
|
|
135
|
+
* Get the current configuration.
|
|
136
|
+
* If an external provider is registered, delegates to it.
|
|
137
|
+
* Otherwise falls back to the local currentConfig.
|
|
129
138
|
*/
|
|
130
139
|
export declare function getConfig(): CreditSystemConfig;
|
|
131
140
|
/**
|
|
@@ -157,6 +166,16 @@ export declare function getConfigMonthlyLimit(tier: SubscriptionTier): number;
|
|
|
157
166
|
* Check if a feature is enabled
|
|
158
167
|
*/
|
|
159
168
|
export declare function isFeatureEnabled(feature: keyof CreditSystemConfig["features"]): boolean;
|
|
169
|
+
/**
|
|
170
|
+
* Get the display label for an operation type.
|
|
171
|
+
* Falls back to converting snake_case to Title Case if no label is configured.
|
|
172
|
+
*/
|
|
173
|
+
export declare function getOperationLabel(operationType: string): string;
|
|
174
|
+
/**
|
|
175
|
+
* Get all operation labels as a record.
|
|
176
|
+
* For any operation in operationCosts that lacks a label, generates one from the key.
|
|
177
|
+
*/
|
|
178
|
+
export declare function getOperationLabels(): Record<string, string>;
|
|
160
179
|
/**
|
|
161
180
|
* Reset configuration to defaults (for testing)
|
|
162
181
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAarE;;GAEG;AACH,QAAA,MAAM,wBAAwB;IAC5B;;;;OAIG;;IAMH;;;OAGG;;IAMH;;OAEG;;;;;;;;;;;;;;;;;IAMH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;IAGH;;OAEG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAYH,CAAC;AAEH;;GAEG;AACH,MAAM,MAAM,kBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC,CAAC;AAmF1E;;;;;;GAMG;AACH,wBAAgB,iBAAiB,IAAI,OAAO,CAAC,kBAAkB,CAAC,CAuD/D;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,kBAAkB,CAAC,GAAG,kBAAkB,CAsC5F;AAED;;;;GAIG;AACH,wBAAgB,SAAS,IAAI,kBAAkB,CAM9C;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,IAAI,MAAM,EAAE,CAEjD;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAE1D;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAQpE;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,gBAAgB,GAAG,UAAU,CAEtE;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,gBAAgB,GAAG,MAAM,CAGpE;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,kBAAkB,CAAC,UAAU,CAAC,GAAG,OAAO,CAEvF;AAYD;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAM/D;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAQ3D;AAED;;GAEG;AACH,wBAAgB,WAAW,IAAI,IAAI,CAElC"}
|
package/dist/config/index.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
+
import { getConfigProvider } from "./provider.js";
|
|
2
3
|
/**
|
|
3
4
|
* Schema for tier configuration
|
|
4
5
|
*/
|
|
@@ -18,6 +19,11 @@ const creditSystemConfigSchema = z.object({
|
|
|
18
19
|
* Values are positive numbers representing credit cost
|
|
19
20
|
*/
|
|
20
21
|
operationCosts: z.record(z.string().min(1), z.number().positive()),
|
|
22
|
+
/**
|
|
23
|
+
* Display labels for operation types (English canonical labels).
|
|
24
|
+
* Falls back to auto-generating from snake_case keys if not provided.
|
|
25
|
+
*/
|
|
26
|
+
operationLabels: z.record(z.string().min(1), z.string().min(1)).optional().default({}),
|
|
21
27
|
/**
|
|
22
28
|
* Tier configurations
|
|
23
29
|
*/
|
|
@@ -67,6 +73,12 @@ const DEFAULT_CONFIG = {
|
|
|
67
73
|
image_generation: 10,
|
|
68
74
|
template_generation: 10,
|
|
69
75
|
},
|
|
76
|
+
operationLabels: {
|
|
77
|
+
story_generation: "Story generation",
|
|
78
|
+
conversation: "Conversation",
|
|
79
|
+
image_generation: "Image generation",
|
|
80
|
+
template_generation: "Template generation",
|
|
81
|
+
},
|
|
70
82
|
tierConfigs: {
|
|
71
83
|
free: {
|
|
72
84
|
tier: "free",
|
|
@@ -203,6 +215,11 @@ export function initializeConfig(overrides) {
|
|
|
203
215
|
...envConfig.operationCosts,
|
|
204
216
|
...overrides?.operationCosts,
|
|
205
217
|
},
|
|
218
|
+
operationLabels: {
|
|
219
|
+
...DEFAULT_CONFIG.operationLabels,
|
|
220
|
+
...envConfig.operationLabels,
|
|
221
|
+
...overrides?.operationLabels,
|
|
222
|
+
},
|
|
206
223
|
tierConfigs: {
|
|
207
224
|
...DEFAULT_CONFIG.tierConfigs,
|
|
208
225
|
...envConfig.tierConfigs,
|
|
@@ -224,9 +241,15 @@ export function initializeConfig(overrides) {
|
|
|
224
241
|
return currentConfig;
|
|
225
242
|
}
|
|
226
243
|
/**
|
|
227
|
-
* Get the current configuration
|
|
244
|
+
* Get the current configuration.
|
|
245
|
+
* If an external provider is registered, delegates to it.
|
|
246
|
+
* Otherwise falls back to the local currentConfig.
|
|
228
247
|
*/
|
|
229
248
|
export function getConfig() {
|
|
249
|
+
const provider = getConfigProvider();
|
|
250
|
+
if (provider) {
|
|
251
|
+
return provider.getConfig();
|
|
252
|
+
}
|
|
230
253
|
return currentConfig;
|
|
231
254
|
}
|
|
232
255
|
/**
|
|
@@ -234,7 +257,7 @@ export function getConfig() {
|
|
|
234
257
|
* Returns the keys of the operationCosts object
|
|
235
258
|
*/
|
|
236
259
|
export function getValidOperationTypes() {
|
|
237
|
-
return Object.keys(
|
|
260
|
+
return Object.keys(getConfig().operationCosts);
|
|
238
261
|
}
|
|
239
262
|
/**
|
|
240
263
|
* Check if an operation type is valid (configured in the system)
|
|
@@ -242,14 +265,14 @@ export function getValidOperationTypes() {
|
|
|
242
265
|
* @returns true if the operation type is configured
|
|
243
266
|
*/
|
|
244
267
|
export function isValidOperationType(type) {
|
|
245
|
-
return type in
|
|
268
|
+
return type in getConfig().operationCosts;
|
|
246
269
|
}
|
|
247
270
|
/**
|
|
248
271
|
* Get operation cost from configuration
|
|
249
272
|
* @throws Error if the operation type is not configured
|
|
250
273
|
*/
|
|
251
274
|
export function getConfigOperationCost(operationType) {
|
|
252
|
-
const cost =
|
|
275
|
+
const cost = getConfig().operationCosts[operationType];
|
|
253
276
|
if (cost === undefined) {
|
|
254
277
|
throw new Error(`Unknown operation type: ${operationType}. Valid types: ${getValidOperationTypes().join(", ")}`);
|
|
255
278
|
}
|
|
@@ -259,21 +282,54 @@ export function getConfigOperationCost(operationType) {
|
|
|
259
282
|
* Get tier configuration from configuration
|
|
260
283
|
*/
|
|
261
284
|
export function getConfigTierConfig(tier) {
|
|
262
|
-
return
|
|
285
|
+
return getConfig().tierConfigs[tier];
|
|
263
286
|
}
|
|
264
287
|
/**
|
|
265
288
|
* Get monthly limit for a tier from configuration
|
|
266
289
|
* Returns Infinity for unlimited tier
|
|
267
290
|
*/
|
|
268
291
|
export function getConfigMonthlyLimit(tier) {
|
|
269
|
-
const config =
|
|
292
|
+
const config = getConfig().tierConfigs[tier];
|
|
270
293
|
return config.monthlyCredits === 0 ? Infinity : config.monthlyCredits;
|
|
271
294
|
}
|
|
272
295
|
/**
|
|
273
296
|
* Check if a feature is enabled
|
|
274
297
|
*/
|
|
275
298
|
export function isFeatureEnabled(feature) {
|
|
276
|
-
return
|
|
299
|
+
return getConfig().features[feature];
|
|
300
|
+
}
|
|
301
|
+
/**
|
|
302
|
+
* Convert a snake_case string to Title Case.
|
|
303
|
+
* E.g., "story_generation" -> "Story Generation"
|
|
304
|
+
*/
|
|
305
|
+
function snakeCaseToTitleCase(str) {
|
|
306
|
+
return str
|
|
307
|
+
.replace(/_/g, " ")
|
|
308
|
+
.replace(/\b\w/g, (c) => c.toUpperCase());
|
|
309
|
+
}
|
|
310
|
+
/**
|
|
311
|
+
* Get the display label for an operation type.
|
|
312
|
+
* Falls back to converting snake_case to Title Case if no label is configured.
|
|
313
|
+
*/
|
|
314
|
+
export function getOperationLabel(operationType) {
|
|
315
|
+
const labels = getConfig().operationLabels;
|
|
316
|
+
if (labels && operationType in labels) {
|
|
317
|
+
return labels[operationType];
|
|
318
|
+
}
|
|
319
|
+
return snakeCaseToTitleCase(operationType);
|
|
320
|
+
}
|
|
321
|
+
/**
|
|
322
|
+
* Get all operation labels as a record.
|
|
323
|
+
* For any operation in operationCosts that lacks a label, generates one from the key.
|
|
324
|
+
*/
|
|
325
|
+
export function getOperationLabels() {
|
|
326
|
+
const config = getConfig();
|
|
327
|
+
const result = {};
|
|
328
|
+
for (const key of Object.keys(config.operationCosts)) {
|
|
329
|
+
result[key] = config.operationLabels?.[key]
|
|
330
|
+
?? snakeCaseToTitleCase(key);
|
|
331
|
+
}
|
|
332
|
+
return result;
|
|
277
333
|
}
|
|
278
334
|
/**
|
|
279
335
|
* Reset configuration to defaults (for testing)
|
package/dist/config/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/config/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { CreditSystemConfig } from "./index.js";
|
|
2
|
+
/** Interface for external config providers (e.g. Firestore-backed) */
|
|
3
|
+
export interface ICreditConfigProvider {
|
|
4
|
+
getConfig(): CreditSystemConfig;
|
|
5
|
+
}
|
|
6
|
+
/** Register an external config provider. Called once at app startup. */
|
|
7
|
+
export declare function registerConfigProvider(provider: ICreditConfigProvider): void;
|
|
8
|
+
/** Get the registered provider, or null if none registered. */
|
|
9
|
+
export declare function getConfigProvider(): ICreditConfigProvider | null;
|
|
10
|
+
/** Clear registered provider (for testing). */
|
|
11
|
+
export declare function clearConfigProvider(): void;
|
|
12
|
+
//# sourceMappingURL=provider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../src/config/provider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAErD,sEAAsE;AACtE,MAAM,WAAW,qBAAqB;IACpC,SAAS,IAAI,kBAAkB,CAAC;CACjC;AAID,wEAAwE;AACxE,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,qBAAqB,GAAG,IAAI,CAE5E;AAED,+DAA+D;AAC/D,wBAAgB,iBAAiB,IAAI,qBAAqB,GAAG,IAAI,CAEhE;AAED,+CAA+C;AAC/C,wBAAgB,mBAAmB,IAAI,IAAI,CAE1C"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
let configProvider = null;
|
|
2
|
+
/** Register an external config provider. Called once at app startup. */
|
|
3
|
+
export function registerConfigProvider(provider) {
|
|
4
|
+
configProvider = provider;
|
|
5
|
+
}
|
|
6
|
+
/** Get the registered provider, or null if none registered. */
|
|
7
|
+
export function getConfigProvider() {
|
|
8
|
+
return configProvider;
|
|
9
|
+
}
|
|
10
|
+
/** Clear registered provider (for testing). */
|
|
11
|
+
export function clearConfigProvider() {
|
|
12
|
+
configProvider = null;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=provider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../../src/config/provider.ts"],"names":[],"mappings":"AAOA,IAAI,cAAc,GAAiC,IAAI,CAAC;AAExD,wEAAwE;AACxE,MAAM,UAAU,sBAAsB,CAAC,QAA+B;IACpE,cAAc,GAAG,QAAQ,CAAC;AAC5B,CAAC;AAED,+DAA+D;AAC/D,MAAM,UAAU,iBAAiB;IAC/B,OAAO,cAAc,CAAC;AACxB,CAAC;AAED,+CAA+C;AAC/C,MAAM,UAAU,mBAAmB;IACjC,cAAc,GAAG,IAAI,CAAC;AACxB,CAAC"}
|
package/dist/core/index.d.ts
CHANGED
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
* ```
|
|
21
21
|
*/
|
|
22
22
|
export type { SubscriptionTier, CreditOperationType, AIProviderType, ResourceType, ReservationStatus, TransactionType, CreditSource, JournalReferenceType, PortableUserCredits, PortableReservation, PortableTransaction, PortableJournalEntry, PortableUsageLog, CreditCheckResult, MonthlyResetResult, SubscriptionExpiryResult, UsageHistoryEntry, UsageHistoryResponse, TierConfig, WithCreditsOptions, } from "./types.js";
|
|
23
|
-
export { calculateAvailableCredits, toPortableTimestamp, toDate,
|
|
23
|
+
export { calculateAvailableCredits, toPortableTimestamp, toDate, } from "./types.js";
|
|
24
24
|
export type { CreditErrorCodeType } from "./errors.js";
|
|
25
25
|
export { CreditError, CreditErrorCode, isCreditError, isInsufficientCreditsError, createInsufficientCreditsError, createReservationNotFoundError, createReservationExpiredError, createReservationAlreadyProcessedError, createUserNotFoundError, createInvalidOperationTypeError, } from "./errors.js";
|
|
26
26
|
export type { DeferredExecutor } from "./deferred.js";
|
package/dist/core/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAGH,YAAY,EACV,gBAAgB,EAChB,mBAAmB,EACnB,cAAc,EACd,YAAY,EACZ,iBAAiB,EACjB,eAAe,EACf,YAAY,EACZ,oBAAoB,EACpB,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,EACnB,oBAAoB,EACpB,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EAClB,wBAAwB,EACxB,iBAAiB,EACjB,oBAAoB,EACpB,UAAU,EACV,kBAAkB,GACnB,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,yBAAyB,EACzB,mBAAmB,EACnB,MAAM,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAGH,YAAY,EACV,gBAAgB,EAChB,mBAAmB,EACnB,cAAc,EACd,YAAY,EACZ,iBAAiB,EACjB,eAAe,EACf,YAAY,EACZ,oBAAoB,EACpB,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,EACnB,oBAAoB,EACpB,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EAClB,wBAAwB,EACxB,iBAAiB,EACjB,oBAAoB,EACpB,UAAU,EACV,kBAAkB,GACnB,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,yBAAyB,EACzB,mBAAmB,EACnB,MAAM,GACP,MAAM,YAAY,CAAC;AAGpB,YAAY,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAEvD,OAAO,EACL,WAAW,EACX,eAAe,EACf,aAAa,EACb,0BAA0B,EAC1B,8BAA8B,EAC9B,8BAA8B,EAC9B,6BAA6B,EAC7B,sCAAsC,EACtC,uBAAuB,EACvB,+BAA+B,GAChC,MAAM,aAAa,CAAC;AAGrB,YAAY,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEtD,OAAO,EACL,eAAe,EACf,mBAAmB,EACnB,YAAY,EACZ,sBAAsB,GACvB,MAAM,eAAe,CAAC;AAGvB,OAAO,EACL,4BAA4B,EAC5B,6BAA6B,EAC7B,0BAA0B,GAC3B,MAAM,iBAAiB,CAAC"}
|
package/dist/core/index.js
CHANGED
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
* ```
|
|
21
21
|
*/
|
|
22
22
|
// ==================== Type Utilities ====================
|
|
23
|
-
export { calculateAvailableCredits, toPortableTimestamp, toDate,
|
|
23
|
+
export { calculateAvailableCredits, toPortableTimestamp, toDate, } from "./types.js";
|
|
24
24
|
export { CreditError, CreditErrorCode, isCreditError, isInsufficientCreditsError, createInsufficientCreditsError, createReservationNotFoundError, createReservationExpiredError, createReservationAlreadyProcessedError, createUserNotFoundError, createInvalidOperationTypeError, } from "./errors.js";
|
|
25
25
|
export { genericDeferred, synchronousDeferred, noopDeferred, createDeferredExecutor, } from "./deferred.js";
|
|
26
26
|
// ==================== Operations ====================
|
package/dist/core/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AA0BH,2DAA2D;AAC3D,OAAO,EACL,yBAAyB,EACzB,mBAAmB,EACnB,MAAM,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AA0BH,2DAA2D;AAC3D,OAAO,EACL,yBAAyB,EACzB,mBAAmB,EACnB,MAAM,GACP,MAAM,YAAY,CAAC;AAKpB,OAAO,EACL,WAAW,EACX,eAAe,EACf,aAAa,EACb,0BAA0B,EAC1B,8BAA8B,EAC9B,8BAA8B,EAC9B,6BAA6B,EAC7B,sCAAsC,EACtC,uBAAuB,EACvB,+BAA+B,GAChC,MAAM,aAAa,CAAC;AAKrB,OAAO,EACL,eAAe,EACf,mBAAmB,EACnB,YAAY,EACZ,sBAAsB,GACvB,MAAM,eAAe,CAAC;AAEvB,uDAAuD;AACvD,OAAO,EACL,4BAA4B,EAC5B,6BAA6B,EAC7B,0BAA0B,GAC3B,MAAM,iBAAiB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"operations.d.ts","sourceRoot":"","sources":["../../src/core/operations.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"operations.d.ts","sourceRoot":"","sources":["../../src/core/operations.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAChE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAGtD;;;;;;GAMG;AACH,wBAAsB,4BAA4B,CAChD,UAAU,EAAE,iBAAiB,EAC7B,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,IAAI,CAAC,CA2Bf;AAED;;;;;;GAMG;AACH,wBAAsB,6BAA6B,CACjD,UAAU,EAAE,iBAAiB,EAC7B,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,IAAI,CAAC,CA2Bf;AAED;;;;;;;;;GASG;AACH,wBAAsB,0BAA0B,CAC9C,UAAU,EAAE,iBAAiB,EAC7B,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,MAAM,EACrB,QAAQ,GAAE,MAAsB,GAC/B,OAAO,CAAC,mBAAmB,CAAC,CAG9B"}
|
package/dist/core/operations.js
CHANGED
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
* Contains the business logic for credit operations that can be
|
|
5
5
|
* used by any adapter or service implementation.
|
|
6
6
|
*/
|
|
7
|
+
import { getOperationLabel } from "../config/index.js";
|
|
7
8
|
/**
|
|
8
9
|
* Commit a reservation with journal entry
|
|
9
10
|
*
|
|
@@ -30,7 +31,7 @@ export async function commitReservationWithJournal(repository, userId, reservati
|
|
|
30
31
|
source: "operation_commit",
|
|
31
32
|
referenceId: reservationId,
|
|
32
33
|
referenceType: "reservation",
|
|
33
|
-
description: `Committed ${reservation.amount} credits for ${reservation.operationType}`,
|
|
34
|
+
description: `Committed ${reservation.amount} credits for ${getOperationLabel(reservation.operationType)}`,
|
|
34
35
|
metadata: {
|
|
35
36
|
operationType: reservation.operationType,
|
|
36
37
|
},
|
|
@@ -61,7 +62,7 @@ export async function releaseReservationWithJournal(repository, userId, reservat
|
|
|
61
62
|
source: "operation_release",
|
|
62
63
|
referenceId: reservationId,
|
|
63
64
|
referenceType: "reservation",
|
|
64
|
-
description: `Released ${reservation.amount} reserved credits for ${reservation.operationType}`,
|
|
65
|
+
description: `Released ${reservation.amount} reserved credits for ${getOperationLabel(reservation.operationType)}`,
|
|
65
66
|
metadata: {
|
|
66
67
|
operationType: reservation.operationType,
|
|
67
68
|
amount: reservation.amount,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"operations.js","sourceRoot":"","sources":["../../src/core/operations.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"operations.js","sourceRoot":"","sources":["../../src/core/operations.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAEvD;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,4BAA4B,CAChD,UAA6B,EAC7B,MAAc,EACd,aAAqB;IAErB,yCAAyC;IACzC,MAAM,WAAW,GAAG,MAAM,UAAU,CAAC,cAAc,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IAC3E,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,eAAe,aAAa,YAAY,CAAC,CAAC;IAC5D,CAAC;IAED,oCAAoC;IACpC,MAAM,UAAU,CAAC,uBAAuB,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IAEhE,uBAAuB;IACvB,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;IACxD,IAAI,OAAO,EAAE,CAAC;QACZ,MAAM,UAAU,CAAC,kBAAkB,CAAC;YAClC,MAAM;YACN,SAAS,EAAE,OAAO;YAClB,MAAM,EAAE,WAAW,CAAC,MAAM;YAC1B,YAAY,EAAE,OAAO,CAAC,OAAO;YAC7B,MAAM,EAAE,kBAAkB;YAC1B,WAAW,EAAE,aAAa;YAC1B,aAAa,EAAE,aAAa;YAC5B,WAAW,EAAE,aAAa,WAAW,CAAC,MAAM,gBAAgB,iBAAiB,CAAC,WAAW,CAAC,aAAa,CAAC,EAAE;YAC1G,QAAQ,EAAE;gBACR,aAAa,EAAE,WAAW,CAAC,aAAa;aACzC;SACF,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,6BAA6B,CACjD,UAA6B,EAC7B,MAAc,EACd,aAAqB;IAErB,yCAAyC;IACzC,MAAM,WAAW,GAAG,MAAM,UAAU,CAAC,cAAc,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IAE3E,qCAAqC;IACrC,MAAM,UAAU,CAAC,wBAAwB,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IAEjE,iEAAiE;IACjE,IAAI,WAAW,EAAE,MAAM,KAAK,UAAU,EAAE,CAAC;QACvC,MAAM,OAAO,GAAG,MAAM,UAAU,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QACxD,IAAI,OAAO,EAAE,CAAC;YACZ,MAAM,UAAU,CAAC,kBAAkB,CAAC;gBAClC,MAAM;gBACN,SAAS,EAAE,QAAQ;gBACnB,MAAM,EAAE,CAAC,EAAE,6DAA6D;gBACxE,YAAY,EAAE,OAAO,CAAC,OAAO;gBAC7B,MAAM,EAAE,mBAAmB;gBAC3B,WAAW,EAAE,aAAa;gBAC1B,aAAa,EAAE,aAAa;gBAC5B,WAAW,EAAE,YAAY,WAAW,CAAC,MAAM,yBAAyB,iBAAiB,CAAC,WAAW,CAAC,aAAa,CAAC,EAAE;gBAClH,QAAQ,EAAE;oBACR,aAAa,EAAE,WAAW,CAAC,aAAa;oBACxC,MAAM,EAAE,WAAW,CAAC,MAAM;iBAC3B;aACF,CAAC,CAAC;QACL,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAC9C,UAA6B,EAC7B,MAAc,EACd,MAAc,EACd,aAAqB,EACrB,WAAmB,CAAC,GAAG,EAAE,GAAG,IAAI;IAEhC,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,CAAC,CAAC;IAClD,OAAO,UAAU,CAAC,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,SAAS,CAAC,CAAC;AACnF,CAAC"}
|
package/dist/core/types.d.ts
CHANGED
|
@@ -273,15 +273,4 @@ export interface WithCreditsOptions {
|
|
|
273
273
|
/** Resource type for usage logging */
|
|
274
274
|
resourceType?: ResourceType;
|
|
275
275
|
}
|
|
276
|
-
/**
|
|
277
|
-
* Constants for credit system configuration
|
|
278
|
-
*/
|
|
279
|
-
export declare const CREDIT_CONSTANTS: {
|
|
280
|
-
/** Grace period in days after subscription expires before downgrade */
|
|
281
|
-
readonly SUBSCRIPTION_GRACE_PERIOD_DAYS: 3;
|
|
282
|
-
/** Low balance notification threshold */
|
|
283
|
-
readonly LOW_BALANCE_THRESHOLD: 10;
|
|
284
|
-
/** Cooldown in hours between low balance notifications */
|
|
285
|
-
readonly LOW_BALANCE_NOTIFICATION_COOLDOWN_HOURS: 24;
|
|
286
|
-
};
|
|
287
276
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/core/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"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"}
|
package/dist/core/types.js
CHANGED
|
@@ -79,15 +79,4 @@ export function toDate(value) {
|
|
|
79
79
|
return new Date();
|
|
80
80
|
}
|
|
81
81
|
// ==================== Constants ====================
|
|
82
|
-
/**
|
|
83
|
-
* Constants for credit system configuration
|
|
84
|
-
*/
|
|
85
|
-
export const CREDIT_CONSTANTS = {
|
|
86
|
-
/** Grace period in days after subscription expires before downgrade */
|
|
87
|
-
SUBSCRIPTION_GRACE_PERIOD_DAYS: 3,
|
|
88
|
-
/** Low balance notification threshold */
|
|
89
|
-
LOW_BALANCE_THRESHOLD: 10,
|
|
90
|
-
/** Cooldown in hours between low balance notifications */
|
|
91
|
-
LOW_BALANCE_NOTIFICATION_COOLDOWN_HOURS: 24,
|
|
92
|
-
};
|
|
93
82
|
//# sourceMappingURL=types.js.map
|
package/dist/core/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,8DAA8D;AAE9D;;;;;;;;;GASG;AACH,MAAM,UAAU,yBAAyB,CACvC,OAAe,EACf,YAAoB,EACpB,QAAgB;IAEhB,OAAO,OAAO,GAAG,YAAY,GAAG,QAAQ,CAAC;AAC3C,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,mBAAmB,CAAC,KAAc;IAChD,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAClC,CAAC;IAED,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,KAAK,YAAY,IAAI,EAAE,CAAC;QAC1B,OAAO,KAAK,CAAC,WAAW,EAAE,CAAC;IAC7B,CAAC;IAED,IACE,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACd,QAAQ,IAAI,KAAK;QACjB,OAAQ,KAAgC,CAAC,MAAM,KAAK,UAAU,EAC9D,CAAC;QACD,OAAQ,KAAgC,CAAC,MAAM,EAAE,CAAC,WAAW,EAAE,CAAC;IAClE,CAAC;IAED,OAAO,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;AAClC,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,MAAM,CAAC,KAAc;IACnC,IAAI,KAAK,YAAY,IAAI,EAAE,CAAC;QAC1B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC;IAED,IACE,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACd,QAAQ,IAAI,KAAK;QACjB,OAAQ,KAAgC,CAAC,MAAM,KAAK,UAAU,EAC9D,CAAC;QACD,OAAQ,KAAgC,CAAC,MAAM,EAAE,CAAC;IACpD,CAAC;IAED,OAAO,IAAI,IAAI,EAAE,CAAC;AACpB,CAAC;AAgSD,sDAAsD
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,8DAA8D;AAE9D;;;;;;;;;GASG;AACH,MAAM,UAAU,yBAAyB,CACvC,OAAe,EACf,YAAoB,EACpB,QAAgB;IAEhB,OAAO,OAAO,GAAG,YAAY,GAAG,QAAQ,CAAC;AAC3C,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,mBAAmB,CAAC,KAAc;IAChD,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAClC,CAAC;IAED,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,KAAK,YAAY,IAAI,EAAE,CAAC;QAC1B,OAAO,KAAK,CAAC,WAAW,EAAE,CAAC;IAC7B,CAAC;IAED,IACE,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACd,QAAQ,IAAI,KAAK;QACjB,OAAQ,KAAgC,CAAC,MAAM,KAAK,UAAU,EAC9D,CAAC;QACD,OAAQ,KAAgC,CAAC,MAAM,EAAE,CAAC,WAAW,EAAE,CAAC;IAClE,CAAC;IAED,OAAO,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;AAClC,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,MAAM,CAAC,KAAc;IACnC,IAAI,KAAK,YAAY,IAAI,EAAE,CAAC;QAC1B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;IACzB,CAAC;IAED,IACE,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACd,QAAQ,IAAI,KAAK;QACjB,OAAQ,KAAgC,CAAC,MAAM,KAAK,UAAU,EAC9D,CAAC;QACD,OAAQ,KAAgC,CAAC,MAAM,EAAE,CAAC;IACpD,CAAC;IAED,OAAO,IAAI,IAAI,EAAE,CAAC;AACpB,CAAC;AAgSD,sDAAsD"}
|
package/dist/index.d.ts
CHANGED
|
@@ -37,8 +37,9 @@
|
|
|
37
37
|
* ```
|
|
38
38
|
*/
|
|
39
39
|
export * from "./core/index.js";
|
|
40
|
-
export { getConfig, initializeConfig, loadConfigFromEnv, getValidOperationTypes, isValidOperationType, getConfigOperationCost, getConfigTierConfig, getConfigMonthlyLimit, isFeatureEnabled, resetConfig, type CreditSystemConfig, } from "./config/index.js";
|
|
41
|
-
export {
|
|
40
|
+
export { getConfig, initializeConfig, loadConfigFromEnv, getValidOperationTypes, isValidOperationType, getConfigOperationCost, getConfigTierConfig, getConfigMonthlyLimit, isFeatureEnabled, resetConfig, getOperationLabel, getOperationLabels, type CreditSystemConfig, } from "./config/index.js";
|
|
41
|
+
export { registerConfigProvider, getConfigProvider, clearConfigProvider, type ICreditConfigProvider, } from "./config/provider.js";
|
|
42
|
+
export { getOperationCosts, getOperationCost, getTierConfig, getMonthlyLimit, getDefaultFreeCredits, getReservationExpiryMs, getOperationCostsWithLabels, type OperationCostInfo, } from "./config/costs.js";
|
|
42
43
|
export type { ICreditRepository, CreditRepositoryFactory, CreateReservationInput, CreateTransactionInput, CreateUsageLogInput, CreateJournalEntryInput, UsageLogQuery, JournalEntryQuery, CreditBalanceUpdate, TierUpdateInput, } from "./repository/types.js";
|
|
43
44
|
export { toClientUserCredits } from "./repository/types.js";
|
|
44
45
|
export { generateId, getNextMonthlyReset } from "./repository/utils.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAGH,cAAc,iBAAiB,CAAC;AAGhC,OAAO,EACL,SAAS,EACT,gBAAgB,EAChB,iBAAiB,EACjB,sBAAsB,EACtB,oBAAoB,EACpB,sBAAsB,EACtB,mBAAmB,EACnB,qBAAqB,EACrB,gBAAgB,EAChB,WAAW,EACX,KAAK,kBAAkB,GACxB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAChB,aAAa,EACb,eAAe,EACf,qBAAqB,EACrB,sBAAsB,EACtB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAGH,cAAc,iBAAiB,CAAC;AAGhC,OAAO,EACL,SAAS,EACT,gBAAgB,EAChB,iBAAiB,EACjB,sBAAsB,EACtB,oBAAoB,EACpB,sBAAsB,EACtB,mBAAmB,EACnB,qBAAqB,EACrB,gBAAgB,EAChB,WAAW,EACX,iBAAiB,EACjB,kBAAkB,EAClB,KAAK,kBAAkB,GACxB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,sBAAsB,EACtB,iBAAiB,EACjB,mBAAmB,EACnB,KAAK,qBAAqB,GAC3B,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAChB,aAAa,EACb,eAAe,EACf,qBAAqB,EACrB,sBAAsB,EACtB,2BAA2B,EAC3B,KAAK,iBAAiB,GACvB,MAAM,mBAAmB,CAAC;AAI3B,YAAY,EACV,iBAAiB,EACjB,uBAAuB,EACvB,sBAAsB,EACtB,sBAAsB,EACtB,mBAAmB,EACnB,uBAAuB,EACvB,aAAa,EACb,iBAAiB,EACjB,mBAAmB,EACnB,eAAe,GAChB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACxE,OAAO,EACL,wBAAwB,EACxB,8BAA8B,GAC/B,MAAM,8BAA8B,CAAC;AAGtC,cAAc,iBAAiB,CAAC;AAGhC,cAAc,oBAAoB,CAAC;AAGnC,cAAc,qBAAqB,CAAC;AAGpC,OAAO,EACL,2BAA2B,EAC3B,yBAAyB,EACzB,kBAAkB,EAClB,wBAAwB,EACxB,0BAA0B,EAC1B,yBAAyB,EACzB,0BAA0B,EAC1B,KAAK,uBAAuB,EAC5B,KAAK,0BAA0B,GAChC,MAAM,0BAA0B,CAAC;AAIlC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3D,YAAY,EACV,mBAAmB,EACnB,wBAAwB,EACxB,WAAW,EACX,iBAAiB,EACjB,iBAAiB,IAAI,oBAAoB,EACzC,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,IAAI,oBAAoB,EACzC,oBAAoB,IAAI,uBAAuB,EAC/C,WAAW,EACX,gBAAgB,EAChB,gBAAgB,IAAI,mBAAmB,GACxC,MAAM,gBAAgB,CAAC;AACxB,YAAY,EACV,aAAa,EACb,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EACL,eAAe,EACf,YAAY,EACZ,mBAAmB,EACnB,kBAAkB,EAClB,wBAAwB,IAAI,2BAA2B,EACvD,wBAAwB,IAAI,2BAA2B,EACvD,uBAAuB,IAAI,0BAA0B,EACrD,eAAe,EACf,WAAW,EACX,aAAa,GACd,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,oBAAoB,EACpB,aAAa,EACb,sBAAsB,EACtB,KAAK,eAAe,GACrB,MAAM,kBAAkB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -39,8 +39,9 @@
|
|
|
39
39
|
// ==================== Core ====================
|
|
40
40
|
export * from "./core/index.js";
|
|
41
41
|
// ==================== Config ====================
|
|
42
|
-
export { getConfig, initializeConfig, loadConfigFromEnv, getValidOperationTypes, isValidOperationType, getConfigOperationCost, getConfigTierConfig, getConfigMonthlyLimit, isFeatureEnabled, resetConfig, } from "./config/index.js";
|
|
43
|
-
export {
|
|
42
|
+
export { getConfig, initializeConfig, loadConfigFromEnv, getValidOperationTypes, isValidOperationType, getConfigOperationCost, getConfigTierConfig, getConfigMonthlyLimit, isFeatureEnabled, resetConfig, getOperationLabel, getOperationLabels, } from "./config/index.js";
|
|
43
|
+
export { registerConfigProvider, getConfigProvider, clearConfigProvider, } from "./config/provider.js";
|
|
44
|
+
export { getOperationCosts, getOperationCost, getTierConfig, getMonthlyLimit, getDefaultFreeCredits, getReservationExpiryMs, getOperationCostsWithLabels, } from "./config/costs.js";
|
|
44
45
|
export { toClientUserCredits } from "./repository/types.js";
|
|
45
46
|
export { generateId, getNextMonthlyReset } from "./repository/utils.js";
|
|
46
47
|
export { InMemoryCreditRepository, createInMemoryCreditRepository, } from "./repository/memory/index.js";
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAEH,iDAAiD;AACjD,cAAc,iBAAiB,CAAC;AAEhC,mDAAmD;AACnD,OAAO,EACL,SAAS,EACT,gBAAgB,EAChB,iBAAiB,EACjB,sBAAsB,EACtB,oBAAoB,EACpB,sBAAsB,EACtB,mBAAmB,EACnB,qBAAqB,EACrB,gBAAgB,EAChB,WAAW,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAEH,iDAAiD;AACjD,cAAc,iBAAiB,CAAC;AAEhC,mDAAmD;AACnD,OAAO,EACL,SAAS,EACT,gBAAgB,EAChB,iBAAiB,EACjB,sBAAsB,EACtB,oBAAoB,EACpB,sBAAsB,EACtB,mBAAmB,EACnB,qBAAqB,EACrB,gBAAgB,EAChB,WAAW,EACX,iBAAiB,EACjB,kBAAkB,GAEnB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,sBAAsB,EACtB,iBAAiB,EACjB,mBAAmB,GAEpB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAChB,aAAa,EACb,eAAe,EACf,qBAAqB,EACrB,sBAAsB,EACtB,2BAA2B,GAE5B,MAAM,mBAAmB,CAAC;AAgB3B,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACxE,OAAO,EACL,wBAAwB,EACxB,8BAA8B,GAC/B,MAAM,8BAA8B,CAAC;AAEtC,iDAAiD;AACjD,cAAc,iBAAiB,CAAC;AAEhC,oDAAoD;AACpD,cAAc,oBAAoB,CAAC;AAEnC,qDAAqD;AACrD,cAAc,qBAAqB,CAAC;AAEpC,0DAA0D;AAC1D,OAAO,EACL,2BAA2B,EAC3B,yBAAyB,EACzB,kBAAkB,EAClB,wBAAwB,EACxB,0BAA0B,EAC1B,yBAAyB,EACzB,0BAA0B,GAG3B,MAAM,0BAA0B,CAAC;AAElC,gDAAgD;AAChD,uDAAuD;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAoB3D,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EACL,eAAe,EACf,YAAY,EACZ,mBAAmB,EACnB,kBAAkB,EAClB,wBAAwB,IAAI,2BAA2B,EACvD,wBAAwB,IAAI,2BAA2B,EACvD,uBAAuB,IAAI,0BAA0B,EACrD,eAAe,EACf,WAAW,EACX,aAAa,GACd,MAAM,iBAAiB,CAAC;AAEzB,kDAAkD;AAClD,OAAO,EACL,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,oBAAoB,EACpB,aAAa,EACb,sBAAsB,GAEvB,MAAM,kBAAkB,CAAC"}
|
|
@@ -50,7 +50,7 @@ export declare function clearCooldownState(): void;
|
|
|
50
50
|
* @param newBalance - Balance after the operation
|
|
51
51
|
* @param threshold - Custom threshold (defaults to 10)
|
|
52
52
|
*/
|
|
53
|
-
export declare function checkAndNotifyLowBalance(userId: string, newBalance: number, threshold?:
|
|
53
|
+
export declare function checkAndNotifyLowBalance(userId: string, newBalance: number, threshold?: number): Promise<void>;
|
|
54
54
|
/**
|
|
55
55
|
* Trigger subscription expiring notification
|
|
56
56
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/notifications/index.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,MAAM,uBAAuB,GAC/B;IACE,IAAI,EAAE,aAAa,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB,GACD;IACE,IAAI,EAAE,kBAAkB,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;CAChB,GACD;IACE,IAAI,EAAE,uBAAuB,CAAC;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,IAAI,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;CACvB,GACD;IACE,IAAI,EAAE,sBAAsB,CAAC;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,OAAO,CAAC;CACxB,CAAC;AAEN;;;GAGG;AACH,MAAM,WAAW,0BAA0B;IACzC;;;OAGG;IACH,kBAAkB,CAAC,KAAK,EAAE,uBAAuB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACnE;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/notifications/index.ts"],"names":[],"mappings":"AAEA;;GAEG;AACH,MAAM,MAAM,uBAAuB,GAC/B;IACE,IAAI,EAAE,aAAa,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB,GACD;IACE,IAAI,EAAE,kBAAkB,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;CAChB,GACD;IACE,IAAI,EAAE,uBAAuB,CAAC;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,IAAI,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;CACvB,GACD;IACE,IAAI,EAAE,sBAAsB,CAAC;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,OAAO,CAAC;CACxB,CAAC;AAEN;;;GAGG;AACH,MAAM,WAAW,0BAA0B;IACzC;;;OAGG;IACH,kBAAkB,CAAC,KAAK,EAAE,uBAAuB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACnE;AA8ED;;GAEG;AACH,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,0BAA0B,GAClC,IAAI,CAEN;AAED;;GAEG;AACH,wBAAgB,yBAAyB,IAAI,IAAI,CAEhD;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,IAAI,CAEzC;AAyBD;;;;;;;GAOG;AACH,wBAAsB,wBAAwB,CAC5C,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,MAAM,EAClB,SAAS,SAAkC,GAC1C,OAAO,CAAC,IAAI,CAAC,CAqBf;AAED;;;;;;GAMG;AACH,wBAAsB,0BAA0B,CAC9C,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,IAAI,EACf,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,IAAI,CAAC,CAYf;AAED;;;;;GAKG;AACH,wBAAsB,yBAAyB,CAC7C,MAAM,EAAE,MAAM,EACd,aAAa,EAAE,OAAO,GACrB,OAAO,CAAC,IAAI,CAAC,CAMf;AAED;;;GAGG;AACH,qBAAa,0BAA2B,YAAW,0BAA0B;IACrE,kBAAkB,CAAC,KAAK,EAAE,uBAAuB,GAAG,OAAO,CAAC,IAAI,CAAC;CA2BxE"}
|
|
@@ -1,17 +1,9 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { getConfig } from "../config/index.js";
|
|
2
2
|
/**
|
|
3
3
|
* In-memory cooldown tracker
|
|
4
4
|
* In production, this should be stored in a persistent store
|
|
5
5
|
*/
|
|
6
6
|
const cooldownState = new Map();
|
|
7
|
-
/**
|
|
8
|
-
* Default notification threshold for low balance
|
|
9
|
-
*/
|
|
10
|
-
const LOW_BALANCE_THRESHOLD = CREDIT_CONSTANTS.LOW_BALANCE_THRESHOLD;
|
|
11
|
-
/**
|
|
12
|
-
* Cooldown period in milliseconds (24 hours)
|
|
13
|
-
*/
|
|
14
|
-
const NOTIFICATION_COOLDOWN_MS = CREDIT_CONSTANTS.LOW_BALANCE_NOTIFICATION_COOLDOWN_HOURS * 60 * 60 * 1000;
|
|
15
7
|
/**
|
|
16
8
|
* Check if a notification is allowed (not in cooldown)
|
|
17
9
|
*/
|
|
@@ -34,7 +26,7 @@ function isNotificationAllowed(userId, eventType) {
|
|
|
34
26
|
}
|
|
35
27
|
if (!lastNotification)
|
|
36
28
|
return true;
|
|
37
|
-
return now - lastNotification.getTime() >
|
|
29
|
+
return now - lastNotification.getTime() > getConfig().lowBalanceNotificationCooldownHours * 60 * 60 * 1000;
|
|
38
30
|
}
|
|
39
31
|
/**
|
|
40
32
|
* Record that a notification was sent
|
|
@@ -101,7 +93,7 @@ async function dispatchNotification(event) {
|
|
|
101
93
|
* @param newBalance - Balance after the operation
|
|
102
94
|
* @param threshold - Custom threshold (defaults to 10)
|
|
103
95
|
*/
|
|
104
|
-
export async function checkAndNotifyLowBalance(userId, newBalance, threshold =
|
|
96
|
+
export async function checkAndNotifyLowBalance(userId, newBalance, threshold = getConfig().lowBalanceThreshold) {
|
|
105
97
|
// Check if balance is depleted
|
|
106
98
|
if (newBalance <= 0 && isNotificationAllowed(userId, "depleted")) {
|
|
107
99
|
recordNotification(userId, "depleted");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/notifications/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/notifications/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"credits-service.d.ts","sourceRoot":"","sources":["../../src/service/credits-service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,mBAAmB,EACnB,mBAAmB,EACnB,iBAAiB,EACjB,mBAAmB,EACnB,gBAAgB,EAChB,gBAAgB,EAChB,oBAAoB,EAEpB,oBAAoB,EACrB,MAAM,kBAAkB,CAAC;AAE1B,OAAO,KAAK,EAAE,iBAAiB,EAAuB,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"credits-service.d.ts","sourceRoot":"","sources":["../../src/service/credits-service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { toDate } from "../core/types.js";
|
|
2
2
|
import { toClientUserCredits } from "../repository/types.js";
|
|
3
|
-
import {
|
|
3
|
+
import { getConfig, getConfigMonthlyLimit, getOperationLabel } from "../config/index.js";
|
|
4
4
|
/**
|
|
5
5
|
* Check if a date is past the monthly reset date
|
|
6
6
|
*/
|
|
@@ -10,10 +10,6 @@ function isPastMonthlyReset(resetAt) {
|
|
|
10
10
|
const resetDate = toDate(resetAt);
|
|
11
11
|
return new Date() >= resetDate;
|
|
12
12
|
}
|
|
13
|
-
/**
|
|
14
|
-
* Default grace period for subscription expiry (in days)
|
|
15
|
-
*/
|
|
16
|
-
const DEFAULT_GRACE_PERIOD_DAYS = 3;
|
|
17
13
|
/**
|
|
18
14
|
* Credits service with dependency injection for repository
|
|
19
15
|
*
|
|
@@ -56,7 +52,7 @@ export class CreditsService {
|
|
|
56
52
|
}
|
|
57
53
|
// Step 1: Check subscription expiry (for non-free tiers)
|
|
58
54
|
if (data.tier !== "free" && data.subscriptionExpiresAt) {
|
|
59
|
-
const expiryResult = await this.repository.checkAndHandleSubscriptionExpiry(userId,
|
|
55
|
+
const expiryResult = await this.repository.checkAndHandleSubscriptionExpiry(userId, getConfig().subscriptionGracePeriodDays);
|
|
60
56
|
if (expiryResult.wasDowngraded) {
|
|
61
57
|
// Create journal entry for downgrade
|
|
62
58
|
await this.repository.createJournalEntry({
|
|
@@ -121,7 +117,7 @@ export class CreditsService {
|
|
|
121
117
|
* @returns Initialized user credits
|
|
122
118
|
*/
|
|
123
119
|
async initializeUserCredits(userId) {
|
|
124
|
-
const credits = await this.repository.initializeUserCredits(userId, "free",
|
|
120
|
+
const credits = await this.repository.initializeUserCredits(userId, "free", getConfig().defaultFreeCredits);
|
|
125
121
|
return toClientUserCredits(credits);
|
|
126
122
|
}
|
|
127
123
|
/**
|
|
@@ -166,7 +162,7 @@ export class CreditsService {
|
|
|
166
162
|
* @throws Error if insufficient credits
|
|
167
163
|
*/
|
|
168
164
|
async reserveCredits(userId, amount, operationType) {
|
|
169
|
-
const expiresAt = new Date(Date.now() +
|
|
165
|
+
const expiresAt = new Date(Date.now() + getConfig().reservationExpiryMs);
|
|
170
166
|
return this.repository.reserveCreditsAtomic(userId, amount, operationType, expiresAt);
|
|
171
167
|
}
|
|
172
168
|
/**
|
|
@@ -193,7 +189,7 @@ export class CreditsService {
|
|
|
193
189
|
source: "operation_commit",
|
|
194
190
|
referenceId: reservationId,
|
|
195
191
|
referenceType: "reservation",
|
|
196
|
-
description: `Committed ${reservation.amount} credits for ${reservation.operationType}`,
|
|
192
|
+
description: `Committed ${reservation.amount} credits for ${getOperationLabel(reservation.operationType)}`,
|
|
197
193
|
metadata: {
|
|
198
194
|
operationType: reservation.operationType,
|
|
199
195
|
},
|
|
@@ -227,7 +223,7 @@ export class CreditsService {
|
|
|
227
223
|
source: "operation_release",
|
|
228
224
|
referenceId: reservationId,
|
|
229
225
|
referenceType: "reservation",
|
|
230
|
-
description: `Released ${reservation.amount} reserved credits for ${reservation.operationType}`,
|
|
226
|
+
description: `Released ${reservation.amount} reserved credits for ${getOperationLabel(reservation.operationType)}`,
|
|
231
227
|
metadata: {
|
|
232
228
|
operationType: reservation.operationType,
|
|
233
229
|
amount: reservation.amount,
|
|
@@ -260,7 +256,7 @@ export class CreditsService {
|
|
|
260
256
|
* @param expiresAt - Subscription expiry date (optional)
|
|
261
257
|
*/
|
|
262
258
|
async updateTier(userId, tier, expiresAt) {
|
|
263
|
-
const monthlyLimit =
|
|
259
|
+
const monthlyLimit = getConfigMonthlyLimit(tier);
|
|
264
260
|
await this.repository.updateUserTier(userId, {
|
|
265
261
|
tier,
|
|
266
262
|
monthlyLimit: monthlyLimit === Infinity ? 0 : monthlyLimit,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"credits-service.js","sourceRoot":"","sources":["../../src/service/credits-service.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE1C,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"credits-service.js","sourceRoot":"","sources":["../../src/service/credits-service.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@nehorai/credits",
|
|
3
|
-
"version": "1.0
|
|
3
|
+
"version": "1.2.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "./dist/index.js",
|
|
6
6
|
"types": "./dist/index.d.ts",
|
|
@@ -42,9 +42,7 @@
|
|
|
42
42
|
"default": "./dist/sdk/index.js"
|
|
43
43
|
}
|
|
44
44
|
},
|
|
45
|
-
"files": [
|
|
46
|
-
"dist"
|
|
47
|
-
],
|
|
45
|
+
"files": ["dist"],
|
|
48
46
|
"license": "MIT",
|
|
49
47
|
"author": "Nehorai Hadad",
|
|
50
48
|
"repository": {
|
|
@@ -52,6 +50,13 @@
|
|
|
52
50
|
"url": "https://github.com/NehoraiHadad/nehorai-plugins",
|
|
53
51
|
"directory": "packages/credits"
|
|
54
52
|
},
|
|
53
|
+
"scripts": {
|
|
54
|
+
"build": "tsc",
|
|
55
|
+
"test": "vitest run",
|
|
56
|
+
"test:watch": "vitest",
|
|
57
|
+
"typecheck": "tsc --noEmit",
|
|
58
|
+
"prepublishOnly": "pnpm build"
|
|
59
|
+
},
|
|
55
60
|
"dependencies": {
|
|
56
61
|
"zod": "^3.24.2"
|
|
57
62
|
},
|
|
@@ -59,11 +64,5 @@
|
|
|
59
64
|
"typescript": "^5.7.3",
|
|
60
65
|
"vitest": "^3.0.5",
|
|
61
66
|
"@types/node": "^22.13.4"
|
|
62
|
-
},
|
|
63
|
-
"scripts": {
|
|
64
|
-
"build": "tsc",
|
|
65
|
-
"test": "vitest run",
|
|
66
|
-
"test:watch": "vitest",
|
|
67
|
-
"typecheck": "tsc --noEmit"
|
|
68
67
|
}
|
|
69
|
-
}
|
|
68
|
+
}
|
package/LICENSE
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
MIT License
|
|
2
|
-
|
|
3
|
-
Copyright (c) 2024 Nehorai Hadad
|
|
4
|
-
|
|
5
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
-
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
-
in the Software without restriction, including without limitation the rights
|
|
8
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
-
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
-
furnished to do so, subject to the following conditions:
|
|
11
|
-
|
|
12
|
-
The above copyright notice and this permission notice shall be included in all
|
|
13
|
-
copies or substantial portions of the Software.
|
|
14
|
-
|
|
15
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
-
SOFTWARE.
|