convex-cms 0.0.1 → 0.0.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.
Files changed (267) hide show
  1. package/LICENSE +190 -0
  2. package/README.md +99 -0
  3. package/admin-dist/nitro.json +15 -0
  4. package/admin-dist/public/assets/CmsEmptyState-CRswfTzk.js +5 -0
  5. package/admin-dist/public/assets/CmsPageHeader-CirpXndm.js +1 -0
  6. package/admin-dist/public/assets/CmsStatusBadge-CbEUpQu-.js +1 -0
  7. package/admin-dist/public/assets/CmsToolbar-BI2nZOXp.js +1 -0
  8. package/admin-dist/public/assets/ContentEntryEditor-CBeCyK_m.js +4 -0
  9. package/admin-dist/public/assets/ErrorState-BIVaWmom.js +1 -0
  10. package/admin-dist/public/assets/TaxonomyFilter-ChaY6Y_x.js +1 -0
  11. package/admin-dist/public/assets/_contentTypeId-DQ8k_Rvw.js +1 -0
  12. package/admin-dist/public/assets/_entryId-CKU_glsK.js +1 -0
  13. package/admin-dist/public/assets/alert-BXjTqrwQ.js +1 -0
  14. package/admin-dist/public/assets/badge-hvUOzpVZ.js +1 -0
  15. package/admin-dist/public/assets/circle-check-big-CF_pR17r.js +1 -0
  16. package/admin-dist/public/assets/command-DU82cJlt.js +1 -0
  17. package/admin-dist/public/assets/content-_LXl3pp7.js +1 -0
  18. package/admin-dist/public/assets/content-types-KjxaXGxY.js +2 -0
  19. package/admin-dist/public/assets/globals-CS6BZ0zp.css +1 -0
  20. package/admin-dist/public/assets/index-DNGIZHL-.js +1 -0
  21. package/admin-dist/public/assets/label-KNtpL71g.js +1 -0
  22. package/admin-dist/public/assets/link-2-Bw2aI4V4.js +1 -0
  23. package/admin-dist/public/assets/list-sYepHjt_.js +1 -0
  24. package/admin-dist/public/assets/main-CKj5yfEi.js +97 -0
  25. package/admin-dist/public/assets/media-Bkrkffm7.js +1 -0
  26. package/admin-dist/public/assets/new._contentTypeId-C3LstjNs.js +1 -0
  27. package/admin-dist/public/assets/plus-DUn8v_Xf.js +1 -0
  28. package/admin-dist/public/assets/rotate-ccw-DJEoHcRI.js +1 -0
  29. package/admin-dist/public/assets/scroll-area-DfIlT0in.js +1 -0
  30. package/admin-dist/public/assets/search-MuAUDJKR.js +1 -0
  31. package/admin-dist/public/assets/select-BD29IXCI.js +1 -0
  32. package/admin-dist/public/assets/settings-DmMyn_6A.js +1 -0
  33. package/admin-dist/public/assets/switch-h3Rrnl5i.js +1 -0
  34. package/admin-dist/public/assets/tabs-imc8h-Dp.js +1 -0
  35. package/admin-dist/public/assets/taxonomies-dAsrT65H.js +1 -0
  36. package/admin-dist/public/assets/textarea-BTy7nwzR.js +1 -0
  37. package/admin-dist/public/assets/trash-SAWKZZHv.js +1 -0
  38. package/admin-dist/public/assets/triangle-alert-E52Vfeuh.js +1 -0
  39. package/admin-dist/public/assets/useBreadcrumbLabel-BECBMCzM.js +1 -0
  40. package/admin-dist/public/assets/usePermissions-Basjs9BT.js +1 -0
  41. package/admin-dist/public/favicon.ico +0 -0
  42. package/admin-dist/server/_chunks/_libs/@date-fns/tz.mjs +217 -0
  43. package/admin-dist/server/_chunks/_libs/@floating-ui/core.mjs +719 -0
  44. package/admin-dist/server/_chunks/_libs/@floating-ui/dom.mjs +622 -0
  45. package/admin-dist/server/_chunks/_libs/@floating-ui/react-dom.mjs +292 -0
  46. package/admin-dist/server/_chunks/_libs/@floating-ui/utils.mjs +320 -0
  47. package/admin-dist/server/_chunks/_libs/@radix-ui/number.mjs +6 -0
  48. package/admin-dist/server/_chunks/_libs/@radix-ui/primitive.mjs +11 -0
  49. package/admin-dist/server/_chunks/_libs/@radix-ui/react-arrow.mjs +23 -0
  50. package/admin-dist/server/_chunks/_libs/@radix-ui/react-avatar.mjs +119 -0
  51. package/admin-dist/server/_chunks/_libs/@radix-ui/react-checkbox.mjs +270 -0
  52. package/admin-dist/server/_chunks/_libs/@radix-ui/react-collection.mjs +69 -0
  53. package/admin-dist/server/_chunks/_libs/@radix-ui/react-compose-refs.mjs +39 -0
  54. package/admin-dist/server/_chunks/_libs/@radix-ui/react-context.mjs +137 -0
  55. package/admin-dist/server/_chunks/_libs/@radix-ui/react-dialog.mjs +325 -0
  56. package/admin-dist/server/_chunks/_libs/@radix-ui/react-direction.mjs +9 -0
  57. package/admin-dist/server/_chunks/_libs/@radix-ui/react-dismissable-layer.mjs +210 -0
  58. package/admin-dist/server/_chunks/_libs/@radix-ui/react-dropdown-menu.mjs +253 -0
  59. package/admin-dist/server/_chunks/_libs/@radix-ui/react-focus-guards.mjs +29 -0
  60. package/admin-dist/server/_chunks/_libs/@radix-ui/react-focus-scope.mjs +206 -0
  61. package/admin-dist/server/_chunks/_libs/@radix-ui/react-id.mjs +14 -0
  62. package/admin-dist/server/_chunks/_libs/@radix-ui/react-label.mjs +23 -0
  63. package/admin-dist/server/_chunks/_libs/@radix-ui/react-menu.mjs +812 -0
  64. package/admin-dist/server/_chunks/_libs/@radix-ui/react-popover.mjs +300 -0
  65. package/admin-dist/server/_chunks/_libs/@radix-ui/react-popper.mjs +286 -0
  66. package/admin-dist/server/_chunks/_libs/@radix-ui/react-portal.mjs +16 -0
  67. package/admin-dist/server/_chunks/_libs/@radix-ui/react-presence.mjs +128 -0
  68. package/admin-dist/server/_chunks/_libs/@radix-ui/react-primitive.mjs +141 -0
  69. package/admin-dist/server/_chunks/_libs/@radix-ui/react-roving-focus.mjs +224 -0
  70. package/admin-dist/server/_chunks/_libs/@radix-ui/react-scroll-area.mjs +721 -0
  71. package/admin-dist/server/_chunks/_libs/@radix-ui/react-select.mjs +1163 -0
  72. package/admin-dist/server/_chunks/_libs/@radix-ui/react-separator.mjs +28 -0
  73. package/admin-dist/server/_chunks/_libs/@radix-ui/react-slot.mjs +601 -0
  74. package/admin-dist/server/_chunks/_libs/@radix-ui/react-switch.mjs +152 -0
  75. package/admin-dist/server/_chunks/_libs/@radix-ui/react-tabs.mjs +189 -0
  76. package/admin-dist/server/_chunks/_libs/@radix-ui/react-use-callback-ref.mjs +11 -0
  77. package/admin-dist/server/_chunks/_libs/@radix-ui/react-use-controllable-state.mjs +69 -0
  78. package/admin-dist/server/_chunks/_libs/@radix-ui/react-use-effect-event.mjs +1 -0
  79. package/admin-dist/server/_chunks/_libs/@radix-ui/react-use-escape-keydown.mjs +17 -0
  80. package/admin-dist/server/_chunks/_libs/@radix-ui/react-use-is-hydrated.mjs +15 -0
  81. package/admin-dist/server/_chunks/_libs/@radix-ui/react-use-layout-effect.mjs +6 -0
  82. package/admin-dist/server/_chunks/_libs/@radix-ui/react-use-previous.mjs +14 -0
  83. package/admin-dist/server/_chunks/_libs/@radix-ui/react-use-size.mjs +39 -0
  84. package/admin-dist/server/_chunks/_libs/@radix-ui/react-visually-hidden.mjs +33 -0
  85. package/admin-dist/server/_chunks/_libs/@tanstack/history.mjs +409 -0
  86. package/admin-dist/server/_chunks/_libs/@tanstack/react-router.mjs +1711 -0
  87. package/admin-dist/server/_chunks/_libs/@tanstack/react-store.mjs +56 -0
  88. package/admin-dist/server/_chunks/_libs/@tanstack/router-core.mjs +4829 -0
  89. package/admin-dist/server/_chunks/_libs/@tanstack/store.mjs +134 -0
  90. package/admin-dist/server/_chunks/_libs/react-dom.mjs +10781 -0
  91. package/admin-dist/server/_chunks/_libs/react.mjs +513 -0
  92. package/admin-dist/server/_libs/aria-hidden.mjs +122 -0
  93. package/admin-dist/server/_libs/class-variance-authority.mjs +44 -0
  94. package/admin-dist/server/_libs/clsx.mjs +16 -0
  95. package/admin-dist/server/_libs/cmdk.mjs +315 -0
  96. package/admin-dist/server/_libs/convex.mjs +4841 -0
  97. package/admin-dist/server/_libs/cookie-es.mjs +58 -0
  98. package/admin-dist/server/_libs/croner.mjs +1 -0
  99. package/admin-dist/server/_libs/crossws.mjs +1 -0
  100. package/admin-dist/server/_libs/date-fns.mjs +1716 -0
  101. package/admin-dist/server/_libs/detect-node-es.mjs +1 -0
  102. package/admin-dist/server/_libs/get-nonce.mjs +9 -0
  103. package/admin-dist/server/_libs/h3-v2.mjs +277 -0
  104. package/admin-dist/server/_libs/h3.mjs +401 -0
  105. package/admin-dist/server/_libs/hookable.mjs +1 -0
  106. package/admin-dist/server/_libs/isbot.mjs +20 -0
  107. package/admin-dist/server/_libs/lucide-react.mjs +850 -0
  108. package/admin-dist/server/_libs/ohash.mjs +1 -0
  109. package/admin-dist/server/_libs/react-day-picker.mjs +2201 -0
  110. package/admin-dist/server/_libs/react-remove-scroll-bar.mjs +82 -0
  111. package/admin-dist/server/_libs/react-remove-scroll.mjs +328 -0
  112. package/admin-dist/server/_libs/react-style-singleton.mjs +69 -0
  113. package/admin-dist/server/_libs/rou3.mjs +8 -0
  114. package/admin-dist/server/_libs/seroval-plugins.mjs +58 -0
  115. package/admin-dist/server/_libs/seroval.mjs +1765 -0
  116. package/admin-dist/server/_libs/srvx.mjs +719 -0
  117. package/admin-dist/server/_libs/tailwind-merge.mjs +3010 -0
  118. package/admin-dist/server/_libs/tiny-invariant.mjs +12 -0
  119. package/admin-dist/server/_libs/tiny-warning.mjs +5 -0
  120. package/admin-dist/server/_libs/tslib.mjs +39 -0
  121. package/admin-dist/server/_libs/ufo.mjs +54 -0
  122. package/admin-dist/server/_libs/unctx.mjs +1 -0
  123. package/admin-dist/server/_libs/unstorage.mjs +1 -0
  124. package/admin-dist/server/_libs/use-callback-ref.mjs +66 -0
  125. package/admin-dist/server/_libs/use-sidecar.mjs +106 -0
  126. package/admin-dist/server/_libs/use-sync-external-store.mjs +139 -0
  127. package/admin-dist/server/_libs/zod.mjs +4223 -0
  128. package/admin-dist/server/_ssr/CmsEmptyState-DU7-7-mV.mjs +290 -0
  129. package/admin-dist/server/_ssr/CmsPageHeader-CseW0AHm.mjs +24 -0
  130. package/admin-dist/server/_ssr/CmsStatusBadge-B_pi4KCp.mjs +127 -0
  131. package/admin-dist/server/_ssr/CmsToolbar-X75ex6ek.mjs +49 -0
  132. package/admin-dist/server/_ssr/ContentEntryEditor-CepusRsA.mjs +3720 -0
  133. package/admin-dist/server/_ssr/ErrorState-cI-bKLez.mjs +89 -0
  134. package/admin-dist/server/_ssr/TaxonomyFilter-Bwrq0-cz.mjs +188 -0
  135. package/admin-dist/server/_ssr/_contentTypeId-BqYKEcLr.mjs +379 -0
  136. package/admin-dist/server/_ssr/_entryId-CRfnqeDf.mjs +161 -0
  137. package/admin-dist/server/_ssr/_tanstack-start-manifest_v-BwDlABVk.mjs +4 -0
  138. package/admin-dist/server/_ssr/alert-CVt45UUP.mjs +92 -0
  139. package/admin-dist/server/_ssr/badge-6BsP37vG.mjs +125 -0
  140. package/admin-dist/server/_ssr/command-fy8epIKf.mjs +128 -0
  141. package/admin-dist/server/_ssr/config.server-D7JHDcDv.mjs +117 -0
  142. package/admin-dist/server/_ssr/content-B5RhL7uW.mjs +532 -0
  143. package/admin-dist/server/_ssr/content-types-BIOqCQYN.mjs +1166 -0
  144. package/admin-dist/server/_ssr/index-DHSHDPt1.mjs +193 -0
  145. package/admin-dist/server/_ssr/index.mjs +1275 -0
  146. package/admin-dist/server/_ssr/label-C8Dko1j7.mjs +22 -0
  147. package/admin-dist/server/_ssr/media-CSx3XttC.mjs +1832 -0
  148. package/admin-dist/server/_ssr/new._contentTypeId-DzanEZQM.mjs +144 -0
  149. package/admin-dist/server/_ssr/router-DDWcF-kt.mjs +1556 -0
  150. package/admin-dist/server/_ssr/scroll-area-bjPYwhXN.mjs +59 -0
  151. package/admin-dist/server/_ssr/select-BUhDDf4T.mjs +142 -0
  152. package/admin-dist/server/_ssr/settings-DAsxnw2q.mjs +348 -0
  153. package/admin-dist/server/_ssr/start-HYkvq4Ni.mjs +4 -0
  154. package/admin-dist/server/_ssr/switch-BgyRtQ1Z.mjs +31 -0
  155. package/admin-dist/server/_ssr/tabs-DzMdRB1A.mjs +628 -0
  156. package/admin-dist/server/_ssr/taxonomies-C8j8g5Q5.mjs +915 -0
  157. package/admin-dist/server/_ssr/textarea-9jNeYJSc.mjs +18 -0
  158. package/admin-dist/server/_ssr/trash-DYMxwhZB.mjs +291 -0
  159. package/admin-dist/server/_ssr/useBreadcrumbLabel-FNSAr2Ha.mjs +16 -0
  160. package/admin-dist/server/_ssr/usePermissions-BJGGahrJ.mjs +68 -0
  161. package/admin-dist/server/favicon.ico +0 -0
  162. package/admin-dist/server/index.mjs +627 -0
  163. package/dist/cli/index.js +0 -0
  164. package/dist/client/admin-config.d.ts +0 -1
  165. package/dist/client/admin-config.d.ts.map +1 -1
  166. package/dist/client/admin-config.js +0 -1
  167. package/dist/client/admin-config.js.map +1 -1
  168. package/dist/client/adminApi.d.ts.map +1 -1
  169. package/dist/client/agentTools.d.ts +1237 -135
  170. package/dist/client/agentTools.d.ts.map +1 -1
  171. package/dist/client/agentTools.js +33 -9
  172. package/dist/client/agentTools.js.map +1 -1
  173. package/dist/client/index.d.ts +1 -1
  174. package/dist/client/index.d.ts.map +1 -1
  175. package/dist/client/index.js.map +1 -1
  176. package/dist/component/_generated/component.d.ts +9 -0
  177. package/dist/component/_generated/component.d.ts.map +1 -1
  178. package/dist/component/mediaAssets.d.ts +35 -0
  179. package/dist/component/mediaAssets.d.ts.map +1 -1
  180. package/dist/component/mediaAssets.js +81 -0
  181. package/dist/component/mediaAssets.js.map +1 -1
  182. package/dist/test.d.ts.map +1 -1
  183. package/dist/test.js +2 -1
  184. package/dist/test.js.map +1 -1
  185. package/package.json +24 -9
  186. package/dist/component/auditLog.d.ts +0 -410
  187. package/dist/component/auditLog.d.ts.map +0 -1
  188. package/dist/component/auditLog.js +0 -607
  189. package/dist/component/auditLog.js.map +0 -1
  190. package/dist/component/types.d.ts +0 -4
  191. package/dist/component/types.d.ts.map +0 -1
  192. package/dist/component/types.js +0 -2
  193. package/dist/component/types.js.map +0 -1
  194. package/src/cli/commands/admin.ts +0 -104
  195. package/src/cli/index.ts +0 -21
  196. package/src/cli/utils/detectConvexUrl.ts +0 -54
  197. package/src/cli/utils/openBrowser.ts +0 -16
  198. package/src/client/admin-config.ts +0 -138
  199. package/src/client/adminApi.ts +0 -942
  200. package/src/client/agentTools.ts +0 -1311
  201. package/src/client/argTypes.ts +0 -316
  202. package/src/client/field-types.ts +0 -187
  203. package/src/client/index.ts +0 -1301
  204. package/src/client/queryBuilder.ts +0 -1100
  205. package/src/client/schema/codegen.ts +0 -500
  206. package/src/client/schema/defineContentType.ts +0 -501
  207. package/src/client/schema/index.ts +0 -169
  208. package/src/client/schema/schemaDrift.ts +0 -574
  209. package/src/client/schema/typedClient.ts +0 -688
  210. package/src/client/schema/types.ts +0 -666
  211. package/src/client/types.ts +0 -723
  212. package/src/client/workflows.ts +0 -141
  213. package/src/client/wrapper.ts +0 -4304
  214. package/src/component/_generated/api.ts +0 -140
  215. package/src/component/_generated/component.ts +0 -5029
  216. package/src/component/_generated/dataModel.ts +0 -60
  217. package/src/component/_generated/server.ts +0 -156
  218. package/src/component/authorization.ts +0 -647
  219. package/src/component/authorizationHooks.ts +0 -668
  220. package/src/component/bulkOperations.ts +0 -687
  221. package/src/component/contentEntries.ts +0 -1976
  222. package/src/component/contentEntryMutations.ts +0 -1223
  223. package/src/component/contentEntryValidation.ts +0 -707
  224. package/src/component/contentLock.ts +0 -550
  225. package/src/component/contentTypeMigration.ts +0 -1064
  226. package/src/component/contentTypeMutations.ts +0 -969
  227. package/src/component/contentTypes.ts +0 -346
  228. package/src/component/convex.config.ts +0 -44
  229. package/src/component/documentTypes.ts +0 -240
  230. package/src/component/eventEmitter.ts +0 -485
  231. package/src/component/exportImport.ts +0 -1169
  232. package/src/component/index.ts +0 -491
  233. package/src/component/lib/deepReferenceResolver.ts +0 -999
  234. package/src/component/lib/errors.ts +0 -816
  235. package/src/component/lib/index.ts +0 -145
  236. package/src/component/lib/mediaReferenceResolver.ts +0 -495
  237. package/src/component/lib/metadataExtractor.ts +0 -792
  238. package/src/component/lib/mutationAuth.ts +0 -199
  239. package/src/component/lib/queries.ts +0 -79
  240. package/src/component/lib/ragContentChunker.ts +0 -1371
  241. package/src/component/lib/referenceResolver.ts +0 -430
  242. package/src/component/lib/slugGenerator.ts +0 -262
  243. package/src/component/lib/slugUniqueness.ts +0 -333
  244. package/src/component/lib/softDelete.ts +0 -44
  245. package/src/component/localeFallbackChain.ts +0 -673
  246. package/src/component/localeFields.ts +0 -896
  247. package/src/component/mediaAssetMutations.ts +0 -725
  248. package/src/component/mediaAssets.ts +0 -932
  249. package/src/component/mediaFolderMutations.ts +0 -1046
  250. package/src/component/mediaUploadMutations.ts +0 -224
  251. package/src/component/mediaVariantMutations.ts +0 -900
  252. package/src/component/mediaVariants.ts +0 -793
  253. package/src/component/ragContentIndexer.ts +0 -1067
  254. package/src/component/rateLimitHooks.ts +0 -572
  255. package/src/component/roles.ts +0 -1360
  256. package/src/component/scheduledPublish.ts +0 -358
  257. package/src/component/schema.ts +0 -617
  258. package/src/component/taxonomies.ts +0 -949
  259. package/src/component/taxonomyMutations.ts +0 -1210
  260. package/src/component/trash.ts +0 -724
  261. package/src/component/userContext.ts +0 -898
  262. package/src/component/validation.ts +0 -1388
  263. package/src/component/validators.ts +0 -949
  264. package/src/component/versionMutations.ts +0 -392
  265. package/src/component/webhookTrigger.ts +0 -1922
  266. package/src/react/index.ts +0 -898
  267. 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
- }