@webiny/utils 6.1.0 → 6.2.0-beta.0
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/exports/api.d.ts +2 -0
- package/exports/api.js +4 -0
- package/exports/api.js.map +1 -0
- package/features/compression/CompressionHandler.d.ts +12 -0
- package/features/compression/CompressionHandler.js +35 -0
- package/features/compression/CompressionHandler.js.map +1 -0
- package/features/compression/GzipCompression.d.ts +12 -0
- package/features/compression/GzipCompression.js +26 -0
- package/features/compression/GzipCompression.js.map +1 -0
- package/features/compression/JsonpackCompression.d.ts +15 -0
- package/features/compression/JsonpackCompression.js +29 -0
- package/features/compression/JsonpackCompression.js.map +1 -0
- package/features/compression/abstractions/Compression.d.ts +19 -0
- package/features/compression/abstractions/Compression.js +4 -0
- package/features/compression/abstractions/Compression.js.map +1 -0
- package/features/compression/abstractions/CompressionHandler.d.ts +22 -0
- package/features/compression/abstractions/CompressionHandler.js +4 -0
- package/features/compression/abstractions/CompressionHandler.js.map +1 -0
- package/features/compression/feature.d.ts +1 -0
- package/features/compression/feature.js +14 -0
- package/features/compression/feature.js.map +1 -0
- package/features/compression/legacy/plugins/GzipCompression.js.map +1 -0
- package/features/compression/legacy/plugins/JsonpackCompression.js.map +1 -0
- package/package.json +9 -8
- package/compression/plugins/GzipCompression.js.map +0 -1
- package/compression/plugins/JsonpackCompression.js.map +0 -1
- /package/{compression → features/compression/legacy}/CompressionPlugin.d.ts +0 -0
- /package/{compression → features/compression/legacy}/CompressionPlugin.js +0 -0
- /package/{compression → features/compression/legacy}/CompressionPlugin.js.map +0 -0
- /package/{compression → features/compression/legacy}/Compressor.d.ts +0 -0
- /package/{compression → features/compression/legacy}/Compressor.js +0 -0
- /package/{compression → features/compression/legacy}/Compressor.js.map +0 -0
- /package/{compression → features/compression/legacy}/gzip.d.ts +0 -0
- /package/{compression → features/compression/legacy}/gzip.js +0 -0
- /package/{compression → features/compression/legacy}/gzip.js.map +0 -0
- /package/{compression → features/compression/legacy}/index.d.ts +0 -0
- /package/{compression → features/compression/legacy}/index.js +0 -0
- /package/{compression → features/compression/legacy}/index.js.map +0 -0
- /package/{compression → features/compression/legacy}/jsonpack.d.ts +0 -0
- /package/{compression → features/compression/legacy}/jsonpack.js +0 -0
- /package/{compression → features/compression/legacy}/jsonpack.js.map +0 -0
- /package/{compression → features/compression/legacy}/plugins/GzipCompression.d.ts +0 -0
- /package/{compression → features/compression/legacy}/plugins/GzipCompression.js +0 -0
- /package/{compression → features/compression/legacy}/plugins/JsonpackCompression.d.ts +0 -0
- /package/{compression → features/compression/legacy}/plugins/JsonpackCompression.js +0 -0
package/exports/api.d.ts
ADDED
package/exports/api.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["CompressionHandler","Compression"],"sources":["api.ts"],"sourcesContent":["export { CompressionHandler } from \"~/features/compression/abstractions/CompressionHandler.js\";\nexport { Compression } from \"~/features/compression/abstractions/Compression.js\";\n"],"mappings":"AAAA,SAASA,kBAAkB;AAC3B,SAASC,WAAW","ignoreList":[]}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { CompressionHandler as CompressionHandlerAbstraction } from "./abstractions/CompressionHandler.js";
|
|
2
|
+
import { Compression } from "./abstractions/Compression.js";
|
|
3
|
+
declare class CompressionHandlerImpl implements CompressionHandlerAbstraction.Interface {
|
|
4
|
+
private readonly compressions;
|
|
5
|
+
constructor(compressions: Compression.Interface[]);
|
|
6
|
+
compress<T = unknown>(data: CompressionHandlerAbstraction.CompressParams<T>): CompressionHandlerAbstraction.CompressResponse;
|
|
7
|
+
decompress<T = unknown>(data: CompressionHandlerAbstraction.DecompressParams | unknown): CompressionHandlerAbstraction.DecompressResponse<T>;
|
|
8
|
+
}
|
|
9
|
+
export declare const CompressionHandler: typeof CompressionHandlerImpl & {
|
|
10
|
+
__abstraction: import("@webiny/di").Abstraction<import("./abstractions/CompressionHandler.js").ICompressionHandler>;
|
|
11
|
+
};
|
|
12
|
+
export {};
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { CompressionHandler as CompressionHandlerAbstraction } from "./abstractions/CompressionHandler.js";
|
|
2
|
+
import { Compression } from "./abstractions/Compression.js";
|
|
3
|
+
class CompressionHandlerImpl {
|
|
4
|
+
constructor(compressions) {
|
|
5
|
+
this.compressions = compressions;
|
|
6
|
+
}
|
|
7
|
+
async compress(data) {
|
|
8
|
+
for (const compression of this.compressions) {
|
|
9
|
+
if (compression.canCompress(data)) {
|
|
10
|
+
return compression.compress(data);
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Just return what was received as no compressor can handle that type of data.
|
|
15
|
+
*/
|
|
16
|
+
// @ts-expect-error
|
|
17
|
+
return data;
|
|
18
|
+
}
|
|
19
|
+
async decompress(data) {
|
|
20
|
+
for (const compression of this.compressions) {
|
|
21
|
+
if (compression.canDecompress(data)) {
|
|
22
|
+
return compression.decompress(data);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
return data;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
export const CompressionHandler = CompressionHandlerAbstraction.createImplementation({
|
|
29
|
+
implementation: CompressionHandlerImpl,
|
|
30
|
+
dependencies: [[Compression, {
|
|
31
|
+
multiple: true
|
|
32
|
+
}]]
|
|
33
|
+
});
|
|
34
|
+
|
|
35
|
+
//# sourceMappingURL=CompressionHandler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["CompressionHandler","CompressionHandlerAbstraction","Compression","CompressionHandlerImpl","constructor","compressions","compress","data","compression","canCompress","decompress","canDecompress","createImplementation","implementation","dependencies","multiple"],"sources":["CompressionHandler.ts"],"sourcesContent":["import { CompressionHandler as CompressionHandlerAbstraction } from \"./abstractions/CompressionHandler.js\";\nimport { Compression } from \"./abstractions/Compression.js\";\n\nclass CompressionHandlerImpl implements CompressionHandlerAbstraction.Interface {\n public constructor(private readonly compressions: Compression.Interface[]) {}\n\n public async compress<T = unknown>(\n data: CompressionHandlerAbstraction.CompressParams<T>\n ): CompressionHandlerAbstraction.CompressResponse {\n for (const compression of this.compressions) {\n if (compression.canCompress(data)) {\n return compression.compress<T>(data);\n }\n }\n /**\n * Just return what was received as no compressor can handle that type of data.\n */\n // @ts-expect-error\n return data;\n }\n\n public async decompress<T = unknown>(\n data: CompressionHandlerAbstraction.DecompressParams | unknown\n ): CompressionHandlerAbstraction.DecompressResponse<T> {\n for (const compression of this.compressions) {\n if (compression.canDecompress(data)) {\n return compression.decompress<T>(data);\n }\n }\n return data as T;\n }\n}\n\nexport const CompressionHandler = CompressionHandlerAbstraction.createImplementation({\n implementation: CompressionHandlerImpl,\n dependencies: [[Compression, { multiple: true }]]\n});\n"],"mappings":"AAAA,SAASA,kBAAkB,IAAIC,6BAA6B;AAC5D,SAASC,WAAW;AAEpB,MAAMC,sBAAsB,CAAoD;EACrEC,WAAWA,CAAkBC,YAAqC,EAAE;IAAA,KAAvCA,YAAqC,GAArCA,YAAqC;EAAG;EAE5E,MAAaC,QAAQA,CACjBC,IAAqD,EACP;IAC9C,KAAK,MAAMC,WAAW,IAAI,IAAI,CAACH,YAAY,EAAE;MACzC,IAAIG,WAAW,CAACC,WAAW,CAACF,IAAI,CAAC,EAAE;QAC/B,OAAOC,WAAW,CAACF,QAAQ,CAAIC,IAAI,CAAC;MACxC;IACJ;IACA;AACR;AACA;IACQ;IACA,OAAOA,IAAI;EACf;EAEA,MAAaG,UAAUA,CACnBH,IAA8D,EACX;IACnD,KAAK,MAAMC,WAAW,IAAI,IAAI,CAACH,YAAY,EAAE;MACzC,IAAIG,WAAW,CAACG,aAAa,CAACJ,IAAI,CAAC,EAAE;QACjC,OAAOC,WAAW,CAACE,UAAU,CAAIH,IAAI,CAAC;MAC1C;IACJ;IACA,OAAOA,IAAI;EACf;AACJ;AAEA,OAAO,MAAMP,kBAAkB,GAAGC,6BAA6B,CAACW,oBAAoB,CAAC;EACjFC,cAAc,EAAEV,sBAAsB;EACtCW,YAAY,EAAE,CAAC,CAACZ,WAAW,EAAE;IAAEa,QAAQ,EAAE;EAAK,CAAC,CAAC;AACpD,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { Compression as CompressionAbstraction, ICompressedValue } from "./abstractions/Compression.js";
|
|
2
|
+
declare class GzipCompressionImpl implements CompressionAbstraction.Interface {
|
|
3
|
+
readonly name = "gzip";
|
|
4
|
+
canCompress(data: any): boolean;
|
|
5
|
+
compress<T>(data: T): Promise<ICompressedValue>;
|
|
6
|
+
canDecompress(data: ICompressedValue | unknown): boolean;
|
|
7
|
+
decompress<T>(data: ICompressedValue | unknown): Promise<T>;
|
|
8
|
+
}
|
|
9
|
+
export declare const GzipCompression: typeof GzipCompressionImpl & {
|
|
10
|
+
__abstraction: import("@webiny/di").Abstraction<import("./abstractions/Compression.js").ICompression>;
|
|
11
|
+
};
|
|
12
|
+
export {};
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { Compression as CompressionAbstraction } from "./abstractions/Compression.js";
|
|
2
|
+
import { createGzipCompression } from "./legacy/index.js";
|
|
3
|
+
const plugin = createGzipCompression();
|
|
4
|
+
class GzipCompressionImpl {
|
|
5
|
+
name = "gzip";
|
|
6
|
+
canCompress(data) {
|
|
7
|
+
return plugin.canCompress(data);
|
|
8
|
+
}
|
|
9
|
+
async compress(data) {
|
|
10
|
+
return plugin.compress(data);
|
|
11
|
+
}
|
|
12
|
+
canDecompress(data) {
|
|
13
|
+
// @ts-expect-error
|
|
14
|
+
return plugin.canDecompress(data);
|
|
15
|
+
}
|
|
16
|
+
async decompress(data) {
|
|
17
|
+
// @ts-expect-error
|
|
18
|
+
return plugin.decompress(data);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
export const GzipCompression = CompressionAbstraction.createImplementation({
|
|
22
|
+
implementation: GzipCompressionImpl,
|
|
23
|
+
dependencies: []
|
|
24
|
+
});
|
|
25
|
+
|
|
26
|
+
//# sourceMappingURL=GzipCompression.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["Compression","CompressionAbstraction","createGzipCompression","plugin","GzipCompressionImpl","name","canCompress","data","compress","canDecompress","decompress","GzipCompression","createImplementation","implementation","dependencies"],"sources":["GzipCompression.ts"],"sourcesContent":["import {\n Compression as CompressionAbstraction,\n ICompressedValue\n} from \"./abstractions/Compression.js\";\nimport { createGzipCompression } from \"./legacy/index.js\";\n\nconst plugin = createGzipCompression();\n\nclass GzipCompressionImpl implements CompressionAbstraction.Interface {\n public readonly name = \"gzip\";\n\n public canCompress(data: any): boolean {\n return plugin.canCompress(data);\n }\n\n public async compress<T>(data: T): Promise<ICompressedValue> {\n return plugin.compress(data);\n }\n\n public canDecompress(data: ICompressedValue | unknown): boolean {\n // @ts-expect-error\n return plugin.canDecompress(data);\n }\n\n public async decompress<T>(data: ICompressedValue | unknown): Promise<T> {\n // @ts-expect-error\n return plugin.decompress(data);\n }\n}\n\nexport const GzipCompression = CompressionAbstraction.createImplementation({\n implementation: GzipCompressionImpl,\n dependencies: []\n});\n"],"mappings":"AAAA,SACIA,WAAW,IAAIC,sBAAsB;AAGzC,SAASC,qBAAqB;AAE9B,MAAMC,MAAM,GAAGD,qBAAqB,CAAC,CAAC;AAEtC,MAAME,mBAAmB,CAA6C;EAClDC,IAAI,GAAG,MAAM;EAEtBC,WAAWA,CAACC,IAAS,EAAW;IACnC,OAAOJ,MAAM,CAACG,WAAW,CAACC,IAAI,CAAC;EACnC;EAEA,MAAaC,QAAQA,CAAID,IAAO,EAA6B;IACzD,OAAOJ,MAAM,CAACK,QAAQ,CAACD,IAAI,CAAC;EAChC;EAEOE,aAAaA,CAACF,IAAgC,EAAW;IAC5D;IACA,OAAOJ,MAAM,CAACM,aAAa,CAACF,IAAI,CAAC;EACrC;EAEA,MAAaG,UAAUA,CAAIH,IAAgC,EAAc;IACrE;IACA,OAAOJ,MAAM,CAACO,UAAU,CAACH,IAAI,CAAC;EAClC;AACJ;AAEA,OAAO,MAAMI,eAAe,GAAGV,sBAAsB,CAACW,oBAAoB,CAAC;EACvEC,cAAc,EAAET,mBAAmB;EACnCU,YAAY,EAAE;AAClB,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { Compression as CompressionAbstraction } from "./abstractions/Compression.js";
|
|
2
|
+
declare class JsonpackCompressionImpl implements CompressionAbstraction.Interface {
|
|
3
|
+
readonly name = "jsonpack";
|
|
4
|
+
/**
|
|
5
|
+
* We do not want to use jsonpack for compression anymore, but we want to keep the plugin around for decompression of old data.
|
|
6
|
+
*/
|
|
7
|
+
canCompress(): boolean;
|
|
8
|
+
compress(data: CompressionAbstraction.CompressParams): CompressionAbstraction.CompressResponse;
|
|
9
|
+
canDecompress(data: CompressionAbstraction.DecompressParams): boolean;
|
|
10
|
+
decompress<T>(data: CompressionAbstraction.DecompressParams): CompressionAbstraction.DecompressResponse<T>;
|
|
11
|
+
}
|
|
12
|
+
export declare const JsonpackCompression: typeof JsonpackCompressionImpl & {
|
|
13
|
+
__abstraction: import("@webiny/di").Abstraction<import("./abstractions/Compression.js").ICompression>;
|
|
14
|
+
};
|
|
15
|
+
export {};
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { Compression as CompressionAbstraction } from "./abstractions/Compression.js";
|
|
2
|
+
import { createJsonpackCompression } from "./legacy/index.js";
|
|
3
|
+
const plugin = createJsonpackCompression();
|
|
4
|
+
class JsonpackCompressionImpl {
|
|
5
|
+
name = "jsonpack";
|
|
6
|
+
/**
|
|
7
|
+
* We do not want to use jsonpack for compression anymore, but we want to keep the plugin around for decompression of old data.
|
|
8
|
+
*/
|
|
9
|
+
canCompress() {
|
|
10
|
+
return false;
|
|
11
|
+
}
|
|
12
|
+
async compress(data) {
|
|
13
|
+
return plugin.compress(data);
|
|
14
|
+
}
|
|
15
|
+
canDecompress(data) {
|
|
16
|
+
// @ts-expect-error
|
|
17
|
+
return plugin.canDecompress(data);
|
|
18
|
+
}
|
|
19
|
+
async decompress(data) {
|
|
20
|
+
// @ts-expect-error
|
|
21
|
+
return plugin.decompress(data);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
export const JsonpackCompression = CompressionAbstraction.createImplementation({
|
|
25
|
+
implementation: JsonpackCompressionImpl,
|
|
26
|
+
dependencies: []
|
|
27
|
+
});
|
|
28
|
+
|
|
29
|
+
//# sourceMappingURL=JsonpackCompression.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["Compression","CompressionAbstraction","createJsonpackCompression","plugin","JsonpackCompressionImpl","name","canCompress","compress","data","canDecompress","decompress","JsonpackCompression","createImplementation","implementation","dependencies"],"sources":["JsonpackCompression.ts"],"sourcesContent":["import { Compression as CompressionAbstraction } from \"./abstractions/Compression.js\";\nimport { createJsonpackCompression } from \"./legacy/index.js\";\n\nconst plugin = createJsonpackCompression();\n\nclass JsonpackCompressionImpl implements CompressionAbstraction.Interface {\n public readonly name = \"jsonpack\";\n /**\n * We do not want to use jsonpack for compression anymore, but we want to keep the plugin around for decompression of old data.\n */\n public canCompress(): boolean {\n return false;\n }\n\n public async compress(\n data: CompressionAbstraction.CompressParams\n ): CompressionAbstraction.CompressResponse {\n return plugin.compress(data);\n }\n\n public canDecompress(data: CompressionAbstraction.DecompressParams): boolean {\n // @ts-expect-error\n return plugin.canDecompress(data);\n }\n\n public async decompress<T>(\n data: CompressionAbstraction.DecompressParams\n ): CompressionAbstraction.DecompressResponse<T> {\n // @ts-expect-error\n return plugin.decompress(data);\n }\n}\n\nexport const JsonpackCompression = CompressionAbstraction.createImplementation({\n implementation: JsonpackCompressionImpl,\n dependencies: []\n});\n"],"mappings":"AAAA,SAASA,WAAW,IAAIC,sBAAsB;AAC9C,SAASC,yBAAyB;AAElC,MAAMC,MAAM,GAAGD,yBAAyB,CAAC,CAAC;AAE1C,MAAME,uBAAuB,CAA6C;EACtDC,IAAI,GAAG,UAAU;EACjC;AACJ;AACA;EACWC,WAAWA,CAAA,EAAY;IAC1B,OAAO,KAAK;EAChB;EAEA,MAAaC,QAAQA,CACjBC,IAA2C,EACJ;IACvC,OAAOL,MAAM,CAACI,QAAQ,CAACC,IAAI,CAAC;EAChC;EAEOC,aAAaA,CAACD,IAA6C,EAAW;IACzE;IACA,OAAOL,MAAM,CAACM,aAAa,CAACD,IAAI,CAAC;EACrC;EAEA,MAAaE,UAAUA,CACnBF,IAA6C,EACD;IAC5C;IACA,OAAOL,MAAM,CAACO,UAAU,CAACF,IAAI,CAAC;EAClC;AACJ;AAEA,OAAO,MAAMG,mBAAmB,GAAGV,sBAAsB,CAACW,oBAAoB,CAAC;EAC3EC,cAAc,EAAET,uBAAuB;EACvCU,YAAY,EAAE;AAClB,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export interface ICompressedValue {
|
|
2
|
+
compression: string;
|
|
3
|
+
value: string;
|
|
4
|
+
}
|
|
5
|
+
export interface ICompression {
|
|
6
|
+
readonly name: string;
|
|
7
|
+
canCompress(data: any): boolean;
|
|
8
|
+
compress<T>(data: T): Promise<ICompressedValue>;
|
|
9
|
+
canDecompress(data: ICompressedValue | unknown): boolean;
|
|
10
|
+
decompress<T>(data: ICompressedValue | unknown): Promise<T>;
|
|
11
|
+
}
|
|
12
|
+
export declare const Compression: import("@webiny/di").Abstraction<ICompression>;
|
|
13
|
+
export declare namespace Compression {
|
|
14
|
+
type Interface = ICompression;
|
|
15
|
+
type CompressParams<T = unknown> = T;
|
|
16
|
+
type CompressResponse = Promise<ICompressedValue>;
|
|
17
|
+
type DecompressParams = ICompressedValue | unknown;
|
|
18
|
+
type DecompressResponse<T = unknown> = Promise<T>;
|
|
19
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["createAbstraction","Compression"],"sources":["Compression.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\n\nexport interface ICompressedValue {\n compression: string;\n value: string;\n}\n\nexport interface ICompression {\n readonly name: string;\n canCompress(data: any): boolean;\n compress<T>(data: T): Promise<ICompressedValue>;\n canDecompress(data: ICompressedValue | unknown): boolean;\n decompress<T>(data: ICompressedValue | unknown): Promise<T>;\n}\n\nexport const Compression = createAbstraction<ICompression>(\"Api/Compression/Type\");\n\nexport namespace Compression {\n export type Interface = ICompression;\n export type CompressParams<T = unknown> = T;\n export type CompressResponse = Promise<ICompressedValue>;\n export type DecompressParams = ICompressedValue | unknown;\n export type DecompressResponse<T = unknown> = Promise<T>;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,qBAAqB;AAevD,OAAO,MAAMC,WAAW,GAAGD,iBAAiB,CAAe,sBAAsB,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export interface ICompressedValue {
|
|
2
|
+
compression: string;
|
|
3
|
+
value: string;
|
|
4
|
+
}
|
|
5
|
+
export interface ICompressionHandler {
|
|
6
|
+
/**
|
|
7
|
+
* Compresses the given data using the first plugin that can compress it.
|
|
8
|
+
*/
|
|
9
|
+
compress<T = unknown>(data: T): Promise<ICompressedValue>;
|
|
10
|
+
/**
|
|
11
|
+
* Decompresses the given data using the first plugin that can decompress it.
|
|
12
|
+
*/
|
|
13
|
+
decompress<T = unknown>(data: ICompressedValue | unknown): Promise<T>;
|
|
14
|
+
}
|
|
15
|
+
export declare const CompressionHandler: import("@webiny/di").Abstraction<ICompressionHandler>;
|
|
16
|
+
export declare namespace CompressionHandler {
|
|
17
|
+
type Interface = ICompressionHandler;
|
|
18
|
+
type CompressParams<T = unknown> = T;
|
|
19
|
+
type CompressResponse = Promise<ICompressedValue>;
|
|
20
|
+
type DecompressParams = ICompressedValue | unknown;
|
|
21
|
+
type DecompressResponse<T = unknown> = Promise<T>;
|
|
22
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["createAbstraction","CompressionHandler"],"sources":["CompressionHandler.ts"],"sourcesContent":["import { createAbstraction } from \"@webiny/feature/api\";\n\nexport interface ICompressedValue {\n compression: string;\n value: string;\n}\n\nexport interface ICompressionHandler {\n /**\n * Compresses the given data using the first plugin that can compress it.\n */\n compress<T = unknown>(data: T): Promise<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\nexport const CompressionHandler = createAbstraction<ICompressionHandler>(\"Api/Compression/Handler\");\n\nexport namespace CompressionHandler {\n export type Interface = ICompressionHandler;\n export type CompressParams<T = unknown> = T;\n export type CompressResponse = Promise<ICompressedValue>;\n export type DecompressParams = ICompressedValue | unknown;\n export type DecompressResponse<T = unknown> = Promise<T>;\n}\n"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,qBAAqB;AAkBvD,OAAO,MAAMC,kBAAkB,GAAGD,iBAAiB,CAAsB,yBAAyB,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const CompressionFeature: import("@webiny/feature/api/createFeature.js").FeatureDefinition<unknown>;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { createFeature } from "@webiny/feature/api";
|
|
2
|
+
import { CompressionHandler } from "./CompressionHandler.js";
|
|
3
|
+
import { GzipCompression } from "./GzipCompression.js";
|
|
4
|
+
import { JsonpackCompression } from "./JsonpackCompression.js";
|
|
5
|
+
export const CompressionFeature = createFeature({
|
|
6
|
+
name: "Api/CompressionFeature",
|
|
7
|
+
register: container => {
|
|
8
|
+
container.register(GzipCompression);
|
|
9
|
+
container.register(JsonpackCompression);
|
|
10
|
+
container.register(CompressionHandler);
|
|
11
|
+
}
|
|
12
|
+
});
|
|
13
|
+
|
|
14
|
+
//# sourceMappingURL=feature.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["createFeature","CompressionHandler","GzipCompression","JsonpackCompression","CompressionFeature","name","register","container"],"sources":["feature.ts"],"sourcesContent":["import { createFeature } from \"@webiny/feature/api\";\nimport { CompressionHandler } from \"./CompressionHandler.js\";\nimport { GzipCompression } from \"./GzipCompression.js\";\nimport { JsonpackCompression } from \"./JsonpackCompression.js\";\n\nexport const CompressionFeature = createFeature({\n name: \"Api/CompressionFeature\",\n register: container => {\n container.register(GzipCompression);\n container.register(JsonpackCompression);\n container.register(CompressionHandler);\n }\n});\n"],"mappings":"AAAA,SAASA,aAAa,QAAQ,qBAAqB;AACnD,SAASC,kBAAkB;AAC3B,SAASC,eAAe;AACxB,SAASC,mBAAmB;AAE5B,OAAO,MAAMC,kBAAkB,GAAGJ,aAAa,CAAC;EAC5CK,IAAI,EAAE,wBAAwB;EAC9BC,QAAQ,EAAEC,SAAS,IAAI;IACnBA,SAAS,CAACD,QAAQ,CAACJ,eAAe,CAAC;IACnCK,SAAS,CAACD,QAAQ,CAACH,mBAAmB,CAAC;IACvCI,SAAS,CAACD,QAAQ,CAACL,kBAAkB,CAAC;EAC1C;AACJ,CAAC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["CompressionPlugin","compress","gzip","decompress","ungzip","GZIP","TO_STORAGE_ENCODING","FROM_STORAGE_ENCODING","convertToBuffer","value","Buffer","from","GzipCompression","name","canCompress","data","compression","undefined","JSON","stringify","toString","canDecompress","toLowerCase","buf","parse","ex","console","log","message","createGzipCompression"],"sources":["GzipCompression.ts"],"sourcesContent":["import { CompressionPlugin, type ICompressedValue } from \"../CompressionPlugin.js\";\nimport { compress as gzip, decompress as ungzip } from \"../gzip.js\";\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 if (data === null || data === undefined) {\n return data;\n }\n // This stringifies both regular strings and JSON objects.\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 if (!data) {\n return data;\n } else if (!data.value) {\n return null;\n }\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,SAASA,iBAAiB;AAC1B,SAASC,QAAQ,IAAIC,IAAI,EAAEC,UAAU,IAAIC,MAAM;AAE/C,MAAMC,IAAI,GAAG,MAAM;AACnB,MAAMC,mBAAmB,GAAG,QAAQ;AACpC,MAAMC,qBAAqB,GAAG,MAAM;AAEpC,OAAO,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;AAED,OAAO,MAAMG,eAAe,SAASZ,iBAAiB,CAAC;EACnCa,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,MAAsBf,QAAQA,CAACc,IAAS,EAA6B;IACjE,IAAIA,IAAI,KAAK,IAAI,IAAIA,IAAI,KAAKE,SAAS,EAAE;MACrC,OAAOF,IAAI;IACf;IACA;IACA,MAAMN,KAAK,GAAG,MAAMP,IAAI,CAACgB,IAAI,CAACC,SAAS,CAACJ,IAAI,CAAC,CAAC;IAE9C,OAAO;MACHC,WAAW,EAAEX,IAAI;MACjBI,KAAK,EAAEA,KAAK,CAACW,QAAQ,CAACd,mBAAmB;IAC7C,CAAC;EACL;EAEgBe,aAAaA,CAACN,IAA+B,EAAW;IACpE,IAAI,CAACA,IAAI,EAAEC,WAAW,EAAE;MACpB,OAAO,KAAK;IAChB;IAEA,MAAMA,WAAW,GAAGD,IAAI,CAACC,WAAqB;IAE9C,OAAOA,WAAW,CAACM,WAAW,CAAC,CAAC,KAAKjB,IAAI;EAC7C;EAEA,MAAsBF,UAAUA,CAACY,IAAsB,EAAgB;IACnE,IAAI,CAACA,IAAI,EAAE;MACP,OAAOA,IAAI;IACf,CAAC,MAAM,IAAI,CAACA,IAAI,CAACN,KAAK,EAAE;MACpB,OAAO,IAAI;IACf;IACA,IAAI;MACA,MAAMc,GAAG,GAAG,MAAMnB,MAAM,CAACI,eAAe,CAACO,IAAI,CAACN,KAAK,CAAC,CAAC;MACrD,MAAMA,KAAK,GAAGc,GAAG,CAACH,QAAQ,CAACb,qBAAqB,CAAC;MACjD,OAAOW,IAAI,CAACM,KAAK,CAACf,KAAK,CAAC;IAC5B,CAAC,CAAC,OAAOgB,EAAE,EAAE;MACTC,OAAO,CAACC,GAAG,CAAC,kCAAkC,EAAEF,EAAE,CAACG,OAAO,CAAC;MAC3D,OAAO,IAAI;IACf;EACJ;AACJ;AAEA,OAAO,MAAMC,qBAAqB,GAAGA,CAAA,KAAM;EACvC,OAAO,IAAIjB,eAAe,CAAC,CAAC;AAChC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["CompressionPlugin","compress","decompress","JSONPACK","JsonpackCompression","name","canCompress","data","compression","undefined","value","canDecompress","toLowerCase","ex","console","log","message","createJsonpackCompression"],"sources":["JsonpackCompression.ts"],"sourcesContent":["import { CompressionPlugin, type ICompressedValue } from \"../CompressionPlugin.js\";\nimport { compress, decompress } from \"../jsonpack.js\";\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 if (data === null || data === undefined) {\n return data;\n }\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 if (!data) {\n return data;\n } else if (!data.value) {\n return null;\n }\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,SAASA,iBAAiB;AAC1B,SAASC,QAAQ,EAAEC,UAAU;AAE7B,MAAMC,QAAQ,GAAG,UAAU;AAE3B,OAAO,MAAMC,mBAAmB,SAASJ,iBAAiB,CAAC;EACvCK,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,MAAsBP,QAAQA,CAACM,IAAS,EAA6B;IACjE,IAAIA,IAAI,KAAK,IAAI,IAAIA,IAAI,KAAKE,SAAS,EAAE;MACrC,OAAOF,IAAI;IACf;IACA,MAAMG,KAAK,GAAG,MAAMT,QAAQ,CAACM,IAAI,CAAC;IAElC,OAAO;MACHC,WAAW,EAAEL,QAAQ;MACrBO;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,KAAKT,QAAQ;EACjD;EAEA,MAAsBD,UAAUA,CAACK,IAAsB,EAAgB;IACnE,IAAI,CAACA,IAAI,EAAE;MACP,OAAOA,IAAI;IACf,CAAC,MAAM,IAAI,CAACA,IAAI,CAACG,KAAK,EAAE;MACpB,OAAO,IAAI;IACf;IACA,IAAI;MACA,OAAO,MAAMR,UAAU,CAACK,IAAI,CAACG,KAAK,CAAC;IACvC,CAAC,CAAC,OAAOG,EAAE,EAAE;MACTC,OAAO,CAACC,GAAG,CAAC,kCAAkC,EAAEF,EAAE,CAACG,OAAO,CAAC;MAC3D,OAAO,IAAI;IACf;EACJ;AACJ;AAEA,OAAO,MAAMC,yBAAyB,GAAGA,CAAA,KAAM;EAC3C,OAAO,IAAIb,mBAAmB,CAAC,CAAC;AACpC,CAAC","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@webiny/utils",
|
|
3
|
-
"version": "6.
|
|
3
|
+
"version": "6.2.0-beta.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"types": "index.d.ts",
|
|
@@ -16,21 +16,22 @@
|
|
|
16
16
|
"directory": "dist"
|
|
17
17
|
},
|
|
18
18
|
"dependencies": {
|
|
19
|
-
"@noble/hashes": "2.0
|
|
20
|
-
"@webiny/error": "6.
|
|
21
|
-
"@webiny/
|
|
19
|
+
"@noble/hashes": "2.2.0",
|
|
20
|
+
"@webiny/error": "6.2.0-beta.0",
|
|
21
|
+
"@webiny/feature": "6.2.0-beta.0",
|
|
22
|
+
"@webiny/plugins": "6.2.0-beta.0",
|
|
22
23
|
"bson-objectid": "2.0.4",
|
|
23
24
|
"jsonpack": "1.1.5",
|
|
24
25
|
"nanoid": "5.1.7",
|
|
25
26
|
"nanoid-dictionary": "5.0.0",
|
|
26
|
-
"p-retry": "
|
|
27
|
+
"p-retry": "8.0.0",
|
|
27
28
|
"zod": "4.3.6"
|
|
28
29
|
},
|
|
29
30
|
"devDependencies": {
|
|
30
|
-
"@webiny/build-tools": "6.
|
|
31
|
+
"@webiny/build-tools": "6.2.0-beta.0",
|
|
31
32
|
"rimraf": "6.1.3",
|
|
32
33
|
"typescript": "5.9.3",
|
|
33
|
-
"vitest": "4.1.
|
|
34
|
+
"vitest": "4.1.4"
|
|
34
35
|
},
|
|
35
36
|
"adio": {
|
|
36
37
|
"ignore": {
|
|
@@ -39,5 +40,5 @@
|
|
|
39
40
|
]
|
|
40
41
|
}
|
|
41
42
|
},
|
|
42
|
-
"gitHead": "
|
|
43
|
+
"gitHead": "3d3148358b6febbc857371930871743bec3b3939"
|
|
43
44
|
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["CompressionPlugin","compress","gzip","decompress","ungzip","GZIP","TO_STORAGE_ENCODING","FROM_STORAGE_ENCODING","convertToBuffer","value","Buffer","from","GzipCompression","name","canCompress","data","compression","undefined","JSON","stringify","toString","canDecompress","toLowerCase","buf","parse","ex","console","log","message","createGzipCompression"],"sources":["GzipCompression.ts"],"sourcesContent":["import { CompressionPlugin, type ICompressedValue } from \"../CompressionPlugin.js\";\nimport { compress as gzip, decompress as ungzip } from \"~/compression/gzip.js\";\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 if (data === null || data === undefined) {\n return data;\n }\n // This stringifies both regular strings and JSON objects.\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 if (!data) {\n return data;\n } else if (!data.value) {\n return null;\n }\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,SAASA,iBAAiB;AAC1B,SAASC,QAAQ,IAAIC,IAAI,EAAEC,UAAU,IAAIC,MAAM;AAE/C,MAAMC,IAAI,GAAG,MAAM;AACnB,MAAMC,mBAAmB,GAAG,QAAQ;AACpC,MAAMC,qBAAqB,GAAG,MAAM;AAEpC,OAAO,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;AAED,OAAO,MAAMG,eAAe,SAASZ,iBAAiB,CAAC;EACnCa,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,MAAsBf,QAAQA,CAACc,IAAS,EAA6B;IACjE,IAAIA,IAAI,KAAK,IAAI,IAAIA,IAAI,KAAKE,SAAS,EAAE;MACrC,OAAOF,IAAI;IACf;IACA;IACA,MAAMN,KAAK,GAAG,MAAMP,IAAI,CAACgB,IAAI,CAACC,SAAS,CAACJ,IAAI,CAAC,CAAC;IAE9C,OAAO;MACHC,WAAW,EAAEX,IAAI;MACjBI,KAAK,EAAEA,KAAK,CAACW,QAAQ,CAACd,mBAAmB;IAC7C,CAAC;EACL;EAEgBe,aAAaA,CAACN,IAA+B,EAAW;IACpE,IAAI,CAACA,IAAI,EAAEC,WAAW,EAAE;MACpB,OAAO,KAAK;IAChB;IAEA,MAAMA,WAAW,GAAGD,IAAI,CAACC,WAAqB;IAE9C,OAAOA,WAAW,CAACM,WAAW,CAAC,CAAC,KAAKjB,IAAI;EAC7C;EAEA,MAAsBF,UAAUA,CAACY,IAAsB,EAAgB;IACnE,IAAI,CAACA,IAAI,EAAE;MACP,OAAOA,IAAI;IACf,CAAC,MAAM,IAAI,CAACA,IAAI,CAACN,KAAK,EAAE;MACpB,OAAO,IAAI;IACf;IACA,IAAI;MACA,MAAMc,GAAG,GAAG,MAAMnB,MAAM,CAACI,eAAe,CAACO,IAAI,CAACN,KAAK,CAAC,CAAC;MACrD,MAAMA,KAAK,GAAGc,GAAG,CAACH,QAAQ,CAACb,qBAAqB,CAAC;MACjD,OAAOW,IAAI,CAACM,KAAK,CAACf,KAAK,CAAC;IAC5B,CAAC,CAAC,OAAOgB,EAAE,EAAE;MACTC,OAAO,CAACC,GAAG,CAAC,kCAAkC,EAAEF,EAAE,CAACG,OAAO,CAAC;MAC3D,OAAO,IAAI;IACf;EACJ;AACJ;AAEA,OAAO,MAAMC,qBAAqB,GAAGA,CAAA,KAAM;EACvC,OAAO,IAAIjB,eAAe,CAAC,CAAC;AAChC,CAAC","ignoreList":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"names":["CompressionPlugin","compress","decompress","JSONPACK","JsonpackCompression","name","canCompress","data","compression","undefined","value","canDecompress","toLowerCase","ex","console","log","message","createJsonpackCompression"],"sources":["JsonpackCompression.ts"],"sourcesContent":["import { CompressionPlugin, type ICompressedValue } from \"../CompressionPlugin.js\";\nimport { compress, decompress } from \"~/compression/jsonpack.js\";\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 if (data === null || data === undefined) {\n return data;\n }\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 if (!data) {\n return data;\n } else if (!data.value) {\n return null;\n }\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,SAASA,iBAAiB;AAC1B,SAASC,QAAQ,EAAEC,UAAU;AAE7B,MAAMC,QAAQ,GAAG,UAAU;AAE3B,OAAO,MAAMC,mBAAmB,SAASJ,iBAAiB,CAAC;EACvCK,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,MAAsBP,QAAQA,CAACM,IAAS,EAA6B;IACjE,IAAIA,IAAI,KAAK,IAAI,IAAIA,IAAI,KAAKE,SAAS,EAAE;MACrC,OAAOF,IAAI;IACf;IACA,MAAMG,KAAK,GAAG,MAAMT,QAAQ,CAACM,IAAI,CAAC;IAElC,OAAO;MACHC,WAAW,EAAEL,QAAQ;MACrBO;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,KAAKT,QAAQ;EACjD;EAEA,MAAsBD,UAAUA,CAACK,IAAsB,EAAgB;IACnE,IAAI,CAACA,IAAI,EAAE;MACP,OAAOA,IAAI;IACf,CAAC,MAAM,IAAI,CAACA,IAAI,CAACG,KAAK,EAAE;MACpB,OAAO,IAAI;IACf;IACA,IAAI;MACA,OAAO,MAAMR,UAAU,CAACK,IAAI,CAACG,KAAK,CAAC;IACvC,CAAC,CAAC,OAAOG,EAAE,EAAE;MACTC,OAAO,CAACC,GAAG,CAAC,kCAAkC,EAAEF,EAAE,CAACG,OAAO,CAAC;MAC3D,OAAO,IAAI;IACf;EACJ;AACJ;AAEA,OAAO,MAAMC,yBAAyB,GAAGA,CAAA,KAAM;EAC3C,OAAO,IAAIb,mBAAmB,CAAC,CAAC;AACpC,CAAC","ignoreList":[]}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|