@coffer-org/plugin-transit 1.3.1 → 1.4.0
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/index.js +0 -1
- package/dist/runtime/index.js +3 -1
- package/dist/runtime/sync.js +7 -16
- package/dist/schema.js +0 -4
- package/package.json +3 -3
package/dist/index.js
CHANGED
|
@@ -16,7 +16,6 @@ export default definePlugin({
|
|
|
16
16
|
settings: defineSettings({
|
|
17
17
|
label: 'transit.settings.label',
|
|
18
18
|
fields: [
|
|
19
|
-
field.boolean({ key: 'use_nextcloud', label: 'transit.settings.use_nextcloud' }),
|
|
20
19
|
field.string({ key: 'caldav_calendar', label: 'transit.settings.caldav_calendar' }),
|
|
21
20
|
field.string({ key: 'caldav_url', label: 'transit.settings.caldav_url' }),
|
|
22
21
|
field.string({ key: 'caldav_username', label: 'transit.settings.caldav_username' }),
|
package/dist/runtime/index.js
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import { startSync, stopSync } from "./sync.js";
|
|
2
|
+
import { getLogger } from '@coffer-org/sdk/logger';
|
|
3
|
+
const log = getLogger('transit');
|
|
2
4
|
export { startSync, stopSync } from "./sync.js";
|
|
3
5
|
export const serverHooks = {
|
|
4
6
|
init: () => {
|
|
5
|
-
void startSync().catch((e) =>
|
|
7
|
+
void startSync().catch((e) => log.warn(`sync failed to start: ${e.message}`));
|
|
6
8
|
},
|
|
7
9
|
teardown: () => {
|
|
8
10
|
stopSync();
|
package/dist/runtime/sync.js
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { getEm } from '@coffer-org/server/db';
|
|
2
2
|
import { getPluginSettings } from '@coffer-org/server/plugin-runtime';
|
|
3
3
|
import { resolveDavSettings, WebDavClient, CalDavCollection, buildVEvent, buildRRule, } from '@coffer-org/dav';
|
|
4
|
+
import { getLogger } from '@coffer-org/sdk/logger';
|
|
5
|
+
const log = getLogger('transit');
|
|
4
6
|
const REF_DATE = { weekday: '20240101', saturday: '20240106', sunday: '20240107' };
|
|
5
7
|
const BYDAY = {
|
|
6
8
|
weekday: ['MO', 'TU', 'WE', 'TH', 'FR'],
|
|
@@ -61,19 +63,8 @@ async function runOnce() {
|
|
|
61
63
|
const calendar = pluginSettings['caldav_calendar'];
|
|
62
64
|
if (!calendar)
|
|
63
65
|
throw new Error('[transit-sync] caldav_calendar is required but not set');
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
if (pluginSettings['use_nextcloud']) {
|
|
67
|
-
const nc = await getPluginSettings('nextcloud');
|
|
68
|
-
if (!nc['nextcloud_url'])
|
|
69
|
-
throw new Error('[transit-sync] nextcloud_url not configured');
|
|
70
|
-
principal = String(nc['login'] ?? '');
|
|
71
|
-
password = String(nc['password'] ?? '');
|
|
72
|
-
}
|
|
73
|
-
else {
|
|
74
|
-
principal = pluginSettings['caldav_username'] ?? '';
|
|
75
|
-
password = pluginSettings['caldav_password'] ?? '';
|
|
76
|
-
}
|
|
66
|
+
const principal = pluginSettings['caldav_username'] ?? '';
|
|
67
|
+
const password = pluginSettings['caldav_password'] ?? '';
|
|
77
68
|
const settings = resolveDavSettings(calendar, { principal, password });
|
|
78
69
|
const ops = new WebDavClient({
|
|
79
70
|
collectionUrl: settings.collectionUrl,
|
|
@@ -82,7 +73,7 @@ async function runOnce() {
|
|
|
82
73
|
});
|
|
83
74
|
const coll = new CalDavCollection(ops);
|
|
84
75
|
const result = await coll.syncEvents('bus-route-', icsFiles);
|
|
85
|
-
|
|
76
|
+
log.debug(`synced: ${result.written.length} written, ${result.deleted.length} deleted, ${result.failed.length} failed`);
|
|
86
77
|
}
|
|
87
78
|
const INTERVAL_MS = Number(process.env['TRANSIT_SYNC_INTERVAL_MS'] ?? 0) || 6 * 60 * 60 * 1000;
|
|
88
79
|
let timer;
|
|
@@ -91,10 +82,10 @@ export async function startSync() {
|
|
|
91
82
|
await runOnce();
|
|
92
83
|
}
|
|
93
84
|
catch (e) {
|
|
94
|
-
|
|
85
|
+
log.error(`initial sync failed: ${e.message}`);
|
|
95
86
|
}
|
|
96
87
|
timer = setInterval(() => {
|
|
97
|
-
void runOnce().catch((e) =>
|
|
88
|
+
void runOnce().catch((e) => log.error(`sync error: ${e.message}`));
|
|
98
89
|
}, INTERVAL_MS);
|
|
99
90
|
}
|
|
100
91
|
export function stopSync() {
|
package/dist/schema.js
CHANGED
|
@@ -7786,10 +7786,6 @@ var src_default = definePlugin({
|
|
|
7786
7786
|
settings: defineSettings({
|
|
7787
7787
|
label: "transit.settings.label",
|
|
7788
7788
|
fields: [
|
|
7789
|
-
field.boolean({
|
|
7790
|
-
key: "use_nextcloud",
|
|
7791
|
-
label: "transit.settings.use_nextcloud"
|
|
7792
|
-
}),
|
|
7793
7789
|
field.string({
|
|
7794
7790
|
key: "caldav_calendar",
|
|
7795
7791
|
label: "transit.settings.caldav_calendar"
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@coffer-org/plugin-transit",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.4.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"engines": {
|
|
6
6
|
"node": ">=24"
|
|
@@ -25,8 +25,8 @@
|
|
|
25
25
|
"test": "node --import tsx/esm --test 'src/runtime/*.test.ts'"
|
|
26
26
|
},
|
|
27
27
|
"dependencies": {
|
|
28
|
-
"@coffer-org/sdk": "^1.
|
|
29
|
-
"@coffer-org/server": "^1.
|
|
28
|
+
"@coffer-org/sdk": "^1.4.0",
|
|
29
|
+
"@coffer-org/server": "^1.6.0",
|
|
30
30
|
"@coffer-org/dav": "^1.4.0"
|
|
31
31
|
},
|
|
32
32
|
"coffer": {
|