文件
mynode/packages/lib/services/conflict/decryptNoteInMemory.ts
chen 301194963b
一些检查失败了
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
feat: Initial clean release of CHM
2026-11-04 11:29:39 +08:00

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;
}
};