diff options
Diffstat (limited to 'ext/js')
59 files changed, 256 insertions, 255 deletions
| diff --git a/ext/js/app/content-script-main.js b/ext/js/app/content-script-main.js index d5ae0d93..a042f3bf 100644 --- a/ext/js/app/content-script-main.js +++ b/ext/js/app/content-script-main.js @@ -18,15 +18,15 @@  import {log} from '../core.js';  import {HotkeyHandler} from '../input/hotkey-handler.js'; -import {yomichan} from '../yomichan.js'; +import {yomitan} from '../yomitan.js';  import {Frontend} from './frontend.js';  import {PopupFactory} from './popup-factory.js';  (async () => {      try { -        await yomichan.prepare(); +        await yomitan.prepare(); -        const {tabId, frameId} = await yomichan.api.frameInformationGet(); +        const {tabId, frameId} = await yomitan.api.frameInformationGet();          if (typeof frameId !== 'number') {              throw new Error('Failed to get frameId');          } @@ -51,7 +51,7 @@ import {PopupFactory} from './popup-factory.js';          });          await frontend.prepare(); -        yomichan.ready(); +        yomitan.ready();      } catch (e) {          log.error(e);      } diff --git a/ext/js/app/frontend.js b/ext/js/app/frontend.js index acc70667..4c13eac2 100644 --- a/ext/js/app/frontend.js +++ b/ext/js/app/frontend.js @@ -23,7 +23,7 @@ import {TextSourceElement} from '../dom/text-source-element.js';  import {TextSourceRange} from '../dom/text-source-range.js';  import {HotkeyHandler} from '../input/hotkey-handler.js';  import {TextScanner} from '../language/text-scanner.js'; -import {yomichan} from '../yomichan.js'; +import {yomitan} from '../yomitan.js';  import {PopupFactory} from './popup-factory.js';  import {Popup} from './popup.js'; @@ -137,7 +137,7 @@ export class Frontend {      async prepare() {          await this.updateOptions();          try { -            const {zoomFactor} = await yomichan.api.getZoom(); +            const {zoomFactor} = await yomitan.api.getZoom();              this._pageZoomFactor = zoomFactor;          } catch (e) {              // Ignore exceptions which may occur due to being on an unsupported page (e.g. about:blank) @@ -154,15 +154,15 @@ export class Frontend {              visualViewport.addEventListener('resize', this._onVisualViewportResize.bind(this));          } -        yomichan.on('optionsUpdated', this.updateOptions.bind(this)); -        yomichan.on('zoomChanged', this._onZoomChanged.bind(this)); -        yomichan.on('closePopups', this._onClosePopups.bind(this)); +        yomitan.on('optionsUpdated', this.updateOptions.bind(this)); +        yomitan.on('zoomChanged', this._onZoomChanged.bind(this)); +        yomitan.on('closePopups', this._onClosePopups.bind(this));          chrome.runtime.onMessage.addListener(this._onRuntimeMessage.bind(this));          this._textScanner.on('clear', this._onTextScannerClear.bind(this));          this._textScanner.on('searched', this._onSearched.bind(this)); -        yomichan.crossFrame.registerHandlers([ +        yomitan.crossFrame.registerHandlers([              ['Frontend.closePopup',       {async: false, handler: this._onApiClosePopup.bind(this)}],              ['Frontend.copySelection',    {async: false, handler: this._onApiCopySelection.bind(this)}],              ['Frontend.getSelectionText', {async: false, handler: this._onApiGetSelectionText.bind(this)}], @@ -208,7 +208,7 @@ export class Frontend {          try {              await this._updateOptionsInternal();          } catch (e) { -            if (!yomichan.isExtensionUnloaded) { +            if (!yomitan.isExtensionUnloaded) {                  throw e;              }          } @@ -319,7 +319,7 @@ export class Frontend {          const scanningOptions = this._options.scanning;          if (error !== null) { -            if (yomichan.isExtensionUnloaded) { +            if (yomitan.isExtensionUnloaded) {                  if (textSource !== null && !passive) {                      this._showExtensionUnloaded(textSource);                  } @@ -388,7 +388,7 @@ export class Frontend {      async _updateOptionsInternal() {          const optionsContext = await this._getOptionsContext(); -        const options = await yomichan.api.optionsGet(optionsContext); +        const options = await yomitan.api.optionsGet(optionsContext);          const {scanning: scanningOptions, sentenceParsing: sentenceParsingOptions} = options;          this._options = options; @@ -520,7 +520,7 @@ export class Frontend {              return await this._getDefaultPopup();          } -        const {popupId} = await yomichan.crossFrame.invoke(targetFrameId, 'Frontend.getPopupInfo'); +        const {popupId} = await yomitan.crossFrame.invoke(targetFrameId, 'Frontend.getPopupInfo');          if (popupId === null) {              return null;          } @@ -559,7 +559,7 @@ export class Frontend {          try {              return this._popup !== null && await this._popup.containsPoint(x, y);          } catch (e) { -            if (!yomichan.isExtensionUnloaded) { +            if (!yomitan.isExtensionUnloaded) {                  throw e;              }              return false; @@ -625,7 +625,7 @@ export class Frontend {              Promise.resolve()          );          this._lastShowPromise.catch((error) => { -            if (yomichan.isExtensionUnloaded) { return; } +            if (yomitan.isExtensionUnloaded) { return; }              log.error(error);          });          return this._lastShowPromise; @@ -677,9 +677,9 @@ export class Frontend {      _signalFrontendReady(targetFrameId=null) {          const params = {frameId: this._frameId};          if (targetFrameId === null) { -            yomichan.api.broadcastTab('frontendReady', params); +            yomitan.api.broadcastTab('frontendReady', params);          } else { -            yomichan.api.sendMessageToFrame(targetFrameId, 'frontendReady', params); +            yomitan.api.sendMessageToFrame(targetFrameId, 'frontendReady', params);          }      } @@ -716,7 +716,7 @@ export class Frontend {              }              chrome.runtime.onMessage.addListener(onMessage); -            yomichan.api.broadcastTab('Frontend.requestReadyBroadcast', {frameId: this._frameId}); +            yomitan.api.broadcastTab('Frontend.requestReadyBroadcast', {frameId: this._frameId});          });      } @@ -742,7 +742,7 @@ export class Frontend {          let documentTitle = document.title;          if (this._useProxyPopup) {              try { -                ({url, documentTitle} = await yomichan.crossFrame.invoke(this._parentFrameId, 'Frontend.getPageInfo', {})); +                ({url, documentTitle} = await yomitan.crossFrame.invoke(this._parentFrameId, 'Frontend.getPageInfo', {}));              } catch (e) {                  // NOP              } @@ -788,7 +788,7 @@ export class Frontend {      async _prepareGoogleDocs() {          if (typeof GoogleDocsUtil !== 'undefined') { return; } -        await yomichan.api.loadExtensionScripts([ +        await yomitan.api.loadExtensionScripts([              '/js/accessibility/google-docs-util.js'          ]);          if (typeof GoogleDocsUtil === 'undefined') { return; } diff --git a/ext/js/app/popup-factory.js b/ext/js/app/popup-factory.js index 7a17c106..e871f7ec 100644 --- a/ext/js/app/popup-factory.js +++ b/ext/js/app/popup-factory.js @@ -18,7 +18,7 @@  import {FrameOffsetForwarder} from '../comm/frame-offset-forwarder.js';  import {generateId} from '../core.js'; -import {yomichan} from '../yomichan.js'; +import {yomitan} from '../yomitan.js';  import {PopupProxy} from './popup-proxy.js';  import {PopupWindow} from './popup-window.js';  import {Popup} from './popup.js'; @@ -43,7 +43,7 @@ export class PopupFactory {       */      prepare() {          this._frameOffsetForwarder.prepare(); -        yomichan.crossFrame.registerHandlers([ +        yomitan.crossFrame.registerHandlers([              ['PopupFactory.getOrCreatePopup',     {async: true,  handler: this._onApiGetOrCreatePopup.bind(this)}],              ['PopupFactory.setOptionsContext',    {async: true,  handler: this._onApiSetOptionsContext.bind(this)}],              ['PopupFactory.hide',                 {async: false, handler: this._onApiHide.bind(this)}], @@ -151,7 +151,7 @@ export class PopupFactory {                  throw new Error('Invalid frameId');              }              const useFrameOffsetForwarder = (parentPopupId === null); -            ({id, depth, frameId} = await yomichan.crossFrame.invoke(frameId, 'PopupFactory.getOrCreatePopup', { +            ({id, depth, frameId} = await yomitan.crossFrame.invoke(frameId, 'PopupFactory.getOrCreatePopup', {                  id,                  parentPopupId,                  frameId, diff --git a/ext/js/app/popup-proxy.js b/ext/js/app/popup-proxy.js index d16a16f1..3d8b55ba 100644 --- a/ext/js/app/popup-proxy.js +++ b/ext/js/app/popup-proxy.js @@ -18,7 +18,7 @@  import {FrameOffsetForwarder} from '../comm/frame-offset-forwarder.js';  import {EventDispatcher, log} from '../core.js'; -import {yomichan} from '../yomichan.js'; +import {yomitan} from '../yomitan.js';  import {Popup} from './popup.js';  /** @@ -294,14 +294,14 @@ export class PopupProxy extends EventDispatcher {      // Private      _invoke(action, params={}) { -        return yomichan.crossFrame.invoke(this._frameId, action, params); +        return yomitan.crossFrame.invoke(this._frameId, action, params);      }      async _invokeSafe(action, params={}, defaultReturnValue) {          try {              return await this._invoke(action, params);          } catch (e) { -            if (!yomichan.isExtensionUnloaded) { throw e; } +            if (!yomitan.isExtensionUnloaded) { throw e; }              return defaultReturnValue;          }      } diff --git a/ext/js/app/popup-window.js b/ext/js/app/popup-window.js index b5fd9eb6..88370684 100644 --- a/ext/js/app/popup-window.js +++ b/ext/js/app/popup-window.js @@ -17,7 +17,7 @@   */  import {EventDispatcher} from '../core.js'; -import {yomichan} from '../yomichan.js'; +import {yomitan} from '../yomitan.js';  import {Popup} from './popup.js';  /** @@ -138,7 +138,7 @@ export class PopupWindow extends EventDispatcher {       * @returns {Promise<boolean>} `true` if the popup is visible, `false` otherwise.       */      async isVisible() { -        return (this._popupTabId !== null && await yomichan.api.isTabSearchPopup(this._popupTabId)); +        return (this._popupTabId !== null && await yomitan.api.isTabSearchPopup(this._popupTabId));      }      /** @@ -263,16 +263,16 @@ export class PopupWindow extends EventDispatcher {      // Private      async _invoke(open, action, params={}, defaultReturnValue) { -        if (yomichan.isExtensionUnloaded) { +        if (yomitan.isExtensionUnloaded) {              return defaultReturnValue;          }          const frameId = 0;          if (this._popupTabId !== null) {              try { -                return await yomichan.crossFrame.invokeTab(this._popupTabId, frameId, 'popupMessage', {action, params}); +                return await yomitan.crossFrame.invokeTab(this._popupTabId, frameId, 'popupMessage', {action, params});              } catch (e) { -                if (yomichan.isExtensionUnloaded) { +                if (yomitan.isExtensionUnloaded) {                      open = false;                  }              } @@ -283,9 +283,9 @@ export class PopupWindow extends EventDispatcher {              return defaultReturnValue;          } -        const {tabId} = await yomichan.api.getOrCreateSearchPopup({focus: 'ifCreated'}); +        const {tabId} = await yomitan.api.getOrCreateSearchPopup({focus: 'ifCreated'});          this._popupTabId = tabId; -        return await yomichan.crossFrame.invokeTab(this._popupTabId, frameId, 'popupMessage', {action, params}); +        return await yomitan.crossFrame.invokeTab(this._popupTabId, frameId, 'popupMessage', {action, params});      }  } diff --git a/ext/js/app/popup.js b/ext/js/app/popup.js index 6f1807a6..0e2e2493 100644 --- a/ext/js/app/popup.js +++ b/ext/js/app/popup.js @@ -20,7 +20,7 @@ import {FrameClient} from '../comm/frame-client.js';  import {DynamicProperty, EventDispatcher, EventListenerCollection, deepEqual} from '../core.js';  import {DocumentUtil} from '../dom/document-util.js';  import {dynamicLoader} from '../script/dynamic-loader.js'; -import {yomichan} from '../yomichan.js'; +import {yomitan} from '../yomitan.js';  import {ThemeController} from './theme-controller.js';  /** @@ -113,7 +113,7 @@ export class Popup extends EventDispatcher {          this._frameSizeContentScale = null;          this._frameClient = null;          this._frame = document.createElement('iframe'); -        this._frame.className = 'yomichan-popup'; +        this._frame.className = 'yomitan-popup';          this._frame.style.width = '0';          this._frame.style.height = '0'; @@ -208,7 +208,7 @@ export class Popup extends EventDispatcher {          this._frame.addEventListener('scroll', (e) => e.stopPropagation());          this._frame.addEventListener('load', this._onFrameLoad.bind(this));          this._visible.on('change', this._onVisibleChange.bind(this)); -        yomichan.on('extensionUnloaded', this._onExtensionUnloaded.bind(this)); +        yomitan.on('extensionUnloaded', this._onExtensionUnloaded.bind(this));          this._onVisibleChange({value: this.isVisibleSync()});          this._themeController.prepare();      } @@ -359,7 +359,7 @@ export class Popup extends EventDispatcher {              useWebExtensionApi = false;              parentNode = this._shadow;          } -        const node = await dynamicLoader.loadStyle('yomichan-popup-outer-user-stylesheet', 'code', css, useWebExtensionApi, parentNode); +        const node = await dynamicLoader.loadStyle('yomitan-popup-outer-user-stylesheet', 'code', css, useWebExtensionApi, parentNode);          this.trigger('customOuterCssChanged', {node, useWebExtensionApi, inShadow});      } @@ -537,7 +537,7 @@ export class Popup extends EventDispatcher {              useWebExtensionApi = false;              parentNode = this._shadow;          } -        await dynamicLoader.loadStyle('yomichan-popup-outer-stylesheet', fileType, '/css/popup-outer.css', useWebExtensionApi, parentNode); +        await dynamicLoader.loadStyle('yomitan-popup-outer-stylesheet', fileType, '/css/popup-outer.css', useWebExtensionApi, parentNode);      }      _observeFullscreen(observe) { @@ -626,14 +626,14 @@ export class Popup extends EventDispatcher {          if (this._frameClient === null || !this._frameClient.isConnected() || contentWindow === null) { return; }          const message = this._frameClient.createMessage({action, params}); -        return await yomichan.crossFrame.invoke(this._frameClient.frameId, 'popupMessage', message); +        return await yomitan.crossFrame.invoke(this._frameClient.frameId, 'popupMessage', message);      }      async _invokeSafe(action, params={}, defaultReturnValue) {          try {              return await this._invoke(action, params);          } catch (e) { -            if (!yomichan.isExtensionUnloaded) { throw e; } +            if (!yomitan.isExtensionUnloaded) { throw e; }              return defaultReturnValue;          }      } @@ -884,7 +884,7 @@ export class Popup extends EventDispatcher {      async _setOptionsContext(optionsContext) {          this._optionsContext = optionsContext; -        const options = await yomichan.api.optionsGet(optionsContext); +        const options = await yomitan.api.optionsGet(optionsContext);          const {general} = options;          this._themeController.theme = general.popupTheme;          this._themeController.outerTheme = general.popupOuterTheme; diff --git a/ext/js/background/backend.js b/ext/js/background/backend.js index 2c007973..c29e5ee6 100644 --- a/ext/js/background/backend.js +++ b/ext/js/background/backend.js @@ -34,7 +34,7 @@ import {JapaneseUtil} from '../language/sandbox/japanese-util.js';  import {Translator} from '../language/translator.js';  import {AudioDownloader} from '../media/audio-downloader.js';  import {MediaUtil} from '../media/media-util.js'; -import {yomichan} from '../yomichan.js'; +import {yomitan} from '../yomitan.js';  import {ProfileConditionsUtil} from './profile-conditions-util.js';  import {RequestBuilder} from './request-builder.js';  import {ScriptManager} from './script-manager.js'; @@ -238,7 +238,7 @@ export class Backend {              }, 1000);              this._updateBadge(); -            yomichan.on('log', this._onLog.bind(this)); +            yomitan.on('log', this._onLog.bind(this));              await this._requestBuilder.prepare();              await this._environment.prepare(); @@ -269,8 +269,8 @@ export class Backend {              this._clipboardMonitor.on('change', this._onClipboardTextChange.bind(this)); -            this._sendMessageAllTabsIgnoreResponse('Yomichan.backendReady', {}); -            this._sendMessageIgnoreResponse({action: 'Yomichan.backendReady', params: {}}); +            this._sendMessageAllTabsIgnoreResponse('Yomitan.backendReady', {}); +            this._sendMessageIgnoreResponse({action: 'Yomitan.backendReady', params: {}});          } catch (e) {              log.error(e);              throw e; @@ -357,7 +357,7 @@ export class Backend {      }      _onZoomChange({tabId, oldZoomFactor, newZoomFactor}) { -        this._sendMessageTabIgnoreResponse(tabId, {action: 'Yomichan.zoomChanged', params: {oldZoomFactor, newZoomFactor}}); +        this._sendMessageTabIgnoreResponse(tabId, {action: 'Yomitan.zoomChanged', params: {oldZoomFactor, newZoomFactor}});      }      _onPermissionsChanged() { @@ -373,7 +373,7 @@ export class Backend {      _onApiRequestBackendReadySignal(_params, sender) {          // tab ID isn't set in background (e.g. browser_action) -        const data = {action: 'Yomichan.backendReady', params: {}}; +        const data = {action: 'Yomitan.backendReady', params: {}};          if (typeof sender.tab === 'undefined') {              this._sendMessageIgnoreResponse(data);              return false; @@ -1010,7 +1010,7 @@ export class Backend {          this._accessibilityController.update(this._getOptionsFull(false)); -        this._sendMessageAllTabsIgnoreResponse('Yomichan.optionsUpdated', {source}); +        this._sendMessageAllTabsIgnoreResponse('Yomitan.optionsUpdated', {source});      }      _getOptionsFull(useSchema=false) { @@ -1341,11 +1341,11 @@ export class Backend {      _validatePrivilegedMessageSender(sender) {          let {url} = sender; -        if (typeof url === 'string' && yomichan.isExtensionUrl(url)) { return; } +        if (typeof url === 'string' && yomitan.isExtensionUrl(url)) { return; }          const {tab} = url;          if (typeof tab === 'object' && tab !== null) {              ({url} = tab); -            if (typeof url === 'string' && yomichan.isExtensionUrl(url)) { return; } +            if (typeof url === 'string' && yomitan.isExtensionUrl(url)) { return; }          }          throw new Error('Invalid message sender');      } @@ -1445,7 +1445,7 @@ export class Backend {          try {              const {url} = await this._sendMessageTabPromise(                  tabId, -                {action: 'Yomichan.getUrl', params: {}}, +                {action: 'Yomitan.getUrl', params: {}},                  {frameId: 0}              );              if (typeof url === 'string') { @@ -1581,7 +1581,7 @@ export class Backend {                      sender.tab.id !== tabId ||                      sender.frameId !== frameId ||                      !isObject(message) || -                    message.action !== 'yomichanReady' +                    message.action !== 'yomitanReady'                  ) {                      return;                  } @@ -1602,7 +1602,7 @@ export class Backend {              chrome.runtime.onMessage.addListener(onMessage); -            this._sendMessageTabPromise(tabId, {action: 'Yomichan.isReady'}, {frameId}) +            this._sendMessageTabPromise(tabId, {action: 'Yomitan.isReady'}, {frameId})                  .then(                      (value) => {                          if (!value) { return; } @@ -1839,7 +1839,7 @@ export class Backend {          let extension = MediaUtil.getFileExtensionFromAudioMediaType(contentType);          if (extension === null) { extension = '.mp3'; } -        let fileName = this._generateAnkiNoteMediaFileName('yomichan_audio', extension, timestamp, definitionDetails); +        let fileName = this._generateAnkiNoteMediaFileName('yomitan_audio', extension, timestamp, definitionDetails);          fileName = fileName.replace(/\]/g, '');          fileName = await ankiConnect.storeMediaFile(fileName, data); @@ -1856,7 +1856,7 @@ export class Backend {              throw new Error('Unknown media type for screenshot image');          } -        let fileName = this._generateAnkiNoteMediaFileName('yomichan_browser_screenshot', extension, timestamp, definitionDetails); +        let fileName = this._generateAnkiNoteMediaFileName('yomitan_browser_screenshot', extension, timestamp, definitionDetails);          fileName = await ankiConnect.storeMediaFile(fileName, data);          return fileName; @@ -1874,7 +1874,7 @@ export class Backend {              throw new Error('Unknown media type for clipboard image');          } -        let fileName = this._generateAnkiNoteMediaFileName('yomichan_clipboard_image', extension, timestamp, definitionDetails); +        let fileName = this._generateAnkiNoteMediaFileName('yomitan_clipboard_image', extension, timestamp, definitionDetails);          fileName = await ankiConnect.storeMediaFile(fileName, data);          return fileName; @@ -1910,7 +1910,7 @@ export class Backend {              if (media !== null) {                  const {content, mediaType} = media;                  const extension = MediaUtil.getFileExtensionFromImageMediaType(mediaType); -                fileName = this._generateAnkiNoteMediaFileName(`yomichan_dictionary_media_${i + 1}`, extension, timestamp, definitionDetails); +                fileName = this._generateAnkiNoteMediaFileName(`yomitan_dictionary_media_${i + 1}`, extension, timestamp, definitionDetails);                  try {                      fileName = await ankiConnect.storeMediaFile(fileName, content);                  } catch (e) { @@ -2028,7 +2028,7 @@ export class Backend {      _triggerDatabaseUpdated(type, cause) {          this._translator.clearDatabaseCaches(); -        this._sendMessageAllTabsIgnoreResponse('Yomichan.databaseUpdated', {type, cause}); +        this._sendMessageAllTabsIgnoreResponse('Yomitan.databaseUpdated', {type, cause});      }      async _saveOptions(source) { diff --git a/ext/js/background/background-main.js b/ext/js/background/background-main.js index 6c30aa7a..8e32a53f 100644 --- a/ext/js/background/background-main.js +++ b/ext/js/background/background-main.js @@ -16,11 +16,11 @@   * along with this program.  If not, see <https://www.gnu.org/licenses/>.   */ -import {yomichan} from '../yomichan.js'; +import {yomitan} from '../yomitan.js';  import {Backend} from './backend.js';  (() => { -    yomichan.prepare(true); +    yomitan.prepare(true);      const backend = new Backend();      backend.prepare(); diff --git a/ext/js/background/offscreen.js b/ext/js/background/offscreen.js index 1553d996..9e2139f7 100644 --- a/ext/js/background/offscreen.js +++ b/ext/js/background/offscreen.js @@ -23,7 +23,7 @@ import {ArrayBufferUtil} from '../data/sandbox/array-buffer-util.js';  import {DictionaryDatabase} from '../language/dictionary-database.js';  import {JapaneseUtil} from '../language/sandbox/japanese-util.js';  import {Translator} from '../language/translator.js'; -import {yomichan} from '../yomichan.js'; +import {yomitan} from '../yomitan.js';  /**   * This class controls the core logic of the extension, including API calls @@ -139,11 +139,11 @@ export class Offscreen {      _validatePrivilegedMessageSender(sender) {          let {url} = sender; -        if (typeof url === 'string' && yomichan.isExtensionUrl(url)) { return; } +        if (typeof url === 'string' && yomitan.isExtensionUrl(url)) { return; }          const {tab} = url;          if (typeof tab === 'object' && tab !== null) {              ({url} = tab); -            if (typeof url === 'string' && yomichan.isExtensionUrl(url)) { return; } +            if (typeof url === 'string' && yomitan.isExtensionUrl(url)) { return; }          }          throw new Error('Invalid message sender');      } diff --git a/ext/js/comm/api.js b/ext/js/comm/api.js index 8e5cd5cc..05f95464 100644 --- a/ext/js/comm/api.js +++ b/ext/js/comm/api.js @@ -19,8 +19,8 @@  import {deferPromise, deserializeError, isObject} from '../core.js';  export class API { -    constructor(yomichan) { -        this._yomichan = yomichan; +    constructor(yomitan) { +        this._yomitan = yomitan;      }      optionsGet(optionsContext) { @@ -299,7 +299,7 @@ export class API {          const data = {action, params};          return new Promise((resolve, reject) => {              try { -                this._yomichan.sendMessage(data, (response) => { +                this._yomitan.sendMessage(data, (response) => {                      this._checkLastError(chrome.runtime.lastError);                      if (response !== null && typeof response === 'object') {                          if (typeof response.error !== 'undefined') { diff --git a/ext/js/comm/cross-frame-api.js b/ext/js/comm/cross-frame-api.js index c7d9ae68..fe220f21 100644 --- a/ext/js/comm/cross-frame-api.js +++ b/ext/js/comm/cross-frame-api.js @@ -17,7 +17,7 @@   */  import {EventDispatcher, EventListenerCollection, deserializeError, invokeMessageHandler, log, serializeError} from '../core.js'; -import {yomichan} from '../yomichan.js'; +import {yomitan} from '../yomitan.js';  class CrossFrameAPIPort extends EventDispatcher {      constructor(otherTabId, otherFrameId, port, messageHandlers) { @@ -233,7 +233,7 @@ export class CrossFrameAPI {      async prepare() {          chrome.runtime.onConnect.addListener(this._onConnect.bind(this)); -        ({tabId: this._tabId, frameId: this._frameId} = await yomichan.api.frameInformationGet()); +        ({tabId: this._tabId, frameId: this._frameId} = await yomitan.api.frameInformationGet());      }      invoke(targetFrameId, action, params={}) { @@ -304,7 +304,7 @@ export class CrossFrameAPI {      }      async _createCommPort(otherTabId, otherFrameId) { -        await yomichan.api.openCrossFramePort(otherTabId, otherFrameId); +        await yomitan.api.openCrossFramePort(otherTabId, otherFrameId);          const tabPorts = this._commPorts.get(otherTabId);          if (typeof tabPorts !== 'undefined') { diff --git a/ext/js/comm/frame-ancestry-handler.js b/ext/js/comm/frame-ancestry-handler.js index 1934c4ac..eeefac3f 100644 --- a/ext/js/comm/frame-ancestry-handler.js +++ b/ext/js/comm/frame-ancestry-handler.js @@ -17,7 +17,7 @@   */  import {generateId} from '../core.js'; -import {yomichan} from '../yomichan.js'; +import {yomitan} from '../yomitan.js';  /**   * This class is used to return the ancestor frame IDs for the current frame. @@ -118,7 +118,7 @@ export class FrameAncestryHandler {                      clearTimeout(timer);                      timer = null;                  } -                yomichan.crossFrame.unregisterHandler(responseMessageId); +                yomitan.crossFrame.unregisterHandler(responseMessageId);              };              const onMessage = (params) => {                  if (params.nonce !== nonce) { return null; } @@ -148,7 +148,7 @@ export class FrameAncestryHandler {              };              // Start -            yomichan.crossFrame.registerHandlers([[responseMessageId, {async: false, handler: onMessage}]]); +            yomitan.crossFrame.registerHandlers([[responseMessageId, {async: false, handler: onMessage}]]);              resetTimeout();              const frameId = this._frameId;              this._requestFrameInfo(targetWindow, frameId, frameId, uniqueId, nonce); @@ -187,7 +187,7 @@ export class FrameAncestryHandler {              const responseMessageId = `${this._responseMessageIdBase}${uniqueId}`;              try { -                const response = await yomichan.crossFrame.invoke(originFrameId, responseMessageId, responseParams); +                const response = await yomitan.crossFrame.invoke(originFrameId, responseMessageId, responseParams);                  if (response === null) { return; }                  nonce = response.nonce;              } catch (e) { diff --git a/ext/js/comm/frame-endpoint.js b/ext/js/comm/frame-endpoint.js index 0e8a5c00..5555e60f 100644 --- a/ext/js/comm/frame-endpoint.js +++ b/ext/js/comm/frame-endpoint.js @@ -17,7 +17,7 @@   */  import {EventListenerCollection, generateId, isObject} from '../core.js'; -import {yomichan} from '../yomichan.js'; +import {yomitan} from '../yomitan.js';  export class FrameEndpoint {      constructor() { @@ -32,7 +32,7 @@ export class FrameEndpoint {              this._eventListeners.addEventListener(window, 'message', this._onMessage.bind(this), false);              this._eventListenersSetup = true;          } -        yomichan.api.broadcastTab('frameEndpointReady', {secret: this._secret}); +        yomitan.api.broadcastTab('frameEndpointReady', {secret: this._secret});      }      authenticate(message) { @@ -60,6 +60,6 @@ export class FrameEndpoint {          this._token = token;          this._eventListeners.removeAllEventListeners(); -        yomichan.api.sendMessageToFrame(hostFrameId, 'frameEndpointConnected', {secret, token}); +        yomitan.api.sendMessageToFrame(hostFrameId, 'frameEndpointConnected', {secret, token});      }  } diff --git a/ext/js/comm/frame-offset-forwarder.js b/ext/js/comm/frame-offset-forwarder.js index 5eea2ba6..ef75f1d0 100644 --- a/ext/js/comm/frame-offset-forwarder.js +++ b/ext/js/comm/frame-offset-forwarder.js @@ -16,7 +16,7 @@   * along with this program.  If not, see <https://www.gnu.org/licenses/>.   */ -import {yomichan} from '../yomichan.js'; +import {yomitan} from '../yomitan.js';  import {FrameAncestryHandler} from './frame-ancestry-handler.js';  export class FrameOffsetForwarder { @@ -27,7 +27,7 @@ export class FrameOffsetForwarder {      prepare() {          this._frameAncestryHandler.prepare(); -        yomichan.crossFrame.registerHandlers([ +        yomitan.crossFrame.registerHandlers([              ['FrameOffsetForwarder.getChildFrameRect', {async: false, handler: this._onMessageGetChildFrameRect.bind(this)}]          ]);      } @@ -43,7 +43,7 @@ export class FrameOffsetForwarder {              let childFrameId = this._frameId;              const promises = [];              for (const frameId of ancestorFrameIds) { -                promises.push(yomichan.crossFrame.invoke(frameId, 'FrameOffsetForwarder.getChildFrameRect', {frameId: childFrameId})); +                promises.push(yomitan.crossFrame.invoke(frameId, 'FrameOffsetForwarder.getChildFrameRect', {frameId: childFrameId}));                  childFrameId = frameId;              } diff --git a/ext/js/comm/mecab.js b/ext/js/comm/mecab.js index 50f13ddf..c7314605 100644 --- a/ext/js/comm/mecab.js +++ b/ext/js/comm/mecab.js @@ -19,7 +19,7 @@  import {EventListenerCollection} from '../core.js';  /** - * This class is used to connect Yomichan to a native component that is + * This class is used to connect Yomitan to a native component that is   * used to parse text into individual terms.   */  export class Mecab { @@ -99,7 +99,7 @@ export class Mecab {      /**       * Gets the local API version being used. -     * @returns {number} An integer representing the API version that Yomichan uses. +     * @returns {number} An integer representing the API version that Yomitan uses.       */      getLocalVersion() {          return this._version; @@ -219,7 +219,7 @@ export class Mecab {      }      async _setupPort2() { -        const port = chrome.runtime.connectNative('yomichan_mecab'); +        const port = chrome.runtime.connectNative('yomitan_mecab');          this._eventListeners.addListener(port.onMessage, this._onMessage.bind(this));          this._eventListeners.addListener(port.onDisconnect, this._onDisconnect.bind(this));          this._port = port; @@ -228,7 +228,7 @@ export class Mecab {              const {version} = await this._invoke('get_version', {});              this._remoteVersion = version;              if (version !== this._version) { -                throw new Error(`Unsupported MeCab native messenger version ${version}. Yomichan supports version ${this._version}.`); +                throw new Error(`Unsupported MeCab native messenger version ${version}. Yomitan supports version ${this._version}.`);              }          } catch (e) {              if (this._port === port) { diff --git a/ext/js/data/anki-note-builder.js b/ext/js/data/anki-note-builder.js index 7fbbf03c..398036c0 100644 --- a/ext/js/data/anki-note-builder.js +++ b/ext/js/data/anki-note-builder.js @@ -18,7 +18,7 @@  import {deferPromise, deserializeError} from '../core.js';  import {TemplateRendererProxy} from '../templates/template-renderer-proxy.js'; -import {yomichan} from '../yomichan.js'; +import {yomitan} from '../yomitan.js';  import {AnkiUtil} from './anki-util.js';  export class AnkiNoteBuilder { @@ -345,7 +345,7 @@ export class AnkiNoteBuilder {          // Inject media          const selectionText = injectSelectionText ? this._getSelectionText() : null; -        const injectedMedia = await yomichan.api.injectAnkiNoteMedia( +        const injectedMedia = await yomitan.api.injectAnkiNoteMedia(              timestamp,              dictionaryEntryDetails,              audioDetails, @@ -386,7 +386,7 @@ export class AnkiNoteBuilder {      async _getTextFurigana(entries, optionsContext, scanLength) {          const results = [];          for (const {text, readingMode} of entries) { -            const parseResults = await yomichan.api.parseText(text, optionsContext, scanLength, true, false); +            const parseResults = await yomitan.api.parseText(text, optionsContext, scanLength, true, false);              let data = null;              for (const {source, content} of parseResults) {                  if (source !== 'scanning-parser') { continue; } diff --git a/ext/js/data/options-util.js b/ext/js/data/options-util.js index 42e31b5f..3858cb55 100644 --- a/ext/js/data/options-util.js +++ b/ext/js/data/options-util.js @@ -330,7 +330,7 @@ export class OptionsUtil {              anki: {                  enable: false,                  server: 'http://127.0.0.1:8765', -                tags: ['yomichan'], +                tags: ['yomitan'],                  sentenceExt: 200,                  screenshot: {format: 'png', quality: 92},                  terms: {deck: '', model: '', fields: {}}, diff --git a/ext/js/display/display-anki.js b/ext/js/display/display-anki.js index a25008a2..2f94e414 100644 --- a/ext/js/display/display-anki.js +++ b/ext/js/display/display-anki.js @@ -20,7 +20,7 @@ import {EventListenerCollection, deferPromise, isObject} from '../core.js';  import {AnkiNoteBuilder} from '../data/anki-note-builder.js';  import {AnkiUtil} from '../data/anki-util.js';  import {PopupMenu} from '../dom/popup-menu.js'; -import {yomichan} from '../yomichan.js'; +import {yomitan} from '../yomitan.js';  export class DisplayAnki {      constructor(display, displayAudio, japaneseUtil) { @@ -377,7 +377,7 @@ export class DisplayAnki {              let noteId = null;              let addNoteOkay = false;              try { -                noteId = await yomichan.api.addAnkiNote(note); +                noteId = await yomitan.api.addAnkiNote(note);                  addNoteOkay = true;              } catch (e) {                  allErrors.length = 0; @@ -390,7 +390,7 @@ export class DisplayAnki {                  } else {                      if (this._suspendNewCards) {                          try { -                            await yomichan.api.suspendAnkiCardsForNote(noteId); +                            await yomitan.api.suspendAnkiCardsForNote(noteId);                          } catch (e) {                              allErrors.push(e);                          } @@ -475,7 +475,7 @@ export class DisplayAnki {          templates = this._ankiFieldTemplatesDefault;          if (typeof templates === 'string') { return templates; } -        templates = await yomichan.api.getDefaultAnkiFieldTemplates(); +        templates = await yomitan.api.getDefaultAnkiFieldTemplates();          this._ankiFieldTemplatesDefault = templates;          return templates;      } @@ -505,12 +505,12 @@ export class DisplayAnki {          let ankiError = null;          try {              if (forceCanAddValue !== null) { -                if (!await yomichan.api.isAnkiConnected()) { +                if (!await yomitan.api.isAnkiConnected()) {                      throw new Error('Anki not connected');                  }                  infos = this._getAnkiNoteInfoForceValue(notes, forceCanAddValue);              } else { -                infos = await yomichan.api.getAnkiNoteInfo(notes, fetchAdditionalInfo); +                infos = await yomitan.api.getAnkiNoteInfo(notes, fetchAdditionalInfo);              }          } catch (e) {              infos = this._getAnkiNoteInfoForceValue(notes, false); @@ -663,7 +663,7 @@ export class DisplayAnki {          const noteIds = this._getNodeNoteIds(node);          if (noteIds.length === 0) { return; }          try { -            await yomichan.api.noteView(noteIds[0], this._noteGuiMode, false); +            await yomitan.api.noteView(noteIds[0], this._noteGuiMode, false);          } catch (e) {              const displayErrors = (                  e.message === 'Mode not supported' ? diff --git a/ext/js/display/display-audio.js b/ext/js/display/display-audio.js index b829dd1a..faed88bc 100644 --- a/ext/js/display/display-audio.js +++ b/ext/js/display/display-audio.js @@ -19,7 +19,7 @@  import {EventListenerCollection} from '../core.js';  import {PopupMenu} from '../dom/popup-menu.js';  import {AudioSystem} from '../media/audio-system.js'; -import {yomichan} from '../yomichan.js'; +import {yomitan} from '../yomitan.js';  export class DisplayAudio {      constructor(display) { @@ -531,7 +531,7 @@ export class DisplayAudio {      async _getTermAudioInfoList(source, term, reading) {          const sourceData = this._getSourceData(source); -        const infoList = await yomichan.api.getTermAudioInfoList(sourceData, term, reading); +        const infoList = await yomitan.api.getTermAudioInfoList(sourceData, term, reading);          return infoList.map((info) => ({info, audioPromise: null, audioResolved: false, audio: null}));      } diff --git a/ext/js/display/display-content-manager.js b/ext/js/display/display-content-manager.js index 6cba1783..fb2e7db5 100644 --- a/ext/js/display/display-content-manager.js +++ b/ext/js/display/display-content-manager.js @@ -18,7 +18,7 @@  import {EventListenerCollection} from '../core.js';  import {ArrayBufferUtil} from '../data/sandbox/array-buffer-util.js'; -import {yomichan} from '../yomichan.js'; +import {yomitan} from '../yomitan.js';  /**   * A callback used when a media file has been loaded. @@ -138,7 +138,7 @@ export class DisplayContentManager {      async _getMediaData(path, dictionary, cachedData) {          const token = this._token; -        const data = (await yomichan.api.getMedia([{path, dictionary}]))[0]; +        const data = (await yomitan.api.getMedia([{path, dictionary}]))[0];          if (token === this._token && data !== null) {              const buffer = ArrayBufferUtil.base64ToArrayBuffer(data.content);              const blob = new Blob([buffer], {type: data.mediaType}); diff --git a/ext/js/display/display-generator.js b/ext/js/display/display-generator.js index 25df9745..e8a2104f 100644 --- a/ext/js/display/display-generator.js +++ b/ext/js/display/display-generator.js @@ -19,7 +19,7 @@  import {isObject} from '../core.js';  import {HtmlTemplateCollection} from '../dom/html-template-collection.js';  import {DictionaryDataUtil} from '../language/sandbox/dictionary-data-util.js'; -import {yomichan} from '../yomichan.js'; +import {yomitan} from '../yomitan.js';  import {PronunciationGenerator} from './sandbox/pronunciation-generator.js';  import {StructuredContentGenerator} from './sandbox/structured-content-generator.js'; @@ -34,7 +34,7 @@ export class DisplayGenerator {      }      async prepare() { -        const html = await yomichan.api.getDisplayTemplatesHtml(); +        const html = await yomitan.api.getDisplayTemplatesHtml();          this._templates = new HtmlTemplateCollection(html);          this.updateHotkeys();      } diff --git a/ext/js/display/display-profile-selection.js b/ext/js/display/display-profile-selection.js index c0b642e8..d8b7185c 100644 --- a/ext/js/display/display-profile-selection.js +++ b/ext/js/display/display-profile-selection.js @@ -18,7 +18,7 @@  import {EventListenerCollection, generateId} from '../core.js';  import {PanelElement} from '../dom/panel-element.js'; -import {yomichan} from '../yomichan.js'; +import {yomitan} from '../yomitan.js';  export class DisplayProfileSelection {      constructor(display) { @@ -35,7 +35,7 @@ export class DisplayProfileSelection {      }      async prepare() { -        yomichan.on('optionsUpdated', this._onOptionsUpdated.bind(this)); +        yomitan.on('optionsUpdated', this._onOptionsUpdated.bind(this));          this._profileButton.addEventListener('click', this._onProfileButtonClick.bind(this), false);          this._profileListNeedsUpdate = true;      } @@ -67,7 +67,7 @@ export class DisplayProfileSelection {      async _updateProfileList() {          this._profileListNeedsUpdate = false; -        const options = await yomichan.api.optionsGetFull(); +        const options = await yomitan.api.optionsGetFull();          this._eventListeners.removeAllEventListeners();          const displayGenerator = this._display.displayGenerator; @@ -95,7 +95,7 @@ export class DisplayProfileSelection {      }      async _setProfileCurrent(index) { -        await yomichan.api.modifySettings([{ +        await yomitan.api.modifySettings([{              action: 'set',              path: 'profileCurrent',              value: index, diff --git a/ext/js/display/display.js b/ext/js/display/display.js index b86b877d..038a76bb 100644 --- a/ext/js/display/display.js +++ b/ext/js/display/display.js @@ -26,7 +26,7 @@ import {ScrollElement} from '../dom/scroll-element.js';  import {HotkeyHelpController} from '../input/hotkey-help-controller.js';  import {TextScanner} from '../language/text-scanner.js';  import {dynamicLoader} from '../script/dynamic-loader.js'; -import {yomichan} from '../yomichan.js'; +import {yomitan} from '../yomitan.js';  import {DisplayContentManager} from './display-content-manager.js';  import {DisplayGenerator} from './display-generator.js';  import {DisplayHistory} from './display-history.js'; @@ -260,7 +260,7 @@ export class Display extends EventDispatcher {          // State setup          const {documentElement} = document; -        const {browser} = await yomichan.api.getEnvironmentInfo(); +        const {browser} = await yomitan.api.getEnvironmentInfo();          this._browser = browser;          if (documentElement !== null) { @@ -278,8 +278,8 @@ export class Display extends EventDispatcher {          this._history.on('stateChanged', this._onStateChanged.bind(this));          this._queryParser.on('searched', this._onQueryParserSearch.bind(this));          this._progressIndicatorVisible.on('change', this._onProgressIndicatorVisibleChanged.bind(this)); -        yomichan.on('extensionUnloaded', this._onExtensionUnloaded.bind(this)); -        yomichan.crossFrame.registerHandlers([ +        yomitan.on('extensionUnloaded', this._onExtensionUnloaded.bind(this)); +        yomitan.crossFrame.registerHandlers([              ['popupMessage', {async: 'dynamic', handler: this._onDirectMessage.bind(this)}]          ]);          window.addEventListener('message', this._onWindowMessage.bind(this), false); @@ -326,7 +326,7 @@ export class Display extends EventDispatcher {      }      onError(error) { -        if (yomichan.isExtensionUnloaded) { return; } +        if (yomitan.isExtensionUnloaded) { return; }          log.error(error);      } @@ -344,7 +344,7 @@ export class Display extends EventDispatcher {      }      async updateOptions() { -        const options = await yomichan.api.optionsGet(this.getOptionsContext()); +        const options = await yomitan.api.optionsGet(this.getOptionsContext());          const {scanning: scanningOptions, sentenceParsing: sentenceParsingOptions} = options;          this._options = options; @@ -494,14 +494,14 @@ export class Display extends EventDispatcher {          if (this._contentOriginTabId === this._tabId && this._contentOriginFrameId === this._frameId) {              throw new Error('Content origin is same page');          } -        return await yomichan.crossFrame.invokeTab(this._contentOriginTabId, this._contentOriginFrameId, action, params); +        return await yomitan.crossFrame.invokeTab(this._contentOriginTabId, this._contentOriginFrameId, action, params);      }      async invokeParentFrame(action, params={}) {          if (this._parentFrameId === null || this._parentFrameId === this._frameId) {              throw new Error('Invalid parent frame');          } -        return await yomichan.crossFrame.invoke(this._parentFrameId, action, params); +        return await yomitan.crossFrame.invoke(this._parentFrameId, action, params);      }      getElementDictionaryEntryIndex(element) { @@ -586,8 +586,8 @@ export class Display extends EventDispatcher {      }      _onMessageExtensionUnloaded() { -        if (yomichan.isExtensionUnloaded) { return; } -        yomichan.triggerExtensionUnloaded(); +        if (yomitan.isExtensionUnloaded) { return; } +        yomitan.triggerExtensionUnloaded();      }      // Private @@ -736,7 +736,7 @@ export class Display extends EventDispatcher {              if (typeof documentTitle !== 'string') { documentTitle = document.title; }              const optionsContext = this.getOptionsContext();              const query = e.currentTarget.textContent; -            const dictionaryEntries = await yomichan.api.kanjiFind(query, optionsContext); +            const dictionaryEntries = await yomitan.api.kanjiFind(query, optionsContext);              const details = {                  focus: false,                  historyMode: 'new', @@ -914,7 +914,7 @@ export class Display extends EventDispatcher {      async _findDictionaryEntries(isKanji, source, wildcardsEnabled, optionsContext) {          if (isKanji) { -            const dictionaryEntries = await yomichan.api.kanjiFind(source, optionsContext); +            const dictionaryEntries = await yomitan.api.kanjiFind(source, optionsContext);              return dictionaryEntries;          } else {              const findDetails = {}; @@ -932,7 +932,7 @@ export class Display extends EventDispatcher {                  }              } -            const {dictionaryEntries} = await yomichan.api.termsFind(source, findDetails, optionsContext); +            const {dictionaryEntries} = await yomitan.api.termsFind(source, findDetails, optionsContext);              return dictionaryEntries;          }      } @@ -1334,7 +1334,7 @@ export class Display extends EventDispatcher {      }      _closePopups() { -        yomichan.trigger('closePopups'); +        yomitan.trigger('closePopups');      }      async _setOptionsContextIfDifferent(optionsContext) { @@ -1549,7 +1549,7 @@ export class Display extends EventDispatcher {      }      _onContentTextScannerSearched({type, dictionaryEntries, sentence, textSource, optionsContext, error}) { -        if (error !== null && !yomichan.isExtensionUnloaded) { +        if (error !== null && !yomitan.isExtensionUnloaded) {              log.error(error);          } diff --git a/ext/js/display/option-toggle-hotkey-handler.js b/ext/js/display/option-toggle-hotkey-handler.js index 360b0894..1f8de939 100644 --- a/ext/js/display/option-toggle-hotkey-handler.js +++ b/ext/js/display/option-toggle-hotkey-handler.js @@ -17,7 +17,7 @@   */  import {deserializeError} from '../core.js'; -import {yomichan} from '../yomichan.js'; +import {yomitan} from '../yomitan.js';  export class OptionToggleHotkeyHandler {      constructor(display) { @@ -52,7 +52,7 @@ export class OptionToggleHotkeyHandler {          try {              const optionsContext = this._display.getOptionsContext(); -            const result = (await yomichan.api.getSettings([{ +            const result = (await yomitan.api.getSettings([{                  scope: 'profile',                  path,                  optionsContext @@ -69,7 +69,7 @@ export class OptionToggleHotkeyHandler {              value = !value; -            const result2 = (await yomichan.api.modifySettings([{ +            const result2 = (await yomitan.api.modifySettings([{                  scope: 'profile',                  action: 'set',                  path, diff --git a/ext/js/display/popup-main.js b/ext/js/display/popup-main.js index b82458fa..6b07b63f 100644 --- a/ext/js/display/popup-main.js +++ b/ext/js/display/popup-main.js @@ -20,7 +20,7 @@ import {log} from '../core.js';  import {DocumentFocusController} from '../dom/document-focus-controller.js';  import {HotkeyHandler} from '../input/hotkey-handler.js';  import {JapaneseUtil} from '../language/sandbox/japanese-util.js'; -import {yomichan} from '../yomichan.js'; +import {yomitan} from '../yomitan.js';  import {DisplayAnki} from './display-anki.js';  import {DisplayAudio} from './display-audio.js';  import {DisplayProfileSelection} from './display-profile-selection.js'; @@ -32,9 +32,9 @@ import {Display} from './display.js';          const documentFocusController = new DocumentFocusController();          documentFocusController.prepare(); -        await yomichan.prepare(); +        await yomitan.prepare(); -        const {tabId, frameId} = await yomichan.api.frameInformationGet(); +        const {tabId, frameId} = await yomitan.api.frameInformationGet();          const japaneseUtil = new JapaneseUtil(null); @@ -60,7 +60,7 @@ import {Display} from './display.js';          document.documentElement.dataset.loaded = 'true'; -        yomichan.ready(); +        yomitan.ready();      } catch (e) {          log.error(e);      } diff --git a/ext/js/display/query-parser.js b/ext/js/display/query-parser.js index 6eee55b2..85ec3031 100644 --- a/ext/js/display/query-parser.js +++ b/ext/js/display/query-parser.js @@ -18,7 +18,7 @@  import {EventDispatcher, log} from '../core.js';  import {TextScanner} from '../language/text-scanner.js'; -import {yomichan} from '../yomichan.js'; +import {yomitan} from '../yomitan.js';  export class QueryParser extends EventDispatcher {      constructor({getSearchContext, japaneseUtil}) { @@ -93,7 +93,7 @@ export class QueryParser extends EventDispatcher {          const token = {};          this._setTextToken = token; -        this._parseResults = await yomichan.api.parseText(text, this._getOptionsContext(), this._scanLength, this._useInternalParser, this._useMecabParser); +        this._parseResults = await yomitan.api.parseText(text, this._getOptionsContext(), this._scanLength, this._useInternalParser, this._useMecabParser);          if (this._setTextToken !== token) { return; }          this._refreshSelectedParser(); @@ -139,7 +139,7 @@ export class QueryParser extends EventDispatcher {      _setSelectedParser(value) {          const optionsContext = this._getOptionsContext(); -        yomichan.api.modifySettings([{ +        yomitan.api.modifySettings([{              action: 'set',              path: 'parsing.selectedParser',              value, diff --git a/ext/js/display/search-display-controller.js b/ext/js/display/search-display-controller.js index 9e190c85..e31bd239 100644 --- a/ext/js/display/search-display-controller.js +++ b/ext/js/display/search-display-controller.js @@ -19,7 +19,7 @@  import * as wanakana from '../../lib/wanakana.js';  import {ClipboardMonitor} from '../comm/clipboard-monitor.js';  import {EventListenerCollection, invokeMessageHandler} from '../core.js'; -import {yomichan} from '../yomichan.js'; +import {yomitan} from '../yomitan.js';  export class SearchDisplayController {      constructor(tabId, frameId, display, displayAudio, japaneseUtil, searchPersistentStateController) { @@ -44,7 +44,7 @@ export class SearchDisplayController {          this._clipboardMonitor = new ClipboardMonitor({              japaneseUtil,              clipboardReader: { -                getText: yomichan.api.clipboardGet.bind(yomichan.api) +                getText: yomitan.api.clipboardGet.bind(yomitan.api)              }          });          this._messageHandlers = new Map(); @@ -56,7 +56,7 @@ export class SearchDisplayController {          this._searchPersistentStateController.on('modeChange', this._onModeChange.bind(this));          chrome.runtime.onMessage.addListener(this._onMessage.bind(this)); -        yomichan.on('optionsUpdated', this._onOptionsUpdated.bind(this)); +        yomitan.on('optionsUpdated', this._onOptionsUpdated.bind(this));          this._display.on('optionsUpdated', this._onDisplayOptionsUpdated.bind(this));          this._display.on('contentUpdateStart', this._onContentUpdateStart.bind(this)); @@ -225,7 +225,7 @@ export class SearchDisplayController {      _onWanakanaEnableChange(e) {          const value = e.target.checked;          this._setWanakanaEnabled(value); -        yomichan.api.modifySettings([{ +        yomitan.api.modifySettings([{              action: 'set',              path: 'general.enableWanakana',              value, @@ -335,7 +335,7 @@ export class SearchDisplayController {          if (!modify) { return; } -        await yomichan.api.modifySettings([{ +        await yomitan.api.modifySettings([{              action: 'set',              path: 'clipboard.enableSearchPageMonitor',              value, diff --git a/ext/js/display/search-main.js b/ext/js/display/search-main.js index 67552229..5eee08d1 100644 --- a/ext/js/display/search-main.js +++ b/ext/js/display/search-main.js @@ -21,7 +21,7 @@ import {log} from '../core.js';  import {DocumentFocusController} from '../dom/document-focus-controller.js';  import {HotkeyHandler} from '../input/hotkey-handler.js';  import {JapaneseUtil} from '../language/sandbox/japanese-util.js'; -import {yomichan} from '../yomichan.js'; +import {yomitan} from '../yomitan.js';  import {DisplayAnki} from './display-anki.js';  import {DisplayAudio} from './display-audio.js';  import {Display} from './display.js'; @@ -40,9 +40,9 @@ import {SearchPersistentStateController} from './search-persistent-state-control          const searchActionPopupController = new SearchActionPopupController(searchPersistentStateController);          searchActionPopupController.prepare(); -        await yomichan.prepare(); +        await yomitan.prepare(); -        const {tabId, frameId} = await yomichan.api.frameInformationGet(); +        const {tabId, frameId} = await yomitan.api.frameInformationGet();          const japaneseUtil = new JapaneseUtil(wanakana); @@ -65,7 +65,7 @@ import {SearchPersistentStateController} from './search-persistent-state-control          document.documentElement.dataset.loaded = 'true'; -        yomichan.ready(); +        yomitan.ready();      } catch (e) {          log.error(e);      } diff --git a/ext/js/input/hotkey-handler.js b/ext/js/input/hotkey-handler.js index f05351bb..2fd35a5c 100644 --- a/ext/js/input/hotkey-handler.js +++ b/ext/js/input/hotkey-handler.js @@ -18,7 +18,7 @@  import {EventDispatcher, EventListenerCollection} from '../core.js';  import {DocumentUtil} from '../dom/document-util.js'; -import {yomichan} from '../yomichan.js'; +import {yomitan} from '../yomitan.js';  /**   * Class which handles hotkey events and actions. @@ -53,7 +53,7 @@ export class HotkeyHandler extends EventDispatcher {      prepare() {          this._isPrepared = true;          this._updateEventHandlers(); -        yomichan.crossFrame.registerHandlers([ +        yomitan.crossFrame.registerHandlers([              ['HotkeyHandler.forwardHotkey', {async: false, handler: this._onMessageForwardHotkey.bind(this)}]          ]);      } diff --git a/ext/js/input/hotkey-help-controller.js b/ext/js/input/hotkey-help-controller.js index 67df9f84..51ec8fac 100644 --- a/ext/js/input/hotkey-help-controller.js +++ b/ext/js/input/hotkey-help-controller.js @@ -17,7 +17,7 @@   */  import {isObject} from '../core.js'; -import {yomichan} from '../yomichan.js'; +import {yomitan} from '../yomitan.js';  import {HotkeyUtil} from './hotkey-util.js';  export class HotkeyHelpController { @@ -29,7 +29,7 @@ export class HotkeyHelpController {      }      async prepare() { -        const {platform: {os}} = await yomichan.api.getEnvironmentInfo(); +        const {platform: {os}} = await yomitan.api.getEnvironmentInfo();          this._hotkeyUtil.os = os;          await this._setupGlobalCommands(this._globalActionHotkeys);      } diff --git a/ext/js/language/text-scanner.js b/ext/js/language/text-scanner.js index bd5b0fbe..ac7ef3d9 100644 --- a/ext/js/language/text-scanner.js +++ b/ext/js/language/text-scanner.js @@ -18,7 +18,7 @@  import {EventDispatcher, EventListenerCollection, clone, isObject, log, promiseTimeout} from '../core.js';  import {DocumentUtil} from '../dom/document-util.js'; -import {yomichan} from '../yomichan.js'; +import {yomitan} from '../yomitan.js';  export class TextScanner extends EventDispatcher {      constructor({ @@ -89,7 +89,7 @@ export class TextScanner extends EventDispatcher {          this._canClearSelection = true;          this._textSelectionTimer = null; -        this._yomichanIsChangingTextSelectionNow = false; +        this._yomitanIsChangingTextSelectionNow = false;          this._userHasNotSelectedAnythingManually = true;      } @@ -270,13 +270,13 @@ export class TextScanner extends EventDispatcher {      setCurrentTextSource(textSource) {          this._textSourceCurrent = textSource;          if (this._selectText && this._userHasNotSelectedAnythingManually) { -            this._yomichanIsChangingTextSelectionNow = true; +            this._yomitanIsChangingTextSelectionNow = true;              this._textSourceCurrent.select();              if (this._textSelectionTimer !== null) { clearTimeout(this._textSelectionTimer); }              // This timeout uses a 50ms delay to ensure that the selectionchange event has time to occur.              // If the delay is 0ms, the timeout will sometimes complete before the event.              this._textSelectionTimer = setTimeout(() => { -                this._yomichanIsChangingTextSelectionNow = false; +                this._yomitanIsChangingTextSelectionNow = false;                  this._textSelectionTimer = null;              }, 50);              this._textSourceCurrentSelected = true; @@ -390,7 +390,7 @@ export class TextScanner extends EventDispatcher {      }      _onSelectionChangeCheckUserSelection() { -        if (this._yomichanIsChangingTextSelectionNow) { return; } +        if (this._yomitanIsChangingTextSelectionNow) { return; }          this._userHasNotSelectedAnythingManually = window.getSelection().isCollapsed;      } @@ -881,7 +881,7 @@ export class TextScanner extends EventDispatcher {          const details = {};          if (this._matchTypePrefix) { details.matchType = 'prefix'; } -        const {dictionaryEntries, originalTextLength} = await yomichan.api.termsFind(searchText, details, optionsContext); +        const {dictionaryEntries, originalTextLength} = await yomitan.api.termsFind(searchText, details, optionsContext);          if (dictionaryEntries.length === 0) { return null; }          textSource.setEndOffset(originalTextLength, false, layoutAwareScan); @@ -908,7 +908,7 @@ export class TextScanner extends EventDispatcher {          const searchText = this.getTextSourceContent(textSource, 1, layoutAwareScan);          if (searchText.length === 0) { return null; } -        const dictionaryEntries = await yomichan.api.kanjiFind(searchText, optionsContext); +        const dictionaryEntries = await yomitan.api.kanjiFind(searchText, optionsContext);          if (dictionaryEntries.length === 0) { return null; }          textSource.setEndOffset(1, false, layoutAwareScan); @@ -1145,7 +1145,7 @@ export class TextScanner extends EventDispatcher {      async _hasJapanese(text) {          try { -            return await yomichan.api.textHasJapaneseCharacters(text); +            return await yomitan.api.textHasJapaneseCharacters(text);          } catch (e) {              return false;          } diff --git a/ext/js/pages/action-popup-main.js b/ext/js/pages/action-popup-main.js index 163c226a..32bfcb7f 100644 --- a/ext/js/pages/action-popup-main.js +++ b/ext/js/pages/action-popup-main.js @@ -18,7 +18,7 @@  import {PermissionsUtil} from '../data/permissions-util.js';  import {HotkeyHelpController} from '../input/hotkey-help-controller.js'; -import {yomichan} from '../yomichan.js'; +import {yomitan} from '../yomitan.js';  export class DisplayController {      constructor() { @@ -34,7 +34,7 @@ export class DisplayController {          this._setupButtonEvents('.action-open-search', 'openSearchPage', chrome.runtime.getURL('/search.html'), this._onSearchClick.bind(this));          this._setupButtonEvents('.action-open-info', 'openInfoPage', chrome.runtime.getURL('/info.html')); -        const optionsFull = await yomichan.api.optionsGetFull(); +        const optionsFull = await yomitan.api.optionsGetFull();          this._optionsFull = optionsFull;          this._setupHotkeys(); @@ -84,12 +84,12 @@ export class DisplayController {                          const result = customHandler(e);                          if (typeof result !== 'undefined') { return; }                      } -                    yomichan.api.commandExec(command, {mode: e.ctrlKey ? 'newTab' : 'existingOrNewTab'}); +                    yomitan.api.commandExec(command, {mode: e.ctrlKey ? 'newTab' : 'existingOrNewTab'});                      e.preventDefault();                  }, false);                  node.addEventListener('auxclick', (e) => {                      if (e.button !== 1) { return; } -                    yomichan.api.commandExec(command, {mode: 'newTab'}); +                    yomitan.api.commandExec(command, {mode: 'newTab'});                      e.preventDefault();                  }, false);              } @@ -144,7 +144,7 @@ export class DisplayController {      _setupOptions({options}) {          const extensionEnabled = options.general.enable; -        const onToggleChanged = () => yomichan.api.commandExec('toggleTextScanning'); +        const onToggleChanged = () => yomitan.api.commandExec('toggleTextScanning');          for (const toggle of document.querySelectorAll('#enable-search,#enable-search2')) {              toggle.checked = extensionEnabled;              toggle.addEventListener('change', onToggleChanged, false); @@ -192,7 +192,7 @@ export class DisplayController {      }      async _setPrimaryProfileIndex(value) { -        return await yomichan.api.modifySettings( +        return await yomitan.api.modifySettings(              [{                  action: 'set',                  path: 'profileCurrent', @@ -204,7 +204,7 @@ export class DisplayController {      async _updateDictionariesEnabledWarnings(options) {          const noDictionariesEnabledWarnings = document.querySelectorAll('.no-dictionaries-enabled-warning'); -        const dictionaries = await yomichan.api.getDictionaryInfo(); +        const dictionaries = await yomitan.api.getDictionaryInfo();          const enabledDictionaries = new Set();          for (const {name, enabled} of options.dictionaries) { @@ -237,18 +237,18 @@ export class DisplayController {      }      async _isSafari() { -        const {browser} = await yomichan.api.getEnvironmentInfo(); +        const {browser} = await yomitan.api.getEnvironmentInfo();          return browser === 'safari';      }  }  (async () => { -    await yomichan.prepare(); +    await yomitan.prepare(); -    yomichan.api.logIndicatorClear(); +    yomitan.api.logIndicatorClear();      const displayController = new DisplayController();      displayController.prepare(); -    yomichan.ready(); +    yomitan.ready();  })(); diff --git a/ext/js/pages/info-main.js b/ext/js/pages/info-main.js index 58366d4c..7c6bc993 100644 --- a/ext/js/pages/info-main.js +++ b/ext/js/pages/info-main.js @@ -18,7 +18,7 @@  import {log, promiseTimeout} from '../core.js';  import {DocumentFocusController} from '../dom/document-focus-controller.js'; -import {yomichan} from '../yomichan.js'; +import {yomitan} from '../yomitan.js';  import {BackupController} from './settings/backup-controller.js';  import {SettingsController} from './settings/settings-controller.js'; @@ -54,11 +54,11 @@ function getOperatingSystemDisplayName(os) {          const manifest = chrome.runtime.getManifest();          const language = chrome.i18n.getUILanguage(); -        await yomichan.prepare(); +        await yomitan.prepare();          const {userAgent} = navigator;          const {name, version} = manifest; -        const {browser, platform: {os}} = await yomichan.api.getEnvironmentInfo(); +        const {browser, platform: {os}} = await yomitan.api.getEnvironmentInfo();          const thisVersionLink = document.querySelector('#release-notes-this-version-link');          thisVersionLink.href = thisVersionLink.dataset.hrefFormat.replace(/\{version\}/g, version); @@ -72,7 +72,7 @@ function getOperatingSystemDisplayName(os) {          (async () => {              let ankiConnectVersion = null;              try { -                ankiConnectVersion = await yomichan.api.getAnkiConnectVersion(); +                ankiConnectVersion = await yomitan.api.getAnkiConnectVersion();              } catch (e) {                  // NOP              } @@ -85,7 +85,7 @@ function getOperatingSystemDisplayName(os) {          (async () => {              let dictionaryInfos;              try { -                dictionaryInfos = await yomichan.api.getDictionaryInfo(); +                dictionaryInfos = await yomitan.api.getDictionaryInfo();              } catch (e) {                  return;              } diff --git a/ext/js/pages/permissions-main.js b/ext/js/pages/permissions-main.js index b242ff63..ff614880 100644 --- a/ext/js/pages/permissions-main.js +++ b/ext/js/pages/permissions-main.js @@ -18,7 +18,7 @@  import {log, promiseTimeout} from '../core.js';  import {DocumentFocusController} from '../dom/document-focus-controller.js'; -import {yomichan} from '../yomichan.js'; +import {yomitan} from '../yomitan.js';  import {ExtensionContentController} from './common/extension-content-controller.js';  import {ModalController} from './settings/modal-controller.js';  import {PermissionsOriginController} from './settings/permissions-origin-controller.js'; @@ -29,7 +29,7 @@ import {SettingsDisplayController} from './settings/settings-display-controller.  async function setupEnvironmentInfo() {      const {manifest_version: manifestVersion} = chrome.runtime.getManifest(); -    const {browser, platform} = await yomichan.api.getEnvironmentInfo(); +    const {browser, platform} = await yomitan.api.getEnvironmentInfo();      document.documentElement.dataset.browser = browser;      document.documentElement.dataset.os = platform.os;      document.documentElement.dataset.manifestVersion = `${manifestVersion}`; @@ -73,7 +73,7 @@ function setupPermissionsToggles() {          setupPermissionsToggles(); -        await yomichan.prepare(); +        await yomitan.prepare();          setupEnvironmentInfo(); diff --git a/ext/js/pages/settings/anki-controller.js b/ext/js/pages/settings/anki-controller.js index 0ad047aa..8164b8f6 100644 --- a/ext/js/pages/settings/anki-controller.js +++ b/ext/js/pages/settings/anki-controller.js @@ -21,7 +21,7 @@ import {EventListenerCollection, log} from '../../core.js';  import {AnkiUtil} from '../../data/anki-util.js';  import {SelectorObserver} from '../../dom/selector-observer.js';  import {ObjectPropertyAccessor} from '../../general/object-property-accessor.js'; -import {yomichan} from '../../yomichan.js'; +import {yomitan} from '../../yomitan.js';  export class AnkiController {      constructor(settingsController) { @@ -394,7 +394,7 @@ export class AnkiController {          let noteId = null;          for (const query of queries) { -            const notes = await yomichan.api.findAnkiNotes(query); +            const notes = await yomitan.api.findAnkiNotes(query);              if (notes.length > 0) {                  noteId = notes[0];                  break; @@ -405,7 +405,7 @@ export class AnkiController {              throw new Error('Could not find a note to test with');          } -        await yomichan.api.noteView(noteId, mode, false); +        await yomitan.api.noteView(noteId, mode, false);      }      _setAnkiNoteViewerStatus(visible, error) { diff --git a/ext/js/pages/settings/anki-templates-controller.js b/ext/js/pages/settings/anki-templates-controller.js index 83b1b0bb..ac8a0205 100644 --- a/ext/js/pages/settings/anki-templates-controller.js +++ b/ext/js/pages/settings/anki-templates-controller.js @@ -19,7 +19,7 @@  import {isObject} from '../../core.js';  import {AnkiNoteBuilder} from '../../data/anki-note-builder.js';  import {JapaneseUtil} from '../../language/sandbox/japanese-util.js'; -import {yomichan} from '../../yomichan.js'; +import {yomitan} from '../../yomitan.js';  export class AnkiTemplatesController {      constructor(settingsController, modalController, ankiController) { @@ -38,7 +38,7 @@ export class AnkiTemplatesController {      }      async prepare() { -        this._defaultFieldTemplates = await yomichan.api.getDefaultAnkiFieldTemplates(); +        this._defaultFieldTemplates = await yomitan.api.getDefaultAnkiFieldTemplates();          this._fieldTemplatesTextarea = document.querySelector('#anki-card-templates-textarea');          this._compileResultInfo = document.querySelector('#anki-card-templates-compile-result'); @@ -136,7 +136,7 @@ export class AnkiTemplatesController {      async _getDictionaryEntry(text, optionsContext) {          if (this._cachedDictionaryEntryText !== text) { -            const {dictionaryEntries} = await yomichan.api.termsFind(text, {}, optionsContext); +            const {dictionaryEntries} = await yomitan.api.termsFind(text, {}, optionsContext);              if (dictionaryEntries.length === 0) { return null; }              this._cachedDictionaryEntryValue = dictionaryEntries[0]; diff --git a/ext/js/pages/settings/backup-controller.js b/ext/js/pages/settings/backup-controller.js index 115b7581..2863c505 100644 --- a/ext/js/pages/settings/backup-controller.js +++ b/ext/js/pages/settings/backup-controller.js @@ -20,7 +20,7 @@ import {Dexie} from '../../../lib/dexie.js';  import {isObject, log} from '../../core.js';  import {OptionsUtil} from '../../data/options-util.js';  import {ArrayBufferUtil} from '../../data/sandbox/array-buffer-util.js'; -import {yomichan} from '../../yomichan.js'; +import {yomitan} from '../../yomitan.js';  import {DictionaryController} from './dictionary-controller.js';  export class BackupController { @@ -95,8 +95,8 @@ export class BackupController {      async _getSettingsExportData(date) {          const optionsFull = await this._settingsController.getOptionsFull(); -        const environment = await yomichan.api.getEnvironmentInfo(); -        const fieldTemplatesDefault = await yomichan.api.getDefaultAnkiFieldTemplates(); +        const environment = await yomitan.api.getEnvironmentInfo(); +        const fieldTemplatesDefault = await yomitan.api.getDefaultAnkiFieldTemplates();          const permissions = await this._settingsController.permissionsUtil.getAllPermissions();          // Format options @@ -503,10 +503,10 @@ export class BackupController {      }      async _importDatabase(databaseName, file) { -        await yomichan.api.purgeDatabase(); +        await yomitan.api.purgeDatabase();          await Dexie.import(file, {progressCallback: this._databaseImportProgressCallback}); -        yomichan.api.triggerDatabaseUpdated('dictionary', 'import'); -        yomichan.trigger('storageChanged'); +        yomitan.api.triggerDatabaseUpdated('dictionary', 'import'); +        yomitan.trigger('storageChanged');      }      _onSettingsImportDatabaseClick() { diff --git a/ext/js/pages/settings/collapsible-dictionary-controller.js b/ext/js/pages/settings/collapsible-dictionary-controller.js index 37d5e6c9..c8ce5e4f 100644 --- a/ext/js/pages/settings/collapsible-dictionary-controller.js +++ b/ext/js/pages/settings/collapsible-dictionary-controller.js @@ -17,7 +17,7 @@   */  import {EventListenerCollection} from '../../core.js'; -import {yomichan} from '../../yomichan.js'; +import {yomitan} from '../../yomitan.js';  export class CollapsibleDictionaryController {      constructor(settingsController) { @@ -35,7 +35,7 @@ export class CollapsibleDictionaryController {          await this._onDatabaseUpdated(); -        yomichan.on('databaseUpdated', this._onDatabaseUpdated.bind(this)); +        yomitan.on('databaseUpdated', this._onDatabaseUpdated.bind(this));          this._settingsController.on('optionsChanged', this._onOptionsChanged.bind(this));          this._settingsController.on('dictionarySettingsReordered', this._onDictionarySettingsReordered.bind(this));      } diff --git a/ext/js/pages/settings/dictionary-controller.js b/ext/js/pages/settings/dictionary-controller.js index 05f4f396..155ce55e 100644 --- a/ext/js/pages/settings/dictionary-controller.js +++ b/ext/js/pages/settings/dictionary-controller.js @@ -18,7 +18,7 @@  import {EventListenerCollection, log} from '../../core.js';  import {DictionaryWorker} from '../../language/dictionary-worker.js'; -import {yomichan} from '../../yomichan.js'; +import {yomitan} from '../../yomitan.js';  class DictionaryEntry {      constructor(dictionaryController, fragment, index, dictionaryInfo) { @@ -284,7 +284,7 @@ export class DictionaryController {          this._deleteDictionaryModal = this._modalController.getModal('dictionary-confirm-delete');          this._allCheckbox = document.querySelector('#all-dictionaries-enabled'); -        yomichan.on('databaseUpdated', this._onDatabaseUpdated.bind(this)); +        yomitan.on('databaseUpdated', this._onDatabaseUpdated.bind(this));          this._settingsController.on('optionsChanged', this._onOptionsChanged.bind(this));          this._allCheckbox.addEventListener('change', this._onAllCheckboxChange.bind(this), false);          document.querySelector('#dictionary-confirm-delete-button').addEventListener('click', this._onDictionaryConfirmDelete.bind(this), false); @@ -681,7 +681,7 @@ export class DictionaryController {      async _deleteDictionaryInternal(dictionaryTitle, onProgress) {          await new DictionaryWorker().deleteDictionary(dictionaryTitle, onProgress); -        yomichan.api.triggerDatabaseUpdated('dictionary', 'delete'); +        yomitan.api.triggerDatabaseUpdated('dictionary', 'delete');      }      async _deleteDictionarySettings(dictionaryTitle) { @@ -706,7 +706,7 @@ export class DictionaryController {      }      _triggerStorageChanged() { -        yomichan.trigger('storageChanged'); +        yomitan.trigger('storageChanged');      }      _updateDictionaryEntryCount() { diff --git a/ext/js/pages/settings/dictionary-import-controller.js b/ext/js/pages/settings/dictionary-import-controller.js index 57fe1cd4..12d29a6f 100644 --- a/ext/js/pages/settings/dictionary-import-controller.js +++ b/ext/js/pages/settings/dictionary-import-controller.js @@ -18,7 +18,7 @@  import {deserializeError, log} from '../../core.js';  import {DictionaryWorker} from '../../language/dictionary-worker.js'; -import {yomichan} from '../../yomichan.js'; +import {yomitan} from '../../yomitan.js';  import {DictionaryController} from './dictionary-controller.js';  export class DictionaryImportController { @@ -99,7 +99,7 @@ export class DictionaryImportController {              this._setSpinnerVisible(true);              if (purgeNotification !== null) { purgeNotification.hidden = false; } -            await yomichan.api.purgeDatabase(); +            await yomitan.api.purgeDatabase();              const errors = await this._clearDictionarySettings();              if (errors.length > 0) { @@ -215,7 +215,7 @@ export class DictionaryImportController {      async _importDictionary(file, importDetails, onProgress) {          const archiveContent = await this._readFile(file);          const {result, errors} = await new DictionaryWorker().importDictionary(archiveContent, importDetails, onProgress); -        yomichan.api.triggerDatabaseUpdated('dictionary', 'import'); +        yomitan.api.triggerDatabaseUpdated('dictionary', 'import');          const errors2 = await this._addDictionarySettings(result.sequenced, result.title);          if (errors.length > 0) { @@ -346,6 +346,6 @@ export class DictionaryImportController {      }      _triggerStorageChanged() { -        yomichan.trigger('storageChanged'); +        yomitan.trigger('storageChanged');      }  } diff --git a/ext/js/pages/settings/extension-keyboard-shortcuts-controller.js b/ext/js/pages/settings/extension-keyboard-shortcuts-controller.js index 6e84fa0e..4f3ed569 100644 --- a/ext/js/pages/settings/extension-keyboard-shortcuts-controller.js +++ b/ext/js/pages/settings/extension-keyboard-shortcuts-controller.js @@ -18,7 +18,7 @@  import {EventListenerCollection, isObject} from '../../core.js';  import {HotkeyUtil} from '../../input/hotkey-util.js'; -import {yomichan} from '../../yomichan.js'; +import {yomitan} from '../../yomitan.js';  import {KeyboardMouseInputField} from './keyboard-mouse-input-field.js';  export class ExtensionKeyboardShortcutController { @@ -53,7 +53,7 @@ export class ExtensionKeyboardShortcutController {              this._clearButton.addEventListener('click', this._onClearClick.bind(this));          } -        const {platform: {os}} = await yomichan.api.getEnvironmentInfo(); +        const {platform: {os}} = await yomitan.api.getEnvironmentInfo();          this._os = os;          this._hotkeyUtil.os = os; diff --git a/ext/js/pages/settings/keyboard-shortcuts-controller.js b/ext/js/pages/settings/keyboard-shortcuts-controller.js index 3f91d2f9..e7ad4d15 100644 --- a/ext/js/pages/settings/keyboard-shortcuts-controller.js +++ b/ext/js/pages/settings/keyboard-shortcuts-controller.js @@ -19,7 +19,7 @@  import {EventListenerCollection} from '../../core.js';  import {DocumentUtil} from '../../dom/document-util.js';  import {ObjectPropertyAccessor} from '../../general/object-property-accessor.js'; -import {yomichan} from '../../yomichan.js'; +import {yomitan} from '../../yomitan.js';  import {KeyboardMouseInputField} from './keyboard-mouse-input-field.js';  export class KeyboardShortcutController { @@ -63,7 +63,7 @@ export class KeyboardShortcutController {      }      async prepare() { -        const {platform: {os}} = await yomichan.api.getEnvironmentInfo(); +        const {platform: {os}} = await yomitan.api.getEnvironmentInfo();          this._os = os;          this._addButton = document.querySelector('#hotkey-list-add'); diff --git a/ext/js/pages/settings/mecab-controller.js b/ext/js/pages/settings/mecab-controller.js index 6f9f15ed..a839fc21 100644 --- a/ext/js/pages/settings/mecab-controller.js +++ b/ext/js/pages/settings/mecab-controller.js @@ -16,7 +16,7 @@   * along with this program.  If not, see <https://www.gnu.org/licenses/>.   */ -import {yomichan} from '../../yomichan.js'; +import {yomitan} from '../../yomitan.js';  export class MecabController {      constructor(settingsController) { @@ -48,7 +48,7 @@ export class MecabController {              this._testButton.disabled = true;              this._resultsContainer.textContent = '';              this._resultsContainer.hidden = true; -            await yomichan.api.testMecab(); +            await yomitan.api.testMecab();              this._setStatus('Connection was successful', false);          } catch (e) {              this._setStatus(e.message, true); diff --git a/ext/js/pages/settings/persistent-storage-controller.js b/ext/js/pages/settings/persistent-storage-controller.js index 1c3bc276..aa060c14 100644 --- a/ext/js/pages/settings/persistent-storage-controller.js +++ b/ext/js/pages/settings/persistent-storage-controller.js @@ -17,7 +17,7 @@   */  import {isObject} from '../../core.js'; -import {yomichan} from '../../yomichan.js'; +import {yomitan} from '../../yomitan.js';  export class PersistentStorageController {      constructor() { @@ -71,7 +71,7 @@ export class PersistentStorageController {          const node = document.querySelector('#storage-persistent-fail-warning');          if (node !== null) { node.hidden = isStoragePeristent; } -        yomichan.trigger('storageChanged'); +        yomitan.trigger('storageChanged');      }      _isPersistentStorageSupported() { diff --git a/ext/js/pages/settings/popup-preview-frame-main.js b/ext/js/pages/settings/popup-preview-frame-main.js index 0b69fea0..59e409c5 100644 --- a/ext/js/pages/settings/popup-preview-frame-main.js +++ b/ext/js/pages/settings/popup-preview-frame-main.js @@ -19,14 +19,14 @@  import {PopupFactory} from '../../app/popup-factory.js';  import {log} from '../../core.js';  import {HotkeyHandler} from '../../input/hotkey-handler.js'; -import {yomichan} from '../../yomichan.js'; +import {yomitan} from '../../yomitan.js';  import {PopupPreviewFrame} from './popup-preview-frame.js';  (async () => {      try { -        await yomichan.prepare(); +        await yomitan.prepare(); -        const {tabId, frameId} = await yomichan.api.frameInformationGet(); +        const {tabId, frameId} = await yomitan.api.frameInformationGet();          const hotkeyHandler = new HotkeyHandler();          hotkeyHandler.prepare(); diff --git a/ext/js/pages/settings/popup-preview-frame.js b/ext/js/pages/settings/popup-preview-frame.js index c0d4358d..7a1a0b3a 100644 --- a/ext/js/pages/settings/popup-preview-frame.js +++ b/ext/js/pages/settings/popup-preview-frame.js @@ -19,7 +19,7 @@  import * as wanakana from '../../../lib/wanakana.js';  import {Frontend} from '../../app/frontend.js';  import {TextSourceRange} from '../../dom/text-source-range.js'; -import {yomichan} from '../../yomichan.js'; +import {yomitan} from '../../yomitan.js';  export class PopupPreviewFrame {      constructor(tabId, frameId, popupFactory, hotkeyHandler) { @@ -62,8 +62,8 @@ export class PopupPreviewFrame {          this._exampleTextInput.addEventListener('input', this._onExampleTextInputInput.bind(this), false);          // Overwrite API functions -        this._apiOptionsGetOld = yomichan.api.optionsGet.bind(yomichan.api); -        yomichan.api.optionsGet = this._apiOptionsGet.bind(this); +        this._apiOptionsGetOld = yomitan.api.optionsGet.bind(yomitan.api); +        yomitan.api.optionsGet = this._apiOptionsGet.bind(this);          // Overwrite frontend          this._frontend = new Frontend({ diff --git a/ext/js/pages/settings/popup-window-controller.js b/ext/js/pages/settings/popup-window-controller.js index 6f4d9ec3..9b6708d5 100644 --- a/ext/js/pages/settings/popup-window-controller.js +++ b/ext/js/pages/settings/popup-window-controller.js @@ -16,7 +16,7 @@   * along with this program.  If not, see <https://www.gnu.org/licenses/>.   */ -import {yomichan} from '../../yomichan.js'; +import {yomitan} from '../../yomitan.js';  export class PopupWindowController {      prepare() { @@ -32,6 +32,6 @@ export class PopupWindowController {      }      async _testWindowOpen() { -        await yomichan.api.getOrCreateSearchPopup({focus: true}); +        await yomitan.api.getOrCreateSearchPopup({focus: true});      }  } diff --git a/ext/js/pages/settings/profile-controller.js b/ext/js/pages/settings/profile-controller.js index a4a64e60..a5bf41b3 100644 --- a/ext/js/pages/settings/profile-controller.js +++ b/ext/js/pages/settings/profile-controller.js @@ -17,7 +17,7 @@   */  import {clone, EventListenerCollection} from '../../core.js'; -import {yomichan} from '../../yomichan.js'; +import {yomitan} from '../../yomitan.js';  import {ProfileConditionsUI} from './profile-conditions-ui.js';  export class ProfileController { @@ -53,7 +53,7 @@ export class ProfileController {      }      async prepare() { -        const {platform: {os}} = await yomichan.api.getEnvironmentInfo(); +        const {platform: {os}} = await yomitan.api.getEnvironmentInfo();          this._profileConditionsUI.os = os;          this._profileActiveSelect = document.querySelector('#profile-active-select'); diff --git a/ext/js/pages/settings/scan-inputs-controller.js b/ext/js/pages/settings/scan-inputs-controller.js index ea8d500a..252e7238 100644 --- a/ext/js/pages/settings/scan-inputs-controller.js +++ b/ext/js/pages/settings/scan-inputs-controller.js @@ -17,7 +17,7 @@   */  import {EventListenerCollection} from '../../core.js'; -import {yomichan} from '../../yomichan.js'; +import {yomitan} from '../../yomitan.js';  import {KeyboardMouseInputField} from './keyboard-mouse-input-field.js';  export class ScanInputsController { @@ -31,7 +31,7 @@ export class ScanInputsController {      }      async prepare() { -        const {platform: {os}} = await yomichan.api.getEnvironmentInfo(); +        const {platform: {os}} = await yomitan.api.getEnvironmentInfo();          this._os = os;          this._container = document.querySelector('#scan-input-list'); diff --git a/ext/js/pages/settings/scan-inputs-simple-controller.js b/ext/js/pages/settings/scan-inputs-simple-controller.js index 79ffb773..112c03a9 100644 --- a/ext/js/pages/settings/scan-inputs-simple-controller.js +++ b/ext/js/pages/settings/scan-inputs-simple-controller.js @@ -17,7 +17,7 @@   */  import {HotkeyUtil} from '../../input/hotkey-util.js'; -import {yomichan} from '../../yomichan.js'; +import {yomitan} from '../../yomitan.js';  import {ScanInputsController} from './scan-inputs-controller.js';  export class ScanInputsSimpleController { @@ -33,7 +33,7 @@ export class ScanInputsSimpleController {          this._middleMouseButtonScan = document.querySelector('#middle-mouse-button-scan');          this._mainScanModifierKeyInput = document.querySelector('#main-scan-modifier-key'); -        const {platform: {os}} = await yomichan.api.getEnvironmentInfo(); +        const {platform: {os}} = await yomitan.api.getEnvironmentInfo();          this._hotkeyUtil.os = os;          this._mainScanModifierKeyInputHasOther = false; diff --git a/ext/js/pages/settings/secondary-search-dictionary-controller.js b/ext/js/pages/settings/secondary-search-dictionary-controller.js index 30575526..cc873901 100644 --- a/ext/js/pages/settings/secondary-search-dictionary-controller.js +++ b/ext/js/pages/settings/secondary-search-dictionary-controller.js @@ -17,7 +17,7 @@   */  import {EventListenerCollection} from '../../core.js'; -import {yomichan} from '../../yomichan.js'; +import {yomitan} from '../../yomitan.js';  export class SecondarySearchDictionaryController {      constructor(settingsController) { @@ -33,7 +33,7 @@ export class SecondarySearchDictionaryController {          await this._onDatabaseUpdated(); -        yomichan.on('databaseUpdated', this._onDatabaseUpdated.bind(this)); +        yomitan.on('databaseUpdated', this._onDatabaseUpdated.bind(this));          this._settingsController.on('optionsChanged', this._onOptionsChanged.bind(this));          this._settingsController.on('dictionarySettingsReordered', this._onDictionarySettingsReordered.bind(this));      } diff --git a/ext/js/pages/settings/settings-controller.js b/ext/js/pages/settings/settings-controller.js index 6f83c4c0..83ccdb39 100644 --- a/ext/js/pages/settings/settings-controller.js +++ b/ext/js/pages/settings/settings-controller.js @@ -20,7 +20,7 @@ import {EventDispatcher, EventListenerCollection, generateId, isObject} from '..  import {OptionsUtil} from '../../data/options-util.js';  import {PermissionsUtil} from '../../data/permissions-util.js';  import {HtmlTemplateCollection} from '../../dom/html-template-collection.js'; -import {yomichan} from '../../yomichan.js'; +import {yomitan} from '../../yomitan.js';  export class SettingsController extends EventDispatcher {      constructor() { @@ -51,7 +51,7 @@ export class SettingsController extends EventDispatcher {      }      async prepare() { -        yomichan.on('optionsUpdated', this._onOptionsUpdated.bind(this)); +        yomitan.on('optionsUpdated', this._onOptionsUpdated.bind(this));          if (this._canObservePermissionsChanges()) {              chrome.permissions.onAdded.addListener(this._onPermissionsChanged.bind(this));              chrome.permissions.onRemoved.addListener(this._onPermissionsChanged.bind(this)); @@ -69,16 +69,16 @@ export class SettingsController extends EventDispatcher {      async getOptions() {          const optionsContext = this.getOptionsContext(); -        return await yomichan.api.optionsGet(optionsContext); +        return await yomitan.api.optionsGet(optionsContext);      }      async getOptionsFull() { -        return await yomichan.api.optionsGetFull(); +        return await yomitan.api.optionsGetFull();      }      async setAllSettings(value) {          const profileIndex = value.profileCurrent; -        await yomichan.api.setAllSettings(value, this._source); +        await yomitan.api.setAllSettings(value, this._source);          this._setProfileIndex(profileIndex, true);      } @@ -115,7 +115,7 @@ export class SettingsController extends EventDispatcher {      }      async getDictionaryInfo() { -        return await yomichan.api.getDictionaryInfo(); +        return await yomitan.api.getDictionaryInfo();      }      getOptionsContext() { @@ -186,12 +186,12 @@ export class SettingsController extends EventDispatcher {      async _getSettings(targets, extraFields) {          targets = this._setupTargets(targets, extraFields); -        return await yomichan.api.getSettings(targets); +        return await yomitan.api.getSettings(targets);      }      async _modifySettings(targets, extraFields) {          targets = this._setupTargets(targets, extraFields); -        return await yomichan.api.modifySettings(targets, this._source); +        return await yomitan.api.modifySettings(targets, this._source);      }      _onBeforeUnload(e) { diff --git a/ext/js/pages/settings/settings-main.js b/ext/js/pages/settings/settings-main.js index 1cd0b0a9..f9ea0aa1 100644 --- a/ext/js/pages/settings/settings-main.js +++ b/ext/js/pages/settings/settings-main.js @@ -18,7 +18,7 @@  import {log} from '../../core.js';  import {DocumentFocusController} from '../../dom/document-focus-controller.js'; -import {yomichan} from '../../yomichan.js'; +import {yomitan} from '../../yomitan.js';  import {ExtensionContentController} from '../common/extension-content-controller.js';  import {AnkiController} from './anki-controller.js';  import {AnkiTemplatesController} from './anki-templates-controller.js'; @@ -70,7 +70,7 @@ async function setupGenericSettingsController(genericSettingController) {              document.documentElement.dataset.loadingStalled = 'true';          }, 1000); -        await yomichan.prepare(); +        await yomitan.prepare();          if (prepareTimer !== null) {              clearTimeout(prepareTimer); diff --git a/ext/js/pages/settings/sort-frequency-dictionary-controller.js b/ext/js/pages/settings/sort-frequency-dictionary-controller.js index c946400f..53104085 100644 --- a/ext/js/pages/settings/sort-frequency-dictionary-controller.js +++ b/ext/js/pages/settings/sort-frequency-dictionary-controller.js @@ -16,7 +16,7 @@   * along with this program.  If not, see <https://www.gnu.org/licenses/>.   */ -import {yomichan} from '../../yomichan.js'; +import {yomitan} from '../../yomitan.js';  export class SortFrequencyDictionaryController {      constructor(settingsController) { @@ -36,7 +36,7 @@ export class SortFrequencyDictionaryController {          await this._onDatabaseUpdated(); -        yomichan.on('databaseUpdated', this._onDatabaseUpdated.bind(this)); +        yomitan.on('databaseUpdated', this._onDatabaseUpdated.bind(this));          this._settingsController.on('optionsChanged', this._onOptionsChanged.bind(this));          this._sortFrequencyDictionarySelect.addEventListener('change', this._onSortFrequencyDictionarySelectChange.bind(this));          this._sortFrequencyDictionaryOrderSelect.addEventListener('change', this._onSortFrequencyDictionaryOrderSelectChange.bind(this)); @@ -124,7 +124,7 @@ export class SortFrequencyDictionaryController {          const lessCommonTerms = ['行なう', '論じる', '過す', '行方', '人口', '猫', '犬', '滝', '理', '暁'];          const terms = [...moreCommonTerms, ...lessCommonTerms]; -        const frequencies = await yomichan.api.getTermFrequencies( +        const frequencies = await yomitan.api.getTermFrequencies(              terms.map((term) => ({term, reading: null})),              [dictionary]          ); diff --git a/ext/js/pages/settings/storage-controller.js b/ext/js/pages/settings/storage-controller.js index 8bc63725..ba1145b8 100644 --- a/ext/js/pages/settings/storage-controller.js +++ b/ext/js/pages/settings/storage-controller.js @@ -16,7 +16,7 @@   * along with this program.  If not, see <https://www.gnu.org/licenses/>.   */ -import {yomichan} from '../../yomichan.js'; +import {yomitan} from '../../yomitan.js';  export class StorageController {      constructor(persistentStorageController) { @@ -41,7 +41,7 @@ export class StorageController {          this._storageUseInvalidNodes = document.querySelectorAll('.storage-use-invalid');          document.querySelector('#storage-refresh').addEventListener('click', this._onStorageRefreshButtonClick.bind(this), false); -        yomichan.on('storageChanged', this._onStorageChanged.bind(this)); +        yomitan.on('storageChanged', this._onStorageChanged.bind(this));          this._updateStats();      } diff --git a/ext/js/pages/welcome-main.js b/ext/js/pages/welcome-main.js index d2596921..b1438187 100644 --- a/ext/js/pages/welcome-main.js +++ b/ext/js/pages/welcome-main.js @@ -18,7 +18,7 @@  import {log} from '../core.js';  import {DocumentFocusController} from '../dom/document-focus-controller.js'; -import {yomichan} from '../yomichan.js'; +import {yomitan} from '../yomitan.js';  import {ExtensionContentController} from './common/extension-content-controller.js';  import {DictionaryController} from './settings/dictionary-controller.js';  import {DictionaryImportController} from './settings/dictionary-import-controller.js'; @@ -32,7 +32,7 @@ import {StatusFooter} from './settings/status-footer.js';  async function setupEnvironmentInfo() {      const {manifest_version: manifestVersion} = chrome.runtime.getManifest(); -    const {browser, platform} = await yomichan.api.getEnvironmentInfo(); +    const {browser, platform} = await yomitan.api.getEnvironmentInfo();      document.documentElement.dataset.browser = browser;      document.documentElement.dataset.os = platform.os;      document.documentElement.dataset.manifestVersion = `${manifestVersion}`; @@ -54,7 +54,7 @@ async function setupGenericSettingsController(genericSettingController) {          const statusFooter = new StatusFooter(document.querySelector('.status-footer-container'));          statusFooter.prepare(); -        await yomichan.prepare(); +        await yomitan.prepare();          setupEnvironmentInfo(); diff --git a/ext/js/script/dynamic-loader-sentinel.js b/ext/js/script/dynamic-loader-sentinel.js index d549808e..3c06fc02 100644 --- a/ext/js/script/dynamic-loader-sentinel.js +++ b/ext/js/script/dynamic-loader-sentinel.js @@ -16,6 +16,7 @@   * along with this program.  If not, see <https://www.gnu.org/licenses/>.   */ -import {yomichan} from '../yomichan.js'; +import {yomitan} from '../yomitan.js'; -yomichan.trigger('dynamicLoaderSentinel', {script: import.meta.url}); + +yomitan.trigger('dynamicLoaderSentinel', {script: import.meta.url}); diff --git a/ext/js/script/dynamic-loader.js b/ext/js/script/dynamic-loader.js index ffce04c1..2abc9e04 100644 --- a/ext/js/script/dynamic-loader.js +++ b/ext/js/script/dynamic-loader.js @@ -16,7 +16,7 @@   * along with this program.  If not, see <https://www.gnu.org/licenses/>.   */ -import {yomichan} from '../yomichan.js'; +import {yomitan} from '../yomitan.js';  export const dynamicLoader = (() => {      const injectedStylesheets = new Map(); @@ -44,7 +44,7 @@ export const dynamicLoader = (() => {      }      async function loadStyle(id, type, value, useWebExtensionApi=false, parentNode=null) { -        if (useWebExtensionApi && yomichan.isExtensionUrl(window.location.href)) { +        if (useWebExtensionApi && yomitan.isExtensionUrl(window.location.href)) {              // Permissions error will occur if trying to use the WebExtension API to inject into an extension page              useWebExtensionApi = false;          } @@ -60,7 +60,7 @@ export const dynamicLoader = (() => {          }          if (type === 'file-content') { -            value = await yomichan.api.getStylesheetContent(value); +            value = await yomitan.api.getStylesheetContent(value);              type = 'code';              useWebExtensionApi = false;          } @@ -72,7 +72,7 @@ export const dynamicLoader = (() => {              }              setInjectedStylesheet(id, parentNode, null); -            await yomichan.api.injectStylesheet(type, value); +            await yomitan.api.injectStylesheet(type, value);              return null;          } @@ -142,11 +142,11 @@ export const dynamicLoader = (() => {          const sentinelEventName = 'dynamicLoaderSentinel';          const sentinelEventCallback = (e) => {              if (e.script !== script.src) { return; } -            yomichan.off(sentinelEventName, sentinelEventCallback); +            yomitan.off(sentinelEventName, sentinelEventCallback);              parent.removeChild(script);              resolve();          }; -        yomichan.on(sentinelEventName, sentinelEventCallback); +        yomitan.on(sentinelEventName, sentinelEventCallback);          try {              script.type = 'module'; @@ -154,7 +154,7 @@ export const dynamicLoader = (() => {              script.src = '/js/script/dynamic-loader-sentinel.js';              parent.appendChild(script);          } catch (e) { -            yomichan.off(sentinelEventName, sentinelEventCallback); +            yomitan.off(sentinelEventName, sentinelEventCallback);              reject(e);          }      } diff --git a/ext/js/yomichan.js b/ext/js/yomitan.js index 985e3f5b..5535aeb6 100644 --- a/ext/js/yomichan.js +++ b/ext/js/yomitan.js @@ -40,9 +40,9 @@ if ((() => {  }  /** - * The Yomichan class is a core component through which various APIs are handled and invoked. + * The Yomitan class is a core component through which various APIs are handled and invoked.   */ -class Yomichan extends EventDispatcher { +class Yomitan extends EventDispatcher {      /**       * Creates a new instance. The instance should not be used until it has been fully prepare()'d.       */ @@ -53,7 +53,7 @@ class Yomichan extends EventDispatcher {              const manifest = chrome.runtime.getManifest();              this._extensionName = `${manifest.name} v${manifest.version}`;          } catch (e) { -            this._extensionName = 'Yomichan'; +            this._extensionName = 'Yomitan';          }          try { @@ -74,12 +74,12 @@ class Yomichan extends EventDispatcher {          this._isBackendReadyPromiseResolve = resolve;          this._messageHandlers = new Map([ -            ['Yomichan.isReady',         {async: false, handler: this._onMessageIsReady.bind(this)}], -            ['Yomichan.backendReady',    {async: false, handler: this._onMessageBackendReady.bind(this)}], -            ['Yomichan.getUrl',          {async: false, handler: this._onMessageGetUrl.bind(this)}], -            ['Yomichan.optionsUpdated',  {async: false, handler: this._onMessageOptionsUpdated.bind(this)}], -            ['Yomichan.databaseUpdated', {async: false, handler: this._onMessageDatabaseUpdated.bind(this)}], -            ['Yomichan.zoomChanged',     {async: false, handler: this._onMessageZoomChanged.bind(this)}] +            ['Yomitan.isReady',         {async: false, handler: this._onMessageIsReady.bind(this)}], +            ['Yomitan.backendReady',    {async: false, handler: this._onMessageBackendReady.bind(this)}], +            ['Yomitan.getUrl',          {async: false, handler: this._onMessageGetUrl.bind(this)}], +            ['Yomitan.optionsUpdated',  {async: false, handler: this._onMessageOptionsUpdated.bind(this)}], +            ['Yomitan.databaseUpdated', {async: false, handler: this._onMessageDatabaseUpdated.bind(this)}], +            ['Yomitan.zoomChanged',     {async: false, handler: this._onMessageZoomChanged.bind(this)}]          ]);      } @@ -144,7 +144,7 @@ class Yomichan extends EventDispatcher {       */      ready() {          this._isReady = true; -        this.sendMessage({action: 'yomichanReady'}); +        this.sendMessage({action: 'yomitanReady'});      }      /** @@ -236,6 +236,6 @@ class Yomichan extends EventDispatcher {  }  /** - * The default Yomichan class instance. + * The default Yomitan class instance.   */ -export const yomichan = new Yomichan(); +export const yomitan = new Yomitan(); |