convex-cms 0.0.8 → 0.0.9-alpha.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +11 -1
- package/admin/src/components/BulkActionBar.tsx +6 -5
- package/admin/src/components/ContentEntryEditor.tsx +10 -9
- package/admin/src/components/ContentTypeFormModal.tsx +4 -3
- package/admin/src/components/Header.tsx +1 -1
- package/admin/src/components/RouteGuard.tsx +1 -1
- package/admin/src/components/Sidebar.tsx +3 -2
- package/admin/src/components/TaxonomyEditor.tsx +4 -3
- package/admin/src/components/TermTree.tsx +8 -6
- package/admin/src/components/VersionCompare.tsx +3 -2
- package/admin/src/components/VersionHistory.tsx +4 -3
- package/admin/src/components/fields/CategoryField.tsx +3 -2
- package/admin/src/components/fields/MediaField.tsx +6 -5
- package/admin/src/components/fields/ReferenceField.tsx +6 -5
- package/admin/src/components/fields/TagField.tsx +5 -4
- package/admin/src/components/filters/TaxonomyFilter.tsx +4 -3
- package/admin/src/components/media/MediaAssetEditDialog.tsx +4 -3
- package/admin/src/components/media/MediaFolderEditDialog.tsx +3 -2
- package/admin/src/components/media/MediaMoveModal.tsx +4 -3
- package/admin/src/components/media/MediaTaxonomyPicker.tsx +6 -5
- package/admin/src/contexts/AuthContext.tsx +1 -1
- package/admin/src/contexts/SettingsConfigContext.tsx +19 -5
- package/admin/src/embed/contexts/ApiContext.tsx +6 -2
- package/admin/src/hooks/usePermissions.ts +1 -1
- package/admin/src/routes/__root.tsx +7 -3
- package/admin-dist/nitro.json +1 -1
- package/admin-dist/public/assets/{CmsEmptyState-6-PLaXtD.js → CmsEmptyState-BM4e6N83.js} +1 -1
- package/admin-dist/public/assets/{CmsPageHeader-SoF4Epu9.js → CmsPageHeader-uor3DPIk.js} +1 -1
- package/admin-dist/public/assets/{CmsStatusBadge-D7kYaohx.js → CmsStatusBadge-D8N18LJx.js} +1 -1
- package/admin-dist/public/assets/{CmsSurface-BvksBm6W.js → CmsSurface-BEcY-WpI.js} +1 -1
- package/admin-dist/public/assets/{CmsToolbar-DlZPMe2B.js → CmsToolbar-DE-bu3W8.js} +1 -1
- package/admin-dist/public/assets/ContentEntryEditor-BdkIMCUk.js +4 -0
- package/admin-dist/public/assets/TaxonomyFilter-a1-O9DPs.js +1 -0
- package/admin-dist/public/assets/{_contentTypeId-DTv8UoTp.js → _contentTypeId-XIkYOLyY.js} +1 -1
- package/admin-dist/public/assets/{_entryId-D3lr5Dvy.js → _entryId-DyP15QpI.js} +1 -1
- package/admin-dist/public/assets/{alert-BAHTL6ao.js → alert-DHBQuuib.js} +1 -1
- package/admin-dist/public/assets/{badge-oJv4Eai8.js → badge-BOhWFWzb.js} +1 -1
- package/admin-dist/public/assets/{circle-check-big-3OHxNDhO.js → circle-check-big-DjTNapen.js} +1 -1
- package/admin-dist/public/assets/{command-DwgQs69u.js → command-BIc5_8gL.js} +1 -1
- package/admin-dist/public/assets/content-C3N8Ugra.js +1 -0
- package/admin-dist/public/assets/content-types-D0wh1eUF.js +1 -0
- package/admin-dist/public/assets/{index-DOkgTSx0.js → index-B-g3F_ri.js} +1 -1
- package/admin-dist/public/assets/main-BapBJgQD.js +102 -0
- package/admin-dist/public/assets/media-8uh1MwDi.js +1 -0
- package/admin-dist/public/assets/{new._contentTypeId-VF63rpic.js → new._contentTypeId-S96rFbgY.js} +1 -1
- package/admin-dist/public/assets/{pencil-CX1CiTDD.js → pencil-DgaZav4e.js} +1 -1
- package/admin-dist/public/assets/{refresh-cw-Cm-YOeFI.js → refresh-cw-BBut4hAU.js} +1 -1
- package/admin-dist/public/assets/{rotate-ccw-B45JsL5f.js → rotate-ccw-DVCkojZZ.js} +1 -1
- package/admin-dist/public/assets/{scroll-area-b3A1HHR7.js → scroll-area-DPC4uXzf.js} +1 -1
- package/admin-dist/public/assets/{search-DKKh_DdH.js → search-CSyHHglh.js} +1 -1
- package/admin-dist/public/assets/{settings-CGVDEV1r.js → settings-cEqPsoJ0.js} +1 -1
- package/admin-dist/public/assets/{switch-BTMY8Qnk.js → switch-O2BviO8Q.js} +1 -1
- package/admin-dist/public/assets/{tabs-DUQwUoIb.js → tabs-p1MWhOqY.js} +1 -1
- package/admin-dist/public/assets/{tanstack-adapter-f7AHmQ5L.js → tanstack-adapter-CDrxoPZD.js} +1 -1
- package/admin-dist/public/assets/taxonomies-DJ9UbjXW.js +1 -0
- package/admin-dist/public/assets/{trash-D7e0uKd9.js → trash-RnpP6lXF.js} +1 -1
- package/admin-dist/public/assets/{useBreadcrumbLabel-CF2KYwsw.js → useBreadcrumbLabel-zbIWXlkc.js} +1 -1
- package/admin-dist/public/assets/{usePermissions-DWBImEOW.js → usePermissions-4CTlK-vU.js} +1 -1
- package/admin-dist/server/_chunks/_libs/@floating-ui/core.mjs +71 -65
- package/admin-dist/server/_chunks/_libs/@floating-ui/dom.mjs +1 -1
- package/admin-dist/server/_chunks/_libs/@floating-ui/utils.mjs +8 -8
- package/admin-dist/server/_chunks/_libs/@tanstack/react-router.mjs +12 -30
- package/admin-dist/server/_chunks/_libs/@tanstack/react-store.mjs +1 -56
- package/admin-dist/server/_chunks/_libs/@tanstack/router-core.mjs +130 -114
- package/admin-dist/server/_chunks/_libs/@tanstack/store.mjs +1 -134
- package/admin-dist/server/_chunks/_libs/react-dom.mjs +5 -5
- package/admin-dist/server/_chunks/_libs/react.mjs +1 -1
- package/admin-dist/server/_libs/isbot.mjs +1 -1
- package/admin-dist/server/_libs/use-sync-external-store.mjs +1 -76
- package/admin-dist/server/_ssr/{CmsEmptyState-BM8DghTl.mjs → CmsEmptyState-BA0Lc5xs.mjs} +1 -1
- package/admin-dist/server/_ssr/{CmsPageHeader-BHUmrIWD.mjs → CmsPageHeader-PMyecILZ.mjs} +1 -1
- package/admin-dist/server/_ssr/{CmsStatusBadge-D0Zb0oRl.mjs → CmsStatusBadge-CInuN2bZ.mjs} +2 -2
- package/admin-dist/server/_ssr/{CmsSurface-B2eBr-47.mjs → CmsSurface-CH1PIfcS.mjs} +1 -1
- package/admin-dist/server/_ssr/{CmsToolbar-BCrwg7OL.mjs → CmsToolbar-IuhSA7gR.mjs} +1 -1
- package/admin-dist/server/_ssr/{ContentEntryEditor-Cjfm0uhr.mjs → ContentEntryEditor-Bzhir4fQ.mjs} +38 -31
- package/admin-dist/server/_ssr/{TaxonomyFilter-C4pD0kfM.mjs → TaxonomyFilter-r4izSMBh.mjs} +6 -5
- package/admin-dist/server/_ssr/{_contentTypeId-CiDiX-p7.mjs → _contentTypeId-BWEbjqxY.mjs} +11 -13
- package/admin-dist/server/_ssr/{_entryId-9GxatOkL.mjs → _entryId-B5xoXoJf.mjs} +12 -14
- package/admin-dist/server/_ssr/_tanstack-start-manifest_v-CBTan6ii.mjs +4 -0
- package/admin-dist/server/_ssr/{badge-EI998zba.mjs → badge-DXrjBRqZ.mjs} +1 -1
- package/admin-dist/server/_ssr/{command-BLAWQhUw.mjs → command-Cj90OdCX.mjs} +1 -1
- package/admin-dist/server/_ssr/config.server-BOr7Jxr4.mjs +0 -3
- package/admin-dist/server/_ssr/{content-BHX39L4D.mjs → content-DKRI-YqL.mjs} +14 -15
- package/admin-dist/server/_ssr/{content-types-DCzrBhTH.mjs → content-types-BzgRcS8K.mjs} +7 -9
- package/admin-dist/server/_ssr/{index-DwM_5VNP.mjs → index-BPf6_agY.mjs} +4 -6
- package/admin-dist/server/_ssr/index.mjs +11 -10
- package/admin-dist/server/_ssr/{media-CbzgTRRQ.mjs → media-MpjxOZL8.mjs} +23 -21
- package/admin-dist/server/_ssr/{new._contentTypeId-6Ph-Gtlw.mjs → new._contentTypeId-DSb4qR9j.mjs} +11 -13
- package/admin-dist/server/_ssr/{router-vd1nySeP.mjs → router-Dk9ikPNc.mjs} +61 -47
- package/admin-dist/server/_ssr/{scroll-area--B9snFTJ.mjs → scroll-area-JwVD_6MZ.mjs} +1 -1
- package/admin-dist/server/_ssr/{settings-DlTO2JSj.mjs → settings-KVJNe0GM.mjs} +8 -10
- package/admin-dist/server/_ssr/{switch-C05NgNW0.mjs → switch-DvREvRv4.mjs} +1 -1
- package/admin-dist/server/_ssr/{tabs-DAk2J5xy.mjs → tabs-B0h57pFf.mjs} +1 -1
- package/admin-dist/server/_ssr/{tanstack-adapter-DWbaPByn.mjs → tanstack-adapter-gmM64LnW.mjs} +1 -1
- package/admin-dist/server/_ssr/{taxonomies-B8nqce6u.mjs → taxonomies-BbBNx260.mjs} +17 -16
- package/admin-dist/server/_ssr/{trash-zdlZgpTo.mjs → trash-JAzYGh7A.mjs} +8 -10
- package/admin-dist/server/_ssr/{useBreadcrumbLabel-DpEKyG1h.mjs → useBreadcrumbLabel-BWIujj97.mjs} +1 -1
- package/admin-dist/server/_ssr/{usePermissions-olYRd9S9.mjs → usePermissions-CcLDCSwa.mjs} +1 -1
- package/admin-dist/server/index.mjs +162 -162
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +18 -29
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/templates/admin.d.ts +4 -3
- package/dist/cli/templates/admin.d.ts.map +1 -1
- package/dist/cli/templates/admin.js +152 -195
- package/dist/cli/templates/admin.js.map +1 -1
- package/dist/cli/templates/cmsClient.d.ts +2 -2
- package/dist/cli/templates/cmsClient.d.ts.map +1 -1
- package/dist/cli/templates/cmsClient.js +58 -27
- package/dist/cli/templates/cmsClient.js.map +1 -1
- package/dist/cli/templates/content.d.ts +10 -0
- package/dist/cli/templates/content.d.ts.map +1 -0
- package/dist/cli/templates/content.js +257 -0
- package/dist/cli/templates/content.js.map +1 -0
- package/dist/cli/templates/index.d.ts +3 -2
- package/dist/cli/templates/index.d.ts.map +1 -1
- package/dist/cli/templates/index.js +3 -2
- package/dist/cli/templates/index.js.map +1 -1
- package/dist/cli/templates/schemas/blog.d.ts +4 -3
- package/dist/cli/templates/schemas/blog.d.ts.map +1 -1
- package/dist/cli/templates/schemas/blog.js +44 -13
- package/dist/cli/templates/schemas/blog.js.map +1 -1
- package/dist/cli/templates/schemas/docs.d.ts +4 -3
- package/dist/cli/templates/schemas/docs.d.ts.map +1 -1
- package/dist/cli/templates/schemas/docs.js +43 -12
- package/dist/cli/templates/schemas/docs.js.map +1 -1
- package/dist/cli/templates/schemas/index.d.ts +6 -4
- package/dist/cli/templates/schemas/index.d.ts.map +1 -1
- package/dist/cli/templates/schemas/index.js +6 -4
- package/dist/cli/templates/schemas/index.js.map +1 -1
- package/dist/cli/templates/schemas/landing.d.ts +4 -3
- package/dist/cli/templates/schemas/landing.d.ts.map +1 -1
- package/dist/cli/templates/schemas/landing.js +62 -15
- package/dist/cli/templates/schemas/landing.js.map +1 -1
- package/dist/cli/utils/fileUtils.d.ts.map +1 -1
- package/dist/cli/utils/fileUtils.js +6 -5
- package/dist/cli/utils/fileUtils.js.map +1 -1
- package/dist/client/admin/index.d.ts +2 -1
- package/dist/client/admin/index.d.ts.map +1 -1
- package/dist/client/admin/index.js.map +1 -1
- package/dist/client/admin/types.d.ts +14 -1
- package/dist/client/admin/types.d.ts.map +1 -1
- package/dist/client/index.d.ts +1 -1
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js.map +1 -1
- package/dist/react/index.d.ts +176 -0
- package/dist/react/index.d.ts.map +1 -1
- package/dist/react/index.js +162 -0
- package/dist/react/index.js.map +1 -1
- package/package.json +1 -1
- package/admin-dist/public/assets/ContentEntryEditor-C6n9xLS9.js +0 -4
- package/admin-dist/public/assets/TaxonomyFilter-CFX1_g8s.js +0 -1
- package/admin-dist/public/assets/content-CKQ4QwW2.js +0 -1
- package/admin-dist/public/assets/content-types-BrttaLpc.js +0 -1
- package/admin-dist/public/assets/main-DV6oxWnU.js +0 -102
- package/admin-dist/public/assets/media-B2i-mCbx.js +0 -1
- package/admin-dist/public/assets/taxonomies-DvMppdiD.js +0 -1
- package/admin-dist/server/_ssr/_tanstack-start-manifest_v-CC7UrHKE.mjs +0 -4
|
@@ -11,30 +11,27 @@
|
|
|
11
11
|
import path from "path";
|
|
12
12
|
import { promptForTemplate, showIntro, showOutro, logStep, logSuccess, logWarning, logError, logInfo, note, } from "../utils/prompts.js";
|
|
13
13
|
import { fileExists, writeFile, updateConvexConfig, } from "../utils/fileUtils.js";
|
|
14
|
-
import {
|
|
15
|
-
import {
|
|
14
|
+
import { getAdminTemplate } from "../templates/admin.js";
|
|
15
|
+
import { getContentTemplate } from "../templates/content.js";
|
|
16
16
|
import { CMS_CLIENT_TEMPLATE } from "../templates/cmsClient.js";
|
|
17
|
-
import {
|
|
18
|
-
import { DOCS_SCHEMA_TEMPLATE } from "../templates/schemas/docs.js";
|
|
19
|
-
import { LANDING_SCHEMA_TEMPLATE } from "../templates/schemas/landing.js";
|
|
17
|
+
import { CMS_BLOG_TEMPLATE, CMS_DOCS_TEMPLATE, CMS_LANDING_TEMPLATE, } from "../templates/schemas/index.js";
|
|
20
18
|
const TEMPLATE_DESCRIPTIONS = {
|
|
21
19
|
blog: "Blog content types",
|
|
22
20
|
docs: "Documentation content types",
|
|
23
21
|
landing: "Landing page content types",
|
|
24
|
-
blank: "
|
|
22
|
+
blank: "Blank starter",
|
|
25
23
|
};
|
|
26
|
-
function
|
|
24
|
+
function getCmsTemplate(template) {
|
|
27
25
|
switch (template) {
|
|
28
26
|
case "blog":
|
|
29
|
-
return
|
|
27
|
+
return CMS_BLOG_TEMPLATE;
|
|
30
28
|
case "docs":
|
|
31
|
-
return
|
|
29
|
+
return CMS_DOCS_TEMPLATE;
|
|
32
30
|
case "landing":
|
|
33
|
-
return
|
|
31
|
+
return CMS_LANDING_TEMPLATE;
|
|
34
32
|
case "blank":
|
|
35
|
-
return null;
|
|
36
33
|
default:
|
|
37
|
-
return
|
|
34
|
+
return CMS_CLIENT_TEMPLATE;
|
|
38
35
|
}
|
|
39
36
|
}
|
|
40
37
|
function validateTemplate(template) {
|
|
@@ -71,29 +68,21 @@ export async function initCommand(options) {
|
|
|
71
68
|
}
|
|
72
69
|
const files = [
|
|
73
70
|
{
|
|
74
|
-
name: "convex/
|
|
75
|
-
path: path.join(convexDir, "
|
|
76
|
-
content:
|
|
71
|
+
name: "convex/cms.ts",
|
|
72
|
+
path: path.join(convexDir, "cms.ts"),
|
|
73
|
+
content: getCmsTemplate(template),
|
|
77
74
|
},
|
|
78
75
|
{
|
|
79
|
-
name: "convex/
|
|
80
|
-
path: path.join(convexDir, "
|
|
81
|
-
content:
|
|
76
|
+
name: "convex/admin.ts",
|
|
77
|
+
path: path.join(convexDir, "admin.ts"),
|
|
78
|
+
content: getAdminTemplate(template),
|
|
82
79
|
},
|
|
83
80
|
{
|
|
84
|
-
name: "convex/
|
|
85
|
-
path: path.join(convexDir, "
|
|
86
|
-
content:
|
|
81
|
+
name: "convex/content.ts",
|
|
82
|
+
path: path.join(convexDir, "content.ts"),
|
|
83
|
+
content: getContentTemplate(template),
|
|
87
84
|
},
|
|
88
85
|
];
|
|
89
|
-
const schemaContent = getSchemaTemplate(template);
|
|
90
|
-
if (schemaContent) {
|
|
91
|
-
files.push({
|
|
92
|
-
name: "convex/schemas.ts",
|
|
93
|
-
path: path.join(convexDir, "schemas.ts"),
|
|
94
|
-
content: schemaContent,
|
|
95
|
-
});
|
|
96
|
-
}
|
|
97
86
|
console.log("");
|
|
98
87
|
logStep("Creating files...");
|
|
99
88
|
const results = [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EACL,iBAAiB,EACjB,SAAS,EACT,SAAS,EACT,OAAO,EACP,UAAU,EACV,UAAU,EACV,QAAQ,EACR,OAAO,EACP,IAAI,GAEL,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,UAAU,EACV,SAAS,EACT,kBAAkB,GAEnB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../../src/cli/commands/init.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,8 +3,9 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Generated by: npx convex-cms init
|
|
5
5
|
*
|
|
6
|
-
*
|
|
7
|
-
* All exports are required - removing any will break the admin interface.
|
|
6
|
+
* Uses destructuring exports pattern and imports content types from cms.ts.
|
|
8
7
|
*/
|
|
9
|
-
|
|
8
|
+
import type { SchemaTemplate } from "./schemas/index.js";
|
|
9
|
+
export declare function getAdminTemplate(template: SchemaTemplate): string;
|
|
10
|
+
export declare const ADMIN_TEMPLATE: string;
|
|
10
11
|
//# sourceMappingURL=admin.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"admin.d.ts","sourceRoot":"","sources":["../../../src/cli/templates/admin.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"admin.d.ts","sourceRoot":"","sources":["../../../src/cli/templates/admin.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AA0BzD,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,cAAc,GAAG,MAAM,CA6IjE;AAGD,eAAO,MAAM,cAAc,QAA4B,CAAC"}
|
|
@@ -3,210 +3,167 @@
|
|
|
3
3
|
*
|
|
4
4
|
* Generated by: npx convex-cms init
|
|
5
5
|
*
|
|
6
|
-
*
|
|
7
|
-
* All exports are required - removing any will break the admin interface.
|
|
6
|
+
* Uses destructuring exports pattern and imports content types from cms.ts.
|
|
8
7
|
*/
|
|
9
|
-
|
|
8
|
+
const TEMPLATE_CONFIGS = {
|
|
9
|
+
blog: {
|
|
10
|
+
contentTypeImports: "blogPost, author, category",
|
|
11
|
+
contentTypesObject: "blogPost, author, category",
|
|
12
|
+
},
|
|
13
|
+
docs: {
|
|
14
|
+
contentTypeImports: "docPage, docSection, docNavigation",
|
|
15
|
+
contentTypesObject: "docPage, docSection, docNavigation",
|
|
16
|
+
},
|
|
17
|
+
landing: {
|
|
18
|
+
contentTypeImports: "heroSection, featureBlock, testimonial, ctaSection",
|
|
19
|
+
contentTypesObject: "heroSection, featureBlock, testimonial, ctaSection",
|
|
20
|
+
},
|
|
21
|
+
blank: {
|
|
22
|
+
contentTypeImports: "blogPost",
|
|
23
|
+
contentTypesObject: "blogPost",
|
|
24
|
+
},
|
|
25
|
+
};
|
|
26
|
+
export function getAdminTemplate(template) {
|
|
27
|
+
const config = TEMPLATE_CONFIGS[template];
|
|
28
|
+
return `/**
|
|
10
29
|
* Admin API for CMS Admin UI
|
|
11
30
|
*
|
|
12
|
-
* Uses the unified config pattern - all CMS settings are defined
|
|
13
|
-
* once in cms.config.ts and shared with the client API.
|
|
14
|
-
*
|
|
15
31
|
* Usage:
|
|
16
32
|
* 1. Run your Convex dev server: \`npx convex dev\`
|
|
17
33
|
* 2. Launch the admin UI: \`npx convex-cms admin\`
|
|
18
34
|
* 3. Or embed in your app: \`<CmsAdmin convexUrl={...} />\`
|
|
19
35
|
*/
|
|
20
36
|
|
|
21
|
-
import { defineAdminAPI } from "convex-cms";
|
|
22
37
|
import { components } from "./_generated/api";
|
|
23
|
-
import
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
//
|
|
28
|
-
|
|
29
|
-
//
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
//
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
//
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
// =============================================================================
|
|
152
|
-
// Upload
|
|
153
|
-
// =============================================================================
|
|
154
|
-
|
|
155
|
-
export const generateUploadUrl = admin.generateUploadUrl;
|
|
156
|
-
|
|
157
|
-
// =============================================================================
|
|
158
|
-
// Taxonomies
|
|
159
|
-
// =============================================================================
|
|
160
|
-
|
|
161
|
-
export const getTaxonomy = admin.getTaxonomy;
|
|
162
|
-
export const listTaxonomies = admin.listTaxonomies;
|
|
163
|
-
export const createTaxonomy = admin.createTaxonomy;
|
|
164
|
-
export const updateTaxonomy = admin.updateTaxonomy;
|
|
165
|
-
export const deleteTaxonomy = admin.deleteTaxonomy;
|
|
166
|
-
export const restoreTaxonomy = admin.restoreTaxonomy;
|
|
167
|
-
|
|
168
|
-
// =============================================================================
|
|
169
|
-
// Terms
|
|
170
|
-
// =============================================================================
|
|
171
|
-
|
|
172
|
-
export const getTerm = admin.getTerm;
|
|
173
|
-
export const listTerms = admin.listTerms;
|
|
174
|
-
export const getTermsHierarchy = admin.getTermsHierarchy;
|
|
175
|
-
export const suggestTerms = admin.suggestTerms;
|
|
176
|
-
export const countTerms = admin.countTerms;
|
|
177
|
-
export const createTerm = admin.createTerm;
|
|
178
|
-
export const updateTerm = admin.updateTerm;
|
|
179
|
-
export const deleteTerm = admin.deleteTerm;
|
|
180
|
-
export const restoreTerm = admin.restoreTerm;
|
|
181
|
-
|
|
182
|
-
// =============================================================================
|
|
183
|
-
// Entry-Term Relations
|
|
184
|
-
// =============================================================================
|
|
185
|
-
|
|
186
|
-
export const getTermsByEntry = admin.getTermsByEntry;
|
|
187
|
-
export const getEntriesByTerm = admin.getEntriesByTerm;
|
|
188
|
-
export const setEntryTerms = admin.setEntryTerms;
|
|
189
|
-
export const addTermToEntry = admin.addTermToEntry;
|
|
190
|
-
export const removeTermFromEntry = admin.removeTermFromEntry;
|
|
191
|
-
export const createTermAndAddToEntry = admin.createTermAndAddToEntry;
|
|
192
|
-
|
|
193
|
-
// =============================================================================
|
|
194
|
-
// Media-Term Relations
|
|
195
|
-
// =============================================================================
|
|
196
|
-
|
|
197
|
-
export const getTermsByMedia = admin.getTermsByMedia;
|
|
198
|
-
export const getMediaByTerm = admin.getMediaByTerm;
|
|
199
|
-
export const setMediaTerms = admin.setMediaTerms;
|
|
200
|
-
export const addTermToMedia = admin.addTermToMedia;
|
|
201
|
-
export const removeTermFromMedia = admin.removeTermFromMedia;
|
|
202
|
-
export const createTermAndAddToMedia = admin.createTermAndAddToMedia;
|
|
203
|
-
|
|
204
|
-
// =============================================================================
|
|
205
|
-
// Settings
|
|
206
|
-
// =============================================================================
|
|
207
|
-
|
|
208
|
-
export const getSettings = admin.getSettings;
|
|
209
|
-
export const updateSettings = admin.updateSettings;
|
|
210
|
-
export const resetSettings = admin.resetSettings;
|
|
38
|
+
import { defineAdminAPI } from "convex-cms";
|
|
39
|
+
import { ${config.contentTypeImports} } from "./cms";
|
|
40
|
+
|
|
41
|
+
export const {
|
|
42
|
+
// Dashboard
|
|
43
|
+
getDashboardStats,
|
|
44
|
+
// Content Types
|
|
45
|
+
listContentTypes,
|
|
46
|
+
getContentType,
|
|
47
|
+
createContentType,
|
|
48
|
+
updateContentType,
|
|
49
|
+
deleteContentType,
|
|
50
|
+
syncCodeDefinedTypes,
|
|
51
|
+
checkSchemaDrift,
|
|
52
|
+
// Content Entries
|
|
53
|
+
listEntries,
|
|
54
|
+
getEntry,
|
|
55
|
+
createEntry,
|
|
56
|
+
updateEntry,
|
|
57
|
+
publishEntry,
|
|
58
|
+
unpublishEntry,
|
|
59
|
+
deleteEntry,
|
|
60
|
+
duplicateEntry,
|
|
61
|
+
scheduleEntry,
|
|
62
|
+
cancelScheduledEntry,
|
|
63
|
+
getScheduledEntries,
|
|
64
|
+
restoreEntry,
|
|
65
|
+
getEntryBySlug,
|
|
66
|
+
getEntryBySlugAndTypeName,
|
|
67
|
+
// Bulk Operations
|
|
68
|
+
bulkPublish,
|
|
69
|
+
bulkUnpublish,
|
|
70
|
+
bulkDelete,
|
|
71
|
+
bulkUpdate,
|
|
72
|
+
bulkRestore,
|
|
73
|
+
// Trash
|
|
74
|
+
getTrashConfig,
|
|
75
|
+
listTrash,
|
|
76
|
+
getTrashStats,
|
|
77
|
+
updateTrashConfig,
|
|
78
|
+
emptyTrash,
|
|
79
|
+
runTrashCleanup,
|
|
80
|
+
// Content Lock
|
|
81
|
+
checkContentLock,
|
|
82
|
+
listLockedContent,
|
|
83
|
+
acquireContentLock,
|
|
84
|
+
releaseContentLock,
|
|
85
|
+
renewContentLock,
|
|
86
|
+
forceReleaseContentLock,
|
|
87
|
+
// Versions
|
|
88
|
+
getVersionHistory,
|
|
89
|
+
getVersion,
|
|
90
|
+
compareVersions,
|
|
91
|
+
rollbackVersion,
|
|
92
|
+
// Media Assets
|
|
93
|
+
listMediaAssets,
|
|
94
|
+
getMediaAsset,
|
|
95
|
+
createMediaAsset,
|
|
96
|
+
updateMediaAsset,
|
|
97
|
+
deleteMediaAsset,
|
|
98
|
+
restoreMediaAsset,
|
|
99
|
+
permanentDeleteMediaAsset,
|
|
100
|
+
bulkPermanentDeleteMediaAssets,
|
|
101
|
+
moveMediaAssets,
|
|
102
|
+
getMediaTrashCount,
|
|
103
|
+
// Media Folders
|
|
104
|
+
listMediaFolders,
|
|
105
|
+
getMediaFolder,
|
|
106
|
+
getMediaFolderTree,
|
|
107
|
+
createMediaFolder,
|
|
108
|
+
updateMediaFolder,
|
|
109
|
+
moveMediaFolder,
|
|
110
|
+
deleteMediaFolder,
|
|
111
|
+
restoreMediaFolder,
|
|
112
|
+
// Media Variants
|
|
113
|
+
listMediaVariants,
|
|
114
|
+
getMediaVariant,
|
|
115
|
+
getBestMediaVariant,
|
|
116
|
+
getMediaResponsiveSrcset,
|
|
117
|
+
getMediaVariantPresets,
|
|
118
|
+
getMediaAssetWithVariants,
|
|
119
|
+
createMediaVariant,
|
|
120
|
+
requestMediaVariantGeneration,
|
|
121
|
+
deleteMediaVariant,
|
|
122
|
+
deleteMediaAssetVariants,
|
|
123
|
+
generateMediaVariantsFromPresets,
|
|
124
|
+
restoreMediaVariant,
|
|
125
|
+
// Upload
|
|
126
|
+
generateUploadUrl,
|
|
127
|
+
// Taxonomies
|
|
128
|
+
getTaxonomy,
|
|
129
|
+
listTaxonomies,
|
|
130
|
+
createTaxonomy,
|
|
131
|
+
updateTaxonomy,
|
|
132
|
+
deleteTaxonomy,
|
|
133
|
+
restoreTaxonomy,
|
|
134
|
+
// Terms
|
|
135
|
+
getTerm,
|
|
136
|
+
listTerms,
|
|
137
|
+
getTermsHierarchy,
|
|
138
|
+
suggestTerms,
|
|
139
|
+
countTerms,
|
|
140
|
+
createTerm,
|
|
141
|
+
updateTerm,
|
|
142
|
+
deleteTerm,
|
|
143
|
+
restoreTerm,
|
|
144
|
+
// Entry-Term Relations
|
|
145
|
+
getTermsByEntry,
|
|
146
|
+
getEntriesByTerm,
|
|
147
|
+
setEntryTerms,
|
|
148
|
+
addTermToEntry,
|
|
149
|
+
removeTermFromEntry,
|
|
150
|
+
createTermAndAddToEntry,
|
|
151
|
+
// Media-Term Relations
|
|
152
|
+
getTermsByMedia,
|
|
153
|
+
getMediaByTerm,
|
|
154
|
+
setMediaTerms,
|
|
155
|
+
addTermToMedia,
|
|
156
|
+
removeTermFromMedia,
|
|
157
|
+
createTermAndAddToMedia,
|
|
158
|
+
// Settings
|
|
159
|
+
getSettings,
|
|
160
|
+
updateSettings,
|
|
161
|
+
resetSettings,
|
|
162
|
+
} = defineAdminAPI(components.cms, {
|
|
163
|
+
contentTypes: { ${config.contentTypesObject} },
|
|
164
|
+
});
|
|
211
165
|
`;
|
|
166
|
+
}
|
|
167
|
+
// Legacy export for backwards compatibility
|
|
168
|
+
export const ADMIN_TEMPLATE = getAdminTemplate("blank");
|
|
212
169
|
//# sourceMappingURL=admin.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"admin.js","sourceRoot":"","sources":["../../../src/cli/templates/admin.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"admin.js","sourceRoot":"","sources":["../../../src/cli/templates/admin.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AASH,MAAM,gBAAgB,GAAgD;IACpE,IAAI,EAAE;QACJ,kBAAkB,EAAE,4BAA4B;QAChD,kBAAkB,EAAE,4BAA4B;KACjD;IACD,IAAI,EAAE;QACJ,kBAAkB,EAAE,oCAAoC;QACxD,kBAAkB,EAAE,oCAAoC;KACzD;IACD,OAAO,EAAE;QACP,kBAAkB,EAAE,oDAAoD;QACxE,kBAAkB,EAAE,oDAAoD;KACzE;IACD,KAAK,EAAE;QACL,kBAAkB,EAAE,UAAU;QAC9B,kBAAkB,EAAE,UAAU;KAC/B;CACF,CAAC;AAEF,MAAM,UAAU,gBAAgB,CAAC,QAAwB;IACvD,MAAM,MAAM,GAAG,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAE1C,OAAO;;;;;;;;;;;WAWE,MAAM,CAAC,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oBA4HhB,MAAM,CAAC,kBAAkB;;CAE5C,CAAC;AACF,CAAC;AAED,4CAA4C;AAC5C,MAAM,CAAC,MAAM,cAAc,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* CMS Client template
|
|
2
|
+
* CMS Client template - Blank starter
|
|
3
3
|
*
|
|
4
4
|
* Generated by: npx convex-cms init
|
|
5
5
|
*/
|
|
6
|
-
export declare const CMS_CLIENT_TEMPLATE = "/**\n * CMS Setup\n *\n *
|
|
6
|
+
export declare const CMS_CLIENT_TEMPLATE = "/**\n * CMS Setup\n *\n * This file defines content types and creates typed helpers for type-safe access.\n *\n * Architecture:\n * - defineContentType() creates schema definitions for the admin API\n * - createTypedHelpers() creates type-safe CRUD helpers for programmatic access\n * - Both work together: definitions go to admin API, helpers provide typed access\n *\n * @example Type-safe queries in Convex functions\n * ```typescript\n * import { content } from \"./cms\";\n *\n * // Fully typed - data fields have correct types\n * const items = await content.blog.list(ctx, { status: \"published\" });\n * items.page[0].data.title; // string\n * ```\n */\n\nimport { defineContentType, createTypedHelpers } from \"convex-cms\";\nimport { components } from \"./_generated/api\";\nimport { v } from \"convex/values\";\n\n// =============================================================================\n// CONTENT TYPE DEFINITIONS\n// =============================================================================\n// Define your content types here. These are automatically registered and\n// available in the admin API. Code-defined types show as \"Native Fields\"\n// and cannot be edited/deleted through the admin UI.\n\nexport const blogPost = defineContentType({\n name: \"Blog Post\",\n validator: v.object({\n title: v.string(),\n slug: v.string(),\n content: v.string(),\n excerpt: v.optional(v.string()),\n publishedAt: v.optional(v.number()),\n }),\n meta: {\n displayName: \"Blog Post\",\n titleField: \"title\",\n slugField: \"slug\",\n fields: {\n title: {\n label: \"Title\",\n maxLength: 200,\n searchable: true,\n },\n slug: {\n label: \"URL Slug\",\n description: \"URL-friendly identifier\",\n },\n content: {\n label: \"Content\",\n renderAs: \"richText\",\n },\n excerpt: {\n label: \"Excerpt\",\n maxLength: 300,\n },\n publishedAt: {\n label: \"Publish Date\",\n renderAs: \"datetime\",\n },\n },\n },\n});\n\n// =============================================================================\n// TYPED HELPERS\n// =============================================================================\n// Create type-safe CRUD helpers for programmatic access.\n// Use these in Convex functions for fully typed data access.\n\nexport const content = createTypedHelpers(components.cms, {\n blog: blogPost,\n});\n";
|
|
7
7
|
//# sourceMappingURL=cmsClient.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cmsClient.d.ts","sourceRoot":"","sources":["../../../src/cli/templates/cmsClient.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,eAAO,MAAM,mBAAmB
|
|
1
|
+
{"version":3,"file":"cmsClient.d.ts","sourceRoot":"","sources":["../../../src/cli/templates/cmsClient.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,eAAO,MAAM,mBAAmB,87EA+E/B,CAAC"}
|