@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.
- package/LICENSE +202 -0
- package/dist/.build +1 -0
- package/dist/access/buildChecks.d.ts +58 -0
- package/dist/access/buildChecks.d.ts.map +1 -0
- package/dist/access/canAccessAdminPanel.d.ts +53 -0
- package/dist/access/canAccessAdminPanel.d.ts.map +1 -0
- package/dist/access/compileConstraints.d.ts +155 -0
- package/dist/access/compileConstraints.d.ts.map +1 -0
- package/dist/access/config.d.ts +62 -0
- package/dist/access/config.d.ts.map +1 -0
- package/dist/access/constants.d.ts +95 -0
- package/dist/access/constants.d.ts.map +1 -0
- package/dist/access/constraintTypes.d.ts +337 -0
- package/dist/access/constraintTypes.d.ts.map +1 -0
- package/dist/access/createAccessQueryBuilder.d.ts +59 -0
- package/dist/access/createAccessQueryBuilder.d.ts.map +1 -0
- package/dist/access/createFilterConstraintBuilder.d.ts +26 -0
- package/dist/access/createFilterConstraintBuilder.d.ts.map +1 -0
- package/dist/access/createIndexConstraintBuilder.d.ts +40 -0
- package/dist/access/createIndexConstraintBuilder.d.ts.map +1 -0
- package/dist/access/hasPermission.d.ts +85 -0
- package/dist/access/hasPermission.d.ts.map +1 -0
- package/dist/access/index.d.ts +13 -0
- package/dist/access/index.d.ts.map +1 -0
- package/dist/access/pickQueryIndex.d.ts +42 -0
- package/dist/access/pickQueryIndex.d.ts.map +1 -0
- package/dist/access/resolveAccessRule.d.ts +85 -0
- package/dist/access/resolveAccessRule.d.ts.map +1 -0
- package/dist/access/types.d.ts +738 -0
- package/dist/access/types.d.ts.map +1 -0
- package/dist/access/validateAccessConstraints.d.ts +57 -0
- package/dist/access/validateAccessConstraints.d.ts.map +1 -0
- package/dist/api/client.d.ts +20 -0
- package/dist/api/client.d.ts.map +1 -0
- package/dist/api/client.js +117 -0
- package/dist/api/client.js.map +1 -0
- package/dist/api/convex.d.ts +296 -0
- package/dist/api/convex.d.ts.map +1 -0
- package/dist/api/create/client.d.ts +50 -0
- package/dist/api/create/client.d.ts.map +1 -0
- package/dist/api/create/server.d.ts +43 -0
- package/dist/api/create/server.d.ts.map +1 -0
- package/dist/api/depth.d.ts +39 -0
- package/dist/api/depth.d.ts.map +1 -0
- package/dist/api/find/client.d.ts +90 -0
- package/dist/api/find/client.d.ts.map +1 -0
- package/dist/api/find/server.d.ts +73 -0
- package/dist/api/find/server.d.ts.map +1 -0
- package/dist/api/get/client.d.ts +56 -0
- package/dist/api/get/client.d.ts.map +1 -0
- package/dist/api/get/server.d.ts +49 -0
- package/dist/api/get/server.d.ts.map +1 -0
- package/dist/api/globals/find.client.d.ts +20 -0
- package/dist/api/globals/find.client.d.ts.map +1 -0
- package/dist/api/globals/find.server.d.ts +29 -0
- package/dist/api/globals/find.server.d.ts.map +1 -0
- package/dist/api/globals/get.client.d.ts +46 -0
- package/dist/api/globals/get.client.d.ts.map +1 -0
- package/dist/api/globals/get.server.d.ts +55 -0
- package/dist/api/globals/get.server.d.ts.map +1 -0
- package/dist/api/globals/types.d.ts +65 -0
- package/dist/api/globals/types.d.ts.map +1 -0
- package/dist/api/globals/upsert.client.d.ts +24 -0
- package/dist/api/globals/upsert.client.d.ts.map +1 -0
- package/dist/api/globals/upsert.server.d.ts +47 -0
- package/dist/api/globals/upsert.server.d.ts.map +1 -0
- package/dist/api/populate.d.ts +23 -0
- package/dist/api/populate.d.ts.map +1 -0
- package/dist/api/remove/client.d.ts +58 -0
- package/dist/api/remove/client.d.ts.map +1 -0
- package/dist/api/remove/server.d.ts +65 -0
- package/dist/api/remove/server.d.ts.map +1 -0
- package/dist/api/search/client.d.ts +58 -0
- package/dist/api/search/client.d.ts.map +1 -0
- package/dist/api/search/server.d.ts +54 -0
- package/dist/api/search/server.d.ts.map +1 -0
- package/dist/api/server.d.ts +370 -0
- package/dist/api/server.d.ts.map +1 -0
- package/dist/api/server.js +33 -0
- package/dist/api/server.js.map +1 -0
- package/dist/api/types.d.ts +525 -0
- package/dist/api/types.d.ts.map +1 -0
- package/dist/api/update/client.d.ts +53 -0
- package/dist/api/update/client.d.ts.map +1 -0
- package/dist/api/update/server.d.ts +47 -0
- package/dist/api/update/server.d.ts.map +1 -0
- package/dist/api/utils.d.ts +57 -0
- package/dist/api/utils.d.ts.map +1 -0
- package/dist/auth/mergeCollections.d.ts +28 -0
- package/dist/auth/mergeCollections.d.ts.map +1 -0
- package/dist/auth/types.d.ts +84 -0
- package/dist/auth/types.d.ts.map +1 -0
- package/dist/chunk-2DU7JDEX.js +1877 -0
- package/dist/chunk-2DU7JDEX.js.map +1 -0
- package/dist/chunk-2IB2DCN7.js +75 -0
- package/dist/chunk-2IB2DCN7.js.map +1 -0
- package/dist/collections/config.d.ts +28 -0
- package/dist/collections/config.d.ts.map +1 -0
- package/dist/collections/constants.d.ts +27 -0
- package/dist/collections/constants.d.ts.map +1 -0
- package/dist/collections/index.d.ts +7 -0
- package/dist/collections/index.d.ts.map +1 -0
- package/dist/collections/indexFields.d.ts +20 -0
- package/dist/collections/indexFields.d.ts.map +1 -0
- package/dist/collections/interfaceGen.d.ts +59 -0
- package/dist/collections/interfaceGen.d.ts.map +1 -0
- package/dist/collections/internal/index.d.ts +2 -0
- package/dist/collections/internal/index.d.ts.map +1 -0
- package/dist/collections/types.d.ts +282 -0
- package/dist/collections/types.d.ts.map +1 -0
- package/dist/collections/utils.d.ts +71 -0
- package/dist/collections/utils.d.ts.map +1 -0
- package/dist/collections/validator.d.ts +73 -0
- package/dist/collections/validator.d.ts.map +1 -0
- package/dist/config/config.d.ts +43 -0
- package/dist/config/config.d.ts.map +1 -0
- package/dist/config/index.d.ts +5 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/sanitizeConfig.d.ts +82 -0
- package/dist/config/sanitizeConfig.d.ts.map +1 -0
- package/dist/config/types.d.ts +316 -0
- package/dist/config/types.d.ts.map +1 -0
- package/dist/fields/array/config.d.ts +57 -0
- package/dist/fields/array/config.d.ts.map +1 -0
- package/dist/fields/array/index.d.ts +5 -0
- package/dist/fields/array/index.d.ts.map +1 -0
- package/dist/fields/array/inputSchema.d.ts +32 -0
- package/dist/fields/array/inputSchema.d.ts.map +1 -0
- package/dist/fields/array/types.d.ts +127 -0
- package/dist/fields/array/types.d.ts.map +1 -0
- package/dist/fields/array/validator.d.ts +30 -0
- package/dist/fields/array/validator.d.ts.map +1 -0
- package/dist/fields/baseTypes.d.ts +251 -0
- package/dist/fields/baseTypes.d.ts.map +1 -0
- package/dist/fields/blocks/config.d.ts +63 -0
- package/dist/fields/blocks/config.d.ts.map +1 -0
- package/dist/fields/blocks/index.d.ts +5 -0
- package/dist/fields/blocks/index.d.ts.map +1 -0
- package/dist/fields/blocks/inputSchema.d.ts +22 -0
- package/dist/fields/blocks/inputSchema.d.ts.map +1 -0
- package/dist/fields/blocks/types.d.ts +253 -0
- package/dist/fields/blocks/types.d.ts.map +1 -0
- package/dist/fields/blocks/validator.d.ts +32 -0
- package/dist/fields/blocks/validator.d.ts.map +1 -0
- package/dist/fields/checkbox/config.d.ts +46 -0
- package/dist/fields/checkbox/config.d.ts.map +1 -0
- package/dist/fields/checkbox/index.d.ts +5 -0
- package/dist/fields/checkbox/index.d.ts.map +1 -0
- package/dist/fields/checkbox/inputSchema.d.ts +27 -0
- package/dist/fields/checkbox/inputSchema.d.ts.map +1 -0
- package/dist/fields/checkbox/types.d.ts +67 -0
- package/dist/fields/checkbox/types.d.ts.map +1 -0
- package/dist/fields/checkbox/validator.d.ts +34 -0
- package/dist/fields/checkbox/validator.d.ts.map +1 -0
- package/dist/fields/color/config.d.ts +49 -0
- package/dist/fields/color/config.d.ts.map +1 -0
- package/dist/fields/color/convert.d.ts +72 -0
- package/dist/fields/color/convert.d.ts.map +1 -0
- package/dist/fields/color/formats.d.ts +38 -0
- package/dist/fields/color/formats.d.ts.map +1 -0
- package/dist/fields/color/index.d.ts +8 -0
- package/dist/fields/color/index.d.ts.map +1 -0
- package/dist/fields/color/inputSchema.d.ts +29 -0
- package/dist/fields/color/inputSchema.d.ts.map +1 -0
- package/dist/fields/color/types.d.ts +100 -0
- package/dist/fields/color/types.d.ts.map +1 -0
- package/dist/fields/color/utils.d.ts +100 -0
- package/dist/fields/color/utils.d.ts.map +1 -0
- package/dist/fields/color/validator.d.ts +27 -0
- package/dist/fields/color/validator.d.ts.map +1 -0
- package/dist/fields/constants.d.ts +108 -0
- package/dist/fields/constants.d.ts.map +1 -0
- package/dist/fields/date/config.d.ts +57 -0
- package/dist/fields/date/config.d.ts.map +1 -0
- package/dist/fields/date/index.d.ts +5 -0
- package/dist/fields/date/index.d.ts.map +1 -0
- package/dist/fields/date/inputSchema.d.ts +29 -0
- package/dist/fields/date/inputSchema.d.ts.map +1 -0
- package/dist/fields/date/types.d.ts +147 -0
- package/dist/fields/date/types.d.ts.map +1 -0
- package/dist/fields/date/validator.d.ts +34 -0
- package/dist/fields/date/validator.d.ts.map +1 -0
- package/dist/fields/group/config.d.ts +47 -0
- package/dist/fields/group/config.d.ts.map +1 -0
- package/dist/fields/group/index.d.ts +5 -0
- package/dist/fields/group/index.d.ts.map +1 -0
- package/dist/fields/group/inputSchema.d.ts +27 -0
- package/dist/fields/group/inputSchema.d.ts.map +1 -0
- package/dist/fields/group/types.d.ts +105 -0
- package/dist/fields/group/types.d.ts.map +1 -0
- package/dist/fields/group/validator.d.ts +41 -0
- package/dist/fields/group/validator.d.ts.map +1 -0
- package/dist/fields/index.d.ts +20 -0
- package/dist/fields/index.d.ts.map +1 -0
- package/dist/fields/inputSchemas/index.d.ts +23 -0
- package/dist/fields/inputSchemas/index.d.ts.map +1 -0
- package/dist/fields/inputSchemas/utils.d.ts +25 -0
- package/dist/fields/inputSchemas/utils.d.ts.map +1 -0
- package/dist/fields/interfaceGen.d.ts +15 -0
- package/dist/fields/interfaceGen.d.ts.map +1 -0
- package/dist/fields/number/config.d.ts +48 -0
- package/dist/fields/number/config.d.ts.map +1 -0
- package/dist/fields/number/index.d.ts +5 -0
- package/dist/fields/number/index.d.ts.map +1 -0
- package/dist/fields/number/inputSchema.d.ts +23 -0
- package/dist/fields/number/inputSchema.d.ts.map +1 -0
- package/dist/fields/number/types.d.ts +100 -0
- package/dist/fields/number/types.d.ts.map +1 -0
- package/dist/fields/number/validator.d.ts +39 -0
- package/dist/fields/number/validator.d.ts.map +1 -0
- package/dist/fields/relationship/config.d.ts +45 -0
- package/dist/fields/relationship/config.d.ts.map +1 -0
- package/dist/fields/relationship/index.d.ts +5 -0
- package/dist/fields/relationship/index.d.ts.map +1 -0
- package/dist/fields/relationship/inputSchema.d.ts +31 -0
- package/dist/fields/relationship/inputSchema.d.ts.map +1 -0
- package/dist/fields/relationship/types.d.ts +126 -0
- package/dist/fields/relationship/types.d.ts.map +1 -0
- package/dist/fields/relationship/validator.d.ts +27 -0
- package/dist/fields/relationship/validator.d.ts.map +1 -0
- package/dist/fields/select/config.d.ts +59 -0
- package/dist/fields/select/config.d.ts.map +1 -0
- package/dist/fields/select/index.d.ts +5 -0
- package/dist/fields/select/index.d.ts.map +1 -0
- package/dist/fields/select/inputSchema.d.ts +28 -0
- package/dist/fields/select/inputSchema.d.ts.map +1 -0
- package/dist/fields/select/types.d.ts +89 -0
- package/dist/fields/select/types.d.ts.map +1 -0
- package/dist/fields/select/validator.d.ts +31 -0
- package/dist/fields/select/validator.d.ts.map +1 -0
- package/dist/fields/text/config.d.ts +48 -0
- package/dist/fields/text/config.d.ts.map +1 -0
- package/dist/fields/text/index.d.ts +5 -0
- package/dist/fields/text/index.d.ts.map +1 -0
- package/dist/fields/text/inputSchema.d.ts +24 -0
- package/dist/fields/text/inputSchema.d.ts.map +1 -0
- package/dist/fields/text/types.d.ts +132 -0
- package/dist/fields/text/types.d.ts.map +1 -0
- package/dist/fields/text/validator.d.ts +39 -0
- package/dist/fields/text/validator.d.ts.map +1 -0
- package/dist/fields/types.d.ts +135 -0
- package/dist/fields/types.d.ts.map +1 -0
- package/dist/fields/upload/config.d.ts +24 -0
- package/dist/fields/upload/config.d.ts.map +1 -0
- package/dist/fields/upload/index.d.ts +5 -0
- package/dist/fields/upload/index.d.ts.map +1 -0
- package/dist/fields/upload/inputSchema.d.ts +17 -0
- package/dist/fields/upload/inputSchema.d.ts.map +1 -0
- package/dist/fields/upload/types.d.ts +78 -0
- package/dist/fields/upload/types.d.ts.map +1 -0
- package/dist/fields/upload/validator.d.ts +16 -0
- package/dist/fields/upload/validator.d.ts.map +1 -0
- package/dist/fields/url/config.d.ts +49 -0
- package/dist/fields/url/config.d.ts.map +1 -0
- package/dist/fields/url/index.d.ts +5 -0
- package/dist/fields/url/index.d.ts.map +1 -0
- package/dist/fields/url/inputSchema.d.ts +31 -0
- package/dist/fields/url/inputSchema.d.ts.map +1 -0
- package/dist/fields/url/types.d.ts +70 -0
- package/dist/fields/url/types.d.ts.map +1 -0
- package/dist/fields/url/validator.d.ts +37 -0
- package/dist/fields/url/validator.d.ts.map +1 -0
- package/dist/fields/utils.d.ts +47 -0
- package/dist/fields/utils.d.ts.map +1 -0
- package/dist/fields/validators/index.d.ts +23 -0
- package/dist/fields/validators/index.d.ts.map +1 -0
- package/dist/fields/validators/utils.d.ts +24 -0
- package/dist/fields/validators/utils.d.ts.map +1 -0
- package/dist/framework.d.ts +227 -0
- package/dist/framework.d.ts.map +1 -0
- package/dist/globals/config/config.d.ts +1 -0
- package/dist/globals/config/config.d.ts.map +1 -0
- package/dist/globals/config/types.d.ts +1 -0
- package/dist/globals/config/types.d.ts.map +1 -0
- package/dist/globals/config.d.ts +47 -0
- package/dist/globals/config.d.ts.map +1 -0
- package/dist/globals/index.d.ts +5 -0
- package/dist/globals/index.d.ts.map +1 -0
- package/dist/globals/interfaceGen.d.ts +33 -0
- package/dist/globals/interfaceGen.d.ts.map +1 -0
- package/dist/globals/types.d.ts +175 -0
- package/dist/globals/types.d.ts.map +1 -0
- package/dist/globals/utils.d.ts +37 -0
- package/dist/globals/utils.d.ts.map +1 -0
- package/dist/index.d.ts +15 -3165
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +2101 -3475
- package/dist/index.js.map +1 -1
- package/dist/media/api/index.d.ts +5 -0
- package/dist/media/api/index.d.ts.map +1 -0
- package/dist/media/api/mutations.d.ts +76 -0
- package/dist/media/api/mutations.d.ts.map +1 -0
- package/dist/media/api/queries.d.ts +28 -0
- package/dist/media/api/queries.d.ts.map +1 -0
- package/dist/media/api/server.d.ts +68 -0
- package/dist/media/api/server.d.ts.map +1 -0
- package/dist/media/api/types.d.ts +171 -0
- package/dist/media/api/types.d.ts.map +1 -0
- package/dist/media/config.d.ts +25 -0
- package/dist/media/config.d.ts.map +1 -0
- package/dist/media/index.d.ts +6 -0
- package/dist/media/index.d.ts.map +1 -0
- package/dist/media/types.d.ts +332 -0
- package/dist/media/types.d.ts.map +1 -0
- package/dist/media/utils.d.ts +35 -0
- package/dist/media/utils.d.ts.map +1 -0
- package/dist/media/validators.d.ts +61 -0
- package/dist/media/validators.d.ts.map +1 -0
- package/dist/schema/generateVexSchema.d.ts +36 -0
- package/dist/schema/generateVexSchema.d.ts.map +1 -0
- package/dist/schema/index.d.ts +3 -0
- package/dist/schema/index.d.ts.map +1 -0
- package/dist/schema/migrate.d.ts +73 -0
- package/dist/schema/migrate.d.ts.map +1 -0
- package/dist/types/generateVexTypes.d.ts +41 -0
- package/dist/types/generateVexTypes.d.ts.map +1 -0
- package/dist/types/generated.d.ts +382 -0
- package/dist/types/generated.d.ts.map +1 -0
- package/dist/types/index.d.ts +5 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/utils.d.ts +57 -0
- package/dist/utils.d.ts.map +1 -0
- package/package.json +67 -24
|
@@ -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 @@
|
|
|
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"}
|