wip conversion to ES modules

This commit is contained in:
zadam 2023-11-22 00:00:37 +01:00
parent 5205800720
commit 14d16a99d4
120 changed files with 83 additions and 324 deletions

21
package-lock.json generated
View File

@ -41,6 +41,7 @@
"http-proxy-agent": "7.0.0", "http-proxy-agent": "7.0.0",
"https-proxy-agent": "7.0.2", "https-proxy-agent": "7.0.2",
"image-type": "4.1.0", "image-type": "4.1.0",
"import-sync": "^2.1.2",
"ini": "3.0.1", "ini": "3.0.1",
"is-animated": "2.0.2", "is-animated": "2.0.2",
"is-svg": "4.3.2", "is-svg": "4.3.2",
@ -5540,7 +5541,6 @@
"version": "3.2.25", "version": "3.2.25",
"resolved": "https://registry.npmjs.org/esm/-/esm-3.2.25.tgz", "resolved": "https://registry.npmjs.org/esm/-/esm-3.2.25.tgz",
"integrity": "sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA==", "integrity": "sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA==",
"dev": true,
"engines": { "engines": {
"node": ">=6" "node": ">=6"
} }
@ -7278,6 +7278,14 @@
"node": ">=8" "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": { "node_modules/imurmurhash": {
"version": "0.1.4", "version": "0.1.4",
"resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
@ -17848,8 +17856,7 @@
"esm": { "esm": {
"version": "3.2.25", "version": "3.2.25",
"resolved": "https://registry.npmjs.org/esm/-/esm-3.2.25.tgz", "resolved": "https://registry.npmjs.org/esm/-/esm-3.2.25.tgz",
"integrity": "sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA==", "integrity": "sha512-U1suiZ2oDVWv4zPO56S0NcR5QriEahGtdN2OR6FiOG4WJvcjBVFB0qI4+eKoWFH483PKGuLuu6V8Z4T5g63UVA=="
"dev": true
}, },
"espree": { "espree": {
"version": "9.6.1", "version": "9.6.1",
@ -19136,6 +19143,14 @@
"resolve-cwd": "^3.0.0" "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": { "imurmurhash": {
"version": "0.1.4", "version": "0.1.4",
"resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",

View File

@ -68,6 +68,7 @@
"http-proxy-agent": "7.0.0", "http-proxy-agent": "7.0.0",
"https-proxy-agent": "7.0.2", "https-proxy-agent": "7.0.2",
"image-type": "4.1.0", "image-type": "4.1.0",
"import-sync": "^2.1.2",
"ini": "3.0.1", "ini": "3.0.1",
"is-animated": "2.0.2", "is-animated": "2.0.2",
"is-svg": "4.3.2", "is-svg": "4.3.2",

View File

@ -1,16 +1,7 @@
"use strict";
import sql from '../services/sql.js' import sql from '../services/sql.js'
import NoteSet from '../services/search/note_set.js' import NoteSet from '../services/search/note_set.js'
import NotFoundError from '../errors/not_found_error.js' import NotFoundError from '../errors/not_found_error.js'
import importSync from "import-sync";
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
/** /**
* Becca is a backend cache of all notes, branches, and attributes. * Becca is a backend cache of all notes, branches, and attributes.
@ -155,6 +146,7 @@ class Becca {
/** @returns {BRevision|null} */ /** @returns {BRevision|null} */
getRevision(revisionId) { getRevision(revisionId) {
const row = sql.getRow("SELECT * FROM revisions WHERE revisionId = ?", [revisionId]); const row = sql.getRow("SELECT * FROM revisions WHERE revisionId = ?", [revisionId]);
const BRevision = importSync('./entities/brevision.js');
return row ? new BRevision(row) : null; return row ? new BRevision(row) : null;
} }
@ -168,6 +160,7 @@ class Becca {
JOIN blobs USING (blobId) JOIN blobs USING (blobId)
WHERE attachmentId = ? AND isDeleted = 0` WHERE attachmentId = ? AND isDeleted = 0`
: `SELECT * FROM attachments WHERE attachmentId = ? AND isDeleted = 0`; : `SELECT * FROM attachments WHERE attachmentId = ? AND isDeleted = 0`;
const BAttachment = importSync('./entities/battachment.js');
return sql.getRows(query, [attachmentId]) return sql.getRows(query, [attachmentId])
.map(row => new BAttachment(row))[0]; .map(row => new BAttachment(row))[0];
} }
@ -183,7 +176,7 @@ class Becca {
/** @returns {BAttachment[]} */ /** @returns {BAttachment[]} */
getAttachments(attachmentIds) { 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) return sql.getManyRows("SELECT * FROM attachments WHERE attachmentId IN (???) AND isDeleted = 0", attachmentIds)
.map(row => new BAttachment(row)); .map(row => new BAttachment(row));
} }
@ -191,6 +184,7 @@ class Becca {
/** @returns {BBlob|null} */ /** @returns {BBlob|null} */
getBlob(entity) { getBlob(entity) {
const row = sql.getRow("SELECT *, LENGTH(content) AS contentLength FROM blobs WHERE blobId = ?", [entity.blobId]); 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; return row ? new BBlob(row) : null;
} }
@ -238,12 +232,14 @@ class Becca {
/** @returns {BRecentNote[]} */ /** @returns {BRecentNote[]} */
getRecentNotesFromQuery(query, params = []) { getRecentNotesFromQuery(query, params = []) {
const rows = sql.getRows(query, params); const rows = sql.getRows(query, params);
const BRecentNote = importSync('./entities/brecentnote.js');
return rows.map(row => new BRecentNote(row)); return rows.map(row => new BRecentNote(row));
} }
/** @returns {BRevision[]} */ /** @returns {BRevision[]} */
getRevisionsFromQuery(query, params = []) { getRevisionsFromQuery(query, params = []) {
const rows = sql.getRows(query, params); const rows = sql.getRows(query, params);
const BRevision = importSync('./entities/brevision.js');
return rows.map(row => new BRevision(row)); return rows.map(row => new BRevision(row));
} }

View File

@ -1,5 +1,3 @@
"use strict";
import sql from '../services/sql.js' import sql from '../services/sql.js'
import eventService from '../services/events.js' import eventService from '../services/events.js'
import becca from './becca.js' import becca from './becca.js'
@ -12,17 +10,14 @@ import BOption from './entities/boption.js'
import BEtapiToken from './entities/betapi_token.js' import BEtapiToken from './entities/betapi_token.js'
import cls from '../services/cls.js' import cls from '../services/cls.js'
import entityConstructor from '../becca/entity_constructor.js' import entityConstructor from '../becca/entity_constructor.js'
import importSync from "import-sync";
import services from '../services/options_init.js'
import services0 from '../services/ws.js'
const beccaLoaded = new Promise((res, rej) => { const beccaLoaded = new Promise((res, rej) => {
sqlInit.dbReady.then(() => { sqlInit.dbReady.then(() => {
cls.init(() => { cls.init(() => {
load(); load();
services.initStartupOptions(); importSync('../services/options_init.js').initStartupOptions();
res(); res();
}); });
@ -75,7 +70,7 @@ function load() {
function reload(reason) { function reload(reason) {
load(); load();
services0.reloadFrontend(reason || "becca reloaded"); importSync('../services/ws.js').reloadFrontend(reason || "becca reloaded");
} }
eventService.subscribeBeccaLoader([eventService.ENTITY_CHANGE_SYNCED], ({entityName, entityRow}) => { eventService.subscribeBeccaLoader([eventService.ENTITY_CHANGE_SYNCED], ({entityName, entityRow}) => {

View File

@ -1,5 +1,3 @@
"use strict";
import becca from './becca.js' import becca from './becca.js'
import cls from '../services/cls.js' import cls from '../services/cls.js'
import log from '../services/log.js' import log from '../services/log.js'

View File

@ -1,5 +1,3 @@
"use strict";
import utils from '../../services/utils.js' import utils from '../../services/utils.js'
import sql from '../../services/sql.js' import sql from '../../services/sql.js'
import entityChangesService from '../../services/entity_changes.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 log from '../../services/log.js'
import protectedSessionService from '../../services/protected_session.js' import protectedSessionService from '../../services/protected_session.js'
import blobService from '../../services/blob.js' import blobService from '../../services/blob.js'
import importSync from "import-sync";
import becca0 from '../becca.js'
let becca = null; let becca = null;
@ -36,7 +33,7 @@ class AbstractBeccaEntity {
*/ */
get becca() { get becca() {
if (!becca) { if (!becca) {
becca = becca0; becca = importSync("../becca.js");
} }
return becca; return becca;

View File

@ -1,13 +1,10 @@
"use strict";
import utils from '../../services/utils.js' import utils from '../../services/utils.js'
import dateUtils from '../../services/date_utils.js' import dateUtils from '../../services/date_utils.js'
import AbstractBeccaEntity from './abstract_becca_entity.js' import AbstractBeccaEntity from './abstract_becca_entity.js'
import sql from '../../services/sql.js' import sql from '../../services/sql.js'
import protectedSessionService from '../../services/protected_session.js' import protectedSessionService from '../../services/protected_session.js'
import log from '../../services/log.js' import log from '../../services/log.js'
import importSync from "import-sync";
import noteService from '../../services/notes.js'
const attachmentRoleToNoteTypeMapping = { const attachmentRoleToNoteTypeMapping = {
'image': 'image' 'image': 'image'
@ -154,6 +151,8 @@ class BAttachment extends AbstractBeccaEntity {
if (!this.isContentAvailable()) { // isProtected is the same for attachment if (!this.isContentAvailable()) { // isProtected is the same for attachment
throw new Error(`Cannot convert protected attachment outside of protected session`); throw new Error(`Cannot convert protected attachment outside of protected session`);
} }
const noteService = importSync('../../services/notes.js');
const { note, branch } = noteService.createNewNote({ const { note, branch } = noteService.createNewNote({
parentNoteId: this.ownerId, parentNoteId: this.ownerId,
title: this.title, title: this.title,

View File

@ -1,8 +1,5 @@
"use strict";
import BNote from './bnote.js' import BNote from './bnote.js'
import AbstractBeccaEntity from './abstract_becca_entity.js' import AbstractBeccaEntity from './abstract_becca_entity.js'
import sql from '../../services/sql.js'
import dateUtils from '../../services/date_utils.js' import dateUtils from '../../services/date_utils.js'
import promotedAttributeDefinitionParser from '../../services/promoted_attribute_definition_parser.js' import promotedAttributeDefinitionParser from '../../services/promoted_attribute_definition_parser.js'
import { sanitizeAttributeName } from '../../services/sanitize_attribute_name.js'; import { sanitizeAttributeName } from '../../services/sanitize_attribute_name.js';

View File

@ -1,5 +1,3 @@
"use strict";
import BNote from './bnote.js' import BNote from './bnote.js'
import AbstractBeccaEntity from './abstract_becca_entity.js' import AbstractBeccaEntity from './abstract_becca_entity.js'
import dateUtils from '../../services/date_utils.js' import dateUtils from '../../services/date_utils.js'

View File

@ -1,5 +1,3 @@
"use strict";
import dateUtils from '../../services/date_utils.js' import dateUtils from '../../services/date_utils.js'
import AbstractBeccaEntity from './abstract_becca_entity.js' import AbstractBeccaEntity from './abstract_becca_entity.js'

View File

@ -1,5 +1,3 @@
"use strict";
import protectedSessionService from '../../services/protected_session.js' import protectedSessionService from '../../services/protected_session.js'
import log from '../../services/log.js' import log from '../../services/log.js'
import sql from '../../services/sql.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 AbstractBeccaEntity from './abstract_becca_entity.js'
import BRevision from './brevision.js' import BRevision from './brevision.js'
import BAttachment from './battachment.js' import BAttachment from './battachment.js'
import BAttribute from './battribute.js'
import TaskContext from '../../services/task_context.js' import TaskContext from '../../services/task_context.js'
import dayjs from "dayjs"; import dayjs from "dayjs";
import utc from "dayjs/plugin/utc.js"; import utc from "dayjs/plugin/utc.js";
import eventService from '../../services/events.js' import importSync from "import-sync";
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'
dayjs.extend(utc); dayjs.extend(utc);
@ -279,6 +267,7 @@ class BNote extends AbstractBeccaEntity {
setContent(content, opts) { setContent(content, opts) {
this._setContent(content, opts); this._setContent(content, opts);
const eventService = importSync('../../services/events.js');
eventService.emit(eventService.NOTE_CONTENT_CHANGE, { entity: this }); eventService.emit(eventService.NOTE_CONTENT_CHANGE, { entity: this });
} }
@ -915,6 +904,7 @@ class BNote extends AbstractBeccaEntity {
} }
try { try {
const searchService = importSync('../../services/search/services/search.js');
const {searchResultNoteIds} = searchService.searchFromNote(this); const {searchResultNoteIds} = searchService.searchFromNote(this);
const becca = this.becca; const becca = this.becca;
@ -1469,6 +1459,7 @@ class BNote extends AbstractBeccaEntity {
cloneTo(parentNoteId) { cloneTo(parentNoteId) {
const branch = this.becca.getNote(parentNoteId).getParentBranches()[0]; const branch = this.becca.getNote(parentNoteId).getParentBranches()[0];
const cloningService = importSync('../../services/cloning.js');
return cloningService.cloneNoteToBranch(this.noteId, branch.branchId); return cloningService.cloneNoteToBranch(this.noteId, branch.branchId);
} }
@ -1539,6 +1530,7 @@ class BNote extends AbstractBeccaEntity {
const fixedContent = utils.replaceAll(parentContent, oldNoteUrl, newAttachmentUrl); const fixedContent = utils.replaceAll(parentContent, oldNoteUrl, newAttachmentUrl);
parentNote.setContent(fixedContent); parentNote.setContent(fixedContent);
const noteService = importSync('../../services/notes.js');
noteService.asyncPostProcessContent(parentNote, fixedContent); // to mark an unused attachment for deletion noteService.asyncPostProcessContent(parentNote, fixedContent); // to mark an unused attachment for deletion
this.deleteNote(); this.deleteNote();
@ -1564,6 +1556,8 @@ class BNote extends AbstractBeccaEntity {
if (!taskContext) { if (!taskContext) {
taskContext = new TaskContext('no-progress-reporting'); 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); handlers.runAttachedRelations(this, 'runOnNoteDeletion', this);
taskContext.noteDeletionHandlerTriggered = true; taskContext.noteDeletionHandlerTriggered = true;

View File

@ -1,5 +1,3 @@
"use strict";
import dateUtils from '../../services/date_utils.js' import dateUtils from '../../services/date_utils.js'
import AbstractBeccaEntity from './abstract_becca_entity.js' import AbstractBeccaEntity from './abstract_becca_entity.js'

View File

@ -1,5 +1,3 @@
"use strict";
import dateUtils from '../../services/date_utils.js' import dateUtils from '../../services/date_utils.js'
import AbstractBeccaEntity from './abstract_becca_entity.js' import AbstractBeccaEntity from './abstract_becca_entity.js'

View File

@ -1,5 +1,3 @@
"use strict";
import protectedSessionService from '../../services/protected_session.js' import protectedSessionService from '../../services/protected_session.js'
import utils from '../../services/utils.js' import utils from '../../services/utils.js'
import dateUtils from '../../services/date_utils.js' import dateUtils from '../../services/date_utils.js'

View File

@ -1,5 +1,3 @@
"use strict";
import appInfo from '../../services/app_info.js' import appInfo from '../../services/app_info.js'
function getAppInfo() { function getAppInfo() {

View File

@ -1,5 +1,3 @@
"use strict";
import sql from '../../services/sql.js' import sql from '../../services/sql.js'
import log from '../../services/log.js' import log from '../../services/log.js'
import attributeService from '../../services/attributes.js' import attributeService from '../../services/attributes.js'

View File

@ -1,5 +1,3 @@
"use strict";
import beccaService from '../../becca/becca_service.js' import beccaService from '../../becca/becca_service.js'
import searchService from '../../services/search/services/search.js' import searchService from '../../services/search/services/search.js'
import log from '../../services/log.js' import log from '../../services/log.js'

View File

@ -1,5 +1,3 @@
"use strict";
import fs from 'fs'; import fs from 'fs';
import dateUtils from '../../services/date_utils.js' import dateUtils from '../../services/date_utils.js'
import dataDir from '../../services/data_dir.js'; import dataDir from '../../services/data_dir.js';

View File

@ -1,5 +1,3 @@
"use strict";
import sql from '../../services/sql.js' import sql from '../../services/sql.js'
import utils from '../../services/utils.js' import utils from '../../services/utils.js'
import entityChangesService from '../../services/entity_changes.js' import entityChangesService from '../../services/entity_changes.js'

View File

@ -1,5 +1,3 @@
"use strict";
import attributeService from '../../services/attributes.js' import attributeService from '../../services/attributes.js'
import cloneService from '../../services/cloning.js' import cloneService from '../../services/cloning.js'
import noteService from '../../services/notes.js' import noteService from '../../services/notes.js'

View File

@ -1,5 +1,3 @@
"use strict";
import cloningService from '../../services/cloning.js' import cloningService from '../../services/cloning.js'
function cloneNoteToBranch(req) { function cloneNoteToBranch(req) {

View File

@ -1,5 +1,3 @@
"use strict";
import sql from '../../services/sql.js' import sql from '../../services/sql.js'
import log from '../../services/log.js' import log from '../../services/log.js'
import backupService from '../../services/backup.js' import backupService from '../../services/backup.js'

View File

@ -1,5 +1,3 @@
"use strict";
import zipExportService from '../../services/export/zip.js' import zipExportService from '../../services/export/zip.js'
import singleExportService from '../../services/export/single.js' import singleExportService from '../../services/export/single.js'
import opmlExportService from '../../services/export/opml.js' import opmlExportService from '../../services/export/opml.js'

View File

@ -1,5 +1,3 @@
"use strict";
import protectedSessionService from '../../services/protected_session.js' import protectedSessionService from '../../services/protected_session.js'
import utils from '../../services/utils.js' import utils from '../../services/utils.js'
import log from '../../services/log.js' import log from '../../services/log.js'

View File

@ -1,5 +1,3 @@
"use strict";
import imageService from '../../services/image.js' import imageService from '../../services/image.js'
import becca from '../../becca/becca.js' import becca from '../../becca/becca.js'
import resourceDir from '../../services/resource_dir.js'; import resourceDir from '../../services/resource_dir.js';

View File

@ -1,5 +1,3 @@
"use strict";
import enexImportService from '../../services/import/enex.js' import enexImportService from '../../services/import/enex.js'
import opmlImportService from '../../services/import/opml.js' import opmlImportService from '../../services/import/opml.js'
import zipImportService from '../../services/import/zip.js' import zipImportService from '../../services/import/zip.js'

View File

@ -1,5 +1,3 @@
"use strict";
import keyboardActions from '../../services/keyboard_actions.js' import keyboardActions from '../../services/keyboard_actions.js'
import becca from '../../becca/becca.js' import becca from '../../becca/becca.js'

View File

@ -1,5 +1,3 @@
"use strict";
import options from '../../services/options.js' import options from '../../services/options.js'
import utils from '../../services/utils.js' import utils from '../../services/utils.js'
import dateUtils from '../../services/date_utils.js' import dateUtils from '../../services/date_utils.js'

View File

@ -1,5 +1,3 @@
"use strict";
import becca from '../../becca/becca.js' import becca from '../../becca/becca.js'
import { JSDOM } from 'jsdom'; import { JSDOM } from 'jsdom';

View File

@ -1,5 +1,3 @@
"use strict";
import noteService from '../../services/notes.js' import noteService from '../../services/notes.js'
import eraseService from '../../services/erase.js' import eraseService from '../../services/erase.js'
import treeService from '../../services/tree.js' import treeService from '../../services/tree.js'

View File

@ -1,5 +1,3 @@
"use strict";
import optionService from '../../services/options.js' import optionService from '../../services/options.js'
import log from '../../services/log.js' import log from '../../services/log.js'
import searchService from '../../services/search/services/search.js' import searchService from '../../services/search/services/search.js'

View File

@ -1,5 +1,3 @@
"use strict";
import passwordService from '../../services/encryption/password.js' import passwordService from '../../services/encryption/password.js'
import ValidationError from '../../errors/validation_error.js' import ValidationError from '../../errors/validation_error.js'

View File

@ -1,5 +1,3 @@
"use strict";
import sql from '../../services/sql.js' import sql from '../../services/sql.js'
import protectedSessionService from '../../services/protected_session.js' import protectedSessionService from '../../services/protected_session.js'
import noteService from '../../services/notes.js' import noteService from '../../services/notes.js'

View File

@ -1,5 +1,3 @@
"use strict";
import BRecentNote from '../../becca/entities/brecent_note.js' import BRecentNote from '../../becca/entities/brecent_note.js'
import sql from '../../services/sql.js' import sql from '../../services/sql.js'
import dateUtils from '../../services/date_utils.js' import dateUtils from '../../services/date_utils.js'

View File

@ -1,5 +1,3 @@
"use strict";
import beccaService from '../../becca/becca_service.js' import beccaService from '../../becca/becca_service.js'
import revisionService from '../../services/revisions.js' import revisionService from '../../services/revisions.js'
import utils from '../../services/utils.js' import utils from '../../services/utils.js'

View File

@ -1,5 +1,3 @@
"use strict";
import scriptService from '../../services/script.js' import scriptService from '../../services/script.js'
import attributeService from '../../services/attributes.js' import attributeService from '../../services/attributes.js'
import becca from '../../becca/becca.js' import becca from '../../becca/becca.js'

View File

@ -1,5 +1,3 @@
"use strict";
import becca from '../../becca/becca.js' import becca from '../../becca/becca.js'
import SearchContext from '../../services/search/search_context.js' import SearchContext from '../../services/search/search_context.js'
import searchService from '../../services/search/services/search.js' import searchService from '../../services/search/services/search.js'

View File

@ -1,5 +1,3 @@
"use strict";
import imageType from 'image-type'; import imageType from 'image-type';
import imageService from '../../services/image.js' import imageService from '../../services/image.js'
import noteService from '../../services/notes.js' import noteService from '../../services/notes.js'

View File

@ -1,5 +1,3 @@
"use strict";
import sqlInit from '../../services/sql_init.js' import sqlInit from '../../services/sql_init.js'
import setupService from '../../services/setup.js' import setupService from '../../services/setup.js'
import log from '../../services/log.js' import log from '../../services/log.js'

View File

@ -1,5 +1,3 @@
"use strict";
import similarityService from '../../becca/similarity.js' import similarityService from '../../becca/similarity.js'
import becca from '../../becca/becca.js' import becca from '../../becca/becca.js'

View File

@ -1,5 +1,3 @@
"use strict";
import dateNoteService from '../../services/date_notes.js' import dateNoteService from '../../services/date_notes.js'
import sql from '../../services/sql.js' import sql from '../../services/sql.js'
import cls from '../../services/cls.js' import cls from '../../services/cls.js'

View File

@ -1,5 +1,3 @@
"use strict";
import sql from '../../services/sql.js' import sql from '../../services/sql.js'
import becca from '../../becca/becca.js' import becca from '../../becca/becca.js'

View File

@ -1,5 +1,3 @@
"use strict";
import syncService from '../../services/sync.js' import syncService from '../../services/sync.js'
import syncUpdateService from '../../services/sync_update.js' import syncUpdateService from '../../services/sync_update.js'
import entityChangesService from '../../services/entity_changes.js' import entityChangesService from '../../services/entity_changes.js'

View File

@ -1,5 +1,3 @@
"use strict";
import becca from '../../becca/becca.js' import becca from '../../becca/becca.js'
import log from '../../services/log.js' import log from '../../services/log.js'
import NotFoundError from '../../errors/not_found_error.js' import NotFoundError from '../../errors/not_found_error.js'

View File

@ -1,5 +1,3 @@
"use strict";
import sql from '../services/sql.js' import sql from '../services/sql.js'
import attributeService from '../services/attributes.js' import attributeService from '../services/attributes.js'
import config from '../services/config.js' import config from '../services/config.js'

View File

@ -1,5 +1,3 @@
"use strict";
import utils from '../services/utils.js' import utils from '../services/utils.js'
import optionService from '../services/options.js' import optionService from '../services/options.js'
import myScryptService from '../services/encryption/my_scrypt.js' import myScryptService from '../services/encryption/my_scrypt.js'

View File

@ -1,5 +1,3 @@
"use strict";
import utils from '../services/utils.js' import utils from '../services/utils.js'
import multer from 'multer'; import multer from 'multer';
import log from '../services/log.js' import log from '../services/log.js'

View File

@ -1,5 +1,3 @@
"use strict";
import sqlInit from '../services/sql_init.js' import sqlInit from '../services/sql_init.js'
import setupService from '../services/setup.js' import setupService from '../services/setup.js'
import utils from '../services/utils.js' import utils from '../services/utils.js'

View File

@ -1,5 +1,3 @@
"use strict";
import path from 'path'; import path from 'path';
import resourceDir from './resource_dir.js'; import resourceDir from './resource_dir.js';
import log from './log.js' import log from './log.js'

View File

@ -1,5 +1,3 @@
"use strict";
import build from './build.js' import build from './build.js'
import packageJson from '../../package.json' assert { type: 'json' } import packageJson from '../../package.json' assert { type: 'json' }
import dataDir from './data_dir.js'; import dataDir from './data_dir.js';

View File

@ -1,5 +1,3 @@
"use strict";
export function formatAttrForSearch(attr, searchWithValue) { export function formatAttrForSearch(attr, searchWithValue) {
let searchStr = ''; let searchStr = '';

View File

@ -1,5 +1,3 @@
"use strict";
import searchService from './search/services/search.js' import searchService from './search/services/search.js'
import sql from './sql.js' import sql from './sql.js'
import becca from '../becca/becca.js' import becca from '../becca/becca.js'

View File

@ -1,5 +1,3 @@
"use strict";
import etapiTokenService from './etapi_tokens.js' import etapiTokenService from './etapi_tokens.js'
import log from './log.js' import log from './log.js'
import sqlInit from './sql_init.js' import sqlInit from './sql_init.js'

View File

@ -1,5 +1,3 @@
"use strict";
import dateUtils from './date_utils.js' import dateUtils from './date_utils.js'
import optionService from './options.js' import optionService from './options.js'
import fs from 'fs-extra'; import fs from 'fs-extra';

View File

@ -1,5 +1,3 @@
"use strict";
import sql from './sql.js' import sql from './sql.js'
import eventChangesService from './entity_changes.js' import eventChangesService from './entity_changes.js'
import treeService from './tree.js' import treeService from './tree.js'

View File

@ -1,5 +1,3 @@
"use strict";
import ini from 'ini'; import ini from 'ini';
import fs from 'fs'; import fs from 'fs';
import dataDir from './data_dir.js' import dataDir from './data_dir.js'

View File

@ -1,5 +1,3 @@
"use strict";
import sql from './sql.js' import sql from './sql.js'
import sqlInit from './sql_init.js' import sqlInit from './sql_init.js'
import log from './log.js' import log from './log.js'
@ -15,8 +13,7 @@ import utils from '../services/utils.js'
import eraseService from '../services/erase.js' import eraseService from '../services/erase.js'
import { sanitizeAttributeName } from './sanitize_attribute_name.js'; import { sanitizeAttributeName } from './sanitize_attribute_name.js';
import services from '../services/note_types.js' import services from '../services/note_types.js'
import importSync from "import-sync";
import becca0 from '../becca/becca_loader.js'
const noteTypes = services.getNoteTypeNames(); const noteTypes = services.getNoteTypeNames();
@ -767,7 +764,7 @@ class ConsistencyChecks {
} }
if (this.reloadNeeded) { if (this.reloadNeeded) {
becca0.reload("consistency checks need becca reload"); importSync('../becca/becca_loader.js').reload("consistency checks need becca reload");
} }
return !this.unrecoveredConsistencyErrors; return !this.unrecoveredConsistencyErrors;

View File

@ -1,5 +1,3 @@
"use strict";
import sql from './sql.js' import sql from './sql.js'
import utils from './utils.js' import utils from './utils.js'
import log from './log.js' import log from './log.js'

View File

@ -1,5 +1,3 @@
"use strict";
/* /*
* This file resolves trilium data path in this order of priority: * 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 * - if TRILIUM_DATA_DIR environment variable exists, then its value is used as the path

View File

@ -1,5 +1,3 @@
"use strict";
import noteService from './notes.js' import noteService from './notes.js'
import attributeService from './attributes.js' import attributeService from './attributes.js'
import dateUtils from './date_utils.js' import dateUtils from './date_utils.js'

View File

@ -1,5 +1,3 @@
"use strict";
import crypto from 'crypto'; import crypto from 'crypto';
import log from '../log.js' import log from '../log.js'

View File

@ -1,5 +1,3 @@
"use strict";
import optionService from '../options.js' import optionService from '../options.js'
import crypto from 'crypto'; import crypto from 'crypto';

View File

@ -1,5 +1,3 @@
"use strict";
import sql from '../sql.js' import sql from '../sql.js'
import optionService from '../options.js' import optionService from '../options.js'
import myScryptService from './my_scrypt.js' import myScryptService from './my_scrypt.js'

View File

@ -6,8 +6,7 @@ import utils from './utils.js'
import instanceId from './instance_id.js' import instanceId from './instance_id.js'
import becca from '../becca/becca.js' import becca from '../becca/becca.js'
import blobService from '../services/blob.js' import blobService from '../services/blob.js'
import importSync from "import-sync";
import eventService from './events.js'
let maxEntityChangeId = 0; let maxEntityChangeId = 0;
@ -54,6 +53,8 @@ function putNoteReorderingEntityChange(parentNoteId, componentId) {
componentId, componentId,
instanceId instanceId
}); });
const eventService = importSync('./events.js');
eventService.emit(eventService.ENTITY_CHANGED, { eventService.emit(eventService.ENTITY_CHANGED, {
entityName: 'note_reordering', entityName: 'note_reordering',
entity: sql.getMap(`SELECT branchId, notePosition FROM branches WHERE isDeleted = 0 AND parentNoteId = ?`, [parentNoteId]) entity: sql.getMap(`SELECT branchId, notePosition FROM branches WHERE isDeleted = 0 AND parentNoteId = ?`, [parentNoteId])

View File

@ -1,5 +1,3 @@
"use strict";
import TurndownService from 'turndown'; import TurndownService from 'turndown';
import turndownPluginGfm from 'joplin-turndown-plugin-gfm'; import turndownPluginGfm from 'joplin-turndown-plugin-gfm';

View File

@ -1,5 +1,3 @@
"use strict";
import utils from '../utils.js' import utils from '../utils.js'
import becca from '../../becca/becca.js' import becca from '../../becca/becca.js'

View File

@ -1,5 +1,3 @@
"use strict";
import mimeTypes from 'mime-types'; import mimeTypes from 'mime-types';
import html from 'html'; import html from 'html';
import utils from '../utils.js' import utils from '../utils.js'

View File

@ -1,5 +1,3 @@
"use strict";
import html from 'html'; import html from 'html';
import dateUtils from '../date_utils.js' import dateUtils from '../date_utils.js'
import path from 'path'; import path from 'path';

View File

@ -1,5 +1,3 @@
"use strict";
import becca from '../becca/becca.js' import becca from '../becca/becca.js'
import log from './log.js' import log from './log.js'
import protectedSessionService from './protected_session.js' import protectedSessionService from './protected_session.js'

View File

@ -1,5 +1,3 @@
"use strict";
import { marked } from 'marked'; import { marked } from 'marked';
import htmlSanitizer from '../html_sanitizer.js' import htmlSanitizer from '../html_sanitizer.js'
import importUtils from './utils.js' import importUtils from './utils.js'

View File

@ -1,5 +1,3 @@
"use strict";
import mimeTypes from 'mime-types'; import mimeTypes from 'mime-types';
import path from 'path'; import path from 'path';
@ -111,4 +109,4 @@ export default {
getMime, getMime,
getType, getType,
normalizeMimeType normalizeMimeType
}; };

View File

@ -1,5 +1,3 @@
"use strict";
import noteService from '../../services/notes.js' import noteService from '../../services/notes.js'
import { parseString } from 'xml2js'; import { parseString } from 'xml2js';
import protectedSessionService from '../protected_session.js' import protectedSessionService from '../protected_session.js'

View File

@ -1,5 +1,3 @@
"use strict";
import noteService from '../../services/notes.js' import noteService from '../../services/notes.js'
import imageService from '../../services/image.js' import imageService from '../../services/image.js'
import protectedSessionService from '../protected_session.js' import protectedSessionService from '../protected_session.js'

View File

@ -1,5 +1,3 @@
"use strict";
function handleH1(content, title) { function handleH1(content, title) {
content = content.replace(/<h1>([^<]*)<\/h1>/gi, (match, text) => { content = content.replace(/<h1>([^<]*)<\/h1>/gi, (match, text) => {
if (title.trim() === text.trim()) { if (title.trim() === text.trim()) {

View File

@ -1,5 +1,3 @@
"use strict";
import BAttribute from '../../becca/entities/battribute.js' import BAttribute from '../../becca/entities/battribute.js'
import utils from '../../services/utils.js' import utils from '../../services/utils.js'
import log from '../../services/log.js' import log from '../../services/log.js'

View File

@ -1,5 +1,3 @@
"use strict";
import optionService from './options.js' import optionService from './options.js'
import log from './log.js' import log from './log.js'
import utils from './utils.js' import utils from './utils.js'

View File

@ -1,5 +1,3 @@
"use strict";
import fs from 'fs'; import fs from 'fs';
import dataDir from './data_dir.js' import dataDir from './data_dir.js'
import cls from './cls.js' import cls from './cls.js'

View File

@ -1,9 +1,6 @@
import becca from '../becca/becca.js' import becca from '../becca/becca.js'
import sql from './sql.js' import sql from './sql.js'
import importSync from "import-sync";
// to avoid circular dependency, need to find a better solution
import BOption from "../becca/entities/boption.js";
/** @returns {string|null} */ /** @returns {string|null} */
function getOptionOrNull(name) { function getOptionOrNull(name) {
@ -76,6 +73,7 @@ function setOption(name, value) {
} }
function createOption(name, value, isSynced) { function createOption(name, value, isSynced) {
const BOption = importSync("../becca/entities/boption.js");
new BOption({ new BOption({
name: name, name: name,
value: value, value: value,

View File

@ -1,11 +1,6 @@
"use strict";
import log from './log.js' import log from './log.js'
import dataEncryptionService from './encryption/data_encryption.js' import dataEncryptionService from './encryption/data_encryption.js'
import importSync from "import-sync";
import options from './options.js'
import ws from './ws.js'
let dataKey = null; let dataKey = null;
@ -54,6 +49,7 @@ function touchProtectedSession() {
} }
function checkProtectedSessionExpiration() { function checkProtectedSessionExpiration() {
const options = importSync('./options.js');
const protectedSessionTimeout = options.getOptionInt('protectedSessionTimeout'); const protectedSessionTimeout = options.getOptionInt('protectedSessionTimeout');
if (isProtectedSessionAvailable() if (isProtectedSessionAvailable()
&& lastProtectedSessionOperationDate && lastProtectedSessionOperationDate
@ -63,7 +59,7 @@ function checkProtectedSessionExpiration() {
log.info("Expiring protected session"); log.info("Expiring protected session");
ws.reloadFrontend("leaving protected session"); importSync("./ws").reloadFrontend("leaving protected session");
} }
} }

View File

@ -1,5 +1,3 @@
"use strict";
import utils from './utils.js' import utils from './utils.js'
import log from './log.js' import log from './log.js'
import url from 'url'; import url from 'url';

View File

@ -1,5 +1,3 @@
"use strict";
import log from './log.js' import log from './log.js'
import sql from './sql.js' import sql from './sql.js'
import protectedSessionService from './protected_session.js' import protectedSessionService from './protected_session.js'

View File

@ -1,5 +1,3 @@
"use strict";
import Expression from './expression.js' import Expression from './expression.js'
import NoteSet from '../note_set.js' import NoteSet from '../note_set.js'
import log from '../../log.js' import log from '../../log.js'

View File

@ -1,5 +1,3 @@
"use strict";
import Expression from './expression.js' import Expression from './expression.js'
import TrueExp from './true.js' import TrueExp from './true.js'

View File

@ -1,5 +1,3 @@
"use strict";
import NoteSet from '../note_set.js' import NoteSet from '../note_set.js'
import becca from '../../../becca/becca.js' import becca from '../../../becca/becca.js'
import Expression from './expression.js' import Expression from './expression.js'

View File

@ -1,5 +1,3 @@
"use strict";
import Expression from './expression.js' import Expression from './expression.js'
import NoteSet from '../note_set.js' import NoteSet from '../note_set.js'

View File

@ -1,5 +1,3 @@
"use strict";
import Expression from './expression.js' import Expression from './expression.js'
import NoteSet from '../note_set.js' import NoteSet from '../note_set.js'
import becca from '../../../becca/becca.js' import becca from '../../../becca/becca.js'

View File

@ -1,5 +1,3 @@
"use strict";
class Expression { class Expression {
constructor() { constructor() {
this.name = this.constructor.name; // for DEBUG mode to have expression name as part of dumped JSON this.name = this.constructor.name; // for DEBUG mode to have expression name as part of dumped JSON

View File

@ -1,5 +1,3 @@
"use strict";
import Expression from './expression.js' import Expression from './expression.js'
import NoteSet from '../note_set.js' import NoteSet from '../note_set.js'

View File

@ -1,5 +1,3 @@
"use strict";
import Expression from './expression.js' import Expression from './expression.js'
import NoteSet from '../note_set.js' import NoteSet from '../note_set.js'
import becca from '../../../becca/becca.js' import becca from '../../../becca/becca.js'

View File

@ -1,5 +1,3 @@
"use strict";
import Expression from './expression.js' import Expression from './expression.js'
class NotExp extends Expression { class NotExp extends Expression {

View File

@ -1,5 +1,3 @@
"use strict";
import Expression from './expression.js' import Expression from './expression.js'
import NoteSet from '../note_set.js' import NoteSet from '../note_set.js'
import log from '../../log.js' import log from '../../log.js'

View File

@ -1,5 +1,3 @@
"use strict";
import Expression from './expression.js' import Expression from './expression.js'
import NoteSet from '../note_set.js' import NoteSet from '../note_set.js'
import becca from '../../../becca/becca.js' import becca from '../../../becca/becca.js'

View File

@ -1,5 +1,3 @@
"use strict";
import Expression from './expression.js' import Expression from './expression.js'
import NoteSet from '../note_set.js' import NoteSet from '../note_set.js'
import TrueExp from './true.js' import TrueExp from './true.js'

View File

@ -1,5 +1,3 @@
"use strict";
import Expression from './expression.js' import Expression from './expression.js'
import NoteSet from '../note_set.js' import NoteSet from '../note_set.js'

View File

@ -1,5 +1,3 @@
"use strict";
import Expression from './expression.js' import Expression from './expression.js'
import NoteSet from '../note_set.js' import NoteSet from '../note_set.js'

View File

@ -1,5 +1,3 @@
"use strict";
import Expression from './expression.js' import Expression from './expression.js'
import NoteSet from '../note_set.js' import NoteSet from '../note_set.js'
import buildComparator from '../services/build_comparator.js' import buildComparator from '../services/build_comparator.js'

View File

@ -1,5 +1,3 @@
"use strict";
import Expression from './expression.js' import Expression from './expression.js'
import NoteSet from '../note_set.js' import NoteSet from '../note_set.js'
import becca from '../../../becca/becca.js' import becca from '../../../becca/becca.js'

View File

@ -1,5 +1,3 @@
"use strict";
import Expression from './expression.js' import Expression from './expression.js'
class TrueExp extends Expression { class TrueExp extends Expression {

View File

@ -1,5 +1,3 @@
"use strict";
class NoteSet { class NoteSet {
constructor(notes = []) { constructor(notes = []) {
/** @type {BNote[]} */ /** @type {BNote[]} */

View File

@ -1,5 +1,3 @@
"use strict";
import hoistedNoteService from '../hoisted_note.js' import hoistedNoteService from '../hoisted_note.js'
class SearchContext { class SearchContext {

Some files were not shown because too many files have changed in this diff Show More