w-zip 1.0.21 → 1.0.23
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/.github/workflows/ci-test.yml +3 -3
- package/README.md +7 -6
- package/dist/w-zip.umd.js +2 -2
- package/dist/w-zip.umd.js.map +1 -1
- package/docs/index.html +1 -1
- package/docs/m7z.html +30 -4
- package/docs/m7z.mjs.html +11 -11
- package/docs/mZip.html +18 -6
- package/docs/mZip.mjs.html +97 -132
- package/g-7z.mjs +3 -3
- package/g-zip.mjs +3 -3
- package/package.json +5 -7
- package/script.txt +0 -3
- package/src/m7z.mjs +10 -10
- package/src/mZip.mjs +96 -131
- package/test/7z.test.mjs +3 -3
- package/test/output7z/test1.7z +0 -0
- package/test/output7z/test2.7z +0 -0
- package/test/output7z/test2PW.7z +0 -0
- package/test/outputZip/test1.zip +0 -0
- package/test/outputZip/test2.zip +0 -0
- package/test/outputZip/test2PW.zip +0 -0
- package/test/zip.test.mjs +3 -3
- package/toolg/gDistRollup.mjs +2 -6
- package/testData/output7z/test1.7z +0 -0
- package/testData/output7z/test2.7z +0 -0
- package/testData/output7z/test2PW.7z +0 -0
- package/testData/outputZip/test1.zip +0 -0
- package/testData/outputZip/test2.zip +0 -0
- package/testData/outputZip/test2PW.zip +0 -0
- /package/{testData → test}/input/file1(/344/270/255/346/226/207).txt" +0 -0
- /package/{testData → test}/input/folder1/f1-1.xlsx +0 -0
- /package/{testData → test}/input/folder1/f1-2.xlsx +0 -0
- /package/{testData → test}/input/folder1/folder2/f2-1.xlsx +0 -0
- /package/{testData → test}/input/folder1/folder2/f2-2.xlsx +0 -0
- /package/{testData → test}/input/folder1/folder2/f2-3(/344/270/255/346/226/207).xlsx" +0 -0
- /package/{testData → test}/output7z/extract/test1/file1(/344/270/255/346/226/207).txt" +0 -0
- /package/{testData → test}/output7z/extract/test2/folder1/f1-1.xlsx +0 -0
- /package/{testData → test}/output7z/extract/test2/folder1/f1-2.xlsx +0 -0
- /package/{testData → test}/output7z/extract/test2/folder1/folder2/f2-1.xlsx +0 -0
- /package/{testData → test}/output7z/extract/test2/folder1/folder2/f2-2.xlsx +0 -0
- /package/{testData → test}/output7z/extract/test2/folder1/folder2/f2-3(/344/270/255/346/226/207).xlsx" +0 -0
- /package/{testData → test}/outputZip/extract/test1/file1(/344/270/255/346/226/207).txt" +0 -0
- /package/{testData → test}/outputZip/extract/test2/folder1/f1-1.xlsx +0 -0
- /package/{testData → test}/outputZip/extract/test2/folder1/f1-2.xlsx +0 -0
- /package/{testData → test}/outputZip/extract/test2/folder1/folder2/f2-1.xlsx +0 -0
- /package/{testData → test}/outputZip/extract/test2/folder1/folder2/f2-2.xlsx +0 -0
- /package/{testData → test}/outputZip/extract/test2/folder1/folder2/f2-3(/344/270/255/346/226/207).xlsx" +0 -0
package/src/m7z.mjs
CHANGED
|
@@ -13,13 +13,13 @@ import checkTarget from './checkTarget.mjs'
|
|
|
13
13
|
* @example
|
|
14
14
|
* import wz from 'w-zip'
|
|
15
15
|
*
|
|
16
|
-
* let fpUnzip = './
|
|
16
|
+
* let fpUnzip = './test/output7z'
|
|
17
17
|
* let fpUnzipExtract = fpUnzip + '/extract'
|
|
18
18
|
*
|
|
19
|
-
* let fpSrc1 = './
|
|
19
|
+
* let fpSrc1 = './test/input/file1(中文).txt'
|
|
20
20
|
* let fpZip1 = fpUnzip + '/test1.7z'
|
|
21
21
|
*
|
|
22
|
-
* let fpSrc2 = './
|
|
22
|
+
* let fpSrc2 = './test/input/folder1'
|
|
23
23
|
* let fpZip2 = fpUnzip + '/test2.7z'
|
|
24
24
|
* let fpZip2PW = fpUnzip + '/test2PW.7z'
|
|
25
25
|
* let pw = 'abc'
|
|
@@ -119,7 +119,7 @@ function m7z() {
|
|
|
119
119
|
}
|
|
120
120
|
|
|
121
121
|
|
|
122
|
-
async function zip(fpSrc, fpTar, level =
|
|
122
|
+
async function zip(fpSrc, fpTar, level = 1, pw = '') { //7z的-mx1為最快速壓縮(mx0為不壓縮)
|
|
123
123
|
let arg = [
|
|
124
124
|
'a',
|
|
125
125
|
fpTar,
|
|
@@ -141,8 +141,8 @@ function m7z() {
|
|
|
141
141
|
* @param {String} fpSrc 輸入壓縮來源檔案位置字串
|
|
142
142
|
* @param {String} fpTar 輸入壓縮目標檔案位置字串
|
|
143
143
|
* @param {Object} [opt={}] 輸入設定物件,預設{}
|
|
144
|
-
* @param {Integer} [opt.level] 輸入壓縮程度整數,範圍為0至9,0為不壓縮而9為最高壓縮,預設
|
|
145
|
-
* @param {String} [opt.pw] 輸入壓縮密碼字串,預設''
|
|
144
|
+
* @param {Integer} [opt.level=1] 輸入壓縮程度整數,範圍為0至9,0為不壓縮而9為最高壓縮,預設1為最快速壓縮
|
|
145
|
+
* @param {String} [opt.pw=''] 輸入壓縮密碼字串,預設''
|
|
146
146
|
* @returns {Promise} 回傳Promise,resolve為成功資訊,reject為失敗資訊
|
|
147
147
|
*/
|
|
148
148
|
async function zipFile(fpSrc, fpTar, opt = {}) {
|
|
@@ -161,7 +161,7 @@ function m7z() {
|
|
|
161
161
|
}
|
|
162
162
|
|
|
163
163
|
//default
|
|
164
|
-
let level = get(opt, 'level',
|
|
164
|
+
let level = get(opt, 'level', 1)
|
|
165
165
|
let pw = get(opt, 'pw', '')
|
|
166
166
|
|
|
167
167
|
//r
|
|
@@ -190,7 +190,7 @@ function m7z() {
|
|
|
190
190
|
* @param {String} fpSrc 輸入壓縮來源資料夾位置字串
|
|
191
191
|
* @param {String} fpTar 輸入壓縮目標資料夾位置字串
|
|
192
192
|
* @param {Object} [opt={}] 輸入設定物件,預設{}
|
|
193
|
-
* @param {Integer} [opt.level] 輸入壓縮程度整數,範圍為0至9,0為不壓縮而9為最高壓縮,預設
|
|
193
|
+
* @param {Integer} [opt.level=1] 輸入壓縮程度整數,範圍為0至9,0為不壓縮而9為最高壓縮,預設1為最快速壓縮
|
|
194
194
|
* @param {String} [opt.pw] 輸入壓縮密碼字串,預設''
|
|
195
195
|
* @returns {Promise} 回傳Promise,resolve為成功資訊,reject為失敗資訊
|
|
196
196
|
*/
|
|
@@ -210,7 +210,7 @@ function m7z() {
|
|
|
210
210
|
}
|
|
211
211
|
|
|
212
212
|
//default
|
|
213
|
-
let level = get(opt, 'level',
|
|
213
|
+
let level = get(opt, 'level', 1)
|
|
214
214
|
let pw = get(opt, 'pw', '')
|
|
215
215
|
|
|
216
216
|
//r
|
|
@@ -274,7 +274,7 @@ function m7z() {
|
|
|
274
274
|
let error = null
|
|
275
275
|
let r = await execProcess(prog, arg)
|
|
276
276
|
.catch((err) => {
|
|
277
|
-
error = err
|
|
277
|
+
error = err.toString()
|
|
278
278
|
})
|
|
279
279
|
|
|
280
280
|
//check
|
package/src/mZip.mjs
CHANGED
|
@@ -1,17 +1,14 @@
|
|
|
1
1
|
import path from 'path'
|
|
2
2
|
import fs from 'fs'
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
import
|
|
6
|
-
import get from 'lodash-es/get.js'
|
|
7
|
-
import genPm from 'wsemi/src/genPm.mjs'
|
|
8
|
-
import pmMap from 'wsemi/src/pmMap.mjs'
|
|
3
|
+
import { configure, ZipWriter, ZipReader, Uint8ArrayReader, Uint8ArrayWriter } from '@zip.js/zip.js'
|
|
4
|
+
import get from 'lodash-es/get.js'
|
|
5
|
+
import fsTreeFolder from 'wsemi/src/fsTreeFolder.mjs'
|
|
9
6
|
import getFileName from 'wsemi/src/getFileName.mjs'
|
|
10
7
|
import checkTarget from './checkTarget.mjs'
|
|
11
8
|
|
|
12
9
|
|
|
13
|
-
//
|
|
14
|
-
|
|
10
|
+
//configure
|
|
11
|
+
configure({ useWebWorkers: false }) //關閉web worker改用主執行緒壓縮, 確保nodejs下無殘留worker導致process無法結束
|
|
15
12
|
|
|
16
13
|
|
|
17
14
|
/**
|
|
@@ -22,13 +19,13 @@ archiver.registerFormat('zip-encrypted', archiverEnc)
|
|
|
22
19
|
* @example
|
|
23
20
|
* import wz from 'w-zip'
|
|
24
21
|
*
|
|
25
|
-
* let fpUnzip = './
|
|
22
|
+
* let fpUnzip = './test/outputZip'
|
|
26
23
|
* let fpUnzipExtract = fpUnzip + '/extract'
|
|
27
24
|
*
|
|
28
|
-
* let fpSrc1 = './
|
|
25
|
+
* let fpSrc1 = './test/input/file1(中文).txt'
|
|
29
26
|
* let fpZip1 = fpUnzip + '/test1.zip'
|
|
30
27
|
*
|
|
31
|
-
* let fpSrc2 = './
|
|
28
|
+
* let fpSrc2 = './test/input/folder1'
|
|
32
29
|
* let fpZip2 = fpUnzip + '/test2.zip'
|
|
33
30
|
* let fpZip2PW = fpUnzip + '/test2PW.zip'
|
|
34
31
|
* let pw = 'abc'
|
|
@@ -100,7 +97,7 @@ function mZip() {
|
|
|
100
97
|
* @param {String} fpSrc 輸入壓縮來源檔案位置字串
|
|
101
98
|
* @param {String} fpTar 輸入壓縮目標檔案位置字串
|
|
102
99
|
* @param {Object} [opt={}] 輸入設定物件,預設{}
|
|
103
|
-
* @param {Integer} [opt.level] 輸入壓縮程度整數,範圍為0至9,0為不壓縮而9為最高壓縮,預設9
|
|
100
|
+
* @param {Integer} [opt.level=9] 輸入壓縮程度整數,範圍為0至9,0為不壓縮而9為最高壓縮,預設9
|
|
104
101
|
* @param {String} [opt.pw] 輸入壓縮密碼字串,預設''
|
|
105
102
|
* @returns {Promise} 回傳Promise,resolve為成功資訊,reject為失敗資訊
|
|
106
103
|
*/
|
|
@@ -125,54 +122,32 @@ function mZip() {
|
|
|
125
122
|
|
|
126
123
|
try {
|
|
127
124
|
|
|
128
|
-
//pm
|
|
129
|
-
let pm = genPm()
|
|
130
|
-
|
|
131
125
|
//check
|
|
132
126
|
if (!fs.existsSync(path.dirname(fpTar))) {
|
|
133
127
|
fs.mkdirSync(path.dirname(fpTar), { recursive: true })
|
|
134
128
|
}
|
|
135
129
|
|
|
136
|
-
//
|
|
137
|
-
let
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
zlib: { level },
|
|
142
|
-
})
|
|
143
|
-
}
|
|
144
|
-
else {
|
|
145
|
-
archive = archiver('zip-encrypted', {
|
|
146
|
-
zlib: { level },
|
|
147
|
-
encryptionMethod: 'zip20', //只能用zip20, 因unzipper目前不支援aes256
|
|
148
|
-
password: pw,
|
|
149
|
-
})
|
|
130
|
+
//zipOpt
|
|
131
|
+
let zipOpt = { level }
|
|
132
|
+
if (pw !== '') {
|
|
133
|
+
zipOpt.password = pw
|
|
134
|
+
zipOpt.zipCrypto = true //使用ZipCrypto(即zip20)加密維持與舊版相同相容性, 若需更強加密可改為encryptionStrength: 3(AES-256)
|
|
150
135
|
}
|
|
151
136
|
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
//resolve
|
|
156
|
-
pm.resolve('done: ' + fpTar)
|
|
137
|
+
//zipWriter
|
|
138
|
+
let zipWriter = new ZipWriter(new Uint8ArrayWriter(), zipOpt)
|
|
157
139
|
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
})
|
|
162
|
-
archive.on('error', function(err) {
|
|
163
|
-
Promise.reject(err)
|
|
164
|
-
})
|
|
140
|
+
//add
|
|
141
|
+
let b = fs.readFileSync(fpSrc)
|
|
142
|
+
await zipWriter.add(path.basename(fpSrc), new Uint8ArrayReader(b))
|
|
165
143
|
|
|
166
|
-
//
|
|
167
|
-
|
|
144
|
+
//close
|
|
145
|
+
let u8 = await zipWriter.close()
|
|
168
146
|
|
|
169
|
-
//
|
|
170
|
-
|
|
147
|
+
//writeFileSync
|
|
148
|
+
fs.writeFileSync(fpTar, u8)
|
|
171
149
|
|
|
172
|
-
|
|
173
|
-
archive.finalize()
|
|
174
|
-
|
|
175
|
-
return pm
|
|
150
|
+
return Promise.resolve('done: ' + fpTar)
|
|
176
151
|
}
|
|
177
152
|
catch (err) {
|
|
178
153
|
return Promise.reject(err)
|
|
@@ -210,54 +185,57 @@ function mZip() {
|
|
|
210
185
|
|
|
211
186
|
try {
|
|
212
187
|
|
|
213
|
-
//pm
|
|
214
|
-
let pm = genPm()
|
|
215
|
-
|
|
216
188
|
//check
|
|
217
189
|
if (!fs.existsSync(path.dirname(fpTar))) {
|
|
218
190
|
fs.mkdirSync(path.dirname(fpTar), { recursive: true })
|
|
219
191
|
}
|
|
220
192
|
|
|
221
|
-
//
|
|
222
|
-
let
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
zlib: { level },
|
|
227
|
-
})
|
|
228
|
-
}
|
|
229
|
-
else {
|
|
230
|
-
archive = archiver('zip-encrypted', {
|
|
231
|
-
zlib: { level },
|
|
232
|
-
encryptionMethod: 'zip20', //只能用zip20, 因unzipper目前不支援aes256
|
|
233
|
-
password: pw,
|
|
234
|
-
})
|
|
193
|
+
//zipOpt
|
|
194
|
+
let zipOpt = { level }
|
|
195
|
+
if (pw !== '') {
|
|
196
|
+
zipOpt.password = pw
|
|
197
|
+
zipOpt.zipCrypto = true //使用ZipCrypto(即zip20)加密維持與舊版相同相容性, 若需更強加密可改為encryptionStrength: 3(AES-256)
|
|
235
198
|
}
|
|
236
199
|
|
|
237
|
-
|
|
238
|
-
|
|
200
|
+
//zipWriter
|
|
201
|
+
let zipWriter = new ZipWriter(new Uint8ArrayWriter(), zipOpt)
|
|
239
202
|
|
|
240
|
-
|
|
241
|
-
|
|
203
|
+
//bn, 以來源資料夾名稱為zip內根目錄(同archiver.directory(fpSrc, basename)行為)
|
|
204
|
+
let bn = path.basename(fpSrc)
|
|
242
205
|
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
//console.log('warning', warn)
|
|
246
|
-
})
|
|
247
|
-
archive.on('error', function(err) {
|
|
248
|
-
Promise.reject(err)
|
|
249
|
-
})
|
|
206
|
+
//items, 遞迴列舉資料夾下全部檔案與子資料夾
|
|
207
|
+
let items = fsTreeFolder(fpSrc, null)
|
|
250
208
|
|
|
251
|
-
//
|
|
252
|
-
|
|
209
|
+
//add
|
|
210
|
+
for (let item of items) {
|
|
253
211
|
|
|
254
|
-
|
|
255
|
-
|
|
212
|
+
//name, zip內相對路徑統一用'/'
|
|
213
|
+
let rel = path.relative(fpSrc, item.path)
|
|
214
|
+
let name = path.join(bn, rel).replaceAll('\\', '/')
|
|
215
|
+
|
|
216
|
+
if (item.isFolder) {
|
|
217
|
+
|
|
218
|
+
//directory, 保留空資料夾結構
|
|
219
|
+
await zipWriter.add(name, undefined, { directory: true })
|
|
220
|
+
|
|
221
|
+
}
|
|
222
|
+
else {
|
|
256
223
|
|
|
257
|
-
|
|
258
|
-
|
|
224
|
+
//file
|
|
225
|
+
let b = fs.readFileSync(item.path)
|
|
226
|
+
await zipWriter.add(name, new Uint8ArrayReader(b))
|
|
259
227
|
|
|
260
|
-
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
//close
|
|
233
|
+
let u8 = await zipWriter.close()
|
|
234
|
+
|
|
235
|
+
//writeFileSync
|
|
236
|
+
fs.writeFileSync(fpTar, u8)
|
|
237
|
+
|
|
238
|
+
return Promise.resolve('done: ' + fpTar)
|
|
261
239
|
}
|
|
262
240
|
catch (err) {
|
|
263
241
|
return Promise.reject(err)
|
|
@@ -293,67 +271,54 @@ function mZip() {
|
|
|
293
271
|
//default
|
|
294
272
|
let pw = get(opt, 'pw', '')
|
|
295
273
|
|
|
296
|
-
|
|
297
|
-
async function extract(fpSrc, fpTar, password) {
|
|
298
|
-
|
|
299
|
-
//mkdir
|
|
300
|
-
async function mkdir(fd) {
|
|
301
|
-
try {
|
|
302
|
-
|
|
303
|
-
//check
|
|
304
|
-
if (!fs.existsSync(fd)) {
|
|
305
|
-
fs.mkdirSync(fd, { recursive: true })
|
|
306
|
-
}
|
|
274
|
+
try {
|
|
307
275
|
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
return 'done'
|
|
276
|
+
//readerOpt
|
|
277
|
+
let readerOpt = {}
|
|
278
|
+
if (pw !== '') {
|
|
279
|
+
readerOpt.password = pw
|
|
313
280
|
}
|
|
314
281
|
|
|
315
|
-
//
|
|
316
|
-
|
|
317
|
-
|
|
282
|
+
//zipReader
|
|
283
|
+
let b = fs.readFileSync(fpSrc)
|
|
284
|
+
let zipReader = new ZipReader(new Uint8ArrayReader(b), readerOpt)
|
|
318
285
|
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
fs.mkdirSync(path.dirname(fn), { recursive: true })
|
|
322
|
-
}
|
|
286
|
+
//entries
|
|
287
|
+
let entries = await zipReader.getEntries()
|
|
323
288
|
|
|
324
|
-
|
|
325
|
-
|
|
289
|
+
//extract
|
|
290
|
+
for (let entry of entries) {
|
|
326
291
|
|
|
327
|
-
|
|
328
|
-
|
|
292
|
+
//p, 解壓目標位置
|
|
293
|
+
let p = path.join(fpTar, entry.filename)
|
|
329
294
|
|
|
330
|
-
|
|
331
|
-
catch (err) {
|
|
332
|
-
return Promise.reject(err)
|
|
333
|
-
}
|
|
334
|
-
return 'done'
|
|
335
|
-
}
|
|
295
|
+
if (entry.directory) {
|
|
336
296
|
|
|
337
|
-
|
|
338
|
-
|
|
297
|
+
//mkdir
|
|
298
|
+
if (!fs.existsSync(p)) {
|
|
299
|
+
fs.mkdirSync(p, { recursive: true })
|
|
300
|
+
}
|
|
339
301
|
|
|
340
|
-
//pmMap
|
|
341
|
-
return pmMap(directory.files, async (file) => {
|
|
342
|
-
let p = path.join(fpTar, file.path)
|
|
343
|
-
if (file.type === 'File') {
|
|
344
|
-
return extractFile(file, p, password)
|
|
345
302
|
}
|
|
346
303
|
else {
|
|
347
|
-
return mkdir(p)
|
|
348
|
-
}
|
|
349
|
-
})
|
|
350
304
|
|
|
351
|
-
|
|
305
|
+
//mkdir, 先建立上層資料夾
|
|
306
|
+
if (!fs.existsSync(path.dirname(p))) {
|
|
307
|
+
fs.mkdirSync(path.dirname(p), { recursive: true })
|
|
308
|
+
}
|
|
352
309
|
|
|
353
|
-
|
|
310
|
+
//getData
|
|
311
|
+
let u8 = await entry.getData(new Uint8ArrayWriter())
|
|
354
312
|
|
|
355
|
-
|
|
356
|
-
|
|
313
|
+
//writeFileSync
|
|
314
|
+
fs.writeFileSync(p, u8)
|
|
315
|
+
|
|
316
|
+
}
|
|
317
|
+
|
|
318
|
+
}
|
|
319
|
+
|
|
320
|
+
//close
|
|
321
|
+
await zipReader.close()
|
|
357
322
|
|
|
358
323
|
return Promise.resolve('done: ' + getFileName(fpTar))
|
|
359
324
|
}
|
package/test/7z.test.mjs
CHANGED
|
@@ -15,13 +15,13 @@ describe('7z', function() {
|
|
|
15
15
|
return
|
|
16
16
|
}
|
|
17
17
|
|
|
18
|
-
let fpUnzip = './
|
|
18
|
+
let fpUnzip = './test/output7z'
|
|
19
19
|
let fpUnzipExtract = fpUnzip + '/extract'
|
|
20
20
|
|
|
21
|
-
let fpSrc1 = './
|
|
21
|
+
let fpSrc1 = './test/input/file1(中文).txt'
|
|
22
22
|
let fpZip1 = fpUnzip + '/test1.7z'
|
|
23
23
|
|
|
24
|
-
let fpSrc2 = './
|
|
24
|
+
let fpSrc2 = './test/input/folder1'
|
|
25
25
|
let fpZip2 = fpUnzip + '/test2.7z'
|
|
26
26
|
let fpZip2PW = fpUnzip + '/test2PW.7z'
|
|
27
27
|
let pw = 'abc'
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/test/zip.test.mjs
CHANGED
|
@@ -10,13 +10,13 @@ import wz from '../src/WZip.mjs'
|
|
|
10
10
|
|
|
11
11
|
describe('zip', function() {
|
|
12
12
|
|
|
13
|
-
let fpUnzip = './
|
|
13
|
+
let fpUnzip = './test/outputZip'
|
|
14
14
|
let fpUnzipExtract = fpUnzip + '/extract'
|
|
15
15
|
|
|
16
|
-
let fpSrc1 = './
|
|
16
|
+
let fpSrc1 = './test/input/file1(中文).txt'
|
|
17
17
|
let fpZip1 = fpUnzip + '/test1.zip'
|
|
18
18
|
|
|
19
|
-
let fpSrc2 = './
|
|
19
|
+
let fpSrc2 = './test/input/folder1'
|
|
20
20
|
let fpZip2 = fpUnzip + '/test2.zip'
|
|
21
21
|
let fpZip2PW = fpUnzip + '/test2PW.zip'
|
|
22
22
|
let pw = 'abc'
|
package/toolg/gDistRollup.mjs
CHANGED
|
@@ -15,17 +15,13 @@ rollupFiles({
|
|
|
15
15
|
'path': 'path',
|
|
16
16
|
'fs': 'fs',
|
|
17
17
|
'child_process': 'child_process',
|
|
18
|
-
'
|
|
19
|
-
'archiver-zip-encrypted': 'archiver-zip-encrypted',
|
|
20
|
-
'unzipper': 'unzipper',
|
|
18
|
+
'@zip.js/zip.js': 'zip',
|
|
21
19
|
},
|
|
22
20
|
external: [
|
|
23
21
|
'path',
|
|
24
22
|
'fs',
|
|
25
23
|
'child_process',
|
|
26
|
-
'
|
|
27
|
-
'archiver-zip-encrypted',
|
|
28
|
-
'unzipper',
|
|
24
|
+
'@zip.js/zip.js',
|
|
29
25
|
],
|
|
30
26
|
})
|
|
31
27
|
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|