convex-cms 0.0.6 → 0.0.7
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 +68 -101
- package/admin/src/components/BreakingChangesWarningDialog.tsx +5 -5
- package/admin/src/components/BulkOperationModal.tsx +14 -14
- package/admin/src/components/ContentEntryEditor.tsx +8 -8
- package/admin/src/components/ContentTypeFormModal.tsx +122 -82
- package/admin/src/components/Header.tsx +5 -2
- package/admin/src/components/SchemaDriftWarning.tsx +126 -0
- package/admin/src/components/TaxonomyEditor.tsx +2 -2
- package/admin/src/components/TermTree.tsx +3 -3
- package/admin/src/components/UploadDropzone.tsx +7 -7
- package/admin/src/components/VersionCompare.tsx +13 -13
- package/admin/src/components/VersionHistory.tsx +2 -2
- package/admin/src/components/VersionRollbackModal.tsx +5 -5
- package/admin/src/components/cmsds/CmsButton.tsx +2 -2
- package/admin/src/components/cmsds/CmsDialog.tsx +4 -1
- package/admin/src/components/cmsds/CmsStatusBadge.tsx +5 -5
- package/admin/src/components/fields/JsonField.tsx +1 -1
- package/admin/src/components/fields/ReferenceField.tsx +9 -9
- package/admin/src/components/fields/TagField.tsx +1 -1
- package/admin/src/contexts/SettingsConfigContext.tsx +10 -3
- package/admin/src/embed/index.tsx +29 -9
- package/admin/src/embed/pages/ContentTypeEntries.tsx +25 -0
- package/admin/src/embed/pages/Entry.tsx +114 -0
- package/admin/src/embed/pages/Media.tsx +3 -1
- package/admin/src/embed/pages/NewEntry.tsx +83 -0
- package/admin/src/embed/pages/index.ts +3 -0
- package/admin/src/pages/ContentPage.tsx +27 -20
- package/admin/src/pages/ContentTypeEntriesPage.tsx +466 -0
- package/admin/src/pages/ContentTypesPage.tsx +65 -19
- package/admin/src/pages/DashboardPage.tsx +3 -0
- package/admin/src/pages/SettingsPage.tsx +4 -4
- package/admin/src/pages/index.ts +1 -0
- package/admin/src/routes/__root.tsx +10 -10
- package/admin/src/routes/entries/$entryId.tsx +1 -1
- package/admin/src/routes/entries/type/$contentTypeId.tsx +1 -1
- package/admin/src/styles/globals.css +31 -5
- package/admin/src/styles/tailwind-config.css +25 -0
- package/admin/src/styles/theme.css +50 -0
- package/admin-dist/nitro.json +1 -1
- package/admin-dist/public/assets/CmsEmptyState-6-PLaXtD.js +1 -0
- package/admin-dist/public/assets/CmsPageHeader-SoF4Epu9.js +1 -0
- package/admin-dist/public/assets/CmsStatusBadge-D7kYaohx.js +1 -0
- package/admin-dist/public/assets/{CmsSurface-DBy5Lumx.js → CmsSurface-BvksBm6W.js} +1 -1
- package/admin-dist/public/assets/CmsToolbar-DlZPMe2B.js +1 -0
- package/admin-dist/public/assets/ContentEntryEditor-C6n9xLS9.js +4 -0
- package/admin-dist/public/assets/TaxonomyFilter-CFX1_g8s.js +1 -0
- package/admin-dist/public/assets/_contentTypeId-DTv8UoTp.js +1 -0
- package/admin-dist/public/assets/_entryId-D3lr5Dvy.js +1 -0
- package/admin-dist/public/assets/alert-BAHTL6ao.js +1 -0
- package/admin-dist/public/assets/badge-oJv4Eai8.js +1 -0
- package/admin-dist/public/assets/{circle-check-big-CpLxAvEj.js → circle-check-big-3OHxNDhO.js} +1 -1
- package/admin-dist/public/assets/command-DwgQs69u.js +1 -0
- package/admin-dist/public/assets/content-CKQ4QwW2.js +1 -0
- package/admin-dist/public/assets/content-types-BrttaLpc.js +1 -0
- package/admin-dist/public/assets/globals-CoCRjt0K.css +1 -0
- package/admin-dist/public/assets/index-DOkgTSx0.js +1 -0
- package/admin-dist/public/assets/main-DV6oxWnU.js +102 -0
- package/admin-dist/public/assets/media-B2i-mCbx.js +1 -0
- package/admin-dist/public/assets/new._contentTypeId-VF63rpic.js +1 -0
- package/admin-dist/public/assets/pencil-CX1CiTDD.js +1 -0
- package/admin-dist/public/assets/refresh-cw-Cm-YOeFI.js +1 -0
- package/admin-dist/public/assets/{rotate-ccw-BZpZtw0N.js → rotate-ccw-B45JsL5f.js} +1 -1
- package/admin-dist/public/assets/scroll-area-b3A1HHR7.js +1 -0
- package/admin-dist/public/assets/{search-BvgYr-c9.js → search-DKKh_DdH.js} +1 -1
- package/admin-dist/public/assets/settings-CGVDEV1r.js +1 -0
- package/admin-dist/public/assets/switch-BTMY8Qnk.js +1 -0
- package/admin-dist/public/assets/tabs-DUQwUoIb.js +1 -0
- package/admin-dist/public/assets/tanstack-adapter-f7AHmQ5L.js +1 -0
- package/admin-dist/public/assets/taxonomies-DvMppdiD.js +1 -0
- package/admin-dist/public/assets/trash-D7e0uKd9.js +1 -0
- package/admin-dist/public/assets/{useBreadcrumbLabel-D00rvqjw.js → useBreadcrumbLabel-CF2KYwsw.js} +1 -1
- package/admin-dist/public/assets/usePermissions-DWBImEOW.js +1 -0
- package/admin-dist/server/_chunks/_libs/@date-fns/tz.mjs +2 -2
- package/admin-dist/server/_chunks/_libs/@radix-ui/react-avatar.mjs +1 -1
- package/admin-dist/server/_chunks/_libs/@radix-ui/react-collection.mjs +1 -1
- package/admin-dist/server/_chunks/_libs/@radix-ui/react-context.mjs +2 -2
- package/admin-dist/server/_chunks/_libs/@radix-ui/react-dialog.mjs +2 -2
- package/admin-dist/server/_chunks/_libs/@radix-ui/react-label.mjs +1 -1
- package/admin-dist/server/_chunks/_libs/@radix-ui/react-menu.mjs +1 -1
- package/admin-dist/server/_chunks/_libs/@radix-ui/react-popover.mjs +1 -1
- package/admin-dist/server/_chunks/_libs/@radix-ui/react-primitive.mjs +6 -72
- package/admin-dist/server/_chunks/_libs/@radix-ui/react-select.mjs +1 -1
- package/admin-dist/server/_chunks/_libs/@radix-ui/react-separator.mjs +1 -1
- package/admin-dist/server/_chunks/_libs/@radix-ui/react-slot.mjs +20 -435
- package/admin-dist/server/_chunks/_libs/@radix-ui/react-visually-hidden.mjs +30 -3
- package/admin-dist/server/_chunks/_libs/@tanstack/history.mjs +0 -376
- package/admin-dist/server/_chunks/_libs/@tanstack/react-router.mjs +168 -383
- package/admin-dist/server/_chunks/_libs/@tanstack/router-core.mjs +451 -1195
- package/admin-dist/server/_chunks/_libs/react-dom.mjs +5 -5
- package/admin-dist/server/_chunks/_libs/react.mjs +2 -2
- package/admin-dist/server/_libs/cmdk.mjs +1 -1
- package/admin-dist/server/_libs/convex.mjs +3 -3
- package/admin-dist/server/_libs/cookie-es.mjs +1 -58
- package/admin-dist/server/_libs/date-fns.mjs +1 -1
- package/admin-dist/server/_libs/lucide-react.mjs +117 -103
- package/admin-dist/server/_libs/seroval-plugins.mjs +1 -58
- package/admin-dist/server/_libs/seroval.mjs +1 -1765
- package/admin-dist/server/_libs/zod.mjs +1 -1
- package/admin-dist/server/_ssr/CmsEmptyState-BM8DghTl.mjs +38 -0
- package/admin-dist/server/_ssr/{CmsPageHeader-ClNPU7Up.mjs → CmsPageHeader-BHUmrIWD.mjs} +1 -1
- package/admin-dist/server/_ssr/{CmsStatusBadge-CojMbrY7.mjs → CmsStatusBadge-D0Zb0oRl.mjs} +7 -7
- package/admin-dist/server/_ssr/{CmsSurface-Dcv440rp.mjs → CmsSurface-B2eBr-47.mjs} +1 -1
- package/admin-dist/server/_ssr/{CmsToolbar-BKv1nL6u.mjs → CmsToolbar-BCrwg7OL.mjs} +2 -3
- package/admin-dist/server/_ssr/{ContentEntryEditor-weiXSBdZ.mjs → ContentEntryEditor-Cjfm0uhr.mjs} +46 -49
- package/admin-dist/server/_ssr/{TaxonomyFilter-BPQ57Mwk.mjs → TaxonomyFilter-C4pD0kfM.mjs} +4 -5
- package/admin-dist/server/_ssr/{_contentTypeId-DyyauLOs.mjs → _contentTypeId-CiDiX-p7.mjs} +34 -43
- package/admin-dist/server/_ssr/{_entryId-9Cafwxmw.mjs → _entryId-9GxatOkL.mjs} +35 -47
- package/admin-dist/server/_ssr/_tanstack-start-manifest_v-CC7UrHKE.mjs +4 -0
- package/admin-dist/server/_ssr/badge-EI998zba.mjs +39 -0
- package/admin-dist/server/_ssr/{command-CEf8YBxY.mjs → command-BLAWQhUw.mjs} +2 -2
- package/admin-dist/server/_ssr/{config.server-D7JHDcDv.mjs → config.server-BOr7Jxr4.mjs} +5 -14
- package/admin-dist/server/_ssr/{content-ZFWVzO25.mjs → content-BHX39L4D.mjs} +63 -63
- package/admin-dist/server/_ssr/content-types-DCzrBhTH.mjs +459 -0
- package/admin-dist/server/_ssr/{index-BlSIlH4Z.mjs → index-DwM_5VNP.mjs} +114 -30
- package/admin-dist/server/_ssr/index.mjs +3459 -62
- package/admin-dist/server/_ssr/{media-CD2_NUMw.mjs → media-CbzgTRRQ.mjs} +31 -43
- package/admin-dist/server/_ssr/{new._contentTypeId-dmZy6PBX.mjs → new._contentTypeId-6Ph-Gtlw.mjs} +33 -45
- package/admin-dist/server/_ssr/router-vd1nySeP.mjs +3041 -0
- package/admin-dist/server/_ssr/{scroll-area-BH_1K-WT.mjs → scroll-area--B9snFTJ.mjs} +1 -1
- package/admin-dist/server/_ssr/{settings-DVdsoWoh.mjs → settings-DlTO2JSj.mjs} +34 -43
- package/admin-dist/server/_ssr/{switch-DX_X8vZl.mjs → switch-C05NgNW0.mjs} +1 -1
- package/admin-dist/server/_ssr/{tabs-4FWM0sn8.mjs → tabs-DAk2J5xy.mjs} +9 -10
- package/admin-dist/server/_ssr/{tanstack-adapter-D3ZcKtbY.mjs → tanstack-adapter-DWbaPByn.mjs} +15 -1
- package/admin-dist/server/_ssr/{taxonomies-BHFfO9Yr.mjs → taxonomies-B8nqce6u.mjs} +35 -44
- package/admin-dist/server/_ssr/{trash-9tUB2KwI.mjs → trash-zdlZgpTo.mjs} +30 -39
- package/admin-dist/server/_ssr/{useBreadcrumbLabel-DVme3DSb.mjs → useBreadcrumbLabel-DpEKyG1h.mjs} +1 -1
- package/admin-dist/server/_ssr/{usePermissions-zAQj-ruE.mjs → usePermissions-olYRd9S9.mjs} +1 -1
- package/admin-dist/server/index.mjs +168 -203
- package/dist/cli/templates/cmsClient.d.ts +1 -1
- package/dist/cli/templates/cmsClient.d.ts.map +1 -1
- package/dist/cli/templates/cmsClient.js +30 -11
- package/dist/cli/templates/cmsClient.js.map +1 -1
- package/dist/cli/templates/cmsConfig.d.ts +1 -1
- package/dist/cli/templates/cmsConfig.d.ts.map +1 -1
- package/dist/cli/templates/cmsConfig.js +3 -3
- package/dist/client/admin/contentLock.d.ts +4 -4
- package/dist/client/admin/contentLock.d.ts.map +1 -1
- package/dist/client/admin/contentLock.js +1 -1
- package/dist/client/admin/contentLock.js.map +1 -1
- package/dist/client/admin/contentTypes.d.ts +328 -290
- package/dist/client/admin/contentTypes.d.ts.map +1 -1
- package/dist/client/admin/contentTypes.js +307 -9
- package/dist/client/admin/contentTypes.js.map +1 -1
- package/dist/client/admin/entries.d.ts +18 -19
- package/dist/client/admin/entries.d.ts.map +1 -1
- package/dist/client/admin/entries.js +33 -8
- package/dist/client/admin/entries.js.map +1 -1
- package/dist/client/admin/index.d.ts +694 -642
- package/dist/client/admin/index.d.ts.map +1 -1
- package/dist/client/admin/index.js +45 -5
- package/dist/client/admin/index.js.map +1 -1
- package/dist/client/admin/media.d.ts.map +1 -1
- package/dist/client/admin/taxonomies.d.ts.map +1 -1
- package/dist/client/admin/trash.d.ts +3 -4
- package/dist/client/admin/trash.d.ts.map +1 -1
- package/dist/client/admin/types.d.ts +185 -4
- package/dist/client/admin/types.d.ts.map +1 -1
- package/dist/client/admin/validators.d.ts +2009 -25
- package/dist/client/admin/validators.d.ts.map +1 -1
- package/dist/client/admin/validators.js +15 -4
- package/dist/client/admin/validators.js.map +1 -1
- package/dist/client/admin/versions.d.ts +1 -1
- package/dist/client/admin/versions.d.ts.map +1 -1
- package/dist/client/agentTools.d.ts +1 -4
- package/dist/client/agentTools.d.ts.map +1 -1
- package/dist/client/agentTools.js +9 -21
- package/dist/client/agentTools.js.map +1 -1
- package/dist/client/config.d.ts +10 -0
- package/dist/client/config.d.ts.map +1 -1
- package/dist/client/config.js +1 -0
- package/dist/client/config.js.map +1 -1
- package/dist/client/defineContent.d.ts +338 -0
- package/dist/client/defineContent.d.ts.map +1 -0
- package/dist/client/defineContent.js +368 -0
- package/dist/client/defineContent.js.map +1 -0
- package/dist/client/index.d.ts +2 -0
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +2 -0
- package/dist/client/index.js.map +1 -1
- package/dist/client/queryBuilder.d.ts +0 -15
- package/dist/client/queryBuilder.d.ts.map +1 -1
- package/dist/client/queryBuilder.js +0 -23
- package/dist/client/queryBuilder.js.map +1 -1
- package/dist/client/registry.d.ts +77 -0
- package/dist/client/registry.d.ts.map +1 -0
- package/dist/client/registry.js +95 -0
- package/dist/client/registry.js.map +1 -0
- package/dist/client/schema/defineContentType.d.ts +36 -24
- package/dist/client/schema/defineContentType.d.ts.map +1 -1
- package/dist/client/schema/defineContentType.js +176 -128
- package/dist/client/schema/defineContentType.js.map +1 -1
- package/dist/client/schema/typedClient.d.ts.map +1 -1
- package/dist/client/schema/typedClient.js +2 -10
- package/dist/client/schema/typedClient.js.map +1 -1
- package/dist/client/schema/types.d.ts +16 -9
- package/dist/client/schema/types.d.ts.map +1 -1
- package/dist/client/schema/types.js.map +1 -1
- package/dist/client/utils/toSlug.d.ts +60 -0
- package/dist/client/utils/toSlug.d.ts.map +1 -0
- package/dist/client/utils/toSlug.js +31 -0
- package/dist/client/utils/toSlug.js.map +1 -0
- package/dist/client/wrapper.d.ts +2 -2
- package/dist/client/wrapper.d.ts.map +1 -1
- package/dist/client/wrapper.js +22 -30
- package/dist/client/wrapper.js.map +1 -1
- package/dist/component/_generated/component.d.ts +24 -28
- package/dist/component/_generated/component.d.ts.map +1 -1
- package/dist/component/authorizationHooks.d.ts +1 -1
- package/dist/component/authorizationHooks.d.ts.map +1 -1
- package/dist/component/authorizationHooks.js +2 -2
- package/dist/component/authorizationHooks.js.map +1 -1
- package/dist/component/bulkOperations.d.ts.map +1 -1
- package/dist/component/bulkOperations.js +7 -4
- package/dist/component/bulkOperations.js.map +1 -1
- package/dist/component/contentEntries.d.ts +18 -56
- package/dist/component/contentEntries.d.ts.map +1 -1
- package/dist/component/contentEntries.js +45 -137
- package/dist/component/contentEntries.js.map +1 -1
- package/dist/component/contentEntryMutations.d.ts +14 -14
- package/dist/component/contentEntryMutations.d.ts.map +1 -1
- package/dist/component/contentEntryMutations.js +40 -43
- package/dist/component/contentEntryMutations.js.map +1 -1
- package/dist/component/contentEntryValidation.d.ts +3 -3
- package/dist/component/contentEntryValidation.js +6 -9
- package/dist/component/contentEntryValidation.js.map +1 -1
- package/dist/component/contentLock.d.ts +7 -7
- package/dist/component/contentLock.js +3 -3
- package/dist/component/contentLock.js.map +1 -1
- package/dist/component/contentTypeMigration.d.ts +1 -1
- package/dist/component/contentTypeMigration.js +2 -2
- package/dist/component/contentTypeMigration.js.map +1 -1
- package/dist/component/contentTypeMutations.d.ts.map +1 -1
- package/dist/component/contentTypeMutations.js +7 -6
- package/dist/component/contentTypeMutations.js.map +1 -1
- package/dist/component/convex.config.d.ts.map +1 -1
- package/dist/component/convex.config.js +1 -1
- package/dist/component/convex.config.js.map +1 -1
- package/dist/component/eventEmitter.d.ts +0 -1
- package/dist/component/eventEmitter.d.ts.map +1 -1
- package/dist/component/eventEmitter.js.map +1 -1
- package/dist/component/exportImport.d.ts +37 -37
- package/dist/component/exportImport.d.ts.map +1 -1
- package/dist/component/exportImport.js +34 -34
- package/dist/component/exportImport.js.map +1 -1
- package/dist/component/lib/deepReferenceResolver.d.ts +2 -2
- package/dist/component/lib/deepReferenceResolver.d.ts.map +1 -1
- package/dist/component/lib/deepReferenceResolver.js +13 -8
- package/dist/component/lib/deepReferenceResolver.js.map +1 -1
- package/dist/component/lib/ragContentChunker.d.ts +3 -3
- package/dist/component/lib/ragContentChunker.d.ts.map +1 -1
- package/dist/component/lib/ragContentChunker.js +4 -4
- package/dist/component/lib/ragContentChunker.js.map +1 -1
- package/dist/component/lib/referenceResolver.d.ts.map +1 -1
- package/dist/component/lib/referenceResolver.js +10 -17
- package/dist/component/lib/referenceResolver.js.map +1 -1
- package/dist/component/mediaAssetMutations.js +4 -4
- package/dist/component/mediaAssetMutations.js.map +1 -1
- package/dist/component/ragContentIndexer.d.ts +2 -2
- package/dist/component/ragContentIndexer.d.ts.map +1 -1
- package/dist/component/ragContentIndexer.js +44 -48
- package/dist/component/ragContentIndexer.js.map +1 -1
- package/dist/component/roles.d.ts +3 -3
- package/dist/component/scheduledPublish.d.ts +4 -4
- package/dist/component/scheduledPublish.js +3 -3
- package/dist/component/scheduledPublish.js.map +1 -1
- package/dist/component/schema.d.ts +18 -18
- package/dist/component/schema.js +5 -5
- package/dist/component/schema.js.map +1 -1
- package/dist/component/trash.d.ts +6 -9
- package/dist/component/trash.d.ts.map +1 -1
- package/dist/component/trash.js +12 -36
- package/dist/component/trash.js.map +1 -1
- package/dist/component/userContext.d.ts +1 -2
- package/dist/component/userContext.d.ts.map +1 -1
- package/dist/component/userContext.js +1 -2
- package/dist/component/userContext.js.map +1 -1
- package/dist/component/validators.d.ts +27 -33
- package/dist/component/validators.d.ts.map +1 -1
- package/dist/component/validators.js +3 -5
- package/dist/component/validators.js.map +1 -1
- package/dist/component/versionMutations.d.ts +1 -1
- package/dist/component/webhookTrigger.d.ts +14 -14
- package/dist/test.d.ts +30 -30
- package/dist/test.d.ts.map +1 -1
- package/dist/test.js +24 -24
- package/dist/test.js.map +1 -1
- package/package.json +1 -1
- package/admin-dist/public/assets/CmsEmptyState-Do_erIgn.js +0 -5
- package/admin-dist/public/assets/CmsPageHeader-qDwPGi48.js +0 -1
- package/admin-dist/public/assets/CmsStatusBadge-Dd9uToHE.js +0 -1
- package/admin-dist/public/assets/CmsToolbar-D1-Y-7SK.js +0 -1
- package/admin-dist/public/assets/ContentEntryEditor-CWBiIx52.js +0 -4
- package/admin-dist/public/assets/TaxonomyFilter-CdYQawxb.js +0 -1
- package/admin-dist/public/assets/_contentTypeId-D9VMP6Gs.js +0 -1
- package/admin-dist/public/assets/_entryId-2FlCfqE7.js +0 -1
- package/admin-dist/public/assets/alert-GxZx0y5c.js +0 -1
- package/admin-dist/public/assets/badge-BAlGIjop.js +0 -1
- package/admin-dist/public/assets/command-di7XCqcv.js +0 -1
- package/admin-dist/public/assets/content-D8zELsDG.js +0 -1
- package/admin-dist/public/assets/content-types-BmzD0krT.js +0 -2
- package/admin-dist/public/assets/globals-BvFfH-v9.css +0 -1
- package/admin-dist/public/assets/index-zqfj4T_v.js +0 -1
- package/admin-dist/public/assets/label-B6PPtKR5.js +0 -1
- package/admin-dist/public/assets/link-2-W2fVnVOf.js +0 -1
- package/admin-dist/public/assets/list-F8O0lZXC.js +0 -1
- package/admin-dist/public/assets/main-dZT72bAG.js +0 -97
- package/admin-dist/public/assets/media-CETueFbV.js +0 -1
- package/admin-dist/public/assets/new._contentTypeId-BV2-TyyR.js +0 -1
- package/admin-dist/public/assets/plus-AABQIF0N.js +0 -1
- package/admin-dist/public/assets/scroll-area-CDfk-zrz.js +0 -1
- package/admin-dist/public/assets/select-BuiHcMzS.js +0 -1
- package/admin-dist/public/assets/settings-DBxbYDvn.js +0 -1
- package/admin-dist/public/assets/switch-DiJvolcs.js +0 -1
- package/admin-dist/public/assets/tabs-Cgz6G_Xy.js +0 -1
- package/admin-dist/public/assets/tanstack-adapter-BknsSgra.js +0 -1
- package/admin-dist/public/assets/taxonomies-DOErsLl5.js +0 -1
- package/admin-dist/public/assets/textarea-CgggMxUX.js +0 -1
- package/admin-dist/public/assets/trash-BU4ANuaW.js +0 -1
- package/admin-dist/public/assets/triangle-alert-lvCbwp0s.js +0 -1
- package/admin-dist/public/assets/usePermissions-D7tQowaF.js +0 -1
- package/admin-dist/server/_libs/h3-v2.mjs +0 -277
- package/admin-dist/server/_ssr/CmsButton-DbzfJru_.mjs +0 -125
- package/admin-dist/server/_ssr/CmsEmptyState-CuvcXr3Z.mjs +0 -290
- package/admin-dist/server/_ssr/_tanstack-start-manifest_v-Dk-FIYPN.mjs +0 -4
- package/admin-dist/server/_ssr/content-types-D25lUE-j.mjs +0 -1312
- package/admin-dist/server/_ssr/label-PblVvdRv.mjs +0 -22
- package/admin-dist/server/_ssr/router-x6Ab8T4s.mjs +0 -1622
- package/admin-dist/server/_ssr/select-CrfEkFJw.mjs +0 -142
- package/admin-dist/server/_ssr/textarea-CZVaroMc.mjs +0 -18
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* In-Memory Type Registry for Code-Defined Content Types
|
|
3
|
+
*
|
|
4
|
+
* This registry stores content type definitions in memory, enabling the
|
|
5
|
+
* "no-sync" architecture where code-defined types don't need database records.
|
|
6
|
+
*
|
|
7
|
+
* Key concepts:
|
|
8
|
+
* - Code-defined types live here (registered via `defineContentType`)
|
|
9
|
+
* - DB-defined types live in the `contentTypes` table
|
|
10
|
+
* - Lookup by slug checks code first, then DB
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```typescript
|
|
14
|
+
* import { registerContentType, getCodeDefinedType } from "./registry";
|
|
15
|
+
*
|
|
16
|
+
* // Register a content type (done automatically by defineContentType)
|
|
17
|
+
* registerContentType(blogPostDefinition);
|
|
18
|
+
*
|
|
19
|
+
* // Look up a type by slug
|
|
20
|
+
* const def = getCodeDefinedType("blog_post");
|
|
21
|
+
* if (def) {
|
|
22
|
+
* console.log(def.meta.displayName); // "Blog Post"
|
|
23
|
+
* console.log(def.slug); // "blog_post"
|
|
24
|
+
* }
|
|
25
|
+
* ```
|
|
26
|
+
*/
|
|
27
|
+
import type { ContentTypeDefinition } from "./schema/types.js";
|
|
28
|
+
/**
|
|
29
|
+
* Register a content type definition in the in-memory registry.
|
|
30
|
+
*
|
|
31
|
+
* This is called automatically by `defineContentType` when `register: true`
|
|
32
|
+
* is passed (the default). You typically don't need to call this directly.
|
|
33
|
+
*
|
|
34
|
+
* @param definition - The content type definition to register
|
|
35
|
+
* @throws Error if a type with the same slug is already registered
|
|
36
|
+
*/
|
|
37
|
+
export declare function registerContentType(definition: ContentTypeDefinition): void;
|
|
38
|
+
/**
|
|
39
|
+
* Get a code-defined content type by slug.
|
|
40
|
+
*
|
|
41
|
+
* @param slug - The content type slug (e.g., "blog_post")
|
|
42
|
+
* @returns The definition, or null if not found in the code registry
|
|
43
|
+
*/
|
|
44
|
+
export declare function getCodeDefinedType(slug: string): ContentTypeDefinition | null;
|
|
45
|
+
/**
|
|
46
|
+
* Get all code-defined content types.
|
|
47
|
+
*
|
|
48
|
+
* @returns Array of all registered content type definitions
|
|
49
|
+
*/
|
|
50
|
+
export declare function getAllCodeDefinedTypes(): ContentTypeDefinition[];
|
|
51
|
+
/**
|
|
52
|
+
* Get all code-defined content type slugs.
|
|
53
|
+
*
|
|
54
|
+
* @returns Array of registered content type slugs
|
|
55
|
+
*/
|
|
56
|
+
export declare function getCodeDefinedTypeNames(): string[];
|
|
57
|
+
/**
|
|
58
|
+
* Check if a content type slug is registered in code.
|
|
59
|
+
*
|
|
60
|
+
* @param slug - The content type slug to check
|
|
61
|
+
* @returns true if the type is code-defined
|
|
62
|
+
*/
|
|
63
|
+
export declare function isCodeDefinedType(slug: string): boolean;
|
|
64
|
+
/**
|
|
65
|
+
* Clear all registered content types.
|
|
66
|
+
*
|
|
67
|
+
* **Warning**: This is primarily for testing. In production, content types
|
|
68
|
+
* are registered at module load time and should remain stable.
|
|
69
|
+
*/
|
|
70
|
+
export declare function clearRegistry(): void;
|
|
71
|
+
/**
|
|
72
|
+
* Get the count of registered content types.
|
|
73
|
+
*
|
|
74
|
+
* @returns Number of code-defined content types
|
|
75
|
+
*/
|
|
76
|
+
export declare function getRegistrySize(): number;
|
|
77
|
+
//# sourceMappingURL=registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/client/registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAI/D;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,qBAAqB,GAAG,IAAI,CAQ3E;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,qBAAqB,GAAG,IAAI,CAE7E;AAED;;;;GAIG;AACH,wBAAgB,sBAAsB,IAAI,qBAAqB,EAAE,CAEhE;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,IAAI,MAAM,EAAE,CAElD;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEvD;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,IAAI,IAAI,CAEpC;AAED;;;;GAIG;AACH,wBAAgB,eAAe,IAAI,MAAM,CAExC"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* In-Memory Type Registry for Code-Defined Content Types
|
|
3
|
+
*
|
|
4
|
+
* This registry stores content type definitions in memory, enabling the
|
|
5
|
+
* "no-sync" architecture where code-defined types don't need database records.
|
|
6
|
+
*
|
|
7
|
+
* Key concepts:
|
|
8
|
+
* - Code-defined types live here (registered via `defineContentType`)
|
|
9
|
+
* - DB-defined types live in the `contentTypes` table
|
|
10
|
+
* - Lookup by slug checks code first, then DB
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```typescript
|
|
14
|
+
* import { registerContentType, getCodeDefinedType } from "./registry";
|
|
15
|
+
*
|
|
16
|
+
* // Register a content type (done automatically by defineContentType)
|
|
17
|
+
* registerContentType(blogPostDefinition);
|
|
18
|
+
*
|
|
19
|
+
* // Look up a type by slug
|
|
20
|
+
* const def = getCodeDefinedType("blog_post");
|
|
21
|
+
* if (def) {
|
|
22
|
+
* console.log(def.meta.displayName); // "Blog Post"
|
|
23
|
+
* console.log(def.slug); // "blog_post"
|
|
24
|
+
* }
|
|
25
|
+
* ```
|
|
26
|
+
*/
|
|
27
|
+
const codeDefinedTypes = new Map();
|
|
28
|
+
/**
|
|
29
|
+
* Register a content type definition in the in-memory registry.
|
|
30
|
+
*
|
|
31
|
+
* This is called automatically by `defineContentType` when `register: true`
|
|
32
|
+
* is passed (the default). You typically don't need to call this directly.
|
|
33
|
+
*
|
|
34
|
+
* @param definition - The content type definition to register
|
|
35
|
+
* @throws Error if a type with the same slug is already registered
|
|
36
|
+
*/
|
|
37
|
+
export function registerContentType(definition) {
|
|
38
|
+
if (codeDefinedTypes.has(definition.slug)) {
|
|
39
|
+
throw new Error(`Content type "${definition.slug}" is already registered. ` +
|
|
40
|
+
`Content type slugs must be unique across all code-defined types.`);
|
|
41
|
+
}
|
|
42
|
+
codeDefinedTypes.set(definition.slug, definition);
|
|
43
|
+
}
|
|
44
|
+
/**
|
|
45
|
+
* Get a code-defined content type by slug.
|
|
46
|
+
*
|
|
47
|
+
* @param slug - The content type slug (e.g., "blog_post")
|
|
48
|
+
* @returns The definition, or null if not found in the code registry
|
|
49
|
+
*/
|
|
50
|
+
export function getCodeDefinedType(slug) {
|
|
51
|
+
return codeDefinedTypes.get(slug) ?? null;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Get all code-defined content types.
|
|
55
|
+
*
|
|
56
|
+
* @returns Array of all registered content type definitions
|
|
57
|
+
*/
|
|
58
|
+
export function getAllCodeDefinedTypes() {
|
|
59
|
+
return Array.from(codeDefinedTypes.values());
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Get all code-defined content type slugs.
|
|
63
|
+
*
|
|
64
|
+
* @returns Array of registered content type slugs
|
|
65
|
+
*/
|
|
66
|
+
export function getCodeDefinedTypeNames() {
|
|
67
|
+
return Array.from(codeDefinedTypes.keys());
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Check if a content type slug is registered in code.
|
|
71
|
+
*
|
|
72
|
+
* @param slug - The content type slug to check
|
|
73
|
+
* @returns true if the type is code-defined
|
|
74
|
+
*/
|
|
75
|
+
export function isCodeDefinedType(slug) {
|
|
76
|
+
return codeDefinedTypes.has(slug);
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* Clear all registered content types.
|
|
80
|
+
*
|
|
81
|
+
* **Warning**: This is primarily for testing. In production, content types
|
|
82
|
+
* are registered at module load time and should remain stable.
|
|
83
|
+
*/
|
|
84
|
+
export function clearRegistry() {
|
|
85
|
+
codeDefinedTypes.clear();
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Get the count of registered content types.
|
|
89
|
+
*
|
|
90
|
+
* @returns Number of code-defined content types
|
|
91
|
+
*/
|
|
92
|
+
export function getRegistrySize() {
|
|
93
|
+
return codeDefinedTypes.size;
|
|
94
|
+
}
|
|
95
|
+
//# sourceMappingURL=registry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/client/registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAIH,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAiC,CAAC;AAElE;;;;;;;;GAQG;AACH,MAAM,UAAU,mBAAmB,CAAC,UAAiC;IACnE,IAAI,gBAAgB,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QAC1C,MAAM,IAAI,KAAK,CACb,iBAAiB,UAAU,CAAC,IAAI,2BAA2B;YACzD,kEAAkE,CACrE,CAAC;IACJ,CAAC;IACD,gBAAgB,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;AACpD,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAAC,IAAY;IAC7C,OAAO,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC;AAC5C,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,sBAAsB;IACpC,OAAO,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,MAAM,EAAE,CAAC,CAAC;AAC/C,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,uBAAuB;IACrC,OAAO,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,CAAC,CAAC;AAC7C,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAAY;IAC5C,OAAO,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACpC,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,aAAa;IAC3B,gBAAgB,CAAC,KAAK,EAAE,CAAC;AAC3B,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,eAAe;IAC7B,OAAO,gBAAgB,CAAC,IAAI,CAAC;AAC/B,CAAC"}
|
|
@@ -5,37 +5,49 @@
|
|
|
5
5
|
* using Convex validators. Types are automatically inferred via Convex's
|
|
6
6
|
* native `Infer<typeof validator>` pattern.
|
|
7
7
|
*
|
|
8
|
-
*
|
|
8
|
+
* You can use either display names ("Blog Post") or slug format ("blog_post"):
|
|
9
|
+
* - Display names are automatically converted to slugs
|
|
10
|
+
* - Slugs are used for queries and code references
|
|
11
|
+
*
|
|
12
|
+
* @example Using a display name (recommended)
|
|
9
13
|
* ```typescript
|
|
10
14
|
* import { v } from "convex/values";
|
|
11
15
|
* import { defineContentType } from "convex-cms";
|
|
12
16
|
*
|
|
13
17
|
* export const blogPost = defineContentType({
|
|
14
|
-
* name: "blog_post"
|
|
18
|
+
* name: "Blog Post", // → slug: "blog_post"
|
|
19
|
+
* validator: v.object({
|
|
20
|
+
* title: v.string(),
|
|
21
|
+
* content: v.string(),
|
|
22
|
+
* }),
|
|
23
|
+
* meta: {
|
|
24
|
+
* displayName: "Blog Post",
|
|
25
|
+
* titleField: "title",
|
|
26
|
+
* },
|
|
27
|
+
* });
|
|
28
|
+
*
|
|
29
|
+
* // blogPost.slug === "blog_post"
|
|
30
|
+
* // blogPost.name === "Blog Post"
|
|
31
|
+
* ```
|
|
32
|
+
*
|
|
33
|
+
* @example Using slug format directly
|
|
34
|
+
* ```typescript
|
|
35
|
+
* export const blogPost = defineContentType({
|
|
36
|
+
* name: "blog_post", // Already a valid slug
|
|
15
37
|
* validator: v.object({
|
|
16
38
|
* title: v.string(),
|
|
17
|
-
* slug: v.string(),
|
|
18
39
|
* content: v.string(),
|
|
19
|
-
* author: v.id("contentEntries"),
|
|
20
|
-
* category: v.optional(v.union(v.literal("tech"), v.literal("news"))),
|
|
21
|
-
* publishedAt: v.optional(v.number()),
|
|
22
40
|
* }),
|
|
23
41
|
* meta: {
|
|
24
42
|
* displayName: "Blog Post",
|
|
25
43
|
* titleField: "title",
|
|
26
|
-
* slugField: "slug",
|
|
27
|
-
* fields: {
|
|
28
|
-
* title: { label: "Title", maxLength: 200 },
|
|
29
|
-
* content: { label: "Content", renderAs: "richText", searchable: true },
|
|
30
|
-
* author: { label: "Author", renderAs: "reference" },
|
|
31
|
-
* category: { label: "Category", renderAs: "select" },
|
|
32
|
-
* },
|
|
33
44
|
* },
|
|
34
45
|
* });
|
|
35
46
|
* ```
|
|
36
47
|
*/
|
|
37
48
|
import type { Validator } from "convex/values";
|
|
38
49
|
import type { ContentTypeConfig, ContentTypeDefinition } from "./types.js";
|
|
50
|
+
import { type ToSlugType } from "../utils/toSlug.js";
|
|
39
51
|
/**
|
|
40
52
|
* Creates a type-safe content type definition.
|
|
41
53
|
*
|
|
@@ -60,7 +72,7 @@ import type { ContentTypeConfig, ContentTypeDefinition } from "./types.js";
|
|
|
60
72
|
* import { defineContentType } from "convex-cms";
|
|
61
73
|
*
|
|
62
74
|
* export const blogPost = defineContentType({
|
|
63
|
-
* name: "blog_post"
|
|
75
|
+
* name: "Blog Post", // Display name → auto-converted to slug "blog_post"
|
|
64
76
|
* validator: v.object({
|
|
65
77
|
* title: v.string(),
|
|
66
78
|
* content: v.string(),
|
|
@@ -81,7 +93,7 @@ import type { ContentTypeConfig, ContentTypeDefinition } from "./types.js";
|
|
|
81
93
|
*
|
|
82
94
|
* ```typescript
|
|
83
95
|
* export const product = defineContentType({
|
|
84
|
-
* name: "
|
|
96
|
+
* name: "Product",
|
|
85
97
|
* validator: v.object({
|
|
86
98
|
* name: v.string(),
|
|
87
99
|
* price: v.number(),
|
|
@@ -114,12 +126,12 @@ import type { ContentTypeConfig, ContentTypeDefinition } from "./types.js";
|
|
|
114
126
|
* @param config - The content type configuration
|
|
115
127
|
* @returns A frozen content type definition object
|
|
116
128
|
*
|
|
117
|
-
* @typeParam TName - The literal string type of the content type name
|
|
129
|
+
* @typeParam TName - The literal string type of the content type name (display or slug)
|
|
118
130
|
* @typeParam TValidator - The Convex validator type
|
|
119
131
|
*/
|
|
120
132
|
export declare function defineContentType<const TName extends string, TValidator extends Validator<Record<string, unknown>, "required", string>>(config: ContentTypeConfig<TValidator> & {
|
|
121
133
|
name: TName;
|
|
122
|
-
}): ContentTypeDefinition<TName
|
|
134
|
+
}): ContentTypeDefinition<ToSlugType<TName>, TValidator>;
|
|
123
135
|
/**
|
|
124
136
|
* Creates a content schema from multiple content type definitions.
|
|
125
137
|
*
|
|
@@ -157,25 +169,25 @@ export interface ContentSchemaInstance<T extends Record<string, ContentTypeDefin
|
|
|
157
169
|
*/
|
|
158
170
|
readonly definitions: T;
|
|
159
171
|
/**
|
|
160
|
-
* Get a content type definition by its
|
|
172
|
+
* Get a content type definition by its slug.
|
|
161
173
|
*
|
|
162
|
-
* @param
|
|
174
|
+
* @param slug - The content type slug (e.g., "blog_post")
|
|
163
175
|
* @returns The definition or undefined if not found
|
|
164
176
|
*/
|
|
165
|
-
getDefinition(
|
|
177
|
+
getDefinition(slug: string): ContentTypeDefinition | undefined;
|
|
166
178
|
/**
|
|
167
|
-
* Get all content type
|
|
179
|
+
* Get all content type slugs in the schema.
|
|
168
180
|
*
|
|
169
|
-
* @returns Array of content type
|
|
181
|
+
* @returns Array of content type slugs
|
|
170
182
|
*/
|
|
171
183
|
getContentTypeNames(): string[];
|
|
172
184
|
/**
|
|
173
185
|
* Check if a content type exists in the schema.
|
|
174
186
|
*
|
|
175
|
-
* @param
|
|
187
|
+
* @param slug - The content type slug to check
|
|
176
188
|
* @returns true if the content type exists
|
|
177
189
|
*/
|
|
178
|
-
hasContentType(
|
|
190
|
+
hasContentType(slug: string): boolean;
|
|
179
191
|
/**
|
|
180
192
|
* Get a content type definition by its key in the definitions object.
|
|
181
193
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defineContentType.d.ts","sourceRoot":"","sources":["../../../src/client/schema/defineContentType.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"defineContentType.d.ts","sourceRoot":"","sources":["../../../src/client/schema/defineContentType.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,KAAK,EACV,iBAAiB,EACjB,qBAAqB,EAGtB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAuB,KAAK,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAsC1E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgFG;AACH,wBAAgB,iBAAiB,CAC/B,KAAK,CAAC,KAAK,SAAS,MAAM,EAC1B,UAAU,SAAS,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,EAEzE,MAAM,EAAE,iBAAiB,CAAC,UAAU,CAAC,GAAG;IAAE,IAAI,EAAE,KAAK,CAAA;CAAE,GACtD,qBAAqB,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,UAAU,CAAC,CAiCtD;AAMD;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,mBAAmB,CACjC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC,EAC/C,WAAW,EAAE,CAAC,GAAG,qBAAqB,CAAC,CAAC,CAAC,CAmC1C;AAED;;GAEG;AACH,MAAM,WAAW,qBAAqB,CACpC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,qBAAqB,CAAC;IAE/C;;OAEG;IACH,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC;IAExB;;;;;OAKG;IACH,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,qBAAqB,GAAG,SAAS,CAAC;IAE/D;;;;OAIG;IACH,mBAAmB,IAAI,MAAM,EAAE,CAAC;IAEhC;;;;;OAKG;IACH,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IAEtC;;;;;OAKG;IACH,kBAAkB,CAAC,CAAC,SAAS,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;CACrD;AAMD;;;GAGG;AACH,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAED;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,kBAAkB,CAChC,UAAU,EAAE,qBAAqB,GAChC,uBAAuB,EAAE,CAsB3B"}
|