@btst/stack 2.11.1 → 2.11.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/packages/stack/src/plugins/blog/api/mutations.cjs +170 -0
- package/dist/packages/stack/src/plugins/blog/api/mutations.mjs +166 -0
- package/dist/packages/stack/src/plugins/blog/api/plugin.cjs +34 -157
- package/dist/packages/stack/src/plugins/blog/api/plugin.mjs +40 -163
- package/dist/plugins/blog/api/index.cjs +4 -0
- package/dist/plugins/blog/api/index.d.cts +1 -1
- package/dist/plugins/blog/api/index.d.mts +1 -1
- package/dist/plugins/blog/api/index.d.ts +1 -1
- package/dist/plugins/blog/api/index.mjs +1 -0
- package/dist/plugins/blog/query-keys.d.cts +1 -1
- package/dist/plugins/blog/query-keys.d.mts +1 -1
- package/dist/plugins/blog/query-keys.d.ts +1 -1
- package/dist/plugins/kanban/api/index.d.cts +1 -1
- package/dist/plugins/kanban/api/index.d.mts +1 -1
- package/dist/plugins/kanban/api/index.d.ts +1 -1
- package/dist/plugins/kanban/query-keys.d.cts +1 -1
- package/dist/plugins/kanban/query-keys.d.mts +1 -1
- package/dist/plugins/kanban/query-keys.d.ts +1 -1
- package/dist/shared/{stack.qta0-CPq.d.ts → stack.BQSy-NDc.d.ts} +85 -2
- package/dist/shared/{stack.DvMUCTTl.d.mts → stack.CLrGRIj0.d.mts} +85 -2
- package/dist/shared/{stack.DEW8EtFu.d.cts → stack.CntKf20s.d.cts} +85 -2
- package/package.json +4 -4
- package/src/plugins/blog/api/index.ts +7 -0
- package/src/plugins/blog/api/mutations.ts +287 -0
- package/src/plugins/blog/api/plugin.ts +43 -184
- package/dist/shared/{stack.BvCR4-9H.d.ts → stack.CMbX8Q5C.d.ts} +13 -13
- package/dist/shared/{stack.CWxAl9K3.d.mts → stack.Dj04W2c3.d.mts} +13 -13
- package/dist/shared/{stack.BOokfhZD.d.cts → stack.eq5eg1yt.d.cts} +13 -13
|
@@ -7,6 +7,13 @@ import type { Post, PostWithPostTag, Tag } from "../types";
|
|
|
7
7
|
import { slugify } from "../utils";
|
|
8
8
|
import { createPostSchema, updatePostSchema } from "../schemas";
|
|
9
9
|
import { getAllPosts, getPostBySlug, getAllTags } from "./getters";
|
|
10
|
+
import {
|
|
11
|
+
createPost as createPostMutation,
|
|
12
|
+
updatePost as updatePostMutation,
|
|
13
|
+
deletePost as deletePostMutation,
|
|
14
|
+
type CreatePostInput,
|
|
15
|
+
type UpdatePostInput,
|
|
16
|
+
} from "./mutations";
|
|
10
17
|
import { BLOG_QUERY_KEYS } from "./query-key-defs";
|
|
11
18
|
import { serializePost, serializeTag } from "./serializers";
|
|
12
19
|
import type { QueryClient } from "@tanstack/react-query";
|
|
@@ -260,85 +267,15 @@ export const blogBackendPlugin = (hooks?: BlogBackendHooks) =>
|
|
|
260
267
|
getPostBySlug: (slug: string) => getPostBySlug(adapter, slug),
|
|
261
268
|
getAllTags: () => getAllTags(adapter),
|
|
262
269
|
prefetchForRoute: createBlogPrefetchForRoute(adapter),
|
|
270
|
+
// Mutations
|
|
271
|
+
createPost: (input: CreatePostInput) =>
|
|
272
|
+
createPostMutation(adapter, input),
|
|
273
|
+
updatePost: (id: string, input: UpdatePostInput) =>
|
|
274
|
+
updatePostMutation(adapter, id, input),
|
|
275
|
+
deletePost: (id: string) => deletePostMutation(adapter, id),
|
|
263
276
|
}),
|
|
264
277
|
|
|
265
278
|
routes: (adapter: Adapter) => {
|
|
266
|
-
const findOrCreateTags = async (
|
|
267
|
-
tagInputs: Array<
|
|
268
|
-
{ name: string } | { id: string; name: string; slug: string }
|
|
269
|
-
>,
|
|
270
|
-
): Promise<Tag[]> => {
|
|
271
|
-
if (tagInputs.length === 0) return [];
|
|
272
|
-
|
|
273
|
-
const normalizeTagName = (name: string): string => {
|
|
274
|
-
return name.trim();
|
|
275
|
-
};
|
|
276
|
-
|
|
277
|
-
const tagsWithIds: Tag[] = [];
|
|
278
|
-
const tagsToFindOrCreate: Array<{ name: string }> = [];
|
|
279
|
-
|
|
280
|
-
for (const tagInput of tagInputs) {
|
|
281
|
-
if ("id" in tagInput && tagInput.id) {
|
|
282
|
-
tagsWithIds.push({
|
|
283
|
-
id: tagInput.id,
|
|
284
|
-
name: normalizeTagName(tagInput.name),
|
|
285
|
-
slug: tagInput.slug,
|
|
286
|
-
createdAt: new Date(),
|
|
287
|
-
updatedAt: new Date(),
|
|
288
|
-
} as Tag);
|
|
289
|
-
} else {
|
|
290
|
-
tagsToFindOrCreate.push({ name: normalizeTagName(tagInput.name) });
|
|
291
|
-
}
|
|
292
|
-
}
|
|
293
|
-
|
|
294
|
-
if (tagsToFindOrCreate.length === 0) {
|
|
295
|
-
return tagsWithIds;
|
|
296
|
-
}
|
|
297
|
-
|
|
298
|
-
const allTags = await adapter.findMany<Tag>({
|
|
299
|
-
model: "tag",
|
|
300
|
-
});
|
|
301
|
-
const tagMapBySlug = new Map<string, Tag>();
|
|
302
|
-
for (const tag of allTags) {
|
|
303
|
-
tagMapBySlug.set(tag.slug, tag);
|
|
304
|
-
}
|
|
305
|
-
|
|
306
|
-
const tagSlugs = tagsToFindOrCreate.map((tag) => slugify(tag.name));
|
|
307
|
-
const foundTags: Tag[] = [];
|
|
308
|
-
|
|
309
|
-
for (const slug of tagSlugs) {
|
|
310
|
-
const tag = tagMapBySlug.get(slug);
|
|
311
|
-
if (tag) {
|
|
312
|
-
foundTags.push(tag);
|
|
313
|
-
}
|
|
314
|
-
}
|
|
315
|
-
|
|
316
|
-
const existingSlugs = new Set([
|
|
317
|
-
...tagsWithIds.map((tag) => tag.slug),
|
|
318
|
-
...foundTags.map((tag) => tag.slug),
|
|
319
|
-
]);
|
|
320
|
-
const tagsToCreate = tagsToFindOrCreate.filter(
|
|
321
|
-
(tag) => !existingSlugs.has(slugify(tag.name)),
|
|
322
|
-
);
|
|
323
|
-
|
|
324
|
-
const createdTags: Tag[] = [];
|
|
325
|
-
for (const tag of tagsToCreate) {
|
|
326
|
-
const normalizedName = normalizeTagName(tag.name);
|
|
327
|
-
const newTag = await adapter.create<Tag>({
|
|
328
|
-
model: "tag",
|
|
329
|
-
data: {
|
|
330
|
-
name: normalizedName,
|
|
331
|
-
slug: slugify(normalizedName),
|
|
332
|
-
createdAt: new Date(),
|
|
333
|
-
updatedAt: new Date(),
|
|
334
|
-
},
|
|
335
|
-
});
|
|
336
|
-
createdTags.push(newTag);
|
|
337
|
-
}
|
|
338
|
-
|
|
339
|
-
return [...tagsWithIds, ...foundTags, ...createdTags];
|
|
340
|
-
};
|
|
341
|
-
|
|
342
279
|
const listPosts = createEndpoint(
|
|
343
280
|
"/posts",
|
|
344
281
|
{
|
|
@@ -394,11 +331,17 @@ export const blogBackendPlugin = (hooks?: BlogBackendHooks) =>
|
|
|
394
331
|
);
|
|
395
332
|
}
|
|
396
333
|
|
|
397
|
-
|
|
398
|
-
const
|
|
334
|
+
// Destructure and discard createdAt/updatedAt — timestamps are always server-generated
|
|
335
|
+
const {
|
|
336
|
+
tags,
|
|
337
|
+
slug: rawSlug,
|
|
338
|
+
createdAt: _ca,
|
|
339
|
+
updatedAt: _ua,
|
|
340
|
+
...postData
|
|
341
|
+
} = ctx.body;
|
|
399
342
|
|
|
400
343
|
// Always slugify to ensure URL-safe slug, whether provided or generated from title
|
|
401
|
-
const slug = slugify(
|
|
344
|
+
const slug = slugify(rawSlug || postData.title);
|
|
402
345
|
|
|
403
346
|
// Validate that slugification produced a non-empty result
|
|
404
347
|
if (!slug) {
|
|
@@ -408,37 +351,14 @@ export const blogBackendPlugin = (hooks?: BlogBackendHooks) =>
|
|
|
408
351
|
});
|
|
409
352
|
}
|
|
410
353
|
|
|
411
|
-
const newPost = await adapter
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
createdAt: new Date(),
|
|
418
|
-
updatedAt: new Date(),
|
|
419
|
-
},
|
|
354
|
+
const newPost = await createPostMutation(adapter, {
|
|
355
|
+
...postData,
|
|
356
|
+
slug,
|
|
357
|
+
tags: tags ?? [],
|
|
358
|
+
createdAt: new Date(),
|
|
359
|
+
updatedAt: new Date(),
|
|
420
360
|
});
|
|
421
361
|
|
|
422
|
-
if (tagNames.length > 0) {
|
|
423
|
-
const createdTags = await findOrCreateTags(tagNames);
|
|
424
|
-
|
|
425
|
-
await adapter.transaction(async (tx) => {
|
|
426
|
-
for (const tag of createdTags) {
|
|
427
|
-
await tx.create<{ postId: string; tagId: string }>({
|
|
428
|
-
model: "postTag",
|
|
429
|
-
data: {
|
|
430
|
-
postId: newPost.id,
|
|
431
|
-
tagId: tag.id,
|
|
432
|
-
},
|
|
433
|
-
});
|
|
434
|
-
}
|
|
435
|
-
});
|
|
436
|
-
|
|
437
|
-
newPost.tags = createdTags.map((tag) => ({ ...tag }));
|
|
438
|
-
} else {
|
|
439
|
-
newPost.tags = [];
|
|
440
|
-
}
|
|
441
|
-
|
|
442
362
|
if (hooks?.onPostCreated) {
|
|
443
363
|
await hooks.onPostCreated(newPost, context);
|
|
444
364
|
}
|
|
@@ -475,8 +395,14 @@ export const blogBackendPlugin = (hooks?: BlogBackendHooks) =>
|
|
|
475
395
|
);
|
|
476
396
|
}
|
|
477
397
|
|
|
478
|
-
|
|
479
|
-
const
|
|
398
|
+
// Destructure and discard createdAt/updatedAt — timestamps are always server-generated
|
|
399
|
+
const {
|
|
400
|
+
tags,
|
|
401
|
+
slug: rawSlug,
|
|
402
|
+
createdAt: _ca,
|
|
403
|
+
updatedAt: _ua,
|
|
404
|
+
...restPostData
|
|
405
|
+
} = ctx.body;
|
|
480
406
|
|
|
481
407
|
// Sanitize slug if provided to ensure it's URL-safe
|
|
482
408
|
const slugified = rawSlug ? slugify(rawSlug) : undefined;
|
|
@@ -489,80 +415,16 @@ export const blogBackendPlugin = (hooks?: BlogBackendHooks) =>
|
|
|
489
415
|
});
|
|
490
416
|
}
|
|
491
417
|
|
|
492
|
-
const
|
|
418
|
+
const updated = await updatePostMutation(adapter, ctx.params.id, {
|
|
493
419
|
...restPostData,
|
|
494
420
|
...(slugified ? { slug: slugified } : {}),
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
const updated = await adapter.transaction(async (tx) => {
|
|
498
|
-
const existingPostTags = await tx.findMany<{
|
|
499
|
-
postId: string;
|
|
500
|
-
tagId: string;
|
|
501
|
-
}>({
|
|
502
|
-
model: "postTag",
|
|
503
|
-
where: [
|
|
504
|
-
{
|
|
505
|
-
field: "postId",
|
|
506
|
-
value: ctx.params.id,
|
|
507
|
-
operator: "eq" as const,
|
|
508
|
-
},
|
|
509
|
-
],
|
|
510
|
-
});
|
|
511
|
-
|
|
512
|
-
const updatedPost = await tx.update<Post>({
|
|
513
|
-
model: "post",
|
|
514
|
-
where: [{ field: "id", value: ctx.params.id }],
|
|
515
|
-
update: {
|
|
516
|
-
...postData,
|
|
517
|
-
updatedAt: new Date(),
|
|
518
|
-
},
|
|
519
|
-
});
|
|
520
|
-
|
|
521
|
-
if (!updatedPost) {
|
|
522
|
-
throw ctx.error(404, {
|
|
523
|
-
message: "Post not found",
|
|
524
|
-
});
|
|
525
|
-
}
|
|
526
|
-
|
|
527
|
-
for (const postTag of existingPostTags) {
|
|
528
|
-
await tx.delete<{ postId: string; tagId: string }>({
|
|
529
|
-
model: "postTag",
|
|
530
|
-
where: [
|
|
531
|
-
{
|
|
532
|
-
field: "postId",
|
|
533
|
-
value: postTag.postId,
|
|
534
|
-
operator: "eq" as const,
|
|
535
|
-
},
|
|
536
|
-
{
|
|
537
|
-
field: "tagId",
|
|
538
|
-
value: postTag.tagId,
|
|
539
|
-
operator: "eq" as const,
|
|
540
|
-
},
|
|
541
|
-
],
|
|
542
|
-
});
|
|
543
|
-
}
|
|
544
|
-
|
|
545
|
-
if (tagNames.length > 0) {
|
|
546
|
-
const createdTags = await findOrCreateTags(tagNames);
|
|
547
|
-
|
|
548
|
-
for (const tag of createdTags) {
|
|
549
|
-
await tx.create<{ postId: string; tagId: string }>({
|
|
550
|
-
model: "postTag",
|
|
551
|
-
data: {
|
|
552
|
-
postId: ctx.params.id,
|
|
553
|
-
tagId: tag.id,
|
|
554
|
-
},
|
|
555
|
-
});
|
|
556
|
-
}
|
|
557
|
-
|
|
558
|
-
updatedPost.tags = createdTags.map((tag) => ({ ...tag }));
|
|
559
|
-
} else {
|
|
560
|
-
updatedPost.tags = [];
|
|
561
|
-
}
|
|
562
|
-
|
|
563
|
-
return updatedPost;
|
|
421
|
+
tags: tags ?? [],
|
|
564
422
|
});
|
|
565
423
|
|
|
424
|
+
if (!updated) {
|
|
425
|
+
throw ctx.error(404, { message: "Post not found" });
|
|
426
|
+
}
|
|
427
|
+
|
|
566
428
|
if (hooks?.onPostUpdated) {
|
|
567
429
|
await hooks.onPostUpdated(updated, context);
|
|
568
430
|
}
|
|
@@ -597,10 +459,7 @@ export const blogBackendPlugin = (hooks?: BlogBackendHooks) =>
|
|
|
597
459
|
);
|
|
598
460
|
}
|
|
599
461
|
|
|
600
|
-
await adapter.
|
|
601
|
-
model: "post",
|
|
602
|
-
where: [{ field: "id", value: ctx.params.id }],
|
|
603
|
-
});
|
|
462
|
+
await deletePostMutation(adapter, ctx.params.id);
|
|
604
463
|
|
|
605
464
|
// Lifecycle hook
|
|
606
465
|
if (hooks?.onPostDeleted) {
|
|
@@ -8,11 +8,11 @@ import { QueryClient } from '@tanstack/react-query';
|
|
|
8
8
|
declare const createBoardSchema: z.ZodObject<{
|
|
9
9
|
description: z.ZodOptional<z.ZodString>;
|
|
10
10
|
name: z.ZodString;
|
|
11
|
-
createdAt: z.ZodOptional<z.ZodCoercedDate<unknown>>;
|
|
12
|
-
updatedAt: z.ZodOptional<z.ZodCoercedDate<unknown>>;
|
|
13
11
|
slug: z.ZodOptional<z.ZodString>;
|
|
14
12
|
ownerId: z.ZodOptional<z.ZodString>;
|
|
15
13
|
organizationId: z.ZodOptional<z.ZodString>;
|
|
14
|
+
createdAt: z.ZodOptional<z.ZodCoercedDate<unknown>>;
|
|
15
|
+
updatedAt: z.ZodOptional<z.ZodCoercedDate<unknown>>;
|
|
16
16
|
}, z.core.$strip>;
|
|
17
17
|
declare const updateBoardSchema: z.ZodObject<{
|
|
18
18
|
createdAt: z.ZodOptional<z.ZodOptional<z.ZodCoercedDate<unknown>>>;
|
|
@@ -26,9 +26,9 @@ declare const updateBoardSchema: z.ZodObject<{
|
|
|
26
26
|
}, z.core.$strip>;
|
|
27
27
|
declare const createColumnSchema: z.ZodObject<{
|
|
28
28
|
title: z.ZodString;
|
|
29
|
+
boardId: z.ZodString;
|
|
29
30
|
createdAt: z.ZodOptional<z.ZodCoercedDate<unknown>>;
|
|
30
31
|
updatedAt: z.ZodOptional<z.ZodCoercedDate<unknown>>;
|
|
31
|
-
boardId: z.ZodString;
|
|
32
32
|
order: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
33
33
|
}, z.core.$strip>;
|
|
34
34
|
declare const updateColumnSchema: z.ZodObject<{
|
|
@@ -331,19 +331,19 @@ declare const kanbanBackendPlugin: (hooks?: KanbanBackendHooks) => _btst_stack_p
|
|
|
331
331
|
body: better_call.StandardSchemaV1<{
|
|
332
332
|
name: string;
|
|
333
333
|
description?: string | undefined;
|
|
334
|
-
createdAt?: unknown;
|
|
335
|
-
updatedAt?: unknown;
|
|
336
334
|
slug?: string | undefined;
|
|
337
335
|
ownerId?: string | undefined;
|
|
338
336
|
organizationId?: string | undefined;
|
|
337
|
+
createdAt?: unknown;
|
|
338
|
+
updatedAt?: unknown;
|
|
339
339
|
}, {
|
|
340
340
|
name: string;
|
|
341
341
|
description?: string | undefined;
|
|
342
|
-
createdAt?: unknown;
|
|
343
|
-
updatedAt?: unknown;
|
|
344
342
|
slug?: string | undefined;
|
|
345
343
|
ownerId?: string | undefined;
|
|
346
344
|
organizationId?: string | undefined;
|
|
345
|
+
createdAt?: unknown;
|
|
346
|
+
updatedAt?: unknown;
|
|
347
347
|
}>;
|
|
348
348
|
}, {
|
|
349
349
|
columns: ColumnWithTasks[];
|
|
@@ -361,19 +361,19 @@ declare const kanbanBackendPlugin: (hooks?: KanbanBackendHooks) => _btst_stack_p
|
|
|
361
361
|
body: better_call.StandardSchemaV1<{
|
|
362
362
|
description?: string | undefined;
|
|
363
363
|
name?: string | undefined;
|
|
364
|
-
createdAt?: unknown;
|
|
365
|
-
updatedAt?: unknown;
|
|
366
364
|
slug?: string | undefined;
|
|
367
365
|
ownerId?: string | undefined;
|
|
368
366
|
organizationId?: string | undefined;
|
|
367
|
+
createdAt?: unknown;
|
|
368
|
+
updatedAt?: unknown;
|
|
369
369
|
}, {
|
|
370
370
|
description?: string | undefined;
|
|
371
371
|
name?: string | undefined;
|
|
372
|
-
createdAt?: unknown;
|
|
373
|
-
updatedAt?: unknown;
|
|
374
372
|
slug?: string | undefined;
|
|
375
373
|
ownerId?: string | undefined;
|
|
376
374
|
organizationId?: string | undefined;
|
|
375
|
+
createdAt?: unknown;
|
|
376
|
+
updatedAt?: unknown;
|
|
377
377
|
}>;
|
|
378
378
|
}, Board>;
|
|
379
379
|
readonly deleteBoard: better_call.StrictEndpoint<"/boards/:id", {} & {
|
|
@@ -402,15 +402,15 @@ declare const kanbanBackendPlugin: (hooks?: KanbanBackendHooks) => _btst_stack_p
|
|
|
402
402
|
method: "PUT";
|
|
403
403
|
body: better_call.StandardSchemaV1<{
|
|
404
404
|
title?: string | undefined;
|
|
405
|
+
boardId?: string | undefined;
|
|
405
406
|
createdAt?: unknown;
|
|
406
407
|
updatedAt?: unknown;
|
|
407
|
-
boardId?: string | undefined;
|
|
408
408
|
order?: number | undefined;
|
|
409
409
|
}, {
|
|
410
410
|
title?: string | undefined;
|
|
411
|
+
boardId?: string | undefined;
|
|
411
412
|
createdAt?: unknown;
|
|
412
413
|
updatedAt?: unknown;
|
|
413
|
-
boardId?: string | undefined;
|
|
414
414
|
order?: number | undefined;
|
|
415
415
|
}>;
|
|
416
416
|
}, Column>;
|
|
@@ -8,11 +8,11 @@ import { QueryClient } from '@tanstack/react-query';
|
|
|
8
8
|
declare const createBoardSchema: z.ZodObject<{
|
|
9
9
|
description: z.ZodOptional<z.ZodString>;
|
|
10
10
|
name: z.ZodString;
|
|
11
|
-
createdAt: z.ZodOptional<z.ZodCoercedDate<unknown>>;
|
|
12
|
-
updatedAt: z.ZodOptional<z.ZodCoercedDate<unknown>>;
|
|
13
11
|
slug: z.ZodOptional<z.ZodString>;
|
|
14
12
|
ownerId: z.ZodOptional<z.ZodString>;
|
|
15
13
|
organizationId: z.ZodOptional<z.ZodString>;
|
|
14
|
+
createdAt: z.ZodOptional<z.ZodCoercedDate<unknown>>;
|
|
15
|
+
updatedAt: z.ZodOptional<z.ZodCoercedDate<unknown>>;
|
|
16
16
|
}, z.core.$strip>;
|
|
17
17
|
declare const updateBoardSchema: z.ZodObject<{
|
|
18
18
|
createdAt: z.ZodOptional<z.ZodOptional<z.ZodCoercedDate<unknown>>>;
|
|
@@ -26,9 +26,9 @@ declare const updateBoardSchema: z.ZodObject<{
|
|
|
26
26
|
}, z.core.$strip>;
|
|
27
27
|
declare const createColumnSchema: z.ZodObject<{
|
|
28
28
|
title: z.ZodString;
|
|
29
|
+
boardId: z.ZodString;
|
|
29
30
|
createdAt: z.ZodOptional<z.ZodCoercedDate<unknown>>;
|
|
30
31
|
updatedAt: z.ZodOptional<z.ZodCoercedDate<unknown>>;
|
|
31
|
-
boardId: z.ZodString;
|
|
32
32
|
order: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
33
33
|
}, z.core.$strip>;
|
|
34
34
|
declare const updateColumnSchema: z.ZodObject<{
|
|
@@ -331,19 +331,19 @@ declare const kanbanBackendPlugin: (hooks?: KanbanBackendHooks) => _btst_stack_p
|
|
|
331
331
|
body: better_call.StandardSchemaV1<{
|
|
332
332
|
name: string;
|
|
333
333
|
description?: string | undefined;
|
|
334
|
-
createdAt?: unknown;
|
|
335
|
-
updatedAt?: unknown;
|
|
336
334
|
slug?: string | undefined;
|
|
337
335
|
ownerId?: string | undefined;
|
|
338
336
|
organizationId?: string | undefined;
|
|
337
|
+
createdAt?: unknown;
|
|
338
|
+
updatedAt?: unknown;
|
|
339
339
|
}, {
|
|
340
340
|
name: string;
|
|
341
341
|
description?: string | undefined;
|
|
342
|
-
createdAt?: unknown;
|
|
343
|
-
updatedAt?: unknown;
|
|
344
342
|
slug?: string | undefined;
|
|
345
343
|
ownerId?: string | undefined;
|
|
346
344
|
organizationId?: string | undefined;
|
|
345
|
+
createdAt?: unknown;
|
|
346
|
+
updatedAt?: unknown;
|
|
347
347
|
}>;
|
|
348
348
|
}, {
|
|
349
349
|
columns: ColumnWithTasks[];
|
|
@@ -361,19 +361,19 @@ declare const kanbanBackendPlugin: (hooks?: KanbanBackendHooks) => _btst_stack_p
|
|
|
361
361
|
body: better_call.StandardSchemaV1<{
|
|
362
362
|
description?: string | undefined;
|
|
363
363
|
name?: string | undefined;
|
|
364
|
-
createdAt?: unknown;
|
|
365
|
-
updatedAt?: unknown;
|
|
366
364
|
slug?: string | undefined;
|
|
367
365
|
ownerId?: string | undefined;
|
|
368
366
|
organizationId?: string | undefined;
|
|
367
|
+
createdAt?: unknown;
|
|
368
|
+
updatedAt?: unknown;
|
|
369
369
|
}, {
|
|
370
370
|
description?: string | undefined;
|
|
371
371
|
name?: string | undefined;
|
|
372
|
-
createdAt?: unknown;
|
|
373
|
-
updatedAt?: unknown;
|
|
374
372
|
slug?: string | undefined;
|
|
375
373
|
ownerId?: string | undefined;
|
|
376
374
|
organizationId?: string | undefined;
|
|
375
|
+
createdAt?: unknown;
|
|
376
|
+
updatedAt?: unknown;
|
|
377
377
|
}>;
|
|
378
378
|
}, Board>;
|
|
379
379
|
readonly deleteBoard: better_call.StrictEndpoint<"/boards/:id", {} & {
|
|
@@ -402,15 +402,15 @@ declare const kanbanBackendPlugin: (hooks?: KanbanBackendHooks) => _btst_stack_p
|
|
|
402
402
|
method: "PUT";
|
|
403
403
|
body: better_call.StandardSchemaV1<{
|
|
404
404
|
title?: string | undefined;
|
|
405
|
+
boardId?: string | undefined;
|
|
405
406
|
createdAt?: unknown;
|
|
406
407
|
updatedAt?: unknown;
|
|
407
|
-
boardId?: string | undefined;
|
|
408
408
|
order?: number | undefined;
|
|
409
409
|
}, {
|
|
410
410
|
title?: string | undefined;
|
|
411
|
+
boardId?: string | undefined;
|
|
411
412
|
createdAt?: unknown;
|
|
412
413
|
updatedAt?: unknown;
|
|
413
|
-
boardId?: string | undefined;
|
|
414
414
|
order?: number | undefined;
|
|
415
415
|
}>;
|
|
416
416
|
}, Column>;
|
|
@@ -8,11 +8,11 @@ import { QueryClient } from '@tanstack/react-query';
|
|
|
8
8
|
declare const createBoardSchema: z.ZodObject<{
|
|
9
9
|
description: z.ZodOptional<z.ZodString>;
|
|
10
10
|
name: z.ZodString;
|
|
11
|
-
createdAt: z.ZodOptional<z.ZodCoercedDate<unknown>>;
|
|
12
|
-
updatedAt: z.ZodOptional<z.ZodCoercedDate<unknown>>;
|
|
13
11
|
slug: z.ZodOptional<z.ZodString>;
|
|
14
12
|
ownerId: z.ZodOptional<z.ZodString>;
|
|
15
13
|
organizationId: z.ZodOptional<z.ZodString>;
|
|
14
|
+
createdAt: z.ZodOptional<z.ZodCoercedDate<unknown>>;
|
|
15
|
+
updatedAt: z.ZodOptional<z.ZodCoercedDate<unknown>>;
|
|
16
16
|
}, z.core.$strip>;
|
|
17
17
|
declare const updateBoardSchema: z.ZodObject<{
|
|
18
18
|
createdAt: z.ZodOptional<z.ZodOptional<z.ZodCoercedDate<unknown>>>;
|
|
@@ -26,9 +26,9 @@ declare const updateBoardSchema: z.ZodObject<{
|
|
|
26
26
|
}, z.core.$strip>;
|
|
27
27
|
declare const createColumnSchema: z.ZodObject<{
|
|
28
28
|
title: z.ZodString;
|
|
29
|
+
boardId: z.ZodString;
|
|
29
30
|
createdAt: z.ZodOptional<z.ZodCoercedDate<unknown>>;
|
|
30
31
|
updatedAt: z.ZodOptional<z.ZodCoercedDate<unknown>>;
|
|
31
|
-
boardId: z.ZodString;
|
|
32
32
|
order: z.ZodDefault<z.ZodOptional<z.ZodNumber>>;
|
|
33
33
|
}, z.core.$strip>;
|
|
34
34
|
declare const updateColumnSchema: z.ZodObject<{
|
|
@@ -331,19 +331,19 @@ declare const kanbanBackendPlugin: (hooks?: KanbanBackendHooks) => _btst_stack_p
|
|
|
331
331
|
body: better_call.StandardSchemaV1<{
|
|
332
332
|
name: string;
|
|
333
333
|
description?: string | undefined;
|
|
334
|
-
createdAt?: unknown;
|
|
335
|
-
updatedAt?: unknown;
|
|
336
334
|
slug?: string | undefined;
|
|
337
335
|
ownerId?: string | undefined;
|
|
338
336
|
organizationId?: string | undefined;
|
|
337
|
+
createdAt?: unknown;
|
|
338
|
+
updatedAt?: unknown;
|
|
339
339
|
}, {
|
|
340
340
|
name: string;
|
|
341
341
|
description?: string | undefined;
|
|
342
|
-
createdAt?: unknown;
|
|
343
|
-
updatedAt?: unknown;
|
|
344
342
|
slug?: string | undefined;
|
|
345
343
|
ownerId?: string | undefined;
|
|
346
344
|
organizationId?: string | undefined;
|
|
345
|
+
createdAt?: unknown;
|
|
346
|
+
updatedAt?: unknown;
|
|
347
347
|
}>;
|
|
348
348
|
}, {
|
|
349
349
|
columns: ColumnWithTasks[];
|
|
@@ -361,19 +361,19 @@ declare const kanbanBackendPlugin: (hooks?: KanbanBackendHooks) => _btst_stack_p
|
|
|
361
361
|
body: better_call.StandardSchemaV1<{
|
|
362
362
|
description?: string | undefined;
|
|
363
363
|
name?: string | undefined;
|
|
364
|
-
createdAt?: unknown;
|
|
365
|
-
updatedAt?: unknown;
|
|
366
364
|
slug?: string | undefined;
|
|
367
365
|
ownerId?: string | undefined;
|
|
368
366
|
organizationId?: string | undefined;
|
|
367
|
+
createdAt?: unknown;
|
|
368
|
+
updatedAt?: unknown;
|
|
369
369
|
}, {
|
|
370
370
|
description?: string | undefined;
|
|
371
371
|
name?: string | undefined;
|
|
372
|
-
createdAt?: unknown;
|
|
373
|
-
updatedAt?: unknown;
|
|
374
372
|
slug?: string | undefined;
|
|
375
373
|
ownerId?: string | undefined;
|
|
376
374
|
organizationId?: string | undefined;
|
|
375
|
+
createdAt?: unknown;
|
|
376
|
+
updatedAt?: unknown;
|
|
377
377
|
}>;
|
|
378
378
|
}, Board>;
|
|
379
379
|
readonly deleteBoard: better_call.StrictEndpoint<"/boards/:id", {} & {
|
|
@@ -402,15 +402,15 @@ declare const kanbanBackendPlugin: (hooks?: KanbanBackendHooks) => _btst_stack_p
|
|
|
402
402
|
method: "PUT";
|
|
403
403
|
body: better_call.StandardSchemaV1<{
|
|
404
404
|
title?: string | undefined;
|
|
405
|
+
boardId?: string | undefined;
|
|
405
406
|
createdAt?: unknown;
|
|
406
407
|
updatedAt?: unknown;
|
|
407
|
-
boardId?: string | undefined;
|
|
408
408
|
order?: number | undefined;
|
|
409
409
|
}, {
|
|
410
410
|
title?: string | undefined;
|
|
411
|
+
boardId?: string | undefined;
|
|
411
412
|
createdAt?: unknown;
|
|
412
413
|
updatedAt?: unknown;
|
|
413
|
-
boardId?: string | undefined;
|
|
414
414
|
order?: number | undefined;
|
|
415
415
|
}>;
|
|
416
416
|
}, Column>;
|