@openmeter/sdk 1.0.0-beta.100 → 1.0.0-beta.102

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 (55) hide show
  1. package/README.md +169 -3
  2. package/dist/cjs/clients/client.cjs +3 -0
  3. package/dist/cjs/clients/client.d.cts +1 -1
  4. package/dist/cjs/clients/client.js.map +1 -1
  5. package/dist/cjs/clients/entitlement.cjs +27 -0
  6. package/dist/cjs/clients/entitlement.d.cts +25 -0
  7. package/dist/cjs/clients/entitlement.js.map +1 -0
  8. package/dist/cjs/clients/feature.cjs +75 -0
  9. package/dist/cjs/clients/feature.d.cts +40 -0
  10. package/dist/cjs/clients/feature.js.map +1 -0
  11. package/dist/cjs/clients/grant.cjs +27 -0
  12. package/dist/cjs/clients/grant.d.cts +15 -0
  13. package/dist/cjs/clients/grant.js.map +1 -0
  14. package/dist/cjs/clients/subject.cjs +166 -0
  15. package/dist/cjs/clients/subject.d.cts +92 -2
  16. package/dist/cjs/clients/subject.js.map +1 -1
  17. package/dist/cjs/index.cjs +9 -0
  18. package/dist/cjs/index.d.cts +6 -0
  19. package/dist/cjs/index.js.map +1 -1
  20. package/dist/cjs/schemas/openapi.d.cts +4 -4
  21. package/dist/cjs/test/agent.cjs +209 -5
  22. package/dist/cjs/test/agent.js.map +1 -1
  23. package/dist/cjs/test/mocks.cjs +109 -1
  24. package/dist/cjs/test/mocks.d.cts +11 -0
  25. package/dist/cjs/test/mocks.js.map +1 -1
  26. package/dist/cjs/tsconfig.32b136de.tsbuildinfo +1 -0
  27. package/dist/cjs/tsconfig.688f9ab6.tsbuildinfo +1 -0
  28. package/dist/clients/client.d.ts +1 -1
  29. package/dist/clients/client.js +3 -0
  30. package/dist/clients/client.js.map +1 -1
  31. package/dist/clients/entitlement.d.ts +25 -0
  32. package/dist/clients/entitlement.js +23 -0
  33. package/dist/clients/entitlement.js.map +1 -0
  34. package/dist/clients/feature.d.ts +40 -0
  35. package/dist/clients/feature.js +71 -0
  36. package/dist/clients/feature.js.map +1 -0
  37. package/dist/clients/grant.d.ts +15 -0
  38. package/dist/clients/grant.js +23 -0
  39. package/dist/clients/grant.js.map +1 -0
  40. package/dist/clients/subject.d.ts +92 -2
  41. package/dist/clients/subject.js +166 -0
  42. package/dist/clients/subject.js.map +1 -1
  43. package/dist/index.d.ts +6 -0
  44. package/dist/index.js +9 -0
  45. package/dist/index.js.map +1 -1
  46. package/dist/schemas/openapi.d.ts +4 -4
  47. package/dist/test/agent.js +210 -6
  48. package/dist/test/agent.js.map +1 -1
  49. package/dist/test/mocks.d.ts +11 -0
  50. package/dist/test/mocks.js +108 -0
  51. package/dist/test/mocks.js.map +1 -1
  52. package/dist/tsconfig.tsbuildinfo +1 -1
  53. package/package.json +1 -1
  54. package/dist/cjs/tsconfig.43c3843a.tsbuildinfo +0 -1
  55. package/dist/cjs/tsconfig.d98fa456.tsbuildinfo +0 -1
@@ -1,5 +1,7 @@
1
1
  import { components } from '../schemas/openapi.js';
2
2
  import { RequestOptions, BaseClient, OpenMeterConfig } from './client.js';
3
+ import { Entitlement, EntitlementCreateInputs, EntitlementResetInputs, EntitlementValue, GetEntitlementHistoryQueryParams, ListEntitlementQueryParams, WindowedBalanceHistory } from './entitlement.js';
4
+ import { EntitlementGrant, EntitlementGrantCreateInput, ListEntitlementGrantQueryParams } from './grant.js';
3
5
  export type Subject = components['schemas']['Subject'];
4
6
  export declare class SubjectClient extends BaseClient {
5
7
  constructor(config: OpenMeterConfig);
@@ -13,15 +15,103 @@ export declare class SubjectClient extends BaseClient {
13
15
  * Get subject by id or key
14
16
  * @note OpenMeter Cloud only feature
15
17
  */
16
- get(idOrKey: string, options?: RequestOptions): Promise<void>;
18
+ get(idOrKey: string, options?: RequestOptions): Promise<Subject>;
17
19
  /**
18
20
  * List subjects
19
21
  * @note OpenMeter Cloud only feature
20
22
  */
21
- list(options?: RequestOptions): Promise<void>;
23
+ list(options?: RequestOptions): Promise<Subject[]>;
22
24
  /**
23
25
  * Delete subject by id or key
24
26
  * @note OpenMeter Cloud only feature
25
27
  */
26
28
  delete(idOrKey: string, options?: RequestOptions): Promise<void>;
29
+ /** Entitlements **/
30
+ /**
31
+ * Create Entitlement
32
+ * Entitlements allows you to manage subject feature access, balances, and usage limits.
33
+ *
34
+ * @example
35
+ * // Issue 10,000,000 tokens every month
36
+ * const entitlement = await openmeter.subjects.createEntitlement('customer-1', {
37
+ * type: 'metered',
38
+ * featureKey: 'ai_tokens',
39
+ * usagePeriod: {
40
+ * interval: 'MONTH',
41
+ * },
42
+ * issueAfterReset: 10000000,
43
+ * })
44
+ */
45
+ createEntitlement(subjectIdOrKey: string, input: EntitlementCreateInputs, options?: RequestOptions): Promise<Entitlement>;
46
+ /**
47
+ * List entitlements
48
+ * @example
49
+ * const entitlement = await openmeter.subjects.listEntitlements('customer-1')
50
+ */
51
+ listEntitlements(subjectIdOrKey: string, params?: ListEntitlementQueryParams, options?: RequestOptions): Promise<Entitlement[]>;
52
+ /**
53
+ * Get entitlement by ID by Feature ID or by Feature Key
54
+ *
55
+ * @example
56
+ * const entitlement = await openmeter.subjects.getEntitlement('customer-1', 'ai_tokens')
57
+ */
58
+ getEntitlement(subjectIdOrKey: string, entitlementIdOrFeatureIdOrFeatureKey: string, options?: RequestOptions): Promise<Entitlement>;
59
+ /**
60
+ * Delete entitlement by ID by Feature ID or by Feature Key
61
+ * @example
62
+ * await openmeter.deleteEntitlement('customer-1', 'ai_tokens')
63
+ */
64
+ deleteEntitlement(subjectIdOrKey: string, entitlementIdOrFeatureIdOrFeatureKey: string, options?: RequestOptions): Promise<void>;
65
+ /**
66
+ * Get entitlement value by ID by Feature ID or by Feature Key
67
+ *
68
+ * @example
69
+ * const value = await openmeter.subjects.getEntitlementValue('customer-1', 'ai_tokens')
70
+ */
71
+ getEntitlementValue(subjectIdOrKey: string, entitlementIdOrFeatureIdOrFeatureKey: string, options?: RequestOptions): Promise<EntitlementValue>;
72
+ /**
73
+ * Get entitlement history by ID by Feature ID or by Feature Key
74
+ * @example
75
+ * const entitlement = await openmeter.subjects.getEntitlementHistory('customer-1', 'ai_tokens')
76
+ */
77
+ getEntitlementHistory(subjectIdOrKey: string, entitlementIdOrFeatureIdOrFeatureKey: string, params?: GetEntitlementHistoryQueryParams, options?: RequestOptions): Promise<WindowedBalanceHistory[]>;
78
+ /**
79
+ * Reset Entitlement Usage
80
+ * Reset the entitlement usage and start a new period. Eligible grants will be rolled over
81
+ *
82
+ * @example
83
+ * const entitlement = await openmeter.subjects.resetEntitlementUsage('customer-1', 'ai_tokens', {
84
+ * retainAnchor: true
85
+ * })
86
+ */
87
+ resetEntitlementUsage(subjectIdOrKey: string, entitlementIdOrFeatureIdOrFeatureKey: string, input: EntitlementResetInputs, options?: RequestOptions): Promise<Entitlement>;
88
+ /** Entitlement Grant **/
89
+ /**
90
+ * Create Entitlement Grant
91
+ * Create a grant for an entitlement.
92
+ *
93
+ * @example
94
+ * const grant = await openmeter.subjects.createEntitlementGrant('customer-1', 'ai_tokens', {
95
+ * amount: 100,
96
+ * priority: 1,
97
+ * effectiveAt: '2023-01-01T00:00:00Z',
98
+ * expiration: {
99
+ * duration: 'HOUR',
100
+ * count: 12,
101
+ * },
102
+ * minRolloverAmount: 100,
103
+ * maxRolloverAmount: 100,
104
+ * recurrence: {
105
+ * interval: 'MONTH',
106
+ * anchor: '2024-06-28T18:29:44.867Z',
107
+ * },
108
+ * })
109
+ */
110
+ createEntitlementGrant(subjectIdOrKey: string, entitlementIdOrFeatureIdOrFeatureKey: string, input: EntitlementGrantCreateInput, options?: RequestOptions): Promise<EntitlementGrant>;
111
+ /**
112
+ * List entitlement grants
113
+ * @example
114
+ * const entitlement = await openmeter.subjects.listEntitlementGrants('customer-1', 'ai_tokens)
115
+ */
116
+ listEntitlementGrants(subjectIdOrKey: string, entitlementIdOrFeatureIdOrFeatureKey: string, params?: ListEntitlementGrantQueryParams, options?: RequestOptions): Promise<EntitlementGrant[]>;
27
117
  }
@@ -52,5 +52,171 @@ export class SubjectClient extends BaseClient {
52
52
  options,
53
53
  });
54
54
  }
55
+ /** Entitlements **/
56
+ /**
57
+ * Create Entitlement
58
+ * Entitlements allows you to manage subject feature access, balances, and usage limits.
59
+ *
60
+ * @example
61
+ * // Issue 10,000,000 tokens every month
62
+ * const entitlement = await openmeter.subjects.createEntitlement('customer-1', {
63
+ * type: 'metered',
64
+ * featureKey: 'ai_tokens',
65
+ * usagePeriod: {
66
+ * interval: 'MONTH',
67
+ * },
68
+ * issueAfterReset: 10000000,
69
+ * })
70
+ */
71
+ async createEntitlement(subjectIdOrKey, input, options) {
72
+ return await this.request({
73
+ path: `/api/v1/subjects/${subjectIdOrKey}/entitlements`,
74
+ method: 'POST',
75
+ headers: {
76
+ 'Content-Type': 'application/json',
77
+ },
78
+ body: JSON.stringify(input),
79
+ options,
80
+ });
81
+ }
82
+ /**
83
+ * List entitlements
84
+ * @example
85
+ * const entitlement = await openmeter.subjects.listEntitlements('customer-1')
86
+ */
87
+ async listEntitlements(subjectIdOrKey, params, options) {
88
+ const searchParams = params
89
+ ? BaseClient.toURLSearchParams(params)
90
+ : undefined;
91
+ return await this.request({
92
+ path: `/api/v1/subjects/${subjectIdOrKey}/entitlements`,
93
+ method: 'GET',
94
+ searchParams,
95
+ options,
96
+ });
97
+ }
98
+ /**
99
+ * Get entitlement by ID by Feature ID or by Feature Key
100
+ *
101
+ * @example
102
+ * const entitlement = await openmeter.subjects.getEntitlement('customer-1', 'ai_tokens')
103
+ */
104
+ async getEntitlement(subjectIdOrKey, entitlementIdOrFeatureIdOrFeatureKey, options) {
105
+ return await this.request({
106
+ path: `/api/v1/subjects/${subjectIdOrKey}/entitlements/${entitlementIdOrFeatureIdOrFeatureKey}`,
107
+ method: 'GET',
108
+ options,
109
+ });
110
+ }
111
+ /**
112
+ * Delete entitlement by ID by Feature ID or by Feature Key
113
+ * @example
114
+ * await openmeter.deleteEntitlement('customer-1', 'ai_tokens')
115
+ */
116
+ async deleteEntitlement(subjectIdOrKey, entitlementIdOrFeatureIdOrFeatureKey, options) {
117
+ return await this.request({
118
+ path: `/api/v1/subjects/${subjectIdOrKey}/entitlements/${entitlementIdOrFeatureIdOrFeatureKey}`,
119
+ method: 'DELETE',
120
+ options,
121
+ });
122
+ }
123
+ /**
124
+ * Get entitlement value by ID by Feature ID or by Feature Key
125
+ *
126
+ * @example
127
+ * const value = await openmeter.subjects.getEntitlementValue('customer-1', 'ai_tokens')
128
+ */
129
+ async getEntitlementValue(subjectIdOrKey, entitlementIdOrFeatureIdOrFeatureKey, options) {
130
+ return await this.request({
131
+ path: `/api/v1/subjects/${subjectIdOrKey}/entitlements/${entitlementIdOrFeatureIdOrFeatureKey}/value`,
132
+ method: 'GET',
133
+ options,
134
+ });
135
+ }
136
+ /**
137
+ * Get entitlement history by ID by Feature ID or by Feature Key
138
+ * @example
139
+ * const entitlement = await openmeter.subjects.getEntitlementHistory('customer-1', 'ai_tokens')
140
+ */
141
+ async getEntitlementHistory(subjectIdOrKey, entitlementIdOrFeatureIdOrFeatureKey, params, options) {
142
+ const searchParams = params
143
+ ? BaseClient.toURLSearchParams(params)
144
+ : undefined;
145
+ return await this.request({
146
+ path: `/api/v1/subjects/${subjectIdOrKey}/entitlements/${entitlementIdOrFeatureIdOrFeatureKey}/history`,
147
+ method: 'GET',
148
+ searchParams,
149
+ options,
150
+ });
151
+ }
152
+ /**
153
+ * Reset Entitlement Usage
154
+ * Reset the entitlement usage and start a new period. Eligible grants will be rolled over
155
+ *
156
+ * @example
157
+ * const entitlement = await openmeter.subjects.resetEntitlementUsage('customer-1', 'ai_tokens', {
158
+ * retainAnchor: true
159
+ * })
160
+ */
161
+ async resetEntitlementUsage(subjectIdOrKey, entitlementIdOrFeatureIdOrFeatureKey, input, options) {
162
+ return await this.request({
163
+ path: `/api/v1/subjects/${subjectIdOrKey}/entitlements/${entitlementIdOrFeatureIdOrFeatureKey}/reset`,
164
+ method: 'POST',
165
+ headers: {
166
+ 'Content-Type': 'application/json',
167
+ },
168
+ body: JSON.stringify(input),
169
+ options,
170
+ });
171
+ }
172
+ /** Entitlement Grant **/
173
+ /**
174
+ * Create Entitlement Grant
175
+ * Create a grant for an entitlement.
176
+ *
177
+ * @example
178
+ * const grant = await openmeter.subjects.createEntitlementGrant('customer-1', 'ai_tokens', {
179
+ * amount: 100,
180
+ * priority: 1,
181
+ * effectiveAt: '2023-01-01T00:00:00Z',
182
+ * expiration: {
183
+ * duration: 'HOUR',
184
+ * count: 12,
185
+ * },
186
+ * minRolloverAmount: 100,
187
+ * maxRolloverAmount: 100,
188
+ * recurrence: {
189
+ * interval: 'MONTH',
190
+ * anchor: '2024-06-28T18:29:44.867Z',
191
+ * },
192
+ * })
193
+ */
194
+ async createEntitlementGrant(subjectIdOrKey, entitlementIdOrFeatureIdOrFeatureKey, input, options) {
195
+ return await this.request({
196
+ path: `/api/v1/subjects/${subjectIdOrKey}/entitlements/${entitlementIdOrFeatureIdOrFeatureKey}/grants`,
197
+ method: 'POST',
198
+ headers: {
199
+ 'Content-Type': 'application/json',
200
+ },
201
+ body: JSON.stringify(input),
202
+ options,
203
+ });
204
+ }
205
+ /**
206
+ * List entitlement grants
207
+ * @example
208
+ * const entitlement = await openmeter.subjects.listEntitlementGrants('customer-1', 'ai_tokens)
209
+ */
210
+ async listEntitlementGrants(subjectIdOrKey, entitlementIdOrFeatureIdOrFeatureKey, params, options) {
211
+ const searchParams = params
212
+ ? BaseClient.toURLSearchParams(params)
213
+ : undefined;
214
+ return await this.request({
215
+ path: `/api/v1/subjects/${subjectIdOrKey}/entitlements/${entitlementIdOrFeatureIdOrFeatureKey}/grants`,
216
+ method: 'GET',
217
+ searchParams,
218
+ options,
219
+ });
220
+ }
55
221
  }
56
222
  //# sourceMappingURL=subject.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"subject.js","sourceRoot":"","sources":["../../clients/subject.ts"],"names":[],"mappings":"AACA,OAAO,EAAkB,UAAU,EAAmB,MAAM,aAAa,CAAA;AAIzE,MAAM,OAAO,aAAc,SAAQ,UAAU;IAC3C,YAAY,MAAuB;QACjC,KAAK,CAAC,MAAM,CAAC,CAAA;IACf,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,MAAM,CACjB,OAA8B,EAC9B,OAAwB;QAExB,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC;YACxB,IAAI,EAAE,kBAAkB;YACxB,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;aACnC;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;YAC7B,OAAO;SACR,CAAC,CAAA;IACJ,CAAC;IAED;;;OAGG;IACI,KAAK,CAAC,GAAG,CAAC,OAAe,EAAE,OAAwB;QACxD,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC;YACxB,IAAI,EAAE,oBAAoB,OAAO,EAAE;YACnC,MAAM,EAAE,KAAK;YACb,OAAO;SACR,CAAC,CAAA;IACJ,CAAC;IAED;;;OAGG;IACI,KAAK,CAAC,IAAI,CAAC,OAAwB;QACxC,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC;YACxB,IAAI,EAAE,kBAAkB;YACxB,MAAM,EAAE,KAAK;YACb,OAAO;SACR,CAAC,CAAA;IACJ,CAAC;IAED;;;OAGG;IACI,KAAK,CAAC,MAAM,CACjB,OAAe,EACf,OAAwB;QAExB,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC;YACxB,IAAI,EAAE,oBAAoB,OAAO,EAAE;YACnC,MAAM,EAAE,QAAQ;YAChB,OAAO;SACR,CAAC,CAAA;IACJ,CAAC;CACF"}
1
+ {"version":3,"file":"subject.js","sourceRoot":"","sources":["../../clients/subject.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,5 +1,8 @@
1
1
  import { OpenMeterConfig } from './clients/client.js';
2
+ import { EntitlementClient } from './clients/entitlement.js';
2
3
  import { EventsClient } from './clients/event.js';
4
+ import { FeatureClient } from './clients/feature.js';
5
+ import { GrantClient } from './clients/grant.js';
3
6
  import { MetersClient } from './clients/meter.js';
4
7
  import { PortalClient } from './clients/portal.js';
5
8
  import { SubjectClient } from './clients/subject.js';
@@ -11,5 +14,8 @@ export declare class OpenMeter {
11
14
  meters: MetersClient;
12
15
  portal: PortalClient;
13
16
  subjects: SubjectClient;
17
+ features: FeatureClient;
18
+ entitlements: EntitlementClient;
19
+ grants: GrantClient;
14
20
  constructor(config: OpenMeterConfig);
15
21
  }
package/dist/index.js CHANGED
@@ -1,4 +1,7 @@
1
+ import { EntitlementClient } from './clients/entitlement.js';
1
2
  import { EventsClient } from './clients/event.js';
3
+ import { FeatureClient } from './clients/feature.js';
4
+ import { GrantClient } from './clients/grant.js';
2
5
  import { MetersClient } from './clients/meter.js';
3
6
  import { PortalClient } from './clients/portal.js';
4
7
  import { SubjectClient } from './clients/subject.js';
@@ -8,11 +11,17 @@ export class OpenMeter {
8
11
  meters;
9
12
  portal;
10
13
  subjects;
14
+ features;
15
+ entitlements;
16
+ grants;
11
17
  constructor(config) {
12
18
  this.events = new EventsClient(config);
13
19
  this.meters = new MetersClient(config);
14
20
  this.portal = new PortalClient(config);
15
21
  this.subjects = new SubjectClient(config);
22
+ this.features = new FeatureClient(config);
23
+ this.entitlements = new EntitlementClient(config);
24
+ this.grants = new GrantClient(config);
16
25
  }
17
26
  }
18
27
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAIpD,OAAO,EAAS,gBAAgB,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAExE,MAAM,OAAO,SAAS;IACb,MAAM,CAAc;IACpB,MAAM,CAAc;IACpB,MAAM,CAAc;IACpB,QAAQ,CAAe;IAE9B,YAAY,MAAuB;QACjC,IAAI,CAAC,MAAM,GAAG,IAAI,YAAY,CAAC,MAAM,CAAC,CAAA;QACtC,IAAI,CAAC,MAAM,GAAG,IAAI,YAAY,CAAC,MAAM,CAAC,CAAA;QACtC,IAAI,CAAC,MAAM,GAAG,IAAI,YAAY,CAAC,MAAM,CAAC,CAAA;QACtC,IAAI,CAAC,QAAQ,GAAG,IAAI,aAAa,CAAC,MAAM,CAAC,CAAA;IAC3C,CAAC;CACF"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AACpD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAIpD,OAAO,EAAS,gBAAgB,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAExE,MAAM,OAAO,SAAS;IACb,MAAM,CAAc;IACpB,MAAM,CAAc;IACpB,MAAM,CAAc;IACpB,QAAQ,CAAe;IACvB,QAAQ,CAAe;IACvB,YAAY,CAAmB;IAC/B,MAAM,CAAa;IAE1B,YAAY,MAAuB;QACjC,IAAI,CAAC,MAAM,GAAG,IAAI,YAAY,CAAC,MAAM,CAAC,CAAA;QACtC,IAAI,CAAC,MAAM,GAAG,IAAI,YAAY,CAAC,MAAM,CAAC,CAAA;QACtC,IAAI,CAAC,MAAM,GAAG,IAAI,YAAY,CAAC,MAAM,CAAC,CAAA;QACtC,IAAI,CAAC,QAAQ,GAAG,IAAI,aAAa,CAAC,MAAM,CAAC,CAAA;QACzC,IAAI,CAAC,QAAQ,GAAG,IAAI,aAAa,CAAC,MAAM,CAAC,CAAA;QACzC,IAAI,CAAC,YAAY,GAAG,IAAI,iBAAiB,CAAC,MAAM,CAAC,CAAA;QACjD,IAAI,CAAC,MAAM,GAAG,IAAI,WAAW,CAAC,MAAM,CAAC,CAAA;IACvC,CAAC;CACF"}
@@ -250,16 +250,16 @@ export interface components {
250
250
  createdAt: string;
251
251
  /**
252
252
  * Format: date-time
253
- * @description The date and time the resource was last updated.
253
+ * @description The date and time the resource was last updated. Defaults to createdAt if not updated.
254
254
  * @example 2023-01-01T00:00:00Z
255
255
  */
256
256
  updatedAt: string;
257
257
  /**
258
258
  * Format: date-time
259
- * @description The date and time the resource was deleted.
259
+ * @description The date and time the resource was deleted. Null if not deleted.
260
260
  * @example 2023-01-01T00:00:00Z
261
261
  */
262
- deletedAt: string;
262
+ deletedAt?: string;
263
263
  };
264
264
  /**
265
265
  * @description Conflict
@@ -776,7 +776,7 @@ export interface components {
776
776
  priority?: number;
777
777
  /**
778
778
  * Format: date-time
779
- * @description The effective time. Provided value will be ceiled to metering windowSize (minute).
779
+ * @description Effective date for grants and anchor for recurring grants. Provided value will be ceiled to metering windowSize (minute).
780
780
  *
781
781
  * @example 2023-01-01T00:00:00Z
782
782
  */
@@ -1,5 +1,5 @@
1
1
  import { MockAgent } from 'undici';
2
- import { mockEvent, mockMeter, mockMeterValue, mockSubject } from './mocks.js';
2
+ import { mockCreateEntitlementInput, mockCreateFeatureInput, mockEntitlement, mockEntitlementGrant, mockEntitlementGrantCreateInput, mockEntitlementValue, mockEvent, mockFeature, mockMeter, mockMeterValue, mockSubject, mockWindowedBalanceHistory, } from './mocks.js';
3
3
  export const mockAgent = new MockAgent();
4
4
  mockAgent.disableNetConnect();
5
5
  const client = mockAgent.get('http://127.0.0.1:8888');
@@ -45,7 +45,7 @@ client
45
45
  data: {
46
46
  api_calls: 1,
47
47
  },
48
- }
48
+ },
49
49
  ]),
50
50
  })
51
51
  .reply(204);
@@ -214,11 +214,13 @@ client
214
214
  Accept: 'application/json',
215
215
  'Content-Type': 'application/json',
216
216
  },
217
- body: JSON.stringify([{
217
+ body: JSON.stringify([
218
+ {
218
219
  key: mockSubject.key,
219
220
  displayName: mockSubject.displayName,
220
221
  metadata: mockSubject.metadata,
221
- }]),
222
+ },
223
+ ]),
222
224
  })
223
225
  .reply(200, [mockSubject], {
224
226
  headers: {
@@ -240,7 +242,7 @@ client
240
242
  });
241
243
  client
242
244
  .intercept({
243
- path: '/api/v1/subjects/customer-1',
245
+ path: `/api/v1/subjects/${mockSubject.key}`,
244
246
  method: 'GET',
245
247
  headers: {
246
248
  Accept: 'application/json',
@@ -253,11 +255,213 @@ client
253
255
  });
254
256
  client
255
257
  .intercept({
256
- path: '/api/v1/subjects/customer-1',
258
+ path: `/api/v1/subjects/${mockSubject.key}`,
259
+ method: 'DELETE',
260
+ headers: {
261
+ Accept: 'application/json',
262
+ },
263
+ })
264
+ .reply(204);
265
+ /** Subject Entitlements */
266
+ client
267
+ .intercept({
268
+ path: `/api/v1/subjects/${mockSubject.key}/entitlements`,
269
+ method: 'POST',
270
+ headers: {
271
+ Accept: 'application/json',
272
+ 'Content-Type': 'application/json',
273
+ },
274
+ body: JSON.stringify(mockCreateEntitlementInput),
275
+ })
276
+ .reply(201, mockEntitlement, {
277
+ headers: {
278
+ 'Content-Type': 'application/json',
279
+ },
280
+ });
281
+ client
282
+ .intercept({
283
+ path: `/api/v1/subjects/${mockSubject.key}/entitlements`,
284
+ method: 'GET',
285
+ headers: {
286
+ Accept: 'application/json',
287
+ },
288
+ })
289
+ .reply(200, [mockEntitlement], {
290
+ headers: {
291
+ 'Content-Type': 'application/json',
292
+ },
293
+ });
294
+ client
295
+ .intercept({
296
+ path: `/api/v1/subjects/${mockSubject.key}/entitlements/${mockFeature.key}`,
297
+ method: 'GET',
298
+ headers: {
299
+ Accept: 'application/json',
300
+ },
301
+ })
302
+ .reply(200, mockEntitlement, {
303
+ headers: {
304
+ 'Content-Type': 'application/json',
305
+ },
306
+ });
307
+ client
308
+ .intercept({
309
+ path: `/api/v1/subjects/${mockSubject.key}/entitlements/${mockFeature.key}`,
310
+ method: 'DELETE',
311
+ headers: {
312
+ Accept: 'application/json',
313
+ },
314
+ })
315
+ .reply(204);
316
+ client
317
+ .intercept({
318
+ path: `/api/v1/subjects/${mockSubject.key}/entitlements/${mockFeature.key}/value`,
319
+ method: 'GET',
320
+ headers: {
321
+ Accept: 'application/json',
322
+ },
323
+ })
324
+ .reply(200, mockEntitlementValue, {
325
+ headers: {
326
+ 'Content-Type': 'application/json',
327
+ },
328
+ });
329
+ client
330
+ .intercept({
331
+ path: `/api/v1/subjects/${mockSubject.key}/entitlements/${mockFeature.key}/history`,
332
+ method: 'GET',
333
+ headers: {
334
+ Accept: 'application/json',
335
+ },
336
+ })
337
+ .reply(200, mockWindowedBalanceHistory, {
338
+ headers: {
339
+ 'Content-Type': 'application/json',
340
+ },
341
+ });
342
+ client
343
+ .intercept({
344
+ path: `/api/v1/subjects/${mockSubject.key}/entitlements/${mockFeature.key}/reset`,
345
+ method: 'POST',
346
+ headers: {
347
+ Accept: 'application/json',
348
+ 'Content-Type': 'application/json',
349
+ },
350
+ body: JSON.stringify({
351
+ retainAnchor: true,
352
+ }),
353
+ })
354
+ .reply(204, mockEntitlement, {
355
+ headers: {
356
+ 'Content-Type': 'application/json',
357
+ },
358
+ });
359
+ /** Subject Entitlement Grants */
360
+ client
361
+ .intercept({
362
+ path: `/api/v1/subjects/${mockSubject.key}/entitlements/${mockFeature.key}/grants`,
363
+ method: 'POST',
364
+ headers: {
365
+ Accept: 'application/json',
366
+ 'Content-Type': 'application/json',
367
+ },
368
+ body: JSON.stringify(mockEntitlementGrantCreateInput),
369
+ })
370
+ .reply(201, mockEntitlementGrant, {
371
+ headers: {
372
+ 'Content-Type': 'application/json',
373
+ },
374
+ });
375
+ client
376
+ .intercept({
377
+ path: `/api/v1/subjects/${mockSubject.key}/entitlements/${mockFeature.key}/grants`,
378
+ method: 'GET',
379
+ headers: {
380
+ Accept: 'application/json',
381
+ },
382
+ })
383
+ .reply(200, [mockEntitlementGrant], {
384
+ headers: {
385
+ 'Content-Type': 'application/json',
386
+ },
387
+ });
388
+ /** Features */
389
+ client
390
+ .intercept({
391
+ path: '/api/v1/features',
392
+ method: 'POST',
393
+ headers: {
394
+ Accept: 'application/json',
395
+ 'Content-Type': 'application/json',
396
+ },
397
+ body: JSON.stringify(mockCreateFeatureInput),
398
+ })
399
+ .reply(201, mockFeature, {
400
+ headers: {
401
+ 'Content-Type': 'application/json',
402
+ },
403
+ });
404
+ client
405
+ .intercept({
406
+ path: '/api/v1/features',
407
+ method: 'GET',
408
+ headers: {
409
+ Accept: 'application/json',
410
+ },
411
+ })
412
+ .reply(200, [mockFeature], {
413
+ headers: {
414
+ 'Content-Type': 'application/json',
415
+ },
416
+ });
417
+ client
418
+ .intercept({
419
+ path: `/api/v1/features/${mockFeature.key}`,
420
+ method: 'GET',
421
+ headers: {
422
+ Accept: 'application/json',
423
+ },
424
+ })
425
+ .reply(200, mockFeature, {
426
+ headers: {
427
+ 'Content-Type': 'application/json',
428
+ },
429
+ });
430
+ client
431
+ .intercept({
432
+ path: `/api/v1/features/${mockFeature.key}`,
257
433
  method: 'DELETE',
258
434
  headers: {
259
435
  Accept: 'application/json',
260
436
  },
261
437
  })
262
438
  .reply(204);
439
+ /** Entitlements */
440
+ client
441
+ .intercept({
442
+ path: '/api/v1/entitlements',
443
+ method: 'GET',
444
+ headers: {
445
+ Accept: 'application/json',
446
+ },
447
+ })
448
+ .reply(200, [mockEntitlement], {
449
+ headers: {
450
+ 'Content-Type': 'application/json',
451
+ },
452
+ });
453
+ /** Grants */
454
+ client
455
+ .intercept({
456
+ path: '/api/v1/grants',
457
+ method: 'GET',
458
+ headers: {
459
+ Accept: 'application/json',
460
+ },
461
+ })
462
+ .reply(200, [mockEntitlementGrant], {
463
+ headers: {
464
+ 'Content-Type': 'application/json',
465
+ },
466
+ });
263
467
  //# sourceMappingURL=agent.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"agent.js","sourceRoot":"","sources":["../../test/agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent.js","sourceRoot":"","sources":["../../test/agent.ts"],"names":[],"mappings":"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"}