convex-cms 0.0.2 → 0.0.5-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (311) hide show
  1. package/README.md +109 -13
  2. package/admin-dist/nitro.json +15 -0
  3. package/admin-dist/public/assets/CmsEmptyState-CiMQwSQV.js +5 -0
  4. package/admin-dist/public/assets/CmsPageHeader-ohOq0luT.js +1 -0
  5. package/admin-dist/public/assets/CmsStatusBadge-BdNf0V9v.js +1 -0
  6. package/admin-dist/public/assets/CmsSurface-CWup6Jh7.js +1 -0
  7. package/admin-dist/public/assets/CmsToolbar-cEBlCHa3.js +1 -0
  8. package/admin-dist/public/assets/ContentEntryEditor-BY5ypfUs.js +4 -0
  9. package/admin-dist/public/assets/ErrorState-C4nJ-ml4.js +1 -0
  10. package/admin-dist/public/assets/TaxonomyFilter-BgE_SR_O.js +1 -0
  11. package/admin-dist/public/assets/_contentTypeId-DtZectcC.js +1 -0
  12. package/admin-dist/public/assets/_entryId-BpSmrfAm.js +1 -0
  13. package/admin-dist/public/assets/alert-Bf2l8kxw.js +1 -0
  14. package/admin-dist/public/assets/badge-qPrc4AUM.js +1 -0
  15. package/admin-dist/public/assets/circle-check-big-Dgozy3vV.js +1 -0
  16. package/admin-dist/public/assets/command-QOmNhlb0.js +1 -0
  17. package/admin-dist/public/assets/content-OEBGlxg1.js +1 -0
  18. package/admin-dist/public/assets/content-types-CjQliqVV.js +2 -0
  19. package/admin-dist/public/assets/globals-hAmgC66w.css +1 -0
  20. package/admin-dist/public/assets/index-BH_ECMhv.js +1 -0
  21. package/admin-dist/public/assets/label-DCsUdvFh.js +1 -0
  22. package/admin-dist/public/assets/link-2-Czw1N61H.js +1 -0
  23. package/admin-dist/public/assets/list-DtCsXj8-.js +1 -0
  24. package/admin-dist/public/assets/main-CXgkZMhe.js +97 -0
  25. package/admin-dist/public/assets/media-DTJ3-ViE.js +1 -0
  26. package/admin-dist/public/assets/new._contentTypeId-CoTDxKzf.js +1 -0
  27. package/admin-dist/public/assets/plus-xCFJK0RC.js +1 -0
  28. package/admin-dist/public/assets/rotate-ccw-DIqK63wY.js +1 -0
  29. package/admin-dist/public/assets/scroll-area-B-yrE66a.js +1 -0
  30. package/admin-dist/public/assets/search-CbCbboeU.js +1 -0
  31. package/admin-dist/public/assets/select-Co3TZFJb.js +1 -0
  32. package/admin-dist/public/assets/settings-BspTTv_o.js +1 -0
  33. package/admin-dist/public/assets/switch-CfavASmR.js +1 -0
  34. package/admin-dist/public/assets/tabs-CN5s5u2W.js +1 -0
  35. package/admin-dist/public/assets/tanstack-adapter-npeE3RdY.js +1 -0
  36. package/admin-dist/public/assets/taxonomies-CgG46fIF.js +1 -0
  37. package/admin-dist/public/assets/textarea-BJ0XFZpT.js +1 -0
  38. package/admin-dist/public/assets/trash-B3daldm5.js +1 -0
  39. package/admin-dist/public/assets/triangle-alert-BZRcqsUg.js +1 -0
  40. package/admin-dist/public/assets/useBreadcrumbLabel-DwZlwvFF.js +1 -0
  41. package/admin-dist/public/assets/usePermissions-C1JQhfqb.js +1 -0
  42. package/admin-dist/public/favicon.ico +0 -0
  43. package/admin-dist/server/_chunks/_libs/@date-fns/tz.mjs +217 -0
  44. package/admin-dist/server/_chunks/_libs/@floating-ui/core.mjs +719 -0
  45. package/admin-dist/server/_chunks/_libs/@floating-ui/dom.mjs +622 -0
  46. package/admin-dist/server/_chunks/_libs/@floating-ui/react-dom.mjs +292 -0
  47. package/admin-dist/server/_chunks/_libs/@floating-ui/utils.mjs +320 -0
  48. package/admin-dist/server/_chunks/_libs/@radix-ui/number.mjs +6 -0
  49. package/admin-dist/server/_chunks/_libs/@radix-ui/primitive.mjs +11 -0
  50. package/admin-dist/server/_chunks/_libs/@radix-ui/react-arrow.mjs +23 -0
  51. package/admin-dist/server/_chunks/_libs/@radix-ui/react-avatar.mjs +119 -0
  52. package/admin-dist/server/_chunks/_libs/@radix-ui/react-checkbox.mjs +270 -0
  53. package/admin-dist/server/_chunks/_libs/@radix-ui/react-collection.mjs +69 -0
  54. package/admin-dist/server/_chunks/_libs/@radix-ui/react-compose-refs.mjs +39 -0
  55. package/admin-dist/server/_chunks/_libs/@radix-ui/react-context.mjs +137 -0
  56. package/admin-dist/server/_chunks/_libs/@radix-ui/react-dialog.mjs +325 -0
  57. package/admin-dist/server/_chunks/_libs/@radix-ui/react-direction.mjs +9 -0
  58. package/admin-dist/server/_chunks/_libs/@radix-ui/react-dismissable-layer.mjs +210 -0
  59. package/admin-dist/server/_chunks/_libs/@radix-ui/react-dropdown-menu.mjs +253 -0
  60. package/admin-dist/server/_chunks/_libs/@radix-ui/react-focus-guards.mjs +29 -0
  61. package/admin-dist/server/_chunks/_libs/@radix-ui/react-focus-scope.mjs +206 -0
  62. package/admin-dist/server/_chunks/_libs/@radix-ui/react-id.mjs +14 -0
  63. package/admin-dist/server/_chunks/_libs/@radix-ui/react-label.mjs +23 -0
  64. package/admin-dist/server/_chunks/_libs/@radix-ui/react-menu.mjs +812 -0
  65. package/admin-dist/server/_chunks/_libs/@radix-ui/react-popover.mjs +300 -0
  66. package/admin-dist/server/_chunks/_libs/@radix-ui/react-popper.mjs +286 -0
  67. package/admin-dist/server/_chunks/_libs/@radix-ui/react-portal.mjs +16 -0
  68. package/admin-dist/server/_chunks/_libs/@radix-ui/react-presence.mjs +128 -0
  69. package/admin-dist/server/_chunks/_libs/@radix-ui/react-primitive.mjs +141 -0
  70. package/admin-dist/server/_chunks/_libs/@radix-ui/react-roving-focus.mjs +224 -0
  71. package/admin-dist/server/_chunks/_libs/@radix-ui/react-scroll-area.mjs +721 -0
  72. package/admin-dist/server/_chunks/_libs/@radix-ui/react-select.mjs +1163 -0
  73. package/admin-dist/server/_chunks/_libs/@radix-ui/react-separator.mjs +28 -0
  74. package/admin-dist/server/_chunks/_libs/@radix-ui/react-slot.mjs +601 -0
  75. package/admin-dist/server/_chunks/_libs/@radix-ui/react-switch.mjs +152 -0
  76. package/admin-dist/server/_chunks/_libs/@radix-ui/react-tabs.mjs +189 -0
  77. package/admin-dist/server/_chunks/_libs/@radix-ui/react-use-callback-ref.mjs +11 -0
  78. package/admin-dist/server/_chunks/_libs/@radix-ui/react-use-controllable-state.mjs +69 -0
  79. package/admin-dist/server/_chunks/_libs/@radix-ui/react-use-effect-event.mjs +1 -0
  80. package/admin-dist/server/_chunks/_libs/@radix-ui/react-use-escape-keydown.mjs +17 -0
  81. package/admin-dist/server/_chunks/_libs/@radix-ui/react-use-is-hydrated.mjs +15 -0
  82. package/admin-dist/server/_chunks/_libs/@radix-ui/react-use-layout-effect.mjs +6 -0
  83. package/admin-dist/server/_chunks/_libs/@radix-ui/react-use-previous.mjs +14 -0
  84. package/admin-dist/server/_chunks/_libs/@radix-ui/react-use-size.mjs +39 -0
  85. package/admin-dist/server/_chunks/_libs/@radix-ui/react-visually-hidden.mjs +33 -0
  86. package/admin-dist/server/_chunks/_libs/@tanstack/history.mjs +409 -0
  87. package/admin-dist/server/_chunks/_libs/@tanstack/react-router.mjs +1718 -0
  88. package/admin-dist/server/_chunks/_libs/@tanstack/react-store.mjs +56 -0
  89. package/admin-dist/server/_chunks/_libs/@tanstack/router-core.mjs +4829 -0
  90. package/admin-dist/server/_chunks/_libs/@tanstack/store.mjs +134 -0
  91. package/admin-dist/server/_chunks/_libs/react-dom.mjs +10781 -0
  92. package/admin-dist/server/_chunks/_libs/react.mjs +513 -0
  93. package/admin-dist/server/_libs/aria-hidden.mjs +122 -0
  94. package/admin-dist/server/_libs/class-variance-authority.mjs +44 -0
  95. package/admin-dist/server/_libs/clsx.mjs +16 -0
  96. package/admin-dist/server/_libs/cmdk.mjs +315 -0
  97. package/admin-dist/server/_libs/convex.mjs +4841 -0
  98. package/admin-dist/server/_libs/cookie-es.mjs +58 -0
  99. package/admin-dist/server/_libs/croner.mjs +1 -0
  100. package/admin-dist/server/_libs/crossws.mjs +1 -0
  101. package/admin-dist/server/_libs/date-fns.mjs +1716 -0
  102. package/admin-dist/server/_libs/detect-node-es.mjs +1 -0
  103. package/admin-dist/server/_libs/get-nonce.mjs +9 -0
  104. package/admin-dist/server/_libs/h3-v2.mjs +277 -0
  105. package/admin-dist/server/_libs/h3.mjs +401 -0
  106. package/admin-dist/server/_libs/hookable.mjs +1 -0
  107. package/admin-dist/server/_libs/isbot.mjs +20 -0
  108. package/admin-dist/server/_libs/lucide-react.mjs +850 -0
  109. package/admin-dist/server/_libs/ohash.mjs +1 -0
  110. package/admin-dist/server/_libs/react-day-picker.mjs +2201 -0
  111. package/admin-dist/server/_libs/react-remove-scroll-bar.mjs +82 -0
  112. package/admin-dist/server/_libs/react-remove-scroll.mjs +328 -0
  113. package/admin-dist/server/_libs/react-style-singleton.mjs +69 -0
  114. package/admin-dist/server/_libs/rou3.mjs +8 -0
  115. package/admin-dist/server/_libs/seroval-plugins.mjs +58 -0
  116. package/admin-dist/server/_libs/seroval.mjs +1765 -0
  117. package/admin-dist/server/_libs/srvx.mjs +719 -0
  118. package/admin-dist/server/_libs/tailwind-merge.mjs +3010 -0
  119. package/admin-dist/server/_libs/tiny-invariant.mjs +12 -0
  120. package/admin-dist/server/_libs/tiny-warning.mjs +5 -0
  121. package/admin-dist/server/_libs/tslib.mjs +39 -0
  122. package/admin-dist/server/_libs/ufo.mjs +54 -0
  123. package/admin-dist/server/_libs/unctx.mjs +1 -0
  124. package/admin-dist/server/_libs/unstorage.mjs +1 -0
  125. package/admin-dist/server/_libs/use-callback-ref.mjs +66 -0
  126. package/admin-dist/server/_libs/use-sidecar.mjs +106 -0
  127. package/admin-dist/server/_libs/use-sync-external-store.mjs +139 -0
  128. package/admin-dist/server/_libs/zod.mjs +4223 -0
  129. package/admin-dist/server/_ssr/CmsButton-B45JAKR1.mjs +125 -0
  130. package/admin-dist/server/_ssr/CmsEmptyState-D_BQFAVR.mjs +290 -0
  131. package/admin-dist/server/_ssr/CmsPageHeader-CrUZA59A.mjs +24 -0
  132. package/admin-dist/server/_ssr/CmsStatusBadge-B-sj6yaj.mjs +127 -0
  133. package/admin-dist/server/_ssr/CmsSurface-DKJZhpjk.mjs +44 -0
  134. package/admin-dist/server/_ssr/CmsToolbar-ByaW5iXf.mjs +49 -0
  135. package/admin-dist/server/_ssr/ContentEntryEditor-D3_Jb1dq.mjs +3720 -0
  136. package/admin-dist/server/_ssr/ErrorState-cI-bKLez.mjs +89 -0
  137. package/admin-dist/server/_ssr/TaxonomyFilter-BRJkuCtA.mjs +188 -0
  138. package/admin-dist/server/_ssr/_contentTypeId-B9kA6CaM.mjs +379 -0
  139. package/admin-dist/server/_ssr/_entryId-BddcMkZN.mjs +161 -0
  140. package/admin-dist/server/_ssr/_tanstack-start-manifest_v-Dd7AmelK.mjs +4 -0
  141. package/admin-dist/server/_ssr/command-CGtVr8Gb.mjs +128 -0
  142. package/admin-dist/server/_ssr/config.server-D7JHDcDv.mjs +117 -0
  143. package/admin-dist/server/_ssr/content-D1tbeOd0.mjs +647 -0
  144. package/admin-dist/server/_ssr/content-types-BZqY_BER.mjs +1342 -0
  145. package/admin-dist/server/_ssr/index-BIdq4xaC.mjs +264 -0
  146. package/admin-dist/server/_ssr/index.mjs +1275 -0
  147. package/admin-dist/server/_ssr/label-T-QNKAr6.mjs +22 -0
  148. package/admin-dist/server/_ssr/media-C-xqjBrl.mjs +1832 -0
  149. package/admin-dist/server/_ssr/new._contentTypeId-DWic9cRq.mjs +144 -0
  150. package/admin-dist/server/_ssr/router-D1BMAMJT.mjs +1556 -0
  151. package/admin-dist/server/_ssr/scroll-area-C0pic_WA.mjs +59 -0
  152. package/admin-dist/server/_ssr/select-CqmuN2F6.mjs +142 -0
  153. package/admin-dist/server/_ssr/settings-CAkncGGV.mjs +430 -0
  154. package/admin-dist/server/_ssr/start-HYkvq4Ni.mjs +4 -0
  155. package/admin-dist/server/_ssr/switch-CgmuJkT9.mjs +31 -0
  156. package/admin-dist/server/_ssr/tabs-CnMj0aRy.mjs +630 -0
  157. package/admin-dist/server/_ssr/tanstack-adapter-BXZrMauE.mjs +119 -0
  158. package/admin-dist/server/_ssr/taxonomies-thl3BfVm.mjs +1015 -0
  159. package/admin-dist/server/_ssr/textarea-4K5OJgeh.mjs +18 -0
  160. package/admin-dist/server/_ssr/trash-B40Gx5zP.mjs +411 -0
  161. package/admin-dist/server/_ssr/useBreadcrumbLabel-rn-fL4zV.mjs +16 -0
  162. package/admin-dist/server/_ssr/usePermissions-CKeM6_Vw.mjs +68 -0
  163. package/admin-dist/server/favicon.ico +0 -0
  164. package/admin-dist/server/index.mjs +641 -0
  165. package/dist/cli/commands/init.d.ts +6 -0
  166. package/dist/cli/commands/init.d.ts.map +1 -0
  167. package/dist/cli/commands/init.js +156 -0
  168. package/dist/cli/commands/init.js.map +1 -0
  169. package/dist/cli/index.js +6 -0
  170. package/dist/cli/index.js.map +1 -1
  171. package/dist/client/admin-config.d.ts +2 -3
  172. package/dist/client/admin-config.d.ts.map +1 -1
  173. package/dist/client/admin-config.js +2 -3
  174. package/dist/client/admin-config.js.map +1 -1
  175. package/dist/client/adminApi.d.ts +1877 -1851
  176. package/dist/client/adminApi.d.ts.map +1 -1
  177. package/dist/client/adminApi.js +649 -629
  178. package/dist/client/adminApi.js.map +1 -1
  179. package/dist/client/agentTools.d.ts +1231 -139
  180. package/dist/client/agentTools.d.ts.map +1 -1
  181. package/dist/client/agentTools.js +37 -13
  182. package/dist/client/agentTools.js.map +1 -1
  183. package/dist/client/index.d.ts +5 -5
  184. package/dist/client/index.d.ts.map +1 -1
  185. package/dist/client/index.js +4 -4
  186. package/dist/client/index.js.map +1 -1
  187. package/dist/client/schema/codegen.d.ts +2 -2
  188. package/dist/client/schema/codegen.d.ts.map +1 -1
  189. package/dist/client/schema/codegen.js +3 -3
  190. package/dist/client/schema/codegen.js.map +1 -1
  191. package/dist/client/schema/defineContentType.d.ts +3 -3
  192. package/dist/client/schema/defineContentType.js +3 -3
  193. package/dist/client/schema/index.d.ts +7 -7
  194. package/dist/client/schema/index.d.ts.map +1 -1
  195. package/dist/client/schema/index.js +5 -5
  196. package/dist/client/schema/index.js.map +1 -1
  197. package/dist/client/schema/schemaDrift.d.ts +1 -1
  198. package/dist/client/schema/schemaDrift.js +1 -1
  199. package/dist/client/schema/typedClient.d.ts +2 -2
  200. package/dist/client/schema/typedClient.js +2 -2
  201. package/dist/client/schema/types.d.ts +1 -1
  202. package/dist/client/schema/types.js +1 -1
  203. package/dist/client/wrapper.d.ts +108 -65
  204. package/dist/client/wrapper.d.ts.map +1 -1
  205. package/dist/client/wrapper.js +22 -22
  206. package/dist/client/wrapper.js.map +1 -1
  207. package/dist/component/_generated/component.d.ts +9 -0
  208. package/dist/component/_generated/component.d.ts.map +1 -1
  209. package/dist/component/convex.config.d.ts +2 -2
  210. package/dist/component/convex.config.js +2 -2
  211. package/dist/component/index.d.ts +1 -1
  212. package/dist/component/index.js +1 -1
  213. package/dist/component/lib/ragContentChunker.d.ts +1 -1
  214. package/dist/component/lib/ragContentChunker.js +1 -1
  215. package/dist/component/mediaAssets.d.ts +35 -0
  216. package/dist/component/mediaAssets.d.ts.map +1 -1
  217. package/dist/component/mediaAssets.js +81 -0
  218. package/dist/component/mediaAssets.js.map +1 -1
  219. package/dist/component/roles.d.ts +1 -1
  220. package/dist/component/roles.js +1 -1
  221. package/dist/react/index.d.ts +2 -2
  222. package/dist/react/index.d.ts.map +1 -1
  223. package/dist/react/index.js +13 -7
  224. package/dist/react/index.js.map +1 -1
  225. package/dist/test.d.ts +2 -2
  226. package/dist/test.d.ts.map +1 -1
  227. package/dist/test.js +4 -3
  228. package/dist/test.js.map +1 -1
  229. package/package.json +37 -13
  230. package/dist/component/auditLog.d.ts +0 -410
  231. package/dist/component/auditLog.d.ts.map +0 -1
  232. package/dist/component/auditLog.js +0 -607
  233. package/dist/component/auditLog.js.map +0 -1
  234. package/dist/component/types.d.ts +0 -4
  235. package/dist/component/types.d.ts.map +0 -1
  236. package/dist/component/types.js +0 -2
  237. package/dist/component/types.js.map +0 -1
  238. package/src/cli/commands/admin.ts +0 -104
  239. package/src/cli/index.ts +0 -21
  240. package/src/cli/utils/detectConvexUrl.ts +0 -54
  241. package/src/cli/utils/openBrowser.ts +0 -16
  242. package/src/client/admin-config.ts +0 -138
  243. package/src/client/adminApi.ts +0 -942
  244. package/src/client/agentTools.ts +0 -1311
  245. package/src/client/argTypes.ts +0 -316
  246. package/src/client/field-types.ts +0 -187
  247. package/src/client/index.ts +0 -1301
  248. package/src/client/queryBuilder.ts +0 -1100
  249. package/src/client/schema/codegen.ts +0 -500
  250. package/src/client/schema/defineContentType.ts +0 -501
  251. package/src/client/schema/index.ts +0 -169
  252. package/src/client/schema/schemaDrift.ts +0 -574
  253. package/src/client/schema/typedClient.ts +0 -688
  254. package/src/client/schema/types.ts +0 -666
  255. package/src/client/types.ts +0 -723
  256. package/src/client/workflows.ts +0 -141
  257. package/src/client/wrapper.ts +0 -4304
  258. package/src/component/_generated/api.ts +0 -140
  259. package/src/component/_generated/component.ts +0 -5029
  260. package/src/component/_generated/dataModel.ts +0 -60
  261. package/src/component/_generated/server.ts +0 -156
  262. package/src/component/authorization.ts +0 -647
  263. package/src/component/authorizationHooks.ts +0 -668
  264. package/src/component/bulkOperations.ts +0 -687
  265. package/src/component/contentEntries.ts +0 -1976
  266. package/src/component/contentEntryMutations.ts +0 -1223
  267. package/src/component/contentEntryValidation.ts +0 -707
  268. package/src/component/contentLock.ts +0 -550
  269. package/src/component/contentTypeMigration.ts +0 -1064
  270. package/src/component/contentTypeMutations.ts +0 -969
  271. package/src/component/contentTypes.ts +0 -346
  272. package/src/component/convex.config.ts +0 -44
  273. package/src/component/documentTypes.ts +0 -240
  274. package/src/component/eventEmitter.ts +0 -485
  275. package/src/component/exportImport.ts +0 -1169
  276. package/src/component/index.ts +0 -491
  277. package/src/component/lib/deepReferenceResolver.ts +0 -999
  278. package/src/component/lib/errors.ts +0 -816
  279. package/src/component/lib/index.ts +0 -145
  280. package/src/component/lib/mediaReferenceResolver.ts +0 -495
  281. package/src/component/lib/metadataExtractor.ts +0 -792
  282. package/src/component/lib/mutationAuth.ts +0 -199
  283. package/src/component/lib/queries.ts +0 -79
  284. package/src/component/lib/ragContentChunker.ts +0 -1371
  285. package/src/component/lib/referenceResolver.ts +0 -430
  286. package/src/component/lib/slugGenerator.ts +0 -262
  287. package/src/component/lib/slugUniqueness.ts +0 -333
  288. package/src/component/lib/softDelete.ts +0 -44
  289. package/src/component/localeFallbackChain.ts +0 -673
  290. package/src/component/localeFields.ts +0 -896
  291. package/src/component/mediaAssetMutations.ts +0 -725
  292. package/src/component/mediaAssets.ts +0 -932
  293. package/src/component/mediaFolderMutations.ts +0 -1046
  294. package/src/component/mediaUploadMutations.ts +0 -224
  295. package/src/component/mediaVariantMutations.ts +0 -900
  296. package/src/component/mediaVariants.ts +0 -793
  297. package/src/component/ragContentIndexer.ts +0 -1067
  298. package/src/component/rateLimitHooks.ts +0 -572
  299. package/src/component/roles.ts +0 -1360
  300. package/src/component/scheduledPublish.ts +0 -358
  301. package/src/component/schema.ts +0 -617
  302. package/src/component/taxonomies.ts +0 -949
  303. package/src/component/taxonomyMutations.ts +0 -1210
  304. package/src/component/trash.ts +0 -724
  305. package/src/component/userContext.ts +0 -898
  306. package/src/component/validation.ts +0 -1388
  307. package/src/component/validators.ts +0 -949
  308. package/src/component/versionMutations.ts +0 -392
  309. package/src/component/webhookTrigger.ts +0 -1922
  310. package/src/react/index.ts +0 -898
  311. package/src/test.ts +0 -1580
@@ -1,104 +0,0 @@
1
- import path from "path";
2
- import { fileURLToPath } from "url";
3
- import { detectConvexUrl } from "../utils/detectConvexUrl.js";
4
- import { openBrowser } from "../utils/openBrowser.js";
5
-
6
- interface AdminOptions {
7
- url?: string;
8
- port: string;
9
- demo?: boolean;
10
- open: boolean;
11
- }
12
-
13
- /**
14
- * Launch the Convex CMS admin panel.
15
- *
16
- * This command starts a pre-built TanStack Start server that serves the
17
- * admin UI. The server reads CONVEX_URL from the environment at runtime,
18
- * allowing a single build to connect to any Convex deployment.
19
- */
20
- export async function adminCommand(options: AdminOptions): Promise<void> {
21
- // 1. Resolve Convex URL
22
- const convexUrl = options.url ?? (await detectConvexUrl());
23
-
24
- if (!convexUrl && !options.demo) {
25
- console.error("Error: Could not detect Convex deployment URL.");
26
- console.error("");
27
- console.error("Please provide the URL using one of these methods:");
28
- console.error(" --url <url> Pass URL directly");
29
- console.error(" CONVEX_URL=<url> Set environment variable");
30
- console.error(" .env.local Add CONVEX_URL to env file");
31
- console.error("");
32
- console.error("Or run in demo mode with mock data:");
33
- console.error(" npx convex-cms admin --demo");
34
- process.exit(1);
35
- }
36
-
37
- // 2. Set environment variables for the server
38
- if (convexUrl) {
39
- process.env.CONVEX_URL = convexUrl;
40
- }
41
- process.env.AUTH_MODE = options.demo ? "demo" : "production";
42
- process.env.PORT = options.port;
43
- process.env.NITRO_PORT = options.port;
44
-
45
- // 3. Find the pre-built admin assets
46
- // When compiled, this file is at dist/cli/commands/admin.js
47
- // We need to go up 3 levels to reach admin-dist at the package root
48
- const __dirname = path.dirname(fileURLToPath(import.meta.url));
49
- const adminDistPath = path.resolve(__dirname, "../../../admin-dist");
50
-
51
- // 4. Log startup info
52
- console.log("");
53
- console.log(" Convex CMS Admin");
54
- console.log(" ----------------");
55
- if (convexUrl) {
56
- console.log(` Convex URL: ${convexUrl}`);
57
- } else {
58
- console.log(" Convex URL: Not configured (demo mode)");
59
- }
60
- console.log(` Port: ${options.port}`);
61
- console.log(` Auth Mode: ${options.demo ? "demo" : "production"}`);
62
- console.log("");
63
-
64
- // 5. Start the server
65
- const serverEntry = path.join(adminDistPath, "server", "index.mjs");
66
-
67
- try {
68
- // Dynamically import the server to start it
69
- await import(serverEntry);
70
-
71
- // 6. Open browser after server starts
72
- const adminUrl = `http://localhost:${options.port}`;
73
- if (options.open) {
74
- // Give the server a moment to start before opening browser
75
- setTimeout(() => {
76
- openBrowser(adminUrl);
77
- }, 1000);
78
- }
79
-
80
- console.log(` Admin panel starting at ${adminUrl}`);
81
- console.log("");
82
- console.log(" Press Ctrl+C to stop");
83
- console.log("");
84
- } catch (error) {
85
- if (
86
- error instanceof Error &&
87
- error.message.includes("Cannot find module")
88
- ) {
89
- console.error("Error: Admin build not found.");
90
- console.error("");
91
- console.error(
92
- "The pre-built admin UI is missing. This usually means:"
93
- );
94
- console.error(" - You're running from source (not the npm package)");
95
- console.error(" - The package wasn't built correctly");
96
- console.error("");
97
- console.error("If developing locally, run:");
98
- console.error(" cd admin && npm run dev");
99
- } else {
100
- console.error("Error starting admin server:", error);
101
- }
102
- process.exit(1);
103
- }
104
- }
package/src/cli/index.ts DELETED
@@ -1,21 +0,0 @@
1
- #!/usr/bin/env node
2
- import { Command } from "commander";
3
- import { adminCommand } from "./commands/admin.js";
4
-
5
- const program = new Command();
6
-
7
- program
8
- .name("convex-cms")
9
- .description("Convex CMS CLI - Headless CMS built on Convex")
10
- .version("0.0.1");
11
-
12
- program
13
- .command("admin")
14
- .description("Launch the Convex CMS admin panel")
15
- .option("--url <url>", "Convex deployment URL")
16
- .option("--port <port>", "Port to serve admin on", "3000")
17
- .option("--demo", "Run in demo mode with mock authentication")
18
- .option("--no-open", "Do not open browser automatically")
19
- .action(adminCommand);
20
-
21
- program.parse();
@@ -1,54 +0,0 @@
1
- import fs from "fs";
2
- import path from "path";
3
-
4
- /**
5
- * Detects the Convex deployment URL from various sources.
6
- *
7
- * Priority order:
8
- * 1. CONVEX_URL environment variable
9
- * 2. VITE_CONVEX_URL environment variable
10
- * 3. .env.local file in current directory
11
- * 4. .env file in current directory
12
- *
13
- * @returns The detected Convex URL or null if not found
14
- */
15
- export async function detectConvexUrl(): Promise<string | null> {
16
- // Check environment variables first
17
- if (process.env.CONVEX_URL) {
18
- return process.env.CONVEX_URL;
19
- }
20
-
21
- if (process.env.VITE_CONVEX_URL) {
22
- return process.env.VITE_CONVEX_URL;
23
- }
24
-
25
- // Try to read from env files in the current working directory
26
- const envFiles = [".env.local", ".env"];
27
-
28
- for (const envFile of envFiles) {
29
- const envPath = path.join(process.cwd(), envFile);
30
-
31
- if (fs.existsSync(envPath)) {
32
- try {
33
- const content = fs.readFileSync(envPath, "utf-8");
34
-
35
- // Look for CONVEX_URL or VITE_CONVEX_URL
36
- const patterns = [
37
- /^CONVEX_URL=["']?([^"'\n\r]+)["']?/m,
38
- /^VITE_CONVEX_URL=["']?([^"'\n\r]+)["']?/m,
39
- ];
40
-
41
- for (const pattern of patterns) {
42
- const match = content.match(pattern);
43
- if (match?.[1]) {
44
- return match[1].trim();
45
- }
46
- }
47
- } catch {
48
- // Ignore read errors, continue to next file
49
- }
50
- }
51
- }
52
-
53
- return null;
54
- }
@@ -1,16 +0,0 @@
1
- import open from "open";
2
-
3
- /**
4
- * Opens a URL in the default browser.
5
- *
6
- * @param url - The URL to open
7
- */
8
- export async function openBrowser(url: string): Promise<void> {
9
- try {
10
- await open(url);
11
- } catch (_error) {
12
- // Silently fail if browser cannot be opened
13
- // The user can still manually navigate to the URL
14
- console.warn(`Could not open browser automatically. Please visit: ${url}`);
15
- }
16
- }
@@ -1,138 +0,0 @@
1
- /**
2
- * Admin UI Configuration Re-exports
3
- *
4
- * These utilities allow users to define admin UI configuration
5
- * in a code-first, type-safe manner.
6
- *
7
- * @example
8
- * // cms-admin.config.ts
9
- * import { defineAdminConfig } from "@convex-cms/core";
10
- *
11
- * export default defineAdminConfig({
12
- * branding: {
13
- * appName: "My Blog CMS",
14
- * logo: "/logo.svg",
15
- * },
16
- * navigation: {
17
- * showTaxonomies: false,
18
- * customItems: [
19
- * {
20
- * id: "analytics",
21
- * path: "/analytics",
22
- * label: "Analytics",
23
- * icon: "BarChart",
24
- * section: "main",
25
- * },
26
- * ],
27
- * },
28
- * theme: {
29
- * mode: "dark",
30
- * },
31
- * });
32
- */
33
-
34
- import { z } from "zod";
35
-
36
- export interface NavItem {
37
- id: string;
38
- path: string;
39
- label: string;
40
- icon: string;
41
- visible?: boolean;
42
- section: "main" | "config";
43
- badge?: string;
44
- exact?: boolean;
45
- }
46
-
47
- const navItemSchema = z.object({
48
- id: z.string(),
49
- path: z.string(),
50
- label: z.string(),
51
- icon: z.string(),
52
- visible: z.boolean().default(true),
53
- section: z.enum(["main", "config"]).default("main"),
54
- badge: z.string().optional(),
55
- exact: z.boolean().optional(),
56
- }) satisfies z.ZodType<NavItem>;
57
-
58
- const brandingSchema = z.object({
59
- appName: z.string().default("Convex CMS"),
60
- logo: z.string().optional(),
61
- favicon: z.string().optional(),
62
- });
63
-
64
- const layoutSchema = z.object({
65
- sidebarWidth: z.number().min(200).max(400).default(256),
66
- sidebarCollapsible: z.boolean().default(false),
67
- });
68
-
69
- const navigationSchema = z.object({
70
- showDashboard: z.boolean().default(true),
71
- showContent: z.boolean().default(true),
72
- showMedia: z.boolean().default(true),
73
- showTaxonomies: z.boolean().default(true),
74
- showContentTypes: z.boolean().default(true),
75
- showAuditLogs: z.boolean().default(true),
76
- showTrash: z.boolean().default(true),
77
- showSettings: z.boolean().default(true),
78
- customItems: z.array(navItemSchema).default([]),
79
- });
80
-
81
- const themeSchema = z.object({
82
- mode: z.enum(["light", "dark", "system"]).default("system"),
83
- allowModeSwitch: z.boolean().default(true),
84
- tokens: z.record(z.string(), z.string()).optional(),
85
- });
86
-
87
- export const adminConfigSchema = z.object({
88
- branding: brandingSchema.default(() => brandingSchema.parse({})),
89
- layout: layoutSchema.default(() => layoutSchema.parse({})),
90
- navigation: navigationSchema.default(() => navigationSchema.parse({})),
91
- theme: themeSchema.default(() => themeSchema.parse({})),
92
- });
93
-
94
- export type AdminConfig = z.infer<typeof adminConfigSchema>;
95
-
96
- /**
97
- * Define admin UI configuration for your CMS.
98
- *
99
- * Use this function in a cms-admin.config.ts file at your project root,
100
- * or pass the config directly to the <CmsAdmin /> component for embedded mode.
101
- *
102
- * @param config - Partial admin configuration (uses sensible defaults)
103
- * @returns The configuration object (unchanged, for type inference)
104
- *
105
- * @example
106
- * // Code-first config file approach (cms-admin.config.ts)
107
- * import { defineAdminConfig } from "@convex-cms/core";
108
- *
109
- * export default defineAdminConfig({
110
- * branding: { appName: "My CMS" },
111
- * navigation: { showTaxonomies: false },
112
- * });
113
- *
114
- * @example
115
- * // Embedded admin approach
116
- * import { CmsAdmin, defineAdminConfig } from "@convex-cms/admin/embed";
117
- *
118
- * const config = defineAdminConfig({
119
- * branding: { appName: "My CMS" },
120
- * });
121
- *
122
- * function App() {
123
- * return <CmsAdmin config={config} ... />;
124
- * }
125
- */
126
- export function defineAdminConfig(config: Partial<AdminConfig>): Partial<AdminConfig> {
127
- return config;
128
- }
129
-
130
- /**
131
- * Resolve partial admin config with defaults.
132
- *
133
- * @param input - Partial configuration
134
- * @returns Full configuration with all defaults applied
135
- */
136
- export function resolveAdminConfig(input?: Partial<AdminConfig>): AdminConfig {
137
- return adminConfigSchema.parse(input ?? {});
138
- }