@vitnode/blog 1.2.0-canary.77 → 2.0.0-canary.1

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.
Files changed (166) hide show
  1. package/dist/src/admin/content.d.ts +5 -0
  2. package/dist/src/admin/content.d.ts.map +1 -0
  3. package/dist/src/admin/content.js +1 -0
  4. package/dist/src/admin/nav.d.ts +41 -0
  5. package/dist/src/admin/nav.d.ts.map +1 -0
  6. package/dist/src/admin/nav.js +1 -0
  7. package/dist/src/api/lib/events.d.ts +11 -3
  8. package/dist/src/api/lib/events.d.ts.map +1 -1
  9. package/dist/src/api/lib/events.js +1 -1
  10. package/dist/src/api/modules/admin/admin.module.d.ts +1 -218
  11. package/dist/src/api/modules/admin/admin.module.d.ts.map +1 -1
  12. package/dist/src/api/modules/admin/admin.module.js +1 -1
  13. package/dist/src/config.api.d.ts.map +1 -1
  14. package/dist/src/config.api.js +1 -1
  15. package/dist/src/config.d.ts.map +1 -1
  16. package/dist/src/config.js +1 -1
  17. package/dist/src/content/category.d.ts +5 -0
  18. package/dist/src/content/category.d.ts.map +1 -0
  19. package/dist/src/content/category.js +1 -0
  20. package/dist/src/content/post.d.ts +10 -0
  21. package/dist/src/content/post.d.ts.map +1 -0
  22. package/dist/src/content/post.js +1 -0
  23. package/dist/src/database/categories.d.ts +10 -77
  24. package/dist/src/database/categories.d.ts.map +1 -1
  25. package/dist/src/database/categories.js +1 -1
  26. package/dist/src/database/posts.d.ts +22 -92
  27. package/dist/src/database/posts.d.ts.map +1 -1
  28. package/dist/src/database/posts.js +1 -1
  29. package/dist/src/locales/en.json +50 -73
  30. package/dist/src/locales/index.d.ts.map +1 -1
  31. package/dist/src/locales/index.js +1 -1
  32. package/dist/src/locales/pl.json +69 -0
  33. package/dist/src/views/admin/article/editor-field.d.ts +4 -0
  34. package/dist/src/views/admin/article/editor-field.d.ts.map +1 -0
  35. package/dist/src/views/admin/article/editor-field.js +1 -0
  36. package/dist/src/views/admin/article/form-layout.d.ts +3 -0
  37. package/dist/src/views/admin/article/form-layout.d.ts.map +1 -0
  38. package/dist/src/views/admin/article/form-layout.js +1 -0
  39. package/dist/src/views/admin/category/color-cell.d.ts +4 -0
  40. package/dist/src/views/admin/category/color-cell.d.ts.map +1 -0
  41. package/dist/src/views/admin/category/color-cell.js +1 -0
  42. package/dist/src/views/admin/category/color-field.d.ts +3 -0
  43. package/dist/src/views/admin/category/color-field.d.ts.map +1 -0
  44. package/dist/src/views/admin/category/color-field.js +1 -0
  45. package/dist/vitest.config.d.ts +3 -0
  46. package/dist/vitest.config.d.ts.map +1 -0
  47. package/package.json +16 -10
  48. package/src/locales/en.json +50 -73
  49. package/src/locales/index.ts +1 -0
  50. package/src/locales/pl.json +69 -0
  51. package/tsconfig.build.json +6 -1
  52. package/dist/src/api/lib/categories-language.d.ts +0 -10
  53. package/dist/src/api/lib/categories-language.d.ts.map +0 -1
  54. package/dist/src/api/lib/categories-language.js +0 -1
  55. package/dist/src/api/lib/posts-language.d.ts +0 -17
  56. package/dist/src/api/lib/posts-language.d.ts.map +0 -1
  57. package/dist/src/api/lib/posts-language.js +0 -1
  58. package/dist/src/api/lib/search.d.ts +0 -13
  59. package/dist/src/api/lib/search.d.ts.map +0 -1
  60. package/dist/src/api/lib/search.js +0 -1
  61. package/dist/src/api/modules/admin/categories/categories.admin.module.d.ts +0 -100
  62. package/dist/src/api/modules/admin/categories/categories.admin.module.d.ts.map +0 -1
  63. package/dist/src/api/modules/admin/categories/categories.admin.module.js +0 -1
  64. package/dist/src/api/modules/admin/categories/routes/create.route.d.ts +0 -47
  65. package/dist/src/api/modules/admin/categories/routes/create.route.d.ts.map +0 -1
  66. package/dist/src/api/modules/admin/categories/routes/create.route.js +0 -1
  67. package/dist/src/api/modules/admin/categories/routes/delete.route.d.ts +0 -21
  68. package/dist/src/api/modules/admin/categories/routes/delete.route.d.ts.map +0 -1
  69. package/dist/src/api/modules/admin/categories/routes/delete.route.js +0 -1
  70. package/dist/src/api/modules/admin/categories/routes/edit.route.d.ts +0 -46
  71. package/dist/src/api/modules/admin/categories/routes/edit.route.d.ts.map +0 -1
  72. package/dist/src/api/modules/admin/categories/routes/edit.route.js +0 -1
  73. package/dist/src/api/modules/admin/posts/posts.admin.module.d.ts +0 -121
  74. package/dist/src/api/modules/admin/posts/posts.admin.module.d.ts.map +0 -1
  75. package/dist/src/api/modules/admin/posts/posts.admin.module.js +0 -1
  76. package/dist/src/api/modules/admin/posts/routes/create.route.d.ts +0 -67
  77. package/dist/src/api/modules/admin/posts/routes/create.route.d.ts.map +0 -1
  78. package/dist/src/api/modules/admin/posts/routes/create.route.js +0 -1
  79. package/dist/src/api/modules/admin/posts/routes/delete.route.d.ts +0 -21
  80. package/dist/src/api/modules/admin/posts/routes/delete.route.d.ts.map +0 -1
  81. package/dist/src/api/modules/admin/posts/routes/delete.route.js +0 -1
  82. package/dist/src/api/modules/admin/posts/routes/edit.route.d.ts +0 -55
  83. package/dist/src/api/modules/admin/posts/routes/edit.route.d.ts.map +0 -1
  84. package/dist/src/api/modules/admin/posts/routes/edit.route.js +0 -1
  85. package/dist/src/api/modules/categories/categories.module.d.ts +0 -75
  86. package/dist/src/api/modules/categories/categories.module.d.ts.map +0 -1
  87. package/dist/src/api/modules/categories/categories.module.js +0 -1
  88. package/dist/src/api/modules/categories/routes/get.route.d.ts +0 -62
  89. package/dist/src/api/modules/categories/routes/get.route.d.ts.map +0 -1
  90. package/dist/src/api/modules/categories/routes/get.route.js +0 -1
  91. package/dist/src/api/modules/categories/test.route.d.ts +0 -27
  92. package/dist/src/api/modules/categories/test.route.d.ts.map +0 -1
  93. package/dist/src/api/modules/categories/test.route.js +0 -1
  94. package/dist/src/api/modules/posts/posts.module.d.ts +0 -73
  95. package/dist/src/api/modules/posts/posts.module.d.ts.map +0 -1
  96. package/dist/src/api/modules/posts/posts.module.js +0 -1
  97. package/dist/src/api/modules/posts/routes/get.route.d.ts +0 -105
  98. package/dist/src/api/modules/posts/routes/get.route.d.ts.map +0 -1
  99. package/dist/src/api/modules/posts/routes/get.route.js +0 -1
  100. package/dist/src/database/index.d.ts +0 -4
  101. package/dist/src/database/index.d.ts.map +0 -1
  102. package/dist/src/database/index.js +0 -1
  103. package/dist/src/database/relations.d.ts +0 -7
  104. package/dist/src/database/relations.d.ts.map +0 -1
  105. package/dist/src/database/relations.js +0 -1
  106. package/dist/src/routes/admin/blog/categories/page.d.ts +0 -9
  107. package/dist/src/routes/admin/blog/categories/page.d.ts.map +0 -1
  108. package/dist/src/routes/admin/blog/categories/page.js +0 -1
  109. package/dist/src/routes/admin/blog/posts/page.d.ts +0 -9
  110. package/dist/src/routes/admin/blog/posts/page.d.ts.map +0 -1
  111. package/dist/src/routes/admin/blog/posts/page.js +0 -1
  112. package/dist/src/routes/breadcrumb/admin/blog/categories/page.d.ts +0 -2
  113. package/dist/src/routes/breadcrumb/admin/blog/categories/page.d.ts.map +0 -1
  114. package/dist/src/routes/breadcrumb/admin/blog/categories/page.js +0 -1
  115. package/dist/src/routes/breadcrumb/admin/blog/posts/page.d.ts +0 -2
  116. package/dist/src/routes/breadcrumb/admin/blog/posts/page.d.ts.map +0 -1
  117. package/dist/src/routes/breadcrumb/admin/blog/posts/page.js +0 -1
  118. package/dist/src/views/admin/categories/actions/actions.d.ts +0 -3
  119. package/dist/src/views/admin/categories/actions/actions.d.ts.map +0 -1
  120. package/dist/src/views/admin/categories/actions/actions.js +0 -1
  121. package/dist/src/views/admin/categories/actions/create-edit/create-edit.d.ts +0 -8
  122. package/dist/src/views/admin/categories/actions/create-edit/create-edit.d.ts.map +0 -1
  123. package/dist/src/views/admin/categories/actions/create-edit/create-edit.js +0 -1
  124. package/dist/src/views/admin/categories/actions/create-edit/mutation-api.server.d.ts +0 -11
  125. package/dist/src/views/admin/categories/actions/create-edit/mutation-api.server.d.ts.map +0 -1
  126. package/dist/src/views/admin/categories/actions/create-edit/mutation-api.server.js +0 -1
  127. package/dist/src/views/admin/categories/table/actions/delete/delete-action.d.ts +0 -5
  128. package/dist/src/views/admin/categories/table/actions/delete/delete-action.d.ts.map +0 -1
  129. package/dist/src/views/admin/categories/table/actions/delete/delete-action.js +0 -1
  130. package/dist/src/views/admin/categories/table/actions/delete/mutation-api.server.d.ts +0 -4
  131. package/dist/src/views/admin/categories/table/actions/delete/mutation-api.server.d.ts.map +0 -1
  132. package/dist/src/views/admin/categories/table/actions/delete/mutation-api.server.js +0 -1
  133. package/dist/src/views/admin/categories/table/actions/edit-action.d.ts +0 -9
  134. package/dist/src/views/admin/categories/table/actions/edit-action.d.ts.map +0 -1
  135. package/dist/src/views/admin/categories/table/actions/edit-action.js +0 -1
  136. package/dist/src/views/admin/categories/table/categories-admin-view.d.ts +0 -4
  137. package/dist/src/views/admin/categories/table/categories-admin-view.d.ts.map +0 -1
  138. package/dist/src/views/admin/categories/table/categories-admin-view.js +0 -1
  139. package/dist/src/views/admin/posts/actions/actions.d.ts +0 -3
  140. package/dist/src/views/admin/posts/actions/actions.d.ts.map +0 -1
  141. package/dist/src/views/admin/posts/actions/actions.js +0 -1
  142. package/dist/src/views/admin/posts/actions/create-edit/create-edit.d.ts +0 -9
  143. package/dist/src/views/admin/posts/actions/create-edit/create-edit.d.ts.map +0 -1
  144. package/dist/src/views/admin/posts/actions/create-edit/create-edit.js +0 -1
  145. package/dist/src/views/admin/posts/actions/create-edit/multi-lang-fields.d.ts +0 -10
  146. package/dist/src/views/admin/posts/actions/create-edit/multi-lang-fields.d.ts.map +0 -1
  147. package/dist/src/views/admin/posts/actions/create-edit/multi-lang-fields.js +0 -1
  148. package/dist/src/views/admin/posts/actions/create-edit/mutation-api.server.d.ts +0 -11
  149. package/dist/src/views/admin/posts/actions/create-edit/mutation-api.server.d.ts.map +0 -1
  150. package/dist/src/views/admin/posts/actions/create-edit/mutation-api.server.js +0 -1
  151. package/dist/src/views/admin/posts/table/actions/delete/delete-action.d.ts +0 -5
  152. package/dist/src/views/admin/posts/table/actions/delete/delete-action.d.ts.map +0 -1
  153. package/dist/src/views/admin/posts/table/actions/delete/delete-action.js +0 -1
  154. package/dist/src/views/admin/posts/table/actions/delete/mutation-api.server.d.ts +0 -4
  155. package/dist/src/views/admin/posts/table/actions/delete/mutation-api.server.d.ts.map +0 -1
  156. package/dist/src/views/admin/posts/table/actions/delete/mutation-api.server.js +0 -1
  157. package/dist/src/views/admin/posts/table/actions/edit-action.d.ts +0 -9
  158. package/dist/src/views/admin/posts/table/actions/edit-action.d.ts.map +0 -1
  159. package/dist/src/views/admin/posts/table/actions/edit-action.js +0 -1
  160. package/dist/src/views/admin/posts/table/posts-admin-view.d.ts +0 -4
  161. package/dist/src/views/admin/posts/table/posts-admin-view.d.ts.map +0 -1
  162. package/dist/src/views/admin/posts/table/posts-admin-view.js +0 -1
  163. package/src/routes/admin/blog/categories/page.tsx +0 -64
  164. package/src/routes/admin/blog/posts/page.tsx +0 -64
  165. package/src/routes/breadcrumb/admin/blog/categories/page.tsx +0 -5
  166. package/src/routes/breadcrumb/admin/blog/posts/page.tsx +0 -5
@@ -1,21 +0,0 @@
1
- import { z } from "@hono/zod-openapi";
2
- export declare const deletePostRoute: import("@vitnode/core/api/lib/route").Route<"@vitnode/blog", {
3
- method: "delete";
4
- path: "/{id}";
5
- request: {
6
- params: z.ZodObject<{
7
- id: z.ZodPipe<z.ZodString, z.ZodTransform<number, string>>;
8
- }, z.core.$strip>;
9
- };
10
- responses: {
11
- 204: {
12
- description: string;
13
- };
14
- 404: {
15
- description: string;
16
- };
17
- };
18
- } & {
19
- path: string;
20
- }>;
21
- //# sourceMappingURL=delete.route.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"delete.route.d.ts","sourceRoot":"","sources":["../../../../../../../src/api/modules/admin/posts/routes/delete.route.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,mBAAmB,CAAC;AAQtC,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;EA0C1B,CAAC"}
@@ -1 +0,0 @@
1
- import{z}from"@hono/zod-openapi";import{buildRoute}from"@vitnode/core/api/lib/route";import{eq}from"drizzle-orm";import{HTTPException}from"hono/http-exception";import{CONFIG_PLUGIN}from"../../../../../const.js";import{blog_posts}from"../../../../../database/posts.js";export const deletePostRoute=buildRoute({pluginId:CONFIG_PLUGIN.pluginId,adminStaffPermission:{module:"posts",permission:"can_delete"},route:{method:"delete",path:"/{id}",request:{params:z.object({id:z.string().transform(Number)})},responses:{204:{description:"Post deleted successfully"},404:{description:"Post not found"}}},handler:async c=>{const{id}=c.req.valid("param");const result=await c.get("db").delete(blog_posts).where(eq(blog_posts.id,id)).returning();if(result.length===0){throw new HTTPException(404)}await c.get("search").delete("blog_post",id);await c.get("events").emit("blog.post.deleted",{postId:id,categoryId:result[0].categoryId});return c.body(null,204)}});
@@ -1,55 +0,0 @@
1
- import { z } from "@hono/zod-openapi";
2
- export declare const editPostRoute: import("@vitnode/core/api/lib/route").Route<"@vitnode/blog", {
3
- method: "put";
4
- path: "/{id}";
5
- request: {
6
- params: z.ZodObject<{
7
- id: z.ZodPipe<z.ZodString, z.ZodTransform<number, string>>;
8
- }, z.core.$strip>;
9
- body: {
10
- content: {
11
- "application/json": {
12
- schema: z.ZodObject<{
13
- title: z.ZodArray<z.ZodObject<{
14
- languageCode: z.ZodString;
15
- value: z.ZodString;
16
- }, z.core.$strip>>;
17
- content: z.ZodArray<z.ZodObject<{
18
- languageCode: z.ZodString;
19
- value: z.ZodString;
20
- }, z.core.$strip>>;
21
- friendlyUrl: z.ZodArray<z.ZodObject<{
22
- languageCode: z.ZodString;
23
- value: z.ZodString;
24
- }, z.core.$strip>>;
25
- categoryId: z.ZodNumber;
26
- }, z.core.$strip>;
27
- };
28
- };
29
- };
30
- };
31
- responses: {
32
- 200: {
33
- content: {
34
- "application/json": {
35
- schema: z.ZodObject<{
36
- id: z.ZodNumber;
37
- categoryId: z.ZodNumber;
38
- createdAt: z.ZodDate;
39
- updatedAt: z.ZodDate;
40
- }, z.core.$strip>;
41
- };
42
- };
43
- description: string;
44
- };
45
- 400: {
46
- description: string;
47
- };
48
- 404: {
49
- description: string;
50
- };
51
- };
52
- } & {
53
- path: string;
54
- }>;
55
- //# sourceMappingURL=edit.route.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"edit.route.d.ts","sourceRoot":"","sources":["../../../../../../../src/api/modules/admin/posts/routes/edit.route.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,mBAAmB,CAAC;AAyBtC,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiHxB,CAAC"}
@@ -1 +0,0 @@
1
- import{z}from"@hono/zod-openapi";import{buildRoute}from"@vitnode/core/api/lib/route";import{core_languages_words}from"@vitnode/core/database/languages";import{and,eq,inArray,ne}from"drizzle-orm";import{HTTPException}from"hono/http-exception";import{CONFIG_PLUGIN}from"../../../../../const.js";import{blog_categories}from"../../../../../database/categories.js";import{blog_posts}from"../../../../../database/posts.js";import{POST_LANG_TABLE,savePostTranslations,slugifyMultiLang}from"../../../../lib/posts-language.js";import{reindexBlogPost}from"../../../../lib/search.js";import{zodCreatePostSchema}from"./create.route.js";const zodPostResponseSchema=z.object({id:z.number(),categoryId:z.number(),createdAt:z.date(),updatedAt:z.date()});export const editPostRoute=buildRoute({pluginId:CONFIG_PLUGIN.pluginId,adminStaffPermission:{module:"posts",permission:"can_edit"},route:{method:"put",path:"/{id}",request:{params:z.object({id:z.string().transform(Number)}),body:{content:{"application/json":{schema:zodCreatePostSchema}}}},responses:{200:{content:{"application/json":{schema:zodPostResponseSchema}},description:"Post updated successfully"},400:{description:"Bad request - Invalid input data"},404:{description:"Post or category not found"}}},handler:async c=>{const{id}=c.req.valid("param");const{title,content,friendlyUrl,categoryId}=c.req.valid("json");const slugFriendlyUrl=slugifyMultiLang(friendlyUrl);const friendlyUrlValues=[...new Set(slugFriendlyUrl.map(item=>item.value).filter(Boolean))];if(friendlyUrlValues.length===0){throw new HTTPException(400,{message:"Friendly URL is required."})}const[existingPost]=await c.get("db").select({id:blog_posts.id}).from(blog_posts).where(eq(blog_posts.id,id)).limit(1);if(!existingPost){throw new HTTPException(404,{message:"Post not found."})}const[category]=await c.get("db").select({id:blog_categories.id}).from(blog_categories).where(eq(blog_categories.id,categoryId)).limit(1);if(!category){throw new HTTPException(404,{message:"Category not found."})}const[duplicate]=await c.get("db").select({itemId:core_languages_words.itemId}).from(core_languages_words).where(and(eq(core_languages_words.pluginCode,CONFIG_PLUGIN.pluginId),eq(core_languages_words.tableName,POST_LANG_TABLE),eq(core_languages_words.variable,"friendlyUrl"),inArray(core_languages_words.value,friendlyUrlValues),ne(core_languages_words.itemId,id))).limit(1);if(duplicate){throw new HTTPException(400,{message:"Post with this title already exists."})}const[post]=await c.get("db").update(blog_posts).set({categoryId}).where(eq(blog_posts.id,id)).returning();await savePostTranslations(c,id,{title,content,friendlyUrl});await reindexBlogPost(c,post);await c.get("events").emit("blog.post.updated",{postId:post.id,categoryId:post.categoryId});return c.json(post)}});
@@ -1,75 +0,0 @@
1
- export declare const categoriesModule: import("@vitnode/core/api/lib/module").BuildModuleReturn<"@vitnode/blog", "categories", [import("@vitnode/core/api/lib/route").Route<"@vitnode/blog", {
2
- method: "get";
3
- path: "/";
4
- request: {
5
- query: import("zod").ZodObject<{
6
- cursor: import("zod").ZodOptional<import("zod").ZodString>;
7
- first: import("zod").ZodOptional<import("zod").ZodString>;
8
- last: import("zod").ZodOptional<import("zod").ZodString>;
9
- order: import("zod").ZodOptional<import("zod").ZodEnum<{
10
- asc: "asc";
11
- desc: "desc";
12
- }>>;
13
- orderBy: import("zod").ZodOptional<import("zod").ZodEnum<{
14
- updatedAt: "updatedAt";
15
- }>>;
16
- search: import("zod").ZodOptional<import("zod").ZodString>;
17
- }, import("zod/v4/core").$strip>;
18
- };
19
- responses: {
20
- 200: {
21
- content: {
22
- "application/json": {
23
- schema: import("zod").ZodObject<{
24
- edges: import("zod").ZodArray<import("zod").ZodObject<{
25
- id: import("zod").ZodNumber;
26
- titleTranslations: import("zod").ZodArray<import("zod").ZodObject<{
27
- languageCode: import("zod").ZodString;
28
- value: import("zod").ZodString;
29
- }, import("zod/v4/core").$strip>>;
30
- color: import("zod").ZodNullable<import("zod").ZodString>;
31
- createdAt: import("zod").ZodDate;
32
- updatedAt: import("zod").ZodDate;
33
- }, import("zod/v4/core").$strip>>;
34
- pageInfo: import("zod").ZodObject<{
35
- totalCount: import("zod").ZodNumber;
36
- count: import("zod").ZodNumber;
37
- hasNextPage: import("zod").ZodBoolean;
38
- hasPreviousPage: import("zod").ZodBoolean;
39
- startCursor: import("zod").ZodNullable<import("zod").ZodNumber>;
40
- endCursor: import("zod").ZodNullable<import("zod").ZodNumber>;
41
- }, import("zod/v4/core").$strip>;
42
- }, import("zod/v4/core").$strip>;
43
- };
44
- };
45
- description: string;
46
- };
47
- };
48
- } & {
49
- path: string;
50
- }>, import("@vitnode/core/api/lib/route").Route<"@vitnode/blog", {
51
- method: "post";
52
- description: string;
53
- path: "/test";
54
- responses: {
55
- 200: {
56
- content: {
57
- "text/plain": {
58
- schema: import("zod").ZodString;
59
- };
60
- };
61
- description: string;
62
- };
63
- 201: {
64
- content: {
65
- "text/plain": {
66
- schema: import("zod").ZodString;
67
- };
68
- };
69
- description: string;
70
- };
71
- };
72
- } & {
73
- path: string;
74
- }>], import("@vitnode/core/api/lib/module").BaseBuildModuleReturn<"@vitnode/blog", string, import("@vitnode/core/api/lib/route").Route<"@vitnode/blog", import("@hono/zod-openapi").RouteConfig>[]>[]>;
75
- //# sourceMappingURL=categories.module.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"categories.module.d.ts","sourceRoot":"","sources":["../../../../../src/api/modules/categories/categories.module.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sMAI3B,CAAC"}
@@ -1 +0,0 @@
1
- import{buildModule}from"@vitnode/core/api/lib/module";import{CONFIG_PLUGIN}from"../../../const.js";import{categoriesRoute}from"./routes/get.route.js";import{testRoute}from"./test.route.js";export const categoriesModule=buildModule({pluginId:CONFIG_PLUGIN.pluginId,name:"categories",routes:[categoriesRoute,testRoute]});
@@ -1,62 +0,0 @@
1
- import { z } from "@hono/zod-openapi";
2
- export declare const zodCategorySchema: z.ZodObject<{
3
- id: z.ZodNumber;
4
- titleTranslations: z.ZodArray<z.ZodObject<{
5
- languageCode: z.ZodString;
6
- value: z.ZodString;
7
- }, z.core.$strip>>;
8
- color: z.ZodNullable<z.ZodString>;
9
- createdAt: z.ZodDate;
10
- updatedAt: z.ZodDate;
11
- }, z.core.$strip>;
12
- export declare const categoriesRoute: import("@vitnode/core/api/lib/route").Route<"@vitnode/blog", {
13
- method: "get";
14
- path: "/";
15
- request: {
16
- query: z.ZodObject<{
17
- cursor: z.ZodOptional<z.ZodString>;
18
- first: z.ZodOptional<z.ZodString>;
19
- last: z.ZodOptional<z.ZodString>;
20
- order: z.ZodOptional<z.ZodEnum<{
21
- asc: "asc";
22
- desc: "desc";
23
- }>>;
24
- orderBy: z.ZodOptional<z.ZodEnum<{
25
- updatedAt: "updatedAt";
26
- }>>;
27
- search: z.ZodOptional<z.ZodString>;
28
- }, z.core.$strip>;
29
- };
30
- responses: {
31
- 200: {
32
- content: {
33
- "application/json": {
34
- schema: z.ZodObject<{
35
- edges: z.ZodArray<z.ZodObject<{
36
- id: z.ZodNumber;
37
- titleTranslations: z.ZodArray<z.ZodObject<{
38
- languageCode: z.ZodString;
39
- value: z.ZodString;
40
- }, z.core.$strip>>;
41
- color: z.ZodNullable<z.ZodString>;
42
- createdAt: z.ZodDate;
43
- updatedAt: z.ZodDate;
44
- }, z.core.$strip>>;
45
- pageInfo: z.ZodObject<{
46
- totalCount: z.ZodNumber;
47
- count: z.ZodNumber;
48
- hasNextPage: z.ZodBoolean;
49
- hasPreviousPage: z.ZodBoolean;
50
- startCursor: z.ZodNullable<z.ZodNumber>;
51
- endCursor: z.ZodNullable<z.ZodNumber>;
52
- }, z.core.$strip>;
53
- }, z.core.$strip>;
54
- };
55
- };
56
- description: string;
57
- };
58
- };
59
- } & {
60
- path: string;
61
- }>;
62
- //# sourceMappingURL=get.route.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"get.route.d.ts","sourceRoot":"","sources":["../../../../../../src/api/modules/categories/routes/get.route.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,mBAAmB,CAAC;AAsBtC,eAAO,MAAM,iBAAiB;;;;;;;;;iBAQ5B,CAAC;AAEH,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiG1B,CAAC"}
@@ -1 +0,0 @@
1
- import{z}from"@hono/zod-openapi";import{buildRoute}from"@vitnode/core/api/lib/route";import{withPagination,zodPaginationPageInfo,zodPaginationQuery}from"@vitnode/core/api/lib/with-pagination";import{core_languages_words}from"@vitnode/core/database/languages";import{multiLangValueSchema}from"@vitnode/core/lib/helpers/multi-lang";import{and,eq,ilike,inArray}from"drizzle-orm";import{CONFIG_PLUGIN}from"../../../../const.js";import{blog_categories}from"../../../../database/categories.js";import{CATEGORY_LANG_TABLE,CATEGORY_LANG_VARIABLE,loadCategoryTranslations}from"../../../lib/categories-language.js";const zodMultiLangValue=multiLangValueSchema();export const zodCategorySchema=z.object({id:z.number(),titleTranslations:zodMultiLangValue,color:z.string().nullable(),createdAt:z.date(),updatedAt:z.date()});export const categoriesRoute=buildRoute({pluginId:CONFIG_PLUGIN.pluginId,route:{method:"get",path:"/",request:{query:zodPaginationQuery.extend({order:z.enum(["asc","desc"]).optional(),orderBy:z.enum(["updatedAt"]).optional(),search:z.string().optional()})},responses:{200:{content:{"application/json":{schema:z.object({edges:z.array(zodCategorySchema),pageInfo:zodPaginationPageInfo})}},description:"Categories retrieved successfully"}}},handler:async c=>{const query=c.req.valid("query");const data=await withPagination({c,params:{query},primaryCursor:blog_categories.id,query:async({limit,where,orderBy})=>{const searchCondition=query.search?inArray(blog_categories.id,c.get("db").select({id:core_languages_words.itemId}).from(core_languages_words).where(and(eq(core_languages_words.pluginCode,CONFIG_PLUGIN.pluginId),eq(core_languages_words.tableName,CATEGORY_LANG_TABLE),eq(core_languages_words.variable,CATEGORY_LANG_VARIABLE),ilike(core_languages_words.value,`%${query.search}%`)))):undefined;let combinedWhere;if(searchCondition){if(where){combinedWhere=and(where,searchCondition)}else{combinedWhere=searchCondition}}else{combinedWhere=where}return await c.get("db").select().from(blog_categories).where(combinedWhere).orderBy(orderBy).limit(limit)},table:blog_categories,orderBy:{column:query.orderBy?blog_categories[query.orderBy]:blog_categories.updatedAt,order:query.order??"desc"}});const translations=await loadCategoryTranslations(c,data.edges.map(edge=>edge.id));return c.json({...data,edges:data.edges.map(edge=>({...edge,titleTranslations:translations.get(edge.id)??[]}))})}});
@@ -1,27 +0,0 @@
1
- import { z } from "zod";
2
- export declare const testRoute: import("@vitnode/core/api/lib/route").Route<"@vitnode/blog", {
3
- method: "post";
4
- description: string;
5
- path: "/test";
6
- responses: {
7
- 200: {
8
- content: {
9
- "text/plain": {
10
- schema: z.ZodString;
11
- };
12
- };
13
- description: string;
14
- };
15
- 201: {
16
- content: {
17
- "text/plain": {
18
- schema: z.ZodString;
19
- };
20
- };
21
- description: string;
22
- };
23
- };
24
- } & {
25
- path: string;
26
- }>;
27
- //# sourceMappingURL=test.route.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"test.route.d.ts","sourceRoot":"","sources":["../../../../../src/api/modules/categories/test.route.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAKxB,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;EA2CpB,CAAC"}
@@ -1 +0,0 @@
1
- import{buildRoute}from"@vitnode/core/api/lib/route";import{UserModel}from"@vitnode/core/api/models/user";import{z}from"zod";import{CONFIG_PLUGIN}from"../../../const.js";import TestTemplateEmail from"../../../emails/test-template.js";export const testRoute=buildRoute({pluginId:CONFIG_PLUGIN.pluginId,route:{method:"post",description:"Test route",path:"/test",responses:{200:{content:{"text/plain":{schema:z.string()}},description:"User"},201:{content:{"text/plain":{schema:z.string()}},description:"User"}}},handler:async c=>{const user=await new UserModel().getUserById({id:2,c});if(!user)throw new Error("User not found");await c.get("email").send({subject:"Test Email",content:TestTemplateEmail,user});await c.get("log").warn("This is a test warn log");return c.text("test")}});
@@ -1,73 +0,0 @@
1
- export declare const postsModule: import("@vitnode/core/api/lib/module").BuildModuleReturn<"@vitnode/blog", "posts", [import("@vitnode/core/api/lib/route").Route<"@vitnode/blog", {
2
- method: "get";
3
- path: "/";
4
- request: {
5
- query: import("zod").ZodObject<{
6
- cursor: import("zod").ZodOptional<import("zod").ZodString>;
7
- first: import("zod").ZodOptional<import("zod").ZodString>;
8
- last: import("zod").ZodOptional<import("zod").ZodString>;
9
- order: import("zod").ZodOptional<import("zod").ZodEnum<{
10
- asc: "asc";
11
- desc: "desc";
12
- }>>;
13
- orderBy: import("zod").ZodOptional<import("zod").ZodEnum<{
14
- createdAt: "createdAt";
15
- updatedAt: "updatedAt";
16
- }>>;
17
- categoryId: import("zod").ZodOptional<import("zod").ZodPipe<import("zod").ZodString, import("zod").ZodTransform<number, string>>>;
18
- }, import("zod/v4/core").$strip>;
19
- };
20
- responses: {
21
- 200: {
22
- content: {
23
- "application/json": {
24
- schema: import("zod").ZodObject<{
25
- edges: import("zod").ZodArray<import("zod").ZodObject<{
26
- id: import("zod").ZodNumber;
27
- titleTranslations: import("zod").ZodArray<import("zod").ZodObject<{
28
- languageCode: import("zod").ZodString;
29
- value: import("zod").ZodString;
30
- }, import("zod/v4/core").$strip>>;
31
- contentTranslations: import("zod").ZodArray<import("zod").ZodObject<{
32
- languageCode: import("zod").ZodString;
33
- value: import("zod").ZodString;
34
- }, import("zod/v4/core").$strip>>;
35
- friendlyUrlTranslations: import("zod").ZodArray<import("zod").ZodObject<{
36
- languageCode: import("zod").ZodString;
37
- value: import("zod").ZodString;
38
- }, import("zod/v4/core").$strip>>;
39
- categoryId: import("zod").ZodNumber;
40
- createdAt: import("zod").ZodDate;
41
- updatedAt: import("zod").ZodDate;
42
- category: import("zod").ZodObject<{
43
- id: import("zod").ZodNumber;
44
- titleTranslations: import("zod").ZodArray<import("zod").ZodObject<{
45
- languageCode: import("zod").ZodString;
46
- value: import("zod").ZodString;
47
- }, import("zod/v4/core").$strip>>;
48
- }, import("zod/v4/core").$strip>;
49
- author: import("zod").ZodNullable<import("zod").ZodObject<{
50
- id: import("zod").ZodNumber;
51
- name: import("zod").ZodString;
52
- nameCode: import("zod").ZodString;
53
- avatarColor: import("zod").ZodString;
54
- }, import("zod/v4/core").$strip>>;
55
- }, import("zod/v4/core").$strip>>;
56
- pageInfo: import("zod").ZodObject<{
57
- totalCount: import("zod").ZodNumber;
58
- count: import("zod").ZodNumber;
59
- hasNextPage: import("zod").ZodBoolean;
60
- hasPreviousPage: import("zod").ZodBoolean;
61
- startCursor: import("zod").ZodNullable<import("zod").ZodNumber>;
62
- endCursor: import("zod").ZodNullable<import("zod").ZodNumber>;
63
- }, import("zod/v4/core").$strip>;
64
- }, import("zod/v4/core").$strip>;
65
- };
66
- };
67
- description: string;
68
- };
69
- };
70
- } & {
71
- path: string;
72
- }>], import("@vitnode/core/api/lib/module").BaseBuildModuleReturn<"@vitnode/blog", string, import("@vitnode/core/api/lib/route").Route<"@vitnode/blog", import("@hono/zod-openapi").RouteConfig>[]>[]>;
73
- //# sourceMappingURL=posts.module.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"posts.module.d.ts","sourceRoot":"","sources":["../../../../../src/api/modules/posts/posts.module.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;sMAItB,CAAC"}
@@ -1 +0,0 @@
1
- import{buildModule}from"@vitnode/core/api/lib/module";import{CONFIG_PLUGIN}from"../../../const.js";import{postsRoute}from"./routes/get.route.js";export const postsModule=buildModule({pluginId:CONFIG_PLUGIN.pluginId,name:"posts",routes:[postsRoute]});
@@ -1,105 +0,0 @@
1
- import { z } from "@hono/zod-openapi";
2
- export declare const zodPostSchema: z.ZodObject<{
3
- id: z.ZodNumber;
4
- titleTranslations: z.ZodArray<z.ZodObject<{
5
- languageCode: z.ZodString;
6
- value: z.ZodString;
7
- }, z.core.$strip>>;
8
- contentTranslations: z.ZodArray<z.ZodObject<{
9
- languageCode: z.ZodString;
10
- value: z.ZodString;
11
- }, z.core.$strip>>;
12
- friendlyUrlTranslations: z.ZodArray<z.ZodObject<{
13
- languageCode: z.ZodString;
14
- value: z.ZodString;
15
- }, z.core.$strip>>;
16
- categoryId: z.ZodNumber;
17
- createdAt: z.ZodDate;
18
- updatedAt: z.ZodDate;
19
- category: z.ZodObject<{
20
- id: z.ZodNumber;
21
- titleTranslations: z.ZodArray<z.ZodObject<{
22
- languageCode: z.ZodString;
23
- value: z.ZodString;
24
- }, z.core.$strip>>;
25
- }, z.core.$strip>;
26
- author: z.ZodNullable<z.ZodObject<{
27
- id: z.ZodNumber;
28
- name: z.ZodString;
29
- nameCode: z.ZodString;
30
- avatarColor: z.ZodString;
31
- }, z.core.$strip>>;
32
- }, z.core.$strip>;
33
- export declare const postsRoute: import("@vitnode/core/api/lib/route").Route<"@vitnode/blog", {
34
- method: "get";
35
- path: "/";
36
- request: {
37
- query: z.ZodObject<{
38
- cursor: z.ZodOptional<z.ZodString>;
39
- first: z.ZodOptional<z.ZodString>;
40
- last: z.ZodOptional<z.ZodString>;
41
- order: z.ZodOptional<z.ZodEnum<{
42
- asc: "asc";
43
- desc: "desc";
44
- }>>;
45
- orderBy: z.ZodOptional<z.ZodEnum<{
46
- createdAt: "createdAt";
47
- updatedAt: "updatedAt";
48
- }>>;
49
- categoryId: z.ZodOptional<z.ZodPipe<z.ZodString, z.ZodTransform<number, string>>>;
50
- }, z.core.$strip>;
51
- };
52
- responses: {
53
- 200: {
54
- content: {
55
- "application/json": {
56
- schema: z.ZodObject<{
57
- edges: z.ZodArray<z.ZodObject<{
58
- id: z.ZodNumber;
59
- titleTranslations: z.ZodArray<z.ZodObject<{
60
- languageCode: z.ZodString;
61
- value: z.ZodString;
62
- }, z.core.$strip>>;
63
- contentTranslations: z.ZodArray<z.ZodObject<{
64
- languageCode: z.ZodString;
65
- value: z.ZodString;
66
- }, z.core.$strip>>;
67
- friendlyUrlTranslations: z.ZodArray<z.ZodObject<{
68
- languageCode: z.ZodString;
69
- value: z.ZodString;
70
- }, z.core.$strip>>;
71
- categoryId: z.ZodNumber;
72
- createdAt: z.ZodDate;
73
- updatedAt: z.ZodDate;
74
- category: z.ZodObject<{
75
- id: z.ZodNumber;
76
- titleTranslations: z.ZodArray<z.ZodObject<{
77
- languageCode: z.ZodString;
78
- value: z.ZodString;
79
- }, z.core.$strip>>;
80
- }, z.core.$strip>;
81
- author: z.ZodNullable<z.ZodObject<{
82
- id: z.ZodNumber;
83
- name: z.ZodString;
84
- nameCode: z.ZodString;
85
- avatarColor: z.ZodString;
86
- }, z.core.$strip>>;
87
- }, z.core.$strip>>;
88
- pageInfo: z.ZodObject<{
89
- totalCount: z.ZodNumber;
90
- count: z.ZodNumber;
91
- hasNextPage: z.ZodBoolean;
92
- hasPreviousPage: z.ZodBoolean;
93
- startCursor: z.ZodNullable<z.ZodNumber>;
94
- endCursor: z.ZodNullable<z.ZodNumber>;
95
- }, z.core.$strip>;
96
- }, z.core.$strip>;
97
- };
98
- };
99
- description: string;
100
- };
101
- };
102
- } & {
103
- path: string;
104
- }>;
105
- //# sourceMappingURL=get.route.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"get.route.d.ts","sourceRoot":"","sources":["../../../../../../src/api/modules/posts/routes/get.route.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,mBAAmB,CAAC;AAoBtC,eAAO,MAAM,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAsBxB,CAAC;AAEH,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAwGrB,CAAC"}
@@ -1 +0,0 @@
1
- import{z}from"@hono/zod-openapi";import{buildRoute}from"@vitnode/core/api/lib/route";import{withPagination,zodPaginationPageInfo,zodPaginationQuery}from"@vitnode/core/api/lib/with-pagination";import{core_users}from"@vitnode/core/database/users";import{multiLangValueSchema}from"@vitnode/core/lib/helpers/multi-lang";import{eq}from"drizzle-orm";import{CONFIG_PLUGIN}from"../../../../const.js";import{blog_categories}from"../../../../database/categories.js";import{blog_posts}from"../../../../database/posts.js";import{loadCategoryTranslations}from"../../../lib/categories-language.js";import{loadPostTranslations}from"../../../lib/posts-language.js";const zodMultiLangValue=multiLangValueSchema();export const zodPostSchema=z.object({id:z.number(),titleTranslations:zodMultiLangValue,contentTranslations:zodMultiLangValue,friendlyUrlTranslations:zodMultiLangValue,categoryId:z.number(),createdAt:z.date(),updatedAt:z.date(),category:z.object({id:z.number(),titleTranslations:zodMultiLangValue}),author:z.object({id:z.number(),name:z.string(),nameCode:z.string(),avatarColor:z.string()}).nullable()});export const postsRoute=buildRoute({pluginId:CONFIG_PLUGIN.pluginId,route:{method:"get",path:"/",request:{query:zodPaginationQuery.extend({order:z.enum(["asc","desc"]).optional(),orderBy:z.enum(["updatedAt","createdAt"]).optional(),categoryId:z.string().transform(Number).optional()})},responses:{200:{content:{"application/json":{schema:z.object({edges:z.array(zodPostSchema),pageInfo:zodPaginationPageInfo})}},description:"Posts retrieved successfully"}}},handler:async c=>{const query=c.req.valid("query");const data=await withPagination({c,params:{query},primaryCursor:blog_posts.id,query:async({limit,where,orderBy})=>await c.get("db").select({id:blog_posts.id,categoryId:blog_posts.categoryId,createdAt:blog_posts.createdAt,updatedAt:blog_posts.updatedAt,category:{id:blog_categories.id},author:{id:core_users.id,name:core_users.name,nameCode:core_users.nameCode,avatarColor:core_users.avatarColor}}).from(blog_posts).innerJoin(blog_categories,eq(blog_posts.categoryId,blog_categories.id)).leftJoin(core_users,eq(core_users.id,blog_posts.authorId)).where(query.categoryId?eq(blog_posts.categoryId,query.categoryId):where).orderBy(orderBy).limit(limit),table:blog_posts,orderBy:{column:query.orderBy?blog_posts[query.orderBy]:blog_posts.updatedAt,order:query.order??"desc"}});const[translations,categoryTranslations]=await Promise.all([loadPostTranslations(c,data.edges.map(edge=>edge.id)),loadCategoryTranslations(c,data.edges.map(edge=>edge.category.id))]);return c.json({...data,edges:data.edges.map(edge=>{const words=translations.get(edge.id);return{...edge,titleTranslations:words?.title??[],contentTranslations:words?.content??[],friendlyUrlTranslations:words?.friendlyUrl??[],category:{...edge.category,titleTranslations:categoryTranslations.get(edge.category.id)??[]}}})})}});
@@ -1,4 +0,0 @@
1
- export * from "./categories";
2
- export * from "./posts";
3
- export * from "./relations";
4
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/database/index.ts"],"names":[],"mappings":"AACA,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC;AAGxB,cAAc,aAAa,CAAC"}
@@ -1 +0,0 @@
1
- export*from"./categories.js";export*from"./posts.js";export*from"./relations.js";
@@ -1,7 +0,0 @@
1
- export declare const blog_posts_relations: import("drizzle-orm").Relations<"blog_posts", {
2
- category: import("drizzle-orm").One<"blog_categories", true>;
3
- }>;
4
- export declare const blog_categories_relations: import("drizzle-orm").Relations<"blog_categories", {
5
- posts: import("drizzle-orm").Many<"blog_posts">;
6
- }>;
7
- //# sourceMappingURL=relations.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"relations.d.ts","sourceRoot":"","sources":["../../../src/database/relations.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,oBAAoB;;EAK9B,CAAC;AAEJ,eAAO,MAAM,yBAAyB;;EAKrC,CAAC"}
@@ -1 +0,0 @@
1
- import{relations}from"drizzle-orm";import{blog_categories}from"./categories.js";import{blog_posts}from"./posts.js";export const blog_posts_relations=relations(blog_posts,({one})=>({category:one(blog_categories,{fields:[blog_posts.categoryId],references:[blog_categories.id]})}));export const blog_categories_relations=relations(blog_categories,({many})=>({posts:many(blog_posts)}));
@@ -1,9 +0,0 @@
1
- import type { Metadata } from "next";
2
- import React from "react";
3
- declare const CategoriesAdminView: React.ComponentType<{
4
- searchParams: Promise<Record<string, string | string[] | undefined>>;
5
- }>;
6
- export declare const generateMetadata: () => Promise<Metadata>;
7
- export default function CategoriesPage(params: React.ComponentProps<typeof CategoriesAdminView>): Promise<React.JSX.Element>;
8
- export {};
9
- //# sourceMappingURL=page.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"page.d.ts","sourceRoot":"","sources":["../../../../../../src/routes/admin/blog/categories/page.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AASrC,OAAO,KAAK,MAAM,OAAO,CAAC;AAK1B,QAAA,MAAM,mBAAmB;;EAIxB,CAAC;AAEF,eAAO,MAAM,gBAAgB,QAAa,OAAO,CAAC,QAAQ,CAMzD,CAAC;AAEF,wBAA8B,cAAc,CAC1C,MAAM,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,mBAAmB,CAAC,8BAkCzD"}
@@ -1 +0,0 @@
1
- import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";import{I18nProvider}from"@vitnode/core/components/i18n-provider";import{DataTableSkeleton}from"@vitnode/core/components/table/data-table";import{HeaderContent}from"@vitnode/core/components/ui/header-content";import{checkAdminPermissionApi}from"@vitnode/core/lib/api/get-session-admin-api";import{getTranslations}from"next-intl/server";import dynamic from"next/dynamic";import{notFound}from"next/navigation";import React from"react";import{CONFIG_PLUGIN}from"../../../../const.js";import{ActionsCategoriesAdmin}from"../../../../views/admin/categories/actions/actions.js";const CategoriesAdminView=dynamic(async()=>import("../../../../views/admin/categories/table/categories-admin-view.js").then(mod=>({default:mod.CategoriesAdminView})));export const generateMetadata=async()=>{const t=await getTranslations("@vitnode/blog.admin.nav");return{title:t("categories")}};export default async function CategoriesPage(params){const[t,tNav,canView,canCreate]=await Promise.all([getTranslations("@vitnode/blog.admin.categories"),getTranslations("@vitnode/blog.admin.nav"),checkAdminPermissionApi({plugin:CONFIG_PLUGIN.pluginId,module:"categories",permission:"can_view"}),checkAdminPermissionApi({plugin:CONFIG_PLUGIN.pluginId,module:"categories",permission:"can_create"})]);if(!canView){notFound()}return _jsx(I18nProvider,{namespaces:["@vitnode/blog.admin.categories"],children:_jsxs("div",{className:"p-4",children:[_jsx(HeaderContent,{desc:t("desc"),h1:tNav("categories"),children:canCreate&&_jsx(ActionsCategoriesAdmin,{})}),_jsx(React.Suspense,{fallback:_jsx(DataTableSkeleton,{columns:4}),children:_jsx(CategoriesAdminView,{...params})})]})})}
@@ -1,9 +0,0 @@
1
- import type { Metadata } from "next";
2
- import React from "react";
3
- declare const PostsAdminView: React.ComponentType<{
4
- searchParams: Promise<Record<string, string | string[] | undefined>>;
5
- }>;
6
- export declare const generateMetadata: () => Promise<Metadata>;
7
- export default function PostsPage(params: React.ComponentProps<typeof PostsAdminView>): Promise<React.JSX.Element>;
8
- export {};
9
- //# sourceMappingURL=page.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"page.d.ts","sourceRoot":"","sources":["../../../../../../src/routes/admin/blog/posts/page.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AASrC,OAAO,KAAK,MAAM,OAAO,CAAC;AAK1B,QAAA,MAAM,cAAc;;EAInB,CAAC;AAEF,eAAO,MAAM,gBAAgB,QAAa,OAAO,CAAC,QAAQ,CAMzD,CAAC;AAEF,wBAA8B,SAAS,CACrC,MAAM,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,cAAc,CAAC,8BAkCpD"}
@@ -1 +0,0 @@
1
- import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";import{I18nProvider}from"@vitnode/core/components/i18n-provider";import{DataTableSkeleton}from"@vitnode/core/components/table/data-table";import{HeaderContent}from"@vitnode/core/components/ui/header-content";import{checkAdminPermissionApi}from"@vitnode/core/lib/api/get-session-admin-api";import{getTranslations}from"next-intl/server";import dynamic from"next/dynamic";import{notFound}from"next/navigation";import React from"react";import{CONFIG_PLUGIN}from"../../../../const.js";import{ActionsPostsAdmin}from"../../../../views/admin/posts/actions/actions.js";const PostsAdminView=dynamic(async()=>import("../../../../views/admin/posts/table/posts-admin-view.js").then(mod=>({default:mod.PostsAdminView})));export const generateMetadata=async()=>{const t=await getTranslations("@vitnode/blog.admin.nav");return{title:t("posts")}};export default async function PostsPage(params){const[t,tNav,canView,canCreate]=await Promise.all([getTranslations("@vitnode/blog.admin.posts"),getTranslations("@vitnode/blog.admin.nav"),checkAdminPermissionApi({plugin:CONFIG_PLUGIN.pluginId,module:"posts",permission:"can_view"}),checkAdminPermissionApi({plugin:CONFIG_PLUGIN.pluginId,module:"posts",permission:"can_create"})]);if(!canView){notFound()}return _jsx(I18nProvider,{namespaces:["@vitnode/blog.admin.posts"],children:_jsxs("div",{className:"p-4",children:[_jsx(HeaderContent,{desc:t("desc"),h1:tNav("posts"),children:canCreate&&_jsx(ActionsPostsAdmin,{})}),_jsx(React.Suspense,{fallback:_jsx(DataTableSkeleton,{columns:5}),children:_jsx(PostsAdminView,{...params})})]})})}
@@ -1,2 +0,0 @@
1
- export default function BreadcrumbSlot(): import("react").JSX.Element;
2
- //# sourceMappingURL=page.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"page.d.ts","sourceRoot":"","sources":["../../../../../../../src/routes/breadcrumb/admin/blog/categories/page.tsx"],"names":[],"mappings":"AAEA,MAAM,CAAC,OAAO,UAAU,cAAc,gCAErC"}
@@ -1 +0,0 @@
1
- import{jsx as _jsx}from"react/jsx-runtime";import{BreadcrumbAdmin}from"@vitnode/core/views/admin/layouts/breadcrumb/breadcrumb-admin";export default function BreadcrumbSlot(){return _jsx(BreadcrumbAdmin,{segments:["blog","categories"]})}
@@ -1,2 +0,0 @@
1
- export default function BreadcrumbSlot(): import("react").JSX.Element;
2
- //# sourceMappingURL=page.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"page.d.ts","sourceRoot":"","sources":["../../../../../../../src/routes/breadcrumb/admin/blog/posts/page.tsx"],"names":[],"mappings":"AAEA,MAAM,CAAC,OAAO,UAAU,cAAc,gCAErC"}
@@ -1 +0,0 @@
1
- import{jsx as _jsx}from"react/jsx-runtime";import{BreadcrumbAdmin}from"@vitnode/core/views/admin/layouts/breadcrumb/breadcrumb-admin";export default function BreadcrumbSlot(){return _jsx(BreadcrumbAdmin,{segments:["blog","posts"]})}
@@ -1,3 +0,0 @@
1
- import React from "react";
2
- export declare const ActionsCategoriesAdmin: () => React.JSX.Element;
3
- //# sourceMappingURL=actions.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"actions.d.ts","sourceRoot":"","sources":["../../../../../../src/views/admin/categories/actions/actions.tsx"],"names":[],"mappings":"AAeA,OAAO,KAAK,MAAM,OAAO,CAAC;AAQ1B,eAAO,MAAM,sBAAsB,yBAsBlC,CAAC"}
@@ -1 +0,0 @@
1
- "use client";import{jsx as _jsx,jsxs as _jsxs}from"react/jsx-runtime";import{Button}from"@vitnode/core/components/ui/button";import{Dialog,DialogContent,DialogDescription,DialogHeader,DialogTitle,DialogTrigger}from"@vitnode/core/components/ui/dialog";import{Loader}from"@vitnode/core/components/ui/loader";import{PlusIcon}from"lucide-react";import{useTranslations}from"next-intl";import dynamic from"next/dynamic";import React from"react";const CreateEditActionCategoriesAdmin=dynamic(async()=>import("./create-edit/create-edit.js").then(mod=>({default:mod.CreateEditActionCategoriesAdmin})));export const ActionsCategoriesAdmin=()=>{const t=useTranslations("@vitnode/blog.admin.categories.create");return _jsxs(Dialog,{children:[_jsxs(DialogTrigger,{render:_jsx(Button,{}),children:[_jsx(PlusIcon,{}),t("title")]}),_jsxs(DialogContent,{children:[_jsxs(DialogHeader,{children:[_jsx(DialogTitle,{children:t("title")}),_jsx(DialogDescription,{children:t("desc")})]}),_jsx(React.Suspense,{fallback:_jsx(Loader,{}),children:_jsx(CreateEditActionCategoriesAdmin,{})})]})]})};
@@ -1,8 +0,0 @@
1
- import { z } from "zod";
2
- import type { zodCategorySchema } from "../../../../../api/modules/categories/routes/get.route";
3
- export declare const CreateEditActionCategoriesAdmin: ({ data, }: {
4
- data?: z.infer<typeof zodCategorySchema> & {
5
- id: number;
6
- };
7
- }) => import("react").JSX.Element;
8
- //# sourceMappingURL=create-edit.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"create-edit.d.ts","sourceRoot":"","sources":["../../../../../../../src/views/admin/categories/actions/create-edit/create-edit.tsx"],"names":[],"mappings":"AAcA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2CAA2C,CAAC;AAInF,eAAO,MAAM,+BAA+B,GAAI,WAE7C;IACD,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,GAAG;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,CAAC;CAC3D,gCAiEA,CAAC"}