@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.
Files changed (203) hide show
  1. package/Makefile +43 -0
  2. package/README.md +232 -137
  3. package/biome.json +67 -0
  4. package/dist/cjs/index.cjs +15 -21
  5. package/dist/cjs/index.d.cts +1 -15
  6. package/dist/cjs/index.js.map +1 -1
  7. package/dist/cjs/src/client/addons.cjs +105 -0
  8. package/dist/cjs/src/client/addons.d.cts +152 -0
  9. package/dist/cjs/src/client/addons.js.map +1 -0
  10. package/dist/cjs/src/client/apps.cjs +247 -0
  11. package/dist/cjs/src/client/apps.d.cts +327 -0
  12. package/dist/cjs/src/client/apps.js.map +1 -0
  13. package/dist/cjs/src/client/billing.cjs +375 -0
  14. package/dist/cjs/src/client/billing.d.cts +563 -0
  15. package/dist/cjs/src/client/billing.js.map +1 -0
  16. package/dist/cjs/src/client/common.cjs +47 -0
  17. package/dist/cjs/src/client/common.d.cts +30 -0
  18. package/dist/cjs/src/client/common.js.map +1 -0
  19. package/dist/cjs/src/client/customers.cjs +469 -0
  20. package/dist/cjs/src/client/customers.d.cts +617 -0
  21. package/dist/cjs/src/client/customers.js.map +1 -0
  22. package/dist/cjs/src/client/debug.cjs +27 -0
  23. package/dist/cjs/src/client/debug.d.cts +17 -0
  24. package/dist/cjs/src/client/debug.js.map +1 -0
  25. package/dist/cjs/src/client/entitlements.cjs +372 -0
  26. package/dist/cjs/src/client/entitlements.d.cts +670 -0
  27. package/dist/cjs/src/client/entitlements.js.map +1 -0
  28. package/dist/cjs/src/client/events.cjs +113 -0
  29. package/dist/cjs/src/client/events.d.cts +48 -0
  30. package/dist/cjs/src/client/events.js.map +1 -0
  31. package/dist/cjs/src/client/features.cjs +78 -0
  32. package/dist/cjs/src/client/features.d.cts +87 -0
  33. package/dist/cjs/src/client/features.js.map +1 -0
  34. package/dist/cjs/src/client/index.cjs +122 -0
  35. package/dist/cjs/src/client/index.d.cts +54 -0
  36. package/dist/cjs/src/client/index.js.map +1 -0
  37. package/dist/cjs/src/client/info.cjs +42 -0
  38. package/dist/cjs/src/client/info.d.cts +34 -0
  39. package/dist/cjs/src/client/info.js.map +1 -0
  40. package/dist/cjs/src/client/meters.cjs +160 -0
  41. package/dist/cjs/src/client/meters.d.cts +151 -0
  42. package/dist/cjs/src/client/meters.js.map +1 -0
  43. package/dist/cjs/src/client/notifications.cjs +269 -0
  44. package/dist/cjs/src/client/notifications.d.cts +412 -0
  45. package/dist/cjs/src/client/notifications.js.map +1 -0
  46. package/dist/cjs/src/client/plans.cjs +204 -0
  47. package/dist/cjs/src/client/plans.d.cts +247 -0
  48. package/dist/cjs/src/client/plans.js.map +1 -0
  49. package/dist/cjs/src/client/portal.cjs +55 -0
  50. package/dist/cjs/src/client/portal.d.cts +48 -0
  51. package/dist/cjs/src/client/portal.js.map +1 -0
  52. package/dist/cjs/src/client/schemas.cjs +3 -0
  53. package/dist/cjs/src/client/schemas.d.cts +27081 -0
  54. package/dist/cjs/src/client/schemas.js.map +1 -0
  55. package/dist/cjs/src/client/subjects.cjs +76 -0
  56. package/dist/cjs/src/client/subjects.d.cts +79 -0
  57. package/dist/cjs/src/client/subjects.js.map +1 -0
  58. package/dist/cjs/src/client/subscription-addons.cjs +70 -0
  59. package/dist/cjs/src/client/subscription-addons.d.cts +123 -0
  60. package/dist/cjs/src/client/subscription-addons.js.map +1 -0
  61. package/dist/cjs/src/client/subscriptions.cjs +132 -0
  62. package/dist/cjs/src/client/subscriptions.d.cts +175 -0
  63. package/dist/cjs/src/client/subscriptions.js.map +1 -0
  64. package/dist/cjs/src/client/utils.cjs +67 -0
  65. package/dist/cjs/src/client/utils.d.cts +12 -0
  66. package/dist/cjs/src/client/utils.js.map +1 -0
  67. package/dist/cjs/src/portal/index.cjs +89 -0
  68. package/dist/cjs/src/portal/index.d.cts +43 -0
  69. package/dist/cjs/src/portal/index.js.map +1 -0
  70. package/dist/cjs/src/react/context.cjs +35 -0
  71. package/dist/cjs/src/react/context.d.cts +9 -0
  72. package/dist/cjs/src/react/context.js.map +1 -0
  73. package/dist/cjs/src/zod/index.cjs +13102 -0
  74. package/dist/cjs/src/zod/index.d.cts +20044 -0
  75. package/dist/cjs/src/zod/index.js.map +1 -0
  76. package/dist/cjs/tsconfig.0781fa96.tsbuildinfo +1 -0
  77. package/dist/cjs/tsconfig.6c95ff08.tsbuildinfo +1 -0
  78. package/dist/index.d.ts +1 -15
  79. package/dist/index.js +1 -17
  80. package/dist/index.js.map +1 -1
  81. package/dist/src/client/addons.d.ts +152 -0
  82. package/dist/src/client/addons.js +101 -0
  83. package/dist/src/client/addons.js.map +1 -0
  84. package/dist/src/client/apps.d.ts +327 -0
  85. package/dist/src/client/apps.js +240 -0
  86. package/dist/src/client/apps.js.map +1 -0
  87. package/dist/src/client/billing.d.ts +563 -0
  88. package/dist/src/client/billing.js +368 -0
  89. package/dist/src/client/billing.js.map +1 -0
  90. package/dist/src/client/common.d.ts +30 -0
  91. package/dist/src/client/common.js +42 -0
  92. package/dist/src/client/common.js.map +1 -0
  93. package/dist/src/client/customers.d.ts +617 -0
  94. package/dist/src/client/customers.js +461 -0
  95. package/dist/src/client/customers.js.map +1 -0
  96. package/dist/src/client/debug.d.ts +17 -0
  97. package/dist/src/client/debug.js +23 -0
  98. package/dist/src/client/debug.js.map +1 -0
  99. package/dist/src/client/entitlements.d.ts +670 -0
  100. package/dist/src/client/entitlements.js +365 -0
  101. package/dist/src/client/entitlements.js.map +1 -0
  102. package/dist/src/client/events.d.ts +48 -0
  103. package/dist/src/client/events.js +108 -0
  104. package/dist/src/client/events.js.map +1 -0
  105. package/dist/src/client/features.d.ts +87 -0
  106. package/dist/src/client/features.js +74 -0
  107. package/dist/src/client/features.js.map +1 -0
  108. package/dist/src/client/index.d.ts +54 -0
  109. package/dist/src/client/index.js +82 -0
  110. package/dist/src/client/index.js.map +1 -0
  111. package/dist/src/client/info.d.ts +34 -0
  112. package/dist/src/client/info.js +38 -0
  113. package/dist/src/client/info.js.map +1 -0
  114. package/dist/src/client/meters.d.ts +151 -0
  115. package/dist/src/client/meters.js +156 -0
  116. package/dist/src/client/meters.js.map +1 -0
  117. package/dist/src/client/notifications.d.ts +412 -0
  118. package/dist/src/client/notifications.js +262 -0
  119. package/dist/src/client/notifications.js.map +1 -0
  120. package/dist/src/client/plans.d.ts +247 -0
  121. package/dist/src/client/plans.js +199 -0
  122. package/dist/src/client/plans.js.map +1 -0
  123. package/dist/src/client/portal.d.ts +48 -0
  124. package/dist/src/client/portal.js +51 -0
  125. package/dist/src/client/portal.js.map +1 -0
  126. package/dist/src/client/schemas.d.ts +27081 -0
  127. package/dist/src/client/schemas.js +2 -0
  128. package/dist/src/client/schemas.js.map +1 -0
  129. package/dist/src/client/subjects.d.ts +79 -0
  130. package/dist/src/client/subjects.js +72 -0
  131. package/dist/src/client/subjects.js.map +1 -0
  132. package/dist/src/client/subscription-addons.d.ts +123 -0
  133. package/dist/src/client/subscription-addons.js +66 -0
  134. package/dist/src/client/subscription-addons.js.map +1 -0
  135. package/dist/src/client/subscriptions.d.ts +175 -0
  136. package/dist/src/client/subscriptions.js +128 -0
  137. package/dist/src/client/subscriptions.js.map +1 -0
  138. package/dist/src/client/utils.d.ts +12 -0
  139. package/dist/src/client/utils.js +61 -0
  140. package/dist/src/client/utils.js.map +1 -0
  141. package/dist/src/portal/index.d.ts +43 -0
  142. package/dist/src/portal/index.js +52 -0
  143. package/dist/src/portal/index.js.map +1 -0
  144. package/dist/src/react/context.d.ts +9 -0
  145. package/dist/src/react/context.js +16 -0
  146. package/dist/src/react/context.js.map +1 -0
  147. package/dist/src/zod/index.d.ts +20044 -0
  148. package/dist/src/zod/index.js +13071 -0
  149. package/dist/src/zod/index.js.map +1 -0
  150. package/dist/tsconfig.tsbuildinfo +1 -1
  151. package/orval.config.ts +38 -0
  152. package/package.json +62 -32
  153. package/patches/openapi-typescript.patch +6194 -0
  154. package/dist/cjs/clients/client.cjs +0 -117
  155. package/dist/cjs/clients/client.d.cts +0 -40
  156. package/dist/cjs/clients/client.js.map +0 -1
  157. package/dist/cjs/clients/event.cjs +0 -71
  158. package/dist/cjs/clients/event.d.cts +0 -79
  159. package/dist/cjs/clients/event.js.map +0 -1
  160. package/dist/cjs/clients/meter.cjs +0 -69
  161. package/dist/cjs/clients/meter.d.cts +0 -75
  162. package/dist/cjs/clients/meter.js.map +0 -1
  163. package/dist/cjs/clients/portal.cjs +0 -41
  164. package/dist/cjs/clients/portal.d.cts +0 -22
  165. package/dist/cjs/clients/portal.js.map +0 -1
  166. package/dist/cjs/clients/subject.cjs +0 -60
  167. package/dist/cjs/clients/subject.d.cts +0 -27
  168. package/dist/cjs/clients/subject.js.map +0 -1
  169. package/dist/cjs/schemas/openapi.cjs +0 -7
  170. package/dist/cjs/schemas/openapi.d.cts +0 -2078
  171. package/dist/cjs/schemas/openapi.js.map +0 -1
  172. package/dist/cjs/test/agent.cjs +0 -266
  173. package/dist/cjs/test/agent.d.cts +0 -2
  174. package/dist/cjs/test/agent.js.map +0 -1
  175. package/dist/cjs/test/mocks.cjs +0 -44
  176. package/dist/cjs/test/mocks.d.cts +0 -14
  177. package/dist/cjs/test/mocks.js.map +0 -1
  178. package/dist/cjs/tsconfig.8be50ffd.tsbuildinfo +0 -1
  179. package/dist/cjs/tsconfig.9c9b19d3.tsbuildinfo +0 -1
  180. package/dist/clients/client.d.ts +0 -40
  181. package/dist/clients/client.js +0 -112
  182. package/dist/clients/client.js.map +0 -1
  183. package/dist/clients/event.d.ts +0 -79
  184. package/dist/clients/event.js +0 -64
  185. package/dist/clients/event.js.map +0 -1
  186. package/dist/clients/meter.d.ts +0 -75
  187. package/dist/clients/meter.js +0 -65
  188. package/dist/clients/meter.js.map +0 -1
  189. package/dist/clients/portal.d.ts +0 -22
  190. package/dist/clients/portal.js +0 -37
  191. package/dist/clients/portal.js.map +0 -1
  192. package/dist/clients/subject.d.ts +0 -27
  193. package/dist/clients/subject.js +0 -56
  194. package/dist/clients/subject.js.map +0 -1
  195. package/dist/schemas/openapi.d.ts +0 -2078
  196. package/dist/schemas/openapi.js +0 -6
  197. package/dist/schemas/openapi.js.map +0 -1
  198. package/dist/test/agent.d.ts +0 -2
  199. package/dist/test/agent.js +0 -263
  200. package/dist/test/agent.js.map +0 -1
  201. package/dist/test/mocks.d.ts +0 -14
  202. package/dist/test/mocks.js +0 -41
  203. package/dist/test/mocks.js.map +0 -1
@@ -0,0 +1,74 @@
1
+ import { transformResponse } from './utils.js';
2
+ /**
3
+ * Features
4
+ * @description Features are the building blocks of your application. They represent the capabilities or services that your application offers.
5
+ */
6
+ export class Features {
7
+ client;
8
+ constructor(client) {
9
+ this.client = client;
10
+ }
11
+ /**
12
+ * Create a feature
13
+ * @param feature - The feature to create
14
+ * @param signal - An optional abort signal
15
+ * @returns The created feature
16
+ */
17
+ async create(feature, options) {
18
+ const resp = await this.client.POST('/api/v1/features', {
19
+ body: feature,
20
+ ...options,
21
+ });
22
+ return transformResponse(resp);
23
+ }
24
+ /**
25
+ * Get a feature by ID
26
+ * @param id - The ID of the feature
27
+ * @param signal - An optional abort signal
28
+ * @returns The feature
29
+ */
30
+ async get(id, options) {
31
+ const resp = await this.client.GET('/api/v1/features/{featureId}', {
32
+ params: {
33
+ path: {
34
+ featureId: id,
35
+ },
36
+ },
37
+ ...options,
38
+ });
39
+ return transformResponse(resp);
40
+ }
41
+ /**
42
+ * List features
43
+ * @param query - The query parameters
44
+ * @param signal - An optional abort signal
45
+ * @returns The features
46
+ */
47
+ async list(query, options) {
48
+ const resp = await this.client.GET('/api/v1/features', {
49
+ params: {
50
+ query,
51
+ },
52
+ ...options,
53
+ });
54
+ return transformResponse(resp);
55
+ }
56
+ /**
57
+ * Delete a feature by ID
58
+ * @param id - The ID of the feature
59
+ * @param signal - An optional abort signal
60
+ * @returns The deleted feature
61
+ */
62
+ async delete(id, options) {
63
+ const resp = await this.client.DELETE('/api/v1/features/{featureId}', {
64
+ params: {
65
+ path: {
66
+ featureId: id,
67
+ },
68
+ },
69
+ ...options,
70
+ });
71
+ return transformResponse(resp);
72
+ }
73
+ }
74
+ //# sourceMappingURL=features.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"features.js","sourceRoot":"","sources":["../../../src/client/features.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAE9C;;;GAGG;AACH,MAAM,OAAO,QAAQ;IACC;IAApB,YAAoB,MAA4C;QAA5C,WAAM,GAAN,MAAM,CAAsC;IAAG,CAAC;IAEpE;;;;;OAKG;IACI,KAAK,CAAC,MAAM,CAAC,OAA4B,EAAE,OAAwB;QACxE,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,kBAAkB,EAAE;YACtD,IAAI,EAAE,OAAO;YACb,GAAG,OAAO;SACX,CAAC,CAAA;QAEF,OAAO,iBAAiB,CAAC,IAAI,CAAC,CAAA;IAChC,CAAC;IAED;;;;;OAKG;IACI,KAAK,CAAC,GAAG,CACd,EAA+D,EAC/D,OAAwB;QAExB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,8BAA8B,EAAE;YACjE,MAAM,EAAE;gBACN,IAAI,EAAE;oBACJ,SAAS,EAAE,EAAE;iBACd;aACF;YACD,GAAG,OAAO;SACX,CAAC,CAAA;QAEF,OAAO,iBAAiB,CAAC,IAAI,CAAC,CAAA;IAChC,CAAC;IAED;;;;;OAKG;IACI,KAAK,CAAC,IAAI,CACf,KAGC,EACD,OAAwB;QAExB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,kBAAkB,EAAE;YACrD,MAAM,EAAE;gBACN,KAAK;aACN;YACD,GAAG,OAAO;SACX,CAAC,CAAA;QAEF,OAAO,iBAAiB,CAAC,IAAI,CAAc,CAAA;IAC7C,CAAC;IAED;;;;;OAKG;IACI,KAAK,CAAC,MAAM,CACjB,EAAkE,EAClE,OAAwB;QAExB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,8BAA8B,EAAE;YACpE,MAAM,EAAE;gBACN,IAAI,EAAE;oBACJ,SAAS,EAAE,EAAE;iBACd;aACF;YACD,GAAG,OAAO;SACX,CAAC,CAAA;QAEF,OAAO,iBAAiB,CAAC,IAAI,CAAC,CAAA;IAChC,CAAC;CACF"}
@@ -0,0 +1,54 @@
1
+ import { type Client, type ClientOptions } from 'openapi-fetch';
2
+ import { Addons } from './addons.js';
3
+ import { Apps } from './apps.js';
4
+ import { Billing } from './billing.js';
5
+ import { Customers } from './customers.js';
6
+ import { Debug } from './debug.js';
7
+ import { Entitlements, EntitlementsV2 } from './entitlements.js';
8
+ import { Events } from './events.js';
9
+ import { Features } from './features.js';
10
+ import { Info } from './info.js';
11
+ import { Meters } from './meters.js';
12
+ import { Notifications } from './notifications.js';
13
+ import { Plans } from './plans.js';
14
+ import { Portal } from './portal.js';
15
+ import type { paths } from './schemas.js';
16
+ import { Subjects } from './subjects.js';
17
+ import { SubscriptionAddons } from './subscription-addons.js';
18
+ import { Subscriptions } from './subscriptions.js';
19
+ export * from './common.js';
20
+ export * from './schemas.js';
21
+ /**
22
+ * OpenMeter Config
23
+ */
24
+ export type Config = Pick<ClientOptions, 'baseUrl' | 'headers' | 'fetch' | 'Request' | 'requestInitExt'> & ({
25
+ apiKey?: string;
26
+ } | {
27
+ baseUrl: 'https://openmeter.cloud';
28
+ apiKey: string;
29
+ });
30
+ /**
31
+ * OpenMeter Client
32
+ */
33
+ export declare class OpenMeter {
34
+ config: Config;
35
+ client: Client<paths, `${string}/${string}`>;
36
+ addons: Addons;
37
+ apps: Apps;
38
+ billing: Billing;
39
+ customers: Customers;
40
+ debug: Debug;
41
+ entitlementsV1: Entitlements;
42
+ entitlements: EntitlementsV2;
43
+ events: Events;
44
+ features: Features;
45
+ info: Info;
46
+ meters: Meters;
47
+ notifications: Notifications;
48
+ plans: Plans;
49
+ portal: Portal;
50
+ subjects: Subjects;
51
+ subscriptionAddons: SubscriptionAddons;
52
+ subscriptions: Subscriptions;
53
+ constructor(config: Config);
54
+ }
@@ -0,0 +1,82 @@
1
+ import createClient, { createQuerySerializer, } from 'openapi-fetch';
2
+ import { Addons } from './addons.js';
3
+ import { Apps } from './apps.js';
4
+ import { Billing } from './billing.js';
5
+ import { Customers } from './customers.js';
6
+ import { Debug } from './debug.js';
7
+ import { Entitlements, EntitlementsV2 } from './entitlements.js';
8
+ import { Events } from './events.js';
9
+ import { Features } from './features.js';
10
+ import { Info } from './info.js';
11
+ import { Meters } from './meters.js';
12
+ import { Notifications } from './notifications.js';
13
+ import { Plans } from './plans.js';
14
+ import { Portal } from './portal.js';
15
+ import { Subjects } from './subjects.js';
16
+ import { SubscriptionAddons } from './subscription-addons.js';
17
+ import { Subscriptions } from './subscriptions.js';
18
+ import { encodeDates } from './utils.js';
19
+ export * from './common.js';
20
+ export * from './schemas.js';
21
+ /**
22
+ * OpenMeter Client
23
+ */
24
+ export class OpenMeter {
25
+ config;
26
+ client;
27
+ addons;
28
+ apps;
29
+ billing;
30
+ customers;
31
+ debug;
32
+ entitlementsV1;
33
+ entitlements;
34
+ events;
35
+ features;
36
+ info;
37
+ meters;
38
+ notifications;
39
+ plans;
40
+ portal;
41
+ subjects;
42
+ subscriptionAddons;
43
+ subscriptions;
44
+ constructor(config) {
45
+ this.config = config;
46
+ this.client = createClient({
47
+ ...config,
48
+ headers: {
49
+ ...config.headers,
50
+ Authorization: config.apiKey ? `Bearer ${config.apiKey}` : undefined,
51
+ },
52
+ querySerializer: (q) => createQuerySerializer({
53
+ array: {
54
+ explode: true,
55
+ style: 'form',
56
+ },
57
+ object: {
58
+ explode: true,
59
+ style: 'deepObject',
60
+ },
61
+ })(encodeDates(q)),
62
+ });
63
+ this.addons = new Addons(this.client);
64
+ this.apps = new Apps(this.client);
65
+ this.billing = new Billing(this.client);
66
+ this.customers = new Customers(this.client);
67
+ this.debug = new Debug(this.client);
68
+ this.entitlementsV1 = new Entitlements(this.client);
69
+ this.entitlements = new EntitlementsV2(this.client);
70
+ this.events = new Events(this.client);
71
+ this.features = new Features(this.client);
72
+ this.info = new Info(this.client);
73
+ this.meters = new Meters(this.client);
74
+ this.notifications = new Notifications(this.client);
75
+ this.plans = new Plans(this.client);
76
+ this.portal = new Portal(this.client);
77
+ this.subjects = new Subjects(this.client);
78
+ this.subscriptionAddons = new SubscriptionAddons(this.client);
79
+ this.subscriptions = new Subscriptions(this.client);
80
+ }
81
+ }
82
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/client/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ import type { Client } from 'openapi-fetch';
2
+ import type { RequestOptions } from './common.js';
3
+ import type { operations, paths } from './schemas.js';
4
+ /**
5
+ * Info utilities for OpenMeter
6
+ */
7
+ export declare class Info {
8
+ private client;
9
+ constructor(client: Client<paths, `${string}/${string}`>);
10
+ /**
11
+ * List supported currencies
12
+ * @description List all supported currencies.
13
+ * @param options - The request options
14
+ * @returns The supported currencies
15
+ */
16
+ listCurrencies(options?: RequestOptions): Promise<{
17
+ code: import("./schemas.js").components["schemas"]["CurrencyCode"];
18
+ name: string;
19
+ symbol: string;
20
+ subunits: number;
21
+ }[] | undefined>;
22
+ /**
23
+ * Get progress
24
+ * @param id - The ID of the progress to get
25
+ * @param options - The request options
26
+ * @returns The progress
27
+ */
28
+ getProgress(id: operations['getProgress']['parameters']['path']['id'], options?: RequestOptions): Promise<{
29
+ success: number;
30
+ failed: number;
31
+ total: number;
32
+ updatedAt: Date;
33
+ } | undefined>;
34
+ }
@@ -0,0 +1,38 @@
1
+ import { transformResponse } from './utils.js';
2
+ /**
3
+ * Info utilities for OpenMeter
4
+ */
5
+ export class Info {
6
+ client;
7
+ constructor(client) {
8
+ this.client = client;
9
+ }
10
+ /**
11
+ * List supported currencies
12
+ * @description List all supported currencies.
13
+ * @param options - The request options
14
+ * @returns The supported currencies
15
+ */
16
+ async listCurrencies(options) {
17
+ const resp = await this.client.GET('/api/v1/info/currencies', {
18
+ ...options,
19
+ });
20
+ return transformResponse(resp);
21
+ }
22
+ /**
23
+ * Get progress
24
+ * @param id - The ID of the progress to get
25
+ * @param options - The request options
26
+ * @returns The progress
27
+ */
28
+ async getProgress(id, options) {
29
+ const resp = await this.client.GET('/api/v1/info/progress/{id}', {
30
+ params: {
31
+ path: { id },
32
+ },
33
+ ...options,
34
+ });
35
+ return transformResponse(resp);
36
+ }
37
+ }
38
+ //# sourceMappingURL=info.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"info.js","sourceRoot":"","sources":["../../../src/client/info.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AAE9C;;GAEG;AACH,MAAM,OAAO,IAAI;IACK;IAApB,YAAoB,MAA4C;QAA5C,WAAM,GAAN,MAAM,CAAsC;IAAG,CAAC;IAEpE;;;;;OAKG;IACI,KAAK,CAAC,cAAc,CAAC,OAAwB;QAClD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,yBAAyB,EAAE;YAC5D,GAAG,OAAO;SACX,CAAC,CAAA;QAEF,OAAO,iBAAiB,CAAC,IAAI,CAAC,CAAA;IAChC,CAAC;IAED;;;;;OAKG;IACI,KAAK,CAAC,WAAW,CACtB,EAAyD,EACzD,OAAwB;QAExB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,4BAA4B,EAAE;YAC/D,MAAM,EAAE;gBACN,IAAI,EAAE,EAAE,EAAE,EAAE;aACb;YACD,GAAG,OAAO;SACX,CAAC,CAAA;QAEF,OAAO,iBAAiB,CAAC,IAAI,CAAC,CAAA;IAChC,CAAC;CACF"}
@@ -0,0 +1,151 @@
1
+ import type { Client } from 'openapi-fetch';
2
+ import type { RequestOptions } from './common.js';
3
+ import type { MeterCreate, operations, paths } from './schemas.js';
4
+ /**
5
+ * Meters
6
+ * @description Meters are used to track and manage usage of your application.
7
+ */
8
+ export declare class Meters {
9
+ private client;
10
+ constructor(client: Client<paths, `${string}/${string}`>);
11
+ /**
12
+ * Create a meter
13
+ * @param meter - The meter to create
14
+ * @param signal - An optional abort signal
15
+ * @returns The created meter
16
+ */
17
+ create(meter: MeterCreate, options?: RequestOptions): Promise<{
18
+ readonly id: string;
19
+ description?: string;
20
+ metadata?: import("./schemas.js").components["schemas"]["Metadata"] | null;
21
+ readonly createdAt: Date;
22
+ readonly updatedAt: Date;
23
+ readonly deletedAt?: Date;
24
+ name?: string;
25
+ slug: string;
26
+ aggregation: import("./schemas.js").components["schemas"]["MeterAggregation"];
27
+ eventType: string;
28
+ eventFrom?: Date;
29
+ valueProperty?: string;
30
+ groupBy?: {
31
+ [key: string]: string;
32
+ };
33
+ readonly annotations?: import("./schemas.js").components["schemas"]["Annotations"] | null;
34
+ } | undefined>;
35
+ /**
36
+ * Get a meter by ID or slug
37
+ * @param idOrSlug - The ID or slug of the meter
38
+ * @param signal - An optional abort signal
39
+ * @returns The meter
40
+ */
41
+ get(idOrSlug: operations['getMeter']['parameters']['path']['meterIdOrSlug'], options?: RequestOptions): Promise<{
42
+ readonly id: string;
43
+ description?: string;
44
+ metadata?: import("./schemas.js").components["schemas"]["Metadata"] | null;
45
+ readonly createdAt: Date;
46
+ readonly updatedAt: Date;
47
+ readonly deletedAt?: Date;
48
+ name?: string;
49
+ slug: string;
50
+ aggregation: import("./schemas.js").components["schemas"]["MeterAggregation"];
51
+ eventType: string;
52
+ eventFrom?: Date;
53
+ valueProperty?: string;
54
+ groupBy?: {
55
+ [key: string]: string;
56
+ };
57
+ readonly annotations?: import("./schemas.js").components["schemas"]["Annotations"] | null;
58
+ } | undefined>;
59
+ /**
60
+ * List meters
61
+ * @param signal - An optional abort signal
62
+ * @returns The meters
63
+ */
64
+ list(options?: RequestOptions): Promise<{
65
+ readonly id: string;
66
+ description?: string;
67
+ metadata?: import("./schemas.js").components["schemas"]["Metadata"] | null;
68
+ readonly createdAt: Date;
69
+ readonly updatedAt: Date;
70
+ readonly deletedAt?: Date;
71
+ name?: string;
72
+ slug: string;
73
+ aggregation: import("./schemas.js").components["schemas"]["MeterAggregation"];
74
+ eventType: string;
75
+ eventFrom?: Date;
76
+ valueProperty?: string;
77
+ groupBy?: {
78
+ [key: string]: string;
79
+ };
80
+ readonly annotations?: import("./schemas.js").components["schemas"]["Annotations"] | null;
81
+ }[] | undefined>;
82
+ /**
83
+ * Query usage data for a meter by ID or slug
84
+ * @param idOrSlug - The ID or slug of the meter
85
+ * @param query - The query parameters
86
+ * @param signal - An optional abort signal
87
+ * @returns The meter data
88
+ */
89
+ query(idOrSlug: operations['queryMeter']['parameters']['path']['meterIdOrSlug'], query?: operations['queryMeter']['parameters']['query'], options?: RequestOptions): Promise<{
90
+ from?: Date;
91
+ to?: Date;
92
+ windowSize?: import("./schemas.js").components["schemas"]["WindowSize"];
93
+ data: import("./schemas.js").components["schemas"]["MeterQueryRow"][];
94
+ }>;
95
+ /**
96
+ * Update a meter by ID or slug
97
+ * @param idOrSlug - The ID or slug of the meter
98
+ * @param meter - The meter update data
99
+ * @param options - Optional request options
100
+ * @returns The updated meter
101
+ */
102
+ update(idOrSlug: operations['updateMeter']['parameters']['path']['meterIdOrSlug'], meter: operations['updateMeter']['requestBody']['content']['application/json'], options?: RequestOptions): Promise<{
103
+ readonly id: string;
104
+ description?: string;
105
+ metadata?: import("./schemas.js").components["schemas"]["Metadata"] | null;
106
+ readonly createdAt: Date;
107
+ readonly updatedAt: Date;
108
+ readonly deletedAt?: Date;
109
+ name?: string;
110
+ slug: string;
111
+ aggregation: import("./schemas.js").components["schemas"]["MeterAggregation"];
112
+ eventType: string;
113
+ eventFrom?: Date;
114
+ valueProperty?: string;
115
+ groupBy?: {
116
+ [key: string]: string;
117
+ };
118
+ readonly annotations?: import("./schemas.js").components["schemas"]["Annotations"] | null;
119
+ } | undefined>;
120
+ /**
121
+ * Delete a meter by ID or slug
122
+ * @param idOrSlug - The ID or slug of the meter
123
+ * @param signal - An optional abort signal
124
+ * @returns The deleted meter
125
+ */
126
+ delete(idOrSlug: operations['deleteMeter']['parameters']['path']['meterIdOrSlug'], options?: RequestOptions): Promise<undefined>;
127
+ /**
128
+ * List meter group-by values
129
+ * @description List all values for a specific group-by key in a meter.
130
+ * @param idOrSlug - The ID or slug of the meter
131
+ * @param groupByKey - The group-by key to list values for
132
+ * @param query - The query parameters
133
+ * @param options - Optional request options
134
+ * @returns The list of group-by values
135
+ */
136
+ listGroupByValues(idOrSlug: operations['listMeterGroupByValues']['parameters']['path']['meterIdOrSlug'], groupByKey: operations['listMeterGroupByValues']['parameters']['path']['groupByKey'], query?: operations['listMeterGroupByValues']['parameters']['query'], options?: RequestOptions): Promise<string[] | undefined>;
137
+ /**
138
+ * Query usage data for a meter by ID or slug using POST
139
+ * @description Query meter using POST method. This is useful for complex queries that exceed URL length limits.
140
+ * @param idOrSlug - The ID or slug of the meter
141
+ * @param body - The query body parameters
142
+ * @param options - Optional request options
143
+ * @returns The meter data
144
+ */
145
+ queryPost(idOrSlug: operations['queryMeterPost']['parameters']['path']['meterIdOrSlug'], body: operations['queryMeterPost']['requestBody']['content']['application/json'], options?: RequestOptions): Promise<{
146
+ from?: Date;
147
+ to?: Date;
148
+ windowSize?: import("./schemas.js").components["schemas"]["WindowSize"];
149
+ data: import("./schemas.js").components["schemas"]["MeterQueryRow"][];
150
+ } | undefined>;
151
+ }
@@ -0,0 +1,156 @@
1
+ import { transformResponse } from './utils.js';
2
+ /**
3
+ * Meters
4
+ * @description Meters are used to track and manage usage of your application.
5
+ */
6
+ export class Meters {
7
+ client;
8
+ constructor(client) {
9
+ this.client = client;
10
+ }
11
+ /**
12
+ * Create a meter
13
+ * @param meter - The meter to create
14
+ * @param signal - An optional abort signal
15
+ * @returns The created meter
16
+ */
17
+ async create(meter, options) {
18
+ const resp = await this.client.POST('/api/v1/meters', {
19
+ body: meter,
20
+ ...options,
21
+ });
22
+ return transformResponse(resp);
23
+ }
24
+ /**
25
+ * Get a meter by ID or slug
26
+ * @param idOrSlug - The ID or slug of the meter
27
+ * @param signal - An optional abort signal
28
+ * @returns The meter
29
+ */
30
+ async get(idOrSlug, options) {
31
+ const resp = await this.client.GET('/api/v1/meters/{meterIdOrSlug}', {
32
+ params: {
33
+ path: {
34
+ meterIdOrSlug: idOrSlug,
35
+ },
36
+ },
37
+ ...options,
38
+ });
39
+ return transformResponse(resp);
40
+ }
41
+ /**
42
+ * List meters
43
+ * @param signal - An optional abort signal
44
+ * @returns The meters
45
+ */
46
+ async list(options) {
47
+ const resp = await this.client.GET('/api/v1/meters', {
48
+ ...options,
49
+ });
50
+ return transformResponse(resp);
51
+ }
52
+ /**
53
+ * Query usage data for a meter by ID or slug
54
+ * @param idOrSlug - The ID or slug of the meter
55
+ * @param query - The query parameters
56
+ * @param signal - An optional abort signal
57
+ * @returns The meter data
58
+ */
59
+ async query(idOrSlug, query, options) {
60
+ const resp = await this.client.GET('/api/v1/meters/{meterIdOrSlug}/query', {
61
+ headers: {
62
+ Accept: 'application/json',
63
+ },
64
+ params: {
65
+ path: {
66
+ meterIdOrSlug: idOrSlug,
67
+ },
68
+ query,
69
+ },
70
+ ...options,
71
+ });
72
+ return transformResponse(resp);
73
+ }
74
+ /**
75
+ * Update a meter by ID or slug
76
+ * @param idOrSlug - The ID or slug of the meter
77
+ * @param meter - The meter update data
78
+ * @param options - Optional request options
79
+ * @returns The updated meter
80
+ */
81
+ async update(idOrSlug, meter, options) {
82
+ const resp = await this.client.PUT('/api/v1/meters/{meterIdOrSlug}', {
83
+ body: meter,
84
+ params: {
85
+ path: {
86
+ meterIdOrSlug: idOrSlug,
87
+ },
88
+ },
89
+ ...options,
90
+ });
91
+ return transformResponse(resp);
92
+ }
93
+ /**
94
+ * Delete a meter by ID or slug
95
+ * @param idOrSlug - The ID or slug of the meter
96
+ * @param signal - An optional abort signal
97
+ * @returns The deleted meter
98
+ */
99
+ async delete(idOrSlug, options) {
100
+ const resp = await this.client.DELETE('/api/v1/meters/{meterIdOrSlug}', {
101
+ params: {
102
+ path: {
103
+ meterIdOrSlug: idOrSlug,
104
+ },
105
+ },
106
+ ...options,
107
+ });
108
+ return transformResponse(resp);
109
+ }
110
+ /**
111
+ * List meter group-by values
112
+ * @description List all values for a specific group-by key in a meter.
113
+ * @param idOrSlug - The ID or slug of the meter
114
+ * @param groupByKey - The group-by key to list values for
115
+ * @param query - The query parameters
116
+ * @param options - Optional request options
117
+ * @returns The list of group-by values
118
+ */
119
+ async listGroupByValues(idOrSlug, groupByKey, query, options) {
120
+ const resp = await this.client.GET('/api/v1/meters/{meterIdOrSlug}/group-by/{groupByKey}/values', {
121
+ params: {
122
+ path: {
123
+ groupByKey,
124
+ meterIdOrSlug: idOrSlug,
125
+ },
126
+ query,
127
+ },
128
+ ...options,
129
+ });
130
+ return transformResponse(resp);
131
+ }
132
+ /**
133
+ * Query usage data for a meter by ID or slug using POST
134
+ * @description Query meter using POST method. This is useful for complex queries that exceed URL length limits.
135
+ * @param idOrSlug - The ID or slug of the meter
136
+ * @param body - The query body parameters
137
+ * @param options - Optional request options
138
+ * @returns The meter data
139
+ */
140
+ async queryPost(idOrSlug, body, options) {
141
+ const resp = await this.client.POST('/api/v1/meters/{meterIdOrSlug}/query', {
142
+ body,
143
+ headers: {
144
+ Accept: 'application/json',
145
+ },
146
+ params: {
147
+ path: {
148
+ meterIdOrSlug: idOrSlug,
149
+ },
150
+ },
151
+ ...options,
152
+ });
153
+ return transformResponse(resp);
154
+ }
155
+ }
156
+ //# sourceMappingURL=meters.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"meters.js","sourceRoot":"","sources":["../../../src/client/meters.ts"],"names":[],"mappings":"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"}