@bgord/bun 1.18.16 → 1.19.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{image-blur-sharp.adapter.d.ts → image-blur.adapter.d.ts} +5 -9
- package/dist/image-blur.adapter.d.ts.map +1 -0
- package/dist/image-blur.adapter.js +19 -0
- package/dist/image-blur.adapter.js.map +1 -0
- package/dist/image-blur.port.d.ts +0 -2
- package/dist/image-blur.port.d.ts.map +1 -1
- package/dist/{image-compressor-sharp.adapter.d.ts → image-compressor.adapter.d.ts} +5 -9
- package/dist/image-compressor.adapter.d.ts.map +1 -0
- package/dist/image-compressor.adapter.js +20 -0
- package/dist/image-compressor.adapter.js.map +1 -0
- package/dist/image-exif-clear.adapter.d.ts +15 -0
- package/dist/image-exif-clear.adapter.d.ts.map +1 -0
- package/dist/image-exif-clear.adapter.js +17 -0
- package/dist/image-exif-clear.adapter.js.map +1 -0
- package/dist/{image-formatter-sharp.adapter.d.ts → image-formatter.adapter.d.ts} +5 -9
- package/dist/image-formatter.adapter.d.ts.map +1 -0
- package/dist/image-formatter.adapter.js +22 -0
- package/dist/image-formatter.adapter.js.map +1 -0
- package/dist/{image-grayscale-sharp.adapter.d.ts → image-grayscale.adapter.d.ts} +5 -9
- package/dist/image-grayscale.adapter.d.ts.map +1 -0
- package/dist/image-grayscale.adapter.js +22 -0
- package/dist/image-grayscale.adapter.js.map +1 -0
- package/dist/image-info.adapter.d.ts +12 -0
- package/dist/image-info.adapter.d.ts.map +1 -0
- package/dist/image-info.adapter.js +21 -0
- package/dist/image-info.adapter.js.map +1 -0
- package/dist/{image-processor-sharp.adapter.d.ts → image-processor.adapter.d.ts} +5 -9
- package/dist/image-processor.adapter.d.ts.map +1 -0
- package/dist/image-processor.adapter.js +28 -0
- package/dist/image-processor.adapter.js.map +1 -0
- package/dist/image-processor.port.d.ts +0 -8
- package/dist/image-processor.port.d.ts.map +1 -1
- package/dist/{image-resizer-sharp.adapter.d.ts → image-resizer.adapter.d.ts} +5 -9
- package/dist/image-resizer.adapter.d.ts.map +1 -0
- package/dist/image-resizer.adapter.js +21 -0
- package/dist/image-resizer.adapter.js.map +1 -0
- package/dist/image.types.d.ts +2 -0
- package/dist/image.types.d.ts.map +1 -0
- package/dist/image.types.js +2 -0
- package/dist/image.types.js.map +1 -0
- package/dist/index.d.ts +9 -12
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9 -12
- package/dist/index.js.map +1 -1
- package/dist/mailer-file.adapter.d.ts.map +1 -1
- package/dist/mailer-file.adapter.js +1 -0
- package/dist/mailer-file.adapter.js.map +1 -1
- package/dist/request-context-hono.adapter.d.ts.map +1 -1
- package/dist/request-context-hono.adapter.js +1 -0
- package/dist/request-context-hono.adapter.js.map +1 -1
- package/package.json +2 -7
- package/readme.md +9 -12
- package/src/image-blur.adapter.ts +29 -0
- package/src/image-blur.port.ts +0 -2
- package/src/image-compressor.adapter.ts +31 -0
- package/src/image-exif-clear.adapter.ts +26 -0
- package/src/image-formatter.adapter.ts +39 -0
- package/src/image-grayscale.adapter.ts +33 -0
- package/src/image-info.adapter.ts +26 -0
- package/src/image-processor.adapter.ts +46 -0
- package/src/image-processor.port.ts +0 -3
- package/src/image-resizer.adapter.ts +31 -0
- package/src/image.types.ts +1 -0
- package/src/index.ts +9 -12
- package/src/mailer-file.adapter.ts +1 -0
- package/src/request-context-hono.adapter.ts +1 -0
- package/dist/image-alpha-noop.adapter.d.ts +0 -6
- package/dist/image-alpha-noop.adapter.d.ts.map +0 -1
- package/dist/image-alpha-noop.adapter.js +0 -6
- package/dist/image-alpha-noop.adapter.js.map +0 -1
- package/dist/image-alpha-sharp.adapter.d.ts +0 -19
- package/dist/image-alpha-sharp.adapter.d.ts.map +0 -1
- package/dist/image-alpha-sharp.adapter.js +0 -96
- package/dist/image-alpha-sharp.adapter.js.map +0 -1
- package/dist/image-alpha-with-semaphore.adapter.d.ts +0 -14
- package/dist/image-alpha-with-semaphore.adapter.d.ts.map +0 -1
- package/dist/image-alpha-with-semaphore.adapter.js +0 -10
- package/dist/image-alpha-with-semaphore.adapter.js.map +0 -1
- package/dist/image-alpha.port.d.ts +0 -24
- package/dist/image-alpha.port.d.ts.map +0 -1
- package/dist/image-alpha.port.js +0 -2
- package/dist/image-alpha.port.js.map +0 -1
- package/dist/image-blur-sharp.adapter.d.ts.map +0 -1
- package/dist/image-blur-sharp.adapter.js +0 -92
- package/dist/image-blur-sharp.adapter.js.map +0 -1
- package/dist/image-compressor-sharp.adapter.d.ts.map +0 -1
- package/dist/image-compressor-sharp.adapter.js +0 -94
- package/dist/image-compressor-sharp.adapter.js.map +0 -1
- package/dist/image-exif-clear-sharp.adapter.d.ts +0 -19
- package/dist/image-exif-clear-sharp.adapter.d.ts.map +0 -1
- package/dist/image-exif-clear-sharp.adapter.js +0 -90
- package/dist/image-exif-clear-sharp.adapter.js.map +0 -1
- package/dist/image-formatter-sharp.adapter.d.ts.map +0 -1
- package/dist/image-formatter-sharp.adapter.js +0 -96
- package/dist/image-formatter-sharp.adapter.js.map +0 -1
- package/dist/image-grayscale-sharp.adapter.d.ts.map +0 -1
- package/dist/image-grayscale-sharp.adapter.js +0 -90
- package/dist/image-grayscale-sharp.adapter.js.map +0 -1
- package/dist/image-info-sharp.adapter.d.ts +0 -20
- package/dist/image-info-sharp.adapter.d.ts.map +0 -1
- package/dist/image-info-sharp.adapter.js +0 -95
- package/dist/image-info-sharp.adapter.js.map +0 -1
- package/dist/image-processor-sharp.adapter.d.ts.map +0 -1
- package/dist/image-processor-sharp.adapter.js +0 -109
- package/dist/image-processor-sharp.adapter.js.map +0 -1
- package/dist/image-resizer-sharp.adapter.d.ts.map +0 -1
- package/dist/image-resizer-sharp.adapter.js +0 -101
- package/dist/image-resizer-sharp.adapter.js.map +0 -1
- package/src/image-alpha-noop.adapter.ts +0 -8
- package/src/image-alpha-sharp.adapter.ts +0 -53
- package/src/image-alpha-with-semaphore.adapter.ts +0 -13
- package/src/image-alpha.port.ts +0 -19
- package/src/image-blur-sharp.adapter.ts +0 -48
- package/src/image-compressor-sharp.adapter.ts +0 -50
- package/src/image-exif-clear-sharp.adapter.ts +0 -45
- package/src/image-formatter-sharp.adapter.ts +0 -55
- package/src/image-grayscale-sharp.adapter.ts +0 -45
- package/src/image-info-sharp.adapter.ts +0 -49
- package/src/image-processor-sharp.adapter.ts +0 -73
- package/src/image-resizer-sharp.adapter.ts +0 -56
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export type ImageSupportedType = Exclude<Bun.Image.Format, "bmp" | "tiff" | "gif">;
|
package/src/index.ts
CHANGED
|
@@ -206,41 +206,38 @@ export * from "./i18n.service";
|
|
|
206
206
|
export * from "./id-provider.port";
|
|
207
207
|
export * from "./id-provider-crypto.adapter";
|
|
208
208
|
export * from "./id-provider-deterministic.adapter";
|
|
209
|
-
export * from "./image
|
|
210
|
-
export * from "./image-
|
|
211
|
-
export * from "./image-alpha-sharp.adapter";
|
|
212
|
-
export * from "./image-alpha-with-semaphore.adapter";
|
|
209
|
+
export * from "./image.types";
|
|
210
|
+
export * from "./image-blur.adapter";
|
|
213
211
|
export * from "./image-blur.port";
|
|
214
212
|
export * from "./image-blur-noop.adapter";
|
|
215
|
-
export * from "./image-blur-sharp.adapter";
|
|
216
213
|
export * from "./image-blur-with-semaphore.adapter";
|
|
214
|
+
export * from "./image-compressor.adapter";
|
|
217
215
|
export * from "./image-compressor.port";
|
|
218
216
|
export * from "./image-compressor-noop.adapter";
|
|
219
|
-
export * from "./image-compressor-sharp.adapter";
|
|
220
217
|
export * from "./image-compressor-with-semaphore.adapter";
|
|
218
|
+
export * from "./image-exif-clear.adapter";
|
|
221
219
|
export * from "./image-exif-clear.port";
|
|
222
220
|
export * from "./image-exif-clear-noop.adapter";
|
|
223
|
-
export * from "./image-exif-clear-sharp.adapter";
|
|
224
221
|
export * from "./image-exif-clear-with-semaphore.adapter";
|
|
222
|
+
export * from "./image-formatter.adapter";
|
|
225
223
|
export * from "./image-formatter.port";
|
|
226
224
|
export * from "./image-formatter-noop.adapter";
|
|
227
|
-
export * from "./image-formatter-sharp.adapter";
|
|
228
225
|
export * from "./image-formatter-with-semaphore.adapter";
|
|
226
|
+
export * from "./image-grayscale.adapter";
|
|
229
227
|
export * from "./image-grayscale.port";
|
|
230
228
|
export * from "./image-grayscale-noop.adapter";
|
|
231
|
-
export * from "./image-grayscale-sharp.adapter";
|
|
232
229
|
export * from "./image-grayscale-with-semaphore.adapter";
|
|
230
|
+
export * from "./image-info.adapter";
|
|
233
231
|
export * from "./image-info.port";
|
|
234
232
|
export * from "./image-info-noop.adapter";
|
|
235
|
-
export * from "./image-info-sharp.adapter";
|
|
236
233
|
export * from "./image-info-with-semaphore.adapter";
|
|
234
|
+
export * from "./image-processor.adapter";
|
|
237
235
|
export * from "./image-processor.port";
|
|
238
236
|
export * from "./image-processor-noop.adapter";
|
|
239
|
-
export * from "./image-processor-sharp.adapter";
|
|
240
237
|
export * from "./image-processor-with-semaphore.adapter";
|
|
238
|
+
export * from "./image-resizer.adapter";
|
|
241
239
|
export * from "./image-resizer.port";
|
|
242
240
|
export * from "./image-resizer-noop.adapter";
|
|
243
|
-
export * from "./image-resizer-sharp.adapter";
|
|
244
241
|
export * from "./image-resizer-with-semaphore.adapter";
|
|
245
242
|
export * from "./in-flight-requests-hono.middleware";
|
|
246
243
|
export * from "./in-flight-requests-tracker.service";
|
|
@@ -21,6 +21,7 @@ export class MailerFileAdapter implements MailerPort {
|
|
|
21
21
|
`Attachments: ${template.attachments?.length ?? 0}`,
|
|
22
22
|
"-".repeat(50),
|
|
23
23
|
template.message.html,
|
|
24
|
+
// Stryker disable next-line StringLiteral
|
|
24
25
|
].join("\n");
|
|
25
26
|
|
|
26
27
|
const file = new File([content], filename.get());
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import type * as tools from "@bgord/tools";
|
|
2
|
-
import type { ImageAlphaPort, ImageAlphaStrategy } from "./image-alpha.port";
|
|
3
|
-
export declare class ImageAlphaNoopAdapter implements ImageAlphaPort {
|
|
4
|
-
flatten(recipe: ImageAlphaStrategy): Promise<tools.FilePathRelative | tools.FilePathAbsolute>;
|
|
5
|
-
}
|
|
6
|
-
//# sourceMappingURL=image-alpha-noop.adapter.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"image-alpha-noop.adapter.d.ts","sourceRoot":"","sources":["../src/image-alpha-noop.adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAE7E,qBAAa,qBAAsB,YAAW,cAAc;IACpD,OAAO,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,KAAK,CAAC,gBAAgB,GAAG,KAAK,CAAC,gBAAgB,CAAC,CAElG;CACF"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"image-alpha-noop.adapter.js","sourceRoot":"","sources":["../src/image-alpha-noop.adapter.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,qBAAqB;IAChC,KAAK,CAAC,OAAO,CAAC,MAA0B;QACtC,OAAO,MAAM,CAAC,QAAQ,KAAK,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;IAC1E,CAAC;CACF"}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import type * as tools from "@bgord/tools";
|
|
2
|
-
import type { FileRenamerPort } from "./file-renamer.port";
|
|
3
|
-
import type { ImageAlphaPort, ImageAlphaStrategy } from "./image-alpha.port";
|
|
4
|
-
export declare const ImageAlphaSharpAdapterError: {
|
|
5
|
-
MissingDependency: string;
|
|
6
|
-
};
|
|
7
|
-
type Dependencies = {
|
|
8
|
-
FileRenamer: FileRenamerPort;
|
|
9
|
-
};
|
|
10
|
-
export declare class ImageAlphaSharpAdapter implements ImageAlphaPort {
|
|
11
|
-
private readonly sharp;
|
|
12
|
-
private readonly deps;
|
|
13
|
-
private static readonly importer;
|
|
14
|
-
private constructor();
|
|
15
|
-
static build(deps: Dependencies): Promise<ImageAlphaSharpAdapter>;
|
|
16
|
-
flatten(recipe: ImageAlphaStrategy): Promise<tools.FilePathRelative | tools.FilePathAbsolute>;
|
|
17
|
-
}
|
|
18
|
-
export {};
|
|
19
|
-
//# sourceMappingURL=image-alpha-sharp.adapter.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"image-alpha-sharp.adapter.d.ts","sourceRoot":"","sources":["../src/image-alpha-sharp.adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAC;AAG3C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,KAAK,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAE7E,eAAO,MAAM,2BAA2B;IACtC,iBAAiB;CAClB,CAAC;AAEF,KAAK,YAAY,GAAG;IAAE,WAAW,EAAE,eAAe,CAAA;CAAE,CAAC;AAGrD,qBAAa,sBAAuB,YAAW,cAAc;IAOzD,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,IAAI;IAPvB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAG9B;IAEF,OAAO,eAGH;IAEJ,OAAa,KAAK,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,sBAAsB,CAAC,CAItE;IAEK,OAAO,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,KAAK,CAAC,gBAAgB,GAAG,KAAK,CAAC,gBAAgB,CAAC,CAqBlG;CACF"}
|
|
@@ -1,96 +0,0 @@
|
|
|
1
|
-
var __addDisposableResource = (this && this.__addDisposableResource) || function (env, value, async) {
|
|
2
|
-
if (value !== null && value !== void 0) {
|
|
3
|
-
if (typeof value !== "object" && typeof value !== "function") throw new TypeError("Object expected.");
|
|
4
|
-
var dispose, inner;
|
|
5
|
-
if (async) {
|
|
6
|
-
if (!Symbol.asyncDispose) throw new TypeError("Symbol.asyncDispose is not defined.");
|
|
7
|
-
dispose = value[Symbol.asyncDispose];
|
|
8
|
-
}
|
|
9
|
-
if (dispose === void 0) {
|
|
10
|
-
if (!Symbol.dispose) throw new TypeError("Symbol.dispose is not defined.");
|
|
11
|
-
dispose = value[Symbol.dispose];
|
|
12
|
-
if (async) inner = dispose;
|
|
13
|
-
}
|
|
14
|
-
if (typeof dispose !== "function") throw new TypeError("Object not disposable.");
|
|
15
|
-
if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };
|
|
16
|
-
env.stack.push({ value: value, dispose: dispose, async: async });
|
|
17
|
-
}
|
|
18
|
-
else if (async) {
|
|
19
|
-
env.stack.push({ async: true });
|
|
20
|
-
}
|
|
21
|
-
return value;
|
|
22
|
-
};
|
|
23
|
-
var __disposeResources = (this && this.__disposeResources) || (function (SuppressedError) {
|
|
24
|
-
return function (env) {
|
|
25
|
-
function fail(e) {
|
|
26
|
-
env.error = env.hasError ? new SuppressedError(e, env.error, "An error was suppressed during disposal.") : e;
|
|
27
|
-
env.hasError = true;
|
|
28
|
-
}
|
|
29
|
-
var r, s = 0;
|
|
30
|
-
function next() {
|
|
31
|
-
while (r = env.stack.pop()) {
|
|
32
|
-
try {
|
|
33
|
-
if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);
|
|
34
|
-
if (r.dispose) {
|
|
35
|
-
var result = r.dispose.call(r.value);
|
|
36
|
-
if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });
|
|
37
|
-
}
|
|
38
|
-
else s |= 1;
|
|
39
|
-
}
|
|
40
|
-
catch (e) {
|
|
41
|
-
fail(e);
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();
|
|
45
|
-
if (env.hasError) throw env.error;
|
|
46
|
-
}
|
|
47
|
-
return next();
|
|
48
|
-
};
|
|
49
|
-
})(typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
|
|
50
|
-
var e = new Error(message);
|
|
51
|
-
return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
|
|
52
|
-
});
|
|
53
|
-
import { DynamicImport } from "./dynamic-import.service";
|
|
54
|
-
export const ImageAlphaSharpAdapterError = {
|
|
55
|
-
MissingDependency: "image.alpha.sharp.adapter.error.missing.dependency",
|
|
56
|
-
};
|
|
57
|
-
export class ImageAlphaSharpAdapter {
|
|
58
|
-
sharp;
|
|
59
|
-
deps;
|
|
60
|
-
static importer = DynamicImport.for("sharp", ImageAlphaSharpAdapterError.MissingDependency);
|
|
61
|
-
constructor(sharp, deps) {
|
|
62
|
-
this.sharp = sharp;
|
|
63
|
-
this.deps = deps;
|
|
64
|
-
}
|
|
65
|
-
static async build(deps) {
|
|
66
|
-
const library = await ImageAlphaSharpAdapter.importer.resolve();
|
|
67
|
-
return new ImageAlphaSharpAdapter(library.default, deps);
|
|
68
|
-
}
|
|
69
|
-
async flatten(recipe) {
|
|
70
|
-
const env_1 = { stack: [], error: void 0, hasError: false };
|
|
71
|
-
try {
|
|
72
|
-
const final = recipe.strategy === "output_path" ? recipe.output : recipe.input;
|
|
73
|
-
const filename = final.getFilename();
|
|
74
|
-
const temporary = final.withFilename(filename.withSuffix("-flattened"));
|
|
75
|
-
const extension = final.getFilename().getExtension();
|
|
76
|
-
const format = (extension === "jpg" ? "jpeg" : extension);
|
|
77
|
-
const pipeline = this.sharp(recipe.input.get());
|
|
78
|
-
const _pipeline_dispose = __addDisposableResource(env_1, { [Symbol.dispose]: () => pipeline.destroy() }, false);
|
|
79
|
-
await pipeline
|
|
80
|
-
.rotate()
|
|
81
|
-
.flatten({ background: recipe.background })
|
|
82
|
-
.toFormat(format)
|
|
83
|
-
.toFile(temporary.get());
|
|
84
|
-
await this.deps.FileRenamer.rename(temporary, final);
|
|
85
|
-
return final;
|
|
86
|
-
}
|
|
87
|
-
catch (e_1) {
|
|
88
|
-
env_1.error = e_1;
|
|
89
|
-
env_1.hasError = true;
|
|
90
|
-
}
|
|
91
|
-
finally {
|
|
92
|
-
__disposeResources(env_1);
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
//# sourceMappingURL=image-alpha-sharp.adapter.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"image-alpha-sharp.adapter.js","sourceRoot":"","sources":["../src/image-alpha-sharp.adapter.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAIzD,MAAM,CAAC,MAAM,2BAA2B,GAAG;IACzC,iBAAiB,EAAE,oDAAoD;CACxE,CAAC;AAKF,MAAM,OAAO,sBAAsB;IAOd,KAAK;IACL,IAAI;IAPf,MAAM,CAAU,QAAQ,GAAG,aAAa,CAAC,GAAG,CAClD,OAAO,EACP,2BAA2B,CAAC,iBAAiB,CAC9C,CAAC;IAEF,YACmB,KAAY,EACZ,IAAkB;qBADlB,KAAK;oBACL,IAAI;IACpB,CAAC;IAEJ,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAkB;QACnC,MAAM,OAAO,GAAG,MAAM,sBAAsB,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;QAEhE,OAAO,IAAI,sBAAsB,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAC3D,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,MAA0B;;;YACtC,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,KAAK,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;YAE/E,MAAM,QAAQ,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;YACrC,MAAM,SAAS,GAAG,KAAK,CAAC,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC;YAExE,MAAM,SAAS,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC,YAAY,EAAE,CAAC;YACrD,MAAM,MAAM,GAAG,CAAC,SAAS,KAAK,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAqC,CAAC;YAE9F,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;YAChD,MAAM,iBAAiB,kCAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,QAAA,CAAC;YAEzE,MAAM,QAAQ;iBACX,MAAM,EAAE;iBACR,OAAO,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC;iBAC1C,QAAQ,CAAC,MAAM,CAAC;iBAChB,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,CAAC;YAE3B,MAAM,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;YAErD,OAAO,KAAK,CAAC;;;;;;;;;IACf,CAAC;CACF"}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import type * as tools from "@bgord/tools";
|
|
2
|
-
import type { ImageAlphaPort, ImageAlphaStrategy } from "./image-alpha.port";
|
|
3
|
-
import type { Semaphore } from "./semaphore.service";
|
|
4
|
-
type Dependencies = {
|
|
5
|
-
inner: ImageAlphaPort;
|
|
6
|
-
semaphore: Semaphore;
|
|
7
|
-
};
|
|
8
|
-
export declare class ImageAlphaWithSemaphoreAdapter implements ImageAlphaPort {
|
|
9
|
-
private readonly deps;
|
|
10
|
-
constructor(deps: Dependencies);
|
|
11
|
-
flatten(recipe: ImageAlphaStrategy): Promise<tools.FilePathRelative | tools.FilePathAbsolute>;
|
|
12
|
-
}
|
|
13
|
-
export {};
|
|
14
|
-
//# sourceMappingURL=image-alpha-with-semaphore.adapter.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"image-alpha-with-semaphore.adapter.d.ts","sourceRoot":"","sources":["../src/image-alpha-with-semaphore.adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC7E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAErD,KAAK,YAAY,GAAG;IAAE,KAAK,EAAE,cAAc,CAAC;IAAC,SAAS,EAAE,SAAS,CAAA;CAAE,CAAC;AAEpE,qBAAa,8BAA+B,YAAW,cAAc;IACvD,OAAO,CAAC,QAAQ,CAAC,IAAI;IAAjC,YAA6B,IAAI,EAAE,YAAY,EAAI;IAE7C,OAAO,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,KAAK,CAAC,gBAAgB,GAAG,KAAK,CAAC,gBAAgB,CAAC,CAElG;CACF"}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
export class ImageAlphaWithSemaphoreAdapter {
|
|
2
|
-
deps;
|
|
3
|
-
constructor(deps) {
|
|
4
|
-
this.deps = deps;
|
|
5
|
-
}
|
|
6
|
-
async flatten(recipe) {
|
|
7
|
-
return this.deps.semaphore.run(() => this.deps.inner.flatten(recipe));
|
|
8
|
-
}
|
|
9
|
-
}
|
|
10
|
-
//# sourceMappingURL=image-alpha-with-semaphore.adapter.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"image-alpha-with-semaphore.adapter.js","sourceRoot":"","sources":["../src/image-alpha-with-semaphore.adapter.ts"],"names":[],"mappings":"AAMA,MAAM,OAAO,8BAA8B;IACZ,IAAI;IAAjC,YAA6B,IAAkB;oBAAlB,IAAI;IAAiB,CAAC;IAEnD,KAAK,CAAC,OAAO,CAAC,MAA0B;QACtC,OAAO,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;IACxE,CAAC;CACF"}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import type * as tools from "@bgord/tools";
|
|
2
|
-
type ImageAlphaBackground = string | {
|
|
3
|
-
r: number;
|
|
4
|
-
g: number;
|
|
5
|
-
b: number;
|
|
6
|
-
alpha?: number;
|
|
7
|
-
};
|
|
8
|
-
type ImageAlphaOutputPathStrategy = {
|
|
9
|
-
strategy: "output_path";
|
|
10
|
-
input: tools.FilePathRelative | tools.FilePathAbsolute;
|
|
11
|
-
output: tools.FilePathRelative | tools.FilePathAbsolute;
|
|
12
|
-
background: ImageAlphaBackground;
|
|
13
|
-
};
|
|
14
|
-
type ImageAlphaInPlaceStrategy = {
|
|
15
|
-
strategy: "in_place";
|
|
16
|
-
input: tools.FilePathRelative | tools.FilePathAbsolute;
|
|
17
|
-
background: ImageAlphaBackground;
|
|
18
|
-
};
|
|
19
|
-
export type ImageAlphaStrategy = ImageAlphaInPlaceStrategy | ImageAlphaOutputPathStrategy;
|
|
20
|
-
export interface ImageAlphaPort {
|
|
21
|
-
flatten(recipe: ImageAlphaStrategy): Promise<tools.FilePathRelative | tools.FilePathAbsolute>;
|
|
22
|
-
}
|
|
23
|
-
export {};
|
|
24
|
-
//# sourceMappingURL=image-alpha.port.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"image-alpha.port.d.ts","sourceRoot":"","sources":["../src/image-alpha.port.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAC;AAE3C,KAAK,oBAAoB,GAAG,MAAM,GAAG;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AACzF,KAAK,4BAA4B,GAAG;IAClC,QAAQ,EAAE,aAAa,CAAC;IACxB,KAAK,EAAE,KAAK,CAAC,gBAAgB,GAAG,KAAK,CAAC,gBAAgB,CAAC;IACvD,MAAM,EAAE,KAAK,CAAC,gBAAgB,GAAG,KAAK,CAAC,gBAAgB,CAAC;IACxD,UAAU,EAAE,oBAAoB,CAAC;CAClC,CAAC;AACF,KAAK,yBAAyB,GAAG;IAC/B,QAAQ,EAAE,UAAU,CAAC;IACrB,KAAK,EAAE,KAAK,CAAC,gBAAgB,GAAG,KAAK,CAAC,gBAAgB,CAAC;IACvD,UAAU,EAAE,oBAAoB,CAAC;CAClC,CAAC;AACF,MAAM,MAAM,kBAAkB,GAAG,yBAAyB,GAAG,4BAA4B,CAAC;AAE1F,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,KAAK,CAAC,gBAAgB,GAAG,KAAK,CAAC,gBAAgB,CAAC,CAAC;CAC/F"}
|
package/dist/image-alpha.port.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"image-alpha.port.js","sourceRoot":"","sources":["../src/image-alpha.port.ts"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"image-blur-sharp.adapter.d.ts","sourceRoot":"","sources":["../src/image-blur-sharp.adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAC;AAG3C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,KAAK,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAE1E,eAAO,MAAM,0BAA0B;IACrC,iBAAiB;CAClB,CAAC;AAEF,KAAK,YAAY,GAAG;IAAE,WAAW,EAAE,eAAe,CAAA;CAAE,CAAC;AAGrD,qBAAa,qBAAsB,YAAW,aAAa;IAOvD,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,IAAI;IAPvB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAG9B;IAEF,OAAO,eAGH;IAEJ,OAAa,KAAK,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAIrE;IAEK,IAAI,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,KAAK,CAAC,gBAAgB,GAAG,KAAK,CAAC,gBAAgB,CAAC,CAgB9F;CACF"}
|
|
@@ -1,92 +0,0 @@
|
|
|
1
|
-
var __addDisposableResource = (this && this.__addDisposableResource) || function (env, value, async) {
|
|
2
|
-
if (value !== null && value !== void 0) {
|
|
3
|
-
if (typeof value !== "object" && typeof value !== "function") throw new TypeError("Object expected.");
|
|
4
|
-
var dispose, inner;
|
|
5
|
-
if (async) {
|
|
6
|
-
if (!Symbol.asyncDispose) throw new TypeError("Symbol.asyncDispose is not defined.");
|
|
7
|
-
dispose = value[Symbol.asyncDispose];
|
|
8
|
-
}
|
|
9
|
-
if (dispose === void 0) {
|
|
10
|
-
if (!Symbol.dispose) throw new TypeError("Symbol.dispose is not defined.");
|
|
11
|
-
dispose = value[Symbol.dispose];
|
|
12
|
-
if (async) inner = dispose;
|
|
13
|
-
}
|
|
14
|
-
if (typeof dispose !== "function") throw new TypeError("Object not disposable.");
|
|
15
|
-
if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };
|
|
16
|
-
env.stack.push({ value: value, dispose: dispose, async: async });
|
|
17
|
-
}
|
|
18
|
-
else if (async) {
|
|
19
|
-
env.stack.push({ async: true });
|
|
20
|
-
}
|
|
21
|
-
return value;
|
|
22
|
-
};
|
|
23
|
-
var __disposeResources = (this && this.__disposeResources) || (function (SuppressedError) {
|
|
24
|
-
return function (env) {
|
|
25
|
-
function fail(e) {
|
|
26
|
-
env.error = env.hasError ? new SuppressedError(e, env.error, "An error was suppressed during disposal.") : e;
|
|
27
|
-
env.hasError = true;
|
|
28
|
-
}
|
|
29
|
-
var r, s = 0;
|
|
30
|
-
function next() {
|
|
31
|
-
while (r = env.stack.pop()) {
|
|
32
|
-
try {
|
|
33
|
-
if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);
|
|
34
|
-
if (r.dispose) {
|
|
35
|
-
var result = r.dispose.call(r.value);
|
|
36
|
-
if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });
|
|
37
|
-
}
|
|
38
|
-
else s |= 1;
|
|
39
|
-
}
|
|
40
|
-
catch (e) {
|
|
41
|
-
fail(e);
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();
|
|
45
|
-
if (env.hasError) throw env.error;
|
|
46
|
-
}
|
|
47
|
-
return next();
|
|
48
|
-
};
|
|
49
|
-
})(typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
|
|
50
|
-
var e = new Error(message);
|
|
51
|
-
return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
|
|
52
|
-
});
|
|
53
|
-
import { DynamicImport } from "./dynamic-import.service";
|
|
54
|
-
export const ImageBlurSharpAdapterError = {
|
|
55
|
-
MissingDependency: "image.blur.sharp.adapter.error.missing.dependency",
|
|
56
|
-
};
|
|
57
|
-
export class ImageBlurSharpAdapter {
|
|
58
|
-
sharp;
|
|
59
|
-
deps;
|
|
60
|
-
static importer = DynamicImport.for("sharp", ImageBlurSharpAdapterError.MissingDependency);
|
|
61
|
-
constructor(sharp, deps) {
|
|
62
|
-
this.sharp = sharp;
|
|
63
|
-
this.deps = deps;
|
|
64
|
-
}
|
|
65
|
-
static async build(deps) {
|
|
66
|
-
const library = await ImageBlurSharpAdapter.importer.resolve();
|
|
67
|
-
return new ImageBlurSharpAdapter(library.default, deps);
|
|
68
|
-
}
|
|
69
|
-
async blur(recipe) {
|
|
70
|
-
const env_1 = { stack: [], error: void 0, hasError: false };
|
|
71
|
-
try {
|
|
72
|
-
const final = recipe.strategy === "output_path" ? recipe.output : recipe.input;
|
|
73
|
-
const filename = final.getFilename();
|
|
74
|
-
const temporary = final.withFilename(filename.withSuffix("-blurred"));
|
|
75
|
-
const extension = final.getFilename().getExtension();
|
|
76
|
-
const format = (extension === "jpg" ? "jpeg" : extension);
|
|
77
|
-
const pipeline = this.sharp(recipe.input.get());
|
|
78
|
-
const _sharp_ = __addDisposableResource(env_1, { [Symbol.dispose]: () => pipeline.destroy() }, false);
|
|
79
|
-
await pipeline.rotate().blur(recipe.sigma).toFormat(format).toFile(temporary.get());
|
|
80
|
-
await this.deps.FileRenamer.rename(temporary, final);
|
|
81
|
-
return final;
|
|
82
|
-
}
|
|
83
|
-
catch (e_1) {
|
|
84
|
-
env_1.error = e_1;
|
|
85
|
-
env_1.hasError = true;
|
|
86
|
-
}
|
|
87
|
-
finally {
|
|
88
|
-
__disposeResources(env_1);
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
//# sourceMappingURL=image-blur-sharp.adapter.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"image-blur-sharp.adapter.js","sourceRoot":"","sources":["../src/image-blur-sharp.adapter.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAIzD,MAAM,CAAC,MAAM,0BAA0B,GAAG;IACxC,iBAAiB,EAAE,mDAAmD;CACvE,CAAC;AAKF,MAAM,OAAO,qBAAqB;IAOb,KAAK;IACL,IAAI;IAPf,MAAM,CAAU,QAAQ,GAAG,aAAa,CAAC,GAAG,CAClD,OAAO,EACP,0BAA0B,CAAC,iBAAiB,CAC7C,CAAC;IAEF,YACmB,KAAY,EACZ,IAAkB;qBADlB,KAAK;oBACL,IAAI;IACpB,CAAC;IAEJ,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAkB;QACnC,MAAM,OAAO,GAAG,MAAM,qBAAqB,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;QAE/D,OAAO,IAAI,qBAAqB,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAC1D,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,MAAyB;;;YAClC,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,KAAK,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;YAE/E,MAAM,QAAQ,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;YACrC,MAAM,SAAS,GAAG,KAAK,CAAC,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC;YAEtE,MAAM,SAAS,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC,YAAY,EAAE,CAAC;YACrD,MAAM,MAAM,GAAG,CAAC,SAAS,KAAK,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAqC,CAAC;YAE9F,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;YAChD,MAAM,OAAO,kCAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,QAAA,CAAC;YAE/D,MAAM,QAAQ,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,CAAC;YACpF,MAAM,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;YAErD,OAAO,KAAK,CAAC;;;;;;;;;IACf,CAAC;CACF"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"image-compressor-sharp.adapter.d.ts","sourceRoot":"","sources":["../src/image-compressor-sharp.adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAC;AAG3C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,KAAK,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAE5F,eAAO,MAAM,gCAAgC;IAC3C,iBAAiB;CAClB,CAAC;AAEF,KAAK,YAAY,GAAG;IAAE,WAAW,EAAE,eAAe,CAAA;CAAE,CAAC;AAGrD,qBAAa,2BAA4B,YAAW,mBAAmB;IAQnE,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,IAAI;IARvB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAM;IAC7C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAG9B;IAEF,OAAO,eAGH;IAEJ,OAAa,KAAK,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,2BAA2B,CAAC,CAI3E;IAEK,QAAQ,CAAC,MAAM,EAAE,uBAAuB,GAAG,OAAO,CAAC,KAAK,CAAC,gBAAgB,GAAG,KAAK,CAAC,gBAAgB,CAAC,CAiBxG;CACF"}
|
|
@@ -1,94 +0,0 @@
|
|
|
1
|
-
var __addDisposableResource = (this && this.__addDisposableResource) || function (env, value, async) {
|
|
2
|
-
if (value !== null && value !== void 0) {
|
|
3
|
-
if (typeof value !== "object" && typeof value !== "function") throw new TypeError("Object expected.");
|
|
4
|
-
var dispose, inner;
|
|
5
|
-
if (async) {
|
|
6
|
-
if (!Symbol.asyncDispose) throw new TypeError("Symbol.asyncDispose is not defined.");
|
|
7
|
-
dispose = value[Symbol.asyncDispose];
|
|
8
|
-
}
|
|
9
|
-
if (dispose === void 0) {
|
|
10
|
-
if (!Symbol.dispose) throw new TypeError("Symbol.dispose is not defined.");
|
|
11
|
-
dispose = value[Symbol.dispose];
|
|
12
|
-
if (async) inner = dispose;
|
|
13
|
-
}
|
|
14
|
-
if (typeof dispose !== "function") throw new TypeError("Object not disposable.");
|
|
15
|
-
if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };
|
|
16
|
-
env.stack.push({ value: value, dispose: dispose, async: async });
|
|
17
|
-
}
|
|
18
|
-
else if (async) {
|
|
19
|
-
env.stack.push({ async: true });
|
|
20
|
-
}
|
|
21
|
-
return value;
|
|
22
|
-
};
|
|
23
|
-
var __disposeResources = (this && this.__disposeResources) || (function (SuppressedError) {
|
|
24
|
-
return function (env) {
|
|
25
|
-
function fail(e) {
|
|
26
|
-
env.error = env.hasError ? new SuppressedError(e, env.error, "An error was suppressed during disposal.") : e;
|
|
27
|
-
env.hasError = true;
|
|
28
|
-
}
|
|
29
|
-
var r, s = 0;
|
|
30
|
-
function next() {
|
|
31
|
-
while (r = env.stack.pop()) {
|
|
32
|
-
try {
|
|
33
|
-
if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);
|
|
34
|
-
if (r.dispose) {
|
|
35
|
-
var result = r.dispose.call(r.value);
|
|
36
|
-
if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });
|
|
37
|
-
}
|
|
38
|
-
else s |= 1;
|
|
39
|
-
}
|
|
40
|
-
catch (e) {
|
|
41
|
-
fail(e);
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();
|
|
45
|
-
if (env.hasError) throw env.error;
|
|
46
|
-
}
|
|
47
|
-
return next();
|
|
48
|
-
};
|
|
49
|
-
})(typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
|
|
50
|
-
var e = new Error(message);
|
|
51
|
-
return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
|
|
52
|
-
});
|
|
53
|
-
import { DynamicImport } from "./dynamic-import.service";
|
|
54
|
-
export const ImageCompressorSharpAdapterError = {
|
|
55
|
-
MissingDependency: "image.compressor.sharp.adapter.error.missing.dependency",
|
|
56
|
-
};
|
|
57
|
-
export class ImageCompressorSharpAdapter {
|
|
58
|
-
sharp;
|
|
59
|
-
deps;
|
|
60
|
-
static DEFAULT_QUALITY = 85;
|
|
61
|
-
static importer = DynamicImport.for("sharp", ImageCompressorSharpAdapterError.MissingDependency);
|
|
62
|
-
constructor(sharp, deps) {
|
|
63
|
-
this.sharp = sharp;
|
|
64
|
-
this.deps = deps;
|
|
65
|
-
}
|
|
66
|
-
static async build(deps) {
|
|
67
|
-
const library = await ImageCompressorSharpAdapter.importer.resolve();
|
|
68
|
-
return new ImageCompressorSharpAdapter(library.default, deps);
|
|
69
|
-
}
|
|
70
|
-
async compress(recipe) {
|
|
71
|
-
const env_1 = { stack: [], error: void 0, hasError: false };
|
|
72
|
-
try {
|
|
73
|
-
const quality = recipe.quality ?? ImageCompressorSharpAdapter.DEFAULT_QUALITY;
|
|
74
|
-
const final = recipe.strategy === "output_path" ? recipe.output : recipe.input;
|
|
75
|
-
const filename = final.getFilename();
|
|
76
|
-
const temporary = final.withFilename(filename.withSuffix("-compressed"));
|
|
77
|
-
const extension = final.getFilename().getExtension();
|
|
78
|
-
const format = (extension === "jpg" ? "jpeg" : extension);
|
|
79
|
-
const pipeline = this.sharp(recipe.input.get());
|
|
80
|
-
const _sharp_ = __addDisposableResource(env_1, { [Symbol.dispose]: () => pipeline.destroy() }, false);
|
|
81
|
-
await pipeline.rotate().toFormat(format, { quality }).toFile(temporary.get());
|
|
82
|
-
await this.deps.FileRenamer.rename(temporary, final);
|
|
83
|
-
return final;
|
|
84
|
-
}
|
|
85
|
-
catch (e_1) {
|
|
86
|
-
env_1.error = e_1;
|
|
87
|
-
env_1.hasError = true;
|
|
88
|
-
}
|
|
89
|
-
finally {
|
|
90
|
-
__disposeResources(env_1);
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
//# sourceMappingURL=image-compressor-sharp.adapter.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"image-compressor-sharp.adapter.js","sourceRoot":"","sources":["../src/image-compressor-sharp.adapter.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAIzD,MAAM,CAAC,MAAM,gCAAgC,GAAG;IAC9C,iBAAiB,EAAE,yDAAyD;CAC7E,CAAC;AAKF,MAAM,OAAO,2BAA2B;IAQnB,KAAK;IACL,IAAI;IARf,MAAM,CAAU,eAAe,GAAG,EAAE,CAAC;IACrC,MAAM,CAAU,QAAQ,GAAG,aAAa,CAAC,GAAG,CAClD,OAAO,EACP,gCAAgC,CAAC,iBAAiB,CACnD,CAAC;IAEF,YACmB,KAAY,EACZ,IAAkB;qBADlB,KAAK;oBACL,IAAI;IACpB,CAAC;IAEJ,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAkB;QACnC,MAAM,OAAO,GAAG,MAAM,2BAA2B,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;QAErE,OAAO,IAAI,2BAA2B,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAChE,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,MAA+B;;;YAC5C,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,2BAA2B,CAAC,eAAe,CAAC;YAE9E,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,KAAK,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;YAC/E,MAAM,QAAQ,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;YACrC,MAAM,SAAS,GAAG,KAAK,CAAC,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC;YAEzE,MAAM,SAAS,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC,YAAY,EAAE,CAAC;YACrD,MAAM,MAAM,GAAG,CAAC,SAAS,KAAK,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAqC,CAAC;YAE9F,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;YAChD,MAAM,OAAO,kCAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,QAAA,CAAC;YAE/D,MAAM,QAAQ,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,CAAC;YAC9E,MAAM,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;YAErD,OAAO,KAAK,CAAC;;;;;;;;;IACf,CAAC;CACF"}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import type * as tools from "@bgord/tools";
|
|
2
|
-
import type { FileRenamerPort } from "./file-renamer.port";
|
|
3
|
-
import type { ImageExifClearPort, ImageExifClearStrategy } from "./image-exif-clear.port";
|
|
4
|
-
export declare const ImageExifClearSharpAdapterError: {
|
|
5
|
-
MissingDependency: string;
|
|
6
|
-
};
|
|
7
|
-
type Dependencies = {
|
|
8
|
-
FileRenamer: FileRenamerPort;
|
|
9
|
-
};
|
|
10
|
-
export declare class ImageExifClearSharpAdapter implements ImageExifClearPort {
|
|
11
|
-
private readonly sharp;
|
|
12
|
-
private readonly deps;
|
|
13
|
-
private static readonly importer;
|
|
14
|
-
private constructor();
|
|
15
|
-
static build(deps: Dependencies): Promise<ImageExifClearSharpAdapter>;
|
|
16
|
-
clear(recipe: ImageExifClearStrategy): Promise<tools.FilePathRelative | tools.FilePathAbsolute>;
|
|
17
|
-
}
|
|
18
|
-
export {};
|
|
19
|
-
//# sourceMappingURL=image-exif-clear-sharp.adapter.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"image-exif-clear-sharp.adapter.d.ts","sourceRoot":"","sources":["../src/image-exif-clear-sharp.adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAC;AAG3C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,KAAK,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AAE1F,eAAO,MAAM,+BAA+B;IAC1C,iBAAiB;CAClB,CAAC;AAEF,KAAK,YAAY,GAAG;IAAE,WAAW,EAAE,eAAe,CAAA;CAAE,CAAC;AAGrD,qBAAa,0BAA2B,YAAW,kBAAkB;IAOjE,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,IAAI;IAPvB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAG9B;IAEF,OAAO,eAGH;IAEJ,OAAa,KAAK,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,0BAA0B,CAAC,CAI1E;IAEK,KAAK,CAAC,MAAM,EAAE,sBAAsB,GAAG,OAAO,CAAC,KAAK,CAAC,gBAAgB,GAAG,KAAK,CAAC,gBAAgB,CAAC,CAapG;CACF"}
|
|
@@ -1,90 +0,0 @@
|
|
|
1
|
-
var __addDisposableResource = (this && this.__addDisposableResource) || function (env, value, async) {
|
|
2
|
-
if (value !== null && value !== void 0) {
|
|
3
|
-
if (typeof value !== "object" && typeof value !== "function") throw new TypeError("Object expected.");
|
|
4
|
-
var dispose, inner;
|
|
5
|
-
if (async) {
|
|
6
|
-
if (!Symbol.asyncDispose) throw new TypeError("Symbol.asyncDispose is not defined.");
|
|
7
|
-
dispose = value[Symbol.asyncDispose];
|
|
8
|
-
}
|
|
9
|
-
if (dispose === void 0) {
|
|
10
|
-
if (!Symbol.dispose) throw new TypeError("Symbol.dispose is not defined.");
|
|
11
|
-
dispose = value[Symbol.dispose];
|
|
12
|
-
if (async) inner = dispose;
|
|
13
|
-
}
|
|
14
|
-
if (typeof dispose !== "function") throw new TypeError("Object not disposable.");
|
|
15
|
-
if (inner) dispose = function() { try { inner.call(this); } catch (e) { return Promise.reject(e); } };
|
|
16
|
-
env.stack.push({ value: value, dispose: dispose, async: async });
|
|
17
|
-
}
|
|
18
|
-
else if (async) {
|
|
19
|
-
env.stack.push({ async: true });
|
|
20
|
-
}
|
|
21
|
-
return value;
|
|
22
|
-
};
|
|
23
|
-
var __disposeResources = (this && this.__disposeResources) || (function (SuppressedError) {
|
|
24
|
-
return function (env) {
|
|
25
|
-
function fail(e) {
|
|
26
|
-
env.error = env.hasError ? new SuppressedError(e, env.error, "An error was suppressed during disposal.") : e;
|
|
27
|
-
env.hasError = true;
|
|
28
|
-
}
|
|
29
|
-
var r, s = 0;
|
|
30
|
-
function next() {
|
|
31
|
-
while (r = env.stack.pop()) {
|
|
32
|
-
try {
|
|
33
|
-
if (!r.async && s === 1) return s = 0, env.stack.push(r), Promise.resolve().then(next);
|
|
34
|
-
if (r.dispose) {
|
|
35
|
-
var result = r.dispose.call(r.value);
|
|
36
|
-
if (r.async) return s |= 2, Promise.resolve(result).then(next, function(e) { fail(e); return next(); });
|
|
37
|
-
}
|
|
38
|
-
else s |= 1;
|
|
39
|
-
}
|
|
40
|
-
catch (e) {
|
|
41
|
-
fail(e);
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
if (s === 1) return env.hasError ? Promise.reject(env.error) : Promise.resolve();
|
|
45
|
-
if (env.hasError) throw env.error;
|
|
46
|
-
}
|
|
47
|
-
return next();
|
|
48
|
-
};
|
|
49
|
-
})(typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
|
|
50
|
-
var e = new Error(message);
|
|
51
|
-
return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
|
|
52
|
-
});
|
|
53
|
-
import { DynamicImport } from "./dynamic-import.service";
|
|
54
|
-
export const ImageExifClearSharpAdapterError = {
|
|
55
|
-
MissingDependency: "image.exif.clear.sharp.adapter.error.missing.dependency",
|
|
56
|
-
};
|
|
57
|
-
export class ImageExifClearSharpAdapter {
|
|
58
|
-
sharp;
|
|
59
|
-
deps;
|
|
60
|
-
static importer = DynamicImport.for("sharp", ImageExifClearSharpAdapterError.MissingDependency);
|
|
61
|
-
constructor(sharp, deps) {
|
|
62
|
-
this.sharp = sharp;
|
|
63
|
-
this.deps = deps;
|
|
64
|
-
}
|
|
65
|
-
static async build(deps) {
|
|
66
|
-
const library = await ImageExifClearSharpAdapter.importer.resolve();
|
|
67
|
-
return new ImageExifClearSharpAdapter(library.default, deps);
|
|
68
|
-
}
|
|
69
|
-
async clear(recipe) {
|
|
70
|
-
const env_1 = { stack: [], error: void 0, hasError: false };
|
|
71
|
-
try {
|
|
72
|
-
const final = recipe.strategy === "output_path" ? recipe.output : recipe.input;
|
|
73
|
-
const filename = final.getFilename();
|
|
74
|
-
const temporary = final.withFilename(filename.withSuffix("-exif-cleared"));
|
|
75
|
-
const pipeline = this.sharp(recipe.input.get());
|
|
76
|
-
const _sharp_ = __addDisposableResource(env_1, { [Symbol.dispose]: () => pipeline.destroy() }, false);
|
|
77
|
-
await pipeline.rotate().toFile(temporary.get());
|
|
78
|
-
await this.deps.FileRenamer.rename(temporary, final);
|
|
79
|
-
return final;
|
|
80
|
-
}
|
|
81
|
-
catch (e_1) {
|
|
82
|
-
env_1.error = e_1;
|
|
83
|
-
env_1.hasError = true;
|
|
84
|
-
}
|
|
85
|
-
finally {
|
|
86
|
-
__disposeResources(env_1);
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
//# sourceMappingURL=image-exif-clear-sharp.adapter.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"image-exif-clear-sharp.adapter.js","sourceRoot":"","sources":["../src/image-exif-clear-sharp.adapter.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAIzD,MAAM,CAAC,MAAM,+BAA+B,GAAG;IAC7C,iBAAiB,EAAE,yDAAyD;CAC7E,CAAC;AAKF,MAAM,OAAO,0BAA0B;IAOlB,KAAK;IACL,IAAI;IAPf,MAAM,CAAU,QAAQ,GAAG,aAAa,CAAC,GAAG,CAClD,OAAO,EACP,+BAA+B,CAAC,iBAAiB,CAClD,CAAC;IAEF,YACmB,KAAY,EACZ,IAAkB;qBADlB,KAAK;oBACL,IAAI;IACpB,CAAC;IAEJ,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAkB;QACnC,MAAM,OAAO,GAAG,MAAM,0BAA0B,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;QAEpE,OAAO,IAAI,0BAA0B,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAC/D,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,MAA8B;;;YACxC,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,KAAK,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;YAE/E,MAAM,QAAQ,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;YACrC,MAAM,SAAS,GAAG,KAAK,CAAC,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC,CAAC;YAE3E,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;YAChD,MAAM,OAAO,kCAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,QAAA,CAAC;YAE/D,MAAM,QAAQ,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,CAAC;YAChD,MAAM,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;YAErD,OAAO,KAAK,CAAC;;;;;;;;;IACf,CAAC;CACF"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"image-formatter-sharp.adapter.d.ts","sourceRoot":"","sources":["../src/image-formatter-sharp.adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAC;AAG3C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,KAAK,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAEzF,eAAO,MAAM,+BAA+B;IAC1C,iBAAiB;CAClB,CAAC;AAEF,KAAK,YAAY,GAAG;IAAE,WAAW,EAAE,eAAe,CAAC;IAAC,WAAW,EAAE,eAAe,CAAA;CAAE,CAAC;AAGnF,qBAAa,0BAA2B,YAAW,kBAAkB;IAOjE,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,IAAI;IAPvB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAG9B;IAEF,OAAO,eAGH;IAEJ,OAAa,KAAK,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,0BAA0B,CAAC,CAI1E;IAEK,MAAM,CAAC,MAAM,EAAE,sBAAsB,GAAG,OAAO,CAAC,KAAK,CAAC,gBAAgB,GAAG,KAAK,CAAC,gBAAgB,CAAC,CAsBrG;CACF"}
|