diff --git a/electron.ts b/electron.ts index 5c112d56d..b57b94901 100644 --- a/electron.ts +++ b/electron.ts @@ -9,7 +9,7 @@ import windowService from "./src/services/window.js"; import tray from "./src/services/tray.js"; // Prevent Trilium starting twice on first install and on uninstall for the Windows installer. -if (await import('electron-squirrel-startup')) { +if ((await import('electron-squirrel-startup')).default) { process.exit(0); } diff --git a/spec-es6/attribute_parser.spec.ts b/spec-es6/attribute_parser.spec.ts index ad96e7644..60f510d8d 100644 --- a/spec-es6/attribute_parser.spec.ts +++ b/spec-es6/attribute_parser.spec.ts @@ -1,6 +1,6 @@ import * as attributeParser from '../src/public/app/services/attribute_parser.js'; -import {describe, it, expect, execute} from './mini_test'; +import {describe, it, expect, execute} from './mini_test.js'; describe("Lexing", () => { it("simple label", () => { diff --git a/spec/etapi/notes.ts b/spec/etapi/notes.ts index 60a0ebcd7..cbfd4de7e 100644 --- a/spec/etapi/notes.ts +++ b/spec/etapi/notes.ts @@ -1,5 +1,5 @@ import crypto from "crypto"; -import etapi from "../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 c31631ce5..eaae2741f 100644 --- a/spec/search/becca_mocking.ts +++ b/spec/search/becca_mocking.ts @@ -4,7 +4,7 @@ import BAttribute from "../../src/becca/entities/battribute.js"; import becca from "../../src/becca/becca.js"; import randtoken from "rand-token"; import SearchResult from "../../src/services/search/search_result.js"; -import { NoteType } from "../../src/becca/entities/rows"; +import { NoteType } from "../../src/becca/entities/rows.js"; randtoken.generator({ source: "crypto" }); function findNoteByTitle( diff --git a/spec/search/parens.spec.ts b/spec/search/parens.spec.ts index bf1482356..3bc900b8b 100644 --- a/spec/search/parens.spec.ts +++ b/spec/search/parens.spec.ts @@ -1,5 +1,5 @@ -import handleParens from "../../src/services/search/services/handle_parens"; -import { TokenStructure } from "../../src/services/search/services/types"; +import handleParens from "../../src/services/search/services/handle_parens.js"; +import { TokenStructure } from "../../src/services/search/services/types.js"; describe("Parens handler", () => { it("handles parens", () => { diff --git a/src/anonymize.ts b/src/anonymize.ts index 15fb4dde0..8ad803c63 100644 --- a/src/anonymize.ts +++ b/src/anonymize.ts @@ -1,6 +1,6 @@ import anonymizationService from "./services/anonymization.js"; import sqlInit from "./services/sql_init.js"; -await import("./becca/entity_constructor"); +await import("./becca/entity_constructor.js"); sqlInit.dbReady.then(async () => { try { diff --git a/src/app.ts b/src/app.ts index 0260d30e5..574a94eb6 100644 --- a/src/app.ts +++ b/src/app.ts @@ -15,8 +15,8 @@ import error_handlers from "./routes/error_handlers.js"; import { startScheduledCleanup } from "./services/erase.js"; import sql_init from "./services/sql_init.js"; -await import('./services/handlers'); -await import('./becca/becca_loader'); +await import('./services/handlers.js'); +await import('./becca/becca_loader.js'); const app = express(); @@ -56,20 +56,20 @@ custom.register(app); error_handlers.register(app); // triggers sync timer -await import("./services/sync"); +await import("./services/sync.js"); // triggers backup timer -await import('./services/backup'); +await import('./services/backup.js'); // trigger consistency checks timer -await import('./services/consistency_checks'); +await import('./services/consistency_checks.js'); -await import('./services/scheduler'); +await import('./services/scheduler.js'); startScheduledCleanup(); if (utils.isElectron()) { - (await import('@electron/remote/main')).initialize(); + (await import('@electron/remote/main/index.js')).initialize(); } export default app; diff --git a/src/becca/becca-interface.ts b/src/becca/becca-interface.ts index 562ec85db..c5e9f6925 100644 --- a/src/becca/becca-interface.ts +++ b/src/becca/becca-interface.ts @@ -8,7 +8,7 @@ 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 { AttachmentRow, BlobRow, RevisionRow } from './entities/rows.js'; import BBlob from "./entities/bblob.js"; import BRecentNote from "./entities/brecent_note.js"; import AbstractBeccaEntity from "./entities/abstract_becca_entity.js"; @@ -199,7 +199,7 @@ export default class Becca { return null; } - const row = sql.getRow("SELECT *, LENGTH(content) AS contentLength FROM blobs WHERE blobId = ?", [entity.blobId]); + const row = sql.getRow("SELECT *, LENGTH(content) AS contentLength FROM blobs WHERE blobId = ?", [entity.blobId]); return row ? new BBlob(row) : null; } diff --git a/src/becca/becca.ts b/src/becca/becca.ts index 07f8cc0dc..d4270fe09 100644 --- a/src/becca/becca.ts +++ b/src/becca/becca.ts @@ -1,6 +1,6 @@ "use strict"; -import Becca from "./becca-interface"; +import Becca from "./becca-interface.js"; const becca = new Becca(); diff --git a/src/becca/becca_loader.ts b/src/becca/becca_loader.ts index 1bfab31da..041bdccbd 100644 --- a/src/becca/becca_loader.ts +++ b/src/becca/becca_loader.ts @@ -12,7 +12,7 @@ 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 { AttributeRow, BranchRow, EtapiTokenRow, NoteRow, OptionRow } from './entities/rows.js'; import AbstractBeccaEntity from "./entities/abstract_becca_entity.js"; import options_init from "../services/options_init.js"; import ws from "../services/ws.js"; diff --git a/src/becca/entities/abstract_becca_entity.ts b/src/becca/entities/abstract_becca_entity.ts index 1259217df..0016b2a07 100644 --- a/src/becca/entities/abstract_becca_entity.ts +++ b/src/becca/entities/abstract_becca_entity.ts @@ -9,7 +9,7 @@ import cls from "../../services/cls.js"; import log from "../../services/log.js"; import protectedSessionService from "../../services/protected_session.js"; import blobService from "../../services/blob.js"; -import Becca, { ConstructorData } from '../becca-interface'; +import Becca, { ConstructorData } from '../becca-interface.js'; import becca from "../becca.js"; interface ContentOpts { diff --git a/src/becca/entities/battachment.ts b/src/becca/entities/battachment.ts index bef20acea..ab90d345f 100644 --- a/src/becca/entities/battachment.ts +++ b/src/becca/entities/battachment.ts @@ -6,7 +6,7 @@ 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 { AttachmentRow } from './rows.js'; import BNote from "./bnote.js"; import BBranch from "./bbranch.js"; import noteService from "../../services/notes.js"; @@ -44,9 +44,6 @@ class BAttachment extends AbstractBeccaEntity { title!: string; type?: keyof typeof attachmentRoleToNoteTypeMapping; position?: number; - blobId?: string; - isProtected?: boolean; - dateModified?: string; utcDateScheduledForErasureSince?: string | null; /** optionally added to the entity */ contentLength?: number; diff --git a/src/becca/entities/battribute.ts b/src/becca/entities/battribute.ts index c0ba201bc..97df7b056 100644 --- a/src/becca/entities/battribute.ts +++ b/src/becca/entities/battribute.ts @@ -5,7 +5,7 @@ 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'; +import { AttributeRow, AttributeType } from './rows.js'; interface SavingOpts { skipValidation?: boolean; diff --git a/src/becca/entities/bblob.ts b/src/becca/entities/bblob.ts index c02d1f1b7..7ce94eb2e 100644 --- a/src/becca/entities/bblob.ts +++ b/src/becca/entities/bblob.ts @@ -1,5 +1,5 @@ import AbstractBeccaEntity from "./abstract_becca_entity.js"; -import { BlobRow } from "./rows"; +import { BlobRow } from "./rows.js"; // TODO: Why this does not extend the abstract becca? class BBlob extends AbstractBeccaEntity { @@ -7,11 +7,8 @@ class BBlob extends AbstractBeccaEntity { static get primaryKeyName() { return "blobId"; } static get hashedProperties() { return ["blobId", "content"]; } - blobId!: string; content!: string | Buffer; contentLength!: number; - dateModified!: string; - utcDateModified!: string; constructor(row: BlobRow) { super(); diff --git a/src/becca/entities/bbranch.ts b/src/becca/entities/bbranch.ts index b0222f115..daa71f917 100644 --- a/src/becca/entities/bbranch.ts +++ b/src/becca/entities/bbranch.ts @@ -7,7 +7,7 @@ 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'; +import { BranchRow } from './rows.js'; import handlers from "../../services/handlers.js"; /** @@ -29,7 +29,6 @@ class BBranch extends AbstractBeccaEntity { prefix!: string | null; notePosition!: number; isExpanded!: boolean; - utcDateModified?: string; constructor(row?: BranchRow) { super(); diff --git a/src/becca/entities/betapi_token.ts b/src/becca/entities/betapi_token.ts index dd3f9f0c9..bfd4383e3 100644 --- a/src/becca/entities/betapi_token.ts +++ b/src/becca/entities/betapi_token.ts @@ -1,6 +1,6 @@ "use strict"; -import { EtapiTokenRow } from "./rows"; +import { EtapiTokenRow } from "./rows.js"; import dateUtils from "../../services/date_utils.js"; import AbstractBeccaEntity from "./abstract_becca_entity.js"; diff --git a/src/becca/entities/bnote.ts b/src/becca/entities/bnote.ts index b6e05fb10..3ae4d60b5 100644 --- a/src/becca/entities/bnote.ts +++ b/src/becca/entities/bnote.ts @@ -10,12 +10,12 @@ import BRevision from "./brevision.js"; import BAttachment from "./battachment.js"; import TaskContext from "../../services/task_context.js"; import dayjs from "dayjs"; -import utc from "dayjs/plugin/utc"; +import utc from "dayjs/plugin/utc.js"; import eventService from "../../services/events.js"; -import { AttachmentRow, AttributeType, NoteRow, NoteType, RevisionRow } from './rows'; +import { AttachmentRow, AttributeType, NoteRow, NoteType, RevisionRow } from './rows.js'; import BBranch from "./bbranch.js"; import BAttribute from "./battribute.js"; -import { NotePojo } from '../becca-interface'; +import { NotePojo } from '../becca-interface.js'; import searchService from "../../services/search/services/search.js"; import cloningService, { CloneResponse } from "../../services/cloning.js"; import noteService from "../../services/notes.js"; diff --git a/src/becca/entities/boption.ts b/src/becca/entities/boption.ts index 12c7ceff8..4ae5ba7a9 100644 --- a/src/becca/entities/boption.ts +++ b/src/becca/entities/boption.ts @@ -2,7 +2,7 @@ import dateUtils from "../../services/date_utils.js"; import AbstractBeccaEntity from "./abstract_becca_entity.js"; -import { OptionRow } from './rows'; +import { OptionRow } from './rows.js'; /** * Option represents a name-value pair, either directly configurable by the user or some system property. @@ -14,7 +14,6 @@ class BOption extends AbstractBeccaEntity { name!: string; value!: string; - isSynced!: boolean; constructor(row?: OptionRow) { super(); diff --git a/src/becca/entities/brecent_note.ts b/src/becca/entities/brecent_note.ts index 9ed77bc44..f9f31a98f 100644 --- a/src/becca/entities/brecent_note.ts +++ b/src/becca/entities/brecent_note.ts @@ -1,6 +1,6 @@ "use strict"; -import { RecentNoteRow } from "./rows"; +import { RecentNoteRow } from "./rows.js"; import dateUtils from "../../services/date_utils.js"; import AbstractBeccaEntity from "./abstract_becca_entity.js"; @@ -15,7 +15,6 @@ class BRecentNote extends AbstractBeccaEntity { noteId!: string; notePath!: string; - utcDateCreated!: string; constructor(row: RecentNoteRow) { super(); diff --git a/src/becca/entities/brevision.ts b/src/becca/entities/brevision.ts index 43c7e1a3e..7448416ab 100644 --- a/src/becca/entities/brevision.ts +++ b/src/becca/entities/brevision.ts @@ -7,7 +7,7 @@ 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'; +import { AttachmentRow, RevisionRow } from './rows.js'; import eraseService from "../../services/erase.js"; interface ContentOpts { @@ -33,13 +33,9 @@ class BRevision extends AbstractBeccaEntity { noteId!: string; type!: string; mime!: string; - isProtected!: boolean; title!: string; - blobId?: string; dateLastEdited?: string; - dateCreated!: string; utcDateLastEdited?: string; - utcDateCreated!: string; contentLength?: number; content?: string | Buffer; diff --git a/src/becca/entity_constructor.ts b/src/becca/entity_constructor.ts index eb1b052a6..49476961c 100644 --- a/src/becca/entity_constructor.ts +++ b/src/becca/entity_constructor.ts @@ -1,4 +1,4 @@ -import { ConstructorData } from './becca-interface'; +import { ConstructorData } from './becca-interface.js'; import AbstractBeccaEntity from "./entities/abstract_becca_entity.js"; import BAttachment from "./entities/battachment.js"; import BAttribute from "./entities/battribute.js"; diff --git a/src/etapi/attachments.ts b/src/etapi/attachments.ts index 280672b01..949a6984d 100644 --- a/src/etapi/attachments.ts +++ b/src/etapi/attachments.ts @@ -4,8 +4,8 @@ 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'; +import { AttachmentRow } from '../becca/entities/rows.js'; +import { ValidatorMap } from './etapi-interface.js'; function register(router: Router) { const ALLOWED_PROPERTIES_FOR_CREATE_ATTACHMENT: ValidatorMap = { diff --git a/src/etapi/attributes.ts b/src/etapi/attributes.ts index 9ca4918dd..4d749744b 100644 --- a/src/etapi/attributes.ts +++ b/src/etapi/attributes.ts @@ -4,8 +4,8 @@ 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'; +import { AttributeRow } from '../becca/entities/rows.js'; +import { ValidatorMap } from './etapi-interface.js'; function register(router: Router) { eu.route(router, 'get', '/etapi/attributes/:attributeId', (req, res, next) => { diff --git a/src/etapi/branches.ts b/src/etapi/branches.ts index 66dea473f..8a6b61e2f 100644 --- a/src/etapi/branches.ts +++ b/src/etapi/branches.ts @@ -6,7 +6,7 @@ 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"; +import { BranchRow } from "../becca/entities/rows.js"; function register(router: Router) { eu.route(router, 'get', '/etapi/branches/:branchId', (req, res, next) => { diff --git a/src/etapi/etapi_utils.ts b/src/etapi/etapi_utils.ts index f869fd7db..3ced5cc61 100644 --- a/src/etapi/etapi_utils.ts +++ b/src/etapi/etapi_utils.ts @@ -5,8 +5,8 @@ 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'; +import { AppRequest, AppRequestHandler } from '../routes/route-interface.js'; +import { ValidatorMap } from './etapi-interface.js'; const GENERIC_CODE = "GENERIC"; type HttpMethod = "all" | "get" | "post" | "put" | "delete" | "patch" | "options" | "head"; diff --git a/src/etapi/notes.ts b/src/etapi/notes.ts index 8bb644ab1..846e77dc2 100644 --- a/src/etapi/notes.ts +++ b/src/etapi/notes.ts @@ -10,12 +10,11 @@ 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 { AppRequest } from '../routes/route-interface.js'; import { ParsedQs } from 'qs'; -import { NoteParams } from '../services/note-interface'; -import BNote from "../becca/entities/bnote.js"; -import { SearchParams } from '../services/search/services/types'; -import { ValidatorMap } from './etapi-interface'; +import { NoteParams } from '../services/note-interface.js'; +import { SearchParams } from '../services/search/services/types.js'; +import { ValidatorMap } from './etapi-interface.js'; function register(router: Router) { eu.route(router, 'get', '/etapi/notes', (req, res, next) => { diff --git a/src/routes/api/files.ts b/src/routes/api/files.ts index 4adc28f42..e05765ddb 100644 --- a/src/routes/api/files.ts +++ b/src/routes/api/files.ts @@ -14,7 +14,7 @@ import ValidationError from "../../errors/validation_error.js"; import { Request, Response } from 'express'; import BNote from "../../becca/entities/bnote.js"; import BAttachment from "../../becca/entities/battachment.js"; -import { AppRequest } from '../route-interface'; +import { AppRequest } from '../route-interface.js'; function updateFile(req: AppRequest) { const note = becca.getNoteOrThrow(req.params.noteId); diff --git a/src/routes/api/image.ts b/src/routes/api/image.ts index 890b4a88a..14167de70 100644 --- a/src/routes/api/image.ts +++ b/src/routes/api/image.ts @@ -6,7 +6,7 @@ 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 { AppRequest } from '../route-interface.js'; import { RESOURCE_DIR } from "../../services/resource_dir.js"; function returnImageFromNote(req: Request, res: Response) { diff --git a/src/routes/api/import.ts b/src/routes/api/import.ts index 07bd2169e..1ea65d87b 100644 --- a/src/routes/api/import.ts +++ b/src/routes/api/import.ts @@ -13,7 +13,7 @@ import TaskContext from "../../services/task_context.js"; import ValidationError from "../../errors/validation_error.js"; import { Request } from 'express'; import BNote from "../../becca/entities/bnote.js"; -import { AppRequest } from '../route-interface'; +import { AppRequest } from '../route-interface.js'; async function importNotesToBranch(req: AppRequest) { const { parentNoteId } = req.params; diff --git a/src/routes/api/login.ts b/src/routes/api/login.ts index 0a3879380..f5b813d2b 100644 --- a/src/routes/api/login.ts +++ b/src/routes/api/login.ts @@ -13,7 +13,7 @@ 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'; +import { AppRequest } from '../route-interface.js'; function loginSync(req: AppRequest) { if (!sqlInit.schemaExists()) { diff --git a/src/routes/api/notes.ts b/src/routes/api/notes.ts index 0496886a2..c47aad91c 100644 --- a/src/routes/api/notes.ts +++ b/src/routes/api/notes.ts @@ -12,7 +12,7 @@ import ValidationError from "../../errors/validation_error.js"; import blobService from "../../services/blob.js"; import { Request } from 'express'; import BBranch from "../../becca/entities/bbranch.js"; -import { AttributeRow } from '../../becca/entities/rows'; +import { AttributeRow } from '../../becca/entities/rows.js'; function getNote(req: Request) { return becca.getNoteOrThrow(req.params.noteId); diff --git a/src/routes/api/recent_changes.ts b/src/routes/api/recent_changes.ts index 7962c8026..788ae17e0 100644 --- a/src/routes/api/recent_changes.ts +++ b/src/routes/api/recent_changes.ts @@ -5,7 +5,7 @@ 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'; +import { RevisionRow } from '../../becca/entities/rows.js'; interface RecentChangeRow { noteId: string; diff --git a/src/routes/api/revisions.ts b/src/routes/api/revisions.ts index b64ce1bdc..7e98318d5 100644 --- a/src/routes/api/revisions.ts +++ b/src/routes/api/revisions.ts @@ -12,7 +12,7 @@ import eraseService from "../../services/erase.js"; import { Request, Response } from 'express'; import BRevision from "../../becca/entities/brevision.js"; import BNote from "../../becca/entities/bnote.js"; -import { NotePojo } from '../../becca/becca-interface'; +import { NotePojo } from '../../becca/becca-interface.js'; interface NotePath { noteId: string; @@ -64,6 +64,10 @@ function getRevision(req: Request) { function getRevisionFilename(revision: BRevision) { let filename = utils.formatDownloadTitle(revision.title, revision.type, revision.mime); + if (!revision.dateCreated) { + throw new Error("Missing creation date for revision."); + } + const extension = path.extname(filename); const date = revision.dateCreated .substr(0, 19) diff --git a/src/routes/api/sender.ts b/src/routes/api/sender.ts index fd460a0d2..e19086f56 100644 --- a/src/routes/api/sender.ts +++ b/src/routes/api/sender.ts @@ -6,7 +6,7 @@ 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'; +import { AppRequest } from '../route-interface.js'; function uploadImage(req: AppRequest) { const file = req.file; diff --git a/src/routes/api/sync.ts b/src/routes/api/sync.ts index 646a514f4..428a06c94 100644 --- a/src/routes/api/sync.ts +++ b/src/routes/api/sync.ts @@ -12,7 +12,7 @@ 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 { EntityChange, EntityChangeRecord } from '../../services/entity_changes_interface.js'; import ValidationError from "../../errors/validation_error.js"; import consistencyChecksService from "../../services/consistency_checks.js"; diff --git a/src/routes/index.ts b/src/routes/index.ts index 56a445a20..a9403ab26 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"; +import packageJson from "../../package.json" with { type: "json" }; import assetPath from "../services/asset_path.js"; import appPath from "../services/app_path.js"; import { Request, Response } from 'express'; diff --git a/src/routes/login.ts b/src/routes/login.ts index 48e721f70..aae82e042 100644 --- a/src/routes/login.ts +++ b/src/routes/login.ts @@ -9,7 +9,7 @@ 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'; +import { AppRequest } from './route-interface.js'; function loginPage(req: Request, res: Response) { res.render('login', { diff --git a/src/routes/routes.ts b/src/routes/routes.ts index 578df6cfe..5a3e181c5 100644 --- a/src/routes/routes.ts +++ b/src/routes/routes.ts @@ -70,7 +70,7 @@ 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'; +import { AppRequest, AppRequestHandler } from './route-interface.js'; const csrfMiddleware = csurf({ cookie: { diff --git a/src/routes/setup.ts b/src/routes/setup.ts index f9fab6b34..34d886aec 100644 --- a/src/routes/setup.ts +++ b/src/routes/setup.ts @@ -35,7 +35,7 @@ function setupPage(req: Request, res: Response) { } async function handleElectronRedirect() { - const windowService = (await import("../services/window")).default; + const windowService = (await import("../services/window.js")).default; const { app } = await import("electron"); windowService.createMainWindow(app); windowService.closeSetupWindow(); diff --git a/src/services/api-interface.ts b/src/services/api-interface.ts index 30c248693..a474b09d5 100644 --- a/src/services/api-interface.ts +++ b/src/services/api-interface.ts @@ -1,4 +1,4 @@ -import { OptionRow } from "../becca/entities/rows"; +import { OptionRow } from "../becca/entities/rows.js"; /** * Response for /api/setup/status. diff --git a/src/services/app_info.ts b/src/services/app_info.ts index 359a40355..0f1ceba1f 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"; +import packageJson from "../../package.json" with { type: "json" }; import dataDir from "./data_dir.js"; const APP_DB_VERSION = 228; diff --git a/src/services/attribute_formatter.ts b/src/services/attribute_formatter.ts index cdc642878..31112be36 100644 --- a/src/services/attribute_formatter.ts +++ b/src/services/attribute_formatter.ts @@ -1,6 +1,6 @@ "use strict"; -import { AttributeRow } from "../becca/entities/rows"; +import { AttributeRow } from "../becca/entities/rows.js"; function formatAttrForSearch(attr: AttributeRow, searchWithValue: boolean) { let searchStr = ''; diff --git a/src/services/attributes.ts b/src/services/attributes.ts index 960482c4c..8f17249e2 100644 --- a/src/services/attributes.ts +++ b/src/services/attributes.ts @@ -7,7 +7,7 @@ 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'; +import { AttributeRow } from '../becca/entities/rows.js'; const ATTRIBUTE_TYPES = ['label', 'relation']; diff --git a/src/services/auth.ts b/src/services/auth.ts index 68864a860..f19976616 100644 --- a/src/services/auth.ts +++ b/src/services/auth.ts @@ -8,7 +8,7 @@ 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'; +import { AppRequest } from '../routes/route-interface.js'; const noAuthentication = config.General && config.General.noAuthentication === true; diff --git a/src/services/backend_script_api.ts b/src/services/backend_script_api.ts index 6d31a31b0..5180e4739 100644 --- a/src/services/backend_script_api.ts +++ b/src/services/backend_script_api.ts @@ -30,10 +30,10 @@ 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'; -import { ApiParams } from './backend_script_api_interface'; +import { AttributeRow } from '../becca/entities/rows.js'; +import Becca from '../becca/becca-interface.js'; +import { NoteParams } from './note-interface.js'; +import { ApiParams } from './backend_script_api_interface.js'; /** diff --git a/src/services/blob.ts b/src/services/blob.ts index 3226b88af..03505075a 100644 --- a/src/services/blob.ts +++ b/src/services/blob.ts @@ -2,7 +2,7 @@ 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"; +import type { Blob } from "./blob-interface.js"; function getBlobPojo(entityName: string, entityId: string, opts?: { preview: boolean }) { // TODO: Unused opts. diff --git a/src/services/cloning.ts b/src/services/cloning.ts index 1176ff37a..6f35e671f 100644 --- a/src/services/cloning.ts +++ b/src/services/cloning.ts @@ -1,11 +1,11 @@ "use strict"; -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'; +import sql from './sql.js'; +import eventChangesService from './entity_changes.js'; +import treeService from './tree.js'; +import BBranch from '../becca/entities/bbranch.js'; +import becca from '../becca/becca.js'; +import log from './log.js'; export interface CloneResponse { success: boolean; diff --git a/src/services/cls.ts b/src/services/cls.ts index e40038640..dbc527f4d 100644 --- a/src/services/cls.ts +++ b/src/services/cls.ts @@ -1,5 +1,5 @@ import clsHooked from "cls-hooked"; -import { EntityChange } from './entity_changes_interface'; +import { EntityChange } from './entity_changes_interface.js'; const namespace = clsHooked.createNamespace("trilium"); type Callback = (...args: any[]) => any; diff --git a/src/services/consistency_checks.ts b/src/services/consistency_checks.ts index a36b4490d..b2bb50a6a 100644 --- a/src/services/consistency_checks.ts +++ b/src/services/consistency_checks.ts @@ -14,8 +14,8 @@ 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'; +import { BranchRow } from '../becca/entities/rows.js'; +import { EntityChange } from './entity_changes_interface.js'; import becca_loader from "../becca/becca_loader.js"; const noteTypes = noteTypesService.getNoteTypeNames(); diff --git a/src/services/entity_changes.ts b/src/services/entity_changes.ts index 06c380f38..8937b49cd 100644 --- a/src/services/entity_changes.ts +++ b/src/services/entity_changes.ts @@ -6,8 +6,8 @@ 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"; +import { EntityChange } from './entity_changes_interface.js'; +import type { Blob } from "./blob-interface.js"; import eventService from "./events.js"; let maxEntityChangeId = 0; diff --git a/src/services/erase.ts b/src/services/erase.ts index 1d7dcd738..f02595de8 100644 --- a/src/services/erase.ts +++ b/src/services/erase.ts @@ -1,12 +1,11 @@ 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"; +import { EntityChange } from "./entity_changes_interface.js"; function eraseNotes(noteIdsToErase: string[]) { if (noteIdsToErase.length === 0) { diff --git a/src/services/events.ts b/src/services/events.ts index 8b64d5af0..1a7ed9eb8 100644 --- a/src/services/events.ts +++ b/src/services/events.ts @@ -1,4 +1,4 @@ -import log from "./log"; +import log from "./log.js"; const NOTE_TITLE_CHANGED = "NOTE_TITLE_CHANGED"; const ENTER_PROTECTED_SESSION = "ENTER_PROTECTED_SESSION"; diff --git a/src/services/export/zip.ts b/src/services/export/zip.ts index d198b0c92..c98c226c8 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"; +import packageInfo from "../../../package.json" with { type: "json" }; import utils from "../utils.js"; import protectedSessionService from "../protected_session.js"; import sanitize from "sanitize-filename"; diff --git a/src/services/handlers.ts b/src/services/handlers.ts index dca0fba8e..579924923 100644 --- a/src/services/handlers.ts +++ b/src/services/handlers.ts @@ -8,7 +8,7 @@ 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'; +import { DefinitionObject } from './promoted_attribute_definition_interface.js'; type Handler = (definition: DefinitionObject, note: BNote, targetNote: BNote) => void; diff --git a/src/services/hidden_subtree.ts b/src/services/hidden_subtree.ts index f9979e734..563da456f 100644 --- a/src/services/hidden_subtree.ts +++ b/src/services/hidden_subtree.ts @@ -1,5 +1,5 @@ import BAttribute from "../becca/entities/battribute.js"; -import { AttributeType, NoteType } from "../becca/entities/rows"; +import { AttributeType, NoteType } from "../becca/entities/rows.js"; import becca from "../becca/becca.js"; import noteService from "./notes.js"; diff --git a/src/services/import/enex.ts b/src/services/import/enex.ts index 739b418c3..b6aa42072 100644 --- a/src/services/import/enex.ts +++ b/src/services/import/enex.ts @@ -11,7 +11,7 @@ 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"; +import { File } from "./common.js"; import { AttributeType } from "../../becca/entities/rows.js"; /** diff --git a/src/services/import/mime.ts b/src/services/import/mime.ts index 0dd1ecc84..8b8316a59 100644 --- a/src/services/import/mime.ts +++ b/src/services/import/mime.ts @@ -2,7 +2,7 @@ import mimeTypes from "mime-types"; import path from "path"; -import { TaskData } from '../task_context_interface'; +import { TaskData } from '../task_context_interface.js'; const CODE_MIME_TYPES: Record = { 'text/plain': true, diff --git a/src/services/import/single.ts b/src/services/import/single.ts index be6c4adcc..465d3b7a8 100644 --- a/src/services/import/single.ts +++ b/src/services/import/single.ts @@ -11,7 +11,7 @@ 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"; +import { File } from "./common.js"; function importSingleFile(taskContext: TaskContext, file: File, parentNote: BNote) { const mime = mimeService.getMime(file.originalname) || file.mimetype; diff --git a/src/services/import/zip.ts b/src/services/import/zip.ts index 6855760af..58aa8e994 100644 --- a/src/services/import/zip.ts +++ b/src/services/import/zip.ts @@ -20,7 +20,7 @@ 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'; +import { ALLOWED_NOTE_TYPES, NoteType } from '../../becca/entities/rows.js'; interface MetaFile { files: NoteMeta[] diff --git a/src/services/keyboard_actions.ts b/src/services/keyboard_actions.ts index 6753388ac..e2e1e024a 100644 --- a/src/services/keyboard_actions.ts +++ b/src/services/keyboard_actions.ts @@ -3,7 +3,7 @@ import optionService from "./options.js"; import log from "./log.js"; import utils from "./utils.js"; -import { KeyboardShortcut } from './keyboard_actions_interface'; +import { KeyboardShortcut } from './keyboard_actions_interface.js'; const isMac = process.platform === "darwin"; const isElectron = utils.isElectron(); diff --git a/src/services/meta/attribute_meta.ts b/src/services/meta/attribute_meta.ts index c2f8764aa..648dc1c1d 100644 --- a/src/services/meta/attribute_meta.ts +++ b/src/services/meta/attribute_meta.ts @@ -1,4 +1,4 @@ -import { AttributeType } from "../../becca/entities/rows"; +import { AttributeType } from "../../becca/entities/rows.js"; interface AttributeMeta { noteId?: string; diff --git a/src/services/note-interface.ts b/src/services/note-interface.ts index 2cfa0b86a..194085bdb 100644 --- a/src/services/note-interface.ts +++ b/src/services/note-interface.ts @@ -1,4 +1,4 @@ -import { NoteType } from "../becca/entities/rows"; +import { NoteType } from "../becca/entities/rows.js"; export interface NoteParams { /** optionally can force specific noteId */ diff --git a/src/services/notes.ts b/src/services/notes.ts index 20df9948a..cee8a8f91 100644 --- a/src/services/notes.ts +++ b/src/services/notes.ts @@ -23,9 +23,9 @@ import noteTypesService from "./note_types.js"; import fs from "fs"; import ws from "./ws.js"; import html2plaintext from "html2plaintext"; -import { AttachmentRow, AttributeRow, BranchRow, NoteRow, NoteType } from '../becca/entities/rows'; +import { AttachmentRow, AttributeRow, BranchRow, NoteRow, NoteType } from '../becca/entities/rows.js'; import TaskContext from "./task_context.js"; -import { NoteParams } from './note-interface'; +import { NoteParams } from './note-interface.js'; import imageService from "./image.js"; interface FoundLink { diff --git a/src/services/options.ts b/src/services/options.ts index bd9b289ad..a8b7500fc 100644 --- a/src/services/options.ts +++ b/src/services/options.ts @@ -1,6 +1,6 @@ import becca from "../becca/becca.js"; import BOption from "../becca/entities/boption.js"; -import { OptionRow } from '../becca/entities/rows'; +import { OptionRow } from '../becca/entities/rows.js'; import sql from "./sql.js"; function getOptionOrNull(name: string): string | null { diff --git a/src/services/options_init.ts b/src/services/options_init.ts index b06bf0afd..a50d57296 100644 --- a/src/services/options_init.ts +++ b/src/services/options_init.ts @@ -4,7 +4,7 @@ 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'; +import { KeyboardShortcutWithRequiredActionName } from './keyboard_actions_interface.js'; function initDocumentOptions() { optionService.createOption('documentId', utils.randomSecureToken(16), false); diff --git a/src/services/promoted_attribute_definition_parser.ts b/src/services/promoted_attribute_definition_parser.ts index 6e9ca3d13..ac066c788 100644 --- a/src/services/promoted_attribute_definition_parser.ts +++ b/src/services/promoted_attribute_definition_parser.ts @@ -1,4 +1,4 @@ -import { DefinitionObject } from "./promoted_attribute_definition_interface"; +import { DefinitionObject } from "./promoted_attribute_definition_interface.js"; function parse(value: string): DefinitionObject { const tokens = value.split(',').map(t => t.trim()); diff --git a/src/services/request.ts b/src/services/request.ts index 40ea5b278..d7be95233 100644 --- a/src/services/request.ts +++ b/src/services/request.ts @@ -4,7 +4,7 @@ import utils from "./utils.js"; import log from "./log.js"; import url from "url"; import syncOptions from "./sync_options.js"; -import { ExecOpts } from './request_interface'; +import { ExecOpts } from './request_interface.js'; // this service provides abstraction over node's HTTP/HTTPS and electron net.client APIs // this allows supporting system proxy diff --git a/src/services/script.ts b/src/services/script.ts index 035f13299..5b4004bb5 100644 --- a/src/services/script.ts +++ b/src/services/script.ts @@ -3,7 +3,7 @@ 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'; +import { ApiParams } from './backend_script_api_interface.js'; interface Bundle { note?: BNote; diff --git a/src/services/script_context.ts b/src/services/script_context.ts index 695eb5a24..d36c0d492 100644 --- a/src/services/script_context.ts +++ b/src/services/script_context.ts @@ -1,7 +1,7 @@ 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'; +import { ApiParams } from './backend_script_api_interface.js'; type Module = { exports: any[]; diff --git a/src/services/search/expressions/note_content_fulltext.ts b/src/services/search/expressions/note_content_fulltext.ts index 30f7b40f1..79d9b5376 100644 --- a/src/services/search/expressions/note_content_fulltext.ts +++ b/src/services/search/expressions/note_content_fulltext.ts @@ -1,6 +1,6 @@ "use strict"; -import { NoteRow } from "../../../becca/entities/rows"; +import { NoteRow } from "../../../becca/entities/rows.js"; import SearchContext from "../search_context.js"; import Expression from "./expression.js"; diff --git a/src/services/search/search_context.ts b/src/services/search/search_context.ts index 0d2bd60c2..c024be9a7 100644 --- a/src/services/search/search_context.ts +++ b/src/services/search/search_context.ts @@ -1,7 +1,7 @@ "use strict"; import hoistedNoteService from "../hoisted_note.js"; -import { SearchParams } from './services/types'; +import { SearchParams } from './services/types.js'; class SearchContext { diff --git a/src/services/search/services/handle_parens.ts b/src/services/search/services/handle_parens.ts index a5fb1f227..3ce0d1fd3 100644 --- a/src/services/search/services/handle_parens.ts +++ b/src/services/search/services/handle_parens.ts @@ -1,4 +1,4 @@ -import { TokenData, TokenStructure } from "./types"; +import { TokenData, TokenStructure } from "./types.js"; /** * This will create a recursive object from a list of tokens - tokens between parenthesis are grouped in a single array diff --git a/src/services/search/services/lex.ts b/src/services/search/services/lex.ts index ea9c0914c..3adfcdc56 100644 --- a/src/services/search/services/lex.ts +++ b/src/services/search/services/lex.ts @@ -1,4 +1,4 @@ -import { TokenData } from "./types"; +import { TokenData } from "./types.js"; function lex(str: string) { str = str.toLowerCase(); diff --git a/src/services/search/services/parse.ts b/src/services/search/services/parse.ts index f78e6a55a..5f7362623 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, TokenStructure } from "./types"; +import { TokenData, TokenStructure } from "./types.js"; import Expression from "../expressions/expression.js"; function getFulltext(_tokens: TokenData[], searchContext: SearchContext) { diff --git a/src/services/search/services/search.ts b/src/services/search/services/search.ts index 18d70be34..0c3fb87db 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, TokenStructure } from "./types"; +import { SearchParams, TokenStructure } from "./types.js"; import Expression from "../expressions/expression.js"; import sql from "../../sql.js"; import scriptService from "../../script.js"; diff --git a/src/services/setup.ts b/src/services/setup.ts index 34246483f..0f3d26f58 100644 --- a/src/services/setup.ts +++ b/src/services/setup.ts @@ -7,7 +7,7 @@ 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'; +import { SetupStatusResponse, SetupSyncSeedResponse } from './api-interface.js'; async function hasSyncServerSchemaAndSeed() { const response = await requestToSyncServer('GET', '/api/setup/status'); diff --git a/src/services/sql_init.ts b/src/services/sql_init.ts index 2a4d96715..a93750476 100644 --- a/src/services/sql_init.ts +++ b/src/services/sql_init.ts @@ -10,7 +10,7 @@ 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'; +import { OptionRow } from '../becca/entities/rows.js'; import optionsInitService from "./options_init.js"; import BNote from "../becca/entities/bnote.js"; import BBranch from "../becca/entities/bbranch.js"; diff --git a/src/services/sync.ts b/src/services/sync.ts index 3390babb9..5864edb06 100644 --- a/src/services/sync.ts +++ b/src/services/sync.ts @@ -17,8 +17,8 @@ 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'; +import { EntityChange, EntityChangeRecord, EntityRow } from './entity_changes_interface.js'; +import { CookieJar, ExecOpts } from './request_interface.js'; import setupService from "./setup.js"; import consistency_checks from "./consistency_checks.js"; import becca_loader from "../becca/becca_loader.js"; diff --git a/src/services/sync_update.ts b/src/services/sync_update.ts index abaa2fa30..275477ba2 100644 --- a/src/services/sync_update.ts +++ b/src/services/sync_update.ts @@ -4,7 +4,7 @@ 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'; +import { EntityChange, EntityChangeRecord, EntityRow } from './entity_changes_interface.js'; interface UpdateContext { alreadyErased: number; diff --git a/src/services/task_context.ts b/src/services/task_context.ts index 5974313e8..0f3557674 100644 --- a/src/services/task_context.ts +++ b/src/services/task_context.ts @@ -1,6 +1,6 @@ "use strict"; -import { TaskData } from './task_context_interface'; +import { TaskData } from './task_context_interface.js'; import ws from "./ws.js"; // taskId => TaskContext diff --git a/src/services/window.ts b/src/services/window.ts index 236fca441..e22ca382b 100644 --- a/src/services/window.ts +++ b/src/services/window.ts @@ -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 from "@electron/remote/main" +import remoteMain from "@electron/remote/main/index.js" import { App, BrowserWindow, WebContents, ipcMain } from 'electron'; import { fileURLToPath } from "url"; diff --git a/src/services/ws.ts b/src/services/ws.ts index 4a7628b2a..06ee20d58 100644 --- a/src/services/ws.ts +++ b/src/services/ws.ts @@ -11,7 +11,7 @@ import AbstractBeccaEntity from "../becca/entities/abstract_becca_entity.js"; import env from "./env.js"; import { IncomingMessage, Server } from 'http'; -import { EntityChange } from './entity_changes_interface'; +import { EntityChange } from './entity_changes_interface.js'; if (env.isDev()) { const chokidar = (await import("chokidar")).default; diff --git a/src/share/shaca/entities/abstract_shaca_entity.ts b/src/share/shaca/entities/abstract_shaca_entity.ts index b46f428de..44b8efa6b 100644 --- a/src/share/shaca/entities/abstract_shaca_entity.ts +++ b/src/share/shaca/entities/abstract_shaca_entity.ts @@ -1,5 +1,5 @@ -import shaca from "../shaca"; -import Shaca from "../shaca-interface"; +import shaca from "../shaca.js"; +import Shaca from "../shaca-interface.js"; class AbstractShacaEntity { get shaca(): Shaca { diff --git a/src/share/shaca/entities/sattachment.ts b/src/share/shaca/entities/sattachment.ts index 7ac9c3847..dc0ad7953 100644 --- a/src/share/shaca/entities/sattachment.ts +++ b/src/share/shaca/entities/sattachment.ts @@ -4,8 +4,8 @@ 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'; +import { Blob } from '../../../services/blob-interface.js'; +import { SAttachmentRow } from './rows.js'; class SAttachment extends AbstractShacaEntity { private attachmentId: string; diff --git a/src/share/shaca/entities/sattribute.ts b/src/share/shaca/entities/sattribute.ts index 189d9e6a6..2b7647e4e 100644 --- a/src/share/shaca/entities/sattribute.ts +++ b/src/share/shaca/entities/sattribute.ts @@ -1,7 +1,7 @@ "use strict"; -import AbstractShacaEntity from "./abstract_shaca_entity"; -import { SAttributeRow } from "./rows"; +import AbstractShacaEntity from "./abstract_shaca_entity.js"; +import { SAttributeRow } from "./rows.js"; import SNote from "./snote.js"; class SAttribute extends AbstractShacaEntity { diff --git a/src/share/shaca/entities/sbranch.ts b/src/share/shaca/entities/sbranch.ts index 0f2080603..cb71ed780 100644 --- a/src/share/shaca/entities/sbranch.ts +++ b/src/share/shaca/entities/sbranch.ts @@ -1,7 +1,7 @@ "use strict"; import AbstractShacaEntity from "./abstract_shaca_entity.js"; -import { SBranchRow } from './rows'; +import { SBranchRow } from './rows.js'; 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 755404b40..459b5d10f 100644 --- a/src/share/shaca/entities/snote.ts +++ b/src/share/shaca/entities/snote.ts @@ -4,11 +4,11 @@ import sql from "../../sql.js"; import utils from "../../../services/utils.js"; import AbstractShacaEntity from "./abstract_shaca_entity.js"; import escape from "escape-html"; -import { Blob } from '../../../services/blob-interface'; +import { Blob } from '../../../services/blob-interface.js'; import SAttachment from "./sattachment.js"; import SAttribute from "./sattribute.js"; import SBranch from "./sbranch.js"; -import { SNoteRow } from './rows'; +import { SNoteRow } from './rows.js'; const LABEL = 'label'; const RELATION = 'relation'; diff --git a/src/share/shaca/shaca.ts b/src/share/shaca/shaca.ts index ca5201335..05f15b0b1 100644 --- a/src/share/shaca/shaca.ts +++ b/src/share/shaca/shaca.ts @@ -1,6 +1,6 @@ "use strict"; -import Shaca from "./shaca-interface"; +import Shaca from "./shaca-interface.js"; const shaca = new Shaca(); diff --git a/src/share/shaca/shaca_loader.ts b/src/share/shaca/shaca_loader.ts index 1789f6fc0..aab4bca24 100644 --- a/src/share/shaca/shaca_loader.ts +++ b/src/share/shaca/shaca_loader.ts @@ -9,7 +9,7 @@ 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'; +import { SAttachmentRow, SAttributeRow, SBranchRow, SNoteRow } from './entities/rows.js'; function load() { const start = Date.now(); diff --git a/src/www.ts b/src/www.ts index 609551a0a..3fc54e817 100644 --- a/src/www.ts +++ b/src/www.ts @@ -69,7 +69,7 @@ async function startTrilium() { ws.init(httpServer, sessionParser as any); // TODO: Not sure why session parser is incompatible. if (utils.isElectron()) { - const electronRouting = await import('./routes/electron'); + const electronRouting = await import('./routes/electron.js'); electronRouting.default(app); } } diff --git a/tsconfig.json b/tsconfig.json index 5898cb05d..0d206e511 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,8 +1,6 @@ { "compilerOptions": { - "moduleResolution": "Bundler", - "module": "ESNext", - "target": "ES2020", + "module": "NodeNext", "declaration": false, "sourceMap": true, "outDir": "./build",