@openmeter/sdk 1.0.0-beta.21 → 1.0.0-beta.210
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/README.md +38 -150
- package/dist/cjs/index.cjs +18 -0
- package/dist/cjs/index.d.cts +1 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/src/client/apps.cjs +174 -0
- package/dist/cjs/src/client/apps.d.cts +285 -0
- package/dist/cjs/src/client/apps.js.map +1 -0
- package/dist/cjs/src/client/billing.cjs +309 -0
- package/dist/cjs/src/client/billing.d.cts +502 -0
- package/dist/cjs/src/client/billing.js.map +1 -0
- package/dist/cjs/src/client/common.cjs +47 -0
- package/dist/cjs/src/client/common.d.cts +30 -0
- package/dist/cjs/src/client/common.js.map +1 -0
- package/dist/cjs/src/client/customers.cjs +199 -0
- package/dist/cjs/src/client/customers.d.cts +176 -0
- package/dist/cjs/src/client/customers.js.map +1 -0
- package/dist/cjs/src/client/entitlements.cjs +244 -0
- package/dist/cjs/src/client/entitlements.d.cts +472 -0
- package/dist/cjs/src/client/entitlements.js.map +1 -0
- package/dist/cjs/src/client/events.cjs +66 -0
- package/dist/cjs/src/client/events.d.cts +31 -0
- package/dist/cjs/src/client/events.js.map +1 -0
- package/dist/cjs/src/client/features.cjs +78 -0
- package/dist/cjs/src/client/features.d.cts +78 -0
- package/dist/cjs/src/client/features.js.map +1 -0
- package/dist/cjs/src/client/index.cjs +108 -0
- package/dist/cjs/src/client/index.d.cts +45 -0
- package/dist/cjs/src/client/index.js.map +1 -0
- package/dist/cjs/src/client/meters.cjs +96 -0
- package/dist/cjs/src/client/meters.d.cts +99 -0
- package/dist/cjs/src/client/meters.js.map +1 -0
- package/dist/cjs/src/client/notifications.cjs +249 -0
- package/dist/cjs/src/client/notifications.d.cts +219 -0
- package/dist/cjs/src/client/notifications.js.map +1 -0
- package/dist/cjs/src/client/plans.cjs +127 -0
- package/dist/cjs/src/client/plans.d.cts +142 -0
- package/dist/cjs/src/client/plans.js.map +1 -0
- package/dist/cjs/src/client/portal.cjs +55 -0
- package/dist/cjs/src/client/portal.d.cts +48 -0
- package/dist/cjs/src/client/portal.js.map +1 -0
- package/dist/cjs/src/client/schemas.cjs +3 -0
- package/dist/cjs/src/client/schemas.d.cts +22268 -0
- package/dist/cjs/src/client/schemas.js.map +1 -0
- package/dist/cjs/src/client/subjects.cjs +76 -0
- package/dist/cjs/src/client/subjects.d.cts +70 -0
- package/dist/cjs/src/client/subjects.js.map +1 -0
- package/dist/cjs/src/client/subscriptions.cjs +116 -0
- package/dist/cjs/src/client/subscriptions.d.cts +147 -0
- package/dist/cjs/src/client/subscriptions.js.map +1 -0
- package/dist/cjs/src/client/utils.cjs +69 -0
- package/dist/cjs/src/client/utils.d.cts +12 -0
- package/dist/cjs/src/client/utils.js.map +1 -0
- package/dist/cjs/src/portal/index.cjs +60 -0
- package/dist/cjs/src/portal/index.d.cts +43 -0
- package/dist/cjs/src/portal/index.js.map +1 -0
- package/dist/cjs/src/react/context.cjs +35 -0
- package/dist/cjs/src/react/context.d.cts +9 -0
- package/dist/cjs/src/react/context.js.map +1 -0
- package/dist/cjs/tsconfig.1232d5e5.tsbuildinfo +1 -0
- package/dist/cjs/tsconfig.90ca0b5f.tsbuildinfo +1 -0
- package/dist/index.d.ts +1 -14
- package/dist/index.js +2 -15
- package/dist/index.js.map +1 -0
- package/dist/src/client/apps.d.ts +285 -0
- package/dist/src/client/apps.js +168 -0
- package/dist/src/client/apps.js.map +1 -0
- package/dist/src/client/billing.d.ts +502 -0
- package/dist/src/client/billing.js +302 -0
- package/dist/src/client/billing.js.map +1 -0
- package/dist/src/client/common.d.ts +30 -0
- package/dist/src/client/common.js +42 -0
- package/dist/src/client/common.js.map +1 -0
- package/dist/src/client/customers.d.ts +176 -0
- package/dist/src/client/customers.js +193 -0
- package/dist/src/client/customers.js.map +1 -0
- package/dist/src/client/entitlements.d.ts +472 -0
- package/dist/src/client/entitlements.js +239 -0
- package/dist/src/client/entitlements.js.map +1 -0
- package/dist/src/client/events.d.ts +31 -0
- package/dist/src/client/events.js +58 -0
- package/dist/src/client/events.js.map +1 -0
- package/dist/src/client/features.d.ts +78 -0
- package/dist/src/client/features.js +74 -0
- package/dist/src/client/features.js.map +1 -0
- package/dist/src/client/index.d.ts +45 -0
- package/dist/src/client/index.js +68 -0
- package/dist/src/client/index.js.map +1 -0
- package/dist/src/client/meters.d.ts +99 -0
- package/dist/src/client/meters.js +92 -0
- package/dist/src/client/meters.js.map +1 -0
- package/dist/src/client/notifications.d.ts +219 -0
- package/dist/src/client/notifications.js +242 -0
- package/dist/src/client/notifications.js.map +1 -0
- package/dist/src/client/plans.d.ts +142 -0
- package/dist/src/client/plans.js +123 -0
- package/dist/src/client/plans.js.map +1 -0
- package/dist/src/client/portal.d.ts +48 -0
- package/dist/src/client/portal.js +51 -0
- package/dist/src/client/portal.js.map +1 -0
- package/dist/src/client/schemas.d.ts +22268 -0
- package/dist/src/client/schemas.js +2 -0
- package/dist/src/client/schemas.js.map +1 -0
- package/dist/src/client/subjects.d.ts +70 -0
- package/dist/src/client/subjects.js +72 -0
- package/dist/src/client/subjects.js.map +1 -0
- package/dist/src/client/subscriptions.d.ts +147 -0
- package/dist/src/client/subscriptions.js +112 -0
- package/dist/src/client/subscriptions.js.map +1 -0
- package/dist/src/client/utils.d.ts +12 -0
- package/dist/src/client/utils.js +63 -0
- package/dist/src/client/utils.js.map +1 -0
- package/dist/src/portal/index.d.ts +43 -0
- package/dist/src/portal/index.js +53 -0
- package/dist/src/portal/index.js.map +1 -0
- package/dist/src/react/context.d.ts +9 -0
- package/dist/src/react/context.js +16 -0
- package/dist/src/react/context.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +75 -35
- package/patches/openapi-typescript.patch +73 -0
- package/dist/clients/client.d.ts +0 -40
- package/dist/clients/client.js +0 -104
- package/dist/clients/event.d.ts +0 -79
- package/dist/clients/event.js +0 -53
- package/dist/clients/meter.d.ts +0 -96
- package/dist/clients/meter.js +0 -64
- package/dist/clients/portal.d.ts +0 -23
- package/dist/clients/portal.js +0 -37
- package/dist/next.d.ts +0 -15
- package/dist/next.js +0 -46
- package/dist/schemas/openapi.d.ts +0 -460
- package/dist/schemas/openapi.js +0 -5
- package/dist/test/agent.d.ts +0 -2
- package/dist/test/agent.js +0 -178
- package/dist/test/mocks.d.ts +0 -12
- package/dist/test/mocks.js +0 -32
- package/index.ts +0 -22
- package/next.ts +0 -76
package/README.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# OpenMeter
|
|
1
|
+
# OpenMeter JavaScript SDK
|
|
2
2
|
|
|
3
3
|
## Install
|
|
4
4
|
|
|
@@ -6,174 +6,62 @@
|
|
|
6
6
|
npm install --save @openmeter/sdk
|
|
7
7
|
```
|
|
8
8
|
|
|
9
|
-
##
|
|
9
|
+
## Configuration for accessing the OpenMeter API
|
|
10
10
|
|
|
11
|
-
|
|
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
|
-
#### list
|
|
58
|
-
|
|
59
|
-
Retrieve latest raw events. Useful for debugging.
|
|
60
|
-
|
|
61
|
-
```ts
|
|
62
|
-
const events = await openmeter.events.list()
|
|
63
|
-
```
|
|
64
|
-
|
|
65
|
-
### Meters
|
|
66
|
-
|
|
67
|
-
#### list
|
|
68
|
-
|
|
69
|
-
List meters.
|
|
70
|
-
|
|
71
|
-
```ts
|
|
72
|
-
const meters = await openmeter.meters.list()
|
|
73
|
-
```
|
|
74
|
-
|
|
75
|
-
#### get
|
|
76
|
-
|
|
77
|
-
Get one meter by slug.
|
|
11
|
+
To use the OpenMeter SDK on your backend, you need to configure `baseUrl` and `apiKey` for OpenMeter Cloud:
|
|
78
12
|
|
|
79
13
|
```ts
|
|
80
|
-
|
|
81
|
-
```
|
|
82
|
-
|
|
83
|
-
#### query
|
|
84
|
-
|
|
85
|
-
Query meter values.
|
|
14
|
+
import { OpenMeter } from '@openmeter/sdk'
|
|
86
15
|
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
const values = await openmeter.meters.query('my-meter-slug', {
|
|
91
|
-
subject: ['user-1'],
|
|
92
|
-
groupBy: ['method', 'path'],
|
|
93
|
-
from: new Date('2021-01-01'),
|
|
94
|
-
to: new Date('2021-01-02'),
|
|
95
|
-
windowSize: WindowSize.HOUR,
|
|
16
|
+
const openmeter = new OpenMeter({
|
|
17
|
+
baseUrl: 'https://openmeter.cloud',
|
|
18
|
+
apiKey: 'om_...',
|
|
96
19
|
})
|
|
97
20
|
```
|
|
98
21
|
|
|
99
|
-
|
|
22
|
+
## Configuration for accessing the OpenMeter Portal API
|
|
100
23
|
|
|
101
|
-
|
|
24
|
+
To use the OpenMeter Portal SDK on your frontend, you need to configure it use a portal token in your configuration:
|
|
102
25
|
|
|
103
26
|
```ts
|
|
104
|
-
|
|
105
|
-
```
|
|
106
|
-
|
|
107
|
-
### Portal
|
|
108
|
-
|
|
109
|
-
#### createToken
|
|
110
|
-
|
|
111
|
-
Create subject specific tokens.
|
|
112
|
-
Useful to build consumer dashboards.
|
|
27
|
+
import { OpenMeter } from '@openmeter/sdk/portal'
|
|
113
28
|
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
#### invalidateTokens
|
|
119
|
-
|
|
120
|
-
Invalidate portal tokens for all or specific subjects.
|
|
121
|
-
|
|
122
|
-
```ts
|
|
123
|
-
await openmeter.portal.invalidateTokens()
|
|
29
|
+
const openmeter = new OpenMeter({
|
|
30
|
+
baseUrl: 'https://openmeter.cloud',
|
|
31
|
+
portalToken: 'om_portal_...',
|
|
32
|
+
})
|
|
124
33
|
```
|
|
125
34
|
|
|
126
|
-
##
|
|
127
|
-
|
|
128
|
-
### Vercel AI SDK / Next.js
|
|
35
|
+
## Configuration for accessing the OpenMeter React SDK
|
|
129
36
|
|
|
130
|
-
|
|
131
|
-
The OpenMeter `createOpenAIStreamCallback` helper function decorates the callback with a `onUsage`
|
|
132
|
-
callback which you can use to report usage to OpenMeter.
|
|
37
|
+
To use the OpenMeter React SDK for the portal API, you need to configure a Portal Client and a React Context:
|
|
133
38
|
|
|
134
39
|
```ts
|
|
135
|
-
import
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
const
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
stream: true,
|
|
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,
|
|
147
51
|
})
|
|
148
52
|
|
|
149
|
-
|
|
150
|
-
{
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
{
|
|
155
|
-
// onToken() => {...}
|
|
156
|
-
// onFinal() => {...}
|
|
157
|
-
async onUsage(usage) {
|
|
158
|
-
try {
|
|
159
|
-
await openmeter.events.ingest({
|
|
160
|
-
source: 'my-app',
|
|
161
|
-
type: 'my-event-type',
|
|
162
|
-
subject: 'my-customer-id',
|
|
163
|
-
data: {
|
|
164
|
-
// Usage is { total_tokens, prompt_tokens, completion_tokens }
|
|
165
|
-
...usage,
|
|
166
|
-
model,
|
|
167
|
-
},
|
|
168
|
-
})
|
|
169
|
-
} catch (err) {
|
|
170
|
-
console.error('failed to ingest usage', err)
|
|
171
|
-
}
|
|
172
|
-
},
|
|
173
|
-
}
|
|
53
|
+
return (
|
|
54
|
+
<OpenMeterProvider value={openmeter}>
|
|
55
|
+
<UsageComponent />
|
|
56
|
+
{/* ... */}
|
|
57
|
+
</OpenMeterProvider>
|
|
174
58
|
)
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
function UsageComponent() {
|
|
62
|
+
// get openmeter client from context
|
|
63
|
+
const openmeter = useOpenMeter()
|
|
175
64
|
|
|
176
|
-
|
|
177
|
-
return new StreamingTextResponse(stream)
|
|
65
|
+
// ...
|
|
178
66
|
}
|
|
179
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,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
|
|
@@ -0,0 +1,285 @@
|
|
|
1
|
+
import type { RequestOptions } from './common.cjs';
|
|
2
|
+
import type { AppBaseReplaceUpdate, CreateStripeCheckoutSessionRequest, operations, paths } from './schemas.cjs';
|
|
3
|
+
import type { Client } from 'openapi-fetch';
|
|
4
|
+
/**
|
|
5
|
+
* Apps
|
|
6
|
+
* Manage integrations for extending OpenMeter's functionality.
|
|
7
|
+
*/
|
|
8
|
+
export declare class Apps {
|
|
9
|
+
private client;
|
|
10
|
+
marketplace: AppMarketplace;
|
|
11
|
+
stripe: AppStripe;
|
|
12
|
+
constructor(client: Client<paths, `${string}/${string}`>);
|
|
13
|
+
/**
|
|
14
|
+
* List apps
|
|
15
|
+
* @param query - The query parameters
|
|
16
|
+
* @param signal - An optional abort signal
|
|
17
|
+
* @returns The apps
|
|
18
|
+
*/
|
|
19
|
+
list(query?: operations['listApps']['parameters']['query'], options?: RequestOptions): Promise<{
|
|
20
|
+
totalCount: number;
|
|
21
|
+
page: number;
|
|
22
|
+
pageSize: number;
|
|
23
|
+
items: import("./schemas.cjs").components["schemas"]["App"][];
|
|
24
|
+
}>;
|
|
25
|
+
/**
|
|
26
|
+
* Get an app
|
|
27
|
+
* @param id - The ID of the app
|
|
28
|
+
* @param signal - An optional abort signal
|
|
29
|
+
* @returns The app
|
|
30
|
+
*/
|
|
31
|
+
get(id: operations['getApp']['parameters']['path']['id'], options?: RequestOptions): Promise<import("openapi-typescript-helpers").SuccessResponse<{
|
|
32
|
+
200: {
|
|
33
|
+
headers: {
|
|
34
|
+
[name: string]: unknown;
|
|
35
|
+
};
|
|
36
|
+
content: {
|
|
37
|
+
"application/json": import("./schemas.cjs").components["schemas"]["App"];
|
|
38
|
+
};
|
|
39
|
+
};
|
|
40
|
+
400: {
|
|
41
|
+
headers: {
|
|
42
|
+
[name: string]: unknown;
|
|
43
|
+
};
|
|
44
|
+
content: {
|
|
45
|
+
"application/problem+json": import("./schemas.cjs").components["schemas"]["BadRequestProblemResponse"];
|
|
46
|
+
};
|
|
47
|
+
};
|
|
48
|
+
401: {
|
|
49
|
+
headers: {
|
|
50
|
+
[name: string]: unknown;
|
|
51
|
+
};
|
|
52
|
+
content: {
|
|
53
|
+
"application/problem+json": import("./schemas.cjs").components["schemas"]["UnauthorizedProblemResponse"];
|
|
54
|
+
};
|
|
55
|
+
};
|
|
56
|
+
403: {
|
|
57
|
+
headers: {
|
|
58
|
+
[name: string]: unknown;
|
|
59
|
+
};
|
|
60
|
+
content: {
|
|
61
|
+
"application/problem+json": import("./schemas.cjs").components["schemas"]["ForbiddenProblemResponse"];
|
|
62
|
+
};
|
|
63
|
+
};
|
|
64
|
+
404: {
|
|
65
|
+
headers: {
|
|
66
|
+
[name: string]: unknown;
|
|
67
|
+
};
|
|
68
|
+
content: {
|
|
69
|
+
"application/problem+json": import("./schemas.cjs").components["schemas"]["NotFoundProblemResponse"];
|
|
70
|
+
};
|
|
71
|
+
};
|
|
72
|
+
412: {
|
|
73
|
+
headers: {
|
|
74
|
+
[name: string]: unknown;
|
|
75
|
+
};
|
|
76
|
+
content: {
|
|
77
|
+
"application/problem+json": import("./schemas.cjs").components["schemas"]["PreconditionFailedProblemResponse"];
|
|
78
|
+
};
|
|
79
|
+
};
|
|
80
|
+
500: {
|
|
81
|
+
headers: {
|
|
82
|
+
[name: string]: unknown;
|
|
83
|
+
};
|
|
84
|
+
content: {
|
|
85
|
+
"application/problem+json": import("./schemas.cjs").components["schemas"]["InternalServerErrorProblemResponse"];
|
|
86
|
+
};
|
|
87
|
+
};
|
|
88
|
+
503: {
|
|
89
|
+
headers: {
|
|
90
|
+
[name: string]: unknown;
|
|
91
|
+
};
|
|
92
|
+
content: {
|
|
93
|
+
"application/problem+json": import("./schemas.cjs").components["schemas"]["ServiceUnavailableProblemResponse"];
|
|
94
|
+
};
|
|
95
|
+
};
|
|
96
|
+
default: {
|
|
97
|
+
headers: {
|
|
98
|
+
[name: string]: unknown;
|
|
99
|
+
};
|
|
100
|
+
content: {
|
|
101
|
+
"application/problem+json": import("./schemas.cjs").components["schemas"]["UnexpectedProblemResponse"];
|
|
102
|
+
};
|
|
103
|
+
};
|
|
104
|
+
}, `${string}/${string}`>>;
|
|
105
|
+
/**
|
|
106
|
+
* Update an app
|
|
107
|
+
* @param id - The ID of the app
|
|
108
|
+
* @param body - The body of the request
|
|
109
|
+
* @param signal - An optional abort signal
|
|
110
|
+
* @returns The app
|
|
111
|
+
*/
|
|
112
|
+
update(id: operations['updateApp']['parameters']['path']['id'], body: AppBaseReplaceUpdate, options?: RequestOptions): Promise<import("openapi-typescript-helpers").SuccessResponse<{
|
|
113
|
+
200: {
|
|
114
|
+
headers: {
|
|
115
|
+
[name: string]: unknown;
|
|
116
|
+
};
|
|
117
|
+
content: {
|
|
118
|
+
"application/json": import("./schemas.cjs").components["schemas"]["App"];
|
|
119
|
+
};
|
|
120
|
+
};
|
|
121
|
+
400: {
|
|
122
|
+
headers: {
|
|
123
|
+
[name: string]: unknown;
|
|
124
|
+
};
|
|
125
|
+
content: {
|
|
126
|
+
"application/problem+json": import("./schemas.cjs").components["schemas"]["BadRequestProblemResponse"];
|
|
127
|
+
};
|
|
128
|
+
};
|
|
129
|
+
401: {
|
|
130
|
+
headers: {
|
|
131
|
+
[name: string]: unknown;
|
|
132
|
+
};
|
|
133
|
+
content: {
|
|
134
|
+
"application/problem+json": import("./schemas.cjs").components["schemas"]["UnauthorizedProblemResponse"];
|
|
135
|
+
};
|
|
136
|
+
};
|
|
137
|
+
403: {
|
|
138
|
+
headers: {
|
|
139
|
+
[name: string]: unknown;
|
|
140
|
+
};
|
|
141
|
+
content: {
|
|
142
|
+
"application/problem+json": import("./schemas.cjs").components["schemas"]["ForbiddenProblemResponse"];
|
|
143
|
+
};
|
|
144
|
+
};
|
|
145
|
+
404: {
|
|
146
|
+
headers: {
|
|
147
|
+
[name: string]: unknown;
|
|
148
|
+
};
|
|
149
|
+
content: {
|
|
150
|
+
"application/problem+json": import("./schemas.cjs").components["schemas"]["NotFoundProblemResponse"];
|
|
151
|
+
};
|
|
152
|
+
};
|
|
153
|
+
412: {
|
|
154
|
+
headers: {
|
|
155
|
+
[name: string]: unknown;
|
|
156
|
+
};
|
|
157
|
+
content: {
|
|
158
|
+
"application/problem+json": import("./schemas.cjs").components["schemas"]["PreconditionFailedProblemResponse"];
|
|
159
|
+
};
|
|
160
|
+
};
|
|
161
|
+
500: {
|
|
162
|
+
headers: {
|
|
163
|
+
[name: string]: unknown;
|
|
164
|
+
};
|
|
165
|
+
content: {
|
|
166
|
+
"application/problem+json": import("./schemas.cjs").components["schemas"]["InternalServerErrorProblemResponse"];
|
|
167
|
+
};
|
|
168
|
+
};
|
|
169
|
+
503: {
|
|
170
|
+
headers: {
|
|
171
|
+
[name: string]: unknown;
|
|
172
|
+
};
|
|
173
|
+
content: {
|
|
174
|
+
"application/problem+json": import("./schemas.cjs").components["schemas"]["ServiceUnavailableProblemResponse"];
|
|
175
|
+
};
|
|
176
|
+
};
|
|
177
|
+
default: {
|
|
178
|
+
headers: {
|
|
179
|
+
[name: string]: unknown;
|
|
180
|
+
};
|
|
181
|
+
content: {
|
|
182
|
+
"application/problem+json": import("./schemas.cjs").components["schemas"]["UnexpectedProblemResponse"];
|
|
183
|
+
};
|
|
184
|
+
};
|
|
185
|
+
}, `${string}/${string}`>>;
|
|
186
|
+
/**
|
|
187
|
+
* Uninstall an app
|
|
188
|
+
* @param id - The ID of the app
|
|
189
|
+
* @param signal - An optional abort signal
|
|
190
|
+
* @returns The app
|
|
191
|
+
*/
|
|
192
|
+
uninstall(id: operations['uninstallApp']['parameters']['path']['id'], options?: RequestOptions): Promise<undefined>;
|
|
193
|
+
}
|
|
194
|
+
/**
|
|
195
|
+
* App Marketplace
|
|
196
|
+
* Available apps from the OpenMeter Marketplace.
|
|
197
|
+
*/
|
|
198
|
+
export declare class AppMarketplace {
|
|
199
|
+
private client;
|
|
200
|
+
constructor(client: Client<paths, `${string}/${string}`>);
|
|
201
|
+
/**
|
|
202
|
+
* List available apps
|
|
203
|
+
* @param query - The query parameters
|
|
204
|
+
* @param signal - An optional abort signal
|
|
205
|
+
* @returns The apps
|
|
206
|
+
*/
|
|
207
|
+
list(query?: operations['listMarketplaceListings']['parameters']['query'], options?: RequestOptions): Promise<{
|
|
208
|
+
totalCount: number;
|
|
209
|
+
page: number;
|
|
210
|
+
pageSize: number;
|
|
211
|
+
items: import("./schemas.cjs").components["schemas"]["MarketplaceListing"][];
|
|
212
|
+
}>;
|
|
213
|
+
/**
|
|
214
|
+
* Get details for a listing
|
|
215
|
+
* @param type - The type of the listing
|
|
216
|
+
* @param signal - An optional abort signal
|
|
217
|
+
* @returns The listing
|
|
218
|
+
*/
|
|
219
|
+
get(type: operations['getMarketplaceListing']['parameters']['path']['type'], options?: RequestOptions): Promise<{
|
|
220
|
+
type: import("./schemas.cjs").components["schemas"]["AppType"];
|
|
221
|
+
name: string;
|
|
222
|
+
description: string;
|
|
223
|
+
capabilities: import("./schemas.cjs").components["schemas"]["AppCapability"][];
|
|
224
|
+
}>;
|
|
225
|
+
/**
|
|
226
|
+
* Install an app via OAuth. Returns a URL to start the OAuth 2.0 flow.
|
|
227
|
+
* @param type - The type of the listing
|
|
228
|
+
* @param signal - An optional abort signal
|
|
229
|
+
* @returns The OAuth2 install URL
|
|
230
|
+
*/
|
|
231
|
+
getOauth2InstallUrl(type: operations['marketplaceOAuth2InstallGetURL']['parameters']['path']['type'], options?: RequestOptions): Promise<{
|
|
232
|
+
url: string;
|
|
233
|
+
}>;
|
|
234
|
+
/**
|
|
235
|
+
* Authorize OAuth2 code. Verifies the OAuth code and exchanges it for a token and refresh token
|
|
236
|
+
* @param type - The type of the listing
|
|
237
|
+
* @param signal - An optional abort signal
|
|
238
|
+
* @returns The authorization URL
|
|
239
|
+
*/
|
|
240
|
+
authorizeOauth2(type: operations['marketplaceOAuth2InstallAuthorize']['parameters']['path']['type'], options?: RequestOptions): Promise<never>;
|
|
241
|
+
/**
|
|
242
|
+
* Install an app via API key.
|
|
243
|
+
* @param type - The type of the listing
|
|
244
|
+
* @param signal - An optional abort signal
|
|
245
|
+
* @returns The installation
|
|
246
|
+
*/
|
|
247
|
+
installWithAPIKey(type: operations['marketplaceAppAPIKeyInstall']['parameters']['path']['type'], body: operations['marketplaceAppAPIKeyInstall']['requestBody']['content']['application/json'], options?: RequestOptions): Promise<{
|
|
248
|
+
app: import("./schemas.cjs").components["schemas"]["App"];
|
|
249
|
+
defaultForCapabilityTypes: import("./schemas.cjs").components["schemas"]["AppCapabilityType"][];
|
|
250
|
+
}>;
|
|
251
|
+
}
|
|
252
|
+
/**
|
|
253
|
+
* Stripe App
|
|
254
|
+
*/
|
|
255
|
+
export declare class AppStripe {
|
|
256
|
+
private client;
|
|
257
|
+
constructor(client: Client<paths, `${string}/${string}`>);
|
|
258
|
+
/**
|
|
259
|
+
* Create a checkout session
|
|
260
|
+
* @param body - The body of the request
|
|
261
|
+
* @param signal - An optional abort signal
|
|
262
|
+
* @returns The checkout session
|
|
263
|
+
*/
|
|
264
|
+
createCheckoutSession(body: CreateStripeCheckoutSessionRequest, options?: RequestOptions): Promise<{
|
|
265
|
+
customerId: string;
|
|
266
|
+
stripeCustomerId: string;
|
|
267
|
+
sessionId: string;
|
|
268
|
+
setupIntentId: string;
|
|
269
|
+
clientSecret?: string;
|
|
270
|
+
clientReferenceId?: string;
|
|
271
|
+
customerEmail?: string;
|
|
272
|
+
currency?: import("./schemas.cjs").components["schemas"]["CurrencyCode"];
|
|
273
|
+
createdAt: Date;
|
|
274
|
+
expiresAt?: Date;
|
|
275
|
+
metadata?: {
|
|
276
|
+
[key: string]: string;
|
|
277
|
+
};
|
|
278
|
+
status?: string;
|
|
279
|
+
url?: string;
|
|
280
|
+
mode: import("./schemas.cjs").components["schemas"]["StripeCheckoutSessionMode"];
|
|
281
|
+
cancelURL?: string;
|
|
282
|
+
successURL?: string;
|
|
283
|
+
returnURL?: string;
|
|
284
|
+
}>;
|
|
285
|
+
}
|