@openmeter/sdk 1.0.0-beta.99 → 1.0.0-beta-9958c9245841
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/Makefile +43 -0
- package/README.md +232 -137
- package/biome.json +67 -0
- package/dist/cjs/index.cjs +15 -21
- package/dist/cjs/index.d.cts +1 -15
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/src/client/addons.cjs +105 -0
- package/dist/cjs/src/client/addons.d.cts +152 -0
- package/dist/cjs/src/client/addons.js.map +1 -0
- package/dist/cjs/src/client/apps.cjs +247 -0
- package/dist/cjs/src/client/apps.d.cts +327 -0
- package/dist/cjs/src/client/apps.js.map +1 -0
- package/dist/cjs/src/client/billing.cjs +375 -0
- package/dist/cjs/src/client/billing.d.cts +563 -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 +469 -0
- package/dist/cjs/src/client/customers.d.cts +617 -0
- package/dist/cjs/src/client/customers.js.map +1 -0
- package/dist/cjs/src/client/debug.cjs +27 -0
- package/dist/cjs/src/client/debug.d.cts +17 -0
- package/dist/cjs/src/client/debug.js.map +1 -0
- package/dist/cjs/src/client/entitlements.cjs +372 -0
- package/dist/cjs/src/client/entitlements.d.cts +670 -0
- package/dist/cjs/src/client/entitlements.js.map +1 -0
- package/dist/cjs/src/client/events.cjs +113 -0
- package/dist/cjs/src/client/events.d.cts +48 -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 +87 -0
- package/dist/cjs/src/client/features.js.map +1 -0
- package/dist/cjs/src/client/index.cjs +122 -0
- package/dist/cjs/src/client/index.d.cts +54 -0
- package/dist/cjs/src/client/index.js.map +1 -0
- package/dist/cjs/src/client/info.cjs +42 -0
- package/dist/cjs/src/client/info.d.cts +34 -0
- package/dist/cjs/src/client/info.js.map +1 -0
- package/dist/cjs/src/client/meters.cjs +160 -0
- package/dist/cjs/src/client/meters.d.cts +151 -0
- package/dist/cjs/src/client/meters.js.map +1 -0
- package/dist/cjs/src/client/notifications.cjs +269 -0
- package/dist/cjs/src/client/notifications.d.cts +412 -0
- package/dist/cjs/src/client/notifications.js.map +1 -0
- package/dist/cjs/src/client/plans.cjs +204 -0
- package/dist/cjs/src/client/plans.d.cts +247 -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 +27081 -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 +79 -0
- package/dist/cjs/src/client/subjects.js.map +1 -0
- package/dist/cjs/src/client/subscription-addons.cjs +70 -0
- package/dist/cjs/src/client/subscription-addons.d.cts +123 -0
- package/dist/cjs/src/client/subscription-addons.js.map +1 -0
- package/dist/cjs/src/client/subscriptions.cjs +132 -0
- package/dist/cjs/src/client/subscriptions.d.cts +175 -0
- package/dist/cjs/src/client/subscriptions.js.map +1 -0
- package/dist/cjs/src/client/utils.cjs +67 -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 +89 -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/src/zod/index.cjs +13102 -0
- package/dist/cjs/src/zod/index.d.cts +20044 -0
- package/dist/cjs/src/zod/index.js.map +1 -0
- package/dist/cjs/tsconfig.0781fa96.tsbuildinfo +1 -0
- package/dist/cjs/tsconfig.6c95ff08.tsbuildinfo +1 -0
- package/dist/index.d.ts +1 -15
- package/dist/index.js +1 -17
- package/dist/index.js.map +1 -1
- package/dist/src/client/addons.d.ts +152 -0
- package/dist/src/client/addons.js +101 -0
- package/dist/src/client/addons.js.map +1 -0
- package/dist/src/client/apps.d.ts +327 -0
- package/dist/src/client/apps.js +240 -0
- package/dist/src/client/apps.js.map +1 -0
- package/dist/src/client/billing.d.ts +563 -0
- package/dist/src/client/billing.js +368 -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 +617 -0
- package/dist/src/client/customers.js +461 -0
- package/dist/src/client/customers.js.map +1 -0
- package/dist/src/client/debug.d.ts +17 -0
- package/dist/src/client/debug.js +23 -0
- package/dist/src/client/debug.js.map +1 -0
- package/dist/src/client/entitlements.d.ts +670 -0
- package/dist/src/client/entitlements.js +365 -0
- package/dist/src/client/entitlements.js.map +1 -0
- package/dist/src/client/events.d.ts +48 -0
- package/dist/src/client/events.js +108 -0
- package/dist/src/client/events.js.map +1 -0
- package/dist/src/client/features.d.ts +87 -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 +54 -0
- package/dist/src/client/index.js +82 -0
- package/dist/src/client/index.js.map +1 -0
- package/dist/src/client/info.d.ts +34 -0
- package/dist/src/client/info.js +38 -0
- package/dist/src/client/info.js.map +1 -0
- package/dist/src/client/meters.d.ts +151 -0
- package/dist/src/client/meters.js +156 -0
- package/dist/src/client/meters.js.map +1 -0
- package/dist/src/client/notifications.d.ts +412 -0
- package/dist/src/client/notifications.js +262 -0
- package/dist/src/client/notifications.js.map +1 -0
- package/dist/src/client/plans.d.ts +247 -0
- package/dist/src/client/plans.js +199 -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 +27081 -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 +79 -0
- package/dist/src/client/subjects.js +72 -0
- package/dist/src/client/subjects.js.map +1 -0
- package/dist/src/client/subscription-addons.d.ts +123 -0
- package/dist/src/client/subscription-addons.js +66 -0
- package/dist/src/client/subscription-addons.js.map +1 -0
- package/dist/src/client/subscriptions.d.ts +175 -0
- package/dist/src/client/subscriptions.js +128 -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 +61 -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 +52 -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/src/zod/index.d.ts +20044 -0
- package/dist/src/zod/index.js +13071 -0
- package/dist/src/zod/index.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/orval.config.ts +38 -0
- package/package.json +62 -32
- package/patches/openapi-typescript.patch +6194 -0
- package/dist/cjs/clients/client.cjs +0 -117
- package/dist/cjs/clients/client.d.cts +0 -40
- package/dist/cjs/clients/client.js.map +0 -1
- package/dist/cjs/clients/event.cjs +0 -71
- package/dist/cjs/clients/event.d.cts +0 -79
- package/dist/cjs/clients/event.js.map +0 -1
- package/dist/cjs/clients/meter.cjs +0 -69
- package/dist/cjs/clients/meter.d.cts +0 -75
- package/dist/cjs/clients/meter.js.map +0 -1
- package/dist/cjs/clients/portal.cjs +0 -41
- package/dist/cjs/clients/portal.d.cts +0 -22
- package/dist/cjs/clients/portal.js.map +0 -1
- package/dist/cjs/clients/subject.cjs +0 -60
- package/dist/cjs/clients/subject.d.cts +0 -27
- package/dist/cjs/clients/subject.js.map +0 -1
- package/dist/cjs/schemas/openapi.cjs +0 -7
- package/dist/cjs/schemas/openapi.d.cts +0 -2078
- package/dist/cjs/schemas/openapi.js.map +0 -1
- package/dist/cjs/test/agent.cjs +0 -266
- package/dist/cjs/test/agent.d.cts +0 -2
- package/dist/cjs/test/agent.js.map +0 -1
- package/dist/cjs/test/mocks.cjs +0 -44
- package/dist/cjs/test/mocks.d.cts +0 -14
- package/dist/cjs/test/mocks.js.map +0 -1
- package/dist/cjs/tsconfig.8be50ffd.tsbuildinfo +0 -1
- package/dist/cjs/tsconfig.9c9b19d3.tsbuildinfo +0 -1
- package/dist/clients/client.d.ts +0 -40
- package/dist/clients/client.js +0 -112
- package/dist/clients/client.js.map +0 -1
- package/dist/clients/event.d.ts +0 -79
- package/dist/clients/event.js +0 -64
- package/dist/clients/event.js.map +0 -1
- package/dist/clients/meter.d.ts +0 -75
- package/dist/clients/meter.js +0 -65
- package/dist/clients/meter.js.map +0 -1
- package/dist/clients/portal.d.ts +0 -22
- package/dist/clients/portal.js +0 -37
- package/dist/clients/portal.js.map +0 -1
- package/dist/clients/subject.d.ts +0 -27
- package/dist/clients/subject.js +0 -56
- package/dist/clients/subject.js.map +0 -1
- package/dist/schemas/openapi.d.ts +0 -2078
- package/dist/schemas/openapi.js +0 -6
- package/dist/schemas/openapi.js.map +0 -1
- package/dist/test/agent.d.ts +0 -2
- package/dist/test/agent.js +0 -263
- package/dist/test/agent.js.map +0 -1
- package/dist/test/mocks.d.ts +0 -14
- package/dist/test/mocks.js +0 -41
- package/dist/test/mocks.js.map +0 -1
package/Makefile
ADDED
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
# A Self-Documenting Makefile: http://marmelab.com/blog/2016/02/29/auto-documented-makefile.html
|
|
2
|
+
|
|
3
|
+
.PHONY: generate
|
|
4
|
+
generate: ## Generate JavaScript SDK
|
|
5
|
+
$(call print-target)
|
|
6
|
+
pnpm --frozen-lockfile install
|
|
7
|
+
pnpm run generate
|
|
8
|
+
pnpm build
|
|
9
|
+
pnpm test
|
|
10
|
+
|
|
11
|
+
# Warning: keep in sync with .dagger/release.go for now
|
|
12
|
+
.PHONY: publish-javascript-sdk
|
|
13
|
+
publish-javascript-sdk: ## Publish JavaScript SDK
|
|
14
|
+
$(call print-target)
|
|
15
|
+
@if [ -z "$$JS_SDK_RELEASE_VERSION" ]; then \
|
|
16
|
+
echo "ERROR: JS_SDK_RELEASE_VERSION is required"; \
|
|
17
|
+
echo "Usage: JS_SDK_RELEASE_VERSION=1.2.3 make publish-javascript-sdk [JS_SDK_RELEASE_TAG=beta]"; \
|
|
18
|
+
exit 1; \
|
|
19
|
+
fi
|
|
20
|
+
|
|
21
|
+
@if [ -z "$$JS_SDK_RELEASE_TAG" ]; then \
|
|
22
|
+
echo "ERROR: JS_SDK_RELEASE_TAG is required"; \
|
|
23
|
+
echo "Usage: JS_SDK_RELEASE_VERSION=1.2.3 make publish-javascript-sdk [JS_SDK_RELEASE_TAG=beta]"; \
|
|
24
|
+
exit 1; \
|
|
25
|
+
fi
|
|
26
|
+
|
|
27
|
+
pnpm --frozen-lockfile install
|
|
28
|
+
pnpm version "$${JS_SDK_RELEASE_VERSION}" --no-git-tag-version
|
|
29
|
+
CACHE_BUSTER="$$(date --rfc-3339=seconds)" pnpm publish --no-git-checks --tag "$${JS_SDK_RELEASE_TAG}"
|
|
30
|
+
@echo "✅ Published $${JS_SDK_RELEASE_TAG} JavaScript SDK version $${JS_SDK_RELEASE_VERSION} with tag $${JS_SDK_RELEASE_TAG}"
|
|
31
|
+
|
|
32
|
+
.PHONY: help
|
|
33
|
+
.DEFAULT_GOAL := help
|
|
34
|
+
help:
|
|
35
|
+
@grep -h -E '^[a-zA-Z_-]+:.*?## .*$$' $(MAKEFILE_LIST) | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}'
|
|
36
|
+
|
|
37
|
+
# Variable outputting/exporting rules
|
|
38
|
+
var-%: ; @echo $($*)
|
|
39
|
+
varexport-%: ; @echo $*=$($*)
|
|
40
|
+
|
|
41
|
+
define print-target
|
|
42
|
+
@printf "Executing target: \033[36m$@\033[0m\n"
|
|
43
|
+
endef
|
package/README.md
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
# OpenMeter
|
|
1
|
+
# OpenMeter JavaScript SDK
|
|
2
2
|
|
|
3
3
|
## Install
|
|
4
4
|
|
|
@@ -6,167 +6,262 @@
|
|
|
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
|
-
### batch ingest
|
|
11
|
+
To use the OpenMeter SDK on your backend, you need to configure `baseUrl` and `apiKey` for OpenMeter Cloud:
|
|
58
12
|
|
|
59
13
|
```ts
|
|
60
|
-
|
|
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
|
|
14
|
+
import { OpenMeter } from '@openmeter/sdk'
|
|
74
15
|
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
16
|
+
const openmeter = new OpenMeter({
|
|
17
|
+
baseUrl: 'https://openmeter.cloud',
|
|
18
|
+
apiKey: 'om_...',
|
|
19
|
+
})
|
|
79
20
|
```
|
|
80
21
|
|
|
81
|
-
|
|
22
|
+
## Configuration for accessing the OpenMeter Portal API
|
|
82
23
|
|
|
83
|
-
|
|
24
|
+
To use the OpenMeter Portal SDK on your frontend, you need to configure it use a portal token in your configuration:
|
|
84
25
|
|
|
85
26
|
```ts
|
|
86
|
-
|
|
87
|
-
```
|
|
27
|
+
import { OpenMeter } from '@openmeter/sdk/portal'
|
|
88
28
|
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
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,
|
|
29
|
+
const openmeter = new OpenMeter({
|
|
30
|
+
baseUrl: 'https://openmeter.cloud',
|
|
31
|
+
portalToken: 'om_portal_...',
|
|
102
32
|
})
|
|
103
33
|
```
|
|
104
34
|
|
|
105
|
-
|
|
35
|
+
## Configuration for accessing the OpenMeter React SDK
|
|
106
36
|
|
|
107
|
-
|
|
37
|
+
To use the OpenMeter React SDK for the portal API, you need to configure a Portal Client and a React Context:
|
|
108
38
|
|
|
109
39
|
```ts
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
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
|
+
}
|
|
116
60
|
|
|
117
|
-
|
|
118
|
-
|
|
61
|
+
function UsageComponent() {
|
|
62
|
+
// get openmeter client from context
|
|
63
|
+
const openmeter = useOpenMeter()
|
|
119
64
|
|
|
120
|
-
|
|
121
|
-
|
|
65
|
+
// ...
|
|
66
|
+
}
|
|
122
67
|
```
|
|
123
68
|
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
Invalidate portal tokens for all or specific subjects.
|
|
69
|
+
## Ingest usage events
|
|
127
70
|
|
|
128
71
|
```ts
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
72
|
+
// Ingest a single AI token usage event
|
|
73
|
+
await openmeter.events.ingest({
|
|
74
|
+
type: 'ai-tokens',
|
|
75
|
+
subject: 'customer-acme-corp',
|
|
76
|
+
id: 'evt_01234567', // optional: auto-generated if not provided
|
|
77
|
+
source: 'llm-api-gateway', // optional: defaults to '@openmeter/sdk'
|
|
78
|
+
time: new Date(), // optional: defaults to current time
|
|
79
|
+
data: {
|
|
80
|
+
model: 'gpt-4',
|
|
81
|
+
type: 'input',
|
|
82
|
+
tokens: 1250,
|
|
83
|
+
},
|
|
84
|
+
})
|
|
139
85
|
|
|
140
|
-
|
|
141
|
-
|
|
86
|
+
// Ingest multiple events in a batch for better performance
|
|
87
|
+
await openmeter.events.ingest([
|
|
142
88
|
{
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
89
|
+
type: 'ai-tokens',
|
|
90
|
+
subject: 'customer-acme-corp',
|
|
91
|
+
data: { model: 'gpt-4', type: 'input', tokens: 850 },
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
type: 'ai-tokens',
|
|
95
|
+
subject: 'customer-acme-corp',
|
|
96
|
+
data: { model: 'gpt-4', type: 'output', tokens: 850 },
|
|
97
|
+
},
|
|
146
98
|
])
|
|
147
99
|
```
|
|
148
100
|
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
101
|
+
## Client API Reference
|
|
102
|
+
|
|
103
|
+
The OpenMeter SDK provides a comprehensive client interface organized into logical groups. Below is a complete reference of all available methods.
|
|
104
|
+
|
|
105
|
+
### Overview
|
|
106
|
+
|
|
107
|
+
| Namespace | Resource | Operation | Method | Description |
|
|
108
|
+
|-----------|----------|-----------|--------|-------------|
|
|
109
|
+
| **[Events](#events)** | | | | Track usage by ingesting events |
|
|
110
|
+
| | Events | Create | [`openmeter.events.ingest(events)`](./src/client/events.ts#L19) | Ingest a single event or batch of events |
|
|
111
|
+
| | Events | Read | [`openmeter.events.list(params?)`](./src/client/events.ts#L41) | List ingested events with advanced filtering |
|
|
112
|
+
| | Events | Read | [`openmeter.events.listV2(params?)`](./src/client/events.ts#L60) | List ingested events with advanced filtering (V2) |
|
|
113
|
+
| **[Meters](#meters)** | | | | Track and aggregate usage data from events |
|
|
114
|
+
| | Meters | Create | [`openmeter.meters.create(meter)`](./src/client/meters.ts#L19) | Create a new meter |
|
|
115
|
+
| | Meters | Read | [`openmeter.meters.get(idOrSlug)`](./src/client/meters.ts#L34) | Get a meter by ID or slug |
|
|
116
|
+
| | Meters | Read | [`openmeter.meters.list()`](./src/client/meters.ts#L55) | List all meters |
|
|
117
|
+
| | Meters | Read | [`openmeter.meters.query(idOrSlug, query?)`](./src/client/meters.ts#L70) | Query usage data |
|
|
118
|
+
| | Meters | Update | [`openmeter.meters.update(idOrSlug, meter)`](./src/client/meters.ts#L100) | Update a meter by ID or slug |
|
|
119
|
+
| | Meters | Delete | [`openmeter.meters.delete(idOrSlug)`](./src/client/meters.ts#L124) | Delete a meter by ID or slug |
|
|
120
|
+
| **[Subjects](#subjects)** | | | | Manage entities that consume resources |
|
|
121
|
+
| | Subjects | Create | [`openmeter.subjects.upsert(subjects)`](./src/client/subjects.ts#L21) | Create or update one or multiple subjects |
|
|
122
|
+
| | Subjects | Read | [`openmeter.subjects.get(idOrKey)`](./src/client/subjects.ts#L39) | Get a subject by ID or key |
|
|
123
|
+
| | Subjects | Read | [`openmeter.subjects.list()`](./src/client/subjects.ts#L60) | List all subjects |
|
|
124
|
+
| | Subjects | Delete | [`openmeter.subjects.delete(idOrKey)`](./src/client/subjects.ts#L74) | Delete a subject by ID or key |
|
|
125
|
+
| **[Customers](#customers)** | | | | Manage customer subscription lifecycles and plan assignments |
|
|
126
|
+
| | Customers | Create | [`openmeter.customers.create(customer)`](./src/client/customers.ts#L37) | Create a new customer |
|
|
127
|
+
| | Customers | Read | [`openmeter.customers.get(customerIdOrKey)`](./src/client/customers.ts#L52) | Get a customer by ID or key |
|
|
128
|
+
| | Customers | Read | [`openmeter.customers.list(query?)`](./src/client/customers.ts#L123) | List all customers |
|
|
129
|
+
| | Customers | Read | [`openmeter.customers.getAccess(customerIdOrKey)`](./src/client/customers.ts#L143) | Get customer access information |
|
|
130
|
+
| | Customers | Read | [`openmeter.customers.listSubscriptions(customerIdOrKey, query?)`](./src/client/customers.ts#L169) | List customer subscriptions |
|
|
131
|
+
| | Customers | Update | [`openmeter.customers.update(customerIdOrKey, customer)`](./src/client/customers.ts#L75) | Update a customer |
|
|
132
|
+
| | Customers | Delete | [`openmeter.customers.delete(customerIdOrKey)`](./src/client/customers.ts#L99) | Delete a customer |
|
|
133
|
+
| | Apps | Update | [`openmeter.customers.apps.upsert(customerIdOrKey, appData)`](./src/client/customers.ts#L200) | Upsert app data |
|
|
134
|
+
| | Apps | Read | [`openmeter.customers.apps.list(customerIdOrKey)`](./src/client/customers.ts#L228) | List app data |
|
|
135
|
+
| | Apps | Delete | [`openmeter.customers.apps.delete(customerIdOrKey, appId)`](./src/client/customers.ts#L254) | Delete app data |
|
|
136
|
+
| | Stripe | Update | [`openmeter.customers.stripe.upsert(customerIdOrKey, appDataBase)`](./src/client/customers.ts#L285) | Upsert Stripe app data |
|
|
137
|
+
| | Stripe | Read | [`openmeter.customers.stripe.get(customerIdOrKey)`](./src/client/customers.ts#L313) | Get Stripe app data |
|
|
138
|
+
| | Stripe | Create | [`openmeter.customers.stripe.createPortalSession(customerIdOrKey, params)`](./src/client/customers.ts#L337) | Create a Stripe customer portal session |
|
|
139
|
+
| | Entitlements V1 | Read | [`openmeter.customers.entitlementsV1.value(customerIdOrKey, featureKey)`](./src/client/customers.ts#L372) | Get entitlement value (V1 API) |
|
|
140
|
+
| | Entitlements | Read | [`openmeter.customers.entitlements.list(customerIdOrKey)`](./src/client/customers.ts#L401) | List entitlements |
|
|
141
|
+
| | Entitlements | Create | [`openmeter.customers.entitlements.create(customerIdOrKey, entitlement)`](./src/client/customers.ts#L428) | Create an entitlement |
|
|
142
|
+
| | Entitlements | Read | [`openmeter.customers.entitlements.get(customerIdOrKey, featureKeyOrId)`](./src/client/customers.ts#L454) | Get an entitlement |
|
|
143
|
+
| | Entitlements | Delete | [`openmeter.customers.entitlements.delete(customerIdOrKey, entitlementId)`](./src/client/customers.ts#L479) | Delete an entitlement |
|
|
144
|
+
| | Entitlements | Update | [`openmeter.customers.entitlements.override(customerIdOrKey, featureKeyOrId, entitlement)`](./src/client/customers.ts#L505) | Override an entitlement |
|
|
145
|
+
| | Entitlements | Read | [`openmeter.customers.entitlements.value(customerIdOrKey, featureKeyOrId, query?)`](./src/client/customers.ts#L588) | Get entitlement value |
|
|
146
|
+
| | Entitlements | Read | [`openmeter.customers.entitlements.history(customerIdOrKey, featureKeyOrId, query?)`](./src/client/customers.ts#L617) | Get entitlement history |
|
|
147
|
+
| | Entitlements | Update | [`openmeter.customers.entitlements.resetUsage(customerIdOrKey, entitlementId, body?)`](./src/client/customers.ts#L653) | Reset usage |
|
|
148
|
+
| | Entitlements | Read | [`openmeter.customers.entitlements.listGrants(customerIdOrKey, featureKeyOrId, query?)`](./src/client/customers.ts#L532) | List grants |
|
|
149
|
+
| | Entitlements | Create | [`openmeter.customers.entitlements.createGrant(customerIdOrKey, featureKeyOrId, grant)`](./src/client/customers.ts#L561) | Create a grant |
|
|
150
|
+
| **[Features](#features)** | | | | Define application capabilities and services |
|
|
151
|
+
| | Features | Create | [`openmeter.features.create(feature)`](./src/client/features.ts#L24) | Create a new feature |
|
|
152
|
+
| | Features | Read | [`openmeter.features.get(featureIdOrKey)`](./src/client/features.ts#L39) | Get a feature by ID |
|
|
153
|
+
| | Features | Read | [`openmeter.features.list(params?)`](./src/client/features.ts#L61) | List all features |
|
|
154
|
+
| | Features | Delete | [`openmeter.features.delete(featureIdOrKey)`](./src/client/features.ts#L84) | Delete a feature by ID |
|
|
155
|
+
| **[Entitlements (V1)](#entitlements-v1)** | | | | Subject-based usage limits and access controls |
|
|
156
|
+
| | Entitlements | Create | [`openmeter.entitlementsV1.create(subjectIdOrKey, entitlement)`](./src/client/entitlements.ts#L40) | Create an entitlement for a subject |
|
|
157
|
+
| | Entitlements | Read | [`openmeter.entitlementsV1.get(entitlementId)`](./src/client/entitlements.ts#L68) | Get an entitlement by ID |
|
|
158
|
+
| | Entitlements | Read | [`openmeter.entitlementsV1.list(query?)`](./src/client/entitlements.ts#L91) | List all entitlements |
|
|
159
|
+
| | Entitlements | Read | [`openmeter.entitlementsV1.value(subjectIdOrKey, featureIdOrKey, query?)`](./src/client/entitlements.ts#L147) | Get the value of an entitlement |
|
|
160
|
+
| | Entitlements | Read | [`openmeter.entitlementsV1.history(subjectIdOrKey, entitlementIdOrFeatureKey, query?)`](./src/client/entitlements.ts#L180) | Get the history of an entitlement |
|
|
161
|
+
| | Entitlements | Update | [`openmeter.entitlementsV1.override(subjectIdOrKey, entitlementIdOrFeatureKey, override)`](./src/client/entitlements.ts#L213) | Override an entitlement |
|
|
162
|
+
| | Entitlements | Update | [`openmeter.entitlementsV1.reset(subjectIdOrKey, entitlementIdOrFeatureKey, reset?)`](./src/client/entitlements.ts#L247) | Reset entitlement usage |
|
|
163
|
+
| | Entitlements | Delete | [`openmeter.entitlementsV1.delete(subjectIdOrKey, entitlementId)`](./src/client/entitlements.ts#L116) | Delete an entitlement |
|
|
164
|
+
| | Grants | Create | [`openmeter.entitlementsV1.grants.create(subjectIdOrKey, entitlementIdOrFeatureKey, grant)`](./src/client/entitlements.ts#L283) | Create a grant for an entitlement |
|
|
165
|
+
| | Grants | Read | [`openmeter.entitlementsV1.grants.list(subjectIdOrKey, entitlementIdOrFeatureKey, query?)`](./src/client/entitlements.ts#L314) | List grants for an entitlement |
|
|
166
|
+
| | Grants | Read | [`openmeter.entitlementsV1.grants.listAll(query?)`](./src/client/entitlements.ts#L345) | List all grants |
|
|
167
|
+
| | Grants | Delete | [`openmeter.entitlementsV1.grants.void(entitlementId, grantId)`](./src/client/entitlements.ts#L369) | Void a grant |
|
|
168
|
+
| **[Entitlements](#entitlements)** | | | | Customer-based entitlements and access controls |
|
|
169
|
+
| | Entitlements | Read | [`openmeter.entitlements.list(query?)`](./src/client/entitlements.ts#L404) | List all entitlements (admin purposes) |
|
|
170
|
+
| | Entitlements | Read | [`openmeter.entitlements.get(entitlementId)`](./src/client/entitlements.ts#L425) | Get an entitlement by ID |
|
|
171
|
+
| | Grants | Read | [`openmeter.entitlements.grants.list(query?)`](./src/client/entitlements.ts#L453) | List all grants (admin purposes) |
|
|
172
|
+
| | Grants | Delete | [`openmeter.entitlements.grants.void(grantId)`](./src/client/entitlements.ts#L478) | Void a grant |
|
|
173
|
+
| **[Plans](#plans)** | | | | Manage subscription plans and pricing|
|
|
174
|
+
| | Plans | Create | [`openmeter.plans.create(plan)`](./src/client/plans.ts#L28) | Create a new plan|
|
|
175
|
+
| | Plans | Read | [`openmeter.plans.get(planId)`](./src/client/plans.ts#L44) | Get a plan by ID|
|
|
176
|
+
| | Plans | Read | [`openmeter.plans.list(query?)`](./src/client/plans.ts#L66) | List all plans|
|
|
177
|
+
| | Plans | Update | [`openmeter.plans.update(planId, plan)`](./src/client/plans.ts#L85) | Update a plan|
|
|
178
|
+
| | Plans | Delete | [`openmeter.plans.delete(planId)`](./src/client/plans.ts#L105) | Delete a plan by ID|
|
|
179
|
+
| | Plans | Other | [`openmeter.plans.archive(planId)`](./src/client/plans.ts#L123) | Archive a plan|
|
|
180
|
+
| | Plans | Other | [`openmeter.plans.publish(planId)`](./src/client/plans.ts#L141) | Publish a plan|
|
|
181
|
+
| | Addons | Read | [`openmeter.plans.addons.list(planId)`](./src/client/plans.ts#L168) | List addons|
|
|
182
|
+
| | Addons | Create | [`openmeter.plans.addons.create(planId, addon)`](./src/client/plans.ts#L191) | Create an addon|
|
|
183
|
+
| | Addons | Read | [`openmeter.plans.addons.get(planId, planAddonId)`](./src/client/plans.ts#L212) | Get an addon by ID|
|
|
184
|
+
| | Addons | Update | [`openmeter.plans.addons.update(planId, planAddonId, addon)`](./src/client/plans.ts#L238) | Update an addon|
|
|
185
|
+
| | Addons | Delete | [`openmeter.plans.addons.delete(planId, planAddonId)`](./src/client/plans.ts#L263) | Delete an addon by ID|
|
|
186
|
+
| **[Addons](#addons)** | | | | Manage standalone addons available across plans|
|
|
187
|
+
| | Addons | Create | [`openmeter.addons.create(addon)`](./src/client/addons.ts#L15) | Create a new addon|
|
|
188
|
+
| | Addons | Read | [`openmeter.addons.get(addonId)`](./src/client/addons.ts#L48) | Get an addon by ID|
|
|
189
|
+
| | Addons | Read | [`openmeter.addons.list(query?)`](./src/client/addons.ts#L30) | List all addons|
|
|
190
|
+
| | Addons | Update | [`openmeter.addons.update(addonId, addon)`](./src/client/addons.ts#L64) | Update an addon|
|
|
191
|
+
| | Addons | Delete | [`openmeter.addons.delete(addonId)`](./src/client/addons.ts#L84) | Delete an addon by ID|
|
|
192
|
+
| | Addons | Other | [`openmeter.addons.publish(addonId)`](./src/client/addons.ts#L99) | Publish an addon|
|
|
193
|
+
| | Addons | Other | [`openmeter.addons.archive(addonId)`](./src/client/addons.ts#L114) | Archive an addon|
|
|
194
|
+
| **[Subscriptions](#subscriptions)** | | | | Manage customer subscriptions|
|
|
195
|
+
| | Subscriptions | Create | [`openmeter.subscriptions.create(body)`](./src/client/subscriptions.ts#L24) | Create a new subscription|
|
|
196
|
+
| | Subscriptions | Read | [`openmeter.subscriptions.get(subscriptionId)`](./src/client/subscriptions.ts#L39) | Get a subscription by ID|
|
|
197
|
+
| | Subscriptions | Update | [`openmeter.subscriptions.edit(subscriptionId, body)`](./src/client/subscriptions.ts#L61) | Edit a subscription|
|
|
198
|
+
| | Subscriptions | Delete | [`openmeter.subscriptions.delete(subscriptionId)`](./src/client/subscriptions.ts#L180) | Delete a subscription (only scheduled)|
|
|
199
|
+
| | Subscriptions | Other | [`openmeter.subscriptions.cancel(subscriptionId, body?)`](./src/client/subscriptions.ts#L85) | Cancel a subscription|
|
|
200
|
+
| | Subscriptions | Other | [`openmeter.subscriptions.change(subscriptionId, body)`](./src/client/subscriptions.ts#L110) | Change a subscription (upgrade/downgrade)|
|
|
201
|
+
| | Subscriptions | Other | [`openmeter.subscriptions.migrate(subscriptionId, body)`](./src/client/subscriptions.ts#L135) | Migrate to a new plan version|
|
|
202
|
+
| | Subscriptions | Other | [`openmeter.subscriptions.unscheduleCancelation(subscriptionId)`](./src/client/subscriptions.ts#L158) | Unschedule a subscription cancelation|
|
|
203
|
+
| **[Subscription Addons](#subscription-addons)** | | | | Manage addons attached to specific subscriptions|
|
|
204
|
+
| | Subscription Addons | Create | [`openmeter.subscriptionAddons.create(subscriptionId, body)`](./src/client/subscription-addons.ts#L16) | Create a new subscription addon|
|
|
205
|
+
| | Subscription Addons | Read | [`openmeter.subscriptionAddons.get(subscriptionId, subscriptionAddonId)`](./src/client/subscription-addons.ts#L58) | Get a subscription addon by ID|
|
|
206
|
+
| | Subscription Addons | Read | [`openmeter.subscriptionAddons.list(subscriptionId)`](./src/client/subscription-addons.ts#L39) | List all addons of a subscription|
|
|
207
|
+
| | Subscription Addons | Update | [`openmeter.subscriptionAddons.update(subscriptionId, subscriptionAddonId, body)`](./src/client/subscription-addons.ts#L82) | Update a subscription addon|
|
|
208
|
+
| **[Billing](#billing)** | | | | Comprehensive billing management (profiles, invoices, overrides)|
|
|
209
|
+
| | Profiles | Create | [`openmeter.billing.profiles.create(profile)`](./src/client/billing.ts#L42) | Create a billing profile|
|
|
210
|
+
| | Profiles | Read | [`openmeter.billing.profiles.get(id)`](./src/client/billing.ts#L60) | Get a billing profile by ID|
|
|
211
|
+
| | Profiles | Read | [`openmeter.billing.profiles.list(query?)`](./src/client/billing.ts#L80) | List billing profiles|
|
|
212
|
+
| | Profiles | Update | [`openmeter.billing.profiles.update(id, profile)`](./src/client/billing.ts#L101) | Update a billing profile|
|
|
213
|
+
| | Profiles | Delete | [`openmeter.billing.profiles.delete(id)`](./src/client/billing.ts#L123) | Delete a billing profile|
|
|
214
|
+
| | Invoices | Read | [`openmeter.billing.invoices.list(query?)`](./src/client/billing.ts#L150) | List invoices|
|
|
215
|
+
| | Invoices | Read | [`openmeter.billing.invoices.get(id, query?)`](./src/client/billing.ts#L170) | Get an invoice by ID|
|
|
216
|
+
| | Invoices | Update | [`openmeter.billing.invoices.update(id, invoice)`](./src/client/billing.ts#L192) | Update an invoice (draft or earlier)|
|
|
217
|
+
| | Invoices | Delete | [`openmeter.billing.invoices.delete(id)`](./src/client/billing.ts#L213) | Delete an invoice (draft or earlier)|
|
|
218
|
+
| | Invoices | Other | [`openmeter.billing.invoices.advance(id)`](./src/client/billing.ts#L235) | Advance invoice to next status|
|
|
219
|
+
| | Invoices | Other | [`openmeter.billing.invoices.approve(id)`](./src/client/billing.ts#L257) | Approve an invoice (sends to customer)|
|
|
220
|
+
| | Invoices | Other | [`openmeter.billing.invoices.retry(id, body?)`](./src/client/billing.ts#L278) | Retry advancing after failure|
|
|
221
|
+
| | Invoices | Other | [`openmeter.billing.invoices.void(id)`](./src/client/billing.ts#L302) | Void an invoice|
|
|
222
|
+
| | Invoices | Other | [`openmeter.billing.invoices.recalculateTax(id)`](./src/client/billing.ts#L325) | Recalculate invoice tax amounts|
|
|
223
|
+
| | Invoices | Other | [`openmeter.billing.invoices.simulate(customerId, query?)`](./src/client/billing.ts#L346) | Simulate an invoice for a customer|
|
|
224
|
+
| | Invoices | Create | [`openmeter.billing.invoices.createLineItems(customerId, body)`](./src/client/billing.ts#L377) | Create pending line items|
|
|
225
|
+
| | Invoices | Create | [`openmeter.billing.invoices.invoicePendingLines(customerId)`](./src/client/billing.ts#L401) | Invoice pending lines|
|
|
226
|
+
| | Customers | Create | [`openmeter.billing.customers.createOverride(customerId, body)`](./src/client/billing.ts#L427) | Create or update a customer override|
|
|
227
|
+
| | Customers | Read | [`openmeter.billing.customers.getOverride(customerId, id)`](./src/client/billing.ts#L450) | Get a customer override|
|
|
228
|
+
| | Customers | Read | [`openmeter.billing.customers.listOverrides(customerId)`](./src/client/billing.ts#L471) | List customer overrides|
|
|
229
|
+
| | Customers | Delete | [`openmeter.billing.customers.deleteOverride(customerId, id)`](./src/client/billing.ts#L489) | Delete a customer override|
|
|
230
|
+
| **[Apps](#apps)** | | | | Manage integrations and app marketplace|
|
|
231
|
+
| | Apps | Read | [`openmeter.apps.list(query?)`](./src/client/apps.ts#L32) | List installed apps|
|
|
232
|
+
| | Apps | Read | [`openmeter.apps.get(id)`](./src/client/apps.ts#L50) | Get an app by ID|
|
|
233
|
+
| | Apps | Update | [`openmeter.apps.update(id, body)`](./src/client/apps.ts#L69) | Update an app|
|
|
234
|
+
| | Apps | Delete | [`openmeter.apps.uninstall(id)`](./src/client/apps.ts#L89) | Uninstall an app|
|
|
235
|
+
| | Marketplace | Read | [`openmeter.apps.marketplace.list(query?)`](./src/client/apps.ts#L115) | List available marketplace apps|
|
|
236
|
+
| | Marketplace | Read | [`openmeter.apps.marketplace.get(id)`](./src/client/apps.ts#L133) | Get marketplace listing details|
|
|
237
|
+
| | Marketplace | Read | [`openmeter.apps.marketplace.getOauth2InstallUrl(id, redirectUrl)`](./src/client/apps.ts#L151) | Get OAuth2 install URL|
|
|
238
|
+
| | Marketplace | Other | [`openmeter.apps.marketplace.authorizeOauth2(id, body)`](./src/client/apps.ts#L172) | Authorize OAuth2 code|
|
|
239
|
+
| | Marketplace | Create | [`openmeter.apps.marketplace.installWithAPIKey(id, body)`](./src/client/apps.ts#L193) | Install app with API key|
|
|
240
|
+
| | Stripe | Create | [`openmeter.apps.stripe.createCheckoutSession(body)`](./src/client/apps.ts#L223) | Create a Stripe checkout session|
|
|
241
|
+
| | Stripe | Update | [`openmeter.apps.stripe.updateApiKey(body)`](./src/client/apps.ts#L243) | Update Stripe API key|
|
|
242
|
+
| | Custom Invoicing | Other | [`openmeter.apps.customInvoicing.draftSynchronized(body)`](./src/client/apps.ts#L271) | Submit draft synchronization results|
|
|
243
|
+
| | Custom Invoicing | Other | [`openmeter.apps.customInvoicing.issuingSynchronized(body)`](./src/client/apps.ts#L295) | Submit issuing synchronization results|
|
|
244
|
+
| | Custom Invoicing | Update | [`openmeter.apps.customInvoicing.updatePaymentStatus(invoiceId, body)`](./src/client/apps.ts#L319) | Update payment status|
|
|
245
|
+
| **[Notifications](#notifications)** | | | | Set up automated notifications for usage thresholds|
|
|
246
|
+
| | Channels | Create | [`openmeter.notifications.channels.create(channel)`](./src/client/notifications.ts#L40) | Create a notification channel|
|
|
247
|
+
| | Channels | Read | [`openmeter.notifications.channels.get(channelId)`](./src/client/notifications.ts#L58) | Get a notification channel by ID|
|
|
248
|
+
| | Channels | Update | [`openmeter.notifications.channels.update(channelId, channel)`](./src/client/notifications.ts#L84) | Update a notification channel|
|
|
249
|
+
| | Channels | Read | [`openmeter.notifications.channels.list(query?)`](./src/client/notifications.ts#L111) | List notification channels|
|
|
250
|
+
| | Channels | Delete | [`openmeter.notifications.channels.delete(channelId)`](./src/client/notifications.ts#L131) | Delete a notification channel|
|
|
251
|
+
| | Rules | Create | [`openmeter.notifications.rules.create(rule)`](./src/client/notifications.ts#L164) | Create a notification rule|
|
|
252
|
+
| | Rules | Read | [`openmeter.notifications.rules.get(ruleId)`](./src/client/notifications.ts#L182) | Get a notification rule by ID|
|
|
253
|
+
| | Rules | Update | [`openmeter.notifications.rules.update(ruleId, rule)`](./src/client/notifications.ts#L205) | Update a notification rule|
|
|
254
|
+
| | Rules | Read | [`openmeter.notifications.rules.list(query?)`](./src/client/notifications.ts#L229) | List notification rules|
|
|
255
|
+
| | Rules | Delete | [`openmeter.notifications.rules.delete(ruleId)`](./src/client/notifications.ts#L249) | Delete a notification rule|
|
|
256
|
+
| | Events | Read | [`openmeter.notifications.events.get(eventId)`](./src/client/notifications.ts#L282) | Get a notification event by ID|
|
|
257
|
+
| | Events | Read | [`openmeter.notifications.events.list(query?)`](./src/client/notifications.ts#L307) | List notification events|
|
|
258
|
+
| **[Portal](#portal)** | | | | Manage consumer portal tokens for customer-facing interfaces|
|
|
259
|
+
| | Portal | Create | [`openmeter.portal.create(body)`](./src/client/portal.ts#L19) | Create a consumer portal token|
|
|
260
|
+
| | Portal | Read | [`openmeter.portal.list(query?)`](./src/client/portal.ts#L34) | List consumer portal tokens|
|
|
261
|
+
| | Portal | Other | [`openmeter.portal.invalidate(query?)`](./src/client/portal.ts#L52) | Invalidate consumer portal tokens|
|
|
262
|
+
| **[Info](#info)** | | | | Utility endpoints for system information|
|
|
263
|
+
| | Info | Read | [`openmeter.info.listCurrencies()`](./src/client/info.ts#L18) | List all supported currencies|
|
|
264
|
+
| | Info | Read | [`openmeter.info.getProgress(id)`](./src/client/info.ts#L32) | Get progress of a long-running operation|
|
|
265
|
+
| **[Debug](#debug)** | | | | Debug utilities for monitoring and troubleshooting|
|
|
266
|
+
| | Debug | Read | [`openmeter.debug.getMetrics()`](./src/client/debug.ts#L18) | Get event ingestion metrics (OpenMetrics format)|
|
|
160
267
|
|
|
161
|
-
```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
|
-
```
|
package/biome.json
ADDED
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "./node_modules/@biomejs/biome/configuration_schema.json",
|
|
3
|
+
"assist": {
|
|
4
|
+
"actions": {
|
|
5
|
+
"source": {
|
|
6
|
+
"organizeImports": "on",
|
|
7
|
+
"useSortedKeys": "on"
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
},
|
|
11
|
+
"files": {
|
|
12
|
+
"ignoreUnknown": false,
|
|
13
|
+
"includes": ["**"],
|
|
14
|
+
"maxSize": 20000000
|
|
15
|
+
},
|
|
16
|
+
"formatter": {
|
|
17
|
+
"enabled": true,
|
|
18
|
+
"indentStyle": "space",
|
|
19
|
+
"useEditorconfig": true
|
|
20
|
+
},
|
|
21
|
+
"javascript": {
|
|
22
|
+
"formatter": {
|
|
23
|
+
"arrowParentheses": "always",
|
|
24
|
+
"attributePosition": "auto",
|
|
25
|
+
"lineWidth": 80,
|
|
26
|
+
"quoteStyle": "single",
|
|
27
|
+
"semicolons": "asNeeded",
|
|
28
|
+
"trailingCommas": "all"
|
|
29
|
+
}
|
|
30
|
+
},
|
|
31
|
+
"linter": {
|
|
32
|
+
"enabled": true,
|
|
33
|
+
"rules": {
|
|
34
|
+
"recommended": true,
|
|
35
|
+
"style": {
|
|
36
|
+
"noInferrableTypes": "error",
|
|
37
|
+
"noParameterAssign": "error",
|
|
38
|
+
"noUnusedTemplateLiteral": "error",
|
|
39
|
+
"noUselessElse": "error",
|
|
40
|
+
"useAsConstAssertion": "error",
|
|
41
|
+
"useConst": "error",
|
|
42
|
+
"useDefaultParameterLast": "error",
|
|
43
|
+
"useEnumInitializers": "error",
|
|
44
|
+
"useNumberNamespace": "error",
|
|
45
|
+
"useSelfClosingElements": "error",
|
|
46
|
+
"useSingleVarDeclarator": "error"
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
},
|
|
50
|
+
"overrides": [
|
|
51
|
+
{
|
|
52
|
+
"assist": {
|
|
53
|
+
"actions": {
|
|
54
|
+
"source": {
|
|
55
|
+
"useSortedKeys": "off"
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
},
|
|
59
|
+
"includes": ["package.json"]
|
|
60
|
+
}
|
|
61
|
+
],
|
|
62
|
+
"vcs": {
|
|
63
|
+
"clientKind": "git",
|
|
64
|
+
"enabled": true,
|
|
65
|
+
"useIgnoreFile": true
|
|
66
|
+
}
|
|
67
|
+
}
|
package/dist/cjs/index.cjs
CHANGED
|
@@ -1,24 +1,18 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
Object.
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
const subject_js_1 = require("./clients/subject.cjs");
|
|
8
|
-
var meter_js_2 = require("./clients/meter.cjs");
|
|
9
|
-
Object.defineProperty(exports, "MeterAggregation", { enumerable: true, get: function () { return meter_js_2.MeterAggregation; } });
|
|
10
|
-
Object.defineProperty(exports, "WindowSize", { enumerable: true, get: function () { return meter_js_2.WindowSize; } });
|
|
11
|
-
class OpenMeter {
|
|
12
|
-
events;
|
|
13
|
-
meters;
|
|
14
|
-
portal;
|
|
15
|
-
subjects;
|
|
16
|
-
constructor(config) {
|
|
17
|
-
this.events = new event_js_1.EventsClient(config);
|
|
18
|
-
this.meters = new meter_js_1.MetersClient(config);
|
|
19
|
-
this.portal = new portal_js_1.PortalClient(config);
|
|
20
|
-
this.subjects = new subject_js_1.SubjectClient(config);
|
|
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]; } };
|
|
21
7
|
}
|
|
22
|
-
|
|
23
|
-
|
|
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);
|
|
24
18
|
//# sourceMappingURL=index.js.map
|
package/dist/cjs/index.d.cts
CHANGED
|
@@ -1,15 +1 @@
|
|
|
1
|
-
|
|
2
|
-
import { EventsClient } from './clients/event.cjs';
|
|
3
|
-
import { MetersClient } from './clients/meter.cjs';
|
|
4
|
-
import { PortalClient } from './clients/portal.cjs';
|
|
5
|
-
import { SubjectClient } from './clients/subject.cjs';
|
|
6
|
-
export { OpenMeterConfig, RequestOptions } from './clients/client.cjs';
|
|
7
|
-
export { Event, IngestedEvent, CloudEvent } from './clients/event.cjs';
|
|
8
|
-
export { Meter, MeterAggregation, WindowSize } from './clients/meter.cjs';
|
|
9
|
-
export declare class OpenMeter {
|
|
10
|
-
events: EventsClient;
|
|
11
|
-
meters: MetersClient;
|
|
12
|
-
portal: PortalClient;
|
|
13
|
-
subjects: SubjectClient;
|
|
14
|
-
constructor(config: OpenMeterConfig);
|
|
15
|
-
}
|
|
1
|
+
export * from './src/client/index.cjs';
|
package/dist/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wDAAqC"}
|