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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (261) hide show
  1. package/README.md +45 -62
  2. package/dist/cjs/index.cjs +18 -0
  3. package/dist/cjs/index.d.cts +1 -0
  4. package/dist/cjs/index.js.map +1 -0
  5. package/dist/cjs/src/apps.cjs +176 -0
  6. package/dist/cjs/src/apps.d.cts +338 -0
  7. package/dist/cjs/src/apps.js.map +1 -0
  8. package/dist/cjs/src/billing.cjs +309 -0
  9. package/dist/cjs/src/billing.d.cts +645 -0
  10. package/dist/cjs/src/billing.js.map +1 -0
  11. package/dist/cjs/src/client/apps.cjs +174 -0
  12. package/dist/cjs/src/client/apps.d.cts +339 -0
  13. package/dist/cjs/src/client/apps.js.map +1 -0
  14. package/dist/cjs/src/client/billing.cjs +309 -0
  15. package/dist/cjs/src/client/billing.d.cts +646 -0
  16. package/dist/cjs/src/client/billing.js.map +1 -0
  17. package/dist/cjs/src/client/customers.cjs +185 -0
  18. package/dist/cjs/src/client/customers.d.cts +232 -0
  19. package/dist/cjs/src/client/customers.js.map +1 -0
  20. package/dist/cjs/src/client/entitlements.cjs +244 -0
  21. package/dist/cjs/src/client/entitlements.d.cts +506 -0
  22. package/dist/cjs/src/client/entitlements.js.map +1 -0
  23. package/dist/cjs/src/client/events.cjs +65 -0
  24. package/dist/cjs/src/client/events.d.cts +102 -0
  25. package/dist/cjs/src/client/events.js.map +1 -0
  26. package/dist/cjs/src/client/features.cjs +78 -0
  27. package/dist/cjs/src/client/features.d.cts +154 -0
  28. package/dist/cjs/src/client/features.js.map +1 -0
  29. package/dist/cjs/src/client/index.cjs +100 -0
  30. package/dist/cjs/src/client/index.d.cts +42 -0
  31. package/dist/cjs/src/client/index.js.map +1 -0
  32. package/dist/cjs/src/client/meters.cjs +93 -0
  33. package/dist/cjs/src/client/meters.d.cts +185 -0
  34. package/dist/cjs/src/client/meters.js.map +1 -0
  35. package/dist/cjs/src/client/notifications.cjs +249 -0
  36. package/dist/cjs/src/client/notifications.d.cts +315 -0
  37. package/dist/cjs/src/client/notifications.js.map +1 -0
  38. package/dist/cjs/src/client/plans.cjs +127 -0
  39. package/dist/cjs/src/client/plans.d.cts +193 -0
  40. package/dist/cjs/src/client/plans.js.map +1 -0
  41. package/dist/cjs/src/client/portal.cjs +55 -0
  42. package/dist/cjs/src/client/portal.d.cts +72 -0
  43. package/dist/cjs/src/client/portal.js.map +1 -0
  44. package/dist/cjs/src/client/subjects.cjs +76 -0
  45. package/dist/cjs/src/client/subjects.d.cts +102 -0
  46. package/dist/cjs/src/client/subjects.js.map +1 -0
  47. package/dist/cjs/src/client/subscriptions.cjs +116 -0
  48. package/dist/cjs/src/client/subscriptions.d.cts +198 -0
  49. package/dist/cjs/src/client/subscriptions.js.map +1 -0
  50. package/dist/cjs/src/client/utils.cjs +93 -0
  51. package/dist/cjs/src/client/utils.d.cts +30 -0
  52. package/dist/cjs/src/client/utils.js.map +1 -0
  53. package/dist/cjs/src/customers.cjs +185 -0
  54. package/dist/cjs/src/customers.d.cts +231 -0
  55. package/dist/cjs/src/customers.js.map +1 -0
  56. package/dist/cjs/src/entitlements.cjs +244 -0
  57. package/dist/cjs/src/entitlements.d.cts +505 -0
  58. package/dist/cjs/src/entitlements.js.map +1 -0
  59. package/dist/cjs/src/events.cjs +65 -0
  60. package/dist/cjs/src/events.d.cts +101 -0
  61. package/dist/cjs/src/events.js.map +1 -0
  62. package/dist/cjs/src/features.cjs +78 -0
  63. package/dist/cjs/src/features.d.cts +153 -0
  64. package/dist/cjs/src/features.js.map +1 -0
  65. package/dist/cjs/src/meters.cjs +93 -0
  66. package/dist/cjs/src/meters.d.cts +184 -0
  67. package/dist/cjs/src/meters.js.map +1 -0
  68. package/dist/cjs/src/notifications.cjs +249 -0
  69. package/dist/cjs/src/notifications.d.cts +314 -0
  70. package/dist/cjs/src/notifications.js.map +1 -0
  71. package/dist/cjs/src/plans.cjs +127 -0
  72. package/dist/cjs/src/plans.d.cts +192 -0
  73. package/dist/cjs/src/plans.js.map +1 -0
  74. package/dist/cjs/src/portal/index.cjs +57 -0
  75. package/dist/cjs/src/portal/index.d.cts +113 -0
  76. package/dist/cjs/src/portal/index.js.map +1 -0
  77. package/dist/cjs/src/react/context.cjs +35 -0
  78. package/dist/cjs/src/react/context.d.cts +9 -0
  79. package/dist/cjs/src/react/context.js.map +1 -0
  80. package/dist/cjs/src/subjects.cjs +76 -0
  81. package/dist/cjs/src/subjects.d.cts +101 -0
  82. package/dist/cjs/src/subjects.js.map +1 -0
  83. package/dist/cjs/src/subscriptions.cjs +116 -0
  84. package/dist/cjs/src/subscriptions.d.cts +197 -0
  85. package/dist/cjs/src/subscriptions.js.map +1 -0
  86. package/dist/cjs/src/utils.cjs +93 -0
  87. package/dist/cjs/src/utils.d.cts +29 -0
  88. package/dist/cjs/src/utils.js.map +1 -0
  89. package/dist/cjs/tsconfig.01ab6c6b.tsbuildinfo +1 -0
  90. package/dist/cjs/tsconfig.1e12acbb.tsbuildinfo +1 -0
  91. package/dist/cjs/tsconfig.38849cd1.tsbuildinfo +1 -0
  92. package/dist/cjs/tsconfig.3bd7bdb7.tsbuildinfo +1 -0
  93. package/dist/cjs/tsconfig.3db00db7.tsbuildinfo +1 -0
  94. package/dist/cjs/tsconfig.5cd8af0a.tsbuildinfo +1 -0
  95. package/dist/cjs/tsconfig.64c40770.tsbuildinfo +1 -0
  96. package/dist/cjs/tsconfig.769a7751.tsbuildinfo +1 -0
  97. package/dist/cjs/tsconfig.8fd1c6cd.tsbuildinfo +1 -0
  98. package/dist/cjs/tsconfig.c9e83bdd.tsbuildinfo +1 -0
  99. package/dist/cjs/tsconfig.d3cb3b9e.tsbuildinfo +1 -0
  100. package/dist/cjs/tsconfig.db7aa141.tsbuildinfo +1 -0
  101. package/dist/cjs/tsconfig.edd7b7ed.tsbuildinfo +1 -0
  102. package/dist/cjs/tsconfig.f343a141.tsbuildinfo +1 -0
  103. package/dist/cjs/tsconfig.f36f8639.tsbuildinfo +1 -0
  104. package/dist/cjs/tsconfig.fc8d5fa4.tsbuildinfo +1 -0
  105. package/dist/index.d.ts +1 -23
  106. package/dist/index.js +2 -28
  107. package/dist/index.js.map +1 -0
  108. package/dist/src/apps.d.ts +338 -0
  109. package/dist/src/apps.js +170 -0
  110. package/dist/src/apps.js.map +1 -0
  111. package/dist/src/billing.d.ts +645 -0
  112. package/dist/src/billing.js +302 -0
  113. package/dist/src/billing.js.map +1 -0
  114. package/dist/src/client/apps.d.ts +339 -0
  115. package/dist/src/client/apps.js +168 -0
  116. package/dist/src/client/apps.js.map +1 -0
  117. package/dist/src/client/billing.d.ts +646 -0
  118. package/dist/src/client/billing.js +302 -0
  119. package/dist/src/client/billing.js.map +1 -0
  120. package/dist/src/client/customers.d.ts +232 -0
  121. package/dist/src/client/customers.js +179 -0
  122. package/dist/src/client/customers.js.map +1 -0
  123. package/dist/src/client/entitlements.d.ts +506 -0
  124. package/dist/src/client/entitlements.js +239 -0
  125. package/dist/src/client/entitlements.js.map +1 -0
  126. package/dist/src/client/events.d.ts +102 -0
  127. package/dist/src/client/events.js +58 -0
  128. package/dist/src/client/events.js.map +1 -0
  129. package/dist/src/client/features.d.ts +154 -0
  130. package/dist/src/client/features.js +74 -0
  131. package/dist/src/client/features.js.map +1 -0
  132. package/dist/src/client/index.d.ts +42 -0
  133. package/dist/src/client/index.js +63 -0
  134. package/dist/src/client/index.js.map +1 -0
  135. package/dist/src/client/meters.d.ts +185 -0
  136. package/dist/src/client/meters.js +89 -0
  137. package/dist/src/client/meters.js.map +1 -0
  138. package/dist/src/client/notifications.d.ts +315 -0
  139. package/dist/src/client/notifications.js +242 -0
  140. package/dist/src/client/notifications.js.map +1 -0
  141. package/dist/src/client/plans.d.ts +193 -0
  142. package/dist/src/client/plans.js +123 -0
  143. package/dist/src/client/plans.js.map +1 -0
  144. package/dist/src/client/portal.d.ts +72 -0
  145. package/dist/src/client/portal.js +51 -0
  146. package/dist/src/client/portal.js.map +1 -0
  147. package/dist/src/client/subjects.d.ts +102 -0
  148. package/dist/src/client/subjects.js +72 -0
  149. package/dist/src/client/subjects.js.map +1 -0
  150. package/dist/src/client/subscriptions.d.ts +198 -0
  151. package/dist/src/client/subscriptions.js +112 -0
  152. package/dist/src/client/subscriptions.js.map +1 -0
  153. package/dist/src/client/utils.d.ts +30 -0
  154. package/dist/src/client/utils.js +85 -0
  155. package/dist/src/client/utils.js.map +1 -0
  156. package/dist/src/customers.d.ts +231 -0
  157. package/dist/src/customers.js +179 -0
  158. package/dist/src/customers.js.map +1 -0
  159. package/dist/src/entitlements.d.ts +505 -0
  160. package/dist/src/entitlements.js +239 -0
  161. package/dist/src/entitlements.js.map +1 -0
  162. package/dist/src/events.d.ts +101 -0
  163. package/dist/src/events.js +58 -0
  164. package/dist/src/events.js.map +1 -0
  165. package/dist/src/features.d.ts +153 -0
  166. package/dist/src/features.js +74 -0
  167. package/dist/src/features.js.map +1 -0
  168. package/dist/src/meters.d.ts +184 -0
  169. package/dist/src/meters.js +89 -0
  170. package/dist/src/meters.js.map +1 -0
  171. package/dist/src/notifications.d.ts +314 -0
  172. package/dist/src/notifications.js +242 -0
  173. package/dist/src/notifications.js.map +1 -0
  174. package/dist/src/plans.d.ts +192 -0
  175. package/dist/src/plans.js +123 -0
  176. package/dist/src/plans.js.map +1 -0
  177. package/dist/src/portal/index.d.ts +113 -0
  178. package/dist/src/portal/index.js +50 -0
  179. package/dist/src/portal/index.js.map +1 -0
  180. package/dist/src/react/context.d.ts +9 -0
  181. package/dist/src/react/context.js +16 -0
  182. package/dist/src/react/context.js.map +1 -0
  183. package/dist/src/subjects.d.ts +101 -0
  184. package/dist/src/subjects.js +72 -0
  185. package/dist/src/subjects.js.map +1 -0
  186. package/dist/src/subscriptions.d.ts +197 -0
  187. package/dist/src/subscriptions.js +112 -0
  188. package/dist/src/subscriptions.js.map +1 -0
  189. package/dist/src/utils.d.ts +29 -0
  190. package/dist/src/utils.js +85 -0
  191. package/dist/src/utils.js.map +1 -0
  192. package/dist/tsconfig.tsbuildinfo +1 -1
  193. package/package.json +95 -57
  194. package/patches/openapi-typescript.patch +73 -0
  195. package/dist/generated/HttpService.d.ts +0 -14
  196. package/dist/generated/HttpService.js +0 -27
  197. package/dist/generated/core/ApiError.d.ts +0 -10
  198. package/dist/generated/core/ApiError.js +0 -17
  199. package/dist/generated/core/ApiRequestOptions.d.ts +0 -13
  200. package/dist/generated/core/ApiRequestOptions.js +0 -2
  201. package/dist/generated/core/ApiResult.d.ts +0 -7
  202. package/dist/generated/core/ApiResult.js +0 -2
  203. package/dist/generated/core/BaseHttpRequest.d.ts +0 -8
  204. package/dist/generated/core/BaseHttpRequest.js +0 -7
  205. package/dist/generated/core/CancelablePromise.d.ts +0 -20
  206. package/dist/generated/core/CancelablePromise.js +0 -93
  207. package/dist/generated/core/NodeHttpRequest.d.ts +0 -14
  208. package/dist/generated/core/NodeHttpRequest.js +0 -17
  209. package/dist/generated/core/OpenAPI.d.ts +0 -16
  210. package/dist/generated/core/OpenAPI.js +0 -12
  211. package/dist/generated/core/request.d.ts +0 -34
  212. package/dist/generated/core/request.js +0 -268
  213. package/dist/generated/index.d.ts +0 -29
  214. package/dist/generated/index.js +0 -22
  215. package/dist/generated/models/Event.d.ts +0 -49
  216. package/dist/generated/models/Event.js +0 -11
  217. package/dist/generated/models/IdOrSlug.d.ts +0 -1
  218. package/dist/generated/models/IdOrSlug.js +0 -2
  219. package/dist/generated/models/Meter.d.ts +0 -30
  220. package/dist/generated/models/Meter.js +0 -2
  221. package/dist/generated/models/MeterAggregation.d.ts +0 -10
  222. package/dist/generated/models/MeterAggregation.js +0 -12
  223. package/dist/generated/models/MeterValue.d.ts +0 -10
  224. package/dist/generated/models/MeterValue.js +0 -2
  225. package/dist/generated/models/Namespace.d.ts +0 -6
  226. package/dist/generated/models/Namespace.js +0 -2
  227. package/dist/generated/models/Problem.d.ts +0 -4
  228. package/dist/generated/models/Problem.js +0 -2
  229. package/dist/generated/models/WindowSize.d.ts +0 -5
  230. package/dist/generated/models/WindowSize.js +0 -7
  231. package/dist/generated/models/meterIdOrSlug.d.ts +0 -5
  232. package/dist/generated/models/meterIdOrSlug.js +0 -2
  233. package/dist/generated/models/namespaceParam.d.ts +0 -4
  234. package/dist/generated/models/namespaceParam.js +0 -2
  235. package/dist/generated/schemas/$Event.d.ts +0 -59
  236. package/dist/generated/schemas/$Event.js +0 -60
  237. package/dist/generated/schemas/$IdOrSlug.d.ts +0 -13
  238. package/dist/generated/schemas/$IdOrSlug.js +0 -14
  239. package/dist/generated/schemas/$Meter.d.ts +0 -44
  240. package/dist/generated/schemas/$Meter.js +0 -45
  241. package/dist/generated/schemas/$MeterAggregation.d.ts +0 -3
  242. package/dist/generated/schemas/$MeterAggregation.js +0 -4
  243. package/dist/generated/schemas/$MeterValue.d.ts +0 -26
  244. package/dist/generated/schemas/$MeterValue.js +0 -27
  245. package/dist/generated/schemas/$Namespace.d.ts +0 -9
  246. package/dist/generated/schemas/$Namespace.js +0 -10
  247. package/dist/generated/schemas/$Problem.d.ts +0 -6
  248. package/dist/generated/schemas/$Problem.js +0 -7
  249. package/dist/generated/schemas/$WindowSize.d.ts +0 -3
  250. package/dist/generated/schemas/$WindowSize.js +0 -4
  251. package/dist/generated/schemas/$meterIdOrSlug.d.ts +0 -4
  252. package/dist/generated/schemas/$meterIdOrSlug.js +0 -5
  253. package/dist/generated/schemas/$namespaceParam.d.ts +0 -5
  254. package/dist/generated/schemas/$namespaceParam.js +0 -6
  255. package/dist/generated/services/DefaultService.d.ts +0 -16
  256. package/dist/generated/services/DefaultService.js +0 -22
  257. package/dist/generated/services/EventsService.d.ts +0 -17
  258. package/dist/generated/services/EventsService.js +0 -29
  259. package/dist/generated/services/MetersService.d.ts +0 -75
  260. package/dist/generated/services/MetersService.js +0 -140
  261. package/index.ts +0 -53
@@ -0,0 +1 @@
1
+ {"version":3,"file":"portal.js","sourceRoot":"","sources":["../../../src/client/portal.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAuB,MAAM,YAAY,CAAA;AAInE;;;GAGG;AACH,MAAM,OAAO,MAAM;IACG;IAApB,YAAoB,MAA4C;QAA5C,WAAM,GAAN,MAAM,CAAsC;IAAG,CAAC;IAEpE;;;;;OAKG;IACI,KAAK,CAAC,MAAM,CAAC,IAAiB,EAAE,OAAwB;QAC7D,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,uBAAuB,EAAE;YAC3D,IAAI;YACJ,GAAG,OAAO;SACX,CAAC,CAAA;QAEF,OAAO,iBAAiB,CAAC,IAAI,CAAC,CAAA;IAChC,CAAC;IAED;;;;;OAKG;IACI,KAAK,CAAC,IAAI,CACf,KAA6D,EAC7D,OAAwB;QAExB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,uBAAuB,EAAE;YAC1D,MAAM,EAAE,EAAE,KAAK,EAAE;YACjB,GAAG,OAAO;SACX,CAAC,CAAA;QAEF,OAAO,iBAAiB,CAAC,IAAI,CAAC,CAAA;IAChC,CAAC;IAED;;;;;OAKG;IACI,KAAK,CAAC,UAAU,CACrB,IAAwF,EACxF,OAAwB;QAExB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,kCAAkC,EAAE;YACtE,IAAI;YACJ,GAAG,OAAO;SACX,CAAC,CAAA;QAEF,OAAO,iBAAiB,CAAC,IAAI,CAAC,CAAA;IAChC,CAAC;CACF"}
@@ -0,0 +1,102 @@
1
+ import { type RequestOptions } from './utils.js';
2
+ import type { operations, paths, SubjectUpsert } from './schemas.js';
3
+ import type { Client } from 'openapi-fetch';
4
+ /**
5
+ * Subjects
6
+ * @description Subjects are entities that consume resources you wish to meter. These can range from users, servers, and services to devices. The design of subjects is intentionally generic, enabling flexible application across various metering scenarios. Meters are aggregating events for each subject..
7
+ */
8
+ export declare class Subjects {
9
+ private client;
10
+ constructor(client: Client<paths, `${string}/${string}`>);
11
+ /**
12
+ * Upsert one or multiple subjects
13
+ * If the subject does not exist, it will be created, otherwise it will be updated.
14
+ *
15
+ * @param subjects - The subjects to upsert
16
+ * @param signal - An optional abort signal
17
+ * @returns The upserted subjects
18
+ */
19
+ upsert(subjects: SubjectUpsert | SubjectUpsert[], options?: RequestOptions): Promise<{
20
+ data?: never;
21
+ error: import("./utils.js").Problem;
22
+ response: Response;
23
+ } | {
24
+ data: {
25
+ readonly id: string;
26
+ key: string;
27
+ displayName?: string | null;
28
+ metadata?: {
29
+ [key: string]: unknown;
30
+ } | null;
31
+ currentPeriodStart?: Date;
32
+ currentPeriodEnd?: Date;
33
+ stripeCustomerId?: string | null;
34
+ }[];
35
+ error?: never;
36
+ response: Response;
37
+ }>;
38
+ /**
39
+ * Get a subject by ID or key
40
+ * @param idOrKey - The ID or key of the subject
41
+ * @param signal - An optional abort signal
42
+ * @returns The subject
43
+ */
44
+ get(idOrKey: operations['getSubject']['parameters']['path']['subjectIdOrKey'], options?: RequestOptions): Promise<{
45
+ data?: never;
46
+ error: import("./utils.js").Problem;
47
+ response: Response;
48
+ } | {
49
+ data: {
50
+ readonly id: string;
51
+ key: string;
52
+ displayName?: string | null;
53
+ metadata?: {
54
+ [key: string]: unknown;
55
+ } | null;
56
+ currentPeriodStart?: Date;
57
+ currentPeriodEnd?: Date;
58
+ stripeCustomerId?: string | null;
59
+ };
60
+ error?: never;
61
+ response: Response;
62
+ }>;
63
+ /**
64
+ * List subjects
65
+ * @param signal - An optional abort signal
66
+ * @returns The subjects
67
+ */
68
+ list(options?: RequestOptions): Promise<{
69
+ data?: never;
70
+ error: import("./utils.js").Problem;
71
+ response: Response;
72
+ } | {
73
+ data: {
74
+ readonly id: string;
75
+ key: string;
76
+ displayName?: string | null;
77
+ metadata?: {
78
+ [key: string]: unknown;
79
+ } | null;
80
+ currentPeriodStart?: Date;
81
+ currentPeriodEnd?: Date;
82
+ stripeCustomerId?: string | null;
83
+ }[];
84
+ error?: never;
85
+ response: Response;
86
+ }>;
87
+ /**
88
+ * Delete a subject by ID or key
89
+ * @param idOrKey - The ID or key of the subject
90
+ * @param signal - An optional abort signal
91
+ * @returns The deleted subject
92
+ */
93
+ delete(idOrKey: operations['deleteSubject']['parameters']['path']['subjectIdOrKey'], options?: RequestOptions): Promise<{
94
+ data?: never;
95
+ error: import("./utils.js").Problem;
96
+ response: Response;
97
+ } | {
98
+ data: undefined;
99
+ error?: never;
100
+ response: Response;
101
+ }>;
102
+ }
@@ -0,0 +1,72 @@
1
+ import { transformResponse } from './utils.js';
2
+ /**
3
+ * Subjects
4
+ * @description Subjects are entities that consume resources you wish to meter. These can range from users, servers, and services to devices. The design of subjects is intentionally generic, enabling flexible application across various metering scenarios. Meters are aggregating events for each subject..
5
+ */
6
+ export class Subjects {
7
+ client;
8
+ constructor(client) {
9
+ this.client = client;
10
+ }
11
+ /**
12
+ * Upsert one or multiple subjects
13
+ * If the subject does not exist, it will be created, otherwise it will be updated.
14
+ *
15
+ * @param subjects - The subjects to upsert
16
+ * @param signal - An optional abort signal
17
+ * @returns The upserted subjects
18
+ */
19
+ async upsert(subjects, options) {
20
+ const resp = await this.client.POST('/api/v1/subjects', {
21
+ body: Array.isArray(subjects) ? subjects : [subjects],
22
+ ...options,
23
+ });
24
+ return transformResponse(resp);
25
+ }
26
+ /**
27
+ * Get a subject by ID or key
28
+ * @param idOrKey - The ID or key of the subject
29
+ * @param signal - An optional abort signal
30
+ * @returns The subject
31
+ */
32
+ async get(idOrKey, options) {
33
+ const resp = await this.client.GET('/api/v1/subjects/{subjectIdOrKey}', {
34
+ params: {
35
+ path: {
36
+ subjectIdOrKey: idOrKey,
37
+ },
38
+ },
39
+ ...options,
40
+ });
41
+ return transformResponse(resp);
42
+ }
43
+ /**
44
+ * List subjects
45
+ * @param signal - An optional abort signal
46
+ * @returns The subjects
47
+ */
48
+ async list(options) {
49
+ const resp = await this.client.GET('/api/v1/subjects', {
50
+ ...options,
51
+ });
52
+ return transformResponse(resp);
53
+ }
54
+ /**
55
+ * Delete a subject by ID or key
56
+ * @param idOrKey - The ID or key of the subject
57
+ * @param signal - An optional abort signal
58
+ * @returns The deleted subject
59
+ */
60
+ async delete(idOrKey, options) {
61
+ const resp = await this.client.DELETE('/api/v1/subjects/{subjectIdOrKey}', {
62
+ params: {
63
+ path: {
64
+ subjectIdOrKey: idOrKey,
65
+ },
66
+ },
67
+ ...options,
68
+ });
69
+ return transformResponse(resp);
70
+ }
71
+ }
72
+ //# sourceMappingURL=subjects.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subjects.js","sourceRoot":"","sources":["../../../src/client/subjects.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAuB,MAAM,YAAY,CAAA;AAInE;;;GAGG;AACH,MAAM,OAAO,QAAQ;IACC;IAApB,YAAoB,MAA4C;QAA5C,WAAM,GAAN,MAAM,CAAsC;IAAG,CAAC;IAEpE;;;;;;;OAOG;IACI,KAAK,CAAC,MAAM,CACjB,QAAyC,EACzC,OAAwB;QAExB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,kBAAkB,EAAE;YACtD,IAAI,EAAE,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;YACrD,GAAG,OAAO;SACX,CAAC,CAAA;QAEF,OAAO,iBAAiB,CAAC,IAAI,CAAC,CAAA;IAChC,CAAC;IAED;;;;;OAKG;IACI,KAAK,CAAC,GAAG,CACd,OAAyE,EACzE,OAAwB;QAExB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,mCAAmC,EAAE;YACtE,MAAM,EAAE;gBACN,IAAI,EAAE;oBACJ,cAAc,EAAE,OAAO;iBACxB;aACF;YACD,GAAG,OAAO;SACX,CAAC,CAAA;QAEF,OAAO,iBAAiB,CAAC,IAAI,CAAC,CAAA;IAChC,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,IAAI,CAAC,OAAwB;QACxC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,kBAAkB,EAAE;YACrD,GAAG,OAAO;SACX,CAAC,CAAA;QAEF,OAAO,iBAAiB,CAAC,IAAI,CAAC,CAAA;IAChC,CAAC;IAED;;;;;OAKG;IACI,KAAK,CAAC,MAAM,CACjB,OAA4E,EAC5E,OAAwB;QAExB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,mCAAmC,EAAE;YACzE,MAAM,EAAE;gBACN,IAAI,EAAE;oBACJ,cAAc,EAAE,OAAO;iBACxB;aACF;YACD,GAAG,OAAO;SACX,CAAC,CAAA;QAEF,OAAO,iBAAiB,CAAC,IAAI,CAAC,CAAA;IAChC,CAAC;CACF"}
@@ -0,0 +1,198 @@
1
+ import { type RequestOptions } from './utils.js';
2
+ import type { operations, paths, SubscriptionChange, SubscriptionCreate, SubscriptionEdit } from './schemas.js';
3
+ import type { Client } from 'openapi-fetch';
4
+ /**
5
+ * Subscriptions
6
+ */
7
+ export declare class Subscriptions {
8
+ private readonly client;
9
+ constructor(client: Client<paths, `${string}/${string}`>);
10
+ /**
11
+ * Create a subscription
12
+ * @param body - The subscription to create
13
+ * @param signal - An optional abort signal
14
+ * @returns The created subscription
15
+ */
16
+ create(body: SubscriptionCreate, options?: RequestOptions): Promise<{
17
+ data?: never;
18
+ error: import("./utils.js").Problem;
19
+ response: Response;
20
+ } | {
21
+ data: {
22
+ readonly id: string;
23
+ name: string;
24
+ description?: string;
25
+ metadata?: import("./schemas.js").components["schemas"]["Metadata"] | null;
26
+ readonly createdAt: Date;
27
+ readonly updatedAt: Date;
28
+ readonly deletedAt?: Date;
29
+ activeFrom: Date;
30
+ activeTo?: Date;
31
+ readonly status: import("./schemas.js").components["schemas"]["SubscriptionStatus"];
32
+ customerId: string;
33
+ plan?: import("./schemas.js").components["schemas"]["PlanReference"];
34
+ currency: import("./schemas.js").components["schemas"]["CurrencyCode"];
35
+ };
36
+ error?: never;
37
+ response: Response;
38
+ }>;
39
+ /**
40
+ * Get a subscription
41
+ * @param id - The subscription ID
42
+ * @param signal - An optional abort signal
43
+ * @returns The subscription
44
+ */
45
+ get(id: operations['getSubscription']['parameters']['path']['subscriptionId'], options?: RequestOptions): Promise<{
46
+ data?: never;
47
+ error: import("./utils.js").Problem;
48
+ response: Response;
49
+ } | {
50
+ data: {
51
+ readonly id: string;
52
+ name: string;
53
+ description?: string;
54
+ metadata?: import("./schemas.js").components["schemas"]["Metadata"] | null;
55
+ readonly createdAt: Date;
56
+ readonly updatedAt: Date;
57
+ readonly deletedAt?: Date;
58
+ activeFrom: Date;
59
+ activeTo?: Date;
60
+ readonly status: import("./schemas.js").components["schemas"]["SubscriptionStatus"];
61
+ customerId: string;
62
+ plan?: import("./schemas.js").components["schemas"]["PlanReference"];
63
+ currency: import("./schemas.js").components["schemas"]["CurrencyCode"];
64
+ phases: import("./schemas.js").components["schemas"]["SubscriptionPhaseExpanded"][];
65
+ };
66
+ error?: never;
67
+ response: Response;
68
+ }>;
69
+ /**
70
+ * Edit a subscription
71
+ * @param id - The subscription ID
72
+ * @param body - The subscription to edit
73
+ * @param signal - An optional abort signal
74
+ * @returns The edited subscription
75
+ */
76
+ edit(id: operations['editSubscription']['parameters']['path']['subscriptionId'], body: SubscriptionEdit, options?: RequestOptions): Promise<{
77
+ data?: never;
78
+ error: import("./utils.js").Problem;
79
+ response: Response;
80
+ } | {
81
+ data: {
82
+ readonly id: string;
83
+ name: string;
84
+ description?: string;
85
+ metadata?: import("./schemas.js").components["schemas"]["Metadata"] | null;
86
+ readonly createdAt: Date;
87
+ readonly updatedAt: Date;
88
+ readonly deletedAt?: Date;
89
+ activeFrom: Date;
90
+ activeTo?: Date;
91
+ readonly status: import("./schemas.js").components["schemas"]["SubscriptionStatus"];
92
+ customerId: string;
93
+ plan?: import("./schemas.js").components["schemas"]["PlanReference"];
94
+ currency: import("./schemas.js").components["schemas"]["CurrencyCode"];
95
+ };
96
+ error?: never;
97
+ response: Response;
98
+ }>;
99
+ /**
100
+ * Cancel a subscription
101
+ * @param id - The subscription ID
102
+ * @param body - The subscription to cancel
103
+ * @param signal - An optional abort signal
104
+ * @returns The canceled subscription
105
+ */
106
+ cancel(id: operations['cancelSubscription']['parameters']['path']['subscriptionId'], body: operations['cancelSubscription']['requestBody']['content']['application/json'], options?: RequestOptions): Promise<{
107
+ data?: never;
108
+ error: import("./utils.js").Problem;
109
+ response: Response;
110
+ } | {
111
+ data: {
112
+ readonly id: string;
113
+ name: string;
114
+ description?: string;
115
+ metadata?: import("./schemas.js").components["schemas"]["Metadata"] | null;
116
+ readonly createdAt: Date;
117
+ readonly updatedAt: Date;
118
+ readonly deletedAt?: Date;
119
+ activeFrom: Date;
120
+ activeTo?: Date;
121
+ readonly status: import("./schemas.js").components["schemas"]["SubscriptionStatus"];
122
+ customerId: string;
123
+ plan?: import("./schemas.js").components["schemas"]["PlanReference"];
124
+ currency: import("./schemas.js").components["schemas"]["CurrencyCode"];
125
+ };
126
+ error?: never;
127
+ response: Response;
128
+ }>;
129
+ /**
130
+ * Change a subscription
131
+ * @description Closes a running subscription and starts a new one according to the specification. Can be used for upgrades, downgrades, and plan changes.
132
+ * @param id - The subscription ID
133
+ * @param body - The subscription to change
134
+ * @param signal - An optional abort signal
135
+ * @returns The changed subscription
136
+ */
137
+ change(id: operations['changeSubscription']['parameters']['path']['subscriptionId'], body: SubscriptionChange, options?: RequestOptions): Promise<{
138
+ data?: never;
139
+ error: import("./utils.js").Problem;
140
+ response: Response;
141
+ } | {
142
+ data: {
143
+ current: import("./schemas.js").components["schemas"]["Subscription"];
144
+ next: import("./schemas.js").components["schemas"]["SubscriptionExpanded"];
145
+ };
146
+ error?: never;
147
+ response: Response;
148
+ }>;
149
+ /**
150
+ * Migrate a subscription
151
+ * @description Migrates the subscripiton to the provided version of the current plan.
152
+ * @param id - The subscription ID
153
+ * @param body - The subscription to migrate
154
+ * @param signal - An optional abort signal
155
+ * @returns The migrated subscription
156
+ */
157
+ migrate(id: operations['migrateSubscription']['parameters']['path']['subscriptionId'], body: operations['migrateSubscription']['requestBody']['content']['application/json'], options?: RequestOptions): Promise<{
158
+ data?: never;
159
+ error: import("./utils.js").Problem;
160
+ response: Response;
161
+ } | {
162
+ data: {
163
+ current: import("./schemas.js").components["schemas"]["Subscription"];
164
+ next: import("./schemas.js").components["schemas"]["SubscriptionExpanded"];
165
+ };
166
+ error?: never;
167
+ response: Response;
168
+ }>;
169
+ /**
170
+ * Unschedule a cancelation
171
+ * @param id - The subscription ID
172
+ * @param signal - An optional abort signal
173
+ * @returns The unscheduled subscription
174
+ */
175
+ unscheduleCancelation(id: operations['unscheduleCancelation']['parameters']['path']['subscriptionId'], options?: RequestOptions): Promise<{
176
+ data?: never;
177
+ error: import("./utils.js").Problem;
178
+ response: Response;
179
+ } | {
180
+ data: {
181
+ readonly id: string;
182
+ name: string;
183
+ description?: string;
184
+ metadata?: import("./schemas.js").components["schemas"]["Metadata"] | null;
185
+ readonly createdAt: Date;
186
+ readonly updatedAt: Date;
187
+ readonly deletedAt?: Date;
188
+ activeFrom: Date;
189
+ activeTo?: Date;
190
+ readonly status: import("./schemas.js").components["schemas"]["SubscriptionStatus"];
191
+ customerId: string;
192
+ plan?: import("./schemas.js").components["schemas"]["PlanReference"];
193
+ currency: import("./schemas.js").components["schemas"]["CurrencyCode"];
194
+ };
195
+ error?: never;
196
+ response: Response;
197
+ }>;
198
+ }
@@ -0,0 +1,112 @@
1
+ import { transformResponse } from './utils.js';
2
+ /**
3
+ * Subscriptions
4
+ */
5
+ export class Subscriptions {
6
+ client;
7
+ constructor(client) {
8
+ this.client = client;
9
+ }
10
+ /**
11
+ * Create a subscription
12
+ * @param body - The subscription to create
13
+ * @param signal - An optional abort signal
14
+ * @returns The created subscription
15
+ */
16
+ async create(body, options) {
17
+ const resp = await this.client.POST('/api/v1/subscriptions', {
18
+ body,
19
+ ...options,
20
+ });
21
+ return transformResponse(resp);
22
+ }
23
+ /**
24
+ * Get a subscription
25
+ * @param id - The subscription ID
26
+ * @param signal - An optional abort signal
27
+ * @returns The subscription
28
+ */
29
+ async get(id, options) {
30
+ const resp = await this.client.GET('/api/v1/subscriptions/{subscriptionId}', {
31
+ params: { path: { subscriptionId: id } },
32
+ ...options,
33
+ });
34
+ return transformResponse(resp);
35
+ }
36
+ /**
37
+ * Edit a subscription
38
+ * @param id - The subscription ID
39
+ * @param body - The subscription to edit
40
+ * @param signal - An optional abort signal
41
+ * @returns The edited subscription
42
+ */
43
+ async edit(id, body, options) {
44
+ const resp = await this.client.PATCH('/api/v1/subscriptions/{subscriptionId}', {
45
+ body,
46
+ params: { path: { subscriptionId: id } },
47
+ ...options,
48
+ });
49
+ return transformResponse(resp);
50
+ }
51
+ /**
52
+ * Cancel a subscription
53
+ * @param id - The subscription ID
54
+ * @param body - The subscription to cancel
55
+ * @param signal - An optional abort signal
56
+ * @returns The canceled subscription
57
+ */
58
+ async cancel(id, body, options) {
59
+ const resp = await this.client.POST('/api/v1/subscriptions/{subscriptionId}/cancel', {
60
+ body,
61
+ params: { path: { subscriptionId: id } },
62
+ ...options,
63
+ });
64
+ return transformResponse(resp);
65
+ }
66
+ /**
67
+ * Change a subscription
68
+ * @description Closes a running subscription and starts a new one according to the specification. Can be used for upgrades, downgrades, and plan changes.
69
+ * @param id - The subscription ID
70
+ * @param body - The subscription to change
71
+ * @param signal - An optional abort signal
72
+ * @returns The changed subscription
73
+ */
74
+ async change(id, body, options) {
75
+ const resp = await this.client.POST('/api/v1/subscriptions/{subscriptionId}/change', {
76
+ body,
77
+ params: { path: { subscriptionId: id } },
78
+ ...options,
79
+ });
80
+ return transformResponse(resp);
81
+ }
82
+ /**
83
+ * Migrate a subscription
84
+ * @description Migrates the subscripiton to the provided version of the current plan.
85
+ * @param id - The subscription ID
86
+ * @param body - The subscription to migrate
87
+ * @param signal - An optional abort signal
88
+ * @returns The migrated subscription
89
+ */
90
+ async migrate(id, body, options) {
91
+ const resp = await this.client.POST('/api/v1/subscriptions/{subscriptionId}/migrate', {
92
+ body,
93
+ params: { path: { subscriptionId: id } },
94
+ ...options,
95
+ });
96
+ return transformResponse(resp);
97
+ }
98
+ /**
99
+ * Unschedule a cancelation
100
+ * @param id - The subscription ID
101
+ * @param signal - An optional abort signal
102
+ * @returns The unscheduled subscription
103
+ */
104
+ async unscheduleCancelation(id, options) {
105
+ const resp = await this.client.POST('/api/v1/subscriptions/{subscriptionId}/unschedule-cancelation', {
106
+ params: { path: { subscriptionId: id } },
107
+ ...options,
108
+ });
109
+ return transformResponse(resp);
110
+ }
111
+ }
112
+ //# sourceMappingURL=subscriptions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subscriptions.js","sourceRoot":"","sources":["../../../src/client/subscriptions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ import type { UnexpectedProblemResponse } from './schemas.js';
2
+ import type { FetchResponse, ParseAsResponse } from 'openapi-fetch';
3
+ import type { MediaType, ResponseObjectMap, SuccessResponse } from 'openapi-typescript-helpers';
4
+ export type RequestOptions = Pick<RequestInit, 'signal'>;
5
+ export declare class Problem extends Error {
6
+ message: string;
7
+ type: string;
8
+ title: string;
9
+ status: number;
10
+ protected __raw?: Record<string, any> | undefined;
11
+ name: string;
12
+ constructor(message: string, type: string, title: string, status: number, __raw?: Record<string, any> | undefined);
13
+ static fromResponse(resp: {
14
+ response: Response;
15
+ error?: UnexpectedProblemResponse;
16
+ }): Problem;
17
+ getField(key: string): any;
18
+ }
19
+ export declare function transformResponse<T extends Record<string | number, any>, Options, Media extends MediaType>(resp: FetchResponse<T, Options, Media>): {
20
+ data: ParseAsResponse<SuccessResponse<ResponseObjectMap<T>, Media>, Options>;
21
+ error?: never;
22
+ response: Response;
23
+ } | {
24
+ data?: never;
25
+ error: Problem;
26
+ response: Response;
27
+ };
28
+ export declare function isIsoDateString(value: unknown): value is string;
29
+ export declare function decodeDates<T>(data: T): T;
30
+ export declare function encodeDates<T>(data: T): T;
@@ -0,0 +1,85 @@
1
+ export class Problem extends Error {
2
+ message;
3
+ type;
4
+ title;
5
+ status;
6
+ __raw;
7
+ name = 'Problem';
8
+ constructor(message, type, title, status, __raw) {
9
+ super(message);
10
+ this.message = message;
11
+ this.type = type;
12
+ this.title = title;
13
+ this.status = status;
14
+ this.__raw = __raw;
15
+ }
16
+ static fromResponse(resp) {
17
+ if (resp.response.headers.get('Content-Type') ===
18
+ 'application/problem+json' &&
19
+ resp.error) {
20
+ return new Problem(resp.error.detail, resp.error.type, resp.error.title, resp.error.status ?? resp.response.status, resp.error);
21
+ }
22
+ return new Problem(`Request failed: ${resp.response.statusText}`, resp.response.statusText, resp.response.statusText, resp.response.status);
23
+ }
24
+ getField(key) {
25
+ return this.__raw?.[key];
26
+ }
27
+ }
28
+ // Implementation
29
+ export function transformResponse(resp) {
30
+ // Handle errors
31
+ if (resp.error || resp.response.status >= 400) {
32
+ const error = Problem.fromResponse(resp);
33
+ return { error, response: resp.response };
34
+ }
35
+ // Decode dates
36
+ if (resp.data) {
37
+ resp.data = decodeDates(resp.data);
38
+ }
39
+ return { data: resp.data, response: resp.response };
40
+ }
41
+ const ISODateFormat = /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d*)?(?:[-+]\d{2}:?\d{2}|Z)?$/;
42
+ export function isIsoDateString(value) {
43
+ return typeof value === 'string' && ISODateFormat.test(value);
44
+ }
45
+ export function decodeDates(data) {
46
+ // if it's a date string, return a date
47
+ if (isIsoDateString(data)) {
48
+ return new Date(data);
49
+ }
50
+ // if it's not an object or array, return it
51
+ if (data === null || data === undefined || typeof data !== 'object') {
52
+ return data;
53
+ }
54
+ // if it's an array, decode each element
55
+ if (Array.isArray(data)) {
56
+ return data.map((val) => decodeDates(val));
57
+ }
58
+ // if it's an object, decode each key
59
+ for (const [key, val] of Object.entries(data)) {
60
+ // @ts-expect-error we know this will give back the same type
61
+ data[key] = decodeDates(val);
62
+ }
63
+ return data;
64
+ }
65
+ export function encodeDates(data) {
66
+ // if it's a date, return a date string
67
+ if (data instanceof Date) {
68
+ return data.toISOString();
69
+ }
70
+ // if it's not an object or array, return it
71
+ if (data === null || data === undefined || typeof data !== 'object') {
72
+ return data;
73
+ }
74
+ // if it's an array, encode each element
75
+ if (Array.isArray(data)) {
76
+ return data.map((val) => encodeDates(val));
77
+ }
78
+ // if it's an object, encode each key
79
+ for (const [key, val] of Object.entries(data)) {
80
+ // @ts-expect-error we know this will give back the same type
81
+ data[key] = encodeDates(val);
82
+ }
83
+ return data;
84
+ }
85
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/client/utils.ts"],"names":[],"mappings":"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"}