@vexcms/core 0.0.20 → 0.1.0-alpha.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (323) hide show
  1. package/LICENSE +202 -0
  2. package/dist/.build +1 -0
  3. package/dist/access/buildChecks.d.ts +58 -0
  4. package/dist/access/buildChecks.d.ts.map +1 -0
  5. package/dist/access/canAccessAdminPanel.d.ts +53 -0
  6. package/dist/access/canAccessAdminPanel.d.ts.map +1 -0
  7. package/dist/access/compileConstraints.d.ts +155 -0
  8. package/dist/access/compileConstraints.d.ts.map +1 -0
  9. package/dist/access/config.d.ts +62 -0
  10. package/dist/access/config.d.ts.map +1 -0
  11. package/dist/access/constants.d.ts +95 -0
  12. package/dist/access/constants.d.ts.map +1 -0
  13. package/dist/access/constraintTypes.d.ts +337 -0
  14. package/dist/access/constraintTypes.d.ts.map +1 -0
  15. package/dist/access/createAccessQueryBuilder.d.ts +59 -0
  16. package/dist/access/createAccessQueryBuilder.d.ts.map +1 -0
  17. package/dist/access/createFilterConstraintBuilder.d.ts +26 -0
  18. package/dist/access/createFilterConstraintBuilder.d.ts.map +1 -0
  19. package/dist/access/createIndexConstraintBuilder.d.ts +40 -0
  20. package/dist/access/createIndexConstraintBuilder.d.ts.map +1 -0
  21. package/dist/access/hasPermission.d.ts +85 -0
  22. package/dist/access/hasPermission.d.ts.map +1 -0
  23. package/dist/access/index.d.ts +13 -0
  24. package/dist/access/index.d.ts.map +1 -0
  25. package/dist/access/pickQueryIndex.d.ts +42 -0
  26. package/dist/access/pickQueryIndex.d.ts.map +1 -0
  27. package/dist/access/resolveAccessRule.d.ts +85 -0
  28. package/dist/access/resolveAccessRule.d.ts.map +1 -0
  29. package/dist/access/types.d.ts +738 -0
  30. package/dist/access/types.d.ts.map +1 -0
  31. package/dist/access/validateAccessConstraints.d.ts +57 -0
  32. package/dist/access/validateAccessConstraints.d.ts.map +1 -0
  33. package/dist/api/client.d.ts +20 -0
  34. package/dist/api/client.d.ts.map +1 -0
  35. package/dist/api/client.js +117 -0
  36. package/dist/api/client.js.map +1 -0
  37. package/dist/api/convex.d.ts +296 -0
  38. package/dist/api/convex.d.ts.map +1 -0
  39. package/dist/api/create/client.d.ts +50 -0
  40. package/dist/api/create/client.d.ts.map +1 -0
  41. package/dist/api/create/server.d.ts +43 -0
  42. package/dist/api/create/server.d.ts.map +1 -0
  43. package/dist/api/depth.d.ts +39 -0
  44. package/dist/api/depth.d.ts.map +1 -0
  45. package/dist/api/find/client.d.ts +90 -0
  46. package/dist/api/find/client.d.ts.map +1 -0
  47. package/dist/api/find/server.d.ts +73 -0
  48. package/dist/api/find/server.d.ts.map +1 -0
  49. package/dist/api/get/client.d.ts +56 -0
  50. package/dist/api/get/client.d.ts.map +1 -0
  51. package/dist/api/get/server.d.ts +49 -0
  52. package/dist/api/get/server.d.ts.map +1 -0
  53. package/dist/api/globals/find.client.d.ts +20 -0
  54. package/dist/api/globals/find.client.d.ts.map +1 -0
  55. package/dist/api/globals/find.server.d.ts +29 -0
  56. package/dist/api/globals/find.server.d.ts.map +1 -0
  57. package/dist/api/globals/get.client.d.ts +46 -0
  58. package/dist/api/globals/get.client.d.ts.map +1 -0
  59. package/dist/api/globals/get.server.d.ts +55 -0
  60. package/dist/api/globals/get.server.d.ts.map +1 -0
  61. package/dist/api/globals/types.d.ts +65 -0
  62. package/dist/api/globals/types.d.ts.map +1 -0
  63. package/dist/api/globals/upsert.client.d.ts +24 -0
  64. package/dist/api/globals/upsert.client.d.ts.map +1 -0
  65. package/dist/api/globals/upsert.server.d.ts +47 -0
  66. package/dist/api/globals/upsert.server.d.ts.map +1 -0
  67. package/dist/api/populate.d.ts +23 -0
  68. package/dist/api/populate.d.ts.map +1 -0
  69. package/dist/api/remove/client.d.ts +58 -0
  70. package/dist/api/remove/client.d.ts.map +1 -0
  71. package/dist/api/remove/server.d.ts +65 -0
  72. package/dist/api/remove/server.d.ts.map +1 -0
  73. package/dist/api/search/client.d.ts +58 -0
  74. package/dist/api/search/client.d.ts.map +1 -0
  75. package/dist/api/search/server.d.ts +54 -0
  76. package/dist/api/search/server.d.ts.map +1 -0
  77. package/dist/api/server.d.ts +370 -0
  78. package/dist/api/server.d.ts.map +1 -0
  79. package/dist/api/server.js +33 -0
  80. package/dist/api/server.js.map +1 -0
  81. package/dist/api/types.d.ts +525 -0
  82. package/dist/api/types.d.ts.map +1 -0
  83. package/dist/api/update/client.d.ts +53 -0
  84. package/dist/api/update/client.d.ts.map +1 -0
  85. package/dist/api/update/server.d.ts +47 -0
  86. package/dist/api/update/server.d.ts.map +1 -0
  87. package/dist/api/utils.d.ts +57 -0
  88. package/dist/api/utils.d.ts.map +1 -0
  89. package/dist/auth/mergeCollections.d.ts +28 -0
  90. package/dist/auth/mergeCollections.d.ts.map +1 -0
  91. package/dist/auth/types.d.ts +84 -0
  92. package/dist/auth/types.d.ts.map +1 -0
  93. package/dist/chunk-2DU7JDEX.js +1877 -0
  94. package/dist/chunk-2DU7JDEX.js.map +1 -0
  95. package/dist/chunk-2IB2DCN7.js +75 -0
  96. package/dist/chunk-2IB2DCN7.js.map +1 -0
  97. package/dist/collections/config.d.ts +28 -0
  98. package/dist/collections/config.d.ts.map +1 -0
  99. package/dist/collections/constants.d.ts +27 -0
  100. package/dist/collections/constants.d.ts.map +1 -0
  101. package/dist/collections/index.d.ts +7 -0
  102. package/dist/collections/index.d.ts.map +1 -0
  103. package/dist/collections/indexFields.d.ts +20 -0
  104. package/dist/collections/indexFields.d.ts.map +1 -0
  105. package/dist/collections/interfaceGen.d.ts +59 -0
  106. package/dist/collections/interfaceGen.d.ts.map +1 -0
  107. package/dist/collections/internal/index.d.ts +2 -0
  108. package/dist/collections/internal/index.d.ts.map +1 -0
  109. package/dist/collections/types.d.ts +282 -0
  110. package/dist/collections/types.d.ts.map +1 -0
  111. package/dist/collections/utils.d.ts +71 -0
  112. package/dist/collections/utils.d.ts.map +1 -0
  113. package/dist/collections/validator.d.ts +73 -0
  114. package/dist/collections/validator.d.ts.map +1 -0
  115. package/dist/config/config.d.ts +43 -0
  116. package/dist/config/config.d.ts.map +1 -0
  117. package/dist/config/index.d.ts +5 -0
  118. package/dist/config/index.d.ts.map +1 -0
  119. package/dist/config/sanitizeConfig.d.ts +82 -0
  120. package/dist/config/sanitizeConfig.d.ts.map +1 -0
  121. package/dist/config/types.d.ts +316 -0
  122. package/dist/config/types.d.ts.map +1 -0
  123. package/dist/fields/array/config.d.ts +57 -0
  124. package/dist/fields/array/config.d.ts.map +1 -0
  125. package/dist/fields/array/index.d.ts +5 -0
  126. package/dist/fields/array/index.d.ts.map +1 -0
  127. package/dist/fields/array/inputSchema.d.ts +32 -0
  128. package/dist/fields/array/inputSchema.d.ts.map +1 -0
  129. package/dist/fields/array/types.d.ts +127 -0
  130. package/dist/fields/array/types.d.ts.map +1 -0
  131. package/dist/fields/array/validator.d.ts +30 -0
  132. package/dist/fields/array/validator.d.ts.map +1 -0
  133. package/dist/fields/baseTypes.d.ts +251 -0
  134. package/dist/fields/baseTypes.d.ts.map +1 -0
  135. package/dist/fields/blocks/config.d.ts +63 -0
  136. package/dist/fields/blocks/config.d.ts.map +1 -0
  137. package/dist/fields/blocks/index.d.ts +5 -0
  138. package/dist/fields/blocks/index.d.ts.map +1 -0
  139. package/dist/fields/blocks/inputSchema.d.ts +22 -0
  140. package/dist/fields/blocks/inputSchema.d.ts.map +1 -0
  141. package/dist/fields/blocks/types.d.ts +253 -0
  142. package/dist/fields/blocks/types.d.ts.map +1 -0
  143. package/dist/fields/blocks/validator.d.ts +32 -0
  144. package/dist/fields/blocks/validator.d.ts.map +1 -0
  145. package/dist/fields/checkbox/config.d.ts +46 -0
  146. package/dist/fields/checkbox/config.d.ts.map +1 -0
  147. package/dist/fields/checkbox/index.d.ts +5 -0
  148. package/dist/fields/checkbox/index.d.ts.map +1 -0
  149. package/dist/fields/checkbox/inputSchema.d.ts +27 -0
  150. package/dist/fields/checkbox/inputSchema.d.ts.map +1 -0
  151. package/dist/fields/checkbox/types.d.ts +67 -0
  152. package/dist/fields/checkbox/types.d.ts.map +1 -0
  153. package/dist/fields/checkbox/validator.d.ts +34 -0
  154. package/dist/fields/checkbox/validator.d.ts.map +1 -0
  155. package/dist/fields/color/config.d.ts +49 -0
  156. package/dist/fields/color/config.d.ts.map +1 -0
  157. package/dist/fields/color/convert.d.ts +72 -0
  158. package/dist/fields/color/convert.d.ts.map +1 -0
  159. package/dist/fields/color/formats.d.ts +38 -0
  160. package/dist/fields/color/formats.d.ts.map +1 -0
  161. package/dist/fields/color/index.d.ts +8 -0
  162. package/dist/fields/color/index.d.ts.map +1 -0
  163. package/dist/fields/color/inputSchema.d.ts +29 -0
  164. package/dist/fields/color/inputSchema.d.ts.map +1 -0
  165. package/dist/fields/color/types.d.ts +100 -0
  166. package/dist/fields/color/types.d.ts.map +1 -0
  167. package/dist/fields/color/utils.d.ts +100 -0
  168. package/dist/fields/color/utils.d.ts.map +1 -0
  169. package/dist/fields/color/validator.d.ts +27 -0
  170. package/dist/fields/color/validator.d.ts.map +1 -0
  171. package/dist/fields/constants.d.ts +108 -0
  172. package/dist/fields/constants.d.ts.map +1 -0
  173. package/dist/fields/date/config.d.ts +57 -0
  174. package/dist/fields/date/config.d.ts.map +1 -0
  175. package/dist/fields/date/index.d.ts +5 -0
  176. package/dist/fields/date/index.d.ts.map +1 -0
  177. package/dist/fields/date/inputSchema.d.ts +29 -0
  178. package/dist/fields/date/inputSchema.d.ts.map +1 -0
  179. package/dist/fields/date/types.d.ts +147 -0
  180. package/dist/fields/date/types.d.ts.map +1 -0
  181. package/dist/fields/date/validator.d.ts +34 -0
  182. package/dist/fields/date/validator.d.ts.map +1 -0
  183. package/dist/fields/group/config.d.ts +47 -0
  184. package/dist/fields/group/config.d.ts.map +1 -0
  185. package/dist/fields/group/index.d.ts +5 -0
  186. package/dist/fields/group/index.d.ts.map +1 -0
  187. package/dist/fields/group/inputSchema.d.ts +27 -0
  188. package/dist/fields/group/inputSchema.d.ts.map +1 -0
  189. package/dist/fields/group/types.d.ts +105 -0
  190. package/dist/fields/group/types.d.ts.map +1 -0
  191. package/dist/fields/group/validator.d.ts +41 -0
  192. package/dist/fields/group/validator.d.ts.map +1 -0
  193. package/dist/fields/index.d.ts +20 -0
  194. package/dist/fields/index.d.ts.map +1 -0
  195. package/dist/fields/inputSchemas/index.d.ts +23 -0
  196. package/dist/fields/inputSchemas/index.d.ts.map +1 -0
  197. package/dist/fields/inputSchemas/utils.d.ts +25 -0
  198. package/dist/fields/inputSchemas/utils.d.ts.map +1 -0
  199. package/dist/fields/interfaceGen.d.ts +15 -0
  200. package/dist/fields/interfaceGen.d.ts.map +1 -0
  201. package/dist/fields/number/config.d.ts +48 -0
  202. package/dist/fields/number/config.d.ts.map +1 -0
  203. package/dist/fields/number/index.d.ts +5 -0
  204. package/dist/fields/number/index.d.ts.map +1 -0
  205. package/dist/fields/number/inputSchema.d.ts +23 -0
  206. package/dist/fields/number/inputSchema.d.ts.map +1 -0
  207. package/dist/fields/number/types.d.ts +100 -0
  208. package/dist/fields/number/types.d.ts.map +1 -0
  209. package/dist/fields/number/validator.d.ts +39 -0
  210. package/dist/fields/number/validator.d.ts.map +1 -0
  211. package/dist/fields/relationship/config.d.ts +45 -0
  212. package/dist/fields/relationship/config.d.ts.map +1 -0
  213. package/dist/fields/relationship/index.d.ts +5 -0
  214. package/dist/fields/relationship/index.d.ts.map +1 -0
  215. package/dist/fields/relationship/inputSchema.d.ts +31 -0
  216. package/dist/fields/relationship/inputSchema.d.ts.map +1 -0
  217. package/dist/fields/relationship/types.d.ts +126 -0
  218. package/dist/fields/relationship/types.d.ts.map +1 -0
  219. package/dist/fields/relationship/validator.d.ts +27 -0
  220. package/dist/fields/relationship/validator.d.ts.map +1 -0
  221. package/dist/fields/select/config.d.ts +59 -0
  222. package/dist/fields/select/config.d.ts.map +1 -0
  223. package/dist/fields/select/index.d.ts +5 -0
  224. package/dist/fields/select/index.d.ts.map +1 -0
  225. package/dist/fields/select/inputSchema.d.ts +28 -0
  226. package/dist/fields/select/inputSchema.d.ts.map +1 -0
  227. package/dist/fields/select/types.d.ts +89 -0
  228. package/dist/fields/select/types.d.ts.map +1 -0
  229. package/dist/fields/select/validator.d.ts +31 -0
  230. package/dist/fields/select/validator.d.ts.map +1 -0
  231. package/dist/fields/text/config.d.ts +48 -0
  232. package/dist/fields/text/config.d.ts.map +1 -0
  233. package/dist/fields/text/index.d.ts +5 -0
  234. package/dist/fields/text/index.d.ts.map +1 -0
  235. package/dist/fields/text/inputSchema.d.ts +24 -0
  236. package/dist/fields/text/inputSchema.d.ts.map +1 -0
  237. package/dist/fields/text/types.d.ts +132 -0
  238. package/dist/fields/text/types.d.ts.map +1 -0
  239. package/dist/fields/text/validator.d.ts +39 -0
  240. package/dist/fields/text/validator.d.ts.map +1 -0
  241. package/dist/fields/types.d.ts +135 -0
  242. package/dist/fields/types.d.ts.map +1 -0
  243. package/dist/fields/upload/config.d.ts +24 -0
  244. package/dist/fields/upload/config.d.ts.map +1 -0
  245. package/dist/fields/upload/index.d.ts +5 -0
  246. package/dist/fields/upload/index.d.ts.map +1 -0
  247. package/dist/fields/upload/inputSchema.d.ts +17 -0
  248. package/dist/fields/upload/inputSchema.d.ts.map +1 -0
  249. package/dist/fields/upload/types.d.ts +78 -0
  250. package/dist/fields/upload/types.d.ts.map +1 -0
  251. package/dist/fields/upload/validator.d.ts +16 -0
  252. package/dist/fields/upload/validator.d.ts.map +1 -0
  253. package/dist/fields/url/config.d.ts +49 -0
  254. package/dist/fields/url/config.d.ts.map +1 -0
  255. package/dist/fields/url/index.d.ts +5 -0
  256. package/dist/fields/url/index.d.ts.map +1 -0
  257. package/dist/fields/url/inputSchema.d.ts +31 -0
  258. package/dist/fields/url/inputSchema.d.ts.map +1 -0
  259. package/dist/fields/url/types.d.ts +70 -0
  260. package/dist/fields/url/types.d.ts.map +1 -0
  261. package/dist/fields/url/validator.d.ts +37 -0
  262. package/dist/fields/url/validator.d.ts.map +1 -0
  263. package/dist/fields/utils.d.ts +47 -0
  264. package/dist/fields/utils.d.ts.map +1 -0
  265. package/dist/fields/validators/index.d.ts +23 -0
  266. package/dist/fields/validators/index.d.ts.map +1 -0
  267. package/dist/fields/validators/utils.d.ts +24 -0
  268. package/dist/fields/validators/utils.d.ts.map +1 -0
  269. package/dist/framework.d.ts +227 -0
  270. package/dist/framework.d.ts.map +1 -0
  271. package/dist/globals/config/config.d.ts +1 -0
  272. package/dist/globals/config/config.d.ts.map +1 -0
  273. package/dist/globals/config/types.d.ts +1 -0
  274. package/dist/globals/config/types.d.ts.map +1 -0
  275. package/dist/globals/config.d.ts +47 -0
  276. package/dist/globals/config.d.ts.map +1 -0
  277. package/dist/globals/index.d.ts +5 -0
  278. package/dist/globals/index.d.ts.map +1 -0
  279. package/dist/globals/interfaceGen.d.ts +33 -0
  280. package/dist/globals/interfaceGen.d.ts.map +1 -0
  281. package/dist/globals/types.d.ts +175 -0
  282. package/dist/globals/types.d.ts.map +1 -0
  283. package/dist/globals/utils.d.ts +37 -0
  284. package/dist/globals/utils.d.ts.map +1 -0
  285. package/dist/index.d.ts +15 -3165
  286. package/dist/index.d.ts.map +1 -0
  287. package/dist/index.js +2101 -3475
  288. package/dist/index.js.map +1 -1
  289. package/dist/media/api/index.d.ts +5 -0
  290. package/dist/media/api/index.d.ts.map +1 -0
  291. package/dist/media/api/mutations.d.ts +76 -0
  292. package/dist/media/api/mutations.d.ts.map +1 -0
  293. package/dist/media/api/queries.d.ts +28 -0
  294. package/dist/media/api/queries.d.ts.map +1 -0
  295. package/dist/media/api/server.d.ts +68 -0
  296. package/dist/media/api/server.d.ts.map +1 -0
  297. package/dist/media/api/types.d.ts +171 -0
  298. package/dist/media/api/types.d.ts.map +1 -0
  299. package/dist/media/config.d.ts +25 -0
  300. package/dist/media/config.d.ts.map +1 -0
  301. package/dist/media/index.d.ts +6 -0
  302. package/dist/media/index.d.ts.map +1 -0
  303. package/dist/media/types.d.ts +332 -0
  304. package/dist/media/types.d.ts.map +1 -0
  305. package/dist/media/utils.d.ts +35 -0
  306. package/dist/media/utils.d.ts.map +1 -0
  307. package/dist/media/validators.d.ts +61 -0
  308. package/dist/media/validators.d.ts.map +1 -0
  309. package/dist/schema/generateVexSchema.d.ts +36 -0
  310. package/dist/schema/generateVexSchema.d.ts.map +1 -0
  311. package/dist/schema/index.d.ts +3 -0
  312. package/dist/schema/index.d.ts.map +1 -0
  313. package/dist/schema/migrate.d.ts +73 -0
  314. package/dist/schema/migrate.d.ts.map +1 -0
  315. package/dist/types/generateVexTypes.d.ts +41 -0
  316. package/dist/types/generateVexTypes.d.ts.map +1 -0
  317. package/dist/types/generated.d.ts +382 -0
  318. package/dist/types/generated.d.ts.map +1 -0
  319. package/dist/types/index.d.ts +5 -0
  320. package/dist/types/index.d.ts.map +1 -0
  321. package/dist/utils.d.ts +57 -0
  322. package/dist/utils.d.ts.map +1 -0
  323. package/package.json +67 -24
@@ -0,0 +1,5 @@
1
+ export * from "./types";
2
+ export * from "./mutations";
3
+ export * from "./queries";
4
+ export * from "./server";
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/media/api/index.ts"],"names":[],"mappings":"AAIA,cAAc,SAAS,CAAC;AAMxB,cAAc,aAAa,CAAC;AAM5B,cAAc,WAAW,CAAC;AAE1B,cAAc,UAAU,CAAC"}
@@ -0,0 +1,76 @@
1
+ import { GenericDataModel } from "convex/server";
2
+ import type { CreateMediaDocumentServerArgs, DeleteMediaServerArgs, GenerateUploadUrlServerArgs } from "./types";
3
+ /**
4
+ * Generates a URL to upload a file to the storage adapter.
5
+ * Server-side only — call inside a Convex mutation handler.
6
+ *
7
+ * Looks up the adapter by name from `args.config.storage?.adapters` and
8
+ * calls `adapter.generateUploadUrl(ctx)`.
9
+ *
10
+ * Import from `@vexcms/core/server`.
11
+ *
12
+ * @typeParam DataModel - Convex data model (inferred from `args.ctx`).
13
+ * @param args - `{ ctx, config, adapter }`.
14
+ * @returns Promise resolving to `{ url: string }` — the upload URL.
15
+ * @example
16
+ * ```ts
17
+ * import { generateUploadUrl } from "@vexcms/core/server";
18
+ *
19
+ * export const uploadFile = mutation({
20
+ * args: { adapter: v.string() },
21
+ * handler: (ctx, args) =>
22
+ * generateUploadUrl({ ctx, config: myConfig, adapter: args.adapter }),
23
+ * });
24
+ */
25
+ export declare function generateUploadUrl<TDataModel extends GenericDataModel = GenericDataModel>(args: GenerateUploadUrlServerArgs<TDataModel>): Promise<{
26
+ url: string;
27
+ }>;
28
+ /**
29
+ * Creates a media document in the storage adapter after the file is uploaded.
30
+ * Server-side only — call inside a Convex mutation handler.
31
+ *
32
+ * Looks up the adapter by name from `args.config.storage?.adapters` and
33
+ * calls `adapter.createMediaDocument(ctx, args)`.
34
+ *
35
+ * Import from `@vexcms/core/server`.
36
+ *
37
+ * @typeParam DataModel - Convex data model (inferred from `args.ctx`).
38
+ * @param args - `{ ctx, config, adapter, collectionSlug, storageId, filename, mimeType, size, alt?, adapterFields? }`.
39
+ * @returns Promise resolving to the new media document's ID as a string.
40
+ * @example
41
+ * ```ts
42
+ * import { createMediaDocument } from "@vexcms/core/server";
43
+ *
44
+ * export const saveMedia = mutation({
45
+ * args: { data: v.any() },
46
+ * handler: (ctx, args) =>
47
+ * createMediaDocument({ ctx, config: myConfig, ...args.data }),
48
+ * });
49
+ * ```
50
+ */
51
+ export declare function createMediaDocument<TDataModel extends GenericDataModel = GenericDataModel>(args: CreateMediaDocumentServerArgs<TDataModel>): Promise<string>;
52
+ /**
53
+ * Deletes a media document and its file from storage.
54
+ * Server-side only — call inside a Convex mutation handler.
55
+ *
56
+ * Looks up the adapter by name from `args.config.storage?.adapters` and
57
+ * calls `adapter.deleteMedia(ctx, args)`.
58
+ *
59
+ * Import from `@vexcms/core/server`.
60
+ *
61
+ * @typeParam DataModel - Convex data model (inferred from `args.ctx`).
62
+ * @param args - `{ ctx, config, adapter, mediaId, softDelete? }`.
63
+ * @returns Promise resolving to `true` if the document was deleted.
64
+ * @example
65
+ * ```ts
66
+ * import { deleteMedia } from "@vexcms/core/server";
67
+ *
68
+ * export const removeMedia = mutation({
69
+ * args: { mediaId: v.string() },
70
+ * handler: (ctx, args) =>
71
+ * deleteMedia({ ctx, config: myConfig, adapter: "convex", mediaId: args.mediaId }),
72
+ * });
73
+ * ```
74
+ */
75
+ export declare function deleteMedia<TDataModel extends GenericDataModel = GenericDataModel>(args: DeleteMediaServerArgs<TDataModel>): Promise<boolean>;
76
+ //# sourceMappingURL=mutations.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mutations.d.ts","sourceRoot":"","sources":["../../../src/media/api/mutations.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEjD,OAAO,KAAK,EACV,6BAA6B,EAC7B,qBAAqB,EACrB,2BAA2B,EAC5B,MAAM,SAAS,CAAC;AAMjB;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,wBAAsB,iBAAiB,CAAC,UAAU,SAAS,gBAAgB,GAAG,gBAAgB,EAC5F,IAAI,EAAE,2BAA2B,CAAC,UAAU,CAAC,GAC5C,OAAO,CAAC;IAAE,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC,CAsB1B;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAsB,mBAAmB,CAAC,UAAU,SAAS,gBAAgB,GAAG,gBAAgB,EAC9F,IAAI,EAAE,6BAA6B,CAAC,UAAU,CAAC,GAC9C,OAAO,CAAC,MAAM,CAAC,CA8BjB;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAsB,WAAW,CAAC,UAAU,SAAS,gBAAgB,GAAG,gBAAgB,EACtF,IAAI,EAAE,qBAAqB,CAAC,UAAU,CAAC,GACtC,OAAO,CAAC,OAAO,CAAC,CAoClB"}
@@ -0,0 +1,28 @@
1
+ import type { GenericDataModel } from "convex/server";
2
+ import { GetUrlReturn } from "../types";
3
+ import type { GetUrlServerArgs } from "./types";
4
+ /**
5
+ * Returns a URL for a media file.
6
+ * Server-side only — call inside a Convex query handler.
7
+ *
8
+ * Looks up the adapter by name from `args.config.storage?.adapters` and
9
+ * calls `adapter.getUrl(ctx, args)`.
10
+ *
11
+ * Import from `@vexcms/core/server`.
12
+ *
13
+ * @typeParam DataModel - Convex data model (inferred from `args.ctx`).
14
+ * @param args - `{ ctx, config, adapter, mediaId }`.
15
+ * @returns Promise resolving to `{ url: string }` or `{ url: null, error: string }`.
16
+ * @example
17
+ * ```ts
18
+ * import { getUrl } from "@vexcms/core/server";
19
+ *
20
+ * export const getMediaUrl = query({
21
+ * args: { mediaId: v.string() },
22
+ * handler: (ctx, args) =>
23
+ * getUrl({ ctx, config: myConfig, adapter: "convex", mediaId: args.mediaId }),
24
+ * });
25
+ * ```
26
+ */
27
+ export declare function getUrl<TDataModel extends GenericDataModel = GenericDataModel>(args: GetUrlServerArgs<TDataModel>): Promise<GetUrlReturn>;
28
+ //# sourceMappingURL=queries.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"queries.d.ts","sourceRoot":"","sources":["../../../src/media/api/queries.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEtD,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAMhD;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAsB,MAAM,CAAC,UAAU,SAAS,gBAAgB,GAAG,gBAAgB,EACjF,IAAI,EAAE,gBAAgB,CAAC,UAAU,CAAC,GACjC,OAAO,CAAC,YAAY,CAAC,CAgCvB"}
@@ -0,0 +1,68 @@
1
+ import { type MutationBuilder, type QueryBuilder, type FunctionVisibility, type GenericDataModel, GenericMutationCtx, GenericQueryCtx } from "convex/server";
2
+ import type { VexConfig } from "../../config";
3
+ import { VexApiAuth } from "../../api/types";
4
+ /**
5
+ * Registers `getUrl` as a convex query endpoint.
6
+ * Registers `generateUploadUrl`, `createMediaDocument`, and `deleteMedia` as Convex mutation endpoints.
7
+ *
8
+ * Call in the user's `convex/vex/media.ts`. The factory wraps
9
+ * the server functions in `mutation()` with `v.args()` schemas so Convex
10
+ * exposes them at `api.vex.media.generateUploadUrl`, `api.vex.media.createMediaDocument`, etc.
11
+ *
12
+ * `vexConvexApi.media.generateUploadUrl`, `vexConvexApi.media.createMediaDocument`, etc. in
13
+ * `@vexcms/core/src/convex/index.ts` point at these paths.
14
+ *
15
+ * @returns Registered `getUrl` Convex query, `generateUploadUrl` / `createMediaDocument` / `deleteMedia` Convex mutations.
16
+ * @example
17
+ * ```ts
18
+ * // apps/test/convex/vex/media.ts
19
+ * import { createGetAuth } from "@vexcms/better-auth"
20
+ * import { mediaApi } from "@vexcms/core/convex";
21
+ * import { mutation, query } from "../_generated/server";
22
+ * import config from "../../src/vex.config";
23
+ *
24
+ * export const { getUrl, generateUploadUrl, createMediaDocument, deleteMedia } = mediaApi({ config, query, mutation, getAuth: createGetAuth({...}) });
25
+ * ```
26
+ */
27
+ export declare function mediaApi<TDataModel extends GenericDataModel = GenericDataModel, Visibility extends FunctionVisibility = "public">({ config, query, mutation, getAuth, }: {
28
+ /** The user's resolved `VexConfig`. */
29
+ config: VexConfig;
30
+ /** Convex `query` builder from `_generated/server` (or an internal builder to keep endpoints private). */
31
+ query: QueryBuilder<TDataModel, Visibility>;
32
+ /** Convex `mutation` builder from `_generated/server` (or an internal builder to keep endpoints private). */
33
+ mutation: MutationBuilder<TDataModel, Visibility>;
34
+ /**
35
+ * Server-side resolver for the current caller: receives the handler's ctx and
36
+ * returns `{ user, organization? }` (or `undefined` when unauthenticated).
37
+ * Called once per request, and only when `config.access` is configured.
38
+ * Never exposed to clients.
39
+ */
40
+ getAuth?: (ctx: GenericQueryCtx<TDataModel> | GenericMutationCtx<TDataModel>) => Promise<VexApiAuth | undefined>;
41
+ }): {
42
+ getUrl: import("convex/server").RegisteredQuery<Visibility, {
43
+ mediaId: string;
44
+ adapter: string;
45
+ }, Promise<import("..").GetUrlReturn>>;
46
+ generateUploadUrl: import("convex/server").RegisteredMutation<Visibility, {
47
+ collection: string;
48
+ adapter: string;
49
+ }, Promise<{
50
+ url: string;
51
+ }>>;
52
+ createMediaDocument: import("convex/server").RegisteredMutation<Visibility, {
53
+ alt?: string | undefined;
54
+ adapterFields?: any;
55
+ storageId: string;
56
+ collectionSlug: string;
57
+ mimeType: string;
58
+ size: number;
59
+ adapter: string;
60
+ filename: string;
61
+ }, Promise<string>>;
62
+ deleteMedia: import("convex/server").RegisteredMutation<Visibility, {
63
+ softDelete?: boolean | undefined;
64
+ mediaId: string;
65
+ adapter: string;
66
+ }, Promise<boolean>>;
67
+ };
68
+ //# sourceMappingURL=server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../src/media/api/server.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,eAAe,EACpB,KAAK,YAAY,EACjB,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EACrB,kBAAkB,EAClB,eAAe,EAChB,MAAM,eAAe,CAAC;AAEvB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE9C,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAG7C;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,QAAQ,CACtB,UAAU,SAAS,gBAAgB,GAAG,gBAAgB,EACtD,UAAU,SAAS,kBAAkB,GAAG,QAAQ,EAChD,EACA,MAAM,EACN,KAAK,EACL,QAAQ,EACR,OAAO,GACR,EAAE;IACD,uCAAuC;IACvC,MAAM,EAAE,SAAS,CAAC;IAClB,0GAA0G;IAC1G,KAAK,EAAE,YAAY,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;IAC5C,6GAA6G;IAC7G,QAAQ,EAAE,eAAe,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;IAClD;;;;;OAKG;IACH,OAAO,CAAC,EAAE,CACR,GAAG,EAAE,eAAe,CAAC,UAAU,CAAC,GAAG,kBAAkB,CAAC,UAAU,CAAC,KAC9D,OAAO,CAAC,UAAU,GAAG,SAAS,CAAC,CAAC;CACtC;;;;;;;;;;;;;;;;;;;;;;;;;;EAgGA"}
@@ -0,0 +1,171 @@
1
+ import type { GenericDataModel } from "convex/server";
2
+ import type { GenericMutationClientParams, GenericMutationServerParams, GenericQueryClientParams, GenericQueryServerParams, VexApiAuth } from "../../api/types";
3
+ import type { VexConfig } from "../../config";
4
+ /**
5
+ * Base shape for server-side args of a media mutation function.
6
+ *
7
+ * @typeParam DataModel - The Convex data model (inferred from `ctx`).
8
+ */
9
+ export interface GenericMediaMutationServerParams<DataModel extends GenericDataModel = GenericDataModel> extends GenericMutationServerParams<DataModel> {
10
+ /** The auth config of the current user making the query.
11
+ * @example
12
+ * ```ts
13
+ * { user: {...}, organization: {...} }
14
+ * ```
15
+ */
16
+ auth?: VexApiAuth;
17
+ /** The resolved `VexConfig` — required for adapter lookup. */
18
+ config: VexConfig;
19
+ }
20
+ /**
21
+ * Base shape for client-side args of a media mutation function.
22
+ *
23
+ * @example Inheritance pattern
24
+ * ```ts
25
+ * // createMediaDocument — adds collectionSlug, storageId, filename, mimeType, size
26
+ * interface CreateMediaDocumentClientArgs
27
+ * extends GenericMediaMutationClientParams {
28
+ * adapter: string;
29
+ * collectionSlug: string;
30
+ * storageId: string;
31
+ * filename: string;
32
+ * mimeType: string;
33
+ * size: number;
34
+ * alt?: string;
35
+ * adapterFields?: Record<string, unknown>;
36
+ * }
37
+ */
38
+ export interface GenericMediaMutationClientParams extends GenericMutationClientParams {
39
+ }
40
+ /**
41
+ * Base shape for server-side args of a media query function.
42
+ *
43
+ * @typeParam DataModel - The Convex data model (inferred from `ctx`).
44
+ */
45
+ export interface GenericMediaQueryServerParams<DataModel extends GenericDataModel = GenericDataModel> extends GenericQueryServerParams<DataModel> {
46
+ /** The auth config of the current user making the query.
47
+ * @example
48
+ * ```ts
49
+ * { user: {...}, organization: {...} }
50
+ * ```
51
+ */
52
+ auth?: VexApiAuth;
53
+ /** The resolved `VexConfig` — required for adapter lookup. */
54
+ config: VexConfig;
55
+ }
56
+ /**
57
+ * Base shape for client-side args of a media query function.
58
+ *
59
+ * @example Inheritance pattern
60
+ * ```ts
61
+ * // getUrl — adds adapter + mediaId
62
+ * interface GetUrlClientArgs extends GenericMediaQueryClientParams {
63
+ * adapter: string;
64
+ * mediaId: string;
65
+ * }
66
+ */
67
+ export interface GenericMediaQueryClientParams extends GenericQueryClientParams {
68
+ }
69
+ /** Server-side args for `generateUploadUrl`. */
70
+ export interface GenerateUploadUrlServerArgs<TDataModel extends GenericDataModel = GenericDataModel> extends GenericMediaMutationServerParams<TDataModel> {
71
+ /** The adapter name — matches `VexStorageAdapter.name`. */
72
+ adapter: string;
73
+ /** The media collection slug where the document will be created. */
74
+ collection: string;
75
+ }
76
+ /** Server-side args for `createMediaDocument`. */
77
+ export interface CreateMediaDocumentServerArgs<TDataModel extends GenericDataModel = GenericDataModel> extends GenericMediaMutationServerParams<TDataModel> {
78
+ /** The adapter name — matches `VexStorageAdapter.name`. */
79
+ adapter: string;
80
+ /** The media collection slug where the document is stored. */
81
+ collection: string;
82
+ /** Adapter-specific storage ID (e.g., Cloudinary public_id, S3 key). */
83
+ storageId: string;
84
+ /** Original filename of the uploaded file. */
85
+ filename: string;
86
+ /** MIME type of the uploaded file (e.g., "image/png"). */
87
+ mimeType: string;
88
+ /** File size in bytes. */
89
+ size: number;
90
+ /** Alt text for accessibility — defaults to `filename` if omitted. */
91
+ alt?: string;
92
+ /** Adapter-specific fields (e.g., Cloudinary transformation params). */
93
+ adapterFields?: Record<string, unknown>;
94
+ }
95
+ /** Server-side args for `deleteMedia`. */
96
+ export interface DeleteMediaServerArgs<TDataModel extends GenericDataModel = GenericDataModel> extends GenericMediaMutationServerParams<TDataModel> {
97
+ /** The adapter name — matches `VexStorageAdapter.name`. */
98
+ adapter: string;
99
+ /** The media document ID to delete. */
100
+ mediaId: string;
101
+ /** When `true`, sets `deleted: true` instead of physical deletion. */
102
+ softDelete?: boolean;
103
+ }
104
+ /** Server-side args for `getUrl`. */
105
+ export interface GetUrlServerArgs<TDataModel extends GenericDataModel = GenericDataModel> extends GenericMediaQueryServerParams<TDataModel> {
106
+ /** The adapter name — matches `VexStorageAdapter.name`. */
107
+ adapter: string;
108
+ /** The media document ID to get the URL for. */
109
+ mediaId: string;
110
+ }
111
+ /** Client-side args for `generateUploadUrl`. */
112
+ export interface GenerateUploadUrlClientArgs extends GenericMediaMutationClientParams {
113
+ /** The adapter name — matches `VexStorageAdapter.name`. */
114
+ adapter: string;
115
+ }
116
+ /** Client-side args for `createMediaDocument`. */
117
+ export interface CreateMediaDocumentClientArgs extends GenericMediaMutationClientParams {
118
+ /** The adapter name — matches `VexStorageAdapter.name`. */
119
+ adapter: string;
120
+ /** The media collection slug where the document is stored. */
121
+ collectionSlug: string;
122
+ /** Adapter-specific storage ID (e.g., Cloudinary public_id, S3 key). */
123
+ storageId: string;
124
+ /** Original filename of the uploaded file. */
125
+ filename: string;
126
+ /** MIME type of the uploaded file (e.g., "image/png"). */
127
+ mimeType: string;
128
+ /** File size in bytes. */
129
+ size: number;
130
+ /** Alt text for accessibility — defaults to `filename` if omitted. */
131
+ alt?: string;
132
+ /** Adapter-specific fields (e.g., Cloudinary transformation params). */
133
+ adapterFields?: Record<string, unknown>;
134
+ }
135
+ /** Client-side args for `deleteMedia`. */
136
+ export interface DeleteMediaClientArgs extends GenericMediaMutationClientParams {
137
+ /** The adapter name — matches `VexStorageAdapter.name`. */
138
+ adapter: string;
139
+ /** The media document ID to delete. */
140
+ mediaId: string;
141
+ /** When `true`, sets `deleted: true` instead of physical deletion. */
142
+ softDelete?: boolean;
143
+ }
144
+ /** Client-side args for `getUrl`. */
145
+ export interface GetUrlClientArgs extends GenericMediaQueryClientParams {
146
+ /** The adapter name — matches `VexStorageAdapter.name`. */
147
+ adapter: string;
148
+ /** The media document ID to get the URL for. */
149
+ mediaId: string;
150
+ }
151
+ /** Client-side args for `listMedia`. */
152
+ export interface ListMediaClientArgs extends GenericMediaQueryClientParams {
153
+ /** The adapter name — matches `VexStorageAdapter.name`. */
154
+ adapter: string;
155
+ /** The media collection slug to list from. */
156
+ collectionSlug: string;
157
+ /** Maximum number of documents to return. Defaults to 100. */
158
+ limit?: number;
159
+ /** Offset for pagination. Defaults to 0. */
160
+ offset?: number;
161
+ }
162
+ /** Client-side args for `searchMedia`. */
163
+ export interface SearchMediaClientArgs extends GenericMediaQueryClientParams {
164
+ /** The adapter name — matches `VexStorageAdapter.name`. */
165
+ adapter: string;
166
+ /** The media collection slug to search in. */
167
+ collectionSlug: string;
168
+ /** Search query string — matches against `filename` and `alt` fields. */
169
+ query: string;
170
+ }
171
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/media/api/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ import type { CollectionConfig } from "../collections";
2
+ import type { MediaCollectionConfig, VexStorageAdapter } from "./types";
3
+ interface StorageValidationInput {
4
+ collections: CollectionConfig[];
5
+ storageAdapters?: VexStorageAdapter[];
6
+ }
7
+ interface StorageValidationOutput {
8
+ mediaCollections: MediaCollectionConfig[];
9
+ }
10
+ /**
11
+ * Validates storage adapter configuration and merges media collections.
12
+ *
13
+ * Checks:
14
+ * 1. `upload()` fields only exist when storage adapters are configured.
15
+ * 2. Every `upload().to` slug matches a media collection slug.
16
+ * 3. No slug collisions between regular collections and media collections.
17
+ * 4. No duplicate media collection slugs across adapters.
18
+ *
19
+ * @param input — Validation input containing collections and adapters.
20
+ * @returns Merged media collections with `meta.storageAdapterName` set.
21
+ * @throws {VexStorageConfigError} On any validation failure.
22
+ */
23
+ export declare function validateAndMergeStorageConfig(input: StorageValidationInput): StorageValidationOutput;
24
+ export {};
25
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/media/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAIvD,OAAO,KAAK,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAExE,UAAU,sBAAsB;IAC9B,WAAW,EAAE,gBAAgB,EAAE,CAAC;IAChC,eAAe,CAAC,EAAE,iBAAiB,EAAE,CAAC;CACvC;AAED,UAAU,uBAAuB;IAC/B,gBAAgB,EAAE,qBAAqB,EAAE,CAAC;CAC3C;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,6BAA6B,CAC3C,KAAK,EAAE,sBAAsB,GAC5B,uBAAuB,CA4FzB"}
@@ -0,0 +1,6 @@
1
+ export * from "./types";
2
+ export * from "./validators";
3
+ export * from "./config";
4
+ export * from "./api";
5
+ export * from "./utils";
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/media/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,OAAO,CAAC;AACtB,cAAc,SAAS,CAAC"}