@lwmacct/260529-promclient 0.7.260529

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.
@@ -0,0 +1,16 @@
1
+ import type { PromBatchOptions, PromBatchRequest, PromClientOptions, PromInstantData, PromQueryOptions, PromRangeQueryOptions, PromMatrixData, PromResultData, PromSuccessResponse } from "./types";
2
+ export declare class PromClient {
3
+ private readonly baseUrl;
4
+ private readonly fetcher;
5
+ private readonly headers?;
6
+ private readonly maxGetUrlLength;
7
+ private readonly debug;
8
+ private readonly logger;
9
+ constructor(options: PromClientOptions);
10
+ query(query: string, options?: PromQueryOptions): Promise<PromSuccessResponse<PromInstantData>>;
11
+ queryRange(query: string, options: PromRangeQueryOptions): Promise<PromSuccessResponse<PromMatrixData>>;
12
+ batch(requests: readonly PromBatchRequest[], options?: PromBatchOptions): Promise<Array<PromSuccessResponse<PromResultData>>>;
13
+ private buildUrl;
14
+ private execute;
15
+ }
16
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAEV,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,eAAe,EACf,gBAAgB,EAChB,qBAAqB,EACrB,cAAc,EACd,cAAc,EACd,mBAAmB,EACpB,MAAM,SAAS,CAAC;AAkCjB,qBAAa,UAAU;IACrB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAS;IACjC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAe;IACvC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAA+B;IACxD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAS;IACzC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAU;IAChC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAwB;gBAEnC,OAAO,EAAE,iBAAiB;IAahC,KAAK,CACT,KAAK,EAAE,MAAM,EACb,OAAO,GAAE,gBAAqB,GAC7B,OAAO,CAAC,mBAAmB,CAAC,eAAe,CAAC,CAAC;IAgB1C,UAAU,CACd,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,qBAAqB,GAC7B,OAAO,CAAC,mBAAmB,CAAC,cAAc,CAAC,CAAC;IAczC,KAAK,CACT,QAAQ,EAAE,SAAS,gBAAgB,EAAE,EACrC,OAAO,GAAE,gBAAqB,GAC7B,OAAO,CAAC,KAAK,CAAC,mBAAmB,CAAC,cAAc,CAAC,CAAC,CAAC;IAkBtD,OAAO,CAAC,QAAQ;YAIF,OAAO;CA+DtB"}
package/dist/client.js ADDED
@@ -0,0 +1,129 @@
1
+ import { PromApiError, PromHttpError, PromParseError } from "./errors";
2
+ import { serializeTime } from "./time";
3
+ const defaultMaxGetUrlLength = 2000;
4
+ const trimSlash = (value) => value.replace(/\/+$/, "");
5
+ const resolveHeaders = async (headers) => typeof headers === "function" ? headers() : headers;
6
+ const appendDefinedParam = (params, key, value) => {
7
+ if (value !== undefined) {
8
+ params.set(key, String(value));
9
+ }
10
+ };
11
+ const mergeHeaders = (baseHeaders, requestHeaders) => {
12
+ const headers = new Headers(baseHeaders);
13
+ if (requestHeaders) {
14
+ new Headers(requestHeaders).forEach((value, key) => {
15
+ headers.set(key, value);
16
+ });
17
+ }
18
+ return headers;
19
+ };
20
+ export class PromClient {
21
+ baseUrl;
22
+ fetcher;
23
+ headers;
24
+ maxGetUrlLength;
25
+ debug;
26
+ logger;
27
+ constructor(options) {
28
+ if (!options.baseUrl) {
29
+ throw new Error("PromClient requires a baseUrl.");
30
+ }
31
+ this.baseUrl = trimSlash(options.baseUrl);
32
+ this.fetcher = options.fetcher ?? ((...args) => globalThis.fetch(...args));
33
+ this.headers = options.headers;
34
+ this.maxGetUrlLength = options.maxGetUrlLength ?? defaultMaxGetUrlLength;
35
+ this.debug = options.debug ?? false;
36
+ this.logger = options.logger ?? console;
37
+ }
38
+ async query(query, options = {}) {
39
+ const params = new URLSearchParams({ query });
40
+ appendDefinedParam(params, "time", options.time === undefined ? undefined : serializeTime(options.time));
41
+ appendDefinedParam(params, "timeout", options.timeout);
42
+ appendDefinedParam(params, "limit", options.limit);
43
+ return this.execute("/api/v1/query", params, {
44
+ headers: options.headers,
45
+ signal: options.signal,
46
+ });
47
+ }
48
+ async queryRange(query, options) {
49
+ const params = new URLSearchParams({ query });
50
+ params.set("start", serializeTime(options.start));
51
+ params.set("end", serializeTime(options.end));
52
+ params.set("step", String(options.step));
53
+ appendDefinedParam(params, "timeout", options.timeout);
54
+ appendDefinedParam(params, "limit", options.limit);
55
+ return this.execute("/api/v1/query_range", params, {
56
+ headers: options.headers,
57
+ signal: options.signal,
58
+ });
59
+ }
60
+ async batch(requests, options = {}) {
61
+ const { parallel = true } = options;
62
+ const run = (request) => request.type === "queryRange"
63
+ ? this.queryRange(request.query, request.options)
64
+ : this.query(request.query, request.options);
65
+ if (parallel) {
66
+ return Promise.all(requests.map((request) => run(request)));
67
+ }
68
+ const responses = [];
69
+ for (const request of requests) {
70
+ responses.push(await run(request));
71
+ }
72
+ return responses;
73
+ }
74
+ buildUrl(endpoint, params) {
75
+ return `${this.baseUrl}${endpoint}?${params.toString()}`;
76
+ }
77
+ async execute(endpoint, params, requestOptions) {
78
+ const baseHeaders = await resolveHeaders(this.headers);
79
+ const url = `${this.baseUrl}${endpoint}`;
80
+ const getUrl = this.buildUrl(endpoint, params);
81
+ const useGet = getUrl.length <= this.maxGetUrlLength;
82
+ const headers = mergeHeaders(baseHeaders, requestOptions.headers);
83
+ const requestUrl = useGet ? getUrl : url;
84
+ let response;
85
+ if (useGet) {
86
+ response = await this.fetcher(requestUrl, {
87
+ method: "GET",
88
+ headers,
89
+ signal: requestOptions.signal,
90
+ });
91
+ }
92
+ else {
93
+ headers.set("Content-Type", "application/x-www-form-urlencoded");
94
+ response = await this.fetcher(requestUrl, {
95
+ method: "POST",
96
+ headers,
97
+ body: params,
98
+ signal: requestOptions.signal,
99
+ });
100
+ }
101
+ if (!response.ok) {
102
+ throw new PromHttpError(response, requestUrl);
103
+ }
104
+ let data;
105
+ try {
106
+ data = (await response.json());
107
+ }
108
+ catch (error) {
109
+ throw new PromParseError("Failed to parse Prometheus response JSON.", {
110
+ cause: error,
111
+ });
112
+ }
113
+ if (data.status === "error") {
114
+ throw new PromApiError(data);
115
+ }
116
+ if (data.status !== "success") {
117
+ throw new PromParseError("Prometheus response did not include a status.");
118
+ }
119
+ if (this.debug) {
120
+ this.logger.info("PromClient query succeeded", {
121
+ endpoint,
122
+ method: useGet ? "GET" : "POST",
123
+ resultType: data.data.resultType,
124
+ });
125
+ }
126
+ return data;
127
+ }
128
+ }
129
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import type { PromErrorResponse } from "./types";
2
+ export declare class PromClientError extends Error {
3
+ constructor(message: string, options?: ErrorOptions);
4
+ }
5
+ export declare class PromHttpError extends PromClientError {
6
+ readonly status: number;
7
+ readonly statusText: string;
8
+ readonly url: string;
9
+ constructor(response: Response, url: string);
10
+ }
11
+ export declare class PromApiError extends PromClientError {
12
+ readonly errorType?: string;
13
+ readonly response: PromErrorResponse;
14
+ constructor(response: PromErrorResponse);
15
+ }
16
+ export declare class PromParseError extends PromClientError {
17
+ constructor(message: string, options?: ErrorOptions);
18
+ }
19
+ //# sourceMappingURL=errors.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAEjD,qBAAa,eAAgB,SAAQ,KAAK;gBAC5B,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY;CAIpD;AAED,qBAAa,aAAc,SAAQ,eAAe;IAChD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;gBAET,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM;CAO5C;AAED,qBAAa,YAAa,SAAQ,eAAe;IAC/C,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAC;gBAEzB,QAAQ,EAAE,iBAAiB;CAMxC;AAED,qBAAa,cAAe,SAAQ,eAAe;gBACrC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY;CAIpD"}
package/dist/errors.js ADDED
@@ -0,0 +1,35 @@
1
+ export class PromClientError extends Error {
2
+ constructor(message, options) {
3
+ super(message, options);
4
+ this.name = "PromClientError";
5
+ }
6
+ }
7
+ export class PromHttpError extends PromClientError {
8
+ status;
9
+ statusText;
10
+ url;
11
+ constructor(response, url) {
12
+ super(`Prometheus HTTP error ${response.status}: ${response.statusText}`);
13
+ this.name = "PromHttpError";
14
+ this.status = response.status;
15
+ this.statusText = response.statusText;
16
+ this.url = url;
17
+ }
18
+ }
19
+ export class PromApiError extends PromClientError {
20
+ errorType;
21
+ response;
22
+ constructor(response) {
23
+ super(`Prometheus API error: ${response.error ?? "unknown error"}`);
24
+ this.name = "PromApiError";
25
+ this.errorType = response.errorType;
26
+ this.response = response;
27
+ }
28
+ }
29
+ export class PromParseError extends PromClientError {
30
+ constructor(message, options) {
31
+ super(message, options);
32
+ this.name = "PromParseError";
33
+ }
34
+ }
35
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,eAAgB,SAAQ,KAAK;IACxC,YAAY,OAAe,EAAE,OAAsB;QACjD,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACxB,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;IAChC,CAAC;CACF;AAED,MAAM,OAAO,aAAc,SAAQ,eAAe;IACvC,MAAM,CAAS;IACf,UAAU,CAAS;IACnB,GAAG,CAAS;IAErB,YAAY,QAAkB,EAAE,GAAW;QACzC,KAAK,CAAC,yBAAyB,QAAQ,CAAC,MAAM,KAAK,QAAQ,CAAC,UAAU,EAAE,CAAC,CAAC;QAC1E,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC;QAC5B,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC;QAC9B,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,UAAU,CAAC;QACtC,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACjB,CAAC;CACF;AAED,MAAM,OAAO,YAAa,SAAQ,eAAe;IACtC,SAAS,CAAU;IACnB,QAAQ,CAAoB;IAErC,YAAY,QAA2B;QACrC,KAAK,CAAC,yBAAyB,QAAQ,CAAC,KAAK,IAAI,eAAe,EAAE,CAAC,CAAC;QACpE,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC;QAC3B,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC,SAAS,CAAC;QACpC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;CACF;AAED,MAAM,OAAO,cAAe,SAAQ,eAAe;IACjD,YAAY,OAAe,EAAE,OAAsB;QACjD,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACxB,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC;IAC/B,CAAC;CACF"}
@@ -0,0 +1,7 @@
1
+ export { PromClient } from "./client";
2
+ export { PromApiError, PromClientError, PromHttpError, PromParseError, } from "./errors";
3
+ export * from "./promql";
4
+ export * from "./time";
5
+ export * from "./transform";
6
+ export type { PromApiResponse, PromBatchOptions, PromBatchQueryRequest, PromBatchRangeQueryRequest, PromBatchRequest, PromClientOptions, PromErrorResponse, PromInstantData, PromLabelSet, PromMatrixData, PromMatrixItem, PromQueryOptions, PromQueryTime, PromRangeQueryOptions, PromResultData, PromResultType, PromSampleValue, PromScalarData, PromSeriesItem, PromStringData, PromSuccessResponse, PromVectorData, PromVectorItem, } from "./types";
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAEtC,OAAO,EACL,YAAY,EACZ,eAAe,EACf,aAAa,EACb,cAAc,GACf,MAAM,UAAU,CAAC;AAElB,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,aAAa,CAAC;AAE5B,YAAY,EACV,eAAe,EACf,gBAAgB,EAChB,qBAAqB,EACrB,0BAA0B,EAC1B,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,EACf,YAAY,EACZ,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,aAAa,EACb,qBAAqB,EACrB,cAAc,EACd,cAAc,EACd,eAAe,EACf,cAAc,EACd,cAAc,EACd,cAAc,EACd,mBAAmB,EACnB,cAAc,EACd,cAAc,GACf,MAAM,SAAS,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,6 @@
1
+ export { PromClient } from "./client";
2
+ export { PromApiError, PromClientError, PromHttpError, PromParseError, } from "./errors";
3
+ export * from "./promql";
4
+ export * from "./time";
5
+ export * from "./transform";
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAEtC,OAAO,EACL,YAAY,EACZ,eAAe,EACf,aAAa,EACb,cAAc,GACf,MAAM,UAAU,CAAC;AAElB,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,aAAa,CAAC"}
@@ -0,0 +1,14 @@
1
+ export type LabelMatcherOperator = "=" | "!=" | "=~" | "!~";
2
+ export type LabelMatcherInput = {
3
+ name: string;
4
+ operator: LabelMatcherOperator;
5
+ value: string;
6
+ };
7
+ export declare const escapeRegex: (value: string) => string;
8
+ export declare const regexList: (values: readonly string[]) => string;
9
+ export declare const escapeLabelValue: (value: string) => string;
10
+ export declare const labelMatcher: (name: string, operator: LabelMatcherOperator, value: string) => string;
11
+ export declare const regexLabelMatcher: (name: string, values: readonly string[], operator?: Extract<LabelMatcherOperator, "=~" | "!~">) => string;
12
+ export declare const labelMatchers: (matchers: readonly LabelMatcherInput[]) => string;
13
+ export declare const selector: (metricName: string, matchers?: readonly LabelMatcherInput[]) => string;
14
+ //# sourceMappingURL=promql.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"promql.d.ts","sourceRoot":"","sources":["../src/promql.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,oBAAoB,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAE5D,MAAM,MAAM,iBAAiB,GAAG;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,oBAAoB,CAAC;IAC/B,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,eAAO,MAAM,WAAW,GAAI,OAAO,MAAM,KAAG,MACE,CAAC;AAE/C,eAAO,MAAM,SAAS,GAAI,QAAQ,SAAS,MAAM,EAAE,KAAG,MACD,CAAC;AAEtD,eAAO,MAAM,gBAAgB,GAAI,OAAO,MAAM,KAAG,MACwB,CAAC;AAE1E,eAAO,MAAM,YAAY,GACvB,MAAM,MAAM,EACZ,UAAU,oBAAoB,EAC9B,OAAO,MAAM,KACZ,MAA0D,CAAC;AAE9D,eAAO,MAAM,iBAAiB,GAC5B,MAAM,MAAM,EACZ,QAAQ,SAAS,MAAM,EAAE,EACzB,WAAU,OAAO,CAAC,oBAAoB,EAAE,IAAI,GAAG,IAAI,CAAQ,KAC1D,MAAsE,CAAC;AAE1E,eAAO,MAAM,aAAa,GAAI,UAAU,SAAS,iBAAiB,EAAE,KAAG,MAKzD,CAAC;AAEf,eAAO,MAAM,QAAQ,GACnB,YAAY,MAAM,EAClB,WAAU,SAAS,iBAAiB,EAAO,KAC1C,MAKF,CAAC"}
package/dist/promql.js ADDED
@@ -0,0 +1,15 @@
1
+ export const escapeRegex = (value) => value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
2
+ export const regexList = (values) => values.map((value) => escapeRegex(value)).join("|");
3
+ export const escapeLabelValue = (value) => value.replace(/\\/g, "\\\\").replace(/"/g, '\\"').replace(/\n/g, "\\n");
4
+ export const labelMatcher = (name, operator, value) => `${name}${operator}"${escapeLabelValue(value)}"`;
5
+ export const regexLabelMatcher = (name, values, operator = "=~") => `${name}${operator}"${escapeLabelValue(regexList(values))}"`;
6
+ export const labelMatchers = (matchers) => matchers
7
+ .map((matcher) => labelMatcher(matcher.name, matcher.operator, matcher.value))
8
+ .join(",");
9
+ export const selector = (metricName, matchers = []) => {
10
+ if (matchers.length === 0) {
11
+ return metricName;
12
+ }
13
+ return `${metricName}{${labelMatchers(matchers)}}`;
14
+ };
15
+ //# sourceMappingURL=promql.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"promql.js","sourceRoot":"","sources":["../src/promql.ts"],"names":[],"mappings":"AAQA,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,KAAa,EAAU,EAAE,CACnD,KAAK,CAAC,OAAO,CAAC,qBAAqB,EAAE,MAAM,CAAC,CAAC;AAE/C,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,MAAyB,EAAU,EAAE,CAC7D,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAEtD,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,KAAa,EAAU,EAAE,CACxD,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AAE1E,MAAM,CAAC,MAAM,YAAY,GAAG,CAC1B,IAAY,EACZ,QAA8B,EAC9B,KAAa,EACL,EAAE,CAAC,GAAG,IAAI,GAAG,QAAQ,IAAI,gBAAgB,CAAC,KAAK,CAAC,GAAG,CAAC;AAE9D,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAC/B,IAAY,EACZ,MAAyB,EACzB,WAAuD,IAAI,EACnD,EAAE,CAAC,GAAG,IAAI,GAAG,QAAQ,IAAI,gBAAgB,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC;AAE1E,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,QAAsC,EAAU,EAAE,CAC9E,QAAQ;KACL,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CACf,YAAY,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,KAAK,CAAC,CAC5D;KACA,IAAI,CAAC,GAAG,CAAC,CAAC;AAEf,MAAM,CAAC,MAAM,QAAQ,GAAG,CACtB,UAAkB,EAClB,WAAyC,EAAE,EACnC,EAAE;IACV,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,UAAU,CAAC;IACpB,CAAC;IACD,OAAO,GAAG,UAAU,IAAI,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC;AACrD,CAAC,CAAC"}
package/dist/time.d.ts ADDED
@@ -0,0 +1,9 @@
1
+ import type { PromQueryTime } from "./types";
2
+ export type StepOption = {
3
+ seconds: number;
4
+ value: string;
5
+ };
6
+ export declare const defaultStepOptions: StepOption[];
7
+ export declare const serializeTime: (time: PromQueryTime) => string;
8
+ export declare const getAdaptiveStep: (seconds: number, maxPoints: number, steps?: readonly StepOption[]) => string;
9
+ //# sourceMappingURL=time.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"time.d.ts","sourceRoot":"","sources":["../src/time.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAE7C,MAAM,MAAM,UAAU,GAAG;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,UAAU,EAa1C,CAAC;AAEF,eAAO,MAAM,aAAa,GAAI,MAAM,aAAa,KAAG,MAKnD,CAAC;AAEF,eAAO,MAAM,eAAe,GAC1B,SAAS,MAAM,EACf,WAAW,MAAM,EACjB,QAAO,SAAS,UAAU,EAAuB,KAChD,MAiBF,CAAC"}
package/dist/time.js ADDED
@@ -0,0 +1,36 @@
1
+ export const defaultStepOptions = [
2
+ { seconds: 60, value: "1m" },
3
+ { seconds: 5 * 60, value: "5m" },
4
+ { seconds: 10 * 60, value: "10m" },
5
+ { seconds: 15 * 60, value: "15m" },
6
+ { seconds: 30 * 60, value: "30m" },
7
+ { seconds: 60 * 60, value: "1h" },
8
+ { seconds: 2 * 60 * 60, value: "2h" },
9
+ { seconds: 3 * 60 * 60, value: "3h" },
10
+ { seconds: 4 * 60 * 60, value: "4h" },
11
+ { seconds: 6 * 60 * 60, value: "6h" },
12
+ { seconds: 12 * 60 * 60, value: "12h" },
13
+ { seconds: 24 * 60 * 60, value: "1d" },
14
+ ];
15
+ export const serializeTime = (time) => {
16
+ if (time instanceof Date) {
17
+ return String(time.getTime() / 1000);
18
+ }
19
+ return String(time);
20
+ };
21
+ export const getAdaptiveStep = (seconds, maxPoints, steps = defaultStepOptions) => {
22
+ if (seconds <= 0) {
23
+ throw new Error("seconds must be greater than 0.");
24
+ }
25
+ if (maxPoints <= 0) {
26
+ throw new Error("maxPoints must be greater than 0.");
27
+ }
28
+ if (steps.length === 0) {
29
+ throw new Error("steps must not be empty.");
30
+ }
31
+ const sortedSteps = [...steps].sort((a, b) => a.seconds - b.seconds);
32
+ const minStepSeconds = seconds / maxPoints;
33
+ return (sortedSteps.find((step) => step.seconds >= minStepSeconds) ??
34
+ sortedSteps[sortedSteps.length - 1]).value;
35
+ };
36
+ //# sourceMappingURL=time.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"time.js","sourceRoot":"","sources":["../src/time.ts"],"names":[],"mappings":"AAOA,MAAM,CAAC,MAAM,kBAAkB,GAAiB;IAC9C,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE;IAC5B,EAAE,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE;IAChC,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE;IAClC,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE;IAClC,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE;IAClC,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE;IACjC,EAAE,OAAO,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE;IACrC,EAAE,OAAO,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE;IACrC,EAAE,OAAO,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE;IACrC,EAAE,OAAO,EAAE,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE;IACrC,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE;IACvC,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE;CACvC,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,IAAmB,EAAU,EAAE;IAC3D,IAAI,IAAI,YAAY,IAAI,EAAE,CAAC;QACzB,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;IACvC,CAAC;IACD,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC;AACtB,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG,CAC7B,OAAe,EACf,SAAiB,EACjB,QAA+B,kBAAkB,EACzC,EAAE;IACV,IAAI,OAAO,IAAI,CAAC,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;IACrD,CAAC;IACD,IAAI,SAAS,IAAI,CAAC,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;IACvD,CAAC;IACD,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;IAC9C,CAAC;IAED,MAAM,WAAW,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC;IACrE,MAAM,cAAc,GAAG,OAAO,GAAG,SAAS,CAAC;IAC3C,OAAO,CACL,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,IAAI,cAAc,CAAC;QAC1D,WAAW,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC,CACpC,CAAC,KAAK,CAAC;AACV,CAAC,CAAC"}
@@ -0,0 +1,12 @@
1
+ import type { PromApiResponse, PromMatrixData, PromMatrixItem, PromResultData, PromScalarData, PromSeriesItem, PromStringData, PromSuccessResponse, PromVectorData, PromVectorItem } from "../types";
2
+ export declare const isSuccessResponse: <TData extends PromResultData>(response: PromApiResponse<TData>) => response is PromSuccessResponse<TData>;
3
+ export declare const isVectorData: (data: PromResultData) => data is PromVectorData;
4
+ export declare const isMatrixData: (data: PromResultData) => data is PromMatrixData;
5
+ export declare const isScalarData: (data: PromResultData) => data is PromScalarData;
6
+ export declare const isStringData: (data: PromResultData) => data is PromStringData;
7
+ export declare const isVectorItem: (item: PromSeriesItem) => item is PromVectorItem;
8
+ export declare const isMatrixItem: (item: PromSeriesItem) => item is PromMatrixItem;
9
+ export declare const safeParseFloat: (value: string | number, defaultValue?: number) => number;
10
+ export declare const toMilliseconds: (timestampSeconds: number) => number;
11
+ export declare const hasResults: (response: PromSuccessResponse) => boolean;
12
+ //# sourceMappingURL=core.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"core.d.ts","sourceRoot":"","sources":["../../src/transform/core.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,cAAc,EACd,cAAc,EACd,cAAc,EACd,cAAc,EACd,cAAc,EACd,cAAc,EACd,mBAAmB,EACnB,cAAc,EACd,cAAc,EACf,MAAM,UAAU,CAAC;AAElB,eAAO,MAAM,iBAAiB,GAAI,KAAK,SAAS,cAAc,EAC5D,UAAU,eAAe,CAAC,KAAK,CAAC,KAC/B,QAAQ,IAAI,mBAAmB,CAAC,KAAK,CAAkC,CAAC;AAE3E,eAAO,MAAM,YAAY,GAAI,MAAM,cAAc,KAAG,IAAI,IAAI,cAC9B,CAAC;AAE/B,eAAO,MAAM,YAAY,GAAI,MAAM,cAAc,KAAG,IAAI,IAAI,cAC9B,CAAC;AAE/B,eAAO,MAAM,YAAY,GAAI,MAAM,cAAc,KAAG,IAAI,IAAI,cAC9B,CAAC;AAE/B,eAAO,MAAM,YAAY,GAAI,MAAM,cAAc,KAAG,IAAI,IAAI,cAC9B,CAAC;AAE/B,eAAO,MAAM,YAAY,GAAI,MAAM,cAAc,KAAG,IAAI,IAAI,cAC3C,CAAC;AAElB,eAAO,MAAM,YAAY,GAAI,MAAM,cAAc,KAAG,IAAI,IAAI,cAC1C,CAAC;AAEnB,eAAO,MAAM,cAAc,GACzB,OAAO,MAAM,GAAG,MAAM,EACtB,qBAAgB,KACf,MAGF,CAAC;AAEF,eAAO,MAAM,cAAc,GAAI,kBAAkB,MAAM,KAAG,MACjC,CAAC;AAE1B,eAAO,MAAM,UAAU,GAAI,UAAU,mBAAmB,KAAG,OAM1D,CAAC"}
@@ -0,0 +1,20 @@
1
+ export const isSuccessResponse = (response) => response.status === "success";
2
+ export const isVectorData = (data) => data.resultType === "vector";
3
+ export const isMatrixData = (data) => data.resultType === "matrix";
4
+ export const isScalarData = (data) => data.resultType === "scalar";
5
+ export const isStringData = (data) => data.resultType === "string";
6
+ export const isVectorItem = (item) => "value" in item;
7
+ export const isMatrixItem = (item) => "values" in item;
8
+ export const safeParseFloat = (value, defaultValue = 0) => {
9
+ const parsed = Number.parseFloat(String(value));
10
+ return Number.isNaN(parsed) ? defaultValue : parsed;
11
+ };
12
+ export const toMilliseconds = (timestampSeconds) => timestampSeconds * 1000;
13
+ export const hasResults = (response) => {
14
+ const { data } = response;
15
+ if (isVectorData(data) || isMatrixData(data)) {
16
+ return data.result.length > 0;
17
+ }
18
+ return data.result[1] !== "";
19
+ };
20
+ //# sourceMappingURL=core.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"core.js","sourceRoot":"","sources":["../../src/transform/core.ts"],"names":[],"mappings":"AAaA,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAC/B,QAAgC,EACQ,EAAE,CAAC,QAAQ,CAAC,MAAM,KAAK,SAAS,CAAC;AAE3E,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,IAAoB,EAA0B,EAAE,CAC3E,IAAI,CAAC,UAAU,KAAK,QAAQ,CAAC;AAE/B,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,IAAoB,EAA0B,EAAE,CAC3E,IAAI,CAAC,UAAU,KAAK,QAAQ,CAAC;AAE/B,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,IAAoB,EAA0B,EAAE,CAC3E,IAAI,CAAC,UAAU,KAAK,QAAQ,CAAC;AAE/B,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,IAAoB,EAA0B,EAAE,CAC3E,IAAI,CAAC,UAAU,KAAK,QAAQ,CAAC;AAE/B,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,IAAoB,EAA0B,EAAE,CAC3E,OAAO,IAAI,IAAI,CAAC;AAElB,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,IAAoB,EAA0B,EAAE,CAC3E,QAAQ,IAAI,IAAI,CAAC;AAEnB,MAAM,CAAC,MAAM,cAAc,GAAG,CAC5B,KAAsB,EACtB,YAAY,GAAG,CAAC,EACR,EAAE;IACV,MAAM,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IAChD,OAAO,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC;AACtD,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,gBAAwB,EAAU,EAAE,CACjE,gBAAgB,GAAG,IAAI,CAAC;AAE1B,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,QAA6B,EAAW,EAAE;IACnE,MAAM,EAAE,IAAI,EAAE,GAAG,QAAQ,CAAC;IAC1B,IAAI,YAAY,CAAC,IAAI,CAAC,IAAI,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;QAC7C,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;IAChC,CAAC;IACD,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;AAC/B,CAAC,CAAC"}
@@ -0,0 +1,4 @@
1
+ export * from "./core";
2
+ export * from "./instant";
3
+ export * from "./range";
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/transform/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC"}
@@ -0,0 +1,4 @@
1
+ export * from "./core";
2
+ export * from "./instant";
3
+ export * from "./range";
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/transform/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,WAAW,CAAC;AAC1B,cAAc,SAAS,CAAC"}
@@ -0,0 +1,7 @@
1
+ import type { PromInstantData, PromScalarData, PromStringData, PromSuccessResponse, PromVectorData, PromVectorItem } from "../types";
2
+ export declare const getVectorItems: (response: PromSuccessResponse<PromInstantData>) => PromVectorItem[];
3
+ export declare const getScalarValue: (response: PromSuccessResponse<PromScalarData | PromStringData>) => string | undefined;
4
+ export declare const getScalarNumber: (response: PromSuccessResponse<PromScalarData>, defaultValue?: number) => number;
5
+ export declare const mapVectorByLabel: (response: PromSuccessResponse<PromVectorData>, labelName: string, parser?: (value: string) => number) => Record<string, number>;
6
+ export declare const mapVector: <T>(response: PromSuccessResponse<PromVectorData>, mapper: (item: PromVectorItem) => T | undefined) => T[];
7
+ //# sourceMappingURL=instant.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"instant.d.ts","sourceRoot":"","sources":["../../src/transform/instant.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,cAAc,EACd,cAAc,EACd,mBAAmB,EACnB,cAAc,EACd,cAAc,EACf,MAAM,UAAU,CAAC;AAQlB,eAAO,MAAM,cAAc,GACzB,UAAU,mBAAmB,CAAC,eAAe,CAAC,KAC7C,cAAc,EAKhB,CAAC;AAEF,eAAO,MAAM,cAAc,GACzB,UAAU,mBAAmB,CAAC,cAAc,GAAG,cAAc,CAAC,KAC7D,MAAM,GAAG,SAKX,CAAC;AAEF,eAAO,MAAM,eAAe,GAC1B,UAAU,mBAAmB,CAAC,cAAc,CAAC,EAC7C,qBAAyB,KACxB,MAKF,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAC3B,UAAU,mBAAmB,CAAC,cAAc,CAAC,EAC7C,WAAW,MAAM,EACjB,SAAQ,CAAC,KAAK,EAAE,MAAM,KAAK,MAAyC,KACnE,MAAM,CAAC,MAAM,EAAE,MAAM,CAYvB,CAAC;AAEF,eAAO,MAAM,SAAS,GAAI,CAAC,EACzB,UAAU,mBAAmB,CAAC,cAAc,CAAC,EAC7C,QAAQ,CAAC,IAAI,EAAE,cAAc,KAAK,CAAC,GAAG,SAAS,KAC9C,CAAC,EAOI,CAAC"}
@@ -0,0 +1,40 @@
1
+ import { isScalarData, isStringData, isVectorData, safeParseFloat, } from "./core";
2
+ export const getVectorItems = (response) => {
3
+ if (!isVectorData(response.data)) {
4
+ return [];
5
+ }
6
+ return response.data.result;
7
+ };
8
+ export const getScalarValue = (response) => {
9
+ if (!isScalarData(response.data) && !isStringData(response.data)) {
10
+ return undefined;
11
+ }
12
+ return response.data.result[1];
13
+ };
14
+ export const getScalarNumber = (response, defaultValue = Number.NaN) => {
15
+ const value = getScalarValue(response);
16
+ return value === undefined
17
+ ? defaultValue
18
+ : safeParseFloat(value, defaultValue);
19
+ };
20
+ export const mapVectorByLabel = (response, labelName, parser = (value) => safeParseFloat(value)) => {
21
+ return response.data.result.reduce((result, item) => {
22
+ const labelValue = item.metric[labelName];
23
+ if (!labelValue) {
24
+ return result;
25
+ }
26
+ const value = parser(item.value[1]);
27
+ if (!Number.isNaN(value)) {
28
+ result[labelValue] = value;
29
+ }
30
+ return result;
31
+ }, {});
32
+ };
33
+ export const mapVector = (response, mapper) => response.data.result.reduce((result, item) => {
34
+ const mapped = mapper(item);
35
+ if (mapped !== undefined) {
36
+ result.push(mapped);
37
+ }
38
+ return result;
39
+ }, []);
40
+ //# sourceMappingURL=instant.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"instant.js","sourceRoot":"","sources":["../../src/transform/instant.ts"],"names":[],"mappings":"AAQA,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,cAAc,GACf,MAAM,QAAQ,CAAC;AAEhB,MAAM,CAAC,MAAM,cAAc,GAAG,CAC5B,QAA8C,EAC5B,EAAE;IACpB,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACjC,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,OAAO,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC;AAC9B,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,CAC5B,QAA8D,EAC1C,EAAE;IACtB,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;QACjE,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACjC,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,eAAe,GAAG,CAC7B,QAA6C,EAC7C,YAAY,GAAG,MAAM,CAAC,GAAG,EACjB,EAAE;IACV,MAAM,KAAK,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC;IACvC,OAAO,KAAK,KAAK,SAAS;QACxB,CAAC,CAAC,YAAY;QACd,CAAC,CAAC,cAAc,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;AAC1C,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC9B,QAA6C,EAC7C,SAAiB,EACjB,SAAoC,CAAC,KAAK,EAAE,EAAE,CAAC,cAAc,CAAC,KAAK,CAAC,EAC5C,EAAE;IAC1B,OAAO,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAyB,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE;QAC1E,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAC1C,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,OAAO,MAAM,CAAC;QAChB,CAAC;QACD,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QACpC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,MAAM,CAAC,UAAU,CAAC,GAAG,KAAK,CAAC;QAC7B,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC,EAAE,EAAE,CAAC,CAAC;AACT,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,SAAS,GAAG,CACvB,QAA6C,EAC7C,MAA+C,EAC1C,EAAE,CACP,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAM,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE;IAChD,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;IAC5B,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;QACzB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACtB,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC,EAAE,EAAE,CAAC,CAAC"}
@@ -0,0 +1,6 @@
1
+ import type { PromMatrixData, PromMatrixItem, PromSuccessResponse } from "../types";
2
+ export type TimeSeriesPoint = [timestampMs: number, value: number];
3
+ export declare const mapMatrixItemToSeries: (item: PromMatrixItem, parser?: (value: string) => number) => TimeSeriesPoint[];
4
+ export declare const mapMatrixToSeries: (response: PromSuccessResponse<PromMatrixData>, parser?: (value: string) => number, filter?: (item: PromMatrixItem) => boolean) => TimeSeriesPoint[];
5
+ export declare const mapMatrixByLabel: (response: PromSuccessResponse<PromMatrixData>, labelName: string, parser?: (value: string) => number) => Record<string, TimeSeriesPoint[]>;
6
+ //# sourceMappingURL=range.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"range.d.ts","sourceRoot":"","sources":["../../src/transform/range.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,cAAc,EACd,cAAc,EACd,mBAAmB,EACpB,MAAM,UAAU,CAAC;AAGlB,MAAM,MAAM,eAAe,GAAG,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;AAEnE,eAAO,MAAM,qBAAqB,GAChC,MAAM,cAAc,EACpB,SAAQ,CAAC,KAAK,EAAE,MAAM,KAAK,MAAyC,KACnE,eAAe,EAM8B,CAAC;AAEjD,eAAO,MAAM,iBAAiB,GAC5B,UAAU,mBAAmB,CAAC,cAAc,CAAC,EAC7C,SAAS,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,EAClC,SAAS,CAAC,IAAI,EAAE,cAAc,KAAK,OAAO,KACzC,eAAe,EAQjB,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAC3B,UAAU,mBAAmB,CAAC,cAAc,CAAC,EAC7C,WAAW,MAAM,EACjB,SAAS,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,KACjC,MAAM,CAAC,MAAM,EAAE,eAAe,EAAE,CAWhC,CAAC"}
@@ -0,0 +1,25 @@
1
+ import { safeParseFloat, toMilliseconds } from "./core";
2
+ export const mapMatrixItemToSeries = (item, parser = (value) => safeParseFloat(value)) => item.values
3
+ .map(([timestamp, rawValue]) => {
4
+ const value = parser(rawValue);
5
+ return [toMilliseconds(timestamp), value];
6
+ })
7
+ .filter(([, value]) => !Number.isNaN(value));
8
+ export const mapMatrixToSeries = (response, parser, filter) => {
9
+ const points = response.data.result.flatMap((item) => {
10
+ if (filter && !filter(item)) {
11
+ return [];
12
+ }
13
+ return mapMatrixItemToSeries(item, parser);
14
+ });
15
+ return points.sort((a, b) => a[0] - b[0]);
16
+ };
17
+ export const mapMatrixByLabel = (response, labelName, parser) => response.data.result.reduce((result, item) => {
18
+ const labelValue = item.metric[labelName];
19
+ if (!labelValue) {
20
+ return result;
21
+ }
22
+ result[labelValue] = mapMatrixItemToSeries(item, parser);
23
+ return result;
24
+ }, {});
25
+ //# sourceMappingURL=range.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"range.js","sourceRoot":"","sources":["../../src/transform/range.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AAIxD,MAAM,CAAC,MAAM,qBAAqB,GAAG,CACnC,IAAoB,EACpB,SAAoC,CAAC,KAAK,EAAE,EAAE,CAAC,cAAc,CAAC,KAAK,CAAC,EACjD,EAAE,CACrB,IAAI,CAAC,MAAM;KACR,GAAG,CAAC,CAAC,CAAC,SAAS,EAAE,QAAQ,CAAC,EAAE,EAAE;IAC7B,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC/B,OAAO,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE,KAAK,CAAoB,CAAC;AAC/D,CAAC,CAAC;KACD,MAAM,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;AAEjD,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAC/B,QAA6C,EAC7C,MAAkC,EAClC,MAA0C,EACvB,EAAE;IACrB,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;QACnD,IAAI,MAAM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;YAC5B,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,OAAO,qBAAqB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;IACH,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAC5C,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAC9B,QAA6C,EAC7C,SAAiB,EACjB,MAAkC,EACC,EAAE,CACrC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CACzB,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE;IACf,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAC1C,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,MAAM,CAAC,UAAU,CAAC,GAAG,qBAAqB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACzD,OAAO,MAAM,CAAC;AAChB,CAAC,EACD,EAAE,CACH,CAAC"}
@@ -0,0 +1,85 @@
1
+ export type PromLabelSet = Record<string, string>;
2
+ export type PromSampleValue = [timestamp: number, value: string];
3
+ export type PromVectorItem = {
4
+ metric: PromLabelSet;
5
+ value: PromSampleValue;
6
+ };
7
+ export type PromMatrixItem = {
8
+ metric: PromLabelSet;
9
+ values: PromSampleValue[];
10
+ };
11
+ export type PromSeriesItem = PromVectorItem | PromMatrixItem;
12
+ export type PromResultType = "matrix" | "vector" | "scalar" | "string";
13
+ export type PromVectorData = {
14
+ resultType: "vector";
15
+ result: PromVectorItem[];
16
+ };
17
+ export type PromMatrixData = {
18
+ resultType: "matrix";
19
+ result: PromMatrixItem[];
20
+ };
21
+ export type PromScalarData = {
22
+ resultType: "scalar";
23
+ result: PromSampleValue;
24
+ };
25
+ export type PromStringData = {
26
+ resultType: "string";
27
+ result: PromSampleValue;
28
+ };
29
+ export type PromInstantData = PromVectorData | PromScalarData | PromStringData;
30
+ export type PromResultData = PromInstantData | PromMatrixData;
31
+ export type PromSuccessResponse<TData extends PromResultData = PromResultData> = {
32
+ status: "success";
33
+ data: TData;
34
+ warnings?: string[];
35
+ infos?: string[];
36
+ };
37
+ export type PromErrorResponse = {
38
+ status: "error";
39
+ data?: unknown;
40
+ errorType?: string;
41
+ error?: string;
42
+ warnings?: string[];
43
+ infos?: string[];
44
+ };
45
+ export type PromApiResponse<TData extends PromResultData = PromResultData> = PromSuccessResponse<TData> | PromErrorResponse;
46
+ export type PromQueryTime = Date | number | string;
47
+ export type PromQueryOptions = {
48
+ time?: PromQueryTime;
49
+ timeout?: string;
50
+ limit?: number;
51
+ signal?: AbortSignal;
52
+ headers?: HeadersInit;
53
+ };
54
+ export type PromRangeQueryOptions = {
55
+ start: PromQueryTime;
56
+ end: PromQueryTime;
57
+ step: string | number;
58
+ timeout?: string;
59
+ limit?: number;
60
+ signal?: AbortSignal;
61
+ headers?: HeadersInit;
62
+ };
63
+ export type PromBatchQueryRequest = {
64
+ type?: "query";
65
+ query: string;
66
+ options?: PromQueryOptions;
67
+ };
68
+ export type PromBatchRangeQueryRequest = {
69
+ type: "queryRange";
70
+ query: string;
71
+ options: PromRangeQueryOptions;
72
+ };
73
+ export type PromBatchRequest = PromBatchQueryRequest | PromBatchRangeQueryRequest;
74
+ export type PromBatchOptions = {
75
+ parallel?: boolean;
76
+ };
77
+ export type PromClientOptions = {
78
+ baseUrl: string;
79
+ fetcher?: typeof fetch;
80
+ headers?: HeadersInit | (() => HeadersInit | Promise<HeadersInit>);
81
+ maxGetUrlLength?: number;
82
+ debug?: boolean;
83
+ logger?: Pick<Console, "info">;
84
+ };
85
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAElD,MAAM,MAAM,eAAe,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;AAEjE,MAAM,MAAM,cAAc,GAAG;IAC3B,MAAM,EAAE,YAAY,CAAC;IACrB,KAAK,EAAE,eAAe,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,MAAM,EAAE,YAAY,CAAC;IACrB,MAAM,EAAE,eAAe,EAAE,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG,cAAc,GAAG,cAAc,CAAC;AAE7D,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAEvE,MAAM,MAAM,cAAc,GAAG;IAC3B,UAAU,EAAE,QAAQ,CAAC;IACrB,MAAM,EAAE,cAAc,EAAE,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,UAAU,EAAE,QAAQ,CAAC;IACrB,MAAM,EAAE,cAAc,EAAE,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,UAAU,EAAE,QAAQ,CAAC;IACrB,MAAM,EAAE,eAAe,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,UAAU,EAAE,QAAQ,CAAC;IACrB,MAAM,EAAE,eAAe,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG,cAAc,GAAG,cAAc,GAAG,cAAc,CAAC;AAE/E,MAAM,MAAM,cAAc,GAAG,eAAe,GAAG,cAAc,CAAC;AAE9D,MAAM,MAAM,mBAAmB,CAAC,KAAK,SAAS,cAAc,GAAG,cAAc,IAC3E;IACE,MAAM,EAAE,SAAS,CAAC;IAClB,IAAI,EAAE,KAAK,CAAC;IACZ,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;CAClB,CAAC;AAEJ,MAAM,MAAM,iBAAiB,GAAG;IAC9B,MAAM,EAAE,OAAO,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,eAAe,CAAC,KAAK,SAAS,cAAc,GAAG,cAAc,IACrE,mBAAmB,CAAC,KAAK,CAAC,GAC1B,iBAAiB,CAAC;AAEtB,MAAM,MAAM,aAAa,GAAG,IAAI,GAAG,MAAM,GAAG,MAAM,CAAC;AAEnD,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,OAAO,CAAC,EAAE,WAAW,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,KAAK,EAAE,aAAa,CAAC;IACrB,GAAG,EAAE,aAAa,CAAC;IACnB,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,OAAO,CAAC,EAAE,WAAW,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,gBAAgB,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,0BAA0B,GAAG;IACvC,IAAI,EAAE,YAAY,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,qBAAqB,CAAC;CAChC,CAAC;AAEF,MAAM,MAAM,gBAAgB,GACxB,qBAAqB,GACrB,0BAA0B,CAAC;AAE/B,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,OAAO,KAAK,CAAC;IACvB,OAAO,CAAC,EAAE,WAAW,GAAG,CAAC,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC;IACnE,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;CAChC,CAAC"}
package/dist/types.js ADDED
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
package/package.json ADDED
@@ -0,0 +1,58 @@
1
+ {
2
+ "name": "@lwmacct/260529-promclient",
3
+ "version": "0.7.260529",
4
+ "private": false,
5
+ "description": "Small Prometheus-compatible HTTP API client with PromQL helpers and response transforms.",
6
+ "type": "module",
7
+ "main": "./dist/index.js",
8
+ "types": "./dist/index.d.ts",
9
+ "exports": {
10
+ ".": {
11
+ "types": "./dist/index.d.ts",
12
+ "import": "./dist/index.js"
13
+ },
14
+ "./client": {
15
+ "types": "./dist/client.d.ts",
16
+ "import": "./dist/client.js"
17
+ },
18
+ "./errors": {
19
+ "types": "./dist/errors.d.ts",
20
+ "import": "./dist/errors.js"
21
+ },
22
+ "./promql": {
23
+ "types": "./dist/promql.d.ts",
24
+ "import": "./dist/promql.js"
25
+ },
26
+ "./time": {
27
+ "types": "./dist/time.d.ts",
28
+ "import": "./dist/time.js"
29
+ },
30
+ "./transform": {
31
+ "types": "./dist/transform/index.d.ts",
32
+ "import": "./dist/transform/index.js"
33
+ },
34
+ "./types": {
35
+ "types": "./dist/types.d.ts",
36
+ "import": "./dist/types.js"
37
+ }
38
+ },
39
+ "files": [
40
+ "dist"
41
+ ],
42
+ "repository": {
43
+ "type": "git",
44
+ "url": "git+ssh://git@github.com/lwmacct/260529-promclient.git"
45
+ },
46
+ "publishConfig": {
47
+ "access": "public"
48
+ },
49
+ "scripts": {
50
+ "build": "tsc -p tsconfig.json",
51
+ "prepack": "npm run build",
52
+ "prepublishOnly": "npm run typecheck",
53
+ "typecheck": "tsc -p tsconfig.json --noEmit"
54
+ },
55
+ "devDependencies": {
56
+ "typescript": "~6.0.3"
57
+ }
58
+ }