@bgord/bun 1.19.13 → 1.19.14
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/ab-hono-noop.middleware.d.ts +2 -3
- package/dist/ab-hono-noop.middleware.d.ts.map +1 -1
- package/dist/ab-hono-noop.middleware.js +4 -9
- package/dist/ab-hono-noop.middleware.js.map +1 -1
- package/dist/ab-variant-name.vo.d.ts +9 -0
- package/dist/ab-variant-name.vo.d.ts.map +1 -0
- package/dist/ab-variant-name.vo.js +10 -0
- package/dist/ab-variant-name.vo.js.map +1 -0
- package/dist/ab-variant.vo.d.ts +2 -1
- package/dist/ab-variant.vo.d.ts.map +1 -1
- package/dist/ab-variant.vo.js.map +1 -1
- package/dist/basic-auth-password.vo.d.ts +2 -1
- package/dist/basic-auth-password.vo.d.ts.map +1 -1
- package/dist/basic-auth-password.vo.js +2 -1
- package/dist/basic-auth-password.vo.js.map +1 -1
- package/dist/basic-auth-username.vo.d.ts +2 -1
- package/dist/basic-auth-username.vo.d.ts.map +1 -1
- package/dist/basic-auth-username.vo.js +2 -1
- package/dist/basic-auth-username.vo.js.map +1 -1
- package/dist/cache-repository-redis.adapter.d.ts +1 -2
- package/dist/cache-repository-redis.adapter.d.ts.map +1 -1
- package/dist/cache-repository-redis.adapter.js.map +1 -1
- package/dist/certificate-inspector-noop.adapter.d.ts +2 -1
- package/dist/certificate-inspector-noop.adapter.d.ts.map +1 -1
- package/dist/certificate-inspector-noop.adapter.js.map +1 -1
- package/dist/certificate-inspector-tls.adapter.d.ts +2 -1
- package/dist/certificate-inspector-tls.adapter.d.ts.map +1 -1
- package/dist/certificate-inspector-tls.adapter.js.map +1 -1
- package/dist/certificate-inspector.port.d.ts +2 -1
- package/dist/certificate-inspector.port.d.ts.map +1 -1
- package/dist/csv-stringifier.adapter.d.ts.map +1 -1
- package/dist/csv-stringifier.adapter.js +1 -0
- package/dist/csv-stringifier.adapter.js.map +1 -1
- package/dist/environment-loader-encrypted.adapter.d.ts +1 -1
- package/dist/environment-loader-encrypted.adapter.d.ts.map +1 -1
- package/dist/environment-loader-encrypted.adapter.js +5 -7
- package/dist/environment-loader-encrypted.adapter.js.map +1 -1
- package/dist/environment-loader-noop.adapter.d.ts +1 -1
- package/dist/environment-loader-noop.adapter.d.ts.map +1 -1
- package/dist/environment-loader-noop.adapter.js +5 -7
- package/dist/environment-loader-noop.adapter.js.map +1 -1
- package/dist/environment-loader-process-safe.adapter.d.ts +1 -1
- package/dist/environment-loader-process-safe.adapter.d.ts.map +1 -1
- package/dist/environment-loader-process-safe.adapter.js +2 -9
- package/dist/environment-loader-process-safe.adapter.js.map +1 -1
- package/dist/environment-loader-process.adapter.d.ts +1 -1
- package/dist/environment-loader-process.adapter.d.ts.map +1 -1
- package/dist/environment-loader-process.adapter.js +5 -7
- package/dist/environment-loader-process.adapter.js.map +1 -1
- package/dist/environment-loader.port.d.ts +0 -3
- package/dist/environment-loader.port.d.ts.map +1 -1
- package/dist/environment-loader.port.js +1 -1
- package/dist/environment-loader.port.js.map +1 -1
- package/dist/event-upcaster-chain.adapter.d.ts.map +1 -1
- package/dist/event-upcaster-chain.adapter.js +5 -0
- package/dist/event-upcaster-chain.adapter.js.map +1 -1
- package/dist/event-validator-registry.adapter.d.ts +1 -1
- package/dist/event-validator-registry.adapter.d.ts.map +1 -1
- package/dist/event-validator-registry.adapter.js +2 -7
- package/dist/event-validator-registry.adapter.js.map +1 -1
- package/dist/event-validator-registry.port.d.ts +0 -3
- package/dist/event-validator-registry.port.d.ts.map +1 -1
- package/dist/event-validator-registry.port.js +1 -1
- package/dist/event-validator-registry.port.js.map +1 -1
- package/dist/file-uploader-hono.middleware.d.ts.map +1 -1
- package/dist/file-uploader-hono.middleware.js +4 -13
- package/dist/file-uploader-hono.middleware.js.map +1 -1
- package/dist/file-uploader.middleware.d.ts.map +1 -1
- package/dist/file-uploader.middleware.js +1 -0
- package/dist/file-uploader.middleware.js.map +1 -1
- package/dist/graceful-shutdown.service.d.ts +8 -4
- package/dist/graceful-shutdown.service.d.ts.map +1 -1
- package/dist/graceful-shutdown.service.js +27 -26
- package/dist/graceful-shutdown.service.js.map +1 -1
- package/dist/hostname.vo.d.ts +8 -0
- package/dist/hostname.vo.d.ts.map +1 -0
- package/dist/hostname.vo.js +9 -0
- package/dist/hostname.vo.js.map +1 -0
- package/dist/http-logger.middleware.js +1 -1
- package/dist/http-logger.middleware.js.map +1 -1
- package/dist/image-blur.adapter.d.ts +2 -0
- package/dist/image-blur.adapter.d.ts.map +1 -1
- package/dist/image-blur.adapter.js +1 -1
- package/dist/image-blur.adapter.js.map +1 -1
- package/dist/image-compressor.adapter.d.ts +2 -0
- package/dist/image-compressor.adapter.d.ts.map +1 -1
- package/dist/image-compressor.adapter.js +1 -1
- package/dist/image-compressor.adapter.js.map +1 -1
- package/dist/image-exif-clear.adapter.d.ts +2 -0
- package/dist/image-exif-clear.adapter.d.ts.map +1 -1
- package/dist/image-exif-clear.adapter.js +1 -1
- package/dist/image-exif-clear.adapter.js.map +1 -1
- package/dist/image-formatter.adapter.d.ts +2 -0
- package/dist/image-formatter.adapter.d.ts.map +1 -1
- package/dist/image-formatter.adapter.js +1 -1
- package/dist/image-formatter.adapter.js.map +1 -1
- package/dist/image-generator-web-view.adapter.d.ts.map +1 -1
- package/dist/image-generator-web-view.adapter.js +1 -0
- package/dist/image-generator-web-view.adapter.js.map +1 -1
- package/dist/image-grayscale.adapter.d.ts +2 -0
- package/dist/image-grayscale.adapter.d.ts.map +1 -1
- package/dist/image-grayscale.adapter.js +1 -1
- package/dist/image-grayscale.adapter.js.map +1 -1
- package/dist/image-processor.adapter.d.ts +2 -0
- package/dist/image-processor.adapter.d.ts.map +1 -1
- package/dist/image-processor.adapter.js +1 -1
- package/dist/image-processor.adapter.js.map +1 -1
- package/dist/image-resizer.adapter.d.ts +2 -0
- package/dist/image-resizer.adapter.d.ts.map +1 -1
- package/dist/image-resizer.adapter.js +1 -1
- package/dist/image-resizer.adapter.js.map +1 -1
- package/dist/image.types.d.ts +1 -1
- package/dist/image.types.d.ts.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/job-registry.adapter.d.ts +1 -1
- package/dist/job-registry.adapter.d.ts.map +1 -1
- package/dist/job-registry.adapter.js +2 -7
- package/dist/job-registry.adapter.js.map +1 -1
- package/dist/job-registry.port.d.ts +0 -3
- package/dist/job-registry.port.d.ts.map +1 -1
- package/dist/job-registry.port.js +1 -1
- package/dist/job-registry.port.js.map +1 -1
- package/dist/prerequisite-verifier-binary.adapter.js +1 -1
- package/dist/prerequisite-verifier-binary.adapter.js.map +1 -1
- package/dist/prerequisite-verifier-dns.adapter.d.ts +2 -1
- package/dist/prerequisite-verifier-dns.adapter.d.ts.map +1 -1
- package/dist/prerequisite-verifier-dns.adapter.js.map +1 -1
- package/dist/prerequisite-verifier-ssl-certificate-expiry.adapter.d.ts +2 -1
- package/dist/prerequisite-verifier-ssl-certificate-expiry.adapter.d.ts.map +1 -1
- package/dist/prerequisite-verifier-ssl-certificate-expiry.adapter.js.map +1 -1
- package/dist/prerequisite-verifier-translations.adapter.js +5 -5
- package/dist/prerequisite-verifier-translations.adapter.js.map +1 -1
- package/dist/reactive-config-file-json.adapter.d.ts +1 -1
- package/dist/reactive-config-file-json.adapter.d.ts.map +1 -1
- package/dist/reactive-config-file-json.adapter.js +2 -7
- package/dist/reactive-config-file-json.adapter.js.map +1 -1
- package/dist/reactive-config-noop.adapter.d.ts +1 -1
- package/dist/reactive-config-noop.adapter.d.ts.map +1 -1
- package/dist/reactive-config-noop.adapter.js +2 -7
- package/dist/reactive-config-noop.adapter.js.map +1 -1
- package/dist/reactive-config-with-fallback.adapter.d.ts +1 -1
- package/dist/reactive-config-with-fallback.adapter.d.ts.map +1 -1
- package/dist/reactive-config-with-fallback.adapter.js +2 -7
- package/dist/reactive-config-with-fallback.adapter.js.map +1 -1
- package/dist/reactive-config.port.d.ts +0 -3
- package/dist/reactive-config.port.d.ts.map +1 -1
- package/dist/reactive-config.port.js +1 -1
- package/dist/reactive-config.port.js.map +1 -1
- package/dist/remote-file-storage-disk.adapter.d.ts +2 -0
- package/dist/remote-file-storage-disk.adapter.d.ts.map +1 -1
- package/dist/remote-file-storage-disk.adapter.js +1 -1
- package/dist/remote-file-storage-disk.adapter.js.map +1 -1
- package/dist/shield-api-key.strategy.d.ts.map +1 -1
- package/dist/shield-api-key.strategy.js +6 -1
- package/dist/shield-api-key.strategy.js.map +1 -1
- package/dist/shield-basic-auth.strategy.d.ts.map +1 -1
- package/dist/shield-basic-auth.strategy.js +3 -2
- package/dist/shield-basic-auth.strategy.js.map +1 -1
- package/dist/shield-recaptcha.strategy.js +1 -1
- package/dist/shield-recaptcha.strategy.js.map +1 -1
- package/dist/sitemap-entry.vo.d.ts +1 -0
- package/dist/sitemap-entry.vo.d.ts.map +1 -1
- package/dist/sitemap-entry.vo.js +9 -1
- package/dist/sitemap-entry.vo.js.map +1 -1
- package/dist/standard-schema-validator.service.d.ts +5 -0
- package/dist/standard-schema-validator.service.d.ts.map +1 -0
- package/dist/standard-schema-validator.service.js +14 -0
- package/dist/standard-schema-validator.service.js.map +1 -0
- package/dist/subject-application-resolver.vo.d.ts +0 -1
- package/dist/subject-application-resolver.vo.d.ts.map +1 -1
- package/dist/subject-application-resolver.vo.js +2 -3
- package/dist/subject-application-resolver.vo.js.map +1 -1
- package/dist/subject-request-resolver.vo.d.ts +0 -1
- package/dist/subject-request-resolver.vo.d.ts.map +1 -1
- package/dist/subject-request-resolver.vo.js +2 -3
- package/dist/subject-request-resolver.vo.js.map +1 -1
- package/dist/temporary-file-absolute.adapter.d.ts +2 -0
- package/dist/temporary-file-absolute.adapter.d.ts.map +1 -1
- package/dist/temporary-file-absolute.adapter.js +1 -1
- package/dist/temporary-file-absolute.adapter.js.map +1 -1
- package/dist/timing.middleware.d.ts.map +1 -1
- package/dist/timing.middleware.js +1 -2
- package/dist/timing.middleware.js.map +1 -1
- package/dist/woodchopper-sampling-every-nth.strategy.d.ts.map +1 -1
- package/dist/woodchopper-sampling-every-nth.strategy.js +1 -3
- package/dist/woodchopper-sampling-every-nth.strategy.js.map +1 -1
- package/package.json +7 -7
- package/readme.md +3 -0
- package/src/ab-hono-noop.middleware.ts +2 -13
- package/src/ab-variant-name.vo.ts +17 -0
- package/src/ab-variant.vo.ts +2 -1
- package/src/basic-auth-password.vo.ts +5 -0
- package/src/basic-auth-username.vo.ts +5 -0
- package/src/cache-repository-redis.adapter.ts +1 -2
- package/src/certificate-inspector-noop.adapter.ts +2 -1
- package/src/certificate-inspector-tls.adapter.ts +2 -1
- package/src/certificate-inspector.port.ts +2 -1
- package/src/csv-stringifier.adapter.ts +1 -0
- package/src/environment-loader-encrypted.adapter.ts +9 -9
- package/src/environment-loader-noop.adapter.ts +9 -9
- package/src/environment-loader-process-safe.adapter.ts +8 -11
- package/src/environment-loader-process.adapter.ts +9 -9
- package/src/environment-loader.port.ts +0 -2
- package/src/event-upcaster-chain.adapter.ts +5 -0
- package/src/event-validator-registry.adapter.ts +3 -9
- package/src/event-validator-registry.port.ts +0 -2
- package/src/file-uploader-hono.middleware.ts +3 -17
- package/src/file-uploader.middleware.ts +1 -0
- package/src/graceful-shutdown.service.ts +27 -28
- package/src/hostname.vo.ts +15 -0
- package/src/http-logger.middleware.ts +1 -1
- package/src/image-blur.adapter.ts +9 -2
- package/src/image-compressor.adapter.ts +9 -2
- package/src/image-exif-clear.adapter.ts +9 -2
- package/src/image-formatter.adapter.ts +5 -1
- package/src/image-generator-web-view.adapter.ts +1 -0
- package/src/image-grayscale.adapter.ts +9 -2
- package/src/image-processor.adapter.ts +5 -1
- package/src/image-resizer.adapter.ts +9 -2
- package/src/image.types.ts +1 -1
- package/src/index.ts +2 -0
- package/src/job-registry.adapter.ts +3 -6
- package/src/job-registry.port.ts +0 -2
- package/src/prerequisite-verifier-binary.adapter.ts +1 -1
- package/src/prerequisite-verifier-dns.adapter.ts +2 -1
- package/src/prerequisite-verifier-ssl-certificate-expiry.adapter.ts +2 -1
- package/src/prerequisite-verifier-translations.adapter.ts +4 -4
- package/src/reactive-config-file-json.adapter.ts +3 -9
- package/src/reactive-config-noop.adapter.ts +3 -9
- package/src/reactive-config-with-fallback.adapter.ts +3 -9
- package/src/reactive-config.port.ts +0 -2
- package/src/remote-file-storage-disk.adapter.ts +5 -1
- package/src/shield-api-key.strategy.ts +7 -1
- package/src/shield-basic-auth.strategy.ts +4 -2
- package/src/shield-recaptcha.strategy.ts +1 -1
- package/src/sitemap-entry.vo.ts +11 -4
- package/src/standard-schema-validator.service.ts +15 -0
- package/src/subject-application-resolver.vo.ts +2 -6
- package/src/subject-request-resolver.vo.ts +2 -6
- package/src/temporary-file-absolute.adapter.ts +6 -1
- package/src/timing.middleware.ts +1 -3
- package/src/woodchopper-sampling-every-nth.strategy.ts +1 -2
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { StandardSchemaValidator } from "./standard-schema-validator.service";
|
|
2
2
|
const EventValidatorRegistryAdapterError = {
|
|
3
3
|
MissingName: "event.validator.registry.adapter.error.missing.name",
|
|
4
4
|
UnknownEvent: "event.validator.registry.adapter.error.unknown.event",
|
|
@@ -20,12 +20,7 @@ export class EventValidatorRegistryAdapter {
|
|
|
20
20
|
const schema = this.map.get(name);
|
|
21
21
|
if (!schema)
|
|
22
22
|
throw new Error(EventValidatorRegistryAdapterError.UnknownEvent);
|
|
23
|
-
|
|
24
|
-
if (result instanceof Promise)
|
|
25
|
-
throw new Error(EventValidatorRegistryError.NoAsyncSchema);
|
|
26
|
-
if (result.issues)
|
|
27
|
-
throw new Error(result.issues[0]?.message);
|
|
28
|
-
return result.value;
|
|
23
|
+
return StandardSchemaValidator.validate(schema, raw);
|
|
29
24
|
}
|
|
30
25
|
}
|
|
31
26
|
//# sourceMappingURL=event-validator-registry.adapter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event-validator-registry.adapter.js","sourceRoot":"","sources":["../src/event-validator-registry.adapter.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"event-validator-registry.adapter.js","sourceRoot":"","sources":["../src/event-validator-registry.adapter.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,uBAAuB,EAAE,MAAM,qCAAqC,CAAC;AAM9E,MAAM,kCAAkC,GAAG;IACzC,WAAW,EAAE,qDAAqD;IAClE,YAAY,EAAE,sDAAsD;CACrE,CAAC;AAEF,MAAM,OAAO,6BAA6B;IACvB,GAAG,CAA8D;IACzE,KAAK,CAAsC;IAEpD,YAAY,QAA2C;QACrD,IAAI,CAAC,GAAG,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC7C,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACrC,CAAC;IAED,OAAO,CAAC,IAA0B;QAChC,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IAED,QAAQ,CAAC,GAAY;QACnB,MAAM,IAAI,GAAI,GAAuC,CAAC,IAAI,CAAC;QAC3D,IAAI,CAAC,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,WAAW,CAAC,CAAC;QAE3E,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAClC,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,KAAK,CAAC,kCAAkC,CAAC,YAAY,CAAC,CAAC;QAE9E,OAAO,uBAAuB,CAAC,QAAQ,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IACvD,CAAC;CACF"}
|
|
@@ -1,7 +1,4 @@
|
|
|
1
1
|
import type { GenericEvent } from "./event.types";
|
|
2
|
-
export declare const EventValidatorRegistryError: {
|
|
3
|
-
NoAsyncSchema: string;
|
|
4
|
-
};
|
|
5
2
|
export interface EventValidatorRegistryPort<Event> {
|
|
6
3
|
readonly names: ReadonlyArray<GenericEvent["name"]>;
|
|
7
4
|
accepts(name: GenericEvent["name"]): boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event-validator-registry.port.d.ts","sourceRoot":"","sources":["../src/event-validator-registry.port.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAElD,
|
|
1
|
+
{"version":3,"file":"event-validator-registry.port.d.ts","sourceRoot":"","sources":["../src/event-validator-registry.port.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAElD,MAAM,WAAW,0BAA0B,CAAC,KAAK;IAC/C,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC;IAEpD,OAAO,CAAC,IAAI,EAAE,YAAY,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC;IAE7C,QAAQ,CAAC,GAAG,EAAE,OAAO,GAAG,KAAK,CAAC;CAC/B"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export
|
|
1
|
+
export {};
|
|
2
2
|
//# sourceMappingURL=event-validator-registry.port.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event-validator-registry.port.js","sourceRoot":"","sources":["../src/event-validator-registry.port.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"event-validator-registry.port.js","sourceRoot":"","sources":["../src/event-validator-registry.port.ts"],"names":[],"mappings":""}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-uploader-hono.middleware.d.ts","sourceRoot":"","sources":["../src/file-uploader-hono.middleware.ts"],"names":[],"mappings":"AAEA,OAAO,
|
|
1
|
+
{"version":3,"file":"file-uploader-hono.middleware.d.ts","sourceRoot":"","sources":["../src/file-uploader-hono.middleware.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,kBAAkB,EAA0B,MAAM,4BAA4B,CAAC;AAC7F,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAEjE,qBAAa,0BAA2B,YAAW,kBAAkB;IAGvD,OAAO,CAAC,QAAQ,CAAC,MAAM;IAFnC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAyB;IAEpD,YAA6B,MAAM,EAAE,kBAAkB,GAAG;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,EAE1E;IAED,MAAM,gEAUL;CACF"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createMiddleware } from "hono/factory";
|
|
2
2
|
import { HTTPException } from "hono/http-exception";
|
|
3
|
-
import {
|
|
3
|
+
import { FileUploaderMiddleware } from "./file-uploader.middleware";
|
|
4
4
|
export class FileUploaderHonoMiddleware {
|
|
5
5
|
config;
|
|
6
6
|
middleware;
|
|
@@ -13,18 +13,9 @@ export class FileUploaderHonoMiddleware {
|
|
|
13
13
|
const body = await context.req.raw.clone().formData();
|
|
14
14
|
const file = body.get(this.config.field);
|
|
15
15
|
const result = this.middleware.validate(file instanceof File ? file : null);
|
|
16
|
-
if (result.valid)
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
case FileUploaderError.MissingFile:
|
|
20
|
-
throw new HTTPException(400, { message: FileUploaderError.MissingFile });
|
|
21
|
-
case FileUploaderError.EmptyFile:
|
|
22
|
-
throw new HTTPException(400, { message: FileUploaderError.EmptyFile });
|
|
23
|
-
case FileUploaderError.SizeLimit:
|
|
24
|
-
throw new HTTPException(400, { message: FileUploaderError.SizeLimit });
|
|
25
|
-
case FileUploaderError.InvalidMime:
|
|
26
|
-
throw new HTTPException(400, { message: FileUploaderError.InvalidMime });
|
|
27
|
-
}
|
|
16
|
+
if (result.valid === false)
|
|
17
|
+
throw new HTTPException(400, { message: result.error });
|
|
18
|
+
return next();
|
|
28
19
|
});
|
|
29
20
|
}
|
|
30
21
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-uploader-hono.middleware.js","sourceRoot":"","sources":["../src/file-uploader-hono.middleware.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,
|
|
1
|
+
{"version":3,"file":"file-uploader-hono.middleware.js","sourceRoot":"","sources":["../src/file-uploader-hono.middleware.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAA2B,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AAG7F,MAAM,OAAO,0BAA0B;IAGR,MAAM;IAFlB,UAAU,CAAyB;IAEpD,YAA6B,MAA8C;sBAA9C,MAAM;QACjC,IAAI,CAAC,UAAU,GAAG,IAAI,sBAAsB,CAAC,MAAM,CAAC,CAAC;IACvD,CAAC;IAED,MAAM;QACJ,OAAO,gBAAgB,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;YAC9C,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,QAAQ,EAAE,CAAC;YACtD,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAEzC,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,YAAY,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAE5E,IAAI,MAAM,CAAC,KAAK,KAAK,KAAK;gBAAE,MAAM,IAAI,aAAa,CAAC,GAAG,EAAE,EAAE,OAAO,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;YACpF,OAAO,IAAI,EAAE,CAAC;QAChB,CAAC,CAAC,CAAC;IACL,CAAC;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-uploader.middleware.d.ts","sourceRoot":"","sources":["../src/file-uploader.middleware.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAEtC,MAAM,MAAM,kBAAkB,GAAG;IAAE,YAAY,EAAE,KAAK,CAAC,YAAY,CAAC;IAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAA;CAAE,CAAC;AAE3F,eAAO,MAAM,iBAAiB;aAC5B,WAAW,EAAE,4BAA4B;aACzC,SAAS,EAAE,0BAA0B;aACrC,WAAW,EAAE,4BAA4B;aACzC,SAAS,EAAE,0BAA0B;CAC7B,CAAC;AAEX,MAAM,MAAM,mBAAmB,GAAG,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,OAAO,iBAAiB,CAAC,CAAC;AAE7F,MAAM,MAAM,oBAAoB,GAAG;IAAE,KAAK,EAAE,IAAI,CAAA;CAAE,GAAG;IAAE,KAAK,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,mBAAmB,CAAA;CAAE,CAAC;AAElG,qBAAa,sBAAsB;IACrB,OAAO,CAAC,QAAQ,CAAC,MAAM;IAAnC,YAA6B,MAAM,EAAE,kBAAkB,EAAI;IAE3D,QAAQ,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,GAAG,oBAAoB,
|
|
1
|
+
{"version":3,"file":"file-uploader.middleware.d.ts","sourceRoot":"","sources":["../src/file-uploader.middleware.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAEtC,MAAM,MAAM,kBAAkB,GAAG;IAAE,YAAY,EAAE,KAAK,CAAC,YAAY,CAAC;IAAC,OAAO,EAAE,KAAK,CAAC,IAAI,CAAA;CAAE,CAAC;AAE3F,eAAO,MAAM,iBAAiB;aAC5B,WAAW,EAAE,4BAA4B;aACzC,SAAS,EAAE,0BAA0B;aACrC,WAAW,EAAE,4BAA4B;aACzC,SAAS,EAAE,0BAA0B;CAC7B,CAAC;AAEX,MAAM,MAAM,mBAAmB,GAAG,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,OAAO,iBAAiB,CAAC,CAAC;AAE7F,MAAM,MAAM,oBAAoB,GAAG;IAAE,KAAK,EAAE,IAAI,CAAA;CAAE,GAAG;IAAE,KAAK,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,mBAAmB,CAAA;CAAE,CAAC;AAElG,qBAAa,sBAAsB;IACrB,OAAO,CAAC,QAAQ,CAAC,MAAM;IAAnC,YAA6B,MAAM,EAAE,kBAAkB,EAAI;IAE3D,QAAQ,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,GAAG,oBAAoB,CAehD;CACF"}
|
|
@@ -18,6 +18,7 @@ export class FileUploaderMiddleware {
|
|
|
18
18
|
const size = tools.Size.fromBytes(file.size);
|
|
19
19
|
if (size.isGreaterThan(this.config.maxSize))
|
|
20
20
|
return { valid: false, error: FileUploaderError.SizeLimit };
|
|
21
|
+
// TODO: MIME spoofing possible by reading client-supplied file.type
|
|
21
22
|
const mime = tools.Mime.fromString(file.type);
|
|
22
23
|
if (!this.config.MimeRegistry.hasMime(mime)) {
|
|
23
24
|
return { valid: false, error: FileUploaderError.InvalidMime };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-uploader.middleware.js","sourceRoot":"","sources":["../src/file-uploader.middleware.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAItC,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,WAAW,EAAE,4BAA4B;IACzC,SAAS,EAAE,0BAA0B;IACrC,WAAW,EAAE,4BAA4B;IACzC,SAAS,EAAE,0BAA0B;CAC7B,CAAC;AAMX,MAAM,OAAO,sBAAsB;IACJ,MAAM;IAAnC,YAA6B,MAA0B;sBAA1B,MAAM;IAAuB,CAAC;IAE3D,QAAQ,CAAC,IAAiB;QACxB,IAAI,CAAC,IAAI;YAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,iBAAiB,CAAC,WAAW,EAAE,CAAC;QACzE,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC;YAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,iBAAiB,CAAC,SAAS,EAAE,CAAC;QAEjF,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE7C,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;YAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,iBAAiB,CAAC,SAAS,EAAE,CAAC;QAEzG,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE9C,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YAC5C,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,iBAAiB,CAAC,WAAW,EAAE,CAAC;QAChE,CAAC;QACD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IACzB,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"file-uploader.middleware.js","sourceRoot":"","sources":["../src/file-uploader.middleware.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAItC,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,WAAW,EAAE,4BAA4B;IACzC,SAAS,EAAE,0BAA0B;IACrC,WAAW,EAAE,4BAA4B;IACzC,SAAS,EAAE,0BAA0B;CAC7B,CAAC;AAMX,MAAM,OAAO,sBAAsB;IACJ,MAAM;IAAnC,YAA6B,MAA0B;sBAA1B,MAAM;IAAuB,CAAC;IAE3D,QAAQ,CAAC,IAAiB;QACxB,IAAI,CAAC,IAAI;YAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,iBAAiB,CAAC,WAAW,EAAE,CAAC;QACzE,IAAI,IAAI,CAAC,IAAI,KAAK,CAAC;YAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,iBAAiB,CAAC,SAAS,EAAE,CAAC;QAEjF,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE7C,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;YAAE,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,iBAAiB,CAAC,SAAS,EAAE,CAAC;QAEzG,oEAAoE;QACpE,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAE9C,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,CAAC;YAC5C,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,iBAAiB,CAAC,WAAW,EAAE,CAAC;QAChE,CAAC;QACD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;IACzB,CAAC;CACF"}
|
|
@@ -1,16 +1,20 @@
|
|
|
1
1
|
import type { LoggerPort } from "./logger.port";
|
|
2
|
-
type ServerType = ReturnType<typeof Bun.serve>;
|
|
2
|
+
export type ServerType = ReturnType<typeof Bun.serve>;
|
|
3
3
|
type Dependencies = {
|
|
4
4
|
Logger: LoggerPort;
|
|
5
5
|
};
|
|
6
|
+
type Config = {
|
|
7
|
+
cleanup: () => Promise<void> | void;
|
|
8
|
+
exit?: (code: number) => never;
|
|
9
|
+
};
|
|
6
10
|
export declare class GracefulShutdown {
|
|
7
11
|
private readonly deps;
|
|
8
|
-
private readonly
|
|
12
|
+
private readonly config;
|
|
9
13
|
private readonly base;
|
|
10
14
|
private isShuttingDown;
|
|
11
|
-
constructor(deps: Dependencies,
|
|
15
|
+
constructor(deps: Dependencies, config?: Config);
|
|
12
16
|
private shutdown;
|
|
13
|
-
applyTo(server: ServerType
|
|
17
|
+
applyTo(server: ServerType): void;
|
|
14
18
|
}
|
|
15
19
|
export {};
|
|
16
20
|
//# sourceMappingURL=graceful-shutdown.service.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graceful-shutdown.service.d.ts","sourceRoot":"","sources":["../src/graceful-shutdown.service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAEhD,
|
|
1
|
+
{"version":3,"file":"graceful-shutdown.service.d.ts","sourceRoot":"","sources":["../src/graceful-shutdown.service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAEhD,MAAM,MAAM,UAAU,GAAG,UAAU,CAAC,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC;AAEtD,KAAK,YAAY,GAAG;IAAE,MAAM,EAAE,UAAU,CAAA;CAAE,CAAC;AAC3C,KAAK,MAAM,GAAG;IAAE,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAAC,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,KAAK,CAAA;CAAE,CAAC;AAEtF,qBAAa,gBAAgB;IAKzB,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,MAAM;IALzB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAA0D;IAC/E,OAAO,CAAC,cAAc,CAAS;IAE/B,YACmB,IAAI,EAAE,YAAY,EAClB,MAAM,GAAE,MAAoD,EAC3E;YAEU,QAAQ;IAsBtB,OAAO,CAAC,MAAM,EAAE,UAAU,QAezB;CACF"}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import * as tools from "@bgord/tools";
|
|
2
2
|
export class GracefulShutdown {
|
|
3
3
|
deps;
|
|
4
|
-
|
|
4
|
+
config;
|
|
5
5
|
base = { operation: "shutdown", component: "infra" };
|
|
6
6
|
isShuttingDown = false;
|
|
7
|
-
constructor(deps,
|
|
7
|
+
constructor(deps, config = { cleanup: tools.noop, exit: process.exit }) {
|
|
8
8
|
this.deps = deps;
|
|
9
|
-
this.
|
|
9
|
+
this.config = config;
|
|
10
10
|
}
|
|
11
|
-
shutdown(server,
|
|
11
|
+
async shutdown(server, exitCode) {
|
|
12
12
|
// Stryker disable all
|
|
13
13
|
if (this.isShuttingDown)
|
|
14
14
|
return;
|
|
@@ -20,29 +20,30 @@ export class GracefulShutdown {
|
|
|
20
20
|
catch (error) {
|
|
21
21
|
this.deps.Logger.error({ message: "Server stop failed", error, ...this.base });
|
|
22
22
|
}
|
|
23
|
-
|
|
24
|
-
.
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
23
|
+
try {
|
|
24
|
+
await this.config.cleanup();
|
|
25
|
+
this.deps.Logger.info({ message: "HTTP server closed", ...this.base });
|
|
26
|
+
}
|
|
27
|
+
catch (error) {
|
|
28
|
+
this.deps.Logger.error({ message: "Cleanup hook failed", error, ...this.base });
|
|
29
|
+
}
|
|
30
|
+
finally {
|
|
31
|
+
this.config.exit?.(exitCode);
|
|
32
|
+
}
|
|
28
33
|
}
|
|
29
|
-
applyTo(server
|
|
30
|
-
|
|
31
|
-
this.deps.Logger.info({ message:
|
|
32
|
-
this.shutdown(server,
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
this.deps.Logger.
|
|
36
|
-
this.shutdown(server,
|
|
37
|
-
}
|
|
38
|
-
process.once("
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
process.once("uncaughtException", (error) => {
|
|
43
|
-
this.deps.Logger.error({ message: "UncaughtException received", error, ...this.base });
|
|
44
|
-
this.shutdown(server, cleanup, 1);
|
|
45
|
-
});
|
|
34
|
+
applyTo(server) {
|
|
35
|
+
const graceful = (signal) => () => {
|
|
36
|
+
this.deps.Logger.info({ message: `${signal} received`, ...this.base });
|
|
37
|
+
this.shutdown(server, 0);
|
|
38
|
+
};
|
|
39
|
+
const fatal = (event) => (error) => {
|
|
40
|
+
this.deps.Logger.error({ message: `${event} received`, error, ...this.base });
|
|
41
|
+
this.shutdown(server, 1);
|
|
42
|
+
};
|
|
43
|
+
process.once("SIGTERM", graceful("SIGTERM"));
|
|
44
|
+
process.once("SIGINT", graceful("SIGINT"));
|
|
45
|
+
process.once("unhandledRejection", fatal("UnhandledRejection"));
|
|
46
|
+
process.once("uncaughtException", fatal("UncaughtException"));
|
|
46
47
|
}
|
|
47
48
|
}
|
|
48
49
|
//# sourceMappingURL=graceful-shutdown.service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"graceful-shutdown.service.js","sourceRoot":"","sources":["../src/graceful-shutdown.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"graceful-shutdown.service.js","sourceRoot":"","sources":["../src/graceful-shutdown.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAQtC,MAAM,OAAO,gBAAgB;IAKR,IAAI;IACJ,MAAM;IALR,IAAI,GAAG,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,OAAO,EAAW,CAAC;IACvE,cAAc,GAAG,KAAK,CAAC;IAE/B,YACmB,IAAkB,EAClB,MAAM,GAAW,EAAE,OAAO,EAAE,KAAK,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE;oBAD5D,IAAI;sBACJ,MAAM;IACtB,CAAC;IAEI,KAAK,CAAC,QAAQ,CAAC,MAAkB,EAAE,QAAgB;QACzD,sBAAsB;QACtB,IAAI,IAAI,CAAC,cAAc;YAAE,OAAO;QAChC,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC3B,sBAAsB;QAEtB,IAAI,CAAC;YACH,MAAM,CAAC,IAAI,EAAE,CAAC;QAChB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,oBAAoB,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QACjF,CAAC;QAED,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YAC5B,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,oBAAoB,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QACzE,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,qBAAqB,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;QAClF,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,QAAQ,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC;IAED,OAAO,CAAC,MAAkB;QACxB,MAAM,QAAQ,GAAG,CAAC,MAAc,EAAE,EAAE,CAAC,GAAG,EAAE;YACxC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,GAAG,MAAM,WAAW,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;YACvE,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAC3B,CAAC,CAAC;QAEF,MAAM,KAAK,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,CAAC,KAAc,EAAE,EAAE;YAClD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,GAAG,KAAK,WAAW,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;YAC9E,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAC3B,CAAC,CAAC;QAEF,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;QAC7C,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC3C,OAAO,CAAC,IAAI,CAAC,oBAAoB,EAAE,KAAK,CAAC,oBAAoB,CAAC,CAAC,CAAC;QAChE,OAAO,CAAC,IAAI,CAAC,mBAAmB,EAAE,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC;IAChE,CAAC;CACF"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import * as v from "valibot";
|
|
2
|
+
export declare const HostnameError: {
|
|
3
|
+
Type: string;
|
|
4
|
+
Invalid: string;
|
|
5
|
+
};
|
|
6
|
+
export declare const Hostname: v.SchemaWithPipe<readonly [v.StringSchema<string>, v.DomainAction<string, string>, v.BrandAction<string, "Hostname">]>;
|
|
7
|
+
export type HostnameType = v.InferOutput<typeof Hostname>;
|
|
8
|
+
//# sourceMappingURL=hostname.vo.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hostname.vo.d.ts","sourceRoot":"","sources":["../src/hostname.vo.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAC;AAE7B,eAAO,MAAM,aAAa;IACxB,IAAI;IACJ,OAAO;CACR,CAAC;AAEF,eAAO,MAAM,QAAQ,wHAKpB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,WAAW,CAAC,OAAO,QAAQ,CAAC,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import * as v from "valibot";
|
|
2
|
+
export const HostnameError = {
|
|
3
|
+
Type: "hostname.type",
|
|
4
|
+
Invalid: "hostname.invalid",
|
|
5
|
+
};
|
|
6
|
+
export const Hostname = v.pipe(v.string(HostnameError.Type), v.domain(HostnameError.Invalid),
|
|
7
|
+
// Stryker disable next-line StringLiteral
|
|
8
|
+
v.brand("Hostname"));
|
|
9
|
+
//# sourceMappingURL=hostname.vo.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hostname.vo.js","sourceRoot":"","sources":["../src/hostname.vo.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAC;AAE7B,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,IAAI,EAAE,eAAe;IACrB,OAAO,EAAE,kBAAkB;CAC5B,CAAC;AAEF,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,CAAC,IAAI,CAC5B,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,EAC5B,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC;AAC/B,0CAA0C;AAC1C,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CACpB,CAAC"}
|
|
@@ -29,7 +29,7 @@ export class HttpLoggerMiddleware {
|
|
|
29
29
|
this.config = config;
|
|
30
30
|
}
|
|
31
31
|
shouldSkip(context) {
|
|
32
|
-
if (context.request.header("accept")
|
|
32
|
+
if (context.request.header("accept")?.toLowerCase().startsWith("text/event-stream"))
|
|
33
33
|
return true;
|
|
34
34
|
return (this.config?.skip?.some((rule) => {
|
|
35
35
|
if (rule instanceof URLPattern)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http-logger.middleware.js","sourceRoot":"","sources":["../src/http-logger.middleware.ts"],"names":[],"mappings":"AACA,OAAO,EAAmB,YAAY,EAAE,MAAM,eAAe,CAAC;AAE9D,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAEhD,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,QAAQ;IACR,iBAAiB;IACjB,eAAe;IACf,YAAY;IACZ,gBAAgB;IAChB,cAAc;IACd,QAAQ;IACR,KAAK;IACL,MAAM;IACN,QAAQ;IACR,gBAAgB;IAChB,gBAAgB;IAChB,gBAAgB;IAChB,gBAAgB;IAChB,SAAS;IACT,2BAA2B;IAC3B,YAAY;IACZ,eAAe;IACf,UAAU;CACX,CAAC;AAcF,MAAM,OAAO,oBAAoB;IAEZ,IAAI;IACJ,MAAM;IAFzB,YACmB,IAAkB,EAClB,MAAyB;oBADzB,IAAI;sBACJ,MAAM;IACtB,CAAC;IAEJ,UAAU,CAAC,OAA0C;QACnD,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,
|
|
1
|
+
{"version":3,"file":"http-logger.middleware.js","sourceRoot":"","sources":["../src/http-logger.middleware.ts"],"names":[],"mappings":"AACA,OAAO,EAAmB,YAAY,EAAE,MAAM,eAAe,CAAC;AAE9D,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAEhD,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,QAAQ;IACR,iBAAiB;IACjB,eAAe;IACf,YAAY;IACZ,gBAAgB;IAChB,cAAc;IACd,QAAQ;IACR,KAAK;IACL,MAAM;IACN,QAAQ;IACR,gBAAgB;IAChB,gBAAgB;IAChB,gBAAgB;IAChB,gBAAgB;IAChB,SAAS;IACT,2BAA2B;IAC3B,YAAY;IACZ,eAAe;IACf,UAAU;CACX,CAAC;AAcF,MAAM,OAAO,oBAAoB;IAEZ,IAAI;IACJ,MAAM;IAFzB,YACmB,IAAkB,EAClB,MAAyB;oBADzB,IAAI;sBACJ,MAAM;IACtB,CAAC;IAEJ,UAAU,CAAC,OAA0C;QACnD,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,WAAW,EAAE,CAAC,UAAU,CAAC,mBAAmB,CAAC;YAAE,OAAO,IAAI,CAAC;QAEjG,OAAO,CACL,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;YAC/B,IAAI,IAAI,YAAY,UAAU;gBAAE,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;YACrF,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;QAC/C,CAAC,CAAC,IAAI,KAAK,CACZ,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,OAAuB,EAAE,aAAqB,EAAE,IAAI,GAAQ,EAAE;QACnE,MAAM,MAAM,GAAG,EAAE,EAAE,EAAE,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC;QAExE,MAAM,QAAQ,GAAG;YACf,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE;YAChC,OAAO,EAAE,MAAM,CAAC,WAAW,CACzB,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC,MAAM,CACpD,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,qBAAqB,CAAC,QAAQ,CAAC,MAAM,CAAC,CACtD,CACF;YACD,IAAI;YACJ,KAAK,EAAE,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE;SAC/B,CAAC;QAEF,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;YACpB,SAAS,EAAE,MAAM;YACjB,SAAS,EAAE,qBAAqB;YAChC,aAAa;YACb,OAAO,EAAE,SAAS;YAClB,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM;YAC9B,GAAG,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE;YAC1B,MAAM;YACN,QAAQ;SACT,CAAC,CAAC;QAEH,OAAO,EAAE,SAAS,EAAE,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;IACjD,CAAC;IAED,KAAK,CAAC,OAAuB,EAAE,aAAqB,EAAE,KAA2B;QAC/E,MAAM,MAAM,GAAG,EAAE,EAAE,EAAE,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC;QACxE,MAAM,QAAQ,GAAG,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;QACxC,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC;QAE3E,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACtB,SAAS,EAAE,MAAM;YACjB,SAAS,EAAE,oBAAoB;YAC/B,aAAa;YACb,OAAO,EAAE,UAAU;YACnB,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM;YAC9B,GAAG,EAAE,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE;YAC1B,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,EAAE,EAAE,QAAQ,CAAC,EAAE;YACf,MAAM;YACN,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,QAAQ,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,YAAY,EAAE;SAC3C,CAAC,CAAC;IACL,CAAC;CACF"}
|
|
@@ -2,9 +2,11 @@ import type * as tools from "@bgord/tools";
|
|
|
2
2
|
import type { FileRenamerPort } from "./file-renamer.port";
|
|
3
3
|
import type { FileWriterPort } from "./file-writer.port";
|
|
4
4
|
import type { ImageBlurPort, ImageBlurStrategy } from "./image-blur.port";
|
|
5
|
+
import type { NonceProviderPort } from "./nonce-provider.port";
|
|
5
6
|
type Dependencies = {
|
|
6
7
|
FileRenamer: FileRenamerPort;
|
|
7
8
|
FileWriter: FileWriterPort;
|
|
9
|
+
NonceProvider: NonceProviderPort;
|
|
8
10
|
};
|
|
9
11
|
export declare class ImageBlurAdapter implements ImageBlurPort {
|
|
10
12
|
private readonly deps;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"image-blur.adapter.d.ts","sourceRoot":"","sources":["../src/image-blur.adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEzD,OAAO,KAAK,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"image-blur.adapter.d.ts","sourceRoot":"","sources":["../src/image-blur.adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEzD,OAAO,KAAK,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC1E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE/D,KAAK,YAAY,GAAG;IAClB,WAAW,EAAE,eAAe,CAAC;IAC7B,UAAU,EAAE,cAAc,CAAC;IAC3B,aAAa,EAAE,iBAAiB,CAAC;CAClC,CAAC;AAEF,qBAAa,gBAAiB,YAAW,aAAa;IACxC,OAAO,CAAC,QAAQ,CAAC,IAAI;IAAjC,YAA6B,IAAI,EAAE,YAAY,EAAI;IAE7C,IAAI,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,KAAK,CAAC,gBAAgB,GAAG,KAAK,CAAC,gBAAgB,CAAC,CAkB9F;CACF"}
|
|
@@ -6,7 +6,7 @@ export class ImageBlurAdapter {
|
|
|
6
6
|
async blur(recipe) {
|
|
7
7
|
const final = recipe.strategy === "output_path" ? recipe.output : recipe.input;
|
|
8
8
|
const filename = final.getFilename();
|
|
9
|
-
const temporary = final.withFilename(filename.withSuffix(
|
|
9
|
+
const temporary = final.withFilename(filename.withSuffix(`-blurred-${this.deps.NonceProvider.generate()}`));
|
|
10
10
|
const extension = final.getFilename().getExtension();
|
|
11
11
|
const format = (extension === "jpg" ? "jpeg" : extension);
|
|
12
12
|
const blurred = await Bun.file(recipe.input.get()).image()[format]().placeholder();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"image-blur.adapter.js","sourceRoot":"","sources":["../src/image-blur.adapter.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"image-blur.adapter.js","sourceRoot":"","sources":["../src/image-blur.adapter.ts"],"names":[],"mappings":"AAaA,MAAM,OAAO,gBAAgB;IACE,IAAI;IAAjC,YAA6B,IAAkB;oBAAlB,IAAI;IAAiB,CAAC;IAEnD,KAAK,CAAC,IAAI,CAAC,MAAyB;QAClC,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,KAAK,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;QAE/E,MAAM,QAAQ,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;QACrC,MAAM,SAAS,GAAG,KAAK,CAAC,YAAY,CAClC,QAAQ,CAAC,UAAU,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,EAAE,CAAC,CACtE,CAAC;QAEF,MAAM,SAAS,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC,YAAY,EAAE,CAAC;QACrD,MAAM,MAAM,GAAG,CAAC,SAAS,KAAK,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAuB,CAAC;QAEhF,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC;QACnF,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;QAEjF,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,KAAK,CAAC,CAAC;QACzD,MAAM,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QAErD,OAAO,KAAK,CAAC;IACf,CAAC;CACF"}
|
|
@@ -2,9 +2,11 @@ import type * as tools from "@bgord/tools";
|
|
|
2
2
|
import type { FileRenamerPort } from "./file-renamer.port";
|
|
3
3
|
import type { FileWriterPort } from "./file-writer.port";
|
|
4
4
|
import type { ImageCompressorPort, ImageCompressorStrategy } from "./image-compressor.port";
|
|
5
|
+
import type { NonceProviderPort } from "./nonce-provider.port";
|
|
5
6
|
type Dependencies = {
|
|
6
7
|
FileRenamer: FileRenamerPort;
|
|
7
8
|
FileWriter: FileWriterPort;
|
|
9
|
+
NonceProvider: NonceProviderPort;
|
|
8
10
|
};
|
|
9
11
|
export declare class ImageCompressorAdapter implements ImageCompressorPort {
|
|
10
12
|
private readonly deps;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"image-compressor.adapter.d.ts","sourceRoot":"","sources":["../src/image-compressor.adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEzD,OAAO,KAAK,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"image-compressor.adapter.d.ts","sourceRoot":"","sources":["../src/image-compressor.adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEzD,OAAO,KAAK,EAAE,mBAAmB,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAC5F,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE/D,KAAK,YAAY,GAAG;IAClB,WAAW,EAAE,eAAe,CAAC;IAC7B,UAAU,EAAE,cAAc,CAAC;IAC3B,aAAa,EAAE,iBAAiB,CAAC;CAClC,CAAC;AAEF,qBAAa,sBAAuB,YAAW,mBAAmB;IAGpD,OAAO,CAAC,QAAQ,CAAC,IAAI;IAFjC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAM;IAE7C,YAA6B,IAAI,EAAE,YAAY,EAAI;IAE7C,QAAQ,CAAC,MAAM,EAAE,uBAAuB,GAAG,OAAO,CAAC,KAAK,CAAC,gBAAgB,GAAG,KAAK,CAAC,gBAAgB,CAAC,CAkBxG;CACF"}
|
|
@@ -8,7 +8,7 @@ export class ImageCompressorAdapter {
|
|
|
8
8
|
const quality = recipe.quality ?? ImageCompressorAdapter.DEFAULT_QUALITY;
|
|
9
9
|
const final = recipe.strategy === "output_path" ? recipe.output : recipe.input;
|
|
10
10
|
const filename = final.getFilename();
|
|
11
|
-
const temporary = final.withFilename(filename.withSuffix(
|
|
11
|
+
const temporary = final.withFilename(filename.withSuffix(`-compressed-${this.deps.NonceProvider.generate()}`));
|
|
12
12
|
const extension = final.getFilename().getExtension();
|
|
13
13
|
const format = (extension === "jpg" ? "jpeg" : extension);
|
|
14
14
|
const compressed = await Bun.file(recipe.input.get()).image().rotate(0)[format]({ quality }).bytes();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"image-compressor.adapter.js","sourceRoot":"","sources":["../src/image-compressor.adapter.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"image-compressor.adapter.js","sourceRoot":"","sources":["../src/image-compressor.adapter.ts"],"names":[],"mappings":"AAaA,MAAM,OAAO,sBAAsB;IAGJ,IAAI;IAFzB,MAAM,CAAU,eAAe,GAAG,EAAE,CAAC;IAE7C,YAA6B,IAAkB;oBAAlB,IAAI;IAAiB,CAAC;IAEnD,KAAK,CAAC,QAAQ,CAAC,MAA+B;QAC5C,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,sBAAsB,CAAC,eAAe,CAAC;QAEzE,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,KAAK,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;QAC/E,MAAM,QAAQ,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;QACrC,MAAM,SAAS,GAAG,KAAK,CAAC,YAAY,CAClC,QAAQ,CAAC,UAAU,CAAC,eAAe,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,EAAE,CAAC,CACzE,CAAC;QAEF,MAAM,SAAS,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC,YAAY,EAAE,CAAC;QACrD,MAAM,MAAM,GAAG,CAAC,SAAS,KAAK,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAuB,CAAC;QAEhF,MAAM,UAAU,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC;QAErG,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,UAAU,CAAC,CAAC;QAC9D,MAAM,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QAErD,OAAO,KAAK,CAAC;IACf,CAAC;CACF"}
|
|
@@ -2,9 +2,11 @@ import type * as tools from "@bgord/tools";
|
|
|
2
2
|
import type { FileRenamerPort } from "./file-renamer.port";
|
|
3
3
|
import type { FileWriterPort } from "./file-writer.port";
|
|
4
4
|
import type { ImageExifClearPort, ImageExifClearStrategy } from "./image-exif-clear.port";
|
|
5
|
+
import type { NonceProviderPort } from "./nonce-provider.port";
|
|
5
6
|
type Dependencies = {
|
|
6
7
|
FileRenamer: FileRenamerPort;
|
|
7
8
|
FileWriter: FileWriterPort;
|
|
9
|
+
NonceProvider: NonceProviderPort;
|
|
8
10
|
};
|
|
9
11
|
export declare class ImageExifClearAdapter implements ImageExifClearPort {
|
|
10
12
|
private readonly deps;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"image-exif-clear.adapter.d.ts","sourceRoot":"","sources":["../src/image-exif-clear.adapter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEzD,OAAO,KAAK,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"image-exif-clear.adapter.d.ts","sourceRoot":"","sources":["../src/image-exif-clear.adapter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEzD,OAAO,KAAK,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AAC1F,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE/D,KAAK,YAAY,GAAG;IAClB,WAAW,EAAE,eAAe,CAAC;IAC7B,UAAU,EAAE,cAAc,CAAC;IAC3B,aAAa,EAAE,iBAAiB,CAAC;CAClC,CAAC;AAEF,qBAAa,qBAAsB,YAAW,kBAAkB;IAClD,OAAO,CAAC,QAAQ,CAAC,IAAI;IAAjC,YAA6B,IAAI,EAAE,YAAY,EAAI;IAE7C,KAAK,CAAC,MAAM,EAAE,sBAAsB,GAAG,OAAO,CAAC,KAAK,CAAC,gBAAgB,GAAG,KAAK,CAAC,gBAAgB,CAAC,CAepG;CACF"}
|
|
@@ -5,7 +5,7 @@ export class ImageExifClearAdapter {
|
|
|
5
5
|
}
|
|
6
6
|
async clear(recipe) {
|
|
7
7
|
const final = recipe.strategy === "output_path" ? recipe.output : recipe.input;
|
|
8
|
-
const temporary = final.withFilename(final.getFilename().withSuffix(
|
|
8
|
+
const temporary = final.withFilename(final.getFilename().withSuffix(`-exif-cleared-${this.deps.NonceProvider.generate()}`));
|
|
9
9
|
const extension = final.getFilename().getExtension();
|
|
10
10
|
const format = (extension === "jpg" ? "jpeg" : extension);
|
|
11
11
|
const cleared = await Bun.file(recipe.input.get()).image().rotate(0)[format]().bytes();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"image-exif-clear.adapter.js","sourceRoot":"","sources":["../src/image-exif-clear.adapter.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"image-exif-clear.adapter.js","sourceRoot":"","sources":["../src/image-exif-clear.adapter.ts"],"names":[],"mappings":"AAcA,MAAM,OAAO,qBAAqB;IACH,IAAI;IAAjC,YAA6B,IAAkB;oBAAlB,IAAI;IAAiB,CAAC;IAEnD,KAAK,CAAC,KAAK,CAAC,MAA8B;QACxC,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,KAAK,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;QAC/E,MAAM,SAAS,GAAG,KAAK,CAAC,YAAY,CAClC,KAAK,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,iBAAiB,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,EAAE,CAAC,CACtF,CAAC;QAEF,MAAM,SAAS,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC,YAAY,EAAE,CAAC;QACrD,MAAM,MAAM,GAAG,CAAC,SAAS,KAAK,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAuB,CAAC;QAEhF,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;QAEvF,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC,CAAC;QAC3D,MAAM,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QAErD,OAAO,KAAK,CAAC;IACf,CAAC;CACF"}
|
|
@@ -3,10 +3,12 @@ import type { FileCleanerPort } from "./file-cleaner.port";
|
|
|
3
3
|
import type { FileRenamerPort } from "./file-renamer.port";
|
|
4
4
|
import type { FileWriterPort } from "./file-writer.port";
|
|
5
5
|
import type { ImageFormatterPort, ImageFormatterStrategy } from "./image-formatter.port";
|
|
6
|
+
import type { NonceProviderPort } from "./nonce-provider.port";
|
|
6
7
|
type Dependencies = {
|
|
7
8
|
FileCleaner: FileCleanerPort;
|
|
8
9
|
FileRenamer: FileRenamerPort;
|
|
9
10
|
FileWriter: FileWriterPort;
|
|
11
|
+
NonceProvider: NonceProviderPort;
|
|
10
12
|
};
|
|
11
13
|
export declare class ImageFormatterAdapter implements ImageFormatterPort {
|
|
12
14
|
private readonly deps;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"image-formatter.adapter.d.ts","sourceRoot":"","sources":["../src/image-formatter.adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEzD,OAAO,KAAK,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"image-formatter.adapter.d.ts","sourceRoot":"","sources":["../src/image-formatter.adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEzD,OAAO,KAAK,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AACzF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE/D,KAAK,YAAY,GAAG;IAClB,WAAW,EAAE,eAAe,CAAC;IAC7B,WAAW,EAAE,eAAe,CAAC;IAC7B,UAAU,EAAE,cAAc,CAAC;IAC3B,aAAa,EAAE,iBAAiB,CAAC;CAClC,CAAC;AAEF,qBAAa,qBAAsB,YAAW,kBAAkB;IAClD,OAAO,CAAC,QAAQ,CAAC,IAAI;IAAjC,YAA6B,IAAI,EAAE,YAAY,EAAI;IAE7C,MAAM,CAAC,MAAM,EAAE,sBAAsB,GAAG,OAAO,CAAC,KAAK,CAAC,gBAAgB,GAAG,KAAK,CAAC,gBAAgB,CAAC,CAuBrG;CACF"}
|
|
@@ -7,7 +7,7 @@ export class ImageFormatterAdapter {
|
|
|
7
7
|
const final = recipe.strategy === "output_path"
|
|
8
8
|
? recipe.output
|
|
9
9
|
: recipe.input.withFilename(recipe.input.getFilename().withExtension(recipe.to));
|
|
10
|
-
const temporary = final.withFilename(final.getFilename().withSuffix(
|
|
10
|
+
const temporary = final.withFilename(final.getFilename().withSuffix(`-formatted-${this.deps.NonceProvider.generate()}`));
|
|
11
11
|
const extension = final.getFilename().getExtension();
|
|
12
12
|
const format = (extension === "jpg" ? "jpeg" : extension);
|
|
13
13
|
const bytes = await Bun.file(recipe.input.get()).image().rotate(0)[format]().bytes();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"image-formatter.adapter.js","sourceRoot":"","sources":["../src/image-formatter.adapter.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"image-formatter.adapter.js","sourceRoot":"","sources":["../src/image-formatter.adapter.ts"],"names":[],"mappings":"AAeA,MAAM,OAAO,qBAAqB;IACH,IAAI;IAAjC,YAA6B,IAAkB;oBAAlB,IAAI;IAAiB,CAAC;IAEnD,KAAK,CAAC,MAAM,CAAC,MAA8B;QACzC,MAAM,KAAK,GACT,MAAM,CAAC,QAAQ,KAAK,aAAa;YAC/B,CAAC,CAAC,MAAM,CAAC,MAAM;YACf,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;QAErF,MAAM,SAAS,GAAG,KAAK,CAAC,YAAY,CAClC,KAAK,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,cAAc,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,EAAE,CAAC,CACnF,CAAC;QAEF,MAAM,SAAS,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC,YAAY,EAAE,CAAC;QACrD,MAAM,MAAM,GAAG,CAAC,SAAS,KAAK,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAuB,CAAC;QAEhF,MAAM,KAAK,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;QAErF,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,KAAK,CAAC,CAAC;QACzD,MAAM,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QAErD,IAAI,MAAM,CAAC,QAAQ,KAAK,UAAU,IAAI,KAAK,CAAC,GAAG,EAAE,KAAK,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,CAAC;YACzE,MAAM,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;QACzD,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"image-generator-web-view.adapter.d.ts","sourceRoot":"","sources":["../src/image-generator-web-view.adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,oBAAoB,EACpB,kBAAkB,EACnB,MAAM,wBAAwB,CAAC;AAEhC,qBAAa,4BAA6B,YAAW,kBAAkB;IAC/D,QAAQ,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"image-generator-web-view.adapter.d.ts","sourceRoot":"","sources":["../src/image-generator-web-view.adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,oBAAoB,EACpB,kBAAkB,EACnB,MAAM,wBAAwB,CAAC;AAEhC,qBAAa,4BAA6B,YAAW,kBAAkB;IAC/D,QAAQ,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAY7E;CACF"}
|
|
@@ -55,6 +55,7 @@ export class ImageGeneratorWebViewAdapter {
|
|
|
55
55
|
const env_1 = { stack: [], error: void 0, hasError: false };
|
|
56
56
|
try {
|
|
57
57
|
const view = __addDisposableResource(env_1, new Bun.WebView(config), true);
|
|
58
|
+
// TODO: Potential XSS risk
|
|
58
59
|
await view.navigate(`data:text/html;charset=utf-8,${encodeURIComponent(config.template)}`);
|
|
59
60
|
const image = await view.screenshot({
|
|
60
61
|
encoding: "buffer",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"image-generator-web-view.adapter.js","sourceRoot":"","sources":["../src/image-generator-web-view.adapter.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAMA,MAAM,OAAO,4BAA4B;IACvC,KAAK,CAAC,QAAQ,CAAC,MAA4B;;;YACzC,MAAY,IAAI,kCAAG,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,OAAA,CAAC;YAE3C,MAAM,IAAI,CAAC,QAAQ,CAAC,gCAAgC,kBAAkB,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YAE3F,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC;gBAClC,QAAQ,EAAE,QAAQ;gBAClB,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,YAAY,EAAkC;aACvE,CAAC,CAAC;YAEH,OAAO,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC;;;;;;;;;;;IAC/B,CAAC;CACF"}
|
|
1
|
+
{"version":3,"file":"image-generator-web-view.adapter.js","sourceRoot":"","sources":["../src/image-generator-web-view.adapter.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAMA,MAAM,OAAO,4BAA4B;IACvC,KAAK,CAAC,QAAQ,CAAC,MAA4B;;;YACzC,MAAY,IAAI,kCAAG,IAAI,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,OAAA,CAAC;YAE3C,2BAA2B;YAC3B,MAAM,IAAI,CAAC,QAAQ,CAAC,gCAAgC,kBAAkB,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YAE3F,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC;gBAClC,QAAQ,EAAE,QAAQ;gBAClB,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,YAAY,EAAkC;aACvE,CAAC,CAAC;YAEH,OAAO,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC;;;;;;;;;;;IAC/B,CAAC;CACF"}
|
|
@@ -2,9 +2,11 @@ import type * as tools from "@bgord/tools";
|
|
|
2
2
|
import type { FileRenamerPort } from "./file-renamer.port";
|
|
3
3
|
import type { FileWriterPort } from "./file-writer.port";
|
|
4
4
|
import type { ImageGrayscalePort, ImageGrayscaleStrategy } from "./image-grayscale.port";
|
|
5
|
+
import type { NonceProviderPort } from "./nonce-provider.port";
|
|
5
6
|
type Dependencies = {
|
|
6
7
|
FileRenamer: FileRenamerPort;
|
|
7
8
|
FileWriter: FileWriterPort;
|
|
9
|
+
NonceProvider: NonceProviderPort;
|
|
8
10
|
};
|
|
9
11
|
export declare class ImageGrayscaleAdapter implements ImageGrayscalePort {
|
|
10
12
|
private readonly deps;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"image-grayscale.adapter.d.ts","sourceRoot":"","sources":["../src/image-grayscale.adapter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEzD,OAAO,KAAK,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"image-grayscale.adapter.d.ts","sourceRoot":"","sources":["../src/image-grayscale.adapter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEzD,OAAO,KAAK,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AACzF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE/D,KAAK,YAAY,GAAG;IAClB,WAAW,EAAE,eAAe,CAAC;IAC7B,UAAU,EAAE,cAAc,CAAC;IAC3B,aAAa,EAAE,iBAAiB,CAAC;CAClC,CAAC;AAEF,qBAAa,qBAAsB,YAAW,kBAAkB;IAClD,OAAO,CAAC,QAAQ,CAAC,IAAI;IAAjC,YAA6B,IAAI,EAAE,YAAY,EAAI;IAE7C,SAAS,CAAC,MAAM,EAAE,sBAAsB,GAAG,OAAO,CAAC,KAAK,CAAC,gBAAgB,GAAG,KAAK,CAAC,gBAAgB,CAAC,CAsBxG;CACF"}
|
|
@@ -6,7 +6,7 @@ export class ImageGrayscaleAdapter {
|
|
|
6
6
|
async grayscale(recipe) {
|
|
7
7
|
const final = recipe.strategy === "output_path" ? recipe.output : recipe.input;
|
|
8
8
|
const filename = final.getFilename();
|
|
9
|
-
const temporary = final.withFilename(filename.withSuffix(
|
|
9
|
+
const temporary = final.withFilename(filename.withSuffix(`-grayscale-${this.deps.NonceProvider.generate()}`));
|
|
10
10
|
const extension = final.getFilename().getExtension();
|
|
11
11
|
const format = (extension === "jpg" ? "jpeg" : extension);
|
|
12
12
|
const grayscaled = await Bun.file(recipe.input.get())
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"image-grayscale.adapter.js","sourceRoot":"","sources":["../src/image-grayscale.adapter.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"image-grayscale.adapter.js","sourceRoot":"","sources":["../src/image-grayscale.adapter.ts"],"names":[],"mappings":"AAcA,MAAM,OAAO,qBAAqB;IACH,IAAI;IAAjC,YAA6B,IAAkB;oBAAlB,IAAI;IAAiB,CAAC;IAEnD,KAAK,CAAC,SAAS,CAAC,MAA8B;QAC5C,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,KAAK,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;QAE/E,MAAM,QAAQ,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;QACrC,MAAM,SAAS,GAAG,KAAK,CAAC,YAAY,CAClC,QAAQ,CAAC,UAAU,CAAC,cAAc,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,EAAE,CAAC,CACxE,CAAC;QAEF,MAAM,SAAS,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC,YAAY,EAAE,CAAC;QACrD,MAAM,MAAM,GAAG,CAAC,SAAS,KAAK,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAuB,CAAC;QAEhF,MAAM,UAAU,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;aAClD,KAAK,EAAE;aACP,MAAM,CAAC,CAAC,CAAC;aACT,QAAQ,CAAC,EAAE,UAAU,EAAE,CAAC,EAAE,CAAC,CAC3B,MAAM,CAAC,EAAE;aACT,KAAK,EAAE,CAAC;QAEX,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,UAAU,CAAC,CAAC;QAC9D,MAAM,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QAErD,OAAO,KAAK,CAAC;IACf,CAAC;CACF"}
|
|
@@ -3,10 +3,12 @@ import type { FileCleanerPort } from "./file-cleaner.port";
|
|
|
3
3
|
import type { FileRenamerPort } from "./file-renamer.port";
|
|
4
4
|
import type { FileWriterPort } from "./file-writer.port";
|
|
5
5
|
import type { ImageProcessorPort, ImageProcessorStrategy } from "./image-processor.port";
|
|
6
|
+
import type { NonceProviderPort } from "./nonce-provider.port";
|
|
6
7
|
type Dependencies = {
|
|
7
8
|
FileCleaner: FileCleanerPort;
|
|
8
9
|
FileRenamer: FileRenamerPort;
|
|
9
10
|
FileWriter: FileWriterPort;
|
|
11
|
+
NonceProvider: NonceProviderPort;
|
|
10
12
|
};
|
|
11
13
|
export declare class ImageProcessorAdapter implements ImageProcessorPort {
|
|
12
14
|
private readonly deps;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"image-processor.adapter.d.ts","sourceRoot":"","sources":["../src/image-processor.adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEzD,OAAO,KAAK,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"image-processor.adapter.d.ts","sourceRoot":"","sources":["../src/image-processor.adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEzD,OAAO,KAAK,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AACzF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE/D,KAAK,YAAY,GAAG;IAClB,WAAW,EAAE,eAAe,CAAC;IAC7B,WAAW,EAAE,eAAe,CAAC;IAC7B,UAAU,EAAE,cAAc,CAAC;IAC3B,aAAa,EAAE,iBAAiB,CAAC;CAClC,CAAC;AAEF,qBAAa,qBAAsB,YAAW,kBAAkB;IAGlD,OAAO,CAAC,QAAQ,CAAC,IAAI;IAFjC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,eAAe,CAAM;IAE7C,YAA6B,IAAI,EAAE,YAAY,EAAI;IAE7C,OAAO,CAAC,MAAM,EAAE,sBAAsB,GAAG,OAAO,CAAC,KAAK,CAAC,gBAAgB,GAAG,KAAK,CAAC,gBAAgB,CAAC,CA4BtG;CACF"}
|
|
@@ -8,7 +8,7 @@ export class ImageProcessorAdapter {
|
|
|
8
8
|
const final = recipe.strategy === "output_path"
|
|
9
9
|
? recipe.output
|
|
10
10
|
: recipe.input.withFilename(recipe.input.getFilename().withExtension(recipe.to));
|
|
11
|
-
const temporary = final.withFilename(final.getFilename().withSuffix(
|
|
11
|
+
const temporary = final.withFilename(final.getFilename().withSuffix(`-processed-${this.deps.NonceProvider.generate()}`));
|
|
12
12
|
const extension = final.getFilename().getExtension();
|
|
13
13
|
const format = (extension === "jpg" ? "jpeg" : extension);
|
|
14
14
|
const quality = recipe.quality ?? ImageProcessorAdapter.DEFAULT_QUALITY;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"image-processor.adapter.js","sourceRoot":"","sources":["../src/image-processor.adapter.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"image-processor.adapter.js","sourceRoot":"","sources":["../src/image-processor.adapter.ts"],"names":[],"mappings":"AAeA,MAAM,OAAO,qBAAqB;IAGH,IAAI;IAFzB,MAAM,CAAU,eAAe,GAAG,EAAE,CAAC;IAE7C,YAA6B,IAAkB;oBAAlB,IAAI;IAAiB,CAAC;IAEnD,KAAK,CAAC,OAAO,CAAC,MAA8B;QAC1C,MAAM,KAAK,GACT,MAAM,CAAC,QAAQ,KAAK,aAAa;YAC/B,CAAC,CAAC,MAAM,CAAC,MAAM;YACf,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;QAErF,MAAM,SAAS,GAAG,KAAK,CAAC,YAAY,CAClC,KAAK,CAAC,WAAW,EAAE,CAAC,UAAU,CAAC,cAAc,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,EAAE,EAAE,CAAC,CACnF,CAAC;QACF,MAAM,SAAS,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC,YAAY,EAAE,CAAC;QACrD,MAAM,MAAM,GAAG,CAAC,SAAS,KAAK,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAuB,CAAC;QAChF,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,qBAAqB,CAAC,eAAe,CAAC;QAExE,MAAM,SAAS,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC;aACjD,KAAK,EAAE;aACP,MAAM,CAAC,CAAC,CAAC;aACT,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE,kBAAkB,EAAE,IAAI,EAAE,CAAC,CACnF,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,CAAC;aACpB,KAAK,EAAE,CAAC;QAEX,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,CAAC,CAAC;QAC7D,MAAM,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;QAErD,IAAI,MAAM,CAAC,QAAQ,KAAK,UAAU,IAAI,KAAK,CAAC,GAAG,EAAE,KAAK,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,EAAE,CAAC;YACzE,MAAM,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;QACzD,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;CACF"}
|
|
@@ -2,9 +2,11 @@ import type * as tools from "@bgord/tools";
|
|
|
2
2
|
import type { FileRenamerPort } from "./file-renamer.port";
|
|
3
3
|
import type { FileWriterPort } from "./file-writer.port";
|
|
4
4
|
import type { ImageResizerPort, ImageResizerStrategy } from "./image-resizer.port";
|
|
5
|
+
import type { NonceProviderPort } from "./nonce-provider.port";
|
|
5
6
|
type Dependencies = {
|
|
6
7
|
FileWriter: FileWriterPort;
|
|
7
8
|
FileRenamer: FileRenamerPort;
|
|
9
|
+
NonceProvider: NonceProviderPort;
|
|
8
10
|
};
|
|
9
11
|
export declare class ImageResizerAdapter implements ImageResizerPort {
|
|
10
12
|
private readonly deps;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"image-resizer.adapter.d.ts","sourceRoot":"","sources":["../src/image-resizer.adapter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEzD,OAAO,KAAK,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"image-resizer.adapter.d.ts","sourceRoot":"","sources":["../src/image-resizer.adapter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAEzD,OAAO,KAAK,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AACnF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE/D,KAAK,YAAY,GAAG;IAClB,UAAU,EAAE,cAAc,CAAC;IAC3B,WAAW,EAAE,eAAe,CAAC;IAC7B,aAAa,EAAE,iBAAiB,CAAC;CAClC,CAAC;AAEF,qBAAa,mBAAoB,YAAW,gBAAgB;IAC9C,OAAO,CAAC,QAAQ,CAAC,IAAI;IAAjC,YAA6B,IAAI,EAAE,YAAY,EAAI;IAE7C,MAAM,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,KAAK,CAAC,gBAAgB,GAAG,KAAK,CAAC,gBAAgB,CAAC,CAoBnG;CACF"}
|