@openmeter/sdk 1.0.0-beta.22 → 1.0.0-beta.221

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 (170) hide show
  1. package/Makefile +43 -0
  2. package/README.md +38 -150
  3. package/dist/cjs/index.cjs +18 -0
  4. package/dist/cjs/index.d.cts +1 -0
  5. package/dist/cjs/index.js.map +1 -0
  6. package/dist/cjs/src/client/addons.cjs +105 -0
  7. package/dist/cjs/src/client/addons.d.cts +152 -0
  8. package/dist/cjs/src/client/addons.js.map +1 -0
  9. package/dist/cjs/src/client/apps.cjs +247 -0
  10. package/dist/cjs/src/client/apps.d.cts +327 -0
  11. package/dist/cjs/src/client/apps.js.map +1 -0
  12. package/dist/cjs/src/client/billing.cjs +361 -0
  13. package/dist/cjs/src/client/billing.d.cts +526 -0
  14. package/dist/cjs/src/client/billing.js.map +1 -0
  15. package/dist/cjs/src/client/common.cjs +47 -0
  16. package/dist/cjs/src/client/common.d.cts +30 -0
  17. package/dist/cjs/src/client/common.js.map +1 -0
  18. package/dist/cjs/src/client/customers.cjs +283 -0
  19. package/dist/cjs/src/client/customers.d.cts +251 -0
  20. package/dist/cjs/src/client/customers.js.map +1 -0
  21. package/dist/cjs/src/client/debug.cjs +27 -0
  22. package/dist/cjs/src/client/debug.d.cts +17 -0
  23. package/dist/cjs/src/client/debug.js.map +1 -0
  24. package/dist/cjs/src/client/entitlements.cjs +281 -0
  25. package/dist/cjs/src/client/entitlements.d.cts +556 -0
  26. package/dist/cjs/src/client/entitlements.js.map +1 -0
  27. package/dist/cjs/src/client/events.cjs +113 -0
  28. package/dist/cjs/src/client/events.d.cts +48 -0
  29. package/dist/cjs/src/client/events.js.map +1 -0
  30. package/dist/cjs/src/client/features.cjs +78 -0
  31. package/dist/cjs/src/client/features.d.cts +78 -0
  32. package/dist/cjs/src/client/features.js.map +1 -0
  33. package/dist/cjs/src/client/index.cjs +120 -0
  34. package/dist/cjs/src/client/index.d.cts +53 -0
  35. package/dist/cjs/src/client/index.js.map +1 -0
  36. package/dist/cjs/src/client/info.cjs +42 -0
  37. package/dist/cjs/src/client/info.d.cts +34 -0
  38. package/dist/cjs/src/client/info.js.map +1 -0
  39. package/dist/cjs/src/client/meters.cjs +115 -0
  40. package/dist/cjs/src/client/meters.d.cts +123 -0
  41. package/dist/cjs/src/client/meters.js.map +1 -0
  42. package/dist/cjs/src/client/notifications.cjs +249 -0
  43. package/dist/cjs/src/client/notifications.d.cts +397 -0
  44. package/dist/cjs/src/client/notifications.js.map +1 -0
  45. package/dist/cjs/src/client/plans.cjs +204 -0
  46. package/dist/cjs/src/client/plans.d.cts +247 -0
  47. package/dist/cjs/src/client/plans.js.map +1 -0
  48. package/dist/cjs/src/client/portal.cjs +55 -0
  49. package/dist/cjs/src/client/portal.d.cts +48 -0
  50. package/dist/cjs/src/client/portal.js.map +1 -0
  51. package/dist/cjs/src/client/schemas.cjs +3 -0
  52. package/dist/cjs/src/client/schemas.d.cts +25246 -0
  53. package/dist/cjs/src/client/schemas.js.map +1 -0
  54. package/dist/cjs/src/client/subjects.cjs +76 -0
  55. package/dist/cjs/src/client/subjects.d.cts +70 -0
  56. package/dist/cjs/src/client/subjects.js.map +1 -0
  57. package/dist/cjs/src/client/subscription-addons.cjs +70 -0
  58. package/dist/cjs/src/client/subscription-addons.d.cts +123 -0
  59. package/dist/cjs/src/client/subscription-addons.js.map +1 -0
  60. package/dist/cjs/src/client/subscriptions.cjs +132 -0
  61. package/dist/cjs/src/client/subscriptions.d.cts +170 -0
  62. package/dist/cjs/src/client/subscriptions.js.map +1 -0
  63. package/dist/cjs/src/client/utils.cjs +69 -0
  64. package/dist/cjs/src/client/utils.d.cts +12 -0
  65. package/dist/cjs/src/client/utils.js.map +1 -0
  66. package/dist/cjs/src/portal/index.cjs +89 -0
  67. package/dist/cjs/src/portal/index.d.cts +43 -0
  68. package/dist/cjs/src/portal/index.js.map +1 -0
  69. package/dist/cjs/src/react/context.cjs +35 -0
  70. package/dist/cjs/src/react/context.d.cts +9 -0
  71. package/dist/cjs/src/react/context.js.map +1 -0
  72. package/dist/cjs/src/zod/index.cjs +12205 -0
  73. package/dist/cjs/src/zod/index.d.cts +19139 -0
  74. package/dist/cjs/src/zod/index.js.map +1 -0
  75. package/dist/cjs/tsconfig.0bedc47d.tsbuildinfo +1 -0
  76. package/dist/cjs/tsconfig.c449a50f.tsbuildinfo +1 -0
  77. package/dist/index.d.ts +1 -14
  78. package/dist/index.js +2 -15
  79. package/dist/index.js.map +1 -0
  80. package/dist/src/client/addons.d.ts +152 -0
  81. package/dist/src/client/addons.js +101 -0
  82. package/dist/src/client/addons.js.map +1 -0
  83. package/dist/src/client/apps.d.ts +327 -0
  84. package/dist/src/client/apps.js +240 -0
  85. package/dist/src/client/apps.js.map +1 -0
  86. package/dist/src/client/billing.d.ts +526 -0
  87. package/dist/src/client/billing.js +354 -0
  88. package/dist/src/client/billing.js.map +1 -0
  89. package/dist/src/client/common.d.ts +30 -0
  90. package/dist/src/client/common.js +42 -0
  91. package/dist/src/client/common.js.map +1 -0
  92. package/dist/src/client/customers.d.ts +251 -0
  93. package/dist/src/client/customers.js +276 -0
  94. package/dist/src/client/customers.js.map +1 -0
  95. package/dist/src/client/debug.d.ts +17 -0
  96. package/dist/src/client/debug.js +23 -0
  97. package/dist/src/client/debug.js.map +1 -0
  98. package/dist/src/client/entitlements.d.ts +556 -0
  99. package/dist/src/client/entitlements.js +276 -0
  100. package/dist/src/client/entitlements.js.map +1 -0
  101. package/dist/src/client/events.d.ts +48 -0
  102. package/dist/src/client/events.js +108 -0
  103. package/dist/src/client/events.js.map +1 -0
  104. package/dist/src/client/features.d.ts +78 -0
  105. package/dist/src/client/features.js +74 -0
  106. package/dist/src/client/features.js.map +1 -0
  107. package/dist/src/client/index.d.ts +53 -0
  108. package/dist/src/client/index.js +80 -0
  109. package/dist/src/client/index.js.map +1 -0
  110. package/dist/src/client/info.d.ts +34 -0
  111. package/dist/src/client/info.js +38 -0
  112. package/dist/src/client/info.js.map +1 -0
  113. package/dist/src/client/meters.d.ts +123 -0
  114. package/dist/src/client/meters.js +111 -0
  115. package/dist/src/client/meters.js.map +1 -0
  116. package/dist/src/client/notifications.d.ts +397 -0
  117. package/dist/src/client/notifications.js +242 -0
  118. package/dist/src/client/notifications.js.map +1 -0
  119. package/dist/src/client/plans.d.ts +247 -0
  120. package/dist/src/client/plans.js +199 -0
  121. package/dist/src/client/plans.js.map +1 -0
  122. package/dist/src/client/portal.d.ts +48 -0
  123. package/dist/src/client/portal.js +51 -0
  124. package/dist/src/client/portal.js.map +1 -0
  125. package/dist/src/client/schemas.d.ts +25246 -0
  126. package/dist/src/client/schemas.js +2 -0
  127. package/dist/src/client/schemas.js.map +1 -0
  128. package/dist/src/client/subjects.d.ts +70 -0
  129. package/dist/src/client/subjects.js +72 -0
  130. package/dist/src/client/subjects.js.map +1 -0
  131. package/dist/src/client/subscription-addons.d.ts +123 -0
  132. package/dist/src/client/subscription-addons.js +66 -0
  133. package/dist/src/client/subscription-addons.js.map +1 -0
  134. package/dist/src/client/subscriptions.d.ts +170 -0
  135. package/dist/src/client/subscriptions.js +128 -0
  136. package/dist/src/client/subscriptions.js.map +1 -0
  137. package/dist/src/client/utils.d.ts +12 -0
  138. package/dist/src/client/utils.js +63 -0
  139. package/dist/src/client/utils.js.map +1 -0
  140. package/dist/src/portal/index.d.ts +43 -0
  141. package/dist/src/portal/index.js +52 -0
  142. package/dist/src/portal/index.js.map +1 -0
  143. package/dist/src/react/context.d.ts +9 -0
  144. package/dist/src/react/context.js +16 -0
  145. package/dist/src/react/context.js.map +1 -0
  146. package/dist/src/zod/index.d.ts +19139 -0
  147. package/dist/src/zod/index.js +12178 -0
  148. package/dist/src/zod/index.js.map +1 -0
  149. package/dist/tsconfig.tsbuildinfo +1 -1
  150. package/orval.config.ts +42 -0
  151. package/package.json +89 -35
  152. package/patches/openapi-typescript.patch +6194 -0
  153. package/dist/clients/client.d.ts +0 -40
  154. package/dist/clients/client.js +0 -104
  155. package/dist/clients/event.d.ts +0 -79
  156. package/dist/clients/event.js +0 -53
  157. package/dist/clients/meter.d.ts +0 -71
  158. package/dist/clients/meter.js +0 -64
  159. package/dist/clients/portal.d.ts +0 -23
  160. package/dist/clients/portal.js +0 -37
  161. package/dist/next.d.ts +0 -15
  162. package/dist/next.js +0 -46
  163. package/dist/schemas/openapi.d.ts +0 -460
  164. package/dist/schemas/openapi.js +0 -5
  165. package/dist/test/agent.d.ts +0 -2
  166. package/dist/test/agent.js +0 -178
  167. package/dist/test/mocks.d.ts +0 -12
  168. package/dist/test/mocks.js +0 -32
  169. package/index.ts +0 -22
  170. package/next.ts +0 -76
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 Node SDK
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
- ## Example
9
+ ## Configuration for accessing the OpenMeter API
10
10
 
11
- ```ts
12
- import { OpenMeter, type Event } from '@openmeter/sdk'
13
-
14
- const openmeter = new OpenMeter({ baseUrl: 'http://localhost:8888' })
15
-
16
- // Ingesting an event
17
- const event: Event = {
18
- specversion: '1.0',
19
- id: 'id-1',
20
- source: 'my-app',
21
- type: 'my-type',
22
- subject: 'my-awesome-user-id',
23
- time: new Date(),
24
- data: {
25
- api_calls: 1,
26
- },
27
- }
28
- await openmeter.events.ingest(event)
29
-
30
- // Fetching a meter
31
- const meter = await openmeter.meters.get('m1')
32
- ```
33
-
34
- ## API
35
-
36
- ### Events
37
-
38
- #### ingest
39
-
40
- ```ts
41
- import { type Event } from '@openmeter/sdk'
42
-
43
- const event: Event = {
44
- specversion: '1.0',
45
- id: 'id-1',
46
- source: 'my-app',
47
- type: 'my-type',
48
- subject: 'my-awesome-user-id',
49
- time: new Date(),
50
- data: {
51
- api_calls: 1,
52
- },
53
- }
54
- await openmeter.events.ingest(event)
55
- ```
56
-
57
- #### 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
- const meter = await openmeter.meters.get('m1')
81
- ```
82
-
83
- #### query
84
-
85
- Query meter values.
14
+ import { OpenMeter } from '@openmeter/sdk'
86
15
 
87
- ```ts
88
- import { WindowSize } from '@openmeter/sdk'
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
- #### subjects
22
+ ## Configuration for accessing the OpenMeter Portal API
100
23
 
101
- List meter subjects.
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
- const subjects = await openmeter.meters.subjects('my-meter-slug')
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
- ```ts
115
- const token = await openmeter.portal.createToken({ subject: 'customer-1' })
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
- ## Helpers
127
-
128
- ### Vercel AI SDK / Next.js
35
+ ## Configuration for accessing the OpenMeter React SDK
129
36
 
130
- The OpenAI streaming API used by the Vercel AI SDK doesn't return token usage metadata by default.
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 OpenAI from 'openai'
136
- import { OpenAIStream, StreamingTextResponse } from 'ai'
137
- import { createOpenAIStreamCallback } from '@openmeter/sdk'
138
-
139
- export async function POST(req: Request) {
140
- const { messages } = await req.json()
141
- const model = 'gpt-3.5-turbo'
142
-
143
- const response = await openai.chat.completions.create({
144
- model,
145
- messages,
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
- const streamCallbacks = await createOpenAIStreamCallback(
150
- {
151
- model,
152
- prompts: messages.map(({ content }) => content),
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
- const stream = OpenAIStream(response, streamCallbacks)
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,105 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Addons = void 0;
4
+ const utils_js_1 = require("./utils.cjs");
5
+ class Addons {
6
+ client;
7
+ constructor(client) {
8
+ this.client = client;
9
+ }
10
+ /**
11
+ * Create a addon
12
+ * @param addon - The addon to create
13
+ * @param options - Optional request options
14
+ * @returns The created addon
15
+ */
16
+ async create(addon, options) {
17
+ const resp = await this.client.POST('/api/v1/addons', {
18
+ body: addon,
19
+ ...options,
20
+ });
21
+ return (0, utils_js_1.transformResponse)(resp);
22
+ }
23
+ /**
24
+ * List addons
25
+ * @param params - Optional parameters for listing addons
26
+ * @param options - Optional request options
27
+ * @returns A list of addons
28
+ */
29
+ async list(params, options) {
30
+ const resp = await this.client.GET('/api/v1/addons', {
31
+ params: { query: params },
32
+ ...options,
33
+ });
34
+ return (0, utils_js_1.transformResponse)(resp);
35
+ }
36
+ /**
37
+ * Get an addon by ID
38
+ * @param addonId - The ID of the addon to retrieve
39
+ * @param options - Optional request options
40
+ * @returns The addon
41
+ */
42
+ async get(addonId, options) {
43
+ const resp = await this.client.GET('/api/v1/addons/{addonId}', {
44
+ params: { path: { addonId } },
45
+ ...options,
46
+ });
47
+ return (0, utils_js_1.transformResponse)(resp);
48
+ }
49
+ /**
50
+ * Update an addon
51
+ * @param addonId - The ID of the addon to update
52
+ * @param addon - The addon data to update
53
+ * @param options - Optional request options
54
+ * @returns The updated addon
55
+ */
56
+ async update(addonId, addon, options) {
57
+ const resp = await this.client.PUT('/api/v1/addons/{addonId}', {
58
+ body: addon,
59
+ params: { path: { addonId } },
60
+ ...options,
61
+ });
62
+ return (0, utils_js_1.transformResponse)(resp);
63
+ }
64
+ /**
65
+ * Delete an addon by ID
66
+ * @param addonId - The ID of the addon to delete
67
+ * @param options - Optional request options
68
+ * @returns void or standard error response structure
69
+ */
70
+ async delete(addonId, options) {
71
+ const resp = await this.client.DELETE('/api/v1/addons/{addonId}', {
72
+ params: { path: { addonId } },
73
+ ...options,
74
+ });
75
+ return (0, utils_js_1.transformResponse)(resp);
76
+ }
77
+ /**
78
+ * Publish an addon
79
+ * @param addonId - The ID of the addon to publish
80
+ * @param options - Optional request options
81
+ * @returns The published addon
82
+ */
83
+ async publish(addonId, options) {
84
+ const resp = await this.client.POST('/api/v1/addons/{addonId}/publish', {
85
+ params: { path: { addonId } },
86
+ ...options,
87
+ });
88
+ return (0, utils_js_1.transformResponse)(resp);
89
+ }
90
+ /**
91
+ * Archive an addon
92
+ * @param addonId - The ID of the addon to archive
93
+ * @param options - Optional request options
94
+ * @returns The archived addon
95
+ */
96
+ async archive(addonId, options) {
97
+ const resp = await this.client.POST('/api/v1/addons/{addonId}/archive', {
98
+ params: { path: { addonId } },
99
+ ...options,
100
+ });
101
+ return (0, utils_js_1.transformResponse)(resp);
102
+ }
103
+ }
104
+ exports.Addons = Addons;
105
+ //# sourceMappingURL=addons.js.map
@@ -0,0 +1,152 @@
1
+ import type { RequestOptions } from './common.cjs';
2
+ import type { paths, AddonCreate, operations } from './schemas.cjs';
3
+ import type { Client } from 'openapi-fetch';
4
+ export declare class Addons {
5
+ private client;
6
+ constructor(client: Client<paths, `${string}/${string}`>);
7
+ /**
8
+ * Create a addon
9
+ * @param addon - The addon to create
10
+ * @param options - Optional request options
11
+ * @returns The created addon
12
+ */
13
+ create(addon: AddonCreate, options?: RequestOptions): Promise<{
14
+ readonly id: string;
15
+ name: string;
16
+ description?: string;
17
+ metadata?: import("./schemas.cjs").components["schemas"]["Metadata"] | null;
18
+ readonly createdAt: Date;
19
+ readonly updatedAt: Date;
20
+ readonly deletedAt?: Date;
21
+ key: string;
22
+ readonly annotations?: import("./schemas.cjs").components["schemas"]["Annotations"];
23
+ readonly version: number;
24
+ instanceType: import("./schemas.cjs").components["schemas"]["AddonInstanceType"];
25
+ currency: import("./schemas.cjs").components["schemas"]["CurrencyCode"];
26
+ readonly effectiveFrom?: Date;
27
+ readonly effectiveTo?: Date;
28
+ readonly status: import("./schemas.cjs").components["schemas"]["AddonStatus"];
29
+ rateCards: import("./schemas.cjs").components["schemas"]["RateCard"][];
30
+ readonly validationErrors: import("./schemas.cjs").components["schemas"]["ValidationError"][] | null;
31
+ }>;
32
+ /**
33
+ * List addons
34
+ * @param params - Optional parameters for listing addons
35
+ * @param options - Optional request options
36
+ * @returns A list of addons
37
+ */
38
+ list(params?: operations['listAddons']['parameters']['query'], options?: RequestOptions): Promise<{
39
+ totalCount: number;
40
+ page: number;
41
+ pageSize: number;
42
+ items: import("./schemas.cjs").components["schemas"]["Addon"][];
43
+ }>;
44
+ /**
45
+ * Get an addon by ID
46
+ * @param addonId - The ID of the addon to retrieve
47
+ * @param options - Optional request options
48
+ * @returns The addon
49
+ */
50
+ get(addonId: string, options?: RequestOptions): Promise<{
51
+ readonly id: string;
52
+ name: string;
53
+ description?: string;
54
+ metadata?: import("./schemas.cjs").components["schemas"]["Metadata"] | null;
55
+ readonly createdAt: Date;
56
+ readonly updatedAt: Date;
57
+ readonly deletedAt?: Date;
58
+ key: string;
59
+ readonly annotations?: import("./schemas.cjs").components["schemas"]["Annotations"];
60
+ readonly version: number;
61
+ instanceType: import("./schemas.cjs").components["schemas"]["AddonInstanceType"];
62
+ currency: import("./schemas.cjs").components["schemas"]["CurrencyCode"];
63
+ readonly effectiveFrom?: Date;
64
+ readonly effectiveTo?: Date;
65
+ readonly status: import("./schemas.cjs").components["schemas"]["AddonStatus"];
66
+ rateCards: import("./schemas.cjs").components["schemas"]["RateCard"][];
67
+ readonly validationErrors: import("./schemas.cjs").components["schemas"]["ValidationError"][] | null;
68
+ }>;
69
+ /**
70
+ * Update an addon
71
+ * @param addonId - The ID of the addon to update
72
+ * @param addon - The addon data to update
73
+ * @param options - Optional request options
74
+ * @returns The updated addon
75
+ */
76
+ update(addonId: string, addon: operations['updateAddon']['requestBody']['content']['application/json'], options?: RequestOptions): Promise<{
77
+ readonly id: string;
78
+ name: string;
79
+ description?: string;
80
+ metadata?: import("./schemas.cjs").components["schemas"]["Metadata"] | null;
81
+ readonly createdAt: Date;
82
+ readonly updatedAt: Date;
83
+ readonly deletedAt?: Date;
84
+ key: string;
85
+ readonly annotations?: import("./schemas.cjs").components["schemas"]["Annotations"];
86
+ readonly version: number;
87
+ instanceType: import("./schemas.cjs").components["schemas"]["AddonInstanceType"];
88
+ currency: import("./schemas.cjs").components["schemas"]["CurrencyCode"];
89
+ readonly effectiveFrom?: Date;
90
+ readonly effectiveTo?: Date;
91
+ readonly status: import("./schemas.cjs").components["schemas"]["AddonStatus"];
92
+ rateCards: import("./schemas.cjs").components["schemas"]["RateCard"][];
93
+ readonly validationErrors: import("./schemas.cjs").components["schemas"]["ValidationError"][] | null;
94
+ }>;
95
+ /**
96
+ * Delete an addon by ID
97
+ * @param addonId - The ID of the addon to delete
98
+ * @param options - Optional request options
99
+ * @returns void or standard error response structure
100
+ */
101
+ delete(addonId: string, options?: RequestOptions): Promise<undefined>;
102
+ /**
103
+ * Publish an addon
104
+ * @param addonId - The ID of the addon to publish
105
+ * @param options - Optional request options
106
+ * @returns The published addon
107
+ */
108
+ publish(addonId: string, options?: RequestOptions): Promise<{
109
+ readonly id: string;
110
+ name: string;
111
+ description?: string;
112
+ metadata?: import("./schemas.cjs").components["schemas"]["Metadata"] | null;
113
+ readonly createdAt: Date;
114
+ readonly updatedAt: Date;
115
+ readonly deletedAt?: Date;
116
+ key: string;
117
+ readonly annotations?: import("./schemas.cjs").components["schemas"]["Annotations"];
118
+ readonly version: number;
119
+ instanceType: import("./schemas.cjs").components["schemas"]["AddonInstanceType"];
120
+ currency: import("./schemas.cjs").components["schemas"]["CurrencyCode"];
121
+ readonly effectiveFrom?: Date;
122
+ readonly effectiveTo?: Date;
123
+ readonly status: import("./schemas.cjs").components["schemas"]["AddonStatus"];
124
+ rateCards: import("./schemas.cjs").components["schemas"]["RateCard"][];
125
+ readonly validationErrors: import("./schemas.cjs").components["schemas"]["ValidationError"][] | null;
126
+ }>;
127
+ /**
128
+ * Archive an addon
129
+ * @param addonId - The ID of the addon to archive
130
+ * @param options - Optional request options
131
+ * @returns The archived addon
132
+ */
133
+ archive(addonId: string, options?: RequestOptions): Promise<{
134
+ readonly id: string;
135
+ name: string;
136
+ description?: string;
137
+ metadata?: import("./schemas.cjs").components["schemas"]["Metadata"] | null;
138
+ readonly createdAt: Date;
139
+ readonly updatedAt: Date;
140
+ readonly deletedAt?: Date;
141
+ key: string;
142
+ readonly annotations?: import("./schemas.cjs").components["schemas"]["Annotations"];
143
+ readonly version: number;
144
+ instanceType: import("./schemas.cjs").components["schemas"]["AddonInstanceType"];
145
+ currency: import("./schemas.cjs").components["schemas"]["CurrencyCode"];
146
+ readonly effectiveFrom?: Date;
147
+ readonly effectiveTo?: Date;
148
+ readonly status: import("./schemas.cjs").components["schemas"]["AddonStatus"];
149
+ rateCards: import("./schemas.cjs").components["schemas"]["RateCard"][];
150
+ readonly validationErrors: import("./schemas.cjs").components["schemas"]["ValidationError"][] | null;
151
+ }>;
152
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"addons.js","sourceRoot":"","sources":["../../../../src/client/addons.ts"],"names":[],"mappings":";;;AAAA,yCAA8C;AAK9C,MAAa,MAAM;IACG;IAApB,YAAoB,MAA4C;QAA5C,WAAM,GAAN,MAAM,CAAsC;IAAG,CAAC;IAEpE;;;;;OAKG;IACI,KAAK,CAAC,MAAM,CAAC,KAAkB,EAAE,OAAwB;QAC9D,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,EAAE;YACpD,IAAI,EAAE,KAAK;YACX,GAAG,OAAO;SACX,CAAC,CAAA;QAEF,OAAO,IAAA,4BAAiB,EAAC,IAAI,CAAC,CAAA;IAChC,CAAC;IAED;;;;;OAKG;IACI,KAAK,CAAC,IAAI,CACf,MAAwD,EACxD,OAAwB;QAExB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,gBAAgB,EAAE;YACnD,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE;YACzB,GAAG,OAAO;SACX,CAAC,CAAA;QAEF,OAAO,IAAA,4BAAiB,EAAC,IAAI,CAAC,CAAA;IAChC,CAAC;IAED;;;;;OAKG;IACI,KAAK,CAAC,GAAG,CAAC,OAAe,EAAE,OAAwB;QACxD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,0BAA0B,EAAE;YAC7D,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,EAAE;YAC7B,GAAG,OAAO;SACX,CAAC,CAAA;QAEF,OAAO,IAAA,4BAAiB,EAAC,IAAI,CAAC,CAAA;IAChC,CAAC;IAED;;;;;;OAMG;IACI,KAAK,CAAC,MAAM,CACjB,OAAe,EACf,KAA8E,EAC9E,OAAwB;QAExB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,0BAA0B,EAAE;YAC7D,IAAI,EAAE,KAAK;YACX,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,EAAE;YAC7B,GAAG,OAAO;SACX,CAAC,CAAA;QAEF,OAAO,IAAA,4BAAiB,EAAC,IAAI,CAAC,CAAA;IAChC,CAAC;IAED;;;;;OAKG;IACI,KAAK,CAAC,MAAM,CAAC,OAAe,EAAE,OAAwB;QAC3D,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,0BAA0B,EAAE;YAChE,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,EAAE;YAC7B,GAAG,OAAO;SACX,CAAC,CAAA;QAEF,OAAO,IAAA,4BAAiB,EAAC,IAAI,CAAC,CAAA;IAChC,CAAC;IAED;;;;;OAKG;IACI,KAAK,CAAC,OAAO,CAAC,OAAe,EAAE,OAAwB;QAC5D,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,kCAAkC,EAAE;YACtE,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,EAAE;YAC7B,GAAG,OAAO;SACX,CAAC,CAAA;QAEF,OAAO,IAAA,4BAAiB,EAAC,IAAI,CAAC,CAAA;IAChC,CAAC;IAED;;;;;OAKG;IACI,KAAK,CAAC,OAAO,CAAC,OAAe,EAAE,OAAwB;QAC5D,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,kCAAkC,EAAE;YACtE,MAAM,EAAE,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,EAAE;YAC7B,GAAG,OAAO;SACX,CAAC,CAAA;QAEF,OAAO,IAAA,4BAAiB,EAAC,IAAI,CAAC,CAAA;IAChC,CAAC;CACF;AApHD,wBAoHC"}