@ryuzaki13/react-foundation-lib 2.18.1 → 2.20.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.
@@ -0,0 +1,8 @@
1
+ import { type FileSignatureCheckOptions, type FileSignatureCheckResult } from "./fileSignatureTypes";
2
+ /**
3
+ * Частичная pure-проверка fixed headers: нет FileReader, Node API, декодирования,
4
+ * распаковки или чтения всего файла. Любой match относится только к header.
5
+ * Общий ZIP/OLE marker не подтверждает Office/ODF/XFL; allowlist принадлежит caller.
6
+ */
7
+ export declare function checkFileSignature({ extension, bytes }: FileSignatureCheckOptions): FileSignatureCheckResult;
8
+ //# sourceMappingURL=checkFileSignature.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"checkFileSignature.d.ts","sourceRoot":"","sources":["../../src/file/checkFileSignature.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,yBAAyB,EAAE,KAAK,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAmErG;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,EAAE,yBAAyB,GAAG,wBAAwB,CAuB5G"}
@@ -0,0 +1,20 @@
1
+ /** Приватный словарь результатов; значения сохраняют публичный string union. */
2
+ export declare const FILE_SIGNATURE_RESULT: {
3
+ readonly MATCH: "match";
4
+ readonly MISMATCH: "mismatch";
5
+ readonly UNSUPPORTED: "unsupported";
6
+ };
7
+ /** Только dispatch поддержанных проверок; это не предметный allowlist caller. */
8
+ export declare const FILE_SIGNATURE_EXTENSION: {
9
+ readonly PNG: "png";
10
+ readonly JPG: "jpg";
11
+ readonly JPEG: "jpeg";
12
+ readonly BMP: "bmp";
13
+ readonly PSD: "psd";
14
+ readonly RTF: "rtf";
15
+ readonly RAR: "rar";
16
+ readonly ZIP: "zip";
17
+ readonly SEVEN_ZIP: "7z";
18
+ readonly PDF: "pdf";
19
+ };
20
+ //# sourceMappingURL=fileSignatureConstants.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fileSignatureConstants.d.ts","sourceRoot":"","sources":["../../src/file/fileSignatureConstants.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,eAAO,MAAM,qBAAqB;;;;CAIxB,CAAC;AAEX,iFAAiF;AACjF,eAAO,MAAM,wBAAwB;;;;;;;;;;;CAW3B,CAAC"}
@@ -0,0 +1,15 @@
1
+ import { type FILE_SIGNATURE_EXTENSION, type FILE_SIGNATURE_RESULT } from "./fileSignatureConstants";
2
+ /** Bytes принадлежат caller; расширение передаётся без точки и имени файла. */
3
+ export type FileSignatureCheckOptions = Readonly<{
4
+ extension: string;
5
+ bytes: Uint8Array;
6
+ }>;
7
+ /**
8
+ * match подтверждает только поддержанный header, не целостность или безопасность
9
+ * файла. unsupported означает отсутствие надёжного решения этой проверкой;
10
+ * допустимость такого файла определяет вызывающая policy, а не foundation.
11
+ */
12
+ export type FileSignatureCheckResult = (typeof FILE_SIGNATURE_RESULT)[keyof typeof FILE_SIGNATURE_RESULT];
13
+ /** Внутренний archive dispatch; public index не публикует этот тип. */
14
+ export type ArchiveFileSignatureExtension = typeof FILE_SIGNATURE_EXTENSION.RAR | typeof FILE_SIGNATURE_EXTENSION.ZIP | typeof FILE_SIGNATURE_EXTENSION.SEVEN_ZIP;
15
+ //# sourceMappingURL=fileSignatureTypes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fileSignatureTypes.d.ts","sourceRoot":"","sources":["../../src/file/fileSignatureTypes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,wBAAwB,EAAE,KAAK,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAErG,+EAA+E;AAC/E,MAAM,MAAM,yBAAyB,GAAG,QAAQ,CAAC;IAChD,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,UAAU,CAAC;CAClB,CAAC,CAAC;AAEH;;;;GAIG;AACH,MAAM,MAAM,wBAAwB,GAAG,CAAC,OAAO,qBAAqB,CAAC,CAAC,MAAM,OAAO,qBAAqB,CAAC,CAAC;AAE1G,uEAAuE;AACvE,MAAM,MAAM,6BAA6B,GACxC,OAAO,wBAAwB,CAAC,GAAG,GAAG,OAAO,wBAAwB,CAAC,GAAG,GAAG,OAAO,wBAAwB,CAAC,SAAS,CAAC"}
@@ -1,3 +1,5 @@
1
+ export { checkFileSignature } from "./checkFileSignature";
2
+ export { type FileSignatureCheckOptions, type FileSignatureCheckResult } from "./fileSignatureTypes";
1
3
  export * from "./contentDisposition";
2
4
  export * from "./image";
3
5
  export * from "./mimeType";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/file/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/file/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,EAAE,KAAK,yBAAyB,EAAE,KAAK,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AACrG,cAAc,sBAAsB,CAAC;AACrC,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC"}
@@ -1,50 +1,219 @@
1
+ //#region src/file/fileSignatureConstants.ts
2
+ var e = {
3
+ MATCH: "match",
4
+ MISMATCH: "mismatch",
5
+ UNSUPPORTED: "unsupported"
6
+ }, t = {
7
+ PNG: "png",
8
+ JPG: "jpg",
9
+ JPEG: "jpeg",
10
+ BMP: "bmp",
11
+ PSD: "psd",
12
+ RTF: "rtf",
13
+ RAR: "rar",
14
+ ZIP: "zip",
15
+ SEVEN_ZIP: "7z",
16
+ PDF: "pdf"
17
+ };
18
+ //#endregion
19
+ //#region src/file/signature/hasSignatureBytes.ts
20
+ function n(e, t, n = 0) {
21
+ return n + t.length > e.length ? !1 : t.every((t, r) => e[n + r] === t);
22
+ }
23
+ function r(e, t) {
24
+ return e.length < t.length && e.every((e, n) => e === t[n]);
25
+ }
26
+ //#endregion
27
+ //#region src/file/signature/checkArchiveSignature.ts
28
+ var i = [
29
+ 82,
30
+ 97,
31
+ 114,
32
+ 33
33
+ ], a = [26, 7], o = 0, s = 1, c = 0, l = [80, 75], u = [3, 4], d = [5, 6], f = 30, ee = 22, te = [55, 122], p = [
34
+ 55,
35
+ 122,
36
+ 188,
37
+ 175,
38
+ 39,
39
+ 28
40
+ ], ne = 2, re = 0, m = 32;
41
+ function ie(t) {
42
+ if (r(t, i)) return e.MISMATCH;
43
+ if (!n(t, i)) return e.UNSUPPORTED;
44
+ let l = i.length + a.length;
45
+ return t.length <= l || !n(t, a, i.length) ? e.MISMATCH : t[l] === o ? e.MATCH : t[l] === s ? t[l + 1] === c ? e.MATCH : e.MISMATCH : e.UNSUPPORTED;
46
+ }
47
+ function ae(t) {
48
+ if (r(t, l)) return e.MISMATCH;
49
+ if (!n(t, l)) return e.UNSUPPORTED;
50
+ let i = l.length;
51
+ return t.length <= i ? e.MISMATCH : t[i] === u[0] ? t.length >= f && n(t, u, i) ? e.MATCH : e.MISMATCH : t[i] === d[0] ? t.length >= ee && n(t, d, i) ? e.MATCH : e.MISMATCH : e.UNSUPPORTED;
52
+ }
53
+ function h(t) {
54
+ return r(t, p) ? e.MISMATCH : n(t, p) ? t.length < p.length + ne ? e.MISMATCH : t[p.length] === re ? t.length >= m ? e.MATCH : e.MISMATCH : e.UNSUPPORTED : n(t, te) ? e.MISMATCH : e.UNSUPPORTED;
55
+ }
56
+ function oe(e, n) {
57
+ return e === t.RAR ? ie(n) : e === t.ZIP ? ae(n) : h(n);
58
+ }
59
+ //#endregion
60
+ //#region src/file/signature/checkPdfSignature.ts
61
+ var g = [
62
+ 37,
63
+ 80,
64
+ 68,
65
+ 70
66
+ ], _ = 1024, v = 8, y = 4, b = 45, x = 5, S = 6, se = 46, ce = 7, C = 48, w = 57, le = 49, ue = 55, de = 50, T = 48;
67
+ function E(t) {
68
+ if (r(t, g)) return e.MISMATCH;
69
+ let i = Math.min(t.length, _), a = !1, o = !1;
70
+ for (let r = 0; r + g.length <= i; r += 1) {
71
+ if (!n(t, g, r)) continue;
72
+ if (r + v > i) {
73
+ r + v > t.length ? a = !0 : o = !0;
74
+ continue;
75
+ }
76
+ let s = t[r + x], c = t[r + ce];
77
+ if (t[r + y] !== b || t[r + S] !== se || s < C || s > w || c < C || c > w) {
78
+ a = !0;
79
+ continue;
80
+ }
81
+ if (s === le && c <= ue || s === de && c === T) return e.MATCH;
82
+ o = !0;
83
+ }
84
+ return o ? e.UNSUPPORTED : a ? e.MISMATCH : e.UNSUPPORTED;
85
+ }
86
+ //#endregion
87
+ //#region src/file/checkFileSignature.ts
88
+ var D = [
89
+ 137,
90
+ 80,
91
+ 78,
92
+ 71,
93
+ 13,
94
+ 10,
95
+ 26,
96
+ 10
97
+ ], O = 255, k = 216, A = 32, j = [66, 77], M = 14, N = 6, P = [
98
+ 0,
99
+ 0,
100
+ 0,
101
+ 0
102
+ ], F = [
103
+ 56,
104
+ 66,
105
+ 80,
106
+ 83
107
+ ], I = [0, 1], L = [
108
+ 0,
109
+ 0,
110
+ 0,
111
+ 0,
112
+ 0,
113
+ 0
114
+ ], R = [
115
+ 123,
116
+ 92,
117
+ 114,
118
+ 116,
119
+ 102
120
+ ], z = [
121
+ 123,
122
+ 92,
123
+ 114,
124
+ 116,
125
+ 102,
126
+ 49
127
+ ], B = {
128
+ digit: [48, 57],
129
+ uppercase: [65, 90],
130
+ lowercase: [97, 122]
131
+ };
132
+ function V(t) {
133
+ if (t[0] !== O) return e.MISMATCH;
134
+ let n = 1;
135
+ for (; n < Math.min(t.length, A) && t[n] === O;) n += 1;
136
+ return n === A && t.length > n ? e.UNSUPPORTED : t[n] === k ? e.MATCH : e.MISMATCH;
137
+ }
138
+ function H(t) {
139
+ return r(t, j) ? e.MISMATCH : n(t, j) ? t.length < M ? e.MISMATCH : n(t, P, N) ? e.MATCH : e.MISMATCH : e.UNSUPPORTED;
140
+ }
141
+ function fe(t) {
142
+ if (!n(t, F)) return e.MISMATCH;
143
+ let r = F.length + I.length;
144
+ return t.length < r ? e.MISMATCH : n(t, I, F.length) ? n(t, L, r) ? e.MATCH : e.MISMATCH : e.UNSUPPORTED;
145
+ }
146
+ function pe(t) {
147
+ if (r(t, z)) return e.MISMATCH;
148
+ if (!n(t, R)) return e.UNSUPPORTED;
149
+ if (!n(t, z) || t.length <= z.length) return e.MISMATCH;
150
+ let i = t[z.length];
151
+ return i >= B.digit[0] && i <= B.digit[1] || i >= B.uppercase[0] && i <= B.uppercase[1] || i >= B.lowercase[0] && i <= B.lowercase[1] ? e.MISMATCH : e.MATCH;
152
+ }
153
+ function me({ extension: r, bytes: i }) {
154
+ let a = r.trim().toLowerCase();
155
+ switch (a) {
156
+ case t.PNG: return n(i, D) ? e.MATCH : e.MISMATCH;
157
+ case t.JPG:
158
+ case t.JPEG: return V(i);
159
+ case t.BMP: return H(i);
160
+ case t.PSD: return fe(i);
161
+ case t.RTF: return pe(i);
162
+ case t.RAR:
163
+ case t.ZIP:
164
+ case t.SEVEN_ZIP: return oe(a, i);
165
+ case t.PDF: return E(i);
166
+ default: return e.UNSUPPORTED;
167
+ }
168
+ }
169
+ //#endregion
1
170
  //#region src/file/contentDisposition.ts
2
- function e(e, t = "file") {
171
+ function U(e, t = "file") {
3
172
  let n = e.replace(/[\r\n]/g, " ").replace(/"/g, "'").trim();
4
173
  return n.length > 0 ? n : t;
5
174
  }
6
- function t(e) {
175
+ function W(e) {
7
176
  return encodeURIComponent(e).replace(/['()]/g, (e) => `%${e.charCodeAt(0).toString(16).toUpperCase()}`).replace(/\*/g, "%2A");
8
177
  }
9
- function n(e, t = "file.bin") {
178
+ function G(e, t = "file.bin") {
10
179
  let n = e.replace(/[\r\n]/g, " ").replace(/["\\]/g, "_").replace(/[^\x20-\x7E]/g, "_").replace(/\s+/g, " ").trim();
11
180
  return n.length > 0 ? n : t;
12
181
  }
13
- function r({ disposition: r, filename: i, asciiFallback: a = "file.bin" }) {
14
- let o = e(i, a);
15
- return `${r}; filename="${n(o, a)}"; filename*=UTF-8''${t(o)}`;
182
+ function he({ disposition: e, filename: t, asciiFallback: n = "file.bin" }) {
183
+ let r = U(t, n);
184
+ return `${e}; filename="${G(r, n)}"; filename*=UTF-8''${W(r)}`;
16
185
  }
17
186
  //#endregion
18
187
  //#region src/file/read-file/types.ts
19
- var i = class extends Error {
188
+ var K = class extends Error {
20
189
  code;
21
190
  cause;
22
191
  constructor(e, t, n) {
23
192
  super(t ?? e), this.name = "ReadFileError", this.code = e, this.cause = n;
24
193
  }
25
- }, a = "[a-z0-9!#$&^_.+-]+", o = RegExp(`^${a}\\/${a}$`, "i"), s = RegExp(`^${a}\\/(?:${a}|\\*)$`, "i"), c = /^\.[^\s,]+$/;
26
- function l(e) {
194
+ }, q = "[a-z0-9!#$&^_.+-]+", ge = RegExp(`^${q}\\/${q}$`, "i"), _e = RegExp(`^${q}\\/(?:${q}|\\*)$`, "i"), ve = /^\.[^\s,]+$/;
195
+ function ye(e) {
27
196
  if (e) {
28
- for (let [t, n] of e.entries()) if (!o.test(n)) throw Error(`DropZone: некорректный allowedMime[${t}]="${n}". Ожидается полный MIME-тип вида "application/pdf" без wildcard и параметров.`);
197
+ for (let [t, n] of e.entries()) if (!ge.test(n)) throw Error(`DropZone: некорректный allowedMime[${t}]="${n}". Ожидается полный MIME-тип вида "application/pdf" без wildcard и параметров.`);
29
198
  }
30
199
  }
31
- function u(e) {
200
+ function be(e) {
32
201
  if (e) {
33
- for (let [t, n] of e.entries()) if (!(c.test(n) || s.test(n))) throw Error(`DropZone: некорректный accept[${t}]="${n}". Ожидается расширение вида ".pdf" или MIME-тип вида "application/pdf" / "image/*".`);
202
+ for (let [t, n] of e.entries()) if (!(ve.test(n) || _e.test(n))) throw Error(`DropZone: некорректный accept[${t}]="${n}". Ожидается расширение вида ".pdf" или MIME-тип вида "application/pdf" / "image/*".`);
34
203
  }
35
204
  }
36
- function d(e) {
37
- if (e?.aborted) throw new i("READ_ABORTED", "Прервано по сигналу");
205
+ function J(e) {
206
+ if (e?.aborted) throw new K("READ_ABORTED", "Прервано по сигналу");
38
207
  }
39
208
  //#endregion
40
209
  //#region src/file/read-file/readFile.ts
41
- function f(e) {
210
+ function Y(e) {
42
211
  return e?.trim().toLowerCase() ?? "";
43
212
  }
44
- function p(e) {
45
- return f(e.split(".").pop());
213
+ function xe(e) {
214
+ return Y(e.split(".").pop());
46
215
  }
47
- function m(e) {
216
+ function X(e) {
48
217
  return {
49
218
  mime: e.type,
50
219
  size: e.size,
@@ -52,7 +221,7 @@ function m(e) {
52
221
  lastModified: e.lastModified
53
222
  };
54
223
  }
55
- function h(e, t) {
224
+ function Z(e, t) {
56
225
  if (!e) return;
57
226
  let n = () => {
58
227
  try {
@@ -61,81 +230,81 @@ function h(e, t) {
61
230
  };
62
231
  return e.addEventListener("abort", n, { once: !0 }), () => e.removeEventListener("abort", n);
63
232
  }
64
- function g(e, t) {
233
+ function Se(e, t) {
65
234
  if (t.allowedMime && t.allowedMime.length > 0) {
66
- let n = new Set(t.allowedMime.map((e) => f(e))), r = f(e.type);
67
- if (!n.has(r)) throw new i("MIME_NOT_ALLOWED", `Неподдерживаемый MIME тип: ${e.type}`);
235
+ let n = new Set(t.allowedMime.map((e) => Y(e))), r = Y(e.type);
236
+ if (!n.has(r)) throw new K("MIME_NOT_ALLOWED", `Неподдерживаемый MIME тип: ${e.type}`);
68
237
  } else if (t.accept && t.accept.length > 0) {
69
- let n = p(e.name) || e.type.split("/").pop();
70
- if (!n) throw new i("MIME_NOT_ALLOWED", "Неопределенный MIME тип");
71
- if (!t.accept.map((e) => f(e)).some((e) => e.includes(n))) throw new i("MIME_NOT_ALLOWED", `Неподдерживаемый MIME тип: ${n}`);
238
+ let n = xe(e.name) || e.type.split("/").pop();
239
+ if (!n) throw new K("MIME_NOT_ALLOWED", "Неопределенный MIME тип");
240
+ if (!t.accept.map((e) => Y(e)).some((e) => e.includes(n))) throw new K("MIME_NOT_ALLOWED", `Неподдерживаемый MIME тип: ${n}`);
72
241
  }
73
- if (typeof t.maxBytes == "number" && e.size > t.maxBytes) throw new i("FILE_TOO_LARGE", `Файл слишком большой: ${e.size} > ${t.maxBytes}`);
242
+ if (typeof t.maxBytes == "number" && e.size > t.maxBytes) throw new K("FILE_TOO_LARGE", `Файл слишком большой: ${e.size} > ${t.maxBytes}`);
74
243
  }
75
- function _(e, t) {
244
+ function Ce(e, t) {
76
245
  return new Promise((n, r) => {
77
- let a = new FileReader(), o = h(t.signal, a);
78
- a.onerror = () => {
79
- o?.(), r(new i("READ_FAILED", "Не удалось прочитать файл как DataURL", a.error));
80
- }, a.onabort = () => {
81
- o?.(), r(new i("READ_ABORTED", "Чтение файла прервано"));
82
- }, a.onload = () => {
83
- o?.();
84
- let e = a.result;
246
+ let i = new FileReader(), a = Z(t.signal, i);
247
+ i.onerror = () => {
248
+ a?.(), r(new K("READ_FAILED", "Не удалось прочитать файл как DataURL", i.error));
249
+ }, i.onabort = () => {
250
+ a?.(), r(new K("READ_ABORTED", "Чтение файла прервано"));
251
+ }, i.onload = () => {
252
+ a?.();
253
+ let e = i.result;
85
254
  if (typeof e != "string") {
86
- r(new i("READ_FAILED", "Неожиданный тип результата FileReader"));
255
+ r(new K("READ_FAILED", "Неожиданный тип результата FileReader"));
87
256
  return;
88
257
  }
89
258
  n(e);
90
259
  };
91
260
  try {
92
- a.readAsDataURL(e);
261
+ i.readAsDataURL(e);
93
262
  } catch (e) {
94
- o?.(), r(new i("READ_FAILED", "При чтении DataURL функция FileReader выдала ошибку", e));
263
+ a?.(), r(new K("READ_FAILED", "При чтении DataURL функция FileReader выдала ошибку", e));
95
264
  }
96
265
  });
97
266
  }
98
- function v(e, t) {
267
+ function we(e, t) {
99
268
  return new Promise((n, r) => {
100
- let a = new FileReader(), o = h(t.signal, a);
101
- a.onerror = () => {
102
- o?.(), r(new i("READ_FAILED", "Не удалось прочитать файл как ArrayBuffer.", a.error));
103
- }, a.onabort = () => {
104
- o?.(), r(new i("READ_ABORTED", "Чтение файла прервано"));
105
- }, a.onload = () => {
106
- o?.();
107
- let e = a.result;
269
+ let i = new FileReader(), a = Z(t.signal, i);
270
+ i.onerror = () => {
271
+ a?.(), r(new K("READ_FAILED", "Не удалось прочитать файл как ArrayBuffer.", i.error));
272
+ }, i.onabort = () => {
273
+ a?.(), r(new K("READ_ABORTED", "Чтение файла прервано"));
274
+ }, i.onload = () => {
275
+ a?.();
276
+ let e = i.result;
108
277
  if (!(e instanceof ArrayBuffer)) {
109
- r(new i("READ_FAILED", "Неожиданный тип результата FileReader"));
278
+ r(new K("READ_FAILED", "Неожиданный тип результата FileReader"));
110
279
  return;
111
280
  }
112
281
  n(e);
113
282
  };
114
283
  try {
115
- a.readAsArrayBuffer(e);
284
+ i.readAsArrayBuffer(e);
116
285
  } catch (e) {
117
- o?.(), r(new i("READ_FAILED", "При чтении ArrayBuffer возникла ошибка FileReader", e));
286
+ a?.(), r(new K("READ_FAILED", "При чтении ArrayBuffer возникла ошибка FileReader", e));
118
287
  }
119
288
  });
120
289
  }
121
- async function y(e, t = {}) {
122
- d(t.signal), g(e, t);
123
- let n = t.mode ?? "data-url", r = m(e);
290
+ async function Q(e, t = {}) {
291
+ J(t.signal), Se(e, t);
292
+ let n = t.mode ?? "data-url", r = X(e);
124
293
  return n === "array-buffer" ? {
125
294
  mode: "array-buffer",
126
295
  meta: r,
127
- buffer: await v(e, t),
296
+ buffer: await we(e, t),
128
297
  file: e
129
298
  } : {
130
299
  mode: "data-url",
131
300
  meta: r,
132
- dataUrl: await _(e, t),
301
+ dataUrl: await Ce(e, t),
133
302
  file: e
134
303
  };
135
304
  }
136
305
  //#endregion
137
306
  //#region src/file/image/types.ts
138
- var b = class extends Error {
307
+ var $ = class extends Error {
139
308
  code;
140
309
  cause;
141
310
  constructor(e, t, n) {
@@ -144,11 +313,11 @@ var b = class extends Error {
144
313
  };
145
314
  //#endregion
146
315
  //#region src/file/image/readImageFile.ts
147
- function x(e) {
316
+ function Te(e) {
148
317
  return e.startsWith("image/");
149
318
  }
150
- async function S(e, t) {
151
- d(t);
319
+ async function Ee(e, t) {
320
+ J(t);
152
321
  let n = new Image();
153
322
  return n.decoding = "async", n.src = e, await new Promise((e, t) => {
154
323
  let r = () => {
@@ -159,23 +328,23 @@ async function S(e, t) {
159
328
  }, n.onerror = (e) => {
160
329
  r(), t(e);
161
330
  };
162
- }), d(t), {
331
+ }), J(t), {
163
332
  width: n.naturalWidth,
164
333
  height: n.naturalHeight
165
334
  };
166
335
  }
167
- async function C(e, t = {}) {
168
- if (!x(e.type)) throw new b("NOT_AN_IMAGE", `Файл не является изображением. mime=${e.type || "unknown"}`);
336
+ async function De(e, t = {}) {
337
+ if (!Te(e.type)) throw new $("NOT_AN_IMAGE", `Файл не является изображением. mime=${e.type || "unknown"}`);
169
338
  let n = {
170
339
  allowedMime: t.allowedMime,
171
340
  maxBytes: t.maxBytes,
172
341
  signal: t.signal
173
342
  };
174
- if (t.mode === "array-buffer") return y(e, {
343
+ if (t.mode === "array-buffer") return Q(e, {
175
344
  ...n,
176
345
  mode: "array-buffer"
177
346
  });
178
- let r = await y(e, n), i = await S(r.dataUrl, t.signal);
347
+ let r = await Q(e, n), i = await Ee(r.dataUrl, t.signal);
179
348
  return {
180
349
  ...r,
181
350
  dimensions: i
@@ -183,7 +352,7 @@ async function C(e, t = {}) {
183
352
  }
184
353
  //#endregion
185
354
  //#region src/file/mimeType.ts
186
- var w = {
355
+ var Oe = {
187
356
  pdf: "application/pdf",
188
357
  doc: "application/msword",
189
358
  docx: "application/vnd.openxmlformats-officedocument.wordprocessingml.document",
@@ -202,10 +371,10 @@ var w = {
202
371
  gif: "image/gif",
203
372
  webp: "image/webp"
204
373
  };
205
- function T(e) {
206
- return w[e.trim().toLowerCase()] ?? "application/octet-stream";
374
+ function ke(e) {
375
+ return Oe[e.trim().toLowerCase()] ?? "application/octet-stream";
207
376
  }
208
377
  //#endregion
209
- export { i as ReadFileError, b as ReadImageError, d as assertNotAborted, u as assertValidAccept, l as assertValidAllowedMime, h as attachAbort, m as buildMeta, n as createAsciiFilenameFallback, r as createContentDispositionHeader, t as encodeFilenameRFC5987, y as readFile, C as readImageFile, T as resolveMimeTypeByExtension, e as sanitizeFileName };
378
+ export { K as ReadFileError, $ as ReadImageError, J as assertNotAborted, be as assertValidAccept, ye as assertValidAllowedMime, Z as attachAbort, X as buildMeta, me as checkFileSignature, G as createAsciiFilenameFallback, he as createContentDispositionHeader, W as encodeFilenameRFC5987, Q as readFile, De as readImageFile, ke as resolveMimeTypeByExtension, U as sanitizeFileName };
210
379
 
211
380
  //# sourceMappingURL=index.js.map