@openmeter/sdk 1.0.0-beta.22 → 1.0.0-beta.221
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/Makefile +43 -0
- package/README.md +38 -150
- package/dist/cjs/index.cjs +18 -0
- package/dist/cjs/index.d.cts +1 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/src/client/addons.cjs +105 -0
- package/dist/cjs/src/client/addons.d.cts +152 -0
- package/dist/cjs/src/client/addons.js.map +1 -0
- package/dist/cjs/src/client/apps.cjs +247 -0
- package/dist/cjs/src/client/apps.d.cts +327 -0
- package/dist/cjs/src/client/apps.js.map +1 -0
- package/dist/cjs/src/client/billing.cjs +361 -0
- package/dist/cjs/src/client/billing.d.cts +526 -0
- package/dist/cjs/src/client/billing.js.map +1 -0
- package/dist/cjs/src/client/common.cjs +47 -0
- package/dist/cjs/src/client/common.d.cts +30 -0
- package/dist/cjs/src/client/common.js.map +1 -0
- package/dist/cjs/src/client/customers.cjs +283 -0
- package/dist/cjs/src/client/customers.d.cts +251 -0
- package/dist/cjs/src/client/customers.js.map +1 -0
- package/dist/cjs/src/client/debug.cjs +27 -0
- package/dist/cjs/src/client/debug.d.cts +17 -0
- package/dist/cjs/src/client/debug.js.map +1 -0
- package/dist/cjs/src/client/entitlements.cjs +281 -0
- package/dist/cjs/src/client/entitlements.d.cts +556 -0
- package/dist/cjs/src/client/entitlements.js.map +1 -0
- package/dist/cjs/src/client/events.cjs +113 -0
- package/dist/cjs/src/client/events.d.cts +48 -0
- package/dist/cjs/src/client/events.js.map +1 -0
- package/dist/cjs/src/client/features.cjs +78 -0
- package/dist/cjs/src/client/features.d.cts +78 -0
- package/dist/cjs/src/client/features.js.map +1 -0
- package/dist/cjs/src/client/index.cjs +120 -0
- package/dist/cjs/src/client/index.d.cts +53 -0
- package/dist/cjs/src/client/index.js.map +1 -0
- package/dist/cjs/src/client/info.cjs +42 -0
- package/dist/cjs/src/client/info.d.cts +34 -0
- package/dist/cjs/src/client/info.js.map +1 -0
- package/dist/cjs/src/client/meters.cjs +115 -0
- package/dist/cjs/src/client/meters.d.cts +123 -0
- package/dist/cjs/src/client/meters.js.map +1 -0
- package/dist/cjs/src/client/notifications.cjs +249 -0
- package/dist/cjs/src/client/notifications.d.cts +397 -0
- package/dist/cjs/src/client/notifications.js.map +1 -0
- package/dist/cjs/src/client/plans.cjs +204 -0
- package/dist/cjs/src/client/plans.d.cts +247 -0
- package/dist/cjs/src/client/plans.js.map +1 -0
- package/dist/cjs/src/client/portal.cjs +55 -0
- package/dist/cjs/src/client/portal.d.cts +48 -0
- package/dist/cjs/src/client/portal.js.map +1 -0
- package/dist/cjs/src/client/schemas.cjs +3 -0
- package/dist/cjs/src/client/schemas.d.cts +25246 -0
- package/dist/cjs/src/client/schemas.js.map +1 -0
- package/dist/cjs/src/client/subjects.cjs +76 -0
- package/dist/cjs/src/client/subjects.d.cts +70 -0
- package/dist/cjs/src/client/subjects.js.map +1 -0
- package/dist/cjs/src/client/subscription-addons.cjs +70 -0
- package/dist/cjs/src/client/subscription-addons.d.cts +123 -0
- package/dist/cjs/src/client/subscription-addons.js.map +1 -0
- package/dist/cjs/src/client/subscriptions.cjs +132 -0
- package/dist/cjs/src/client/subscriptions.d.cts +170 -0
- package/dist/cjs/src/client/subscriptions.js.map +1 -0
- package/dist/cjs/src/client/utils.cjs +69 -0
- package/dist/cjs/src/client/utils.d.cts +12 -0
- package/dist/cjs/src/client/utils.js.map +1 -0
- package/dist/cjs/src/portal/index.cjs +89 -0
- package/dist/cjs/src/portal/index.d.cts +43 -0
- package/dist/cjs/src/portal/index.js.map +1 -0
- package/dist/cjs/src/react/context.cjs +35 -0
- package/dist/cjs/src/react/context.d.cts +9 -0
- package/dist/cjs/src/react/context.js.map +1 -0
- package/dist/cjs/src/zod/index.cjs +12205 -0
- package/dist/cjs/src/zod/index.d.cts +19139 -0
- package/dist/cjs/src/zod/index.js.map +1 -0
- package/dist/cjs/tsconfig.0bedc47d.tsbuildinfo +1 -0
- package/dist/cjs/tsconfig.c449a50f.tsbuildinfo +1 -0
- package/dist/index.d.ts +1 -14
- package/dist/index.js +2 -15
- package/dist/index.js.map +1 -0
- package/dist/src/client/addons.d.ts +152 -0
- package/dist/src/client/addons.js +101 -0
- package/dist/src/client/addons.js.map +1 -0
- package/dist/src/client/apps.d.ts +327 -0
- package/dist/src/client/apps.js +240 -0
- package/dist/src/client/apps.js.map +1 -0
- package/dist/src/client/billing.d.ts +526 -0
- package/dist/src/client/billing.js +354 -0
- package/dist/src/client/billing.js.map +1 -0
- package/dist/src/client/common.d.ts +30 -0
- package/dist/src/client/common.js +42 -0
- package/dist/src/client/common.js.map +1 -0
- package/dist/src/client/customers.d.ts +251 -0
- package/dist/src/client/customers.js +276 -0
- package/dist/src/client/customers.js.map +1 -0
- package/dist/src/client/debug.d.ts +17 -0
- package/dist/src/client/debug.js +23 -0
- package/dist/src/client/debug.js.map +1 -0
- package/dist/src/client/entitlements.d.ts +556 -0
- package/dist/src/client/entitlements.js +276 -0
- package/dist/src/client/entitlements.js.map +1 -0
- package/dist/src/client/events.d.ts +48 -0
- package/dist/src/client/events.js +108 -0
- package/dist/src/client/events.js.map +1 -0
- package/dist/src/client/features.d.ts +78 -0
- package/dist/src/client/features.js +74 -0
- package/dist/src/client/features.js.map +1 -0
- package/dist/src/client/index.d.ts +53 -0
- package/dist/src/client/index.js +80 -0
- package/dist/src/client/index.js.map +1 -0
- package/dist/src/client/info.d.ts +34 -0
- package/dist/src/client/info.js +38 -0
- package/dist/src/client/info.js.map +1 -0
- package/dist/src/client/meters.d.ts +123 -0
- package/dist/src/client/meters.js +111 -0
- package/dist/src/client/meters.js.map +1 -0
- package/dist/src/client/notifications.d.ts +397 -0
- package/dist/src/client/notifications.js +242 -0
- package/dist/src/client/notifications.js.map +1 -0
- package/dist/src/client/plans.d.ts +247 -0
- package/dist/src/client/plans.js +199 -0
- package/dist/src/client/plans.js.map +1 -0
- package/dist/src/client/portal.d.ts +48 -0
- package/dist/src/client/portal.js +51 -0
- package/dist/src/client/portal.js.map +1 -0
- package/dist/src/client/schemas.d.ts +25246 -0
- package/dist/src/client/schemas.js +2 -0
- package/dist/src/client/schemas.js.map +1 -0
- package/dist/src/client/subjects.d.ts +70 -0
- package/dist/src/client/subjects.js +72 -0
- package/dist/src/client/subjects.js.map +1 -0
- package/dist/src/client/subscription-addons.d.ts +123 -0
- package/dist/src/client/subscription-addons.js +66 -0
- package/dist/src/client/subscription-addons.js.map +1 -0
- package/dist/src/client/subscriptions.d.ts +170 -0
- package/dist/src/client/subscriptions.js +128 -0
- package/dist/src/client/subscriptions.js.map +1 -0
- package/dist/src/client/utils.d.ts +12 -0
- package/dist/src/client/utils.js +63 -0
- package/dist/src/client/utils.js.map +1 -0
- package/dist/src/portal/index.d.ts +43 -0
- package/dist/src/portal/index.js +52 -0
- package/dist/src/portal/index.js.map +1 -0
- package/dist/src/react/context.d.ts +9 -0
- package/dist/src/react/context.js +16 -0
- package/dist/src/react/context.js.map +1 -0
- package/dist/src/zod/index.d.ts +19139 -0
- package/dist/src/zod/index.js +12178 -0
- package/dist/src/zod/index.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/orval.config.ts +42 -0
- package/package.json +89 -35
- package/patches/openapi-typescript.patch +6194 -0
- package/dist/clients/client.d.ts +0 -40
- package/dist/clients/client.js +0 -104
- package/dist/clients/event.d.ts +0 -79
- package/dist/clients/event.js +0 -53
- package/dist/clients/meter.d.ts +0 -71
- package/dist/clients/meter.js +0 -64
- package/dist/clients/portal.d.ts +0 -23
- package/dist/clients/portal.js +0 -37
- package/dist/next.d.ts +0 -15
- package/dist/next.js +0 -46
- package/dist/schemas/openapi.d.ts +0 -460
- package/dist/schemas/openapi.js +0 -5
- package/dist/test/agent.d.ts +0 -2
- package/dist/test/agent.js +0 -178
- package/dist/test/mocks.d.ts +0 -12
- package/dist/test/mocks.js +0 -32
- package/index.ts +0 -22
- package/next.ts +0 -76
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { HTTPError } from './common.js';
|
|
2
|
+
/**
|
|
3
|
+
* Transform a response from the API
|
|
4
|
+
* @param resp - The response to transform
|
|
5
|
+
* @throws HTTPError if the response is an error
|
|
6
|
+
* @returns The transformed response
|
|
7
|
+
*/
|
|
8
|
+
export function transformResponse(resp) {
|
|
9
|
+
// Handle errors
|
|
10
|
+
if (resp.error || resp.response.status >= 400) {
|
|
11
|
+
throw HTTPError.fromResponse(resp);
|
|
12
|
+
}
|
|
13
|
+
// Decode dates
|
|
14
|
+
if (resp.data) {
|
|
15
|
+
resp.data = decodeDates(resp.data);
|
|
16
|
+
}
|
|
17
|
+
return resp.data;
|
|
18
|
+
}
|
|
19
|
+
const ISODateFormat = /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d*)?(?:[-+]\d{2}:?\d{2}|Z)?$/;
|
|
20
|
+
export function isIsoDateString(value) {
|
|
21
|
+
return typeof value === 'string' && ISODateFormat.test(value);
|
|
22
|
+
}
|
|
23
|
+
export function decodeDates(data) {
|
|
24
|
+
// if it's a date string, return a date
|
|
25
|
+
if (isIsoDateString(data)) {
|
|
26
|
+
return new Date(data);
|
|
27
|
+
}
|
|
28
|
+
// if it's not an object or array, return it
|
|
29
|
+
if (data === null || data === undefined || typeof data !== 'object') {
|
|
30
|
+
return data;
|
|
31
|
+
}
|
|
32
|
+
// if it's an array, decode each element
|
|
33
|
+
if (Array.isArray(data)) {
|
|
34
|
+
return data.map((val) => decodeDates(val));
|
|
35
|
+
}
|
|
36
|
+
// if it's an object, decode each key
|
|
37
|
+
for (const [key, val] of Object.entries(data)) {
|
|
38
|
+
// @ts-expect-error we know this will give back the same type
|
|
39
|
+
data[key] = decodeDates(val);
|
|
40
|
+
}
|
|
41
|
+
return data;
|
|
42
|
+
}
|
|
43
|
+
export function encodeDates(data) {
|
|
44
|
+
// if it's a date, return a date string
|
|
45
|
+
if (data instanceof Date) {
|
|
46
|
+
return data.toISOString();
|
|
47
|
+
}
|
|
48
|
+
// if it's not an object or array, return it
|
|
49
|
+
if (data === null || data === undefined || typeof data !== 'object') {
|
|
50
|
+
return data;
|
|
51
|
+
}
|
|
52
|
+
// if it's an array, encode each element
|
|
53
|
+
if (Array.isArray(data)) {
|
|
54
|
+
return data.map((val) => encodeDates(val));
|
|
55
|
+
}
|
|
56
|
+
// if it's an object, encode each key
|
|
57
|
+
for (const [key, val] of Object.entries(data)) {
|
|
58
|
+
// @ts-expect-error we know this will give back the same type
|
|
59
|
+
data[key] = encodeDates(val);
|
|
60
|
+
}
|
|
61
|
+
return data;
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/client/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAQvC;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAK/B,IAAsC;IAItC,gBAAgB;IAChB,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,IAAI,GAAG,EAAE,CAAC;QAC9C,MAAM,SAAS,CAAC,YAAY,CAAC,IAAI,CAAC,CAAA;IACpC,CAAC;IAED,eAAe;IACf,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,IAAI,CAAC,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACpC,CAAC;IAED,OAAO,IAAI,CAAC,IAAK,CAAA;AACnB,CAAC;AAED,MAAM,aAAa,GACjB,wEAAwE,CAAA;AAE1E,MAAM,UAAU,eAAe,CAAC,KAAc;IAC5C,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;AAC/D,CAAC;AAED,MAAM,UAAU,WAAW,CAAI,IAAO;IACpC,uCAAuC;IACvC,IAAI,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;QAC1B,OAAO,IAAI,IAAI,CAAC,IAAI,CAAM,CAAA;IAC5B,CAAC;IAED,4CAA4C;IAC5C,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,SAAS,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QACpE,OAAO,IAAI,CAAA;IACb,CAAC;IAED,wCAAwC;IACxC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACxB,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,CAAM,CAAA;IACjD,CAAC;IAED,qCAAqC;IACrC,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QAC9C,6DAA6D;QAC7D,IAAI,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC,GAAG,CAAC,CAAA;IAC9B,CAAC;IAED,OAAO,IAAS,CAAA;AAClB,CAAC;AAED,MAAM,UAAU,WAAW,CAAI,IAAO;IACpC,uCAAuC;IACvC,IAAI,IAAI,YAAY,IAAI,EAAE,CAAC;QACzB,OAAO,IAAI,CAAC,WAAW,EAAO,CAAA;IAChC,CAAC;IAED,4CAA4C;IAC5C,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,SAAS,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QACpE,OAAO,IAAI,CAAA;IACb,CAAC;IAED,wCAAwC;IACxC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QACxB,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,CAAM,CAAA;IACjD,CAAC;IAED,qCAAqC;IACrC,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;QAC9C,6DAA6D;QAC7D,IAAI,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC,GAAG,CAAC,CAAA;IAC9B,CAAC;IAED,OAAO,IAAS,CAAA;AAClB,CAAC"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import type { RequestOptions } from '../client/common.js';
|
|
2
|
+
import type { ClientOptions } from 'openapi-fetch';
|
|
3
|
+
/**
|
|
4
|
+
* Portal Config
|
|
5
|
+
*/
|
|
6
|
+
export type Config = Pick<ClientOptions, 'baseUrl' | 'headers' | 'fetch' | 'Request' | 'requestInitExt'> & {
|
|
7
|
+
portalToken: string;
|
|
8
|
+
};
|
|
9
|
+
/**
|
|
10
|
+
* OpenMeter Portal Client
|
|
11
|
+
* Access to the customer portal.
|
|
12
|
+
*/
|
|
13
|
+
export declare class OpenMeter {
|
|
14
|
+
private client;
|
|
15
|
+
constructor(config: Config);
|
|
16
|
+
/**
|
|
17
|
+
* Query usage data for a meter by slug for customer portal.
|
|
18
|
+
* This endpoint is publicly exposable to consumers.
|
|
19
|
+
* @param meterSlug - The slug of the meter
|
|
20
|
+
* @param query - The query parameters
|
|
21
|
+
* @param signal - An optional abort signal
|
|
22
|
+
* @returns The meter data
|
|
23
|
+
*/
|
|
24
|
+
query(meterSlug: string, query?: {
|
|
25
|
+
/** @description Start date-time in RFC 3339 format. Inclusive. */
|
|
26
|
+
from?: string | Date;
|
|
27
|
+
/** @description End date-time in RFC 3339 format. Inclusive. */
|
|
28
|
+
to?: string | Date;
|
|
29
|
+
/** @description If not specified, a single usage aggregate will be returned for the entirety of the specified period for each subject and group. */
|
|
30
|
+
windowSize?: 'MINUTE' | 'HOUR' | 'DAY';
|
|
31
|
+
/** @description The value is the name of the time zone as defined in the IANA Time Zone Database (http://www.iana.org/time-zones). If not specified, the UTC timezone will be used. */
|
|
32
|
+
windowTimeZone?: string;
|
|
33
|
+
/** @description Simple filter for group bys with exact match. */
|
|
34
|
+
filterGroupBy?: Record<string, string>;
|
|
35
|
+
/** @description If not specified a single aggregate will be returned for each subject and time window. `subject` is a reserved group by value. */
|
|
36
|
+
groupBy?: string[];
|
|
37
|
+
}, options?: RequestOptions): Promise<{
|
|
38
|
+
from?: Date;
|
|
39
|
+
to?: Date;
|
|
40
|
+
windowSize?: import("../client/schemas.js").components["schemas"]["WindowSize"];
|
|
41
|
+
data: import("../client/schemas.js").components["schemas"]["MeterQueryRow"][];
|
|
42
|
+
}>;
|
|
43
|
+
}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import createClient, { createQuerySerializer } from 'openapi-fetch';
|
|
2
|
+
import { encodeDates, transformResponse } from '../client/utils.js';
|
|
3
|
+
/**
|
|
4
|
+
* OpenMeter Portal Client
|
|
5
|
+
* Access to the customer portal.
|
|
6
|
+
*/
|
|
7
|
+
export class OpenMeter {
|
|
8
|
+
client;
|
|
9
|
+
constructor(config) {
|
|
10
|
+
this.client = createClient({
|
|
11
|
+
...config,
|
|
12
|
+
headers: {
|
|
13
|
+
...config.headers,
|
|
14
|
+
Authorization: `Bearer ${config.portalToken}`,
|
|
15
|
+
},
|
|
16
|
+
querySerializer: (q) => createQuerySerializer({
|
|
17
|
+
array: {
|
|
18
|
+
explode: true,
|
|
19
|
+
style: 'form',
|
|
20
|
+
},
|
|
21
|
+
object: {
|
|
22
|
+
explode: true,
|
|
23
|
+
style: 'deepObject',
|
|
24
|
+
},
|
|
25
|
+
})(encodeDates(q)),
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Query usage data for a meter by slug for customer portal.
|
|
30
|
+
* This endpoint is publicly exposable to consumers.
|
|
31
|
+
* @param meterSlug - The slug of the meter
|
|
32
|
+
* @param query - The query parameters
|
|
33
|
+
* @param signal - An optional abort signal
|
|
34
|
+
* @returns The meter data
|
|
35
|
+
*/
|
|
36
|
+
async query(meterSlug, query, options) {
|
|
37
|
+
const resp = await this.client.GET('/api/v1/portal/meters/{meterSlug}/query', {
|
|
38
|
+
headers: {
|
|
39
|
+
Accept: 'application/json',
|
|
40
|
+
},
|
|
41
|
+
params: {
|
|
42
|
+
path: {
|
|
43
|
+
meterSlug,
|
|
44
|
+
},
|
|
45
|
+
query,
|
|
46
|
+
},
|
|
47
|
+
...options,
|
|
48
|
+
});
|
|
49
|
+
return transformResponse(resp);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/portal/index.ts"],"names":[],"mappings":"AAAA,OAAO,YAAY,EAAE,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAA;AACnE,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAenE;;;GAGG;AACH,MAAM,OAAO,SAAS;IACZ,MAAM,CAAsC;IAEpD,YAAY,MAAc;QACxB,IAAI,CAAC,MAAM,GAAG,YAAY,CAAQ;YAChC,GAAG,MAAM;YACT,OAAO,EAAE;gBACP,GAAG,MAAM,CAAC,OAAO;gBACjB,aAAa,EAAE,UAAU,MAAM,CAAC,WAAW,EAAE;aAC9C;YACD,eAAe,EAAE,CAAC,CAAC,EAAE,EAAE,CACrB,qBAAqB,CAAC;gBACpB,KAAK,EAAE;oBACL,OAAO,EAAE,IAAI;oBACb,KAAK,EAAE,MAAM;iBACd;gBACD,MAAM,EAAE;oBACN,OAAO,EAAE,IAAI;oBACb,KAAK,EAAE,YAAY;iBACpB;aACF,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;SACrB,CAAC,CAAA;IACJ,CAAC;IAED;;;;;;;OAOG;IACI,KAAK,CAAC,KAAK,CAChB,SAAiB,EACjB,KAaC,EACD,OAAwB;QAExB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAChC,yCAAyC,EACzC;YACE,OAAO,EAAE;gBACP,MAAM,EAAE,kBAAkB;aAC3B;YACD,MAAM,EAAE;gBACN,IAAI,EAAE;oBACJ,SAAS;iBACV;gBACD,KAAK;aACN;YACD,GAAG,OAAO;SACX,CACF,CAAA;QAED,OAAO,iBAAiB,CACtB,IAAI,CACgF,CAAA;IACxF,CAAC;CACF"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { OpenMeter } from '../portal/index.js';
|
|
2
|
+
export * from '../portal/index.js';
|
|
3
|
+
export declare const OpenMeterContext: import("react").Context<OpenMeter | null>;
|
|
4
|
+
export type OpenMeterProviderProps = {
|
|
5
|
+
children?: React.ReactNode;
|
|
6
|
+
value: OpenMeter | null;
|
|
7
|
+
};
|
|
8
|
+
export declare function OpenMeterProvider({ children, value }: OpenMeterProviderProps): import("react/jsx-runtime").JSX.Element;
|
|
9
|
+
export declare function useOpenMeter(): OpenMeter | null;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
+
import { createContext, useContext } from 'react';
|
|
4
|
+
export * from '../portal/index.js';
|
|
5
|
+
export const OpenMeterContext = createContext(null);
|
|
6
|
+
export function OpenMeterProvider({ children, value }) {
|
|
7
|
+
return (_jsx(OpenMeterContext.Provider, { value: value, children: children }));
|
|
8
|
+
}
|
|
9
|
+
export function useOpenMeter() {
|
|
10
|
+
const context = useContext(OpenMeterContext);
|
|
11
|
+
if (typeof context === 'undefined') {
|
|
12
|
+
throw new Error('useOpenMeter must be used within a OpenMeterProvider');
|
|
13
|
+
}
|
|
14
|
+
return context;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.js","sourceRoot":"","sources":["../../../src/react/context.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,OAAO,CAAA;AAGjD,cAAc,oBAAoB,CAAA;AAElC,MAAM,CAAC,MAAM,gBAAgB,GAAG,aAAa,CAAmB,IAAI,CAAC,CAAA;AAOrE,MAAM,UAAU,iBAAiB,CAAC,EAAE,QAAQ,EAAE,KAAK,EAA0B;IAC3E,OAAO,CACL,KAAC,gBAAgB,CAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,YACpC,QAAQ,GACiB,CAC7B,CAAA;AACH,CAAC;AAED,MAAM,UAAU,YAAY;IAC1B,MAAM,OAAO,GAAG,UAAU,CAAC,gBAAgB,CAAC,CAAA;IAC5C,IAAI,OAAO,OAAO,KAAK,WAAW,EAAE,CAAC;QACnC,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAA;IACzE,CAAC;IAED,OAAO,OAAO,CAAA;AAChB,CAAC"}
|