convex-cms 0.0.1
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/dist/cli/commands/admin.d.ts +16 -0
- package/dist/cli/commands/admin.d.ts.map +1 -0
- package/dist/cli/commands/admin.js +88 -0
- package/dist/cli/commands/admin.js.map +1 -0
- package/dist/cli/index.d.ts +3 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +18 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/utils/detectConvexUrl.d.ts +13 -0
- package/dist/cli/utils/detectConvexUrl.d.ts.map +1 -0
- package/dist/cli/utils/detectConvexUrl.js +48 -0
- package/dist/cli/utils/detectConvexUrl.js.map +1 -0
- package/dist/cli/utils/openBrowser.d.ts +7 -0
- package/dist/cli/utils/openBrowser.d.ts.map +1 -0
- package/dist/cli/utils/openBrowser.js +17 -0
- package/dist/cli/utils/openBrowser.js.map +1 -0
- package/dist/client/admin-config.d.ts +126 -0
- package/dist/client/admin-config.d.ts.map +1 -0
- package/dist/client/admin-config.js +117 -0
- package/dist/client/admin-config.js.map +1 -0
- package/dist/client/adminApi.d.ts +2273 -0
- package/dist/client/adminApi.d.ts.map +1 -0
- package/dist/client/adminApi.js +716 -0
- package/dist/client/adminApi.js.map +1 -0
- package/dist/client/agentTools.d.ts +933 -0
- package/dist/client/agentTools.d.ts.map +1 -0
- package/dist/client/agentTools.js +1004 -0
- package/dist/client/agentTools.js.map +1 -0
- package/dist/client/argTypes.d.ts +212 -0
- package/dist/client/argTypes.d.ts.map +1 -0
- package/dist/client/argTypes.js +5 -0
- package/dist/client/argTypes.js.map +1 -0
- package/dist/client/field-types.d.ts +55 -0
- package/dist/client/field-types.d.ts.map +1 -0
- package/dist/client/field-types.js +152 -0
- package/dist/client/field-types.js.map +1 -0
- package/dist/client/index.d.ts +189 -0
- package/dist/client/index.d.ts.map +1 -0
- package/dist/client/index.js +668 -0
- package/dist/client/index.js.map +1 -0
- package/dist/client/queryBuilder.d.ts +765 -0
- package/dist/client/queryBuilder.d.ts.map +1 -0
- package/dist/client/queryBuilder.js +970 -0
- package/dist/client/queryBuilder.js.map +1 -0
- package/dist/client/schema/codegen.d.ts +128 -0
- package/dist/client/schema/codegen.d.ts.map +1 -0
- package/dist/client/schema/codegen.js +318 -0
- package/dist/client/schema/codegen.js.map +1 -0
- package/dist/client/schema/defineContentType.d.ts +221 -0
- package/dist/client/schema/defineContentType.d.ts.map +1 -0
- package/dist/client/schema/defineContentType.js +380 -0
- package/dist/client/schema/defineContentType.js.map +1 -0
- package/dist/client/schema/index.d.ts +85 -0
- package/dist/client/schema/index.d.ts.map +1 -0
- package/dist/client/schema/index.js +92 -0
- package/dist/client/schema/index.js.map +1 -0
- package/dist/client/schema/schemaDrift.d.ts +199 -0
- package/dist/client/schema/schemaDrift.d.ts.map +1 -0
- package/dist/client/schema/schemaDrift.js +340 -0
- package/dist/client/schema/schemaDrift.js.map +1 -0
- package/dist/client/schema/typedClient.d.ts +401 -0
- package/dist/client/schema/typedClient.d.ts.map +1 -0
- package/dist/client/schema/typedClient.js +269 -0
- package/dist/client/schema/typedClient.js.map +1 -0
- package/dist/client/schema/types.d.ts +477 -0
- package/dist/client/schema/types.d.ts.map +1 -0
- package/dist/client/schema/types.js +39 -0
- package/dist/client/schema/types.js.map +1 -0
- package/dist/client/types.d.ts +449 -0
- package/dist/client/types.d.ts.map +1 -0
- package/dist/client/types.js +149 -0
- package/dist/client/types.js.map +1 -0
- package/dist/client/workflows.d.ts +51 -0
- package/dist/client/workflows.d.ts.map +1 -0
- package/dist/client/workflows.js +103 -0
- package/dist/client/workflows.js.map +1 -0
- package/dist/client/wrapper.d.ts +2198 -0
- package/dist/client/wrapper.d.ts.map +1 -0
- package/dist/client/wrapper.js +2651 -0
- package/dist/client/wrapper.js.map +1 -0
- package/dist/component/_generated/api.d.ts +124 -0
- package/dist/component/_generated/api.d.ts.map +1 -0
- package/dist/component/_generated/api.js +31 -0
- package/dist/component/_generated/api.js.map +1 -0
- package/dist/component/_generated/component.d.ts +4321 -0
- package/dist/component/_generated/component.d.ts.map +1 -0
- package/dist/component/_generated/component.js +11 -0
- package/dist/component/_generated/component.js.map +1 -0
- package/dist/component/_generated/dataModel.d.ts +46 -0
- package/dist/component/_generated/dataModel.d.ts.map +1 -0
- package/dist/component/_generated/dataModel.js +11 -0
- package/dist/component/_generated/dataModel.js.map +1 -0
- package/dist/component/_generated/server.d.ts +121 -0
- package/dist/component/_generated/server.d.ts.map +1 -0
- package/dist/component/_generated/server.js +78 -0
- package/dist/component/_generated/server.js.map +1 -0
- package/dist/component/auditLog.d.ts +410 -0
- package/dist/component/auditLog.d.ts.map +1 -0
- package/dist/component/auditLog.js +607 -0
- package/dist/component/auditLog.js.map +1 -0
- package/dist/component/authorization.d.ts +323 -0
- package/dist/component/authorization.d.ts.map +1 -0
- package/dist/component/authorization.js +464 -0
- package/dist/component/authorization.js.map +1 -0
- package/dist/component/authorizationHooks.d.ts +184 -0
- package/dist/component/authorizationHooks.d.ts.map +1 -0
- package/dist/component/authorizationHooks.js +521 -0
- package/dist/component/authorizationHooks.js.map +1 -0
- package/dist/component/bulkOperations.d.ts +200 -0
- package/dist/component/bulkOperations.d.ts.map +1 -0
- package/dist/component/bulkOperations.js +568 -0
- package/dist/component/bulkOperations.js.map +1 -0
- package/dist/component/contentEntries.d.ts +719 -0
- package/dist/component/contentEntries.d.ts.map +1 -0
- package/dist/component/contentEntries.js +1617 -0
- package/dist/component/contentEntries.js.map +1 -0
- package/dist/component/contentEntryMutations.d.ts +505 -0
- package/dist/component/contentEntryMutations.d.ts.map +1 -0
- package/dist/component/contentEntryMutations.js +1009 -0
- package/dist/component/contentEntryMutations.js.map +1 -0
- package/dist/component/contentEntryValidation.d.ts +115 -0
- package/dist/component/contentEntryValidation.d.ts.map +1 -0
- package/dist/component/contentEntryValidation.js +546 -0
- package/dist/component/contentEntryValidation.js.map +1 -0
- package/dist/component/contentLock.d.ts +328 -0
- package/dist/component/contentLock.d.ts.map +1 -0
- package/dist/component/contentLock.js +471 -0
- package/dist/component/contentLock.js.map +1 -0
- package/dist/component/contentTypeMigration.d.ts +411 -0
- package/dist/component/contentTypeMigration.d.ts.map +1 -0
- package/dist/component/contentTypeMigration.js +805 -0
- package/dist/component/contentTypeMigration.js.map +1 -0
- package/dist/component/contentTypeMutations.d.ts +975 -0
- package/dist/component/contentTypeMutations.d.ts.map +1 -0
- package/dist/component/contentTypeMutations.js +768 -0
- package/dist/component/contentTypeMutations.js.map +1 -0
- package/dist/component/contentTypes.d.ts +538 -0
- package/dist/component/contentTypes.d.ts.map +1 -0
- package/dist/component/contentTypes.js +304 -0
- package/dist/component/contentTypes.js.map +1 -0
- package/dist/component/convex.config.d.ts +42 -0
- package/dist/component/convex.config.d.ts.map +1 -0
- package/dist/component/convex.config.js +43 -0
- package/dist/component/convex.config.js.map +1 -0
- package/dist/component/documentTypes.d.ts +186 -0
- package/dist/component/documentTypes.d.ts.map +1 -0
- package/dist/component/documentTypes.js +23 -0
- package/dist/component/documentTypes.js.map +1 -0
- package/dist/component/eventEmitter.d.ts +281 -0
- package/dist/component/eventEmitter.d.ts.map +1 -0
- package/dist/component/eventEmitter.js +300 -0
- package/dist/component/eventEmitter.js.map +1 -0
- package/dist/component/exportImport.d.ts +1120 -0
- package/dist/component/exportImport.d.ts.map +1 -0
- package/dist/component/exportImport.js +931 -0
- package/dist/component/exportImport.js.map +1 -0
- package/dist/component/index.d.ts +28 -0
- package/dist/component/index.d.ts.map +1 -0
- package/dist/component/index.js +142 -0
- package/dist/component/index.js.map +1 -0
- package/dist/component/lib/deepReferenceResolver.d.ts +252 -0
- package/dist/component/lib/deepReferenceResolver.d.ts.map +1 -0
- package/dist/component/lib/deepReferenceResolver.js +601 -0
- package/dist/component/lib/deepReferenceResolver.js.map +1 -0
- package/dist/component/lib/errors.d.ts +306 -0
- package/dist/component/lib/errors.d.ts.map +1 -0
- package/dist/component/lib/errors.js +407 -0
- package/dist/component/lib/errors.js.map +1 -0
- package/dist/component/lib/index.d.ts +10 -0
- package/dist/component/lib/index.d.ts.map +1 -0
- package/dist/component/lib/index.js +33 -0
- package/dist/component/lib/index.js.map +1 -0
- package/dist/component/lib/mediaReferenceResolver.d.ts +217 -0
- package/dist/component/lib/mediaReferenceResolver.d.ts.map +1 -0
- package/dist/component/lib/mediaReferenceResolver.js +326 -0
- package/dist/component/lib/mediaReferenceResolver.js.map +1 -0
- package/dist/component/lib/metadataExtractor.d.ts +245 -0
- package/dist/component/lib/metadataExtractor.d.ts.map +1 -0
- package/dist/component/lib/metadataExtractor.js +548 -0
- package/dist/component/lib/metadataExtractor.js.map +1 -0
- package/dist/component/lib/mutationAuth.d.ts +95 -0
- package/dist/component/lib/mutationAuth.d.ts.map +1 -0
- package/dist/component/lib/mutationAuth.js +146 -0
- package/dist/component/lib/mutationAuth.js.map +1 -0
- package/dist/component/lib/queries.d.ts +17 -0
- package/dist/component/lib/queries.d.ts.map +1 -0
- package/dist/component/lib/queries.js +49 -0
- package/dist/component/lib/queries.js.map +1 -0
- package/dist/component/lib/ragContentChunker.d.ts +423 -0
- package/dist/component/lib/ragContentChunker.d.ts.map +1 -0
- package/dist/component/lib/ragContentChunker.js +897 -0
- package/dist/component/lib/ragContentChunker.js.map +1 -0
- package/dist/component/lib/referenceResolver.d.ts +175 -0
- package/dist/component/lib/referenceResolver.d.ts.map +1 -0
- package/dist/component/lib/referenceResolver.js +293 -0
- package/dist/component/lib/referenceResolver.js.map +1 -0
- package/dist/component/lib/slugGenerator.d.ts +71 -0
- package/dist/component/lib/slugGenerator.d.ts.map +1 -0
- package/dist/component/lib/slugGenerator.js +207 -0
- package/dist/component/lib/slugGenerator.js.map +1 -0
- package/dist/component/lib/slugUniqueness.d.ts +131 -0
- package/dist/component/lib/slugUniqueness.d.ts.map +1 -0
- package/dist/component/lib/slugUniqueness.js +229 -0
- package/dist/component/lib/slugUniqueness.js.map +1 -0
- package/dist/component/lib/softDelete.d.ts +18 -0
- package/dist/component/lib/softDelete.d.ts.map +1 -0
- package/dist/component/lib/softDelete.js +29 -0
- package/dist/component/lib/softDelete.js.map +1 -0
- package/dist/component/localeFallbackChain.d.ts +410 -0
- package/dist/component/localeFallbackChain.d.ts.map +1 -0
- package/dist/component/localeFallbackChain.js +467 -0
- package/dist/component/localeFallbackChain.js.map +1 -0
- package/dist/component/localeFields.d.ts +508 -0
- package/dist/component/localeFields.d.ts.map +1 -0
- package/dist/component/localeFields.js +592 -0
- package/dist/component/localeFields.js.map +1 -0
- package/dist/component/mediaAssetMutations.d.ts +235 -0
- package/dist/component/mediaAssetMutations.d.ts.map +1 -0
- package/dist/component/mediaAssetMutations.js +558 -0
- package/dist/component/mediaAssetMutations.js.map +1 -0
- package/dist/component/mediaAssets.d.ts +168 -0
- package/dist/component/mediaAssets.d.ts.map +1 -0
- package/dist/component/mediaAssets.js +618 -0
- package/dist/component/mediaAssets.js.map +1 -0
- package/dist/component/mediaFolderMutations.d.ts +642 -0
- package/dist/component/mediaFolderMutations.d.ts.map +1 -0
- package/dist/component/mediaFolderMutations.js +849 -0
- package/dist/component/mediaFolderMutations.js.map +1 -0
- package/dist/component/mediaUploadMutations.d.ts +136 -0
- package/dist/component/mediaUploadMutations.d.ts.map +1 -0
- package/dist/component/mediaUploadMutations.js +205 -0
- package/dist/component/mediaUploadMutations.js.map +1 -0
- package/dist/component/mediaVariantMutations.d.ts +468 -0
- package/dist/component/mediaVariantMutations.d.ts.map +1 -0
- package/dist/component/mediaVariantMutations.js +737 -0
- package/dist/component/mediaVariantMutations.js.map +1 -0
- package/dist/component/mediaVariants.d.ts +525 -0
- package/dist/component/mediaVariants.d.ts.map +1 -0
- package/dist/component/mediaVariants.js +661 -0
- package/dist/component/mediaVariants.js.map +1 -0
- package/dist/component/ragContentIndexer.d.ts +595 -0
- package/dist/component/ragContentIndexer.d.ts.map +1 -0
- package/dist/component/ragContentIndexer.js +794 -0
- package/dist/component/ragContentIndexer.js.map +1 -0
- package/dist/component/rateLimitHooks.d.ts +266 -0
- package/dist/component/rateLimitHooks.d.ts.map +1 -0
- package/dist/component/rateLimitHooks.js +412 -0
- package/dist/component/rateLimitHooks.js.map +1 -0
- package/dist/component/roles.d.ts +649 -0
- package/dist/component/roles.d.ts.map +1 -0
- package/dist/component/roles.js +884 -0
- package/dist/component/roles.js.map +1 -0
- package/dist/component/scheduledPublish.d.ts +182 -0
- package/dist/component/scheduledPublish.d.ts.map +1 -0
- package/dist/component/scheduledPublish.js +304 -0
- package/dist/component/scheduledPublish.js.map +1 -0
- package/dist/component/schema.d.ts +4114 -0
- package/dist/component/schema.d.ts.map +1 -0
- package/dist/component/schema.js +469 -0
- package/dist/component/schema.js.map +1 -0
- package/dist/component/taxonomies.d.ts +476 -0
- package/dist/component/taxonomies.d.ts.map +1 -0
- package/dist/component/taxonomies.js +785 -0
- package/dist/component/taxonomies.js.map +1 -0
- package/dist/component/taxonomyMutations.d.ts +206 -0
- package/dist/component/taxonomyMutations.d.ts.map +1 -0
- package/dist/component/taxonomyMutations.js +1001 -0
- package/dist/component/taxonomyMutations.js.map +1 -0
- package/dist/component/trash.d.ts +265 -0
- package/dist/component/trash.d.ts.map +1 -0
- package/dist/component/trash.js +621 -0
- package/dist/component/trash.js.map +1 -0
- package/dist/component/types.d.ts +4 -0
- package/dist/component/types.d.ts.map +1 -0
- package/dist/component/types.js +2 -0
- package/dist/component/types.js.map +1 -0
- package/dist/component/userContext.d.ts +508 -0
- package/dist/component/userContext.d.ts.map +1 -0
- package/dist/component/userContext.js +615 -0
- package/dist/component/userContext.js.map +1 -0
- package/dist/component/validation.d.ts +387 -0
- package/dist/component/validation.d.ts.map +1 -0
- package/dist/component/validation.js +1052 -0
- package/dist/component/validation.js.map +1 -0
- package/dist/component/validators.d.ts +4645 -0
- package/dist/component/validators.d.ts.map +1 -0
- package/dist/component/validators.js +641 -0
- package/dist/component/validators.js.map +1 -0
- package/dist/component/versionMutations.d.ts +216 -0
- package/dist/component/versionMutations.d.ts.map +1 -0
- package/dist/component/versionMutations.js +321 -0
- package/dist/component/versionMutations.js.map +1 -0
- package/dist/component/webhookTrigger.d.ts +770 -0
- package/dist/component/webhookTrigger.d.ts.map +1 -0
- package/dist/component/webhookTrigger.js +1413 -0
- package/dist/component/webhookTrigger.js.map +1 -0
- package/dist/react/index.d.ts +316 -0
- package/dist/react/index.d.ts.map +1 -0
- package/dist/react/index.js +558 -0
- package/dist/react/index.js.map +1 -0
- package/dist/test.d.ts +2230 -0
- package/dist/test.d.ts.map +1 -0
- package/dist/test.js +1107 -0
- package/dist/test.js.map +1 -0
- package/package.json +95 -0
- package/src/cli/commands/admin.ts +104 -0
- package/src/cli/index.ts +21 -0
- package/src/cli/utils/detectConvexUrl.ts +54 -0
- package/src/cli/utils/openBrowser.ts +16 -0
- package/src/client/admin-config.ts +138 -0
- package/src/client/adminApi.ts +942 -0
- package/src/client/agentTools.ts +1311 -0
- package/src/client/argTypes.ts +316 -0
- package/src/client/field-types.ts +187 -0
- package/src/client/index.ts +1301 -0
- package/src/client/queryBuilder.ts +1100 -0
- package/src/client/schema/codegen.ts +500 -0
- package/src/client/schema/defineContentType.ts +501 -0
- package/src/client/schema/index.ts +169 -0
- package/src/client/schema/schemaDrift.ts +574 -0
- package/src/client/schema/typedClient.ts +688 -0
- package/src/client/schema/types.ts +666 -0
- package/src/client/types.ts +723 -0
- package/src/client/workflows.ts +141 -0
- package/src/client/wrapper.ts +4304 -0
- package/src/component/_generated/api.ts +140 -0
- package/src/component/_generated/component.ts +5029 -0
- package/src/component/_generated/dataModel.ts +60 -0
- package/src/component/_generated/server.ts +156 -0
- package/src/component/authorization.ts +647 -0
- package/src/component/authorizationHooks.ts +668 -0
- package/src/component/bulkOperations.ts +687 -0
- package/src/component/contentEntries.ts +1976 -0
- package/src/component/contentEntryMutations.ts +1223 -0
- package/src/component/contentEntryValidation.ts +707 -0
- package/src/component/contentLock.ts +550 -0
- package/src/component/contentTypeMigration.ts +1064 -0
- package/src/component/contentTypeMutations.ts +969 -0
- package/src/component/contentTypes.ts +346 -0
- package/src/component/convex.config.ts +44 -0
- package/src/component/documentTypes.ts +240 -0
- package/src/component/eventEmitter.ts +485 -0
- package/src/component/exportImport.ts +1169 -0
- package/src/component/index.ts +491 -0
- package/src/component/lib/deepReferenceResolver.ts +999 -0
- package/src/component/lib/errors.ts +816 -0
- package/src/component/lib/index.ts +145 -0
- package/src/component/lib/mediaReferenceResolver.ts +495 -0
- package/src/component/lib/metadataExtractor.ts +792 -0
- package/src/component/lib/mutationAuth.ts +199 -0
- package/src/component/lib/queries.ts +79 -0
- package/src/component/lib/ragContentChunker.ts +1371 -0
- package/src/component/lib/referenceResolver.ts +430 -0
- package/src/component/lib/slugGenerator.ts +262 -0
- package/src/component/lib/slugUniqueness.ts +333 -0
- package/src/component/lib/softDelete.ts +44 -0
- package/src/component/localeFallbackChain.ts +673 -0
- package/src/component/localeFields.ts +896 -0
- package/src/component/mediaAssetMutations.ts +725 -0
- package/src/component/mediaAssets.ts +932 -0
- package/src/component/mediaFolderMutations.ts +1046 -0
- package/src/component/mediaUploadMutations.ts +224 -0
- package/src/component/mediaVariantMutations.ts +900 -0
- package/src/component/mediaVariants.ts +793 -0
- package/src/component/ragContentIndexer.ts +1067 -0
- package/src/component/rateLimitHooks.ts +572 -0
- package/src/component/roles.ts +1360 -0
- package/src/component/scheduledPublish.ts +358 -0
- package/src/component/schema.ts +617 -0
- package/src/component/taxonomies.ts +949 -0
- package/src/component/taxonomyMutations.ts +1210 -0
- package/src/component/trash.ts +724 -0
- package/src/component/userContext.ts +898 -0
- package/src/component/validation.ts +1388 -0
- package/src/component/validators.ts +949 -0
- package/src/component/versionMutations.ts +392 -0
- package/src/component/webhookTrigger.ts +1922 -0
- package/src/react/index.ts +898 -0
- package/src/test.ts +1580 -0
|
@@ -0,0 +1,245 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Media Metadata Extractor
|
|
3
|
+
*
|
|
4
|
+
* Internal utility functions for extracting and normalizing metadata from uploaded files.
|
|
5
|
+
* This module provides type-safe metadata extraction based on file MIME types.
|
|
6
|
+
*
|
|
7
|
+
* Since Convex functions don't have direct file access (files are in storage),
|
|
8
|
+
* this extractor works with:
|
|
9
|
+
* 1. Client-provided metadata (dimensions, duration from browser APIs)
|
|
10
|
+
* 2. MIME type analysis for capability detection
|
|
11
|
+
* 3. Filename analysis for additional hints
|
|
12
|
+
*
|
|
13
|
+
* The extractor normalizes and validates this information into a structured format
|
|
14
|
+
* that can be stored in the media asset's metadata field.
|
|
15
|
+
*/
|
|
16
|
+
/**
|
|
17
|
+
* Base metadata properties common to all media types.
|
|
18
|
+
*/
|
|
19
|
+
export interface BaseMetadata {
|
|
20
|
+
/** Original filename */
|
|
21
|
+
filename: string;
|
|
22
|
+
/** MIME type of the file */
|
|
23
|
+
mimeType: string;
|
|
24
|
+
/** File size in bytes */
|
|
25
|
+
size: number;
|
|
26
|
+
/** Classified media type */
|
|
27
|
+
mediaType: "image" | "video" | "audio" | "document" | "other";
|
|
28
|
+
/** File extension (lowercase, without dot) */
|
|
29
|
+
extension: string;
|
|
30
|
+
/** Whether this file type is typically web-compatible */
|
|
31
|
+
isWebCompatible: boolean;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Extended metadata for image files.
|
|
35
|
+
*/
|
|
36
|
+
export interface ImageMetadata extends BaseMetadata {
|
|
37
|
+
mediaType: "image";
|
|
38
|
+
/** Width in pixels */
|
|
39
|
+
width?: number;
|
|
40
|
+
/** Height in pixels */
|
|
41
|
+
height?: number;
|
|
42
|
+
/** Aspect ratio (width / height) */
|
|
43
|
+
aspectRatio?: number;
|
|
44
|
+
/** Whether the format supports transparency */
|
|
45
|
+
supportsTransparency: boolean;
|
|
46
|
+
/** Whether this is a vector format (infinitely scalable) */
|
|
47
|
+
isVector: boolean;
|
|
48
|
+
/** Whether this format supports animation */
|
|
49
|
+
supportsAnimation: boolean;
|
|
50
|
+
/** Suggested image optimization format */
|
|
51
|
+
suggestedFormat?: "webp" | "avif" | "jpeg" | "png" | "svg";
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* Extended metadata for video files.
|
|
55
|
+
*/
|
|
56
|
+
export interface VideoMetadata extends BaseMetadata {
|
|
57
|
+
mediaType: "video";
|
|
58
|
+
/** Width in pixels */
|
|
59
|
+
width?: number;
|
|
60
|
+
/** Height in pixels */
|
|
61
|
+
height?: number;
|
|
62
|
+
/** Aspect ratio (width / height) */
|
|
63
|
+
aspectRatio?: number;
|
|
64
|
+
/** Duration in seconds */
|
|
65
|
+
duration?: number;
|
|
66
|
+
/** Duration formatted as HH:MM:SS */
|
|
67
|
+
durationFormatted?: string;
|
|
68
|
+
/** Video codec (if known) */
|
|
69
|
+
codec?: string;
|
|
70
|
+
/** Whether the format is widely supported in browsers */
|
|
71
|
+
hasBroadBrowserSupport: boolean;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Extended metadata for audio files.
|
|
75
|
+
*/
|
|
76
|
+
export interface AudioMetadata extends BaseMetadata {
|
|
77
|
+
mediaType: "audio";
|
|
78
|
+
/** Duration in seconds */
|
|
79
|
+
duration?: number;
|
|
80
|
+
/** Duration formatted as HH:MM:SS */
|
|
81
|
+
durationFormatted?: string;
|
|
82
|
+
/** Audio codec (if known) */
|
|
83
|
+
codec?: string;
|
|
84
|
+
/** Whether the format is widely supported in browsers */
|
|
85
|
+
hasBroadBrowserSupport: boolean;
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Extended metadata for document files.
|
|
89
|
+
*/
|
|
90
|
+
export interface DocumentMetadata extends BaseMetadata {
|
|
91
|
+
mediaType: "document";
|
|
92
|
+
/** Page count (if known, typically from PDF) */
|
|
93
|
+
pageCount?: number;
|
|
94
|
+
/** Document category */
|
|
95
|
+
documentCategory: "pdf" | "word" | "spreadsheet" | "presentation" | "text" | "other";
|
|
96
|
+
/** Whether the document can be previewed in browser */
|
|
97
|
+
canPreviewInBrowser: boolean;
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* Metadata for unrecognized file types.
|
|
101
|
+
*/
|
|
102
|
+
export interface OtherMetadata extends BaseMetadata {
|
|
103
|
+
mediaType: "other";
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Union type for all possible metadata shapes.
|
|
107
|
+
*/
|
|
108
|
+
export type ExtractedMetadata = ImageMetadata | VideoMetadata | AudioMetadata | DocumentMetadata | OtherMetadata;
|
|
109
|
+
/**
|
|
110
|
+
* Input parameters for metadata extraction.
|
|
111
|
+
*/
|
|
112
|
+
export interface MetadataExtractionInput {
|
|
113
|
+
/** Original filename */
|
|
114
|
+
filename: string;
|
|
115
|
+
/** MIME type of the file */
|
|
116
|
+
mimeType: string;
|
|
117
|
+
/** File size in bytes */
|
|
118
|
+
size: number;
|
|
119
|
+
/** Optional width in pixels (for images/videos, from client) */
|
|
120
|
+
width?: number;
|
|
121
|
+
/** Optional height in pixels (for images/videos, from client) */
|
|
122
|
+
height?: number;
|
|
123
|
+
/** Optional duration in seconds (for audio/video, from client) */
|
|
124
|
+
duration?: number;
|
|
125
|
+
/** Optional page count (for documents, from client) */
|
|
126
|
+
pageCount?: number;
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Extracts the file extension from a filename.
|
|
130
|
+
*
|
|
131
|
+
* @param filename - The filename to extract the extension from
|
|
132
|
+
* @returns The lowercase extension without the dot, or empty string if none
|
|
133
|
+
*/
|
|
134
|
+
export declare function extractExtension(filename: string): string;
|
|
135
|
+
/**
|
|
136
|
+
* Classifies a MIME type into a media category.
|
|
137
|
+
*
|
|
138
|
+
* @param mimeType - The MIME type to classify
|
|
139
|
+
* @returns The media type category
|
|
140
|
+
*/
|
|
141
|
+
export declare function classifyMimeType(mimeType: string): "image" | "video" | "audio" | "document" | "other";
|
|
142
|
+
/**
|
|
143
|
+
* Calculates aspect ratio from dimensions.
|
|
144
|
+
*
|
|
145
|
+
* @param width - Width in pixels
|
|
146
|
+
* @param height - Height in pixels
|
|
147
|
+
* @returns Aspect ratio rounded to 3 decimal places, or undefined if invalid
|
|
148
|
+
*/
|
|
149
|
+
export declare function calculateAspectRatio(width?: number, height?: number): number | undefined;
|
|
150
|
+
/**
|
|
151
|
+
* Formats duration in seconds to HH:MM:SS format.
|
|
152
|
+
*
|
|
153
|
+
* @param seconds - Duration in seconds
|
|
154
|
+
* @returns Formatted duration string, or undefined if invalid
|
|
155
|
+
*/
|
|
156
|
+
export declare function formatDuration(seconds?: number): string | undefined;
|
|
157
|
+
/**
|
|
158
|
+
* Determines the optimal image format for web delivery.
|
|
159
|
+
*
|
|
160
|
+
* @param mimeType - Original MIME type
|
|
161
|
+
* @param supportsTransparency - Whether transparency is needed
|
|
162
|
+
* @returns Suggested format for optimization
|
|
163
|
+
*/
|
|
164
|
+
export declare function suggestImageFormat(mimeType: string, supportsTransparency: boolean): "webp" | "avif" | "jpeg" | "png" | "svg" | undefined;
|
|
165
|
+
/**
|
|
166
|
+
* Categorizes document MIME types into subcategories.
|
|
167
|
+
*
|
|
168
|
+
* @param mimeType - The document MIME type
|
|
169
|
+
* @returns Document category
|
|
170
|
+
*/
|
|
171
|
+
export declare function categorizeDocument(mimeType: string): "pdf" | "word" | "spreadsheet" | "presentation" | "text" | "other";
|
|
172
|
+
/**
|
|
173
|
+
* Determines if a document can be previewed in the browser.
|
|
174
|
+
*
|
|
175
|
+
* @param mimeType - The document MIME type
|
|
176
|
+
* @returns Whether the document can be previewed
|
|
177
|
+
*/
|
|
178
|
+
export declare function canPreviewDocument(mimeType: string): boolean;
|
|
179
|
+
/**
|
|
180
|
+
* Extracts and normalizes metadata from uploaded file information.
|
|
181
|
+
*
|
|
182
|
+
* This is the main function to call for metadata extraction. It analyzes
|
|
183
|
+
* the MIME type, filename, and any provided dimensions/duration to build
|
|
184
|
+
* a comprehensive metadata object specific to the file type.
|
|
185
|
+
*
|
|
186
|
+
* @param input - The file information to extract metadata from
|
|
187
|
+
* @returns Structured metadata object with type-specific properties
|
|
188
|
+
*
|
|
189
|
+
* @example
|
|
190
|
+
* ```typescript
|
|
191
|
+
* // Image with dimensions from browser
|
|
192
|
+
* const imageMetadata = extractMetadata({
|
|
193
|
+
* filename: "photo.jpg",
|
|
194
|
+
* mimeType: "image/jpeg",
|
|
195
|
+
* size: 500000,
|
|
196
|
+
* width: 1920,
|
|
197
|
+
* height: 1080,
|
|
198
|
+
* });
|
|
199
|
+
* // Returns ImageMetadata with aspectRatio, suggestedFormat, etc.
|
|
200
|
+
*
|
|
201
|
+
* // Video with duration from browser
|
|
202
|
+
* const videoMetadata = extractMetadata({
|
|
203
|
+
* filename: "clip.mp4",
|
|
204
|
+
* mimeType: "video/mp4",
|
|
205
|
+
* size: 10000000,
|
|
206
|
+
* width: 1920,
|
|
207
|
+
* height: 1080,
|
|
208
|
+
* duration: 120,
|
|
209
|
+
* });
|
|
210
|
+
* // Returns VideoMetadata with durationFormatted, hasBroadBrowserSupport, etc.
|
|
211
|
+
*
|
|
212
|
+
* // Document
|
|
213
|
+
* const docMetadata = extractMetadata({
|
|
214
|
+
* filename: "report.pdf",
|
|
215
|
+
* mimeType: "application/pdf",
|
|
216
|
+
* size: 2000000,
|
|
217
|
+
* pageCount: 15,
|
|
218
|
+
* });
|
|
219
|
+
* // Returns DocumentMetadata with documentCategory, canPreviewInBrowser, etc.
|
|
220
|
+
* ```
|
|
221
|
+
*/
|
|
222
|
+
export declare function extractMetadata(input: MetadataExtractionInput): ExtractedMetadata;
|
|
223
|
+
/**
|
|
224
|
+
* Validates that dimensions are positive integers.
|
|
225
|
+
*
|
|
226
|
+
* @param width - Width to validate
|
|
227
|
+
* @param height - Height to validate
|
|
228
|
+
* @returns Whether both dimensions are valid
|
|
229
|
+
*/
|
|
230
|
+
export declare function validateDimensions(width?: number, height?: number): boolean;
|
|
231
|
+
/**
|
|
232
|
+
* Validates that duration is a non-negative number.
|
|
233
|
+
*
|
|
234
|
+
* @param duration - Duration to validate
|
|
235
|
+
* @returns Whether the duration is valid
|
|
236
|
+
*/
|
|
237
|
+
export declare function validateDuration(duration?: number): boolean;
|
|
238
|
+
/**
|
|
239
|
+
* Validates that file size is a positive integer.
|
|
240
|
+
*
|
|
241
|
+
* @param size - File size to validate
|
|
242
|
+
* @returns Whether the size is valid
|
|
243
|
+
*/
|
|
244
|
+
export declare function validateFileSize(size: number): boolean;
|
|
245
|
+
//# sourceMappingURL=metadataExtractor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metadataExtractor.d.ts","sourceRoot":"","sources":["../../../src/component/lib/metadataExtractor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAMH;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,wBAAwB;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,4BAA4B;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,yBAAyB;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,4BAA4B;IAC5B,SAAS,EAAE,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,UAAU,GAAG,OAAO,CAAC;IAC9D,8CAA8C;IAC9C,SAAS,EAAE,MAAM,CAAC;IAClB,yDAAyD;IACzD,eAAe,EAAE,OAAO,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,aAAc,SAAQ,YAAY;IACjD,SAAS,EAAE,OAAO,CAAC;IACnB,sBAAsB;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,uBAAuB;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oCAAoC;IACpC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,+CAA+C;IAC/C,oBAAoB,EAAE,OAAO,CAAC;IAC9B,4DAA4D;IAC5D,QAAQ,EAAE,OAAO,CAAC;IAClB,6CAA6C;IAC7C,iBAAiB,EAAE,OAAO,CAAC;IAC3B,0CAA0C;IAC1C,eAAe,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,GAAG,KAAK,CAAC;CAC5D;AAED;;GAEG;AACH,MAAM,WAAW,aAAc,SAAQ,YAAY;IACjD,SAAS,EAAE,OAAO,CAAC;IACnB,sBAAsB;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,uBAAuB;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,oCAAoC;IACpC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,0BAA0B;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,qCAAqC;IACrC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,6BAA6B;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,yDAAyD;IACzD,sBAAsB,EAAE,OAAO,CAAC;CACjC;AAED;;GAEG;AACH,MAAM,WAAW,aAAc,SAAQ,YAAY;IACjD,SAAS,EAAE,OAAO,CAAC;IACnB,0BAA0B;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,qCAAqC;IACrC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,6BAA6B;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,yDAAyD;IACzD,sBAAsB,EAAE,OAAO,CAAC;CACjC;AAED;;GAEG;AACH,MAAM,WAAW,gBAAiB,SAAQ,YAAY;IACpD,SAAS,EAAE,UAAU,CAAC;IACtB,gDAAgD;IAChD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,wBAAwB;IACxB,gBAAgB,EACZ,KAAK,GACL,MAAM,GACN,aAAa,GACb,cAAc,GACd,MAAM,GACN,OAAO,CAAC;IACZ,uDAAuD;IACvD,mBAAmB,EAAE,OAAO,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,WAAW,aAAc,SAAQ,YAAY;IACjD,SAAS,EAAE,OAAO,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,MAAM,iBAAiB,GACzB,aAAa,GACb,aAAa,GACb,aAAa,GACb,gBAAgB,GAChB,aAAa,CAAC;AAElB;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,wBAAwB;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,4BAA4B;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,yBAAyB;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,gEAAgE;IAChE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iEAAiE;IACjE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,kEAAkE;IAClE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,uDAAuD;IACvD,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AA4ID;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAMzD;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,MAAM,GACf,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,UAAU,GAAG,OAAO,CAyCpD;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,CAAC,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,MAAM,GACd,MAAM,GAAG,SAAS,CAKpB;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAanE;AAED;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,MAAM,EAChB,oBAAoB,EAAE,OAAO,GAC5B,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,GAAG,KAAK,GAAG,SAAS,CAmBtD;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,MAAM,GACf,KAAK,GAAG,MAAM,GAAG,aAAa,GAAG,cAAc,GAAG,MAAM,GAAG,OAAO,CAsCpE;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAuB5D;AAMD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,uBAAuB,GAAG,iBAAiB,CAqCjF;AAmKD;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAY3E;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAK3D;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEtD"}
|