@bgord/bun 1.19.8 → 1.19.11

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.
Files changed (138) hide show
  1. package/dist/crypto-aes-gcm.service.d.ts.map +1 -1
  2. package/dist/crypto-aes-gcm.service.js +0 -1
  3. package/dist/crypto-aes-gcm.service.js.map +1 -1
  4. package/dist/index.d.ts +5 -2
  5. package/dist/index.d.ts.map +1 -1
  6. package/dist/index.js +5 -2
  7. package/dist/index.js.map +1 -1
  8. package/dist/modules/history/event-handlers/onHistoryClearedEvent.d.ts.map +1 -1
  9. package/dist/modules/history/event-handlers/onHistoryClearedEvent.js.map +1 -1
  10. package/dist/modules/history/event-handlers/onHistoryPopulatedEvent.d.ts.map +1 -1
  11. package/dist/modules/history/event-handlers/onHistoryPopulatedEvent.js +0 -1
  12. package/dist/modules/history/event-handlers/onHistoryPopulatedEvent.js.map +1 -1
  13. package/dist/modules/history/events/HISTORY_CLEARED_EVENT.d.ts.map +1 -1
  14. package/dist/modules/history/events/HISTORY_CLEARED_EVENT.js +0 -1
  15. package/dist/modules/history/events/HISTORY_CLEARED_EVENT.js.map +1 -1
  16. package/dist/modules/history/events/HISTORY_POPULATED_EVENT.d.ts.map +1 -1
  17. package/dist/modules/history/events/HISTORY_POPULATED_EVENT.js +0 -1
  18. package/dist/modules/history/events/HISTORY_POPULATED_EVENT.js.map +1 -1
  19. package/dist/modules/history/index.d.ts.map +1 -1
  20. package/dist/modules/history/index.js +0 -1
  21. package/dist/modules/history/index.js.map +1 -1
  22. package/dist/modules/history/ports/history-reader.d.ts.map +1 -1
  23. package/dist/modules/history/ports/history-writer.d.ts.map +1 -1
  24. package/dist/modules/history/value-objects/history-created-at.d.ts.map +1 -1
  25. package/dist/modules/history/value-objects/history-operation.d.ts.map +1 -1
  26. package/dist/modules/history/value-objects/history-operation.js +0 -1
  27. package/dist/modules/history/value-objects/history-operation.js.map +1 -1
  28. package/dist/modules/history/value-objects/history-payload.d.ts.map +1 -1
  29. package/dist/modules/history/value-objects/history-payload.js +0 -1
  30. package/dist/modules/history/value-objects/history-payload.js.map +1 -1
  31. package/dist/modules/history/value-objects/history-subject.d.ts.map +1 -1
  32. package/dist/modules/history/value-objects/history-subject.js +0 -1
  33. package/dist/modules/history/value-objects/history-subject.js.map +1 -1
  34. package/dist/modules/history/value-objects/history.d.ts.map +1 -1
  35. package/dist/modules/history/value-objects/history.js +0 -1
  36. package/dist/modules/history/value-objects/history.js.map +1 -1
  37. package/dist/modules/preferences/command-handlers/handleSetUserLanguageCommand.d.ts.map +1 -1
  38. package/dist/modules/preferences/command-handlers/handleSetUserLanguageCommand.js.map +1 -1
  39. package/dist/modules/preferences/commands/SET_USER_LANGUAGE_COMMAND.d.ts.map +1 -1
  40. package/dist/modules/preferences/commands/SET_USER_LANGUAGE_COMMAND.js +0 -1
  41. package/dist/modules/preferences/commands/SET_USER_LANGUAGE_COMMAND.js.map +1 -1
  42. package/dist/modules/preferences/events/USER_LANGUAGE_SET_EVENT.d.ts.map +1 -1
  43. package/dist/modules/preferences/events/USER_LANGUAGE_SET_EVENT.js +0 -1
  44. package/dist/modules/preferences/events/USER_LANGUAGE_SET_EVENT.js.map +1 -1
  45. package/dist/modules/preferences/index.d.ts.map +1 -1
  46. package/dist/modules/preferences/index.js +0 -1
  47. package/dist/modules/preferences/index.js.map +1 -1
  48. package/dist/modules/preferences/open-host-queries/user-language.d.ts.map +1 -1
  49. package/dist/modules/preferences/open-host-queries/user-language.js.map +1 -1
  50. package/dist/modules/preferences/ports/user-language-resolver.d.ts.map +1 -1
  51. package/dist/modules/preferences/ports/user-language-resolver.js.map +1 -1
  52. package/dist/modules/system/events/HOUR_HAS_PASSED_EVENT.d.ts.map +1 -1
  53. package/dist/modules/system/events/HOUR_HAS_PASSED_EVENT.js +0 -1
  54. package/dist/modules/system/events/HOUR_HAS_PASSED_EVENT.js.map +1 -1
  55. package/dist/modules/system/events/MINUTE_HAS_PASSED_EVENT.d.ts.map +1 -1
  56. package/dist/modules/system/events/MINUTE_HAS_PASSED_EVENT.js +0 -1
  57. package/dist/modules/system/events/MINUTE_HAS_PASSED_EVENT.js.map +1 -1
  58. package/dist/modules/system/events/SECURITY_VIOLATION_DETECTED_EVENT.d.ts.map +1 -1
  59. package/dist/modules/system/events/SECURITY_VIOLATION_DETECTED_EVENT.js +0 -1
  60. package/dist/modules/system/events/SECURITY_VIOLATION_DETECTED_EVENT.js.map +1 -1
  61. package/dist/node-env.vo.d.ts.map +1 -1
  62. package/dist/node-env.vo.js +0 -1
  63. package/dist/node-env.vo.js.map +1 -1
  64. package/dist/prerequisite-verifier-translations.adapter.d.ts +2 -4
  65. package/dist/prerequisite-verifier-translations.adapter.d.ts.map +1 -1
  66. package/dist/prerequisite-verifier-translations.adapter.js +1 -3
  67. package/dist/prerequisite-verifier-translations.adapter.js.map +1 -1
  68. package/dist/sitemap-changefreq.vo.d.ts.map +1 -1
  69. package/dist/sitemap-changefreq.vo.js +0 -1
  70. package/dist/sitemap-changefreq.vo.js.map +1 -1
  71. package/dist/translations-hono.handler.d.ts +2 -4
  72. package/dist/translations-hono.handler.d.ts.map +1 -1
  73. package/dist/translations-hono.handler.js.map +1 -1
  74. package/dist/translations-provider-json.adapter.d.ts +19 -0
  75. package/dist/translations-provider-json.adapter.d.ts.map +1 -0
  76. package/dist/translations-provider-json.adapter.js +21 -0
  77. package/dist/translations-provider-json.adapter.js.map +1 -0
  78. package/dist/translations-provider-noop.adapter.d.ts +8 -0
  79. package/dist/translations-provider-noop.adapter.d.ts.map +1 -0
  80. package/dist/translations-provider-noop.adapter.js +10 -0
  81. package/dist/translations-provider-noop.adapter.js.map +1 -0
  82. package/dist/translations-provider.port.d.ts +11 -0
  83. package/dist/translations-provider.port.d.ts.map +1 -0
  84. package/dist/translations-provider.port.js +2 -0
  85. package/dist/translations-provider.port.js.map +1 -0
  86. package/dist/translations.handler.d.ts +2 -6
  87. package/dist/translations.handler.d.ts.map +1 -1
  88. package/dist/translations.handler.js +1 -4
  89. package/dist/translations.handler.js.map +1 -1
  90. package/dist/translator.service.d.ts +5 -0
  91. package/dist/translator.service.d.ts.map +1 -0
  92. package/dist/translator.service.js +13 -0
  93. package/dist/translator.service.js.map +1 -0
  94. package/package.json +5 -10
  95. package/readme.md +4 -2
  96. package/src/crypto-aes-gcm.service.ts +0 -1
  97. package/src/index.ts +5 -2
  98. package/src/modules/history/event-handlers/onHistoryClearedEvent.ts +0 -1
  99. package/src/modules/history/event-handlers/onHistoryPopulatedEvent.ts +0 -1
  100. package/src/modules/history/events/HISTORY_CLEARED_EVENT.ts +0 -1
  101. package/src/modules/history/events/HISTORY_POPULATED_EVENT.ts +0 -1
  102. package/src/modules/history/index.ts +0 -1
  103. package/src/modules/history/ports/history-reader.ts +0 -1
  104. package/src/modules/history/ports/history-writer.ts +0 -1
  105. package/src/modules/history/value-objects/history-created-at.ts +0 -1
  106. package/src/modules/history/value-objects/history-operation.ts +0 -1
  107. package/src/modules/history/value-objects/history-payload.ts +0 -1
  108. package/src/modules/history/value-objects/history-subject.ts +0 -1
  109. package/src/modules/history/value-objects/history.ts +0 -1
  110. package/src/modules/preferences/command-handlers/handleSetUserLanguageCommand.ts +0 -1
  111. package/src/modules/preferences/commands/SET_USER_LANGUAGE_COMMAND.ts +0 -1
  112. package/src/modules/preferences/events/USER_LANGUAGE_SET_EVENT.ts +0 -1
  113. package/src/modules/preferences/index.ts +0 -1
  114. package/src/modules/preferences/open-host-queries/user-language.ts +0 -1
  115. package/src/modules/preferences/ports/user-language-resolver.ts +0 -1
  116. package/src/modules/system/events/HOUR_HAS_PASSED_EVENT.ts +0 -1
  117. package/src/modules/system/events/MINUTE_HAS_PASSED_EVENT.ts +0 -1
  118. package/src/modules/system/events/SECURITY_VIOLATION_DETECTED_EVENT.ts +0 -1
  119. package/src/node-env.vo.ts +0 -2
  120. package/src/prerequisite-verifier-translations.adapter.ts +5 -9
  121. package/src/sitemap-changefreq.vo.ts +0 -2
  122. package/src/translations-hono.handler.ts +2 -3
  123. package/src/translations-provider-json.adapter.ts +29 -0
  124. package/src/translations-provider-noop.adapter.ts +10 -0
  125. package/src/translations-provider.port.ts +13 -0
  126. package/src/translations.handler.ts +4 -10
  127. package/src/translator.service.ts +21 -0
  128. package/LICENSE +0 -21
  129. package/dist/i18n.service.d.ts +0 -25
  130. package/dist/i18n.service.d.ts.map +0 -1
  131. package/dist/i18n.service.js +0 -36
  132. package/dist/i18n.service.js.map +0 -1
  133. package/dist/mailer-resend.adapter.d.ts +0 -18
  134. package/dist/mailer-resend.adapter.d.ts.map +0 -1
  135. package/dist/mailer-resend.adapter.js +0 -31
  136. package/dist/mailer-resend.adapter.js.map +0 -1
  137. package/src/i18n.service.ts +0 -59
  138. package/src/mailer-resend.adapter.ts +0 -45
@@ -1 +1 @@
1
- {"version":3,"file":"node-env.vo.js","sourceRoot":"","sources":["../src/node-env.vo.ts"],"names":[],"mappings":"AAAA,wCAAwC;AAExC,MAAM,CAAN,IAAY,mBAKX;AALD,WAAY,mBAAmB;IAC7B,sCAAe,CAAA;IACf,oCAAa,CAAA;IACb,0CAAmB,CAAA;IACnB,gDAAyB,CAAA;AAC3B,CAAC,EALW,mBAAmB,KAAnB,mBAAmB,QAK9B"}
1
+ {"version":3,"file":"node-env.vo.js","sourceRoot":"","sources":["../src/node-env.vo.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,mBAKX;AALD,WAAY,mBAAmB;IAC7B,sCAAe,CAAA;IACf,oCAAa,CAAA;IACb,0CAAmB,CAAA;IACnB,gDAAyB,CAAA;AAC3B,CAAC,EALW,mBAAmB,KAAnB,mBAAmB,QAK9B"}
@@ -1,11 +1,9 @@
1
1
  import type * as tools from "@bgord/tools";
2
- import type { FileReaderJsonPort } from "./file-reader-json.port";
3
2
  import type { Languages } from "./languages.vo";
4
- import type { LoggerPort } from "./logger.port";
5
3
  import { type PrerequisiteVerificationResult, type PrerequisiteVerifierPort } from "./prerequisite-verifier.port";
4
+ import type { TranslationsProviderPort } from "./translations-provider.port";
6
5
  type Dependencies = {
7
- Logger: LoggerPort;
8
- FileReaderJson: FileReaderJsonPort;
6
+ TranslationsProvider: TranslationsProviderPort;
9
7
  };
10
8
  export declare class PrerequisiteVerifierTranslationsAdapter<T extends tools.LanguageType> implements PrerequisiteVerifierPort {
11
9
  private readonly config;
@@ -1 +1 @@
1
- {"version":3,"file":"prerequisite-verifier-translations.adapter.d.ts","sourceRoot":"","sources":["../src/prerequisite-verifier-translations.adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAGlE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAEL,KAAK,8BAA8B,EACnC,KAAK,wBAAwB,EAC9B,MAAM,8BAA8B,CAAC;AAQtC,KAAK,YAAY,GAAG;IAAE,MAAM,EAAE,UAAU,CAAC;IAAC,cAAc,EAAE,kBAAkB,CAAA;CAAE,CAAC;AAE/E,qBAAa,uCAAuC,CAAC,CAAC,SAAS,KAAK,CAAC,YAAY,CAC/E,YAAW,wBAAwB;IAGjC,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,IAAI;IAFvB,YACmB,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,EACpB,IAAI,EAAE,YAAY,EACjC;IAEE,MAAM,IAAI,OAAO,CAAC,8BAA8B,CAAC,CAsCtD;IAED,IAAI,IAAI,IAAI,MAAM,CAEjB;CACF"}
1
+ {"version":3,"file":"prerequisite-verifier-translations.adapter.d.ts","sourceRoot":"","sources":["../src/prerequisite-verifier-translations.adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAEL,KAAK,8BAA8B,EACnC,KAAK,wBAAwB,EAC9B,MAAM,8BAA8B,CAAC;AACtC,OAAO,KAAK,EAAuB,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AAQlG,KAAK,YAAY,GAAG;IAAE,oBAAoB,EAAE,wBAAwB,CAAA;CAAE,CAAC;AAEvE,qBAAa,uCAAuC,CAAC,CAAC,SAAS,KAAK,CAAC,YAAY,CAC/E,YAAW,wBAAwB;IAGjC,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,IAAI;IAFvB,YACmB,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,EACpB,IAAI,EAAE,YAAY,EACjC;IAEE,MAAM,IAAI,OAAO,CAAC,8BAA8B,CAAC,CAqCtD;IAED,IAAI,IAAI,IAAI,MAAM,CAEjB;CACF"}
@@ -1,4 +1,3 @@
1
- import { I18n } from "./i18n.service";
2
1
  import { PrerequisiteVerification, } from "./prerequisite-verifier.port";
3
2
  export class PrerequisiteVerifierTranslationsAdapter {
4
3
  config;
@@ -8,12 +7,11 @@ export class PrerequisiteVerifierTranslationsAdapter {
8
7
  this.deps = deps;
9
8
  }
10
9
  async verify() {
11
- const i18n = new I18n(this.deps);
12
10
  const languages = this.config.values;
13
11
  const dictionary = {};
14
12
  for (const language of languages) {
15
13
  try {
16
- const translations = await i18n.getTranslations(language);
14
+ const translations = await this.deps.TranslationsProvider.getTranslationsFor(language);
17
15
  dictionary[language] = Object.keys(translations);
18
16
  }
19
17
  catch {
@@ -1 +1 @@
1
- {"version":3,"file":"prerequisite-verifier-translations.adapter.js","sourceRoot":"","sources":["../src/prerequisite-verifier-translations.adapter.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAGtC,OAAO,EACL,wBAAwB,GAGzB,MAAM,8BAA8B,CAAC;AAUtC,MAAM,OAAO,uCAAuC;IAI/B,MAAM;IACN,IAAI;IAFvB,YACmB,MAAoB,EACpB,IAAkB;sBADlB,MAAM;oBACN,IAAI;IACpB,CAAC;IAEJ,KAAK,CAAC,MAAM;QACV,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACjC,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;QAErC,MAAM,UAAU,GAAiE,EAAE,CAAC;QAEpF,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;YACjC,IAAI,CAAC;gBACH,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;gBAC1D,UAAU,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACnD,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,wBAAwB,CAAC,OAAO,CAAC,GAAG,QAAQ,6BAA6B,CAAC,CAAC;YACpF,CAAC;QACH,CAAC;QAED,MAAM,QAAQ,GAA+C,EAAE,CAAC;QAEhE,KAAK,MAAM,QAAQ,IAAI,UAAU,EAAE,CAAC;YAClC,sBAAsB;YACtB,MAAM,OAAO,GAAG,UAAU,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YAC3C,sBAAsB;YAEtB,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;gBAC7B,KAAK,MAAM,iBAAiB,IAAI,SAAS,EAAE,CAAC;oBAC1C,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;oBAExE,IAAI,CAAC,YAAY;wBAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,iBAAiB,EAAE,CAAC,CAAC;gBACtG,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,wBAAwB,CAAC,OAAO,CAAC;QAEnE,MAAM,OAAO,GAAG,QAAQ;aACrB,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,QAAQ,OAAO,CAAC,GAAG,eAAe,OAAO,CAAC,QAAQ,gBAAgB,OAAO,CAAC,SAAS,EAAE,CAAC;aACvG,IAAI,CAAC,IAAI,CAAC,CAAC;QAEd,OAAO,wBAAwB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACnD,CAAC;IAED,IAAI,IAAI;QACN,OAAO,cAAc,CAAC;IACxB,CAAC;CACF"}
1
+ {"version":3,"file":"prerequisite-verifier-translations.adapter.js","sourceRoot":"","sources":["../src/prerequisite-verifier-translations.adapter.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,wBAAwB,GAGzB,MAAM,8BAA8B,CAAC;AAWtC,MAAM,OAAO,uCAAuC;IAI/B,MAAM;IACN,IAAI;IAFvB,YACmB,MAAoB,EACpB,IAAkB;sBADlB,MAAM;oBACN,IAAI;IACpB,CAAC;IAEJ,KAAK,CAAC,MAAM;QACV,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;QAErC,MAAM,UAAU,GAA2D,EAAE,CAAC;QAE9E,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;YACjC,IAAI,CAAC;gBACH,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;gBACvF,UAAU,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YACnD,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,wBAAwB,CAAC,OAAO,CAAC,GAAG,QAAQ,6BAA6B,CAAC,CAAC;YACpF,CAAC;QACH,CAAC;QAED,MAAM,QAAQ,GAA+C,EAAE,CAAC;QAEhE,KAAK,MAAM,QAAQ,IAAI,UAAU,EAAE,CAAC;YAClC,sBAAsB;YACtB,MAAM,OAAO,GAAG,UAAU,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YAC3C,sBAAsB;YAEtB,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;gBAC7B,KAAK,MAAM,iBAAiB,IAAI,SAAS,EAAE,CAAC;oBAC1C,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;oBAExE,IAAI,CAAC,YAAY;wBAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,iBAAiB,EAAE,CAAC,CAAC;gBACtG,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,wBAAwB,CAAC,OAAO,CAAC;QAEnE,MAAM,OAAO,GAAG,QAAQ;aACrB,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,QAAQ,OAAO,CAAC,GAAG,eAAe,OAAO,CAAC,QAAQ,gBAAgB,OAAO,CAAC,SAAS,EAAE,CAAC;aACvG,IAAI,CAAC,IAAI,CAAC,CAAC;QAEd,OAAO,wBAAwB,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IACnD,CAAC;IAED,IAAI,IAAI;QACN,OAAO,cAAc,CAAC;IACxB,CAAC;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"sitemap-changefreq.vo.d.ts","sourceRoot":"","sources":["../src/sitemap-changefreq.vo.ts"],"names":[],"mappings":"AAEA,oBAAY,qBAAqB;IAC/B,MAAM,WAAW;IACjB,MAAM,WAAW;IACjB,KAAK,UAAU;IACf,MAAM,WAAW;IACjB,OAAO,YAAY;IACnB,MAAM,WAAW;IACjB,KAAK,UAAU;CAChB"}
1
+ {"version":3,"file":"sitemap-changefreq.vo.d.ts","sourceRoot":"","sources":["../src/sitemap-changefreq.vo.ts"],"names":[],"mappings":"AAAA,oBAAY,qBAAqB;IAC/B,MAAM,WAAW;IACjB,MAAM,WAAW;IACjB,KAAK,UAAU;IACf,MAAM,WAAW;IACjB,OAAO,YAAY;IACnB,MAAM,WAAW;IACjB,KAAK,UAAU;CAChB"}
@@ -1,4 +1,3 @@
1
- // fallow-ignore-file unused-enum-member
2
1
  export var SitemapChangefreqEnum;
3
2
  (function (SitemapChangefreqEnum) {
4
3
  SitemapChangefreqEnum["always"] = "always";
@@ -1 +1 @@
1
- {"version":3,"file":"sitemap-changefreq.vo.js","sourceRoot":"","sources":["../src/sitemap-changefreq.vo.ts"],"names":[],"mappings":"AAAA,wCAAwC;AAExC,MAAM,CAAN,IAAY,qBAQX;AARD,WAAY,qBAAqB;IAC/B,0CAAiB,CAAA;IACjB,0CAAiB,CAAA;IACjB,wCAAe,CAAA;IACf,0CAAiB,CAAA;IACjB,4CAAmB,CAAA;IACnB,0CAAiB,CAAA;IACjB,wCAAe,CAAA;AACjB,CAAC,EARW,qBAAqB,KAArB,qBAAqB,QAQhC"}
1
+ {"version":3,"file":"sitemap-changefreq.vo.js","sourceRoot":"","sources":["../src/sitemap-changefreq.vo.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,qBAQX;AARD,WAAY,qBAAqB;IAC/B,0CAAiB,CAAA;IACjB,0CAAiB,CAAA;IACjB,wCAAe,CAAA;IACf,0CAAiB,CAAA;IACjB,4CAAmB,CAAA;IACnB,0CAAiB,CAAA;IACjB,wCAAe,CAAA;AACjB,CAAC,EARW,qBAAqB,KAArB,qBAAqB,QAQhC"}
@@ -1,12 +1,10 @@
1
1
  import type * as tools from "@bgord/tools";
2
- import type { FileReaderJsonPort } from "./file-reader-json.port";
3
2
  import type { HandlerHonoPort } from "./handler-hono.port";
4
3
  import type { LanguageDetectorVariables } from "./language-detector-hono.middleware";
5
4
  import type { Languages } from "./languages.vo";
6
- import type { LoggerPort } from "./logger.port";
5
+ import type { TranslationsProviderPort } from "./translations-provider.port";
7
6
  type Dependencies = {
8
- FileReaderJson: FileReaderJsonPort;
9
- Logger: LoggerPort;
7
+ TranslationsProvider: TranslationsProviderPort;
10
8
  };
11
9
  export declare class TranslationsHonoHandler<T extends tools.LanguageType> implements HandlerHonoPort {
12
10
  private readonly handler;
@@ -1 +1 @@
1
- {"version":3,"file":"translations-hono.handler.d.ts","sourceRoot":"","sources":["../src/translations-hono.handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAC;AAE3C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,qCAAqC,CAAC;AACrF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAGhD,KAAK,YAAY,GAAG;IAAE,cAAc,EAAE,kBAAkB,CAAC;IAAC,MAAM,EAAE,UAAU,CAAA;CAAE,CAAC;AAI/E,qBAAa,uBAAuB,CAAC,CAAC,SAAS,KAAK,CAAC,YAAY,CAAE,YAAW,eAAe;IAC3F,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAyB;IAEjD,YAAY,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,YAAY,EAEnD;IAED,MAAM;mBACiD,yBAAyB;0BAM/E;CACF"}
1
+ {"version":3,"file":"translations-hono.handler.d.ts","sourceRoot":"","sources":["../src/translations-hono.handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAC;AAE3C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,qCAAqC,CAAC;AACrF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAEhD,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AAE7E,KAAK,YAAY,GAAG;IAAE,oBAAoB,EAAE,wBAAwB,CAAA;CAAE,CAAC;AAIvE,qBAAa,uBAAuB,CAAC,CAAC,SAAS,KAAK,CAAC,YAAY,CAAE,YAAW,eAAe;IAC3F,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAyB;IAEjD,YAAY,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,YAAY,EAEnD;IAED,MAAM;mBACiD,yBAAyB;0BAM/E;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"translations-hono.handler.js","sourceRoot":"","sources":["../src/translations-hono.handler.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAM7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAI7D,MAAM,OAAO,GAAG,aAAa,EAAE,CAAC;AAEhC,MAAM,OAAO,uBAAuB;IACjB,OAAO,CAAyB;IAEjD,YAAY,MAAoB,EAAE,IAAkB;QAClD,IAAI,CAAC,OAAO,GAAG,IAAI,mBAAmB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACvD,CAAC;IAED,MAAM;QACJ,OAAO,OAAO,CAAC,cAAc,CAAqD,KAAK,EAAE,CAAC,EAAE,EAAE;YAC5F,MAAM,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YACnC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YAEpD,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACxB,CAAC,CAAC,CAAC;IACL,CAAC;CACF"}
1
+ {"version":3,"file":"translations-hono.handler.js","sourceRoot":"","sources":["../src/translations-hono.handler.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAI7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAK7D,MAAM,OAAO,GAAG,aAAa,EAAE,CAAC;AAEhC,MAAM,OAAO,uBAAuB;IACjB,OAAO,CAAyB;IAEjD,YAAY,MAAoB,EAAE,IAAkB;QAClD,IAAI,CAAC,OAAO,GAAG,IAAI,mBAAmB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACvD,CAAC;IAED,MAAM;QACJ,OAAO,OAAO,CAAC,cAAc,CAAqD,KAAK,EAAE,CAAC,EAAE,EAAE;YAC5F,MAAM,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YACnC,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YAEpD,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACxB,CAAC,CAAC,CAAC;IACL,CAAC;CACF"}
@@ -0,0 +1,19 @@
1
+ import * as tools from "@bgord/tools";
2
+ import * as v from "valibot";
3
+ import type { FileReaderJsonPort } from "./file-reader-json.port";
4
+ import type { TranslationsProviderPort, TranslationsType } from "./translations-provider.port";
5
+ type Config = {
6
+ path?: tools.DirectoryPathRelativeType;
7
+ };
8
+ type Dependencies = {
9
+ FileReaderJson: FileReaderJsonPort;
10
+ };
11
+ export declare class TranslationsProviderJsonAdapter implements TranslationsProviderPort {
12
+ private readonly deps;
13
+ private readonly config?;
14
+ static readonly DEFAULT_PATH: string & v.Brand<"DirectoryPathRelativeSchema">;
15
+ constructor(deps: Dependencies, config?: Config | undefined);
16
+ getTranslationsFor(language: tools.LanguageType): Promise<TranslationsType>;
17
+ }
18
+ export {};
19
+ //# sourceMappingURL=translations-provider-json.adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"translations-provider-json.adapter.d.ts","sourceRoot":"","sources":["../src/translations-provider-json.adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,CAAC,MAAM,SAAS,CAAC;AAC7B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,KAAK,EAAE,wBAAwB,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAE/F,KAAK,MAAM,GAAG;IAAE,IAAI,CAAC,EAAE,KAAK,CAAC,yBAAyB,CAAA;CAAE,CAAC;AACzD,KAAK,YAAY,GAAG;IAAE,cAAc,EAAE,kBAAkB,CAAA;CAAE,CAAC;AAE3D,qBAAa,+BAAgC,YAAW,wBAAwB;IAI5E,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;IAJ1B,MAAM,CAAC,QAAQ,CAAC,YAAY,kDAAoE;IAEhG,YACmB,IAAI,EAAE,YAAY,EAClB,MAAM,CAAC,EAAE,MAAM,YAAA,EAC9B;IAEE,kBAAkB,CAAC,QAAQ,EAAE,KAAK,CAAC,YAAY,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAWhF;CACF"}
@@ -0,0 +1,21 @@
1
+ import * as tools from "@bgord/tools";
2
+ import * as v from "valibot";
3
+ export class TranslationsProviderJsonAdapter {
4
+ deps;
5
+ config;
6
+ static DEFAULT_PATH = v.parse(tools.DirectoryPathRelativeSchema, "infra/translations");
7
+ constructor(deps, config) {
8
+ this.deps = deps;
9
+ this.config = config;
10
+ }
11
+ async getTranslationsFor(language) {
12
+ const path = tools.FilePathRelative.fromParts(this.config?.path ?? TranslationsProviderJsonAdapter.DEFAULT_PATH, tools.Filename.fromParts(language, "json"));
13
+ try {
14
+ return await this.deps.FileReaderJson.read(path);
15
+ }
16
+ catch (error) {
17
+ return {};
18
+ }
19
+ }
20
+ }
21
+ //# sourceMappingURL=translations-provider-json.adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"translations-provider-json.adapter.js","sourceRoot":"","sources":["../src/translations-provider-json.adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,cAAc,CAAC;AACtC,OAAO,KAAK,CAAC,MAAM,SAAS,CAAC;AAO7B,MAAM,OAAO,+BAA+B;IAIvB,IAAI;IACJ,MAAM;IAJzB,MAAM,CAAU,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,2BAA2B,EAAE,oBAAoB,CAAC,CAAC;IAEhG,YACmB,IAAkB,EAClB,MAAe;oBADf,IAAI;sBACJ,MAAM;IACtB,CAAC;IAEJ,KAAK,CAAC,kBAAkB,CAAC,QAA4B;QACnD,MAAM,IAAI,GAAG,KAAK,CAAC,gBAAgB,CAAC,SAAS,CAC3C,IAAI,CAAC,MAAM,EAAE,IAAI,IAAI,+BAA+B,CAAC,YAAY,EACjE,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,QAAQ,EAAE,MAAM,CAAC,CAC3C,CAAC;QAEF,IAAI,CAAC;YACH,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;CACF"}
@@ -0,0 +1,8 @@
1
+ import type * as tools from "@bgord/tools";
2
+ import type { TranslationsProviderPort, TranslationsType } from "./translations-provider.port";
3
+ export declare class TranslationsProviderNoopAdapter implements TranslationsProviderPort {
4
+ private readonly translations;
5
+ constructor(translations: Record<tools.LanguageType, TranslationsType>);
6
+ getTranslationsFor(language: tools.LanguageType): Promise<TranslationsType>;
7
+ }
8
+ //# sourceMappingURL=translations-provider-noop.adapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"translations-provider-noop.adapter.d.ts","sourceRoot":"","sources":["../src/translations-provider-noop.adapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,EAAE,wBAAwB,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAE/F,qBAAa,+BAAgC,YAAW,wBAAwB;IAClE,OAAO,CAAC,QAAQ,CAAC,YAAY;IAAzC,YAA6B,YAAY,EAAE,MAAM,CAAC,KAAK,CAAC,YAAY,EAAE,gBAAgB,CAAC,EAAI;IAErF,kBAAkB,CAAC,QAAQ,EAAE,KAAK,CAAC,YAAY,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAEhF;CACF"}
@@ -0,0 +1,10 @@
1
+ export class TranslationsProviderNoopAdapter {
2
+ translations;
3
+ constructor(translations) {
4
+ this.translations = translations;
5
+ }
6
+ async getTranslationsFor(language) {
7
+ return this.translations[language] ?? {};
8
+ }
9
+ }
10
+ //# sourceMappingURL=translations-provider-noop.adapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"translations-provider-noop.adapter.js","sourceRoot":"","sources":["../src/translations-provider-noop.adapter.ts"],"names":[],"mappings":"AAGA,MAAM,OAAO,+BAA+B;IACb,YAAY;IAAzC,YAA6B,YAA0D;4BAA1D,YAAY;IAAiD,CAAC;IAE3F,KAAK,CAAC,kBAAkB,CAAC,QAA4B;QACnD,OAAO,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;IAC3C,CAAC;CACF"}
@@ -0,0 +1,11 @@
1
+ import type * as tools from "@bgord/tools";
2
+ export type TranslationsKeyType = string;
3
+ export type TranslationsValueType = string;
4
+ export type TranslationsType = Record<TranslationsKeyType, TranslationsValueType>;
5
+ export type TranslationPlaceholderType = string;
6
+ export type TranslationPlaceholderValueType = string | number;
7
+ export type TranslationVariableType = Record<TranslationPlaceholderType, TranslationPlaceholderValueType>;
8
+ export interface TranslationsProviderPort {
9
+ getTranslationsFor(language: tools.LanguageType): Promise<TranslationsType>;
10
+ }
11
+ //# sourceMappingURL=translations-provider.port.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"translations-provider.port.d.ts","sourceRoot":"","sources":["../src/translations-provider.port.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAC;AAE3C,MAAM,MAAM,mBAAmB,GAAG,MAAM,CAAC;AACzC,MAAM,MAAM,qBAAqB,GAAG,MAAM,CAAC;AAC3C,MAAM,MAAM,gBAAgB,GAAG,MAAM,CAAC,mBAAmB,EAAE,qBAAqB,CAAC,CAAC;AAElF,MAAM,MAAM,0BAA0B,GAAG,MAAM,CAAC;AAChD,MAAM,MAAM,+BAA+B,GAAG,MAAM,GAAG,MAAM,CAAC;AAC9D,MAAM,MAAM,uBAAuB,GAAG,MAAM,CAAC,0BAA0B,EAAE,+BAA+B,CAAC,CAAC;AAE1G,MAAM,WAAW,wBAAwB;IACvC,kBAAkB,CAAC,QAAQ,EAAE,KAAK,CAAC,YAAY,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;CAC7E"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=translations-provider.port.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"translations-provider.port.js","sourceRoot":"","sources":["../src/translations-provider.port.ts"],"names":[],"mappings":""}
@@ -1,11 +1,8 @@
1
1
  import type * as tools from "@bgord/tools";
2
- import type { FileReaderJsonPort } from "./file-reader-json.port";
3
- import { type TranslationsType } from "./i18n.service";
4
2
  import type { Languages } from "./languages.vo";
5
- import type { LoggerPort } from "./logger.port";
3
+ import type { TranslationsProviderPort, TranslationsType } from "./translations-provider.port";
6
4
  type Dependencies = {
7
- FileReaderJson: FileReaderJsonPort;
8
- Logger: LoggerPort;
5
+ TranslationsProvider: TranslationsProviderPort;
9
6
  };
10
7
  export type TranslationsResult<T extends tools.LanguageType> = {
11
8
  translations: TranslationsType;
@@ -15,7 +12,6 @@ export type TranslationsResult<T extends tools.LanguageType> = {
15
12
  export declare class TranslationsHandler<T extends tools.LanguageType> {
16
13
  private readonly config;
17
14
  private readonly deps;
18
- private readonly I18n;
19
15
  constructor(config: Languages<T>, deps: Dependencies);
20
16
  execute(language: tools.LanguageType): Promise<TranslationsResult<T>>;
21
17
  }
@@ -1 +1 @@
1
- {"version":3,"file":"translations.handler.d.ts","sourceRoot":"","sources":["../src/translations.handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAQ,KAAK,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAC7D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAEhD,KAAK,YAAY,GAAG;IAAE,cAAc,EAAE,kBAAkB,CAAC;IAAC,MAAM,EAAE,UAAU,CAAA;CAAE,CAAC;AAE/E,MAAM,MAAM,kBAAkB,CAAC,CAAC,SAAS,KAAK,CAAC,YAAY,IAAI;IAC7D,YAAY,EAAE,gBAAgB,CAAC;IAC/B,QAAQ,EAAE,KAAK,CAAC,YAAY,CAAC;IAC7B,kBAAkB,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;CAC/C,CAAC;AAEF,qBAAa,mBAAmB,CAAC,CAAC,SAAS,KAAK,CAAC,YAAY;IAIzD,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,IAAI;IAJvB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAO;IAE5B,YACmB,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,EACpB,IAAI,EAAE,YAAY,EAGpC;IAEK,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC,YAAY,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAI1E;CACF"}
1
+ {"version":3,"file":"translations.handler.d.ts","sourceRoot":"","sources":["../src/translations.handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,KAAK,EAAE,wBAAwB,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAE/F,KAAK,YAAY,GAAG;IAAE,oBAAoB,EAAE,wBAAwB,CAAA;CAAE,CAAC;AAEvE,MAAM,MAAM,kBAAkB,CAAC,CAAC,SAAS,KAAK,CAAC,YAAY,IAAI;IAC7D,YAAY,EAAE,gBAAgB,CAAC;IAC/B,QAAQ,EAAE,KAAK,CAAC,YAAY,CAAC;IAC7B,kBAAkB,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;CAC/C,CAAC;AAEF,qBAAa,mBAAmB,CAAC,CAAC,SAAS,KAAK,CAAC,YAAY;IAEzD,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,IAAI;IAFvB,YACmB,MAAM,EAAE,SAAS,CAAC,CAAC,CAAC,EACpB,IAAI,EAAE,YAAY,EACjC;IAEE,OAAO,CAAC,QAAQ,EAAE,KAAK,CAAC,YAAY,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC,CAI1E;CACF"}
@@ -1,15 +1,12 @@
1
- import { I18n } from "./i18n.service";
2
1
  export class TranslationsHandler {
3
2
  config;
4
3
  deps;
5
- I18n;
6
4
  constructor(config, deps) {
7
5
  this.config = config;
8
6
  this.deps = deps;
9
- this.I18n = new I18n(this.deps);
10
7
  }
11
8
  async execute(language) {
12
- const translations = await this.I18n.getTranslations(language);
9
+ const translations = await this.deps.TranslationsProvider.getTranslationsFor(language);
13
10
  return { translations, language, supportedLanguages: this.config.supported };
14
11
  }
15
12
  }
@@ -1 +1 @@
1
- {"version":3,"file":"translations.handler.js","sourceRoot":"","sources":["../src/translations.handler.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAAyB,MAAM,gBAAgB,CAAC;AAY7D,MAAM,OAAO,mBAAmB;IAIX,MAAM;IACN,IAAI;IAJN,IAAI,CAAO;IAE5B,YACmB,MAAoB,EACpB,IAAkB;sBADlB,MAAM;oBACN,IAAI;QAErB,IAAI,CAAC,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,QAA4B;QACxC,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;QAE/D,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,kBAAkB,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;IAC/E,CAAC;CACF"}
1
+ {"version":3,"file":"translations.handler.js","sourceRoot":"","sources":["../src/translations.handler.ts"],"names":[],"mappings":"AAYA,MAAM,OAAO,mBAAmB;IAEX,MAAM;IACN,IAAI;IAFvB,YACmB,MAAoB,EACpB,IAAkB;sBADlB,MAAM;oBACN,IAAI;IACpB,CAAC;IAEJ,KAAK,CAAC,OAAO,CAAC,QAA4B;QACxC,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,oBAAoB,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;QAEvF,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,kBAAkB,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC;IAC/E,CAAC;CACF"}
@@ -0,0 +1,5 @@
1
+ import type { TranslationsKeyType, TranslationsType, TranslationVariableType } from "./translations-provider.port";
2
+ export declare class TranslatorService {
3
+ static use(translations: TranslationsType): (key: TranslationsKeyType, variables?: TranslationVariableType) => string;
4
+ }
5
+ //# sourceMappingURL=translator.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"translator.service.d.ts","sourceRoot":"","sources":["../src/translator.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,mBAAmB,EACnB,gBAAgB,EAChB,uBAAuB,EACxB,MAAM,8BAA8B,CAAC;AAEtC,qBAAa,iBAAiB;IAC5B,MAAM,CAAC,GAAG,CAAC,YAAY,EAAE,gBAAgB,SACR,mBAAmB,cAAc,uBAAuB,YAWxF;CACF"}
@@ -0,0 +1,13 @@
1
+ export class TranslatorService {
2
+ static use(translations) {
3
+ return function translate(key, variables) {
4
+ const translation = translations[key];
5
+ if (!translation)
6
+ return key;
7
+ if (!variables)
8
+ return translation;
9
+ return Object.entries(variables).reduce((result, [placeholder, value]) => result.replaceAll(`{{${placeholder}}}`, String(value)), translation);
10
+ };
11
+ }
12
+ }
13
+ //# sourceMappingURL=translator.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"translator.service.js","sourceRoot":"","sources":["../src/translator.service.ts"],"names":[],"mappings":"AAMA,MAAM,OAAO,iBAAiB;IAC5B,MAAM,CAAC,GAAG,CAAC,YAA8B;QACvC,OAAO,SAAS,SAAS,CAAC,GAAwB,EAAE,SAAmC;YACrF,MAAM,WAAW,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC;YAEtC,IAAI,CAAC,WAAW;gBAAE,OAAO,GAAG,CAAC;YAC7B,IAAI,CAAC,SAAS;gBAAE,OAAO,WAAW,CAAC;YAEnC,OAAO,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,MAAM,CACrC,CAAC,MAAM,EAAE,CAAC,WAAW,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,WAAW,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,EACxF,WAAW,CACZ,CAAC;QACJ,CAAC,CAAC;IACJ,CAAC;CACF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bgord/bun",
3
- "version": "1.19.8",
3
+ "version": "1.19.11",
4
4
  "type": "module",
5
5
  "license": "MIT",
6
6
  "author": "Bartosz Gordon",
@@ -27,8 +27,8 @@
27
27
  "@types/bun": "1.3.14",
28
28
  "@types/nodemailer": "8.0.1",
29
29
  "@types/yazl": "3.3.1",
30
- "@typescript/native-preview": "7.0.0-dev.20260615.1",
31
- "better-auth": "1.6.18",
30
+ "@typescript/native-preview": "7.0.0-dev.20260616.1",
31
+ "better-auth": "1.6.19",
32
32
  "croner": "10.0.1",
33
33
  "cspell": "10.0.1",
34
34
  "csv": "6.6.0",
@@ -37,23 +37,21 @@
37
37
  "lockfile-lint": "5.0.0",
38
38
  "nodemailer": "9.0.1",
39
39
  "publint": "0.3.21",
40
- "resend": "6.12.4",
41
40
  "shellcheck": "4.1.0",
42
41
  "typescript": "6.0.3",
43
42
  "yazl": "3.3.1"
44
43
  },
45
44
  "dependencies": {
46
- "@bgord/tools": "1.5.16",
45
+ "@bgord/tools": "1.5.17",
47
46
  "emittery": "2.0.0",
48
47
  "hono": "4.12.25",
49
48
  "node-cache": "5.1.2"
50
49
  },
51
50
  "peerDependencies": {
52
- "better-auth": "1.6.18",
51
+ "better-auth": "1.6.19",
53
52
  "csv": "6.6.0",
54
53
  "croner": "10.0.1",
55
54
  "nodemailer": "9.0.1",
56
- "resend": "6.12.4",
57
55
  "yazl": "3.3.1"
58
56
  },
59
57
  "peerDependenciesMeta": {
@@ -69,9 +67,6 @@
69
67
  "nodemailer": {
70
68
  "optional": true
71
69
  },
72
- "resend": {
73
- "optional": true
74
- },
75
70
  "yazl": {
76
71
  "optional": true
77
72
  }
package/readme.md CHANGED
@@ -228,7 +228,6 @@ src/
228
228
  ├── healthcheck.handler.ts
229
229
  ├── http-logger-hono.middleware.ts
230
230
  ├── http-logger.middleware.ts
231
- ├── i18n.service.ts
232
231
  ├── id-provider-crypto.adapter.ts
233
232
  ├── id-provider-deterministic.adapter.ts
234
233
  ├── id-provider.port.ts
@@ -336,7 +335,6 @@ src/
336
335
  ├── mailer-content-html.vo.ts
337
336
  ├── mailer-file.adapter.ts
338
337
  ├── mailer-noop.adapter.ts
339
- ├── mailer-resend.adapter.ts
340
338
  ├── mailer-smtp.adapter.ts
341
339
  ├── mailer-subject.vo.ts
342
340
  ├── mailer-template.vo.ts
@@ -615,7 +613,11 @@ src/
615
613
  ├── trailing-slash-hono.middleware.ts
616
614
  ├── trailing-slash.middleware.ts
617
615
  ├── translations-hono.handler.ts
616
+ ├── translations-provider-json.adapter.ts
617
+ ├── translations-provider-noop.adapter.ts
618
+ ├── translations-provider.port.ts
618
619
  ├── translations.handler.ts
620
+ ├── translator.service.ts
619
621
  ├── uptime.service.ts
620
622
  ├── uuid.vo.ts
621
623
  ├── visitor-id-client.strategy.ts
@@ -1,7 +1,6 @@
1
1
  // cspell:ignore ciphertext
2
2
  import { EncryptionIV } from "./encryption-iv.vo";
3
3
 
4
- // fallow-ignore-next-line unused-export
5
4
  export const CryptoAesGcmError = { InvalidPayload: "aes.gcm.crypto.invalid.payload" };
6
5
 
7
6
  export class CryptoAesGcm {
package/src/index.ts CHANGED
@@ -203,7 +203,6 @@ export * from "./healthcheck.handler";
203
203
  export * from "./healthcheck-hono.handler";
204
204
  export * from "./http-logger.middleware";
205
205
  export * from "./http-logger-hono.middleware";
206
- export * from "./i18n.service";
207
206
  export * from "./id-provider.port";
208
207
  export * from "./id-provider-crypto.adapter";
209
208
  export * from "./id-provider-deterministic.adapter";
@@ -313,7 +312,6 @@ export * from "./mailer-collecting.adapter";
313
312
  export * from "./mailer-content-html.vo";
314
313
  export * from "./mailer-file.adapter";
315
314
  export * from "./mailer-noop.adapter";
316
- export * from "./mailer-resend.adapter";
317
315
  export * from "./mailer-smtp.adapter";
318
316
  export * from "./mailer-subject.vo";
319
317
  export * from "./mailer-template.vo";
@@ -543,6 +541,11 @@ export * from "./trailing-slash.middleware";
543
541
  export * from "./trailing-slash-hono.middleware";
544
542
  export * from "./translations.handler";
545
543
  export * from "./translations-hono.handler";
544
+ export * from "./translations-provider.port";
545
+ export * from "./translations-provider.port";
546
+ export * from "./translations-provider-json.adapter";
547
+ export * from "./translations-provider-noop.adapter";
548
+ export * from "./translator.service";
546
549
  export * from "./uptime.service";
547
550
  export * from "./uuid.vo";
548
551
  export * from "./visitor-id.strategy";
@@ -1,4 +1,3 @@
1
- // fallow-ignore-file unused-export
2
1
  import type * as Events from "../events";
3
2
  import type * as Ports from "../ports";
4
3
 
@@ -1,4 +1,3 @@
1
- // fallow-ignore-file unused-export
2
1
  import * as v from "valibot";
3
2
  import type * as Events from "../events";
4
3
  import type * as Ports from "../ports";
@@ -1,4 +1,3 @@
1
- // fallow-ignore-file unused-export
2
1
  import * as v from "valibot";
3
2
  import { EventEnvelopeSchema } from "../../../event-envelope";
4
3
  import * as VO from "../value-objects";
@@ -1,4 +1,3 @@
1
- // fallow-ignore-file unused-export
2
1
  import * as v from "valibot";
3
2
  import { EventEnvelopeSchema } from "../../../event-envelope";
4
3
  import * as VO from "../value-objects";
@@ -1,4 +1,3 @@
1
- // fallow-ignore-file duplicate-export
2
1
  export * as EventHandlers from "./event-handlers";
3
2
  export * as Events from "./events";
4
3
  export * as Ports from "./ports";
@@ -1,6 +1,5 @@
1
1
  import type * as VO from "../value-objects";
2
2
 
3
- // fallow-ignore-next-line unused-type
4
3
  export interface HistoryReaderPort {
5
4
  read(subject: VO.HistoryParsedType["subject"]): Promise<ReadonlyArray<VO.HistoryType>>;
6
5
  }
@@ -1,6 +1,5 @@
1
1
  import type * as VO from "../value-objects";
2
2
 
3
- // fallow-ignore-next-line unused-type
4
3
  export interface HistoryWriterPort {
5
4
  populate(history: Omit<VO.HistoryType, "id">): Promise<void>;
6
5
 
@@ -3,5 +3,4 @@ import type * as v from "valibot";
3
3
 
4
4
  export const HistoryCreatedAt = tools.TimestampValue;
5
5
 
6
- // fallow-ignore-next-line unused-type
7
6
  export type HistoryCreatedAtType = v.InferOutput<typeof HistoryCreatedAt>;
@@ -1,4 +1,3 @@
1
- // fallow-ignore-file unused-export
2
1
  import * as v from "valibot";
3
2
 
4
3
  export const HistoryOperationError = {
@@ -1,4 +1,3 @@
1
- // fallow-ignore-file unused-export
2
1
  import * as v from "valibot";
3
2
 
4
3
  export const HistoryPayload = v.record(v.string(), v.unknown());
@@ -1,4 +1,3 @@
1
- // fallow-ignore-file unused-export
2
1
  import * as v from "valibot";
3
2
 
4
3
  export const HistorySubjectError = {
@@ -1,4 +1,3 @@
1
- // fallow-ignore-file unused-export
2
1
  import * as v from "valibot";
3
2
  import { HistoryCreatedAt } from "./history-created-at";
4
3
  import { HistoryId } from "./history-id";
@@ -1,4 +1,3 @@
1
- // fallow-ignore-file unused-export
2
1
  import type * as tools from "@bgord/tools";
3
2
  import type { ClockPort } from "../../../clock.port";
4
3
  import { event } from "../../../event-envelope";
@@ -1,4 +1,3 @@
1
- // fallow-ignore-file unused-export
2
1
  import * as tools from "@bgord/tools";
3
2
  import * as v from "valibot";
4
3
  import { CommandEnvelopeSchema } from "../../../command-envelope";
@@ -1,4 +1,3 @@
1
- // fallow-ignore-file unused-export
2
1
  import * as tools from "@bgord/tools";
3
2
  import * as v from "valibot";
4
3
  import { EventEnvelopeSchema } from "../../../event-envelope";
@@ -1,4 +1,3 @@
1
- // fallow-ignore-file duplicate-export
2
1
  export * as CommandHandlers from "./command-handlers";
3
2
  export * as Commands from "./commands";
4
3
  export * as Events from "./events";
@@ -1,4 +1,3 @@
1
- // fallow-ignore-file unused-export
2
1
  import type * as tools from "@bgord/tools";
3
2
  import type { Languages } from "../../../languages.vo";
4
3
  import type { UUIDType } from "../../../uuid.vo";
@@ -1,4 +1,3 @@
1
- // fallow-ignore-file unused-export
2
1
  import type * as tools from "@bgord/tools";
3
2
  import type { Languages } from "../../../languages.vo";
4
3
 
@@ -1,4 +1,3 @@
1
- // fallow-ignore-file unused-export
2
1
  import * as tools from "@bgord/tools";
3
2
  import * as v from "valibot";
4
3
  import { EventEnvelopeSchema } from "../../../event-envelope";
@@ -1,4 +1,3 @@
1
- // fallow-ignore-file unused-export
2
1
  import * as tools from "@bgord/tools";
3
2
  import * as v from "valibot";
4
3
  import { EventEnvelopeSchema } from "../../../event-envelope";
@@ -1,4 +1,3 @@
1
- // fallow-ignore-file unused-export
2
1
  import * as v from "valibot";
3
2
  import { ClientIp } from "../../../client-ip.vo";
4
3
  import { ClientUserAgent } from "../../../client-user-agent.vo";
@@ -1,5 +1,3 @@
1
- // fallow-ignore-file unused-enum-member
2
-
3
1
  export enum NodeEnvironmentEnum {
4
2
  local = "local",
5
3
  test = "test",
@@ -1,22 +1,19 @@
1
1
  import type * as tools from "@bgord/tools";
2
- import type { FileReaderJsonPort } from "./file-reader-json.port";
3
- import type * as types from "./i18n.service";
4
- import { I18n } from "./i18n.service";
5
2
  import type { Languages } from "./languages.vo";
6
- import type { LoggerPort } from "./logger.port";
7
3
  import {
8
4
  PrerequisiteVerification,
9
5
  type PrerequisiteVerificationResult,
10
6
  type PrerequisiteVerifierPort,
11
7
  } from "./prerequisite-verifier.port";
8
+ import type { TranslationsKeyType, TranslationsProviderPort } from "./translations-provider.port";
12
9
 
13
10
  type PrerequisiteTranslationsProblemType = {
14
- key: types.TranslationsKeyType;
11
+ key: TranslationsKeyType;
15
12
  existsIn: tools.LanguageType;
16
13
  missingIn: tools.LanguageType;
17
14
  };
18
15
 
19
- type Dependencies = { Logger: LoggerPort; FileReaderJson: FileReaderJsonPort };
16
+ type Dependencies = { TranslationsProvider: TranslationsProviderPort };
20
17
 
21
18
  export class PrerequisiteVerifierTranslationsAdapter<T extends tools.LanguageType>
22
19
  implements PrerequisiteVerifierPort
@@ -27,14 +24,13 @@ export class PrerequisiteVerifierTranslationsAdapter<T extends tools.LanguageTyp
27
24
  ) {}
28
25
 
29
26
  async verify(): Promise<PrerequisiteVerificationResult> {
30
- const i18n = new I18n(this.deps);
31
27
  const languages = this.config.values;
32
28
 
33
- const dictionary: Partial<Record<T, ReadonlyArray<types.TranslationsKeyType>>> = {};
29
+ const dictionary: Partial<Record<T, ReadonlyArray<TranslationsKeyType>>> = {};
34
30
 
35
31
  for (const language of languages) {
36
32
  try {
37
- const translations = await i18n.getTranslations(language);
33
+ const translations = await this.deps.TranslationsProvider.getTranslationsFor(language);
38
34
  dictionary[language] = Object.keys(translations);
39
35
  } catch {
40
36
  return PrerequisiteVerification.failure(`${language} translations not available`);
@@ -1,5 +1,3 @@
1
- // fallow-ignore-file unused-enum-member
2
-
3
1
  export enum SitemapChangefreqEnum {
4
2
  always = "always",
5
3
  hourly = "hourly",