@openmeter/sdk 1.0.0-beta.13 → 1.0.0-beta.130

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 (86) hide show
  1. package/README.md +224 -46
  2. package/dist/cjs/clients/client.cjs +120 -0
  3. package/dist/cjs/clients/client.d.cts +37 -0
  4. package/dist/cjs/clients/client.js.map +1 -0
  5. package/dist/cjs/clients/entitlement.cjs +27 -0
  6. package/dist/cjs/clients/entitlement.d.cts +26 -0
  7. package/dist/cjs/clients/entitlement.js.map +1 -0
  8. package/dist/cjs/clients/event.cjs +71 -0
  9. package/dist/cjs/clients/event.d.cts +79 -0
  10. package/dist/cjs/clients/event.js.map +1 -0
  11. package/dist/cjs/clients/feature.cjs +80 -0
  12. package/dist/cjs/clients/feature.d.cts +46 -0
  13. package/dist/cjs/clients/feature.js.map +1 -0
  14. package/dist/cjs/clients/grant.cjs +41 -0
  15. package/dist/cjs/clients/grant.d.cts +24 -0
  16. package/dist/cjs/clients/grant.js.map +1 -0
  17. package/dist/cjs/clients/meter.cjs +83 -0
  18. package/dist/cjs/clients/meter.d.cts +79 -0
  19. package/dist/cjs/clients/meter.js.map +1 -0
  20. package/dist/cjs/clients/pagination.cjs +3 -0
  21. package/dist/cjs/clients/pagination.d.cts +6 -0
  22. package/dist/cjs/clients/pagination.js.map +1 -0
  23. package/dist/cjs/clients/portal.cjs +41 -0
  24. package/dist/cjs/clients/portal.d.cts +22 -0
  25. package/dist/cjs/clients/portal.js.map +1 -0
  26. package/dist/cjs/clients/subject.cjs +242 -0
  27. package/dist/cjs/clients/subject.d.cts +125 -0
  28. package/dist/cjs/clients/subject.js.map +1 -0
  29. package/dist/cjs/index.cjs +33 -0
  30. package/dist/cjs/index.d.cts +21 -0
  31. package/dist/cjs/index.js.map +1 -0
  32. package/dist/cjs/schemas/openapi.cjs +7 -0
  33. package/dist/cjs/schemas/openapi.d.cts +2994 -0
  34. package/dist/cjs/schemas/openapi.js.map +1 -0
  35. package/dist/cjs/test/agent.cjs +485 -0
  36. package/dist/cjs/test/agent.d.cts +2 -0
  37. package/dist/cjs/test/agent.js.map +1 -0
  38. package/dist/cjs/test/mocks.cjs +153 -0
  39. package/dist/cjs/test/mocks.d.cts +25 -0
  40. package/dist/cjs/test/mocks.js.map +1 -0
  41. package/dist/cjs/tsconfig.3903caa3.tsbuildinfo +1 -0
  42. package/dist/cjs/tsconfig.a5854dc7.tsbuildinfo +1 -0
  43. package/dist/clients/client.d.ts +1 -4
  44. package/dist/clients/client.js +12 -1
  45. package/dist/clients/client.js.map +1 -0
  46. package/dist/clients/entitlement.d.ts +26 -0
  47. package/dist/clients/entitlement.js +23 -0
  48. package/dist/clients/entitlement.js.map +1 -0
  49. package/dist/clients/event.d.ts +5 -5
  50. package/dist/clients/event.js +29 -18
  51. package/dist/clients/event.js.map +1 -0
  52. package/dist/clients/feature.d.ts +46 -0
  53. package/dist/clients/feature.js +76 -0
  54. package/dist/clients/feature.js.map +1 -0
  55. package/dist/clients/grant.d.ts +24 -0
  56. package/dist/clients/grant.js +37 -0
  57. package/dist/clients/grant.js.map +1 -0
  58. package/dist/clients/meter.d.ts +13 -30
  59. package/dist/clients/meter.js +15 -0
  60. package/dist/clients/meter.js.map +1 -0
  61. package/dist/clients/pagination.d.ts +6 -0
  62. package/dist/clients/pagination.js +2 -0
  63. package/dist/clients/pagination.js.map +1 -0
  64. package/dist/clients/portal.d.ts +22 -0
  65. package/dist/clients/portal.js +37 -0
  66. package/dist/clients/portal.js.map +1 -0
  67. package/dist/clients/subject.d.ts +125 -0
  68. package/dist/clients/subject.js +238 -0
  69. package/dist/clients/subject.js.map +1 -0
  70. package/dist/index.d.ts +11 -2
  71. package/dist/index.js +16 -1
  72. package/dist/index.js.map +1 -0
  73. package/dist/schemas/openapi.d.ts +2754 -166
  74. package/dist/schemas/openapi.js +1 -0
  75. package/dist/schemas/openapi.js.map +1 -0
  76. package/dist/test/agent.js +327 -29
  77. package/dist/test/agent.js.map +1 -0
  78. package/dist/test/mocks.d.ts +13 -0
  79. package/dist/test/mocks.js +118 -0
  80. package/dist/test/mocks.js.map +1 -0
  81. package/dist/tsconfig.tsbuildinfo +1 -1
  82. package/package.json +40 -30
  83. package/dist/next.d.ts +0 -15
  84. package/dist/next.js +0 -46
  85. package/index.ts +0 -19
  86. package/next.ts +0 -76
@@ -3,3 +3,4 @@
3
3
  * Do not make direct changes to the file.
4
4
  */
5
5
  export {};
6
+ //# sourceMappingURL=openapi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openapi.js","sourceRoot":"","sources":["../../schemas/openapi.ts"],"names":[],"mappings":"AAAA;;;GAGG"}
@@ -1,8 +1,9 @@
1
1
  import { MockAgent } from 'undici';
2
- import { mockEvent, mockMeter, mockMeterValue } 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');
6
+ /** Event */
6
7
  client
7
8
  .intercept({
8
9
  path: '/api/v1/events',
@@ -24,6 +25,30 @@ client
24
25
  }),
25
26
  })
26
27
  .reply(204);
28
+ // Batch ingest
29
+ client
30
+ .intercept({
31
+ path: '/api/v1/events',
32
+ method: 'POST',
33
+ headers: {
34
+ Accept: 'application/json',
35
+ 'Content-Type': 'application/cloudevents-batch+json',
36
+ },
37
+ body: JSON.stringify([
38
+ {
39
+ specversion: '1.0',
40
+ id: 'id-1',
41
+ source: 'my-app',
42
+ type: 'my-type',
43
+ subject: 'my-awesome-user-id',
44
+ time: new Date('2023-01-01'),
45
+ data: {
46
+ api_calls: 1,
47
+ },
48
+ },
49
+ ]),
50
+ })
51
+ .reply(204);
27
52
  client
28
53
  .intercept({
29
54
  path: `/api/v1/events`,
@@ -32,7 +57,11 @@ client
32
57
  Accept: 'application/json',
33
58
  },
34
59
  })
35
- .reply(200, [mockEvent], {
60
+ .reply(200, [
61
+ {
62
+ event: mockEvent,
63
+ },
64
+ ], {
36
65
  headers: {
37
66
  'Content-Type': 'application/json',
38
67
  },
@@ -57,6 +86,22 @@ client
57
86
  }),
58
87
  })
59
88
  .reply(204);
89
+ /** Meter */
90
+ client
91
+ .intercept({
92
+ path: '/api/v1/meters',
93
+ method: 'POST',
94
+ headers: {
95
+ Accept: 'application/json',
96
+ 'Content-Type': 'application/json',
97
+ },
98
+ body: JSON.stringify(mockMeter),
99
+ })
100
+ .reply(201, mockMeter, {
101
+ headers: {
102
+ 'Content-Type': 'application/json',
103
+ },
104
+ });
60
105
  client
61
106
  .intercept({
62
107
  path: '/api/v1/meters',
@@ -83,10 +128,10 @@ client
83
128
  'Content-Type': 'application/json',
84
129
  },
85
130
  });
86
- /** Meter Values */
131
+ /** Meter Query */
87
132
  client
88
133
  .intercept({
89
- path: `/api/v1/meters/${mockMeter.slug}/values`,
134
+ path: `/api/v1/meters/${mockMeter.slug}/query`,
90
135
  query: {},
91
136
  method: 'GET',
92
137
  headers: {
@@ -94,6 +139,8 @@ client
94
139
  },
95
140
  })
96
141
  .reply(200, {
142
+ from: mockMeterValue.windowStart,
143
+ to: mockMeterValue.windowEnd,
97
144
  windowSize: 'HOUR',
98
145
  data: [mockMeterValue],
99
146
  }, {
@@ -103,12 +150,14 @@ client
103
150
  });
104
151
  client
105
152
  .intercept({
106
- path: `/api/v1/meters/${mockMeter.slug}/values`,
153
+ path: `/api/v1/meters/${mockMeter.slug}/query`,
107
154
  query: {
108
155
  subject: 'user-1',
156
+ groupBy: ['a', 'b'],
109
157
  from: new Date('2021-01-01').toISOString(),
110
158
  to: new Date('2021-01-02').toISOString(),
111
159
  windowSize: 'HOUR',
160
+ 'filterGroupBy[model]': 'gpt-4',
112
161
  },
113
162
  method: 'GET',
114
163
  headers: {
@@ -116,6 +165,8 @@ client
116
165
  },
117
166
  })
118
167
  .reply(200, {
168
+ from: mockMeterValue.windowStart,
169
+ to: mockMeterValue.windowEnd,
119
170
  windowSize: 'HOUR',
120
171
  data: [mockMeterValue],
121
172
  }, {
@@ -123,21 +174,36 @@ client
123
174
  'Content-Type': 'application/json',
124
175
  },
125
176
  });
126
- /** Meter Query */
177
+ /** Meter Subjects */
127
178
  client
128
179
  .intercept({
129
- path: `/api/v1/meters/${mockMeter.slug}/query`,
130
- query: {},
180
+ path: `/api/v1/meters/${mockMeter.slug}/subjects`,
131
181
  method: 'GET',
132
182
  headers: {
133
183
  Accept: 'application/json',
134
184
  },
135
185
  })
136
- .reply(200, {
137
- from: mockMeterValue.windowStart,
138
- to: mockMeterValue.windowEnd,
139
- windowSize: 'HOUR',
140
- data: [mockMeterValue],
186
+ .reply(200, [mockMeterValue.subject], {
187
+ headers: {
188
+ 'Content-Type': 'application/json',
189
+ },
190
+ });
191
+ /** Portal */
192
+ client
193
+ .intercept({
194
+ path: '/api/v1/portal/tokens',
195
+ method: 'POST',
196
+ headers: {
197
+ Accept: 'application/json',
198
+ 'Content-Type': 'application/json',
199
+ },
200
+ body: JSON.stringify({
201
+ subject: 'customer-1',
202
+ }),
203
+ })
204
+ .reply(201, {
205
+ subject: 'customer-1',
206
+ expiresAt: new Date('2023-01-01'),
141
207
  }, {
142
208
  headers: {
143
209
  'Content-Type': 'application/json',
@@ -145,40 +211,272 @@ client
145
211
  });
146
212
  client
147
213
  .intercept({
148
- path: `/api/v1/meters/${mockMeter.slug}/query`,
149
- query: {
150
- subject: 'user-1',
151
- groupBy: 'a,b',
152
- from: new Date('2021-01-01').toISOString(),
153
- to: new Date('2021-01-02').toISOString(),
154
- windowSize: 'HOUR',
214
+ path: '/api/v1/portal/tokens/invalidate',
215
+ method: 'POST',
216
+ headers: {
217
+ Accept: 'application/json',
218
+ 'Content-Type': 'application/json',
155
219
  },
220
+ body: JSON.stringify({}),
221
+ })
222
+ .reply(204);
223
+ /** Subjects */
224
+ client
225
+ .intercept({
226
+ path: '/api/v1/subjects',
227
+ method: 'POST',
228
+ headers: {
229
+ Accept: 'application/json',
230
+ 'Content-Type': 'application/json',
231
+ },
232
+ body: JSON.stringify([
233
+ {
234
+ key: mockSubject.key,
235
+ displayName: mockSubject.displayName,
236
+ metadata: mockSubject.metadata,
237
+ },
238
+ ]),
239
+ })
240
+ .reply(200, [mockSubject], {
241
+ headers: {
242
+ 'Content-Type': 'application/json',
243
+ },
244
+ });
245
+ client
246
+ .intercept({
247
+ path: '/api/v1/subjects',
156
248
  method: 'GET',
157
249
  headers: {
158
250
  Accept: 'application/json',
159
251
  },
160
252
  })
161
- .reply(200, {
162
- from: mockMeterValue.windowStart,
163
- to: mockMeterValue.windowEnd,
164
- windowSize: 'HOUR',
165
- data: [mockMeterValue],
166
- }, {
253
+ .reply(200, [mockSubject], {
167
254
  headers: {
168
255
  'Content-Type': 'application/json',
169
256
  },
170
257
  });
171
- /** Meter Subjects */
172
258
  client
173
259
  .intercept({
174
- path: `/api/v1/meters/${mockMeter.slug}/subjects`,
260
+ path: `/api/v1/subjects/${mockSubject.key}`,
175
261
  method: 'GET',
176
262
  headers: {
177
263
  Accept: 'application/json',
178
264
  },
179
265
  })
180
- .reply(200, [mockMeterValue.subject], {
266
+ .reply(200, mockSubject, {
267
+ headers: {
268
+ 'Content-Type': 'application/json',
269
+ },
270
+ });
271
+ client
272
+ .intercept({
273
+ path: `/api/v1/subjects/${mockSubject.key}`,
274
+ method: 'DELETE',
275
+ headers: {
276
+ Accept: 'application/json',
277
+ },
278
+ })
279
+ .reply(204);
280
+ /** Subject Entitlements */
281
+ client
282
+ .intercept({
283
+ path: `/api/v1/subjects/${mockSubject.key}/entitlements`,
284
+ method: 'POST',
285
+ headers: {
286
+ Accept: 'application/json',
287
+ 'Content-Type': 'application/json',
288
+ },
289
+ body: JSON.stringify(mockCreateEntitlementInput),
290
+ })
291
+ .reply(201, mockEntitlement, {
292
+ headers: {
293
+ 'Content-Type': 'application/json',
294
+ },
295
+ });
296
+ client
297
+ .intercept({
298
+ path: `/api/v1/subjects/${mockSubject.key}/entitlements`,
299
+ method: 'GET',
300
+ headers: {
301
+ Accept: 'application/json',
302
+ },
303
+ })
304
+ .reply(200, [mockEntitlement], {
305
+ headers: {
306
+ 'Content-Type': 'application/json',
307
+ },
308
+ });
309
+ client
310
+ .intercept({
311
+ path: `/api/v1/subjects/${mockSubject.key}/entitlements/${mockFeature.key}`,
312
+ method: 'GET',
313
+ headers: {
314
+ Accept: 'application/json',
315
+ },
316
+ })
317
+ .reply(200, mockEntitlement, {
318
+ headers: {
319
+ 'Content-Type': 'application/json',
320
+ },
321
+ });
322
+ client
323
+ .intercept({
324
+ path: `/api/v1/subjects/${mockSubject.key}/entitlements/${mockFeature.key}`,
325
+ method: 'DELETE',
326
+ headers: {
327
+ Accept: 'application/json',
328
+ },
329
+ })
330
+ .reply(204);
331
+ client
332
+ .intercept({
333
+ path: `/api/v1/subjects/${mockSubject.key}/entitlements/${mockFeature.key}/value`,
334
+ method: 'GET',
335
+ headers: {
336
+ Accept: 'application/json',
337
+ },
338
+ })
339
+ .reply(200, mockEntitlementValue, {
340
+ headers: {
341
+ 'Content-Type': 'application/json',
342
+ },
343
+ });
344
+ client
345
+ .intercept({
346
+ path: `/api/v1/subjects/${mockSubject.key}/entitlements/${mockFeature.key}/history`,
347
+ method: 'GET',
348
+ headers: {
349
+ Accept: 'application/json',
350
+ },
351
+ })
352
+ .reply(200, mockWindowedBalanceHistory, {
353
+ headers: {
354
+ 'Content-Type': 'application/json',
355
+ },
356
+ });
357
+ client
358
+ .intercept({
359
+ path: `/api/v1/subjects/${mockSubject.key}/entitlements/${mockFeature.key}/reset`,
360
+ method: 'POST',
361
+ headers: {
362
+ Accept: 'application/json',
363
+ 'Content-Type': 'application/json',
364
+ },
365
+ body: JSON.stringify({
366
+ retainAnchor: true,
367
+ }),
368
+ })
369
+ .reply(204, mockEntitlement, {
370
+ headers: {
371
+ 'Content-Type': 'application/json',
372
+ },
373
+ });
374
+ /** Subject Entitlement Grants */
375
+ client
376
+ .intercept({
377
+ path: `/api/v1/subjects/${mockSubject.key}/entitlements/${mockFeature.key}/grants`,
378
+ method: 'POST',
379
+ headers: {
380
+ Accept: 'application/json',
381
+ 'Content-Type': 'application/json',
382
+ },
383
+ body: JSON.stringify(mockEntitlementGrantCreateInput),
384
+ })
385
+ .reply(201, mockEntitlementGrant, {
386
+ headers: {
387
+ 'Content-Type': 'application/json',
388
+ },
389
+ });
390
+ client
391
+ .intercept({
392
+ path: `/api/v1/subjects/${mockSubject.key}/entitlements/${mockFeature.key}/grants`,
393
+ method: 'GET',
394
+ headers: {
395
+ Accept: 'application/json',
396
+ },
397
+ })
398
+ .reply(200, [mockEntitlementGrant], {
399
+ headers: {
400
+ 'Content-Type': 'application/json',
401
+ },
402
+ });
403
+ /** Features */
404
+ client
405
+ .intercept({
406
+ path: '/api/v1/features',
407
+ method: 'POST',
408
+ headers: {
409
+ Accept: 'application/json',
410
+ 'Content-Type': 'application/json',
411
+ },
412
+ body: JSON.stringify(mockCreateFeatureInput),
413
+ })
414
+ .reply(201, mockFeature, {
415
+ headers: {
416
+ 'Content-Type': 'application/json',
417
+ },
418
+ });
419
+ client
420
+ .intercept({
421
+ path: '/api/v1/features',
422
+ method: 'GET',
423
+ headers: {
424
+ Accept: 'application/json',
425
+ },
426
+ })
427
+ .reply(200, [mockFeature], {
428
+ headers: {
429
+ 'Content-Type': 'application/json',
430
+ },
431
+ });
432
+ client
433
+ .intercept({
434
+ path: `/api/v1/features/${mockFeature.key}`,
435
+ method: 'GET',
436
+ headers: {
437
+ Accept: 'application/json',
438
+ },
439
+ })
440
+ .reply(200, mockFeature, {
441
+ headers: {
442
+ 'Content-Type': 'application/json',
443
+ },
444
+ });
445
+ client
446
+ .intercept({
447
+ path: `/api/v1/features/${mockFeature.key}`,
448
+ method: 'DELETE',
449
+ headers: {
450
+ Accept: 'application/json',
451
+ },
452
+ })
453
+ .reply(204);
454
+ /** Entitlements */
455
+ client
456
+ .intercept({
457
+ path: '/api/v1/entitlements',
458
+ method: 'GET',
459
+ headers: {
460
+ Accept: 'application/json',
461
+ },
462
+ })
463
+ .reply(200, [mockEntitlement], {
464
+ headers: {
465
+ 'Content-Type': 'application/json',
466
+ },
467
+ });
468
+ /** Grants */
469
+ client
470
+ .intercept({
471
+ path: '/api/v1/grants',
472
+ method: 'GET',
473
+ headers: {
474
+ Accept: 'application/json',
475
+ },
476
+ })
477
+ .reply(200, [mockEntitlementGrant], {
181
478
  headers: {
182
479
  'Content-Type': 'application/json',
183
480
  },
184
481
  });
482
+ //# sourceMappingURL=agent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent.js","sourceRoot":"","sources":["../../test/agent.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,7 @@
1
+ import { Entitlement, EntitlementCreateInputs, EntitlementValue, WindowedBalanceHistory } from '../clients/entitlement.js';
2
+ import { Feature, FeatureCreateInputs } from '../clients/feature.js';
3
+ import { EntitlementGrant, EntitlementGrantCreateInput } from '../clients/grant.js';
4
+ import { Subject } from '../clients/subject.js';
1
5
  import { Event, Meter } from '../index.js';
2
6
  export declare const mockEvent: Event;
3
7
  export declare const mockMeter: Meter;
@@ -10,3 +14,12 @@ export declare const mockMeterValue: {
10
14
  method: string;
11
15
  };
12
16
  };
17
+ export declare const mockSubject: Subject;
18
+ export declare const mockCreateFeatureInput: FeatureCreateInputs;
19
+ export declare const mockFeature: Feature;
20
+ export declare const mockCreateEntitlementInput: EntitlementCreateInputs;
21
+ export declare const mockEntitlement: Entitlement;
22
+ export declare const mockEntitlementValue: EntitlementValue;
23
+ export declare const mockWindowedBalanceHistory: WindowedBalanceHistory;
24
+ export declare const mockEntitlementGrantCreateInput: EntitlementGrantCreateInput;
25
+ export declare const mockEntitlementGrant: EntitlementGrant;
@@ -30,3 +30,121 @@ export const mockMeterValue = {
30
30
  method: 'GET',
31
31
  },
32
32
  };
33
+ export const mockSubject = {
34
+ id: 'abcde',
35
+ key: 'customer-1',
36
+ displayName: 'Customer 1',
37
+ metadata: {
38
+ foo: 'bar',
39
+ },
40
+ };
41
+ export const mockCreateFeatureInput = {
42
+ key: 'ai_tokens',
43
+ name: 'AI Tokens',
44
+ meterSlug: 'tokens_total',
45
+ };
46
+ export const mockFeature = {
47
+ ...mockCreateFeatureInput,
48
+ id: 'feature-1',
49
+ createdAt: '2024-01-01T00:00:00Z',
50
+ updatedAt: '2024-01-01T00:00:00Z',
51
+ };
52
+ export const mockCreateEntitlementInput = {
53
+ type: 'metered',
54
+ featureKey: mockFeature.key,
55
+ usagePeriod: {
56
+ interval: 'MONTH',
57
+ },
58
+ issueAfterReset: 10000000,
59
+ };
60
+ export const mockEntitlement = {
61
+ type: 'metered',
62
+ id: 'entitlement-1',
63
+ featureId: mockFeature.id,
64
+ featureKey: mockFeature.key,
65
+ subjectKey: mockSubject.key,
66
+ usagePeriod: {
67
+ interval: mockCreateEntitlementInput.usagePeriod.interval,
68
+ anchor: '2024-01-01T00:00:00Z',
69
+ },
70
+ currentUsagePeriod: {
71
+ from: '2024-01-01T00:00:00Z',
72
+ to: '2024-01-01T00:00:00Z',
73
+ },
74
+ measureUsageFrom: '2024-01-01T00:00:00Z',
75
+ issueAfterReset: mockCreateEntitlementInput.issueAfterReset,
76
+ lastReset: '2024-01-01T00:00:00Z',
77
+ createdAt: '2024-01-01T00:00:00Z',
78
+ updatedAt: '2024-01-01T00:00:00Z',
79
+ };
80
+ export const mockEntitlementValue = {
81
+ hasAccess: true,
82
+ usage: 100,
83
+ balance: 900,
84
+ overage: 0,
85
+ };
86
+ export const mockWindowedBalanceHistory = {
87
+ windowedHistory: [
88
+ {
89
+ period: {
90
+ from: '2024-01-01T00:00:00Z',
91
+ to: '2024-01-01T00:00:00Z',
92
+ },
93
+ usage: 100,
94
+ balanceAtStart: 100,
95
+ },
96
+ ],
97
+ burndownHistory: [
98
+ {
99
+ period: {
100
+ from: '2024-01-01T00:00:00Z',
101
+ to: '2024-01-01T00:00:00Z',
102
+ },
103
+ usage: 100,
104
+ overage: 25,
105
+ balanceAtStart: 100,
106
+ grantBalancesAtStart: {
107
+ '01ARZ3NDEKTSV4RRFFQ69G5FAV': 100,
108
+ },
109
+ balanceAtEnd: 100,
110
+ grantBalancesAtEnd: {
111
+ '01ARZ3NDEKTSV4RRFFQ69G5FAV': 100,
112
+ },
113
+ grantUsages: [
114
+ {
115
+ grantId: '01ARZ3NDEKTSV4RRFFQ69G5FAV',
116
+ usage: 100,
117
+ },
118
+ ],
119
+ },
120
+ ],
121
+ };
122
+ export const mockEntitlementGrantCreateInput = {
123
+ amount: 100,
124
+ priority: 1,
125
+ effectiveAt: '2023-01-01T00:00:00Z',
126
+ expiration: {
127
+ duration: 'HOUR',
128
+ count: 12,
129
+ },
130
+ minRolloverAmount: 100,
131
+ maxRolloverAmount: 100,
132
+ recurrence: {
133
+ interval: 'MONTH',
134
+ anchor: '2024-06-28T18:29:44.867Z',
135
+ },
136
+ };
137
+ export const mockEntitlementGrant = {
138
+ ...mockEntitlementGrantCreateInput,
139
+ recurrence: {
140
+ interval: 'MONTH',
141
+ anchor: '2024-06-28T18:29:44.867Z',
142
+ },
143
+ id: '01ARZ3NDEKTSV4RRFFQ69G5FAV',
144
+ entitlementId: mockEntitlement.id,
145
+ nextRecurrence: '2023-01-01T00:00:00Z',
146
+ expiresAt: '2023-01-01T00:00:00Z',
147
+ createdAt: '2023-01-01T00:00:00Z',
148
+ updatedAt: '2023-01-01T00:00:00Z',
149
+ };
150
+ //# sourceMappingURL=mocks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mocks.js","sourceRoot":"","sources":["../../test/mocks.ts"],"names":[],"mappings":"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"}