@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.
- package/LICENSE +201 -0
- package/README.md +116 -0
- package/dist/src/integration.d.ts +42 -0
- package/dist/src/integration.d.ts.map +1 -0
- package/dist/src/integration.js +86 -0
- package/dist/src/integration.js.map +1 -0
- package/dist/src/lib/csp.d.ts +25 -0
- package/dist/src/lib/csp.d.ts.map +1 -0
- package/dist/src/lib/csp.js +53 -0
- package/dist/src/lib/csp.js.map +1 -0
- package/dist/src/middleware.d.ts +4 -0
- package/dist/src/middleware.d.ts.map +1 -0
- package/dist/src/middleware.js +24 -0
- package/dist/src/middleware.js.map +1 -0
- package/dist/src/runtime/api/admin.d.ts +15 -0
- package/dist/src/runtime/api/admin.d.ts.map +1 -0
- package/dist/src/runtime/api/admin.js +39 -0
- package/dist/src/runtime/api/admin.js.map +1 -0
- package/dist/src/runtime/api/blocks.d.ts +24 -0
- package/dist/src/runtime/api/blocks.d.ts.map +1 -0
- package/dist/src/runtime/api/blocks.js +74 -0
- package/dist/src/runtime/api/blocks.js.map +1 -0
- package/dist/src/runtime/api/categories.d.ts +7 -0
- package/dist/src/runtime/api/categories.d.ts.map +1 -0
- package/dist/src/runtime/api/categories.js +49 -0
- package/dist/src/runtime/api/categories.js.map +1 -0
- package/dist/src/runtime/api/dashboard.d.ts +6 -0
- package/dist/src/runtime/api/dashboard.d.ts.map +1 -0
- package/dist/src/runtime/api/dashboard.js +21 -0
- package/dist/src/runtime/api/dashboard.js.map +1 -0
- package/dist/src/runtime/api/index.d.ts +46 -0
- package/dist/src/runtime/api/index.d.ts.map +1 -0
- package/dist/src/runtime/api/index.js +48 -0
- package/dist/src/runtime/api/index.js.map +1 -0
- package/dist/src/runtime/api/internal.server.d.ts +18 -0
- package/dist/src/runtime/api/internal.server.d.ts.map +1 -0
- package/dist/src/runtime/api/internal.server.js +43 -0
- package/dist/src/runtime/api/internal.server.js.map +1 -0
- package/dist/src/runtime/api/templates.d.ts +14 -0
- package/dist/src/runtime/api/templates.d.ts.map +1 -0
- package/dist/src/runtime/api/templates.js +108 -0
- package/dist/src/runtime/api/templates.js.map +1 -0
- package/dist/src/runtime/authAdapter.d.ts +48 -0
- package/dist/src/runtime/authAdapter.d.ts.map +1 -0
- package/dist/src/runtime/authAdapter.js +62 -0
- package/dist/src/runtime/authAdapter.js.map +1 -0
- package/dist/src/runtime/client.d.ts +24 -0
- package/dist/src/runtime/client.d.ts.map +1 -0
- package/dist/src/runtime/client.js +85 -0
- package/dist/src/runtime/client.js.map +1 -0
- package/dist/src/runtime/compatibility.d.ts +32 -0
- package/dist/src/runtime/compatibility.d.ts.map +1 -0
- package/dist/src/runtime/compatibility.js +97 -0
- package/dist/src/runtime/compatibility.js.map +1 -0
- package/dist/src/runtime/config.d.ts +16 -0
- package/dist/src/runtime/config.d.ts.map +1 -0
- package/dist/src/runtime/config.js +22 -0
- package/dist/src/runtime/config.js.map +1 -0
- package/dist/src/runtime/errors.d.ts +23 -0
- package/dist/src/runtime/errors.d.ts.map +1 -0
- package/dist/src/runtime/errors.js +50 -0
- package/dist/src/runtime/errors.js.map +1 -0
- package/dist/src/runtime/hooks/index.d.ts +9 -0
- package/dist/src/runtime/hooks/index.d.ts.map +1 -0
- package/dist/src/runtime/hooks/index.js +9 -0
- package/dist/src/runtime/hooks/index.js.map +1 -0
- package/dist/src/runtime/hooks/useComposePrompt.d.ts +13 -0
- package/dist/src/runtime/hooks/useComposePrompt.d.ts.map +1 -0
- package/dist/src/runtime/hooks/useComposePrompt.js +17 -0
- package/dist/src/runtime/hooks/useComposePrompt.js.map +1 -0
- package/dist/src/runtime/hooks/usePromptAdmin.d.ts +10 -0
- package/dist/src/runtime/hooks/usePromptAdmin.d.ts.map +1 -0
- package/dist/src/runtime/hooks/usePromptAdmin.js +33 -0
- package/dist/src/runtime/hooks/usePromptAdmin.js.map +1 -0
- package/dist/src/runtime/hooks/usePromptBlock.d.ts +18 -0
- package/dist/src/runtime/hooks/usePromptBlock.d.ts.map +1 -0
- package/dist/src/runtime/hooks/usePromptBlock.js +25 -0
- package/dist/src/runtime/hooks/usePromptBlock.js.map +1 -0
- package/dist/src/runtime/hooks/usePromptBlocks.d.ts +22 -0
- package/dist/src/runtime/hooks/usePromptBlocks.d.ts.map +1 -0
- package/dist/src/runtime/hooks/usePromptBlocks.js +53 -0
- package/dist/src/runtime/hooks/usePromptBlocks.js.map +1 -0
- package/dist/src/runtime/hooks/usePromptCategories.d.ts +20 -0
- package/dist/src/runtime/hooks/usePromptCategories.d.ts.map +1 -0
- package/dist/src/runtime/hooks/usePromptCategories.js +53 -0
- package/dist/src/runtime/hooks/usePromptCategories.js.map +1 -0
- package/dist/src/runtime/hooks/usePromptDashboard.d.ts +13 -0
- package/dist/src/runtime/hooks/usePromptDashboard.d.ts.map +1 -0
- package/dist/src/runtime/hooks/usePromptDashboard.js +11 -0
- package/dist/src/runtime/hooks/usePromptDashboard.js.map +1 -0
- package/dist/src/runtime/hooks/usePromptTemplate.d.ts +33 -0
- package/dist/src/runtime/hooks/usePromptTemplate.d.ts.map +1 -0
- package/dist/src/runtime/hooks/usePromptTemplate.js +43 -0
- package/dist/src/runtime/hooks/usePromptTemplate.js.map +1 -0
- package/dist/src/runtime/hooks/usePromptTemplates.d.ts +37 -0
- package/dist/src/runtime/hooks/usePromptTemplates.d.ts.map +1 -0
- package/dist/src/runtime/hooks/usePromptTemplates.js +106 -0
- package/dist/src/runtime/hooks/usePromptTemplates.js.map +1 -0
- package/dist/src/runtime/listParams.d.ts +27 -0
- package/dist/src/runtime/listParams.d.ts.map +1 -0
- package/dist/src/runtime/listParams.js +67 -0
- package/dist/src/runtime/listParams.js.map +1 -0
- package/dist/src/runtime/queryKeys.d.ts +25 -0
- package/dist/src/runtime/queryKeys.d.ts.map +1 -0
- package/dist/src/runtime/queryKeys.js +29 -0
- package/dist/src/runtime/queryKeys.js.map +1 -0
- package/dist/src/runtime/react/AdminPromptPanel.d.ts +21 -0
- package/dist/src/runtime/react/AdminPromptPanel.d.ts.map +1 -0
- package/dist/src/runtime/react/AdminPromptPanel.js +53 -0
- package/dist/src/runtime/react/AdminPromptPanel.js.map +1 -0
- package/dist/src/runtime/react/PromptBlockLibrary.d.ts +36 -0
- package/dist/src/runtime/react/PromptBlockLibrary.d.ts.map +1 -0
- package/dist/src/runtime/react/PromptBlockLibrary.js +122 -0
- package/dist/src/runtime/react/PromptBlockLibrary.js.map +1 -0
- package/dist/src/runtime/react/PromptComposer.d.ts +24 -0
- package/dist/src/runtime/react/PromptComposer.d.ts.map +1 -0
- package/dist/src/runtime/react/PromptComposer.js +48 -0
- package/dist/src/runtime/react/PromptComposer.js.map +1 -0
- package/dist/src/runtime/react/PromptProvider.d.ts +16 -0
- package/dist/src/runtime/react/PromptProvider.d.ts.map +1 -0
- package/dist/src/runtime/react/PromptProvider.js +79 -0
- package/dist/src/runtime/react/PromptProvider.js.map +1 -0
- package/dist/src/runtime/react/PromptQueryProvider.d.ts +8 -0
- package/dist/src/runtime/react/PromptQueryProvider.d.ts.map +1 -0
- package/dist/src/runtime/react/PromptQueryProvider.js +11 -0
- package/dist/src/runtime/react/PromptQueryProvider.js.map +1 -0
- package/dist/src/runtime/react/PromptTemplateEditor.d.ts +36 -0
- package/dist/src/runtime/react/PromptTemplateEditor.d.ts.map +1 -0
- package/dist/src/runtime/react/PromptTemplateEditor.js +141 -0
- package/dist/src/runtime/react/PromptTemplateEditor.js.map +1 -0
- package/dist/src/runtime/react/RequireSuperuser.d.ts +7 -0
- package/dist/src/runtime/react/RequireSuperuser.d.ts.map +1 -0
- package/dist/src/runtime/react/RequireSuperuser.js +10 -0
- package/dist/src/runtime/react/RequireSuperuser.js.map +1 -0
- package/dist/src/runtime/react/default-ui/index.d.ts +17 -0
- package/dist/src/runtime/react/default-ui/index.d.ts.map +1 -0
- package/dist/src/runtime/react/default-ui/index.js +23 -0
- package/dist/src/runtime/react/default-ui/index.js.map +1 -0
- package/dist/src/runtime/react/index.d.ts +8 -0
- package/dist/src/runtime/react/index.d.ts.map +1 -0
- package/dist/src/runtime/react/index.js +8 -0
- package/dist/src/runtime/react/index.js.map +1 -0
- package/dist/src/runtime/routes.d.ts +17 -0
- package/dist/src/runtime/routes.d.ts.map +1 -0
- package/dist/src/runtime/routes.js +33 -0
- package/dist/src/runtime/routes.js.map +1 -0
- package/dist/src/runtime/schemas.d.ts +286 -0
- package/dist/src/runtime/schemas.d.ts.map +1 -0
- package/dist/src/runtime/schemas.js +172 -0
- package/dist/src/runtime/schemas.js.map +1 -0
- package/package.json +99 -0
- package/registry/r/admin-prompt-dashboard.json +23 -0
- package/registry/r/prompt-block-editor.json +20 -0
- package/registry/r/prompt-dashboard-overview.json +22 -0
- package/registry/r/prompt-maintenance-panel.json +23 -0
- package/registry/r/prompt-template-editor.json +20 -0
- package/registry/r/registry.json +37 -0
- package/registry.json +86 -0
- package/src/routes/admin/prompts.astro +11 -0
- package/src/routes/blocks.astro +11 -0
- package/src/routes/composer.astro +12 -0
- package/src/routes/templates.astro +11 -0
- 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"}
|