@mano8/astro-prompt-m8 0.1.0-alpha.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 (163) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +116 -0
  3. package/dist/src/integration.d.ts +42 -0
  4. package/dist/src/integration.d.ts.map +1 -0
  5. package/dist/src/integration.js +86 -0
  6. package/dist/src/integration.js.map +1 -0
  7. package/dist/src/lib/csp.d.ts +25 -0
  8. package/dist/src/lib/csp.d.ts.map +1 -0
  9. package/dist/src/lib/csp.js +53 -0
  10. package/dist/src/lib/csp.js.map +1 -0
  11. package/dist/src/middleware.d.ts +4 -0
  12. package/dist/src/middleware.d.ts.map +1 -0
  13. package/dist/src/middleware.js +24 -0
  14. package/dist/src/middleware.js.map +1 -0
  15. package/dist/src/runtime/api/admin.d.ts +15 -0
  16. package/dist/src/runtime/api/admin.d.ts.map +1 -0
  17. package/dist/src/runtime/api/admin.js +39 -0
  18. package/dist/src/runtime/api/admin.js.map +1 -0
  19. package/dist/src/runtime/api/blocks.d.ts +24 -0
  20. package/dist/src/runtime/api/blocks.d.ts.map +1 -0
  21. package/dist/src/runtime/api/blocks.js +74 -0
  22. package/dist/src/runtime/api/blocks.js.map +1 -0
  23. package/dist/src/runtime/api/categories.d.ts +7 -0
  24. package/dist/src/runtime/api/categories.d.ts.map +1 -0
  25. package/dist/src/runtime/api/categories.js +49 -0
  26. package/dist/src/runtime/api/categories.js.map +1 -0
  27. package/dist/src/runtime/api/dashboard.d.ts +6 -0
  28. package/dist/src/runtime/api/dashboard.d.ts.map +1 -0
  29. package/dist/src/runtime/api/dashboard.js +21 -0
  30. package/dist/src/runtime/api/dashboard.js.map +1 -0
  31. package/dist/src/runtime/api/index.d.ts +46 -0
  32. package/dist/src/runtime/api/index.d.ts.map +1 -0
  33. package/dist/src/runtime/api/index.js +48 -0
  34. package/dist/src/runtime/api/index.js.map +1 -0
  35. package/dist/src/runtime/api/internal.server.d.ts +18 -0
  36. package/dist/src/runtime/api/internal.server.d.ts.map +1 -0
  37. package/dist/src/runtime/api/internal.server.js +43 -0
  38. package/dist/src/runtime/api/internal.server.js.map +1 -0
  39. package/dist/src/runtime/api/templates.d.ts +14 -0
  40. package/dist/src/runtime/api/templates.d.ts.map +1 -0
  41. package/dist/src/runtime/api/templates.js +108 -0
  42. package/dist/src/runtime/api/templates.js.map +1 -0
  43. package/dist/src/runtime/authAdapter.d.ts +48 -0
  44. package/dist/src/runtime/authAdapter.d.ts.map +1 -0
  45. package/dist/src/runtime/authAdapter.js +62 -0
  46. package/dist/src/runtime/authAdapter.js.map +1 -0
  47. package/dist/src/runtime/client.d.ts +24 -0
  48. package/dist/src/runtime/client.d.ts.map +1 -0
  49. package/dist/src/runtime/client.js +85 -0
  50. package/dist/src/runtime/client.js.map +1 -0
  51. package/dist/src/runtime/compatibility.d.ts +32 -0
  52. package/dist/src/runtime/compatibility.d.ts.map +1 -0
  53. package/dist/src/runtime/compatibility.js +97 -0
  54. package/dist/src/runtime/compatibility.js.map +1 -0
  55. package/dist/src/runtime/config.d.ts +16 -0
  56. package/dist/src/runtime/config.d.ts.map +1 -0
  57. package/dist/src/runtime/config.js +22 -0
  58. package/dist/src/runtime/config.js.map +1 -0
  59. package/dist/src/runtime/errors.d.ts +23 -0
  60. package/dist/src/runtime/errors.d.ts.map +1 -0
  61. package/dist/src/runtime/errors.js +50 -0
  62. package/dist/src/runtime/errors.js.map +1 -0
  63. package/dist/src/runtime/hooks/index.d.ts +9 -0
  64. package/dist/src/runtime/hooks/index.d.ts.map +1 -0
  65. package/dist/src/runtime/hooks/index.js +9 -0
  66. package/dist/src/runtime/hooks/index.js.map +1 -0
  67. package/dist/src/runtime/hooks/useComposePrompt.d.ts +13 -0
  68. package/dist/src/runtime/hooks/useComposePrompt.d.ts.map +1 -0
  69. package/dist/src/runtime/hooks/useComposePrompt.js +17 -0
  70. package/dist/src/runtime/hooks/useComposePrompt.js.map +1 -0
  71. package/dist/src/runtime/hooks/usePromptAdmin.d.ts +10 -0
  72. package/dist/src/runtime/hooks/usePromptAdmin.d.ts.map +1 -0
  73. package/dist/src/runtime/hooks/usePromptAdmin.js +33 -0
  74. package/dist/src/runtime/hooks/usePromptAdmin.js.map +1 -0
  75. package/dist/src/runtime/hooks/usePromptBlock.d.ts +18 -0
  76. package/dist/src/runtime/hooks/usePromptBlock.d.ts.map +1 -0
  77. package/dist/src/runtime/hooks/usePromptBlock.js +25 -0
  78. package/dist/src/runtime/hooks/usePromptBlock.js.map +1 -0
  79. package/dist/src/runtime/hooks/usePromptBlocks.d.ts +22 -0
  80. package/dist/src/runtime/hooks/usePromptBlocks.d.ts.map +1 -0
  81. package/dist/src/runtime/hooks/usePromptBlocks.js +53 -0
  82. package/dist/src/runtime/hooks/usePromptBlocks.js.map +1 -0
  83. package/dist/src/runtime/hooks/usePromptCategories.d.ts +20 -0
  84. package/dist/src/runtime/hooks/usePromptCategories.d.ts.map +1 -0
  85. package/dist/src/runtime/hooks/usePromptCategories.js +53 -0
  86. package/dist/src/runtime/hooks/usePromptCategories.js.map +1 -0
  87. package/dist/src/runtime/hooks/usePromptDashboard.d.ts +13 -0
  88. package/dist/src/runtime/hooks/usePromptDashboard.d.ts.map +1 -0
  89. package/dist/src/runtime/hooks/usePromptDashboard.js +11 -0
  90. package/dist/src/runtime/hooks/usePromptDashboard.js.map +1 -0
  91. package/dist/src/runtime/hooks/usePromptTemplate.d.ts +33 -0
  92. package/dist/src/runtime/hooks/usePromptTemplate.d.ts.map +1 -0
  93. package/dist/src/runtime/hooks/usePromptTemplate.js +43 -0
  94. package/dist/src/runtime/hooks/usePromptTemplate.js.map +1 -0
  95. package/dist/src/runtime/hooks/usePromptTemplates.d.ts +37 -0
  96. package/dist/src/runtime/hooks/usePromptTemplates.d.ts.map +1 -0
  97. package/dist/src/runtime/hooks/usePromptTemplates.js +106 -0
  98. package/dist/src/runtime/hooks/usePromptTemplates.js.map +1 -0
  99. package/dist/src/runtime/listParams.d.ts +27 -0
  100. package/dist/src/runtime/listParams.d.ts.map +1 -0
  101. package/dist/src/runtime/listParams.js +67 -0
  102. package/dist/src/runtime/listParams.js.map +1 -0
  103. package/dist/src/runtime/queryKeys.d.ts +25 -0
  104. package/dist/src/runtime/queryKeys.d.ts.map +1 -0
  105. package/dist/src/runtime/queryKeys.js +29 -0
  106. package/dist/src/runtime/queryKeys.js.map +1 -0
  107. package/dist/src/runtime/react/AdminPromptPanel.d.ts +21 -0
  108. package/dist/src/runtime/react/AdminPromptPanel.d.ts.map +1 -0
  109. package/dist/src/runtime/react/AdminPromptPanel.js +53 -0
  110. package/dist/src/runtime/react/AdminPromptPanel.js.map +1 -0
  111. package/dist/src/runtime/react/PromptBlockLibrary.d.ts +36 -0
  112. package/dist/src/runtime/react/PromptBlockLibrary.d.ts.map +1 -0
  113. package/dist/src/runtime/react/PromptBlockLibrary.js +122 -0
  114. package/dist/src/runtime/react/PromptBlockLibrary.js.map +1 -0
  115. package/dist/src/runtime/react/PromptComposer.d.ts +24 -0
  116. package/dist/src/runtime/react/PromptComposer.d.ts.map +1 -0
  117. package/dist/src/runtime/react/PromptComposer.js +48 -0
  118. package/dist/src/runtime/react/PromptComposer.js.map +1 -0
  119. package/dist/src/runtime/react/PromptProvider.d.ts +16 -0
  120. package/dist/src/runtime/react/PromptProvider.d.ts.map +1 -0
  121. package/dist/src/runtime/react/PromptProvider.js +79 -0
  122. package/dist/src/runtime/react/PromptProvider.js.map +1 -0
  123. package/dist/src/runtime/react/PromptQueryProvider.d.ts +8 -0
  124. package/dist/src/runtime/react/PromptQueryProvider.d.ts.map +1 -0
  125. package/dist/src/runtime/react/PromptQueryProvider.js +11 -0
  126. package/dist/src/runtime/react/PromptQueryProvider.js.map +1 -0
  127. package/dist/src/runtime/react/PromptTemplateEditor.d.ts +36 -0
  128. package/dist/src/runtime/react/PromptTemplateEditor.d.ts.map +1 -0
  129. package/dist/src/runtime/react/PromptTemplateEditor.js +141 -0
  130. package/dist/src/runtime/react/PromptTemplateEditor.js.map +1 -0
  131. package/dist/src/runtime/react/RequireSuperuser.d.ts +7 -0
  132. package/dist/src/runtime/react/RequireSuperuser.d.ts.map +1 -0
  133. package/dist/src/runtime/react/RequireSuperuser.js +10 -0
  134. package/dist/src/runtime/react/RequireSuperuser.js.map +1 -0
  135. package/dist/src/runtime/react/default-ui/index.d.ts +17 -0
  136. package/dist/src/runtime/react/default-ui/index.d.ts.map +1 -0
  137. package/dist/src/runtime/react/default-ui/index.js +23 -0
  138. package/dist/src/runtime/react/default-ui/index.js.map +1 -0
  139. package/dist/src/runtime/react/index.d.ts +8 -0
  140. package/dist/src/runtime/react/index.d.ts.map +1 -0
  141. package/dist/src/runtime/react/index.js +8 -0
  142. package/dist/src/runtime/react/index.js.map +1 -0
  143. package/dist/src/runtime/routes.d.ts +17 -0
  144. package/dist/src/runtime/routes.d.ts.map +1 -0
  145. package/dist/src/runtime/routes.js +33 -0
  146. package/dist/src/runtime/routes.js.map +1 -0
  147. package/dist/src/runtime/schemas.d.ts +286 -0
  148. package/dist/src/runtime/schemas.d.ts.map +1 -0
  149. package/dist/src/runtime/schemas.js +172 -0
  150. package/dist/src/runtime/schemas.js.map +1 -0
  151. package/package.json +99 -0
  152. package/registry/r/admin-prompt-dashboard.json +23 -0
  153. package/registry/r/prompt-block-editor.json +20 -0
  154. package/registry/r/prompt-dashboard-overview.json +22 -0
  155. package/registry/r/prompt-maintenance-panel.json +23 -0
  156. package/registry/r/prompt-template-editor.json +20 -0
  157. package/registry/r/registry.json +37 -0
  158. package/registry.json +86 -0
  159. package/src/routes/admin/prompts.astro +11 -0
  160. package/src/routes/blocks.astro +11 -0
  161. package/src/routes/composer.astro +12 -0
  162. package/src/routes/templates.astro +11 -0
  163. package/src/scaffold/styles/prompt.css +9 -0
@@ -0,0 +1,25 @@
1
+ import { useQuery } from "@tanstack/react-query";
2
+ import { getBlock, getBlockBySlug } from "../api/blocks.js";
3
+ import { promptKeys } from "../queryKeys.js";
4
+ export function usePromptBlock(params) {
5
+ const queryKey = "blockId" in params && params.blockId !== undefined
6
+ ? promptKeys.block(params.blockId)
7
+ : "slug" in params && params.slug !== undefined
8
+ ? promptKeys.blockSlug(params.slug)
9
+ : ["prompt", "block", "none"];
10
+ return useQuery({
11
+ queryKey,
12
+ queryFn: () => {
13
+ if ("blockId" in params && params.blockId !== undefined) {
14
+ return getBlock(params.blockId);
15
+ }
16
+ if ("slug" in params && params.slug !== undefined) {
17
+ return getBlockBySlug(params.slug);
18
+ }
19
+ return Promise.resolve(null);
20
+ },
21
+ enabled: ("blockId" in params && params.blockId !== undefined) ||
22
+ ("slug" in params && params.slug !== undefined)
23
+ });
24
+ }
25
+ //# sourceMappingURL=usePromptBlock.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usePromptBlock.js","sourceRoot":"","sources":["../../../../src/runtime/hooks/usePromptBlock.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAK7C,MAAM,UAAU,cAAc,CAAC,MAA4B;IACzD,MAAM,QAAQ,GACZ,SAAS,IAAI,MAAM,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS;QACjD,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC;QAClC,CAAC,CAAC,MAAM,IAAI,MAAM,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS;YAC7C,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC;YACnC,CAAC,CAAC,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,CAAU,CAAC;IAE7C,OAAO,QAAQ,CAAoC;QACjD,QAAQ;QACR,OAAO,EAAE,GAAG,EAAE;YACZ,IAAI,SAAS,IAAI,MAAM,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;gBACxD,OAAO,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAClC,CAAC;YACD,IAAI,MAAM,IAAI,MAAM,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBAClD,OAAO,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACrC,CAAC;YACD,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC/B,CAAC;QACD,OAAO,EACL,CAAC,SAAS,IAAI,MAAM,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,CAAC;YACrD,CAAC,MAAM,IAAI,MAAM,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,CAAC;KAClD,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,22 @@
1
+ import { type UseMutationResult } from "@tanstack/react-query";
2
+ import type { PromptBlockCreate, PromptBlockListParams, PromptBlockPublic, PromptBlocksPublic, PromptBlockUpdate } from "../schemas.js";
3
+ type ListResult = {
4
+ data: PromptBlocksPublic | undefined;
5
+ loading: boolean;
6
+ error: unknown;
7
+ refresh: () => Promise<void>;
8
+ };
9
+ type CreateMutation = UseMutationResult<PromptBlockPublic, unknown, PromptBlockCreate>;
10
+ type UpdateMutation = UseMutationResult<PromptBlockPublic, unknown, {
11
+ blockId: number;
12
+ body: PromptBlockUpdate;
13
+ }>;
14
+ type DeleteMutation = UseMutationResult<void, unknown, number>;
15
+ export type UsePromptBlocks = ListResult & {
16
+ createMutation: CreateMutation;
17
+ updateMutation: UpdateMutation;
18
+ deleteMutation: DeleteMutation;
19
+ };
20
+ export declare function usePromptBlocks(params?: PromptBlockListParams): UsePromptBlocks;
21
+ export {};
22
+ //# sourceMappingURL=usePromptBlocks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usePromptBlocks.d.ts","sourceRoot":"","sources":["../../../../src/runtime/hooks/usePromptBlocks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyC,KAAK,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAItG,OAAO,KAAK,EACV,iBAAiB,EACjB,qBAAqB,EACrB,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EAClB,MAAM,eAAe,CAAC;AAGvB,KAAK,UAAU,GAAG;IAChB,IAAI,EAAE,kBAAkB,GAAG,SAAS,CAAC;IACrC,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,OAAO,CAAC;IACf,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9B,CAAC;AACF,KAAK,cAAc,GAAG,iBAAiB,CAAC,iBAAiB,EAAE,OAAO,EAAE,iBAAiB,CAAC,CAAC;AACvF,KAAK,cAAc,GAAG,iBAAiB,CACrC,iBAAiB,EACjB,OAAO,EACP;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,iBAAiB,CAAA;CAAE,CAC7C,CAAC;AACF,KAAK,cAAc,GAAG,iBAAiB,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;AAE/D,MAAM,MAAM,eAAe,GAAG,UAAU,GAAG;IACzC,cAAc,EAAE,cAAc,CAAC;IAC/B,cAAc,EAAE,cAAc,CAAC;IAC/B,cAAc,EAAE,cAAc,CAAC;CAChC,CAAC;AAEF,wBAAgB,eAAe,CAAC,MAAM,GAAE,qBAA0B,GAAG,eAAe,CAwDnF"}
@@ -0,0 +1,53 @@
1
+ import { useMutation, useQuery, useQueryClient } from "@tanstack/react-query";
2
+ import { useCallback } from "react";
3
+ import { createBlock, deleteBlock, listBlocks, updateBlock } from "../api/blocks.js";
4
+ import { promptKeys } from "../queryKeys.js";
5
+ import { usePromptContext } from "../react/PromptProvider.js";
6
+ export function usePromptBlocks(params = {}) {
7
+ const queryClient = useQueryClient();
8
+ const { isSuperuser } = usePromptContext();
9
+ const queryKey = promptKeys.blocks(params);
10
+ const query = useQuery({
11
+ queryKey,
12
+ queryFn: () => listBlocks(params),
13
+ enabled: isSuperuser ? isSuperuser : true
14
+ });
15
+ const createMutation = useMutation({
16
+ mutationFn: (body) => createBlock(body),
17
+ onSuccess: async () => {
18
+ await queryClient.invalidateQueries({ queryKey: promptKeys.blockLists(), exact: false });
19
+ }
20
+ });
21
+ const updateMutation = useMutation({
22
+ mutationFn: ({ blockId, body }) => updateBlock(blockId, body),
23
+ onSuccess: async (_data, variables) => {
24
+ await Promise.all([
25
+ queryClient.invalidateQueries({ queryKey: promptKeys.blockLists(), exact: false }),
26
+ queryClient.invalidateQueries({ queryKey: promptKeys.block(variables.blockId), exact: true })
27
+ ]);
28
+ }
29
+ });
30
+ const deleteMutation = useMutation({
31
+ mutationFn: (blockId) => deleteBlock(blockId).then(() => undefined),
32
+ onSuccess: async (_data, blockId) => {
33
+ await Promise.all([
34
+ queryClient.invalidateQueries({ queryKey: promptKeys.blockLists(), exact: false }),
35
+ queryClient.invalidateQueries({ queryKey: promptKeys.block(blockId), exact: true })
36
+ ]);
37
+ }
38
+ });
39
+ const refetch = query.refetch;
40
+ const refresh = useCallback(async () => {
41
+ await refetch();
42
+ }, [refetch]);
43
+ return {
44
+ data: query.data,
45
+ loading: query.isFetching,
46
+ error: query.error ?? null,
47
+ refresh,
48
+ createMutation,
49
+ updateMutation,
50
+ deleteMutation
51
+ };
52
+ }
53
+ //# sourceMappingURL=usePromptBlocks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usePromptBlocks.js","sourceRoot":"","sources":["../../../../src/runtime/hooks/usePromptBlocks.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import { type UseMutationResult } from "@tanstack/react-query";
2
+ import type { CategoriesPublic, CategoryCreate, CategoryListParams, CategoryPublic, CategoryUpdate } from "../schemas.js";
3
+ type CreateMutation = UseMutationResult<CategoryPublic, unknown, CategoryCreate>;
4
+ type UpdateMutation = UseMutationResult<CategoryPublic, unknown, {
5
+ categoryId: number;
6
+ body: CategoryUpdate;
7
+ }>;
8
+ type DeleteMutation = UseMutationResult<void, unknown, number>;
9
+ export type UsePromptCategories = {
10
+ data: CategoriesPublic | null | undefined;
11
+ loading: boolean;
12
+ error: unknown;
13
+ refresh: () => Promise<void>;
14
+ createMutation: CreateMutation;
15
+ updateMutation: UpdateMutation;
16
+ deleteMutation: DeleteMutation;
17
+ };
18
+ export declare function usePromptCategories(params?: CategoryListParams): UsePromptCategories;
19
+ export {};
20
+ //# sourceMappingURL=usePromptCategories.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usePromptCategories.d.ts","sourceRoot":"","sources":["../../../../src/runtime/hooks/usePromptCategories.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,KAAK,iBAAiB,EACvB,MAAM,uBAAuB,CAAC;AAS/B,OAAO,KAAK,EACV,gBAAgB,EAChB,cAAc,EACd,kBAAkB,EAClB,cAAc,EACd,cAAc,EACf,MAAM,eAAe,CAAC;AAEvB,KAAK,cAAc,GAAG,iBAAiB,CAAC,cAAc,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC;AACjF,KAAK,cAAc,GAAG,iBAAiB,CACrC,cAAc,EACd,OAAO,EACP;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,cAAc,CAAA;CAAE,CAC7C,CAAC;AACF,KAAK,cAAc,GAAG,iBAAiB,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;AAE/D,MAAM,MAAM,mBAAmB,GAAG;IAChC,IAAI,EAAE,gBAAgB,GAAG,IAAI,GAAG,SAAS,CAAC;IAC1C,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,OAAO,CAAC;IACf,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7B,cAAc,EAAE,cAAc,CAAC;IAC/B,cAAc,EAAE,cAAc,CAAC;IAC/B,cAAc,EAAE,cAAc,CAAC;CAChC,CAAC;AAEF,wBAAgB,mBAAmB,CAAC,MAAM,GAAE,kBAAuB,GAAG,mBAAmB,CAyDxF"}
@@ -0,0 +1,53 @@
1
+ import { useMutation, useQuery, useQueryClient } from "@tanstack/react-query";
2
+ import { useCallback } from "react";
3
+ import { createCategory, deleteCategory, listCategories, updateCategory } from "../api/categories.js";
4
+ import { promptKeys } from "../queryKeys.js";
5
+ export function usePromptCategories(params = {}) {
6
+ const queryClient = useQueryClient();
7
+ const queryKey = promptKeys.categories(params);
8
+ const query = useQuery({
9
+ queryKey,
10
+ queryFn: () => listCategories(params)
11
+ });
12
+ const createMutation = useMutation({
13
+ mutationFn: createCategory,
14
+ onSuccess: async () => {
15
+ await queryClient.invalidateQueries({ queryKey: promptKeys.categoryLists(), exact: false });
16
+ }
17
+ });
18
+ const updateMutation = useMutation({
19
+ mutationFn: ({ categoryId, body }) => updateCategory(categoryId, body),
20
+ onSuccess: async (_data, variables) => {
21
+ await Promise.all([
22
+ queryClient.invalidateQueries({ queryKey: promptKeys.categoryLists(), exact: false }),
23
+ queryClient.invalidateQueries({
24
+ queryKey: promptKeys.category(variables.categoryId),
25
+ exact: true
26
+ })
27
+ ]);
28
+ }
29
+ });
30
+ const deleteMutation = useMutation({
31
+ mutationFn: (categoryId) => deleteCategory(categoryId).then(() => undefined),
32
+ onSuccess: async (_data, categoryId) => {
33
+ await Promise.all([
34
+ queryClient.invalidateQueries({ queryKey: promptKeys.categoryLists(), exact: false }),
35
+ queryClient.invalidateQueries({ queryKey: promptKeys.category(categoryId), exact: true })
36
+ ]);
37
+ }
38
+ });
39
+ const refetch = query.refetch;
40
+ const refresh = useCallback(async () => {
41
+ await refetch();
42
+ }, [refetch]);
43
+ return {
44
+ data: query.data,
45
+ loading: query.isFetching,
46
+ error: query.error ?? null,
47
+ refresh,
48
+ createMutation,
49
+ updateMutation,
50
+ deleteMutation
51
+ };
52
+ }
53
+ //# sourceMappingURL=usePromptCategories.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usePromptCategories.js","sourceRoot":"","sources":["../../../../src/runtime/hooks/usePromptCategories.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,WAAW,EACX,QAAQ,EACR,cAAc,EAEf,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AACpC,OAAO,EACL,cAAc,EACd,cAAc,EACd,cAAc,EACd,cAAc,EACf,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AA2B7C,MAAM,UAAU,mBAAmB,CAAC,SAA6B,EAAE;IACjE,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;IACrC,MAAM,QAAQ,GAAG,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;IAE/C,MAAM,KAAK,GAAG,QAAQ,CAAmC;QACvD,QAAQ;QACR,OAAO,EAAE,GAAG,EAAE,CAAC,cAAc,CAAC,MAAM,CAAC;KACtC,CAAC,CAAC;IAEH,MAAM,cAAc,GAAG,WAAW,CAA0C;QAC1E,UAAU,EAAE,cAAc;QAC1B,SAAS,EAAE,KAAK,IAAI,EAAE;YACpB,MAAM,WAAW,CAAC,iBAAiB,CAAC,EAAE,QAAQ,EAAE,UAAU,CAAC,aAAa,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;QAC9F,CAAC;KACF,CAAC,CAAC;IAEH,MAAM,cAAc,GAAG,WAAW,CAIhC;QACA,UAAU,EAAE,CAAC,EAAE,UAAU,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,cAAc,CAAC,UAAU,EAAE,IAAI,CAAC;QACtE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE;YACpC,MAAM,OAAO,CAAC,GAAG,CAAC;gBAChB,WAAW,CAAC,iBAAiB,CAAC,EAAE,QAAQ,EAAE,UAAU,CAAC,aAAa,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;gBACrF,WAAW,CAAC,iBAAiB,CAAC;oBAC5B,QAAQ,EAAE,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,UAAU,CAAC;oBACnD,KAAK,EAAE,IAAI;iBACZ,CAAC;aACH,CAAC,CAAC;QACL,CAAC;KACF,CAAC,CAAC;IAEH,MAAM,cAAc,GAAG,WAAW,CAAwB;QACxD,UAAU,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,SAAS,CAAC;QAC5E,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE;YACrC,MAAM,OAAO,CAAC,GAAG,CAAC;gBAChB,WAAW,CAAC,iBAAiB,CAAC,EAAE,QAAQ,EAAE,UAAU,CAAC,aAAa,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;gBACrF,WAAW,CAAC,iBAAiB,CAAC,EAAE,QAAQ,EAAE,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;aAC1F,CAAC,CAAC;QACL,CAAC;KACF,CAAC,CAAC;IAEH,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;IAC9B,MAAM,OAAO,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;QACrC,MAAM,OAAO,EAAE,CAAC;IAClB,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAEd,OAAO;QACL,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,OAAO,EAAE,KAAK,CAAC,UAAU;QACzB,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,IAAI;QAC1B,OAAO;QACP,cAAc;QACd,cAAc;QACd,cAAc;KACf,CAAC;AACJ,CAAC"}
@@ -0,0 +1,13 @@
1
+ export declare function usePromptDashboardActivity(scope?: "all" | "current"): import("@tanstack/react-query").UseQueryResult<NoInfer<{
2
+ nb_users: number;
3
+ activity: {
4
+ min: number;
5
+ max: number;
6
+ activity: {
7
+ model: string;
8
+ updated: number;
9
+ added: number;
10
+ }[];
11
+ };
12
+ }>, unknown>;
13
+ //# sourceMappingURL=usePromptDashboard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usePromptDashboard.d.ts","sourceRoot":"","sources":["../../../../src/runtime/hooks/usePromptDashboard.ts"],"names":[],"mappings":"AAKA,wBAAgB,0BAA0B,CAAC,KAAK,GAAE,KAAK,GAAG,SAAiB;;;;;;;;;;;aAO1E"}
@@ -0,0 +1,11 @@
1
+ import { useQuery } from "@tanstack/react-query";
2
+ import { getActivityAll, getActivityCurrent } from "../api/dashboard.js";
3
+ import { promptKeys } from "../queryKeys.js";
4
+ export function usePromptDashboardActivity(scope = "all") {
5
+ const queryKey = scope === "current" ? promptKeys.dashboardActivityCurrent() : promptKeys.dashboardActivity();
6
+ return useQuery({
7
+ queryKey,
8
+ queryFn: () => (scope === "current" ? getActivityCurrent() : getActivityAll())
9
+ });
10
+ }
11
+ //# sourceMappingURL=usePromptDashboard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usePromptDashboard.js","sourceRoot":"","sources":["../../../../src/runtime/hooks/usePromptDashboard.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AACzE,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAG7C,MAAM,UAAU,0BAA0B,CAAC,QAA2B,KAAK;IACzE,MAAM,QAAQ,GACZ,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC,wBAAwB,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC;IAC/F,OAAO,QAAQ,CAAyB;QACtC,QAAQ;QACR,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,kBAAkB,EAAE,CAAC,CAAC,CAAC,cAAc,EAAE,CAAC;KAC/E,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,33 @@
1
+ import type { TemplateBlockPublic } from "../schemas.js";
2
+ type UsePromptTemplateParams = {
3
+ templateId?: number;
4
+ } | {
5
+ slug?: string;
6
+ };
7
+ export declare function usePromptTemplate(params: UsePromptTemplateParams): import("@tanstack/react-query").UseQueryResult<NoInfer<{
8
+ id: number;
9
+ name: string;
10
+ slug: string;
11
+ description: string | null;
12
+ is_public: boolean;
13
+ blocks: {
14
+ id: number;
15
+ block_id: number;
16
+ template_id: number;
17
+ name: string;
18
+ slug: string;
19
+ description: string | null;
20
+ content: string;
21
+ type: "format" | "role" | "task" | "context" | "instruction" | "example";
22
+ is_dynamic: boolean;
23
+ is_public: boolean;
24
+ position: number;
25
+ }[];
26
+ } | null>, unknown>;
27
+ export declare function usePromptTemplateBlocks(templateId: number | undefined): {
28
+ blocks: TemplateBlockPublic[];
29
+ loading: boolean;
30
+ error: unknown;
31
+ };
32
+ export {};
33
+ //# sourceMappingURL=usePromptTemplate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usePromptTemplate.d.ts","sourceRoot":"","sources":["../../../../src/runtime/hooks/usePromptTemplate.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAwB,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAE/E,KAAK,uBAAuB,GAAG;IAAE,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAE3E,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,uBAAuB;;;;;;;;;;;;;;;;;;;oBAwBhE;AAED,wBAAgB,uBAAuB,CAAC,UAAU,EAAE,MAAM,GAAG,SAAS,GAAG;IACvE,MAAM,EAAE,mBAAmB,EAAE,CAAC;IAC9B,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,OAAO,CAAC;CAChB,CAcA"}
@@ -0,0 +1,43 @@
1
+ import { useQuery } from "@tanstack/react-query";
2
+ import { getTemplateBlocks, getTemplate, getTemplateBySlug } from "../api/templates.js";
3
+ import { promptKeys } from "../queryKeys.js";
4
+ export function usePromptTemplate(params) {
5
+ const isId = "templateId" in params && params.templateId !== undefined;
6
+ const isSlug = "slug" in params && params.slug !== undefined;
7
+ const enabled = isId || isSlug;
8
+ const queryKey = isId
9
+ ? promptKeys.template(params.templateId)
10
+ : isSlug
11
+ ? promptKeys.templateSlug(params.slug)
12
+ : ["prompt", "template", "none"];
13
+ return useQuery({
14
+ queryKey,
15
+ queryFn: () => {
16
+ if ("templateId" in params && params.templateId !== undefined) {
17
+ return getTemplate(params.templateId);
18
+ }
19
+ if ("slug" in params && params.slug !== undefined) {
20
+ return getTemplateBySlug(params.slug);
21
+ }
22
+ return Promise.resolve(null);
23
+ },
24
+ enabled
25
+ });
26
+ }
27
+ export function usePromptTemplateBlocks(templateId) {
28
+ const query = useQuery({
29
+ queryKey: promptKeys.templateBlocks(templateId ?? -1),
30
+ queryFn: () => {
31
+ if (templateId === undefined)
32
+ return Promise.resolve([]);
33
+ return getTemplateBlocks(templateId);
34
+ },
35
+ enabled: templateId !== undefined
36
+ });
37
+ return {
38
+ blocks: query.data ?? [],
39
+ loading: query.isFetching,
40
+ error: query.error ?? null
41
+ };
42
+ }
43
+ //# sourceMappingURL=usePromptTemplate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usePromptTemplate.js","sourceRoot":"","sources":["../../../../src/runtime/hooks/usePromptTemplate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxF,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAK7C,MAAM,UAAU,iBAAiB,CAAC,MAA+B;IAC/D,MAAM,IAAI,GAAG,YAAY,IAAI,MAAM,IAAI,MAAM,CAAC,UAAU,KAAK,SAAS,CAAC;IACvE,MAAM,MAAM,GAAG,MAAM,IAAI,MAAM,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,CAAC;IAC7D,MAAM,OAAO,GAAG,IAAI,IAAI,MAAM,CAAC;IAE/B,MAAM,QAAQ,GAAG,IAAI;QACnB,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAE,MAAiC,CAAC,UAAU,CAAC;QACpE,CAAC,CAAC,MAAM;YACN,CAAC,CAAC,UAAU,CAAC,YAAY,CAAE,MAA2B,CAAC,IAAI,CAAC;YAC5D,CAAC,CAAE,CAAC,QAAQ,EAAE,UAAU,EAAE,MAAM,CAAW,CAAC;IAEhD,OAAO,QAAQ,CAAuC;QACpD,QAAQ;QACR,OAAO,EAAE,GAAG,EAAE;YACZ,IAAI,YAAY,IAAI,MAAM,IAAI,MAAM,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;gBAC9D,OAAO,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YACxC,CAAC;YACD,IAAI,MAAM,IAAI,MAAM,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBAClD,OAAO,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACxC,CAAC;YACD,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAC/B,CAAC;QACD,OAAO;KACR,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,UAA8B;IAKpE,MAAM,KAAK,GAAG,QAAQ,CAAiC;QACrD,QAAQ,EAAE,UAAU,CAAC,cAAc,CAAC,UAAU,IAAI,CAAC,CAAC,CAAC;QACrD,OAAO,EAAE,GAAG,EAAE;YACZ,IAAI,UAAU,KAAK,SAAS;gBAAE,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YACzD,OAAO,iBAAiB,CAAC,UAAU,CAAC,CAAC;QACvC,CAAC;QACD,OAAO,EAAE,UAAU,KAAK,SAAS;KAClC,CAAC,CAAC;IACH,OAAO;QACL,MAAM,EAAE,KAAK,CAAC,IAAI,IAAI,EAAE;QACxB,OAAO,EAAE,KAAK,CAAC,UAAU;QACzB,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,IAAI;KAC3B,CAAC;AACJ,CAAC"}
@@ -0,0 +1,37 @@
1
+ import { type UseMutationResult } from "@tanstack/react-query";
2
+ import type { PromptTemplateCreate, PromptTemplateListParams, PromptTemplatePublic, PromptTemplatesPublic, PromptTemplateUpdate } from "../schemas.js";
3
+ type CreateMutation = UseMutationResult<PromptTemplatePublic, unknown, PromptTemplateCreate>;
4
+ type UpdateMutation = UseMutationResult<PromptTemplatePublic, unknown, {
5
+ templateId: number;
6
+ body: PromptTemplateUpdate;
7
+ }>;
8
+ type DeleteMutation = UseMutationResult<void, unknown, number>;
9
+ type AddBlockMutation = UseMutationResult<unknown, unknown, {
10
+ templateId: number;
11
+ blockId: number;
12
+ position?: number;
13
+ }>;
14
+ type SetPositionMutation = UseMutationResult<unknown, unknown, {
15
+ templateId: number;
16
+ blockId: number;
17
+ position: number;
18
+ }>;
19
+ type RemoveBlockMutation = UseMutationResult<unknown, unknown, {
20
+ templateId: number;
21
+ blockId: number;
22
+ }>;
23
+ export type UsePromptTemplates = {
24
+ data: PromptTemplatesPublic | undefined;
25
+ loading: boolean;
26
+ error: unknown;
27
+ refresh: () => Promise<void>;
28
+ createMutation: CreateMutation;
29
+ updateMutation: UpdateMutation;
30
+ deleteMutation: DeleteMutation;
31
+ addBlockMutation: AddBlockMutation;
32
+ setPositionMutation: SetPositionMutation;
33
+ removeBlockMutation: RemoveBlockMutation;
34
+ };
35
+ export declare function usePromptTemplates(params?: PromptTemplateListParams): UsePromptTemplates;
36
+ export {};
37
+ //# sourceMappingURL=usePromptTemplates.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usePromptTemplates.d.ts","sourceRoot":"","sources":["../../../../src/runtime/hooks/usePromptTemplates.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyC,KAAK,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAYtG,OAAO,KAAK,EACV,oBAAoB,EACpB,wBAAwB,EACxB,oBAAoB,EACpB,qBAAqB,EACrB,oBAAoB,EACrB,MAAM,eAAe,CAAC;AAGvB,KAAK,cAAc,GAAG,iBAAiB,CAAC,oBAAoB,EAAE,OAAO,EAAE,oBAAoB,CAAC,CAAC;AAC7F,KAAK,cAAc,GAAG,iBAAiB,CACrC,oBAAoB,EACpB,OAAO,EACP;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,oBAAoB,CAAA;CAAE,CACnD,CAAC;AACF,KAAK,cAAc,GAAG,iBAAiB,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;AAC/D,KAAK,gBAAgB,GAAG,iBAAiB,CACvC,OAAO,EACP,OAAO,EACP;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,CAC3D,CAAC;AACF,KAAK,mBAAmB,GAAG,iBAAiB,CAC1C,OAAO,EACP,OAAO,EACP;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAC1D,CAAC;AACF,KAAK,mBAAmB,GAAG,iBAAiB,CAAC,OAAO,EAAE,OAAO,EAAE;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAExG,MAAM,MAAM,kBAAkB,GAAG;IAC/B,IAAI,EAAE,qBAAqB,GAAG,SAAS,CAAC;IACxC,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,OAAO,CAAC;IACf,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7B,cAAc,EAAE,cAAc,CAAC;IAC/B,cAAc,EAAE,cAAc,CAAC;IAC/B,cAAc,EAAE,cAAc,CAAC;IAC/B,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,mBAAmB,EAAE,mBAAmB,CAAC;IACzC,mBAAmB,EAAE,mBAAmB,CAAC;CAC1C,CAAC;AAEF,wBAAgB,kBAAkB,CAAC,MAAM,GAAE,wBAA6B,GAAG,kBAAkB,CA8H5F"}
@@ -0,0 +1,106 @@
1
+ import { useMutation, useQuery, useQueryClient } from "@tanstack/react-query";
2
+ import { useCallback } from "react";
3
+ import { addTemplateBlock, createTemplate, deleteTemplate, listTemplates, removeTemplateBlock, setTemplateBlockPosition, updateTemplate } from "../api/templates.js";
4
+ import { promptKeys } from "../queryKeys.js";
5
+ import { usePromptContext } from "../react/PromptProvider.js";
6
+ export function usePromptTemplates(params = {}) {
7
+ const queryClient = useQueryClient();
8
+ const { isSuperuser } = usePromptContext();
9
+ const queryKey = promptKeys.templates(params);
10
+ const query = useQuery({
11
+ queryKey,
12
+ queryFn: () => listTemplates(params),
13
+ enabled: isSuperuser ? isSuperuser : true
14
+ });
15
+ const createMutation = useMutation({
16
+ mutationFn: createTemplate,
17
+ onSuccess: async () => {
18
+ await queryClient.invalidateQueries({ queryKey: promptKeys.templateLists(), exact: false });
19
+ }
20
+ });
21
+ const updateMutation = useMutation({
22
+ mutationFn: ({ templateId, body }) => updateTemplate(templateId, body),
23
+ onSuccess: async (_data, variables) => {
24
+ await Promise.all([
25
+ queryClient.invalidateQueries({ queryKey: promptKeys.templateLists(), exact: false }),
26
+ queryClient.invalidateQueries({
27
+ queryKey: promptKeys.template(variables.templateId),
28
+ exact: true
29
+ })
30
+ ]);
31
+ }
32
+ });
33
+ const deleteMutation = useMutation({
34
+ mutationFn: (templateId) => deleteTemplate(templateId).then(() => undefined),
35
+ onSuccess: async (_data, templateId) => {
36
+ await Promise.all([
37
+ queryClient.invalidateQueries({ queryKey: promptKeys.templateLists(), exact: false }),
38
+ queryClient.invalidateQueries({ queryKey: promptKeys.template(templateId), exact: true })
39
+ ]);
40
+ }
41
+ });
42
+ const addBlockMutation = useMutation({
43
+ mutationFn: ({ templateId, blockId, position }) => addTemplateBlock(templateId, blockId, position ?? 0),
44
+ onSuccess: async (_data, variables) => {
45
+ await Promise.all([
46
+ queryClient.invalidateQueries({ queryKey: promptKeys.templateLists(), exact: false }),
47
+ queryClient.invalidateQueries({
48
+ queryKey: promptKeys.template(variables.templateId),
49
+ exact: true
50
+ }),
51
+ queryClient.invalidateQueries({
52
+ queryKey: promptKeys.templateBlocks(variables.templateId),
53
+ exact: true
54
+ })
55
+ ]);
56
+ }
57
+ });
58
+ const setPositionMutation = useMutation({
59
+ mutationFn: ({ templateId, blockId, position }) => setTemplateBlockPosition(templateId, blockId, position),
60
+ onSuccess: async (_data, variables) => {
61
+ await Promise.all([
62
+ queryClient.invalidateQueries({
63
+ queryKey: promptKeys.template(variables.templateId),
64
+ exact: true
65
+ }),
66
+ queryClient.invalidateQueries({
67
+ queryKey: promptKeys.templateBlocks(variables.templateId),
68
+ exact: true
69
+ })
70
+ ]);
71
+ }
72
+ });
73
+ const removeBlockMutation = useMutation({
74
+ mutationFn: ({ templateId, blockId }) => removeTemplateBlock(templateId, blockId),
75
+ onSuccess: async (_data, variables) => {
76
+ await Promise.all([
77
+ queryClient.invalidateQueries({ queryKey: promptKeys.templateLists(), exact: false }),
78
+ queryClient.invalidateQueries({
79
+ queryKey: promptKeys.template(variables.templateId),
80
+ exact: true
81
+ }),
82
+ queryClient.invalidateQueries({
83
+ queryKey: promptKeys.templateBlocks(variables.templateId),
84
+ exact: true
85
+ })
86
+ ]);
87
+ }
88
+ });
89
+ const refetch = query.refetch;
90
+ const refresh = useCallback(async () => {
91
+ await refetch();
92
+ }, [refetch]);
93
+ return {
94
+ data: query.data,
95
+ loading: query.isFetching,
96
+ error: query.error ?? null,
97
+ refresh,
98
+ createMutation,
99
+ updateMutation,
100
+ deleteMutation,
101
+ addBlockMutation,
102
+ setPositionMutation,
103
+ removeBlockMutation
104
+ };
105
+ }
106
+ //# sourceMappingURL=usePromptTemplates.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usePromptTemplates.js","sourceRoot":"","sources":["../../../../src/runtime/hooks/usePromptTemplates.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ import { z } from "zod";
2
+ export declare const listSortDirections: readonly ["asc", "desc"];
3
+ export type ListSortDirection = (typeof listSortDirections)[number];
4
+ export type ListParamPrimitive = string | number | boolean | null | undefined;
5
+ export type ListParamRecord = Record<string, ListParamPrimitive | readonly ListParamPrimitive[]>;
6
+ export type ListParamSource = URLSearchParams | ListParamRecord;
7
+ export interface ListParams<TSort extends string> {
8
+ page: number;
9
+ pageSize: number;
10
+ q: string;
11
+ sort: TSort;
12
+ order: ListSortDirection;
13
+ }
14
+ export interface MakeListSchemaOptions<TSort extends string> {
15
+ allowedSorts: readonly [TSort, ...TSort[]];
16
+ allowedPageSizes: readonly [number, ...number[]];
17
+ defaultSort?: TSort;
18
+ defaultOrder?: ListSortDirection;
19
+ defaultPage?: number;
20
+ defaultPageSize?: number;
21
+ }
22
+ export type ListParamsSchema<TSort extends string> = z.ZodType<ListParams<TSort>>;
23
+ export declare function makeListSchema<TSort extends string>(options: MakeListSchemaOptions<TSort>): ListParamsSchema<TSort>;
24
+ export declare function parseListUrlParams<TSort extends string>(schema: ListParamsSchema<TSort>, source: ListParamSource): ListParams<TSort>;
25
+ export declare function mergeAndNormalize<TSort extends string>(schema: ListParamsSchema<TSort>, current: ListParamSource, patch: ListParamSource): ListParams<TSort>;
26
+ export declare function stringifyListUrlParams<TSort extends string>(params: ListParams<TSort>): string;
27
+ //# sourceMappingURL=listParams.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"listParams.d.ts","sourceRoot":"","sources":["../../../src/runtime/listParams.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,kBAAkB,0BAA2B,CAAC;AAE3D,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,kBAAkB,CAAC,CAAC,MAAM,CAAC,CAAC;AACpE,MAAM,MAAM,kBAAkB,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,SAAS,CAAC;AAC9E,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,kBAAkB,GAAG,SAAS,kBAAkB,EAAE,CAAC,CAAC;AACjG,MAAM,MAAM,eAAe,GAAG,eAAe,GAAG,eAAe,CAAC;AAEhE,MAAM,WAAW,UAAU,CAAC,KAAK,SAAS,MAAM;IAC9C,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,CAAC,EAAE,MAAM,CAAC;IACV,IAAI,EAAE,KAAK,CAAC;IACZ,KAAK,EAAE,iBAAiB,CAAC;CAC1B;AAED,MAAM,WAAW,qBAAqB,CAAC,KAAK,SAAS,MAAM;IACzD,YAAY,EAAE,SAAS,CAAC,KAAK,EAAE,GAAG,KAAK,EAAE,CAAC,CAAC;IAC3C,gBAAgB,EAAE,SAAS,CAAC,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC;IACjD,WAAW,CAAC,EAAE,KAAK,CAAC;IACpB,YAAY,CAAC,EAAE,iBAAiB,CAAC;IACjC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,MAAM,gBAAgB,CAAC,KAAK,SAAS,MAAM,IAAI,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;AAmClF,wBAAgB,cAAc,CAAC,KAAK,SAAS,MAAM,EACjD,OAAO,EAAE,qBAAqB,CAAC,KAAK,CAAC,GACpC,gBAAgB,CAAC,KAAK,CAAC,CA4BzB;AAED,wBAAgB,kBAAkB,CAAC,KAAK,SAAS,MAAM,EACrD,MAAM,EAAE,gBAAgB,CAAC,KAAK,CAAC,EAC/B,MAAM,EAAE,eAAe,GACtB,UAAU,CAAC,KAAK,CAAC,CAEnB;AAED,wBAAgB,iBAAiB,CAAC,KAAK,SAAS,MAAM,EACpD,MAAM,EAAE,gBAAgB,CAAC,KAAK,CAAC,EAC/B,OAAO,EAAE,eAAe,EACxB,KAAK,EAAE,eAAe,GACrB,UAAU,CAAC,KAAK,CAAC,CAEnB;AAED,wBAAgB,sBAAsB,CAAC,KAAK,SAAS,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC,KAAK,CAAC,GAAG,MAAM,CAU9F"}
@@ -0,0 +1,67 @@
1
+ import { z } from "zod";
2
+ export const listSortDirections = ["asc", "desc"];
3
+ const coerceNumber = (value) => {
4
+ if (typeof value === "number") {
5
+ return value;
6
+ }
7
+ if (typeof value === "string" && value.trim() !== "") {
8
+ return Number(value);
9
+ }
10
+ return value;
11
+ };
12
+ const coerceOrder = (value) => typeof value === "string" ? value.toLowerCase() : value;
13
+ const normalizeSearch = (value) => typeof value === "string" ? value.trim().replace(/\s+/g, " ") : "";
14
+ const firstRecordValue = (value) => {
15
+ if (Array.isArray(value)) {
16
+ return value.find((item) => item != null);
17
+ }
18
+ return value;
19
+ };
20
+ const toPlainParams = (source) => {
21
+ if (source instanceof URLSearchParams) {
22
+ return Object.fromEntries(source.entries());
23
+ }
24
+ return Object.fromEntries(Object.entries(source).map(([key, value]) => [key, firstRecordValue(value)]));
25
+ };
26
+ export function makeListSchema(options) {
27
+ const defaultSort = options.defaultSort ?? options.allowedSorts[0];
28
+ const defaultOrder = options.defaultOrder ?? "desc";
29
+ const defaultPage = options.defaultPage ?? 1;
30
+ const defaultPageSize = options.defaultPageSize ?? options.allowedPageSizes[0];
31
+ const allowedPageSizes = new Set(options.allowedPageSizes);
32
+ if (!options.allowedSorts.includes(defaultSort)) {
33
+ throw new Error("defaultSort must be one of allowedSorts");
34
+ }
35
+ if (!allowedPageSizes.has(defaultPageSize)) {
36
+ throw new Error("defaultPageSize must be one of allowedPageSizes");
37
+ }
38
+ if (!Number.isInteger(defaultPage) || defaultPage < 1) {
39
+ throw new Error("defaultPage must be a positive integer");
40
+ }
41
+ return z.object({
42
+ page: z.preprocess(coerceNumber, z.number().int().min(1).catch(defaultPage)),
43
+ pageSize: z
44
+ .preprocess(coerceNumber, z.number().int().refine((value) => allowedPageSizes.has(value)).catch(defaultPageSize)),
45
+ q: z.preprocess(normalizeSearch, z.string().catch("")),
46
+ sort: z.enum(options.allowedSorts).catch(defaultSort),
47
+ order: z.preprocess(coerceOrder, z.enum(listSortDirections).catch(defaultOrder))
48
+ }).strip();
49
+ }
50
+ export function parseListUrlParams(schema, source) {
51
+ return schema.parse(toPlainParams(source));
52
+ }
53
+ export function mergeAndNormalize(schema, current, patch) {
54
+ return schema.parse({ ...toPlainParams(current), ...toPlainParams(patch) });
55
+ }
56
+ export function stringifyListUrlParams(params) {
57
+ const query = new URLSearchParams();
58
+ query.set("page", String(params.page));
59
+ query.set("pageSize", String(params.pageSize));
60
+ if (params.q !== "") {
61
+ query.set("q", params.q);
62
+ }
63
+ query.set("sort", params.sort);
64
+ query.set("order", params.order);
65
+ return query.toString();
66
+ }
67
+ //# sourceMappingURL=listParams.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"listParams.js","sourceRoot":"","sources":["../../../src/runtime/listParams.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ import type { PromptBlockListParams, PromptTemplateListParams, CategoryListParams } from "./schemas.js";
2
+ type BlockListParams = PromptBlockListParams;
3
+ type TemplateListParams = PromptTemplateListParams;
4
+ type CategoryList = CategoryListParams;
5
+ export declare const promptKeys: {
6
+ all: () => readonly ["prompt"];
7
+ blockLists: () => readonly ["prompt", "blocks"];
8
+ blocks: (params?: BlockListParams) => readonly ["prompt", "blocks", Readonly<Partial<PromptBlockListParams>>];
9
+ block: (blockId: number) => readonly ["prompt", "block", number];
10
+ blockSlug: (slug: string) => readonly ["prompt", "block-slug", string];
11
+ templateLists: () => readonly ["prompt", "templates"];
12
+ templates: (params?: TemplateListParams) => readonly ["prompt", "templates", Readonly<Partial<PromptTemplateListParams>>];
13
+ template: (templateId: number) => readonly ["prompt", "template", number];
14
+ templateSlug: (slug: string) => readonly ["prompt", "template-slug", string];
15
+ templateBlocks: (templateId: number) => readonly ["prompt", "template-blocks", number];
16
+ compose: (templateId: number) => readonly ["prompt", "compose", number];
17
+ categoryLists: () => readonly ["prompt", "categories"];
18
+ categories: (params?: CategoryList) => readonly ["prompt", "categories", Readonly<Partial<CategoryListParams>>];
19
+ category: (categoryId: number) => readonly ["prompt", "category", number];
20
+ adminOverview: () => readonly ["prompt", "admin", "overview"];
21
+ dashboardActivity: () => readonly ["prompt", "dashboard", "activity"];
22
+ dashboardActivityCurrent: () => readonly ["prompt", "dashboard", "activity-current"];
23
+ };
24
+ export {};
25
+ //# sourceMappingURL=queryKeys.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"queryKeys.d.ts","sourceRoot":"","sources":["../../../src/runtime/queryKeys.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,wBAAwB,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAqBxG,KAAK,eAAe,GAAG,qBAAqB,CAAC;AAC7C,KAAK,kBAAkB,GAAG,wBAAwB,CAAC;AACnD,KAAK,YAAY,GAAG,kBAAkB,CAAC;AAEvC,eAAO,MAAM,UAAU;;;sBAGJ,eAAe;qBACf,MAAM;sBACL,MAAM;;yBAEJ,kBAAkB;2BAEf,MAAM;yBACR,MAAM;iCACE,MAAM;0BACb,MAAM;;0BAEP,YAAY;2BAEV,MAAM;;;;CAI9B,CAAC"}