@corsair-dev/cal 0.1.0 → 0.1.1
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/api.test.d.ts +2 -0
- package/dist/api.test.d.ts.map +1 -0
- package/dist/client.d.ts.map +1 -1
- package/dist/endpoints/bookings.d.ts +1 -1
- package/dist/endpoints/bookings.d.ts.map +1 -1
- package/dist/endpoints/index.d.ts +2 -2
- package/dist/endpoints/types.d.ts +8 -8
- package/dist/index.d.ts +20 -21
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -1
- package/dist/webhooks/bookings.d.ts +1 -1
- package/dist/webhooks/bookings.d.ts.map +1 -1
- package/dist/webhooks/index.d.ts +26 -26
- package/dist/webhooks/ping.d.ts +1 -1
- package/dist/webhooks/ping.d.ts.map +1 -1
- package/dist/webhooks/types.d.ts +27 -27
- package/dist/webhooks/types.d.ts.map +1 -1
- package/package.json +9 -3
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api.test.d.ts","sourceRoot":"","sources":["../api.test.ts"],"names":[],"mappings":"AAAA,OAAO,eAAe,CAAC"}
|
package/dist/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../client.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../client.ts"],"names":[],"mappings":"AAGA,qBAAa,WAAY,SAAQ,KAAK;aAGpB,IAAI,CAAC,EAAE,MAAM;aAEb,IAAI,CAAC,EAAE,OAAO;gBAH9B,OAAO,EAAE,MAAM,EACC,IAAI,CAAC,EAAE,MAAM,YAAA,EAEb,IAAI,CAAC,EAAE,OAAO,YAAA;CAK/B;AAID,wBAAsB,cAAc,CAAC,CAAC,EACrC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,OAAO,GAAE;IACR,MAAM,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,GAAG,OAAO,CAAC;IACrD,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,CAAC,CAAC;CACzD,GACJ,OAAO,CAAC,CAAC,CAAC,CA2CZ"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bookings.d.ts","sourceRoot":"","sources":["../../endpoints/bookings.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"bookings.d.ts","sourceRoot":"","sources":["../../endpoints/bookings.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAG7C,eAAO,MAAM,IAAI,EAAE,YAAY,CAAC,cAAc,CA+B7C,CAAC;AAEF,eAAO,MAAM,GAAG,EAAE,YAAY,CAAC,aAAa,CAqB3C,CAAC;AAEF,eAAO,MAAM,MAAM,EAAE,YAAY,CAAC,gBAAgB,CA2BjD,CAAC;AAEF,eAAO,MAAM,MAAM,EAAE,YAAY,CAAC,gBAAgB,CA6BjD,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,YAAY,CAAC,oBAAoB,CAgCzD,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE,YAAY,CAAC,iBAAiB,CA0BnD,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE,YAAY,CAAC,iBAAiB,CA6BnD,CAAC"}
|
|
@@ -441,8 +441,8 @@ export declare const Bookings: {
|
|
|
441
441
|
}, import("zod").ZodTypeAny, "passthrough">>>;
|
|
442
442
|
}, import("zod").ZodTypeAny, "passthrough">>;
|
|
443
443
|
create: (ctx: import("..").CalContext, args: {
|
|
444
|
-
start: string;
|
|
445
444
|
eventTypeId: number;
|
|
445
|
+
start: string;
|
|
446
446
|
attendee: {
|
|
447
447
|
name: string;
|
|
448
448
|
email: string;
|
|
@@ -881,8 +881,8 @@ export declare const Bookings: {
|
|
|
881
881
|
}, import("zod").ZodTypeAny, "passthrough">>>;
|
|
882
882
|
}, import("zod").ZodTypeAny, "passthrough">>;
|
|
883
883
|
reschedule: (ctx: import("..").CalContext, args: {
|
|
884
|
-
start: string;
|
|
885
884
|
uid: string;
|
|
885
|
+
start: string;
|
|
886
886
|
rescheduledBy?: string | undefined;
|
|
887
887
|
}) => Promise<import("zod").objectOutputType<{
|
|
888
888
|
status: import("zod").ZodString;
|
|
@@ -73,8 +73,8 @@ declare const BookingsCreateInputSchema: z.ZodObject<{
|
|
|
73
73
|
bookingFieldsResponses: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
74
74
|
metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
75
75
|
}, "strip", z.ZodTypeAny, {
|
|
76
|
-
start: string;
|
|
77
76
|
eventTypeId: number;
|
|
77
|
+
start: string;
|
|
78
78
|
attendee: {
|
|
79
79
|
name: string;
|
|
80
80
|
email: string;
|
|
@@ -85,8 +85,8 @@ declare const BookingsCreateInputSchema: z.ZodObject<{
|
|
|
85
85
|
bookingFieldsResponses?: Record<string, unknown> | undefined;
|
|
86
86
|
metadata?: Record<string, unknown> | undefined;
|
|
87
87
|
}, {
|
|
88
|
-
start: string;
|
|
89
88
|
eventTypeId: number;
|
|
89
|
+
start: string;
|
|
90
90
|
attendee: {
|
|
91
91
|
name: string;
|
|
92
92
|
email: string;
|
|
@@ -115,12 +115,12 @@ declare const BookingsRescheduleInputSchema: z.ZodObject<{
|
|
|
115
115
|
start: z.ZodString;
|
|
116
116
|
rescheduledBy: z.ZodOptional<z.ZodString>;
|
|
117
117
|
}, "strip", z.ZodTypeAny, {
|
|
118
|
-
start: string;
|
|
119
118
|
uid: string;
|
|
119
|
+
start: string;
|
|
120
120
|
rescheduledBy?: string | undefined;
|
|
121
121
|
}, {
|
|
122
|
-
start: string;
|
|
123
122
|
uid: string;
|
|
123
|
+
start: string;
|
|
124
124
|
rescheduledBy?: string | undefined;
|
|
125
125
|
}>;
|
|
126
126
|
declare const BookingsConfirmInputSchema: z.ZodObject<{
|
|
@@ -222,8 +222,8 @@ export declare const CalEndpointInputSchemas: {
|
|
|
222
222
|
bookingFieldsResponses: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
223
223
|
metadata: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
224
224
|
}, "strip", z.ZodTypeAny, {
|
|
225
|
-
start: string;
|
|
226
225
|
eventTypeId: number;
|
|
226
|
+
start: string;
|
|
227
227
|
attendee: {
|
|
228
228
|
name: string;
|
|
229
229
|
email: string;
|
|
@@ -234,8 +234,8 @@ export declare const CalEndpointInputSchemas: {
|
|
|
234
234
|
bookingFieldsResponses?: Record<string, unknown> | undefined;
|
|
235
235
|
metadata?: Record<string, unknown> | undefined;
|
|
236
236
|
}, {
|
|
237
|
-
start: string;
|
|
238
237
|
eventTypeId: number;
|
|
238
|
+
start: string;
|
|
239
239
|
attendee: {
|
|
240
240
|
name: string;
|
|
241
241
|
email: string;
|
|
@@ -264,12 +264,12 @@ export declare const CalEndpointInputSchemas: {
|
|
|
264
264
|
start: z.ZodString;
|
|
265
265
|
rescheduledBy: z.ZodOptional<z.ZodString>;
|
|
266
266
|
}, "strip", z.ZodTypeAny, {
|
|
267
|
-
start: string;
|
|
268
267
|
uid: string;
|
|
268
|
+
start: string;
|
|
269
269
|
rescheduledBy?: string | undefined;
|
|
270
270
|
}, {
|
|
271
|
-
start: string;
|
|
272
271
|
uid: string;
|
|
272
|
+
start: string;
|
|
273
273
|
rescheduledBy?: string | undefined;
|
|
274
274
|
}>;
|
|
275
275
|
readonly bookingsConfirm: z.ZodObject<{
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import type { BindEndpoints, BindWebhooks, CorsairEndpoint, CorsairErrorHandler, CorsairPlugin, CorsairPluginContext, CorsairWebhook, KeyBuilderContext, PluginPermissionsConfig } from 'corsair/core';
|
|
2
|
-
import type { AuthTypes, PickAuth } from 'corsair/core';
|
|
1
|
+
import type { AuthTypes, BindEndpoints, BindWebhooks, CorsairEndpoint, CorsairErrorHandler, CorsairPlugin, CorsairPluginContext, CorsairWebhook, KeyBuilderContext, PickAuth, PluginPermissionsConfig } from 'corsair/core';
|
|
3
2
|
import type { CalEndpointInputs, CalEndpointOutputs } from './endpoints/types';
|
|
4
3
|
import { CalSchema } from './schema';
|
|
5
4
|
import type { BookingCancelledEvent, BookingCreatedEvent, BookingRescheduledEvent, CalWebhookOutputs, MeetingEndedEvent, PingEvent } from './webhooks/types';
|
|
@@ -56,8 +55,8 @@ declare const calEndpointsNested: {
|
|
|
56
55
|
uid: string;
|
|
57
56
|
}>;
|
|
58
57
|
readonly create: CalEndpoint<"bookingsCreate", {
|
|
59
|
-
start: string;
|
|
60
58
|
eventTypeId: number;
|
|
59
|
+
start: string;
|
|
61
60
|
attendee: {
|
|
62
61
|
name: string;
|
|
63
62
|
email: string;
|
|
@@ -74,8 +73,8 @@ declare const calEndpointsNested: {
|
|
|
74
73
|
allRemainingBookings?: boolean | undefined;
|
|
75
74
|
}>;
|
|
76
75
|
readonly reschedule: CalEndpoint<"bookingsReschedule", {
|
|
77
|
-
start: string;
|
|
78
76
|
uid: string;
|
|
77
|
+
start: string;
|
|
79
78
|
rescheduledBy?: string | undefined;
|
|
80
79
|
}>;
|
|
81
80
|
readonly confirm: CalEndpoint<"bookingsConfirm", {
|
|
@@ -90,17 +89,18 @@ declare const calEndpointsNested: {
|
|
|
90
89
|
declare const calWebhooksNested: {
|
|
91
90
|
readonly bookings: {
|
|
92
91
|
readonly bookingCreated: CalWebhook<"bookingCreated", {
|
|
92
|
+
createdAt: string;
|
|
93
93
|
payload: {
|
|
94
94
|
uid: string;
|
|
95
95
|
length?: number | undefined;
|
|
96
96
|
location?: string | null | undefined;
|
|
97
97
|
status?: string | undefined;
|
|
98
|
-
description?: string | null | undefined;
|
|
99
98
|
eventTypeId?: number | undefined;
|
|
100
99
|
meetingUrl?: string | null | undefined;
|
|
101
100
|
metadata?: Record<string, unknown> | null | undefined;
|
|
102
101
|
cancellationReason?: string | null | undefined;
|
|
103
102
|
title?: string | undefined;
|
|
103
|
+
description?: string | null | undefined;
|
|
104
104
|
reschedulingReason?: string | null | undefined;
|
|
105
105
|
rescheduledFromUid?: string | null | undefined;
|
|
106
106
|
attendees?: import("zod").objectOutputType<{
|
|
@@ -117,27 +117,27 @@ declare const calWebhooksNested: {
|
|
|
117
117
|
username: import("zod").ZodOptional<import("zod").ZodString>;
|
|
118
118
|
timeZone: import("zod").ZodOptional<import("zod").ZodString>;
|
|
119
119
|
}, import("zod").ZodTypeAny, "passthrough">[] | undefined;
|
|
120
|
-
bookingId?: number | undefined;
|
|
121
120
|
startTime?: string | undefined;
|
|
122
121
|
endTime?: string | undefined;
|
|
122
|
+
bookingId?: number | undefined;
|
|
123
123
|
} & {
|
|
124
124
|
[k: string]: unknown;
|
|
125
125
|
};
|
|
126
|
-
createdAt: string;
|
|
127
126
|
triggerEvent: "BOOKING_CREATED";
|
|
128
127
|
}>;
|
|
129
128
|
readonly bookingCancelled: CalWebhook<"bookingCancelled", {
|
|
129
|
+
createdAt: string;
|
|
130
130
|
payload: {
|
|
131
131
|
uid: string;
|
|
132
132
|
length?: number | undefined;
|
|
133
133
|
location?: string | null | undefined;
|
|
134
134
|
status?: string | undefined;
|
|
135
|
-
description?: string | null | undefined;
|
|
136
135
|
eventTypeId?: number | undefined;
|
|
137
136
|
meetingUrl?: string | null | undefined;
|
|
138
137
|
metadata?: Record<string, unknown> | null | undefined;
|
|
139
138
|
cancellationReason?: string | null | undefined;
|
|
140
139
|
title?: string | undefined;
|
|
140
|
+
description?: string | null | undefined;
|
|
141
141
|
reschedulingReason?: string | null | undefined;
|
|
142
142
|
rescheduledFromUid?: string | null | undefined;
|
|
143
143
|
attendees?: import("zod").objectOutputType<{
|
|
@@ -154,27 +154,27 @@ declare const calWebhooksNested: {
|
|
|
154
154
|
username: import("zod").ZodOptional<import("zod").ZodString>;
|
|
155
155
|
timeZone: import("zod").ZodOptional<import("zod").ZodString>;
|
|
156
156
|
}, import("zod").ZodTypeAny, "passthrough">[] | undefined;
|
|
157
|
-
bookingId?: number | undefined;
|
|
158
157
|
startTime?: string | undefined;
|
|
159
158
|
endTime?: string | undefined;
|
|
159
|
+
bookingId?: number | undefined;
|
|
160
160
|
} & {
|
|
161
161
|
[k: string]: unknown;
|
|
162
162
|
};
|
|
163
|
-
createdAt: string;
|
|
164
163
|
triggerEvent: "BOOKING_CANCELLED";
|
|
165
164
|
}>;
|
|
166
165
|
readonly bookingRescheduled: CalWebhook<"bookingRescheduled", {
|
|
166
|
+
createdAt: string;
|
|
167
167
|
payload: {
|
|
168
168
|
uid: string;
|
|
169
169
|
length?: number | undefined;
|
|
170
170
|
location?: string | null | undefined;
|
|
171
171
|
status?: string | undefined;
|
|
172
|
-
description?: string | null | undefined;
|
|
173
172
|
eventTypeId?: number | undefined;
|
|
174
173
|
meetingUrl?: string | null | undefined;
|
|
175
174
|
metadata?: Record<string, unknown> | null | undefined;
|
|
176
175
|
cancellationReason?: string | null | undefined;
|
|
177
176
|
title?: string | undefined;
|
|
177
|
+
description?: string | null | undefined;
|
|
178
178
|
reschedulingReason?: string | null | undefined;
|
|
179
179
|
rescheduledFromUid?: string | null | undefined;
|
|
180
180
|
attendees?: import("zod").objectOutputType<{
|
|
@@ -191,27 +191,27 @@ declare const calWebhooksNested: {
|
|
|
191
191
|
username: import("zod").ZodOptional<import("zod").ZodString>;
|
|
192
192
|
timeZone: import("zod").ZodOptional<import("zod").ZodString>;
|
|
193
193
|
}, import("zod").ZodTypeAny, "passthrough">[] | undefined;
|
|
194
|
-
bookingId?: number | undefined;
|
|
195
194
|
startTime?: string | undefined;
|
|
196
195
|
endTime?: string | undefined;
|
|
196
|
+
bookingId?: number | undefined;
|
|
197
197
|
} & {
|
|
198
198
|
[k: string]: unknown;
|
|
199
199
|
};
|
|
200
|
-
createdAt: string;
|
|
201
200
|
triggerEvent: "BOOKING_RESCHEDULED";
|
|
202
201
|
}>;
|
|
203
202
|
readonly meetingEnded: CalWebhook<"meetingEnded", {
|
|
203
|
+
createdAt: string;
|
|
204
204
|
payload: {
|
|
205
205
|
uid: string;
|
|
206
206
|
length?: number | undefined;
|
|
207
207
|
location?: string | null | undefined;
|
|
208
208
|
status?: string | undefined;
|
|
209
|
-
description?: string | null | undefined;
|
|
210
209
|
eventTypeId?: number | undefined;
|
|
211
210
|
meetingUrl?: string | null | undefined;
|
|
212
211
|
metadata?: Record<string, unknown> | null | undefined;
|
|
213
212
|
cancellationReason?: string | null | undefined;
|
|
214
213
|
title?: string | undefined;
|
|
214
|
+
description?: string | null | undefined;
|
|
215
215
|
reschedulingReason?: string | null | undefined;
|
|
216
216
|
rescheduledFromUid?: string | null | undefined;
|
|
217
217
|
attendees?: import("zod").objectOutputType<{
|
|
@@ -228,21 +228,20 @@ declare const calWebhooksNested: {
|
|
|
228
228
|
username: import("zod").ZodOptional<import("zod").ZodString>;
|
|
229
229
|
timeZone: import("zod").ZodOptional<import("zod").ZodString>;
|
|
230
230
|
}, import("zod").ZodTypeAny, "passthrough">[] | undefined;
|
|
231
|
-
bookingId?: number | undefined;
|
|
232
231
|
startTime?: string | undefined;
|
|
233
232
|
endTime?: string | undefined;
|
|
233
|
+
bookingId?: number | undefined;
|
|
234
234
|
} & {
|
|
235
235
|
[k: string]: unknown;
|
|
236
236
|
};
|
|
237
|
-
createdAt: string;
|
|
238
237
|
triggerEvent: "MEETING_ENDED";
|
|
239
238
|
}>;
|
|
240
239
|
};
|
|
241
240
|
readonly system: {
|
|
242
241
|
readonly ping: CalWebhook<"ping", {
|
|
243
242
|
triggerEvent: "PING";
|
|
244
|
-
payload?: Record<string, unknown> | undefined;
|
|
245
243
|
createdAt?: string | undefined;
|
|
244
|
+
payload?: Record<string, unknown> | undefined;
|
|
246
245
|
}>;
|
|
247
246
|
};
|
|
248
247
|
};
|
|
@@ -1594,8 +1593,8 @@ export declare const calEndpointSchemas: {
|
|
|
1594
1593
|
bookingFieldsResponses: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
|
|
1595
1594
|
metadata: import("zod").ZodOptional<import("zod").ZodRecord<import("zod").ZodString, import("zod").ZodUnknown>>;
|
|
1596
1595
|
}, "strip", import("zod").ZodTypeAny, {
|
|
1597
|
-
start: string;
|
|
1598
1596
|
eventTypeId: number;
|
|
1597
|
+
start: string;
|
|
1599
1598
|
attendee: {
|
|
1600
1599
|
name: string;
|
|
1601
1600
|
email: string;
|
|
@@ -1606,8 +1605,8 @@ export declare const calEndpointSchemas: {
|
|
|
1606
1605
|
bookingFieldsResponses?: Record<string, unknown> | undefined;
|
|
1607
1606
|
metadata?: Record<string, unknown> | undefined;
|
|
1608
1607
|
}, {
|
|
1609
|
-
start: string;
|
|
1610
1608
|
eventTypeId: number;
|
|
1609
|
+
start: string;
|
|
1611
1610
|
attendee: {
|
|
1612
1611
|
name: string;
|
|
1613
1612
|
email: string;
|
|
@@ -2908,12 +2907,12 @@ export declare const calEndpointSchemas: {
|
|
|
2908
2907
|
start: import("zod").ZodString;
|
|
2909
2908
|
rescheduledBy: import("zod").ZodOptional<import("zod").ZodString>;
|
|
2910
2909
|
}, "strip", import("zod").ZodTypeAny, {
|
|
2911
|
-
start: string;
|
|
2912
2910
|
uid: string;
|
|
2911
|
+
start: string;
|
|
2913
2912
|
rescheduledBy?: string | undefined;
|
|
2914
2913
|
}, {
|
|
2915
|
-
start: string;
|
|
2916
2914
|
uid: string;
|
|
2915
|
+
start: string;
|
|
2917
2916
|
rescheduledBy?: string | undefined;
|
|
2918
2917
|
}>;
|
|
2919
2918
|
readonly output: import("zod").ZodObject<{
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,aAAa,EACb,YAAY,EACZ,eAAe,EACf,mBAAmB,EACnB,aAAa,EACb,oBAAoB,EACpB,cAAc,EACd,iBAAiB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6BrB,CAAC;AAEX,QAAA,MAAM,eAAe,EAAE,SAA8B,CAAC;AA6DtD,eAAO,MAAM,aAAa;;;;CAIW,CAAC;AAEtC,MAAM,MAAM,aAAa,CAAC,CAAC,SAAS,gBAAgB,IAAI,aAAa,CACpE,KAAK,EACL,OAAO,SAAS,EAChB,OAAO,kBAAkB,EACzB,OAAO,iBAAiB,EACxB,CAAC,EACD,OAAO,eAAe,CACtB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG,aAAa,CAAC,gBAAgB,CAAC,CAAC;AAEhE,MAAM,MAAM,iBAAiB,CAAC,CAAC,SAAS,gBAAgB,IAAI,aAAa,CAAC,CAAC,CAAC,CAAC;AAE7E,wBAAgB,GAAG,CAAC,KAAK,CAAC,CAAC,SAAS,gBAAgB,EACnD,eAAe,GAAE,gBAAgB,GAAG,CAA8B,GAChE,iBAAiB,CAAC,CAAC,CAAC,CA8DtB;AAED,YAAY,EACX,mBAAmB,EACnB,sBAAsB,EACtB,oBAAoB,EACpB,uBAAuB,EACvB,mBAAmB,EACnB,sBAAsB,EACtB,oBAAoB,EACpB,uBAAuB,EACvB,gBAAgB,EAChB,mBAAmB,EACnB,iBAAiB,EACjB,oBAAoB,EACpB,uBAAuB,EACvB,0BAA0B,EAC1B,iBAAiB,EACjB,kBAAkB,GAClB,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EACX,qBAAqB,EACrB,mBAAmB,EACnB,uBAAuB,EACvB,iBAAiB,EACjB,iBAAiB,EACjB,iBAAiB,EACjB,SAAS,GACT,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{logEventFromContext as h}from"corsair/core";import{ApiError as Z}from"corsair/http";import{request as V}from"corsair/http";var f=class extends Error{constructor(n,a,i){super(n);this.code=a;this.body=i;this.name="CalAPIError"}},J="https://api.cal.com/v2";async function c(e,t,n={}){let{method:a="GET",body:i,query:l}=n,d={BASE:J,VERSION:"2024-08-13",WITH_CREDENTIALS:!1,CREDENTIALS:"omit",TOKEN:t,HEADERS:{"Content-Type":"application/json","cal-api-version":"2024-08-13"}},$={method:a,url:e,body:a==="POST"||a==="PUT"||a==="PATCH"?i:void 0,mediaType:"application/json; charset=utf-8",query:a==="GET"?l:void 0};try{return await V(d,$)}catch(p){if(p instanceof Z){let q=p.body?.error?.message||p.body?.message||p.body?.error||p.message;throw new f(q,String(p.status),p.body)}throw p instanceof Error?new f(p.message):new f("Unknown error")}}var A=async(e,t)=>{let n=await c("/bookings",e.key,{method:"GET",query:t});if(n.data&&e.db.bookings)try{for(let a of n.data)a.uid&&await e.db.bookings.upsertByEntityId(a.uid,{...a})}catch(a){console.warn("Failed to save bookings to database:",a)}return await h(e,"cal.bookings.list",{...t},"completed"),n},T=async(e,t)=>{let n=await c(`/bookings/${t.uid}`,e.key,{method:"GET"});if(n.data&&e.db.bookings)try{await e.db.bookings.upsertByEntityId(n.data.uid,{...n.data})}catch(a){console.warn("Failed to save booking to database:",a)}return await h(e,"cal.bookings.get",{...t},"completed"),n},P=async(e,t)=>{let n=await c("/bookings",e.key,{method:"POST",body:t});if(n.data&&e.db.bookings)try{await e.db.bookings.upsertByEntityId(n.data.uid,{...n.data})}catch(a){console.warn("Failed to save booking to database:",a)}return await h(e,"cal.bookings.create",{...t},"completed"),n},L=async(e,t)=>{let{uid:n,...a}=t,i=await c(`/bookings/${n}/cancel`,e.key,{method:"POST",body:a});if(i.data&&e.db.bookings)try{await e.db.bookings.upsertByEntityId(i.data.uid,{...i.data})}catch(l){console.warn("Failed to save booking to database:",l)}return await h(e,"cal.bookings.cancel",{...t},"completed"),i},W=async(e,t)=>{let{uid:n,...a}=t,i=await c(`/bookings/${n}/reschedule`,e.key,{method:"POST",body:a});if(i.data&&e.db.bookings)try{await e.db.bookings.upsertByEntityId(i.data.uid,{...i.data})}catch(l){console.warn("Failed to save booking to database:",l)}return await h(e,"cal.bookings.reschedule",{...t},"completed"),i},D=async(e,t)=>{let n=await c(`/bookings/${t.uid}/confirm`,e.key,{method:"POST"});if(n.data&&e.db.bookings)try{await e.db.bookings.upsertByEntityId(n.data.uid,{...n.data})}catch(a){console.warn("Failed to save booking to database:",a)}return await h(e,"cal.bookings.confirm",{...t},"completed"),n},_=async(e,t)=>{let{uid:n,...a}=t,i=await c(`/bookings/${n}/decline`,e.key,{method:"POST",body:a});if(i.data&&e.db.bookings)try{await e.db.bookings.upsertByEntityId(i.data.uid,{...i.data})}catch(l){console.warn("Failed to save booking to database:",l)}return await h(e,"cal.bookings.decline",{...t},"completed"),i};import{z as o}from"zod";var Q=o.object({status:o.enum(["upcoming","recurring","past","cancelled","unconfirmed"]).optional(),attendeeEmail:o.string().optional(),attendeeName:o.string().optional(),eventTypeIds:o.string().optional(),eventTypeId:o.number().optional(),teamsIds:o.string().optional(),teamId:o.number().optional(),afterStart:o.string().optional(),beforeEnd:o.string().optional(),sortStart:o.enum(["asc","desc"]).optional(),sortEnd:o.enum(["asc","desc"]).optional(),sortCreated:o.enum(["asc","desc"]).optional(),take:o.number().optional(),skip:o.number().optional()}),X=o.object({uid:o.string()}),Y=o.object({start:o.string(),eventTypeId:o.number(),attendee:o.object({name:o.string(),email:o.string(),timeZone:o.string()}),meetingUrl:o.string().optional(),lengthInMinutes:o.number().optional(),bookingFieldsResponses:o.record(o.unknown()).optional(),metadata:o.record(o.unknown()).optional()}),ee=o.object({uid:o.string(),cancellationReason:o.string().optional(),allRemainingBookings:o.boolean().optional()}),oe=o.object({uid:o.string(),start:o.string(),rescheduledBy:o.string().optional()}),ne=o.object({uid:o.string()}),te=o.object({uid:o.string(),reason:o.string().optional()}),ie=o.object({name:o.string(),email:o.string(),timeZone:o.string(),language:o.string().optional(),absent:o.boolean().optional()}).passthrough(),ae=o.object({id:o.number(),name:o.string(),email:o.string().optional(),username:o.string().optional(),timeZone:o.string().optional()}).passthrough(),m=o.object({id:o.number(),uid:o.string(),title:o.string().optional(),description:o.string().nullable().optional(),status:o.string(),start:o.string().optional(),end:o.string().optional(),duration:o.number().optional(),eventTypeId:o.number().optional(),eventType:o.object({id:o.number(),slug:o.string().optional()}).passthrough().optional(),meetingUrl:o.string().nullable().optional(),location:o.string().nullable().optional(),absentHost:o.boolean().optional(),createdAt:o.string().optional(),updatedAt:o.string().optional(),cancellationReason:o.string().nullable().optional(),reschedulingReason:o.string().nullable().optional(),rescheduledFromUid:o.string().nullable().optional(),attendees:o.array(ie).optional(),hosts:o.array(ae).optional(),guests:o.array(o.string()).optional(),metadata:o.record(o.unknown()).nullable().optional(),bookingFieldsResponses:o.record(o.unknown()).nullable().optional()}).passthrough(),y=o.object({status:o.string(),data:o.unknown().optional()}).passthrough(),se=y.extend({data:o.array(m).optional()}).passthrough(),re=y.extend({data:m.optional()}).passthrough(),le=y.extend({data:m.optional()}).passthrough(),de=y.extend({data:m.optional()}).passthrough(),pe=y.extend({data:m.optional()}).passthrough(),ce=y.extend({data:m.optional()}).passthrough(),ge=y.extend({data:m.optional()}).passthrough(),g={bookingsList:Q,bookingsGet:X,bookingsCreate:Y,bookingsCancel:ee,bookingsReschedule:oe,bookingsConfirm:ne,bookingsDecline:te},u={bookingsList:se,bookingsGet:re,bookingsCreate:le,bookingsCancel:de,bookingsReschedule:pe,bookingsConfirm:ce,bookingsDecline:ge};var k={list:A,get:T,create:P,cancel:L,reschedule:W,confirm:D,decline:_};import{ApiError as E}from"corsair/http";var N={RATE_LIMIT_ERROR:{match:(e,t)=>{if(e instanceof E&&e.status===429)return!0;let n=e.message.toLowerCase();return n.includes("rate_limited")||n.includes("ratelimited")||e.message.includes("429")},handler:async(e,t)=>{let n;return e instanceof E&&e.retryAfter!==void 0&&(n=e.retryAfter),{maxRetries:5,headersRetryAfterMs:n}}},AUTH_ERROR:{match:(e,t)=>{if(e instanceof E&&e.status===401)return!0;let n=e.message.toLowerCase();return n.includes("invalid_auth")||n.includes("unauthorized")||n.includes("authentication failed")||n.includes("token_expired")||n.includes("not_authenticated")},handler:async(e,t)=>(console.log(`[CAL:${t.operation}] Authentication failed - check your API key`),{maxRetries:0})},PERMISSION_ERROR:{match:(e,t)=>{if(e instanceof E&&e.status===403)return!0;let n=e.message.toLowerCase();return n.includes("permission_denied")||n.includes("forbidden")||n.includes("access_denied")||n.includes("insufficient_permissions")},handler:async(e,t)=>(console.warn(`[CAL:${t.operation}] Permission denied: ${e.message}`),{maxRetries:0})},NETWORK_ERROR:{match:(e,t)=>{let n=e.message.toLowerCase();return n.includes("network")||n.includes("connection")||n.includes("econnrefused")||n.includes("enotfound")||n.includes("etimedout")||n.includes("fetch failed")||n.includes("network error")},handler:async(e,t)=>(console.warn(`[CAL:${t.operation}] Network error: ${e.message}`),{maxRetries:3})},NOT_FOUND_ERROR:{match:(e,t)=>{if(e instanceof E&&e.status===404)return!0;let n=e.message.toLowerCase();return n.includes("not_found")||n.includes("booking_not_found")||n.includes("event_type_not_found")},handler:async(e,t)=>(console.warn(`[CAL:${t.operation}] Resource not found: ${e.message}`),{maxRetries:0})},DEFAULT:{match:(e,t)=>!0,handler:async(e,t)=>(console.error(`[CAL:${t.operation}] Unhandled error: ${e.message}`),{maxRetries:0})}};import{z as r}from"zod";var G=r.object({id:r.number().optional(),bookingId:r.number().optional(),uid:r.string(),title:r.string().optional(),description:r.string().nullable().optional(),status:r.string().optional(),start:r.string().optional(),startTime:r.string().optional(),end:r.string().optional(),endTime:r.string().optional(),duration:r.number().optional(),length:r.number().optional(),eventTypeId:r.number().optional(),meetingUrl:r.string().nullable().optional(),location:r.string().nullable().optional(),createdAt:r.string().nullable().optional(),updatedAt:r.string().nullable().optional(),cancellationReason:r.string().nullable().optional(),reschedulingReason:r.string().nullable().optional(),attendees:r.array(r.object({name:r.string(),email:r.string(),timeZone:r.string().optional()}).passthrough()).optional(),hosts:r.array(r.object({id:r.number(),name:r.string(),email:r.string().optional(),timeZone:r.string().optional()}).passthrough()).optional(),metadata:r.record(r.unknown()).nullable().optional()}).passthrough();var M={version:"1.0.0",entities:{bookings:G}};import{logEventFromContext as v}from"corsair/core";import{z as s}from"zod";import{verifyHmacSignature as ue}from"corsair/http";var ke=s.object({name:s.string(),email:s.string(),timeZone:s.string().optional(),language:s.record(s.unknown()).optional(),absent:s.boolean().optional()}).passthrough(),be=s.object({id:s.number(),name:s.string(),email:s.string().optional(),username:s.string().optional(),timeZone:s.string().optional()}).passthrough(),R=s.object({bookingId:s.number().optional(),uid:s.string(),title:s.string().optional(),description:s.string().nullable().optional(),status:s.string().optional(),startTime:s.string().optional(),endTime:s.string().optional(),length:s.number().optional(),eventTypeId:s.number().optional(),meetingUrl:s.string().nullable().optional(),location:s.string().nullable().optional(),cancellationReason:s.string().nullable().optional(),reschedulingReason:s.string().nullable().optional(),rescheduledFromUid:s.string().nullable().optional(),attendees:s.array(ke).optional(),hosts:s.array(be).optional(),metadata:s.record(s.unknown()).nullable().optional()}).passthrough(),w=s.object({triggerEvent:s.literal("BOOKING_CREATED"),createdAt:s.string(),payload:R}),S=s.object({triggerEvent:s.literal("BOOKING_CANCELLED"),createdAt:s.string(),payload:R}),I=s.object({triggerEvent:s.literal("BOOKING_RESCHEDULED"),createdAt:s.string(),payload:R}),x=s.object({triggerEvent:s.literal("MEETING_ENDED"),createdAt:s.string(),payload:R}),O=s.object({triggerEvent:s.literal("PING"),createdAt:s.string().optional(),payload:s.record(s.unknown()).optional()});function he(e){return typeof e=="string"?JSON.parse(e):e}function b(e){return t=>he(t.body).triggerEvent===e}function C(e,t){if(!t)return{valid:!1,error:"No secret provided"};let n=e.rawBody;if(!n)return{valid:!1,error:"Missing raw body for signature verification"};let a=e.headers,i=Array.isArray(a["x-cal-signature-256"])?a["x-cal-signature-256"][0]:a["x-cal-signature-256"];return i?ue(n,t,i,"sha256")?{valid:!0}:{valid:!1,error:"Invalid signature"}:{valid:!1,error:"Missing x-cal-signature-256 header"}}var j={match:b("BOOKING_CREATED"),handler:async(e,t)=>{let n=e.key,a=C(t,n);if(!a.valid)return{success:!1,statusCode:401,error:a.error||"Signature verification failed"};let i=t.payload;if(i.triggerEvent!=="BOOKING_CREATED")return{success:!0,data:void 0};let l="";if(e.db.bookings&&i.payload?.uid)try{l=(await e.db.bookings.upsertByEntityId(i.payload.uid,{...i.payload,createdAt:i.createdAt,updatedAt:i.createdAt}))?.id||""}catch(d){console.warn("Failed to save booking to database:",d)}return await v(e,"cal.webhook.bookingCreated",{...i},"completed"),{success:!0,corsairEntityId:l,data:i}}},z={match:b("BOOKING_CANCELLED"),handler:async(e,t)=>{let n=e.key,a=C(t,n);if(!a.valid)return{success:!1,statusCode:401,error:a.error||"Signature verification failed"};let i=t.payload;if(i.triggerEvent!=="BOOKING_CANCELLED")return{success:!0,data:void 0};let l="";if(e.db.bookings&&i.payload?.uid)try{l=(await e.db.bookings.upsertByEntityId(i.payload.uid,{...i.payload,createdAt:i.createdAt,updatedAt:i.createdAt}))?.id||""}catch(d){console.warn("Failed to save booking to database:",d)}return await v(e,"cal.webhook.bookingCancelled",{...i},"completed"),{success:!0,corsairEntityId:l,data:i}}},H={match:b("BOOKING_RESCHEDULED"),handler:async(e,t)=>{let n=e.key,a=C(t,n);if(!a.valid)return{success:!1,statusCode:401,error:a.error||"Signature verification failed"};let i=t.payload;if(i.triggerEvent!=="BOOKING_RESCHEDULED")return{success:!0,data:void 0};let l="";if(e.db.bookings&&i.payload?.uid)try{l=(await e.db.bookings.upsertByEntityId(i.payload.uid,{...i.payload,createdAt:i.createdAt,updatedAt:i.createdAt}))?.id||""}catch(d){console.warn("Failed to save booking to database:",d)}return await v(e,"cal.webhook.bookingRescheduled",{...i},"completed"),{success:!0,corsairEntityId:l,data:i}}},K={match:b("MEETING_ENDED"),handler:async(e,t)=>{let n=e.key,a=C(t,n);if(!a.valid)return{success:!1,statusCode:401,error:a.error||"Signature verification failed"};let i=t.payload;if(i.triggerEvent!=="MEETING_ENDED")return{success:!0,data:void 0};let l="";if(e.db.bookings&&i.payload?.uid)try{l=(await e.db.bookings.upsertByEntityId(i.payload.uid,{...i.payload,createdAt:i.createdAt,updatedAt:i.createdAt}))?.id||""}catch(d){console.warn("Failed to save booking to database:",d)}return await v(e,"cal.webhook.meetingEnded",{...i},"completed"),{success:!0,corsairEntityId:l,data:i}}};var F={match:b("PING"),handler:async(e,t)=>{let n=e.key,a=C(t,n);return a.valid?{success:!0,data:t.payload}:{success:!1,statusCode:401,error:a.error||"Signature verification failed"}}};var B={bookingCreated:j,bookingCancelled:z,bookingRescheduled:H,meetingEnded:K},U={ping:F};var me={bookings:{list:k.list,get:k.get,create:k.create,cancel:k.cancel,reschedule:k.reschedule,confirm:k.confirm,decline:k.decline}},ye={bookings:{bookingCreated:B.bookingCreated,bookingCancelled:B.bookingCancelled,bookingRescheduled:B.bookingRescheduled,meetingEnded:B.meetingEnded},system:{ping:U.ping}},Ce={"bookings.list":{input:g.bookingsList,output:u.bookingsList},"bookings.get":{input:g.bookingsGet,output:u.bookingsGet},"bookings.create":{input:g.bookingsCreate,output:u.bookingsCreate},"bookings.cancel":{input:g.bookingsCancel,output:u.bookingsCancel},"bookings.reschedule":{input:g.bookingsReschedule,output:u.bookingsReschedule},"bookings.confirm":{input:g.bookingsConfirm,output:u.bookingsConfirm},"bookings.decline":{input:g.bookingsDecline,output:u.bookingsDecline}},fe="api_key",Ee={"bookings.list":{riskLevel:"read",description:"List all bookings"},"bookings.get":{riskLevel:"read",description:"Get a booking by UID"},"bookings.create":{riskLevel:"write",description:"Create a new booking"},"bookings.cancel":{riskLevel:"destructive",description:"Cancel a booking [DESTRUCTIVE]"},"bookings.reschedule":{riskLevel:"write",description:"Reschedule a booking to a new time"},"bookings.confirm":{riskLevel:"write",description:"Confirm a pending booking"},"bookings.decline":{riskLevel:"write",description:"Decline a pending booking"}},Be={"bookings.bookingCreated":{description:"A new booking was created",payload:w,response:w},"bookings.bookingCancelled":{description:"A booking was cancelled",payload:S,response:S},"bookings.bookingRescheduled":{description:"A booking was rescheduled",payload:I,response:I},"bookings.meetingEnded":{description:"A meeting ended",payload:x,response:x},"system.ping":{description:"Ping test to verify webhook endpoint",payload:O,response:O}},io={api_key:{account:["one"]}};function ao(e={}){let t={...e,authType:e.authType??fe};return{id:"cal",schema:M,options:t,hooks:t.hooks,webhookHooks:t.webhookHooks,endpoints:me,webhooks:ye,endpointMeta:Ee,endpointSchemas:Ce,webhookSchemas:Be,pluginWebhookMatcher:n=>{let i="x-cal-signature-256"in n.headers;return i},errorHandlers:{...N,...t.errorHandlers},keyBuilder:async(n,a)=>{if(a==="webhook"&&t.webhookSecret)return t.webhookSecret;if(a==="webhook"){let i=await n.keys.get_webhook_signature();return i||""}if(a==="endpoint"&&t.key)return t.key;if(a==="endpoint"&&n.authType==="api_key"){let i=await n.keys.get_api_key();return i||""}return""}}}export{ao as cal,io as calAuthConfig,Ce as calEndpointSchemas,b as createCalMatch};
|
|
1
|
+
import{logEventFromContext as h}from"corsair/core";import{ApiError as Z,request as V}from"corsair/http";var f=class extends Error{constructor(n,a,i){super(n);this.code=a;this.body=i;this.name="CalAPIError"}},J="https://api.cal.com/v2";async function c(e,t,n={}){let{method:a="GET",body:i,query:l}=n,d={BASE:J,VERSION:"2024-08-13",WITH_CREDENTIALS:!1,CREDENTIALS:"omit",TOKEN:t,HEADERS:{"Content-Type":"application/json","cal-api-version":"2024-08-13"}},$={method:a,url:e,body:a==="POST"||a==="PUT"||a==="PATCH"?i:void 0,mediaType:"application/json; charset=utf-8",query:a==="GET"?l:void 0};try{return await V(d,$)}catch(p){if(p instanceof Z){let q=p.body?.error?.message||p.body?.message||p.body?.error||p.message;throw new f(q,String(p.status),p.body)}throw p instanceof Error?new f(p.message):new f("Unknown error")}}var O=async(e,t)=>{let n=await c("/bookings",e.key,{method:"GET",query:t});if(n.data&&e.db.bookings)try{for(let a of n.data)a.uid&&await e.db.bookings.upsertByEntityId(a.uid,{...a})}catch(a){console.warn("Failed to save bookings to database:",a)}return await h(e,"cal.bookings.list",{...t},"completed"),n},T=async(e,t)=>{let n=await c(`/bookings/${t.uid}`,e.key,{method:"GET"});if(n.data&&e.db.bookings)try{await e.db.bookings.upsertByEntityId(n.data.uid,{...n.data})}catch(a){console.warn("Failed to save booking to database:",a)}return await h(e,"cal.bookings.get",{...t},"completed"),n},P=async(e,t)=>{let n=await c("/bookings",e.key,{method:"POST",body:t});if(n.data&&e.db.bookings)try{await e.db.bookings.upsertByEntityId(n.data.uid,{...n.data})}catch(a){console.warn("Failed to save booking to database:",a)}return await h(e,"cal.bookings.create",{...t},"completed"),n},L=async(e,t)=>{let{uid:n,...a}=t,i=await c(`/bookings/${n}/cancel`,e.key,{method:"POST",body:a});if(i.data&&e.db.bookings)try{await e.db.bookings.upsertByEntityId(i.data.uid,{...i.data})}catch(l){console.warn("Failed to save booking to database:",l)}return await h(e,"cal.bookings.cancel",{...t},"completed"),i},W=async(e,t)=>{let{uid:n,...a}=t,i=await c(`/bookings/${n}/reschedule`,e.key,{method:"POST",body:a});if(i.data&&e.db.bookings)try{await e.db.bookings.upsertByEntityId(i.data.uid,{...i.data})}catch(l){console.warn("Failed to save booking to database:",l)}return await h(e,"cal.bookings.reschedule",{...t},"completed"),i},D=async(e,t)=>{let n=await c(`/bookings/${t.uid}/confirm`,e.key,{method:"POST"});if(n.data&&e.db.bookings)try{await e.db.bookings.upsertByEntityId(n.data.uid,{...n.data})}catch(a){console.warn("Failed to save booking to database:",a)}return await h(e,"cal.bookings.confirm",{...t},"completed"),n},_=async(e,t)=>{let{uid:n,...a}=t,i=await c(`/bookings/${n}/decline`,e.key,{method:"POST",body:a});if(i.data&&e.db.bookings)try{await e.db.bookings.upsertByEntityId(i.data.uid,{...i.data})}catch(l){console.warn("Failed to save booking to database:",l)}return await h(e,"cal.bookings.decline",{...t},"completed"),i};import{z as o}from"zod";var Q=o.object({status:o.enum(["upcoming","recurring","past","cancelled","unconfirmed"]).optional(),attendeeEmail:o.string().optional(),attendeeName:o.string().optional(),eventTypeIds:o.string().optional(),eventTypeId:o.number().optional(),teamsIds:o.string().optional(),teamId:o.number().optional(),afterStart:o.string().optional(),beforeEnd:o.string().optional(),sortStart:o.enum(["asc","desc"]).optional(),sortEnd:o.enum(["asc","desc"]).optional(),sortCreated:o.enum(["asc","desc"]).optional(),take:o.number().optional(),skip:o.number().optional()}),X=o.object({uid:o.string()}),Y=o.object({start:o.string(),eventTypeId:o.number(),attendee:o.object({name:o.string(),email:o.string(),timeZone:o.string()}),meetingUrl:o.string().optional(),lengthInMinutes:o.number().optional(),bookingFieldsResponses:o.record(o.unknown()).optional(),metadata:o.record(o.unknown()).optional()}),ee=o.object({uid:o.string(),cancellationReason:o.string().optional(),allRemainingBookings:o.boolean().optional()}),oe=o.object({uid:o.string(),start:o.string(),rescheduledBy:o.string().optional()}),ne=o.object({uid:o.string()}),te=o.object({uid:o.string(),reason:o.string().optional()}),ie=o.object({name:o.string(),email:o.string(),timeZone:o.string(),language:o.string().optional(),absent:o.boolean().optional()}).passthrough(),ae=o.object({id:o.number(),name:o.string(),email:o.string().optional(),username:o.string().optional(),timeZone:o.string().optional()}).passthrough(),m=o.object({id:o.number(),uid:o.string(),title:o.string().optional(),description:o.string().nullable().optional(),status:o.string(),start:o.string().optional(),end:o.string().optional(),duration:o.number().optional(),eventTypeId:o.number().optional(),eventType:o.object({id:o.number(),slug:o.string().optional()}).passthrough().optional(),meetingUrl:o.string().nullable().optional(),location:o.string().nullable().optional(),absentHost:o.boolean().optional(),createdAt:o.string().optional(),updatedAt:o.string().optional(),cancellationReason:o.string().nullable().optional(),reschedulingReason:o.string().nullable().optional(),rescheduledFromUid:o.string().nullable().optional(),attendees:o.array(ie).optional(),hosts:o.array(ae).optional(),guests:o.array(o.string()).optional(),metadata:o.record(o.unknown()).nullable().optional(),bookingFieldsResponses:o.record(o.unknown()).nullable().optional()}).passthrough(),y=o.object({status:o.string(),data:o.unknown().optional()}).passthrough(),se=y.extend({data:o.array(m).optional()}).passthrough(),re=y.extend({data:m.optional()}).passthrough(),le=y.extend({data:m.optional()}).passthrough(),de=y.extend({data:m.optional()}).passthrough(),pe=y.extend({data:m.optional()}).passthrough(),ce=y.extend({data:m.optional()}).passthrough(),ge=y.extend({data:m.optional()}).passthrough(),g={bookingsList:Q,bookingsGet:X,bookingsCreate:Y,bookingsCancel:ee,bookingsReschedule:oe,bookingsConfirm:ne,bookingsDecline:te},u={bookingsList:se,bookingsGet:re,bookingsCreate:le,bookingsCancel:de,bookingsReschedule:pe,bookingsConfirm:ce,bookingsDecline:ge};var k={list:O,get:T,create:P,cancel:L,reschedule:W,confirm:D,decline:_};import{ApiError as E}from"corsair/http";var N={RATE_LIMIT_ERROR:{match:(e,t)=>{if(e instanceof E&&e.status===429)return!0;let n=e.message.toLowerCase();return n.includes("rate_limited")||n.includes("ratelimited")||e.message.includes("429")},handler:async(e,t)=>{let n;return e instanceof E&&e.retryAfter!==void 0&&(n=e.retryAfter),{maxRetries:5,headersRetryAfterMs:n}}},AUTH_ERROR:{match:(e,t)=>{if(e instanceof E&&e.status===401)return!0;let n=e.message.toLowerCase();return n.includes("invalid_auth")||n.includes("unauthorized")||n.includes("authentication failed")||n.includes("token_expired")||n.includes("not_authenticated")},handler:async(e,t)=>(console.log(`[CAL:${t.operation}] Authentication failed - check your API key`),{maxRetries:0})},PERMISSION_ERROR:{match:(e,t)=>{if(e instanceof E&&e.status===403)return!0;let n=e.message.toLowerCase();return n.includes("permission_denied")||n.includes("forbidden")||n.includes("access_denied")||n.includes("insufficient_permissions")},handler:async(e,t)=>(console.warn(`[CAL:${t.operation}] Permission denied: ${e.message}`),{maxRetries:0})},NETWORK_ERROR:{match:(e,t)=>{let n=e.message.toLowerCase();return n.includes("network")||n.includes("connection")||n.includes("econnrefused")||n.includes("enotfound")||n.includes("etimedout")||n.includes("fetch failed")||n.includes("network error")},handler:async(e,t)=>(console.warn(`[CAL:${t.operation}] Network error: ${e.message}`),{maxRetries:3})},NOT_FOUND_ERROR:{match:(e,t)=>{if(e instanceof E&&e.status===404)return!0;let n=e.message.toLowerCase();return n.includes("not_found")||n.includes("booking_not_found")||n.includes("event_type_not_found")},handler:async(e,t)=>(console.warn(`[CAL:${t.operation}] Resource not found: ${e.message}`),{maxRetries:0})},DEFAULT:{match:(e,t)=>!0,handler:async(e,t)=>(console.error(`[CAL:${t.operation}] Unhandled error: ${e.message}`),{maxRetries:0})}};import{z as r}from"zod";var G=r.object({id:r.number().optional(),bookingId:r.number().optional(),uid:r.string(),title:r.string().optional(),description:r.string().nullable().optional(),status:r.string().optional(),start:r.string().optional(),startTime:r.string().optional(),end:r.string().optional(),endTime:r.string().optional(),duration:r.number().optional(),length:r.number().optional(),eventTypeId:r.number().optional(),meetingUrl:r.string().nullable().optional(),location:r.string().nullable().optional(),createdAt:r.string().nullable().optional(),updatedAt:r.string().nullable().optional(),cancellationReason:r.string().nullable().optional(),reschedulingReason:r.string().nullable().optional(),attendees:r.array(r.object({name:r.string(),email:r.string(),timeZone:r.string().optional()}).passthrough()).optional(),hosts:r.array(r.object({id:r.number(),name:r.string(),email:r.string().optional(),timeZone:r.string().optional()}).passthrough()).optional(),metadata:r.record(r.unknown()).nullable().optional()}).passthrough();var M={version:"1.0.0",entities:{bookings:G}};import{logEventFromContext as R}from"corsair/core";import{verifyHmacSignature as ue}from"corsair/http";import{z as s}from"zod";var ke=s.object({name:s.string(),email:s.string(),timeZone:s.string().optional(),language:s.record(s.unknown()).optional(),absent:s.boolean().optional()}).passthrough(),be=s.object({id:s.number(),name:s.string(),email:s.string().optional(),username:s.string().optional(),timeZone:s.string().optional()}).passthrough(),w=s.object({bookingId:s.number().optional(),uid:s.string(),title:s.string().optional(),description:s.string().nullable().optional(),status:s.string().optional(),startTime:s.string().optional(),endTime:s.string().optional(),length:s.number().optional(),eventTypeId:s.number().optional(),meetingUrl:s.string().nullable().optional(),location:s.string().nullable().optional(),cancellationReason:s.string().nullable().optional(),reschedulingReason:s.string().nullable().optional(),rescheduledFromUid:s.string().nullable().optional(),attendees:s.array(ke).optional(),hosts:s.array(be).optional(),metadata:s.record(s.unknown()).nullable().optional()}).passthrough(),v=s.object({triggerEvent:s.literal("BOOKING_CREATED"),createdAt:s.string(),payload:w}),S=s.object({triggerEvent:s.literal("BOOKING_CANCELLED"),createdAt:s.string(),payload:w}),I=s.object({triggerEvent:s.literal("BOOKING_RESCHEDULED"),createdAt:s.string(),payload:w}),x=s.object({triggerEvent:s.literal("MEETING_ENDED"),createdAt:s.string(),payload:w}),A=s.object({triggerEvent:s.literal("PING"),createdAt:s.string().optional(),payload:s.record(s.unknown()).optional()});function he(e){return typeof e=="string"?JSON.parse(e):e}function b(e){return t=>he(t.body).triggerEvent===e}function C(e,t){if(!t)return{valid:!1,error:"No secret provided"};let n=e.rawBody;if(!n)return{valid:!1,error:"Missing raw body for signature verification"};let a=e.headers,i=Array.isArray(a["x-cal-signature-256"])?a["x-cal-signature-256"][0]:a["x-cal-signature-256"];return i?ue(n,t,i,"sha256")?{valid:!0}:{valid:!1,error:"Invalid signature"}:{valid:!1,error:"Missing x-cal-signature-256 header"}}var j={match:b("BOOKING_CREATED"),handler:async(e,t)=>{let n=e.key,a=C(t,n);if(!a.valid)return{success:!1,statusCode:401,error:a.error||"Signature verification failed"};let i=t.payload;if(i.triggerEvent!=="BOOKING_CREATED")return{success:!0,data:void 0};let l="";if(e.db.bookings&&i.payload?.uid)try{l=(await e.db.bookings.upsertByEntityId(i.payload.uid,{...i.payload,createdAt:i.createdAt,updatedAt:i.createdAt}))?.id||""}catch(d){console.warn("Failed to save booking to database:",d)}return await R(e,"cal.webhook.bookingCreated",{...i},"completed"),{success:!0,corsairEntityId:l,data:i}}},z={match:b("BOOKING_CANCELLED"),handler:async(e,t)=>{let n=e.key,a=C(t,n);if(!a.valid)return{success:!1,statusCode:401,error:a.error||"Signature verification failed"};let i=t.payload;if(i.triggerEvent!=="BOOKING_CANCELLED")return{success:!0,data:void 0};let l="";if(e.db.bookings&&i.payload?.uid)try{l=(await e.db.bookings.upsertByEntityId(i.payload.uid,{...i.payload,createdAt:i.createdAt,updatedAt:i.createdAt}))?.id||""}catch(d){console.warn("Failed to save booking to database:",d)}return await R(e,"cal.webhook.bookingCancelled",{...i},"completed"),{success:!0,corsairEntityId:l,data:i}}},H={match:b("BOOKING_RESCHEDULED"),handler:async(e,t)=>{let n=e.key,a=C(t,n);if(!a.valid)return{success:!1,statusCode:401,error:a.error||"Signature verification failed"};let i=t.payload;if(i.triggerEvent!=="BOOKING_RESCHEDULED")return{success:!0,data:void 0};let l="";if(e.db.bookings&&i.payload?.uid)try{l=(await e.db.bookings.upsertByEntityId(i.payload.uid,{...i.payload,createdAt:i.createdAt,updatedAt:i.createdAt}))?.id||""}catch(d){console.warn("Failed to save booking to database:",d)}return await R(e,"cal.webhook.bookingRescheduled",{...i},"completed"),{success:!0,corsairEntityId:l,data:i}}},K={match:b("MEETING_ENDED"),handler:async(e,t)=>{let n=e.key,a=C(t,n);if(!a.valid)return{success:!1,statusCode:401,error:a.error||"Signature verification failed"};let i=t.payload;if(i.triggerEvent!=="MEETING_ENDED")return{success:!0,data:void 0};let l="";if(e.db.bookings&&i.payload?.uid)try{l=(await e.db.bookings.upsertByEntityId(i.payload.uid,{...i.payload,createdAt:i.createdAt,updatedAt:i.createdAt}))?.id||""}catch(d){console.warn("Failed to save booking to database:",d)}return await R(e,"cal.webhook.meetingEnded",{...i},"completed"),{success:!0,corsairEntityId:l,data:i}}};var F={match:b("PING"),handler:async(e,t)=>{let n=e.key,a=C(t,n);return a.valid?{success:!0,data:t.payload}:{success:!1,statusCode:401,error:a.error||"Signature verification failed"}}};var B={bookingCreated:j,bookingCancelled:z,bookingRescheduled:H,meetingEnded:K},U={ping:F};var me={bookings:{list:k.list,get:k.get,create:k.create,cancel:k.cancel,reschedule:k.reschedule,confirm:k.confirm,decline:k.decline}},ye={bookings:{bookingCreated:B.bookingCreated,bookingCancelled:B.bookingCancelled,bookingRescheduled:B.bookingRescheduled,meetingEnded:B.meetingEnded},system:{ping:U.ping}},Ce={"bookings.list":{input:g.bookingsList,output:u.bookingsList},"bookings.get":{input:g.bookingsGet,output:u.bookingsGet},"bookings.create":{input:g.bookingsCreate,output:u.bookingsCreate},"bookings.cancel":{input:g.bookingsCancel,output:u.bookingsCancel},"bookings.reschedule":{input:g.bookingsReschedule,output:u.bookingsReschedule},"bookings.confirm":{input:g.bookingsConfirm,output:u.bookingsConfirm},"bookings.decline":{input:g.bookingsDecline,output:u.bookingsDecline}},fe="api_key",Ee={"bookings.list":{riskLevel:"read",description:"List all bookings"},"bookings.get":{riskLevel:"read",description:"Get a booking by UID"},"bookings.create":{riskLevel:"write",description:"Create a new booking"},"bookings.cancel":{riskLevel:"destructive",description:"Cancel a booking [DESTRUCTIVE]"},"bookings.reschedule":{riskLevel:"write",description:"Reschedule a booking to a new time"},"bookings.confirm":{riskLevel:"write",description:"Confirm a pending booking"},"bookings.decline":{riskLevel:"write",description:"Decline a pending booking"}},Be={"bookings.bookingCreated":{description:"A new booking was created",payload:v,response:v},"bookings.bookingCancelled":{description:"A booking was cancelled",payload:S,response:S},"bookings.bookingRescheduled":{description:"A booking was rescheduled",payload:I,response:I},"bookings.meetingEnded":{description:"A meeting ended",payload:x,response:x},"system.ping":{description:"Ping test to verify webhook endpoint",payload:A,response:A}},to={api_key:{account:["one"]}};function io(e={}){let t={...e,authType:e.authType??fe};return{id:"cal",schema:M,options:t,hooks:t.hooks,webhookHooks:t.webhookHooks,endpoints:me,webhooks:ye,endpointMeta:Ee,endpointSchemas:Ce,webhookSchemas:Be,pluginWebhookMatcher:n=>{let i="x-cal-signature-256"in n.headers;return i},errorHandlers:{...N,...t.errorHandlers},keyBuilder:async(n,a)=>{let i=n.authType;if(a==="webhook"&&t.webhookSecret)return t.webhookSecret;if(a==="webhook"){let l=await n.keys.get_webhook_signature();if(!l)throw new Error("[auth-missing:cal:webhook_signature]: Cal webhook signature is missing");return l}if(a==="endpoint"&&t.key)return t.key;if(a==="endpoint"&&n.authType==="api_key"){let l=await n.keys.get_api_key();if(!l)throw new Error("[auth-missing:cal:api_key]: Cal API Key is missing");return l}throw new Error(`[auth-missing:cal:${i}]: Cal key is missing`)}}}export{io as cal,to as calAuthConfig,Ce as calEndpointSchemas,b as createCalMatch};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { CalWebhooks } from '
|
|
1
|
+
import type { CalWebhooks } from '../index';
|
|
2
2
|
export declare const bookingCreated: CalWebhooks['bookingCreated'];
|
|
3
3
|
export declare const bookingCancelled: CalWebhooks['bookingCancelled'];
|
|
4
4
|
export declare const bookingRescheduled: CalWebhooks['bookingRescheduled'];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bookings.d.ts","sourceRoot":"","sources":["../../webhooks/bookings.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"bookings.d.ts","sourceRoot":"","sources":["../../webhooks/bookings.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAG5C,eAAO,MAAM,cAAc,EAAE,WAAW,CAAC,gBAAgB,CAsDxD,CAAC;AAEF,eAAO,MAAM,gBAAgB,EAAE,WAAW,CAAC,kBAAkB,CAsD5D,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,WAAW,CAAC,oBAAoB,CAsDhE,CAAC;AAEF,eAAO,MAAM,YAAY,EAAE,WAAW,CAAC,cAAc,CAsDpD,CAAC"}
|
package/dist/webhooks/index.d.ts
CHANGED
|
@@ -2,17 +2,18 @@ export declare const BookingWebhooks: {
|
|
|
2
2
|
bookingCreated: {
|
|
3
3
|
match: import("corsair/core").CorsairWebhookMatcher;
|
|
4
4
|
handler: import("corsair/core").CorsairWebhookHandler<import("..").CalContext, {
|
|
5
|
+
createdAt: string;
|
|
5
6
|
payload: {
|
|
6
7
|
uid: string;
|
|
7
8
|
length?: number | undefined;
|
|
8
9
|
location?: string | null | undefined;
|
|
9
10
|
status?: string | undefined;
|
|
10
|
-
description?: string | null | undefined;
|
|
11
11
|
eventTypeId?: number | undefined;
|
|
12
12
|
meetingUrl?: string | null | undefined;
|
|
13
13
|
metadata?: Record<string, unknown> | null | undefined;
|
|
14
14
|
cancellationReason?: string | null | undefined;
|
|
15
15
|
title?: string | undefined;
|
|
16
|
+
description?: string | null | undefined;
|
|
16
17
|
reschedulingReason?: string | null | undefined;
|
|
17
18
|
rescheduledFromUid?: string | null | undefined;
|
|
18
19
|
attendees?: import("zod").objectOutputType<{
|
|
@@ -29,26 +30,26 @@ export declare const BookingWebhooks: {
|
|
|
29
30
|
username: import("zod").ZodOptional<import("zod").ZodString>;
|
|
30
31
|
timeZone: import("zod").ZodOptional<import("zod").ZodString>;
|
|
31
32
|
}, import("zod").ZodTypeAny, "passthrough">[] | undefined;
|
|
32
|
-
bookingId?: number | undefined;
|
|
33
33
|
startTime?: string | undefined;
|
|
34
34
|
endTime?: string | undefined;
|
|
35
|
+
bookingId?: number | undefined;
|
|
35
36
|
} & {
|
|
36
37
|
[k: string]: unknown;
|
|
37
38
|
};
|
|
38
|
-
createdAt: string;
|
|
39
39
|
triggerEvent: "BOOKING_CREATED";
|
|
40
40
|
}, {
|
|
41
|
+
createdAt: string;
|
|
41
42
|
payload: {
|
|
42
43
|
uid: string;
|
|
43
44
|
length?: number | undefined;
|
|
44
45
|
location?: string | null | undefined;
|
|
45
46
|
status?: string | undefined;
|
|
46
|
-
description?: string | null | undefined;
|
|
47
47
|
eventTypeId?: number | undefined;
|
|
48
48
|
meetingUrl?: string | null | undefined;
|
|
49
49
|
metadata?: Record<string, unknown> | null | undefined;
|
|
50
50
|
cancellationReason?: string | null | undefined;
|
|
51
51
|
title?: string | undefined;
|
|
52
|
+
description?: string | null | undefined;
|
|
52
53
|
reschedulingReason?: string | null | undefined;
|
|
53
54
|
rescheduledFromUid?: string | null | undefined;
|
|
54
55
|
attendees?: import("zod").objectOutputType<{
|
|
@@ -65,30 +66,30 @@ export declare const BookingWebhooks: {
|
|
|
65
66
|
username: import("zod").ZodOptional<import("zod").ZodString>;
|
|
66
67
|
timeZone: import("zod").ZodOptional<import("zod").ZodString>;
|
|
67
68
|
}, import("zod").ZodTypeAny, "passthrough">[] | undefined;
|
|
68
|
-
bookingId?: number | undefined;
|
|
69
69
|
startTime?: string | undefined;
|
|
70
70
|
endTime?: string | undefined;
|
|
71
|
+
bookingId?: number | undefined;
|
|
71
72
|
} & {
|
|
72
73
|
[k: string]: unknown;
|
|
73
74
|
};
|
|
74
|
-
createdAt: string;
|
|
75
75
|
triggerEvent: "BOOKING_CREATED";
|
|
76
76
|
}>;
|
|
77
77
|
};
|
|
78
78
|
bookingCancelled: {
|
|
79
79
|
match: import("corsair/core").CorsairWebhookMatcher;
|
|
80
80
|
handler: import("corsair/core").CorsairWebhookHandler<import("..").CalContext, {
|
|
81
|
+
createdAt: string;
|
|
81
82
|
payload: {
|
|
82
83
|
uid: string;
|
|
83
84
|
length?: number | undefined;
|
|
84
85
|
location?: string | null | undefined;
|
|
85
86
|
status?: string | undefined;
|
|
86
|
-
description?: string | null | undefined;
|
|
87
87
|
eventTypeId?: number | undefined;
|
|
88
88
|
meetingUrl?: string | null | undefined;
|
|
89
89
|
metadata?: Record<string, unknown> | null | undefined;
|
|
90
90
|
cancellationReason?: string | null | undefined;
|
|
91
91
|
title?: string | undefined;
|
|
92
|
+
description?: string | null | undefined;
|
|
92
93
|
reschedulingReason?: string | null | undefined;
|
|
93
94
|
rescheduledFromUid?: string | null | undefined;
|
|
94
95
|
attendees?: import("zod").objectOutputType<{
|
|
@@ -105,26 +106,26 @@ export declare const BookingWebhooks: {
|
|
|
105
106
|
username: import("zod").ZodOptional<import("zod").ZodString>;
|
|
106
107
|
timeZone: import("zod").ZodOptional<import("zod").ZodString>;
|
|
107
108
|
}, import("zod").ZodTypeAny, "passthrough">[] | undefined;
|
|
108
|
-
bookingId?: number | undefined;
|
|
109
109
|
startTime?: string | undefined;
|
|
110
110
|
endTime?: string | undefined;
|
|
111
|
+
bookingId?: number | undefined;
|
|
111
112
|
} & {
|
|
112
113
|
[k: string]: unknown;
|
|
113
114
|
};
|
|
114
|
-
createdAt: string;
|
|
115
115
|
triggerEvent: "BOOKING_CANCELLED";
|
|
116
116
|
}, {
|
|
117
|
+
createdAt: string;
|
|
117
118
|
payload: {
|
|
118
119
|
uid: string;
|
|
119
120
|
length?: number | undefined;
|
|
120
121
|
location?: string | null | undefined;
|
|
121
122
|
status?: string | undefined;
|
|
122
|
-
description?: string | null | undefined;
|
|
123
123
|
eventTypeId?: number | undefined;
|
|
124
124
|
meetingUrl?: string | null | undefined;
|
|
125
125
|
metadata?: Record<string, unknown> | null | undefined;
|
|
126
126
|
cancellationReason?: string | null | undefined;
|
|
127
127
|
title?: string | undefined;
|
|
128
|
+
description?: string | null | undefined;
|
|
128
129
|
reschedulingReason?: string | null | undefined;
|
|
129
130
|
rescheduledFromUid?: string | null | undefined;
|
|
130
131
|
attendees?: import("zod").objectOutputType<{
|
|
@@ -141,30 +142,30 @@ export declare const BookingWebhooks: {
|
|
|
141
142
|
username: import("zod").ZodOptional<import("zod").ZodString>;
|
|
142
143
|
timeZone: import("zod").ZodOptional<import("zod").ZodString>;
|
|
143
144
|
}, import("zod").ZodTypeAny, "passthrough">[] | undefined;
|
|
144
|
-
bookingId?: number | undefined;
|
|
145
145
|
startTime?: string | undefined;
|
|
146
146
|
endTime?: string | undefined;
|
|
147
|
+
bookingId?: number | undefined;
|
|
147
148
|
} & {
|
|
148
149
|
[k: string]: unknown;
|
|
149
150
|
};
|
|
150
|
-
createdAt: string;
|
|
151
151
|
triggerEvent: "BOOKING_CANCELLED";
|
|
152
152
|
}>;
|
|
153
153
|
};
|
|
154
154
|
bookingRescheduled: {
|
|
155
155
|
match: import("corsair/core").CorsairWebhookMatcher;
|
|
156
156
|
handler: import("corsair/core").CorsairWebhookHandler<import("..").CalContext, {
|
|
157
|
+
createdAt: string;
|
|
157
158
|
payload: {
|
|
158
159
|
uid: string;
|
|
159
160
|
length?: number | undefined;
|
|
160
161
|
location?: string | null | undefined;
|
|
161
162
|
status?: string | undefined;
|
|
162
|
-
description?: string | null | undefined;
|
|
163
163
|
eventTypeId?: number | undefined;
|
|
164
164
|
meetingUrl?: string | null | undefined;
|
|
165
165
|
metadata?: Record<string, unknown> | null | undefined;
|
|
166
166
|
cancellationReason?: string | null | undefined;
|
|
167
167
|
title?: string | undefined;
|
|
168
|
+
description?: string | null | undefined;
|
|
168
169
|
reschedulingReason?: string | null | undefined;
|
|
169
170
|
rescheduledFromUid?: string | null | undefined;
|
|
170
171
|
attendees?: import("zod").objectOutputType<{
|
|
@@ -181,26 +182,26 @@ export declare const BookingWebhooks: {
|
|
|
181
182
|
username: import("zod").ZodOptional<import("zod").ZodString>;
|
|
182
183
|
timeZone: import("zod").ZodOptional<import("zod").ZodString>;
|
|
183
184
|
}, import("zod").ZodTypeAny, "passthrough">[] | undefined;
|
|
184
|
-
bookingId?: number | undefined;
|
|
185
185
|
startTime?: string | undefined;
|
|
186
186
|
endTime?: string | undefined;
|
|
187
|
+
bookingId?: number | undefined;
|
|
187
188
|
} & {
|
|
188
189
|
[k: string]: unknown;
|
|
189
190
|
};
|
|
190
|
-
createdAt: string;
|
|
191
191
|
triggerEvent: "BOOKING_RESCHEDULED";
|
|
192
192
|
}, {
|
|
193
|
+
createdAt: string;
|
|
193
194
|
payload: {
|
|
194
195
|
uid: string;
|
|
195
196
|
length?: number | undefined;
|
|
196
197
|
location?: string | null | undefined;
|
|
197
198
|
status?: string | undefined;
|
|
198
|
-
description?: string | null | undefined;
|
|
199
199
|
eventTypeId?: number | undefined;
|
|
200
200
|
meetingUrl?: string | null | undefined;
|
|
201
201
|
metadata?: Record<string, unknown> | null | undefined;
|
|
202
202
|
cancellationReason?: string | null | undefined;
|
|
203
203
|
title?: string | undefined;
|
|
204
|
+
description?: string | null | undefined;
|
|
204
205
|
reschedulingReason?: string | null | undefined;
|
|
205
206
|
rescheduledFromUid?: string | null | undefined;
|
|
206
207
|
attendees?: import("zod").objectOutputType<{
|
|
@@ -217,30 +218,30 @@ export declare const BookingWebhooks: {
|
|
|
217
218
|
username: import("zod").ZodOptional<import("zod").ZodString>;
|
|
218
219
|
timeZone: import("zod").ZodOptional<import("zod").ZodString>;
|
|
219
220
|
}, import("zod").ZodTypeAny, "passthrough">[] | undefined;
|
|
220
|
-
bookingId?: number | undefined;
|
|
221
221
|
startTime?: string | undefined;
|
|
222
222
|
endTime?: string | undefined;
|
|
223
|
+
bookingId?: number | undefined;
|
|
223
224
|
} & {
|
|
224
225
|
[k: string]: unknown;
|
|
225
226
|
};
|
|
226
|
-
createdAt: string;
|
|
227
227
|
triggerEvent: "BOOKING_RESCHEDULED";
|
|
228
228
|
}>;
|
|
229
229
|
};
|
|
230
230
|
meetingEnded: {
|
|
231
231
|
match: import("corsair/core").CorsairWebhookMatcher;
|
|
232
232
|
handler: import("corsair/core").CorsairWebhookHandler<import("..").CalContext, {
|
|
233
|
+
createdAt: string;
|
|
233
234
|
payload: {
|
|
234
235
|
uid: string;
|
|
235
236
|
length?: number | undefined;
|
|
236
237
|
location?: string | null | undefined;
|
|
237
238
|
status?: string | undefined;
|
|
238
|
-
description?: string | null | undefined;
|
|
239
239
|
eventTypeId?: number | undefined;
|
|
240
240
|
meetingUrl?: string | null | undefined;
|
|
241
241
|
metadata?: Record<string, unknown> | null | undefined;
|
|
242
242
|
cancellationReason?: string | null | undefined;
|
|
243
243
|
title?: string | undefined;
|
|
244
|
+
description?: string | null | undefined;
|
|
244
245
|
reschedulingReason?: string | null | undefined;
|
|
245
246
|
rescheduledFromUid?: string | null | undefined;
|
|
246
247
|
attendees?: import("zod").objectOutputType<{
|
|
@@ -257,26 +258,26 @@ export declare const BookingWebhooks: {
|
|
|
257
258
|
username: import("zod").ZodOptional<import("zod").ZodString>;
|
|
258
259
|
timeZone: import("zod").ZodOptional<import("zod").ZodString>;
|
|
259
260
|
}, import("zod").ZodTypeAny, "passthrough">[] | undefined;
|
|
260
|
-
bookingId?: number | undefined;
|
|
261
261
|
startTime?: string | undefined;
|
|
262
262
|
endTime?: string | undefined;
|
|
263
|
+
bookingId?: number | undefined;
|
|
263
264
|
} & {
|
|
264
265
|
[k: string]: unknown;
|
|
265
266
|
};
|
|
266
|
-
createdAt: string;
|
|
267
267
|
triggerEvent: "MEETING_ENDED";
|
|
268
268
|
}, {
|
|
269
|
+
createdAt: string;
|
|
269
270
|
payload: {
|
|
270
271
|
uid: string;
|
|
271
272
|
length?: number | undefined;
|
|
272
273
|
location?: string | null | undefined;
|
|
273
274
|
status?: string | undefined;
|
|
274
|
-
description?: string | null | undefined;
|
|
275
275
|
eventTypeId?: number | undefined;
|
|
276
276
|
meetingUrl?: string | null | undefined;
|
|
277
277
|
metadata?: Record<string, unknown> | null | undefined;
|
|
278
278
|
cancellationReason?: string | null | undefined;
|
|
279
279
|
title?: string | undefined;
|
|
280
|
+
description?: string | null | undefined;
|
|
280
281
|
reschedulingReason?: string | null | undefined;
|
|
281
282
|
rescheduledFromUid?: string | null | undefined;
|
|
282
283
|
attendees?: import("zod").objectOutputType<{
|
|
@@ -293,13 +294,12 @@ export declare const BookingWebhooks: {
|
|
|
293
294
|
username: import("zod").ZodOptional<import("zod").ZodString>;
|
|
294
295
|
timeZone: import("zod").ZodOptional<import("zod").ZodString>;
|
|
295
296
|
}, import("zod").ZodTypeAny, "passthrough">[] | undefined;
|
|
296
|
-
bookingId?: number | undefined;
|
|
297
297
|
startTime?: string | undefined;
|
|
298
298
|
endTime?: string | undefined;
|
|
299
|
+
bookingId?: number | undefined;
|
|
299
300
|
} & {
|
|
300
301
|
[k: string]: unknown;
|
|
301
302
|
};
|
|
302
|
-
createdAt: string;
|
|
303
303
|
triggerEvent: "MEETING_ENDED";
|
|
304
304
|
}>;
|
|
305
305
|
};
|
|
@@ -309,12 +309,12 @@ export declare const PingWebhooks: {
|
|
|
309
309
|
match: import("corsair/core").CorsairWebhookMatcher;
|
|
310
310
|
handler: import("corsair/core").CorsairWebhookHandler<import("..").CalContext, {
|
|
311
311
|
triggerEvent: "PING";
|
|
312
|
-
payload?: Record<string, unknown> | undefined;
|
|
313
312
|
createdAt?: string | undefined;
|
|
313
|
+
payload?: Record<string, unknown> | undefined;
|
|
314
314
|
}, {
|
|
315
315
|
triggerEvent: "PING";
|
|
316
|
-
payload?: Record<string, unknown> | undefined;
|
|
317
316
|
createdAt?: string | undefined;
|
|
317
|
+
payload?: Record<string, unknown> | undefined;
|
|
318
318
|
}>;
|
|
319
319
|
};
|
|
320
320
|
};
|
package/dist/webhooks/ping.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ping.d.ts","sourceRoot":"","sources":["../../webhooks/ping.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"ping.d.ts","sourceRoot":"","sources":["../../webhooks/ping.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAG5C,eAAO,MAAM,IAAI,EAAE,WAAW,CAAC,MAAM,CAmBpC,CAAC"}
|
package/dist/webhooks/types.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { z } from 'zod';
|
|
2
1
|
import type { CorsairWebhookMatcher, WebhookRequest } from 'corsair/core';
|
|
2
|
+
import { z } from 'zod';
|
|
3
3
|
export declare const BookingCreatedEventSchema: z.ZodObject<{
|
|
4
4
|
triggerEvent: z.ZodLiteral<"BOOKING_CREATED">;
|
|
5
5
|
createdAt: z.ZodString;
|
|
@@ -167,17 +167,18 @@ export declare const BookingCreatedEventSchema: z.ZodObject<{
|
|
|
167
167
|
metadata: z.ZodOptional<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
|
|
168
168
|
}, z.ZodTypeAny, "passthrough">>;
|
|
169
169
|
}, "strip", z.ZodTypeAny, {
|
|
170
|
+
createdAt: string;
|
|
170
171
|
payload: {
|
|
171
172
|
uid: string;
|
|
172
173
|
length?: number | undefined;
|
|
173
174
|
location?: string | null | undefined;
|
|
174
175
|
status?: string | undefined;
|
|
175
|
-
description?: string | null | undefined;
|
|
176
176
|
eventTypeId?: number | undefined;
|
|
177
177
|
meetingUrl?: string | null | undefined;
|
|
178
178
|
metadata?: Record<string, unknown> | null | undefined;
|
|
179
179
|
cancellationReason?: string | null | undefined;
|
|
180
180
|
title?: string | undefined;
|
|
181
|
+
description?: string | null | undefined;
|
|
181
182
|
reschedulingReason?: string | null | undefined;
|
|
182
183
|
rescheduledFromUid?: string | null | undefined;
|
|
183
184
|
attendees?: z.objectOutputType<{
|
|
@@ -194,26 +195,26 @@ export declare const BookingCreatedEventSchema: z.ZodObject<{
|
|
|
194
195
|
username: z.ZodOptional<z.ZodString>;
|
|
195
196
|
timeZone: z.ZodOptional<z.ZodString>;
|
|
196
197
|
}, z.ZodTypeAny, "passthrough">[] | undefined;
|
|
197
|
-
bookingId?: number | undefined;
|
|
198
198
|
startTime?: string | undefined;
|
|
199
199
|
endTime?: string | undefined;
|
|
200
|
+
bookingId?: number | undefined;
|
|
200
201
|
} & {
|
|
201
202
|
[k: string]: unknown;
|
|
202
203
|
};
|
|
203
|
-
createdAt: string;
|
|
204
204
|
triggerEvent: "BOOKING_CREATED";
|
|
205
205
|
}, {
|
|
206
|
+
createdAt: string;
|
|
206
207
|
payload: {
|
|
207
208
|
uid: string;
|
|
208
209
|
length?: number | undefined;
|
|
209
210
|
location?: string | null | undefined;
|
|
210
211
|
status?: string | undefined;
|
|
211
|
-
description?: string | null | undefined;
|
|
212
212
|
eventTypeId?: number | undefined;
|
|
213
213
|
meetingUrl?: string | null | undefined;
|
|
214
214
|
metadata?: Record<string, unknown> | null | undefined;
|
|
215
215
|
cancellationReason?: string | null | undefined;
|
|
216
216
|
title?: string | undefined;
|
|
217
|
+
description?: string | null | undefined;
|
|
217
218
|
reschedulingReason?: string | null | undefined;
|
|
218
219
|
rescheduledFromUid?: string | null | undefined;
|
|
219
220
|
attendees?: z.objectInputType<{
|
|
@@ -230,13 +231,12 @@ export declare const BookingCreatedEventSchema: z.ZodObject<{
|
|
|
230
231
|
username: z.ZodOptional<z.ZodString>;
|
|
231
232
|
timeZone: z.ZodOptional<z.ZodString>;
|
|
232
233
|
}, z.ZodTypeAny, "passthrough">[] | undefined;
|
|
233
|
-
bookingId?: number | undefined;
|
|
234
234
|
startTime?: string | undefined;
|
|
235
235
|
endTime?: string | undefined;
|
|
236
|
+
bookingId?: number | undefined;
|
|
236
237
|
} & {
|
|
237
238
|
[k: string]: unknown;
|
|
238
239
|
};
|
|
239
|
-
createdAt: string;
|
|
240
240
|
triggerEvent: "BOOKING_CREATED";
|
|
241
241
|
}>;
|
|
242
242
|
export type BookingCreatedEvent = z.infer<typeof BookingCreatedEventSchema>;
|
|
@@ -407,17 +407,18 @@ export declare const BookingCancelledEventSchema: z.ZodObject<{
|
|
|
407
407
|
metadata: z.ZodOptional<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
|
|
408
408
|
}, z.ZodTypeAny, "passthrough">>;
|
|
409
409
|
}, "strip", z.ZodTypeAny, {
|
|
410
|
+
createdAt: string;
|
|
410
411
|
payload: {
|
|
411
412
|
uid: string;
|
|
412
413
|
length?: number | undefined;
|
|
413
414
|
location?: string | null | undefined;
|
|
414
415
|
status?: string | undefined;
|
|
415
|
-
description?: string | null | undefined;
|
|
416
416
|
eventTypeId?: number | undefined;
|
|
417
417
|
meetingUrl?: string | null | undefined;
|
|
418
418
|
metadata?: Record<string, unknown> | null | undefined;
|
|
419
419
|
cancellationReason?: string | null | undefined;
|
|
420
420
|
title?: string | undefined;
|
|
421
|
+
description?: string | null | undefined;
|
|
421
422
|
reschedulingReason?: string | null | undefined;
|
|
422
423
|
rescheduledFromUid?: string | null | undefined;
|
|
423
424
|
attendees?: z.objectOutputType<{
|
|
@@ -434,26 +435,26 @@ export declare const BookingCancelledEventSchema: z.ZodObject<{
|
|
|
434
435
|
username: z.ZodOptional<z.ZodString>;
|
|
435
436
|
timeZone: z.ZodOptional<z.ZodString>;
|
|
436
437
|
}, z.ZodTypeAny, "passthrough">[] | undefined;
|
|
437
|
-
bookingId?: number | undefined;
|
|
438
438
|
startTime?: string | undefined;
|
|
439
439
|
endTime?: string | undefined;
|
|
440
|
+
bookingId?: number | undefined;
|
|
440
441
|
} & {
|
|
441
442
|
[k: string]: unknown;
|
|
442
443
|
};
|
|
443
|
-
createdAt: string;
|
|
444
444
|
triggerEvent: "BOOKING_CANCELLED";
|
|
445
445
|
}, {
|
|
446
|
+
createdAt: string;
|
|
446
447
|
payload: {
|
|
447
448
|
uid: string;
|
|
448
449
|
length?: number | undefined;
|
|
449
450
|
location?: string | null | undefined;
|
|
450
451
|
status?: string | undefined;
|
|
451
|
-
description?: string | null | undefined;
|
|
452
452
|
eventTypeId?: number | undefined;
|
|
453
453
|
meetingUrl?: string | null | undefined;
|
|
454
454
|
metadata?: Record<string, unknown> | null | undefined;
|
|
455
455
|
cancellationReason?: string | null | undefined;
|
|
456
456
|
title?: string | undefined;
|
|
457
|
+
description?: string | null | undefined;
|
|
457
458
|
reschedulingReason?: string | null | undefined;
|
|
458
459
|
rescheduledFromUid?: string | null | undefined;
|
|
459
460
|
attendees?: z.objectInputType<{
|
|
@@ -470,13 +471,12 @@ export declare const BookingCancelledEventSchema: z.ZodObject<{
|
|
|
470
471
|
username: z.ZodOptional<z.ZodString>;
|
|
471
472
|
timeZone: z.ZodOptional<z.ZodString>;
|
|
472
473
|
}, z.ZodTypeAny, "passthrough">[] | undefined;
|
|
473
|
-
bookingId?: number | undefined;
|
|
474
474
|
startTime?: string | undefined;
|
|
475
475
|
endTime?: string | undefined;
|
|
476
|
+
bookingId?: number | undefined;
|
|
476
477
|
} & {
|
|
477
478
|
[k: string]: unknown;
|
|
478
479
|
};
|
|
479
|
-
createdAt: string;
|
|
480
480
|
triggerEvent: "BOOKING_CANCELLED";
|
|
481
481
|
}>;
|
|
482
482
|
export type BookingCancelledEvent = z.infer<typeof BookingCancelledEventSchema>;
|
|
@@ -647,17 +647,18 @@ export declare const BookingRescheduledEventSchema: z.ZodObject<{
|
|
|
647
647
|
metadata: z.ZodOptional<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
|
|
648
648
|
}, z.ZodTypeAny, "passthrough">>;
|
|
649
649
|
}, "strip", z.ZodTypeAny, {
|
|
650
|
+
createdAt: string;
|
|
650
651
|
payload: {
|
|
651
652
|
uid: string;
|
|
652
653
|
length?: number | undefined;
|
|
653
654
|
location?: string | null | undefined;
|
|
654
655
|
status?: string | undefined;
|
|
655
|
-
description?: string | null | undefined;
|
|
656
656
|
eventTypeId?: number | undefined;
|
|
657
657
|
meetingUrl?: string | null | undefined;
|
|
658
658
|
metadata?: Record<string, unknown> | null | undefined;
|
|
659
659
|
cancellationReason?: string | null | undefined;
|
|
660
660
|
title?: string | undefined;
|
|
661
|
+
description?: string | null | undefined;
|
|
661
662
|
reschedulingReason?: string | null | undefined;
|
|
662
663
|
rescheduledFromUid?: string | null | undefined;
|
|
663
664
|
attendees?: z.objectOutputType<{
|
|
@@ -674,26 +675,26 @@ export declare const BookingRescheduledEventSchema: z.ZodObject<{
|
|
|
674
675
|
username: z.ZodOptional<z.ZodString>;
|
|
675
676
|
timeZone: z.ZodOptional<z.ZodString>;
|
|
676
677
|
}, z.ZodTypeAny, "passthrough">[] | undefined;
|
|
677
|
-
bookingId?: number | undefined;
|
|
678
678
|
startTime?: string | undefined;
|
|
679
679
|
endTime?: string | undefined;
|
|
680
|
+
bookingId?: number | undefined;
|
|
680
681
|
} & {
|
|
681
682
|
[k: string]: unknown;
|
|
682
683
|
};
|
|
683
|
-
createdAt: string;
|
|
684
684
|
triggerEvent: "BOOKING_RESCHEDULED";
|
|
685
685
|
}, {
|
|
686
|
+
createdAt: string;
|
|
686
687
|
payload: {
|
|
687
688
|
uid: string;
|
|
688
689
|
length?: number | undefined;
|
|
689
690
|
location?: string | null | undefined;
|
|
690
691
|
status?: string | undefined;
|
|
691
|
-
description?: string | null | undefined;
|
|
692
692
|
eventTypeId?: number | undefined;
|
|
693
693
|
meetingUrl?: string | null | undefined;
|
|
694
694
|
metadata?: Record<string, unknown> | null | undefined;
|
|
695
695
|
cancellationReason?: string | null | undefined;
|
|
696
696
|
title?: string | undefined;
|
|
697
|
+
description?: string | null | undefined;
|
|
697
698
|
reschedulingReason?: string | null | undefined;
|
|
698
699
|
rescheduledFromUid?: string | null | undefined;
|
|
699
700
|
attendees?: z.objectInputType<{
|
|
@@ -710,13 +711,12 @@ export declare const BookingRescheduledEventSchema: z.ZodObject<{
|
|
|
710
711
|
username: z.ZodOptional<z.ZodString>;
|
|
711
712
|
timeZone: z.ZodOptional<z.ZodString>;
|
|
712
713
|
}, z.ZodTypeAny, "passthrough">[] | undefined;
|
|
713
|
-
bookingId?: number | undefined;
|
|
714
714
|
startTime?: string | undefined;
|
|
715
715
|
endTime?: string | undefined;
|
|
716
|
+
bookingId?: number | undefined;
|
|
716
717
|
} & {
|
|
717
718
|
[k: string]: unknown;
|
|
718
719
|
};
|
|
719
|
-
createdAt: string;
|
|
720
720
|
triggerEvent: "BOOKING_RESCHEDULED";
|
|
721
721
|
}>;
|
|
722
722
|
export type BookingRescheduledEvent = z.infer<typeof BookingRescheduledEventSchema>;
|
|
@@ -887,17 +887,18 @@ export declare const MeetingEndedEventSchema: z.ZodObject<{
|
|
|
887
887
|
metadata: z.ZodOptional<z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodUnknown>>>;
|
|
888
888
|
}, z.ZodTypeAny, "passthrough">>;
|
|
889
889
|
}, "strip", z.ZodTypeAny, {
|
|
890
|
+
createdAt: string;
|
|
890
891
|
payload: {
|
|
891
892
|
uid: string;
|
|
892
893
|
length?: number | undefined;
|
|
893
894
|
location?: string | null | undefined;
|
|
894
895
|
status?: string | undefined;
|
|
895
|
-
description?: string | null | undefined;
|
|
896
896
|
eventTypeId?: number | undefined;
|
|
897
897
|
meetingUrl?: string | null | undefined;
|
|
898
898
|
metadata?: Record<string, unknown> | null | undefined;
|
|
899
899
|
cancellationReason?: string | null | undefined;
|
|
900
900
|
title?: string | undefined;
|
|
901
|
+
description?: string | null | undefined;
|
|
901
902
|
reschedulingReason?: string | null | undefined;
|
|
902
903
|
rescheduledFromUid?: string | null | undefined;
|
|
903
904
|
attendees?: z.objectOutputType<{
|
|
@@ -914,26 +915,26 @@ export declare const MeetingEndedEventSchema: z.ZodObject<{
|
|
|
914
915
|
username: z.ZodOptional<z.ZodString>;
|
|
915
916
|
timeZone: z.ZodOptional<z.ZodString>;
|
|
916
917
|
}, z.ZodTypeAny, "passthrough">[] | undefined;
|
|
917
|
-
bookingId?: number | undefined;
|
|
918
918
|
startTime?: string | undefined;
|
|
919
919
|
endTime?: string | undefined;
|
|
920
|
+
bookingId?: number | undefined;
|
|
920
921
|
} & {
|
|
921
922
|
[k: string]: unknown;
|
|
922
923
|
};
|
|
923
|
-
createdAt: string;
|
|
924
924
|
triggerEvent: "MEETING_ENDED";
|
|
925
925
|
}, {
|
|
926
|
+
createdAt: string;
|
|
926
927
|
payload: {
|
|
927
928
|
uid: string;
|
|
928
929
|
length?: number | undefined;
|
|
929
930
|
location?: string | null | undefined;
|
|
930
931
|
status?: string | undefined;
|
|
931
|
-
description?: string | null | undefined;
|
|
932
932
|
eventTypeId?: number | undefined;
|
|
933
933
|
meetingUrl?: string | null | undefined;
|
|
934
934
|
metadata?: Record<string, unknown> | null | undefined;
|
|
935
935
|
cancellationReason?: string | null | undefined;
|
|
936
936
|
title?: string | undefined;
|
|
937
|
+
description?: string | null | undefined;
|
|
937
938
|
reschedulingReason?: string | null | undefined;
|
|
938
939
|
rescheduledFromUid?: string | null | undefined;
|
|
939
940
|
attendees?: z.objectInputType<{
|
|
@@ -950,13 +951,12 @@ export declare const MeetingEndedEventSchema: z.ZodObject<{
|
|
|
950
951
|
username: z.ZodOptional<z.ZodString>;
|
|
951
952
|
timeZone: z.ZodOptional<z.ZodString>;
|
|
952
953
|
}, z.ZodTypeAny, "passthrough">[] | undefined;
|
|
953
|
-
bookingId?: number | undefined;
|
|
954
954
|
startTime?: string | undefined;
|
|
955
955
|
endTime?: string | undefined;
|
|
956
|
+
bookingId?: number | undefined;
|
|
956
957
|
} & {
|
|
957
958
|
[k: string]: unknown;
|
|
958
959
|
};
|
|
959
|
-
createdAt: string;
|
|
960
960
|
triggerEvent: "MEETING_ENDED";
|
|
961
961
|
}>;
|
|
962
962
|
export type MeetingEndedEvent = z.infer<typeof MeetingEndedEventSchema>;
|
|
@@ -966,12 +966,12 @@ export declare const PingEventSchema: z.ZodObject<{
|
|
|
966
966
|
payload: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
967
967
|
}, "strip", z.ZodTypeAny, {
|
|
968
968
|
triggerEvent: "PING";
|
|
969
|
-
payload?: Record<string, unknown> | undefined;
|
|
970
969
|
createdAt?: string | undefined;
|
|
970
|
+
payload?: Record<string, unknown> | undefined;
|
|
971
971
|
}, {
|
|
972
972
|
triggerEvent: "PING";
|
|
973
|
-
payload?: Record<string, unknown> | undefined;
|
|
974
973
|
createdAt?: string | undefined;
|
|
974
|
+
payload?: Record<string, unknown> | undefined;
|
|
975
975
|
}>;
|
|
976
976
|
export type PingEvent = z.infer<typeof PingEventSchema>;
|
|
977
977
|
export interface CalWebhookPayload {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../webhooks/types.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../webhooks/types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@corsair-dev/cal",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.1",
|
|
4
4
|
"description": "Cal plugin for Corsair",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -18,10 +18,12 @@
|
|
|
18
18
|
"zod": "^3.0.0"
|
|
19
19
|
},
|
|
20
20
|
"devDependencies": {
|
|
21
|
+
"@types/jest": "^29.5.14",
|
|
22
|
+
"ts-jest": "^29.4.9",
|
|
21
23
|
"tsup": "^8.0.1",
|
|
22
24
|
"typescript": "^5.9.3",
|
|
23
25
|
"zod": "^3.25.76",
|
|
24
|
-
"corsair": "0.1.
|
|
26
|
+
"corsair": "0.1.67"
|
|
25
27
|
},
|
|
26
28
|
"keywords": [
|
|
27
29
|
"corsair",
|
|
@@ -33,8 +35,12 @@
|
|
|
33
35
|
"files": [
|
|
34
36
|
"dist"
|
|
35
37
|
],
|
|
38
|
+
"dependencies": {
|
|
39
|
+
"jest": "^29.7.0"
|
|
40
|
+
},
|
|
36
41
|
"scripts": {
|
|
37
42
|
"build": "rm -rf dist && tsc --build --force && tsup",
|
|
38
|
-
"typecheck": "tsc --noEmit"
|
|
43
|
+
"typecheck": "tsc --noEmit",
|
|
44
|
+
"test": "jest"
|
|
39
45
|
}
|
|
40
46
|
}
|