@agent-native/scheduling 0.1.75 → 0.2.0-nightly-20260926081002

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.
@@ -2,7 +2,7 @@ export * from "./types.js";
2
2
  export * from "./registry.js";
3
3
  export { createGoogleCalendarProvider } from "./google-calendar.js";
4
4
  export { createOffice365Provider } from "./office365.js";
5
- export { createZoomProvider } from "./zoom.js";
5
+ export { createZoomProvider, ZoomProviderError } from "./zoom.js";
6
6
  export { createTeamsProvider } from "./teams.js";
7
7
  export type { TeamsProviderConfig } from "./teams.js";
8
8
  export { createDailyVideoProvider } from "./builtin-video.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/server/providers/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,OAAO,EAAE,4BAA4B,EAAE,MAAM,sBAAsB,CAAC;AACpE,OAAO,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AACjD,YAAY,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AACtD,OAAO,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/server/providers/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,OAAO,EAAE,4BAA4B,EAAE,MAAM,sBAAsB,CAAC;AACpE,OAAO,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAClE,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AACjD,YAAY,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AACtD,OAAO,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC"}
@@ -2,7 +2,7 @@ export * from "./types.js";
2
2
  export * from "./registry.js";
3
3
  export { createGoogleCalendarProvider } from "./google-calendar.js";
4
4
  export { createOffice365Provider } from "./office365.js";
5
- export { createZoomProvider } from "./zoom.js";
5
+ export { createZoomProvider, ZoomProviderError } from "./zoom.js";
6
6
  export { createTeamsProvider } from "./teams.js";
7
7
  export { createDailyVideoProvider } from "./builtin-video.js";
8
8
  export { googleMeetProvider } from "./google-meet.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/server/providers/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,OAAO,EAAE,4BAA4B,EAAE,MAAM,sBAAsB,CAAC;AACpE,OAAO,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAC/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEjD,OAAO,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/server/providers/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,OAAO,EAAE,4BAA4B,EAAE,MAAM,sBAAsB,CAAC;AACpE,OAAO,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAClE,OAAO,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAEjD,OAAO,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC"}
@@ -12,6 +12,10 @@
12
12
  * - User info: GET https://api.zoom.us/v2/users/me (returns account_id + email)
13
13
  */
14
14
  import type { VideoProvider } from "./types.js";
15
+ export declare class ZoomProviderError extends Error {
16
+ readonly statusCode: number;
17
+ constructor(statusCode: number, responseBody: string);
18
+ }
15
19
  export interface ZoomProviderConfig {
16
20
  clientId: string;
17
21
  clientSecret: string;
@@ -1 +1 @@
1
- {"version":3,"file":"zoom.d.ts","sourceRoot":"","sources":["../../../src/server/providers/zoom.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAC1D;;;;OAIG;IACH,YAAY,CAAC,EAAE,CACb,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE;QACN,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,SAAS,CAAC,EAAE,IAAI,CAAC;QACjB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACvC,KACE,OAAO,CAAC,IAAI,CAAC,CAAC;IACnB,0EAA0E;IAC1E,WAAW,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACvD;AAKD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,kBAAkB,GAAG,aAAa,CAoI5E"}
1
+ {"version":3,"file":"zoom.d.ts","sourceRoot":"","sources":["../../../src/server/providers/zoom.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAEhD,qBAAa,iBAAkB,SAAQ,KAAK;IAExC,QAAQ,CAAC,UAAU,EAAE,MAAM;IAD7B,YACW,UAAU,EAAE,MAAM,EAC3B,YAAY,EAAE,MAAM,EAIrB;CACF;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAC;IAC1D;;;;OAIG;IACH,YAAY,CAAC,EAAE,CACb,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE;QACN,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,SAAS,CAAC,EAAE,IAAI,CAAC;QACjB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACvC,KACE,OAAO,CAAC,IAAI,CAAC,CAAC;IACnB,0EAA0E;IAC1E,WAAW,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACvD;AAKD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,kBAAkB,GAAG,aAAa,CAsI5E"}
@@ -1,3 +1,11 @@
1
+ export class ZoomProviderError extends Error {
2
+ statusCode;
3
+ constructor(statusCode, responseBody) {
4
+ super(`Zoom ${statusCode}: ${responseBody}`);
5
+ this.statusCode = statusCode;
6
+ this.name = "ZoomProviderError";
7
+ }
8
+ }
1
9
  // Minimum scope needed to create + read meetings on the user's behalf.
2
10
  const SCOPES = ["meeting:write", "meeting:read", "user:read"];
3
11
  export function createZoomProvider(config) {
@@ -88,8 +96,9 @@ export function createZoomProvider(config) {
88
96
  if (res.status === 401 || res.status === 403) {
89
97
  await config.markInvalid?.(credentialId);
90
98
  }
91
- if (!res.ok)
92
- throw new Error(`Zoom ${res.status}: ${await res.text()}`);
99
+ if (!res.ok) {
100
+ throw new ZoomProviderError(res.status, res.statusText);
101
+ }
93
102
  const body = await res.json();
94
103
  return {
95
104
  meetingUrl: body.join_url,
@@ -1 +1 @@
1
- {"version":3,"file":"zoom.js","sourceRoot":"","sources":["../../../src/server/providers/zoom.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"zoom.js","sourceRoot":"","sources":["../../../src/server/providers/zoom.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@agent-native/scheduling",
3
- "version": "0.1.75",
3
+ "version": "0.2.0-nightly-20260926081002",
4
4
  "description": "Scheduling primitives for agent-native apps — event types, availability, bookings, team scheduling, workflows, and routing forms.",
5
5
  "homepage": "https://github.com/BuilderIO/agent-native#readme",
6
6
  "bugs": {
@@ -56,7 +56,7 @@
56
56
  "nanoid": "^5.1.9",
57
57
  "rrule": "^2.8.1",
58
58
  "zod": "^4.3.6",
59
- "@agent-native/toolkit": "^0.21.3"
59
+ "@agent-native/toolkit": "^0.22.0-nightly-20260926081002"
60
60
  },
61
61
  "devDependencies": {
62
62
  "@tabler/icons-react": "3.44.0",
@@ -66,10 +66,10 @@
66
66
  "react": "^19.2.5",
67
67
  "typescript-7": "npm:typescript@^7.0.2",
68
68
  "vitest": "^4.1.5",
69
- "@agent-native/core": "0.191.0"
69
+ "@agent-native/core": "0.192.0-nightly-20260926081002"
70
70
  },
71
71
  "peerDependencies": {
72
- "@agent-native/core": ">=0.8.0",
72
+ "@agent-native/core": "0.192.0-nightly-20260926081002",
73
73
  "@tabler/icons-react": "^3.41.1",
74
74
  "drizzle-orm": ">=0.45",
75
75
  "react": ">=18",
@@ -2,7 +2,7 @@ export * from "./types.js";
2
2
  export * from "./registry.js";
3
3
  export { createGoogleCalendarProvider } from "./google-calendar.js";
4
4
  export { createOffice365Provider } from "./office365.js";
5
- export { createZoomProvider } from "./zoom.js";
5
+ export { createZoomProvider, ZoomProviderError } from "./zoom.js";
6
6
  export { createTeamsProvider } from "./teams.js";
7
7
  export type { TeamsProviderConfig } from "./teams.js";
8
8
  export { createDailyVideoProvider } from "./builtin-video.js";
@@ -0,0 +1,49 @@
1
+ import { afterEach, describe, expect, it, vi } from "vitest";
2
+
3
+ import { createZoomProvider, ZoomProviderError } from "./zoom.js";
4
+
5
+ afterEach(() => {
6
+ vi.unstubAllGlobals();
7
+ });
8
+
9
+ describe("Zoom provider request errors", () => {
10
+ it.each([400, 401, 403, 429, 500])(
11
+ "preserves the rejected HTTP status %s",
12
+ async (statusCode) => {
13
+ vi.stubGlobal(
14
+ "fetch",
15
+ vi
16
+ .fn()
17
+ .mockResolvedValue(
18
+ new Response("request rejected", { status: statusCode }),
19
+ ),
20
+ );
21
+ const provider = createZoomProvider({
22
+ clientId: "client-id",
23
+ clientSecret: "client-secret",
24
+ getAccessToken: async () => "access-token",
25
+ });
26
+
27
+ await expect(
28
+ provider.createMeeting({
29
+ credentialId: "zoom-account",
30
+ booking: {
31
+ uid: "booking-1",
32
+ title: "Booking",
33
+ description: "",
34
+ startTime: "2026-09-25T23:30:00.000Z",
35
+ endTime: "2026-09-26T00:00:00.000Z",
36
+ timezone: "America/Los_Angeles",
37
+ hostEmail: "host@example.com",
38
+ attendees: [],
39
+ iCalUid: "ical-1",
40
+ iCalSequence: 0,
41
+ },
42
+ }),
43
+ ).rejects.toMatchObject<Partial<ZoomProviderError>>({
44
+ name: "ZoomProviderError",
45
+ statusCode,
46
+ });
47
+ },
48
+ );
49
+ });
@@ -13,6 +13,16 @@
13
13
  */
14
14
  import type { VideoProvider } from "./types.js";
15
15
 
16
+ export class ZoomProviderError extends Error {
17
+ constructor(
18
+ readonly statusCode: number,
19
+ responseBody: string,
20
+ ) {
21
+ super(`Zoom ${statusCode}: ${responseBody}`);
22
+ this.name = "ZoomProviderError";
23
+ }
24
+ }
25
+
16
26
  export interface ZoomProviderConfig {
17
27
  clientId: string;
18
28
  clientSecret: string;
@@ -149,7 +159,9 @@ export function createZoomProvider(config: ZoomProviderConfig): VideoProvider {
149
159
  if (res.status === 401 || res.status === 403) {
150
160
  await config.markInvalid?.(credentialId);
151
161
  }
152
- if (!res.ok) throw new Error(`Zoom ${res.status}: ${await res.text()}`);
162
+ if (!res.ok) {
163
+ throw new ZoomProviderError(res.status, res.statusText);
164
+ }
153
165
  const body = await res.json();
154
166
  return {
155
167
  meetingUrl: body.join_url,