mirror of
https://github.com/codedread/bitjs
synced 2025-10-06 10:49:55 +02:00
Remove old HTML archive unit tests - only automated tests going forward
This commit is contained in:
parent
cf26e0a2de
commit
2e1d9177b4
26 changed files with 37 additions and 371 deletions
|
@ -134,6 +134,8 @@ const crc = bstream.readBits(12); // read in 12 bits as CRC, advancing the point
|
||||||
const flagbits = bstream.peekBits(6); // look ahead at next 6 bits, but do not advance the pointer
|
const flagbits = bstream.peekBits(6); // look ahead at next 6 bits, but do not advance the pointer
|
||||||
```
|
```
|
||||||
|
|
||||||
|
<!-- TODO(bitjs): Provide better documentation -->
|
||||||
|
|
||||||
## Reference
|
## Reference
|
||||||
|
|
||||||
* [UnRar](http://codedread.github.io/bitjs/docs/unrar.html): A work-in-progress description of the
|
* [UnRar](http://codedread.github.io/bitjs/docs/unrar.html): A work-in-progress description of the
|
||||||
|
|
|
@ -1,8 +0,0 @@
|
||||||
<!DOCTYPE html>
|
|
||||||
<html>
|
|
||||||
<head>
|
|
||||||
<title>Unit tests for bitjs.archive</title>
|
|
||||||
</head>
|
|
||||||
<body></body>
|
|
||||||
<script type="module" src="archive-test.js"></script>
|
|
||||||
</html>
|
|
|
@ -1,71 +0,0 @@
|
||||||
/*
|
|
||||||
* archive-test.js
|
|
||||||
*
|
|
||||||
* Licensed under the MIT License
|
|
||||||
*
|
|
||||||
* Copyright(c) 2017 Google Inc.
|
|
||||||
*/
|
|
||||||
|
|
||||||
import { getUnarchiver, UnarchiveEventType } from '../archive/archive.js';
|
|
||||||
import { assertEquals, runTests } from './muther.js';
|
|
||||||
|
|
||||||
const testInputs = {
|
|
||||||
'testUnzipDeflate': 'archive-testfiles/test-unzip-deflate.json',
|
|
||||||
'testUnzipDescriptor': 'archive-testfiles/test-unzip-descriptor.json',
|
|
||||||
'testUnzipStore': 'archive-testfiles/test-unzip-store.json',
|
|
||||||
'testUnrarM1': 'archive-testfiles/test-unrar-m1.json',
|
|
||||||
'testUnrarM2': 'archive-testfiles/test-unrar-m2.json',
|
|
||||||
'testUnrarM3': 'archive-testfiles/test-unrar-m3.json',
|
|
||||||
'testUnrarM4': 'archive-testfiles/test-unrar-m4.json',
|
|
||||||
'testUnrarM5': 'archive-testfiles/test-unrar-m5.json',
|
|
||||||
'testUnrarMA4': 'archive-testfiles/test-unrar-ma4.json',
|
|
||||||
// On a Mac, tar files contain hidden files. To disable this do:
|
|
||||||
// $ COPYFILE_DISABLE=1 tar cvf lorem.tar lorem.txt
|
|
||||||
'testUntar': 'archive-testfiles/test-untar-1.json',
|
|
||||||
};
|
|
||||||
|
|
||||||
// TODO: It is an error for the Unarchiver worker not to terminate or send a FINISH event.
|
|
||||||
// We need to be able to test that here.
|
|
||||||
|
|
||||||
const testSuite = { tests: {} };
|
|
||||||
for (let testName in testInputs) {
|
|
||||||
const testInputFilename = testInputs[testName];
|
|
||||||
testSuite.tests[testName] = function () {
|
|
||||||
return new Promise((resolve, reject) => {
|
|
||||||
const scriptEl = document.createElement('script');
|
|
||||||
scriptEl.setAttribute('src', testInputFilename);
|
|
||||||
scriptEl.addEventListener('load', evt => {
|
|
||||||
const testFile = window.archiveTestFile;
|
|
||||||
try {
|
|
||||||
const archivedFile = new Uint8Array(
|
|
||||||
atob(testFile.archivedFile).split(',').map(str => parseInt(str)));
|
|
||||||
const unarchivedFile = new Uint8Array(
|
|
||||||
atob(testFile.unarchivedFile).split(',').map(str => parseInt(str)));
|
|
||||||
const unarchiver = getUnarchiver(archivedFile.buffer, {
|
|
||||||
pathToBitJS: '../',
|
|
||||||
});
|
|
||||||
unarchiver.addEventListener(UnarchiveEventType.EXTRACT, evt => {
|
|
||||||
const theUnarchivedFile = evt.unarchivedFile.fileData;
|
|
||||||
try {
|
|
||||||
assertEquals(theUnarchivedFile.length, unarchivedFile.length,
|
|
||||||
'The unarchived buffer was not the right length');
|
|
||||||
for (let i = 0; i < theUnarchivedFile.length; ++i) {
|
|
||||||
assertEquals(theUnarchivedFile[i], unarchivedFile[i],
|
|
||||||
'Byte #' + i + ' did not match');
|
|
||||||
}
|
|
||||||
resolve();
|
|
||||||
} catch (err) {
|
|
||||||
reject(err);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
unarchiver.start();
|
|
||||||
} catch (err) {
|
|
||||||
reject(err);
|
|
||||||
}
|
|
||||||
});
|
|
||||||
document.body.appendChild(scriptEl);
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
runTests(testSuite);
|
|
|
@ -1,5 +0,0 @@
|
||||||
# Test files for unarchivers.
|
|
||||||
|
|
||||||
1. Create a zip or rar file with just one file inside it.
|
|
||||||
2. Use test-uploader.html and choose the archived file and the unarchived file.
|
|
||||||
3. Paste that JSON output into a test json file.
|
|
|
@ -1 +0,0 @@
|
||||||
window.archiveTestFile={"archivedFile":"ODIsOTcsMTE0LDMzLDI2LDcsMCwyMDcsMTQ0LDExNSwwLDAsMTMsMCwwLDAsMCwwLDAsMCwxNjEsMTM5LDExNiwzMiwxMjgsNDEsMCwxNiwxLDAsMCwxODksMSwwLDAsMywxODksMTk3LDE3OCwxNTIsNzEsOTYsODMsNzQsMjksNDksOSwwLDE2NCwxMjksMCwwLDEwOCwxMTEsMTE0LDEwMSwxMDksNDYsMTE2LDEyMCwxMTYsMTYsMjAsMjAwLDIxMywxNSwyMTMsNjUsNzgsMTQ5LDg0LDYsMjMxLDEwNCwxNjksNjIsMjMxLDIzNiwxNjAsOCwyMTcsMTg5LDEzOSw0OSwyNDgsMjM1LDk3LDE4NSwxODMsMjI4LDE2MCwxOTksNTksMzcsMzQsMTk4LDIsMTgsMjI5LDY0LDE1NSw2MCwxNDQsMjQsMTY5LDYzLDEzOSwyMjksMTA2LDE0LDUyLDI0NSwxOSwxODksNDcsMTQ1LDE2MiwxOTMsNDIsMTczLDIxNiw3NCwyNDYsMjEwLDIwMSwxNDksMTU5LDMzLDM4LDExMiwxMTcsMzUsMTEwLDY2LDIwOCwxOTcsMjA1LDQ0LDIyNyw2NCw4MiwyNTAsMTczLDIzMCwyNSwxMDcsMTM2LDIyMiw1NCwxNDUsMTUzLDE1NSwyMTcsMTMxLDE3NiwxNjIsMTI1LDY2LDE2MCwxNzMsMjEwLDIyNiwxMzgsMTY3LDU0LDY0LDE0OCw2MiwyOSw1NiwzMSw0NCwyMiwxOTgsMTc2LDE4Niw0MiwxMTksMjI3LDIwNCw4NCwxNDksMjM2LDYwLDU3LDIwOCwxODEsMjQ0LDIxNywxMjEsMTMzLDI0NCwxODUsMTQ1LDEwMCw5OSwxMjMsNywxNjUsMTgsMTc4LDE5MSw3NCwxMTksMTQyLDExNiwxMTksMTk1LDI1MCwxOTEsNTYsMTQwLDIyNCwxNjksMTUsMTg2LDE5NSw5MCwyNTMsNjQsNzEsNDksMTg0LDMwLDIxOSw5NSwxNjMsMTc4LDEzMSwxNTEsMTM0LDMwLDE2NSwxNjYsMTk1LDQzLDE0MCwxNzUsMjE4LDIxOCwxMDcsMTUyLDE1NywxOTksMTk5LDE1NSwyMDksMjQxLDI4LDc1LDEyLDgxLDM0LDIzLDkwLDgxLDM1LDc0LDEyNywxMzksMjA5LDE2LDIyNywxODcsMjQyLDgxLDEzMywxODIsMjA4LDQ4LDE1MywxMzgsMzEsNjAsMTUsMTI3LDgyLDkyLDUwLDE5MiwxOTgsMTQwLDEsMTc1LDQxLDM0LDIwMiw1MCwxNjQsMjQ4LDUxLDcyLDg4LDEzNiwyMDUsMTM0LDUxLDExNSw1MywxODIsMjAxLDI3LDE3LDE0MiwxODgsMTU4LDE1Miw3NywyMDYsMTMzLDI1MSwyNDcsNTAsNDAsMzgsMTg2LDkyLDIzOCwyMzcsMTExLDc3LDE3OCw4Myw5OCw2LDAsMTgxLDI1Miw5MCwxMjIsMjQxLDI0OCwxMjgsMTk2LDYxLDEyMywwLDY0LDcsMA==","unarchivedFile":"NzYsMTExLDExNCwxMDEsMTA5LDMyLDEwNSwxMTIsMTE1LDExNywxMDksMzIsMTAwLDExMSwxMDgsMTExLDExNCwzMiwxMTUsMTA1LDExNiwzMiw5NywxMDksMTAxLDExNiw0NCwzMiw5OSwxMTEsMTEwLDExNSwxMDEsOTksMTE2LDEwMSwxMTYsMTE3LDExNCwzMiw5NywxMDAsMTA1LDExMiwxMDUsMTE1LDk5LDEwNSwxMTAsMTAzLDMyLDEwMSwxMDgsMTA1LDExNiw0NCwzMiwxMTUsMTAxLDEwMCwzMiwxMDAsMTExLDMyLDEwMSwxMDUsMTE3LDExNSwxMDksMTExLDEwMCwzMiwxMTYsMTAxLDEwOSwxMTIsMTExLDExNCwzMiwxMDUsMTEwLDk5LDEwNSwxMDAsMTA1LDEwMCwxMTcsMTEwLDExNiwzMiwxMTcsMTE2LDMyLDEwOCw5Nyw5OCwxMTEsMTE0LDEwMSwzMiwxMDEsMTE2LDMyLDEwMCwxMTEsMTA4LDExMSwxMTQsMTAxLDMyLDEwOSw5NywxMDMsMTEwLDk3LDMyLDk3LDEwOCwxMDUsMTEzLDExNyw5Nyw0NiwzMiw4NSwxMTYsMzIsMTAxLDExMCwxMDUsMTA5LDMyLDk3LDEwMCwzMiwxMDksMTA1LDExMCwxMDUsMTA5LDMyLDExOCwxMDEsMTEwLDEwNSw5NywxMDksNDQsMzIsMTEzLDExNywxMDUsMTE1LDMyLDExMCwxMTEsMTE1LDExNiwxMTQsMTE3LDEwMCwzMiwxMDEsMTIwLDEwMSwxMTQsOTksMTA1LDExNiw5NywxMTYsMTA1LDExMSwxMTAsMzIsMTE3LDEwOCwxMDgsOTcsMTA5LDk5LDExMSwzMiwxMDgsOTcsOTgsMTExLDExNCwxMDUsMTE1LDMyLDExMCwxMDUsMTE1LDEwNSwzMiwxMTcsMTE2LDMyLDk3LDEwOCwxMDUsMTEzLDExNywxMDUsMTEyLDMyLDEwMSwxMjAsMzIsMTAxLDk3LDMyLDk5LDExMSwxMDksMTA5LDExMSwxMDAsMTExLDMyLDk5LDExMSwxMTAsMTE1LDEwMSwxMTMsMTE3LDk3LDExNiw0NiwzMiw2OCwxMTcsMTA1LDExNSwzMiw5NywxMTcsMTE2LDEwMSwzMiwxMDUsMTE0LDExNywxMTQsMTAxLDMyLDEwMCwxMTEsMTA4LDExMSwxMTQsMzIsMTA1LDExMCwzMiwxMTQsMTAxLDExMiwxMTQsMTAxLDEwNCwxMDEsMTEwLDEwMCwxMDEsMTE0LDEwNSwxMTYsMzIsMTA1LDExMCwzMiwxMTgsMTExLDEwOCwxMTcsMTEyLDExNiw5NywxMTYsMTAxLDMyLDExOCwxMDEsMTA4LDEwNSwxMTYsMzIsMTAxLDExNSwxMTUsMTAxLDMyLDk5LDEwNSwxMDgsMTA4LDExNywxMDksMzIsMTAwLDExMSwxMDgsMTExLDExNCwxMDEsMzIsMTAxLDExNywzMiwxMDIsMTE3LDEwMywxMDUsOTcsMTE2LDMyLDExMCwxMTcsMTA4LDEwOCw5NywzMiwxMTIsOTcsMTE0LDEwNSw5NywxMTYsMTE3LDExNCw0NiwzMiw2OSwxMjAsOTksMTAxLDExMiwxMTYsMTAxLDExNywxMTQsMzIsMTE1LDEwNSwxMTAsMTE2LDMyLDExMSw5OSw5OSw5NywxMDEsOTksOTcsMTE2LDMyLDk5LDExNywxMTIsMTA1LDEwMCw5NywxMTYsOTcsMTE2LDMyLDExMCwxMTEsMTEwLDMyLDExMiwxMTQsMTExLDEwNSwxMDAsMTAxLDExMCwxMTYsNDQsMzIsMTE1LDExNywxMTAsMTE2LDMyLDEwNSwxMTAsMzIsOTksMTE3LDEwOCwxMTIsOTcsMzIsMTEzLDExNywxMDUsMzIsMTExLDEwMiwxMDIsMTA1LDk5LDEwNSw5NywzMiwxMDAsMTAxLDExNSwxMDEsMTE0LDExNywxMTAsMTE2LDMyLDEwOSwxMTEsMTA4LDEwOCwxMDUsMTE2LDMyLDk3LDExMCwxMDUsMTA5LDMyLDEwNSwxMDAsMzIsMTAxLDExNSwxMTYsMzIsMTA4LDk3LDk4LDExMSwxMTQsMTE3LDEwOSw0Ng=="}
|
|
|
@ -1 +0,0 @@
|
||||||
window.archiveTestFile={"archivedFile":"ODIsOTcsMTE0LDMzLDI2LDcsMCwyMDcsMTQ0LDExNSwwLDAsMTMsMCwwLDAsMCwwLDAsMCwyLDI0MywxMTYsMzIsMTI4LDQxLDAsMzgsMSwwLDAsMTg5LDEsMCwwLDMsMTg5LDE5NywxNzgsMTUyLDcxLDk2LDgzLDc0LDI5LDUwLDksMCwxNjQsMTI5LDAsMCwxMDgsMTExLDExNCwxMDEsMTA5LDQ2LDExNiwxMjAsMTE2LDEzLDY1LDEyLDE0NSwxNSwyMTMsNjUsMTksMTM4LDE1NiwyLDQ0LDIyNSw4MiwxMDcsMTU1LDEwMywwLDMyLDIzLDExMywxNjUsOTYsOTIsNjIsNDksMTAzLDEyNCwxNTQsNTAsNDMsMTkyLDQwLDE0MSwyMDMsMTQ3LDEzNiwxNDAsMTA5LDIxNSwyMDMsMjI3LDI0NCwyNTQsODMsMTE2LDIxOSw4NCwxNTEsMTg5LDE5NSwyNTMsOTksMzksNjEsNjksMTg4LDIzNSwyMjUsMTA4LDExOCwxODEsODQsMjAyLDEzOCw5MSwyMjEsNzksMzcsNTAsNDgsMTU1LDE1Myw3NSw0MiwyMjEsODYsMjIwLDEyLDE2NiwxOTQsMTM0LDE3MCwxMTgsMTk2LDExOSw0Nyw0NSw2MSwyMiwxMzMsODksMTkwLDU0LDg4LDQzLDI0Nyw2MSwyNTEsMjU0LDUsMTMyLDE4MiwxNzYsMSwyMTUsMTM5LDEwMSwyNTEsMTUyLDE3MiwxNCwxNTYsMTQyLDIxNiwxODksMTIyLDE5Myw5NiwxNzYsNywyMDUsODcsMjA5LDk0LDIxNSwxMTksNjQsMTU4LDk5LDIxNSwxMzAsNzksMjksNzgsMTYxLDIwOCwxMTAsMjUwLDQyLDg0LDM1LDU4LDc0LDE4MywxNjcsMTE4LDExNiwxMzAsMTQ4LDkzLDExLDM5LDExOSwxMDgsMTksMTI2LDg3LDIyOCw3NCwxMDAsMjQxLDE0NiwxNywyNTMsMjMsMjA0LDM5LDE1OSwyNDYsMTYsOTYsMTUsNTIsMTk2LDEyMSw5Niw1MCwyMTgsMTAsMjUyLDIwOCw5MywxMjAsNzgsNjcsMzIsMTYxLDE2MCwyNDIsMjM4LDI2LDE3MCwyMDcsMTI2LDQ3LDEyOSwxOTUsNjgsMTY2LDI1Miw2MywxNDIsMTgzLDE1NCwyMzgsMTAwLDE1NiwxMDQsNzAsMjI2LDE1LDE1MiwxMiwxOCw2NywxNDMsMjQ4LDE1MiwyMTgsNDIsMTczLDQzLDE3NCwxMDYsMTkwLDY1LDE4LDIxLDE4NiwyMjgsMTE2LDUsMTMyLDIyMiwxNTcsMTUyLDE1LDE5OCwxNDIsNDksMTQ5LDIwNiw4LDEzOSwyNCwxODMsMTEzLDg4LDQ4LDM2LDc3LDI0MSwxNjYsMTc3LDE3OCwxMzQsNDksMTgxLDI1LDM2LDE0OCwxNDUsMTksNTcsMTkxLDIzNiw0LDcxLDIyMiwzNywxNjYsMTMyLDQ1LDE3OSwxOTEsMTQxLDE2NCwxNTEsMTI3LDksMTcsMzksMjMsNzIsMTM0LDQyLDEwNCw5NSwyMTAsMjIzLDExOSw3OSwxNjQsMTk2LDYxLDEyMywwLDY0LDcsMA==","unarchivedFile":"NzYsMTExLDExNCwxMDEsMTA5LDMyLDEwNSwxMTIsMTE1LDExNywxMDksMzIsMTAwLDExMSwxMDgsMTExLDExNCwzMiwxMTUsMTA1LDExNiwzMiw5NywxMDksMTAxLDExNiw0NCwzMiw5OSwxMTEsMTEwLDExNSwxMDEsOTksMTE2LDEwMSwxMTYsMTE3LDExNCwzMiw5NywxMDAsMTA1LDExMiwxMDUsMTE1LDk5LDEwNSwxMTAsMTAzLDMyLDEwMSwxMDgsMTA1LDExNiw0NCwzMiwxMTUsMTAxLDEwMCwzMiwxMDAsMTExLDMyLDEwMSwxMDUsMTE3LDExNSwxMDksMTExLDEwMCwzMiwxMTYsMTAxLDEwOSwxMTIsMTExLDExNCwzMiwxMDUsMTEwLDk5LDEwNSwxMDAsMTA1LDEwMCwxMTcsMTEwLDExNiwzMiwxMTcsMTE2LDMyLDEwOCw5Nyw5OCwxMTEsMTE0LDEwMSwzMiwxMDEsMTE2LDMyLDEwMCwxMTEsMTA4LDExMSwxMTQsMTAxLDMyLDEwOSw5NywxMDMsMTEwLDk3LDMyLDk3LDEwOCwxMDUsMTEzLDExNyw5Nyw0NiwzMiw4NSwxMTYsMzIsMTAxLDExMCwxMDUsMTA5LDMyLDk3LDEwMCwzMiwxMDksMTA1LDExMCwxMDUsMTA5LDMyLDExOCwxMDEsMTEwLDEwNSw5NywxMDksNDQsMzIsMTEzLDExNywxMDUsMTE1LDMyLDExMCwxMTEsMTE1LDExNiwxMTQsMTE3LDEwMCwzMiwxMDEsMTIwLDEwMSwxMTQsOTksMTA1LDExNiw5NywxMTYsMTA1LDExMSwxMTAsMzIsMTE3LDEwOCwxMDgsOTcsMTA5LDk5LDExMSwzMiwxMDgsOTcsOTgsMTExLDExNCwxMDUsMTE1LDMyLDExMCwxMDUsMTE1LDEwNSwzMiwxMTcsMTE2LDMyLDk3LDEwOCwxMDUsMTEzLDExNywxMDUsMTEyLDMyLDEwMSwxMjAsMzIsMTAxLDk3LDMyLDk5LDExMSwxMDksMTA5LDExMSwxMDAsMTExLDMyLDk5LDExMSwxMTAsMTE1LDEwMSwxMTMsMTE3LDk3LDExNiw0NiwzMiw2OCwxMTcsMTA1LDExNSwzMiw5NywxMTcsMTE2LDEwMSwzMiwxMDUsMTE0LDExNywxMTQsMTAxLDMyLDEwMCwxMTEsMTA4LDExMSwxMTQsMzIsMTA1LDExMCwzMiwxMTQsMTAxLDExMiwxMTQsMTAxLDEwNCwxMDEsMTEwLDEwMCwxMDEsMTE0LDEwNSwxMTYsMzIsMTA1LDExMCwzMiwxMTgsMTExLDEwOCwxMTcsMTEyLDExNiw5NywxMTYsMTAxLDMyLDExOCwxMDEsMTA4LDEwNSwxMTYsMzIsMTAxLDExNSwxMTUsMTAxLDMyLDk5LDEwNSwxMDgsMTA4LDExNywxMDksMzIsMTAwLDExMSwxMDgsMTExLDExNCwxMDEsMzIsMTAxLDExNywzMiwxMDIsMTE3LDEwMywxMDUsOTcsMTE2LDMyLDExMCwxMTcsMTA4LDEwOCw5NywzMiwxMTIsOTcsMTE0LDEwNSw5NywxMTYsMTE3LDExNCw0NiwzMiw2OSwxMjAsOTksMTAxLDExMiwxMTYsMTAxLDExNywxMTQsMzIsMTE1LDEwNSwxMTAsMTE2LDMyLDExMSw5OSw5OSw5NywxMDEsOTksOTcsMTE2LDMyLDk5LDExNywxMTIsMTA1LDEwMCw5NywxMTYsOTcsMTE2LDMyLDExMCwxMTEsMTEwLDMyLDExMiwxMTQsMTExLDEwNSwxMDAsMTAxLDExMCwxMTYsNDQsMzIsMTE1LDExNywxMTAsMTE2LDMyLDEwNSwxMTAsMzIsOTksMTE3LDEwOCwxMTIsOTcsMzIsMTEzLDExNywxMDUsMzIsMTExLDEwMiwxMDIsMTA1LDk5LDEwNSw5NywzMiwxMDAsMTAxLDExNSwxMDEsMTE0LDExNywxMTAsMTE2LDMyLDEwOSwxMTEsMTA4LDEwOCwxMDUsMTE2LDMyLDk3LDExMCwxMDUsMTA5LDMyLDEwNSwxMDAsMzIsMTAxLDExNSwxMTYsMzIsMTA4LDk3LDk4LDExMSwxMTQsMTE3LDEwOSw0Ng=="}
|
|
|
@ -1 +0,0 @@
|
||||||
window.archiveTestFile={"archivedFile":"ODIsOTcsMTE0LDMzLDI2LDcsMCwyMDcsMTQ0LDExNSwwLDAsMTMsMCwwLDAsMCwwLDAsMCwxNDcsOTgsMTE2LDMyLDEyOCw0MSwwLDM4LDEsMCwwLDE4OSwxLDAsMCwzLDE4OSwxOTcsMTc4LDE1Miw3MSw5Niw4Myw3NCwyOSw1MSw5LDAsMTY0LDEyOSwwLDAsMTA4LDExMSwxMTQsMTAxLDEwOSw0NiwxMTYsMTIwLDExNiwxMywxMjksMTIsMTQ1LDE1LDIxMywxMjksNzgsMTQ5LDQwLDgsMTg2LDEzOCwxNDcsMjA2LDEyMiwyMDIsMCwxMjgsMTEwLDE5OCwxNTAsMTI5LDE3OSw2NCwyMjksMjE1LDIyOCwyNDAsMjE2LDE4MywxMjgsMTk0LDU1LDU1LDE4NiwxNDUsMjQsMjE5LDIwNywyMDMsMTY3LDI0MSwyNTQsODMsMTIwLDIxOSw4OCwxNTEsMjIzLDgxLDI1NCwyNDEsMjE3LDIwNyw4MSwxMDcsNDIsMTE5LDkxLDI5LDQzLDg1LDM0LDE1NCwxNTAsMjQ3LDc5LDIwOSw3NiwxNDAsMzYsMjMwLDc4LDE3MCwxNTAsODUsMTgyLDIyNyw0MSw0OCwxNjEsMTU0LDE1NywxNjEsMjksMjAzLDc1LDc5LDY5LDk3LDgyLDc5LDE0MSw4NSwyMDIsMjUzLDc5LDEyNiwyMjMsMTEzLDkzLDQ1LDE2NCwwLDExNiwyMjYsMjA5LDEyNywzOCw0MiwyMjcsMTU5LDM1LDE4MSw0Nyw5NCwxMTIsODgsNDQsMSwyNDcsNjksMjQ0LDg3LDE5NiwyNDcsNjQsMTU4LDk5LDIxNCwxMzAsNzksMjksNzgsMTYxLDIwOCwxMTAsMjE4LDQyLDg0LDM1LDQxLDIzNyw3NSw4MywxODcsNTksOTYsMTY0LDIxNSw1MCwxOTMsMjE5LDE4MCw5LDE5MSwxMSwyNDIsMzcsNTAsMTIwLDIwMSw4LDI1NSwxMzksMjI2LDE5LDIwNywyNTMsOCw0Niw3LDE1NCw5OCw2MCwxNzYsMjUsMTA4LDE5NywxMjYsMTY4LDQ2LDE4NywxNjcsMSwxNDQsODAsMjA4LDEyMSwxMTksMTMsODUsODcsMTc1LDIzLDIwOCwyMjUsMTYyLDgzLDEyNiwzMSwxOTksOTEsNzcsNTMsNTAsNzgsNTIsMzUsMTEzLDcsMjAwLDYsOSwzMywxOTksMTUyLDE1MiwyMTgsNDAsMTcyLDE2OSwxNTgsNDIsMTgyLDY1LDE4LDIxLDE3MCwyNDYsNTgsMiwxOTQsMTExLDExMCwyMDQsNywyMjMsNzEsMjQsMTk0LDIzMSw0LDY5LDE0MCw5MSwxODQsMTcwLDI0LDE4LDM4LDI0NywyMTEsODgsMjE3LDY3LDI0LDIxNCwxNDAsMTQ2LDc0LDcyLDEzNywxNTYsMjE5LDI0NCwyLDM1LDIzOCwyNDIsMjAzLDM0LDIyLDIxMywyMTksMTk4LDIxOSwzNywyMjMsMjI2LDY4LDczLDE5NywyMTAsMzMsMTIyLDE1NCwyMywxMzcsMTExLDExOSw3OSwxOTYsMTk2LDYxLDEyMywwLDY0LDcsMA==","unarchivedFile":"NzYsMTExLDExNCwxMDEsMTA5LDMyLDEwNSwxMTIsMTE1LDExNywxMDksMzIsMTAwLDExMSwxMDgsMTExLDExNCwzMiwxMTUsMTA1LDExNiwzMiw5NywxMDksMTAxLDExNiw0NCwzMiw5OSwxMTEsMTEwLDExNSwxMDEsOTksMTE2LDEwMSwxMTYsMTE3LDExNCwzMiw5NywxMDAsMTA1LDExMiwxMDUsMTE1LDk5LDEwNSwxMTAsMTAzLDMyLDEwMSwxMDgsMTA1LDExNiw0NCwzMiwxMTUsMTAxLDEwMCwzMiwxMDAsMTExLDMyLDEwMSwxMDUsMTE3LDExNSwxMDksMTExLDEwMCwzMiwxMTYsMTAxLDEwOSwxMTIsMTExLDExNCwzMiwxMDUsMTEwLDk5LDEwNSwxMDAsMTA1LDEwMCwxMTcsMTEwLDExNiwzMiwxMTcsMTE2LDMyLDEwOCw5Nyw5OCwxMTEsMTE0LDEwMSwzMiwxMDEsMTE2LDMyLDEwMCwxMTEsMTA4LDExMSwxMTQsMTAxLDMyLDEwOSw5NywxMDMsMTEwLDk3LDMyLDk3LDEwOCwxMDUsMTEzLDExNyw5Nyw0NiwzMiw4NSwxMTYsMzIsMTAxLDExMCwxMDUsMTA5LDMyLDk3LDEwMCwzMiwxMDksMTA1LDExMCwxMDUsMTA5LDMyLDExOCwxMDEsMTEwLDEwNSw5NywxMDksNDQsMzIsMTEzLDExNywxMDUsMTE1LDMyLDExMCwxMTEsMTE1LDExNiwxMTQsMTE3LDEwMCwzMiwxMDEsMTIwLDEwMSwxMTQsOTksMTA1LDExNiw5NywxMTYsMTA1LDExMSwxMTAsMzIsMTE3LDEwOCwxMDgsOTcsMTA5LDk5LDExMSwzMiwxMDgsOTcsOTgsMTExLDExNCwxMDUsMTE1LDMyLDExMCwxMDUsMTE1LDEwNSwzMiwxMTcsMTE2LDMyLDk3LDEwOCwxMDUsMTEzLDExNywxMDUsMTEyLDMyLDEwMSwxMjAsMzIsMTAxLDk3LDMyLDk5LDExMSwxMDksMTA5LDExMSwxMDAsMTExLDMyLDk5LDExMSwxMTAsMTE1LDEwMSwxMTMsMTE3LDk3LDExNiw0NiwzMiw2OCwxMTcsMTA1LDExNSwzMiw5NywxMTcsMTE2LDEwMSwzMiwxMDUsMTE0LDExNywxMTQsMTAxLDMyLDEwMCwxMTEsMTA4LDExMSwxMTQsMzIsMTA1LDExMCwzMiwxMTQsMTAxLDExMiwxMTQsMTAxLDEwNCwxMDEsMTEwLDEwMCwxMDEsMTE0LDEwNSwxMTYsMzIsMTA1LDExMCwzMiwxMTgsMTExLDEwOCwxMTcsMTEyLDExNiw5NywxMTYsMTAxLDMyLDExOCwxMDEsMTA4LDEwNSwxMTYsMzIsMTAxLDExNSwxMTUsMTAxLDMyLDk5LDEwNSwxMDgsMTA4LDExNywxMDksMzIsMTAwLDExMSwxMDgsMTExLDExNCwxMDEsMzIsMTAxLDExNywzMiwxMDIsMTE3LDEwMywxMDUsOTcsMTE2LDMyLDExMCwxMTcsMTA4LDEwOCw5NywzMiwxMTIsOTcsMTE0LDEwNSw5NywxMTYsMTE3LDExNCw0NiwzMiw2OSwxMjAsOTksMTAxLDExMiwxMTYsMTAxLDExNywxMTQsMzIsMTE1LDEwNSwxMTAsMTE2LDMyLDExMSw5OSw5OSw5NywxMDEsOTksOTcsMTE2LDMyLDk5LDExNywxMTIsMTA1LDEwMCw5NywxMTYsOTcsMTE2LDMyLDExMCwxMTEsMTEwLDMyLDExMiwxMTQsMTExLDEwNSwxMDAsMTAxLDExMCwxMTYsNDQsMzIsMTE1LDExNywxMTAsMTE2LDMyLDEwNSwxMTAsMzIsOTksMTE3LDEwOCwxMTIsOTcsMzIsMTEzLDExNywxMDUsMzIsMTExLDEwMiwxMDIsMTA1LDk5LDEwNSw5NywzMiwxMDAsMTAxLDExNSwxMDEsMTE0LDExNywxMTAsMTE2LDMyLDEwOSwxMTEsMTA4LDEwOCwxMDUsMTE2LDMyLDk3LDExMCwxMDUsMTA5LDMyLDEwNSwxMDAsMzIsMTAxLDExNSwxMTYsMzIsMTA4LDk3LDk4LDExMSwxMTQsMTE3LDEwOSw0Ng=="}
|
|
|
@ -1 +0,0 @@
|
||||||
window.archiveTestFile={"archivedFile":"ODIsOTcsMTE0LDMzLDI2LDcsMCwyMDcsMTQ0LDExNSwwLDAsMTMsMCwwLDAsMCwwLDAsMCwyMzAsMTU0LDExNiwzMiwxMjgsNDEsMCwzOCwxLDAsMCwxODksMSwwLDAsMywxODksMTk3LDE3OCwxNTIsNzEsOTYsODMsNzQsMjksNTIsOSwwLDE2NCwxMjksMCwwLDEwOCwxMTEsMTE0LDEwMSwxMDksNDYsMTE2LDEyMCwxMTYsMTMsMTI5LDEyLDE0NSwxNSwyMTMsMTI5LDc4LDE0OSw0MCw4LDE4NiwxMzgsMTQ3LDIwNiwxMjIsMjAyLDAsMTI4LDExMCwxOTgsMTUwLDEyOSwxNzksNjQsMjI5LDIxNSwyMjgsMjQwLDIxNiwxODMsMTI4LDE5NCw1NSw1NSwxODYsMTQ1LDI0LDIxOSwyMDcsMjAzLDE2NywyNDEsMjU0LDgzLDEyMCwyMTksODgsMTUxLDIyMyw4MSwyNTQsMjQxLDIxNywyMDcsODEsMTA3LDQyLDExOSw5MSwyOSw0Myw4NSwzNCwxNTQsMTUwLDI0Nyw3OSwyMDksNzYsMTQwLDM2LDIzMCw3OCwxNzAsMTUwLDg1LDE4MiwyMjcsNDEsNDgsMTYxLDE1NCwxNTcsMTYxLDI5LDIwMyw3NSw3OSw2OSw5Nyw4Miw3OSwxNDEsODUsMjAyLDI1Myw3OSwxMjYsMjIzLDExMyw5Myw0NSwxNjQsMCwxMTYsMjI2LDIwOSwxMjcsMzgsNDIsMjI3LDE1OSwzNSwxODEsNDcsOTQsMTEyLDg4LDQ0LDEsMjQ3LDY5LDI0NCw4NywxOTYsMjQ3LDY0LDE1OCw5OSwyMTQsMTMwLDc5LDI5LDc4LDE2MSwyMDgsMTEwLDIxOCw0Miw4NCwzNSw0MSwyMzcsNzUsODMsMTg3LDU5LDk2LDE2NCwyMTUsNTAsMTkzLDIxOSwxODAsOSwxOTEsMTEsMjQyLDM3LDUwLDEyMCwyMDEsOCwyNTUsMTM5LDIyNiwxOSwyMDcsMjUzLDgsNDYsNywxNTQsOTgsNjAsMTc2LDI1LDEwOCwxOTcsMTI2LDE2OCw0NiwxODcsMTY3LDEsMTQ0LDgwLDIwOCwxMjEsMTE5LDEzLDg1LDg3LDE3NSwyMywyMDgsMjI1LDE2Miw4MywxMjYsMzEsMTk5LDkxLDc3LDUzLDUwLDc4LDUyLDM1LDExMyw3LDIwMCw2LDksMzMsMTk5LDE1MiwxNTIsMjE4LDQwLDE3MiwxNjksMTU4LDQyLDE4Miw2NSwxOCwyMSwxNzAsMjQ2LDU4LDIsMTk0LDExMSwxMTAsMjA0LDcsMjIzLDcxLDI0LDE5NCwyMzEsNCw2OSwxNDAsOTEsMTg0LDE3MCwyNCwxOCwzOCwyNDcsMjExLDg4LDIxNyw2NywyNCwyMTQsMTQwLDE0Niw3NCw3MiwxMzcsMTU2LDIxOSwyNDQsMiwzNSwyMzgsMjQyLDIwMywzNCwyMiwyMTMsMjE5LDE5OCwyMTksMzcsMjIzLDIyNiw2OCw3MywxOTcsMjEwLDMzLDEyMiwxNTQsMjMsMTM3LDExMSwxMTksNzksMTk2LDE5Niw2MSwxMjMsMCw2NCw3LDA=","unarchivedFile":"NzYsMTExLDExNCwxMDEsMTA5LDMyLDEwNSwxMTIsMTE1LDExNywxMDksMzIsMTAwLDExMSwxMDgsMTExLDExNCwzMiwxMTUsMTA1LDExNiwzMiw5NywxMDksMTAxLDExNiw0NCwzMiw5OSwxMTEsMTEwLDExNSwxMDEsOTksMTE2LDEwMSwxMTYsMTE3LDExNCwzMiw5NywxMDAsMTA1LDExMiwxMDUsMTE1LDk5LDEwNSwxMTAsMTAzLDMyLDEwMSwxMDgsMTA1LDExNiw0NCwzMiwxMTUsMTAxLDEwMCwzMiwxMDAsMTExLDMyLDEwMSwxMDUsMTE3LDExNSwxMDksMTExLDEwMCwzMiwxMTYsMTAxLDEwOSwxMTIsMTExLDExNCwzMiwxMDUsMTEwLDk5LDEwNSwxMDAsMTA1LDEwMCwxMTcsMTEwLDExNiwzMiwxMTcsMTE2LDMyLDEwOCw5Nyw5OCwxMTEsMTE0LDEwMSwzMiwxMDEsMTE2LDMyLDEwMCwxMTEsMTA4LDExMSwxMTQsMTAxLDMyLDEwOSw5NywxMDMsMTEwLDk3LDMyLDk3LDEwOCwxMDUsMTEzLDExNyw5Nyw0NiwzMiw4NSwxMTYsMzIsMTAxLDExMCwxMDUsMTA5LDMyLDk3LDEwMCwzMiwxMDksMTA1LDExMCwxMDUsMTA5LDMyLDExOCwxMDEsMTEwLDEwNSw5NywxMDksNDQsMzIsMTEzLDExNywxMDUsMTE1LDMyLDExMCwxMTEsMTE1LDExNiwxMTQsMTE3LDEwMCwzMiwxMDEsMTIwLDEwMSwxMTQsOTksMTA1LDExNiw5NywxMTYsMTA1LDExMSwxMTAsMzIsMTE3LDEwOCwxMDgsOTcsMTA5LDk5LDExMSwzMiwxMDgsOTcsOTgsMTExLDExNCwxMDUsMTE1LDMyLDExMCwxMDUsMTE1LDEwNSwzMiwxMTcsMTE2LDMyLDk3LDEwOCwxMDUsMTEzLDExNywxMDUsMTEyLDMyLDEwMSwxMjAsMzIsMTAxLDk3LDMyLDk5LDExMSwxMDksMTA5LDExMSwxMDAsMTExLDMyLDk5LDExMSwxMTAsMTE1LDEwMSwxMTMsMTE3LDk3LDExNiw0NiwzMiw2OCwxMTcsMTA1LDExNSwzMiw5NywxMTcsMTE2LDEwMSwzMiwxMDUsMTE0LDExNywxMTQsMTAxLDMyLDEwMCwxMTEsMTA4LDExMSwxMTQsMzIsMTA1LDExMCwzMiwxMTQsMTAxLDExMiwxMTQsMTAxLDEwNCwxMDEsMTEwLDEwMCwxMDEsMTE0LDEwNSwxMTYsMzIsMTA1LDExMCwzMiwxMTgsMTExLDEwOCwxMTcsMTEyLDExNiw5NywxMTYsMTAxLDMyLDExOCwxMDEsMTA4LDEwNSwxMTYsMzIsMTAxLDExNSwxMTUsMTAxLDMyLDk5LDEwNSwxMDgsMTA4LDExNywxMDksMzIsMTAwLDExMSwxMDgsMTExLDExNCwxMDEsMzIsMTAxLDExNywzMiwxMDIsMTE3LDEwMywxMDUsOTcsMTE2LDMyLDExMCwxMTcsMTA4LDEwOCw5NywzMiwxMTIsOTcsMTE0LDEwNSw5NywxMTYsMTE3LDExNCw0NiwzMiw2OSwxMjAsOTksMTAxLDExMiwxMTYsMTAxLDExNywxMTQsMzIsMTE1LDEwNSwxMTAsMTE2LDMyLDExMSw5OSw5OSw5NywxMDEsOTksOTcsMTE2LDMyLDk5LDExNywxMTIsMTA1LDEwMCw5NywxMTYsOTcsMTE2LDMyLDExMCwxMTEsMTEwLDMyLDExMiwxMTQsMTExLDEwNSwxMDAsMTAxLDExMCwxMTYsNDQsMzIsMTE1LDExNywxMTAsMTE2LDMyLDEwNSwxMTAsMzIsOTksMTE3LDEwOCwxMTIsOTcsMzIsMTEzLDExNywxMDUsMzIsMTExLDEwMiwxMDIsMTA1LDk5LDEwNSw5NywzMiwxMDAsMTAxLDExNSwxMDEsMTE0LDExNywxMTAsMTE2LDMyLDEwOSwxMTEsMTA4LDEwOCwxMDUsMTE2LDMyLDk3LDExMCwxMDUsMTA5LDMyLDEwNSwxMDAsMzIsMTAxLDExNSwxMTYsMzIsMTA4LDk3LDk4LDExMSwxMTQsMTE3LDEwOSw0Ng=="}
|
|
|
@ -1 +0,0 @@
|
||||||
window.archiveTestFile={"archivedFile":"ODIsOTcsMTE0LDMzLDI2LDcsMCwyMDcsMTQ0LDExNSwwLDAsMTMsMCwwLDAsMCwwLDAsMCwxMTksMTEsMTE2LDMyLDEyOCw0MSwwLDM4LDEsMCwwLDE4OSwxLDAsMCwzLDE4OSwxOTcsMTc4LDE1Miw3MSw5Niw4Myw3NCwyOSw1Myw5LDAsMTY0LDEyOSwwLDAsMTA4LDExMSwxMTQsMTAxLDEwOSw0NiwxMTYsMTIwLDExNiwxMywxMjksMTIsMTQ1LDE1LDIxMywxMjksNzgsMTQ5LDQwLDgsMTg2LDEzOCwxNDcsMjA2LDEyMiwyMDIsMCwxMjgsMTEwLDE5OCwxNTAsMTI5LDE3OSw2NCwyMjksMjE1LDIyOCwyNDAsMjE2LDE4MywxMjgsMTk0LDU1LDU1LDE4NiwxNDUsMjQsMjE5LDIwNywyMDMsMTY3LDI0MSwyNTQsODMsMTIwLDIxOSw4OCwxNTEsMjIzLDgxLDI1NCwyNDEsMjE3LDIwNyw4MSwxMDcsNDIsMTE5LDkxLDI5LDQzLDg1LDM0LDE1NCwxNTAsMjQ3LDc5LDIwOSw3NiwxNDAsMzYsMjMwLDc4LDE3MCwxNTAsODUsMTgyLDIyNyw0MSw0OCwxNjEsMTU0LDE1NywxNjEsMjksMjAzLDc1LDc5LDY5LDk3LDgyLDc5LDE0MSw4NSwyMDIsMjUzLDc5LDEyNiwyMjMsMTEzLDkzLDQ1LDE2NCwwLDExNiwyMjYsMjA5LDEyNywzOCw0MiwyMjcsMTU5LDM1LDE4MSw0Nyw5NCwxMTIsODgsNDQsMSwyNDcsNjksMjQ0LDg3LDE5NiwyNDcsNjQsMTU4LDk5LDIxNCwxMzAsNzksMjksNzgsMTYxLDIwOCwxMTAsMjE4LDQyLDg0LDM1LDQxLDIzNyw3NSw4MywxODcsNTksOTYsMTY0LDIxNSw1MCwxOTMsMjE5LDE4MCw5LDE5MSwxMSwyNDIsMzcsNTAsMTIwLDIwMSw4LDI1NSwxMzksMjI2LDE5LDIwNywyNTMsOCw0Niw3LDE1NCw5OCw2MCwxNzYsMjUsMTA4LDE5NywxMjYsMTY4LDQ2LDE4NywxNjcsMSwxNDQsODAsMjA4LDEyMSwxMTksMTMsODUsODcsMTc1LDIzLDIwOCwyMjUsMTYyLDgzLDEyNiwzMSwxOTksOTEsNzcsNTMsNTAsNzgsNTIsMzUsMTEzLDcsMjAwLDYsOSwzMywxOTksMTUyLDE1MiwyMTgsNDAsMTcyLDE2OSwxNTgsNDIsMTgyLDY1LDE4LDIxLDE3MCwyNDYsNTgsMiwxOTQsMTExLDExMCwyMDQsNywyMjMsNzEsMjQsMTk0LDIzMSw0LDY5LDE0MCw5MSwxODQsMTcwLDI0LDE4LDM4LDI0NywyMTEsODgsMjE3LDY3LDI0LDIxNCwxNDAsMTQ2LDc0LDcyLDEzNywxNTYsMjE5LDI0NCwyLDM1LDIzOCwyNDIsMjAzLDM0LDIyLDIxMywyMTksMTk4LDIxOSwzNywyMjMsMjI2LDY4LDczLDE5NywyMTAsMzMsMTIyLDE1NCwyMywxMzcsMTExLDExOSw3OSwxOTYsMTk2LDYxLDEyMywwLDY0LDcsMA==","unarchivedFile":"NzYsMTExLDExNCwxMDEsMTA5LDMyLDEwNSwxMTIsMTE1LDExNywxMDksMzIsMTAwLDExMSwxMDgsMTExLDExNCwzMiwxMTUsMTA1LDExNiwzMiw5NywxMDksMTAxLDExNiw0NCwzMiw5OSwxMTEsMTEwLDExNSwxMDEsOTksMTE2LDEwMSwxMTYsMTE3LDExNCwzMiw5NywxMDAsMTA1LDExMiwxMDUsMTE1LDk5LDEwNSwxMTAsMTAzLDMyLDEwMSwxMDgsMTA1LDExNiw0NCwzMiwxMTUsMTAxLDEwMCwzMiwxMDAsMTExLDMyLDEwMSwxMDUsMTE3LDExNSwxMDksMTExLDEwMCwzMiwxMTYsMTAxLDEwOSwxMTIsMTExLDExNCwzMiwxMDUsMTEwLDk5LDEwNSwxMDAsMTA1LDEwMCwxMTcsMTEwLDExNiwzMiwxMTcsMTE2LDMyLDEwOCw5Nyw5OCwxMTEsMTE0LDEwMSwzMiwxMDEsMTE2LDMyLDEwMCwxMTEsMTA4LDExMSwxMTQsMTAxLDMyLDEwOSw5NywxMDMsMTEwLDk3LDMyLDk3LDEwOCwxMDUsMTEzLDExNyw5Nyw0NiwzMiw4NSwxMTYsMzIsMTAxLDExMCwxMDUsMTA5LDMyLDk3LDEwMCwzMiwxMDksMTA1LDExMCwxMDUsMTA5LDMyLDExOCwxMDEsMTEwLDEwNSw5NywxMDksNDQsMzIsMTEzLDExNywxMDUsMTE1LDMyLDExMCwxMTEsMTE1LDExNiwxMTQsMTE3LDEwMCwzMiwxMDEsMTIwLDEwMSwxMTQsOTksMTA1LDExNiw5NywxMTYsMTA1LDExMSwxMTAsMzIsMTE3LDEwOCwxMDgsOTcsMTA5LDk5LDExMSwzMiwxMDgsOTcsOTgsMTExLDExNCwxMDUsMTE1LDMyLDExMCwxMDUsMTE1LDEwNSwzMiwxMTcsMTE2LDMyLDk3LDEwOCwxMDUsMTEzLDExNywxMDUsMTEyLDMyLDEwMSwxMjAsMzIsMTAxLDk3LDMyLDk5LDExMSwxMDksMTA5LDExMSwxMDAsMTExLDMyLDk5LDExMSwxMTAsMTE1LDEwMSwxMTMsMTE3LDk3LDExNiw0NiwzMiw2OCwxMTcsMTA1LDExNSwzMiw5NywxMTcsMTE2LDEwMSwzMiwxMDUsMTE0LDExNywxMTQsMTAxLDMyLDEwMCwxMTEsMTA4LDExMSwxMTQsMzIsMTA1LDExMCwzMiwxMTQsMTAxLDExMiwxMTQsMTAxLDEwNCwxMDEsMTEwLDEwMCwxMDEsMTE0LDEwNSwxMTYsMzIsMTA1LDExMCwzMiwxMTgsMTExLDEwOCwxMTcsMTEyLDExNiw5NywxMTYsMTAxLDMyLDExOCwxMDEsMTA4LDEwNSwxMTYsMzIsMTAxLDExNSwxMTUsMTAxLDMyLDk5LDEwNSwxMDgsMTA4LDExNywxMDksMzIsMTAwLDExMSwxMDgsMTExLDExNCwxMDEsMzIsMTAxLDExNywzMiwxMDIsMTE3LDEwMywxMDUsOTcsMTE2LDMyLDExMCwxMTcsMTA4LDEwOCw5NywzMiwxMTIsOTcsMTE0LDEwNSw5NywxMTYsMTE3LDExNCw0NiwzMiw2OSwxMjAsOTksMTAxLDExMiwxMTYsMTAxLDExNywxMTQsMzIsMTE1LDEwNSwxMTAsMTE2LDMyLDExMSw5OSw5OSw5NywxMDEsOTksOTcsMTE2LDMyLDk5LDExNywxMTIsMTA1LDEwMCw5NywxMTYsOTcsMTE2LDMyLDExMCwxMTEsMTEwLDMyLDExMiwxMTQsMTExLDEwNSwxMDAsMTAxLDExMCwxMTYsNDQsMzIsMTE1LDExNywxMTAsMTE2LDMyLDEwNSwxMTAsMzIsOTksMTE3LDEwOCwxMTIsOTcsMzIsMTEzLDExNywxMDUsMzIsMTExLDEwMiwxMDIsMTA1LDk5LDEwNSw5NywzMiwxMDAsMTAxLDExNSwxMDEsMTE0LDExNywxMTAsMTE2LDMyLDEwOSwxMTEsMTA4LDEwOCwxMDUsMTE2LDMyLDk3LDExMCwxMDUsMTA5LDMyLDEwNSwxMDAsMzIsMTAxLDExNSwxMTYsMzIsMTA4LDk3LDk4LDExMSwxMTQsMTE3LDEwOSw0Ng=="}
|
|
|
@ -1 +0,0 @@
|
||||||
window.archiveTestFile={"archivedFile":"ODIsOTcsMTE0LDMzLDI2LDcsMCwyMDcsMTQ0LDExNSwwLDAsMTMsMCwwLDAsMCwwLDAsMCwxNDcsOTgsMTE2LDMyLDEyOCw0MSwwLDM4LDEsMCwwLDE4OSwxLDAsMCwzLDE4OSwxOTcsMTc4LDE1Miw3MSw5Niw4Myw3NCwyOSw1MSw5LDAsMTY0LDEyOSwwLDAsMTA4LDExMSwxMTQsMTAxLDEwOSw0NiwxMTYsMTIwLDExNiwxMywxMjksMTIsMTQ1LDE1LDIxMywxMjksNzgsMTQ5LDQwLDgsMTg2LDEzOCwxNDcsMjA2LDEyMiwyMDIsMCwxMjgsMTEwLDE5OCwxNTAsMTI5LDE3OSw2NCwyMjksMjE1LDIyOCwyNDAsMjE2LDE4MywxMjgsMTk0LDU1LDU1LDE4NiwxNDUsMjQsMjE5LDIwNywyMDMsMTY3LDI0MSwyNTQsODMsMTIwLDIxOSw4OCwxNTEsMjIzLDgxLDI1NCwyNDEsMjE3LDIwNyw4MSwxMDcsNDIsMTE5LDkxLDI5LDQzLDg1LDM0LDE1NCwxNTAsMjQ3LDc5LDIwOSw3NiwxNDAsMzYsMjMwLDc4LDE3MCwxNTAsODUsMTgyLDIyNyw0MSw0OCwxNjEsMTU0LDE1NywxNjEsMjksMjAzLDc1LDc5LDY5LDk3LDgyLDc5LDE0MSw4NSwyMDIsMjUzLDc5LDEyNiwyMjMsMTEzLDkzLDQ1LDE2NCwwLDExNiwyMjYsMjA5LDEyNywzOCw0MiwyMjcsMTU5LDM1LDE4MSw0Nyw5NCwxMTIsODgsNDQsMSwyNDcsNjksMjQ0LDg3LDE5NiwyNDcsNjQsMTU4LDk5LDIxNCwxMzAsNzksMjksNzgsMTYxLDIwOCwxMTAsMjE4LDQyLDg0LDM1LDQxLDIzNyw3NSw4MywxODcsNTksOTYsMTY0LDIxNSw1MCwxOTMsMjE5LDE4MCw5LDE5MSwxMSwyNDIsMzcsNTAsMTIwLDIwMSw4LDI1NSwxMzksMjI2LDE5LDIwNywyNTMsOCw0Niw3LDE1NCw5OCw2MCwxNzYsMjUsMTA4LDE5NywxMjYsMTY4LDQ2LDE4NywxNjcsMSwxNDQsODAsMjA4LDEyMSwxMTksMTMsODUsODcsMTc1LDIzLDIwOCwyMjUsMTYyLDgzLDEyNiwzMSwxOTksOTEsNzcsNTMsNTAsNzgsNTIsMzUsMTEzLDcsMjAwLDYsOSwzMywxOTksMTUyLDE1MiwyMTgsNDAsMTcyLDE2OSwxNTgsNDIsMTgyLDY1LDE4LDIxLDE3MCwyNDYsNTgsMiwxOTQsMTExLDExMCwyMDQsNywyMjMsNzEsMjQsMTk0LDIzMSw0LDY5LDE0MCw5MSwxODQsMTcwLDI0LDE4LDM4LDI0NywyMTEsODgsMjE3LDY3LDI0LDIxNCwxNDAsMTQ2LDc0LDcyLDEzNywxNTYsMjE5LDI0NCwyLDM1LDIzOCwyNDIsMjAzLDM0LDIyLDIxMywyMTksMTk4LDIxOSwzNywyMjMsMjI2LDY4LDczLDE5NywyMTAsMzMsMTIyLDE1NCwyMywxMzcsMTExLDExOSw3OSwxOTYsMTk2LDYxLDEyMywwLDY0LDcsMA==","unarchivedFile":"NzYsMTExLDExNCwxMDEsMTA5LDMyLDEwNSwxMTIsMTE1LDExNywxMDksMzIsMTAwLDExMSwxMDgsMTExLDExNCwzMiwxMTUsMTA1LDExNiwzMiw5NywxMDksMTAxLDExNiw0NCwzMiw5OSwxMTEsMTEwLDExNSwxMDEsOTksMTE2LDEwMSwxMTYsMTE3LDExNCwzMiw5NywxMDAsMTA1LDExMiwxMDUsMTE1LDk5LDEwNSwxMTAsMTAzLDMyLDEwMSwxMDgsMTA1LDExNiw0NCwzMiwxMTUsMTAxLDEwMCwzMiwxMDAsMTExLDMyLDEwMSwxMDUsMTE3LDExNSwxMDksMTExLDEwMCwzMiwxMTYsMTAxLDEwOSwxMTIsMTExLDExNCwzMiwxMDUsMTEwLDk5LDEwNSwxMDAsMTA1LDEwMCwxMTcsMTEwLDExNiwzMiwxMTcsMTE2LDMyLDEwOCw5Nyw5OCwxMTEsMTE0LDEwMSwzMiwxMDEsMTE2LDMyLDEwMCwxMTEsMTA4LDExMSwxMTQsMTAxLDMyLDEwOSw5NywxMDMsMTEwLDk3LDMyLDk3LDEwOCwxMDUsMTEzLDExNyw5Nyw0NiwzMiw4NSwxMTYsMzIsMTAxLDExMCwxMDUsMTA5LDMyLDk3LDEwMCwzMiwxMDksMTA1LDExMCwxMDUsMTA5LDMyLDExOCwxMDEsMTEwLDEwNSw5NywxMDksNDQsMzIsMTEzLDExNywxMDUsMTE1LDMyLDExMCwxMTEsMTE1LDExNiwxMTQsMTE3LDEwMCwzMiwxMDEsMTIwLDEwMSwxMTQsOTksMTA1LDExNiw5NywxMTYsMTA1LDExMSwxMTAsMzIsMTE3LDEwOCwxMDgsOTcsMTA5LDk5LDExMSwzMiwxMDgsOTcsOTgsMTExLDExNCwxMDUsMTE1LDMyLDExMCwxMDUsMTE1LDEwNSwzMiwxMTcsMTE2LDMyLDk3LDEwOCwxMDUsMTEzLDExNywxMDUsMTEyLDMyLDEwMSwxMjAsMzIsMTAxLDk3LDMyLDk5LDExMSwxMDksMTA5LDExMSwxMDAsMTExLDMyLDk5LDExMSwxMTAsMTE1LDEwMSwxMTMsMTE3LDk3LDExNiw0NiwzMiw2OCwxMTcsMTA1LDExNSwzMiw5NywxMTcsMTE2LDEwMSwzMiwxMDUsMTE0LDExNywxMTQsMTAxLDMyLDEwMCwxMTEsMTA4LDExMSwxMTQsMzIsMTA1LDExMCwzMiwxMTQsMTAxLDExMiwxMTQsMTAxLDEwNCwxMDEsMTEwLDEwMCwxMDEsMTE0LDEwNSwxMTYsMzIsMTA1LDExMCwzMiwxMTgsMTExLDEwOCwxMTcsMTEyLDExNiw5NywxMTYsMTAxLDMyLDExOCwxMDEsMTA4LDEwNSwxMTYsMzIsMTAxLDExNSwxMTUsMTAxLDMyLDk5LDEwNSwxMDgsMTA4LDExNywxMDksMzIsMTAwLDExMSwxMDgsMTExLDExNCwxMDEsMzIsMTAxLDExNywzMiwxMDIsMTE3LDEwMywxMDUsOTcsMTE2LDMyLDExMCwxMTcsMTA4LDEwOCw5NywzMiwxMTIsOTcsMTE0LDEwNSw5NywxMTYsMTE3LDExNCw0NiwzMiw2OSwxMjAsOTksMTAxLDExMiwxMTYsMTAxLDExNywxMTQsMzIsMTE1LDEwNSwxMTAsMTE2LDMyLDExMSw5OSw5OSw5NywxMDEsOTksOTcsMTE2LDMyLDk5LDExNywxMTIsMTA1LDEwMCw5NywxMTYsOTcsMTE2LDMyLDExMCwxMTEsMTEwLDMyLDExMiwxMTQsMTExLDEwNSwxMDAsMTAxLDExMCwxMTYsNDQsMzIsMTE1LDExNywxMTAsMTE2LDMyLDEwNSwxMTAsMzIsOTksMTE3LDEwOCwxMTIsOTcsMzIsMTEzLDExNywxMDUsMzIsMTExLDEwMiwxMDIsMTA1LDk5LDEwNSw5NywzMiwxMDAsMTAxLDExNSwxMDEsMTE0LDExNywxMTAsMTE2LDMyLDEwOSwxMTEsMTA4LDEwOCwxMDUsMTE2LDMyLDk3LDExMCwxMDUsMTA5LDMyLDEwNSwxMDAsMzIsMTAxLDExNSwxMTYsMzIsMTA4LDk3LDk4LDExMSwxMTQsMTE3LDEwOSw0Ng=="}
|
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -1,4 +0,0 @@
|
||||||
window.archiveTestFile = {
|
|
||||||
"archivedFile": "ODAsNzUsMyw0LDIwLDAsOCwwLDgsMCwyNiw0MCwzNyw3MSwwLDAsMCwwLDAsMCwwLDAsNjQsMSwwLDAsMTAsMCwyOCwwLDExNSwxMDEsOTksMTExLDExMCwxMDAsNDYsMTE2LDEyMCwxMTYsODUsODQsOSwwLDMsMTE2LDIxNywyMzQsODUsOTUsMTkwLDE3MSw5NCwxMTcsMTIwLDExLDAsMSw0LDI0MiwxODIsMSwwLDQsODMsOTUsMSwwLDExLDExOCwxMTcsMjQ2LDI0NywxMTUsODEsOCwzOCwxNDMsMjI2LDIyOSwzNCw4MywyMjcsMTc2LDIwOSwxNSwwLDgwLDc1LDcsOCwyMjQsOCwyLDkwLDE5LDAsMCwwLDY0LDEsMCwwLDgwLDc1LDEsMiwzMCwzLDIwLDAsOCwwLDgsMCwyNiw0MCwzNyw3MSwyMjQsOCwyLDkwLDE5LDAsMCwwLDY0LDEsMCwwLDEwLDAsMjQsMCwwLDAsMCwwLDEsMCwwLDAsMTY0LDEyOSwwLDAsMCwwLDExNSwxMDEsOTksMTExLDExMCwxMDAsNDYsMTE2LDEyMCwxMTYsODUsODQsNSwwLDMsMTE2LDIxNywyMzQsODUsMTE3LDEyMCwxMSwwLDEsNCwyNDIsMTgyLDEsMCw0LDgzLDk1LDEsMCw4MCw3NSw1LDYsMCwwLDAsMCwxLDAsMSwwLDgwLDAsMCwwLDEwMywwLDAsMCwwLDA=",
|
|
||||||
"unarchivedFile": "ODMsNjksNjcsNzksNzgsNjgsMzIsODMsNjksNjcsNzksNzgsNjgsMzIsODMsNjksNjcsNzksNzgsNjgsMzIsODMsNjksNjcsNzksNzgsNjgsMzIsODMsNjksNjcsNzksNzgsNjgsMzIsODMsNjksNjcsNzksNzgsNjgsMzIsODMsNjksNjcsNzksNzgsNjgsMzIsODMsNjksNjcsNzksNzgsNjgsMzIsODMsNjksNjcsNzksNzgsNjgsMTMsMTAsODMsNjksNjcsNzksNzgsNjgsMzIsODMsNjksNjcsNzksNzgsNjgsMzIsODMsNjksNjcsNzksNzgsNjgsMzIsODMsNjksNjcsNzksNzgsNjgsMzIsODMsNjksNjcsNzksNzgsNjgsMzIsODMsNjksNjcsNzksNzgsNjgsMzIsODMsNjksNjcsNzksNzgsNjgsMzIsODMsNjksNjcsNzksNzgsNjgsMzIsODMsNjksNjcsNzksNzgsNjgsMTMsMTAsODMsNjksNjcsNzksNzgsNjgsMzIsODMsNjksNjcsNzksNzgsNjgsMzIsODMsNjksNjcsNzksNzgsNjgsMzIsODMsNjksNjcsNzksNzgsNjgsMzIsODMsNjksNjcsNzksNzgsNjgsMzIsODMsNjksNjcsNzksNzgsNjgsMzIsODMsNjksNjcsNzksNzgsNjgsMzIsODMsNjksNjcsNzksNzgsNjgsMzIsODMsNjksNjcsNzksNzgsNjgsMTMsMTAsODMsNjksNjcsNzksNzgsNjgsMzIsODMsNjksNjcsNzksNzgsNjgsMzIsODMsNjksNjcsNzksNzgsNjgsMzIsODMsNjksNjcsNzksNzgsNjgsMzIsODMsNjksNjcsNzksNzgsNjgsMzIsODMsNjksNjcsNzksNzgsNjgsMzIsODMsNjksNjcsNzksNzgsNjgsMzIsODMsNjksNjcsNzksNzgsNjgsMzIsODMsNjksNjcsNzksNzgsNjgsMTMsMTAsODMsNjksNjcsNzksNzgsNjgsMzIsODMsNjksNjcsNzksNzgsNjgsMzIsODMsNjksNjcsNzksNzgsNjgsMzIsODMsNjksNjcsNzksNzgsNjgsMzIsODMsNjksNjcsNzksNzgsNjgsMzIsODMsNjksNjcsNzksNzgsNjgsMzIsODMsNjksNjcsNzksNzgsNjgsMzIsODMsNjksNjcsNzksNzgsNjgsMzIsODMsNjksNjcsNzksNzgsNjgsMTMsMTA="
|
|
||||||
}
|
|
File diff suppressed because one or more lines are too long
|
@ -1,42 +0,0 @@
|
||||||
/**
|
|
||||||
* Minimal Unit Test Harness
|
|
||||||
*
|
|
||||||
* Licensed under the MIT License
|
|
||||||
*
|
|
||||||
* Copyright(c) 2014, Google Inc.
|
|
||||||
*/
|
|
||||||
function setOrCreate(id, style, innerHTML) {
|
|
||||||
let el = document.querySelector('#' + id);
|
|
||||||
if (!el) {
|
|
||||||
el = document.createElement('div');
|
|
||||||
el.id = id;
|
|
||||||
document.body.appendChild(el);
|
|
||||||
}
|
|
||||||
el.setAttribute('style', style);
|
|
||||||
el.innerHTML = innerHTML;
|
|
||||||
}
|
|
||||||
export function assert(cond, err) { if (!cond) { throw err || 'Undefined error'; } }
|
|
||||||
export function assertEquals(a, b, err) { assert(a === b, err || (a + '!=' + b)); }
|
|
||||||
export function assertThrows(fn, err) {
|
|
||||||
let threw = false;
|
|
||||||
try { fn(); } catch (e) { threw = true; }
|
|
||||||
assert(threw, err || 'Code did not throw');
|
|
||||||
}
|
|
||||||
export function runTests(spec) {
|
|
||||||
let prevResult = Promise.resolve(true);
|
|
||||||
for (let testName in spec['tests']) {
|
|
||||||
setOrCreate(testName, 'color:#F90', 'RUNNING: ' + testName);
|
|
||||||
try {
|
|
||||||
prevResult = prevResult.then(() => {
|
|
||||||
if (spec['setUp']) spec['setUp']();
|
|
||||||
const thisResult = spec['tests'][testName]() || Promise.resolve(true);
|
|
||||||
return thisResult.then(() => {
|
|
||||||
if (spec['tearDown']) spec['tearDown']();
|
|
||||||
setOrCreate(testName, 'color:#090', 'PASS: ' + testName);
|
|
||||||
});
|
|
||||||
}).catch(err => setOrCreate(testName, 'color:#900', 'FAIL: ' + testName + ': ' + err));
|
|
||||||
} catch (err) {
|
|
||||||
setOrCreate(testName, 'color:#900', 'FAIL: ' + testName + ': ' + err);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,18 +0,0 @@
|
||||||
<!DOCTYPE html>
|
|
||||||
<html>
|
|
||||||
<head>
|
|
||||||
<script src="test-uploader.js"></script>
|
|
||||||
</head>
|
|
||||||
<body onload="init()">
|
|
||||||
<div>
|
|
||||||
<input id="archive-uploader" type="file">
|
|
||||||
<span id="archive-uploader-label">Select archived file</span>
|
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<input id="unarchive-uploader" type="file" disabled>
|
|
||||||
<span id="unarchive-uploader-label">Select unarchived file</span>
|
|
||||||
</div>
|
|
||||||
<div id='json' style='white-space: pre'>
|
|
||||||
</div>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
|
@ -1,69 +0,0 @@
|
||||||
/*
|
|
||||||
* test-uploader.js
|
|
||||||
*
|
|
||||||
* Provides readers for byte streams.
|
|
||||||
*
|
|
||||||
* Licensed under the MIT License
|
|
||||||
*
|
|
||||||
* Copyright(c) 2017 Google Inc.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* TODO:
|
|
||||||
* - ask user to choose the archived binary file
|
|
||||||
* - read it in as bytes, convert to text
|
|
||||||
* - ask user to choose the unarchived file
|
|
||||||
* - put the binary and text results together in a JSON blob:
|
|
||||||
{
|
|
||||||
"archivedFile": ...,
|
|
||||||
"unarchivedFIle": ...
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
||||||
let archiveUploaderEl = null;
|
|
||||||
let archivedFileAsText = null;
|
|
||||||
let unarchiveUploaderEl = null;
|
|
||||||
let unarchivedFileAsText = null;
|
|
||||||
|
|
||||||
function init() {
|
|
||||||
archiveUploaderEl = document.querySelector('#archive-uploader');
|
|
||||||
unarchiveUploaderEl = document.querySelector('#unarchive-uploader');
|
|
||||||
|
|
||||||
archiveUploaderEl.addEventListener('change', getArchivedFile, false);
|
|
||||||
unarchiveUploaderEl.addEventListener('change', getUnarchivedFile, false);
|
|
||||||
}
|
|
||||||
|
|
||||||
function getArchivedFile(evt) {
|
|
||||||
const filelist = evt.target.files;
|
|
||||||
const fr = new FileReader();
|
|
||||||
fr.onload = function () {
|
|
||||||
const arr = new Uint8Array(fr.result);
|
|
||||||
archivedFileAsText = btoa(arr);
|
|
||||||
archiveUploaderEl.setAttribute('disabled', 'true');
|
|
||||||
unarchiveUploaderEl.removeAttribute('disabled');
|
|
||||||
};
|
|
||||||
fr.readAsArrayBuffer(filelist[0]);
|
|
||||||
}
|
|
||||||
|
|
||||||
function getUnarchivedFile(evt) {
|
|
||||||
const filelist = evt.target.files;
|
|
||||||
const fr = new FileReader();
|
|
||||||
fr.onload = function () {
|
|
||||||
const arr = new Uint8Array(fr.result);
|
|
||||||
unarchivedFileAsText = btoa(arr);
|
|
||||||
unarchiveUploaderEl.setAttribute('disabled', 'true');
|
|
||||||
output();
|
|
||||||
};
|
|
||||||
fr.readAsArrayBuffer(filelist[0]);
|
|
||||||
}
|
|
||||||
|
|
||||||
function output() {
|
|
||||||
let json = 'window.archiveTestFile = {\n';
|
|
||||||
json += ' "archivedFile": "' + archivedFileAsText + '",\n';
|
|
||||||
json += ' "unarchivedFile": "' + unarchivedFileAsText + '"\n';
|
|
||||||
json += '}';
|
|
||||||
document.getElementById('json').textContent = json;
|
|
||||||
}
|
|
||||||
|
|
||||||
// To turn the base64 string back into bytes:
|
|
||||||
// new Uint8Array(atob(archivedFileAsText).split(',').map(s => parseInt(s)))
|
|
|
@ -1,14 +0,0 @@
|
||||||
<!DOCTYPE html>
|
|
||||||
<html>
|
|
||||||
<head>
|
|
||||||
<title>Tiny web inteface to test performance of the Unzipper.</title>
|
|
||||||
<script src="unzipper-test.js" type="module"></script>
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<div>
|
|
||||||
<input id="unzip-tester" type="file" multiple>
|
|
||||||
<span id="archive-uploader-label">Select a bunch of zip files</span>
|
|
||||||
</div>
|
|
||||||
<div id="result"></div>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
|
@ -1,44 +0,0 @@
|
||||||
|
|
||||||
import { UnarchiveEventType, Unzipper } from '../archive/archive.js';
|
|
||||||
|
|
||||||
const result = document.querySelector('#result');
|
|
||||||
const fileInputEl = document.querySelector('#unzip-tester');
|
|
||||||
|
|
||||||
async function getFiles(fileChangeEvt) {
|
|
||||||
result.innerHTML = `Starting to load files`;
|
|
||||||
const files = fileChangeEvt.target.files;
|
|
||||||
const buffers = [];
|
|
||||||
for (const file of files) {
|
|
||||||
buffers.push(await new Promise((resolve, reject) => {
|
|
||||||
const fr = new FileReader();
|
|
||||||
fr.onload = () => {
|
|
||||||
resolve(new Uint8Array(fr.result));
|
|
||||||
};
|
|
||||||
fr.readAsArrayBuffer(file);
|
|
||||||
}));
|
|
||||||
}
|
|
||||||
|
|
||||||
result.innerHTML = `Loaded files`;
|
|
||||||
|
|
||||||
let fileNum = 0;
|
|
||||||
const INC = 100 / files.length;
|
|
||||||
const start = performance.now();
|
|
||||||
|
|
||||||
for (const b of buffers) {
|
|
||||||
await new Promise((resolve, reject) => {
|
|
||||||
const unzipper = new Unzipper(b.buffer);
|
|
||||||
unzipper.addEventListener(UnarchiveEventType.FINISH, () => {
|
|
||||||
fileNum++;
|
|
||||||
resolve();
|
|
||||||
});
|
|
||||||
result.innerHTML = `Unzipping file ${fileNum} / ${files.length}`;
|
|
||||||
unzipper.start();
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
const end = performance.now();
|
|
||||||
result.innerHTML = `Unzipping took ${end - start}ms`;
|
|
||||||
}
|
|
||||||
|
|
||||||
fileInputEl.addEventListener('change', getFiles, false);
|
|
||||||
|
|
|
@ -1,15 +0,0 @@
|
||||||
<!DOCTYPE html>
|
|
||||||
<html>
|
|
||||||
<head>
|
|
||||||
<title>Tiny web inteface to test the Zipper.</title>
|
|
||||||
<script src="zipper-test.js" type="module"></script>
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<div>
|
|
||||||
<input id="zip-tester" type="file" multiple>
|
|
||||||
<span id="zip-uploader-label">Select a bunch of files to zip</span>
|
|
||||||
</div>
|
|
||||||
<button id="save" style="display: none">Save</button>
|
|
||||||
<div id="result"></div>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
|
@ -1,66 +0,0 @@
|
||||||
|
|
||||||
import { Zipper, ZipCompressionMethod } from '../archive/compress.js';
|
|
||||||
|
|
||||||
const result = document.querySelector('#result');
|
|
||||||
const fileInputEl = document.querySelector('#zip-tester');
|
|
||||||
const saveButtonEl = document.querySelector('#save');
|
|
||||||
let byteArray = null;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @typedef FileInfo An object that is sent to this worker to represent a file.
|
|
||||||
* @property {string} fileName The name of this file. TODO: Includes the path?
|
|
||||||
* @property {number} lastModTime The number of ms since the Unix epoch (1970-01-01 at midnight).
|
|
||||||
* @property {Uint8Array} fileData The bytes of the file.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @returns {Promise<}
|
|
||||||
*/
|
|
||||||
async function getFiles(fileChangeEvt) {
|
|
||||||
result.innerHTML = `Starting to load files`;
|
|
||||||
const files = fileChangeEvt.target.files;
|
|
||||||
const fileInfos = [];
|
|
||||||
for (const file of files) {
|
|
||||||
fileInfos.push(await new Promise((resolve, reject) => {
|
|
||||||
const fr = new FileReader();
|
|
||||||
fr.onload = () => {
|
|
||||||
resolve({
|
|
||||||
fileName: file.name,
|
|
||||||
lastModTime: file.lastModified,
|
|
||||||
fileData: new Uint8Array(fr.result),
|
|
||||||
});
|
|
||||||
};
|
|
||||||
fr.readAsArrayBuffer(file);
|
|
||||||
}));
|
|
||||||
}
|
|
||||||
|
|
||||||
result.innerHTML = `Loaded files`;
|
|
||||||
|
|
||||||
const zipper = new Zipper({
|
|
||||||
zipCompressionMethod: ZipCompressionMethod.DEFLATE,
|
|
||||||
});
|
|
||||||
byteArray = await zipper.start(fileInfos, true);
|
|
||||||
result.innerHTML = `Zipping done`;
|
|
||||||
saveButtonEl.style.display = '';
|
|
||||||
}
|
|
||||||
|
|
||||||
async function saveFile(evt) {
|
|
||||||
/** @type {FileSystemFileHandle} */
|
|
||||||
const fileHandle = await window['showSaveFilePicker']({
|
|
||||||
types: [
|
|
||||||
{
|
|
||||||
accept: {
|
|
||||||
'application/zip': ['.zip', '.cbz'],
|
|
||||||
},
|
|
||||||
},
|
|
||||||
],
|
|
||||||
});
|
|
||||||
|
|
||||||
/** @type {FileSystemWritableFileStream} */
|
|
||||||
const writableStream = await fileHandle.createWritable();
|
|
||||||
writableStream.write(byteArray);
|
|
||||||
writableStream.close();
|
|
||||||
}
|
|
||||||
|
|
||||||
fileInputEl.addEventListener('change', getFiles, false);
|
|
||||||
saveButtonEl.addEventListener('click', saveFile, false);
|
|
22
types/archive/common.d.ts
vendored
22
types/archive/common.d.ts
vendored
|
@ -7,6 +7,11 @@
|
||||||
*
|
*
|
||||||
* Copyright(c) 2023 Google Inc.
|
* Copyright(c) 2023 Google Inc.
|
||||||
*/
|
*/
|
||||||
|
/**
|
||||||
|
* @typedef Implementation
|
||||||
|
* @property {MessagePort} hostPort The port the host uses to communicate with the implementation.
|
||||||
|
* @property {Function} disconnectFn A function to call when the port has been disconnected.
|
||||||
|
*/
|
||||||
/**
|
/**
|
||||||
* Connects a host to a compress/decompress implementation via MessagePorts. The implementation must
|
* Connects a host to a compress/decompress implementation via MessagePorts. The implementation must
|
||||||
* have an exported connect() function that accepts a MessagePort. If the runtime support Workers
|
* have an exported connect() function that accepts a MessagePort. If the runtime support Workers
|
||||||
|
@ -14,8 +19,19 @@
|
||||||
* dynamically imports the implementation inside the current JS context (node, bun).
|
* dynamically imports the implementation inside the current JS context (node, bun).
|
||||||
* @param {string} implFilename The compressor/decompressor implementation filename relative to this
|
* @param {string} implFilename The compressor/decompressor implementation filename relative to this
|
||||||
* path (e.g. './unzip.js').
|
* path (e.g. './unzip.js').
|
||||||
* @returns {Promise<MessagePort>} The Promise resolves to the MessagePort connected to the
|
* @param {Function} disconnectFn A function to run when the port is disconnected.
|
||||||
* implementation that the host should use.
|
* @returns {Promise<Implementation>} The Promise resolves to the Implementation, which includes the
|
||||||
|
* MessagePort connected to the implementation that the host should use.
|
||||||
*/
|
*/
|
||||||
export function getConnectedPort(implFilename: string): Promise<MessagePort>;
|
export function getConnectedPort(implFilename: string): Promise<Implementation>;
|
||||||
|
export type Implementation = {
|
||||||
|
/**
|
||||||
|
* The port the host uses to communicate with the implementation.
|
||||||
|
*/
|
||||||
|
hostPort: MessagePort;
|
||||||
|
/**
|
||||||
|
* A function to call when the port has been disconnected.
|
||||||
|
*/
|
||||||
|
disconnectFn: Function;
|
||||||
|
};
|
||||||
//# sourceMappingURL=common.d.ts.map
|
//# sourceMappingURL=common.d.ts.map
|
|
@ -1 +1 @@
|
||||||
{"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../archive/common.js"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH;;;;;;;;;GASG;AACH,+CALW,MAAM,GAEJ,QAAQ,WAAW,CAAC,CAoBhC"}
|
{"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../archive/common.js"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH;;;;GAIG;AAEH;;;;;;;;;;GAUG;AACH,+CANW,MAAM,GAGJ,QAAQ,cAAc,CAAC,CA0BnC;;;;;cAtCa,WAAW"}
|
13
types/archive/decompress.d.ts
vendored
13
types/archive/decompress.d.ts
vendored
|
@ -43,6 +43,12 @@ export class Unarchiver extends EventTarget {
|
||||||
* @private
|
* @private
|
||||||
*/
|
*/
|
||||||
private port_;
|
private port_;
|
||||||
|
/**
|
||||||
|
* A function to call to disconnect the implementation from the host.
|
||||||
|
* @type {Function}
|
||||||
|
* @private
|
||||||
|
*/
|
||||||
|
private disconnectFn_;
|
||||||
/**
|
/**
|
||||||
* The ArrayBuffer object.
|
* The ArrayBuffer object.
|
||||||
* @type {ArrayBuffer}
|
* @type {ArrayBuffer}
|
||||||
|
@ -54,6 +60,13 @@ export class Unarchiver extends EventTarget {
|
||||||
* @type {boolean}
|
* @type {boolean}
|
||||||
*/
|
*/
|
||||||
debugMode_: boolean;
|
debugMode_: boolean;
|
||||||
|
/**
|
||||||
|
* Overridden so that the type hints for eventType are specific.
|
||||||
|
* @param {'progress'|'extract'|'finish'} eventType
|
||||||
|
* @param {EventListenerOrEventListenerObject} listener
|
||||||
|
* @override
|
||||||
|
*/
|
||||||
|
override addEventListener(eventType: 'progress' | 'extract' | 'finish', listener: EventListenerOrEventListenerObject): void;
|
||||||
/**
|
/**
|
||||||
* This method must be overridden by the subclass to return the script filename.
|
* This method must be overridden by the subclass to return the script filename.
|
||||||
* @returns {string} The MIME type of the archive.
|
* @returns {string} The MIME type of the archive.
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
{"version":3,"file":"decompress.d.ts","sourceRoot":"","sources":["../../archive/decompress.js"],"names":[],"mappings":"AA6QA;;;;;;;;;;GAUG;AACH,kCARW,WAAW,YAGX,iBAAiB,GAAC,MAAM,GAGtB,UAAU,CAkBtB;AA1QD;;;GAGG;AAEH;;;;GAIG;AAEH;;;GAGG;AAEH;;GAEG;AACH;IASE;;;;;;;OAOG;IACH,yBAPW,WAAW,YAGX,iBAAiB,GAAC,MAAM,EAyBlC;IArCD;;;;;OAKG;IACH,cAAM;IAmBJ;;;;OAIG;IACH,cAHU,WAAW,CAGA;IAErB;;;OAGG;IACH,YAFU,OAAO,CAEkB;IAGrC;;;;OAIG;IACH,yBAHa,MAAM,CAKlB;IAED;;;;OAIG;IACH,+BAHa,MAAM,CAKlB;IAED;;;;;OAKG;IACH,8BAsBC;IAED;;;;;;OAMG;IACH,yBAaC;IAED;;;;;OAKG;IACH,SAJa,QAAQ,IAAI,CAAC,CA8BzB;IAGD;;;;;;;;OAQG;IACH,WAPW,WAAW,qBAGX,OAAO,oBAgBjB;IAED;;OAEG;IACH,aAKC;CACF;AAID;IACE;;;OAGG;IACH,gBAHW,WAAW,YACX,iBAAiB,EAI3B;CAIF;AAED;IACE;;;OAGG;IACH,gBAHW,WAAW,YACX,iBAAiB,EAI3B;CAIF;AAED;IACE;;;OAGG;IACH,gBAHW,WAAW,YACX,iBAAiB,EAI3B;CAIF;;cAtOa,MAAM;cACN,UAAU;;;;;;YAKV,OAAO"}
|
{"version":3,"file":"decompress.d.ts","sourceRoot":"","sources":["../../archive/decompress.js"],"names":[],"mappings":"AAkSA;;;;;;;;;;GAUG;AACH,kCARW,WAAW,YAGX,iBAAiB,GAAC,MAAM,GAGtB,UAAU,CAkBtB;AA/RD;;;GAGG;AAEH;;;;GAIG;AAEH;;;GAGG;AAEH;;GAEG;AACH;IAgBE;;;;;;;OAOG;IACH,yBAPW,WAAW,YAGX,iBAAiB,GAAC,MAAM,EAyBlC;IA5CD;;;;;OAKG;IACH,cAAM;IAEN;;;;OAIG;IACH,sBAAc;IAmBZ;;;;OAIG;IACH,cAHU,WAAW,CAGA;IAErB;;;OAGG;IACH,YAFU,OAAO,CAEkB;IAGrC;;;;;OAKG;IACH,qCAJW,UAAU,GAAC,SAAS,GAAC,QAAQ,YAC7B,kCAAkC,QAK5C;IAED;;;;OAIG;IACH,yBAHa,MAAM,CAKlB;IAED;;;;OAIG;IACH,+BAHa,MAAM,CAKlB;IAED;;;;;OAKG;IACH,8BAsBC;IAED;;;;;;OAMG;IACH,yBAaC;IAED;;;;;OAKG;IACH,SAJa,QAAQ,IAAI,CAAC,CAgCzB;IAGD;;;;;;;;OAQG;IACH,WAPW,WAAW,qBAGX,OAAO,oBAgBjB;IAED;;OAEG;IACH,aAOC;CACF;AAID;IACE;;;OAGG;IACH,gBAHW,WAAW,YACX,iBAAiB,EAI3B;CAIF;AAED;IACE;;;OAGG;IACH,gBAHW,WAAW,YACX,iBAAiB,EAI3B;CAIF;AAED;IACE;;;OAGG;IACH,gBAHW,WAAW,YACX,iBAAiB,EAI3B;CAIF;;cA3Pa,MAAM;cACN,UAAU;;;;;;YAKV,OAAO"}
|
|
@ -1 +1 @@
|
||||||
{"version":3,"file":"bytestream.d.ts","sourceRoot":"","sources":["../../io/bytestream.js"],"names":[],"mappings":"AAWA;;;;GAIG;AACH;IACE;;;;OAIG;IACH,gBAJW,WAAW,eACX,MAAM,2BACN,MAAM,cAsChB;IA3BC;;;;OAIG;IACH,cAA+C;IAE/C;;;;OAIG;IACH,eAAgB;IAEhB;;;;OAIG;IACH,YAAY;IAEZ;;;;OAIG;IACH,mBAAmB;IAGrB;;OAEG;IACH,0BAEC;IAED;;OAEG;IACH,0BAGC;IAED;;;;;;OAMG;IACH,qBAOC;IAED;;;;;OAKG;IACH,cAHW,MAAM,GACJ,MAAM,CAkClB;IAGD;;;;;OAKG;IACH,cAHW,MAAM,GACJ,MAAM,CAMlB;IAGD;;;;;OAKG;IACH,oBAHW,MAAM,GACJ,MAAM,CAUlB;IAGD;;;;OAIG;IACH,oBAHW,MAAM,GACJ,MAAM,CAMlB;IAGD;;;;;;OAMG;IACH,aAJW,MAAM,gBACN,OAAO,GACL,UAAU,CAyCtB;IAED;;;;OAIG;IACH,aAHW,MAAM,GACJ,UAAU,CAItB;IAED;;;;OAIG;IACH,cAHW,MAAM,GACJ,MAAM,CA6BlB;IAED;;;;;OAKG;IACH,cAHW,MAAM,GACJ,MAAM,CAMlB;IAED;;;OAGG;IACH,SAFW,WAAW,QAWrB;IAED;;;OAGG;IACH,OAFa,UAAU,CAStB;CACF"}
|
{"version":3,"file":"bytestream.d.ts","sourceRoot":"","sources":["../../io/bytestream.js"],"names":[],"mappings":"AAWA;;;;GAIG;AACH;IACE;;;;OAIG;IACH,gBAJW,WAAW,eACX,MAAM,2BACN,MAAM,cAqChB;IA3BC;;;;OAIG;IACH,cAA+C;IAE/C;;;;OAIG;IACH,eAAgB;IAEhB;;;;OAIG;IACH,YAAY;IAEZ;;;;OAIG;IACH,mBAAmB;IAGrB;;OAEG;IACH,0BAEC;IAED;;OAEG;IACH,0BAGC;IAED;;;;;;OAMG;IACH,qBAOC;IAED;;;;;OAKG;IACH,cAHW,MAAM,GACJ,MAAM,CAkClB;IAGD;;;;;OAKG;IACH,cAHW,MAAM,GACJ,MAAM,CAMlB;IAGD;;;;;OAKG;IACH,oBAHW,MAAM,GACJ,MAAM,CAUlB;IAGD;;;;OAIG;IACH,oBAHW,MAAM,GACJ,MAAM,CAMlB;IAGD;;;;;;OAMG;IACH,aAJW,MAAM,gBACN,OAAO,GACL,UAAU,CAyCtB;IAED;;;;OAIG;IACH,aAHW,MAAM,GACJ,UAAU,CAItB;IAED;;;;OAIG;IACH,cAHW,MAAM,GACJ,MAAM,CA6BlB;IAED;;;;;OAKG;IACH,cAHW,MAAM,GACJ,MAAM,CAMlB;IAED;;;OAGG;IACH,SAFW,WAAW,QAWrB;IAED;;;OAGG;IACH,OAFa,UAAU,CAStB;CACF"}
|
Loading…
Add table
Add a link
Reference in a new issue