一些检查失败了
automerge / automerge (push) Has been cancelled
react-native-android-build-apk / AssembleRelease (push) Has been cancelled
Build macOS M1 / Main (push) Has been cancelled
Joplin Continuous Integration / Main (macos-15-intel) (push) Has been cancelled
Joplin Continuous Integration / Main (ubuntu-22.04) (push) Has been cancelled
Joplin Continuous Integration / Main (ubuntu-22.04-arm) (push) Has been cancelled
Joplin Continuous Integration / Main (windows-11-vs2026-arm) (push) Has been cancelled
Joplin Continuous Integration / Main (windows-2025) (push) Has been cancelled
Joplin Continuous Integration / ServerDockerImage (ubuntu-22.04) (push) Has been cancelled
Joplin Continuous Integration / ServerDockerImage (ubuntu-22.04-arm) (push) Has been cancelled
Joplin UI tests / Main (ubuntu-22.04) (push) Has been cancelled
Joplin UI tests / Main (windows-2025) (push) Has been cancelled
Joplin UI tests / Mobile (push) Has been cancelled
Close stale issues / ProcessStaleIssues (push) Has been cancelled
28 行
978 B
TypeScript
28 行
978 B
TypeScript
import BaseItem from '../../models/BaseItem';
|
|
import Note from '../../models/Note';
|
|
import { NoteEntity } from '../database/types';
|
|
import Logger from '@joplin/utils/Logger';
|
|
|
|
const logger = Logger.create('decryptNoteInMemory');
|
|
|
|
// Returns a decrypted copy of the note, or null if it can't be decrypted, Unlike the
|
|
// BaseItem.decrypt() nothing is saved, so the remote can't overwrite the local note.
|
|
export default async (note: NoteEntity): Promise<NoteEntity|null> => {
|
|
if (!note.encryption_cipher_text) return note;
|
|
|
|
try {
|
|
const plainText = await BaseItem.encryptionService().decryptString(note.encryption_cipher_text);
|
|
const plainNote: NoteEntity = await Note.unserialize(plainText);
|
|
|
|
return {
|
|
...plainNote,
|
|
updated_time: note.updated_time,
|
|
encryption_cipher_text: '',
|
|
encryption_applied: 0,
|
|
};
|
|
} catch (error) {
|
|
logger.info(`Could not decrypt note ${note.id} for auto-merge, falling back to a conflict note:`, error.message);
|
|
return null;
|
|
}
|
|
};
|