@openmeter/sdk 1.0.0-alpha.4 → 1.0.0-beta-7b2d9ed372e3

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 (261) hide show
  1. package/README.md +45 -70
  2. package/dist/cjs/index.cjs +18 -0
  3. package/dist/cjs/index.d.cts +1 -0
  4. package/dist/cjs/index.js.map +1 -0
  5. package/dist/cjs/src/apps.cjs +176 -0
  6. package/dist/cjs/src/apps.d.cts +338 -0
  7. package/dist/cjs/src/apps.js.map +1 -0
  8. package/dist/cjs/src/billing.cjs +309 -0
  9. package/dist/cjs/src/billing.d.cts +645 -0
  10. package/dist/cjs/src/billing.js.map +1 -0
  11. package/dist/cjs/src/client/apps.cjs +174 -0
  12. package/dist/cjs/src/client/apps.d.cts +339 -0
  13. package/dist/cjs/src/client/apps.js.map +1 -0
  14. package/dist/cjs/src/client/billing.cjs +309 -0
  15. package/dist/cjs/src/client/billing.d.cts +646 -0
  16. package/dist/cjs/src/client/billing.js.map +1 -0
  17. package/dist/cjs/src/client/customers.cjs +185 -0
  18. package/dist/cjs/src/client/customers.d.cts +232 -0
  19. package/dist/cjs/src/client/customers.js.map +1 -0
  20. package/dist/cjs/src/client/entitlements.cjs +244 -0
  21. package/dist/cjs/src/client/entitlements.d.cts +506 -0
  22. package/dist/cjs/src/client/entitlements.js.map +1 -0
  23. package/dist/cjs/src/client/events.cjs +65 -0
  24. package/dist/cjs/src/client/events.d.cts +102 -0
  25. package/dist/cjs/src/client/events.js.map +1 -0
  26. package/dist/cjs/src/client/features.cjs +78 -0
  27. package/dist/cjs/src/client/features.d.cts +154 -0
  28. package/dist/cjs/src/client/features.js.map +1 -0
  29. package/dist/cjs/src/client/index.cjs +100 -0
  30. package/dist/cjs/src/client/index.d.cts +42 -0
  31. package/dist/cjs/src/client/index.js.map +1 -0
  32. package/dist/cjs/src/client/meters.cjs +93 -0
  33. package/dist/cjs/src/client/meters.d.cts +185 -0
  34. package/dist/cjs/src/client/meters.js.map +1 -0
  35. package/dist/cjs/src/client/notifications.cjs +249 -0
  36. package/dist/cjs/src/client/notifications.d.cts +315 -0
  37. package/dist/cjs/src/client/notifications.js.map +1 -0
  38. package/dist/cjs/src/client/plans.cjs +127 -0
  39. package/dist/cjs/src/client/plans.d.cts +193 -0
  40. package/dist/cjs/src/client/plans.js.map +1 -0
  41. package/dist/cjs/src/client/portal.cjs +55 -0
  42. package/dist/cjs/src/client/portal.d.cts +72 -0
  43. package/dist/cjs/src/client/portal.js.map +1 -0
  44. package/dist/cjs/src/client/subjects.cjs +76 -0
  45. package/dist/cjs/src/client/subjects.d.cts +102 -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 +198 -0
  49. package/dist/cjs/src/client/subscriptions.js.map +1 -0
  50. package/dist/cjs/src/client/utils.cjs +93 -0
  51. package/dist/cjs/src/client/utils.d.cts +30 -0
  52. package/dist/cjs/src/client/utils.js.map +1 -0
  53. package/dist/cjs/src/customers.cjs +185 -0
  54. package/dist/cjs/src/customers.d.cts +231 -0
  55. package/dist/cjs/src/customers.js.map +1 -0
  56. package/dist/cjs/src/entitlements.cjs +244 -0
  57. package/dist/cjs/src/entitlements.d.cts +505 -0
  58. package/dist/cjs/src/entitlements.js.map +1 -0
  59. package/dist/cjs/src/events.cjs +65 -0
  60. package/dist/cjs/src/events.d.cts +101 -0
  61. package/dist/cjs/src/events.js.map +1 -0
  62. package/dist/cjs/src/features.cjs +78 -0
  63. package/dist/cjs/src/features.d.cts +153 -0
  64. package/dist/cjs/src/features.js.map +1 -0
  65. package/dist/cjs/src/meters.cjs +93 -0
  66. package/dist/cjs/src/meters.d.cts +184 -0
  67. package/dist/cjs/src/meters.js.map +1 -0
  68. package/dist/cjs/src/notifications.cjs +249 -0
  69. package/dist/cjs/src/notifications.d.cts +314 -0
  70. package/dist/cjs/src/notifications.js.map +1 -0
  71. package/dist/cjs/src/plans.cjs +127 -0
  72. package/dist/cjs/src/plans.d.cts +192 -0
  73. package/dist/cjs/src/plans.js.map +1 -0
  74. package/dist/cjs/src/portal/index.cjs +57 -0
  75. package/dist/cjs/src/portal/index.d.cts +113 -0
  76. package/dist/cjs/src/portal/index.js.map +1 -0
  77. package/dist/cjs/src/react/context.cjs +35 -0
  78. package/dist/cjs/src/react/context.d.cts +9 -0
  79. package/dist/cjs/src/react/context.js.map +1 -0
  80. package/dist/cjs/src/subjects.cjs +76 -0
  81. package/dist/cjs/src/subjects.d.cts +101 -0
  82. package/dist/cjs/src/subjects.js.map +1 -0
  83. package/dist/cjs/src/subscriptions.cjs +116 -0
  84. package/dist/cjs/src/subscriptions.d.cts +197 -0
  85. package/dist/cjs/src/subscriptions.js.map +1 -0
  86. package/dist/cjs/src/utils.cjs +93 -0
  87. package/dist/cjs/src/utils.d.cts +29 -0
  88. package/dist/cjs/src/utils.js.map +1 -0
  89. package/dist/cjs/tsconfig.01ab6c6b.tsbuildinfo +1 -0
  90. package/dist/cjs/tsconfig.1e12acbb.tsbuildinfo +1 -0
  91. package/dist/cjs/tsconfig.38849cd1.tsbuildinfo +1 -0
  92. package/dist/cjs/tsconfig.3bd7bdb7.tsbuildinfo +1 -0
  93. package/dist/cjs/tsconfig.3db00db7.tsbuildinfo +1 -0
  94. package/dist/cjs/tsconfig.5cd8af0a.tsbuildinfo +1 -0
  95. package/dist/cjs/tsconfig.64c40770.tsbuildinfo +1 -0
  96. package/dist/cjs/tsconfig.769a7751.tsbuildinfo +1 -0
  97. package/dist/cjs/tsconfig.8fd1c6cd.tsbuildinfo +1 -0
  98. package/dist/cjs/tsconfig.c9e83bdd.tsbuildinfo +1 -0
  99. package/dist/cjs/tsconfig.d3cb3b9e.tsbuildinfo +1 -0
  100. package/dist/cjs/tsconfig.db7aa141.tsbuildinfo +1 -0
  101. package/dist/cjs/tsconfig.edd7b7ed.tsbuildinfo +1 -0
  102. package/dist/cjs/tsconfig.f343a141.tsbuildinfo +1 -0
  103. package/dist/cjs/tsconfig.f36f8639.tsbuildinfo +1 -0
  104. package/dist/cjs/tsconfig.fc8d5fa4.tsbuildinfo +1 -0
  105. package/dist/index.d.ts +1 -23
  106. package/dist/index.js +2 -29
  107. package/dist/index.js.map +1 -0
  108. package/dist/src/apps.d.ts +338 -0
  109. package/dist/src/apps.js +170 -0
  110. package/dist/src/apps.js.map +1 -0
  111. package/dist/src/billing.d.ts +645 -0
  112. package/dist/src/billing.js +302 -0
  113. package/dist/src/billing.js.map +1 -0
  114. package/dist/src/client/apps.d.ts +339 -0
  115. package/dist/src/client/apps.js +168 -0
  116. package/dist/src/client/apps.js.map +1 -0
  117. package/dist/src/client/billing.d.ts +646 -0
  118. package/dist/src/client/billing.js +302 -0
  119. package/dist/src/client/billing.js.map +1 -0
  120. package/dist/src/client/customers.d.ts +232 -0
  121. package/dist/src/client/customers.js +179 -0
  122. package/dist/src/client/customers.js.map +1 -0
  123. package/dist/src/client/entitlements.d.ts +506 -0
  124. package/dist/src/client/entitlements.js +239 -0
  125. package/dist/src/client/entitlements.js.map +1 -0
  126. package/dist/src/client/events.d.ts +102 -0
  127. package/dist/src/client/events.js +58 -0
  128. package/dist/src/client/events.js.map +1 -0
  129. package/dist/src/client/features.d.ts +154 -0
  130. package/dist/src/client/features.js +74 -0
  131. package/dist/src/client/features.js.map +1 -0
  132. package/dist/src/client/index.d.ts +42 -0
  133. package/dist/src/client/index.js +63 -0
  134. package/dist/src/client/index.js.map +1 -0
  135. package/dist/src/client/meters.d.ts +185 -0
  136. package/dist/src/client/meters.js +89 -0
  137. package/dist/src/client/meters.js.map +1 -0
  138. package/dist/src/client/notifications.d.ts +315 -0
  139. package/dist/src/client/notifications.js +242 -0
  140. package/dist/src/client/notifications.js.map +1 -0
  141. package/dist/src/client/plans.d.ts +193 -0
  142. package/dist/src/client/plans.js +123 -0
  143. package/dist/src/client/plans.js.map +1 -0
  144. package/dist/src/client/portal.d.ts +72 -0
  145. package/dist/src/client/portal.js +51 -0
  146. package/dist/src/client/portal.js.map +1 -0
  147. package/dist/src/client/subjects.d.ts +102 -0
  148. package/dist/src/client/subjects.js +72 -0
  149. package/dist/src/client/subjects.js.map +1 -0
  150. package/dist/src/client/subscriptions.d.ts +198 -0
  151. package/dist/src/client/subscriptions.js +112 -0
  152. package/dist/src/client/subscriptions.js.map +1 -0
  153. package/dist/src/client/utils.d.ts +30 -0
  154. package/dist/src/client/utils.js +85 -0
  155. package/dist/src/client/utils.js.map +1 -0
  156. package/dist/src/customers.d.ts +231 -0
  157. package/dist/src/customers.js +179 -0
  158. package/dist/src/customers.js.map +1 -0
  159. package/dist/src/entitlements.d.ts +505 -0
  160. package/dist/src/entitlements.js +239 -0
  161. package/dist/src/entitlements.js.map +1 -0
  162. package/dist/src/events.d.ts +101 -0
  163. package/dist/src/events.js +58 -0
  164. package/dist/src/events.js.map +1 -0
  165. package/dist/src/features.d.ts +153 -0
  166. package/dist/src/features.js +74 -0
  167. package/dist/src/features.js.map +1 -0
  168. package/dist/src/meters.d.ts +184 -0
  169. package/dist/src/meters.js +89 -0
  170. package/dist/src/meters.js.map +1 -0
  171. package/dist/src/notifications.d.ts +314 -0
  172. package/dist/src/notifications.js +242 -0
  173. package/dist/src/notifications.js.map +1 -0
  174. package/dist/src/plans.d.ts +192 -0
  175. package/dist/src/plans.js +123 -0
  176. package/dist/src/plans.js.map +1 -0
  177. package/dist/src/portal/index.d.ts +113 -0
  178. package/dist/src/portal/index.js +50 -0
  179. package/dist/src/portal/index.js.map +1 -0
  180. package/dist/src/react/context.d.ts +9 -0
  181. package/dist/src/react/context.js +16 -0
  182. package/dist/src/react/context.js.map +1 -0
  183. package/dist/src/subjects.d.ts +101 -0
  184. package/dist/src/subjects.js +72 -0
  185. package/dist/src/subjects.js.map +1 -0
  186. package/dist/src/subscriptions.d.ts +197 -0
  187. package/dist/src/subscriptions.js +112 -0
  188. package/dist/src/subscriptions.js.map +1 -0
  189. package/dist/src/utils.d.ts +29 -0
  190. package/dist/src/utils.js +85 -0
  191. package/dist/src/utils.js.map +1 -0
  192. package/dist/tsconfig.tsbuildinfo +1 -1
  193. package/package.json +95 -56
  194. package/patches/openapi-typescript.patch +73 -0
  195. package/dist/generated/HttpService.d.ts +0 -14
  196. package/dist/generated/HttpService.js +0 -27
  197. package/dist/generated/core/ApiError.d.ts +0 -10
  198. package/dist/generated/core/ApiError.js +0 -17
  199. package/dist/generated/core/ApiRequestOptions.d.ts +0 -13
  200. package/dist/generated/core/ApiRequestOptions.js +0 -2
  201. package/dist/generated/core/ApiResult.d.ts +0 -7
  202. package/dist/generated/core/ApiResult.js +0 -2
  203. package/dist/generated/core/BaseHttpRequest.d.ts +0 -8
  204. package/dist/generated/core/BaseHttpRequest.js +0 -7
  205. package/dist/generated/core/CancelablePromise.d.ts +0 -20
  206. package/dist/generated/core/CancelablePromise.js +0 -93
  207. package/dist/generated/core/NodeHttpRequest.d.ts +0 -14
  208. package/dist/generated/core/NodeHttpRequest.js +0 -17
  209. package/dist/generated/core/OpenAPI.d.ts +0 -16
  210. package/dist/generated/core/OpenAPI.js +0 -12
  211. package/dist/generated/core/request.d.ts +0 -34
  212. package/dist/generated/core/request.js +0 -268
  213. package/dist/generated/index.d.ts +0 -29
  214. package/dist/generated/index.js +0 -22
  215. package/dist/generated/models/Event.d.ts +0 -49
  216. package/dist/generated/models/Event.js +0 -11
  217. package/dist/generated/models/IdOrSlug.d.ts +0 -1
  218. package/dist/generated/models/IdOrSlug.js +0 -2
  219. package/dist/generated/models/Meter.d.ts +0 -30
  220. package/dist/generated/models/Meter.js +0 -2
  221. package/dist/generated/models/MeterAggregation.d.ts +0 -10
  222. package/dist/generated/models/MeterAggregation.js +0 -12
  223. package/dist/generated/models/MeterValue.d.ts +0 -10
  224. package/dist/generated/models/MeterValue.js +0 -2
  225. package/dist/generated/models/Namespace.d.ts +0 -6
  226. package/dist/generated/models/Namespace.js +0 -2
  227. package/dist/generated/models/Problem.d.ts +0 -4
  228. package/dist/generated/models/Problem.js +0 -2
  229. package/dist/generated/models/WindowSize.d.ts +0 -5
  230. package/dist/generated/models/WindowSize.js +0 -7
  231. package/dist/generated/models/meterIdOrSlug.d.ts +0 -5
  232. package/dist/generated/models/meterIdOrSlug.js +0 -2
  233. package/dist/generated/models/namespaceParam.d.ts +0 -4
  234. package/dist/generated/models/namespaceParam.js +0 -2
  235. package/dist/generated/schemas/$Event.d.ts +0 -59
  236. package/dist/generated/schemas/$Event.js +0 -60
  237. package/dist/generated/schemas/$IdOrSlug.d.ts +0 -13
  238. package/dist/generated/schemas/$IdOrSlug.js +0 -14
  239. package/dist/generated/schemas/$Meter.d.ts +0 -44
  240. package/dist/generated/schemas/$Meter.js +0 -45
  241. package/dist/generated/schemas/$MeterAggregation.d.ts +0 -3
  242. package/dist/generated/schemas/$MeterAggregation.js +0 -4
  243. package/dist/generated/schemas/$MeterValue.d.ts +0 -26
  244. package/dist/generated/schemas/$MeterValue.js +0 -27
  245. package/dist/generated/schemas/$Namespace.d.ts +0 -9
  246. package/dist/generated/schemas/$Namespace.js +0 -10
  247. package/dist/generated/schemas/$Problem.d.ts +0 -6
  248. package/dist/generated/schemas/$Problem.js +0 -7
  249. package/dist/generated/schemas/$WindowSize.d.ts +0 -3
  250. package/dist/generated/schemas/$WindowSize.js +0 -4
  251. package/dist/generated/schemas/$meterIdOrSlug.d.ts +0 -4
  252. package/dist/generated/schemas/$meterIdOrSlug.js +0 -5
  253. package/dist/generated/schemas/$namespaceParam.d.ts +0 -5
  254. package/dist/generated/schemas/$namespaceParam.js +0 -6
  255. package/dist/generated/services/DefaultService.d.ts +0 -16
  256. package/dist/generated/services/DefaultService.js +0 -22
  257. package/dist/generated/services/EventsService.d.ts +0 -17
  258. package/dist/generated/services/EventsService.js +0 -29
  259. package/dist/generated/services/MetersService.d.ts +0 -75
  260. package/dist/generated/services/MetersService.js +0 -140
  261. package/index.ts +0 -53
package/README.md CHANGED
@@ -1,92 +1,67 @@
1
- # OpenMeter Node SDK
1
+ # OpenMeter JavaScript SDK
2
2
 
3
3
  ## Install
4
4
 
5
5
  ```sh
6
- npm install --save @openmeter/sdk@alpha
6
+ npm install --save @openmeter/sdk
7
7
  ```
8
8
 
9
- ## Example
9
+ ## Configuration for accessing the OpenMeter API
10
+
11
+ To use the OpenMeter SDK on your backend, you need to configure `baseUrl` and `apiKey` for OpenMeter Cloud:
10
12
 
11
13
  ```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().toISOString(),
24
- data: {
25
- api_calls: 1,
26
- },
27
- }
28
- await openmeter.events.ingestEvents(event)
14
+ import { OpenMeter } from '@openmeter/sdk'
29
15
 
30
- // Fetching a meter
31
- const meter = await openmeter.meters.getMeter('m1')
16
+ const openmeter = new OpenMeter({
17
+ baseUrl: 'https://openmeter.cloud',
18
+ apiKey: 'om_...',
19
+ })
32
20
  ```
33
21
 
34
- ## API
35
-
36
- The OpenMeter SDK uses [openapi-typescript-codegen](https://www.npmjs.com/package/openapi-typescript-codegen) under the hood to generate the HTTP client.
37
-
38
- ### Events
22
+ ## Configuration for accessing the OpenMeter Portal API
39
23
 
40
- #### ingestEvents
24
+ To use the OpenMeter Portal SDK on your frontend, you need to configure it use a portal token in your configuration:
41
25
 
42
26
  ```ts
43
- import { type Event } from '@openmeter/sdk'
44
-
45
- const event: Event = {
46
- specversion: '1.0',
47
- id: 'id-1',
48
- source: 'my-app',
49
- type: 'my-type',
50
- subject: 'my-awesome-user-id',
51
- time: new Date().toISOString(),
52
- data: {
53
- api_calls: 1,
54
- },
55
- }
56
- await openmeter.events.ingestEvents(event)
57
- ```
58
-
59
- ### Meters
27
+ import { OpenMeter } from '@openmeter/sdk/portal'
60
28
 
61
- #### listMeters
62
-
63
- ```ts
64
- const meters = await openmeter.meters.listMeters()
29
+ const openmeter = new OpenMeter({
30
+ baseUrl: 'https://openmeter.cloud',
31
+ portalToken: 'om_portal_...',
32
+ })
65
33
  ```
66
34
 
67
- #### getMeter
35
+ ## Configuration for accessing the OpenMeter React SDK
36
+
37
+ To use the OpenMeter React SDK for the portal API, you need to configure a Portal Client and a React Context:
68
38
 
69
39
  ```ts
70
- const meter = await openmeter.meters.getMeter('m1')
71
- ```
40
+ import {
41
+ OpenMeter,
42
+ OpenMeterProvider,
43
+ useOpenMeter,
44
+ } from '@openmeter/sdk/react'
45
+
46
+ function App() {
47
+ // get portal token from your backend
48
+ const openmeter = new OpenMeter({
49
+ baseUrl: 'https://openmeter.cloud',
50
+ portalToken,
51
+ })
52
+
53
+ return (
54
+ <OpenMeterProvider value={openmeter}>
55
+ <UsageComponent />
56
+ {/* ... */}
57
+ </OpenMeterProvider>
58
+ )
59
+ }
72
60
 
73
- #### getMeterValues
61
+ function UsageComponent() {
62
+ // get openmeter client from context
63
+ const openmeter = useOpenMeter()
74
64
 
75
- ```ts
76
- import { type WindowSize } from '@openmeter/sdk'
77
-
78
- const meterSlug = 'm2'
79
- const namespace = undefined
80
- const subject = 'user-1'
81
- const from = new Date('2021-01-01').toISOString()
82
- const to = new Date('2021-01-02').toISOString()
83
- const windowSize = WindowSize.HOUR
84
- const values = await openmeter.meters.getMeterValues(
85
- meterSlug,
86
- namespace,
87
- subject,
88
- from,
89
- to,
90
- windowSize
91
- )
65
+ // ...
66
+ }
92
67
  ```
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./src/client/index.cjs"), exports);
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ export * from './src/client/index.cjs';
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wDAAqC"}
@@ -0,0 +1,176 @@
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, signal) {
25
+ const resp = await this.client.GET('/api/v1/apps', {
26
+ signal,
27
+ params: { query },
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, signal) {
38
+ const resp = await this.client.GET('/api/v1/apps/{id}', {
39
+ signal,
40
+ params: {
41
+ path: { id },
42
+ },
43
+ });
44
+ return (0, utils_js_1.transformResponse)(resp);
45
+ }
46
+ /**
47
+ * Update an app
48
+ * @param id - The ID of the app
49
+ * @param body - The body of the request
50
+ * @param signal - An optional abort signal
51
+ * @returns The app
52
+ */
53
+ async update(id, body, signal) {
54
+ const resp = await this.client.PUT('/api/v1/apps/{id}', {
55
+ body,
56
+ signal,
57
+ params: { path: { id } },
58
+ });
59
+ return (0, utils_js_1.transformResponse)(resp);
60
+ }
61
+ /**
62
+ * Uninstall an app
63
+ * @param id - The ID of the app
64
+ * @param signal - An optional abort signal
65
+ * @returns The app
66
+ */
67
+ async uninstall(id, signal) {
68
+ const resp = await this.client.DELETE('/api/v1/apps/{id}', {
69
+ signal,
70
+ params: { path: { id } },
71
+ });
72
+ return (0, utils_js_1.transformResponse)(resp);
73
+ }
74
+ }
75
+ exports.Apps = Apps;
76
+ /**
77
+ * App Marketplace
78
+ * Available apps from the OpenMeter Marketplace.
79
+ */
80
+ class AppMarketplace {
81
+ client;
82
+ constructor(client) {
83
+ this.client = client;
84
+ }
85
+ /**
86
+ * List available apps
87
+ * @param query - The query parameters
88
+ * @param signal - An optional abort signal
89
+ * @returns The apps
90
+ */
91
+ async list(query, signal) {
92
+ const resp = await this.client.GET('/api/v1/marketplace/listings', {
93
+ signal,
94
+ params: { query },
95
+ });
96
+ return (0, utils_js_1.transformResponse)(resp);
97
+ }
98
+ /**
99
+ * Get details for a listing
100
+ * @param type - The type of the listing
101
+ * @param signal - An optional abort signal
102
+ * @returns The listing
103
+ */
104
+ async get(type, signal) {
105
+ const resp = await this.client.GET('/api/v1/marketplace/listings/{type}', {
106
+ signal,
107
+ params: { path: { type } },
108
+ });
109
+ return (0, utils_js_1.transformResponse)(resp);
110
+ }
111
+ /**
112
+ * Install an app via OAuth. Returns a URL to start the OAuth 2.0 flow.
113
+ * @param type - The type of the listing
114
+ * @param signal - An optional abort signal
115
+ * @returns The OAuth2 install URL
116
+ */
117
+ async getOauth2InstallUrl(type, signal) {
118
+ const resp = await this.client.GET('/api/v1/marketplace/listings/{type}/install/oauth2', {
119
+ signal,
120
+ params: { path: { type } },
121
+ });
122
+ return (0, utils_js_1.transformResponse)(resp);
123
+ }
124
+ /**
125
+ * Authorize OAuth2 code. Verifies the OAuth code and exchanges it for a token and refresh token
126
+ * @param type - The type of the listing
127
+ * @param signal - An optional abort signal
128
+ * @returns The authorization URL
129
+ */
130
+ async authorizeOauth2(type, signal) {
131
+ const resp = await this.client.GET('/api/v1/marketplace/listings/{type}/install/oauth2/authorize', {
132
+ signal,
133
+ params: { path: { type } },
134
+ });
135
+ return (0, utils_js_1.transformResponse)(resp);
136
+ }
137
+ /**
138
+ * Install an app via API key.
139
+ * @param type - The type of the listing
140
+ * @param signal - An optional abort signal
141
+ * @returns The installation
142
+ */
143
+ async installWithAPIKey(type, body, signal) {
144
+ const resp = await this.client.POST('/api/v1/marketplace/listings/{type}/install/apikey', {
145
+ body,
146
+ signal,
147
+ params: { path: { type } },
148
+ });
149
+ return (0, utils_js_1.transformResponse)(resp);
150
+ }
151
+ }
152
+ exports.AppMarketplace = AppMarketplace;
153
+ /**
154
+ * Stripe App
155
+ */
156
+ class AppStripe {
157
+ client;
158
+ constructor(client) {
159
+ this.client = client;
160
+ }
161
+ /**
162
+ * Create a checkout session
163
+ * @param body - The body of the request
164
+ * @param signal - An optional abort signal
165
+ * @returns The checkout session
166
+ */
167
+ async createCheckoutSession(body, signal) {
168
+ const resp = await this.client.POST('/api/v1/stripe/checkout/sessions', {
169
+ body,
170
+ signal,
171
+ });
172
+ return (0, utils_js_1.transformResponse)(resp);
173
+ }
174
+ }
175
+ exports.AppStripe = AppStripe;
176
+ //# sourceMappingURL=apps.js.map
@@ -0,0 +1,338 @@
1
+ import type { AppBaseReplaceUpdate, CreateStripeCheckoutSessionRequest, operations, paths } from './schemas.cjs';
2
+ import type { Client } from 'openapi-fetch';
3
+ /**
4
+ * Apps
5
+ * Manage integrations for extending OpenMeter's functionality.
6
+ */
7
+ export declare class Apps {
8
+ private client;
9
+ marketplace: AppMarketplace;
10
+ stripe: AppStripe;
11
+ constructor(client: Client<paths, `${string}/${string}`>);
12
+ /**
13
+ * List apps
14
+ * @param query - The query parameters
15
+ * @param signal - An optional abort signal
16
+ * @returns The apps
17
+ */
18
+ list(query?: operations['listApps']['parameters']['query'], signal?: AbortSignal): Promise<{
19
+ data?: never;
20
+ error: import("./utils.cjs").Problem;
21
+ response: Response;
22
+ } | {
23
+ data: {
24
+ page: number;
25
+ pageSize: number;
26
+ totalCount: number;
27
+ items: import("./schemas.cjs").components["schemas"]["App"][];
28
+ };
29
+ error?: never;
30
+ response: Response;
31
+ }>;
32
+ /**
33
+ * Get an app
34
+ * @param id - The ID of the app
35
+ * @param signal - An optional abort signal
36
+ * @returns The app
37
+ */
38
+ get(id: operations['getApp']['parameters']['path']['id'], signal?: AbortSignal): Promise<{
39
+ data?: never;
40
+ error: import("./utils.cjs").Problem;
41
+ response: Response;
42
+ } | {
43
+ data: import("openapi-typescript-helpers").SuccessResponse<{
44
+ 200: {
45
+ headers: {
46
+ [name: string]: unknown;
47
+ };
48
+ content: {
49
+ "application/json": import("./schemas.cjs").components["schemas"]["App"];
50
+ };
51
+ };
52
+ 400: {
53
+ headers: {
54
+ [name: string]: unknown;
55
+ };
56
+ content: {
57
+ "application/problem+json": import("./schemas.cjs").components["schemas"]["BadRequestProblemResponse"];
58
+ };
59
+ };
60
+ 401: {
61
+ headers: {
62
+ [name: string]: unknown;
63
+ };
64
+ content: {
65
+ "application/problem+json": import("./schemas.cjs").components["schemas"]["UnauthorizedProblemResponse"];
66
+ };
67
+ };
68
+ 403: {
69
+ headers: {
70
+ [name: string]: unknown;
71
+ };
72
+ content: {
73
+ "application/problem+json": import("./schemas.cjs").components["schemas"]["ForbiddenProblemResponse"];
74
+ };
75
+ };
76
+ 404: {
77
+ headers: {
78
+ [name: string]: unknown;
79
+ };
80
+ content: {
81
+ "application/problem+json": import("./schemas.cjs").components["schemas"]["NotFoundProblemResponse"];
82
+ };
83
+ };
84
+ 500: {
85
+ headers: {
86
+ [name: string]: unknown;
87
+ };
88
+ content: {
89
+ "application/problem+json": import("./schemas.cjs").components["schemas"]["InternalServerErrorProblemResponse"];
90
+ };
91
+ };
92
+ 503: {
93
+ headers: {
94
+ [name: string]: unknown;
95
+ };
96
+ content: {
97
+ "application/problem+json": import("./schemas.cjs").components["schemas"]["ServiceUnavailableProblemResponse"];
98
+ };
99
+ };
100
+ default: {
101
+ headers: {
102
+ [name: string]: unknown;
103
+ };
104
+ content: {
105
+ "application/problem+json": import("./schemas.cjs").components["schemas"]["UnexpectedProblemResponse"];
106
+ };
107
+ };
108
+ }, `${string}/${string}`>;
109
+ error?: never;
110
+ response: Response;
111
+ }>;
112
+ /**
113
+ * Update an app
114
+ * @param id - The ID of the app
115
+ * @param body - The body of the request
116
+ * @param signal - An optional abort signal
117
+ * @returns The app
118
+ */
119
+ update(id: operations['updateApp']['parameters']['path']['id'], body: AppBaseReplaceUpdate, signal?: AbortSignal): Promise<{
120
+ data?: never;
121
+ error: import("./utils.cjs").Problem;
122
+ response: Response;
123
+ } | {
124
+ data: import("openapi-typescript-helpers").SuccessResponse<{
125
+ 200: {
126
+ headers: {
127
+ [name: string]: unknown;
128
+ };
129
+ content: {
130
+ "application/json": import("./schemas.cjs").components["schemas"]["App"];
131
+ };
132
+ };
133
+ 400: {
134
+ headers: {
135
+ [name: string]: unknown;
136
+ };
137
+ content: {
138
+ "application/problem+json": import("./schemas.cjs").components["schemas"]["BadRequestProblemResponse"];
139
+ };
140
+ };
141
+ 401: {
142
+ headers: {
143
+ [name: string]: unknown;
144
+ };
145
+ content: {
146
+ "application/problem+json": import("./schemas.cjs").components["schemas"]["UnauthorizedProblemResponse"];
147
+ };
148
+ };
149
+ 403: {
150
+ headers: {
151
+ [name: string]: unknown;
152
+ };
153
+ content: {
154
+ "application/problem+json": import("./schemas.cjs").components["schemas"]["ForbiddenProblemResponse"];
155
+ };
156
+ };
157
+ 404: {
158
+ headers: {
159
+ [name: string]: unknown;
160
+ };
161
+ content: {
162
+ "application/problem+json": import("./schemas.cjs").components["schemas"]["NotFoundProblemResponse"];
163
+ };
164
+ };
165
+ 500: {
166
+ headers: {
167
+ [name: string]: unknown;
168
+ };
169
+ content: {
170
+ "application/problem+json": import("./schemas.cjs").components["schemas"]["InternalServerErrorProblemResponse"];
171
+ };
172
+ };
173
+ 503: {
174
+ headers: {
175
+ [name: string]: unknown;
176
+ };
177
+ content: {
178
+ "application/problem+json": import("./schemas.cjs").components["schemas"]["ServiceUnavailableProblemResponse"];
179
+ };
180
+ };
181
+ default: {
182
+ headers: {
183
+ [name: string]: unknown;
184
+ };
185
+ content: {
186
+ "application/problem+json": import("./schemas.cjs").components["schemas"]["UnexpectedProblemResponse"];
187
+ };
188
+ };
189
+ }, `${string}/${string}`>;
190
+ error?: never;
191
+ response: Response;
192
+ }>;
193
+ /**
194
+ * Uninstall an app
195
+ * @param id - The ID of the app
196
+ * @param signal - An optional abort signal
197
+ * @returns The app
198
+ */
199
+ uninstall(id: operations['uninstallApp']['parameters']['path']['id'], signal?: AbortSignal): Promise<{
200
+ data?: never;
201
+ error: import("./utils.cjs").Problem;
202
+ response: Response;
203
+ } | {
204
+ data: undefined;
205
+ error?: never;
206
+ response: Response;
207
+ }>;
208
+ }
209
+ /**
210
+ * App Marketplace
211
+ * Available apps from the OpenMeter Marketplace.
212
+ */
213
+ export declare class AppMarketplace {
214
+ private client;
215
+ constructor(client: Client<paths, `${string}/${string}`>);
216
+ /**
217
+ * List available apps
218
+ * @param query - The query parameters
219
+ * @param signal - An optional abort signal
220
+ * @returns The apps
221
+ */
222
+ list(query?: operations['listMarketplaceListings']['parameters']['query'], signal?: AbortSignal): Promise<{
223
+ data?: never;
224
+ error: import("./utils.cjs").Problem;
225
+ response: Response;
226
+ } | {
227
+ data: {
228
+ page: number;
229
+ pageSize: number;
230
+ totalCount: number;
231
+ items: import("./schemas.cjs").components["schemas"]["MarketplaceListing"][];
232
+ };
233
+ error?: never;
234
+ response: Response;
235
+ }>;
236
+ /**
237
+ * Get details for a listing
238
+ * @param type - The type of the listing
239
+ * @param signal - An optional abort signal
240
+ * @returns The listing
241
+ */
242
+ get(type: operations['getMarketplaceListing']['parameters']['path']['type'], signal?: AbortSignal): Promise<{
243
+ data?: never;
244
+ error: import("./utils.cjs").Problem;
245
+ response: Response;
246
+ } | {
247
+ data: {
248
+ type: import("./schemas.cjs").components["schemas"]["AppType"];
249
+ name: string;
250
+ description: string;
251
+ capabilities: import("./schemas.cjs").components["schemas"]["AppCapability"][];
252
+ };
253
+ error?: never;
254
+ response: Response;
255
+ }>;
256
+ /**
257
+ * Install an app via OAuth. Returns a URL to start the OAuth 2.0 flow.
258
+ * @param type - The type of the listing
259
+ * @param signal - An optional abort signal
260
+ * @returns The OAuth2 install URL
261
+ */
262
+ getOauth2InstallUrl(type: operations['marketplaceOAuth2InstallGetURL']['parameters']['path']['type'], signal?: AbortSignal): Promise<{
263
+ data?: never;
264
+ error: import("./utils.cjs").Problem;
265
+ response: Response;
266
+ } | {
267
+ data: {
268
+ url: string;
269
+ };
270
+ error?: never;
271
+ response: Response;
272
+ }>;
273
+ /**
274
+ * Authorize OAuth2 code. Verifies the OAuth code and exchanges it for a token and refresh token
275
+ * @param type - The type of the listing
276
+ * @param signal - An optional abort signal
277
+ * @returns The authorization URL
278
+ */
279
+ authorizeOauth2(type: operations['marketplaceOAuth2InstallAuthorize']['parameters']['path']['type'], signal?: AbortSignal): Promise<{
280
+ data?: never;
281
+ error: import("./utils.cjs").Problem;
282
+ response: Response;
283
+ } | {
284
+ data: never;
285
+ error?: never;
286
+ response: Response;
287
+ }>;
288
+ /**
289
+ * Install an app via API key.
290
+ * @param type - The type of the listing
291
+ * @param signal - An optional abort signal
292
+ * @returns The installation
293
+ */
294
+ installWithAPIKey(type: operations['marketplaceAppAPIKeyInstall']['parameters']['path']['type'], body: operations['marketplaceAppAPIKeyInstall']['requestBody']['content']['application/json'], signal?: AbortSignal): Promise<{
295
+ data?: never;
296
+ error: import("./utils.cjs").Problem;
297
+ response: Response;
298
+ } | {
299
+ data: {
300
+ app: import("./schemas.cjs").components["schemas"]["App"];
301
+ defaultForCapabilityTypes: import("./schemas.cjs").components["schemas"]["AppCapabilityType"][];
302
+ };
303
+ error?: never;
304
+ response: Response;
305
+ }>;
306
+ }
307
+ /**
308
+ * Stripe App
309
+ */
310
+ export declare class AppStripe {
311
+ private client;
312
+ constructor(client: Client<paths, `${string}/${string}`>);
313
+ /**
314
+ * Create a checkout session
315
+ * @param body - The body of the request
316
+ * @param signal - An optional abort signal
317
+ * @returns The checkout session
318
+ */
319
+ createCheckoutSession(body: CreateStripeCheckoutSessionRequest, signal?: AbortSignal): Promise<{
320
+ data?: never;
321
+ error: import("./utils.cjs").Problem;
322
+ response: Response;
323
+ } | {
324
+ data: {
325
+ customerId: string;
326
+ stripeCustomerId: string;
327
+ sessionId: string;
328
+ setupIntentId: string;
329
+ url: string;
330
+ mode: import("./schemas.cjs").components["schemas"]["StripeCheckoutSessionMode"];
331
+ cancelURL?: string;
332
+ successURL?: string;
333
+ returnURL?: string;
334
+ };
335
+ error?: never;
336
+ response: Response;
337
+ }>;
338
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apps.js","sourceRoot":"","sources":["../../../src/apps.ts"],"names":[],"mappings":"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"}