@beepsdev/sdk 0.0.3 → 0.0.4

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.cjs CHANGED
@@ -34,6 +34,7 @@ __export(index_exports, {
34
34
  ScheduleResource: () => ScheduleResource,
35
35
  ServerError: () => ServerError,
36
36
  ValidationError: () => ValidationError,
37
+ WebhookResource: () => WebhookResource,
37
38
  formatUTCDate: () => formatUTCDate,
38
39
  isIsoZ: () => isIsoZ,
39
40
  mapHttpError: () => mapHttpError,
@@ -766,6 +767,54 @@ var MemberResource = class {
766
767
  }
767
768
  };
768
769
 
770
+ // src/resources/webhook.ts
771
+ var WebhookResource = class {
772
+ http;
773
+ constructor(http) {
774
+ this.http = http;
775
+ }
776
+ async listByRelay(relayId) {
777
+ const res = await this.http.get(
778
+ `/relay/${relayId}/webhooks`
779
+ );
780
+ return res.webhooks;
781
+ }
782
+ async listByRelaySafe(relayId) {
783
+ try {
784
+ const data = await this.listByRelay(relayId);
785
+ return { data };
786
+ } catch (error) {
787
+ return { error };
788
+ }
789
+ }
790
+ async create(relayId, description) {
791
+ const res = await this.http.post(
792
+ `/relay/${relayId}/webhooks`,
793
+ { description }
794
+ );
795
+ return res.webhook;
796
+ }
797
+ async createSafe(relayId, description) {
798
+ try {
799
+ const data = await this.create(relayId, description);
800
+ return { data };
801
+ } catch (error) {
802
+ return { error };
803
+ }
804
+ }
805
+ async delete(relayId, webhookId) {
806
+ await this.http.delete(`/relay/${relayId}/webhooks/${webhookId}`);
807
+ }
808
+ async deleteSafe(relayId, webhookId) {
809
+ try {
810
+ await this.delete(relayId, webhookId);
811
+ return { data: void 0 };
812
+ } catch (error) {
813
+ return { error };
814
+ }
815
+ }
816
+ };
817
+
769
818
  // src/client.ts
770
819
  var BeepsClient = class {
771
820
  relay;
@@ -774,6 +823,7 @@ var BeepsClient = class {
774
823
  alert;
775
824
  integration;
776
825
  member;
826
+ webhook;
777
827
  constructor(config) {
778
828
  if (!config.apiKey) {
779
829
  throw new Error("apiKey is required");
@@ -785,6 +835,7 @@ var BeepsClient = class {
785
835
  this.alert = new AlertResource(http);
786
836
  this.integration = new IntegrationResource(http);
787
837
  this.member = new MemberResource(http);
838
+ this.webhook = new WebhookResource(http);
788
839
  }
789
840
  };
790
841
  // Annotate the CommonJS export names for ESM import in node:
@@ -803,6 +854,7 @@ var BeepsClient = class {
803
854
  ScheduleResource,
804
855
  ServerError,
805
856
  ValidationError,
857
+ WebhookResource,
806
858
  formatUTCDate,
807
859
  isIsoZ,
808
860
  mapHttpError,
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts","../src/version.ts","../src/errors.ts","../src/http.ts","../src/resources/relay-rules.ts","../src/resources/relay.ts","../src/utils/date.ts","../src/resources/schedule.ts","../src/resources/contact-method.ts","../src/resources/alert.ts","../src/resources/integration.ts","../src/resources/member.ts","../src/client.ts"],"sourcesContent":["export { BeepsClient } from \"./client\";\nexport * from \"./types\";\nexport * from \"./errors\";\nexport { ScheduleResource } from \"./resources/schedule\";\nexport { RelayRulesResource } from \"./resources/relay-rules\";\nexport { ContactMethodResource } from \"./resources/contact-method\";\nexport { AlertResource } from \"./resources/alert\";\nexport { MemberResource } from \"./resources/member\";\nexport { formatUTCDate, isIsoZ, normalizeDateParam } from \"./utils/date\";\n","export const SDK_VERSION = \"0.0.1\";\n","export class BeepsError extends Error {\n code?: string;\n status?: number;\n requestId?: string;\n retryable?: boolean;\n cause?: unknown;\n\n constructor(\n message: string,\n options?: {\n code?: string;\n status?: number;\n requestId?: string;\n retryable?: boolean;\n cause?: unknown;\n },\n ) {\n super(message);\n this.name = \"BeepsError\";\n this.code = options?.code;\n this.status = options?.status;\n this.requestId = options?.requestId;\n this.retryable = options?.retryable ?? false;\n this.cause = options?.cause;\n }\n\n toString() {\n const parts = [\n `BeepsError`,\n this.code ? `Code=${this.code}` : null,\n this.status ? `status=${this.status}` : null,\n this.requestId ? `requestId=${this.requestId}` : null,\n this.retryable ? `retryable=true` : null,\n ].filter(Boolean);\n return `${parts.join(\" \")}: ${this.message}`;\n }\n}\n\nexport class AuthError extends BeepsError {\n constructor(\n message = \"Unauthorized\",\n opts?: ConstructorParameters<typeof BeepsError>[1],\n ) {\n super(message, { ...opts, status: opts?.status ?? 401 });\n this.name = \"AuthError\";\n }\n}\n\nexport class ValidationError extends BeepsError {\n details?: unknown;\n constructor(\n message = \"Validation error\",\n opts?: ConstructorParameters<typeof BeepsError>[1] & { details?: unknown },\n ) {\n super(message, { ...opts, status: opts?.status ?? 400 });\n this.name = \"ValidationError\";\n this.details = opts?.details;\n }\n}\n\nexport class NotFoundError extends BeepsError {\n constructor(\n message = \"Not found\",\n opts?: ConstructorParameters<typeof BeepsError>[1],\n ) {\n super(message, { ...opts, status: opts?.status ?? 404 });\n this.name = \"NotFoundError\";\n }\n}\n\nexport class RateLimitError extends BeepsError {\n constructor(\n message = \"Rate limited\",\n opts?: ConstructorParameters<typeof BeepsError>[1],\n ) {\n super(message, { ...opts, status: opts?.status ?? 429, retryable: true });\n this.name = \"RateLimitError\";\n }\n}\n\nexport class ServerError extends BeepsError {\n constructor(\n message = \"Server error\",\n opts?: ConstructorParameters<typeof BeepsError>[1],\n ) {\n super(message, { ...opts, status: opts?.status ?? 500, retryable: true });\n this.name = \"ServerError\";\n }\n}\n\nexport class NetworkError extends BeepsError {\n constructor(\n message = \"Network error\",\n opts?: ConstructorParameters<typeof BeepsError>[1],\n ) {\n super(message, { ...opts });\n this.name = \"NetworkError\";\n }\n}\n\nexport class HttpError extends BeepsError {\n constructor(\n message = \"HTTP error\",\n opts?: ConstructorParameters<typeof BeepsError>[1],\n ) {\n super(message, { ...opts });\n this.name = \"HttpError\";\n }\n}\n\nexport function mapHttpError(\n status: number,\n message: string,\n requestId?: string,\n) {\n if (status === 401 || status === 403)\n return new AuthError(message, { status, requestId });\n if (status === 400)\n return new ValidationError(message, { status, requestId });\n if (status === 404) return new NotFoundError(message, { status, requestId });\n if (status === 429) return new RateLimitError(message, { status, requestId });\n if (status >= 500) return new ServerError(message, { status, requestId });\n return new HttpError(message, { status, requestId });\n}\n","import { SDK_VERSION } from \"./version\";\nimport { BeepsError, NetworkError, mapHttpError } from \"./errors\";\nimport type { BeepsClientConfig } from \"./types\";\n\ntype FetcherConfig = Required<Pick<BeepsClientConfig, \"apiKey\">> &\n Omit<BeepsClientConfig, \"apiKey\"> & {\n baseURL: string;\n timeoutMs: number;\n retries: { attempts: number; backoffMs: number };\n };\n\nexport class HttpClient {\n private cfg: FetcherConfig;\n private _fetch: typeof fetch;\n\n constructor(config: BeepsClientConfig) {\n const baseURL = config.baseURL ?? \"https://api.beeps.dev/v0\";\n const timeoutMs = config.timeoutMs ?? 10_000;\n const retries = config.retries ?? { attempts: 2, backoffMs: 300 };\n this.cfg = { ...config, baseURL, timeoutMs, retries } as FetcherConfig;\n this._fetch = config.fetch ?? fetch;\n }\n\n async post<T>(path: string, body: unknown): Promise<T> {\n return this.request<T>(\"POST\", path, body);\n }\n async get<T>(path: string): Promise<T> {\n return this.request<T>(\"GET\", path);\n }\n async put<T>(path: string, body: unknown): Promise<T> {\n return this.request<T>(\"PUT\", path, body);\n }\n async patch<T>(path: string, body: unknown): Promise<T> {\n return this.request<T>(\"PATCH\", path, body);\n }\n async delete<T>(path: string): Promise<T> {\n return this.request<T>(\"DELETE\", path);\n }\n\n private async request<T>(\n method: string,\n path: string,\n body?: unknown,\n ): Promise<T> {\n const url =\n this.cfg.baseURL.replace(/\\/+$/, \"\") + \"/\" + path.replace(/^\\/+/, \"\");\n const controller = new AbortController();\n const id = setTimeout(() => controller.abort(), this.cfg.timeoutMs);\n try {\n let attempt = 0;\n while (true) {\n try {\n const res = await this._fetch(url, {\n method,\n headers: {\n \"Content-Type\": \"application/json\",\n \"X-API-Key\": this.cfg.apiKey,\n \"User-Agent\": `beepsdev-sdk/${SDK_VERSION}`,\n },\n body: body !== undefined ? JSON.stringify(body) : undefined,\n signal: controller.signal,\n });\n\n const requestId = res.headers.get(\"x-request-id\") ?? undefined;\n const isJson = (res.headers.get(\"content-type\") || \"\").includes(\n \"application/json\",\n );\n const payload = (isJson\n ? await res.json().catch(() => ({}))\n : {}) as Record<string, unknown>;\n\n if (res.ok) {\n return payload as T;\n }\n\n const msg =\n typeof payload.error === \"string\"\n ? payload.error\n : typeof payload.message === \"string\"\n ? payload.message\n : \"Request failed\";\n\n const err = mapHttpError(res.status, msg, requestId);\n if (\n this.shouldRetry(res.status) &&\n attempt < this.cfg.retries.attempts\n ) {\n attempt++;\n await this.sleep(this.jitterBackoff(attempt));\n continue;\n }\n throw err;\n } catch (e) {\n if (e instanceof BeepsError) {\n throw e;\n }\n if (e instanceof Error && e.name === \"AbortError\") {\n throw new NetworkError(\"Request timed out\", { cause: e });\n }\n if (e instanceof TypeError) {\n if (attempt < this.cfg.retries.attempts) {\n attempt++;\n await this.sleep(this.jitterBackoff(attempt));\n continue;\n }\n throw new NetworkError(\"Network error\", { cause: e });\n }\n throw e;\n }\n }\n } finally {\n clearTimeout(id);\n }\n }\n\n private shouldRetry(status: number) {\n if (status === 429) return true;\n if (status >= 500 && status !== 501 && status !== 505) return true;\n return false;\n }\n\n private jitterBackoff(attempt: number) {\n const base = this.cfg.retries.backoffMs * Math.pow(2, attempt - 1);\n const jitter = Math.random() * 100;\n return base + jitter;\n }\n\n private sleep(ms: number) {\n return new Promise((r) => setTimeout(r, ms));\n }\n}\n","import type {\n CreateRelayRuleInput,\n UpdateRelayRuleInput,\n RelayRule,\n ListRelayRulesParams,\n ReorderRelayRulesInput,\n Result,\n} from \"../types\";\nimport { HttpClient } from \"../http\";\n\nexport class RelayRulesResource {\n private http: HttpClient;\n\n constructor(http: HttpClient) {\n this.http = http;\n }\n\n async list(relayId: string, params?: ListRelayRulesParams): Promise<RelayRule[]> {\n const qs = new URLSearchParams();\n if (params?.enabled !== undefined) {\n qs.set(\"enabled\", params.enabled.toString());\n }\n if (params?.ruleType) {\n qs.set(\"ruleType\", params.ruleType);\n }\n const path = qs.toString()\n ? `/relay/${relayId}/rules?${qs.toString()}`\n : `/relay/${relayId}/rules`;\n const res = await this.http.get<{ rules: RelayRule[] }>(path);\n return res.rules;\n }\n\n async create(relayId: string, input: CreateRelayRuleInput): Promise<RelayRule> {\n const res = await this.http.post<{ rule: RelayRule }>(`/relay/${relayId}/rules`, input);\n return res.rule;\n }\n\n async get(relayId: string, ruleId: string): Promise<RelayRule> {\n const res = await this.http.get<{ rule: RelayRule }>(`/relay/${relayId}/rules/${ruleId}`);\n return res.rule;\n }\n\n async update(relayId: string, ruleId: string, input: UpdateRelayRuleInput): Promise<RelayRule> {\n const res = await this.http.put<{ rule: RelayRule }>(`/relay/${relayId}/rules/${ruleId}`, input);\n return res.rule;\n }\n\n async delete(relayId: string, ruleId: string): Promise<{ success: boolean }> {\n const res = await this.http.delete<{ success: boolean }>(`/relay/${relayId}/rules/${ruleId}`);\n return res;\n }\n\n async reorder(relayId: string, input: ReorderRelayRulesInput): Promise<RelayRule[]> {\n const res = await this.http.put<{ rules: RelayRule[] }>(`/relay/${relayId}/rules/reorder`, input);\n return res.rules;\n }\n\n // Safe versions that return Result<T> instead of throwing\n async listSafe(relayId: string, params?: ListRelayRulesParams): Promise<Result<RelayRule[]>> {\n try {\n const data = await this.list(relayId, params);\n return { data };\n } catch (error) {\n return { error: error as Error };\n }\n }\n\n async createSafe(relayId: string, input: CreateRelayRuleInput): Promise<Result<RelayRule>> {\n try {\n const data = await this.create(relayId, input);\n return { data };\n } catch (error) {\n return { error: error as Error };\n }\n }\n\n async getSafe(relayId: string, ruleId: string): Promise<Result<RelayRule>> {\n try {\n const data = await this.get(relayId, ruleId);\n return { data };\n } catch (error) {\n return { error: error as Error };\n }\n }\n\n async updateSafe(relayId: string, ruleId: string, input: UpdateRelayRuleInput): Promise<Result<RelayRule>> {\n try {\n const data = await this.update(relayId, ruleId, input);\n return { data };\n } catch (error) {\n return { error: error as Error };\n }\n }\n\n async deleteSafe(relayId: string, ruleId: string): Promise<Result<{ success: boolean }>> {\n try {\n const data = await this.delete(relayId, ruleId);\n return { data };\n } catch (error) {\n return { error: error as Error };\n }\n }\n\n async reorderSafe(relayId: string, input: ReorderRelayRulesInput): Promise<Result<RelayRule[]>> {\n try {\n const data = await this.reorder(relayId, input);\n return { data };\n } catch (error) {\n return { error: error as Error };\n }\n }\n}","import type {\n CreateRelayInput,\n Relay,\n RelayLintInput,\n RelayLintResult,\n RelaySimulationInput,\n RelaySimulationResult,\n Result,\n} from \"../types\";\nimport { HttpClient } from \"../http\";\nimport { RelayRulesResource } from \"./relay-rules\";\n\nexport class RelayResource {\n private http: HttpClient;\n rules: RelayRulesResource;\n\n constructor(http: HttpClient) {\n this.http = http;\n this.rules = new RelayRulesResource(http);\n }\n\n async create(input: CreateRelayInput): Promise<Relay> {\n const res = await this.http.post<{ relay: Relay }>(\"/relay\", input);\n return res.relay;\n }\n\n async list(): Promise<Relay[]> {\n const res = await this.http.get<{ relays: Relay[] }>(\"/relay\");\n return res.relays;\n }\n\n async lint(relayId: string, input: RelayLintInput = {}): Promise<RelayLintResult> {\n const res = await this.http.post<RelayLintResult>(\n `/relay/${relayId}/lint`,\n input,\n );\n return res;\n }\n\n async simulate(\n relayId: string,\n input: RelaySimulationInput,\n ): Promise<RelaySimulationResult> {\n const res = await this.http.post<RelaySimulationResult>(\n `/relay/${relayId}/simulate`,\n input,\n );\n return res;\n }\n\n async createSafe(input: CreateRelayInput): Promise<Result<Relay>> {\n try {\n const data = await this.create(input);\n return { data };\n } catch (error) {\n return { error: error as Error };\n }\n }\n\n async lintSafe(\n relayId: string,\n input: RelayLintInput = {},\n ): Promise<Result<RelayLintResult>> {\n try {\n const data = await this.lint(relayId, input);\n return { data };\n } catch (error) {\n return { error: error as Error };\n }\n }\n\n async simulateSafe(\n relayId: string,\n input: RelaySimulationInput,\n ): Promise<Result<RelaySimulationResult>> {\n try {\n const data = await this.simulate(relayId, input);\n return { data };\n } catch (error) {\n return { error: error as Error };\n }\n }\n}\n","/**\n * Formats a Date object as an ISO 8601 timestamp with Z suffix (UTC).\n * Example: \"2024-01-29T00:00:00.000Z\"\n */\nexport function formatUTCDate(date: Date): string {\n return date.toISOString();\n}\n\n/**\n * Validates that a string is a valid ISO 8601 timestamp with Z suffix.\n * Returns true if the string ends with \"Z\" and can be parsed as a valid date.\n */\nexport function isIsoZ(value: string): boolean {\n return value.endsWith(\"Z\") && !isNaN(Date.parse(value));\n}\n\n/**\n * Validates and normalizes a date parameter to an ISO 8601 string with Z suffix.\n * Accepts either a Date object or a Z-suffixed ISO string.\n * Throws an error if the input is invalid.\n */\nexport function normalizeDateParam(date: Date | string): string {\n if (date instanceof Date) {\n return formatUTCDate(date);\n }\n \n if (typeof date === \"string\") {\n if (!isIsoZ(date)) {\n throw new Error(\n `Invalid date format. Date must be a valid ISO 8601 timestamp with Z suffix (e.g., \"2024-01-29T00:00:00.000Z\"). Received: \"${date}\"`\n );\n }\n return date;\n }\n \n throw new Error(\n `Invalid date type. Expected Date object or ISO 8601 string with Z suffix, received: ${typeof date}`\n );\n}\n","import type {\n CreateScheduleInput,\n Schedule,\n AddScheduleMemberInput,\n ScheduleMember,\n ScheduleAssignment,\n GetAssignmentsParams,\n BeepsUser,\n Result,\n CreateScheduleOverrideInput,\n UpdateScheduleOverrideInput,\n ListScheduleOverridesParams,\n ScheduleOverride,\n} from \"../types\";\nimport { HttpClient } from \"../http\";\nimport { normalizeDateParam } from \"../utils/date\";\n\nexport class ScheduleResource {\n private http: HttpClient;\n\n constructor(http: HttpClient) {\n this.http = http;\n }\n\n async create(input: CreateScheduleInput): Promise<Schedule> {\n const res = await this.http.post<{ schedule: Schedule }>(\"/schedule\", input);\n return res.schedule;\n }\n\n async list(): Promise<Schedule[]> {\n const res = await this.http.get<{ schedules: Schedule[] }>(\"/schedule\");\n return res.schedules;\n }\n\n async addMember(scheduleId: string, input: AddScheduleMemberInput): Promise<ScheduleMember> {\n const res = await this.http.post<{ member: ScheduleMember }>(\n `/schedule/${scheduleId}/members`,\n input,\n );\n return res.member;\n }\n\n async listMembers(scheduleId: string): Promise<ScheduleMember[]> {\n const res = await this.http.get<{ members: ScheduleMember[] }>(\n `/schedule/${scheduleId}/members`,\n );\n return res.members;\n }\n\n async listMembersSafe(scheduleId: string): Promise<Result<ScheduleMember[]>> {\n try {\n const data = await this.listMembers(scheduleId);\n return { data };\n } catch (error) {\n return { error: error as Error };\n }\n }\n\n async removeMember(scheduleId: string, userId: string): Promise<ScheduleMember> {\n const res = await this.http.delete<{ member: ScheduleMember }>(\n `/schedule/${scheduleId}/members/${userId}`,\n );\n return res.member;\n }\n\n async getAssignments(\n scheduleId: string,\n params?: GetAssignmentsParams,\n ): Promise<ScheduleAssignment[]> {\n const qs = new URLSearchParams();\n \n if (params) {\n if (params.type === \"until\") {\n qs.set(\"type\", \"until\");\n const normalizedDate = normalizeDateParam(params.date);\n qs.set(\"date\", normalizedDate);\n } else if (params.type === \"days\") {\n qs.set(\"type\", \"days\");\n qs.set(\"count\", String(params.count));\n } else {\n if (params.type) {\n qs.set(\"type\", params.type);\n }\n if (params.count !== undefined) {\n qs.set(\"count\", String(params.count));\n }\n }\n }\n \n const path = qs.toString()\n ? `/schedule/${scheduleId}/assignments?${qs.toString()}`\n : `/schedule/${scheduleId}/assignments`;\n const res = await this.http.get<{ assignments: ScheduleAssignment[] }>(path);\n return res.assignments;\n }\n\n async getOnCall(scheduleId: string): Promise<BeepsUser> {\n const res = await this.http.get<{ onCall: BeepsUser }>(\n `/schedule/${scheduleId}/on-call`\n );\n return res.onCall;\n }\n\n async getOnCallSafe(scheduleId: string): Promise<Result<BeepsUser>> {\n try {\n const data = await this.getOnCall(scheduleId);\n return { data };\n } catch (error) {\n return { error: error as Error };\n }\n }\n\n async createOverride(\n scheduleId: string,\n input: CreateScheduleOverrideInput,\n ): Promise<ScheduleOverride> {\n const body = {\n userId: input.userId,\n startAt: normalizeDateParam(input.startAt),\n endAt: normalizeDateParam(input.endAt),\n reason: input.reason,\n };\n const res = await this.http.post<{ override: ScheduleOverride }>(\n `/schedule/${scheduleId}/overrides`,\n body,\n );\n return res.override;\n }\n\n async listOverrides(\n scheduleId: string,\n params?: ListScheduleOverridesParams,\n ): Promise<ScheduleOverride[]> {\n const qs = new URLSearchParams();\n \n if (params) {\n if (params.startAt) {\n qs.set(\"startAt\", normalizeDateParam(params.startAt));\n }\n if (params.endAt) {\n qs.set(\"endAt\", normalizeDateParam(params.endAt));\n }\n }\n \n const path = qs.toString()\n ? `/schedule/${scheduleId}/overrides?${qs.toString()}`\n : `/schedule/${scheduleId}/overrides`;\n const res = await this.http.get<{ overrides: ScheduleOverride[] }>(path);\n return res.overrides;\n }\n\n async cancelOverride(\n scheduleId: string,\n overrideId: string,\n ): Promise<ScheduleOverride> {\n const res = await this.http.delete<{ override: ScheduleOverride }>(\n `/schedule/${scheduleId}/overrides/${overrideId}`,\n );\n return res.override;\n }\n\n async updateOverride(\n scheduleId: string,\n overrideId: string,\n input: UpdateScheduleOverrideInput,\n ): Promise<ScheduleOverride> {\n const body: Record<string, string | undefined> = {};\n \n if (input.startAt !== undefined) {\n body.startAt = normalizeDateParam(input.startAt);\n }\n if (input.endAt !== undefined) {\n body.endAt = normalizeDateParam(input.endAt);\n }\n if (input.reason !== undefined) {\n body.reason = input.reason;\n }\n \n const res = await this.http.patch<{ override: ScheduleOverride }>(\n `/schedule/${scheduleId}/overrides/${overrideId}`,\n body,\n );\n return res.override;\n }\n}\n","import type {\n CreateContactMethodInput,\n ContactMethod,\n ListContactMethodsParams,\n DeleteContactMethodParams,\n Result,\n} from \"../types\";\nimport { HttpClient } from \"../http\";\n\nexport class ContactMethodResource {\n private http: HttpClient;\n\n constructor(http: HttpClient) {\n this.http = http;\n }\n\n async list(params: ListContactMethodsParams): Promise<ContactMethod[]> {\n const qs = new URLSearchParams();\n qs.set(\"userId\", params.userId);\n const res = await this.http.get<{ contactMethods: ContactMethod[] }>(\n `/contact-methods?${qs.toString()}`\n );\n return res.contactMethods;\n }\n\n async create(input: CreateContactMethodInput): Promise<ContactMethod> {\n const res = await this.http.post<{ contactMethod: ContactMethod }>(\n \"/contact-methods\",\n input\n );\n return res.contactMethod;\n }\n\n async delete(\n id: string,\n params: DeleteContactMethodParams\n ): Promise<{ success: boolean }> {\n const qs = new URLSearchParams();\n qs.set(\"userId\", params.userId);\n const res = await this.http.delete<{ success: boolean }>(\n `/contact-methods/${id}?${qs.toString()}`\n );\n return res;\n }\n\n async listSafe(\n params: ListContactMethodsParams\n ): Promise<Result<ContactMethod[]>> {\n try {\n const data = await this.list(params);\n return { data };\n } catch (error) {\n return { error: error as Error };\n }\n }\n\n async createSafe(\n input: CreateContactMethodInput\n ): Promise<Result<ContactMethod>> {\n try {\n const data = await this.create(input);\n return { data };\n } catch (error) {\n return { error: error as Error };\n }\n }\n\n async deleteSafe(\n id: string,\n params: DeleteContactMethodParams\n ): Promise<Result<{ success: boolean }>> {\n try {\n const data = await this.delete(id, params);\n return { data };\n } catch (error) {\n return { error: error as Error };\n }\n }\n}\n","import type {\n Alert,\n AcknowledgeAlertInput,\n Result,\n} from \"../types\";\nimport { HttpClient } from \"../http\";\n\nexport class AlertResource {\n private http: HttpClient;\n\n constructor(http: HttpClient) {\n this.http = http;\n }\n\n async list(): Promise<Alert[]> {\n const res = await this.http.get<{ alerts: Alert[] }>(\"/alerts\");\n return res.alerts;\n }\n\n async listActive(): Promise<Alert[]> {\n const res = await this.http.get<{ alerts: Alert[] }>(\"/alerts/active\");\n return res.alerts;\n }\n\n async listResolved(): Promise<Alert[]> {\n const res = await this.http.get<{ alerts: Alert[] }>(\"/alerts/resolved\");\n return res.alerts;\n }\n\n async get(alertId: string): Promise<Alert> {\n const res = await this.http.get<{ alert: Alert }>(`/alerts/${alertId}`);\n return res.alert;\n }\n\n async acknowledge(alertId: string, input?: AcknowledgeAlertInput): Promise<Alert> {\n const res = await this.http.post<{ alert: Alert }>(\n `/alerts/${alertId}/acknowledge`,\n input || {}\n );\n return res.alert;\n }\n\n async resolve(alertId: string): Promise<Alert> {\n const res = await this.http.post<{ alert: Alert }>(\n `/alerts/${alertId}/resolve`,\n {}\n );\n return res.alert;\n }\n\n async assign(alertId: string, userId: string): Promise<Alert> {\n const res = await this.http.post<{ alert: Alert }>(\n `/alerts/${alertId}/assign`,\n { userId }\n );\n return res.alert;\n }\n\n async listSafe(): Promise<Result<Alert[]>> {\n try {\n const data = await this.list();\n return { data };\n } catch (error) {\n return { error: error as Error };\n }\n }\n\n async listActiveSafe(): Promise<Result<Alert[]>> {\n try {\n const data = await this.listActive();\n return { data };\n } catch (error) {\n return { error: error as Error };\n }\n }\n\n async listResolvedSafe(): Promise<Result<Alert[]>> {\n try {\n const data = await this.listResolved();\n return { data };\n } catch (error) {\n return { error: error as Error };\n }\n }\n\n async getSafe(alertId: string): Promise<Result<Alert>> {\n try {\n const data = await this.get(alertId);\n return { data };\n } catch (error) {\n return { error: error as Error };\n }\n }\n\n async acknowledgeSafe(\n alertId: string,\n input?: AcknowledgeAlertInput\n ): Promise<Result<Alert>> {\n try {\n const data = await this.acknowledge(alertId, input);\n return { data };\n } catch (error) {\n return { error: error as Error };\n }\n }\n\n async resolveSafe(alertId: string): Promise<Result<Alert>> {\n try {\n const data = await this.resolve(alertId);\n return { data };\n } catch (error) {\n return { error: error as Error };\n }\n }\n\n async assignSafe(alertId: string, userId: string): Promise<Result<Alert>> {\n try {\n const data = await this.assign(alertId, userId);\n return { data };\n } catch (error) {\n return { error: error as Error };\n }\n }\n}\n","import type {\n CreateIntegrationInput,\n UpdateIntegrationInput,\n Integration,\n Result,\n} from \"../types\";\nimport { HttpClient } from \"../http\";\n\nexport class IntegrationResource {\n private http: HttpClient;\n\n constructor(http: HttpClient) {\n this.http = http;\n }\n\n async list(): Promise<Integration[]> {\n const res = await this.http.get<{ integrations: Integration[] }>(\"/integrations\");\n return res.integrations;\n }\n\n async create(input: CreateIntegrationInput): Promise<Integration> {\n const res = await this.http.post<{ integration: Integration }>(\"/integrations\", input);\n return res.integration;\n }\n\n async get(integrationId: string): Promise<Integration> {\n const res = await this.http.get<{ integration: Integration }>(`/integrations/${integrationId}`);\n return res.integration;\n }\n\n async update(integrationId: string, input: UpdateIntegrationInput): Promise<Integration> {\n const res = await this.http.put<{ integration: Integration }>(`/integrations/${integrationId}`, input);\n return res.integration;\n }\n\n async delete(integrationId: string): Promise<{ success: boolean }> {\n const res = await this.http.delete<{ success: boolean }>(`/integrations/${integrationId}`);\n return res;\n }\n\n async listSafe(): Promise<Result<Integration[]>> {\n try {\n const data = await this.list();\n return { data };\n } catch (error) {\n return { error: error as Error };\n }\n }\n\n async createSafe(input: CreateIntegrationInput): Promise<Result<Integration>> {\n try {\n const data = await this.create(input);\n return { data };\n } catch (error) {\n return { error: error as Error };\n }\n }\n\n async getSafe(integrationId: string): Promise<Result<Integration>> {\n try {\n const data = await this.get(integrationId);\n return { data };\n } catch (error) {\n return { error: error as Error };\n }\n }\n\n async updateSafe(integrationId: string, input: UpdateIntegrationInput): Promise<Result<Integration>> {\n try {\n const data = await this.update(integrationId, input);\n return { data };\n } catch (error) {\n return { error: error as Error };\n }\n }\n\n async deleteSafe(integrationId: string): Promise<Result<{ success: boolean }>> {\n try {\n const data = await this.delete(integrationId);\n return { data };\n } catch (error) {\n return { error: error as Error };\n }\n }\n}\n","import type { OrganizationMember, Result } from \"../types\";\nimport { HttpClient } from \"../http\";\n\nexport class MemberResource {\n private http: HttpClient;\n\n constructor(http: HttpClient) {\n this.http = http;\n }\n\n async list(): Promise<OrganizationMember[]> {\n const res = await this.http.get<{ members: OrganizationMember[] }>(\"/members\");\n return res.members;\n }\n\n async listSafe(): Promise<Result<OrganizationMember[]>> {\n try {\n const data = await this.list();\n return { data };\n } catch (error) {\n return { error: error as Error };\n }\n }\n}\n","import type { BeepsClientConfig } from \"./types\";\nimport { HttpClient } from \"./http\";\nimport { RelayResource } from \"./resources/relay\";\nimport { ScheduleResource } from \"./resources/schedule\";\nimport { ContactMethodResource } from \"./resources/contact-method\";\nimport { AlertResource } from \"./resources/alert\";\nimport { IntegrationResource } from \"./resources/integration\";\nimport { MemberResource } from \"./resources/member\";\n\nexport class BeepsClient {\n relay: RelayResource;\n schedule: ScheduleResource;\n contactMethod: ContactMethodResource;\n alert: AlertResource;\n integration: IntegrationResource;\n member: MemberResource;\n\n constructor(config: BeepsClientConfig) {\n if (!config.apiKey) {\n throw new Error(\"apiKey is required\");\n }\n const http = new HttpClient(config);\n this.relay = new RelayResource(http);\n this.schedule = new ScheduleResource(http);\n this.contactMethod = new ContactMethodResource(http);\n this.alert = new AlertResource(http);\n this.integration = new IntegrationResource(http);\n this.member = new MemberResource(http);\n }\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../src/index.ts","../src/version.ts","../src/errors.ts","../src/http.ts","../src/resources/relay-rules.ts","../src/resources/relay.ts","../src/utils/date.ts","../src/resources/schedule.ts","../src/resources/contact-method.ts","../src/resources/alert.ts","../src/resources/integration.ts","../src/resources/member.ts","../src/resources/webhook.ts","../src/client.ts"],"sourcesContent":["export { BeepsClient } from \"./client\";\nexport * from \"./types\";\nexport * from \"./errors\";\nexport { ScheduleResource } from \"./resources/schedule\";\nexport { RelayRulesResource } from \"./resources/relay-rules\";\nexport { ContactMethodResource } from \"./resources/contact-method\";\nexport { AlertResource } from \"./resources/alert\";\nexport { MemberResource } from \"./resources/member\";\nexport { WebhookResource } from \"./resources/webhook\";\nexport { formatUTCDate, isIsoZ, normalizeDateParam } from \"./utils/date\";\n","export const SDK_VERSION = \"0.0.1\";\n","export class BeepsError extends Error {\n code?: string;\n status?: number;\n requestId?: string;\n retryable?: boolean;\n cause?: unknown;\n\n constructor(\n message: string,\n options?: {\n code?: string;\n status?: number;\n requestId?: string;\n retryable?: boolean;\n cause?: unknown;\n },\n ) {\n super(message);\n this.name = \"BeepsError\";\n this.code = options?.code;\n this.status = options?.status;\n this.requestId = options?.requestId;\n this.retryable = options?.retryable ?? false;\n this.cause = options?.cause;\n }\n\n toString() {\n const parts = [\n `BeepsError`,\n this.code ? `Code=${this.code}` : null,\n this.status ? `status=${this.status}` : null,\n this.requestId ? `requestId=${this.requestId}` : null,\n this.retryable ? `retryable=true` : null,\n ].filter(Boolean);\n return `${parts.join(\" \")}: ${this.message}`;\n }\n}\n\nexport class AuthError extends BeepsError {\n constructor(\n message = \"Unauthorized\",\n opts?: ConstructorParameters<typeof BeepsError>[1],\n ) {\n super(message, { ...opts, status: opts?.status ?? 401 });\n this.name = \"AuthError\";\n }\n}\n\nexport class ValidationError extends BeepsError {\n details?: unknown;\n constructor(\n message = \"Validation error\",\n opts?: ConstructorParameters<typeof BeepsError>[1] & { details?: unknown },\n ) {\n super(message, { ...opts, status: opts?.status ?? 400 });\n this.name = \"ValidationError\";\n this.details = opts?.details;\n }\n}\n\nexport class NotFoundError extends BeepsError {\n constructor(\n message = \"Not found\",\n opts?: ConstructorParameters<typeof BeepsError>[1],\n ) {\n super(message, { ...opts, status: opts?.status ?? 404 });\n this.name = \"NotFoundError\";\n }\n}\n\nexport class RateLimitError extends BeepsError {\n constructor(\n message = \"Rate limited\",\n opts?: ConstructorParameters<typeof BeepsError>[1],\n ) {\n super(message, { ...opts, status: opts?.status ?? 429, retryable: true });\n this.name = \"RateLimitError\";\n }\n}\n\nexport class ServerError extends BeepsError {\n constructor(\n message = \"Server error\",\n opts?: ConstructorParameters<typeof BeepsError>[1],\n ) {\n super(message, { ...opts, status: opts?.status ?? 500, retryable: true });\n this.name = \"ServerError\";\n }\n}\n\nexport class NetworkError extends BeepsError {\n constructor(\n message = \"Network error\",\n opts?: ConstructorParameters<typeof BeepsError>[1],\n ) {\n super(message, { ...opts });\n this.name = \"NetworkError\";\n }\n}\n\nexport class HttpError extends BeepsError {\n constructor(\n message = \"HTTP error\",\n opts?: ConstructorParameters<typeof BeepsError>[1],\n ) {\n super(message, { ...opts });\n this.name = \"HttpError\";\n }\n}\n\nexport function mapHttpError(\n status: number,\n message: string,\n requestId?: string,\n) {\n if (status === 401 || status === 403)\n return new AuthError(message, { status, requestId });\n if (status === 400)\n return new ValidationError(message, { status, requestId });\n if (status === 404) return new NotFoundError(message, { status, requestId });\n if (status === 429) return new RateLimitError(message, { status, requestId });\n if (status >= 500) return new ServerError(message, { status, requestId });\n return new HttpError(message, { status, requestId });\n}\n","import { SDK_VERSION } from \"./version\";\nimport { BeepsError, NetworkError, mapHttpError } from \"./errors\";\nimport type { BeepsClientConfig } from \"./types\";\n\ntype FetcherConfig = Required<Pick<BeepsClientConfig, \"apiKey\">> &\n Omit<BeepsClientConfig, \"apiKey\"> & {\n baseURL: string;\n timeoutMs: number;\n retries: { attempts: number; backoffMs: number };\n };\n\nexport class HttpClient {\n private cfg: FetcherConfig;\n private _fetch: typeof fetch;\n\n constructor(config: BeepsClientConfig) {\n const baseURL = config.baseURL ?? \"https://api.beeps.dev/v0\";\n const timeoutMs = config.timeoutMs ?? 10_000;\n const retries = config.retries ?? { attempts: 2, backoffMs: 300 };\n this.cfg = { ...config, baseURL, timeoutMs, retries } as FetcherConfig;\n this._fetch = config.fetch ?? fetch;\n }\n\n async post<T>(path: string, body: unknown): Promise<T> {\n return this.request<T>(\"POST\", path, body);\n }\n async get<T>(path: string): Promise<T> {\n return this.request<T>(\"GET\", path);\n }\n async put<T>(path: string, body: unknown): Promise<T> {\n return this.request<T>(\"PUT\", path, body);\n }\n async patch<T>(path: string, body: unknown): Promise<T> {\n return this.request<T>(\"PATCH\", path, body);\n }\n async delete<T>(path: string): Promise<T> {\n return this.request<T>(\"DELETE\", path);\n }\n\n private async request<T>(\n method: string,\n path: string,\n body?: unknown,\n ): Promise<T> {\n const url =\n this.cfg.baseURL.replace(/\\/+$/, \"\") + \"/\" + path.replace(/^\\/+/, \"\");\n const controller = new AbortController();\n const id = setTimeout(() => controller.abort(), this.cfg.timeoutMs);\n try {\n let attempt = 0;\n while (true) {\n try {\n const res = await this._fetch(url, {\n method,\n headers: {\n \"Content-Type\": \"application/json\",\n \"X-API-Key\": this.cfg.apiKey,\n \"User-Agent\": `beepsdev-sdk/${SDK_VERSION}`,\n },\n body: body !== undefined ? JSON.stringify(body) : undefined,\n signal: controller.signal,\n });\n\n const requestId = res.headers.get(\"x-request-id\") ?? undefined;\n const isJson = (res.headers.get(\"content-type\") || \"\").includes(\n \"application/json\",\n );\n const payload = (isJson\n ? await res.json().catch(() => ({}))\n : {}) as Record<string, unknown>;\n\n if (res.ok) {\n return payload as T;\n }\n\n const msg =\n typeof payload.error === \"string\"\n ? payload.error\n : typeof payload.message === \"string\"\n ? payload.message\n : \"Request failed\";\n\n const err = mapHttpError(res.status, msg, requestId);\n if (\n this.shouldRetry(res.status) &&\n attempt < this.cfg.retries.attempts\n ) {\n attempt++;\n await this.sleep(this.jitterBackoff(attempt));\n continue;\n }\n throw err;\n } catch (e) {\n if (e instanceof BeepsError) {\n throw e;\n }\n if (e instanceof Error && e.name === \"AbortError\") {\n throw new NetworkError(\"Request timed out\", { cause: e });\n }\n if (e instanceof TypeError) {\n if (attempt < this.cfg.retries.attempts) {\n attempt++;\n await this.sleep(this.jitterBackoff(attempt));\n continue;\n }\n throw new NetworkError(\"Network error\", { cause: e });\n }\n throw e;\n }\n }\n } finally {\n clearTimeout(id);\n }\n }\n\n private shouldRetry(status: number) {\n if (status === 429) return true;\n if (status >= 500 && status !== 501 && status !== 505) return true;\n return false;\n }\n\n private jitterBackoff(attempt: number) {\n const base = this.cfg.retries.backoffMs * Math.pow(2, attempt - 1);\n const jitter = Math.random() * 100;\n return base + jitter;\n }\n\n private sleep(ms: number) {\n return new Promise((r) => setTimeout(r, ms));\n }\n}\n","import type {\n CreateRelayRuleInput,\n UpdateRelayRuleInput,\n RelayRule,\n ListRelayRulesParams,\n ReorderRelayRulesInput,\n Result,\n} from \"../types\";\nimport { HttpClient } from \"../http\";\n\nexport class RelayRulesResource {\n private http: HttpClient;\n\n constructor(http: HttpClient) {\n this.http = http;\n }\n\n async list(relayId: string, params?: ListRelayRulesParams): Promise<RelayRule[]> {\n const qs = new URLSearchParams();\n if (params?.enabled !== undefined) {\n qs.set(\"enabled\", params.enabled.toString());\n }\n if (params?.ruleType) {\n qs.set(\"ruleType\", params.ruleType);\n }\n const path = qs.toString()\n ? `/relay/${relayId}/rules?${qs.toString()}`\n : `/relay/${relayId}/rules`;\n const res = await this.http.get<{ rules: RelayRule[] }>(path);\n return res.rules;\n }\n\n async create(relayId: string, input: CreateRelayRuleInput): Promise<RelayRule> {\n const res = await this.http.post<{ rule: RelayRule }>(`/relay/${relayId}/rules`, input);\n return res.rule;\n }\n\n async get(relayId: string, ruleId: string): Promise<RelayRule> {\n const res = await this.http.get<{ rule: RelayRule }>(`/relay/${relayId}/rules/${ruleId}`);\n return res.rule;\n }\n\n async update(relayId: string, ruleId: string, input: UpdateRelayRuleInput): Promise<RelayRule> {\n const res = await this.http.put<{ rule: RelayRule }>(`/relay/${relayId}/rules/${ruleId}`, input);\n return res.rule;\n }\n\n async delete(relayId: string, ruleId: string): Promise<{ success: boolean }> {\n const res = await this.http.delete<{ success: boolean }>(`/relay/${relayId}/rules/${ruleId}`);\n return res;\n }\n\n async reorder(relayId: string, input: ReorderRelayRulesInput): Promise<RelayRule[]> {\n const res = await this.http.put<{ rules: RelayRule[] }>(`/relay/${relayId}/rules/reorder`, input);\n return res.rules;\n }\n\n // Safe versions that return Result<T> instead of throwing\n async listSafe(relayId: string, params?: ListRelayRulesParams): Promise<Result<RelayRule[]>> {\n try {\n const data = await this.list(relayId, params);\n return { data };\n } catch (error) {\n return { error: error as Error };\n }\n }\n\n async createSafe(relayId: string, input: CreateRelayRuleInput): Promise<Result<RelayRule>> {\n try {\n const data = await this.create(relayId, input);\n return { data };\n } catch (error) {\n return { error: error as Error };\n }\n }\n\n async getSafe(relayId: string, ruleId: string): Promise<Result<RelayRule>> {\n try {\n const data = await this.get(relayId, ruleId);\n return { data };\n } catch (error) {\n return { error: error as Error };\n }\n }\n\n async updateSafe(relayId: string, ruleId: string, input: UpdateRelayRuleInput): Promise<Result<RelayRule>> {\n try {\n const data = await this.update(relayId, ruleId, input);\n return { data };\n } catch (error) {\n return { error: error as Error };\n }\n }\n\n async deleteSafe(relayId: string, ruleId: string): Promise<Result<{ success: boolean }>> {\n try {\n const data = await this.delete(relayId, ruleId);\n return { data };\n } catch (error) {\n return { error: error as Error };\n }\n }\n\n async reorderSafe(relayId: string, input: ReorderRelayRulesInput): Promise<Result<RelayRule[]>> {\n try {\n const data = await this.reorder(relayId, input);\n return { data };\n } catch (error) {\n return { error: error as Error };\n }\n }\n}","import type {\n CreateRelayInput,\n Relay,\n RelayLintInput,\n RelayLintResult,\n RelaySimulationInput,\n RelaySimulationResult,\n Result,\n} from \"../types\";\nimport { HttpClient } from \"../http\";\nimport { RelayRulesResource } from \"./relay-rules\";\n\nexport class RelayResource {\n private http: HttpClient;\n rules: RelayRulesResource;\n\n constructor(http: HttpClient) {\n this.http = http;\n this.rules = new RelayRulesResource(http);\n }\n\n async create(input: CreateRelayInput): Promise<Relay> {\n const res = await this.http.post<{ relay: Relay }>(\"/relay\", input);\n return res.relay;\n }\n\n async list(): Promise<Relay[]> {\n const res = await this.http.get<{ relays: Relay[] }>(\"/relay\");\n return res.relays;\n }\n\n async lint(relayId: string, input: RelayLintInput = {}): Promise<RelayLintResult> {\n const res = await this.http.post<RelayLintResult>(\n `/relay/${relayId}/lint`,\n input,\n );\n return res;\n }\n\n async simulate(\n relayId: string,\n input: RelaySimulationInput,\n ): Promise<RelaySimulationResult> {\n const res = await this.http.post<RelaySimulationResult>(\n `/relay/${relayId}/simulate`,\n input,\n );\n return res;\n }\n\n async createSafe(input: CreateRelayInput): Promise<Result<Relay>> {\n try {\n const data = await this.create(input);\n return { data };\n } catch (error) {\n return { error: error as Error };\n }\n }\n\n async lintSafe(\n relayId: string,\n input: RelayLintInput = {},\n ): Promise<Result<RelayLintResult>> {\n try {\n const data = await this.lint(relayId, input);\n return { data };\n } catch (error) {\n return { error: error as Error };\n }\n }\n\n async simulateSafe(\n relayId: string,\n input: RelaySimulationInput,\n ): Promise<Result<RelaySimulationResult>> {\n try {\n const data = await this.simulate(relayId, input);\n return { data };\n } catch (error) {\n return { error: error as Error };\n }\n }\n}\n","/**\n * Formats a Date object as an ISO 8601 timestamp with Z suffix (UTC).\n * Example: \"2024-01-29T00:00:00.000Z\"\n */\nexport function formatUTCDate(date: Date): string {\n return date.toISOString();\n}\n\n/**\n * Validates that a string is a valid ISO 8601 timestamp with Z suffix.\n * Returns true if the string ends with \"Z\" and can be parsed as a valid date.\n */\nexport function isIsoZ(value: string): boolean {\n return value.endsWith(\"Z\") && !isNaN(Date.parse(value));\n}\n\n/**\n * Validates and normalizes a date parameter to an ISO 8601 string with Z suffix.\n * Accepts either a Date object or a Z-suffixed ISO string.\n * Throws an error if the input is invalid.\n */\nexport function normalizeDateParam(date: Date | string): string {\n if (date instanceof Date) {\n return formatUTCDate(date);\n }\n \n if (typeof date === \"string\") {\n if (!isIsoZ(date)) {\n throw new Error(\n `Invalid date format. Date must be a valid ISO 8601 timestamp with Z suffix (e.g., \"2024-01-29T00:00:00.000Z\"). Received: \"${date}\"`\n );\n }\n return date;\n }\n \n throw new Error(\n `Invalid date type. Expected Date object or ISO 8601 string with Z suffix, received: ${typeof date}`\n );\n}\n","import type {\n CreateScheduleInput,\n Schedule,\n AddScheduleMemberInput,\n ScheduleMember,\n ScheduleAssignment,\n GetAssignmentsParams,\n BeepsUser,\n Result,\n CreateScheduleOverrideInput,\n UpdateScheduleOverrideInput,\n ListScheduleOverridesParams,\n ScheduleOverride,\n} from \"../types\";\nimport { HttpClient } from \"../http\";\nimport { normalizeDateParam } from \"../utils/date\";\n\nexport class ScheduleResource {\n private http: HttpClient;\n\n constructor(http: HttpClient) {\n this.http = http;\n }\n\n async create(input: CreateScheduleInput): Promise<Schedule> {\n const res = await this.http.post<{ schedule: Schedule }>(\"/schedule\", input);\n return res.schedule;\n }\n\n async list(): Promise<Schedule[]> {\n const res = await this.http.get<{ schedules: Schedule[] }>(\"/schedule\");\n return res.schedules;\n }\n\n async addMember(scheduleId: string, input: AddScheduleMemberInput): Promise<ScheduleMember> {\n const res = await this.http.post<{ member: ScheduleMember }>(\n `/schedule/${scheduleId}/members`,\n input,\n );\n return res.member;\n }\n\n async listMembers(scheduleId: string): Promise<ScheduleMember[]> {\n const res = await this.http.get<{ members: ScheduleMember[] }>(\n `/schedule/${scheduleId}/members`,\n );\n return res.members;\n }\n\n async listMembersSafe(scheduleId: string): Promise<Result<ScheduleMember[]>> {\n try {\n const data = await this.listMembers(scheduleId);\n return { data };\n } catch (error) {\n return { error: error as Error };\n }\n }\n\n async removeMember(scheduleId: string, userId: string): Promise<ScheduleMember> {\n const res = await this.http.delete<{ member: ScheduleMember }>(\n `/schedule/${scheduleId}/members/${userId}`,\n );\n return res.member;\n }\n\n async getAssignments(\n scheduleId: string,\n params?: GetAssignmentsParams,\n ): Promise<ScheduleAssignment[]> {\n const qs = new URLSearchParams();\n \n if (params) {\n if (params.type === \"until\") {\n qs.set(\"type\", \"until\");\n const normalizedDate = normalizeDateParam(params.date);\n qs.set(\"date\", normalizedDate);\n } else if (params.type === \"days\") {\n qs.set(\"type\", \"days\");\n qs.set(\"count\", String(params.count));\n } else {\n if (params.type) {\n qs.set(\"type\", params.type);\n }\n if (params.count !== undefined) {\n qs.set(\"count\", String(params.count));\n }\n }\n }\n \n const path = qs.toString()\n ? `/schedule/${scheduleId}/assignments?${qs.toString()}`\n : `/schedule/${scheduleId}/assignments`;\n const res = await this.http.get<{ assignments: ScheduleAssignment[] }>(path);\n return res.assignments;\n }\n\n async getOnCall(scheduleId: string): Promise<BeepsUser> {\n const res = await this.http.get<{ onCall: BeepsUser }>(\n `/schedule/${scheduleId}/on-call`\n );\n return res.onCall;\n }\n\n async getOnCallSafe(scheduleId: string): Promise<Result<BeepsUser>> {\n try {\n const data = await this.getOnCall(scheduleId);\n return { data };\n } catch (error) {\n return { error: error as Error };\n }\n }\n\n async createOverride(\n scheduleId: string,\n input: CreateScheduleOverrideInput,\n ): Promise<ScheduleOverride> {\n const body = {\n userId: input.userId,\n startAt: normalizeDateParam(input.startAt),\n endAt: normalizeDateParam(input.endAt),\n reason: input.reason,\n };\n const res = await this.http.post<{ override: ScheduleOverride }>(\n `/schedule/${scheduleId}/overrides`,\n body,\n );\n return res.override;\n }\n\n async listOverrides(\n scheduleId: string,\n params?: ListScheduleOverridesParams,\n ): Promise<ScheduleOverride[]> {\n const qs = new URLSearchParams();\n \n if (params) {\n if (params.startAt) {\n qs.set(\"startAt\", normalizeDateParam(params.startAt));\n }\n if (params.endAt) {\n qs.set(\"endAt\", normalizeDateParam(params.endAt));\n }\n }\n \n const path = qs.toString()\n ? `/schedule/${scheduleId}/overrides?${qs.toString()}`\n : `/schedule/${scheduleId}/overrides`;\n const res = await this.http.get<{ overrides: ScheduleOverride[] }>(path);\n return res.overrides;\n }\n\n async cancelOverride(\n scheduleId: string,\n overrideId: string,\n ): Promise<ScheduleOverride> {\n const res = await this.http.delete<{ override: ScheduleOverride }>(\n `/schedule/${scheduleId}/overrides/${overrideId}`,\n );\n return res.override;\n }\n\n async updateOverride(\n scheduleId: string,\n overrideId: string,\n input: UpdateScheduleOverrideInput,\n ): Promise<ScheduleOverride> {\n const body: Record<string, string | undefined> = {};\n \n if (input.startAt !== undefined) {\n body.startAt = normalizeDateParam(input.startAt);\n }\n if (input.endAt !== undefined) {\n body.endAt = normalizeDateParam(input.endAt);\n }\n if (input.reason !== undefined) {\n body.reason = input.reason;\n }\n \n const res = await this.http.patch<{ override: ScheduleOverride }>(\n `/schedule/${scheduleId}/overrides/${overrideId}`,\n body,\n );\n return res.override;\n }\n}\n","import type {\n CreateContactMethodInput,\n ContactMethod,\n ListContactMethodsParams,\n DeleteContactMethodParams,\n Result,\n} from \"../types\";\nimport { HttpClient } from \"../http\";\n\nexport class ContactMethodResource {\n private http: HttpClient;\n\n constructor(http: HttpClient) {\n this.http = http;\n }\n\n async list(params: ListContactMethodsParams): Promise<ContactMethod[]> {\n const qs = new URLSearchParams();\n qs.set(\"userId\", params.userId);\n const res = await this.http.get<{ contactMethods: ContactMethod[] }>(\n `/contact-methods?${qs.toString()}`\n );\n return res.contactMethods;\n }\n\n async create(input: CreateContactMethodInput): Promise<ContactMethod> {\n const res = await this.http.post<{ contactMethod: ContactMethod }>(\n \"/contact-methods\",\n input\n );\n return res.contactMethod;\n }\n\n async delete(\n id: string,\n params: DeleteContactMethodParams\n ): Promise<{ success: boolean }> {\n const qs = new URLSearchParams();\n qs.set(\"userId\", params.userId);\n const res = await this.http.delete<{ success: boolean }>(\n `/contact-methods/${id}?${qs.toString()}`\n );\n return res;\n }\n\n async listSafe(\n params: ListContactMethodsParams\n ): Promise<Result<ContactMethod[]>> {\n try {\n const data = await this.list(params);\n return { data };\n } catch (error) {\n return { error: error as Error };\n }\n }\n\n async createSafe(\n input: CreateContactMethodInput\n ): Promise<Result<ContactMethod>> {\n try {\n const data = await this.create(input);\n return { data };\n } catch (error) {\n return { error: error as Error };\n }\n }\n\n async deleteSafe(\n id: string,\n params: DeleteContactMethodParams\n ): Promise<Result<{ success: boolean }>> {\n try {\n const data = await this.delete(id, params);\n return { data };\n } catch (error) {\n return { error: error as Error };\n }\n }\n}\n","import type {\n Alert,\n AcknowledgeAlertInput,\n Result,\n} from \"../types\";\nimport { HttpClient } from \"../http\";\n\nexport class AlertResource {\n private http: HttpClient;\n\n constructor(http: HttpClient) {\n this.http = http;\n }\n\n async list(): Promise<Alert[]> {\n const res = await this.http.get<{ alerts: Alert[] }>(\"/alerts\");\n return res.alerts;\n }\n\n async listActive(): Promise<Alert[]> {\n const res = await this.http.get<{ alerts: Alert[] }>(\"/alerts/active\");\n return res.alerts;\n }\n\n async listResolved(): Promise<Alert[]> {\n const res = await this.http.get<{ alerts: Alert[] }>(\"/alerts/resolved\");\n return res.alerts;\n }\n\n async get(alertId: string): Promise<Alert> {\n const res = await this.http.get<{ alert: Alert }>(`/alerts/${alertId}`);\n return res.alert;\n }\n\n async acknowledge(alertId: string, input?: AcknowledgeAlertInput): Promise<Alert> {\n const res = await this.http.post<{ alert: Alert }>(\n `/alerts/${alertId}/acknowledge`,\n input || {}\n );\n return res.alert;\n }\n\n async resolve(alertId: string): Promise<Alert> {\n const res = await this.http.post<{ alert: Alert }>(\n `/alerts/${alertId}/resolve`,\n {}\n );\n return res.alert;\n }\n\n async assign(alertId: string, userId: string): Promise<Alert> {\n const res = await this.http.post<{ alert: Alert }>(\n `/alerts/${alertId}/assign`,\n { userId }\n );\n return res.alert;\n }\n\n async listSafe(): Promise<Result<Alert[]>> {\n try {\n const data = await this.list();\n return { data };\n } catch (error) {\n return { error: error as Error };\n }\n }\n\n async listActiveSafe(): Promise<Result<Alert[]>> {\n try {\n const data = await this.listActive();\n return { data };\n } catch (error) {\n return { error: error as Error };\n }\n }\n\n async listResolvedSafe(): Promise<Result<Alert[]>> {\n try {\n const data = await this.listResolved();\n return { data };\n } catch (error) {\n return { error: error as Error };\n }\n }\n\n async getSafe(alertId: string): Promise<Result<Alert>> {\n try {\n const data = await this.get(alertId);\n return { data };\n } catch (error) {\n return { error: error as Error };\n }\n }\n\n async acknowledgeSafe(\n alertId: string,\n input?: AcknowledgeAlertInput\n ): Promise<Result<Alert>> {\n try {\n const data = await this.acknowledge(alertId, input);\n return { data };\n } catch (error) {\n return { error: error as Error };\n }\n }\n\n async resolveSafe(alertId: string): Promise<Result<Alert>> {\n try {\n const data = await this.resolve(alertId);\n return { data };\n } catch (error) {\n return { error: error as Error };\n }\n }\n\n async assignSafe(alertId: string, userId: string): Promise<Result<Alert>> {\n try {\n const data = await this.assign(alertId, userId);\n return { data };\n } catch (error) {\n return { error: error as Error };\n }\n }\n}\n","import type {\n CreateIntegrationInput,\n UpdateIntegrationInput,\n Integration,\n Result,\n} from \"../types\";\nimport { HttpClient } from \"../http\";\n\nexport class IntegrationResource {\n private http: HttpClient;\n\n constructor(http: HttpClient) {\n this.http = http;\n }\n\n async list(): Promise<Integration[]> {\n const res = await this.http.get<{ integrations: Integration[] }>(\"/integrations\");\n return res.integrations;\n }\n\n async create(input: CreateIntegrationInput): Promise<Integration> {\n const res = await this.http.post<{ integration: Integration }>(\"/integrations\", input);\n return res.integration;\n }\n\n async get(integrationId: string): Promise<Integration> {\n const res = await this.http.get<{ integration: Integration }>(`/integrations/${integrationId}`);\n return res.integration;\n }\n\n async update(integrationId: string, input: UpdateIntegrationInput): Promise<Integration> {\n const res = await this.http.put<{ integration: Integration }>(`/integrations/${integrationId}`, input);\n return res.integration;\n }\n\n async delete(integrationId: string): Promise<{ success: boolean }> {\n const res = await this.http.delete<{ success: boolean }>(`/integrations/${integrationId}`);\n return res;\n }\n\n async listSafe(): Promise<Result<Integration[]>> {\n try {\n const data = await this.list();\n return { data };\n } catch (error) {\n return { error: error as Error };\n }\n }\n\n async createSafe(input: CreateIntegrationInput): Promise<Result<Integration>> {\n try {\n const data = await this.create(input);\n return { data };\n } catch (error) {\n return { error: error as Error };\n }\n }\n\n async getSafe(integrationId: string): Promise<Result<Integration>> {\n try {\n const data = await this.get(integrationId);\n return { data };\n } catch (error) {\n return { error: error as Error };\n }\n }\n\n async updateSafe(integrationId: string, input: UpdateIntegrationInput): Promise<Result<Integration>> {\n try {\n const data = await this.update(integrationId, input);\n return { data };\n } catch (error) {\n return { error: error as Error };\n }\n }\n\n async deleteSafe(integrationId: string): Promise<Result<{ success: boolean }>> {\n try {\n const data = await this.delete(integrationId);\n return { data };\n } catch (error) {\n return { error: error as Error };\n }\n }\n}\n","import type { OrganizationMember, Result } from \"../types\";\nimport { HttpClient } from \"../http\";\n\nexport class MemberResource {\n private http: HttpClient;\n\n constructor(http: HttpClient) {\n this.http = http;\n }\n\n async list(): Promise<OrganizationMember[]> {\n const res = await this.http.get<{ members: OrganizationMember[] }>(\"/members\");\n return res.members;\n }\n\n async listSafe(): Promise<Result<OrganizationMember[]>> {\n try {\n const data = await this.list();\n return { data };\n } catch (error) {\n return { error: error as Error };\n }\n }\n}\n","import type { Webhook, Result } from \"../types\";\nimport { HttpClient } from \"../http\";\n\nexport class WebhookResource {\n private http: HttpClient;\n\n constructor(http: HttpClient) {\n this.http = http;\n }\n\n async listByRelay(relayId: string): Promise<Webhook[]> {\n const res = await this.http.get<{ webhooks: Webhook[] }>(\n `/relay/${relayId}/webhooks`,\n );\n return res.webhooks;\n }\n\n async listByRelaySafe(relayId: string): Promise<Result<Webhook[]>> {\n try {\n const data = await this.listByRelay(relayId);\n return { data };\n } catch (error) {\n return { error: error as Error };\n }\n }\n\n async create(\n relayId: string,\n description?: string,\n ): Promise<Webhook> {\n const res = await this.http.post<{ webhook: Webhook }>(\n `/relay/${relayId}/webhooks`,\n { description },\n );\n return res.webhook;\n }\n\n async createSafe(\n relayId: string,\n description?: string,\n ): Promise<Result<Webhook>> {\n try {\n const data = await this.create(relayId, description);\n return { data };\n } catch (error) {\n return { error: error as Error };\n }\n }\n\n async delete(relayId: string, webhookId: string): Promise<void> {\n await this.http.delete(`/relay/${relayId}/webhooks/${webhookId}`);\n }\n\n async deleteSafe(relayId: string, webhookId: string): Promise<Result<void>> {\n try {\n await this.delete(relayId, webhookId);\n return { data: undefined };\n } catch (error) {\n return { error: error as Error };\n }\n }\n}\n","import type { BeepsClientConfig } from \"./types\";\nimport { HttpClient } from \"./http\";\nimport { RelayResource } from \"./resources/relay\";\nimport { ScheduleResource } from \"./resources/schedule\";\nimport { ContactMethodResource } from \"./resources/contact-method\";\nimport { AlertResource } from \"./resources/alert\";\nimport { IntegrationResource } from \"./resources/integration\";\nimport { MemberResource } from \"./resources/member\";\nimport { WebhookResource } from \"./resources/webhook\";\n\nexport class BeepsClient {\n relay: RelayResource;\n schedule: ScheduleResource;\n contactMethod: ContactMethodResource;\n alert: AlertResource;\n integration: IntegrationResource;\n member: MemberResource;\n webhook: WebhookResource;\n\n constructor(config: BeepsClientConfig) {\n if (!config.apiKey) {\n throw new Error(\"apiKey is required\");\n }\n const http = new HttpClient(config);\n this.relay = new RelayResource(http);\n this.schedule = new ScheduleResource(http);\n this.contactMethod = new ContactMethodResource(http);\n this.alert = new AlertResource(http);\n this.integration = new IntegrationResource(http);\n this.member = new MemberResource(http);\n this.webhook = new WebhookResource(http);\n }\n}\n"],"mappings":"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","names":[]}
package/dist/index.d.cts CHANGED
@@ -88,6 +88,16 @@ type Relay = {
88
88
  createdAt: string;
89
89
  updatedAt: string;
90
90
  };
91
+ type Webhook = {
92
+ id: string;
93
+ webhookKey: string;
94
+ relayId: string;
95
+ organizationId: string;
96
+ description?: string | null;
97
+ enabled: boolean;
98
+ createdAt: string;
99
+ updatedAt: string;
100
+ };
91
101
  type CreateScheduleInput = {
92
102
  name: string;
93
103
  relayId: string;
@@ -541,6 +551,17 @@ declare class MemberResource {
541
551
  listSafe(): Promise<Result<OrganizationMember[]>>;
542
552
  }
543
553
 
554
+ declare class WebhookResource {
555
+ private http;
556
+ constructor(http: HttpClient);
557
+ listByRelay(relayId: string): Promise<Webhook[]>;
558
+ listByRelaySafe(relayId: string): Promise<Result<Webhook[]>>;
559
+ create(relayId: string, description?: string): Promise<Webhook>;
560
+ createSafe(relayId: string, description?: string): Promise<Result<Webhook>>;
561
+ delete(relayId: string, webhookId: string): Promise<void>;
562
+ deleteSafe(relayId: string, webhookId: string): Promise<Result<void>>;
563
+ }
564
+
544
565
  declare class BeepsClient {
545
566
  relay: RelayResource;
546
567
  schedule: ScheduleResource;
@@ -548,6 +569,7 @@ declare class BeepsClient {
548
569
  alert: AlertResource;
549
570
  integration: IntegrationResource;
550
571
  member: MemberResource;
572
+ webhook: WebhookResource;
551
573
  constructor(config: BeepsClientConfig);
552
574
  }
553
575
 
@@ -609,4 +631,4 @@ declare function isIsoZ(value: string): boolean;
609
631
  */
610
632
  declare function normalizeDateParam(date: Date | string): string;
611
633
 
612
- export { type AcknowledgeAlertInput, type AddScheduleMemberInput, type AgentConfig, type Alert, AlertResource, type AlertSeverity, AuthError, type BeepsAgentRuleConfig, BeepsClient, type BeepsClientConfig, type BeepsConfig, BeepsError, type BeepsIntegrationConfig, type BeepsRelayConfig, type BeepsRelayRuleConfig, type BeepsScheduleConfig, type BeepsScheduleMemberConfig, type BeepsScheduleNotifyRuleConfig, type BeepsUser, type BeepsWebhookRuleConfig, type ContactMethod, ContactMethodResource, type ContactMethodTransport, type CreateContactMethodInput, type CreateIntegrationInput, type CreateRelayInput, type CreateRelayRuleInput, type CreateScheduleInput, type CreateScheduleOverrideInput, type DeleteContactMethodParams, type GetAssignmentsParams, HttpError, type Integration, type IntegrationProvider, type ListContactMethodsParams, type ListRelayRulesParams, type ListScheduleOverridesParams, MemberResource, NetworkError, NotFoundError, type OrganizationMember, RateLimitError, type Relay, type RelayLintInput, type RelayLintIssue, type RelayLintResult, type RelayLintSeverity, type RelayRule, type RelayRuleConfig, type RelayRuleType, RelayRulesResource, type RelaySimulationAgentStep, type RelaySimulationAlertInput, type RelaySimulationAlertPreview, type RelaySimulationContactMethod, type RelaySimulationGroup, type RelaySimulationInput, type RelaySimulationOnCallUser, type RelaySimulationResult, type RelaySimulationScheduleStep, type RelaySimulationStep, type RelaySimulationUnknownStep, type RelaySimulationWebhookStep, type ReorderRelayRulesInput, type Result, type Schedule, type ScheduleAssignment, type ScheduleMember, type ScheduleNotifyConfig, type ScheduleOverride, ScheduleResource, ServerError, type UpdateIntegrationInput, type UpdateRelayRuleInput, type UpdateScheduleOverrideInput, ValidationError, type WebhookConfig, formatUTCDate, isIsoZ, mapHttpError, normalizeDateParam };
634
+ export { type AcknowledgeAlertInput, type AddScheduleMemberInput, type AgentConfig, type Alert, AlertResource, type AlertSeverity, AuthError, type BeepsAgentRuleConfig, BeepsClient, type BeepsClientConfig, type BeepsConfig, BeepsError, type BeepsIntegrationConfig, type BeepsRelayConfig, type BeepsRelayRuleConfig, type BeepsScheduleConfig, type BeepsScheduleMemberConfig, type BeepsScheduleNotifyRuleConfig, type BeepsUser, type BeepsWebhookRuleConfig, type ContactMethod, ContactMethodResource, type ContactMethodTransport, type CreateContactMethodInput, type CreateIntegrationInput, type CreateRelayInput, type CreateRelayRuleInput, type CreateScheduleInput, type CreateScheduleOverrideInput, type DeleteContactMethodParams, type GetAssignmentsParams, HttpError, type Integration, type IntegrationProvider, type ListContactMethodsParams, type ListRelayRulesParams, type ListScheduleOverridesParams, MemberResource, NetworkError, NotFoundError, type OrganizationMember, RateLimitError, type Relay, type RelayLintInput, type RelayLintIssue, type RelayLintResult, type RelayLintSeverity, type RelayRule, type RelayRuleConfig, type RelayRuleType, RelayRulesResource, type RelaySimulationAgentStep, type RelaySimulationAlertInput, type RelaySimulationAlertPreview, type RelaySimulationContactMethod, type RelaySimulationGroup, type RelaySimulationInput, type RelaySimulationOnCallUser, type RelaySimulationResult, type RelaySimulationScheduleStep, type RelaySimulationStep, type RelaySimulationUnknownStep, type RelaySimulationWebhookStep, type ReorderRelayRulesInput, type Result, type Schedule, type ScheduleAssignment, type ScheduleMember, type ScheduleNotifyConfig, type ScheduleOverride, ScheduleResource, ServerError, type UpdateIntegrationInput, type UpdateRelayRuleInput, type UpdateScheduleOverrideInput, ValidationError, type Webhook, type WebhookConfig, WebhookResource, formatUTCDate, isIsoZ, mapHttpError, normalizeDateParam };
package/dist/index.d.ts CHANGED
@@ -88,6 +88,16 @@ type Relay = {
88
88
  createdAt: string;
89
89
  updatedAt: string;
90
90
  };
91
+ type Webhook = {
92
+ id: string;
93
+ webhookKey: string;
94
+ relayId: string;
95
+ organizationId: string;
96
+ description?: string | null;
97
+ enabled: boolean;
98
+ createdAt: string;
99
+ updatedAt: string;
100
+ };
91
101
  type CreateScheduleInput = {
92
102
  name: string;
93
103
  relayId: string;
@@ -541,6 +551,17 @@ declare class MemberResource {
541
551
  listSafe(): Promise<Result<OrganizationMember[]>>;
542
552
  }
543
553
 
554
+ declare class WebhookResource {
555
+ private http;
556
+ constructor(http: HttpClient);
557
+ listByRelay(relayId: string): Promise<Webhook[]>;
558
+ listByRelaySafe(relayId: string): Promise<Result<Webhook[]>>;
559
+ create(relayId: string, description?: string): Promise<Webhook>;
560
+ createSafe(relayId: string, description?: string): Promise<Result<Webhook>>;
561
+ delete(relayId: string, webhookId: string): Promise<void>;
562
+ deleteSafe(relayId: string, webhookId: string): Promise<Result<void>>;
563
+ }
564
+
544
565
  declare class BeepsClient {
545
566
  relay: RelayResource;
546
567
  schedule: ScheduleResource;
@@ -548,6 +569,7 @@ declare class BeepsClient {
548
569
  alert: AlertResource;
549
570
  integration: IntegrationResource;
550
571
  member: MemberResource;
572
+ webhook: WebhookResource;
551
573
  constructor(config: BeepsClientConfig);
552
574
  }
553
575
 
@@ -609,4 +631,4 @@ declare function isIsoZ(value: string): boolean;
609
631
  */
610
632
  declare function normalizeDateParam(date: Date | string): string;
611
633
 
612
- export { type AcknowledgeAlertInput, type AddScheduleMemberInput, type AgentConfig, type Alert, AlertResource, type AlertSeverity, AuthError, type BeepsAgentRuleConfig, BeepsClient, type BeepsClientConfig, type BeepsConfig, BeepsError, type BeepsIntegrationConfig, type BeepsRelayConfig, type BeepsRelayRuleConfig, type BeepsScheduleConfig, type BeepsScheduleMemberConfig, type BeepsScheduleNotifyRuleConfig, type BeepsUser, type BeepsWebhookRuleConfig, type ContactMethod, ContactMethodResource, type ContactMethodTransport, type CreateContactMethodInput, type CreateIntegrationInput, type CreateRelayInput, type CreateRelayRuleInput, type CreateScheduleInput, type CreateScheduleOverrideInput, type DeleteContactMethodParams, type GetAssignmentsParams, HttpError, type Integration, type IntegrationProvider, type ListContactMethodsParams, type ListRelayRulesParams, type ListScheduleOverridesParams, MemberResource, NetworkError, NotFoundError, type OrganizationMember, RateLimitError, type Relay, type RelayLintInput, type RelayLintIssue, type RelayLintResult, type RelayLintSeverity, type RelayRule, type RelayRuleConfig, type RelayRuleType, RelayRulesResource, type RelaySimulationAgentStep, type RelaySimulationAlertInput, type RelaySimulationAlertPreview, type RelaySimulationContactMethod, type RelaySimulationGroup, type RelaySimulationInput, type RelaySimulationOnCallUser, type RelaySimulationResult, type RelaySimulationScheduleStep, type RelaySimulationStep, type RelaySimulationUnknownStep, type RelaySimulationWebhookStep, type ReorderRelayRulesInput, type Result, type Schedule, type ScheduleAssignment, type ScheduleMember, type ScheduleNotifyConfig, type ScheduleOverride, ScheduleResource, ServerError, type UpdateIntegrationInput, type UpdateRelayRuleInput, type UpdateScheduleOverrideInput, ValidationError, type WebhookConfig, formatUTCDate, isIsoZ, mapHttpError, normalizeDateParam };
634
+ export { type AcknowledgeAlertInput, type AddScheduleMemberInput, type AgentConfig, type Alert, AlertResource, type AlertSeverity, AuthError, type BeepsAgentRuleConfig, BeepsClient, type BeepsClientConfig, type BeepsConfig, BeepsError, type BeepsIntegrationConfig, type BeepsRelayConfig, type BeepsRelayRuleConfig, type BeepsScheduleConfig, type BeepsScheduleMemberConfig, type BeepsScheduleNotifyRuleConfig, type BeepsUser, type BeepsWebhookRuleConfig, type ContactMethod, ContactMethodResource, type ContactMethodTransport, type CreateContactMethodInput, type CreateIntegrationInput, type CreateRelayInput, type CreateRelayRuleInput, type CreateScheduleInput, type CreateScheduleOverrideInput, type DeleteContactMethodParams, type GetAssignmentsParams, HttpError, type Integration, type IntegrationProvider, type ListContactMethodsParams, type ListRelayRulesParams, type ListScheduleOverridesParams, MemberResource, NetworkError, NotFoundError, type OrganizationMember, RateLimitError, type Relay, type RelayLintInput, type RelayLintIssue, type RelayLintResult, type RelayLintSeverity, type RelayRule, type RelayRuleConfig, type RelayRuleType, RelayRulesResource, type RelaySimulationAgentStep, type RelaySimulationAlertInput, type RelaySimulationAlertPreview, type RelaySimulationContactMethod, type RelaySimulationGroup, type RelaySimulationInput, type RelaySimulationOnCallUser, type RelaySimulationResult, type RelaySimulationScheduleStep, type RelaySimulationStep, type RelaySimulationUnknownStep, type RelaySimulationWebhookStep, type ReorderRelayRulesInput, type Result, type Schedule, type ScheduleAssignment, type ScheduleMember, type ScheduleNotifyConfig, type ScheduleOverride, ScheduleResource, ServerError, type UpdateIntegrationInput, type UpdateRelayRuleInput, type UpdateScheduleOverrideInput, ValidationError, type Webhook, type WebhookConfig, WebhookResource, formatUTCDate, isIsoZ, mapHttpError, normalizeDateParam };
package/dist/index.js CHANGED
@@ -723,6 +723,54 @@ var MemberResource = class {
723
723
  }
724
724
  };
725
725
 
726
+ // src/resources/webhook.ts
727
+ var WebhookResource = class {
728
+ http;
729
+ constructor(http) {
730
+ this.http = http;
731
+ }
732
+ async listByRelay(relayId) {
733
+ const res = await this.http.get(
734
+ `/relay/${relayId}/webhooks`
735
+ );
736
+ return res.webhooks;
737
+ }
738
+ async listByRelaySafe(relayId) {
739
+ try {
740
+ const data = await this.listByRelay(relayId);
741
+ return { data };
742
+ } catch (error) {
743
+ return { error };
744
+ }
745
+ }
746
+ async create(relayId, description) {
747
+ const res = await this.http.post(
748
+ `/relay/${relayId}/webhooks`,
749
+ { description }
750
+ );
751
+ return res.webhook;
752
+ }
753
+ async createSafe(relayId, description) {
754
+ try {
755
+ const data = await this.create(relayId, description);
756
+ return { data };
757
+ } catch (error) {
758
+ return { error };
759
+ }
760
+ }
761
+ async delete(relayId, webhookId) {
762
+ await this.http.delete(`/relay/${relayId}/webhooks/${webhookId}`);
763
+ }
764
+ async deleteSafe(relayId, webhookId) {
765
+ try {
766
+ await this.delete(relayId, webhookId);
767
+ return { data: void 0 };
768
+ } catch (error) {
769
+ return { error };
770
+ }
771
+ }
772
+ };
773
+
726
774
  // src/client.ts
727
775
  var BeepsClient = class {
728
776
  relay;
@@ -731,6 +779,7 @@ var BeepsClient = class {
731
779
  alert;
732
780
  integration;
733
781
  member;
782
+ webhook;
734
783
  constructor(config) {
735
784
  if (!config.apiKey) {
736
785
  throw new Error("apiKey is required");
@@ -742,6 +791,7 @@ var BeepsClient = class {
742
791
  this.alert = new AlertResource(http);
743
792
  this.integration = new IntegrationResource(http);
744
793
  this.member = new MemberResource(http);
794
+ this.webhook = new WebhookResource(http);
745
795
  }
746
796
  };
747
797
  export {
@@ -759,6 +809,7 @@ export {
759
809
  ScheduleResource,
760
810
  ServerError,
761
811
  ValidationError,
812
+ WebhookResource,
762
813
  formatUTCDate,
763
814
  isIsoZ,
764
815
  mapHttpError,
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/version.ts","../src/errors.ts","../src/http.ts","../src/resources/relay-rules.ts","../src/resources/relay.ts","../src/utils/date.ts","../src/resources/schedule.ts","../src/resources/contact-method.ts","../src/resources/alert.ts","../src/resources/integration.ts","../src/resources/member.ts","../src/client.ts"],"sourcesContent":["export const SDK_VERSION = \"0.0.1\";\n","export class BeepsError extends Error {\n code?: string;\n status?: number;\n requestId?: string;\n retryable?: boolean;\n cause?: unknown;\n\n constructor(\n message: string,\n options?: {\n code?: string;\n status?: number;\n requestId?: string;\n retryable?: boolean;\n cause?: unknown;\n },\n ) {\n super(message);\n this.name = \"BeepsError\";\n this.code = options?.code;\n this.status = options?.status;\n this.requestId = options?.requestId;\n this.retryable = options?.retryable ?? false;\n this.cause = options?.cause;\n }\n\n toString() {\n const parts = [\n `BeepsError`,\n this.code ? `Code=${this.code}` : null,\n this.status ? `status=${this.status}` : null,\n this.requestId ? `requestId=${this.requestId}` : null,\n this.retryable ? `retryable=true` : null,\n ].filter(Boolean);\n return `${parts.join(\" \")}: ${this.message}`;\n }\n}\n\nexport class AuthError extends BeepsError {\n constructor(\n message = \"Unauthorized\",\n opts?: ConstructorParameters<typeof BeepsError>[1],\n ) {\n super(message, { ...opts, status: opts?.status ?? 401 });\n this.name = \"AuthError\";\n }\n}\n\nexport class ValidationError extends BeepsError {\n details?: unknown;\n constructor(\n message = \"Validation error\",\n opts?: ConstructorParameters<typeof BeepsError>[1] & { details?: unknown },\n ) {\n super(message, { ...opts, status: opts?.status ?? 400 });\n this.name = \"ValidationError\";\n this.details = opts?.details;\n }\n}\n\nexport class NotFoundError extends BeepsError {\n constructor(\n message = \"Not found\",\n opts?: ConstructorParameters<typeof BeepsError>[1],\n ) {\n super(message, { ...opts, status: opts?.status ?? 404 });\n this.name = \"NotFoundError\";\n }\n}\n\nexport class RateLimitError extends BeepsError {\n constructor(\n message = \"Rate limited\",\n opts?: ConstructorParameters<typeof BeepsError>[1],\n ) {\n super(message, { ...opts, status: opts?.status ?? 429, retryable: true });\n this.name = \"RateLimitError\";\n }\n}\n\nexport class ServerError extends BeepsError {\n constructor(\n message = \"Server error\",\n opts?: ConstructorParameters<typeof BeepsError>[1],\n ) {\n super(message, { ...opts, status: opts?.status ?? 500, retryable: true });\n this.name = \"ServerError\";\n }\n}\n\nexport class NetworkError extends BeepsError {\n constructor(\n message = \"Network error\",\n opts?: ConstructorParameters<typeof BeepsError>[1],\n ) {\n super(message, { ...opts });\n this.name = \"NetworkError\";\n }\n}\n\nexport class HttpError extends BeepsError {\n constructor(\n message = \"HTTP error\",\n opts?: ConstructorParameters<typeof BeepsError>[1],\n ) {\n super(message, { ...opts });\n this.name = \"HttpError\";\n }\n}\n\nexport function mapHttpError(\n status: number,\n message: string,\n requestId?: string,\n) {\n if (status === 401 || status === 403)\n return new AuthError(message, { status, requestId });\n if (status === 400)\n return new ValidationError(message, { status, requestId });\n if (status === 404) return new NotFoundError(message, { status, requestId });\n if (status === 429) return new RateLimitError(message, { status, requestId });\n if (status >= 500) return new ServerError(message, { status, requestId });\n return new HttpError(message, { status, requestId });\n}\n","import { SDK_VERSION } from \"./version\";\nimport { BeepsError, NetworkError, mapHttpError } from \"./errors\";\nimport type { BeepsClientConfig } from \"./types\";\n\ntype FetcherConfig = Required<Pick<BeepsClientConfig, \"apiKey\">> &\n Omit<BeepsClientConfig, \"apiKey\"> & {\n baseURL: string;\n timeoutMs: number;\n retries: { attempts: number; backoffMs: number };\n };\n\nexport class HttpClient {\n private cfg: FetcherConfig;\n private _fetch: typeof fetch;\n\n constructor(config: BeepsClientConfig) {\n const baseURL = config.baseURL ?? \"https://api.beeps.dev/v0\";\n const timeoutMs = config.timeoutMs ?? 10_000;\n const retries = config.retries ?? { attempts: 2, backoffMs: 300 };\n this.cfg = { ...config, baseURL, timeoutMs, retries } as FetcherConfig;\n this._fetch = config.fetch ?? fetch;\n }\n\n async post<T>(path: string, body: unknown): Promise<T> {\n return this.request<T>(\"POST\", path, body);\n }\n async get<T>(path: string): Promise<T> {\n return this.request<T>(\"GET\", path);\n }\n async put<T>(path: string, body: unknown): Promise<T> {\n return this.request<T>(\"PUT\", path, body);\n }\n async patch<T>(path: string, body: unknown): Promise<T> {\n return this.request<T>(\"PATCH\", path, body);\n }\n async delete<T>(path: string): Promise<T> {\n return this.request<T>(\"DELETE\", path);\n }\n\n private async request<T>(\n method: string,\n path: string,\n body?: unknown,\n ): Promise<T> {\n const url =\n this.cfg.baseURL.replace(/\\/+$/, \"\") + \"/\" + path.replace(/^\\/+/, \"\");\n const controller = new AbortController();\n const id = setTimeout(() => controller.abort(), this.cfg.timeoutMs);\n try {\n let attempt = 0;\n while (true) {\n try {\n const res = await this._fetch(url, {\n method,\n headers: {\n \"Content-Type\": \"application/json\",\n \"X-API-Key\": this.cfg.apiKey,\n \"User-Agent\": `beepsdev-sdk/${SDK_VERSION}`,\n },\n body: body !== undefined ? JSON.stringify(body) : undefined,\n signal: controller.signal,\n });\n\n const requestId = res.headers.get(\"x-request-id\") ?? undefined;\n const isJson = (res.headers.get(\"content-type\") || \"\").includes(\n \"application/json\",\n );\n const payload = (isJson\n ? await res.json().catch(() => ({}))\n : {}) as Record<string, unknown>;\n\n if (res.ok) {\n return payload as T;\n }\n\n const msg =\n typeof payload.error === \"string\"\n ? payload.error\n : typeof payload.message === \"string\"\n ? payload.message\n : \"Request failed\";\n\n const err = mapHttpError(res.status, msg, requestId);\n if (\n this.shouldRetry(res.status) &&\n attempt < this.cfg.retries.attempts\n ) {\n attempt++;\n await this.sleep(this.jitterBackoff(attempt));\n continue;\n }\n throw err;\n } catch (e) {\n if (e instanceof BeepsError) {\n throw e;\n }\n if (e instanceof Error && e.name === \"AbortError\") {\n throw new NetworkError(\"Request timed out\", { cause: e });\n }\n if (e instanceof TypeError) {\n if (attempt < this.cfg.retries.attempts) {\n attempt++;\n await this.sleep(this.jitterBackoff(attempt));\n continue;\n }\n throw new NetworkError(\"Network error\", { cause: e });\n }\n throw e;\n }\n }\n } finally {\n clearTimeout(id);\n }\n }\n\n private shouldRetry(status: number) {\n if (status === 429) return true;\n if (status >= 500 && status !== 501 && status !== 505) return true;\n return false;\n }\n\n private jitterBackoff(attempt: number) {\n const base = this.cfg.retries.backoffMs * Math.pow(2, attempt - 1);\n const jitter = Math.random() * 100;\n return base + jitter;\n }\n\n private sleep(ms: number) {\n return new Promise((r) => setTimeout(r, ms));\n }\n}\n","import type {\n CreateRelayRuleInput,\n UpdateRelayRuleInput,\n RelayRule,\n ListRelayRulesParams,\n ReorderRelayRulesInput,\n Result,\n} from \"../types\";\nimport { HttpClient } from \"../http\";\n\nexport class RelayRulesResource {\n private http: HttpClient;\n\n constructor(http: HttpClient) {\n this.http = http;\n }\n\n async list(relayId: string, params?: ListRelayRulesParams): Promise<RelayRule[]> {\n const qs = new URLSearchParams();\n if (params?.enabled !== undefined) {\n qs.set(\"enabled\", params.enabled.toString());\n }\n if (params?.ruleType) {\n qs.set(\"ruleType\", params.ruleType);\n }\n const path = qs.toString()\n ? `/relay/${relayId}/rules?${qs.toString()}`\n : `/relay/${relayId}/rules`;\n const res = await this.http.get<{ rules: RelayRule[] }>(path);\n return res.rules;\n }\n\n async create(relayId: string, input: CreateRelayRuleInput): Promise<RelayRule> {\n const res = await this.http.post<{ rule: RelayRule }>(`/relay/${relayId}/rules`, input);\n return res.rule;\n }\n\n async get(relayId: string, ruleId: string): Promise<RelayRule> {\n const res = await this.http.get<{ rule: RelayRule }>(`/relay/${relayId}/rules/${ruleId}`);\n return res.rule;\n }\n\n async update(relayId: string, ruleId: string, input: UpdateRelayRuleInput): Promise<RelayRule> {\n const res = await this.http.put<{ rule: RelayRule }>(`/relay/${relayId}/rules/${ruleId}`, input);\n return res.rule;\n }\n\n async delete(relayId: string, ruleId: string): Promise<{ success: boolean }> {\n const res = await this.http.delete<{ success: boolean }>(`/relay/${relayId}/rules/${ruleId}`);\n return res;\n }\n\n async reorder(relayId: string, input: ReorderRelayRulesInput): Promise<RelayRule[]> {\n const res = await this.http.put<{ rules: RelayRule[] }>(`/relay/${relayId}/rules/reorder`, input);\n return res.rules;\n }\n\n // Safe versions that return Result<T> instead of throwing\n async listSafe(relayId: string, params?: ListRelayRulesParams): Promise<Result<RelayRule[]>> {\n try {\n const data = await this.list(relayId, params);\n return { data };\n } catch (error) {\n return { error: error as Error };\n }\n }\n\n async createSafe(relayId: string, input: CreateRelayRuleInput): Promise<Result<RelayRule>> {\n try {\n const data = await this.create(relayId, input);\n return { data };\n } catch (error) {\n return { error: error as Error };\n }\n }\n\n async getSafe(relayId: string, ruleId: string): Promise<Result<RelayRule>> {\n try {\n const data = await this.get(relayId, ruleId);\n return { data };\n } catch (error) {\n return { error: error as Error };\n }\n }\n\n async updateSafe(relayId: string, ruleId: string, input: UpdateRelayRuleInput): Promise<Result<RelayRule>> {\n try {\n const data = await this.update(relayId, ruleId, input);\n return { data };\n } catch (error) {\n return { error: error as Error };\n }\n }\n\n async deleteSafe(relayId: string, ruleId: string): Promise<Result<{ success: boolean }>> {\n try {\n const data = await this.delete(relayId, ruleId);\n return { data };\n } catch (error) {\n return { error: error as Error };\n }\n }\n\n async reorderSafe(relayId: string, input: ReorderRelayRulesInput): Promise<Result<RelayRule[]>> {\n try {\n const data = await this.reorder(relayId, input);\n return { data };\n } catch (error) {\n return { error: error as Error };\n }\n }\n}","import type {\n CreateRelayInput,\n Relay,\n RelayLintInput,\n RelayLintResult,\n RelaySimulationInput,\n RelaySimulationResult,\n Result,\n} from \"../types\";\nimport { HttpClient } from \"../http\";\nimport { RelayRulesResource } from \"./relay-rules\";\n\nexport class RelayResource {\n private http: HttpClient;\n rules: RelayRulesResource;\n\n constructor(http: HttpClient) {\n this.http = http;\n this.rules = new RelayRulesResource(http);\n }\n\n async create(input: CreateRelayInput): Promise<Relay> {\n const res = await this.http.post<{ relay: Relay }>(\"/relay\", input);\n return res.relay;\n }\n\n async list(): Promise<Relay[]> {\n const res = await this.http.get<{ relays: Relay[] }>(\"/relay\");\n return res.relays;\n }\n\n async lint(relayId: string, input: RelayLintInput = {}): Promise<RelayLintResult> {\n const res = await this.http.post<RelayLintResult>(\n `/relay/${relayId}/lint`,\n input,\n );\n return res;\n }\n\n async simulate(\n relayId: string,\n input: RelaySimulationInput,\n ): Promise<RelaySimulationResult> {\n const res = await this.http.post<RelaySimulationResult>(\n `/relay/${relayId}/simulate`,\n input,\n );\n return res;\n }\n\n async createSafe(input: CreateRelayInput): Promise<Result<Relay>> {\n try {\n const data = await this.create(input);\n return { data };\n } catch (error) {\n return { error: error as Error };\n }\n }\n\n async lintSafe(\n relayId: string,\n input: RelayLintInput = {},\n ): Promise<Result<RelayLintResult>> {\n try {\n const data = await this.lint(relayId, input);\n return { data };\n } catch (error) {\n return { error: error as Error };\n }\n }\n\n async simulateSafe(\n relayId: string,\n input: RelaySimulationInput,\n ): Promise<Result<RelaySimulationResult>> {\n try {\n const data = await this.simulate(relayId, input);\n return { data };\n } catch (error) {\n return { error: error as Error };\n }\n }\n}\n","/**\n * Formats a Date object as an ISO 8601 timestamp with Z suffix (UTC).\n * Example: \"2024-01-29T00:00:00.000Z\"\n */\nexport function formatUTCDate(date: Date): string {\n return date.toISOString();\n}\n\n/**\n * Validates that a string is a valid ISO 8601 timestamp with Z suffix.\n * Returns true if the string ends with \"Z\" and can be parsed as a valid date.\n */\nexport function isIsoZ(value: string): boolean {\n return value.endsWith(\"Z\") && !isNaN(Date.parse(value));\n}\n\n/**\n * Validates and normalizes a date parameter to an ISO 8601 string with Z suffix.\n * Accepts either a Date object or a Z-suffixed ISO string.\n * Throws an error if the input is invalid.\n */\nexport function normalizeDateParam(date: Date | string): string {\n if (date instanceof Date) {\n return formatUTCDate(date);\n }\n \n if (typeof date === \"string\") {\n if (!isIsoZ(date)) {\n throw new Error(\n `Invalid date format. Date must be a valid ISO 8601 timestamp with Z suffix (e.g., \"2024-01-29T00:00:00.000Z\"). Received: \"${date}\"`\n );\n }\n return date;\n }\n \n throw new Error(\n `Invalid date type. Expected Date object or ISO 8601 string with Z suffix, received: ${typeof date}`\n );\n}\n","import type {\n CreateScheduleInput,\n Schedule,\n AddScheduleMemberInput,\n ScheduleMember,\n ScheduleAssignment,\n GetAssignmentsParams,\n BeepsUser,\n Result,\n CreateScheduleOverrideInput,\n UpdateScheduleOverrideInput,\n ListScheduleOverridesParams,\n ScheduleOverride,\n} from \"../types\";\nimport { HttpClient } from \"../http\";\nimport { normalizeDateParam } from \"../utils/date\";\n\nexport class ScheduleResource {\n private http: HttpClient;\n\n constructor(http: HttpClient) {\n this.http = http;\n }\n\n async create(input: CreateScheduleInput): Promise<Schedule> {\n const res = await this.http.post<{ schedule: Schedule }>(\"/schedule\", input);\n return res.schedule;\n }\n\n async list(): Promise<Schedule[]> {\n const res = await this.http.get<{ schedules: Schedule[] }>(\"/schedule\");\n return res.schedules;\n }\n\n async addMember(scheduleId: string, input: AddScheduleMemberInput): Promise<ScheduleMember> {\n const res = await this.http.post<{ member: ScheduleMember }>(\n `/schedule/${scheduleId}/members`,\n input,\n );\n return res.member;\n }\n\n async listMembers(scheduleId: string): Promise<ScheduleMember[]> {\n const res = await this.http.get<{ members: ScheduleMember[] }>(\n `/schedule/${scheduleId}/members`,\n );\n return res.members;\n }\n\n async listMembersSafe(scheduleId: string): Promise<Result<ScheduleMember[]>> {\n try {\n const data = await this.listMembers(scheduleId);\n return { data };\n } catch (error) {\n return { error: error as Error };\n }\n }\n\n async removeMember(scheduleId: string, userId: string): Promise<ScheduleMember> {\n const res = await this.http.delete<{ member: ScheduleMember }>(\n `/schedule/${scheduleId}/members/${userId}`,\n );\n return res.member;\n }\n\n async getAssignments(\n scheduleId: string,\n params?: GetAssignmentsParams,\n ): Promise<ScheduleAssignment[]> {\n const qs = new URLSearchParams();\n \n if (params) {\n if (params.type === \"until\") {\n qs.set(\"type\", \"until\");\n const normalizedDate = normalizeDateParam(params.date);\n qs.set(\"date\", normalizedDate);\n } else if (params.type === \"days\") {\n qs.set(\"type\", \"days\");\n qs.set(\"count\", String(params.count));\n } else {\n if (params.type) {\n qs.set(\"type\", params.type);\n }\n if (params.count !== undefined) {\n qs.set(\"count\", String(params.count));\n }\n }\n }\n \n const path = qs.toString()\n ? `/schedule/${scheduleId}/assignments?${qs.toString()}`\n : `/schedule/${scheduleId}/assignments`;\n const res = await this.http.get<{ assignments: ScheduleAssignment[] }>(path);\n return res.assignments;\n }\n\n async getOnCall(scheduleId: string): Promise<BeepsUser> {\n const res = await this.http.get<{ onCall: BeepsUser }>(\n `/schedule/${scheduleId}/on-call`\n );\n return res.onCall;\n }\n\n async getOnCallSafe(scheduleId: string): Promise<Result<BeepsUser>> {\n try {\n const data = await this.getOnCall(scheduleId);\n return { data };\n } catch (error) {\n return { error: error as Error };\n }\n }\n\n async createOverride(\n scheduleId: string,\n input: CreateScheduleOverrideInput,\n ): Promise<ScheduleOverride> {\n const body = {\n userId: input.userId,\n startAt: normalizeDateParam(input.startAt),\n endAt: normalizeDateParam(input.endAt),\n reason: input.reason,\n };\n const res = await this.http.post<{ override: ScheduleOverride }>(\n `/schedule/${scheduleId}/overrides`,\n body,\n );\n return res.override;\n }\n\n async listOverrides(\n scheduleId: string,\n params?: ListScheduleOverridesParams,\n ): Promise<ScheduleOverride[]> {\n const qs = new URLSearchParams();\n \n if (params) {\n if (params.startAt) {\n qs.set(\"startAt\", normalizeDateParam(params.startAt));\n }\n if (params.endAt) {\n qs.set(\"endAt\", normalizeDateParam(params.endAt));\n }\n }\n \n const path = qs.toString()\n ? `/schedule/${scheduleId}/overrides?${qs.toString()}`\n : `/schedule/${scheduleId}/overrides`;\n const res = await this.http.get<{ overrides: ScheduleOverride[] }>(path);\n return res.overrides;\n }\n\n async cancelOverride(\n scheduleId: string,\n overrideId: string,\n ): Promise<ScheduleOverride> {\n const res = await this.http.delete<{ override: ScheduleOverride }>(\n `/schedule/${scheduleId}/overrides/${overrideId}`,\n );\n return res.override;\n }\n\n async updateOverride(\n scheduleId: string,\n overrideId: string,\n input: UpdateScheduleOverrideInput,\n ): Promise<ScheduleOverride> {\n const body: Record<string, string | undefined> = {};\n \n if (input.startAt !== undefined) {\n body.startAt = normalizeDateParam(input.startAt);\n }\n if (input.endAt !== undefined) {\n body.endAt = normalizeDateParam(input.endAt);\n }\n if (input.reason !== undefined) {\n body.reason = input.reason;\n }\n \n const res = await this.http.patch<{ override: ScheduleOverride }>(\n `/schedule/${scheduleId}/overrides/${overrideId}`,\n body,\n );\n return res.override;\n }\n}\n","import type {\n CreateContactMethodInput,\n ContactMethod,\n ListContactMethodsParams,\n DeleteContactMethodParams,\n Result,\n} from \"../types\";\nimport { HttpClient } from \"../http\";\n\nexport class ContactMethodResource {\n private http: HttpClient;\n\n constructor(http: HttpClient) {\n this.http = http;\n }\n\n async list(params: ListContactMethodsParams): Promise<ContactMethod[]> {\n const qs = new URLSearchParams();\n qs.set(\"userId\", params.userId);\n const res = await this.http.get<{ contactMethods: ContactMethod[] }>(\n `/contact-methods?${qs.toString()}`\n );\n return res.contactMethods;\n }\n\n async create(input: CreateContactMethodInput): Promise<ContactMethod> {\n const res = await this.http.post<{ contactMethod: ContactMethod }>(\n \"/contact-methods\",\n input\n );\n return res.contactMethod;\n }\n\n async delete(\n id: string,\n params: DeleteContactMethodParams\n ): Promise<{ success: boolean }> {\n const qs = new URLSearchParams();\n qs.set(\"userId\", params.userId);\n const res = await this.http.delete<{ success: boolean }>(\n `/contact-methods/${id}?${qs.toString()}`\n );\n return res;\n }\n\n async listSafe(\n params: ListContactMethodsParams\n ): Promise<Result<ContactMethod[]>> {\n try {\n const data = await this.list(params);\n return { data };\n } catch (error) {\n return { error: error as Error };\n }\n }\n\n async createSafe(\n input: CreateContactMethodInput\n ): Promise<Result<ContactMethod>> {\n try {\n const data = await this.create(input);\n return { data };\n } catch (error) {\n return { error: error as Error };\n }\n }\n\n async deleteSafe(\n id: string,\n params: DeleteContactMethodParams\n ): Promise<Result<{ success: boolean }>> {\n try {\n const data = await this.delete(id, params);\n return { data };\n } catch (error) {\n return { error: error as Error };\n }\n }\n}\n","import type {\n Alert,\n AcknowledgeAlertInput,\n Result,\n} from \"../types\";\nimport { HttpClient } from \"../http\";\n\nexport class AlertResource {\n private http: HttpClient;\n\n constructor(http: HttpClient) {\n this.http = http;\n }\n\n async list(): Promise<Alert[]> {\n const res = await this.http.get<{ alerts: Alert[] }>(\"/alerts\");\n return res.alerts;\n }\n\n async listActive(): Promise<Alert[]> {\n const res = await this.http.get<{ alerts: Alert[] }>(\"/alerts/active\");\n return res.alerts;\n }\n\n async listResolved(): Promise<Alert[]> {\n const res = await this.http.get<{ alerts: Alert[] }>(\"/alerts/resolved\");\n return res.alerts;\n }\n\n async get(alertId: string): Promise<Alert> {\n const res = await this.http.get<{ alert: Alert }>(`/alerts/${alertId}`);\n return res.alert;\n }\n\n async acknowledge(alertId: string, input?: AcknowledgeAlertInput): Promise<Alert> {\n const res = await this.http.post<{ alert: Alert }>(\n `/alerts/${alertId}/acknowledge`,\n input || {}\n );\n return res.alert;\n }\n\n async resolve(alertId: string): Promise<Alert> {\n const res = await this.http.post<{ alert: Alert }>(\n `/alerts/${alertId}/resolve`,\n {}\n );\n return res.alert;\n }\n\n async assign(alertId: string, userId: string): Promise<Alert> {\n const res = await this.http.post<{ alert: Alert }>(\n `/alerts/${alertId}/assign`,\n { userId }\n );\n return res.alert;\n }\n\n async listSafe(): Promise<Result<Alert[]>> {\n try {\n const data = await this.list();\n return { data };\n } catch (error) {\n return { error: error as Error };\n }\n }\n\n async listActiveSafe(): Promise<Result<Alert[]>> {\n try {\n const data = await this.listActive();\n return { data };\n } catch (error) {\n return { error: error as Error };\n }\n }\n\n async listResolvedSafe(): Promise<Result<Alert[]>> {\n try {\n const data = await this.listResolved();\n return { data };\n } catch (error) {\n return { error: error as Error };\n }\n }\n\n async getSafe(alertId: string): Promise<Result<Alert>> {\n try {\n const data = await this.get(alertId);\n return { data };\n } catch (error) {\n return { error: error as Error };\n }\n }\n\n async acknowledgeSafe(\n alertId: string,\n input?: AcknowledgeAlertInput\n ): Promise<Result<Alert>> {\n try {\n const data = await this.acknowledge(alertId, input);\n return { data };\n } catch (error) {\n return { error: error as Error };\n }\n }\n\n async resolveSafe(alertId: string): Promise<Result<Alert>> {\n try {\n const data = await this.resolve(alertId);\n return { data };\n } catch (error) {\n return { error: error as Error };\n }\n }\n\n async assignSafe(alertId: string, userId: string): Promise<Result<Alert>> {\n try {\n const data = await this.assign(alertId, userId);\n return { data };\n } catch (error) {\n return { error: error as Error };\n }\n }\n}\n","import type {\n CreateIntegrationInput,\n UpdateIntegrationInput,\n Integration,\n Result,\n} from \"../types\";\nimport { HttpClient } from \"../http\";\n\nexport class IntegrationResource {\n private http: HttpClient;\n\n constructor(http: HttpClient) {\n this.http = http;\n }\n\n async list(): Promise<Integration[]> {\n const res = await this.http.get<{ integrations: Integration[] }>(\"/integrations\");\n return res.integrations;\n }\n\n async create(input: CreateIntegrationInput): Promise<Integration> {\n const res = await this.http.post<{ integration: Integration }>(\"/integrations\", input);\n return res.integration;\n }\n\n async get(integrationId: string): Promise<Integration> {\n const res = await this.http.get<{ integration: Integration }>(`/integrations/${integrationId}`);\n return res.integration;\n }\n\n async update(integrationId: string, input: UpdateIntegrationInput): Promise<Integration> {\n const res = await this.http.put<{ integration: Integration }>(`/integrations/${integrationId}`, input);\n return res.integration;\n }\n\n async delete(integrationId: string): Promise<{ success: boolean }> {\n const res = await this.http.delete<{ success: boolean }>(`/integrations/${integrationId}`);\n return res;\n }\n\n async listSafe(): Promise<Result<Integration[]>> {\n try {\n const data = await this.list();\n return { data };\n } catch (error) {\n return { error: error as Error };\n }\n }\n\n async createSafe(input: CreateIntegrationInput): Promise<Result<Integration>> {\n try {\n const data = await this.create(input);\n return { data };\n } catch (error) {\n return { error: error as Error };\n }\n }\n\n async getSafe(integrationId: string): Promise<Result<Integration>> {\n try {\n const data = await this.get(integrationId);\n return { data };\n } catch (error) {\n return { error: error as Error };\n }\n }\n\n async updateSafe(integrationId: string, input: UpdateIntegrationInput): Promise<Result<Integration>> {\n try {\n const data = await this.update(integrationId, input);\n return { data };\n } catch (error) {\n return { error: error as Error };\n }\n }\n\n async deleteSafe(integrationId: string): Promise<Result<{ success: boolean }>> {\n try {\n const data = await this.delete(integrationId);\n return { data };\n } catch (error) {\n return { error: error as Error };\n }\n }\n}\n","import type { OrganizationMember, Result } from \"../types\";\nimport { HttpClient } from \"../http\";\n\nexport class MemberResource {\n private http: HttpClient;\n\n constructor(http: HttpClient) {\n this.http = http;\n }\n\n async list(): Promise<OrganizationMember[]> {\n const res = await this.http.get<{ members: OrganizationMember[] }>(\"/members\");\n return res.members;\n }\n\n async listSafe(): Promise<Result<OrganizationMember[]>> {\n try {\n const data = await this.list();\n return { data };\n } catch (error) {\n return { error: error as Error };\n }\n }\n}\n","import type { BeepsClientConfig } from \"./types\";\nimport { HttpClient } from \"./http\";\nimport { RelayResource } from \"./resources/relay\";\nimport { ScheduleResource } from \"./resources/schedule\";\nimport { ContactMethodResource } from \"./resources/contact-method\";\nimport { AlertResource } from \"./resources/alert\";\nimport { IntegrationResource } from \"./resources/integration\";\nimport { MemberResource } from \"./resources/member\";\n\nexport class BeepsClient {\n relay: RelayResource;\n schedule: ScheduleResource;\n contactMethod: ContactMethodResource;\n alert: AlertResource;\n integration: IntegrationResource;\n member: MemberResource;\n\n constructor(config: BeepsClientConfig) {\n if (!config.apiKey) {\n throw new Error(\"apiKey is required\");\n }\n const http = new HttpClient(config);\n this.relay = new RelayResource(http);\n this.schedule = new ScheduleResource(http);\n this.contactMethod = new ContactMethodResource(http);\n this.alert = new AlertResource(http);\n this.integration = new IntegrationResource(http);\n this.member = new MemberResource(http);\n }\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../src/version.ts","../src/errors.ts","../src/http.ts","../src/resources/relay-rules.ts","../src/resources/relay.ts","../src/utils/date.ts","../src/resources/schedule.ts","../src/resources/contact-method.ts","../src/resources/alert.ts","../src/resources/integration.ts","../src/resources/member.ts","../src/resources/webhook.ts","../src/client.ts"],"sourcesContent":["export const SDK_VERSION = \"0.0.1\";\n","export class BeepsError extends Error {\n code?: string;\n status?: number;\n requestId?: string;\n retryable?: boolean;\n cause?: unknown;\n\n constructor(\n message: string,\n options?: {\n code?: string;\n status?: number;\n requestId?: string;\n retryable?: boolean;\n cause?: unknown;\n },\n ) {\n super(message);\n this.name = \"BeepsError\";\n this.code = options?.code;\n this.status = options?.status;\n this.requestId = options?.requestId;\n this.retryable = options?.retryable ?? false;\n this.cause = options?.cause;\n }\n\n toString() {\n const parts = [\n `BeepsError`,\n this.code ? `Code=${this.code}` : null,\n this.status ? `status=${this.status}` : null,\n this.requestId ? `requestId=${this.requestId}` : null,\n this.retryable ? `retryable=true` : null,\n ].filter(Boolean);\n return `${parts.join(\" \")}: ${this.message}`;\n }\n}\n\nexport class AuthError extends BeepsError {\n constructor(\n message = \"Unauthorized\",\n opts?: ConstructorParameters<typeof BeepsError>[1],\n ) {\n super(message, { ...opts, status: opts?.status ?? 401 });\n this.name = \"AuthError\";\n }\n}\n\nexport class ValidationError extends BeepsError {\n details?: unknown;\n constructor(\n message = \"Validation error\",\n opts?: ConstructorParameters<typeof BeepsError>[1] & { details?: unknown },\n ) {\n super(message, { ...opts, status: opts?.status ?? 400 });\n this.name = \"ValidationError\";\n this.details = opts?.details;\n }\n}\n\nexport class NotFoundError extends BeepsError {\n constructor(\n message = \"Not found\",\n opts?: ConstructorParameters<typeof BeepsError>[1],\n ) {\n super(message, { ...opts, status: opts?.status ?? 404 });\n this.name = \"NotFoundError\";\n }\n}\n\nexport class RateLimitError extends BeepsError {\n constructor(\n message = \"Rate limited\",\n opts?: ConstructorParameters<typeof BeepsError>[1],\n ) {\n super(message, { ...opts, status: opts?.status ?? 429, retryable: true });\n this.name = \"RateLimitError\";\n }\n}\n\nexport class ServerError extends BeepsError {\n constructor(\n message = \"Server error\",\n opts?: ConstructorParameters<typeof BeepsError>[1],\n ) {\n super(message, { ...opts, status: opts?.status ?? 500, retryable: true });\n this.name = \"ServerError\";\n }\n}\n\nexport class NetworkError extends BeepsError {\n constructor(\n message = \"Network error\",\n opts?: ConstructorParameters<typeof BeepsError>[1],\n ) {\n super(message, { ...opts });\n this.name = \"NetworkError\";\n }\n}\n\nexport class HttpError extends BeepsError {\n constructor(\n message = \"HTTP error\",\n opts?: ConstructorParameters<typeof BeepsError>[1],\n ) {\n super(message, { ...opts });\n this.name = \"HttpError\";\n }\n}\n\nexport function mapHttpError(\n status: number,\n message: string,\n requestId?: string,\n) {\n if (status === 401 || status === 403)\n return new AuthError(message, { status, requestId });\n if (status === 400)\n return new ValidationError(message, { status, requestId });\n if (status === 404) return new NotFoundError(message, { status, requestId });\n if (status === 429) return new RateLimitError(message, { status, requestId });\n if (status >= 500) return new ServerError(message, { status, requestId });\n return new HttpError(message, { status, requestId });\n}\n","import { SDK_VERSION } from \"./version\";\nimport { BeepsError, NetworkError, mapHttpError } from \"./errors\";\nimport type { BeepsClientConfig } from \"./types\";\n\ntype FetcherConfig = Required<Pick<BeepsClientConfig, \"apiKey\">> &\n Omit<BeepsClientConfig, \"apiKey\"> & {\n baseURL: string;\n timeoutMs: number;\n retries: { attempts: number; backoffMs: number };\n };\n\nexport class HttpClient {\n private cfg: FetcherConfig;\n private _fetch: typeof fetch;\n\n constructor(config: BeepsClientConfig) {\n const baseURL = config.baseURL ?? \"https://api.beeps.dev/v0\";\n const timeoutMs = config.timeoutMs ?? 10_000;\n const retries = config.retries ?? { attempts: 2, backoffMs: 300 };\n this.cfg = { ...config, baseURL, timeoutMs, retries } as FetcherConfig;\n this._fetch = config.fetch ?? fetch;\n }\n\n async post<T>(path: string, body: unknown): Promise<T> {\n return this.request<T>(\"POST\", path, body);\n }\n async get<T>(path: string): Promise<T> {\n return this.request<T>(\"GET\", path);\n }\n async put<T>(path: string, body: unknown): Promise<T> {\n return this.request<T>(\"PUT\", path, body);\n }\n async patch<T>(path: string, body: unknown): Promise<T> {\n return this.request<T>(\"PATCH\", path, body);\n }\n async delete<T>(path: string): Promise<T> {\n return this.request<T>(\"DELETE\", path);\n }\n\n private async request<T>(\n method: string,\n path: string,\n body?: unknown,\n ): Promise<T> {\n const url =\n this.cfg.baseURL.replace(/\\/+$/, \"\") + \"/\" + path.replace(/^\\/+/, \"\");\n const controller = new AbortController();\n const id = setTimeout(() => controller.abort(), this.cfg.timeoutMs);\n try {\n let attempt = 0;\n while (true) {\n try {\n const res = await this._fetch(url, {\n method,\n headers: {\n \"Content-Type\": \"application/json\",\n \"X-API-Key\": this.cfg.apiKey,\n \"User-Agent\": `beepsdev-sdk/${SDK_VERSION}`,\n },\n body: body !== undefined ? JSON.stringify(body) : undefined,\n signal: controller.signal,\n });\n\n const requestId = res.headers.get(\"x-request-id\") ?? undefined;\n const isJson = (res.headers.get(\"content-type\") || \"\").includes(\n \"application/json\",\n );\n const payload = (isJson\n ? await res.json().catch(() => ({}))\n : {}) as Record<string, unknown>;\n\n if (res.ok) {\n return payload as T;\n }\n\n const msg =\n typeof payload.error === \"string\"\n ? payload.error\n : typeof payload.message === \"string\"\n ? payload.message\n : \"Request failed\";\n\n const err = mapHttpError(res.status, msg, requestId);\n if (\n this.shouldRetry(res.status) &&\n attempt < this.cfg.retries.attempts\n ) {\n attempt++;\n await this.sleep(this.jitterBackoff(attempt));\n continue;\n }\n throw err;\n } catch (e) {\n if (e instanceof BeepsError) {\n throw e;\n }\n if (e instanceof Error && e.name === \"AbortError\") {\n throw new NetworkError(\"Request timed out\", { cause: e });\n }\n if (e instanceof TypeError) {\n if (attempt < this.cfg.retries.attempts) {\n attempt++;\n await this.sleep(this.jitterBackoff(attempt));\n continue;\n }\n throw new NetworkError(\"Network error\", { cause: e });\n }\n throw e;\n }\n }\n } finally {\n clearTimeout(id);\n }\n }\n\n private shouldRetry(status: number) {\n if (status === 429) return true;\n if (status >= 500 && status !== 501 && status !== 505) return true;\n return false;\n }\n\n private jitterBackoff(attempt: number) {\n const base = this.cfg.retries.backoffMs * Math.pow(2, attempt - 1);\n const jitter = Math.random() * 100;\n return base + jitter;\n }\n\n private sleep(ms: number) {\n return new Promise((r) => setTimeout(r, ms));\n }\n}\n","import type {\n CreateRelayRuleInput,\n UpdateRelayRuleInput,\n RelayRule,\n ListRelayRulesParams,\n ReorderRelayRulesInput,\n Result,\n} from \"../types\";\nimport { HttpClient } from \"../http\";\n\nexport class RelayRulesResource {\n private http: HttpClient;\n\n constructor(http: HttpClient) {\n this.http = http;\n }\n\n async list(relayId: string, params?: ListRelayRulesParams): Promise<RelayRule[]> {\n const qs = new URLSearchParams();\n if (params?.enabled !== undefined) {\n qs.set(\"enabled\", params.enabled.toString());\n }\n if (params?.ruleType) {\n qs.set(\"ruleType\", params.ruleType);\n }\n const path = qs.toString()\n ? `/relay/${relayId}/rules?${qs.toString()}`\n : `/relay/${relayId}/rules`;\n const res = await this.http.get<{ rules: RelayRule[] }>(path);\n return res.rules;\n }\n\n async create(relayId: string, input: CreateRelayRuleInput): Promise<RelayRule> {\n const res = await this.http.post<{ rule: RelayRule }>(`/relay/${relayId}/rules`, input);\n return res.rule;\n }\n\n async get(relayId: string, ruleId: string): Promise<RelayRule> {\n const res = await this.http.get<{ rule: RelayRule }>(`/relay/${relayId}/rules/${ruleId}`);\n return res.rule;\n }\n\n async update(relayId: string, ruleId: string, input: UpdateRelayRuleInput): Promise<RelayRule> {\n const res = await this.http.put<{ rule: RelayRule }>(`/relay/${relayId}/rules/${ruleId}`, input);\n return res.rule;\n }\n\n async delete(relayId: string, ruleId: string): Promise<{ success: boolean }> {\n const res = await this.http.delete<{ success: boolean }>(`/relay/${relayId}/rules/${ruleId}`);\n return res;\n }\n\n async reorder(relayId: string, input: ReorderRelayRulesInput): Promise<RelayRule[]> {\n const res = await this.http.put<{ rules: RelayRule[] }>(`/relay/${relayId}/rules/reorder`, input);\n return res.rules;\n }\n\n // Safe versions that return Result<T> instead of throwing\n async listSafe(relayId: string, params?: ListRelayRulesParams): Promise<Result<RelayRule[]>> {\n try {\n const data = await this.list(relayId, params);\n return { data };\n } catch (error) {\n return { error: error as Error };\n }\n }\n\n async createSafe(relayId: string, input: CreateRelayRuleInput): Promise<Result<RelayRule>> {\n try {\n const data = await this.create(relayId, input);\n return { data };\n } catch (error) {\n return { error: error as Error };\n }\n }\n\n async getSafe(relayId: string, ruleId: string): Promise<Result<RelayRule>> {\n try {\n const data = await this.get(relayId, ruleId);\n return { data };\n } catch (error) {\n return { error: error as Error };\n }\n }\n\n async updateSafe(relayId: string, ruleId: string, input: UpdateRelayRuleInput): Promise<Result<RelayRule>> {\n try {\n const data = await this.update(relayId, ruleId, input);\n return { data };\n } catch (error) {\n return { error: error as Error };\n }\n }\n\n async deleteSafe(relayId: string, ruleId: string): Promise<Result<{ success: boolean }>> {\n try {\n const data = await this.delete(relayId, ruleId);\n return { data };\n } catch (error) {\n return { error: error as Error };\n }\n }\n\n async reorderSafe(relayId: string, input: ReorderRelayRulesInput): Promise<Result<RelayRule[]>> {\n try {\n const data = await this.reorder(relayId, input);\n return { data };\n } catch (error) {\n return { error: error as Error };\n }\n }\n}","import type {\n CreateRelayInput,\n Relay,\n RelayLintInput,\n RelayLintResult,\n RelaySimulationInput,\n RelaySimulationResult,\n Result,\n} from \"../types\";\nimport { HttpClient } from \"../http\";\nimport { RelayRulesResource } from \"./relay-rules\";\n\nexport class RelayResource {\n private http: HttpClient;\n rules: RelayRulesResource;\n\n constructor(http: HttpClient) {\n this.http = http;\n this.rules = new RelayRulesResource(http);\n }\n\n async create(input: CreateRelayInput): Promise<Relay> {\n const res = await this.http.post<{ relay: Relay }>(\"/relay\", input);\n return res.relay;\n }\n\n async list(): Promise<Relay[]> {\n const res = await this.http.get<{ relays: Relay[] }>(\"/relay\");\n return res.relays;\n }\n\n async lint(relayId: string, input: RelayLintInput = {}): Promise<RelayLintResult> {\n const res = await this.http.post<RelayLintResult>(\n `/relay/${relayId}/lint`,\n input,\n );\n return res;\n }\n\n async simulate(\n relayId: string,\n input: RelaySimulationInput,\n ): Promise<RelaySimulationResult> {\n const res = await this.http.post<RelaySimulationResult>(\n `/relay/${relayId}/simulate`,\n input,\n );\n return res;\n }\n\n async createSafe(input: CreateRelayInput): Promise<Result<Relay>> {\n try {\n const data = await this.create(input);\n return { data };\n } catch (error) {\n return { error: error as Error };\n }\n }\n\n async lintSafe(\n relayId: string,\n input: RelayLintInput = {},\n ): Promise<Result<RelayLintResult>> {\n try {\n const data = await this.lint(relayId, input);\n return { data };\n } catch (error) {\n return { error: error as Error };\n }\n }\n\n async simulateSafe(\n relayId: string,\n input: RelaySimulationInput,\n ): Promise<Result<RelaySimulationResult>> {\n try {\n const data = await this.simulate(relayId, input);\n return { data };\n } catch (error) {\n return { error: error as Error };\n }\n }\n}\n","/**\n * Formats a Date object as an ISO 8601 timestamp with Z suffix (UTC).\n * Example: \"2024-01-29T00:00:00.000Z\"\n */\nexport function formatUTCDate(date: Date): string {\n return date.toISOString();\n}\n\n/**\n * Validates that a string is a valid ISO 8601 timestamp with Z suffix.\n * Returns true if the string ends with \"Z\" and can be parsed as a valid date.\n */\nexport function isIsoZ(value: string): boolean {\n return value.endsWith(\"Z\") && !isNaN(Date.parse(value));\n}\n\n/**\n * Validates and normalizes a date parameter to an ISO 8601 string with Z suffix.\n * Accepts either a Date object or a Z-suffixed ISO string.\n * Throws an error if the input is invalid.\n */\nexport function normalizeDateParam(date: Date | string): string {\n if (date instanceof Date) {\n return formatUTCDate(date);\n }\n \n if (typeof date === \"string\") {\n if (!isIsoZ(date)) {\n throw new Error(\n `Invalid date format. Date must be a valid ISO 8601 timestamp with Z suffix (e.g., \"2024-01-29T00:00:00.000Z\"). Received: \"${date}\"`\n );\n }\n return date;\n }\n \n throw new Error(\n `Invalid date type. Expected Date object or ISO 8601 string with Z suffix, received: ${typeof date}`\n );\n}\n","import type {\n CreateScheduleInput,\n Schedule,\n AddScheduleMemberInput,\n ScheduleMember,\n ScheduleAssignment,\n GetAssignmentsParams,\n BeepsUser,\n Result,\n CreateScheduleOverrideInput,\n UpdateScheduleOverrideInput,\n ListScheduleOverridesParams,\n ScheduleOverride,\n} from \"../types\";\nimport { HttpClient } from \"../http\";\nimport { normalizeDateParam } from \"../utils/date\";\n\nexport class ScheduleResource {\n private http: HttpClient;\n\n constructor(http: HttpClient) {\n this.http = http;\n }\n\n async create(input: CreateScheduleInput): Promise<Schedule> {\n const res = await this.http.post<{ schedule: Schedule }>(\"/schedule\", input);\n return res.schedule;\n }\n\n async list(): Promise<Schedule[]> {\n const res = await this.http.get<{ schedules: Schedule[] }>(\"/schedule\");\n return res.schedules;\n }\n\n async addMember(scheduleId: string, input: AddScheduleMemberInput): Promise<ScheduleMember> {\n const res = await this.http.post<{ member: ScheduleMember }>(\n `/schedule/${scheduleId}/members`,\n input,\n );\n return res.member;\n }\n\n async listMembers(scheduleId: string): Promise<ScheduleMember[]> {\n const res = await this.http.get<{ members: ScheduleMember[] }>(\n `/schedule/${scheduleId}/members`,\n );\n return res.members;\n }\n\n async listMembersSafe(scheduleId: string): Promise<Result<ScheduleMember[]>> {\n try {\n const data = await this.listMembers(scheduleId);\n return { data };\n } catch (error) {\n return { error: error as Error };\n }\n }\n\n async removeMember(scheduleId: string, userId: string): Promise<ScheduleMember> {\n const res = await this.http.delete<{ member: ScheduleMember }>(\n `/schedule/${scheduleId}/members/${userId}`,\n );\n return res.member;\n }\n\n async getAssignments(\n scheduleId: string,\n params?: GetAssignmentsParams,\n ): Promise<ScheduleAssignment[]> {\n const qs = new URLSearchParams();\n \n if (params) {\n if (params.type === \"until\") {\n qs.set(\"type\", \"until\");\n const normalizedDate = normalizeDateParam(params.date);\n qs.set(\"date\", normalizedDate);\n } else if (params.type === \"days\") {\n qs.set(\"type\", \"days\");\n qs.set(\"count\", String(params.count));\n } else {\n if (params.type) {\n qs.set(\"type\", params.type);\n }\n if (params.count !== undefined) {\n qs.set(\"count\", String(params.count));\n }\n }\n }\n \n const path = qs.toString()\n ? `/schedule/${scheduleId}/assignments?${qs.toString()}`\n : `/schedule/${scheduleId}/assignments`;\n const res = await this.http.get<{ assignments: ScheduleAssignment[] }>(path);\n return res.assignments;\n }\n\n async getOnCall(scheduleId: string): Promise<BeepsUser> {\n const res = await this.http.get<{ onCall: BeepsUser }>(\n `/schedule/${scheduleId}/on-call`\n );\n return res.onCall;\n }\n\n async getOnCallSafe(scheduleId: string): Promise<Result<BeepsUser>> {\n try {\n const data = await this.getOnCall(scheduleId);\n return { data };\n } catch (error) {\n return { error: error as Error };\n }\n }\n\n async createOverride(\n scheduleId: string,\n input: CreateScheduleOverrideInput,\n ): Promise<ScheduleOverride> {\n const body = {\n userId: input.userId,\n startAt: normalizeDateParam(input.startAt),\n endAt: normalizeDateParam(input.endAt),\n reason: input.reason,\n };\n const res = await this.http.post<{ override: ScheduleOverride }>(\n `/schedule/${scheduleId}/overrides`,\n body,\n );\n return res.override;\n }\n\n async listOverrides(\n scheduleId: string,\n params?: ListScheduleOverridesParams,\n ): Promise<ScheduleOverride[]> {\n const qs = new URLSearchParams();\n \n if (params) {\n if (params.startAt) {\n qs.set(\"startAt\", normalizeDateParam(params.startAt));\n }\n if (params.endAt) {\n qs.set(\"endAt\", normalizeDateParam(params.endAt));\n }\n }\n \n const path = qs.toString()\n ? `/schedule/${scheduleId}/overrides?${qs.toString()}`\n : `/schedule/${scheduleId}/overrides`;\n const res = await this.http.get<{ overrides: ScheduleOverride[] }>(path);\n return res.overrides;\n }\n\n async cancelOverride(\n scheduleId: string,\n overrideId: string,\n ): Promise<ScheduleOverride> {\n const res = await this.http.delete<{ override: ScheduleOverride }>(\n `/schedule/${scheduleId}/overrides/${overrideId}`,\n );\n return res.override;\n }\n\n async updateOverride(\n scheduleId: string,\n overrideId: string,\n input: UpdateScheduleOverrideInput,\n ): Promise<ScheduleOverride> {\n const body: Record<string, string | undefined> = {};\n \n if (input.startAt !== undefined) {\n body.startAt = normalizeDateParam(input.startAt);\n }\n if (input.endAt !== undefined) {\n body.endAt = normalizeDateParam(input.endAt);\n }\n if (input.reason !== undefined) {\n body.reason = input.reason;\n }\n \n const res = await this.http.patch<{ override: ScheduleOverride }>(\n `/schedule/${scheduleId}/overrides/${overrideId}`,\n body,\n );\n return res.override;\n }\n}\n","import type {\n CreateContactMethodInput,\n ContactMethod,\n ListContactMethodsParams,\n DeleteContactMethodParams,\n Result,\n} from \"../types\";\nimport { HttpClient } from \"../http\";\n\nexport class ContactMethodResource {\n private http: HttpClient;\n\n constructor(http: HttpClient) {\n this.http = http;\n }\n\n async list(params: ListContactMethodsParams): Promise<ContactMethod[]> {\n const qs = new URLSearchParams();\n qs.set(\"userId\", params.userId);\n const res = await this.http.get<{ contactMethods: ContactMethod[] }>(\n `/contact-methods?${qs.toString()}`\n );\n return res.contactMethods;\n }\n\n async create(input: CreateContactMethodInput): Promise<ContactMethod> {\n const res = await this.http.post<{ contactMethod: ContactMethod }>(\n \"/contact-methods\",\n input\n );\n return res.contactMethod;\n }\n\n async delete(\n id: string,\n params: DeleteContactMethodParams\n ): Promise<{ success: boolean }> {\n const qs = new URLSearchParams();\n qs.set(\"userId\", params.userId);\n const res = await this.http.delete<{ success: boolean }>(\n `/contact-methods/${id}?${qs.toString()}`\n );\n return res;\n }\n\n async listSafe(\n params: ListContactMethodsParams\n ): Promise<Result<ContactMethod[]>> {\n try {\n const data = await this.list(params);\n return { data };\n } catch (error) {\n return { error: error as Error };\n }\n }\n\n async createSafe(\n input: CreateContactMethodInput\n ): Promise<Result<ContactMethod>> {\n try {\n const data = await this.create(input);\n return { data };\n } catch (error) {\n return { error: error as Error };\n }\n }\n\n async deleteSafe(\n id: string,\n params: DeleteContactMethodParams\n ): Promise<Result<{ success: boolean }>> {\n try {\n const data = await this.delete(id, params);\n return { data };\n } catch (error) {\n return { error: error as Error };\n }\n }\n}\n","import type {\n Alert,\n AcknowledgeAlertInput,\n Result,\n} from \"../types\";\nimport { HttpClient } from \"../http\";\n\nexport class AlertResource {\n private http: HttpClient;\n\n constructor(http: HttpClient) {\n this.http = http;\n }\n\n async list(): Promise<Alert[]> {\n const res = await this.http.get<{ alerts: Alert[] }>(\"/alerts\");\n return res.alerts;\n }\n\n async listActive(): Promise<Alert[]> {\n const res = await this.http.get<{ alerts: Alert[] }>(\"/alerts/active\");\n return res.alerts;\n }\n\n async listResolved(): Promise<Alert[]> {\n const res = await this.http.get<{ alerts: Alert[] }>(\"/alerts/resolved\");\n return res.alerts;\n }\n\n async get(alertId: string): Promise<Alert> {\n const res = await this.http.get<{ alert: Alert }>(`/alerts/${alertId}`);\n return res.alert;\n }\n\n async acknowledge(alertId: string, input?: AcknowledgeAlertInput): Promise<Alert> {\n const res = await this.http.post<{ alert: Alert }>(\n `/alerts/${alertId}/acknowledge`,\n input || {}\n );\n return res.alert;\n }\n\n async resolve(alertId: string): Promise<Alert> {\n const res = await this.http.post<{ alert: Alert }>(\n `/alerts/${alertId}/resolve`,\n {}\n );\n return res.alert;\n }\n\n async assign(alertId: string, userId: string): Promise<Alert> {\n const res = await this.http.post<{ alert: Alert }>(\n `/alerts/${alertId}/assign`,\n { userId }\n );\n return res.alert;\n }\n\n async listSafe(): Promise<Result<Alert[]>> {\n try {\n const data = await this.list();\n return { data };\n } catch (error) {\n return { error: error as Error };\n }\n }\n\n async listActiveSafe(): Promise<Result<Alert[]>> {\n try {\n const data = await this.listActive();\n return { data };\n } catch (error) {\n return { error: error as Error };\n }\n }\n\n async listResolvedSafe(): Promise<Result<Alert[]>> {\n try {\n const data = await this.listResolved();\n return { data };\n } catch (error) {\n return { error: error as Error };\n }\n }\n\n async getSafe(alertId: string): Promise<Result<Alert>> {\n try {\n const data = await this.get(alertId);\n return { data };\n } catch (error) {\n return { error: error as Error };\n }\n }\n\n async acknowledgeSafe(\n alertId: string,\n input?: AcknowledgeAlertInput\n ): Promise<Result<Alert>> {\n try {\n const data = await this.acknowledge(alertId, input);\n return { data };\n } catch (error) {\n return { error: error as Error };\n }\n }\n\n async resolveSafe(alertId: string): Promise<Result<Alert>> {\n try {\n const data = await this.resolve(alertId);\n return { data };\n } catch (error) {\n return { error: error as Error };\n }\n }\n\n async assignSafe(alertId: string, userId: string): Promise<Result<Alert>> {\n try {\n const data = await this.assign(alertId, userId);\n return { data };\n } catch (error) {\n return { error: error as Error };\n }\n }\n}\n","import type {\n CreateIntegrationInput,\n UpdateIntegrationInput,\n Integration,\n Result,\n} from \"../types\";\nimport { HttpClient } from \"../http\";\n\nexport class IntegrationResource {\n private http: HttpClient;\n\n constructor(http: HttpClient) {\n this.http = http;\n }\n\n async list(): Promise<Integration[]> {\n const res = await this.http.get<{ integrations: Integration[] }>(\"/integrations\");\n return res.integrations;\n }\n\n async create(input: CreateIntegrationInput): Promise<Integration> {\n const res = await this.http.post<{ integration: Integration }>(\"/integrations\", input);\n return res.integration;\n }\n\n async get(integrationId: string): Promise<Integration> {\n const res = await this.http.get<{ integration: Integration }>(`/integrations/${integrationId}`);\n return res.integration;\n }\n\n async update(integrationId: string, input: UpdateIntegrationInput): Promise<Integration> {\n const res = await this.http.put<{ integration: Integration }>(`/integrations/${integrationId}`, input);\n return res.integration;\n }\n\n async delete(integrationId: string): Promise<{ success: boolean }> {\n const res = await this.http.delete<{ success: boolean }>(`/integrations/${integrationId}`);\n return res;\n }\n\n async listSafe(): Promise<Result<Integration[]>> {\n try {\n const data = await this.list();\n return { data };\n } catch (error) {\n return { error: error as Error };\n }\n }\n\n async createSafe(input: CreateIntegrationInput): Promise<Result<Integration>> {\n try {\n const data = await this.create(input);\n return { data };\n } catch (error) {\n return { error: error as Error };\n }\n }\n\n async getSafe(integrationId: string): Promise<Result<Integration>> {\n try {\n const data = await this.get(integrationId);\n return { data };\n } catch (error) {\n return { error: error as Error };\n }\n }\n\n async updateSafe(integrationId: string, input: UpdateIntegrationInput): Promise<Result<Integration>> {\n try {\n const data = await this.update(integrationId, input);\n return { data };\n } catch (error) {\n return { error: error as Error };\n }\n }\n\n async deleteSafe(integrationId: string): Promise<Result<{ success: boolean }>> {\n try {\n const data = await this.delete(integrationId);\n return { data };\n } catch (error) {\n return { error: error as Error };\n }\n }\n}\n","import type { OrganizationMember, Result } from \"../types\";\nimport { HttpClient } from \"../http\";\n\nexport class MemberResource {\n private http: HttpClient;\n\n constructor(http: HttpClient) {\n this.http = http;\n }\n\n async list(): Promise<OrganizationMember[]> {\n const res = await this.http.get<{ members: OrganizationMember[] }>(\"/members\");\n return res.members;\n }\n\n async listSafe(): Promise<Result<OrganizationMember[]>> {\n try {\n const data = await this.list();\n return { data };\n } catch (error) {\n return { error: error as Error };\n }\n }\n}\n","import type { Webhook, Result } from \"../types\";\nimport { HttpClient } from \"../http\";\n\nexport class WebhookResource {\n private http: HttpClient;\n\n constructor(http: HttpClient) {\n this.http = http;\n }\n\n async listByRelay(relayId: string): Promise<Webhook[]> {\n const res = await this.http.get<{ webhooks: Webhook[] }>(\n `/relay/${relayId}/webhooks`,\n );\n return res.webhooks;\n }\n\n async listByRelaySafe(relayId: string): Promise<Result<Webhook[]>> {\n try {\n const data = await this.listByRelay(relayId);\n return { data };\n } catch (error) {\n return { error: error as Error };\n }\n }\n\n async create(\n relayId: string,\n description?: string,\n ): Promise<Webhook> {\n const res = await this.http.post<{ webhook: Webhook }>(\n `/relay/${relayId}/webhooks`,\n { description },\n );\n return res.webhook;\n }\n\n async createSafe(\n relayId: string,\n description?: string,\n ): Promise<Result<Webhook>> {\n try {\n const data = await this.create(relayId, description);\n return { data };\n } catch (error) {\n return { error: error as Error };\n }\n }\n\n async delete(relayId: string, webhookId: string): Promise<void> {\n await this.http.delete(`/relay/${relayId}/webhooks/${webhookId}`);\n }\n\n async deleteSafe(relayId: string, webhookId: string): Promise<Result<void>> {\n try {\n await this.delete(relayId, webhookId);\n return { data: undefined };\n } catch (error) {\n return { error: error as Error };\n }\n }\n}\n","import type { BeepsClientConfig } from \"./types\";\nimport { HttpClient } from \"./http\";\nimport { RelayResource } from \"./resources/relay\";\nimport { ScheduleResource } from \"./resources/schedule\";\nimport { ContactMethodResource } from \"./resources/contact-method\";\nimport { AlertResource } from \"./resources/alert\";\nimport { IntegrationResource } from \"./resources/integration\";\nimport { MemberResource } from \"./resources/member\";\nimport { WebhookResource } from \"./resources/webhook\";\n\nexport class BeepsClient {\n relay: RelayResource;\n schedule: ScheduleResource;\n contactMethod: ContactMethodResource;\n alert: AlertResource;\n integration: IntegrationResource;\n member: MemberResource;\n webhook: WebhookResource;\n\n constructor(config: BeepsClientConfig) {\n if (!config.apiKey) {\n throw new Error(\"apiKey is required\");\n }\n const http = new HttpClient(config);\n this.relay = new RelayResource(http);\n this.schedule = new ScheduleResource(http);\n this.contactMethod = new ContactMethodResource(http);\n this.alert = new AlertResource(http);\n this.integration = new IntegrationResource(http);\n this.member = new MemberResource(http);\n this.webhook = new WebhookResource(http);\n }\n}\n"],"mappings":"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","names":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@beepsdev/sdk",
3
- "version": "0.0.3",
3
+ "version": "0.0.4",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "exports": {