summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.eslintrc.json28
-rw-r--r--dev/data/manifest-variants.json18
-rw-r--r--dev/dictionary-validate.js4
-rw-r--r--dev/schema-validate.js4
-rw-r--r--ext/action-popup.html12
-rw-r--r--ext/background.html14
-rw-r--r--ext/info.html12
-rw-r--r--ext/js/background/environment.js (renamed from ext/mixed/js/environment.js)0
-rw-r--r--ext/js/comm/api.js (renamed from ext/mixed/js/api.js)0
-rw-r--r--ext/js/comm/cross-frame-api.js (renamed from ext/mixed/js/comm.js)0
-rw-r--r--ext/js/comm/frame-client.js (renamed from ext/mixed/js/frame-client.js)0
-rw-r--r--ext/js/comm/frame-endpoint.js (renamed from ext/mixed/js/frame-endpoint.js)0
-rw-r--r--ext/js/core.js (renamed from ext/mixed/js/core.js)0
-rw-r--r--ext/js/debug/timer.js (renamed from ext/mixed/js/timer.js)0
-rw-r--r--ext/js/display/display-audio.js (renamed from ext/mixed/js/display-audio.js)0
-rw-r--r--ext/js/display/display-generator.js (renamed from ext/mixed/js/display-generator.js)0
-rw-r--r--ext/js/display/display-history.js (renamed from ext/mixed/js/display-history.js)0
-rw-r--r--ext/js/display/display-notification.js (renamed from ext/mixed/js/display-notification.js)0
-rw-r--r--ext/js/display/display-profile-selection.js (renamed from ext/mixed/js/display-profile-selection.js)0
-rw-r--r--ext/js/display/display.js (renamed from ext/mixed/js/display.js)4
-rw-r--r--ext/js/dom/document-focus-controller.js (renamed from ext/mixed/js/document-focus-controller.js)0
-rw-r--r--ext/js/dom/document-util.js (renamed from ext/mixed/js/document-util.js)0
-rw-r--r--ext/js/dom/dom-data-binder.js (renamed from ext/mixed/js/dom-data-binder.js)0
-rw-r--r--ext/js/dom/html-template-collection.js (renamed from ext/mixed/js/html-template-collection.js)0
-rw-r--r--ext/js/dom/panel-element.js (renamed from ext/mixed/js/panel-element.js)0
-rw-r--r--ext/js/dom/popup-menu.js (renamed from ext/mixed/js/popup-menu.js)0
-rw-r--r--ext/js/dom/selector-observer.js (renamed from ext/mixed/js/selector-observer.js)0
-rw-r--r--ext/js/dom/window-scroll.js (renamed from ext/mixed/js/scroll.js)0
-rw-r--r--ext/js/general/cache-map.js (renamed from ext/mixed/js/cache-map.js)0
-rw-r--r--ext/js/general/object-property-accessor.js (renamed from ext/mixed/js/object-property-accessor.js)0
-rw-r--r--ext/js/general/task-accumulator.js (renamed from ext/mixed/js/task-accumulator.js)0
-rw-r--r--ext/js/input/hotkey-handler.js (renamed from ext/mixed/js/hotkey-handler.js)0
-rw-r--r--ext/js/input/hotkey-help-controller.js (renamed from ext/mixed/js/hotkey-help-controller.js)0
-rw-r--r--ext/js/input/hotkey-util.js (renamed from ext/mixed/js/hotkey-util.js)0
-rw-r--r--ext/js/language/dictionary-data-util.js (renamed from ext/mixed/js/dictionary-data-util.js)0
-rw-r--r--ext/js/language/japanese-util.js (renamed from ext/mixed/js/japanese.js)0
-rw-r--r--ext/js/language/text-scanner.js (renamed from ext/mixed/js/text-scanner.js)0
-rw-r--r--ext/js/media/audio-system.js (renamed from ext/mixed/js/audio-system.js)0
-rw-r--r--ext/js/media/media-loader.js (renamed from ext/mixed/js/media-loader.js)0
-rw-r--r--ext/js/media/text-to-speech-audio.js (renamed from ext/mixed/js/text-to-speech-audio.js)0
-rw-r--r--ext/js/script/dynamic-loader-sentinel.js (renamed from ext/mixed/js/dynamic-loader-sentinel.js)0
-rw-r--r--ext/js/script/dynamic-loader.js (renamed from ext/mixed/js/dynamic-loader.js)2
-rw-r--r--ext/js/yomichan.js (renamed from ext/mixed/js/yomichan.js)0
-rw-r--r--ext/legal.html2
-rw-r--r--ext/manifest.json18
-rw-r--r--ext/permissions.html12
-rw-r--r--ext/pitch-accents-preview.html12
-rw-r--r--ext/popup-preview.html18
-rw-r--r--ext/popup.html54
-rw-r--r--ext/search.html50
-rw-r--r--ext/settings-old.html36
-rw-r--r--ext/settings.html42
-rw-r--r--ext/sw.js14
-rw-r--r--ext/template-renderer.html4
-rw-r--r--ext/welcome.html30
-rw-r--r--test/test-cache-map.js2
-rw-r--r--test/test-core.js2
-rw-r--r--test/test-database.js4
-rw-r--r--test/test-document-util.js2
-rw-r--r--test/test-hotkey-util.js2
-rw-r--r--test/test-japanese.js2
-rw-r--r--test/test-object-property-accessor.js2
-rw-r--r--test/test-options-util.js4
-rw-r--r--test/test-profile-conditions.js4
-rw-r--r--test/test-schema.js4
-rw-r--r--test/test-translator.js6
66 files changed, 212 insertions, 212 deletions
diff --git a/.eslintrc.json b/.eslintrc.json
index 4c7b2393..3dcefb91 100644
--- a/.eslintrc.json
+++ b/.eslintrc.json
@@ -84,9 +84,9 @@
"overrides": [
{
"files": [
- "ext/mixed/js/core.js",
+ "ext/js/core.js",
"ext/bg/js/template-renderer.js",
- "ext/mixed/js/dictionary-data-util.js"
+ "ext/js/language/dictionary-data-util.js"
],
"env": {
"webextensions": false
@@ -95,10 +95,10 @@
{
"files": ["ext/**/*.js"],
"excludedFiles": [
- "ext/mixed/js/core.js",
+ "ext/js/core.js",
"ext/bg/js/template-renderer.js",
"ext/bg/js/anki-note-data.js",
- "ext/mixed/js/dictionary-data-util.js"
+ "ext/js/language/dictionary-data-util.js"
],
"globals": {
"serializeError": "readonly",
@@ -120,15 +120,15 @@
{
"files": ["ext/**/*.js"],
"excludedFiles": [
- "ext/mixed/js/core.js",
- "ext/mixed/js/yomichan.js"
+ "ext/js/core.js",
+ "ext/js/yomichan.js"
],
"globals": {
"yomichan": "readonly"
}
},
{
- "files": ["ext/mixed/js/yomichan.js"],
+ "files": ["ext/js/yomichan.js"],
"globals": {
"chrome": "writable"
}
@@ -158,13 +158,13 @@
},
{
"files": [
- "ext/mixed/js/core.js",
- "ext/mixed/js/yomichan.js",
- "ext/mixed/js/environment.js",
- "ext/mixed/js/japanese.js",
- "ext/mixed/js/cache-map.js",
- "ext/mixed/js/dictionary-data-util.js",
- "ext/mixed/js/object-property-accessor.js",
+ "ext/js/core.js",
+ "ext/js/yomichan.js",
+ "ext/js/background/environment.js",
+ "ext/js/language/japanese-util.js",
+ "ext/js/general/cache-map.js",
+ "ext/js/language/dictionary-data-util.js",
+ "ext/js/general/object-property-accessor.js",
"ext/bg/js/anki.js",
"ext/bg/js/audio-downloader.js",
"ext/bg/js/clipboard-monitor.js",
diff --git a/dev/data/manifest-variants.json b/dev/data/manifest-variants.json
index dd46dc22..aa06bf58 100644
--- a/dev/data/manifest-variants.json
+++ b/dev/data/manifest-variants.json
@@ -39,15 +39,15 @@
"file://*/*"
],
"js": [
- "mixed/js/core.js",
- "mixed/js/yomichan.js",
- "mixed/js/comm.js",
- "mixed/js/api.js",
- "mixed/js/dynamic-loader.js",
- "mixed/js/frame-client.js",
- "mixed/js/text-scanner.js",
- "mixed/js/document-util.js",
- "mixed/js/hotkey-handler.js",
+ "js/core.js",
+ "js/yomichan.js",
+ "js/comm/cross-frame-api.js",
+ "js/comm/api.js",
+ "js/script/dynamic-loader.js",
+ "js/comm/frame-client.js",
+ "js/language/text-scanner.js",
+ "js/dom/document-util.js",
+ "js/input/hotkey-handler.js",
"fg/js/dom-text-scanner.js",
"fg/js/popup.js",
"fg/js/text-source-range.js",
diff --git a/dev/dictionary-validate.js b/dev/dictionary-validate.js
index 873bcb8a..17d6e3de 100644
--- a/dev/dictionary-validate.js
+++ b/dev/dictionary-validate.js
@@ -22,8 +22,8 @@ const {VM} = require('./vm');
const vm = new VM();
vm.execute([
- 'mixed/js/core.js',
- 'mixed/js/cache-map.js',
+ 'js/core.js',
+ 'js/general/cache-map.js',
'bg/js/json-schema.js'
]);
const JsonSchemaValidator = vm.get('JsonSchemaValidator');
diff --git a/dev/schema-validate.js b/dev/schema-validate.js
index bf496223..0ede032b 100644
--- a/dev/schema-validate.js
+++ b/dev/schema-validate.js
@@ -20,8 +20,8 @@ const {VM} = require('./vm');
const vm = new VM();
vm.execute([
- 'mixed/js/core.js',
- 'mixed/js/cache-map.js',
+ 'js/core.js',
+ 'js/general/cache-map.js',
'bg/js/json-schema.js'
]);
const JsonSchemaValidator = vm.get('JsonSchemaValidator');
diff --git a/ext/action-popup.html b/ext/action-popup.html
index 1b0072a6..e6dbdc44 100644
--- a/ext/action-popup.html
+++ b/ext/action-popup.html
@@ -81,13 +81,13 @@
</a>
</div>
-<script src="/mixed/js/core.js"></script>
-<script src="/mixed/js/yomichan.js"></script>
-<script src="/mixed/js/comm.js"></script>
-<script src="/mixed/js/api.js"></script>
+<script src="/js/core.js"></script>
+<script src="/js/yomichan.js"></script>
+<script src="/js/comm/cross-frame-api.js"></script>
+<script src="/js/comm/api.js"></script>
-<script src="/mixed/js/hotkey-help-controller.js"></script>
-<script src="/mixed/js/hotkey-util.js"></script>
+<script src="/js/input/hotkey-help-controller.js"></script>
+<script src="/js/input/hotkey-util.js"></script>
<script src="/bg/js/permissions-util.js"></script>
diff --git a/ext/background.html b/ext/background.html
index b1e82bd5..92c3b0aa 100644
--- a/ext/background.html
+++ b/ext/background.html
@@ -17,14 +17,14 @@
<script src="/lib/wanakana.min.js"></script>
- <script src="/mixed/js/core.js"></script>
- <script src="/mixed/js/yomichan.js"></script>
- <script src="/mixed/js/environment.js"></script>
- <script src="/mixed/js/japanese.js"></script>
+ <script src="/js/core.js"></script>
+ <script src="/js/yomichan.js"></script>
+ <script src="/js/background/environment.js"></script>
+ <script src="/js/language/japanese-util.js"></script>
- <script src="/mixed/js/cache-map.js"></script>
- <script src="/mixed/js/dictionary-data-util.js"></script>
- <script src="/mixed/js/object-property-accessor.js"></script>
+ <script src="/js/general/cache-map.js"></script>
+ <script src="/js/language/dictionary-data-util.js"></script>
+ <script src="/js/general/object-property-accessor.js"></script>
<script src="/bg/js/anki.js"></script>
<script src="/bg/js/audio-downloader.js"></script>
diff --git a/ext/info.html b/ext/info.html
index 4dfe4c09..a520ad52 100644
--- a/ext/info.html
+++ b/ext/info.html
@@ -58,13 +58,13 @@
</div></div>
<!-- Scripts -->
-<script src="/mixed/js/core.js"></script>
-<script src="/mixed/js/yomichan.js"></script>
-<script src="/mixed/js/comm.js"></script>
-<script src="/mixed/js/api.js"></script>
+<script src="/js/core.js"></script>
+<script src="/js/yomichan.js"></script>
+<script src="/js/comm/cross-frame-api.js"></script>
+<script src="/js/comm/api.js"></script>
-<script src="/mixed/js/document-focus-controller.js"></script>
-<script src="/mixed/js/html-template-collection.js"></script>
+<script src="/js/dom/document-focus-controller.js"></script>
+<script src="/js/dom/html-template-collection.js"></script>
<script src="/bg/js/permissions-util.js"></script>
<script src="/bg/js/settings/settings-controller.js"></script>
<script src="/bg/js/settings/backup-controller.js"></script>
diff --git a/ext/mixed/js/environment.js b/ext/js/background/environment.js
index 5e61a56d..5e61a56d 100644
--- a/ext/mixed/js/environment.js
+++ b/ext/js/background/environment.js
diff --git a/ext/mixed/js/api.js b/ext/js/comm/api.js
index d37b091a..d37b091a 100644
--- a/ext/mixed/js/api.js
+++ b/ext/js/comm/api.js
diff --git a/ext/mixed/js/comm.js b/ext/js/comm/cross-frame-api.js
index 997249c8..997249c8 100644
--- a/ext/mixed/js/comm.js
+++ b/ext/js/comm/cross-frame-api.js
diff --git a/ext/mixed/js/frame-client.js b/ext/js/comm/frame-client.js
index d15cee30..d15cee30 100644
--- a/ext/mixed/js/frame-client.js
+++ b/ext/js/comm/frame-client.js
diff --git a/ext/mixed/js/frame-endpoint.js b/ext/js/comm/frame-endpoint.js
index 27af9cf3..27af9cf3 100644
--- a/ext/mixed/js/frame-endpoint.js
+++ b/ext/js/comm/frame-endpoint.js
diff --git a/ext/mixed/js/core.js b/ext/js/core.js
index 9305739a..9305739a 100644
--- a/ext/mixed/js/core.js
+++ b/ext/js/core.js
diff --git a/ext/mixed/js/timer.js b/ext/js/debug/timer.js
index 7c43efdf..7c43efdf 100644
--- a/ext/mixed/js/timer.js
+++ b/ext/js/debug/timer.js
diff --git a/ext/mixed/js/display-audio.js b/ext/js/display/display-audio.js
index f624d85b..f624d85b 100644
--- a/ext/mixed/js/display-audio.js
+++ b/ext/js/display/display-audio.js
diff --git a/ext/mixed/js/display-generator.js b/ext/js/display/display-generator.js
index 05376ee5..05376ee5 100644
--- a/ext/mixed/js/display-generator.js
+++ b/ext/js/display/display-generator.js
diff --git a/ext/mixed/js/display-history.js b/ext/js/display/display-history.js
index a6335521..a6335521 100644
--- a/ext/mixed/js/display-history.js
+++ b/ext/js/display/display-history.js
diff --git a/ext/mixed/js/display-notification.js b/ext/js/display/display-notification.js
index 8b6325d0..8b6325d0 100644
--- a/ext/mixed/js/display-notification.js
+++ b/ext/js/display/display-notification.js
diff --git a/ext/mixed/js/display-profile-selection.js b/ext/js/display/display-profile-selection.js
index 0a44392e..0a44392e 100644
--- a/ext/mixed/js/display-profile-selection.js
+++ b/ext/js/display/display-profile-selection.js
diff --git a/ext/mixed/js/display.js b/ext/js/display/display.js
index 8ddca54f..ffadd055 100644
--- a/ext/mixed/js/display.js
+++ b/ext/js/display/display.js
@@ -1571,8 +1571,8 @@ class Display extends EventDispatcher {
};
await dynamicLoader.loadScripts([
- '/mixed/js/text-scanner.js',
- '/mixed/js/frame-client.js',
+ '/js/language/text-scanner.js',
+ '/js/comm/frame-client.js',
'/fg/js/popup.js',
'/fg/js/popup-proxy.js',
'/fg/js/popup-window.js',
diff --git a/ext/mixed/js/document-focus-controller.js b/ext/js/dom/document-focus-controller.js
index 649b5abe..649b5abe 100644
--- a/ext/mixed/js/document-focus-controller.js
+++ b/ext/js/dom/document-focus-controller.js
diff --git a/ext/mixed/js/document-util.js b/ext/js/dom/document-util.js
index 513a0c05..513a0c05 100644
--- a/ext/mixed/js/document-util.js
+++ b/ext/js/dom/document-util.js
diff --git a/ext/mixed/js/dom-data-binder.js b/ext/js/dom/dom-data-binder.js
index 292b2f67..292b2f67 100644
--- a/ext/mixed/js/dom-data-binder.js
+++ b/ext/js/dom/dom-data-binder.js
diff --git a/ext/mixed/js/html-template-collection.js b/ext/js/dom/html-template-collection.js
index 52d5f3b0..52d5f3b0 100644
--- a/ext/mixed/js/html-template-collection.js
+++ b/ext/js/dom/html-template-collection.js
diff --git a/ext/mixed/js/panel-element.js b/ext/js/dom/panel-element.js
index 1ef61d6f..1ef61d6f 100644
--- a/ext/mixed/js/panel-element.js
+++ b/ext/js/dom/panel-element.js
diff --git a/ext/mixed/js/popup-menu.js b/ext/js/dom/popup-menu.js
index 9ad4e260..9ad4e260 100644
--- a/ext/mixed/js/popup-menu.js
+++ b/ext/js/dom/popup-menu.js
diff --git a/ext/mixed/js/selector-observer.js b/ext/js/dom/selector-observer.js
index 2f3fa49e..2f3fa49e 100644
--- a/ext/mixed/js/selector-observer.js
+++ b/ext/js/dom/selector-observer.js
diff --git a/ext/mixed/js/scroll.js b/ext/js/dom/window-scroll.js
index 33577795..33577795 100644
--- a/ext/mixed/js/scroll.js
+++ b/ext/js/dom/window-scroll.js
diff --git a/ext/mixed/js/cache-map.js b/ext/js/general/cache-map.js
index c7d72e6b..c7d72e6b 100644
--- a/ext/mixed/js/cache-map.js
+++ b/ext/js/general/cache-map.js
diff --git a/ext/mixed/js/object-property-accessor.js b/ext/js/general/object-property-accessor.js
index 95773029..95773029 100644
--- a/ext/mixed/js/object-property-accessor.js
+++ b/ext/js/general/object-property-accessor.js
diff --git a/ext/mixed/js/task-accumulator.js b/ext/js/general/task-accumulator.js
index 82691b43..82691b43 100644
--- a/ext/mixed/js/task-accumulator.js
+++ b/ext/js/general/task-accumulator.js
diff --git a/ext/mixed/js/hotkey-handler.js b/ext/js/input/hotkey-handler.js
index 423410b7..423410b7 100644
--- a/ext/mixed/js/hotkey-handler.js
+++ b/ext/js/input/hotkey-handler.js
diff --git a/ext/mixed/js/hotkey-help-controller.js b/ext/js/input/hotkey-help-controller.js
index 8137b50b..8137b50b 100644
--- a/ext/mixed/js/hotkey-help-controller.js
+++ b/ext/js/input/hotkey-help-controller.js
diff --git a/ext/mixed/js/hotkey-util.js b/ext/js/input/hotkey-util.js
index ea3daf97..ea3daf97 100644
--- a/ext/mixed/js/hotkey-util.js
+++ b/ext/js/input/hotkey-util.js
diff --git a/ext/mixed/js/dictionary-data-util.js b/ext/js/language/dictionary-data-util.js
index 70a51e89..70a51e89 100644
--- a/ext/mixed/js/dictionary-data-util.js
+++ b/ext/js/language/dictionary-data-util.js
diff --git a/ext/mixed/js/japanese.js b/ext/js/language/japanese-util.js
index c2ce9627..c2ce9627 100644
--- a/ext/mixed/js/japanese.js
+++ b/ext/js/language/japanese-util.js
diff --git a/ext/mixed/js/text-scanner.js b/ext/js/language/text-scanner.js
index 7672b69d..7672b69d 100644
--- a/ext/mixed/js/text-scanner.js
+++ b/ext/js/language/text-scanner.js
diff --git a/ext/mixed/js/audio-system.js b/ext/js/media/audio-system.js
index cf63511f..cf63511f 100644
--- a/ext/mixed/js/audio-system.js
+++ b/ext/js/media/audio-system.js
diff --git a/ext/mixed/js/media-loader.js b/ext/js/media/media-loader.js
index 5974e31a..5974e31a 100644
--- a/ext/mixed/js/media-loader.js
+++ b/ext/js/media/media-loader.js
diff --git a/ext/mixed/js/text-to-speech-audio.js b/ext/js/media/text-to-speech-audio.js
index a32916f4..a32916f4 100644
--- a/ext/mixed/js/text-to-speech-audio.js
+++ b/ext/js/media/text-to-speech-audio.js
diff --git a/ext/mixed/js/dynamic-loader-sentinel.js b/ext/js/script/dynamic-loader-sentinel.js
index d91a7fef..d91a7fef 100644
--- a/ext/mixed/js/dynamic-loader-sentinel.js
+++ b/ext/js/script/dynamic-loader-sentinel.js
diff --git a/ext/mixed/js/dynamic-loader.js b/ext/js/script/dynamic-loader.js
index bb4efb13..0464f151 100644
--- a/ext/mixed/js/dynamic-loader.js
+++ b/ext/js/script/dynamic-loader.js
@@ -150,7 +150,7 @@ const dynamicLoader = (() => {
try {
script.async = false;
- script.src = '/mixed/js/dynamic-loader-sentinel.js';
+ script.src = '/js/script/dynamic-loader-sentinel.js';
parent.appendChild(script);
} catch (e) {
yomichan.off(sentinelEventName, sentinelEventCallback);
diff --git a/ext/mixed/js/yomichan.js b/ext/js/yomichan.js
index 61301e30..61301e30 100644
--- a/ext/mixed/js/yomichan.js
+++ b/ext/js/yomichan.js
diff --git a/ext/legal.html b/ext/legal.html
index b8c1f1c5..644ad831 100644
--- a/ext/legal.html
+++ b/ext/legal.html
@@ -219,7 +219,7 @@ THE SOFTWARE.
</div></div>
<!-- Scripts -->
-<script src="/mixed/js/document-focus-controller.js"></script>
+<script src="/js/dom/document-focus-controller.js"></script>
<script src="/bg/js/generic-page-main.js"></script>
diff --git a/ext/manifest.json b/ext/manifest.json
index c8178143..4ac53273 100644
--- a/ext/manifest.json
+++ b/ext/manifest.json
@@ -38,15 +38,15 @@
"file://*/*"
],
"js": [
- "mixed/js/core.js",
- "mixed/js/yomichan.js",
- "mixed/js/comm.js",
- "mixed/js/api.js",
- "mixed/js/dynamic-loader.js",
- "mixed/js/frame-client.js",
- "mixed/js/text-scanner.js",
- "mixed/js/document-util.js",
- "mixed/js/hotkey-handler.js",
+ "js/core.js",
+ "js/yomichan.js",
+ "js/comm/cross-frame-api.js",
+ "js/comm/api.js",
+ "js/script/dynamic-loader.js",
+ "js/comm/frame-client.js",
+ "js/language/text-scanner.js",
+ "js/dom/document-util.js",
+ "js/input/hotkey-handler.js",
"fg/js/dom-text-scanner.js",
"fg/js/popup.js",
"fg/js/text-source-range.js",
diff --git a/ext/permissions.html b/ext/permissions.html
index 2ea9f2a1..06dcf5bf 100644
--- a/ext/permissions.html
+++ b/ext/permissions.html
@@ -161,13 +161,13 @@
</div></div>
<!-- Scripts -->
-<script src="/mixed/js/core.js"></script>
-<script src="/mixed/js/yomichan.js"></script>
-<script src="/mixed/js/comm.js"></script>
-<script src="/mixed/js/api.js"></script>
+<script src="/js/core.js"></script>
+<script src="/js/yomichan.js"></script>
+<script src="/js/comm/cross-frame-api.js"></script>
+<script src="/js/comm/api.js"></script>
-<script src="/mixed/js/document-focus-controller.js"></script>
-<script src="/mixed/js/html-template-collection.js"></script>
+<script src="/js/dom/document-focus-controller.js"></script>
+<script src="/js/dom/html-template-collection.js"></script>
<script src="/bg/js/permissions-util.js"></script>
<script src="/bg/js/settings/permissions-toggle-controller.js"></script>
<script src="/bg/js/settings/settings-controller.js"></script>
diff --git a/ext/pitch-accents-preview.html b/ext/pitch-accents-preview.html
index b2885c92..9653b9c5 100644
--- a/ext/pitch-accents-preview.html
+++ b/ext/pitch-accents-preview.html
@@ -49,13 +49,13 @@
</div></div>
-<script src="/mixed/js/core.js"></script>
-<script src="/mixed/js/yomichan.js"></script>
-<script src="/mixed/js/comm.js"></script>
-<script src="/mixed/js/api.js"></script>
+<script src="/js/core.js"></script>
+<script src="/js/yomichan.js"></script>
+<script src="/js/comm/cross-frame-api.js"></script>
+<script src="/js/comm/api.js"></script>
-<script src="/mixed/js/display-generator.js"></script>
-<script src="/mixed/js/html-template-collection.js"></script>
+<script src="/js/display/display-generator.js"></script>
+<script src="/js/dom/html-template-collection.js"></script>
<script src="/bg/js/settings/pitch-accents-preview-main.js"></script>
diff --git a/ext/popup-preview.html b/ext/popup-preview.html
index 567dd201..18aec551 100644
--- a/ext/popup-preview.html
+++ b/ext/popup-preview.html
@@ -36,16 +36,16 @@
<script src="/lib/wanakana.min.js"></script>
-<script src="/mixed/js/core.js"></script>
-<script src="/mixed/js/yomichan.js"></script>
-<script src="/mixed/js/comm.js"></script>
-<script src="/mixed/js/api.js"></script>
-<script src="/mixed/js/dynamic-loader.js"></script>
-<script src="/mixed/js/frame-client.js"></script>
-<script src="/mixed/js/text-scanner.js"></script>
+<script src="/js/core.js"></script>
+<script src="/js/yomichan.js"></script>
+<script src="/js/comm/cross-frame-api.js"></script>
+<script src="/js/comm/api.js"></script>
+<script src="/js/script/dynamic-loader.js"></script>
+<script src="/js/comm/frame-client.js"></script>
+<script src="/js/language/text-scanner.js"></script>
-<script src="/mixed/js/document-util.js"></script>
-<script src="/mixed/js/hotkey-handler.js"></script>
+<script src="/js/dom/document-util.js"></script>
+<script src="/js/input/hotkey-handler.js"></script>
<script src="/fg/js/dom-text-scanner.js"></script>
<script src="/fg/js/popup.js"></script>
<script src="/fg/js/text-source-range.js"></script>
diff --git a/ext/popup.html b/ext/popup.html
index 0203043a..274340ca 100644
--- a/ext/popup.html
+++ b/ext/popup.html
@@ -89,37 +89,37 @@
<div id="popup-menus"></div>
<!-- Scripts -->
-<script src="/mixed/js/core.js"></script>
-<script src="/mixed/js/yomichan.js"></script>
-<script src="/mixed/js/comm.js"></script>
-<script src="/mixed/js/api.js"></script>
-<script src="/mixed/js/japanese.js"></script>
+<script src="/js/core.js"></script>
+<script src="/js/yomichan.js"></script>
+<script src="/js/comm/cross-frame-api.js"></script>
+<script src="/js/comm/api.js"></script>
+<script src="/js/language/japanese-util.js"></script>
-<script src="/mixed/js/document-util.js"></script>
+<script src="/js/dom/document-util.js"></script>
<script src="/fg/js/dom-text-scanner.js"></script>
<script src="/fg/js/text-source-range.js"></script>
<script src="/fg/js/text-source-element.js"></script>
-<script src="/mixed/js/audio-system.js"></script>
-<script src="/mixed/js/dictionary-data-util.js"></script>
-<script src="/mixed/js/display.js"></script>
-<script src="/mixed/js/display-audio.js"></script>
-<script src="/mixed/js/display-generator.js"></script>
-<script src="/mixed/js/display-history.js"></script>
-<script src="/mixed/js/display-notification.js"></script>
-<script src="/mixed/js/display-profile-selection.js"></script>
-<script src="/mixed/js/document-focus-controller.js"></script>
-<script src="/mixed/js/dynamic-loader.js"></script>
-<script src="/mixed/js/frame-endpoint.js"></script>
-<script src="/mixed/js/hotkey-handler.js"></script>
-<script src="/mixed/js/hotkey-help-controller.js"></script>
-<script src="/mixed/js/hotkey-util.js"></script>
-<script src="/mixed/js/media-loader.js"></script>
-<script src="/mixed/js/panel-element.js"></script>
-<script src="/mixed/js/popup-menu.js"></script>
-<script src="/mixed/js/scroll.js"></script>
-<script src="/mixed/js/text-scanner.js"></script>
-<script src="/mixed/js/html-template-collection.js"></script>
-<script src="/mixed/js/text-to-speech-audio.js"></script>
+<script src="/js/media/audio-system.js"></script>
+<script src="/js/language/dictionary-data-util.js"></script>
+<script src="/js/display/display.js"></script>
+<script src="/js/display/display-audio.js"></script>
+<script src="/js/display/display-generator.js"></script>
+<script src="/js/display/display-history.js"></script>
+<script src="/js/display/display-notification.js"></script>
+<script src="/js/display/display-profile-selection.js"></script>
+<script src="/js/dom/document-focus-controller.js"></script>
+<script src="/js/script/dynamic-loader.js"></script>
+<script src="/js/comm/frame-endpoint.js"></script>
+<script src="/js/input/hotkey-handler.js"></script>
+<script src="/js/input/hotkey-help-controller.js"></script>
+<script src="/js/input/hotkey-util.js"></script>
+<script src="/js/media/media-loader.js"></script>
+<script src="/js/dom/panel-element.js"></script>
+<script src="/js/dom/popup-menu.js"></script>
+<script src="/js/dom/window-scroll.js"></script>
+<script src="/js/language/text-scanner.js"></script>
+<script src="/js/dom/html-template-collection.js"></script>
+<script src="/js/media/text-to-speech-audio.js"></script>
<script src="/bg/js/anki-note-builder.js"></script>
<script src="/bg/js/template-renderer-proxy.js"></script>
diff --git a/ext/search.html b/ext/search.html
index e2c402bb..384493c8 100644
--- a/ext/search.html
+++ b/ext/search.html
@@ -75,34 +75,34 @@
<!-- Scripts -->
<script src="/lib/wanakana.min.js"></script>
-<script src="/mixed/js/core.js"></script>
-<script src="/mixed/js/yomichan.js"></script>
-<script src="/mixed/js/comm.js"></script>
-<script src="/mixed/js/api.js"></script>
-<script src="/mixed/js/japanese.js"></script>
-
-<script src="/mixed/js/document-focus-controller.js"></script>
-<script src="/mixed/js/document-util.js"></script>
+<script src="/js/core.js"></script>
+<script src="/js/yomichan.js"></script>
+<script src="/js/comm/cross-frame-api.js"></script>
+<script src="/js/comm/api.js"></script>
+<script src="/js/language/japanese-util.js"></script>
+
+<script src="/js/dom/document-focus-controller.js"></script>
+<script src="/js/dom/document-util.js"></script>
<script src="/fg/js/dom-text-scanner.js"></script>
<script src="/fg/js/text-source-range.js"></script>
<script src="/fg/js/text-source-element.js"></script>
-<script src="/mixed/js/audio-system.js"></script>
-<script src="/mixed/js/dictionary-data-util.js"></script>
-<script src="/mixed/js/display.js"></script>
-<script src="/mixed/js/display-audio.js"></script>
-<script src="/mixed/js/display-generator.js"></script>
-<script src="/mixed/js/display-history.js"></script>
-<script src="/mixed/js/display-notification.js"></script>
-<script src="/mixed/js/dynamic-loader.js"></script>
-<script src="/mixed/js/hotkey-handler.js"></script>
-<script src="/mixed/js/hotkey-help-controller.js"></script>
-<script src="/mixed/js/hotkey-util.js"></script>
-<script src="/mixed/js/media-loader.js"></script>
-<script src="/mixed/js/popup-menu.js"></script>
-<script src="/mixed/js/scroll.js"></script>
-<script src="/mixed/js/text-scanner.js"></script>
-<script src="/mixed/js/html-template-collection.js"></script>
-<script src="/mixed/js/text-to-speech-audio.js"></script>
+<script src="/js/media/audio-system.js"></script>
+<script src="/js/language/dictionary-data-util.js"></script>
+<script src="/js/display/display.js"></script>
+<script src="/js/display/display-audio.js"></script>
+<script src="/js/display/display-generator.js"></script>
+<script src="/js/display/display-history.js"></script>
+<script src="/js/display/display-notification.js"></script>
+<script src="/js/script/dynamic-loader.js"></script>
+<script src="/js/input/hotkey-handler.js"></script>
+<script src="/js/input/hotkey-help-controller.js"></script>
+<script src="/js/input/hotkey-util.js"></script>
+<script src="/js/media/media-loader.js"></script>
+<script src="/js/dom/popup-menu.js"></script>
+<script src="/js/dom/window-scroll.js"></script>
+<script src="/js/language/text-scanner.js"></script>
+<script src="/js/dom/html-template-collection.js"></script>
+<script src="/js/media/text-to-speech-audio.js"></script>
<script src="/bg/js/anki-note-builder.js"></script>
<script src="/bg/js/template-renderer-proxy.js"></script>
diff --git a/ext/settings-old.html b/ext/settings-old.html
index 1fb4379f..26f7770b 100644
--- a/ext/settings-old.html
+++ b/ext/settings-old.html
@@ -1278,24 +1278,24 @@
<script src="/lib/jszip.min.js"></script>
<script src="/lib/wanakana.min.js"></script>
- <script src="/mixed/js/core.js"></script>
- <script src="/mixed/js/yomichan.js"></script>
- <script src="/mixed/js/comm.js"></script>
- <script src="/mixed/js/environment.js"></script>
- <script src="/mixed/js/api.js"></script>
- <script src="/mixed/js/japanese.js"></script>
-
- <script src="/mixed/js/audio-system.js"></script>
- <script src="/mixed/js/cache-map.js"></script>
- <script src="/mixed/js/dictionary-data-util.js"></script>
- <script src="/mixed/js/document-util.js"></script>
- <script src="/mixed/js/dom-data-binder.js"></script>
- <script src="/mixed/js/html-template-collection.js"></script>
- <script src="/mixed/js/hotkey-util.js"></script>
- <script src="/mixed/js/object-property-accessor.js"></script>
- <script src="/mixed/js/selector-observer.js"></script>
- <script src="/mixed/js/task-accumulator.js"></script>
- <script src="/mixed/js/text-to-speech-audio.js"></script>
+ <script src="/js/core.js"></script>
+ <script src="/js/yomichan.js"></script>
+ <script src="/js/comm/cross-frame-api.js"></script>
+ <script src="/js/background/environment.js"></script>
+ <script src="/js/comm/api.js"></script>
+ <script src="/js/language/japanese-util.js"></script>
+
+ <script src="/js/media/audio-system.js"></script>
+ <script src="/js/general/cache-map.js"></script>
+ <script src="/js/language/dictionary-data-util.js"></script>
+ <script src="/js/dom/document-util.js"></script>
+ <script src="/js/dom/dom-data-binder.js"></script>
+ <script src="/js/dom/html-template-collection.js"></script>
+ <script src="/js/input/hotkey-util.js"></script>
+ <script src="/js/general/object-property-accessor.js"></script>
+ <script src="/js/dom/selector-observer.js"></script>
+ <script src="/js/general/task-accumulator.js"></script>
+ <script src="/js/media/text-to-speech-audio.js"></script>
<script src="/bg/js/anki.js"></script>
<script src="/bg/js/anki-note-builder.js"></script>
diff --git a/ext/settings.html b/ext/settings.html
index 5773c6de..8fb715c1 100644
--- a/ext/settings.html
+++ b/ext/settings.html
@@ -3189,27 +3189,27 @@
<script src="/lib/jszip.min.js"></script>
<script src="/lib/wanakana.min.js"></script>
-<script src="/mixed/js/core.js"></script>
-<script src="/mixed/js/yomichan.js"></script>
-<script src="/mixed/js/comm.js"></script>
-<script src="/mixed/js/environment.js"></script>
-<script src="/mixed/js/api.js"></script>
-<script src="/mixed/js/japanese.js"></script>
-
-<script src="/mixed/js/audio-system.js"></script>
-<script src="/mixed/js/cache-map.js"></script>
-<script src="/mixed/js/dictionary-data-util.js"></script>
-<script src="/mixed/js/document-focus-controller.js"></script>
-<script src="/mixed/js/document-util.js"></script>
-<script src="/mixed/js/dom-data-binder.js"></script>
-<script src="/mixed/js/hotkey-util.js"></script>
-<script src="/mixed/js/html-template-collection.js"></script>
-<script src="/mixed/js/object-property-accessor.js"></script>
-<script src="/mixed/js/panel-element.js"></script>
-<script src="/mixed/js/popup-menu.js"></script>
-<script src="/mixed/js/selector-observer.js"></script>
-<script src="/mixed/js/task-accumulator.js"></script>
-<script src="/mixed/js/text-to-speech-audio.js"></script>
+<script src="/js/core.js"></script>
+<script src="/js/yomichan.js"></script>
+<script src="/js/comm/cross-frame-api.js"></script>
+<script src="/js/background/environment.js"></script>
+<script src="/js/comm/api.js"></script>
+<script src="/js/language/japanese-util.js"></script>
+
+<script src="/js/media/audio-system.js"></script>
+<script src="/js/general/cache-map.js"></script>
+<script src="/js/language/dictionary-data-util.js"></script>
+<script src="/js/dom/document-focus-controller.js"></script>
+<script src="/js/dom/document-util.js"></script>
+<script src="/js/dom/dom-data-binder.js"></script>
+<script src="/js/input/hotkey-util.js"></script>
+<script src="/js/dom/html-template-collection.js"></script>
+<script src="/js/general/object-property-accessor.js"></script>
+<script src="/js/dom/panel-element.js"></script>
+<script src="/js/dom/popup-menu.js"></script>
+<script src="/js/dom/selector-observer.js"></script>
+<script src="/js/general/task-accumulator.js"></script>
+<script src="/js/media/text-to-speech-audio.js"></script>
<script src="/bg/js/anki.js"></script>
<script src="/bg/js/anki-note-builder.js"></script>
diff --git a/ext/sw.js b/ext/sw.js
index 6516cdbf..2cc9a6c3 100644
--- a/ext/sw.js
+++ b/ext/sw.js
@@ -18,13 +18,13 @@
self.importScripts(
'/lib/parse5.js',
'/lib/wanakana.min.js',
- '/mixed/js/core.js',
- '/mixed/js/yomichan.js',
- '/mixed/js/environment.js',
- '/mixed/js/japanese.js',
- '/mixed/js/cache-map.js',
- '/mixed/js/dictionary-data-util.js',
- '/mixed/js/object-property-accessor.js',
+ '/js/core.js',
+ '/js/yomichan.js',
+ '/js/background/environment.js',
+ '/js/language/japanese-util.js',
+ '/js/general/cache-map.js',
+ '/js/language/dictionary-data-util.js',
+ '/js/general/object-property-accessor.js',
'/bg/js/anki.js',
'/bg/js/audio-downloader.js',
'/bg/js/clipboard-monitor.js',
diff --git a/ext/template-renderer.html b/ext/template-renderer.html
index 6f031d5d..11c19067 100644
--- a/ext/template-renderer.html
+++ b/ext/template-renderer.html
@@ -14,8 +14,8 @@
</head>
<body>
<script src="/lib/handlebars.min.js"></script>
- <script src="/mixed/js/dictionary-data-util.js"></script>
- <script src="/mixed/js/japanese.js"></script>
+ <script src="/js/language/dictionary-data-util.js"></script>
+ <script src="/js/language/japanese-util.js"></script>
<script src="/bg/js/anki-note-data.js"></script>
<script src="/bg/js/template-renderer.js"></script>
<script src="/bg/js/template-renderer-frame-api.js"></script>
diff --git a/ext/welcome.html b/ext/welcome.html
index a4138e60..4c7657c8 100644
--- a/ext/welcome.html
+++ b/ext/welcome.html
@@ -314,22 +314,22 @@
<!-- Scripts -->
<script src="/lib/jszip.min.js"></script>
-<script src="/mixed/js/core.js"></script>
-<script src="/mixed/js/yomichan.js"></script>
-<script src="/mixed/js/comm.js"></script>
-<script src="/mixed/js/api.js"></script>
+<script src="/js/core.js"></script>
+<script src="/js/yomichan.js"></script>
+<script src="/js/comm/cross-frame-api.js"></script>
+<script src="/js/comm/api.js"></script>
-<script src="/mixed/js/cache-map.js"></script>
-<script src="/mixed/js/document-focus-controller.js"></script>
-<script src="/mixed/js/document-util.js"></script>
-<script src="/mixed/js/dom-data-binder.js"></script>
-<script src="/mixed/js/hotkey-util.js"></script>
-<script src="/mixed/js/html-template-collection.js"></script>
-<script src="/mixed/js/object-property-accessor.js"></script>
-<script src="/mixed/js/panel-element.js"></script>
-<script src="/mixed/js/popup-menu.js"></script>
-<script src="/mixed/js/selector-observer.js"></script>
-<script src="/mixed/js/task-accumulator.js"></script>
+<script src="/js/general/cache-map.js"></script>
+<script src="/js/dom/document-focus-controller.js"></script>
+<script src="/js/dom/document-util.js"></script>
+<script src="/js/dom/dom-data-binder.js"></script>
+<script src="/js/input/hotkey-util.js"></script>
+<script src="/js/dom/html-template-collection.js"></script>
+<script src="/js/general/object-property-accessor.js"></script>
+<script src="/js/dom/panel-element.js"></script>
+<script src="/js/dom/popup-menu.js"></script>
+<script src="/js/dom/selector-observer.js"></script>
+<script src="/js/general/task-accumulator.js"></script>
<script src="/bg/js/database.js"></script>
<script src="/bg/js/dictionary-database.js"></script>
diff --git a/test/test-cache-map.js b/test/test-cache-map.js
index 4d19015b..b01f5ed8 100644
--- a/test/test-cache-map.js
+++ b/test/test-cache-map.js
@@ -21,7 +21,7 @@ const {VM} = require('../dev/vm');
const vm = new VM({console});
vm.execute([
- 'mixed/js/cache-map.js'
+ 'js/general/cache-map.js'
]);
const CacheMap = vm.get('CacheMap');
diff --git a/test/test-core.js b/test/test-core.js
index cb315c08..cf9a5c35 100644
--- a/test/test-core.js
+++ b/test/test-core.js
@@ -30,7 +30,7 @@ const vm = new VM({
}
});
vm.execute([
- 'mixed/js/core.js'
+ 'js/core.js'
]);
const [DynamicProperty, deepEqual] = vm.get(['DynamicProperty', 'deepEqual']);
diff --git a/test/test-database.js b/test/test-database.js
index 4ac0dae6..8b075fd4 100644
--- a/test/test-database.js
+++ b/test/test-database.js
@@ -23,8 +23,8 @@ const {DatabaseVM} = require('../dev/database-vm');
const vm = new DatabaseVM();
vm.execute([
- 'mixed/js/core.js',
- 'mixed/js/cache-map.js',
+ 'js/core.js',
+ 'js/general/cache-map.js',
'bg/js/json-schema.js',
'bg/js/media-utility.js',
'bg/js/dictionary-importer.js',
diff --git a/test/test-document-util.js b/test/test-document-util.js
index 2311e25f..5c6a3894 100644
--- a/test/test-document-util.js
+++ b/test/test-document-util.js
@@ -97,7 +97,7 @@ async function testDocument1() {
'fg/js/dom-text-scanner.js',
'fg/js/text-source-range.js',
'fg/js/text-source-element.js',
- 'mixed/js/document-util.js'
+ 'js/dom/document-util.js'
]);
const [DOMTextScanner, TextSourceRange, TextSourceElement, DocumentUtil] = vm.get([
'DOMTextScanner',
diff --git a/test/test-hotkey-util.js b/test/test-hotkey-util.js
index 1388c538..eb4cf0b3 100644
--- a/test/test-hotkey-util.js
+++ b/test/test-hotkey-util.js
@@ -26,7 +26,7 @@ function clone(value) {
function createHotkeyUtil() {
const vm = new VM();
- vm.execute(['mixed/js/hotkey-util.js']);
+ vm.execute(['js/input/hotkey-util.js']);
const [HotkeyUtil] = vm.get(['HotkeyUtil']);
return new HotkeyUtil();
}
diff --git a/test/test-japanese.js b/test/test-japanese.js
index e83b0c1b..e2be2315 100644
--- a/test/test-japanese.js
+++ b/test/test-japanese.js
@@ -22,7 +22,7 @@ const {VM} = require('../dev/vm');
const vm = new VM();
vm.execute([
'lib/wanakana.min.js',
- 'mixed/js/japanese.js',
+ 'js/language/japanese-util.js',
'bg/js/text-source-map.js'
]);
const [JapaneseUtil, TextSourceMap, wanakana] = vm.get(['JapaneseUtil', 'TextSourceMap', 'wanakana']);
diff --git a/test/test-object-property-accessor.js b/test/test-object-property-accessor.js
index 920cfc81..b3f05c7e 100644
--- a/test/test-object-property-accessor.js
+++ b/test/test-object-property-accessor.js
@@ -20,7 +20,7 @@ const {testMain} = require('../dev/util');
const {VM} = require('../dev/vm');
const vm = new VM({});
-vm.execute('mixed/js/object-property-accessor.js');
+vm.execute('js/general/object-property-accessor.js');
const ObjectPropertyAccessor = vm.get('ObjectPropertyAccessor');
diff --git a/test/test-options-util.js b/test/test-options-util.js
index e4bc4e94..3e3f93bc 100644
--- a/test/test-options-util.js
+++ b/test/test-options-util.js
@@ -47,8 +47,8 @@ function createVM(extDir) {
const vm = new VM({chrome, fetch});
vm.execute([
- 'mixed/js/core.js',
- 'mixed/js/cache-map.js',
+ 'js/core.js',
+ 'js/general/cache-map.js',
'bg/js/json-schema.js',
'bg/js/template-patcher.js',
'bg/js/options.js'
diff --git a/test/test-profile-conditions.js b/test/test-profile-conditions.js
index 40788920..7ceda8c4 100644
--- a/test/test-profile-conditions.js
+++ b/test/test-profile-conditions.js
@@ -22,8 +22,8 @@ const {VM} = require('../dev/vm');
const vm = new VM({});
vm.execute([
- 'mixed/js/core.js',
- 'mixed/js/cache-map.js',
+ 'js/core.js',
+ 'js/general/cache-map.js',
'bg/js/json-schema.js',
'bg/js/profile-conditions.js'
]);
diff --git a/test/test-schema.js b/test/test-schema.js
index f0ebd669..2c48f5f5 100644
--- a/test/test-schema.js
+++ b/test/test-schema.js
@@ -21,8 +21,8 @@ const {VM} = require('../dev/vm');
const vm = new VM();
vm.execute([
- 'mixed/js/core.js',
- 'mixed/js/cache-map.js',
+ 'js/core.js',
+ 'js/general/cache-map.js',
'bg/js/json-schema.js'
]);
const JsonSchemaValidator = vm.get('JsonSchemaValidator');
diff --git a/test/test-translator.js b/test/test-translator.js
index 778a7ce1..e1161a15 100644
--- a/test/test-translator.js
+++ b/test/test-translator.js
@@ -36,9 +36,9 @@ async function createVM() {
// Set up VM
const vm = new DatabaseVM();
vm.execute([
- 'mixed/js/core.js',
- 'mixed/js/cache-map.js',
- 'mixed/js/japanese.js',
+ 'js/core.js',
+ 'js/general/cache-map.js',
+ 'js/language/japanese-util.js',
'bg/js/json-schema.js',
'bg/js/media-utility.js',
'bg/js/dictionary-importer.js',