neozipkit 1.0.2 → 1.5.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/NEOZIP_APPNOTE.md +625 -0
- package/README.md +44 -11
- package/WHATS_NEW.md +153 -10
- package/dist/browser/ZipkitBrowser.d.ts.map +1 -1
- package/dist/browser/ZipkitBrowser.js +4 -6
- package/dist/browser/ZipkitBrowser.js.map +1 -1
- package/dist/browser/zstd-browser-shim.d.ts +17 -9
- package/dist/browser/zstd-browser-shim.d.ts.map +1 -1
- package/dist/browser/zstd-browser-shim.js +99 -21
- package/dist/browser/zstd-browser-shim.js.map +1 -1
- package/dist/browser-esm/index.js +6534 -1275
- package/dist/browser-esm/index.js.map +4 -4
- package/dist/browser-umd/index.js +6534 -1275
- package/dist/browser-umd/index.js.map +4 -4
- package/dist/browser-umd/index.min.js +6 -3
- package/dist/core/ZipCompress.d.ts +6 -0
- package/dist/core/ZipCompress.d.ts.map +1 -1
- package/dist/core/ZipCompress.js +12 -11
- package/dist/core/ZipCompress.js.map +1 -1
- package/dist/core/ZipCopy.d.ts.map +1 -1
- package/dist/core/ZipCopy.js +33 -25
- package/dist/core/ZipCopy.js.map +1 -1
- package/dist/core/ZipDecompress.d.ts.map +1 -1
- package/dist/core/ZipDecompress.js +13 -8
- package/dist/core/ZipDecompress.js.map +1 -1
- package/dist/core/ZipEntry.d.ts +24 -0
- package/dist/core/ZipEntry.d.ts.map +1 -1
- package/dist/core/ZipEntry.js +146 -14
- package/dist/core/ZipEntry.js.map +1 -1
- package/dist/core/Zipkit.d.ts +43 -11
- package/dist/core/Zipkit.d.ts.map +1 -1
- package/dist/core/Zipkit.js +132 -82
- package/dist/core/Zipkit.js.map +1 -1
- package/dist/core/components/HashCalculator.d.ts +22 -1
- package/dist/core/components/HashCalculator.d.ts.map +1 -1
- package/dist/core/components/HashCalculator.js +49 -6
- package/dist/core/components/HashCalculator.js.map +1 -1
- package/dist/core/components/Util.d.ts +3 -4
- package/dist/core/components/Util.d.ts.map +1 -1
- package/dist/core/components/Util.js +10 -8
- package/dist/core/components/Util.js.map +1 -1
- package/dist/core/constants/Headers.d.ts +2 -3
- package/dist/core/constants/Headers.d.ts.map +1 -1
- package/dist/core/constants/Headers.js +15 -5
- package/dist/core/constants/Headers.js.map +1 -1
- package/dist/core/constants/MetaPaths.d.ts +38 -0
- package/dist/core/constants/MetaPaths.d.ts.map +1 -0
- package/dist/core/constants/MetaPaths.js +79 -0
- package/dist/core/constants/MetaPaths.js.map +1 -0
- package/dist/core/index.d.ts +5 -0
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +18 -1
- package/dist/core/index.js.map +1 -1
- package/dist/core/inflateZipPayload.d.ts +6 -0
- package/dist/core/inflateZipPayload.d.ts.map +1 -0
- package/dist/core/inflateZipPayload.js +28 -0
- package/dist/core/inflateZipPayload.js.map +1 -0
- package/dist/core/merkle/MerkleRoot.d.ts +109 -0
- package/dist/core/merkle/MerkleRoot.d.ts.map +1 -0
- package/dist/core/merkle/MerkleRoot.js +275 -0
- package/dist/core/merkle/MerkleRoot.js.map +1 -0
- package/dist/core/origin/OriginExtra.d.ts +43 -0
- package/dist/core/origin/OriginExtra.d.ts.map +1 -0
- package/dist/core/origin/OriginExtra.js +187 -0
- package/dist/core/origin/OriginExtra.js.map +1 -0
- package/dist/core/version.js +1 -1
- package/dist/core/zip64/Zip64.d.ts +138 -0
- package/dist/core/zip64/Zip64.d.ts.map +1 -0
- package/dist/core/zip64/Zip64.js +353 -0
- package/dist/core/zip64/Zip64.js.map +1 -0
- package/dist/node/ZipCompressNode.d.ts.map +1 -1
- package/dist/node/ZipCompressNode.js +40 -49
- package/dist/node/ZipCompressNode.js.map +1 -1
- package/dist/node/ZipCopyNode.d.ts.map +1 -1
- package/dist/node/ZipCopyNode.js +26 -26
- package/dist/node/ZipCopyNode.js.map +1 -1
- package/dist/node/ZipDecompressNode.d.ts.map +1 -1
- package/dist/node/ZipDecompressNode.js +21 -3
- package/dist/node/ZipDecompressNode.js.map +1 -1
- package/dist/node/ZipkitNode.d.ts +23 -1
- package/dist/node/ZipkitNode.d.ts.map +1 -1
- package/dist/node/ZipkitNode.js +158 -57
- package/dist/node/ZipkitNode.js.map +1 -1
- package/dist/node/ZstdNode.d.ts +14 -4
- package/dist/node/ZstdNode.d.ts.map +1 -1
- package/dist/node/ZstdNode.js +28 -4
- package/dist/node/ZstdNode.js.map +1 -1
- package/dist/node/buildZipBuffer.d.ts +49 -0
- package/dist/node/buildZipBuffer.d.ts.map +1 -0
- package/dist/node/buildZipBuffer.js +146 -0
- package/dist/node/buildZipBuffer.js.map +1 -0
- package/dist/node/index.d.ts +3 -0
- package/dist/node/index.d.ts.map +1 -1
- package/dist/node/index.js +6 -1
- package/dist/node/index.js.map +1 -1
- package/dist/node/inflateZipPayload.d.ts +5 -0
- package/dist/node/inflateZipPayload.d.ts.map +1 -0
- package/dist/node/inflateZipPayload.js +21 -0
- package/dist/node/inflateZipPayload.js.map +1 -0
- package/dist/types/index.js +2 -2
- package/node-esm.mjs +32 -0
- package/package.json +13 -6
- package/src/browser/ZipkitBrowser.ts +4 -6
- package/src/browser/zstd-browser-shim.ts +110 -28
- package/src/core/ZipCompress.ts +20 -13
- package/src/core/ZipCopy.ts +56 -27
- package/src/core/ZipDecompress.ts +14 -8
- package/src/core/ZipEntry.ts +200 -14
- package/src/core/Zipkit.ts +189 -98
- package/src/core/components/HashCalculator.ts +58 -6
- package/src/core/components/Util.ts +16 -7
- package/src/core/constants/Headers.ts +15 -4
- package/src/core/constants/MetaPaths.ts +86 -0
- package/src/core/index.ts +17 -0
- package/src/core/inflateZipPayload.ts +27 -0
- package/src/core/merkle/MerkleRoot.ts +312 -0
- package/src/core/origin/OriginExtra.ts +209 -0
- package/src/core/version.ts +1 -1
- package/src/core/zip64/Zip64.ts +473 -0
- package/src/node/ZipCompressNode.ts +40 -49
- package/src/node/ZipCopyNode.ts +31 -29
- package/src/node/ZipDecompressNode.ts +16 -3
- package/src/node/ZipkitNode.ts +203 -72
- package/src/node/ZstdNode.ts +33 -8
- package/src/node/buildZipBuffer.ts +221 -0
- package/src/node/index.ts +7 -0
- package/src/node/inflateZipPayload.ts +19 -0
- package/src/types/index.ts +2 -2
|
@@ -8,13 +8,18 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
8
8
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
9
9
|
};
|
|
10
10
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
11
|
-
exports.isMetadataFile = exports.uMul = exports.DATATYPE = void 0;
|
|
11
|
+
exports.isMetadataFile = exports.uMul = exports.DATATYPE = exports.asciiPathEqualsIgnoreCase = exports.isMetaInfPath = exports.isReservedMetaPath = exports.findReservedMetaEntry = void 0;
|
|
12
12
|
exports.readBigUInt64LE = readBigUInt64LE;
|
|
13
13
|
exports.isStream = isStream;
|
|
14
14
|
exports.getTypeOf = getTypeOf;
|
|
15
15
|
const Support_1 = __importDefault(require("./Support"));
|
|
16
16
|
const Errors_1 = __importDefault(require("../constants/Errors"));
|
|
17
|
-
const
|
|
17
|
+
const MetaPaths_1 = require("../constants/MetaPaths");
|
|
18
|
+
var MetaPaths_2 = require("../constants/MetaPaths");
|
|
19
|
+
Object.defineProperty(exports, "findReservedMetaEntry", { enumerable: true, get: function () { return MetaPaths_2.findReservedMetaEntry; } });
|
|
20
|
+
Object.defineProperty(exports, "isReservedMetaPath", { enumerable: true, get: function () { return MetaPaths_2.isReservedMetaPath; } });
|
|
21
|
+
Object.defineProperty(exports, "isMetaInfPath", { enumerable: true, get: function () { return MetaPaths_2.isMetaInfPath; } });
|
|
22
|
+
Object.defineProperty(exports, "asciiPathEqualsIgnoreCase", { enumerable: true, get: function () { return MetaPaths_2.asciiPathEqualsIgnoreCase; } });
|
|
18
23
|
exports.DATATYPE = {
|
|
19
24
|
STRING: "string",
|
|
20
25
|
BUFFER: "buffer",
|
|
@@ -82,14 +87,11 @@ function getTypeOf(input) {
|
|
|
82
87
|
}
|
|
83
88
|
;
|
|
84
89
|
/**
|
|
85
|
-
* Check if a filename is
|
|
86
|
-
*
|
|
87
|
-
* @returns True if the file is a metadata file (META-INF)
|
|
90
|
+
* Check if a filename is NeoZip metadata (any META-INF/** path).
|
|
91
|
+
* Case-insensitive on the META-INF/ prefix (NEOZIP_APPNOTE.md §2.3 / §6.2).
|
|
88
92
|
*/
|
|
89
93
|
const isMetadataFile = (filename) => {
|
|
90
|
-
return
|
|
91
|
-
filename === Headers_1.TIMESTAMP_METADATA ||
|
|
92
|
-
filename === Headers_1.TOKENIZED_METADATA;
|
|
94
|
+
return (0, MetaPaths_1.isMetaInfPath)(filename);
|
|
93
95
|
};
|
|
94
96
|
exports.isMetadataFile = isMetadataFile;
|
|
95
97
|
//# sourceMappingURL=Util.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Util.js","sourceRoot":"","sources":["../../../src/core/components/Util.ts"],"names":[],"mappings":";AAAA,yCAAyC;AACzC,UAAU;AACV,yDAAyD;AACzD,yCAAyC;AACzC,oBAAoB;;;;;;
|
|
1
|
+
{"version":3,"file":"Util.js","sourceRoot":"","sources":["../../../src/core/components/Util.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,9 +4,7 @@ export declare const CENTRAL_DIRECTORY_END = "PK\u0005\u0006";
|
|
|
4
4
|
export declare const ZIP64_CENTRAL_DIRECTORY_LOCATOR = "PK\u0006\u0007";
|
|
5
5
|
export declare const ZIP64_CENTRAL_DIRECTORY_END = "PK\u0006\u0006";
|
|
6
6
|
export declare const DATA_DESCRIPTOR = "PK\u0007\b";
|
|
7
|
-
export
|
|
8
|
-
export declare const TIMESTAMP_METADATA = "META-INF/TIMESTAMP.OTS";
|
|
9
|
-
export declare const TOKENIZED_METADATA = "META-INF/NZIP.TOKEN";
|
|
7
|
+
export { META_TOKEN_NZIP, META_TOKEN_NZIP_LEGACY, META_TS_SUBMIT_NZIP, META_TIMESTAMP_NZIP, META_TS_SUBMIT_OTS, META_TIMESTAMP_OTS, META_MANIFEST_JSON, TIMESTAMP_SUBMITTED, TIMESTAMP_METADATA, TOKENIZED_METADATA, } from './MetaPaths';
|
|
10
8
|
export declare const LOCAL_HDR: {
|
|
11
9
|
SIZE: number;
|
|
12
10
|
SIGNATURE: number;
|
|
@@ -142,6 +140,7 @@ export declare const HDR_ID: {
|
|
|
142
140
|
IBM1: number;
|
|
143
141
|
IBM2: number;
|
|
144
142
|
SHA256: number;
|
|
143
|
+
ORIGIN: number;
|
|
145
144
|
NEO_CRYPTO: number;
|
|
146
145
|
POSZIP: number;
|
|
147
146
|
UNV_TIME: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Headers.d.ts","sourceRoot":"","sources":["../../../src/core/constants/Headers.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,iBAAiB,mBAAe,CAAC;AAC9C,eAAO,MAAM,mBAAmB,mBAAe,CAAC;AAChD,eAAO,MAAM,qBAAqB,mBAAe,CAAC;AAClD,eAAO,MAAM,+BAA+B,mBAAe,CAAC;AAC5D,eAAO,MAAM,2BAA2B,mBAAe,CAAC;AACxD,eAAO,MAAM,eAAe,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"Headers.d.ts","sourceRoot":"","sources":["../../../src/core/constants/Headers.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,iBAAiB,mBAAe,CAAC;AAC9C,eAAO,MAAM,mBAAmB,mBAAe,CAAC;AAChD,eAAO,MAAM,qBAAqB,mBAAe,CAAC;AAClD,eAAO,MAAM,+BAA+B,mBAAe,CAAC;AAC5D,eAAO,MAAM,2BAA2B,mBAAe,CAAC;AACxD,eAAO,MAAM,eAAe,eAAe,CAAC;AAG5C,OAAO,EACL,eAAe,EACf,sBAAsB,EACtB,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,aAAa,CAAC;AAGrB,eAAO,MAAM,SAAS;;;;;;;;;;;;CAYrB,CAAC;AACF,eAAO,MAAM,gBAAgB,KAAK,CAAC;AAGnC,eAAO,MAAM,gBAAgB,KAAK,CAAC;AACnC,eAAO,MAAM,eAAe,KAAK,CAAC;AAClC,eAAO,MAAM,sBAAsB,IAAI,CAAC;AACxC,eAAO,MAAM,kBAAkB,KAAK,CAAC;AACrC,eAAO,MAAM,oBAAoB,KAAK,CAAC;AACvC,eAAO,MAAM,YAAY,QAAiE,CAAC;AAG3F,eAAO,MAAM,qBAAqB,KAAK,CAAC;AACxC,eAAO,MAAM,2BAA2B,QAA4B,CAAC;AACrE,wDAAwD;AACxD,eAAO,MAAM,sBAAsB,EAAE,SAAS,MAAM,EAA6B,CAAC;AAGlF,eAAO,MAAM,SAAS;;;;;;CAMrB,CAAC;AAGF,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;CAkBvB,CAAC;AAGF,eAAO,MAAM,WAAW;;;;;;;;;;CAUvB,CAAC;AAGF,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;CAc7B,CAAC;AAGF,eAAO,MAAM,iBAAiB;;;;;;CAM7B,CAAC;AAGF,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;CAgBtB,CAAC;AAGF,eAAO,MAAM,OAAO;;;;;;;;;;CAcnB,CAAC;AAGF,eAAO,MAAM,sBAAsB;;;CAGlC,CAAC;AAGF,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4BlB,CAAC;AAGF,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;CAoBvB,CAAC;AAGF,eAAO,MAAM,aAAa;;;;;;;CAOzB,CAAC"}
|
|
@@ -5,16 +5,25 @@
|
|
|
5
5
|
// ======================================
|
|
6
6
|
// Zip File Format Constants
|
|
7
7
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
8
|
-
exports.DOS_FILE_ATTR = exports.FILE_SYSTEM = exports.HDR_ID = exports.EXTENSIBLE_DATA_FIELDS = exports.GP_FLAG = exports.CMP_METHOD = exports.ZIP64_CENTRAL_END = exports.ZIP64_CENTRAL_DIR = exports.CENTRAL_END = exports.CENTRAL_DIR = exports.DATA_DESC = exports.NEO_CRYPTO_MAGIC_BYTES = exports.NEO_CRYPTO_EXTRA_FIELD_SIZE = exports.NEO_CRYPTO_PAYLOAD_V1 = exports.AES_OVERHEAD = exports.AES_EXTRA_FIELD_SIZE = exports.AES_AUTH_CODE_SIZE = exports.AES256_PWD_VERIFY_SIZE = exports.AES256_KEY_SIZE = exports.AES256_SALT_SIZE = exports.ENCRYPT_HDR_SIZE = exports.LOCAL_HDR = exports.TOKENIZED_METADATA = exports.TIMESTAMP_METADATA = exports.TIMESTAMP_SUBMITTED = exports.DATA_DESCRIPTOR = exports.ZIP64_CENTRAL_DIRECTORY_END = exports.ZIP64_CENTRAL_DIRECTORY_LOCATOR = exports.CENTRAL_DIRECTORY_END = exports.CENTRAL_FILE_HEADER = exports.LOCAL_FILE_HEADER = void 0;
|
|
8
|
+
exports.DOS_FILE_ATTR = exports.FILE_SYSTEM = exports.HDR_ID = exports.EXTENSIBLE_DATA_FIELDS = exports.GP_FLAG = exports.CMP_METHOD = exports.ZIP64_CENTRAL_END = exports.ZIP64_CENTRAL_DIR = exports.CENTRAL_END = exports.CENTRAL_DIR = exports.DATA_DESC = exports.NEO_CRYPTO_MAGIC_BYTES = exports.NEO_CRYPTO_EXTRA_FIELD_SIZE = exports.NEO_CRYPTO_PAYLOAD_V1 = exports.AES_OVERHEAD = exports.AES_EXTRA_FIELD_SIZE = exports.AES_AUTH_CODE_SIZE = exports.AES256_PWD_VERIFY_SIZE = exports.AES256_KEY_SIZE = exports.AES256_SALT_SIZE = exports.ENCRYPT_HDR_SIZE = exports.LOCAL_HDR = exports.TOKENIZED_METADATA = exports.TIMESTAMP_METADATA = exports.TIMESTAMP_SUBMITTED = exports.META_MANIFEST_JSON = exports.META_TIMESTAMP_OTS = exports.META_TS_SUBMIT_OTS = exports.META_TIMESTAMP_NZIP = exports.META_TS_SUBMIT_NZIP = exports.META_TOKEN_NZIP_LEGACY = exports.META_TOKEN_NZIP = exports.DATA_DESCRIPTOR = exports.ZIP64_CENTRAL_DIRECTORY_END = exports.ZIP64_CENTRAL_DIRECTORY_LOCATOR = exports.CENTRAL_DIRECTORY_END = exports.CENTRAL_FILE_HEADER = exports.LOCAL_FILE_HEADER = void 0;
|
|
9
9
|
exports.LOCAL_FILE_HEADER = 'PK\x03\x04';
|
|
10
10
|
exports.CENTRAL_FILE_HEADER = 'PK\x01\x02';
|
|
11
11
|
exports.CENTRAL_DIRECTORY_END = 'PK\x05\x06';
|
|
12
12
|
exports.ZIP64_CENTRAL_DIRECTORY_LOCATOR = 'PK\x06\x07';
|
|
13
13
|
exports.ZIP64_CENTRAL_DIRECTORY_END = 'PK\x06\x06';
|
|
14
14
|
exports.DATA_DESCRIPTOR = 'PK\x07\x08';
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
exports
|
|
15
|
+
// Reserved META-INF paths — see constants/MetaPaths.ts and NEOZIP_APPNOTE.md §2
|
|
16
|
+
var MetaPaths_1 = require("./MetaPaths");
|
|
17
|
+
Object.defineProperty(exports, "META_TOKEN_NZIP", { enumerable: true, get: function () { return MetaPaths_1.META_TOKEN_NZIP; } });
|
|
18
|
+
Object.defineProperty(exports, "META_TOKEN_NZIP_LEGACY", { enumerable: true, get: function () { return MetaPaths_1.META_TOKEN_NZIP_LEGACY; } });
|
|
19
|
+
Object.defineProperty(exports, "META_TS_SUBMIT_NZIP", { enumerable: true, get: function () { return MetaPaths_1.META_TS_SUBMIT_NZIP; } });
|
|
20
|
+
Object.defineProperty(exports, "META_TIMESTAMP_NZIP", { enumerable: true, get: function () { return MetaPaths_1.META_TIMESTAMP_NZIP; } });
|
|
21
|
+
Object.defineProperty(exports, "META_TS_SUBMIT_OTS", { enumerable: true, get: function () { return MetaPaths_1.META_TS_SUBMIT_OTS; } });
|
|
22
|
+
Object.defineProperty(exports, "META_TIMESTAMP_OTS", { enumerable: true, get: function () { return MetaPaths_1.META_TIMESTAMP_OTS; } });
|
|
23
|
+
Object.defineProperty(exports, "META_MANIFEST_JSON", { enumerable: true, get: function () { return MetaPaths_1.META_MANIFEST_JSON; } });
|
|
24
|
+
Object.defineProperty(exports, "TIMESTAMP_SUBMITTED", { enumerable: true, get: function () { return MetaPaths_1.TIMESTAMP_SUBMITTED; } });
|
|
25
|
+
Object.defineProperty(exports, "TIMESTAMP_METADATA", { enumerable: true, get: function () { return MetaPaths_1.TIMESTAMP_METADATA; } });
|
|
26
|
+
Object.defineProperty(exports, "TOKENIZED_METADATA", { enumerable: true, get: function () { return MetaPaths_1.TOKENIZED_METADATA; } });
|
|
18
27
|
// Local file header
|
|
19
28
|
exports.LOCAL_HDR = {
|
|
20
29
|
SIZE: 30, // LOC header size in bytes
|
|
@@ -165,7 +174,8 @@ exports.HDR_ID = {
|
|
|
165
174
|
x509PKCS7RL: 0x0019, // X.509 Certificate Revocation List (PKCS#7)
|
|
166
175
|
IBM1: 0x0065, // IBM S/390 (Z390) - Attribute
|
|
167
176
|
IBM2: 0x0066, // IBM S/390 (Z390) - Attribute
|
|
168
|
-
SHA256: 0x014E, //
|
|
177
|
+
SHA256: 0x014E, // NeoZip Extra Field: 32-byte SHA-256 of uncompressed payload (APPNOTE §5)
|
|
178
|
+
ORIGIN: 0x014F, // ZipWiki origin locator (URI, size, mtime, CRC-32 or SHA-256)
|
|
169
179
|
NEO_CRYPTO: 0x024E, // NeoEncrypt metadata (see docs/NEO_CRYPTO_FORMAT.md); LE on wire: 4E 02
|
|
170
180
|
POSZIP: 0x4690, // POSZIP 4690
|
|
171
181
|
UNV_TIME: 0x5455, // Universal Time (UT) (32-bit) 5 data bytes
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Headers.js","sourceRoot":"","sources":["../../../src/core/constants/Headers.ts"],"names":[],"mappings":";AAAA,yCAAyC;AACzC,aAAa;AACb,yDAAyD;AACzD,yCAAyC;AACzC,4BAA4B;;;AAEf,QAAA,iBAAiB,GAAG,YAAY,CAAC;AACjC,QAAA,mBAAmB,GAAG,YAAY,CAAC;AACnC,QAAA,qBAAqB,GAAG,YAAY,CAAC;AACrC,QAAA,+BAA+B,GAAG,YAAY,CAAC;AAC/C,QAAA,2BAA2B,GAAG,YAAY,CAAC;AAC3C,QAAA,eAAe,GAAG,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"Headers.js","sourceRoot":"","sources":["../../../src/core/constants/Headers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* NeoZip reserved META-INF paths and ASCII case-insensitive discovery.
|
|
3
|
+
* Matches NEOZIP_APPNOTE.md §2.3: writers emit canonical spellings; readers fold case.
|
|
4
|
+
*/
|
|
5
|
+
/** Canonical writers MUST emit these spellings. */
|
|
6
|
+
export declare const META_TOKEN_NZIP = "META-INF/TOKEN.NZIP";
|
|
7
|
+
export declare const META_TOKEN_NZIP_LEGACY = "META-INF/NZIP.TOKEN";
|
|
8
|
+
export declare const META_TS_SUBMIT_NZIP = "META-INF/TS-SUBMIT.NZIP";
|
|
9
|
+
export declare const META_TIMESTAMP_NZIP = "META-INF/TIMESTAMP.NZIP";
|
|
10
|
+
export declare const META_TS_SUBMIT_OTS = "META-INF/TS-SUBMIT.OTS";
|
|
11
|
+
export declare const META_TIMESTAMP_OTS = "META-INF/TIMESTAMP.OTS";
|
|
12
|
+
export declare const META_MANIFEST_JSON = "META-INF/manifest.json";
|
|
13
|
+
/** @deprecated Prefer META_TS_SUBMIT_OTS — kept for existing imports. */
|
|
14
|
+
export declare const TIMESTAMP_SUBMITTED = "META-INF/TS-SUBMIT.OTS";
|
|
15
|
+
/** @deprecated Prefer META_TIMESTAMP_OTS — kept for existing imports. */
|
|
16
|
+
export declare const TIMESTAMP_METADATA = "META-INF/TIMESTAMP.OTS";
|
|
17
|
+
/** @deprecated Prefer META_TOKEN_NZIP — kept for existing imports (canonical TOKEN.NZIP). */
|
|
18
|
+
export declare const TOKENIZED_METADATA = "META-INF/TOKEN.NZIP";
|
|
19
|
+
export type ZipEntryLikeFilename = {
|
|
20
|
+
filename?: string;
|
|
21
|
+
};
|
|
22
|
+
/** ASCII case-insensitive path compare (APPNOTE §2.3). */
|
|
23
|
+
export declare function asciiPathEqualsIgnoreCase(a: string, b: string): boolean;
|
|
24
|
+
/** True when path is under META-INF/ (ASCII case-insensitive). */
|
|
25
|
+
export declare function isMetaInfPath(filename: string): boolean;
|
|
26
|
+
/** True when filename is a reserved NeoZip meta path (any casing). */
|
|
27
|
+
export declare function isReservedMetaPath(filename: string): boolean;
|
|
28
|
+
/**
|
|
29
|
+
* True for any META-INF/** entry (integrity merkle leaves exclude these per APPNOTE §6.2).
|
|
30
|
+
*/
|
|
31
|
+
export declare function isMetadataFile(filename: string): boolean;
|
|
32
|
+
/**
|
|
33
|
+
* Find a reserved meta entry among ZIP directory entries.
|
|
34
|
+
* Prefers an exact canonical match, then ASCII case-insensitive match.
|
|
35
|
+
* When multiple preferred names are given, earlier names win.
|
|
36
|
+
*/
|
|
37
|
+
export declare function findReservedMetaEntry<T extends ZipEntryLikeFilename>(entries: T[], preferredCanonicalNames: string | readonly string[]): T | null;
|
|
38
|
+
//# sourceMappingURL=MetaPaths.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MetaPaths.d.ts","sourceRoot":"","sources":["../../../src/core/constants/MetaPaths.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,mDAAmD;AACnD,eAAO,MAAM,eAAe,wBAAwB,CAAC;AACrD,eAAO,MAAM,sBAAsB,wBAAwB,CAAC;AAC5D,eAAO,MAAM,mBAAmB,4BAA4B,CAAC;AAC7D,eAAO,MAAM,mBAAmB,4BAA4B,CAAC;AAC7D,eAAO,MAAM,kBAAkB,2BAA2B,CAAC;AAC3D,eAAO,MAAM,kBAAkB,2BAA2B,CAAC;AAC3D,eAAO,MAAM,kBAAkB,2BAA2B,CAAC;AAE3D,yEAAyE;AACzE,eAAO,MAAM,mBAAmB,2BAAqB,CAAC;AACtD,yEAAyE;AACzE,eAAO,MAAM,kBAAkB,2BAAqB,CAAC;AACrD,6FAA6F;AAC7F,eAAO,MAAM,kBAAkB,wBAAkB,CAAC;AAYlD,MAAM,MAAM,oBAAoB,GAAG;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AAEzD,0DAA0D;AAC1D,wBAAgB,yBAAyB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,OAAO,CAKvE;AAED,kEAAkE;AAClE,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEvD;AAED,sEAAsE;AACtE,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAG5D;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAExD;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,CAAC,SAAS,oBAAoB,EAClE,OAAO,EAAE,CAAC,EAAE,EACZ,uBAAuB,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,GAClD,CAAC,GAAG,IAAI,CAkBV"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* NeoZip reserved META-INF paths and ASCII case-insensitive discovery.
|
|
4
|
+
* Matches NEOZIP_APPNOTE.md §2.3: writers emit canonical spellings; readers fold case.
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.TOKENIZED_METADATA = exports.TIMESTAMP_METADATA = exports.TIMESTAMP_SUBMITTED = exports.META_MANIFEST_JSON = exports.META_TIMESTAMP_OTS = exports.META_TS_SUBMIT_OTS = exports.META_TIMESTAMP_NZIP = exports.META_TS_SUBMIT_NZIP = exports.META_TOKEN_NZIP_LEGACY = exports.META_TOKEN_NZIP = void 0;
|
|
8
|
+
exports.asciiPathEqualsIgnoreCase = asciiPathEqualsIgnoreCase;
|
|
9
|
+
exports.isMetaInfPath = isMetaInfPath;
|
|
10
|
+
exports.isReservedMetaPath = isReservedMetaPath;
|
|
11
|
+
exports.isMetadataFile = isMetadataFile;
|
|
12
|
+
exports.findReservedMetaEntry = findReservedMetaEntry;
|
|
13
|
+
/** Canonical writers MUST emit these spellings. */
|
|
14
|
+
exports.META_TOKEN_NZIP = 'META-INF/TOKEN.NZIP';
|
|
15
|
+
exports.META_TOKEN_NZIP_LEGACY = 'META-INF/NZIP.TOKEN';
|
|
16
|
+
exports.META_TS_SUBMIT_NZIP = 'META-INF/TS-SUBMIT.NZIP';
|
|
17
|
+
exports.META_TIMESTAMP_NZIP = 'META-INF/TIMESTAMP.NZIP';
|
|
18
|
+
exports.META_TS_SUBMIT_OTS = 'META-INF/TS-SUBMIT.OTS';
|
|
19
|
+
exports.META_TIMESTAMP_OTS = 'META-INF/TIMESTAMP.OTS';
|
|
20
|
+
exports.META_MANIFEST_JSON = 'META-INF/manifest.json';
|
|
21
|
+
/** @deprecated Prefer META_TS_SUBMIT_OTS — kept for existing imports. */
|
|
22
|
+
exports.TIMESTAMP_SUBMITTED = exports.META_TS_SUBMIT_OTS;
|
|
23
|
+
/** @deprecated Prefer META_TIMESTAMP_OTS — kept for existing imports. */
|
|
24
|
+
exports.TIMESTAMP_METADATA = exports.META_TIMESTAMP_OTS;
|
|
25
|
+
/** @deprecated Prefer META_TOKEN_NZIP — kept for existing imports (canonical TOKEN.NZIP). */
|
|
26
|
+
exports.TOKENIZED_METADATA = exports.META_TOKEN_NZIP;
|
|
27
|
+
const RESERVED_CANONICAL = [
|
|
28
|
+
exports.META_TOKEN_NZIP,
|
|
29
|
+
exports.META_TOKEN_NZIP_LEGACY,
|
|
30
|
+
exports.META_TS_SUBMIT_NZIP,
|
|
31
|
+
exports.META_TIMESTAMP_NZIP,
|
|
32
|
+
exports.META_TS_SUBMIT_OTS,
|
|
33
|
+
exports.META_TIMESTAMP_OTS,
|
|
34
|
+
exports.META_MANIFEST_JSON,
|
|
35
|
+
];
|
|
36
|
+
/** ASCII case-insensitive path compare (APPNOTE §2.3). */
|
|
37
|
+
function asciiPathEqualsIgnoreCase(a, b) {
|
|
38
|
+
if (a.length !== b.length) {
|
|
39
|
+
// Still allow length mismatch only via toLowerCase for UTF-8 safety on ASCII paths
|
|
40
|
+
}
|
|
41
|
+
return a.toLowerCase() === b.toLowerCase();
|
|
42
|
+
}
|
|
43
|
+
/** True when path is under META-INF/ (ASCII case-insensitive). */
|
|
44
|
+
function isMetaInfPath(filename) {
|
|
45
|
+
return filename.toLowerCase().startsWith('meta-inf/');
|
|
46
|
+
}
|
|
47
|
+
/** True when filename is a reserved NeoZip meta path (any casing). */
|
|
48
|
+
function isReservedMetaPath(filename) {
|
|
49
|
+
const lower = filename.toLowerCase();
|
|
50
|
+
return RESERVED_CANONICAL.some((c) => c.toLowerCase() === lower);
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* True for any META-INF/** entry (integrity merkle leaves exclude these per APPNOTE §6.2).
|
|
54
|
+
*/
|
|
55
|
+
function isMetadataFile(filename) {
|
|
56
|
+
return isMetaInfPath(filename);
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Find a reserved meta entry among ZIP directory entries.
|
|
60
|
+
* Prefers an exact canonical match, then ASCII case-insensitive match.
|
|
61
|
+
* When multiple preferred names are given, earlier names win.
|
|
62
|
+
*/
|
|
63
|
+
function findReservedMetaEntry(entries, preferredCanonicalNames) {
|
|
64
|
+
const preferred = Array.isArray(preferredCanonicalNames)
|
|
65
|
+
? preferredCanonicalNames
|
|
66
|
+
: [preferredCanonicalNames];
|
|
67
|
+
for (const name of preferred) {
|
|
68
|
+
const exact = entries.find((e) => e.filename === name);
|
|
69
|
+
if (exact)
|
|
70
|
+
return exact;
|
|
71
|
+
}
|
|
72
|
+
for (const name of preferred) {
|
|
73
|
+
const folded = entries.find((e) => typeof e.filename === 'string' && asciiPathEqualsIgnoreCase(e.filename, name));
|
|
74
|
+
if (folded)
|
|
75
|
+
return folded;
|
|
76
|
+
}
|
|
77
|
+
return null;
|
|
78
|
+
}
|
|
79
|
+
//# sourceMappingURL=MetaPaths.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MetaPaths.js","sourceRoot":"","sources":["../../../src/core/constants/MetaPaths.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AA+BH,8DAKC;AAGD,sCAEC;AAGD,gDAGC;AAKD,wCAEC;AAOD,sDAqBC;AAhFD,mDAAmD;AACtC,QAAA,eAAe,GAAG,qBAAqB,CAAC;AACxC,QAAA,sBAAsB,GAAG,qBAAqB,CAAC;AAC/C,QAAA,mBAAmB,GAAG,yBAAyB,CAAC;AAChD,QAAA,mBAAmB,GAAG,yBAAyB,CAAC;AAChD,QAAA,kBAAkB,GAAG,wBAAwB,CAAC;AAC9C,QAAA,kBAAkB,GAAG,wBAAwB,CAAC;AAC9C,QAAA,kBAAkB,GAAG,wBAAwB,CAAC;AAE3D,yEAAyE;AAC5D,QAAA,mBAAmB,GAAG,0BAAkB,CAAC;AACtD,yEAAyE;AAC5D,QAAA,kBAAkB,GAAG,0BAAkB,CAAC;AACrD,6FAA6F;AAChF,QAAA,kBAAkB,GAAG,uBAAe,CAAC;AAElD,MAAM,kBAAkB,GAAG;IACzB,uBAAe;IACf,8BAAsB;IACtB,2BAAmB;IACnB,2BAAmB;IACnB,0BAAkB;IAClB,0BAAkB;IAClB,0BAAkB;CACV,CAAC;AAIX,0DAA0D;AAC1D,SAAgB,yBAAyB,CAAC,CAAS,EAAE,CAAS;IAC5D,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC;QAC1B,mFAAmF;IACrF,CAAC;IACD,OAAO,CAAC,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;AAC7C,CAAC;AAED,kEAAkE;AAClE,SAAgB,aAAa,CAAC,QAAgB;IAC5C,OAAO,QAAQ,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;AACxD,CAAC;AAED,sEAAsE;AACtE,SAAgB,kBAAkB,CAAC,QAAgB;IACjD,MAAM,KAAK,GAAG,QAAQ,CAAC,WAAW,EAAE,CAAC;IACrC,OAAO,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,KAAK,KAAK,CAAC,CAAC;AACnE,CAAC;AAED;;GAEG;AACH,SAAgB,cAAc,CAAC,QAAgB;IAC7C,OAAO,aAAa,CAAC,QAAQ,CAAC,CAAC;AACjC,CAAC;AAED;;;;GAIG;AACH,SAAgB,qBAAqB,CACnC,OAAY,EACZ,uBAAmD;IAEnD,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,uBAAuB,CAAC;QACtD,CAAC,CAAC,uBAAuB;QACzB,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC;IAE9B,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;QAC7B,MAAM,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC;QACvD,IAAI,KAAK;YAAE,OAAO,KAAK,CAAC;IAC1B,CAAC;IAED,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;QAC7B,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CACzB,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,CAAC,QAAQ,KAAK,QAAQ,IAAI,yBAAyB,CAAC,CAAC,CAAC,QAAQ,EAAE,IAAI,CAAC,CACrF,CAAC;QACF,IAAI,MAAM;YAAE,OAAO,MAAM,CAAC;IAC5B,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC"}
|
package/dist/core/index.d.ts
CHANGED
|
@@ -8,6 +8,7 @@ export * from './ZipEntry';
|
|
|
8
8
|
export { ZipCompress } from './ZipCompress';
|
|
9
9
|
export type { CompressOptions, CreateZipOptions } from './ZipCompress';
|
|
10
10
|
export type { DecompressionResult, DecompressionOptions } from './ZipDecompress';
|
|
11
|
+
export { inflateZipPayload } from './inflateZipPayload';
|
|
11
12
|
export { ZipCopy } from './ZipCopy';
|
|
12
13
|
export type { CopyOptions, CopyResult, CopyEntriesOnlyResult, FinalizeZipOptions, } from './ZipCopy';
|
|
13
14
|
export default Zipkit;
|
|
@@ -15,11 +16,15 @@ export { default as HashCalculator, HashCalculator as HashCalculatorClass } from
|
|
|
15
16
|
export * from './components/Util';
|
|
16
17
|
export * from './components/Support';
|
|
17
18
|
export { ProgressTracker } from './components/ProgressTracker';
|
|
19
|
+
export * from './merkle/MerkleRoot';
|
|
20
|
+
export * from './zip64/Zip64';
|
|
21
|
+
export * from './origin/OriginExtra';
|
|
18
22
|
export { EncryptionManager } from './encryption/Manager';
|
|
19
23
|
export { ZipCrypto, crc32, crc32update, sha256 } from './encryption/ZipCrypto';
|
|
20
24
|
export type { EncryptionMethod, EncryptionOptions, EncryptionResult, DecryptionResult, EncryptionProvider } from './encryption/types';
|
|
21
25
|
export * from '../types';
|
|
22
26
|
export * from './constants/Headers';
|
|
27
|
+
export { META_TOKEN_NZIP, META_TOKEN_NZIP_LEGACY, META_TS_SUBMIT_NZIP, META_TIMESTAMP_NZIP, META_TS_SUBMIT_OTS, META_TIMESTAMP_OTS, META_MANIFEST_JSON, asciiPathEqualsIgnoreCase, isMetaInfPath, isReservedMetaPath, findReservedMetaEntry, } from './constants/MetaPaths';
|
|
23
28
|
export * from './constants/Errors';
|
|
24
29
|
export * from './version';
|
|
25
30
|
export { Logger, configureLoggerFromEnvironment } from './components/Logger';
|
package/dist/core/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,MAAM,MAAM,UAAU,CAAC;AAC9B,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,YAAY,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACvE,YAAY,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACjF,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,YAAY,EACV,WAAW,EACX,UAAU,EACV,qBAAqB,EACrB,kBAAkB,GACnB,MAAM,WAAW,CAAC;AACnB,eAAe,MAAM,CAAC;AAGtB,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,cAAc,IAAI,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAC/G,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,MAAM,MAAM,UAAU,CAAC;AAC9B,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,YAAY,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACvE,YAAY,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACjF,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,YAAY,EACV,WAAW,EACX,UAAU,EACV,qBAAqB,EACrB,kBAAkB,GACnB,MAAM,WAAW,CAAC;AACnB,eAAe,MAAM,CAAC;AAGtB,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,cAAc,IAAI,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAC/G,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,cAAc,qBAAqB,CAAC;AACpC,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC;AAGrC,OAAO,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAC/E,YAAY,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAGtI,cAAc,UAAU,CAAC;AACzB,cAAc,qBAAqB,CAAC;AACpC,OAAO,EACL,eAAe,EACf,sBAAsB,EACtB,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,EAClB,yBAAyB,EACzB,aAAa,EACb,kBAAkB,EAClB,qBAAqB,GACtB,MAAM,uBAAuB,CAAC;AAC/B,cAAc,oBAAoB,CAAC;AACnC,cAAc,WAAW,CAAC;AAG1B,OAAO,EAAE,MAAM,EAAE,8BAA8B,EAAE,MAAM,qBAAqB,CAAC;AAC7E,YAAY,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC"}
|
package/dist/core/index.js
CHANGED
|
@@ -21,13 +21,15 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
21
21
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
22
22
|
};
|
|
23
23
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
24
|
-
exports.configureLoggerFromEnvironment = exports.Logger = exports.sha256 = exports.crc32update = exports.crc32 = exports.ZipCrypto = exports.EncryptionManager = exports.ProgressTracker = exports.HashCalculatorClass = exports.HashCalculator = exports.ZipCopy = exports.ZipCompress = void 0;
|
|
24
|
+
exports.configureLoggerFromEnvironment = exports.Logger = exports.findReservedMetaEntry = exports.isReservedMetaPath = exports.isMetaInfPath = exports.asciiPathEqualsIgnoreCase = exports.META_MANIFEST_JSON = exports.META_TIMESTAMP_OTS = exports.META_TS_SUBMIT_OTS = exports.META_TIMESTAMP_NZIP = exports.META_TS_SUBMIT_NZIP = exports.META_TOKEN_NZIP_LEGACY = exports.META_TOKEN_NZIP = exports.sha256 = exports.crc32update = exports.crc32 = exports.ZipCrypto = exports.EncryptionManager = exports.ProgressTracker = exports.HashCalculatorClass = exports.HashCalculator = exports.ZipCopy = exports.inflateZipPayload = exports.ZipCompress = void 0;
|
|
25
25
|
// Core ZIP classes
|
|
26
26
|
const Zipkit_1 = __importDefault(require("./Zipkit"));
|
|
27
27
|
__exportStar(require("./Zipkit"), exports);
|
|
28
28
|
__exportStar(require("./ZipEntry"), exports);
|
|
29
29
|
var ZipCompress_1 = require("./ZipCompress");
|
|
30
30
|
Object.defineProperty(exports, "ZipCompress", { enumerable: true, get: function () { return ZipCompress_1.ZipCompress; } });
|
|
31
|
+
var inflateZipPayload_1 = require("./inflateZipPayload");
|
|
32
|
+
Object.defineProperty(exports, "inflateZipPayload", { enumerable: true, get: function () { return inflateZipPayload_1.inflateZipPayload; } });
|
|
31
33
|
var ZipCopy_1 = require("./ZipCopy");
|
|
32
34
|
Object.defineProperty(exports, "ZipCopy", { enumerable: true, get: function () { return ZipCopy_1.ZipCopy; } });
|
|
33
35
|
exports.default = Zipkit_1.default;
|
|
@@ -39,6 +41,9 @@ __exportStar(require("./components/Util"), exports);
|
|
|
39
41
|
__exportStar(require("./components/Support"), exports);
|
|
40
42
|
var ProgressTracker_1 = require("./components/ProgressTracker");
|
|
41
43
|
Object.defineProperty(exports, "ProgressTracker", { enumerable: true, get: function () { return ProgressTracker_1.ProgressTracker; } });
|
|
44
|
+
__exportStar(require("./merkle/MerkleRoot"), exports);
|
|
45
|
+
__exportStar(require("./zip64/Zip64"), exports);
|
|
46
|
+
__exportStar(require("./origin/OriginExtra"), exports);
|
|
42
47
|
// Encryption functionality
|
|
43
48
|
var Manager_1 = require("./encryption/Manager");
|
|
44
49
|
Object.defineProperty(exports, "EncryptionManager", { enumerable: true, get: function () { return Manager_1.EncryptionManager; } });
|
|
@@ -50,6 +55,18 @@ Object.defineProperty(exports, "sha256", { enumerable: true, get: function () {
|
|
|
50
55
|
// Types and constants
|
|
51
56
|
__exportStar(require("../types"), exports);
|
|
52
57
|
__exportStar(require("./constants/Headers"), exports);
|
|
58
|
+
var MetaPaths_1 = require("./constants/MetaPaths");
|
|
59
|
+
Object.defineProperty(exports, "META_TOKEN_NZIP", { enumerable: true, get: function () { return MetaPaths_1.META_TOKEN_NZIP; } });
|
|
60
|
+
Object.defineProperty(exports, "META_TOKEN_NZIP_LEGACY", { enumerable: true, get: function () { return MetaPaths_1.META_TOKEN_NZIP_LEGACY; } });
|
|
61
|
+
Object.defineProperty(exports, "META_TS_SUBMIT_NZIP", { enumerable: true, get: function () { return MetaPaths_1.META_TS_SUBMIT_NZIP; } });
|
|
62
|
+
Object.defineProperty(exports, "META_TIMESTAMP_NZIP", { enumerable: true, get: function () { return MetaPaths_1.META_TIMESTAMP_NZIP; } });
|
|
63
|
+
Object.defineProperty(exports, "META_TS_SUBMIT_OTS", { enumerable: true, get: function () { return MetaPaths_1.META_TS_SUBMIT_OTS; } });
|
|
64
|
+
Object.defineProperty(exports, "META_TIMESTAMP_OTS", { enumerable: true, get: function () { return MetaPaths_1.META_TIMESTAMP_OTS; } });
|
|
65
|
+
Object.defineProperty(exports, "META_MANIFEST_JSON", { enumerable: true, get: function () { return MetaPaths_1.META_MANIFEST_JSON; } });
|
|
66
|
+
Object.defineProperty(exports, "asciiPathEqualsIgnoreCase", { enumerable: true, get: function () { return MetaPaths_1.asciiPathEqualsIgnoreCase; } });
|
|
67
|
+
Object.defineProperty(exports, "isMetaInfPath", { enumerable: true, get: function () { return MetaPaths_1.isMetaInfPath; } });
|
|
68
|
+
Object.defineProperty(exports, "isReservedMetaPath", { enumerable: true, get: function () { return MetaPaths_1.isReservedMetaPath; } });
|
|
69
|
+
Object.defineProperty(exports, "findReservedMetaEntry", { enumerable: true, get: function () { return MetaPaths_1.findReservedMetaEntry; } });
|
|
53
70
|
__exportStar(require("./constants/Errors"), exports);
|
|
54
71
|
__exportStar(require("./version"), exports);
|
|
55
72
|
// Logger utility
|
package/dist/core/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;;;;;;;;AAEH,mBAAmB;AACnB,sDAA8B;AAC9B,2CAAyB;AACzB,6CAA2B;AAC3B,6CAA4C;AAAnC,0GAAA,WAAW,OAAA;AAGpB,qCAAoC;AAA3B,kGAAA,OAAO,OAAA;AAOhB,kBAAe,gBAAM,CAAC;AAEtB,oBAAoB;AACpB,8DAA+G;AAAtG,iIAAA,OAAO,OAAkB;AAAE,qHAAA,cAAc,OAAuB;AACzE,oDAAkC;AAClC,uDAAqC;AACrC,gEAA+D;AAAtD,kHAAA,eAAe,OAAA;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;;;;;;;;;;;;;;;;AAEH,mBAAmB;AACnB,sDAA8B;AAC9B,2CAAyB;AACzB,6CAA2B;AAC3B,6CAA4C;AAAnC,0GAAA,WAAW,OAAA;AAGpB,yDAAwD;AAA/C,sHAAA,iBAAiB,OAAA;AAC1B,qCAAoC;AAA3B,kGAAA,OAAO,OAAA;AAOhB,kBAAe,gBAAM,CAAC;AAEtB,oBAAoB;AACpB,8DAA+G;AAAtG,iIAAA,OAAO,OAAkB;AAAE,qHAAA,cAAc,OAAuB;AACzE,oDAAkC;AAClC,uDAAqC;AACrC,gEAA+D;AAAtD,kHAAA,eAAe,OAAA;AACxB,sDAAoC;AACpC,gDAA8B;AAC9B,uDAAqC;AAErC,2BAA2B;AAC3B,gDAAyD;AAAhD,4GAAA,iBAAiB,OAAA;AAC1B,oDAA+E;AAAtE,sGAAA,SAAS,OAAA;AAAE,kGAAA,KAAK,OAAA;AAAE,wGAAA,WAAW,OAAA;AAAE,mGAAA,MAAM,OAAA;AAG9C,sBAAsB;AACtB,2CAAyB;AACzB,sDAAoC;AACpC,mDAY+B;AAX7B,4GAAA,eAAe,OAAA;AACf,mHAAA,sBAAsB,OAAA;AACtB,gHAAA,mBAAmB,OAAA;AACnB,gHAAA,mBAAmB,OAAA;AACnB,+GAAA,kBAAkB,OAAA;AAClB,+GAAA,kBAAkB,OAAA;AAClB,+GAAA,kBAAkB,OAAA;AAClB,sHAAA,yBAAyB,OAAA;AACzB,0GAAA,aAAa,OAAA;AACb,+GAAA,kBAAkB,OAAA;AAClB,kHAAA,qBAAqB,OAAA;AAEvB,qDAAmC;AACnC,4CAA0B;AAE1B,iBAAiB;AACjB,8CAA6E;AAApE,gGAAA,MAAM,OAAA;AAAE,wHAAA,8BAA8B,OAAA"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Inflate one ZIP member payload (store, deflate, zstd) from an in-memory buffer.
|
|
3
|
+
* Browser bundles alias ZstdNode to the CompressionStream codec.
|
|
4
|
+
*/
|
|
5
|
+
export declare function inflateZipPayload(method: number, compressed: Uint8Array | ArrayBuffer): Promise<Uint8Array>;
|
|
6
|
+
//# sourceMappingURL=inflateZipPayload.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inflateZipPayload.d.ts","sourceRoot":"","sources":["../../src/core/inflateZipPayload.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,UAAU,GAAG,WAAW,GACnC,OAAO,CAAC,UAAU,CAAC,CAerB"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Inflate one ZIP member payload (store, deflate, zstd) from an in-memory buffer.
|
|
4
|
+
* Browser bundles alias ZstdNode to the CompressionStream codec.
|
|
5
|
+
*/
|
|
6
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
7
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
8
|
+
};
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.inflateZipPayload = inflateZipPayload;
|
|
11
|
+
const pako_1 = __importDefault(require("pako"));
|
|
12
|
+
const ZstdNode_1 = require("../node/ZstdNode");
|
|
13
|
+
async function inflateZipPayload(method, compressed) {
|
|
14
|
+
const bytes = compressed instanceof ArrayBuffer ? new Uint8Array(compressed) : compressed;
|
|
15
|
+
if (method === 0) {
|
|
16
|
+
return bytes.slice();
|
|
17
|
+
}
|
|
18
|
+
if (method === 8) {
|
|
19
|
+
const out = pako_1.default.inflateRaw(bytes);
|
|
20
|
+
return out instanceof Uint8Array ? out : new Uint8Array(out);
|
|
21
|
+
}
|
|
22
|
+
if (method === 93) {
|
|
23
|
+
const out = await (0, ZstdNode_1.decompress)(bytes);
|
|
24
|
+
return new Uint8Array(out.buffer, out.byteOffset, out.byteLength);
|
|
25
|
+
}
|
|
26
|
+
throw new Error(`unsupported compression method ${method}`);
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=inflateZipPayload.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inflateZipPayload.js","sourceRoot":"","sources":["../../src/core/inflateZipPayload.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;;;AAKH,8CAkBC;AArBD,gDAAwB;AACxB,+CAA8C;AAEvC,KAAK,UAAU,iBAAiB,CACrC,MAAc,EACd,UAAoC;IAEpC,MAAM,KAAK,GACT,UAAU,YAAY,WAAW,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;IAC9E,IAAI,MAAM,KAAK,CAAC,EAAE,CAAC;QACjB,OAAO,KAAK,CAAC,KAAK,EAAE,CAAC;IACvB,CAAC;IACD,IAAI,MAAM,KAAK,CAAC,EAAE,CAAC;QACjB,MAAM,GAAG,GAAG,cAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QACnC,OAAO,GAAG,YAAY,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC;IAC/D,CAAC;IACD,IAAI,MAAM,KAAK,EAAE,EAAE,CAAC;QAClB,MAAM,GAAG,GAAG,MAAM,IAAA,qBAAU,EAAC,KAAK,CAAC,CAAC;QACpC,OAAO,IAAI,UAAU,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,UAAU,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC;IACpE,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,kCAAkC,MAAM,EAAE,CAAC,CAAC;AAC9D,CAAC"}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
/** Merkle algorithms defined in NEOZIP_APPNOTE.md §6. */
|
|
2
|
+
export type MerkleAlgorithm = 'v0' | 'v1';
|
|
3
|
+
export interface MerkleContentEntry {
|
|
4
|
+
/** Central-directory path (UTF-8 string as stored or as known to the writer). */
|
|
5
|
+
path: string;
|
|
6
|
+
/**
|
|
7
|
+
* Uncompressed payload bytes (same bytes hashed into Extra Field 0x014E).
|
|
8
|
+
* Required for **v1** leaves when `merkleLeafV1` is absent. Optional for **v0** when `contentSha256` is set.
|
|
9
|
+
*/
|
|
10
|
+
content?: Buffer | Uint8Array;
|
|
11
|
+
/**
|
|
12
|
+
* Bare SHA-256 of uncompressed payload (= Extra Field 0x014E), hex or 32-byte Buffer.
|
|
13
|
+
* Used as v0 leaf; for v1 this alone is **not** a leaf (see APPNOTE §6.3).
|
|
14
|
+
*/
|
|
15
|
+
contentSha256?: string | Buffer;
|
|
16
|
+
/**
|
|
17
|
+
* Precomputed APPNOTE §6.3 v1 leaf: SHA-256(0x00 ‖ uncompressed_bytes), hex or 32-byte Buffer.
|
|
18
|
+
* Produced in the same streaming pass as `contentSha256` (create/extract via HashCalculator).
|
|
19
|
+
* Preferred for v1 when present — no second content read.
|
|
20
|
+
*/
|
|
21
|
+
merkleLeafV1?: string | Buffer;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Normalize a ZIP entry path for v1 leaf ordering (APPNOTE §6.3):
|
|
25
|
+
* POSIX separators, strip leading `./` and `/`, Unicode NFC, UTF-8 byte order when compared.
|
|
26
|
+
*/
|
|
27
|
+
export declare function normalizeMerklePath(path: string): string;
|
|
28
|
+
/** Bare content digest (= 0x014E value). */
|
|
29
|
+
export declare function contentDigest(content: Buffer | Uint8Array): Buffer;
|
|
30
|
+
/**
|
|
31
|
+
* v0 leaf: SHA-256(uncompressed bytes) — same as Extra Field 0x014E.
|
|
32
|
+
*/
|
|
33
|
+
export declare function leafHashV0(contentOrDigest: Buffer | Uint8Array, isDigest?: boolean): Buffer;
|
|
34
|
+
/**
|
|
35
|
+
* v1 leaf: SHA-256(0x00 ‖ uncompressed_bytes).
|
|
36
|
+
* Must not be confused with the bare 0x014E digest (APPNOTE §6.3).
|
|
37
|
+
*/
|
|
38
|
+
export declare function leafHashV1(content: Buffer | Uint8Array): Buffer;
|
|
39
|
+
/**
|
|
40
|
+
* Parent node hashes.
|
|
41
|
+
* v0: SHA-256(H_left ‖ H_right) — order preserved, no pair sorting.
|
|
42
|
+
* v1: SHA-256(0x01 ‖ H_left ‖ H_right).
|
|
43
|
+
*/
|
|
44
|
+
export declare function parentHash(left: Buffer, right: Buffer, algorithm: MerkleAlgorithm): Buffer;
|
|
45
|
+
/**
|
|
46
|
+
* Fold an ordered list of leaf hashes into a single root (hex lowercase).
|
|
47
|
+
* Odd-count rule:
|
|
48
|
+
* - v0: duplicate last leaf (Bitcoin-style)
|
|
49
|
+
* - v1: promote last node unhashed (RFC 6962–style)
|
|
50
|
+
*/
|
|
51
|
+
export declare function merkleRootFromLeaves(leaves: Buffer[], algorithm: MerkleAlgorithm): string | null;
|
|
52
|
+
/**
|
|
53
|
+
* Compute archive Merkle root per APPNOTE §6 from content entries
|
|
54
|
+
* (caller already excluded META-INF/** if desired).
|
|
55
|
+
*
|
|
56
|
+
* @returns lowercase hex root, or null if no usable leaves
|
|
57
|
+
*/
|
|
58
|
+
export declare function computeArchiveMerkleRoot(entries: MerkleContentEntry[], algorithm?: MerkleAlgorithm): string | null;
|
|
59
|
+
/**
|
|
60
|
+
* Build v0 root from path + bare content digests only (0x014E extras).
|
|
61
|
+
* Path order: central-directory bytes as stored (no NFC / strip).
|
|
62
|
+
*/
|
|
63
|
+
export declare function computeMerkleRootV0FromDigests(entries: Array<{
|
|
64
|
+
path: string;
|
|
65
|
+
sha256: string | Buffer;
|
|
66
|
+
}>): string | null;
|
|
67
|
+
/**
|
|
68
|
+
* Build v1 root from path + uncompressed payloads (APPNOTE §6.3).
|
|
69
|
+
* Paths are normalized before sorting.
|
|
70
|
+
*/
|
|
71
|
+
export declare function computeMerkleRootV1FromContents(entries: Array<{
|
|
72
|
+
path: string;
|
|
73
|
+
content: Buffer | Uint8Array;
|
|
74
|
+
}>): string | null;
|
|
75
|
+
/**
|
|
76
|
+
* Build v1 root from path + precomputed domain-separated leaves (APPNOTE §6.3).
|
|
77
|
+
* Prefer this after create/extract when HashCalculator produced merkleLeafV1 in one stream pass.
|
|
78
|
+
*/
|
|
79
|
+
export declare function computeMerkleRootV1FromLeaves(entries: Array<{
|
|
80
|
+
path: string;
|
|
81
|
+
merkleLeafV1: string | Buffer;
|
|
82
|
+
}>): string | null;
|
|
83
|
+
/**
|
|
84
|
+
* Verify a declared root (APPNOTE §6.4): try v1 first (when content or leaves available),
|
|
85
|
+
* then v0 digests. Returns which algorithm matched, or null on failure.
|
|
86
|
+
*
|
|
87
|
+
* When only bare 0x014E digests are available, only v0 can match APPNOTE correctly.
|
|
88
|
+
* Pass `merkleLeafV1` or content for full v1 verification without re-hashing from scratch
|
|
89
|
+
* when leaves were computed in the decompress stream.
|
|
90
|
+
*/
|
|
91
|
+
export declare function matchMerkleRoot(entries: MerkleContentEntry[], declaredRoot: string): {
|
|
92
|
+
algorithm: MerkleAlgorithm;
|
|
93
|
+
security: 'high' | 'legacy';
|
|
94
|
+
} | null;
|
|
95
|
+
declare const _default: {
|
|
96
|
+
normalizeMerklePath: typeof normalizeMerklePath;
|
|
97
|
+
contentDigest: typeof contentDigest;
|
|
98
|
+
leafHashV0: typeof leafHashV0;
|
|
99
|
+
leafHashV1: typeof leafHashV1;
|
|
100
|
+
parentHash: typeof parentHash;
|
|
101
|
+
merkleRootFromLeaves: typeof merkleRootFromLeaves;
|
|
102
|
+
computeArchiveMerkleRoot: typeof computeArchiveMerkleRoot;
|
|
103
|
+
computeMerkleRootV0FromDigests: typeof computeMerkleRootV0FromDigests;
|
|
104
|
+
computeMerkleRootV1FromContents: typeof computeMerkleRootV1FromContents;
|
|
105
|
+
computeMerkleRootV1FromLeaves: typeof computeMerkleRootV1FromLeaves;
|
|
106
|
+
matchMerkleRoot: typeof matchMerkleRoot;
|
|
107
|
+
};
|
|
108
|
+
export default _default;
|
|
109
|
+
//# sourceMappingURL=MerkleRoot.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MerkleRoot.d.ts","sourceRoot":"","sources":["../../../src/core/merkle/MerkleRoot.ts"],"names":[],"mappings":"AAQA,yDAAyD;AACzD,MAAM,MAAM,eAAe,GAAG,IAAI,GAAG,IAAI,CAAC;AAE1C,MAAM,WAAW,kBAAkB;IACjC,iFAAiF;IACjF,IAAI,EAAE,MAAM,CAAC;IACb;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,GAAG,UAAU,CAAC;IAC9B;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAChC;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CAChC;AAwBD;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAYxD;AAQD,4CAA4C;AAC5C,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,GAAG,MAAM,CAElE;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,eAAe,EAAE,MAAM,GAAG,UAAU,EAAE,QAAQ,UAAQ,GAAG,MAAM,CAGzF;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,GAAG,MAAM,CAE/D;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,eAAe,GAAG,MAAM,CAK1F;AAED;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,eAAe,GAAG,MAAM,GAAG,IAAI,CA0BhG;AAsCD;;;;;GAKG;AACH,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,kBAAkB,EAAE,EAC7B,SAAS,GAAE,eAAsB,GAChC,MAAM,GAAG,IAAI,CA0Bf;AAED;;;GAGG;AACH,wBAAgB,8BAA8B,CAC5C,OAAO,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,CAAC,GACxD,MAAM,GAAG,IAAI,CAKf;AAED;;;GAGG;AACH,wBAAgB,+BAA+B,CAC7C,OAAO,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,GAAG,UAAU,CAAA;CAAE,CAAC,GAC7D,MAAM,GAAG,IAAI,CAKf;AAED;;;GAGG;AACH,wBAAgB,6BAA6B,CAC3C,OAAO,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,CAAC,GAC9D,MAAM,GAAG,IAAI,CAKf;AAED;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAC7B,OAAO,EAAE,kBAAkB,EAAE,EAC7B,YAAY,EAAE,MAAM,GACnB;IAAE,SAAS,EAAE,eAAe,CAAC;IAAC,QAAQ,EAAE,MAAM,GAAG,QAAQ,CAAA;CAAE,GAAG,IAAI,CA6BpE;;;;;;;;;;;;;;AAED,wBAYE"}
|