signalk-maintenance-tracker 1.6.1 → 1.7.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/CHANGELOG.md +46 -0
- package/README.md +6 -2
- package/dist/api/router.js +61 -32
- package/dist/api/router.js.map +1 -1
- package/dist/config.js +2 -2
- package/dist/config.js.map +1 -1
- package/dist/db/files.repo.js +60 -18
- package/dist/db/files.repo.js.map +1 -1
- package/dist/db/logs.repo.js +3 -3
- package/dist/db/logs.repo.js.map +1 -1
- package/dist/db/migrations.js +29 -0
- package/dist/db/migrations.js.map +1 -1
- package/dist/files/store.js +30 -13
- package/dist/files/store.js.map +1 -1
- package/dist/service.js +111 -43
- package/dist/service.js.map +1 -1
- package/package.json +1 -1
- package/public/app/api/hooks.js +73 -20
- package/public/app/components/AttachmentList.js +57 -0
- package/public/app/components/DownloadLogModal.js +76 -5
- package/public/app/components/FilesField.js +91 -31
- package/public/app/components/LogDetailsModal.js +95 -0
- package/public/app/components/LogEntryModal.js +73 -3
- package/public/app/components/Table.js +1 -10
- package/public/app/components/TaskFormModal.js +19 -2
- package/public/app/lib/files.js +17 -1
- package/public/app/lib/format.js +10 -0
- package/public/app/lib/logExport.js +117 -18
- package/public/app/lib/zip.js +111 -0
- package/public/app/pages/MasterLogPage.js +66 -99
- package/public/app/pages/TaskDetailPage.js +62 -77
- package/public/app/types.js +5 -2
- package/public/styles/main.css +24 -21
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,49 @@
|
|
|
1
|
+
# v1.7.0
|
|
2
|
+
|
|
3
|
+
Log entries can now carry files, and everything about an entry lives in one
|
|
4
|
+
details modal.
|
|
5
|
+
|
|
6
|
+
## Highlights
|
|
7
|
+
|
|
8
|
+
- **Log entry attachments.** Marking a task complete, adding a log entry or
|
|
9
|
+
editing one can now attach files — photos of the work, receipts — the
|
|
10
|
+
same way tasks carry manuals. The log entry modal gains a **Files** field
|
|
11
|
+
after Notes. On create, files queue locally and upload once the entry is
|
|
12
|
+
saved. Bytes live under `files/logs/<log_id>/`, indexed by a new
|
|
13
|
+
`log_files` table (migration 9). New routes mirror the task ones:
|
|
14
|
+
`GET/POST /logs/:id/files` and `GET/DELETE /logs/:id/files/:fileId`.
|
|
15
|
+
Every log entry the API returns carries a `files` array. Deleting an
|
|
16
|
+
entry removes its files, and deleting a task removes those of all its
|
|
17
|
+
entries.
|
|
18
|
+
- **Log details modal.** Log tables now show only the key figures per row.
|
|
19
|
+
A green magnifying glass on each row (visible logged out too) opens a
|
|
20
|
+
read-only modal with the entry's task or title, dates, runtime, who
|
|
21
|
+
logged it, notes, files and images. On phones the master log shows just
|
|
22
|
+
the task name.
|
|
23
|
+
- **Attachments in log downloads.** The download log modal gains a
|
|
24
|
+
**Download file attachments** checkbox, on by default. When ticked, the
|
|
25
|
+
log and every entry's files download as one `.zip`, each entry's files in
|
|
26
|
+
their own `attachments/<task>_<date>_log-<id>/` folder. The log gains an
|
|
27
|
+
Attachments column (an `attachments` array in JSON) listing each file's
|
|
28
|
+
path in the zip. The zip is built in the browser with no new
|
|
29
|
+
dependency, and is capped at 4 GB.
|
|
30
|
+
|
|
31
|
+
## Changes
|
|
32
|
+
|
|
33
|
+
- Log entries record when they were last edited, in a new
|
|
34
|
+
`log_entries.updated_at` column (migration 10). It is only set when a
|
|
35
|
+
field actually changes. The details modal shows it as **Updated**,
|
|
36
|
+
alongside **Completed** and **Logged**.
|
|
37
|
+
- Default notification states are softer: due soon is now `alert` and
|
|
38
|
+
overdue is now `warn` (previously `warn` / `alarm`). Existing installs
|
|
39
|
+
keep their saved settings.
|
|
40
|
+
|
|
41
|
+
## Fixes
|
|
42
|
+
|
|
43
|
+
- A log entry's logged date is shown in the browser's local time zone
|
|
44
|
+
instead of UTC, so entries logged in the morning ahead of UTC no longer
|
|
45
|
+
show the previous day.
|
|
46
|
+
|
|
1
47
|
# v1.6.1
|
|
2
48
|
|
|
3
49
|
Attachments open in the browser when the browser can show them.
|
package/README.md
CHANGED
|
@@ -58,8 +58,8 @@ Tracker**; data is stored in the plugin's data directory as `maintenance.db`.
|
|
|
58
58
|
| `enablePublishPaths` | `true` | publish each task to `maintenance.{slug}.*` paths |
|
|
59
59
|
| `enableNotifications` | `true` | master switch for notification publishing |
|
|
60
60
|
| `alarmStateOk` | `none` | alarm state for up-to-date tasks |
|
|
61
|
-
| `alarmStateDueSoon` | `
|
|
62
|
-
| `alarmStateOverdue` | `
|
|
61
|
+
| `alarmStateDueSoon` | `alert` | alarm state for due-soon tasks |
|
|
62
|
+
| `alarmStateOverdue` | `warn` | alarm state for overdue tasks |
|
|
63
63
|
| `runtimeNotifyLeadHours` | `10` | runtime hours before due to raise "due soon" |
|
|
64
64
|
| `timeNotifyLeadDays` | `7` | days before due to raise "due soon" |
|
|
65
65
|
| `recomputeIntervalMs` | `60000` | status recompute tick in ms |
|
|
@@ -100,6 +100,10 @@ the SignalK server — currently admin):
|
|
|
100
100
|
and media are served inline and open in the browser, images also as a
|
|
101
101
|
gallery on the task page; everything else downloads)
|
|
102
102
|
- `GET /logs`, `PUT/DELETE /logs/:id`
|
|
103
|
+
- `GET/POST /logs/:id/files`, `GET/DELETE /logs/:id/files/:fileId` (the same
|
|
104
|
+
attachment protocol for a log entry — photos of the work, receipts —
|
|
105
|
+
picked when marking a task complete or editing an entry; each entry's
|
|
106
|
+
`files` ride on the log responses)
|
|
103
107
|
- `GET /tags`
|
|
104
108
|
- `GET /health`
|
|
105
109
|
|
package/dist/api/router.js
CHANGED
|
@@ -86,47 +86,33 @@ function mountApi(router, getServices) {
|
|
|
86
86
|
// values are ASCII) and the client's content type in X-File-Type. No
|
|
87
87
|
// multipart parsing, no buffering — the body streams straight to disk.
|
|
88
88
|
router.post('/api/tasks/:slug/files', withServices(async (s, req, res) => {
|
|
89
|
-
|
|
90
|
-
// before it reaches here, leaving nothing to stream to disk. Checked
|
|
91
|
-
// by stream state, not req.body: body-parser 1.x sets req.body = {}
|
|
92
|
-
// even on requests it skips.
|
|
93
|
-
if (req.readableEnded || req._body)
|
|
94
|
-
throw new service_1.ApiError(400, 'invalid_upload', 'Send the file bytes as the raw request body with a non-JSON content type (e.g. application/octet-stream)');
|
|
95
|
-
const length = req.headers['content-length'];
|
|
96
|
-
if (length === undefined)
|
|
97
|
-
throw new service_1.ApiError(411, 'length_required', 'Uploads must send a Content-Length header');
|
|
98
|
-
const file = await s.service.addFile(req.params.slug, {
|
|
99
|
-
name: decodeHeader(req.headers['x-file-name']),
|
|
100
|
-
mime: str(req.headers['x-file-type']) ?? null,
|
|
101
|
-
declaredSize: Number.parseInt(String(length), 10) || 0,
|
|
102
|
-
}, req);
|
|
89
|
+
const file = await s.service.addFile(req.params.slug, uploadFromRequest(req), req);
|
|
103
90
|
res.status(201).json(file);
|
|
104
91
|
}));
|
|
105
92
|
router.get('/api/tasks/:slug/files/:id', withServices((s, req, res) => {
|
|
106
93
|
const { file, absPath } = s.service.getFile(req.params.slug, intParam(req.params.id));
|
|
107
|
-
|
|
108
|
-
// served inline so links open in a tab; everything else is an
|
|
109
|
-
// attachment, whatever the uploader called it, so no uploaded document
|
|
110
|
-
// ever runs on the server's origin. nosniff in both cases: the declared
|
|
111
|
-
// type is the only type.
|
|
112
|
-
if ((0, store_1.isInlineType)(file.mime)) {
|
|
113
|
-
res.type(file.mime);
|
|
114
|
-
res.sendFile(absPath, {
|
|
115
|
-
headers: {
|
|
116
|
-
'Content-Disposition': inlineDisposition(file.name),
|
|
117
|
-
'X-Content-Type-Options': 'nosniff',
|
|
118
|
-
},
|
|
119
|
-
});
|
|
120
|
-
return;
|
|
121
|
-
}
|
|
122
|
-
res.download(absPath, file.name, {
|
|
123
|
-
headers: { 'X-Content-Type-Options': 'nosniff' },
|
|
124
|
-
});
|
|
94
|
+
sendAttachment(res, file, absPath);
|
|
125
95
|
}));
|
|
126
96
|
router.delete('/api/tasks/:slug/files/:id', withServices((s, req, res) => {
|
|
127
97
|
s.service.deleteFile(req.params.slug, intParam(req.params.id));
|
|
128
98
|
res.status(204).end();
|
|
129
99
|
}));
|
|
100
|
+
// ---- log entry files (§8.6) — same protocol, hung off a log entry ----
|
|
101
|
+
router.get('/api/logs/:id/files', withServices((s, req, res) => {
|
|
102
|
+
res.json({ data: s.service.listLogFiles(intParam(req.params.id)) });
|
|
103
|
+
}));
|
|
104
|
+
router.post('/api/logs/:id/files', withServices(async (s, req, res) => {
|
|
105
|
+
const file = await s.service.addLogFile(intParam(req.params.id), uploadFromRequest(req), req);
|
|
106
|
+
res.status(201).json(file);
|
|
107
|
+
}));
|
|
108
|
+
router.get('/api/logs/:id/files/:fileId', withServices((s, req, res) => {
|
|
109
|
+
const { file, absPath } = s.service.getLogFile(intParam(req.params.id), intParam(req.params.fileId));
|
|
110
|
+
sendAttachment(res, file, absPath);
|
|
111
|
+
}));
|
|
112
|
+
router.delete('/api/logs/:id/files/:fileId', withServices((s, req, res) => {
|
|
113
|
+
s.service.deleteLogFile(intParam(req.params.id), intParam(req.params.fileId));
|
|
114
|
+
res.status(204).end();
|
|
115
|
+
}));
|
|
130
116
|
// ---- logs (§8.2) ----
|
|
131
117
|
router.get('/api/tasks/:slug/logs', withServices((s, req, res) => {
|
|
132
118
|
res.json({ data: s.service.listTaskLogs(req.params.slug) });
|
|
@@ -218,6 +204,49 @@ function jsonBody(req, res, next) {
|
|
|
218
204
|
}
|
|
219
205
|
});
|
|
220
206
|
}
|
|
207
|
+
/**
|
|
208
|
+
* What the service needs to know about an upload before its bytes, from the
|
|
209
|
+
* request headers — and the checks that the body really is still a stream
|
|
210
|
+
* of bytes for it to read.
|
|
211
|
+
*/
|
|
212
|
+
function uploadFromRequest(req) {
|
|
213
|
+
// A JSON content type gets the body parsed (by SignalK or jsonBody)
|
|
214
|
+
// before it reaches here, leaving nothing to stream to disk. Checked
|
|
215
|
+
// by stream state, not req.body: body-parser 1.x sets req.body = {}
|
|
216
|
+
// even on requests it skips.
|
|
217
|
+
if (req.readableEnded || req._body)
|
|
218
|
+
throw new service_1.ApiError(400, 'invalid_upload', 'Send the file bytes as the raw request body with a non-JSON content type (e.g. application/octet-stream)');
|
|
219
|
+
const length = req.headers['content-length'];
|
|
220
|
+
if (length === undefined)
|
|
221
|
+
throw new service_1.ApiError(411, 'length_required', 'Uploads must send a Content-Length header');
|
|
222
|
+
return {
|
|
223
|
+
name: decodeHeader(req.headers['x-file-name']),
|
|
224
|
+
mime: str(req.headers['x-file-type']) ?? null,
|
|
225
|
+
declaredSize: Number.parseInt(String(length), 10) || 0,
|
|
226
|
+
};
|
|
227
|
+
}
|
|
228
|
+
/**
|
|
229
|
+
* Serve an attachment's bytes. What a browser can show on its own (images,
|
|
230
|
+
* PDF, text, media) is served inline so links open in a tab; everything
|
|
231
|
+
* else is an attachment, whatever the uploader called it, so no uploaded
|
|
232
|
+
* document ever runs on the server's origin. nosniff in both cases: the
|
|
233
|
+
* declared type is the only type.
|
|
234
|
+
*/
|
|
235
|
+
function sendAttachment(res, file, absPath) {
|
|
236
|
+
if ((0, store_1.isInlineType)(file.mime)) {
|
|
237
|
+
res.type(file.mime);
|
|
238
|
+
res.sendFile(absPath, {
|
|
239
|
+
headers: {
|
|
240
|
+
'Content-Disposition': inlineDisposition(file.name),
|
|
241
|
+
'X-Content-Type-Options': 'nosniff',
|
|
242
|
+
},
|
|
243
|
+
});
|
|
244
|
+
return;
|
|
245
|
+
}
|
|
246
|
+
res.download(absPath, file.name, {
|
|
247
|
+
headers: { 'X-Content-Type-Options': 'nosniff' },
|
|
248
|
+
});
|
|
249
|
+
}
|
|
221
250
|
/** True for a body that is a file, not JSON (see the upload route). */
|
|
222
251
|
function isRawUpload(req) {
|
|
223
252
|
const type = req.headers['content-type'];
|
package/dist/api/router.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"router.js","sourceRoot":"","sources":["../../src/api/router.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"router.js","sourceRoot":"","sources":["../../src/api/router.ts"],"names":[],"mappings":"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"}
|
package/dist/config.js
CHANGED
|
@@ -14,8 +14,8 @@ exports.DEFAULT_OPTIONS = {
|
|
|
14
14
|
enablePublishPaths: true,
|
|
15
15
|
enableNotifications: true,
|
|
16
16
|
alarmStateOk: 'none',
|
|
17
|
-
alarmStateDueSoon: '
|
|
18
|
-
alarmStateOverdue: '
|
|
17
|
+
alarmStateDueSoon: 'alert',
|
|
18
|
+
alarmStateOverdue: 'warn',
|
|
19
19
|
runtimeNotifyLeadHours: 10,
|
|
20
20
|
timeNotifyLeadDays: 7,
|
|
21
21
|
recomputeIntervalMs: 60000,
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":";;;AAyCA,oCAEC;AAvCD,MAAM,YAAY,GAAiB;IACjC,MAAM;IACN,QAAQ;IACR,OAAO;IACP,MAAM;IACN,OAAO;IACP,WAAW;CACZ,CAAC;AAkBW,QAAA,eAAe,GAAkB;IAC5C,kBAAkB,EAAE,IAAI;IACxB,mBAAmB,EAAE,IAAI;IACzB,YAAY,EAAE,MAAM;IACpB,iBAAiB,EAAE,
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":";;;AAyCA,oCAEC;AAvCD,MAAM,YAAY,GAAiB;IACjC,MAAM;IACN,QAAQ;IACR,OAAO;IACP,MAAM;IACN,OAAO;IACP,WAAW;CACZ,CAAC;AAkBW,QAAA,eAAe,GAAkB;IAC5C,kBAAkB,EAAE,IAAI;IACxB,mBAAmB,EAAE,IAAI;IACzB,YAAY,EAAE,MAAM;IACpB,iBAAiB,EAAE,OAAO;IAC1B,iBAAiB,EAAE,MAAM;IACzB,sBAAsB,EAAE,EAAE;IAC1B,kBAAkB,EAAE,CAAC;IACrB,mBAAmB,EAAE,KAAK;IAC1B,cAAc,EAAE,EAAE;CACnB,CAAC;AAEF,SAAgB,YAAY,CAAC,OAAgC;IAC3D,OAAO,EAAE,GAAG,uBAAe,EAAE,GAAG,CAAC,OAAO,IAAI,EAAE,CAAC,EAAE,CAAC;AACpD,CAAC;AAED,MAAM,kBAAkB,GAAG,CAAC,KAAa,EAAE,YAAwB,EAAE,EAAE,CAAC,CAAC;IACvE,IAAI,EAAE,QAAQ;IACd,KAAK;IACL,IAAI,EAAE,CAAC,GAAG,YAAY,CAAC;IACvB,OAAO,EAAE,YAAY;CACtB,CAAC,CAAC;AAEU,QAAA,MAAM,GAAG;IACpB,IAAI,EAAE,QAAQ;IACd,UAAU,EAAE;QACV,kBAAkB,EAAE;YAClB,IAAI,EAAE,SAAS;YACf,KAAK,EAAE,oCAAoC;YAC3C,WAAW,EACT,0FAA0F;YAC5F,OAAO,EAAE,uBAAe,CAAC,kBAAkB;SAC5C;QACD,mBAAmB,EAAE;YACnB,IAAI,EAAE,SAAS;YACf,KAAK,EAAE,sBAAsB;YAC7B,WAAW,EACT,gEAAgE;YAClE,OAAO,EAAE,uBAAe,CAAC,mBAAmB;SAC7C;QACD,YAAY,EAAE,kBAAkB,CAC9B,kCAAkC,EAClC,uBAAe,CAAC,YAAY,CAC7B;QACD,iBAAiB,EAAE,kBAAkB,CACnC,gCAAgC,EAChC,uBAAe,CAAC,iBAAiB,CAClC;QACD,iBAAiB,EAAE,kBAAkB,CACnC,+BAA+B,EAC/B,uBAAe,CAAC,iBAAiB,CAClC;QACD,sBAAsB,EAAE;YACtB,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,6BAA6B;YACpC,OAAO,EAAE,CAAC;YACV,WAAW,EACT,gKAAgK;YAClK,OAAO,EAAE,uBAAe,CAAC,sBAAsB;SAChD;QACD,kBAAkB,EAAE;YAClB,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,yBAAyB;YAChC,OAAO,EAAE,CAAC;YACV,WAAW,EACT,uJAAuJ;YACzJ,OAAO,EAAE,uBAAe,CAAC,kBAAkB;SAC5C;QACD,mBAAmB,EAAE;YACnB,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,yBAAyB;YAChC,WAAW,EACT,gEAAgE;YAClE,OAAO,EAAE,uBAAe,CAAC,mBAAmB;SAC7C;QACD,cAAc,EAAE;YACd,IAAI,EAAE,QAAQ;YACd,KAAK,EAAE,8BAA8B;YACrC,WAAW,EACT,6JAA6J;YAC/J,OAAO,EAAE,uBAAe,CAAC,cAAc;SACxC;KACF;CACF,CAAC"}
|
package/dist/db/files.repo.js
CHANGED
|
@@ -1,46 +1,88 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.FilesRepo = void 0;
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
exports.LogFilesRepo = exports.FilesRepo = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* The two attachment tables are the same shape apart from what they hang
|
|
6
|
+
* off (a task or a log entry); this is the shared index access, with the
|
|
7
|
+
* table and owner column fixed per subclass.
|
|
8
|
+
*/
|
|
9
|
+
class AttachmentsRepo {
|
|
6
10
|
db;
|
|
7
|
-
|
|
11
|
+
table;
|
|
12
|
+
ownerColumn;
|
|
13
|
+
columns;
|
|
14
|
+
constructor(db, table, ownerColumn) {
|
|
8
15
|
this.db = db;
|
|
16
|
+
this.table = table;
|
|
17
|
+
this.ownerColumn = ownerColumn;
|
|
18
|
+
this.columns = `id, ${ownerColumn}, name, size, mime, path, created_at`;
|
|
9
19
|
}
|
|
10
20
|
get(id) {
|
|
11
21
|
return this.db
|
|
12
|
-
.prepare(`SELECT ${
|
|
22
|
+
.prepare(`SELECT ${this.columns} FROM ${this.table} WHERE id = ?`)
|
|
13
23
|
.get(id);
|
|
14
24
|
}
|
|
15
|
-
|
|
25
|
+
forOwner(ownerId) {
|
|
16
26
|
return this.db
|
|
17
|
-
.prepare(`SELECT ${
|
|
18
|
-
WHERE
|
|
19
|
-
.all(
|
|
27
|
+
.prepare(`SELECT ${this.columns} FROM ${this.table}
|
|
28
|
+
WHERE ${this.ownerColumn} = ? ORDER BY name COLLATE NOCASE, id`)
|
|
29
|
+
.all(ownerId);
|
|
20
30
|
}
|
|
21
|
-
/** One query for
|
|
22
|
-
|
|
31
|
+
/** One query for a whole list: owner id -> files. */
|
|
32
|
+
byOwner() {
|
|
23
33
|
const rows = this.db
|
|
24
|
-
.prepare(`SELECT ${
|
|
34
|
+
.prepare(`SELECT ${this.columns} FROM ${this.table} ORDER BY name COLLATE NOCASE, id`)
|
|
25
35
|
.all();
|
|
26
36
|
const map = new Map();
|
|
27
37
|
for (const r of rows) {
|
|
28
|
-
const
|
|
38
|
+
const owner = r[this.ownerColumn];
|
|
39
|
+
const list = map.get(owner) ?? [];
|
|
29
40
|
list.push(r);
|
|
30
|
-
map.set(
|
|
41
|
+
map.set(owner, list);
|
|
31
42
|
}
|
|
32
43
|
return map;
|
|
33
44
|
}
|
|
34
|
-
|
|
45
|
+
insertFor(ownerId, f, nowIso) {
|
|
35
46
|
const result = this.db
|
|
36
|
-
.prepare(`INSERT INTO
|
|
47
|
+
.prepare(`INSERT INTO ${this.table} (${this.ownerColumn}, name, size, mime, path, created_at)
|
|
37
48
|
VALUES (?, ?, ?, ?, ?, ?)`)
|
|
38
|
-
.run(
|
|
49
|
+
.run(ownerId, f.name, f.size, f.mime, f.path, nowIso);
|
|
39
50
|
return this.get(Number(result.lastInsertRowid));
|
|
40
51
|
}
|
|
41
52
|
delete(id) {
|
|
42
|
-
this.db.prepare(`DELETE FROM
|
|
53
|
+
this.db.prepare(`DELETE FROM ${this.table} WHERE id = ?`).run(id);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
class FilesRepo extends AttachmentsRepo {
|
|
57
|
+
constructor(db) {
|
|
58
|
+
super(db, 'task_files', 'task_id');
|
|
59
|
+
}
|
|
60
|
+
forTask(taskId) {
|
|
61
|
+
return this.forOwner(taskId);
|
|
62
|
+
}
|
|
63
|
+
/** One query for the whole task list: task_id -> files. */
|
|
64
|
+
byTask() {
|
|
65
|
+
return this.byOwner();
|
|
66
|
+
}
|
|
67
|
+
insert(f, nowIso) {
|
|
68
|
+
return this.insertFor(f.task_id, f, nowIso);
|
|
43
69
|
}
|
|
44
70
|
}
|
|
45
71
|
exports.FilesRepo = FilesRepo;
|
|
72
|
+
class LogFilesRepo extends AttachmentsRepo {
|
|
73
|
+
constructor(db) {
|
|
74
|
+
super(db, 'log_files', 'log_id');
|
|
75
|
+
}
|
|
76
|
+
forLog(logId) {
|
|
77
|
+
return this.forOwner(logId);
|
|
78
|
+
}
|
|
79
|
+
/** One query for a whole log listing: log_id -> files. */
|
|
80
|
+
byLog() {
|
|
81
|
+
return this.byOwner();
|
|
82
|
+
}
|
|
83
|
+
insert(f, nowIso) {
|
|
84
|
+
return this.insertFor(f.log_id, f, nowIso);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
exports.LogFilesRepo = LogFilesRepo;
|
|
46
88
|
//# sourceMappingURL=files.repo.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"files.repo.js","sourceRoot":"","sources":["../../src/db/files.repo.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"files.repo.js","sourceRoot":"","sources":["../../src/db/files.repo.ts"],"names":[],"mappings":"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"}
|
package/dist/db/logs.repo.js
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.LogsRepo = void 0;
|
|
4
4
|
const LOG_COLUMNS = `l.id, l.task_id, l.title, l.maintenance_date, l.runtime_hours, l.notes,
|
|
5
|
-
l.logged_by, l.created_at`;
|
|
5
|
+
l.logged_by, l.created_at, l.updated_at`;
|
|
6
6
|
class LogsRepo {
|
|
7
7
|
db;
|
|
8
8
|
constructor(db) {
|
|
@@ -22,8 +22,8 @@ class LogsRepo {
|
|
|
22
22
|
}
|
|
23
23
|
update(id, fields) {
|
|
24
24
|
this.db
|
|
25
|
-
.prepare(`UPDATE log_entries SET title = ?, maintenance_date = ?, runtime_hours = ?, notes = ? WHERE id = ?`)
|
|
26
|
-
.run(fields.title, fields.maintenance_date, fields.runtime_hours, fields.notes, id);
|
|
25
|
+
.prepare(`UPDATE log_entries SET title = ?, maintenance_date = ?, runtime_hours = ?, notes = ?, updated_at = ? WHERE id = ?`)
|
|
26
|
+
.run(fields.title, fields.maintenance_date, fields.runtime_hours, fields.notes, fields.updated_at, id);
|
|
27
27
|
}
|
|
28
28
|
delete(id) {
|
|
29
29
|
this.db.prepare(`DELETE FROM log_entries WHERE id = ?`).run(id);
|
package/dist/db/logs.repo.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logs.repo.js","sourceRoot":"","sources":["../../src/db/logs.repo.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"logs.repo.js","sourceRoot":"","sources":["../../src/db/logs.repo.ts"],"names":[],"mappings":"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"}
|
package/dist/db/migrations.js
CHANGED
|
@@ -176,5 +176,34 @@ exports.migrations = [
|
|
|
176
176
|
`);
|
|
177
177
|
},
|
|
178
178
|
},
|
|
179
|
+
{
|
|
180
|
+
version: 9,
|
|
181
|
+
up(db) {
|
|
182
|
+
// Files attached to a log entry (photos of the work, receipts for that
|
|
183
|
+
// service). Same shape as task_files, keyed by the entry; bytes live
|
|
184
|
+
// under files/logs/<log_id>/. Rows cascade with the entry (and so with
|
|
185
|
+
// the task); the service removes the bytes alongside.
|
|
186
|
+
db.exec(`
|
|
187
|
+
CREATE TABLE log_files (
|
|
188
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
189
|
+
log_id INTEGER NOT NULL REFERENCES log_entries(id) ON DELETE CASCADE,
|
|
190
|
+
name TEXT NOT NULL,
|
|
191
|
+
size INTEGER NOT NULL,
|
|
192
|
+
mime TEXT,
|
|
193
|
+
path TEXT NOT NULL UNIQUE,
|
|
194
|
+
created_at TEXT NOT NULL
|
|
195
|
+
);
|
|
196
|
+
CREATE INDEX idx_log_files_log ON log_files (log_id);
|
|
197
|
+
`);
|
|
198
|
+
},
|
|
199
|
+
},
|
|
200
|
+
{
|
|
201
|
+
version: 10,
|
|
202
|
+
up(db) {
|
|
203
|
+
// When a log entry was last edited. Null until an edit actually
|
|
204
|
+
// changes something, so "never edited" needs no separate flag.
|
|
205
|
+
db.exec(`ALTER TABLE log_entries ADD COLUMN updated_at TEXT;`);
|
|
206
|
+
},
|
|
207
|
+
},
|
|
179
208
|
];
|
|
180
209
|
//# sourceMappingURL=migrations.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"migrations.js","sourceRoot":"","sources":["../../src/db/migrations.ts"],"names":[],"mappings":";;;AAOa,QAAA,UAAU,GAAgB;IACrC;QACE,OAAO,EAAE,CAAC;QACV,EAAE,CAAC,EAAE;YACH,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6CP,CAAC,CAAC;QACL,CAAC;KACF;IACD;QACE,OAAO,EAAE,CAAC;QACV,EAAE,CAAC,EAAE;YACH,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;OAmBP,CAAC,CAAC;QACL,CAAC;KACF;IACD;QACE,OAAO,EAAE,CAAC;QACV,EAAE,CAAC,EAAE;YACH,qEAAqE;YACrE,yEAAyE;YACzE,8CAA8C;YAC9C,EAAE,CAAC,IAAI,CAAC,6CAA6C,CAAC,CAAC;QACzD,CAAC;KACF;IACD;QACE,OAAO,EAAE,CAAC;QACV,EAAE,CAAC,EAAE;YACH,uEAAuE;YACvE,yEAAyE;YACzE,mEAAmE;YACnE,wEAAwE;YACxE,wEAAwE;YACxE,EAAE,CAAC,IAAI,CAAC,0DAA0D,CAAC,CAAC;YACpE,EAAE,CAAC,IAAI,CAAC,sDAAsD,CAAC,CAAC;QAClE,CAAC;KACF;IACD;QACE,OAAO,EAAE,CAAC;QACV,EAAE,CAAC,EAAE;YACH,mEAAmE;YACnE,mEAAmE;YACnE,kEAAkE;YAClE,EAAE,CAAC,IAAI,CACL,sEAAsE,CACvE,CAAC;QACJ,CAAC;KACF;IACD;QACE,OAAO,EAAE,CAAC;QACV,EAAE,CAAC,EAAE;YACH,uEAAuE;YACvE,wEAAwE;YACxE,uEAAuE;YACvE,sEAAsE;YACtE,uDAAuD;YACvD,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;OAmBP,CAAC,CAAC;QACL,CAAC;KACF;IACD;QACE,OAAO,EAAE,CAAC;QACV,EAAE,CAAC,EAAE;YACH,sEAAsE;YACtE,oEAAoE;YACpE,mEAAmE;YACnE,mEAAmE;YACnE,8CAA8C;YAC9C,EAAE,CAAC,IAAI,CACL,uEAAuE,CACxE,CAAC;YACF,EAAE,CAAC,IAAI,CAAC;;;;OAIP,CAAC,CAAC;QACL,CAAC;KACF;IACD;QACE,OAAO,EAAE,CAAC;QACV,EAAE,CAAC,EAAE;YACH,uEAAuE;YACvE,sEAAsE;YACtE,gEAAgE;YAChE,+DAA+D;YAC/D,uCAAuC;YACvC,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;OAWP,CAAC,CAAC;QACL,CAAC;KACF;CACF,CAAC"}
|
|
1
|
+
{"version":3,"file":"migrations.js","sourceRoot":"","sources":["../../src/db/migrations.ts"],"names":[],"mappings":";;;AAOa,QAAA,UAAU,GAAgB;IACrC;QACE,OAAO,EAAE,CAAC;QACV,EAAE,CAAC,EAAE;YACH,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA6CP,CAAC,CAAC;QACL,CAAC;KACF;IACD;QACE,OAAO,EAAE,CAAC;QACV,EAAE,CAAC,EAAE;YACH,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;OAmBP,CAAC,CAAC;QACL,CAAC;KACF;IACD;QACE,OAAO,EAAE,CAAC;QACV,EAAE,CAAC,EAAE;YACH,qEAAqE;YACrE,yEAAyE;YACzE,8CAA8C;YAC9C,EAAE,CAAC,IAAI,CAAC,6CAA6C,CAAC,CAAC;QACzD,CAAC;KACF;IACD;QACE,OAAO,EAAE,CAAC;QACV,EAAE,CAAC,EAAE;YACH,uEAAuE;YACvE,yEAAyE;YACzE,mEAAmE;YACnE,wEAAwE;YACxE,wEAAwE;YACxE,EAAE,CAAC,IAAI,CAAC,0DAA0D,CAAC,CAAC;YACpE,EAAE,CAAC,IAAI,CAAC,sDAAsD,CAAC,CAAC;QAClE,CAAC;KACF;IACD;QACE,OAAO,EAAE,CAAC;QACV,EAAE,CAAC,EAAE;YACH,mEAAmE;YACnE,mEAAmE;YACnE,kEAAkE;YAClE,EAAE,CAAC,IAAI,CACL,sEAAsE,CACvE,CAAC;QACJ,CAAC;KACF;IACD;QACE,OAAO,EAAE,CAAC;QACV,EAAE,CAAC,EAAE;YACH,uEAAuE;YACvE,wEAAwE;YACxE,uEAAuE;YACvE,sEAAsE;YACtE,uDAAuD;YACvD,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;OAmBP,CAAC,CAAC;QACL,CAAC;KACF;IACD;QACE,OAAO,EAAE,CAAC;QACV,EAAE,CAAC,EAAE;YACH,sEAAsE;YACtE,oEAAoE;YACpE,mEAAmE;YACnE,mEAAmE;YACnE,8CAA8C;YAC9C,EAAE,CAAC,IAAI,CACL,uEAAuE,CACxE,CAAC;YACF,EAAE,CAAC,IAAI,CAAC;;;;OAIP,CAAC,CAAC;QACL,CAAC;KACF;IACD;QACE,OAAO,EAAE,CAAC;QACV,EAAE,CAAC,EAAE;YACH,uEAAuE;YACvE,sEAAsE;YACtE,gEAAgE;YAChE,+DAA+D;YAC/D,uCAAuC;YACvC,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;OAWP,CAAC,CAAC;QACL,CAAC;KACF;IACD;QACE,OAAO,EAAE,CAAC;QACV,EAAE,CAAC,EAAE;YACH,uEAAuE;YACvE,qEAAqE;YACrE,uEAAuE;YACvE,sDAAsD;YACtD,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;OAWP,CAAC,CAAC;QACL,CAAC;KACF;IACD;QACE,OAAO,EAAE,EAAE;QACX,EAAE,CAAC,EAAE;YACH,gEAAgE;YAChE,+DAA+D;YAC/D,EAAE,CAAC,IAAI,CAAC,qDAAqD,CAAC,CAAC;QACjE,CAAC;KACF;CACF,CAAC"}
|
package/dist/files/store.js
CHANGED
|
@@ -80,18 +80,28 @@ class FileTooLargeError extends Error {
|
|
|
80
80
|
}
|
|
81
81
|
exports.FileTooLargeError = FileTooLargeError;
|
|
82
82
|
/**
|
|
83
|
-
* On-disk home for
|
|
84
|
-
*
|
|
85
|
-
*
|
|
86
|
-
*
|
|
87
|
-
*
|
|
88
|
-
*
|
|
83
|
+
* On-disk home for attachments, with `<root>` under the plugin data
|
|
84
|
+
* directory: a task's files at `<root>/<task_id>/<token>-<name>`, a log
|
|
85
|
+
* entry's at `<root>/logs/<log_id>/<token>-<name>` (task directories are
|
|
86
|
+
* numeric, so `logs` can't collide). The database row (FilesRepo /
|
|
87
|
+
* LogFilesRepo) holds the path relative to `<root>`, so the data directory
|
|
88
|
+
* can move as a whole. Uploads stream into `<root>/tmp` and are renamed into
|
|
89
|
+
* place only once fully written, so a crash or an over-limit upload never
|
|
90
|
+
* leaves a half-file where an owner would find it.
|
|
89
91
|
*/
|
|
90
92
|
class FileStore {
|
|
91
93
|
root;
|
|
92
94
|
constructor(root) {
|
|
93
95
|
this.root = root;
|
|
94
96
|
}
|
|
97
|
+
/** Where a task's files live, relative to the root. */
|
|
98
|
+
static taskDir(taskId) {
|
|
99
|
+
return String(taskId);
|
|
100
|
+
}
|
|
101
|
+
/** Where a log entry's files live, relative to the root. */
|
|
102
|
+
static logDir(logId) {
|
|
103
|
+
return path.join('logs', String(logId));
|
|
104
|
+
}
|
|
95
105
|
absolute(relPath) {
|
|
96
106
|
return path.join(this.root, relPath);
|
|
97
107
|
}
|
|
@@ -137,10 +147,13 @@ class FileStore {
|
|
|
137
147
|
source.pipe(out);
|
|
138
148
|
});
|
|
139
149
|
}
|
|
140
|
-
/**
|
|
141
|
-
|
|
150
|
+
/**
|
|
151
|
+
* Move a finished temp file under its owner's directory (taskDir / logDir,
|
|
152
|
+
* relative to the root); returns the relative path.
|
|
153
|
+
*/
|
|
154
|
+
commit(tmpPath, dir, name) {
|
|
142
155
|
const token = crypto.randomBytes(4).toString('hex');
|
|
143
|
-
const relPath = path.join(
|
|
156
|
+
const relPath = path.join(dir, `${token}-${safeName(name)}`);
|
|
144
157
|
const dest = this.absolute(relPath);
|
|
145
158
|
fs.mkdirSync(path.dirname(dest), { recursive: true });
|
|
146
159
|
fs.renameSync(tmpPath, dest);
|
|
@@ -154,10 +167,14 @@ class FileStore {
|
|
|
154
167
|
}
|
|
155
168
|
/** Drop a task's whole directory (task deleted). */
|
|
156
169
|
removeTask(taskId) {
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
170
|
+
this.removeDir(FileStore.taskDir(taskId));
|
|
171
|
+
}
|
|
172
|
+
/** Drop a log entry's whole directory (entry deleted). */
|
|
173
|
+
removeLog(logId) {
|
|
174
|
+
this.removeDir(FileStore.logDir(logId));
|
|
175
|
+
}
|
|
176
|
+
removeDir(dir) {
|
|
177
|
+
fs.rmSync(this.absolute(dir), { recursive: true, force: true });
|
|
161
178
|
}
|
|
162
179
|
}
|
|
163
180
|
exports.FileStore = FileStore;
|
package/dist/files/store.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/files/store.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiBA,oCAKC;AAGD,sCAGC;AA5BD,oDAAsC;AACtC,4CAA8B;AAC9B,gDAAkC;AAGlC,6CAA6C;AAChC,QAAA,cAAc,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAEjD;;;;;;;;GAQG;AACH,SAAgB,YAAY,CAAC,IAA+B;IAC1D,MAAM,CAAC,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;IAC9B,IAAI,CAAC,KAAK,IAAI,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IACnD,IAAI,CAAC,KAAK,iBAAiB,IAAI,CAAC,KAAK,YAAY;QAAE,OAAO,IAAI,CAAC;IAC/D,OAAO,wBAAwB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC1C,CAAC;AAED,4EAA4E;AAC5E,SAAgB,aAAa,CAAC,IAA+B;IAC3D,MAAM,CAAC,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;IAC9B,OAAO,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC;AACjE,CAAC;AAED,gEAAgE;AAChE,SAAS,aAAa,CAAC,IAA+B;IACpD,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IACvB,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAClD,OAAO,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACpC,CAAC;AAED,8DAA8D;AAC9D,MAAa,iBAAkB,SAAQ,KAAK;IACvB;IAAnB,YAAmB,QAAgB;QACjC,KAAK,CAAC,oBAAoB,QAAQ,aAAa,CAAC,CAAC;QADhC,aAAQ,GAAR,QAAQ,CAAQ;IAEnC,CAAC;CACF;AAJD,8CAIC;AAED
|
|
1
|
+
{"version":3,"file":"store.js","sourceRoot":"","sources":["../../src/files/store.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiBA,oCAKC;AAGD,sCAGC;AA5BD,oDAAsC;AACtC,4CAA8B;AAC9B,gDAAkC;AAGlC,6CAA6C;AAChC,QAAA,cAAc,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAEjD;;;;;;;;GAQG;AACH,SAAgB,YAAY,CAAC,IAA+B;IAC1D,MAAM,CAAC,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;IAC9B,IAAI,CAAC,KAAK,IAAI,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IACnD,IAAI,CAAC,KAAK,iBAAiB,IAAI,CAAC,KAAK,YAAY;QAAE,OAAO,IAAI,CAAC;IAC/D,OAAO,wBAAwB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC1C,CAAC;AAED,4EAA4E;AAC5E,SAAgB,aAAa,CAAC,IAA+B;IAC3D,MAAM,CAAC,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;IAC9B,OAAO,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,YAAY,CAAC,CAAC,CAAC,CAAC;AACjE,CAAC;AAED,gEAAgE;AAChE,SAAS,aAAa,CAAC,IAA+B;IACpD,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAC;IACvB,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAClD,OAAO,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACpC,CAAC;AAED,8DAA8D;AAC9D,MAAa,iBAAkB,SAAQ,KAAK;IACvB;IAAnB,YAAmB,QAAgB;QACjC,KAAK,CAAC,oBAAoB,QAAQ,aAAa,CAAC,CAAC;QADhC,aAAQ,GAAR,QAAQ,CAAQ;IAEnC,CAAC;CACF;AAJD,8CAIC;AAED;;;;;;;;;GASG;AACH,MAAa,SAAS;IACC;IAArB,YAAqB,IAAY;QAAZ,SAAI,GAAJ,IAAI,CAAQ;IAAG,CAAC;IAErC,uDAAuD;IACvD,MAAM,CAAC,OAAO,CAAC,MAAc;QAC3B,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC;IACxB,CAAC;IAED,4DAA4D;IAC5D,MAAM,CAAC,MAAM,CAAC,KAAa;QACzB,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IAC1C,CAAC;IAED,QAAQ,CAAC,OAAe;QACtB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACvC,CAAC;IAED;;;OAGG;IACH,SAAS,CACP,MAAgB,EAChB,QAAgB;QAEhB,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC3C,EAAE,CAAC,SAAS,CAAC,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1C,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;QAC1E,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,MAAM,GAAG,GAAG,EAAE,CAAC,iBAAiB,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YAC3D,IAAI,IAAI,GAAG,CAAC,CAAC;YACb,IAAI,OAAO,GAAG,KAAK,CAAC;YACpB,MAAM,IAAI,GAAG,CAAC,GAAU,EAAE,EAAE;gBAC1B,IAAI,OAAO;oBAAE,OAAO;gBACpB,OAAO,GAAG,IAAI,CAAC;gBACf,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;gBACnB,GAAG,CAAC,OAAO,EAAE,CAAC;gBACd,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;YACrD,CAAC,CAAC;YACF,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;gBAClC,IAAI,IAAI,KAAK,CAAC,MAAM,CAAC;gBACrB,IAAI,IAAI,GAAG,QAAQ;oBAAE,IAAI,CAAC,IAAI,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CAAC;YAC7D,CAAC,CAAC,CAAC;YACH,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YACzB,qEAAqE;YACrE,uDAAuD;YACvD,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;gBACtB,IAAK,MAAiC,CAAC,QAAQ,KAAK,KAAK;oBACvD,IAAI,CAAC,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC;YACtC,CAAC,CAAC,CAAC;YACH,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YACtB,GAAG,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;gBACpB,IAAI,OAAO;oBAAE,OAAO;gBACpB,OAAO,GAAG,IAAI,CAAC;gBACf,OAAO,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;YAC7B,CAAC,CAAC,CAAC;YACH,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACnB,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,OAAe,EAAE,GAAW,EAAE,IAAY;QAC/C,MAAM,KAAK,GAAG,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACpD,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,IAAI,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC7D,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACpC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACtD,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAC7B,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,OAAO,CAAC,OAAe;QACrB,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACtC,CAAC;IAED,MAAM,CAAC,OAAe;QACpB,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACrD,CAAC;IAED,oDAAoD;IACpD,UAAU,CAAC,MAAc;QACvB,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;IAC5C,CAAC;IAED,0DAA0D;IAC1D,SAAS,CAAC,KAAa;QACrB,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;IAC1C,CAAC;IAEO,SAAS,CAAC,GAAW;QAC3B,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IAClE,CAAC;CACF;AA9FD,8BA8FC;AAED;;;;;GAKG;AACH,SAAS,QAAQ,CAAC,IAAY;IAC5B,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,mBAAmB,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAC3E,OAAO,CAAC,OAAO,IAAI,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AAC3C,CAAC"}
|