things-api 0.8.0 → 0.9.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/README.md +3 -2
- package/dist/cli/commands/area.d.ts +9 -0
- package/dist/cli/commands/area.js +62 -5
- package/dist/cli/commands/area.js.map +1 -1
- package/dist/cli/commands/project.d.ts +5 -0
- package/dist/cli/commands/project.js +34 -5
- package/dist/cli/commands/project.js.map +1 -1
- package/dist/cli/commands/reads.d.ts +6 -125
- package/dist/cli/commands/reads.js +337 -611
- package/dist/cli/commands/reads.js.map +1 -1
- package/dist/cli/commands/show.d.ts +1 -1
- package/dist/cli/commands/show.js +145 -17
- package/dist/cli/commands/show.js.map +1 -1
- package/dist/cli/commands/snapshot.js +1 -1
- package/dist/cli/commands/snapshot.js.map +1 -1
- package/dist/cli/commands/todo.js +14 -3
- package/dist/cli/commands/todo.js.map +1 -1
- package/dist/cli/did-you-mean.d.ts +29 -0
- package/dist/cli/did-you-mean.js +53 -0
- package/dist/cli/did-you-mean.js.map +1 -0
- package/dist/cli/glyphs.d.ts +28 -5
- package/dist/cli/glyphs.js +123 -10
- package/dist/cli/glyphs.js.map +1 -1
- package/dist/cli/main.js +9 -1
- package/dist/cli/main.js.map +1 -1
- package/dist/cli/period.d.ts +32 -0
- package/dist/cli/period.js +129 -0
- package/dist/cli/period.js.map +1 -0
- package/dist/cli/read-driver.d.ts +76 -0
- package/dist/cli/read-driver.js +181 -0
- package/dist/cli/read-driver.js.map +1 -0
- package/dist/cli/render.d.ts +182 -0
- package/dist/cli/render.js +585 -0
- package/dist/cli/render.js.map +1 -0
- package/dist/cli/resolve-invocation.d.ts +78 -0
- package/dist/cli/resolve-invocation.js +178 -0
- package/dist/cli/resolve-invocation.js.map +1 -0
- package/dist/cli/shell-quote.d.ts +9 -0
- package/dist/cli/shell-quote.js +12 -0
- package/dist/cli/shell-quote.js.map +1 -0
- package/dist/client.d.ts +13 -4
- package/dist/client.js +2 -1
- package/dist/client.js.map +1 -1
- package/dist/contracts.d.ts +66 -1
- package/dist/contracts.js +1 -1
- package/dist/contracts.js.map +1 -1
- package/dist/mcp/server.js +208 -44
- package/dist/mcp/server.js.map +1 -1
- package/dist/model/entities.d.ts +9 -0
- package/dist/model/entities.js.map +1 -1
- package/dist/model/mappers.js +13 -1
- package/dist/model/mappers.js.map +1 -1
- package/dist/model/occurrences.d.ts +6 -1
- package/dist/model/occurrences.js +9 -5
- package/dist/model/occurrences.js.map +1 -1
- package/dist/model/recurrence.d.ts +17 -8
- package/dist/model/recurrence.js.map +1 -1
- package/dist/read/caps.d.ts +14 -0
- package/dist/read/caps.js +21 -0
- package/dist/read/caps.js.map +1 -0
- package/dist/read/log-boundary.d.ts +9 -4
- package/dist/read/log-boundary.js.map +1 -1
- package/dist/read/pagination.d.ts +104 -0
- package/dist/read/pagination.js +208 -0
- package/dist/read/pagination.js.map +1 -0
- package/dist/read/predicates.d.ts +31 -0
- package/dist/read/predicates.js +48 -0
- package/dist/read/predicates.js.map +1 -0
- package/dist/read/queries.d.ts +7 -2
- package/dist/read/queries.js +11 -7
- package/dist/read/queries.js.map +1 -1
- package/dist/read/search-rank.d.ts +36 -0
- package/dist/read/search-rank.js +31 -0
- package/dist/read/search-rank.js.map +1 -0
- package/dist/read/show-target.d.ts +13 -4
- package/dist/read/show-target.js +11 -2
- package/dist/read/show-target.js.map +1 -1
- package/dist/read/sidebar-order.d.ts +19 -0
- package/dist/read/sidebar-order.js +92 -0
- package/dist/read/sidebar-order.js.map +1 -0
- package/dist/read/views.d.ts +39 -5
- package/dist/read/views.js +142 -162
- package/dist/read/views.js.map +1 -1
- package/dist/surface-copy.d.ts +23 -0
- package/dist/surface-copy.js +23 -0
- package/dist/surface-copy.js.map +1 -1
- package/dist/write/capabilities.js +1 -0
- package/dist/write/capabilities.js.map +1 -1
- package/dist/write/undo.js +1 -0
- package/dist/write/undo.js.map +1 -1
- package/package.json +1 -1
package/dist/read/views.js
CHANGED
|
@@ -4,6 +4,10 @@ import { mapProject, mapTodo } from "../model/mappers.js";
|
|
|
4
4
|
import { projectOccurrences } from "../model/occurrences.js";
|
|
5
5
|
import { decodeRecurrenceRule } from "../model/recurrence.js";
|
|
6
6
|
import { fetchTagsForTasks, fetchTaskRows, makeHeadingProjectResolver, makeRefResolver, NOT_TEMPLATE, resolveAreaUuid, resolveProjectUuid, resolveTagUuid, tagScopeBinds, tagScopeSql, tagWithDescendants, } from "./queries.js";
|
|
7
|
+
import { ANYTIME_SELF, CONTAINER_UNTRASHED, EFF_PROJECT, LIVE, OPEN, PROJECT_ANYTIME_ACTIVE, } from "./predicates.js";
|
|
8
|
+
import { groupBySidebar } from "./sidebar-order.js";
|
|
9
|
+
import { areasView } from "./tags.js";
|
|
10
|
+
import { compareSearchMatches } from "./search-rank.js";
|
|
7
11
|
function tagFilter(db, filter) {
|
|
8
12
|
if (filter?.tag === undefined)
|
|
9
13
|
return { sql: "", binds: [] };
|
|
@@ -11,8 +15,6 @@ function tagFilter(db, filter) {
|
|
|
11
15
|
const uuids = filter.exactTag === true ? [target] : tagWithDescendants(db, target);
|
|
12
16
|
return { sql: ` AND ${tagScopeSql(uuids.length)}`, binds: tagScopeBinds(uuids) };
|
|
13
17
|
}
|
|
14
|
-
const LIVE = `t.type IN (0, 1) AND t.trashed = 0 AND ${NOT_TEMPLATE}`;
|
|
15
|
-
const OPEN = `${LIVE} AND t.status = 0`;
|
|
16
18
|
function materialize(db, rows) {
|
|
17
19
|
const refs = makeRefResolver(db);
|
|
18
20
|
const headingProject = makeHeadingProjectResolver(db);
|
|
@@ -69,39 +71,6 @@ export function inboxView(db, filter) {
|
|
|
69
71
|
const rows = fetchTaskRows(db, `${OPEN} AND t.start = 0${tf.sql} ORDER BY t."index" ASC`, tf.binds);
|
|
70
72
|
return materialize(db, rows);
|
|
71
73
|
}
|
|
72
|
-
/** An item's own anytime membership: unscheduled-active, or dated <= today. */
|
|
73
|
-
const ANYTIME_SELF = (col) => `((${col}.start = 1 AND (${col}.startDate IS NULL OR ${col}.startDate <= ?))
|
|
74
|
-
OR (${col}.start = 2 AND ${col}.startDate IS NOT NULL AND ${col}.startDate <= ?))`;
|
|
75
|
-
/**
|
|
76
|
-
* The item's effective project: its own link, or its heading's project for
|
|
77
|
-
* headed children (heading rows carry the project link).
|
|
78
|
-
*/
|
|
79
|
-
const EFF_PROJECT = `COALESCE(t.project, (SELECT h.project FROM TMTask h WHERE h.uuid = t.heading))`;
|
|
80
|
-
/**
|
|
81
|
-
* Container cascade (live-verified against the UI, 2026-07-09): a to-do
|
|
82
|
-
* inside a project that is NOT itself anytime-visible (someday or
|
|
83
|
-
* future-scheduled, logged, or trashed) is absent from Anytime regardless of
|
|
84
|
-
* the to-do's own start state — the project row alone represents it.
|
|
85
|
-
* Projects and container-less to-dos pass through. Two binds (packedToday ×2).
|
|
86
|
-
*/
|
|
87
|
-
const PROJECT_ANYTIME_ACTIVE = `(${EFF_PROJECT} IS NULL OR EXISTS (
|
|
88
|
-
SELECT 1 FROM TMTask p WHERE p.uuid = ${EFF_PROJECT}
|
|
89
|
-
AND p.trashed = 0 AND p.status = 0 AND ${ANYTIME_SELF("p")}))`;
|
|
90
|
-
/**
|
|
91
|
-
* DERIVED-trash exclusion: project deletion is SHALLOW (A24B — only the
|
|
92
|
-
* project row flips trashed=1; children keep trashed=0 and their links, so
|
|
93
|
-
* their Trash membership is derived through the container chain). Every live
|
|
94
|
-
* view must therefore check the chain, not just the row's own flag: the
|
|
95
|
-
* heading (if any) and the effective project (direct or via heading) must
|
|
96
|
-
* both be untrashed. Areas cannot be trashed (they delete permanently), so
|
|
97
|
-
* the chain is at most heading → project. Trash-adjacent surfaces stay
|
|
98
|
-
* exempt on purpose: `things trash` lists directly-flagged rows, and a
|
|
99
|
-
* trashed project's OWN view shows its would-be-recovered children.
|
|
100
|
-
*/
|
|
101
|
-
const CONTAINER_UNTRASHED = `(t.heading IS NULL OR EXISTS (
|
|
102
|
-
SELECT 1 FROM TMTask hh WHERE hh.uuid = t.heading AND hh.trashed = 0))
|
|
103
|
-
AND (${EFF_PROJECT} IS NULL OR EXISTS (
|
|
104
|
-
SELECT 1 FROM TMTask cc WHERE cc.uuid = ${EFF_PROJECT} AND cc.trashed = 0))`;
|
|
105
74
|
export function anytimeView(db, now, filter) {
|
|
106
75
|
const packedToday = encodePackedDate(localToday(now));
|
|
107
76
|
const tf = tagFilter(db, filter);
|
|
@@ -112,97 +81,6 @@ export function anytimeView(db, now, filter) {
|
|
|
112
81
|
AND ${PROJECT_ANYTIME_ACTIVE}${tf.sql} ORDER BY t."index" ASC`, [packedToday, packedToday, packedToday, packedToday, ...tf.binds]);
|
|
113
82
|
return groupBySidebar(db, materialize(db, rows));
|
|
114
83
|
}
|
|
115
|
-
/**
|
|
116
|
-
* Arranges view members into the UI's flat sidebar-mirroring order: the
|
|
117
|
-
* area-less block first (direct to-dos, then each top-level project followed
|
|
118
|
-
* by its members), then each area by its sidebar index (direct to-dos, then
|
|
119
|
-
* its projects). Project and area order here mirrors the sidebar exactly —
|
|
120
|
-
* both read the same "index" columns.
|
|
121
|
-
*/
|
|
122
|
-
function groupBySidebar(db, items) {
|
|
123
|
-
if (items.length === 0)
|
|
124
|
-
return [];
|
|
125
|
-
const inList = (n) => Array.from({ length: n }, () => "?").join(", ");
|
|
126
|
-
// Headed children: resolve heading -> project.
|
|
127
|
-
const headingUuids = [
|
|
128
|
-
...new Set(items.flatMap((i) => (i.type === "to-do" && i.heading !== null ? [i.heading.uuid] : []))),
|
|
129
|
-
];
|
|
130
|
-
const headingProject = new Map();
|
|
131
|
-
if (headingUuids.length > 0) {
|
|
132
|
-
for (const row of db
|
|
133
|
-
.prepare(`SELECT uuid, project FROM TMTask WHERE uuid IN (${inList(headingUuids.length)})`)
|
|
134
|
-
.all(...headingUuids)) {
|
|
135
|
-
headingProject.set(row.uuid, row.project);
|
|
136
|
-
}
|
|
137
|
-
}
|
|
138
|
-
const effProject = (i) => i.type !== "to-do"
|
|
139
|
-
? null
|
|
140
|
-
: (i.project?.uuid ??
|
|
141
|
-
(i.heading !== null ? (headingProject.get(i.heading.uuid) ?? null) : null));
|
|
142
|
-
// Sidebar rank + title for areas; index + area for every referenced project
|
|
143
|
-
// (a tag-filtered list can contain a child whose project row didn't match).
|
|
144
|
-
const areaRows = db
|
|
145
|
-
.prepare(`SELECT uuid, title, "index" FROM TMArea ORDER BY "index" ASC, uuid ASC`)
|
|
146
|
-
.all();
|
|
147
|
-
const areaRank = new Map(areaRows.map((a, rank) => [a.uuid, rank]));
|
|
148
|
-
const areaTitle = new Map(areaRows.map((a) => [a.uuid, a.title ?? ""]));
|
|
149
|
-
const projectUuids = [
|
|
150
|
-
...new Set([
|
|
151
|
-
...items.flatMap((i) => (i.type === "project" ? [i.uuid] : [])),
|
|
152
|
-
...items.flatMap((i) => {
|
|
153
|
-
const p = effProject(i);
|
|
154
|
-
return p === null ? [] : [p];
|
|
155
|
-
}),
|
|
156
|
-
]),
|
|
157
|
-
];
|
|
158
|
-
const projectMeta = new Map();
|
|
159
|
-
if (projectUuids.length > 0) {
|
|
160
|
-
for (const row of db
|
|
161
|
-
.prepare(`SELECT uuid, "index", area FROM TMTask WHERE uuid IN (${inList(projectUuids.length)})`)
|
|
162
|
-
.all(...projectUuids)) {
|
|
163
|
-
projectMeta.set(row.uuid, { index: row.index ?? 0, area: row.area });
|
|
164
|
-
}
|
|
165
|
-
}
|
|
166
|
-
// items arrive in SQL "index" order, so array position IS the per-container
|
|
167
|
-
// rank (the internal index is no longer exposed on the entity).
|
|
168
|
-
const sortKey = (i, pos) => {
|
|
169
|
-
const project = i.type === "project" ? i.uuid : effProject(i);
|
|
170
|
-
const meta = project === null ? undefined : projectMeta.get(project);
|
|
171
|
-
const area = i.area?.uuid ?? meta?.area ?? null;
|
|
172
|
-
return {
|
|
173
|
-
areaRank: area === null ? -1 : (areaRank.get(area) ?? areaRows.length),
|
|
174
|
-
area: area ?? "",
|
|
175
|
-
inProject: project === null ? 0 : 1,
|
|
176
|
-
projectIndex: meta?.index ?? 0,
|
|
177
|
-
project: project ?? "",
|
|
178
|
-
headerFirst: i.type === "project" ? 0 : 1,
|
|
179
|
-
pos,
|
|
180
|
-
uuid: i.uuid,
|
|
181
|
-
};
|
|
182
|
-
};
|
|
183
|
-
const keyed = items.map((item, pos) => ({ item, k: sortKey(item, pos) }));
|
|
184
|
-
keyed.sort((a, b) => a.k.areaRank - b.k.areaRank ||
|
|
185
|
-
a.k.area.localeCompare(b.k.area) ||
|
|
186
|
-
a.k.inProject - b.k.inProject ||
|
|
187
|
-
a.k.projectIndex - b.k.projectIndex ||
|
|
188
|
-
a.k.project.localeCompare(b.k.project) ||
|
|
189
|
-
a.k.headerFirst - b.k.headerFirst ||
|
|
190
|
-
a.k.pos - b.k.pos ||
|
|
191
|
-
a.k.uuid.localeCompare(b.k.uuid));
|
|
192
|
-
const sections = [];
|
|
193
|
-
for (const { item, k } of keyed) {
|
|
194
|
-
const areaUuid = k.area === "" ? null : k.area;
|
|
195
|
-
const last = sections.at(-1);
|
|
196
|
-
if (last === undefined || (last.area?.uuid ?? null) !== areaUuid) {
|
|
197
|
-
sections.push({
|
|
198
|
-
area: areaUuid === null ? null : { uuid: areaUuid, title: areaTitle.get(areaUuid) ?? "" },
|
|
199
|
-
items: [],
|
|
200
|
-
});
|
|
201
|
-
}
|
|
202
|
-
sections.at(-1)?.items.push(item);
|
|
203
|
-
}
|
|
204
|
-
return sections;
|
|
205
|
-
}
|
|
206
84
|
/** The UI's star marker in Anytime: the item is also a Today member. */
|
|
207
85
|
export function isTodayMember(item, now) {
|
|
208
86
|
return item.startDate !== null && item.startDate <= localToday(now);
|
|
@@ -210,12 +88,15 @@ export function isTodayMember(item, now) {
|
|
|
210
88
|
export function upcomingView(db, now, filter) {
|
|
211
89
|
const packedToday = encodePackedDate(localToday(now));
|
|
212
90
|
const until = filter?.until;
|
|
91
|
+
const since = filter?.since;
|
|
213
92
|
const untilSql = until === undefined ? "" : " AND t.startDate <= ?";
|
|
214
93
|
const untilBinds = until === undefined ? [] : [encodePackedDate(until)];
|
|
94
|
+
const sinceSql = since === undefined ? "" : " AND t.startDate >= ?";
|
|
95
|
+
const sinceBinds = since === undefined ? [] : [encodePackedDate(since)];
|
|
215
96
|
const tf = tagFilter(db, filter);
|
|
216
97
|
const rows = fetchTaskRows(db, `${OPEN} AND ${CONTAINER_UNTRASHED}
|
|
217
|
-
AND t.start = 2 AND t.startDate IS NOT NULL AND t.startDate > ?${untilSql}${tf.sql}
|
|
218
|
-
ORDER BY t.startDate ASC, t."index" ASC`, [packedToday, ...untilBinds, ...tf.binds]);
|
|
98
|
+
AND t.start = 2 AND t.startDate IS NOT NULL AND t.startDate > ?${untilSql}${sinceSql}${tf.sql}
|
|
99
|
+
ORDER BY t.startDate ASC, t."index" ASC`, [packedToday, ...untilBinds, ...sinceBinds, ...tf.binds]);
|
|
219
100
|
const items = materialize(db, rows);
|
|
220
101
|
if (filter?.repeats === false)
|
|
221
102
|
return items;
|
|
@@ -227,16 +108,19 @@ export function upcomingView(db, now, filter) {
|
|
|
227
108
|
const templateRows = fetchTaskRows(db, `t.type IN (0, 1) AND t.trashed = 0 AND t.status = 0 AND ${CONTAINER_UNTRASHED}
|
|
228
109
|
AND (t.rt1_recurrenceRule IS NOT NULL OR t.repeater IS NOT NULL)
|
|
229
110
|
AND t.rt1_instanceCreationPaused = 0
|
|
230
|
-
AND t.rt1_nextInstanceStartDate IS NOT NULL AND t.rt1_nextInstanceStartDate > ?${until === undefined ? "" : " AND t.rt1_nextInstanceStartDate <= ?"}${tf.sql}
|
|
231
|
-
ORDER BY t.rt1_nextInstanceStartDate ASC, t."index" ASC`, [packedToday, ...untilBinds, ...tf.binds]);
|
|
111
|
+
AND t.rt1_nextInstanceStartDate IS NOT NULL AND t.rt1_nextInstanceStartDate > ?${until === undefined ? "" : " AND t.rt1_nextInstanceStartDate <= ?"}${since === undefined ? "" : " AND t.rt1_nextInstanceStartDate >= ?"}${tf.sql}
|
|
112
|
+
ORDER BY t.rt1_nextInstanceStartDate ASC, t."index" ASC`, [packedToday, ...untilBinds, ...sinceBinds, ...tf.binds]);
|
|
232
113
|
const horizon = Math.max(1, Math.min(10, Math.trunc(filter?.horizon ?? 1)));
|
|
233
114
|
const rawByUuid = new Map(templateRows.map((r) => [r.uuid, r.rt1_recurrenceRule]));
|
|
234
115
|
const occurrences = materialize(db, templateRows).flatMap((template) => {
|
|
235
116
|
const startDate = template.repeating.nextOccurrence ?? null;
|
|
236
117
|
if (startDate === null)
|
|
237
118
|
return [];
|
|
238
|
-
//
|
|
239
|
-
//
|
|
119
|
+
// Whether occurrences deadline is the TEMPLATE's property, not the rule's:
|
|
120
|
+
// a deadline-less template (repeating.deadlined false) spawns instances
|
|
121
|
+
// with NO deadline even for fixed ts=0 rules — its rt1_recurrenceRule is
|
|
122
|
+
// byte-identical to a deadlined ts=0 rule (oddities §8a, UI1 2026-07-12).
|
|
123
|
+
const deadlined = template.repeating.deadlined === true;
|
|
240
124
|
let rule = null;
|
|
241
125
|
const raw = rawByUuid.get(template.uuid);
|
|
242
126
|
if (raw !== null && raw !== undefined) {
|
|
@@ -248,28 +132,26 @@ export function upcomingView(db, now, filter) {
|
|
|
248
132
|
}
|
|
249
133
|
}
|
|
250
134
|
if (rule === null || horizon === 1 || rule.type !== "fixed") {
|
|
251
|
-
//
|
|
252
|
-
//
|
|
253
|
-
|
|
254
|
-
// repeats). After-completion rules deadline only when ts < 0.
|
|
255
|
-
const deadline = rule !== null && (rule.type === "fixed" || rule.startOffsetDays < 0)
|
|
256
|
-
? addDaysIso(startDate, -rule.startOffsetDays)
|
|
257
|
-
: null;
|
|
135
|
+
// Deadlined templates deadline the occurrence at the event date
|
|
136
|
+
// (start − ts, incl. ts=0); deadline-less ones carry no deadline.
|
|
137
|
+
const deadline = rule !== null && deadlined ? addDaysIso(startDate, -rule.startOffsetDays) : null;
|
|
258
138
|
return [{ ...template, startDate, deadline }];
|
|
259
139
|
}
|
|
260
140
|
// horizon > 1: later occurrences PROJECTED from the decoded rule,
|
|
261
141
|
// anchored on the app's own materialized next instance. The until bound
|
|
262
142
|
// clips projections the same way it clips stored rows.
|
|
263
|
-
return projectOccurrences(rule, startDate, {
|
|
143
|
+
return (projectOccurrences(rule, startDate, {
|
|
264
144
|
count: horizon,
|
|
265
145
|
...(until !== undefined && { until }),
|
|
266
|
-
})
|
|
146
|
+
}, deadlined)
|
|
267
147
|
.filter((o) => until === undefined || o.startDate <= until)
|
|
148
|
+
.filter((o) => since === undefined || o.startDate >= since)
|
|
149
|
+
// oxlint-disable-next-line no-map-spread -- building fresh occurrence objects, not mutating
|
|
268
150
|
.map((o) => ({
|
|
269
151
|
...template,
|
|
270
152
|
startDate: o.startDate,
|
|
271
153
|
deadline: o.deadline,
|
|
272
|
-
}));
|
|
154
|
+
})));
|
|
273
155
|
});
|
|
274
156
|
// Within a day the UI's drag order is todayIndex ASC (live-verified
|
|
275
157
|
// 2026-07-11 against the GUI: plain `index` disagrees, todayIndex matches
|
|
@@ -318,10 +200,24 @@ export function somedayView(db, now, filter) {
|
|
|
318
200
|
: "0";
|
|
319
201
|
const rows = fetchTaskRows(db, `${OPEN} AND t.start = 2 AND t.startDate IS NULL
|
|
320
202
|
AND (${EFF_PROJECT} IS NULL OR ${childArm})${tf.sql} ORDER BY t."index" ASC`, [...(withActiveChildren ? [packedToday, packedToday] : []), ...tf.binds]);
|
|
321
|
-
|
|
203
|
+
const sections = groupBySidebar(db, materialize(db, rows));
|
|
204
|
+
// GUI order within a Someday group (live side-by-side, 2026-07-12):
|
|
205
|
+
// PROJECT rows first (their sidebar order preserved), then direct to-dos in
|
|
206
|
+
// drag order. Someday children of active projects (the activeProjectItems
|
|
207
|
+
// toggle) trail the group, still clustered by their project — surfaces
|
|
208
|
+
// present them as a separate "From active projects" section.
|
|
209
|
+
const isChild = (i) => i.type === "to-do" && (i.project !== null || i.headingProject !== null);
|
|
210
|
+
return sections.map((s) => ({
|
|
211
|
+
area: s.area,
|
|
212
|
+
items: [
|
|
213
|
+
...s.items.filter((i) => i.type === "project"),
|
|
214
|
+
...s.items.filter((i) => i.type === "to-do" && !isChild(i)),
|
|
215
|
+
...s.items.filter(isChild),
|
|
216
|
+
],
|
|
217
|
+
}));
|
|
322
218
|
}
|
|
323
219
|
export function logbookView(db, options) {
|
|
324
|
-
const
|
|
220
|
+
const cap = options?.limit === null ? null : (options?.limit ?? 100);
|
|
325
221
|
const tf = tagFilter(db, options);
|
|
326
222
|
const where = [];
|
|
327
223
|
const binds = [];
|
|
@@ -345,13 +241,13 @@ export function logbookView(db, options) {
|
|
|
345
241
|
const extra = where.length > 0 ? ` AND ${where.join(" AND ")}` : "";
|
|
346
242
|
// Completion ≠ logged: closed items past the log-move boundary still sit
|
|
347
243
|
// checked in their original lists, exactly like the GUI's Logbook.
|
|
348
|
-
const rows = fetchTaskRows(db, `${LIVE} AND t.status IN (2, 3) AND t.stopDate <= ?${extra}${tf.sql} ORDER BY t.stopDate DESC LIMIT
|
|
244
|
+
const rows = fetchTaskRows(db, `${LIVE} AND t.status IN (2, 3) AND t.stopDate <= ?${extra}${tf.sql} ORDER BY t.stopDate DESC${cap === null ? "" : " LIMIT ?"}`, [logBoundary(db).getTime() / 1000, ...binds, ...tf.binds, ...(cap === null ? [] : [cap])]);
|
|
349
245
|
return materialize(db, rows);
|
|
350
246
|
}
|
|
351
247
|
export function trashView(db, options) {
|
|
352
|
-
const
|
|
248
|
+
const cap = options?.limit === null ? null : (options?.limit ?? 200);
|
|
353
249
|
const rows = fetchTaskRows(db, `t.type IN (0, 1) AND t.trashed = 1 AND ${NOT_TEMPLATE}
|
|
354
|
-
ORDER BY t.userModificationDate DESC LIMIT
|
|
250
|
+
ORDER BY t.userModificationDate DESC${cap === null ? "" : " LIMIT ?"}`, cap === null ? [] : [cap]);
|
|
355
251
|
return materialize(db, rows);
|
|
356
252
|
}
|
|
357
253
|
export function projectsView(db, options) {
|
|
@@ -438,21 +334,64 @@ export function projectsView(db, options) {
|
|
|
438
334
|
* parent task — those changes are invisible here.
|
|
439
335
|
*/
|
|
440
336
|
export function changesView(db, options) {
|
|
441
|
-
const
|
|
337
|
+
const cap = options.limit === null ? null : (options.limit ?? 200);
|
|
442
338
|
const sinceEpoch = options.since.getTime() / 1000;
|
|
443
339
|
const rows = fetchTaskRows(db, `t.type IN (0, 1) AND t.userModificationDate > ?
|
|
444
|
-
ORDER BY t.userModificationDate DESC LIMIT
|
|
340
|
+
ORDER BY t.userModificationDate DESC${cap === null ? "" : " LIMIT ?"}`, [sinceEpoch, ...(cap === null ? [] : [cap])]);
|
|
341
|
+
// oxlint-disable-next-line no-map-spread -- building fresh change objects, not mutating
|
|
445
342
|
return materialize(db, rows).map((item, i) => ({
|
|
446
343
|
...item,
|
|
447
344
|
changeKind: (rows[i]?.creationDate ?? 0) > sinceEpoch ? "created" : "modified",
|
|
448
345
|
}));
|
|
449
346
|
}
|
|
347
|
+
/**
|
|
348
|
+
* The did-you-mean fallback search: a case-insensitive SUBSTRING match on
|
|
349
|
+
* TITLES ONLY (never notes, headings, or checklist items), across areas,
|
|
350
|
+
* projects, and to-dos — open + untrashed only. Ordered per the house
|
|
351
|
+
* doctrine: containers (areas, then projects) first, then to-dos; within a
|
|
352
|
+
* group active rows precede someday rows, then most-recently-modified. `type`
|
|
353
|
+
* scopes to a single class (the typed-namespace paths). Results are capped
|
|
354
|
+
* (default 10); `total` reports the pre-cap match count so the caller can
|
|
355
|
+
* append a "… n more" tail.
|
|
356
|
+
*/
|
|
357
|
+
const somedayRank = (i) => (i.start === "someday" ? 1 : 0);
|
|
358
|
+
/** Lite-search order within a task group: active before someday, then most-recently-modified. */
|
|
359
|
+
function byStatusThenRecent(a, b) {
|
|
360
|
+
return somedayRank(a) - somedayRank(b) || b.modified.getTime() - a.modified.getTime();
|
|
361
|
+
}
|
|
362
|
+
export function liteTitleSearch(db, query, options) {
|
|
363
|
+
const cap = options?.limit ?? 10;
|
|
364
|
+
const type = options?.type;
|
|
365
|
+
const needle = query.toLowerCase();
|
|
366
|
+
const areas = type === undefined || type === "area"
|
|
367
|
+
? areasView(db)
|
|
368
|
+
.filter((a) => a.title.toLowerCase().includes(needle))
|
|
369
|
+
.toSorted((a, b) => a.title.localeCompare(b.title))
|
|
370
|
+
: [];
|
|
371
|
+
let tasks = [];
|
|
372
|
+
if (type === undefined || type === "to-do" || type === "project") {
|
|
373
|
+
const typeSql = type === "to-do" ? "t.type = 0" : type === "project" ? "t.type = 1" : "t.type IN (0, 1)";
|
|
374
|
+
const rows = fetchTaskRows(db, `${OPEN} AND ${CONTAINER_UNTRASHED} AND ${typeSql} AND t.title LIKE ?`, [`%${query}%`]);
|
|
375
|
+
tasks = materialize(db, rows);
|
|
376
|
+
}
|
|
377
|
+
const projects = tasks.filter((t) => t.type === "project").toSorted(byStatusThenRecent);
|
|
378
|
+
const todos = tasks.filter((t) => t.type === "to-do").toSorted(byStatusThenRecent);
|
|
379
|
+
const ordered = [
|
|
380
|
+
...areas.map((area) => ({ kind: "area", area })),
|
|
381
|
+
...projects.map((task) => ({ kind: "task", task })),
|
|
382
|
+
...todos.map((task) => ({ kind: "task", task })),
|
|
383
|
+
];
|
|
384
|
+
return { candidates: ordered.slice(0, cap), total: ordered.length };
|
|
385
|
+
}
|
|
450
386
|
export function searchView(db, query, options) {
|
|
451
|
-
const
|
|
387
|
+
const cap = options?.limit === null ? null : (options?.limit ?? 50);
|
|
452
388
|
const needle = `%${query}%`;
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
389
|
+
// The scope predicates (everything except the match needle), reused verbatim
|
|
390
|
+
// for the needle query AND the heading-credited-project query so both honor
|
|
391
|
+
// the same type/status/scope constraints.
|
|
392
|
+
const scope = [NOT_TEMPLATE];
|
|
393
|
+
const scopeBinds = [];
|
|
394
|
+
scope.push(options?.type === "to-do"
|
|
456
395
|
? "t.type = 0"
|
|
457
396
|
: options?.type === "project"
|
|
458
397
|
? "t.type = 1"
|
|
@@ -462,24 +401,65 @@ export function searchView(db, query, options) {
|
|
|
462
401
|
// container chain (derived trash, A24B), not just the row's own flag.
|
|
463
402
|
if (options?.all !== true) {
|
|
464
403
|
const statuses = options?.logged === true ? "(0, 2, 3)" : "(0)";
|
|
465
|
-
|
|
404
|
+
scope.push(`t.status IN ${statuses}`);
|
|
466
405
|
if (options?.trashed !== true)
|
|
467
|
-
|
|
406
|
+
scope.push(`t.trashed = 0 AND ${CONTAINER_UNTRASHED}`);
|
|
468
407
|
}
|
|
469
408
|
if (options?.project !== undefined) {
|
|
470
409
|
const uuid = resolveProjectUuid(db, options.project);
|
|
471
410
|
// Children incl. headed ones (heading rows carry the project link).
|
|
472
|
-
|
|
473
|
-
|
|
411
|
+
scope.push("(t.project = ? OR t.heading IN (SELECT uuid FROM TMTask WHERE type = 2 AND project = ?))");
|
|
412
|
+
scopeBinds.push(uuid, uuid);
|
|
474
413
|
}
|
|
475
414
|
if (options?.area !== undefined) {
|
|
476
415
|
const uuid = resolveAreaUuid(db, options.area);
|
|
477
|
-
|
|
478
|
-
|
|
416
|
+
scope.push("t.area = ?");
|
|
417
|
+
scopeBinds.push(uuid);
|
|
479
418
|
}
|
|
480
419
|
const tf = tagFilter(db, options);
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
420
|
+
// Needle matches: title OR notes. No SQL LIMIT — ranking runs before the cap.
|
|
421
|
+
const rows = fetchTaskRows(db, `${scope.join(" AND ")} AND (t.title LIKE ? OR t.notes LIKE ?)${tf.sql}`, [...scopeBinds, needle, needle, ...tf.binds]);
|
|
422
|
+
const needleLower = query.toLowerCase();
|
|
423
|
+
const matches = new Map();
|
|
424
|
+
for (const item of materialize(db, rows)) {
|
|
425
|
+
// Field credit: title beats notes when both carry the substring.
|
|
426
|
+
const field = item.title.toLowerCase().includes(needleLower) ? "title" : "notes";
|
|
427
|
+
matches.set(item.uuid, { item, field });
|
|
428
|
+
}
|
|
429
|
+
// Heading titles are treated as if they lived in the parent PROJECT's notes:
|
|
430
|
+
// a heading-title match surfaces the parent project (never a bare heading
|
|
431
|
+
// row), credited at the heading-via-project field rank. A to-do-only search
|
|
432
|
+
// has no project rows, so headings do not apply there.
|
|
433
|
+
if (options?.type !== "to-do") {
|
|
434
|
+
const headingRows = db
|
|
435
|
+
.prepare(`SELECT project AS projectUuid, title FROM TMTask
|
|
436
|
+
WHERE type = 2 AND project IS NOT NULL AND trashed = 0 AND title LIKE ?`)
|
|
437
|
+
.all(needle);
|
|
438
|
+
const headingTitleFor = new Map();
|
|
439
|
+
for (const h of headingRows) {
|
|
440
|
+
if (!headingTitleFor.has(h.projectUuid))
|
|
441
|
+
headingTitleFor.set(h.projectUuid, h.title ?? "");
|
|
442
|
+
}
|
|
443
|
+
// Surface only the projects NOT already matched by their own title/notes
|
|
444
|
+
// (a higher-ranked field already represents them), and only those passing
|
|
445
|
+
// the view's scope.
|
|
446
|
+
const wanted = [...headingTitleFor.keys()].filter((uuid) => !matches.has(uuid));
|
|
447
|
+
if (wanted.length > 0) {
|
|
448
|
+
const placeholders = wanted.map(() => "?").join(", ");
|
|
449
|
+
const projectRows = fetchTaskRows(db, `${scope.join(" AND ")} AND t.type = 1 AND t.uuid IN (${placeholders})${tf.sql}`, [...scopeBinds, ...wanted, ...tf.binds]);
|
|
450
|
+
for (const item of materialize(db, projectRows)) {
|
|
451
|
+
const matchedVia = {
|
|
452
|
+
kind: "heading",
|
|
453
|
+
title: headingTitleFor.get(item.uuid) ?? "",
|
|
454
|
+
};
|
|
455
|
+
// Annotate the freshly materialized entity in place (owned here).
|
|
456
|
+
item.matchedVia = matchedVia;
|
|
457
|
+
matches.set(item.uuid, { item, field: "heading", matchedVia });
|
|
458
|
+
}
|
|
459
|
+
}
|
|
460
|
+
}
|
|
461
|
+
const ranked = [...matches.values()].toSorted(compareSearchMatches);
|
|
462
|
+
const sliced = cap === null ? ranked : ranked.slice(0, cap);
|
|
463
|
+
return sliced.map((m) => m.item);
|
|
484
464
|
}
|
|
485
465
|
//# sourceMappingURL=views.js.map
|
package/dist/read/views.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"views.js","sourceRoot":"","sources":["../../src/read/views.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"views.js","sourceRoot":"","sources":["../../src/read/views.ts"],"names":[],"mappings":"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"}
|
package/dist/surface-copy.d.ts
CHANGED
|
@@ -13,3 +13,26 @@ export declare const DATE_FORMAT = "YYYY-MM-DD";
|
|
|
13
13
|
export declare const REMINDER_FORMAT = "HH:mm (24-hour)";
|
|
14
14
|
/** How projects, areas, and tags may be referenced. */
|
|
15
15
|
export declare const REF_FORMAT = "uuid or unique name";
|
|
16
|
+
/**
|
|
17
|
+
* Time-window bound grammar shared by `--since`/`--until` flags: relative
|
|
18
|
+
* periods counted from today (`2w`/`3m`/`1y`) or whole calendar periods
|
|
19
|
+
* (`2024`, `2024-03`, `2024-03-05`).
|
|
20
|
+
*/
|
|
21
|
+
export declare const PERIOD_SINCE = "`2w`/`3m`/`1y` back from today, or `2024`, `2024-03`, `2024-03-05`";
|
|
22
|
+
export declare const PERIOD_UNTIL = "`2w`/`3m`/`1y` from today, or `2026-09`, `2026-09-15`, `2026`";
|
|
23
|
+
/** Default number of rows a list view returns before it truncates. */
|
|
24
|
+
export declare const DEFAULT_LIST_LIMIT = 50;
|
|
25
|
+
/** Shared `--limit`/`limit` description for FLAT views (total-row cap). */
|
|
26
|
+
export declare const LIMIT_DESC = "maximum items to show (default 50)";
|
|
27
|
+
/** Shared `--all`/`all` description (lift the row limit). */
|
|
28
|
+
export declare const ALL_DESC = "show every matching item, no limit";
|
|
29
|
+
/** Default per-project preview cap in the grouped catalogues (anytime). */
|
|
30
|
+
export declare const PROJECT_PREVIEW_LIMIT = 3;
|
|
31
|
+
/** Default per-area-block cap in the grouped catalogues (anytime/someday). */
|
|
32
|
+
export declare const AREA_PREVIEW_LIMIT = 30;
|
|
33
|
+
/** `--area-limit`/`area_limit` description (grouped views). */
|
|
34
|
+
export declare const AREA_LIMIT_DESC = "items shown per area block \u2014 including the leading area-less block \u2014 before truncating (default 30); every block is always shown";
|
|
35
|
+
/** `--project-limit`/`project_limit` description (anytime). */
|
|
36
|
+
export declare const PROJECT_LIMIT_DESC = "items shown per project block before truncating (default 3); every project row is always shown";
|
|
37
|
+
/** `--all`/`all` description for the grouped views (lift every per-block cap). */
|
|
38
|
+
export declare const GROUPED_ALL_DESC = "show every item in every group (no per-block caps)";
|
package/dist/surface-copy.js
CHANGED
|
@@ -13,4 +13,27 @@ export const DATE_FORMAT = "YYYY-MM-DD";
|
|
|
13
13
|
export const REMINDER_FORMAT = "HH:mm (24-hour)";
|
|
14
14
|
/** How projects, areas, and tags may be referenced. */
|
|
15
15
|
export const REF_FORMAT = "uuid or unique name";
|
|
16
|
+
/**
|
|
17
|
+
* Time-window bound grammar shared by `--since`/`--until` flags: relative
|
|
18
|
+
* periods counted from today (`2w`/`3m`/`1y`) or whole calendar periods
|
|
19
|
+
* (`2024`, `2024-03`, `2024-03-05`).
|
|
20
|
+
*/
|
|
21
|
+
export const PERIOD_SINCE = "`2w`/`3m`/`1y` back from today, or `2024`, `2024-03`, `2024-03-05`";
|
|
22
|
+
export const PERIOD_UNTIL = "`2w`/`3m`/`1y` from today, or `2026-09`, `2026-09-15`, `2026`";
|
|
23
|
+
/** Default number of rows a list view returns before it truncates. */
|
|
24
|
+
export const DEFAULT_LIST_LIMIT = 50;
|
|
25
|
+
/** Shared `--limit`/`limit` description for FLAT views (total-row cap). */
|
|
26
|
+
export const LIMIT_DESC = `maximum items to show (default ${DEFAULT_LIST_LIMIT})`;
|
|
27
|
+
/** Shared `--all`/`all` description (lift the row limit). */
|
|
28
|
+
export const ALL_DESC = "show every matching item, no limit";
|
|
29
|
+
/** Default per-project preview cap in the grouped catalogues (anytime). */
|
|
30
|
+
export const PROJECT_PREVIEW_LIMIT = 3;
|
|
31
|
+
/** Default per-area-block cap in the grouped catalogues (anytime/someday). */
|
|
32
|
+
export const AREA_PREVIEW_LIMIT = 30;
|
|
33
|
+
/** `--area-limit`/`area_limit` description (grouped views). */
|
|
34
|
+
export const AREA_LIMIT_DESC = `items shown per area block — including the leading area-less block — before truncating (default ${AREA_PREVIEW_LIMIT}); every block is always shown`;
|
|
35
|
+
/** `--project-limit`/`project_limit` description (anytime). */
|
|
36
|
+
export const PROJECT_LIMIT_DESC = `items shown per project block before truncating (default ${PROJECT_PREVIEW_LIMIT}); every project row is always shown`;
|
|
37
|
+
/** `--all`/`all` description for the grouped views (lift every per-block cap). */
|
|
38
|
+
export const GROUPED_ALL_DESC = "show every item in every group (no per-block caps)";
|
|
16
39
|
//# sourceMappingURL=surface-copy.js.map
|
package/dist/surface-copy.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"surface-copy.js","sourceRoot":"","sources":["../src/surface-copy.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,yCAAyC;AACzC,MAAM,CAAC,MAAM,WAAW,GAAG,kDAAkD,CAAC;AAE9E,gEAAgE;AAChE,MAAM,CAAC,MAAM,WAAW,GAAG,YAAY,CAAC;AAExC,6CAA6C;AAC7C,MAAM,CAAC,MAAM,eAAe,GAAG,iBAAiB,CAAC;AAEjD,uDAAuD;AACvD,MAAM,CAAC,MAAM,UAAU,GAAG,qBAAqB,CAAC"}
|
|
1
|
+
{"version":3,"file":"surface-copy.js","sourceRoot":"","sources":["../src/surface-copy.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,yCAAyC;AACzC,MAAM,CAAC,MAAM,WAAW,GAAG,kDAAkD,CAAC;AAE9E,gEAAgE;AAChE,MAAM,CAAC,MAAM,WAAW,GAAG,YAAY,CAAC;AAExC,6CAA6C;AAC7C,MAAM,CAAC,MAAM,eAAe,GAAG,iBAAiB,CAAC;AAEjD,uDAAuD;AACvD,MAAM,CAAC,MAAM,UAAU,GAAG,qBAAqB,CAAC;AAEhD;;;;GAIG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,oEAAoE,CAAC;AACjG,MAAM,CAAC,MAAM,YAAY,GAAG,+DAA+D,CAAC;AAE5F,sEAAsE;AACtE,MAAM,CAAC,MAAM,kBAAkB,GAAG,EAAE,CAAC;AAErC,2EAA2E;AAC3E,MAAM,CAAC,MAAM,UAAU,GAAG,kCAAkC,kBAAkB,GAAG,CAAC;AAElF,6DAA6D;AAC7D,MAAM,CAAC,MAAM,QAAQ,GAAG,oCAAoC,CAAC;AAE7D,2EAA2E;AAC3E,MAAM,CAAC,MAAM,qBAAqB,GAAG,CAAC,CAAC;AAEvC,8EAA8E;AAC9E,MAAM,CAAC,MAAM,kBAAkB,GAAG,EAAE,CAAC;AAErC,+DAA+D;AAC/D,MAAM,CAAC,MAAM,eAAe,GAAG,mGAAmG,kBAAkB,gCAAgC,CAAC;AAErL,+DAA+D;AAC/D,MAAM,CAAC,MAAM,kBAAkB,GAAG,4DAA4D,qBAAqB,sCAAsC,CAAC;AAE1J,kFAAkF;AAClF,MAAM,CAAC,MAAM,gBAAgB,GAAG,oDAAoD,CAAC"}
|
|
@@ -12,6 +12,7 @@ export function capabilitiesTable(op) {
|
|
|
12
12
|
return ops.map((kind) => ({
|
|
13
13
|
op: kind,
|
|
14
14
|
undo: REVERSIBILITY[kind],
|
|
15
|
+
// oxlint-disable-next-line no-map-spread -- building fresh capability rows, not mutating
|
|
15
16
|
vectors: vectors.map((v) => ({ vector: v.id, ...(v.matrix[kind] ?? { support: "no" }) })),
|
|
16
17
|
}));
|
|
17
18
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"capabilities.js","sourceRoot":"","sources":["../../src/write/capabilities.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,eAAe,EAAsB,MAAM,iBAAiB,CAAC;AACtE,OAAO,EAAE,aAAa,EAA2B,MAAM,oBAAoB,CAAC;AAC5E,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAUvD,MAAM,UAAU,iBAAiB,CAAC,EAAkB;IAClD,MAAM,OAAO,GAAG,cAAc,EAAE,CAAC;IACjC,MAAM,GAAG,GAAG,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC;IAC3D,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACxB,EAAE,EAAE,IAAI;QACR,IAAI,EAAE,aAAa,CAAC,IAAI,CAAC;QACzB,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;KAC1F,CAAC,CAAC,CAAC;AACN,CAAC"}
|
|
1
|
+
{"version":3,"file":"capabilities.js","sourceRoot":"","sources":["../../src/write/capabilities.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,eAAe,EAAsB,MAAM,iBAAiB,CAAC;AACtE,OAAO,EAAE,aAAa,EAA2B,MAAM,oBAAoB,CAAC;AAC5E,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAUvD,MAAM,UAAU,iBAAiB,CAAC,EAAkB;IAClD,MAAM,OAAO,GAAG,cAAc,EAAE,CAAC;IACjC,MAAM,GAAG,GAAG,EAAE,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,eAAe,CAAC,CAAC;IAC3D,OAAO,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACxB,EAAE,EAAE,IAAI;QACR,IAAI,EAAE,aAAa,CAAC,IAAI,CAAC;QACzB,yFAAyF;QACzF,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC,CAAC;KAC1F,CAAC,CAAC,CAAC;AACN,CAAC"}
|
package/dist/write/undo.js
CHANGED
|
@@ -291,6 +291,7 @@ function planChecklistItemInverse(record, current) {
|
|
|
291
291
|
return conflict(`the moved item "${title}" is no longer in the checklist`);
|
|
292
292
|
if (i === -2)
|
|
293
293
|
return conflict(`"${title}" is now a duplicate title — the moved item is ambiguous`);
|
|
294
|
+
// oxlint-disable-next-line no-map-spread -- cloning specs before splice, not mutating in place
|
|
294
295
|
const next = items.map((c) => ({ ...c }));
|
|
295
296
|
const [moved] = next.splice(i, 1);
|
|
296
297
|
next.splice(Math.max(0, Math.min(next.length, oldPos - 1)), 0, moved);
|