Compare commits

...
3 changed files with 32 additions and 16 deletions

No files matched your search

+1 -1
View File
@@ -43,7 +43,7 @@
"@octokit/auth-app": "^8.2.0",
"ical.js": "^2.2.1",
"maria2": "^0.4.1",
"node-ical": "^0.23.1",
"node-ical": "^0.25.6",
"octokit": "^5.0.5",
"proxmox-api": "1.1.1",
"tsdav": "^2.1.8",
@@ -68,15 +68,19 @@ export class NextcloudIntegration extends Integration implements ICalendarIntegr
return calendarEvents
.map((event) => {
// @ts-expect-error the typescript definitions for this package are wrong
// @ts-expect-error the TypeScript definitions for this package are wrong
// eslint-disable-next-line @typescript-eslint/no-unsafe-call,@typescript-eslint/no-unsafe-member-access
const icalData = ical.default.parseICS(event.data) as ical.CalendarResponse;
const veventObject = Object.values(icalData).find((data) => data.type === "VEVENT");
const veventObject = Object.values(icalData).find((data) => data?.type === "VEVENT");
if (!veventObject) {
throw new Error(`Invalid event data object: ${JSON.stringify(event.data)}. Unable to process the calendar.`);
}
if (!veventObject.end) {
throw new Error(`Event had no end date: ${JSON.stringify(event.data)}. Unable to process the calendar.`);
}
logger.debug(`Converting VEVENT event to ${event.etag} from Nextcloud: ${JSON.stringify(veventObject)}`);
const eventUrlWithoutHost = new URL(event.url).pathname;
@@ -92,13 +96,13 @@ export class NextcloudIntegration extends Integration implements ICalendarIntegr
const dateInMillis = utcStartDate.valueOf();
return {
title: veventObject.summary,
title: veventObject.summary as string,
subTitle: null,
description: veventObject.description,
description: veventObject.description as string,
startDate: utcStartDate,
endDate,
image: null,
location: veventObject.location || null,
location: (veventObject.location as string | undefined) ?? null,
indicatorColor:
"color" in veventObject && typeof veventObject.color === "string" ? veventObject.color : "#ff8600",
links: [
+22 -10
View File
@@ -1481,8 +1481,8 @@ importers:
specifier: ^0.4.1
version: 0.4.1
node-ical:
specifier: ^0.23.1
version: 0.23.1
specifier: ^0.25.6
version: 0.25.6
octokit:
specifier: ^5.0.5
version: 5.0.5
@@ -8465,8 +8465,8 @@ packages:
resolution: {integrity: sha512-LA4ZjwlnUblHVgq0oBF3Jl/6h/Nvs5fzBLwdEF4nuxnFdsfajde4WfxtJr3CaiH+F6ewcIB/q4jQ4UzPyid+CQ==}
hasBin: true
node-ical@0.23.1:
resolution: {integrity: sha512-4+FON2u++r7vU9VfTCris9hgxS5darN4P7aQZOJkzDazXLRS7cExb0G5OWO3CzRs8gHd5um1fdSMF0e45f7xAg==}
node-ical@0.25.6:
resolution: {integrity: sha512-Wo3GSBGYUNkcxOjHhevKTGa/+eB7ZwNLCq50h/eTX/YHSDZz1nT4KzXArO455CGHLD68gc5vw3nevqWQpOjjLQ==}
engines: {node: '>=18'}
node-loader@2.1.0:
@@ -9500,8 +9500,8 @@ packages:
rrdom@0.1.7:
resolution: {integrity: sha512-ZLd8f14z9pUy2Hk9y636cNv5Y2BMnNEY99wxzW9tD2BLDfe1xFxtLjB4q/xCBYo6HRe0wofzKzjm4JojmpBfFw==}
rrule-temporal@1.3.0:
resolution: {integrity: sha512-0duSf+wBX4FKNpznFDecEDkIzdoP7n3++Lt9TPpImhaRtENsa/qd3EhpV5Fi1TxVvBFN4ayOXVrK0aPvt+a80g==}
rrule-temporal@1.5.1:
resolution: {integrity: sha512-mV82lZ7OzMOXX5g+SCR8FWRMSvhTnPSznjQ2Vguezjz1nEPEv/Ap/Z/FsIZ/AxA15M9X99m05911/MCXFY+FsA==}
rrweb-player@1.0.0-alpha.4:
resolution: {integrity: sha512-Wlmn9GZ5Fdqa37vd3TzsYdLl/JWEvXNUrLCrYpnOwEgmY409HwVIvvA5aIo7k582LoKgdRCsB87N+f0oWAR0Kg==}
@@ -10024,6 +10024,12 @@ packages:
resolution: {integrity: sha512-nHc6S/bwIilKHNRgK/3jlhDoIHcp45YgyiwcAk46Tr0LfEqGBVpmiAyuiuxeVE44m3mXnEeVhaipLOEWmH+Njw==}
engines: {node: '>=14.16'}
temporal-polyfill@0.3.2:
resolution: {integrity: sha512-TzHthD/heRK947GNiSu3Y5gSPpeUDH34+LESnfsq8bqpFhsB79HFBX8+Z834IVX68P3EUyRPZK5bL/1fh437Eg==}
temporal-spec@0.3.1:
resolution: {integrity: sha512-B4TUhezh9knfSIMwt7RVggApDRJZo73uZdj8AacL2mZ8RP5KtLianh2MXxL06GN9ESYiIsiuoLQhgVfwe55Yhw==}
tempy@3.1.0:
resolution: {integrity: sha512-7jDLIdD2Zp0bDe5r3D2qtkd1QOCacylBuL7oa4udvN6v2pqr4+LcCr67C8DR1zkpaZ8XosF5m1yQSabKAW6f2g==}
engines: {node: '>=14.16'}
@@ -17702,10 +17708,10 @@ snapshots:
node-gyp-build@4.8.4: {}
node-ical@0.23.1:
node-ical@0.25.6:
dependencies:
'@js-temporal/polyfill': 0.5.1
rrule-temporal: 1.3.0
rrule-temporal: 1.5.1
temporal-polyfill: 0.3.2
node-loader@2.1.0(webpack@5.94.0):
dependencies:
@@ -18813,7 +18819,7 @@ snapshots:
dependencies:
rrweb-snapshot: 2.0.0-alpha.4
rrule-temporal@1.3.0:
rrule-temporal@1.5.1:
dependencies:
'@js-temporal/polyfill': 0.5.1
@@ -19555,6 +19561,12 @@ snapshots:
temp-dir@3.0.0: {}
temporal-polyfill@0.3.2:
dependencies:
temporal-spec: 0.3.1
temporal-spec@0.3.1: {}
tempy@3.1.0:
dependencies:
is-stream: 3.0.0