@rimori/client 1.4.0 → 1.4.4

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 (133) hide show
  1. package/README.md +77 -71
  2. package/dist/cli/scripts/init/dev-registration.d.ts +1 -1
  3. package/dist/cli/scripts/init/dev-registration.js +4 -4
  4. package/dist/cli/scripts/init/main.js +1 -1
  5. package/dist/cli/scripts/init/package-setup.d.ts +1 -1
  6. package/dist/cli/scripts/init/package-setup.js +3 -3
  7. package/dist/cli/scripts/init/router-transformer.js +19 -12
  8. package/dist/cli/scripts/init/vite-config.d.ts +2 -2
  9. package/dist/cli/scripts/init/vite-config.js +2 -2
  10. package/dist/cli/scripts/release/release-config-upload.js +9 -9
  11. package/dist/cli/scripts/release/release-db-update.d.ts +1 -1
  12. package/dist/cli/scripts/release/release-db-update.js +9 -9
  13. package/dist/cli/scripts/release/release-file-upload.js +1 -1
  14. package/dist/cli/scripts/release/release.js +2 -2
  15. package/dist/components/CRUDModal.d.ts +1 -1
  16. package/dist/components/CRUDModal.js +3 -3
  17. package/dist/components/MarkdownEditor.js +16 -16
  18. package/dist/components/Spinner.js +2 -2
  19. package/dist/components/ai/Assistant.js +7 -8
  20. package/dist/components/ai/Avatar.d.ts +2 -2
  21. package/dist/components/ai/Avatar.js +10 -5
  22. package/dist/components/ai/EmbeddedAssistent/AudioInputField.js +5 -6
  23. package/dist/components/ai/EmbeddedAssistent/CircleAudioAvatar.d.ts +1 -1
  24. package/dist/components/ai/EmbeddedAssistent/CircleAudioAvatar.js +1 -2
  25. package/dist/components/ai/EmbeddedAssistent/TTS/MessageSender.d.ts +1 -2
  26. package/dist/components/ai/EmbeddedAssistent/TTS/MessageSender.js +4 -2
  27. package/dist/components/ai/EmbeddedAssistent/VoiceRecoder.js +2 -3
  28. package/dist/components/audio/Playbutton.js +10 -7
  29. package/dist/components/components/ContextMenu.d.ts +1 -1
  30. package/dist/components/components/ContextMenu.js +19 -16
  31. package/dist/components.d.ts +10 -10
  32. package/dist/components.js +10 -10
  33. package/dist/core/controller/AIController.d.ts +2 -2
  34. package/dist/core/controller/AIController.js +12 -12
  35. package/dist/core/controller/ExerciseController.d.ts +2 -2
  36. package/dist/core/controller/ExerciseController.js +2 -2
  37. package/dist/core/controller/ObjectController.js +5 -5
  38. package/dist/core/controller/SettingsController.d.ts +22 -7
  39. package/dist/core/controller/SettingsController.js +73 -8
  40. package/dist/core/controller/SharedContentController.d.ts +3 -3
  41. package/dist/core/controller/SharedContentController.js +38 -20
  42. package/dist/core/controller/VoiceController.js +6 -4
  43. package/dist/core/core.d.ts +15 -15
  44. package/dist/core/core.js +7 -7
  45. package/dist/fromRimori/EventBus.js +23 -23
  46. package/dist/fromRimori/PluginTypes.d.ts +4 -4
  47. package/dist/hooks/UseChatHook.d.ts +3 -3
  48. package/dist/hooks/UseChatHook.js +9 -3
  49. package/dist/index.d.ts +10 -10
  50. package/dist/index.js +9 -9
  51. package/dist/plugin/AccomplishmentHandler.d.ts +5 -5
  52. package/dist/plugin/AccomplishmentHandler.js +31 -27
  53. package/dist/plugin/AudioController.d.ts +1 -1
  54. package/dist/plugin/AudioController.js +6 -6
  55. package/dist/plugin/Logger.js +15 -13
  56. package/dist/plugin/PluginController.d.ts +7 -1
  57. package/dist/plugin/PluginController.js +32 -27
  58. package/dist/plugin/RimoriClient.d.ts +17 -18
  59. package/dist/plugin/RimoriClient.js +31 -31
  60. package/dist/plugin/StandaloneClient.d.ts +1 -1
  61. package/dist/plugin/StandaloneClient.js +35 -16
  62. package/dist/plugin/ThemeSetter.js +4 -4
  63. package/dist/providers/PluginProvider.js +44 -14
  64. package/dist/utils/Language.js +57 -57
  65. package/dist/utils/PluginUtils.js +3 -3
  66. package/dist/utils/difficultyConverter.d.ts +1 -1
  67. package/dist/utils/difficultyConverter.js +1 -1
  68. package/dist/utils/endpoint.js +2 -2
  69. package/dist/worker/WorkerSetup.d.ts +1 -1
  70. package/dist/worker/WorkerSetup.js +6 -6
  71. package/example/docs/devdocs.md +50 -40
  72. package/example/docs/overview.md +1 -1
  73. package/example/docs/userdocs.md +4 -1
  74. package/example/rimori.config.ts +51 -49
  75. package/example/worker/vite.config.ts +3 -3
  76. package/example/worker/worker.ts +2 -2
  77. package/package.json +14 -8
  78. package/prettier.config.js +1 -1
  79. package/src/cli/scripts/init/dev-registration.ts +5 -8
  80. package/src/cli/scripts/init/env-setup.ts +1 -1
  81. package/src/cli/scripts/init/file-operations.ts +1 -1
  82. package/src/cli/scripts/init/html-cleaner.ts +2 -5
  83. package/src/cli/scripts/init/main.ts +16 -13
  84. package/src/cli/scripts/init/package-setup.ts +11 -15
  85. package/src/cli/scripts/init/router-transformer.ts +40 -37
  86. package/src/cli/scripts/init/tailwind-config.ts +17 -26
  87. package/src/cli/scripts/init/vite-config.ts +3 -3
  88. package/src/cli/scripts/release/release-config-upload.ts +11 -11
  89. package/src/cli/scripts/release/release-db-update.ts +12 -12
  90. package/src/cli/scripts/release/release-file-upload.ts +2 -2
  91. package/src/cli/scripts/release/release.ts +4 -4
  92. package/src/cli/types/DatabaseTypes.ts +2 -10
  93. package/src/components/CRUDModal.tsx +64 -48
  94. package/src/components/MarkdownEditor.tsx +58 -27
  95. package/src/components/Spinner.tsx +24 -17
  96. package/src/components/ai/Assistant.tsx +70 -70
  97. package/src/components/ai/Avatar.tsx +17 -14
  98. package/src/components/ai/EmbeddedAssistent/AudioInputField.tsx +63 -54
  99. package/src/components/ai/EmbeddedAssistent/CircleAudioAvatar.tsx +14 -5
  100. package/src/components/ai/EmbeddedAssistent/TTS/MessageSender.ts +75 -74
  101. package/src/components/ai/EmbeddedAssistent/TTS/Player.ts +3 -4
  102. package/src/components/ai/EmbeddedAssistent/VoiceRecoder.tsx +109 -94
  103. package/src/components/ai/utils.ts +4 -4
  104. package/src/components/audio/Playbutton.tsx +101 -93
  105. package/src/components/components/ContextMenu.tsx +47 -35
  106. package/src/components.ts +10 -10
  107. package/src/core/controller/AIController.ts +29 -19
  108. package/src/core/controller/ExerciseController.ts +16 -23
  109. package/src/core/controller/ObjectController.ts +15 -10
  110. package/src/core/controller/SettingsController.ts +89 -16
  111. package/src/core/controller/SharedContentController.ts +80 -44
  112. package/src/core/controller/VoiceController.ts +10 -8
  113. package/src/core/core.ts +15 -16
  114. package/src/fromRimori/EventBus.ts +76 -47
  115. package/src/fromRimori/PluginTypes.ts +26 -17
  116. package/src/fromRimori/readme.md +2 -2
  117. package/src/hooks/UseChatHook.ts +25 -15
  118. package/src/index.ts +10 -10
  119. package/src/plugin/AccomplishmentHandler.ts +53 -35
  120. package/src/plugin/AudioController.ts +18 -12
  121. package/src/plugin/Logger.ts +28 -21
  122. package/src/plugin/PluginController.ts +60 -44
  123. package/src/plugin/RimoriClient.ts +102 -72
  124. package/src/plugin/StandaloneClient.ts +51 -24
  125. package/src/plugin/ThemeSetter.ts +5 -5
  126. package/src/providers/PluginProvider.tsx +90 -36
  127. package/src/style.scss +3 -3
  128. package/src/utils/Language.ts +58 -58
  129. package/src/utils/PluginUtils.ts +16 -20
  130. package/src/utils/difficultyConverter.ts +2 -2
  131. package/src/utils/endpoint.ts +3 -2
  132. package/src/worker/WorkerSetup.ts +8 -9
  133. package/tsconfig.json +2 -4
package/src/style.scss CHANGED
@@ -66,7 +66,7 @@ dialog::backdrop {
66
66
  ul {
67
67
  @apply list-disc pl-8;
68
68
 
69
- li>p {
69
+ li > p {
70
70
  @apply mb-1;
71
71
  }
72
72
  }
@@ -74,7 +74,7 @@ dialog::backdrop {
74
74
  ol {
75
75
  @apply list-decimal pl-7;
76
76
 
77
- li>p {
77
+ li > p {
78
78
  @apply mb-1;
79
79
  }
80
80
  }
@@ -133,4 +133,4 @@ dialog::backdrop {
133
133
  @apply max-w-full;
134
134
  }
135
135
  }
136
- }
136
+ }
@@ -1,61 +1,61 @@
1
1
  export const languageKeys = {
2
- sq: "albanian",
3
- ar: "arabic",
4
- hy: "armenian",
5
- az: "azerbaijani",
6
- bn: "bengali",
7
- bs: "bosnian",
8
- bg: "bulgarian",
9
- ca: "catalan",
10
- zh: "chinese",
11
- hr: "croatian",
12
- cs: "czech",
13
- da: "danish",
14
- nl: "dutch",
15
- en: "english",
16
- et: "estonian",
17
- fi: "finnish",
18
- fr: "french",
19
- gl: "galician",
20
- de: "german",
21
- el: "greek",
22
- he: "hebrew",
23
- hi: "hindi",
24
- hu: "hungarian",
25
- is: "icelandic",
26
- id: "indonesian",
27
- it: "italian",
28
- ja: "japanese",
29
- kn: "kannada",
30
- kk: "kazakh",
31
- ko: "korean",
32
- lv: "latvian",
33
- lt: "lithuanian",
34
- mk: "macedonian",
35
- ms: "malay",
36
- mr: "marathi",
37
- mi: "maori",
38
- ne: "nepali",
39
- no: "norwegian",
40
- fa: "persian",
41
- pl: "polish",
42
- pt: "portuguese",
43
- ro: "romanian",
44
- ru: "russian",
45
- sr: "serbian",
46
- sk: "slovak",
47
- sl: "slovenian",
48
- es: "spanish",
49
- sw: "swahili",
50
- sv: "swedish",
51
- tl: "filipino",
52
- ta: "tamil",
53
- th: "thai",
54
- tr: "turkish",
55
- uk: "ukrainian",
56
- ur: "urdu",
57
- vi: "vietnamese",
58
- cy: "welsh"
2
+ sq: 'albanian',
3
+ ar: 'arabic',
4
+ hy: 'armenian',
5
+ az: 'azerbaijani',
6
+ bn: 'bengali',
7
+ bs: 'bosnian',
8
+ bg: 'bulgarian',
9
+ ca: 'catalan',
10
+ zh: 'chinese',
11
+ hr: 'croatian',
12
+ cs: 'czech',
13
+ da: 'danish',
14
+ nl: 'dutch',
15
+ en: 'english',
16
+ et: 'estonian',
17
+ fi: 'finnish',
18
+ fr: 'french',
19
+ gl: 'galician',
20
+ de: 'german',
21
+ el: 'greek',
22
+ he: 'hebrew',
23
+ hi: 'hindi',
24
+ hu: 'hungarian',
25
+ is: 'icelandic',
26
+ id: 'indonesian',
27
+ it: 'italian',
28
+ ja: 'japanese',
29
+ kn: 'kannada',
30
+ kk: 'kazakh',
31
+ ko: 'korean',
32
+ lv: 'latvian',
33
+ lt: 'lithuanian',
34
+ mk: 'macedonian',
35
+ ms: 'malay',
36
+ mr: 'marathi',
37
+ mi: 'maori',
38
+ ne: 'nepali',
39
+ no: 'norwegian',
40
+ fa: 'persian',
41
+ pl: 'polish',
42
+ pt: 'portuguese',
43
+ ro: 'romanian',
44
+ ru: 'russian',
45
+ sr: 'serbian',
46
+ sk: 'slovak',
47
+ sl: 'slovenian',
48
+ es: 'spanish',
49
+ sw: 'swahili',
50
+ sv: 'swedish',
51
+ tl: 'filipino',
52
+ ta: 'tamil',
53
+ th: 'thai',
54
+ tr: 'turkish',
55
+ uk: 'ukrainian',
56
+ ur: 'urdu',
57
+ vi: 'vietnamese',
58
+ cy: 'welsh',
59
59
  } as const;
60
60
 
61
61
  export type Language = keyof typeof languageKeys;
@@ -69,4 +69,4 @@ export type Language = keyof typeof languageKeys;
69
69
  export function getLanguageName(languageCode: Language, capitalize: boolean = false): string {
70
70
  const lang = languageKeys[languageCode];
71
71
  return capitalize ? lang.charAt(0).toUpperCase() + lang.slice(1) : lang;
72
- }
72
+ }
@@ -1,26 +1,22 @@
1
1
  export function isFullscreen() {
2
- return !!document.fullscreenElement;
2
+ return !!document.fullscreenElement;
3
3
  }
4
4
 
5
5
  export function triggerFullscreen(onStateChange: (isFullscreen: boolean) => void, selector?: string) {
6
- document.addEventListener("fullscreenchange", () => {
7
- onStateChange(isFullscreen());
8
- });
9
- try {
10
- const ref = document.querySelector(selector || "#root")!
11
- if (!isFullscreen()) {
12
- // @ts-ignore
13
- ref.requestFullscreen() || ref.webkitRequestFullscreen()
14
- } else {
15
- // @ts-ignore
16
- document.exitFullscreen() || document.webkitExitFullscreen()
17
- }
18
- } catch (error: any) {
19
- console.error("Failed to enter fullscreen", error.message);
20
- }
6
+ document.addEventListener('fullscreenchange', () => {
21
7
  onStateChange(isFullscreen());
8
+ });
9
+ try {
10
+ const ref = document.querySelector(selector || '#root')!;
11
+ if (!isFullscreen()) {
12
+ // @ts-ignore
13
+ ref.requestFullscreen() || ref.webkitRequestFullscreen();
14
+ } else {
15
+ // @ts-ignore
16
+ document.exitFullscreen() || document.webkitExitFullscreen();
17
+ }
18
+ } catch (error: any) {
19
+ console.error('Failed to enter fullscreen', error.message);
20
+ }
21
+ onStateChange(isFullscreen());
22
22
  }
23
-
24
-
25
-
26
-
@@ -1,6 +1,6 @@
1
- const codes = ["Pre-A1", "A1", "A2", "B1", "B2", "C1", "C2", "Post-C2"];
1
+ const codes = ['Pre-A1', 'A1', 'A2', 'B1', 'B2', 'C1', 'C2', 'Post-C2'];
2
2
 
3
- export type LanguageLevel = "Pre-A1" | "A1" | "A2" | "B1" | "B2" | "C1" | "C2" | "Post-C2";
3
+ export type LanguageLevel = 'Pre-A1' | 'A1' | 'A2' | 'B1' | 'B2' | 'C1' | 'C2' | 'Post-C2';
4
4
 
5
5
  export function getDifficultyLevel(difficulty: LanguageLevel): number {
6
6
  return codes.indexOf(difficulty) + 1;
@@ -1,2 +1,3 @@
1
- export const DEFAULT_ENDPOINT = "https://pheptqdoqsdnadgoihvr.supabase.co";
2
- export const DEFAULT_ANON_KEY = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6InBoZXB0cWRvcXNkbmFkZ29paHZyIiwicm9sZSI6ImFub24iLCJpYXQiOjE3MzE2OTY2ODcsImV4cCI6MjA0NzI3MjY4N30.4GPFAXTF8685FaXISdAPNCIM-H3RGLo8GbyhQpu1mP0";
1
+ export const DEFAULT_ENDPOINT = 'https://pheptqdoqsdnadgoihvr.supabase.co';
2
+ export const DEFAULT_ANON_KEY =
3
+ 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJzdXBhYmFzZSIsInJlZiI6InBoZXB0cWRvcXNkbmFkZ29paHZyIiwicm9sZSI6ImFub24iLCJpYXQiOjE3MzE2OTY2ODcsImV4cCI6MjA0NzI3MjY4N30.4GPFAXTF8685FaXISdAPNCIM-H3RGLo8GbyhQpu1mP0';
@@ -1,6 +1,6 @@
1
- import { RimoriClient } from "../plugin/RimoriClient";
2
- import { EventBusHandler } from "../fromRimori/EventBus";
3
- import { PluginController } from "../plugin/PluginController";
1
+ import { RimoriClient } from '../plugin/RimoriClient';
2
+ import { EventBusHandler } from '../fromRimori/EventBus';
3
+ import { PluginController } from '../plugin/PluginController';
4
4
 
5
5
  /**
6
6
  * Sets up the web worker for the plugin to be able receive and send messages to Rimori.
@@ -8,21 +8,20 @@ import { PluginController } from "../plugin/PluginController";
8
8
  * @param init - The function containing the initialization logic.
9
9
  */
10
10
  export async function setupWorker(pluginId: string, init: (client: RimoriClient) => void | Promise<void>) {
11
-
12
11
  // Mock of the window object for the worker context to be able to use the PluginController.
13
12
  const mockWindow = {
14
13
  isWorker: true,
15
14
  location: {},
16
15
  parent: {
17
- postMessage: () => { }
16
+ postMessage: () => {},
18
17
  },
19
- addEventListener: () => { }
18
+ addEventListener: () => {},
20
19
  };
21
20
 
22
21
  // Assign the mock to globalThis.
23
22
  Object.assign(globalThis, { window: mockWindow });
24
23
 
25
- EventBusHandler.getInstance("Worker EventBus");
24
+ EventBusHandler.getInstance('Worker EventBus');
26
25
 
27
26
  const rimoriClient = await PluginController.getInstance(pluginId);
28
27
  console.debug('[Worker] RimoriClient initialized.');
@@ -30,5 +29,5 @@ export async function setupWorker(pluginId: string, init: (client: RimoriClient)
30
29
  await init(rimoriClient);
31
30
  console.debug('[Worker] Worker initialized.');
32
31
 
33
- self.postMessage({ type: "rimori:acknowledged", pluginId: pluginId });
34
- }
32
+ self.postMessage({ type: 'rimori:acknowledged', pluginId: pluginId });
33
+ }
package/tsconfig.json CHANGED
@@ -10,7 +10,5 @@
10
10
  "skipLibCheck": true,
11
11
  "strict": true
12
12
  },
13
- "include": [
14
- "src/**/*"
15
- ],
16
- }
13
+ "include": ["src/**/*"]
14
+ }