@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.
- package/LICENSE +21 -0
- package/README.md +48 -0
- package/SPEC.md +285 -0
- package/dist/abort.d.ts +3 -0
- package/dist/abort.d.ts.map +1 -0
- package/dist/abort.js +33 -0
- package/dist/abort.js.map +1 -0
- package/dist/archive/errors.d.ts +34 -0
- package/dist/archive/errors.d.ts.map +1 -0
- package/dist/archive/errors.js +45 -0
- package/dist/archive/errors.js.map +1 -0
- package/dist/archive/httpArchiveErrors.d.ts +2 -0
- package/dist/archive/httpArchiveErrors.d.ts.map +1 -0
- package/dist/archive/httpArchiveErrors.js +25 -0
- package/dist/archive/httpArchiveErrors.js.map +1 -0
- package/dist/archive/index.d.ts +47 -0
- package/dist/archive/index.d.ts.map +1 -0
- package/dist/archive/index.js +1490 -0
- package/dist/archive/index.js.map +1 -0
- package/dist/archive/types.d.ts +91 -0
- package/dist/archive/types.d.ts.map +1 -0
- package/dist/archive/types.js +2 -0
- package/dist/archive/types.js.map +1 -0
- package/dist/archive/xzPreflight.d.ts +13 -0
- package/dist/archive/xzPreflight.d.ts.map +1 -0
- package/dist/archive/xzPreflight.js +44 -0
- package/dist/archive/xzPreflight.js.map +1 -0
- package/dist/archive/zipPreflight.d.ts +18 -0
- package/dist/archive/zipPreflight.d.ts.map +1 -0
- package/dist/archive/zipPreflight.js +50 -0
- package/dist/archive/zipPreflight.js.map +1 -0
- package/dist/binary.d.ts +12 -0
- package/dist/binary.d.ts.map +1 -0
- package/dist/binary.js +59 -0
- package/dist/binary.js.map +1 -0
- package/dist/bun/index.d.ts +19 -0
- package/dist/bun/index.d.ts.map +1 -0
- package/dist/bun/index.js +427 -0
- package/dist/bun/index.js.map +1 -0
- package/dist/compress/errors.d.ts +30 -0
- package/dist/compress/errors.d.ts.map +1 -0
- package/dist/compress/errors.js +40 -0
- package/dist/compress/errors.js.map +1 -0
- package/dist/compress/index.d.ts +12 -0
- package/dist/compress/index.d.ts.map +1 -0
- package/dist/compress/index.js +339 -0
- package/dist/compress/index.js.map +1 -0
- package/dist/compress/types.d.ts +41 -0
- package/dist/compress/types.d.ts.map +1 -0
- package/dist/compress/types.js +2 -0
- package/dist/compress/types.js.map +1 -0
- package/dist/compression/bzip2.d.ts +9 -0
- package/dist/compression/bzip2.d.ts.map +1 -0
- package/dist/compression/bzip2.js +546 -0
- package/dist/compression/bzip2.js.map +1 -0
- package/dist/compression/codecs.d.ts +6 -0
- package/dist/compression/codecs.d.ts.map +1 -0
- package/dist/compression/codecs.js +82 -0
- package/dist/compression/codecs.js.map +1 -0
- package/dist/compression/deflate64.d.ts +3 -0
- package/dist/compression/deflate64.d.ts.map +1 -0
- package/dist/compression/deflate64.js +549 -0
- package/dist/compression/deflate64.js.map +1 -0
- package/dist/compression/node-backend.d.ts +9 -0
- package/dist/compression/node-backend.d.ts.map +1 -0
- package/dist/compression/node-backend.js +103 -0
- package/dist/compression/node-backend.js.map +1 -0
- package/dist/compression/registry.d.ts +10 -0
- package/dist/compression/registry.d.ts.map +1 -0
- package/dist/compression/registry.js +30 -0
- package/dist/compression/registry.js.map +1 -0
- package/dist/compression/streams.d.ts +31 -0
- package/dist/compression/streams.d.ts.map +1 -0
- package/dist/compression/streams.js +147 -0
- package/dist/compression/streams.js.map +1 -0
- package/dist/compression/types.d.ts +19 -0
- package/dist/compression/types.d.ts.map +1 -0
- package/dist/compression/types.js +2 -0
- package/dist/compression/types.js.map +1 -0
- package/dist/compression/xz.d.ts +21 -0
- package/dist/compression/xz.d.ts.map +1 -0
- package/dist/compression/xz.js +1455 -0
- package/dist/compression/xz.js.map +1 -0
- package/dist/compression/xzFilters.d.ts +14 -0
- package/dist/compression/xzFilters.d.ts.map +1 -0
- package/dist/compression/xzFilters.js +736 -0
- package/dist/compression/xzFilters.js.map +1 -0
- package/dist/compression/xzIndexPreflight.d.ts +20 -0
- package/dist/compression/xzIndexPreflight.d.ts.map +1 -0
- package/dist/compression/xzIndexPreflight.js +371 -0
- package/dist/compression/xzIndexPreflight.js.map +1 -0
- package/dist/compression/xzScan.d.ts +15 -0
- package/dist/compression/xzScan.d.ts.map +1 -0
- package/dist/compression/xzScan.js +310 -0
- package/dist/compression/xzScan.js.map +1 -0
- package/dist/cp437.d.ts +2 -0
- package/dist/cp437.d.ts.map +1 -0
- package/dist/cp437.js +31 -0
- package/dist/cp437.js.map +1 -0
- package/dist/crc32.d.ts +7 -0
- package/dist/crc32.d.ts.map +1 -0
- package/dist/crc32.js +37 -0
- package/dist/crc32.js.map +1 -0
- package/dist/crc64.d.ts +6 -0
- package/dist/crc64.d.ts.map +1 -0
- package/dist/crc64.js +32 -0
- package/dist/crc64.js.map +1 -0
- package/dist/crypto/ctr.d.ts +11 -0
- package/dist/crypto/ctr.d.ts.map +1 -0
- package/dist/crypto/ctr.js +56 -0
- package/dist/crypto/ctr.js.map +1 -0
- package/dist/crypto/sha256.d.ts +16 -0
- package/dist/crypto/sha256.d.ts.map +1 -0
- package/dist/crypto/sha256.js +152 -0
- package/dist/crypto/sha256.js.map +1 -0
- package/dist/crypto/winzip-aes.d.ts +17 -0
- package/dist/crypto/winzip-aes.d.ts.map +1 -0
- package/dist/crypto/winzip-aes.js +98 -0
- package/dist/crypto/winzip-aes.js.map +1 -0
- package/dist/crypto/zipcrypto.d.ts +23 -0
- package/dist/crypto/zipcrypto.d.ts.map +1 -0
- package/dist/crypto/zipcrypto.js +99 -0
- package/dist/crypto/zipcrypto.js.map +1 -0
- package/dist/deno/index.d.ts +19 -0
- package/dist/deno/index.d.ts.map +1 -0
- package/dist/deno/index.js +422 -0
- package/dist/deno/index.js.map +1 -0
- package/dist/dosTime.d.ts +7 -0
- package/dist/dosTime.d.ts.map +1 -0
- package/dist/dosTime.js +21 -0
- package/dist/dosTime.js.map +1 -0
- package/dist/errorContext.d.ts +2 -0
- package/dist/errorContext.d.ts.map +1 -0
- package/dist/errorContext.js +24 -0
- package/dist/errorContext.js.map +1 -0
- package/dist/errors.d.ts +46 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +51 -0
- package/dist/errors.js.map +1 -0
- package/dist/extraFields.d.ts +29 -0
- package/dist/extraFields.d.ts.map +1 -0
- package/dist/extraFields.js +201 -0
- package/dist/extraFields.js.map +1 -0
- package/dist/generated/unicodeCaseFolding.d.ts +4 -0
- package/dist/generated/unicodeCaseFolding.d.ts.map +1 -0
- package/dist/generated/unicodeCaseFolding.js +1594 -0
- package/dist/generated/unicodeCaseFolding.js.map +1 -0
- package/dist/http/errors.d.ts +26 -0
- package/dist/http/errors.d.ts.map +1 -0
- package/dist/http/errors.js +33 -0
- package/dist/http/errors.js.map +1 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +7 -0
- package/dist/index.js.map +1 -0
- package/dist/limits.d.ts +22 -0
- package/dist/limits.d.ts.map +1 -0
- package/dist/limits.js +39 -0
- package/dist/limits.js.map +1 -0
- package/dist/node/index.d.ts +13 -0
- package/dist/node/index.d.ts.map +1 -0
- package/dist/node/index.js +448 -0
- package/dist/node/index.js.map +1 -0
- package/dist/node/zip/RandomAccess.d.ts +12 -0
- package/dist/node/zip/RandomAccess.d.ts.map +1 -0
- package/dist/node/zip/RandomAccess.js +38 -0
- package/dist/node/zip/RandomAccess.js.map +1 -0
- package/dist/node/zip/Sink.d.ts +17 -0
- package/dist/node/zip/Sink.d.ts.map +1 -0
- package/dist/node/zip/Sink.js +45 -0
- package/dist/node/zip/Sink.js.map +1 -0
- package/dist/node/zip/ZipReader.d.ts +51 -0
- package/dist/node/zip/ZipReader.d.ts.map +1 -0
- package/dist/node/zip/ZipReader.js +1540 -0
- package/dist/node/zip/ZipReader.js.map +1 -0
- package/dist/node/zip/ZipWriter.d.ts +21 -0
- package/dist/node/zip/ZipWriter.d.ts.map +1 -0
- package/dist/node/zip/ZipWriter.js +196 -0
- package/dist/node/zip/ZipWriter.js.map +1 -0
- package/dist/node/zip/entryStream.d.ts +22 -0
- package/dist/node/zip/entryStream.d.ts.map +1 -0
- package/dist/node/zip/entryStream.js +241 -0
- package/dist/node/zip/entryStream.js.map +1 -0
- package/dist/node/zip/entryWriter.d.ts +54 -0
- package/dist/node/zip/entryWriter.d.ts.map +1 -0
- package/dist/node/zip/entryWriter.js +512 -0
- package/dist/node/zip/entryWriter.js.map +1 -0
- package/dist/node/zip/index.d.ts +8 -0
- package/dist/node/zip/index.d.ts.map +1 -0
- package/dist/node/zip/index.js +5 -0
- package/dist/node/zip/index.js.map +1 -0
- package/dist/reader/RandomAccess.d.ts +55 -0
- package/dist/reader/RandomAccess.d.ts.map +1 -0
- package/dist/reader/RandomAccess.js +528 -0
- package/dist/reader/RandomAccess.js.map +1 -0
- package/dist/reader/ZipReader.d.ts +89 -0
- package/dist/reader/ZipReader.d.ts.map +1 -0
- package/dist/reader/ZipReader.js +1359 -0
- package/dist/reader/ZipReader.js.map +1 -0
- package/dist/reader/centralDirectory.d.ts +40 -0
- package/dist/reader/centralDirectory.d.ts.map +1 -0
- package/dist/reader/centralDirectory.js +311 -0
- package/dist/reader/centralDirectory.js.map +1 -0
- package/dist/reader/entryStream.d.ts +22 -0
- package/dist/reader/entryStream.d.ts.map +1 -0
- package/dist/reader/entryStream.js +122 -0
- package/dist/reader/entryStream.js.map +1 -0
- package/dist/reader/eocd.d.ts +22 -0
- package/dist/reader/eocd.d.ts.map +1 -0
- package/dist/reader/eocd.js +184 -0
- package/dist/reader/eocd.js.map +1 -0
- package/dist/reader/httpZipErrors.d.ts +4 -0
- package/dist/reader/httpZipErrors.d.ts.map +1 -0
- package/dist/reader/httpZipErrors.js +48 -0
- package/dist/reader/httpZipErrors.js.map +1 -0
- package/dist/reader/localHeader.d.ts +15 -0
- package/dist/reader/localHeader.d.ts.map +1 -0
- package/dist/reader/localHeader.js +37 -0
- package/dist/reader/localHeader.js.map +1 -0
- package/dist/reportSchema.d.ts +3 -0
- package/dist/reportSchema.d.ts.map +1 -0
- package/dist/reportSchema.js +3 -0
- package/dist/reportSchema.js.map +1 -0
- package/dist/streams/adapters.d.ts +10 -0
- package/dist/streams/adapters.d.ts.map +1 -0
- package/dist/streams/adapters.js +54 -0
- package/dist/streams/adapters.js.map +1 -0
- package/dist/streams/buffer.d.ts +5 -0
- package/dist/streams/buffer.d.ts.map +1 -0
- package/dist/streams/buffer.js +44 -0
- package/dist/streams/buffer.js.map +1 -0
- package/dist/streams/crcTransform.d.ts +15 -0
- package/dist/streams/crcTransform.d.ts.map +1 -0
- package/dist/streams/crcTransform.js +30 -0
- package/dist/streams/crcTransform.js.map +1 -0
- package/dist/streams/emit.d.ts +7 -0
- package/dist/streams/emit.d.ts.map +1 -0
- package/dist/streams/emit.js +13 -0
- package/dist/streams/emit.js.map +1 -0
- package/dist/streams/limits.d.ts +16 -0
- package/dist/streams/limits.d.ts.map +1 -0
- package/dist/streams/limits.js +39 -0
- package/dist/streams/limits.js.map +1 -0
- package/dist/streams/measure.d.ts +5 -0
- package/dist/streams/measure.d.ts.map +1 -0
- package/dist/streams/measure.js +9 -0
- package/dist/streams/measure.js.map +1 -0
- package/dist/streams/progress.d.ts +8 -0
- package/dist/streams/progress.d.ts.map +1 -0
- package/dist/streams/progress.js +69 -0
- package/dist/streams/progress.js.map +1 -0
- package/dist/streams/web.d.ts +5 -0
- package/dist/streams/web.d.ts.map +1 -0
- package/dist/streams/web.js +33 -0
- package/dist/streams/web.js.map +1 -0
- package/dist/tar/TarReader.d.ts +41 -0
- package/dist/tar/TarReader.d.ts.map +1 -0
- package/dist/tar/TarReader.js +930 -0
- package/dist/tar/TarReader.js.map +1 -0
- package/dist/tar/TarWriter.d.ts +25 -0
- package/dist/tar/TarWriter.d.ts.map +1 -0
- package/dist/tar/TarWriter.js +307 -0
- package/dist/tar/TarWriter.js.map +1 -0
- package/dist/tar/index.d.ts +4 -0
- package/dist/tar/index.d.ts.map +1 -0
- package/dist/tar/index.js +3 -0
- package/dist/tar/index.js.map +1 -0
- package/dist/tar/types.d.ts +67 -0
- package/dist/tar/types.d.ts.map +1 -0
- package/dist/tar/types.js +2 -0
- package/dist/tar/types.js.map +1 -0
- package/dist/text/caseFold.d.ts +7 -0
- package/dist/text/caseFold.d.ts.map +1 -0
- package/dist/text/caseFold.js +45 -0
- package/dist/text/caseFold.js.map +1 -0
- package/dist/types.d.ts +190 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/dist/web/index.d.ts +11 -0
- package/dist/web/index.d.ts.map +1 -0
- package/dist/web/index.js +95 -0
- package/dist/web/index.js.map +1 -0
- package/dist/writer/Sink.d.ts +21 -0
- package/dist/writer/Sink.d.ts.map +1 -0
- package/dist/writer/Sink.js +24 -0
- package/dist/writer/Sink.js.map +1 -0
- package/dist/writer/ZipWriter.d.ts +27 -0
- package/dist/writer/ZipWriter.d.ts.map +1 -0
- package/dist/writer/ZipWriter.js +153 -0
- package/dist/writer/ZipWriter.js.map +1 -0
- package/dist/writer/centralDirectoryWriter.d.ts +8 -0
- package/dist/writer/centralDirectoryWriter.d.ts.map +1 -0
- package/dist/writer/centralDirectoryWriter.js +77 -0
- package/dist/writer/centralDirectoryWriter.js.map +1 -0
- package/dist/writer/entryWriter.d.ts +54 -0
- package/dist/writer/entryWriter.d.ts.map +1 -0
- package/dist/writer/entryWriter.js +327 -0
- package/dist/writer/entryWriter.js.map +1 -0
- package/dist/writer/finalize.d.ts +10 -0
- package/dist/writer/finalize.d.ts.map +1 -0
- package/dist/writer/finalize.js +56 -0
- package/dist/writer/finalize.js.map +1 -0
- package/dist/zip/index.d.ts +8 -0
- package/dist/zip/index.d.ts.map +1 -0
- package/dist/zip/index.js +5 -0
- package/dist/zip/index.js.map +1 -0
- package/jsr.json +41 -0
- package/package.json +117 -0
- package/schemas/audit-report.schema.json +38 -0
- package/schemas/capabilities-report.schema.json +25 -0
- package/schemas/detection-report.schema.json +23 -0
- package/schemas/error.schema.json +22 -0
- 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 @@
|
|
|
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"}
|