@kaban-board/core 0.3.1 → 0.3.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/db/bun-adapter.d.ts.map +1 -1
- package/dist/db/index.d.ts.map +1 -1
- package/dist/db/migrate.d.ts.map +1 -1
- package/dist/db/migrator.d.ts.map +1 -1
- package/dist/db/recovery.d.ts +59 -0
- package/dist/db/recovery.d.ts.map +1 -0
- package/dist/db/schema.d.ts +344 -0
- package/dist/db/schema.d.ts.map +1 -1
- package/dist/index-bun.d.ts +1 -0
- package/dist/index-bun.d.ts.map +1 -1
- package/dist/index-bun.js +811 -65
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1267 -66
- package/dist/schemas.d.ts +61 -0
- package/dist/schemas.d.ts.map +1 -1
- package/dist/services/audit.d.ts +45 -0
- package/dist/services/audit.d.ts.map +1 -0
- package/dist/services/board.d.ts.map +1 -1
- package/dist/services/dependency.d.ts +20 -0
- package/dist/services/dependency.d.ts.map +1 -0
- package/dist/services/index.d.ts +4 -0
- package/dist/services/index.d.ts.map +1 -1
- package/dist/services/link.d.ts +21 -0
- package/dist/services/link.d.ts.map +1 -0
- package/dist/services/markdown.d.ts +37 -0
- package/dist/services/markdown.d.ts.map +1 -0
- package/dist/services/scoring/index.d.ts +17 -0
- package/dist/services/scoring/index.d.ts.map +1 -0
- package/dist/services/scoring/scorers/blocking.d.ts +7 -0
- package/dist/services/scoring/scorers/blocking.d.ts.map +1 -0
- package/dist/services/scoring/scorers/due-date.d.ts +7 -0
- package/dist/services/scoring/scorers/due-date.d.ts.map +1 -0
- package/dist/services/scoring/scorers/fifo.d.ts +7 -0
- package/dist/services/scoring/scorers/fifo.d.ts.map +1 -0
- package/dist/services/scoring/scorers/priority.d.ts +7 -0
- package/dist/services/scoring/scorers/priority.d.ts.map +1 -0
- package/dist/services/scoring/types.d.ts +27 -0
- package/dist/services/scoring/types.d.ts.map +1 -0
- package/dist/services/task.d.ts +6 -1
- package/dist/services/task.d.ts.map +1 -1
- package/dist/utils/date-parser.d.ts +14 -0
- package/dist/utils/date-parser.d.ts.map +1 -0
- package/package.json +2 -1
package/dist/schemas.d.ts
CHANGED
|
@@ -5,6 +5,7 @@ export declare const AgentNameSchema: z.ZodPipe<z.ZodString, z.ZodTransform<stri
|
|
|
5
5
|
export declare const ColumnIdSchema: z.ZodString;
|
|
6
6
|
export declare const TaskSchema: z.ZodObject<{
|
|
7
7
|
id: z.ZodString;
|
|
8
|
+
boardTaskId: z.ZodNullable<z.ZodNumber>;
|
|
8
9
|
title: z.ZodString;
|
|
9
10
|
description: z.ZodNullable<z.ZodString>;
|
|
10
11
|
columnId: z.ZodString;
|
|
@@ -21,9 +22,53 @@ export declare const TaskSchema: z.ZodObject<{
|
|
|
21
22
|
updatedAt: z.ZodDate;
|
|
22
23
|
startedAt: z.ZodNullable<z.ZodDate>;
|
|
23
24
|
completedAt: z.ZodNullable<z.ZodDate>;
|
|
25
|
+
dueDate: z.ZodNullable<z.ZodDate>;
|
|
24
26
|
archived: z.ZodDefault<z.ZodBoolean>;
|
|
25
27
|
archivedAt: z.ZodOptional<z.ZodNullable<z.ZodDate>>;
|
|
28
|
+
updatedBy: z.ZodNullable<z.ZodString>;
|
|
26
29
|
}, z.core.$strip>;
|
|
30
|
+
export declare function formatTaskId(task: {
|
|
31
|
+
boardTaskId: number | null;
|
|
32
|
+
id: string;
|
|
33
|
+
}): string;
|
|
34
|
+
export declare const AuditSchema: z.ZodObject<{
|
|
35
|
+
id: z.ZodNumber;
|
|
36
|
+
timestamp: z.ZodDate;
|
|
37
|
+
eventType: z.ZodEnum<{
|
|
38
|
+
CREATE: "CREATE";
|
|
39
|
+
UPDATE: "UPDATE";
|
|
40
|
+
DELETE: "DELETE";
|
|
41
|
+
}>;
|
|
42
|
+
objectType: z.ZodEnum<{
|
|
43
|
+
task: "task";
|
|
44
|
+
column: "column";
|
|
45
|
+
board: "board";
|
|
46
|
+
}>;
|
|
47
|
+
objectId: z.ZodString;
|
|
48
|
+
fieldName: z.ZodNullable<z.ZodString>;
|
|
49
|
+
oldValue: z.ZodNullable<z.ZodString>;
|
|
50
|
+
newValue: z.ZodNullable<z.ZodString>;
|
|
51
|
+
actor: z.ZodNullable<z.ZodString>;
|
|
52
|
+
}, z.core.$strip>;
|
|
53
|
+
export type Audit = z.infer<typeof AuditSchema>;
|
|
54
|
+
export declare const LinkTypeSchema: z.ZodEnum<{
|
|
55
|
+
blocks: "blocks";
|
|
56
|
+
blocked_by: "blocked_by";
|
|
57
|
+
related: "related";
|
|
58
|
+
}>;
|
|
59
|
+
export type LinkType = z.infer<typeof LinkTypeSchema>;
|
|
60
|
+
export declare const TaskLinkSchema: z.ZodObject<{
|
|
61
|
+
id: z.ZodNumber;
|
|
62
|
+
fromTaskId: z.ZodString;
|
|
63
|
+
toTaskId: z.ZodString;
|
|
64
|
+
linkType: z.ZodEnum<{
|
|
65
|
+
blocks: "blocks";
|
|
66
|
+
blocked_by: "blocked_by";
|
|
67
|
+
related: "related";
|
|
68
|
+
}>;
|
|
69
|
+
createdAt: z.ZodDate;
|
|
70
|
+
}, z.core.$strip>;
|
|
71
|
+
export type TaskLink = z.infer<typeof TaskLinkSchema>;
|
|
27
72
|
export declare const ColumnSchema: z.ZodObject<{
|
|
28
73
|
id: z.ZodString;
|
|
29
74
|
name: z.ZodString;
|
|
@@ -34,6 +79,7 @@ export declare const ColumnSchema: z.ZodObject<{
|
|
|
34
79
|
export declare const BoardSchema: z.ZodObject<{
|
|
35
80
|
id: z.ZodString;
|
|
36
81
|
name: z.ZodString;
|
|
82
|
+
maxBoardTaskId: z.ZodNumber;
|
|
37
83
|
createdAt: z.ZodDate;
|
|
38
84
|
updatedAt: z.ZodDate;
|
|
39
85
|
}, z.core.$strip>;
|
|
@@ -74,6 +120,7 @@ export declare const AddTaskInputSchema: z.ZodObject<{
|
|
|
74
120
|
dependsOn: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
75
121
|
files: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
76
122
|
labels: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
123
|
+
dueDate: z.ZodOptional<z.ZodString>;
|
|
77
124
|
}, z.core.$strip>;
|
|
78
125
|
export declare const UpdateTaskInputSchema: z.ZodObject<{
|
|
79
126
|
title: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>>;
|
|
@@ -81,6 +128,7 @@ export declare const UpdateTaskInputSchema: z.ZodObject<{
|
|
|
81
128
|
assignedTo: z.ZodOptional<z.ZodNullable<z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>>>;
|
|
82
129
|
files: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
83
130
|
labels: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
131
|
+
dueDate: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
84
132
|
}, z.core.$strip>;
|
|
85
133
|
export declare const MoveTaskInputSchema: z.ZodObject<{
|
|
86
134
|
id: z.ZodString;
|
|
@@ -103,6 +151,7 @@ export declare const DeleteTaskInputSchema: z.ZodObject<{
|
|
|
103
151
|
}, z.core.$strip>;
|
|
104
152
|
export declare const TaskResponseSchema: z.ZodObject<{
|
|
105
153
|
id: z.ZodString;
|
|
154
|
+
boardTaskId: z.ZodNullable<z.ZodNumber>;
|
|
106
155
|
title: z.ZodString;
|
|
107
156
|
description: z.ZodNullable<z.ZodString>;
|
|
108
157
|
columnId: z.ZodString;
|
|
@@ -116,10 +165,12 @@ export declare const TaskResponseSchema: z.ZodObject<{
|
|
|
116
165
|
blockedReason: z.ZodNullable<z.ZodString>;
|
|
117
166
|
version: z.ZodNumber;
|
|
118
167
|
archived: z.ZodDefault<z.ZodBoolean>;
|
|
168
|
+
updatedBy: z.ZodNullable<z.ZodString>;
|
|
119
169
|
createdAt: z.ZodString;
|
|
120
170
|
updatedAt: z.ZodString;
|
|
121
171
|
startedAt: z.ZodNullable<z.ZodString>;
|
|
122
172
|
completedAt: z.ZodNullable<z.ZodString>;
|
|
173
|
+
dueDate: z.ZodNullable<z.ZodString>;
|
|
123
174
|
archivedAt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
124
175
|
}, z.core.$strip>;
|
|
125
176
|
export declare const BoardStatusSchema: z.ZodObject<{
|
|
@@ -159,6 +210,7 @@ export type BoardStatus = z.infer<typeof BoardStatusSchema>;
|
|
|
159
210
|
export declare const jsonSchemas: {
|
|
160
211
|
readonly Task: z.core.ZodStandardJSONSchemaPayload<z.ZodObject<{
|
|
161
212
|
id: z.ZodString;
|
|
213
|
+
boardTaskId: z.ZodNullable<z.ZodNumber>;
|
|
162
214
|
title: z.ZodString;
|
|
163
215
|
description: z.ZodNullable<z.ZodString>;
|
|
164
216
|
columnId: z.ZodString;
|
|
@@ -172,10 +224,12 @@ export declare const jsonSchemas: {
|
|
|
172
224
|
blockedReason: z.ZodNullable<z.ZodString>;
|
|
173
225
|
version: z.ZodNumber;
|
|
174
226
|
archived: z.ZodDefault<z.ZodBoolean>;
|
|
227
|
+
updatedBy: z.ZodNullable<z.ZodString>;
|
|
175
228
|
createdAt: z.ZodString;
|
|
176
229
|
updatedAt: z.ZodString;
|
|
177
230
|
startedAt: z.ZodNullable<z.ZodString>;
|
|
178
231
|
completedAt: z.ZodNullable<z.ZodString>;
|
|
232
|
+
dueDate: z.ZodNullable<z.ZodString>;
|
|
179
233
|
archivedAt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
180
234
|
}, z.core.$strip>>;
|
|
181
235
|
readonly Column: z.core.ZodStandardJSONSchemaPayload<z.ZodObject<{
|
|
@@ -216,6 +270,7 @@ export declare const jsonSchemas: {
|
|
|
216
270
|
dependsOn: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
217
271
|
files: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
218
272
|
labels: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
273
|
+
dueDate: z.ZodOptional<z.ZodString>;
|
|
219
274
|
}, z.core.$strip>>;
|
|
220
275
|
readonly UpdateTaskInput: z.core.ZodStandardJSONSchemaPayload<z.ZodObject<{
|
|
221
276
|
title: z.ZodOptional<z.ZodString>;
|
|
@@ -223,6 +278,7 @@ export declare const jsonSchemas: {
|
|
|
223
278
|
assignedTo: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
224
279
|
files: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
225
280
|
labels: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
281
|
+
dueDate: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
226
282
|
}, z.core.$strip>>;
|
|
227
283
|
readonly MoveTaskInput: z.core.ZodStandardJSONSchemaPayload<z.ZodObject<{
|
|
228
284
|
id: z.ZodString;
|
|
@@ -258,6 +314,7 @@ export declare const jsonSchemas: {
|
|
|
258
314
|
export type SchemaName = keyof typeof jsonSchemas;
|
|
259
315
|
export declare function getJsonSchema(name: SchemaName): z.core.ZodStandardJSONSchemaPayload<z.ZodObject<{
|
|
260
316
|
id: z.ZodString;
|
|
317
|
+
boardTaskId: z.ZodNullable<z.ZodNumber>;
|
|
261
318
|
title: z.ZodString;
|
|
262
319
|
description: z.ZodNullable<z.ZodString>;
|
|
263
320
|
columnId: z.ZodString;
|
|
@@ -271,10 +328,12 @@ export declare function getJsonSchema(name: SchemaName): z.core.ZodStandardJSONS
|
|
|
271
328
|
blockedReason: z.ZodNullable<z.ZodString>;
|
|
272
329
|
version: z.ZodNumber;
|
|
273
330
|
archived: z.ZodDefault<z.ZodBoolean>;
|
|
331
|
+
updatedBy: z.ZodNullable<z.ZodString>;
|
|
274
332
|
createdAt: z.ZodString;
|
|
275
333
|
updatedAt: z.ZodString;
|
|
276
334
|
startedAt: z.ZodNullable<z.ZodString>;
|
|
277
335
|
completedAt: z.ZodNullable<z.ZodString>;
|
|
336
|
+
dueDate: z.ZodNullable<z.ZodString>;
|
|
278
337
|
archivedAt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
279
338
|
}, z.core.$strip>> | z.core.ZodStandardJSONSchemaPayload<z.ZodObject<{
|
|
280
339
|
id: z.ZodString;
|
|
@@ -311,12 +370,14 @@ export declare function getJsonSchema(name: SchemaName): z.core.ZodStandardJSONS
|
|
|
311
370
|
dependsOn: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
312
371
|
files: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
313
372
|
labels: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
373
|
+
dueDate: z.ZodOptional<z.ZodString>;
|
|
314
374
|
}, z.core.$strip>> | z.core.ZodStandardJSONSchemaPayload<z.ZodObject<{
|
|
315
375
|
title: z.ZodOptional<z.ZodString>;
|
|
316
376
|
description: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
317
377
|
assignedTo: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
318
378
|
files: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
319
379
|
labels: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
380
|
+
dueDate: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
320
381
|
}, z.core.$strip>> | z.core.ZodStandardJSONSchemaPayload<z.ZodObject<{
|
|
321
382
|
id: z.ZodString;
|
|
322
383
|
columnId: z.ZodString;
|
package/dist/schemas.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../src/schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAI3B,eAAO,MAAM,UAAU,aAAsD,CAAC;AAO9E,eAAO,MAAM,WAAW,wDAA6C,CAAC;AAWtE,eAAO,MAAM,eAAe,wDAAwD,CAAC;AAErF,eAAO,MAAM,cAAc,aAI0D,CAAC;AAEtF,eAAO,MAAM,UAAU
|
|
1
|
+
{"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../src/schemas.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import type { DB } from "../db/types.js";
|
|
2
|
+
export type AuditEventType = "CREATE" | "UPDATE" | "DELETE";
|
|
3
|
+
export type AuditObjectType = "task" | "column" | "board";
|
|
4
|
+
export interface AuditEntry {
|
|
5
|
+
id: number;
|
|
6
|
+
timestamp: Date;
|
|
7
|
+
eventType: AuditEventType;
|
|
8
|
+
objectType: AuditObjectType;
|
|
9
|
+
objectId: string;
|
|
10
|
+
fieldName: string | null;
|
|
11
|
+
oldValue: string | null;
|
|
12
|
+
newValue: string | null;
|
|
13
|
+
actor: string | null;
|
|
14
|
+
}
|
|
15
|
+
export interface AuditFilter {
|
|
16
|
+
objectType?: AuditObjectType;
|
|
17
|
+
objectId?: string;
|
|
18
|
+
eventType?: AuditEventType;
|
|
19
|
+
actor?: string;
|
|
20
|
+
since?: Date;
|
|
21
|
+
until?: Date;
|
|
22
|
+
limit?: number;
|
|
23
|
+
offset?: number;
|
|
24
|
+
}
|
|
25
|
+
export interface AuditHistoryResult {
|
|
26
|
+
entries: AuditEntry[];
|
|
27
|
+
total: number;
|
|
28
|
+
hasMore: boolean;
|
|
29
|
+
}
|
|
30
|
+
export interface AuditStats {
|
|
31
|
+
totalEntries: number;
|
|
32
|
+
byEventType: Record<AuditEventType, number>;
|
|
33
|
+
byObjectType: Record<AuditObjectType, number>;
|
|
34
|
+
recentActors: string[];
|
|
35
|
+
}
|
|
36
|
+
export declare class AuditService {
|
|
37
|
+
private db;
|
|
38
|
+
constructor(db: DB);
|
|
39
|
+
getHistory(filter?: AuditFilter): Promise<AuditHistoryResult>;
|
|
40
|
+
getTaskHistory(taskId: string, limit?: number): Promise<AuditEntry[]>;
|
|
41
|
+
getRecentChanges(limit?: number): Promise<AuditEntry[]>;
|
|
42
|
+
getChangesByActor(actor: string, limit?: number): Promise<AuditEntry[]>;
|
|
43
|
+
getStats(): Promise<AuditStats>;
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=audit.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"audit.d.ts","sourceRoot":"","sources":["../../src/services/audit.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAC;AAEzC,MAAM,MAAM,cAAc,GAAG,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAC5D,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;AAE1D,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,EAAE,cAAc,CAAC;IAC1B,UAAU,EAAE,eAAe,CAAC;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED,MAAM,WAAW,WAAW;IAC1B,UAAU,CAAC,EAAE,eAAe,CAAC;IAC7B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,cAAc,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,IAAI,CAAC;IACb,KAAK,CAAC,EAAE,IAAI,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,UAAU,EAAE,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,UAAU;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;IAC5C,YAAY,EAAE,MAAM,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;IAC9C,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,qBAAa,YAAY;IACX,OAAO,CAAC,EAAE;gBAAF,EAAE,EAAE,EAAE;IAEpB,UAAU,CAAC,MAAM,GAAE,WAAgB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAkDjE,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,SAAK,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IASjE,gBAAgB,CAAC,KAAK,SAAK,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAKnD,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,SAAK,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAKnE,QAAQ,IAAI,OAAO,CAAC,UAAU,CAAC;CAuDtC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"board.d.ts","sourceRoot":"","sources":["../../src/services/board.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAEzD,qBAAa,YAAY;IACX,OAAO,CAAC,EAAE;gBAAF,EAAE,EAAE,EAAE;IAEpB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"board.d.ts","sourceRoot":"","sources":["../../src/services/board.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAEzD,qBAAa,YAAY;IACX,OAAO,CAAC,EAAE;gBAAF,EAAE,EAAE,EAAE;IAEpB,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;IAgC/C,QAAQ,IAAI,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC;IAKjC,UAAU,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAI/B,SAAS,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAK7C,iBAAiB,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAK3C,kBAAkB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;CAO9C"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { Task } from "../types.js";
|
|
2
|
+
export interface CycleCheckResult {
|
|
3
|
+
hasCycle: boolean;
|
|
4
|
+
cyclePath?: string[];
|
|
5
|
+
}
|
|
6
|
+
export declare class DependencyService {
|
|
7
|
+
private getTask;
|
|
8
|
+
constructor(getTask: (id: string) => Promise<Task | null>);
|
|
9
|
+
/**
|
|
10
|
+
* Check if adding a dependency would create a cycle.
|
|
11
|
+
* Uses DFS from dependsOnId to see if we can reach taskId.
|
|
12
|
+
*
|
|
13
|
+
* If taskId depends on dependsOnId, we check:
|
|
14
|
+
* "Can we reach taskId by following dependsOnId's dependency chain?"
|
|
15
|
+
* If yes, adding this dependency would create a cycle.
|
|
16
|
+
*/
|
|
17
|
+
wouldCreateCycle(taskId: string, dependsOnId: string): Promise<CycleCheckResult>;
|
|
18
|
+
formatCyclePath(path: string[], getShortId?: (id: string) => string | number | null): string;
|
|
19
|
+
}
|
|
20
|
+
//# sourceMappingURL=dependency.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dependency.d.ts","sourceRoot":"","sources":["../../src/services/dependency.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAExC,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB;AAED,qBAAa,iBAAiB;IAChB,OAAO,CAAC,OAAO;gBAAP,OAAO,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;IAEjE;;;;;;;OAOG;IACG,gBAAgB,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC;IA8CtF,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,MAAM,GAAG,MAAM,GAAG,IAAI,GAAG,MAAM;CAQ7F"}
|
package/dist/services/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,WAAW,CAAC"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { type LinkType } from "../db/schema.js";
|
|
2
|
+
import type { DB } from "../db/types.js";
|
|
3
|
+
export interface TaskLink {
|
|
4
|
+
id: number;
|
|
5
|
+
fromTaskId: string;
|
|
6
|
+
toTaskId: string;
|
|
7
|
+
linkType: LinkType;
|
|
8
|
+
createdAt: Date;
|
|
9
|
+
}
|
|
10
|
+
export declare class LinkService {
|
|
11
|
+
private db;
|
|
12
|
+
constructor(db: DB);
|
|
13
|
+
addLink(fromTaskId: string, toTaskId: string, type: LinkType): Promise<TaskLink>;
|
|
14
|
+
removeLink(fromTaskId: string, toTaskId: string, type: LinkType): Promise<void>;
|
|
15
|
+
getLinksFrom(taskId: string, type?: LinkType): Promise<TaskLink[]>;
|
|
16
|
+
getLinksTo(taskId: string, type?: LinkType): Promise<TaskLink[]>;
|
|
17
|
+
getAllLinks(taskId: string): Promise<TaskLink[]>;
|
|
18
|
+
getBlockers(taskId: string): Promise<string[]>;
|
|
19
|
+
getBlocking(taskId: string): Promise<string[]>;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=link.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"link.d.ts","sourceRoot":"","sources":["../../src/services/link.ts"],"names":[],"mappings":"AACA,OAAO,EAAa,KAAK,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAC;AAGzC,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,QAAQ,CAAC;IACnB,SAAS,EAAE,IAAI,CAAC;CACjB;AAED,qBAAa,WAAW;IACV,OAAO,CAAC,EAAE;gBAAF,EAAE,EAAE,EAAE;IAEpB,OAAO,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;IA6ChF,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IA4B/E,YAAY,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAUlE,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,QAAQ,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAUhE,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC;IAOhD,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAK9C,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;CAIrD"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import type { Column, Task } from "../types.js";
|
|
2
|
+
export interface ExportOptions {
|
|
3
|
+
includeArchived?: boolean;
|
|
4
|
+
includeMetadata?: boolean;
|
|
5
|
+
}
|
|
6
|
+
export interface ParsedTask {
|
|
7
|
+
title: string;
|
|
8
|
+
id?: string;
|
|
9
|
+
description: string | null;
|
|
10
|
+
dueDate: Date | null;
|
|
11
|
+
labels: string[];
|
|
12
|
+
assignedTo?: string;
|
|
13
|
+
}
|
|
14
|
+
export interface ParsedColumn {
|
|
15
|
+
name: string;
|
|
16
|
+
wipLimit?: number;
|
|
17
|
+
isTerminal?: boolean;
|
|
18
|
+
tasks: ParsedTask[];
|
|
19
|
+
}
|
|
20
|
+
export interface ParseResult {
|
|
21
|
+
boardName: string;
|
|
22
|
+
columns: ParsedColumn[];
|
|
23
|
+
errors: string[];
|
|
24
|
+
}
|
|
25
|
+
export declare class MarkdownService {
|
|
26
|
+
/**
|
|
27
|
+
* Export board to Markdown format (Taskell-compatible)
|
|
28
|
+
*/
|
|
29
|
+
exportBoard(board: {
|
|
30
|
+
name: string;
|
|
31
|
+
}, columns: Column[], tasksByColumn: Map<string, Task[]>, options?: ExportOptions): string;
|
|
32
|
+
/**
|
|
33
|
+
* Parse Markdown into board structure
|
|
34
|
+
*/
|
|
35
|
+
parseMarkdown(content: string): ParseResult;
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=markdown.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"markdown.d.ts","sourceRoot":"","sources":["../../src/services/markdown.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAEhD,MAAM,WAAW,aAAa;IAC5B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,OAAO,EAAE,IAAI,GAAG,IAAI,CAAC;IACrB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,KAAK,EAAE,UAAU,EAAE,CAAC;CACrB;AAED,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,qBAAa,eAAe;IAC1B;;OAEG;IACH,WAAW,CACT,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,EACvB,OAAO,EAAE,MAAM,EAAE,EACjB,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,EAClC,OAAO,CAAC,EAAE,aAAa,GACtB,MAAM;IA2DT;;OAEG;IACH,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,WAAW;CA4H5C"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { Task } from "../../types.js";
|
|
2
|
+
import type { ScoredTask, TaskScorer } from "./types.js";
|
|
3
|
+
export * from "./types.js";
|
|
4
|
+
export { fifoScorer } from "./scorers/fifo.js";
|
|
5
|
+
export { priorityScorer } from "./scorers/priority.js";
|
|
6
|
+
export { dueDateScorer } from "./scorers/due-date.js";
|
|
7
|
+
export { createBlockingScorer } from "./scorers/blocking.js";
|
|
8
|
+
export declare class ScoringService {
|
|
9
|
+
private scorers;
|
|
10
|
+
addScorer(scorer: TaskScorer): void;
|
|
11
|
+
removeScorer(name: string): void;
|
|
12
|
+
getScorers(): TaskScorer[];
|
|
13
|
+
scoreTask(task: Task): Promise<ScoredTask>;
|
|
14
|
+
rankTasks(tasks: Task[]): Promise<ScoredTask[]>;
|
|
15
|
+
}
|
|
16
|
+
export declare function createDefaultScoringService(): ScoringService;
|
|
17
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/services/scoring/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAEzD,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAE7D,qBAAa,cAAc;IACzB,OAAO,CAAC,OAAO,CAAoB;IAEnC,SAAS,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI;IAInC,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAIhC,UAAU,IAAI,UAAU,EAAE;IAIpB,SAAS,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,UAAU,CAAC;IAiB1C,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;CAItD;AAED,wBAAgB,2BAA2B,IAAI,cAAc,CAE5D"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { TaskScorer } from "../types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Blocking scorer - tasks that block others score higher.
|
|
4
|
+
* Requires external context about blocking relationships.
|
|
5
|
+
*/
|
|
6
|
+
export declare function createBlockingScorer(getBlockingCount: (taskId: string) => Promise<number>): TaskScorer;
|
|
7
|
+
//# sourceMappingURL=blocking.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"blocking.d.ts","sourceRoot":"","sources":["../../../../src/services/scoring/scorers/blocking.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,gBAAgB,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,GACpD,UAAU,CAYZ"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"due-date.d.ts","sourceRoot":"","sources":["../../../../src/services/scoring/scorers/due-date.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C;;;GAGG;AACH,eAAO,MAAM,aAAa,EAAE,UAgC3B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fifo.d.ts","sourceRoot":"","sources":["../../../../src/services/scoring/scorers/fifo.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9C;;;GAGG;AACH,eAAO,MAAM,UAAU,EAAE,UAUxB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"priority.d.ts","sourceRoot":"","sources":["../../../../src/services/scoring/scorers/priority.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAe9C;;;GAGG;AACH,eAAO,MAAM,cAAc,EAAE,UAiB5B,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { Task } from "../../types.js";
|
|
2
|
+
/**
|
|
3
|
+
* Interface for task scorers.
|
|
4
|
+
* Higher score = more important/urgent.
|
|
5
|
+
*/
|
|
6
|
+
export interface TaskScorer {
|
|
7
|
+
/** Unique identifier */
|
|
8
|
+
name: string;
|
|
9
|
+
/** Human-readable description */
|
|
10
|
+
description: string;
|
|
11
|
+
/** Units for display (e.g., "pri/day", "score") */
|
|
12
|
+
units?: string;
|
|
13
|
+
/**
|
|
14
|
+
* Calculate score for task.
|
|
15
|
+
* Returns Promise to allow async operations (e.g., fetching related tasks).
|
|
16
|
+
*/
|
|
17
|
+
score(task: Task): Promise<number>;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Scored task with score breakdown
|
|
21
|
+
*/
|
|
22
|
+
export interface ScoredTask {
|
|
23
|
+
task: Task;
|
|
24
|
+
score: number;
|
|
25
|
+
breakdown?: Record<string, number>;
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/services/scoring/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAE3C;;;GAGG;AACH,MAAM,WAAW,UAAU;IACzB,wBAAwB;IACxB,IAAI,EAAE,MAAM,CAAC;IAEb,iCAAiC;IACjC,WAAW,EAAE,MAAM,CAAC;IAEpB,mDAAmD;IACnD,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf;;;OAGG;IACH,KAAK,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CACpC;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,IAAI,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACpC"}
|
package/dist/services/task.d.ts
CHANGED
|
@@ -8,6 +8,7 @@ export type UpdateTaskInput = UpdateTaskInputSchema;
|
|
|
8
8
|
export interface MoveTaskOptions {
|
|
9
9
|
force?: boolean;
|
|
10
10
|
validateDeps?: boolean;
|
|
11
|
+
actor?: string;
|
|
11
12
|
}
|
|
12
13
|
export interface ArchiveTasksCriteria {
|
|
13
14
|
status?: string;
|
|
@@ -53,6 +54,7 @@ export declare class TaskService {
|
|
|
53
54
|
private db;
|
|
54
55
|
private boardService;
|
|
55
56
|
private duplicateConfig;
|
|
57
|
+
private depService;
|
|
56
58
|
constructor(db: DB, boardService: BoardService);
|
|
57
59
|
private getTaskOrThrow;
|
|
58
60
|
addTask(input: AddTaskInput): Promise<Task>;
|
|
@@ -60,7 +62,7 @@ export declare class TaskService {
|
|
|
60
62
|
listTasks(filter?: ListTasksFilter): Promise<Task[]>;
|
|
61
63
|
deleteTask(id: string): Promise<void>;
|
|
62
64
|
moveTask(id: string, columnId: string, options?: MoveTaskOptions): Promise<Task>;
|
|
63
|
-
updateTask(id: string, input: UpdateTaskInput, expectedVersion?: number): Promise<Task>;
|
|
65
|
+
updateTask(id: string, input: UpdateTaskInput, expectedVersion?: number, actor?: string): Promise<Task>;
|
|
64
66
|
private getTaskCountInColumn;
|
|
65
67
|
archiveTasks(criteria: ArchiveTasksCriteria): Promise<ArchiveTasksResult>;
|
|
66
68
|
/**
|
|
@@ -88,5 +90,8 @@ export declare class TaskService {
|
|
|
88
90
|
byColumn: Record<string, number>;
|
|
89
91
|
oldestArchivedAt: Date | null;
|
|
90
92
|
}>;
|
|
93
|
+
resolveTask(idOrShortId: string, boardId?: string): Promise<Task | null>;
|
|
94
|
+
getTaskByBoardTaskId(boardId: string, boardTaskId: number): Promise<Task | null>;
|
|
95
|
+
getTaskByIdPrefix(prefix: string): Promise<Task | null>;
|
|
91
96
|
}
|
|
92
97
|
//# sourceMappingURL=task.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"task.d.ts","sourceRoot":"","sources":["../../src/services/task.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,KAAK,EACV,YAAY,IAAI,kBAAkB,EAClC,eAAe,IAAI,qBAAqB,EACxC,eAAe,IAAI,qBAAqB,EACzC,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"task.d.ts","sourceRoot":"","sources":["../../src/services/task.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export interface ParsedDate {
|
|
2
|
+
date: Date;
|
|
3
|
+
hasTime: boolean;
|
|
4
|
+
dstAdjusted?: boolean;
|
|
5
|
+
}
|
|
6
|
+
export declare class DateParseError extends Error {
|
|
7
|
+
input: string;
|
|
8
|
+
suggestion?: string | undefined;
|
|
9
|
+
constructor(input: string, suggestion?: string | undefined);
|
|
10
|
+
}
|
|
11
|
+
export declare function parseDate(input: string, referenceDate?: Date): ParsedDate;
|
|
12
|
+
export declare function parseDateOrNull(input: string | null | undefined, referenceDate?: Date): Date | null;
|
|
13
|
+
export declare function formatRelativeDate(date: Date, now?: Date): string;
|
|
14
|
+
//# sourceMappingURL=date-parser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"date-parser.d.ts","sourceRoot":"","sources":["../../src/utils/date-parser.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,IAAI,CAAC;IACX,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,qBAAa,cAAe,SAAQ,KAAK;IAE9B,KAAK,EAAE,MAAM;IACb,UAAU,CAAC,EAAE,MAAM;gBADnB,KAAK,EAAE,MAAM,EACb,UAAU,CAAC,EAAE,MAAM,YAAA;CAK7B;AAID,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,IAAI,GAAG,UAAU,CAmDzE;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAAE,aAAa,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,CAOnG;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,EAAE,IAAI,GAAG,MAAM,CAYjE"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kaban-board/core",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.2",
|
|
4
4
|
"description": "Core database and services for Kaban - Terminal Kanban for AI Agents",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -26,6 +26,7 @@
|
|
|
26
26
|
},
|
|
27
27
|
"dependencies": {
|
|
28
28
|
"@libsql/client": "^0.17.0",
|
|
29
|
+
"chrono-node": "^2.9.0",
|
|
29
30
|
"drizzle-orm": "^0.45.1",
|
|
30
31
|
"ulid": "^3.0.2",
|
|
31
32
|
"zod": "^4.3.6"
|