@bgord/bun 1.2.4 → 1.2.6
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/better-auth-logger.service.d.ts +5 -2
- package/dist/better-auth-logger.service.d.ts.map +1 -1
- package/dist/better-auth-logger.service.js +6 -6
- package/dist/better-auth-logger.service.js.map +1 -1
- package/dist/command-logger.service.d.ts +6 -2
- package/dist/command-logger.service.d.ts.map +1 -1
- package/dist/command-logger.service.js +4 -4
- package/dist/command-logger.service.js.map +1 -1
- package/dist/encryption-bun.adapter.d.ts +6 -2
- package/dist/encryption-bun.adapter.d.ts.map +1 -1
- package/dist/encryption-bun.adapter.js +5 -5
- package/dist/encryption-bun.adapter.js.map +1 -1
- package/dist/event-handler.service.d.ts +6 -2
- package/dist/event-handler.service.d.ts.map +1 -1
- package/dist/event-handler.service.js +4 -4
- package/dist/event-handler.service.js.map +1 -1
- package/dist/event-logger.service.d.ts +6 -2
- package/dist/event-logger.service.d.ts.map +1 -1
- package/dist/event-logger.service.js +4 -4
- package/dist/event-logger.service.js.map +1 -1
- package/dist/graceful-shutdown.service.d.ts +5 -2
- package/dist/graceful-shutdown.service.d.ts.map +1 -1
- package/dist/graceful-shutdown.service.js +18 -10
- package/dist/graceful-shutdown.service.js.map +1 -1
- package/dist/jobs.service.d.ts.map +1 -1
- package/dist/jobs.service.js.map +1 -1
- package/dist/mailer-smtp-with-logger.adapter.d.ts +5 -5
- package/dist/mailer-smtp-with-logger.adapter.d.ts.map +1 -1
- package/dist/mailer-smtp-with-logger.adapter.js +8 -8
- package/dist/mailer-smtp-with-logger.adapter.js.map +1 -1
- package/dist/pdf-generator-noop.adapter.d.ts +6 -2
- package/dist/pdf-generator-noop.adapter.d.ts.map +1 -1
- package/dist/pdf-generator-noop.adapter.js +8 -4
- package/dist/pdf-generator-noop.adapter.js.map +1 -1
- package/dist/prerequisites/clock-drift.d.ts +2 -2
- package/dist/prerequisites/clock-drift.js +3 -3
- package/dist/prerequisites/log-file.d.ts +2 -2
- package/dist/prerequisites/log-file.js +3 -3
- package/dist/prerequisites/mailer.d.ts +2 -2
- package/dist/prerequisites/mailer.js +3 -3
- package/dist/prerequisites/space.d.ts +2 -2
- package/dist/prerequisites/space.d.ts.map +1 -1
- package/dist/prerequisites/space.js +3 -3
- package/dist/prerequisites/space.js.map +1 -1
- package/dist/prerequisites/ssl-certificate-expiry.d.ts +2 -2
- package/dist/prerequisites/ssl-certificate-expiry.d.ts.map +1 -1
- package/dist/prerequisites/ssl-certificate-expiry.js +3 -3
- package/dist/prerequisites/ssl-certificate-expiry.js.map +1 -1
- package/dist/prerequisites/translations.d.ts +4 -4
- package/dist/prerequisites/translations.js +5 -5
- package/dist/prerequisites.service.d.ts +2 -2
- package/dist/prerequisites.service.js +3 -3
- package/dist/remote-file-storage-noop.adapter.d.ts +6 -3
- package/dist/remote-file-storage-noop.adapter.d.ts.map +1 -1
- package/dist/remote-file-storage-noop.adapter.js +10 -8
- package/dist/remote-file-storage-noop.adapter.js.map +1 -1
- package/dist/shield-rate-limit.middleware.d.ts.map +1 -1
- package/dist/shield-rate-limit.middleware.js.map +1 -1
- package/dist/timekeeper-noop.adapter.d.ts +6 -2
- package/dist/timekeeper-noop.adapter.d.ts.map +1 -1
- package/dist/timekeeper-noop.adapter.js +4 -4
- package/dist/timekeeper-noop.adapter.js.map +1 -1
- package/dist/translations.service.d.ts.map +1 -1
- package/dist/translations.service.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +16 -18
- package/src/better-auth-logger.service.ts +6 -4
- package/src/command-logger.service.ts +4 -2
- package/src/encryption-bun.adapter.ts +5 -3
- package/src/event-handler.service.ts +4 -2
- package/src/event-logger.service.ts +4 -2
- package/src/graceful-shutdown.service.ts +18 -8
- package/src/jobs.service.ts +1 -0
- package/src/mailer-smtp-with-logger.adapter.ts +8 -7
- package/src/pdf-generator-noop.adapter.ts +8 -2
- package/src/prerequisites/clock-drift.ts +4 -4
- package/src/prerequisites/log-file.ts +4 -4
- package/src/prerequisites/mailer.ts +4 -4
- package/src/prerequisites/space.ts +4 -4
- package/src/prerequisites/ssl-certificate-expiry.ts +4 -4
- package/src/prerequisites/translations.ts +7 -7
- package/src/prerequisites.service.ts +4 -4
- package/src/remote-file-storage-noop.adapter.ts +13 -9
- package/src/shield-rate-limit.middleware.ts +1 -0
- package/src/timekeeper-noop.adapter.ts +4 -2
- package/src/translations.service.ts +1 -0
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
import { type LoggerPort } from "./logger.port";
|
|
2
2
|
type LogLevel = "info" | "success" | "warn" | "error" | "debug";
|
|
3
|
+
type Dependencies = {
|
|
4
|
+
Logger: LoggerPort;
|
|
5
|
+
};
|
|
3
6
|
export declare class BetterAuthLogger {
|
|
4
|
-
private readonly
|
|
5
|
-
constructor(
|
|
7
|
+
private readonly deps;
|
|
8
|
+
constructor(deps: Dependencies);
|
|
6
9
|
attach(): {
|
|
7
10
|
readonly disabled: false;
|
|
8
11
|
readonly level: "debug";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"better-auth-logger.service.d.ts","sourceRoot":"","sources":["../src/better-auth-logger.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,UAAU,EAAgB,MAAM,eAAe,CAAC;AAG9D,KAAK,QAAQ,GAAG,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC;AAEhE,qBAAa,gBAAgB;IACf,OAAO,CAAC,QAAQ,CAAC,
|
|
1
|
+
{"version":3,"file":"better-auth-logger.service.d.ts","sourceRoot":"","sources":["../src/better-auth-logger.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,UAAU,EAAgB,MAAM,eAAe,CAAC;AAG9D,KAAK,QAAQ,GAAG,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC;AAEhE,KAAK,YAAY,GAAG;IAAE,MAAM,EAAE,UAAU,CAAA;CAAE,CAAC;AAE3C,qBAAa,gBAAgB;IACf,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,YAAY;IAE/C,MAAM;;;4BAIS,QAAQ,GAAG,SAAS,WAAW,MAAM,WAAW,OAAO,EAAE;;IAyBxE,OAAO,CAAC,QAAQ;CAQjB"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { LogLevelEnum } from "./logger.port";
|
|
2
2
|
import { formatError } from "./logger-format-error.service";
|
|
3
3
|
export class BetterAuthLogger {
|
|
4
|
-
|
|
5
|
-
constructor(
|
|
6
|
-
this.
|
|
4
|
+
deps;
|
|
5
|
+
constructor(deps) {
|
|
6
|
+
this.deps = deps;
|
|
7
7
|
}
|
|
8
8
|
attach() {
|
|
9
9
|
return {
|
|
@@ -14,18 +14,18 @@ export class BetterAuthLogger {
|
|
|
14
14
|
const base = { component: "infra", operation: "better-auth", message, metadata: { args } };
|
|
15
15
|
switch (level) {
|
|
16
16
|
case LogLevelEnum.error: {
|
|
17
|
-
this.
|
|
17
|
+
this.deps.Logger.error({
|
|
18
18
|
...base,
|
|
19
19
|
error: formatError(args.find((a) => a instanceof Error) ?? new Error(message)),
|
|
20
20
|
});
|
|
21
21
|
break;
|
|
22
22
|
}
|
|
23
23
|
case LogLevelEnum.warn: {
|
|
24
|
-
this.
|
|
24
|
+
this.deps.Logger.warn(base);
|
|
25
25
|
break;
|
|
26
26
|
}
|
|
27
27
|
default: {
|
|
28
|
-
this.
|
|
28
|
+
this.deps.Logger.info(base);
|
|
29
29
|
break;
|
|
30
30
|
}
|
|
31
31
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"better-auth-logger.service.js","sourceRoot":"","sources":["../src/better-auth-logger.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,YAAY,EAAE,MAAM,eAAe,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"better-auth-logger.service.js","sourceRoot":"","sources":["../src/better-auth-logger.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,YAAY,EAAE,MAAM,eAAe,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAM5D,MAAM,OAAO,gBAAgB;IACE;IAA7B,YAA6B,IAAkB;QAAlB,SAAI,GAAJ,IAAI,CAAc;IAAG,CAAC;IAEnD,MAAM;QACJ,OAAO;YACL,QAAQ,EAAE,KAAK;YACf,KAAK,EAAE,OAAO;YACd,GAAG,EAAE,CAAC,GAAyB,EAAE,OAAe,EAAE,GAAG,IAAe,EAAE,EAAE;gBACtE,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;gBACjC,MAAM,IAAI,GAAG,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,EAAW,CAAC;gBAEpG,QAAQ,KAAK,EAAE,CAAC;oBACd,KAAK,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;wBACxB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;4BACrB,GAAG,IAAI;4BACP,KAAK,EAAE,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,YAAY,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC;yBAC/E,CAAC,CAAC;wBACH,MAAM;oBACR,CAAC;oBACD,KAAK,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;wBACvB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;wBAC5B,MAAM;oBACR,CAAC;oBACD,OAAO,CAAC,CAAC,CAAC;wBACR,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;wBAC5B,MAAM;oBACR,CAAC;gBACH,CAAC;YACH,CAAC;SACO,CAAC;IACb,CAAC;IAEO,QAAQ,CAAC,KAA2B;QAC1C,IAAI,KAAK,KAAK,MAAM;YAAE,OAAO,YAAY,CAAC,IAAI,CAAC;QAC/C,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO,YAAY,CAAC,IAAI,CAAC;QAClD,IAAI,KAAK,KAAK,MAAM;YAAE,OAAO,YAAY,CAAC,IAAI,CAAC;QAC/C,IAAI,KAAK,KAAK,OAAO;YAAE,OAAO,YAAY,CAAC,KAAK,CAAC;QACjD,IAAI,KAAK,KAAK,OAAO;YAAE,OAAO,YAAY,CAAC,IAAI,CAAC;QAChD,OAAO,YAAY,CAAC,IAAI,CAAC;IAC3B,CAAC;CACF"}
|
|
@@ -1,9 +1,13 @@
|
|
|
1
1
|
import type { LoggerPort } from "./logger.port";
|
|
2
|
+
type Dependencies = {
|
|
3
|
+
Logger: LoggerPort;
|
|
4
|
+
};
|
|
2
5
|
export declare class CommandLogger {
|
|
3
|
-
private readonly
|
|
6
|
+
private readonly deps;
|
|
4
7
|
private readonly base;
|
|
5
|
-
constructor(
|
|
8
|
+
constructor(deps: Dependencies);
|
|
6
9
|
private _handle;
|
|
7
10
|
handle: (type: string, _debugName: string, commandName: string | undefined, commandData: Record<string, any> | undefined) => void;
|
|
8
11
|
}
|
|
12
|
+
export {};
|
|
9
13
|
//# sourceMappingURL=command-logger.service.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command-logger.service.d.ts","sourceRoot":"","sources":["../src/command-logger.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAEhD,qBAAa,aAAa;IAGZ,OAAO,CAAC,QAAQ,CAAC,
|
|
1
|
+
{"version":3,"file":"command-logger.service.d.ts","sourceRoot":"","sources":["../src/command-logger.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAEhD,KAAK,YAAY,GAAG;IAAE,MAAM,EAAE,UAAU,CAAA;CAAE,CAAC;AAE3C,qBAAa,aAAa;IAGZ,OAAO,CAAC,QAAQ,CAAC,IAAI;IAFjC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAwD;gBAEhD,IAAI,EAAE,YAAY;IAE/C,OAAO,CAAC,OAAO;IAYf,MAAM,SAXE,MAAM,cACA,MAAM,eACL,MAAM,GAAG,SAAS,eAClB,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,SAAS,UAQb;CAClC"}
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
export class CommandLogger {
|
|
2
|
-
|
|
2
|
+
deps;
|
|
3
3
|
base = { component: "infra", operation: "command_emitted" };
|
|
4
|
-
constructor(
|
|
5
|
-
this.
|
|
4
|
+
constructor(deps) {
|
|
5
|
+
this.deps = deps;
|
|
6
6
|
}
|
|
7
7
|
_handle(type, _debugName, commandName, commandData) {
|
|
8
8
|
if (type === "subscribe")
|
|
9
9
|
return;
|
|
10
10
|
if (typeof commandName === "symbol")
|
|
11
11
|
return;
|
|
12
|
-
this.
|
|
12
|
+
this.deps.Logger.info({ message: `${commandName} emitted`, metadata: commandData, ...this.base });
|
|
13
13
|
}
|
|
14
14
|
handle = this._handle.bind(this);
|
|
15
15
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"command-logger.service.js","sourceRoot":"","sources":["../src/command-logger.service.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"command-logger.service.js","sourceRoot":"","sources":["../src/command-logger.service.ts"],"names":[],"mappings":"AAIA,MAAM,OAAO,aAAa;IAGK;IAFZ,IAAI,GAAG,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,CAAC;IAE7E,YAA6B,IAAkB;QAAlB,SAAI,GAAJ,IAAI,CAAc;IAAG,CAAC;IAE3C,OAAO,CACb,IAAY,EACZ,UAAkB,EAClB,WAA+B,EAC/B,WAA4C;QAE5C,IAAI,IAAI,KAAK,WAAW;YAAE,OAAO;QACjC,IAAI,OAAO,WAAW,KAAK,QAAQ;YAAE,OAAO;QAE5C,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,GAAG,WAAW,UAAU,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IACpG,CAAC;IAED,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;CAClC"}
|
|
@@ -3,10 +3,14 @@ import type { EncryptionPort, EncryptionRecipe } from "./encryption.port";
|
|
|
3
3
|
export declare const EncryptionBunAdapterError: {
|
|
4
4
|
InvalidPayload: string;
|
|
5
5
|
};
|
|
6
|
+
type Dependencies = {
|
|
7
|
+
CryptoKeyProvider: CryptoKeyProviderPort;
|
|
8
|
+
};
|
|
6
9
|
export declare class EncryptionBunAdapter implements EncryptionPort {
|
|
7
|
-
private readonly
|
|
8
|
-
constructor(
|
|
10
|
+
private readonly deps;
|
|
11
|
+
constructor(deps: Dependencies);
|
|
9
12
|
encrypt(recipe: EncryptionRecipe): Promise<import("@bgord/tools").FilePathRelative | import("@bgord/tools").FilePathAbsolute>;
|
|
10
13
|
decrypt(recipe: EncryptionRecipe): Promise<import("@bgord/tools").FilePathRelative | import("@bgord/tools").FilePathAbsolute>;
|
|
11
14
|
}
|
|
15
|
+
export {};
|
|
12
16
|
//# sourceMappingURL=encryption-bun.adapter.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"encryption-bun.adapter.d.ts","sourceRoot":"","sources":["../src/encryption-bun.adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACxE,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAG1E,eAAO,MAAM,yBAAyB;;CAA+D,CAAC;AAEtG,qBAAa,oBAAqB,YAAW,cAAc;IAC7C,OAAO,CAAC,QAAQ,CAAC,
|
|
1
|
+
{"version":3,"file":"encryption-bun.adapter.d.ts","sourceRoot":"","sources":["../src/encryption-bun.adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AACxE,OAAO,KAAK,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAG1E,eAAO,MAAM,yBAAyB;;CAA+D,CAAC;AAEtG,KAAK,YAAY,GAAG;IAAE,iBAAiB,EAAE,qBAAqB,CAAA;CAAE,CAAC;AAEjE,qBAAa,oBAAqB,YAAW,cAAc;IAC7C,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,YAAY;IAEzC,OAAO,CAAC,MAAM,EAAE,gBAAgB;IAsBhC,OAAO,CAAC,MAAM,EAAE,gBAAgB;CAsBvC"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { EncryptionIV } from "./encryption-iv.vo";
|
|
2
2
|
export const EncryptionBunAdapterError = { InvalidPayload: "encryption.bun.adapter.invalid.payload" };
|
|
3
3
|
export class EncryptionBunAdapter {
|
|
4
|
-
|
|
5
|
-
constructor(
|
|
6
|
-
this.
|
|
4
|
+
deps;
|
|
5
|
+
constructor(deps) {
|
|
6
|
+
this.deps = deps;
|
|
7
7
|
}
|
|
8
8
|
async encrypt(recipe) {
|
|
9
|
-
const key = await this.
|
|
9
|
+
const key = await this.deps.CryptoKeyProvider.get();
|
|
10
10
|
const iv = EncryptionIV.generate();
|
|
11
11
|
const plaintext = await Bun.file(recipe.input.get()).arrayBuffer();
|
|
12
12
|
const encrypted = await crypto.subtle.encrypt({ name: "AES-GCM", iv: iv.buffer }, key, plaintext);
|
|
@@ -18,7 +18,7 @@ export class EncryptionBunAdapter {
|
|
|
18
18
|
return recipe.output;
|
|
19
19
|
}
|
|
20
20
|
async decrypt(recipe) {
|
|
21
|
-
const key = await this.
|
|
21
|
+
const key = await this.deps.CryptoKeyProvider.get();
|
|
22
22
|
const bytes = new Uint8Array(await Bun.file(recipe.input.get()).arrayBuffer());
|
|
23
23
|
if (bytes.length < EncryptionIV.LENGTH + 1)
|
|
24
24
|
throw new Error(EncryptionBunAdapterError.InvalidPayload);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"encryption-bun.adapter.js","sourceRoot":"","sources":["../src/encryption-bun.adapter.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,MAAM,CAAC,MAAM,yBAAyB,GAAG,EAAE,cAAc,EAAE,wCAAwC,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"encryption-bun.adapter.js","sourceRoot":"","sources":["../src/encryption-bun.adapter.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,MAAM,CAAC,MAAM,yBAAyB,GAAG,EAAE,cAAc,EAAE,wCAAwC,EAAE,CAAC;AAItG,MAAM,OAAO,oBAAoB;IACF;IAA7B,YAA6B,IAAkB;QAAlB,SAAI,GAAJ,IAAI,CAAc;IAAG,CAAC;IAEnD,KAAK,CAAC,OAAO,CAAC,MAAwB;QACpC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,CAAC;QACpD,MAAM,EAAE,GAAG,YAAY,CAAC,QAAQ,EAAE,CAAC;QAEnC,MAAM,SAAS,GAAG,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;QAEnE,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,OAAO,CAC3C,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,CAAC,MAAqB,EAAE,EACjD,GAAG,EACH,SAAS,CACV,CAAC;QAEF,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC,SAAS,CAAC,CAAC;QAC7C,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,EAAE,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;QAC7D,MAAM,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;QAClB,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC;QAElC,MAAM,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,CAAC;QAE7C,OAAO,MAAM,CAAC,MAAM,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,MAAwB;QACpC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,CAAC;QAEpD,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC;QAC/E,IAAI,KAAK,CAAC,MAAM,GAAG,YAAY,CAAC,MAAM,GAAG,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,cAAc,CAAC,CAAC;QAEtG,MAAM,EAAE,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,EAAE,YAAY,CAAC,MAAM,CAAC,CAAC;QAClD,MAAM,QAAQ,GAAG,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,GAAG,EAAE,CAAC,UAAU,CAAC,CAAC;QAE/E,MAAM,UAAU,GAAG,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;QAEvD,MAAM,gBAAgB,GAAG,UAAU,CAAC,MAAM,CAAC,KAAK,CAC9C,UAAU,CAAC,UAAU,EACrB,UAAU,CAAC,UAAU,GAAG,UAAU,CAAC,UAAU,CAC9C,CAAC;QAEF,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,GAAG,EAAE,gBAAgB,CAAC,CAAC;QAExG,MAAM,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,EAAE,EAAE,IAAI,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC;QAEhE,OAAO,MAAM,CAAC,MAAM,CAAC;IACvB,CAAC;CACF"}
|
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
import type { z } from "zod/v4";
|
|
2
2
|
import type { GenericEventSchema } from "./event.types";
|
|
3
3
|
import type { LoggerPort } from "./logger.port";
|
|
4
|
+
type Dependencies = {
|
|
5
|
+
Logger: LoggerPort;
|
|
6
|
+
};
|
|
4
7
|
export declare class EventHandler {
|
|
5
|
-
private readonly
|
|
6
|
-
constructor(
|
|
8
|
+
private readonly deps;
|
|
9
|
+
constructor(deps: Dependencies);
|
|
7
10
|
handle<T extends {
|
|
8
11
|
name: z.infer<GenericEventSchema["shape"]["name"]>;
|
|
9
12
|
}>(fn: (event: T) => Promise<void>): (event: T) => Promise<void>;
|
|
10
13
|
}
|
|
14
|
+
export {};
|
|
11
15
|
//# sourceMappingURL=event-handler.service.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event-handler.service.d.ts","sourceRoot":"","sources":["../src/event-handler.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAGhD,qBAAa,YAAY;IACX,OAAO,CAAC,QAAQ,CAAC,
|
|
1
|
+
{"version":3,"file":"event-handler.service.d.ts","sourceRoot":"","sources":["../src/event-handler.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAGhD,KAAK,YAAY,GAAG;IAAE,MAAM,EAAE,UAAU,CAAA;CAAE,CAAC;AAE3C,qBAAa,YAAY;IACX,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,YAAY;IAE/C,MAAM,CAAC,CAAC,SAAS;QAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAA;KAAE,EAAE,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,IACxF,OAAO,CAAC;CAczB"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { formatError } from "./logger-format-error.service";
|
|
2
2
|
export class EventHandler {
|
|
3
|
-
|
|
4
|
-
constructor(
|
|
5
|
-
this.
|
|
3
|
+
deps;
|
|
4
|
+
constructor(deps) {
|
|
5
|
+
this.deps = deps;
|
|
6
6
|
}
|
|
7
7
|
handle(fn) {
|
|
8
8
|
return async (event) => {
|
|
@@ -10,7 +10,7 @@ export class EventHandler {
|
|
|
10
10
|
await fn(event);
|
|
11
11
|
}
|
|
12
12
|
catch (error) {
|
|
13
|
-
this.
|
|
13
|
+
this.deps.Logger.error({
|
|
14
14
|
message: `Unknown ${event.name} event handler error`,
|
|
15
15
|
component: "infra",
|
|
16
16
|
operation: "unknown_event_handler_error",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event-handler.service.js","sourceRoot":"","sources":["../src/event-handler.service.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"event-handler.service.js","sourceRoot":"","sources":["../src/event-handler.service.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAI5D,MAAM,OAAO,YAAY;IACM;IAA7B,YAA6B,IAAkB;QAAlB,SAAI,GAAJ,IAAI,CAAc;IAAG,CAAC;IAEnD,MAAM,CAAmE,EAA+B;QACtG,OAAO,KAAK,EAAE,KAAQ,EAAE,EAAE;YACxB,IAAI,CAAC;gBACH,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC;YAClB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;oBACrB,OAAO,EAAE,WAAW,KAAK,CAAC,IAAI,sBAAsB;oBACpD,SAAS,EAAE,OAAO;oBAClB,SAAS,EAAE,6BAA6B;oBACxC,KAAK,EAAE,WAAW,CAAC,KAAK,CAAC;oBACzB,QAAQ,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE;iBAC/B,CAAC,CAAC;YACL,CAAC;QACH,CAAC,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -1,9 +1,13 @@
|
|
|
1
1
|
import type { LoggerPort } from "./logger.port";
|
|
2
|
+
type Dependencies = {
|
|
3
|
+
Logger: LoggerPort;
|
|
4
|
+
};
|
|
2
5
|
export declare class EventLogger {
|
|
3
|
-
private readonly
|
|
6
|
+
private readonly deps;
|
|
4
7
|
private readonly base;
|
|
5
|
-
constructor(
|
|
8
|
+
constructor(deps: Dependencies);
|
|
6
9
|
private _handle;
|
|
7
10
|
handle: (type: string, _debugName: string, eventName: string | undefined, eventData: Record<string, any> | undefined) => void;
|
|
8
11
|
}
|
|
12
|
+
export {};
|
|
9
13
|
//# sourceMappingURL=event-logger.service.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event-logger.service.d.ts","sourceRoot":"","sources":["../src/event-logger.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAEhD,qBAAa,WAAW;IAGV,OAAO,CAAC,QAAQ,CAAC,
|
|
1
|
+
{"version":3,"file":"event-logger.service.d.ts","sourceRoot":"","sources":["../src/event-logger.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAEhD,KAAK,YAAY,GAAG;IAAE,MAAM,EAAE,UAAU,CAAA;CAAE,CAAC;AAE3C,qBAAa,WAAW;IAGV,OAAO,CAAC,QAAQ,CAAC,IAAI;IAFjC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAsD;gBAE9C,IAAI,EAAE,YAAY;IAE/C,OAAO,CAAC,OAAO;IAYf,MAAM,SAXE,MAAM,cACA,MAAM,aACP,MAAM,GAAG,SAAS,aAClB,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,SAAS,UAQX;CAClC"}
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
export class EventLogger {
|
|
2
|
-
|
|
2
|
+
deps;
|
|
3
3
|
base = { component: "infra", operation: "event_emitted" };
|
|
4
|
-
constructor(
|
|
5
|
-
this.
|
|
4
|
+
constructor(deps) {
|
|
5
|
+
this.deps = deps;
|
|
6
6
|
}
|
|
7
7
|
_handle(type, _debugName, eventName, eventData) {
|
|
8
8
|
if (type === "subscribe")
|
|
9
9
|
return;
|
|
10
10
|
if (typeof eventName === "symbol")
|
|
11
11
|
return;
|
|
12
|
-
this.
|
|
12
|
+
this.deps.Logger.info({ message: `${eventName} emitted`, metadata: eventData, ...this.base });
|
|
13
13
|
}
|
|
14
14
|
handle = this._handle.bind(this);
|
|
15
15
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event-logger.service.js","sourceRoot":"","sources":["../src/event-logger.service.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"event-logger.service.js","sourceRoot":"","sources":["../src/event-logger.service.ts"],"names":[],"mappings":"AAIA,MAAM,OAAO,WAAW;IAGO;IAFZ,IAAI,GAAG,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC;IAE3E,YAA6B,IAAkB;QAAlB,SAAI,GAAJ,IAAI,CAAc;IAAG,CAAC;IAE3C,OAAO,CACb,IAAY,EACZ,UAAkB,EAClB,SAA6B,EAC7B,SAA0C;QAE1C,IAAI,IAAI,KAAK,WAAW;YAAE,OAAO;QACjC,IAAI,OAAO,SAAS,KAAK,QAAQ;YAAE,OAAO;QAE1C,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,GAAG,SAAS,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IAChG,CAAC;IAED,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;CAClC"}
|
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
import type { LoggerPort } from "./logger.port";
|
|
2
2
|
type ServerType = ReturnType<typeof Bun.serve>;
|
|
3
|
+
type Dependencies = {
|
|
4
|
+
Logger: LoggerPort;
|
|
5
|
+
};
|
|
3
6
|
export declare class GracefulShutdown {
|
|
4
|
-
private readonly
|
|
7
|
+
private readonly deps;
|
|
5
8
|
private readonly exitFn;
|
|
6
9
|
private readonly base;
|
|
7
10
|
private isShuttingDown;
|
|
8
|
-
constructor(
|
|
11
|
+
constructor(deps: Dependencies, exitFn?: (code: number) => never);
|
|
9
12
|
private shutdown;
|
|
10
13
|
applyTo(server: ServerType, cleanup?: () => any): void;
|
|
11
14
|
}
|
|
@@ -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;AAGhD,KAAK,UAAU,GAAG,UAAU,CAAC,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC;AAE/C,qBAAa,gBAAgB;IAKzB,OAAO,CAAC,QAAQ,CAAC,
|
|
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;AAGhD,KAAK,UAAU,GAAG,UAAU,CAAC,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC;AAE/C,KAAK,YAAY,GAAG;IAAE,MAAM,EAAE,UAAU,CAAA;CAAE,CAAC;AAE3C,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;gBAGZ,IAAI,EAAE,YAAY,EAClB,MAAM,GAAE,CAAC,IAAI,EAAE,MAAM,KAAK,KAAuD;IAGpG,OAAO,CAAC,QAAQ;IAmBhB,OAAO,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,GAAE,MAAM,GAAgB;CA6B5D"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import * as tools from "@bgord/tools";
|
|
2
2
|
import { formatError } from "./logger-format-error.service";
|
|
3
3
|
export class GracefulShutdown {
|
|
4
|
-
|
|
4
|
+
deps;
|
|
5
5
|
exitFn;
|
|
6
6
|
base = { operation: "shutdown", component: "infra" };
|
|
7
7
|
isShuttingDown = false;
|
|
8
|
-
constructor(
|
|
9
|
-
this.
|
|
8
|
+
constructor(deps, exitFn = ((code) => process.exit(code))) {
|
|
9
|
+
this.deps = deps;
|
|
10
10
|
this.exitFn = exitFn;
|
|
11
11
|
}
|
|
12
12
|
shutdown(server, cleanup, exitCode) {
|
|
@@ -17,29 +17,37 @@ export class GracefulShutdown {
|
|
|
17
17
|
server.stop();
|
|
18
18
|
}
|
|
19
19
|
catch (error) {
|
|
20
|
-
this.
|
|
20
|
+
this.deps.Logger.error({ message: "Server stop failed", error: formatError(error), ...this.base });
|
|
21
21
|
}
|
|
22
22
|
Promise.resolve()
|
|
23
23
|
.then(() => cleanup())
|
|
24
|
-
.then(() => this.
|
|
25
|
-
.catch((error) => this.
|
|
24
|
+
.then(() => this.deps.Logger.info({ message: "HTTP server closed", ...this.base }))
|
|
25
|
+
.catch((error) => this.deps.Logger.error({ message: "Cleanup hook failed", error: formatError(error), ...this.base }))
|
|
26
26
|
.finally(() => this.exitFn(exitCode));
|
|
27
27
|
}
|
|
28
28
|
applyTo(server, cleanup = tools.noop) {
|
|
29
29
|
process.once("SIGTERM", () => {
|
|
30
|
-
this.
|
|
30
|
+
this.deps.Logger.info({ message: "SIGTERM received", ...this.base });
|
|
31
31
|
this.shutdown(server, cleanup, 0);
|
|
32
32
|
});
|
|
33
33
|
process.once("SIGINT", () => {
|
|
34
|
-
this.
|
|
34
|
+
this.deps.Logger.info({ message: "SIGINT received", ...this.base });
|
|
35
35
|
this.shutdown(server, cleanup, 0);
|
|
36
36
|
});
|
|
37
37
|
process.once("unhandledRejection", (reason) => {
|
|
38
|
-
this.
|
|
38
|
+
this.deps.Logger.error({
|
|
39
|
+
message: "UnhandledRejection received",
|
|
40
|
+
error: formatError(reason),
|
|
41
|
+
...this.base,
|
|
42
|
+
});
|
|
39
43
|
this.shutdown(server, cleanup, 1);
|
|
40
44
|
});
|
|
41
45
|
process.once("uncaughtException", (error) => {
|
|
42
|
-
this.
|
|
46
|
+
this.deps.Logger.error({
|
|
47
|
+
message: "UncaughtException received",
|
|
48
|
+
error: formatError(error),
|
|
49
|
+
...this.base,
|
|
50
|
+
});
|
|
43
51
|
this.shutdown(server, cleanup, 1);
|
|
44
52
|
});
|
|
45
53
|
}
|
|
@@ -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;AAEtC,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"graceful-shutdown.service.js","sourceRoot":"","sources":["../src/graceful-shutdown.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jobs.service.d.ts","sourceRoot":"","sources":["../src/jobs.service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE9C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAGhD,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC;AACjC,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;AACzD,MAAM,MAAM,gBAAgB,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,WAAW,CAAC;IAAC,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"jobs.service.d.ts","sourceRoot":"","sources":["../src/jobs.service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE9C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACzD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAGhD,MAAM,MAAM,WAAW,GAAG,MAAM,CAAC;AACjC,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;AACzD,MAAM,MAAM,gBAAgB,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,WAAW,CAAC;IAAC,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CAAE,CAAC;AAElG,KAAK,YAAY,GAAG;IAAE,MAAM,EAAE,UAAU,CAAC;IAAC,UAAU,EAAE,cAAc,CAAC;IAAC,KAAK,EAAE,SAAS,CAAA;CAAE,CAAC;AAEzF,qBAAa,IAAI;IACf,MAAM,CAAC,SAAS;;;MAA0D;IAE1E,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,gBAAgB;IAIrC,MAAM,CAAC,aAAa,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO;CAGtD;AAED,qBAAa,UAAU;IAGT,OAAO,CAAC,QAAQ,CAAC,IAAI;IAFjC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAoD;gBAE5C,IAAI,EAAE,YAAY;IAE/C,MAAM,CAAC,YAAY,EAAE,gBAAgB;IAgCrC,OAAO,CAAC,IAAI,EAAE,IAAI;CAMnB"}
|
package/dist/jobs.service.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jobs.service.js","sourceRoot":"","sources":["../src/jobs.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAGtC,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAGnE,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"jobs.service.js","sourceRoot":"","sources":["../src/jobs.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AAGtC,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAGnE,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAQ5D,MAAM,OAAO,IAAI;IACf,MAAM,CAAC,SAAS,GAAG,EAAE,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC;IAE1E,MAAM,CAAC,OAAO,CAAC,IAAsB;QACnC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;IACnD,CAAC;IAED,MAAM,CAAC,aAAa,CAAC,IAAsB;QACzC,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC;IAC7D,CAAC;;AAGH,MAAM,OAAO,UAAU;IAGQ;IAFZ,IAAI,GAAG,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,CAAC;IAEzE,YAA6B,IAAkB;QAAlB,SAAI,GAAJ,IAAI,CAAc;IAAG,CAAC;IAEnD,MAAM,CAAC,YAA8B;QACnC,MAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC;QAEtD,wDAAwD;QACxD,MAAM,IAAI,GAAG,IAAI,CAAC;QAElB,OAAO,KAAK,IAAI,EAAE;YAChB,MAAM,SAAS,GAAG,IAAI,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC;YAE7D,IAAI,CAAC;gBACH,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,GAAG,YAAY,CAAC,KAAK,QAAQ,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;gBAE/F,MAAM,kBAAkB,CAAC,GAAG,CAAC,aAAa,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC;gBAElE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;oBACpB,OAAO,EAAE,GAAG,YAAY,CAAC,KAAK,UAAU;oBACxC,aAAa;oBACb,QAAQ,EAAE,SAAS,CAAC,IAAI,EAAE;oBAC1B,GAAG,IAAI,CAAC,IAAI;iBACb,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;oBACrB,OAAO,EAAE,GAAG,YAAY,CAAC,KAAK,QAAQ;oBACtC,aAAa;oBACb,KAAK,EAAE,WAAW,CAAC,KAAK,CAAC;oBACzB,QAAQ,EAAE,EAAE,GAAG,SAAS,CAAC,IAAI,EAAE,EAAE;oBACjC,GAAG,IAAI,CAAC,IAAI;iBACb,CAAC,CAAC;YACL,CAAC;QACH,CAAC,CAAC;IACJ,CAAC;IAED,OAAO,CAAC,IAAU;QAChB,wDAAwD;QACxD,MAAM,IAAI,GAAG,IAAI,CAAC;QAElB,OAAO,KAAK,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,IAAI,UAAU,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;IAC9F,CAAC;CACF"}
|
|
@@ -3,14 +3,14 @@ import type { LoggerPort } from "./logger.port";
|
|
|
3
3
|
import type { MailerPort } from "./mailer.port";
|
|
4
4
|
import type { MailerSmtpAdapter } from "./mailer-smtp.adapter";
|
|
5
5
|
type MailerSendOptionsType = SendMailOptions;
|
|
6
|
-
type
|
|
7
|
-
|
|
8
|
-
|
|
6
|
+
type Dependencies = {
|
|
7
|
+
MailerSmtp: MailerSmtpAdapter;
|
|
8
|
+
Logger: LoggerPort;
|
|
9
9
|
};
|
|
10
10
|
export declare class MailerSmtpWithLoggerAdapter implements MailerPort {
|
|
11
|
-
private readonly
|
|
11
|
+
private readonly deps;
|
|
12
12
|
private readonly base;
|
|
13
|
-
constructor(
|
|
13
|
+
constructor(deps: Dependencies);
|
|
14
14
|
send(message: MailerSendOptionsType): Promise<unknown>;
|
|
15
15
|
verify(): Promise<true>;
|
|
16
16
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mailer-smtp-with-logger.adapter.d.ts","sourceRoot":"","sources":["../src/mailer-smtp-with-logger.adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAEhD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE/D,KAAK,qBAAqB,GAAG,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"mailer-smtp-with-logger.adapter.d.ts","sourceRoot":"","sources":["../src/mailer-smtp-with-logger.adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAEhD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAE/D,KAAK,qBAAqB,GAAG,eAAe,CAAC;AAE7C,KAAK,YAAY,GAAG;IAAE,UAAU,EAAE,iBAAiB,CAAC;IAAC,MAAM,EAAE,UAAU,CAAA;CAAE,CAAC;AAE1E,qBAAa,2BAA4B,YAAW,UAAU;IAGhD,OAAO,CAAC,QAAQ,CAAC,IAAI;IAFjC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAA+C;gBAEvC,IAAI,EAAE,YAAY;IAEzC,IAAI,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,OAAO,CAAC;IActD,MAAM;CAGb"}
|
|
@@ -1,24 +1,24 @@
|
|
|
1
1
|
import { formatError } from "./logger-format-error.service";
|
|
2
2
|
export class MailerSmtpWithLoggerAdapter {
|
|
3
|
-
|
|
3
|
+
deps;
|
|
4
4
|
base = { component: "infra", operation: "mailer" };
|
|
5
|
-
constructor(
|
|
6
|
-
this.
|
|
5
|
+
constructor(deps) {
|
|
6
|
+
this.deps = deps;
|
|
7
7
|
}
|
|
8
8
|
async send(message) {
|
|
9
9
|
try {
|
|
10
|
-
this.
|
|
11
|
-
const result = await this.
|
|
12
|
-
this.
|
|
10
|
+
this.deps.Logger.info({ message: "Mailer attempt", metadata: message, ...this.base });
|
|
11
|
+
const result = await this.deps.MailerSmtp.send(message);
|
|
12
|
+
this.deps.Logger.info({ message: "Mailer success", metadata: { message, result }, ...this.base });
|
|
13
13
|
return result;
|
|
14
14
|
}
|
|
15
15
|
catch (error) {
|
|
16
|
-
this.
|
|
16
|
+
this.deps.Logger.error({ message: "Mailer error", error: formatError(error), ...this.base });
|
|
17
17
|
throw error;
|
|
18
18
|
}
|
|
19
19
|
}
|
|
20
20
|
async verify() {
|
|
21
|
-
return this.
|
|
21
|
+
return this.deps.MailerSmtp.verify();
|
|
22
22
|
}
|
|
23
23
|
}
|
|
24
24
|
//# sourceMappingURL=mailer-smtp-with-logger.adapter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mailer-smtp-with-logger.adapter.js","sourceRoot":"","sources":["../src/mailer-smtp-with-logger.adapter.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"mailer-smtp-with-logger.adapter.js","sourceRoot":"","sources":["../src/mailer-smtp-with-logger.adapter.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAQ5D,MAAM,OAAO,2BAA2B;IAGT;IAFZ,IAAI,GAAG,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC;IAEpE,YAA6B,IAAkB;QAAlB,SAAI,GAAJ,IAAI,CAAc;IAAG,CAAC;IAEnD,KAAK,CAAC,IAAI,CAAC,OAA8B;QACvC,IAAI,CAAC;YACH,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;YACtF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACxD,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;YAElG,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,WAAW,CAAC,KAAK,CAAC,EAAE,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;YAE7F,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED,KAAK,CAAC,MAAM;QACV,OAAO,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;IACvC,CAAC;CACF"}
|
|
@@ -1,10 +1,14 @@
|
|
|
1
1
|
import type { LoggerPort } from "./logger.port";
|
|
2
2
|
import type { PdfGeneratorPort, PdfGeneratorTemplateType } from "./pdf-generator.port";
|
|
3
3
|
export declare const PLACEHOLDER_PDF_BASE64 = "JVBERi0xLjQKMSAwIG9iago8PC9UeXBlIC9DYXRhbG9nCi9QYWdlcyAyIDAgUgo+PgplbmRvYmoK MiAwIG9iago8PC9UeXBlIC9QYWdlcwovS2lkcyBbMyAwIFJdCi9Db3VudCAxCj4+CmVuZG9iagoz IDAgb2JqCjw8L1R5cGUgL1BhZ2UKL1BhcmVudCAyIDAgUgovTWVkaWFCb3ggWzAgMCA1OTUgODQy XQovQ29udGVudHMgNSAwIFIKL1Jlc291cmNlcyA8PC9Qcm9jU2V0IFsvUERGIC9UZXh0XQovRm9u dCA8PC9GMSA0IDAgUj4+Cj4+Cj4+CmVuZG9iago0IDAgb2JqCjw8L1R5cGUgL0ZvbnQKL1N1YnR5 cGUgL1R5cGUxCi9OYW1lIC9GMQovQmFzZUZvbnQgL0hlbHZldGljYQovRW5jb2RpbmcgL01hY1Jv bWFuRW5jb2RpbmcKPj4KZW5kb2JqCjUgMCBvYmoKPDwvTGVuZ3RoIDUzCj4+CnN0cmVhbQpCVAov RjEgMjAgVGYKMjIwIDQwMCBUZAooRHVtbXkgUERGKSBUagpFVAplbmRzdHJlYW0KZW5kb2JqCnhy ZWYKMCA2CjAwMDAwMDAwMDAgNjU1MzUgZgowMDAwMDAwMDA5IDAwMDAwIG4KMDAwMDAwMDA2MyAw MDAwMCBuCjAwMDAwMDAxMjQgMDAwMDAgbgowMDAwMDAwMjc3IDAwMDAwIG4KMDAwMDAwMDM5MiAw MDAwMCBuCnRyYWlsZXIKPDwvU2l6ZSA2Ci9Sb290IDEgMCBSCj4+CnN0YXJ0eHJlZgo0OTUKJSVF T0YK";
|
|
4
|
+
type Dependencies = {
|
|
5
|
+
Logger: LoggerPort;
|
|
6
|
+
};
|
|
4
7
|
export declare class PdfGeneratorNoopAdapter implements PdfGeneratorPort {
|
|
5
|
-
private readonly
|
|
8
|
+
private readonly deps;
|
|
6
9
|
private readonly base;
|
|
7
|
-
constructor(
|
|
10
|
+
constructor(deps: Dependencies);
|
|
8
11
|
request(template: PdfGeneratorTemplateType, data: Record<string, unknown>): Promise<Buffer<ArrayBuffer>>;
|
|
9
12
|
}
|
|
13
|
+
export {};
|
|
10
14
|
//# sourceMappingURL=pdf-generator-noop.adapter.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pdf-generator-noop.adapter.d.ts","sourceRoot":"","sources":["../src/pdf-generator-noop.adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,KAAK,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAEvF,eAAO,MAAM,sBAAsB,w1BACozB,CAAC;AAEx1B,qBAAa,uBAAwB,YAAW,gBAAgB;IAGlD,OAAO,CAAC,QAAQ,CAAC,
|
|
1
|
+
{"version":3,"file":"pdf-generator-noop.adapter.d.ts","sourceRoot":"","sources":["../src/pdf-generator-noop.adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,KAAK,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAEvF,eAAO,MAAM,sBAAsB,w1BACozB,CAAC;AAEx1B,KAAK,YAAY,GAAG;IAAE,MAAM,EAAE,UAAU,CAAA;CAAE,CAAC;AAE3C,qBAAa,uBAAwB,YAAW,gBAAgB;IAGlD,OAAO,CAAC,QAAQ,CAAC,IAAI;IAFjC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAsD;gBAE9C,IAAI,EAAE,YAAY;IAEzC,OAAO,CAAC,QAAQ,EAAE,wBAAwB,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;CAShF"}
|
|
@@ -1,12 +1,16 @@
|
|
|
1
1
|
export const PLACEHOLDER_PDF_BASE64 = "JVBERi0xLjQKMSAwIG9iago8PC9UeXBlIC9DYXRhbG9nCi9QYWdlcyAyIDAgUgo+PgplbmRvYmoK MiAwIG9iago8PC9UeXBlIC9QYWdlcwovS2lkcyBbMyAwIFJdCi9Db3VudCAxCj4+CmVuZG9iagoz IDAgb2JqCjw8L1R5cGUgL1BhZ2UKL1BhcmVudCAyIDAgUgovTWVkaWFCb3ggWzAgMCA1OTUgODQy XQovQ29udGVudHMgNSAwIFIKL1Jlc291cmNlcyA8PC9Qcm9jU2V0IFsvUERGIC9UZXh0XQovRm9u dCA8PC9GMSA0IDAgUj4+Cj4+Cj4+CmVuZG9iago0IDAgb2JqCjw8L1R5cGUgL0ZvbnQKL1N1YnR5 cGUgL1R5cGUxCi9OYW1lIC9GMQovQmFzZUZvbnQgL0hlbHZldGljYQovRW5jb2RpbmcgL01hY1Jv bWFuRW5jb2RpbmcKPj4KZW5kb2JqCjUgMCBvYmoKPDwvTGVuZ3RoIDUzCj4+CnN0cmVhbQpCVAov RjEgMjAgVGYKMjIwIDQwMCBUZAooRHVtbXkgUERGKSBUagpFVAplbmRzdHJlYW0KZW5kb2JqCnhy ZWYKMCA2CjAwMDAwMDAwMDAgNjU1MzUgZgowMDAwMDAwMDA5IDAwMDAwIG4KMDAwMDAwMDA2MyAw MDAwMCBuCjAwMDAwMDAxMjQgMDAwMDAgbgowMDAwMDAwMjc3IDAwMDAwIG4KMDAwMDAwMDM5MiAw MDAwMCBuCnRyYWlsZXIKPDwvU2l6ZSA2Ci9Sb290IDEgMCBSCj4+CnN0YXJ0eHJlZgo0OTUKJSVF T0YK";
|
|
2
2
|
export class PdfGeneratorNoopAdapter {
|
|
3
|
-
|
|
3
|
+
deps;
|
|
4
4
|
base = { component: "infra", operation: "pdf_generator" };
|
|
5
|
-
constructor(
|
|
6
|
-
this.
|
|
5
|
+
constructor(deps) {
|
|
6
|
+
this.deps = deps;
|
|
7
7
|
}
|
|
8
8
|
async request(template, data) {
|
|
9
|
-
this.
|
|
9
|
+
this.deps.Logger.info({
|
|
10
|
+
message: "[NOOP] PDF generator adapter",
|
|
11
|
+
metadata: { template, data },
|
|
12
|
+
...this.base,
|
|
13
|
+
});
|
|
10
14
|
return Buffer.from(PLACEHOLDER_PDF_BASE64, "base64");
|
|
11
15
|
}
|
|
12
16
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pdf-generator-noop.adapter.js","sourceRoot":"","sources":["../src/pdf-generator-noop.adapter.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,sBAAsB,GACjC,q1BAAq1B,CAAC;
|
|
1
|
+
{"version":3,"file":"pdf-generator-noop.adapter.js","sourceRoot":"","sources":["../src/pdf-generator-noop.adapter.ts"],"names":[],"mappings":"AAGA,MAAM,CAAC,MAAM,sBAAsB,GACjC,q1BAAq1B,CAAC;AAIx1B,MAAM,OAAO,uBAAuB;IAGL;IAFZ,IAAI,GAAG,EAAE,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC;IAE3E,YAA6B,IAAkB;QAAlB,SAAI,GAAJ,IAAI,CAAc;IAAG,CAAC;IAEnD,KAAK,CAAC,OAAO,CAAC,QAAkC,EAAE,IAA6B;QAC7E,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;YACpB,OAAO,EAAE,8BAA8B;YACvC,QAAQ,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE;YAC5B,GAAG,IAAI,CAAC,IAAI;SACb,CAAC,CAAC;QAEH,OAAO,MAAM,CAAC,IAAI,CAAC,sBAAsB,EAAE,QAAQ,CAAC,CAAC;IACvD,CAAC;CACF"}
|
|
@@ -7,11 +7,11 @@ export declare class PrerequisiteClockDrift implements prereqs.Prerequisite {
|
|
|
7
7
|
readonly label: prereqs.PrerequisiteLabelType;
|
|
8
8
|
readonly enabled?: boolean;
|
|
9
9
|
readonly skew: tools.Duration;
|
|
10
|
-
readonly
|
|
10
|
+
readonly Timekeeper: TimekeeperPort;
|
|
11
11
|
readonly timeout: tools.Duration;
|
|
12
12
|
constructor(config: prereqs.PrerequisiteConfigType & {
|
|
13
13
|
skew: tools.Duration;
|
|
14
|
-
|
|
14
|
+
Timekeeper?: TimekeeperPort;
|
|
15
15
|
timeout?: tools.Duration;
|
|
16
16
|
});
|
|
17
17
|
verify(clock: ClockPort): Promise<prereqs.VerifyOutcome>;
|
|
@@ -7,13 +7,13 @@ export class PrerequisiteClockDrift {
|
|
|
7
7
|
label;
|
|
8
8
|
enabled = true;
|
|
9
9
|
skew;
|
|
10
|
-
|
|
10
|
+
Timekeeper;
|
|
11
11
|
timeout;
|
|
12
12
|
constructor(config) {
|
|
13
13
|
this.label = config.label;
|
|
14
14
|
this.enabled = config.enabled === undefined ? true : config.enabled;
|
|
15
15
|
this.skew = config.skew;
|
|
16
|
-
this.
|
|
16
|
+
this.Timekeeper = config.Timekeeper ?? new TimekeeperGoogleAdapter();
|
|
17
17
|
this.timeout = config.timeout ?? tools.Duration.Seconds(2);
|
|
18
18
|
}
|
|
19
19
|
async verify(clock) {
|
|
@@ -21,7 +21,7 @@ export class PrerequisiteClockDrift {
|
|
|
21
21
|
if (!this.enabled)
|
|
22
22
|
return prereqs.Verification.undetermined(stopwatch.stop());
|
|
23
23
|
try {
|
|
24
|
-
const timestamp = await Timeout.cancellable((signal) => this.
|
|
24
|
+
const timestamp = await Timeout.cancellable((signal) => this.Timekeeper.get(signal), this.timeout);
|
|
25
25
|
if (!timestamp)
|
|
26
26
|
return prereqs.Verification.undetermined(stopwatch.stop());
|
|
27
27
|
const duration = clock.now().difference(timestamp).toAbsolute();
|
|
@@ -5,9 +5,9 @@ export declare class PrerequisiteLogFile implements prereqs.Prerequisite {
|
|
|
5
5
|
readonly kind = "log-file";
|
|
6
6
|
readonly label: prereqs.PrerequisiteLabelType;
|
|
7
7
|
readonly enabled?: boolean;
|
|
8
|
-
private readonly
|
|
8
|
+
private readonly Logger;
|
|
9
9
|
constructor(config: prereqs.PrerequisiteConfigType & {
|
|
10
|
-
|
|
10
|
+
Logger: LoggerWinstonProductionAdapter;
|
|
11
11
|
});
|
|
12
12
|
verify(clock: ClockPort): Promise<prereqs.VerifyOutcome>;
|
|
13
13
|
}
|