@ecmaos/types 0.7.1 → 0.7.3

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.
@@ -1,5 +1,5 @@
1
1
 
2
2
 
3
- > @ecmaos/types@0.7.1 build /home/archmag0s/code/ecmaos/core/types
3
+ > @ecmaos/types@0.7.3 build /home/archmag0s/code/ecmaos/core/types
4
4
  > tsc
5
5
 
package/CHANGELOG.md CHANGED
@@ -1,5 +1,24 @@
1
1
  # @ecmaos/types
2
2
 
3
+ ## 0.7.3
4
+
5
+ ### Patch Changes
6
+
7
+ - 472a7f1: feat: i18n filesystem loading, browser detection, and Spanish translations
8
+
9
+ - Load locales from filesystem at /usr/share/locales
10
+ - Auto-detect browser language and configure locale
11
+ - Add Spanish translations for all namespaces
12
+ - Add dd coreutil command
13
+ - Fix shell command not found errors
14
+ - Update dependencies (turbo 2.7.5)
15
+
16
+ ## 0.7.2
17
+
18
+ ### Patch Changes
19
+
20
+ - ad7dc2e: add initfs.demo; fix bell flash; rename hex to xxd
21
+
3
22
  ## 0.7.1
4
23
 
5
24
  ### Patch Changes
package/dist/i18n.d.ts CHANGED
@@ -4,33 +4,72 @@
4
4
  import type { InitOptions, TFunction } from 'i18next';
5
5
  import type i18next from 'i18next';
6
6
  /**
7
- * Interface for internationalization functionality
7
+ * Utility describing the shape of a translation resources object.
8
+ * Example: { en: { common: { ... }, kernel: { ... } }, es: { ... } }
8
9
  */
9
- export interface I18n {
10
- /** Get the i18next instance */
11
- readonly i18next: typeof i18next;
12
- /** Get the current language */
13
- readonly language: string;
14
- /** Get the translation function */
15
- readonly t: TFunction;
10
+ export type I18nResourceBundle = Record<string, Record<string, Record<string, string>>>;
11
+ export interface I18nFilesystemAdapter {
12
+ exists(path: string): Promise<boolean>;
13
+ readdir(path: string): Promise<string[]>;
14
+ readFile(path: string, encoding: 'utf-8'): Promise<string>;
15
+ stat(path: string): Promise<{
16
+ isDirectory(): boolean;
17
+ }>;
18
+ }
19
+ export interface I18nResourceLoadResult {
20
+ bundles: number;
21
+ files: number;
22
+ errors: string[];
16
23
  }
17
24
  /**
18
25
  * Options for configuring internationalization
19
26
  */
20
27
  export interface I18nOptions extends InitOptions {
21
- /** Resources for translations */
22
- resources?: Record<string, Record<string, Record<string, string>>>;
23
- /** Default language */
28
+ resources?: I18nResourceBundle;
24
29
  lng?: string;
25
- /** Fallback language */
26
30
  fallbackLng?: string;
27
- /** Namespaces */
28
31
  ns?: string[];
29
- /** Default namespace */
30
32
  defaultNS?: string;
31
- /** Interpolation options */
33
+ fsTranslationsPath?: string;
32
34
  interpolation?: {
33
35
  escapeValue?: boolean;
34
36
  };
35
37
  }
38
+ /**
39
+ * Namespaces helper for typed translation.
40
+ * This matches the ns object in I18n class.
41
+ */
42
+ export interface I18nNamespaces {
43
+ common: TFunction;
44
+ kernel: TFunction;
45
+ filesystem: TFunction;
46
+ coreutils: TFunction;
47
+ terminal: TFunction;
48
+ }
49
+ /**
50
+ * Interface for internationalization functionality.
51
+ *
52
+ * Mirrors i18n API and helpers from kernel/src/tree/i18n.ts.
53
+ */
54
+ export interface I18n {
55
+ /** Get the i18next instance */
56
+ readonly i18next: typeof i18next;
57
+ /** Get the current language */
58
+ readonly language: string;
59
+ /** Get the translation function */
60
+ readonly t: TFunction;
61
+ /** Get fixed translation functions for particular namespaces */
62
+ readonly ns: I18nNamespaces;
63
+ /**
64
+ * Converts a locale string to a language code
65
+ * Examples: 'en_US' -> 'en', 'es_ES' -> 'es', 'en' -> 'en'
66
+ */
67
+ localeToLanguage(locale: string): string;
68
+ /**
69
+ * Sets the language for i18next
70
+ * @param locale - Locale string (e.g., 'en_US', 'es_ES', 'en', 'es')
71
+ */
72
+ setLanguage(locale: string): void;
73
+ loadFilesystemResources(fs: I18nFilesystemAdapter, rootPath?: string): Promise<I18nResourceLoadResult>;
74
+ }
36
75
  //# sourceMappingURL=i18n.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"i18n.d.ts","sourceRoot":"","sources":["../i18n.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AACrD,OAAO,KAAK,OAAO,MAAM,SAAS,CAAA;AAElC;;GAEG;AACH,MAAM,WAAW,IAAI;IACnB,+BAA+B;IAC/B,QAAQ,CAAC,OAAO,EAAE,OAAO,OAAO,CAAA;IAChC,+BAA+B;IAC/B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,mCAAmC;IACnC,QAAQ,CAAC,CAAC,EAAE,SAAS,CAAA;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,WAAY,SAAQ,WAAW;IAC9C,iCAAiC;IACjC,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAA;IAClE,uBAAuB;IACvB,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,wBAAwB;IACxB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,iBAAiB;IACjB,EAAE,CAAC,EAAE,MAAM,EAAE,CAAA;IACb,wBAAwB;IACxB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,4BAA4B;IAC5B,aAAa,CAAC,EAAE;QACd,WAAW,CAAC,EAAE,OAAO,CAAA;KACtB,CAAA;CACF"}
1
+ {"version":3,"file":"i18n.d.ts","sourceRoot":"","sources":["../i18n.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AACrD,OAAO,KAAK,OAAO,MAAM,SAAS,CAAA;AAElC;;;GAGG;AACH,MAAM,MAAM,kBAAkB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,CAAA;AAEvF,MAAM,WAAW,qBAAqB;IACpC,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;IACtC,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAAA;IACxC,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAA;IAC1D,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,WAAW,IAAI,OAAO,CAAA;KAAE,CAAC,CAAA;CACxD;AAED,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,MAAM,CAAA;IACf,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,EAAE,CAAA;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,WAAY,SAAQ,WAAW;IAC9C,SAAS,CAAC,EAAE,kBAAkB,CAAA;IAC9B,GAAG,CAAC,EAAE,MAAM,CAAA;IACZ,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,EAAE,CAAC,EAAE,MAAM,EAAE,CAAA;IACb,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,kBAAkB,CAAC,EAAE,MAAM,CAAA;IAC3B,aAAa,CAAC,EAAE;QACd,WAAW,CAAC,EAAE,OAAO,CAAA;KACtB,CAAA;CACF;AAED;;;GAGG;AACH,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,SAAS,CAAA;IACjB,MAAM,EAAE,SAAS,CAAA;IACjB,UAAU,EAAE,SAAS,CAAA;IACrB,SAAS,EAAE,SAAS,CAAA;IACpB,QAAQ,EAAE,SAAS,CAAA;CACpB;AAED;;;;GAIG;AACH,MAAM,WAAW,IAAI;IACnB,+BAA+B;IAC/B,QAAQ,CAAC,OAAO,EAAE,OAAO,OAAO,CAAA;IAChC,+BAA+B;IAC/B,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;IACzB,mCAAmC;IACnC,QAAQ,CAAC,CAAC,EAAE,SAAS,CAAA;IACrB,gEAAgE;IAChE,QAAQ,CAAC,EAAE,EAAE,cAAc,CAAA;IAC3B;;;OAGG;IACH,gBAAgB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAA;IACxC;;;OAGG;IACH,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;IACjC,uBAAuB,CACrB,EAAE,EAAE,qBAAqB,EACzB,QAAQ,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,sBAAsB,CAAC,CAAA;CACnC"}
package/dist/kernel.d.ts CHANGED
@@ -151,7 +151,9 @@ export interface KernelOptions {
151
151
  devices?: Record<string, KernelDevice>;
152
152
  dom?: DomOptions;
153
153
  filesystem?: FilesystemOptions<FilesystemConfigMounts>;
154
- i18n?: InitOptions;
154
+ i18n?: InitOptions & {
155
+ fsTranslationsPath?: string;
156
+ };
155
157
  log?: LogOptions;
156
158
  service?: ServiceOptions;
157
159
  socket?: WebSocket;
@@ -1 +1 @@
1
- {"version":3,"file":"kernel.d.ts","sourceRoot":"","sources":["../kernel.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"kernel.d.ts","sourceRoot":"","sources":["../kernel.ts"],"names":[],"mappings":"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"}
package/i18n.ts CHANGED
@@ -6,33 +6,77 @@ import type { InitOptions, TFunction } from 'i18next'
6
6
  import type i18next from 'i18next'
7
7
 
8
8
  /**
9
- * Interface for internationalization functionality
9
+ * Utility describing the shape of a translation resources object.
10
+ * Example: { en: { common: { ... }, kernel: { ... } }, es: { ... } }
10
11
  */
11
- export interface I18n {
12
- /** Get the i18next instance */
13
- readonly i18next: typeof i18next
14
- /** Get the current language */
15
- readonly language: string
16
- /** Get the translation function */
17
- readonly t: TFunction
12
+ export type I18nResourceBundle = Record<string, Record<string, Record<string, string>>>
13
+
14
+ export interface I18nFilesystemAdapter {
15
+ exists(path: string): Promise<boolean>
16
+ readdir(path: string): Promise<string[]>
17
+ readFile(path: string, encoding: 'utf-8'): Promise<string>
18
+ stat(path: string): Promise<{ isDirectory(): boolean }>
19
+ }
20
+
21
+ export interface I18nResourceLoadResult {
22
+ bundles: number
23
+ files: number
24
+ errors: string[]
18
25
  }
19
26
 
20
27
  /**
21
28
  * Options for configuring internationalization
22
29
  */
23
30
  export interface I18nOptions extends InitOptions {
24
- /** Resources for translations */
25
- resources?: Record<string, Record<string, Record<string, string>>>
26
- /** Default language */
31
+ resources?: I18nResourceBundle
27
32
  lng?: string
28
- /** Fallback language */
29
33
  fallbackLng?: string
30
- /** Namespaces */
31
34
  ns?: string[]
32
- /** Default namespace */
33
35
  defaultNS?: string
34
- /** Interpolation options */
36
+ fsTranslationsPath?: string
35
37
  interpolation?: {
36
38
  escapeValue?: boolean
37
39
  }
38
- }
40
+ }
41
+
42
+ /**
43
+ * Namespaces helper for typed translation.
44
+ * This matches the ns object in I18n class.
45
+ */
46
+ export interface I18nNamespaces {
47
+ common: TFunction
48
+ kernel: TFunction
49
+ filesystem: TFunction
50
+ coreutils: TFunction
51
+ terminal: TFunction
52
+ }
53
+
54
+ /**
55
+ * Interface for internationalization functionality.
56
+ *
57
+ * Mirrors i18n API and helpers from kernel/src/tree/i18n.ts.
58
+ */
59
+ export interface I18n {
60
+ /** Get the i18next instance */
61
+ readonly i18next: typeof i18next
62
+ /** Get the current language */
63
+ readonly language: string
64
+ /** Get the translation function */
65
+ readonly t: TFunction
66
+ /** Get fixed translation functions for particular namespaces */
67
+ readonly ns: I18nNamespaces
68
+ /**
69
+ * Converts a locale string to a language code
70
+ * Examples: 'en_US' -> 'en', 'es_ES' -> 'es', 'en' -> 'en'
71
+ */
72
+ localeToLanguage(locale: string): string
73
+ /**
74
+ * Sets the language for i18next
75
+ * @param locale - Locale string (e.g., 'en_US', 'es_ES', 'en', 'es')
76
+ */
77
+ setLanguage(locale: string): void
78
+ loadFilesystemResources(
79
+ fs: I18nFilesystemAdapter,
80
+ rootPath?: string
81
+ ): Promise<I18nResourceLoadResult>
82
+ }
package/kernel.ts CHANGED
@@ -233,7 +233,9 @@ export interface KernelOptions {
233
233
  devices?: Record<string, KernelDevice>
234
234
  dom?: DomOptions
235
235
  filesystem?: FilesystemOptions<FilesystemConfigMounts>
236
- i18n?: InitOptions
236
+ i18n?: InitOptions & {
237
+ fsTranslationsPath?: string
238
+ }
237
239
  log?: LogOptions
238
240
  service?: ServiceOptions
239
241
  socket?: WebSocket
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ecmaos/types",
3
- "version": "0.7.1",
3
+ "version": "0.7.3",
4
4
  "description": "Type definitions for ecmaOS",
5
5
  "author": "Jay Mathis",
6
6
  "license": "MIT+Apache-2.0",