@decaf-ts/integrations 0.12.0 → 0.14.2
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/integrations.cjs +1 -1
- package/lib/cjs/calendar/environment.cjs +48 -0
- package/lib/cjs/calendar/environment.cjs.map +1 -0
- package/lib/cjs/calendar/google-calendar/GoogleCalendarService.cjs +338 -0
- package/lib/cjs/calendar/google-calendar/GoogleCalendarService.cjs.map +1 -0
- package/lib/cjs/calendar/google-calendar/index.cjs +20 -0
- package/lib/cjs/calendar/google-calendar/index.cjs.map +1 -0
- package/lib/cjs/comms/discord/DiscordService.cjs +318 -0
- package/lib/cjs/comms/discord/DiscordService.cjs.map +1 -0
- package/lib/cjs/comms/discord/index.cjs +19 -0
- package/lib/cjs/comms/discord/index.cjs.map +1 -0
- package/lib/cjs/comms/environment.cjs +16 -0
- package/lib/cjs/comms/environment.cjs.map +1 -1
- package/lib/cjs/comms/index.cjs +3 -0
- package/lib/cjs/comms/index.cjs.map +1 -1
- package/lib/cjs/comms/outlook/MicrosoftOutlookService.cjs +325 -0
- package/lib/cjs/comms/outlook/MicrosoftOutlookService.cjs.map +1 -0
- package/lib/cjs/comms/outlook/index.cjs +19 -0
- package/lib/cjs/comms/outlook/index.cjs.map +1 -0
- package/lib/cjs/comms/whatsapp/WhatsAppService.cjs +274 -0
- package/lib/cjs/comms/whatsapp/WhatsAppService.cjs.map +1 -0
- package/lib/cjs/comms/whatsapp/index.cjs +19 -0
- package/lib/cjs/comms/whatsapp/index.cjs.map +1 -0
- package/lib/cjs/index.cjs +3 -3
- package/lib/cjs/io/confluence/ConfluenceService.cjs +317 -0
- package/lib/cjs/io/confluence/ConfluenceService.cjs.map +1 -0
- package/lib/cjs/io/confluence/index.cjs +19 -0
- package/lib/cjs/io/confluence/index.cjs.map +1 -0
- package/lib/cjs/io/environment.cjs +28 -0
- package/lib/cjs/io/environment.cjs.map +1 -1
- package/lib/cjs/io/google-docs/GoogleDocsService.cjs +275 -0
- package/lib/cjs/io/google-docs/GoogleDocsService.cjs.map +1 -0
- package/lib/cjs/io/google-docs/index.cjs +19 -0
- package/lib/cjs/io/google-docs/index.cjs.map +1 -0
- package/lib/cjs/io/index.cjs +5 -0
- package/lib/cjs/io/index.cjs.map +1 -1
- package/lib/cjs/io/jira/JiraService.cjs +354 -0
- package/lib/cjs/io/jira/JiraService.cjs.map +1 -0
- package/lib/cjs/io/jira/index.cjs +19 -0
- package/lib/cjs/io/jira/index.cjs.map +1 -0
- package/lib/cjs/io/microsoft-excel/MicrosoftExcelService.cjs +253 -0
- package/lib/cjs/io/microsoft-excel/MicrosoftExcelService.cjs.map +1 -0
- package/lib/cjs/io/microsoft-excel/index.cjs +19 -0
- package/lib/cjs/io/microsoft-excel/index.cjs.map +1 -0
- package/lib/cjs/io/microsoft-sharepoint/MicrosoftSharePointService.cjs +261 -0
- package/lib/cjs/io/microsoft-sharepoint/MicrosoftSharePointService.cjs.map +1 -0
- package/lib/cjs/io/microsoft-sharepoint/index.cjs +19 -0
- package/lib/cjs/io/microsoft-sharepoint/index.cjs.map +1 -0
- package/lib/cjs/sftp/aws/index.cjs +24 -0
- package/lib/cjs/sftp/aws/index.cjs.map +1 -0
- package/lib/cjs/sftp/ssh2/index.cjs +24 -0
- package/lib/cjs/sftp/ssh2/index.cjs.map +1 -0
- package/lib/esm/calendar/environment.js +44 -0
- package/lib/esm/calendar/environment.js.map +1 -0
- package/lib/esm/calendar/google-calendar/GoogleCalendarService.js +333 -0
- package/lib/esm/calendar/google-calendar/GoogleCalendarService.js.map +1 -0
- package/lib/esm/calendar/google-calendar/index.js +3 -0
- package/lib/esm/calendar/google-calendar/index.js.map +1 -0
- package/lib/esm/comms/discord/DiscordService.js +313 -0
- package/lib/esm/comms/discord/DiscordService.js.map +1 -0
- package/lib/esm/comms/discord/index.js +2 -0
- package/lib/esm/comms/discord/index.js.map +1 -0
- package/lib/esm/comms/environment.js +16 -0
- package/lib/esm/comms/environment.js.map +1 -1
- package/lib/esm/comms/index.js +3 -0
- package/lib/esm/comms/index.js.map +1 -1
- package/lib/esm/comms/outlook/MicrosoftOutlookService.js +320 -0
- package/lib/esm/comms/outlook/MicrosoftOutlookService.js.map +1 -0
- package/lib/esm/comms/outlook/index.js +2 -0
- package/lib/esm/comms/outlook/index.js.map +1 -0
- package/lib/esm/comms/whatsapp/WhatsAppService.js +269 -0
- package/lib/esm/comms/whatsapp/WhatsAppService.js.map +1 -0
- package/lib/esm/comms/whatsapp/index.js +2 -0
- package/lib/esm/comms/whatsapp/index.js.map +1 -0
- package/lib/esm/index.js +3 -3
- package/lib/esm/io/confluence/ConfluenceService.js +312 -0
- package/lib/esm/io/confluence/ConfluenceService.js.map +1 -0
- package/lib/esm/io/confluence/index.js +2 -0
- package/lib/esm/io/confluence/index.js.map +1 -0
- package/lib/esm/io/environment.js +28 -0
- package/lib/esm/io/environment.js.map +1 -1
- package/lib/esm/io/google-docs/GoogleDocsService.js +270 -0
- package/lib/esm/io/google-docs/GoogleDocsService.js.map +1 -0
- package/lib/esm/io/google-docs/index.js +2 -0
- package/lib/esm/io/google-docs/index.js.map +1 -0
- package/lib/esm/io/index.js +5 -0
- package/lib/esm/io/index.js.map +1 -1
- package/lib/esm/io/jira/JiraService.js +349 -0
- package/lib/esm/io/jira/JiraService.js.map +1 -0
- package/lib/esm/io/jira/index.js +2 -0
- package/lib/esm/io/jira/index.js.map +1 -0
- package/lib/esm/io/microsoft-excel/MicrosoftExcelService.js +248 -0
- package/lib/esm/io/microsoft-excel/MicrosoftExcelService.js.map +1 -0
- package/lib/esm/io/microsoft-excel/index.js +2 -0
- package/lib/esm/io/microsoft-excel/index.js.map +1 -0
- package/lib/esm/io/microsoft-sharepoint/MicrosoftSharePointService.js +256 -0
- package/lib/esm/io/microsoft-sharepoint/MicrosoftSharePointService.js.map +1 -0
- package/lib/esm/io/microsoft-sharepoint/index.js +2 -0
- package/lib/esm/io/microsoft-sharepoint/index.js.map +1 -0
- package/lib/esm/sftp/aws/index.js +7 -0
- package/lib/esm/sftp/aws/index.js.map +1 -0
- package/lib/esm/sftp/ssh2/index.js +7 -0
- package/lib/esm/sftp/ssh2/index.js.map +1 -0
- package/lib/types/calendar/environment.d.cts +48 -0
- package/lib/types/calendar/environment.d.mts +48 -0
- package/lib/types/calendar/google-calendar/GoogleCalendarService.d.cts +316 -0
- package/lib/types/calendar/google-calendar/GoogleCalendarService.d.mts +316 -0
- package/lib/types/calendar/google-calendar/index.d.cts +2 -0
- package/lib/types/calendar/google-calendar/index.d.mts +2 -0
- package/lib/types/comms/discord/DiscordService.d.cts +285 -0
- package/lib/types/comms/discord/DiscordService.d.mts +285 -0
- package/lib/types/comms/discord/index.d.cts +1 -0
- package/lib/types/comms/discord/index.d.mts +1 -0
- package/lib/types/comms/environment.d.cts +34 -8
- package/lib/types/comms/environment.d.mts +34 -8
- package/lib/types/comms/index.d.cts +3 -0
- package/lib/types/comms/index.d.mts +3 -0
- package/lib/types/comms/outlook/MicrosoftOutlookService.d.cts +282 -0
- package/lib/types/comms/outlook/MicrosoftOutlookService.d.mts +282 -0
- package/lib/types/comms/outlook/index.d.cts +1 -0
- package/lib/types/comms/outlook/index.d.mts +1 -0
- package/lib/types/comms/whatsapp/WhatsAppService.d.cts +258 -0
- package/lib/types/comms/whatsapp/WhatsAppService.d.mts +258 -0
- package/lib/types/comms/whatsapp/index.d.cts +1 -0
- package/lib/types/comms/whatsapp/index.d.mts +1 -0
- package/lib/types/index.d.cts +2 -2
- package/lib/types/index.d.mts +2 -2
- package/lib/types/io/confluence/ConfluenceService.d.cts +250 -0
- package/lib/types/io/confluence/ConfluenceService.d.mts +250 -0
- package/lib/types/io/confluence/index.d.cts +1 -0
- package/lib/types/io/confluence/index.d.mts +1 -0
- package/lib/types/io/environment.d.cts +52 -12
- package/lib/types/io/environment.d.mts +52 -12
- package/lib/types/io/google-docs/GoogleDocsService.d.cts +188 -0
- package/lib/types/io/google-docs/GoogleDocsService.d.mts +188 -0
- package/lib/types/io/google-docs/index.d.cts +1 -0
- package/lib/types/io/google-docs/index.d.mts +1 -0
- package/lib/types/io/index.d.cts +5 -0
- package/lib/types/io/index.d.mts +5 -0
- package/lib/types/io/jira/JiraService.d.cts +300 -0
- package/lib/types/io/jira/JiraService.d.mts +300 -0
- package/lib/types/io/jira/index.d.cts +1 -0
- package/lib/types/io/jira/index.d.mts +1 -0
- package/lib/types/io/microsoft-excel/MicrosoftExcelService.d.cts +230 -0
- package/lib/types/io/microsoft-excel/MicrosoftExcelService.d.mts +230 -0
- package/lib/types/io/microsoft-excel/index.d.cts +1 -0
- package/lib/types/io/microsoft-excel/index.d.mts +1 -0
- package/lib/types/io/microsoft-sharepoint/MicrosoftSharePointService.d.cts +226 -0
- package/lib/types/io/microsoft-sharepoint/MicrosoftSharePointService.d.mts +226 -0
- package/lib/types/io/microsoft-sharepoint/index.d.cts +1 -0
- package/lib/types/io/microsoft-sharepoint/index.d.mts +1 -0
- package/lib/types/sftp/aws/index.d.cts +6 -0
- package/lib/types/sftp/aws/index.d.mts +6 -0
- package/lib/types/sftp/ssh2/index.d.cts +6 -0
- package/lib/types/sftp/ssh2/index.d.mts +6 -0
- package/package.json +263 -59
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
/**
|
|
18
|
+
* @module integrations/sftp/ssh2
|
|
19
|
+
* @summary SSH2 SFTP integration exports.
|
|
20
|
+
*/
|
|
21
|
+
__exportStar(require("./Ssh2SftpService.cjs"), exports);
|
|
22
|
+
__exportStar(require("./Ssh2SftpEnvironment.cjs"), exports);
|
|
23
|
+
//# sourceMappingURL=index.js.map
|
|
24
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sftp/ssh2/index.cjs","sourceRoot":"","sources":["sftp/ssh2/index.js"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA;;;GAGG;AACH,uDAAqC;AACrC,2DAAyC;AACzC,iCAAiC"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module integrations/calendar/environment
|
|
3
|
+
* @summary Environment contract and accumulated environment for the calendar integration services.
|
|
4
|
+
* @description Declares the `CalendarEnvironmentShape` consumed by the Google
|
|
5
|
+
* Calendar service's `configFromEnvironment()` implementation and the
|
|
6
|
+
* `CalendarEnvironment` singleton created via `LoggedEnvironment.accumulate`.
|
|
7
|
+
* Services read their credentials and defaults from the matching
|
|
8
|
+
* `calendar.<provider>` slice, using the `envString`/`envNumber` helpers from
|
|
9
|
+
* `shared/environmentValue` to reject unset-leaf proxies. The matching public
|
|
10
|
+
* subpath export is `@decaf-ts/integrations/calendar/google-calendar`.
|
|
11
|
+
*/
|
|
12
|
+
import { LoggedEnvironment } from "@decaf-ts/logging";
|
|
13
|
+
/**
|
|
14
|
+
* @description Accumulated calendar environment singleton
|
|
15
|
+
* @summary The `LoggedEnvironment.accumulate`-registered instance backing the
|
|
16
|
+
* `CalendarEnvironmentShape` contract. The Google Calendar service reads
|
|
17
|
+
* `CalendarEnvironment.calendar.googleCalendar` inside
|
|
18
|
+
* `configFromEnvironment()` and translates it into its
|
|
19
|
+
* `HttpApiServiceConfig`-derived config. Credentials come from environment
|
|
20
|
+
* variables; for as-graph node usage those are provided as
|
|
21
|
+
* `GRAPH_CREDENTIAL_*` values (placeholders in this example).
|
|
22
|
+
* @example
|
|
23
|
+
* ```ts
|
|
24
|
+
* import { GoogleCalendarService } from "@decaf-ts/integrations/calendar/google-calendar";
|
|
25
|
+
*
|
|
26
|
+
* // with calendar.googleCalendar.token / calendarId configured in the environment
|
|
27
|
+
* const calendar = new GoogleCalendarService();
|
|
28
|
+
* await calendar.initialize();
|
|
29
|
+
* ```
|
|
30
|
+
* @constant {LoggedEnvironment} CalendarEnvironment
|
|
31
|
+
* @memberOf module:integrations/calendar/environment
|
|
32
|
+
*/
|
|
33
|
+
export const CalendarEnvironment = LoggedEnvironment.accumulate({
|
|
34
|
+
calendar: {
|
|
35
|
+
googleCalendar: {
|
|
36
|
+
token: "",
|
|
37
|
+
apiKey: "",
|
|
38
|
+
calendarId: "",
|
|
39
|
+
baseUrl: "",
|
|
40
|
+
timeout: undefined,
|
|
41
|
+
},
|
|
42
|
+
},
|
|
43
|
+
});
|
|
44
|
+
//# sourceMappingURL=environment.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"environment.js","sourceRoot":"","sources":["../../../src/calendar/environment.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AA0BtD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,iBAAiB,CAAC,UAAU,CAAC;IAC9D,QAAQ,EAAE;QACR,cAAc,EAAE;YACd,KAAK,EAAE,EAAE;YACT,MAAM,EAAE,EAAE;YACV,UAAU,EAAE,EAAE;YACd,OAAO,EAAE,EAAE;YACX,OAAO,EAAE,SAA8B;SACxC;KACF;CAC0B,CAAC,CAAC"}
|
|
@@ -0,0 +1,333 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module integrations/calendar/google-calendar/service
|
|
3
|
+
* @summary Google Calendar API integration service for calendars and events.
|
|
4
|
+
* @description Exposes Google Calendar `v3` operations (calendar list, event
|
|
5
|
+
* list/get/create/update/delete) as an undecorated client-based service built
|
|
6
|
+
* on {@link HttpApiService}. Configuration comes from an explicit
|
|
7
|
+
* `GoogleCalendarServiceConfig` or the `calendar.googleCalendar` environment
|
|
8
|
+
* slice. An OAuth access token is sent as a bearer token when present; an API
|
|
9
|
+
* key is added as the `key` query parameter when no token is available. A
|
|
10
|
+
* default `calendarId` may be configured and falls back to `"primary"`.
|
|
11
|
+
* Credentials are referenced from configuration (and, from as-graph nodes, from
|
|
12
|
+
* the resolved `google-calendar` credential secret) and are never embedded in
|
|
13
|
+
* source. Failures are mapped to decaf errors via {@link httpError}.
|
|
14
|
+
*/
|
|
15
|
+
import { InternalError } from "@decaf-ts/db-decorators";
|
|
16
|
+
import { CalendarEnvironment } from "./../environment.js";
|
|
17
|
+
import { envNumber, envString } from "./../../shared/environmentValue.js";
|
|
18
|
+
import { HttpApiService, httpError, } from "./../../shared/http/index.js";
|
|
19
|
+
/**
|
|
20
|
+
* @description Google Calendar API integration service
|
|
21
|
+
* @summary An undecorated HTTP service for listing calendars and events and
|
|
22
|
+
* for creating, reading, updating, and deleting events. Every operation needs
|
|
23
|
+
* either an OAuth token or an API key; missing credentials or identifiers raise
|
|
24
|
+
* `InternalError`, and transport failures are mapped to decaf errors via
|
|
25
|
+
* {@link httpError}.
|
|
26
|
+
* @class GoogleCalendarService
|
|
27
|
+
* @extends HttpApiService
|
|
28
|
+
* @category Calendar
|
|
29
|
+
* @example
|
|
30
|
+
* ```ts
|
|
31
|
+
* import { GoogleCalendarService } from "@decaf-ts/integrations/calendar/google-calendar";
|
|
32
|
+
*
|
|
33
|
+
* const calendar = new GoogleCalendarService();
|
|
34
|
+
* await calendar.initialize({
|
|
35
|
+
* token: process.env.GRAPH_CREDENTIAL_GOOGLE_CALENDAR_TOKEN,
|
|
36
|
+
* calendarId: "primary",
|
|
37
|
+
* });
|
|
38
|
+
* await calendar.listEvents({ timeMin: new Date().toISOString() });
|
|
39
|
+
* ```
|
|
40
|
+
* @mermaid
|
|
41
|
+
* sequenceDiagram
|
|
42
|
+
* autonumber
|
|
43
|
+
* participant Caller
|
|
44
|
+
* participant Service as GoogleCalendarService
|
|
45
|
+
* participant API as Google Calendar API
|
|
46
|
+
* Caller->>Service: createEvent(input)
|
|
47
|
+
* activate Service
|
|
48
|
+
* Service->>Service: requireAuth()
|
|
49
|
+
* Service->>API: POST /calendars/{id}/events
|
|
50
|
+
* activate API
|
|
51
|
+
* API-->>Service: created event
|
|
52
|
+
* deactivate API
|
|
53
|
+
* Service-->>Caller: created event
|
|
54
|
+
* deactivate Service
|
|
55
|
+
* @memberOf module:integrations/calendar/google-calendar/service
|
|
56
|
+
*/
|
|
57
|
+
export class GoogleCalendarService extends HttpApiService {
|
|
58
|
+
constructor() {
|
|
59
|
+
super(...arguments);
|
|
60
|
+
/**
|
|
61
|
+
* @description The provider name used in error messages
|
|
62
|
+
*/
|
|
63
|
+
this.serviceName = "Google Calendar";
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* @description The Google Calendar API base URL
|
|
67
|
+
* @summary Used when the resolved config carries no `baseUrl`.
|
|
68
|
+
* @returns {string} `"https://www.googleapis.com/calendar/v3"`.
|
|
69
|
+
*/
|
|
70
|
+
defaultBaseUrl() {
|
|
71
|
+
return "https://www.googleapis.com/calendar/v3";
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* @description Builds the Google Calendar authorization headers
|
|
75
|
+
* @summary Returns `Authorization: Bearer <token>` when an OAuth token is
|
|
76
|
+
* configured, and no headers otherwise (API keys travel as query parameters).
|
|
77
|
+
* @param {GoogleCalendarServiceConfig} config - The resolved service configuration.
|
|
78
|
+
* @returns {Record<string, string>} The authorization headers (empty without a token).
|
|
79
|
+
*/
|
|
80
|
+
authHeaders(config) {
|
|
81
|
+
if (config.token)
|
|
82
|
+
return { Authorization: `Bearer ${config.token}` };
|
|
83
|
+
return {};
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* @description Reads the Google Calendar credentials and defaults from the environment
|
|
87
|
+
* @summary Reads the `calendar.googleCalendar` slice and returns a partial
|
|
88
|
+
* config when a token or API key is configured, `undefined` otherwise. Values
|
|
89
|
+
* pass through `envString`/`envNumber` to reject unset-leaf proxies.
|
|
90
|
+
* @returns {Partial<GoogleCalendarServiceConfig> | undefined} A partial config, or `undefined` when no credential is configured.
|
|
91
|
+
*/
|
|
92
|
+
configFromEnvironment() {
|
|
93
|
+
const env = CalendarEnvironment.calendar.googleCalendar;
|
|
94
|
+
const token = envString(env?.token);
|
|
95
|
+
const apiKey = envString(env?.apiKey);
|
|
96
|
+
if (!token && !apiKey)
|
|
97
|
+
return undefined;
|
|
98
|
+
return {
|
|
99
|
+
token,
|
|
100
|
+
apiKey,
|
|
101
|
+
calendarId: envString(env.calendarId),
|
|
102
|
+
baseUrl: envString(env.baseUrl),
|
|
103
|
+
timeout: envNumber(env.timeout),
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* @description Asserts that an OAuth token or API key is configured
|
|
108
|
+
* @summary Called by every operation before it touches the network.
|
|
109
|
+
* @returns {void}
|
|
110
|
+
* @throws {InternalError} When neither a token nor an API key is configured.
|
|
111
|
+
*/
|
|
112
|
+
requireAuth() {
|
|
113
|
+
if (!this.config.token && !this.config.apiKey) {
|
|
114
|
+
throw new InternalError("Google Calendar requires an OAuth token or an API key");
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* @description Builds API-key query parameters when no OAuth token is set
|
|
119
|
+
* @summary Returns `{ key }` for API-key authentication, and an empty object
|
|
120
|
+
* when an OAuth token is used (or no API key is configured).
|
|
121
|
+
* @returns {Record<string, string>} The query parameters carrying the API key, if any.
|
|
122
|
+
*/
|
|
123
|
+
authParams() {
|
|
124
|
+
return this.config.token || !this.config.apiKey
|
|
125
|
+
? {}
|
|
126
|
+
: { key: this.config.apiKey };
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* @description Builds the encoded events path for a calendar
|
|
130
|
+
* @summary Resolves the calendar ID from the argument, the configured
|
|
131
|
+
* default, or `"primary"`, then encodes it into
|
|
132
|
+
* `/calendars/<id>/events`.
|
|
133
|
+
* @param {string} [calendarId] - Optional per-call calendar ID.
|
|
134
|
+
* @returns {string} The calendar events API path.
|
|
135
|
+
*/
|
|
136
|
+
calendarPath(calendarId) {
|
|
137
|
+
const id = calendarId ?? this.config.calendarId ?? "primary";
|
|
138
|
+
return `/calendars/${encodeURIComponent(id)}/events`;
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* @description Builds the Google Calendar start/end object
|
|
142
|
+
* @summary Emits `{ date }` for all-day values and `{ dateTime, timeZone? }`
|
|
143
|
+
* for values containing a `T` separator.
|
|
144
|
+
* @param {string} value - The date or date-time value.
|
|
145
|
+
* @param {string} [timeZone] - Optional IANA time zone for date-time values.
|
|
146
|
+
* @returns {Record<string, string>} The Calendar API time object.
|
|
147
|
+
*/
|
|
148
|
+
eventTime(value, timeZone) {
|
|
149
|
+
if (value.includes("T")) {
|
|
150
|
+
return { dateTime: value, ...(timeZone ? { timeZone } : {}) };
|
|
151
|
+
}
|
|
152
|
+
return { date: value };
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* @description Lists the calendars visible to the authenticated user
|
|
156
|
+
* @summary `GET`s `/users/me/calendarList` and returns the calendar list.
|
|
157
|
+
* @returns {Promise<unknown>} The calendar list payload.
|
|
158
|
+
* @throws {InternalError} When no credential is configured.
|
|
159
|
+
* @throws {BadRequestError} When Google rejects the request.
|
|
160
|
+
*/
|
|
161
|
+
async listCalendars() {
|
|
162
|
+
this.requireAuth();
|
|
163
|
+
try {
|
|
164
|
+
const response = await this.client.get("/users/me/calendarList", {
|
|
165
|
+
params: this.authParams(),
|
|
166
|
+
});
|
|
167
|
+
return response.data;
|
|
168
|
+
}
|
|
169
|
+
catch (error) {
|
|
170
|
+
throw httpError("Google Calendar", "list calendars", error);
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
/**
|
|
174
|
+
* @description Lists events in a calendar
|
|
175
|
+
* @summary `GET`s the calendar's events applying the optional time window,
|
|
176
|
+
* result cap, free-text query, and single-events flag.
|
|
177
|
+
* @param {GoogleCalendarListEventsInput} [input] - The calendar and event query options.
|
|
178
|
+
* @returns {Promise<unknown>} The event collection payload.
|
|
179
|
+
* @throws {InternalError} When no credential is configured.
|
|
180
|
+
* @throws {NotFoundError} When the calendar does not exist (HTTP 404).
|
|
181
|
+
* @throws {BadRequestError} When Google rejects the query.
|
|
182
|
+
*/
|
|
183
|
+
async listEvents(input = {}) {
|
|
184
|
+
this.requireAuth();
|
|
185
|
+
try {
|
|
186
|
+
const response = await this.client.get(this.calendarPath(input.calendarId), {
|
|
187
|
+
params: {
|
|
188
|
+
...this.authParams(),
|
|
189
|
+
...(input.timeMin ? { timeMin: input.timeMin } : {}),
|
|
190
|
+
...(input.timeMax ? { timeMax: input.timeMax } : {}),
|
|
191
|
+
...(input.maxResults !== undefined
|
|
192
|
+
? { maxResults: input.maxResults }
|
|
193
|
+
: {}),
|
|
194
|
+
...(input.q ? { q: input.q } : {}),
|
|
195
|
+
...(input.singleEvents !== undefined
|
|
196
|
+
? { singleEvents: input.singleEvents }
|
|
197
|
+
: {}),
|
|
198
|
+
},
|
|
199
|
+
});
|
|
200
|
+
return response.data;
|
|
201
|
+
}
|
|
202
|
+
catch (error) {
|
|
203
|
+
throw httpError("Google Calendar", "list events", error);
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
/**
|
|
207
|
+
* @description Creates a Google Calendar event
|
|
208
|
+
* @summary `POST`s the event to the resolved calendar; start/end values are
|
|
209
|
+
* normalized to Calendar time objects and attendees are mapped to
|
|
210
|
+
* `{ email }` entries.
|
|
211
|
+
* @param {GoogleCalendarEventInput} input - The event definition.
|
|
212
|
+
* @returns {Promise<unknown>} The created event payload.
|
|
213
|
+
* @throws {InternalError} When no credential is configured, or the summary, start, or end is missing.
|
|
214
|
+
* @throws {NotFoundError} When the calendar does not exist (HTTP 404).
|
|
215
|
+
* @throws {BadRequestError} When Google rejects the event.
|
|
216
|
+
* @example
|
|
217
|
+
* ```ts
|
|
218
|
+
* await calendar.createEvent({
|
|
219
|
+
* summary: "Release review",
|
|
220
|
+
* start: "2026-11-01T09:00:00Z",
|
|
221
|
+
* end: "2026-11-01T10:00:00Z",
|
|
222
|
+
* attendees: ["team@example.com"],
|
|
223
|
+
* });
|
|
224
|
+
* ```
|
|
225
|
+
*/
|
|
226
|
+
async createEvent(input) {
|
|
227
|
+
this.requireAuth();
|
|
228
|
+
if (!input.summary || !input.start || !input.end) {
|
|
229
|
+
throw new InternalError("Google Calendar createEvent requires summary, start, and end");
|
|
230
|
+
}
|
|
231
|
+
try {
|
|
232
|
+
const response = await this.client.post(this.calendarPath(input.calendarId), {
|
|
233
|
+
summary: input.summary,
|
|
234
|
+
...(input.description ? { description: input.description } : {}),
|
|
235
|
+
...(input.location ? { location: input.location } : {}),
|
|
236
|
+
start: this.eventTime(input.start, input.timeZone),
|
|
237
|
+
end: this.eventTime(input.end, input.timeZone),
|
|
238
|
+
...(input.attendees?.length
|
|
239
|
+
? { attendees: input.attendees.map((email) => ({ email })) }
|
|
240
|
+
: {}),
|
|
241
|
+
}, { params: this.authParams() });
|
|
242
|
+
return response.data;
|
|
243
|
+
}
|
|
244
|
+
catch (error) {
|
|
245
|
+
throw httpError("Google Calendar", "create event", error);
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
/**
|
|
249
|
+
* @description Fetches a single Google Calendar event
|
|
250
|
+
* @summary `GET`s the event from the given calendar.
|
|
251
|
+
* @param {string} calendarId - The calendar ID (empty falls back to the configured value or `primary`).
|
|
252
|
+
* @param {string} eventId - The event ID.
|
|
253
|
+
* @returns {Promise<unknown>} The event payload.
|
|
254
|
+
* @throws {InternalError} When no credential is configured or the event ID is empty.
|
|
255
|
+
* @throws {NotFoundError} When the event does not exist (HTTP 404).
|
|
256
|
+
* @throws {BadRequestError} When Google rejects the request.
|
|
257
|
+
*/
|
|
258
|
+
async getEvent(calendarId, eventId) {
|
|
259
|
+
this.requireAuth();
|
|
260
|
+
if (!eventId) {
|
|
261
|
+
throw new InternalError("Google Calendar requires an event id");
|
|
262
|
+
}
|
|
263
|
+
try {
|
|
264
|
+
const response = await this.client.get(`${this.calendarPath(calendarId)}/${encodeURIComponent(eventId)}`, { params: this.authParams() });
|
|
265
|
+
return response.data;
|
|
266
|
+
}
|
|
267
|
+
catch (error) {
|
|
268
|
+
throw httpError("Google Calendar", "get event", error);
|
|
269
|
+
}
|
|
270
|
+
}
|
|
271
|
+
/**
|
|
272
|
+
* @description Partially updates a Google Calendar event
|
|
273
|
+
* @summary `PATCH`es only the supplied fields on the event, normalizing
|
|
274
|
+
* start/end and attendee values; omitted fields are left unchanged.
|
|
275
|
+
* @param {string} eventId - The event ID to update.
|
|
276
|
+
* @param {GoogleCalendarEventUpdate} input - The fields to change.
|
|
277
|
+
* @returns {Promise<unknown>} The updated event payload.
|
|
278
|
+
* @throws {InternalError} When no credential is configured or the event ID is empty.
|
|
279
|
+
* @throws {NotFoundError} When the event does not exist (HTTP 404).
|
|
280
|
+
* @throws {BadRequestError} When Google rejects the update.
|
|
281
|
+
*/
|
|
282
|
+
async updateEvent(eventId, input) {
|
|
283
|
+
this.requireAuth();
|
|
284
|
+
if (!eventId) {
|
|
285
|
+
throw new InternalError("Google Calendar requires an event id");
|
|
286
|
+
}
|
|
287
|
+
try {
|
|
288
|
+
const response = await this.client.patch(`${this.calendarPath(input.calendarId)}/${encodeURIComponent(eventId)}`, {
|
|
289
|
+
...(input.summary ? { summary: input.summary } : {}),
|
|
290
|
+
...(input.description ? { description: input.description } : {}),
|
|
291
|
+
...(input.location ? { location: input.location } : {}),
|
|
292
|
+
...(input.start
|
|
293
|
+
? { start: this.eventTime(input.start, input.timeZone) }
|
|
294
|
+
: {}),
|
|
295
|
+
...(input.end
|
|
296
|
+
? { end: this.eventTime(input.end, input.timeZone) }
|
|
297
|
+
: {}),
|
|
298
|
+
...(input.attendees?.length
|
|
299
|
+
? { attendees: input.attendees.map((email) => ({ email })) }
|
|
300
|
+
: {}),
|
|
301
|
+
}, { params: this.authParams() });
|
|
302
|
+
return response.data;
|
|
303
|
+
}
|
|
304
|
+
catch (error) {
|
|
305
|
+
throw httpError("Google Calendar", "update event", error);
|
|
306
|
+
}
|
|
307
|
+
}
|
|
308
|
+
/**
|
|
309
|
+
* @description Deletes a Google Calendar event
|
|
310
|
+
* @summary `DELETE`s the event from the given calendar and returns
|
|
311
|
+
* `{ deleted: true, eventId }`.
|
|
312
|
+
* @param {string} calendarId - The calendar ID (empty falls back to the configured value or `primary`).
|
|
313
|
+
* @param {string} eventId - The event ID to delete.
|
|
314
|
+
* @returns {Promise<unknown>} `{ deleted: true, eventId }` on success.
|
|
315
|
+
* @throws {InternalError} When no credential is configured or the event ID is empty.
|
|
316
|
+
* @throws {NotFoundError} When the event does not exist (HTTP 404).
|
|
317
|
+
* @throws {BadRequestError} When Google rejects the deletion.
|
|
318
|
+
*/
|
|
319
|
+
async deleteEvent(calendarId, eventId) {
|
|
320
|
+
this.requireAuth();
|
|
321
|
+
if (!eventId) {
|
|
322
|
+
throw new InternalError("Google Calendar requires an event id");
|
|
323
|
+
}
|
|
324
|
+
try {
|
|
325
|
+
await this.client.delete(`${this.calendarPath(calendarId)}/${encodeURIComponent(eventId)}`, { params: this.authParams() });
|
|
326
|
+
return { deleted: true, eventId };
|
|
327
|
+
}
|
|
328
|
+
catch (error) {
|
|
329
|
+
throw httpError("Google Calendar", "delete event", error);
|
|
330
|
+
}
|
|
331
|
+
}
|
|
332
|
+
}
|
|
333
|
+
//# sourceMappingURL=GoogleCalendarService.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"GoogleCalendarService.js","sourceRoot":"","sources":["../../../../src/calendar/google-calendar/GoogleCalendarService.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/calendar/google-calendar/index.ts"],"names":[],"mappings":"AAAA,oCAA+B;AAC/B,2CAAwC"}
|