@remotion/studio 4.0.472 → 4.0.473
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/api/rename-static-file.d.ts +6 -0
- package/dist/api/rename-static-file.js +18 -0
- package/dist/components/AssetSelector.js +45 -4
- package/dist/components/AssetSelectorItem.js +153 -27
- package/dist/components/Canvas.js +60 -11
- package/dist/components/ConfirmationDialog-types.d.ts +8 -0
- package/dist/components/ConfirmationDialog-types.js +2 -0
- package/dist/components/ConfirmationDialog.d.ts +7 -0
- package/dist/components/ConfirmationDialog.js +103 -0
- package/dist/components/ContextMenu.d.ts +9 -1
- package/dist/components/ContextMenu.js +49 -5
- package/dist/components/CurrentAsset.d.ts +1 -0
- package/dist/components/CurrentAsset.js +13 -2
- package/dist/components/EditorContent.js +15 -2
- package/dist/components/EditorContexts.js +2 -1
- package/dist/components/EditorRuler/Ruler.js +2 -0
- package/dist/components/ExplorerPanel.d.ts +0 -4
- package/dist/components/ExplorerPanel.js +8 -4
- package/dist/components/ExplorerPanelRef.d.ts +4 -0
- package/dist/components/ExplorerPanelRef.js +5 -0
- package/dist/components/FilePreview.d.ts +1 -1
- package/dist/components/InitialCompositionLoader.d.ts +0 -1
- package/dist/components/InitialCompositionLoader.js +5 -27
- package/dist/components/Menu/MenuItem.js +7 -1
- package/dist/components/Menu/SubMenu.js +5 -1
- package/dist/components/Menu/portals.js +17 -8
- package/dist/components/MenuToolbar.js +5 -1
- package/dist/components/ModalContainer.js +6 -1
- package/dist/components/Modals.js +6 -2
- package/dist/components/NewComposition/ComboBox.js +8 -2
- package/dist/components/NewComposition/DeleteStaticFile.d.ts +4 -0
- package/dist/components/NewComposition/DeleteStaticFile.js +44 -0
- package/dist/components/NewComposition/RenameStaticFile.d.ts +4 -0
- package/dist/components/NewComposition/RenameStaticFile.js +118 -0
- package/dist/components/OptionsPanel.js +5 -1
- package/dist/components/OutlineToggle.d.ts +2 -0
- package/dist/components/OutlineToggle.js +20 -0
- package/dist/components/Preview.d.ts +0 -2
- package/dist/components/Preview.js +23 -33
- package/dist/components/PreviewToolbar.js +19 -6
- package/dist/components/RenderButton.js +8 -2
- package/dist/components/RenderPreview.js +2 -2
- package/dist/components/SelectedOutlineOverlay.d.ts +24 -0
- package/dist/components/SelectedOutlineOverlay.js +190 -22
- package/dist/components/ShowOutlinesProvider.d.ts +4 -0
- package/dist/components/ShowOutlinesProvider.js +24 -0
- package/dist/components/SizeSelector.js +3 -3
- package/dist/components/Splitter/SplitterHandle.js +2 -0
- package/dist/components/StaticFilePreview.js +2 -2
- package/dist/components/Timeline/KeyframeSettingsModal.d.ts +15 -0
- package/dist/components/Timeline/KeyframeSettingsModal.js +150 -0
- package/dist/components/Timeline/Timeline.js +3 -13
- package/dist/components/Timeline/TimelineClipboardKeybindings.d.ts +25 -2
- package/dist/components/Timeline/TimelineClipboardKeybindings.js +234 -20
- package/dist/components/Timeline/TimelineDeleteKeybindings.js +12 -2
- package/dist/components/Timeline/TimelineEffectItem.js +1 -0
- package/dist/components/Timeline/TimelineEffectPropItem.js +52 -2
- package/dist/components/Timeline/TimelineKeyframeControls.js +5 -15
- package/dist/components/Timeline/TimelineKeyframeDiamond.js +24 -21
- package/dist/components/Timeline/TimelineKeyframeDiamondIcon.d.ts +6 -0
- package/dist/components/Timeline/TimelineKeyframeDiamondIcon.js +14 -0
- package/dist/components/Timeline/TimelineKeyframeDragState.d.ts +17 -0
- package/dist/components/Timeline/TimelineKeyframeDragState.js +39 -0
- package/dist/components/Timeline/TimelineList.js +2 -2
- package/dist/components/Timeline/TimelineMediaInfo.d.ts +0 -13
- package/dist/components/Timeline/TimelineMediaInfo.js +8 -73
- package/dist/components/Timeline/TimelineScaleField.js +1 -1
- package/dist/components/Timeline/TimelineSequenceItem.d.ts +1 -0
- package/dist/components/Timeline/TimelineSequenceItem.js +276 -22
- package/dist/components/Timeline/TimelineSequencePropItem.js +81 -16
- package/dist/components/Timeline/TimelineSequenceRightEdgeDragHandle.js +25 -28
- package/dist/components/Timeline/apply-effect-response-to-code-values.d.ts +5 -0
- package/dist/components/Timeline/apply-effect-response-to-code-values.js +19 -0
- package/dist/components/Timeline/call-add-keyframe.js +2 -0
- package/dist/components/Timeline/call-move-keyframe.d.ts +19 -0
- package/dist/components/Timeline/call-move-keyframe.js +71 -0
- package/dist/components/Timeline/call-update-keyframe-settings.d.ts +22 -0
- package/dist/components/Timeline/call-update-keyframe-settings.js +52 -0
- package/dist/components/Timeline/delete-selected-timeline-item.d.ts +7 -4
- package/dist/components/Timeline/delete-selected-timeline-item.js +33 -21
- package/dist/components/Timeline/duplicate-selected-timeline-item.d.ts +4 -2
- package/dist/components/Timeline/duplicate-selected-timeline-item.js +39 -34
- package/dist/components/Timeline/get-bounded-keyframe-drag-delta.d.ts +8 -0
- package/dist/components/Timeline/get-bounded-keyframe-drag-delta.js +12 -0
- package/dist/components/Timeline/get-keyframe-navigation.d.ts +2 -2
- package/dist/components/Timeline/get-keyframe-navigation.js +14 -6
- package/dist/components/Timeline/reset-selected-timeline-props.js +3 -2
- package/dist/components/Timeline/save-effect-prop.d.ts +14 -3
- package/dist/components/Timeline/save-effect-prop.js +36 -18
- package/dist/components/Timeline/save-prop-queue.d.ts +2 -1
- package/dist/components/Timeline/save-prop-queue.js +5 -2
- package/dist/components/Timeline/save-sequence-prop.d.ts +2 -7
- package/dist/components/Timeline/save-sequence-prop.js +33 -30
- package/dist/components/Timeline/should-clear-selection-on-pointer-down.d.ts +3 -0
- package/dist/components/Timeline/should-clear-selection-on-pointer-down.js +7 -0
- package/dist/components/Timeline/timeline-asset-link.d.ts +13 -0
- package/dist/components/Timeline/timeline-asset-link.js +37 -0
- package/dist/components/Timeline/timeline-translate-utils.js +4 -1
- package/dist/components/Timeline/use-timeline-keyframe-drag.d.ts +10 -0
- package/dist/components/Timeline/use-timeline-keyframe-drag.js +378 -0
- package/dist/components/import-assets.d.ts +16 -0
- package/dist/components/import-assets.js +155 -18
- package/dist/components/load-canvas-content-from-url.d.ts +1 -0
- package/dist/components/load-canvas-content-from-url.js +9 -3
- package/dist/components/use-select-asset.d.ts +1 -0
- package/dist/components/use-select-asset.js +30 -0
- package/dist/error-overlay/error-origin.d.ts +3 -0
- package/dist/error-overlay/error-origin.js +42 -0
- package/dist/error-overlay/react-overlay/listen-to-runtime-errors.js +6 -2
- package/dist/error-overlay/remotion-overlay/ErrorLoader.js +38 -0
- package/dist/error-overlay/remotion-overlay/ShortcutHint.js +1 -1
- package/dist/error-overlay/remotion-overlay/log-studio-error.d.ts +3 -0
- package/dist/error-overlay/remotion-overlay/log-studio-error.js +27 -0
- package/dist/esm/{chunk-48grt472.js → chunk-q0jkt0zq.js} +21961 -19299
- package/dist/esm/internals.mjs +21961 -19299
- package/dist/esm/previewEntry.mjs +20600 -17914
- package/dist/esm/renderEntry.mjs +1 -1
- package/dist/helpers/get-asset-metadata.js +2 -2
- package/dist/helpers/get-preview-file-type.d.ts +2 -0
- package/dist/helpers/get-preview-file-type.js +33 -0
- package/dist/helpers/install-required-package.d.ts +1 -0
- package/dist/helpers/install-required-package.js +39 -0
- package/dist/helpers/remote-asset-drag.d.ts +4 -0
- package/dist/helpers/remote-asset-drag.js +73 -0
- package/dist/helpers/use-asset-drag-events.d.ts +5 -2
- package/dist/helpers/use-asset-drag-events.js +13 -2
- package/dist/hot-middleware-client/client.js +6 -0
- package/dist/state/editor-outlines.d.ts +8 -0
- package/dist/state/editor-outlines.js +18 -0
- package/dist/state/modals.d.ts +19 -2
- package/package.json +10 -10
- package/dist/helpers/detect-file-type.d.ts +0 -69
- package/dist/helpers/detect-file-type.js +0 -278
|
@@ -1,278 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.detectFileType = exports.isM3u = exports.isFlac = exports.isAac = exports.isMp3 = exports.isTransportStream = exports.isIsoBaseMedia = exports.isWebm = exports.isRiffWave = exports.isRiffAvi = exports.matchesPattern = void 0;
|
|
4
|
-
const webmPattern = new Uint8Array([0x1a, 0x45, 0xdf, 0xa3]);
|
|
5
|
-
const matchesPattern = (pattern) => {
|
|
6
|
-
return (data) => {
|
|
7
|
-
return pattern.every((value, index) => data[index] === value);
|
|
8
|
-
};
|
|
9
|
-
};
|
|
10
|
-
exports.matchesPattern = matchesPattern;
|
|
11
|
-
const isRiffAvi = (data) => {
|
|
12
|
-
const riffPattern = new Uint8Array([0x52, 0x49, 0x46, 0x46]);
|
|
13
|
-
if (!(0, exports.matchesPattern)(riffPattern)(data.subarray(0, 4))) {
|
|
14
|
-
return false;
|
|
15
|
-
}
|
|
16
|
-
const fileType = data.subarray(8, 12);
|
|
17
|
-
const aviPattern = new Uint8Array([0x41, 0x56, 0x49, 0x20]);
|
|
18
|
-
return (0, exports.matchesPattern)(aviPattern)(fileType);
|
|
19
|
-
};
|
|
20
|
-
exports.isRiffAvi = isRiffAvi;
|
|
21
|
-
const isRiffWave = (data) => {
|
|
22
|
-
const riffPattern = new Uint8Array([0x52, 0x49, 0x46, 0x46]);
|
|
23
|
-
if (!(0, exports.matchesPattern)(riffPattern)(data.subarray(0, 4))) {
|
|
24
|
-
return false;
|
|
25
|
-
}
|
|
26
|
-
const fileType = data.subarray(8, 12);
|
|
27
|
-
const wavePattern = new Uint8Array([0x57, 0x41, 0x56, 0x45]);
|
|
28
|
-
return (0, exports.matchesPattern)(wavePattern)(fileType);
|
|
29
|
-
};
|
|
30
|
-
exports.isRiffWave = isRiffWave;
|
|
31
|
-
const isWebm = (data) => {
|
|
32
|
-
return (0, exports.matchesPattern)(webmPattern)(data.subarray(0, 4));
|
|
33
|
-
};
|
|
34
|
-
exports.isWebm = isWebm;
|
|
35
|
-
const isIsoBaseMedia = (data) => {
|
|
36
|
-
const isoBaseMediaMp4Pattern = new TextEncoder().encode('ftyp');
|
|
37
|
-
return (0, exports.matchesPattern)(isoBaseMediaMp4Pattern)(data.subarray(4, 8));
|
|
38
|
-
};
|
|
39
|
-
exports.isIsoBaseMedia = isIsoBaseMedia;
|
|
40
|
-
const isTransportStream = (data) => {
|
|
41
|
-
return data[0] === 0x47 && data[188] === 0x47;
|
|
42
|
-
};
|
|
43
|
-
exports.isTransportStream = isTransportStream;
|
|
44
|
-
const isMp3 = (data) => {
|
|
45
|
-
const mpegPattern = new Uint8Array([0xff, 0xf3]);
|
|
46
|
-
const mpegPattern2 = new Uint8Array([0xff, 0xfb]);
|
|
47
|
-
const id3v4Pattern = new Uint8Array([0x49, 0x44, 0x33, 4]);
|
|
48
|
-
const id3v3Pattern = new Uint8Array([0x49, 0x44, 0x33, 3]);
|
|
49
|
-
const id3v2Pattern = new Uint8Array([0x49, 0x44, 0x33, 2]);
|
|
50
|
-
const subarray = data.subarray(0, 4);
|
|
51
|
-
return ((0, exports.matchesPattern)(mpegPattern)(subarray) ||
|
|
52
|
-
(0, exports.matchesPattern)(mpegPattern2)(subarray) ||
|
|
53
|
-
(0, exports.matchesPattern)(id3v4Pattern)(subarray) ||
|
|
54
|
-
(0, exports.matchesPattern)(id3v3Pattern)(subarray) ||
|
|
55
|
-
(0, exports.matchesPattern)(id3v2Pattern)(subarray));
|
|
56
|
-
};
|
|
57
|
-
exports.isMp3 = isMp3;
|
|
58
|
-
const isAac = (data) => {
|
|
59
|
-
const aacPattern = new Uint8Array([0xff, 0xf1]);
|
|
60
|
-
return (0, exports.matchesPattern)(aacPattern)(data.subarray(0, 2));
|
|
61
|
-
};
|
|
62
|
-
exports.isAac = isAac;
|
|
63
|
-
const isFlac = (data) => {
|
|
64
|
-
const flacPattern = new Uint8Array([0x66, 0x4c, 0x61, 0x43]);
|
|
65
|
-
return (0, exports.matchesPattern)(flacPattern)(data.subarray(0, 4));
|
|
66
|
-
};
|
|
67
|
-
exports.isFlac = isFlac;
|
|
68
|
-
const isM3u = (data) => {
|
|
69
|
-
return new TextDecoder('utf-8').decode(data.slice(0, 7)) === '#EXTM3U';
|
|
70
|
-
};
|
|
71
|
-
exports.isM3u = isM3u;
|
|
72
|
-
const getPngDimensions = (pngData) => {
|
|
73
|
-
if (pngData.length < 24) {
|
|
74
|
-
return null;
|
|
75
|
-
}
|
|
76
|
-
const view = new DataView(pngData.buffer, pngData.byteOffset);
|
|
77
|
-
const pngSignature = [137, 80, 78, 71, 13, 10, 26, 10];
|
|
78
|
-
for (let i = 0; i < 8; i++) {
|
|
79
|
-
if (pngData[i] !== pngSignature[i]) {
|
|
80
|
-
return null;
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
return {
|
|
84
|
-
width: view.getUint32(16, false),
|
|
85
|
-
height: view.getUint32(20, false),
|
|
86
|
-
};
|
|
87
|
-
};
|
|
88
|
-
const isPng = (data) => {
|
|
89
|
-
const pngPattern = new Uint8Array([0x89, 0x50, 0x4e, 0x47]);
|
|
90
|
-
if ((0, exports.matchesPattern)(pngPattern)(data.subarray(0, 4))) {
|
|
91
|
-
const png = getPngDimensions(data);
|
|
92
|
-
return { dimensions: png, type: 'png' };
|
|
93
|
-
}
|
|
94
|
-
return null;
|
|
95
|
-
};
|
|
96
|
-
const getJpegDimensions = (data) => {
|
|
97
|
-
let offset = 0;
|
|
98
|
-
const readUint16BE = (o) => {
|
|
99
|
-
return (data[o] << 8) | data[o + 1];
|
|
100
|
-
};
|
|
101
|
-
if (readUint16BE(offset) !== 0xffd8) {
|
|
102
|
-
return null;
|
|
103
|
-
}
|
|
104
|
-
offset += 2;
|
|
105
|
-
while (offset < data.length) {
|
|
106
|
-
if (data[offset] === 0xff) {
|
|
107
|
-
const marker = data[offset + 1];
|
|
108
|
-
if (marker === 0xc0 || marker === 0xc2) {
|
|
109
|
-
const height = readUint16BE(offset + 5);
|
|
110
|
-
const width = readUint16BE(offset + 7);
|
|
111
|
-
return { width, height };
|
|
112
|
-
}
|
|
113
|
-
const length = readUint16BE(offset + 2);
|
|
114
|
-
offset += length + 2;
|
|
115
|
-
}
|
|
116
|
-
else {
|
|
117
|
-
offset++;
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
return null;
|
|
121
|
-
};
|
|
122
|
-
const isJpeg = (data) => {
|
|
123
|
-
const jpegPattern = new Uint8Array([0xff, 0xd8]);
|
|
124
|
-
const jpeg = (0, exports.matchesPattern)(jpegPattern)(data.subarray(0, 2));
|
|
125
|
-
if (!jpeg) {
|
|
126
|
-
return null;
|
|
127
|
-
}
|
|
128
|
-
const dim = getJpegDimensions(data);
|
|
129
|
-
return { dimensions: dim, type: 'jpeg' };
|
|
130
|
-
};
|
|
131
|
-
const getGifDimensions = (data) => {
|
|
132
|
-
const view = new DataView(data.buffer, data.byteOffset);
|
|
133
|
-
const width = view.getUint16(6, true);
|
|
134
|
-
const height = view.getUint16(8, true);
|
|
135
|
-
return { width, height };
|
|
136
|
-
};
|
|
137
|
-
const isGif = (data) => {
|
|
138
|
-
const gifPattern = new Uint8Array([0x47, 0x49, 0x46, 0x38]);
|
|
139
|
-
if ((0, exports.matchesPattern)(gifPattern)(data.subarray(0, 4))) {
|
|
140
|
-
return { type: 'gif', dimensions: getGifDimensions(data) };
|
|
141
|
-
}
|
|
142
|
-
return null;
|
|
143
|
-
};
|
|
144
|
-
const getWebPDimensions = (bytes) => {
|
|
145
|
-
if (bytes.length < 30) {
|
|
146
|
-
return null;
|
|
147
|
-
}
|
|
148
|
-
if (bytes[0] !== 0x52 ||
|
|
149
|
-
bytes[1] !== 0x49 ||
|
|
150
|
-
bytes[2] !== 0x46 ||
|
|
151
|
-
bytes[3] !== 0x46 ||
|
|
152
|
-
bytes[8] !== 0x57 ||
|
|
153
|
-
bytes[9] !== 0x45 ||
|
|
154
|
-
bytes[10] !== 0x42 ||
|
|
155
|
-
bytes[11] !== 0x50) {
|
|
156
|
-
return null;
|
|
157
|
-
}
|
|
158
|
-
if (bytes[12] === 0x56 && bytes[13] === 0x50 && bytes[14] === 0x38) {
|
|
159
|
-
if (bytes[15] === 0x20) {
|
|
160
|
-
return {
|
|
161
|
-
width: bytes[26] | ((bytes[27] << 8) & 0x3fff),
|
|
162
|
-
height: bytes[28] | ((bytes[29] << 8) & 0x3fff),
|
|
163
|
-
};
|
|
164
|
-
}
|
|
165
|
-
}
|
|
166
|
-
if (bytes[12] === 0x56 &&
|
|
167
|
-
bytes[13] === 0x50 &&
|
|
168
|
-
bytes[14] === 0x38 &&
|
|
169
|
-
bytes[15] === 0x4c) {
|
|
170
|
-
return {
|
|
171
|
-
width: 1 + (bytes[21] | ((bytes[22] & 0x3f) << 8)),
|
|
172
|
-
height: 1 +
|
|
173
|
-
(((bytes[22] & 0xc0) >> 6) |
|
|
174
|
-
(bytes[23] << 2) |
|
|
175
|
-
((bytes[24] & 0x0f) << 10)),
|
|
176
|
-
};
|
|
177
|
-
}
|
|
178
|
-
if (bytes[12] === 0x56 &&
|
|
179
|
-
bytes[13] === 0x50 &&
|
|
180
|
-
bytes[14] === 0x38 &&
|
|
181
|
-
bytes[15] === 0x58) {
|
|
182
|
-
return {
|
|
183
|
-
width: 1 + (bytes[24] | (bytes[25] << 8) | (bytes[26] << 16)),
|
|
184
|
-
height: 1 + (bytes[27] | (bytes[28] << 8) | (bytes[29] << 16)),
|
|
185
|
-
};
|
|
186
|
-
}
|
|
187
|
-
return null;
|
|
188
|
-
};
|
|
189
|
-
const isWebp = (data) => {
|
|
190
|
-
const webpPattern = new Uint8Array([0x52, 0x49, 0x46, 0x46]);
|
|
191
|
-
if ((0, exports.matchesPattern)(webpPattern)(data.subarray(0, 4))) {
|
|
192
|
-
return {
|
|
193
|
-
type: 'webp',
|
|
194
|
-
dimensions: getWebPDimensions(data),
|
|
195
|
-
};
|
|
196
|
-
}
|
|
197
|
-
return null;
|
|
198
|
-
};
|
|
199
|
-
const getBmpDimensions = (bmpData) => {
|
|
200
|
-
if (bmpData.length < 26) {
|
|
201
|
-
return null;
|
|
202
|
-
}
|
|
203
|
-
const view = new DataView(bmpData.buffer, bmpData.byteOffset);
|
|
204
|
-
return {
|
|
205
|
-
width: view.getUint32(18, true),
|
|
206
|
-
height: Math.abs(view.getInt32(22, true)),
|
|
207
|
-
};
|
|
208
|
-
};
|
|
209
|
-
const isBmp = (data) => {
|
|
210
|
-
const bmpPattern = new Uint8Array([0x42, 0x4d]);
|
|
211
|
-
if ((0, exports.matchesPattern)(bmpPattern)(data.subarray(0, 2))) {
|
|
212
|
-
const bmp = getBmpDimensions(data);
|
|
213
|
-
return { dimensions: bmp, type: 'bmp' };
|
|
214
|
-
}
|
|
215
|
-
return null;
|
|
216
|
-
};
|
|
217
|
-
const isPdf = (data) => {
|
|
218
|
-
if (data.length < 4) {
|
|
219
|
-
return null;
|
|
220
|
-
}
|
|
221
|
-
const pdfPattern = new Uint8Array([0x25, 0x50, 0x44, 0x46]);
|
|
222
|
-
return (0, exports.matchesPattern)(pdfPattern)(data.subarray(0, 4)) ? { type: 'pdf' } : null;
|
|
223
|
-
};
|
|
224
|
-
const detectFileType = (data) => {
|
|
225
|
-
if ((0, exports.isRiffWave)(data)) {
|
|
226
|
-
return { type: 'wav' };
|
|
227
|
-
}
|
|
228
|
-
if ((0, exports.isRiffAvi)(data)) {
|
|
229
|
-
return { type: 'riff' };
|
|
230
|
-
}
|
|
231
|
-
if ((0, exports.isAac)(data)) {
|
|
232
|
-
return { type: 'aac' };
|
|
233
|
-
}
|
|
234
|
-
if ((0, exports.isFlac)(data)) {
|
|
235
|
-
return { type: 'flac' };
|
|
236
|
-
}
|
|
237
|
-
if ((0, exports.isM3u)(data)) {
|
|
238
|
-
return { type: 'm3u' };
|
|
239
|
-
}
|
|
240
|
-
const webp = isWebp(data);
|
|
241
|
-
if (webp) {
|
|
242
|
-
return webp;
|
|
243
|
-
}
|
|
244
|
-
if ((0, exports.isWebm)(data)) {
|
|
245
|
-
return { type: 'webm' };
|
|
246
|
-
}
|
|
247
|
-
if ((0, exports.isIsoBaseMedia)(data)) {
|
|
248
|
-
return { type: 'iso-base-media' };
|
|
249
|
-
}
|
|
250
|
-
if ((0, exports.isTransportStream)(data)) {
|
|
251
|
-
return { type: 'transport-stream' };
|
|
252
|
-
}
|
|
253
|
-
if ((0, exports.isMp3)(data)) {
|
|
254
|
-
return { type: 'mp3' };
|
|
255
|
-
}
|
|
256
|
-
const gif = isGif(data);
|
|
257
|
-
if (gif) {
|
|
258
|
-
return gif;
|
|
259
|
-
}
|
|
260
|
-
const png = isPng(data);
|
|
261
|
-
if (png) {
|
|
262
|
-
return png;
|
|
263
|
-
}
|
|
264
|
-
const pdf = isPdf(data);
|
|
265
|
-
if (pdf) {
|
|
266
|
-
return pdf;
|
|
267
|
-
}
|
|
268
|
-
const bmp = isBmp(data);
|
|
269
|
-
if (bmp) {
|
|
270
|
-
return bmp;
|
|
271
|
-
}
|
|
272
|
-
const jpeg = isJpeg(data);
|
|
273
|
-
if (jpeg) {
|
|
274
|
-
return jpeg;
|
|
275
|
-
}
|
|
276
|
-
return { type: 'unknown' };
|
|
277
|
-
};
|
|
278
|
-
exports.detectFileType = detectFileType;
|