@lakutata/i18n 3.0.0-beta.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.
Files changed (80) hide show
  1. package/LICENSE +23 -0
  2. package/README.md +347 -0
  3. package/dist/cjs/exports/I18n.d.ts +15 -0
  4. package/dist/cjs/exports/I18n.js +45 -0
  5. package/dist/cjs/exports/I18nMiddleware.d.ts +2 -0
  6. package/dist/cjs/exports/I18nMiddleware.js +21 -0
  7. package/dist/cjs/i18n/I18n.d.ts +313 -0
  8. package/dist/cjs/i18n/I18n.js +462 -0
  9. package/dist/cjs/i18n/Translator.d.ts +124 -0
  10. package/dist/cjs/i18n/Translator.js +156 -0
  11. package/dist/cjs/i18n/exceptions/I18nCatalogException.d.ts +15 -0
  12. package/dist/cjs/i18n/exceptions/I18nCatalogException.js +22 -0
  13. package/dist/cjs/i18n/exceptions/I18nMessageSyntaxException.d.ts +14 -0
  14. package/dist/cjs/i18n/exceptions/I18nMessageSyntaxException.js +21 -0
  15. package/dist/cjs/i18n/exceptions/I18nMissingKeyException.d.ts +12 -0
  16. package/dist/cjs/i18n/exceptions/I18nMissingKeyException.js +19 -0
  17. package/dist/cjs/i18n/exceptions/I18nMissingParameterException.d.ts +13 -0
  18. package/dist/cjs/i18n/exceptions/I18nMissingParameterException.js +20 -0
  19. package/dist/cjs/i18n/exceptions/I18nTranslatorException.d.ts +12 -0
  20. package/dist/cjs/i18n/exceptions/I18nTranslatorException.js +19 -0
  21. package/dist/cjs/i18n/interfaces/I18nOptions.d.ts +70 -0
  22. package/dist/cjs/i18n/interfaces/I18nOptions.js +2 -0
  23. package/dist/cjs/i18n/interfaces/ITranslator.d.ts +57 -0
  24. package/dist/cjs/i18n/interfaces/ITranslator.js +2 -0
  25. package/dist/cjs/i18n/lib/Catalog.d.ts +34 -0
  26. package/dist/cjs/i18n/lib/Catalog.js +104 -0
  27. package/dist/cjs/i18n/lib/CatalogTools.d.ts +86 -0
  28. package/dist/cjs/i18n/lib/CatalogTools.js +218 -0
  29. package/dist/cjs/i18n/lib/Locale.d.ts +95 -0
  30. package/dist/cjs/i18n/lib/Locale.js +182 -0
  31. package/dist/cjs/i18n/lib/LocaleTranslator.d.ts +93 -0
  32. package/dist/cjs/i18n/lib/LocaleTranslator.js +105 -0
  33. package/dist/cjs/i18n/lib/MessageFormat.d.ts +144 -0
  34. package/dist/cjs/i18n/lib/MessageFormat.js +372 -0
  35. package/dist/cjs/i18n/middleware/CommanderTranslator.d.ts +71 -0
  36. package/dist/cjs/i18n/middleware/CommanderTranslator.js +69 -0
  37. package/dist/cjs/i18n/middleware/I18nMiddleware.d.ts +126 -0
  38. package/dist/cjs/i18n/middleware/I18nMiddleware.js +210 -0
  39. package/dist/cjs/i18n/types/I18nMessages.d.ts +24 -0
  40. package/dist/cjs/i18n/types/I18nMessages.js +2 -0
  41. package/dist/cjs/package.json +1 -0
  42. package/dist/esm/exports/I18n.js +14 -0
  43. package/dist/esm/exports/I18nMiddleware.js +2 -0
  44. package/dist/esm/i18n/I18n.js +454 -0
  45. package/dist/esm/i18n/Translator.js +153 -0
  46. package/dist/esm/i18n/exceptions/I18nCatalogException.js +18 -0
  47. package/dist/esm/i18n/exceptions/I18nMessageSyntaxException.js +17 -0
  48. package/dist/esm/i18n/exceptions/I18nMissingKeyException.js +15 -0
  49. package/dist/esm/i18n/exceptions/I18nMissingParameterException.js +16 -0
  50. package/dist/esm/i18n/exceptions/I18nTranslatorException.js +15 -0
  51. package/dist/esm/i18n/interfaces/I18nOptions.js +1 -0
  52. package/dist/esm/i18n/interfaces/ITranslator.js +1 -0
  53. package/dist/esm/i18n/lib/Catalog.js +96 -0
  54. package/dist/esm/i18n/lib/CatalogTools.js +213 -0
  55. package/dist/esm/i18n/lib/Locale.js +173 -0
  56. package/dist/esm/i18n/lib/LocaleTranslator.js +101 -0
  57. package/dist/esm/i18n/lib/MessageFormat.js +367 -0
  58. package/dist/esm/i18n/middleware/CommanderTranslator.js +66 -0
  59. package/dist/esm/i18n/middleware/I18nMiddleware.js +206 -0
  60. package/dist/esm/i18n/types/I18nMessages.js +1 -0
  61. package/dist/types/exports/I18n.d.ts +15 -0
  62. package/dist/types/exports/I18nMiddleware.d.ts +2 -0
  63. package/dist/types/i18n/I18n.d.ts +313 -0
  64. package/dist/types/i18n/Translator.d.ts +124 -0
  65. package/dist/types/i18n/exceptions/I18nCatalogException.d.ts +15 -0
  66. package/dist/types/i18n/exceptions/I18nMessageSyntaxException.d.ts +14 -0
  67. package/dist/types/i18n/exceptions/I18nMissingKeyException.d.ts +12 -0
  68. package/dist/types/i18n/exceptions/I18nMissingParameterException.d.ts +13 -0
  69. package/dist/types/i18n/exceptions/I18nTranslatorException.d.ts +12 -0
  70. package/dist/types/i18n/interfaces/I18nOptions.d.ts +70 -0
  71. package/dist/types/i18n/interfaces/ITranslator.d.ts +57 -0
  72. package/dist/types/i18n/lib/Catalog.d.ts +34 -0
  73. package/dist/types/i18n/lib/CatalogTools.d.ts +86 -0
  74. package/dist/types/i18n/lib/Locale.d.ts +95 -0
  75. package/dist/types/i18n/lib/LocaleTranslator.d.ts +93 -0
  76. package/dist/types/i18n/lib/MessageFormat.d.ts +144 -0
  77. package/dist/types/i18n/middleware/CommanderTranslator.d.ts +71 -0
  78. package/dist/types/i18n/middleware/I18nMiddleware.d.ts +126 -0
  79. package/dist/types/i18n/types/I18nMessages.d.ts +24 -0
  80. package/package.json +60 -0
@@ -0,0 +1,24 @@
1
+ /**
2
+ * The application's message keys and their arguments, declared by the application to type-check {@link I18n.t} and
3
+ * the translators: a wrong key or a missing argument is then a compilation error. `lakutata i18n types` (or
4
+ * {@link generateMessageTypes}) generates the declaration from the messages of the default language, or it is written
5
+ * by hand, in the module the application imports the i18n from:
6
+ *
7
+ * declare module 'lakutata/com/i18n' {
8
+ * interface I18nMessages {
9
+ * 'order.count': { count: number }
10
+ * }
11
+ * }
12
+ *
13
+ * Empty by default: any key and any arguments are then accepted.
14
+ */
15
+ export interface I18nMessages {
16
+ }
17
+ /**
18
+ * A message key: one of the keys declared in {@link I18nMessages}, any string when none is declared.
19
+ */
20
+ export type MessageKey = keyof I18nMessages extends never ? string : Extract<keyof I18nMessages, string>;
21
+ /**
22
+ * The arguments of the message of a key: the ones declared in {@link I18nMessages}, any record for a key not declared.
23
+ */
24
+ export type MessageParams<K extends string> = K extends keyof I18nMessages ? I18nMessages[K] : Record<string, unknown>;
package/package.json ADDED
@@ -0,0 +1,60 @@
1
+ {
2
+ "name": "@lakutata/i18n",
3
+ "version": "3.0.0-beta.0",
4
+ "description": "The internationalization of the lakutata framework: the messages of each language by their keys (ICU MessageFormat), the language of each request, the messages of the validation.",
5
+ "type": "module",
6
+ "main": "./dist/cjs/exports/I18n.js",
7
+ "types": "./dist/cjs/exports/I18n.d.ts",
8
+ "exports": {
9
+ ".": {
10
+ "import": {
11
+ "types": "./dist/types/exports/I18n.d.ts",
12
+ "default": "./dist/esm/exports/I18n.js"
13
+ },
14
+ "require": {
15
+ "types": "./dist/cjs/exports/I18n.d.ts",
16
+ "default": "./dist/cjs/exports/I18n.js"
17
+ }
18
+ },
19
+ "./middleware": {
20
+ "import": {
21
+ "types": "./dist/types/exports/I18nMiddleware.d.ts",
22
+ "default": "./dist/esm/exports/I18nMiddleware.js"
23
+ },
24
+ "require": {
25
+ "types": "./dist/cjs/exports/I18nMiddleware.d.ts",
26
+ "default": "./dist/cjs/exports/I18nMiddleware.js"
27
+ }
28
+ },
29
+ "./package.json": "./package.json"
30
+ },
31
+ "scripts": {
32
+ "clean": "node -e \"require('node:fs').rmSync('dist', {recursive: true, force: true})\"",
33
+ "build:cjs": "tsc -p tsconfig.cjs.json",
34
+ "build:esm": "tsc -p tsconfig.esm.json",
35
+ "build:cjs-pkg": "node ../../scripts/package-build/cjs-package.mjs",
36
+ "build:js": "npm run build:cjs && npm run build:esm && npm run build:cjs-pkg",
37
+ "rebuild": "npm run clean && npm run build:js",
38
+ "compile": "npm run rebuild",
39
+ "test:unit": "npm run compile && node --test \"dist/esm/tests/*.spec.js\""
40
+ },
41
+ "peerDependencies": {
42
+ "@lakutata/core": "3.0.0-beta.0",
43
+ "@lakutata/entrypoint": "3.0.0-beta.0"
44
+ },
45
+ "peerDependenciesMeta": {
46
+ "@lakutata/entrypoint": {
47
+ "optional": true
48
+ }
49
+ },
50
+ "engines": {
51
+ "node": ">=22"
52
+ },
53
+ "files": [
54
+ "dist",
55
+ "!dist/*/tests",
56
+ "*.md",
57
+ "LICENSE",
58
+ "package.json"
59
+ ]
60
+ }