@lavapayments/nodejs 6.0.0 → 7.0.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/index.js CHANGED
@@ -48,43 +48,6 @@ var Resources;
48
48
  }
49
49
  );
50
50
  }
51
- /**
52
- * List checkout sessions
53
- * @param params List parameters
54
- * @returns Paginated list of checkout sessions
55
- */
56
- list(params) {
57
- const queryParams = {};
58
- if (params) {
59
- if (params.cursor) {
60
- queryParams.cursor = params.cursor;
61
- }
62
- if (params.limit) {
63
- queryParams.limit = params.limit.toString();
64
- }
65
- if (params.reference_id) {
66
- queryParams.reference_id = params.reference_id;
67
- }
68
- }
69
- return this.lava.request(
70
- "GET",
71
- "checkout_sessions",
72
- {
73
- query: queryParams
74
- }
75
- );
76
- }
77
- /**
78
- * Retrieve a checkout session
79
- * @param checkoutSessionId Checkout session ID
80
- * @returns Checkout session details
81
- */
82
- retrieve(checkoutSessionId) {
83
- return this.lava.request(
84
- "GET",
85
- `checkout_sessions/${checkoutSessionId}`
86
- );
87
- }
88
51
  }
89
52
  Resources2.CheckoutSessionsResource = CheckoutSessionsResource;
90
53
  class ConnectionsResource extends BaseResource {
@@ -102,9 +65,6 @@ var Resources;
102
65
  if (params.limit) {
103
66
  queryParams.limit = params.limit.toString();
104
67
  }
105
- if (params.reference_id) {
106
- queryParams.reference_id = params.reference_id;
107
- }
108
68
  }
109
69
  return this.lava.request(
110
70
  "GET",
@@ -125,6 +85,18 @@ var Resources;
125
85
  `connections/${connectionId}`
126
86
  );
127
87
  }
88
+ /**
89
+ * Get subscription details for a connection.
90
+ * Returns plan info, current cycle credits, and any pending changes (cancellation or downgrade).
91
+ * @param connectionId Connection ID
92
+ * @returns Subscription details or null if no active subscription
93
+ */
94
+ getSubscription(connectionId) {
95
+ return this.lava.request(
96
+ "GET",
97
+ `connections/${connectionId}/subscription`
98
+ );
99
+ }
128
100
  /**
129
101
  * Delete a connection
130
102
  * @param connectionId Connection ID
@@ -156,8 +128,8 @@ var Resources;
156
128
  if (params.connection_id) {
157
129
  queryParams.connection_id = params.connection_id;
158
130
  }
159
- if (params.product_id) {
160
- queryParams.product_id = params.product_id;
131
+ if (params.meter_id) {
132
+ queryParams.meter_id = params.meter_id;
161
133
  }
162
134
  if (params.metadata_filters) {
163
135
  queryParams.metadata_filters = JSON.stringify(
@@ -205,8 +177,8 @@ var Resources;
205
177
  if (params.connection_id) {
206
178
  queryParams.connection_id = params.connection_id;
207
179
  }
208
- if (params.product_id) {
209
- queryParams.product_id = params.product_id;
180
+ if (params.meter_id) {
181
+ queryParams.meter_id = params.meter_id;
210
182
  }
211
183
  if (params.metadata_filters) {
212
184
  queryParams.metadata_filters = JSON.stringify(
@@ -219,76 +191,132 @@ var Resources;
219
191
  }
220
192
  }
221
193
  Resources2.UsageResource = UsageResource;
222
- class SubscriptionsResource extends BaseResource {
194
+ class MetersResource extends BaseResource {
223
195
  /**
224
- * List subscription configurations
225
- * @returns List of subscription configurations
196
+ * List meters
197
+ * @param params Optional pagination parameters
198
+ * @returns Paginated list of meters
226
199
  */
227
- listConfigs() {
200
+ list(params) {
201
+ const queryParams = {};
202
+ if (params?.cursor) {
203
+ queryParams.cursor = params.cursor;
204
+ }
205
+ if (params?.limit) {
206
+ queryParams.limit = params.limit.toString();
207
+ }
208
+ return this.lava.request("GET", "meters", {
209
+ query: queryParams
210
+ });
211
+ }
212
+ /**
213
+ * Retrieve a meter
214
+ * @param id Meter ID
215
+ * @returns Meter details
216
+ */
217
+ retrieve(id) {
218
+ return this.lava.request("GET", `meters/${id}`);
219
+ }
220
+ }
221
+ Resources2.MetersResource = MetersResource;
222
+ class CreditBundlesResource extends BaseResource {
223
+ /**
224
+ * List credit bundles
225
+ * @param params Optional filter and pagination parameters
226
+ * @returns Paginated list of credit bundles
227
+ */
228
+ list(params) {
229
+ const queryParams = {};
230
+ if (params?.subscription_config_id) {
231
+ queryParams.subscription_config_id = params.subscription_config_id;
232
+ }
233
+ if (params?.cursor) {
234
+ queryParams.cursor = params.cursor;
235
+ }
236
+ if (params?.limit) {
237
+ queryParams.limit = params.limit.toString();
238
+ }
228
239
  return this.lava.request(
229
240
  "GET",
230
- "subscription-configs"
241
+ "credit_bundles",
242
+ { query: queryParams }
231
243
  );
232
244
  }
233
245
  /**
234
- * Create a subscription configuration
235
- * @param params Subscription configuration parameters
236
- * @returns Created subscription configuration
246
+ * Retrieve a credit bundle
247
+ * @param id Credit bundle ID
248
+ * @returns Credit bundle details
237
249
  */
238
- createConfig(params) {
239
- return this.lava.request(
240
- "POST",
241
- "subscription-configs",
242
- {
243
- data: params
244
- }
245
- );
250
+ retrieve(id) {
251
+ return this.lava.request("GET", `credit_bundles/${id}`);
246
252
  }
253
+ }
254
+ Resources2.CreditBundlesResource = CreditBundlesResource;
255
+ class SubscriptionsResource extends BaseResource {
247
256
  /**
248
- * Update a subscription configuration
249
- * @param id Subscription configuration ID
250
- * @param params Update parameters
251
- * @returns Updated subscription configuration
257
+ * List subscription configurations
258
+ * @param params Optional pagination parameters
259
+ * @returns Paginated list of subscription configurations
252
260
  */
253
- updateConfig(id, params) {
261
+ listConfigs(params) {
262
+ const queryParams = {};
263
+ if (params?.cursor) {
264
+ queryParams.cursor = params.cursor;
265
+ }
266
+ if (params?.limit) {
267
+ queryParams.limit = params.limit.toString();
268
+ }
254
269
  return this.lava.request(
255
- "PUT",
256
- `subscription-configs/${id}`,
257
- {
258
- data: params
259
- }
270
+ "GET",
271
+ "subscription_configs",
272
+ { query: queryParams }
260
273
  );
261
274
  }
262
275
  /**
263
- * Delete a subscription configuration
276
+ * Retrieve a subscription configuration
264
277
  * @param id Subscription configuration ID
265
- * @returns Success response
278
+ * @returns Subscription configuration details
266
279
  */
267
- deleteConfig(id) {
280
+ retrieveConfig(id) {
268
281
  return this.lava.request(
269
- "DELETE",
270
- `subscription-configs/${id}`
282
+ "GET",
283
+ `subscription_configs/${id}`
271
284
  );
272
285
  }
273
286
  /**
274
- * List active subscriptions for a merchant
275
- * @returns List of active subscriptions
287
+ * List subscriptions for a merchant
288
+ * @param params Optional filter and pagination parameters
289
+ * @returns Paginated list of subscriptions
276
290
  */
277
- listActiveSubscriptions() {
291
+ list(params) {
292
+ const queryParams = {};
293
+ if (params?.status) {
294
+ queryParams.status = params.status;
295
+ }
296
+ if (params?.connection_id) {
297
+ queryParams.connection_id = params.connection_id;
298
+ }
299
+ if (params?.cursor) {
300
+ queryParams.cursor = params.cursor;
301
+ }
302
+ if (params?.limit) {
303
+ queryParams.limit = params.limit.toString();
304
+ }
278
305
  return this.lava.request(
279
306
  "GET",
280
- "active-subscriptions"
307
+ "subscriptions",
308
+ { query: queryParams }
281
309
  );
282
310
  }
283
311
  /**
284
- * Cancel an active subscription
285
- * @param id Active subscription ID
312
+ * Cancel a subscription
313
+ * @param id Subscription ID
286
314
  * @returns Success response
287
315
  */
288
- cancelActiveSubscription(id) {
316
+ cancel(id) {
289
317
  return this.lava.request(
290
318
  "DELETE",
291
- `active-subscriptions/${id}`
319
+ `subscriptions/${id}`
292
320
  );
293
321
  }
294
322
  }
@@ -312,6 +340,8 @@ var Lava = class {
312
340
  this.requests = new Resources.RequestsResource(this);
313
341
  this.usage = new Resources.UsageResource(this);
314
342
  this.subscriptions = new Resources.SubscriptionsResource(this);
343
+ this.meters = new Resources.MetersResource(this);
344
+ this.creditBundles = new Resources.CreditBundlesResource(this);
315
345
  this.providers = {
316
346
  openai: `${this.baseUrl}forward?u=https://api.openai.com/v1`,
317
347
  anthropic: `${this.baseUrl}forward?u=https://api.anthropic.com/v1`,
@@ -338,7 +368,8 @@ var Lava = class {
338
368
  targon: `${this.baseUrl}forward?u=https://api.targon.com/v1`,
339
369
  gmicloud: `${this.baseUrl}forward?u=https://api.gmi-serving.com/v1`,
340
370
  chutes: `${this.baseUrl}forward?u=https://llm.chutes.ai/v1`,
341
- baseten: `${this.baseUrl}forward?u=https://inference.baseten.co/v1`
371
+ baseten: `${this.baseUrl}forward?u=https://inference.baseten.co/v1`,
372
+ moonshot: `${this.baseUrl}forward?u=https://api.moonshot.ai/v1`
342
373
  };
343
374
  }
344
375
  /**
@@ -386,7 +417,7 @@ var Lava = class {
386
417
  const tokenData = {
387
418
  secret_key: this.secretKey,
388
419
  connection_secret: options.connection_secret,
389
- product_secret: options.product_secret,
420
+ meter_secret: options.meter_secret,
390
421
  provider_key: options.provider_key
391
422
  };
392
423
  return Buffer.from(JSON.stringify(tokenData)).toString("base64");
package/dist/index.mjs CHANGED
@@ -21,43 +21,6 @@ var Resources;
21
21
  }
22
22
  );
23
23
  }
24
- /**
25
- * List checkout sessions
26
- * @param params List parameters
27
- * @returns Paginated list of checkout sessions
28
- */
29
- list(params) {
30
- const queryParams = {};
31
- if (params) {
32
- if (params.cursor) {
33
- queryParams.cursor = params.cursor;
34
- }
35
- if (params.limit) {
36
- queryParams.limit = params.limit.toString();
37
- }
38
- if (params.reference_id) {
39
- queryParams.reference_id = params.reference_id;
40
- }
41
- }
42
- return this.lava.request(
43
- "GET",
44
- "checkout_sessions",
45
- {
46
- query: queryParams
47
- }
48
- );
49
- }
50
- /**
51
- * Retrieve a checkout session
52
- * @param checkoutSessionId Checkout session ID
53
- * @returns Checkout session details
54
- */
55
- retrieve(checkoutSessionId) {
56
- return this.lava.request(
57
- "GET",
58
- `checkout_sessions/${checkoutSessionId}`
59
- );
60
- }
61
24
  }
62
25
  Resources2.CheckoutSessionsResource = CheckoutSessionsResource;
63
26
  class ConnectionsResource extends BaseResource {
@@ -75,9 +38,6 @@ var Resources;
75
38
  if (params.limit) {
76
39
  queryParams.limit = params.limit.toString();
77
40
  }
78
- if (params.reference_id) {
79
- queryParams.reference_id = params.reference_id;
80
- }
81
41
  }
82
42
  return this.lava.request(
83
43
  "GET",
@@ -98,6 +58,18 @@ var Resources;
98
58
  `connections/${connectionId}`
99
59
  );
100
60
  }
61
+ /**
62
+ * Get subscription details for a connection.
63
+ * Returns plan info, current cycle credits, and any pending changes (cancellation or downgrade).
64
+ * @param connectionId Connection ID
65
+ * @returns Subscription details or null if no active subscription
66
+ */
67
+ getSubscription(connectionId) {
68
+ return this.lava.request(
69
+ "GET",
70
+ `connections/${connectionId}/subscription`
71
+ );
72
+ }
101
73
  /**
102
74
  * Delete a connection
103
75
  * @param connectionId Connection ID
@@ -129,8 +101,8 @@ var Resources;
129
101
  if (params.connection_id) {
130
102
  queryParams.connection_id = params.connection_id;
131
103
  }
132
- if (params.product_id) {
133
- queryParams.product_id = params.product_id;
104
+ if (params.meter_id) {
105
+ queryParams.meter_id = params.meter_id;
134
106
  }
135
107
  if (params.metadata_filters) {
136
108
  queryParams.metadata_filters = JSON.stringify(
@@ -178,8 +150,8 @@ var Resources;
178
150
  if (params.connection_id) {
179
151
  queryParams.connection_id = params.connection_id;
180
152
  }
181
- if (params.product_id) {
182
- queryParams.product_id = params.product_id;
153
+ if (params.meter_id) {
154
+ queryParams.meter_id = params.meter_id;
183
155
  }
184
156
  if (params.metadata_filters) {
185
157
  queryParams.metadata_filters = JSON.stringify(
@@ -192,76 +164,132 @@ var Resources;
192
164
  }
193
165
  }
194
166
  Resources2.UsageResource = UsageResource;
195
- class SubscriptionsResource extends BaseResource {
167
+ class MetersResource extends BaseResource {
196
168
  /**
197
- * List subscription configurations
198
- * @returns List of subscription configurations
169
+ * List meters
170
+ * @param params Optional pagination parameters
171
+ * @returns Paginated list of meters
199
172
  */
200
- listConfigs() {
173
+ list(params) {
174
+ const queryParams = {};
175
+ if (params?.cursor) {
176
+ queryParams.cursor = params.cursor;
177
+ }
178
+ if (params?.limit) {
179
+ queryParams.limit = params.limit.toString();
180
+ }
181
+ return this.lava.request("GET", "meters", {
182
+ query: queryParams
183
+ });
184
+ }
185
+ /**
186
+ * Retrieve a meter
187
+ * @param id Meter ID
188
+ * @returns Meter details
189
+ */
190
+ retrieve(id) {
191
+ return this.lava.request("GET", `meters/${id}`);
192
+ }
193
+ }
194
+ Resources2.MetersResource = MetersResource;
195
+ class CreditBundlesResource extends BaseResource {
196
+ /**
197
+ * List credit bundles
198
+ * @param params Optional filter and pagination parameters
199
+ * @returns Paginated list of credit bundles
200
+ */
201
+ list(params) {
202
+ const queryParams = {};
203
+ if (params?.subscription_config_id) {
204
+ queryParams.subscription_config_id = params.subscription_config_id;
205
+ }
206
+ if (params?.cursor) {
207
+ queryParams.cursor = params.cursor;
208
+ }
209
+ if (params?.limit) {
210
+ queryParams.limit = params.limit.toString();
211
+ }
201
212
  return this.lava.request(
202
213
  "GET",
203
- "subscription-configs"
214
+ "credit_bundles",
215
+ { query: queryParams }
204
216
  );
205
217
  }
206
218
  /**
207
- * Create a subscription configuration
208
- * @param params Subscription configuration parameters
209
- * @returns Created subscription configuration
219
+ * Retrieve a credit bundle
220
+ * @param id Credit bundle ID
221
+ * @returns Credit bundle details
210
222
  */
211
- createConfig(params) {
212
- return this.lava.request(
213
- "POST",
214
- "subscription-configs",
215
- {
216
- data: params
217
- }
218
- );
223
+ retrieve(id) {
224
+ return this.lava.request("GET", `credit_bundles/${id}`);
219
225
  }
226
+ }
227
+ Resources2.CreditBundlesResource = CreditBundlesResource;
228
+ class SubscriptionsResource extends BaseResource {
220
229
  /**
221
- * Update a subscription configuration
222
- * @param id Subscription configuration ID
223
- * @param params Update parameters
224
- * @returns Updated subscription configuration
230
+ * List subscription configurations
231
+ * @param params Optional pagination parameters
232
+ * @returns Paginated list of subscription configurations
225
233
  */
226
- updateConfig(id, params) {
234
+ listConfigs(params) {
235
+ const queryParams = {};
236
+ if (params?.cursor) {
237
+ queryParams.cursor = params.cursor;
238
+ }
239
+ if (params?.limit) {
240
+ queryParams.limit = params.limit.toString();
241
+ }
227
242
  return this.lava.request(
228
- "PUT",
229
- `subscription-configs/${id}`,
230
- {
231
- data: params
232
- }
243
+ "GET",
244
+ "subscription_configs",
245
+ { query: queryParams }
233
246
  );
234
247
  }
235
248
  /**
236
- * Delete a subscription configuration
249
+ * Retrieve a subscription configuration
237
250
  * @param id Subscription configuration ID
238
- * @returns Success response
251
+ * @returns Subscription configuration details
239
252
  */
240
- deleteConfig(id) {
253
+ retrieveConfig(id) {
241
254
  return this.lava.request(
242
- "DELETE",
243
- `subscription-configs/${id}`
255
+ "GET",
256
+ `subscription_configs/${id}`
244
257
  );
245
258
  }
246
259
  /**
247
- * List active subscriptions for a merchant
248
- * @returns List of active subscriptions
260
+ * List subscriptions for a merchant
261
+ * @param params Optional filter and pagination parameters
262
+ * @returns Paginated list of subscriptions
249
263
  */
250
- listActiveSubscriptions() {
264
+ list(params) {
265
+ const queryParams = {};
266
+ if (params?.status) {
267
+ queryParams.status = params.status;
268
+ }
269
+ if (params?.connection_id) {
270
+ queryParams.connection_id = params.connection_id;
271
+ }
272
+ if (params?.cursor) {
273
+ queryParams.cursor = params.cursor;
274
+ }
275
+ if (params?.limit) {
276
+ queryParams.limit = params.limit.toString();
277
+ }
251
278
  return this.lava.request(
252
279
  "GET",
253
- "active-subscriptions"
280
+ "subscriptions",
281
+ { query: queryParams }
254
282
  );
255
283
  }
256
284
  /**
257
- * Cancel an active subscription
258
- * @param id Active subscription ID
285
+ * Cancel a subscription
286
+ * @param id Subscription ID
259
287
  * @returns Success response
260
288
  */
261
- cancelActiveSubscription(id) {
289
+ cancel(id) {
262
290
  return this.lava.request(
263
291
  "DELETE",
264
- `active-subscriptions/${id}`
292
+ `subscriptions/${id}`
265
293
  );
266
294
  }
267
295
  }
@@ -285,6 +313,8 @@ var Lava = class {
285
313
  this.requests = new Resources.RequestsResource(this);
286
314
  this.usage = new Resources.UsageResource(this);
287
315
  this.subscriptions = new Resources.SubscriptionsResource(this);
316
+ this.meters = new Resources.MetersResource(this);
317
+ this.creditBundles = new Resources.CreditBundlesResource(this);
288
318
  this.providers = {
289
319
  openai: `${this.baseUrl}forward?u=https://api.openai.com/v1`,
290
320
  anthropic: `${this.baseUrl}forward?u=https://api.anthropic.com/v1`,
@@ -311,7 +341,8 @@ var Lava = class {
311
341
  targon: `${this.baseUrl}forward?u=https://api.targon.com/v1`,
312
342
  gmicloud: `${this.baseUrl}forward?u=https://api.gmi-serving.com/v1`,
313
343
  chutes: `${this.baseUrl}forward?u=https://llm.chutes.ai/v1`,
314
- baseten: `${this.baseUrl}forward?u=https://inference.baseten.co/v1`
344
+ baseten: `${this.baseUrl}forward?u=https://inference.baseten.co/v1`,
345
+ moonshot: `${this.baseUrl}forward?u=https://api.moonshot.ai/v1`
315
346
  };
316
347
  }
317
348
  /**
@@ -359,7 +390,7 @@ var Lava = class {
359
390
  const tokenData = {
360
391
  secret_key: this.secretKey,
361
392
  connection_secret: options.connection_secret,
362
- product_secret: options.product_secret,
393
+ meter_secret: options.meter_secret,
363
394
  provider_key: options.provider_key
364
395
  };
365
396
  return Buffer.from(JSON.stringify(tokenData)).toString("base64");
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lavapayments/nodejs",
3
- "version": "6.0.0",
3
+ "version": "7.0.0",
4
4
  "description": "Backend SDK for Lava Payments API - enabling usage-based billing for AI services",
5
5
  "main": "dist/index.js",
6
6
  "module": "dist/index.mjs",