@ismail-elkorchi/bytefold 0.6.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.
Files changed (314) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +48 -0
  3. package/SPEC.md +285 -0
  4. package/dist/abort.d.ts +3 -0
  5. package/dist/abort.d.ts.map +1 -0
  6. package/dist/abort.js +33 -0
  7. package/dist/abort.js.map +1 -0
  8. package/dist/archive/errors.d.ts +34 -0
  9. package/dist/archive/errors.d.ts.map +1 -0
  10. package/dist/archive/errors.js +45 -0
  11. package/dist/archive/errors.js.map +1 -0
  12. package/dist/archive/httpArchiveErrors.d.ts +2 -0
  13. package/dist/archive/httpArchiveErrors.d.ts.map +1 -0
  14. package/dist/archive/httpArchiveErrors.js +25 -0
  15. package/dist/archive/httpArchiveErrors.js.map +1 -0
  16. package/dist/archive/index.d.ts +47 -0
  17. package/dist/archive/index.d.ts.map +1 -0
  18. package/dist/archive/index.js +1490 -0
  19. package/dist/archive/index.js.map +1 -0
  20. package/dist/archive/types.d.ts +91 -0
  21. package/dist/archive/types.d.ts.map +1 -0
  22. package/dist/archive/types.js +2 -0
  23. package/dist/archive/types.js.map +1 -0
  24. package/dist/archive/xzPreflight.d.ts +13 -0
  25. package/dist/archive/xzPreflight.d.ts.map +1 -0
  26. package/dist/archive/xzPreflight.js +44 -0
  27. package/dist/archive/xzPreflight.js.map +1 -0
  28. package/dist/archive/zipPreflight.d.ts +18 -0
  29. package/dist/archive/zipPreflight.d.ts.map +1 -0
  30. package/dist/archive/zipPreflight.js +50 -0
  31. package/dist/archive/zipPreflight.js.map +1 -0
  32. package/dist/binary.d.ts +12 -0
  33. package/dist/binary.d.ts.map +1 -0
  34. package/dist/binary.js +59 -0
  35. package/dist/binary.js.map +1 -0
  36. package/dist/bun/index.d.ts +19 -0
  37. package/dist/bun/index.d.ts.map +1 -0
  38. package/dist/bun/index.js +427 -0
  39. package/dist/bun/index.js.map +1 -0
  40. package/dist/compress/errors.d.ts +30 -0
  41. package/dist/compress/errors.d.ts.map +1 -0
  42. package/dist/compress/errors.js +40 -0
  43. package/dist/compress/errors.js.map +1 -0
  44. package/dist/compress/index.d.ts +12 -0
  45. package/dist/compress/index.d.ts.map +1 -0
  46. package/dist/compress/index.js +339 -0
  47. package/dist/compress/index.js.map +1 -0
  48. package/dist/compress/types.d.ts +41 -0
  49. package/dist/compress/types.d.ts.map +1 -0
  50. package/dist/compress/types.js +2 -0
  51. package/dist/compress/types.js.map +1 -0
  52. package/dist/compression/bzip2.d.ts +9 -0
  53. package/dist/compression/bzip2.d.ts.map +1 -0
  54. package/dist/compression/bzip2.js +546 -0
  55. package/dist/compression/bzip2.js.map +1 -0
  56. package/dist/compression/codecs.d.ts +6 -0
  57. package/dist/compression/codecs.d.ts.map +1 -0
  58. package/dist/compression/codecs.js +82 -0
  59. package/dist/compression/codecs.js.map +1 -0
  60. package/dist/compression/deflate64.d.ts +3 -0
  61. package/dist/compression/deflate64.d.ts.map +1 -0
  62. package/dist/compression/deflate64.js +549 -0
  63. package/dist/compression/deflate64.js.map +1 -0
  64. package/dist/compression/node-backend.d.ts +9 -0
  65. package/dist/compression/node-backend.d.ts.map +1 -0
  66. package/dist/compression/node-backend.js +103 -0
  67. package/dist/compression/node-backend.js.map +1 -0
  68. package/dist/compression/registry.d.ts +10 -0
  69. package/dist/compression/registry.d.ts.map +1 -0
  70. package/dist/compression/registry.js +30 -0
  71. package/dist/compression/registry.js.map +1 -0
  72. package/dist/compression/streams.d.ts +31 -0
  73. package/dist/compression/streams.d.ts.map +1 -0
  74. package/dist/compression/streams.js +147 -0
  75. package/dist/compression/streams.js.map +1 -0
  76. package/dist/compression/types.d.ts +19 -0
  77. package/dist/compression/types.d.ts.map +1 -0
  78. package/dist/compression/types.js +2 -0
  79. package/dist/compression/types.js.map +1 -0
  80. package/dist/compression/xz.d.ts +21 -0
  81. package/dist/compression/xz.d.ts.map +1 -0
  82. package/dist/compression/xz.js +1455 -0
  83. package/dist/compression/xz.js.map +1 -0
  84. package/dist/compression/xzFilters.d.ts +14 -0
  85. package/dist/compression/xzFilters.d.ts.map +1 -0
  86. package/dist/compression/xzFilters.js +736 -0
  87. package/dist/compression/xzFilters.js.map +1 -0
  88. package/dist/compression/xzIndexPreflight.d.ts +20 -0
  89. package/dist/compression/xzIndexPreflight.d.ts.map +1 -0
  90. package/dist/compression/xzIndexPreflight.js +371 -0
  91. package/dist/compression/xzIndexPreflight.js.map +1 -0
  92. package/dist/compression/xzScan.d.ts +15 -0
  93. package/dist/compression/xzScan.d.ts.map +1 -0
  94. package/dist/compression/xzScan.js +310 -0
  95. package/dist/compression/xzScan.js.map +1 -0
  96. package/dist/cp437.d.ts +2 -0
  97. package/dist/cp437.d.ts.map +1 -0
  98. package/dist/cp437.js +31 -0
  99. package/dist/cp437.js.map +1 -0
  100. package/dist/crc32.d.ts +7 -0
  101. package/dist/crc32.d.ts.map +1 -0
  102. package/dist/crc32.js +37 -0
  103. package/dist/crc32.js.map +1 -0
  104. package/dist/crc64.d.ts +6 -0
  105. package/dist/crc64.d.ts.map +1 -0
  106. package/dist/crc64.js +32 -0
  107. package/dist/crc64.js.map +1 -0
  108. package/dist/crypto/ctr.d.ts +11 -0
  109. package/dist/crypto/ctr.d.ts.map +1 -0
  110. package/dist/crypto/ctr.js +56 -0
  111. package/dist/crypto/ctr.js.map +1 -0
  112. package/dist/crypto/sha256.d.ts +16 -0
  113. package/dist/crypto/sha256.d.ts.map +1 -0
  114. package/dist/crypto/sha256.js +152 -0
  115. package/dist/crypto/sha256.js.map +1 -0
  116. package/dist/crypto/winzip-aes.d.ts +17 -0
  117. package/dist/crypto/winzip-aes.d.ts.map +1 -0
  118. package/dist/crypto/winzip-aes.js +98 -0
  119. package/dist/crypto/winzip-aes.js.map +1 -0
  120. package/dist/crypto/zipcrypto.d.ts +23 -0
  121. package/dist/crypto/zipcrypto.d.ts.map +1 -0
  122. package/dist/crypto/zipcrypto.js +99 -0
  123. package/dist/crypto/zipcrypto.js.map +1 -0
  124. package/dist/deno/index.d.ts +19 -0
  125. package/dist/deno/index.d.ts.map +1 -0
  126. package/dist/deno/index.js +422 -0
  127. package/dist/deno/index.js.map +1 -0
  128. package/dist/dosTime.d.ts +7 -0
  129. package/dist/dosTime.d.ts.map +1 -0
  130. package/dist/dosTime.js +21 -0
  131. package/dist/dosTime.js.map +1 -0
  132. package/dist/errorContext.d.ts +2 -0
  133. package/dist/errorContext.d.ts.map +1 -0
  134. package/dist/errorContext.js +24 -0
  135. package/dist/errorContext.js.map +1 -0
  136. package/dist/errors.d.ts +46 -0
  137. package/dist/errors.d.ts.map +1 -0
  138. package/dist/errors.js +51 -0
  139. package/dist/errors.js.map +1 -0
  140. package/dist/extraFields.d.ts +29 -0
  141. package/dist/extraFields.d.ts.map +1 -0
  142. package/dist/extraFields.js +201 -0
  143. package/dist/extraFields.js.map +1 -0
  144. package/dist/generated/unicodeCaseFolding.d.ts +4 -0
  145. package/dist/generated/unicodeCaseFolding.d.ts.map +1 -0
  146. package/dist/generated/unicodeCaseFolding.js +1594 -0
  147. package/dist/generated/unicodeCaseFolding.js.map +1 -0
  148. package/dist/http/errors.d.ts +26 -0
  149. package/dist/http/errors.d.ts.map +1 -0
  150. package/dist/http/errors.js +33 -0
  151. package/dist/http/errors.js.map +1 -0
  152. package/dist/index.d.ts +10 -0
  153. package/dist/index.d.ts.map +1 -0
  154. package/dist/index.js +7 -0
  155. package/dist/index.js.map +1 -0
  156. package/dist/limits.d.ts +22 -0
  157. package/dist/limits.d.ts.map +1 -0
  158. package/dist/limits.js +39 -0
  159. package/dist/limits.js.map +1 -0
  160. package/dist/node/index.d.ts +13 -0
  161. package/dist/node/index.d.ts.map +1 -0
  162. package/dist/node/index.js +448 -0
  163. package/dist/node/index.js.map +1 -0
  164. package/dist/node/zip/RandomAccess.d.ts +12 -0
  165. package/dist/node/zip/RandomAccess.d.ts.map +1 -0
  166. package/dist/node/zip/RandomAccess.js +38 -0
  167. package/dist/node/zip/RandomAccess.js.map +1 -0
  168. package/dist/node/zip/Sink.d.ts +17 -0
  169. package/dist/node/zip/Sink.d.ts.map +1 -0
  170. package/dist/node/zip/Sink.js +45 -0
  171. package/dist/node/zip/Sink.js.map +1 -0
  172. package/dist/node/zip/ZipReader.d.ts +51 -0
  173. package/dist/node/zip/ZipReader.d.ts.map +1 -0
  174. package/dist/node/zip/ZipReader.js +1540 -0
  175. package/dist/node/zip/ZipReader.js.map +1 -0
  176. package/dist/node/zip/ZipWriter.d.ts +21 -0
  177. package/dist/node/zip/ZipWriter.d.ts.map +1 -0
  178. package/dist/node/zip/ZipWriter.js +196 -0
  179. package/dist/node/zip/ZipWriter.js.map +1 -0
  180. package/dist/node/zip/entryStream.d.ts +22 -0
  181. package/dist/node/zip/entryStream.d.ts.map +1 -0
  182. package/dist/node/zip/entryStream.js +241 -0
  183. package/dist/node/zip/entryStream.js.map +1 -0
  184. package/dist/node/zip/entryWriter.d.ts +54 -0
  185. package/dist/node/zip/entryWriter.d.ts.map +1 -0
  186. package/dist/node/zip/entryWriter.js +512 -0
  187. package/dist/node/zip/entryWriter.js.map +1 -0
  188. package/dist/node/zip/index.d.ts +8 -0
  189. package/dist/node/zip/index.d.ts.map +1 -0
  190. package/dist/node/zip/index.js +5 -0
  191. package/dist/node/zip/index.js.map +1 -0
  192. package/dist/reader/RandomAccess.d.ts +55 -0
  193. package/dist/reader/RandomAccess.d.ts.map +1 -0
  194. package/dist/reader/RandomAccess.js +528 -0
  195. package/dist/reader/RandomAccess.js.map +1 -0
  196. package/dist/reader/ZipReader.d.ts +89 -0
  197. package/dist/reader/ZipReader.d.ts.map +1 -0
  198. package/dist/reader/ZipReader.js +1359 -0
  199. package/dist/reader/ZipReader.js.map +1 -0
  200. package/dist/reader/centralDirectory.d.ts +40 -0
  201. package/dist/reader/centralDirectory.d.ts.map +1 -0
  202. package/dist/reader/centralDirectory.js +311 -0
  203. package/dist/reader/centralDirectory.js.map +1 -0
  204. package/dist/reader/entryStream.d.ts +22 -0
  205. package/dist/reader/entryStream.d.ts.map +1 -0
  206. package/dist/reader/entryStream.js +122 -0
  207. package/dist/reader/entryStream.js.map +1 -0
  208. package/dist/reader/eocd.d.ts +22 -0
  209. package/dist/reader/eocd.d.ts.map +1 -0
  210. package/dist/reader/eocd.js +184 -0
  211. package/dist/reader/eocd.js.map +1 -0
  212. package/dist/reader/httpZipErrors.d.ts +4 -0
  213. package/dist/reader/httpZipErrors.d.ts.map +1 -0
  214. package/dist/reader/httpZipErrors.js +48 -0
  215. package/dist/reader/httpZipErrors.js.map +1 -0
  216. package/dist/reader/localHeader.d.ts +15 -0
  217. package/dist/reader/localHeader.d.ts.map +1 -0
  218. package/dist/reader/localHeader.js +37 -0
  219. package/dist/reader/localHeader.js.map +1 -0
  220. package/dist/reportSchema.d.ts +3 -0
  221. package/dist/reportSchema.d.ts.map +1 -0
  222. package/dist/reportSchema.js +3 -0
  223. package/dist/reportSchema.js.map +1 -0
  224. package/dist/streams/adapters.d.ts +10 -0
  225. package/dist/streams/adapters.d.ts.map +1 -0
  226. package/dist/streams/adapters.js +54 -0
  227. package/dist/streams/adapters.js.map +1 -0
  228. package/dist/streams/buffer.d.ts +5 -0
  229. package/dist/streams/buffer.d.ts.map +1 -0
  230. package/dist/streams/buffer.js +44 -0
  231. package/dist/streams/buffer.js.map +1 -0
  232. package/dist/streams/crcTransform.d.ts +15 -0
  233. package/dist/streams/crcTransform.d.ts.map +1 -0
  234. package/dist/streams/crcTransform.js +30 -0
  235. package/dist/streams/crcTransform.js.map +1 -0
  236. package/dist/streams/emit.d.ts +7 -0
  237. package/dist/streams/emit.d.ts.map +1 -0
  238. package/dist/streams/emit.js +13 -0
  239. package/dist/streams/emit.js.map +1 -0
  240. package/dist/streams/limits.d.ts +16 -0
  241. package/dist/streams/limits.d.ts.map +1 -0
  242. package/dist/streams/limits.js +39 -0
  243. package/dist/streams/limits.js.map +1 -0
  244. package/dist/streams/measure.d.ts +5 -0
  245. package/dist/streams/measure.d.ts.map +1 -0
  246. package/dist/streams/measure.js +9 -0
  247. package/dist/streams/measure.js.map +1 -0
  248. package/dist/streams/progress.d.ts +8 -0
  249. package/dist/streams/progress.d.ts.map +1 -0
  250. package/dist/streams/progress.js +69 -0
  251. package/dist/streams/progress.js.map +1 -0
  252. package/dist/streams/web.d.ts +5 -0
  253. package/dist/streams/web.d.ts.map +1 -0
  254. package/dist/streams/web.js +33 -0
  255. package/dist/streams/web.js.map +1 -0
  256. package/dist/tar/TarReader.d.ts +41 -0
  257. package/dist/tar/TarReader.d.ts.map +1 -0
  258. package/dist/tar/TarReader.js +930 -0
  259. package/dist/tar/TarReader.js.map +1 -0
  260. package/dist/tar/TarWriter.d.ts +25 -0
  261. package/dist/tar/TarWriter.d.ts.map +1 -0
  262. package/dist/tar/TarWriter.js +307 -0
  263. package/dist/tar/TarWriter.js.map +1 -0
  264. package/dist/tar/index.d.ts +4 -0
  265. package/dist/tar/index.d.ts.map +1 -0
  266. package/dist/tar/index.js +3 -0
  267. package/dist/tar/index.js.map +1 -0
  268. package/dist/tar/types.d.ts +67 -0
  269. package/dist/tar/types.d.ts.map +1 -0
  270. package/dist/tar/types.js +2 -0
  271. package/dist/tar/types.js.map +1 -0
  272. package/dist/text/caseFold.d.ts +7 -0
  273. package/dist/text/caseFold.d.ts.map +1 -0
  274. package/dist/text/caseFold.js +45 -0
  275. package/dist/text/caseFold.js.map +1 -0
  276. package/dist/types.d.ts +190 -0
  277. package/dist/types.d.ts.map +1 -0
  278. package/dist/types.js +2 -0
  279. package/dist/types.js.map +1 -0
  280. package/dist/web/index.d.ts +11 -0
  281. package/dist/web/index.d.ts.map +1 -0
  282. package/dist/web/index.js +95 -0
  283. package/dist/web/index.js.map +1 -0
  284. package/dist/writer/Sink.d.ts +21 -0
  285. package/dist/writer/Sink.d.ts.map +1 -0
  286. package/dist/writer/Sink.js +24 -0
  287. package/dist/writer/Sink.js.map +1 -0
  288. package/dist/writer/ZipWriter.d.ts +27 -0
  289. package/dist/writer/ZipWriter.d.ts.map +1 -0
  290. package/dist/writer/ZipWriter.js +153 -0
  291. package/dist/writer/ZipWriter.js.map +1 -0
  292. package/dist/writer/centralDirectoryWriter.d.ts +8 -0
  293. package/dist/writer/centralDirectoryWriter.d.ts.map +1 -0
  294. package/dist/writer/centralDirectoryWriter.js +77 -0
  295. package/dist/writer/centralDirectoryWriter.js.map +1 -0
  296. package/dist/writer/entryWriter.d.ts +54 -0
  297. package/dist/writer/entryWriter.d.ts.map +1 -0
  298. package/dist/writer/entryWriter.js +327 -0
  299. package/dist/writer/entryWriter.js.map +1 -0
  300. package/dist/writer/finalize.d.ts +10 -0
  301. package/dist/writer/finalize.d.ts.map +1 -0
  302. package/dist/writer/finalize.js +56 -0
  303. package/dist/writer/finalize.js.map +1 -0
  304. package/dist/zip/index.d.ts +8 -0
  305. package/dist/zip/index.d.ts.map +1 -0
  306. package/dist/zip/index.js +5 -0
  307. package/dist/zip/index.js.map +1 -0
  308. package/jsr.json +41 -0
  309. package/package.json +117 -0
  310. package/schemas/audit-report.schema.json +38 -0
  311. package/schemas/capabilities-report.schema.json +25 -0
  312. package/schemas/detection-report.schema.json +23 -0
  313. package/schemas/error.schema.json +22 -0
  314. package/schemas/normalize-report.schema.json +47 -0
@@ -0,0 +1,29 @@
1
+ export interface Zip64ExtraValues {
2
+ uncompressedSize?: bigint;
3
+ compressedSize?: bigint;
4
+ offset?: bigint;
5
+ diskStart?: number;
6
+ }
7
+ export interface ExtendedTimestampValues {
8
+ mtime?: Date;
9
+ atime?: Date;
10
+ ctime?: Date;
11
+ }
12
+ export interface AesExtraValues {
13
+ vendorVersion: 1 | 2;
14
+ strength: 128 | 192 | 256;
15
+ actualMethod: number;
16
+ }
17
+ export declare function parseExtraFields(extra: Uint8Array): Map<number, Uint8Array>;
18
+ export declare function parseZip64Extra(data: Uint8Array, present: {
19
+ uncompressed: boolean;
20
+ compressed: boolean;
21
+ offset: boolean;
22
+ diskStart: boolean;
23
+ }): Zip64ExtraValues;
24
+ export declare function buildZip64Extra(values: Zip64ExtraValues): Uint8Array;
25
+ export declare function parseExtendedTimestamp(data: Uint8Array): ExtendedTimestampValues;
26
+ export declare function buildExtendedTimestampExtra(values: ExtendedTimestampValues, isCentral: boolean): Uint8Array;
27
+ export declare function buildAesExtra(values: AesExtraValues): Uint8Array;
28
+ export declare function parseAesExtra(data: Uint8Array): AesExtraValues | undefined;
29
+ //# sourceMappingURL=extraFields.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extraFields.d.ts","sourceRoot":"","sources":["../src/extraFields.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,gBAAgB;IAC/B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,uBAAuB;IACtC,KAAK,CAAC,EAAE,IAAI,CAAC;IACb,KAAK,CAAC,EAAE,IAAI,CAAC;IACb,KAAK,CAAC,EAAE,IAAI,CAAC;CACd;AAED,MAAM,WAAW,cAAc;IAC7B,aAAa,EAAE,CAAC,GAAG,CAAC,CAAC;IACrB,QAAQ,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,UAAU,GAAG,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAe3E;AAED,wBAAgB,eAAe,CAC7B,IAAI,EAAE,UAAU,EAChB,OAAO,EAAE;IACP,YAAY,EAAE,OAAO,CAAC;IACtB,UAAU,EAAE,OAAO,CAAC;IACpB,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,EAAE,OAAO,CAAC;CACpB,GACA,gBAAgB,CAqBlB;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,gBAAgB,GAAG,UAAU,CA8BpE;AAED,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,UAAU,GAAG,uBAAuB,CAmBhF;AAED,wBAAgB,2BAA2B,CAAC,MAAM,EAAE,uBAAuB,EAAE,SAAS,EAAE,OAAO,GAAG,UAAU,CAmC3G;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,cAAc,GAAG,UAAU,CAUhE;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,UAAU,GAAG,cAAc,GAAG,SAAS,CAa1E"}
@@ -0,0 +1,201 @@
1
+ import { readUint16LE, readUint32LE, readUint64LE, writeUint16LE, writeUint32LE, writeUint64LE } from './binary.js';
2
+ export function parseExtraFields(extra) {
3
+ const map = new Map();
4
+ let offset = 0;
5
+ while (offset + 4 <= extra.length) {
6
+ const headerId = readUint16LE(extra, offset);
7
+ const size = readUint16LE(extra, offset + 2);
8
+ const dataStart = offset + 4;
9
+ const dataEnd = dataStart + size;
10
+ if (dataEnd > extra.length) {
11
+ break;
12
+ }
13
+ map.set(headerId, extra.subarray(dataStart, dataEnd));
14
+ offset = dataEnd;
15
+ }
16
+ return map;
17
+ }
18
+ export function parseZip64Extra(data, present) {
19
+ // APPNOTE 6.3.10 section 4.5.3: Zip64 extra fields appear in fixed order.
20
+ let offset = 0;
21
+ const values = {};
22
+ if (present.uncompressed) {
23
+ values.uncompressedSize = readUint64LE(data, offset);
24
+ offset += 8;
25
+ }
26
+ if (present.compressed) {
27
+ values.compressedSize = readUint64LE(data, offset);
28
+ offset += 8;
29
+ }
30
+ if (present.offset) {
31
+ values.offset = readUint64LE(data, offset);
32
+ offset += 8;
33
+ }
34
+ if (present.diskStart) {
35
+ values.diskStart = readUint32LE(data, offset);
36
+ offset += 4;
37
+ }
38
+ return values;
39
+ }
40
+ export function buildZip64Extra(values) {
41
+ const parts = [];
42
+ let size = 0;
43
+ if (values.uncompressedSize !== undefined)
44
+ size += 8;
45
+ if (values.compressedSize !== undefined)
46
+ size += 8;
47
+ if (values.offset !== undefined)
48
+ size += 8;
49
+ if (values.diskStart !== undefined)
50
+ size += 4;
51
+ const header = new Uint8Array(4 + size);
52
+ writeUint16LE(header, 0, 0x0001);
53
+ writeUint16LE(header, 2, size);
54
+ let offset = 4;
55
+ if (values.uncompressedSize !== undefined) {
56
+ writeUint64LE(header, offset, values.uncompressedSize);
57
+ offset += 8;
58
+ }
59
+ if (values.compressedSize !== undefined) {
60
+ writeUint64LE(header, offset, values.compressedSize);
61
+ offset += 8;
62
+ }
63
+ if (values.offset !== undefined) {
64
+ writeUint64LE(header, offset, values.offset);
65
+ offset += 8;
66
+ }
67
+ if (values.diskStart !== undefined) {
68
+ writeUint32LE(header, offset, values.diskStart);
69
+ offset += 4;
70
+ }
71
+ parts.push(header);
72
+ return concat(parts);
73
+ }
74
+ export function parseExtendedTimestamp(data) {
75
+ if (data.length === 0)
76
+ return {};
77
+ let offset = 0;
78
+ const flags = data[offset];
79
+ offset += 1;
80
+ const values = {};
81
+ if (flags & 0x01) {
82
+ values.mtime = new Date(readUint32LE(data, offset) * 1000);
83
+ offset += 4;
84
+ }
85
+ if (flags & 0x02) {
86
+ values.atime = new Date(readUint32LE(data, offset) * 1000);
87
+ offset += 4;
88
+ }
89
+ if (flags & 0x04) {
90
+ values.ctime = new Date(readUint32LE(data, offset) * 1000);
91
+ offset += 4;
92
+ }
93
+ return values;
94
+ }
95
+ export function buildExtendedTimestampExtra(values, isCentral) {
96
+ // appnote_iz.txt: extended timestamp extra field (0x5455) layout.
97
+ const hasMtime = values.mtime instanceof Date;
98
+ const hasAtime = !isCentral && values.atime instanceof Date;
99
+ const hasCtime = !isCentral && values.ctime instanceof Date;
100
+ if (!hasMtime && !hasAtime && !hasCtime)
101
+ return new Uint8Array(0);
102
+ let dataSize = 1; // flags
103
+ if (hasMtime)
104
+ dataSize += 4;
105
+ if (hasAtime)
106
+ dataSize += 4;
107
+ if (hasCtime)
108
+ dataSize += 4;
109
+ const out = new Uint8Array(4 + dataSize);
110
+ writeUint16LE(out, 0, 0x5455);
111
+ writeUint16LE(out, 2, dataSize);
112
+ let offset = 4;
113
+ let flags = 0;
114
+ if (hasMtime)
115
+ flags |= 0x01;
116
+ if (hasAtime)
117
+ flags |= 0x02;
118
+ if (hasCtime)
119
+ flags |= 0x04;
120
+ out[offset] = flags;
121
+ offset += 1;
122
+ if (hasMtime) {
123
+ writeUint32LE(out, offset, Math.floor(values.mtime.getTime() / 1000));
124
+ offset += 4;
125
+ }
126
+ if (hasAtime) {
127
+ writeUint32LE(out, offset, Math.floor(values.atime.getTime() / 1000));
128
+ offset += 4;
129
+ }
130
+ if (hasCtime) {
131
+ writeUint32LE(out, offset, Math.floor(values.ctime.getTime() / 1000));
132
+ offset += 4;
133
+ }
134
+ return out;
135
+ }
136
+ export function buildAesExtra(values) {
137
+ const out = new Uint8Array(4 + 7);
138
+ writeUint16LE(out, 0, 0x9901);
139
+ writeUint16LE(out, 2, 7);
140
+ writeUint16LE(out, 4, values.vendorVersion);
141
+ out[6] = 0x41; // 'A'
142
+ out[7] = 0x45; // 'E'
143
+ out[8] = strengthToCode(values.strength);
144
+ writeUint16LE(out, 9, values.actualMethod);
145
+ return out;
146
+ }
147
+ export function parseAesExtra(data) {
148
+ if (data.length < 7)
149
+ return undefined;
150
+ const vendorVersion = readUint16LE(data, 0);
151
+ if (vendorVersion !== 1 && vendorVersion !== 2)
152
+ return undefined;
153
+ if (data[2] !== 0x41 || data[3] !== 0x45)
154
+ return undefined;
155
+ const strength = codeToStrength(data[4]);
156
+ if (!strength)
157
+ return undefined;
158
+ const actualMethod = readUint16LE(data, 5);
159
+ return {
160
+ vendorVersion: vendorVersion,
161
+ strength,
162
+ actualMethod
163
+ };
164
+ }
165
+ function strengthToCode(strength) {
166
+ switch (strength) {
167
+ case 128:
168
+ return 1;
169
+ case 192:
170
+ return 2;
171
+ case 256:
172
+ return 3;
173
+ default: {
174
+ const exhaustive = strength;
175
+ return exhaustive;
176
+ }
177
+ }
178
+ }
179
+ function codeToStrength(code) {
180
+ switch (code) {
181
+ case 1:
182
+ return 128;
183
+ case 2:
184
+ return 192;
185
+ case 3:
186
+ return 256;
187
+ default:
188
+ return undefined;
189
+ }
190
+ }
191
+ function concat(parts) {
192
+ const total = parts.reduce((sum, p) => sum + p.length, 0);
193
+ const out = new Uint8Array(total);
194
+ let offset = 0;
195
+ for (const part of parts) {
196
+ out.set(part, offset);
197
+ offset += part.length;
198
+ }
199
+ return out;
200
+ }
201
+ //# sourceMappingURL=extraFields.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extraFields.js","sourceRoot":"","sources":["../src/extraFields.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export declare const CASE_FOLDING_VERSION: "17.0.0";
2
+ export declare const CASE_FOLDING_SOURCE: "specs/unicode/CaseFolding-17.0.0.txt";
3
+ export declare const CASE_FOLDING_MAP: ReadonlyMap<number, string>;
4
+ //# sourceMappingURL=unicodeCaseFolding.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"unicodeCaseFolding.d.ts","sourceRoot":"","sources":["../../src/generated/unicodeCaseFolding.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,oBAAoB,EAAG,QAAiB,CAAC;AACtD,eAAO,MAAM,mBAAmB,EAAG,sCAA+C,CAAC;AACnF,eAAO,MAAM,gBAAgB,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAkjDvD,CAAC"}