tokenmeter 0.9.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.
Files changed (159) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +346 -0
  3. package/dist/__tests__/context.test.d.ts +2 -0
  4. package/dist/__tests__/context.test.d.ts.map +1 -0
  5. package/dist/__tests__/context.test.js +94 -0
  6. package/dist/__tests__/context.test.js.map +1 -0
  7. package/dist/__tests__/elevenlabs.test.d.ts +2 -0
  8. package/dist/__tests__/elevenlabs.test.d.ts.map +1 -0
  9. package/dist/__tests__/elevenlabs.test.js +108 -0
  10. package/dist/__tests__/elevenlabs.test.js.map +1 -0
  11. package/dist/__tests__/fal.test.d.ts +2 -0
  12. package/dist/__tests__/fal.test.d.ts.map +1 -0
  13. package/dist/__tests__/fal.test.js +153 -0
  14. package/dist/__tests__/fal.test.js.map +1 -0
  15. package/dist/__tests__/pricing.test.d.ts +2 -0
  16. package/dist/__tests__/pricing.test.d.ts.map +1 -0
  17. package/dist/__tests__/pricing.test.js +76 -0
  18. package/dist/__tests__/pricing.test.js.map +1 -0
  19. package/dist/__tests__/recorder.test.d.ts +2 -0
  20. package/dist/__tests__/recorder.test.d.ts.map +1 -0
  21. package/dist/__tests__/recorder.test.js +133 -0
  22. package/dist/__tests__/recorder.test.js.map +1 -0
  23. package/dist/__tests__/storage.test.d.ts +2 -0
  24. package/dist/__tests__/storage.test.d.ts.map +1 -0
  25. package/dist/__tests__/storage.test.js +106 -0
  26. package/dist/__tests__/storage.test.js.map +1 -0
  27. package/dist/client/index.d.ts +8 -0
  28. package/dist/client/index.d.ts.map +1 -0
  29. package/dist/client/index.js +7 -0
  30. package/dist/client/index.js.map +1 -0
  31. package/dist/config.d.ts +92 -0
  32. package/dist/config.d.ts.map +1 -0
  33. package/dist/config.js +166 -0
  34. package/dist/config.js.map +1 -0
  35. package/dist/context.d.ts +80 -0
  36. package/dist/context.d.ts.map +1 -0
  37. package/dist/context.js +131 -0
  38. package/dist/context.js.map +1 -0
  39. package/dist/exporter/PostgresExporter.d.ts +82 -0
  40. package/dist/exporter/PostgresExporter.d.ts.map +1 -0
  41. package/dist/exporter/PostgresExporter.js +237 -0
  42. package/dist/exporter/PostgresExporter.js.map +1 -0
  43. package/dist/exporter/index.d.ts +8 -0
  44. package/dist/exporter/index.d.ts.map +1 -0
  45. package/dist/exporter/index.js +7 -0
  46. package/dist/exporter/index.js.map +1 -0
  47. package/dist/index.d.ts +31 -0
  48. package/dist/index.d.ts.map +1 -0
  49. package/dist/index.js +37 -0
  50. package/dist/index.js.map +1 -0
  51. package/dist/instrumentation/proxy.d.ts +26 -0
  52. package/dist/instrumentation/proxy.d.ts.map +1 -0
  53. package/dist/instrumentation/proxy.js +337 -0
  54. package/dist/instrumentation/proxy.js.map +1 -0
  55. package/dist/instrumentation/strategies/index.d.ts +55 -0
  56. package/dist/instrumentation/strategies/index.d.ts.map +1 -0
  57. package/dist/instrumentation/strategies/index.js +429 -0
  58. package/dist/instrumentation/strategies/index.js.map +1 -0
  59. package/dist/integrations/express/index.d.ts +137 -0
  60. package/dist/integrations/express/index.d.ts.map +1 -0
  61. package/dist/integrations/express/index.js +186 -0
  62. package/dist/integrations/express/index.js.map +1 -0
  63. package/dist/integrations/inngest/index.d.ts +222 -0
  64. package/dist/integrations/inngest/index.d.ts.map +1 -0
  65. package/dist/integrations/inngest/index.js +223 -0
  66. package/dist/integrations/inngest/index.js.map +1 -0
  67. package/dist/integrations/langfuse/index.d.ts +170 -0
  68. package/dist/integrations/langfuse/index.d.ts.map +1 -0
  69. package/dist/integrations/langfuse/index.js +225 -0
  70. package/dist/integrations/langfuse/index.js.map +1 -0
  71. package/dist/integrations/next/index.d.ts +138 -0
  72. package/dist/integrations/next/index.d.ts.map +1 -0
  73. package/dist/integrations/next/index.js +170 -0
  74. package/dist/integrations/next/index.js.map +1 -0
  75. package/dist/integrations/nextjs/index.d.ts +198 -0
  76. package/dist/integrations/nextjs/index.d.ts.map +1 -0
  77. package/dist/integrations/nextjs/index.js +181 -0
  78. package/dist/integrations/nextjs/index.js.map +1 -0
  79. package/dist/integrations/vercel-ai/index.d.ts +288 -0
  80. package/dist/integrations/vercel-ai/index.d.ts.map +1 -0
  81. package/dist/integrations/vercel-ai/index.js +260 -0
  82. package/dist/integrations/vercel-ai/index.js.map +1 -0
  83. package/dist/logger.d.ts +58 -0
  84. package/dist/logger.d.ts.map +1 -0
  85. package/dist/logger.js +89 -0
  86. package/dist/logger.js.map +1 -0
  87. package/dist/pricing/catalog.d.ts +10 -0
  88. package/dist/pricing/catalog.d.ts.map +1 -0
  89. package/dist/pricing/catalog.js +297 -0
  90. package/dist/pricing/catalog.js.map +1 -0
  91. package/dist/pricing/index.d.ts +77 -0
  92. package/dist/pricing/index.d.ts.map +1 -0
  93. package/dist/pricing/index.js +251 -0
  94. package/dist/pricing/index.js.map +1 -0
  95. package/dist/pricing/manifest.d.ts +156 -0
  96. package/dist/pricing/manifest.d.ts.map +1 -0
  97. package/dist/pricing/manifest.js +381 -0
  98. package/dist/pricing/manifest.js.map +1 -0
  99. package/dist/pricing/manifest.json +12786 -0
  100. package/dist/pricing/providers/anthropic.json +253 -0
  101. package/dist/pricing/providers/bedrock.json +341 -0
  102. package/dist/pricing/providers/bfl.json +220 -0
  103. package/dist/pricing/providers/elevenlabs.json +142 -0
  104. package/dist/pricing/providers/fal.json +15866 -0
  105. package/dist/pricing/providers/google.json +346 -0
  106. package/dist/pricing/providers/openai.json +1035 -0
  107. package/dist/pricing/schema.d.ts +102 -0
  108. package/dist/pricing/schema.d.ts.map +1 -0
  109. package/dist/pricing/schema.js +56 -0
  110. package/dist/pricing/schema.js.map +1 -0
  111. package/dist/processor/TokenMeterProcessor.d.ts +55 -0
  112. package/dist/processor/TokenMeterProcessor.d.ts.map +1 -0
  113. package/dist/processor/TokenMeterProcessor.js +132 -0
  114. package/dist/processor/TokenMeterProcessor.js.map +1 -0
  115. package/dist/query/client.d.ts +61 -0
  116. package/dist/query/client.d.ts.map +1 -0
  117. package/dist/query/client.js +206 -0
  118. package/dist/query/client.js.map +1 -0
  119. package/dist/query/index.d.ts +8 -0
  120. package/dist/query/index.d.ts.map +1 -0
  121. package/dist/query/index.js +7 -0
  122. package/dist/query/index.js.map +1 -0
  123. package/dist/recorder.d.ts +74 -0
  124. package/dist/recorder.d.ts.map +1 -0
  125. package/dist/recorder.js +227 -0
  126. package/dist/recorder.js.map +1 -0
  127. package/dist/sdks/anthropic.d.ts +21 -0
  128. package/dist/sdks/anthropic.d.ts.map +1 -0
  129. package/dist/sdks/anthropic.js +258 -0
  130. package/dist/sdks/anthropic.js.map +1 -0
  131. package/dist/sdks/elevenlabs.d.ts +59 -0
  132. package/dist/sdks/elevenlabs.d.ts.map +1 -0
  133. package/dist/sdks/elevenlabs.js +192 -0
  134. package/dist/sdks/elevenlabs.js.map +1 -0
  135. package/dist/sdks/fal.d.ts +102 -0
  136. package/dist/sdks/fal.d.ts.map +1 -0
  137. package/dist/sdks/fal.js +306 -0
  138. package/dist/sdks/fal.js.map +1 -0
  139. package/dist/sdks/openai.d.ts +17 -0
  140. package/dist/sdks/openai.d.ts.map +1 -0
  141. package/dist/sdks/openai.js +191 -0
  142. package/dist/sdks/openai.js.map +1 -0
  143. package/dist/storage/interface.d.ts +15 -0
  144. package/dist/storage/interface.d.ts.map +1 -0
  145. package/dist/storage/interface.js +53 -0
  146. package/dist/storage/interface.js.map +1 -0
  147. package/dist/storage/prisma.d.ts +15 -0
  148. package/dist/storage/prisma.d.ts.map +1 -0
  149. package/dist/storage/prisma.js +135 -0
  150. package/dist/storage/prisma.js.map +1 -0
  151. package/dist/types.d.ts +206 -0
  152. package/dist/types.d.ts.map +1 -0
  153. package/dist/types.js +45 -0
  154. package/dist/types.js.map +1 -0
  155. package/dist/vercel-ai/index.d.ts +89 -0
  156. package/dist/vercel-ai/index.d.ts.map +1 -0
  157. package/dist/vercel-ai/index.js +298 -0
  158. package/dist/vercel-ai/index.js.map +1 -0
  159. package/package.json +119 -0
@@ -0,0 +1,381 @@
1
+ /**
2
+ * Pricing Manifest Fetcher
3
+ *
4
+ * Remote-first pricing with local fallback for reliability.
5
+ * Fetches latest pricing from CDN, falls back to bundled data if unavailable.
6
+ */
7
+ import { logger } from "../logger.js";
8
+ /**
9
+ * Default Pricing API URL.
10
+ * Primary source for pricing data with automatic updates.
11
+ */
12
+ const DEFAULT_API_URL = "https://pricing.tokenmeter.dev/api/v1";
13
+ /**
14
+ * Fallback CDN URL for the pricing manifest.
15
+ * Used when the API is unavailable.
16
+ */
17
+ const DEFAULT_CDN_URL = "https://cdn.jsdelivr.net/npm/tokenmeter@latest/dist/pricing/manifest.json";
18
+ // Global configuration
19
+ let globalConfig = {};
20
+ // Model alias storage for fast lookup
21
+ let modelAliases = {};
22
+ // Cache for the loaded manifest
23
+ let cachedManifest = null;
24
+ let manifestLoadPromise = null;
25
+ let cacheTimestamp = null;
26
+ /**
27
+ * Configure global pricing settings.
28
+ *
29
+ * @example
30
+ * ```typescript
31
+ * import { configurePricing } from 'tokenmeter';
32
+ *
33
+ * // Use custom CDN
34
+ * configurePricing({ manifestUrl: 'https://your-cdn.com/manifest.json' });
35
+ *
36
+ * // Offline mode (bundled pricing only)
37
+ * configurePricing({ offlineMode: true });
38
+ *
39
+ * // Custom model aliases
40
+ * configurePricing({
41
+ * modelAliases: {
42
+ * "bedrock-claude-4-5-sonnet": { provider: "bedrock", model: "anthropic.claude-sonnet-4-5" },
43
+ * }
44
+ * });
45
+ * ```
46
+ */
47
+ export function configurePricing(config) {
48
+ globalConfig = { ...globalConfig, ...config };
49
+ // Update model aliases if provided
50
+ if (config.modelAliases) {
51
+ modelAliases = { ...modelAliases, ...config.modelAliases };
52
+ }
53
+ // Clear cache when config changes
54
+ clearManifestCache();
55
+ }
56
+ /**
57
+ * Get the current pricing configuration.
58
+ */
59
+ export function getPricingConfig() {
60
+ return { ...globalConfig };
61
+ }
62
+ /**
63
+ * Build a manifest from the bundled provider JSON files (local fallback)
64
+ */
65
+ async function buildLocalManifest() {
66
+ // Import existing provider pricing files
67
+ const [openaiPricing, anthropicPricing, googlePricing, elevenlabsPricing, falPricing, bedrockPricing, bflPricing,] = await Promise.all([
68
+ import("./providers/openai.json", { with: { type: "json" } }),
69
+ import("./providers/anthropic.json", { with: { type: "json" } }),
70
+ import("./providers/google.json", { with: { type: "json" } }),
71
+ import("./providers/elevenlabs.json", { with: { type: "json" } }),
72
+ import("./providers/fal.json", { with: { type: "json" } }),
73
+ import("./providers/bedrock.json", { with: { type: "json" } }),
74
+ import("./providers/bfl.json", { with: { type: "json" } }),
75
+ ]);
76
+ // Convert to manifest format
77
+ const manifest = {
78
+ version: "1.0.0",
79
+ updatedAt: new Date().toISOString(),
80
+ providers: {},
81
+ };
82
+ // Helper to convert old format to new format
83
+ const convertProvider = (providerData, defaultUnit) => {
84
+ const pricing = {};
85
+ for (const [modelId, model] of Object.entries(providerData.models)) {
86
+ const m = model;
87
+ if (!m.pricing || m.pricing.length === 0)
88
+ continue;
89
+ const currentPricing = m.pricing[m.pricing.length - 1];
90
+ if (!currentPricing)
91
+ continue;
92
+ // Map old units to new units
93
+ let unit = defaultUnit;
94
+ if (m.unit === "tokens")
95
+ unit = "1m_tokens";
96
+ else if (m.unit === "characters")
97
+ unit = "1k_characters";
98
+ else if (m.unit === "images")
99
+ unit = "image";
100
+ else if (m.unit === "seconds")
101
+ unit = "second";
102
+ else if (m.unit === "minutes")
103
+ unit = "minute";
104
+ else if (m.unit === "megapixels")
105
+ unit = "megapixel";
106
+ else if (m.unit === "requests")
107
+ unit = "request";
108
+ const modelPricing = {
109
+ input: currentPricing.input,
110
+ output: currentPricing.output,
111
+ cachedInput: currentPricing.cachedInput,
112
+ cost: currentPricing.cost,
113
+ unit,
114
+ };
115
+ pricing[modelId] = modelPricing;
116
+ // Also add aliases
117
+ if (m.aliases) {
118
+ for (const alias of m.aliases) {
119
+ pricing[alias] = modelPricing;
120
+ }
121
+ }
122
+ }
123
+ return pricing;
124
+ };
125
+ manifest.providers.openai = convertProvider(openaiPricing.default, "1m_tokens");
126
+ manifest.providers.anthropic = convertProvider(anthropicPricing.default, "1m_tokens");
127
+ manifest.providers.google = convertProvider(googlePricing.default, "1m_tokens");
128
+ manifest.providers.elevenlabs = convertProvider(elevenlabsPricing.default, "1k_characters");
129
+ manifest.providers.fal = convertProvider(falPricing.default, "request");
130
+ manifest.providers.bedrock = convertProvider(bedrockPricing.default, "1m_tokens");
131
+ manifest.providers.bfl = convertProvider(bflPricing.default, "image");
132
+ return manifest;
133
+ }
134
+ /**
135
+ * Fetch manifest from remote URL with timeout
136
+ */
137
+ async function fetchRemoteManifest(url, timeoutMs) {
138
+ const controller = new AbortController();
139
+ const timeoutId = setTimeout(() => controller.abort(), timeoutMs);
140
+ try {
141
+ const response = await fetch(url, {
142
+ headers: {
143
+ Accept: "application/json",
144
+ "User-Agent": "tokenmeter/5.0",
145
+ },
146
+ signal: controller.signal,
147
+ });
148
+ if (!response.ok) {
149
+ throw new Error(`Failed to fetch manifest: ${response.status} ${response.statusText}`);
150
+ }
151
+ return response.json();
152
+ }
153
+ finally {
154
+ clearTimeout(timeoutId);
155
+ }
156
+ }
157
+ /**
158
+ * Fetch manifest from Pricing API and convert to internal format
159
+ */
160
+ async function fetchFromAPI(apiUrl, timeoutMs) {
161
+ const controller = new AbortController();
162
+ const timeoutId = setTimeout(() => controller.abort(), timeoutMs);
163
+ try {
164
+ const response = await fetch(`${apiUrl}/manifest`, {
165
+ headers: {
166
+ Accept: "application/json",
167
+ "User-Agent": "tokenmeter/5.0",
168
+ },
169
+ signal: controller.signal,
170
+ });
171
+ if (!response.ok) {
172
+ throw new Error(`Failed to fetch from API: ${response.status} ${response.statusText}`);
173
+ }
174
+ const apiManifest = (await response.json());
175
+ // Convert API format to internal format
176
+ const manifest = {
177
+ version: apiManifest.version || "1.0.0",
178
+ updatedAt: apiManifest.updated_at || new Date().toISOString(),
179
+ providers: {},
180
+ };
181
+ // Group models by provider
182
+ for (const [modelId, model] of Object.entries(apiManifest.models || {})) {
183
+ if (!manifest.providers[model.provider]) {
184
+ manifest.providers[model.provider] = {};
185
+ }
186
+ manifest.providers[model.provider][modelId] = {
187
+ input: model.input,
188
+ output: model.output,
189
+ cachedInput: model.cached_input,
190
+ cachedOutput: model.cached_output,
191
+ cacheWrite: model.cache_write,
192
+ cacheRead: model.cache_read,
193
+ unit: model.unit || "1m_tokens",
194
+ };
195
+ }
196
+ return manifest;
197
+ }
198
+ finally {
199
+ clearTimeout(timeoutId);
200
+ }
201
+ }
202
+ /**
203
+ * Load the pricing manifest.
204
+ *
205
+ * Fetches from Pricing API first, then CDN, with automatic fallback
206
+ * to bundled local data if all remote sources are unavailable.
207
+ *
208
+ * @param options.apiUrl - Override the API URL
209
+ * @param options.cdnUrl - Override the CDN URL
210
+ * @param options.manifestUrl - Legacy: Override the manifest URL (deprecated)
211
+ * @param options.forceRefresh - Force reload even if cached
212
+ * @param options.offlineMode - Skip remote fetch, use local only
213
+ */
214
+ export async function loadManifest(options = {}) {
215
+ // Merge with global config
216
+ const config = { ...globalConfig, ...options };
217
+ const cacheTimeout = config.cacheTimeout ?? 5 * 60 * 1000; // 5 minutes default
218
+ // Check if cache is still valid
219
+ const isCacheValid = cachedManifest &&
220
+ cacheTimestamp &&
221
+ Date.now() - cacheTimestamp < cacheTimeout;
222
+ // Return cached if available, valid, and not forcing refresh
223
+ if (isCacheValid && !config.forceRefresh) {
224
+ return cachedManifest;
225
+ }
226
+ // If already loading, wait for that
227
+ if (manifestLoadPromise && !config.forceRefresh) {
228
+ return manifestLoadPromise;
229
+ }
230
+ manifestLoadPromise = (async () => {
231
+ // If offline mode, skip remote fetch
232
+ if (config.offlineMode) {
233
+ logger.debug("Offline mode enabled, using bundled pricing");
234
+ cachedManifest = await buildLocalManifest();
235
+ cacheTimestamp = Date.now();
236
+ return cachedManifest;
237
+ }
238
+ const timeout = config.fetchTimeout ?? 5000;
239
+ // Try Pricing API first
240
+ const apiUrl = config.apiUrl || DEFAULT_API_URL;
241
+ try {
242
+ cachedManifest = await fetchFromAPI(apiUrl, timeout);
243
+ cacheTimestamp = Date.now();
244
+ logger.info("Loaded pricing manifest from API");
245
+ return cachedManifest;
246
+ }
247
+ catch (apiError) {
248
+ logger.debug("API unavailable, trying CDN:", apiError);
249
+ }
250
+ // Try CDN as fallback
251
+ const cdnUrl = config.cdnUrl || config.manifestUrl || DEFAULT_CDN_URL;
252
+ try {
253
+ cachedManifest = await fetchRemoteManifest(cdnUrl, timeout);
254
+ cacheTimestamp = Date.now();
255
+ logger.info("Loaded pricing manifest from CDN");
256
+ return cachedManifest;
257
+ }
258
+ catch (cdnError) {
259
+ logger.debug("CDN unavailable, using bundled pricing:", cdnError);
260
+ }
261
+ // Fallback to local bundled pricing
262
+ logger.warn("All remote sources unavailable, using bundled pricing");
263
+ cachedManifest = await buildLocalManifest();
264
+ cacheTimestamp = Date.now();
265
+ return cachedManifest;
266
+ })();
267
+ return manifestLoadPromise;
268
+ }
269
+ /**
270
+ * Get pricing for a specific model
271
+ */
272
+ export function getModelPricing(provider, model, manifest) {
273
+ // 1. Check custom model aliases first
274
+ const alias = modelAliases[model];
275
+ if (alias) {
276
+ const aliasProviderPricing = manifest.providers[alias.provider];
277
+ if (aliasProviderPricing?.[alias.model]) {
278
+ return aliasProviderPricing[alias.model];
279
+ }
280
+ }
281
+ const providerPricing = manifest.providers[provider];
282
+ if (!providerPricing) {
283
+ return null;
284
+ }
285
+ // 2. Try exact match
286
+ if (providerPricing[model]) {
287
+ return providerPricing[model];
288
+ }
289
+ // 3. Try without version suffix (e.g., "gpt-4o-2024-05-13" -> "gpt-4o")
290
+ const baseModel = model.replace(/-\d{4}-\d{2}-\d{2}$/, "");
291
+ if (baseModel !== model && providerPricing[baseModel]) {
292
+ return providerPricing[baseModel];
293
+ }
294
+ // 4. Try with provider prefix stripped (some APIs return just the model name)
295
+ const withoutPrefix = model.replace(/^[^/]+\//, "");
296
+ if (withoutPrefix !== model && providerPricing[withoutPrefix]) {
297
+ return providerPricing[withoutPrefix];
298
+ }
299
+ return null;
300
+ }
301
+ /**
302
+ * Calculate cost based on usage and pricing
303
+ */
304
+ export function calculateCost(usage, pricing) {
305
+ let cost = 0;
306
+ // Get the divisor based on unit
307
+ const getDivisor = (unit) => {
308
+ switch (unit) {
309
+ case "1m_tokens":
310
+ return 1_000_000;
311
+ case "1k_tokens":
312
+ case "1k_characters":
313
+ return 1_000;
314
+ default:
315
+ return 1;
316
+ }
317
+ };
318
+ const divisor = getDivisor(pricing.unit);
319
+ // Flat cost (request-based pricing)
320
+ if (pricing.cost !== undefined) {
321
+ cost += pricing.cost;
322
+ }
323
+ // Input cost
324
+ if (usage.inputUnits !== undefined && pricing.input !== undefined) {
325
+ cost += (usage.inputUnits / divisor) * pricing.input;
326
+ }
327
+ // Output cost
328
+ if (usage.outputUnits !== undefined && pricing.output !== undefined) {
329
+ cost += (usage.outputUnits / divisor) * pricing.output;
330
+ }
331
+ // Cached input cost
332
+ if (usage.cachedInputUnits !== undefined &&
333
+ pricing.cachedInput !== undefined) {
334
+ cost += (usage.cachedInputUnits / divisor) * pricing.cachedInput;
335
+ }
336
+ return cost;
337
+ }
338
+ /**
339
+ * Get the cached manifest (or null if not loaded)
340
+ */
341
+ export function getCachedManifest() {
342
+ return cachedManifest;
343
+ }
344
+ /**
345
+ * Clear the manifest cache
346
+ */
347
+ export function clearManifestCache() {
348
+ cachedManifest = null;
349
+ manifestLoadPromise = null;
350
+ cacheTimestamp = null;
351
+ }
352
+ /**
353
+ * Set model aliases for pricing lookup.
354
+ * Merges with existing aliases.
355
+ *
356
+ * @example
357
+ * ```typescript
358
+ * import { setModelAliases } from 'tokenmeter';
359
+ *
360
+ * setModelAliases({
361
+ * "bedrock-claude-4-5-sonnet": { provider: "bedrock", model: "anthropic.claude-sonnet-4-5" },
362
+ * "my-custom-gpt": { provider: "openai", model: "gpt-4o" },
363
+ * });
364
+ * ```
365
+ */
366
+ export function setModelAliases(aliases) {
367
+ modelAliases = { ...modelAliases, ...aliases };
368
+ }
369
+ /**
370
+ * Clear all model aliases
371
+ */
372
+ export function clearModelAliases() {
373
+ modelAliases = {};
374
+ }
375
+ /**
376
+ * Get current model aliases
377
+ */
378
+ export function getModelAliases() {
379
+ return { ...modelAliases };
380
+ }
381
+ //# sourceMappingURL=manifest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manifest.js","sourceRoot":"","sources":["../../src/pricing/manifest.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAQH,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAEtC;;;GAGG;AACH,MAAM,eAAe,GAAG,uCAAuC,CAAC;AAEhE;;;GAGG;AACH,MAAM,eAAe,GACnB,2EAA2E,CAAC;AAsE9E,uBAAuB;AACvB,IAAI,YAAY,GAAkB,EAAE,CAAC;AAErC,sCAAsC;AACtC,IAAI,YAAY,GAA+B,EAAE,CAAC;AAElD,gCAAgC;AAChC,IAAI,cAAc,GAA2B,IAAI,CAAC;AAClD,IAAI,mBAAmB,GAAoC,IAAI,CAAC;AAChE,IAAI,cAAc,GAAkB,IAAI,CAAC;AAEzC;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,UAAU,gBAAgB,CAAC,MAAqB;IACpD,YAAY,GAAG,EAAE,GAAG,YAAY,EAAE,GAAG,MAAM,EAAE,CAAC;IAE9C,mCAAmC;IACnC,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;QACxB,YAAY,GAAG,EAAE,GAAG,YAAY,EAAE,GAAG,MAAM,CAAC,YAAY,EAAE,CAAC;IAC7D,CAAC;IAED,kCAAkC;IAClC,kBAAkB,EAAE,CAAC;AACvB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB;IAC9B,OAAO,EAAE,GAAG,YAAY,EAAE,CAAC;AAC7B,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,kBAAkB;IAC/B,yCAAyC;IACzC,MAAM,CACJ,aAAa,EACb,gBAAgB,EAChB,aAAa,EACb,iBAAiB,EACjB,UAAU,EACV,cAAc,EACd,UAAU,EACX,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;QACpB,MAAM,CAAC,yBAAyB,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC;QAC7D,MAAM,CAAC,4BAA4B,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC;QAChE,MAAM,CAAC,yBAAyB,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC;QAC7D,MAAM,CAAC,6BAA6B,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC;QACjE,MAAM,CAAC,sBAAsB,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC;QAC1D,MAAM,CAAC,0BAA0B,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC;QAC9D,MAAM,CAAC,sBAAsB,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC;KAC3D,CAAC,CAAC;IAEH,6BAA6B;IAC7B,MAAM,QAAQ,GAAoB;QAChC,OAAO,EAAE,OAAO;QAChB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACnC,SAAS,EAAE,EAAE;KACd,CAAC;IAEF,6CAA6C;IAC7C,MAAM,eAAe,GAAG,CACtB,YAAiD,EACjD,WAAwB,EACP,EAAE;QACnB,MAAM,OAAO,GAAoB,EAAE,CAAC;QAEpC,KAAK,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC;YACnE,MAAM,CAAC,GAAG,KAST,CAAC;YAEF,IAAI,CAAC,CAAC,CAAC,OAAO,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC;gBAAE,SAAS;YAEnD,MAAM,cAAc,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YACvD,IAAI,CAAC,cAAc;gBAAE,SAAS;YAE9B,6BAA6B;YAC7B,IAAI,IAAI,GAAgB,WAAW,CAAC;YACpC,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ;gBAAE,IAAI,GAAG,WAAW,CAAC;iBACvC,IAAI,CAAC,CAAC,IAAI,KAAK,YAAY;gBAAE,IAAI,GAAG,eAAe,CAAC;iBACpD,IAAI,CAAC,CAAC,IAAI,KAAK,QAAQ;gBAAE,IAAI,GAAG,OAAO,CAAC;iBACxC,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS;gBAAE,IAAI,GAAG,QAAQ,CAAC;iBAC1C,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS;gBAAE,IAAI,GAAG,QAAQ,CAAC;iBAC1C,IAAI,CAAC,CAAC,IAAI,KAAK,YAAY;gBAAE,IAAI,GAAG,WAAW,CAAC;iBAChD,IAAI,CAAC,CAAC,IAAI,KAAK,UAAU;gBAAE,IAAI,GAAG,SAAS,CAAC;YAEjD,MAAM,YAAY,GAAiB;gBACjC,KAAK,EAAE,cAAc,CAAC,KAAK;gBAC3B,MAAM,EAAE,cAAc,CAAC,MAAM;gBAC7B,WAAW,EAAE,cAAc,CAAC,WAAW;gBACvC,IAAI,EAAE,cAAc,CAAC,IAAI;gBACzB,IAAI;aACL,CAAC;YAEF,OAAO,CAAC,OAAO,CAAC,GAAG,YAAY,CAAC;YAEhC,mBAAmB;YACnB,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;gBACd,KAAK,MAAM,KAAK,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;oBAC9B,OAAO,CAAC,KAAK,CAAC,GAAG,YAAY,CAAC;gBAChC,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC,CAAC;IAEF,QAAQ,CAAC,SAAS,CAAC,MAAM,GAAG,eAAe,CACzC,aAAa,CAAC,OAAO,EACrB,WAAW,CACZ,CAAC;IACF,QAAQ,CAAC,SAAS,CAAC,SAAS,GAAG,eAAe,CAC5C,gBAAgB,CAAC,OAAO,EACxB,WAAW,CACZ,CAAC;IACF,QAAQ,CAAC,SAAS,CAAC,MAAM,GAAG,eAAe,CACzC,aAAa,CAAC,OAAO,EACrB,WAAW,CACZ,CAAC;IACF,QAAQ,CAAC,SAAS,CAAC,UAAU,GAAG,eAAe,CAC7C,iBAAiB,CAAC,OAAO,EACzB,eAAe,CAChB,CAAC;IACF,QAAQ,CAAC,SAAS,CAAC,GAAG,GAAG,eAAe,CAAC,UAAU,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;IACxE,QAAQ,CAAC,SAAS,CAAC,OAAO,GAAG,eAAe,CAC1C,cAAc,CAAC,OAAO,EACtB,WAAW,CACZ,CAAC;IACF,QAAQ,CAAC,SAAS,CAAC,GAAG,GAAG,eAAe,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAEtE,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,mBAAmB,CAChC,GAAW,EACX,SAAiB;IAEjB,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;IACzC,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,SAAS,CAAC,CAAC;IAElE,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;YAChC,OAAO,EAAE;gBACP,MAAM,EAAE,kBAAkB;gBAC1B,YAAY,EAAE,gBAAgB;aAC/B;YACD,MAAM,EAAE,UAAU,CAAC,MAAM;SAC1B,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CACb,6BAA6B,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,EAAE,CACtE,CAAC;QACJ,CAAC;QAED,OAAO,QAAQ,CAAC,IAAI,EAA8B,CAAC;IACrD,CAAC;YAAS,CAAC;QACT,YAAY,CAAC,SAAS,CAAC,CAAC;IAC1B,CAAC;AACH,CAAC;AAuBD;;GAEG;AACH,KAAK,UAAU,YAAY,CACzB,MAAc,EACd,SAAiB;IAEjB,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;IACzC,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,SAAS,CAAC,CAAC;IAElE,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,MAAM,WAAW,EAAE;YACjD,OAAO,EAAE;gBACP,MAAM,EAAE,kBAAkB;gBAC1B,YAAY,EAAE,gBAAgB;aAC/B;YACD,MAAM,EAAE,UAAU,CAAC,MAAM;SAC1B,CAAC,CAAC;QAEH,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CACb,6BAA6B,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,UAAU,EAAE,CACtE,CAAC;QACJ,CAAC;QAED,MAAM,WAAW,GAAG,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAwB,CAAC;QAEnE,wCAAwC;QACxC,MAAM,QAAQ,GAAoB;YAChC,OAAO,EAAE,WAAW,CAAC,OAAO,IAAI,OAAO;YACvC,SAAS,EAAE,WAAW,CAAC,UAAU,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YAC7D,SAAS,EAAE,EAAE;SACd,CAAC;QAEF,2BAA2B;QAC3B,KAAK,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,MAAM,IAAI,EAAE,CAAC,EAAE,CAAC;YACxE,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACxC,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;YAC1C,CAAC;YAED,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,GAAG;gBAC5C,KAAK,EAAE,KAAK,CAAC,KAAK;gBAClB,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,WAAW,EAAE,KAAK,CAAC,YAAY;gBAC/B,YAAY,EAAE,KAAK,CAAC,aAAa;gBACjC,UAAU,EAAE,KAAK,CAAC,WAAW;gBAC7B,SAAS,EAAE,KAAK,CAAC,UAAU;gBAC3B,IAAI,EAAG,KAAK,CAAC,IAAoB,IAAI,WAAW;aACjD,CAAC;QACJ,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;YAAS,CAAC;QACT,YAAY,CAAC,SAAS,CAAC,CAAC;IAC1B,CAAC;AACH,CAAC;AAED;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,UAMI,EAAE;IAEN,2BAA2B;IAC3B,MAAM,MAAM,GAAG,EAAE,GAAG,YAAY,EAAE,GAAG,OAAO,EAAE,CAAC;IAC/C,MAAM,YAAY,GAAG,MAAM,CAAC,YAAY,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,oBAAoB;IAE/E,gCAAgC;IAChC,MAAM,YAAY,GAChB,cAAc;QACd,cAAc;QACd,IAAI,CAAC,GAAG,EAAE,GAAG,cAAc,GAAG,YAAY,CAAC;IAE7C,6DAA6D;IAC7D,IAAI,YAAY,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;QACzC,OAAO,cAAe,CAAC;IACzB,CAAC;IAED,oCAAoC;IACpC,IAAI,mBAAmB,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;QAChD,OAAO,mBAAmB,CAAC;IAC7B,CAAC;IAED,mBAAmB,GAAG,CAAC,KAAK,IAAI,EAAE;QAChC,qCAAqC;QACrC,IAAI,MAAM,CAAC,WAAW,EAAE,CAAC;YACvB,MAAM,CAAC,KAAK,CAAC,6CAA6C,CAAC,CAAC;YAC5D,cAAc,GAAG,MAAM,kBAAkB,EAAE,CAAC;YAC5C,cAAc,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAC5B,OAAO,cAAc,CAAC;QACxB,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,CAAC,YAAY,IAAI,IAAI,CAAC;QAE5C,wBAAwB;QACxB,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,eAAe,CAAC;QAChD,IAAI,CAAC;YACH,cAAc,GAAG,MAAM,YAAY,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YACrD,cAAc,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAC5B,MAAM,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;YAChD,OAAO,cAAc,CAAC;QACxB,CAAC;QAAC,OAAO,QAAQ,EAAE,CAAC;YAClB,MAAM,CAAC,KAAK,CAAC,8BAA8B,EAAE,QAAQ,CAAC,CAAC;QACzD,CAAC;QAED,sBAAsB;QACtB,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,WAAW,IAAI,eAAe,CAAC;QACtE,IAAI,CAAC;YACH,cAAc,GAAG,MAAM,mBAAmB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;YAC5D,cAAc,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAC5B,MAAM,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;YAChD,OAAO,cAAc,CAAC;QACxB,CAAC;QAAC,OAAO,QAAQ,EAAE,CAAC;YAClB,MAAM,CAAC,KAAK,CAAC,yCAAyC,EAAE,QAAQ,CAAC,CAAC;QACpE,CAAC;QAED,oCAAoC;QACpC,MAAM,CAAC,IAAI,CAAC,uDAAuD,CAAC,CAAC;QACrE,cAAc,GAAG,MAAM,kBAAkB,EAAE,CAAC;QAC5C,cAAc,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAC5B,OAAO,cAAc,CAAC;IACxB,CAAC,CAAC,EAAE,CAAC;IAEL,OAAO,mBAAmB,CAAC;AAC7B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAC7B,QAAgB,EAChB,KAAa,EACb,QAAyB;IAEzB,sCAAsC;IACtC,MAAM,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;IAClC,IAAI,KAAK,EAAE,CAAC;QACV,MAAM,oBAAoB,GAAG,QAAQ,CAAC,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAChE,IAAI,oBAAoB,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;YACxC,OAAO,oBAAoB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC3C,CAAC;IACH,CAAC;IAED,MAAM,eAAe,GAAG,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IACrD,IAAI,CAAC,eAAe,EAAE,CAAC;QACrB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,qBAAqB;IACrB,IAAI,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC;QAC3B,OAAO,eAAe,CAAC,KAAK,CAAC,CAAC;IAChC,CAAC;IAED,wEAAwE;IACxE,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,qBAAqB,EAAE,EAAE,CAAC,CAAC;IAC3D,IAAI,SAAS,KAAK,KAAK,IAAI,eAAe,CAAC,SAAS,CAAC,EAAE,CAAC;QACtD,OAAO,eAAe,CAAC,SAAS,CAAC,CAAC;IACpC,CAAC;IAED,8EAA8E;IAC9E,MAAM,aAAa,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;IACpD,IAAI,aAAa,KAAK,KAAK,IAAI,eAAe,CAAC,aAAa,CAAC,EAAE,CAAC;QAC9D,OAAO,eAAe,CAAC,aAAa,CAAC,CAAC;IACxC,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAC3B,KAIC,EACD,OAAqB;IAErB,IAAI,IAAI,GAAG,CAAC,CAAC;IAEb,gCAAgC;IAChC,MAAM,UAAU,GAAG,CAAC,IAAY,EAAU,EAAE;QAC1C,QAAQ,IAAI,EAAE,CAAC;YACb,KAAK,WAAW;gBACd,OAAO,SAAS,CAAC;YACnB,KAAK,WAAW,CAAC;YACjB,KAAK,eAAe;gBAClB,OAAO,KAAK,CAAC;YACf;gBACE,OAAO,CAAC,CAAC;QACb,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAEzC,oCAAoC;IACpC,IAAI,OAAO,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QAC/B,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IACvB,CAAC;IAED,aAAa;IACb,IAAI,KAAK,CAAC,UAAU,KAAK,SAAS,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QAClE,IAAI,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,OAAO,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC;IACvD,CAAC;IAED,cAAc;IACd,IAAI,KAAK,CAAC,WAAW,KAAK,SAAS,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QACpE,IAAI,IAAI,CAAC,KAAK,CAAC,WAAW,GAAG,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IACzD,CAAC;IAED,oBAAoB;IACpB,IACE,KAAK,CAAC,gBAAgB,KAAK,SAAS;QACpC,OAAO,CAAC,WAAW,KAAK,SAAS,EACjC,CAAC;QACD,IAAI,IAAI,CAAC,KAAK,CAAC,gBAAgB,GAAG,OAAO,CAAC,GAAG,OAAO,CAAC,WAAW,CAAC;IACnE,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB;IAC/B,OAAO,cAAc,CAAC;AACxB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB;IAChC,cAAc,GAAG,IAAI,CAAC;IACtB,mBAAmB,GAAG,IAAI,CAAC;IAC3B,cAAc,GAAG,IAAI,CAAC;AACxB,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,eAAe,CAC7B,OAAmC;IAEnC,YAAY,GAAG,EAAE,GAAG,YAAY,EAAE,GAAG,OAAO,EAAE,CAAC;AACjD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB;IAC/B,YAAY,GAAG,EAAE,CAAC;AACpB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe;IAC7B,OAAO,EAAE,GAAG,YAAY,EAAE,CAAC;AAC7B,CAAC"}