diff --git a/package-lock.json b/package-lock.json index fffa87653..d47c05de8 100644 --- a/package-lock.json +++ b/package-lock.json @@ -41,6 +41,7 @@ "http-proxy-agent": "7.0.0", "https-proxy-agent": "7.0.2", "image-type": "4.1.0", + "import-sync": "^2.1.2", "ini": "3.0.1", "is-animated": "2.0.2", "is-svg": "4.3.2", @@ -5540,7 +5541,6 @@ "version": "3.2.25", "resolved": "https://registry.npmjs.org/esm/-/esm-3.2.25.tgz", "integrity": "sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA==", - "dev": true, "engines": { "node": ">=6" } @@ -7278,6 +7278,14 @@ "node": ">=8" } }, + "node_modules/import-sync": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/import-sync/-/import-sync-2.1.2.tgz", + "integrity": "sha512-Zz48pnwt7D6HWI/OV2J8FRCtalVJYWvQiJDEatimu9CcqEpNJNYmij9FfY+PktWHgGzTR+Bs9igYxRbKdyMaTQ==", + "dependencies": { + "esm": "^3.2.25" + } + }, "node_modules/imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", @@ -17848,8 +17856,7 @@ "esm": { "version": "3.2.25", "resolved": "https://registry.npmjs.org/esm/-/esm-3.2.25.tgz", - "integrity": "sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA==", - "dev": true + "integrity": "sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA==" }, "espree": { "version": "9.6.1", @@ -19136,6 +19143,14 @@ "resolve-cwd": "^3.0.0" } }, + "import-sync": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/import-sync/-/import-sync-2.1.2.tgz", + "integrity": "sha512-Zz48pnwt7D6HWI/OV2J8FRCtalVJYWvQiJDEatimu9CcqEpNJNYmij9FfY+PktWHgGzTR+Bs9igYxRbKdyMaTQ==", + "requires": { + "esm": "^3.2.25" + } + }, "imurmurhash": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", diff --git a/package.json b/package.json index e098f28b0..7dbe23c5e 100644 --- a/package.json +++ b/package.json @@ -68,6 +68,7 @@ "http-proxy-agent": "7.0.0", "https-proxy-agent": "7.0.2", "image-type": "4.1.0", + "import-sync": "^2.1.2", "ini": "3.0.1", "is-animated": "2.0.2", "is-svg": "4.3.2", diff --git a/src/becca/becca.js b/src/becca/becca.js index b7f6c0e58..683135ad2 100644 --- a/src/becca/becca.js +++ b/src/becca/becca.js @@ -1,16 +1,7 @@ -"use strict"; - import sql from '../services/sql.js' import NoteSet from '../services/search/note_set.js' import NotFoundError from '../errors/not_found_error.js' - -import BRevision from './entities/brevision.js' // avoiding circular dependency problems - -import BAttachment from './entities/battachment.js' // avoiding circular dependency problems - -import BBlob from './entities/bblob.js' // avoiding circular dependency problems - -import BRecentNote from './entities/brecent_note.js' // avoiding circular dependency problems +import importSync from "import-sync"; /** * Becca is a backend cache of all notes, branches, and attributes. @@ -155,6 +146,7 @@ class Becca { /** @returns {BRevision|null} */ getRevision(revisionId) { const row = sql.getRow("SELECT * FROM revisions WHERE revisionId = ?", [revisionId]); + const BRevision = importSync('./entities/brevision.js'); return row ? new BRevision(row) : null; } @@ -168,6 +160,7 @@ class Becca { JOIN blobs USING (blobId) WHERE attachmentId = ? AND isDeleted = 0` : `SELECT * FROM attachments WHERE attachmentId = ? AND isDeleted = 0`; + const BAttachment = importSync('./entities/battachment.js'); return sql.getRows(query, [attachmentId]) .map(row => new BAttachment(row))[0]; } @@ -183,7 +176,7 @@ class Becca { /** @returns {BAttachment[]} */ getAttachments(attachmentIds) { -// avoiding circular dependency problems + const BAttachment = importSync('./entities/battachment.js'); return sql.getManyRows("SELECT * FROM attachments WHERE attachmentId IN (???) AND isDeleted = 0", attachmentIds) .map(row => new BAttachment(row)); } @@ -191,6 +184,7 @@ class Becca { /** @returns {BBlob|null} */ getBlob(entity) { const row = sql.getRow("SELECT *, LENGTH(content) AS contentLength FROM blobs WHERE blobId = ?", [entity.blobId]); + const BBlob = importSync('./entities/bblob.js'); return row ? new BBlob(row) : null; } @@ -238,12 +232,14 @@ class Becca { /** @returns {BRecentNote[]} */ getRecentNotesFromQuery(query, params = []) { const rows = sql.getRows(query, params); + const BRecentNote = importSync('./entities/brecentnote.js'); return rows.map(row => new BRecentNote(row)); } /** @returns {BRevision[]} */ getRevisionsFromQuery(query, params = []) { const rows = sql.getRows(query, params); + const BRevision = importSync('./entities/brevision.js'); return rows.map(row => new BRevision(row)); } diff --git a/src/becca/becca_loader.js b/src/becca/becca_loader.js index f2c61c2f2..a73cef642 100644 --- a/src/becca/becca_loader.js +++ b/src/becca/becca_loader.js @@ -1,5 +1,3 @@ -"use strict"; - import sql from '../services/sql.js' import eventService from '../services/events.js' import becca from './becca.js' @@ -12,17 +10,14 @@ import BOption from './entities/boption.js' import BEtapiToken from './entities/betapi_token.js' import cls from '../services/cls.js' import entityConstructor from '../becca/entity_constructor.js' - -import services from '../services/options_init.js' - -import services0 from '../services/ws.js' +import importSync from "import-sync"; const beccaLoaded = new Promise((res, rej) => { sqlInit.dbReady.then(() => { cls.init(() => { load(); - services.initStartupOptions(); + importSync('../services/options_init.js').initStartupOptions(); res(); }); @@ -75,7 +70,7 @@ function load() { function reload(reason) { load(); - services0.reloadFrontend(reason || "becca reloaded"); + importSync('../services/ws.js').reloadFrontend(reason || "becca reloaded"); } eventService.subscribeBeccaLoader([eventService.ENTITY_CHANGE_SYNCED], ({entityName, entityRow}) => { diff --git a/src/becca/becca_service.js b/src/becca/becca_service.js index b813bfbf0..f97180c26 100644 --- a/src/becca/becca_service.js +++ b/src/becca/becca_service.js @@ -1,5 +1,3 @@ -"use strict"; - import becca from './becca.js' import cls from '../services/cls.js' import log from '../services/log.js' diff --git a/src/becca/entities/abstract_becca_entity.js b/src/becca/entities/abstract_becca_entity.js index 9fea04986..f258bb885 100644 --- a/src/becca/entities/abstract_becca_entity.js +++ b/src/becca/entities/abstract_becca_entity.js @@ -1,5 +1,3 @@ -"use strict"; - import utils from '../../services/utils.js' import sql from '../../services/sql.js' import entityChangesService from '../../services/entity_changes.js' @@ -9,8 +7,7 @@ import cls from '../../services/cls.js' import log from '../../services/log.js' import protectedSessionService from '../../services/protected_session.js' import blobService from '../../services/blob.js' - -import becca0 from '../becca.js' +import importSync from "import-sync"; let becca = null; @@ -36,7 +33,7 @@ class AbstractBeccaEntity { */ get becca() { if (!becca) { - becca = becca0; + becca = importSync("../becca.js"); } return becca; diff --git a/src/becca/entities/battachment.js b/src/becca/entities/battachment.js index 37b17b339..7e4b7ff99 100644 --- a/src/becca/entities/battachment.js +++ b/src/becca/entities/battachment.js @@ -1,13 +1,10 @@ -"use strict"; - import utils from '../../services/utils.js' import dateUtils from '../../services/date_utils.js' import AbstractBeccaEntity from './abstract_becca_entity.js' import sql from '../../services/sql.js' import protectedSessionService from '../../services/protected_session.js' import log from '../../services/log.js' - -import noteService from '../../services/notes.js' +import importSync from "import-sync"; const attachmentRoleToNoteTypeMapping = { 'image': 'image' @@ -154,6 +151,8 @@ class BAttachment extends AbstractBeccaEntity { if (!this.isContentAvailable()) { // isProtected is the same for attachment throw new Error(`Cannot convert protected attachment outside of protected session`); } + + const noteService = importSync('../../services/notes.js'); const { note, branch } = noteService.createNewNote({ parentNoteId: this.ownerId, title: this.title, diff --git a/src/becca/entities/battribute.js b/src/becca/entities/battribute.js index 9b65945e2..41f15eba7 100644 --- a/src/becca/entities/battribute.js +++ b/src/becca/entities/battribute.js @@ -1,8 +1,5 @@ -"use strict"; - import BNote from './bnote.js' import AbstractBeccaEntity from './abstract_becca_entity.js' -import sql from '../../services/sql.js' import dateUtils from '../../services/date_utils.js' import promotedAttributeDefinitionParser from '../../services/promoted_attribute_definition_parser.js' import { sanitizeAttributeName } from '../../services/sanitize_attribute_name.js'; diff --git a/src/becca/entities/bbranch.js b/src/becca/entities/bbranch.js index 77541618d..46f1094e2 100644 --- a/src/becca/entities/bbranch.js +++ b/src/becca/entities/bbranch.js @@ -1,5 +1,3 @@ -"use strict"; - import BNote from './bnote.js' import AbstractBeccaEntity from './abstract_becca_entity.js' import dateUtils from '../../services/date_utils.js' diff --git a/src/becca/entities/betapi_token.js b/src/becca/entities/betapi_token.js index e912f7715..379887c67 100644 --- a/src/becca/entities/betapi_token.js +++ b/src/becca/entities/betapi_token.js @@ -1,5 +1,3 @@ -"use strict"; - import dateUtils from '../../services/date_utils.js' import AbstractBeccaEntity from './abstract_becca_entity.js' diff --git a/src/becca/entities/bnote.js b/src/becca/entities/bnote.js index bb5d53033..b952d279a 100644 --- a/src/becca/entities/bnote.js +++ b/src/becca/entities/bnote.js @@ -1,5 +1,3 @@ -"use strict"; - import protectedSessionService from '../../services/protected_session.js' import log from '../../services/log.js' import sql from '../../services/sql.js' @@ -8,21 +6,11 @@ import dateUtils from '../../services/date_utils.js' import AbstractBeccaEntity from './abstract_becca_entity.js' import BRevision from './brevision.js' import BAttachment from './battachment.js' +import BAttribute from './battribute.js' import TaskContext from '../../services/task_context.js' import dayjs from "dayjs"; import utc from "dayjs/plugin/utc.js"; -import eventService from '../../services/events.js' -import searchService from '../../services/search/services/search.js' - -import BAttribute from './battribute.js' - -import cloningService from '../../services/cloning.js' - -import noteService from '../../services/notes.js' - - -// needs to be run before branches and attributes are deleted and thus attached relations disappear -import handlers from '../../services/handlers.js' +import importSync from "import-sync"; dayjs.extend(utc); @@ -279,6 +267,7 @@ class BNote extends AbstractBeccaEntity { setContent(content, opts) { this._setContent(content, opts); + const eventService = importSync('../../services/events.js'); eventService.emit(eventService.NOTE_CONTENT_CHANGE, { entity: this }); } @@ -915,6 +904,7 @@ class BNote extends AbstractBeccaEntity { } try { + const searchService = importSync('../../services/search/services/search.js'); const {searchResultNoteIds} = searchService.searchFromNote(this); const becca = this.becca; @@ -1469,6 +1459,7 @@ class BNote extends AbstractBeccaEntity { cloneTo(parentNoteId) { const branch = this.becca.getNote(parentNoteId).getParentBranches()[0]; + const cloningService = importSync('../../services/cloning.js'); return cloningService.cloneNoteToBranch(this.noteId, branch.branchId); } @@ -1539,6 +1530,7 @@ class BNote extends AbstractBeccaEntity { const fixedContent = utils.replaceAll(parentContent, oldNoteUrl, newAttachmentUrl); parentNote.setContent(fixedContent); + const noteService = importSync('../../services/notes.js'); noteService.asyncPostProcessContent(parentNote, fixedContent); // to mark an unused attachment for deletion this.deleteNote(); @@ -1564,6 +1556,8 @@ class BNote extends AbstractBeccaEntity { if (!taskContext) { taskContext = new TaskContext('no-progress-reporting'); } + // needs to be run before branches and attributes are deleted and thus attached relations disappear + const handlers = importSync('../../services/handlers.js'); handlers.runAttachedRelations(this, 'runOnNoteDeletion', this); taskContext.noteDeletionHandlerTriggered = true; diff --git a/src/becca/entities/boption.js b/src/becca/entities/boption.js index 3b43f5e69..a428c9f0f 100644 --- a/src/becca/entities/boption.js +++ b/src/becca/entities/boption.js @@ -1,5 +1,3 @@ -"use strict"; - import dateUtils from '../../services/date_utils.js' import AbstractBeccaEntity from './abstract_becca_entity.js' diff --git a/src/becca/entities/brecent_note.js b/src/becca/entities/brecent_note.js index 889471591..af09fa43e 100644 --- a/src/becca/entities/brecent_note.js +++ b/src/becca/entities/brecent_note.js @@ -1,5 +1,3 @@ -"use strict"; - import dateUtils from '../../services/date_utils.js' import AbstractBeccaEntity from './abstract_becca_entity.js' diff --git a/src/becca/entities/brevision.js b/src/becca/entities/brevision.js index 82931902f..1dad7ceba 100644 --- a/src/becca/entities/brevision.js +++ b/src/becca/entities/brevision.js @@ -1,5 +1,3 @@ -"use strict"; - import protectedSessionService from '../../services/protected_session.js' import utils from '../../services/utils.js' import dateUtils from '../../services/date_utils.js' diff --git a/src/routes/api/app_info.js b/src/routes/api/app_info.js index ec86c79e8..13e066ec4 100644 --- a/src/routes/api/app_info.js +++ b/src/routes/api/app_info.js @@ -1,5 +1,3 @@ -"use strict"; - import appInfo from '../../services/app_info.js' function getAppInfo() { diff --git a/src/routes/api/attributes.js b/src/routes/api/attributes.js index 7b06be2cc..75e05046a 100644 --- a/src/routes/api/attributes.js +++ b/src/routes/api/attributes.js @@ -1,5 +1,3 @@ -"use strict"; - import sql from '../../services/sql.js' import log from '../../services/log.js' import attributeService from '../../services/attributes.js' diff --git a/src/routes/api/autocomplete.js b/src/routes/api/autocomplete.js index 26ed90146..d71e257f3 100644 --- a/src/routes/api/autocomplete.js +++ b/src/routes/api/autocomplete.js @@ -1,5 +1,3 @@ -"use strict"; - import beccaService from '../../becca/becca_service.js' import searchService from '../../services/search/services/search.js' import log from '../../services/log.js' diff --git a/src/routes/api/backend_log.js b/src/routes/api/backend_log.js index e3ea26240..fca7c9586 100644 --- a/src/routes/api/backend_log.js +++ b/src/routes/api/backend_log.js @@ -1,5 +1,3 @@ -"use strict"; - import fs from 'fs'; import dateUtils from '../../services/date_utils.js' import dataDir from '../../services/data_dir.js'; diff --git a/src/routes/api/branches.js b/src/routes/api/branches.js index 477ba91c6..d042332cf 100644 --- a/src/routes/api/branches.js +++ b/src/routes/api/branches.js @@ -1,5 +1,3 @@ -"use strict"; - import sql from '../../services/sql.js' import utils from '../../services/utils.js' import entityChangesService from '../../services/entity_changes.js' diff --git a/src/routes/api/clipper.js b/src/routes/api/clipper.js index f10658c6f..9501739d1 100644 --- a/src/routes/api/clipper.js +++ b/src/routes/api/clipper.js @@ -1,5 +1,3 @@ -"use strict"; - import attributeService from '../../services/attributes.js' import cloneService from '../../services/cloning.js' import noteService from '../../services/notes.js' diff --git a/src/routes/api/cloning.js b/src/routes/api/cloning.js index 22b2722fe..c00811f95 100644 --- a/src/routes/api/cloning.js +++ b/src/routes/api/cloning.js @@ -1,5 +1,3 @@ -"use strict"; - import cloningService from '../../services/cloning.js' function cloneNoteToBranch(req) { diff --git a/src/routes/api/database.js b/src/routes/api/database.js index 29e9e3f15..ce3aac91f 100644 --- a/src/routes/api/database.js +++ b/src/routes/api/database.js @@ -1,5 +1,3 @@ -"use strict"; - import sql from '../../services/sql.js' import log from '../../services/log.js' import backupService from '../../services/backup.js' diff --git a/src/routes/api/export.js b/src/routes/api/export.js index f681e960d..26877a60b 100644 --- a/src/routes/api/export.js +++ b/src/routes/api/export.js @@ -1,5 +1,3 @@ -"use strict"; - import zipExportService from '../../services/export/zip.js' import singleExportService from '../../services/export/single.js' import opmlExportService from '../../services/export/opml.js' diff --git a/src/routes/api/files.js b/src/routes/api/files.js index 84bf0ee89..cbd7048e4 100644 --- a/src/routes/api/files.js +++ b/src/routes/api/files.js @@ -1,5 +1,3 @@ -"use strict"; - import protectedSessionService from '../../services/protected_session.js' import utils from '../../services/utils.js' import log from '../../services/log.js' diff --git a/src/routes/api/image.js b/src/routes/api/image.js index 29a1b7bde..8cf902ea0 100644 --- a/src/routes/api/image.js +++ b/src/routes/api/image.js @@ -1,5 +1,3 @@ -"use strict"; - import imageService from '../../services/image.js' import becca from '../../becca/becca.js' import resourceDir from '../../services/resource_dir.js'; diff --git a/src/routes/api/import.js b/src/routes/api/import.js index b76b17a0b..3960a2462 100644 --- a/src/routes/api/import.js +++ b/src/routes/api/import.js @@ -1,5 +1,3 @@ -"use strict"; - import enexImportService from '../../services/import/enex.js' import opmlImportService from '../../services/import/opml.js' import zipImportService from '../../services/import/zip.js' diff --git a/src/routes/api/keys.js b/src/routes/api/keys.js index dfa5ca65c..153e8bd98 100644 --- a/src/routes/api/keys.js +++ b/src/routes/api/keys.js @@ -1,5 +1,3 @@ -"use strict"; - import keyboardActions from '../../services/keyboard_actions.js' import becca from '../../becca/becca.js' diff --git a/src/routes/api/login.js b/src/routes/api/login.js index e777c09a6..dd19cb78d 100644 --- a/src/routes/api/login.js +++ b/src/routes/api/login.js @@ -1,5 +1,3 @@ -"use strict"; - import options from '../../services/options.js' import utils from '../../services/utils.js' import dateUtils from '../../services/date_utils.js' diff --git a/src/routes/api/note_map.js b/src/routes/api/note_map.js index 27c502d3d..0c2f52bf9 100644 --- a/src/routes/api/note_map.js +++ b/src/routes/api/note_map.js @@ -1,5 +1,3 @@ -"use strict"; - import becca from '../../becca/becca.js' import { JSDOM } from 'jsdom'; diff --git a/src/routes/api/notes.js b/src/routes/api/notes.js index fb68aceea..70b4f23ca 100644 --- a/src/routes/api/notes.js +++ b/src/routes/api/notes.js @@ -1,5 +1,3 @@ -"use strict"; - import noteService from '../../services/notes.js' import eraseService from '../../services/erase.js' import treeService from '../../services/tree.js' diff --git a/src/routes/api/options.js b/src/routes/api/options.js index 2b441ce2e..944f01e3e 100644 --- a/src/routes/api/options.js +++ b/src/routes/api/options.js @@ -1,5 +1,3 @@ -"use strict"; - import optionService from '../../services/options.js' import log from '../../services/log.js' import searchService from '../../services/search/services/search.js' diff --git a/src/routes/api/password.js b/src/routes/api/password.js index 600cdf52f..915b35da4 100644 --- a/src/routes/api/password.js +++ b/src/routes/api/password.js @@ -1,5 +1,3 @@ -"use strict"; - import passwordService from '../../services/encryption/password.js' import ValidationError from '../../errors/validation_error.js' diff --git a/src/routes/api/recent_changes.js b/src/routes/api/recent_changes.js index 8f1df3706..4e87680fd 100644 --- a/src/routes/api/recent_changes.js +++ b/src/routes/api/recent_changes.js @@ -1,5 +1,3 @@ -"use strict"; - import sql from '../../services/sql.js' import protectedSessionService from '../../services/protected_session.js' import noteService from '../../services/notes.js' diff --git a/src/routes/api/recent_notes.js b/src/routes/api/recent_notes.js index 81fc5720d..bf6e6ddc1 100644 --- a/src/routes/api/recent_notes.js +++ b/src/routes/api/recent_notes.js @@ -1,5 +1,3 @@ -"use strict"; - import BRecentNote from '../../becca/entities/brecent_note.js' import sql from '../../services/sql.js' import dateUtils from '../../services/date_utils.js' diff --git a/src/routes/api/revisions.js b/src/routes/api/revisions.js index 67612fb9b..5dd948ef4 100644 --- a/src/routes/api/revisions.js +++ b/src/routes/api/revisions.js @@ -1,5 +1,3 @@ -"use strict"; - import beccaService from '../../becca/becca_service.js' import revisionService from '../../services/revisions.js' import utils from '../../services/utils.js' diff --git a/src/routes/api/script.js b/src/routes/api/script.js index fe81d8a6b..1a50ea920 100644 --- a/src/routes/api/script.js +++ b/src/routes/api/script.js @@ -1,5 +1,3 @@ -"use strict"; - import scriptService from '../../services/script.js' import attributeService from '../../services/attributes.js' import becca from '../../becca/becca.js' diff --git a/src/routes/api/search.js b/src/routes/api/search.js index 4c25901cf..c89133a34 100644 --- a/src/routes/api/search.js +++ b/src/routes/api/search.js @@ -1,5 +1,3 @@ -"use strict"; - import becca from '../../becca/becca.js' import SearchContext from '../../services/search/search_context.js' import searchService from '../../services/search/services/search.js' diff --git a/src/routes/api/sender.js b/src/routes/api/sender.js index 2ef741847..4e3883299 100644 --- a/src/routes/api/sender.js +++ b/src/routes/api/sender.js @@ -1,5 +1,3 @@ -"use strict"; - import imageType from 'image-type'; import imageService from '../../services/image.js' import noteService from '../../services/notes.js' diff --git a/src/routes/api/setup.js b/src/routes/api/setup.js index 175accc5a..9686c13a9 100644 --- a/src/routes/api/setup.js +++ b/src/routes/api/setup.js @@ -1,5 +1,3 @@ -"use strict"; - import sqlInit from '../../services/sql_init.js' import setupService from '../../services/setup.js' import log from '../../services/log.js' diff --git a/src/routes/api/similar_notes.js b/src/routes/api/similar_notes.js index 2cf511b47..1751ff4d9 100644 --- a/src/routes/api/similar_notes.js +++ b/src/routes/api/similar_notes.js @@ -1,5 +1,3 @@ -"use strict"; - import similarityService from '../../becca/similarity.js' import becca from '../../becca/becca.js' diff --git a/src/routes/api/special_notes.js b/src/routes/api/special_notes.js index 89542a4a2..218397382 100644 --- a/src/routes/api/special_notes.js +++ b/src/routes/api/special_notes.js @@ -1,5 +1,3 @@ -"use strict"; - import dateNoteService from '../../services/date_notes.js' import sql from '../../services/sql.js' import cls from '../../services/cls.js' diff --git a/src/routes/api/sql.js b/src/routes/api/sql.js index 7da1adde5..d188f6ace 100644 --- a/src/routes/api/sql.js +++ b/src/routes/api/sql.js @@ -1,5 +1,3 @@ -"use strict"; - import sql from '../../services/sql.js' import becca from '../../becca/becca.js' diff --git a/src/routes/api/sync.js b/src/routes/api/sync.js index e9c726cb3..d860afe55 100644 --- a/src/routes/api/sync.js +++ b/src/routes/api/sync.js @@ -1,5 +1,3 @@ -"use strict"; - import syncService from '../../services/sync.js' import syncUpdateService from '../../services/sync_update.js' import entityChangesService from '../../services/entity_changes.js' diff --git a/src/routes/api/tree.js b/src/routes/api/tree.js index 46ca66a85..3ad30ab09 100644 --- a/src/routes/api/tree.js +++ b/src/routes/api/tree.js @@ -1,5 +1,3 @@ -"use strict"; - import becca from '../../becca/becca.js' import log from '../../services/log.js' import NotFoundError from '../../errors/not_found_error.js' diff --git a/src/routes/index.js b/src/routes/index.js index 10fb74f53..84d22c7e4 100644 --- a/src/routes/index.js +++ b/src/routes/index.js @@ -1,5 +1,3 @@ -"use strict"; - import sql from '../services/sql.js' import attributeService from '../services/attributes.js' import config from '../services/config.js' diff --git a/src/routes/login.js b/src/routes/login.js index 3f1905577..ae25f32ca 100644 --- a/src/routes/login.js +++ b/src/routes/login.js @@ -1,5 +1,3 @@ -"use strict"; - import utils from '../services/utils.js' import optionService from '../services/options.js' import myScryptService from '../services/encryption/my_scrypt.js' diff --git a/src/routes/routes.js b/src/routes/routes.js index 70e7046b9..297b1d206 100644 --- a/src/routes/routes.js +++ b/src/routes/routes.js @@ -1,5 +1,3 @@ -"use strict"; - import utils from '../services/utils.js' import multer from 'multer'; import log from '../services/log.js' diff --git a/src/routes/setup.js b/src/routes/setup.js index e0e12da9f..68deb692e 100644 --- a/src/routes/setup.js +++ b/src/routes/setup.js @@ -1,5 +1,3 @@ -"use strict"; - import sqlInit from '../services/sql_init.js' import setupService from '../services/setup.js' import utils from '../services/utils.js' diff --git a/src/services/app_icon.js b/src/services/app_icon.js index 499d036be..a9d319835 100644 --- a/src/services/app_icon.js +++ b/src/services/app_icon.js @@ -1,5 +1,3 @@ -"use strict"; - import path from 'path'; import resourceDir from './resource_dir.js'; import log from './log.js' diff --git a/src/services/app_info.js b/src/services/app_info.js index 492baee93..fa03788d8 100644 --- a/src/services/app_info.js +++ b/src/services/app_info.js @@ -1,5 +1,3 @@ -"use strict"; - import build from './build.js' import packageJson from '../../package.json' assert { type: 'json' } import dataDir from './data_dir.js'; diff --git a/src/services/attribute_formatter.js b/src/services/attribute_formatter.js index 8d741dc31..fc0e2f739 100644 --- a/src/services/attribute_formatter.js +++ b/src/services/attribute_formatter.js @@ -1,5 +1,3 @@ -"use strict"; - export function formatAttrForSearch(attr, searchWithValue) { let searchStr = ''; diff --git a/src/services/attributes.js b/src/services/attributes.js index 8a73d425e..00004921b 100644 --- a/src/services/attributes.js +++ b/src/services/attributes.js @@ -1,5 +1,3 @@ -"use strict"; - import searchService from './search/services/search.js' import sql from './sql.js' import becca from '../becca/becca.js' diff --git a/src/services/auth.js b/src/services/auth.js index 42d2255f4..ce5670cba 100644 --- a/src/services/auth.js +++ b/src/services/auth.js @@ -1,5 +1,3 @@ -"use strict"; - import etapiTokenService from './etapi_tokens.js' import log from './log.js' import sqlInit from './sql_init.js' diff --git a/src/services/backup.js b/src/services/backup.js index d19ac0465..ab63783de 100644 --- a/src/services/backup.js +++ b/src/services/backup.js @@ -1,5 +1,3 @@ -"use strict"; - import dateUtils from './date_utils.js' import optionService from './options.js' import fs from 'fs-extra'; diff --git a/src/services/cloning.js b/src/services/cloning.js index a4dc4ba2e..4750c446b 100644 --- a/src/services/cloning.js +++ b/src/services/cloning.js @@ -1,5 +1,3 @@ -"use strict"; - import sql from './sql.js' import eventChangesService from './entity_changes.js' import treeService from './tree.js' diff --git a/src/services/config.js b/src/services/config.js index a39e06874..91d3dafaa 100644 --- a/src/services/config.js +++ b/src/services/config.js @@ -1,5 +1,3 @@ -"use strict"; - import ini from 'ini'; import fs from 'fs'; import dataDir from './data_dir.js' diff --git a/src/services/consistency_checks.js b/src/services/consistency_checks.js index a7a39067c..96733d54e 100644 --- a/src/services/consistency_checks.js +++ b/src/services/consistency_checks.js @@ -1,5 +1,3 @@ -"use strict"; - import sql from './sql.js' import sqlInit from './sql_init.js' import log from './log.js' @@ -15,8 +13,7 @@ import utils from '../services/utils.js' import eraseService from '../services/erase.js' import { sanitizeAttributeName } from './sanitize_attribute_name.js'; import services from '../services/note_types.js' - -import becca0 from '../becca/becca_loader.js' +import importSync from "import-sync"; const noteTypes = services.getNoteTypeNames(); @@ -767,7 +764,7 @@ class ConsistencyChecks { } if (this.reloadNeeded) { - becca0.reload("consistency checks need becca reload"); + importSync('../becca/becca_loader.js').reload("consistency checks need becca reload"); } return !this.unrecoveredConsistencyErrors; diff --git a/src/services/content_hash.js b/src/services/content_hash.js index 1727b023c..d331218be 100644 --- a/src/services/content_hash.js +++ b/src/services/content_hash.js @@ -1,5 +1,3 @@ -"use strict"; - import sql from './sql.js' import utils from './utils.js' import log from './log.js' diff --git a/src/services/data_dir.js b/src/services/data_dir.js index ba7fc0071..8e17b2667 100644 --- a/src/services/data_dir.js +++ b/src/services/data_dir.js @@ -1,5 +1,3 @@ -"use strict"; - /* * This file resolves trilium data path in this order of priority: * - if TRILIUM_DATA_DIR environment variable exists, then its value is used as the path diff --git a/src/services/date_notes.js b/src/services/date_notes.js index d9132d93f..e1ab4b43a 100644 --- a/src/services/date_notes.js +++ b/src/services/date_notes.js @@ -1,5 +1,3 @@ -"use strict"; - import noteService from './notes.js' import attributeService from './attributes.js' import dateUtils from './date_utils.js' diff --git a/src/services/encryption/data_encryption.js b/src/services/encryption/data_encryption.js index b3d0172cd..991cee460 100644 --- a/src/services/encryption/data_encryption.js +++ b/src/services/encryption/data_encryption.js @@ -1,5 +1,3 @@ -"use strict"; - import crypto from 'crypto'; import log from '../log.js' diff --git a/src/services/encryption/my_scrypt.js b/src/services/encryption/my_scrypt.js index cc65d752a..fa05f83ca 100644 --- a/src/services/encryption/my_scrypt.js +++ b/src/services/encryption/my_scrypt.js @@ -1,5 +1,3 @@ -"use strict"; - import optionService from '../options.js' import crypto from 'crypto'; diff --git a/src/services/encryption/password.js b/src/services/encryption/password.js index 01bd0bdc1..a060ec42e 100644 --- a/src/services/encryption/password.js +++ b/src/services/encryption/password.js @@ -1,5 +1,3 @@ -"use strict"; - import sql from '../sql.js' import optionService from '../options.js' import myScryptService from './my_scrypt.js' diff --git a/src/services/entity_changes.js b/src/services/entity_changes.js index c30b6bab5..56ea69de9 100644 --- a/src/services/entity_changes.js +++ b/src/services/entity_changes.js @@ -6,8 +6,7 @@ import utils from './utils.js' import instanceId from './instance_id.js' import becca from '../becca/becca.js' import blobService from '../services/blob.js' - -import eventService from './events.js' +import importSync from "import-sync"; let maxEntityChangeId = 0; @@ -54,6 +53,8 @@ function putNoteReorderingEntityChange(parentNoteId, componentId) { componentId, instanceId }); + + const eventService = importSync('./events.js'); eventService.emit(eventService.ENTITY_CHANGED, { entityName: 'note_reordering', entity: sql.getMap(`SELECT branchId, notePosition FROM branches WHERE isDeleted = 0 AND parentNoteId = ?`, [parentNoteId]) diff --git a/src/services/export/md.js b/src/services/export/md.js index 96c3ddd62..4cbad4ddb 100644 --- a/src/services/export/md.js +++ b/src/services/export/md.js @@ -1,5 +1,3 @@ -"use strict"; - import TurndownService from 'turndown'; import turndownPluginGfm from 'joplin-turndown-plugin-gfm'; diff --git a/src/services/export/opml.js b/src/services/export/opml.js index 1f9a950c8..d8a2cf70c 100644 --- a/src/services/export/opml.js +++ b/src/services/export/opml.js @@ -1,5 +1,3 @@ -"use strict"; - import utils from '../utils.js' import becca from '../../becca/becca.js' diff --git a/src/services/export/single.js b/src/services/export/single.js index 5f02177de..c0e7821af 100644 --- a/src/services/export/single.js +++ b/src/services/export/single.js @@ -1,5 +1,3 @@ -"use strict"; - import mimeTypes from 'mime-types'; import html from 'html'; import utils from '../utils.js' diff --git a/src/services/export/zip.js b/src/services/export/zip.js index 7de890ae2..4fc9513ca 100644 --- a/src/services/export/zip.js +++ b/src/services/export/zip.js @@ -1,5 +1,3 @@ -"use strict"; - import html from 'html'; import dateUtils from '../date_utils.js' import path from 'path'; diff --git a/src/services/image.js b/src/services/image.js index 92a266ec8..fdb3c563f 100644 --- a/src/services/image.js +++ b/src/services/image.js @@ -1,5 +1,3 @@ -"use strict"; - import becca from '../becca/becca.js' import log from './log.js' import protectedSessionService from './protected_session.js' diff --git a/src/services/import/markdown.js b/src/services/import/markdown.js index adf658cac..02de0585c 100644 --- a/src/services/import/markdown.js +++ b/src/services/import/markdown.js @@ -1,5 +1,3 @@ -"use strict"; - import { marked } from 'marked'; import htmlSanitizer from '../html_sanitizer.js' import importUtils from './utils.js' diff --git a/src/services/import/mime.js b/src/services/import/mime.js index a44614656..3b1a531ec 100644 --- a/src/services/import/mime.js +++ b/src/services/import/mime.js @@ -1,5 +1,3 @@ -"use strict"; - import mimeTypes from 'mime-types'; import path from 'path'; @@ -111,4 +109,4 @@ export default { getMime, getType, normalizeMimeType -}; \ No newline at end of file +}; diff --git a/src/services/import/opml.js b/src/services/import/opml.js index 8e7452e05..f4627b499 100644 --- a/src/services/import/opml.js +++ b/src/services/import/opml.js @@ -1,5 +1,3 @@ -"use strict"; - import noteService from '../../services/notes.js' import { parseString } from 'xml2js'; import protectedSessionService from '../protected_session.js' diff --git a/src/services/import/single.js b/src/services/import/single.js index 071070f61..4d906adae 100644 --- a/src/services/import/single.js +++ b/src/services/import/single.js @@ -1,5 +1,3 @@ -"use strict"; - import noteService from '../../services/notes.js' import imageService from '../../services/image.js' import protectedSessionService from '../protected_session.js' diff --git a/src/services/import/utils.js b/src/services/import/utils.js index bedb2658e..6ca9f11de 100644 --- a/src/services/import/utils.js +++ b/src/services/import/utils.js @@ -1,5 +1,3 @@ -"use strict"; - function handleH1(content, title) { content = content.replace(/