@openmeter/sdk 1.0.0-beta.6 → 1.0.0-beta.62

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 (60) hide show
  1. package/README.md +76 -1
  2. package/dist/cjs/clients/client.js +194 -0
  3. package/dist/cjs/clients/client.js.map +1 -0
  4. package/dist/cjs/clients/event.js +137 -0
  5. package/dist/cjs/clients/event.js.map +1 -0
  6. package/dist/cjs/clients/meter.js +139 -0
  7. package/dist/cjs/clients/meter.js.map +1 -0
  8. package/dist/cjs/clients/portal.js +109 -0
  9. package/dist/cjs/clients/portal.js.map +1 -0
  10. package/dist/cjs/clients/subject.js +141 -0
  11. package/dist/cjs/clients/subject.js.map +1 -0
  12. package/dist/cjs/index.js +21 -0
  13. package/dist/cjs/index.js.map +1 -0
  14. package/dist/cjs/schemas/openapi.js +7 -0
  15. package/dist/cjs/schemas/openapi.js.map +1 -0
  16. package/dist/cjs/test/agent.js +266 -0
  17. package/dist/cjs/test/agent.js.map +1 -0
  18. package/dist/cjs/test/mocks.js +44 -0
  19. package/dist/cjs/test/mocks.js.map +1 -0
  20. package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -0
  21. package/dist/esm/clients/client.js +191 -0
  22. package/dist/esm/clients/client.js.map +1 -0
  23. package/dist/esm/clients/event.js +131 -0
  24. package/dist/esm/clients/event.js.map +1 -0
  25. package/dist/esm/clients/meter.js +136 -0
  26. package/dist/esm/clients/meter.js.map +1 -0
  27. package/dist/esm/clients/portal.js +106 -0
  28. package/dist/esm/clients/portal.js.map +1 -0
  29. package/dist/esm/clients/subject.js +138 -0
  30. package/dist/esm/clients/subject.js.map +1 -0
  31. package/dist/esm/index.js +16 -0
  32. package/dist/esm/index.js.map +1 -0
  33. package/dist/{schemas → esm/schemas}/openapi.js +1 -0
  34. package/dist/esm/schemas/openapi.js.map +1 -0
  35. package/dist/{test → esm/test}/agent.js +123 -31
  36. package/dist/esm/test/agent.js.map +1 -0
  37. package/dist/esm/test/mocks.js +41 -0
  38. package/dist/esm/test/mocks.js.map +1 -0
  39. package/dist/esm/tsconfig.esm.tsbuildinfo +1 -0
  40. package/dist/{clients → types/clients}/client.d.ts +2 -3
  41. package/dist/{clients → types/clients}/event.d.ts +16 -2
  42. package/dist/{clients → types/clients}/meter.d.ts +12 -32
  43. package/dist/types/clients/portal.d.ts +22 -0
  44. package/dist/types/clients/subject.d.ts +27 -0
  45. package/dist/{index.d.ts → types/index.d.ts} +6 -2
  46. package/dist/types/schemas/openapi.d.ts +990 -0
  47. package/dist/{test → types/test}/mocks.d.ts +4 -1
  48. package/index.ts +8 -7
  49. package/package.json +37 -33
  50. package/tsconfig.base.json +24 -0
  51. package/tsconfig.cjs.json +8 -0
  52. package/tsconfig.esm.json +8 -0
  53. package/dist/clients/client.js +0 -104
  54. package/dist/clients/event.js +0 -39
  55. package/dist/clients/meter.js +0 -79
  56. package/dist/index.js +0 -11
  57. package/dist/schemas/openapi.d.ts +0 -505
  58. package/dist/test/mocks.js +0 -21
  59. package/dist/tsconfig.tsbuildinfo +0 -1
  60. /package/dist/{test → types/test}/agent.d.ts +0 -0
@@ -0,0 +1,109 @@
1
+ "use strict";
2
+ var __extends = (this && this.__extends) || (function () {
3
+ var extendStatics = function (d, b) {
4
+ extendStatics = Object.setPrototypeOf ||
5
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
7
+ return extendStatics(d, b);
8
+ };
9
+ return function (d, b) {
10
+ if (typeof b !== "function" && b !== null)
11
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
12
+ extendStatics(d, b);
13
+ function __() { this.constructor = d; }
14
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
+ };
16
+ })();
17
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
18
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
19
+ return new (P || (P = Promise))(function (resolve, reject) {
20
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
21
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
22
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
23
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
24
+ });
25
+ };
26
+ var __generator = (this && this.__generator) || function (thisArg, body) {
27
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
28
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
29
+ function verb(n) { return function (v) { return step([n, v]); }; }
30
+ function step(op) {
31
+ if (f) throw new TypeError("Generator is already executing.");
32
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
33
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
34
+ if (y = 0, t) op = [op[0] & 2, t.value];
35
+ switch (op[0]) {
36
+ case 0: case 1: t = op; break;
37
+ case 4: _.label++; return { value: op[1], done: false };
38
+ case 5: _.label++; y = op[1]; op = [0]; continue;
39
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
40
+ default:
41
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
42
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
43
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
44
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
45
+ if (t[2]) _.ops.pop();
46
+ _.trys.pop(); continue;
47
+ }
48
+ op = body.call(thisArg, _);
49
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
50
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
51
+ }
52
+ };
53
+ Object.defineProperty(exports, "__esModule", { value: true });
54
+ exports.PortalClient = void 0;
55
+ var client_js_1 = require("./client.js");
56
+ var PortalClient = /** @class */ (function (_super) {
57
+ __extends(PortalClient, _super);
58
+ function PortalClient(config) {
59
+ return _super.call(this, config) || this;
60
+ }
61
+ /**
62
+ * Create portal token
63
+ * Useful for creating a token sharable with your customer to query their own usage
64
+ */
65
+ PortalClient.prototype.createToken = function (token, options) {
66
+ return __awaiter(this, void 0, void 0, function () {
67
+ return __generator(this, function (_a) {
68
+ switch (_a.label) {
69
+ case 0: return [4 /*yield*/, this.request({
70
+ path: '/api/v1/portal/tokens',
71
+ method: 'POST',
72
+ headers: {
73
+ 'Content-Type': 'application/json',
74
+ },
75
+ body: JSON.stringify(token),
76
+ options: options,
77
+ })];
78
+ case 1: return [2 /*return*/, _a.sent()];
79
+ }
80
+ });
81
+ });
82
+ };
83
+ /**
84
+ * Invalidate portal token
85
+ * @note OpenMeter Cloud only feature
86
+ */
87
+ PortalClient.prototype.invalidateTokens = function () {
88
+ return __awaiter(this, arguments, void 0, function (invalidate, options) {
89
+ if (invalidate === void 0) { invalidate = {}; }
90
+ return __generator(this, function (_a) {
91
+ switch (_a.label) {
92
+ case 0: return [4 /*yield*/, this.request({
93
+ path: '/api/v1/portal/tokens/invalidate',
94
+ method: 'POST',
95
+ headers: {
96
+ 'Content-Type': 'application/json',
97
+ },
98
+ body: JSON.stringify(invalidate),
99
+ options: options,
100
+ })];
101
+ case 1: return [2 /*return*/, _a.sent()];
102
+ }
103
+ });
104
+ });
105
+ };
106
+ return PortalClient;
107
+ }(client_js_1.BaseClient));
108
+ exports.PortalClient = PortalClient;
109
+ //# sourceMappingURL=portal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"portal.js","sourceRoot":"","sources":["../../../clients/portal.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,yCAAyE;AAIzE;IAAkC,gCAAU;IAC1C,sBAAY,MAAuB;QACjC,OAAA,MAAK,YAAC,MAAM,CAAC,SAAA;IACf,CAAC;IAED;;;OAGG;IACU,kCAAW,GAAxB,UACE,KAIC,EACD,OAAwB;;;;4BAEjB,qBAAM,IAAI,CAAC,OAAO,CAAC;4BACxB,IAAI,EAAE,uBAAuB;4BAC7B,MAAM,EAAE,MAAM;4BACd,OAAO,EAAE;gCACP,cAAc,EAAE,kBAAkB;6BACnC;4BACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;4BAC3B,OAAO,SAAA;yBACR,CAAC,EAAA;4BARF,sBAAO,SAQL,EAAA;;;;KACH;IAED;;;OAGG;IACU,uCAAgB,GAA7B;4DACE,UAAqC,EACrC,OAAwB;YADxB,2BAAA,EAAA,eAAqC;;;4BAG9B,qBAAM,IAAI,CAAC,OAAO,CAAC;4BACxB,IAAI,EAAE,kCAAkC;4BACxC,MAAM,EAAE,MAAM;4BACd,OAAO,EAAE;gCACP,cAAc,EAAE,kBAAkB;6BACnC;4BACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC;4BAChC,OAAO,SAAA;yBACR,CAAC,EAAA;4BARF,sBAAO,SAQL,EAAA;;;;KACH;IACH,mBAAC;AAAD,CAAC,AA9CD,CAAkC,sBAAU,GA8C3C;AA9CY,oCAAY"}
@@ -0,0 +1,141 @@
1
+ "use strict";
2
+ var __extends = (this && this.__extends) || (function () {
3
+ var extendStatics = function (d, b) {
4
+ extendStatics = Object.setPrototypeOf ||
5
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
7
+ return extendStatics(d, b);
8
+ };
9
+ return function (d, b) {
10
+ if (typeof b !== "function" && b !== null)
11
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
12
+ extendStatics(d, b);
13
+ function __() { this.constructor = d; }
14
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
15
+ };
16
+ })();
17
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
18
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
19
+ return new (P || (P = Promise))(function (resolve, reject) {
20
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
21
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
22
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
23
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
24
+ });
25
+ };
26
+ var __generator = (this && this.__generator) || function (thisArg, body) {
27
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
28
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
29
+ function verb(n) { return function (v) { return step([n, v]); }; }
30
+ function step(op) {
31
+ if (f) throw new TypeError("Generator is already executing.");
32
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
33
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
34
+ if (y = 0, t) op = [op[0] & 2, t.value];
35
+ switch (op[0]) {
36
+ case 0: case 1: t = op; break;
37
+ case 4: _.label++; return { value: op[1], done: false };
38
+ case 5: _.label++; y = op[1]; op = [0]; continue;
39
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
40
+ default:
41
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
42
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
43
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
44
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
45
+ if (t[2]) _.ops.pop();
46
+ _.trys.pop(); continue;
47
+ }
48
+ op = body.call(thisArg, _);
49
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
50
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
51
+ }
52
+ };
53
+ Object.defineProperty(exports, "__esModule", { value: true });
54
+ exports.SubjectClient = void 0;
55
+ var client_js_1 = require("./client.js");
56
+ var SubjectClient = /** @class */ (function (_super) {
57
+ __extends(SubjectClient, _super);
58
+ function SubjectClient(config) {
59
+ return _super.call(this, config) || this;
60
+ }
61
+ /**
62
+ * Upsert subject
63
+ * Useful to map display name and metadata to subjects
64
+ * @note OpenMeter Cloud only feature
65
+ */
66
+ SubjectClient.prototype.upsert = function (subject, options) {
67
+ return __awaiter(this, void 0, void 0, function () {
68
+ return __generator(this, function (_a) {
69
+ switch (_a.label) {
70
+ case 0: return [4 /*yield*/, this.request({
71
+ path: '/api/v1/subjects',
72
+ method: 'POST',
73
+ headers: {
74
+ 'Content-Type': 'application/json',
75
+ },
76
+ body: JSON.stringify(subject),
77
+ options: options,
78
+ })];
79
+ case 1: return [2 /*return*/, _a.sent()];
80
+ }
81
+ });
82
+ });
83
+ };
84
+ /**
85
+ * Get subject by id or key
86
+ * @note OpenMeter Cloud only feature
87
+ */
88
+ SubjectClient.prototype.get = function (idOrKey, options) {
89
+ return __awaiter(this, void 0, void 0, function () {
90
+ return __generator(this, function (_a) {
91
+ switch (_a.label) {
92
+ case 0: return [4 /*yield*/, this.request({
93
+ path: "/api/v1/subjects/".concat(idOrKey),
94
+ method: 'GET',
95
+ options: options,
96
+ })];
97
+ case 1: return [2 /*return*/, _a.sent()];
98
+ }
99
+ });
100
+ });
101
+ };
102
+ /**
103
+ * List subjects
104
+ * @note OpenMeter Cloud only feature
105
+ */
106
+ SubjectClient.prototype.list = function (options) {
107
+ return __awaiter(this, void 0, void 0, function () {
108
+ return __generator(this, function (_a) {
109
+ switch (_a.label) {
110
+ case 0: return [4 /*yield*/, this.request({
111
+ path: '/api/v1/subjects',
112
+ method: 'GET',
113
+ options: options,
114
+ })];
115
+ case 1: return [2 /*return*/, _a.sent()];
116
+ }
117
+ });
118
+ });
119
+ };
120
+ /**
121
+ * Delete subject by id or key
122
+ * @note OpenMeter Cloud only feature
123
+ */
124
+ SubjectClient.prototype.delete = function (idOrKey, options) {
125
+ return __awaiter(this, void 0, void 0, function () {
126
+ return __generator(this, function (_a) {
127
+ switch (_a.label) {
128
+ case 0: return [4 /*yield*/, this.request({
129
+ path: "/api/v1/subjects/".concat(idOrKey),
130
+ method: 'DELETE',
131
+ options: options,
132
+ })];
133
+ case 1: return [2 /*return*/, _a.sent()];
134
+ }
135
+ });
136
+ });
137
+ };
138
+ return SubjectClient;
139
+ }(client_js_1.BaseClient));
140
+ exports.SubjectClient = SubjectClient;
141
+ //# sourceMappingURL=subject.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subject.js","sourceRoot":"","sources":["../../../clients/subject.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,yCAAyE;AAIzE;IAAmC,iCAAU;IAC3C,uBAAY,MAAuB;QACjC,OAAA,MAAK,YAAC,MAAM,CAAC,SAAA;IACf,CAAC;IAED;;;;OAIG;IACU,8BAAM,GAAnB,UACE,OAA8B,EAC9B,OAAwB;;;;4BAEjB,qBAAM,IAAI,CAAC,OAAO,CAAC;4BACxB,IAAI,EAAE,kBAAkB;4BACxB,MAAM,EAAE,MAAM;4BACd,OAAO,EAAE;gCACP,cAAc,EAAE,kBAAkB;6BACnC;4BACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;4BAC7B,OAAO,SAAA;yBACR,CAAC,EAAA;4BARF,sBAAO,SAQL,EAAA;;;;KACH;IAED;;;OAGG;IACU,2BAAG,GAAhB,UAAiB,OAAe,EAAE,OAAwB;;;;4BACjD,qBAAM,IAAI,CAAC,OAAO,CAAC;4BACxB,IAAI,EAAE,2BAAoB,OAAO,CAAE;4BACnC,MAAM,EAAE,KAAK;4BACb,OAAO,SAAA;yBACR,CAAC,EAAA;4BAJF,sBAAO,SAIL,EAAA;;;;KACH;IAED;;;OAGG;IACU,4BAAI,GAAjB,UAAkB,OAAwB;;;;4BACjC,qBAAM,IAAI,CAAC,OAAO,CAAC;4BACxB,IAAI,EAAE,kBAAkB;4BACxB,MAAM,EAAE,KAAK;4BACb,OAAO,SAAA;yBACR,CAAC,EAAA;4BAJF,sBAAO,SAIL,EAAA;;;;KACH;IAED;;;OAGG;IACU,8BAAM,GAAnB,UACE,OAAe,EACf,OAAwB;;;;4BAEjB,qBAAM,IAAI,CAAC,OAAO,CAAC;4BACxB,IAAI,EAAE,2BAAoB,OAAO,CAAE;4BACnC,MAAM,EAAE,QAAQ;4BAChB,OAAO,SAAA;yBACR,CAAC,EAAA;4BAJF,sBAAO,SAIL,EAAA;;;;KACH;IACH,oBAAC;AAAD,CAAC,AA/DD,CAAmC,sBAAU,GA+D5C;AA/DY,sCAAa"}
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.OpenMeter = exports.WindowSize = exports.MeterAggregation = void 0;
4
+ var event_js_1 = require("./clients/event.js");
5
+ var meter_js_1 = require("./clients/meter.js");
6
+ var portal_js_1 = require("./clients/portal.js");
7
+ var subject_js_1 = require("./clients/subject.js");
8
+ var meter_js_2 = require("./clients/meter.js");
9
+ Object.defineProperty(exports, "MeterAggregation", { enumerable: true, get: function () { return meter_js_2.MeterAggregation; } });
10
+ Object.defineProperty(exports, "WindowSize", { enumerable: true, get: function () { return meter_js_2.WindowSize; } });
11
+ var OpenMeter = /** @class */ (function () {
12
+ function OpenMeter(config) {
13
+ this.events = new event_js_1.EventsClient(config);
14
+ this.meters = new meter_js_1.MetersClient(config);
15
+ this.portal = new portal_js_1.PortalClient(config);
16
+ this.subjects = new subject_js_1.SubjectClient(config);
17
+ }
18
+ return OpenMeter;
19
+ }());
20
+ exports.OpenMeter = OpenMeter;
21
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../index.ts"],"names":[],"mappings":";;;AACA,+CAAiD;AACjD,+CAAiD;AACjD,iDAAkD;AAClD,mDAAoD;AAIpD,+CAAwE;AAAxD,4GAAA,gBAAgB,OAAA;AAAE,sGAAA,UAAU,OAAA;AAE5C;IAME,mBAAY,MAAuB;QACjC,IAAI,CAAC,MAAM,GAAG,IAAI,uBAAY,CAAC,MAAM,CAAC,CAAA;QACtC,IAAI,CAAC,MAAM,GAAG,IAAI,uBAAY,CAAC,MAAM,CAAC,CAAA;QACtC,IAAI,CAAC,MAAM,GAAG,IAAI,wBAAY,CAAC,MAAM,CAAC,CAAA;QACtC,IAAI,CAAC,QAAQ,GAAG,IAAI,0BAAa,CAAC,MAAM,CAAC,CAAA;IAC3C,CAAC;IACH,gBAAC;AAAD,CAAC,AAZD,IAYC;AAZY,8BAAS"}
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ /**
3
+ * This file was auto-generated by openapi-typescript.
4
+ * Do not make direct changes to the file.
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ //# sourceMappingURL=openapi.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"openapi.js","sourceRoot":"","sources":["../../../schemas/openapi.ts"],"names":[],"mappings":";AAAA;;;GAGG"}
@@ -0,0 +1,266 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.mockAgent = void 0;
4
+ var undici_1 = require("undici");
5
+ var mocks_js_1 = require("./mocks.js");
6
+ exports.mockAgent = new undici_1.MockAgent();
7
+ exports.mockAgent.disableNetConnect();
8
+ var 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/".concat(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/".concat(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/".concat(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/".concat(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
+ key: mocks_js_1.mockSubject.key,
222
+ displayName: mocks_js_1.mockSubject.displayName,
223
+ metadata: mocks_js_1.mockSubject.metadata,
224
+ }]),
225
+ })
226
+ .reply(200, [mocks_js_1.mockSubject], {
227
+ headers: {
228
+ 'Content-Type': 'application/json',
229
+ },
230
+ });
231
+ client
232
+ .intercept({
233
+ path: '/api/v1/subjects',
234
+ method: 'GET',
235
+ headers: {
236
+ Accept: 'application/json',
237
+ },
238
+ })
239
+ .reply(200, [mocks_js_1.mockSubject], {
240
+ headers: {
241
+ 'Content-Type': 'application/json',
242
+ },
243
+ });
244
+ client
245
+ .intercept({
246
+ path: '/api/v1/subjects/customer-1',
247
+ method: 'GET',
248
+ headers: {
249
+ Accept: 'application/json',
250
+ },
251
+ })
252
+ .reply(200, mocks_js_1.mockSubject, {
253
+ headers: {
254
+ 'Content-Type': 'application/json',
255
+ },
256
+ });
257
+ client
258
+ .intercept({
259
+ path: '/api/v1/subjects/customer-1',
260
+ method: 'DELETE',
261
+ headers: {
262
+ Accept: 'application/json',
263
+ },
264
+ })
265
+ .reply(204);
266
+ //# sourceMappingURL=agent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent.js","sourceRoot":"","sources":["../../../test/agent.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.mockSubject = exports.mockMeterValue = exports.mockMeter = exports.mockEvent = void 0;
4
+ var index_js_1 = require("../index.js");
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
+ //# sourceMappingURL=mocks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mocks.js","sourceRoot":"","sources":["../../../test/mocks.ts"],"names":[],"mappings":";;;AACA,wCAAsD;AAEzC,QAAA,SAAS,GAAU;IAC9B,WAAW,EAAE,KAAK;IAClB,EAAE,EAAE,MAAM;IACV,MAAM,EAAE,QAAQ;IAChB,IAAI,EAAE,SAAS;IACf,OAAO,EAAE,oBAAoB;IAC7B,IAAI,EAAE,IAAI,IAAI,CAAC,YAAY,CAAC;IAC5B,IAAI,EAAE;QACJ,SAAS,EAAE,CAAC;KACb;CACF,CAAA;AAEY,QAAA,SAAS,GAAU;IAC9B,IAAI,EAAE,IAAI;IACV,WAAW,EAAE,KAAK;IAClB,SAAS,EAAE,cAAc;IACzB,aAAa,EAAE,eAAe;IAC9B,UAAU,EAAE,qBAAU,CAAC,IAAI;IAC3B,OAAO,EAAE;QACP,MAAM,EAAE,UAAU;QAClB,IAAI,EAAE,QAAQ;KACf;CACF,CAAA;AAEY,QAAA,cAAc,GAAG;IAC5B,OAAO,EAAE,YAAY;IACrB,WAAW,EAAE,0BAA0B;IACvC,SAAS,EAAE,0BAA0B;IACrC,KAAK,EAAE,CAAC;IACR,OAAO,EAAE;QACP,MAAM,EAAE,KAAK;KACd;CACF,CAAA;AAEY,QAAA,WAAW,GAAY;IAClC,EAAE,EAAE,OAAO;IACX,GAAG,EAAE,YAAY;IACjB,WAAW,EAAE,YAAY;IACzB,QAAQ,EAAE;QACR,GAAG,EAAE,KAAK;KACX;CACF,CAAA"}