@coffer-org/plugin-transit 1.1.0 → 1.2.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.
@@ -1,9 +1,2 @@
1
- /**
2
- * Розклад маршруту — один запис = один маршрут + напрямок.
3
- * 4 записи: 47 Кишинів→Чореску, 47 Чореску→Кишинів,
4
- * 48 Кишинів→Чореску, 48 Чореску→Кишинів.
5
- * Час відправлень зберігається як JSON-масиви рядків "HH:MM".
6
- */
7
1
  declare const _default: import("@coffer-org/sdk/module").ModuleDef;
8
2
  export default _default;
9
- //# sourceMappingURL=index.d.ts.map
@@ -1,11 +1,5 @@
1
1
  import { defineModule } from '@coffer-org/sdk/module';
2
2
  import { field } from '@coffer-org/sdk/fields';
3
- /**
4
- * Розклад маршруту — один запис = один маршрут + напрямок.
5
- * 4 записи: 47 Кишинів→Чореску, 47 Чореску→Кишинів,
6
- * 48 Кишинів→Чореску, 48 Чореску→Кишинів.
7
- * Час відправлень зберігається як JSON-масиви рядків "HH:MM".
8
- */
9
3
  export default defineModule({
10
4
  module: 'bus_route',
11
5
  vault: 'transit',
@@ -17,14 +11,13 @@ export default defineModule({
17
11
  fields: [
18
12
  field.title({ key: 'name', label: 'core.fields.name' }),
19
13
  field.int({ key: 'route_number', label: 'transit.bus_route.fields.route_number' }),
20
- field.string({ key: 'from', label: 'transit.bus_route.fields.from', config: { max: 100 } }),
21
- field.string({ key: 'to', label: 'transit.bus_route.fields.to', config: { max: 100 } }),
22
- field.string({ key: 'stop', label: 'transit.bus_route.fields.stop', config: { max: 200 } }),
14
+ field.string({ key: 'from', label: 'transit.bus_route.fields.from', rules: { max: 100 } }),
15
+ field.string({ key: 'to', label: 'transit.bus_route.fields.to', rules: { max: 100 } }),
16
+ field.string({ key: 'stop', label: 'transit.bus_route.fields.stop', rules: { max: 200 } }),
23
17
  field.time({ key: 'weekday_times', label: 'transit.bus_route.fields.weekday_times', multiple: true }),
24
18
  field.time({ key: 'saturday_times', label: 'transit.bus_route.fields.saturday_times', multiple: true }),
25
19
  field.time({ key: 'sunday_times', label: 'transit.bus_route.fields.sunday_times', multiple: true }),
26
- field.text({ key: 'notes', label: 'transit.bus_route.fields.notes', max: 500 }),
20
+ field.text({ key: 'notes', label: 'transit.bus_route.fields.notes', rules: { max: 500 } }),
27
21
  field.tags({ key: 'tags', label: 'transit.bus_route.fields.tags' }),
28
22
  ],
29
23
  });
30
- //# sourceMappingURL=index.js.map
package/dist/index.d.ts CHANGED
@@ -1,3 +1,2 @@
1
1
  declare const _default: import("@coffer-org/sdk/plugin").PluginManifest;
2
2
  export default _default;
3
- //# sourceMappingURL=index.d.ts.map
package/dist/index.js CHANGED
@@ -2,7 +2,7 @@ import { defineVault } from '@coffer-org/sdk/vault';
2
2
  import { definePlugin } from '@coffer-org/sdk/plugin';
3
3
  import { field } from '@coffer-org/sdk/fields';
4
4
  import { defineSettings } from '@coffer-org/sdk/settings';
5
- import bus_route from './bus_route/index.js';
5
+ import bus_route from "./bus_route/index.js";
6
6
  export default definePlugin({
7
7
  id: 'transit',
8
8
  version: '1.0.0',
@@ -24,4 +24,3 @@ export default definePlugin({
24
24
  ],
25
25
  }),
26
26
  });
27
- //# sourceMappingURL=index.js.map
@@ -1,6 +1,4 @@
1
1
  import type { PluginHooks } from '@coffer-org/server/plugin-hooks';
2
- export { startSync, stopSync } from './sync.js';
3
- export type { BusRouteRecord } from './sync.js';
4
- /** Серверні хуки життєвого циклу transit (збирає loadServerHooks через discovery). */
2
+ export { startSync, stopSync } from './sync.ts';
3
+ export type { BusRouteRecord } from './sync.ts';
5
4
  export declare const serverHooks: PluginHooks;
6
- //# sourceMappingURL=index.d.ts.map
@@ -1,12 +1,15 @@
1
- import { startSync, stopSync } from './sync.js';
2
- export { startSync, stopSync } from './sync.js';
3
- /** Серверні хуки життєвого циклу transit (збирає loadServerHooks через discovery). */
1
+ import { startSync, stopSync } from "./sync.js";
2
+ export { startSync, stopSync } from "./sync.js";
4
3
  export const serverHooks = {
5
4
  init: () => {
6
- void startSync().catch((e) => console.warn(`[transit-sync] не стартував: ${e.message}`));
5
+ void startSync().catch((e) => console.warn(`[transit-sync] failed to start: ${e.message}`));
7
6
  },
8
7
  teardown: () => {
9
8
  stopSync();
10
9
  },
10
+ agent: {
11
+ instructions: 'Vault transit — bus routes (bus_route): route_number, from/to, stop, ' +
12
+ 'weekday_times/saturday_times/sunday_times — departure schedule.' +
13
+ ' When the schedule changes, update *_times via update_record.',
14
+ },
11
15
  };
12
- //# sourceMappingURL=index.js.map
@@ -14,4 +14,3 @@ export interface BusRouteRecord {
14
14
  export declare function buildBusEvents(records: BusRouteRecord[]): IcsFile[];
15
15
  export declare function startSync(): Promise<void>;
16
16
  export declare function stopSync(): void;
17
- //# sourceMappingURL=sync.d.ts.map
@@ -1,7 +1,6 @@
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
- // Fixed reference dates: Mon 2024-01-01, Sat 2024-01-06, Sun 2024-01-07
5
4
  const REF_DATE = { weekday: '20240101', saturday: '20240106', sunday: '20240107' };
6
5
  const BYDAY = {
7
6
  weekday: ['MO', 'TU', 'WE', 'TH', 'FR'],
@@ -104,4 +103,3 @@ export function stopSync() {
104
103
  timer = undefined;
105
104
  }
106
105
  }
107
- //# sourceMappingURL=sync.js.map
package/package.json CHANGED
@@ -1,7 +1,10 @@
1
1
  {
2
2
  "name": "@coffer-org/plugin-transit",
3
- "version": "1.1.0",
3
+ "version": "1.2.2",
4
4
  "type": "module",
5
+ "engines": {
6
+ "node": ">=24"
7
+ },
5
8
  "files": [
6
9
  "dist"
7
10
  ],
@@ -22,8 +25,8 @@
22
25
  "test": "node --import tsx/esm --test 'src/runtime/*.test.ts'"
23
26
  },
24
27
  "dependencies": {
25
- "@coffer-org/sdk": "^1.1.0",
26
- "@coffer-org/server": "^1.1.0",
27
- "@coffer-org/dav": "^1.1.0"
28
+ "@coffer-org/sdk": "^1.2.2",
29
+ "@coffer-org/server": "^1.2.2",
30
+ "@coffer-org/dav": "^1.2.2"
28
31
  }
29
32
  }
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/bus_route/index.ts"],"names":[],"mappings":"AAGA;;;;;GAKG;;AACH,wBAoBG"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/bus_route/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAE/C;;;;;GAKG;AACH,eAAe,YAAY,CAAC;IAC1B,MAAM,EAAE,WAAW;IACnB,KAAK,EAAE,SAAS;IAChB,KAAK,EAAE,yBAAyB;IAChC,IAAI,EAAE,YAAY;IAClB,KAAK,EAAE;QACL,KAAK,EAAE,CAAC,cAAc,EAAE,MAAM,EAAE,IAAI,CAAC;KACtC;IACD,MAAM,EAAE;QACN,KAAK,CAAC,KAAK,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,kBAAkB,EAAE,CAAC;QACvD,KAAK,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,cAAc,EAAE,KAAK,EAAE,uCAAuC,EAAE,CAAC;QAClF,KAAK,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,+BAA+B,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC;QAC3F,KAAK,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,6BAA6B,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC;QACvF,KAAK,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,+BAA+B,EAAE,MAAM,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC;QAC3F,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,eAAe,EAAE,KAAK,EAAE,wCAAwC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;QACrG,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,gBAAgB,EAAE,KAAK,EAAE,yCAAyC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;QACvG,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,cAAc,EAAE,KAAK,EAAE,uCAAuC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;QACnG,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,gCAAgC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;QAC/E,KAAK,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,+BAA+B,EAAE,CAAC;KACpE;CACF,CAAC,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAMA,wBAoBG"}
package/dist/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,SAAS,MAAM,sBAAsB,CAAC;AAE7C,eAAe,YAAY,CAAC;IAC1B,EAAE,EAAE,SAAS;IACb,OAAO,EAAE,OAAO;IAChB,SAAS,EAAE,EAAE;IACb,MAAM,EAAE;QACN;YACE,IAAI,EAAE,WAAW,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,qBAAqB,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;YACtF,OAAO,EAAE,CAAC,SAAS,CAAC;SACrB;KACF;IACD,QAAQ,EAAE,cAAc,CAAC;QACvB,KAAK,EAAE,wBAAwB;QAC/B,MAAM,EAAE;YACN,KAAK,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,eAAe,EAAE,KAAK,EAAE,gCAAgC,EAAE,CAAC;YAChF,KAAK,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,iBAAiB,EAAE,KAAK,EAAE,kCAAkC,EAAE,CAAC;YACnF,KAAK,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,YAAY,EAAE,KAAK,EAAE,6BAA6B,EAAE,CAAC;YACzE,KAAK,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,iBAAiB,EAAE,KAAK,EAAE,kCAAkC,EAAE,CAAC;YACnF,KAAK,CAAC,QAAQ,CAAC,EAAE,GAAG,EAAE,iBAAiB,EAAE,KAAK,EAAE,kCAAkC,EAAE,CAAC;SACtF;KACF,CAAC;CACH,CAAC,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/runtime/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAEnE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAChD,YAAY,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAEhD,sFAAsF;AACtF,eAAO,MAAM,WAAW,EAAE,WAOzB,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/runtime/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAGhD,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAGhD,sFAAsF;AACtF,MAAM,CAAC,MAAM,WAAW,GAAgB;IACtC,IAAI,EAAE,GAAG,EAAE;QACT,KAAK,SAAS,EAAE,CAAC,KAAK,CAAC,CAAC,CAAU,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,gCAAiC,CAAW,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IAC/G,CAAC;IACD,QAAQ,EAAE,GAAG,EAAE;QACb,QAAQ,EAAE,CAAC;IACb,CAAC;CACF,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../src/runtime/sync.ts"],"names":[],"mappings":"AAEA,OAAO,EAML,KAAK,OAAO,EACb,MAAM,iBAAiB,CAAC;AAEzB,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IAClB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAoCD,wBAAgB,cAAc,CAAC,OAAO,EAAE,cAAc,EAAE,GAAG,OAAO,EAAE,CAsBnE;AAuCD,wBAAsB,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC,CAS/C;AAED,wBAAgB,QAAQ,IAAI,IAAI,CAK/B"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/runtime/sync.ts"],"names":[],"mappings":"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"}