@loaders.gl/zip 4.0.0-alpha.22 → 4.0.0-alpha.24
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/dist/dist.min.js +156 -181
- package/dist/es5/filesystems/zip-filesystem.js +4 -6
- package/dist/es5/filesystems/zip-filesystem.js.map +1 -1
- package/dist/es5/hash-file-utility.js.map +1 -1
- package/dist/es5/index.js +2 -17
- package/dist/es5/index.js.map +1 -1
- package/dist/es5/parse-zip/cd-file-header.js.map +1 -1
- package/dist/es5/parse-zip/end-of-central-directory.js.map +1 -1
- package/dist/es5/parse-zip/local-file-header.js.map +1 -1
- package/dist/es5/parse-zip/search-from-the-end.js.map +1 -1
- package/dist/es5/tar-builder.js +8 -8
- package/dist/es5/tar-builder.js.map +1 -1
- package/dist/es5/zip-loader.js +2 -4
- package/dist/es5/zip-loader.js.map +1 -1
- package/dist/es5/zip-writer.js +19 -10
- package/dist/es5/zip-writer.js.map +1 -1
- package/dist/esm/filesystems/zip-filesystem.js +3 -3
- package/dist/esm/filesystems/zip-filesystem.js.map +1 -1
- package/dist/esm/hash-file-utility.js.map +1 -1
- package/dist/esm/index.js +1 -3
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/parse-zip/cd-file-header.js.map +1 -1
- package/dist/esm/parse-zip/end-of-central-directory.js.map +1 -1
- package/dist/esm/parse-zip/local-file-header.js.map +1 -1
- package/dist/esm/parse-zip/search-from-the-end.js.map +1 -1
- package/dist/esm/tar-builder.js +2 -2
- package/dist/esm/tar-builder.js.map +1 -1
- package/dist/esm/zip-loader.js +1 -2
- package/dist/esm/zip-loader.js.map +1 -1
- package/dist/esm/zip-writer.js +8 -5
- package/dist/esm/zip-writer.js.map +1 -1
- package/dist/filesystems/zip-filesystem.d.ts +2 -2
- package/dist/filesystems/zip-filesystem.d.ts.map +1 -1
- package/dist/hash-file-utility.d.ts +1 -1
- package/dist/hash-file-utility.d.ts.map +1 -1
- package/dist/index.d.ts +1 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/parse-zip/cd-file-header.d.ts +1 -1
- package/dist/parse-zip/cd-file-header.d.ts.map +1 -1
- package/dist/parse-zip/end-of-central-directory.d.ts +1 -1
- package/dist/parse-zip/end-of-central-directory.d.ts.map +1 -1
- package/dist/parse-zip/local-file-header.d.ts +1 -1
- package/dist/parse-zip/local-file-header.d.ts.map +1 -1
- package/dist/parse-zip/search-from-the-end.d.ts +1 -1
- package/dist/parse-zip/search-from-the-end.d.ts.map +1 -1
- package/dist/tar-builder.d.ts +2 -2
- package/dist/tar-builder.d.ts.map +1 -1
- package/dist/zip-loader.d.ts +0 -1
- package/dist/zip-loader.d.ts.map +1 -1
- package/dist/zip-writer.d.ts +12 -2
- package/dist/zip-writer.d.ts.map +1 -1
- package/package.json +4 -9
- package/src/filesystems/zip-filesystem.ts +3 -3
- package/src/hash-file-utility.ts +1 -1
- package/src/index.ts +3 -5
- package/src/parse-zip/cd-file-header.ts +1 -1
- package/src/parse-zip/end-of-central-directory.ts +1 -1
- package/src/parse-zip/local-file-header.ts +1 -1
- package/src/parse-zip/search-from-the-end.ts +1 -1
- package/src/tar-builder.ts +2 -2
- package/src/zip-loader.ts +2 -3
- package/src/zip-writer.ts +23 -10
- package/dist/bundle.js +0 -5
- package/dist/es5/file-provider/data-view-file.js +0 -146
- package/dist/es5/file-provider/data-view-file.js.map +0 -1
- package/dist/es5/file-provider/file-handle-file.js +0 -234
- package/dist/es5/file-provider/file-handle-file.js.map +0 -1
- package/dist/es5/file-provider/file-handle.js +0 -101
- package/dist/es5/file-provider/file-handle.js.map +0 -1
- package/dist/es5/file-provider/file-provider.js +0 -11
- package/dist/es5/file-provider/file-provider.js.map +0 -1
- package/dist/esm/file-provider/data-view-file.js +0 -33
- package/dist/esm/file-provider/data-view-file.js.map +0 -1
- package/dist/esm/file-provider/file-handle-file.js +0 -57
- package/dist/esm/file-provider/file-handle-file.js.map +0 -1
- package/dist/esm/file-provider/file-handle.js +0 -37
- package/dist/esm/file-provider/file-handle.js.map +0 -1
- package/dist/esm/file-provider/file-provider.js +0 -4
- package/dist/esm/file-provider/file-provider.js.map +0 -1
- package/dist/file-provider/data-view-file.d.ts +0 -37
- package/dist/file-provider/data-view-file.d.ts.map +0 -1
- package/dist/file-provider/data-view-file.js +0 -63
- package/dist/file-provider/file-handle-file.d.ts +0 -53
- package/dist/file-provider/file-handle-file.d.ts.map +0 -1
- package/dist/file-provider/file-handle-file.js +0 -90
- package/dist/file-provider/file-handle.d.ts +0 -40
- package/dist/file-provider/file-handle.d.ts.map +0 -1
- package/dist/file-provider/file-handle.js +0 -57
- package/dist/file-provider/file-provider.d.ts +0 -45
- package/dist/file-provider/file-provider.d.ts.map +0 -1
- package/dist/file-provider/file-provider.js +0 -13
- package/dist/filesystems/zip-filesystem.js +0 -128
- package/dist/hash-file-utility.js +0 -88
- package/dist/index.js +0 -34
- package/dist/lib/tar/header.js +0 -99
- package/dist/lib/tar/tar.js +0 -131
- package/dist/lib/tar/types.js +0 -2
- package/dist/lib/tar/utils.js +0 -54
- package/dist/parse-zip/cd-file-header.js +0 -68
- package/dist/parse-zip/end-of-central-directory.js +0 -40
- package/dist/parse-zip/local-file-header.js +0 -55
- package/dist/parse-zip/search-from-the-end.js +0 -31
- package/dist/tar-builder.js +0 -38
- package/dist/zip-loader.js +0 -61
- package/dist/zip-writer.js +0 -37
- package/src/file-provider/data-view-file.ts +0 -72
- package/src/file-provider/file-handle-file.ts +0 -114
- package/src/file-provider/file-handle.ts +0 -73
- package/src/file-provider/file-provider.ts +0 -56
package/dist/dist.min.js
CHANGED
|
@@ -2787,17 +2787,17 @@
|
|
|
2787
2787
|
const jsZip = new import_jszip2.default();
|
|
2788
2788
|
for (const subFileName in fileMap) {
|
|
2789
2789
|
const subFileData = fileMap[subFileName];
|
|
2790
|
-
jsZip.file(subFileName, subFileData, options);
|
|
2790
|
+
jsZip.file(subFileName, subFileData, options?.jszip || {});
|
|
2791
2791
|
}
|
|
2792
|
-
|
|
2793
|
-
type: "arraybuffer"
|
|
2794
|
-
});
|
|
2792
|
+
const jszipOptions = { ...options?.jszip, type: "arraybuffer" };
|
|
2795
2793
|
const { onUpdate = () => {
|
|
2796
2794
|
} } = options;
|
|
2797
|
-
|
|
2795
|
+
try {
|
|
2796
|
+
return await jsZip.generateAsync(jszipOptions, onUpdate);
|
|
2797
|
+
} catch (error) {
|
|
2798
2798
|
options.log.error(`Unable to write zip archive: ${error}`);
|
|
2799
2799
|
throw error;
|
|
2800
|
-
}
|
|
2800
|
+
}
|
|
2801
2801
|
}
|
|
2802
2802
|
var import_jszip2, ZipWriter;
|
|
2803
2803
|
var init_zip_writer = __esm({
|
|
@@ -2993,14 +2993,14 @@
|
|
|
2993
2993
|
});
|
|
2994
2994
|
|
|
2995
2995
|
// src/tar-builder.ts
|
|
2996
|
-
var TAR_BUILDER_OPTIONS,
|
|
2996
|
+
var TAR_BUILDER_OPTIONS, TarBuilder;
|
|
2997
2997
|
var init_tar_builder = __esm({
|
|
2998
2998
|
"src/tar-builder.ts"() {
|
|
2999
2999
|
init_tar();
|
|
3000
3000
|
TAR_BUILDER_OPTIONS = {
|
|
3001
3001
|
recordsPerBlock: 20
|
|
3002
3002
|
};
|
|
3003
|
-
|
|
3003
|
+
TarBuilder = class {
|
|
3004
3004
|
constructor(options) {
|
|
3005
3005
|
this.count = 0;
|
|
3006
3006
|
this.options = { ...TAR_BUILDER_OPTIONS, ...options };
|
|
@@ -3012,7 +3012,7 @@
|
|
|
3012
3012
|
name: "TAR",
|
|
3013
3013
|
extensions: ["tar"],
|
|
3014
3014
|
mimeTypes: ["application/x-tar"],
|
|
3015
|
-
builder:
|
|
3015
|
+
builder: TarBuilder,
|
|
3016
3016
|
options: TAR_BUILDER_OPTIONS
|
|
3017
3017
|
};
|
|
3018
3018
|
}
|
|
@@ -3027,149 +3027,6 @@
|
|
|
3027
3027
|
}
|
|
3028
3028
|
});
|
|
3029
3029
|
|
|
3030
|
-
// (disabled):fs
|
|
3031
|
-
var require_fs = __commonJS({
|
|
3032
|
-
"(disabled):fs"() {
|
|
3033
|
-
}
|
|
3034
|
-
});
|
|
3035
|
-
|
|
3036
|
-
// src/file-provider/file-handle.ts
|
|
3037
|
-
var import_fs, _FileHandle, FileHandle;
|
|
3038
|
-
var init_file_handle = __esm({
|
|
3039
|
-
"src/file-provider/file-handle.ts"() {
|
|
3040
|
-
import_fs = __toModule(require_fs());
|
|
3041
|
-
_FileHandle = class {
|
|
3042
|
-
constructor(fileDescriptor, stats) {
|
|
3043
|
-
this.read = (buffer, offset, length, position) => {
|
|
3044
|
-
return new Promise((s) => {
|
|
3045
|
-
(0, import_fs.read)(this.fileDescriptor, buffer, offset, length, position, (_err, bytesRead, buffer2) => s({ bytesRead, buffer: buffer2 }));
|
|
3046
|
-
});
|
|
3047
|
-
};
|
|
3048
|
-
this.fileDescriptor = fileDescriptor;
|
|
3049
|
-
this.stats = stats;
|
|
3050
|
-
}
|
|
3051
|
-
async close() {
|
|
3052
|
-
return new Promise((resolve) => {
|
|
3053
|
-
(0, import_fs.close)(this.fileDescriptor, (_err) => resolve());
|
|
3054
|
-
});
|
|
3055
|
-
}
|
|
3056
|
-
get stat() {
|
|
3057
|
-
return this.stats;
|
|
3058
|
-
}
|
|
3059
|
-
};
|
|
3060
|
-
FileHandle = _FileHandle;
|
|
3061
|
-
FileHandle.open = async (path) => {
|
|
3062
|
-
const [fd, stats] = await Promise.all([
|
|
3063
|
-
new Promise((s) => {
|
|
3064
|
-
(0, import_fs.open)(path, void 0, void 0, (_err, fd2) => s(fd2));
|
|
3065
|
-
}),
|
|
3066
|
-
new Promise((s) => {
|
|
3067
|
-
(0, import_fs.stat)(path, { bigint: true }, (_err, stats2) => s(stats2));
|
|
3068
|
-
})
|
|
3069
|
-
]);
|
|
3070
|
-
return new _FileHandle(fd, stats);
|
|
3071
|
-
};
|
|
3072
|
-
}
|
|
3073
|
-
});
|
|
3074
|
-
|
|
3075
|
-
// src/file-provider/file-handle-file.ts
|
|
3076
|
-
var FileHandleFile;
|
|
3077
|
-
var init_file_handle_file = __esm({
|
|
3078
|
-
"src/file-provider/file-handle-file.ts"() {
|
|
3079
|
-
init_file_handle();
|
|
3080
|
-
FileHandleFile = class {
|
|
3081
|
-
static async from(path) {
|
|
3082
|
-
const fileDescriptor = await FileHandle.open(path);
|
|
3083
|
-
return new FileHandleFile(fileDescriptor, fileDescriptor.stat.size);
|
|
3084
|
-
}
|
|
3085
|
-
constructor(fileDescriptor, size) {
|
|
3086
|
-
this.fileDescriptor = fileDescriptor;
|
|
3087
|
-
this.size = size;
|
|
3088
|
-
}
|
|
3089
|
-
async destroy() {
|
|
3090
|
-
await this.fileDescriptor.close();
|
|
3091
|
-
}
|
|
3092
|
-
async getUint8(offset) {
|
|
3093
|
-
const val = new Uint8Array((await this.fileDescriptor.read(Buffer.alloc(1), 0, 1, offset)).buffer.buffer).at(0);
|
|
3094
|
-
if (val === void 0) {
|
|
3095
|
-
throw new Error("something went wrong");
|
|
3096
|
-
}
|
|
3097
|
-
return val;
|
|
3098
|
-
}
|
|
3099
|
-
async getUint16(offset) {
|
|
3100
|
-
const val = new Uint16Array((await this.fileDescriptor.read(Buffer.alloc(2), 0, 2, offset)).buffer.buffer).at(0);
|
|
3101
|
-
if (val === void 0) {
|
|
3102
|
-
throw new Error("something went wrong");
|
|
3103
|
-
}
|
|
3104
|
-
return val;
|
|
3105
|
-
}
|
|
3106
|
-
async getUint32(offset) {
|
|
3107
|
-
const val = new Uint32Array((await this.fileDescriptor.read(Buffer.alloc(4), 0, 4, offset)).buffer.buffer).at(0);
|
|
3108
|
-
if (val === void 0) {
|
|
3109
|
-
throw new Error("something went wrong");
|
|
3110
|
-
}
|
|
3111
|
-
return val;
|
|
3112
|
-
}
|
|
3113
|
-
async getBigUint64(offset) {
|
|
3114
|
-
const val = new BigInt64Array((await this.fileDescriptor.read(Buffer.alloc(8), 0, 8, offset)).buffer.buffer).at(0);
|
|
3115
|
-
if (val === void 0) {
|
|
3116
|
-
throw new Error("something went wrong");
|
|
3117
|
-
}
|
|
3118
|
-
return val;
|
|
3119
|
-
}
|
|
3120
|
-
async slice(startOffsset, endOffset) {
|
|
3121
|
-
const bigLength = endOffset - startOffsset;
|
|
3122
|
-
if (bigLength > Number.MAX_SAFE_INTEGER) {
|
|
3123
|
-
throw new Error("too big slice");
|
|
3124
|
-
}
|
|
3125
|
-
const length = Number(bigLength);
|
|
3126
|
-
return (await this.fileDescriptor.read(Buffer.alloc(length), 0, length, startOffsset)).buffer.buffer;
|
|
3127
|
-
}
|
|
3128
|
-
get length() {
|
|
3129
|
-
return this.size;
|
|
3130
|
-
}
|
|
3131
|
-
};
|
|
3132
|
-
}
|
|
3133
|
-
});
|
|
3134
|
-
|
|
3135
|
-
// src/file-provider/data-view-file.ts
|
|
3136
|
-
var toNumber, DataViewFile;
|
|
3137
|
-
var init_data_view_file = __esm({
|
|
3138
|
-
"src/file-provider/data-view-file.ts"() {
|
|
3139
|
-
toNumber = (bigint) => {
|
|
3140
|
-
if (bigint > Number.MAX_SAFE_INTEGER) {
|
|
3141
|
-
throw new Error("Offset is out of bounds");
|
|
3142
|
-
}
|
|
3143
|
-
return Number(bigint);
|
|
3144
|
-
};
|
|
3145
|
-
DataViewFile = class {
|
|
3146
|
-
constructor(file) {
|
|
3147
|
-
this.file = file;
|
|
3148
|
-
}
|
|
3149
|
-
async destroy() {
|
|
3150
|
-
}
|
|
3151
|
-
async getUint8(offset) {
|
|
3152
|
-
return this.file.getUint8(toNumber(offset));
|
|
3153
|
-
}
|
|
3154
|
-
async getUint16(offset) {
|
|
3155
|
-
return this.file.getUint16(toNumber(offset), true);
|
|
3156
|
-
}
|
|
3157
|
-
async getUint32(offset) {
|
|
3158
|
-
return this.file.getUint32(toNumber(offset), true);
|
|
3159
|
-
}
|
|
3160
|
-
async getBigUint64(offset) {
|
|
3161
|
-
return this.file.getBigUint64(toNumber(offset), true);
|
|
3162
|
-
}
|
|
3163
|
-
async slice(startOffset, endOffset) {
|
|
3164
|
-
return this.file.buffer.slice(toNumber(startOffset), toNumber(endOffset));
|
|
3165
|
-
}
|
|
3166
|
-
get length() {
|
|
3167
|
-
return BigInt(this.file.byteLength);
|
|
3168
|
-
}
|
|
3169
|
-
};
|
|
3170
|
-
}
|
|
3171
|
-
});
|
|
3172
|
-
|
|
3173
3030
|
// src/parse-zip/search-from-the-end.ts
|
|
3174
3031
|
var searchFromTheEnd;
|
|
3175
3032
|
var init_search_from_the_end = __esm({
|
|
@@ -3689,6 +3546,27 @@
|
|
|
3689
3546
|
}
|
|
3690
3547
|
});
|
|
3691
3548
|
|
|
3549
|
+
// ../loader-utils/src/lib/path-utils/file-aliases.ts
|
|
3550
|
+
function resolvePath(filename) {
|
|
3551
|
+
for (const alias in fileAliases) {
|
|
3552
|
+
if (filename.startsWith(alias)) {
|
|
3553
|
+
const replacement = fileAliases[alias];
|
|
3554
|
+
filename = filename.replace(alias, replacement);
|
|
3555
|
+
}
|
|
3556
|
+
}
|
|
3557
|
+
if (!filename.startsWith("http://") && !filename.startsWith("https://")) {
|
|
3558
|
+
filename = `${pathPrefix}${filename}`;
|
|
3559
|
+
}
|
|
3560
|
+
return filename;
|
|
3561
|
+
}
|
|
3562
|
+
var pathPrefix, fileAliases;
|
|
3563
|
+
var init_file_aliases = __esm({
|
|
3564
|
+
"../loader-utils/src/lib/path-utils/file-aliases.ts"() {
|
|
3565
|
+
pathPrefix = "";
|
|
3566
|
+
fileAliases = {};
|
|
3567
|
+
}
|
|
3568
|
+
});
|
|
3569
|
+
|
|
3692
3570
|
// ../loader-utils/src/lib/node/buffer.browser.ts
|
|
3693
3571
|
function toArrayBuffer(buffer) {
|
|
3694
3572
|
return buffer;
|
|
@@ -3740,33 +3618,134 @@
|
|
|
3740
3618
|
}
|
|
3741
3619
|
});
|
|
3742
3620
|
|
|
3743
|
-
// ../loader-utils/src/
|
|
3744
|
-
var
|
|
3745
|
-
|
|
3746
|
-
|
|
3747
|
-
|
|
3748
|
-
|
|
3749
|
-
|
|
3621
|
+
// ../loader-utils/src/lib/file-provider/file-provider.ts
|
|
3622
|
+
var isFileProvider;
|
|
3623
|
+
var init_file_provider = __esm({
|
|
3624
|
+
"../loader-utils/src/lib/file-provider/file-provider.ts"() {
|
|
3625
|
+
isFileProvider = (fileProvider) => {
|
|
3626
|
+
return fileProvider?.getUint8 && fileProvider?.slice && fileProvider?.length;
|
|
3627
|
+
};
|
|
3750
3628
|
}
|
|
3751
3629
|
});
|
|
3752
3630
|
|
|
3753
|
-
//
|
|
3754
|
-
var
|
|
3755
|
-
"
|
|
3756
|
-
init_src();
|
|
3631
|
+
// (disabled):fs
|
|
3632
|
+
var init_fs = __esm({
|
|
3633
|
+
"(disabled):fs"() {
|
|
3757
3634
|
}
|
|
3758
3635
|
});
|
|
3759
3636
|
|
|
3760
|
-
// src/file-provider/file-
|
|
3761
|
-
var
|
|
3762
|
-
var
|
|
3763
|
-
"src/file-provider/file-
|
|
3764
|
-
|
|
3765
|
-
|
|
3637
|
+
// ../loader-utils/src/lib/file-provider/file-handle.ts
|
|
3638
|
+
var FileHandle;
|
|
3639
|
+
var init_file_handle = __esm({
|
|
3640
|
+
"../loader-utils/src/lib/file-provider/file-handle.ts"() {
|
|
3641
|
+
init_fs();
|
|
3642
|
+
FileHandle = class {
|
|
3643
|
+
constructor(fileDescriptor, stats) {
|
|
3644
|
+
this.read = (buffer, offset, length, position) => {
|
|
3645
|
+
return new Promise((s) => {
|
|
3646
|
+
(0, import_fs.read)(this.fileDescriptor, buffer, offset, length, position, (_err, bytesRead, buffer2) => s({ bytesRead, buffer: buffer2 }));
|
|
3647
|
+
});
|
|
3648
|
+
};
|
|
3649
|
+
this.fileDescriptor = fileDescriptor;
|
|
3650
|
+
this.stats = stats;
|
|
3651
|
+
}
|
|
3652
|
+
static async open(path) {
|
|
3653
|
+
const [fd, stats] = await Promise.all([
|
|
3654
|
+
new Promise((resolve, reject) => {
|
|
3655
|
+
(0, import_fs.open)(path, void 0, void 0, (_err, fd2) => _err ? reject(_err) : resolve(fd2));
|
|
3656
|
+
}),
|
|
3657
|
+
new Promise((resolve, reject) => {
|
|
3658
|
+
(0, import_fs.stat)(path, { bigint: true }, (_err, stats2) => _err ? reject(_err) : resolve(stats2));
|
|
3659
|
+
})
|
|
3660
|
+
]);
|
|
3661
|
+
return new FileHandle(fd, stats);
|
|
3662
|
+
}
|
|
3663
|
+
async close() {
|
|
3664
|
+
return new Promise((resolve) => {
|
|
3665
|
+
(0, import_fs.close)(this.fileDescriptor, (_err) => resolve());
|
|
3666
|
+
});
|
|
3667
|
+
}
|
|
3668
|
+
get stat() {
|
|
3669
|
+
return this.stats;
|
|
3670
|
+
}
|
|
3766
3671
|
};
|
|
3767
3672
|
}
|
|
3768
3673
|
});
|
|
3769
3674
|
|
|
3675
|
+
// ../loader-utils/src/lib/file-provider/file-handle-file.ts
|
|
3676
|
+
var FileHandleFile;
|
|
3677
|
+
var init_file_handle_file = __esm({
|
|
3678
|
+
"../loader-utils/src/lib/file-provider/file-handle-file.ts"() {
|
|
3679
|
+
init_file_handle();
|
|
3680
|
+
init_file_aliases();
|
|
3681
|
+
FileHandleFile = class {
|
|
3682
|
+
static async from(path) {
|
|
3683
|
+
path = resolvePath(path);
|
|
3684
|
+
const fileDescriptor = await FileHandle.open(path);
|
|
3685
|
+
return new FileHandleFile(fileDescriptor, fileDescriptor.stat.size);
|
|
3686
|
+
}
|
|
3687
|
+
constructor(fileDescriptor, size) {
|
|
3688
|
+
this.fileDescriptor = fileDescriptor;
|
|
3689
|
+
this.size = size;
|
|
3690
|
+
}
|
|
3691
|
+
async destroy() {
|
|
3692
|
+
await this.fileDescriptor.close();
|
|
3693
|
+
}
|
|
3694
|
+
async getUint8(offset) {
|
|
3695
|
+
const val = new Uint8Array((await this.fileDescriptor.read(Buffer.alloc(1), 0, 1, offset)).buffer.buffer).at(0);
|
|
3696
|
+
if (val === void 0) {
|
|
3697
|
+
throw new Error("something went wrong");
|
|
3698
|
+
}
|
|
3699
|
+
return val;
|
|
3700
|
+
}
|
|
3701
|
+
async getUint16(offset) {
|
|
3702
|
+
const val = new Uint16Array((await this.fileDescriptor.read(Buffer.alloc(2), 0, 2, offset)).buffer.buffer).at(0);
|
|
3703
|
+
if (val === void 0) {
|
|
3704
|
+
throw new Error("something went wrong");
|
|
3705
|
+
}
|
|
3706
|
+
return val;
|
|
3707
|
+
}
|
|
3708
|
+
async getUint32(offset) {
|
|
3709
|
+
const val = new Uint32Array((await this.fileDescriptor.read(Buffer.alloc(4), 0, 4, offset)).buffer.buffer).at(0);
|
|
3710
|
+
if (val === void 0) {
|
|
3711
|
+
throw new Error("something went wrong");
|
|
3712
|
+
}
|
|
3713
|
+
return val;
|
|
3714
|
+
}
|
|
3715
|
+
async getBigUint64(offset) {
|
|
3716
|
+
const val = new BigInt64Array((await this.fileDescriptor.read(Buffer.alloc(8), 0, 8, offset)).buffer.buffer).at(0);
|
|
3717
|
+
if (val === void 0) {
|
|
3718
|
+
throw new Error("something went wrong");
|
|
3719
|
+
}
|
|
3720
|
+
return val;
|
|
3721
|
+
}
|
|
3722
|
+
async slice(startOffsset, endOffset) {
|
|
3723
|
+
const bigLength = endOffset - startOffsset;
|
|
3724
|
+
if (bigLength > Number.MAX_SAFE_INTEGER) {
|
|
3725
|
+
throw new Error("too big slice");
|
|
3726
|
+
}
|
|
3727
|
+
const length = Number(bigLength);
|
|
3728
|
+
return (await this.fileDescriptor.read(Buffer.alloc(length), 0, length, startOffsset)).buffer.buffer;
|
|
3729
|
+
}
|
|
3730
|
+
get length() {
|
|
3731
|
+
return this.size;
|
|
3732
|
+
}
|
|
3733
|
+
};
|
|
3734
|
+
}
|
|
3735
|
+
});
|
|
3736
|
+
|
|
3737
|
+
// ../loader-utils/src/index.ts
|
|
3738
|
+
var init_src = __esm({
|
|
3739
|
+
"../loader-utils/src/index.ts"() {
|
|
3740
|
+
init_globals();
|
|
3741
|
+
init_async_iteration();
|
|
3742
|
+
init_memory_conversion_utils();
|
|
3743
|
+
init_promisify();
|
|
3744
|
+
init_file_provider();
|
|
3745
|
+
init_file_handle_file();
|
|
3746
|
+
}
|
|
3747
|
+
});
|
|
3748
|
+
|
|
3770
3749
|
// ../compression/src/lib/compression.ts
|
|
3771
3750
|
var Compression;
|
|
3772
3751
|
var init_compression = __esm({
|
|
@@ -8033,7 +8012,7 @@
|
|
|
8033
8012
|
});
|
|
8034
8013
|
|
|
8035
8014
|
// ../compression/src/index.ts
|
|
8036
|
-
var
|
|
8015
|
+
var init_src2 = __esm({
|
|
8037
8016
|
"../compression/src/index.ts"() {
|
|
8038
8017
|
init_deflate_compression();
|
|
8039
8018
|
}
|
|
@@ -8043,12 +8022,12 @@
|
|
|
8043
8022
|
var COMPRESSION_METHODS, ZipFileSystem;
|
|
8044
8023
|
var init_zip_filesystem = __esm({
|
|
8045
8024
|
"src/filesystems/zip-filesystem.ts"() {
|
|
8046
|
-
|
|
8047
|
-
|
|
8048
|
-
|
|
8025
|
+
init_src();
|
|
8026
|
+
init_src();
|
|
8027
|
+
init_src();
|
|
8049
8028
|
init_cd_file_header();
|
|
8050
8029
|
init_local_file_header();
|
|
8051
|
-
|
|
8030
|
+
init_src2();
|
|
8052
8031
|
COMPRESSION_METHODS = {
|
|
8053
8032
|
0: async (compressedFile) => compressedFile,
|
|
8054
8033
|
8: async (compressedFile) => {
|
|
@@ -8138,9 +8117,7 @@
|
|
|
8138
8117
|
// src/index.ts
|
|
8139
8118
|
var src_exports = {};
|
|
8140
8119
|
__export(src_exports, {
|
|
8141
|
-
|
|
8142
|
-
FileHandleFile: () => FileHandleFile,
|
|
8143
|
-
TarBuilder: () => TARBuilder,
|
|
8120
|
+
TarBuilder: () => TarBuilder,
|
|
8144
8121
|
ZipFileSystem: () => ZipFileSystem,
|
|
8145
8122
|
ZipLoader: () => ZipLoader,
|
|
8146
8123
|
ZipWriter: () => ZipWriter,
|
|
@@ -8156,13 +8133,11 @@
|
|
|
8156
8133
|
searchFromTheEnd: () => searchFromTheEnd,
|
|
8157
8134
|
zipCDFileHeaderGenerator: () => zipCDFileHeaderGenerator
|
|
8158
8135
|
});
|
|
8159
|
-
var
|
|
8136
|
+
var init_src3 = __esm({
|
|
8160
8137
|
"src/index.ts"() {
|
|
8161
8138
|
init_zip_loader();
|
|
8162
8139
|
init_zip_writer();
|
|
8163
8140
|
init_tar_builder();
|
|
8164
|
-
init_file_handle_file();
|
|
8165
|
-
init_data_view_file();
|
|
8166
8141
|
init_cd_file_header();
|
|
8167
8142
|
init_local_file_header();
|
|
8168
8143
|
init_end_of_central_directory();
|
|
@@ -8175,7 +8150,7 @@
|
|
|
8175
8150
|
// src/bundle.ts
|
|
8176
8151
|
var require_bundle = __commonJS({
|
|
8177
8152
|
"src/bundle.ts"(exports, module) {
|
|
8178
|
-
var moduleExports = (
|
|
8153
|
+
var moduleExports = (init_src3(), src_exports);
|
|
8179
8154
|
globalThis.loaders = globalThis.loaders || {};
|
|
8180
8155
|
module.exports = Object.assign(globalThis.loaders, moduleExports);
|
|
8181
8156
|
}
|
|
@@ -10,9 +10,7 @@ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/cl
|
|
|
10
10
|
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
|
|
11
11
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
|
|
12
12
|
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
13
|
-
var
|
|
14
|
-
var _fileProvider = require("../file-provider/file-provider");
|
|
15
|
-
var _fileHandleFile = require("../file-provider/file-handle-file");
|
|
13
|
+
var _loaderUtils = require("@loaders.gl/loader-utils");
|
|
16
14
|
var _cdFileHeader = require("../parse-zip/cd-file-header");
|
|
17
15
|
var _localFileHeader = require("../parse-zip/local-file-header");
|
|
18
16
|
var _compression = require("@loaders.gl/compression");
|
|
@@ -71,12 +69,12 @@ var ZipFileSystem = function () {
|
|
|
71
69
|
(0, _defineProperty2.default)(this, "fileName", void 0);
|
|
72
70
|
if (typeof file === 'string') {
|
|
73
71
|
this.fileName = file;
|
|
74
|
-
if (!
|
|
75
|
-
this.fileProvider =
|
|
72
|
+
if (!_loaderUtils.isBrowser) {
|
|
73
|
+
this.fileProvider = _loaderUtils.FileHandleFile.from(file);
|
|
76
74
|
} else {
|
|
77
75
|
throw new Error('Cannot open file for random access in a WEB browser');
|
|
78
76
|
}
|
|
79
|
-
} else if ((0,
|
|
77
|
+
} else if ((0, _loaderUtils.isFileProvider)(file)) {
|
|
80
78
|
this.fileProvider = Promise.resolve(file);
|
|
81
79
|
}
|
|
82
80
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"zip-filesystem.js","names":["_core","require","_fileProvider","_fileHandleFile","_cdFileHeader","_localFileHeader","_compression","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty2","default","getOwnPropertyDescriptors","defineProperties","defineProperty","_asyncIterator","iterable","method","async","sync","retry","Symbol","asyncIterator","iterator","call","AsyncFromSyncIterator","TypeError","s","AsyncFromSyncIteratorContinuation","r","Promise","reject","done","resolve","value","then","n","next","prototype","return","_return","ret","throw","_throw","thr","COMPRESSION_METHODS","_2","_asyncToGenerator2","_regenerator","mark","_callee","compressedFile","wrap","_callee$","_context","prev","abrupt","stop","_","_x","_3","_callee2","compression","decompressedData","_callee2$","_context2","DeflateCompression","raw","decompress","sent","_x2","ZipFileSystem","file","_classCallCheck2","fileName","isBrowser","fileProvider","FileHandleFile","from","Error","isFileProvider","_createClass2","_destroy","_callee3","_callee3$","_context3","destroy","_readdir","_callee4","fileNames","zipCDIterator","_iteratorAbruptCompletion","_didIteratorError","_iteratorError","_iterator","_step","cdHeader","_callee4$","_context4","zipCDFileHeaderGenerator","t0","finish","readdir","_stat","_callee5","filename","cdFileHeader","_callee5$","_context5","getCDFileHeader","size","Number","uncompressedSize","stat","_x3","_fetch","_callee6","localFileHeader","compressionHandler","uncompressedFile","response","_callee6$","_context6","parseZipLocalFileHeader","localHeaderOffset","compressionMethod","toString","slice","fileDataOffset","compressedSize","Response","concat","fetch","_x4","_getCDFileHeader","_callee7","result","_iteratorAbruptCompletion2","_didIteratorError2","_iteratorError2","_iterator2","_step2","_callee7$","_context7","_x5","exports"],"sources":["../../../src/filesystems/zip-filesystem.ts"],"sourcesContent":["import {FileSystem, isBrowser} from '@loaders.gl/core';\nimport {FileProvider, isFileProvider} from '../file-provider/file-provider';\nimport {FileHandleFile} from '../file-provider/file-handle-file';\nimport {ZipCDFileHeader, zipCDFileHeaderGenerator} from '../parse-zip/cd-file-header';\nimport {parseZipLocalFileHeader} from '../parse-zip/local-file-header';\nimport {DeflateCompression} from '@loaders.gl/compression';\n\ntype CompressionHandler = (compressedFile: ArrayBuffer) => Promise<ArrayBuffer>;\n/** Handling different compression types in zip */\nconst COMPRESSION_METHODS: {[key: number]: CompressionHandler} = {\n /** No compression */\n 0: async (compressedFile) => compressedFile,\n /** Deflation */\n 8: async (compressedFile) => {\n const compression = new DeflateCompression({raw: true});\n const decompressedData = await compression.decompress(compressedFile);\n return decompressedData;\n }\n};\n\n/**\n * FileSystem adapter for a ZIP file\n * Holds FileProvider object that provides random access to archived files\n */\nexport class ZipFileSystem implements FileSystem {\n /** FileProvider instance promise */\n protected fileProvider: Promise<FileProvider | null> = Promise.resolve(null);\n public fileName?: string;\n\n /**\n * Constructor\n * @param file - instance of FileProvider or file path string\n */\n constructor(file: FileProvider | string) {\n // Try to open file in NodeJS\n if (typeof file === 'string') {\n this.fileName = file;\n if (!isBrowser) {\n this.fileProvider = FileHandleFile.from(file);\n } else {\n throw new Error('Cannot open file for random access in a WEB browser');\n }\n } else if (isFileProvider(file)) {\n this.fileProvider = Promise.resolve(file);\n }\n }\n\n /** Clean up resources */\n async destroy() {\n const fileProvider = await this.fileProvider;\n if (fileProvider) {\n await fileProvider.destroy();\n }\n }\n\n /**\n * Get file names list from zip archive\n * @returns array of file names\n */\n async readdir(): Promise<string[]> {\n const fileProvider = await this.fileProvider;\n if (!fileProvider) {\n throw new Error('No data detected in the zip archive');\n }\n const fileNames: string[] = [];\n const zipCDIterator = zipCDFileHeaderGenerator(fileProvider);\n for await (const cdHeader of zipCDIterator) {\n fileNames.push(cdHeader.fileName);\n }\n return fileNames;\n }\n\n /**\n * Get file metadata\n * @param filename - name of a file\n * @returns central directory data\n */\n async stat(filename: string): Promise<ZipCDFileHeader & {size: number}> {\n const cdFileHeader = await this.getCDFileHeader(filename);\n return {...cdFileHeader, size: Number(cdFileHeader.uncompressedSize)};\n }\n\n /**\n * Implementation of fetch against this file system\n * @param filename - name of a file\n * @returns - Response with file data\n */\n async fetch(filename: string): Promise<Response> {\n const fileProvider = await this.fileProvider;\n if (!fileProvider) {\n throw new Error('No data detected in the zip archive');\n }\n const cdFileHeader = await this.getCDFileHeader(filename);\n const localFileHeader = await parseZipLocalFileHeader(\n cdFileHeader.localHeaderOffset,\n fileProvider\n );\n if (!localFileHeader) {\n throw new Error('Local file header has not been found in the zip archive`');\n }\n\n const compressionHandler = COMPRESSION_METHODS[localFileHeader.compressionMethod.toString()];\n if (!compressionHandler) {\n throw Error('Only Deflation compression is supported');\n }\n\n const compressedFile = await fileProvider.slice(\n localFileHeader.fileDataOffset,\n localFileHeader.fileDataOffset + localFileHeader.compressedSize\n );\n\n const uncompressedFile = await compressionHandler(compressedFile);\n\n const response = new Response(uncompressedFile);\n Object.defineProperty(response, 'url', {value: `${this.fileName || ''}/${filename}`});\n return response;\n }\n\n /**\n * Get central directory file header\n * @param filename - name of a file\n * @returns central directory file header\n */\n private async getCDFileHeader(filename: string): Promise<ZipCDFileHeader> {\n const fileProvider = await this.fileProvider;\n if (!fileProvider) {\n throw new Error('No data detected in the zip archive');\n }\n const zipCDIterator = zipCDFileHeaderGenerator(fileProvider);\n let result: ZipCDFileHeader | null = null;\n for await (const cdHeader of zipCDIterator) {\n if (cdHeader.fileName === filename) {\n result = cdHeader;\n break;\n }\n }\n if (!result) {\n throw new Error('File has not been found in the zip archive');\n }\n return result;\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"zip-filesystem.js","names":["_loaderUtils","require","_cdFileHeader","_localFileHeader","_compression","ownKeys","object","enumerableOnly","keys","Object","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","forEach","key","_defineProperty2","default","getOwnPropertyDescriptors","defineProperties","defineProperty","_asyncIterator","iterable","method","async","sync","retry","Symbol","asyncIterator","iterator","call","AsyncFromSyncIterator","TypeError","s","AsyncFromSyncIteratorContinuation","r","Promise","reject","done","resolve","value","then","n","next","prototype","return","_return","ret","throw","_throw","thr","COMPRESSION_METHODS","_2","_asyncToGenerator2","_regenerator","mark","_callee","compressedFile","wrap","_callee$","_context","prev","abrupt","stop","_","_x","_3","_callee2","compression","decompressedData","_callee2$","_context2","DeflateCompression","raw","decompress","sent","_x2","ZipFileSystem","file","_classCallCheck2","fileName","isBrowser","fileProvider","FileHandleFile","from","Error","isFileProvider","_createClass2","_destroy","_callee3","_callee3$","_context3","destroy","_readdir","_callee4","fileNames","zipCDIterator","_iteratorAbruptCompletion","_didIteratorError","_iteratorError","_iterator","_step","cdHeader","_callee4$","_context4","zipCDFileHeaderGenerator","t0","finish","readdir","_stat","_callee5","filename","cdFileHeader","_callee5$","_context5","getCDFileHeader","size","Number","uncompressedSize","stat","_x3","_fetch","_callee6","localFileHeader","compressionHandler","uncompressedFile","response","_callee6$","_context6","parseZipLocalFileHeader","localHeaderOffset","compressionMethod","toString","slice","fileDataOffset","compressedSize","Response","concat","fetch","_x4","_getCDFileHeader","_callee7","result","_iteratorAbruptCompletion2","_didIteratorError2","_iteratorError2","_iterator2","_step2","_callee7$","_context7","_x5","exports"],"sources":["../../../src/filesystems/zip-filesystem.ts"],"sourcesContent":["import {FileSystem, isBrowser} from '@loaders.gl/loader-utils';\nimport {FileProvider, isFileProvider} from '@loaders.gl/loader-utils';\nimport {FileHandleFile} from '@loaders.gl/loader-utils';\nimport {ZipCDFileHeader, zipCDFileHeaderGenerator} from '../parse-zip/cd-file-header';\nimport {parseZipLocalFileHeader} from '../parse-zip/local-file-header';\nimport {DeflateCompression} from '@loaders.gl/compression';\n\ntype CompressionHandler = (compressedFile: ArrayBuffer) => Promise<ArrayBuffer>;\n/** Handling different compression types in zip */\nconst COMPRESSION_METHODS: {[key: number]: CompressionHandler} = {\n /** No compression */\n 0: async (compressedFile) => compressedFile,\n /** Deflation */\n 8: async (compressedFile) => {\n const compression = new DeflateCompression({raw: true});\n const decompressedData = await compression.decompress(compressedFile);\n return decompressedData;\n }\n};\n\n/**\n * FileSystem adapter for a ZIP file\n * Holds FileProvider object that provides random access to archived files\n */\nexport class ZipFileSystem implements FileSystem {\n /** FileProvider instance promise */\n protected fileProvider: Promise<FileProvider | null> = Promise.resolve(null);\n public fileName?: string;\n\n /**\n * Constructor\n * @param file - instance of FileProvider or file path string\n */\n constructor(file: FileProvider | string) {\n // Try to open file in NodeJS\n if (typeof file === 'string') {\n this.fileName = file;\n if (!isBrowser) {\n this.fileProvider = FileHandleFile.from(file);\n } else {\n throw new Error('Cannot open file for random access in a WEB browser');\n }\n } else if (isFileProvider(file)) {\n this.fileProvider = Promise.resolve(file);\n }\n }\n\n /** Clean up resources */\n async destroy() {\n const fileProvider = await this.fileProvider;\n if (fileProvider) {\n await fileProvider.destroy();\n }\n }\n\n /**\n * Get file names list from zip archive\n * @returns array of file names\n */\n async readdir(): Promise<string[]> {\n const fileProvider = await this.fileProvider;\n if (!fileProvider) {\n throw new Error('No data detected in the zip archive');\n }\n const fileNames: string[] = [];\n const zipCDIterator = zipCDFileHeaderGenerator(fileProvider);\n for await (const cdHeader of zipCDIterator) {\n fileNames.push(cdHeader.fileName);\n }\n return fileNames;\n }\n\n /**\n * Get file metadata\n * @param filename - name of a file\n * @returns central directory data\n */\n async stat(filename: string): Promise<ZipCDFileHeader & {size: number}> {\n const cdFileHeader = await this.getCDFileHeader(filename);\n return {...cdFileHeader, size: Number(cdFileHeader.uncompressedSize)};\n }\n\n /**\n * Implementation of fetch against this file system\n * @param filename - name of a file\n * @returns - Response with file data\n */\n async fetch(filename: string): Promise<Response> {\n const fileProvider = await this.fileProvider;\n if (!fileProvider) {\n throw new Error('No data detected in the zip archive');\n }\n const cdFileHeader = await this.getCDFileHeader(filename);\n const localFileHeader = await parseZipLocalFileHeader(\n cdFileHeader.localHeaderOffset,\n fileProvider\n );\n if (!localFileHeader) {\n throw new Error('Local file header has not been found in the zip archive`');\n }\n\n const compressionHandler = COMPRESSION_METHODS[localFileHeader.compressionMethod.toString()];\n if (!compressionHandler) {\n throw Error('Only Deflation compression is supported');\n }\n\n const compressedFile = await fileProvider.slice(\n localFileHeader.fileDataOffset,\n localFileHeader.fileDataOffset + localFileHeader.compressedSize\n );\n\n const uncompressedFile = await compressionHandler(compressedFile);\n\n const response = new Response(uncompressedFile);\n Object.defineProperty(response, 'url', {value: `${this.fileName || ''}/${filename}`});\n return response;\n }\n\n /**\n * Get central directory file header\n * @param filename - name of a file\n * @returns central directory file header\n */\n private async getCDFileHeader(filename: string): Promise<ZipCDFileHeader> {\n const fileProvider = await this.fileProvider;\n if (!fileProvider) {\n throw new Error('No data detected in the zip archive');\n }\n const zipCDIterator = zipCDFileHeaderGenerator(fileProvider);\n let result: ZipCDFileHeader | null = null;\n for await (const cdHeader of zipCDIterator) {\n if (cdHeader.fileName === filename) {\n result = cdHeader;\n break;\n }\n }\n if (!result) {\n throw new Error('File has not been found in the zip archive');\n }\n return result;\n }\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hash-file-utility.js","names":["_md","_interopRequireDefault","require","_cdFileHeader","_asyncIterator","iterable","method","async","sync","retry","Symbol","asyncIterator","iterator","call","AsyncFromSyncIterator","TypeError","s","AsyncFromSyncIteratorContinuation","r","Object","Promise","reject","done","resolve","value","then","n","next","prototype","apply","arguments","return","_return","ret","throw","_throw","thr","compareHashes","hash1","hash2","h1","BigUint64Array","buffer","byteOffset","h2","diff","exports","parseHashFile","hashFile","hashFileBuffer","Buffer","from","hashArray","i","byteLength","offsetBuffer","DataView","slice","offset","getBigUint64","push","hash","subarray","findBin","hashToSearch","lowerBorder","upperBorder","length","middle","Math","floor","undefined","generateHashInfo","_ref","_asyncToGenerator2","default","_regenerator","mark","_callee","fileProvider","zipCDIterator","hashInfo","_iteratorAbruptCompletion","_didIteratorError","_iteratorError","_iterator","_step","cdHeader","wrap","_callee$","_context","prev","zipCDFileHeaderGenerator","sent","md5","fileName","split","join","toLocaleLowerCase","localHeaderOffset","t0","finish","sort","a","b","abrupt","stop","_x"],"sources":["../../src/hash-file-utility.ts"],"sourcesContent":["import md5 from 'md5';\nimport {
|
|
1
|
+
{"version":3,"file":"hash-file-utility.js","names":["_md","_interopRequireDefault","require","_cdFileHeader","_asyncIterator","iterable","method","async","sync","retry","Symbol","asyncIterator","iterator","call","AsyncFromSyncIterator","TypeError","s","AsyncFromSyncIteratorContinuation","r","Object","Promise","reject","done","resolve","value","then","n","next","prototype","apply","arguments","return","_return","ret","throw","_throw","thr","compareHashes","hash1","hash2","h1","BigUint64Array","buffer","byteOffset","h2","diff","exports","parseHashFile","hashFile","hashFileBuffer","Buffer","from","hashArray","i","byteLength","offsetBuffer","DataView","slice","offset","getBigUint64","push","hash","subarray","findBin","hashToSearch","lowerBorder","upperBorder","length","middle","Math","floor","undefined","generateHashInfo","_ref","_asyncToGenerator2","default","_regenerator","mark","_callee","fileProvider","zipCDIterator","hashInfo","_iteratorAbruptCompletion","_didIteratorError","_iteratorError","_iterator","_step","cdHeader","wrap","_callee$","_context","prev","zipCDFileHeaderGenerator","sent","md5","fileName","split","join","toLocaleLowerCase","localHeaderOffset","t0","finish","sort","a","b","abrupt","stop","_x"],"sources":["../../src/hash-file-utility.ts"],"sourcesContent":["import md5 from 'md5';\nimport {FileProvider} from '@loaders.gl/loader-utils';\nimport {zipCDFileHeaderGenerator} from './parse-zip/cd-file-header';\n\n/** Element of hash array */\nexport type HashElement = {\n /** File name hash */\n hash: Buffer;\n /** File offset in the archive */\n offset: bigint;\n};\n\n/**\n * Comparing md5 hashes according to https://github.com/Esri/i3s-spec/blob/master/docs/2.0/slpk_hashtable.pcsl.md step 5\n * @param hash1 hash to compare\n * @param hash2 hash to compare\n * @returns -1 if hash1 < hash2, 0 of hash1 === hash2, 1 if hash1 > hash2\n */\nexport const compareHashes = (hash1: Buffer, hash2: Buffer): number => {\n const h1 = new BigUint64Array(hash1.buffer, hash1.byteOffset, 2);\n const h2 = new BigUint64Array(hash2.buffer, hash2.byteOffset, 2);\n\n const diff = h1[0] === h2[0] ? h1[1] - h2[1] : h1[0] - h2[0];\n\n if (diff < 0n) {\n return -1;\n } else if (diff === 0n) {\n return 0;\n }\n return 1;\n};\n\n/**\n * Reads hash file from buffer and returns it in ready-to-use form\n * @param hashFile - bufer containing hash file\n * @returns Array containing file info\n */\nexport const parseHashFile = (hashFile: ArrayBuffer): HashElement[] => {\n const hashFileBuffer = Buffer.from(hashFile);\n const hashArray: HashElement[] = [];\n for (let i = 0; i < hashFileBuffer.buffer.byteLength; i = i + 24) {\n const offsetBuffer = new DataView(\n hashFileBuffer.buffer.slice(\n hashFileBuffer.byteOffset + i + 16,\n hashFileBuffer.byteOffset + i + 24\n )\n );\n const offset = offsetBuffer.getBigUint64(offsetBuffer.byteOffset, true);\n hashArray.push({\n hash: Buffer.from(\n hashFileBuffer.subarray(hashFileBuffer.byteOffset + i, hashFileBuffer.byteOffset + i + 16)\n ),\n offset\n });\n }\n return hashArray;\n};\n\n/**\n * Binary search in the hash info\n * @param hashToSearch hash that we need to find\n * @returns required hash element or undefined if not found\n */\nexport const findBin = (\n hashToSearch: Buffer,\n hashArray: HashElement[]\n): HashElement | undefined => {\n let lowerBorder = 0;\n let upperBorder = hashArray.length;\n\n while (upperBorder - lowerBorder > 1) {\n const middle = lowerBorder + Math.floor((upperBorder - lowerBorder) / 2);\n const value = compareHashes(hashArray[middle].hash, hashToSearch);\n if (value === 0) {\n return hashArray[middle];\n } else if (value < 0) {\n lowerBorder = middle;\n } else {\n upperBorder = middle;\n }\n }\n return undefined;\n};\n\n/**\n * generates hash info from central directory\n * @param fileProvider - provider of the archive\n * @returns ready to use hash info\n */\nexport const generateHashInfo = async (fileProvider: FileProvider): Promise<HashElement[]> => {\n const zipCDIterator = zipCDFileHeaderGenerator(fileProvider);\n const hashInfo: HashElement[] = [];\n for await (const cdHeader of zipCDIterator) {\n hashInfo.push({\n hash: Buffer.from(md5(cdHeader.fileName.split('\\\\').join('/').toLocaleLowerCase()), 'hex'),\n offset: cdHeader.localHeaderOffset\n });\n }\n hashInfo.sort((a, b) => compareHashes(a.hash, b.hash));\n return hashInfo;\n};\n"],"mappings":"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"}
|
package/dist/es5/index.js
CHANGED
|
@@ -1,25 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
3
|
Object.defineProperty(exports, "__esModule", {
|
|
5
4
|
value: true
|
|
6
5
|
});
|
|
7
|
-
Object.defineProperty(exports, "DataViewFile", {
|
|
8
|
-
enumerable: true,
|
|
9
|
-
get: function get() {
|
|
10
|
-
return _dataViewFile.DataViewFile;
|
|
11
|
-
}
|
|
12
|
-
});
|
|
13
|
-
Object.defineProperty(exports, "FileHandleFile", {
|
|
14
|
-
enumerable: true,
|
|
15
|
-
get: function get() {
|
|
16
|
-
return _fileHandleFile.FileHandleFile;
|
|
17
|
-
}
|
|
18
|
-
});
|
|
19
6
|
Object.defineProperty(exports, "TarBuilder", {
|
|
20
7
|
enumerable: true,
|
|
21
8
|
get: function get() {
|
|
22
|
-
return _tarBuilder.
|
|
9
|
+
return _tarBuilder.TarBuilder;
|
|
23
10
|
}
|
|
24
11
|
});
|
|
25
12
|
Object.defineProperty(exports, "ZipFileSystem", {
|
|
@@ -108,9 +95,7 @@ Object.defineProperty(exports, "zipCDFileHeaderGenerator", {
|
|
|
108
95
|
});
|
|
109
96
|
var _zipLoader = require("./zip-loader");
|
|
110
97
|
var _zipWriter = require("./zip-writer");
|
|
111
|
-
var _tarBuilder =
|
|
112
|
-
var _fileHandleFile = require("./file-provider/file-handle-file");
|
|
113
|
-
var _dataViewFile = require("./file-provider/data-view-file");
|
|
98
|
+
var _tarBuilder = require("./tar-builder");
|
|
114
99
|
var _cdFileHeader = require("./parse-zip/cd-file-header");
|
|
115
100
|
var _localFileHeader = require("./parse-zip/local-file-header");
|
|
116
101
|
var _endOfCentralDirectory = require("./parse-zip/end-of-central-directory");
|
package/dist/es5/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["_zipLoader","require","_zipWriter","_tarBuilder","
|
|
1
|
+
{"version":3,"file":"index.js","names":["_zipLoader","require","_zipWriter","_tarBuilder","_cdFileHeader","_localFileHeader","_endOfCentralDirectory","_searchFromTheEnd","_hashFileUtility","_zipFilesystem"],"sources":["../../src/index.ts"],"sourcesContent":["// loaders.gl, MIT license\n\nexport {ZipLoader} from './zip-loader';\nexport {ZipWriter} from './zip-writer';\nexport {TarBuilder} from './tar-builder';\n\nexport {\n parseZipCDFileHeader,\n zipCDFileHeaderGenerator,\n signature as cdSignature\n} from './parse-zip/cd-file-header';\nexport {\n parseZipLocalFileHeader,\n signature as localHeaderSignature\n} from './parse-zip/local-file-header';\nexport {parseEoCDRecord} from './parse-zip/end-of-central-directory';\nexport {searchFromTheEnd} from './parse-zip/search-from-the-end';\n\nexport type {HashElement} from './hash-file-utility';\nexport {compareHashes, parseHashFile, findBin, generateHashInfo} from './hash-file-utility';\n\nexport {ZipFileSystem} from './filesystems/zip-filesystem';\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,IAAAA,UAAA,GAAAC,OAAA;AACA,IAAAC,UAAA,GAAAD,OAAA;AACA,IAAAE,WAAA,GAAAF,OAAA;AAEA,IAAAG,aAAA,GAAAH,OAAA;AAKA,IAAAI,gBAAA,GAAAJ,OAAA;AAIA,IAAAK,sBAAA,GAAAL,OAAA;AACA,IAAAM,iBAAA,GAAAN,OAAA;AAGA,IAAAO,gBAAA,GAAAP,OAAA;AAEA,IAAAQ,cAAA,GAAAR,OAAA"}
|