Merge pull request #268 from TriliumNext/feature/server_esm_part4

Server ESM port: Fix Electron build
This commit is contained in:
Elian Doran 2024-07-27 15:21:03 +03:00 committed by GitHub
commit b58b7a6575
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
91 changed files with 127 additions and 140 deletions

View File

@ -9,7 +9,7 @@ import windowService from "./src/services/window.js";
import tray from "./src/services/tray.js"; import tray from "./src/services/tray.js";
// Prevent Trilium starting twice on first install and on uninstall for the Windows installer. // 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); process.exit(0);
} }

View File

@ -1,6 +1,6 @@
import * as attributeParser from '../src/public/app/services/attribute_parser.js'; 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", () => { describe("Lexing", () => {
it("simple label", () => { it("simple label", () => {

View File

@ -1,5 +1,5 @@
import crypto from "crypto"; import crypto from "crypto";
import etapi from "../support/etapi"; import etapi from "../support/etapi.js";
etapi.describeEtapi("notes", () => { etapi.describeEtapi("notes", () => {
it("create", async () => { it("create", async () => {

View File

@ -4,7 +4,7 @@ import BAttribute from "../../src/becca/entities/battribute.js";
import becca from "../../src/becca/becca.js"; import becca from "../../src/becca/becca.js";
import randtoken from "rand-token"; import randtoken from "rand-token";
import SearchResult from "../../src/services/search/search_result.js"; 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" }); randtoken.generator({ source: "crypto" });
function findNoteByTitle( function findNoteByTitle(

View File

@ -1,5 +1,5 @@
import handleParens from "../../src/services/search/services/handle_parens"; import handleParens from "../../src/services/search/services/handle_parens.js";
import { TokenStructure } from "../../src/services/search/services/types"; import { TokenStructure } from "../../src/services/search/services/types.js";
describe("Parens handler", () => { describe("Parens handler", () => {
it("handles parens", () => { it("handles parens", () => {

View File

@ -1,6 +1,6 @@
import anonymizationService from "./services/anonymization.js"; import anonymizationService from "./services/anonymization.js";
import sqlInit from "./services/sql_init.js"; import sqlInit from "./services/sql_init.js";
await import("./becca/entity_constructor"); await import("./becca/entity_constructor.js");
sqlInit.dbReady.then(async () => { sqlInit.dbReady.then(async () => {
try { try {

View File

@ -15,8 +15,8 @@ import error_handlers from "./routes/error_handlers.js";
import { startScheduledCleanup } from "./services/erase.js"; import { startScheduledCleanup } from "./services/erase.js";
import sql_init from "./services/sql_init.js"; import sql_init from "./services/sql_init.js";
await import('./services/handlers'); await import('./services/handlers.js');
await import('./becca/becca_loader'); await import('./becca/becca_loader.js');
const app = express(); const app = express();
@ -56,20 +56,20 @@ custom.register(app);
error_handlers.register(app); error_handlers.register(app);
// triggers sync timer // triggers sync timer
await import("./services/sync"); await import("./services/sync.js");
// triggers backup timer // triggers backup timer
await import('./services/backup'); await import('./services/backup.js');
// trigger consistency checks timer // 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(); startScheduledCleanup();
if (utils.isElectron()) { if (utils.isElectron()) {
(await import('@electron/remote/main')).initialize(); (await import('@electron/remote/main/index.js')).initialize();
} }
export default app; export default app;

View File

@ -8,7 +8,7 @@ import BAttribute from "./entities/battribute.js";
import BBranch from "./entities/bbranch.js"; import BBranch from "./entities/bbranch.js";
import BRevision from "./entities/brevision.js"; import BRevision from "./entities/brevision.js";
import BAttachment from "./entities/battachment.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 BBlob from "./entities/bblob.js";
import BRecentNote from "./entities/brecent_note.js"; import BRecentNote from "./entities/brecent_note.js";
import AbstractBeccaEntity from "./entities/abstract_becca_entity.js"; import AbstractBeccaEntity from "./entities/abstract_becca_entity.js";
@ -199,7 +199,7 @@ export default class Becca {
return null; return null;
} }
const row = sql.getRow<BBlob | null>("SELECT *, LENGTH(content) AS contentLength FROM blobs WHERE blobId = ?", [entity.blobId]); const row = sql.getRow<BlobRow | null>("SELECT *, LENGTH(content) AS contentLength FROM blobs WHERE blobId = ?", [entity.blobId]);
return row ? new BBlob(row) : null; return row ? new BBlob(row) : null;
} }

View File

@ -1,6 +1,6 @@
"use strict"; "use strict";
import Becca from "./becca-interface"; import Becca from "./becca-interface.js";
const becca = new Becca(); const becca = new Becca();

View File

@ -12,7 +12,7 @@ import BOption from "./entities/boption.js";
import BEtapiToken from "./entities/betapi_token.js"; import BEtapiToken from "./entities/betapi_token.js";
import cls from "../services/cls.js"; import cls from "../services/cls.js";
import entityConstructor from "../becca/entity_constructor.js"; import entityConstructor from "../becca/entity_constructor.js";
import { 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 AbstractBeccaEntity from "./entities/abstract_becca_entity.js";
import options_init from "../services/options_init.js"; import options_init from "../services/options_init.js";
import ws from "../services/ws.js"; import ws from "../services/ws.js";

View File

@ -9,7 +9,7 @@ import cls from "../../services/cls.js";
import log from "../../services/log.js"; import log from "../../services/log.js";
import protectedSessionService from "../../services/protected_session.js"; import protectedSessionService from "../../services/protected_session.js";
import blobService from "../../services/blob.js"; import blobService from "../../services/blob.js";
import Becca, { ConstructorData } from '../becca-interface'; import Becca, { ConstructorData } from '../becca-interface.js';
import becca from "../becca.js"; import becca from "../becca.js";
interface ContentOpts { interface ContentOpts {

View File

@ -6,7 +6,7 @@ import AbstractBeccaEntity from "./abstract_becca_entity.js";
import sql from "../../services/sql.js"; import sql from "../../services/sql.js";
import protectedSessionService from "../../services/protected_session.js"; import protectedSessionService from "../../services/protected_session.js";
import log from "../../services/log.js"; import log from "../../services/log.js";
import { AttachmentRow } from './rows'; import { AttachmentRow } from './rows.js';
import BNote from "./bnote.js"; import BNote from "./bnote.js";
import BBranch from "./bbranch.js"; import BBranch from "./bbranch.js";
import noteService from "../../services/notes.js"; import noteService from "../../services/notes.js";
@ -44,9 +44,6 @@ class BAttachment extends AbstractBeccaEntity<BAttachment> {
title!: string; title!: string;
type?: keyof typeof attachmentRoleToNoteTypeMapping; type?: keyof typeof attachmentRoleToNoteTypeMapping;
position?: number; position?: number;
blobId?: string;
isProtected?: boolean;
dateModified?: string;
utcDateScheduledForErasureSince?: string | null; utcDateScheduledForErasureSince?: string | null;
/** optionally added to the entity */ /** optionally added to the entity */
contentLength?: number; contentLength?: number;

View File

@ -5,7 +5,7 @@ import AbstractBeccaEntity from "./abstract_becca_entity.js";
import dateUtils from "../../services/date_utils.js"; import dateUtils from "../../services/date_utils.js";
import promotedAttributeDefinitionParser from "../../services/promoted_attribute_definition_parser.js"; import promotedAttributeDefinitionParser from "../../services/promoted_attribute_definition_parser.js";
import sanitizeAttributeName from "../../services/sanitize_attribute_name.js"; import sanitizeAttributeName from "../../services/sanitize_attribute_name.js";
import { AttributeRow, AttributeType } from './rows'; import { AttributeRow, AttributeType } from './rows.js';
interface SavingOpts { interface SavingOpts {
skipValidation?: boolean; skipValidation?: boolean;

View File

@ -1,5 +1,5 @@
import AbstractBeccaEntity from "./abstract_becca_entity.js"; 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? // TODO: Why this does not extend the abstract becca?
class BBlob extends AbstractBeccaEntity<BBlob> { class BBlob extends AbstractBeccaEntity<BBlob> {
@ -7,11 +7,8 @@ class BBlob extends AbstractBeccaEntity<BBlob> {
static get primaryKeyName() { return "blobId"; } static get primaryKeyName() { return "blobId"; }
static get hashedProperties() { return ["blobId", "content"]; } static get hashedProperties() { return ["blobId", "content"]; }
blobId!: string;
content!: string | Buffer; content!: string | Buffer;
contentLength!: number; contentLength!: number;
dateModified!: string;
utcDateModified!: string;
constructor(row: BlobRow) { constructor(row: BlobRow) {
super(); super();

View File

@ -7,7 +7,7 @@ import utils from "../../services/utils.js";
import TaskContext from "../../services/task_context.js"; import TaskContext from "../../services/task_context.js";
import cls from "../../services/cls.js"; import cls from "../../services/cls.js";
import log from "../../services/log.js"; import log from "../../services/log.js";
import { BranchRow } from './rows'; import { BranchRow } from './rows.js';
import handlers from "../../services/handlers.js"; import handlers from "../../services/handlers.js";
/** /**
@ -29,7 +29,6 @@ class BBranch extends AbstractBeccaEntity<BBranch> {
prefix!: string | null; prefix!: string | null;
notePosition!: number; notePosition!: number;
isExpanded!: boolean; isExpanded!: boolean;
utcDateModified?: string;
constructor(row?: BranchRow) { constructor(row?: BranchRow) {
super(); super();

View File

@ -1,6 +1,6 @@
"use strict"; "use strict";
import { EtapiTokenRow } from "./rows"; import { EtapiTokenRow } from "./rows.js";
import dateUtils from "../../services/date_utils.js"; import dateUtils from "../../services/date_utils.js";
import AbstractBeccaEntity from "./abstract_becca_entity.js"; import AbstractBeccaEntity from "./abstract_becca_entity.js";

View File

@ -10,12 +10,12 @@ import BRevision from "./brevision.js";
import BAttachment from "./battachment.js"; import BAttachment from "./battachment.js";
import TaskContext from "../../services/task_context.js"; import TaskContext from "../../services/task_context.js";
import dayjs from "dayjs"; import dayjs from "dayjs";
import utc from "dayjs/plugin/utc"; import utc from "dayjs/plugin/utc.js";
import eventService from "../../services/events.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 BBranch from "./bbranch.js";
import BAttribute from "./battribute.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 searchService from "../../services/search/services/search.js";
import cloningService, { CloneResponse } from "../../services/cloning.js"; import cloningService, { CloneResponse } from "../../services/cloning.js";
import noteService from "../../services/notes.js"; import noteService from "../../services/notes.js";

View File

@ -2,7 +2,7 @@
import dateUtils from "../../services/date_utils.js"; import dateUtils from "../../services/date_utils.js";
import AbstractBeccaEntity from "./abstract_becca_entity.js"; import AbstractBeccaEntity from "./abstract_becca_entity.js";
import { OptionRow } from './rows'; import { OptionRow } from './rows.js';
/** /**
* Option represents a name-value pair, either directly configurable by the user or some system property. * Option represents a name-value pair, either directly configurable by the user or some system property.
@ -14,7 +14,6 @@ class BOption extends AbstractBeccaEntity<BOption> {
name!: string; name!: string;
value!: string; value!: string;
isSynced!: boolean;
constructor(row?: OptionRow) { constructor(row?: OptionRow) {
super(); super();

View File

@ -1,6 +1,6 @@
"use strict"; "use strict";
import { RecentNoteRow } from "./rows"; import { RecentNoteRow } from "./rows.js";
import dateUtils from "../../services/date_utils.js"; import dateUtils from "../../services/date_utils.js";
import AbstractBeccaEntity from "./abstract_becca_entity.js"; import AbstractBeccaEntity from "./abstract_becca_entity.js";
@ -15,7 +15,6 @@ class BRecentNote extends AbstractBeccaEntity<BRecentNote> {
noteId!: string; noteId!: string;
notePath!: string; notePath!: string;
utcDateCreated!: string;
constructor(row: RecentNoteRow) { constructor(row: RecentNoteRow) {
super(); super();

View File

@ -7,7 +7,7 @@ import becca from "../becca.js";
import AbstractBeccaEntity from "./abstract_becca_entity.js"; import AbstractBeccaEntity from "./abstract_becca_entity.js";
import sql from "../../services/sql.js"; import sql from "../../services/sql.js";
import BAttachment from "./battachment.js"; import BAttachment from "./battachment.js";
import { AttachmentRow, RevisionRow } from './rows'; import { AttachmentRow, RevisionRow } from './rows.js';
import eraseService from "../../services/erase.js"; import eraseService from "../../services/erase.js";
interface ContentOpts { interface ContentOpts {
@ -33,13 +33,9 @@ class BRevision extends AbstractBeccaEntity<BRevision> {
noteId!: string; noteId!: string;
type!: string; type!: string;
mime!: string; mime!: string;
isProtected!: boolean;
title!: string; title!: string;
blobId?: string;
dateLastEdited?: string; dateLastEdited?: string;
dateCreated!: string;
utcDateLastEdited?: string; utcDateLastEdited?: string;
utcDateCreated!: string;
contentLength?: number; contentLength?: number;
content?: string | Buffer; content?: string | Buffer;

View File

@ -1,4 +1,4 @@
import { ConstructorData } from './becca-interface'; import { ConstructorData } from './becca-interface.js';
import AbstractBeccaEntity from "./entities/abstract_becca_entity.js"; import AbstractBeccaEntity from "./entities/abstract_becca_entity.js";
import BAttachment from "./entities/battachment.js"; import BAttachment from "./entities/battachment.js";
import BAttribute from "./entities/battribute.js"; import BAttribute from "./entities/battribute.js";

View File

@ -4,8 +4,8 @@ import mappers from "./mappers.js";
import v from "./validators.js"; import v from "./validators.js";
import utils from "../services/utils.js"; import utils from "../services/utils.js";
import { Router } from 'express'; import { Router } from 'express';
import { AttachmentRow } from '../becca/entities/rows'; import { AttachmentRow } from '../becca/entities/rows.js';
import { ValidatorMap } from './etapi-interface'; import { ValidatorMap } from './etapi-interface.js';
function register(router: Router) { function register(router: Router) {
const ALLOWED_PROPERTIES_FOR_CREATE_ATTACHMENT: ValidatorMap = { const ALLOWED_PROPERTIES_FOR_CREATE_ATTACHMENT: ValidatorMap = {

View File

@ -4,8 +4,8 @@ import mappers from "./mappers.js";
import attributeService from "../services/attributes.js"; import attributeService from "../services/attributes.js";
import v from "./validators.js"; import v from "./validators.js";
import { Router } from 'express'; import { Router } from 'express';
import { AttributeRow } from '../becca/entities/rows'; import { AttributeRow } from '../becca/entities/rows.js';
import { ValidatorMap } from './etapi-interface'; import { ValidatorMap } from './etapi-interface.js';
function register(router: Router) { function register(router: Router) {
eu.route(router, 'get', '/etapi/attributes/:attributeId', (req, res, next) => { eu.route(router, 'get', '/etapi/attributes/:attributeId', (req, res, next) => {

View File

@ -6,7 +6,7 @@ import mappers from "./mappers.js";
import BBranch from "../becca/entities/bbranch.js"; import BBranch from "../becca/entities/bbranch.js";
import entityChangesService from "../services/entity_changes.js"; import entityChangesService from "../services/entity_changes.js";
import v from "./validators.js"; import v from "./validators.js";
import { BranchRow } from "../becca/entities/rows"; import { BranchRow } from "../becca/entities/rows.js";
function register(router: Router) { function register(router: Router) {
eu.route(router, 'get', '/etapi/branches/:branchId', (req, res, next) => { eu.route(router, 'get', '/etapi/branches/:branchId', (req, res, next) => {

View File

@ -5,8 +5,8 @@ import becca from "../becca/becca.js";
import etapiTokenService from "../services/etapi_tokens.js"; import etapiTokenService from "../services/etapi_tokens.js";
import config from "../services/config.js"; import config from "../services/config.js";
import { NextFunction, Request, RequestHandler, Response, Router } from 'express'; import { NextFunction, Request, RequestHandler, Response, Router } from 'express';
import { AppRequest, AppRequestHandler } from '../routes/route-interface'; import { AppRequest, AppRequestHandler } from '../routes/route-interface.js';
import { ValidatorMap } from './etapi-interface'; import { ValidatorMap } from './etapi-interface.js';
const GENERIC_CODE = "GENERIC"; const GENERIC_CODE = "GENERIC";
type HttpMethod = "all" | "get" | "post" | "put" | "delete" | "patch" | "options" | "head"; type HttpMethod = "all" | "get" | "post" | "put" | "delete" | "patch" | "options" | "head";

View File

@ -10,12 +10,11 @@ import SearchContext from "../services/search/search_context.js";
import zipExportService from "../services/export/zip.js"; import zipExportService from "../services/export/zip.js";
import zipImportService from "../services/import/zip.js"; import zipImportService from "../services/import/zip.js";
import { Router } from 'express'; import { Router } from 'express';
import { AppRequest } from '../routes/route-interface'; import { AppRequest } from '../routes/route-interface.js';
import { ParsedQs } from 'qs'; import { ParsedQs } from 'qs';
import { NoteParams } from '../services/note-interface'; import { NoteParams } from '../services/note-interface.js';
import BNote from "../becca/entities/bnote.js"; import { SearchParams } from '../services/search/services/types.js';
import { SearchParams } from '../services/search/services/types'; import { ValidatorMap } from './etapi-interface.js';
import { ValidatorMap } from './etapi-interface';
function register(router: Router) { function register(router: Router) {
eu.route(router, 'get', '/etapi/notes', (req, res, next) => { eu.route(router, 'get', '/etapi/notes', (req, res, next) => {

View File

@ -14,7 +14,7 @@ import ValidationError from "../../errors/validation_error.js";
import { Request, Response } from 'express'; import { Request, Response } from 'express';
import BNote from "../../becca/entities/bnote.js"; import BNote from "../../becca/entities/bnote.js";
import BAttachment from "../../becca/entities/battachment.js"; import BAttachment from "../../becca/entities/battachment.js";
import { AppRequest } from '../route-interface'; import { AppRequest } from '../route-interface.js';
function updateFile(req: AppRequest) { function updateFile(req: AppRequest) {
const note = becca.getNoteOrThrow(req.params.noteId); const note = becca.getNoteOrThrow(req.params.noteId);

View File

@ -6,7 +6,7 @@ import fs from "fs";
import { Request, Response } from 'express'; import { Request, Response } from 'express';
import BNote from "../../becca/entities/bnote.js"; import BNote from "../../becca/entities/bnote.js";
import BRevision from "../../becca/entities/brevision.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"; import { RESOURCE_DIR } from "../../services/resource_dir.js";
function returnImageFromNote(req: Request, res: Response) { function returnImageFromNote(req: Request, res: Response) {

View File

@ -13,7 +13,7 @@ import TaskContext from "../../services/task_context.js";
import ValidationError from "../../errors/validation_error.js"; import ValidationError from "../../errors/validation_error.js";
import { Request } from 'express'; import { Request } from 'express';
import BNote from "../../becca/entities/bnote.js"; import BNote from "../../becca/entities/bnote.js";
import { AppRequest } from '../route-interface'; import { AppRequest } from '../route-interface.js';
async function importNotesToBranch(req: AppRequest) { async function importNotesToBranch(req: AppRequest) {
const { parentNoteId } = req.params; const { parentNoteId } = req.params;

View File

@ -13,7 +13,7 @@ import sql from "../../services/sql.js";
import ws from "../../services/ws.js"; import ws from "../../services/ws.js";
import etapiTokenService from "../../services/etapi_tokens.js"; import etapiTokenService from "../../services/etapi_tokens.js";
import { Request } from 'express'; import { Request } from 'express';
import { AppRequest } from '../route-interface'; import { AppRequest } from '../route-interface.js';
function loginSync(req: AppRequest) { function loginSync(req: AppRequest) {
if (!sqlInit.schemaExists()) { if (!sqlInit.schemaExists()) {

View File

@ -12,7 +12,7 @@ import ValidationError from "../../errors/validation_error.js";
import blobService from "../../services/blob.js"; import blobService from "../../services/blob.js";
import { Request } from 'express'; import { Request } from 'express';
import BBranch from "../../becca/entities/bbranch.js"; import BBranch from "../../becca/entities/bbranch.js";
import { AttributeRow } from '../../becca/entities/rows'; import { AttributeRow } from '../../becca/entities/rows.js';
function getNote(req: Request) { function getNote(req: Request) {
return becca.getNoteOrThrow(req.params.noteId); return becca.getNoteOrThrow(req.params.noteId);

View File

@ -5,7 +5,7 @@ import protectedSessionService from "../../services/protected_session.js";
import noteService from "../../services/notes.js"; import noteService from "../../services/notes.js";
import becca from "../../becca/becca.js"; import becca from "../../becca/becca.js";
import { Request } from 'express'; import { Request } from 'express';
import { RevisionRow } from '../../becca/entities/rows'; import { RevisionRow } from '../../becca/entities/rows.js';
interface RecentChangeRow { interface RecentChangeRow {
noteId: string; noteId: string;

View File

@ -12,7 +12,7 @@ import eraseService from "../../services/erase.js";
import { Request, Response } from 'express'; import { Request, Response } from 'express';
import BRevision from "../../becca/entities/brevision.js"; import BRevision from "../../becca/entities/brevision.js";
import BNote from "../../becca/entities/bnote.js"; import BNote from "../../becca/entities/bnote.js";
import { NotePojo } from '../../becca/becca-interface'; import { NotePojo } from '../../becca/becca-interface.js';
interface NotePath { interface NotePath {
noteId: string; noteId: string;
@ -64,6 +64,10 @@ function getRevision(req: Request) {
function getRevisionFilename(revision: BRevision) { function getRevisionFilename(revision: BRevision) {
let filename = utils.formatDownloadTitle(revision.title, revision.type, revision.mime); 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 extension = path.extname(filename);
const date = revision.dateCreated const date = revision.dateCreated
.substr(0, 19) .substr(0, 19)

View File

@ -6,7 +6,7 @@ import noteService from "../../services/notes.js";
import sanitize_attribute_name from "../../services/sanitize_attribute_name.js"; import sanitize_attribute_name from "../../services/sanitize_attribute_name.js";
import specialNotesService from "../../services/special_notes.js"; import specialNotesService from "../../services/special_notes.js";
import { Request } from 'express'; import { Request } from 'express';
import { AppRequest } from '../route-interface'; import { AppRequest } from '../route-interface.js';
function uploadImage(req: AppRequest) { function uploadImage(req: AppRequest) {
const file = req.file; const file = req.file;

View File

@ -12,7 +12,7 @@ import syncOptions from "../../services/sync_options.js";
import utils from "../../services/utils.js"; import utils from "../../services/utils.js";
import ws from "../../services/ws.js"; import ws from "../../services/ws.js";
import { Request } from 'express'; 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 ValidationError from "../../errors/validation_error.js";
import consistencyChecksService from "../../services/consistency_checks.js"; import consistencyChecksService from "../../services/consistency_checks.js";

View File

@ -8,7 +8,7 @@ import log from "../services/log.js";
import env from "../services/env.js"; import env from "../services/env.js";
import utils from "../services/utils.js"; import utils from "../services/utils.js";
import protectedSessionService from "../services/protected_session.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 assetPath from "../services/asset_path.js";
import appPath from "../services/app_path.js"; import appPath from "../services/app_path.js";
import { Request, Response } from 'express'; import { Request, Response } from 'express';

View File

@ -9,7 +9,7 @@ import assetPath from "../services/asset_path.js";
import appPath from "../services/app_path.js"; import appPath from "../services/app_path.js";
import ValidationError from "../errors/validation_error.js"; import ValidationError from "../errors/validation_error.js";
import { Request, Response } from 'express'; import { Request, Response } from 'express';
import { AppRequest } from './route-interface'; import { AppRequest } from './route-interface.js';
function loginPage(req: Request, res: Response) { function loginPage(req: Request, res: Response) {
res.render('login', { res.render('login', {

View File

@ -70,7 +70,7 @@ import etapiNoteRoutes from "../etapi/notes.js";
import etapiSpecialNoteRoutes from "../etapi/special_notes.js"; import etapiSpecialNoteRoutes from "../etapi/special_notes.js";
import etapiSpecRoute from "../etapi/spec.js"; import etapiSpecRoute from "../etapi/spec.js";
import etapiBackupRoute from "../etapi/backup.js"; import etapiBackupRoute from "../etapi/backup.js";
import { AppRequest, AppRequestHandler } from './route-interface'; import { AppRequest, AppRequestHandler } from './route-interface.js';
const csrfMiddleware = csurf({ const csrfMiddleware = csurf({
cookie: { cookie: {

View File

@ -35,7 +35,7 @@ function setupPage(req: Request, res: Response) {
} }
async function handleElectronRedirect() { async function handleElectronRedirect() {
const windowService = (await import("../services/window")).default; const windowService = (await import("../services/window.js")).default;
const { app } = await import("electron"); const { app } = await import("electron");
windowService.createMainWindow(app); windowService.createMainWindow(app);
windowService.closeSetupWindow(); windowService.closeSetupWindow();

View File

@ -1,4 +1,4 @@
import { OptionRow } from "../becca/entities/rows"; import { OptionRow } from "../becca/entities/rows.js";
/** /**
* Response for /api/setup/status. * Response for /api/setup/status.

View File

@ -1,7 +1,7 @@
"use strict"; "use strict";
import build from "./build.js"; import build from "./build.js";
import packageJson from "../../package.json"; import packageJson from "../../package.json" with { type: "json" };
import dataDir from "./data_dir.js"; import dataDir from "./data_dir.js";
const APP_DB_VERSION = 228; const APP_DB_VERSION = 228;

View File

@ -1,6 +1,6 @@
"use strict"; "use strict";
import { AttributeRow } from "../becca/entities/rows"; import { AttributeRow } from "../becca/entities/rows.js";
function formatAttrForSearch(attr: AttributeRow, searchWithValue: boolean) { function formatAttrForSearch(attr: AttributeRow, searchWithValue: boolean) {
let searchStr = ''; let searchStr = '';

View File

@ -7,7 +7,7 @@ import BAttribute from "../becca/entities/battribute.js";
import attributeFormatter from "./attribute_formatter.js"; import attributeFormatter from "./attribute_formatter.js";
import BUILTIN_ATTRIBUTES from "./builtin_attributes.js"; import BUILTIN_ATTRIBUTES from "./builtin_attributes.js";
import BNote from "../becca/entities/bnote.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']; const ATTRIBUTE_TYPES = ['label', 'relation'];

View File

@ -8,7 +8,7 @@ import passwordEncryptionService from "./encryption/password_encryption.js";
import config from "./config.js"; import config from "./config.js";
import passwordService from "./encryption/password.js"; import passwordService from "./encryption/password.js";
import type { NextFunction, Request, Response } from 'express'; 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; const noAuthentication = config.General && config.General.noAuthentication === true;

View File

@ -30,10 +30,10 @@ import BAttachment from "../becca/entities/battachment.js";
import BRevision from "../becca/entities/brevision.js"; import BRevision from "../becca/entities/brevision.js";
import BEtapiToken from "../becca/entities/betapi_token.js"; import BEtapiToken from "../becca/entities/betapi_token.js";
import BOption from "../becca/entities/boption.js"; import BOption from "../becca/entities/boption.js";
import { AttributeRow, AttributeType, NoteType } from '../becca/entities/rows'; import { AttributeRow } from '../becca/entities/rows.js';
import Becca from '../becca/becca-interface'; import Becca from '../becca/becca-interface.js';
import { NoteParams } from './note-interface'; import { NoteParams } from './note-interface.js';
import { ApiParams } from './backend_script_api_interface'; import { ApiParams } from './backend_script_api_interface.js';
/** /**

View File

@ -2,7 +2,7 @@ import becca from "../becca/becca.js";
import NotFoundError from "../errors/not_found_error.js"; import NotFoundError from "../errors/not_found_error.js";
import protectedSessionService from "./protected_session.js"; import protectedSessionService from "./protected_session.js";
import utils from "./utils.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 }) { function getBlobPojo(entityName: string, entityId: string, opts?: { preview: boolean }) {
// TODO: Unused opts. // TODO: Unused opts.

View File

@ -1,11 +1,11 @@
"use strict"; "use strict";
import sql from './sql'; import sql from './sql.js';
import eventChangesService from './entity_changes'; import eventChangesService from './entity_changes.js';
import treeService from './tree'; import treeService from './tree.js';
import BBranch from '../becca/entities/bbranch'; import BBranch from '../becca/entities/bbranch.js';
import becca from '../becca/becca'; import becca from '../becca/becca.js';
import log from './log'; import log from './log.js';
export interface CloneResponse { export interface CloneResponse {
success: boolean; success: boolean;

View File

@ -1,5 +1,5 @@
import clsHooked from "cls-hooked"; import clsHooked from "cls-hooked";
import { EntityChange } from './entity_changes_interface'; import { EntityChange } from './entity_changes_interface.js';
const namespace = clsHooked.createNamespace("trilium"); const namespace = clsHooked.createNamespace("trilium");
type Callback = (...args: any[]) => any; type Callback = (...args: any[]) => any;

View File

@ -14,8 +14,8 @@ import utils from "../services/utils.js";
import eraseService from "../services/erase.js"; import eraseService from "../services/erase.js";
import sanitizeAttributeName from "./sanitize_attribute_name.js"; import sanitizeAttributeName from "./sanitize_attribute_name.js";
import noteTypesService from "../services/note_types.js"; import noteTypesService from "../services/note_types.js";
import { BranchRow } from '../becca/entities/rows'; import { BranchRow } from '../becca/entities/rows.js';
import { EntityChange } from './entity_changes_interface'; import { EntityChange } from './entity_changes_interface.js';
import becca_loader from "../becca/becca_loader.js"; import becca_loader from "../becca/becca_loader.js";
const noteTypes = noteTypesService.getNoteTypeNames(); const noteTypes = noteTypesService.getNoteTypeNames();

View File

@ -6,8 +6,8 @@ import utils from "./utils.js";
import instanceId from "./instance_id.js"; import instanceId from "./instance_id.js";
import becca from "../becca/becca.js"; import becca from "../becca/becca.js";
import blobService from "../services/blob.js"; import blobService from "../services/blob.js";
import { EntityChange } from './entity_changes_interface'; import { EntityChange } from './entity_changes_interface.js';
import type { Blob } from "./blob-interface"; import type { Blob } from "./blob-interface.js";
import eventService from "./events.js"; import eventService from "./events.js";
let maxEntityChangeId = 0; let maxEntityChangeId = 0;

View File

@ -1,12 +1,11 @@
import sql from "./sql.js"; import sql from "./sql.js";
import revisionService from "./revisions.js";
import log from "./log.js"; import log from "./log.js";
import entityChangesService from "./entity_changes.js"; import entityChangesService from "./entity_changes.js";
import optionService from "./options.js"; import optionService from "./options.js";
import dateUtils from "./date_utils.js"; import dateUtils from "./date_utils.js";
import sqlInit from "./sql_init.js"; import sqlInit from "./sql_init.js";
import cls from "./cls.js"; import cls from "./cls.js";
import { EntityChange } from "./entity_changes_interface"; import { EntityChange } from "./entity_changes_interface.js";
function eraseNotes(noteIdsToErase: string[]) { function eraseNotes(noteIdsToErase: string[]) {
if (noteIdsToErase.length === 0) { if (noteIdsToErase.length === 0) {

View File

@ -1,4 +1,4 @@
import log from "./log"; import log from "./log.js";
const NOTE_TITLE_CHANGED = "NOTE_TITLE_CHANGED"; const NOTE_TITLE_CHANGED = "NOTE_TITLE_CHANGED";
const ENTER_PROTECTED_SESSION = "ENTER_PROTECTED_SESSION"; const ENTER_PROTECTED_SESSION = "ENTER_PROTECTED_SESSION";

View File

@ -5,7 +5,7 @@ import dateUtils from "../date_utils.js";
import path from "path"; import path from "path";
import mimeTypes from "mime-types"; import mimeTypes from "mime-types";
import mdService from "./md.js"; import mdService from "./md.js";
import packageInfo from "../../../package.json"; import packageInfo from "../../../package.json" with { type: "json" };
import utils from "../utils.js"; import utils from "../utils.js";
import protectedSessionService from "../protected_session.js"; import protectedSessionService from "../protected_session.js";
import sanitize from "sanitize-filename"; import sanitize from "sanitize-filename";

View File

@ -8,7 +8,7 @@ import hiddenSubtreeService from "./hidden_subtree.js";
import oneTimeTimer from "./one_time_timer.js"; import oneTimeTimer from "./one_time_timer.js";
import BNote from "../becca/entities/bnote.js"; import BNote from "../becca/entities/bnote.js";
import AbstractBeccaEntity from "../becca/entities/abstract_becca_entity.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; type Handler = (definition: DefinitionObject, note: BNote, targetNote: BNote) => void;

View File

@ -1,5 +1,5 @@
import BAttribute from "../becca/entities/battribute.js"; 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 becca from "../becca/becca.js";
import noteService from "./notes.js"; import noteService from "./notes.js";

View File

@ -11,7 +11,7 @@ import htmlSanitizer from "../html_sanitizer.js";
import sanitizeAttributeName from "../sanitize_attribute_name.js"; import sanitizeAttributeName from "../sanitize_attribute_name.js";
import TaskContext from "../task_context.js"; import TaskContext from "../task_context.js";
import BNote from "../../becca/entities/bnote.js"; import BNote from "../../becca/entities/bnote.js";
import { File } from "./common"; import { File } from "./common.js";
import { AttributeType } from "../../becca/entities/rows.js"; import { AttributeType } from "../../becca/entities/rows.js";
/** /**

View File

@ -2,7 +2,7 @@
import mimeTypes from "mime-types"; import mimeTypes from "mime-types";
import path from "path"; import path from "path";
import { TaskData } from '../task_context_interface'; import { TaskData } from '../task_context_interface.js';
const CODE_MIME_TYPES: Record<string, boolean | string> = { const CODE_MIME_TYPES: Record<string, boolean | string> = {
'text/plain': true, 'text/plain': true,

View File

@ -11,7 +11,7 @@ import mimeService from "./mime.js";
import utils from "../../services/utils.js"; import utils from "../../services/utils.js";
import importUtils from "./utils.js"; import importUtils from "./utils.js";
import htmlSanitizer from "../html_sanitizer.js"; import htmlSanitizer from "../html_sanitizer.js";
import { File } from "./common"; import { File } from "./common.js";
function importSingleFile(taskContext: TaskContext, file: File, parentNote: BNote) { function importSingleFile(taskContext: TaskContext, file: File, parentNote: BNote) {
const mime = mimeService.getMime(file.originalname) || file.mimetype; const mime = mimeService.getMime(file.originalname) || file.mimetype;

View File

@ -20,7 +20,7 @@ import BNote from "../../becca/entities/bnote.js";
import NoteMeta from "../meta/note_meta.js"; import NoteMeta from "../meta/note_meta.js";
import AttributeMeta from "../meta/attribute_meta.js"; import AttributeMeta from "../meta/attribute_meta.js";
import { Stream } from 'stream'; 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 { interface MetaFile {
files: NoteMeta[] files: NoteMeta[]

View File

@ -3,7 +3,7 @@
import optionService from "./options.js"; import optionService from "./options.js";
import log from "./log.js"; import log from "./log.js";
import utils from "./utils.js"; import utils from "./utils.js";
import { KeyboardShortcut } from './keyboard_actions_interface'; import { KeyboardShortcut } from './keyboard_actions_interface.js';
const isMac = process.platform === "darwin"; const isMac = process.platform === "darwin";
const isElectron = utils.isElectron(); const isElectron = utils.isElectron();

View File

@ -1,4 +1,4 @@
import { AttributeType } from "../../becca/entities/rows"; import { AttributeType } from "../../becca/entities/rows.js";
interface AttributeMeta { interface AttributeMeta {
noteId?: string; noteId?: string;

View File

@ -1,4 +1,4 @@
import { NoteType } from "../becca/entities/rows"; import { NoteType } from "../becca/entities/rows.js";
export interface NoteParams { export interface NoteParams {
/** optionally can force specific noteId */ /** optionally can force specific noteId */

View File

@ -23,9 +23,9 @@ import noteTypesService from "./note_types.js";
import fs from "fs"; import fs from "fs";
import ws from "./ws.js"; import ws from "./ws.js";
import html2plaintext from "html2plaintext"; 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 TaskContext from "./task_context.js";
import { NoteParams } from './note-interface'; import { NoteParams } from './note-interface.js';
import imageService from "./image.js"; import imageService from "./image.js";
interface FoundLink { interface FoundLink {

View File

@ -1,6 +1,6 @@
import becca from "../becca/becca.js"; import becca from "../becca/becca.js";
import BOption from "../becca/entities/boption.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"; import sql from "./sql.js";
function getOptionOrNull(name: string): string | null { function getOptionOrNull(name: string): string | null {

View File

@ -4,7 +4,7 @@ import utils from "./utils.js";
import log from "./log.js"; import log from "./log.js";
import dateUtils from "./date_utils.js"; import dateUtils from "./date_utils.js";
import keyboardActions from "./keyboard_actions.js"; import keyboardActions from "./keyboard_actions.js";
import { KeyboardShortcutWithRequiredActionName } from './keyboard_actions_interface'; import { KeyboardShortcutWithRequiredActionName } from './keyboard_actions_interface.js';
function initDocumentOptions() { function initDocumentOptions() {
optionService.createOption('documentId', utils.randomSecureToken(16), false); optionService.createOption('documentId', utils.randomSecureToken(16), false);

View File

@ -1,4 +1,4 @@
import { DefinitionObject } from "./promoted_attribute_definition_interface"; import { DefinitionObject } from "./promoted_attribute_definition_interface.js";
function parse(value: string): DefinitionObject { function parse(value: string): DefinitionObject {
const tokens = value.split(',').map(t => t.trim()); const tokens = value.split(',').map(t => t.trim());

View File

@ -4,7 +4,7 @@ import utils from "./utils.js";
import log from "./log.js"; import log from "./log.js";
import url from "url"; import url from "url";
import syncOptions from "./sync_options.js"; 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 service provides abstraction over node's HTTP/HTTPS and electron net.client APIs
// this allows supporting system proxy // this allows supporting system proxy

View File

@ -3,7 +3,7 @@ import cls from "./cls.js";
import log from "./log.js"; import log from "./log.js";
import becca from "../becca/becca.js"; import becca from "../becca/becca.js";
import BNote from "../becca/entities/bnote.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 { interface Bundle {
note?: BNote; note?: BNote;

View File

@ -1,7 +1,7 @@
import utils from "./utils.js"; import utils from "./utils.js";
import BackendScriptApi from "./backend_script_api.js"; import BackendScriptApi from "./backend_script_api.js";
import BNote from "../becca/entities/bnote.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 = { type Module = {
exports: any[]; exports: any[];

View File

@ -1,6 +1,6 @@
"use strict"; "use strict";
import { NoteRow } from "../../../becca/entities/rows"; import { NoteRow } from "../../../becca/entities/rows.js";
import SearchContext from "../search_context.js"; import SearchContext from "../search_context.js";
import Expression from "./expression.js"; import Expression from "./expression.js";

View File

@ -1,7 +1,7 @@
"use strict"; "use strict";
import hoistedNoteService from "../hoisted_note.js"; import hoistedNoteService from "../hoisted_note.js";
import { SearchParams } from './services/types'; import { SearchParams } from './services/types.js';
class SearchContext { class SearchContext {

View File

@ -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 * This will create a recursive object from a list of tokens - tokens between parenthesis are grouped in a single array

View File

@ -1,4 +1,4 @@
import { TokenData } from "./types"; import { TokenData } from "./types.js";
function lex(str: string) { function lex(str: string) {
str = str.toLowerCase(); str = str.toLowerCase();

View File

@ -21,7 +21,7 @@ import utils from "../../utils.js";
import TrueExp from "../expressions/true.js"; import TrueExp from "../expressions/true.js";
import IsHiddenExp from "../expressions/is_hidden.js"; import IsHiddenExp from "../expressions/is_hidden.js";
import SearchContext from "../search_context.js"; import SearchContext from "../search_context.js";
import { TokenData, TokenStructure } from "./types"; import { TokenData, TokenStructure } from "./types.js";
import Expression from "../expressions/expression.js"; import Expression from "../expressions/expression.js";
function getFulltext(_tokens: TokenData[], searchContext: SearchContext) { function getFulltext(_tokens: TokenData[], searchContext: SearchContext) {

View File

@ -13,7 +13,7 @@ import log from "../../log.js";
import hoistedNoteService from "../../hoisted_note.js"; import hoistedNoteService from "../../hoisted_note.js";
import BNote from "../../../becca/entities/bnote.js"; import BNote from "../../../becca/entities/bnote.js";
import BAttribute from "../../../becca/entities/battribute.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 Expression from "../expressions/expression.js";
import sql from "../../sql.js"; import sql from "../../sql.js";
import scriptService from "../../script.js"; import scriptService from "../../script.js";

View File

@ -7,7 +7,7 @@ import request from "./request.js";
import appInfo from "./app_info.js"; import appInfo from "./app_info.js";
import utils from "./utils.js"; import utils from "./utils.js";
import becca from "../becca/becca.js"; import becca from "../becca/becca.js";
import { SetupStatusResponse, SetupSyncSeedResponse } from './api-interface'; import { SetupStatusResponse, SetupSyncSeedResponse } from './api-interface.js';
async function hasSyncServerSchemaAndSeed() { async function hasSyncServerSchemaAndSeed() {
const response = await requestToSyncServer<SetupStatusResponse>('GET', '/api/setup/status'); const response = await requestToSyncServer<SetupStatusResponse>('GET', '/api/setup/status');

View File

@ -10,7 +10,7 @@ import TaskContext from "./task_context.js";
import migrationService from "./migration.js"; import migrationService from "./migration.js";
import cls from "./cls.js"; import cls from "./cls.js";
import config from "./config.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 optionsInitService from "./options_init.js";
import BNote from "../becca/entities/bnote.js"; import BNote from "../becca/entities/bnote.js";
import BBranch from "../becca/entities/bbranch.js"; import BBranch from "../becca/entities/bbranch.js";

View File

@ -17,8 +17,8 @@ import ws from "./ws.js";
import entityChangesService from "./entity_changes.js"; import entityChangesService from "./entity_changes.js";
import entityConstructor from "../becca/entity_constructor.js"; import entityConstructor from "../becca/entity_constructor.js";
import becca from "../becca/becca.js"; import becca from "../becca/becca.js";
import { EntityChange, EntityChangeRecord, EntityRow } from './entity_changes_interface'; import { EntityChange, EntityChangeRecord, EntityRow } from './entity_changes_interface.js';
import { CookieJar, ExecOpts } from './request_interface'; import { CookieJar, ExecOpts } from './request_interface.js';
import setupService from "./setup.js"; import setupService from "./setup.js";
import consistency_checks from "./consistency_checks.js"; import consistency_checks from "./consistency_checks.js";
import becca_loader from "../becca/becca_loader.js"; import becca_loader from "../becca/becca_loader.js";

View File

@ -4,7 +4,7 @@ import entityChangesService from "./entity_changes.js";
import eventService from "./events.js"; import eventService from "./events.js";
import entityConstructor from "../becca/entity_constructor.js"; import entityConstructor from "../becca/entity_constructor.js";
import ws from "./ws.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 { interface UpdateContext {
alreadyErased: number; alreadyErased: number;

View File

@ -1,6 +1,6 @@
"use strict"; "use strict";
import { TaskData } from './task_context_interface'; import { TaskData } from './task_context_interface.js';
import ws from "./ws.js"; import ws from "./ws.js";
// taskId => TaskContext // taskId => TaskContext

View File

@ -7,7 +7,7 @@ import log from "./log.js";
import sqlInit from "./sql_init.js"; import sqlInit from "./sql_init.js";
import cls from "./cls.js"; import cls from "./cls.js";
import keyboardActionsService from "./keyboard_actions.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 { App, BrowserWindow, WebContents, ipcMain } from 'electron';
import { fileURLToPath } from "url"; import { fileURLToPath } from "url";

View File

@ -11,7 +11,7 @@ import AbstractBeccaEntity from "../becca/entities/abstract_becca_entity.js";
import env from "./env.js"; import env from "./env.js";
import { IncomingMessage, Server } from 'http'; import { IncomingMessage, Server } from 'http';
import { EntityChange } from './entity_changes_interface'; import { EntityChange } from './entity_changes_interface.js';
if (env.isDev()) { if (env.isDev()) {
const chokidar = (await import("chokidar")).default; const chokidar = (await import("chokidar")).default;

View File

@ -1,5 +1,5 @@
import shaca from "../shaca"; import shaca from "../shaca.js";
import Shaca from "../shaca-interface"; import Shaca from "../shaca-interface.js";
class AbstractShacaEntity { class AbstractShacaEntity {
get shaca(): Shaca { get shaca(): Shaca {

View File

@ -4,8 +4,8 @@ import sql from "../../sql.js";
import utils from "../../../services/utils.js"; import utils from "../../../services/utils.js";
import AbstractShacaEntity from "./abstract_shaca_entity.js"; import AbstractShacaEntity from "./abstract_shaca_entity.js";
import SNote from "./snote.js"; import SNote from "./snote.js";
import { Blob } from '../../../services/blob-interface'; import { Blob } from '../../../services/blob-interface.js';
import { SAttachmentRow } from './rows'; import { SAttachmentRow } from './rows.js';
class SAttachment extends AbstractShacaEntity { class SAttachment extends AbstractShacaEntity {
private attachmentId: string; private attachmentId: string;

View File

@ -1,7 +1,7 @@
"use strict"; "use strict";
import AbstractShacaEntity from "./abstract_shaca_entity"; import AbstractShacaEntity from "./abstract_shaca_entity.js";
import { SAttributeRow } from "./rows"; import { SAttributeRow } from "./rows.js";
import SNote from "./snote.js"; import SNote from "./snote.js";
class SAttribute extends AbstractShacaEntity { class SAttribute extends AbstractShacaEntity {

View File

@ -1,7 +1,7 @@
"use strict"; "use strict";
import AbstractShacaEntity from "./abstract_shaca_entity.js"; import AbstractShacaEntity from "./abstract_shaca_entity.js";
import { SBranchRow } from './rows'; import { SBranchRow } from './rows.js';
import SNote from "./snote.js"; import SNote from "./snote.js";
class SBranch extends AbstractShacaEntity { class SBranch extends AbstractShacaEntity {

View File

@ -4,11 +4,11 @@ import sql from "../../sql.js";
import utils from "../../../services/utils.js"; import utils from "../../../services/utils.js";
import AbstractShacaEntity from "./abstract_shaca_entity.js"; import AbstractShacaEntity from "./abstract_shaca_entity.js";
import escape from "escape-html"; import escape from "escape-html";
import { Blob } from '../../../services/blob-interface'; import { Blob } from '../../../services/blob-interface.js';
import SAttachment from "./sattachment.js"; import SAttachment from "./sattachment.js";
import SAttribute from "./sattribute.js"; import SAttribute from "./sattribute.js";
import SBranch from "./sbranch.js"; import SBranch from "./sbranch.js";
import { SNoteRow } from './rows'; import { SNoteRow } from './rows.js';
const LABEL = 'label'; const LABEL = 'label';
const RELATION = 'relation'; const RELATION = 'relation';

View File

@ -1,6 +1,6 @@
"use strict"; "use strict";
import Shaca from "./shaca-interface"; import Shaca from "./shaca-interface.js";
const shaca = new Shaca(); const shaca = new Shaca();

View File

@ -9,7 +9,7 @@ import SAttribute from "./entities/sattribute.js";
import SAttachment from "./entities/sattachment.js"; import SAttachment from "./entities/sattachment.js";
import shareRoot from "../share_root.js"; import shareRoot from "../share_root.js";
import eventService from "../../services/events.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() { function load() {
const start = Date.now(); const start = Date.now();

View File

@ -69,7 +69,7 @@ async function startTrilium() {
ws.init(httpServer, sessionParser as any); // TODO: Not sure why session parser is incompatible. ws.init(httpServer, sessionParser as any); // TODO: Not sure why session parser is incompatible.
if (utils.isElectron()) { if (utils.isElectron()) {
const electronRouting = await import('./routes/electron'); const electronRouting = await import('./routes/electron.js');
electronRouting.default(app); electronRouting.default(app);
} }
} }

View File

@ -1,8 +1,6 @@
{ {
"compilerOptions": { "compilerOptions": {
"moduleResolution": "Bundler", "module": "NodeNext",
"module": "ESNext",
"target": "ES2020",
"declaration": false, "declaration": false,
"sourceMap": true, "sourceMap": true,
"outDir": "./build", "outDir": "./build",