@webiny/utils 5.43.0-beta.1 → 5.43.0-beta.2
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/compression/CompressionPlugin.d.ts +12 -0
- package/compression/CompressionPlugin.js +13 -0
- package/compression/CompressionPlugin.js.map +1 -0
- package/compression/Compressor.d.ts +29 -0
- package/compression/Compressor.js +70 -0
- package/compression/Compressor.js.map +1 -0
- package/compression/index.d.ts +4 -0
- package/compression/index.js +51 -0
- package/compression/index.js.map +1 -0
- package/compression/jsonpack.d.ts +2 -0
- package/compression/jsonpack.js +20 -0
- package/compression/jsonpack.js.map +1 -0
- package/compression/plugins/GzipCompression.d.ts +12 -0
- package/compression/plugins/GzipCompression.js +58 -0
- package/compression/plugins/GzipCompression.js.map +1 -0
- package/compression/plugins/JsonpackCompression.d.ts +9 -0
- package/compression/plugins/JsonpackCompression.js +52 -0
- package/compression/plugins/JsonpackCompression.js.map +1 -0
- package/package.json +6 -4
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { Plugin } from "@webiny/plugins";
|
|
2
|
+
export interface ICompressedValue {
|
|
3
|
+
compression: string;
|
|
4
|
+
value: string;
|
|
5
|
+
}
|
|
6
|
+
export declare abstract class CompressionPlugin extends Plugin {
|
|
7
|
+
static type: string;
|
|
8
|
+
abstract canCompress(data: any): boolean;
|
|
9
|
+
abstract compress(data: any): Promise<ICompressedValue>;
|
|
10
|
+
abstract canDecompress(data: ICompressedValue | unknown): boolean;
|
|
11
|
+
abstract decompress(data: ICompressedValue | unknown): Promise<any>;
|
|
12
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.CompressionPlugin = void 0;
|
|
7
|
+
var _plugins = require("@webiny/plugins");
|
|
8
|
+
class CompressionPlugin extends _plugins.Plugin {
|
|
9
|
+
static type = "utils.compression";
|
|
10
|
+
}
|
|
11
|
+
exports.CompressionPlugin = CompressionPlugin;
|
|
12
|
+
|
|
13
|
+
//# sourceMappingURL=CompressionPlugin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_plugins","require","CompressionPlugin","Plugin","type","exports"],"sources":["CompressionPlugin.ts"],"sourcesContent":["import { Plugin } from \"@webiny/plugins\";\n\nexport interface ICompressedValue {\n compression: string;\n value: string;\n}\n\nexport abstract class CompressionPlugin extends Plugin {\n public static override type: string = \"utils.compression\";\n public abstract canCompress(data: any): boolean;\n public abstract compress(data: any): Promise<ICompressedValue>;\n public abstract canDecompress(data: ICompressedValue | unknown): boolean;\n public abstract decompress(data: ICompressedValue | unknown): Promise<any>;\n}\n"],"mappings":";;;;;;AAAA,IAAAA,QAAA,GAAAC,OAAA;AAOO,MAAeC,iBAAiB,SAASC,eAAM,CAAC;EACnD,OAAuBC,IAAI,GAAW,mBAAmB;AAK7D;AAACC,OAAA,CAAAH,iBAAA,GAAAA,iBAAA","ignoreList":[]}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { PluginsContainer } from "@webiny/plugins";
|
|
2
|
+
import { type ICompressedValue } from "./CompressionPlugin";
|
|
3
|
+
export interface ICompressorParams {
|
|
4
|
+
plugins: PluginsContainer;
|
|
5
|
+
}
|
|
6
|
+
export interface ICompressor {
|
|
7
|
+
disable(name: string): void;
|
|
8
|
+
enable(name: string): void;
|
|
9
|
+
/**
|
|
10
|
+
* Compresses the given data using the first plugin that can compress it.
|
|
11
|
+
*/
|
|
12
|
+
compress<T = unknown>(data: T): Promise<T | ICompressedValue>;
|
|
13
|
+
/**
|
|
14
|
+
* Decompresses the given data using the first plugin that can decompress it.
|
|
15
|
+
*/
|
|
16
|
+
decompress<T = unknown>(data: ICompressedValue | unknown): Promise<T>;
|
|
17
|
+
}
|
|
18
|
+
declare class Compressor implements ICompressor {
|
|
19
|
+
private readonly _plugins;
|
|
20
|
+
private readonly disabled;
|
|
21
|
+
private get plugins();
|
|
22
|
+
constructor(params: ICompressorParams);
|
|
23
|
+
disable(name: string): void;
|
|
24
|
+
enable(name: string): void;
|
|
25
|
+
compress<T = unknown>(data: T): Promise<T | ICompressedValue>;
|
|
26
|
+
decompress<T = unknown>(data: ICompressedValue | unknown): Promise<T>;
|
|
27
|
+
}
|
|
28
|
+
export declare const createDefaultCompressor: (params: ICompressorParams) => Compressor;
|
|
29
|
+
export {};
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.createDefaultCompressor = void 0;
|
|
7
|
+
var _CompressionPlugin = require("./CompressionPlugin");
|
|
8
|
+
var _GzipCompression = require("./plugins/GzipCompression");
|
|
9
|
+
var _JsonpackCompression = require("./plugins/JsonpackCompression");
|
|
10
|
+
class Compressor {
|
|
11
|
+
disabled = new Set();
|
|
12
|
+
get plugins() {
|
|
13
|
+
return this._plugins.byType(_CompressionPlugin.CompressionPlugin.type).reverse();
|
|
14
|
+
}
|
|
15
|
+
constructor(params) {
|
|
16
|
+
this._plugins = params.plugins;
|
|
17
|
+
}
|
|
18
|
+
disable(name) {
|
|
19
|
+
this.disabled.add(name);
|
|
20
|
+
}
|
|
21
|
+
enable(name) {
|
|
22
|
+
this.disabled.delete(name);
|
|
23
|
+
}
|
|
24
|
+
async compress(data) {
|
|
25
|
+
for (const plugin of this.plugins) {
|
|
26
|
+
/**
|
|
27
|
+
* We can skip compressing with disable plugin.
|
|
28
|
+
*/
|
|
29
|
+
if (plugin.name && this.disabled.has(plugin.name)) {
|
|
30
|
+
continue;
|
|
31
|
+
}
|
|
32
|
+
if (plugin.canCompress(data) === false) {
|
|
33
|
+
continue;
|
|
34
|
+
}
|
|
35
|
+
try {
|
|
36
|
+
return await plugin.compress(data);
|
|
37
|
+
} catch (ex) {
|
|
38
|
+
console.error(`Could not compress given data. More info in next line. Trying next plugin.`);
|
|
39
|
+
console.log(ex);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
return data;
|
|
43
|
+
}
|
|
44
|
+
async decompress(data) {
|
|
45
|
+
for (const plugin of this.plugins) {
|
|
46
|
+
if (plugin.canDecompress(data) === false) {
|
|
47
|
+
continue;
|
|
48
|
+
}
|
|
49
|
+
try {
|
|
50
|
+
return await plugin.decompress(data);
|
|
51
|
+
} catch (ex) {
|
|
52
|
+
console.error(`Could not decompress given data. More info in next line. Trying next plugin.`);
|
|
53
|
+
console.log(ex);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
return data;
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
const createDefaultCompressor = params => {
|
|
60
|
+
const {
|
|
61
|
+
plugins
|
|
62
|
+
} = params;
|
|
63
|
+
plugins.register([(0, _JsonpackCompression.createJsonpackCompression)(), (0, _GzipCompression.createGzipCompression)()]);
|
|
64
|
+
return new Compressor({
|
|
65
|
+
plugins
|
|
66
|
+
});
|
|
67
|
+
};
|
|
68
|
+
exports.createDefaultCompressor = createDefaultCompressor;
|
|
69
|
+
|
|
70
|
+
//# sourceMappingURL=Compressor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_CompressionPlugin","require","_GzipCompression","_JsonpackCompression","Compressor","disabled","Set","plugins","_plugins","byType","CompressionPlugin","type","reverse","constructor","params","disable","name","add","enable","delete","compress","data","plugin","has","canCompress","ex","console","error","log","decompress","canDecompress","createDefaultCompressor","register","createJsonpackCompression","createGzipCompression","exports"],"sources":["Compressor.ts"],"sourcesContent":["import { PluginsContainer } from \"@webiny/plugins\";\nimport { CompressionPlugin, type ICompressedValue } from \"./CompressionPlugin\";\nimport { createGzipCompression } from \"./plugins/GzipCompression\";\nimport { createJsonpackCompression } from \"./plugins/JsonpackCompression\";\n\nexport interface ICompressorParams {\n plugins: PluginsContainer;\n}\n\nexport interface ICompressor {\n disable(name: string): void;\n enable(name: string): void;\n /**\n * Compresses the given data using the first plugin that can compress it.\n */\n compress<T = unknown>(data: T): Promise<T | ICompressedValue>;\n /**\n * Decompresses the given data using the first plugin that can decompress it.\n */\n decompress<T = unknown>(data: ICompressedValue | unknown): Promise<T>;\n}\n\nclass Compressor implements ICompressor {\n private readonly _plugins: PluginsContainer;\n\n private readonly disabled: Set<string> = new Set();\n\n private get plugins(): CompressionPlugin[] {\n return this._plugins.byType<CompressionPlugin>(CompressionPlugin.type).reverse();\n }\n\n public constructor(params: ICompressorParams) {\n this._plugins = params.plugins;\n }\n\n public disable(name: string): void {\n this.disabled.add(name);\n }\n\n public enable(name: string): void {\n this.disabled.delete(name);\n }\n\n public async compress<T = unknown>(data: T): Promise<T | ICompressedValue> {\n for (const plugin of this.plugins) {\n /**\n * We can skip compressing with disable plugin.\n */\n if (plugin.name && this.disabled.has(plugin.name)) {\n continue;\n }\n if (plugin.canCompress(data) === false) {\n continue;\n }\n try {\n return await plugin.compress(data);\n } catch (ex) {\n console.error(\n `Could not compress given data. More info in next line. Trying next plugin.`\n );\n console.log(ex);\n }\n }\n return data;\n }\n\n public async decompress<T = unknown>(data: ICompressedValue | unknown): Promise<T> {\n for (const plugin of this.plugins) {\n if (plugin.canDecompress(data) === false) {\n continue;\n }\n try {\n return await plugin.decompress(data);\n } catch (ex) {\n console.error(\n `Could not decompress given data. More info in next line. Trying next plugin.`\n );\n console.log(ex);\n }\n }\n return data as T;\n }\n}\n\nexport const createDefaultCompressor = (params: ICompressorParams) => {\n const { plugins } = params;\n plugins.register([createJsonpackCompression(), createGzipCompression()]);\n return new Compressor({\n plugins\n });\n};\n"],"mappings":";;;;;;AACA,IAAAA,kBAAA,GAAAC,OAAA;AACA,IAAAC,gBAAA,GAAAD,OAAA;AACA,IAAAE,oBAAA,GAAAF,OAAA;AAmBA,MAAMG,UAAU,CAAwB;EAGnBC,QAAQ,GAAgB,IAAIC,GAAG,CAAC,CAAC;EAElD,IAAYC,OAAOA,CAAA,EAAwB;IACvC,OAAO,IAAI,CAACC,QAAQ,CAACC,MAAM,CAAoBC,oCAAiB,CAACC,IAAI,CAAC,CAACC,OAAO,CAAC,CAAC;EACpF;EAEOC,WAAWA,CAACC,MAAyB,EAAE;IAC1C,IAAI,CAACN,QAAQ,GAAGM,MAAM,CAACP,OAAO;EAClC;EAEOQ,OAAOA,CAACC,IAAY,EAAQ;IAC/B,IAAI,CAACX,QAAQ,CAACY,GAAG,CAACD,IAAI,CAAC;EAC3B;EAEOE,MAAMA,CAACF,IAAY,EAAQ;IAC9B,IAAI,CAACX,QAAQ,CAACc,MAAM,CAACH,IAAI,CAAC;EAC9B;EAEA,MAAaI,QAAQA,CAAcC,IAAO,EAAiC;IACvE,KAAK,MAAMC,MAAM,IAAI,IAAI,CAACf,OAAO,EAAE;MAC/B;AACZ;AACA;MACY,IAAIe,MAAM,CAACN,IAAI,IAAI,IAAI,CAACX,QAAQ,CAACkB,GAAG,CAACD,MAAM,CAACN,IAAI,CAAC,EAAE;QAC/C;MACJ;MACA,IAAIM,MAAM,CAACE,WAAW,CAACH,IAAI,CAAC,KAAK,KAAK,EAAE;QACpC;MACJ;MACA,IAAI;QACA,OAAO,MAAMC,MAAM,CAACF,QAAQ,CAACC,IAAI,CAAC;MACtC,CAAC,CAAC,OAAOI,EAAE,EAAE;QACTC,OAAO,CAACC,KAAK,CACT,4EACJ,CAAC;QACDD,OAAO,CAACE,GAAG,CAACH,EAAE,CAAC;MACnB;IACJ;IACA,OAAOJ,IAAI;EACf;EAEA,MAAaQ,UAAUA,CAAcR,IAAgC,EAAc;IAC/E,KAAK,MAAMC,MAAM,IAAI,IAAI,CAACf,OAAO,EAAE;MAC/B,IAAIe,MAAM,CAACQ,aAAa,CAACT,IAAI,CAAC,KAAK,KAAK,EAAE;QACtC;MACJ;MACA,IAAI;QACA,OAAO,MAAMC,MAAM,CAACO,UAAU,CAACR,IAAI,CAAC;MACxC,CAAC,CAAC,OAAOI,EAAE,EAAE;QACTC,OAAO,CAACC,KAAK,CACT,8EACJ,CAAC;QACDD,OAAO,CAACE,GAAG,CAACH,EAAE,CAAC;MACnB;IACJ;IACA,OAAOJ,IAAI;EACf;AACJ;AAEO,MAAMU,uBAAuB,GAAIjB,MAAyB,IAAK;EAClE,MAAM;IAAEP;EAAQ,CAAC,GAAGO,MAAM;EAC1BP,OAAO,CAACyB,QAAQ,CAAC,CAAC,IAAAC,8CAAyB,EAAC,CAAC,EAAE,IAAAC,sCAAqB,EAAC,CAAC,CAAC,CAAC;EACxE,OAAO,IAAI9B,UAAU,CAAC;IAClBG;EACJ,CAAC,CAAC;AACN,CAAC;AAAC4B,OAAA,CAAAJ,uBAAA,GAAAA,uBAAA","ignoreList":[]}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
var _Compressor = require("./Compressor");
|
|
7
|
+
Object.keys(_Compressor).forEach(function (key) {
|
|
8
|
+
if (key === "default" || key === "__esModule") return;
|
|
9
|
+
if (key in exports && exports[key] === _Compressor[key]) return;
|
|
10
|
+
Object.defineProperty(exports, key, {
|
|
11
|
+
enumerable: true,
|
|
12
|
+
get: function () {
|
|
13
|
+
return _Compressor[key];
|
|
14
|
+
}
|
|
15
|
+
});
|
|
16
|
+
});
|
|
17
|
+
var _CompressionPlugin = require("./CompressionPlugin");
|
|
18
|
+
Object.keys(_CompressionPlugin).forEach(function (key) {
|
|
19
|
+
if (key === "default" || key === "__esModule") return;
|
|
20
|
+
if (key in exports && exports[key] === _CompressionPlugin[key]) return;
|
|
21
|
+
Object.defineProperty(exports, key, {
|
|
22
|
+
enumerable: true,
|
|
23
|
+
get: function () {
|
|
24
|
+
return _CompressionPlugin[key];
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
});
|
|
28
|
+
var _GzipCompression = require("./plugins/GzipCompression");
|
|
29
|
+
Object.keys(_GzipCompression).forEach(function (key) {
|
|
30
|
+
if (key === "default" || key === "__esModule") return;
|
|
31
|
+
if (key in exports && exports[key] === _GzipCompression[key]) return;
|
|
32
|
+
Object.defineProperty(exports, key, {
|
|
33
|
+
enumerable: true,
|
|
34
|
+
get: function () {
|
|
35
|
+
return _GzipCompression[key];
|
|
36
|
+
}
|
|
37
|
+
});
|
|
38
|
+
});
|
|
39
|
+
var _JsonpackCompression = require("./plugins/JsonpackCompression");
|
|
40
|
+
Object.keys(_JsonpackCompression).forEach(function (key) {
|
|
41
|
+
if (key === "default" || key === "__esModule") return;
|
|
42
|
+
if (key in exports && exports[key] === _JsonpackCompression[key]) return;
|
|
43
|
+
Object.defineProperty(exports, key, {
|
|
44
|
+
enumerable: true,
|
|
45
|
+
get: function () {
|
|
46
|
+
return _JsonpackCompression[key];
|
|
47
|
+
}
|
|
48
|
+
});
|
|
49
|
+
});
|
|
50
|
+
|
|
51
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_Compressor","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get","_CompressionPlugin","_GzipCompression","_JsonpackCompression"],"sources":["index.ts"],"sourcesContent":["export * from \"./Compressor\";\nexport * from \"./CompressionPlugin\";\nexport * from \"./plugins/GzipCompression\";\nexport * from \"./plugins/JsonpackCompression\";\n"],"mappings":";;;;;AAAA,IAAAA,WAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,WAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,WAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAT,WAAA,CAAAK,GAAA;IAAA;EAAA;AAAA;AACA,IAAAK,kBAAA,GAAAT,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAO,kBAAA,EAAAN,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAK,kBAAA,CAAAL,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAC,kBAAA,CAAAL,GAAA;IAAA;EAAA;AAAA;AACA,IAAAM,gBAAA,GAAAV,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAQ,gBAAA,EAAAP,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAM,gBAAA,CAAAN,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAE,gBAAA,CAAAN,GAAA;IAAA;EAAA;AAAA;AACA,IAAAO,oBAAA,GAAAX,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAS,oBAAA,EAAAR,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAO,oBAAA,CAAAP,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAG,oBAAA,CAAAP,GAAA;IAAA;EAAA;AAAA","ignoreList":[]}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.decompress = exports.compress = void 0;
|
|
8
|
+
var _jsonpack = _interopRequireDefault(require("jsonpack"));
|
|
9
|
+
const compress = async value => {
|
|
10
|
+
return _jsonpack.default.pack(value, {
|
|
11
|
+
verbose: false
|
|
12
|
+
});
|
|
13
|
+
};
|
|
14
|
+
exports.compress = compress;
|
|
15
|
+
const decompress = async value => {
|
|
16
|
+
return _jsonpack.default.unpack(value);
|
|
17
|
+
};
|
|
18
|
+
exports.decompress = decompress;
|
|
19
|
+
|
|
20
|
+
//# sourceMappingURL=jsonpack.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_jsonpack","_interopRequireDefault","require","compress","value","jsonpack","pack","verbose","exports","decompress","unpack"],"sources":["jsonpack.ts"],"sourcesContent":["import jsonpack from \"jsonpack\";\n\nexport const compress = async (value: any) => {\n return jsonpack.pack(value, {\n verbose: false\n });\n};\n\nexport const decompress = async (value: string) => {\n return jsonpack.unpack(value);\n};\n"],"mappings":";;;;;;;AAAA,IAAAA,SAAA,GAAAC,sBAAA,CAAAC,OAAA;AAEO,MAAMC,QAAQ,GAAG,MAAOC,KAAU,IAAK;EAC1C,OAAOC,iBAAQ,CAACC,IAAI,CAACF,KAAK,EAAE;IACxBG,OAAO,EAAE;EACb,CAAC,CAAC;AACN,CAAC;AAACC,OAAA,CAAAL,QAAA,GAAAA,QAAA;AAEK,MAAMM,UAAU,GAAG,MAAOL,KAAa,IAAK;EAC/C,OAAOC,iBAAQ,CAACK,MAAM,CAACN,KAAK,CAAC;AACjC,CAAC;AAACI,OAAA,CAAAC,UAAA,GAAAA,UAAA","ignoreList":[]}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/// <reference types="node" />
|
|
2
|
+
/// <reference types="node" />
|
|
3
|
+
import { CompressionPlugin, type ICompressedValue } from "../CompressionPlugin";
|
|
4
|
+
export declare const convertToBuffer: (value: string | Buffer) => Buffer;
|
|
5
|
+
export declare class GzipCompression extends CompressionPlugin {
|
|
6
|
+
name: string;
|
|
7
|
+
canCompress(data: any): boolean;
|
|
8
|
+
compress(data: any): Promise<ICompressedValue>;
|
|
9
|
+
canDecompress(data: Partial<ICompressedValue>): boolean;
|
|
10
|
+
decompress(data: ICompressedValue): Promise<any>;
|
|
11
|
+
}
|
|
12
|
+
export declare const createGzipCompression: () => GzipCompression;
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.createGzipCompression = exports.convertToBuffer = exports.GzipCompression = void 0;
|
|
7
|
+
var _CompressionPlugin = require("../CompressionPlugin");
|
|
8
|
+
var _gzip = require("../gzip");
|
|
9
|
+
const GZIP = "gzip";
|
|
10
|
+
const TO_STORAGE_ENCODING = "base64";
|
|
11
|
+
const FROM_STORAGE_ENCODING = "utf8";
|
|
12
|
+
const convertToBuffer = value => {
|
|
13
|
+
if (typeof value === "string") {
|
|
14
|
+
return Buffer.from(value, TO_STORAGE_ENCODING);
|
|
15
|
+
}
|
|
16
|
+
return value;
|
|
17
|
+
};
|
|
18
|
+
exports.convertToBuffer = convertToBuffer;
|
|
19
|
+
class GzipCompression extends _CompressionPlugin.CompressionPlugin {
|
|
20
|
+
name = "utils.compression.gzip";
|
|
21
|
+
canCompress(data) {
|
|
22
|
+
if (!!data?.compression) {
|
|
23
|
+
return false;
|
|
24
|
+
}
|
|
25
|
+
return true;
|
|
26
|
+
}
|
|
27
|
+
async compress(data) {
|
|
28
|
+
const value = await (0, _gzip.compress)(JSON.stringify(data));
|
|
29
|
+
return {
|
|
30
|
+
compression: GZIP,
|
|
31
|
+
value: value.toString(TO_STORAGE_ENCODING)
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
canDecompress(data) {
|
|
35
|
+
if (!data?.compression) {
|
|
36
|
+
return false;
|
|
37
|
+
}
|
|
38
|
+
const compression = data.compression;
|
|
39
|
+
return compression.toLowerCase() === GZIP;
|
|
40
|
+
}
|
|
41
|
+
async decompress(data) {
|
|
42
|
+
try {
|
|
43
|
+
const buf = await (0, _gzip.decompress)(convertToBuffer(data.value));
|
|
44
|
+
const value = buf.toString(FROM_STORAGE_ENCODING);
|
|
45
|
+
return JSON.parse(value);
|
|
46
|
+
} catch (ex) {
|
|
47
|
+
console.log(`Could not decompress given data.`, ex.message);
|
|
48
|
+
return null;
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
exports.GzipCompression = GzipCompression;
|
|
53
|
+
const createGzipCompression = () => {
|
|
54
|
+
return new GzipCompression();
|
|
55
|
+
};
|
|
56
|
+
exports.createGzipCompression = createGzipCompression;
|
|
57
|
+
|
|
58
|
+
//# sourceMappingURL=GzipCompression.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_CompressionPlugin","require","_gzip","GZIP","TO_STORAGE_ENCODING","FROM_STORAGE_ENCODING","convertToBuffer","value","Buffer","from","exports","GzipCompression","CompressionPlugin","name","canCompress","data","compression","compress","gzip","JSON","stringify","toString","canDecompress","toLowerCase","decompress","buf","ungzip","parse","ex","console","log","message","createGzipCompression"],"sources":["GzipCompression.ts"],"sourcesContent":["import { CompressionPlugin, type ICompressedValue } from \"../CompressionPlugin\";\nimport { compress as gzip, decompress as ungzip } from \"~/compression/gzip\";\n\nconst GZIP = \"gzip\";\nconst TO_STORAGE_ENCODING = \"base64\";\nconst FROM_STORAGE_ENCODING = \"utf8\";\n\nexport const convertToBuffer = (value: string | Buffer) => {\n if (typeof value === \"string\") {\n return Buffer.from(value, TO_STORAGE_ENCODING);\n }\n return value;\n};\n\nexport class GzipCompression extends CompressionPlugin {\n public override name = \"utils.compression.gzip\";\n\n public override canCompress(data: any): boolean {\n if (!!data?.compression) {\n return false;\n }\n return true;\n }\n\n public override async compress(data: any): Promise<ICompressedValue> {\n const value = await gzip(JSON.stringify(data));\n\n return {\n compression: GZIP,\n value: value.toString(TO_STORAGE_ENCODING)\n };\n }\n\n public override canDecompress(data: Partial<ICompressedValue>): boolean {\n if (!data?.compression) {\n return false;\n }\n\n const compression = data.compression as string;\n\n return compression.toLowerCase() === GZIP;\n }\n\n public override async decompress(data: ICompressedValue): Promise<any> {\n try {\n const buf = await ungzip(convertToBuffer(data.value));\n const value = buf.toString(FROM_STORAGE_ENCODING);\n return JSON.parse(value);\n } catch (ex) {\n console.log(`Could not decompress given data.`, ex.message);\n return null;\n }\n }\n}\n\nexport const createGzipCompression = () => {\n return new GzipCompression();\n};\n"],"mappings":";;;;;;AAAA,IAAAA,kBAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AAEA,MAAME,IAAI,GAAG,MAAM;AACnB,MAAMC,mBAAmB,GAAG,QAAQ;AACpC,MAAMC,qBAAqB,GAAG,MAAM;AAE7B,MAAMC,eAAe,GAAIC,KAAsB,IAAK;EACvD,IAAI,OAAOA,KAAK,KAAK,QAAQ,EAAE;IAC3B,OAAOC,MAAM,CAACC,IAAI,CAACF,KAAK,EAAEH,mBAAmB,CAAC;EAClD;EACA,OAAOG,KAAK;AAChB,CAAC;AAACG,OAAA,CAAAJ,eAAA,GAAAA,eAAA;AAEK,MAAMK,eAAe,SAASC,oCAAiB,CAAC;EACnCC,IAAI,GAAG,wBAAwB;EAE/BC,WAAWA,CAACC,IAAS,EAAW;IAC5C,IAAI,CAAC,CAACA,IAAI,EAAEC,WAAW,EAAE;MACrB,OAAO,KAAK;IAChB;IACA,OAAO,IAAI;EACf;EAEA,MAAsBC,QAAQA,CAACF,IAAS,EAA6B;IACjE,MAAMR,KAAK,GAAG,MAAM,IAAAW,cAAI,EAACC,IAAI,CAACC,SAAS,CAACL,IAAI,CAAC,CAAC;IAE9C,OAAO;MACHC,WAAW,EAAEb,IAAI;MACjBI,KAAK,EAAEA,KAAK,CAACc,QAAQ,CAACjB,mBAAmB;IAC7C,CAAC;EACL;EAEgBkB,aAAaA,CAACP,IAA+B,EAAW;IACpE,IAAI,CAACA,IAAI,EAAEC,WAAW,EAAE;MACpB,OAAO,KAAK;IAChB;IAEA,MAAMA,WAAW,GAAGD,IAAI,CAACC,WAAqB;IAE9C,OAAOA,WAAW,CAACO,WAAW,CAAC,CAAC,KAAKpB,IAAI;EAC7C;EAEA,MAAsBqB,UAAUA,CAACT,IAAsB,EAAgB;IACnE,IAAI;MACA,MAAMU,GAAG,GAAG,MAAM,IAAAC,gBAAM,EAACpB,eAAe,CAACS,IAAI,CAACR,KAAK,CAAC,CAAC;MACrD,MAAMA,KAAK,GAAGkB,GAAG,CAACJ,QAAQ,CAAChB,qBAAqB,CAAC;MACjD,OAAOc,IAAI,CAACQ,KAAK,CAACpB,KAAK,CAAC;IAC5B,CAAC,CAAC,OAAOqB,EAAE,EAAE;MACTC,OAAO,CAACC,GAAG,CAAC,kCAAkC,EAAEF,EAAE,CAACG,OAAO,CAAC;MAC3D,OAAO,IAAI;IACf;EACJ;AACJ;AAACrB,OAAA,CAAAC,eAAA,GAAAA,eAAA;AAEM,MAAMqB,qBAAqB,GAAGA,CAAA,KAAM;EACvC,OAAO,IAAIrB,eAAe,CAAC,CAAC;AAChC,CAAC;AAACD,OAAA,CAAAsB,qBAAA,GAAAA,qBAAA","ignoreList":[]}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { CompressionPlugin, type ICompressedValue } from "../CompressionPlugin";
|
|
2
|
+
export declare class JsonpackCompression extends CompressionPlugin {
|
|
3
|
+
name: string;
|
|
4
|
+
canCompress(data: any): boolean;
|
|
5
|
+
compress(data: any): Promise<ICompressedValue>;
|
|
6
|
+
canDecompress(data: Partial<ICompressedValue>): boolean;
|
|
7
|
+
decompress(data: ICompressedValue): Promise<any>;
|
|
8
|
+
}
|
|
9
|
+
export declare const createJsonpackCompression: () => JsonpackCompression;
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.createJsonpackCompression = exports.JsonpackCompression = void 0;
|
|
7
|
+
var _CompressionPlugin = require("../CompressionPlugin");
|
|
8
|
+
var _jsonpack = require("../jsonpack");
|
|
9
|
+
const JSONPACK = "jsonpack";
|
|
10
|
+
class JsonpackCompression extends _CompressionPlugin.CompressionPlugin {
|
|
11
|
+
name = "utils.compression.jsonpack";
|
|
12
|
+
canCompress(data) {
|
|
13
|
+
if (typeof data !== "object") {
|
|
14
|
+
return false;
|
|
15
|
+
} else if (!!data.compression) {
|
|
16
|
+
return false;
|
|
17
|
+
}
|
|
18
|
+
// TODO Do we want to compress anything with jsonpack anymore? Maybe not...
|
|
19
|
+
return false;
|
|
20
|
+
}
|
|
21
|
+
async compress(data) {
|
|
22
|
+
const value = await (0, _jsonpack.compress)(data);
|
|
23
|
+
return {
|
|
24
|
+
compression: JSONPACK,
|
|
25
|
+
value
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
canDecompress(data) {
|
|
29
|
+
if (typeof data !== "object") {
|
|
30
|
+
return false;
|
|
31
|
+
} else if (!data?.compression) {
|
|
32
|
+
return false;
|
|
33
|
+
}
|
|
34
|
+
const compression = data.compression;
|
|
35
|
+
return compression.toLowerCase() === JSONPACK;
|
|
36
|
+
}
|
|
37
|
+
async decompress(data) {
|
|
38
|
+
try {
|
|
39
|
+
return await (0, _jsonpack.decompress)(data.value);
|
|
40
|
+
} catch (ex) {
|
|
41
|
+
console.log(`Could not decompress given data.`, ex.message);
|
|
42
|
+
return null;
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
exports.JsonpackCompression = JsonpackCompression;
|
|
47
|
+
const createJsonpackCompression = () => {
|
|
48
|
+
return new JsonpackCompression();
|
|
49
|
+
};
|
|
50
|
+
exports.createJsonpackCompression = createJsonpackCompression;
|
|
51
|
+
|
|
52
|
+
//# sourceMappingURL=JsonpackCompression.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_CompressionPlugin","require","_jsonpack","JSONPACK","JsonpackCompression","CompressionPlugin","name","canCompress","data","compression","compress","value","canDecompress","toLowerCase","decompress","ex","console","log","message","exports","createJsonpackCompression"],"sources":["JsonpackCompression.ts"],"sourcesContent":["import { CompressionPlugin, type ICompressedValue } from \"../CompressionPlugin\";\nimport { compress, decompress } from \"~/compression/jsonpack\";\n\nconst JSONPACK = \"jsonpack\";\n\nexport class JsonpackCompression extends CompressionPlugin {\n public override name = \"utils.compression.jsonpack\";\n\n public override canCompress(data: any): boolean {\n if (typeof data !== \"object\") {\n return false;\n } else if (!!data.compression) {\n return false;\n }\n // TODO Do we want to compress anything with jsonpack anymore? Maybe not...\n return false;\n }\n\n public override async compress(data: any): Promise<ICompressedValue> {\n const value = await compress(data);\n\n return {\n compression: JSONPACK,\n value\n };\n }\n\n public override canDecompress(data: Partial<ICompressedValue>): boolean {\n if (typeof data !== \"object\") {\n return false;\n } else if (!data?.compression) {\n return false;\n }\n\n const compression = data.compression as string;\n return compression.toLowerCase() === JSONPACK;\n }\n\n public override async decompress(data: ICompressedValue): Promise<any> {\n try {\n return await decompress(data.value);\n } catch (ex) {\n console.log(`Could not decompress given data.`, ex.message);\n return null;\n }\n }\n}\n\nexport const createJsonpackCompression = () => {\n return new JsonpackCompression();\n};\n"],"mappings":";;;;;;AAAA,IAAAA,kBAAA,GAAAC,OAAA;AACA,IAAAC,SAAA,GAAAD,OAAA;AAEA,MAAME,QAAQ,GAAG,UAAU;AAEpB,MAAMC,mBAAmB,SAASC,oCAAiB,CAAC;EACvCC,IAAI,GAAG,4BAA4B;EAEnCC,WAAWA,CAACC,IAAS,EAAW;IAC5C,IAAI,OAAOA,IAAI,KAAK,QAAQ,EAAE;MAC1B,OAAO,KAAK;IAChB,CAAC,MAAM,IAAI,CAAC,CAACA,IAAI,CAACC,WAAW,EAAE;MAC3B,OAAO,KAAK;IAChB;IACA;IACA,OAAO,KAAK;EAChB;EAEA,MAAsBC,QAAQA,CAACF,IAAS,EAA6B;IACjE,MAAMG,KAAK,GAAG,MAAM,IAAAD,kBAAQ,EAACF,IAAI,CAAC;IAElC,OAAO;MACHC,WAAW,EAAEN,QAAQ;MACrBQ;IACJ,CAAC;EACL;EAEgBC,aAAaA,CAACJ,IAA+B,EAAW;IACpE,IAAI,OAAOA,IAAI,KAAK,QAAQ,EAAE;MAC1B,OAAO,KAAK;IAChB,CAAC,MAAM,IAAI,CAACA,IAAI,EAAEC,WAAW,EAAE;MAC3B,OAAO,KAAK;IAChB;IAEA,MAAMA,WAAW,GAAGD,IAAI,CAACC,WAAqB;IAC9C,OAAOA,WAAW,CAACI,WAAW,CAAC,CAAC,KAAKV,QAAQ;EACjD;EAEA,MAAsBW,UAAUA,CAACN,IAAsB,EAAgB;IACnE,IAAI;MACA,OAAO,MAAM,IAAAM,oBAAU,EAACN,IAAI,CAACG,KAAK,CAAC;IACvC,CAAC,CAAC,OAAOI,EAAE,EAAE;MACTC,OAAO,CAACC,GAAG,CAAC,kCAAkC,EAAEF,EAAE,CAACG,OAAO,CAAC;MAC3D,OAAO,IAAI;IACf;EACJ;AACJ;AAACC,OAAA,CAAAf,mBAAA,GAAAA,mBAAA;AAEM,MAAMgB,yBAAyB,GAAGA,CAAA,KAAM;EAC3C,OAAO,IAAIhB,mBAAmB,CAAC,CAAC;AACpC,CAAC;AAACe,OAAA,CAAAC,yBAAA,GAAAA,yBAAA","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@webiny/utils",
|
|
3
|
-
"version": "5.43.0-beta.
|
|
3
|
+
"version": "5.43.0-beta.2",
|
|
4
4
|
"main": "index.js",
|
|
5
5
|
"types": "index.d.ts",
|
|
6
6
|
"repository": {
|
|
@@ -15,14 +15,16 @@
|
|
|
15
15
|
"directory": "dist"
|
|
16
16
|
},
|
|
17
17
|
"dependencies": {
|
|
18
|
-
"@webiny/error": "5.43.0-beta.
|
|
18
|
+
"@webiny/error": "5.43.0-beta.2",
|
|
19
|
+
"@webiny/plugins": "5.43.0-beta.2",
|
|
20
|
+
"jsonpack": "1.1.5",
|
|
19
21
|
"mdbid": "1.0.0",
|
|
20
22
|
"nanoid": "3.3.8",
|
|
21
23
|
"nanoid-dictionary": "4.3.0",
|
|
22
24
|
"p-retry": "4.6.2"
|
|
23
25
|
},
|
|
24
26
|
"devDependencies": {
|
|
25
|
-
"@webiny/project-utils": "5.43.0-beta.
|
|
27
|
+
"@webiny/project-utils": "5.43.0-beta.2",
|
|
26
28
|
"rimraf": "6.0.1",
|
|
27
29
|
"typescript": "5.3.3"
|
|
28
30
|
},
|
|
@@ -40,5 +42,5 @@
|
|
|
40
42
|
]
|
|
41
43
|
}
|
|
42
44
|
},
|
|
43
|
-
"gitHead": "
|
|
45
|
+
"gitHead": "dbed8c263df662358aca18c3cf452cd280f2dfd9"
|
|
44
46
|
}
|