From 893a563afbd70724662ae391e90a2b2584a4d053 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Thu, 18 Jul 2024 20:45:46 +0300 Subject: [PATCH 01/25] vscode: Add task to watch build errors --- .vscode/tasks.json | 17 +++++++++++++++++ package.json | 3 ++- 2 files changed, 19 insertions(+), 1 deletion(-) create mode 100644 .vscode/tasks.json diff --git a/.vscode/tasks.json b/.vscode/tasks.json new file mode 100644 index 000000000..d5fb9133e --- /dev/null +++ b/.vscode/tasks.json @@ -0,0 +1,17 @@ +{ + "version": "2.0.0", + "tasks": [ + { + "type": "npm", + "script": "errors", + "problemMatcher": "$tsc-watch", + "isBackground": true, + "presentation": { + "revealProblems": "never" + }, + "runOptions": { + "runOn": "folderOpen" + } + } + ] + } \ No newline at end of file diff --git a/package.json b/package.json index 457b5f06b..05299ace3 100644 --- a/package.json +++ b/package.json @@ -31,7 +31,8 @@ "test-jasmine": "TRILIUM_DATA_DIR=./data-test ts-node ./node_modules/.bin/jasmine", "test-es6": "ts-node -r esm spec-es6/attribute_parser.spec.ts", "test": "npm run test-jasmine && npm run test-es6", - "postinstall": "rimraf ./node_modules/canvas" + "postinstall": "rimraf ./node_modules/canvas", + "errors": "tsc --watch --noEmit" }, "dependencies": { "@braintree/sanitize-url": "6.0.4", From 971c1472a51e3acbcc8e58dc337902e2e01ffb1c Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Thu, 18 Jul 2024 21:22:10 +0300 Subject: [PATCH 02/25] server: Set to bundler / ES2015 --- tsconfig.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tsconfig.json b/tsconfig.json index d9bbf4378..b8e0605f4 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,7 +1,7 @@ { "compilerOptions": { - "moduleResolution": "Node16", - "module": "Node16", + "moduleResolution": "Bundler", + "module": "ES2015", "target": "ES2018", "declaration": false, "sourceMap": true, From 8fb67c9766e469278612459e6c26c76b7f32f25d Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Thu, 18 Jul 2024 21:28:51 +0300 Subject: [PATCH 03/25] server-esm: Normalize quotes in require imports --- electron.ts | 16 ++++++++-------- spec/etapi/app_info.spec.ts | 2 +- spec/etapi/backup.spec.ts | 2 +- spec/etapi/import.spec.ts | 6 +++--- spec/etapi/notes.spec.ts | 4 ++-- spec/search/becca_mocking.ts | 12 ++++++------ spec/search/lexer.spec.ts | 2 +- spec/search/search.spec.ts | 2 +- spec/support/etapi.ts | 4 ++-- src/becca/entities/bblob.ts | 2 +- src/becca/entities/bnote.ts | 2 +- src/becca/entities/brevision.ts | 2 +- src/etapi/mappers.ts | 8 ++++---- src/routes/api/attachments.ts | 2 +- src/routes/api/branches.ts | 2 +- src/routes/api/clipper.ts | 6 +++--- src/routes/api/revisions.ts | 2 +- src/routes/api/search.ts | 2 +- src/routes/assets.ts | 4 ++-- src/routes/routes.ts | 2 +- src/routes/session_parser.ts | 2 +- src/services/anonymization.ts | 6 +++--- src/services/backend_script_api_interface.ts | 4 ++-- src/services/bulk_actions.ts | 2 +- src/services/erase.ts | 16 ++++++++-------- src/services/etapi_tokens.ts | 2 +- src/services/export/zip.ts | 4 ++-- src/services/hidden_subtree.ts | 2 +- src/services/import/enex.ts | 6 +++--- src/services/import/markdown.ts | 2 +- src/services/import/opml.ts | 2 +- src/services/import/single.ts | 4 ++-- src/services/import/zip.ts | 2 +- src/services/log.ts | 2 +- src/services/meta/note_meta.ts | 4 ++-- src/services/notes.ts | 4 ++-- src/services/request.ts | 4 ++-- .../search/expressions/attribute_exists.ts | 4 ++-- src/services/search/expressions/expression.ts | 4 ++-- .../search/expressions/note_content_fulltext.ts | 4 ++-- .../search/expressions/note_flat_text.ts | 4 ++-- .../search/expressions/order_by_and_limit.ts | 8 ++++---- src/services/search/expressions/true.ts | 4 ++-- src/services/search/note_set.ts | 2 +- src/services/search/services/parse.ts | 6 +++--- src/services/search/services/search.ts | 10 +++++----- src/services/search/value_extractor.ts | 2 +- src/services/sql.ts | 2 +- src/services/utils.ts | 2 +- src/services/window.ts | 6 +++--- src/share/content_renderer.ts | 2 +- src/share/routes.ts | 2 +- src/share/shaca/entities/sattribute.ts | 2 +- src/share/shaca/shaca-interface.ts | 8 ++++---- src/types.d.ts | 2 +- src/www.ts | 2 +- 56 files changed, 114 insertions(+), 114 deletions(-) diff --git a/electron.ts b/electron.ts index 88ff6f56e..994890537 100644 --- a/electron.ts +++ b/electron.ts @@ -1,17 +1,17 @@ "use strict"; -import electron = require("electron"); -import sqlInit = require("./src/services/sql_init"); -import appIconService = require("./src/services/app_icon"); -import windowService = require("./src/services/window"); -import tray = require("./src/services/tray"); +import electron = require('electron'); +import sqlInit = require('./src/services/sql_init'); +import appIconService = require('./src/services/app_icon'); +import windowService = require('./src/services/window'); +import tray = require('./src/services/tray'); // Adds debug features like hotkeys for triggering dev tools and reload -require("electron-debug")(); +require('electron-debug')(); appIconService.installLocalAppIcon(); -require("electron-dl")({ saveAs: true }); +require('electron-dl')({ saveAs: true }); // needed for excalidraw export https://github.com/zadam/trilium/issues/4271 electron.app.commandLine.appendSwitch( @@ -60,4 +60,4 @@ electron.app.on("will-quit", () => { // this is to disable electron warning spam in the dev console (local development only) process.env["ELECTRON_DISABLE_SECURITY_WARNINGS"] = "true"; -require("./src/www.js"); +require('./src/www.js'); diff --git a/spec/etapi/app_info.spec.ts b/spec/etapi/app_info.spec.ts index 9ea99b143..536d77df8 100644 --- a/spec/etapi/app_info.spec.ts +++ b/spec/etapi/app_info.spec.ts @@ -1,4 +1,4 @@ -import etapi = require("../support/etapi"); +import etapi = require('../support/etapi'); etapi.describeEtapi("app_info", () => { it("get", async () => { diff --git a/spec/etapi/backup.spec.ts b/spec/etapi/backup.spec.ts index 3afda9141..56ef63827 100644 --- a/spec/etapi/backup.spec.ts +++ b/spec/etapi/backup.spec.ts @@ -1,4 +1,4 @@ -import etapi = require("../support/etapi"); +import etapi = require('../support/etapi'); etapi.describeEtapi("backup", () => { it("create", async () => { diff --git a/spec/etapi/import.spec.ts b/spec/etapi/import.spec.ts index 7471387ab..1f70eaf31 100644 --- a/spec/etapi/import.spec.ts +++ b/spec/etapi/import.spec.ts @@ -1,6 +1,6 @@ -import etapi = require("../support/etapi"); -import fs = require("fs"); -import path = require("path"); +import etapi = require('../support/etapi'); +import fs = require('fs'); +import path = require('path'); etapi.describeEtapi("import", () => { // temporarily skip this test since test-export.zip is missing diff --git a/spec/etapi/notes.spec.ts b/spec/etapi/notes.spec.ts index 208a7088d..1b4774d66 100644 --- a/spec/etapi/notes.spec.ts +++ b/spec/etapi/notes.spec.ts @@ -1,5 +1,5 @@ -import crypto = require("crypto"); -import etapi = require("../support/etapi"); +import crypto = require('crypto'); +import etapi = require('../support/etapi'); etapi.describeEtapi("notes", () => { it("create", async () => { diff --git a/spec/search/becca_mocking.ts b/spec/search/becca_mocking.ts index cb4e62b60..a39a81162 100644 --- a/spec/search/becca_mocking.ts +++ b/spec/search/becca_mocking.ts @@ -1,9 +1,9 @@ -import BNote = require("../../src/becca/entities/bnote"); -import BBranch = require("../../src/becca/entities/bbranch"); -import BAttribute = require("../../src/becca/entities/battribute"); -import becca = require("../../src/becca/becca"); -import randtoken = require("rand-token"); -import SearchResult = require("../../src/services/search/search_result"); +import BNote = require('../../src/becca/entities/bnote'); +import BBranch = require('../../src/becca/entities/bbranch'); +import BAttribute = require('../../src/becca/entities/battribute'); +import becca = require('../../src/becca/becca'); +import randtoken = require('rand-token'); +import SearchResult = require('../../src/services/search/search_result'); import { NoteType } from "../../src/becca/entities/rows"; randtoken.generator({ source: "crypto" }); diff --git a/spec/search/lexer.spec.ts b/spec/search/lexer.spec.ts index 971f9cb13..553140538 100644 --- a/spec/search/lexer.spec.ts +++ b/spec/search/lexer.spec.ts @@ -1,4 +1,4 @@ -import lex = require("../../src/services/search/services/lex"); +import lex = require('../../src/services/search/services/lex'); describe("Lexer fulltext", () => { it("simple lexing", () => { diff --git a/spec/search/search.spec.ts b/spec/search/search.spec.ts index 2b4a58852..c7f142b04 100644 --- a/spec/search/search.spec.ts +++ b/spec/search/search.spec.ts @@ -4,7 +4,7 @@ import BBranch = require('../../src/becca/entities/bbranch'); import SearchContext = require('../../src/services/search/search_context'); import dateUtils = require('../../src/services/date_utils'); import becca = require('../../src/becca/becca'); -// const { NoteBuilder, findNoteByTitle, note } = require("./becca_mocking"); +// const { NoteBuilder, findNoteByTitle, note } = require('./becca_mocking'); import becca_mocking = require('./becca_mocking'); describe('Search', () => { diff --git a/spec/support/etapi.ts b/spec/support/etapi.ts index 05da87bc8..0d36f1380 100644 --- a/spec/support/etapi.ts +++ b/spec/support/etapi.ts @@ -1,5 +1,5 @@ -import child_process = require("child_process"); -import kill = require("tree-kill"); +import child_process = require('child_process'); +import kill = require('tree-kill'); let etapiAuthToken: string | undefined; diff --git a/src/becca/entities/bblob.ts b/src/becca/entities/bblob.ts index 40d1c5885..bb0e2f80e 100644 --- a/src/becca/entities/bblob.ts +++ b/src/becca/entities/bblob.ts @@ -1,4 +1,4 @@ -import AbstractBeccaEntity = require("./abstract_becca_entity"); +import AbstractBeccaEntity = require('./abstract_becca_entity'); import { BlobRow } from "./rows"; // TODO: Why this does not extend the abstract becca? diff --git a/src/becca/entities/bnote.ts b/src/becca/entities/bnote.ts index edb7f67e3..bcf5f0aa3 100644 --- a/src/becca/entities/bnote.ts +++ b/src/becca/entities/bnote.ts @@ -9,7 +9,7 @@ import AbstractBeccaEntity = require('./abstract_becca_entity'); import BRevision = require('./brevision'); import BAttachment = require('./battachment'); import TaskContext = require('../../services/task_context'); -import dayjs = require("dayjs"); +import dayjs = require('dayjs'); import utc = require('dayjs/plugin/utc'); import eventService = require('../../services/events'); import { AttachmentRow, NoteRow, NoteType, RevisionRow } from './rows'; diff --git a/src/becca/entities/brevision.ts b/src/becca/entities/brevision.ts index 18a7a8df5..52714cd73 100644 --- a/src/becca/entities/brevision.ts +++ b/src/becca/entities/brevision.ts @@ -164,7 +164,7 @@ class BRevision extends AbstractBeccaEntity { * Revisions are not soft-deletable, they are immediately hard-deleted (erased). */ eraseRevision() { - require("../../services/erase.js").eraseRevisions([this.revisionId]); + require('../../services/erase.js').eraseRevisions([this.revisionId]); } beforeSaving() { diff --git a/src/etapi/mappers.ts b/src/etapi/mappers.ts index 537b51738..b7cbc9f8d 100644 --- a/src/etapi/mappers.ts +++ b/src/etapi/mappers.ts @@ -1,7 +1,7 @@ -import BAttachment = require("../becca/entities/battachment"); -import BAttribute = require("../becca/entities/battribute"); -import BBranch = require("../becca/entities/bbranch"); -import BNote = require("../becca/entities/bnote"); +import BAttachment = require('../becca/entities/battachment'); +import BAttribute = require('../becca/entities/battribute'); +import BBranch = require('../becca/entities/bbranch'); +import BNote = require('../becca/entities/bnote'); function mapNoteToPojo(note: BNote) { return { diff --git a/src/routes/api/attachments.ts b/src/routes/api/attachments.ts index 9fde39fc5..8ccbefc85 100644 --- a/src/routes/api/attachments.ts +++ b/src/routes/api/attachments.ts @@ -1,7 +1,7 @@ import becca = require('../../becca/becca'); import blobService = require('../../services/blob'); import ValidationError = require('../../errors/validation_error'); -import imageService = require("../../services/image"); +import imageService = require('../../services/image'); import { Request } from 'express'; function getAttachmentBlob(req: Request) { diff --git a/src/routes/api/branches.ts b/src/routes/api/branches.ts index 8c7562128..102ffde7d 100644 --- a/src/routes/api/branches.ts +++ b/src/routes/api/branches.ts @@ -10,7 +10,7 @@ import TaskContext = require('../../services/task_context'); import branchService = require('../../services/branches'); import log = require('../../services/log'); import ValidationError = require('../../errors/validation_error'); -import eventService = require("../../services/events"); +import eventService = require('../../services/events'); import { Request } from 'express'; /** diff --git a/src/routes/api/clipper.ts b/src/routes/api/clipper.ts index e7f523cec..c8c635633 100644 --- a/src/routes/api/clipper.ts +++ b/src/routes/api/clipper.ts @@ -15,9 +15,9 @@ import utils = require('../../services/utils'); import path = require('path'); import htmlSanitizer = require('../../services/html_sanitizer'); import attributeFormatter = require('../../services/attribute_formatter'); -import jsdom = require("jsdom"); -import BNote = require("../../becca/entities/bnote"); -import ValidationError = require("../../errors/validation_error"); +import jsdom = require('jsdom'); +import BNote = require('../../becca/entities/bnote'); +import ValidationError = require('../../errors/validation_error'); const { JSDOM } = jsdom; interface Image { diff --git a/src/routes/api/revisions.ts b/src/routes/api/revisions.ts index 475b5b9b1..d8854ec8a 100644 --- a/src/routes/api/revisions.ts +++ b/src/routes/api/revisions.ts @@ -8,7 +8,7 @@ import cls = require('../../services/cls'); import path = require('path'); import becca = require('../../becca/becca'); import blobService = require('../../services/blob'); -import eraseService = require("../../services/erase"); +import eraseService = require('../../services/erase'); import { Request, Response } from 'express'; import BRevision = require('../../becca/entities/brevision'); import BNote = require('../../becca/entities/bnote'); diff --git a/src/routes/api/search.ts b/src/routes/api/search.ts index 358c0d1d2..93d3e9bc5 100644 --- a/src/routes/api/search.ts +++ b/src/routes/api/search.ts @@ -9,7 +9,7 @@ import bulkActionService = require('../../services/bulk_actions'); import cls = require('../../services/cls'); import attributeFormatter = require('../../services/attribute_formatter'); import ValidationError = require('../../errors/validation_error'); -import SearchResult = require("../../services/search/search_result"); +import SearchResult = require('../../services/search/search_result'); function searchFromNote(req: Request) { const note = becca.getNoteOrThrow(req.params.noteId); diff --git a/src/routes/assets.ts b/src/routes/assets.ts index 6ebfd8313..806309ac8 100644 --- a/src/routes/assets.ts +++ b/src/routes/assets.ts @@ -1,6 +1,6 @@ import assetPath = require('../services/asset_path'); -import path = require("path"); -import express = require("express"); +import path = require('path'); +import express = require('express'); import env = require('../services/env'); import serveStatic = require('serve-static'); diff --git a/src/routes/routes.ts b/src/routes/routes.ts index 55cad4cd5..55b40cd2b 100644 --- a/src/routes/routes.ts +++ b/src/routes/routes.ts @@ -11,7 +11,7 @@ import sql = require('../services/sql'); import entityChangesService = require('../services/entity_changes'); import csurf = require('csurf'); import { createPartialContentHandler } from "express-partial-content"; -import rateLimit = require("express-rate-limit"); +import rateLimit = require('express-rate-limit'); import AbstractBeccaEntity = require('../becca/entities/abstract_becca_entity'); import NotFoundError = require('../errors/not_found_error'); import ValidationError = require('../errors/validation_error'); diff --git a/src/routes/session_parser.ts b/src/routes/session_parser.ts index 431476f15..10be1a721 100644 --- a/src/routes/session_parser.ts +++ b/src/routes/session_parser.ts @@ -1,4 +1,4 @@ -import session = require("express-session"); +import session = require('express-session'); import sessionSecret = require('../services/session_secret'); import dataDir = require('../services/data_dir'); const FileStore = require('session-file-store')(session); diff --git a/src/services/anonymization.ts b/src/services/anonymization.ts index 4e17058a7..a169cd8b8 100644 --- a/src/services/anonymization.ts +++ b/src/services/anonymization.ts @@ -1,10 +1,10 @@ import BUILTIN_ATTRIBUTES = require('./builtin_attributes'); -import fs = require("fs-extra"); +import fs = require('fs-extra'); import dataDir = require('./data_dir'); import dateUtils = require('./date_utils'); -import Database = require("better-sqlite3"); +import Database = require('better-sqlite3'); import sql = require('./sql'); -import path = require("path"); +import path = require('path'); function getFullAnonymizationScript() { // we want to delete all non-builtin attributes because they can contain sensitive names and values diff --git a/src/services/backend_script_api_interface.ts b/src/services/backend_script_api_interface.ts index f74b65ad7..7c7c4199f 100644 --- a/src/services/backend_script_api_interface.ts +++ b/src/services/backend_script_api_interface.ts @@ -1,6 +1,6 @@ import { Request, Response } from "express"; -import AbstractBeccaEntity = require("../becca/entities/abstract_becca_entity"); -import BNote = require("../becca/entities/bnote"); +import AbstractBeccaEntity = require('../becca/entities/abstract_becca_entity'); +import BNote = require('../becca/entities/bnote'); export interface ApiParams { startNote?: BNote; diff --git a/src/services/bulk_actions.ts b/src/services/bulk_actions.ts index 8abc11460..1a4d63dd9 100644 --- a/src/services/bulk_actions.ts +++ b/src/services/bulk_actions.ts @@ -3,7 +3,7 @@ import becca = require('../becca/becca'); import cloningService = require('./cloning'); import branchService = require('./branches'); import utils = require('./utils'); -import eraseService = require("./erase"); +import eraseService = require('./erase'); import BNote = require('../becca/entities/bnote'); interface Action { diff --git a/src/services/erase.ts b/src/services/erase.ts index 6e6804f3d..045f72915 100644 --- a/src/services/erase.ts +++ b/src/services/erase.ts @@ -1,11 +1,11 @@ -import sql = require("./sql"); -import revisionService = require("./revisions"); -import log = require("./log"); -import entityChangesService = require("./entity_changes"); -import optionService = require("./options"); -import dateUtils = require("./date_utils"); -import sqlInit = require("./sql_init"); -import cls = require("./cls"); +import sql = require('./sql'); +import revisionService = require('./revisions'); +import log = require('./log'); +import entityChangesService = require('./entity_changes'); +import optionService = require('./options'); +import dateUtils = require('./date_utils'); +import sqlInit = require('./sql_init'); +import cls = require('./cls'); import { EntityChange } from "./entity_changes_interface"; function eraseNotes(noteIdsToErase: string[]) { diff --git a/src/services/etapi_tokens.ts b/src/services/etapi_tokens.ts index 2989d3923..a20ab5651 100644 --- a/src/services/etapi_tokens.ts +++ b/src/services/etapi_tokens.ts @@ -1,7 +1,7 @@ import becca = require('../becca/becca'); import utils = require('./utils'); import BEtapiToken = require('../becca/entities/betapi_token'); -import crypto = require("crypto"); +import crypto = require('crypto'); function getTokens() { return becca.getEtapiTokens(); diff --git a/src/services/export/zip.ts b/src/services/export/zip.ts index b4093c848..8e4a2752a 100644 --- a/src/services/export/zip.ts +++ b/src/services/export/zip.ts @@ -8,8 +8,8 @@ import mdService = require('./md'); import packageInfo = require('../../../package.json'); import utils = require('../utils'); import protectedSessionService = require('../protected_session'); -import sanitize = require("sanitize-filename"); -import fs = require("fs"); +import sanitize = require('sanitize-filename'); +import fs = require('fs'); import becca = require('../../becca/becca'); const RESOURCE_DIR = require('../../services/resource_dir').RESOURCE_DIR; import archiver = require('archiver'); diff --git a/src/services/hidden_subtree.ts b/src/services/hidden_subtree.ts index 5478aed1c..ff683e003 100644 --- a/src/services/hidden_subtree.ts +++ b/src/services/hidden_subtree.ts @@ -1,4 +1,4 @@ -import BAttribute = require("../becca/entities/battribute"); +import BAttribute = require('../becca/entities/battribute'); import { AttributeType, NoteType } from "../becca/entities/rows"; import becca = require('../becca/becca'); diff --git a/src/services/import/enex.ts b/src/services/import/enex.ts index 5e715a0ca..998545fe9 100644 --- a/src/services/import/enex.ts +++ b/src/services/import/enex.ts @@ -1,4 +1,4 @@ -import sax = require("sax"); +import sax = require('sax'); import stream = require('stream'); import { Throttle } from 'stream-throttle'; import log = require('../log'); @@ -9,8 +9,8 @@ import imageService = require('../image'); import protectedSessionService = require('../protected_session'); import htmlSanitizer = require('../html_sanitizer'); import sanitizeAttributeName = require('../sanitize_attribute_name'); -import TaskContext = require("../task_context"); -import BNote = require("../../becca/entities/bnote"); +import TaskContext = require('../task_context'); +import BNote = require('../../becca/entities/bnote'); import { File } from "./common"; /** diff --git a/src/services/import/markdown.ts b/src/services/import/markdown.ts index 941bdbd31..73c0e4833 100644 --- a/src/services/import/markdown.ts +++ b/src/services/import/markdown.ts @@ -1,6 +1,6 @@ "use strict"; -import marked = require("marked"); +import marked = require('marked'); import htmlSanitizer = require('../html_sanitizer'); import importUtils = require('./utils'); diff --git a/src/services/import/opml.ts b/src/services/import/opml.ts index 78da6764c..6223ea51d 100644 --- a/src/services/import/opml.ts +++ b/src/services/import/opml.ts @@ -1,7 +1,7 @@ "use strict"; import noteService = require('../../services/notes'); -import xml2js = require("xml2js"); +import xml2js = require('xml2js'); import protectedSessionService = require('../protected_session'); import htmlSanitizer = require('../html_sanitizer'); import TaskContext = require('../task_context'); diff --git a/src/services/import/single.ts b/src/services/import/single.ts index 2c13386a1..44ec5e9e9 100644 --- a/src/services/import/single.ts +++ b/src/services/import/single.ts @@ -1,7 +1,7 @@ "use strict"; -import BNote = require("../../becca/entities/bnote"); -import TaskContext = require("../task_context"); +import BNote = require('../../becca/entities/bnote'); +import TaskContext = require('../task_context'); import noteService = require('../../services/notes'); import imageService = require('../../services/image'); diff --git a/src/services/import/zip.ts b/src/services/import/zip.ts index 0c4008ddf..c29c398d6 100644 --- a/src/services/import/zip.ts +++ b/src/services/import/zip.ts @@ -10,7 +10,7 @@ import path = require('path'); import protectedSessionService = require('../protected_session'); import mimeService = require('./mime'); import treeService = require('../tree'); -import yauzl = require("yauzl"); +import yauzl = require('yauzl'); import htmlSanitizer = require('../html_sanitizer'); import becca = require('../../becca/becca'); import BAttachment = require('../../becca/entities/battachment'); diff --git a/src/services/log.ts b/src/services/log.ts index 1e8d0b9e1..904aebffb 100644 --- a/src/services/log.ts +++ b/src/services/log.ts @@ -1,7 +1,7 @@ "use strict"; import { Request, Response } from "express"; -import fs = require("fs"); +import fs = require('fs'); import dataDir = require('./data_dir'); import cls = require('./cls'); diff --git a/src/services/meta/note_meta.ts b/src/services/meta/note_meta.ts index b3012f29a..f6467f213 100644 --- a/src/services/meta/note_meta.ts +++ b/src/services/meta/note_meta.ts @@ -1,5 +1,5 @@ -import AttachmentMeta = require("./attachment_meta"); -import AttributeMeta = require("./attribute_meta"); +import AttachmentMeta = require('./attachment_meta'); +import AttributeMeta = require('./attribute_meta'); interface NoteMeta { noteId?: string; diff --git a/src/services/notes.ts b/src/services/notes.ts index 2e099392e..d570237a3 100644 --- a/src/services/notes.ts +++ b/src/services/notes.ts @@ -16,11 +16,11 @@ import BBranch = require('../becca/entities/bbranch'); import BNote = require('../becca/entities/bnote'); import BAttribute = require('../becca/entities/battribute'); import BAttachment = require('../becca/entities/battachment'); -import dayjs = require("dayjs"); +import dayjs = require('dayjs'); import htmlSanitizer = require('./html_sanitizer'); import ValidationError = require('../errors/validation_error'); import noteTypesService = require('./note_types'); -import fs = require("fs"); +import fs = require('fs'); import ws = require('./ws'); import html2plaintext = require('html2plaintext'); import { AttachmentRow, AttributeRow, BranchRow, NoteRow, NoteType } from '../becca/entities/rows'; diff --git a/src/services/request.ts b/src/services/request.ts index d4a17ad4e..85d0889ff 100644 --- a/src/services/request.ts +++ b/src/services/request.ts @@ -202,8 +202,8 @@ function getProxyAgent(opts: ClientOpts) { } const AgentClass = HTTP === protocol - ? require("http-proxy-agent").HttpProxyAgent - : require("https-proxy-agent").HttpsProxyAgent; + ? require('http-proxy-agent').HttpProxyAgent + : require('https-proxy-agent').HttpsProxyAgent; return new AgentClass(opts.proxy); } diff --git a/src/services/search/expressions/attribute_exists.ts b/src/services/search/expressions/attribute_exists.ts index b1f01a1c0..d8de33962 100644 --- a/src/services/search/expressions/attribute_exists.ts +++ b/src/services/search/expressions/attribute_exists.ts @@ -1,7 +1,7 @@ "use strict"; -import NoteSet = require("../note_set"); -import SearchContext = require("../search_context"); +import NoteSet = require('../note_set'); +import SearchContext = require('../search_context'); import becca = require('../../../becca/becca'); import Expression = require('./expression'); diff --git a/src/services/search/expressions/expression.ts b/src/services/search/expressions/expression.ts index c74341ba2..39c95ed47 100644 --- a/src/services/search/expressions/expression.ts +++ b/src/services/search/expressions/expression.ts @@ -1,7 +1,7 @@ "use strict"; -import NoteSet = require("../note_set"); -import SearchContext = require("../search_context"); +import NoteSet = require('../note_set'); +import SearchContext = require('../search_context'); abstract class Expression { name: string; diff --git a/src/services/search/expressions/note_content_fulltext.ts b/src/services/search/expressions/note_content_fulltext.ts index 02626bf16..68af72b25 100644 --- a/src/services/search/expressions/note_content_fulltext.ts +++ b/src/services/search/expressions/note_content_fulltext.ts @@ -1,7 +1,7 @@ "use strict"; import { NoteRow } from "../../../becca/entities/rows"; -import SearchContext = require("../search_context"); +import SearchContext = require('../search_context'); import Expression = require('./expression'); import NoteSet = require('../note_set'); @@ -10,7 +10,7 @@ import becca = require('../../../becca/becca'); import protectedSessionService = require('../../protected_session'); import striptags = require('striptags'); import utils = require('../../utils'); -import sql = require("../../sql"); +import sql = require('../../sql'); const ALLOWED_OPERATORS = ['=', '!=', '*=*', '*=', '=*', '%=']; diff --git a/src/services/search/expressions/note_flat_text.ts b/src/services/search/expressions/note_flat_text.ts index f163e8a7a..a067b456a 100644 --- a/src/services/search/expressions/note_flat_text.ts +++ b/src/services/search/expressions/note_flat_text.ts @@ -1,7 +1,7 @@ "use strict"; -import BNote = require("../../../becca/entities/bnote"); -import SearchContext = require("../search_context"); +import BNote = require('../../../becca/entities/bnote'); +import SearchContext = require('../search_context'); import Expression = require('./expression'); import NoteSet = require('../note_set'); diff --git a/src/services/search/expressions/order_by_and_limit.ts b/src/services/search/expressions/order_by_and_limit.ts index a3a37496f..87e6af093 100644 --- a/src/services/search/expressions/order_by_and_limit.ts +++ b/src/services/search/expressions/order_by_and_limit.ts @@ -1,9 +1,9 @@ "use strict"; -import BNote = require("../../../becca/entities/bnote"); -import NoteSet = require("../note_set"); -import SearchContext = require("../search_context"); -import Expression = require("./expression"); +import BNote = require('../../../becca/entities/bnote'); +import NoteSet = require('../note_set'); +import SearchContext = require('../search_context'); +import Expression = require('./expression'); interface ValueExtractor { extract: (note: BNote) => number | string | null; diff --git a/src/services/search/expressions/true.ts b/src/services/search/expressions/true.ts index a53d1afde..29df7df0f 100644 --- a/src/services/search/expressions/true.ts +++ b/src/services/search/expressions/true.ts @@ -1,7 +1,7 @@ "use strict"; -import NoteSet = require("../note_set"); -import SearchContext = require("../search_context"); +import NoteSet = require('../note_set'); +import SearchContext = require('../search_context'); import Expression = require('./expression'); diff --git a/src/services/search/note_set.ts b/src/services/search/note_set.ts index 47c644c38..82ea6d723 100644 --- a/src/services/search/note_set.ts +++ b/src/services/search/note_set.ts @@ -1,6 +1,6 @@ "use strict"; -import BNote = require("../../becca/entities/bnote"); +import BNote = require('../../becca/entities/bnote'); class NoteSet { diff --git a/src/services/search/services/parse.ts b/src/services/search/services/parse.ts index de943fdd2..fe1731d24 100644 --- a/src/services/search/services/parse.ts +++ b/src/services/search/services/parse.ts @@ -1,6 +1,6 @@ "use strict"; -import dayjs = require("dayjs"); +import dayjs = require('dayjs'); import AndExp = require('../expressions/and'); import OrExp = require('../expressions/or'); import NotExp = require('../expressions/not'); @@ -20,9 +20,9 @@ import ValueExtractor = require('../value_extractor'); import utils = require('../../utils'); import TrueExp = require('../expressions/true'); import IsHiddenExp = require('../expressions/is_hidden'); -import SearchContext = require("../search_context"); +import SearchContext = require('../search_context'); import { TokenData } from "./types"; -import Expression = require("../expressions/expression"); +import Expression = require('../expressions/expression'); function getFulltext(_tokens: TokenData[], searchContext: SearchContext) { const tokens: string[] = _tokens.map(t => utils.removeDiacritic(t.token)); diff --git a/src/services/search/services/search.ts b/src/services/search/services/search.ts index 7461d5b4e..6d3103a65 100644 --- a/src/services/search/services/search.ts +++ b/src/services/search/services/search.ts @@ -1,6 +1,6 @@ "use strict"; -import normalizeString = require("normalize-strings"); +import normalizeString = require('normalize-strings'); import lex = require('./lex'); import handleParens = require('./handle_parens'); import parse = require('./parse'); @@ -11,11 +11,11 @@ import beccaService = require('../../../becca/becca_service'); import utils = require('../../utils'); import log = require('../../log'); import hoistedNoteService = require('../../hoisted_note'); -import BNote = require("../../../becca/entities/bnote"); -import BAttribute = require("../../../becca/entities/battribute"); +import BNote = require('../../../becca/entities/bnote'); +import BAttribute = require('../../../becca/entities/battribute'); import { SearchParams, TokenData } from "./types"; -import Expression = require("../expressions/expression"); -import sql = require("../../sql"); +import Expression = require('../expressions/expression'); +import sql = require('../../sql'); function searchFromNote(note: BNote) { let searchResultNoteIds; diff --git a/src/services/search/value_extractor.ts b/src/services/search/value_extractor.ts index 4f2466f11..730adadc5 100644 --- a/src/services/search/value_extractor.ts +++ b/src/services/search/value_extractor.ts @@ -1,6 +1,6 @@ "use strict"; -import BNote = require("../../becca/entities/bnote"); +import BNote = require('../../becca/entities/bnote'); /** * Search string is lower cased for case-insensitive comparison. But when retrieving properties, diff --git a/src/services/sql.ts b/src/services/sql.ts index cb4a75df5..8565e0bdb 100644 --- a/src/services/sql.ts +++ b/src/services/sql.ts @@ -8,7 +8,7 @@ import log = require('./log'); import type { Statement, Database as DatabaseType, RunResult } from "better-sqlite3"; import dataDir = require('./data_dir'); import cls = require('./cls'); -import fs = require("fs-extra"); +import fs = require('fs-extra'); import Database = require('better-sqlite3'); const dbConnection: DatabaseType = new Database(dataDir.DOCUMENT_PATH); diff --git a/src/services/utils.ts b/src/services/utils.ts index aef261a6a..b3d549467 100644 --- a/src/services/utils.ts +++ b/src/services/utils.ts @@ -4,7 +4,7 @@ import crypto = require('crypto'); const randtoken = require('rand-token').generator({source: 'crypto'}); import unescape = require('unescape'); import escape = require('escape-html'); -import sanitize = require("sanitize-filename"); +import sanitize = require('sanitize-filename'); import mimeTypes = require('mime-types'); import path = require('path'); diff --git a/src/services/window.ts b/src/services/window.ts index ecc6395fb..80c93a5cc 100644 --- a/src/services/window.ts +++ b/src/services/window.ts @@ -1,5 +1,5 @@ import path = require('path'); -import url = require("url"); +import url = require('url'); import port = require('./port'); import optionService = require('./options'); import env = require('./env'); @@ -7,7 +7,7 @@ import log = require('./log'); import sqlInit = require('./sql_init'); import cls = require('./cls'); import keyboardActionsService = require('./keyboard_actions'); -import remoteMain = require("@electron/remote/main") +import remoteMain = require('@electron/remote/main') import { App, BrowserWindow, WebContents, ipcMain } from 'electron'; // Prevent the window being garbage collected @@ -100,7 +100,7 @@ function configureWebContents(webContents: WebContents, spellcheckEnabled: boole remoteMain.enable(webContents); mainWindow.webContents.setWindowOpenHandler((details) => { - require("electron").shell.openExternal(details.url); + require('electron').shell.openExternal(details.url); return { action: 'deny' } }); diff --git a/src/share/content_renderer.ts b/src/share/content_renderer.ts index cb111008a..238efeae1 100644 --- a/src/share/content_renderer.ts +++ b/src/share/content_renderer.ts @@ -3,7 +3,7 @@ import shaca = require('./shaca/shaca'); import assetPath = require('../services/asset_path'); import shareRoot = require('./share_root'); import escapeHtml = require('escape-html'); -import SNote = require("./shaca/entities/snote"); +import SNote = require('./shaca/entities/snote'); interface Result { header: string; diff --git a/src/share/routes.ts b/src/share/routes.ts index 97a0dd8e1..2b5650c6c 100644 --- a/src/share/routes.ts +++ b/src/share/routes.ts @@ -1,5 +1,5 @@ import safeCompare = require('safe-compare'); -import ejs = require("ejs"); +import ejs = require('ejs'); import type { Request, Response, Router } from "express"; diff --git a/src/share/shaca/entities/sattribute.ts b/src/share/shaca/entities/sattribute.ts index 6bd8418b1..c63de14e6 100644 --- a/src/share/shaca/entities/sattribute.ts +++ b/src/share/shaca/entities/sattribute.ts @@ -1,7 +1,7 @@ "use strict"; import { SAttributeRow } from "./rows"; -import SNote = require("./snote"); +import SNote = require('./snote'); const AbstractShacaEntity = require('./abstract_shaca_entity'); diff --git a/src/share/shaca/shaca-interface.ts b/src/share/shaca/shaca-interface.ts index 9cff96eeb..a90d52469 100644 --- a/src/share/shaca/shaca-interface.ts +++ b/src/share/shaca/shaca-interface.ts @@ -1,7 +1,7 @@ -import SAttachment = require("./entities/sattachment"); -import SAttribute = require("./entities/sattribute"); -import SBranch = require("./entities/sbranch"); -import SNote = require("./entities/snote"); +import SAttachment = require('./entities/sattachment'); +import SAttribute = require('./entities/sattribute'); +import SBranch = require('./entities/sbranch'); +import SNote = require('./entities/snote'); export default class Shaca { diff --git a/src/types.d.ts b/src/types.d.ts index 9fe04a204..9dbab6745 100644 --- a/src/types.d.ts +++ b/src/types.d.ts @@ -19,7 +19,7 @@ declare module 'normalize-strings' { } declare module 'joplin-turndown-plugin-gfm' { - import TurndownService = require("turndown"); + import TurndownService = require('turndown'); namespace gfm { function gfm(service: TurndownService): void; } diff --git a/src/www.ts b/src/www.ts index 3f9aa752e..4ff6244ff 100644 --- a/src/www.ts +++ b/src/www.ts @@ -54,7 +54,7 @@ function startTrilium() { * to do a complex evaluation. */ if (utils.isElectron()) { - require("electron").app.requestSingleInstanceLock(); + require('electron').app.requestSingleInstanceLock(); } log.info(JSON.stringify(appInfo, null, 2)); From 35d11cc0d2fb97fcf4c2ff1115d5db61399ef054 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Thu, 18 Jul 2024 21:35:17 +0300 Subject: [PATCH 04/25] server-esm: Change simple local import statements --- electron.ts | 8 +- spec/etapi/app_info.spec.ts | 2 +- spec/etapi/backup.spec.ts | 2 +- spec/etapi/import.spec.ts | 2 +- spec/etapi/notes.spec.ts | 2 +- spec/search/becca_mocking.ts | 10 +- spec/search/lexer.spec.ts | 2 +- spec/search/parser.spec.ts | 6 +- spec/search/search.spec.ts | 14 +-- spec/search/value_extractor.spec.ts | 8 +- src/anonymize.ts | 4 +- src/app.ts | 4 +- src/becca/becca-interface.ts | 26 ++-- src/becca/becca_loader.ts | 26 ++-- src/becca/becca_service.ts | 6 +- src/becca/entities/abstract_becca_entity.ts | 18 +-- src/becca/entities/battachment.ts | 16 +-- src/becca/entities/battribute.ts | 10 +- src/becca/entities/bblob.ts | 2 +- src/becca/entities/bbranch.ts | 14 +-- src/becca/entities/betapi_token.ts | 4 +- src/becca/entities/bnote.ts | 24 ++-- src/becca/entities/boption.ts | 4 +- src/becca/entities/brecent_note.ts | 4 +- src/becca/entities/brevision.ts | 14 +-- src/becca/entity_constructor.ts | 20 +-- src/becca/similarity.ts | 10 +- src/etapi/app_info.ts | 4 +- src/etapi/attachments.ts | 10 +- src/etapi/attributes.ts | 10 +- src/etapi/auth.ts | 8 +- src/etapi/backup.ts | 4 +- src/etapi/branches.ts | 12 +- src/etapi/etapi_utils.ts | 12 +- src/etapi/mappers.ts | 8 +- src/etapi/notes.ts | 24 ++-- src/etapi/special_notes.ts | 8 +- src/etapi/validators.ts | 4 +- src/routes/api/app_info.ts | 2 +- src/routes/api/attachments.ts | 8 +- src/routes/api/attributes.ts | 12 +- src/routes/api/autocomplete.ts | 14 +-- src/routes/api/backend_log.ts | 4 +- src/routes/api/branches.ts | 22 ++-- src/routes/api/bulk_action.ts | 4 +- src/routes/api/clipper.ts | 28 ++--- src/routes/api/cloning.ts | 2 +- src/routes/api/database.ts | 12 +- src/routes/api/etapi_tokens.ts | 2 +- src/routes/api/export.ts | 16 +-- src/routes/api/files.ts | 18 +-- src/routes/api/fonts.ts | 2 +- src/routes/api/image.ts | 8 +- src/routes/api/import.ts | 22 ++-- src/routes/api/keys.ts | 4 +- src/routes/api/login.ts | 24 ++-- src/routes/api/note_map.ts | 8 +- src/routes/api/notes.ts | 22 ++-- src/routes/api/options.ts | 8 +- src/routes/api/other.ts | 4 +- src/routes/api/password.ts | 4 +- src/routes/api/recent_changes.ts | 8 +- src/routes/api/recent_notes.ts | 6 +- src/routes/api/relation-map.ts | 4 +- src/routes/api/revisions.ts | 20 +-- src/routes/api/script.ts | 10 +- src/routes/api/search.ts | 16 +-- src/routes/api/sender.ts | 8 +- src/routes/api/setup.ts | 8 +- src/routes/api/similar_notes.ts | 4 +- src/routes/api/special_notes.ts | 10 +- src/routes/api/sql.ts | 6 +- src/routes/api/stats.ts | 4 +- src/routes/api/sync.ts | 24 ++-- src/routes/api/tree.ts | 8 +- src/routes/assets.ts | 4 +- src/routes/custom.ts | 12 +- src/routes/error_handlers.ts | 2 +- src/routes/index.ts | 22 ++-- src/routes/login.ts | 16 +-- src/routes/routes.ts | 118 +++++++++--------- src/routes/session_parser.ts | 4 +- src/routes/setup.ts | 10 +- src/services/anonymization.ts | 8 +- src/services/app_icon.ts | 8 +- src/services/app_info.ts | 6 +- src/services/app_path.ts | 4 +- src/services/asset_path.ts | 2 +- src/services/attributes.ts | 14 +-- src/services/auth.ts | 14 +-- src/services/backend_script_api.ts | 58 ++++----- src/services/backend_script_api_interface.ts | 4 +- src/services/backup.ts | 14 +-- src/services/blob.ts | 8 +- src/services/branches.ts | 6 +- src/services/bulk_actions.ts | 14 +-- src/services/config.ts | 4 +- src/services/consistency_checks.ts | 28 ++--- src/services/content_hash.ts | 8 +- src/services/date_notes.ts | 18 +-- src/services/date_utils.ts | 2 +- src/services/encryption/data_encryption.ts | 2 +- src/services/encryption/my_scrypt.ts | 2 +- src/services/encryption/password.ts | 10 +- .../encryption/password_encryption.ts | 8 +- src/services/entity_changes.ts | 16 +-- src/services/erase.ts | 16 +-- src/services/etapi_tokens.ts | 6 +- src/services/export/opml.ts | 8 +- src/services/export/single.ts | 10 +- src/services/export/zip.ts | 26 ++-- src/services/handlers.ts | 20 +-- src/services/hidden_subtree.ts | 10 +- src/services/hoisted_note.ts | 4 +- src/services/host.ts | 2 +- src/services/image.ts | 14 +-- src/services/import/enex.ts | 20 +-- src/services/import/markdown.ts | 4 +- src/services/import/opml.ts | 10 +- src/services/import/single.ts | 20 +-- src/services/import/zip.ts | 34 ++--- src/services/instance_id.ts | 2 +- src/services/keyboard_actions.ts | 6 +- src/services/log.ts | 4 +- src/services/meta/note_meta.ts | 4 +- src/services/migration.ts | 14 +-- src/services/notes.ts | 42 +++---- src/services/options.ts | 4 +- src/services/options_init.ts | 12 +- src/services/port.ts | 8 +- src/services/protected_session.ts | 4 +- src/services/request.ts | 6 +- src/services/resource_dir.ts | 2 +- src/services/revisions.ts | 10 +- src/services/scheduler.ts | 18 +-- src/services/script.ts | 10 +- src/services/script_context.ts | 6 +- src/services/search/expressions/ancestor.ts | 10 +- src/services/search/expressions/and.ts | 8 +- .../search/expressions/attribute_exists.ts | 8 +- src/services/search/expressions/child_of.ts | 6 +- .../search/expressions/descendant_of.ts | 8 +- src/services/search/expressions/expression.ts | 4 +- src/services/search/expressions/is_hidden.ts | 6 +- .../search/expressions/label_comparison.ts | 8 +- src/services/search/expressions/not.ts | 6 +- .../expressions/note_content_fulltext.ts | 16 +-- .../search/expressions/note_flat_text.ts | 12 +- src/services/search/expressions/or.ts | 8 +- .../search/expressions/order_by_and_limit.ts | 8 +- src/services/search/expressions/parent_of.ts | 6 +- .../search/expressions/property_comparison.ts | 6 +- .../search/expressions/relation_where.ts | 8 +- src/services/search/expressions/true.ts | 6 +- src/services/search/note_set.ts | 2 +- src/services/search/search_context.ts | 2 +- src/services/search/search_result.ts | 4 +- src/services/search/services/parse.ts | 42 +++---- src/services/search/services/search.ts | 28 ++--- src/services/search/value_extractor.ts | 2 +- src/services/session_secret.ts | 4 +- src/services/setup.ts | 18 +-- src/services/special_notes.ts | 20 +-- src/services/sql.ts | 6 +- src/services/sql_init.ts | 22 ++-- src/services/sync.ts | 34 ++--- src/services/sync_options.ts | 4 +- src/services/sync_update.ts | 12 +- src/services/task_context.ts | 2 +- src/services/tray.ts | 4 +- src/services/tree.ts | 12 +- src/services/window.ts | 14 +-- src/services/ws.ts | 20 +-- src/share/content_renderer.ts | 8 +- src/share/routes.ts | 24 ++-- src/share/shaca/entities/sattachment.ts | 8 +- src/share/shaca/entities/sattribute.ts | 2 +- src/share/shaca/entities/sbranch.ts | 4 +- src/share/shaca/entities/snote.ts | 12 +- src/share/shaca/shaca-interface.ts | 8 +- src/share/shaca/shaca_loader.ts | 18 +-- src/share/sql.ts | 2 +- src/www.ts | 18 +-- webpack.config.ts | 2 +- 184 files changed, 1023 insertions(+), 1023 deletions(-) diff --git a/electron.ts b/electron.ts index 994890537..1872e7167 100644 --- a/electron.ts +++ b/electron.ts @@ -1,10 +1,10 @@ "use strict"; import electron = require('electron'); -import sqlInit = require('./src/services/sql_init'); -import appIconService = require('./src/services/app_icon'); -import windowService = require('./src/services/window'); -import tray = require('./src/services/tray'); +import sqlInit from "./src/services/sql_init.js"; +import appIconService from "./src/services/app_icon.js"; +import windowService from "./src/services/window.js"; +import tray from "./src/services/tray.js"; // Adds debug features like hotkeys for triggering dev tools and reload require('electron-debug')(); diff --git a/spec/etapi/app_info.spec.ts b/spec/etapi/app_info.spec.ts index 536d77df8..6ba049357 100644 --- a/spec/etapi/app_info.spec.ts +++ b/spec/etapi/app_info.spec.ts @@ -1,4 +1,4 @@ -import etapi = require('../support/etapi'); +import etapi from "../support/etapi.js"; etapi.describeEtapi("app_info", () => { it("get", async () => { diff --git a/spec/etapi/backup.spec.ts b/spec/etapi/backup.spec.ts index 56ef63827..2f9532f71 100644 --- a/spec/etapi/backup.spec.ts +++ b/spec/etapi/backup.spec.ts @@ -1,4 +1,4 @@ -import etapi = require('../support/etapi'); +import etapi from "../support/etapi.js"; etapi.describeEtapi("backup", () => { it("create", async () => { diff --git a/spec/etapi/import.spec.ts b/spec/etapi/import.spec.ts index 1f70eaf31..735e328d1 100644 --- a/spec/etapi/import.spec.ts +++ b/spec/etapi/import.spec.ts @@ -1,4 +1,4 @@ -import etapi = require('../support/etapi'); +import etapi from "../support/etapi.js"; import fs = require('fs'); import path = require('path'); diff --git a/spec/etapi/notes.spec.ts b/spec/etapi/notes.spec.ts index 1b4774d66..8fcfc4c77 100644 --- a/spec/etapi/notes.spec.ts +++ b/spec/etapi/notes.spec.ts @@ -1,5 +1,5 @@ import crypto = require('crypto'); -import etapi = require('../support/etapi'); +import etapi from "../support/etapi.js"; etapi.describeEtapi("notes", () => { it("create", async () => { diff --git a/spec/search/becca_mocking.ts b/spec/search/becca_mocking.ts index a39a81162..984ea2940 100644 --- a/spec/search/becca_mocking.ts +++ b/spec/search/becca_mocking.ts @@ -1,9 +1,9 @@ -import BNote = require('../../src/becca/entities/bnote'); -import BBranch = require('../../src/becca/entities/bbranch'); -import BAttribute = require('../../src/becca/entities/battribute'); -import becca = require('../../src/becca/becca'); +import BNote from "../../src/becca/entities/bnote.js"; +import BBranch from "../../src/becca/entities/bbranch.js"; +import BAttribute from "../../src/becca/entities/battribute.js"; +import becca from "../../src/becca/becca.js"; import randtoken = require('rand-token'); -import SearchResult = require('../../src/services/search/search_result'); +import SearchResult from "../../src/services/search/search_result.js"; import { NoteType } from "../../src/becca/entities/rows"; randtoken.generator({ source: "crypto" }); diff --git a/spec/search/lexer.spec.ts b/spec/search/lexer.spec.ts index 553140538..d97f435c3 100644 --- a/spec/search/lexer.spec.ts +++ b/spec/search/lexer.spec.ts @@ -1,4 +1,4 @@ -import lex = require('../../src/services/search/services/lex'); +import lex from "../../src/services/search/services/lex.js"; describe("Lexer fulltext", () => { it("simple lexing", () => { diff --git a/spec/search/parser.spec.ts b/spec/search/parser.spec.ts index d8ba2d7a6..003036664 100644 --- a/spec/search/parser.spec.ts +++ b/spec/search/parser.spec.ts @@ -2,9 +2,9 @@ // There are many issues with the types of the parser e.g. "parse" function returns "Expression" // but we access properties like "subExpressions" which is not defined in the "Expression" class. -import Expression = require('../../src/services/search/expressions/expression'); -import SearchContext = require('../../src/services/search/search_context'); -import parse = require('../../src/services/search/services/parse'); +import Expression from "../../src/services/search/expressions/expression.js"; +import SearchContext from "../../src/services/search/search_context.js"; +import parse from "../../src/services/search/services/parse.js"; function tokens(toks: Array, cur = 0): Array { return toks.map((arg) => { diff --git a/spec/search/search.spec.ts b/spec/search/search.spec.ts index c7f142b04..45c0f3acd 100644 --- a/spec/search/search.spec.ts +++ b/spec/search/search.spec.ts @@ -1,11 +1,11 @@ -import searchService = require('../../src/services/search/services/search'); -import BNote = require('../../src/becca/entities/bnote'); -import BBranch = require('../../src/becca/entities/bbranch'); -import SearchContext = require('../../src/services/search/search_context'); -import dateUtils = require('../../src/services/date_utils'); -import becca = require('../../src/becca/becca'); +import searchService from "../../src/services/search/services/search.js"; +import BNote from "../../src/becca/entities/bnote.js"; +import BBranch from "../../src/becca/entities/bbranch.js"; +import SearchContext from "../../src/services/search/search_context.js"; +import dateUtils from "../../src/services/date_utils.js"; +import becca from "../../src/becca/becca.js"; // const { NoteBuilder, findNoteByTitle, note } = require('./becca_mocking'); -import becca_mocking = require('./becca_mocking'); +import becca_mocking from "./becca_mocking.js"; describe('Search', () => { let rootNote: any; diff --git a/spec/search/value_extractor.spec.ts b/spec/search/value_extractor.spec.ts index 28343bab8..1672ddbb6 100644 --- a/spec/search/value_extractor.spec.ts +++ b/spec/search/value_extractor.spec.ts @@ -1,7 +1,7 @@ -import becca_mocking = require('./becca_mocking'); -import ValueExtractor = require('../../src/services/search/value_extractor'); -import becca = require('../../src/becca/becca'); -import SearchContext = require('../../src/services/search/search_context'); +import becca_mocking from "./becca_mocking.js"; +import ValueExtractor from "../../src/services/search/value_extractor.js"; +import becca from "../../src/becca/becca.js"; +import SearchContext from "../../src/services/search/search_context.js"; const dsc = new SearchContext(); diff --git a/src/anonymize.ts b/src/anonymize.ts index cd449e479..89f9d2d0c 100644 --- a/src/anonymize.ts +++ b/src/anonymize.ts @@ -1,5 +1,5 @@ -import anonymizationService = require('./services/anonymization'); -import sqlInit = require('./services/sql_init'); +import anonymizationService from "./services/anonymization.js"; +import sqlInit from "./services/sql_init.js"; require('./becca/entity_constructor'); sqlInit.dbReady.then(async () => { diff --git a/src/app.ts b/src/app.ts index ceabe33f9..ebda1a44c 100644 --- a/src/app.ts +++ b/src/app.ts @@ -4,8 +4,8 @@ import favicon = require('serve-favicon'); import cookieParser = require('cookie-parser'); import helmet = require('helmet'); import compression = require('compression'); -import sessionParser = require('./routes/session_parser'); -import utils = require('./services/utils'); +import sessionParser from "./routes/session_parser.js"; +import utils from "./services/utils.js"; require('./services/handlers'); require('./becca/becca_loader'); diff --git a/src/becca/becca-interface.ts b/src/becca/becca-interface.ts index 21892676d..09ae01959 100644 --- a/src/becca/becca-interface.ts +++ b/src/becca/becca-interface.ts @@ -1,17 +1,17 @@ -import sql = require('../services/sql'); -import NoteSet = require('../services/search/note_set'); -import NotFoundError = require('../errors/not_found_error'); -import BOption = require('./entities/boption'); -import BNote = require('./entities/bnote'); -import BEtapiToken = require('./entities/betapi_token'); -import BAttribute = require('./entities/battribute'); -import BBranch = require('./entities/bbranch'); -import BRevision = require('./entities/brevision'); -import BAttachment = require('./entities/battachment'); +import sql from "../services/sql.js"; +import NoteSet from "../services/search/note_set.js"; +import NotFoundError from "../errors/not_found_error.js"; +import BOption from "./entities/boption.js"; +import BNote from "./entities/bnote.js"; +import BEtapiToken from "./entities/betapi_token.js"; +import BAttribute from "./entities/battribute.js"; +import BBranch from "./entities/bbranch.js"; +import BRevision from "./entities/brevision.js"; +import BAttachment from "./entities/battachment.js"; import { AttachmentRow, RevisionRow } from './entities/rows'; -import BBlob = require('./entities/bblob'); -import BRecentNote = require('./entities/brecent_note'); -import AbstractBeccaEntity = require('./entities/abstract_becca_entity'); +import BBlob from "./entities/bblob.js"; +import BRecentNote from "./entities/brecent_note.js"; +import AbstractBeccaEntity from "./entities/abstract_becca_entity.js"; interface AttachmentOpts { includeContentLength?: boolean; diff --git a/src/becca/becca_loader.ts b/src/becca/becca_loader.ts index b7ea941c8..24eb1ca21 100644 --- a/src/becca/becca_loader.ts +++ b/src/becca/becca_loader.ts @@ -1,19 +1,19 @@ "use strict"; -import sql = require('../services/sql'); -import eventService = require('../services/events'); -import becca = require('./becca'); -import sqlInit = require('../services/sql_init'); -import log = require('../services/log'); -import BNote = require('./entities/bnote'); -import BBranch = require('./entities/bbranch'); -import BAttribute = require('./entities/battribute'); -import BOption = require('./entities/boption'); -import BEtapiToken = require('./entities/betapi_token'); -import cls = require('../services/cls'); -import entityConstructor = require('../becca/entity_constructor'); +import sql from "../services/sql.js"; +import eventService from "../services/events.js"; +import becca from "./becca.js"; +import sqlInit from "../services/sql_init.js"; +import log from "../services/log.js"; +import BNote from "./entities/bnote.js"; +import BBranch from "./entities/bbranch.js"; +import BAttribute from "./entities/battribute.js"; +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 { AttributeRow, BranchRow, EtapiTokenRow, NoteRow, OptionRow } from './entities/rows'; -import AbstractBeccaEntity = require('./entities/abstract_becca_entity'); +import AbstractBeccaEntity from "./entities/abstract_becca_entity.js"; const beccaLoaded = new Promise((res, rej) => { sqlInit.dbReady.then(() => { diff --git a/src/becca/becca_service.ts b/src/becca/becca_service.ts index 2a9eb2781..0643f87ea 100644 --- a/src/becca/becca_service.ts +++ b/src/becca/becca_service.ts @@ -1,8 +1,8 @@ "use strict"; -import becca = require('./becca'); -import cls = require('../services/cls'); -import log = require('../services/log'); +import becca from "./becca.js"; +import cls from "../services/cls.js"; +import log from "../services/log.js"; function isNotePathArchived(notePath: string[]) { const noteId = notePath[notePath.length - 1]; diff --git a/src/becca/entities/abstract_becca_entity.ts b/src/becca/entities/abstract_becca_entity.ts index ad4eeae03..80a4a1bee 100644 --- a/src/becca/entities/abstract_becca_entity.ts +++ b/src/becca/entities/abstract_becca_entity.ts @@ -1,14 +1,14 @@ "use strict"; -import utils = require('../../services/utils'); -import sql = require('../../services/sql'); -import entityChangesService = require('../../services/entity_changes'); -import eventService = require('../../services/events'); -import dateUtils = require('../../services/date_utils'); -import cls = require('../../services/cls'); -import log = require('../../services/log'); -import protectedSessionService = require('../../services/protected_session'); -import blobService = require('../../services/blob'); +import utils from "../../services/utils.js"; +import sql from "../../services/sql.js"; +import entityChangesService from "../../services/entity_changes.js"; +import eventService from "../../services/events.js"; +import dateUtils from "../../services/date_utils.js"; +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 Becca, { ConstructorData } from '../becca-interface'; let becca: Becca; diff --git a/src/becca/entities/battachment.ts b/src/becca/entities/battachment.ts index 09f026ff0..9e7b60209 100644 --- a/src/becca/entities/battachment.ts +++ b/src/becca/entities/battachment.ts @@ -1,14 +1,14 @@ "use strict"; -import utils = require('../../services/utils'); -import dateUtils = require('../../services/date_utils'); -import AbstractBeccaEntity = require('./abstract_becca_entity'); -import sql = require('../../services/sql'); -import protectedSessionService = require('../../services/protected_session'); -import log = require('../../services/log'); +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 { AttachmentRow } from './rows'; -import BNote = require('./bnote'); -import BBranch = require('./bbranch'); +import BNote from "./bnote.js"; +import BBranch from "./bbranch.js"; const attachmentRoleToNoteTypeMapping = { 'image': 'image', diff --git a/src/becca/entities/battribute.ts b/src/becca/entities/battribute.ts index 6ad1965ed..2c37b8228 100644 --- a/src/becca/entities/battribute.ts +++ b/src/becca/entities/battribute.ts @@ -1,10 +1,10 @@ "use strict"; -import BNote = require('./bnote'); -import AbstractBeccaEntity = require('./abstract_becca_entity'); -import dateUtils = require('../../services/date_utils'); -import promotedAttributeDefinitionParser = require('../../services/promoted_attribute_definition_parser'); -import sanitizeAttributeName = require('../../services/sanitize_attribute_name'); +import BNote from "./bnote.js"; +import AbstractBeccaEntity from "./abstract_becca_entity.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"; import { AttributeRow, AttributeType } from './rows'; interface SavingOpts { diff --git a/src/becca/entities/bblob.ts b/src/becca/entities/bblob.ts index bb0e2f80e..122afb92e 100644 --- a/src/becca/entities/bblob.ts +++ b/src/becca/entities/bblob.ts @@ -1,4 +1,4 @@ -import AbstractBeccaEntity = require('./abstract_becca_entity'); +import AbstractBeccaEntity from "./abstract_becca_entity.js"; import { BlobRow } from "./rows"; // TODO: Why this does not extend the abstract becca? diff --git a/src/becca/entities/bbranch.ts b/src/becca/entities/bbranch.ts index 0f904de92..cb974ac9a 100644 --- a/src/becca/entities/bbranch.ts +++ b/src/becca/entities/bbranch.ts @@ -1,12 +1,12 @@ "use strict"; -import BNote = require('./bnote'); -import AbstractBeccaEntity = require('./abstract_becca_entity'); -import dateUtils = require('../../services/date_utils'); -import utils = require('../../services/utils'); -import TaskContext = require('../../services/task_context'); -import cls = require('../../services/cls'); -import log = require('../../services/log'); +import BNote from "./bnote.js"; +import AbstractBeccaEntity from "./abstract_becca_entity.js"; +import dateUtils from "../../services/date_utils.js"; +import utils from "../../services/utils.js"; +import TaskContext from "../../services/task_context.js"; +import cls from "../../services/cls.js"; +import log from "../../services/log.js"; import { BranchRow } from './rows'; /** diff --git a/src/becca/entities/betapi_token.ts b/src/becca/entities/betapi_token.ts index 390b580bd..b6f6f01e9 100644 --- a/src/becca/entities/betapi_token.ts +++ b/src/becca/entities/betapi_token.ts @@ -2,8 +2,8 @@ import { EtapiTokenRow } from "./rows"; -import dateUtils = require('../../services/date_utils'); -import AbstractBeccaEntity = require('./abstract_becca_entity'); +import dateUtils from "../../services/date_utils.js"; +import AbstractBeccaEntity from "./abstract_becca_entity.js"; /** * EtapiToken is an entity representing token used to authenticate against Trilium REST API from client applications. diff --git a/src/becca/entities/bnote.ts b/src/becca/entities/bnote.ts index bcf5f0aa3..1c8d229a5 100644 --- a/src/becca/entities/bnote.ts +++ b/src/becca/entities/bnote.ts @@ -1,20 +1,20 @@ "use strict"; -import protectedSessionService = require('../../services/protected_session'); -import log = require('../../services/log'); -import sql = require('../../services/sql'); -import utils = require('../../services/utils'); -import dateUtils = require('../../services/date_utils'); -import AbstractBeccaEntity = require('./abstract_becca_entity'); -import BRevision = require('./brevision'); -import BAttachment = require('./battachment'); -import TaskContext = require('../../services/task_context'); +import protectedSessionService from "../../services/protected_session.js"; +import log from "../../services/log.js"; +import sql from "../../services/sql.js"; +import utils from "../../services/utils.js"; +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 TaskContext from "../../services/task_context.js"; import dayjs = require('dayjs'); import utc = require('dayjs/plugin/utc'); -import eventService = require('../../services/events'); +import eventService from "../../services/events.js"; import { AttachmentRow, NoteRow, NoteType, RevisionRow } from './rows'; -import BBranch = require('./bbranch'); -import BAttribute = require('./battribute'); +import BBranch from "./bbranch.js"; +import BAttribute from "./battribute.js"; import { NotePojo } from '../becca-interface'; dayjs.extend(utc); diff --git a/src/becca/entities/boption.ts b/src/becca/entities/boption.ts index 48abee024..64ffeea58 100644 --- a/src/becca/entities/boption.ts +++ b/src/becca/entities/boption.ts @@ -1,7 +1,7 @@ "use strict"; -import dateUtils = require('../../services/date_utils'); -import AbstractBeccaEntity = require('./abstract_becca_entity'); +import dateUtils from "../../services/date_utils.js"; +import AbstractBeccaEntity from "./abstract_becca_entity.js"; import { OptionRow } from './rows'; /** diff --git a/src/becca/entities/brecent_note.ts b/src/becca/entities/brecent_note.ts index c19a83603..108c652bd 100644 --- a/src/becca/entities/brecent_note.ts +++ b/src/becca/entities/brecent_note.ts @@ -2,8 +2,8 @@ import { RecentNoteRow } from "./rows"; -import dateUtils = require('../../services/date_utils'); -import AbstractBeccaEntity = require('./abstract_becca_entity'); +import dateUtils from "../../services/date_utils.js"; +import AbstractBeccaEntity from "./abstract_becca_entity.js"; /** * RecentNote represents recently visited note. diff --git a/src/becca/entities/brevision.ts b/src/becca/entities/brevision.ts index 52714cd73..d17a49b60 100644 --- a/src/becca/entities/brevision.ts +++ b/src/becca/entities/brevision.ts @@ -1,12 +1,12 @@ "use strict"; -import protectedSessionService = require('../../services/protected_session'); -import utils = require('../../services/utils'); -import dateUtils = require('../../services/date_utils'); -import becca = require('../becca'); -import AbstractBeccaEntity = require('./abstract_becca_entity'); -import sql = require('../../services/sql'); -import BAttachment = require('./battachment'); +import protectedSessionService from "../../services/protected_session.js"; +import utils from "../../services/utils.js"; +import dateUtils from "../../services/date_utils.js"; +import becca from "../becca.js"; +import AbstractBeccaEntity from "./abstract_becca_entity.js"; +import sql from "../../services/sql.js"; +import BAttachment from "./battachment.js"; import { AttachmentRow, RevisionRow } from './rows'; interface ContentOpts { diff --git a/src/becca/entity_constructor.ts b/src/becca/entity_constructor.ts index 01c51363a..7c5bb8d38 100644 --- a/src/becca/entity_constructor.ts +++ b/src/becca/entity_constructor.ts @@ -1,14 +1,14 @@ import { ConstructorData } from './becca-interface'; -import AbstractBeccaEntity = require('./entities/abstract_becca_entity'); -import BAttachment = require('./entities/battachment'); -import BAttribute = require('./entities/battribute'); -import BBlob = require('./entities/bblob'); -import BBranch = require('./entities/bbranch'); -import BEtapiToken = require('./entities/betapi_token'); -import BNote = require('./entities/bnote'); -import BOption = require('./entities/boption'); -import BRecentNote = require('./entities/brecent_note'); -import BRevision = require('./entities/brevision'); +import AbstractBeccaEntity from "./entities/abstract_becca_entity.js"; +import BAttachment from "./entities/battachment.js"; +import BAttribute from "./entities/battribute.js"; +import BBlob from "./entities/bblob.js"; +import BBranch from "./entities/bbranch.js"; +import BEtapiToken from "./entities/betapi_token.js"; +import BNote from "./entities/bnote.js"; +import BOption from "./entities/boption.js"; +import BRecentNote from "./entities/brecent_note.js"; +import BRevision from "./entities/brevision.js"; type EntityClass = new (row?: any) => AbstractBeccaEntity; diff --git a/src/becca/similarity.ts b/src/becca/similarity.ts index e6721d0df..baf4f2e78 100644 --- a/src/becca/similarity.ts +++ b/src/becca/similarity.ts @@ -1,9 +1,9 @@ -import becca = require('./becca'); -import log = require('../services/log'); -import beccaService = require('./becca_service'); -import dateUtils = require('../services/date_utils'); +import becca from "./becca.js"; +import log from "../services/log.js"; +import beccaService from "./becca_service.js"; +import dateUtils from "../services/date_utils.js"; import { JSDOM } from "jsdom"; -import BNote = require('./entities/bnote'); +import BNote from "./entities/bnote.js"; const DEBUG = false; diff --git a/src/etapi/app_info.ts b/src/etapi/app_info.ts index 81830fec2..325725871 100644 --- a/src/etapi/app_info.ts +++ b/src/etapi/app_info.ts @@ -1,6 +1,6 @@ import { Router } from 'express'; -import appInfo = require('../services/app_info'); -import eu = require('./etapi_utils'); +import appInfo from "../services/app_info.js"; +import eu from "./etapi_utils.js"; function register(router: Router) { eu.route(router, 'get', '/etapi/app-info', (req, res, next) => { diff --git a/src/etapi/attachments.ts b/src/etapi/attachments.ts index 802e9975f..bb92f7375 100644 --- a/src/etapi/attachments.ts +++ b/src/etapi/attachments.ts @@ -1,8 +1,8 @@ -import becca = require('../becca/becca'); -import eu = require('./etapi_utils'); -import mappers = require('./mappers'); -import v = require('./validators'); -import utils = require('../services/utils'); +import becca from "../becca/becca.js"; +import eu from "./etapi_utils.js"; +import mappers from "./mappers.js"; +import v from "./validators.js"; +import utils from "../services/utils.js"; import { Router } from 'express'; import { AttachmentRow } from '../becca/entities/rows'; import { ValidatorMap } from './etapi-interface'; diff --git a/src/etapi/attributes.ts b/src/etapi/attributes.ts index 59865da62..b9eaa2ed5 100644 --- a/src/etapi/attributes.ts +++ b/src/etapi/attributes.ts @@ -1,8 +1,8 @@ -import becca = require('../becca/becca'); -import eu = require('./etapi_utils'); -import mappers = require('./mappers'); -import attributeService = require('../services/attributes'); -import v = require('./validators'); +import becca from "../becca/becca.js"; +import eu from "./etapi_utils.js"; +import mappers from "./mappers.js"; +import attributeService from "../services/attributes.js"; +import v from "./validators.js"; import { Router } from 'express'; import { AttributeRow } from '../becca/entities/rows'; import { ValidatorMap } from './etapi-interface'; diff --git a/src/etapi/auth.ts b/src/etapi/auth.ts index e6c440e52..dafb8af3e 100644 --- a/src/etapi/auth.ts +++ b/src/etapi/auth.ts @@ -1,7 +1,7 @@ -import becca = require('../becca/becca'); -import eu = require('./etapi_utils'); -import passwordEncryptionService = require('../services/encryption/password_encryption'); -import etapiTokenService = require('../services/etapi_tokens'); +import becca from "../becca/becca.js"; +import eu from "./etapi_utils.js"; +import passwordEncryptionService from "../services/encryption/password_encryption.js"; +import etapiTokenService from "../services/etapi_tokens.js"; import { RequestHandler, Router } from 'express'; function register(router: Router, loginMiddleware: RequestHandler[]) { diff --git a/src/etapi/backup.ts b/src/etapi/backup.ts index 50c2bd49c..e8ed2a0e2 100644 --- a/src/etapi/backup.ts +++ b/src/etapi/backup.ts @@ -1,7 +1,7 @@ import { Router } from "express"; -import eu = require('./etapi_utils'); -import backupService = require('../services/backup'); +import eu from "./etapi_utils.js"; +import backupService from "../services/backup.js"; function register(router: Router) { eu.route(router, 'put', '/etapi/backup/:backupName', async (req, res, next) => { diff --git a/src/etapi/branches.ts b/src/etapi/branches.ts index d41a5857b..6b4a0cdc3 100644 --- a/src/etapi/branches.ts +++ b/src/etapi/branches.ts @@ -1,11 +1,11 @@ import { Router } from "express"; -import becca = require('../becca/becca'); -import eu = require('./etapi_utils'); -import mappers = require('./mappers'); -import BBranch = require('../becca/entities/bbranch'); -import entityChangesService = require('../services/entity_changes'); -import v = require('./validators'); +import becca from "../becca/becca.js"; +import eu from "./etapi_utils.js"; +import mappers from "./mappers.js"; +import BBranch from "../becca/entities/bbranch.js"; +import entityChangesService from "../services/entity_changes.js"; +import v from "./validators.js"; import { BranchRow } from "../becca/entities/rows"; function register(router: Router) { diff --git a/src/etapi/etapi_utils.ts b/src/etapi/etapi_utils.ts index 9799deef0..38681c093 100644 --- a/src/etapi/etapi_utils.ts +++ b/src/etapi/etapi_utils.ts @@ -1,9 +1,9 @@ -import cls = require('../services/cls'); -import sql = require('../services/sql'); -import log = require('../services/log'); -import becca = require('../becca/becca'); -import etapiTokenService = require('../services/etapi_tokens'); -import config = require('../services/config'); +import cls from "../services/cls.js"; +import sql from "../services/sql.js"; +import log from "../services/log.js"; +import becca from "../becca/becca.js"; +import etapiTokenService from "../services/etapi_tokens.js"; +import config from "../services/config.js"; import { NextFunction, Request, RequestHandler, Response, Router } from 'express'; import { AppRequest, AppRequestHandler } from '../routes/route-interface'; import { ValidatorMap } from './etapi-interface'; diff --git a/src/etapi/mappers.ts b/src/etapi/mappers.ts index b7cbc9f8d..80bd65bc2 100644 --- a/src/etapi/mappers.ts +++ b/src/etapi/mappers.ts @@ -1,7 +1,7 @@ -import BAttachment = require('../becca/entities/battachment'); -import BAttribute = require('../becca/entities/battribute'); -import BBranch = require('../becca/entities/bbranch'); -import BNote = require('../becca/entities/bnote'); +import BAttachment from "../becca/entities/battachment.js"; +import BAttribute from "../becca/entities/battribute.js"; +import BBranch from "../becca/entities/bbranch.js"; +import BNote from "../becca/entities/bnote.js"; function mapNoteToPojo(note: BNote) { return { diff --git a/src/etapi/notes.ts b/src/etapi/notes.ts index 62263983f..30007f993 100644 --- a/src/etapi/notes.ts +++ b/src/etapi/notes.ts @@ -1,19 +1,19 @@ -import becca = require('../becca/becca'); -import utils = require('../services/utils'); -import eu = require('./etapi_utils'); -import mappers = require('./mappers'); -import noteService = require('../services/notes'); -import TaskContext = require('../services/task_context'); -import v = require('./validators'); -import searchService = require('../services/search/services/search'); -import SearchContext = require('../services/search/search_context'); -import zipExportService = require('../services/export/zip'); -import zipImportService = require('../services/import/zip'); +import becca from "../becca/becca.js"; +import utils from "../services/utils.js"; +import eu from "./etapi_utils.js"; +import mappers from "./mappers.js"; +import noteService from "../services/notes.js"; +import TaskContext from "../services/task_context.js"; +import v from "./validators.js"; +import searchService from "../services/search/services/search.js"; +import SearchContext from "../services/search/search_context.js"; +import zipExportService from "../services/export/zip.js"; +import zipImportService from "../services/import/zip.js"; import { Router } from 'express'; import { AppRequest } from '../routes/route-interface'; import { ParsedQs } from 'qs'; import { NoteParams } from '../services/note-interface'; -import BNote = require('../becca/entities/bnote'); +import BNote from "../becca/entities/bnote.js"; import { SearchParams } from '../services/search/services/types'; import { ValidatorMap } from './etapi-interface'; diff --git a/src/etapi/special_notes.ts b/src/etapi/special_notes.ts index 4de5d77df..e3dd87c34 100644 --- a/src/etapi/special_notes.ts +++ b/src/etapi/special_notes.ts @@ -1,7 +1,7 @@ -import specialNotesService = require('../services/special_notes'); -import dateNotesService = require('../services/date_notes'); -import eu = require('./etapi_utils'); -import mappers = require('./mappers'); +import specialNotesService from "../services/special_notes.js"; +import dateNotesService from "../services/date_notes.js"; +import eu from "./etapi_utils.js"; +import mappers from "./mappers.js"; import { Router } from 'express'; const getDateInvalidError = (date: string) => new eu.EtapiError(400, "DATE_INVALID", `Date "${date}" is not valid.`); diff --git a/src/etapi/validators.ts b/src/etapi/validators.ts index ce6935c7c..f45c36bc9 100644 --- a/src/etapi/validators.ts +++ b/src/etapi/validators.ts @@ -1,5 +1,5 @@ -import noteTypeService = require('../services/note_types'); -import dateUtils = require('../services/date_utils'); +import noteTypeService from "../services/note_types.js"; +import dateUtils from "../services/date_utils.js"; function mandatory(obj: unknown) { if (obj === undefined) { diff --git a/src/routes/api/app_info.ts b/src/routes/api/app_info.ts index 66a9bc366..988c832ac 100644 --- a/src/routes/api/app_info.ts +++ b/src/routes/api/app_info.ts @@ -1,6 +1,6 @@ "use strict"; -import appInfo = require('../../services/app_info'); +import appInfo from "../../services/app_info.js"; function getAppInfo() { return appInfo; diff --git a/src/routes/api/attachments.ts b/src/routes/api/attachments.ts index 8ccbefc85..5f7586ded 100644 --- a/src/routes/api/attachments.ts +++ b/src/routes/api/attachments.ts @@ -1,7 +1,7 @@ -import becca = require('../../becca/becca'); -import blobService = require('../../services/blob'); -import ValidationError = require('../../errors/validation_error'); -import imageService = require('../../services/image'); +import becca from "../../becca/becca.js"; +import blobService from "../../services/blob.js"; +import ValidationError from "../../errors/validation_error.js"; +import imageService from "../../services/image.js"; import { Request } from 'express'; function getAttachmentBlob(req: Request) { diff --git a/src/routes/api/attributes.ts b/src/routes/api/attributes.ts index e66906f37..593417bf9 100644 --- a/src/routes/api/attributes.ts +++ b/src/routes/api/attributes.ts @@ -1,11 +1,11 @@ "use strict"; -import sql = require('../../services/sql'); -import log = require('../../services/log'); -import attributeService = require('../../services/attributes'); -import BAttribute = require('../../becca/entities/battribute'); -import becca = require('../../becca/becca'); -import ValidationError = require('../../errors/validation_error'); +import sql from "../../services/sql.js"; +import log from "../../services/log.js"; +import attributeService from "../../services/attributes.js"; +import BAttribute from "../../becca/entities/battribute.js"; +import becca from "../../becca/becca.js"; +import ValidationError from "../../errors/validation_error.js"; import { Request } from 'express'; function getEffectiveNoteAttributes(req: Request) { diff --git a/src/routes/api/autocomplete.ts b/src/routes/api/autocomplete.ts index 0aaa3f537..0a45b7806 100644 --- a/src/routes/api/autocomplete.ts +++ b/src/routes/api/autocomplete.ts @@ -1,13 +1,13 @@ "use strict"; -import beccaService = require('../../becca/becca_service'); -import searchService = require('../../services/search/services/search'); -import log = require('../../services/log'); -import utils = require('../../services/utils'); -import cls = require('../../services/cls'); -import becca = require('../../becca/becca'); +import beccaService from "../../becca/becca_service.js"; +import searchService from "../../services/search/services/search.js"; +import log from "../../services/log.js"; +import utils from "../../services/utils.js"; +import cls from "../../services/cls.js"; +import becca from "../../becca/becca.js"; import { Request } from 'express'; -import ValidationError = require('../../errors/validation_error'); +import ValidationError from "../../errors/validation_error.js"; function getAutocomplete(req: Request) { if (typeof req.query.query !== "string") { diff --git a/src/routes/api/backend_log.ts b/src/routes/api/backend_log.ts index a4dbac9ab..d55602e13 100644 --- a/src/routes/api/backend_log.ts +++ b/src/routes/api/backend_log.ts @@ -1,8 +1,8 @@ "use strict"; import fs = require('fs'); -import dateUtils = require('../../services/date_utils'); -import dataDir = require('../../services/data_dir'); +import dateUtils from "../../services/date_utils.js"; +import dataDir from "../../services/data_dir.js"; const { LOG_DIR } = dataDir; function getBackendLog() { diff --git a/src/routes/api/branches.ts b/src/routes/api/branches.ts index 102ffde7d..67b50211e 100644 --- a/src/routes/api/branches.ts +++ b/src/routes/api/branches.ts @@ -1,16 +1,16 @@ "use strict"; -import sql = require('../../services/sql'); -import utils = require('../../services/utils'); -import entityChangesService = require('../../services/entity_changes'); -import treeService = require('../../services/tree'); -import eraseService = require('../../services/erase'); -import becca = require('../../becca/becca'); -import TaskContext = require('../../services/task_context'); -import branchService = require('../../services/branches'); -import log = require('../../services/log'); -import ValidationError = require('../../errors/validation_error'); -import eventService = require('../../services/events'); +import sql from "../../services/sql.js"; +import utils from "../../services/utils.js"; +import entityChangesService from "../../services/entity_changes.js"; +import treeService from "../../services/tree.js"; +import eraseService from "../../services/erase.js"; +import becca from "../../becca/becca.js"; +import TaskContext from "../../services/task_context.js"; +import branchService from "../../services/branches.js"; +import log from "../../services/log.js"; +import ValidationError from "../../errors/validation_error.js"; +import eventService from "../../services/events.js"; import { Request } from 'express'; /** diff --git a/src/routes/api/bulk_action.ts b/src/routes/api/bulk_action.ts index 4d1a3e98f..adbc15d32 100644 --- a/src/routes/api/bulk_action.ts +++ b/src/routes/api/bulk_action.ts @@ -1,6 +1,6 @@ import { Request } from 'express'; -import becca = require('../../becca/becca'); -import bulkActionService = require('../../services/bulk_actions'); +import becca from "../../becca/becca.js"; +import bulkActionService from "../../services/bulk_actions.js"; function execute(req: Request) { const {noteIds, includeDescendants} = req.body; diff --git a/src/routes/api/clipper.ts b/src/routes/api/clipper.ts index c8c635633..31926afb0 100644 --- a/src/routes/api/clipper.ts +++ b/src/routes/api/clipper.ts @@ -2,22 +2,22 @@ import { Request } from "express"; -import attributeService = require('../../services/attributes'); -import cloneService = require('../../services/cloning'); -import noteService = require('../../services/notes'); -import dateNoteService = require('../../services/date_notes'); -import dateUtils = require('../../services/date_utils'); -import imageService = require('../../services/image'); -import appInfo = require('../../services/app_info'); -import ws = require('../../services/ws'); -import log = require('../../services/log'); -import utils = require('../../services/utils'); +import attributeService from "../../services/attributes.js"; +import cloneService from "../../services/cloning.js"; +import noteService from "../../services/notes.js"; +import dateNoteService from "../../services/date_notes.js"; +import dateUtils from "../../services/date_utils.js"; +import imageService from "../../services/image.js"; +import appInfo from "../../services/app_info.js"; +import ws from "../../services/ws.js"; +import log from "../../services/log.js"; +import utils from "../../services/utils.js"; import path = require('path'); -import htmlSanitizer = require('../../services/html_sanitizer'); -import attributeFormatter = require('../../services/attribute_formatter'); +import htmlSanitizer from "../../services/html_sanitizer.js"; +import attributeFormatter from "../../services/attribute_formatter.js"; import jsdom = require('jsdom'); -import BNote = require('../../becca/entities/bnote'); -import ValidationError = require('../../errors/validation_error'); +import BNote from "../../becca/entities/bnote.js"; +import ValidationError from "../../errors/validation_error.js"; const { JSDOM } = jsdom; interface Image { diff --git a/src/routes/api/cloning.ts b/src/routes/api/cloning.ts index 8ab02900d..e6f9c16cc 100644 --- a/src/routes/api/cloning.ts +++ b/src/routes/api/cloning.ts @@ -1,7 +1,7 @@ "use strict"; import { Request } from 'express'; -import cloningService = require('../../services/cloning'); +import cloningService from "../../services/cloning.js"; function cloneNoteToBranch(req: Request) { const {noteId, parentBranchId} = req.params; diff --git a/src/routes/api/database.ts b/src/routes/api/database.ts index 199862b41..660afab47 100644 --- a/src/routes/api/database.ts +++ b/src/routes/api/database.ts @@ -1,12 +1,12 @@ "use strict"; -import sql = require('../../services/sql'); -import log = require('../../services/log'); -import backupService = require('../../services/backup'); -import anonymizationService = require('../../services/anonymization'); -import consistencyChecksService = require('../../services/consistency_checks'); +import sql from "../../services/sql.js"; +import log from "../../services/log.js"; +import backupService from "../../services/backup.js"; +import anonymizationService from "../../services/anonymization.js"; +import consistencyChecksService from "../../services/consistency_checks.js"; import { Request } from 'express'; -import ValidationError = require('../../errors/validation_error'); +import ValidationError from "../../errors/validation_error.js"; function getExistingBackups() { return backupService.getExistingBackups(); diff --git a/src/routes/api/etapi_tokens.ts b/src/routes/api/etapi_tokens.ts index d7dd078bd..28f74a28a 100644 --- a/src/routes/api/etapi_tokens.ts +++ b/src/routes/api/etapi_tokens.ts @@ -1,5 +1,5 @@ import { Request } from 'express'; -import etapiTokenService = require('../../services/etapi_tokens'); +import etapiTokenService from "../../services/etapi_tokens.js"; function getTokens() { const tokens = etapiTokenService.getTokens(); diff --git a/src/routes/api/export.ts b/src/routes/api/export.ts index 7d6b3f683..905ef686b 100644 --- a/src/routes/api/export.ts +++ b/src/routes/api/export.ts @@ -1,14 +1,14 @@ "use strict"; -import zipExportService = require('../../services/export/zip'); -import singleExportService = require('../../services/export/single'); -import opmlExportService = require('../../services/export/opml'); -import becca = require('../../becca/becca'); -import TaskContext = require('../../services/task_context'); -import log = require('../../services/log'); -import NotFoundError = require('../../errors/not_found_error'); +import zipExportService from "../../services/export/zip.js"; +import singleExportService from "../../services/export/single.js"; +import opmlExportService from "../../services/export/opml.js"; +import becca from "../../becca/becca.js"; +import TaskContext from "../../services/task_context.js"; +import log from "../../services/log.js"; +import NotFoundError from "../../errors/not_found_error.js"; import { Request, Response } from 'express'; -import ValidationError = require('../../errors/validation_error'); +import ValidationError from "../../errors/validation_error.js"; function exportBranch(req: Request, res: Response) { const {branchId, type, format, version, taskId} = req.params; diff --git a/src/routes/api/files.ts b/src/routes/api/files.ts index 3bb269f7d..e889cc8a4 100644 --- a/src/routes/api/files.ts +++ b/src/routes/api/files.ts @@ -1,19 +1,19 @@ "use strict"; -import protectedSessionService = require('../../services/protected_session'); -import utils = require('../../services/utils'); -import log = require('../../services/log'); -import noteService = require('../../services/notes'); +import protectedSessionService from "../../services/protected_session.js"; +import utils from "../../services/utils.js"; +import log from "../../services/log.js"; +import noteService from "../../services/notes.js"; import tmp = require('tmp'); import fs = require('fs'); import { Readable } from 'stream'; import chokidar = require('chokidar'); -import ws = require('../../services/ws'); -import becca = require('../../becca/becca'); -import ValidationError = require('../../errors/validation_error'); +import ws from "../../services/ws.js"; +import becca from "../../becca/becca.js"; +import ValidationError from "../../errors/validation_error.js"; import { Request, Response } from 'express'; -import BNote = require('../../becca/entities/bnote'); -import BAttachment = require('../../becca/entities/battachment'); +import BNote from "../../becca/entities/bnote.js"; +import BAttachment from "../../becca/entities/battachment.js"; import { AppRequest } from '../route-interface'; function updateFile(req: AppRequest) { diff --git a/src/routes/api/fonts.ts b/src/routes/api/fonts.ts index fc68dc920..9d3a7a157 100644 --- a/src/routes/api/fonts.ts +++ b/src/routes/api/fonts.ts @@ -1,5 +1,5 @@ import { Request, Response } from 'express'; -import optionService = require('../../services/options'); +import optionService from "../../services/options.js"; function getFontCss(req: Request, res: Response) { res.setHeader('Content-Type', 'text/css'); diff --git a/src/routes/api/image.ts b/src/routes/api/image.ts index b00c7fd7f..e8df615c1 100644 --- a/src/routes/api/image.ts +++ b/src/routes/api/image.ts @@ -1,12 +1,12 @@ "use strict"; -import imageService = require('../../services/image'); -import becca = require('../../becca/becca'); +import imageService from "../../services/image.js"; +import becca from "../../becca/becca.js"; const RESOURCE_DIR = require('../../services/resource_dir').RESOURCE_DIR; import fs = require('fs'); import { Request, Response } from 'express'; -import BNote = require('../../becca/entities/bnote'); -import BRevision = require('../../becca/entities/brevision'); +import BNote from "../../becca/entities/bnote.js"; +import BRevision from "../../becca/entities/brevision.js"; import { AppRequest } from '../route-interface'; function returnImageFromNote(req: Request, res: Response) { diff --git a/src/routes/api/import.ts b/src/routes/api/import.ts index f4e0b446e..51864738a 100644 --- a/src/routes/api/import.ts +++ b/src/routes/api/import.ts @@ -1,18 +1,18 @@ "use strict"; -import enexImportService = require('../../services/import/enex'); -import opmlImportService = require('../../services/import/opml'); -import zipImportService = require('../../services/import/zip'); -import singleImportService = require('../../services/import/single'); -import cls = require('../../services/cls'); +import enexImportService from "../../services/import/enex.js"; +import opmlImportService from "../../services/import/opml.js"; +import zipImportService from "../../services/import/zip.js"; +import singleImportService from "../../services/import/single.js"; +import cls from "../../services/cls.js"; import path = require('path'); -import becca = require('../../becca/becca'); -import beccaLoader = require('../../becca/becca_loader'); -import log = require('../../services/log'); -import TaskContext = require('../../services/task_context'); -import ValidationError = require('../../errors/validation_error'); +import becca from "../../becca/becca.js"; +import beccaLoader from "../../becca/becca_loader.js"; +import log from "../../services/log.js"; +import TaskContext from "../../services/task_context.js"; +import ValidationError from "../../errors/validation_error.js"; import { Request } from 'express'; -import BNote = require('../../becca/entities/bnote'); +import BNote from "../../becca/entities/bnote.js"; import { AppRequest } from '../route-interface'; async function importNotesToBranch(req: AppRequest) { diff --git a/src/routes/api/keys.ts b/src/routes/api/keys.ts index fe4f208f9..09102c3ac 100644 --- a/src/routes/api/keys.ts +++ b/src/routes/api/keys.ts @@ -1,7 +1,7 @@ "use strict"; -import keyboardActions = require('../../services/keyboard_actions'); -import becca = require('../../becca/becca'); +import keyboardActions from "../../services/keyboard_actions.js"; +import becca from "../../becca/becca.js"; function getKeyboardActions() { return keyboardActions.getKeyboardActions(); diff --git a/src/routes/api/login.ts b/src/routes/api/login.ts index a769c4627..8e4018b97 100644 --- a/src/routes/api/login.ts +++ b/src/routes/api/login.ts @@ -1,17 +1,17 @@ "use strict"; -import options = require('../../services/options'); -import utils = require('../../services/utils'); -import dateUtils = require('../../services/date_utils'); -import instanceId = require('../../services/instance_id'); -import passwordEncryptionService = require('../../services/encryption/password_encryption'); -import protectedSessionService = require('../../services/protected_session'); -import appInfo = require('../../services/app_info'); -import eventService = require('../../services/events'); -import sqlInit = require('../../services/sql_init'); -import sql = require('../../services/sql'); -import ws = require('../../services/ws'); -import etapiTokenService = require('../../services/etapi_tokens'); +import options from "../../services/options.js"; +import utils from "../../services/utils.js"; +import dateUtils from "../../services/date_utils.js"; +import instanceId from "../../services/instance_id.js"; +import passwordEncryptionService from "../../services/encryption/password_encryption.js"; +import protectedSessionService from "../../services/protected_session.js"; +import appInfo from "../../services/app_info.js"; +import eventService from "../../services/events.js"; +import sqlInit from "../../services/sql_init.js"; +import sql from "../../services/sql.js"; +import ws from "../../services/ws.js"; +import etapiTokenService from "../../services/etapi_tokens.js"; import { Request } from 'express'; import { AppRequest } from '../route-interface'; diff --git a/src/routes/api/note_map.ts b/src/routes/api/note_map.ts index 97a0bf6f6..557eabc7d 100644 --- a/src/routes/api/note_map.ts +++ b/src/routes/api/note_map.ts @@ -1,11 +1,11 @@ "use strict"; -import becca = require('../../becca/becca'); +import becca from "../../becca/becca.js"; import { JSDOM } from "jsdom"; -import BNote = require('../../becca/entities/bnote'); -import BAttribute = require('../../becca/entities/battribute'); +import BNote from "../../becca/entities/bnote.js"; +import BAttribute from "../../becca/entities/battribute.js"; import { Request } from 'express'; -import ValidationError = require('../../errors/validation_error'); +import ValidationError from "../../errors/validation_error.js"; function buildDescendantCountMap(noteIdsToCount: string[]) { if (!Array.isArray(noteIdsToCount)) { diff --git a/src/routes/api/notes.ts b/src/routes/api/notes.ts index c5e3e1c37..a4081606b 100644 --- a/src/routes/api/notes.ts +++ b/src/routes/api/notes.ts @@ -1,17 +1,17 @@ "use strict"; -import noteService = require('../../services/notes'); -import eraseService = require('../../services/erase'); -import treeService = require('../../services/tree'); -import sql = require('../../services/sql'); -import utils = require('../../services/utils'); -import log = require('../../services/log'); -import TaskContext = require('../../services/task_context'); -import becca = require('../../becca/becca'); -import ValidationError = require('../../errors/validation_error'); -import blobService = require('../../services/blob'); +import noteService from "../../services/notes.js"; +import eraseService from "../../services/erase.js"; +import treeService from "../../services/tree.js"; +import sql from "../../services/sql.js"; +import utils from "../../services/utils.js"; +import log from "../../services/log.js"; +import TaskContext from "../../services/task_context.js"; +import becca from "../../becca/becca.js"; +import ValidationError from "../../errors/validation_error.js"; +import blobService from "../../services/blob.js"; import { Request } from 'express'; -import BBranch = require('../../becca/entities/bbranch'); +import BBranch from "../../becca/entities/bbranch.js"; import { AttributeRow } from '../../becca/entities/rows'; function getNote(req: Request) { diff --git a/src/routes/api/options.ts b/src/routes/api/options.ts index 54630e825..2d96fc87a 100644 --- a/src/routes/api/options.ts +++ b/src/routes/api/options.ts @@ -1,9 +1,9 @@ "use strict"; -import optionService = require('../../services/options'); -import log = require('../../services/log'); -import searchService = require('../../services/search/services/search'); -import ValidationError = require('../../errors/validation_error'); +import optionService from "../../services/options.js"; +import log from "../../services/log.js"; +import searchService from "../../services/search/services/search.js"; +import ValidationError from "../../errors/validation_error.js"; import { Request } from 'express'; // options allowed to be updated directly in the Options dialog diff --git a/src/routes/api/other.ts b/src/routes/api/other.ts index 1d157f291..71a44bf78 100644 --- a/src/routes/api/other.ts +++ b/src/routes/api/other.ts @@ -1,7 +1,7 @@ import { Request } from "express"; -import becca = require('../../becca/becca'); -import markdownService = require('../../services/import/markdown'); +import becca from "../../becca/becca.js"; +import markdownService from "../../services/import/markdown.js"; function getIconUsage() { const iconClassToCountMap: Record = {}; diff --git a/src/routes/api/password.ts b/src/routes/api/password.ts index 5fb4c89d6..547031936 100644 --- a/src/routes/api/password.ts +++ b/src/routes/api/password.ts @@ -1,7 +1,7 @@ "use strict"; -import passwordService = require('../../services/encryption/password'); -import ValidationError = require('../../errors/validation_error'); +import passwordService from "../../services/encryption/password.js"; +import ValidationError from "../../errors/validation_error.js"; import { Request } from 'express'; function changePassword(req: Request) { diff --git a/src/routes/api/recent_changes.ts b/src/routes/api/recent_changes.ts index bf662a784..0efd95b05 100644 --- a/src/routes/api/recent_changes.ts +++ b/src/routes/api/recent_changes.ts @@ -1,9 +1,9 @@ "use strict"; -import sql = require('../../services/sql'); -import protectedSessionService = require('../../services/protected_session'); -import noteService = require('../../services/notes'); -import becca = require('../../becca/becca'); +import sql from "../../services/sql.js"; +import protectedSessionService from "../../services/protected_session.js"; +import noteService from "../../services/notes.js"; +import becca from "../../becca/becca.js"; import { Request } from 'express'; import { RevisionRow } from '../../becca/entities/rows'; diff --git a/src/routes/api/recent_notes.ts b/src/routes/api/recent_notes.ts index 627bdd357..a5bbd03c4 100644 --- a/src/routes/api/recent_notes.ts +++ b/src/routes/api/recent_notes.ts @@ -1,8 +1,8 @@ "use strict"; -import BRecentNote = require('../../becca/entities/brecent_note'); -import sql = require('../../services/sql'); -import dateUtils = require('../../services/date_utils'); +import BRecentNote from "../../becca/entities/brecent_note.js"; +import sql from "../../services/sql.js"; +import dateUtils from "../../services/date_utils.js"; import { Request } from 'express'; function addRecentNote(req: Request) { diff --git a/src/routes/api/relation-map.ts b/src/routes/api/relation-map.ts index c81496349..59f8d685d 100644 --- a/src/routes/api/relation-map.ts +++ b/src/routes/api/relation-map.ts @@ -1,6 +1,6 @@ import { Request } from 'express'; -import becca = require('../../becca/becca'); -import sql = require('../../services/sql'); +import becca from "../../becca/becca.js"; +import sql from "../../services/sql.js"; interface ResponseData { noteTitles: Record; diff --git a/src/routes/api/revisions.ts b/src/routes/api/revisions.ts index d8854ec8a..0be6d6399 100644 --- a/src/routes/api/revisions.ts +++ b/src/routes/api/revisions.ts @@ -1,17 +1,17 @@ "use strict"; -import beccaService = require('../../becca/becca_service'); -import revisionService = require('../../services/revisions'); -import utils = require('../../services/utils'); -import sql = require('../../services/sql'); -import cls = require('../../services/cls'); +import beccaService from "../../becca/becca_service.js"; +import revisionService from "../../services/revisions.js"; +import utils from "../../services/utils.js"; +import sql from "../../services/sql.js"; +import cls from "../../services/cls.js"; import path = require('path'); -import becca = require('../../becca/becca'); -import blobService = require('../../services/blob'); -import eraseService = require('../../services/erase'); +import becca from "../../becca/becca.js"; +import blobService from "../../services/blob.js"; +import eraseService from "../../services/erase.js"; import { Request, Response } from 'express'; -import BRevision = require('../../becca/entities/brevision'); -import BNote = require('../../becca/entities/bnote'); +import BRevision from "../../becca/entities/brevision.js"; +import BNote from "../../becca/entities/bnote.js"; import { NotePojo } from '../../becca/becca-interface'; interface NotePath { diff --git a/src/routes/api/script.ts b/src/routes/api/script.ts index 8a1b3d072..ea0c25d2d 100644 --- a/src/routes/api/script.ts +++ b/src/routes/api/script.ts @@ -1,10 +1,10 @@ "use strict"; -import scriptService = require('../../services/script'); -import attributeService = require('../../services/attributes'); -import becca = require('../../becca/becca'); -import syncService = require('../../services/sync'); -import sql = require('../../services/sql'); +import scriptService from "../../services/script.js"; +import attributeService from "../../services/attributes.js"; +import becca from "../../becca/becca.js"; +import syncService from "../../services/sync.js"; +import sql from "../../services/sql.js"; import { Request } from 'express'; interface ScriptBody { diff --git a/src/routes/api/search.ts b/src/routes/api/search.ts index 93d3e9bc5..7e1fcab5b 100644 --- a/src/routes/api/search.ts +++ b/src/routes/api/search.ts @@ -2,14 +2,14 @@ import { Request } from "express"; -import becca = require('../../becca/becca'); -import SearchContext = require('../../services/search/search_context'); -import searchService = require('../../services/search/services/search'); -import bulkActionService = require('../../services/bulk_actions'); -import cls = require('../../services/cls'); -import attributeFormatter = require('../../services/attribute_formatter'); -import ValidationError = require('../../errors/validation_error'); -import SearchResult = require('../../services/search/search_result'); +import becca from "../../becca/becca.js"; +import SearchContext from "../../services/search/search_context.js"; +import searchService from "../../services/search/services/search.js"; +import bulkActionService from "../../services/bulk_actions.js"; +import cls from "../../services/cls.js"; +import attributeFormatter from "../../services/attribute_formatter.js"; +import ValidationError from "../../errors/validation_error.js"; +import SearchResult from "../../services/search/search_result.js"; function searchFromNote(req: Request) { const note = becca.getNoteOrThrow(req.params.noteId); diff --git a/src/routes/api/sender.ts b/src/routes/api/sender.ts index 8d20c1fd9..a20526498 100644 --- a/src/routes/api/sender.ts +++ b/src/routes/api/sender.ts @@ -1,10 +1,10 @@ "use strict"; import imageType = require('image-type'); -import imageService = require('../../services/image'); -import noteService = require('../../services/notes'); -import sanitize_attribute_name = require('../../services/sanitize_attribute_name'); -import specialNotesService = require('../../services/special_notes'); +import imageService from "../../services/image.js"; +import noteService from "../../services/notes.js"; +import sanitize_attribute_name from "../../services/sanitize_attribute_name.js"; +import specialNotesService from "../../services/special_notes.js"; import { Request } from 'express'; import { AppRequest } from '../route-interface'; diff --git a/src/routes/api/setup.ts b/src/routes/api/setup.ts index 9e63a2331..31a98efa4 100644 --- a/src/routes/api/setup.ts +++ b/src/routes/api/setup.ts @@ -1,9 +1,9 @@ "use strict"; -import sqlInit = require('../../services/sql_init'); -import setupService = require('../../services/setup'); -import log = require('../../services/log'); -import appInfo = require('../../services/app_info'); +import sqlInit from "../../services/sql_init.js"; +import setupService from "../../services/setup.js"; +import log from "../../services/log.js"; +import appInfo from "../../services/app_info.js"; import { Request } from 'express'; function getStatus() { diff --git a/src/routes/api/similar_notes.ts b/src/routes/api/similar_notes.ts index f60d7f7c6..8a81a11ea 100644 --- a/src/routes/api/similar_notes.ts +++ b/src/routes/api/similar_notes.ts @@ -2,8 +2,8 @@ import { Request } from "express"; -import similarityService = require('../../becca/similarity'); -import becca = require('../../becca/becca'); +import similarityService from "../../becca/similarity.js"; +import becca from "../../becca/becca.js"; async function getSimilarNotes(req: Request) { const noteId = req.params.noteId; diff --git a/src/routes/api/special_notes.ts b/src/routes/api/special_notes.ts index 445cd7315..89fd420c3 100644 --- a/src/routes/api/special_notes.ts +++ b/src/routes/api/special_notes.ts @@ -1,10 +1,10 @@ "use strict"; -import dateNoteService = require('../../services/date_notes'); -import sql = require('../../services/sql'); -import cls = require('../../services/cls'); -import specialNotesService = require('../../services/special_notes'); -import becca = require('../../becca/becca'); +import dateNoteService from "../../services/date_notes.js"; +import sql from "../../services/sql.js"; +import cls from "../../services/cls.js"; +import specialNotesService from "../../services/special_notes.js"; +import becca from "../../becca/becca.js"; import { Request } from 'express'; function getInboxNote(req: Request) { diff --git a/src/routes/api/sql.ts b/src/routes/api/sql.ts index 3bd1d3eca..eecffe6e3 100644 --- a/src/routes/api/sql.ts +++ b/src/routes/api/sql.ts @@ -1,9 +1,9 @@ "use strict"; -import sql = require('../../services/sql'); -import becca = require('../../becca/becca'); +import sql from "../../services/sql.js"; +import becca from "../../becca/becca.js"; import { Request } from 'express'; -import ValidationError = require('../../errors/validation_error'); +import ValidationError from "../../errors/validation_error.js"; function getSchema() { const tableNames = sql.getColumn(`SELECT name FROM sqlite_master WHERE type='table' AND name NOT LIKE 'sqlite_%' ORDER BY name`); diff --git a/src/routes/api/stats.ts b/src/routes/api/stats.ts index 053647daa..6740ed535 100644 --- a/src/routes/api/stats.ts +++ b/src/routes/api/stats.ts @@ -1,5 +1,5 @@ -import sql = require('../../services/sql'); -import becca = require('../../becca/becca'); +import sql from "../../services/sql.js"; +import becca from "../../becca/becca.js"; import { Request } from 'express'; function getNoteSize(req: Request) { diff --git a/src/routes/api/sync.ts b/src/routes/api/sync.ts index 728065336..1c1db7c2e 100644 --- a/src/routes/api/sync.ts +++ b/src/routes/api/sync.ts @@ -1,19 +1,19 @@ "use strict"; -import syncService = require('../../services/sync'); -import syncUpdateService = require('../../services/sync_update'); -import entityChangesService = require('../../services/entity_changes'); -import sql = require('../../services/sql'); -import sqlInit = require('../../services/sql_init'); -import optionService = require('../../services/options'); -import contentHashService = require('../../services/content_hash'); -import log = require('../../services/log'); -import syncOptions = require('../../services/sync_options'); -import utils = require('../../services/utils'); -import ws = require('../../services/ws'); +import syncService from "../../services/sync.js"; +import syncUpdateService from "../../services/sync_update.js"; +import entityChangesService from "../../services/entity_changes.js"; +import sql from "../../services/sql.js"; +import sqlInit from "../../services/sql_init.js"; +import optionService from "../../services/options.js"; +import contentHashService from "../../services/content_hash.js"; +import log from "../../services/log.js"; +import syncOptions from "../../services/sync_options.js"; +import utils from "../../services/utils.js"; +import ws from "../../services/ws.js"; import { Request } from 'express'; import { EntityChange, EntityChangeRecord } from '../../services/entity_changes_interface'; -import ValidationError = require('../../errors/validation_error'); +import ValidationError from "../../errors/validation_error.js"; async function testSync() { try { diff --git a/src/routes/api/tree.ts b/src/routes/api/tree.ts index 1b172f10b..7711c25ff 100644 --- a/src/routes/api/tree.ts +++ b/src/routes/api/tree.ts @@ -1,10 +1,10 @@ "use strict"; -import becca = require('../../becca/becca'); -import log = require('../../services/log'); -import NotFoundError = require('../../errors/not_found_error'); +import becca from "../../becca/becca.js"; +import log from "../../services/log.js"; +import NotFoundError from "../../errors/not_found_error.js"; import { Request } from 'express'; -import BNote = require('../../becca/entities/bnote'); +import BNote from "../../becca/entities/bnote.js"; function getNotesAndBranchesAndAttributes(_noteIds: string[] | Set) { const noteIds = new Set(_noteIds); diff --git a/src/routes/assets.ts b/src/routes/assets.ts index 806309ac8..c84c7e31d 100644 --- a/src/routes/assets.ts +++ b/src/routes/assets.ts @@ -1,7 +1,7 @@ -import assetPath = require('../services/asset_path'); +import assetPath from "../services/asset_path.js"; import path = require('path'); import express = require('express'); -import env = require('../services/env'); +import env from "../services/env.js"; import serveStatic = require('serve-static'); const persistentCacheStatic = (root: string, options?: serveStatic.ServeStaticOptions>>) => { diff --git a/src/routes/custom.ts b/src/routes/custom.ts index 1bdb94ac0..3a0bead49 100644 --- a/src/routes/custom.ts +++ b/src/routes/custom.ts @@ -1,9 +1,9 @@ -import log = require('../services/log'); -import fileService = require('./api/files'); -import scriptService = require('../services/script'); -import cls = require('../services/cls'); -import sql = require('../services/sql'); -import becca = require('../becca/becca'); +import log from "../services/log.js"; +import fileService from "./api/files.js"; +import scriptService from "../services/script.js"; +import cls from "../services/cls.js"; +import sql from "../services/sql.js"; +import becca from "../becca/becca.js"; import { Request, Response, Router } from 'express'; function handleRequest(req: Request, res: Response) { diff --git a/src/routes/error_handlers.ts b/src/routes/error_handlers.ts index 96d326bd9..cd19deadb 100644 --- a/src/routes/error_handlers.ts +++ b/src/routes/error_handlers.ts @@ -1,5 +1,5 @@ import { Application, NextFunction, Request, Response } from 'express'; -import log = require('../services/log'); +import log from "../services/log.js"; function register(app: Application) { app.use((err: any, req: Request, res: Response, next: NextFunction) => { diff --git a/src/routes/index.ts b/src/routes/index.ts index 2ede70f42..0434a6de4 100644 --- a/src/routes/index.ts +++ b/src/routes/index.ts @@ -1,16 +1,16 @@ "use strict"; -import sql = require('../services/sql'); -import attributeService = require('../services/attributes'); -import config = require('../services/config'); -import optionService = require('../services/options'); -import log = require('../services/log'); -import env = require('../services/env'); -import utils = require('../services/utils'); -import protectedSessionService = require('../services/protected_session'); -import packageJson = require('../../package.json'); -import assetPath = require('../services/asset_path'); -import appPath = require('../services/app_path'); +import sql from "../services/sql.js"; +import attributeService from "../services/attributes.js"; +import config from "../services/config.js"; +import optionService from "../services/options.js"; +import log from "../services/log.js"; +import env from "../services/env.js"; +import utils from "../services/utils.js"; +import protectedSessionService from "../services/protected_session.js"; +import packageJson from "../../package.json.js"; +import assetPath from "../services/asset_path.js"; +import appPath from "../services/app_path.js"; import { Request, Response } from 'express'; function index(req: Request, res: Response) { diff --git a/src/routes/login.ts b/src/routes/login.ts index cce214fbe..9589113f0 100644 --- a/src/routes/login.ts +++ b/src/routes/login.ts @@ -1,13 +1,13 @@ "use strict"; -import utils = require('../services/utils'); -import optionService = require('../services/options'); -import myScryptService = require('../services/encryption/my_scrypt'); -import log = require('../services/log'); -import passwordService = require('../services/encryption/password'); -import assetPath = require('../services/asset_path'); -import appPath = require('../services/app_path'); -import ValidationError = require('../errors/validation_error'); +import utils from "../services/utils.js"; +import optionService from "../services/options.js"; +import myScryptService from "../services/encryption/my_scrypt.js"; +import log from "../services/log.js"; +import passwordService from "../services/encryption/password.js"; +import assetPath from "../services/asset_path.js"; +import appPath from "../services/app_path.js"; +import ValidationError from "../errors/validation_error.js"; import { Request, Response } from 'express'; import { AppRequest } from './route-interface'; diff --git a/src/routes/routes.ts b/src/routes/routes.ts index 55b40cd2b..5e78de447 100644 --- a/src/routes/routes.ts +++ b/src/routes/routes.ts @@ -1,75 +1,75 @@ "use strict"; -import utils = require('../services/utils'); +import utils from "../services/utils.js"; import multer = require('multer'); -import log = require('../services/log'); +import log from "../services/log.js"; import express = require('express'); const router = express.Router(); -import auth = require('../services/auth'); -import cls = require('../services/cls'); -import sql = require('../services/sql'); -import entityChangesService = require('../services/entity_changes'); +import auth from "../services/auth.js"; +import cls from "../services/cls.js"; +import sql from "../services/sql.js"; +import entityChangesService from "../services/entity_changes.js"; import csurf = require('csurf'); import { createPartialContentHandler } from "express-partial-content"; import rateLimit = require('express-rate-limit'); -import AbstractBeccaEntity = require('../becca/entities/abstract_becca_entity'); -import NotFoundError = require('../errors/not_found_error'); -import ValidationError = require('../errors/validation_error'); +import AbstractBeccaEntity from "../becca/entities/abstract_becca_entity.js"; +import NotFoundError from "../errors/not_found_error.js"; +import ValidationError from "../errors/validation_error.js"; // page routes -import setupRoute = require('./setup'); -import loginRoute = require('./login'); -import indexRoute = require('./index'); +import setupRoute from "./setup.js"; +import loginRoute from "./login.js"; +import indexRoute from "./index.js"; // API routes -import treeApiRoute = require('./api/tree'); -import notesApiRoute = require('./api/notes'); -import branchesApiRoute = require('./api/branches'); -import attachmentsApiRoute = require('./api/attachments'); -import autocompleteApiRoute = require('./api/autocomplete'); -import cloningApiRoute = require('./api/cloning'); -import revisionsApiRoute = require('./api/revisions'); -import recentChangesApiRoute = require('./api/recent_changes'); -import optionsApiRoute = require('./api/options'); -import passwordApiRoute = require('./api/password'); -import syncApiRoute = require('./api/sync'); -import loginApiRoute = require('./api/login'); -import recentNotesRoute = require('./api/recent_notes'); -import appInfoRoute = require('./api/app_info'); -import exportRoute = require('./api/export'); -import importRoute = require('./api/import'); -import setupApiRoute = require('./api/setup'); -import sqlRoute = require('./api/sql'); -import databaseRoute = require('./api/database'); -import imageRoute = require('./api/image'); -import attributesRoute = require('./api/attributes'); -import scriptRoute = require('./api/script'); -import senderRoute = require('./api/sender'); -import filesRoute = require('./api/files'); -import searchRoute = require('./api/search'); -import bulkActionRoute = require('./api/bulk_action'); -import specialNotesRoute = require('./api/special_notes'); -import noteMapRoute = require('./api/note_map'); -import clipperRoute = require('./api/clipper'); -import similarNotesRoute = require('./api/similar_notes'); -import keysRoute = require('./api/keys'); -import backendLogRoute = require('./api/backend_log'); -import statsRoute = require('./api/stats'); -import fontsRoute = require('./api/fonts'); -import etapiTokensApiRoutes = require('./api/etapi_tokens'); -import relationMapApiRoute = require('./api/relation-map'); -import otherRoute = require('./api/other'); -import shareRoutes = require('../share/routes'); +import treeApiRoute from "./api/tree.js"; +import notesApiRoute from "./api/notes.js"; +import branchesApiRoute from "./api/branches.js"; +import attachmentsApiRoute from "./api/attachments.js"; +import autocompleteApiRoute from "./api/autocomplete.js"; +import cloningApiRoute from "./api/cloning.js"; +import revisionsApiRoute from "./api/revisions.js"; +import recentChangesApiRoute from "./api/recent_changes.js"; +import optionsApiRoute from "./api/options.js"; +import passwordApiRoute from "./api/password.js"; +import syncApiRoute from "./api/sync.js"; +import loginApiRoute from "./api/login.js"; +import recentNotesRoute from "./api/recent_notes.js"; +import appInfoRoute from "./api/app_info.js"; +import exportRoute from "./api/export.js"; +import importRoute from "./api/import.js"; +import setupApiRoute from "./api/setup.js"; +import sqlRoute from "./api/sql.js"; +import databaseRoute from "./api/database.js"; +import imageRoute from "./api/image.js"; +import attributesRoute from "./api/attributes.js"; +import scriptRoute from "./api/script.js"; +import senderRoute from "./api/sender.js"; +import filesRoute from "./api/files.js"; +import searchRoute from "./api/search.js"; +import bulkActionRoute from "./api/bulk_action.js"; +import specialNotesRoute from "./api/special_notes.js"; +import noteMapRoute from "./api/note_map.js"; +import clipperRoute from "./api/clipper.js"; +import similarNotesRoute from "./api/similar_notes.js"; +import keysRoute from "./api/keys.js"; +import backendLogRoute from "./api/backend_log.js"; +import statsRoute from "./api/stats.js"; +import fontsRoute from "./api/fonts.js"; +import etapiTokensApiRoutes from "./api/etapi_tokens.js"; +import relationMapApiRoute from "./api/relation-map.js"; +import otherRoute from "./api/other.js"; +import shareRoutes from "../share/routes.js"; -import etapiAuthRoutes = require('../etapi/auth'); -import etapiAppInfoRoutes = require('../etapi/app_info'); -import etapiAttachmentRoutes = require('../etapi/attachments'); -import etapiAttributeRoutes = require('../etapi/attributes'); -import etapiBranchRoutes = require('../etapi/branches'); -import etapiNoteRoutes = require('../etapi/notes'); -import etapiSpecialNoteRoutes = require('../etapi/special_notes'); -import etapiSpecRoute = require('../etapi/spec'); -import etapiBackupRoute = require('../etapi/backup'); +import etapiAuthRoutes from "../etapi/auth.js"; +import etapiAppInfoRoutes from "../etapi/app_info.js"; +import etapiAttachmentRoutes from "../etapi/attachments.js"; +import etapiAttributeRoutes from "../etapi/attributes.js"; +import etapiBranchRoutes from "../etapi/branches.js"; +import etapiNoteRoutes from "../etapi/notes.js"; +import etapiSpecialNoteRoutes from "../etapi/special_notes.js"; +import etapiSpecRoute from "../etapi/spec.js"; +import etapiBackupRoute from "../etapi/backup.js"; import { AppRequest, AppRequestHandler } from './route-interface'; const csrfMiddleware = csurf({ diff --git a/src/routes/session_parser.ts b/src/routes/session_parser.ts index 10be1a721..58d26e642 100644 --- a/src/routes/session_parser.ts +++ b/src/routes/session_parser.ts @@ -1,6 +1,6 @@ import session = require('express-session'); -import sessionSecret = require('../services/session_secret'); -import dataDir = require('../services/data_dir'); +import sessionSecret from "../services/session_secret.js"; +import dataDir from "../services/data_dir.js"; const FileStore = require('session-file-store')(session); const sessionParser = session({ diff --git a/src/routes/setup.ts b/src/routes/setup.ts index 1d3521f4a..974e96bc6 100644 --- a/src/routes/setup.ts +++ b/src/routes/setup.ts @@ -1,10 +1,10 @@ "use strict"; -import sqlInit = require('../services/sql_init'); -import setupService = require('../services/setup'); -import utils = require('../services/utils'); -import assetPath = require('../services/asset_path'); -import appPath = require('../services/app_path'); +import sqlInit from "../services/sql_init.js"; +import setupService from "../services/setup.js"; +import utils from "../services/utils.js"; +import assetPath from "../services/asset_path.js"; +import appPath from "../services/app_path.js"; import { Request, Response } from 'express'; function setupPage(req: Request, res: Response) { diff --git a/src/services/anonymization.ts b/src/services/anonymization.ts index a169cd8b8..8a0a8828f 100644 --- a/src/services/anonymization.ts +++ b/src/services/anonymization.ts @@ -1,9 +1,9 @@ -import BUILTIN_ATTRIBUTES = require('./builtin_attributes'); +import BUILTIN_ATTRIBUTES from "./builtin_attributes.js"; import fs = require('fs-extra'); -import dataDir = require('./data_dir'); -import dateUtils = require('./date_utils'); +import dataDir from "./data_dir.js"; +import dateUtils from "./date_utils.js"; import Database = require('better-sqlite3'); -import sql = require('./sql'); +import sql from "./sql.js"; import path = require('path'); function getFullAnonymizationScript() { diff --git a/src/services/app_icon.ts b/src/services/app_icon.ts index 7a2a7dedf..02a0769d2 100644 --- a/src/services/app_icon.ts +++ b/src/services/app_icon.ts @@ -1,12 +1,12 @@ "use strict"; import path = require('path'); -import resourceDir = require('./resource_dir'); -import log = require('./log'); +import resourceDir from "./resource_dir.js"; +import log from "./log.js"; import os = require('os'); import fs = require('fs'); -import config = require('./config'); -import utils = require('./utils'); +import config from "./config.js"; +import utils from "./utils.js"; const template = `[Desktop Entry] Type=Application diff --git a/src/services/app_info.ts b/src/services/app_info.ts index 92bf2dee1..5439df732 100644 --- a/src/services/app_info.ts +++ b/src/services/app_info.ts @@ -1,8 +1,8 @@ "use strict"; -import build = require('./build'); -import packageJson = require('../../package.json'); -import dataDir = require('./data_dir'); +import build from "./build.js"; +import packageJson from "../../package.json.js"; +import dataDir from "./data_dir.js"; const APP_DB_VERSION = 228; const SYNC_VERSION = 32; diff --git a/src/services/app_path.ts b/src/services/app_path.ts index 3bfa7de40..5cc1ec67c 100644 --- a/src/services/app_path.ts +++ b/src/services/app_path.ts @@ -1,5 +1,5 @@ -import assetPath = require('./asset_path'); -import env = require('./env'); +import assetPath from "./asset_path.js"; +import env from "./env.js"; export = env.isDev() ? assetPath + "/app" diff --git a/src/services/asset_path.ts b/src/services/asset_path.ts index 53ffebba9..c62069d38 100644 --- a/src/services/asset_path.ts +++ b/src/services/asset_path.ts @@ -1,3 +1,3 @@ -import packageJson = require('../../package.json'); +import packageJson from "../../package.json.js"; export = `assets/v${packageJson.version}`; diff --git a/src/services/attributes.ts b/src/services/attributes.ts index 0ae77dc36..d8007f411 100644 --- a/src/services/attributes.ts +++ b/src/services/attributes.ts @@ -1,12 +1,12 @@ "use strict"; -import searchService = require('./search/services/search'); -import sql = require('./sql'); -import becca = require('../becca/becca'); -import BAttribute = require('../becca/entities/battribute'); -import attributeFormatter = require('./attribute_formatter'); -import BUILTIN_ATTRIBUTES = require('./builtin_attributes'); -import BNote = require('../becca/entities/bnote'); +import searchService from "./search/services/search.js"; +import sql from "./sql.js"; +import becca from "../becca/becca.js"; +import BAttribute from "../becca/entities/battribute.js"; +import attributeFormatter from "./attribute_formatter.js"; +import BUILTIN_ATTRIBUTES from "./builtin_attributes.js"; +import BNote from "../becca/entities/bnote.js"; import { AttributeRow } from '../becca/entities/rows'; const ATTRIBUTE_TYPES = ['label', 'relation']; diff --git a/src/services/auth.ts b/src/services/auth.ts index 39f2b430e..12912a3f3 100644 --- a/src/services/auth.ts +++ b/src/services/auth.ts @@ -1,12 +1,12 @@ "use strict"; -import etapiTokenService = require('./etapi_tokens'); -import log = require('./log'); -import sqlInit = require('./sql_init'); -import utils = require('./utils'); -import passwordEncryptionService = require('./encryption/password_encryption'); -import config = require('./config'); -import passwordService = require('./encryption/password'); +import etapiTokenService from "./etapi_tokens.js"; +import log from "./log.js"; +import sqlInit from "./sql_init.js"; +import utils from "./utils.js"; +import passwordEncryptionService from "./encryption/password_encryption.js"; +import config from "./config.js"; +import passwordService from "./encryption/password.js"; import type { NextFunction, Request, Response } from 'express'; import { AppRequest } from '../routes/route-interface'; diff --git a/src/services/backend_script_api.ts b/src/services/backend_script_api.ts index 9b72929a4..80f114810 100644 --- a/src/services/backend_script_api.ts +++ b/src/services/backend_script_api.ts @@ -1,35 +1,35 @@ -import log = require('./log'); -import noteService = require('./notes'); -import sql = require('./sql'); -import utils = require('./utils'); -import attributeService = require('./attributes'); -import dateNoteService = require('./date_notes'); -import treeService = require('./tree'); -import config = require('./config'); +import log from "./log.js"; +import noteService from "./notes.js"; +import sql from "./sql.js"; +import utils from "./utils.js"; +import attributeService from "./attributes.js"; +import dateNoteService from "./date_notes.js"; +import treeService from "./tree.js"; +import config from "./config.js"; import axios = require('axios'); import dayjs = require('dayjs'); import xml2js = require('xml2js'); -import cloningService = require('./cloning'); -import appInfo = require('./app_info'); -import searchService = require('./search/services/search'); -import SearchContext = require('./search/search_context'); -import becca = require('../becca/becca'); -import ws = require('./ws'); -import SpacedUpdate = require('./spaced_update'); -import specialNotesService = require('./special_notes'); -import branchService = require('./branches'); -import exportService = require('./export/zip'); -import syncMutex = require('./sync_mutex'); -import backupService = require('./backup'); -import optionsService = require('./options'); -import BNote = require('../becca/entities/bnote'); -import AbstractBeccaEntity = require('../becca/entities/abstract_becca_entity'); -import BBranch = require('../becca/entities/bbranch'); -import BAttribute = require('../becca/entities/battribute'); -import BAttachment = require('../becca/entities/battachment'); -import BRevision = require('../becca/entities/brevision'); -import BEtapiToken = require('../becca/entities/betapi_token'); -import BOption = require('../becca/entities/boption'); +import cloningService from "./cloning.js"; +import appInfo from "./app_info.js"; +import searchService from "./search/services/search.js"; +import SearchContext from "./search/search_context.js"; +import becca from "../becca/becca.js"; +import ws from "./ws.js"; +import SpacedUpdate from "./spaced_update.js"; +import specialNotesService from "./special_notes.js"; +import branchService from "./branches.js"; +import exportService from "./export/zip.js"; +import syncMutex from "./sync_mutex.js"; +import backupService from "./backup.js"; +import optionsService from "./options.js"; +import BNote from "../becca/entities/bnote.js"; +import AbstractBeccaEntity from "../becca/entities/abstract_becca_entity.js"; +import BBranch from "../becca/entities/bbranch.js"; +import BAttribute from "../becca/entities/battribute.js"; +import BAttachment from "../becca/entities/battachment.js"; +import BRevision from "../becca/entities/brevision.js"; +import BEtapiToken from "../becca/entities/betapi_token.js"; +import BOption from "../becca/entities/boption.js"; import { AttributeRow, AttributeType, NoteType } from '../becca/entities/rows'; import Becca from '../becca/becca-interface'; import { NoteParams } from './note-interface'; diff --git a/src/services/backend_script_api_interface.ts b/src/services/backend_script_api_interface.ts index 7c7c4199f..28930ea33 100644 --- a/src/services/backend_script_api_interface.ts +++ b/src/services/backend_script_api_interface.ts @@ -1,6 +1,6 @@ import { Request, Response } from "express"; -import AbstractBeccaEntity = require('../becca/entities/abstract_becca_entity'); -import BNote = require('../becca/entities/bnote'); +import AbstractBeccaEntity from "../becca/entities/abstract_becca_entity.js"; +import BNote from "../becca/entities/bnote.js"; export interface ApiParams { startNote?: BNote; diff --git a/src/services/backup.ts b/src/services/backup.ts index 3000c9c9a..a855fc71f 100644 --- a/src/services/backup.ts +++ b/src/services/backup.ts @@ -1,13 +1,13 @@ "use strict"; -import dateUtils = require('./date_utils'); -import optionService = require('./options'); +import dateUtils from "./date_utils.js"; +import optionService from "./options.js"; import fs = require('fs-extra'); -import dataDir = require('./data_dir'); -import log = require('./log'); -import syncMutexService = require('./sync_mutex'); -import cls = require('./cls'); -import sql = require('./sql'); +import dataDir from "./data_dir.js"; +import log from "./log.js"; +import syncMutexService from "./sync_mutex.js"; +import cls from "./cls.js"; +import sql from "./sql.js"; import path = require('path'); type BackupType = ("daily" | "weekly" | "monthly"); diff --git a/src/services/blob.ts b/src/services/blob.ts index 41d23adc5..784fe3419 100644 --- a/src/services/blob.ts +++ b/src/services/blob.ts @@ -1,7 +1,7 @@ -import becca = require('../becca/becca'); -import NotFoundError = require('../errors/not_found_error'); -import protectedSessionService = require('./protected_session'); -import utils = require('./utils'); +import becca from "../becca/becca.js"; +import NotFoundError from "../errors/not_found_error.js"; +import protectedSessionService from "./protected_session.js"; +import utils from "./utils.js"; import type { Blob } from "./blob-interface"; function getBlobPojo(entityName: string, entityId: string, opts?: { preview: boolean }) { diff --git a/src/services/branches.ts b/src/services/branches.ts index 8e6971560..cb77ad991 100644 --- a/src/services/branches.ts +++ b/src/services/branches.ts @@ -1,6 +1,6 @@ -import treeService = require('./tree'); -import sql = require('./sql'); -import BBranch = require('../becca/entities/bbranch.js'); +import treeService from "./tree.js"; +import sql from "./sql.js"; +import BBranch from "../becca/entities/bbranch.js.js"; function moveBranchToNote(branchToMove: BBranch, targetParentNoteId: string) { if (branchToMove.parentNoteId === targetParentNoteId) { diff --git a/src/services/bulk_actions.ts b/src/services/bulk_actions.ts index 1a4d63dd9..8ece2040e 100644 --- a/src/services/bulk_actions.ts +++ b/src/services/bulk_actions.ts @@ -1,10 +1,10 @@ -import log = require('./log'); -import becca = require('../becca/becca'); -import cloningService = require('./cloning'); -import branchService = require('./branches'); -import utils = require('./utils'); -import eraseService = require('./erase'); -import BNote = require('../becca/entities/bnote'); +import log from "./log.js"; +import becca from "../becca/becca.js"; +import cloningService from "./cloning.js"; +import branchService from "./branches.js"; +import utils from "./utils.js"; +import eraseService from "./erase.js"; +import BNote from "../becca/entities/bnote.js"; interface Action { labelName: string; diff --git a/src/services/config.ts b/src/services/config.ts index f0437a2d1..7936147db 100644 --- a/src/services/config.ts +++ b/src/services/config.ts @@ -2,9 +2,9 @@ import ini = require('ini'); import fs = require('fs'); -import dataDir = require('./data_dir'); +import dataDir from "./data_dir.js"; import path = require('path'); -import resourceDir = require('./resource_dir'); +import resourceDir from "./resource_dir.js"; const configSampleFilePath = path.resolve(resourceDir.RESOURCE_DIR, "config-sample.ini"); diff --git a/src/services/consistency_checks.ts b/src/services/consistency_checks.ts index 1ec432883..e6fdddb14 100644 --- a/src/services/consistency_checks.ts +++ b/src/services/consistency_checks.ts @@ -1,19 +1,19 @@ "use strict"; -import sql = require('./sql'); -import sqlInit = require('./sql_init'); -import log = require('./log'); -import ws = require('./ws'); -import syncMutexService = require('./sync_mutex'); -import cls = require('./cls'); -import entityChangesService = require('./entity_changes'); -import optionsService = require('./options'); -import BBranch = require('../becca/entities/bbranch'); -import becca = require('../becca/becca'); -import utils = require('../services/utils'); -import eraseService = require('../services/erase'); -import sanitizeAttributeName = require('./sanitize_attribute_name'); -import noteTypesService = require('../services/note_types'); +import sql from "./sql.js"; +import sqlInit from "./sql_init.js"; +import log from "./log.js"; +import ws from "./ws.js"; +import syncMutexService from "./sync_mutex.js"; +import cls from "./cls.js"; +import entityChangesService from "./entity_changes.js"; +import optionsService from "./options.js"; +import BBranch from "../becca/entities/bbranch.js"; +import becca from "../becca/becca.js"; +import utils from "../services/utils.js"; +import eraseService from "../services/erase.js"; +import sanitizeAttributeName from "./sanitize_attribute_name.js"; +import noteTypesService from "../services/note_types.js"; import { BranchRow } from '../becca/entities/rows'; import { EntityChange } from './entity_changes_interface'; const noteTypes = noteTypesService.getNoteTypeNames(); diff --git a/src/services/content_hash.ts b/src/services/content_hash.ts index 2067e177f..0e8687517 100644 --- a/src/services/content_hash.ts +++ b/src/services/content_hash.ts @@ -1,9 +1,9 @@ "use strict"; -import sql = require('./sql'); -import utils = require('./utils'); -import log = require('./log'); -import eraseService = require('./erase'); +import sql from "./sql.js"; +import utils from "./utils.js"; +import log from "./log.js"; +import eraseService from "./erase.js"; type SectorHash = Record; diff --git a/src/services/date_notes.ts b/src/services/date_notes.ts index 989106939..6e91e9688 100644 --- a/src/services/date_notes.ts +++ b/src/services/date_notes.ts @@ -1,14 +1,14 @@ "use strict"; -import noteService = require('./notes'); -import attributeService = require('./attributes'); -import dateUtils = require('./date_utils'); -import sql = require('./sql'); -import protectedSessionService = require('./protected_session'); -import searchService = require('../services/search/services/search'); -import SearchContext = require('../services/search/search_context'); -import hoistedNoteService = require('./hoisted_note'); -import BNote = require('../becca/entities/bnote'); +import noteService from "./notes.js"; +import attributeService from "./attributes.js"; +import dateUtils from "./date_utils.js"; +import sql from "./sql.js"; +import protectedSessionService from "./protected_session.js"; +import searchService from "../services/search/services/search.js"; +import SearchContext from "../services/search/search_context.js"; +import hoistedNoteService from "./hoisted_note.js"; +import BNote from "../becca/entities/bnote.js"; const CALENDAR_ROOT_LABEL = 'calendarRoot'; const YEAR_LABEL = 'yearNote'; diff --git a/src/services/date_utils.ts b/src/services/date_utils.ts index 88b6ecb69..b22cb2d88 100644 --- a/src/services/date_utils.ts +++ b/src/services/date_utils.ts @@ -1,5 +1,5 @@ import dayjs = require('dayjs'); -import cls = require('./cls'); +import cls from "./cls.js"; const LOCAL_DATETIME_FORMAT = 'YYYY-MM-DD HH:mm:ss.SSSZZ'; const UTC_DATETIME_FORMAT = 'YYYY-MM-DD HH:mm:ssZ'; diff --git a/src/services/encryption/data_encryption.ts b/src/services/encryption/data_encryption.ts index b82a0e8c6..ce874c119 100644 --- a/src/services/encryption/data_encryption.ts +++ b/src/services/encryption/data_encryption.ts @@ -1,7 +1,7 @@ "use strict"; import crypto = require('crypto'); -import log = require('../log'); +import log from "../log.js"; function arraysIdentical(a: any[] | Buffer, b: any[] | Buffer) { let i = a.length; diff --git a/src/services/encryption/my_scrypt.ts b/src/services/encryption/my_scrypt.ts index c80632bc0..f8a07a930 100644 --- a/src/services/encryption/my_scrypt.ts +++ b/src/services/encryption/my_scrypt.ts @@ -1,6 +1,6 @@ "use strict"; -import optionService = require('../options'); +import optionService from "../options.js"; import crypto = require('crypto'); function getVerificationHash(password: crypto.BinaryLike) { diff --git a/src/services/encryption/password.ts b/src/services/encryption/password.ts index 4d6bf66a3..2d70b606b 100644 --- a/src/services/encryption/password.ts +++ b/src/services/encryption/password.ts @@ -1,10 +1,10 @@ "use strict"; -import sql = require('../sql'); -import optionService = require('../options'); -import myScryptService = require('./my_scrypt'); -import utils = require('../utils'); -import passwordEncryptionService = require('./password_encryption'); +import sql from "../sql.js"; +import optionService from "../options.js"; +import myScryptService from "./my_scrypt.js"; +import utils from "../utils.js"; +import passwordEncryptionService from "./password_encryption.js"; function isPasswordSet() { return !!sql.getValue("SELECT value FROM options WHERE name = 'passwordVerificationHash'"); diff --git a/src/services/encryption/password_encryption.ts b/src/services/encryption/password_encryption.ts index 36420d03d..7bd12d2f7 100644 --- a/src/services/encryption/password_encryption.ts +++ b/src/services/encryption/password_encryption.ts @@ -1,7 +1,7 @@ -import optionService = require('../options'); -import myScryptService = require('./my_scrypt'); -import utils = require('../utils'); -import dataEncryptionService = require('./data_encryption'); +import optionService from "../options.js"; +import myScryptService from "./my_scrypt.js"; +import utils from "../utils.js"; +import dataEncryptionService from "./data_encryption.js"; function verifyPassword(password: string) { const givenPasswordHash = utils.toBase64(myScryptService.getVerificationHash(password)); diff --git a/src/services/entity_changes.ts b/src/services/entity_changes.ts index 91f84f834..07f5bbf4e 100644 --- a/src/services/entity_changes.ts +++ b/src/services/entity_changes.ts @@ -1,11 +1,11 @@ -import sql = require('./sql'); -import dateUtils = require('./date_utils'); -import log = require('./log'); -import cls = require('./cls'); -import utils = require('./utils'); -import instanceId = require('./instance_id'); -import becca = require('../becca/becca'); -import blobService = require('../services/blob'); +import sql from "./sql.js"; +import dateUtils from "./date_utils.js"; +import log from "./log.js"; +import cls from "./cls.js"; +import utils from "./utils.js"; +import instanceId from "./instance_id.js"; +import becca from "../becca/becca.js"; +import blobService from "../services/blob.js"; import { EntityChange } from './entity_changes_interface'; import type { Blob } from "./blob-interface"; diff --git a/src/services/erase.ts b/src/services/erase.ts index 045f72915..2218d4304 100644 --- a/src/services/erase.ts +++ b/src/services/erase.ts @@ -1,11 +1,11 @@ -import sql = require('./sql'); -import revisionService = require('./revisions'); -import log = require('./log'); -import entityChangesService = require('./entity_changes'); -import optionService = require('./options'); -import dateUtils = require('./date_utils'); -import sqlInit = require('./sql_init'); -import cls = require('./cls'); +import sql from "./sql.js"; +import revisionService from "./revisions.js"; +import log from "./log.js"; +import entityChangesService from "./entity_changes.js"; +import optionService from "./options.js"; +import dateUtils from "./date_utils.js"; +import sqlInit from "./sql_init.js"; +import cls from "./cls.js"; import { EntityChange } from "./entity_changes_interface"; function eraseNotes(noteIdsToErase: string[]) { diff --git a/src/services/etapi_tokens.ts b/src/services/etapi_tokens.ts index a20ab5651..f314a7e8e 100644 --- a/src/services/etapi_tokens.ts +++ b/src/services/etapi_tokens.ts @@ -1,6 +1,6 @@ -import becca = require('../becca/becca'); -import utils = require('./utils'); -import BEtapiToken = require('../becca/entities/betapi_token'); +import becca from "../becca/becca.js"; +import utils from "./utils.js"; +import BEtapiToken from "../becca/entities/betapi_token.js"; import crypto = require('crypto'); function getTokens() { diff --git a/src/services/export/opml.ts b/src/services/export/opml.ts index 63bdf14fd..1f6e6c4d3 100644 --- a/src/services/export/opml.ts +++ b/src/services/export/opml.ts @@ -1,9 +1,9 @@ "use strict"; -import utils = require('../utils'); -import becca = require('../../becca/becca'); -import TaskContext = require('../task_context'); -import BBranch = require('../../becca/entities/bbranch'); +import utils from "../utils.js"; +import becca from "../../becca/becca.js"; +import TaskContext from "../task_context.js"; +import BBranch from "../../becca/entities/bbranch.js"; import { Response } from 'express'; function exportToOpml(taskContext: TaskContext, branch: BBranch, version: string, res: Response) { diff --git a/src/services/export/single.ts b/src/services/export/single.ts index b0f46e6e8..50ff47ca8 100644 --- a/src/services/export/single.ts +++ b/src/services/export/single.ts @@ -2,11 +2,11 @@ import mimeTypes = require('mime-types'); import html = require('html'); -import utils = require('../utils'); -import mdService = require('./md'); -import becca = require('../../becca/becca'); -import TaskContext = require('../task_context'); -import BBranch = require('../../becca/entities/bbranch'); +import utils from "../utils.js"; +import mdService from "./md.js"; +import becca from "../../becca/becca.js"; +import TaskContext from "../task_context.js"; +import BBranch from "../../becca/entities/bbranch.js"; import { Response } from 'express'; function exportSingleNote(taskContext: TaskContext, branch: BBranch, format: "html" | "markdown", res: Response) { diff --git a/src/services/export/zip.ts b/src/services/export/zip.ts index 8e4a2752a..05123beda 100644 --- a/src/services/export/zip.ts +++ b/src/services/export/zip.ts @@ -1,25 +1,25 @@ "use strict"; import html = require('html'); -import dateUtils = require('../date_utils'); +import dateUtils from "../date_utils.js"; import path = require('path'); import mimeTypes = require('mime-types'); -import mdService = require('./md'); -import packageInfo = require('../../../package.json'); -import utils = require('../utils'); -import protectedSessionService = require('../protected_session'); +import mdService from "./md.js"; +import packageInfo from "../../../package.json.js"; +import utils from "../utils.js"; +import protectedSessionService from "../protected_session.js"; import sanitize = require('sanitize-filename'); import fs = require('fs'); -import becca = require('../../becca/becca'); +import becca from "../../becca/becca.js"; const RESOURCE_DIR = require('../../services/resource_dir').RESOURCE_DIR; import archiver = require('archiver'); -import log = require('../log'); -import TaskContext = require('../task_context'); -import ValidationError = require('../../errors/validation_error'); -import NoteMeta = require('../meta/note_meta'); -import AttachmentMeta = require('../meta/attachment_meta'); -import AttributeMeta = require('../meta/attribute_meta'); -import BBranch = require('../../becca/entities/bbranch'); +import log from "../log.js"; +import TaskContext from "../task_context.js"; +import ValidationError from "../../errors/validation_error.js"; +import NoteMeta from "../meta/note_meta.js"; +import AttachmentMeta from "../meta/attachment_meta.js"; +import AttributeMeta from "../meta/attribute_meta.js"; +import BBranch from "../../becca/entities/bbranch.js"; import { Response } from 'express'; async function exportToZip(taskContext: TaskContext, branch: BBranch, format: "html" | "markdown", res: Response | fs.WriteStream, setHeaders = true) { diff --git a/src/services/handlers.ts b/src/services/handlers.ts index 9e10b778a..d5fd5afa2 100644 --- a/src/services/handlers.ts +++ b/src/services/handlers.ts @@ -1,13 +1,13 @@ -import eventService = require('./events'); -import scriptService = require('./script'); -import treeService = require('./tree'); -import noteService = require('./notes'); -import becca = require('../becca/becca'); -import BAttribute = require('../becca/entities/battribute'); -import hiddenSubtreeService = require('./hidden_subtree'); -import oneTimeTimer = require('./one_time_timer'); -import BNote = require('../becca/entities/bnote'); -import AbstractBeccaEntity = require('../becca/entities/abstract_becca_entity'); +import eventService from "./events.js"; +import scriptService from "./script.js"; +import treeService from "./tree.js"; +import noteService from "./notes.js"; +import becca from "../becca/becca.js"; +import BAttribute from "../becca/entities/battribute.js"; +import hiddenSubtreeService from "./hidden_subtree.js"; +import oneTimeTimer from "./one_time_timer.js"; +import BNote from "../becca/entities/bnote.js"; +import AbstractBeccaEntity from "../becca/entities/abstract_becca_entity.js"; import { DefinitionObject } from './promoted_attribute_definition_interface'; type Handler = (definition: DefinitionObject, note: BNote, targetNote: BNote) => void; diff --git a/src/services/hidden_subtree.ts b/src/services/hidden_subtree.ts index ff683e003..8080de9bb 100644 --- a/src/services/hidden_subtree.ts +++ b/src/services/hidden_subtree.ts @@ -1,10 +1,10 @@ -import BAttribute = require('../becca/entities/battribute'); +import BAttribute from "../becca/entities/battribute.js"; import { AttributeType, NoteType } from "../becca/entities/rows"; -import becca = require('../becca/becca'); -import noteService = require('./notes'); -import log = require('./log'); -import migrationService = require('./migration'); +import becca from "../becca/becca.js"; +import noteService from "./notes.js"; +import log from "./log.js"; +import migrationService from "./migration.js"; const LBTPL_ROOT = "_lbTplRoot"; const LBTPL_BASE = "_lbTplBase"; diff --git a/src/services/hoisted_note.ts b/src/services/hoisted_note.ts index fca423269..0c76de6e2 100644 --- a/src/services/hoisted_note.ts +++ b/src/services/hoisted_note.ts @@ -1,5 +1,5 @@ -import cls = require('./cls'); -import becca = require('../becca/becca'); +import cls from "./cls.js"; +import becca from "../becca/becca.js"; function getHoistedNoteId() { return cls.getHoistedNoteId(); diff --git a/src/services/host.ts b/src/services/host.ts index 3daef1504..2cff7b59d 100644 --- a/src/services/host.ts +++ b/src/services/host.ts @@ -1,3 +1,3 @@ -import config = require('./config'); +import config from "./config.js"; export = process.env.TRILIUM_HOST || config['Network']['host'] || '0.0.0.0'; diff --git a/src/services/image.ts b/src/services/image.ts index 0a95b87d6..7223d0af0 100644 --- a/src/services/image.ts +++ b/src/services/image.ts @@ -1,17 +1,17 @@ "use strict"; -import becca = require('../becca/becca'); -import log = require('./log'); -import protectedSessionService = require('./protected_session'); -import noteService = require('./notes'); -import optionService = require('./options'); -import sql = require('./sql'); +import becca from "../becca/becca.js"; +import log from "./log.js"; +import protectedSessionService from "./protected_session.js"; +import noteService from "./notes.js"; +import optionService from "./options.js"; +import sql from "./sql.js"; import jimp = require('jimp'); import imageType = require('image-type'); import sanitizeFilename = require('sanitize-filename'); import isSvg = require('is-svg'); import isAnimated = require('is-animated'); -import htmlSanitizer = require('./html_sanitizer'); +import htmlSanitizer from "./html_sanitizer.js"; async function processImage(uploadBuffer: Buffer, originalName: string, shrinkImageSwitch: boolean) { const compressImages = optionService.getOptionBool("compressImages"); diff --git a/src/services/import/enex.ts b/src/services/import/enex.ts index 998545fe9..0c1228aae 100644 --- a/src/services/import/enex.ts +++ b/src/services/import/enex.ts @@ -1,16 +1,16 @@ import sax = require('sax'); import stream = require('stream'); import { Throttle } from 'stream-throttle'; -import log = require('../log'); -import utils = require('../utils'); -import sql = require('../sql'); -import noteService = require('../notes'); -import imageService = require('../image'); -import protectedSessionService = require('../protected_session'); -import htmlSanitizer = require('../html_sanitizer'); -import sanitizeAttributeName = require('../sanitize_attribute_name'); -import TaskContext = require('../task_context'); -import BNote = require('../../becca/entities/bnote'); +import log from "../log.js"; +import utils from "../utils.js"; +import sql from "../sql.js"; +import noteService from "../notes.js"; +import imageService from "../image.js"; +import protectedSessionService from "../protected_session.js"; +import htmlSanitizer from "../html_sanitizer.js"; +import sanitizeAttributeName from "../sanitize_attribute_name.js"; +import TaskContext from "../task_context.js"; +import BNote from "../../becca/entities/bnote.js"; import { File } from "./common"; /** diff --git a/src/services/import/markdown.ts b/src/services/import/markdown.ts index 73c0e4833..97c540be4 100644 --- a/src/services/import/markdown.ts +++ b/src/services/import/markdown.ts @@ -1,8 +1,8 @@ "use strict"; import marked = require('marked'); -import htmlSanitizer = require('../html_sanitizer'); -import importUtils = require('./utils'); +import htmlSanitizer from "../html_sanitizer.js"; +import importUtils from "./utils.js"; function renderToHtml(content: string, title: string) { const html = marked.parse(content, { diff --git a/src/services/import/opml.ts b/src/services/import/opml.ts index 6223ea51d..316290dbf 100644 --- a/src/services/import/opml.ts +++ b/src/services/import/opml.ts @@ -1,11 +1,11 @@ "use strict"; -import noteService = require('../../services/notes'); +import noteService from "../../services/notes.js"; import xml2js = require('xml2js'); -import protectedSessionService = require('../protected_session'); -import htmlSanitizer = require('../html_sanitizer'); -import TaskContext = require('../task_context'); -import BNote = require('../../becca/entities/bnote'); +import protectedSessionService from "../protected_session.js"; +import htmlSanitizer from "../html_sanitizer.js"; +import TaskContext from "../task_context.js"; +import BNote from "../../becca/entities/bnote.js"; const parseString = xml2js.parseString; interface OpmlXml { diff --git a/src/services/import/single.ts b/src/services/import/single.ts index 44ec5e9e9..3550e4cd2 100644 --- a/src/services/import/single.ts +++ b/src/services/import/single.ts @@ -1,16 +1,16 @@ "use strict"; -import BNote = require('../../becca/entities/bnote'); -import TaskContext = require('../task_context'); +import BNote from "../../becca/entities/bnote.js"; +import TaskContext from "../task_context.js"; -import noteService = require('../../services/notes'); -import imageService = require('../../services/image'); -import protectedSessionService = require('../protected_session'); -import markdownService = require('./markdown'); -import mimeService = require('./mime'); -import utils = require('../../services/utils'); -import importUtils = require('./utils'); -import htmlSanitizer = require('../html_sanitizer'); +import noteService from "../../services/notes.js"; +import imageService from "../../services/image.js"; +import protectedSessionService from "../protected_session.js"; +import markdownService from "./markdown.js"; +import mimeService from "./mime.js"; +import utils from "../../services/utils.js"; +import importUtils from "./utils.js"; +import htmlSanitizer from "../html_sanitizer.js"; import { File } from "./common"; function importSingleFile(taskContext: TaskContext, file: File, parentNote: BNote) { diff --git a/src/services/import/zip.ts b/src/services/import/zip.ts index c29c398d6..0f274271c 100644 --- a/src/services/import/zip.ts +++ b/src/services/import/zip.ts @@ -1,24 +1,24 @@ "use strict"; -import BAttribute = require('../../becca/entities/battribute'); -import utils = require('../../services/utils'); -import log = require('../../services/log'); -import noteService = require('../../services/notes'); -import attributeService = require('../../services/attributes'); -import BBranch = require('../../becca/entities/bbranch'); +import BAttribute from "../../becca/entities/battribute.js"; +import utils from "../../services/utils.js"; +import log from "../../services/log.js"; +import noteService from "../../services/notes.js"; +import attributeService from "../../services/attributes.js"; +import BBranch from "../../becca/entities/bbranch.js"; import path = require('path'); -import protectedSessionService = require('../protected_session'); -import mimeService = require('./mime'); -import treeService = require('../tree'); +import protectedSessionService from "../protected_session.js"; +import mimeService from "./mime.js"; +import treeService from "../tree.js"; import yauzl = require('yauzl'); -import htmlSanitizer = require('../html_sanitizer'); -import becca = require('../../becca/becca'); -import BAttachment = require('../../becca/entities/battachment'); -import markdownService = require('./markdown'); -import TaskContext = require('../task_context'); -import BNote = require('../../becca/entities/bnote'); -import NoteMeta = require('../meta/note_meta'); -import AttributeMeta = require('../meta/attribute_meta'); +import htmlSanitizer from "../html_sanitizer.js"; +import becca from "../../becca/becca.js"; +import BAttachment from "../../becca/entities/battachment.js"; +import markdownService from "./markdown.js"; +import TaskContext from "../task_context.js"; +import BNote from "../../becca/entities/bnote.js"; +import NoteMeta from "../meta/note_meta.js"; +import AttributeMeta from "../meta/attribute_meta.js"; import { Stream } from 'stream'; import { ALLOWED_NOTE_TYPES, NoteType } from '../../becca/entities/rows'; diff --git a/src/services/instance_id.ts b/src/services/instance_id.ts index 6e0eb503c..fc1aedacb 100644 --- a/src/services/instance_id.ts +++ b/src/services/instance_id.ts @@ -1,4 +1,4 @@ -import utils = require('./utils'); +import utils from "./utils.js"; const instanceId = utils.randomString(12); diff --git a/src/services/keyboard_actions.ts b/src/services/keyboard_actions.ts index 715c62684..260966030 100644 --- a/src/services/keyboard_actions.ts +++ b/src/services/keyboard_actions.ts @@ -1,8 +1,8 @@ "use strict"; -import optionService = require('./options'); -import log = require('./log'); -import utils = require('./utils'); +import optionService from "./options.js"; +import log from "./log.js"; +import utils from "./utils.js"; import { KeyboardShortcut } from './keyboard_actions_interface'; const isMac = process.platform === "darwin"; diff --git a/src/services/log.ts b/src/services/log.ts index 904aebffb..f352dc175 100644 --- a/src/services/log.ts +++ b/src/services/log.ts @@ -2,8 +2,8 @@ import { Request, Response } from "express"; import fs = require('fs'); -import dataDir = require('./data_dir'); -import cls = require('./cls'); +import dataDir from "./data_dir.js"; +import cls from "./cls.js"; if (!fs.existsSync(dataDir.LOG_DIR)) { fs.mkdirSync(dataDir.LOG_DIR, 0o700); diff --git a/src/services/meta/note_meta.ts b/src/services/meta/note_meta.ts index f6467f213..9f30537b1 100644 --- a/src/services/meta/note_meta.ts +++ b/src/services/meta/note_meta.ts @@ -1,5 +1,5 @@ -import AttachmentMeta = require('./attachment_meta'); -import AttributeMeta = require('./attribute_meta'); +import AttachmentMeta from "./attachment_meta.js"; +import AttributeMeta from "./attribute_meta.js"; interface NoteMeta { noteId?: string; diff --git a/src/services/migration.ts b/src/services/migration.ts index ca647c539..37948953c 100644 --- a/src/services/migration.ts +++ b/src/services/migration.ts @@ -1,11 +1,11 @@ -import backupService = require('./backup'); -import sql = require('./sql'); +import backupService from "./backup.js"; +import sql from "./sql.js"; import fs = require('fs-extra'); -import log = require('./log'); -import utils = require('./utils'); -import resourceDir = require('./resource_dir'); -import appInfo = require('./app_info'); -import cls = require('./cls'); +import log from "./log.js"; +import utils from "./utils.js"; +import resourceDir from "./resource_dir.js"; +import appInfo from "./app_info.js"; +import cls from "./cls.js"; interface MigrationInfo { dbVersion: number; diff --git a/src/services/notes.ts b/src/services/notes.ts index d570237a3..60de35b42 100644 --- a/src/services/notes.ts +++ b/src/services/notes.ts @@ -1,30 +1,30 @@ -import sql = require('./sql'); -import optionService = require('./options'); -import dateUtils = require('./date_utils'); -import entityChangesService = require('./entity_changes'); -import eventService = require('./events'); -import cls = require('../services/cls'); -import protectedSessionService = require('../services/protected_session'); -import log = require('../services/log'); -import utils = require('../services/utils'); -import revisionService = require('./revisions'); -import request = require('./request'); +import sql from "./sql.js"; +import optionService from "./options.js"; +import dateUtils from "./date_utils.js"; +import entityChangesService from "./entity_changes.js"; +import eventService from "./events.js"; +import cls from "../services/cls.js"; +import protectedSessionService from "../services/protected_session.js"; +import log from "../services/log.js"; +import utils from "../services/utils.js"; +import revisionService from "./revisions.js"; +import request from "./request.js"; import path = require('path'); import url = require('url'); -import becca = require('../becca/becca'); -import BBranch = require('../becca/entities/bbranch'); -import BNote = require('../becca/entities/bnote'); -import BAttribute = require('../becca/entities/battribute'); -import BAttachment = require('../becca/entities/battachment'); +import becca from "../becca/becca.js"; +import BBranch from "../becca/entities/bbranch.js"; +import BNote from "../becca/entities/bnote.js"; +import BAttribute from "../becca/entities/battribute.js"; +import BAttachment from "../becca/entities/battachment.js"; import dayjs = require('dayjs'); -import htmlSanitizer = require('./html_sanitizer'); -import ValidationError = require('../errors/validation_error'); -import noteTypesService = require('./note_types'); +import htmlSanitizer from "./html_sanitizer.js"; +import ValidationError from "../errors/validation_error.js"; +import noteTypesService from "./note_types.js"; import fs = require('fs'); -import ws = require('./ws'); +import ws from "./ws.js"; import html2plaintext = require('html2plaintext'); import { AttachmentRow, AttributeRow, BranchRow, NoteRow, NoteType } from '../becca/entities/rows'; -import TaskContext = require('./task_context'); +import TaskContext from "./task_context.js"; import { NoteParams } from './note-interface'; interface FoundLink { diff --git a/src/services/options.ts b/src/services/options.ts index b658e4ff7..2d060ba94 100644 --- a/src/services/options.ts +++ b/src/services/options.ts @@ -1,6 +1,6 @@ -import becca = require('../becca/becca'); +import becca from "../becca/becca.js"; import { OptionRow } from '../becca/entities/rows'; -import sql = require('./sql'); +import sql from "./sql.js"; function getOptionOrNull(name: string): string | null { let option; diff --git a/src/services/options_init.ts b/src/services/options_init.ts index e2ba1520a..ea8dcd252 100644 --- a/src/services/options_init.ts +++ b/src/services/options_init.ts @@ -1,9 +1,9 @@ -import optionService = require('./options'); -import appInfo = require('./app_info'); -import utils = require('./utils'); -import log = require('./log'); -import dateUtils = require('./date_utils'); -import keyboardActions = require('./keyboard_actions'); +import optionService from "./options.js"; +import appInfo from "./app_info.js"; +import utils from "./utils.js"; +import log from "./log.js"; +import dateUtils from "./date_utils.js"; +import keyboardActions from "./keyboard_actions.js"; import { KeyboardShortcutWithRequiredActionName } from './keyboard_actions_interface'; function initDocumentOptions() { diff --git a/src/services/port.ts b/src/services/port.ts index c37992d42..11fa847a0 100644 --- a/src/services/port.ts +++ b/src/services/port.ts @@ -1,7 +1,7 @@ -import config = require('./config'); -import utils = require('./utils'); -import env = require('./env'); -import dataDir = require('./data_dir'); +import config from "./config.js"; +import utils from "./utils.js"; +import env from "./env.js"; +import dataDir from "./data_dir.js"; function parseAndValidate(portStr: string, source: string) { const portNum = parseInt(portStr); diff --git a/src/services/protected_session.ts b/src/services/protected_session.ts index 6c1d6c223..ef6770c79 100644 --- a/src/services/protected_session.ts +++ b/src/services/protected_session.ts @@ -1,7 +1,7 @@ "use strict"; -import log = require('./log'); -import dataEncryptionService = require('./encryption/data_encryption'); +import log from "./log.js"; +import dataEncryptionService from "./encryption/data_encryption.js"; let dataKey: Buffer | null = null; diff --git a/src/services/request.ts b/src/services/request.ts index 85d0889ff..995ed97bb 100644 --- a/src/services/request.ts +++ b/src/services/request.ts @@ -1,9 +1,9 @@ "use strict"; -import utils = require('./utils'); -import log = require('./log'); +import utils from "./utils.js"; +import log from "./log.js"; import url = require('url'); -import syncOptions = require('./sync_options'); +import syncOptions from "./sync_options.js"; import { ExecOpts } from './request_interface'; // this service provides abstraction over node's HTTP/HTTPS and electron net.client APIs diff --git a/src/services/resource_dir.ts b/src/services/resource_dir.ts index cba351ac8..edb805264 100644 --- a/src/services/resource_dir.ts +++ b/src/services/resource_dir.ts @@ -1,4 +1,4 @@ -import log = require('./log'); +import log from "./log.js"; import path = require('path'); import fs = require('fs'); diff --git a/src/services/revisions.ts b/src/services/revisions.ts index 9cd281c13..2c497cc85 100644 --- a/src/services/revisions.ts +++ b/src/services/revisions.ts @@ -1,10 +1,10 @@ "use strict"; -import log = require('./log'); -import sql = require('./sql'); -import protectedSessionService = require('./protected_session'); -import dateUtils = require('./date_utils'); -import BNote = require('../becca/entities/bnote'); +import log from "./log.js"; +import sql from "./sql.js"; +import protectedSessionService from "./protected_session.js"; +import dateUtils from "./date_utils.js"; +import BNote from "../becca/entities/bnote.js"; function protectRevisions(note: BNote) { if (!protectedSessionService.isProtectedSessionAvailable()) { diff --git a/src/services/scheduler.ts b/src/services/scheduler.ts index 819de0e59..6d3dac8b8 100644 --- a/src/services/scheduler.ts +++ b/src/services/scheduler.ts @@ -1,12 +1,12 @@ -import scriptService = require('./script'); -import cls = require('./cls'); -import sqlInit = require('./sql_init'); -import config = require('./config'); -import log = require('./log'); -import attributeService = require('../services/attributes'); -import protectedSessionService = require('../services/protected_session'); -import hiddenSubtreeService = require('./hidden_subtree'); -import BNote = require('../becca/entities/bnote'); +import scriptService from "./script.js"; +import cls from "./cls.js"; +import sqlInit from "./sql_init.js"; +import config from "./config.js"; +import log from "./log.js"; +import attributeService from "../services/attributes.js"; +import protectedSessionService from "../services/protected_session.js"; +import hiddenSubtreeService from "./hidden_subtree.js"; +import BNote from "../becca/entities/bnote.js"; function getRunAtHours(note: BNote): number[] { try { diff --git a/src/services/script.ts b/src/services/script.ts index 975964b18..48e9d9b7e 100644 --- a/src/services/script.ts +++ b/src/services/script.ts @@ -1,8 +1,8 @@ -import ScriptContext = require('./script_context'); -import cls = require('./cls'); -import log = require('./log'); -import becca = require('../becca/becca'); -import BNote = require('../becca/entities/bnote'); +import ScriptContext from "./script_context.js"; +import cls from "./cls.js"; +import log from "./log.js"; +import becca from "../becca/becca.js"; +import BNote from "../becca/entities/bnote.js"; import { ApiParams } from './backend_script_api_interface'; interface Bundle { diff --git a/src/services/script_context.ts b/src/services/script_context.ts index 4de4863d0..f678c630b 100644 --- a/src/services/script_context.ts +++ b/src/services/script_context.ts @@ -1,6 +1,6 @@ -import utils = require('./utils'); -import BackendScriptApi = require('./backend_script_api'); -import BNote = require('../becca/entities/bnote'); +import utils from "./utils.js"; +import BackendScriptApi from "./backend_script_api.js"; +import BNote from "../becca/entities/bnote.js"; import { ApiParams } from './backend_script_api_interface'; type Module = { diff --git a/src/services/search/expressions/ancestor.ts b/src/services/search/expressions/ancestor.ts index 4e7380795..6c543d7dd 100644 --- a/src/services/search/expressions/ancestor.ts +++ b/src/services/search/expressions/ancestor.ts @@ -1,10 +1,10 @@ "use strict"; -import Expression = require('./expression'); -import NoteSet = require('../note_set'); -import log = require('../../log'); -import becca = require('../../../becca/becca'); -import SearchContext = require('../search_context'); +import Expression from "./expression.js"; +import NoteSet from "../note_set.js"; +import log from "../../log.js"; +import becca from "../../../becca/becca.js"; +import SearchContext from "../search_context.js"; class AncestorExp extends Expression { diff --git a/src/services/search/expressions/and.ts b/src/services/search/expressions/and.ts index 82c73fe70..2a9254a2b 100644 --- a/src/services/search/expressions/and.ts +++ b/src/services/search/expressions/and.ts @@ -1,9 +1,9 @@ "use strict"; -import NoteSet = require('../note_set'); -import SearchContext = require('../search_context'); -import Expression = require('./expression'); -import TrueExp = require('./true'); +import NoteSet from "../note_set.js"; +import SearchContext from "../search_context.js"; +import Expression from "./expression.js"; +import TrueExp from "./true.js"; class AndExp extends Expression { private subExpressions: Expression[]; diff --git a/src/services/search/expressions/attribute_exists.ts b/src/services/search/expressions/attribute_exists.ts index d8de33962..0a9419bcb 100644 --- a/src/services/search/expressions/attribute_exists.ts +++ b/src/services/search/expressions/attribute_exists.ts @@ -1,10 +1,10 @@ "use strict"; -import NoteSet = require('../note_set'); -import SearchContext = require('../search_context'); +import NoteSet from "../note_set.js"; +import SearchContext from "../search_context.js"; -import becca = require('../../../becca/becca'); -import Expression = require('./expression'); +import becca from "../../../becca/becca.js"; +import Expression from "./expression.js"; class AttributeExistsExp extends Expression { diff --git a/src/services/search/expressions/child_of.ts b/src/services/search/expressions/child_of.ts index 10d31c00a..91ae19fc0 100644 --- a/src/services/search/expressions/child_of.ts +++ b/src/services/search/expressions/child_of.ts @@ -1,8 +1,8 @@ "use strict"; -import Expression = require('./expression'); -import NoteSet = require('../note_set'); -import SearchContext = require('../search_context'); +import Expression from "./expression.js"; +import NoteSet from "../note_set.js"; +import SearchContext from "../search_context.js"; class ChildOfExp extends Expression { diff --git a/src/services/search/expressions/descendant_of.ts b/src/services/search/expressions/descendant_of.ts index 6994056c8..92b6f4687 100644 --- a/src/services/search/expressions/descendant_of.ts +++ b/src/services/search/expressions/descendant_of.ts @@ -1,9 +1,9 @@ "use strict"; -import Expression = require('./expression'); -import NoteSet = require('../note_set'); -import becca = require('../../../becca/becca'); -import SearchContext = require('../search_context'); +import Expression from "./expression.js"; +import NoteSet from "../note_set.js"; +import becca from "../../../becca/becca.js"; +import SearchContext from "../search_context.js"; class DescendantOfExp extends Expression { private subExpression: Expression; diff --git a/src/services/search/expressions/expression.ts b/src/services/search/expressions/expression.ts index 39c95ed47..a72b65347 100644 --- a/src/services/search/expressions/expression.ts +++ b/src/services/search/expressions/expression.ts @@ -1,7 +1,7 @@ "use strict"; -import NoteSet = require('../note_set'); -import SearchContext = require('../search_context'); +import NoteSet from "../note_set.js"; +import SearchContext from "../search_context.js"; abstract class Expression { name: string; diff --git a/src/services/search/expressions/is_hidden.ts b/src/services/search/expressions/is_hidden.ts index 81bef22b3..a2cccea60 100644 --- a/src/services/search/expressions/is_hidden.ts +++ b/src/services/search/expressions/is_hidden.ts @@ -1,8 +1,8 @@ "use strict"; -import Expression = require('./expression'); -import NoteSet = require('../note_set'); -import SearchContext = require('../search_context'); +import Expression from "./expression.js"; +import NoteSet from "../note_set.js"; +import SearchContext from "../search_context.js"; /** * Note is hidden when all its note paths start in hidden subtree (i.e., the note is not cloned into visible tree) diff --git a/src/services/search/expressions/label_comparison.ts b/src/services/search/expressions/label_comparison.ts index b455f82ca..fa472dcdb 100644 --- a/src/services/search/expressions/label_comparison.ts +++ b/src/services/search/expressions/label_comparison.ts @@ -1,9 +1,9 @@ "use strict"; -import Expression = require('./expression'); -import NoteSet = require('../note_set'); -import becca = require('../../../becca/becca'); -import SearchContext = require('../search_context'); +import Expression from "./expression.js"; +import NoteSet from "../note_set.js"; +import becca from "../../../becca/becca.js"; +import SearchContext from "../search_context.js"; type Comparator = (value: string) => boolean; diff --git a/src/services/search/expressions/not.ts b/src/services/search/expressions/not.ts index e1b31c84e..74a1d73b0 100644 --- a/src/services/search/expressions/not.ts +++ b/src/services/search/expressions/not.ts @@ -1,8 +1,8 @@ "use strict"; -import NoteSet = require('../note_set'); -import SearchContext = require('../search_context'); -import Expression = require('./expression'); +import NoteSet from "../note_set.js"; +import SearchContext from "../search_context.js"; +import Expression from "./expression.js"; class NotExp extends Expression { private subExpression: Expression; diff --git a/src/services/search/expressions/note_content_fulltext.ts b/src/services/search/expressions/note_content_fulltext.ts index 68af72b25..3533efdeb 100644 --- a/src/services/search/expressions/note_content_fulltext.ts +++ b/src/services/search/expressions/note_content_fulltext.ts @@ -1,16 +1,16 @@ "use strict"; import { NoteRow } from "../../../becca/entities/rows"; -import SearchContext = require('../search_context'); +import SearchContext from "../search_context.js"; -import Expression = require('./expression'); -import NoteSet = require('../note_set'); -import log = require('../../log'); -import becca = require('../../../becca/becca'); -import protectedSessionService = require('../../protected_session'); +import Expression from "./expression.js"; +import NoteSet from "../note_set.js"; +import log from "../../log.js"; +import becca from "../../../becca/becca.js"; +import protectedSessionService from "../../protected_session.js"; import striptags = require('striptags'); -import utils = require('../../utils'); -import sql = require('../../sql'); +import utils from "../../utils.js"; +import sql from "../../sql.js"; const ALLOWED_OPERATORS = ['=', '!=', '*=*', '*=', '=*', '%=']; diff --git a/src/services/search/expressions/note_flat_text.ts b/src/services/search/expressions/note_flat_text.ts index a067b456a..a4e794149 100644 --- a/src/services/search/expressions/note_flat_text.ts +++ b/src/services/search/expressions/note_flat_text.ts @@ -1,12 +1,12 @@ "use strict"; -import BNote = require('../../../becca/entities/bnote'); -import SearchContext = require('../search_context'); +import BNote from "../../../becca/entities/bnote.js"; +import SearchContext from "../search_context.js"; -import Expression = require('./expression'); -import NoteSet = require('../note_set'); -import becca = require('../../../becca/becca'); -import utils = require('../../utils'); +import Expression from "./expression.js"; +import NoteSet from "../note_set.js"; +import becca from "../../../becca/becca.js"; +import utils from "../../utils.js"; class NoteFlatTextExp extends Expression { private tokens: string[]; diff --git a/src/services/search/expressions/or.ts b/src/services/search/expressions/or.ts index f89e9070e..284563ee9 100644 --- a/src/services/search/expressions/or.ts +++ b/src/services/search/expressions/or.ts @@ -1,9 +1,9 @@ "use strict"; -import Expression = require('./expression'); -import NoteSet = require('../note_set'); -import TrueExp = require('./true'); -import SearchContext = require('../search_context'); +import Expression from "./expression.js"; +import NoteSet from "../note_set.js"; +import TrueExp from "./true.js"; +import SearchContext from "../search_context.js"; class OrExp extends Expression { private subExpressions: Expression[]; diff --git a/src/services/search/expressions/order_by_and_limit.ts b/src/services/search/expressions/order_by_and_limit.ts index 87e6af093..fac5126f3 100644 --- a/src/services/search/expressions/order_by_and_limit.ts +++ b/src/services/search/expressions/order_by_and_limit.ts @@ -1,9 +1,9 @@ "use strict"; -import BNote = require('../../../becca/entities/bnote'); -import NoteSet = require('../note_set'); -import SearchContext = require('../search_context'); -import Expression = require('./expression'); +import BNote from "../../../becca/entities/bnote.js"; +import NoteSet from "../note_set.js"; +import SearchContext from "../search_context.js"; +import Expression from "./expression.js"; interface ValueExtractor { extract: (note: BNote) => number | string | null; diff --git a/src/services/search/expressions/parent_of.ts b/src/services/search/expressions/parent_of.ts index bd7b9d304..872cfe825 100644 --- a/src/services/search/expressions/parent_of.ts +++ b/src/services/search/expressions/parent_of.ts @@ -1,8 +1,8 @@ "use strict"; -import Expression = require('./expression'); -import NoteSet = require('../note_set'); -import SearchContext = require('../search_context'); +import Expression from "./expression.js"; +import NoteSet from "../note_set.js"; +import SearchContext from "../search_context.js"; class ParentOfExp extends Expression { private subExpression: Expression; diff --git a/src/services/search/expressions/property_comparison.ts b/src/services/search/expressions/property_comparison.ts index 843b5a862..6902df898 100644 --- a/src/services/search/expressions/property_comparison.ts +++ b/src/services/search/expressions/property_comparison.ts @@ -1,8 +1,8 @@ "use strict"; -import Expression = require('./expression'); -import NoteSet = require('../note_set'); -import buildComparator = require('../services/build_comparator'); +import Expression from "./expression.js"; +import NoteSet from "../note_set.js"; +import buildComparator from "../services/build_comparator.js"; /** * Search string is lower cased for case-insensitive comparison. But when retrieving properties, diff --git a/src/services/search/expressions/relation_where.ts b/src/services/search/expressions/relation_where.ts index 9f33dcecf..1676eeafe 100644 --- a/src/services/search/expressions/relation_where.ts +++ b/src/services/search/expressions/relation_where.ts @@ -1,9 +1,9 @@ "use strict"; -import Expression = require('./expression'); -import NoteSet = require('../note_set'); -import becca = require('../../../becca/becca'); -import SearchContext = require('../search_context'); +import Expression from "./expression.js"; +import NoteSet from "../note_set.js"; +import becca from "../../../becca/becca.js"; +import SearchContext from "../search_context.js"; class RelationWhereExp extends Expression { private relationName: string; diff --git a/src/services/search/expressions/true.ts b/src/services/search/expressions/true.ts index 29df7df0f..afc0b8a25 100644 --- a/src/services/search/expressions/true.ts +++ b/src/services/search/expressions/true.ts @@ -1,9 +1,9 @@ "use strict"; -import NoteSet = require('../note_set'); -import SearchContext = require('../search_context'); +import NoteSet from "../note_set.js"; +import SearchContext from "../search_context.js"; -import Expression = require('./expression'); +import Expression from "./expression.js"; class TrueExp extends Expression { execute(inputNoteSet: NoteSet, executionContext: {}, searchContext: SearchContext): NoteSet { diff --git a/src/services/search/note_set.ts b/src/services/search/note_set.ts index 82ea6d723..e5ce38720 100644 --- a/src/services/search/note_set.ts +++ b/src/services/search/note_set.ts @@ -1,6 +1,6 @@ "use strict"; -import BNote = require('../../becca/entities/bnote'); +import BNote from "../../becca/entities/bnote.js"; class NoteSet { diff --git a/src/services/search/search_context.ts b/src/services/search/search_context.ts index f7c1e2198..29e0bd55d 100644 --- a/src/services/search/search_context.ts +++ b/src/services/search/search_context.ts @@ -1,6 +1,6 @@ "use strict"; -import hoistedNoteService = require('../hoisted_note'); +import hoistedNoteService from "../hoisted_note.js"; import { SearchParams } from './services/types'; class SearchContext { diff --git a/src/services/search/search_result.ts b/src/services/search/search_result.ts index cf651d58e..9e7d8311a 100644 --- a/src/services/search/search_result.ts +++ b/src/services/search/search_result.ts @@ -1,7 +1,7 @@ "use strict"; -import beccaService = require('../../becca/becca_service'); -import becca = require('../../becca/becca'); +import beccaService from "../../becca/becca_service.js"; +import becca from "../../becca/becca.js"; class SearchResult { notePathArray: string[]; diff --git a/src/services/search/services/parse.ts b/src/services/search/services/parse.ts index fe1731d24..389e018d7 100644 --- a/src/services/search/services/parse.ts +++ b/src/services/search/services/parse.ts @@ -1,28 +1,28 @@ "use strict"; import dayjs = require('dayjs'); -import AndExp = require('../expressions/and'); -import OrExp = require('../expressions/or'); -import NotExp = require('../expressions/not'); -import ChildOfExp = require('../expressions/child_of'); -import DescendantOfExp = require('../expressions/descendant_of'); -import ParentOfExp = require('../expressions/parent_of'); -import RelationWhereExp = require('../expressions/relation_where'); -import PropertyComparisonExp = require('../expressions/property_comparison'); -import AttributeExistsExp = require('../expressions/attribute_exists'); -import LabelComparisonExp = require('../expressions/label_comparison'); -import NoteFlatTextExp = require('../expressions/note_flat_text'); -import NoteContentFulltextExp = require('../expressions/note_content_fulltext'); -import OrderByAndLimitExp = require('../expressions/order_by_and_limit'); -import AncestorExp = require('../expressions/ancestor'); -import buildComparator = require('./build_comparator'); -import ValueExtractor = require('../value_extractor'); -import utils = require('../../utils'); -import TrueExp = require('../expressions/true'); -import IsHiddenExp = require('../expressions/is_hidden'); -import SearchContext = require('../search_context'); +import AndExp from "../expressions/and.js"; +import OrExp from "../expressions/or.js"; +import NotExp from "../expressions/not.js"; +import ChildOfExp from "../expressions/child_of.js"; +import DescendantOfExp from "../expressions/descendant_of.js"; +import ParentOfExp from "../expressions/parent_of.js"; +import RelationWhereExp from "../expressions/relation_where.js"; +import PropertyComparisonExp from "../expressions/property_comparison.js"; +import AttributeExistsExp from "../expressions/attribute_exists.js"; +import LabelComparisonExp from "../expressions/label_comparison.js"; +import NoteFlatTextExp from "../expressions/note_flat_text.js"; +import NoteContentFulltextExp from "../expressions/note_content_fulltext.js"; +import OrderByAndLimitExp from "../expressions/order_by_and_limit.js"; +import AncestorExp from "../expressions/ancestor.js"; +import buildComparator from "./build_comparator.js"; +import ValueExtractor from "../value_extractor.js"; +import utils from "../../utils.js"; +import TrueExp from "../expressions/true.js"; +import IsHiddenExp from "../expressions/is_hidden.js"; +import SearchContext from "../search_context.js"; import { TokenData } from "./types"; -import Expression = require('../expressions/expression'); +import Expression from "../expressions/expression.js"; function getFulltext(_tokens: TokenData[], searchContext: SearchContext) { const tokens: string[] = _tokens.map(t => utils.removeDiacritic(t.token)); diff --git a/src/services/search/services/search.ts b/src/services/search/services/search.ts index 6d3103a65..6ce2caa8d 100644 --- a/src/services/search/services/search.ts +++ b/src/services/search/services/search.ts @@ -1,21 +1,21 @@ "use strict"; import normalizeString = require('normalize-strings'); -import lex = require('./lex'); -import handleParens = require('./handle_parens'); -import parse = require('./parse'); -import SearchResult = require('../search_result'); -import SearchContext = require('../search_context'); -import becca = require('../../../becca/becca'); -import beccaService = require('../../../becca/becca_service'); -import utils = require('../../utils'); -import log = require('../../log'); -import hoistedNoteService = require('../../hoisted_note'); -import BNote = require('../../../becca/entities/bnote'); -import BAttribute = require('../../../becca/entities/battribute'); +import lex from "./lex.js"; +import handleParens from "./handle_parens.js"; +import parse from "./parse.js"; +import SearchResult from "../search_result.js"; +import SearchContext from "../search_context.js"; +import becca from "../../../becca/becca.js"; +import beccaService from "../../../becca/becca_service.js"; +import utils from "../../utils.js"; +import log from "../../log.js"; +import hoistedNoteService from "../../hoisted_note.js"; +import BNote from "../../../becca/entities/bnote.js"; +import BAttribute from "../../../becca/entities/battribute.js"; import { SearchParams, TokenData } from "./types"; -import Expression = require('../expressions/expression'); -import sql = require('../../sql'); +import Expression from "../expressions/expression.js"; +import sql from "../../sql.js"; function searchFromNote(note: BNote) { let searchResultNoteIds; diff --git a/src/services/search/value_extractor.ts b/src/services/search/value_extractor.ts index 730adadc5..805d658fd 100644 --- a/src/services/search/value_extractor.ts +++ b/src/services/search/value_extractor.ts @@ -1,6 +1,6 @@ "use strict"; -import BNote = require('../../becca/entities/bnote'); +import BNote from "../../becca/entities/bnote.js"; /** * Search string is lower cased for case-insensitive comparison. But when retrieving properties, diff --git a/src/services/session_secret.ts b/src/services/session_secret.ts index 20b35efb2..835aac38f 100644 --- a/src/services/session_secret.ts +++ b/src/services/session_secret.ts @@ -2,8 +2,8 @@ import fs = require('fs'); import crypto = require('crypto'); -import dataDir = require('./data_dir'); -import log = require('./log'); +import dataDir from "./data_dir.js"; +import log from "./log.js"; const sessionSecretPath = `${dataDir.TRILIUM_DATA_DIR}/session_secret.txt`; diff --git a/src/services/setup.ts b/src/services/setup.ts index 08b1ee806..97830bb14 100644 --- a/src/services/setup.ts +++ b/src/services/setup.ts @@ -1,12 +1,12 @@ -import syncService = require('./sync'); -import log = require('./log'); -import sqlInit = require('./sql_init'); -import optionService = require('./options'); -import syncOptions = require('./sync_options'); -import request = require('./request'); -import appInfo = require('./app_info'); -import utils = require('./utils'); -import becca = require('../becca/becca'); +import syncService from "./sync.js"; +import log from "./log.js"; +import sqlInit from "./sql_init.js"; +import optionService from "./options.js"; +import syncOptions from "./sync_options.js"; +import request from "./request.js"; +import appInfo from "./app_info.js"; +import utils from "./utils.js"; +import becca from "../becca/becca.js"; import { SetupStatusResponse, SetupSyncSeedResponse } from './api-interface'; async function hasSyncServerSchemaAndSeed() { diff --git a/src/services/special_notes.ts b/src/services/special_notes.ts index 65cc14c31..cd6b3b61b 100644 --- a/src/services/special_notes.ts +++ b/src/services/special_notes.ts @@ -1,13 +1,13 @@ -import attributeService = require('./attributes'); -import dateNoteService = require('./date_notes'); -import becca = require('../becca/becca'); -import noteService = require('./notes'); -import dateUtils = require('./date_utils'); -import log = require('./log'); -import hoistedNoteService = require('./hoisted_note'); -import searchService = require('./search/services/search'); -import SearchContext = require('./search/search_context'); -import hiddenSubtree = require('./hidden_subtree'); +import attributeService from "./attributes.js"; +import dateNoteService from "./date_notes.js"; +import becca from "../becca/becca.js"; +import noteService from "./notes.js"; +import dateUtils from "./date_utils.js"; +import log from "./log.js"; +import hoistedNoteService from "./hoisted_note.js"; +import searchService from "./search/services/search.js"; +import SearchContext from "./search/search_context.js"; +import hiddenSubtree from "./hidden_subtree.js"; const { LBTPL_NOTE_LAUNCHER, LBTPL_CUSTOM_WIDGET, LBTPL_SPACER, LBTPL_SCRIPT } = hiddenSubtree; function getInboxNote(date: string) { diff --git a/src/services/sql.ts b/src/services/sql.ts index 8565e0bdb..84ea52018 100644 --- a/src/services/sql.ts +++ b/src/services/sql.ts @@ -4,10 +4,10 @@ * @module sql */ -import log = require('./log'); +import log from "./log.js"; import type { Statement, Database as DatabaseType, RunResult } from "better-sqlite3"; -import dataDir = require('./data_dir'); -import cls = require('./cls'); +import dataDir from "./data_dir.js"; +import cls from "./cls.js"; import fs = require('fs-extra'); import Database = require('better-sqlite3'); diff --git a/src/services/sql_init.ts b/src/services/sql_init.ts index 5c9937daa..ad4777105 100644 --- a/src/services/sql_init.ts +++ b/src/services/sql_init.ts @@ -1,15 +1,15 @@ -import log = require('./log'); +import log from "./log.js"; import fs = require('fs'); -import resourceDir = require('./resource_dir'); -import sql = require('./sql'); -import utils = require('./utils'); -import optionService = require('./options'); -import port = require('./port'); -import BOption = require('../becca/entities/boption'); -import TaskContext = require('./task_context'); -import migrationService = require('./migration'); -import cls = require('./cls'); -import config = require('./config'); +import resourceDir from "./resource_dir.js"; +import sql from "./sql.js"; +import utils from "./utils.js"; +import optionService from "./options.js"; +import port from "./port.js"; +import BOption from "../becca/entities/boption.js"; +import TaskContext from "./task_context.js"; +import migrationService from "./migration.js"; +import cls from "./cls.js"; +import config from "./config.js"; import { OptionRow } from '../becca/entities/rows'; const dbReady = utils.deferred(); diff --git a/src/services/sync.ts b/src/services/sync.ts index 8c8183984..f67687b8e 100644 --- a/src/services/sync.ts +++ b/src/services/sync.ts @@ -1,22 +1,22 @@ "use strict"; -import log = require('./log'); -import sql = require('./sql'); -import optionService = require('./options'); -import utils = require('./utils'); -import instanceId = require('./instance_id'); -import dateUtils = require('./date_utils'); -import syncUpdateService = require('./sync_update'); -import contentHashService = require('./content_hash'); -import appInfo = require('./app_info'); -import syncOptions = require('./sync_options'); -import syncMutexService = require('./sync_mutex'); -import cls = require('./cls'); -import request = require('./request'); -import ws = require('./ws'); -import entityChangesService = require('./entity_changes'); -import entityConstructor = require('../becca/entity_constructor'); -import becca = require('../becca/becca'); +import log from "./log.js"; +import sql from "./sql.js"; +import optionService from "./options.js"; +import utils from "./utils.js"; +import instanceId from "./instance_id.js"; +import dateUtils from "./date_utils.js"; +import syncUpdateService from "./sync_update.js"; +import contentHashService from "./content_hash.js"; +import appInfo from "./app_info.js"; +import syncOptions from "./sync_options.js"; +import syncMutexService from "./sync_mutex.js"; +import cls from "./cls.js"; +import request from "./request.js"; +import ws from "./ws.js"; +import entityChangesService from "./entity_changes.js"; +import entityConstructor from "../becca/entity_constructor.js"; +import becca from "../becca/becca.js"; import { EntityChange, EntityChangeRecord, EntityRow } from './entity_changes_interface'; import { CookieJar, ExecOpts } from './request_interface'; diff --git a/src/services/sync_options.ts b/src/services/sync_options.ts index 92aea6c3f..6423e5fb2 100644 --- a/src/services/sync_options.ts +++ b/src/services/sync_options.ts @@ -1,7 +1,7 @@ "use strict"; -import optionService = require('./options'); -import config = require('./config'); +import optionService from "./options.js"; +import config from "./config.js"; /* * Primary configuration for sync is in the options (document), but we allow to override diff --git a/src/services/sync_update.ts b/src/services/sync_update.ts index 888947b8b..4d6728d93 100644 --- a/src/services/sync_update.ts +++ b/src/services/sync_update.ts @@ -1,9 +1,9 @@ -import sql = require('./sql'); -import log = require('./log'); -import entityChangesService = require('./entity_changes'); -import eventService = require('./events'); -import entityConstructor = require('../becca/entity_constructor'); -import ws = require('./ws'); +import sql from "./sql.js"; +import log from "./log.js"; +import entityChangesService from "./entity_changes.js"; +import eventService from "./events.js"; +import entityConstructor from "../becca/entity_constructor.js"; +import ws from "./ws.js"; import { EntityChange, EntityChangeRecord, EntityRow } from './entity_changes_interface'; interface UpdateContext { diff --git a/src/services/task_context.ts b/src/services/task_context.ts index 27f7d1358..37d2de8dd 100644 --- a/src/services/task_context.ts +++ b/src/services/task_context.ts @@ -1,7 +1,7 @@ "use strict"; import { TaskData } from './task_context_interface'; -import ws = require('./ws'); +import ws from "./ws.js"; // taskId => TaskContext const taskContexts: Record = {}; diff --git a/src/services/tray.ts b/src/services/tray.ts index 70d686adb..5939da76d 100644 --- a/src/services/tray.ts +++ b/src/services/tray.ts @@ -1,7 +1,7 @@ import { Menu, Tray } from 'electron'; import path = require('path'); -import windowService = require('./window'); -import optionService = require('./options'); +import windowService from "./window.js"; +import optionService from "./options.js"; let tray: Tray; // `mainWindow.isVisible` doesn't work with `mainWindow.show` and `mainWindow.hide` - it returns `false` when the window diff --git a/src/services/tree.ts b/src/services/tree.ts index d731fe6b0..6bf2dbb29 100644 --- a/src/services/tree.ts +++ b/src/services/tree.ts @@ -1,11 +1,11 @@ "use strict"; -import sql = require('./sql'); -import log = require('./log'); -import BBranch = require('../becca/entities/bbranch'); -import entityChangesService = require('./entity_changes'); -import becca = require('../becca/becca'); -import BNote = require('../becca/entities/bnote'); +import sql from "./sql.js"; +import log from "./log.js"; +import BBranch from "../becca/entities/bbranch.js"; +import entityChangesService from "./entity_changes.js"; +import becca from "../becca/becca.js"; +import BNote from "../becca/entities/bnote.js"; function validateParentChild(parentNoteId: string, childNoteId: string, branchId: string | null = null) { if (['root', '_hidden', '_share', '_lbRoot', '_lbAvailableLaunchers', '_lbVisibleLaunchers'].includes(childNoteId)) { diff --git a/src/services/window.ts b/src/services/window.ts index 80c93a5cc..3a4aece7d 100644 --- a/src/services/window.ts +++ b/src/services/window.ts @@ -1,12 +1,12 @@ import path = require('path'); import url = require('url'); -import port = require('./port'); -import optionService = require('./options'); -import env = require('./env'); -import log = require('./log'); -import sqlInit = require('./sql_init'); -import cls = require('./cls'); -import keyboardActionsService = require('./keyboard_actions'); +import port from "./port.js"; +import optionService from "./options.js"; +import env from "./env.js"; +import log from "./log.js"; +import sqlInit from "./sql_init.js"; +import cls from "./cls.js"; +import keyboardActionsService from "./keyboard_actions.js"; import remoteMain = require('@electron/remote/main') import { App, BrowserWindow, WebContents, ipcMain } from 'electron'; diff --git a/src/services/ws.ts b/src/services/ws.ts index ec7d47187..5f448e97c 100644 --- a/src/services/ws.ts +++ b/src/services/ws.ts @@ -1,15 +1,15 @@ import WebSocket = require('ws'); -import utils = require('./utils'); -import log = require('./log'); -import sql = require('./sql'); -import cls = require('./cls'); -import config = require('./config'); -import syncMutexService = require('./sync_mutex'); -import protectedSessionService = require('./protected_session'); -import becca = require('../becca/becca'); -import AbstractBeccaEntity = require('../becca/entities/abstract_becca_entity'); +import utils from "./utils.js"; +import log from "./log.js"; +import sql from "./sql.js"; +import cls from "./cls.js"; +import config from "./config.js"; +import syncMutexService from "./sync_mutex.js"; +import protectedSessionService from "./protected_session.js"; +import becca from "../becca/becca.js"; +import AbstractBeccaEntity from "../becca/entities/abstract_becca_entity.js"; -import env = require('./env'); +import env from "./env.js"; import { IncomingMessage, Server } from 'http'; import { EntityChange } from './entity_changes_interface'; diff --git a/src/share/content_renderer.ts b/src/share/content_renderer.ts index 238efeae1..1d64dcd0c 100644 --- a/src/share/content_renderer.ts +++ b/src/share/content_renderer.ts @@ -1,9 +1,9 @@ import { JSDOM } from "jsdom"; -import shaca = require('./shaca/shaca'); -import assetPath = require('../services/asset_path'); -import shareRoot = require('./share_root'); +import shaca from "./shaca/shaca.js"; +import assetPath from "../services/asset_path.js"; +import shareRoot from "./share_root.js"; import escapeHtml = require('escape-html'); -import SNote = require('./shaca/entities/snote'); +import SNote from "./shaca/entities/snote.js"; interface Result { header: string; diff --git a/src/share/routes.ts b/src/share/routes.ts index 2b5650c6c..34af79feb 100644 --- a/src/share/routes.ts +++ b/src/share/routes.ts @@ -3,18 +3,18 @@ import ejs = require('ejs'); import type { Request, Response, Router } from "express"; -import shaca = require('./shaca/shaca'); -import shacaLoader = require('./shaca/shaca_loader'); -import shareRoot = require('./share_root'); -import contentRenderer = require('./content_renderer'); -import assetPath = require('../services/asset_path'); -import appPath = require('../services/app_path'); -import searchService = require('../services/search/services/search'); -import SearchContext = require('../services/search/search_context'); -import log = require('../services/log'); -import SNote = require('./shaca/entities/snote'); -import SBranch = require('./shaca/entities/sbranch'); -import SAttachment = require('./shaca/entities/sattachment'); +import shaca from "./shaca/shaca.js"; +import shacaLoader from "./shaca/shaca_loader.js"; +import shareRoot from "./share_root.js"; +import contentRenderer from "./content_renderer.js"; +import assetPath from "../services/asset_path.js"; +import appPath from "../services/app_path.js"; +import searchService from "../services/search/services/search.js"; +import SearchContext from "../services/search/search_context.js"; +import log from "../services/log.js"; +import SNote from "./shaca/entities/snote.js"; +import SBranch from "./shaca/entities/sbranch.js"; +import SAttachment from "./shaca/entities/sattachment.js"; function getSharedSubTreeRoot(note: SNote): { note?: SNote; branch?: SBranch } { if (note.noteId === shareRoot.SHARE_ROOT_NOTE_ID) { diff --git a/src/share/shaca/entities/sattachment.ts b/src/share/shaca/entities/sattachment.ts index 7951fe081..d913d32b2 100644 --- a/src/share/shaca/entities/sattachment.ts +++ b/src/share/shaca/entities/sattachment.ts @@ -1,9 +1,9 @@ "use strict"; -import sql = require('../../sql'); -import utils = require('../../../services/utils'); -import AbstractShacaEntity = require('./abstract_shaca_entity'); -import SNote = require('./snote'); +import sql from "../../sql.js"; +import utils from "../../../services/utils.js"; +import AbstractShacaEntity from "./abstract_shaca_entity.js"; +import SNote from "./snote.js"; import { Blob } from '../../../services/blob-interface'; import { SAttachmentRow } from './rows'; diff --git a/src/share/shaca/entities/sattribute.ts b/src/share/shaca/entities/sattribute.ts index c63de14e6..ccbd60bb1 100644 --- a/src/share/shaca/entities/sattribute.ts +++ b/src/share/shaca/entities/sattribute.ts @@ -1,7 +1,7 @@ "use strict"; import { SAttributeRow } from "./rows"; -import SNote = require('./snote'); +import SNote from "./snote.js"; const AbstractShacaEntity = require('./abstract_shaca_entity'); diff --git a/src/share/shaca/entities/sbranch.ts b/src/share/shaca/entities/sbranch.ts index b4ff9a73b..b24584905 100644 --- a/src/share/shaca/entities/sbranch.ts +++ b/src/share/shaca/entities/sbranch.ts @@ -1,8 +1,8 @@ "use strict"; -import AbstractShacaEntity = require('./abstract_shaca_entity'); +import AbstractShacaEntity from "./abstract_shaca_entity.js"; import { SBranchRow } from './rows'; -import SNote = require('./snote'); +import SNote from "./snote.js"; class SBranch extends AbstractShacaEntity { diff --git a/src/share/shaca/entities/snote.ts b/src/share/shaca/entities/snote.ts index 18182f1d4..02eea8636 100644 --- a/src/share/shaca/entities/snote.ts +++ b/src/share/shaca/entities/snote.ts @@ -1,13 +1,13 @@ "use strict"; -import sql = require('../../sql'); -import utils = require('../../../services/utils'); -import AbstractShacaEntity = require('./abstract_shaca_entity'); +import sql from "../../sql.js"; +import utils from "../../../services/utils.js"; +import AbstractShacaEntity from "./abstract_shaca_entity.js"; import escape = require('escape-html'); import { Blob } from '../../../services/blob-interface'; -import SAttachment = require('./sattachment'); -import SAttribute = require('./sattribute'); -import SBranch = require('./sbranch'); +import SAttachment from "./sattachment.js"; +import SAttribute from "./sattribute.js"; +import SBranch from "./sbranch.js"; import { SNoteRow } from './rows'; const LABEL = 'label'; diff --git a/src/share/shaca/shaca-interface.ts b/src/share/shaca/shaca-interface.ts index a90d52469..43fbf9dfa 100644 --- a/src/share/shaca/shaca-interface.ts +++ b/src/share/shaca/shaca-interface.ts @@ -1,7 +1,7 @@ -import SAttachment = require('./entities/sattachment'); -import SAttribute = require('./entities/sattribute'); -import SBranch = require('./entities/sbranch'); -import SNote = require('./entities/snote'); +import SAttachment from "./entities/sattachment.js"; +import SAttribute from "./entities/sattribute.js"; +import SBranch from "./entities/sbranch.js"; +import SNote from "./entities/snote.js"; export default class Shaca { diff --git a/src/share/shaca/shaca_loader.ts b/src/share/shaca/shaca_loader.ts index 050e5e886..8299d2df6 100644 --- a/src/share/shaca/shaca_loader.ts +++ b/src/share/shaca/shaca_loader.ts @@ -1,14 +1,14 @@ "use strict"; -import sql = require('../sql'); -import shaca = require('./shaca'); -import log = require('../../services/log'); -import SNote = require('./entities/snote'); -import SBranch = require('./entities/sbranch'); -import SAttribute = require('./entities/sattribute'); -import SAttachment = require('./entities/sattachment'); -import shareRoot = require('../share_root'); -import eventService = require('../../services/events'); +import sql from "../sql.js"; +import shaca from "./shaca.js"; +import log from "../../services/log.js"; +import SNote from "./entities/snote.js"; +import SBranch from "./entities/sbranch.js"; +import SAttribute from "./entities/sattribute.js"; +import SAttachment from "./entities/sattachment.js"; +import shareRoot from "../share_root.js"; +import eventService from "../../services/events.js"; import { SAttachmentRow, SAttributeRow, SBranchRow, SNoteRow } from './entities/rows'; function load() { diff --git a/src/share/sql.ts b/src/share/sql.ts index a5465f4c2..9990039c2 100644 --- a/src/share/sql.ts +++ b/src/share/sql.ts @@ -1,7 +1,7 @@ "use strict"; import Database = require('better-sqlite3'); -import dataDir = require('../services/data_dir'); +import dataDir from "../services/data_dir.js"; const dbConnection = new Database(dataDir.DOCUMENT_PATH, { readonly: true }); diff --git a/src/www.ts b/src/www.ts index 4ff6244ff..0e1bae6e9 100644 --- a/src/www.ts +++ b/src/www.ts @@ -18,18 +18,18 @@ function exit() { process.on('SIGINT', exit); process.on('SIGTERM', exit); -import app = require('./app'); -import sessionParser = require('./routes/session_parser'); +import app from "./app.js"; +import sessionParser from "./routes/session_parser.js"; import fs = require('fs'); import http = require('http'); import https = require('https'); -import config = require('./services/config'); -import log = require('./services/log'); -import appInfo = require('./services/app_info'); -import ws = require('./services/ws'); -import utils = require('./services/utils'); -import port = require('./services/port'); -import host = require('./services/host'); +import config from "./services/config.js"; +import log from "./services/log.js"; +import appInfo from "./services/app_info.js"; +import ws from "./services/ws.js"; +import utils from "./services/utils.js"; +import port from "./services/port.js"; +import host from "./services/host.js"; import semver = require('semver'); if (!semver.satisfies(process.version, ">=10.5.0")) { diff --git a/webpack.config.ts b/webpack.config.ts index bd7135e24..56146fbd2 100644 --- a/webpack.config.ts +++ b/webpack.config.ts @@ -1,5 +1,5 @@ import path = require('path'); -import assetPath = require('./src/services/asset_path'); +import assetPath from "./src/services/asset_path.js"; module.exports = { mode: 'production', From 2750df04a3c84060ebb3e7568379c3de36b1d21c Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Thu, 18 Jul 2024 21:37:45 +0300 Subject: [PATCH 05/25] server-esm: Change simple library import statements --- electron.ts | 2 +- spec/etapi/import.spec.ts | 4 ++-- spec/etapi/notes.spec.ts | 2 +- spec/search/becca_mocking.ts | 2 +- spec/support/etapi.ts | 4 ++-- src/app.ts | 12 ++++++------ src/becca/entities/bnote.ts | 4 ++-- src/etapi/spec.ts | 4 ++-- src/routes/api/backend_log.ts | 2 +- src/routes/api/clipper.ts | 4 ++-- src/routes/api/files.ts | 6 +++--- src/routes/api/image.ts | 2 +- src/routes/api/import.ts | 2 +- src/routes/api/revisions.ts | 2 +- src/routes/api/sender.ts | 2 +- src/routes/assets.ts | 6 +++--- src/routes/routes.ts | 8 ++++---- src/routes/session_parser.ts | 2 +- src/services/anonymization.ts | 6 +++--- src/services/app_icon.ts | 6 +++--- src/services/backend_script_api.ts | 6 +++--- src/services/backup.ts | 4 ++-- src/services/cls.ts | 2 +- src/services/config.ts | 6 +++--- src/services/data_dir.ts | 6 +++--- src/services/date_utils.ts | 2 +- src/services/encryption/data_encryption.ts | 2 +- src/services/encryption/my_scrypt.ts | 2 +- src/services/etapi_tokens.ts | 2 +- src/services/export/md.ts | 4 ++-- src/services/export/single.ts | 4 ++-- src/services/export/zip.ts | 12 ++++++------ src/services/html_sanitizer.ts | 4 ++-- src/services/image.ts | 10 +++++----- src/services/import/enex.ts | 4 ++-- src/services/import/markdown.ts | 2 +- src/services/import/mime.ts | 4 ++-- src/services/import/opml.ts | 2 +- src/services/import/zip.ts | 4 ++-- src/services/log.ts | 2 +- src/services/migration.ts | 2 +- src/services/notes.ts | 10 +++++----- src/services/request.ts | 2 +- src/services/resource_dir.ts | 4 ++-- .../search/expressions/note_content_fulltext.ts | 2 +- src/services/search/services/parse.ts | 2 +- src/services/search/services/search.ts | 2 +- src/services/session_secret.ts | 4 ++-- src/services/sql.ts | 4 ++-- src/services/sql_init.ts | 2 +- src/services/tray.ts | 2 +- src/services/utils.ts | 12 ++++++------ src/services/window.ts | 6 +++--- src/services/ws.ts | 2 +- src/share/content_renderer.ts | 2 +- src/share/routes.ts | 4 ++-- src/share/shaca/entities/snote.ts | 2 +- src/share/sql.ts | 2 +- src/types.d.ts | 2 +- src/www.ts | 8 ++++---- webpack.config.ts | 2 +- 61 files changed, 122 insertions(+), 122 deletions(-) diff --git a/electron.ts b/electron.ts index 1872e7167..3e44e03ce 100644 --- a/electron.ts +++ b/electron.ts @@ -1,6 +1,6 @@ "use strict"; -import electron = require('electron'); +import electron from "electron"; import sqlInit from "./src/services/sql_init.js"; import appIconService from "./src/services/app_icon.js"; import windowService from "./src/services/window.js"; diff --git a/spec/etapi/import.spec.ts b/spec/etapi/import.spec.ts index 735e328d1..88c9e0a88 100644 --- a/spec/etapi/import.spec.ts +++ b/spec/etapi/import.spec.ts @@ -1,6 +1,6 @@ import etapi from "../support/etapi.js"; -import fs = require('fs'); -import path = require('path'); +import fs from "fs"; +import path from "path"; etapi.describeEtapi("import", () => { // temporarily skip this test since test-export.zip is missing diff --git a/spec/etapi/notes.spec.ts b/spec/etapi/notes.spec.ts index 8fcfc4c77..cbfd4de7e 100644 --- a/spec/etapi/notes.spec.ts +++ b/spec/etapi/notes.spec.ts @@ -1,4 +1,4 @@ -import crypto = require('crypto'); +import crypto from "crypto"; import etapi from "../support/etapi.js"; etapi.describeEtapi("notes", () => { diff --git a/spec/search/becca_mocking.ts b/spec/search/becca_mocking.ts index 984ea2940..487a6b668 100644 --- a/spec/search/becca_mocking.ts +++ b/spec/search/becca_mocking.ts @@ -2,7 +2,7 @@ import BNote from "../../src/becca/entities/bnote.js"; import BBranch from "../../src/becca/entities/bbranch.js"; import BAttribute from "../../src/becca/entities/battribute.js"; import becca from "../../src/becca/becca.js"; -import randtoken = require('rand-token'); +import randtoken from "rand-token"; import SearchResult from "../../src/services/search/search_result.js"; import { NoteType } from "../../src/becca/entities/rows"; randtoken.generator({ source: "crypto" }); diff --git a/spec/support/etapi.ts b/spec/support/etapi.ts index 0d36f1380..00310d9cc 100644 --- a/spec/support/etapi.ts +++ b/spec/support/etapi.ts @@ -1,5 +1,5 @@ -import child_process = require('child_process'); -import kill = require('tree-kill'); +import child_process from "child_process"; +import kill from "tree-kill"; let etapiAuthToken: string | undefined; diff --git a/src/app.ts b/src/app.ts index ebda1a44c..1cdf5e643 100644 --- a/src/app.ts +++ b/src/app.ts @@ -1,9 +1,9 @@ -import express = require('express'); -import path = require('path'); -import favicon = require('serve-favicon'); -import cookieParser = require('cookie-parser'); -import helmet = require('helmet'); -import compression = require('compression'); +import express from "express"; +import path from "path"; +import favicon from "serve-favicon"; +import cookieParser from "cookie-parser"; +import helmet from "helmet"; +import compression from "compression"; import sessionParser from "./routes/session_parser.js"; import utils from "./services/utils.js"; diff --git a/src/becca/entities/bnote.ts b/src/becca/entities/bnote.ts index 1c8d229a5..2b12d9815 100644 --- a/src/becca/entities/bnote.ts +++ b/src/becca/entities/bnote.ts @@ -9,8 +9,8 @@ import AbstractBeccaEntity from "./abstract_becca_entity.js"; import BRevision from "./brevision.js"; import BAttachment from "./battachment.js"; import TaskContext from "../../services/task_context.js"; -import dayjs = require('dayjs'); -import utc = require('dayjs/plugin/utc'); +import dayjs from "dayjs"; +import utc from "dayjs/plugin/utc"; import eventService from "../../services/events.js"; import { AttachmentRow, NoteRow, NoteType, RevisionRow } from './rows'; import BBranch from "./bbranch.js"; diff --git a/src/etapi/spec.ts b/src/etapi/spec.ts index 530249d46..e9fdca960 100644 --- a/src/etapi/spec.ts +++ b/src/etapi/spec.ts @@ -1,7 +1,7 @@ import { Router } from "express"; -import fs = require('fs'); -import path = require('path'); +import fs from "fs"; +import path from "path"; const specPath = path.join(__dirname, 'etapi.openapi.yaml'); let spec: string | null = null; diff --git a/src/routes/api/backend_log.ts b/src/routes/api/backend_log.ts index d55602e13..bdd15e17b 100644 --- a/src/routes/api/backend_log.ts +++ b/src/routes/api/backend_log.ts @@ -1,6 +1,6 @@ "use strict"; -import fs = require('fs'); +import fs from "fs"; import dateUtils from "../../services/date_utils.js"; import dataDir from "../../services/data_dir.js"; const { LOG_DIR } = dataDir; diff --git a/src/routes/api/clipper.ts b/src/routes/api/clipper.ts index 31926afb0..f81a8c2ce 100644 --- a/src/routes/api/clipper.ts +++ b/src/routes/api/clipper.ts @@ -12,10 +12,10 @@ import appInfo from "../../services/app_info.js"; import ws from "../../services/ws.js"; import log from "../../services/log.js"; import utils from "../../services/utils.js"; -import path = require('path'); +import path from "path"; import htmlSanitizer from "../../services/html_sanitizer.js"; import attributeFormatter from "../../services/attribute_formatter.js"; -import jsdom = require('jsdom'); +import jsdom from "jsdom"; import BNote from "../../becca/entities/bnote.js"; import ValidationError from "../../errors/validation_error.js"; const { JSDOM } = jsdom; diff --git a/src/routes/api/files.ts b/src/routes/api/files.ts index e889cc8a4..72231567e 100644 --- a/src/routes/api/files.ts +++ b/src/routes/api/files.ts @@ -4,10 +4,10 @@ import protectedSessionService from "../../services/protected_session.js"; import utils from "../../services/utils.js"; import log from "../../services/log.js"; import noteService from "../../services/notes.js"; -import tmp = require('tmp'); -import fs = require('fs'); +import tmp from "tmp"; +import fs from "fs"; import { Readable } from 'stream'; -import chokidar = require('chokidar'); +import chokidar from "chokidar"; import ws from "../../services/ws.js"; import becca from "../../becca/becca.js"; import ValidationError from "../../errors/validation_error.js"; diff --git a/src/routes/api/image.ts b/src/routes/api/image.ts index e8df615c1..6af237982 100644 --- a/src/routes/api/image.ts +++ b/src/routes/api/image.ts @@ -3,7 +3,7 @@ import imageService from "../../services/image.js"; import becca from "../../becca/becca.js"; const RESOURCE_DIR = require('../../services/resource_dir').RESOURCE_DIR; -import fs = require('fs'); +import fs from "fs"; import { Request, Response } from 'express'; import BNote from "../../becca/entities/bnote.js"; import BRevision from "../../becca/entities/brevision.js"; diff --git a/src/routes/api/import.ts b/src/routes/api/import.ts index 51864738a..ee9f7d7ae 100644 --- a/src/routes/api/import.ts +++ b/src/routes/api/import.ts @@ -5,7 +5,7 @@ import opmlImportService from "../../services/import/opml.js"; import zipImportService from "../../services/import/zip.js"; import singleImportService from "../../services/import/single.js"; import cls from "../../services/cls.js"; -import path = require('path'); +import path from "path"; import becca from "../../becca/becca.js"; import beccaLoader from "../../becca/becca_loader.js"; import log from "../../services/log.js"; diff --git a/src/routes/api/revisions.ts b/src/routes/api/revisions.ts index 0be6d6399..af82b7121 100644 --- a/src/routes/api/revisions.ts +++ b/src/routes/api/revisions.ts @@ -5,7 +5,7 @@ import revisionService from "../../services/revisions.js"; import utils from "../../services/utils.js"; import sql from "../../services/sql.js"; import cls from "../../services/cls.js"; -import path = require('path'); +import path from "path"; import becca from "../../becca/becca.js"; import blobService from "../../services/blob.js"; import eraseService from "../../services/erase.js"; diff --git a/src/routes/api/sender.ts b/src/routes/api/sender.ts index a20526498..96cd1fcb4 100644 --- a/src/routes/api/sender.ts +++ b/src/routes/api/sender.ts @@ -1,6 +1,6 @@ "use strict"; -import imageType = require('image-type'); +import imageType from "image-type"; import imageService from "../../services/image.js"; import noteService from "../../services/notes.js"; import sanitize_attribute_name from "../../services/sanitize_attribute_name.js"; diff --git a/src/routes/assets.ts b/src/routes/assets.ts index c84c7e31d..2bf03bf6d 100644 --- a/src/routes/assets.ts +++ b/src/routes/assets.ts @@ -1,8 +1,8 @@ import assetPath from "../services/asset_path.js"; -import path = require('path'); -import express = require('express'); +import path from "path"; +import express from "express"; import env from "../services/env.js"; -import serveStatic = require('serve-static'); +import serveStatic from "serve-static"; const persistentCacheStatic = (root: string, options?: serveStatic.ServeStaticOptions>>) => { if (!env.isDev()) { diff --git a/src/routes/routes.ts b/src/routes/routes.ts index 5e78de447..b71746b48 100644 --- a/src/routes/routes.ts +++ b/src/routes/routes.ts @@ -1,17 +1,17 @@ "use strict"; import utils from "../services/utils.js"; -import multer = require('multer'); +import multer from "multer"; import log from "../services/log.js"; -import express = require('express'); +import express from "express"; const router = express.Router(); import auth from "../services/auth.js"; import cls from "../services/cls.js"; import sql from "../services/sql.js"; import entityChangesService from "../services/entity_changes.js"; -import csurf = require('csurf'); +import csurf from "csurf"; import { createPartialContentHandler } from "express-partial-content"; -import rateLimit = require('express-rate-limit'); +import rateLimit from "express-rate-limit"; import AbstractBeccaEntity from "../becca/entities/abstract_becca_entity.js"; import NotFoundError from "../errors/not_found_error.js"; import ValidationError from "../errors/validation_error.js"; diff --git a/src/routes/session_parser.ts b/src/routes/session_parser.ts index 58d26e642..88ae80b9d 100644 --- a/src/routes/session_parser.ts +++ b/src/routes/session_parser.ts @@ -1,4 +1,4 @@ -import session = require('express-session'); +import session from "express-session"; import sessionSecret from "../services/session_secret.js"; import dataDir from "../services/data_dir.js"; const FileStore = require('session-file-store')(session); diff --git a/src/services/anonymization.ts b/src/services/anonymization.ts index 8a0a8828f..e3b0b1d7b 100644 --- a/src/services/anonymization.ts +++ b/src/services/anonymization.ts @@ -1,10 +1,10 @@ import BUILTIN_ATTRIBUTES from "./builtin_attributes.js"; -import fs = require('fs-extra'); +import fs from "fs-extra"; import dataDir from "./data_dir.js"; import dateUtils from "./date_utils.js"; -import Database = require('better-sqlite3'); +import Database from "better-sqlite3"; import sql from "./sql.js"; -import path = require('path'); +import path from "path"; function getFullAnonymizationScript() { // we want to delete all non-builtin attributes because they can contain sensitive names and values diff --git a/src/services/app_icon.ts b/src/services/app_icon.ts index 02a0769d2..0d2556f94 100644 --- a/src/services/app_icon.ts +++ b/src/services/app_icon.ts @@ -1,10 +1,10 @@ "use strict"; -import path = require('path'); +import path from "path"; import resourceDir from "./resource_dir.js"; import log from "./log.js"; -import os = require('os'); -import fs = require('fs'); +import os from "os"; +import fs from "fs"; import config from "./config.js"; import utils from "./utils.js"; diff --git a/src/services/backend_script_api.ts b/src/services/backend_script_api.ts index 80f114810..757a4c826 100644 --- a/src/services/backend_script_api.ts +++ b/src/services/backend_script_api.ts @@ -6,9 +6,9 @@ import attributeService from "./attributes.js"; import dateNoteService from "./date_notes.js"; import treeService from "./tree.js"; import config from "./config.js"; -import axios = require('axios'); -import dayjs = require('dayjs'); -import xml2js = require('xml2js'); +import axios from "axios"; +import dayjs from "dayjs"; +import xml2js from "xml2js"; import cloningService from "./cloning.js"; import appInfo from "./app_info.js"; import searchService from "./search/services/search.js"; diff --git a/src/services/backup.ts b/src/services/backup.ts index a855fc71f..b56f54c34 100644 --- a/src/services/backup.ts +++ b/src/services/backup.ts @@ -2,13 +2,13 @@ import dateUtils from "./date_utils.js"; import optionService from "./options.js"; -import fs = require('fs-extra'); +import fs from "fs-extra"; import dataDir from "./data_dir.js"; import log from "./log.js"; import syncMutexService from "./sync_mutex.js"; import cls from "./cls.js"; import sql from "./sql.js"; -import path = require('path'); +import path from "path"; type BackupType = ("daily" | "weekly" | "monthly"); diff --git a/src/services/cls.ts b/src/services/cls.ts index d119c8a93..83365b7e5 100644 --- a/src/services/cls.ts +++ b/src/services/cls.ts @@ -1,4 +1,4 @@ -import clsHooked = require('cls-hooked'); +import clsHooked from "cls-hooked"; import { EntityChange } from './entity_changes_interface'; const namespace = clsHooked.createNamespace("trilium"); diff --git a/src/services/config.ts b/src/services/config.ts index 7936147db..10bead0f1 100644 --- a/src/services/config.ts +++ b/src/services/config.ts @@ -1,9 +1,9 @@ "use strict"; -import ini = require('ini'); -import fs = require('fs'); +import ini from "ini"; +import fs from "fs"; import dataDir from "./data_dir.js"; -import path = require('path'); +import path from "path"; import resourceDir from "./resource_dir.js"; const configSampleFilePath = path.resolve(resourceDir.RESOURCE_DIR, "config-sample.ini"); diff --git a/src/services/data_dir.ts b/src/services/data_dir.ts index 1b267850a..b9a4ab8ef 100644 --- a/src/services/data_dir.ts +++ b/src/services/data_dir.ts @@ -8,9 +8,9 @@ * - as a fallback if the previous step fails, we'll use home dir */ -import os = require('os'); -import fs = require('fs'); -import path = require('path'); +import os from "os"; +import fs from "fs"; +import path from "path"; function getAppDataDir() { let appDataDir = os.homedir(); // fallback if OS is not recognized diff --git a/src/services/date_utils.ts b/src/services/date_utils.ts index b22cb2d88..b2e57852a 100644 --- a/src/services/date_utils.ts +++ b/src/services/date_utils.ts @@ -1,4 +1,4 @@ -import dayjs = require('dayjs'); +import dayjs from "dayjs"; import cls from "./cls.js"; const LOCAL_DATETIME_FORMAT = 'YYYY-MM-DD HH:mm:ss.SSSZZ'; diff --git a/src/services/encryption/data_encryption.ts b/src/services/encryption/data_encryption.ts index ce874c119..978dcd440 100644 --- a/src/services/encryption/data_encryption.ts +++ b/src/services/encryption/data_encryption.ts @@ -1,6 +1,6 @@ "use strict"; -import crypto = require('crypto'); +import crypto from "crypto"; import log from "../log.js"; function arraysIdentical(a: any[] | Buffer, b: any[] | Buffer) { diff --git a/src/services/encryption/my_scrypt.ts b/src/services/encryption/my_scrypt.ts index f8a07a930..0310a1b1f 100644 --- a/src/services/encryption/my_scrypt.ts +++ b/src/services/encryption/my_scrypt.ts @@ -1,7 +1,7 @@ "use strict"; import optionService from "../options.js"; -import crypto = require('crypto'); +import crypto from "crypto"; function getVerificationHash(password: crypto.BinaryLike) { const salt = optionService.getOption('passwordVerificationSalt'); diff --git a/src/services/etapi_tokens.ts b/src/services/etapi_tokens.ts index f314a7e8e..6d1c810ae 100644 --- a/src/services/etapi_tokens.ts +++ b/src/services/etapi_tokens.ts @@ -1,7 +1,7 @@ import becca from "../becca/becca.js"; import utils from "./utils.js"; import BEtapiToken from "../becca/entities/betapi_token.js"; -import crypto = require('crypto'); +import crypto from "crypto"; function getTokens() { return becca.getEtapiTokens(); diff --git a/src/services/export/md.ts b/src/services/export/md.ts index 3e6754c1c..c13824b09 100644 --- a/src/services/export/md.ts +++ b/src/services/export/md.ts @@ -1,7 +1,7 @@ "use strict"; -import TurndownService = require('turndown'); -import turndownPluginGfm = require('joplin-turndown-plugin-gfm'); +import TurndownService from "turndown"; +import turndownPluginGfm from "joplin-turndown-plugin-gfm"; let instance: TurndownService | null = null; diff --git a/src/services/export/single.ts b/src/services/export/single.ts index 50ff47ca8..c1d52cdf7 100644 --- a/src/services/export/single.ts +++ b/src/services/export/single.ts @@ -1,7 +1,7 @@ "use strict"; -import mimeTypes = require('mime-types'); -import html = require('html'); +import mimeTypes from "mime-types"; +import html from "html"; import utils from "../utils.js"; import mdService from "./md.js"; import becca from "../../becca/becca.js"; diff --git a/src/services/export/zip.ts b/src/services/export/zip.ts index 05123beda..add63e81f 100644 --- a/src/services/export/zip.ts +++ b/src/services/export/zip.ts @@ -1,18 +1,18 @@ "use strict"; -import html = require('html'); +import html from "html"; import dateUtils from "../date_utils.js"; -import path = require('path'); -import mimeTypes = require('mime-types'); +import path from "path"; +import mimeTypes from "mime-types"; import mdService from "./md.js"; import packageInfo from "../../../package.json.js"; import utils from "../utils.js"; import protectedSessionService from "../protected_session.js"; -import sanitize = require('sanitize-filename'); -import fs = require('fs'); +import sanitize from "sanitize-filename"; +import fs from "fs"; import becca from "../../becca/becca.js"; const RESOURCE_DIR = require('../../services/resource_dir').RESOURCE_DIR; -import archiver = require('archiver'); +import archiver from "archiver"; import log from "../log.js"; import TaskContext from "../task_context.js"; import ValidationError from "../../errors/validation_error.js"; diff --git a/src/services/html_sanitizer.ts b/src/services/html_sanitizer.ts index 8e82edd3c..3fec30fb8 100644 --- a/src/services/html_sanitizer.ts +++ b/src/services/html_sanitizer.ts @@ -1,5 +1,5 @@ -import sanitizeHtml = require('sanitize-html'); -import sanitizeUrl = require('@braintree/sanitize-url'); +import sanitizeHtml from "sanitize-html"; +import sanitizeUrl from "@braintree/sanitize-url"; // intended mainly as protection against XSS via import // secondarily, it (partly) protects against "CSS takeover" diff --git a/src/services/image.ts b/src/services/image.ts index 7223d0af0..2cd6734ec 100644 --- a/src/services/image.ts +++ b/src/services/image.ts @@ -6,11 +6,11 @@ import protectedSessionService from "./protected_session.js"; import noteService from "./notes.js"; import optionService from "./options.js"; import sql from "./sql.js"; -import jimp = require('jimp'); -import imageType = require('image-type'); -import sanitizeFilename = require('sanitize-filename'); -import isSvg = require('is-svg'); -import isAnimated = require('is-animated'); +import jimp from "jimp"; +import imageType from "image-type"; +import sanitizeFilename from "sanitize-filename"; +import isSvg from "is-svg"; +import isAnimated from "is-animated"; import htmlSanitizer from "./html_sanitizer.js"; async function processImage(uploadBuffer: Buffer, originalName: string, shrinkImageSwitch: boolean) { diff --git a/src/services/import/enex.ts b/src/services/import/enex.ts index 0c1228aae..c172284ac 100644 --- a/src/services/import/enex.ts +++ b/src/services/import/enex.ts @@ -1,5 +1,5 @@ -import sax = require('sax'); -import stream = require('stream'); +import sax from "sax"; +import stream from "stream"; import { Throttle } from 'stream-throttle'; import log from "../log.js"; import utils from "../utils.js"; diff --git a/src/services/import/markdown.ts b/src/services/import/markdown.ts index 97c540be4..023302915 100644 --- a/src/services/import/markdown.ts +++ b/src/services/import/markdown.ts @@ -1,6 +1,6 @@ "use strict"; -import marked = require('marked'); +import marked from "marked"; import htmlSanitizer from "../html_sanitizer.js"; import importUtils from "./utils.js"; diff --git a/src/services/import/mime.ts b/src/services/import/mime.ts index dd4c96244..e01769381 100644 --- a/src/services/import/mime.ts +++ b/src/services/import/mime.ts @@ -1,7 +1,7 @@ "use strict"; -import mimeTypes = require('mime-types'); -import path = require('path'); +import mimeTypes from "mime-types"; +import path from "path"; import { TaskData } from '../task_context_interface'; const CODE_MIME_TYPES: Record = { diff --git a/src/services/import/opml.ts b/src/services/import/opml.ts index 316290dbf..da126564d 100644 --- a/src/services/import/opml.ts +++ b/src/services/import/opml.ts @@ -1,7 +1,7 @@ "use strict"; import noteService from "../../services/notes.js"; -import xml2js = require('xml2js'); +import xml2js from "xml2js"; import protectedSessionService from "../protected_session.js"; import htmlSanitizer from "../html_sanitizer.js"; import TaskContext from "../task_context.js"; diff --git a/src/services/import/zip.ts b/src/services/import/zip.ts index 0f274271c..39fc61024 100644 --- a/src/services/import/zip.ts +++ b/src/services/import/zip.ts @@ -6,11 +6,11 @@ import log from "../../services/log.js"; import noteService from "../../services/notes.js"; import attributeService from "../../services/attributes.js"; import BBranch from "../../becca/entities/bbranch.js"; -import path = require('path'); +import path from "path"; import protectedSessionService from "../protected_session.js"; import mimeService from "./mime.js"; import treeService from "../tree.js"; -import yauzl = require('yauzl'); +import yauzl from "yauzl"; import htmlSanitizer from "../html_sanitizer.js"; import becca from "../../becca/becca.js"; import BAttachment from "../../becca/entities/battachment.js"; diff --git a/src/services/log.ts b/src/services/log.ts index f352dc175..fbae6668a 100644 --- a/src/services/log.ts +++ b/src/services/log.ts @@ -1,7 +1,7 @@ "use strict"; import { Request, Response } from "express"; -import fs = require('fs'); +import fs from "fs"; import dataDir from "./data_dir.js"; import cls from "./cls.js"; diff --git a/src/services/migration.ts b/src/services/migration.ts index 37948953c..f1912a386 100644 --- a/src/services/migration.ts +++ b/src/services/migration.ts @@ -1,6 +1,6 @@ import backupService from "./backup.js"; import sql from "./sql.js"; -import fs = require('fs-extra'); +import fs from "fs-extra"; import log from "./log.js"; import utils from "./utils.js"; import resourceDir from "./resource_dir.js"; diff --git a/src/services/notes.ts b/src/services/notes.ts index 60de35b42..2997ac7ad 100644 --- a/src/services/notes.ts +++ b/src/services/notes.ts @@ -9,20 +9,20 @@ import log from "../services/log.js"; import utils from "../services/utils.js"; import revisionService from "./revisions.js"; import request from "./request.js"; -import path = require('path'); -import url = require('url'); +import path from "path"; +import url from "url"; import becca from "../becca/becca.js"; import BBranch from "../becca/entities/bbranch.js"; import BNote from "../becca/entities/bnote.js"; import BAttribute from "../becca/entities/battribute.js"; import BAttachment from "../becca/entities/battachment.js"; -import dayjs = require('dayjs'); +import dayjs from "dayjs"; import htmlSanitizer from "./html_sanitizer.js"; import ValidationError from "../errors/validation_error.js"; import noteTypesService from "./note_types.js"; -import fs = require('fs'); +import fs from "fs"; import ws from "./ws.js"; -import html2plaintext = require('html2plaintext'); +import html2plaintext from "html2plaintext"; import { AttachmentRow, AttributeRow, BranchRow, NoteRow, NoteType } from '../becca/entities/rows'; import TaskContext from "./task_context.js"; import { NoteParams } from './note-interface'; diff --git a/src/services/request.ts b/src/services/request.ts index 995ed97bb..a98c82a93 100644 --- a/src/services/request.ts +++ b/src/services/request.ts @@ -2,7 +2,7 @@ import utils from "./utils.js"; import log from "./log.js"; -import url = require('url'); +import url from "url"; import syncOptions from "./sync_options.js"; import { ExecOpts } from './request_interface'; diff --git a/src/services/resource_dir.ts b/src/services/resource_dir.ts index edb805264..8c057174a 100644 --- a/src/services/resource_dir.ts +++ b/src/services/resource_dir.ts @@ -1,6 +1,6 @@ import log from "./log.js"; -import path = require('path'); -import fs = require('fs'); +import path from "path"; +import fs from "fs"; const RESOURCE_DIR = path.resolve(__dirname, "../.."); diff --git a/src/services/search/expressions/note_content_fulltext.ts b/src/services/search/expressions/note_content_fulltext.ts index 3533efdeb..1de51ce70 100644 --- a/src/services/search/expressions/note_content_fulltext.ts +++ b/src/services/search/expressions/note_content_fulltext.ts @@ -8,7 +8,7 @@ import NoteSet from "../note_set.js"; import log from "../../log.js"; import becca from "../../../becca/becca.js"; import protectedSessionService from "../../protected_session.js"; -import striptags = require('striptags'); +import striptags from "striptags"; import utils from "../../utils.js"; import sql from "../../sql.js"; diff --git a/src/services/search/services/parse.ts b/src/services/search/services/parse.ts index 389e018d7..9f94c2e0d 100644 --- a/src/services/search/services/parse.ts +++ b/src/services/search/services/parse.ts @@ -1,6 +1,6 @@ "use strict"; -import dayjs = require('dayjs'); +import dayjs from "dayjs"; import AndExp from "../expressions/and.js"; import OrExp from "../expressions/or.js"; import NotExp from "../expressions/not.js"; diff --git a/src/services/search/services/search.ts b/src/services/search/services/search.ts index 6ce2caa8d..5d703c3b5 100644 --- a/src/services/search/services/search.ts +++ b/src/services/search/services/search.ts @@ -1,6 +1,6 @@ "use strict"; -import normalizeString = require('normalize-strings'); +import normalizeString from "normalize-strings"; import lex from "./lex.js"; import handleParens from "./handle_parens.js"; import parse from "./parse.js"; diff --git a/src/services/session_secret.ts b/src/services/session_secret.ts index 835aac38f..b09538270 100644 --- a/src/services/session_secret.ts +++ b/src/services/session_secret.ts @@ -1,7 +1,7 @@ "use strict"; -import fs = require('fs'); -import crypto = require('crypto'); +import fs from "fs"; +import crypto from "crypto"; import dataDir from "./data_dir.js"; import log from "./log.js"; diff --git a/src/services/sql.ts b/src/services/sql.ts index 84ea52018..b46986442 100644 --- a/src/services/sql.ts +++ b/src/services/sql.ts @@ -8,8 +8,8 @@ import log from "./log.js"; import type { Statement, Database as DatabaseType, RunResult } from "better-sqlite3"; import dataDir from "./data_dir.js"; import cls from "./cls.js"; -import fs = require('fs-extra'); -import Database = require('better-sqlite3'); +import fs from "fs-extra"; +import Database from "better-sqlite3"; const dbConnection: DatabaseType = new Database(dataDir.DOCUMENT_PATH); dbConnection.pragma('journal_mode = WAL'); diff --git a/src/services/sql_init.ts b/src/services/sql_init.ts index ad4777105..a31f7e709 100644 --- a/src/services/sql_init.ts +++ b/src/services/sql_init.ts @@ -1,5 +1,5 @@ import log from "./log.js"; -import fs = require('fs'); +import fs from "fs"; import resourceDir from "./resource_dir.js"; import sql from "./sql.js"; import utils from "./utils.js"; diff --git a/src/services/tray.ts b/src/services/tray.ts index 5939da76d..dc3f04d4b 100644 --- a/src/services/tray.ts +++ b/src/services/tray.ts @@ -1,5 +1,5 @@ import { Menu, Tray } from 'electron'; -import path = require('path'); +import path from "path"; import windowService from "./window.js"; import optionService from "./options.js"; diff --git a/src/services/utils.ts b/src/services/utils.ts index b3d549467..dd2d9cd6a 100644 --- a/src/services/utils.ts +++ b/src/services/utils.ts @@ -1,12 +1,12 @@ "use strict"; -import crypto = require('crypto'); +import crypto from "crypto"; const randtoken = require('rand-token').generator({source: 'crypto'}); -import unescape = require('unescape'); -import escape = require('escape-html'); -import sanitize = require('sanitize-filename'); -import mimeTypes = require('mime-types'); -import path = require('path'); +import unescape from "unescape"; +import escape from "escape-html"; +import sanitize from "sanitize-filename"; +import mimeTypes from "mime-types"; +import path from "path"; function newEntityId() { return randomString(12); diff --git a/src/services/window.ts b/src/services/window.ts index 3a4aece7d..3c5a4c53f 100644 --- a/src/services/window.ts +++ b/src/services/window.ts @@ -1,5 +1,5 @@ -import path = require('path'); -import url = require('url'); +import path from "path"; +import url from "url"; import port from "./port.js"; import optionService from "./options.js"; import env from "./env.js"; @@ -7,7 +7,7 @@ import log from "./log.js"; import sqlInit from "./sql_init.js"; import cls from "./cls.js"; import keyboardActionsService from "./keyboard_actions.js"; -import remoteMain = require('@electron/remote/main') +import remoteMain from "@electron/remote/main" import { App, BrowserWindow, WebContents, ipcMain } from 'electron'; // Prevent the window being garbage collected diff --git a/src/services/ws.ts b/src/services/ws.ts index 5f448e97c..d2f9ff1d3 100644 --- a/src/services/ws.ts +++ b/src/services/ws.ts @@ -1,4 +1,4 @@ -import WebSocket = require('ws'); +import WebSocket from "ws"; import utils from "./utils.js"; import log from "./log.js"; import sql from "./sql.js"; diff --git a/src/share/content_renderer.ts b/src/share/content_renderer.ts index 1d64dcd0c..235008129 100644 --- a/src/share/content_renderer.ts +++ b/src/share/content_renderer.ts @@ -2,7 +2,7 @@ import { JSDOM } from "jsdom"; import shaca from "./shaca/shaca.js"; import assetPath from "../services/asset_path.js"; import shareRoot from "./share_root.js"; -import escapeHtml = require('escape-html'); +import escapeHtml from "escape-html"; import SNote from "./shaca/entities/snote.js"; interface Result { diff --git a/src/share/routes.ts b/src/share/routes.ts index 34af79feb..754db3010 100644 --- a/src/share/routes.ts +++ b/src/share/routes.ts @@ -1,5 +1,5 @@ -import safeCompare = require('safe-compare'); -import ejs = require('ejs'); +import safeCompare from "safe-compare"; +import ejs from "ejs"; import type { Request, Response, Router } from "express"; diff --git a/src/share/shaca/entities/snote.ts b/src/share/shaca/entities/snote.ts index 02eea8636..269744101 100644 --- a/src/share/shaca/entities/snote.ts +++ b/src/share/shaca/entities/snote.ts @@ -3,7 +3,7 @@ import sql from "../../sql.js"; import utils from "../../../services/utils.js"; import AbstractShacaEntity from "./abstract_shaca_entity.js"; -import escape = require('escape-html'); +import escape from "escape-html"; import { Blob } from '../../../services/blob-interface'; import SAttachment from "./sattachment.js"; import SAttribute from "./sattribute.js"; diff --git a/src/share/sql.ts b/src/share/sql.ts index 9990039c2..106d251ba 100644 --- a/src/share/sql.ts +++ b/src/share/sql.ts @@ -1,6 +1,6 @@ "use strict"; -import Database = require('better-sqlite3'); +import Database from "better-sqlite3"; import dataDir from "../services/data_dir.js"; const dbConnection = new Database(dataDir.DOCUMENT_PATH, { readonly: true }); diff --git a/src/types.d.ts b/src/types.d.ts index 9dbab6745..f6bb7ed30 100644 --- a/src/types.d.ts +++ b/src/types.d.ts @@ -19,7 +19,7 @@ declare module 'normalize-strings' { } declare module 'joplin-turndown-plugin-gfm' { - import TurndownService = require('turndown'); + import TurndownService from "turndown"; namespace gfm { function gfm(service: TurndownService): void; } diff --git a/src/www.ts b/src/www.ts index 0e1bae6e9..c1ec2f0f3 100644 --- a/src/www.ts +++ b/src/www.ts @@ -20,9 +20,9 @@ process.on('SIGTERM', exit); import app from "./app.js"; import sessionParser from "./routes/session_parser.js"; -import fs = require('fs'); -import http = require('http'); -import https = require('https'); +import fs from "fs"; +import http from "http"; +import https from "https"; import config from "./services/config.js"; import log from "./services/log.js"; import appInfo from "./services/app_info.js"; @@ -30,7 +30,7 @@ import ws from "./services/ws.js"; import utils from "./services/utils.js"; import port from "./services/port.js"; import host from "./services/host.js"; -import semver = require('semver'); +import semver from "semver"; if (!semver.satisfies(process.version, ">=10.5.0")) { console.error("Trilium only supports node.js 10.5 and later"); diff --git a/webpack.config.ts b/webpack.config.ts index 56146fbd2..1c67bbe84 100644 --- a/webpack.config.ts +++ b/webpack.config.ts @@ -1,4 +1,4 @@ -import path = require('path'); +import path from "path"; import assetPath from "./src/services/asset_path.js"; module.exports = { From 55eecb0f618a2fdab7d12546c7342090bcb951ed Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Thu, 18 Jul 2024 21:42:44 +0300 Subject: [PATCH 06/25] server-esm: Change export object to export default object --- src/becca/entity_constructor.ts | 2 +- src/becca/similarity.ts | 2 +- src/etapi/app_info.ts | 2 +- src/etapi/attachments.ts | 2 +- src/etapi/attributes.ts | 2 +- src/etapi/auth.ts | 2 +- src/etapi/backup.ts | 2 +- src/etapi/branches.ts | 2 +- src/etapi/notes.ts | 2 +- src/etapi/spec.ts | 2 +- src/etapi/special_notes.ts | 2 +- src/routes/api/app_info.ts | 2 +- src/routes/api/autocomplete.ts | 2 +- src/routes/api/backend_log.ts | 2 +- src/routes/api/export.ts | 2 +- src/routes/api/fonts.ts | 2 +- src/routes/api/recent_changes.ts | 2 +- src/routes/api/recent_notes.ts | 2 +- src/routes/api/relation-map.ts | 2 +- src/routes/api/similar_notes.ts | 2 +- src/routes/assets.ts | 2 +- src/routes/custom.ts | 2 +- src/routes/error_handlers.ts | 2 +- src/routes/index.ts | 2 +- src/routes/routes.ts | 2 +- src/routes/setup.ts | 2 +- src/services/app_icon.ts | 2 +- src/services/attribute_formatter.ts | 2 +- src/services/bulk_actions.ts | 2 +- src/services/env.ts | 2 +- src/services/export/md.ts | 2 +- src/services/export/opml.ts | 2 +- src/services/export/single.ts | 2 +- src/services/handlers.ts | 2 +- src/services/import/markdown.ts | 2 +- src/services/import/opml.ts | 2 +- src/services/import/utils.ts | 2 +- src/services/import/zip.ts | 2 +- src/services/one_time_timer.ts | 2 +- src/services/promoted_attribute_definition_parser.ts | 2 +- src/services/revisions.ts | 2 +- src/services/sanitize_attribute_name.ts | 2 +- src/services/sync_mutex.ts | 2 +- src/services/sync_update.ts | 2 +- src/services/tray.ts | 2 +- src/share/content_renderer.ts | 2 +- src/share/routes.ts | 2 +- src/share/share_root.ts | 2 +- 48 files changed, 48 insertions(+), 48 deletions(-) diff --git a/src/becca/entity_constructor.ts b/src/becca/entity_constructor.ts index 7c5bb8d38..eb1b052a6 100644 --- a/src/becca/entity_constructor.ts +++ b/src/becca/entity_constructor.ts @@ -32,6 +32,6 @@ function getEntityFromEntityName(entityName: keyof typeof ENTITY_NAME_TO_ENTITY) return ENTITY_NAME_TO_ENTITY[entityName]; } -export = { +export default { getEntityFromEntityName }; diff --git a/src/becca/similarity.ts b/src/becca/similarity.ts index baf4f2e78..05b91f8ed 100644 --- a/src/becca/similarity.ts +++ b/src/becca/similarity.ts @@ -461,6 +461,6 @@ function setImmediatePromise() { }); } -export = { +export default { findSimilarNotes }; diff --git a/src/etapi/app_info.ts b/src/etapi/app_info.ts index 325725871..53cb50ee4 100644 --- a/src/etapi/app_info.ts +++ b/src/etapi/app_info.ts @@ -8,6 +8,6 @@ function register(router: Router) { }); } -export = { +export default { register }; diff --git a/src/etapi/attachments.ts b/src/etapi/attachments.ts index bb92f7375..280672b01 100644 --- a/src/etapi/attachments.ts +++ b/src/etapi/attachments.ts @@ -104,6 +104,6 @@ function register(router: Router) { }); } -export = { +export default { register }; diff --git a/src/etapi/attributes.ts b/src/etapi/attributes.ts index b9eaa2ed5..9ca4918dd 100644 --- a/src/etapi/attributes.ts +++ b/src/etapi/attributes.ts @@ -81,6 +81,6 @@ function register(router: Router) { }); } -export = { +export default { register }; diff --git a/src/etapi/auth.ts b/src/etapi/auth.ts index dafb8af3e..4ca2fb45b 100644 --- a/src/etapi/auth.ts +++ b/src/etapi/auth.ts @@ -39,6 +39,6 @@ function register(router: Router, loginMiddleware: RequestHandler[]) { }); } -export = { +export default { register } diff --git a/src/etapi/backup.ts b/src/etapi/backup.ts index e8ed2a0e2..f1b80630d 100644 --- a/src/etapi/backup.ts +++ b/src/etapi/backup.ts @@ -11,6 +11,6 @@ function register(router: Router) { }); } -export = { +export default { register }; diff --git a/src/etapi/branches.ts b/src/etapi/branches.ts index 6b4a0cdc3..66dea473f 100644 --- a/src/etapi/branches.ts +++ b/src/etapi/branches.ts @@ -84,6 +84,6 @@ function register(router: Router) { }); } -export = { +export default { register }; diff --git a/src/etapi/notes.ts b/src/etapi/notes.ts index 30007f993..8bb644ab1 100644 --- a/src/etapi/notes.ts +++ b/src/etapi/notes.ts @@ -267,6 +267,6 @@ function parseInteger(obj: any, name: string) { return integer; } -export = { +export default { register }; diff --git a/src/etapi/spec.ts b/src/etapi/spec.ts index e9fdca960..a5cad4c2a 100644 --- a/src/etapi/spec.ts +++ b/src/etapi/spec.ts @@ -17,6 +17,6 @@ function register(router: Router) { }); } -export = { +export default { register }; diff --git a/src/etapi/special_notes.ts b/src/etapi/special_notes.ts index e3dd87c34..1df65c638 100644 --- a/src/etapi/special_notes.ts +++ b/src/etapi/special_notes.ts @@ -73,6 +73,6 @@ function register(router: Router) { }); } -export = { +export default { register }; diff --git a/src/routes/api/app_info.ts b/src/routes/api/app_info.ts index 988c832ac..87501e804 100644 --- a/src/routes/api/app_info.ts +++ b/src/routes/api/app_info.ts @@ -6,6 +6,6 @@ function getAppInfo() { return appInfo; } -export = { +export default { getAppInfo }; diff --git a/src/routes/api/autocomplete.ts b/src/routes/api/autocomplete.ts index 0a45b7806..f238e7f1e 100644 --- a/src/routes/api/autocomplete.ts +++ b/src/routes/api/autocomplete.ts @@ -75,6 +75,6 @@ function getRecentNotes(activeNoteId: string) { }); } -export = { +export default { getAutocomplete }; diff --git a/src/routes/api/backend_log.ts b/src/routes/api/backend_log.ts index bdd15e17b..6e3af2a8e 100644 --- a/src/routes/api/backend_log.ts +++ b/src/routes/api/backend_log.ts @@ -17,6 +17,6 @@ function getBackendLog() { } } -export = { +export default { getBackendLog }; diff --git a/src/routes/api/export.ts b/src/routes/api/export.ts index 905ef686b..f654487af 100644 --- a/src/routes/api/export.ts +++ b/src/routes/api/export.ts @@ -55,6 +55,6 @@ function exportBranch(req: Request, res: Response) { } } -export = { +export default { exportBranch }; diff --git a/src/routes/api/fonts.ts b/src/routes/api/fonts.ts index 9d3a7a157..0f0c85cb2 100644 --- a/src/routes/api/fonts.ts +++ b/src/routes/api/fonts.ts @@ -35,6 +35,6 @@ function getFontCss(req: Request, res: Response) { res.send(style); } -export = { +export default { getFontCss }; diff --git a/src/routes/api/recent_changes.ts b/src/routes/api/recent_changes.ts index 0efd95b05..7962c8026 100644 --- a/src/routes/api/recent_changes.ts +++ b/src/routes/api/recent_changes.ts @@ -111,6 +111,6 @@ function getRecentChanges(req: Request) { return recentChanges; } -export = { +export default { getRecentChanges }; diff --git a/src/routes/api/recent_notes.ts b/src/routes/api/recent_notes.ts index a5bbd03c4..72a49f520 100644 --- a/src/routes/api/recent_notes.ts +++ b/src/routes/api/recent_notes.ts @@ -19,6 +19,6 @@ function addRecentNote(req: Request) { } } -export = { +export default { addRecentNote }; diff --git a/src/routes/api/relation-map.ts b/src/routes/api/relation-map.ts index 59f8d685d..d24164899 100644 --- a/src/routes/api/relation-map.ts +++ b/src/routes/api/relation-map.ts @@ -76,6 +76,6 @@ function getRelationMap(req: Request) { return resp; } -export = { +export default { getRelationMap }; diff --git a/src/routes/api/similar_notes.ts b/src/routes/api/similar_notes.ts index 8a81a11ea..a845ee3a5 100644 --- a/src/routes/api/similar_notes.ts +++ b/src/routes/api/similar_notes.ts @@ -13,6 +13,6 @@ async function getSimilarNotes(req: Request) { return await similarityService.findSimilarNotes(noteId); } -export = { +export default { getSimilarNotes }; diff --git a/src/routes/assets.ts b/src/routes/assets.ts index 2bf03bf6d..f715864b8 100644 --- a/src/routes/assets.ts +++ b/src/routes/assets.ts @@ -71,6 +71,6 @@ function register(app: express.Application) { app.use(`/${assetPath}/node_modules/panzoom/dist/`, persistentCacheStatic(path.join(srcRoot, '..', 'node_modules/panzoom/dist/'))); } -export = { +export default { register }; diff --git a/src/routes/custom.ts b/src/routes/custom.ts index 3a0bead49..a2e2f900a 100644 --- a/src/routes/custom.ts +++ b/src/routes/custom.ts @@ -84,6 +84,6 @@ function register(router: Router) { }); } -export = { +export default { register }; diff --git a/src/routes/error_handlers.ts b/src/routes/error_handlers.ts index cd19deadb..f054a2683 100644 --- a/src/routes/error_handlers.ts +++ b/src/routes/error_handlers.ts @@ -39,6 +39,6 @@ function register(app: Application) { }); } -export = { +export default { register }; diff --git a/src/routes/index.ts b/src/routes/index.ts index 0434a6de4..d0cca224c 100644 --- a/src/routes/index.ts +++ b/src/routes/index.ts @@ -64,6 +64,6 @@ function getAppCssNoteIds() { return attributeService.getNotesWithLabel('appCss').map(note => note.noteId); } -export = { +export default { index }; diff --git a/src/routes/routes.ts b/src/routes/routes.ts index b71746b48..59dd50b22 100644 --- a/src/routes/routes.ts +++ b/src/routes/routes.ts @@ -517,6 +517,6 @@ function createUploadMiddleware() { return multer(multerOptions).single('upload'); } -export = { +export default { register }; diff --git a/src/routes/setup.ts b/src/routes/setup.ts index 974e96bc6..2d6c43e0d 100644 --- a/src/routes/setup.ts +++ b/src/routes/setup.ts @@ -38,6 +38,6 @@ function setupPage(req: Request, res: Response) { }); } -export = { +export default { setupPage }; diff --git a/src/services/app_icon.ts b/src/services/app_icon.ts index 0d2556f94..c6361687c 100644 --- a/src/services/app_icon.ts +++ b/src/services/app_icon.ts @@ -68,6 +68,6 @@ function getExePath() { return path.resolve(resourceDir.ELECTRON_APP_ROOT_DIR, 'trilium'); } -export = { +export default { installLocalAppIcon }; diff --git a/src/services/attribute_formatter.ts b/src/services/attribute_formatter.ts index a7b4b7500..cdc642878 100644 --- a/src/services/attribute_formatter.ts +++ b/src/services/attribute_formatter.ts @@ -47,6 +47,6 @@ function formatValue(val: string) { } } -export = { +export default { formatAttrForSearch }; diff --git a/src/services/bulk_actions.ts b/src/services/bulk_actions.ts index 8ece2040e..2b81c634d 100644 --- a/src/services/bulk_actions.ts +++ b/src/services/bulk_actions.ts @@ -172,6 +172,6 @@ function executeActions(note: BNote, searchResultNoteIds: string[] | Set } } -export = { +export default { executeActions }; diff --git a/src/services/env.ts b/src/services/env.ts index 23c94ee0f..28f39fea6 100644 --- a/src/services/env.ts +++ b/src/services/env.ts @@ -2,6 +2,6 @@ function isDev() { return !!(process.env.TRILIUM_ENV && process.env.TRILIUM_ENV === 'dev'); } -export = { +export default { isDev }; \ No newline at end of file diff --git a/src/services/export/md.ts b/src/services/export/md.ts index c13824b09..84af6f56f 100644 --- a/src/services/export/md.ts +++ b/src/services/export/md.ts @@ -14,6 +14,6 @@ function toMarkdown(content: string) { return instance.turndown(content); } -export = { +export default { toMarkdown }; diff --git a/src/services/export/opml.ts b/src/services/export/opml.ts index 1f6e6c4d3..c67e1378c 100644 --- a/src/services/export/opml.ts +++ b/src/services/export/opml.ts @@ -98,6 +98,6 @@ function escapeXmlAttribute(text: string) { .replace(/'/g, '''); } -export = { +export default { exportToOpml }; diff --git a/src/services/export/single.ts b/src/services/export/single.ts index c1d52cdf7..5e68de203 100644 --- a/src/services/export/single.ts +++ b/src/services/export/single.ts @@ -125,6 +125,6 @@ function inlineAttachments(content: string) { return content; } -export = { +export default { exportSingleNote }; diff --git a/src/services/handlers.ts b/src/services/handlers.ts index d5fd5afa2..dca0fba8e 100644 --- a/src/services/handlers.ts +++ b/src/services/handlers.ts @@ -249,6 +249,6 @@ eventService.subscribe(eventService.ENTITY_DELETED, ({ entityName, entity }) => } }); -export = { +export default { runAttachedRelations }; diff --git a/src/services/import/markdown.ts b/src/services/import/markdown.ts index 023302915..b5a022d1e 100644 --- a/src/services/import/markdown.ts +++ b/src/services/import/markdown.ts @@ -12,6 +12,6 @@ function renderToHtml(content: string, title: string) { return htmlSanitizer.sanitize(h1Handled); } -export = { +export default { renderToHtml }; diff --git a/src/services/import/opml.ts b/src/services/import/opml.ts index da126564d..32a633746 100644 --- a/src/services/import/opml.ts +++ b/src/services/import/opml.ts @@ -108,6 +108,6 @@ function toHtml(text: string) { return `

${text.replace(/(?:\r\n|\r|\n)/g, '

')}

`; } -export = { +export default { importOpml }; diff --git a/src/services/import/utils.ts b/src/services/import/utils.ts index 8b06f2167..b85700230 100644 --- a/src/services/import/utils.ts +++ b/src/services/import/utils.ts @@ -11,6 +11,6 @@ function handleH1(content: string, title: string) { return content; } -export = { +export default { handleH1 }; diff --git a/src/services/import/zip.ts b/src/services/import/zip.ts index 39fc61024..6855760af 100644 --- a/src/services/import/zip.ts +++ b/src/services/import/zip.ts @@ -656,6 +656,6 @@ function resolveNoteType(type: string | undefined): NoteType { } } -export = { +export default { importZip }; diff --git a/src/services/one_time_timer.ts b/src/services/one_time_timer.ts index 033a8b3c1..f2f514568 100644 --- a/src/services/one_time_timer.ts +++ b/src/services/one_time_timer.ts @@ -20,6 +20,6 @@ function scheduleExecution(name: string, milliseconds: number, cb: () => void) { }, milliseconds); } -export = { +export default { scheduleExecution }; diff --git a/src/services/promoted_attribute_definition_parser.ts b/src/services/promoted_attribute_definition_parser.ts index 228c96093..6e9ca3d13 100644 --- a/src/services/promoted_attribute_definition_parser.ts +++ b/src/services/promoted_attribute_definition_parser.ts @@ -37,6 +37,6 @@ function parse(value: string): DefinitionObject { return defObj; } -export = { +export default { parse }; diff --git a/src/services/revisions.ts b/src/services/revisions.ts index 2c497cc85..cfe8f04c6 100644 --- a/src/services/revisions.ts +++ b/src/services/revisions.ts @@ -44,6 +44,6 @@ function protectRevisions(note: BNote) { } } -export = { +export default { protectRevisions }; diff --git a/src/services/sanitize_attribute_name.ts b/src/services/sanitize_attribute_name.ts index 62b2b03b3..635588f80 100644 --- a/src/services/sanitize_attribute_name.ts +++ b/src/services/sanitize_attribute_name.ts @@ -13,6 +13,6 @@ function sanitizeAttributeName(origName: string) { } -export = { +export default { sanitizeAttributeName }; diff --git a/src/services/sync_mutex.ts b/src/services/sync_mutex.ts index 9ad0fd08c..60bb1ba4f 100644 --- a/src/services/sync_mutex.ts +++ b/src/services/sync_mutex.ts @@ -17,6 +17,6 @@ async function doExclusively(func: () => T) { } } -export = { +export default { doExclusively }; diff --git a/src/services/sync_update.ts b/src/services/sync_update.ts index 4d6728d93..030f25167 100644 --- a/src/services/sync_update.ts +++ b/src/services/sync_update.ts @@ -185,6 +185,6 @@ function logUpdateContext(updateContext: UpdateContext) { log.info(message.substr(1, message.length - 2)); } -export = { +export default { updateEntities }; diff --git a/src/services/tray.ts b/src/services/tray.ts index dc3f04d4b..0b6211ced 100644 --- a/src/services/tray.ts +++ b/src/services/tray.ts @@ -106,6 +106,6 @@ function createTray() { registerVisibilityListener(); } -export = { +export default { createTray } diff --git a/src/share/content_renderer.ts b/src/share/content_renderer.ts index 235008129..70cc5ceff 100644 --- a/src/share/content_renderer.ts +++ b/src/share/content_renderer.ts @@ -170,6 +170,6 @@ function renderFile(note: SNote, result: Result) { } } -export = { +export default { getContent }; diff --git a/src/share/routes.ts b/src/share/routes.ts index 754db3010..4c892e53c 100644 --- a/src/share/routes.ts +++ b/src/share/routes.ts @@ -383,6 +383,6 @@ function register(router: Router) { }); } -export = { +export default { register } diff --git a/src/share/share_root.ts b/src/share/share_root.ts index a500d5ac4..453d5ae8f 100644 --- a/src/share/share_root.ts +++ b/src/share/share_root.ts @@ -1,3 +1,3 @@ -export = { +export default { SHARE_ROOT_NOTE_ID: '_share' } From 0ceae0a65e3da7a94c025fd8d19775bd40bf17aa Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Thu, 18 Jul 2024 21:47:30 +0300 Subject: [PATCH 07/25] server-esm: Change some more export object to export default object --- spec/search/becca_mocking.ts | 2 +- src/becca/becca_loader.ts | 2 +- src/becca/becca_service.ts | 2 +- src/etapi/etapi_utils.ts | 2 +- src/etapi/mappers.ts | 2 +- src/etapi/validators.ts | 2 +- src/routes/api/attachments.ts | 2 +- src/routes/api/attributes.ts | 2 +- src/routes/api/branches.ts | 2 +- src/routes/api/bulk_action.ts | 2 +- src/routes/api/clipper.ts | 2 +- src/routes/api/cloning.ts | 2 +- src/routes/api/database.ts | 2 +- src/routes/api/etapi_tokens.ts | 2 +- src/routes/api/files.ts | 2 +- src/routes/api/image.ts | 2 +- src/routes/api/import.ts | 2 +- src/routes/api/keys.ts | 2 +- src/routes/api/login.ts | 2 +- src/routes/api/note_map.ts | 2 +- src/routes/api/notes.ts | 2 +- src/routes/api/options.ts | 2 +- src/routes/api/other.ts | 2 +- src/routes/api/password.ts | 2 +- src/routes/api/revisions.ts | 2 +- src/routes/api/script.ts | 2 +- src/routes/api/search.ts | 2 +- src/routes/api/sender.ts | 2 +- src/routes/api/setup.ts | 2 +- src/routes/api/special_notes.ts | 2 +- src/routes/api/sql.ts | 2 +- src/routes/api/stats.ts | 2 +- src/routes/api/sync.ts | 2 +- src/routes/api/tree.ts | 2 +- src/routes/login.ts | 2 +- src/services/anonymization.ts | 2 +- src/services/app_info.ts | 2 +- src/services/attributes.ts | 2 +- src/services/auth.ts | 2 +- src/services/backup.ts | 2 +- src/services/blob.ts | 2 +- src/services/branches.ts | 2 +- src/services/build.ts | 2 +- src/services/cloning.ts | 2 +- src/services/cls.ts | 2 +- src/services/consistency_checks.ts | 2 +- src/services/content_hash.ts | 2 +- src/services/data_dir.ts | 2 +- src/services/date_notes.ts | 2 +- src/services/date_utils.ts | 2 +- src/services/encryption/data_encryption.ts | 2 +- src/services/encryption/my_scrypt.ts | 2 +- src/services/encryption/password.ts | 2 +- src/services/encryption/password_encryption.ts | 2 +- src/services/entity_changes.ts | 2 +- src/services/erase.ts | 2 +- src/services/etapi_tokens.ts | 2 +- src/services/events.ts | 2 +- src/services/export/zip.ts | 2 +- src/services/hidden_subtree.ts | 2 +- src/services/hoisted_note.ts | 2 +- src/services/html_sanitizer.ts | 2 +- src/services/image.ts | 2 +- src/services/import/enex.ts | 2 +- src/services/import/mime.ts | 2 +- src/services/import/single.ts | 2 +- src/services/keyboard_actions.ts | 2 +- src/services/log.ts | 2 +- src/services/migration.ts | 2 +- src/services/note_types.ts | 2 +- src/services/notes.ts | 2 +- src/services/options.ts | 2 +- src/services/options_init.ts | 2 +- src/services/protected_session.ts | 2 +- src/services/request.ts | 2 +- src/services/resource_dir.ts | 2 +- src/services/script.ts | 2 +- src/services/search/services/search.ts | 2 +- src/services/setup.ts | 2 +- src/services/special_notes.ts | 2 +- src/services/sql.ts | 2 +- src/services/sql_init.ts | 2 +- src/services/sync.ts | 2 +- src/services/sync_options.ts | 2 +- src/services/tree.ts | 2 +- src/services/utils.ts | 2 +- src/services/window.ts | 2 +- src/services/ws.ts | 2 +- src/share/shaca/shaca_loader.ts | 2 +- src/share/sql.ts | 2 +- 90 files changed, 90 insertions(+), 90 deletions(-) diff --git a/spec/search/becca_mocking.ts b/spec/search/becca_mocking.ts index 487a6b668..c31631ce5 100644 --- a/spec/search/becca_mocking.ts +++ b/spec/search/becca_mocking.ts @@ -80,7 +80,7 @@ function note(title: string, extraParams = {}) { return new NoteBuilder(note); } -export = { +export default { NoteBuilder, findNoteByTitle, note, diff --git a/src/becca/becca_loader.ts b/src/becca/becca_loader.ts index 24eb1ca21..dd751bf9a 100644 --- a/src/becca/becca_loader.ts +++ b/src/becca/becca_loader.ts @@ -286,7 +286,7 @@ eventService.subscribeBeccaLoader(eventService.ENTER_PROTECTED_SESSION, () => { eventService.subscribeBeccaLoader(eventService.LEAVE_PROTECTED_SESSION, load); -export = { +export default { load, reload, beccaLoaded diff --git a/src/becca/becca_service.ts b/src/becca/becca_service.ts index 0643f87ea..46d41fdbf 100644 --- a/src/becca/becca_service.ts +++ b/src/becca/becca_service.ts @@ -82,7 +82,7 @@ function getNoteTitleForPath(notePathArray: string[]) { return titles.join(' / '); } -export = { +export default { getNoteTitle, getNoteTitleForPath, isNotePathArchived diff --git a/src/etapi/etapi_utils.ts b/src/etapi/etapi_utils.ts index 38681c093..f869fd7db 100644 --- a/src/etapi/etapi_utils.ts +++ b/src/etapi/etapi_utils.ts @@ -146,7 +146,7 @@ function validateAndPatch(target: any, source: any, allowedProperties: Validator } } -export = { +export default { EtapiError, sendError, route, diff --git a/src/etapi/mappers.ts b/src/etapi/mappers.ts index 80bd65bc2..1caf21cf4 100644 --- a/src/etapi/mappers.ts +++ b/src/etapi/mappers.ts @@ -64,7 +64,7 @@ function mapAttachmentToPojo(attachment: BAttachment) { }; } -export = { +export default { mapNoteToPojo, mapBranchToPojo, mapAttributeToPojo, diff --git a/src/etapi/validators.ts b/src/etapi/validators.ts index f45c36bc9..81ab051d0 100644 --- a/src/etapi/validators.ts +++ b/src/etapi/validators.ts @@ -107,7 +107,7 @@ function isValidEntityId(obj: unknown) { } } -export = { +export default { mandatory, notNull, isString, diff --git a/src/routes/api/attachments.ts b/src/routes/api/attachments.ts index 5f7586ded..d56bd1bbb 100644 --- a/src/routes/api/attachments.ts +++ b/src/routes/api/attachments.ts @@ -97,7 +97,7 @@ function convertAttachmentToNote(req: Request) { return attachment.convertToNote(); } -export = { +export default { getAttachmentBlob, getAttachments, getAttachment, diff --git a/src/routes/api/attributes.ts b/src/routes/api/attributes.ts index 593417bf9..b31afecf4 100644 --- a/src/routes/api/attributes.ts +++ b/src/routes/api/attributes.ts @@ -238,7 +238,7 @@ function deleteRelation(req: Request) { } } -export = { +export default { updateNoteAttributes, updateNoteAttribute, setNoteAttribute, diff --git a/src/routes/api/branches.ts b/src/routes/api/branches.ts index 67b50211e..11141fbe8 100644 --- a/src/routes/api/branches.ts +++ b/src/routes/api/branches.ts @@ -224,7 +224,7 @@ function setPrefix(req: Request) { branch.save(); } -export = { +export default { moveBranchToParent, moveBranchBeforeNote, moveBranchAfterNote, diff --git a/src/routes/api/bulk_action.ts b/src/routes/api/bulk_action.ts index adbc15d32..799d05952 100644 --- a/src/routes/api/bulk_action.ts +++ b/src/routes/api/bulk_action.ts @@ -43,7 +43,7 @@ function getAffectedNoteIds(noteIds: string[], includeDescendants: boolean) { return affectedNoteIds; } -export = { +export default { execute, getAffectedNoteCount }; diff --git a/src/routes/api/clipper.ts b/src/routes/api/clipper.ts index f81a8c2ce..ae181742c 100644 --- a/src/routes/api/clipper.ts +++ b/src/routes/api/clipper.ts @@ -229,7 +229,7 @@ function findNotesByUrl(req: Request){ } } -export = { +export default { createNote, addClipping, openNote, diff --git a/src/routes/api/cloning.ts b/src/routes/api/cloning.ts index e6f9c16cc..73de813cb 100644 --- a/src/routes/api/cloning.ts +++ b/src/routes/api/cloning.ts @@ -29,7 +29,7 @@ function toggleNoteInParent(req: Request) { return cloningService.toggleNoteInParent(present === 'true', noteId, parentNoteId); } -export = { +export default { cloneNoteToBranch, cloneNoteToParentNote, cloneNoteAfter, diff --git a/src/routes/api/database.ts b/src/routes/api/database.ts index 660afab47..8be084d12 100644 --- a/src/routes/api/database.ts +++ b/src/routes/api/database.ts @@ -49,7 +49,7 @@ function checkIntegrity() { }; } -export = { +export default { getExistingBackups, backupDatabase, vacuumDatabase, diff --git a/src/routes/api/etapi_tokens.ts b/src/routes/api/etapi_tokens.ts index 28f74a28a..82cb470e8 100644 --- a/src/routes/api/etapi_tokens.ts +++ b/src/routes/api/etapi_tokens.ts @@ -21,7 +21,7 @@ function deleteToken(req: Request) { etapiTokenService.deleteToken(req.params.etapiTokenId); } -export = { +export default { getTokens, createToken, patchToken, diff --git a/src/routes/api/files.ts b/src/routes/api/files.ts index 72231567e..4adc28f42 100644 --- a/src/routes/api/files.ts +++ b/src/routes/api/files.ts @@ -245,7 +245,7 @@ function uploadModifiedFileToAttachment(req: Request) { attachment.setContent(fileContent); } -export = { +export default { updateFile, updateAttachment, openFile, diff --git a/src/routes/api/image.ts b/src/routes/api/image.ts index 6af237982..8484eb673 100644 --- a/src/routes/api/image.ts +++ b/src/routes/api/image.ts @@ -114,7 +114,7 @@ function updateImage(req: AppRequest) { return { uploaded: true }; } -export = { +export default { returnImageFromNote, returnImageFromRevision, returnAttachedImage, diff --git a/src/routes/api/import.ts b/src/routes/api/import.ts index ee9f7d7ae..07bd2169e 100644 --- a/src/routes/api/import.ts +++ b/src/routes/api/import.ts @@ -136,7 +136,7 @@ async function importAttachmentsToNote(req: AppRequest) { } } -export = { +export default { importNotesToBranch, importAttachmentsToNote }; diff --git a/src/routes/api/keys.ts b/src/routes/api/keys.ts index 09102c3ac..cd49c5c47 100644 --- a/src/routes/api/keys.ts +++ b/src/routes/api/keys.ts @@ -14,7 +14,7 @@ function getShortcutsForNotes() { return labels.filter(attr => becca.getNote(attr.noteId)?.type !== 'launcher'); } -export = { +export default { getKeyboardActions, getShortcutsForNotes }; diff --git a/src/routes/api/login.ts b/src/routes/api/login.ts index 8e4018b97..0a3879380 100644 --- a/src/routes/api/login.ts +++ b/src/routes/api/login.ts @@ -110,7 +110,7 @@ function token(req: Request) { return { token: authToken }; } -export = { +export default { loginSync, loginToProtectedSession, logoutFromProtectedSession, diff --git a/src/routes/api/note_map.ts b/src/routes/api/note_map.ts index 557eabc7d..e86303f36 100644 --- a/src/routes/api/note_map.ts +++ b/src/routes/api/note_map.ts @@ -385,7 +385,7 @@ function getBacklinks(req: Request) { }); } -export = { +export default { getLinkMap, getTreeMap, getBacklinkCount, diff --git a/src/routes/api/notes.ts b/src/routes/api/notes.ts index a4081606b..0496886a2 100644 --- a/src/routes/api/notes.ts +++ b/src/routes/api/notes.ts @@ -250,7 +250,7 @@ function convertNoteToAttachment(req: Request) { }; } -export = { +export default { getNote, getNoteBlob, getNoteMetadata, diff --git a/src/routes/api/options.ts b/src/routes/api/options.ts index 2d96fc87a..2113746ba 100644 --- a/src/routes/api/options.ts +++ b/src/routes/api/options.ts @@ -136,7 +136,7 @@ function isAllowed(name: string) { || name.startsWith("hideArchivedNotes"); } -export = { +export default { getOptions, updateOption, updateOptions, diff --git a/src/routes/api/other.ts b/src/routes/api/other.ts index 71a44bf78..c09b5d62d 100644 --- a/src/routes/api/other.ts +++ b/src/routes/api/other.ts @@ -35,7 +35,7 @@ function renderMarkdown(req: Request) { }; } -export = { +export default { getIconUsage, renderMarkdown }; diff --git a/src/routes/api/password.ts b/src/routes/api/password.ts index 547031936..03721ea3e 100644 --- a/src/routes/api/password.ts +++ b/src/routes/api/password.ts @@ -22,7 +22,7 @@ function resetPassword(req: Request) { return passwordService.resetPassword(); } -export = { +export default { changePassword, resetPassword }; diff --git a/src/routes/api/revisions.ts b/src/routes/api/revisions.ts index af82b7121..b64ce1bdc 100644 --- a/src/routes/api/revisions.ts +++ b/src/routes/api/revisions.ts @@ -200,7 +200,7 @@ function getNotePathData(note: BNote): NotePath | undefined { } } -export = { +export default { getRevisionBlob, getRevisions, getRevision, diff --git a/src/routes/api/script.ts b/src/routes/api/script.ts index ea0c25d2d..92aa9fc24 100644 --- a/src/routes/api/script.ts +++ b/src/routes/api/script.ts @@ -131,7 +131,7 @@ function getBundle(req: Request) { return scriptService.getScriptBundleForFrontend(note, script, params); } -export = { +export default { exec, run, getStartupBundles, diff --git a/src/routes/api/search.ts b/src/routes/api/search.ts index 7e1fcab5b..0c2966dad 100644 --- a/src/routes/api/search.ts +++ b/src/routes/api/search.ts @@ -126,7 +126,7 @@ function searchTemplates() { }).map(note => note.noteId); } -export = { +export default { searchFromNote, searchAndExecute, getRelatedNotes, diff --git a/src/routes/api/sender.ts b/src/routes/api/sender.ts index 96cd1fcb4..fd460a0d2 100644 --- a/src/routes/api/sender.ts +++ b/src/routes/api/sender.ts @@ -84,7 +84,7 @@ function saveNote(req: Request) { }; } -export = { +export default { uploadImage, saveNote }; diff --git a/src/routes/api/setup.ts b/src/routes/api/setup.ts index 31a98efa4..a4a473a3e 100644 --- a/src/routes/api/setup.ts +++ b/src/routes/api/setup.ts @@ -51,7 +51,7 @@ function getSyncSeed() { }; } -export = { +export default { getStatus, setupNewDocument, setupSyncFromServer, diff --git a/src/routes/api/special_notes.ts b/src/routes/api/special_notes.ts index 89fd420c3..5d9dc2514 100644 --- a/src/routes/api/special_notes.ts +++ b/src/routes/api/special_notes.ts @@ -82,7 +82,7 @@ function createOrUpdateScriptLauncherFromApi(req: Request) { return specialNotesService.createOrUpdateScriptLauncherFromApi(req.body); } -export = { +export default { getInboxNote, getDayNote, getWeekNote, diff --git a/src/routes/api/sql.ts b/src/routes/api/sql.ts index eecffe6e3..9e2f6b09a 100644 --- a/src/routes/api/sql.ts +++ b/src/routes/api/sql.ts @@ -66,7 +66,7 @@ function execute(req: Request) { } } -export = { +export default { getSchema, execute }; diff --git a/src/routes/api/stats.ts b/src/routes/api/stats.ts index 6740ed535..aa948930e 100644 --- a/src/routes/api/stats.ts +++ b/src/routes/api/stats.ts @@ -45,7 +45,7 @@ function getSubtreeSize(req: Request) { }; } -export = { +export default { getNoteSize, getSubtreeSize }; diff --git a/src/routes/api/sync.ts b/src/routes/api/sync.ts index 1c1db7c2e..183c79878 100644 --- a/src/routes/api/sync.ts +++ b/src/routes/api/sync.ts @@ -209,7 +209,7 @@ function checkEntityChanges() { require('../../services/consistency_checks').runEntityChangesChecks(); } -export = { +export default { testSync, checkSync, syncNow, diff --git a/src/routes/api/tree.ts b/src/routes/api/tree.ts index 7711c25ff..f519ea4f8 100644 --- a/src/routes/api/tree.ts +++ b/src/routes/api/tree.ts @@ -160,7 +160,7 @@ function load(req: Request) { return getNotesAndBranchesAndAttributes(req.body.noteIds); } -export = { +export default { getTree, load }; diff --git a/src/routes/login.ts b/src/routes/login.ts index 9589113f0..48e721f70 100644 --- a/src/routes/login.ts +++ b/src/routes/login.ts @@ -102,7 +102,7 @@ function logout(req: AppRequest, res: Response) { } -export = { +export default { loginPage, setPasswordPage, setPassword, diff --git a/src/services/anonymization.ts b/src/services/anonymization.ts index e3b0b1d7b..8c34122b6 100644 --- a/src/services/anonymization.ts +++ b/src/services/anonymization.ts @@ -90,7 +90,7 @@ function getExistingAnonymizedDatabases() { })); } -export = { +export default { getFullAnonymizationScript, createAnonymizedCopy, getExistingAnonymizedDatabases diff --git a/src/services/app_info.ts b/src/services/app_info.ts index 5439df732..a6a9795ab 100644 --- a/src/services/app_info.ts +++ b/src/services/app_info.ts @@ -8,7 +8,7 @@ const APP_DB_VERSION = 228; const SYNC_VERSION = 32; const CLIPPER_PROTOCOL_VERSION = "1.0"; -export = { +export default { appVersion: packageJson.version, dbVersion: APP_DB_VERSION, nodeVersion: process.version, diff --git a/src/services/attributes.ts b/src/services/attributes.ts index d8007f411..960482c4c 100644 --- a/src/services/attributes.ts +++ b/src/services/attributes.ts @@ -110,7 +110,7 @@ function isAttributeDangerous(type: string, name: string): boolean { ); } -export = { +export default { getNotesWithLabel, getNoteWithLabel, createLabel, diff --git a/src/services/auth.ts b/src/services/auth.ts index 12912a3f3..68864a860 100644 --- a/src/services/auth.ts +++ b/src/services/auth.ts @@ -126,7 +126,7 @@ function checkCredentials(req: AppRequest, res: Response, next: NextFunction) { } } -export = { +export default { checkAuth, checkApiAuth, checkAppInitialized, diff --git a/src/services/backup.ts b/src/services/backup.ts index b56f54c34..f9cad0a02 100644 --- a/src/services/backup.ts +++ b/src/services/backup.ts @@ -75,7 +75,7 @@ if (!fs.existsSync(dataDir.BACKUP_DIR)) { fs.mkdirSync(dataDir.BACKUP_DIR, 0o700); } -export = { +export default { getExistingBackups, backupNow, regularBackup diff --git a/src/services/blob.ts b/src/services/blob.ts index 784fe3419..3226b88af 100644 --- a/src/services/blob.ts +++ b/src/services/blob.ts @@ -54,7 +54,7 @@ function calculateContentHash({blobId, content}: Blob) { return utils.hash(`${blobId}|${content.toString()}`); } -export = { +export default { getBlobPojo, processContent, calculateContentHash diff --git a/src/services/branches.ts b/src/services/branches.ts index cb77ad991..1344270ff 100644 --- a/src/services/branches.ts +++ b/src/services/branches.ts @@ -44,7 +44,7 @@ function moveBranchToBranch(branchToMove: BBranch, targetParentBranch: BBranch, return res; } -export = { +export default { moveBranchToBranch, moveBranchToNote }; diff --git a/src/services/build.ts b/src/services/build.ts index 96cb91704..33e213587 100644 --- a/src/services/build.ts +++ b/src/services/build.ts @@ -1 +1 @@ -export = { buildDate:"2024-07-14T22:32:45+03:00", buildRevision: "b811f3d399aed7e740bd8e92ef7edc7d15de7038" }; +export default { buildDate:"2024-07-14T22:32:45+03:00", buildRevision: "b811f3d399aed7e740bd8e92ef7edc7d15de7038" }; diff --git a/src/services/cloning.ts b/src/services/cloning.ts index 36c61a653..939b6bf42 100644 --- a/src/services/cloning.ts +++ b/src/services/cloning.ts @@ -175,7 +175,7 @@ function cloneNoteAfter(noteId: string, afterBranchId: string) { return { success: true, branchId: branch.branchId }; } -export = { +export default { cloneNoteToBranch, cloneNoteToParentNote, ensureNoteIsPresentInParent, diff --git a/src/services/cls.ts b/src/services/cls.ts index 83365b7e5..e40038640 100644 --- a/src/services/cls.ts +++ b/src/services/cls.ts @@ -96,7 +96,7 @@ function ignoreEntityChangeIds() { namespace.set('ignoreEntityChangeIds', true); } -export = { +export default { init, wrap, get, diff --git a/src/services/consistency_checks.ts b/src/services/consistency_checks.ts index e6fdddb14..82e4e2216 100644 --- a/src/services/consistency_checks.ts +++ b/src/services/consistency_checks.ts @@ -913,7 +913,7 @@ sqlInit.dbReady.then(() => { setTimeout(cls.wrap(runPeriodicChecks), 4 * 1000); }); -export = { +export default { runOnDemandChecks, runEntityChangesChecks }; diff --git a/src/services/content_hash.ts b/src/services/content_hash.ts index 0e8687517..4e5ffc568 100644 --- a/src/services/content_hash.ts +++ b/src/services/content_hash.ts @@ -80,7 +80,7 @@ function checkContentHashes(otherHashes: Record) { return failedChecks; } -export = { +export default { getEntityHashes, checkContentHashes }; diff --git a/src/services/data_dir.ts b/src/services/data_dir.ts index b9a4ab8ef..7009b918f 100644 --- a/src/services/data_dir.ts +++ b/src/services/data_dir.ts @@ -68,7 +68,7 @@ const LOG_DIR = process.env.TRILIUM_LOG_DIR || `${DIR_SEP}log`; const ANONYMIZED_DB_DIR = process.env.TRILIUM_ANONYMIZED_DB_DIR || `${DIR_SEP}anonymized-db`; const CONFIG_INI_PATH = process.env.TRILIUM_CONFIG_INI_PATH || `${DIR_SEP}config.ini`; -export = { +export default { TRILIUM_DATA_DIR, DOCUMENT_PATH, BACKUP_DIR, diff --git a/src/services/date_notes.ts b/src/services/date_notes.ts index 6e91e9688..465757328 100644 --- a/src/services/date_notes.ts +++ b/src/services/date_notes.ts @@ -226,7 +226,7 @@ function getWeekNote(dateStr: string, options: WeekNoteOpts = {}, rootNote: BNot return getDayNote(dateStr, rootNote); } -export = { +export default { getRootCalendarNote, getYearNote, getMonthNote, diff --git a/src/services/date_utils.ts b/src/services/date_utils.ts index b2e57852a..7c882e55e 100644 --- a/src/services/date_utils.ts +++ b/src/services/date_utils.ts @@ -95,7 +95,7 @@ function validateUtcDateTime(str: string | undefined) { } } -export = { +export default { utcNowDateTime, localNowDateTime, localNowDate, diff --git a/src/services/encryption/data_encryption.ts b/src/services/encryption/data_encryption.ts index 978dcd440..2088db6bf 100644 --- a/src/services/encryption/data_encryption.ts +++ b/src/services/encryption/data_encryption.ts @@ -112,7 +112,7 @@ function decryptString(dataKey: Buffer, cipherText: string) { return buffer.toString('utf-8'); } -export = { +export default { encrypt, decrypt, decryptString diff --git a/src/services/encryption/my_scrypt.ts b/src/services/encryption/my_scrypt.ts index 0310a1b1f..658f4f230 100644 --- a/src/services/encryption/my_scrypt.ts +++ b/src/services/encryption/my_scrypt.ts @@ -22,7 +22,7 @@ function getScryptHash(password: crypto.BinaryLike, salt: crypto.BinaryLike) { return hashed; } -export = { +export default { getVerificationHash, getPasswordDerivedKey }; diff --git a/src/services/encryption/password.ts b/src/services/encryption/password.ts index 2d70b606b..89ed7add8 100644 --- a/src/services/encryption/password.ts +++ b/src/services/encryption/password.ts @@ -78,7 +78,7 @@ function resetPassword() { }; } -export = { +export default { isPasswordSet, changePassword, setPassword, diff --git a/src/services/encryption/password_encryption.ts b/src/services/encryption/password_encryption.ts index 7bd12d2f7..de4277d58 100644 --- a/src/services/encryption/password_encryption.ts +++ b/src/services/encryption/password_encryption.ts @@ -33,7 +33,7 @@ function getDataKey(password: string) { return decryptedDataKey; } -export = { +export default { verifyPassword, getDataKey, setDataKey diff --git a/src/services/entity_changes.ts b/src/services/entity_changes.ts index 07f5bbf4e..ece4fb1b2 100644 --- a/src/services/entity_changes.ts +++ b/src/services/entity_changes.ts @@ -193,7 +193,7 @@ function recalculateMaxEntityChangeId() { maxEntityChangeId = sql.getValue("SELECT COALESCE(MAX(id), 0) FROM entity_changes"); } -export = { +export default { putNoteReorderingEntityChange, putEntityChangeForOtherInstances, putEntityChangeWithForcedChange, diff --git a/src/services/erase.ts b/src/services/erase.ts index 2218d4304..5b7261ec9 100644 --- a/src/services/erase.ts +++ b/src/services/erase.ts @@ -186,7 +186,7 @@ sqlInit.dbReady.then(() => { setInterval(cls.wrap(() => eraseScheduledAttachments()), 3600 * 1000); }); -export = { +export default { eraseDeletedNotesNow, eraseUnusedAttachmentsNow, eraseNotesWithDeleteId, diff --git a/src/services/etapi_tokens.ts b/src/services/etapi_tokens.ts index 6d1c810ae..7f8d1cd2f 100644 --- a/src/services/etapi_tokens.ts +++ b/src/services/etapi_tokens.ts @@ -114,7 +114,7 @@ function deleteToken(etapiTokenId: string) { etapiToken.markAsDeletedSimple(); } -export = { +export default { getTokens, createToken, renameToken, diff --git a/src/services/events.ts b/src/services/events.ts index 0eda326b9..b87520d35 100644 --- a/src/services/events.ts +++ b/src/services/events.ts @@ -59,7 +59,7 @@ function emit(eventType: string, data?: any) { } } -export = { +export default { subscribe, subscribeBeccaLoader, emit, diff --git a/src/services/export/zip.ts b/src/services/export/zip.ts index add63e81f..3b4fee335 100644 --- a/src/services/export/zip.ts +++ b/src/services/export/zip.ts @@ -582,7 +582,7 @@ async function exportToZipFile(noteId: string, format: "markdown" | "html", zipF log.info(`Exported '${noteId}' with format '${format}' to '${zipFilePath}'`); } -export = { +export default { exportToZip, exportToZipFile }; diff --git a/src/services/hidden_subtree.ts b/src/services/hidden_subtree.ts index 8080de9bb..f9979e734 100644 --- a/src/services/hidden_subtree.ts +++ b/src/services/hidden_subtree.ts @@ -362,7 +362,7 @@ function checkHiddenSubtreeRecursively(parentNoteId: string, item: Item) { } } -export = { +export default { checkHiddenSubtree, LBTPL_ROOT, LBTPL_BASE, diff --git a/src/services/hoisted_note.ts b/src/services/hoisted_note.ts index 0c76de6e2..798889c46 100644 --- a/src/services/hoisted_note.ts +++ b/src/services/hoisted_note.ts @@ -33,7 +33,7 @@ function getWorkspaceNote() { } } -export = { +export default { getHoistedNoteId, getWorkspaceNote, isHoistedInHiddenSubtree diff --git a/src/services/html_sanitizer.ts b/src/services/html_sanitizer.ts index 3fec30fb8..ec76883b8 100644 --- a/src/services/html_sanitizer.ts +++ b/src/services/html_sanitizer.ts @@ -47,7 +47,7 @@ function sanitize(dirtyHtml: string) { }); } -export = { +export default { sanitize, sanitizeUrl: (url: string) => { return sanitizeUrl.sanitizeUrl(url).trim(); diff --git a/src/services/image.ts b/src/services/image.ts index 2cd6734ec..85035e6fb 100644 --- a/src/services/image.ts +++ b/src/services/image.ts @@ -234,7 +234,7 @@ async function resize(buffer: Buffer, quality: number) { return resultBuffer; } -export = { +export default { saveImage, saveImageToAttachment, updateImage diff --git a/src/services/import/enex.ts b/src/services/import/enex.ts index c172284ac..e2ccaa78a 100644 --- a/src/services/import/enex.ts +++ b/src/services/import/enex.ts @@ -409,4 +409,4 @@ function importEnex(taskContext: TaskContext, file: File, parentNote: BNote): Pr }); } -export = { importEnex }; +export default { importEnex }; diff --git a/src/services/import/mime.ts b/src/services/import/mime.ts index e01769381..0dd1ecc84 100644 --- a/src/services/import/mime.ts +++ b/src/services/import/mime.ts @@ -110,7 +110,7 @@ function normalizeMimeType(mime: string) { return undefined; } -export = { +export default { getMime, getType, normalizeMimeType diff --git a/src/services/import/single.ts b/src/services/import/single.ts index 3550e4cd2..be6c4adcc 100644 --- a/src/services/import/single.ts +++ b/src/services/import/single.ts @@ -191,7 +191,7 @@ function importAttachment(taskContext: TaskContext, file: File, parentNote: BNot } } -export = { +export default { importSingleFile, importAttachment }; diff --git a/src/services/keyboard_actions.ts b/src/services/keyboard_actions.ts index 260966030..6753388ac 100644 --- a/src/services/keyboard_actions.ts +++ b/src/services/keyboard_actions.ts @@ -637,7 +637,7 @@ function getKeyboardActions() { return actions; } -export = { +export default { DEFAULT_KEYBOARD_ACTIONS, getKeyboardActions }; diff --git a/src/services/log.ts b/src/services/log.ts index fbae6668a..414dc27e1 100644 --- a/src/services/log.ts +++ b/src/services/log.ts @@ -117,7 +117,7 @@ function formatDate() { return `${pad(todaysMidnight.getFullYear())}-${pad(todaysMidnight.getMonth() + 1)}-${pad(todaysMidnight.getDate())}`; } -export = { +export default { info, error, request diff --git a/src/services/migration.ts b/src/services/migration.ts index f1912a386..4e1f82473 100644 --- a/src/services/migration.ts +++ b/src/services/migration.ts @@ -143,7 +143,7 @@ async function migrateIfNecessary() { } } -export = { +export default { migrateIfNecessary, isDbUpToDate }; diff --git a/src/services/note_types.ts b/src/services/note_types.ts index 54d9d1f44..3828241bd 100644 --- a/src/services/note_types.ts +++ b/src/services/note_types.ts @@ -26,7 +26,7 @@ function getDefaultMimeForNoteType(typeName: string) { return typeRec.defaultMime; } -export = { +export default { getNoteTypeNames: () => noteTypes.map(nt => nt.type), getDefaultMimeForNoteType }; diff --git a/src/services/notes.ts b/src/services/notes.ts index 2997ac7ad..feefab45a 100644 --- a/src/services/notes.ts +++ b/src/services/notes.ts @@ -1037,7 +1037,7 @@ function getNoteIdMapping(origNote: BNote) { return noteIdMapping; } -export = { +export default { createNewNote, createNewNoteWithTarget, updateNoteData, diff --git a/src/services/options.ts b/src/services/options.ts index 2d060ba94..0f2a81b57 100644 --- a/src/services/options.ts +++ b/src/services/options.ts @@ -93,7 +93,7 @@ function getOptionMap() { return map; } -export = { +export default { getOption, getOptionInt, getOptionBool, diff --git a/src/services/options_init.ts b/src/services/options_init.ts index ea8dcd252..4edaa70d7 100644 --- a/src/services/options_init.ts +++ b/src/services/options_init.ts @@ -132,7 +132,7 @@ function getKeyboardDefaultOptions() { })); } -export = { +export default { initDocumentOptions, initNotSyncedOptions, initStartupOptions diff --git a/src/services/protected_session.ts b/src/services/protected_session.ts index ef6770c79..f29b73d17 100644 --- a/src/services/protected_session.ts +++ b/src/services/protected_session.ts @@ -70,7 +70,7 @@ function checkProtectedSessionExpiration() { } } -export = { +export default { setDataKey, resetDataKey, isProtectedSessionAvailable, diff --git a/src/services/request.ts b/src/services/request.ts index a98c82a93..56aea5b1e 100644 --- a/src/services/request.ts +++ b/src/services/request.ts @@ -233,7 +233,7 @@ function generateError(opts: { return new Error(`Request to ${opts.method} ${opts.url} failed, error: ${message}`); } -export = { +export default { exec, getImage }; diff --git a/src/services/resource_dir.ts b/src/services/resource_dir.ts index 8c057174a..14f286fd7 100644 --- a/src/services/resource_dir.ts +++ b/src/services/resource_dir.ts @@ -20,7 +20,7 @@ if (!fs.existsSync(MIGRATIONS_DIR)) { process.exit(1); } -export = { +export default { RESOURCE_DIR, MIGRATIONS_DIR, DB_INIT_DIR, diff --git a/src/services/script.ts b/src/services/script.ts index 48e9d9b7e..de2343a86 100644 --- a/src/services/script.ts +++ b/src/services/script.ts @@ -219,7 +219,7 @@ function sanitizeVariableName(str: string) { return str.replace(/[^a-z0-9_]/gim, ""); } -export = { +export default { executeNote, executeNoteNoException, executeScript, diff --git a/src/services/search/services/search.ts b/src/services/search/services/search.ts index 5d703c3b5..7be34cbaf 100644 --- a/src/services/search/services/search.ts +++ b/src/services/search/services/search.ts @@ -444,7 +444,7 @@ function formatAttribute(attr: BAttribute) { } } -export = { +export default { searchFromNote, searchNotesForAutocomplete, findResultsWithQuery, diff --git a/src/services/setup.ts b/src/services/setup.ts index 97830bb14..34246483f 100644 --- a/src/services/setup.ts +++ b/src/services/setup.ts @@ -110,7 +110,7 @@ function getSyncSeedOptions() { ]; } -export = { +export default { hasSyncServerSchemaAndSeed, triggerSync, sendSeedToSyncServer, diff --git a/src/services/special_notes.ts b/src/services/special_notes.ts index cd6b3b61b..50ba2eccf 100644 --- a/src/services/special_notes.ts +++ b/src/services/special_notes.ts @@ -287,7 +287,7 @@ function createOrUpdateScriptLauncherFromApi(opts: { return launcherNote; } -export = { +export default { getInboxNote, createSqlConsole, saveSqlConsole, diff --git a/src/services/sql.ts b/src/services/sql.ts index b46986442..df9742d3b 100644 --- a/src/services/sql.ts +++ b/src/services/sql.ts @@ -314,7 +314,7 @@ function disableSlowQueryLogging(cb: () => T) { } } -export = { +export default { dbConnection, insert, replace, diff --git a/src/services/sql_init.ts b/src/services/sql_init.ts index a31f7e709..1c66723a0 100644 --- a/src/services/sql_init.ts +++ b/src/services/sql_init.ts @@ -184,7 +184,7 @@ function getDbSize() { log.info(`DB size: ${getDbSize()} KB`); -export = { +export default { dbReady, schemaExists, isDbInitialized, diff --git a/src/services/sync.ts b/src/services/sync.ts index f67687b8e..7adea4206 100644 --- a/src/services/sync.ts +++ b/src/services/sync.ts @@ -453,7 +453,7 @@ require('../becca/becca_loader').beccaLoaded.then(() => { getLastSyncedPush(); }); -export = { +export default { sync, login, getEntityChangeRecords, diff --git a/src/services/sync_options.ts b/src/services/sync_options.ts index 6423e5fb2..48cf39efd 100644 --- a/src/services/sync_options.ts +++ b/src/services/sync_options.ts @@ -14,7 +14,7 @@ function get(name: string) { return (config['Sync'] && config['Sync'][name]) || optionService.getOption(name); } -export = { +export default { // env variable is the easiest way to guarantee we won't overwrite prod data during development // after copying prod document/data directory getSyncServerHost: () => process.env.TRILIUM_SYNC_SERVER_HOST || get('syncServerHost'), diff --git a/src/services/tree.ts b/src/services/tree.ts index 6bf2dbb29..c3efb8ed0 100644 --- a/src/services/tree.ts +++ b/src/services/tree.ts @@ -261,7 +261,7 @@ function setNoteToParent(noteId: string, prefix: string, parentNoteId: string) { } } -export = { +export default { validateParentChild, sortNotes, sortNotesIfNeeded, diff --git a/src/services/utils.ts b/src/services/utils.ts index dd2d9cd6a..b14ce5c71 100644 --- a/src/services/utils.ts +++ b/src/services/utils.ts @@ -311,7 +311,7 @@ function isString(x: any) { return Object.prototype.toString.call(x) === "[object String]"; } -export = { +export default { randomSecureToken, randomString, md5, diff --git a/src/services/window.ts b/src/services/window.ts index 3c5a4c53f..bf84081fc 100644 --- a/src/services/window.ts +++ b/src/services/window.ts @@ -193,7 +193,7 @@ function getMainWindow() { return mainWindow; } -export = { +export default { createMainWindow, createSetupWindow, closeSetupWindow, diff --git a/src/services/ws.ts b/src/services/ws.ts index d2f9ff1d3..d53f416ec 100644 --- a/src/services/ws.ts +++ b/src/services/ws.ts @@ -275,7 +275,7 @@ function setLastSyncedPush(entityChangeId: number) { lastSyncedPush = entityChangeId; } -export = { +export default { init, sendMessageToAllClients, syncPushInProgress, diff --git a/src/share/shaca/shaca_loader.ts b/src/share/shaca/shaca_loader.ts index 8299d2df6..1789f6fc0 100644 --- a/src/share/shaca/shaca_loader.ts +++ b/src/share/shaca/shaca_loader.ts @@ -92,7 +92,7 @@ eventService.subscribe([eventService.ENTITY_CREATED, eventService.ENTITY_CHANGED shaca.reset(); }); -export = { +export default { load, ensureLoad }; diff --git a/src/share/sql.ts b/src/share/sql.ts index 106d251ba..0f39dd77d 100644 --- a/src/share/sql.ts +++ b/src/share/sql.ts @@ -27,7 +27,7 @@ function getColumn(query: string, params: string[] = []): T[] { return dbConnection.prepare(query).pluck().all(params) as T[]; } -export = { +export default { getRawRows, getRow, getColumn From ecb8a7f39497985b454545a3218e19f249990759 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Thu, 18 Jul 2024 21:50:12 +0300 Subject: [PATCH 08/25] server-esm: Change single export to export default --- src/app.ts | 14 +++++++------- src/becca/becca.ts | 2 +- src/becca/entities/abstract_becca_entity.ts | 2 +- src/becca/entities/battachment.ts | 2 +- src/becca/entities/battribute.ts | 2 +- src/becca/entities/bblob.ts | 2 +- src/becca/entities/bbranch.ts | 2 +- src/becca/entities/betapi_token.ts | 2 +- src/becca/entities/bnote.ts | 2 +- src/becca/entities/boption.ts | 2 +- src/becca/entities/brecent_note.ts | 2 +- src/becca/entities/brevision.ts | 2 +- src/errors/not_found_error.ts | 2 +- src/errors/validation_error.ts | 2 +- src/routes/electron.ts | 2 +- src/routes/session_parser.ts | 2 +- src/services/app_path.ts | 2 +- src/services/asset_path.ts | 2 +- src/services/backend_script_api.ts | 2 +- src/services/builtin_attributes.ts | 2 +- src/services/config.ts | 2 +- src/services/host.ts | 2 +- src/services/instance_id.ts | 2 +- src/services/meta/attachment_meta.ts | 2 +- src/services/meta/attribute_meta.ts | 2 +- src/services/meta/note_meta.ts | 2 +- src/services/port.ts | 2 +- src/services/script_context.ts | 2 +- src/services/search/expressions/ancestor.ts | 2 +- src/services/search/expressions/and.ts | 2 +- .../search/expressions/attribute_exists.ts | 2 +- src/services/search/expressions/child_of.ts | 2 +- src/services/search/expressions/descendant_of.ts | 2 +- src/services/search/expressions/expression.ts | 2 +- src/services/search/expressions/is_hidden.ts | 2 +- .../search/expressions/label_comparison.ts | 2 +- src/services/search/expressions/not.ts | 2 +- .../search/expressions/note_content_fulltext.ts | 2 +- src/services/search/expressions/note_flat_text.ts | 2 +- src/services/search/expressions/or.ts | 2 +- .../search/expressions/order_by_and_limit.ts | 2 +- src/services/search/expressions/parent_of.ts | 2 +- .../search/expressions/property_comparison.ts | 2 +- src/services/search/expressions/relation_where.ts | 2 +- src/services/search/expressions/true.ts | 2 +- src/services/search/note_set.ts | 2 +- src/services/search/search_context.ts | 2 +- src/services/search/search_result.ts | 2 +- src/services/search/services/build_comparator.ts | 2 +- src/services/search/services/handle_parens.ts | 2 +- src/services/search/services/lex.ts | 2 +- src/services/search/services/parse.ts | 2 +- src/services/search/value_extractor.ts | 2 +- src/services/session_secret.ts | 2 +- src/services/spaced_update.ts | 2 +- src/services/task_context.ts | 2 +- src/share/shaca/entities/abstract_shaca_entity.ts | 2 +- src/share/shaca/entities/sattachment.ts | 2 +- src/share/shaca/entities/sattribute.ts | 2 +- src/share/shaca/entities/sbranch.ts | 2 +- src/share/shaca/entities/snote.ts | 2 +- src/share/shaca/shaca.ts | 2 +- src/types.d.ts | 10 +++++----- 63 files changed, 73 insertions(+), 73 deletions(-) diff --git a/src/app.ts b/src/app.ts index 1cdf5e643..8e7db6f1b 100644 --- a/src/app.ts +++ b/src/app.ts @@ -1,9 +1,9 @@ -import express from "express"; -import path from "path"; -import favicon from "serve-favicon"; -import cookieParser from "cookie-parser"; -import helmet from "helmet"; -import compression from "compression"; +import express = require('express'); +import path = require('path'); +import favicon = require('serve-favicon'); +import cookieParser = require('cookie-parser'); +import helmet = require('helmet'); +import compression = require('compression'); import sessionParser from "./routes/session_parser.js"; import utils from "./services/utils.js"; @@ -57,4 +57,4 @@ if (utils.isElectron()) { require('@electron/remote/main').initialize(); } -export = app; +export default app; diff --git a/src/becca/becca.ts b/src/becca/becca.ts index a66dc442d..07f8cc0dc 100644 --- a/src/becca/becca.ts +++ b/src/becca/becca.ts @@ -4,4 +4,4 @@ import Becca from "./becca-interface"; const becca = new Becca(); -export = becca; +export default becca; diff --git a/src/becca/entities/abstract_becca_entity.ts b/src/becca/entities/abstract_becca_entity.ts index 80a4a1bee..67d7d6031 100644 --- a/src/becca/entities/abstract_becca_entity.ts +++ b/src/becca/entities/abstract_becca_entity.ts @@ -327,4 +327,4 @@ abstract class AbstractBeccaEntity> { } } -export = AbstractBeccaEntity; +export default AbstractBeccaEntity; diff --git a/src/becca/entities/battachment.ts b/src/becca/entities/battachment.ts index 9e7b60209..1fdbd1cb4 100644 --- a/src/becca/entities/battachment.ts +++ b/src/becca/entities/battachment.ts @@ -249,4 +249,4 @@ class BAttachment extends AbstractBeccaEntity { } } -export = BAttachment; +export default BAttachment; diff --git a/src/becca/entities/battribute.ts b/src/becca/entities/battribute.ts index 2c37b8228..c0ba201bc 100644 --- a/src/becca/entities/battribute.ts +++ b/src/becca/entities/battribute.ts @@ -226,4 +226,4 @@ class BAttribute extends AbstractBeccaEntity { } } -export = BAttribute; +export default BAttribute; diff --git a/src/becca/entities/bblob.ts b/src/becca/entities/bblob.ts index 122afb92e..c02d1f1b7 100644 --- a/src/becca/entities/bblob.ts +++ b/src/becca/entities/bblob.ts @@ -37,4 +37,4 @@ class BBlob extends AbstractBeccaEntity { } } -export = BBlob; +export default BBlob; diff --git a/src/becca/entities/bbranch.ts b/src/becca/entities/bbranch.ts index cb974ac9a..363fb86f2 100644 --- a/src/becca/entities/bbranch.ts +++ b/src/becca/entities/bbranch.ts @@ -285,4 +285,4 @@ class BBranch extends AbstractBeccaEntity { } } -export = BBranch; +export default BBranch; diff --git a/src/becca/entities/betapi_token.ts b/src/becca/entities/betapi_token.ts index b6f6f01e9..dd3f9f0c9 100644 --- a/src/becca/entities/betapi_token.ts +++ b/src/becca/entities/betapi_token.ts @@ -80,4 +80,4 @@ class BEtapiToken extends AbstractBeccaEntity { } } -export = BEtapiToken; +export default BEtapiToken; diff --git a/src/becca/entities/bnote.ts b/src/becca/entities/bnote.ts index 2b12d9815..d0fcac1b6 100644 --- a/src/becca/entities/bnote.ts +++ b/src/becca/entities/bnote.ts @@ -1696,4 +1696,4 @@ class BNote extends AbstractBeccaEntity { } } -export = BNote; +export default BNote; diff --git a/src/becca/entities/boption.ts b/src/becca/entities/boption.ts index 64ffeea58..12c7ceff8 100644 --- a/src/becca/entities/boption.ts +++ b/src/becca/entities/boption.ts @@ -48,4 +48,4 @@ class BOption extends AbstractBeccaEntity { } } -export = BOption; +export default BOption; diff --git a/src/becca/entities/brecent_note.ts b/src/becca/entities/brecent_note.ts index 108c652bd..9ed77bc44 100644 --- a/src/becca/entities/brecent_note.ts +++ b/src/becca/entities/brecent_note.ts @@ -38,4 +38,4 @@ class BRecentNote extends AbstractBeccaEntity { } } -export = BRecentNote; +export default BRecentNote; diff --git a/src/becca/entities/brevision.ts b/src/becca/entities/brevision.ts index d17a49b60..ae3b68c70 100644 --- a/src/becca/entities/brevision.ts +++ b/src/becca/entities/brevision.ts @@ -211,4 +211,4 @@ class BRevision extends AbstractBeccaEntity { } } -export = BRevision; +export default BRevision; diff --git a/src/errors/not_found_error.ts b/src/errors/not_found_error.ts index f765e11f9..f6ffb0d7e 100644 --- a/src/errors/not_found_error.ts +++ b/src/errors/not_found_error.ts @@ -6,4 +6,4 @@ class NotFoundError { } } -export = NotFoundError; \ No newline at end of file +export default NotFoundError; \ No newline at end of file diff --git a/src/errors/validation_error.ts b/src/errors/validation_error.ts index 8b872bcbe..565082466 100644 --- a/src/errors/validation_error.ts +++ b/src/errors/validation_error.ts @@ -6,4 +6,4 @@ class ValidationError { } } -export = ValidationError; \ No newline at end of file +export default ValidationError; \ No newline at end of file diff --git a/src/routes/electron.ts b/src/routes/electron.ts index 8a869d935..be78d13ec 100644 --- a/src/routes/electron.ts +++ b/src/routes/electron.ts @@ -56,4 +56,4 @@ function init(app: Application) { }); } -export = init; +export default init; diff --git a/src/routes/session_parser.ts b/src/routes/session_parser.ts index 88ae80b9d..b880a8915 100644 --- a/src/routes/session_parser.ts +++ b/src/routes/session_parser.ts @@ -19,4 +19,4 @@ const sessionParser = session({ }) }); -export = sessionParser; +export default sessionParser; diff --git a/src/services/app_path.ts b/src/services/app_path.ts index 5cc1ec67c..6d5e02231 100644 --- a/src/services/app_path.ts +++ b/src/services/app_path.ts @@ -1,6 +1,6 @@ import assetPath from "./asset_path.js"; import env from "./env.js"; -export = env.isDev() +export default env.isDev() ? assetPath + "/app" : assetPath + "/app-dist"; diff --git a/src/services/asset_path.ts b/src/services/asset_path.ts index c62069d38..35e186fbb 100644 --- a/src/services/asset_path.ts +++ b/src/services/asset_path.ts @@ -1,3 +1,3 @@ import packageJson from "../../package.json.js"; -export = `assets/v${packageJson.version}`; +export default `assets/v${packageJson.version}`; diff --git a/src/services/backend_script_api.ts b/src/services/backend_script_api.ts index 757a4c826..d9d11bc9c 100644 --- a/src/services/backend_script_api.ts +++ b/src/services/backend_script_api.ts @@ -651,6 +651,6 @@ function BackendScriptApi(this: Api, currentNote: BNote, apiParams: ApiParams) { } } -export = BackendScriptApi as any as { +export default BackendScriptApi as any as { new (currentNote: BNote, apiParams: ApiParams): Api }; diff --git a/src/services/builtin_attributes.ts b/src/services/builtin_attributes.ts index 6ccabb4e1..649647b77 100644 --- a/src/services/builtin_attributes.ts +++ b/src/services/builtin_attributes.ts @@ -1,4 +1,4 @@ -export = [ +export default [ // label names { type: 'label', name: 'inbox' }, { type: 'label', name: 'disableVersioning' }, diff --git a/src/services/config.ts b/src/services/config.ts index 10bead0f1..a5469efb5 100644 --- a/src/services/config.ts +++ b/src/services/config.ts @@ -16,4 +16,4 @@ if (!fs.existsSync(dataDir.CONFIG_INI_PATH)) { const config = ini.parse(fs.readFileSync(dataDir.CONFIG_INI_PATH, 'utf-8')); -export = config; +export default config; diff --git a/src/services/host.ts b/src/services/host.ts index 2cff7b59d..d8a394e6d 100644 --- a/src/services/host.ts +++ b/src/services/host.ts @@ -1,3 +1,3 @@ import config from "./config.js"; -export = process.env.TRILIUM_HOST || config['Network']['host'] || '0.0.0.0'; +export default process.env.TRILIUM_HOST || config['Network']['host'] || '0.0.0.0'; diff --git a/src/services/instance_id.ts b/src/services/instance_id.ts index fc1aedacb..047325e6c 100644 --- a/src/services/instance_id.ts +++ b/src/services/instance_id.ts @@ -2,4 +2,4 @@ import utils from "./utils.js"; const instanceId = utils.randomString(12); -export = instanceId; +export default instanceId; diff --git a/src/services/meta/attachment_meta.ts b/src/services/meta/attachment_meta.ts index 8c237ab21..6fef1989a 100644 --- a/src/services/meta/attachment_meta.ts +++ b/src/services/meta/attachment_meta.ts @@ -7,4 +7,4 @@ interface AttachmentMeta { dataFileName: string; } -export = AttachmentMeta; +export default AttachmentMeta; diff --git a/src/services/meta/attribute_meta.ts b/src/services/meta/attribute_meta.ts index de79df913..c2f8764aa 100644 --- a/src/services/meta/attribute_meta.ts +++ b/src/services/meta/attribute_meta.ts @@ -9,4 +9,4 @@ interface AttributeMeta { position?: number; } -export = AttributeMeta; +export default AttributeMeta; diff --git a/src/services/meta/note_meta.ts b/src/services/meta/note_meta.ts index 9f30537b1..a613c4781 100644 --- a/src/services/meta/note_meta.ts +++ b/src/services/meta/note_meta.ts @@ -23,4 +23,4 @@ interface NoteMeta { children?: NoteMeta[]; } -export = NoteMeta; +export default NoteMeta; diff --git a/src/services/port.ts b/src/services/port.ts index 11fa847a0..ffb2e2bf2 100644 --- a/src/services/port.ts +++ b/src/services/port.ts @@ -24,4 +24,4 @@ if (process.env.TRILIUM_PORT) { port = parseAndValidate(config['Network']['port'] || '3000', `Network.port in ${dataDir.CONFIG_INI_PATH}`); } -export = port; +export default port; diff --git a/src/services/script_context.ts b/src/services/script_context.ts index f678c630b..695eb5a24 100644 --- a/src/services/script_context.ts +++ b/src/services/script_context.ts @@ -34,4 +34,4 @@ class ScriptContext { }; } -export = ScriptContext; +export default ScriptContext; diff --git a/src/services/search/expressions/ancestor.ts b/src/services/search/expressions/ancestor.ts index 6c543d7dd..8016e1492 100644 --- a/src/services/search/expressions/ancestor.ts +++ b/src/services/search/expressions/ancestor.ts @@ -74,4 +74,4 @@ class AncestorExp extends Expression { } } -export = AncestorExp; +export default AncestorExp; diff --git a/src/services/search/expressions/and.ts b/src/services/search/expressions/and.ts index 2a9254a2b..2a6e07877 100644 --- a/src/services/search/expressions/and.ts +++ b/src/services/search/expressions/and.ts @@ -34,4 +34,4 @@ class AndExp extends Expression { } } -export = AndExp; +export default AndExp; diff --git a/src/services/search/expressions/attribute_exists.ts b/src/services/search/expressions/attribute_exists.ts index 0a9419bcb..625e4b2af 100644 --- a/src/services/search/expressions/attribute_exists.ts +++ b/src/services/search/expressions/attribute_exists.ts @@ -48,4 +48,4 @@ class AttributeExistsExp extends Expression { } } -export = AttributeExistsExp; +export default AttributeExistsExp; diff --git a/src/services/search/expressions/child_of.ts b/src/services/search/expressions/child_of.ts index 91ae19fc0..491eab3ef 100644 --- a/src/services/search/expressions/child_of.ts +++ b/src/services/search/expressions/child_of.ts @@ -37,4 +37,4 @@ class ChildOfExp extends Expression { } } -export = ChildOfExp; +export default ChildOfExp; diff --git a/src/services/search/expressions/descendant_of.ts b/src/services/search/expressions/descendant_of.ts index 92b6f4687..7a7444de8 100644 --- a/src/services/search/expressions/descendant_of.ts +++ b/src/services/search/expressions/descendant_of.ts @@ -28,4 +28,4 @@ class DescendantOfExp extends Expression { } } -export = DescendantOfExp; +export default DescendantOfExp; diff --git a/src/services/search/expressions/expression.ts b/src/services/search/expressions/expression.ts index a72b65347..2bff50e95 100644 --- a/src/services/search/expressions/expression.ts +++ b/src/services/search/expressions/expression.ts @@ -13,4 +13,4 @@ abstract class Expression { abstract execute(inputNoteSet: NoteSet, executionContext: {}, searchContext: SearchContext): NoteSet; } -export = Expression; +export default Expression; diff --git a/src/services/search/expressions/is_hidden.ts b/src/services/search/expressions/is_hidden.ts index a2cccea60..3ceeb5570 100644 --- a/src/services/search/expressions/is_hidden.ts +++ b/src/services/search/expressions/is_hidden.ts @@ -21,4 +21,4 @@ class IsHiddenExp extends Expression { } } -export = IsHiddenExp; +export default IsHiddenExp; diff --git a/src/services/search/expressions/label_comparison.ts b/src/services/search/expressions/label_comparison.ts index fa472dcdb..85ef94096 100644 --- a/src/services/search/expressions/label_comparison.ts +++ b/src/services/search/expressions/label_comparison.ts @@ -46,4 +46,4 @@ class LabelComparisonExp extends Expression { } } -export = LabelComparisonExp; +export default LabelComparisonExp; diff --git a/src/services/search/expressions/not.ts b/src/services/search/expressions/not.ts index 74a1d73b0..25f61f6db 100644 --- a/src/services/search/expressions/not.ts +++ b/src/services/search/expressions/not.ts @@ -20,4 +20,4 @@ class NotExp extends Expression { } } -export = NotExp; +export default NotExp; diff --git a/src/services/search/expressions/note_content_fulltext.ts b/src/services/search/expressions/note_content_fulltext.ts index 1de51ce70..30f7b40f1 100644 --- a/src/services/search/expressions/note_content_fulltext.ts +++ b/src/services/search/expressions/note_content_fulltext.ts @@ -155,4 +155,4 @@ class NoteContentFulltextExp extends Expression { } } -export = NoteContentFulltextExp; +export default NoteContentFulltextExp; diff --git a/src/services/search/expressions/note_flat_text.ts b/src/services/search/expressions/note_flat_text.ts index a4e794149..d433eb991 100644 --- a/src/services/search/expressions/note_flat_text.ts +++ b/src/services/search/expressions/note_flat_text.ts @@ -172,4 +172,4 @@ class NoteFlatTextExp extends Expression { } } -export = NoteFlatTextExp; +export default NoteFlatTextExp; diff --git a/src/services/search/expressions/or.ts b/src/services/search/expressions/or.ts index 284563ee9..7b141129c 100644 --- a/src/services/search/expressions/or.ts +++ b/src/services/search/expressions/or.ts @@ -39,4 +39,4 @@ class OrExp extends Expression { } } -export = OrExp; +export default OrExp; diff --git a/src/services/search/expressions/order_by_and_limit.ts b/src/services/search/expressions/order_by_and_limit.ts index fac5126f3..9d0ff31c8 100644 --- a/src/services/search/expressions/order_by_and_limit.ts +++ b/src/services/search/expressions/order_by_and_limit.ts @@ -111,4 +111,4 @@ class OrderByAndLimitExp extends Expression { } } -export = OrderByAndLimitExp; +export default OrderByAndLimitExp; diff --git a/src/services/search/expressions/parent_of.ts b/src/services/search/expressions/parent_of.ts index 872cfe825..8a51bbf62 100644 --- a/src/services/search/expressions/parent_of.ts +++ b/src/services/search/expressions/parent_of.ts @@ -36,4 +36,4 @@ class ParentOfExp extends Expression { } } -export = ParentOfExp; +export default ParentOfExp; diff --git a/src/services/search/expressions/property_comparison.ts b/src/services/search/expressions/property_comparison.ts index 6902df898..a6b072d09 100644 --- a/src/services/search/expressions/property_comparison.ts +++ b/src/services/search/expressions/property_comparison.ts @@ -87,4 +87,4 @@ class PropertyComparisonExp extends Expression { } } -export = PropertyComparisonExp; +export default PropertyComparisonExp; diff --git a/src/services/search/expressions/relation_where.ts b/src/services/search/expressions/relation_where.ts index 1676eeafe..d973da0ce 100644 --- a/src/services/search/expressions/relation_where.ts +++ b/src/services/search/expressions/relation_where.ts @@ -42,4 +42,4 @@ class RelationWhereExp extends Expression { } } -export = RelationWhereExp; +export default RelationWhereExp; diff --git a/src/services/search/expressions/true.ts b/src/services/search/expressions/true.ts index afc0b8a25..5858a1075 100644 --- a/src/services/search/expressions/true.ts +++ b/src/services/search/expressions/true.ts @@ -11,4 +11,4 @@ class TrueExp extends Expression { } } -export = TrueExp; +export default TrueExp; diff --git a/src/services/search/note_set.ts b/src/services/search/note_set.ts index e5ce38720..6f56452b7 100644 --- a/src/services/search/note_set.ts +++ b/src/services/search/note_set.ts @@ -65,4 +65,4 @@ class NoteSet { } } -export = NoteSet; +export default NoteSet; diff --git a/src/services/search/search_context.ts b/src/services/search/search_context.ts index 29e0bd55d..0d2bd60c2 100644 --- a/src/services/search/search_context.ts +++ b/src/services/search/search_context.ts @@ -68,4 +68,4 @@ class SearchContext { } } -export = SearchContext; +export default SearchContext; diff --git a/src/services/search/search_result.ts b/src/services/search/search_result.ts index 9e7d8311a..385999053 100644 --- a/src/services/search/search_result.ts +++ b/src/services/search/search_result.ts @@ -67,4 +67,4 @@ class SearchResult { } } -export = SearchResult; +export default SearchResult; diff --git a/src/services/search/services/build_comparator.ts b/src/services/search/services/build_comparator.ts index 426bfa195..e86a58c75 100644 --- a/src/services/search/services/build_comparator.ts +++ b/src/services/search/services/build_comparator.ts @@ -45,4 +45,4 @@ function buildComparator(operator: string, comparedValue: string) { } } -export = buildComparator; +export default buildComparator; diff --git a/src/services/search/services/handle_parens.ts b/src/services/search/services/handle_parens.ts index 30d7e03fc..c33bde37f 100644 --- a/src/services/search/services/handle_parens.ts +++ b/src/services/search/services/handle_parens.ts @@ -47,4 +47,4 @@ function handleParens(tokens: (TokenData | TokenData[])[]) { } } -export = handleParens; +export default handleParens; diff --git a/src/services/search/services/lex.ts b/src/services/search/services/lex.ts index 516cf71df..ea9c0914c 100644 --- a/src/services/search/services/lex.ts +++ b/src/services/search/services/lex.ts @@ -147,4 +147,4 @@ function lex(str: string) { } } -export = lex; +export default lex; diff --git a/src/services/search/services/parse.ts b/src/services/search/services/parse.ts index 9f94c2e0d..65a923dc7 100644 --- a/src/services/search/services/parse.ts +++ b/src/services/search/services/parse.ts @@ -494,4 +494,4 @@ function getAncestorExp({ancestorNoteId, ancestorDepth, includeHiddenNotes}: Sea } } -export = parse; +export default parse; diff --git a/src/services/search/value_extractor.ts b/src/services/search/value_extractor.ts index 805d658fd..a6df8feda 100644 --- a/src/services/search/value_extractor.ts +++ b/src/services/search/value_extractor.ts @@ -134,4 +134,4 @@ class ValueExtractor { } } -export = ValueExtractor; +export default ValueExtractor; diff --git a/src/services/session_secret.ts b/src/services/session_secret.ts index b09538270..2e67f1ed4 100644 --- a/src/services/session_secret.ts +++ b/src/services/session_secret.ts @@ -28,4 +28,4 @@ else { sessionSecret = fs.readFileSync(sessionSecretPath, ENCODING); } -export = sessionSecret; +export default sessionSecret; diff --git a/src/services/spaced_update.ts b/src/services/spaced_update.ts index 24417d18c..8fc5818be 100644 --- a/src/services/spaced_update.ts +++ b/src/services/spaced_update.ts @@ -74,4 +74,4 @@ class SpacedUpdate { } } -export = SpacedUpdate; +export default SpacedUpdate; diff --git a/src/services/task_context.ts b/src/services/task_context.ts index 37d2de8dd..5974313e8 100644 --- a/src/services/task_context.ts +++ b/src/services/task_context.ts @@ -77,4 +77,4 @@ class TaskContext { } } -export = TaskContext; +export default TaskContext; diff --git a/src/share/shaca/entities/abstract_shaca_entity.ts b/src/share/shaca/entities/abstract_shaca_entity.ts index 20dba31ff..6bf7c3d63 100644 --- a/src/share/shaca/entities/abstract_shaca_entity.ts +++ b/src/share/shaca/entities/abstract_shaca_entity.ts @@ -12,4 +12,4 @@ class AbstractShacaEntity { } } -export = AbstractShacaEntity; +export default AbstractShacaEntity; diff --git a/src/share/shaca/entities/sattachment.ts b/src/share/shaca/entities/sattachment.ts index d913d32b2..7ac9c3847 100644 --- a/src/share/shaca/entities/sattachment.ts +++ b/src/share/shaca/entities/sattachment.ts @@ -77,4 +77,4 @@ class SAttachment extends AbstractShacaEntity { } } -export = SAttachment; +export default SAttachment; diff --git a/src/share/shaca/entities/sattribute.ts b/src/share/shaca/entities/sattribute.ts index ccbd60bb1..73298ef2e 100644 --- a/src/share/shaca/entities/sattribute.ts +++ b/src/share/shaca/entities/sattribute.ts @@ -110,4 +110,4 @@ class SAttribute extends AbstractShacaEntity { } } -export = SAttribute; +export default SAttribute; diff --git a/src/share/shaca/entities/sbranch.ts b/src/share/shaca/entities/sbranch.ts index b24584905..0f2080603 100644 --- a/src/share/shaca/entities/sbranch.ts +++ b/src/share/shaca/entities/sbranch.ts @@ -59,4 +59,4 @@ class SBranch extends AbstractShacaEntity { } } -export = SBranch; +export default SBranch; diff --git a/src/share/shaca/entities/snote.ts b/src/share/shaca/entities/snote.ts index 269744101..923e35a29 100644 --- a/src/share/shaca/entities/snote.ts +++ b/src/share/shaca/entities/snote.ts @@ -522,4 +522,4 @@ class SNote extends AbstractShacaEntity { } } -export = SNote; +export default SNote; diff --git a/src/share/shaca/shaca.ts b/src/share/shaca/shaca.ts index d256b17e1..ca5201335 100644 --- a/src/share/shaca/shaca.ts +++ b/src/share/shaca/shaca.ts @@ -4,4 +4,4 @@ import Shaca from "./shaca-interface"; const shaca = new Shaca(); -export = shaca; +export default shaca; diff --git a/src/types.d.ts b/src/types.d.ts index f6bb7ed30..a956b0e08 100644 --- a/src/types.d.ts +++ b/src/types.d.ts @@ -5,17 +5,17 @@ declare module 'unescape' { function unescape(str: string, type?: string): string; - export = unescape; + export default unescape; } declare module 'html2plaintext' { function html2plaintext(htmlText: string): string; - export = html2plaintext; + export default html2plaintext; } declare module 'normalize-strings' { function normalizeString(string: string): string; - export = normalizeString; + export default normalizeString; } declare module 'joplin-turndown-plugin-gfm' { @@ -23,10 +23,10 @@ declare module 'joplin-turndown-plugin-gfm' { namespace gfm { function gfm(service: TurndownService): void; } - export = gfm; + export default gfm; } declare module 'is-animated' { function isAnimated(buffer: Buffer): boolean; - export = isAnimated; + export default isAnimated; } \ No newline at end of file From 6c8e9f69b09dd154c62b38d09e4150141550d8f0 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Thu, 18 Jul 2024 21:53:50 +0300 Subject: [PATCH 09/25] server-esm: Fix import of package.json --- src/routes/index.ts | 2 +- src/services/app_info.ts | 2 +- src/services/asset_path.ts | 2 +- src/services/export/zip.ts | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/routes/index.ts b/src/routes/index.ts index d0cca224c..56a445a20 100644 --- a/src/routes/index.ts +++ b/src/routes/index.ts @@ -8,7 +8,7 @@ import log from "../services/log.js"; import env from "../services/env.js"; import utils from "../services/utils.js"; import protectedSessionService from "../services/protected_session.js"; -import packageJson from "../../package.json.js"; +import packageJson from "../../package.json"; import assetPath from "../services/asset_path.js"; import appPath from "../services/app_path.js"; import { Request, Response } from 'express'; diff --git a/src/services/app_info.ts b/src/services/app_info.ts index a6a9795ab..359a40355 100644 --- a/src/services/app_info.ts +++ b/src/services/app_info.ts @@ -1,7 +1,7 @@ "use strict"; import build from "./build.js"; -import packageJson from "../../package.json.js"; +import packageJson from "../../package.json"; import dataDir from "./data_dir.js"; const APP_DB_VERSION = 228; diff --git a/src/services/asset_path.ts b/src/services/asset_path.ts index 35e186fbb..72a21fdb9 100644 --- a/src/services/asset_path.ts +++ b/src/services/asset_path.ts @@ -1,3 +1,3 @@ -import packageJson from "../../package.json.js"; +import packageJson from "../../package.json"; export default `assets/v${packageJson.version}`; diff --git a/src/services/export/zip.ts b/src/services/export/zip.ts index 3b4fee335..4838cb957 100644 --- a/src/services/export/zip.ts +++ b/src/services/export/zip.ts @@ -5,7 +5,7 @@ import dateUtils from "../date_utils.js"; import path from "path"; import mimeTypes from "mime-types"; import mdService from "./md.js"; -import packageInfo from "../../../package.json.js"; +import packageInfo from "../../../package.json"; import utils from "../utils.js"; import protectedSessionService from "../protected_session.js"; import sanitize from "sanitize-filename"; From 46f76d72846c597292a88bf3db54ff2a7aa29aa5 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Thu, 18 Jul 2024 21:55:26 +0300 Subject: [PATCH 10/25] server-esm: Fix some imports in app.ts --- src/app.ts | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/app.ts b/src/app.ts index 8e7db6f1b..def1b9341 100644 --- a/src/app.ts +++ b/src/app.ts @@ -1,9 +1,9 @@ -import express = require('express'); -import path = require('path'); -import favicon = require('serve-favicon'); -import cookieParser = require('cookie-parser'); -import helmet = require('helmet'); -import compression = require('compression'); +import express from "express"; +import path from "path"; +import favicon from "serve-favicon"; +import cookieParser from "cookie-parser"; +import helmet from "helmet"; +import compression from "compression"; import sessionParser from "./routes/session_parser.js"; import utils from "./services/utils.js"; From 1dc894e279a61ff4905565eb7aa79e7cb13af610 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Thu, 18 Jul 2024 21:56:20 +0300 Subject: [PATCH 11/25] server-esm: Fix the remaining compilation errors --- spec/support/etapi.ts | 2 +- src/app.ts | 2 +- src/routes/routes.ts | 2 +- src/services/branches.ts | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/spec/support/etapi.ts b/spec/support/etapi.ts index 00310d9cc..15f32c7f3 100644 --- a/spec/support/etapi.ts +++ b/spec/support/etapi.ts @@ -210,7 +210,7 @@ function checkStatus(response: Response): void { } } -export { +export default { describeEtapi, getEtapi, getEtapiResponse, diff --git a/src/app.ts b/src/app.ts index def1b9341..e6da1bcfe 100644 --- a/src/app.ts +++ b/src/app.ts @@ -20,7 +20,7 @@ if (!utils.isElectron()) { app.use(compression()); // HTTP compression } -app.use(helmet.default({ +app.use(helmet({ hidePoweredBy: false, // errors out in electron contentSecurityPolicy: false, crossOriginEmbedderPolicy: false diff --git a/src/routes/routes.ts b/src/routes/routes.ts index 59dd50b22..578df6cfe 100644 --- a/src/routes/routes.ts +++ b/src/routes/routes.ts @@ -106,7 +106,7 @@ function register(app: express.Application) { route(GET, '/login', [auth.checkAppInitialized, auth.checkPasswordSet], loginRoute.loginPage); route(GET, '/set-password', [auth.checkAppInitialized, auth.checkPasswordNotSet], loginRoute.setPasswordPage); - const loginRateLimiter = rateLimit.rateLimit({ + const loginRateLimiter = rateLimit({ windowMs: 15 * 60 * 1000, // 15 minutes max: 10, // limit each IP to 10 requests per windowMs skipSuccessfulRequests: true // successful auth to rate-limited ETAPI routes isn't counted. However, successful auth to /login is still counted! diff --git a/src/services/branches.ts b/src/services/branches.ts index 1344270ff..88454c4ab 100644 --- a/src/services/branches.ts +++ b/src/services/branches.ts @@ -1,6 +1,6 @@ import treeService from "./tree.js"; import sql from "./sql.js"; -import BBranch from "../becca/entities/bbranch.js.js"; +import BBranch from "../becca/entities/bbranch.js"; function moveBranchToNote(branchToMove: BBranch, targetParentNoteId: string) { if (branchToMove.parentNoteId === targetParentNoteId) { From 5d3e54ee9c7281a108505548ce5850158acb43ac Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Thu, 18 Jul 2024 22:07:57 +0300 Subject: [PATCH 12/25] server-esm: Fix Electron helpers --- electron.ts | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/electron.ts b/electron.ts index 3e44e03ce..d4e995b3a 100644 --- a/electron.ts +++ b/electron.ts @@ -1,17 +1,19 @@ "use strict"; import electron from "electron"; +import electronDebug from "electron-debug"; +import electronDl from "electron-dl"; import sqlInit from "./src/services/sql_init.js"; import appIconService from "./src/services/app_icon.js"; import windowService from "./src/services/window.js"; import tray from "./src/services/tray.js"; // Adds debug features like hotkeys for triggering dev tools and reload -require('electron-debug')(); +electronDebug(); appIconService.installLocalAppIcon(); -require('electron-dl')({ saveAs: true }); +electronDl({ saveAs: true }); // needed for excalidraw export https://github.com/zadam/trilium/issues/4271 electron.app.commandLine.appendSwitch( From 20c729e62bdbab08de6860e675587593aca145d2 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Thu, 18 Jul 2024 22:11:38 +0300 Subject: [PATCH 13/25] server-esm: Solve a few straightforward imports --- src/services/sync_mutex.ts | 2 +- src/share/shaca/entities/sattribute.ts | 3 +-- src/share/shaca/entities/snote.ts | 2 +- src/share/shaca/shaca-interface.ts | 2 +- 4 files changed, 4 insertions(+), 5 deletions(-) diff --git a/src/services/sync_mutex.ts b/src/services/sync_mutex.ts index 60bb1ba4f..5bdbaa36f 100644 --- a/src/services/sync_mutex.ts +++ b/src/services/sync_mutex.ts @@ -3,7 +3,7 @@ * (like consistency checks) can use this mutex to make sure sync isn't currently running. */ -const Mutex = require('async-mutex').Mutex; +import { Mutex } from "async-mutex"; const instance = new Mutex(); async function doExclusively(func: () => T) { diff --git a/src/share/shaca/entities/sattribute.ts b/src/share/shaca/entities/sattribute.ts index 73298ef2e..189d9e6a6 100644 --- a/src/share/shaca/entities/sattribute.ts +++ b/src/share/shaca/entities/sattribute.ts @@ -1,10 +1,9 @@ "use strict"; +import AbstractShacaEntity from "./abstract_shaca_entity"; import { SAttributeRow } from "./rows"; import SNote from "./snote.js"; -const AbstractShacaEntity = require('./abstract_shaca_entity'); - class SAttribute extends AbstractShacaEntity { attributeId: string; diff --git a/src/share/shaca/entities/snote.ts b/src/share/shaca/entities/snote.ts index 923e35a29..755404b40 100644 --- a/src/share/shaca/entities/snote.ts +++ b/src/share/shaca/entities/snote.ts @@ -27,7 +27,7 @@ class SNote extends AbstractShacaEntity { parentBranches: SBranch[]; parents: SNote[]; children: SNote[]; - private ownedAttributes: SAttribute[]; + ownedAttributes: SAttribute[]; private __attributeCache: SAttribute[] | null; private __inheritableAttributeCache: SAttribute[] | null; targetRelations: SAttribute[]; diff --git a/src/share/shaca/shaca-interface.ts b/src/share/shaca/shaca-interface.ts index 43fbf9dfa..f568e9cec 100644 --- a/src/share/shaca/shaca-interface.ts +++ b/src/share/shaca/shaca-interface.ts @@ -8,7 +8,7 @@ export default class Shaca { notes!: Record; branches!: Record; childParentToBranch!: Record; - private attributes!: Record; + attributes!: Record; attachments!: Record; aliasToNote!: Record; shareRootNote!: SNote | null; From 0c87fab550d03712294994c39e2d6513c981727c Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Thu, 18 Jul 2024 22:18:10 +0300 Subject: [PATCH 14/25] server-esm: Fix wonderful token type mismatch --- spec/search/parens.spec.ts | 28 ++++++++++--------- src/services/search/services/handle_parens.ts | 4 +-- src/services/search/services/parse.ts | 4 +-- src/services/search/services/search.ts | 4 +-- src/services/search/services/types.ts | 2 ++ 5 files changed, 23 insertions(+), 19 deletions(-) diff --git a/spec/search/parens.spec.ts b/spec/search/parens.spec.ts index ae1ac5b2f..bf1482356 100644 --- a/spec/search/parens.spec.ts +++ b/spec/search/parens.spec.ts @@ -1,24 +1,26 @@ -const handleParens = require('../../src/services/search/services/handle_parens'); +import handleParens from "../../src/services/search/services/handle_parens"; +import { TokenStructure } from "../../src/services/search/services/types"; describe("Parens handler", () => { it("handles parens", () => { const input = ["(", "hello", ")", "and", "(", "(", "pick", "one", ")", "and", "another", ")"] .map(token => ({token})); - expect(handleParens(input)) - .toEqual([ + const actual: TokenStructure = [ + [ + {token: "hello"} + ], + {token: "and"}, + [ [ - {token: "hello"} + {token: "pick"}, + {token: "one"} ], {token: "and"}, - [ - [ - {token: "pick"}, - {token: "one"} - ], - {token: "and"}, - {token: "another"} - ] - ]); + {token: "another"} + ] + ]; + + expect(handleParens(input)).toEqual(actual); }); }); diff --git a/src/services/search/services/handle_parens.ts b/src/services/search/services/handle_parens.ts index c33bde37f..a5fb1f227 100644 --- a/src/services/search/services/handle_parens.ts +++ b/src/services/search/services/handle_parens.ts @@ -1,9 +1,9 @@ -import { TokenData } from "./types"; +import { TokenData, TokenStructure } from "./types"; /** * This will create a recursive object from a list of tokens - tokens between parenthesis are grouped in a single array */ -function handleParens(tokens: (TokenData | TokenData[])[]) { +function handleParens(tokens: TokenStructure) { if (tokens.length === 0) { return []; } diff --git a/src/services/search/services/parse.ts b/src/services/search/services/parse.ts index 65a923dc7..f78e6a55a 100644 --- a/src/services/search/services/parse.ts +++ b/src/services/search/services/parse.ts @@ -21,7 +21,7 @@ import utils from "../../utils.js"; import TrueExp from "../expressions/true.js"; import IsHiddenExp from "../expressions/is_hidden.js"; import SearchContext from "../search_context.js"; -import { TokenData } from "./types"; +import { TokenData, TokenStructure } from "./types"; import Expression from "../expressions/expression.js"; function getFulltext(_tokens: TokenData[], searchContext: SearchContext) { @@ -448,7 +448,7 @@ function getExpression(tokens: TokenData[], searchContext: SearchContext, level function parse({fulltextTokens, expressionTokens, searchContext}: { fulltextTokens: TokenData[], - expressionTokens: (TokenData | TokenData[])[], + expressionTokens: TokenStructure, searchContext: SearchContext, originalQuery: string }) { diff --git a/src/services/search/services/search.ts b/src/services/search/services/search.ts index 7be34cbaf..755034477 100644 --- a/src/services/search/services/search.ts +++ b/src/services/search/services/search.ts @@ -13,7 +13,7 @@ import log from "../../log.js"; import hoistedNoteService from "../../hoisted_note.js"; import BNote from "../../../becca/entities/bnote.js"; import BAttribute from "../../../becca/entities/battribute.js"; -import { SearchParams, TokenData } from "./types"; +import { SearchParams, TokenStructure } from "./types"; import Expression from "../expressions/expression.js"; import sql from "../../sql.js"; @@ -273,7 +273,7 @@ function parseQueryToExpression(query: string, searchContext: SearchContext) { const {fulltextQuery, fulltextTokens, expressionTokens} = lex(query); searchContext.fulltextQuery = fulltextQuery; - let structuredExpressionTokens: (TokenData | TokenData[])[]; + let structuredExpressionTokens: TokenStructure; try { structuredExpressionTokens = handleParens(expressionTokens); diff --git a/src/services/search/services/types.ts b/src/services/search/services/types.ts index 09450f760..2b12a3c65 100644 --- a/src/services/search/services/types.ts +++ b/src/services/search/services/types.ts @@ -1,3 +1,5 @@ +export type TokenStructure = (TokenData | TokenStructure)[]; + export interface TokenData { token: string; inQuotes?: boolean; From a8fd3be133890c1d271f5362c705a0b211b43c0d Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Thu, 18 Jul 2024 22:21:33 +0300 Subject: [PATCH 15/25] server-esm: Remove dynamic import to utils --- src/services/utils.ts | 4 ++-- src/share/routes.ts | 3 +-- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/src/services/utils.ts b/src/services/utils.ts index b14ce5c71..c985c566e 100644 --- a/src/services/utils.ts +++ b/src/services/utils.ts @@ -173,7 +173,7 @@ function replaceAll(string: string, replaceWhat: string, replaceWith: string) { return string.replace(new RegExp(quotedReplaceWhat, "g"), replaceWith); } -function formatDownloadTitle(fileName: string, type: string, mime: string) { +function formatDownloadTitle(fileName: string, type: string | null, mime: string) { if (!fileName) { fileName = "untitled"; } @@ -182,7 +182,7 @@ function formatDownloadTitle(fileName: string, type: string, mime: string) { if (type === 'text') { return `${fileName}.html`; - } else if (['relationMap', 'canvas', 'search'].includes(type)) { + } else if (type && ['relationMap', 'canvas', 'search'].includes(type)) { return `${fileName}.json`; } else { if (!mime) { diff --git a/src/share/routes.ts b/src/share/routes.ts index 4c892e53c..51a0c2ff5 100644 --- a/src/share/routes.ts +++ b/src/share/routes.ts @@ -15,6 +15,7 @@ import log from "../services/log.js"; import SNote from "./shaca/entities/snote.js"; import SBranch from "./shaca/entities/sbranch.js"; import SAttachment from "./shaca/entities/sattachment.js"; +import utils from "../services/utils.js"; function getSharedSubTreeRoot(note: SNote): { note?: SNote; branch?: SBranch } { if (note.noteId === shareRoot.SHARE_ROOT_NOTE_ID) { @@ -317,8 +318,6 @@ function register(router: Router) { addNoIndexHeader(attachment.note, res); - const utils = require('../services/utils'); - const filename = utils.formatDownloadTitle(attachment.title, null, attachment.mime); res.setHeader('Content-Disposition', utils.getContentDisposition(filename)); From efdae79c103e0be48f1edb074834c67cdad7b742 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Thu, 18 Jul 2024 22:25:03 +0300 Subject: [PATCH 16/25] server-esm: Remove two more straightforward imports --- src/services/events.ts | 2 +- src/services/utils.ts | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/services/events.ts b/src/services/events.ts index b87520d35..8b64d5af0 100644 --- a/src/services/events.ts +++ b/src/services/events.ts @@ -1,4 +1,4 @@ -const log = require('./log'); +import log from "./log"; const NOTE_TITLE_CHANGED = "NOTE_TITLE_CHANGED"; const ENTER_PROTECTED_SESSION = "ENTER_PROTECTED_SESSION"; diff --git a/src/services/utils.ts b/src/services/utils.ts index c985c566e..1b75046d0 100644 --- a/src/services/utils.ts +++ b/src/services/utils.ts @@ -1,13 +1,15 @@ "use strict"; import crypto from "crypto"; -const randtoken = require('rand-token').generator({source: 'crypto'}); +import { generator } from "rand-token"; import unescape from "unescape"; import escape from "escape-html"; import sanitize from "sanitize-filename"; import mimeTypes from "mime-types"; import path from "path"; +const randtoken = generator({source: 'crypto'}); + function newEntityId() { return randomString(12); } From ad93fe4b7519edada07801d306f37d7bd832b03e Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Thu, 18 Jul 2024 22:30:16 +0300 Subject: [PATCH 17/25] server-esm: Remove dynamic imports due to past circular issues --- src/becca/becca-interface.ts | 19 ++++--------------- src/becca/entities/rows.ts | 2 +- src/services/options.ts | 6 ++---- src/services/search/services/search.ts | 2 +- src/services/sync.ts | 3 +-- 5 files changed, 9 insertions(+), 23 deletions(-) diff --git a/src/becca/becca-interface.ts b/src/becca/becca-interface.ts index 09ae01959..562ec85db 100644 --- a/src/becca/becca-interface.ts +++ b/src/becca/becca-interface.ts @@ -155,9 +155,7 @@ export default class Becca { } getRevision(revisionId: string): BRevision | null { - const row = sql.getRow("SELECT * FROM revisions WHERE revisionId = ?", [revisionId]); - - const BRevision = require('./entities/brevision'); // avoiding circular dependency problems + const row = sql.getRow("SELECT * FROM revisions WHERE revisionId = ?", [revisionId]); return row ? new BRevision(row) : null; } @@ -179,9 +177,7 @@ export default class Becca { WHERE attachmentId = ? AND isDeleted = 0` : `SELECT * FROM attachments WHERE attachmentId = ? AND isDeleted = 0`; - const BAttachment = require('./entities/battachment'); // avoiding circular dependency problems - - return sql.getRows(query, [attachmentId]) + return sql.getRows(query, [attachmentId]) .map(row => new BAttachment(row))[0]; } @@ -194,7 +190,6 @@ export default class Becca { } getAttachments(attachmentIds: string[]): BAttachment[] { - const BAttachment = require('./entities/battachment'); // avoiding circular dependency problems return sql.getManyRows("SELECT * FROM attachments WHERE attachmentId IN (???) AND isDeleted = 0", attachmentIds) .map(row => new BAttachment(row)); } @@ -204,9 +199,7 @@ export default class Becca { return null; } - const row = sql.getRow("SELECT *, LENGTH(content) AS contentLength FROM blobs WHERE blobId = ?", [entity.blobId]); - - const BBlob = require('./entities/bblob'); // avoiding circular dependency problems + const row = sql.getRow("SELECT *, LENGTH(content) AS contentLength FROM blobs WHERE blobId = ?", [entity.blobId]); return row ? new BBlob(row) : null; } @@ -248,16 +241,12 @@ export default class Becca { } getRecentNotesFromQuery(query: string, params: string[] = []): BRecentNote[] { - const rows = sql.getRows(query, params); - - const BRecentNote = require('./entities/brecent_note'); // avoiding circular dependency problems + const rows = sql.getRows(query, params); return rows.map(row => new BRecentNote(row)); } getRevisionsFromQuery(query: string, params: string[] = []): BRevision[] { const rows = sql.getRows(query, params); - - const BRevision = require('./entities/brevision'); // avoiding circular dependency problems return rows.map(row => new BRevision(row)); } diff --git a/src/becca/entities/rows.ts b/src/becca/entities/rows.ts index 119d392ec..bb4c70a78 100644 --- a/src/becca/entities/rows.ts +++ b/src/becca/entities/rows.ts @@ -42,7 +42,7 @@ export interface OptionRow { name: string; value: string; isSynced: boolean; - utcDateModified: string; + utcDateModified?: string; } export interface EtapiTokenRow { diff --git a/src/services/options.ts b/src/services/options.ts index 0f2a81b57..bd9b289ad 100644 --- a/src/services/options.ts +++ b/src/services/options.ts @@ -1,4 +1,5 @@ import becca from "../becca/becca.js"; +import BOption from "../becca/entities/boption.js"; import { OptionRow } from '../becca/entities/rows'; import sql from "./sql.js"; @@ -68,10 +69,7 @@ function setOption(name: string, value: string | number | boolean) { } } -function createOption(name: string, value: string | number, isSynced: boolean) { - // to avoid circular dependency, need to find a better solution - const BOption = require('../becca/entities/boption'); - +function createOption(name: string, value: string, isSynced: boolean) { new BOption({ name: name, value: value, diff --git a/src/services/search/services/search.ts b/src/services/search/services/search.ts index 755034477..5b289ff9d 100644 --- a/src/services/search/services/search.ts +++ b/src/services/search/services/search.ts @@ -16,6 +16,7 @@ import BAttribute from "../../../becca/entities/battribute.js"; import { SearchParams, TokenStructure } from "./types"; import Expression from "../expressions/expression.js"; import sql from "../../sql.js"; +import scriptService from "../../script.js"; function searchFromNote(note: BNote) { let searchResultNoteIds; @@ -78,7 +79,6 @@ function searchFromRelation(note: BNote, relationName: string) { return []; } - const scriptService = require('../../script'); // TODO: to avoid circular dependency const result = scriptService.executeNote(scriptNote, {originEntity: note}); if (!Array.isArray(result)) { diff --git a/src/services/sync.ts b/src/services/sync.ts index 7adea4206..f5b6e6178 100644 --- a/src/services/sync.ts +++ b/src/services/sync.ts @@ -19,6 +19,7 @@ import entityConstructor from "../becca/entity_constructor.js"; import becca from "../becca/becca.js"; import { EntityChange, EntityChangeRecord, EntityRow } from './entity_changes_interface'; import { CookieJar, ExecOpts } from './request_interface'; +import setupService from "./setup.js"; let proxyToggle = true; @@ -107,8 +108,6 @@ async function sync() { } async function login() { - const setupService = require('./setup'); // circular dependency issue - if (!await setupService.hasSyncServerSchemaAndSeed()) { await setupService.sendSeedToSyncServer(); } From 8ac8f6c2df7fcda7583281ab55888ef1eebbe7d2 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Thu, 18 Jul 2024 22:33:36 +0300 Subject: [PATCH 18/25] server-esm: Fix a few more import issues --- src/services/sql.ts | 9 ++++++--- src/services/sync.ts | 4 ++-- src/share/routes.ts | 2 -- 3 files changed, 8 insertions(+), 7 deletions(-) diff --git a/src/services/sql.ts b/src/services/sql.ts index df9742d3b..0d92e6209 100644 --- a/src/services/sql.ts +++ b/src/services/sql.ts @@ -10,6 +10,9 @@ import dataDir from "./data_dir.js"; import cls from "./cls.js"; import fs from "fs-extra"; import Database from "better-sqlite3"; +import ws from "./ws.js"; +import becca_loader from "../becca/becca_loader.js"; +import entity_changes from "./entity_changes.js"; const dbConnection: DatabaseType = new Database(dataDir.DOCUMENT_PATH); dbConnection.pragma('journal_mode = WAL'); @@ -248,7 +251,7 @@ function transactional(func: (statement: Statement) => T) { const ret = (dbConnection.transaction(func) as any).deferred(); if (!dbConnection.inTransaction) { // i.e. transaction was really committed (and not just savepoint released) - require('./ws').sendTransactionEntityChangesToAllClients(); + ws.sendTransactionEntityChangesToAllClients(); } return ret; @@ -259,11 +262,11 @@ function transactional(func: (statement: Statement) => T) { if (entityChangeIds.length > 0) { log.info("Transaction rollback dirtied the becca, forcing reload."); - require('../becca/becca_loader').load(); + becca_loader.load(); } // the maxEntityChangeId has been incremented during failed transaction, need to recalculate - require('./entity_changes').recalculateMaxEntityChangeId(); + entity_changes.recalculateMaxEntityChangeId(); throw e; } diff --git a/src/services/sync.ts b/src/services/sync.ts index f5b6e6178..9f6bdeb8a 100644 --- a/src/services/sync.ts +++ b/src/services/sync.ts @@ -20,6 +20,7 @@ import becca from "../becca/becca.js"; import { EntityChange, EntityChangeRecord, EntityRow } from './entity_changes_interface'; import { CookieJar, ExecOpts } from './request_interface'; import setupService from "./setup.js"; +import consistency_checks from "./consistency_checks.js"; let proxyToggle = true; @@ -281,8 +282,7 @@ async function checkContentHash(syncContext: SyncContext) { if (failedChecks.length > 0) { // before re-queuing sectors, make sure the entity changes are correct - const consistencyChecks = require('./consistency_checks'); - consistencyChecks.runEntityChangesChecks(); + consistency_checks.runEntityChangesChecks(); await syncRequest(syncContext, 'POST', `/api/sync/check-entity-changes`); } diff --git a/src/share/routes.ts b/src/share/routes.ts index 51a0c2ff5..b491b5a7e 100644 --- a/src/share/routes.ts +++ b/src/share/routes.ts @@ -250,8 +250,6 @@ function register(router: Router) { addNoIndexHeader(note, res); - const utils = require('../services/utils'); - const filename = utils.formatDownloadTitle(note.title, note.type, note.mime); res.setHeader('Content-Disposition', utils.getContentDisposition(filename)); From 4ed88d28e922c5326a8247255ece815f63ac407e Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Thu, 18 Jul 2024 22:41:58 +0300 Subject: [PATCH 19/25] server-esm: Fix type errors related to cloning --- src/services/bulk_actions.ts | 2 +- src/services/cloning.ts | 41 ++++++++++++++++++++++++------------ src/services/tree.ts | 8 ++++++- 3 files changed, 35 insertions(+), 16 deletions(-) diff --git a/src/services/bulk_actions.ts b/src/services/bulk_actions.ts index 2b81c634d..64c180405 100644 --- a/src/services/bulk_actions.ts +++ b/src/services/bulk_actions.ts @@ -111,7 +111,7 @@ const ACTION_HANDLERS: Record = { res = branchService.moveBranchToNote(note.getParentBranches()[0], action.targetParentNoteId); } - if (!res.success) { + if ("success" in res && !res.success) { log.info(`Moving/cloning note ${note.noteId} to ${action.targetParentNoteId} failed with error ${JSON.stringify(res)}`); } }, diff --git a/src/services/cloning.ts b/src/services/cloning.ts index 939b6bf42..4e81b2666 100644 --- a/src/services/cloning.ts +++ b/src/services/cloning.ts @@ -1,18 +1,28 @@ "use strict"; -const sql = require('./sql'); -const eventChangesService = require('./entity_changes'); -const treeService = require('./tree'); -const BBranch = require('../becca/entities/bbranch'); -const becca = require('../becca/becca'); -const log = require('./log'); +import sql from './sql'; +import eventChangesService from './entity_changes'; +import treeService from './tree'; +import BBranch from '../becca/entities/bbranch'; +import becca from '../becca/becca'; +import log from './log'; -function cloneNoteToParentNote(noteId: string, parentNoteId: string, prefix: string | null = null) { +interface CloneResponse { + success: boolean; + message?: string; + branchId?: string; + notePath?: string; +} + +function cloneNoteToParentNote(noteId: string, parentNoteId: string, prefix: string | null = null): CloneResponse { if (!(noteId in becca.notes) || !(parentNoteId in becca.notes)) { return { success: false, message: 'Note cannot be cloned because either the cloned note or the intended parent is deleted.' }; } const parentNote = becca.getNote(parentNoteId); + if (!parentNote) { + return { success: false, message: 'Note cannot be cloned because the parent note could not be found.' }; + } if (parentNote.type === 'search') { return { @@ -31,7 +41,7 @@ function cloneNoteToParentNote(noteId: string, parentNoteId: string, prefix: str noteId: noteId, parentNoteId: parentNoteId, prefix: prefix, - isExpanded: 0 + isExpanded: false }).save(); log.info(`Cloned note '${noteId}' to a new parent note '${parentNoteId}' with prefix '${prefix}'`); @@ -67,6 +77,9 @@ function ensureNoteIsPresentInParent(noteId: string, parentNoteId: string, prefi const parentNote = becca.getNote(parentNoteId); + if (!parentNote) { + return { branch: null, success: false, message: "Can't find parent note." }; + } if (parentNote.type === 'search') { return { branch: null, success: false, message: "Can't clone into a search note" }; } @@ -81,7 +94,7 @@ function ensureNoteIsPresentInParent(noteId: string, parentNoteId: string, prefi noteId: noteId, parentNoteId: parentNoteId, prefix: prefix, - isExpanded: 0 + isExpanded: false }).save(); log.info(`Ensured note '${noteId}' is in parent note '${parentNoteId}' with prefix '${branch.prefix}'`); @@ -90,7 +103,7 @@ function ensureNoteIsPresentInParent(noteId: string, parentNoteId: string, prefi } function ensureNoteIsAbsentFromParent(noteId: string, parentNoteId: string) { - const branchId = sql.getValue(`SELECT branchId FROM branches WHERE noteId = ? AND parentNoteId = ? AND isDeleted = 0`, [noteId, parentNoteId]); + const branchId = sql.getValue(`SELECT branchId FROM branches WHERE noteId = ? AND parentNoteId = ? AND isDeleted = 0`, [noteId, parentNoteId]); const branch = becca.getBranch(branchId); if (branch) { @@ -137,13 +150,13 @@ function cloneNoteAfter(noteId: string, afterBranchId: string) { if (!(noteId in becca.notes)) { return { success: false, message: `Note to be cloned '${noteId}' is deleted or does not exist.` }; - } else if (!(afterNote.parentNoteId in becca.notes)) { - return { success: false, message: `After note '${afterNote.parentNoteId}' is deleted or does not exist.` }; + } else if (!afterNote || !(afterNote.parentNoteId in becca.notes)) { + return { success: false, message: `After note '${afterNote?.parentNoteId}' is deleted or does not exist.` }; } const parentNote = becca.getNote(afterNote.parentNoteId); - if (parentNote.type === 'search') { + if (!parentNote || parentNote.type === 'search') { return { success: false, message: "Can't clone into a search note" @@ -167,7 +180,7 @@ function cloneNoteAfter(noteId: string, afterBranchId: string) { noteId: noteId, parentNoteId: afterNote.parentNoteId, notePosition: afterNote.notePosition + 10, - isExpanded: 0 + isExpanded: false }).save(); log.info(`Cloned note '${noteId}' into parent note '${afterNote.parentNoteId}' after note '${afterNote.noteId}', branch '${afterBranchId}'`); diff --git a/src/services/tree.ts b/src/services/tree.ts index c3efb8ed0..0ab72e7f7 100644 --- a/src/services/tree.ts +++ b/src/services/tree.ts @@ -7,7 +7,13 @@ import entityChangesService from "./entity_changes.js"; import becca from "../becca/becca.js"; import BNote from "../becca/entities/bnote.js"; -function validateParentChild(parentNoteId: string, childNoteId: string, branchId: string | null = null) { +interface ValidationResponse { + branch: BBranch | null; + success: boolean; + message?: string; +} + +function validateParentChild(parentNoteId: string, childNoteId: string, branchId: string | null = null): ValidationResponse { if (['root', '_hidden', '_share', '_lbRoot', '_lbAvailableLaunchers', '_lbVisibleLaunchers'].includes(childNoteId)) { return { branch: null, success: false, message: `Cannot change this note's location.` }; } From f4d19e2bc1723a934971e88da6ec5f9d44a05cb2 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Thu, 18 Jul 2024 22:58:12 +0300 Subject: [PATCH 20/25] server-esm: Solve some more imports --- spec/search/search.spec.ts | 1 - src/becca/becca_loader.ts | 6 ++-- src/becca/entities/battachment.ts | 3 +- src/becca/entities/bnote.ts | 38 ++++++++++++-------------- src/becca/entities/rows.ts | 2 +- src/routes/api/search.ts | 6 ++-- src/services/cloning.ts | 4 +-- src/services/import/enex.ts | 3 +- src/services/log.ts | 6 ++-- src/services/search/services/search.ts | 14 +++++++++- src/www.ts | 38 +++++++++++++------------- 11 files changed, 66 insertions(+), 55 deletions(-) diff --git a/spec/search/search.spec.ts b/spec/search/search.spec.ts index 45c0f3acd..f13da498a 100644 --- a/spec/search/search.spec.ts +++ b/spec/search/search.spec.ts @@ -4,7 +4,6 @@ import BBranch from "../../src/becca/entities/bbranch.js"; import SearchContext from "../../src/services/search/search_context.js"; import dateUtils from "../../src/services/date_utils.js"; import becca from "../../src/becca/becca.js"; -// const { NoteBuilder, findNoteByTitle, note } = require('./becca_mocking'); import becca_mocking from "./becca_mocking.js"; describe('Search', () => { diff --git a/src/becca/becca_loader.ts b/src/becca/becca_loader.ts index dd751bf9a..1bfab31da 100644 --- a/src/becca/becca_loader.ts +++ b/src/becca/becca_loader.ts @@ -14,13 +14,15 @@ import cls from "../services/cls.js"; import entityConstructor from "../becca/entity_constructor.js"; import { AttributeRow, BranchRow, EtapiTokenRow, NoteRow, OptionRow } from './entities/rows'; import AbstractBeccaEntity from "./entities/abstract_becca_entity.js"; +import options_init from "../services/options_init.js"; +import ws from "../services/ws.js"; const beccaLoaded = new Promise((res, rej) => { sqlInit.dbReady.then(() => { cls.init(() => { load(); - require('../services/options_init').initStartupOptions(); + options_init.initStartupOptions(); res(); }); @@ -73,7 +75,7 @@ function load() { function reload(reason: string) { load(); - require('../services/ws').reloadFrontend(reason || "becca reloaded"); + ws.reloadFrontend(reason || "becca reloaded"); } eventService.subscribeBeccaLoader([eventService.ENTITY_CHANGE_SYNCED], ({ entityName, entityRow }) => { diff --git a/src/becca/entities/battachment.ts b/src/becca/entities/battachment.ts index 1fdbd1cb4..bef20acea 100644 --- a/src/becca/entities/battachment.ts +++ b/src/becca/entities/battachment.ts @@ -9,6 +9,7 @@ import log from "../../services/log.js"; import { AttachmentRow } from './rows'; import BNote from "./bnote.js"; import BBranch from "./bbranch.js"; +import noteService from "../../services/notes.js"; const attachmentRoleToNoteTypeMapping = { 'image': 'image', @@ -157,8 +158,6 @@ class BAttachment extends AbstractBeccaEntity { throw new Error(`Cannot convert protected attachment outside of protected session`); } - const noteService = require('../../services/notes'); - const { note, branch } = noteService.createNewNote({ parentNoteId: this.ownerId, title: this.title, diff --git a/src/becca/entities/bnote.ts b/src/becca/entities/bnote.ts index d0fcac1b6..e7cfc2a46 100644 --- a/src/becca/entities/bnote.ts +++ b/src/becca/entities/bnote.ts @@ -12,10 +12,14 @@ import TaskContext from "../../services/task_context.js"; import dayjs from "dayjs"; import utc from "dayjs/plugin/utc"; import eventService from "../../services/events.js"; -import { AttachmentRow, NoteRow, NoteType, RevisionRow } from './rows'; +import { AttachmentRow, AttributeType, NoteRow, NoteType, RevisionRow } from './rows'; import BBranch from "./bbranch.js"; import BAttribute from "./battribute.js"; import { NotePojo } from '../becca-interface'; +import searchService from "../../services/search/services/search.js"; +import cloningService, { CloneResponse } from "../../services/cloning.js"; +import noteService from "../../services/notes.js"; +import handlers from "../../services/handlers.js"; dayjs.extend(utc); const LABEL = 'label'; @@ -890,11 +894,9 @@ class BNote extends AbstractBeccaEntity { } try { - const searchService = require('../../services/search/services/search'); - const {searchResultNoteIds} = searchService.searchFromNote(this); - + const result = searchService.searchFromNote(this); const becca = this.becca; - return (searchResultNoteIds as string[]) // TODO: remove cast once search is converted + return (result.searchResultNoteIds) .map(resultNoteId => becca.notes[resultNoteId]) .filter(note => !!note); } @@ -1261,7 +1263,7 @@ class BNote extends AbstractBeccaEntity { * @param name - attribute name * @param value - attribute value (optional) */ - setAttribute(type: string, name: string, value?: string) { + setAttribute(type: AttributeType, name: string, value?: string) { const attributes = this.getOwnedAttributes(); const attr = attributes.find(attr => attr.type === type && attr.name === name); @@ -1274,8 +1276,6 @@ class BNote extends AbstractBeccaEntity { } } else { - const BAttribute = require('./battribute'); - new BAttribute({ noteId: this.noteId, type: type, @@ -1310,9 +1310,7 @@ class BNote extends AbstractBeccaEntity { * @param name - name of the attribute, not including the leading ~/# * @param value - value of the attribute - text for labels, target note ID for relations; optional. */ - addAttribute(type: string, name: string, value: string = "", isInheritable: boolean = false, position: number | null = null): BAttribute { - const BAttribute = require('./battribute'); - + addAttribute(type: AttributeType, name: string, value: string = "", isInheritable: boolean = false, position: number | null = null): BAttribute { return new BAttribute({ noteId: this.noteId, type: type, @@ -1351,7 +1349,7 @@ class BNote extends AbstractBeccaEntity { * @param name - attribute name * @param value - attribute value (optional) */ - toggleAttribute(type: string, enabled: boolean, name: string, value?: string) { + toggleAttribute(type: AttributeType, enabled: boolean, name: string, value?: string) { if (enabled) { this.setAttribute(type, name, value); } @@ -1423,8 +1421,6 @@ class BNote extends AbstractBeccaEntity { } searchNotesInSubtree(searchString: string) { - const searchService = require('../../services/search/services/search'); - return searchService.searchNotes(searchString) as BNote[]; } @@ -1432,12 +1428,16 @@ class BNote extends AbstractBeccaEntity { return this.searchNotesInSubtree(searchString)[0]; } - cloneTo(parentNoteId: string) { - const cloningService = require('../../services/cloning'); - + cloneTo(parentNoteId: string): CloneResponse { const branch = this.becca.getNote(parentNoteId)?.getParentBranches()[0]; + if (!branch?.branchId) { + return { + success: false, + message: "Unable to find the branch ID to clone." + }; + } - return cloningService.cloneNoteToBranch(this.noteId, branch?.branchId); + return cloningService.cloneNoteToBranch(this.noteId, branch.branchId); } isEligibleForConversionToAttachment(opts: ConvertOpts = { autoConversion: false }) { @@ -1508,7 +1508,6 @@ class BNote extends AbstractBeccaEntity { parentNote.setContent(fixedContent); - const noteService = require('../../services/notes'); noteService.asyncPostProcessContent(parentNote, fixedContent); // to mark an unused attachment for deletion this.deleteNote(); @@ -1535,7 +1534,6 @@ class BNote extends AbstractBeccaEntity { } // needs to be run before branches and attributes are deleted and thus attached relations disappear - const handlers = require('../../services/handlers'); handlers.runAttachedRelations(this, 'runOnNoteDeletion', this); taskContext.noteDeletionHandlerTriggered = true; diff --git a/src/becca/entities/rows.ts b/src/becca/entities/rows.ts index bb4c70a78..6c46bf301 100644 --- a/src/becca/entities/rows.ts +++ b/src/becca/entities/rows.ts @@ -69,7 +69,7 @@ export interface AttributeRow { noteId?: string; type: AttributeType; name: string; - position?: number; + position?: number | null; value?: string; isInheritable?: boolean; utcDateModified?: string; diff --git a/src/routes/api/search.ts b/src/routes/api/search.ts index 0c2966dad..fbfe74766 100644 --- a/src/routes/api/search.ts +++ b/src/routes/api/search.ts @@ -4,19 +4,19 @@ import { Request } from "express"; import becca from "../../becca/becca.js"; import SearchContext from "../../services/search/search_context.js"; -import searchService from "../../services/search/services/search.js"; +import searchService, { EMPTY_RESULT, SearchNoteResult } from "../../services/search/services/search.js"; import bulkActionService from "../../services/bulk_actions.js"; import cls from "../../services/cls.js"; import attributeFormatter from "../../services/attribute_formatter.js"; import ValidationError from "../../errors/validation_error.js"; import SearchResult from "../../services/search/search_result.js"; -function searchFromNote(req: Request) { +function searchFromNote(req: Request): SearchNoteResult { const note = becca.getNoteOrThrow(req.params.noteId); if (!note) { // this can be triggered from recent changes, and it's harmless to return an empty list rather than fail - return []; + return EMPTY_RESULT; } if (note.type !== 'search') { diff --git a/src/services/cloning.ts b/src/services/cloning.ts index 4e81b2666..1176ff37a 100644 --- a/src/services/cloning.ts +++ b/src/services/cloning.ts @@ -7,7 +7,7 @@ import BBranch from '../becca/entities/bbranch'; import becca from '../becca/becca'; import log from './log'; -interface CloneResponse { +export interface CloneResponse { success: boolean; message?: string; branchId?: string; @@ -53,7 +53,7 @@ function cloneNoteToParentNote(noteId: string, parentNoteId: string, prefix: str }; } -function cloneNoteToBranch(noteId: string, parentBranchId: string, prefix: string) { +function cloneNoteToBranch(noteId: string, parentBranchId: string, prefix?: string) { const parentBranch = becca.getBranch(parentBranchId); if (!parentBranch) { diff --git a/src/services/import/enex.ts b/src/services/import/enex.ts index e2ccaa78a..739b418c3 100644 --- a/src/services/import/enex.ts +++ b/src/services/import/enex.ts @@ -12,6 +12,7 @@ import sanitizeAttributeName from "../sanitize_attribute_name.js"; import TaskContext from "../task_context.js"; import BNote from "../../becca/entities/bnote.js"; import { File } from "./common"; +import { AttributeType } from "../../becca/entities/rows.js"; /** * date format is e.g. 20181121T193703Z or 2013-04-14T16:19:00.000Z (Mac evernote, see #3496) @@ -29,7 +30,7 @@ function parseDate(text: string) { } interface Attribute { - type: string; + type: AttributeType; name: string; value: string; } diff --git a/src/services/log.ts b/src/services/log.ts index 414dc27e1..9bd97a2a7 100644 --- a/src/services/log.ts +++ b/src/services/log.ts @@ -50,7 +50,7 @@ function checkDate(millisSinceMidnight: number) { return millisSinceMidnight; } -function log(str: string) { +function log(str: string | Error) { const bundleNoteId = cls.get("bundleNoteId"); if (bundleNoteId) { @@ -66,11 +66,11 @@ function log(str: string) { console.log(str); } -function info(message: string) { +function info(message: string | Error) { log(message); } -function error(message: string) { +function error(message: string | Error) { log(`ERROR: ${message}`); } diff --git a/src/services/search/services/search.ts b/src/services/search/services/search.ts index 5b289ff9d..18d70be34 100644 --- a/src/services/search/services/search.ts +++ b/src/services/search/services/search.ts @@ -18,7 +18,19 @@ import Expression from "../expressions/expression.js"; import sql from "../../sql.js"; import scriptService from "../../script.js"; -function searchFromNote(note: BNote) { +export interface SearchNoteResult { + searchResultNoteIds: string[]; + highlightedTokens: string[]; + error: string | null; +} + +export const EMPTY_RESULT: SearchNoteResult = { + searchResultNoteIds: [], + highlightedTokens: [], + error: null +}; + +function searchFromNote(note: BNote): SearchNoteResult { let searchResultNoteIds; let highlightedTokens: string[]; diff --git a/src/www.ts b/src/www.ts index c1ec2f0f3..7f0b14aa5 100644 --- a/src/www.ts +++ b/src/www.ts @@ -1,23 +1,4 @@ #!/usr/bin/env node - -// setup basic error handling even before requiring dependencies, since those can produce errors as well - -process.on('unhandledRejection', error => { - // this makes sure that stacktrace of failed promise is printed out - console.log(error); - - // but also try to log it into file - require('./services/log').info(error); -}); - -function exit() { - console.log("Caught interrupt/termination signal. Exiting."); - process.exit(0); -} - -process.on('SIGINT', exit); -process.on('SIGTERM', exit); - import app from "./app.js"; import sessionParser from "./routes/session_parser.js"; import fs from "fs"; @@ -32,6 +13,25 @@ import port from "./services/port.js"; import host from "./services/host.js"; import semver from "semver"; +// setup basic error handling even before requiring dependencies, since those can produce errors as well + +process.on('unhandledRejection', (error: Error) => { + // this makes sure that stacktrace of failed promise is printed out + console.log(error); + + // but also try to log it into file + log.info(error); +}); + +function exit() { + console.log("Caught interrupt/termination signal. Exiting."); + process.exit(0); +} + +process.on('SIGINT', exit); +process.on('SIGTERM', exit); + + if (!semver.satisfies(process.version, ">=10.5.0")) { console.error("Trilium only supports node.js 10.5 and later"); process.exit(1); From c5561530ec68582c83b7aa7dced08d95dcce39f9 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Thu, 18 Jul 2024 22:59:39 +0300 Subject: [PATCH 21/25] server-esm: Fix import to session-file-store --- package-lock.json | 21 +++++++++++++++++++++ package.json | 1 + src/becca/entities/bbranch.ts | 2 +- src/routes/session_parser.ts | 3 ++- 4 files changed, 25 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index fe6c25356..2ea73be6b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -110,6 +110,7 @@ "@types/sax": "^1.2.7", "@types/semver": "^7.5.8", "@types/serve-favicon": "^2.5.7", + "@types/session-file-store": "^1.2.5", "@types/stream-throttle": "^0.1.4", "@types/tmp": "^0.2.6", "@types/turndown": "^5.0.4", @@ -1708,6 +1709,16 @@ "@types/node": "*" } }, + "node_modules/@types/session-file-store": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/@types/session-file-store/-/session-file-store-1.2.5.tgz", + "integrity": "sha512-xjIyh40IznXLrvbAY/nmxu5cMcPcE3ZoDrSDvd02m6p8UjUgOtZAGI7Os5DDd6THuxClLWNhFo/awy1tYp64Bg==", + "dev": true, + "dependencies": { + "@types/express": "*", + "@types/express-session": "*" + } + }, "node_modules/@types/stream-throttle": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/@types/stream-throttle/-/stream-throttle-0.1.4.tgz", @@ -14734,6 +14745,16 @@ "@types/node": "*" } }, + "@types/session-file-store": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/@types/session-file-store/-/session-file-store-1.2.5.tgz", + "integrity": "sha512-xjIyh40IznXLrvbAY/nmxu5cMcPcE3ZoDrSDvd02m6p8UjUgOtZAGI7Os5DDd6THuxClLWNhFo/awy1tYp64Bg==", + "dev": true, + "requires": { + "@types/express": "*", + "@types/express-session": "*" + } + }, "@types/stream-throttle": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/@types/stream-throttle/-/stream-throttle-0.1.4.tgz", diff --git a/package.json b/package.json index 05299ace3..d26655876 100644 --- a/package.json +++ b/package.json @@ -132,6 +132,7 @@ "@types/sax": "^1.2.7", "@types/semver": "^7.5.8", "@types/serve-favicon": "^2.5.7", + "@types/session-file-store": "^1.2.5", "@types/stream-throttle": "^0.1.4", "@types/tmp": "^0.2.6", "@types/turndown": "^5.0.4", diff --git a/src/becca/entities/bbranch.ts b/src/becca/entities/bbranch.ts index 363fb86f2..b0222f115 100644 --- a/src/becca/entities/bbranch.ts +++ b/src/becca/entities/bbranch.ts @@ -8,6 +8,7 @@ import TaskContext from "../../services/task_context.js"; import cls from "../../services/cls.js"; import log from "../../services/log.js"; import { BranchRow } from './rows'; +import handlers from "../../services/handlers.js"; /** * Branch represents a relationship between a child note and its parent note. Trilium allows a note to have multiple @@ -157,7 +158,6 @@ class BBranch extends AbstractBeccaEntity { if (parentBranches.length === 1 && parentBranches[0] === this) { // needs to be run before branches and attributes are deleted and thus attached relations disappear - const handlers = require('../../services/handlers'); handlers.runAttachedRelations(note, 'runOnNoteDeletion', note); } } diff --git a/src/routes/session_parser.ts b/src/routes/session_parser.ts index b880a8915..ee9918152 100644 --- a/src/routes/session_parser.ts +++ b/src/routes/session_parser.ts @@ -1,7 +1,8 @@ import session from "express-session"; +import sessionFileStore from "session-file-store"; import sessionSecret from "../services/session_secret.js"; import dataDir from "../services/data_dir.js"; -const FileStore = require('session-file-store')(session); +const FileStore = sessionFileStore(session); const sessionParser = session({ secret: sessionSecret, From bf29b30004ffc3245e55cfdc556daf25a7d16f22 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Thu, 18 Jul 2024 23:06:08 +0300 Subject: [PATCH 22/25] server-esm: Fix some more service imports --- src/becca/entities/brevision.ts | 5 ++++- src/routes/api/image.ts | 6 +++--- src/routes/api/sync.ts | 3 ++- src/services/entity_changes.ts | 3 +-- src/services/export/zip.ts | 4 ++-- src/services/image.ts | 1 - src/services/notes.ts | 13 ++++++++----- src/services/request.ts | 7 +++---- src/services/sql_init.ts | 8 +++----- 9 files changed, 26 insertions(+), 24 deletions(-) diff --git a/src/becca/entities/brevision.ts b/src/becca/entities/brevision.ts index ae3b68c70..43c7e1a3e 100644 --- a/src/becca/entities/brevision.ts +++ b/src/becca/entities/brevision.ts @@ -8,6 +8,7 @@ import AbstractBeccaEntity from "./abstract_becca_entity.js"; import sql from "../../services/sql.js"; import BAttachment from "./battachment.js"; import { AttachmentRow, RevisionRow } from './rows'; +import eraseService from "../../services/erase.js"; interface ContentOpts { /** will also save this BRevision entity */ @@ -164,7 +165,9 @@ class BRevision extends AbstractBeccaEntity { * Revisions are not soft-deletable, they are immediately hard-deleted (erased). */ eraseRevision() { - require('../../services/erase.js').eraseRevisions([this.revisionId]); + if (this.revisionId) { + eraseService.eraseRevisions([this.revisionId]); + } } beforeSaving() { diff --git a/src/routes/api/image.ts b/src/routes/api/image.ts index 8484eb673..823ac87b6 100644 --- a/src/routes/api/image.ts +++ b/src/routes/api/image.ts @@ -2,12 +2,12 @@ import imageService from "../../services/image.js"; import becca from "../../becca/becca.js"; -const RESOURCE_DIR = require('../../services/resource_dir').RESOURCE_DIR; import fs from "fs"; import { Request, Response } from 'express'; import BNote from "../../becca/entities/bnote.js"; import BRevision from "../../becca/entities/brevision.js"; import { AppRequest } from '../route-interface'; +import resource_dir from "../../services/resource_dir.js"; function returnImageFromNote(req: Request, res: Response) { const image = becca.getNote(req.params.noteId); @@ -24,7 +24,7 @@ function returnImageFromRevision(req: Request, res: Response) { function returnImageInt(image: BNote | BRevision | null, res: Response) { if (!image) { res.set('Content-Type', 'image/png'); - return res.send(fs.readFileSync(`${RESOURCE_DIR}/db/image-deleted.png`)); + return res.send(fs.readFileSync(`${resource_dir.RESOURCE_DIR}/db/image-deleted.png`)); } else if (!["image", "canvas", "mermaid"].includes(image.type)) { return res.sendStatus(400); } @@ -68,7 +68,7 @@ function returnAttachedImage(req: Request, res: Response) { if (!attachment) { res.set('Content-Type', 'image/png'); - return res.send(fs.readFileSync(`${RESOURCE_DIR}/db/image-deleted.png`)); + return res.send(fs.readFileSync(`${resource_dir.RESOURCE_DIR}/db/image-deleted.png`)); } if (!["image"].includes(attachment.role)) { diff --git a/src/routes/api/sync.ts b/src/routes/api/sync.ts index 183c79878..646a514f4 100644 --- a/src/routes/api/sync.ts +++ b/src/routes/api/sync.ts @@ -14,6 +14,7 @@ import ws from "../../services/ws.js"; import { Request } from 'express'; import { EntityChange, EntityChangeRecord } from '../../services/entity_changes_interface'; import ValidationError from "../../errors/validation_error.js"; +import consistencyChecksService from "../../services/consistency_checks.js"; async function testSync() { try { @@ -206,7 +207,7 @@ function queueSector(req: Request) { } function checkEntityChanges() { - require('../../services/consistency_checks').runEntityChangesChecks(); + consistencyChecksService.runEntityChangesChecks(); } export default { diff --git a/src/services/entity_changes.ts b/src/services/entity_changes.ts index ece4fb1b2..06c380f38 100644 --- a/src/services/entity_changes.ts +++ b/src/services/entity_changes.ts @@ -8,6 +8,7 @@ import becca from "../becca/becca.js"; import blobService from "../services/blob.js"; import { EntityChange } from './entity_changes_interface'; import type { Blob } from "./blob-interface"; +import eventService from "./events.js"; let maxEntityChangeId = 0; @@ -57,8 +58,6 @@ function putNoteReorderingEntityChange(parentNoteId: string, componentId?: strin instanceId }); - const eventService = require('./events'); - 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/zip.ts b/src/services/export/zip.ts index 4838cb957..823029274 100644 --- a/src/services/export/zip.ts +++ b/src/services/export/zip.ts @@ -11,7 +11,6 @@ import protectedSessionService from "../protected_session.js"; import sanitize from "sanitize-filename"; import fs from "fs"; import becca from "../../becca/becca.js"; -const RESOURCE_DIR = require('../../services/resource_dir').RESOURCE_DIR; import archiver from "archiver"; import log from "../log.js"; import TaskContext from "../task_context.js"; @@ -21,6 +20,7 @@ import AttachmentMeta from "../meta/attachment_meta.js"; import AttributeMeta from "../meta/attribute_meta.js"; import BBranch from "../../becca/entities/bbranch.js"; import { Response } from 'express'; +import resource_dir from "../resource_dir.js"; async function exportToZip(taskContext: TaskContext, branch: BBranch, format: "html" | "markdown", res: Response | fs.WriteStream, setHeaders = true) { if (!['html', 'markdown'].includes(format)) { @@ -473,7 +473,7 @@ ${markdownContent}`; } function saveCss(rootMeta: NoteMeta, cssMeta: NoteMeta) { - const cssContent = fs.readFileSync(`${RESOURCE_DIR}/libraries/ckeditor/ckeditor-content.css`); + const cssContent = fs.readFileSync(`${resource_dir.RESOURCE_DIR}/libraries/ckeditor/ckeditor-content.css`); archive.append(cssContent, { name: cssMeta.dataFileName }); } diff --git a/src/services/image.ts b/src/services/image.ts index 85035e6fb..5bef79ac9 100644 --- a/src/services/image.ts +++ b/src/services/image.ts @@ -156,7 +156,6 @@ function saveImageToAttachment(noteId: string, uploadBuffer: Buffer, originalNam setTimeout(() => { sql.transactional(() => { const note = becca.getNoteOrThrow(noteId); - const noteService = require('../services/notes'); noteService.asyncPostProcessContent(note, note.getContent()); // to mark an unused attachment for deletion }); }, 5000); diff --git a/src/services/notes.ts b/src/services/notes.ts index feefab45a..20df9948a 100644 --- a/src/services/notes.ts +++ b/src/services/notes.ts @@ -26,6 +26,7 @@ import html2plaintext from "html2plaintext"; import { AttachmentRow, AttributeRow, BranchRow, NoteRow, NoteType } from '../becca/entities/rows'; import TaskContext from "./task_context.js"; import { NoteParams } from './note-interface'; +import imageService from "./image.js"; interface FoundLink { name: "imageLink" | "internalLink" | "includeNoteLink" | "relationMapLink", @@ -466,7 +467,7 @@ async function downloadImage(noteId: string, imageUrl: string) { const unescapedUrl = utils.unescapeHtml(imageUrl); try { - let imageBuffer; + let imageBuffer: Buffer; if (imageUrl.toLowerCase().startsWith("file://")) { imageBuffer = await new Promise((res, rej) => { @@ -487,10 +488,13 @@ async function downloadImage(noteId: string, imageUrl: string) { const parsedUrl = url.parse(unescapedUrl); const title = path.basename(parsedUrl.pathname || ""); - const imageService = require('../services/image'); const attachment = imageService.saveImageToAttachment(noteId, imageBuffer, title, true, true); - - imageUrlToAttachmentIdMapping[imageUrl] = attachment.attachmentId; + + if (attachment.attachmentId) { + imageUrlToAttachmentIdMapping[imageUrl] = attachment.attachmentId; + } else { + log.error(`Download of '${imageUrl}' due to no attachment ID.`); + } log.info(`Download of '${imageUrl}' succeeded and was saved as image attachment '${attachment.attachmentId}' of note '${noteId}'`); } @@ -520,7 +524,6 @@ function downloadImages(noteId: string, content: string) { const imageBase64 = url.substr(inlineImageMatch[0].length); const imageBuffer = Buffer.from(imageBase64, 'base64'); - const imageService = require('../services/image'); const attachment = imageService.saveImageToAttachment(noteId, imageBuffer, "inline image", true, true); const encodedTitle = encodeURIComponent(attachment.title); diff --git a/src/services/request.ts b/src/services/request.ts index 56aea5b1e..fe057024c 100644 --- a/src/services/request.ts +++ b/src/services/request.ts @@ -137,7 +137,7 @@ function exec(opts: ExecOpts): Promise { }); } -function getImage(imageUrl: string) { +function getImage(imageUrl: string): Promise { const proxyConf = syncOptions.getSyncProxy(); const opts: ClientOpts = { method: 'GET', @@ -149,7 +149,7 @@ function getImage(imageUrl: string) { const proxyAgent = getProxyAgent(opts); const parsedTargetUrl = url.parse(opts.url); - return new Promise((resolve, reject) => { + return new Promise((resolve, reject) => { try { const request = client.request({ method: opts.method, @@ -181,8 +181,7 @@ function getImage(imageUrl: string) { }); request.end(undefined); - } - catch (e: any) { + } catch (e: any) { reject(generateError(opts, e.message)); } }); diff --git a/src/services/sql_init.ts b/src/services/sql_init.ts index 1c66723a0..fffccb13a 100644 --- a/src/services/sql_init.ts +++ b/src/services/sql_init.ts @@ -11,6 +11,9 @@ import migrationService from "./migration.js"; import cls from "./cls.js"; import config from "./config.js"; import { OptionRow } from '../becca/entities/rows'; +import optionsInitService from "./options_init.js"; +import BNote from "../becca/entities/bnote.js"; +import BBranch from "../becca/entities/bbranch.js"; const dbReady = utils.deferred(); @@ -63,9 +66,6 @@ async function createInitialDatabase() { require('../becca/becca_loader').load(); - const BNote = require('../becca/entities/bnote'); - const BBranch = require('../becca/entities/bbranch'); - log.info("Creating root note ..."); rootNote = new BNote({ @@ -84,8 +84,6 @@ async function createInitialDatabase() { notePosition: 10 }).save(); - const optionsInitService = require('./options_init'); - optionsInitService.initDocumentOptions(); optionsInitService.initNotSyncedOptions(true, {}); optionsInitService.initStartupOptions(); From 4f018c8ceb7306ecbcb098a3dbbc3ba082af72c4 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Thu, 18 Jul 2024 23:15:01 +0300 Subject: [PATCH 23/25] server-esm: Fix one more service import --- src/services/sql_init.ts | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/services/sql_init.ts b/src/services/sql_init.ts index fffccb13a..2c10d97ab 100644 --- a/src/services/sql_init.ts +++ b/src/services/sql_init.ts @@ -14,6 +14,7 @@ import { OptionRow } from '../becca/entities/rows'; import optionsInitService from "./options_init.js"; import BNote from "../becca/entities/bnote.js"; import BBranch from "../becca/entities/bbranch.js"; +import zipImportService from "./import/zip.js"; const dbReady = utils.deferred(); @@ -57,7 +58,7 @@ async function createInitialDatabase() { const schema = fs.readFileSync(`${resourceDir.DB_INIT_DIR}/schema.sql`, "utf-8"); const demoFile = fs.readFileSync(`${resourceDir.DB_INIT_DIR}/demo.zip`); - let rootNote; + let rootNote!: BNote; sql.transactional(() => { log.info("Creating database schema ..."); @@ -94,7 +95,6 @@ async function createInitialDatabase() { const dummyTaskContext = new TaskContext("no-progress-reporting", 'import', false); - const zipImportService = require('./import/zip'); await zipImportService.importZip(dummyTaskContext, demoFile, rootNote); sql.transactional(() => { @@ -104,7 +104,6 @@ async function createInitialDatabase() { const startNoteId = sql.getValue("SELECT noteId FROM branches WHERE parentNoteId = 'root' AND isDeleted = 0 ORDER BY notePosition"); - const optionService = require('./options'); optionService.setOption('openNoteContexts', JSON.stringify([ { notePath: startNoteId, From 7f2caa00cbcf5c5b77c03ebedb1a959ba8644997 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Tue, 23 Jul 2024 19:07:39 +0300 Subject: [PATCH 24/25] test: Remove commented-out code --- spec/search/search.spec.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/spec/search/search.spec.ts b/spec/search/search.spec.ts index ac9679971..a058ae895 100644 --- a/spec/search/search.spec.ts +++ b/spec/search/search.spec.ts @@ -4,7 +4,6 @@ import BBranch from "../../src/becca/entities/bbranch.js"; import SearchContext from "../../src/services/search/search_context.js"; import dateUtils from "../../src/services/date_utils.js"; import becca from "../../src/becca/becca.js"; -// const { NoteBuilder, findNoteByTitle, note } = require('./becca_mocking'); import becca_mocking from "./becca_mocking.js"; describe('Search', () => { From 3aa38b998aef7ab3d94ca9cf127c6c0630ba1985 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Tue, 23 Jul 2024 19:14:33 +0300 Subject: [PATCH 25/25] server: Address requested changes --- src/routes/api/image.ts | 6 +++--- src/services/export/zip.ts | 4 ++-- src/services/resource_dir.ts | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/routes/api/image.ts b/src/routes/api/image.ts index 6e76326d3..890b4a88a 100644 --- a/src/routes/api/image.ts +++ b/src/routes/api/image.ts @@ -7,7 +7,7 @@ import { Request, Response } from 'express'; import BNote from "../../becca/entities/bnote.js"; import BRevision from "../../becca/entities/brevision.js"; import { AppRequest } from '../route-interface'; -import resource_dir from "../../services/resource_dir.js"; +import { RESOURCE_DIR } from "../../services/resource_dir.js"; function returnImageFromNote(req: Request, res: Response) { const image = becca.getNote(req.params.noteId); @@ -24,7 +24,7 @@ function returnImageFromRevision(req: Request, res: Response) { function returnImageInt(image: BNote | BRevision | null, res: Response) { if (!image) { res.set('Content-Type', 'image/png'); - return res.send(fs.readFileSync(`${resource_dir.RESOURCE_DIR}/db/image-deleted.png`)); + return res.send(fs.readFileSync(`${RESOURCE_DIR}/db/image-deleted.png`)); } else if (!["image", "canvas", "mermaid"].includes(image.type)) { return res.sendStatus(400); } @@ -66,7 +66,7 @@ function returnAttachedImage(req: Request, res: Response) { if (!attachment) { res.set('Content-Type', 'image/png'); - return res.send(fs.readFileSync(`${resource_dir.RESOURCE_DIR}/db/image-deleted.png`)); + return res.send(fs.readFileSync(`${RESOURCE_DIR}/db/image-deleted.png`)); } if (!["image"].includes(attachment.role)) { diff --git a/src/services/export/zip.ts b/src/services/export/zip.ts index 823029274..d198b0c92 100644 --- a/src/services/export/zip.ts +++ b/src/services/export/zip.ts @@ -20,7 +20,7 @@ import AttachmentMeta from "../meta/attachment_meta.js"; import AttributeMeta from "../meta/attribute_meta.js"; import BBranch from "../../becca/entities/bbranch.js"; import { Response } from 'express'; -import resource_dir from "../resource_dir.js"; +import { RESOURCE_DIR } from "../resource_dir.js"; async function exportToZip(taskContext: TaskContext, branch: BBranch, format: "html" | "markdown", res: Response | fs.WriteStream, setHeaders = true) { if (!['html', 'markdown'].includes(format)) { @@ -473,7 +473,7 @@ ${markdownContent}`; } function saveCss(rootMeta: NoteMeta, cssMeta: NoteMeta) { - const cssContent = fs.readFileSync(`${resource_dir.RESOURCE_DIR}/libraries/ckeditor/ckeditor-content.css`); + const cssContent = fs.readFileSync(`${RESOURCE_DIR}/libraries/ckeditor/ckeditor-content.css`); archive.append(cssContent, { name: cssMeta.dataFileName }); } diff --git a/src/services/resource_dir.ts b/src/services/resource_dir.ts index 14f286fd7..7e194dc67 100644 --- a/src/services/resource_dir.ts +++ b/src/services/resource_dir.ts @@ -2,7 +2,7 @@ import log from "./log.js"; import path from "path"; import fs from "fs"; -const RESOURCE_DIR = path.resolve(__dirname, "../.."); +export const RESOURCE_DIR = path.resolve(__dirname, "../.."); // where the "trilium" executable is const ELECTRON_APP_ROOT_DIR = path.resolve(RESOURCE_DIR, "../..");