@bgord/bun 0.19.7 → 0.21.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/better-auth-logger.service.d.ts +3 -3
- package/dist/better-auth-logger.service.d.ts.map +1 -1
- package/dist/better-auth-logger.service.js +28 -6
- package/dist/better-auth-logger.service.js.map +1 -1
- package/dist/command-logger.service.d.ts +2 -2
- package/dist/command-logger.service.d.ts.map +1 -1
- package/dist/command-logger.service.js +1 -0
- package/dist/command-logger.service.js.map +1 -1
- package/dist/decorators.service.d.ts +2 -2
- package/dist/decorators.service.d.ts.map +1 -1
- package/dist/decorators.service.js +2 -0
- package/dist/decorators.service.js.map +1 -1
- package/dist/event-handler.service.d.ts +2 -2
- package/dist/event-handler.service.d.ts.map +1 -1
- package/dist/event-handler.service.js +4 -1
- package/dist/event-handler.service.js.map +1 -1
- package/dist/event-logger.service.d.ts +2 -2
- package/dist/event-logger.service.d.ts.map +1 -1
- package/dist/event-logger.service.js +1 -0
- package/dist/event-logger.service.js.map +1 -1
- package/dist/http-logger.middleware.d.ts +2 -2
- package/dist/http-logger.middleware.d.ts.map +1 -1
- package/dist/http-logger.middleware.js +3 -1
- package/dist/http-logger.middleware.js.map +1 -1
- package/dist/index.d.ts +7 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -1
- package/dist/index.js.map +1 -1
- package/dist/jobs.service.d.ts +2 -2
- package/dist/jobs.service.d.ts.map +1 -1
- package/dist/jobs.service.js +7 -10
- package/dist/jobs.service.js.map +1 -1
- package/dist/logger-format-error.service.d.ts +3 -0
- package/dist/logger-format-error.service.d.ts.map +1 -0
- package/dist/logger-format-error.service.js +22 -0
- package/dist/logger-format-error.service.js.map +1 -0
- package/dist/logger-noop.adapter.d.ts +12 -0
- package/dist/logger-noop.adapter.d.ts.map +1 -0
- package/dist/logger-noop.adapter.js +11 -0
- package/dist/logger-noop.adapter.js.map +1 -0
- package/dist/logger-winston-local.adapter.d.ts +7 -0
- package/dist/logger-winston-local.adapter.d.ts.map +1 -0
- package/dist/logger-winston-local.adapter.js +18 -0
- package/dist/logger-winston-local.adapter.js.map +1 -0
- package/dist/logger-winston-production.adapter.d.ts +14 -0
- package/dist/logger-winston-production.adapter.d.ts.map +1 -0
- package/dist/logger-winston-production.adapter.js +32 -0
- package/dist/logger-winston-production.adapter.js.map +1 -0
- package/dist/logger-winston.adapter.d.ts +24 -0
- package/dist/logger-winston.adapter.d.ts.map +1 -0
- package/dist/logger-winston.adapter.js +28 -0
- package/dist/logger-winston.adapter.js.map +1 -0
- package/dist/logger.port.d.ts +71 -0
- package/dist/logger.port.d.ts.map +1 -0
- package/dist/logger.port.js +11 -0
- package/dist/logger.port.js.map +1 -0
- package/dist/mailer-noop.adapter.d.ts +2 -2
- package/dist/mailer-noop.adapter.d.ts.map +1 -1
- package/dist/mailer-noop.adapter.js +6 -1
- package/dist/mailer-noop.adapter.js.map +1 -1
- package/dist/mailer-smtp-with-logger.adapter.d.ts +2 -2
- package/dist/mailer-smtp-with-logger.adapter.d.ts.map +1 -1
- package/dist/mailer-smtp-with-logger.adapter.js +10 -2
- package/dist/mailer-smtp-with-logger.adapter.js.map +1 -1
- package/dist/modules/history/index.d.ts +0 -1
- package/dist/modules/history/index.d.ts.map +1 -1
- package/dist/modules/history/index.js +0 -2
- package/dist/modules/history/index.js.map +1 -1
- package/dist/modules/history/ports/history-writer.d.ts.map +1 -0
- package/dist/modules/history/ports/history-writer.js.map +1 -0
- package/dist/modules/history/ports/index.d.ts +1 -0
- package/dist/modules/history/ports/index.d.ts.map +1 -1
- package/dist/modules/history/ports/index.js +1 -0
- package/dist/modules/history/ports/index.js.map +1 -1
- package/dist/modules/preferences/command-handlers/handleSetUserLanguageCommand.d.ts +10 -0
- package/dist/modules/preferences/command-handlers/handleSetUserLanguageCommand.d.ts.map +1 -0
- package/dist/modules/preferences/command-handlers/handleSetUserLanguageCommand.js +16 -0
- package/dist/modules/preferences/command-handlers/handleSetUserLanguageCommand.js.map +1 -0
- package/dist/modules/preferences/command-handlers/index.d.ts +2 -0
- package/dist/modules/preferences/command-handlers/index.d.ts.map +1 -0
- package/dist/modules/preferences/command-handlers/index.js +2 -0
- package/dist/modules/preferences/command-handlers/index.js.map +1 -0
- package/dist/modules/preferences/commands/SET_USER_LANGUAGE_COMMAND.d.ts +14 -0
- package/dist/modules/preferences/commands/SET_USER_LANGUAGE_COMMAND.d.ts.map +1 -0
- package/dist/modules/preferences/commands/SET_USER_LANGUAGE_COMMAND.js +11 -0
- package/dist/modules/preferences/commands/SET_USER_LANGUAGE_COMMAND.js.map +1 -0
- package/dist/modules/preferences/commands/index.d.ts +2 -0
- package/dist/modules/preferences/commands/index.d.ts.map +1 -0
- package/dist/modules/preferences/commands/index.js +2 -0
- package/dist/modules/preferences/commands/index.js.map +1 -0
- package/dist/modules/preferences/events/USER_LANGUAGE_SET_EVENT.d.ts +17 -0
- package/dist/modules/preferences/events/USER_LANGUAGE_SET_EVENT.d.ts.map +1 -0
- package/dist/modules/preferences/events/USER_LANGUAGE_SET_EVENT.js +11 -0
- package/dist/modules/preferences/events/USER_LANGUAGE_SET_EVENT.js.map +1 -0
- package/dist/modules/preferences/events/index.d.ts +2 -0
- package/dist/modules/preferences/events/index.d.ts.map +1 -0
- package/dist/modules/preferences/events/index.js +2 -0
- package/dist/modules/preferences/events/index.js.map +1 -0
- package/dist/modules/preferences/index.d.ts +8 -0
- package/dist/modules/preferences/index.d.ts.map +1 -0
- package/dist/modules/preferences/index.js +8 -0
- package/dist/modules/preferences/index.js.map +1 -0
- package/dist/modules/preferences/invariants/index.d.ts +2 -0
- package/dist/modules/preferences/invariants/index.d.ts.map +1 -0
- package/dist/modules/preferences/invariants/index.js +2 -0
- package/dist/modules/preferences/invariants/index.js.map +1 -0
- package/dist/modules/preferences/invariants/user-language-has-changed.d.ts +19 -0
- package/dist/modules/preferences/invariants/user-language-has-changed.d.ts.map +1 -0
- package/dist/modules/preferences/invariants/user-language-has-changed.js +19 -0
- package/dist/modules/preferences/invariants/user-language-has-changed.js.map +1 -0
- package/dist/modules/preferences/open-host-queries/index.d.ts +2 -0
- package/dist/modules/preferences/open-host-queries/index.d.ts.map +1 -0
- package/dist/modules/preferences/open-host-queries/index.js +2 -0
- package/dist/modules/preferences/open-host-queries/index.js.map +1 -0
- package/dist/modules/preferences/open-host-queries/user-language.d.ts +15 -0
- package/dist/modules/preferences/open-host-queries/user-language.d.ts.map +1 -0
- package/dist/modules/preferences/open-host-queries/user-language.js +16 -0
- package/dist/modules/preferences/open-host-queries/user-language.js.map +1 -0
- package/dist/modules/preferences/ports/index.d.ts +3 -0
- package/dist/modules/preferences/ports/index.d.ts.map +1 -0
- package/dist/modules/preferences/ports/index.js +3 -0
- package/dist/modules/preferences/ports/index.js.map +1 -0
- package/dist/modules/preferences/ports/user-language-query.d.ts +5 -0
- package/dist/modules/preferences/ports/user-language-query.d.ts.map +1 -0
- package/dist/modules/preferences/ports/user-language-query.js +2 -0
- package/dist/modules/preferences/ports/user-language-query.js.map +1 -0
- package/dist/modules/preferences/ports/user-language-resolver.d.ts +16 -0
- package/dist/modules/preferences/ports/user-language-resolver.d.ts.map +1 -0
- package/dist/modules/preferences/ports/user-language-resolver.js +23 -0
- package/dist/modules/preferences/ports/user-language-resolver.js.map +1 -0
- package/dist/modules/preferences/value-objects/index.d.ts +2 -0
- package/dist/modules/preferences/value-objects/index.d.ts.map +1 -0
- package/dist/modules/preferences/value-objects/index.js +2 -0
- package/dist/modules/preferences/value-objects/index.js.map +1 -0
- package/dist/modules/preferences/value-objects/supported-languages-set.d.ts +10 -0
- package/dist/modules/preferences/value-objects/supported-languages-set.d.ts.map +1 -0
- package/dist/modules/preferences/value-objects/supported-languages-set.js +19 -0
- package/dist/modules/preferences/value-objects/supported-languages-set.js.map +1 -0
- package/dist/prerequisites/log-file.d.ts +2 -2
- package/dist/prerequisites/log-file.d.ts.map +1 -1
- package/dist/prerequisites/log-file.js +2 -1
- package/dist/prerequisites/log-file.js.map +1 -1
- package/dist/setup.service.d.ts +2 -2
- package/dist/setup.service.d.ts.map +1 -1
- package/dist/setup.service.js.map +1 -1
- package/dist/translations.service.d.ts +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +2 -2
- package/readme.md +35 -15
- package/src/better-auth-logger.service.ts +29 -6
- package/src/command-logger.service.ts +3 -2
- package/src/decorators.service.ts +4 -2
- package/src/event-handler.service.ts +6 -3
- package/src/event-logger.service.ts +3 -2
- package/src/http-logger.middleware.ts +5 -3
- package/src/index.ts +7 -1
- package/src/jobs.service.ts +10 -12
- package/src/logger-format-error.service.ts +24 -0
- package/src/logger-noop.adapter.ts +13 -0
- package/src/logger-winston-local.adapter.ts +17 -0
- package/src/logger-winston-production.adapter.ts +41 -0
- package/src/logger-winston.adapter.ts +46 -0
- package/src/logger.port.ts +69 -0
- package/src/mailer-noop.adapter.ts +8 -3
- package/src/mailer-smtp-with-logger.adapter.ts +12 -4
- package/src/modules/history/index.ts +0 -2
- package/src/modules/history/ports/index.ts +1 -0
- package/src/modules/preferences/command-handlers/handleSetUserLanguageCommand.ts +31 -0
- package/src/modules/preferences/command-handlers/index.ts +1 -0
- package/src/modules/preferences/commands/SET_USER_LANGUAGE_COMMAND.ts +14 -0
- package/src/modules/preferences/commands/index.ts +1 -0
- package/src/modules/preferences/events/USER_LANGUAGE_SET_EVENT.ts +14 -0
- package/src/modules/preferences/events/index.ts +1 -0
- package/src/modules/preferences/index.ts +7 -0
- package/src/modules/preferences/invariants/index.ts +1 -0
- package/src/modules/preferences/invariants/user-language-has-changed.ts +30 -0
- package/src/modules/preferences/open-host-queries/index.ts +1 -0
- package/src/modules/preferences/open-host-queries/user-language.ts +23 -0
- package/src/modules/preferences/ports/index.ts +2 -0
- package/src/modules/preferences/ports/user-language-query.ts +5 -0
- package/src/modules/preferences/ports/user-language-resolver.ts +27 -0
- package/src/modules/preferences/value-objects/index.ts +1 -0
- package/src/modules/preferences/value-objects/supported-languages-set.ts +23 -0
- package/src/prerequisites/log-file.ts +4 -3
- package/src/setup.service.ts +2 -2
- package/dist/logger.service.d.ts +0 -70
- package/dist/logger.service.d.ts.map +0 -1
- package/dist/logger.service.js +0 -92
- package/dist/logger.service.js.map +0 -1
- package/dist/modules/history/services/history-writer.d.ts.map +0 -1
- package/dist/modules/history/services/history-writer.js.map +0 -1
- package/dist/modules/history/services/index.d.ts +0 -2
- package/dist/modules/history/services/index.d.ts.map +0 -1
- package/dist/modules/history/services/index.js +0 -2
- package/dist/modules/history/services/index.js.map +0 -1
- package/src/logger.service.ts +0 -168
- package/src/modules/history/services/index.ts +0 -1
- /package/dist/modules/history/{services → ports}/history-writer.d.ts +0 -0
- /package/dist/modules/history/{services → ports}/history-writer.js +0 -0
- /package/src/modules/history/{services → ports}/history-writer.ts +0 -0
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { WinstonTransport as AxiomTransport } from "@axiomhq/winston";
|
|
2
|
+
import * as tools from "@bgord/tools";
|
|
3
|
+
import * as winston from "winston";
|
|
4
|
+
import { LoggerWinstonAdapter } from "./logger-winston.adapter";
|
|
5
|
+
import { NodeEnvironmentEnum } from "./node-env.vo";
|
|
6
|
+
export class LoggerWinstonProductionAdapter {
|
|
7
|
+
config;
|
|
8
|
+
prodLogFile;
|
|
9
|
+
constructor(config) {
|
|
10
|
+
this.config = config;
|
|
11
|
+
this.prodLogFile = this.createProdLogFile();
|
|
12
|
+
}
|
|
13
|
+
create(level) {
|
|
14
|
+
const file = new winston.transports.File({
|
|
15
|
+
filename: `/var/log/${this.config.app}-${NodeEnvironmentEnum.production}.log`,
|
|
16
|
+
maxsize: tools.Size.toBytes({ unit: tools.SizeUnit.MB, value: 100 }),
|
|
17
|
+
maxFiles: 3,
|
|
18
|
+
tailable: true,
|
|
19
|
+
});
|
|
20
|
+
const axiom = new AxiomTransport({ token: this.config.AXIOM_API_TOKEN, dataset: this.config.app });
|
|
21
|
+
return new LoggerWinstonAdapter({
|
|
22
|
+
app: this.config.app,
|
|
23
|
+
environment: NodeEnvironmentEnum.production,
|
|
24
|
+
level,
|
|
25
|
+
transports: [file, axiom],
|
|
26
|
+
});
|
|
27
|
+
}
|
|
28
|
+
createProdLogFile() {
|
|
29
|
+
return `/var/log/${this.config.app}-${NodeEnvironmentEnum.production}.log`;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=logger-winston-production.adapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger-winston-production.adapter.js","sourceRoot":"","sources":["../src/logger-winston-production.adapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,IAAI,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACtE,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AAEnC,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAOpD,MAAM,OAAO,8BAA8B;IAGZ;IAFpB,WAAW,CAAS;IAE7B,YAA6B,MAAgD;QAAhD,WAAM,GAAN,MAAM,CAA0C;QAC3E,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;IAC9C,CAAC;IAED,MAAM,CAAC,KAAmB;QACxB,MAAM,IAAI,GAAG,IAAI,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC;YACvC,QAAQ,EAAE,YAAY,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,mBAAmB,CAAC,UAAU,MAAM;YAC7E,OAAO,EAAE,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,QAAQ,CAAC,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;YACpE,QAAQ,EAAE,CAAC;YACX,QAAQ,EAAE,IAAI;SACf,CAAC,CAAC;QAEH,MAAM,KAAK,GAAG,IAAI,cAAc,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC;QAEnG,OAAO,IAAI,oBAAoB,CAAC;YAC9B,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,GAAG;YACpB,WAAW,EAAE,mBAAmB,CAAC,UAAU;YAC3C,KAAK;YACL,UAAU,EAAE,CAAC,IAAI,EAAE,KAAK,CAAC;SAC1B,CAAC,CAAC;IACL,CAAC;IAEO,iBAAiB;QACvB,OAAO,YAAY,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,mBAAmB,CAAC,UAAU,MAAM,CAAC;IAC7E,CAAC;CACF"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import * as winston from "winston";
|
|
2
|
+
import { type LogAppType, type LoggerPort, LogLevelEnum } from "./logger.port";
|
|
3
|
+
import type { NodeEnvironmentEnum } from "./node-env.vo";
|
|
4
|
+
type WinstonLoggerOptions = {
|
|
5
|
+
app: LogAppType;
|
|
6
|
+
environment: NodeEnvironmentEnum;
|
|
7
|
+
level: LogLevelEnum;
|
|
8
|
+
formats?: winston.Logform.Format[];
|
|
9
|
+
transports?: winston.transport[];
|
|
10
|
+
};
|
|
11
|
+
export declare class LoggerWinstonAdapter implements LoggerPort {
|
|
12
|
+
private readonly logger;
|
|
13
|
+
constructor(options: WinstonLoggerOptions);
|
|
14
|
+
warn: LoggerPort["warn"];
|
|
15
|
+
error: LoggerPort["error"];
|
|
16
|
+
info: LoggerPort["info"];
|
|
17
|
+
http: LoggerPort["http"];
|
|
18
|
+
verbose: LoggerPort["verbose"];
|
|
19
|
+
debug: LoggerPort["debug"];
|
|
20
|
+
silly: LoggerPort["silly"];
|
|
21
|
+
setSilent: LoggerPort["setSilent"];
|
|
22
|
+
}
|
|
23
|
+
export {};
|
|
24
|
+
//# sourceMappingURL=logger-winston.adapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger-winston.adapter.d.ts","sourceRoot":"","sources":["../src/logger-winston.adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AACnC,OAAO,EAAE,KAAK,UAAU,EAAE,KAAK,UAAU,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC/E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAEzD,KAAK,oBAAoB,GAAG;IAC1B,GAAG,EAAE,UAAU,CAAC;IAChB,WAAW,EAAE,mBAAmB,CAAC;IACjC,KAAK,EAAE,YAAY,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;IACnC,UAAU,CAAC,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC;CAClC,CAAC;AAEF,qBAAa,oBAAqB,YAAW,UAAU;IACrD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAiB;gBAE5B,OAAO,EAAE,oBAAoB;IAmBzC,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC,CAAkE;IAC1F,KAAK,EAAE,UAAU,CAAC,OAAO,CAAC,CAAmE;IAC7F,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC,CAAkE;IAC1F,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC,CAAkE;IAC1F,OAAO,EAAE,UAAU,CAAC,SAAS,CAAC,CAAqE;IACnG,KAAK,EAAE,UAAU,CAAC,OAAO,CAAC,CAAmE;IAC7F,KAAK,EAAE,UAAU,CAAC,OAAO,CAAC,CAAmE;IAE7F,SAAS,EAAE,UAAU,CAAC,WAAW,CAAC,CAEhC;CACH"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import * as winston from "winston";
|
|
2
|
+
import { LogLevelEnum } from "./logger.port";
|
|
3
|
+
export class LoggerWinstonAdapter {
|
|
4
|
+
logger;
|
|
5
|
+
constructor(options) {
|
|
6
|
+
const format = winston.format.combine(winston.format.errors({ stack: true }), winston.format.timestamp(), winston.format.json(), ...(options.formats ?? []));
|
|
7
|
+
this.logger = winston.createLogger({
|
|
8
|
+
levels: winston.config.npm.levels,
|
|
9
|
+
level: options.level,
|
|
10
|
+
defaultMeta: { app: options.app, environment: options.environment },
|
|
11
|
+
handleExceptions: true,
|
|
12
|
+
handleRejections: true,
|
|
13
|
+
format,
|
|
14
|
+
transports: [new winston.transports.Console(), ...(options.transports ?? [])],
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
warn = (log) => this.logger.log({ level: LogLevelEnum.warn, ...log });
|
|
18
|
+
error = (log) => this.logger.log({ level: LogLevelEnum.error, ...log });
|
|
19
|
+
info = (log) => this.logger.log({ level: LogLevelEnum.info, ...log });
|
|
20
|
+
http = (log) => this.logger.log({ level: LogLevelEnum.http, ...log });
|
|
21
|
+
verbose = (log) => this.logger.log({ level: LogLevelEnum.verbose, ...log });
|
|
22
|
+
debug = (log) => this.logger.log({ level: LogLevelEnum.debug, ...log });
|
|
23
|
+
silly = (log) => this.logger.log({ level: LogLevelEnum.silly, ...log });
|
|
24
|
+
setSilent = (silent) => {
|
|
25
|
+
this.logger.silent = silent;
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=logger-winston.adapter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger-winston.adapter.js","sourceRoot":"","sources":["../src/logger-winston.adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AACnC,OAAO,EAAoC,YAAY,EAAE,MAAM,eAAe,CAAC;AAW/E,MAAM,OAAO,oBAAoB;IACd,MAAM,CAAiB;IAExC,YAAY,OAA6B;QACvC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,OAAO,CACnC,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,EACtC,OAAO,CAAC,MAAM,CAAC,SAAS,EAAE,EAC1B,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,EACrB,GAAG,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC,CAC3B,CAAC;QAEF,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;YACjC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM;YACjC,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,WAAW,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,GAAG,EAAE,WAAW,EAAE,OAAO,CAAC,WAAW,EAAE;YACnE,gBAAgB,EAAE,IAAI;YACtB,gBAAgB,EAAE,IAAI;YACtB,MAAM;YACN,UAAU,EAAE,CAAC,IAAI,OAAO,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,GAAG,CAAC,OAAO,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC;SAC9E,CAAC,CAAC;IACL,CAAC;IAED,IAAI,GAAuB,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,YAAY,CAAC,IAAI,EAAE,GAAG,GAAG,EAAE,CAAC,CAAC;IAC1F,KAAK,GAAwB,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,YAAY,CAAC,KAAK,EAAE,GAAG,GAAG,EAAE,CAAC,CAAC;IAC7F,IAAI,GAAuB,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,YAAY,CAAC,IAAI,EAAE,GAAG,GAAG,EAAE,CAAC,CAAC;IAC1F,IAAI,GAAuB,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,YAAY,CAAC,IAAI,EAAE,GAAG,GAAG,EAAE,CAAC,CAAC;IAC1F,OAAO,GAA0B,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,YAAY,CAAC,OAAO,EAAE,GAAG,GAAG,EAAE,CAAC,CAAC;IACnG,KAAK,GAAwB,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,YAAY,CAAC,KAAK,EAAE,GAAG,GAAG,EAAE,CAAC,CAAC;IAC7F,KAAK,GAAwB,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,YAAY,CAAC,KAAK,EAAE,GAAG,GAAG,EAAE,CAAC,CAAC;IAE7F,SAAS,GAA4B,CAAC,MAAM,EAAE,EAAE;QAC9C,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC;IAC9B,CAAC,CAAC;CACH"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import type { CorrelationIdType } from "./correlation-id.vo";
|
|
2
|
+
import type { NodeEnvironmentEnum } from "./node-env.vo";
|
|
3
|
+
export type HttpClientInfo = {
|
|
4
|
+
ip?: string;
|
|
5
|
+
userAgent?: string;
|
|
6
|
+
};
|
|
7
|
+
export type LogAppType = string;
|
|
8
|
+
export type ErrorInfo = {
|
|
9
|
+
name?: string;
|
|
10
|
+
message?: string;
|
|
11
|
+
stack?: string;
|
|
12
|
+
code?: string;
|
|
13
|
+
cause?: {
|
|
14
|
+
name?: string;
|
|
15
|
+
message?: string;
|
|
16
|
+
};
|
|
17
|
+
};
|
|
18
|
+
export declare enum LogLevelEnum {
|
|
19
|
+
error = "error",
|
|
20
|
+
warn = "warn",
|
|
21
|
+
info = "info",
|
|
22
|
+
http = "http",
|
|
23
|
+
verbose = "verbose",
|
|
24
|
+
debug = "debug",
|
|
25
|
+
silly = "silly"
|
|
26
|
+
}
|
|
27
|
+
export type LogCoreType = {
|
|
28
|
+
/** ISO-8601 UTC string with milliseconds, e.g. 2025-08-23T18:42:31.123Z */
|
|
29
|
+
timestamp: string;
|
|
30
|
+
level: LogLevelEnum;
|
|
31
|
+
app: LogAppType;
|
|
32
|
+
environment: NodeEnvironmentEnum;
|
|
33
|
+
/** Bounded context / subsystem, e.g., "http" | "emotions" | "publishing" | "infra" */
|
|
34
|
+
component: string;
|
|
35
|
+
/** Machine-friendly operation name, e.g., "weekly_review_generate" */
|
|
36
|
+
operation: string;
|
|
37
|
+
/** Short human-readable sentence */
|
|
38
|
+
message: string;
|
|
39
|
+
correlationId?: CorrelationIdType;
|
|
40
|
+
metadata?: Record<string, any>;
|
|
41
|
+
};
|
|
42
|
+
export type LogHttpType = LogCoreType & {
|
|
43
|
+
level: LogLevelEnum.http;
|
|
44
|
+
component: "http";
|
|
45
|
+
method: string;
|
|
46
|
+
url: string;
|
|
47
|
+
status?: number;
|
|
48
|
+
durationMs?: number;
|
|
49
|
+
client: HttpClientInfo;
|
|
50
|
+
cacheHit?: boolean;
|
|
51
|
+
};
|
|
52
|
+
export type LogErrorType = LogCoreType & {
|
|
53
|
+
level: LogLevelEnum.error;
|
|
54
|
+
error: ErrorInfo;
|
|
55
|
+
};
|
|
56
|
+
export type LogWarnType = LogCoreType & {
|
|
57
|
+
level: LogLevelEnum.warn;
|
|
58
|
+
error?: ErrorInfo;
|
|
59
|
+
};
|
|
60
|
+
export type AdapterInjectedFields = "timestamp" | "level" | "app" | "environment";
|
|
61
|
+
export interface LoggerPort {
|
|
62
|
+
error(entry: Omit<LogErrorType, AdapterInjectedFields>): void;
|
|
63
|
+
warn(entry: Omit<LogWarnType, AdapterInjectedFields>): void;
|
|
64
|
+
info(entry: Omit<LogCoreType, AdapterInjectedFields>): void;
|
|
65
|
+
http(entry: Omit<LogHttpType, AdapterInjectedFields>): void;
|
|
66
|
+
verbose(entry: Omit<LogCoreType, AdapterInjectedFields>): void;
|
|
67
|
+
debug(entry: Omit<LogCoreType, AdapterInjectedFields>): void;
|
|
68
|
+
silly(entry: Omit<LogCoreType, AdapterInjectedFields>): void;
|
|
69
|
+
setSilent(silent: boolean): void;
|
|
70
|
+
}
|
|
71
|
+
//# sourceMappingURL=logger.port.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.port.d.ts","sourceRoot":"","sources":["../src/logger.port.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export var LogLevelEnum;
|
|
2
|
+
(function (LogLevelEnum) {
|
|
3
|
+
LogLevelEnum["error"] = "error";
|
|
4
|
+
LogLevelEnum["warn"] = "warn";
|
|
5
|
+
LogLevelEnum["info"] = "info";
|
|
6
|
+
LogLevelEnum["http"] = "http";
|
|
7
|
+
LogLevelEnum["verbose"] = "verbose";
|
|
8
|
+
LogLevelEnum["debug"] = "debug";
|
|
9
|
+
LogLevelEnum["silly"] = "silly";
|
|
10
|
+
})(LogLevelEnum || (LogLevelEnum = {}));
|
|
11
|
+
//# sourceMappingURL=logger.port.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.port.js","sourceRoot":"","sources":["../src/logger.port.ts"],"names":[],"mappings":"AAeA,MAAM,CAAN,IAAY,YAQX;AARD,WAAY,YAAY;IACtB,+BAAe,CAAA;IACf,6BAAa,CAAA;IACb,6BAAa,CAAA;IACb,6BAAa,CAAA;IACb,mCAAmB,CAAA;IACnB,+BAAe,CAAA;IACf,+BAAe,CAAA;AACjB,CAAC,EARW,YAAY,KAAZ,YAAY,QAQvB"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import type { SendMailOptions } from "nodemailer";
|
|
2
|
-
import type {
|
|
2
|
+
import type { LoggerPort } from "./logger.port";
|
|
3
3
|
import type { MailerPort } from "./mailer.port";
|
|
4
4
|
type MailerSendOptionsType = SendMailOptions;
|
|
5
5
|
export declare class MailerNoopAdapter implements MailerPort {
|
|
6
6
|
private readonly logger;
|
|
7
|
-
constructor(logger:
|
|
7
|
+
constructor(logger: LoggerPort);
|
|
8
8
|
send(message: MailerSendOptionsType): Promise<unknown>;
|
|
9
9
|
verify(): Promise<boolean>;
|
|
10
10
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mailer-noop.adapter.d.ts","sourceRoot":"","sources":["../src/mailer-noop.adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"mailer-noop.adapter.d.ts","sourceRoot":"","sources":["../src/mailer-noop.adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAEhD,KAAK,qBAAqB,GAAG,eAAe,CAAC;AAE7C,qBAAa,iBAAkB,YAAW,UAAU;IACtC,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,UAAU;IAEzC,IAAI,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,OAAO,CAAC;IAStD,MAAM;CAGb"}
|
|
@@ -4,7 +4,12 @@ export class MailerNoopAdapter {
|
|
|
4
4
|
this.logger = logger;
|
|
5
5
|
}
|
|
6
6
|
async send(message) {
|
|
7
|
-
return this.logger.info({
|
|
7
|
+
return this.logger.info({
|
|
8
|
+
message: "[NOOP] Mailer adapter",
|
|
9
|
+
component: "mailer",
|
|
10
|
+
operation: "write",
|
|
11
|
+
metadata: message,
|
|
12
|
+
});
|
|
8
13
|
}
|
|
9
14
|
async verify() {
|
|
10
15
|
return true;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mailer-noop.adapter.js","sourceRoot":"","sources":["../src/mailer-noop.adapter.ts"],"names":[],"mappings":"AAMA,MAAM,OAAO,iBAAiB;IACC;IAA7B,YAA6B,
|
|
1
|
+
{"version":3,"file":"mailer-noop.adapter.js","sourceRoot":"","sources":["../src/mailer-noop.adapter.ts"],"names":[],"mappings":"AAMA,MAAM,OAAO,iBAAiB;IACC;IAA7B,YAA6B,MAAkB;QAAlB,WAAM,GAAN,MAAM,CAAY;IAAG,CAAC;IAEnD,KAAK,CAAC,IAAI,CAAC,OAA8B;QACvC,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;YACtB,OAAO,EAAE,uBAAuB;YAChC,SAAS,EAAE,QAAQ;YACnB,SAAS,EAAE,OAAO;YAClB,QAAQ,EAAE,OAAO;SAClB,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,MAAM;QACV,OAAO,IAAI,CAAC;IACd,CAAC;CACF"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import type { SendMailOptions } from "nodemailer";
|
|
2
|
-
import type {
|
|
2
|
+
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
6
|
type SmtpMailerWithLoggerConfigType = {
|
|
7
7
|
smtpMailer: MailerSmtpAdapter;
|
|
8
|
-
logger:
|
|
8
|
+
logger: LoggerPort;
|
|
9
9
|
};
|
|
10
10
|
export declare class MailerSmtpWithLoggerAdapter implements MailerPort {
|
|
11
11
|
private readonly config;
|
|
@@ -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,
|
|
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,8BAA8B,GAAG;IACpC,UAAU,EAAE,iBAAiB,CAAC;IAC9B,MAAM,EAAE,UAAU,CAAC;CACpB,CAAC;AAEF,qBAAa,2BAA4B,YAAW,UAAU;IAChD,OAAO,CAAC,QAAQ,CAAC,MAAM;gBAAN,MAAM,EAAE,8BAA8B;IAE7D,IAAI,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,OAAO,CAAC;IA+BtD,MAAM;CAGb"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { formatError } from "./logger-format-error.service";
|
|
1
2
|
export class MailerSmtpWithLoggerAdapter {
|
|
2
3
|
config;
|
|
3
4
|
constructor(config) {
|
|
@@ -5,10 +6,16 @@ export class MailerSmtpWithLoggerAdapter {
|
|
|
5
6
|
}
|
|
6
7
|
async send(message) {
|
|
7
8
|
try {
|
|
8
|
-
this.config.logger.info({
|
|
9
|
+
this.config.logger.info({
|
|
10
|
+
message: "Mailer attempt",
|
|
11
|
+
component: "infra",
|
|
12
|
+
operation: "mailer",
|
|
13
|
+
metadata: message,
|
|
14
|
+
});
|
|
9
15
|
const result = await this.config.smtpMailer.send(message);
|
|
10
16
|
this.config.logger.info({
|
|
11
17
|
message: "Mailer success",
|
|
18
|
+
component: "infra",
|
|
12
19
|
operation: "mailer",
|
|
13
20
|
metadata: { message, result },
|
|
14
21
|
});
|
|
@@ -17,8 +24,9 @@ export class MailerSmtpWithLoggerAdapter {
|
|
|
17
24
|
catch (error) {
|
|
18
25
|
this.config.logger.error({
|
|
19
26
|
message: "Mailer error",
|
|
27
|
+
component: "infra",
|
|
20
28
|
operation: "mailer",
|
|
21
|
-
|
|
29
|
+
error: formatError(error),
|
|
22
30
|
});
|
|
23
31
|
throw error;
|
|
24
32
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mailer-smtp-with-logger.adapter.js","sourceRoot":"","sources":["../src/mailer-smtp-with-logger.adapter.ts"],"names":[],"mappings":"
|
|
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;AAW5D,MAAM,OAAO,2BAA2B;IACT;IAA7B,YAA6B,MAAsC;QAAtC,WAAM,GAAN,MAAM,CAAgC;IAAG,CAAC;IAEvE,KAAK,CAAC,IAAI,CAAC,OAA8B;QACvC,IAAI,CAAC;YACH,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;gBACtB,OAAO,EAAE,gBAAgB;gBACzB,SAAS,EAAE,OAAO;gBAClB,SAAS,EAAE,QAAQ;gBACnB,QAAQ,EAAE,OAAO;aAClB,CAAC,CAAC;YAEH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAE1D,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;gBACtB,OAAO,EAAE,gBAAgB;gBACzB,SAAS,EAAE,OAAO;gBAClB,SAAS,EAAE,QAAQ;gBACnB,QAAQ,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE;aAC9B,CAAC,CAAC;YAEH,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC;gBACvB,OAAO,EAAE,cAAc;gBACvB,SAAS,EAAE,OAAO;gBAClB,SAAS,EAAE,QAAQ;gBACnB,KAAK,EAAE,WAAW,CAAC,KAAK,CAAC;aAC1B,CAAC,CAAC;YAEH,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED,KAAK,CAAC,MAAM;QACV,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;IACzC,CAAC;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/modules/history/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/modules/history/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,aAAa,MAAM,kBAAkB,CAAC;AAClD,OAAO,KAAK,MAAM,MAAM,UAAU,CAAC;AACnC,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AACjC,OAAO,KAAK,EAAE,MAAM,iBAAiB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/modules/history/index.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/modules/history/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,aAAa,MAAM,kBAAkB,CAAC;AAClD,OAAO,KAAK,MAAM,MAAM,UAAU,CAAC;AACnC,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AACjC,OAAO,KAAK,EAAE,MAAM,iBAAiB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"history-writer.d.ts","sourceRoot":"","sources":["../../../../src/modules/history/ports/history-writer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAE5C,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,WAAW,EAAE,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7D,KAAK,CAAC,OAAO,EAAE,EAAE,CAAC,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACtD"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"history-writer.js","sourceRoot":"","sources":["../../../../src/modules/history/ports/history-writer.ts"],"names":[],"mappings":""}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/modules/history/ports/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/modules/history/ports/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/modules/history/ports/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/modules/history/ports/index.ts"],"names":[],"mappings":"AAAA,cAAc,sBAAsB,CAAC;AACrC,cAAc,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type * as tools from "@bgord/tools";
|
|
2
|
+
import type { EventStoreLike } from "../../../event-store-like.types";
|
|
3
|
+
import type * as Commands from "../commands";
|
|
4
|
+
import * as Events from "../events";
|
|
5
|
+
import type * as Ports from "../ports";
|
|
6
|
+
import type * as VO from "../value-objects";
|
|
7
|
+
type AcceptedEvent = Events.UserLanguageSetEventType;
|
|
8
|
+
export declare const handleSetUserLanguageCommand: <L extends readonly tools.LanguageType[]>(EventStore: EventStoreLike<AcceptedEvent>, query: Ports.UserLanguageQueryPort, supported: VO.SupportedLanguagesSet<L>) => (command: Commands.SetUserLanguageCommandType) => Promise<void>;
|
|
9
|
+
export {};
|
|
10
|
+
//# sourceMappingURL=handleSetUserLanguageCommand.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handleSetUserLanguageCommand.d.ts","sourceRoot":"","sources":["../../../../src/modules/preferences/command-handlers/handleSetUserLanguageCommand.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAC;AAE3C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACtE,OAAO,KAAK,KAAK,QAAQ,MAAM,aAAa,CAAC;AAC7C,OAAO,KAAK,MAAM,MAAM,WAAW,CAAC;AAEpC,OAAO,KAAK,KAAK,KAAK,MAAM,UAAU,CAAC;AACvC,OAAO,KAAK,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAE5C,KAAK,aAAa,GAAG,MAAM,CAAC,wBAAwB,CAAC;AAErD,eAAO,MAAM,4BAA4B,GACtC,CAAC,SAAS,SAAS,KAAK,CAAC,YAAY,EAAE,EACtC,YAAY,cAAc,CAAC,aAAa,CAAC,EACzC,OAAO,KAAK,CAAC,qBAAqB,EAClC,WAAW,EAAE,CAAC,qBAAqB,CAAC,CAAC,CAAC,MAEjC,SAAS,QAAQ,CAAC,0BAA0B,kBAalD,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { createEventEnvelope } from "../../../event-envelope";
|
|
2
|
+
import * as Events from "../events";
|
|
3
|
+
import * as Invariants from "../invariants";
|
|
4
|
+
export const handleSetUserLanguageCommand = (EventStore, query, supported) => async (command) => {
|
|
5
|
+
const candidate = supported.ensure(command.payload.language);
|
|
6
|
+
const current = await query.get(command.payload.userId);
|
|
7
|
+
if (Invariants.UserLanguageHasChanged.fails({ current, candidate: command.payload.language }))
|
|
8
|
+
return;
|
|
9
|
+
const event = Events.UserLanguageSetEvent.parse({
|
|
10
|
+
...createEventEnvelope(`preferences_${command.payload.userId}`),
|
|
11
|
+
name: Events.USER_LANGUAGE_SET_EVENT,
|
|
12
|
+
payload: { userId: command.payload.userId, language: candidate },
|
|
13
|
+
});
|
|
14
|
+
await EventStore.save([event]);
|
|
15
|
+
};
|
|
16
|
+
//# sourceMappingURL=handleSetUserLanguageCommand.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"handleSetUserLanguageCommand.js","sourceRoot":"","sources":["../../../../src/modules/preferences/command-handlers/handleSetUserLanguageCommand.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAG9D,OAAO,KAAK,MAAM,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,UAAU,MAAM,eAAe,CAAC;AAM5C,MAAM,CAAC,MAAM,4BAA4B,GACvC,CACE,UAAyC,EACzC,KAAkC,EAClC,SAAsC,EACtC,EAAE,CACJ,KAAK,EAAE,OAA4C,EAAE,EAAE;IACrD,MAAM,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAC7D,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAExD,IAAI,UAAU,CAAC,sBAAsB,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;QAAE,OAAO;IAEtG,MAAM,KAAK,GAAG,MAAM,CAAC,oBAAoB,CAAC,KAAK,CAAC;QAC9C,GAAG,mBAAmB,CAAC,eAAe,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;QAC/D,IAAI,EAAE,MAAM,CAAC,uBAAuB;QACpC,OAAO,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,OAAO,CAAC,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE;KACvB,CAAC,CAAC;IAE7C,MAAM,UAAU,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AACjC,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/modules/preferences/command-handlers/index.ts"],"names":[],"mappings":"AAAA,cAAc,gCAAgC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/modules/preferences/command-handlers/index.ts"],"names":[],"mappings":"AAAA,cAAc,gCAAgC,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { z } from "zod/v4";
|
|
2
|
+
export declare const SET_USER_LANGUAGE_COMMAND = "SET_USER_LANGUAGE_COMMAND";
|
|
3
|
+
export declare const SetUserLanguageCommand: z.ZodObject<{
|
|
4
|
+
name: z.ZodLiteral<"SET_USER_LANGUAGE_COMMAND">;
|
|
5
|
+
payload: z.ZodObject<{
|
|
6
|
+
language: z.ZodString;
|
|
7
|
+
userId: z.ZodUUID;
|
|
8
|
+
}, z.core.$strip>;
|
|
9
|
+
id: z.ZodUUID;
|
|
10
|
+
correlationId: z.ZodUUID;
|
|
11
|
+
createdAt: z.core.$ZodBranded<z.ZodNumber, "Timestamp">;
|
|
12
|
+
}, z.core.$strip>;
|
|
13
|
+
export type SetUserLanguageCommandType = z.infer<typeof SetUserLanguageCommand>;
|
|
14
|
+
//# sourceMappingURL=SET_USER_LANGUAGE_COMMAND.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SET_USER_LANGUAGE_COMMAND.d.ts","sourceRoot":"","sources":["../../../../src/modules/preferences/commands/SET_USER_LANGUAGE_COMMAND.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAI3B,eAAO,MAAM,yBAAyB,8BAA8B,CAAC;AAErE,eAAO,MAAM,sBAAsB;;;;;;;;;iBAIjC,CAAC;AAEH,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,sBAAsB,CAAC,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import * as tools from "@bgord/tools";
|
|
2
|
+
import { z } from "zod/v4";
|
|
3
|
+
import { CommandEnvelopeSchema } from "../../../command-envelope";
|
|
4
|
+
import { UUID } from "../../../uuid.vo";
|
|
5
|
+
export const SET_USER_LANGUAGE_COMMAND = "SET_USER_LANGUAGE_COMMAND";
|
|
6
|
+
export const SetUserLanguageCommand = z.object({
|
|
7
|
+
...CommandEnvelopeSchema,
|
|
8
|
+
name: z.literal(SET_USER_LANGUAGE_COMMAND),
|
|
9
|
+
payload: z.object({ language: tools.Language, userId: UUID }),
|
|
10
|
+
});
|
|
11
|
+
//# sourceMappingURL=SET_USER_LANGUAGE_COMMAND.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SET_USER_LANGUAGE_COMMAND.js","sourceRoot":"","sources":["../../../../src/modules/preferences/commands/SET_USER_LANGUAGE_COMMAND.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAC3B,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAExC,MAAM,CAAC,MAAM,yBAAyB,GAAG,2BAA2B,CAAC;AAErE,MAAM,CAAC,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7C,GAAG,qBAAqB;IACxB,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,yBAAyB,CAAC;IAC1C,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;CAC9D,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/modules/preferences/commands/index.ts"],"names":[],"mappings":"AAAA,cAAc,6BAA6B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/modules/preferences/commands/index.ts"],"names":[],"mappings":"AAAA,cAAc,6BAA6B,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { z } from "zod/v4";
|
|
2
|
+
export declare const USER_LANGUAGE_SET_EVENT = "USER_LANGUAGE_SET_EVENT";
|
|
3
|
+
export declare const UserLanguageSetEvent: z.ZodObject<{
|
|
4
|
+
name: z.ZodLiteral<"USER_LANGUAGE_SET_EVENT">;
|
|
5
|
+
payload: z.ZodObject<{
|
|
6
|
+
userId: z.ZodUUID;
|
|
7
|
+
language: z.ZodString;
|
|
8
|
+
}, z.core.$strip>;
|
|
9
|
+
id: z.ZodUUID;
|
|
10
|
+
correlationId: z.ZodUUID;
|
|
11
|
+
createdAt: z.core.$ZodBranded<z.ZodNumber, "Timestamp">;
|
|
12
|
+
stream: z.ZodString;
|
|
13
|
+
version: z.ZodLiteral<1>;
|
|
14
|
+
revision: z.ZodOptional<z.ZodNumber>;
|
|
15
|
+
}, z.core.$strip>;
|
|
16
|
+
export type UserLanguageSetEventType = z.infer<typeof UserLanguageSetEvent>;
|
|
17
|
+
//# sourceMappingURL=USER_LANGUAGE_SET_EVENT.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"USER_LANGUAGE_SET_EVENT.d.ts","sourceRoot":"","sources":["../../../../src/modules/preferences/events/USER_LANGUAGE_SET_EVENT.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAI3B,eAAO,MAAM,uBAAuB,4BAA4B,CAAC;AAEjE,eAAO,MAAM,oBAAoB;;;;;;;;;;;;iBAI/B,CAAC;AAEH,MAAM,MAAM,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import * as tools from "@bgord/tools";
|
|
2
|
+
import { z } from "zod/v4";
|
|
3
|
+
import { EventEnvelopeSchema } from "../../../event-envelope";
|
|
4
|
+
import { UUID } from "../../../uuid.vo";
|
|
5
|
+
export const USER_LANGUAGE_SET_EVENT = "USER_LANGUAGE_SET_EVENT";
|
|
6
|
+
export const UserLanguageSetEvent = z.object({
|
|
7
|
+
...EventEnvelopeSchema,
|
|
8
|
+
name: z.literal(USER_LANGUAGE_SET_EVENT),
|
|
9
|
+
payload: z.object({ userId: UUID, language: tools.Language }),
|
|
10
|
+
});
|
|
11
|
+
//# sourceMappingURL=USER_LANGUAGE_SET_EVENT.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"USER_LANGUAGE_SET_EVENT.js","sourceRoot":"","sources":["../../../../src/modules/preferences/events/USER_LANGUAGE_SET_EVENT.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAC3B,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAExC,MAAM,CAAC,MAAM,uBAAuB,GAAG,yBAAyB,CAAC;AAEjE,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3C,GAAG,mBAAmB;IACtB,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,uBAAuB,CAAC;IACxC,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC;CAC9D,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/modules/preferences/events/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/modules/preferences/events/index.ts"],"names":[],"mappings":"AAAA,cAAc,2BAA2B,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export * as CommandHandlers from "./command-handlers";
|
|
2
|
+
export * as Commands from "./commands";
|
|
3
|
+
export * as Events from "./events";
|
|
4
|
+
export * as Invariants from "./invariants";
|
|
5
|
+
export * as OHQ from "./open-host-queries";
|
|
6
|
+
export * as Ports from "./ports";
|
|
7
|
+
export * as VO from "./value-objects";
|
|
8
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/modules/preferences/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,eAAe,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,QAAQ,MAAM,YAAY,CAAC;AACvC,OAAO,KAAK,MAAM,MAAM,UAAU,CAAC;AACnC,OAAO,KAAK,UAAU,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,GAAG,MAAM,qBAAqB,CAAC;AAC3C,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AACjC,OAAO,KAAK,EAAE,MAAM,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export * as CommandHandlers from "./command-handlers";
|
|
2
|
+
export * as Commands from "./commands";
|
|
3
|
+
export * as Events from "./events";
|
|
4
|
+
export * as Invariants from "./invariants";
|
|
5
|
+
export * as OHQ from "./open-host-queries";
|
|
6
|
+
export * as Ports from "./ports";
|
|
7
|
+
export * as VO from "./value-objects";
|
|
8
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/modules/preferences/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,eAAe,MAAM,oBAAoB,CAAC;AACtD,OAAO,KAAK,QAAQ,MAAM,YAAY,CAAC;AACvC,OAAO,KAAK,MAAM,MAAM,UAAU,CAAC;AACnC,OAAO,KAAK,UAAU,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,GAAG,MAAM,qBAAqB,CAAC;AAC3C,OAAO,KAAK,KAAK,MAAM,SAAS,CAAC;AACjC,OAAO,KAAK,EAAE,MAAM,iBAAiB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/modules/preferences/invariants/index.ts"],"names":[],"mappings":"AAAA,cAAc,6BAA6B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/modules/preferences/invariants/index.ts"],"names":[],"mappings":"AAAA,cAAc,6BAA6B,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type * as tools from "@bgord/tools";
|
|
2
|
+
import type { ContentfulStatusCode } from "hono/utils/http-status";
|
|
3
|
+
import { Invariant } from "../../../invariant.service";
|
|
4
|
+
declare class UserLanguageHasChangedError extends Error {
|
|
5
|
+
constructor();
|
|
6
|
+
}
|
|
7
|
+
type UserLanguageHasChangedConfigType = {
|
|
8
|
+
current?: tools.LanguageType | null;
|
|
9
|
+
candidate: tools.LanguageType;
|
|
10
|
+
};
|
|
11
|
+
declare class UserLanguageHasChangedFactory extends Invariant<UserLanguageHasChangedConfigType> {
|
|
12
|
+
fails(config: UserLanguageHasChangedConfigType): boolean;
|
|
13
|
+
message: string;
|
|
14
|
+
error: typeof UserLanguageHasChangedError;
|
|
15
|
+
code: ContentfulStatusCode;
|
|
16
|
+
}
|
|
17
|
+
export declare const UserLanguageHasChanged: UserLanguageHasChangedFactory;
|
|
18
|
+
export {};
|
|
19
|
+
//# sourceMappingURL=user-language-has-changed.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"user-language-has-changed.d.ts","sourceRoot":"","sources":["../../../../src/modules/preferences/invariants/user-language-has-changed.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AACnE,OAAO,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAEvD,cAAM,2BAA4B,SAAQ,KAAK;;CAK9C;AAED,KAAK,gCAAgC,GAAG;IACtC,OAAO,CAAC,EAAE,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC;IACpC,SAAS,EAAE,KAAK,CAAC,YAAY,CAAC;CAC/B,CAAC;AAEF,cAAM,6BAA8B,SAAQ,SAAS,CAAC,gCAAgC,CAAC;IACrF,KAAK,CAAC,MAAM,EAAE,gCAAgC;IAK9C,OAAO,SAA4B;IAEnC,KAAK,qCAA+B;IAEpC,IAAI,EAAU,oBAAoB,CAAC;CACpC;AAED,eAAO,MAAM,sBAAsB,+BAAsC,CAAC"}
|