@bgord/bun 0.21.6 → 0.22.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/dist/image-blur-noop.adapter.d.ts +5 -0
- package/dist/image-blur-noop.adapter.d.ts.map +1 -0
- package/dist/image-blur-noop.adapter.js +6 -0
- package/dist/image-blur-noop.adapter.js.map +1 -0
- package/dist/image-blur-sharp.adapter.d.ts +5 -0
- package/dist/image-blur-sharp.adapter.d.ts.map +1 -0
- package/dist/image-blur-sharp.adapter.js +79 -0
- package/dist/image-blur-sharp.adapter.js.map +1 -0
- package/dist/image-blur.port.d.ts +18 -0
- package/dist/image-blur.port.d.ts.map +1 -0
- package/dist/image-blur.port.js +2 -0
- package/dist/image-blur.port.js.map +1 -0
- package/dist/image-compressor-noop.adapter.d.ts +5 -0
- package/dist/image-compressor-noop.adapter.d.ts.map +1 -0
- package/dist/image-compressor-noop.adapter.js +6 -0
- package/dist/image-compressor-noop.adapter.js.map +1 -0
- package/dist/image-compressor-sharp.adapter.d.ts +6 -0
- package/dist/image-compressor-sharp.adapter.d.ts.map +1 -0
- package/dist/image-compressor-sharp.adapter.js +81 -0
- package/dist/image-compressor-sharp.adapter.js.map +1 -0
- package/dist/image-compressor.port.d.ts +18 -0
- package/dist/image-compressor.port.d.ts.map +1 -0
- package/dist/image-compressor.port.js +2 -0
- package/dist/image-compressor.port.js.map +1 -0
- package/dist/image-exif-clear-noop.adapter.d.ts +5 -0
- package/dist/image-exif-clear-noop.adapter.d.ts.map +1 -0
- package/dist/image-exif-clear-noop.adapter.js +6 -0
- package/dist/image-exif-clear-noop.adapter.js.map +1 -0
- package/dist/image-exif-clear-sharp.adapter.d.ts +5 -0
- package/dist/image-exif-clear-sharp.adapter.d.ts.map +1 -0
- package/dist/image-exif-clear-sharp.adapter.js +77 -0
- package/dist/image-exif-clear-sharp.adapter.js.map +1 -0
- package/dist/image-exif-clear.port.d.ts +16 -0
- package/dist/image-exif-clear.port.d.ts.map +1 -0
- package/dist/image-exif-clear.port.js +2 -0
- package/dist/image-exif-clear.port.js.map +1 -0
- package/dist/image-formatter-noop.adapter.d.ts +6 -0
- package/dist/image-formatter-noop.adapter.d.ts.map +1 -0
- package/dist/image-formatter-noop.adapter.js +8 -0
- package/dist/image-formatter-noop.adapter.js.map +1 -0
- package/dist/image-formatter-sharp.adapter.d.ts +5 -0
- package/dist/image-formatter-sharp.adapter.d.ts.map +1 -0
- package/dist/image-formatter-sharp.adapter.js +83 -0
- package/dist/image-formatter-sharp.adapter.js.map +1 -0
- package/dist/image-formatter.port.d.ts +17 -0
- package/dist/image-formatter.port.d.ts.map +1 -0
- package/dist/image-formatter.port.js +2 -0
- package/dist/image-formatter.port.js.map +1 -0
- package/dist/image-info-noop.adapter.d.ts +13 -0
- package/dist/image-info-noop.adapter.d.ts.map +1 -0
- package/dist/image-info-noop.adapter.js +16 -0
- package/dist/image-info-noop.adapter.js.map +1 -0
- package/dist/image-info-sharp.adapter.d.ts +11 -0
- package/dist/image-info-sharp.adapter.d.ts.map +1 -0
- package/dist/image-info-sharp.adapter.js +83 -0
- package/dist/image-info-sharp.adapter.js.map +1 -0
- package/dist/image-info.port.d.ts +12 -0
- package/dist/image-info.port.d.ts.map +1 -0
- package/dist/image-info.port.js +2 -0
- package/dist/image-info.port.js.map +1 -0
- package/dist/image-resizer-noop.adapter.d.ts +5 -0
- package/dist/image-resizer-noop.adapter.d.ts.map +1 -0
- package/dist/image-resizer-noop.adapter.js +6 -0
- package/dist/image-resizer-noop.adapter.js.map +1 -0
- package/dist/image-resizer-sharp.adapter.d.ts +5 -0
- package/dist/image-resizer-sharp.adapter.d.ts.map +1 -0
- package/dist/image-resizer-sharp.adapter.js +88 -0
- package/dist/image-resizer-sharp.adapter.js.map +1 -0
- package/dist/image-resizer.port.d.ts +18 -0
- package/dist/image-resizer.port.d.ts.map +1 -0
- package/dist/image-resizer.port.js +2 -0
- package/dist/image-resizer.port.js.map +1 -0
- package/dist/index.d.ts +18 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +18 -2
- package/dist/index.js.map +1 -1
- package/dist/open-graph.service.d.ts +0 -5
- package/dist/open-graph.service.d.ts.map +1 -1
- package/dist/open-graph.service.js +2 -10
- package/dist/open-graph.service.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +5 -5
- package/readme.md +18 -2
- package/src/image-blur-noop.adapter.ts +7 -0
- package/src/image-blur-sharp.adapter.ts +24 -0
- package/src/image-blur.port.ts +20 -0
- package/src/image-compressor-noop.adapter.ts +7 -0
- package/src/image-compressor-sharp.adapter.ts +26 -0
- package/src/image-compressor.port.ts +20 -0
- package/src/image-exif-clear-noop.adapter.ts +7 -0
- package/src/image-exif-clear-sharp.adapter.ts +20 -0
- package/src/image-exif-clear.port.ts +18 -0
- package/src/image-formatter-noop.adapter.ts +10 -0
- package/src/image-formatter-sharp.adapter.ts +29 -0
- package/src/image-formatter.port.ts +19 -0
- package/src/image-info-noop.adapter.ts +15 -0
- package/src/image-info-sharp.adapter.ts +27 -0
- package/src/image-info.port.ts +7 -0
- package/src/image-resizer-noop.adapter.ts +7 -0
- package/src/image-resizer-sharp.adapter.ts +32 -0
- package/src/image-resizer.port.ts +20 -0
- package/src/index.ts +18 -2
- package/src/open-graph.service.ts +12 -12
- package/dist/image-compressor.service.d.ts +0 -14
- package/dist/image-compressor.service.d.ts.map +0 -1
- package/dist/image-compressor.service.js +0 -19
- package/dist/image-compressor.service.js.map +0 -1
- package/dist/image-exif.service.d.ts +0 -18
- package/dist/image-exif.service.d.ts.map +0 -1
- package/dist/image-exif.service.js +0 -21
- package/dist/image-exif.service.js.map +0 -1
- package/src/image-compressor.service.ts +0 -30
- package/src/image-exif.service.ts +0 -36
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import * as tools from "@bgord/tools";
|
|
2
|
+
export class ImageInfoNoopAdapter {
|
|
3
|
+
mime;
|
|
4
|
+
constructor(mime) {
|
|
5
|
+
this.mime = mime;
|
|
6
|
+
}
|
|
7
|
+
async inspect(_filePath) {
|
|
8
|
+
return {
|
|
9
|
+
width: tools.Width.parse(400),
|
|
10
|
+
height: tools.Height.parse(400),
|
|
11
|
+
mime: this.mime,
|
|
12
|
+
size: tools.Size.fromBytes(0),
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=image-info-noop.adapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"image-info-noop.adapter.js","sourceRoot":"","sources":["../src/image-info-noop.adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAGtC,MAAM,OAAO,oBAAoB;IACF;IAA7B,YAA6B,IAAgB;QAAhB,SAAI,GAAJ,IAAI,CAAY;IAAG,CAAC;IAEjD,KAAK,CAAC,OAAO,CAAC,SAA0D;QACtE,OAAO;YACL,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC;YAC7B,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC;YAC/B,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;SAC9B,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import * as tools from "@bgord/tools";
|
|
2
|
+
import type { ImageInfoPort } from "./image-info.port";
|
|
3
|
+
export declare class ImageInfoSharpAdapter implements ImageInfoPort {
|
|
4
|
+
inspect(filePath: tools.FilePathRelative | tools.FilePathAbsolute): Promise<{
|
|
5
|
+
width: number & import("zod/v4").$brand<"Width">;
|
|
6
|
+
height: number & import("zod/v4").$brand<"Height">;
|
|
7
|
+
mime: tools.Mime;
|
|
8
|
+
size: tools.Size;
|
|
9
|
+
}>;
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=image-info-sharp.adapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"image-info-sharp.adapter.d.ts","sourceRoot":"","sources":["../src/image-info-sharp.adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAEtC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEvD,qBAAa,qBAAsB,YAAW,aAAa;IACnD,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC,gBAAgB,GAAG,KAAK,CAAC,gBAAgB;;;;;;CAqBxE"}
|
|
@@ -0,0 +1,83 @@
|
|
|
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 * as tools from "@bgord/tools";
|
|
54
|
+
import sharp from "sharp";
|
|
55
|
+
export class ImageInfoSharpAdapter {
|
|
56
|
+
async inspect(filePath) {
|
|
57
|
+
const env_1 = { stack: [], error: void 0, hasError: false };
|
|
58
|
+
try {
|
|
59
|
+
const path = filePath.get();
|
|
60
|
+
const image = sharp(path);
|
|
61
|
+
const _sharp_ = __addDisposableResource(env_1, {
|
|
62
|
+
[Symbol.dispose]: () => image.destroy(),
|
|
63
|
+
}, false);
|
|
64
|
+
const metadata = await image.metadata();
|
|
65
|
+
const extension = tools.ExtensionSchema.parse(metadata.format);
|
|
66
|
+
const sizeBytes = Bun.file(path).size;
|
|
67
|
+
return {
|
|
68
|
+
width: tools.Width.parse(metadata.width),
|
|
69
|
+
height: tools.Height.parse(metadata.height),
|
|
70
|
+
mime: tools.Mime.fromExtension(extension),
|
|
71
|
+
size: tools.Size.fromBytes(sizeBytes),
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
catch (e_1) {
|
|
75
|
+
env_1.error = e_1;
|
|
76
|
+
env_1.hasError = true;
|
|
77
|
+
}
|
|
78
|
+
finally {
|
|
79
|
+
__disposeResources(env_1);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=image-info-sharp.adapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"image-info-sharp.adapter.js","sourceRoot":"","sources":["../src/image-info-sharp.adapter.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,MAAM,OAAO,qBAAqB;IAChC,KAAK,CAAC,OAAO,CAAC,QAAyD;;;YACrE,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC;YAE5B,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;YAE1B,MAAM,OAAO,kCAAG;gBACd,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE;aACxC,QAAA,CAAC;YAEF,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,QAAQ,EAAE,CAAC;YACxC,MAAM,SAAS,GAAG,KAAK,CAAC,eAAe,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;YAE/D,MAAM,SAAS,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC;YAEtC,OAAO;gBACL,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC;gBACxC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC;gBAC3C,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC;gBACzC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC;aACtC,CAAC;;;;;;;;;KACH;CACF"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type * as tools from "@bgord/tools";
|
|
2
|
+
type ImageInfoType = {
|
|
3
|
+
height: tools.HeightType;
|
|
4
|
+
width: tools.WidthType;
|
|
5
|
+
mime: tools.Mime;
|
|
6
|
+
size: tools.Size;
|
|
7
|
+
};
|
|
8
|
+
export interface ImageInfoPort {
|
|
9
|
+
inspect(filePath: tools.FilePathRelative | tools.FilePathAbsolute): Promise<ImageInfoType>;
|
|
10
|
+
}
|
|
11
|
+
export {};
|
|
12
|
+
//# sourceMappingURL=image-info.port.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"image-info.port.d.ts","sourceRoot":"","sources":["../src/image-info.port.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAC;AAE3C,KAAK,aAAa,GAAG;IAAE,MAAM,EAAE,KAAK,CAAC,UAAU,CAAC;IAAC,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC;IAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC;IAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAA;CAAE,CAAC;AAE9G,MAAM,WAAW,aAAa;IAC5B,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC,gBAAgB,GAAG,KAAK,CAAC,gBAAgB,GAAG,OAAO,CAAC,aAAa,CAAC,CAAC;CAC5F"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"image-info.port.js","sourceRoot":"","sources":["../src/image-info.port.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { ImageResizerPort, ImageResizerStrategy } from "./image-resizer.port";
|
|
2
|
+
export declare class ImageResizerNoopAdapter implements ImageResizerPort {
|
|
3
|
+
resize(recipe: ImageResizerStrategy): Promise<import("@bgord/tools").FilePathRelative | import("@bgord/tools").FilePathAbsolute>;
|
|
4
|
+
}
|
|
5
|
+
//# sourceMappingURL=image-resizer-noop.adapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"image-resizer-noop.adapter.d.ts","sourceRoot":"","sources":["../src/image-resizer-noop.adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAEnF,qBAAa,uBAAwB,YAAW,gBAAgB;IACxD,MAAM,CAAC,MAAM,EAAE,oBAAoB;CAG1C"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"image-resizer-noop.adapter.js","sourceRoot":"","sources":["../src/image-resizer-noop.adapter.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,uBAAuB;IAClC,KAAK,CAAC,MAAM,CAAC,MAA4B;QACvC,OAAO,MAAM,CAAC,QAAQ,KAAK,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;IAC1E,CAAC;CACF"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { ImageResizerPort, ImageResizerStrategy } from "./image-resizer.port";
|
|
2
|
+
export declare class ImageResizerSharpAdapter implements ImageResizerPort {
|
|
3
|
+
resize(recipe: ImageResizerStrategy): Promise<import("@bgord/tools").FilePathRelative | import("@bgord/tools").FilePathAbsolute>;
|
|
4
|
+
}
|
|
5
|
+
//# sourceMappingURL=image-resizer-sharp.adapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"image-resizer-sharp.adapter.d.ts","sourceRoot":"","sources":["../src/image-resizer-sharp.adapter.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAEnF,qBAAa,wBAAyB,YAAW,gBAAgB;IACzD,MAAM,CAAC,MAAM,EAAE,oBAAoB;CA0B1C"}
|
|
@@ -0,0 +1,88 @@
|
|
|
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 fs from "node:fs/promises";
|
|
54
|
+
import sharp from "sharp";
|
|
55
|
+
export class ImageResizerSharpAdapter {
|
|
56
|
+
async resize(recipe) {
|
|
57
|
+
const env_1 = { stack: [], error: void 0, hasError: false };
|
|
58
|
+
try {
|
|
59
|
+
const final = recipe.strategy === "output_path" ? recipe.output : recipe.input;
|
|
60
|
+
const filename = final.getFilename();
|
|
61
|
+
const temporary = final.withFilename(filename.withSuffix("-resized"));
|
|
62
|
+
const extension = final.getFilename().getExtension();
|
|
63
|
+
const format = (extension === "jpg" ? "jpeg" : extension);
|
|
64
|
+
const pipeline = sharp(recipe.input.get());
|
|
65
|
+
const _sharp_ = __addDisposableResource(env_1, { [Symbol.dispose]: () => pipeline.destroy() }, false);
|
|
66
|
+
await pipeline
|
|
67
|
+
.rotate()
|
|
68
|
+
.resize({
|
|
69
|
+
width: recipe.maxSide,
|
|
70
|
+
height: recipe.maxSide,
|
|
71
|
+
fit: "inside",
|
|
72
|
+
withoutEnlargement: true,
|
|
73
|
+
})
|
|
74
|
+
.toFormat(format)
|
|
75
|
+
.toFile(temporary.get());
|
|
76
|
+
await fs.rename(temporary.get(), final.get());
|
|
77
|
+
return final;
|
|
78
|
+
}
|
|
79
|
+
catch (e_1) {
|
|
80
|
+
env_1.error = e_1;
|
|
81
|
+
env_1.hasError = true;
|
|
82
|
+
}
|
|
83
|
+
finally {
|
|
84
|
+
__disposeResources(env_1);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
//# sourceMappingURL=image-resizer-sharp.adapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"image-resizer-sharp.adapter.js","sourceRoot":"","sources":["../src/image-resizer-sharp.adapter.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAClC,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,MAAM,OAAO,wBAAwB;IACnC,KAAK,CAAC,MAAM,CAAC,MAA4B;;;YACvC,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,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,CAA2B,CAAC;YAEpF,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;YAC3C,MAAM,OAAO,kCAAG,EAAE,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,QAAA,CAAC;YAE/D,MAAM,QAAQ;iBACX,MAAM,EAAE;iBACR,MAAM,CAAC;gBACN,KAAK,EAAE,MAAM,CAAC,OAAO;gBACrB,MAAM,EAAE,MAAM,CAAC,OAAO;gBACtB,GAAG,EAAE,QAAQ;gBACb,kBAAkB,EAAE,IAAI;aACzB,CAAC;iBACD,QAAQ,CAAC,MAAM,CAAC;iBAChB,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,CAAC;YAE3B,MAAM,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;YAE9C,OAAO,KAAK,CAAC;;;;;;;;;KACd;CACF"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type * as tools from "@bgord/tools";
|
|
2
|
+
type ImageResizerOutputPathStrategy = {
|
|
3
|
+
strategy: "output_path";
|
|
4
|
+
input: tools.FilePathRelative | tools.FilePathAbsolute;
|
|
5
|
+
output: tools.FilePathRelative | tools.FilePathAbsolute;
|
|
6
|
+
maxSide: number;
|
|
7
|
+
};
|
|
8
|
+
type ImageResizerInPlaceStrategy = {
|
|
9
|
+
strategy: "in_place";
|
|
10
|
+
input: tools.FilePathRelative | tools.FilePathAbsolute;
|
|
11
|
+
maxSide: number;
|
|
12
|
+
};
|
|
13
|
+
export type ImageResizerStrategy = ImageResizerOutputPathStrategy | ImageResizerInPlaceStrategy;
|
|
14
|
+
export interface ImageResizerPort {
|
|
15
|
+
resize(recipe: ImageResizerStrategy): Promise<tools.FilePathRelative | tools.FilePathAbsolute>;
|
|
16
|
+
}
|
|
17
|
+
export {};
|
|
18
|
+
//# sourceMappingURL=image-resizer.port.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"image-resizer.port.d.ts","sourceRoot":"","sources":["../src/image-resizer.port.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAC;AAE3C,KAAK,8BAA8B,GAAG;IACpC,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,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,KAAK,2BAA2B,GAAG;IACjC,QAAQ,EAAE,UAAU,CAAC;IACrB,KAAK,EAAE,KAAK,CAAC,gBAAgB,GAAG,KAAK,CAAC,gBAAgB,CAAC;IACvD,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,oBAAoB,GAAG,8BAA8B,GAAG,2BAA2B,CAAC;AAEhG,MAAM,WAAW,gBAAgB;IAC/B,MAAM,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,KAAK,CAAC,gBAAgB,GAAG,KAAK,CAAC,gBAAgB,CAAC,CAAC;CAChG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"image-resizer.port.js","sourceRoot":"","sources":["../src/image-resizer.port.ts"],"names":[],"mappings":""}
|
package/dist/index.d.ts
CHANGED
|
@@ -35,8 +35,24 @@ export * from "./gzip.service";
|
|
|
35
35
|
export * from "./healthcheck.service";
|
|
36
36
|
export * from "./http-logger.middleware";
|
|
37
37
|
export * from "./i18n.service";
|
|
38
|
-
export * from "./image-
|
|
39
|
-
export * from "./image-
|
|
38
|
+
export * from "./image-blur.port";
|
|
39
|
+
export * from "./image-blur-noop.adapter";
|
|
40
|
+
export * from "./image-blur-sharp.adapter";
|
|
41
|
+
export * from "./image-compressor.port";
|
|
42
|
+
export * from "./image-compressor-noop.adapter";
|
|
43
|
+
export * from "./image-compressor-sharp.adapter";
|
|
44
|
+
export * from "./image-exif-clear.port";
|
|
45
|
+
export * from "./image-exif-clear-noop.adapter";
|
|
46
|
+
export * from "./image-exif-clear-sharp.adapter";
|
|
47
|
+
export * from "./image-formatter.port";
|
|
48
|
+
export * from "./image-formatter-noop.adapter";
|
|
49
|
+
export * from "./image-formatter-sharp.adapter";
|
|
50
|
+
export * from "./image-info.port";
|
|
51
|
+
export * from "./image-info-noop.adapter";
|
|
52
|
+
export * from "./image-info-sharp.adapter";
|
|
53
|
+
export * from "./image-resizer.port";
|
|
54
|
+
export * from "./image-resizer-noop.adapter";
|
|
55
|
+
export * from "./image-resizer-sharp.adapter";
|
|
40
56
|
export * from "./invariant.service";
|
|
41
57
|
export * from "./invariant-error-handler.service";
|
|
42
58
|
export * from "./jobs.service";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,OAAO,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC;AACrC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,iCAAiC,CAAC;AAChD,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iCAAiC,CAAC;AAChD,cAAc,aAAa,CAAC;AAC5B,cAAc,4BAA4B,CAAC;AAC3C,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,sBAAsB,CAAC;AACrC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,eAAe,CAAC;AAC9B,cAAc,wBAAwB,CAAC;AACvC,cAAc,kBAAkB,CAAC;AACjC,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,eAAe,CAAC;AAC9B,cAAc,0BAA0B,CAAC;AACzC,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,yBAAyB,CAAC;AACxC,cAAc,iCAAiC,CAAC;AAChD,cAAc,kCAAkC,CAAC;AACjD,cAAc,yBAAyB,CAAC;AACxC,cAAc,iCAAiC,CAAC;AAChD,cAAc,kCAAkC,CAAC;AACjD,cAAc,wBAAwB,CAAC;AACvC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,iCAAiC,CAAC;AAChD,cAAc,mBAAmB,CAAC;AAClC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sBAAsB,CAAC;AACrC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,qBAAqB,CAAC;AACpC,cAAc,mCAAmC,CAAC;AAClD,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,+BAA+B,CAAC;AAC9C,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,qCAAqC,CAAC;AACpD,cAAc,eAAe,CAAC;AAC9B,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,mCAAmC,CAAC;AAClD,cAAc,8BAA8B,CAAC;AAC7C,OAAO,KAAK,OAAO,MAAM,mBAAmB,CAAC;AAC7C,OAAO,KAAK,WAAW,MAAM,uBAAuB,CAAC;AACrD,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC;AACrC,cAAc,WAAW,CAAC;AAC1B,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,uCAAuC,CAAC;AACtD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,iBAAiB,CAAC;AAChC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,0BAA0B,CAAC;AACzC,cAAc,uBAAuB,CAAC;AACtC,cAAc,mCAAmC,CAAC;AAClD,cAAc,yCAAyC,CAAC;AACxD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,oCAAoC,CAAC;AACnD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,mCAAmC,CAAC;AAClD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,kBAAkB,CAAC;AACjC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,WAAW,CAAC;AAC1B,cAAc,mBAAmB,CAAC;AAClC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,kCAAkC,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -35,8 +35,24 @@ export * from "./gzip.service";
|
|
|
35
35
|
export * from "./healthcheck.service";
|
|
36
36
|
export * from "./http-logger.middleware";
|
|
37
37
|
export * from "./i18n.service";
|
|
38
|
-
export * from "./image-
|
|
39
|
-
export * from "./image-
|
|
38
|
+
export * from "./image-blur.port";
|
|
39
|
+
export * from "./image-blur-noop.adapter";
|
|
40
|
+
export * from "./image-blur-sharp.adapter";
|
|
41
|
+
export * from "./image-compressor.port";
|
|
42
|
+
export * from "./image-compressor-noop.adapter";
|
|
43
|
+
export * from "./image-compressor-sharp.adapter";
|
|
44
|
+
export * from "./image-exif-clear.port";
|
|
45
|
+
export * from "./image-exif-clear-noop.adapter";
|
|
46
|
+
export * from "./image-exif-clear-sharp.adapter";
|
|
47
|
+
export * from "./image-formatter.port";
|
|
48
|
+
export * from "./image-formatter-noop.adapter";
|
|
49
|
+
export * from "./image-formatter-sharp.adapter";
|
|
50
|
+
export * from "./image-info.port";
|
|
51
|
+
export * from "./image-info-noop.adapter";
|
|
52
|
+
export * from "./image-info-sharp.adapter";
|
|
53
|
+
export * from "./image-resizer.port";
|
|
54
|
+
export * from "./image-resizer-noop.adapter";
|
|
55
|
+
export * from "./image-resizer-sharp.adapter";
|
|
40
56
|
export * from "./invariant.service";
|
|
41
57
|
export * from "./invariant-error-handler.service";
|
|
42
58
|
export * from "./jobs.service";
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,KAAK,EAAE,MAAM,OAAO,CAAC;AACzC,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC;AACrC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,iCAAiC,CAAC;AAChD,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,iCAAiC,CAAC;AAChD,cAAc,aAAa,CAAC;AAC5B,cAAc,4BAA4B,CAAC;AAC3C,cAAc,iBAAiB,CAAC;AAChC,cAAc,oBAAoB,CAAC;AACnC,cAAc,0BAA0B,CAAC;AACzC,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,+BAA+B,CAAC;AAC9C,cAAc,sBAAsB,CAAC;AACrC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,eAAe,CAAC;AAC9B,cAAc,wBAAwB,CAAC;AACvC,cAAc,kBAAkB,CAAC;AACjC,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,eAAe,CAAC;AAC9B,cAAc,0BAA0B,CAAC;AACzC,cAAc,mBAAmB,CAAC;AAClC,cAAc,sBAAsB,CAAC;AACrC,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,gBAAgB,CAAC;AAC/B,cAAc,uBAAuB,CAAC;AACtC,cAAc,0BAA0B,CAAC;AACzC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mCAAmC,CAAC;AAClD,cAAc,gBAAgB,CAAC;AAC/B,cAAc,eAAe,CAAC;AAC9B,cAAc,+BAA+B,CAAC;AAC9C,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,gCAAgC,CAAC;AAC/C,cAAc,qCAAqC,CAAC;AACpD,cAAc,eAAe,CAAC;AAC9B,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,mCAAmC,CAAC;AAClD,cAAc,8BAA8B,CAAC;AAC7C,OAAO,KAAK,OAAO,MAAM,mBAAmB,CAAC;AAC7C,OAAO,KAAK,WAAW,MAAM,uBAAuB,CAAC;AACrD,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC;AACrC,cAAc,WAAW,CAAC;AAC1B,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,uCAAuC,CAAC;AACtD,cAAc,2BAA2B,CAAC;AAC1C,cAAc,iBAAiB,CAAC;AAChC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,0BAA0B,CAAC;AACzC,cAAc,uBAAuB,CAAC;AACtC,cAAc,mCAAmC,CAAC;AAClD,cAAc,yCAAyC,CAAC;AACxD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,oCAAoC,CAAC;AACnD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,mBAAmB,CAAC;AAClC,cAAc,qBAAqB,CAAC;AACpC,cAAc,uBAAuB,CAAC;AACtC,cAAc,mCAAmC,CAAC;AAClD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,sBAAsB,CAAC;AACrC,cAAc,wBAAwB,CAAC;AACvC,cAAc,kBAAkB,CAAC;AACjC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,WAAW,CAAC;AAC1B,cAAc,mBAAmB,CAAC;AAClC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,kCAAkC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { z } from "zod/v4";
|
|
2
|
-
import type { UrlWithoutTrailingSlashType } from "./url-wo-trailing-slash.vo";
|
|
3
2
|
export declare const OpenGraphTitleValue: z.ZodString;
|
|
4
3
|
export type OpenGraphTitleValueType = z.infer<typeof OpenGraphTitleValue>;
|
|
5
4
|
export declare const OpenGraphDescriptionValue: z.ZodString;
|
|
@@ -76,10 +75,6 @@ export declare class OpenGraphImage {
|
|
|
76
75
|
toString(): string;
|
|
77
76
|
}
|
|
78
77
|
declare class OpenGraphImageGenerator {
|
|
79
|
-
static generate(config: {
|
|
80
|
-
path: string;
|
|
81
|
-
BASE_URL: UrlWithoutTrailingSlashType;
|
|
82
|
-
}): Promise<OpenGraphImage>;
|
|
83
78
|
}
|
|
84
79
|
type OpenGraphConfigType = {
|
|
85
80
|
title: OpenGraphTitle;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"open-graph.service.d.ts","sourceRoot":"","sources":["../src/open-graph.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"open-graph.service.d.ts","sourceRoot":"","sources":["../src/open-graph.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { z } from "zod/v4";
|
|
2
|
-
import { ImageEXIF } from "./image-exif.service";
|
|
2
|
+
// import { ImageEXIF } from "./image-exif.service";
|
|
3
|
+
// import type { UrlWithoutTrailingSlashType } from "./url-wo-trailing-slash.vo";
|
|
3
4
|
export const OpenGraphTitleValue = z.string().min(1);
|
|
4
5
|
export const OpenGraphDescriptionValue = z.string().min(1);
|
|
5
6
|
export const OpenGraphUrlValue = z.string().min(1);
|
|
@@ -131,15 +132,6 @@ export class OpenGraphImage {
|
|
|
131
132
|
}
|
|
132
133
|
}
|
|
133
134
|
class OpenGraphImageGenerator {
|
|
134
|
-
static async generate(config) {
|
|
135
|
-
const exif = await ImageEXIF.read(config.path);
|
|
136
|
-
return new OpenGraphImage({
|
|
137
|
-
url: new OpenGraph.image.url(`${config.BASE_URL}/${exif.name}`),
|
|
138
|
-
type: new OpenGraph.image.type(exif.mimeType),
|
|
139
|
-
width: new OpenGraph.image.width(exif.width),
|
|
140
|
-
height: new OpenGraph.image.height(exif.height),
|
|
141
|
-
});
|
|
142
|
-
}
|
|
143
135
|
}
|
|
144
136
|
class OpenGraphGenerator {
|
|
145
137
|
static toString(config) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"open-graph.service.js","sourceRoot":"","sources":["../src/open-graph.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAC3B,
|
|
1
|
+
{"version":3,"file":"open-graph.service.js","sourceRoot":"","sources":["../src/open-graph.service.ts"],"names":[],"mappings":"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"}
|