@activepieces/piece-savvycal 0.1.4 → 0.1.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (61) hide show
  1. package/package.json +7 -12
  2. package/src/index.js +20 -66
  3. package/src/index.d.ts +0 -3
  4. package/src/index.js.map +0 -1
  5. package/src/lib/actions/cancel-event.d.ts +0 -5
  6. package/src/lib/actions/cancel-event.js +0 -38
  7. package/src/lib/actions/cancel-event.js.map +0 -1
  8. package/src/lib/actions/create-event.d.ts +0 -20
  9. package/src/lib/actions/create-event.js +0 -235
  10. package/src/lib/actions/create-event.js.map +0 -1
  11. package/src/lib/actions/delete-scheduling-link.d.ts +0 -10
  12. package/src/lib/actions/delete-scheduling-link.js +0 -69
  13. package/src/lib/actions/delete-scheduling-link.js.map +0 -1
  14. package/src/lib/actions/duplicate-scheduling-link.d.ts +0 -10
  15. package/src/lib/actions/duplicate-scheduling-link.js +0 -65
  16. package/src/lib/actions/duplicate-scheduling-link.js.map +0 -1
  17. package/src/lib/actions/find-events-by-email.d.ts +0 -7
  18. package/src/lib/actions/find-events-by-email.js +0 -53
  19. package/src/lib/actions/find-events-by-email.js.map +0 -1
  20. package/src/lib/actions/get-current-user.d.ts +0 -3
  21. package/src/lib/actions/get-current-user.js +0 -38
  22. package/src/lib/actions/get-current-user.js.map +0 -1
  23. package/src/lib/actions/get-event.d.ts +0 -5
  24. package/src/lib/actions/get-event.js +0 -34
  25. package/src/lib/actions/get-event.js.map +0 -1
  26. package/src/lib/actions/get-link-slots.d.ts +0 -10
  27. package/src/lib/actions/get-link-slots.js +0 -72
  28. package/src/lib/actions/get-link-slots.js.map +0 -1
  29. package/src/lib/actions/get-scheduling-link.d.ts +0 -10
  30. package/src/lib/actions/get-scheduling-link.js +0 -65
  31. package/src/lib/actions/get-scheduling-link.js.map +0 -1
  32. package/src/lib/actions/get-workflow-rules.d.ts +0 -7
  33. package/src/lib/actions/get-workflow-rules.js +0 -52
  34. package/src/lib/actions/get-workflow-rules.js.map +0 -1
  35. package/src/lib/actions/list-events.d.ts +0 -14
  36. package/src/lib/actions/list-events.js +0 -149
  37. package/src/lib/actions/list-events.js.map +0 -1
  38. package/src/lib/actions/list-scheduling-links.d.ts +0 -7
  39. package/src/lib/actions/list-scheduling-links.js +0 -51
  40. package/src/lib/actions/list-scheduling-links.js.map +0 -1
  41. package/src/lib/actions/list-workflows.d.ts +0 -3
  42. package/src/lib/actions/list-workflows.js +0 -37
  43. package/src/lib/actions/list-workflows.js.map +0 -1
  44. package/src/lib/actions/toggle-scheduling-link.d.ts +0 -10
  45. package/src/lib/actions/toggle-scheduling-link.js +0 -65
  46. package/src/lib/actions/toggle-scheduling-link.js.map +0 -1
  47. package/src/lib/auth.d.ts +0 -6
  48. package/src/lib/auth.js +0 -60
  49. package/src/lib/auth.js.map +0 -1
  50. package/src/lib/common/index.d.ts +0 -98
  51. package/src/lib/common/index.js +0 -151
  52. package/src/lib/common/index.js.map +0 -1
  53. package/src/lib/triggers/new-event.d.ts +0 -42
  54. package/src/lib/triggers/new-event.js +0 -193
  55. package/src/lib/triggers/new-event.js.map +0 -1
  56. package/src/lib/triggers/new-poll-response.d.ts +0 -18
  57. package/src/lib/triggers/new-poll-response.js +0 -84
  58. package/src/lib/triggers/new-poll-response.js.map +0 -1
  59. package/src/lib/triggers/workflow-action-triggered.d.ts +0 -10
  60. package/src/lib/triggers/workflow-action-triggered.js +0 -68
  61. package/src/lib/triggers/workflow-action-triggered.js.map +0 -1
package/src/lib/auth.js DELETED
@@ -1,60 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.savvyCalAuth = void 0;
4
- exports.getToken = getToken;
5
- const tslib_1 = require("tslib");
6
- const pieces_framework_1 = require("@activepieces/pieces-framework");
7
- const shared_1 = require("@activepieces/shared");
8
- const pieces_common_1 = require("@activepieces/pieces-common");
9
- const common_1 = require("./common");
10
- exports.savvyCalAuth = [
11
- pieces_framework_1.PieceAuth.OAuth2({
12
- description: 'Connect your SavvyCal account using OAuth2.',
13
- authUrl: 'https://savvycal.com/oauth/authorize',
14
- tokenUrl: 'https://savvycal.com/oauth/token',
15
- required: true,
16
- scope: [],
17
- }),
18
- pieces_framework_1.PieceAuth.CustomAuth({
19
- displayName: 'Personal Access Token',
20
- description: `To get your SavvyCal API token:
21
- 1. Log in to your SavvyCal account at https://savvycal.com
22
- 2. Go to **Settings > Developers**
23
- 3. Under **Personal Tokens**, click **Create a token**
24
- 4. Give it a name, then click the **...** menu next to it to view the token
25
- 5. Copy the **Private Key** (starts with \`pt_secret_\`) — not the Public Key
26
-
27
- **Note:** Keep this token secret — it gives full access to your SavvyCal account.`,
28
- required: true,
29
- props: {
30
- token: pieces_framework_1.PieceAuth.SecretText({
31
- displayName: 'Personal Access Token',
32
- description: 'Your SavvyCal Personal Access Token (Private Key).',
33
- required: true,
34
- }),
35
- },
36
- validate: (_a) => tslib_1.__awaiter(void 0, [_a], void 0, function* ({ auth }) {
37
- try {
38
- yield pieces_common_1.httpClient.sendRequest({
39
- method: pieces_common_1.HttpMethod.GET,
40
- url: `${common_1.SAVVYCAL_BASE_URL}/me`,
41
- authentication: {
42
- type: pieces_common_1.AuthenticationType.BEARER_TOKEN,
43
- token: auth.token,
44
- },
45
- });
46
- return { valid: true };
47
- }
48
- catch (_b) {
49
- return { valid: false, error: 'Invalid token. Please check your Personal Access Token and try again.' };
50
- }
51
- }),
52
- }),
53
- ];
54
- function getToken(auth) {
55
- if (auth.type === shared_1.AppConnectionType.CUSTOM_AUTH) {
56
- return auth.props.token;
57
- }
58
- return auth.access_token;
59
- }
60
- //# sourceMappingURL=auth.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"auth.js","sourceRoot":"","sources":["../../../src/lib/auth.ts"],"names":[],"mappings":";;;AAmDA,4BAKC;;AAxDD,qEAA8F;AAC9F,iDAAyD;AACzD,+DAAyF;AACzF,qCAA6C;AAEhC,QAAA,YAAY,GAAG;IAC1B,4BAAS,CAAC,MAAM,CAAC;QACf,WAAW,EAAE,6CAA6C;QAC1D,OAAO,EAAE,sCAAsC;QAC/C,QAAQ,EAAE,kCAAkC;QAC5C,QAAQ,EAAE,IAAI;QACd,KAAK,EAAE,EAAE;KACV,CAAC;IACF,4BAAS,CAAC,UAAU,CAAC;QACnB,WAAW,EAAE,uBAAuB;QACpC,WAAW,EAAE;;;;;;;kFAOiE;QAC9E,QAAQ,EAAE,IAAI;QACd,KAAK,EAAE;YACL,KAAK,EAAE,4BAAS,CAAC,UAAU,CAAC;gBAC1B,WAAW,EAAE,uBAAuB;gBACpC,WAAW,EAAE,oDAAoD;gBACjE,QAAQ,EAAE,IAAI;aACf,CAAC;SACH;QACD,QAAQ,EAAE,KAAiB,EAAE,oDAAZ,EAAE,IAAI,EAAE;YACvB,IAAI,CAAC;gBACH,MAAM,0BAAU,CAAC,WAAW,CAAC;oBAC3B,MAAM,EAAE,0BAAU,CAAC,GAAG;oBACtB,GAAG,EAAE,GAAG,0BAAiB,KAAK;oBAC9B,cAAc,EAAE;wBACd,IAAI,EAAE,kCAAkB,CAAC,YAAY;wBACrC,KAAK,EAAE,IAAI,CAAC,KAAK;qBAClB;iBACF,CAAC,CAAC;gBACH,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;YACzB,CAAC;YAAC,WAAM,CAAC;gBACP,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,uEAAuE,EAAE,CAAC;YAC1G,CAAC;QACH,CAAC,CAAA;KACF,CAAC;CACH,CAAC;AAIF,SAAgB,QAAQ,CAAC,IAAuB;IAC9C,IAAI,IAAI,CAAC,IAAI,KAAK,0BAAiB,CAAC,WAAW,EAAE,CAAC;QAChD,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;IAC1B,CAAC;IACD,OAAO,IAAI,CAAC,YAAY,CAAC;AAC3B,CAAC"}
@@ -1,98 +0,0 @@
1
- import { HttpMethod, HttpMessageBody, HttpResponse } from '@activepieces/pieces-common';
2
- import { DropdownOption } from '@activepieces/pieces-framework';
3
- export declare const SAVVYCAL_BASE_URL = "https://api.savvycal.com/v1";
4
- export declare function verifyWebhookSignature(secret: string, signatureHeader: string, rawBody: unknown): boolean;
5
- export declare function savvyCalApiCall<T extends HttpMessageBody>({ token, method, path, body, queryParams, }: {
6
- token: string;
7
- method: HttpMethod;
8
- path: string;
9
- body?: unknown;
10
- queryParams?: Record<string, string>;
11
- }): Promise<HttpResponse<T>>;
12
- export declare function savvyCalPaginatedCall<T>({ token, path, queryParams, }: {
13
- token: string;
14
- path: string;
15
- queryParams?: Record<string, string>;
16
- }): Promise<T[]>;
17
- export declare function buildTeamOptions(token: string): Promise<DropdownOption<string>[]>;
18
- export declare function buildWorkflowOptions(token: string): Promise<DropdownOption<string>[]>;
19
- export declare function buildLinkOptions(token: string, teamId?: string | null): Promise<DropdownOption<string>[]>;
20
- export declare function flattenLink(link: SavvyCalSchedulingLink): Record<string, unknown>;
21
- export declare function flattenEvent(event: SavvyCalEvent): Record<string, unknown>;
22
- export interface SavvyCalAttendee {
23
- id: string;
24
- first_name: string | null;
25
- last_name: string | null;
26
- display_name: string | null;
27
- email: string;
28
- phone_number: string | null;
29
- time_zone: string | null;
30
- is_organizer: boolean;
31
- response_status: string | null;
32
- }
33
- export interface SavvyCalEvent {
34
- id: string;
35
- uuid: string | null;
36
- summary: string | null;
37
- description: string | null;
38
- duration: number;
39
- start_at: string;
40
- end_at: string;
41
- state: string;
42
- url: string | null;
43
- created_at: string;
44
- canceled_at: string | null;
45
- cancel_reason: string | null;
46
- rescheduled_at: string | null;
47
- reschedule_reason: string | null;
48
- original_start_at: string | null;
49
- original_end_at: string | null;
50
- is_group_session: boolean;
51
- location: string | null;
52
- attendees: SavvyCalAttendee[];
53
- conferencing: {
54
- type: string | null;
55
- join_url: string | null;
56
- meeting_id: string | null;
57
- } | null;
58
- link: {
59
- id: string;
60
- name: string;
61
- slug: string;
62
- } | null;
63
- payment: {
64
- state: string;
65
- amount_total: number | null;
66
- } | null;
67
- }
68
- export interface SavvyCalScope {
69
- id: string;
70
- name: string;
71
- slug: string;
72
- }
73
- export interface SavvyCalLinkFieldOption {
74
- id?: string;
75
- label?: string;
76
- name?: string;
77
- value?: string;
78
- }
79
- export interface SavvyCalLinkField {
80
- id: string;
81
- label: string;
82
- type: string;
83
- is_required?: boolean;
84
- options?: SavvyCalLinkFieldOption[] | string[];
85
- choices?: SavvyCalLinkFieldOption[] | string[];
86
- }
87
- export interface SavvyCalSchedulingLink {
88
- id: string;
89
- name: string;
90
- slug: string;
91
- url: string;
92
- active: boolean;
93
- duration: number | null;
94
- created_at: string;
95
- updated_at: string;
96
- scope: SavvyCalScope | null;
97
- fields?: SavvyCalLinkField[];
98
- }
@@ -1,151 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SAVVYCAL_BASE_URL = void 0;
4
- exports.verifyWebhookSignature = verifyWebhookSignature;
5
- exports.savvyCalApiCall = savvyCalApiCall;
6
- exports.savvyCalPaginatedCall = savvyCalPaginatedCall;
7
- exports.buildTeamOptions = buildTeamOptions;
8
- exports.buildWorkflowOptions = buildWorkflowOptions;
9
- exports.buildLinkOptions = buildLinkOptions;
10
- exports.flattenLink = flattenLink;
11
- exports.flattenEvent = flattenEvent;
12
- const tslib_1 = require("tslib");
13
- const crypto = tslib_1.__importStar(require("crypto"));
14
- const pieces_common_1 = require("@activepieces/pieces-common");
15
- exports.SAVVYCAL_BASE_URL = 'https://api.savvycal.com/v1';
16
- function verifyWebhookSignature(secret, signatureHeader, rawBody) {
17
- const bodyString = typeof rawBody === 'string' ? rawBody : Buffer.isBuffer(rawBody) ? rawBody.toString('utf8') : JSON.stringify(rawBody);
18
- // Node's digest('hex') and SavvyCal both use lowercase hex — do not uppercase either side.
19
- const expected = 'sha256=' + crypto.createHmac('sha256', secret).update(bodyString).digest('hex');
20
- try {
21
- // Normalise casing before constant-time comparison to guard against case mismatches.
22
- return crypto.timingSafeEqual(Buffer.from(expected), Buffer.from(signatureHeader.toLowerCase()));
23
- }
24
- catch (_a) {
25
- return false;
26
- }
27
- }
28
- function savvyCalApiCall(_a) {
29
- return tslib_1.__awaiter(this, arguments, void 0, function* ({ token, method, path, body, queryParams, }) {
30
- return pieces_common_1.httpClient.sendRequest({
31
- method,
32
- url: `${exports.SAVVYCAL_BASE_URL}${path}`,
33
- authentication: {
34
- type: pieces_common_1.AuthenticationType.BEARER_TOKEN,
35
- token,
36
- },
37
- queryParams,
38
- body,
39
- });
40
- });
41
- }
42
- function savvyCalPaginatedCall(_a) {
43
- return tslib_1.__awaiter(this, arguments, void 0, function* ({ token, path, queryParams, }) {
44
- const results = [];
45
- let after = null;
46
- do {
47
- const params = Object.assign({ limit: '100' }, queryParams);
48
- if (after)
49
- params['after'] = after;
50
- const response = yield savvyCalApiCall({
51
- token,
52
- method: pieces_common_1.HttpMethod.GET,
53
- path,
54
- queryParams: params,
55
- });
56
- results.push(...response.body.entries);
57
- after = response.body.metadata.after;
58
- } while (after);
59
- return results;
60
- });
61
- }
62
- function buildTeamOptions(token) {
63
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
64
- const links = yield savvyCalPaginatedCall({ token, path: '/links' });
65
- const seenIds = new Set();
66
- const options = [{ label: 'Personal', value: 'personal' }];
67
- for (const link of links) {
68
- if (link.scope && !seenIds.has(link.scope.id)) {
69
- seenIds.add(link.scope.id);
70
- options.push({ label: link.scope.name, value: link.scope.id });
71
- }
72
- }
73
- return options;
74
- });
75
- }
76
- function buildWorkflowOptions(token) {
77
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
78
- const workflows = yield savvyCalPaginatedCall({ token, path: '/workflows' });
79
- return workflows.map((w) => ({ label: w.name, value: w.id }));
80
- });
81
- }
82
- function buildLinkOptions(token, teamId) {
83
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
84
- const links = yield savvyCalPaginatedCall({ token, path: '/links' });
85
- const filtered = teamId
86
- ? teamId === 'personal'
87
- ? links.filter((l) => l.scope === null)
88
- : links.filter((l) => { var _a; return ((_a = l.scope) === null || _a === void 0 ? void 0 : _a.id) === teamId; })
89
- : links;
90
- return filtered.map((l) => ({ label: `${l.name} (${l.slug})`, value: l.id }));
91
- });
92
- }
93
- function flattenLink(link) {
94
- var _a, _b, _c, _d, _e, _f, _g;
95
- return {
96
- id: link.id,
97
- name: link.name,
98
- slug: link.slug,
99
- url: (_a = link.url) !== null && _a !== void 0 ? _a : null,
100
- active: (_b = link.active) !== null && _b !== void 0 ? _b : null,
101
- duration_minutes: (_c = link.duration) !== null && _c !== void 0 ? _c : null,
102
- team_id: (_e = (_d = link.scope) === null || _d === void 0 ? void 0 : _d.id) !== null && _e !== void 0 ? _e : null,
103
- team_name: (_g = (_f = link.scope) === null || _f === void 0 ? void 0 : _f.name) !== null && _g !== void 0 ? _g : null,
104
- created_at: link.created_at,
105
- updated_at: link.updated_at,
106
- };
107
- }
108
- function flattenEvent(event) {
109
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4, _5, _6, _7, _8, _9, _10, _11, _12, _13, _14, _15, _16, _17, _18;
110
- const scheduler = (_b = (_a = event.attendees) === null || _a === void 0 ? void 0 : _a.find((a) => !a.is_organizer)) !== null && _b !== void 0 ? _b : null;
111
- const organizer = (_d = (_c = event.attendees) === null || _c === void 0 ? void 0 : _c.find((a) => a.is_organizer)) !== null && _d !== void 0 ? _d : null;
112
- return {
113
- id: event.id,
114
- uuid: (_e = event.uuid) !== null && _e !== void 0 ? _e : null,
115
- summary: (_f = event.summary) !== null && _f !== void 0 ? _f : null,
116
- description: (_g = event.description) !== null && _g !== void 0 ? _g : null,
117
- state: event.state,
118
- start_at: event.start_at,
119
- end_at: event.end_at,
120
- duration_minutes: (_h = event.duration) !== null && _h !== void 0 ? _h : null,
121
- url: (_j = event.url) !== null && _j !== void 0 ? _j : null,
122
- location: (_k = event.location) !== null && _k !== void 0 ? _k : null,
123
- is_group_session: (_l = event.is_group_session) !== null && _l !== void 0 ? _l : null,
124
- created_at: event.created_at,
125
- canceled_at: (_m = event.canceled_at) !== null && _m !== void 0 ? _m : null,
126
- cancel_reason: (_o = event.cancel_reason) !== null && _o !== void 0 ? _o : null,
127
- rescheduled_at: (_p = event.rescheduled_at) !== null && _p !== void 0 ? _p : null,
128
- reschedule_reason: (_q = event.reschedule_reason) !== null && _q !== void 0 ? _q : null,
129
- original_start_at: (_r = event.original_start_at) !== null && _r !== void 0 ? _r : null,
130
- original_end_at: (_s = event.original_end_at) !== null && _s !== void 0 ? _s : null,
131
- scheduling_link_id: (_u = (_t = event.link) === null || _t === void 0 ? void 0 : _t.id) !== null && _u !== void 0 ? _u : null,
132
- scheduling_link_name: (_w = (_v = event.link) === null || _v === void 0 ? void 0 : _v.name) !== null && _w !== void 0 ? _w : null,
133
- scheduling_link_slug: (_y = (_x = event.link) === null || _x === void 0 ? void 0 : _x.slug) !== null && _y !== void 0 ? _y : null,
134
- attendee_display_name: (_z = scheduler === null || scheduler === void 0 ? void 0 : scheduler.display_name) !== null && _z !== void 0 ? _z : null,
135
- attendee_first_name: (_0 = scheduler === null || scheduler === void 0 ? void 0 : scheduler.first_name) !== null && _0 !== void 0 ? _0 : null,
136
- attendee_last_name: (_1 = scheduler === null || scheduler === void 0 ? void 0 : scheduler.last_name) !== null && _1 !== void 0 ? _1 : null,
137
- attendee_email: (_2 = scheduler === null || scheduler === void 0 ? void 0 : scheduler.email) !== null && _2 !== void 0 ? _2 : null,
138
- attendee_phone: (_3 = scheduler === null || scheduler === void 0 ? void 0 : scheduler.phone_number) !== null && _3 !== void 0 ? _3 : null,
139
- attendee_time_zone: (_4 = scheduler === null || scheduler === void 0 ? void 0 : scheduler.time_zone) !== null && _4 !== void 0 ? _4 : null,
140
- organizer_display_name: (_5 = organizer === null || organizer === void 0 ? void 0 : organizer.display_name) !== null && _5 !== void 0 ? _5 : null,
141
- organizer_first_name: (_6 = organizer === null || organizer === void 0 ? void 0 : organizer.first_name) !== null && _6 !== void 0 ? _6 : null,
142
- organizer_last_name: (_7 = organizer === null || organizer === void 0 ? void 0 : organizer.last_name) !== null && _7 !== void 0 ? _7 : null,
143
- organizer_email: (_8 = organizer === null || organizer === void 0 ? void 0 : organizer.email) !== null && _8 !== void 0 ? _8 : null,
144
- conferencing_type: (_10 = (_9 = event.conferencing) === null || _9 === void 0 ? void 0 : _9.type) !== null && _10 !== void 0 ? _10 : null,
145
- conferencing_join_url: (_12 = (_11 = event.conferencing) === null || _11 === void 0 ? void 0 : _11.join_url) !== null && _12 !== void 0 ? _12 : null,
146
- conferencing_meeting_id: (_14 = (_13 = event.conferencing) === null || _13 === void 0 ? void 0 : _13.meeting_id) !== null && _14 !== void 0 ? _14 : null,
147
- payment_state: (_16 = (_15 = event.payment) === null || _15 === void 0 ? void 0 : _15.state) !== null && _16 !== void 0 ? _16 : null,
148
- payment_amount_total_cents: (_18 = (_17 = event.payment) === null || _17 === void 0 ? void 0 : _17.amount_total) !== null && _18 !== void 0 ? _18 : null,
149
- };
150
- }
151
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/lib/common/index.ts"],"names":[],"mappings":"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"}
@@ -1,42 +0,0 @@
1
- import { TriggerStrategy } from '@activepieces/pieces-framework';
2
- export declare const newEventTrigger: import("@activepieces/pieces-framework").ITrigger<TriggerStrategy.WEBHOOK, (import("@activepieces/pieces-framework").OAuth2Property<import("@activepieces/pieces-framework").OAuth2Props> | import("@activepieces/pieces-framework").CustomAuthProperty<{
3
- token: import("@activepieces/pieces-framework").SecretTextProperty<true>;
4
- }>)[], {
5
- event_types: import("@activepieces/pieces-framework").StaticMultiSelectDropdownProperty<string, false>;
6
- team_id: import("@activepieces/pieces-framework").DropdownProperty<string, false, (import("@activepieces/pieces-framework").OAuth2Property<import("@activepieces/pieces-framework").OAuth2Props> | import("@activepieces/pieces-framework").CustomAuthProperty<{
7
- token: import("@activepieces/pieces-framework").SecretTextProperty<true>;
8
- }>)[]>;
9
- link_ids: import("@activepieces/pieces-framework").MultiSelectDropdownProperty<string, false, (import("@activepieces/pieces-framework").OAuth2Property<import("@activepieces/pieces-framework").OAuth2Props> | import("@activepieces/pieces-framework").CustomAuthProperty<{
10
- token: import("@activepieces/pieces-framework").SecretTextProperty<true>;
11
- }>)[]>;
12
- }> | import("@activepieces/pieces-framework").ITrigger<TriggerStrategy.POLLING, (import("@activepieces/pieces-framework").OAuth2Property<import("@activepieces/pieces-framework").OAuth2Props> | import("@activepieces/pieces-framework").CustomAuthProperty<{
13
- token: import("@activepieces/pieces-framework").SecretTextProperty<true>;
14
- }>)[], {
15
- event_types: import("@activepieces/pieces-framework").StaticMultiSelectDropdownProperty<string, false>;
16
- team_id: import("@activepieces/pieces-framework").DropdownProperty<string, false, (import("@activepieces/pieces-framework").OAuth2Property<import("@activepieces/pieces-framework").OAuth2Props> | import("@activepieces/pieces-framework").CustomAuthProperty<{
17
- token: import("@activepieces/pieces-framework").SecretTextProperty<true>;
18
- }>)[]>;
19
- link_ids: import("@activepieces/pieces-framework").MultiSelectDropdownProperty<string, false, (import("@activepieces/pieces-framework").OAuth2Property<import("@activepieces/pieces-framework").OAuth2Props> | import("@activepieces/pieces-framework").CustomAuthProperty<{
20
- token: import("@activepieces/pieces-framework").SecretTextProperty<true>;
21
- }>)[]>;
22
- }> | import("@activepieces/pieces-framework").ITrigger<TriggerStrategy.MANUAL, (import("@activepieces/pieces-framework").OAuth2Property<import("@activepieces/pieces-framework").OAuth2Props> | import("@activepieces/pieces-framework").CustomAuthProperty<{
23
- token: import("@activepieces/pieces-framework").SecretTextProperty<true>;
24
- }>)[], {
25
- event_types: import("@activepieces/pieces-framework").StaticMultiSelectDropdownProperty<string, false>;
26
- team_id: import("@activepieces/pieces-framework").DropdownProperty<string, false, (import("@activepieces/pieces-framework").OAuth2Property<import("@activepieces/pieces-framework").OAuth2Props> | import("@activepieces/pieces-framework").CustomAuthProperty<{
27
- token: import("@activepieces/pieces-framework").SecretTextProperty<true>;
28
- }>)[]>;
29
- link_ids: import("@activepieces/pieces-framework").MultiSelectDropdownProperty<string, false, (import("@activepieces/pieces-framework").OAuth2Property<import("@activepieces/pieces-framework").OAuth2Props> | import("@activepieces/pieces-framework").CustomAuthProperty<{
30
- token: import("@activepieces/pieces-framework").SecretTextProperty<true>;
31
- }>)[]>;
32
- }> | import("@activepieces/pieces-framework").ITrigger<TriggerStrategy.APP_WEBHOOK, (import("@activepieces/pieces-framework").OAuth2Property<import("@activepieces/pieces-framework").OAuth2Props> | import("@activepieces/pieces-framework").CustomAuthProperty<{
33
- token: import("@activepieces/pieces-framework").SecretTextProperty<true>;
34
- }>)[], {
35
- event_types: import("@activepieces/pieces-framework").StaticMultiSelectDropdownProperty<string, false>;
36
- team_id: import("@activepieces/pieces-framework").DropdownProperty<string, false, (import("@activepieces/pieces-framework").OAuth2Property<import("@activepieces/pieces-framework").OAuth2Props> | import("@activepieces/pieces-framework").CustomAuthProperty<{
37
- token: import("@activepieces/pieces-framework").SecretTextProperty<true>;
38
- }>)[]>;
39
- link_ids: import("@activepieces/pieces-framework").MultiSelectDropdownProperty<string, false, (import("@activepieces/pieces-framework").OAuth2Property<import("@activepieces/pieces-framework").OAuth2Props> | import("@activepieces/pieces-framework").CustomAuthProperty<{
40
- token: import("@activepieces/pieces-framework").SecretTextProperty<true>;
41
- }>)[]>;
42
- }>;
@@ -1,193 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.newEventTrigger = void 0;
4
- const tslib_1 = require("tslib");
5
- const pieces_framework_1 = require("@activepieces/pieces-framework");
6
- const pieces_common_1 = require("@activepieces/pieces-common");
7
- const common_1 = require("../common");
8
- const auth_1 = require("../auth");
9
- const EVENT_TYPES = [
10
- { label: 'Event Created', value: 'event.created' },
11
- { label: 'Event Requested', value: 'event.requested' },
12
- { label: 'Event Approved', value: 'event.approved' },
13
- { label: 'Event Declined', value: 'event.declined' },
14
- { label: 'Event Rescheduled', value: 'event.rescheduled' },
15
- { label: 'Event Changed', value: 'event.changed' },
16
- { label: 'Event Canceled', value: 'event.canceled' },
17
- { label: 'Checkout Pending', value: 'event.checkout.pending' },
18
- { label: 'Checkout Expired', value: 'event.checkout.expired' },
19
- { label: 'Checkout Completed', value: 'event.checkout.completed' },
20
- { label: 'Attendee Added', value: 'event.attendee.added' },
21
- { label: 'Attendee Canceled', value: 'event.attendee.canceled' },
22
- { label: 'Attendee Rescheduled', value: 'event.attendee.rescheduled' },
23
- ];
24
- const EVENT_VALUES = EVENT_TYPES.map((t) => t.value);
25
- exports.newEventTrigger = (0, pieces_framework_1.createTrigger)({
26
- auth: auth_1.savvyCalAuth,
27
- name: 'new_event',
28
- displayName: 'New Event',
29
- description: 'Triggers when a SavvyCal event occurs. Select one or more event types, or leave empty to trigger on all types.',
30
- aiMetadata: {
31
- description: 'Fires when a SavvyCal booking-level event occurs via webhook — covering created, requested, approved, declined, rescheduled, changed, canceled, checkout state changes, and attendee add/cancel/reschedule. Can be scoped to specific event types and/or scheduling links, or left open to fire on every booking event. Each firing represents one such event with the affected booking\'s details.',
32
- },
33
- props: {
34
- event_types: pieces_framework_1.Property.StaticMultiSelectDropdown({
35
- displayName: 'Event Types',
36
- description: 'Select which event types to trigger on. Leave empty to trigger on all event types.',
37
- required: false,
38
- options: {
39
- options: EVENT_TYPES,
40
- },
41
- }),
42
- team_id: pieces_framework_1.Property.Dropdown({
43
- auth: auth_1.savvyCalAuth,
44
- displayName: 'Team',
45
- description: 'Filter scheduling links by team. Leave empty to show all teams.',
46
- refreshers: [],
47
- required: false,
48
- options: (_a) => tslib_1.__awaiter(void 0, [_a], void 0, function* ({ auth }) {
49
- if (!auth)
50
- return { disabled: true, options: [], placeholder: 'Please connect your account first' };
51
- try {
52
- const options = yield (0, common_1.buildTeamOptions)((0, auth_1.getToken)(auth));
53
- return { disabled: false, options };
54
- }
55
- catch (_b) {
56
- return { disabled: true, options: [], placeholder: 'Failed to load teams.' };
57
- }
58
- }),
59
- }),
60
- link_ids: pieces_framework_1.Property.MultiSelectDropdown({
61
- auth: auth_1.savvyCalAuth,
62
- displayName: 'Scheduling Links',
63
- description: 'Only trigger for events on the selected scheduling links. Leave empty to trigger for all links.',
64
- refreshers: ['team_id'],
65
- required: false,
66
- options: (_a) => tslib_1.__awaiter(void 0, [_a], void 0, function* ({ auth, team_id }) {
67
- if (!auth)
68
- return { disabled: true, options: [], placeholder: 'Please connect your account first' };
69
- try {
70
- const options = yield (0, common_1.buildLinkOptions)((0, auth_1.getToken)(auth), team_id);
71
- return { disabled: false, options };
72
- }
73
- catch (_b) {
74
- return { disabled: true, options: [], placeholder: 'Failed to load scheduling links.' };
75
- }
76
- }),
77
- }),
78
- },
79
- sampleData: {
80
- event_type: 'event.created',
81
- id: 'evt_abc123',
82
- uuid: '550e8400-e29b-41d4-a716-446655440000',
83
- summary: '30 Minute Meeting with Jane Doe',
84
- description: null,
85
- state: 'confirmed',
86
- start_at: '2024-06-01T10:00:00Z',
87
- end_at: '2024-06-01T10:30:00Z',
88
- duration_minutes: 30,
89
- url: 'https://savvycal.com/events/evt_abc123',
90
- location: null,
91
- is_group_session: false,
92
- created_at: '2024-05-20T08:00:00Z',
93
- canceled_at: null,
94
- cancel_reason: null,
95
- rescheduled_at: null,
96
- reschedule_reason: null,
97
- original_start_at: null,
98
- original_end_at: null,
99
- scheduling_link_id: 'lnk_xyz789',
100
- scheduling_link_name: '30-Minute Meeting',
101
- scheduling_link_slug: '30min',
102
- attendee_display_name: 'Jane Doe',
103
- attendee_first_name: 'Jane',
104
- attendee_last_name: 'Doe',
105
- attendee_email: 'jane@example.com',
106
- attendee_phone: null,
107
- attendee_time_zone: 'America/Chicago',
108
- organizer_display_name: 'John Smith',
109
- organizer_first_name: 'John',
110
- organizer_last_name: 'Smith',
111
- organizer_email: 'john@company.com',
112
- conferencing_type: 'zoom',
113
- conferencing_join_url: 'https://zoom.us/j/123456789',
114
- conferencing_meeting_id: '123456789',
115
- payment_state: null,
116
- payment_amount_total_cents: null,
117
- },
118
- type: pieces_framework_1.TriggerStrategy.WEBHOOK,
119
- onEnable(context) {
120
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
121
- const response = yield (0, common_1.savvyCalApiCall)({
122
- token: (0, auth_1.getToken)(context.auth),
123
- method: pieces_common_1.HttpMethod.POST,
124
- path: '/webhooks',
125
- body: { url: context.webhookUrl },
126
- });
127
- yield context.store.put('webhookId', response.body.id);
128
- yield context.store.put('webhookSecret', response.body.secret);
129
- });
130
- },
131
- onDisable(context) {
132
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
133
- const webhookId = yield context.store.get('webhookId');
134
- if (webhookId) {
135
- yield (0, common_1.savvyCalApiCall)({
136
- token: (0, auth_1.getToken)(context.auth),
137
- method: pieces_common_1.HttpMethod.DELETE,
138
- path: `/webhooks/${webhookId}`,
139
- });
140
- }
141
- });
142
- },
143
- run(context) {
144
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
145
- var _a, _b;
146
- const secret = yield context.store.get('webhookSecret');
147
- const signature = context.payload.headers['x-savvycal-signature'];
148
- if (secret && (!signature || !(0, common_1.verifyWebhookSignature)(secret, signature, context.payload.rawBody))) {
149
- return [];
150
- }
151
- const body = context.payload.body;
152
- if (!(body === null || body === void 0 ? void 0 : body.payload))
153
- return [];
154
- // Only handle event.* types — poll.response.* and workflow.action.triggered
155
- // have different payload structures and are handled by their own triggers.
156
- if (!EVENT_VALUES.includes(body.type))
157
- return [];
158
- const selectedTypes = context.propsValue.event_types;
159
- if (selectedTypes && selectedTypes.length > 0 && !selectedTypes.includes(body.type))
160
- return [];
161
- const selectedLinkIds = context.propsValue.link_ids;
162
- const linkId = (_b = (_a = body.payload) === null || _a === void 0 ? void 0 : _a.link) === null || _b === void 0 ? void 0 : _b.id;
163
- if (selectedLinkIds && selectedLinkIds.length > 0 && linkId != null && !selectedLinkIds.includes(linkId))
164
- return [];
165
- const payload = (0, common_1.flattenEvent)(body.payload);
166
- return [Object.assign({ event_type: body.type }, payload)];
167
- });
168
- },
169
- test(context) {
170
- return tslib_1.__awaiter(this, void 0, void 0, function* () {
171
- var _a;
172
- const selectedTypes = context.propsValue.event_types;
173
- const selectedLinkIds = context.propsValue.link_ids;
174
- const queryParams = { limit: '10' };
175
- if (selectedLinkIds && selectedLinkIds.length === 1)
176
- queryParams['link_id'] = selectedLinkIds[0];
177
- const response = yield (0, common_1.savvyCalApiCall)({
178
- token: (0, auth_1.getToken)(context.auth),
179
- method: pieces_common_1.HttpMethod.GET,
180
- path: '/events',
181
- queryParams,
182
- });
183
- const events = selectedLinkIds && selectedLinkIds.length > 1
184
- ? response.body.entries.filter((e) => { var _a, _b; return selectedLinkIds.includes((_b = (_a = e.link) === null || _a === void 0 ? void 0 : _a.id) !== null && _b !== void 0 ? _b : ''); })
185
- : response.body.entries;
186
- // Honour the user's first selected type so the preview matches what they'll actually receive;
187
- // fall back to event.created when no filter is set.
188
- const previewType = (_a = selectedTypes === null || selectedTypes === void 0 ? void 0 : selectedTypes[0]) !== null && _a !== void 0 ? _a : 'event.created';
189
- return events.slice(0, 5).map((e) => (Object.assign({ event_type: previewType }, (0, common_1.flattenEvent)(e))));
190
- });
191
- },
192
- });
193
- //# sourceMappingURL=new-event.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"new-event.js","sourceRoot":"","sources":["../../../../src/lib/triggers/new-event.ts"],"names":[],"mappings":"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"}
@@ -1,18 +0,0 @@
1
- import { TriggerStrategy } from '@activepieces/pieces-framework';
2
- export declare const newPollResponseTrigger: import("@activepieces/pieces-framework").ITrigger<TriggerStrategy.WEBHOOK, (import("@activepieces/pieces-framework").OAuth2Property<import("@activepieces/pieces-framework").OAuth2Props> | import("@activepieces/pieces-framework").CustomAuthProperty<{
3
- token: import("@activepieces/pieces-framework").SecretTextProperty<true>;
4
- }>)[], {
5
- event_types: import("@activepieces/pieces-framework").StaticMultiSelectDropdownProperty<string, false>;
6
- }> | import("@activepieces/pieces-framework").ITrigger<TriggerStrategy.POLLING, (import("@activepieces/pieces-framework").OAuth2Property<import("@activepieces/pieces-framework").OAuth2Props> | import("@activepieces/pieces-framework").CustomAuthProperty<{
7
- token: import("@activepieces/pieces-framework").SecretTextProperty<true>;
8
- }>)[], {
9
- event_types: import("@activepieces/pieces-framework").StaticMultiSelectDropdownProperty<string, false>;
10
- }> | import("@activepieces/pieces-framework").ITrigger<TriggerStrategy.MANUAL, (import("@activepieces/pieces-framework").OAuth2Property<import("@activepieces/pieces-framework").OAuth2Props> | import("@activepieces/pieces-framework").CustomAuthProperty<{
11
- token: import("@activepieces/pieces-framework").SecretTextProperty<true>;
12
- }>)[], {
13
- event_types: import("@activepieces/pieces-framework").StaticMultiSelectDropdownProperty<string, false>;
14
- }> | import("@activepieces/pieces-framework").ITrigger<TriggerStrategy.APP_WEBHOOK, (import("@activepieces/pieces-framework").OAuth2Property<import("@activepieces/pieces-framework").OAuth2Props> | import("@activepieces/pieces-framework").CustomAuthProperty<{
15
- token: import("@activepieces/pieces-framework").SecretTextProperty<true>;
16
- }>)[], {
17
- event_types: import("@activepieces/pieces-framework").StaticMultiSelectDropdownProperty<string, false>;
18
- }>;