@griffin-app/griffin-ts 0.1.16 → 0.1.18

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/index.d.ts CHANGED
@@ -17,8 +17,8 @@ export type { VariableRef } from "./variable.js";
17
17
  export { secret, isSecretRef } from "./secrets.js";
18
18
  export type { SecretOptions } from "./secrets.js";
19
19
  export { notify } from "./notifications.js";
20
- export { MonitorNotificationSchema } from "./notifications.js";
21
- export type { NotificationTrigger, MonitorNotification, } from "./notifications.js";
20
+ export { MonitorNotificationSchema, NotificationRoutingSchema, SlackRoutingSchema, EmailRoutingSchema, WebhookRoutingSchema, } from "./notifications.js";
21
+ export type { NotificationTrigger, MonitorNotification, NotificationRouting, SlackRouting, EmailRouting, WebhookRouting, } from "./notifications.js";
22
22
  export { START, END } from "./constants.js";
23
23
  export type { START as StartType, END as EndType } from "./constants.js";
24
24
  export { GET, POST, PUT, DELETE, PATCH } from "./http-methods.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,YAAY,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAEhD,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,YAAY,EACV,qBAAqB,EACrB,iBAAiB,GAClB,MAAM,yBAAyB,CAAC;AAMjC,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC5D,YAAY,EACV,iBAAiB,EACjB,YAAY,IAAI,gBAAgB,GACjC,MAAM,cAAc,CAAC;AAMtB,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACxD,YAAY,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AACnD,YAAY,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAC/D,YAAY,EACV,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,oBAAoB,CAAC;AAM5B,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AAC5C,YAAY,EAAE,KAAK,IAAI,SAAS,EAAE,GAAG,IAAI,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAEzE,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAClE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAMxD,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAE1E,YAAY,EACV,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,EACnB,UAAU,EACV,eAAe,EACf,SAAS,EACT,gBAAgB,EAChB,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,eAAe,GAChB,MAAM,iBAAiB,CAAC;AAMzB,OAAO,EACL,uBAAuB,EACvB,0BAA0B,GAC3B,MAAM,qBAAqB,CAAC;AAM7B,OAAO,EACL,cAAc,EACd,eAAe,EACf,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,iBAAiB,CAAC;AAEzB,YAAY,EACV,UAAU,EACV,eAAe,EACf,iBAAiB,EACjB,OAAO,EACP,YAAY,EACZ,cAAc,EACd,mBAAmB,EACnB,IAAI,EACJ,SAAS,IAAI,aAAa,EAC1B,SAAS,IAAI,aAAa,EAC1B,UAAU,IAAI,cAAc,EAC5B,SAAS,IAAI,aAAa,EAC1B,WAAW,IAAI,eAAe,GAC/B,MAAM,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,YAAY,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAEhD,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,YAAY,EACV,qBAAqB,EACrB,iBAAiB,GAClB,MAAM,yBAAyB,CAAC;AAMjC,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC5D,YAAY,EACV,iBAAiB,EACjB,YAAY,IAAI,gBAAgB,GACjC,MAAM,cAAc,CAAC;AAMtB,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AACxD,YAAY,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AACnD,YAAY,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EACL,yBAAyB,EACzB,yBAAyB,EACzB,kBAAkB,EAClB,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EACV,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,EACnB,YAAY,EACZ,YAAY,EACZ,cAAc,GACf,MAAM,oBAAoB,CAAC;AAM5B,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AAC5C,YAAY,EAAE,KAAK,IAAI,SAAS,EAAE,GAAG,IAAI,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAEzE,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAClE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAMxD,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAE1E,YAAY,EACV,cAAc,EACd,gBAAgB,EAChB,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,EACnB,UAAU,EACV,eAAe,EACf,SAAS,EACT,gBAAgB,EAChB,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,eAAe,GAChB,MAAM,iBAAiB,CAAC;AAMzB,OAAO,EACL,uBAAuB,EACvB,0BAA0B,GAC3B,MAAM,qBAAqB,CAAC;AAM7B,OAAO,EACL,cAAc,EACd,eAAe,EACf,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,iBAAiB,CAAC;AAEzB,YAAY,EACV,UAAU,EACV,eAAe,EACf,iBAAiB,EACjB,OAAO,EACP,YAAY,EACZ,cAAc,EACd,mBAAmB,EACnB,IAAI,EACJ,SAAS,IAAI,aAAa,EAC1B,SAAS,IAAI,aAAa,EAC1B,UAAU,IAAI,cAAc,EAC5B,SAAS,IAAI,aAAa,EAC1B,WAAW,IAAI,eAAe,GAC/B,MAAM,qBAAqB,CAAC"}
package/dist/index.js CHANGED
@@ -21,7 +21,7 @@ export { WaitDuration } from "./wait.js";
21
21
  export { variable, isVariableRef } from "./variable.js";
22
22
  export { secret, isSecretRef } from "./secrets.js";
23
23
  export { notify } from "./notifications.js";
24
- export { MonitorNotificationSchema } from "./notifications.js";
24
+ export { MonitorNotificationSchema, NotificationRoutingSchema, SlackRoutingSchema, EmailRoutingSchema, WebhookRoutingSchema, } from "./notifications.js";
25
25
  // ============================================================================
26
26
  // DSL Constants
27
27
  // ============================================================================
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,+EAA+E;AAC/E,eAAe;AACf,+EAA+E;AAE/E,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAGlD,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAM5D,+EAA+E;AAC/E,qBAAqB;AACrB,+EAA+E;AAE/E,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAM5D,+EAA+E;AAC/E,cAAc;AACd,+EAA+E;AAE/E,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAExD,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAEnD,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAM/D,+EAA+E;AAC/E,gBAAgB;AAChB,+EAA+E;AAE/E,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AAG5C,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAClE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAExD,+EAA+E;AAC/E,gBAAgB;AAChB,+EAA+E;AAE/E,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAkB1E,+EAA+E;AAC/E,sDAAsD;AACtD,+EAA+E;AAE/E,OAAO,EACL,uBAAuB,EACvB,0BAA0B,GAC3B,MAAM,qBAAqB,CAAC;AAE7B,+EAA+E;AAC/E,sBAAsB;AACtB,+EAA+E;AAE/E,OAAO,EACL,cAAc,EACd,eAAe,EACf,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,iBAAiB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,+EAA+E;AAC/E,eAAe;AACf,+EAA+E;AAE/E,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAGlD,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAM5D,+EAA+E;AAC/E,qBAAqB;AACrB,+EAA+E;AAE/E,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAM5D,+EAA+E;AAC/E,cAAc;AACd,+EAA+E;AAE/E,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAExD,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAEnD,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EACL,yBAAyB,EACzB,yBAAyB,EACzB,kBAAkB,EAClB,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,oBAAoB,CAAC;AAU5B,+EAA+E;AAC/E,gBAAgB;AAChB,+EAA+E;AAE/E,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AAG5C,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAClE,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,MAAM,uBAAuB,CAAC;AAExD,+EAA+E;AAC/E,gBAAgB;AAChB,+EAA+E;AAE/E,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAkB1E,+EAA+E;AAC/E,sDAAsD;AACtD,+EAA+E;AAE/E,OAAO,EACL,uBAAuB,EACvB,0BAA0B,GAC3B,MAAM,qBAAqB,CAAC;AAE7B,+EAA+E;AAC/E,sBAAsB;AACtB,+EAA+E;AAE/E,OAAO,EACL,cAAc,EACd,eAAe,EACf,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { Type, type Static } from "typebox";
2
+ export declare const IntegrationCategorySchema: Type.TUnsafe<"notifications" | "secrets" | "metrics">;
3
+ export declare const NotificationProviderSchema: Type.TUnsafe<"slack" | "email" | "webhook">;
4
+ export declare const SecretsProviderSchema: Type.TUnsafe<"aws" | "vault">;
5
+ export declare const ProviderSchema: Type.TUnsafe<"slack" | "email" | "webhook" | "aws" | "vault">;
6
+ export type IntegrationCategory = Static<typeof IntegrationCategorySchema>;
7
+ export type SecretsProvider = Static<typeof SecretsProviderSchema>;
8
+ export type NotificationProvider = Static<typeof NotificationProviderSchema>;
9
+ export type Provider = Static<typeof ProviderSchema>;
10
+ //# sourceMappingURL=integrations.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"integrations.d.ts","sourceRoot":"","sources":["../src/integrations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,KAAK,MAAM,EAAE,MAAM,SAAS,CAAC;AAE5C,eAAO,MAAM,yBAAyB,uDAIN,CAAC;AAEjC,eAAO,MAAM,0BAA0B,6CAIN,CAAC;AAElC,eAAO,MAAM,qBAAqB,+BAIN,CAAC;AAC7B,eAAO,MAAM,cAAc,+DAMN,CAAC;AAEtB,MAAM,MAAM,mBAAmB,GAAG,MAAM,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAE3E,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC,OAAO,qBAAqB,CAAC,CAAC;AACnE,MAAM,MAAM,oBAAoB,GAAG,MAAM,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAC7E,MAAM,MAAM,QAAQ,GAAG,MAAM,CAAC,OAAO,cAAc,CAAC,CAAC"}
@@ -0,0 +1,24 @@
1
+ import { StringEnum } from "./shared.js";
2
+ export const IntegrationCategorySchema = StringEnum([
3
+ "notifications",
4
+ "secrets",
5
+ "metrics",
6
+ ], { $id: "IntegrationCategory" });
7
+ export const NotificationProviderSchema = StringEnum([
8
+ "slack",
9
+ "email",
10
+ "webhook",
11
+ ], { $id: "NotificationProvider" });
12
+ export const SecretsProviderSchema = StringEnum([
13
+ //Type.Literal("env"),
14
+ "aws",
15
+ "vault",
16
+ ], { $id: "SecretsProvider" });
17
+ export const ProviderSchema = StringEnum([
18
+ "aws",
19
+ "vault",
20
+ "slack",
21
+ "email",
22
+ "webhook",
23
+ ], { $id: "Provider" });
24
+ //# sourceMappingURL=integrations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"integrations.js","sourceRoot":"","sources":["../src/integrations.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,MAAM,CAAC,MAAM,yBAAyB,GAAG,UAAU,CAAC;IAClD,eAAe;IACf,SAAS;IACT,SAAS;CACV,EAAE,EAAC,GAAG,EAAE,qBAAqB,EAAC,CAAC,CAAC;AAEjC,MAAM,CAAC,MAAM,0BAA0B,GAAG,UAAU,CAAC;IACnD,OAAO;IACP,OAAO;IACP,SAAS;CACV,EAAE,EAAC,GAAG,EAAE,sBAAsB,EAAC,CAAC,CAAC;AAElC,MAAM,CAAC,MAAM,qBAAqB,GAAG,UAAU,CAAC;IAC9C,sBAAsB;IACtB,KAAK;IACL,OAAO;CACR,EAAE,EAAC,GAAG,EAAE,iBAAiB,EAAC,CAAC,CAAC;AAC7B,MAAM,CAAC,MAAM,cAAc,GAAG,UAAU,CAAC;IACvC,KAAK;IACL,OAAO;IACP,OAAO;IACP,OAAO;IACP,SAAS;CACV,EAAE,EAAC,GAAG,EAAE,UAAU,EAAC,CAAC,CAAC"}
@@ -17,6 +17,30 @@ export declare const NotificationTriggerSchema: Type.TUnion<[Type.TObject<{
17
17
  window_minutes: Type.TNumber;
18
18
  }>]>;
19
19
  export type NotificationTrigger = Static<typeof NotificationTriggerSchema>;
20
+ export declare const SlackRoutingSchema: Type.TObject<{
21
+ provider: Type.TLiteral<"slack">;
22
+ channel: Type.TString;
23
+ }>;
24
+ export declare const EmailRoutingSchema: Type.TObject<{
25
+ provider: Type.TLiteral<"email">;
26
+ toAddresses: Type.TArray<Type.TString>;
27
+ }>;
28
+ export declare const WebhookRoutingSchema: Type.TObject<{
29
+ provider: Type.TLiteral<"webhook">;
30
+ }>;
31
+ export declare const NotificationRoutingSchema: Type.TUnion<[Type.TObject<{
32
+ provider: Type.TLiteral<"slack">;
33
+ channel: Type.TString;
34
+ }>, Type.TObject<{
35
+ provider: Type.TLiteral<"email">;
36
+ toAddresses: Type.TArray<Type.TString>;
37
+ }>, Type.TObject<{
38
+ provider: Type.TLiteral<"webhook">;
39
+ }>]>;
40
+ export type SlackRouting = Static<typeof SlackRoutingSchema>;
41
+ export type EmailRouting = Static<typeof EmailRoutingSchema>;
42
+ export type WebhookRouting = Static<typeof WebhookRoutingSchema>;
43
+ export type NotificationRouting = Static<typeof NotificationRoutingSchema>;
20
44
  export declare const MonitorNotificationSchema: Type.TObject<{
21
45
  trigger: Type.TUnion<[Type.TObject<{
22
46
  type: Type.TLiteral<"run_failed">;
@@ -36,6 +60,15 @@ export declare const MonitorNotificationSchema: Type.TObject<{
36
60
  window_minutes: Type.TNumber;
37
61
  }>]>;
38
62
  integration: Type.TString;
63
+ routing: Type.TUnion<[Type.TObject<{
64
+ provider: Type.TLiteral<"slack">;
65
+ channel: Type.TString;
66
+ }>, Type.TObject<{
67
+ provider: Type.TLiteral<"email">;
68
+ toAddresses: Type.TArray<Type.TString>;
69
+ }>, Type.TObject<{
70
+ provider: Type.TLiteral<"webhook">;
71
+ }>]>;
39
72
  cooldown_minutes: Type.TOptional<Type.TNumber>;
40
73
  }>;
41
74
  export type MonitorNotification = Static<typeof MonitorNotificationSchema>;
@@ -44,7 +77,9 @@ declare class NotificationBuilder {
44
77
  private cooldownMinutes?;
45
78
  constructor(trigger: NotificationTrigger);
46
79
  withCooldown(minutes: number): this;
47
- via(integrationName: string): MonitorNotification;
80
+ toSlack(channel: string): MonitorNotification;
81
+ toEmail(toAddresses: string[]): MonitorNotification;
82
+ toWebhook(integration: string): MonitorNotification;
48
83
  }
49
84
  export declare const notify: {
50
85
  onFailure: () => NotificationBuilder;
@@ -1 +1 @@
1
- {"version":3,"file":"notifications.d.ts","sourceRoot":"","sources":["../src/notifications.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,KAAK,MAAM,EAAE,MAAM,SAAS,CAAC;AAM5C,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;IA0BJ,CAAC;AAEnC,MAAM,MAAM,mBAAmB,GAAG,MAAM,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAM3E,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;EAOrC,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,MAAM,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAM3E,cAAM,mBAAmB;IACvB,OAAO,CAAC,OAAO,CAAsB;IACrC,OAAO,CAAC,eAAe,CAAC,CAAS;gBAErB,OAAO,EAAE,mBAAmB;IAIxC,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAKnC,GAAG,CAAC,eAAe,EAAE,MAAM,GAAG,mBAAmB;CAUlD;AAMD,eAAO,MAAM,MAAM;;;uCAOkB,MAAM;oCAMT,MAAM,kBAAkB,MAAM;8BAOpC;QACxB,YAAY,EAAE,MAAM,CAAC;QACrB,UAAU,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC;QAClC,cAAc,EAAE,MAAM,CAAC;KACxB;CAOF,CAAC"}
1
+ {"version":3,"file":"notifications.d.ts","sourceRoot":"","sources":["../src/notifications.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,KAAK,MAAM,EAAE,MAAM,SAAS,CAAC;AAM5C,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;IA0BJ,CAAC;AAEnC,MAAM,MAAM,mBAAmB,GAAG,MAAM,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAM3E,eAAO,MAAM,kBAAkB;;;EAG7B,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;EAG7B,CAAC;AAEH,eAAO,MAAM,oBAAoB;;EAE/B,CAAC;AAEH,eAAO,MAAM,yBAAyB;;;;;;;;IAIpC,CAAC;AAEH,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAC7D,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAC7D,MAAM,MAAM,cAAc,GAAG,MAAM,CAAC,OAAO,oBAAoB,CAAC,CAAC;AACjE,MAAM,MAAM,mBAAmB,GAAG,MAAM,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAM3E,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAQrC,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG,MAAM,CAAC,OAAO,yBAAyB,CAAC,CAAC;AAM3E,cAAM,mBAAmB;IACvB,OAAO,CAAC,OAAO,CAAsB;IACrC,OAAO,CAAC,eAAe,CAAC,CAAS;gBAErB,OAAO,EAAE,mBAAmB;IAIxC,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAKnC,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,mBAAmB;IAW7C,OAAO,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,mBAAmB;IAWnD,SAAS,CAAC,WAAW,EAAE,MAAM,GAAG,mBAAmB;CAUpD;AAMD,eAAO,MAAM,MAAM;;;uCAOkB,MAAM;oCAMT,MAAM,kBAAkB,MAAM;8BAOpC;QACxB,YAAY,EAAE,MAAM,CAAC;QACrB,UAAU,EAAE,KAAK,GAAG,KAAK,GAAG,KAAK,CAAC;QAClC,cAAc,EAAE,MAAM,CAAC;KACxB;CAOF,CAAC"}
@@ -30,15 +30,35 @@ export const NotificationTriggerSchema = Type.Union([
30
30
  }),
31
31
  ], { $id: "NotificationTrigger" });
32
32
  // =============================================================================
33
- // Monitor Notification (DSL config: trigger + integration name)
33
+ // Routing (discriminated union per provider)
34
+ // =============================================================================
35
+ export const SlackRoutingSchema = Type.Object({
36
+ provider: Type.Literal("slack"),
37
+ channel: Type.String(),
38
+ });
39
+ export const EmailRoutingSchema = Type.Object({
40
+ provider: Type.Literal("email"),
41
+ toAddresses: Type.Array(Type.String()),
42
+ });
43
+ export const WebhookRoutingSchema = Type.Object({
44
+ provider: Type.Literal("webhook"),
45
+ });
46
+ export const NotificationRoutingSchema = Type.Union([
47
+ SlackRoutingSchema,
48
+ EmailRoutingSchema,
49
+ WebhookRoutingSchema,
50
+ ]);
51
+ // =============================================================================
52
+ // Monitor Notification (DSL config: trigger + integration + routing)
34
53
  // =============================================================================
35
54
  export const MonitorNotificationSchema = Type.Object({
36
55
  trigger: NotificationTriggerSchema,
37
56
  integration: Type.String(),
57
+ routing: NotificationRoutingSchema,
38
58
  cooldown_minutes: Type.Optional(Type.Number({ minimum: 0 })),
39
59
  }, { $id: "MonitorNotification" });
40
60
  // =============================================================================
41
- // Notification Builder
61
+ // Notification Builder (type-safe: provider-specific terminal methods)
42
62
  // =============================================================================
43
63
  class NotificationBuilder {
44
64
  trigger;
@@ -50,15 +70,35 @@ class NotificationBuilder {
50
70
  this.cooldownMinutes = minutes;
51
71
  return this;
52
72
  }
53
- via(integrationName) {
54
- const result = {
73
+ toSlack(channel) {
74
+ return {
75
+ trigger: this.trigger,
76
+ integration: "slack",
77
+ routing: { provider: "slack", channel },
78
+ ...(this.cooldownMinutes !== undefined && {
79
+ cooldown_minutes: this.cooldownMinutes,
80
+ }),
81
+ };
82
+ }
83
+ toEmail(toAddresses) {
84
+ return {
85
+ trigger: this.trigger,
86
+ integration: "email",
87
+ routing: { provider: "email", toAddresses },
88
+ ...(this.cooldownMinutes !== undefined && {
89
+ cooldown_minutes: this.cooldownMinutes,
90
+ }),
91
+ };
92
+ }
93
+ toWebhook(integration) {
94
+ return {
55
95
  trigger: this.trigger,
56
- integration: integrationName,
96
+ integration,
97
+ routing: { provider: "webhook" },
98
+ ...(this.cooldownMinutes !== undefined && {
99
+ cooldown_minutes: this.cooldownMinutes,
100
+ }),
57
101
  };
58
- if (this.cooldownMinutes !== undefined) {
59
- result.cooldown_minutes = this.cooldownMinutes;
60
- }
61
- return result;
62
102
  }
63
103
  }
64
104
  // =============================================================================
@@ -1 +1 @@
1
- {"version":3,"file":"notifications.js","sourceRoot":"","sources":["../src/notifications.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"notifications.js","sourceRoot":"","sources":["../src/notifications.ts"],"names":[],"mappings":"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"}
@@ -3,5 +3,6 @@
3
3
  * Import from "griffin/schema" to access validation schemas.
4
4
  */
5
5
  export { SecretRefDataSchema, SecretRefSchema, StringLiteralSchema, VariableRefSchema, ResponseFormatSchema, HttpMethodSchema, HttpRequestDSLSchema, FrequencySchema, WaitSchema, JSONPathSchema, FrequencyUnitSchema, XMLPathSchema, TextPathSchema, UnaryPredicateSchema, UnaryPredicateOperatorSchema, BinaryPredicateOperatorSchema, BinaryPredicateSchema, AssertionSchema, AssertionsSchema, NodeDSLSchema, EdgeSchema, MonitorDSLSchema, MonitorDSLSchemaV1, MonitorNotificationSchema, ResolvedStringSchema, HttpRequestResolvedSchema, NodeResolvedSchema, ResolvedMonitorV1Schema, ResolvedMonitorSchema, FrequencyUnit, ResponseFormat, HttpMethod, NodeType, UnaryPredicate, BinaryPredicateOperator, CURRENT_MONITOR_VERSION, SUPPORTED_MONITOR_VERSIONS, } from "./schema.js";
6
+ export { IntegrationCategorySchema, NotificationProviderSchema, SecretsProviderSchema, ProviderSchema, } from "./integrations.js";
6
7
  export type { MonitorDSL, MonitorDSLV1, NodeDSL, HttpRequestDSL, Edge, Frequency, Assertion, Assertions, SecretRef, VariableRef, ResolvedMonitor, ResolvedMonitorV1, NodeResolved, HttpRequestResolved, } from "./schema.js";
7
8
  //# sourceMappingURL=schema-exports.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"schema-exports.d.ts","sourceRoot":"","sources":["../src/schema-exports.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAEL,mBAAmB,EACnB,eAAe,EACf,mBAAmB,EACnB,iBAAiB,EACjB,oBAAoB,EACpB,gBAAgB,EAChB,oBAAoB,EACpB,eAAe,EACf,UAAU,EACV,cAAc,EACd,mBAAmB,EACnB,aAAa,EACb,cAAc,EACd,oBAAoB,EACpB,4BAA4B,EAC5B,6BAA6B,EAC7B,qBAAqB,EACrB,eAAe,EACf,gBAAgB,EAChB,aAAa,EACb,UAAU,EACV,gBAAgB,EAChB,kBAAkB,EAClB,yBAAyB,EAGzB,oBAAoB,EACpB,yBAAyB,EACzB,kBAAkB,EAClB,uBAAuB,EACvB,qBAAqB,EAGrB,aAAa,EACb,cAAc,EACd,UAAU,EACV,QAAQ,EACR,cAAc,EACd,uBAAuB,EAGvB,uBAAuB,EACvB,0BAA0B,GAC3B,MAAM,aAAa,CAAC;AAGrB,YAAY,EACV,UAAU,EACV,YAAY,EACZ,OAAO,EACP,cAAc,EACd,IAAI,EACJ,SAAS,EACT,SAAS,EACT,UAAU,EACV,SAAS,EACT,WAAW,EACX,eAAe,EACf,iBAAiB,EACjB,YAAY,EACZ,mBAAmB,GACpB,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"schema-exports.d.ts","sourceRoot":"","sources":["../src/schema-exports.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAEL,mBAAmB,EACnB,eAAe,EACf,mBAAmB,EACnB,iBAAiB,EACjB,oBAAoB,EACpB,gBAAgB,EAChB,oBAAoB,EACpB,eAAe,EACf,UAAU,EACV,cAAc,EACd,mBAAmB,EACnB,aAAa,EACb,cAAc,EACd,oBAAoB,EACpB,4BAA4B,EAC5B,6BAA6B,EAC7B,qBAAqB,EACrB,eAAe,EACf,gBAAgB,EAChB,aAAa,EACb,UAAU,EACV,gBAAgB,EAChB,kBAAkB,EAClB,yBAAyB,EAGzB,oBAAoB,EACpB,yBAAyB,EACzB,kBAAkB,EAClB,uBAAuB,EACvB,qBAAqB,EAGrB,aAAa,EACb,cAAc,EACd,UAAU,EACV,QAAQ,EACR,cAAc,EACd,uBAAuB,EAGvB,uBAAuB,EACvB,0BAA0B,GAC3B,MAAM,aAAa,CAAC;AAGrB,OAAO,EACL,yBAAyB,EACzB,0BAA0B,EAC1B,qBAAqB,EACrB,cAAc,GACf,MAAM,mBAAmB,CAAC;AAG3B,YAAY,EACV,UAAU,EACV,YAAY,EACZ,OAAO,EACP,cAAc,EACd,IAAI,EACJ,SAAS,EACT,SAAS,EACT,UAAU,EACV,SAAS,EACT,WAAW,EACX,eAAe,EACf,iBAAiB,EACjB,YAAY,EACZ,mBAAmB,GACpB,MAAM,aAAa,CAAC"}
@@ -11,4 +11,5 @@ ResolvedStringSchema, HttpRequestResolvedSchema, NodeResolvedSchema, ResolvedMon
11
11
  FrequencyUnit, ResponseFormat, HttpMethod, NodeType, BinaryPredicateOperator,
12
12
  // Constants
13
13
  CURRENT_MONITOR_VERSION, SUPPORTED_MONITOR_VERSIONS, } from "./schema.js";
14
+ export { IntegrationCategorySchema, NotificationProviderSchema, SecretsProviderSchema, ProviderSchema, } from "./integrations.js";
14
15
  //# sourceMappingURL=schema-exports.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"schema-exports.js","sourceRoot":"","sources":["../src/schema-exports.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO;AACL,yCAAyC;AACzC,mBAAmB,EACnB,eAAe,EACf,mBAAmB,EACnB,iBAAiB,EACjB,oBAAoB,EACpB,gBAAgB,EAChB,oBAAoB,EACpB,eAAe,EACf,UAAU,EACV,cAAc,EACd,mBAAmB,EACnB,aAAa,EACb,cAAc,EACd,oBAAoB,EACpB,4BAA4B,EAC5B,6BAA6B,EAC7B,qBAAqB,EACrB,eAAe,EACf,gBAAgB,EAChB,aAAa,EACb,UAAU,EACV,gBAAgB,EAChB,kBAAkB,EAClB,yBAAyB;AAEzB,mDAAmD;AACnD,oBAAoB,EACpB,yBAAyB,EACzB,kBAAkB,EAClB,uBAAuB,EACvB,qBAAqB;AAErB,yBAAyB;AACzB,aAAa,EACb,cAAc,EACd,UAAU,EACV,QAAQ,EAER,uBAAuB;AAEvB,YAAY;AACZ,uBAAuB,EACvB,0BAA0B,GAC3B,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"schema-exports.js","sourceRoot":"","sources":["../src/schema-exports.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO;AACL,yCAAyC;AACzC,mBAAmB,EACnB,eAAe,EACf,mBAAmB,EACnB,iBAAiB,EACjB,oBAAoB,EACpB,gBAAgB,EAChB,oBAAoB,EACpB,eAAe,EACf,UAAU,EACV,cAAc,EACd,mBAAmB,EACnB,aAAa,EACb,cAAc,EACd,oBAAoB,EACpB,4BAA4B,EAC5B,6BAA6B,EAC7B,qBAAqB,EACrB,eAAe,EACf,gBAAgB,EAChB,aAAa,EACb,UAAU,EACV,gBAAgB,EAChB,kBAAkB,EAClB,yBAAyB;AAEzB,mDAAmD;AACnD,oBAAoB,EACpB,yBAAyB,EACzB,kBAAkB,EAClB,uBAAuB,EACvB,qBAAqB;AAErB,yBAAyB;AACzB,aAAa,EACb,cAAc,EACd,UAAU,EACV,QAAQ,EAER,uBAAuB;AAEvB,YAAY;AACZ,uBAAuB,EACvB,0BAA0B,GAC3B,MAAM,aAAa,CAAC;AAGrB,OAAO,EACL,yBAAyB,EACzB,0BAA0B,EAC1B,qBAAqB,EACrB,cAAc,GACf,MAAM,mBAAmB,CAAC"}
package/dist/schema.d.ts CHANGED
@@ -429,6 +429,15 @@ export declare const MonitorDSLSchemaV1: Type.TObject<{
429
429
  window_minutes: Type.TNumber;
430
430
  }>]>;
431
431
  integration: Type.TString;
432
+ routing: Type.TUnion<[Type.TObject<{
433
+ provider: Type.TLiteral<"slack">;
434
+ channel: Type.TString;
435
+ }>, Type.TObject<{
436
+ provider: Type.TLiteral<"email">;
437
+ toAddresses: Type.TArray<Type.TString>;
438
+ }>, Type.TObject<{
439
+ provider: Type.TLiteral<"webhook">;
440
+ }>]>;
432
441
  cooldown_minutes: Type.TOptional<Type.TNumber>;
433
442
  }>>>;
434
443
  nodes: Type.TArray<Type.TUnion<[Type.TObject<{
@@ -574,6 +583,15 @@ export declare const MonitorDSLSchema: Type.TObject<{
574
583
  window_minutes: Type.TNumber;
575
584
  }>]>;
576
585
  integration: Type.TString;
586
+ routing: Type.TUnion<[Type.TObject<{
587
+ provider: Type.TLiteral<"slack">;
588
+ channel: Type.TString;
589
+ }>, Type.TObject<{
590
+ provider: Type.TLiteral<"email">;
591
+ toAddresses: Type.TArray<Type.TString>;
592
+ }>, Type.TObject<{
593
+ provider: Type.TLiteral<"webhook">;
594
+ }>]>;
577
595
  cooldown_minutes: Type.TOptional<Type.TNumber>;
578
596
  }>>>;
579
597
  nodes: Type.TArray<Type.TUnion<[Type.TObject<{
@@ -843,6 +861,15 @@ export declare const ResolvedMonitorV1Schema: Type.TObject<{
843
861
  window_minutes: Type.TNumber;
844
862
  }>]>;
845
863
  integration: Type.TString;
864
+ routing: Type.TUnion<[Type.TObject<{
865
+ provider: Type.TLiteral<"slack">;
866
+ channel: Type.TString;
867
+ }>, Type.TObject<{
868
+ provider: Type.TLiteral<"email">;
869
+ toAddresses: Type.TArray<Type.TString>;
870
+ }>, Type.TObject<{
871
+ provider: Type.TLiteral<"webhook">;
872
+ }>]>;
846
873
  cooldown_minutes: Type.TOptional<Type.TNumber>;
847
874
  }>>>;
848
875
  environment: Type.TString;
@@ -960,6 +987,15 @@ export declare const ResolvedMonitorSchema: Type.TObject<{
960
987
  window_minutes: Type.TNumber;
961
988
  }>]>;
962
989
  integration: Type.TString;
990
+ routing: Type.TUnion<[Type.TObject<{
991
+ provider: Type.TLiteral<"slack">;
992
+ channel: Type.TString;
993
+ }>, Type.TObject<{
994
+ provider: Type.TLiteral<"email">;
995
+ toAddresses: Type.TArray<Type.TString>;
996
+ }>, Type.TObject<{
997
+ provider: Type.TLiteral<"webhook">;
998
+ }>]>;
963
999
  cooldown_minutes: Type.TOptional<Type.TNumber>;
964
1000
  }>>>;
965
1001
  environment: Type.TString;
@@ -1 +1 @@
1
- {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../src/schema.ts"],"names":[],"mappings":"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"}
@@ -3,4 +3,5 @@
3
3
  * Import from "griffin/types" for TypeScript type checking.
4
4
  */
5
5
  export type { String, HttpRequestDSL, Frequency, Wait, VariableRef, BinaryPredicate, Assertion, Assertions, NodeDSL, Edge, MonitorDSL, } from "./schema.js";
6
+ export type { IntegrationCategory, NotificationProvider, SecretsProvider, Provider, } from "./integrations.js";
6
7
  //# sourceMappingURL=type-exports.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"type-exports.d.ts","sourceRoot":"","sources":["../src/type-exports.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,YAAY,EACV,MAAM,EACN,cAAc,EACd,SAAS,EACT,IAAI,EACJ,WAAW,EACX,eAAe,EACf,SAAS,EACT,UAAU,EACV,OAAO,EACP,IAAI,EACJ,UAAU,GACX,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"type-exports.d.ts","sourceRoot":"","sources":["../src/type-exports.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,YAAY,EACV,MAAM,EACN,cAAc,EACd,SAAS,EACT,IAAI,EACJ,WAAW,EACX,eAAe,EACf,SAAS,EACT,UAAU,EACV,OAAO,EACP,IAAI,EACJ,UAAU,GACX,MAAM,aAAa,CAAC;AAErB,YAAY,EACV,mBAAmB,EACnB,oBAAoB,EACpB,eAAe,EACf,QAAQ,GACT,MAAM,mBAAmB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@griffin-app/griffin-ts",
3
- "version": "0.1.16",
3
+ "version": "0.1.18",
4
4
  "description": "TypeScript DSL for defining griffin API tests",
5
5
  "main": "dist/index.js",
6
6
  "type": "module",
package/src/index.ts CHANGED
@@ -39,10 +39,20 @@ export type { VariableRef } from "./variable.js";
39
39
  export { secret, isSecretRef } from "./secrets.js";
40
40
  export type { SecretOptions } from "./secrets.js";
41
41
  export { notify } from "./notifications.js";
42
- export { MonitorNotificationSchema } from "./notifications.js";
42
+ export {
43
+ MonitorNotificationSchema,
44
+ NotificationRoutingSchema,
45
+ SlackRoutingSchema,
46
+ EmailRoutingSchema,
47
+ WebhookRoutingSchema,
48
+ } from "./notifications.js";
43
49
  export type {
44
50
  NotificationTrigger,
45
51
  MonitorNotification,
52
+ NotificationRouting,
53
+ SlackRouting,
54
+ EmailRouting,
55
+ WebhookRouting,
46
56
  } from "./notifications.js";
47
57
 
48
58
  // ============================================================================
@@ -0,0 +1,32 @@
1
+ import { Type, type Static } from "typebox";
2
+ import { StringEnum } from "./shared.js";
3
+ export const IntegrationCategorySchema = StringEnum([
4
+ "notifications",
5
+ "secrets",
6
+ "metrics",
7
+ ], {$id: "IntegrationCategory"});
8
+
9
+ export const NotificationProviderSchema = StringEnum([
10
+ "slack",
11
+ "email",
12
+ "webhook",
13
+ ], {$id: "NotificationProvider"});
14
+
15
+ export const SecretsProviderSchema = StringEnum([
16
+ //Type.Literal("env"),
17
+ "aws",
18
+ "vault",
19
+ ], {$id: "SecretsProvider"});
20
+ export const ProviderSchema = StringEnum([
21
+ "aws",
22
+ "vault",
23
+ "slack",
24
+ "email",
25
+ "webhook",
26
+ ], {$id: "Provider"});
27
+
28
+ export type IntegrationCategory = Static<typeof IntegrationCategorySchema>;
29
+
30
+ export type SecretsProvider = Static<typeof SecretsProviderSchema>;
31
+ export type NotificationProvider = Static<typeof NotificationProviderSchema>;
32
+ export type Provider = Static<typeof ProviderSchema>;
@@ -35,13 +35,43 @@ export const NotificationTriggerSchema = Type.Union([
35
35
  export type NotificationTrigger = Static<typeof NotificationTriggerSchema>;
36
36
 
37
37
  // =============================================================================
38
- // Monitor Notification (DSL config: trigger + integration name)
38
+ // Routing (discriminated union per provider)
39
+ // =============================================================================
40
+
41
+ export const SlackRoutingSchema = Type.Object({
42
+ provider: Type.Literal("slack"),
43
+ channel: Type.String(),
44
+ });
45
+
46
+ export const EmailRoutingSchema = Type.Object({
47
+ provider: Type.Literal("email"),
48
+ toAddresses: Type.Array(Type.String()),
49
+ });
50
+
51
+ export const WebhookRoutingSchema = Type.Object({
52
+ provider: Type.Literal("webhook"),
53
+ });
54
+
55
+ export const NotificationRoutingSchema = Type.Union([
56
+ SlackRoutingSchema,
57
+ EmailRoutingSchema,
58
+ WebhookRoutingSchema,
59
+ ]);
60
+
61
+ export type SlackRouting = Static<typeof SlackRoutingSchema>;
62
+ export type EmailRouting = Static<typeof EmailRoutingSchema>;
63
+ export type WebhookRouting = Static<typeof WebhookRoutingSchema>;
64
+ export type NotificationRouting = Static<typeof NotificationRoutingSchema>;
65
+
66
+ // =============================================================================
67
+ // Monitor Notification (DSL config: trigger + integration + routing)
39
68
  // =============================================================================
40
69
 
41
70
  export const MonitorNotificationSchema = Type.Object(
42
71
  {
43
72
  trigger: NotificationTriggerSchema,
44
73
  integration: Type.String(),
74
+ routing: NotificationRoutingSchema,
45
75
  cooldown_minutes: Type.Optional(Type.Number({ minimum: 0 })),
46
76
  },
47
77
  { $id: "MonitorNotification" },
@@ -50,7 +80,7 @@ export const MonitorNotificationSchema = Type.Object(
50
80
  export type MonitorNotification = Static<typeof MonitorNotificationSchema>;
51
81
 
52
82
  // =============================================================================
53
- // Notification Builder
83
+ // Notification Builder (type-safe: provider-specific terminal methods)
54
84
  // =============================================================================
55
85
 
56
86
  class NotificationBuilder {
@@ -66,15 +96,37 @@ class NotificationBuilder {
66
96
  return this;
67
97
  }
68
98
 
69
- via(integrationName: string): MonitorNotification {
70
- const result: MonitorNotification = {
99
+ toSlack(channel: string): MonitorNotification {
100
+ return {
101
+ trigger: this.trigger,
102
+ integration: "slack",
103
+ routing: { provider: "slack", channel },
104
+ ...(this.cooldownMinutes !== undefined && {
105
+ cooldown_minutes: this.cooldownMinutes,
106
+ }),
107
+ };
108
+ }
109
+
110
+ toEmail(toAddresses: string[]): MonitorNotification {
111
+ return {
112
+ trigger: this.trigger,
113
+ integration: "email",
114
+ routing: { provider: "email", toAddresses },
115
+ ...(this.cooldownMinutes !== undefined && {
116
+ cooldown_minutes: this.cooldownMinutes,
117
+ }),
118
+ };
119
+ }
120
+
121
+ toWebhook(integration: string): MonitorNotification {
122
+ return {
71
123
  trigger: this.trigger,
72
- integration: integrationName,
124
+ integration,
125
+ routing: { provider: "webhook" },
126
+ ...(this.cooldownMinutes !== undefined && {
127
+ cooldown_minutes: this.cooldownMinutes,
128
+ }),
73
129
  };
74
- if (this.cooldownMinutes !== undefined) {
75
- result.cooldown_minutes = this.cooldownMinutes;
76
- }
77
- return result;
78
130
  }
79
131
  }
80
132
 
@@ -50,6 +50,14 @@ export {
50
50
  SUPPORTED_MONITOR_VERSIONS,
51
51
  } from "./schema.js";
52
52
 
53
+
54
+ export {
55
+ IntegrationCategorySchema,
56
+ NotificationProviderSchema,
57
+ SecretsProviderSchema,
58
+ ProviderSchema,
59
+ } from "./integrations.js";
60
+
53
61
  // Type exports
54
62
  export type {
55
63
  MonitorDSL,
@@ -16,3 +16,10 @@ export type {
16
16
  Edge,
17
17
  MonitorDSL,
18
18
  } from "./schema.js";
19
+
20
+ export type {
21
+ IntegrationCategory,
22
+ NotificationProvider,
23
+ SecretsProvider,
24
+ Provider,
25
+ } from "./integrations.js";