@openmeter/sdk 1.0.0-beta.9 → 1.0.0-beta.90
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.
- package/README.md +62 -50
- package/dist/cjs/clients/client.cjs +117 -0
- package/dist/cjs/clients/client.d.cts +40 -0
- package/dist/cjs/clients/client.js.map +1 -0
- package/dist/cjs/clients/event.cjs +71 -0
- package/dist/cjs/clients/event.d.cts +79 -0
- package/dist/cjs/clients/event.js.map +1 -0
- package/dist/cjs/clients/meter.cjs +69 -0
- package/dist/cjs/clients/meter.d.cts +75 -0
- package/dist/cjs/clients/meter.js.map +1 -0
- package/dist/cjs/clients/portal.cjs +41 -0
- package/dist/cjs/clients/portal.d.cts +22 -0
- package/dist/cjs/clients/portal.js.map +1 -0
- package/dist/cjs/clients/subject.cjs +60 -0
- package/dist/cjs/clients/subject.d.cts +27 -0
- package/dist/cjs/clients/subject.js.map +1 -0
- package/dist/cjs/index.cjs +24 -0
- package/dist/cjs/index.d.cts +15 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/schemas/openapi.cjs +7 -0
- package/dist/cjs/schemas/openapi.d.cts +1850 -0
- package/dist/cjs/schemas/openapi.js.map +1 -0
- package/dist/cjs/test/agent.cjs +266 -0
- package/dist/cjs/test/agent.d.cts +2 -0
- package/dist/cjs/test/agent.js.map +1 -0
- package/dist/cjs/test/mocks.cjs +44 -0
- package/dist/cjs/test/mocks.d.cts +14 -0
- package/dist/cjs/test/mocks.js.map +1 -0
- package/dist/cjs/tsconfig.acfee89b.tsbuildinfo +1 -0
- package/dist/cjs/tsconfig.e6ebbd29.tsbuildinfo +1 -0
- package/dist/clients/client.d.ts +1 -1
- package/dist/clients/client.js +9 -1
- package/dist/clients/client.js.map +1 -0
- package/dist/clients/event.d.ts +5 -5
- package/dist/clients/event.js +29 -18
- package/dist/clients/event.js.map +1 -0
- package/dist/clients/meter.d.ts +9 -37
- package/dist/clients/meter.js +1 -15
- package/dist/clients/meter.js.map +1 -0
- package/dist/clients/portal.d.ts +22 -0
- package/dist/clients/portal.js +37 -0
- package/dist/clients/portal.js.map +1 -0
- package/dist/clients/subject.d.ts +27 -0
- package/dist/clients/subject.js +56 -0
- package/dist/clients/subject.js.map +1 -0
- package/dist/index.d.ts +6 -3
- package/dist/index.js +8 -2
- package/dist/index.js.map +1 -0
- package/dist/schemas/openapi.d.ts +1561 -250
- package/dist/schemas/openapi.js +1 -0
- package/dist/schemas/openapi.js.map +1 -0
- package/dist/test/agent.js +108 -29
- package/dist/test/agent.js.map +1 -0
- package/dist/test/mocks.d.ts +2 -0
- package/dist/test/mocks.js +9 -0
- package/dist/test/mocks.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +43 -33
- package/dist/next.d.ts +0 -15
- package/dist/next.js +0 -46
- package/index.ts +0 -24
- package/next.ts +0 -76
package/dist/clients/client.d.ts
CHANGED
|
@@ -28,7 +28,7 @@ export declare class BaseClient {
|
|
|
28
28
|
}): Promise<T>;
|
|
29
29
|
protected getUrl(path: string, searchParams?: URLSearchParams): import("url").URL;
|
|
30
30
|
protected getAuthHeaders(): IncomingHttpHeaders;
|
|
31
|
-
protected static toURLSearchParams(params: Record<string, string | number | Date | string[] | undefined>): URLSearchParams;
|
|
31
|
+
protected static toURLSearchParams(params: Record<string, string | number | Date | string[] | Record<string, string> | undefined>): URLSearchParams;
|
|
32
32
|
}
|
|
33
33
|
export declare class HttpError extends Error {
|
|
34
34
|
statusCode: number;
|
package/dist/clients/client.js
CHANGED
|
@@ -80,11 +80,18 @@ export class BaseClient {
|
|
|
80
80
|
continue;
|
|
81
81
|
}
|
|
82
82
|
if (Array.isArray(value)) {
|
|
83
|
-
|
|
83
|
+
for (const item of value) {
|
|
84
|
+
searchParams.append(key, item);
|
|
85
|
+
}
|
|
84
86
|
}
|
|
85
87
|
else if (value instanceof Date) {
|
|
86
88
|
searchParams.append(key, value.toISOString());
|
|
87
89
|
}
|
|
90
|
+
else if (typeof value === 'object') {
|
|
91
|
+
Object.entries(value).forEach(([k, v]) => {
|
|
92
|
+
searchParams.append(`${key}[${k}]`, v);
|
|
93
|
+
});
|
|
94
|
+
}
|
|
88
95
|
else {
|
|
89
96
|
searchParams.append(key, value.toString());
|
|
90
97
|
}
|
|
@@ -102,3 +109,4 @@ export class HttpError extends Error {
|
|
|
102
109
|
this.problem = problem;
|
|
103
110
|
}
|
|
104
111
|
}
|
|
112
|
+
//# sourceMappingURL=client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../clients/client.ts"],"names":[],"mappings":"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"}
|
package/dist/clients/event.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { components } from '../schemas/openapi.js';
|
|
2
2
|
import { RequestOptions, BaseClient, OpenMeterConfig } from './client.js';
|
|
3
|
-
type
|
|
3
|
+
export type CloudEvent = components['schemas']['Event'];
|
|
4
|
+
export type IngestedEvent = components['schemas']['IngestedEvent'];
|
|
4
5
|
export type EventsQueryParams = {
|
|
5
6
|
/**
|
|
6
7
|
* @description Limit number of results. Max: 100
|
|
@@ -62,7 +63,7 @@ export type Event = {
|
|
|
62
63
|
* "path": "/hello"
|
|
63
64
|
* }
|
|
64
65
|
*/
|
|
65
|
-
data: Record<string,
|
|
66
|
+
data: Record<string, unknown>;
|
|
66
67
|
};
|
|
67
68
|
export declare class EventsClient extends BaseClient {
|
|
68
69
|
constructor(config: OpenMeterConfig);
|
|
@@ -70,10 +71,9 @@ export declare class EventsClient extends BaseClient {
|
|
|
70
71
|
* Ingest usage event in a CloudEvents format
|
|
71
72
|
* @see https://cloudevents.io
|
|
72
73
|
*/
|
|
73
|
-
ingest(usageEvent: Event, options?: RequestOptions): Promise<void>;
|
|
74
|
+
ingest(usageEvent: Event | Event[], options?: RequestOptions): Promise<void>;
|
|
74
75
|
/**
|
|
75
76
|
* List raw events
|
|
76
77
|
*/
|
|
77
|
-
list(params?: EventsQueryParams, options?: RequestOptions): Promise<
|
|
78
|
+
list(params?: EventsQueryParams, options?: RequestOptions): Promise<IngestedEvent[]>;
|
|
78
79
|
}
|
|
79
|
-
export {};
|
package/dist/clients/event.js
CHANGED
|
@@ -9,29 +9,39 @@ export class EventsClient extends BaseClient {
|
|
|
9
9
|
* @see https://cloudevents.io
|
|
10
10
|
*/
|
|
11
11
|
async ingest(usageEvent, options) {
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
12
|
+
const isBatch = Array.isArray(usageEvent);
|
|
13
|
+
const cloudEvents = (isBatch ? usageEvent : [usageEvent]).map((ev) => {
|
|
14
|
+
// Validate content type
|
|
15
|
+
if (ev.datacontenttype && ev.datacontenttype !== 'application/json') {
|
|
16
|
+
throw new TypeError(`Unsupported datacontenttype: ${ev.datacontenttype}`);
|
|
17
|
+
}
|
|
18
|
+
// We default where we can to lower the barrier to use CloudEvents
|
|
19
|
+
const cloudEvent = {
|
|
20
|
+
specversion: ev.specversion ?? '1.0',
|
|
21
|
+
id: ev.id ?? crypto.randomUUID(),
|
|
22
|
+
source: ev.source ?? '@openmeter/sdk',
|
|
23
|
+
type: ev.type,
|
|
24
|
+
subject: ev.subject,
|
|
25
|
+
time: ev.time?.toISOString(),
|
|
26
|
+
datacontenttype: ev.datacontenttype,
|
|
27
|
+
dataschema: ev.dataschema,
|
|
28
|
+
data: ev.data,
|
|
29
|
+
};
|
|
30
|
+
return cloudEvent;
|
|
31
|
+
});
|
|
32
|
+
const contentType = isBatch
|
|
33
|
+
? 'application/cloudevents-batch+json'
|
|
34
|
+
: 'application/cloudevents+json';
|
|
35
|
+
const body = isBatch
|
|
36
|
+
? JSON.stringify(cloudEvents)
|
|
37
|
+
: JSON.stringify(cloudEvents[0]);
|
|
28
38
|
// Making Request
|
|
29
39
|
return await this.request({
|
|
30
40
|
path: '/api/v1/events',
|
|
31
41
|
method: 'POST',
|
|
32
|
-
body
|
|
42
|
+
body,
|
|
33
43
|
headers: {
|
|
34
|
-
'Content-Type':
|
|
44
|
+
'Content-Type': contentType,
|
|
35
45
|
},
|
|
36
46
|
options,
|
|
37
47
|
});
|
|
@@ -51,3 +61,4 @@ export class EventsClient extends BaseClient {
|
|
|
51
61
|
});
|
|
52
62
|
}
|
|
53
63
|
}
|
|
64
|
+
//# sourceMappingURL=event.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"event.js","sourceRoot":"","sources":["../../clients/event.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAA;AAE3B,OAAO,EAAkB,UAAU,EAAmB,MAAM,aAAa,CAAA;AAuEzE,MAAM,OAAO,YAAa,SAAQ,UAAU;IAC1C,YAAY,MAAuB;QACjC,KAAK,CAAC,MAAM,CAAC,CAAA;IACf,CAAC;IAED;;;OAGG;IACI,KAAK,CAAC,MAAM,CACjB,UAA2B,EAC3B,OAAwB;QAExB,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,CAAA;QACzC,MAAM,WAAW,GAAiB,CAAC,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,CACzE,CAAC,EAAE,EAAE,EAAE;YACL,wBAAwB;YACxB,IAAI,EAAE,CAAC,eAAe,IAAI,EAAE,CAAC,eAAe,KAAK,kBAAkB,EAAE,CAAC;gBACpE,MAAM,IAAI,SAAS,CACjB,gCAAgC,EAAE,CAAC,eAAe,EAAE,CACrD,CAAA;YACH,CAAC;YAED,kEAAkE;YAClE,MAAM,UAAU,GAAe;gBAC7B,WAAW,EAAE,EAAE,CAAC,WAAW,IAAI,KAAK;gBACpC,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,MAAM,CAAC,UAAU,EAAE;gBAChC,MAAM,EAAE,EAAE,CAAC,MAAM,IAAI,gBAAgB;gBACrC,IAAI,EAAE,EAAE,CAAC,IAAI;gBACb,OAAO,EAAE,EAAE,CAAC,OAAO;gBACnB,IAAI,EAAE,EAAE,CAAC,IAAI,EAAE,WAAW,EAAE;gBAC5B,eAAe,EAAE,EAAE,CAAC,eAAe;gBACnC,UAAU,EAAE,EAAE,CAAC,UAAU;gBACzB,IAAI,EAAE,EAAE,CAAC,IAAI;aACd,CAAA;YAED,OAAO,UAAU,CAAA;QACnB,CAAC,CACF,CAAA;QAED,MAAM,WAAW,GAAG,OAAO;YACzB,CAAC,CAAC,oCAAoC;YACtC,CAAC,CAAC,8BAA8B,CAAA;QAClC,MAAM,IAAI,GAAG,OAAO;YAClB,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC;YAC7B,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAA;QAElC,iBAAiB;QACjB,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC;YACxB,IAAI,EAAE,gBAAgB;YACtB,MAAM,EAAE,MAAM;YACd,IAAI;YACJ,OAAO,EAAE;gBACP,cAAc,EAAE,WAAW;aAC5B;YACD,OAAO;SACR,CAAC,CAAA;IACJ,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,IAAI,CACf,MAA0B,EAC1B,OAAwB;QAExB,MAAM,YAAY,GAAG,MAAM;YACzB,CAAC,CAAC,UAAU,CAAC,iBAAiB,CAAC,MAAM,CAAC;YACtC,CAAC,CAAC,SAAS,CAAA;QACb,OAAO,IAAI,CAAC,OAAO,CAAkB;YACnC,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,gBAAgB;YACtB,YAAY;YACZ,OAAO;SACR,CAAC,CAAA;IACJ,CAAC;CACF"}
|
package/dist/clients/meter.d.ts
CHANGED
|
@@ -12,36 +12,6 @@ export declare enum MeterAggregation {
|
|
|
12
12
|
MIN = "MIN",
|
|
13
13
|
MAX = "MAX"
|
|
14
14
|
}
|
|
15
|
-
export type MeterValuesParams = {
|
|
16
|
-
/**
|
|
17
|
-
* @description Subject(s) to filter by.
|
|
18
|
-
* @example ["customer-1", "customer-2"]
|
|
19
|
-
*/
|
|
20
|
-
subject?: string;
|
|
21
|
-
/**
|
|
22
|
-
* @description Start date.
|
|
23
|
-
* Must be aligned with the window size.
|
|
24
|
-
* Inclusive.
|
|
25
|
-
*/
|
|
26
|
-
from?: Date;
|
|
27
|
-
/**
|
|
28
|
-
* @description End date.
|
|
29
|
-
* Must be aligned with the window size.
|
|
30
|
-
* Inclusive.
|
|
31
|
-
*/
|
|
32
|
-
to?: Date;
|
|
33
|
-
/**
|
|
34
|
-
* @description Window Size
|
|
35
|
-
* If not specified, a single usage aggregate will be returned for the entirety of
|
|
36
|
-
* the specified period for each subject and group.
|
|
37
|
-
*/
|
|
38
|
-
windowSize?: WindowSizeType;
|
|
39
|
-
/**
|
|
40
|
-
* @description Group By
|
|
41
|
-
* If not specified a single aggregate will be returned for each subject and time window.
|
|
42
|
-
*/
|
|
43
|
-
groupBy?: string[];
|
|
44
|
-
};
|
|
45
15
|
export type MeterQueryParams = {
|
|
46
16
|
/**
|
|
47
17
|
* @description Subject(s) to filter by.
|
|
@@ -66,15 +36,22 @@ export type MeterQueryParams = {
|
|
|
66
36
|
* the specified period for each subject and group.
|
|
67
37
|
*/
|
|
68
38
|
windowSize?: WindowSizeType;
|
|
39
|
+
/**
|
|
40
|
+
* @description The value is the name of the time zone as defined in the IANA Time Zone Database (http://www.iana.org/time-zones).
|
|
41
|
+
* If not specified, the UTC timezone will be used.
|
|
42
|
+
*/
|
|
43
|
+
windowTimeZone?: string;
|
|
69
44
|
/**
|
|
70
45
|
* @description Group By
|
|
71
46
|
* If not specified a single aggregate will be returned for each subject and time window.
|
|
72
47
|
*/
|
|
73
48
|
groupBy?: string[];
|
|
49
|
+
/**
|
|
50
|
+
* @description Filter by group by
|
|
51
|
+
*/
|
|
52
|
+
filterGroupBy?: Record<string, string>;
|
|
74
53
|
};
|
|
75
|
-
export type MeterValuesResponse = paths['/api/v1/meters/{meterIdOrSlug}/values']['get']['responses']['200']['content']['application/json'];
|
|
76
54
|
export type MeterQueryResponse = paths['/api/v1/meters/{meterIdOrSlug}/query']['get']['responses']['200']['content']['application/json'];
|
|
77
|
-
export type MeterValue = components['schemas']['MeterValue'];
|
|
78
55
|
export type Meter = components['schemas']['Meter'];
|
|
79
56
|
export type WindowSizeType = components['schemas']['WindowSize'];
|
|
80
57
|
export declare class MetersClient extends BaseClient {
|
|
@@ -87,11 +64,6 @@ export declare class MetersClient extends BaseClient {
|
|
|
87
64
|
* List meters
|
|
88
65
|
*/
|
|
89
66
|
list(options?: RequestOptions): Promise<Meter[]>;
|
|
90
|
-
/**
|
|
91
|
-
* Get aggregated values of a meter
|
|
92
|
-
* @deprecated Use `meters.query` instead
|
|
93
|
-
*/
|
|
94
|
-
values(slug: string, params?: MeterValuesParams, options?: RequestOptions): Promise<MeterValuesResponse>;
|
|
95
67
|
/**
|
|
96
68
|
* Query a meter
|
|
97
69
|
*/
|
package/dist/clients/meter.js
CHANGED
|
@@ -37,21 +37,6 @@ export class MetersClient extends BaseClient {
|
|
|
37
37
|
options,
|
|
38
38
|
});
|
|
39
39
|
}
|
|
40
|
-
/**
|
|
41
|
-
* Get aggregated values of a meter
|
|
42
|
-
* @deprecated Use `meters.query` instead
|
|
43
|
-
*/
|
|
44
|
-
async values(slug, params, options) {
|
|
45
|
-
const searchParams = params
|
|
46
|
-
? BaseClient.toURLSearchParams(params)
|
|
47
|
-
: undefined;
|
|
48
|
-
return this.request({
|
|
49
|
-
method: 'GET',
|
|
50
|
-
path: `/api/v1/meters/${slug}/values`,
|
|
51
|
-
searchParams,
|
|
52
|
-
options,
|
|
53
|
-
});
|
|
54
|
-
}
|
|
55
40
|
/**
|
|
56
41
|
* Query a meter
|
|
57
42
|
*/
|
|
@@ -77,3 +62,4 @@ export class MetersClient extends BaseClient {
|
|
|
77
62
|
});
|
|
78
63
|
}
|
|
79
64
|
}
|
|
65
|
+
//# sourceMappingURL=meter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"meter.js","sourceRoot":"","sources":["../../clients/meter.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAmC,MAAM,aAAa,CAAA;AAEzE,MAAM,CAAN,IAAY,UAIX;AAJD,WAAY,UAAU;IACpB,+BAAiB,CAAA;IACjB,2BAAa,CAAA;IACb,yBAAW,CAAA;AACb,CAAC,EAJW,UAAU,KAAV,UAAU,QAIrB;AAED,MAAM,CAAN,IAAY,gBAMX;AAND,WAAY,gBAAgB;IAC1B,+BAAW,CAAA;IACX,mCAAe,CAAA;IACf,+BAAW,CAAA;IACX,+BAAW,CAAA;IACX,+BAAW,CAAA;AACb,CAAC,EANW,gBAAgB,KAAhB,gBAAgB,QAM3B;AAgDD,MAAM,OAAO,YAAa,SAAQ,UAAU;IAC1C,YAAY,MAAuB;QACjC,KAAK,CAAC,MAAM,CAAC,CAAA;IACf,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,GAAG,CAAC,IAAY,EAAE,OAAwB;QACrD,OAAO,IAAI,CAAC,OAAO,CAAQ;YACzB,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,kBAAkB,IAAI,EAAE;YAC9B,OAAO;SACR,CAAC,CAAA;IACJ,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,IAAI,CAAC,OAAwB;QACxC,OAAO,IAAI,CAAC,OAAO,CAAU;YAC3B,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,gBAAgB;YACtB,OAAO;SACR,CAAC,CAAA;IACJ,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,KAAK,CAChB,IAAY,EACZ,MAAyB,EACzB,OAAwB;QAExB,MAAM,YAAY,GAAG,MAAM;YACzB,CAAC,CAAC,UAAU,CAAC,iBAAiB,CAAC,MAAM,CAAC;YACtC,CAAC,CAAC,SAAS,CAAA;QACb,OAAO,IAAI,CAAC,OAAO,CAAqB;YACtC,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,kBAAkB,IAAI,QAAQ;YACpC,YAAY;YACZ,OAAO;SACR,CAAC,CAAA;IACJ,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,QAAQ,CACnB,IAAY,EACZ,OAAwB;QAExB,OAAO,IAAI,CAAC,OAAO,CAAW;YAC5B,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,kBAAkB,IAAI,WAAW;YACvC,OAAO;SACR,CAAC,CAAA;IACJ,CAAC;CACF"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { components } from '../schemas/openapi.js';
|
|
2
|
+
import { RequestOptions, BaseClient, OpenMeterConfig } from './client.js';
|
|
3
|
+
export type PortalToken = components['schemas']['PortalToken'];
|
|
4
|
+
export declare class PortalClient extends BaseClient {
|
|
5
|
+
constructor(config: OpenMeterConfig);
|
|
6
|
+
/**
|
|
7
|
+
* Create portal token
|
|
8
|
+
* Useful for creating a token sharable with your customer to query their own usage
|
|
9
|
+
*/
|
|
10
|
+
createToken(token: {
|
|
11
|
+
subject: string;
|
|
12
|
+
expiresAt?: Date;
|
|
13
|
+
allowedMeterSlugs?: string[];
|
|
14
|
+
}, options?: RequestOptions): Promise<PortalToken>;
|
|
15
|
+
/**
|
|
16
|
+
* Invalidate portal token
|
|
17
|
+
* @note OpenMeter Cloud only feature
|
|
18
|
+
*/
|
|
19
|
+
invalidateTokens(invalidate?: {
|
|
20
|
+
subject?: string;
|
|
21
|
+
}, options?: RequestOptions): Promise<void>;
|
|
22
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { BaseClient } from './client.js';
|
|
2
|
+
export class PortalClient extends BaseClient {
|
|
3
|
+
constructor(config) {
|
|
4
|
+
super(config);
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Create portal token
|
|
8
|
+
* Useful for creating a token sharable with your customer to query their own usage
|
|
9
|
+
*/
|
|
10
|
+
async createToken(token, options) {
|
|
11
|
+
return await this.request({
|
|
12
|
+
path: '/api/v1/portal/tokens',
|
|
13
|
+
method: 'POST',
|
|
14
|
+
headers: {
|
|
15
|
+
'Content-Type': 'application/json',
|
|
16
|
+
},
|
|
17
|
+
body: JSON.stringify(token),
|
|
18
|
+
options,
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Invalidate portal token
|
|
23
|
+
* @note OpenMeter Cloud only feature
|
|
24
|
+
*/
|
|
25
|
+
async invalidateTokens(invalidate = {}, options) {
|
|
26
|
+
return await this.request({
|
|
27
|
+
path: '/api/v1/portal/tokens/invalidate',
|
|
28
|
+
method: 'POST',
|
|
29
|
+
headers: {
|
|
30
|
+
'Content-Type': 'application/json',
|
|
31
|
+
},
|
|
32
|
+
body: JSON.stringify(invalidate),
|
|
33
|
+
options,
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=portal.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"portal.js","sourceRoot":"","sources":["../../clients/portal.ts"],"names":[],"mappings":"AACA,OAAO,EAAkB,UAAU,EAAmB,MAAM,aAAa,CAAA;AAIzE,MAAM,OAAO,YAAa,SAAQ,UAAU;IAC1C,YAAY,MAAuB;QACjC,KAAK,CAAC,MAAM,CAAC,CAAA;IACf,CAAC;IAED;;;OAGG;IACI,KAAK,CAAC,WAAW,CACtB,KAIC,EACD,OAAwB;QAExB,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC;YACxB,IAAI,EAAE,uBAAuB;YAC7B,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;aACnC;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;YAC3B,OAAO;SACR,CAAC,CAAA;IACJ,CAAC;IAED;;;OAGG;IACI,KAAK,CAAC,gBAAgB,CAC3B,aAAmC,EAAE,EACrC,OAAwB;QAExB,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC;YACxB,IAAI,EAAE,kCAAkC;YACxC,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;aACnC;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC;YAChC,OAAO;SACR,CAAC,CAAA;IACJ,CAAC;CACF"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { components } from '../schemas/openapi.js';
|
|
2
|
+
import { RequestOptions, BaseClient, OpenMeterConfig } from './client.js';
|
|
3
|
+
export type Subject = components['schemas']['Subject'];
|
|
4
|
+
export declare class SubjectClient extends BaseClient {
|
|
5
|
+
constructor(config: OpenMeterConfig);
|
|
6
|
+
/**
|
|
7
|
+
* Upsert subject
|
|
8
|
+
* Useful to map display name and metadata to subjects
|
|
9
|
+
* @note OpenMeter Cloud only feature
|
|
10
|
+
*/
|
|
11
|
+
upsert(subject: Omit<Subject, 'id'>[], options?: RequestOptions): Promise<Subject[]>;
|
|
12
|
+
/**
|
|
13
|
+
* Get subject by id or key
|
|
14
|
+
* @note OpenMeter Cloud only feature
|
|
15
|
+
*/
|
|
16
|
+
get(idOrKey: string, options?: RequestOptions): Promise<void>;
|
|
17
|
+
/**
|
|
18
|
+
* List subjects
|
|
19
|
+
* @note OpenMeter Cloud only feature
|
|
20
|
+
*/
|
|
21
|
+
list(options?: RequestOptions): Promise<void>;
|
|
22
|
+
/**
|
|
23
|
+
* Delete subject by id or key
|
|
24
|
+
* @note OpenMeter Cloud only feature
|
|
25
|
+
*/
|
|
26
|
+
delete(idOrKey: string, options?: RequestOptions): Promise<void>;
|
|
27
|
+
}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { BaseClient } from './client.js';
|
|
2
|
+
export class SubjectClient extends BaseClient {
|
|
3
|
+
constructor(config) {
|
|
4
|
+
super(config);
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Upsert subject
|
|
8
|
+
* Useful to map display name and metadata to subjects
|
|
9
|
+
* @note OpenMeter Cloud only feature
|
|
10
|
+
*/
|
|
11
|
+
async upsert(subject, options) {
|
|
12
|
+
return await this.request({
|
|
13
|
+
path: '/api/v1/subjects',
|
|
14
|
+
method: 'POST',
|
|
15
|
+
headers: {
|
|
16
|
+
'Content-Type': 'application/json',
|
|
17
|
+
},
|
|
18
|
+
body: JSON.stringify(subject),
|
|
19
|
+
options,
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Get subject by id or key
|
|
24
|
+
* @note OpenMeter Cloud only feature
|
|
25
|
+
*/
|
|
26
|
+
async get(idOrKey, options) {
|
|
27
|
+
return await this.request({
|
|
28
|
+
path: `/api/v1/subjects/${idOrKey}`,
|
|
29
|
+
method: 'GET',
|
|
30
|
+
options,
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* List subjects
|
|
35
|
+
* @note OpenMeter Cloud only feature
|
|
36
|
+
*/
|
|
37
|
+
async list(options) {
|
|
38
|
+
return await this.request({
|
|
39
|
+
path: '/api/v1/subjects',
|
|
40
|
+
method: 'GET',
|
|
41
|
+
options,
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Delete subject by id or key
|
|
46
|
+
* @note OpenMeter Cloud only feature
|
|
47
|
+
*/
|
|
48
|
+
async delete(idOrKey, options) {
|
|
49
|
+
return await this.request({
|
|
50
|
+
path: `/api/v1/subjects/${idOrKey}`,
|
|
51
|
+
method: 'DELETE',
|
|
52
|
+
options,
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=subject.js.map
|
|
@@ -0,0 +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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,12 +1,15 @@
|
|
|
1
1
|
import { OpenMeterConfig } from './clients/client.js';
|
|
2
2
|
import { EventsClient } from './clients/event.js';
|
|
3
3
|
import { MetersClient } from './clients/meter.js';
|
|
4
|
+
import { PortalClient } from './clients/portal.js';
|
|
5
|
+
import { SubjectClient } from './clients/subject.js';
|
|
4
6
|
export { OpenMeterConfig, RequestOptions } from './clients/client.js';
|
|
5
|
-
export { Event } from './clients/event.js';
|
|
6
|
-
export { Meter,
|
|
7
|
-
export { createOpenAIStreamCallback } from './next.js';
|
|
7
|
+
export { Event, IngestedEvent, CloudEvent } from './clients/event.js';
|
|
8
|
+
export { Meter, MeterAggregation, WindowSize } from './clients/meter.js';
|
|
8
9
|
export declare class OpenMeter {
|
|
9
10
|
events: EventsClient;
|
|
10
11
|
meters: MetersClient;
|
|
12
|
+
portal: PortalClient;
|
|
13
|
+
subjects: SubjectClient;
|
|
11
14
|
constructor(config: OpenMeterConfig);
|
|
12
15
|
}
|
package/dist/index.js
CHANGED
|
@@ -1,12 +1,18 @@
|
|
|
1
1
|
import { EventsClient } from './clients/event.js';
|
|
2
2
|
import { MetersClient } from './clients/meter.js';
|
|
3
|
-
|
|
4
|
-
|
|
3
|
+
import { PortalClient } from './clients/portal.js';
|
|
4
|
+
import { SubjectClient } from './clients/subject.js';
|
|
5
|
+
export { MeterAggregation, WindowSize } from './clients/meter.js';
|
|
5
6
|
export class OpenMeter {
|
|
6
7
|
events;
|
|
7
8
|
meters;
|
|
9
|
+
portal;
|
|
10
|
+
subjects;
|
|
8
11
|
constructor(config) {
|
|
9
12
|
this.events = new EventsClient(config);
|
|
10
13
|
this.meters = new MetersClient(config);
|
|
14
|
+
this.portal = new PortalClient(config);
|
|
15
|
+
this.subjects = new SubjectClient(config);
|
|
11
16
|
}
|
|
12
17
|
}
|
|
18
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +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"}
|