@openmeter/sdk 1.0.0-beta.1 → 1.0.0-beta.101

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