From b63e8700382e718974b3ff7b86bccb7d3c99e705 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Fri, 16 Feb 2024 23:09:59 +0200 Subject: [PATCH] server-ts: protected_session.js -> ts --- src/becca/entities/abstract_becca_entity.js | 2 +- src/becca/entities/battachment.js | 2 +- src/becca/entities/brevision.js | 2 +- src/routes/api/files.js | 2 +- src/routes/api/login.js | 2 +- src/routes/api/recent_changes.js | 2 +- src/routes/index.js | 2 +- src/services/date_notes.js | 2 +- src/services/export/zip.js | 2 +- src/services/image.js | 2 +- src/services/import/enex.js | 2 +- src/services/import/opml.js | 2 +- src/services/import/single.js | 2 +- src/services/import/zip.js | 2 +- src/services/notes.js | 2 +- ...tected_session.js => protected_session.ts} | 34 +++++++++++-------- src/services/revisions.js | 2 +- src/services/scheduler.js | 2 +- .../expressions/note_content_fulltext.js | 2 +- src/services/ws.js | 2 +- 20 files changed, 39 insertions(+), 33 deletions(-) rename src/services/{protected_session.js => protected_session.ts} (55%) diff --git a/src/becca/entities/abstract_becca_entity.js b/src/becca/entities/abstract_becca_entity.js index 368c55423..b72b13381 100644 --- a/src/becca/entities/abstract_becca_entity.js +++ b/src/becca/entities/abstract_becca_entity.js @@ -7,7 +7,7 @@ const eventService = require('../../services/events.js'); const dateUtils = require('../../services/date_utils'); const cls = require('../../services/cls'); const log = require('../../services/log'); -const protectedSessionService = require('../../services/protected_session.js'); +const protectedSessionService = require('../../services/protected_session'); const blobService = require('../../services/blob.js'); let becca = null; diff --git a/src/becca/entities/battachment.js b/src/becca/entities/battachment.js index 689590bce..5445ec3de 100644 --- a/src/becca/entities/battachment.js +++ b/src/becca/entities/battachment.js @@ -4,7 +4,7 @@ const utils = require('../../services/utils'); const dateUtils = require('../../services/date_utils'); const AbstractBeccaEntity = require('./abstract_becca_entity.js'); const sql = require('../../services/sql'); -const protectedSessionService = require('../../services/protected_session.js'); +const protectedSessionService = require('../../services/protected_session'); const log = require('../../services/log'); const attachmentRoleToNoteTypeMapping = { diff --git a/src/becca/entities/brevision.js b/src/becca/entities/brevision.js index 690ed6311..ad819ad90 100644 --- a/src/becca/entities/brevision.js +++ b/src/becca/entities/brevision.js @@ -1,6 +1,6 @@ "use strict"; -const protectedSessionService = require('../../services/protected_session.js'); +const protectedSessionService = require('../../services/protected_session'); const utils = require('../../services/utils'); const dateUtils = require('../../services/date_utils'); const becca = require('../becca.js'); diff --git a/src/routes/api/files.js b/src/routes/api/files.js index baee239a8..10a1b758e 100644 --- a/src/routes/api/files.js +++ b/src/routes/api/files.js @@ -1,6 +1,6 @@ "use strict"; -const protectedSessionService = require('../../services/protected_session.js'); +const protectedSessionService = require('../../services/protected_session'); const utils = require('../../services/utils'); const log = require('../../services/log'); const noteService = require('../../services/notes.js'); diff --git a/src/routes/api/login.js b/src/routes/api/login.js index 9c3536a04..ec5891c28 100644 --- a/src/routes/api/login.js +++ b/src/routes/api/login.js @@ -5,7 +5,7 @@ const utils = require('../../services/utils'); const dateUtils = require('../../services/date_utils'); const instanceId = require('../../services/instance_id.js'); const passwordEncryptionService = require('../../services/encryption/password_encryption.js'); -const protectedSessionService = require('../../services/protected_session.js'); +const protectedSessionService = require('../../services/protected_session'); const appInfo = require('../../services/app_info.js'); const eventService = require('../../services/events.js'); const sqlInit = require('../../services/sql_init.js'); diff --git a/src/routes/api/recent_changes.js b/src/routes/api/recent_changes.js index 8023a4875..8563c41a8 100644 --- a/src/routes/api/recent_changes.js +++ b/src/routes/api/recent_changes.js @@ -1,7 +1,7 @@ "use strict"; const sql = require('../../services/sql'); -const protectedSessionService = require('../../services/protected_session.js'); +const protectedSessionService = require('../../services/protected_session'); const noteService = require('../../services/notes.js'); const becca = require('../../becca/becca.js'); diff --git a/src/routes/index.js b/src/routes/index.js index 128742e99..2a8a07759 100644 --- a/src/routes/index.js +++ b/src/routes/index.js @@ -7,7 +7,7 @@ const optionService = require('../services/options.js'); const log = require('../services/log'); const env = require('../services/env.js'); const utils = require('../services/utils'); -const protectedSessionService = require('../services/protected_session.js'); +const protectedSessionService = require('../services/protected_session'); const packageJson = require('../../package.json'); const assetPath = require('../services/asset_path.js'); const appPath = require('../services/app_path.js'); diff --git a/src/services/date_notes.js b/src/services/date_notes.js index f258d2893..5d74b2f47 100644 --- a/src/services/date_notes.js +++ b/src/services/date_notes.js @@ -4,7 +4,7 @@ const noteService = require('./notes.js'); const attributeService = require('./attributes.js'); const dateUtils = require('./date_utils'); const sql = require('./sql'); -const protectedSessionService = require('./protected_session.js'); +const protectedSessionService = require('./protected_session'); const searchService = require('../services/search/services/search.js'); const SearchContext = require('../services/search/search_context.js'); const hoistedNoteService = require('./hoisted_note.js'); diff --git a/src/services/export/zip.js b/src/services/export/zip.js index 79625eee1..dccf4bf2f 100644 --- a/src/services/export/zip.js +++ b/src/services/export/zip.js @@ -7,7 +7,7 @@ const mimeTypes = require('mime-types'); const mdService = require('./md.js'); const packageInfo = require('../../../package.json'); const utils = require('../utils'); -const protectedSessionService = require('../protected_session.js'); +const protectedSessionService = require('../protected_session'); const sanitize = require("sanitize-filename"); const fs = require("fs"); const becca = require('../../becca/becca.js'); diff --git a/src/services/image.js b/src/services/image.js index 7113b6aca..ff9b5b9e9 100644 --- a/src/services/image.js +++ b/src/services/image.js @@ -2,7 +2,7 @@ const becca = require('../becca/becca.js'); const log = require('./log'); -const protectedSessionService = require('./protected_session.js'); +const protectedSessionService = require('./protected_session'); const noteService = require('./notes.js'); const optionService = require('./options.js'); const sql = require('./sql'); diff --git a/src/services/import/enex.js b/src/services/import/enex.js index c9565cd04..3ef11b2ec 100644 --- a/src/services/import/enex.js +++ b/src/services/import/enex.js @@ -6,7 +6,7 @@ const utils = require('../utils'); const sql = require('../sql'); const noteService = require('../notes.js'); const imageService = require('../image.js'); -const protectedSessionService = require('../protected_session.js'); +const protectedSessionService = require('../protected_session'); const htmlSanitizer = require('../html_sanitizer.js'); const {sanitizeAttributeName} = require('../sanitize_attribute_name.js'); diff --git a/src/services/import/opml.js b/src/services/import/opml.js index eb7b891d6..a547bf7ad 100644 --- a/src/services/import/opml.js +++ b/src/services/import/opml.js @@ -2,7 +2,7 @@ const noteService = require('../../services/notes.js'); const parseString = require('xml2js').parseString; -const protectedSessionService = require('../protected_session.js'); +const protectedSessionService = require('../protected_session'); const htmlSanitizer = require('../html_sanitizer.js'); /** diff --git a/src/services/import/single.js b/src/services/import/single.js index 59686207f..5e7c92630 100644 --- a/src/services/import/single.js +++ b/src/services/import/single.js @@ -2,7 +2,7 @@ const noteService = require('../../services/notes.js'); const imageService = require('../../services/image.js'); -const protectedSessionService = require('../protected_session.js'); +const protectedSessionService = require('../protected_session'); const markdownService = require('./markdown.js'); const mimeService = require('./mime.js'); const utils = require('../../services/utils'); diff --git a/src/services/import/zip.js b/src/services/import/zip.js index fabcdd58d..17a760fdc 100644 --- a/src/services/import/zip.js +++ b/src/services/import/zip.js @@ -7,7 +7,7 @@ const noteService = require('../../services/notes.js'); const attributeService = require('../../services/attributes.js'); const BBranch = require('../../becca/entities/bbranch.js'); const path = require('path'); -const protectedSessionService = require('../protected_session.js'); +const protectedSessionService = require('../protected_session'); const mimeService = require('./mime.js'); const treeService = require('../tree.js'); const yauzl = require("yauzl"); diff --git a/src/services/notes.js b/src/services/notes.js index e73c2f706..050729c4c 100644 --- a/src/services/notes.js +++ b/src/services/notes.js @@ -4,7 +4,7 @@ const dateUtils = require('./date_utils'); const entityChangesService = require('./entity_changes.js'); const eventService = require('./events.js'); const cls = require('../services/cls'); -const protectedSessionService = require('../services/protected_session.js'); +const protectedSessionService = require('../services/protected_session'); const log = require('../services/log'); const utils = require('../services/utils'); const revisionService = require('./revisions.js'); diff --git a/src/services/protected_session.js b/src/services/protected_session.ts similarity index 55% rename from src/services/protected_session.js rename to src/services/protected_session.ts index fad80c035..060705280 100644 --- a/src/services/protected_session.js +++ b/src/services/protected_session.ts @@ -1,12 +1,12 @@ "use strict"; -const log = require('./log'); -const dataEncryptionService = require('./encryption/data_encryption.js'); +import log = require('./log'); +import dataEncryptionService = require('./encryption/data_encryption'); -let dataKey = null; +let dataKey: Buffer | null = null; -function setDataKey(decryptedDataKey) { - dataKey = Array.from(decryptedDataKey); +function setDataKey(decryptedDataKey: Buffer) { + dataKey = Buffer.from(decryptedDataKey); } function getDataKey() { @@ -21,27 +21,33 @@ function isProtectedSessionAvailable() { return !!dataKey; } -function encrypt(plainText) { - if (plainText === null) { +function encrypt(plainText: string | Buffer) { + const dataKey = getDataKey(); + if (plainText === null || dataKey === null) { return null; } - return dataEncryptionService.encrypt(getDataKey(), plainText); + return dataEncryptionService.encrypt(dataKey, plainText); } -function decrypt(cipherText) { - if (cipherText === null) { +function decrypt(cipherText: string | Buffer) { + const dataKey = getDataKey(); + if (cipherText === null || dataKey === null) { return null; } - return dataEncryptionService.decrypt(getDataKey(), cipherText); + return dataEncryptionService.decrypt(dataKey, cipherText); } -function decryptString(cipherText) { - return dataEncryptionService.decryptString(getDataKey(), cipherText); +function decryptString(cipherText: string) { + const dataKey = getDataKey(); + if (dataKey === null) { + return null; + } + return dataEncryptionService.decryptString(dataKey, cipherText); } -let lastProtectedSessionOperationDate = null; +let lastProtectedSessionOperationDate: number | null = null; function touchProtectedSession() { if (isProtectedSessionAvailable()) { diff --git a/src/services/revisions.js b/src/services/revisions.js index e4b2dd9ed..7697a35f4 100644 --- a/src/services/revisions.js +++ b/src/services/revisions.js @@ -2,7 +2,7 @@ const log = require('./log'); const sql = require('./sql'); -const protectedSessionService = require('./protected_session.js'); +const protectedSessionService = require('./protected_session'); const dateUtils = require('./date_utils'); /** diff --git a/src/services/scheduler.js b/src/services/scheduler.js index d5d9c26dd..907fc1ec5 100644 --- a/src/services/scheduler.js +++ b/src/services/scheduler.js @@ -4,7 +4,7 @@ const sqlInit = require('./sql_init.js'); const config = require('./config.js'); const log = require('./log'); const attributeService = require('../services/attributes.js'); -const protectedSessionService = require('../services/protected_session.js'); +const protectedSessionService = require('../services/protected_session'); const hiddenSubtreeService = require('./hidden_subtree.js'); /** diff --git a/src/services/search/expressions/note_content_fulltext.js b/src/services/search/expressions/note_content_fulltext.js index 951d0cd6b..351d43717 100644 --- a/src/services/search/expressions/note_content_fulltext.js +++ b/src/services/search/expressions/note_content_fulltext.js @@ -4,7 +4,7 @@ const Expression = require('./expression.js'); const NoteSet = require('../note_set.js'); const log = require('../../log'); const becca = require('../../../becca/becca.js'); -const protectedSessionService = require('../../protected_session.js'); +const protectedSessionService = require('../../protected_session'); const striptags = require('striptags'); const utils = require('../../utils'); diff --git a/src/services/ws.js b/src/services/ws.js index 9e1f7f135..73caa8d26 100644 --- a/src/services/ws.js +++ b/src/services/ws.js @@ -5,7 +5,7 @@ const sql = require('./sql'); const cls = require('./cls'); const config = require('./config.js'); const syncMutexService = require('./sync_mutex.js'); -const protectedSessionService = require('./protected_session.js'); +const protectedSessionService = require('./protected_session'); const becca = require('../becca/becca.js'); const AbstractBeccaEntity = require('../becca/entities/abstract_becca_entity.js');