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