@openmeter/sdk 1.0.0-beta.212 → 1.0.0-beta.213

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.
@@ -1,11 +1,7 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
3
  exports.Events = void 0;
7
4
  exports.setDefaultsForEvent = setDefaultsForEvent;
8
- const crypto_1 = __importDefault(require("crypto"));
9
5
  const utils_js_1 = require("./utils.cjs");
10
6
  /**
11
7
  * Events are used to track usage of your product or service.
@@ -23,7 +19,7 @@ class Events {
23
19
  * @returns The ingested events
24
20
  */
25
21
  async ingest(events, options) {
26
- const body = (Array.isArray(events) ? events : [events]).map(setDefaultsForEvent);
22
+ const body = await Promise.all((Array.isArray(events) ? events : [events]).map(setDefaultsForEvent));
27
23
  const resp = await this.client.POST('/api/v1/events', {
28
24
  body,
29
25
  headers: {
@@ -50,17 +46,56 @@ class Events {
50
46
  }
51
47
  }
52
48
  exports.Events = Events;
53
- function setDefaultsForEvent(ev) {
49
+ /**
50
+ * Sets the defaults for an event
51
+ * @param ev - The event to set the defaults for
52
+ * @returns The event with the defaults set
53
+ */
54
+ async function setDefaultsForEvent(ev) {
54
55
  return {
55
- data: ev.data,
56
- datacontenttype: ev.datacontenttype,
57
- dataschema: ev.dataschema,
58
- id: ev.id ?? crypto_1.default.randomUUID(),
56
+ ...ev,
57
+ id: ev.id ?? (await generateId()),
59
58
  source: ev.source ?? '@openmeter/sdk',
60
59
  specversion: ev.specversion ?? '1.0',
61
- subject: ev.subject,
62
- time: ev.time,
63
- type: ev.type,
60
+ time: ev.time ?? new Date(),
64
61
  };
65
62
  }
63
+ let _randomUUID;
64
+ // One-off attempt to load node:crypto and capture randomUUID (if present)
65
+ async function loadUUIDProvider() {
66
+ if (_randomUUID !== undefined) {
67
+ // already tried
68
+ return _randomUUID;
69
+ }
70
+ try {
71
+ const c = await import('node:crypto');
72
+ if (typeof c.randomUUID === 'function') {
73
+ // available
74
+ _randomUUID = c.randomUUID.bind(c);
75
+ }
76
+ }
77
+ catch {
78
+ // not-available
79
+ }
80
+ return _randomUUID;
81
+ }
82
+ /**
83
+ * Generates a random ID
84
+ * @returns A random ID
85
+ */
86
+ async function generateId() {
87
+ const randomUUID = await loadUUIDProvider();
88
+ if (randomUUID) {
89
+ return randomUUID();
90
+ }
91
+ // Fallback to semi-random ID
92
+ const bytes = new Uint8Array(16);
93
+ for (let i = 0; i < 16; i++) {
94
+ bytes[i] = (Math.random() * 256) | 0;
95
+ }
96
+ bytes[6] = (bytes[6] & 0x0f) | 0x40;
97
+ bytes[8] = (bytes[8] & 0x3f) | 0x80;
98
+ const hex = [...bytes].map((b) => b.toString(16).padStart(2, '0')).join('');
99
+ return `${hex.slice(0, 8)}-${hex.slice(8, 12)}-${hex.slice(12, 16)}-${hex.slice(16, 20)}-${hex.slice(20)}`;
100
+ }
66
101
  //# sourceMappingURL=events.js.map
@@ -28,4 +28,9 @@ export declare class Events {
28
28
  storedAt: Date;
29
29
  }[]>;
30
30
  }
31
- export declare function setDefaultsForEvent(ev: Event): Event;
31
+ /**
32
+ * Sets the defaults for an event
33
+ * @param ev - The event to set the defaults for
34
+ * @returns The event with the defaults set
35
+ */
36
+ export declare function setDefaultsForEvent(ev: Event): Promise<Event>;
@@ -1 +1 @@
1
- {"version":3,"file":"events.js","sourceRoot":"","sources":["../../../../src/client/events.ts"],"names":[],"mappings":";;;;;;AAwDA,kDAYC;AApED,oDAA2B;AAC3B,yCAA8C;AAK9C;;;GAGG;AACH,MAAa,MAAM;IACG;IAApB,YAAoB,MAA4C;QAA5C,WAAM,GAAN,MAAM,CAAsC;IAAG,CAAC;IAEpE;;;;;OAKG;IACI,KAAK,CAAC,MAAM,CAAC,MAAuB,EAAE,OAAwB;QACnE,MAAM,IAAI,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAC1D,mBAAmB,CACpB,CAAA;QAED,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,EAAE;YACpD,IAAI;YACJ,OAAO,EAAE;gBACP,cAAc,EAAE,oCAAoC;aACrD;YACD,GAAG,OAAO;SACX,CAAC,CAAA;QAEF,OAAO,IAAA,4BAAiB,EAAC,IAAI,CAAC,CAAA;IAChC,CAAC;IAED;;;;;OAKG;IACI,KAAK,CAAC,IAAI,CACf,KAAuD,EACvD,OAAwB;QAExB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,gBAAgB,EAAE;YACnD,MAAM,EAAE;gBACN,KAAK;aACN;YACD,GAAG,OAAO;SACX,CAAC,CAAA;QAEF,OAAO,IAAA,4BAAiB,EAAC,IAAI,CAAC,CAAA;IAChC,CAAC;CACF;AA5CD,wBA4CC;AAED,SAAgB,mBAAmB,CAAC,EAAS;IAC3C,OAAO;QACL,IAAI,EAAE,EAAE,CAAC,IAAI;QACb,eAAe,EAAE,EAAE,CAAC,eAAe;QACnC,UAAU,EAAE,EAAE,CAAC,UAAU;QACzB,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,gBAAM,CAAC,UAAU,EAAE;QAChC,MAAM,EAAE,EAAE,CAAC,MAAM,IAAI,gBAAgB;QACrC,WAAW,EAAE,EAAE,CAAC,WAAW,IAAI,KAAK;QACpC,OAAO,EAAE,EAAE,CAAC,OAAO;QACnB,IAAI,EAAE,EAAE,CAAC,IAAI;QACb,IAAI,EAAE,EAAE,CAAC,IAAI;KACd,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"events.js","sourceRoot":"","sources":["../../../../src/client/events.ts"],"names":[],"mappings":";;;AA4DA,kDAQC;AApED,yCAA8C;AAK9C;;;GAGG;AACH,MAAa,MAAM;IACG;IAApB,YAAoB,MAA4C;QAA5C,WAAM,GAAN,MAAM,CAAsC;IAAG,CAAC;IAEpE;;;;;OAKG;IACI,KAAK,CAAC,MAAM,CAAC,MAAuB,EAAE,OAAwB;QACnE,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,GAAG,CAC5B,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,mBAAmB,CAAC,CACrE,CAAA;QAED,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,EAAE;YACpD,IAAI;YACJ,OAAO,EAAE;gBACP,cAAc,EAAE,oCAAoC;aACrD;YACD,GAAG,OAAO;SACX,CAAC,CAAA;QAEF,OAAO,IAAA,4BAAiB,EAAC,IAAI,CAAC,CAAA;IAChC,CAAC;IAED;;;;;OAKG;IACI,KAAK,CAAC,IAAI,CACf,KAAuD,EACvD,OAAwB;QAExB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,gBAAgB,EAAE;YACnD,MAAM,EAAE;gBACN,KAAK;aACN;YACD,GAAG,OAAO;SACX,CAAC,CAAA;QAEF,OAAO,IAAA,4BAAiB,EAAC,IAAI,CAAC,CAAA;IAChC,CAAC;CACF;AA5CD,wBA4CC;AAED;;;;GAIG;AACI,KAAK,UAAU,mBAAmB,CAAC,EAAS;IACjD,OAAO;QACL,GAAG,EAAE;QACL,EAAE,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,MAAM,UAAU,EAAE,CAAC;QACjC,MAAM,EAAE,EAAE,CAAC,MAAM,IAAI,gBAAgB;QACrC,WAAW,EAAE,EAAE,CAAC,WAAW,IAAI,KAAK;QACpC,IAAI,EAAE,EAAE,CAAC,IAAI,IAAI,IAAI,IAAI,EAAE;KAC5B,CAAA;AACH,CAAC;AAED,IAAI,WAAuC,CAAA;AAE3C,0EAA0E;AAC1E,KAAK,UAAU,gBAAgB;IAC7B,IAAI,WAAW,KAAK,SAAS,EAAE,CAAC;QAC9B,gBAAgB;QAChB,OAAO,WAAW,CAAA;IACpB,CAAC;IAED,IAAI,CAAC;QACH,MAAM,CAAC,GAAG,MAAM,MAAM,CAAC,aAAa,CAAC,CAAA;QACrC,IAAI,OAAO,CAAC,CAAC,UAAU,KAAK,UAAU,EAAE,CAAC;YACvC,YAAY;YACZ,WAAW,GAAG,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACpC,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,gBAAgB;IAClB,CAAC;IAED,OAAO,WAAW,CAAA;AACpB,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,UAAU;IACvB,MAAM,UAAU,GAAG,MAAM,gBAAgB,EAAE,CAAA;IAC3C,IAAI,UAAU,EAAE,CAAC;QACf,OAAO,UAAU,EAAE,CAAA;IACrB,CAAC;IAED,6BAA6B;IAC7B,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,EAAE,CAAC,CAAA;IAChC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;QAC5B,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,GAAG,CAAC,CAAA;IACtC,CAAC;IAED,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAA;IACnC,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAA;IAEnC,MAAM,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IAC3E,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAA;AAC5G,CAAC"}
@@ -74,6 +74,25 @@ class Meters {
74
74
  });
75
75
  return (0, utils_js_1.transformResponse)(resp);
76
76
  }
77
+ /**
78
+ * Update a meter by ID or slug
79
+ * @param idOrSlug - The ID or slug of the meter
80
+ * @param meter - The meter update data
81
+ * @param options - Optional request options
82
+ * @returns The updated meter
83
+ */
84
+ async update(idOrSlug, meter, options) {
85
+ const resp = await this.client.PUT('/api/v1/meters/{meterIdOrSlug}', {
86
+ body: meter,
87
+ params: {
88
+ path: {
89
+ meterIdOrSlug: idOrSlug,
90
+ },
91
+ },
92
+ ...options,
93
+ });
94
+ return (0, utils_js_1.transformResponse)(resp);
95
+ }
77
96
  /**
78
97
  * Delete a meter by ID or slug
79
98
  * @param idOrSlug - The ID or slug of the meter
@@ -89,6 +89,30 @@ export declare class Meters {
89
89
  windowSize?: import("./schemas.cjs").components["schemas"]["WindowSize"];
90
90
  data: import("./schemas.cjs").components["schemas"]["MeterQueryRow"][];
91
91
  }>;
92
+ /**
93
+ * Update a meter by ID or slug
94
+ * @param idOrSlug - The ID or slug of the meter
95
+ * @param meter - The meter update data
96
+ * @param options - Optional request options
97
+ * @returns The updated meter
98
+ */
99
+ update(idOrSlug: operations['updateMeter']['parameters']['path']['meterIdOrSlug'], meter: operations['updateMeter']['requestBody']['content']['application/json'], options?: RequestOptions): Promise<{
100
+ readonly id: string;
101
+ description?: string;
102
+ metadata?: import("./schemas.cjs").components["schemas"]["Metadata"] | null;
103
+ readonly createdAt: Date;
104
+ readonly updatedAt: Date;
105
+ readonly deletedAt?: Date;
106
+ name?: string;
107
+ slug: string;
108
+ aggregation: import("./schemas.cjs").components["schemas"]["MeterAggregation"];
109
+ eventType: string;
110
+ eventFrom?: Date;
111
+ valueProperty?: string;
112
+ groupBy?: {
113
+ [key: string]: string;
114
+ };
115
+ }>;
92
116
  /**
93
117
  * Delete a meter by ID or slug
94
118
  * @param idOrSlug - The ID or slug of the meter
@@ -1 +1 @@
1
- {"version":3,"file":"meters.js","sourceRoot":"","sources":["../../../../src/client/meters.ts"],"names":[],"mappings":";;;AAAA,yCAA8C;AAK9C;;;GAGG;AACH,MAAa,MAAM;IACG;IAApB,YAAoB,MAA4C;QAA5C,WAAM,GAAN,MAAM,CAAsC;IAAG,CAAC;IAEpE;;;;;OAKG;IACI,KAAK,CAAC,MAAM,CAAC,KAAkB,EAAE,OAAwB;QAC9D,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,EAAE;YACpD,IAAI,EAAE,KAAK;YACX,GAAG,OAAO;SACX,CAAC,CAAA;QAEF,OAAO,IAAA,4BAAiB,EAAC,IAAI,CAAC,CAAA;IAChC,CAAC;IAED;;;;;OAKG;IACI,KAAK,CAAC,GAAG,CACd,QAAuE,EACvE,OAAwB;QAExB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,gCAAgC,EAAE;YACnE,MAAM,EAAE;gBACN,IAAI,EAAE;oBACJ,aAAa,EAAE,QAAQ;iBACxB;aACF;YACD,GAAG,OAAO;SACX,CAAC,CAAA;QAEF,OAAO,IAAA,4BAAiB,EAAC,IAAI,CAAC,CAAA;IAChC,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,IAAI,CAAC,OAAwB;QACxC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,gBAAgB,EAAE;YACnD,GAAG,OAAO;SACX,CAAC,CAAA;QAEF,OAAO,IAAA,4BAAiB,EAAC,IAAI,CAAC,CAAA;IAChC,CAAC;IAED;;;;;;OAMG;IACI,KAAK,CAAC,KAAK,CAChB,QAAyE,EACzE,KAAuD,EACvD,OAAwB;QAExB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,sCAAsC,EAAE;YACzE,OAAO,EAAE;gBACP,MAAM,EAAE,kBAAkB;aAC3B;YACD,MAAM,EAAE;gBACN,IAAI,EAAE;oBACJ,aAAa,EAAE,QAAQ;iBACxB;gBACD,KAAK;aACN;YACD,GAAG,OAAO;SACX,CAAC,CAAA;QAEF,OAAO,IAAA,4BAAiB,EACtB,IAAI,CAC0E,CAAA;IAClF,CAAC;IAED;;;;;OAKG;IACI,KAAK,CAAC,MAAM,CACjB,QAA0E,EAC1E,OAAwB;QAExB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,gCAAgC,EAAE;YACtE,MAAM,EAAE;gBACN,IAAI,EAAE;oBACJ,aAAa,EAAE,QAAQ;iBACxB;aACF;YACD,GAAG,OAAO;SACX,CAAC,CAAA;QAEF,OAAO,IAAA,4BAAiB,EAAC,IAAI,CAAC,CAAA;IAChC,CAAC;CACF;AAxGD,wBAwGC"}
1
+ {"version":3,"file":"meters.js","sourceRoot":"","sources":["../../../../src/client/meters.ts"],"names":[],"mappings":";;;AAAA,yCAA8C;AAK9C;;;GAGG;AACH,MAAa,MAAM;IACG;IAApB,YAAoB,MAA4C;QAA5C,WAAM,GAAN,MAAM,CAAsC;IAAG,CAAC;IAEpE;;;;;OAKG;IACI,KAAK,CAAC,MAAM,CAAC,KAAkB,EAAE,OAAwB;QAC9D,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,EAAE;YACpD,IAAI,EAAE,KAAK;YACX,GAAG,OAAO;SACX,CAAC,CAAA;QAEF,OAAO,IAAA,4BAAiB,EAAC,IAAI,CAAC,CAAA;IAChC,CAAC;IAED;;;;;OAKG;IACI,KAAK,CAAC,GAAG,CACd,QAAuE,EACvE,OAAwB;QAExB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,gCAAgC,EAAE;YACnE,MAAM,EAAE;gBACN,IAAI,EAAE;oBACJ,aAAa,EAAE,QAAQ;iBACxB;aACF;YACD,GAAG,OAAO;SACX,CAAC,CAAA;QAEF,OAAO,IAAA,4BAAiB,EAAC,IAAI,CAAC,CAAA;IAChC,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,IAAI,CAAC,OAAwB;QACxC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,gBAAgB,EAAE;YACnD,GAAG,OAAO;SACX,CAAC,CAAA;QAEF,OAAO,IAAA,4BAAiB,EAAC,IAAI,CAAC,CAAA;IAChC,CAAC;IAED;;;;;;OAMG;IACI,KAAK,CAAC,KAAK,CAChB,QAAyE,EACzE,KAAuD,EACvD,OAAwB;QAExB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,sCAAsC,EAAE;YACzE,OAAO,EAAE;gBACP,MAAM,EAAE,kBAAkB;aAC3B;YACD,MAAM,EAAE;gBACN,IAAI,EAAE;oBACJ,aAAa,EAAE,QAAQ;iBACxB;gBACD,KAAK;aACN;YACD,GAAG,OAAO;SACX,CAAC,CAAA;QAEF,OAAO,IAAA,4BAAiB,EACtB,IAAI,CAC0E,CAAA;IAClF,CAAC;IAED;;;;;;OAMG;IACI,KAAK,CAAC,MAAM,CACjB,QAA0E,EAC1E,KAA8E,EAC9E,OAAwB;QAExB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,gCAAgC,EAAE;YACnE,IAAI,EAAE,KAAK;YACX,MAAM,EAAE;gBACN,IAAI,EAAE;oBACJ,aAAa,EAAE,QAAQ;iBACxB;aACF;YACD,GAAG,OAAO;SACX,CAAC,CAAA;QAEF,OAAO,IAAA,4BAAiB,EAAC,IAAI,CAAC,CAAA;IAChC,CAAC;IAED;;;;;OAKG;IACI,KAAK,CAAC,MAAM,CACjB,QAA0E,EAC1E,OAAwB;QAExB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,gCAAgC,EAAE;YACtE,MAAM,EAAE;gBACN,IAAI,EAAE;oBACJ,aAAa,EAAE,QAAQ;iBACxB;aACF;YACD,GAAG,OAAO;SACX,CAAC,CAAA;QAEF,OAAO,IAAA,4BAAiB,EAAC,IAAI,CAAC,CAAA;IAChC,CAAC;CACF;AAjID,wBAiIC"}
@@ -6472,8 +6472,6 @@ export interface components {
6472
6472
  * @description Named JSONPath expressions to extract the group by values from the event data.
6473
6473
  *
6474
6474
  * Keys must be unique and consist only alphanumeric and underscore characters.
6475
- *
6476
- * TODO: add key format enforcement
6477
6475
  * @example {
6478
6476
  * "type": "$.type"
6479
6477
  * }
@@ -6556,8 +6554,6 @@ export interface components {
6556
6554
  * @description Named JSONPath expressions to extract the group by values from the event data.
6557
6555
  *
6558
6556
  * Keys must be unique and consist only alphanumeric and underscore characters.
6559
- *
6560
- * TODO: add key format enforcement
6561
6557
  * @example {
6562
6558
  * "type": "$.type"
6563
6559
  * }
@@ -6687,8 +6683,6 @@ export interface components {
6687
6683
  * @description Named JSONPath expressions to extract the group by values from the event data.
6688
6684
  *
6689
6685
  * Keys must be unique and consist only alphanumeric and underscore characters.
6690
- *
6691
- * TODO: add key format enforcement
6692
6686
  * @example {
6693
6687
  * "type": "$.type"
6694
6688
  * }