@wrenautomation/aerie 0.4.2 → 0.4.3
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/bin.js +73 -73
- package/dist/bin.js.map +4 -4
- package/dist/core/address.d.ts +21 -0
- package/dist/core/address.js +101 -0
- package/dist/core/address.js.map +1 -0
- package/dist/core/index.d.ts +1 -0
- package/dist/core/index.js +1 -0
- package/dist/core/index.js.map +1 -1
- package/dist/core/task.d.ts +5 -0
- package/dist/core/task.js +45 -0
- package/dist/core/task.js.map +1 -1
- package/dist/http.d.ts +4 -2
- package/dist/http.js +5 -2
- package/dist/http.js.map +1 -1
- package/dist/peers-coord.js +90 -80
- package/dist/peers-coord.js.map +4 -4
- package/drizzle/0007_live_notify.sql +40 -0
- package/drizzle/meta/0007_snapshot.json +1520 -0
- package/drizzle/meta/_journal.json +7 -0
- package/package.json +1 -1
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { type Filter, type Sort } from "./filter.js";
|
|
2
|
+
export declare const VIEW_LAYOUTS: readonly ["list", "board", "columns"];
|
|
3
|
+
export type ViewLayout = (typeof VIEW_LAYOUTS)[number];
|
|
4
|
+
/** what the page shows; `text` goes to the search route, never to `matches` (a list row has no long text) */
|
|
5
|
+
export interface AddressView {
|
|
6
|
+
filter: Filter;
|
|
7
|
+
sort: Sort[];
|
|
8
|
+
group?: string;
|
|
9
|
+
layout: ViewLayout;
|
|
10
|
+
text?: string;
|
|
11
|
+
}
|
|
12
|
+
/** the address keys a view owns; the page's own keys (`task`) stay outside */
|
|
13
|
+
export declare const VIEW_KEYS: readonly ["area", "sub", "status", "priority", "type", "milestone", "label", "assignee", "holder", "who", "role", "parent", "open", "q", "sort", "group", "layout"];
|
|
14
|
+
interface Query {
|
|
15
|
+
get(k: string): string | null;
|
|
16
|
+
getAll(k: string): string[];
|
|
17
|
+
}
|
|
18
|
+
export declare function viewOfAddress(q: Query): AddressView;
|
|
19
|
+
/** the view as address pairs, in `VIEW_KEYS` order; defaults (list layout, subtree on) leave no key */
|
|
20
|
+
export declare function addressOfView(v: AddressView): [string, string][];
|
|
21
|
+
export {};
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import { GROUP_KEYS } from "./fields.js";
|
|
2
|
+
import { SORT_FIELDS } from "./filter.js";
|
|
3
|
+
export const VIEW_LAYOUTS = ["list", "board", "columns"];
|
|
4
|
+
const ROLES = ["owner", "manager", "doer", "watcher"];
|
|
5
|
+
/** the address keys a view owns; the page's own keys (`task`) stay outside */
|
|
6
|
+
export const VIEW_KEYS = [
|
|
7
|
+
"area",
|
|
8
|
+
"sub",
|
|
9
|
+
"status",
|
|
10
|
+
"priority",
|
|
11
|
+
"type",
|
|
12
|
+
"milestone",
|
|
13
|
+
"label",
|
|
14
|
+
"assignee",
|
|
15
|
+
"holder",
|
|
16
|
+
"who",
|
|
17
|
+
"role",
|
|
18
|
+
"parent",
|
|
19
|
+
"open",
|
|
20
|
+
"q",
|
|
21
|
+
"sort",
|
|
22
|
+
"group",
|
|
23
|
+
"layout",
|
|
24
|
+
];
|
|
25
|
+
const list = (q, k) => q.getAll(k).filter(Boolean);
|
|
26
|
+
export function viewOfAddress(q) {
|
|
27
|
+
const f = {};
|
|
28
|
+
for (const k of ["area", "status", "priority", "type", "milestone", "label"]) {
|
|
29
|
+
const v = list(q, k);
|
|
30
|
+
if (v.length)
|
|
31
|
+
f[k] = v;
|
|
32
|
+
}
|
|
33
|
+
if (f.area && q.get("sub") === "0")
|
|
34
|
+
f.subtree = false;
|
|
35
|
+
for (const k of ["assignee", "holder", "parent"]) {
|
|
36
|
+
const v = q.get(k);
|
|
37
|
+
if (v)
|
|
38
|
+
f[k] = v;
|
|
39
|
+
}
|
|
40
|
+
const who = q.get("who");
|
|
41
|
+
if (who) {
|
|
42
|
+
const roles = list(q, "role").filter((r) => ROLES.includes(r));
|
|
43
|
+
f.role = roles.length ? { actor: who, roles } : { actor: who };
|
|
44
|
+
}
|
|
45
|
+
if (q.get("open") === "1")
|
|
46
|
+
f.openChecks = true;
|
|
47
|
+
const sort = (q.get("sort") ?? "")
|
|
48
|
+
.split(",")
|
|
49
|
+
.map((s) => s.split(":"))
|
|
50
|
+
.filter(([field]) => SORT_FIELDS.includes(field))
|
|
51
|
+
.map(([field, dir]) => ({ field: field, dir: dir === "desc" ? "desc" : "asc" }));
|
|
52
|
+
const group = q.get("group");
|
|
53
|
+
const layout = q.get("layout");
|
|
54
|
+
const text = q.get("q")?.trim();
|
|
55
|
+
return {
|
|
56
|
+
filter: f,
|
|
57
|
+
sort,
|
|
58
|
+
...(group && GROUP_KEYS.includes(group) ? { group } : {}),
|
|
59
|
+
layout: VIEW_LAYOUTS.includes(layout) ? layout : "list",
|
|
60
|
+
...(text ? { text } : {}),
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
/** the view as address pairs, in `VIEW_KEYS` order; defaults (list layout, subtree on) leave no key */
|
|
64
|
+
export function addressOfView(v) {
|
|
65
|
+
const f = v.filter;
|
|
66
|
+
const out = [];
|
|
67
|
+
const many = (k, vs) => {
|
|
68
|
+
for (const x of vs ?? [])
|
|
69
|
+
out.push([k, x]);
|
|
70
|
+
};
|
|
71
|
+
many("area", f.area);
|
|
72
|
+
if (f.area?.length && f.subtree === false)
|
|
73
|
+
out.push(["sub", "0"]);
|
|
74
|
+
many("status", f.status);
|
|
75
|
+
many("priority", f.priority);
|
|
76
|
+
many("type", f.type);
|
|
77
|
+
many("milestone", f.milestone);
|
|
78
|
+
many("label", f.label);
|
|
79
|
+
if (f.assignee)
|
|
80
|
+
out.push(["assignee", f.assignee]);
|
|
81
|
+
if (f.holder)
|
|
82
|
+
out.push(["holder", f.holder]);
|
|
83
|
+
if (f.role) {
|
|
84
|
+
out.push(["who", f.role.actor]);
|
|
85
|
+
many("role", f.role.roles);
|
|
86
|
+
}
|
|
87
|
+
if (f.parent)
|
|
88
|
+
out.push(["parent", f.parent]);
|
|
89
|
+
if (f.openChecks)
|
|
90
|
+
out.push(["open", "1"]);
|
|
91
|
+
if (v.text)
|
|
92
|
+
out.push(["q", v.text]);
|
|
93
|
+
if (v.sort.length)
|
|
94
|
+
out.push(["sort", v.sort.map((s) => `${s.field}:${s.dir}`).join(",")]);
|
|
95
|
+
if (v.group)
|
|
96
|
+
out.push(["group", v.group]);
|
|
97
|
+
if (v.layout !== "list")
|
|
98
|
+
out.push(["layout", v.layout]);
|
|
99
|
+
return out;
|
|
100
|
+
}
|
|
101
|
+
//# sourceMappingURL=address.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"address.js","sourceRoot":"","sources":["../../src/core/address.ts"],"names":[],"mappings":"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"}
|
package/dist/core/index.d.ts
CHANGED
package/dist/core/index.js
CHANGED
package/dist/core/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,sGAAsG;AACtG,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,sGAAsG;AACtG,cAAc,cAAc,CAAC;AAC7B,cAAc,WAAW,CAAC;AAC1B,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,WAAW,CAAC"}
|
package/dist/core/task.d.ts
CHANGED
|
@@ -46,5 +46,10 @@ export declare const STATUSES: readonly ["To Do", "In Progress", "Needs Human In
|
|
|
46
46
|
export declare const PRIORITIES: readonly ["high", "medium", "low"];
|
|
47
47
|
/** Instant to ISO, second precision; `YYYY-MM-DD HH:MM` (old Backlog.md) reads as UTC. */
|
|
48
48
|
export declare function instant(v: unknown): string | undefined;
|
|
49
|
+
/**
|
|
50
|
+
* The description's first sentence, whole: what a list row and a board card show under the title (no clamp).
|
|
51
|
+
* Skips headings and blank lines; a list's first item counts; markdown emphasis and code ticks drop.
|
|
52
|
+
*/
|
|
53
|
+
export declare function summaryOf(description: string | undefined): string | undefined;
|
|
49
54
|
/** Two tasks mean the same: what the mirror compares before it writes. */
|
|
50
55
|
export declare function sameTask(a: Task, b: Task): boolean;
|
package/dist/core/task.js
CHANGED
|
@@ -21,6 +21,51 @@ export function instant(v) {
|
|
|
21
21
|
throw new Error(`not a date: ${s}`);
|
|
22
22
|
return d.toISOString().replace(/\.\d{3}Z$/, "Z");
|
|
23
23
|
}
|
|
24
|
+
const SHORT = 40;
|
|
25
|
+
/** words whose period never ends a sentence */
|
|
26
|
+
const ABBREV = /(?:^|[\s(])(?:e\.g|i\.e|etc|vs|cf|approx|no|incl|Mr|Ms|Dr|St)\.$/i;
|
|
27
|
+
/**
|
|
28
|
+
* The description's first sentence, whole: what a list row and a board card show under the title (no clamp).
|
|
29
|
+
* Skips headings and blank lines; a list's first item counts; markdown emphasis and code ticks drop.
|
|
30
|
+
*/
|
|
31
|
+
export function summaryOf(description) {
|
|
32
|
+
if (!description)
|
|
33
|
+
return undefined;
|
|
34
|
+
const para = [];
|
|
35
|
+
for (const raw of description.split("\n")) {
|
|
36
|
+
const line = raw.trim();
|
|
37
|
+
if (!line || /^#{1,6}\s/.test(line) || /^(```|<!--|---$|\|)/.test(line)) {
|
|
38
|
+
if (para.length)
|
|
39
|
+
break;
|
|
40
|
+
continue;
|
|
41
|
+
}
|
|
42
|
+
const item = /^(?:[-*+]|\d+[.)])\s+(?:\[[ xX]\]\s+)?(.*)$/.exec(line);
|
|
43
|
+
if (item) {
|
|
44
|
+
if (para.length)
|
|
45
|
+
break;
|
|
46
|
+
para.push(item[1] ?? "");
|
|
47
|
+
break;
|
|
48
|
+
}
|
|
49
|
+
para.push(line);
|
|
50
|
+
}
|
|
51
|
+
const text = para
|
|
52
|
+
.join(" ")
|
|
53
|
+
.replace(/\*\*|__|`/g, "")
|
|
54
|
+
.replace(/\[([^\]]*)\]\([^)]*\)/g, "$1")
|
|
55
|
+
.replace(/\s+/g, " ")
|
|
56
|
+
.trim();
|
|
57
|
+
if (!text)
|
|
58
|
+
return undefined;
|
|
59
|
+
// a sentence ends at . ! ? before a space and a capital, a digit or an opening mark
|
|
60
|
+
const end = /[.!?](?=\s+["'([A-Z0-9])/g;
|
|
61
|
+
for (let m = end.exec(text); m; m = end.exec(text)) {
|
|
62
|
+
const head = text.slice(0, m.index + 1);
|
|
63
|
+
// "William 11-04." says nothing alone: a summary runs to a sentence end past SHORT
|
|
64
|
+
if (head.length >= SHORT && !ABBREV.test(head))
|
|
65
|
+
return head;
|
|
66
|
+
}
|
|
67
|
+
return text;
|
|
68
|
+
}
|
|
24
69
|
/** Two tasks mean the same: what the mirror compares before it writes. */
|
|
25
70
|
export function sameTask(a, b) {
|
|
26
71
|
return canonical(a) === canonical(b);
|
package/dist/core/task.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"task.js","sourceRoot":"","sources":["../../src/core/task.ts"],"names":[],"mappings":"AAAA,8GAA8G;AAiD9G,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB,OAAO;IACP,aAAa;IACb,mBAAmB;IACnB,SAAS;IACT,QAAQ;IACR,MAAM;CACE,CAAC;AACX,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAU,CAAC;AAE7D,0FAA0F;AAC1F,MAAM,UAAU,OAAO,CAAC,CAAU;IAChC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE;QAAE,OAAO,SAAS,CAAC;IAC5C,IAAI,CAAC,YAAY,IAAI;QAAE,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;IACxE,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAC3B,MAAM,CAAC,GAAG,0DAA0D,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC7E,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC;IACpF,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;IACnE,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;AACnD,CAAC;AAED,0EAA0E;AAC1E,MAAM,UAAU,QAAQ,CAAC,CAAO,EAAE,CAAO;IACvC,OAAO,SAAS,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC;AACvC,CAAC;AAED,mFAAmF;AACnF,SAAS,SAAS,CAAC,CAAO;IACxB,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,SAAS,EAAE,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC;IACjD,MAAM,MAAM,GAAG,CAAC,CAAU,EAAW,EAAE,CACrC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC;QACd,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC;QACf,CAAC,CAAC,CAAC,IAAI,OAAO,CAAC,KAAK,QAAQ;YAC1B,CAAC,CAAC,MAAM,CAAC,WAAW,CAChB,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;iBACd,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,SAAS,CAAC;iBAClC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;iBACpC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CACnC;YACH,CAAC,CAAC,CAAC,CAAC;IACV,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;AACnC,CAAC"}
|
|
1
|
+
{"version":3,"file":"task.js","sourceRoot":"","sources":["../../src/core/task.ts"],"names":[],"mappings":"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"}
|
package/dist/http.d.ts
CHANGED
|
@@ -11,8 +11,10 @@ export * from "./routes.js";
|
|
|
11
11
|
/** A task as the board and list show it: the long text fields stay on the server (`task` reads them). */
|
|
12
12
|
export type TaskRow = Omit<TaskRecord, "description" | "plan" | "notes" | "finalSummary" | "comments" | "extra" | "stray"> & {
|
|
13
13
|
comments: number;
|
|
14
|
+
/** the description's first sentence, whole (`summaryOf`): the row's second line */
|
|
15
|
+
summary?: string;
|
|
14
16
|
};
|
|
15
|
-
export declare const rowOf: ({ description
|
|
17
|
+
export declare const rowOf: ({ description, plan: _p, notes: _n, finalSummary: _f, extra: _e, stray: _s, comments, ...t }: TaskRecord) => TaskRow;
|
|
16
18
|
/** Every route's input shape; a host merges its own fields (viewer, signature) beside them. */
|
|
17
19
|
export declare const AERIE_INPUTS: {
|
|
18
20
|
readonly board: {};
|
|
@@ -265,8 +267,8 @@ export declare const AERIE_INPUTS: {
|
|
|
265
267
|
}, z.core.$strict>>;
|
|
266
268
|
readonly groupBy: z.ZodOptional<z.ZodString>;
|
|
267
269
|
readonly layout: z.ZodEnum<{
|
|
268
|
-
board: "board";
|
|
269
270
|
list: "list";
|
|
271
|
+
board: "board";
|
|
270
272
|
columns: "columns";
|
|
271
273
|
}>;
|
|
272
274
|
readonly columns: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
package/dist/http.js
CHANGED
|
@@ -4,13 +4,16 @@
|
|
|
4
4
|
* Validation happens here once; the host never repeats it.
|
|
5
5
|
*/
|
|
6
6
|
import { z } from "zod";
|
|
7
|
-
import { STATUSES } from "./core/index.js";
|
|
7
|
+
import { STATUSES, summaryOf } from "./core/index.js";
|
|
8
8
|
import { AerieError } from "./db.js";
|
|
9
9
|
import { TASK_WRITES } from "./routes.js";
|
|
10
10
|
import { AREA_ROLES, LAYOUTS } from "./schema.js";
|
|
11
11
|
import { rank } from "./search.js";
|
|
12
12
|
export * from "./routes.js";
|
|
13
|
-
export const rowOf = ({ description
|
|
13
|
+
export const rowOf = ({ description, plan: _p, notes: _n, finalSummary: _f, extra: _e, stray: _s, comments, ...t }) => {
|
|
14
|
+
const summary = summaryOf(description);
|
|
15
|
+
return { ...t, comments: comments.length, ...(summary ? { summary } : {}) };
|
|
16
|
+
};
|
|
14
17
|
const ID = z.string().trim().min(1).max(64);
|
|
15
18
|
const TEXT = z.string().max(20_000);
|
|
16
19
|
const LIST = z.array(z.string().max(200)).max(200);
|
package/dist/http.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http.js","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"http.js","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAmB,WAAW,EAAE,MAAM,aAAa,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAClD,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAGnC,cAAc,aAAa,CAAC;AAY5B,MAAM,CAAC,MAAM,KAAK,GAAG,CAAC,EACpB,WAAW,EACX,IAAI,EAAE,EAAE,EACR,KAAK,EAAE,EAAE,EACT,YAAY,EAAE,EAAE,EAChB,KAAK,EAAE,EAAE,EACT,KAAK,EAAE,EAAE,EACT,QAAQ,EACR,GAAG,CAAC,EACO,EAAW,EAAE;IACxB,MAAM,OAAO,GAAG,SAAS,CAAC,WAAW,CAAC,CAAC;IACvC,OAAO,EAAE,GAAG,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;AAC9E,CAAC,CAAC;AAEF,MAAM,EAAE,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAC5C,MAAM,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AACpC,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACnD,MAAM,KAAK,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,gBAAgB,CAAC,CAAC,CAAC;AAC7E,MAAM,MAAM,GAAG,CAAC,CAAC,YAAY,CAAC;IAC5B,GAAG,EAAE,IAAI,CAAC,QAAQ,EAAE;IACpB,MAAM,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE;IAC9C,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE;IAC7C,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC,QAAQ,EAAE;IAC/C,OAAO,EAAE,IAAI,CAAC,QAAQ,EAAE;IACxB,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;CAC9B,CAAC,CAAC;AACH,MAAM,MAAM,GAAG,CAAC,CAAC,YAAY,CAAC;IAC5B,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE;IACrB,OAAO,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC/B,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE;IACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE;IACzB,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE;IACrB,SAAS,EAAE,IAAI,CAAC,QAAQ,EAAE;IAC1B,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE;IACtB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;IACxC,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;IACtC,MAAM,EAAE,EAAE,CAAC,QAAQ,EAAE;IACrB,GAAG,EAAE,IAAI,CAAC,QAAQ,EAAE;IACpB,UAAU,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAClC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;IACpC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE;IAChC,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE;IAC3C,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE;IAC5C,YAAY,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE;IAC3C,aAAa,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE;IAC5C,IAAI,EAAE,CAAC;SACJ,YAAY,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC;SAC3F,QAAQ,EAAE;CACd,CAAC,CAAC;AACH,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAClB,CAAC,CAAC,YAAY,CAAC;IACb,KAAK,EAAE,CAAC,CAAC,IAAI,CAAC;QACZ,IAAI;QACJ,OAAO;QACP,QAAQ;QACR,UAAU;QACV,SAAS;QACT,WAAW;QACX,WAAW;QACX,MAAM;KACP,CAAC;IACF,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;CAC7B,CAAC,CACH,CAAC;AACF,MAAM,IAAI,GAAG;IACX,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;IACnD,WAAW,EAAE,IAAI,CAAC,QAAQ,EAAE;IAC5B,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,QAAQ,EAAE;IACnC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE;IACrD,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE;IACnC,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE;IACxC,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,OAAO,EAAE;IAC7B,QAAQ,EAAE,EAAE,CAAC,OAAO,EAAE;IACtB,SAAS,EAAE,IAAI,CAAC,QAAQ,EAAE;IAC1B,MAAM,EAAE,IAAI,CAAC,QAAQ,EAAE;IACvB,SAAS,EAAE,IAAI,CAAC,QAAQ,EAAE;IAC1B,YAAY,EAAE,IAAI,CAAC,QAAQ,EAAE;IAC7B,OAAO,EAAE,IAAI,CAAC,QAAQ,EAAE;IACxB,SAAS,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IACjC,UAAU,EAAE,IAAI,CAAC,QAAQ,EAAE;IAC3B,EAAE,EAAE,MAAM,CAAC,QAAQ,EAAE;IACrB,GAAG,EAAE,MAAM,CAAC,QAAQ,EAAE;IACtB,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE;IACrB,UAAU,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE;IACpC,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE;IACtB,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE;IACrC,YAAY,EAAE,IAAI,CAAC,QAAQ,EAAE;IAC7B,kBAAkB,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE;IAC5C,iBAAiB,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IACzC,YAAY;IACZ,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE;IACpC,UAAU,EAAE,IAAI,CAAC,QAAQ,EAAE;IAC3B,aAAa,EAAE,IAAI,CAAC,QAAQ,EAAE;IAC9B,KAAK,EAAE,KAAK,CAAC,QAAQ,EAAE;CACxB,CAAC;AAEF,+FAA+F;AAC/F,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,KAAK,EAAE,EAAE;IACT,KAAK,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAE;IAC3D,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;IAChB,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,EAAE;IACrF,SAAS,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,EAAE;IAC3C,IAAI,EAAE;QACJ,EAAE,EAAE,EAAE;QACN,MAAM,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,qDAAqD,CAAC;QAC7F,IAAI,EAAE,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC;QAC1B,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE;KACrC;IACD,MAAM,EAAE;QACN,IAAI,EAAE,CAAC,CAAC,YAAY,CAAC,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;QAC3E,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE;KACrC;IACD,QAAQ,EAAE;QACR,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;QACvC,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,IAAI;QACV,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE;QACtC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC;QACvB,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,QAAQ,EAAE;KACxD;IACD,UAAU,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;IACvD,MAAM,EAAE;QACN,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,QAAQ,EAAE;QACtB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC;QACzC,GAAG,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE;KACrC;CACmD,CAAC;AAKvD,MAAM,QAAQ,GAAG,KAAK,EAAE,KAAiB,EAAE,EAAE,CAAC,CAAC,MAAM,KAAK,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,KAAK,IAAI,CAAC;AAE9F,mFAAmF;AACnF,SAAS,SAAS,CAAC,KAAiB;IAClC,OAAO;QACL,KAAK,EAAE,KAAK,EAAE,CAAc,EAAE,EAAU,EAAE,EAAE;YAC1C,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;gBAC3E,KAAK,CAAC,KAAK,EAAE;gBACb,KAAK,CAAC,MAAM,EAAE;gBACd,KAAK,CAAC,UAAU,EAAE;gBAClB,KAAK,CAAC,MAAM,EAAE;gBACd,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;gBACf,QAAQ,CAAC,KAAK,CAAC;aAChB,CAAC,CAAC;YACH,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;QACtE,CAAC;QACD,KAAK,EAAE,KAAK,EAAE,CAAc,EAAE,EAAE,CAC9B,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,EAAE,CAAW,EAAE,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC;QACzE,IAAI,EAAE,KAAK,EAAE,CAAa,EAAE,EAAE;YAC5B,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YACnC,IAAI,CAAC,IAAI;gBAAE,MAAM,IAAI,UAAU,CAAC,WAAW,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,CAAC,CAAC;YACxD,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;QACvD,CAAC;QACD,MAAM,EAAE,KAAK,EAAE,CAAe,EAAE,EAAE,CAChC,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC;QACvF,SAAS,EAAE,CAAC,CAAkB,EAAE,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,IAAI,EAAE,CAAC;QAC5E,IAAI,EAAE,KAAK,EAAE,CAAa,EAAE,EAAU,EAAE,EAAE,CACxC,KAAK,CACH,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAwB,EAAE,EAAE,EAAE;YACrD,MAAM,EAAE,CAAC,CAAC,MAAM;YAChB,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SACjC,CAAC,CACH;QACH,MAAM,EAAE,KAAK,EAAE,CAAe,EAAE,EAAU,EAAE,EAAE,CAC5C,KAAK,CACH,MAAM,KAAK,CAAC,MAAM,CAChB,CAAC,CAAC,IAA4C,EAC9C,EAAE,EACF,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAC5B,CACF;QACH,QAAQ,EAAE,CAAC,CAAiB,EAAE,EAAU,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,EAAE,CAA0B,CAAC;QAC3F,UAAU,EAAE,CAAC,CAAmB,EAAE,EAAU,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC;QAC7E,MAAM,EAAE,KAAK,EAAE,CAAe,EAAE,EAAU,EAAE,EAAE;YAC5C,oEAAoE;YACpE,MAAM,CAAC,CAAC,CAAC,GAAG,MAAM,KAAK,CAAC,SAAS,CAAC,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YACnD,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,IAAI,CAAC,CAAC,MAAM,QAAQ,CAAC,KAAK,CAAC,CAAC;gBAC9C,MAAM,IAAI,UAAU,CAClB,YAAY,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,8DAA8D,EAC5G,GAAG,CACJ,CAAC;YACJ,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;QACjD,CAAC;KAC0E,CAAC;AAChF,CAAC;AAOD,MAAM,UAAU,WAAW,CAAC,KAAiB;IAC3C,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;IAC9B,MAAM,IAAI,GAAG,KAAK,EAAE,CAAa,EAAE,EAAE;QACnC,IAAK,WAAiC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,QAAQ,CAAC,KAAK,CAAC,CAAC;YAC5E,MAAM,IAAI,UAAU,CAClB,wEAAwE,EACxE,GAAG,CACJ,CAAC;IACN,CAAC,CAAC;IACF,OAAO;QACL,0GAA0G;QAC1G,KAAK,CAAC,MAAM,CAAC,KAAa;YACxB,MAAM,EAAE,GAAG,MAAM,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;YAC3C,IAAI,CAAC,EAAE;gBAAE,MAAM,IAAI,UAAU,CAAC,sBAAsB,KAAK,EAAE,EAAE,GAAG,CAAC,CAAC;YAClE,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,0BAA0B;QAC1B,KAAK,CAAC,IAAI,CAAuB,CAAI,EAAE,KAAc,EAAE,EAAU;YAC/D,MAAM,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YAC1D,IAAI,CAAC,MAAM,CAAC,OAAO;gBAAE,MAAM,IAAI,UAAU,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,CAAC;YAC9E,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC;YACd,OAAQ,IAAI,CAAC,CAAC,CAAkD,CAAC,MAAM,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACpF,CAAC;KACF,CAAC;AACJ,CAAC"}
|
package/dist/peers-coord.js
CHANGED
|
@@ -8786,83 +8786,6 @@ var init_area = __esm({
|
|
|
8786
8786
|
}
|
|
8787
8787
|
});
|
|
8788
8788
|
|
|
8789
|
-
// src/core/edit.ts
|
|
8790
|
-
function checks(cs, e, what) {
|
|
8791
|
-
if (!e) return cs;
|
|
8792
|
-
let out = cs.map((c) => ({ ...c }));
|
|
8793
|
-
const at3 = (n) => {
|
|
8794
|
-
const c = out[n - 1];
|
|
8795
|
-
if (!c) throw new Error(`${what} #${n} does not exist (has ${out.length})`);
|
|
8796
|
-
return c;
|
|
8797
|
-
};
|
|
8798
|
-
if (e.clear) out = [];
|
|
8799
|
-
if (e.replace) {
|
|
8800
|
-
const was = new Map(out.map((c) => [c.text.trim(), c.done]));
|
|
8801
|
-
out = e.replace.map((text2) => ({ text: text2.trim(), done: was.get(text2.trim()) ?? false }));
|
|
8802
|
-
}
|
|
8803
|
-
for (const n of e.check ?? []) at3(n).done = true;
|
|
8804
|
-
for (const n of e.uncheck ?? []) at3(n).done = false;
|
|
8805
|
-
if (e.remove?.length) {
|
|
8806
|
-
for (const n of e.remove) at3(n);
|
|
8807
|
-
const drop = new Set(e.remove);
|
|
8808
|
-
out = out.filter((_, i) => !drop.has(i + 1));
|
|
8809
|
-
}
|
|
8810
|
-
for (const text2 of e.add ?? []) out.push({ text: text2.trim(), done: false });
|
|
8811
|
-
return out;
|
|
8812
|
-
}
|
|
8813
|
-
function applyEdit(t, e, now) {
|
|
8814
|
-
const n = { ...t, extra: { ...t.extra } };
|
|
8815
|
-
const set = (k, v) => {
|
|
8816
|
-
if (v === void 0) return;
|
|
8817
|
-
if (v === null || v === "") delete n[k];
|
|
8818
|
-
else n[k] = v;
|
|
8819
|
-
};
|
|
8820
|
-
if (e.title !== void 0) {
|
|
8821
|
-
if (!e.title.trim()) throw new Error("title is empty");
|
|
8822
|
-
n.title = e.title.trim();
|
|
8823
|
-
}
|
|
8824
|
-
set("description", e.description);
|
|
8825
|
-
if (e.status !== void 0) {
|
|
8826
|
-
if (e.status !== t.status && e.status === "Done") n.closedAt = now;
|
|
8827
|
-
if (e.status !== "Done") delete n.closedAt;
|
|
8828
|
-
n.status = e.status;
|
|
8829
|
-
}
|
|
8830
|
-
set("priority", e.priority);
|
|
8831
|
-
set("type", e.type);
|
|
8832
|
-
set("milestone", e.milestone);
|
|
8833
|
-
set("ordinal", e.ordinal);
|
|
8834
|
-
set("parentId", e.parentId);
|
|
8835
|
-
if (e.assignees) n.assignees = uniq(e.assignees.map((a) => a.trim()).filter(Boolean));
|
|
8836
|
-
if (e.labels) n.labels = uniq(e.labels);
|
|
8837
|
-
if (e.removeLabels) n.labels = n.labels.filter((l) => !e.removeLabels?.includes(l));
|
|
8838
|
-
if (e.addLabels) n.labels = uniq([...n.labels, ...e.addLabels]);
|
|
8839
|
-
if (e.clearDeps) n.dependencies = [];
|
|
8840
|
-
if (e.addDeps) n.dependencies = uniq([...n.dependencies, ...e.addDeps]);
|
|
8841
|
-
if (e.references) n.references = uniq(e.references);
|
|
8842
|
-
n.ac = checks(n.ac, e.ac, "AC");
|
|
8843
|
-
n.dod = checks(n.dod, e.dod, "DoD");
|
|
8844
|
-
set("plan", e.plan);
|
|
8845
|
-
set("plan", append(n.plan, e.appendPlan));
|
|
8846
|
-
set("notes", e.notes);
|
|
8847
|
-
set("notes", append(n.notes, e.appendNotes));
|
|
8848
|
-
if (e.clearFinalSummary) delete n.finalSummary;
|
|
8849
|
-
set("finalSummary", e.finalSummary);
|
|
8850
|
-
set("finalSummary", append(n.finalSummary, e.appendFinalSummary));
|
|
8851
|
-
if (e.comments?.length)
|
|
8852
|
-
n.comments = [...n.comments, ...e.comments.map((c) => ({ ...c, created: now }))];
|
|
8853
|
-
n.updatedAt = now;
|
|
8854
|
-
return n;
|
|
8855
|
-
}
|
|
8856
|
-
var PARA, append, uniq;
|
|
8857
|
-
var init_edit = __esm({
|
|
8858
|
-
"src/core/edit.ts"() {
|
|
8859
|
-
"use strict";
|
|
8860
|
-
PARA = "\n\n";
|
|
8861
|
-
append = (base, more) => more?.length ? [base, ...more].filter((x) => x?.trim()).join(PARA) : base;
|
|
8862
|
-
uniq = (xs) => [...new Set(xs)];
|
|
8863
|
-
}
|
|
8864
|
-
});
|
|
8865
|
-
|
|
8866
8789
|
// src/core/filter.ts
|
|
8867
8790
|
function matches(t, f, ctx = {}) {
|
|
8868
8791
|
const any = (want, v) => !want?.length || v !== void 0 && want.includes(v);
|
|
@@ -8968,7 +8891,7 @@ var init_task = __esm({
|
|
|
8968
8891
|
});
|
|
8969
8892
|
|
|
8970
8893
|
// src/core/fields.ts
|
|
8971
|
-
var one,
|
|
8894
|
+
var one, checks, FIELDS, GROUP_KEYS;
|
|
8972
8895
|
var init_fields = __esm({
|
|
8973
8896
|
"src/core/fields.ts"() {
|
|
8974
8897
|
"use strict";
|
|
@@ -8976,7 +8899,7 @@ var init_fields = __esm({
|
|
|
8976
8899
|
init_filter();
|
|
8977
8900
|
init_task();
|
|
8978
8901
|
one = (v) => v ? [v] : [];
|
|
8979
|
-
|
|
8902
|
+
checks = (t) => {
|
|
8980
8903
|
const all = [...t.ac, ...t.dod];
|
|
8981
8904
|
return all.length ? [`${all.filter((c) => c.done).length}/${all.length}`] : [];
|
|
8982
8905
|
};
|
|
@@ -9020,7 +8943,7 @@ var init_fields = __esm({
|
|
|
9020
8943
|
},
|
|
9021
8944
|
{ key: "parent", label: "Parent", kind: "id", values: (t) => one(t.parentId), group: true },
|
|
9022
8945
|
{ key: "type", label: "Type", kind: "text", values: (t) => one(t.type), group: true },
|
|
9023
|
-
{ key: "checks", label: "Checks", kind: "progress", values:
|
|
8946
|
+
{ key: "checks", label: "Checks", kind: "progress", values: checks },
|
|
9024
8947
|
{
|
|
9025
8948
|
key: "createdAt",
|
|
9026
8949
|
label: "Created",
|
|
@@ -9047,10 +8970,97 @@ var init_fields = __esm({
|
|
|
9047
8970
|
}
|
|
9048
8971
|
});
|
|
9049
8972
|
|
|
8973
|
+
// src/core/address.ts
|
|
8974
|
+
var init_address = __esm({
|
|
8975
|
+
"src/core/address.ts"() {
|
|
8976
|
+
"use strict";
|
|
8977
|
+
init_fields();
|
|
8978
|
+
init_filter();
|
|
8979
|
+
}
|
|
8980
|
+
});
|
|
8981
|
+
|
|
8982
|
+
// src/core/edit.ts
|
|
8983
|
+
function checks2(cs, e, what) {
|
|
8984
|
+
if (!e) return cs;
|
|
8985
|
+
let out = cs.map((c) => ({ ...c }));
|
|
8986
|
+
const at3 = (n) => {
|
|
8987
|
+
const c = out[n - 1];
|
|
8988
|
+
if (!c) throw new Error(`${what} #${n} does not exist (has ${out.length})`);
|
|
8989
|
+
return c;
|
|
8990
|
+
};
|
|
8991
|
+
if (e.clear) out = [];
|
|
8992
|
+
if (e.replace) {
|
|
8993
|
+
const was = new Map(out.map((c) => [c.text.trim(), c.done]));
|
|
8994
|
+
out = e.replace.map((text2) => ({ text: text2.trim(), done: was.get(text2.trim()) ?? false }));
|
|
8995
|
+
}
|
|
8996
|
+
for (const n of e.check ?? []) at3(n).done = true;
|
|
8997
|
+
for (const n of e.uncheck ?? []) at3(n).done = false;
|
|
8998
|
+
if (e.remove?.length) {
|
|
8999
|
+
for (const n of e.remove) at3(n);
|
|
9000
|
+
const drop = new Set(e.remove);
|
|
9001
|
+
out = out.filter((_, i) => !drop.has(i + 1));
|
|
9002
|
+
}
|
|
9003
|
+
for (const text2 of e.add ?? []) out.push({ text: text2.trim(), done: false });
|
|
9004
|
+
return out;
|
|
9005
|
+
}
|
|
9006
|
+
function applyEdit(t, e, now) {
|
|
9007
|
+
const n = { ...t, extra: { ...t.extra } };
|
|
9008
|
+
const set = (k, v) => {
|
|
9009
|
+
if (v === void 0) return;
|
|
9010
|
+
if (v === null || v === "") delete n[k];
|
|
9011
|
+
else n[k] = v;
|
|
9012
|
+
};
|
|
9013
|
+
if (e.title !== void 0) {
|
|
9014
|
+
if (!e.title.trim()) throw new Error("title is empty");
|
|
9015
|
+
n.title = e.title.trim();
|
|
9016
|
+
}
|
|
9017
|
+
set("description", e.description);
|
|
9018
|
+
if (e.status !== void 0) {
|
|
9019
|
+
if (e.status !== t.status && e.status === "Done") n.closedAt = now;
|
|
9020
|
+
if (e.status !== "Done") delete n.closedAt;
|
|
9021
|
+
n.status = e.status;
|
|
9022
|
+
}
|
|
9023
|
+
set("priority", e.priority);
|
|
9024
|
+
set("type", e.type);
|
|
9025
|
+
set("milestone", e.milestone);
|
|
9026
|
+
set("ordinal", e.ordinal);
|
|
9027
|
+
set("parentId", e.parentId);
|
|
9028
|
+
if (e.assignees) n.assignees = uniq(e.assignees.map((a) => a.trim()).filter(Boolean));
|
|
9029
|
+
if (e.labels) n.labels = uniq(e.labels);
|
|
9030
|
+
if (e.removeLabels) n.labels = n.labels.filter((l) => !e.removeLabels?.includes(l));
|
|
9031
|
+
if (e.addLabels) n.labels = uniq([...n.labels, ...e.addLabels]);
|
|
9032
|
+
if (e.clearDeps) n.dependencies = [];
|
|
9033
|
+
if (e.addDeps) n.dependencies = uniq([...n.dependencies, ...e.addDeps]);
|
|
9034
|
+
if (e.references) n.references = uniq(e.references);
|
|
9035
|
+
n.ac = checks2(n.ac, e.ac, "AC");
|
|
9036
|
+
n.dod = checks2(n.dod, e.dod, "DoD");
|
|
9037
|
+
set("plan", e.plan);
|
|
9038
|
+
set("plan", append(n.plan, e.appendPlan));
|
|
9039
|
+
set("notes", e.notes);
|
|
9040
|
+
set("notes", append(n.notes, e.appendNotes));
|
|
9041
|
+
if (e.clearFinalSummary) delete n.finalSummary;
|
|
9042
|
+
set("finalSummary", e.finalSummary);
|
|
9043
|
+
set("finalSummary", append(n.finalSummary, e.appendFinalSummary));
|
|
9044
|
+
if (e.comments?.length)
|
|
9045
|
+
n.comments = [...n.comments, ...e.comments.map((c) => ({ ...c, created: now }))];
|
|
9046
|
+
n.updatedAt = now;
|
|
9047
|
+
return n;
|
|
9048
|
+
}
|
|
9049
|
+
var PARA, append, uniq;
|
|
9050
|
+
var init_edit = __esm({
|
|
9051
|
+
"src/core/edit.ts"() {
|
|
9052
|
+
"use strict";
|
|
9053
|
+
PARA = "\n\n";
|
|
9054
|
+
append = (base, more) => more?.length ? [base, ...more].filter((x) => x?.trim()).join(PARA) : base;
|
|
9055
|
+
uniq = (xs) => [...new Set(xs)];
|
|
9056
|
+
}
|
|
9057
|
+
});
|
|
9058
|
+
|
|
9050
9059
|
// src/core/index.ts
|
|
9051
9060
|
var init_core2 = __esm({
|
|
9052
9061
|
"src/core/index.ts"() {
|
|
9053
9062
|
"use strict";
|
|
9063
|
+
init_address();
|
|
9054
9064
|
init_area();
|
|
9055
9065
|
init_edit();
|
|
9056
9066
|
init_fields();
|