@openmeter/sdk 1.0.0-beta.185 → 1.0.0-beta.189

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 (199) hide show
  1. package/README.md +38 -309
  2. package/dist/cjs/index.cjs +1 -34
  3. package/dist/cjs/index.d.cts +1 -24
  4. package/dist/cjs/index.js.map +1 -1
  5. package/dist/cjs/src/client/apps.cjs +174 -0
  6. package/dist/cjs/src/client/apps.d.cts +259 -0
  7. package/dist/cjs/src/client/apps.js.map +1 -0
  8. package/dist/cjs/src/client/billing.cjs +309 -0
  9. package/dist/cjs/src/client/billing.d.cts +510 -0
  10. package/dist/cjs/src/client/billing.js.map +1 -0
  11. package/dist/cjs/src/client/common.cjs +47 -0
  12. package/dist/cjs/src/client/common.d.cts +30 -0
  13. package/dist/cjs/src/client/common.js.map +1 -0
  14. package/dist/cjs/src/client/customers.cjs +185 -0
  15. package/dist/cjs/src/client/customers.d.cts +163 -0
  16. package/dist/cjs/src/client/customers.js.map +1 -0
  17. package/dist/cjs/src/client/entitlements.cjs +244 -0
  18. package/dist/cjs/src/client/entitlements.d.cts +442 -0
  19. package/dist/cjs/src/client/entitlements.js.map +1 -0
  20. package/dist/cjs/src/client/events.cjs +66 -0
  21. package/dist/cjs/src/client/events.d.cts +31 -0
  22. package/dist/cjs/src/client/events.js.map +1 -0
  23. package/dist/cjs/src/client/features.cjs +78 -0
  24. package/dist/cjs/src/client/features.d.cts +78 -0
  25. package/dist/cjs/src/client/features.js.map +1 -0
  26. package/dist/cjs/src/client/index.cjs +108 -0
  27. package/dist/cjs/src/client/index.d.cts +45 -0
  28. package/dist/cjs/src/client/index.js.map +1 -0
  29. package/dist/cjs/src/client/meters.cjs +93 -0
  30. package/dist/cjs/src/client/meters.d.cts +145 -0
  31. package/dist/cjs/src/client/meters.js.map +1 -0
  32. package/dist/cjs/src/client/notifications.cjs +249 -0
  33. package/dist/cjs/src/client/notifications.d.cts +219 -0
  34. package/dist/cjs/src/client/notifications.js.map +1 -0
  35. package/dist/cjs/src/client/plans.cjs +127 -0
  36. package/dist/cjs/src/client/plans.d.cts +142 -0
  37. package/dist/cjs/src/client/plans.js.map +1 -0
  38. package/dist/cjs/src/client/portal.cjs +55 -0
  39. package/dist/cjs/src/client/portal.d.cts +48 -0
  40. package/dist/cjs/src/client/portal.js.map +1 -0
  41. package/dist/cjs/{clients/pagination.cjs → src/client/schemas.cjs} +1 -1
  42. package/dist/cjs/src/client/schemas.d.cts +17247 -0
  43. package/dist/cjs/src/client/schemas.js.map +1 -0
  44. package/dist/cjs/src/client/subjects.cjs +76 -0
  45. package/dist/cjs/src/client/subjects.d.cts +70 -0
  46. package/dist/cjs/src/client/subjects.js.map +1 -0
  47. package/dist/cjs/src/client/subscriptions.cjs +116 -0
  48. package/dist/cjs/src/client/subscriptions.d.cts +147 -0
  49. package/dist/cjs/src/client/subscriptions.js.map +1 -0
  50. package/dist/cjs/src/client/utils.cjs +69 -0
  51. package/dist/cjs/src/client/utils.d.cts +12 -0
  52. package/dist/cjs/src/client/utils.js.map +1 -0
  53. package/dist/cjs/src/portal/index.cjs +57 -0
  54. package/dist/cjs/src/portal/index.d.cts +104 -0
  55. package/dist/cjs/src/portal/index.js.map +1 -0
  56. package/dist/cjs/src/react/context.cjs +35 -0
  57. package/dist/cjs/src/react/context.d.cts +9 -0
  58. package/dist/cjs/src/react/context.js.map +1 -0
  59. package/dist/cjs/tsconfig.29eca393.tsbuildinfo +1 -0
  60. package/dist/cjs/tsconfig.a8aaccf0.tsbuildinfo +1 -0
  61. package/dist/index.d.ts +1 -24
  62. package/dist/index.js +1 -30
  63. package/dist/index.js.map +1 -1
  64. package/dist/src/client/apps.d.ts +259 -0
  65. package/dist/src/client/apps.js +168 -0
  66. package/dist/src/client/apps.js.map +1 -0
  67. package/dist/src/client/billing.d.ts +510 -0
  68. package/dist/src/client/billing.js +302 -0
  69. package/dist/src/client/billing.js.map +1 -0
  70. package/dist/src/client/common.d.ts +30 -0
  71. package/dist/src/client/common.js +42 -0
  72. package/dist/src/client/common.js.map +1 -0
  73. package/dist/src/client/customers.d.ts +163 -0
  74. package/dist/src/client/customers.js +179 -0
  75. package/dist/src/client/customers.js.map +1 -0
  76. package/dist/src/client/entitlements.d.ts +442 -0
  77. package/dist/src/client/entitlements.js +239 -0
  78. package/dist/src/client/entitlements.js.map +1 -0
  79. package/dist/src/client/events.d.ts +31 -0
  80. package/dist/src/client/events.js +58 -0
  81. package/dist/src/client/events.js.map +1 -0
  82. package/dist/src/client/features.d.ts +78 -0
  83. package/dist/src/client/features.js +74 -0
  84. package/dist/src/client/features.js.map +1 -0
  85. package/dist/src/client/index.d.ts +45 -0
  86. package/dist/src/client/index.js +68 -0
  87. package/dist/src/client/index.js.map +1 -0
  88. package/dist/src/client/meters.d.ts +145 -0
  89. package/dist/src/client/meters.js +89 -0
  90. package/dist/src/client/meters.js.map +1 -0
  91. package/dist/src/client/notifications.d.ts +219 -0
  92. package/dist/src/client/notifications.js +242 -0
  93. package/dist/src/client/notifications.js.map +1 -0
  94. package/dist/src/client/plans.d.ts +142 -0
  95. package/dist/src/client/plans.js +123 -0
  96. package/dist/src/client/plans.js.map +1 -0
  97. package/dist/src/client/portal.d.ts +48 -0
  98. package/dist/src/client/portal.js +51 -0
  99. package/dist/src/client/portal.js.map +1 -0
  100. package/dist/src/client/schemas.d.ts +17247 -0
  101. package/dist/src/client/schemas.js +2 -0
  102. package/dist/src/client/schemas.js.map +1 -0
  103. package/dist/src/client/subjects.d.ts +70 -0
  104. package/dist/src/client/subjects.js +72 -0
  105. package/dist/src/client/subjects.js.map +1 -0
  106. package/dist/src/client/subscriptions.d.ts +147 -0
  107. package/dist/src/client/subscriptions.js +112 -0
  108. package/dist/src/client/subscriptions.js.map +1 -0
  109. package/dist/src/client/utils.d.ts +12 -0
  110. package/dist/src/client/utils.js +63 -0
  111. package/dist/src/client/utils.js.map +1 -0
  112. package/dist/src/portal/index.d.ts +104 -0
  113. package/dist/src/portal/index.js +50 -0
  114. package/dist/src/portal/index.js.map +1 -0
  115. package/dist/src/react/context.d.ts +9 -0
  116. package/dist/src/react/context.js +16 -0
  117. package/dist/src/react/context.js.map +1 -0
  118. package/dist/tsconfig.tsbuildinfo +1 -1
  119. package/package.json +54 -24
  120. package/patches/openapi-typescript.patch +73 -0
  121. package/dist/cjs/clients/client.cjs +0 -120
  122. package/dist/cjs/clients/client.d.cts +0 -37
  123. package/dist/cjs/clients/client.js.map +0 -1
  124. package/dist/cjs/clients/entitlement.cjs +0 -39
  125. package/dist/cjs/clients/entitlement.d.cts +0 -32
  126. package/dist/cjs/clients/entitlement.js.map +0 -1
  127. package/dist/cjs/clients/event.cjs +0 -71
  128. package/dist/cjs/clients/event.d.cts +0 -79
  129. package/dist/cjs/clients/event.js.map +0 -1
  130. package/dist/cjs/clients/feature.cjs +0 -80
  131. package/dist/cjs/clients/feature.d.cts +0 -46
  132. package/dist/cjs/clients/feature.js.map +0 -1
  133. package/dist/cjs/clients/grant.cjs +0 -41
  134. package/dist/cjs/clients/grant.d.cts +0 -24
  135. package/dist/cjs/clients/grant.js.map +0 -1
  136. package/dist/cjs/clients/meter.cjs +0 -83
  137. package/dist/cjs/clients/meter.d.cts +0 -79
  138. package/dist/cjs/clients/meter.js.map +0 -1
  139. package/dist/cjs/clients/notifications.cjs +0 -184
  140. package/dist/cjs/clients/notifications.d.cts +0 -101
  141. package/dist/cjs/clients/notifications.js.map +0 -1
  142. package/dist/cjs/clients/pagination.d.cts +0 -6
  143. package/dist/cjs/clients/pagination.js.map +0 -1
  144. package/dist/cjs/clients/portal.cjs +0 -41
  145. package/dist/cjs/clients/portal.d.cts +0 -22
  146. package/dist/cjs/clients/portal.js.map +0 -1
  147. package/dist/cjs/clients/subject.cjs +0 -269
  148. package/dist/cjs/clients/subject.d.cts +0 -142
  149. package/dist/cjs/clients/subject.js.map +0 -1
  150. package/dist/cjs/schemas/openapi.cjs +0 -7
  151. package/dist/cjs/schemas/openapi.d.cts +0 -3578
  152. package/dist/cjs/schemas/openapi.js.map +0 -1
  153. package/dist/cjs/test/agent.cjs +0 -485
  154. package/dist/cjs/test/agent.d.cts +0 -2
  155. package/dist/cjs/test/agent.js.map +0 -1
  156. package/dist/cjs/test/mocks.cjs +0 -153
  157. package/dist/cjs/test/mocks.d.cts +0 -25
  158. package/dist/cjs/test/mocks.js.map +0 -1
  159. package/dist/cjs/tsconfig.a1fc0bdc.tsbuildinfo +0 -1
  160. package/dist/cjs/tsconfig.b6c6ba95.tsbuildinfo +0 -1
  161. package/dist/clients/client.d.ts +0 -37
  162. package/dist/clients/client.js +0 -115
  163. package/dist/clients/client.js.map +0 -1
  164. package/dist/clients/entitlement.d.ts +0 -32
  165. package/dist/clients/entitlement.js +0 -35
  166. package/dist/clients/entitlement.js.map +0 -1
  167. package/dist/clients/event.d.ts +0 -79
  168. package/dist/clients/event.js +0 -64
  169. package/dist/clients/event.js.map +0 -1
  170. package/dist/clients/feature.d.ts +0 -46
  171. package/dist/clients/feature.js +0 -76
  172. package/dist/clients/feature.js.map +0 -1
  173. package/dist/clients/grant.d.ts +0 -24
  174. package/dist/clients/grant.js +0 -37
  175. package/dist/clients/grant.js.map +0 -1
  176. package/dist/clients/meter.d.ts +0 -79
  177. package/dist/clients/meter.js +0 -79
  178. package/dist/clients/meter.js.map +0 -1
  179. package/dist/clients/notifications.d.ts +0 -101
  180. package/dist/clients/notifications.js +0 -180
  181. package/dist/clients/notifications.js.map +0 -1
  182. package/dist/clients/pagination.d.ts +0 -6
  183. package/dist/clients/pagination.js +0 -2
  184. package/dist/clients/pagination.js.map +0 -1
  185. package/dist/clients/portal.d.ts +0 -22
  186. package/dist/clients/portal.js +0 -37
  187. package/dist/clients/portal.js.map +0 -1
  188. package/dist/clients/subject.d.ts +0 -142
  189. package/dist/clients/subject.js +0 -265
  190. package/dist/clients/subject.js.map +0 -1
  191. package/dist/schemas/openapi.d.ts +0 -3578
  192. package/dist/schemas/openapi.js +0 -6
  193. package/dist/schemas/openapi.js.map +0 -1
  194. package/dist/test/agent.d.ts +0 -2
  195. package/dist/test/agent.js +0 -482
  196. package/dist/test/agent.js.map +0 -1
  197. package/dist/test/mocks.d.ts +0 -25
  198. package/dist/test/mocks.js +0 -150
  199. package/dist/test/mocks.js.map +0 -1
package/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # OpenMeter Node SDK
1
+ # OpenMeter JavaScript SDK
2
2
 
3
3
  ## Install
4
4
 
@@ -6,333 +6,62 @@
6
6
  npm install --save @openmeter/sdk
7
7
  ```
8
8
 
9
- ## Example
9
+ ## Configuration for accessing the OpenMeter API
10
10
 
11
- ```ts
12
- import { OpenMeter, type Event } from '@openmeter/sdk'
13
-
14
- const openmeter = new OpenMeter({ baseUrl: 'http://localhost:8888' })
15
-
16
- // Ingesting an event
17
- const event: Event = {
18
- specversion: '1.0',
19
- id: 'id-1',
20
- source: 'my-app',
21
- type: 'my-type',
22
- subject: 'my-awesome-user-id',
23
- time: new Date(),
24
- data: {
25
- api_calls: 1,
26
- },
27
- }
28
- await openmeter.events.ingest(event)
29
-
30
- // Fetching a meter
31
- const meter = await openmeter.meters.get('m1')
32
- ```
33
-
34
- ## API
35
-
36
- ### Events
37
-
38
- #### ingest
39
-
40
- ```ts
41
- import { type Event } from '@openmeter/sdk'
42
-
43
- const event: Event = {
44
- specversion: '1.0',
45
- id: 'id-1',
46
- source: 'my-app',
47
- type: 'my-type',
48
- subject: 'my-awesome-user-id',
49
- time: new Date(),
50
- data: {
51
- api_calls: 1,
52
- },
53
- }
54
- await openmeter.events.ingest(event)
55
- ```
56
-
57
- ### batch ingest
58
-
59
- ```ts
60
- await openmeter.events.ingest([event1, event2, event3])
61
- ```
62
-
63
- #### list
64
-
65
- Retrieve latest raw events. Useful for debugging.
66
-
67
- ```ts
68
- const events = await openmeter.events.list()
69
- ```
70
-
71
- ### Meters
72
-
73
- #### list
74
-
75
- List meters.
76
-
77
- ```ts
78
- const meters = await openmeter.meters.list()
79
- ```
80
-
81
- #### get
82
-
83
- Get one meter by slug.
84
-
85
- ```ts
86
- const meter = await openmeter.meters.get('m1')
87
- ```
88
-
89
- #### query
90
-
91
- Query meter values.
92
-
93
- ```ts
94
- import { WindowSize } from '@openmeter/sdk'
95
-
96
- const values = await openmeter.meters.query('my-meter-slug', {
97
- subject: ['user-1'],
98
- groupBy: ['method', 'path'],
99
- from: new Date('2021-01-01'),
100
- to: new Date('2021-01-02'),
101
- windowSize: WindowSize.HOUR,
102
- })
103
- ```
104
-
105
- #### meter subjects
106
-
107
- List meter subjects.
108
-
109
- ```ts
110
- const subjects = await openmeter.meters.subjects('my-meter-slug')
111
- ```
112
-
113
- ### Portal
114
-
115
- #### createToken
116
-
117
- Create subject-specific tokens.
118
- Useful to build consumer dashboards.
119
-
120
- ```ts
121
- const token = await openmeter.portal.createToken({ subject: 'customer-1' })
122
- ```
123
-
124
- #### invalidateTokens
125
-
126
- Invalidate portal tokens for all or specific subjects.
127
-
128
- ```ts
129
- await openmeter.portal.invalidateTokens()
130
- ```
131
-
132
- ### Subject
133
-
134
- Subject mappings. Like display name and metadata.
135
-
136
- #### upsert
137
-
138
- Upsert subjects.
139
-
140
- ```ts
141
- const subjects = await openmeter.subjects.upsert([
142
- {
143
- key: 'customer-1',
144
- displayName: 'ACME',
145
- },
146
- ])
147
- ```
148
-
149
- #### list
150
-
151
- List subjects.
152
-
153
- ```ts
154
- const subjects = await openmeter.subjects.list()
155
- ```
156
-
157
- #### get
158
-
159
- Get subject by key.
11
+ To use the OpenMeter SDK on your backend, you need to configure `baseUrl` and `apiKey` for OpenMeter Cloud:
160
12
 
161
13
  ```ts
162
- const subjects = await openmeter.subjects.get('customer-1')
163
- ```
164
-
165
- #### delete
166
-
167
- Delete subject by key.
168
- It doesn't delete corresponding usage.
169
-
170
- ```ts
171
- await openmeter.subjects.delete('customer-1')
172
- ```
14
+ import { OpenMeter } from '@openmeter/sdk'
173
15
 
174
- #### createEntitlement
175
-
176
- Create entitlement for a subject.
177
- Entitlements allow you to manage subject feature access, balances, and usage limits.
178
-
179
- ```ts
180
- // Issue 10,000,000 tokens every month
181
- const entitlement = await openmeter.subjects.createEntitlement('customer-1', {
182
- type: 'metered',
183
- featureKey: 'ai_tokens',
184
- usagePeriod: {
185
- interval: 'MONTH',
186
- },
187
- issueAfterReset: 10000000,
16
+ const openmeter = new OpenMeter({
17
+ baseUrl: 'https://openmeter.cloud',
18
+ apiKey: 'om_...',
188
19
  })
189
20
  ```
190
21
 
191
- #### listEntitlements
192
-
193
- List subject entitlements.
194
-
195
- ```ts
196
- const entitlement = await openmeter.subjects.listEntitlements('customer-1')
197
- ```
198
-
199
- #### getEntitlement
200
-
201
- Get a subject entitlement by ID by Feature ID or by Feature Key.
202
-
203
- ```ts
204
- const entitlement = await openmeter.subjects.getEntitlement(
205
- 'customer-1',
206
- 'ai_tokens'
207
- )
208
- ```
209
-
210
- #### deleteEntitlement
211
-
212
- Delete a subject entitlement by ID by Feature ID or by Feature Key.
213
-
214
- ```ts
215
- await openmeter.subjects.deleteEntitlement('customer-1', 'ai_tokens')
216
- ```
217
-
218
- #### getEntitlementValue
219
-
220
- Get entitlement value by ID by Feature ID or by Feature Key.
221
-
222
- ```ts
223
- const value = await openmeter.subjects.getEntitlementValue(
224
- 'customer-1',
225
- 'ai_tokens'
226
- )
227
- ```
228
-
229
- #### getEntitlementHistory
230
-
231
- Get entitlement history by ID by Feature ID or by Feature Key
232
-
233
- ```ts
234
- const entitlement = await openmeter.subjects.getEntitlementHistory(
235
- 'customer-1',
236
- 'ai_tokens'
237
- )
238
- ```
239
-
240
- #### resetEntitlementUsage
22
+ ## Configuration for accessing the OpenMeter Portal API
241
23
 
242
- Reset the entitlement usage and start a new period. Eligible grants will be rolled over.
24
+ To use the OpenMeter Portal SDK on your frontend, you need to configure it use a portal token in your configuration:
243
25
 
244
26
  ```ts
245
- const entitlement = await openmeter.subjects.resetEntitlementUsage(
246
- 'customer-1',
247
- {
248
- retainAnchor: true,
249
- }
250
- )
251
- ```
252
-
253
- #### createEntitlementGrant
254
-
255
- Create a grant for an entitlement.
256
-
257
- ```ts
258
- const grant = await openmeter.subjects.createEntitlementGrant(
259
- 'customer-1',
260
- 'ai_tokens',
261
- {
262
- amount: 100,
263
- priority: 1,
264
- effectiveAt: '2023-01-01T00:00:00Z',
265
- expiration: {
266
- duration: 'HOUR',
267
- count: 12,
268
- },
269
- minRolloverAmount: 100,
270
- maxRolloverAmount: 100,
271
- recurrence: {
272
- interval: 'MONTH',
273
- anchor: '2024-06-28T18:29:44.867Z',
274
- },
275
- }
276
- )
277
- ```
278
-
279
- #### listEntitlementGrants
280
-
281
- List entitlement grants
282
-
283
- ```ts
284
- const entitlement = await openmeter.subjects.listEntitlementGrants('customer-1', 'ai_tokens)
285
- ```
286
-
287
- ## Features
288
-
289
- Features are the building blocks of your entitlements, part of your product offering.
290
-
291
- #### create
27
+ import { OpenMeter } from '@openmeter/sdk/portal'
292
28
 
293
- Upsert subjects.
294
-
295
- ```ts
296
- const feature = await openmeter.features.create({
297
- key: 'ai_tokens',
298
- name: 'AI Tokens',
299
- // optional
300
- meterSlug: 'tokens_total',
29
+ const openmeter = new OpenMeter({
30
+ baseUrl: 'https://openmeter.cloud',
31
+ portalToken: 'om_portal_...',
301
32
  })
302
33
  ```
303
34
 
304
- #### list
35
+ ## Configuration for accessing the OpenMeter React SDK
305
36
 
306
- List features.
37
+ To use the OpenMeter React SDK for the portal API, you need to configure a Portal Client and a React Context:
307
38
 
308
39
  ```ts
309
- const features = await openmeter.features.list()
310
- ```
311
-
312
- #### get
313
-
314
- Get feature by key.
315
-
316
- ```ts
317
- const feature = await openmeter.features.get('ai_tokens')
318
- ```
319
-
320
- #### delete
40
+ import {
41
+ OpenMeter,
42
+ OpenMeterProvider,
43
+ useOpenMeter,
44
+ } from '@openmeter/sdk/react'
321
45
 
322
- Delete feature by key.
46
+ function App() {
47
+ // get portal token from your backend
48
+ const openmeter = new OpenMeter({
49
+ baseUrl: 'https://openmeter.cloud',
50
+ portalToken,
51
+ })
323
52
 
324
- ```ts
325
- await openmeter.features.delete('ai_tokens')
326
- ```
327
-
328
- ## Grants
329
-
330
- Entitlement grants allow to issue of additional one-time or recurring allowances on a subject's entitlement.
331
-
332
- #### list
53
+ return (
54
+ <OpenMeterProvider value={openmeter}>
55
+ <UsageComponent />
56
+ {/* ... */}
57
+ </OpenMeterProvider>
58
+ )
59
+ }
333
60
 
334
- List grants.
61
+ function UsageComponent() {
62
+ // get openmeter client from context
63
+ const openmeter = useOpenMeter()
335
64
 
336
- ```ts
337
- const grants = await openmeter.grants.list()
65
+ // ...
66
+ }
338
67
  ```
@@ -14,38 +14,5 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- exports.OpenMeter = exports.WindowSize = exports.MeterAggregation = void 0;
18
- const entitlement_js_1 = require("./clients/entitlement.cjs");
19
- const event_js_1 = require("./clients/event.cjs");
20
- const feature_js_1 = require("./clients/feature.cjs");
21
- const grant_js_1 = require("./clients/grant.cjs");
22
- const meter_js_1 = require("./clients/meter.cjs");
23
- const notifications_js_1 = require("./clients/notifications.cjs");
24
- const portal_js_1 = require("./clients/portal.cjs");
25
- const subject_js_1 = require("./clients/subject.cjs");
26
- var meter_js_2 = require("./clients/meter.cjs");
27
- Object.defineProperty(exports, "MeterAggregation", { enumerable: true, get: function () { return meter_js_2.MeterAggregation; } });
28
- Object.defineProperty(exports, "WindowSize", { enumerable: true, get: function () { return meter_js_2.WindowSize; } });
29
- __exportStar(require("./clients/notifications.cjs"), exports);
30
- class OpenMeter {
31
- events;
32
- meters;
33
- portal;
34
- subjects;
35
- features;
36
- entitlements;
37
- grants;
38
- notification;
39
- constructor(config) {
40
- this.events = new event_js_1.EventsClient(config);
41
- this.meters = new meter_js_1.MetersClient(config);
42
- this.portal = new portal_js_1.PortalClient(config);
43
- this.subjects = new subject_js_1.SubjectClient(config);
44
- this.features = new feature_js_1.FeatureClient(config);
45
- this.entitlements = new entitlement_js_1.EntitlementClient(config);
46
- this.grants = new grant_js_1.GrantClient(config);
47
- this.notification = new notifications_js_1.NotificationClient(config);
48
- }
49
- }
50
- exports.OpenMeter = OpenMeter;
17
+ __exportStar(require("./src/client/index.cjs"), exports);
51
18
  //# sourceMappingURL=index.js.map
@@ -1,24 +1 @@
1
- import { OpenMeterConfig } from './clients/client.cjs';
2
- import { EntitlementClient } from './clients/entitlement.cjs';
3
- import { EventsClient } from './clients/event.cjs';
4
- import { FeatureClient } from './clients/feature.cjs';
5
- import { GrantClient } from './clients/grant.cjs';
6
- import { MetersClient } from './clients/meter.cjs';
7
- import { NotificationClient } from './clients/notifications.cjs';
8
- import { PortalClient } from './clients/portal.cjs';
9
- import { SubjectClient } from './clients/subject.cjs';
10
- export { OpenMeterConfig, RequestOptions } from './clients/client.cjs';
11
- export { Event, IngestedEvent, CloudEvent } from './clients/event.cjs';
12
- export { Meter, MeterAggregation, WindowSize } from './clients/meter.cjs';
13
- export * from './clients/notifications.cjs';
14
- export declare class OpenMeter {
15
- events: EventsClient;
16
- meters: MetersClient;
17
- portal: PortalClient;
18
- subjects: SubjectClient;
19
- features: FeatureClient;
20
- entitlements: EntitlementClient;
21
- grants: GrantClient;
22
- notification: NotificationClient;
23
- constructor(config: OpenMeterConfig);
24
- }
1
+ export * from './src/client/index.cjs';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AACA,6DAA4D;AAC5D,iDAAiD;AACjD,qDAAoD;AACpD,iDAAgD;AAChD,iDAAiD;AACjD,iEAA+D;AAC/D,mDAAkD;AAClD,qDAAoD;AAIpD,+CAAwE;AAAxD,4GAAA,gBAAgB,OAAA;AAAE,sGAAA,UAAU,OAAA;AAC5C,6DAA0C;AAE1C,MAAa,SAAS;IACb,MAAM,CAAc;IACpB,MAAM,CAAc;IACpB,MAAM,CAAc;IACpB,QAAQ,CAAe;IACvB,QAAQ,CAAe;IACvB,YAAY,CAAmB;IAC/B,MAAM,CAAa;IACnB,YAAY,CAAoB;IAEvC,YAAY,MAAuB;QACjC,IAAI,CAAC,MAAM,GAAG,IAAI,uBAAY,CAAC,MAAM,CAAC,CAAA;QACtC,IAAI,CAAC,MAAM,GAAG,IAAI,uBAAY,CAAC,MAAM,CAAC,CAAA;QACtC,IAAI,CAAC,MAAM,GAAG,IAAI,wBAAY,CAAC,MAAM,CAAC,CAAA;QACtC,IAAI,CAAC,QAAQ,GAAG,IAAI,0BAAa,CAAC,MAAM,CAAC,CAAA;QACzC,IAAI,CAAC,QAAQ,GAAG,IAAI,0BAAa,CAAC,MAAM,CAAC,CAAA;QACzC,IAAI,CAAC,YAAY,GAAG,IAAI,kCAAiB,CAAC,MAAM,CAAC,CAAA;QACjD,IAAI,CAAC,MAAM,GAAG,IAAI,sBAAW,CAAC,MAAM,CAAC,CAAA;QACrC,IAAI,CAAC,YAAY,GAAG,IAAI,qCAAkB,CAAC,MAAM,CAAC,CAAA;IACpD,CAAC;CACF;AApBD,8BAoBC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wDAAqC"}
@@ -0,0 +1,174 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AppStripe = exports.AppMarketplace = exports.Apps = void 0;
4
+ const utils_js_1 = require("./utils.cjs");
5
+ /**
6
+ * Apps
7
+ * Manage integrations for extending OpenMeter's functionality.
8
+ */
9
+ class Apps {
10
+ client;
11
+ marketplace;
12
+ stripe;
13
+ constructor(client) {
14
+ this.client = client;
15
+ this.marketplace = new AppMarketplace(client);
16
+ this.stripe = new AppStripe(client);
17
+ }
18
+ /**
19
+ * List apps
20
+ * @param query - The query parameters
21
+ * @param signal - An optional abort signal
22
+ * @returns The apps
23
+ */
24
+ async list(query, options) {
25
+ const resp = await this.client.GET('/api/v1/apps', {
26
+ params: { query },
27
+ ...options,
28
+ });
29
+ return (0, utils_js_1.transformResponse)(resp);
30
+ }
31
+ /**
32
+ * Get an app
33
+ * @param id - The ID of the app
34
+ * @param signal - An optional abort signal
35
+ * @returns The app
36
+ */
37
+ async get(id, options) {
38
+ const resp = await this.client.GET('/api/v1/apps/{id}', {
39
+ params: { path: { id } },
40
+ ...options,
41
+ });
42
+ return (0, utils_js_1.transformResponse)(resp);
43
+ }
44
+ /**
45
+ * Update an app
46
+ * @param id - The ID of the app
47
+ * @param body - The body of the request
48
+ * @param signal - An optional abort signal
49
+ * @returns The app
50
+ */
51
+ async update(id, body, options) {
52
+ const resp = await this.client.PUT('/api/v1/apps/{id}', {
53
+ body,
54
+ params: { path: { id } },
55
+ ...options,
56
+ });
57
+ return (0, utils_js_1.transformResponse)(resp);
58
+ }
59
+ /**
60
+ * Uninstall an app
61
+ * @param id - The ID of the app
62
+ * @param signal - An optional abort signal
63
+ * @returns The app
64
+ */
65
+ async uninstall(id, options) {
66
+ const resp = await this.client.DELETE('/api/v1/apps/{id}', {
67
+ params: { path: { id } },
68
+ ...options,
69
+ });
70
+ return (0, utils_js_1.transformResponse)(resp);
71
+ }
72
+ }
73
+ exports.Apps = Apps;
74
+ /**
75
+ * App Marketplace
76
+ * Available apps from the OpenMeter Marketplace.
77
+ */
78
+ class AppMarketplace {
79
+ client;
80
+ constructor(client) {
81
+ this.client = client;
82
+ }
83
+ /**
84
+ * List available apps
85
+ * @param query - The query parameters
86
+ * @param signal - An optional abort signal
87
+ * @returns The apps
88
+ */
89
+ async list(query, options) {
90
+ const resp = await this.client.GET('/api/v1/marketplace/listings', {
91
+ params: { query },
92
+ ...options,
93
+ });
94
+ return (0, utils_js_1.transformResponse)(resp);
95
+ }
96
+ /**
97
+ * Get details for a listing
98
+ * @param type - The type of the listing
99
+ * @param signal - An optional abort signal
100
+ * @returns The listing
101
+ */
102
+ async get(type, options) {
103
+ const resp = await this.client.GET('/api/v1/marketplace/listings/{type}', {
104
+ params: { path: { type } },
105
+ ...options,
106
+ });
107
+ return (0, utils_js_1.transformResponse)(resp);
108
+ }
109
+ /**
110
+ * Install an app via OAuth. Returns a URL to start the OAuth 2.0 flow.
111
+ * @param type - The type of the listing
112
+ * @param signal - An optional abort signal
113
+ * @returns The OAuth2 install URL
114
+ */
115
+ async getOauth2InstallUrl(type, options) {
116
+ const resp = await this.client.GET('/api/v1/marketplace/listings/{type}/install/oauth2', {
117
+ params: { path: { type } },
118
+ ...options,
119
+ });
120
+ return (0, utils_js_1.transformResponse)(resp);
121
+ }
122
+ /**
123
+ * Authorize OAuth2 code. Verifies the OAuth code and exchanges it for a token and refresh token
124
+ * @param type - The type of the listing
125
+ * @param signal - An optional abort signal
126
+ * @returns The authorization URL
127
+ */
128
+ async authorizeOauth2(type, options) {
129
+ const resp = await this.client.GET('/api/v1/marketplace/listings/{type}/install/oauth2/authorize', {
130
+ params: { path: { type } },
131
+ ...options,
132
+ });
133
+ return (0, utils_js_1.transformResponse)(resp);
134
+ }
135
+ /**
136
+ * Install an app via API key.
137
+ * @param type - The type of the listing
138
+ * @param signal - An optional abort signal
139
+ * @returns The installation
140
+ */
141
+ async installWithAPIKey(type, body, options) {
142
+ const resp = await this.client.POST('/api/v1/marketplace/listings/{type}/install/apikey', {
143
+ body,
144
+ params: { path: { type } },
145
+ ...options,
146
+ });
147
+ return (0, utils_js_1.transformResponse)(resp);
148
+ }
149
+ }
150
+ exports.AppMarketplace = AppMarketplace;
151
+ /**
152
+ * Stripe App
153
+ */
154
+ class AppStripe {
155
+ client;
156
+ constructor(client) {
157
+ this.client = client;
158
+ }
159
+ /**
160
+ * Create a checkout session
161
+ * @param body - The body of the request
162
+ * @param signal - An optional abort signal
163
+ * @returns The checkout session
164
+ */
165
+ async createCheckoutSession(body, options) {
166
+ const resp = await this.client.POST('/api/v1/stripe/checkout/sessions', {
167
+ body,
168
+ ...options,
169
+ });
170
+ return (0, utils_js_1.transformResponse)(resp);
171
+ }
172
+ }
173
+ exports.AppStripe = AppStripe;
174
+ //# sourceMappingURL=apps.js.map