@kaban-board/core 0.1.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.
@@ -0,0 +1,326 @@
1
+ import { z } from "zod/v4";
2
+ export declare const UlidSchema: z.ZodString;
3
+ export declare const TitleSchema: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
4
+ export declare const AgentNameSchema: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
5
+ export declare const ColumnIdSchema: z.ZodString;
6
+ export declare const TaskSchema: z.ZodObject<{
7
+ id: z.ZodString;
8
+ title: z.ZodString;
9
+ description: z.ZodNullable<z.ZodString>;
10
+ columnId: z.ZodString;
11
+ position: z.ZodNumber;
12
+ createdBy: z.ZodString;
13
+ assignedTo: z.ZodNullable<z.ZodString>;
14
+ parentId: z.ZodNullable<z.ZodString>;
15
+ dependsOn: z.ZodArray<z.ZodString>;
16
+ files: z.ZodArray<z.ZodString>;
17
+ labels: z.ZodArray<z.ZodString>;
18
+ blockedReason: z.ZodNullable<z.ZodString>;
19
+ version: z.ZodNumber;
20
+ createdAt: z.ZodDate;
21
+ updatedAt: z.ZodDate;
22
+ startedAt: z.ZodNullable<z.ZodDate>;
23
+ completedAt: z.ZodNullable<z.ZodDate>;
24
+ }, z.core.$strip>;
25
+ export declare const ColumnSchema: z.ZodObject<{
26
+ id: z.ZodString;
27
+ name: z.ZodString;
28
+ position: z.ZodNumber;
29
+ wipLimit: z.ZodNullable<z.ZodNumber>;
30
+ isTerminal: z.ZodBoolean;
31
+ }, z.core.$strip>;
32
+ export declare const BoardSchema: z.ZodObject<{
33
+ id: z.ZodString;
34
+ name: z.ZodString;
35
+ createdAt: z.ZodDate;
36
+ updatedAt: z.ZodDate;
37
+ }, z.core.$strip>;
38
+ export declare const BoardResponseSchema: z.ZodObject<{
39
+ id: z.ZodString;
40
+ name: z.ZodString;
41
+ createdAt: z.ZodString;
42
+ updatedAt: z.ZodString;
43
+ }, z.core.$strip>;
44
+ export declare const ColumnConfigSchema: z.ZodObject<{
45
+ id: z.ZodString;
46
+ name: z.ZodString;
47
+ wipLimit: z.ZodOptional<z.ZodNumber>;
48
+ isTerminal: z.ZodOptional<z.ZodBoolean>;
49
+ }, z.core.$strip>;
50
+ export declare const ConfigSchema: z.ZodObject<{
51
+ board: z.ZodObject<{
52
+ name: z.ZodString;
53
+ }, z.core.$strip>;
54
+ columns: z.ZodArray<z.ZodObject<{
55
+ id: z.ZodString;
56
+ name: z.ZodString;
57
+ wipLimit: z.ZodOptional<z.ZodNumber>;
58
+ isTerminal: z.ZodOptional<z.ZodBoolean>;
59
+ }, z.core.$strip>>;
60
+ defaults: z.ZodObject<{
61
+ column: z.ZodString;
62
+ agent: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
63
+ }, z.core.$strip>;
64
+ }, z.core.$strip>;
65
+ export declare const AddTaskInputSchema: z.ZodObject<{
66
+ title: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
67
+ description: z.ZodOptional<z.ZodString>;
68
+ columnId: z.ZodOptional<z.ZodString>;
69
+ agent: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>>;
70
+ dependsOn: z.ZodOptional<z.ZodArray<z.ZodString>>;
71
+ files: z.ZodOptional<z.ZodArray<z.ZodString>>;
72
+ labels: z.ZodOptional<z.ZodArray<z.ZodString>>;
73
+ }, z.core.$strip>;
74
+ export declare const UpdateTaskInputSchema: z.ZodObject<{
75
+ title: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>>;
76
+ description: z.ZodOptional<z.ZodNullable<z.ZodString>>;
77
+ assignedTo: z.ZodOptional<z.ZodNullable<z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>>>;
78
+ files: z.ZodOptional<z.ZodArray<z.ZodString>>;
79
+ labels: z.ZodOptional<z.ZodArray<z.ZodString>>;
80
+ }, z.core.$strip>;
81
+ export declare const MoveTaskInputSchema: z.ZodObject<{
82
+ id: z.ZodString;
83
+ columnId: z.ZodString;
84
+ force: z.ZodOptional<z.ZodBoolean>;
85
+ }, z.core.$strip>;
86
+ export declare const ListTasksFilterSchema: z.ZodObject<{
87
+ columnId: z.ZodOptional<z.ZodString>;
88
+ agent: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>>;
89
+ assignee: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>>;
90
+ blocked: z.ZodOptional<z.ZodBoolean>;
91
+ }, z.core.$strip>;
92
+ export declare const GetTaskInputSchema: z.ZodObject<{
93
+ id: z.ZodString;
94
+ }, z.core.$strip>;
95
+ export declare const DeleteTaskInputSchema: z.ZodObject<{
96
+ id: z.ZodString;
97
+ }, z.core.$strip>;
98
+ export declare const TaskResponseSchema: z.ZodObject<{
99
+ id: z.ZodString;
100
+ title: z.ZodString;
101
+ description: z.ZodNullable<z.ZodString>;
102
+ columnId: z.ZodString;
103
+ position: z.ZodNumber;
104
+ createdBy: z.ZodString;
105
+ assignedTo: z.ZodNullable<z.ZodString>;
106
+ parentId: z.ZodNullable<z.ZodString>;
107
+ dependsOn: z.ZodArray<z.ZodString>;
108
+ files: z.ZodArray<z.ZodString>;
109
+ labels: z.ZodArray<z.ZodString>;
110
+ blockedReason: z.ZodNullable<z.ZodString>;
111
+ version: z.ZodNumber;
112
+ createdAt: z.ZodString;
113
+ updatedAt: z.ZodString;
114
+ startedAt: z.ZodNullable<z.ZodString>;
115
+ completedAt: z.ZodNullable<z.ZodString>;
116
+ }, z.core.$strip>;
117
+ export declare const BoardStatusSchema: z.ZodObject<{
118
+ board: z.ZodObject<{
119
+ id: z.ZodString;
120
+ name: z.ZodString;
121
+ createdAt: z.ZodString;
122
+ updatedAt: z.ZodString;
123
+ }, z.core.$strip>;
124
+ columns: z.ZodArray<z.ZodObject<{
125
+ id: z.ZodString;
126
+ name: z.ZodString;
127
+ position: z.ZodNumber;
128
+ wipLimit: z.ZodNullable<z.ZodNumber>;
129
+ isTerminal: z.ZodBoolean;
130
+ taskCount: z.ZodNumber;
131
+ }, z.core.$strip>>;
132
+ totalTasks: z.ZodNumber;
133
+ }, z.core.$strip>;
134
+ export declare const ApiResponseSchema: <T extends z.ZodType>(dataSchema: T) => z.ZodObject<{
135
+ success: z.ZodBoolean;
136
+ data: z.ZodOptional<T>;
137
+ error: z.ZodOptional<z.ZodObject<{
138
+ message: z.ZodString;
139
+ code: z.ZodNumber;
140
+ }, z.core.$strip>>;
141
+ }, z.core.$strip>;
142
+ export type Task = z.infer<typeof TaskSchema>;
143
+ export type Column = z.infer<typeof ColumnSchema>;
144
+ export type Board = z.infer<typeof BoardSchema>;
145
+ export type Config = z.infer<typeof ConfigSchema>;
146
+ export type AddTaskInput = z.infer<typeof AddTaskInputSchema>;
147
+ export type UpdateTaskInput = z.infer<typeof UpdateTaskInputSchema>;
148
+ export type MoveTaskInput = z.infer<typeof MoveTaskInputSchema>;
149
+ export type ListTasksFilter = z.infer<typeof ListTasksFilterSchema>;
150
+ export type BoardStatus = z.infer<typeof BoardStatusSchema>;
151
+ export declare const jsonSchemas: {
152
+ readonly Task: z.core.ZodStandardJSONSchemaPayload<z.ZodObject<{
153
+ id: z.ZodString;
154
+ title: z.ZodString;
155
+ description: z.ZodNullable<z.ZodString>;
156
+ columnId: z.ZodString;
157
+ position: z.ZodNumber;
158
+ createdBy: z.ZodString;
159
+ assignedTo: z.ZodNullable<z.ZodString>;
160
+ parentId: z.ZodNullable<z.ZodString>;
161
+ dependsOn: z.ZodArray<z.ZodString>;
162
+ files: z.ZodArray<z.ZodString>;
163
+ labels: z.ZodArray<z.ZodString>;
164
+ blockedReason: z.ZodNullable<z.ZodString>;
165
+ version: z.ZodNumber;
166
+ createdAt: z.ZodString;
167
+ updatedAt: z.ZodString;
168
+ startedAt: z.ZodNullable<z.ZodString>;
169
+ completedAt: z.ZodNullable<z.ZodString>;
170
+ }, z.core.$strip>>;
171
+ readonly Column: z.core.ZodStandardJSONSchemaPayload<z.ZodObject<{
172
+ id: z.ZodString;
173
+ name: z.ZodString;
174
+ position: z.ZodNumber;
175
+ wipLimit: z.ZodNullable<z.ZodNumber>;
176
+ isTerminal: z.ZodBoolean;
177
+ }, z.core.$strip>>;
178
+ readonly Board: z.core.ZodStandardJSONSchemaPayload<z.ZodObject<{
179
+ id: z.ZodString;
180
+ name: z.ZodString;
181
+ createdAt: z.ZodString;
182
+ updatedAt: z.ZodString;
183
+ }, z.core.$strip>>;
184
+ readonly Config: z.core.ZodStandardJSONSchemaPayload<z.ZodObject<{
185
+ board: z.ZodObject<{
186
+ name: z.ZodString;
187
+ }, z.core.$strip>;
188
+ columns: z.ZodArray<z.ZodObject<{
189
+ id: z.ZodString;
190
+ name: z.ZodString;
191
+ wipLimit: z.ZodOptional<z.ZodNumber>;
192
+ isTerminal: z.ZodOptional<z.ZodBoolean>;
193
+ }, z.core.$strip>>;
194
+ defaults: z.ZodObject<{
195
+ column: z.ZodString;
196
+ agent: z.ZodString;
197
+ }, z.core.$strip>;
198
+ }, z.core.$strip>>;
199
+ readonly AddTaskInput: z.core.ZodStandardJSONSchemaPayload<z.ZodObject<{
200
+ title: z.ZodString;
201
+ description: z.ZodOptional<z.ZodString>;
202
+ columnId: z.ZodOptional<z.ZodString>;
203
+ agent: z.ZodOptional<z.ZodString>;
204
+ dependsOn: z.ZodOptional<z.ZodArray<z.ZodString>>;
205
+ files: z.ZodOptional<z.ZodArray<z.ZodString>>;
206
+ labels: z.ZodOptional<z.ZodArray<z.ZodString>>;
207
+ }, z.core.$strip>>;
208
+ readonly UpdateTaskInput: z.core.ZodStandardJSONSchemaPayload<z.ZodObject<{
209
+ title: z.ZodOptional<z.ZodString>;
210
+ description: z.ZodOptional<z.ZodNullable<z.ZodString>>;
211
+ assignedTo: z.ZodOptional<z.ZodNullable<z.ZodString>>;
212
+ files: z.ZodOptional<z.ZodArray<z.ZodString>>;
213
+ labels: z.ZodOptional<z.ZodArray<z.ZodString>>;
214
+ }, z.core.$strip>>;
215
+ readonly MoveTaskInput: z.core.ZodStandardJSONSchemaPayload<z.ZodObject<{
216
+ id: z.ZodString;
217
+ columnId: z.ZodString;
218
+ force: z.ZodOptional<z.ZodBoolean>;
219
+ }, z.core.$strip>>;
220
+ readonly ListTasksFilter: z.core.ZodStandardJSONSchemaPayload<z.ZodObject<{
221
+ columnId: z.ZodOptional<z.ZodString>;
222
+ agent: z.ZodOptional<z.ZodString>;
223
+ blocked: z.ZodOptional<z.ZodBoolean>;
224
+ }, z.core.$strip>>;
225
+ readonly BoardStatus: z.core.ZodStandardJSONSchemaPayload<z.ZodObject<{
226
+ board: z.ZodObject<{
227
+ id: z.ZodString;
228
+ name: z.ZodString;
229
+ createdAt: z.ZodString;
230
+ updatedAt: z.ZodString;
231
+ }, z.core.$strip>;
232
+ columns: z.ZodArray<z.ZodObject<{
233
+ id: z.ZodString;
234
+ name: z.ZodString;
235
+ position: z.ZodNumber;
236
+ wipLimit: z.ZodNullable<z.ZodNumber>;
237
+ isTerminal: z.ZodBoolean;
238
+ taskCount: z.ZodNumber;
239
+ }, z.core.$strip>>;
240
+ totalTasks: z.ZodNumber;
241
+ }, z.core.$strip>>;
242
+ };
243
+ export type SchemaName = keyof typeof jsonSchemas;
244
+ export declare function getJsonSchema(name: SchemaName): z.core.ZodStandardJSONSchemaPayload<z.ZodObject<{
245
+ id: z.ZodString;
246
+ title: z.ZodString;
247
+ description: z.ZodNullable<z.ZodString>;
248
+ columnId: z.ZodString;
249
+ position: z.ZodNumber;
250
+ createdBy: z.ZodString;
251
+ assignedTo: z.ZodNullable<z.ZodString>;
252
+ parentId: z.ZodNullable<z.ZodString>;
253
+ dependsOn: z.ZodArray<z.ZodString>;
254
+ files: z.ZodArray<z.ZodString>;
255
+ labels: z.ZodArray<z.ZodString>;
256
+ blockedReason: z.ZodNullable<z.ZodString>;
257
+ version: z.ZodNumber;
258
+ createdAt: z.ZodString;
259
+ updatedAt: z.ZodString;
260
+ startedAt: z.ZodNullable<z.ZodString>;
261
+ completedAt: z.ZodNullable<z.ZodString>;
262
+ }, z.core.$strip>> | z.core.ZodStandardJSONSchemaPayload<z.ZodObject<{
263
+ id: z.ZodString;
264
+ name: z.ZodString;
265
+ position: z.ZodNumber;
266
+ wipLimit: z.ZodNullable<z.ZodNumber>;
267
+ isTerminal: z.ZodBoolean;
268
+ }, z.core.$strip>> | z.core.ZodStandardJSONSchemaPayload<z.ZodObject<{
269
+ id: z.ZodString;
270
+ name: z.ZodString;
271
+ createdAt: z.ZodString;
272
+ updatedAt: z.ZodString;
273
+ }, z.core.$strip>> | z.core.ZodStandardJSONSchemaPayload<z.ZodObject<{
274
+ board: z.ZodObject<{
275
+ name: z.ZodString;
276
+ }, z.core.$strip>;
277
+ columns: z.ZodArray<z.ZodObject<{
278
+ id: z.ZodString;
279
+ name: z.ZodString;
280
+ wipLimit: z.ZodOptional<z.ZodNumber>;
281
+ isTerminal: z.ZodOptional<z.ZodBoolean>;
282
+ }, z.core.$strip>>;
283
+ defaults: z.ZodObject<{
284
+ column: z.ZodString;
285
+ agent: z.ZodString;
286
+ }, z.core.$strip>;
287
+ }, z.core.$strip>> | z.core.ZodStandardJSONSchemaPayload<z.ZodObject<{
288
+ title: z.ZodString;
289
+ description: z.ZodOptional<z.ZodString>;
290
+ columnId: z.ZodOptional<z.ZodString>;
291
+ agent: z.ZodOptional<z.ZodString>;
292
+ dependsOn: z.ZodOptional<z.ZodArray<z.ZodString>>;
293
+ files: z.ZodOptional<z.ZodArray<z.ZodString>>;
294
+ labels: z.ZodOptional<z.ZodArray<z.ZodString>>;
295
+ }, z.core.$strip>> | z.core.ZodStandardJSONSchemaPayload<z.ZodObject<{
296
+ title: z.ZodOptional<z.ZodString>;
297
+ description: z.ZodOptional<z.ZodNullable<z.ZodString>>;
298
+ assignedTo: z.ZodOptional<z.ZodNullable<z.ZodString>>;
299
+ files: z.ZodOptional<z.ZodArray<z.ZodString>>;
300
+ labels: z.ZodOptional<z.ZodArray<z.ZodString>>;
301
+ }, z.core.$strip>> | z.core.ZodStandardJSONSchemaPayload<z.ZodObject<{
302
+ id: z.ZodString;
303
+ columnId: z.ZodString;
304
+ force: z.ZodOptional<z.ZodBoolean>;
305
+ }, z.core.$strip>> | z.core.ZodStandardJSONSchemaPayload<z.ZodObject<{
306
+ columnId: z.ZodOptional<z.ZodString>;
307
+ agent: z.ZodOptional<z.ZodString>;
308
+ blocked: z.ZodOptional<z.ZodBoolean>;
309
+ }, z.core.$strip>> | z.core.ZodStandardJSONSchemaPayload<z.ZodObject<{
310
+ board: z.ZodObject<{
311
+ id: z.ZodString;
312
+ name: z.ZodString;
313
+ createdAt: z.ZodString;
314
+ updatedAt: z.ZodString;
315
+ }, z.core.$strip>;
316
+ columns: z.ZodArray<z.ZodObject<{
317
+ id: z.ZodString;
318
+ name: z.ZodString;
319
+ position: z.ZodNumber;
320
+ wipLimit: z.ZodNullable<z.ZodNumber>;
321
+ isTerminal: z.ZodBoolean;
322
+ taskCount: z.ZodNumber;
323
+ }, z.core.$strip>>;
324
+ totalTasks: z.ZodNumber;
325
+ }, z.core.$strip>>;
326
+ //# sourceMappingURL=schemas.d.ts.map
@@ -0,0 +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;;;;;;;;;;;;;;;;;;iBAkBrB,CAAC;AAEH,eAAO,MAAM,YAAY;;;;;;iBAMvB,CAAC;AAEH,eAAO,MAAM,WAAW;;;;;iBAKtB,CAAC;AAEH,eAAO,MAAM,mBAAmB;;;;;iBAK9B,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;;;iBAK7B,CAAC;AAEH,eAAO,MAAM,YAAY;;;;;;;;;;;;;;iBASvB,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;;;;;;iBAQ7B,CAAC;AAEH,eAAO,MAAM,qBAAqB;;;;;;iBAMhC,CAAC;AAEH,eAAO,MAAM,mBAAmB;;;;iBAI9B,CAAC;AAEH,eAAO,MAAM,qBAAqB;;;;;iBAKhC,CAAC;AAEH,eAAO,MAAM,kBAAkB;;iBAE7B,CAAC;AAEH,eAAO,MAAM,qBAAqB;;iBAEhC,CAAC;AAEH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;iBAK7B,CAAC;AAEH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;iBAQ5B,CAAC;AAEH,eAAO,MAAM,iBAAiB,GAAI,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,YAAY,CAAC;;;;;;;iBAUhE,CAAC;AAEL,MAAM,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,CAAC;AAC9C,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAClD,MAAM,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC;AAChD,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAClD,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAC9D,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AACpE,MAAM,MAAM,aAAa,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAChE,MAAM,MAAM,eAAe,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,qBAAqB,CAAC,CAAC;AACpE,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AA4C5D,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAUd,CAAC;AAEX,MAAM,MAAM,UAAU,GAAG,MAAM,OAAO,WAAW,CAAC;AAElD,wBAAgB,aAAa,CAAC,IAAI,EAAE,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBAE7C"}
@@ -0,0 +1,12 @@
1
+ import { type DB } from "../db/index.js";
2
+ import type { Board, Column, Config } from "../types.js";
3
+ export declare class BoardService {
4
+ private db;
5
+ constructor(db: DB);
6
+ initializeBoard(config: Config): Promise<Board>;
7
+ getBoard(): Promise<Board | null>;
8
+ getColumns(): Promise<Column[]>;
9
+ getColumn(id: string): Promise<Column | null>;
10
+ getTerminalColumn(): Promise<Column | null>;
11
+ }
12
+ //# sourceMappingURL=board.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"board.d.ts","sourceRoot":"","sources":["../../src/services/board.ts"],"names":[],"mappings":"AAEA,OAAO,EAAmB,KAAK,EAAE,EAAE,MAAM,gBAAgB,CAAC;AAC1D,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;IA+B/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;CAIlD"}
@@ -0,0 +1,3 @@
1
+ export * from "./board.js";
2
+ export * from "./task.js";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/services/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,WAAW,CAAC"}
@@ -0,0 +1,24 @@
1
+ import { type DB } from "../db/index.js";
2
+ import type { AddTaskInput as AddTaskInputSchema, ListTasksFilter as ListTasksFilterSchema, UpdateTaskInput as UpdateTaskInputSchema } from "../schemas.js";
3
+ import type { Task } from "../types.js";
4
+ import type { BoardService } from "./board.js";
5
+ export type AddTaskInput = AddTaskInputSchema;
6
+ export type ListTasksFilter = ListTasksFilterSchema;
7
+ export type UpdateTaskInput = UpdateTaskInputSchema;
8
+ export interface MoveTaskOptions {
9
+ force?: boolean;
10
+ }
11
+ export declare class TaskService {
12
+ private db;
13
+ private boardService;
14
+ constructor(db: DB, boardService: BoardService);
15
+ private getTaskOrThrow;
16
+ addTask(input: AddTaskInput): Promise<Task>;
17
+ getTask(id: string): Promise<Task | null>;
18
+ listTasks(filter?: ListTasksFilter): Promise<Task[]>;
19
+ deleteTask(id: string): Promise<void>;
20
+ moveTask(id: string, columnId: string, options?: MoveTaskOptions): Promise<Task>;
21
+ updateTask(id: string, input: UpdateTaskInput, expectedVersion?: number): Promise<Task>;
22
+ private getTaskCountInColumn;
23
+ }
24
+ //# sourceMappingURL=task.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"task.d.ts","sourceRoot":"","sources":["../../src/services/task.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,EAAS,MAAM,gBAAgB,CAAC;AAChD,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;AAGxC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C,MAAM,MAAM,YAAY,GAAG,kBAAkB,CAAC;AAC9C,MAAM,MAAM,eAAe,GAAG,qBAAqB,CAAC;AACpD,MAAM,MAAM,eAAe,GAAG,qBAAqB,CAAC;AAEpD,MAAM,WAAW,eAAe;IAC9B,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,qBAAa,WAAW;IAEpB,OAAO,CAAC,EAAE;IACV,OAAO,CAAC,YAAY;gBADZ,EAAE,EAAE,EAAE,EACN,YAAY,EAAE,YAAY;YAGtB,cAAc;IAQtB,OAAO,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IA2C3C,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,GAAG,IAAI,CAAC;IAKzC,SAAS,CAAC,MAAM,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IA0BpD,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IASrC,QAAQ,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC;IA+ChF,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,eAAe,EAAE,eAAe,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;YA8C/E,oBAAoB;CAOnC"}
@@ -0,0 +1,15 @@
1
+ import type { Config } from "./schemas.js";
2
+ export type { Task, Column, Board, Config } from "./schemas.js";
3
+ export declare const DEFAULT_CONFIG: Config;
4
+ export declare class KabanError extends Error {
5
+ code: number;
6
+ constructor(message: string, code: number);
7
+ }
8
+ export declare const ExitCode: {
9
+ readonly SUCCESS: 0;
10
+ readonly GENERAL_ERROR: 1;
11
+ readonly NOT_FOUND: 2;
12
+ readonly CONFLICT: 3;
13
+ readonly VALIDATION: 4;
14
+ };
15
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAE3C,YAAY,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAEhE,eAAO,MAAM,cAAc,EAAE,MAe5B,CAAC;AAEF,qBAAa,UAAW,SAAQ,KAAK;IAG1B,IAAI,EAAE,MAAM;gBADnB,OAAO,EAAE,MAAM,EACR,IAAI,EAAE,MAAM;CAKtB;AAED,eAAO,MAAM,QAAQ;;;;;;CAMX,CAAC"}
@@ -0,0 +1,6 @@
1
+ export declare function validateTitle(title: string): string;
2
+ export declare function validateAgentName(name: string): string;
3
+ export declare function validateColumnId(id: string): string;
4
+ export declare function isValidUlid(id: string): boolean;
5
+ export declare function validateTaskId(id: string): string;
6
+ //# sourceMappingURL=validation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../src/validation.ts"],"names":[],"mappings":"AAqBA,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEtD;AAED,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED,wBAAgB,WAAW,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAE/C;AAED,wBAAgB,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,CAEjD"}
package/package.json ADDED
@@ -0,0 +1,55 @@
1
+ {
2
+ "name": "@kaban-board/core",
3
+ "version": "0.1.0",
4
+ "description": "Core database and services for Kaban - Terminal Kanban for AI Agents",
5
+ "type": "module",
6
+ "main": "./dist/index.js",
7
+ "types": "./dist/index.d.ts",
8
+ "exports": {
9
+ ".": {
10
+ "import": "./dist/index.js",
11
+ "types": "./dist/index.d.ts"
12
+ }
13
+ },
14
+ "files": [
15
+ "dist"
16
+ ],
17
+ "scripts": {
18
+ "build": "bun build ./src/index.ts --outdir ./dist --target node && tsc --emitDeclarationOnly --declaration --outDir ./dist",
19
+ "test": "bun test",
20
+ "typecheck": "tsc --noEmit",
21
+ "prepublishOnly": "npm run build"
22
+ },
23
+ "dependencies": {
24
+ "@libsql/client": "^0.17.0",
25
+ "drizzle-orm": "^0.38.0",
26
+ "ulid": "^2.3.0",
27
+ "zod": "^4.3.5"
28
+ },
29
+ "devDependencies": {
30
+ "@types/bun": "latest",
31
+ "typescript": "^5.0.0"
32
+ },
33
+ "engines": {
34
+ "node": ">=18.0.0"
35
+ },
36
+ "repository": {
37
+ "type": "git",
38
+ "url": "https://github.com/beshkenadze/kaban.git",
39
+ "directory": "packages/core"
40
+ },
41
+ "homepage": "https://beshkenadze.github.io/kaban",
42
+ "bugs": {
43
+ "url": "https://github.com/beshkenadze/kaban/issues"
44
+ },
45
+ "license": "MIT",
46
+ "keywords": [
47
+ "kanban",
48
+ "database",
49
+ "sqlite",
50
+ "drizzle"
51
+ ],
52
+ "publishConfig": {
53
+ "access": "public"
54
+ }
55
+ }