neozipkit 0.8.0 → 1.0.5
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 +527 -0
- package/README.md +57 -21
- package/WHATS_NEW.md +146 -0
- 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 +28 -0
- package/dist/browser/zstd-browser-shim.d.ts.map +1 -0
- package/dist/browser/zstd-browser-shim.js +66 -0
- package/dist/browser/zstd-browser-shim.js.map +1 -0
- package/dist/browser-esm/index.js +2110 -41755
- package/dist/browser-esm/index.js.map +4 -4
- package/dist/browser-umd/index.js +2110 -41755
- package/dist/browser-umd/index.js.map +4 -4
- package/dist/browser-umd/index.min.js +3 -21
- package/dist/core/ZipCompress.d.ts +2 -7
- package/dist/core/ZipCompress.d.ts.map +1 -1
- package/dist/core/ZipCompress.js +57 -33
- package/dist/core/ZipCompress.js.map +1 -1
- package/dist/core/ZipDecompress.d.ts +1 -3
- package/dist/core/ZipDecompress.d.ts.map +1 -1
- package/dist/core/ZipDecompress.js +27 -17
- package/dist/core/ZipDecompress.js.map +1 -1
- package/dist/core/ZipEntry.d.ts +6 -0
- package/dist/core/ZipEntry.d.ts.map +1 -1
- package/dist/core/ZipEntry.js +7 -1
- 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 +106 -63
- 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 +1 -3
- package/dist/core/constants/Headers.d.ts.map +1 -1
- package/dist/core/constants/Headers.js +14 -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/encryption/AesCrypto.d.ts +55 -11
- package/dist/core/encryption/AesCrypto.d.ts.map +1 -1
- package/dist/core/encryption/AesCrypto.js +223 -68
- package/dist/core/encryption/AesCrypto.js.map +1 -1
- package/dist/core/encryption/index.d.ts +1 -1
- package/dist/core/encryption/index.d.ts.map +1 -1
- package/dist/core/encryption/index.js +3 -1
- package/dist/core/encryption/index.js.map +1 -1
- package/dist/core/index.d.ts +2 -0
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +14 -1
- package/dist/core/index.js.map +1 -1
- 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/version.js +1 -1
- package/dist/node/LegacyZstd.d.ts +67 -0
- package/dist/node/LegacyZstd.d.ts.map +1 -0
- package/dist/node/LegacyZstd.js +209 -0
- package/dist/node/LegacyZstd.js.map +1 -0
- package/dist/node/ZipCompressNode.d.ts +9 -7
- package/dist/node/ZipCompressNode.d.ts.map +1 -1
- package/dist/node/ZipCompressNode.js +105 -75
- package/dist/node/ZipCompressNode.js.map +1 -1
- package/dist/node/ZipDecompressNode.d.ts +7 -3
- package/dist/node/ZipDecompressNode.d.ts.map +1 -1
- package/dist/node/ZipDecompressNode.js +68 -56
- package/dist/node/ZipDecompressNode.js.map +1 -1
- package/dist/node/ZipkitNode.d.ts +23 -0
- package/dist/node/ZipkitNode.d.ts.map +1 -1
- package/dist/node/ZipkitNode.js +195 -41
- package/dist/node/ZipkitNode.js.map +1 -1
- package/dist/node/ZstdNode.d.ts +39 -0
- package/dist/node/ZstdNode.d.ts.map +1 -0
- package/dist/node/ZstdNode.js +171 -0
- package/dist/node/ZstdNode.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 +11 -1
- package/dist/node/index.js.map +1 -1
- package/package.json +4 -3
- package/src/browser/ZipkitBrowser.ts +4 -6
- package/src/browser/zstd-browser-shim.ts +76 -0
- package/src/core/ZipCompress.ts +71 -42
- package/src/core/ZipDecompress.ts +35 -18
- package/src/core/ZipEntry.ts +8 -1
- package/src/core/Zipkit.ts +149 -76
- package/src/core/components/HashCalculator.ts +58 -6
- package/src/core/components/Util.ts +16 -7
- package/src/core/constants/Headers.ts +14 -4
- package/src/core/constants/MetaPaths.ts +86 -0
- package/src/core/encryption/AesCrypto.ts +265 -86
- package/src/core/encryption/index.ts +1 -1
- package/src/core/index.ts +14 -0
- package/src/core/merkle/MerkleRoot.ts +312 -0
- package/src/core/version.ts +1 -1
- package/src/node/LegacyZstd.ts +270 -0
- package/src/node/ZipCompressNode.ts +127 -84
- package/src/node/ZipDecompressNode.ts +93 -67
- package/src/node/ZipkitNode.ts +230 -42
- package/src/node/ZstdNode.ts +155 -0
- package/src/node/index.ts +10 -0
- package/dist/core/ZstdManager.d.ts +0 -56
- package/dist/core/ZstdManager.d.ts.map +0 -1
- package/dist/core/ZstdManager.js +0 -144
- package/dist/core/ZstdManager.js.map +0 -1
- package/src/core/ZstdManager.ts +0 -165
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
export { findReservedMetaEntry, isReservedMetaPath, isMetaInfPath, asciiPathEqualsIgnoreCase, } from "../constants/MetaPaths";
|
|
1
2
|
export declare const DATATYPE: {
|
|
2
3
|
STRING: string;
|
|
3
4
|
BUFFER: string;
|
|
@@ -17,10 +18,8 @@ interface StreamLike {
|
|
|
17
18
|
export declare function isStream(obj: unknown): obj is StreamLike;
|
|
18
19
|
export declare function getTypeOf(input: string | Buffer | Blob | Array<any> | ArrayBuffer | Uint8Array): string;
|
|
19
20
|
/**
|
|
20
|
-
* Check if a filename is
|
|
21
|
-
*
|
|
22
|
-
* @returns True if the file is a metadata file (META-INF)
|
|
21
|
+
* Check if a filename is NeoZip metadata (any META-INF/** path).
|
|
22
|
+
* Case-insensitive on the META-INF/ prefix (NEOZIP_APPNOTE.md §2.3 / §6.2).
|
|
23
23
|
*/
|
|
24
24
|
export declare const isMetadataFile: (filename: string) => boolean;
|
|
25
|
-
export {};
|
|
26
25
|
//# sourceMappingURL=Util.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Util.d.ts","sourceRoot":"","sources":["../../../src/core/components/Util.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Util.d.ts","sourceRoot":"","sources":["../../../src/core/components/Util.ts"],"names":[],"mappings":"AAeA,OAAO,EACL,qBAAqB,EACrB,kBAAkB,EAClB,aAAa,EACb,yBAAyB,GAC1B,MAAM,wBAAwB,CAAC;AAEhC,eAAO,MAAM,QAAQ;;;;;;;;CAQpB,CAAC;AAGF,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAKrE;AAGD,eAAO,MAAM,IAAI,GAAI,GAAG,MAAM,EAAE,GAAG,MAAM,WAA0B,CAAC;AAEpE,UAAU,UAAU;IAClB,EAAE,EAAE,QAAQ,CAAC;IACb,KAAK,EAAE,QAAQ,CAAC;IAChB,MAAM,EAAE,QAAQ,CAAC;CAClB;AAED,wBAAgB,QAAQ,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,UAAU,CAMxD;AAKD,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAC,MAAM,GAAC,IAAI,GAAC,KAAK,CAAC,GAAG,CAAC,GAAC,WAAW,GAAC,UAAU,GAAG,MAAM,CA+B7F;AAED;;;GAGG;AACH,eAAO,MAAM,cAAc,GAAI,UAAU,MAAM,KAAG,OAEjD,CAAC"}
|
|
@@ -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;
|
|
@@ -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;;;;;;;;;;;;;;;;;;;;;;;;;;;CA2BlB,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,7 @@ 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)
|
|
169
178
|
NEO_CRYPTO: 0x024E, // NeoEncrypt metadata (see docs/NEO_CRYPTO_FORMAT.md); LE on wire: 4E 02
|
|
170
179
|
POSZIP: 0x4690, // POSZIP 4690
|
|
171
180
|
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"}
|
|
@@ -4,6 +4,51 @@ interface DerivedKeys {
|
|
|
4
4
|
hmacKey: Buffer;
|
|
5
5
|
passwordVerifier: Buffer;
|
|
6
6
|
}
|
|
7
|
+
/**
|
|
8
|
+
* Streaming AE-1/AE-2 encryptor for ZIP entry payloads.
|
|
9
|
+
*
|
|
10
|
+
* Usage: `header()` once → `update(compressedChunk)` repeatedly → `finish()` for HMAC.
|
|
11
|
+
*/
|
|
12
|
+
export declare class AesEncryptor {
|
|
13
|
+
private readonly keys;
|
|
14
|
+
private readonly salt;
|
|
15
|
+
private readonly ctr;
|
|
16
|
+
private readonly hmac;
|
|
17
|
+
private headerSent;
|
|
18
|
+
private finished;
|
|
19
|
+
constructor(password: string);
|
|
20
|
+
/** salt (16) + password verifier (2). Write before any ciphertext. */
|
|
21
|
+
header(): Buffer;
|
|
22
|
+
/** Encrypt one compressed-data chunk; updates HMAC over ciphertext. */
|
|
23
|
+
update(plain: Buffer): Buffer;
|
|
24
|
+
/** Final 10-byte authentication code. */
|
|
25
|
+
finish(): Buffer;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Streaming AE-1/AE-2 decryptor. `compressedSize` is the full ZIP payload length
|
|
29
|
+
* (salt + verifier + ciphertext + auth), as stored in the local/central header.
|
|
30
|
+
*/
|
|
31
|
+
export declare class AesDecryptor {
|
|
32
|
+
private readonly password;
|
|
33
|
+
private readonly cipherLen;
|
|
34
|
+
private remainingCipher;
|
|
35
|
+
private keys;
|
|
36
|
+
private ctr;
|
|
37
|
+
private hmac;
|
|
38
|
+
private headerBuf;
|
|
39
|
+
private authBuf;
|
|
40
|
+
private headerDone;
|
|
41
|
+
private verified;
|
|
42
|
+
constructor(password: string, compressedSize: number);
|
|
43
|
+
/**
|
|
44
|
+
* Feed the next archive chunk. Returns decrypted compressed bytes
|
|
45
|
+
* (empty while still reading salt/verifier).
|
|
46
|
+
*/
|
|
47
|
+
push(chunk: Buffer): Buffer;
|
|
48
|
+
/** Ensure ciphertext is complete and HMAC verified. */
|
|
49
|
+
end(): void;
|
|
50
|
+
private tryVerify;
|
|
51
|
+
}
|
|
7
52
|
/**
|
|
8
53
|
* WinZip AES-256 encryption/decryption for ZIP files.
|
|
9
54
|
*
|
|
@@ -16,6 +61,13 @@ export declare class AesCrypto {
|
|
|
16
61
|
* using PBKDF2 with HMAC-SHA1.
|
|
17
62
|
*/
|
|
18
63
|
static deriveKeys(password: string | Buffer, salt: Buffer): DerivedKeys;
|
|
64
|
+
/** Create a streaming AE-1/AE-2 encryptor. */
|
|
65
|
+
static createEncryptor(password: string): AesEncryptor;
|
|
66
|
+
/**
|
|
67
|
+
* Create a streaming AE-1/AE-2 decryptor.
|
|
68
|
+
* @param compressedSize Full payload size including salt, verifier, and auth code.
|
|
69
|
+
*/
|
|
70
|
+
static createDecryptor(password: string, compressedSize: number): AesDecryptor;
|
|
19
71
|
/**
|
|
20
72
|
* Encrypt compressed data using WinZip AES-256.
|
|
21
73
|
*
|
|
@@ -32,17 +84,10 @@ export declare class AesCrypto {
|
|
|
32
84
|
*/
|
|
33
85
|
static decryptBuffer(entry: ZipEntry, fullPayload: Buffer, password: string): Buffer;
|
|
34
86
|
/**
|
|
35
|
-
*
|
|
36
|
-
*
|
|
37
|
-
* WinZip uses a counter that starts at 1 and increments in little-endian byte order.
|
|
38
|
-
* Node's built-in aes-256-ctr uses big-endian counter increment, so we process
|
|
39
|
-
* block-by-block with an explicit LE counter to match the WinZip format.
|
|
40
|
-
*/
|
|
41
|
-
private static aesCtrProcess;
|
|
42
|
-
/**
|
|
43
|
-
* Increment a 16-byte counter in little-endian order.
|
|
87
|
+
* Decrypt an async chunk stream (Node extract path).
|
|
88
|
+
* Yields decrypted compressed chunks; verifies HMAC when the stream ends.
|
|
44
89
|
*/
|
|
45
|
-
|
|
90
|
+
static decryptStream(password: string, compressedSize: number, encryptedStream: AsyncIterable<Buffer>): AsyncGenerator<Buffer>;
|
|
46
91
|
/**
|
|
47
92
|
* Build the WinZip AES extra data field (0x9901).
|
|
48
93
|
*
|
|
@@ -55,7 +100,6 @@ export declare class AesCrypto {
|
|
|
55
100
|
* Parse the AES extra data field (0x9901) from a buffer.
|
|
56
101
|
*
|
|
57
102
|
* @param data - 7-byte data portion of the extra field (without header ID and size)
|
|
58
|
-
* @returns Parsed AES extra field values
|
|
59
103
|
*/
|
|
60
104
|
static parseAesExtraField(data: Buffer): {
|
|
61
105
|
vendorVersion: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AesCrypto.d.ts","sourceRoot":"","sources":["../../../src/core/encryption/AesCrypto.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"AesCrypto.d.ts","sourceRoot":"","sources":["../../../src/core/encryption/AesCrypto.ts"],"names":[],"mappings":"AAmBA,OAAO,QAAQ,MAAM,aAAa,CAAC;AAenC,UAAU,WAAW;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAmDD;;;;GAIG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAc;IACnC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAS;IAC9B,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAe;IACnC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAc;IACnC,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,QAAQ,CAAS;gBAEb,QAAQ,EAAE,MAAM;IAO5B,sEAAsE;IACtE,MAAM,IAAI,MAAM;IAQhB,uEAAuE;IACvE,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAe7B,yCAAyC;IACzC,MAAM,IAAI,MAAM;CAUjB;AAED;;;GAGG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAS;IAClC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,IAAI,CAA4B;IACxC,OAAO,CAAC,GAAG,CAA6B;IACxC,OAAO,CAAC,IAAI,CAA4B;IACxC,OAAO,CAAC,SAAS,CAAmB;IACpC,OAAO,CAAC,OAAO,CAAmB;IAClC,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,QAAQ,CAAS;gBAEb,QAAQ,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM;IASpD;;;OAGG;IACH,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IA4C3B,uDAAuD;IACvD,GAAG,IAAI,IAAI;IAUX,OAAO,CAAC,SAAS;CAgBlB;AAED;;;;;GAKG;AACH,qBAAa,SAAS;IACpB;;;OAGG;IACH,MAAM,CAAC,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,WAAW;IAgBvE,8CAA8C;IAC9C,MAAM,CAAC,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,YAAY;IAItD;;;OAGG;IACH,MAAM,CAAC,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,YAAY;IAI9E;;;;OAIG;IACH,MAAM,CAAC,aAAa,CAAC,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM;IAWvF;;;;;;;OAOG;IACH,MAAM,CAAC,aAAa,CAAC,KAAK,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM;IAQpF;;;OAGG;WACW,aAAa,CACzB,QAAQ,EAAE,MAAM,EAChB,cAAc,EAAE,MAAM,EACtB,eAAe,EAAE,aAAa,CAAC,MAAM,CAAC,GACrC,cAAc,CAAC,MAAM,CAAC;IAWzB;;;;;;OAMG;IACH,MAAM,CAAC,kBAAkB,CAAC,UAAU,EAAE,MAAM,EAAE,aAAa,GAAE,MAAU,GAAG,MAAM;IAWhF;;;;OAIG;IACH,MAAM,CAAC,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG;QACvC,aAAa,EAAE,MAAM,CAAC;QACtB,QAAQ,EAAE,MAAM,CAAC;QACjB,kBAAkB,EAAE,MAAM,CAAC;QAC3B,aAAa,EAAE,MAAM,CAAC;KACvB;CAQF"}
|