@loaders.gl/compression 4.0.0-alpha.1 → 4.0.0-alpha.10

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.
Files changed (130) hide show
  1. package/dist/brotli/decode.d.ts +5 -0
  2. package/dist/brotli/decode.d.ts.map +1 -0
  3. package/dist/brotli/decode.js +2346 -0
  4. package/dist/bundle.d.ts +2 -0
  5. package/dist/bundle.d.ts.map +1 -0
  6. package/dist/bundle.js +2 -2
  7. package/dist/compression-worker-node.js +4 -0
  8. package/dist/compression-worker-node.js.map +7 -0
  9. package/dist/compression-worker.d.ts +21 -0
  10. package/dist/compression-worker.d.ts.map +1 -0
  11. package/dist/compression-worker.js +4 -14
  12. package/dist/compression-worker.js.map +7 -1
  13. package/dist/dist.min.js +9 -2
  14. package/dist/dist.min.js.map +7 -1
  15. package/dist/es5/brotli/decode.js +1778 -0
  16. package/dist/es5/brotli/decode.js.map +1 -0
  17. package/dist/es5/bundle.js +6 -0
  18. package/dist/es5/bundle.js.map +1 -0
  19. package/dist/es5/compression-worker.js +23 -0
  20. package/dist/es5/compression-worker.js.map +1 -0
  21. package/dist/es5/index.js +82 -0
  22. package/dist/es5/index.js.map +1 -0
  23. package/dist/es5/lib/brotli-compression.js +170 -0
  24. package/dist/es5/lib/brotli-compression.js.map +1 -0
  25. package/dist/es5/lib/compression.js +160 -0
  26. package/dist/es5/lib/compression.js.map +1 -0
  27. package/dist/es5/lib/deflate-compression.js +318 -0
  28. package/dist/es5/lib/deflate-compression.js.map +1 -0
  29. package/dist/es5/lib/gzip-compression.js +40 -0
  30. package/dist/es5/lib/gzip-compression.js.map +1 -0
  31. package/dist/es5/lib/lz4-compression.js +119 -0
  32. package/dist/es5/lib/lz4-compression.js.map +1 -0
  33. package/dist/es5/lib/lzo-compression.js +116 -0
  34. package/dist/es5/lib/lzo-compression.js.map +1 -0
  35. package/dist/es5/lib/no-compression.js +87 -0
  36. package/dist/es5/lib/no-compression.js.map +1 -0
  37. package/dist/es5/lib/snappy-compression.js +48 -0
  38. package/dist/es5/lib/snappy-compression.js.map +1 -0
  39. package/dist/es5/lib/zstd-compression.js +90 -0
  40. package/dist/es5/lib/zstd-compression.js.map +1 -0
  41. package/dist/es5/types.js +2 -0
  42. package/dist/es5/types.js.map +1 -0
  43. package/dist/es5/workers/worker.js +91 -0
  44. package/dist/es5/workers/worker.js.map +1 -0
  45. package/dist/esm/brotli/decode.js +1771 -0
  46. package/dist/esm/brotli/decode.js.map +1 -0
  47. package/dist/esm/bundle.js +4 -0
  48. package/dist/esm/bundle.js.map +1 -0
  49. package/dist/esm/compression-worker.js +14 -0
  50. package/dist/esm/compression-worker.js.map +1 -0
  51. package/dist/esm/index.js +11 -0
  52. package/dist/esm/index.js.map +1 -0
  53. package/dist/esm/lib/brotli-compression.js +84 -0
  54. package/dist/esm/lib/brotli-compression.js.map +1 -0
  55. package/dist/esm/lib/compression.js +47 -0
  56. package/dist/esm/lib/compression.js.map +1 -0
  57. package/dist/esm/lib/deflate-compression.js +118 -0
  58. package/dist/esm/lib/deflate-compression.js.map +1 -0
  59. package/dist/esm/lib/gzip-compression.js +18 -0
  60. package/dist/esm/lib/gzip-compression.js.map +1 -0
  61. package/dist/esm/lib/lz4-compression.js +88 -0
  62. package/dist/esm/lib/lz4-compression.js.map +1 -0
  63. package/dist/esm/lib/lzo-compression.js +36 -0
  64. package/dist/esm/lib/lzo-compression.js.map +1 -0
  65. package/dist/esm/lib/no-compression.js +26 -0
  66. package/dist/esm/lib/no-compression.js.map +1 -0
  67. package/dist/esm/lib/snappy-compression.js +21 -0
  68. package/dist/esm/lib/snappy-compression.js.map +1 -0
  69. package/dist/esm/lib/zstd-compression.js +36 -0
  70. package/dist/esm/lib/zstd-compression.js.map +1 -0
  71. package/dist/esm/types.js +2 -0
  72. package/dist/esm/types.js.map +1 -0
  73. package/dist/esm/workers/worker.js +60 -0
  74. package/dist/esm/workers/worker.js.map +1 -0
  75. package/dist/index.d.ts +13 -0
  76. package/dist/index.d.ts.map +1 -0
  77. package/dist/index.js +24 -11
  78. package/dist/lib/brotli-compression.d.ts +31 -0
  79. package/dist/lib/brotli-compression.d.ts.map +1 -0
  80. package/dist/lib/brotli-compression.js +83 -85
  81. package/dist/lib/compression.d.ts +31 -0
  82. package/dist/lib/compression.d.ts.map +1 -0
  83. package/dist/lib/compression.js +56 -61
  84. package/dist/lib/deflate-compression.d.ts +32 -0
  85. package/dist/lib/deflate-compression.d.ts.map +1 -0
  86. package/dist/lib/deflate-compression.js +128 -150
  87. package/dist/lib/gzip-compression.d.ts +17 -0
  88. package/dist/lib/gzip-compression.d.ts.map +1 -0
  89. package/dist/lib/gzip-compression.js +16 -20
  90. package/dist/lib/lz4-compression.d.ts +37 -0
  91. package/dist/lib/lz4-compression.d.ts.map +1 -0
  92. package/dist/lib/lz4-compression.js +132 -108
  93. package/dist/lib/lzo-compression.d.ts +21 -0
  94. package/dist/lib/lzo-compression.d.ts.map +1 -0
  95. package/dist/lib/lzo-compression.js +54 -44
  96. package/dist/lib/no-compression.d.ts +18 -0
  97. package/dist/lib/no-compression.d.ts.map +1 -0
  98. package/dist/lib/no-compression.js +29 -36
  99. package/dist/lib/snappy-compression.d.ts +16 -0
  100. package/dist/lib/snappy-compression.d.ts.map +1 -0
  101. package/dist/lib/snappy-compression.js +26 -29
  102. package/dist/lib/zstd-compression.d.ts +21 -0
  103. package/dist/lib/zstd-compression.d.ts.map +1 -0
  104. package/dist/lib/zstd-compression.js +43 -42
  105. package/dist/types.d.ts +2 -0
  106. package/dist/types.d.ts.map +1 -0
  107. package/dist/types.js +2 -2
  108. package/dist/workers/worker.d.ts +2 -0
  109. package/dist/workers/worker.d.ts.map +1 -0
  110. package/dist/workers/worker.js +70 -70
  111. package/package.json +12 -12
  112. package/src/brotli/decode.ts +2441 -0
  113. package/src/index.ts +3 -2
  114. package/src/lib/brotli-compression.ts +22 -7
  115. package/src/lib/deflate-compression.ts +5 -5
  116. package/src/lib/zstd-compression.ts +5 -2
  117. package/src/workers/worker.ts +10 -10
  118. package/dist/bundle.js.map +0 -1
  119. package/dist/index.js.map +0 -1
  120. package/dist/lib/brotli-compression.js.map +0 -1
  121. package/dist/lib/compression.js.map +0 -1
  122. package/dist/lib/deflate-compression.js.map +0 -1
  123. package/dist/lib/gzip-compression.js.map +0 -1
  124. package/dist/lib/lz4-compression.js.map +0 -1
  125. package/dist/lib/lzo-compression.js.map +0 -1
  126. package/dist/lib/no-compression.js.map +0 -1
  127. package/dist/lib/snappy-compression.js.map +0 -1
  128. package/dist/lib/zstd-compression.js.map +0 -1
  129. package/dist/types.js.map +0 -1
  130. package/dist/workers/worker.js.map +0 -1
@@ -0,0 +1,21 @@
1
+ import type { CompressionOptions } from './compression';
2
+ import { Compression } from './compression';
3
+ /**
4
+ * Lempel-Ziv-Oberheimer compression / decompression
5
+ */
6
+ export declare class LZOCompression extends Compression {
7
+ readonly name = "lzo";
8
+ readonly extensions: never[];
9
+ readonly contentEncodings: never[];
10
+ readonly isSupported = false;
11
+ readonly options: CompressionOptions;
12
+ /**
13
+ * lzo is an injectable dependency due to big size
14
+ * @param options
15
+ */
16
+ constructor(options: CompressionOptions);
17
+ preload(): Promise<void>;
18
+ compress(input: ArrayBuffer): Promise<ArrayBuffer>;
19
+ decompress(input: ArrayBuffer): Promise<ArrayBuffer>;
20
+ }
21
+ //# sourceMappingURL=lzo-compression.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lzo-compression.d.ts","sourceRoot":"","sources":["../../src/lib/lzo-compression.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,eAAe,CAAC;AACtD,OAAO,EAAC,WAAW,EAAC,MAAM,eAAe,CAAC;AAW1C;;GAEG;AACH,qBAAa,cAAe,SAAQ,WAAW;IAC7C,QAAQ,CAAC,IAAI,SAAS;IACtB,QAAQ,CAAC,UAAU,UAAM;IACzB,QAAQ,CAAC,gBAAgB,UAAM;IAC/B,QAAQ,CAAC,WAAW,SAAS;IAC7B,QAAQ,CAAC,OAAO,EAAE,kBAAkB,CAAC;IAErC;;;OAGG;gBACS,OAAO,EAAE,kBAAkB;IAUjC,OAAO;IAKP,QAAQ,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;IAOlD,UAAU,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;CAY3D"}
@@ -1,48 +1,58 @@
1
- import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
2
- import { toBuffer } from '@loaders.gl/loader-utils';
3
- import { Compression } from './compression';
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.LZOCompression = void 0;
4
+ // LZO
5
+ // import {loadLibrary} from '@loaders.gl/worker-utils';
6
+ const loader_utils_1 = require("@loaders.gl/loader-utils");
7
+ const compression_1 = require("./compression");
8
+ // import {isBrowser} from '@loaders.gl/loader-utils';
9
+ // import lzo from 'lzo'; // https://bundlephobia.com/package/lzo
10
+ // import {decompress} from 'lzo-wasm';
11
+ // const LZO_WASM_JS_URL = './node_modules/lzo-wasm/lzo-wasm.js';
12
+ // const LZO_WASM_WASM_URL = './node_modules/lzo-wasm/lzo-wasm.wasm';
4
13
  let lzo;
5
- export class LZOCompression extends Compression {
6
- constructor(options) {
7
- var _this$options, _this$options$modules;
8
-
9
- super(options);
10
-
11
- _defineProperty(this, "name", 'lzo');
12
-
13
- _defineProperty(this, "extensions", []);
14
-
15
- _defineProperty(this, "contentEncodings", []);
16
-
17
- _defineProperty(this, "isSupported", false);
18
-
19
- _defineProperty(this, "options", void 0);
20
-
21
- this.options = options;
22
- lzo = lzo || ((_this$options = this.options) === null || _this$options === void 0 ? void 0 : (_this$options$modules = _this$options.modules) === null || _this$options$modules === void 0 ? void 0 : _this$options$modules.lzo);
23
-
24
- if (!lzo) {
25
- throw new Error(this.name);
14
+ /**
15
+ * Lempel-Ziv-Oberheimer compression / decompression
16
+ */
17
+ class LZOCompression extends compression_1.Compression {
18
+ /**
19
+ * lzo is an injectable dependency due to big size
20
+ * @param options
21
+ */
22
+ constructor(options) {
23
+ super(options);
24
+ this.name = 'lzo';
25
+ this.extensions = [];
26
+ this.contentEncodings = [];
27
+ this.isSupported = false; // !isBrowser;
28
+ this.options = options;
29
+ lzo = lzo || this.options?.modules?.lzo;
30
+ if (!lzo) {
31
+ throw new Error(this.name);
32
+ }
26
33
  }
27
- }
28
-
29
- async preload() {}
30
-
31
- async compress(input) {
32
- await this.preload();
33
- const inputBuffer = toBuffer(input);
34
- return lzo.compress(inputBuffer).buffer;
35
- }
36
-
37
- async decompress(input) {
38
- try {
39
- await this.preload();
40
- const inputBuffer = toBuffer(input);
41
- return lzo.decompress(inputBuffer).buffer;
42
- } catch (error) {
43
- throw error;
34
+ async preload() {
35
+ // await loadLibrary(LZO_WASM_JS_URL);
36
+ // await loadLibrary(LZO_WASM_WASM_URL);
37
+ }
38
+ async compress(input) {
39
+ await this.preload();
40
+ // const inputArray = new Uint8Array(input);
41
+ const inputBuffer = (0, loader_utils_1.toBuffer)(input);
42
+ return lzo.compress(inputBuffer).buffer;
43
+ }
44
+ async decompress(input) {
45
+ try {
46
+ await this.preload();
47
+ // const inputArray = new Uint8Array(input);
48
+ const inputBuffer = (0, loader_utils_1.toBuffer)(input);
49
+ return lzo.decompress(inputBuffer).buffer;
50
+ }
51
+ catch (error) {
52
+ // TODO - solve SharedArrayBuffer issues
53
+ // return decompress(input);
54
+ throw error;
55
+ }
44
56
  }
45
- }
46
-
47
57
  }
48
- //# sourceMappingURL=lzo-compression.js.map
58
+ exports.LZOCompression = LZOCompression;
@@ -0,0 +1,18 @@
1
+ import type { CompressionOptions } from './compression';
2
+ import { Compression } from './compression';
3
+ /**
4
+ * Applies no compression.
5
+ */
6
+ export declare class NoCompression extends Compression {
7
+ readonly name: string;
8
+ readonly extensions: string[];
9
+ readonly contentEncodings: string[];
10
+ readonly isSupported = true;
11
+ readonly options: CompressionOptions;
12
+ constructor(options?: CompressionOptions);
13
+ compressSync(input: ArrayBuffer): ArrayBuffer;
14
+ decompressSync(input: ArrayBuffer): ArrayBuffer;
15
+ compressBatches(asyncIterator: AsyncIterable<ArrayBuffer> | Iterable<ArrayBuffer>): AsyncIterable<ArrayBuffer>;
16
+ decompressBatches(asyncIterator: AsyncIterable<ArrayBuffer> | Iterable<ArrayBuffer>): AsyncIterable<ArrayBuffer>;
17
+ }
18
+ //# sourceMappingURL=no-compression.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"no-compression.d.ts","sourceRoot":"","sources":["../../src/lib/no-compression.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,eAAe,CAAC;AACtD,OAAO,EAAC,WAAW,EAAC,MAAM,eAAe,CAAC;AAE1C;;GAEG;AACH,qBAAa,aAAc,SAAQ,WAAW;IAC5C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAkB;IACvC,QAAQ,CAAC,UAAU,EAAE,MAAM,EAAE,CAAM;IACnC,QAAQ,CAAC,gBAAgB,EAAE,MAAM,EAAE,CAAM;IACzC,QAAQ,CAAC,WAAW,QAAQ;IAE5B,QAAQ,CAAC,OAAO,EAAE,kBAAkB,CAAC;gBAEzB,OAAO,CAAC,EAAE,kBAAkB;IAKxC,YAAY,CAAC,KAAK,EAAE,WAAW,GAAG,WAAW;IAI7C,cAAc,CAAC,KAAK,EAAE,WAAW,GAAG,WAAW;IAIxC,eAAe,CACpB,aAAa,EAAE,aAAa,CAAC,WAAW,CAAC,GAAG,QAAQ,CAAC,WAAW,CAAC,GAChE,aAAa,CAAC,WAAW,CAAC;IAItB,iBAAiB,CACtB,aAAa,EAAE,aAAa,CAAC,WAAW,CAAC,GAAG,QAAQ,CAAC,WAAW,CAAC,GAChE,aAAa,CAAC,WAAW,CAAC;CAG9B"}
@@ -1,37 +1,30 @@
1
- import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
2
- import { Compression } from './compression';
3
- export class NoCompression extends Compression {
4
- constructor(options) {
5
- super(options);
6
-
7
- _defineProperty(this, "name", 'uncompressed');
8
-
9
- _defineProperty(this, "extensions", []);
10
-
11
- _defineProperty(this, "contentEncodings", []);
12
-
13
- _defineProperty(this, "isSupported", true);
14
-
15
- _defineProperty(this, "options", void 0);
16
-
17
- this.options = options || {};
18
- }
19
-
20
- compressSync(input) {
21
- return input;
22
- }
23
-
24
- decompressSync(input) {
25
- return input;
26
- }
27
-
28
- async *compressBatches(asyncIterator) {
29
- return yield* asyncIterator;
30
- }
31
-
32
- async *decompressBatches(asyncIterator) {
33
- return yield* asyncIterator;
34
- }
35
-
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.NoCompression = void 0;
4
+ const compression_1 = require("./compression");
5
+ /**
6
+ * Applies no compression.
7
+ */
8
+ class NoCompression extends compression_1.Compression {
9
+ constructor(options) {
10
+ super(options);
11
+ this.name = 'uncompressed';
12
+ this.extensions = [];
13
+ this.contentEncodings = [];
14
+ this.isSupported = true;
15
+ this.options = options || {};
16
+ }
17
+ compressSync(input) {
18
+ return input;
19
+ }
20
+ decompressSync(input) {
21
+ return input;
22
+ }
23
+ async *compressBatches(asyncIterator) {
24
+ return yield* asyncIterator;
25
+ }
26
+ async *decompressBatches(asyncIterator) {
27
+ return yield* asyncIterator;
28
+ }
36
29
  }
37
- //# sourceMappingURL=no-compression.js.map
30
+ exports.NoCompression = NoCompression;
@@ -0,0 +1,16 @@
1
+ import type { CompressionOptions } from './compression';
2
+ import { Compression } from './compression';
3
+ /**
4
+ * Snappy/zippy compression / decompression
5
+ */
6
+ export declare class SnappyCompression extends Compression {
7
+ readonly name: string;
8
+ readonly extensions: never[];
9
+ readonly contentEncodings: never[];
10
+ readonly isSupported = true;
11
+ readonly options: CompressionOptions;
12
+ constructor(options?: CompressionOptions);
13
+ compressSync(input: ArrayBuffer): ArrayBuffer;
14
+ decompressSync(input: ArrayBuffer): ArrayBuffer;
15
+ }
16
+ //# sourceMappingURL=snappy-compression.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"snappy-compression.d.ts","sourceRoot":"","sources":["../../src/lib/snappy-compression.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,eAAe,CAAC;AACtD,OAAO,EAAC,WAAW,EAAC,MAAM,eAAe,CAAC;AAG1C;;GAEG;AACH,qBAAa,iBAAkB,SAAQ,WAAW;IAChD,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAY;IACjC,QAAQ,CAAC,UAAU,UAAM;IACzB,QAAQ,CAAC,gBAAgB,UAAM;IAC/B,QAAQ,CAAC,WAAW,QAAQ;IAC5B,QAAQ,CAAC,OAAO,EAAE,kBAAkB,CAAC;gBAEzB,OAAO,CAAC,EAAE,kBAAkB;IAKxC,YAAY,CAAC,KAAK,EAAE,WAAW,GAAG,WAAW;IAK7C,cAAc,CAAC,KAAK,EAAE,WAAW,GAAG,WAAW;CAIhD"}
@@ -1,30 +1,27 @@
1
- import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
2
- import { Compression } from './compression';
3
- import { compress, uncompress } from 'snappyjs';
4
- export class SnappyCompression extends Compression {
5
- constructor(options) {
6
- super(options);
7
-
8
- _defineProperty(this, "name", 'snappy');
9
-
10
- _defineProperty(this, "extensions", []);
11
-
12
- _defineProperty(this, "contentEncodings", []);
13
-
14
- _defineProperty(this, "isSupported", true);
15
-
16
- _defineProperty(this, "options", void 0);
17
-
18
- this.options = options || {};
19
- }
20
-
21
- compressSync(input) {
22
- return compress(input);
23
- }
24
-
25
- decompressSync(input) {
26
- return uncompress(input);
27
- }
28
-
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SnappyCompression = void 0;
4
+ const compression_1 = require("./compression");
5
+ const snappyjs_1 = require("snappyjs"); // https://bundlephobia.com/package/snappy
6
+ /**
7
+ * Snappy/zippy compression / decompression
8
+ */
9
+ class SnappyCompression extends compression_1.Compression {
10
+ constructor(options) {
11
+ super(options);
12
+ this.name = 'snappy';
13
+ this.extensions = [];
14
+ this.contentEncodings = [];
15
+ this.isSupported = true;
16
+ this.options = options || {};
17
+ }
18
+ compressSync(input) {
19
+ // Accepts arrayBuffer - https://github.com/zhipeng-jia/snappyjs#usage
20
+ return (0, snappyjs_1.compress)(input);
21
+ }
22
+ decompressSync(input) {
23
+ // Accepts arrayBuffer - https://github.com/zhipeng-jia/snappyjs#usage
24
+ return (0, snappyjs_1.uncompress)(input);
25
+ }
29
26
  }
30
- //# sourceMappingURL=snappy-compression.js.map
27
+ exports.SnappyCompression = SnappyCompression;
@@ -0,0 +1,21 @@
1
+ import type { CompressionOptions } from './compression';
2
+ import { Compression } from './compression';
3
+ /**
4
+ * Zstandard compression / decompression
5
+ */
6
+ export declare class ZstdCompression extends Compression {
7
+ readonly name: string;
8
+ readonly extensions: never[];
9
+ readonly contentEncodings: never[];
10
+ readonly isSupported = true;
11
+ readonly options: CompressionOptions;
12
+ /**
13
+ * zstd-codec is an injectable dependency due to big size
14
+ * @param options
15
+ */
16
+ constructor(options: CompressionOptions);
17
+ preload(): Promise<void>;
18
+ compressSync(input: ArrayBuffer): ArrayBuffer;
19
+ decompressSync(input: ArrayBuffer): ArrayBuffer;
20
+ }
21
+ //# sourceMappingURL=zstd-compression.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zstd-compression.d.ts","sourceRoot":"","sources":["../../src/lib/zstd-compression.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAC,kBAAkB,EAAC,MAAM,eAAe,CAAC;AACtD,OAAO,EAAC,WAAW,EAAC,MAAM,eAAe,CAAC;AAM1C;;GAEG;AACH,qBAAa,eAAgB,SAAQ,WAAW;IAC9C,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAU;IAC/B,QAAQ,CAAC,UAAU,UAAM;IACzB,QAAQ,CAAC,gBAAgB,UAAM;IAC/B,QAAQ,CAAC,WAAW,QAAQ;IAC5B,QAAQ,CAAC,OAAO,EAAE,kBAAkB,CAAC;IAErC;;;OAGG;gBACS,OAAO,EAAE,kBAAkB;IAWjC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAM9B,YAAY,CAAC,KAAK,EAAE,WAAW,GAAG,WAAW;IAM7C,cAAc,CAAC,KAAK,EAAE,WAAW,GAAG,WAAW;CAOhD"}
@@ -1,46 +1,47 @@
1
- import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";
2
- import { Compression } from './compression';
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ZstdCompression = void 0;
4
+ const compression_1 = require("./compression");
5
+ // import {ZstdCodec} from 'zstd-codec'; // https://bundlephobia.com/package/zstd-codec
3
6
  let ZstdCodec;
4
7
  let zstd;
5
- export class ZstdCompression extends Compression {
6
- constructor(options) {
7
- var _this$options, _this$options$modules;
8
-
9
- super(options);
10
-
11
- _defineProperty(this, "name", 'zstd');
12
-
13
- _defineProperty(this, "extensions", []);
14
-
15
- _defineProperty(this, "contentEncodings", []);
16
-
17
- _defineProperty(this, "isSupported", true);
18
-
19
- _defineProperty(this, "options", void 0);
20
-
21
- this.options = options;
22
- ZstdCodec = (_this$options = this.options) === null || _this$options === void 0 ? void 0 : (_this$options$modules = _this$options.modules) === null || _this$options$modules === void 0 ? void 0 : _this$options$modules['zstd-codec'];
23
-
24
- if (!ZstdCodec) {
25
- throw new Error(this.name);
8
+ /**
9
+ * Zstandard compression / decompression
10
+ */
11
+ class ZstdCompression extends compression_1.Compression {
12
+ /**
13
+ * zstd-codec is an injectable dependency due to big size
14
+ * @param options
15
+ */
16
+ constructor(options) {
17
+ super(options);
18
+ this.name = 'zstd';
19
+ this.extensions = [];
20
+ this.contentEncodings = [];
21
+ this.isSupported = true;
22
+ this.options = options;
23
+ ZstdCodec = this.options?.modules?.['zstd-codec'];
24
+ if (!ZstdCodec) {
25
+ // eslint-disable-next-line no-console
26
+ console.warn(`${this.name} library not installed`);
27
+ }
28
+ }
29
+ async preload() {
30
+ if (!zstd && ZstdCodec) {
31
+ zstd = await new Promise((resolve) => ZstdCodec.run((zstd) => resolve(zstd)));
32
+ }
33
+ }
34
+ compressSync(input) {
35
+ const simpleZstd = new zstd.Simple();
36
+ const inputArray = new Uint8Array(input);
37
+ return simpleZstd.compress(inputArray).buffer;
38
+ }
39
+ decompressSync(input) {
40
+ const simpleZstd = new zstd.Simple();
41
+ // var ddict = new zstd.Dict.Decompression(dictData);
42
+ // var jsonBytes = simpleZstd.decompressUsingDict(jsonZstData, ddict);
43
+ const inputArray = new Uint8Array(input);
44
+ return simpleZstd.decompress(inputArray).buffer;
26
45
  }
27
- }
28
-
29
- async preload() {
30
- zstd = zstd || (await new Promise(resolve => ZstdCodec.run(zstd => resolve(zstd))));
31
- }
32
-
33
- compressSync(input) {
34
- const simpleZstd = new zstd.Simple();
35
- const inputArray = new Uint8Array(input);
36
- return simpleZstd.compress(inputArray).buffer;
37
- }
38
-
39
- decompressSync(input) {
40
- const simpleZstd = new zstd.Simple();
41
- const inputArray = new Uint8Array(input);
42
- return simpleZstd.decompress(inputArray).buffer;
43
- }
44
-
45
46
  }
46
- //# sourceMappingURL=zstd-compression.js.map
47
+ exports.ZstdCompression = ZstdCompression;
@@ -0,0 +1,2 @@
1
+ export type { Compression, CompressionOptions } from './lib/compression';
2
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,YAAY,EAAC,WAAW,EAAE,kBAAkB,EAAC,MAAM,mBAAmB,CAAC"}
package/dist/types.js CHANGED
@@ -1,2 +1,2 @@
1
- export {};
2
- //# sourceMappingURL=types.js.map
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=worker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"worker.d.ts","sourceRoot":"","sources":["../../src/workers/worker.ts"],"names":[],"mappings":""}
@@ -1,77 +1,77 @@
1
- import { createWorker } from '@loaders.gl/worker-utils';
2
- import { NoCompression } from '../lib/no-compression';
3
- import { BrotliCompression } from '../lib/brotli-compression';
4
- import { DeflateCompression } from '../lib/deflate-compression';
5
- import { GZipCompression } from '../lib/gzip-compression';
6
- import { LZ4Compression } from '../lib/lz4-compression';
7
- import { SnappyCompression } from '../lib/snappy-compression';
8
- import { ZstdCompression } from '../lib/zstd-compression';
9
- import brotliDecompress from 'brotli/decompress';
10
- import lz4js from 'lz4js';
11
- import { ZstdCodec } from 'zstd-codec';
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const worker_utils_1 = require("@loaders.gl/worker-utils");
7
+ // Compressors
8
+ const no_compression_1 = require("../lib/no-compression");
9
+ const brotli_compression_1 = require("../lib/brotli-compression");
10
+ const deflate_compression_1 = require("../lib/deflate-compression");
11
+ const gzip_compression_1 = require("../lib/gzip-compression");
12
+ const lz4_compression_1 = require("../lib/lz4-compression");
13
+ // import {LZOCompression} from '../lib/lzo-compression';
14
+ const snappy_compression_1 = require("../lib/snappy-compression");
15
+ const zstd_compression_1 = require("../lib/zstd-compression");
16
+ // Import big dependencies
17
+ // import brotli from 'brotli'; - brotli has problems with decompress in browsers
18
+ // import brotliDecompress from 'brotli/decompress';
19
+ const lz4js_1 = __importDefault(require("lz4js"));
20
+ // import lzo from 'lzo';
21
+ // import {ZstdCodec} from 'zstd-codec';
22
+ // Inject large dependencies through Compression constructor options
12
23
  const modules = {
13
- brotli: {
14
- decompress: brotliDecompress,
15
- compress: () => {
16
- throw new Error('brotli compress');
17
- }
18
- },
19
- lz4js,
20
- 'zstd-codec': ZstdCodec
24
+ // brotli has problems with decompress in browsers
25
+ // brotli: {
26
+ // decompress: brotliDecompress,
27
+ // compress: () => {
28
+ // throw new Error('brotli compress');
29
+ // }
30
+ // },
31
+ lz4js: lz4js_1.default
32
+ // lzo,
33
+ // 'zstd-codec': ZstdCodec
21
34
  };
22
- const COMPRESSIONS = [new NoCompression({
23
- modules
24
- }), new BrotliCompression({
25
- modules
26
- }), new DeflateCompression({
27
- modules
28
- }), new GZipCompression({
29
- modules
30
- }), new LZ4Compression({
31
- modules
32
- }), new SnappyCompression({
33
- modules
34
- }), new ZstdCompression({
35
- modules
36
- })];
37
- createWorker(async (data, options = {}) => {
38
- const operation = getOperation(String(options === null || options === void 0 ? void 0 : options.operation));
39
- const compression = getCompression(String(options === null || options === void 0 ? void 0 : options.compression));
40
-
41
- switch (operation) {
42
- case 'compress':
43
- return await compression.compress(data);
44
-
45
- case 'decompress':
46
- return await compression.decompress(data);
47
-
48
- default:
49
- throw new Error('invalid option');
50
- }
35
+ /** @type {Compression[]} */
36
+ const COMPRESSIONS = [
37
+ new no_compression_1.NoCompression({ modules }),
38
+ new brotli_compression_1.BrotliCompression({ modules }),
39
+ new deflate_compression_1.DeflateCompression({ modules }),
40
+ new gzip_compression_1.GZipCompression({ modules }),
41
+ // new LZOCompression({modules}),
42
+ new lz4_compression_1.LZ4Compression({ modules }),
43
+ new snappy_compression_1.SnappyCompression({ modules }),
44
+ new zstd_compression_1.ZstdCompression({ modules })
45
+ ];
46
+ (0, worker_utils_1.createWorker)(async (data, options = {}) => {
47
+ const operation = getOperation(String(options?.operation));
48
+ const compression = getCompression(String(options?.compression));
49
+ // @ts-ignore
50
+ switch (operation) {
51
+ case 'compress':
52
+ return await compression.compress(data);
53
+ case 'decompress':
54
+ return await compression.decompress(data);
55
+ default:
56
+ throw new Error('invalid option');
57
+ }
51
58
  });
52
-
53
59
  function getOperation(operation) {
54
- switch (operation) {
55
- case 'compress':
56
- case 'deflate':
57
- return 'compress';
58
-
59
- case 'decompress':
60
- case 'inflate':
61
- return 'decompress';
62
-
63
- default:
64
- throw new Error("@loaders.gl/compression: Unsupported operation ".concat(operation, ". Expected 'compress' or 'decompress'"));
65
- }
60
+ switch (operation) {
61
+ case 'compress':
62
+ case 'deflate':
63
+ return 'compress';
64
+ case 'decompress':
65
+ case 'inflate':
66
+ return 'decompress';
67
+ default:
68
+ throw new Error(`@loaders.gl/compression: Unsupported operation ${operation}. Expected 'compress' or 'decompress'`);
69
+ }
66
70
  }
67
-
68
71
  function getCompression(name) {
69
- const Compression = COMPRESSIONS.find(compression_ => name === compression_.name);
70
-
71
- if (!Compression) {
72
- throw new Error("@loaders.gl/compression: Unsupported compression ".concat(name));
73
- }
74
-
75
- return Compression;
72
+ const Compression = COMPRESSIONS.find((compression_) => name === compression_.name);
73
+ if (!Compression) {
74
+ throw new Error(`@loaders.gl/compression: Unsupported compression ${name}`);
75
+ }
76
+ return Compression;
76
77
  }
77
- //# sourceMappingURL=worker.js.map