@neoware_inc/neozipkit 0.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/README.md +134 -0
- package/dist/browser/ZipkitBrowser.d.ts +27 -0
- package/dist/browser/ZipkitBrowser.d.ts.map +1 -0
- package/dist/browser/ZipkitBrowser.js +303 -0
- package/dist/browser/ZipkitBrowser.js.map +1 -0
- package/dist/browser/index.d.ts +9 -0
- package/dist/browser/index.d.ts.map +1 -0
- package/dist/browser/index.esm.d.ts +12 -0
- package/dist/browser/index.esm.d.ts.map +1 -0
- package/dist/browser/index.esm.js +46 -0
- package/dist/browser/index.esm.js.map +1 -0
- package/dist/browser/index.js +38 -0
- package/dist/browser/index.js.map +1 -0
- package/dist/browser-esm/index.d.ts +9 -0
- package/dist/browser-esm/index.js +50211 -0
- package/dist/browser-esm/index.js.map +7 -0
- package/dist/browser-umd/index.d.ts +9 -0
- package/dist/browser-umd/index.js +50221 -0
- package/dist/browser-umd/index.js.map +7 -0
- package/dist/browser-umd/index.min.js +39 -0
- package/dist/browser.d.ts +9 -0
- package/dist/browser.js +38 -0
- package/dist/core/ZipCompress.d.ts +99 -0
- package/dist/core/ZipCompress.d.ts.map +1 -0
- package/dist/core/ZipCompress.js +287 -0
- package/dist/core/ZipCompress.js.map +1 -0
- package/dist/core/ZipCopy.d.ts +175 -0
- package/dist/core/ZipCopy.d.ts.map +1 -0
- package/dist/core/ZipCopy.js +310 -0
- package/dist/core/ZipCopy.js.map +1 -0
- package/dist/core/ZipDecompress.d.ts +57 -0
- package/dist/core/ZipDecompress.d.ts.map +1 -0
- package/dist/core/ZipDecompress.js +155 -0
- package/dist/core/ZipDecompress.js.map +1 -0
- package/dist/core/ZipEntry.d.ts +138 -0
- package/dist/core/ZipEntry.d.ts.map +1 -0
- package/dist/core/ZipEntry.js +829 -0
- package/dist/core/ZipEntry.js.map +1 -0
- package/dist/core/Zipkit.d.ts +315 -0
- package/dist/core/Zipkit.d.ts.map +1 -0
- package/dist/core/Zipkit.js +647 -0
- package/dist/core/Zipkit.js.map +1 -0
- package/dist/core/ZstdManager.d.ts +56 -0
- package/dist/core/ZstdManager.d.ts.map +1 -0
- package/dist/core/ZstdManager.js +144 -0
- package/dist/core/ZstdManager.js.map +1 -0
- package/dist/core/components/HashCalculator.d.ts +138 -0
- package/dist/core/components/HashCalculator.d.ts.map +1 -0
- package/dist/core/components/HashCalculator.js +360 -0
- package/dist/core/components/HashCalculator.js.map +1 -0
- package/dist/core/components/Logger.d.ts +73 -0
- package/dist/core/components/Logger.d.ts.map +1 -0
- package/dist/core/components/Logger.js +156 -0
- package/dist/core/components/Logger.js.map +1 -0
- package/dist/core/components/ProgressTracker.d.ts +43 -0
- package/dist/core/components/ProgressTracker.d.ts.map +1 -0
- package/dist/core/components/ProgressTracker.js +112 -0
- package/dist/core/components/ProgressTracker.js.map +1 -0
- package/dist/core/components/Support.d.ts +64 -0
- package/dist/core/components/Support.d.ts.map +1 -0
- package/dist/core/components/Support.js +71 -0
- package/dist/core/components/Support.js.map +1 -0
- package/dist/core/components/Util.d.ts +26 -0
- package/dist/core/components/Util.d.ts.map +1 -0
- package/dist/core/components/Util.js +95 -0
- package/dist/core/components/Util.js.map +1 -0
- package/dist/core/constants/Errors.d.ts +52 -0
- package/dist/core/constants/Errors.d.ts.map +1 -0
- package/dist/core/constants/Errors.js +67 -0
- package/dist/core/constants/Errors.js.map +1 -0
- package/dist/core/constants/Headers.d.ts +170 -0
- package/dist/core/constants/Headers.d.ts.map +1 -0
- package/dist/core/constants/Headers.js +194 -0
- package/dist/core/constants/Headers.js.map +1 -0
- package/dist/core/encryption/Manager.d.ts +58 -0
- package/dist/core/encryption/Manager.d.ts.map +1 -0
- package/dist/core/encryption/Manager.js +121 -0
- package/dist/core/encryption/Manager.js.map +1 -0
- package/dist/core/encryption/ZipCrypto.d.ts +172 -0
- package/dist/core/encryption/ZipCrypto.d.ts.map +1 -0
- package/dist/core/encryption/ZipCrypto.js +554 -0
- package/dist/core/encryption/ZipCrypto.js.map +1 -0
- package/dist/core/encryption/index.d.ts +9 -0
- package/dist/core/encryption/index.d.ts.map +1 -0
- package/dist/core/encryption/index.js +17 -0
- package/dist/core/encryption/index.js.map +1 -0
- package/dist/core/encryption/types.d.ts +29 -0
- package/dist/core/encryption/types.d.ts.map +1 -0
- package/dist/core/encryption/types.js +12 -0
- package/dist/core/encryption/types.js.map +1 -0
- package/dist/core/index.d.ts +27 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +59 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/version.d.ts +5 -0
- package/dist/core/version.d.ts.map +1 -0
- package/dist/core/version.js +31 -0
- package/dist/core/version.js.map +1 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +38 -0
- package/dist/index.js.map +1 -0
- package/dist/node/ZipCompressNode.d.ts +123 -0
- package/dist/node/ZipCompressNode.d.ts.map +1 -0
- package/dist/node/ZipCompressNode.js +565 -0
- package/dist/node/ZipCompressNode.js.map +1 -0
- package/dist/node/ZipCopyNode.d.ts +165 -0
- package/dist/node/ZipCopyNode.d.ts.map +1 -0
- package/dist/node/ZipCopyNode.js +347 -0
- package/dist/node/ZipCopyNode.js.map +1 -0
- package/dist/node/ZipDecompressNode.d.ts +197 -0
- package/dist/node/ZipDecompressNode.d.ts.map +1 -0
- package/dist/node/ZipDecompressNode.js +678 -0
- package/dist/node/ZipDecompressNode.js.map +1 -0
- package/dist/node/ZipkitNode.d.ts +466 -0
- package/dist/node/ZipkitNode.d.ts.map +1 -0
- package/dist/node/ZipkitNode.js +1426 -0
- package/dist/node/ZipkitNode.js.map +1 -0
- package/dist/node/index.d.ts +25 -0
- package/dist/node/index.d.ts.map +1 -0
- package/dist/node/index.js +54 -0
- package/dist/node/index.js.map +1 -0
- package/dist/types/index.d.ts +45 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +11 -0
- package/dist/types/index.js.map +1 -0
- package/examples/README.md +261 -0
- package/examples/append-data.json +44 -0
- package/examples/copy-zip-append.ts +139 -0
- package/examples/copy-zip.ts +152 -0
- package/examples/create-zip.ts +172 -0
- package/examples/extract-zip.ts +118 -0
- package/examples/list-zip.ts +161 -0
- package/examples/test-files/data.json +116 -0
- package/examples/test-files/document.md +80 -0
- package/examples/test-files/document.txt +6 -0
- package/examples/test-files/file1.txt +48 -0
- package/examples/test-files/file2.txt +80 -0
- package/examples/tsconfig.json +44 -0
- package/package.json +167 -0
- package/src/browser/ZipkitBrowser.ts +305 -0
- package/src/browser/index.esm.ts +32 -0
- package/src/browser/index.ts +19 -0
- package/src/core/ZipCompress.ts +370 -0
- package/src/core/ZipCopy.ts +434 -0
- package/src/core/ZipDecompress.ts +191 -0
- package/src/core/ZipEntry.ts +917 -0
- package/src/core/Zipkit.ts +794 -0
- package/src/core/ZstdManager.ts +165 -0
- package/src/core/components/HashCalculator.ts +384 -0
- package/src/core/components/Logger.ts +180 -0
- package/src/core/components/ProgressTracker.ts +134 -0
- package/src/core/components/Support.ts +77 -0
- package/src/core/components/Util.ts +91 -0
- package/src/core/constants/Errors.ts +78 -0
- package/src/core/constants/Headers.ts +205 -0
- package/src/core/encryption/Manager.ts +137 -0
- package/src/core/encryption/ZipCrypto.ts +650 -0
- package/src/core/encryption/index.ts +15 -0
- package/src/core/encryption/types.ts +33 -0
- package/src/core/index.ts +42 -0
- package/src/core/version.ts +33 -0
- package/src/index.ts +19 -0
- package/src/node/ZipCompressNode.ts +618 -0
- package/src/node/ZipCopyNode.ts +437 -0
- package/src/node/ZipDecompressNode.ts +793 -0
- package/src/node/ZipkitNode.ts +1706 -0
- package/src/node/index.ts +40 -0
- package/src/types/index.ts +68 -0
- package/src/types/modules.d.ts +22 -0
- package/src/types/opentimestamps.d.ts +1 -0
|
@@ -0,0 +1,170 @@
|
|
|
1
|
+
export declare const LOCAL_FILE_HEADER = "PK\u0003\u0004";
|
|
2
|
+
export declare const CENTRAL_FILE_HEADER = "PK\u0001\u0002";
|
|
3
|
+
export declare const CENTRAL_DIRECTORY_END = "PK\u0005\u0006";
|
|
4
|
+
export declare const ZIP64_CENTRAL_DIRECTORY_LOCATOR = "PK\u0006\u0007";
|
|
5
|
+
export declare const ZIP64_CENTRAL_DIRECTORY_END = "PK\u0006\u0006";
|
|
6
|
+
export declare const DATA_DESCRIPTOR = "PK\u0007\b";
|
|
7
|
+
export declare const TIMESTAMP_SUBMITTED = "META-INF/TS-SUBMIT.OTS";
|
|
8
|
+
export declare const TIMESTAMP_METADATA = "META-INF/TIMESTAMP.OTS";
|
|
9
|
+
export declare const TOKENIZED_METADATA = "META-INF/NZIP.TOKEN";
|
|
10
|
+
export declare const LOCAL_HDR: {
|
|
11
|
+
SIZE: number;
|
|
12
|
+
SIGNATURE: number;
|
|
13
|
+
VER_EXTRACT: number;
|
|
14
|
+
FLAGS: number;
|
|
15
|
+
COMPRESSION: number;
|
|
16
|
+
TIMEDATE_DOS: number;
|
|
17
|
+
CRC: number;
|
|
18
|
+
CMP_SIZE: number;
|
|
19
|
+
UNCMP_SIZE: number;
|
|
20
|
+
FNAME_LEN: number;
|
|
21
|
+
EXTRA_LEN: number;
|
|
22
|
+
};
|
|
23
|
+
export declare const ENCRYPT_HDR_SIZE = 12;
|
|
24
|
+
export declare const DATA_DESC: {
|
|
25
|
+
SIGNATURE: number;
|
|
26
|
+
SIZE: number;
|
|
27
|
+
CRC: number;
|
|
28
|
+
CMP_SIZE: number;
|
|
29
|
+
UNCMP_SIZE: number;
|
|
30
|
+
};
|
|
31
|
+
export declare const CENTRAL_DIR: {
|
|
32
|
+
SIZE: number;
|
|
33
|
+
SIGNATURE: number;
|
|
34
|
+
VER_MADE: number;
|
|
35
|
+
VER_EXT: number;
|
|
36
|
+
FLAGS: number;
|
|
37
|
+
CMP_METHOD: number;
|
|
38
|
+
TIMEDATE_DOS: number;
|
|
39
|
+
CRC: number;
|
|
40
|
+
CMP_SIZE: number;
|
|
41
|
+
UNCMP_SIZE: number;
|
|
42
|
+
FNAME_LEN: number;
|
|
43
|
+
EXTRA_LEN: number;
|
|
44
|
+
COMMENT_LEN: number;
|
|
45
|
+
DISK_NUM: number;
|
|
46
|
+
INT_FILE_ATTR: number;
|
|
47
|
+
EXT_FILE_ATTR: number;
|
|
48
|
+
LOCAL_HDR_OFFSET: number;
|
|
49
|
+
};
|
|
50
|
+
export declare const CENTRAL_END: {
|
|
51
|
+
SIZE: number;
|
|
52
|
+
SIGNATURE: number;
|
|
53
|
+
VOL_NUM: number;
|
|
54
|
+
VOLDIR_START: number;
|
|
55
|
+
VOL_ENTRIES: number;
|
|
56
|
+
TOTAL_ENTRIES: number;
|
|
57
|
+
CENTRAL_DIR_SIZE: number;
|
|
58
|
+
CENTRAL_DIR_OFFSET: number;
|
|
59
|
+
ZIP_COMMENT_LEN: number;
|
|
60
|
+
};
|
|
61
|
+
export declare const ZIP64_CENTRAL_DIR: {
|
|
62
|
+
SIGNATURE: number;
|
|
63
|
+
SIZE: number;
|
|
64
|
+
LEAD: number;
|
|
65
|
+
SIZE_FIELD: number;
|
|
66
|
+
VER_MADEBY: number;
|
|
67
|
+
VER_NEEDED: number;
|
|
68
|
+
VOL_NUM: number;
|
|
69
|
+
VOLDIR_START: number;
|
|
70
|
+
VOL_ENTRIES: number;
|
|
71
|
+
TOTAL_ENTRIES: number;
|
|
72
|
+
CENTRAL_DIR_SIZE: number;
|
|
73
|
+
CENTRAL_DIR_OFFSET: number;
|
|
74
|
+
EXTRA_FIELD: number;
|
|
75
|
+
};
|
|
76
|
+
export declare const ZIP64_CENTRAL_END: {
|
|
77
|
+
SIZE: number;
|
|
78
|
+
SIGNATURE: number;
|
|
79
|
+
VOL_NUM: number;
|
|
80
|
+
CENTRAL_DIR_OFFSET: number;
|
|
81
|
+
TOTAL_DISKS: number;
|
|
82
|
+
};
|
|
83
|
+
export declare const CMP_METHOD: {
|
|
84
|
+
STORED: number;
|
|
85
|
+
SHRUNK: number;
|
|
86
|
+
REDUCED1: number;
|
|
87
|
+
REDUCED2: number;
|
|
88
|
+
REDUCED3: number;
|
|
89
|
+
REDUCED4: number;
|
|
90
|
+
IMPLODED: number;
|
|
91
|
+
DEFLATED: number;
|
|
92
|
+
ENHANCED_DEFLATE: number;
|
|
93
|
+
BZIP2: number;
|
|
94
|
+
LZMA: number;
|
|
95
|
+
IBM_TERSE: number;
|
|
96
|
+
IBM_LZ77: number;
|
|
97
|
+
ZSTD: number;
|
|
98
|
+
AES_ENCRYPT: number;
|
|
99
|
+
};
|
|
100
|
+
export declare const GP_FLAG: {
|
|
101
|
+
ENCRYPTED: number;
|
|
102
|
+
COMPRESSION1: number;
|
|
103
|
+
COMPRESSION2: number;
|
|
104
|
+
DATA_DESC: number;
|
|
105
|
+
ENHANCED_DEFLATE: number;
|
|
106
|
+
PATCHED: number;
|
|
107
|
+
STRONG_ENCRYPT: number;
|
|
108
|
+
EFS: number;
|
|
109
|
+
MASK: number;
|
|
110
|
+
};
|
|
111
|
+
export declare const EXTENSIBLE_DATA_FIELDS: {
|
|
112
|
+
ID: number;
|
|
113
|
+
SIZE: number;
|
|
114
|
+
};
|
|
115
|
+
export declare const HDR_ID: {
|
|
116
|
+
ZIP64: number;
|
|
117
|
+
AVINFO: number;
|
|
118
|
+
PFS: number;
|
|
119
|
+
OS2: number;
|
|
120
|
+
NTFS: number;
|
|
121
|
+
OPENVMS: number;
|
|
122
|
+
UNIX: number;
|
|
123
|
+
FORK: number;
|
|
124
|
+
PATCH: number;
|
|
125
|
+
x509PKCS7: number;
|
|
126
|
+
x509CERT_IDF: number;
|
|
127
|
+
x509CERT_IDC: number;
|
|
128
|
+
STRONG_ENC: number;
|
|
129
|
+
RECORD_MGT: number;
|
|
130
|
+
x509PKCS7RL: number;
|
|
131
|
+
IBM1: number;
|
|
132
|
+
IBM2: number;
|
|
133
|
+
SHA256: number;
|
|
134
|
+
POSZIP: number;
|
|
135
|
+
UNV_TIME: number;
|
|
136
|
+
UID_GID: number;
|
|
137
|
+
UNICODE_PATH: number;
|
|
138
|
+
SYMLINK: number;
|
|
139
|
+
HARDLINK: number;
|
|
140
|
+
};
|
|
141
|
+
export declare const FILE_SYSTEM: {
|
|
142
|
+
MSDOS: number;
|
|
143
|
+
AMIGA: number;
|
|
144
|
+
OPENVMS: number;
|
|
145
|
+
UNIX: number;
|
|
146
|
+
VM_CMS: number;
|
|
147
|
+
ATARI: number;
|
|
148
|
+
OS2: number;
|
|
149
|
+
MAC: number;
|
|
150
|
+
CP_M: number;
|
|
151
|
+
NTFS: number;
|
|
152
|
+
MVS: number;
|
|
153
|
+
VSE: number;
|
|
154
|
+
ACORN: number;
|
|
155
|
+
VFAT: number;
|
|
156
|
+
ALTMVS: number;
|
|
157
|
+
BEOS: number;
|
|
158
|
+
TANDEM: number;
|
|
159
|
+
OS400: number;
|
|
160
|
+
DARWIN: number;
|
|
161
|
+
};
|
|
162
|
+
export declare const DOS_FILE_ATTR: {
|
|
163
|
+
READONLY: number;
|
|
164
|
+
HIDDEN: number;
|
|
165
|
+
SYSTEM: number;
|
|
166
|
+
VOLUME: number;
|
|
167
|
+
DIRECTORY: number;
|
|
168
|
+
ARCHIVE: number;
|
|
169
|
+
};
|
|
170
|
+
//# sourceMappingURL=Headers.d.ts.map
|
|
@@ -0,0 +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;AAE5C,eAAO,MAAM,mBAAmB,2BAA2B,CAAC;AAC5D,eAAO,MAAM,kBAAkB,2BAA2B,CAAC;AAC3D,eAAO,MAAM,kBAAkB,wBAAwB,CAAC;AAGxD,eAAO,MAAM,SAAS;;;;;;;;;;;;CAYrB,CAAC;AACF,eAAO,MAAM,gBAAgB,KAAK,CAAC;AAGnC,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;;;;;;;;;;;;;;;;;;;;;;;;;CAyBlB,CAAC;AAGF,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;CAoBvB,CAAC;AAGF,eAAO,MAAM,aAAa;;;;;;;CAOzB,CAAC"}
|
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// ======================================
|
|
3
|
+
// Headers.ts
|
|
4
|
+
// Copyright (c) 2024 NeoWare, Inc. All rights reserved.
|
|
5
|
+
// ======================================
|
|
6
|
+
// Zip File Format Constants
|
|
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.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;
|
|
9
|
+
exports.LOCAL_FILE_HEADER = 'PK\x03\x04';
|
|
10
|
+
exports.CENTRAL_FILE_HEADER = 'PK\x01\x02';
|
|
11
|
+
exports.CENTRAL_DIRECTORY_END = 'PK\x05\x06';
|
|
12
|
+
exports.ZIP64_CENTRAL_DIRECTORY_LOCATOR = 'PK\x06\x07';
|
|
13
|
+
exports.ZIP64_CENTRAL_DIRECTORY_END = 'PK\x06\x06';
|
|
14
|
+
exports.DATA_DESCRIPTOR = 'PK\x07\x08';
|
|
15
|
+
exports.TIMESTAMP_SUBMITTED = 'META-INF/TS-SUBMIT.OTS';
|
|
16
|
+
exports.TIMESTAMP_METADATA = 'META-INF/TIMESTAMP.OTS';
|
|
17
|
+
exports.TOKENIZED_METADATA = 'META-INF/NZIP.TOKEN';
|
|
18
|
+
// Local file header
|
|
19
|
+
exports.LOCAL_HDR = {
|
|
20
|
+
SIZE: 30, // LOC header size in bytes
|
|
21
|
+
SIGNATURE: 0x04034b50, // "PK\003\004"
|
|
22
|
+
VER_EXTRACT: 4, // version needed to extract
|
|
23
|
+
FLAGS: 6, // general purpose bit flag
|
|
24
|
+
COMPRESSION: 8, // compression method
|
|
25
|
+
TIMEDATE_DOS: 10, // modification time (2 bytes time, 2 bytes date)
|
|
26
|
+
CRC: 14, // uncompressed file crc-32 value
|
|
27
|
+
CMP_SIZE: 18, // compressed size
|
|
28
|
+
UNCMP_SIZE: 22, // uncompressed size
|
|
29
|
+
FNAME_LEN: 26, // filename length
|
|
30
|
+
EXTRA_LEN: 28 // extra field length
|
|
31
|
+
};
|
|
32
|
+
exports.ENCRYPT_HDR_SIZE = 12;
|
|
33
|
+
// Data descriptor
|
|
34
|
+
exports.DATA_DESC = {
|
|
35
|
+
SIGNATURE: 0x08074b50, // "PK\007\008"
|
|
36
|
+
SIZE: 16, // EXT header size in bytes
|
|
37
|
+
CRC: 4, // uncompressed file crc-32 value (offset)
|
|
38
|
+
CMP_SIZE: 8, // compressed size (offset)
|
|
39
|
+
UNCMP_SIZE: 12 // uncompressed size
|
|
40
|
+
};
|
|
41
|
+
// The central directory file header
|
|
42
|
+
exports.CENTRAL_DIR = {
|
|
43
|
+
SIZE: 46, // Central directory header size
|
|
44
|
+
SIGNATURE: 0x02014b50, // "PK\001\002"
|
|
45
|
+
VER_MADE: 4, // version made by
|
|
46
|
+
VER_EXT: 6, // version needed to extract
|
|
47
|
+
FLAGS: 8, // encrypt, decrypt flags
|
|
48
|
+
CMP_METHOD: 10, // compression method
|
|
49
|
+
TIMEDATE_DOS: 12, // DOS modification time (2 bytes time, 2 bytes date)
|
|
50
|
+
CRC: 16, // uncompressed file crc-32 value
|
|
51
|
+
CMP_SIZE: 20, // compressed size
|
|
52
|
+
UNCMP_SIZE: 24, // uncompressed size
|
|
53
|
+
FNAME_LEN: 28, // filename length
|
|
54
|
+
EXTRA_LEN: 30, // extra field length
|
|
55
|
+
COMMENT_LEN: 32, // file comment length
|
|
56
|
+
DISK_NUM: 34, // volume number start
|
|
57
|
+
INT_FILE_ATTR: 36, // internal file attributes
|
|
58
|
+
EXT_FILE_ATTR: 38, // external file attributes (host system dependent)
|
|
59
|
+
LOCAL_HDR_OFFSET: 42 // LOC header offset
|
|
60
|
+
};
|
|
61
|
+
// The Zip central directory Locator
|
|
62
|
+
exports.CENTRAL_END = {
|
|
63
|
+
SIZE: 22, // END header size
|
|
64
|
+
SIGNATURE: 0x06054b50, // "PK\005\006"
|
|
65
|
+
VOL_NUM: 4, // number of this disk
|
|
66
|
+
VOLDIR_START: 6, // number of the volume/disk with start of the Central Directory
|
|
67
|
+
VOL_ENTRIES: 8, // number of entries on this volume/disk
|
|
68
|
+
TOTAL_ENTRIES: 10, // total number of entries on this disk
|
|
69
|
+
CENTRAL_DIR_SIZE: 12, // central directory size in bytes
|
|
70
|
+
CENTRAL_DIR_OFFSET: 16, // offset of first CEN header
|
|
71
|
+
ZIP_COMMENT_LEN: 20 // zip file comment length
|
|
72
|
+
};
|
|
73
|
+
// Zip64 Central Directory Entry
|
|
74
|
+
exports.ZIP64_CENTRAL_DIR = {
|
|
75
|
+
SIGNATURE: 0x06064b50, // zip64 signature, "PK\006\006"
|
|
76
|
+
SIZE: 56, // zip64 record minimum size
|
|
77
|
+
LEAD: 12, // leading bytes at the start of the record, not counted by the value stored in ZIP64SIZE
|
|
78
|
+
SIZE_FIELD: 4, // zip64 size of the central directory record
|
|
79
|
+
VER_MADEBY: 12, // zip64 version made by
|
|
80
|
+
VER_NEEDED: 14, // zip64 version needed to extract
|
|
81
|
+
VOL_NUM: 16, // zip64 number of this disk
|
|
82
|
+
VOLDIR_START: 20, // number of the disk with the start of the record directory
|
|
83
|
+
VOL_ENTRIES: 24, // number of entries on this disk
|
|
84
|
+
TOTAL_ENTRIES: 32, // total number of entries
|
|
85
|
+
CENTRAL_DIR_SIZE: 40, // zip64 central directory size in bytes
|
|
86
|
+
CENTRAL_DIR_OFFSET: 48, // offset of start of central directory with respect to the starting disk number
|
|
87
|
+
EXTRA_FIELD: 56 // extensible data sector
|
|
88
|
+
};
|
|
89
|
+
// Zip64 Central directory locator
|
|
90
|
+
exports.ZIP64_CENTRAL_END = {
|
|
91
|
+
SIZE: 20, // zip64 END header size
|
|
92
|
+
SIGNATURE: 0x07064b50, // zip64 Locator signature, "PK\006\007"
|
|
93
|
+
VOL_NUM: 4, // number of the disk with the start of the zip64
|
|
94
|
+
CENTRAL_DIR_OFFSET: 8, // relative offset of the zip64 end of central directory
|
|
95
|
+
TOTAL_DISKS: 16 // total number of disks
|
|
96
|
+
};
|
|
97
|
+
// Compression methods
|
|
98
|
+
exports.CMP_METHOD = {
|
|
99
|
+
STORED: 0, // no compression
|
|
100
|
+
SHRUNK: 1, // shrunk
|
|
101
|
+
REDUCED1: 2, // reduced with compression factor 1
|
|
102
|
+
REDUCED2: 3, // reduced with compression factor 2
|
|
103
|
+
REDUCED3: 4, // reduced with compression factor 3
|
|
104
|
+
REDUCED4: 5, // reduced with compression factor 4
|
|
105
|
+
IMPLODED: 6, // imploded
|
|
106
|
+
DEFLATED: 8, // deflated
|
|
107
|
+
ENHANCED_DEFLATE: 9, // enhanced deflated
|
|
108
|
+
BZIP2: 12, // compressed using BZIP2
|
|
109
|
+
LZMA: 14, // LZMA
|
|
110
|
+
IBM_TERSE: 18, // compressed using IBM TERSE
|
|
111
|
+
IBM_LZ77: 19, // IBM LZ77
|
|
112
|
+
ZSTD: 93, // Zstandard compression
|
|
113
|
+
AES_ENCRYPT: 99 // WinZIP AES encryption method
|
|
114
|
+
};
|
|
115
|
+
// General purpose bit flag
|
|
116
|
+
exports.GP_FLAG = {
|
|
117
|
+
ENCRYPTED: 1, // Bit 0: encrypted file
|
|
118
|
+
COMPRESSION1: 2, // Bit 1, compression option
|
|
119
|
+
COMPRESSION2: 4, // Bit 2, compression option
|
|
120
|
+
DATA_DESC: 8, // Bit 3, data descriptor
|
|
121
|
+
ENHANCED_DEFLATE: 16, // Bit 4, enhanced deflating
|
|
122
|
+
PATCHED: 32, // Bit 5, indicates that the file is compressed patched data.
|
|
123
|
+
STRONG_ENCRYPT: 64, // Bit 6, strong encryption (patented)
|
|
124
|
+
// Bits 7-10: Currently unused.
|
|
125
|
+
EFS: 2048, // Bit 11: Language encoding flag (EFS)
|
|
126
|
+
// Bit 12: Reserved by PKWARE for enhanced compression.
|
|
127
|
+
// Bit 13: encrypted the Central Directory (patented).
|
|
128
|
+
// Bits 14-15: Reserved by PKWARE.
|
|
129
|
+
MASK: 4096, // mask header values
|
|
130
|
+
};
|
|
131
|
+
// 4.5 Extensible data fields
|
|
132
|
+
exports.EXTENSIBLE_DATA_FIELDS = {
|
|
133
|
+
ID: 0,
|
|
134
|
+
SIZE: 2,
|
|
135
|
+
};
|
|
136
|
+
// Header IDs
|
|
137
|
+
exports.HDR_ID = {
|
|
138
|
+
ZIP64: 0x0001, // ZIP64 Extended Information Extra Field
|
|
139
|
+
AVINFO: 0x0007, // AV Info
|
|
140
|
+
PFS: 0x0008, // PFS Extra Field
|
|
141
|
+
OS2: 0x0009, // OS/2 Extra Field
|
|
142
|
+
NTFS: 0x000a, // NTFS Extra Field
|
|
143
|
+
OPENVMS: 0x000c, // OpenVMS Extra Field
|
|
144
|
+
UNIX: 0x000d, // Unix Extra Field
|
|
145
|
+
FORK: 0x000e, // Fork Data Extra Field
|
|
146
|
+
PATCH: 0x000f, // Patch Descriptor Extra Field
|
|
147
|
+
x509PKCS7: 0x0014, // X.509 Certificate Store (PKCS#7)
|
|
148
|
+
x509CERT_IDF: 0x0015, // X.509 Certificate ID and Fingerprint
|
|
149
|
+
x509CERT_IDC: 0x0016, // X.509 Certificate ID and Certificate
|
|
150
|
+
STRONG_ENC: 0x0017, // Strong Encryption Header
|
|
151
|
+
RECORD_MGT: 0x0018, // Record Management Controls
|
|
152
|
+
x509PKCS7RL: 0x0019, // X.509 Certificate Revocation List (PKCS#7)
|
|
153
|
+
IBM1: 0x0065, // IBM S/390 (Z390) - Attribute
|
|
154
|
+
IBM2: 0x0066, // IBM S/390 (Z390) - Attribute
|
|
155
|
+
SHA256: 0x014E, // SHA256 "N\01" with 64 bytes (256 bit) of SHA256 hash data
|
|
156
|
+
POSZIP: 0x4690, // POSZIP 4690
|
|
157
|
+
UNV_TIME: 0x5455, // Universal Time (UT) (32-bit) 5 data bytes
|
|
158
|
+
UID_GID: 0x7875, // Unix UID/GID (any size)
|
|
159
|
+
UNICODE_PATH: 0x7075, // Info-ZIP Unicode Path Extra Field
|
|
160
|
+
SYMLINK: 0x7855, // Unix Symbolic Link Extra Field
|
|
161
|
+
HARDLINK: 0x7865, // Unix Hard Link Extra Field
|
|
162
|
+
};
|
|
163
|
+
// File System
|
|
164
|
+
exports.FILE_SYSTEM = {
|
|
165
|
+
MSDOS: 0, // MS-DOS and OS/2 (FAT / VFAT / FAT32 file systems)
|
|
166
|
+
AMIGA: 1, // Amiga
|
|
167
|
+
OPENVMS: 2, // OpenVMS
|
|
168
|
+
UNIX: 3, // UNIX
|
|
169
|
+
VM_CMS: 4, // VM/CMS
|
|
170
|
+
ATARI: 5, // Atari ST
|
|
171
|
+
OS2: 6, // OS/2 H.P.F.S.
|
|
172
|
+
MAC: 7, // Macintosh
|
|
173
|
+
CP_M: 9, // CP/M
|
|
174
|
+
NTFS: 10, // Windows NTFS
|
|
175
|
+
MVS: 11, // MVS (OS/390 - Z/OS)
|
|
176
|
+
VSE: 12, // VSE
|
|
177
|
+
ACORN: 13, // Acorn Risc
|
|
178
|
+
VFAT: 14, // VFAT
|
|
179
|
+
ALTMVS: 15, // Alternate MVS
|
|
180
|
+
BEOS: 16, // BeOS
|
|
181
|
+
TANDEM: 17, // Tandem
|
|
182
|
+
OS400: 18, // OS/400
|
|
183
|
+
DARWIN: 19 // Apple OS/X (Darwin)
|
|
184
|
+
};
|
|
185
|
+
// DOS File Attributes
|
|
186
|
+
exports.DOS_FILE_ATTR = {
|
|
187
|
+
READONLY: 0x01,
|
|
188
|
+
HIDDEN: 0x02,
|
|
189
|
+
SYSTEM: 0x04,
|
|
190
|
+
VOLUME: 0x08,
|
|
191
|
+
DIRECTORY: 0x10,
|
|
192
|
+
ARCHIVE: 0x20
|
|
193
|
+
};
|
|
194
|
+
//# sourceMappingURL=Headers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Headers.js","sourceRoot":"","sources":["../../../src/core/constants/Headers.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Encryption Manager for NeoZipKit
|
|
3
|
+
* Manages different encryption providers and provides a unified interface
|
|
4
|
+
*/
|
|
5
|
+
import { EncryptionProvider, EncryptionOptions, EncryptionResult, DecryptionResult, EncryptionMethod } from './types';
|
|
6
|
+
export declare class EncryptionManager {
|
|
7
|
+
private providers;
|
|
8
|
+
constructor();
|
|
9
|
+
/**
|
|
10
|
+
* Register a new encryption provider
|
|
11
|
+
*/
|
|
12
|
+
registerProvider(provider: EncryptionProvider): void;
|
|
13
|
+
/**
|
|
14
|
+
* Get available encryption methods
|
|
15
|
+
*/
|
|
16
|
+
getAvailableMethods(): EncryptionMethod[];
|
|
17
|
+
/**
|
|
18
|
+
* Get encryption provider for a specific method
|
|
19
|
+
*/
|
|
20
|
+
getProvider(method: EncryptionMethod): EncryptionProvider | null;
|
|
21
|
+
/**
|
|
22
|
+
* Encrypt data using specified method
|
|
23
|
+
*/
|
|
24
|
+
encrypt(data: Buffer, options: EncryptionOptions): Promise<EncryptionResult>;
|
|
25
|
+
/**
|
|
26
|
+
* Decrypt data using specified method
|
|
27
|
+
*/
|
|
28
|
+
decrypt(data: Buffer, options: EncryptionOptions): Promise<DecryptionResult>;
|
|
29
|
+
/**
|
|
30
|
+
* Get recommended encryption method (ZIP_CRYPTO)
|
|
31
|
+
*/
|
|
32
|
+
getRecommendedMethod(): EncryptionMethod;
|
|
33
|
+
/**
|
|
34
|
+
* Validate encryption options
|
|
35
|
+
*/
|
|
36
|
+
validateOptions(options: EncryptionOptions): {
|
|
37
|
+
isValid: boolean;
|
|
38
|
+
errors: string[];
|
|
39
|
+
};
|
|
40
|
+
/**
|
|
41
|
+
* Get encryption method info
|
|
42
|
+
*/
|
|
43
|
+
getMethodInfo(method: EncryptionMethod): {
|
|
44
|
+
name: string;
|
|
45
|
+
keyLength: number;
|
|
46
|
+
secure: boolean;
|
|
47
|
+
} | null;
|
|
48
|
+
/**
|
|
49
|
+
* List all available encryption methods with their details
|
|
50
|
+
*/
|
|
51
|
+
listMethods(): Array<{
|
|
52
|
+
method: EncryptionMethod;
|
|
53
|
+
name: string;
|
|
54
|
+
keyLength: number;
|
|
55
|
+
secure: boolean;
|
|
56
|
+
}>;
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=Manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Manager.d.ts","sourceRoot":"","sources":["../../../src/core/encryption/Manager.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAGtH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,SAAS,CAAwD;;IAOzE;;OAEG;IACH,gBAAgB,CAAC,QAAQ,EAAE,kBAAkB,GAAG,IAAI;IAMpD;;OAEG;IACH,mBAAmB,IAAI,gBAAgB,EAAE;IAIzC;;OAEG;IACH,WAAW,CAAC,MAAM,EAAE,gBAAgB,GAAG,kBAAkB,GAAG,IAAI;IAIhE;;OAEG;IACG,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAYlF;;OAEG;IACG,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAYlF;;OAEG;IACH,oBAAoB,IAAI,gBAAgB;IAIxC;;OAEG;IACH,eAAe,CAAC,OAAO,EAAE,iBAAiB,GAAG;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,EAAE,CAAA;KAAE;IAqBnF;;OAEG;IACH,aAAa,CAAC,MAAM,EAAE,gBAAgB,GAAG;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,OAAO,CAAA;KAAE,GAAG,IAAI;IAapG;;OAEG;IACH,WAAW,IAAI,KAAK,CAAC;QAAE,MAAM,EAAE,gBAAgB,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,OAAO,CAAA;KAAE,CAAC;CAiBrG"}
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Encryption Manager for NeoZipKit
|
|
4
|
+
* Manages different encryption providers and provides a unified interface
|
|
5
|
+
*/
|
|
6
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
+
exports.EncryptionManager = void 0;
|
|
8
|
+
const types_1 = require("./types");
|
|
9
|
+
const ZipCrypto_1 = require("./ZipCrypto");
|
|
10
|
+
class EncryptionManager {
|
|
11
|
+
constructor() {
|
|
12
|
+
this.providers = new Map();
|
|
13
|
+
// Register default encryption providers
|
|
14
|
+
this.registerProvider(new ZipCrypto_1.ZipCrypto());
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Register a new encryption provider
|
|
18
|
+
*/
|
|
19
|
+
registerProvider(provider) {
|
|
20
|
+
if (provider.canHandle(types_1.EncryptionMethod.ZIP_CRYPTO)) {
|
|
21
|
+
this.providers.set(types_1.EncryptionMethod.ZIP_CRYPTO, provider);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Get available encryption methods
|
|
26
|
+
*/
|
|
27
|
+
getAvailableMethods() {
|
|
28
|
+
return Array.from(this.providers.keys());
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Get encryption provider for a specific method
|
|
32
|
+
*/
|
|
33
|
+
getProvider(method) {
|
|
34
|
+
return this.providers.get(method) || null;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Encrypt data using specified method
|
|
38
|
+
*/
|
|
39
|
+
async encrypt(data, options) {
|
|
40
|
+
const provider = this.getProvider(options.method);
|
|
41
|
+
if (!provider) {
|
|
42
|
+
return {
|
|
43
|
+
success: false,
|
|
44
|
+
error: `No encryption provider available for method ${options.method}`
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
return await provider.encrypt(data, options);
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Decrypt data using specified method
|
|
51
|
+
*/
|
|
52
|
+
async decrypt(data, options) {
|
|
53
|
+
const provider = this.getProvider(options.method);
|
|
54
|
+
if (!provider) {
|
|
55
|
+
return {
|
|
56
|
+
success: false,
|
|
57
|
+
error: `No decryption provider available for method ${options.method}`
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
return await provider.decrypt(data, options);
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Get recommended encryption method (ZIP_CRYPTO)
|
|
64
|
+
*/
|
|
65
|
+
getRecommendedMethod() {
|
|
66
|
+
return types_1.EncryptionMethod.ZIP_CRYPTO;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Validate encryption options
|
|
70
|
+
*/
|
|
71
|
+
validateOptions(options) {
|
|
72
|
+
const errors = [];
|
|
73
|
+
if (!options.method) {
|
|
74
|
+
errors.push('Encryption method is required');
|
|
75
|
+
}
|
|
76
|
+
if (!options.password || options.password.length === 0) {
|
|
77
|
+
errors.push('Password is required');
|
|
78
|
+
}
|
|
79
|
+
if (options.password && options.password.length < 4) {
|
|
80
|
+
errors.push('Password must be at least 4 characters long');
|
|
81
|
+
}
|
|
82
|
+
return {
|
|
83
|
+
isValid: errors.length === 0,
|
|
84
|
+
errors: errors
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Get encryption method info
|
|
89
|
+
*/
|
|
90
|
+
getMethodInfo(method) {
|
|
91
|
+
const provider = this.getProvider(method);
|
|
92
|
+
if (!provider) {
|
|
93
|
+
return null;
|
|
94
|
+
}
|
|
95
|
+
return {
|
|
96
|
+
name: provider.getMethodName(),
|
|
97
|
+
keyLength: provider.getKeyLength(),
|
|
98
|
+
secure: false
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* List all available encryption methods with their details
|
|
103
|
+
*/
|
|
104
|
+
listMethods() {
|
|
105
|
+
const methods = [];
|
|
106
|
+
for (const [method, provider] of this.providers) {
|
|
107
|
+
methods.push({
|
|
108
|
+
method: method,
|
|
109
|
+
name: provider.getMethodName(),
|
|
110
|
+
keyLength: provider.getKeyLength(),
|
|
111
|
+
secure: false
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
return methods.sort((a, b) => {
|
|
115
|
+
// Sort by name
|
|
116
|
+
return a.name.localeCompare(b.name);
|
|
117
|
+
});
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
exports.EncryptionManager = EncryptionManager;
|
|
121
|
+
//# sourceMappingURL=Manager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Manager.js","sourceRoot":"","sources":["../../../src/core/encryption/Manager.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,mCAAsH;AACtH,2CAAwC;AAExC,MAAa,iBAAiB;IAG5B;QAFQ,cAAS,GAA8C,IAAI,GAAG,EAAE,CAAC;QAGvE,wCAAwC;QACxC,IAAI,CAAC,gBAAgB,CAAC,IAAI,qBAAS,EAAE,CAAC,CAAC;IACzC,CAAC;IAED;;OAEG;IACH,gBAAgB,CAAC,QAA4B;QAC3C,IAAI,QAAQ,CAAC,SAAS,CAAC,wBAAgB,CAAC,UAAU,CAAC,EAAE,CAAC;YACpD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,wBAAgB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC;IAED;;OAEG;IACH,mBAAmB;QACjB,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;IAC3C,CAAC;IAED;;OAEG;IACH,WAAW,CAAC,MAAwB;QAClC,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC;IAC5C,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,OAAO,CAAC,IAAY,EAAE,OAA0B;QACpD,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAClD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,+CAA+C,OAAO,CAAC,MAAM,EAAE;aACvE,CAAC;QACJ,CAAC;QAED,OAAO,MAAM,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC/C,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,OAAO,CAAC,IAAY,EAAE,OAA0B;QACpD,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAClD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE,+CAA+C,OAAO,CAAC,MAAM,EAAE;aACvE,CAAC;QACJ,CAAC;QAED,OAAO,MAAM,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC/C,CAAC;IAED;;OAEG;IACH,oBAAoB;QAClB,OAAO,wBAAgB,CAAC,UAAU,CAAC;IACrC,CAAC;IAED;;OAEG;IACH,eAAe,CAAC,OAA0B;QACxC,MAAM,MAAM,GAAa,EAAE,CAAC;QAE5B,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YACpB,MAAM,CAAC,IAAI,CAAC,+BAA+B,CAAC,CAAC;QAC/C,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACvD,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,CAAC;QACtC,CAAC;QAED,IAAI,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpD,MAAM,CAAC,IAAI,CAAC,6CAA6C,CAAC,CAAC;QAC7D,CAAC;QAED,OAAO;YACL,OAAO,EAAE,MAAM,CAAC,MAAM,KAAK,CAAC;YAC5B,MAAM,EAAE,MAAM;SACf,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,aAAa,CAAC,MAAwB;QACpC,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;QAC1C,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO;YACL,IAAI,EAAE,QAAQ,CAAC,aAAa,EAAE;YAC9B,SAAS,EAAE,QAAQ,CAAC,YAAY,EAAE;YAClC,MAAM,EAAE,KAAK;SACd,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,WAAW;QACT,MAAM,OAAO,GAA0F,EAAE,CAAC;QAE1G,KAAK,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YAChD,OAAO,CAAC,IAAI,CAAC;gBACX,MAAM,EAAE,MAAM;gBACd,IAAI,EAAE,QAAQ,CAAC,aAAa,EAAE;gBAC9B,SAAS,EAAE,QAAQ,CAAC,YAAY,EAAE;gBAClC,MAAM,EAAE,KAAK;aACd,CAAC,CAAC;QACL,CAAC;QAED,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;YAC3B,eAAe;YACf,OAAO,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACtC,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AAhID,8CAgIC"}
|