@revealui/contracts 1.0.0
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 +22 -0
- package/README.md +160 -0
- package/dist/a2a/index.d.ts +383 -0
- package/dist/a2a/index.d.ts.map +1 -0
- package/dist/a2a/index.js +276 -0
- package/dist/a2a/index.js.map +1 -0
- package/dist/actions/action-validator.d.ts +48 -0
- package/dist/actions/action-validator.d.ts.map +1 -0
- package/dist/actions/action-validator.js +288 -0
- package/dist/actions/action-validator.js.map +1 -0
- package/dist/actions/index.d.ts +7 -0
- package/dist/actions/index.d.ts.map +1 -0
- package/dist/actions/index.js +7 -0
- package/dist/actions/index.js.map +1 -0
- package/dist/agents/index.d.ts +628 -0
- package/dist/agents/index.d.ts.map +1 -0
- package/dist/agents/index.js +511 -0
- package/dist/agents/index.js.map +1 -0
- package/dist/agents/types.d.ts +22 -0
- package/dist/agents/types.d.ts.map +1 -0
- package/dist/agents/types.js +2 -0
- package/dist/agents/types.js.map +1 -0
- package/dist/api/auth.d.ts +60 -0
- package/dist/api/auth.d.ts.map +1 -0
- package/dist/api/auth.js +84 -0
- package/dist/api/auth.js.map +1 -0
- package/dist/api/chat.d.ts +45 -0
- package/dist/api/chat.d.ts.map +1 -0
- package/dist/api/chat.js +55 -0
- package/dist/api/chat.js.map +1 -0
- package/dist/api/gdpr.d.ts +39 -0
- package/dist/api/gdpr.d.ts.map +1 -0
- package/dist/api/gdpr.js +53 -0
- package/dist/api/gdpr.js.map +1 -0
- package/dist/cms/collection.d.ts +108 -0
- package/dist/cms/collection.d.ts.map +1 -0
- package/dist/cms/collection.js +144 -0
- package/dist/cms/collection.js.map +1 -0
- package/dist/cms/compat.d.ts +128 -0
- package/dist/cms/compat.d.ts.map +1 -0
- package/dist/cms/compat.js +141 -0
- package/dist/cms/compat.js.map +1 -0
- package/dist/cms/config-contract.d.ts +278 -0
- package/dist/cms/config-contract.d.ts.map +1 -0
- package/dist/cms/config-contract.js +220 -0
- package/dist/cms/config-contract.js.map +1 -0
- package/dist/cms/config.d.ts +351 -0
- package/dist/cms/config.d.ts.map +1 -0
- package/dist/cms/config.js +50 -0
- package/dist/cms/config.js.map +1 -0
- package/dist/cms/errors.d.ts +122 -0
- package/dist/cms/errors.d.ts.map +1 -0
- package/dist/cms/errors.js +163 -0
- package/dist/cms/errors.js.map +1 -0
- package/dist/cms/extensibility.d.ts +211 -0
- package/dist/cms/extensibility.d.ts.map +1 -0
- package/dist/cms/extensibility.js +313 -0
- package/dist/cms/extensibility.js.map +1 -0
- package/dist/cms/field.d.ts +69 -0
- package/dist/cms/field.d.ts.map +1 -0
- package/dist/cms/field.js +94 -0
- package/dist/cms/field.js.map +1 -0
- package/dist/cms/functions.d.ts +466 -0
- package/dist/cms/functions.d.ts.map +1 -0
- package/dist/cms/functions.js +19 -0
- package/dist/cms/functions.js.map +1 -0
- package/dist/cms/global.d.ts +45 -0
- package/dist/cms/global.d.ts.map +1 -0
- package/dist/cms/global.js +62 -0
- package/dist/cms/global.js.map +1 -0
- package/dist/cms/index.d.ts +23 -0
- package/dist/cms/index.d.ts.map +1 -0
- package/dist/cms/index.js +42 -0
- package/dist/cms/index.js.map +1 -0
- package/dist/cms/structure.d.ts +1601 -0
- package/dist/cms/structure.d.ts.map +1 -0
- package/dist/cms/structure.js +757 -0
- package/dist/cms/structure.js.map +1 -0
- package/dist/content/index.d.ts +1542 -0
- package/dist/content/index.d.ts.map +1 -0
- package/dist/content/index.js +522 -0
- package/dist/content/index.js.map +1 -0
- package/dist/database/bridge.d.ts +177 -0
- package/dist/database/bridge.d.ts.map +1 -0
- package/dist/database/bridge.js +139 -0
- package/dist/database/bridge.js.map +1 -0
- package/dist/database/index.d.ts +8 -0
- package/dist/database/index.d.ts.map +1 -0
- package/dist/database/index.js +9 -0
- package/dist/database/index.js.map +1 -0
- package/dist/database/type-bridge.d.ts +178 -0
- package/dist/database/type-bridge.d.ts.map +1 -0
- package/dist/database/type-bridge.js +154 -0
- package/dist/database/type-bridge.js.map +1 -0
- package/dist/entities/agent-context.d.ts +280 -0
- package/dist/entities/agent-context.d.ts.map +1 -0
- package/dist/entities/agent-context.js +390 -0
- package/dist/entities/agent-context.js.map +1 -0
- package/dist/entities/agent-memory.d.ts +661 -0
- package/dist/entities/agent-memory.d.ts.map +1 -0
- package/dist/entities/agent-memory.js +544 -0
- package/dist/entities/agent-memory.js.map +1 -0
- package/dist/entities/board.d.ts +95 -0
- package/dist/entities/board.d.ts.map +1 -0
- package/dist/entities/board.js +99 -0
- package/dist/entities/board.js.map +1 -0
- package/dist/entities/code-provenance.d.ts +270 -0
- package/dist/entities/code-provenance.d.ts.map +1 -0
- package/dist/entities/code-provenance.js +339 -0
- package/dist/entities/code-provenance.js.map +1 -0
- package/dist/entities/index.d.ts +22 -0
- package/dist/entities/index.d.ts.map +1 -0
- package/dist/entities/index.js +22 -0
- package/dist/entities/index.js.map +1 -0
- package/dist/entities/media.d.ts +485 -0
- package/dist/entities/media.d.ts.map +1 -0
- package/dist/entities/media.js +606 -0
- package/dist/entities/media.js.map +1 -0
- package/dist/entities/page-revision.d.ts +390 -0
- package/dist/entities/page-revision.d.ts.map +1 -0
- package/dist/entities/page-revision.js +406 -0
- package/dist/entities/page-revision.js.map +1 -0
- package/dist/entities/page.d.ts +2349 -0
- package/dist/entities/page.d.ts.map +1 -0
- package/dist/entities/page.js +377 -0
- package/dist/entities/page.js.map +1 -0
- package/dist/entities/post.d.ts +619 -0
- package/dist/entities/post.d.ts.map +1 -0
- package/dist/entities/post.js +555 -0
- package/dist/entities/post.js.map +1 -0
- package/dist/entities/price.d.ts +772 -0
- package/dist/entities/price.d.ts.map +1 -0
- package/dist/entities/price.js +308 -0
- package/dist/entities/price.js.map +1 -0
- package/dist/entities/product.d.ts +753 -0
- package/dist/entities/product.d.ts.map +1 -0
- package/dist/entities/product.js +307 -0
- package/dist/entities/product.js.map +1 -0
- package/dist/entities/session.d.ts +222 -0
- package/dist/entities/session.d.ts.map +1 -0
- package/dist/entities/session.js +253 -0
- package/dist/entities/session.js.map +1 -0
- package/dist/entities/site.d.ts +387 -0
- package/dist/entities/site.d.ts.map +1 -0
- package/dist/entities/site.js +348 -0
- package/dist/entities/site.js.map +1 -0
- package/dist/entities/ticket-comment.d.ts +49 -0
- package/dist/entities/ticket-comment.d.ts.map +1 -0
- package/dist/entities/ticket-comment.js +58 -0
- package/dist/entities/ticket-comment.js.map +1 -0
- package/dist/entities/ticket-label.d.ts +64 -0
- package/dist/entities/ticket-label.d.ts.map +1 -0
- package/dist/entities/ticket-label.js +77 -0
- package/dist/entities/ticket-label.js.map +1 -0
- package/dist/entities/ticket.d.ts +204 -0
- package/dist/entities/ticket.d.ts.map +1 -0
- package/dist/entities/ticket.js +205 -0
- package/dist/entities/ticket.js.map +1 -0
- package/dist/entities/user.d.ts +336 -0
- package/dist/entities/user.d.ts.map +1 -0
- package/dist/entities/user.js +255 -0
- package/dist/entities/user.js.map +1 -0
- package/dist/foundation/contract.d.ts +221 -0
- package/dist/foundation/contract.d.ts.map +1 -0
- package/dist/foundation/contract.js +133 -0
- package/dist/foundation/contract.js.map +1 -0
- package/dist/foundation/index.d.ts +7 -0
- package/dist/foundation/index.d.ts.map +1 -0
- package/dist/foundation/index.js +7 -0
- package/dist/foundation/index.js.map +1 -0
- package/dist/generated/contracts.d.ts +1514 -0
- package/dist/generated/contracts.d.ts.map +1 -0
- package/dist/generated/contracts.js +959 -0
- package/dist/generated/contracts.js.map +1 -0
- package/dist/generated/database.d.ts +48 -0
- package/dist/generated/database.d.ts.map +1 -0
- package/dist/generated/database.js +17 -0
- package/dist/generated/database.js.map +1 -0
- package/dist/generated/zod-schemas.d.ts +14793 -0
- package/dist/generated/zod-schemas.d.ts.map +1 -0
- package/dist/generated/zod-schemas.js +547 -0
- package/dist/generated/zod-schemas.js.map +1 -0
- package/dist/index.d.ts +50 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +81 -0
- package/dist/index.js.map +1 -0
- package/dist/representation/index.d.ts +304 -0
- package/dist/representation/index.d.ts.map +1 -0
- package/dist/representation/index.js +280 -0
- package/dist/representation/index.js.map +1 -0
- package/package.json +117 -0
|
@@ -0,0 +1,485 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Media Entity Contract
|
|
3
|
+
*
|
|
4
|
+
* Manages file uploads with metadata, image dimensions, focal points, and thumbnails.
|
|
5
|
+
* Media files are stored in Vercel Blob or other storage providers with rich metadata
|
|
6
|
+
* for responsive images, accessibility, and content management.
|
|
7
|
+
*
|
|
8
|
+
* Business Rules:
|
|
9
|
+
* - MIME type validation for security
|
|
10
|
+
* - Image dimensions required for images
|
|
11
|
+
* - Focal point for smart cropping (0-1 coordinates)
|
|
12
|
+
* - Multiple sizes/thumbnails generated for responsive images
|
|
13
|
+
* - Alt text required for accessibility
|
|
14
|
+
* - Uploaded by tracks user ownership
|
|
15
|
+
* - Cascading null on user deletion
|
|
16
|
+
*/
|
|
17
|
+
import { z } from 'zod/v4';
|
|
18
|
+
export declare const MEDIA_SCHEMA_VERSION = 1;
|
|
19
|
+
export declare const IMAGE_MIME_TYPES: readonly ["image/jpeg", "image/jpg", "image/png", "image/gif", "image/webp", "image/svg+xml"];
|
|
20
|
+
export declare const VIDEO_MIME_TYPES: readonly ["video/mp4", "video/webm", "video/ogg"];
|
|
21
|
+
export declare const AUDIO_MIME_TYPES: readonly ["audio/mpeg", "audio/mp3", "audio/wav", "audio/ogg"];
|
|
22
|
+
export declare const DOCUMENT_MIME_TYPES: readonly ["application/pdf", "application/msword", "application/vnd.openxmlformats-officedocument.wordprocessingml.document", "application/vnd.ms-excel", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"];
|
|
23
|
+
export declare const ALL_MIME_TYPES: readonly ["image/jpeg", "image/jpg", "image/png", "image/gif", "image/webp", "image/svg+xml", "video/mp4", "video/webm", "video/ogg", "audio/mpeg", "audio/mp3", "audio/wav", "audio/ogg", "application/pdf", "application/msword", "application/vnd.openxmlformats-officedocument.wordprocessingml.document", "application/vnd.ms-excel", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"];
|
|
24
|
+
export type MimeType = (typeof ALL_MIME_TYPES)[number];
|
|
25
|
+
export declare const MEDIA_TYPES: readonly ["image", "video", "audio", "document", "other"];
|
|
26
|
+
export type MediaType = (typeof MEDIA_TYPES)[number];
|
|
27
|
+
export declare const FILE_SIZE_LIMITS: {
|
|
28
|
+
readonly IMAGE: number;
|
|
29
|
+
readonly VIDEO: number;
|
|
30
|
+
readonly AUDIO: number;
|
|
31
|
+
readonly DOCUMENT: number;
|
|
32
|
+
readonly DEFAULT: number;
|
|
33
|
+
};
|
|
34
|
+
export declare const IMAGE_LIMITS: {
|
|
35
|
+
readonly MIN_WIDTH: 1;
|
|
36
|
+
readonly MIN_HEIGHT: 1;
|
|
37
|
+
readonly MAX_WIDTH: 10000;
|
|
38
|
+
readonly MAX_HEIGHT: 10000;
|
|
39
|
+
};
|
|
40
|
+
export declare const FOCAL_POINT_LIMITS: {
|
|
41
|
+
readonly MIN: 0;
|
|
42
|
+
readonly MAX: 1;
|
|
43
|
+
};
|
|
44
|
+
/**
|
|
45
|
+
* Focal point schema (normalized coordinates 0-1)
|
|
46
|
+
*/
|
|
47
|
+
export declare const FocalPointSchema: z.ZodObject<{
|
|
48
|
+
x: z.ZodNumber;
|
|
49
|
+
y: z.ZodNumber;
|
|
50
|
+
}, z.core.$strip>;
|
|
51
|
+
export type FocalPoint = z.infer<typeof FocalPointSchema>;
|
|
52
|
+
/**
|
|
53
|
+
* Image size/thumbnail schema
|
|
54
|
+
*/
|
|
55
|
+
export declare const ImageSizeSchema: z.ZodObject<{
|
|
56
|
+
name: z.ZodString;
|
|
57
|
+
width: z.ZodNumber;
|
|
58
|
+
height: z.ZodNumber;
|
|
59
|
+
url: z.ZodString;
|
|
60
|
+
filesize: z.ZodOptional<z.ZodNumber>;
|
|
61
|
+
}, z.core.$strip>;
|
|
62
|
+
export type ImageSize = z.infer<typeof ImageSizeSchema>;
|
|
63
|
+
/**
|
|
64
|
+
* Media object schema
|
|
65
|
+
*/
|
|
66
|
+
export declare const MediaObjectSchema: z.ZodObject<{
|
|
67
|
+
id: z.ZodString;
|
|
68
|
+
schemaVersion: z.ZodDefault<z.ZodString>;
|
|
69
|
+
filename: z.ZodString;
|
|
70
|
+
mimeType: z.ZodString;
|
|
71
|
+
filesize: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
72
|
+
url: z.ZodString;
|
|
73
|
+
alt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
74
|
+
width: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
75
|
+
height: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
76
|
+
focalPoint: z.ZodOptional<z.ZodNullable<z.ZodObject<{
|
|
77
|
+
x: z.ZodNumber;
|
|
78
|
+
y: z.ZodNumber;
|
|
79
|
+
}, z.core.$strip>>>;
|
|
80
|
+
sizes: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodObject<{
|
|
81
|
+
name: z.ZodString;
|
|
82
|
+
width: z.ZodNumber;
|
|
83
|
+
height: z.ZodNumber;
|
|
84
|
+
url: z.ZodString;
|
|
85
|
+
filesize: z.ZodOptional<z.ZodNumber>;
|
|
86
|
+
}, z.core.$strip>>>>;
|
|
87
|
+
uploadedBy: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
88
|
+
createdAt: z.ZodDate;
|
|
89
|
+
updatedAt: z.ZodDate;
|
|
90
|
+
}, z.core.$strip>;
|
|
91
|
+
/**
|
|
92
|
+
* Media schema with validation rules
|
|
93
|
+
*/
|
|
94
|
+
export declare const MediaBaseSchema: z.ZodObject<{
|
|
95
|
+
id: z.ZodString;
|
|
96
|
+
schemaVersion: z.ZodDefault<z.ZodString>;
|
|
97
|
+
filename: z.ZodString;
|
|
98
|
+
mimeType: z.ZodString;
|
|
99
|
+
filesize: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
100
|
+
url: z.ZodString;
|
|
101
|
+
alt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
102
|
+
width: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
103
|
+
height: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
104
|
+
focalPoint: z.ZodOptional<z.ZodNullable<z.ZodObject<{
|
|
105
|
+
x: z.ZodNumber;
|
|
106
|
+
y: z.ZodNumber;
|
|
107
|
+
}, z.core.$strip>>>;
|
|
108
|
+
sizes: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodObject<{
|
|
109
|
+
name: z.ZodString;
|
|
110
|
+
width: z.ZodNumber;
|
|
111
|
+
height: z.ZodNumber;
|
|
112
|
+
url: z.ZodString;
|
|
113
|
+
filesize: z.ZodOptional<z.ZodNumber>;
|
|
114
|
+
}, z.core.$strip>>>>;
|
|
115
|
+
uploadedBy: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
116
|
+
createdAt: z.ZodDate;
|
|
117
|
+
updatedAt: z.ZodDate;
|
|
118
|
+
}, z.core.$strip>;
|
|
119
|
+
export declare const MediaSchema: z.ZodObject<{
|
|
120
|
+
id: z.ZodString;
|
|
121
|
+
schemaVersion: z.ZodDefault<z.ZodString>;
|
|
122
|
+
filename: z.ZodString;
|
|
123
|
+
mimeType: z.ZodString;
|
|
124
|
+
filesize: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
125
|
+
url: z.ZodString;
|
|
126
|
+
alt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
127
|
+
width: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
128
|
+
height: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
129
|
+
focalPoint: z.ZodOptional<z.ZodNullable<z.ZodObject<{
|
|
130
|
+
x: z.ZodNumber;
|
|
131
|
+
y: z.ZodNumber;
|
|
132
|
+
}, z.core.$strip>>>;
|
|
133
|
+
sizes: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodObject<{
|
|
134
|
+
name: z.ZodString;
|
|
135
|
+
width: z.ZodNumber;
|
|
136
|
+
height: z.ZodNumber;
|
|
137
|
+
url: z.ZodString;
|
|
138
|
+
filesize: z.ZodOptional<z.ZodNumber>;
|
|
139
|
+
}, z.core.$strip>>>>;
|
|
140
|
+
uploadedBy: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
141
|
+
createdAt: z.ZodDate;
|
|
142
|
+
updatedAt: z.ZodDate;
|
|
143
|
+
}, z.core.$strip>;
|
|
144
|
+
/**
|
|
145
|
+
* Schema for creating new media
|
|
146
|
+
*/
|
|
147
|
+
export declare const MediaInsertSchema: z.ZodObject<{
|
|
148
|
+
id: z.ZodString;
|
|
149
|
+
url: z.ZodString;
|
|
150
|
+
filename: z.ZodString;
|
|
151
|
+
alt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
152
|
+
width: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
153
|
+
height: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
154
|
+
schemaVersion: z.ZodDefault<z.ZodString>;
|
|
155
|
+
mimeType: z.ZodString;
|
|
156
|
+
focalPoint: z.ZodOptional<z.ZodNullable<z.ZodObject<{
|
|
157
|
+
x: z.ZodNumber;
|
|
158
|
+
y: z.ZodNumber;
|
|
159
|
+
}, z.core.$strip>>>;
|
|
160
|
+
sizes: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodObject<{
|
|
161
|
+
name: z.ZodString;
|
|
162
|
+
width: z.ZodNumber;
|
|
163
|
+
height: z.ZodNumber;
|
|
164
|
+
url: z.ZodString;
|
|
165
|
+
filesize: z.ZodOptional<z.ZodNumber>;
|
|
166
|
+
}, z.core.$strip>>>>;
|
|
167
|
+
filesize: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
168
|
+
uploadedBy: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
169
|
+
createdAt: z.ZodOptional<z.ZodDate>;
|
|
170
|
+
updatedAt: z.ZodOptional<z.ZodDate>;
|
|
171
|
+
}, z.core.$strip>;
|
|
172
|
+
export type Media = z.infer<typeof MediaSchema>;
|
|
173
|
+
export type MediaInsert = z.infer<typeof MediaInsertSchema>;
|
|
174
|
+
/**
|
|
175
|
+
* Check if MIME type is an image
|
|
176
|
+
*/
|
|
177
|
+
export declare function isImageMimeType(mimeType: string): boolean;
|
|
178
|
+
/**
|
|
179
|
+
* Check if MIME type is a video
|
|
180
|
+
*/
|
|
181
|
+
export declare function isVideoMimeType(mimeType: string): boolean;
|
|
182
|
+
/**
|
|
183
|
+
* Check if MIME type is audio
|
|
184
|
+
*/
|
|
185
|
+
export declare function isAudioMimeType(mimeType: string): boolean;
|
|
186
|
+
/**
|
|
187
|
+
* Check if MIME type is a document
|
|
188
|
+
*/
|
|
189
|
+
export declare function isDocumentMimeType(mimeType: string): boolean;
|
|
190
|
+
/**
|
|
191
|
+
* Get media type from MIME type
|
|
192
|
+
*/
|
|
193
|
+
export declare function getMediaType(mimeType: string): MediaType;
|
|
194
|
+
/**
|
|
195
|
+
* Check if MIME type is allowed
|
|
196
|
+
*/
|
|
197
|
+
export declare function isAllowedMimeType(mimeType: string): boolean;
|
|
198
|
+
/**
|
|
199
|
+
* Get file extension from filename
|
|
200
|
+
*/
|
|
201
|
+
export declare function getFileExtension(filename: string): string;
|
|
202
|
+
/**
|
|
203
|
+
* Get MIME type from file extension
|
|
204
|
+
*/
|
|
205
|
+
export declare function getMimeTypeFromExtension(extension: string): string | null;
|
|
206
|
+
/**
|
|
207
|
+
* Check if media is an image
|
|
208
|
+
*/
|
|
209
|
+
export declare function isImage(media: Media): boolean;
|
|
210
|
+
/**
|
|
211
|
+
* Check if media is a video
|
|
212
|
+
*/
|
|
213
|
+
export declare function isVideo(media: Media): boolean;
|
|
214
|
+
/**
|
|
215
|
+
* Check if media is audio
|
|
216
|
+
*/
|
|
217
|
+
export declare function isAudio(media: Media): boolean;
|
|
218
|
+
/**
|
|
219
|
+
* Check if media is a document
|
|
220
|
+
*/
|
|
221
|
+
export declare function isDocument(media: Media): boolean;
|
|
222
|
+
/**
|
|
223
|
+
* Check if media has dimensions
|
|
224
|
+
*/
|
|
225
|
+
export declare function hasDimensions(media: Media): boolean;
|
|
226
|
+
/**
|
|
227
|
+
* Get aspect ratio
|
|
228
|
+
*/
|
|
229
|
+
export declare function getAspectRatio(media: Media): number | null;
|
|
230
|
+
/**
|
|
231
|
+
* Check if image is landscape
|
|
232
|
+
*/
|
|
233
|
+
export declare function isLandscape(media: Media): boolean;
|
|
234
|
+
/**
|
|
235
|
+
* Check if image is portrait
|
|
236
|
+
*/
|
|
237
|
+
export declare function isPortrait(media: Media): boolean;
|
|
238
|
+
/**
|
|
239
|
+
* Check if image is square
|
|
240
|
+
*/
|
|
241
|
+
export declare function isSquare(media: Media): boolean;
|
|
242
|
+
/**
|
|
243
|
+
* Calculate scaled dimensions
|
|
244
|
+
*/
|
|
245
|
+
export declare function calculateScaledDimensions(media: Media, maxWidth: number, maxHeight: number): {
|
|
246
|
+
width: number;
|
|
247
|
+
height: number;
|
|
248
|
+
} | null;
|
|
249
|
+
/**
|
|
250
|
+
* Check if media has focal point
|
|
251
|
+
*/
|
|
252
|
+
export declare function hasFocalPoint(media: Media): boolean;
|
|
253
|
+
/**
|
|
254
|
+
* Get focal point or default center
|
|
255
|
+
*/
|
|
256
|
+
export declare function getFocalPoint(media: Media): FocalPoint;
|
|
257
|
+
/**
|
|
258
|
+
* Convert normalized focal point to pixel coordinates
|
|
259
|
+
*/
|
|
260
|
+
export declare function focalPointToPixels(media: Media): {
|
|
261
|
+
x: number;
|
|
262
|
+
y: number;
|
|
263
|
+
} | null;
|
|
264
|
+
/**
|
|
265
|
+
* Create focal point from pixel coordinates
|
|
266
|
+
*/
|
|
267
|
+
export declare function pixelsToFocalPoint(width: number, height: number, x: number, y: number): FocalPoint;
|
|
268
|
+
/**
|
|
269
|
+
* Check if media has generated sizes
|
|
270
|
+
*/
|
|
271
|
+
export declare function hasSizes(media: Media): boolean;
|
|
272
|
+
/**
|
|
273
|
+
* Get size by name
|
|
274
|
+
*/
|
|
275
|
+
export declare function getSizeByName(media: Media, name: string): ImageSize | undefined;
|
|
276
|
+
/**
|
|
277
|
+
* Get all size names
|
|
278
|
+
*/
|
|
279
|
+
export declare function getSizeNames(media: Media): string[];
|
|
280
|
+
/**
|
|
281
|
+
* Find best size for dimensions
|
|
282
|
+
*/
|
|
283
|
+
export declare function findBestSize(media: Media, targetWidth: number, targetHeight: number): ImageSize | null;
|
|
284
|
+
/**
|
|
285
|
+
* Format file size in human-readable format
|
|
286
|
+
*/
|
|
287
|
+
export declare function formatFileSize(bytes: number): string;
|
|
288
|
+
/**
|
|
289
|
+
* Check if file size is within limit
|
|
290
|
+
*/
|
|
291
|
+
export declare function isWithinSizeLimit(media: Media): boolean;
|
|
292
|
+
/**
|
|
293
|
+
* Get size limit for media type
|
|
294
|
+
*/
|
|
295
|
+
export declare function getSizeLimit(mimeType: string): number;
|
|
296
|
+
/**
|
|
297
|
+
* Check if media has alt text
|
|
298
|
+
*/
|
|
299
|
+
export declare function hasAltText(media: Media): boolean;
|
|
300
|
+
/**
|
|
301
|
+
* Check if alt text is meaningful (not just filename)
|
|
302
|
+
*/
|
|
303
|
+
export declare function hasMeaningfulAltText(media: Media): boolean;
|
|
304
|
+
/**
|
|
305
|
+
* Check if media has uploader
|
|
306
|
+
*/
|
|
307
|
+
export declare function hasUploader(media: Media): boolean;
|
|
308
|
+
/**
|
|
309
|
+
* Check if media was uploaded by specific user
|
|
310
|
+
*/
|
|
311
|
+
export declare function isUploadedBy(media: Media, userId: string): boolean;
|
|
312
|
+
/**
|
|
313
|
+
* Create media insert data
|
|
314
|
+
*/
|
|
315
|
+
export declare function createMediaInsert(filename: string, mimeType: string, url: string, options?: {
|
|
316
|
+
id?: string;
|
|
317
|
+
filesize?: number | null;
|
|
318
|
+
alt?: string | null;
|
|
319
|
+
width?: number | null;
|
|
320
|
+
height?: number | null;
|
|
321
|
+
focalPoint?: FocalPoint | null;
|
|
322
|
+
sizes?: ImageSize[] | null;
|
|
323
|
+
uploadedBy?: string | null;
|
|
324
|
+
}): MediaInsert;
|
|
325
|
+
/**
|
|
326
|
+
* Update media data
|
|
327
|
+
*/
|
|
328
|
+
export declare function updateMedia(updates: {
|
|
329
|
+
alt?: string | null;
|
|
330
|
+
focalPoint?: FocalPoint | null;
|
|
331
|
+
sizes?: ImageSize[] | null;
|
|
332
|
+
}): Partial<Media>;
|
|
333
|
+
/**
|
|
334
|
+
* Media with computed fields for UI display
|
|
335
|
+
*/
|
|
336
|
+
export interface MediaWithComputed extends Media {
|
|
337
|
+
_computed: {
|
|
338
|
+
mediaType: MediaType;
|
|
339
|
+
isImage: boolean;
|
|
340
|
+
isVideo: boolean;
|
|
341
|
+
isAudio: boolean;
|
|
342
|
+
isDocument: boolean;
|
|
343
|
+
hasDimensions: boolean;
|
|
344
|
+
aspectRatio: number | null;
|
|
345
|
+
isLandscape: boolean;
|
|
346
|
+
isPortrait: boolean;
|
|
347
|
+
isSquare: boolean;
|
|
348
|
+
hasFocalPoint: boolean;
|
|
349
|
+
hasSizes: boolean;
|
|
350
|
+
hasAltText: boolean;
|
|
351
|
+
hasMeaningfulAltText: boolean;
|
|
352
|
+
hasUploader: boolean;
|
|
353
|
+
isWithinSizeLimit: boolean;
|
|
354
|
+
formattedFileSize: string;
|
|
355
|
+
extension: string;
|
|
356
|
+
};
|
|
357
|
+
}
|
|
358
|
+
/**
|
|
359
|
+
* Convert media to format with computed fields
|
|
360
|
+
*/
|
|
361
|
+
export declare function mediaToHuman(media: Media): MediaWithComputed;
|
|
362
|
+
/**
|
|
363
|
+
* Media with metadata for agent/API consumption
|
|
364
|
+
*/
|
|
365
|
+
export interface MediaAgent extends Media {
|
|
366
|
+
metadata: {
|
|
367
|
+
type: MediaType;
|
|
368
|
+
extension: string;
|
|
369
|
+
hasAlt: boolean;
|
|
370
|
+
dimensionsPresent: boolean;
|
|
371
|
+
aspectRatio: number | null;
|
|
372
|
+
orientation: 'landscape' | 'portrait' | 'square' | null;
|
|
373
|
+
sizesAvailable: number;
|
|
374
|
+
withinSizeLimit: boolean;
|
|
375
|
+
};
|
|
376
|
+
}
|
|
377
|
+
/**
|
|
378
|
+
* Convert media to agent-compatible format
|
|
379
|
+
*/
|
|
380
|
+
export declare function mediaToAgent(media: Media): MediaAgent;
|
|
381
|
+
/**
|
|
382
|
+
* Zod schema for media with computed fields
|
|
383
|
+
*/
|
|
384
|
+
export declare const MediaWithComputedSchema: z.ZodIntersection<z.ZodObject<{
|
|
385
|
+
id: z.ZodString;
|
|
386
|
+
schemaVersion: z.ZodDefault<z.ZodString>;
|
|
387
|
+
filename: z.ZodString;
|
|
388
|
+
mimeType: z.ZodString;
|
|
389
|
+
filesize: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
390
|
+
url: z.ZodString;
|
|
391
|
+
alt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
392
|
+
width: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
393
|
+
height: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
394
|
+
focalPoint: z.ZodOptional<z.ZodNullable<z.ZodObject<{
|
|
395
|
+
x: z.ZodNumber;
|
|
396
|
+
y: z.ZodNumber;
|
|
397
|
+
}, z.core.$strip>>>;
|
|
398
|
+
sizes: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodObject<{
|
|
399
|
+
name: z.ZodString;
|
|
400
|
+
width: z.ZodNumber;
|
|
401
|
+
height: z.ZodNumber;
|
|
402
|
+
url: z.ZodString;
|
|
403
|
+
filesize: z.ZodOptional<z.ZodNumber>;
|
|
404
|
+
}, z.core.$strip>>>>;
|
|
405
|
+
uploadedBy: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
406
|
+
createdAt: z.ZodDate;
|
|
407
|
+
updatedAt: z.ZodDate;
|
|
408
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
409
|
+
_computed: z.ZodObject<{
|
|
410
|
+
mediaType: z.ZodEnum<{
|
|
411
|
+
image: "image";
|
|
412
|
+
video: "video";
|
|
413
|
+
audio: "audio";
|
|
414
|
+
document: "document";
|
|
415
|
+
other: "other";
|
|
416
|
+
}>;
|
|
417
|
+
isImage: z.ZodBoolean;
|
|
418
|
+
isVideo: z.ZodBoolean;
|
|
419
|
+
isAudio: z.ZodBoolean;
|
|
420
|
+
isDocument: z.ZodBoolean;
|
|
421
|
+
hasDimensions: z.ZodBoolean;
|
|
422
|
+
aspectRatio: z.ZodNullable<z.ZodNumber>;
|
|
423
|
+
isLandscape: z.ZodBoolean;
|
|
424
|
+
isPortrait: z.ZodBoolean;
|
|
425
|
+
isSquare: z.ZodBoolean;
|
|
426
|
+
hasFocalPoint: z.ZodBoolean;
|
|
427
|
+
hasSizes: z.ZodBoolean;
|
|
428
|
+
hasAltText: z.ZodBoolean;
|
|
429
|
+
hasMeaningfulAltText: z.ZodBoolean;
|
|
430
|
+
hasUploader: z.ZodBoolean;
|
|
431
|
+
isWithinSizeLimit: z.ZodBoolean;
|
|
432
|
+
formattedFileSize: z.ZodString;
|
|
433
|
+
extension: z.ZodString;
|
|
434
|
+
}, z.core.$strip>;
|
|
435
|
+
}, z.core.$strip>>;
|
|
436
|
+
/**
|
|
437
|
+
* Zod schema for media with agent metadata
|
|
438
|
+
*/
|
|
439
|
+
export declare const MediaAgentSchema: z.ZodIntersection<z.ZodObject<{
|
|
440
|
+
id: z.ZodString;
|
|
441
|
+
schemaVersion: z.ZodDefault<z.ZodString>;
|
|
442
|
+
filename: z.ZodString;
|
|
443
|
+
mimeType: z.ZodString;
|
|
444
|
+
filesize: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
445
|
+
url: z.ZodString;
|
|
446
|
+
alt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
447
|
+
width: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
448
|
+
height: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
449
|
+
focalPoint: z.ZodOptional<z.ZodNullable<z.ZodObject<{
|
|
450
|
+
x: z.ZodNumber;
|
|
451
|
+
y: z.ZodNumber;
|
|
452
|
+
}, z.core.$strip>>>;
|
|
453
|
+
sizes: z.ZodOptional<z.ZodNullable<z.ZodArray<z.ZodObject<{
|
|
454
|
+
name: z.ZodString;
|
|
455
|
+
width: z.ZodNumber;
|
|
456
|
+
height: z.ZodNumber;
|
|
457
|
+
url: z.ZodString;
|
|
458
|
+
filesize: z.ZodOptional<z.ZodNumber>;
|
|
459
|
+
}, z.core.$strip>>>>;
|
|
460
|
+
uploadedBy: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
461
|
+
createdAt: z.ZodDate;
|
|
462
|
+
updatedAt: z.ZodDate;
|
|
463
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
464
|
+
metadata: z.ZodObject<{
|
|
465
|
+
type: z.ZodEnum<{
|
|
466
|
+
image: "image";
|
|
467
|
+
video: "video";
|
|
468
|
+
audio: "audio";
|
|
469
|
+
document: "document";
|
|
470
|
+
other: "other";
|
|
471
|
+
}>;
|
|
472
|
+
extension: z.ZodString;
|
|
473
|
+
hasAlt: z.ZodBoolean;
|
|
474
|
+
dimensionsPresent: z.ZodBoolean;
|
|
475
|
+
aspectRatio: z.ZodNullable<z.ZodNumber>;
|
|
476
|
+
orientation: z.ZodNullable<z.ZodEnum<{
|
|
477
|
+
landscape: "landscape";
|
|
478
|
+
portrait: "portrait";
|
|
479
|
+
square: "square";
|
|
480
|
+
}>>;
|
|
481
|
+
sizesAvailable: z.ZodNumber;
|
|
482
|
+
withinSizeLimit: z.ZodBoolean;
|
|
483
|
+
}, z.core.$strip>;
|
|
484
|
+
}, z.core.$strip>>;
|
|
485
|
+
//# sourceMappingURL=media.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"media.d.ts","sourceRoot":"","sources":["../../src/entities/media.ts"],"names":[],"mappings":"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"}
|