@homeflare/alchemy 0.34.0 → 0.35.0
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/dist/grafana/alert-rule-group-drop-warning.d.ts +25 -0
- package/dist/grafana/alert-rule-group-drop-warning.d.ts.map +1 -0
- package/dist/grafana/alert-rule-group-fixtures.d.ts +73 -0
- package/dist/grafana/alert-rule-group-fixtures.d.ts.map +1 -0
- package/dist/grafana/alert-rule-group-model.d.ts +28 -0
- package/dist/grafana/alert-rule-group-model.d.ts.map +1 -0
- package/dist/grafana/alert-rule-group.d.ts +60 -0
- package/dist/grafana/alert-rule-group.d.ts.map +1 -0
- package/dist/grafana/index.d.ts +5 -4
- package/dist/grafana/index.d.ts.map +1 -1
- package/dist/grafana/index.js +241 -139
- package/dist/grafana/index.js.map +11 -8
- package/dist/grafana/providers.d.ts +1 -1
- package/dist/grafana/providers.d.ts.map +1 -1
- package/dist/proxmox/index.js +349 -287
- package/dist/proxmox/index.js.map +8 -7
- package/dist/proxmox/network-apply-read.d.ts +12 -0
- package/dist/proxmox/network-apply-read.d.ts.map +1 -1
- package/dist/proxmox/network-apply.d.ts +2 -0
- package/dist/proxmox/network-apply.d.ts.map +1 -1
- package/dist/proxmox/node-network-form.d.ts +86 -54
- package/dist/proxmox/node-network-form.d.ts.map +1 -1
- package/dist/proxmox/node-network-wire.d.ts +100 -0
- package/dist/proxmox/node-network-wire.d.ts.map +1 -0
- package/dist/proxmox/node-network.d.ts +21 -106
- package/dist/proxmox/node-network.d.ts.map +1 -1
- package/docs/grafana-alerting-rules.md +143 -0
- package/docs/grafana-alerting.md +5 -3
- package/docs/grafana.md +4 -2
- package/docs/upstream-conformance.md +16 -4
- package/package.json +1 -1
- package/src/grafana/alert-rule-group-drop-warning.test.ts +107 -0
- package/src/grafana/alert-rule-group-drop-warning.ts +41 -0
- package/src/grafana/alert-rule-group-fixtures.ts +46 -0
- package/src/grafana/alert-rule-group-model.test.ts +75 -0
- package/src/grafana/alert-rule-group-model.ts +66 -0
- package/src/grafana/alert-rule-group-provenance.test.ts +116 -0
- package/src/grafana/alert-rule-group.test.ts +164 -0
- package/src/grafana/alert-rule-group.ts +231 -0
- package/src/grafana/index.ts +11 -4
- package/src/grafana/providers.ts +2 -0
- package/src/proxmox/constraints-host-forms.test.ts +2 -2
- package/src/proxmox/network-apply-read.ts +12 -0
- package/src/proxmox/network-apply.ts +2 -0
- package/src/proxmox/node-network-form.ts +93 -99
- package/src/proxmox/node-network-read-failure.test.ts +206 -0
- package/src/proxmox/node-network-wire.ts +239 -0
- package/src/proxmox/node-network.ts +155 -167
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The warning `Grafana.AlertRuleGroup` logs when a whole-group PUT would silently drop a live rule
|
|
3
|
+
* the declaration never mentions — flagged by an adversarial review of this PR: a human adding a
|
|
4
|
+
* rule in the Grafana UI minutes before a deploy (ordinary, writable provenance — nothing foreign
|
|
5
|
+
* to refuse on) would otherwise be removed with no visible reason, `diff` only ever saying
|
|
6
|
+
* "update". `Grafana.AlertRuleGroup` is still the group as the unit BY DESIGN (that file's own
|
|
7
|
+
* header) — this does not refuse the write, only makes the loss visible.
|
|
8
|
+
*
|
|
9
|
+
* ★ `Effect.logWarning`, NEVER A REFUSAL — mirrors the house pattern `proxmox/unreadable-read.ts`'s
|
|
10
|
+
* `unreadableWarning` established. Alchemy's `Diff` type is exactly `NoopDiff | UpdateDiff |
|
|
11
|
+
* ReplaceDiff` (no fourth action to carry "update, but lossy" through to `bun run plan`'s printed
|
|
12
|
+
* action), and refusing here would contradict "the group is the unit": a whole-group replacement
|
|
13
|
+
* dropping an out-of-band rule is EXPECTED behavior for this resource, not an error condition —
|
|
14
|
+
* only a silent one worth surfacing loudly.
|
|
15
|
+
*
|
|
16
|
+
* ★ NO IMPORT OF `AlertRuleGroupProps` — deliberately primitive arguments (`folderUid`/`group`/a
|
|
17
|
+
* plain `Set` of declared uids) rather than the whole props object, so this file has no
|
|
18
|
+
* dependency back on `alert-rule-group.ts` and can be unit-tested with plain data.
|
|
19
|
+
*/
|
|
20
|
+
import * as Effect from 'effect/Effect';
|
|
21
|
+
export declare const warnOnDroppedRules: (folderUid: string, group: string, declaredUids: ReadonlySet<string>, liveRules: ReadonlyArray<{
|
|
22
|
+
readonly uid?: unknown;
|
|
23
|
+
readonly title?: unknown;
|
|
24
|
+
}> | undefined) => Effect.Effect<void>;
|
|
25
|
+
//# sourceMappingURL=alert-rule-group-drop-warning.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"alert-rule-group-drop-warning.d.ts","sourceRoot":"","sources":["../../src/grafana/alert-rule-group-drop-warning.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AACH,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,eAAO,MAAM,kBAAkB,cAClB,MAAM,SACV,MAAM,gBACC,WAAW,CAAC,MAAM,CAAC,aACtB,aAAa,CAAC;IAAE,QAAQ,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC,GAAG,SAAS,KACzF,MAAM,CAAC,MAAM,CAAC,IAAI,CAcjB,CAAC"}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared fixtures for `alert-rule-group.test.ts`/`alert-rule-group-provenance.test.ts` — split to
|
|
3
|
+
* keep each file under the house's 250-line cap. Deliberately NOT named `*.test.ts` — see
|
|
4
|
+
* `contact-point-fixtures.ts`'s own header for why.
|
|
5
|
+
*/
|
|
6
|
+
export declare const PATH = "/api/v1/provisioning/folder/infra/rule-groups/default";
|
|
7
|
+
export declare const liveRule: {
|
|
8
|
+
condition: string;
|
|
9
|
+
data: {
|
|
10
|
+
refId: string;
|
|
11
|
+
}[];
|
|
12
|
+
execErrState: string;
|
|
13
|
+
folderUID: string;
|
|
14
|
+
for: string;
|
|
15
|
+
id: number;
|
|
16
|
+
noDataState: string;
|
|
17
|
+
orgID: number;
|
|
18
|
+
provenance: string;
|
|
19
|
+
ruleGroup: string;
|
|
20
|
+
title: string;
|
|
21
|
+
uid: string;
|
|
22
|
+
updated: string;
|
|
23
|
+
};
|
|
24
|
+
export declare const liveJson: {
|
|
25
|
+
folderUid: string;
|
|
26
|
+
interval: number;
|
|
27
|
+
rules: {
|
|
28
|
+
condition: string;
|
|
29
|
+
data: {
|
|
30
|
+
refId: string;
|
|
31
|
+
}[];
|
|
32
|
+
execErrState: string;
|
|
33
|
+
folderUID: string;
|
|
34
|
+
for: string;
|
|
35
|
+
id: number;
|
|
36
|
+
noDataState: string;
|
|
37
|
+
orgID: number;
|
|
38
|
+
provenance: string;
|
|
39
|
+
ruleGroup: string;
|
|
40
|
+
title: string;
|
|
41
|
+
uid: string;
|
|
42
|
+
updated: string;
|
|
43
|
+
}[];
|
|
44
|
+
title: string;
|
|
45
|
+
};
|
|
46
|
+
export declare const ruleInput: {
|
|
47
|
+
condition: string;
|
|
48
|
+
data: {
|
|
49
|
+
refId: string;
|
|
50
|
+
}[];
|
|
51
|
+
execErrState: string;
|
|
52
|
+
for: string;
|
|
53
|
+
noDataState: string;
|
|
54
|
+
title: string;
|
|
55
|
+
uid: string;
|
|
56
|
+
};
|
|
57
|
+
export declare const props: {
|
|
58
|
+
folderUid: string;
|
|
59
|
+
group: string;
|
|
60
|
+
interval: number;
|
|
61
|
+
rules: {
|
|
62
|
+
condition: string;
|
|
63
|
+
data: {
|
|
64
|
+
refId: string;
|
|
65
|
+
}[];
|
|
66
|
+
execErrState: string;
|
|
67
|
+
for: string;
|
|
68
|
+
noDataState: string;
|
|
69
|
+
title: string;
|
|
70
|
+
uid: string;
|
|
71
|
+
}[];
|
|
72
|
+
};
|
|
73
|
+
//# sourceMappingURL=alert-rule-group-fixtures.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"alert-rule-group-fixtures.d.ts","sourceRoot":"","sources":["../../src/grafana/alert-rule-group-fixtures.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,eAAO,MAAM,IAAI,0DAA0D,CAAC;AAE5E,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;CAcpB,CAAC;AAEF,eAAO,MAAM,QAAQ;IACnB,SAAS;IACT,QAAQ;IACR,KAAK;;;;;;;;;;;;;;;;;IACL,KAAK;CACN,CAAC;AAEF,eAAO,MAAM,SAAS;;;;;;;;;;CAQrB,CAAC;AAEF,eAAO,MAAM,KAAK;IAChB,SAAS;IACT,KAAK;IACL,QAAQ;IACR,KAAK;;;;;;;;;;;CACN,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Pure functions over one declared alert rule within a `Grafana.AlertRuleGroup` — no SDK call, no
|
|
3
|
+
* Effect. Split out of `alert-rule-group.ts` the same way `dashboard-model.ts` is split out of
|
|
4
|
+
* `dashboard.ts`: keeps that file under the house's 250-line cap, and lets the volatile-field
|
|
5
|
+
* normalization be exercised directly in a test without a fake Grafana in the way.
|
|
6
|
+
*/
|
|
7
|
+
import type * as grafana from '@distilled.cloud/grafana';
|
|
8
|
+
/** One declared rule — the SDK's own `ProvisionedAlertRuleInput` shape, minus the three fields
|
|
9
|
+
* this resource derives from the GROUP itself (never declared per-rule) and `uid` widened from
|
|
10
|
+
* optional to required — see alert-rule-group.ts's file header for the uid-required doctrine. */
|
|
11
|
+
export type AlertRuleInput = Omit<grafana.ProvisionedAlertRuleInput, 'folderUID' | 'orgID' | 'ruleGroup' | 'uid'> & {
|
|
12
|
+
uid: string;
|
|
13
|
+
};
|
|
14
|
+
/** `folderUID`/`ruleGroup`/`orgID` are forced to the group's own values (mirrors
|
|
15
|
+
* `dashboard-model.ts`'s `normalizeModel` forcing `uid`) — a rule's declaration never repeats its
|
|
16
|
+
* own group/folder, and a rule pasted from Grafana's own export always embeds whatever it read at
|
|
17
|
+
* export time, which forcing to canonical values makes comparable regardless.
|
|
18
|
+
* ⚠️ `orgID` DEFAULTS TO `1` — NOT MEASURED against a multi-org instance. Every Grafana instance
|
|
19
|
+
* this house runs is single-org (grafana.md's own credentials section has no org-selecting
|
|
20
|
+
* example); `GrafanaTarget.orgId` exists for a future multi-org target but a rule's own spec
|
|
21
|
+
* functions have no access to it (unlike credentials, it is not ambient context here). A
|
|
22
|
+
* multi-org declaration would need an explicit `orgID` prop added to `AlertRuleInput` — not
|
|
23
|
+
* attempted here since no live target needs it yet. */
|
|
24
|
+
export declare const normalizeRule: (rule: Record<string, unknown>, folderUid: string, group: string) => Record<string, unknown>;
|
|
25
|
+
/** The full wire body for one rule on `routePutAlertRuleGroup` — the group-derived fields filled
|
|
26
|
+
* in, `orgID` defaulted per the note above. */
|
|
27
|
+
export declare const toWireRule: (rule: AlertRuleInput, folderUid: string, group: string) => grafana.ProvisionedAlertRuleInput;
|
|
28
|
+
//# sourceMappingURL=alert-rule-group-model.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"alert-rule-group-model.d.ts","sourceRoot":"","sources":["../../src/grafana/alert-rule-group-model.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,KAAK,OAAO,MAAM,0BAA0B,CAAC;AAEzD;;kGAEkG;AAClG,MAAM,MAAM,cAAc,GAAG,IAAI,CAC/B,OAAO,CAAC,yBAAyB,EACjC,WAAW,GAAG,OAAO,GAAG,WAAW,GAAG,KAAK,CAC5C,GAAG;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC;AAapB;;;;;;;;;wDASwD;AACxD,eAAO,MAAM,aAAa,SAClB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,aAClB,MAAM,SACV,MAAM,KACZ,MAAM,CAAC,MAAM,EAAE,OAAO,CAWxB,CAAC;AAEF;gDACgD;AAChD,eAAO,MAAM,UAAU,SACf,cAAc,aACT,MAAM,SACV,MAAM,KACZ,OAAO,CAAC,yBAKT,CAAC"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import type { Input } from 'alchemy/Input';
|
|
2
|
+
import { Resource } from 'alchemy';
|
|
3
|
+
import * as Provider from 'alchemy/Provider';
|
|
4
|
+
import * as grafana from '@distilled.cloud/grafana';
|
|
5
|
+
import * as Effect from 'effect/Effect';
|
|
6
|
+
import { type AlertRuleInput } from './alert-rule-group-model.ts';
|
|
7
|
+
import { type GrafanaProvisionedObjectError } from './alerting-provenance.ts';
|
|
8
|
+
import { type GrafanaSpec } from './resource.ts';
|
|
9
|
+
export type { AlertRuleInput };
|
|
10
|
+
export interface AlertRuleGroupProps {
|
|
11
|
+
folderUid: string;
|
|
12
|
+
group: string;
|
|
13
|
+
/** Evaluation interval, in seconds. */
|
|
14
|
+
interval: number;
|
|
15
|
+
/** Order is significant — see the file header. */
|
|
16
|
+
rules: ReadonlyArray<AlertRuleInput>;
|
|
17
|
+
}
|
|
18
|
+
export interface AlertRuleGroupAttributes {
|
|
19
|
+
folderUid: string;
|
|
20
|
+
group: string;
|
|
21
|
+
interval: number;
|
|
22
|
+
rules: ReadonlyArray<Record<string, unknown>>;
|
|
23
|
+
}
|
|
24
|
+
export interface GrafanaAlertRuleGroup extends Resource<'Grafana.AlertRuleGroup', AlertRuleGroupProps, AlertRuleGroupAttributes, never> {
|
|
25
|
+
}
|
|
26
|
+
export declare const GrafanaAlertRuleGroup: import("alchemy").ResourceClass<GrafanaAlertRuleGroup>;
|
|
27
|
+
export declare const spec: GrafanaSpec<AlertRuleGroupProps, grafana.AlertRuleGroup, AlertRuleGroupAttributes, grafana.RouteGetAlertRuleGroupError | grafana.RoutePutAlertRuleGroupError | grafana.RouteDeleteAlertRuleGroupError | GrafanaProvisionedObjectError>;
|
|
28
|
+
/**
|
|
29
|
+
* ⚠️ A LOCAL REIMPLEMENTATION OF `resource.ts`'s GENERIC `diff`, NOT A WRAP OF IT — deliberately.
|
|
30
|
+
* The generic `grafanaOperations(spec).diff` fetches live and maps it to `Attributes` entirely
|
|
31
|
+
* inside itself, with no seam to run the drop warning against the rules it read; wrapping it
|
|
32
|
+
* would mean a SECOND live fetch just to see what it saw. This resource's `diff` is the ONLY one
|
|
33
|
+
* in the family that needs a resource-specific side effect mid-comparison, so it re-reads
|
|
34
|
+
* `resource.ts`'s own logic here rather than changing the shared engine every other resource
|
|
35
|
+
* also uses. Keep this in sync with `resource.ts`'s `grafanaOperations.diff` if that ever
|
|
36
|
+
* changes shape.
|
|
37
|
+
*/
|
|
38
|
+
declare const diff: ({ news, output, }: {
|
|
39
|
+
news: Input<AlertRuleGroupProps>;
|
|
40
|
+
output: AlertRuleGroupAttributes | undefined;
|
|
41
|
+
}) => Effect.Effect<{
|
|
42
|
+
readonly action: 'update';
|
|
43
|
+
} | {
|
|
44
|
+
readonly action: 'noop';
|
|
45
|
+
} | undefined, grafana.BadGateway | import("@distilled.cloud/caddy").BadRequest | grafana.BadRequest | grafana.ConfigError | import("@distilled.cloud/caddy").Conflict | import("@distilled.cloud/caddy").Forbidden | grafana.Forbidden | grafana.GatewayTimeout | GrafanaProvisionedObjectError | import("effect/unstable/http/HttpClientError").HttpClientError | grafana.InternalServerError | grafana.Locked | import("@distilled.cloud/caddy").NotFound | grafana.NotFound | grafana.ServiceUnavailable | grafana.TooManyRequests | grafana.Unauthorized | grafana.UnknownGrafanaError | import("@distilled.cloud/caddy").UnprocessableEntity, grafana.GrafanaOpContext>;
|
|
46
|
+
export declare const handlers: {
|
|
47
|
+
list: () => Effect.Effect<never[], never, never>;
|
|
48
|
+
read: ({ olds }: {
|
|
49
|
+
olds: AlertRuleGroupProps;
|
|
50
|
+
}) => Effect.Effect<AlertRuleGroupAttributes | undefined, grafana.BadGateway | import("@distilled.cloud/caddy").BadRequest | grafana.BadRequest | grafana.ConfigError | import("@distilled.cloud/caddy").Conflict | import("@distilled.cloud/caddy").Forbidden | grafana.Forbidden | grafana.GatewayTimeout | GrafanaProvisionedObjectError | import("effect/unstable/http/HttpClientError").HttpClientError | grafana.InternalServerError | grafana.Locked | import("@distilled.cloud/caddy").NotFound | grafana.NotFound | grafana.ServiceUnavailable | grafana.TooManyRequests | grafana.Unauthorized | grafana.UnknownGrafanaError | import("@distilled.cloud/caddy").UnprocessableEntity, grafana.GrafanaOpContext>;
|
|
51
|
+
reconcile: ({ news }: {
|
|
52
|
+
news: AlertRuleGroupProps;
|
|
53
|
+
}) => Effect.Effect<AlertRuleGroupAttributes, grafana.BadGateway | import("@distilled.cloud/caddy").BadRequest | grafana.BadRequest | grafana.ConfigError | import("@distilled.cloud/caddy").Conflict | import("@distilled.cloud/caddy").Forbidden | grafana.Forbidden | grafana.GatewayTimeout | GrafanaProvisionedObjectError | import("effect/unstable/http/HttpClientError").HttpClientError | grafana.InternalServerError | grafana.Locked | import("@distilled.cloud/caddy").NotFound | grafana.NotFound | grafana.ServiceUnavailable | grafana.TooManyRequests | grafana.Unauthorized | grafana.UnknownGrafanaError | import("@distilled.cloud/caddy").UnprocessableEntity, grafana.GrafanaOpContext>;
|
|
54
|
+
delete: ({ olds }: {
|
|
55
|
+
olds: AlertRuleGroupProps;
|
|
56
|
+
}) => Effect.Effect<void, grafana.BadGateway | import("@distilled.cloud/caddy").BadRequest | grafana.BadRequest | grafana.ConfigError | import("@distilled.cloud/caddy").Conflict | import("@distilled.cloud/caddy").Forbidden | grafana.Forbidden | grafana.GatewayTimeout | GrafanaProvisionedObjectError | import("effect/unstable/http/HttpClientError").HttpClientError | grafana.InternalServerError | grafana.Locked | import("@distilled.cloud/caddy").NotFound | grafana.NotFound | grafana.ServiceUnavailable | grafana.TooManyRequests | grafana.Unauthorized | grafana.UnknownGrafanaError | import("@distilled.cloud/caddy").UnprocessableEntity, grafana.GrafanaOpContext>;
|
|
57
|
+
diff: typeof diff;
|
|
58
|
+
};
|
|
59
|
+
export declare const GrafanaAlertRuleGroupProvider: () => import("effect/Layer").Layer<Provider.Provider<GrafanaAlertRuleGroup>, never, grafana.GrafanaOpContext>;
|
|
60
|
+
//# sourceMappingURL=alert-rule-group.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"alert-rule-group.d.ts","sourceRoot":"","sources":["../../src/grafana/alert-rule-group.ts"],"names":[],"mappings":"AA0EA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AACnC,OAAO,KAAK,QAAQ,MAAM,kBAAkB,CAAC;AAC7C,OAAO,KAAK,OAAO,MAAM,0BAA0B,CAAC;AACpD,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,EAAE,KAAK,cAAc,EAA6B,MAAM,6BAA6B,CAAC;AAC7F,OAAO,EACL,KAAK,6BAA6B,EAGnC,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,KAAK,WAAW,EAAmB,MAAM,eAAe,CAAC;AAGlE,YAAY,EAAE,cAAc,EAAE,CAAC;AAE/B,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,uCAAuC;IACvC,QAAQ,EAAE,MAAM,CAAC;IACjB,kDAAkD;IAClD,KAAK,EAAE,aAAa,CAAC,cAAc,CAAC,CAAC;CACtC;AAED,MAAM,WAAW,wBAAwB;IACvC,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,aAAa,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;CAC/C;AAED,MAAM,WAAW,qBAAsB,SAAQ,QAAQ,CACrD,wBAAwB,EACxB,mBAAmB,EACnB,wBAAwB,EACxB,KAAK,CACN;CAAG;AAEJ,eAAO,MAAM,qBAAqB,wDAEhC,CAAC;AA0BH,eAAO,MAAM,IAAI,EAAE,WAAW,CAC5B,mBAAmB,EACnB,OAAO,CAAC,cAAc,EACtB,wBAAwB,EACtB,OAAO,CAAC,2BAA2B,GACnC,OAAO,CAAC,2BAA2B,GACnC,OAAO,CAAC,8BAA8B,GACtC,6BAA6B,CA6ChC,CAAC;AAEF;;;;;;;;;GASG;AACH,QAAA,MAAM,IAAI,sBAGP;IACD,IAAI,EAAE,KAAK,CAAC,mBAAmB,CAAC,CAAC;IACjC,MAAM,EAAE,wBAAwB,GAAG,SAAS,CAAC;CAC9C;qBAI4C,QAAQ;;qBAIlC,MAAM;6oBAErB,CAAC;AAEL,eAAO,MAAM,QAAQ;;;;;;;;;;;;CAAqC,CAAC;AAE3D,eAAO,MAAM,6BAA6B,+GAIvC,CAAC"}
|
package/dist/grafana/index.d.ts
CHANGED
|
@@ -7,11 +7,12 @@
|
|
|
7
7
|
* depend on.
|
|
8
8
|
*
|
|
9
9
|
* `Grafana.Datasource`, `Grafana.Folder`, `Grafana.Dashboard`, `Grafana.ContactPoint`,
|
|
10
|
-
* `Grafana.MuteTiming
|
|
11
|
-
* `Grafana.NotificationPolicy`
|
|
12
|
-
* docs/grafana.md, docs/grafana-folder-dashboard.md and
|
|
13
|
-
* and what is still open.
|
|
10
|
+
* `Grafana.MuteTiming`, `Grafana.MessageTemplate` and `Grafana.AlertRuleGroup` ship here.
|
|
11
|
+
* `Grafana.NotificationPolicy` — the singleton policy tree — is a stacked follow-up PR on the same
|
|
12
|
+
* SDK operations — see docs/grafana.md, docs/grafana-folder-dashboard.md and
|
|
13
|
+
* docs/grafana-alerting.md for what shipped and what is still open.
|
|
14
14
|
*/
|
|
15
|
+
export { type AlertRuleGroupAttributes, type AlertRuleGroupProps, type AlertRuleInput, GrafanaAlertRuleGroup, GrafanaAlertRuleGroupProvider, } from './alert-rule-group.ts';
|
|
15
16
|
export { type DatasourceAttributes, type DatasourceProps, GrafanaDatasource, GrafanaDatasourceProvider, } from './datasource.ts';
|
|
16
17
|
export { type DashboardAttributes, type DashboardModel, type DashboardProps, GrafanaDashboard, GrafanaDashboardProvider, } from './dashboard.ts';
|
|
17
18
|
export { type FolderAttributes, type FolderProps, GrafanaFolder, GrafanaFolderProvider, GrafanaFolderReparentError, } from './folder.ts';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/grafana/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,EACL,KAAK,oBAAoB,EACzB,KAAK,eAAe,EACpB,iBAAiB,EACjB,yBAAyB,GAC1B,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,gBAAgB,EAChB,wBAAwB,GACzB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,WAAW,EAChB,aAAa,EACb,qBAAqB,EACrB,0BAA0B,GAC3B,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,KAAK,sBAAsB,EAC3B,KAAK,iBAAiB,EACtB,mBAAmB,EACnB,2BAA2B,GAC5B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,KAAK,yBAAyB,EAC9B,KAAK,oBAAoB,EACzB,sBAAsB,EACtB,8BAA8B,GAC/B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,KAAK,oBAAoB,EACzB,KAAK,eAAe,EACpB,iBAAiB,EACjB,yBAAyB,GAC1B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,6BAA6B,EAAE,MAAM,kBAAkB,CAAC;AACjE,OAAO,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,KAAK,aAAa,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAC1E,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/grafana/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AACH,OAAO,EACL,KAAK,wBAAwB,EAC7B,KAAK,mBAAmB,EACxB,KAAK,cAAc,EACnB,qBAAqB,EACrB,6BAA6B,GAC9B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,KAAK,oBAAoB,EACzB,KAAK,eAAe,EACpB,iBAAiB,EACjB,yBAAyB,GAC1B,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,KAAK,mBAAmB,EACxB,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,gBAAgB,EAChB,wBAAwB,GACzB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,WAAW,EAChB,aAAa,EACb,qBAAqB,EACrB,0BAA0B,GAC3B,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,KAAK,sBAAsB,EAC3B,KAAK,iBAAiB,EACtB,mBAAmB,EACnB,2BAA2B,GAC5B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,KAAK,yBAAyB,EAC9B,KAAK,oBAAoB,EACzB,sBAAsB,EACtB,8BAA8B,GAC/B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,KAAK,oBAAoB,EACzB,KAAK,eAAe,EACpB,iBAAiB,EACjB,yBAAyB,GAC1B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,6BAA6B,EAAE,MAAM,kBAAkB,CAAC;AACjE,OAAO,EAAE,0BAA0B,EAAE,MAAM,kBAAkB,CAAC;AAC9D,OAAO,EAAE,KAAK,aAAa,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAC1E,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC"}
|