@homeflare/alchemy 0.34.0 → 0.36.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.
Files changed (65) hide show
  1. package/dist/grafana/alert-rule-group-drop-warning.d.ts +25 -0
  2. package/dist/grafana/alert-rule-group-drop-warning.d.ts.map +1 -0
  3. package/dist/grafana/alert-rule-group-fixtures.d.ts +73 -0
  4. package/dist/grafana/alert-rule-group-fixtures.d.ts.map +1 -0
  5. package/dist/grafana/alert-rule-group-model.d.ts +28 -0
  6. package/dist/grafana/alert-rule-group-model.d.ts.map +1 -0
  7. package/dist/grafana/alert-rule-group.d.ts +60 -0
  8. package/dist/grafana/alert-rule-group.d.ts.map +1 -0
  9. package/dist/grafana/index.d.ts +6 -4
  10. package/dist/grafana/index.d.ts.map +1 -1
  11. package/dist/grafana/index.js +355 -139
  12. package/dist/grafana/index.js.map +14 -8
  13. package/dist/grafana/notification-policy-drop-warning.d.ts +27 -0
  14. package/dist/grafana/notification-policy-drop-warning.d.ts.map +1 -0
  15. package/dist/grafana/notification-policy-fixtures.d.ts +34 -0
  16. package/dist/grafana/notification-policy-fixtures.d.ts.map +1 -0
  17. package/dist/grafana/notification-policy-model.d.ts +53 -0
  18. package/dist/grafana/notification-policy-model.d.ts.map +1 -0
  19. package/dist/grafana/notification-policy.d.ts +57 -0
  20. package/dist/grafana/notification-policy.d.ts.map +1 -0
  21. package/dist/grafana/providers.d.ts +1 -1
  22. package/dist/grafana/providers.d.ts.map +1 -1
  23. package/dist/proxmox/index.js +349 -287
  24. package/dist/proxmox/index.js.map +8 -7
  25. package/dist/proxmox/network-apply-read.d.ts +12 -0
  26. package/dist/proxmox/network-apply-read.d.ts.map +1 -1
  27. package/dist/proxmox/network-apply.d.ts +2 -0
  28. package/dist/proxmox/network-apply.d.ts.map +1 -1
  29. package/dist/proxmox/node-network-form.d.ts +86 -54
  30. package/dist/proxmox/node-network-form.d.ts.map +1 -1
  31. package/dist/proxmox/node-network-wire.d.ts +100 -0
  32. package/dist/proxmox/node-network-wire.d.ts.map +1 -0
  33. package/dist/proxmox/node-network.d.ts +21 -106
  34. package/dist/proxmox/node-network.d.ts.map +1 -1
  35. package/docs/grafana-alerting-rules.md +143 -0
  36. package/docs/grafana-alerting.md +7 -4
  37. package/docs/grafana-notification-policy.md +127 -0
  38. package/docs/grafana.md +12 -6
  39. package/docs/upstream-conformance.md +30 -4
  40. package/package.json +1 -1
  41. package/src/grafana/alert-rule-group-drop-warning.test.ts +107 -0
  42. package/src/grafana/alert-rule-group-drop-warning.ts +41 -0
  43. package/src/grafana/alert-rule-group-fixtures.ts +46 -0
  44. package/src/grafana/alert-rule-group-model.test.ts +75 -0
  45. package/src/grafana/alert-rule-group-model.ts +66 -0
  46. package/src/grafana/alert-rule-group-provenance.test.ts +116 -0
  47. package/src/grafana/alert-rule-group.test.ts +164 -0
  48. package/src/grafana/alert-rule-group.ts +231 -0
  49. package/src/grafana/index.ts +18 -4
  50. package/src/grafana/notification-policy-drop-warning.test.ts +163 -0
  51. package/src/grafana/notification-policy-drop-warning.ts +60 -0
  52. package/src/grafana/notification-policy-fixtures.ts +27 -0
  53. package/src/grafana/notification-policy-model.test.ts +104 -0
  54. package/src/grafana/notification-policy-model.ts +100 -0
  55. package/src/grafana/notification-policy-refusals.test.ts +119 -0
  56. package/src/grafana/notification-policy.test.ts +86 -0
  57. package/src/grafana/notification-policy.ts +191 -0
  58. package/src/grafana/providers.ts +4 -0
  59. package/src/proxmox/constraints-host-forms.test.ts +2 -2
  60. package/src/proxmox/network-apply-read.ts +12 -0
  61. package/src/proxmox/network-apply.ts +2 -0
  62. package/src/proxmox/node-network-form.ts +93 -99
  63. package/src/proxmox/node-network-read-failure.test.ts +206 -0
  64. package/src/proxmox/node-network-wire.ts +239 -0
  65. 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"}
@@ -7,11 +7,13 @@
7
7
  * depend on.
8
8
  *
9
9
  * `Grafana.Datasource`, `Grafana.Folder`, `Grafana.Dashboard`, `Grafana.ContactPoint`,
10
- * `Grafana.MuteTiming` and `Grafana.MessageTemplate` ship here. `Grafana.AlertRuleGroup` and
11
- * `Grafana.NotificationPolicy` are stacked follow-up PRs on the same SDK operations — see
12
- * docs/grafana.md, docs/grafana-folder-dashboard.md and docs/grafana-alerting.md for what shipped
13
- * and what is still open.
10
+ * `Grafana.MuteTiming`, `Grafana.MessageTemplate`, `Grafana.AlertRuleGroup` and
11
+ * `Grafana.NotificationPolicy` all ship here — see docs/grafana.md, docs/grafana-folder-dashboard.md,
12
+ * docs/grafana-alerting.md, docs/grafana-alerting-rules.md and
13
+ * docs/grafana-notification-policy.md for what shipped.
14
14
  */
15
+ export { type AlertRuleGroupAttributes, type AlertRuleGroupProps, type AlertRuleInput, GrafanaAlertRuleGroup, GrafanaAlertRuleGroupProvider, } from './alert-rule-group.ts';
16
+ export { type NotificationPolicyAttributes, type NotificationPolicyProps, type PolicyRoute, GrafanaNotificationPolicy, GrafanaNotificationPolicyProvider, } from './notification-policy.ts';
15
17
  export { type DatasourceAttributes, type DatasourceProps, GrafanaDatasource, GrafanaDatasourceProvider, } from './datasource.ts';
16
18
  export { type DashboardAttributes, type DashboardModel, type DashboardProps, GrafanaDashboard, GrafanaDashboardProvider, } from './dashboard.ts';
17
19
  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,4BAA4B,EACjC,KAAK,uBAAuB,EAC5B,KAAK,WAAW,EAChB,yBAAyB,EACzB,iCAAiC,GAClC,MAAM,0BAA0B,CAAC;AAClC,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"}