1
0
mirror of https://github.com/laurent22/joplin.git synced 2025-08-24 20:19:10 +02:00

Compare commits

...

10 Commits

Author SHA1 Message Date
Laurent Cozic
599cf5b86f Desktop release v3.0.13 2024-07-06 12:12:46 +02:00
Henry Heino
2fd6a3a2fa Desktop: Fixes #10685: Fix shift-delete asks to permanently delete the current note, rather than cut text, when the editor is selected. (#10687) 2024-07-06 12:05:35 +02:00
Henry Heino
a3e04103de Desktop: Fixes #10679: Fix incorrect text rendering on MacOS by changing the default font to Avenir Next (#10686) 2024-07-05 19:58:09 +02:00
Henry Heino
320d0df60d Desktop, Mobile: Fixes #10674: Fix sidebar performance regression with many nested notebooks (#10676) 2024-07-04 14:56:57 +02:00
cedecode
f32fe63205 All: Update de_DE.po (small improvements) (#10673) 2024-07-03 13:53:32 +02:00
Laurent Cozic
3e0fb48e44 Api: Do not return deleted notes in folders/:id/notes call 2024-07-03 10:41:31 +02:00
Laurent Cozic
4a475f1b53 CLI v3.0.1 2024-07-02 20:58:38 +02:00
Laurent Cozic
8679cc5704 Lock file 2024-07-02 20:41:46 +02:00
Laurent Cozic
a48c4ba93f Releasing sub-packages 2024-07-02 20:40:42 +02:00
Laurent Cozic
16e82b5462 iOS 13.0.5 2024-07-01 17:48:06 +02:00
30 changed files with 352 additions and 194 deletions

View File

@@ -35,7 +35,7 @@
],
"owner": "Laurent Cozic"
},
"version": "3.0.0",
"version": "3.0.1",
"bin": "./main.js",
"engines": {
"node": ">=10.0.0"

View File

@@ -204,7 +204,7 @@ class Application extends BaseApplication {
public updateEditorFont() {
const fontFamilies = [];
if (Setting.value('style.editor.fontFamily')) fontFamilies.push(`"${Setting.value('style.editor.fontFamily')}"`);
fontFamilies.push('Avenir, Arial, sans-serif');
fontFamilies.push('\'Avenir Next\', Avenir, Arial, sans-serif');
// The '*' and '!important' parts are necessary to make sure Russian text is displayed properly
// https://github.com/laurent22/joplin/issues/155

View File

@@ -104,10 +104,17 @@ const useOnKeyDown = (
event.preventDefault();
}
if (noteIds.length && (key === 'Delete' || (key === 'Backspace' && event.metaKey))) {
event.preventDefault();
if (CommandService.instance().isEnabled('deleteNote')) {
void CommandService.instance().execute('deleteNote', noteIds);
if (noteIds.length) {
if (key === 'Delete' && event.shiftKey) {
event.preventDefault();
if (CommandService.instance().isEnabled('permanentlyDeleteNote')) {
void CommandService.instance().execute('permanentlyDeleteNote', noteIds);
}
} else if (key === 'Delete' || (key === 'Backspace' && event.metaKey)) {
event.preventDefault();
if (CommandService.instance().isEnabled('deleteNote')) {
void CommandService.instance().execute('deleteNote', noteIds);
}
}
}

View File

@@ -1,7 +1,7 @@
import { useMemo } from 'react';
import { FolderListItem, HeaderId, HeaderListItem, ListItem, ListItemType, TagListItem } from '../types';
import { FolderEntity, TagsWithNoteCountEntity } from '@joplin/lib/services/database/types';
import { renderFolders, renderTags } from '@joplin/lib/components/shared/side-menu-shared';
import { buildFolderTree, renderFolders, renderTags } from '@joplin/lib/components/shared/side-menu-shared';
import { _ } from '@joplin/lib/locale';
import CommandService from '@joplin/lib/services/CommandService';
import Setting from '@joplin/lib/models/Setting';
@@ -35,10 +35,13 @@ const useSidebarListData = (props: Props): ListItem[] => {
});
}, [props.tags]);
const folderTree = useMemo(() => {
return buildFolderTree(props.folders);
}, [props.folders]);
const folderItems = useMemo(() => {
const renderProps = {
folders: props.folders,
folderTree,
collapsedFolderIds: props.collapsedFolderIds,
};
return renderFolders<ListItem>(renderProps, (folder, hasChildren, depth): FolderListItem => {
@@ -50,7 +53,7 @@ const useSidebarListData = (props: Props): ListItem[] => {
key: folder.id,
};
});
}, [props.folders, props.collapsedFolderIds]);
}, [folderTree, props.collapsedFolderIds]);
return useMemo(() => {
const foldersHeader: HeaderListItem = {

View File

@@ -1,5 +1,7 @@
import { test, expect } from './util/test';
import MainScreen from './models/MainScreen';
import activateMainMenuItem from './util/activateMainMenuItem';
import setMessageBoxResponse from './util/setMessageBoxResponse';
test.describe('noteList', () => {
test('should be possible to edit notes in a different notebook when searching', async ({ mainWindow }) => {
@@ -35,4 +37,42 @@ test.describe('noteList', () => {
// Updating the title should force the sidebar to update sooner
await expect(editor.noteTitleInput).toHaveValue('note-1');
});
test('shift-delete should ask to permanently delete notes, but only when the note list is focused', async ({ electronApp, mainWindow }) => {
const mainScreen = new MainScreen(mainWindow);
const sidebar = mainScreen.sidebar;
const folderBHeader = await sidebar.createNewFolder('Folder B');
const folderAHeader = await sidebar.createNewFolder('Folder A');
await expect(folderAHeader).toBeVisible();
await mainScreen.createNewNote('test note 1');
await mainScreen.createNewNote('test note 2');
await activateMainMenuItem(electronApp, 'Note list', 'Focus');
await expect(mainScreen.noteListContainer.getByText('test note 1')).toBeVisible();
await setMessageBoxResponse(electronApp, /^Delete/i);
const pressShiftDelete = async () => {
await mainWindow.keyboard.press('Shift');
await mainWindow.keyboard.press('Delete');
await mainWindow.keyboard.up('Delete');
await mainWindow.keyboard.up('Shift');
};
await pressShiftDelete();
await folderBHeader.click();
await folderAHeader.click();
await expect(mainScreen.noteListContainer.getByText('test note 2')).not.toBeVisible();
// Should not delete when the editor is focused
await mainScreen.noteEditor.focusCodeMirrorEditor();
await mainWindow.keyboard.type('test');
await pressShiftDelete();
await folderBHeader.click();
await folderAHeader.click();
await expect(mainScreen.noteListContainer.getByText('test note 1')).toBeVisible();
});
});

View File

@@ -1,6 +1,6 @@
{
"name": "@joplin/app-desktop",
"version": "3.0.12",
"version": "3.0.13",
"description": "Joplin for Desktop",
"main": "main.js",
"private": true,

View File

@@ -8,7 +8,7 @@ import Synchronizer from '@joplin/lib/Synchronizer';
import NavService from '@joplin/lib/services/NavService';
import { _ } from '@joplin/lib/locale';
import { ThemeStyle, themeStyle } from './global-style';
import { isFolderSelected, renderFolders } from '@joplin/lib/components/shared/side-menu-shared';
import { buildFolderTree, isFolderSelected, renderFolders } from '@joplin/lib/components/shared/side-menu-shared';
import { FolderEntity, FolderIcon, FolderIconType } from '@joplin/lib/services/database/types';
import { AppState } from '../utils/types';
import Setting from '@joplin/lib/models/Setting';
@@ -560,8 +560,16 @@ const SideMenuContentComponent = (props: Props) => {
items.push(renderSidebarButton('folder_header', _('Notebooks'), 'folder'));
const folderTree = useMemo(() => {
return buildFolderTree(props.folders);
}, [props.folders]);
if (props.folders.length) {
const result = renderFolders(props, renderFolderItem);
const result = renderFolders({
folderTree,
collapsedFolderIds: props.collapsedFolderIds,
}, renderFolderItem);
const folderItems = result.items;
items = items.concat(folderItems);
}

View File

@@ -503,13 +503,13 @@
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_MODULES = YES;
CODE_SIGN_ENTITLEMENTS = Joplin/Joplin.entitlements;
CURRENT_PROJECT_VERSION = 118;
CURRENT_PROJECT_VERSION = 119;
DEVELOPMENT_TEAM = A9BXAFS6CT;
ENABLE_BITCODE = NO;
INFOPLIST_FILE = Joplin/Info.plist;
IPHONEOS_DEPLOYMENT_TARGET = 13.4;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
MARKETING_VERSION = 13.0.4;
MARKETING_VERSION = 13.0.5;
OTHER_LDFLAGS = (
"$(inherited)",
"-ObjC",
@@ -534,12 +534,12 @@
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CLANG_ENABLE_MODULES = YES;
CODE_SIGN_ENTITLEMENTS = Joplin/Joplin.entitlements;
CURRENT_PROJECT_VERSION = 118;
CURRENT_PROJECT_VERSION = 119;
DEVELOPMENT_TEAM = A9BXAFS6CT;
INFOPLIST_FILE = Joplin/Info.plist;
IPHONEOS_DEPLOYMENT_TARGET = 13.4;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
MARKETING_VERSION = 13.0.4;
MARKETING_VERSION = 13.0.5;
OTHER_LDFLAGS = (
"$(inherited)",
"-ObjC",
@@ -724,14 +724,14 @@
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
CODE_SIGN_ENTITLEMENTS = ShareExtension/ShareExtension.entitlements;
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 118;
CURRENT_PROJECT_VERSION = 119;
DEBUG_INFORMATION_FORMAT = dwarf;
DEVELOPMENT_TEAM = A9BXAFS6CT;
GCC_C_LANGUAGE_STANDARD = gnu11;
INFOPLIST_FILE = ShareExtension/Info.plist;
IPHONEOS_DEPLOYMENT_TARGET = 13.4;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks";
MARKETING_VERSION = 13.0.4;
MARKETING_VERSION = 13.0.5;
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
MTL_FAST_MATH = YES;
OTHER_LDFLAGS = (
@@ -762,14 +762,14 @@
CODE_SIGN_ENTITLEMENTS = ShareExtension/ShareExtension.entitlements;
CODE_SIGN_STYLE = Automatic;
COPY_PHASE_STRIP = NO;
CURRENT_PROJECT_VERSION = 118;
CURRENT_PROJECT_VERSION = 119;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
DEVELOPMENT_TEAM = A9BXAFS6CT;
GCC_C_LANGUAGE_STANDARD = gnu11;
INFOPLIST_FILE = ShareExtension/Info.plist;
IPHONEOS_DEPLOYMENT_TARGET = 13.4;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks";
MARKETING_VERSION = 13.0.4;
MARKETING_VERSION = 13.0.5;
MTL_FAST_MATH = YES;
OTHER_LDFLAGS = (
"$(inherited)",

View File

@@ -1,7 +1,7 @@
{
"name": "@joplin/fork-htmlparser2",
"description": "Fast & forgiving HTML/XML/RSS parser",
"version": "4.1.51",
"version": "4.1.52",
"author": "Felix Boehm <me@feedic.com>",
"publishConfig": {
"access": "public"

View File

@@ -2,7 +2,7 @@
"name": "@joplin/fork-sax",
"description": "An evented streaming XML parser in JavaScript",
"author": "Isaac Z. Schlueter <i@izs.me> (http://blog.izs.me/)",
"version": "1.2.55",
"version": "1.2.56",
"main": "lib/sax.js",
"publishConfig": {
"access": "public"

View File

@@ -1,6 +1,6 @@
{
"name": "@joplin/fork-uslug",
"version": "1.0.16",
"version": "1.0.17",
"description": "A permissive slug generator that works with unicode.",
"author": "Jeremy Selier <jerem.selier@gmail.com>",
"publishConfig": {

View File

@@ -1,6 +1,6 @@
{
"name": "@joplin/htmlpack",
"version": "3.0.0",
"version": "3.0.1",
"description": "Pack an HTML file and all its linked resources into a single HTML file",
"main": "dist/index.js",
"types": "src/index.ts",
@@ -15,7 +15,7 @@
"license": "MIT",
"dependencies": {
"@adobe/css-tools": "4.3.3",
"@joplin/fork-htmlparser2": "^4.1.51",
"@joplin/fork-htmlparser2": "^4.1.52",
"datauri": "4.1.0",
"fs-extra": "11.2.0",
"html-entities": "1.4.0"

View File

@@ -1,6 +1,6 @@
import { FolderEntity } from '../../services/database/types';
import { getTrashFolder, getTrashFolderId } from '../../services/trash';
import { renderFolders } from './side-menu-shared';
import { buildFolderTree, renderFolders } from './side-menu-shared';
const renderItem = (folder: FolderEntity, hasChildren: boolean, depth: number) => {
return [folder.id, hasChildren, depth];
@@ -86,8 +86,52 @@ describe('side-menu-shared', () => {
order: ['1', getTrashFolderId(), '2'],
},
],
])('should render folders', (props, expected) => {
const actual = renderFolders(props, renderItem);
// Should not render id: 4 because it's contained within the child of a collapsed folder.
[
{
collapsedFolderIds: ['2'],
folders: [
{
id: '1',
parent_id: '',
deleted_time: 0,
},
{
id: '2',
parent_id: '',
deleted_time: 0,
},
{
id: '3',
parent_id: '2',
deleted_time: 0,
},
{
id: '4',
parent_id: '3',
deleted_time: 0,
},
getTrashFolder(),
],
notesParentType: 'Folder',
selectedFolderId: '',
selectedTagId: '',
},
{
items: [
['1', false, 0],
['2', true, 0],
[getTrashFolderId(), false, 0],
],
order: ['1', '2', getTrashFolderId()],
},
],
])('should render folders (case %#)', (props, expected) => {
const actual = renderFolders({
folderTree: buildFolderTree(props.folders),
collapsedFolderIds: props.collapsedFolderIds,
}, renderItem);
expect(actual).toEqual(expected);
});

View File

@@ -1,39 +1,10 @@
import Folder from '../../models/Folder';
import BaseModel from '../../BaseModel';
import { FolderEntity, TagEntity, TagsWithNoteCountEntity } from '../../services/database/types';
import { getDisplayParentId, getTrashFolderId } from '../../services/trash';
import { getDisplayParentId } from '../../services/trash';
import { getCollator } from '../../models/utils/getCollator';
export type RenderFolderItem<T> = (folder: FolderEntity, hasChildren: boolean, depth: number)=> T;
export type RenderTagItem<T> = (tag: TagsWithNoteCountEntity)=> T;
function folderHasChildren_(folders: FolderEntity[], folderId: string) {
if (folderId === getTrashFolderId()) {
return !!folders.find(f => !!f.deleted_time);
}
for (let i = 0; i < folders.length; i++) {
const folder = folders[i];
const folderParentId = getDisplayParentId(folder, folders.find(f => f.id === folder.parent_id));
if (folderParentId === folderId) return true;
}
return false;
}
function folderIsCollapsed(folders: FolderEntity[], folderId: string, collapsedFolderIds: string[]) {
if (!collapsedFolderIds || !collapsedFolderIds.length) return false;
while (true) {
const folder: FolderEntity = BaseModel.byId(folders, folderId);
if (!folder) throw new Error(`No folder with id ${folder.id}`);
const folderParentId = getDisplayParentId(folder, folders.find(f => f.id === folder.parent_id));
if (!folderParentId) return false;
if (collapsedFolderIds.indexOf(folderParentId) >= 0) return true;
folderId = folderParentId;
}
}
interface FolderSelectedContext {
selectedFolderId: string;
notesParentType: string;
@@ -48,21 +19,36 @@ type ItemsWithOrder<ItemType> = {
order: string[];
};
interface RenderFoldersProps {
interface FolderTree {
folders: FolderEntity[];
parentIdToChildren: Map<string, FolderEntity[]>;
idToItem: Map<string, FolderEntity>;
}
interface RenderFoldersProps {
folderTree: FolderTree;
collapsedFolderIds: string[];
}
function folderIsCollapsed(context: RenderFoldersProps, folderId: string) {
if (!context.collapsedFolderIds || !context.collapsedFolderIds.length) return false;
while (true) {
const folder = context.folderTree.idToItem.get(folderId);
const folderParentId = getDisplayParentId(folder, context.folderTree.idToItem.get(folder.parent_id));
if (!folderParentId) return false;
if (context.collapsedFolderIds.includes(folderParentId)) return true;
folderId = folderParentId;
}
}
function renderFoldersRecursive_<T>(props: RenderFoldersProps, renderItem: RenderFolderItem<T>, items: T[], parentId: string, depth: number, order: string[]): ItemsWithOrder<T> {
const folders = props.folders;
for (let i = 0; i < folders.length; i++) {
const folder = folders[i];
const folders = props.folderTree.parentIdToChildren.get(parentId ?? '') ?? [];
const parentIdToChildren = props.folderTree.parentIdToChildren;
for (const folder of folders) {
if (folderIsCollapsed(props, folder.id)) continue;
const folderParentId = getDisplayParentId(folder, props.folders.find(f => f.id === folder.parent_id));
if (!Folder.idsEqual(folderParentId, parentId)) continue;
if (folderIsCollapsed(props.folders, folder.id, props.collapsedFolderIds)) continue;
const hasChildren = folderHasChildren_(folders, folder.id);
const hasChildren = parentIdToChildren.has(folder.id);
order.push(folder.id);
items.push(renderItem(folder, hasChildren, depth));
if (hasChildren) {
@@ -81,6 +67,24 @@ export const renderFolders = <T> (props: RenderFoldersProps, renderItem: RenderF
return renderFoldersRecursive_(props, renderItem, [], '', 0, []);
};
export const buildFolderTree = (folders: FolderEntity[]): FolderTree => {
const idToItem = new Map<string, FolderEntity>();
for (const folder of folders) {
idToItem.set(folder.id, folder);
}
const parentIdToChildren = new Map<string, FolderEntity[]>();
for (const folder of folders) {
const displayParentId = getDisplayParentId(folder, idToItem.get(folder.parent_id)) ?? '';
if (!parentIdToChildren.has(displayParentId)) {
parentIdToChildren.set(displayParentId, []);
}
parentIdToChildren.get(displayParentId).push(folder);
}
return { folders, parentIdToChildren, idToItem };
};
const sortTags = (tags: TagEntity[]) => {
tags = tags.slice();
const collator = getCollator();

View File

@@ -1,6 +1,6 @@
{
"name": "@joplin/lib",
"version": "3.0.0",
"version": "3.0.1",
"description": "Joplin Core library",
"author": "Laurent Cozic",
"homepage": "",
@@ -40,14 +40,14 @@
"@adobe/css-tools": "4.3.3",
"@aws-sdk/client-s3": "3.296.0",
"@aws-sdk/s3-request-presigner": "3.296.0",
"@joplin/fork-htmlparser2": "^4.1.51",
"@joplin/fork-sax": "^1.2.55",
"@joplin/fork-uslug": "^1.0.16",
"@joplin/htmlpack": "~3.0",
"@joplin/renderer": "~3.0",
"@joplin/turndown": "^4.0.73",
"@joplin/turndown-plugin-gfm": "^1.0.55",
"@joplin/utils": "~3.0",
"@joplin/fork-htmlparser2": "^4.1.52",
"@joplin/fork-sax": "^1.2.56",
"@joplin/fork-uslug": "^1.0.17",
"@joplin/htmlpack": "^3.0.1",
"@joplin/renderer": "^3.0.1",
"@joplin/turndown": "^4.0.74",
"@joplin/turndown-plugin-gfm": "^1.0.56",
"@joplin/utils": "^3.0.1",
"@types/nanoid": "3.0.0",
"async-mutex": "0.4.1",
"base-64": "1.0.0",

View File

@@ -108,7 +108,6 @@ const defaultKeymapItems = {
{ accelerator: 'Ctrl+Alt+1', command: 'switchProfile1' },
{ accelerator: 'Ctrl+Alt+2', command: 'switchProfile2' },
{ accelerator: 'Ctrl+Alt+3', command: 'switchProfile3' },
{ accelerator: 'Shift+Delete', command: 'permanentlyDeleteNote' },
],
};

View File

@@ -25,6 +25,34 @@ describe('routes/folders', () => {
expect(page.items[0].id).toBe(folder2.id);
});
test('should not include deleted folders in GET folders/:id/notes call', async () => {
const api = new Api();
const folder = await Folder.save({});
const note1 = await Note.save({ parent_id: folder.id });
const note2 = await Note.save({ parent_id: folder.id });
{
const notes = await api.route(RequestMethod.GET, `folders/${folder.id}/notes`);
expect(notes.items.length).toBe(2);
}
await Note.delete(note1.id, { toTrash: true });
{
const notes = await api.route(RequestMethod.GET, `folders/${folder.id}/notes`);
expect(notes.items.length).toBe(1);
expect(notes.items[0].id).toBe(note2.id);
}
// const tree = await api.route(RequestMethod.GET, 'folders', { as_tree: 1 });
// expect(tree.length).toBe(1);
// expect(tree[0].id).toBe(folder2.id);
// const page = await api.route(RequestMethod.GET, 'folders');
// expect(page.items.length).toBe(1);
// expect(page.items[0].id).toBe(folder2.id);
});
test('should be able to delete to trash', async () => {
const api = new Api();
const folder1 = await Folder.save({});

View File

@@ -25,7 +25,7 @@ export default async function(request: Request, id: string = null, link: string
if (request.method === RequestMethod.GET && id) {
if (link && link === 'notes') {
const folder = await Folder.load(id);
return paginatedResults(BaseModel.TYPE_NOTE, request, { sql: 'parent_id = ?', params: [folder.id] });
return paginatedResults(BaseModel.TYPE_NOTE, request, { sql: 'parent_id = ? AND deleted_time = 0', params: [folder.id] });
} else if (link) {
throw new ErrorNotFound();
}

View File

@@ -1,6 +1,6 @@
{
"name": "@joplin/plugin-repo-cli",
"version": "3.0.0",
"version": "3.0.1",
"description": "",
"main": "index.js",
"bin": "./dist/index.js",
@@ -18,9 +18,9 @@
"author": "",
"license": "AGPL-3.0-or-later",
"dependencies": {
"@joplin/lib": "~3.0",
"@joplin/tools": "~3.0",
"@joplin/utils": "~3.0",
"@joplin/lib": "^3.0.1",
"@joplin/tools": "^3.0.1",
"@joplin/utils": "^3.0.1",
"fs-extra": "11.2.0",
"gh-release-assets": "2.0.1",
"node-fetch": "2.6.7",

View File

@@ -1,6 +1,6 @@
{
"name": "@joplin/react-native-saf-x",
"version": "3.0.0",
"version": "3.0.1",
"description": "a module to help work with scoped storages on android easily",
"main": "src/index",
"react-native": "src/index",

View File

@@ -58,7 +58,7 @@ export default function(theme: any, options: Options = null) {
theme = theme ? theme : {};
const fontFamily = '\'Avenir\', \'Arial\', sans-serif';
const fontFamily = '\'Avenir Next\', \'Avenir\', \'Arial\', sans-serif';
const maxWidthTarget = options.contentMaxWidthTarget ? options.contentMaxWidthTarget : '#rendered-md';
const maxWidthCss = options.contentMaxWidth ? `

View File

@@ -1,6 +1,6 @@
{
"name": "@joplin/renderer",
"version": "3.0.0",
"version": "3.0.1",
"description": "The Joplin note renderer, used the mobile and desktop application",
"repository": "https://github.com/laurent22/joplin/tree/dev/packages/renderer",
"main": "index.js",
@@ -28,9 +28,9 @@
"typescript": "5.2.2"
},
"dependencies": {
"@joplin/fork-htmlparser2": "^4.1.51",
"@joplin/fork-uslug": "^1.0.16",
"@joplin/utils": "~3.0",
"@joplin/fork-htmlparser2": "^4.1.52",
"@joplin/fork-uslug": "^1.0.17",
"@joplin/utils": "^3.0.1",
"font-awesome-filetypes": "2.1.0",
"fs-extra": "11.2.0",
"highlight.js": "11.9.0",

View File

@@ -7,6 +7,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Joplin-CLI 1.0.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: \n"
"PO-Revision-Date: \n"
"Last-Translator: cedecode <christoph.eder@phsalzburg.at>\n"
"Language-Team: \n"
"Language: de_DE\n"
@@ -484,7 +486,7 @@ msgid ""
"Any email sent to this address will be converted into a note and added to "
"your collection. The note will be saved into the Inbox notebook"
msgstr ""
"Jede an diese Adresse gerichtete E-Mail wird zu einer Notiz konvertiert und "
"Jedes an diese Adresse gerichtete Email wird zu einer Notiz umgewandelt und "
"deiner Kollektion hinzugefügt. Die Notiz wird im Inbox-Notizbuch gespeichert"
#: packages/lib/models/Setting.ts:2804
@@ -1208,7 +1210,7 @@ msgid ""
msgstr ""
"Es konnte keine Verbindung zum Joplin-Server hergestellt werden. Bitte "
"überprüfe die Synchronisationsoptionen in der Konfigurationsmaske. "
"Vollständiger Fehler war:\n"
"Vollständiger Fehler:\n"
"\n"
"%s"
@@ -1250,12 +1252,12 @@ msgid ""
"again when you are connected to the internet."
msgstr ""
"Der Freigabestatus dieses Notizbuchs konnte nicht überprüft werden - Vorgang "
"wird abgebrochen. Bitte versuche es erneut, wenn eine Internetverbindung "
"abgebrochen. Bitte versuche es erneut, sobald eine Internetverbindung "
"besteht."
#: packages/app-mobile/components/biometrics/biometricAuthenticate.ts:20
msgid "Could not verify your identity: %s"
msgstr "Konnte deine Identität nicht verifizieren: %s"
msgstr "Konnte deine Identität nicht überprüfen: %s"
#: packages/app-desktop/gui/PromptDialog.tsx:301
msgid "Create"
@@ -1492,7 +1494,7 @@ msgid ""
msgstr ""
"Das Inbox-Notizbuch löschen?\n"
"\n"
"Wenn du das Inbox-Notizbuch löschst, gehen in ihm gespeicherte E-Mails "
"Wenn du das Inbox-Notizbuch löschst, gehen kürzlich dort eingegangene Emails "
"möglicherweise verloren."
#: packages/app-desktop/gui/ShareFolderDialog/ShareFolderDialog.tsx:245
@@ -1854,25 +1856,25 @@ msgstr "Emacs"
#: packages/server/src/routes/admin/emails.ts:127
#: packages/server/src/routes/admin/users.ts:140
msgid "Email"
msgstr "E-Mail"
msgstr "Email"
#: packages/app-desktop/gui/JoplinCloudConfigScreen.tsx:47
#: packages/app-mobile/components/screens/ConfigScreen/JoplinCloudConfig.tsx:23
msgid "Email to note"
msgstr "E-Mail zu Notiz"
msgstr "Email zu Notiz"
#: packages/lib/utils/joplinCloud/index.ts:187
msgid "Email to Note"
msgstr "E-Mail zu Notiz"
msgstr "Email zu Notiz"
#: packages/lib/models/Setting.ts:2843
msgid "Email To Note, login information"
msgstr "E-Mail zu Notiz, Login-Informationen"
msgstr "Email zu Notiz, Login-Informationen"
#: packages/server/src/routes/admin/emails.ts:111
#: packages/server/src/services/MustacheService.ts:133
msgid "Emails"
msgstr "E-Mails"
msgstr "Emails"
#: packages/app-desktop/gui/NoteEditor/NoteBody/CodeMirror/v5/CodeMirror.tsx:191
msgid "emphasised text"
@@ -1983,7 +1985,7 @@ msgstr "Weiche Zeilenumbrüche aktivieren"
#: packages/lib/models/Setting.ts:1110
msgid "Enable spellcheck in the text editor"
msgstr "Aktiviere die Rechtschreibprüfung im Text-Editor"
msgstr "Aktiviere die Rechtschreibprüfung im Texteditor"
#: packages/lib/models/Setting.ts:1276
msgid "Enable table of contents extension"
@@ -2017,8 +2019,8 @@ msgid ""
"Enabling encryption means *all* your notes and attachments are going to be "
"re-synchronised and sent encrypted to the sync target."
msgstr ""
"Durch die Aktivierung der Verschlüsselung werden *alle* Notizen und Anhänge "
"neu synchronisiert und verschlüsselt an das Synchronisationsziel gesendet."
"Durch Aktivierung der Verschlüsselung werden *alle* Notizen und Anhänge neu "
"synchronisiert und verschlüsselt an das Synchronisationsziel gesendet."
#: packages/lib/models/BaseItem.ts:913
msgid "Encrypted"
@@ -2849,7 +2851,7 @@ msgstr "Joplin Server"
#: packages/lib/models/Setting.ts:709
msgid "Joplin Server email"
msgstr "Joplin Server E-Mail"
msgstr "Joplin Server-Email"
#: packages/lib/models/Setting.ts:721
msgid "Joplin Server password"
@@ -2864,7 +2866,7 @@ msgid ""
"Joplin Web Clipper allows saving web pages and screenshots from your browser "
"to Joplin."
msgstr ""
"Joplin Web-Clipper ermöglicht das Speichern von Webseiten und Screenshots "
"Joplin Web Clipper ermöglicht das Speichern von Webseiten und Screenshots "
"aus deinem Browser in Joplin."
#: packages/app-mobile/components/screens/ConfigScreen/ConfigScreen.tsx:612
@@ -3052,9 +3054,8 @@ msgid "Log"
msgstr "Protokoll"
#: packages/app-desktop/gui/MainScreen/MainScreen.tsx:698
#, fuzzy
msgid "Login to Joplin Cloud."
msgstr "Mit Joplin Cloud verbinden"
msgstr "Mit Joplin Cloud verbinden."
#: packages/app-mobile/components/screens/dropbox-login.js:55
msgid "Login with Dropbox"
@@ -3202,7 +3203,7 @@ msgstr "Mobile Daten - Auto-Synchronisierung deaktiviert"
#: packages/app-desktop/gui/MainScreen/MainScreen.tsx:667
msgid "More info"
msgstr "Weitere Information"
msgstr "Weitere Infos"
#: packages/lib/models/Setting.ts:2817
msgid "More information"
@@ -3211,7 +3212,8 @@ msgstr "Weitere Informationen"
#: packages/app-cli/app/app.ts:67
msgid "More than one item match \"%s\". Please narrow down your query."
msgstr ""
"Mehr als ein Element stimmt mit „%s“ überein. Bitte schränke deine Suche ein."
"Mehr als ein Element stimmt mit „%s“ überein. Bitte schränke deine "
"Suchabfrage ein."
#: packages/app-mobile/components/screens/ConfigScreen/plugins/EnablePluginSupportPage.tsx:115
msgid ""
@@ -3266,7 +3268,7 @@ msgstr "N"
#: packages/lib/models/Setting.ts:1189
msgid "Never resize"
msgstr "Größe niemals anpassen"
msgstr "Größe nie anpassen"
#: packages/app-desktop/gui/Sidebar/listItemComponents/HeaderItem.tsx:46
msgid "New"
@@ -3341,7 +3343,7 @@ msgstr "Nextcloud-WebDAV-URL"
#: packages/lib/models/Setting.ts:418
msgid "no"
msgstr "Nein"
msgstr "nein"
#: packages/app-desktop/services/plugins/UserWebviewDialogButtonBar.tsx:32
#: packages/app-mobile/components/screens/Note.tsx:747
@@ -3402,8 +3404,8 @@ msgstr "Kein Tab ausgewählt"
msgid ""
"No text editor is defined. Please set it using `config editor <editor-path>`"
msgstr ""
"Kein Texteditor festgelegt. Bitte stelle einen mit `config editor <Pfad-Zum-"
"Texteditor>` ein"
"Kein Texteditor festgelegt. Bitte wähle einen mit `config editor <Pfad-Zum-"
"Texteditor>`"
#: packages/lib/models/Setting.ts:435
msgid "Nord"
@@ -3440,11 +3442,11 @@ msgstr "Notiz"
#: packages/lib/models/Setting.ts:1805
msgid "Note area growth factor"
msgstr "Notiz-Flächenwachstumsfaktor"
msgstr "Notizbereich-Wachstumsfaktor"
#: packages/app-desktop/gui/Root.tsx:233
msgid "Note attachments"
msgstr "Anhänge"
msgstr "Notiz-Anhänge"
#: packages/app-desktop/gui/MenuBar.tsx:561
msgid "Note attachments..."
@@ -3481,7 +3483,7 @@ msgstr "Notizliste"
#: packages/lib/models/Setting.ts:1790
msgid "Note list growth factor"
msgstr "Notiz-Listenwachstumsfaktor"
msgstr "Notizlisten-Wachstumsfaktor"
#: packages/app-desktop/gui/MenuBar.tsx:781
msgid "Note list style"
@@ -3498,18 +3500,18 @@ msgstr "Notiz-Titel"
#: packages/lib/models/Setting.ts:1297
msgid "Note: Does not work in all desktop environments."
msgstr "Hinweis: Funktioniert nicht in allen Desktopumgebungen."
msgstr "Hinweis: Funktioniert nicht in allen Desktop-Umgebungen."
#: packages/app-desktop/gui/ShareNoteDialog.tsx:192
msgid ""
"Note: When a note is shared, it will no longer be encrypted on the server."
msgstr ""
"Achtung: Wenn eine Notiz geteilt wird, wird sie auf dem Server nicht mehr "
"Hinweis: Wenn eine Notiz geteilt wird, wird sie auf dem Server nicht länger "
"verschlüsselt sein."
#: packages/app-desktop/gui/MenuBar.tsx:860
msgid "Note&book"
msgstr "Notizbücher"
msgstr "Notiz&bücher"
#: packages/lib/models/Setting.ts:2806
msgid "Notebook"
@@ -3898,8 +3900,8 @@ msgid ""
"can extend Joplin's editor, viewer, and more."
msgstr ""
"Mit Erweiterungen lassen sich in Joplin zusätzliche Funktionen hinzufügen, "
"die standardmäßig nicht verfügbar sind. Sie können den Editor, die Ansicht "
"und vieles mehr erweitern."
"die standardmäßig nicht verfügbar sind. Erweiterungen können den Editor, die "
"Ansicht und vieles mehr ergänzen."
#: packages/lib/models/Setting.ts:1543
msgid "Portrait"
@@ -4570,11 +4572,11 @@ msgstr "Mehr Aktionen anzeigen"
#: packages/lib/models/Setting.ts:952
msgid "Show note counts"
msgstr "Notizanzahl anzeigen"
msgstr "Anzahl der Notizen anzeigen"
#: packages/lib/models/Setting.ts:1020
msgid "Show sort order buttons"
msgstr "Knöpfe zur Einstellung der Sortierreihenfolge anzeigen"
msgstr "Buttons für die Sortierreihenfolge anzeigen"
#: packages/lib/models/Setting.ts:1295
msgid "Show tray icon"
@@ -4747,8 +4749,8 @@ msgstr "Synchronisation starten..."
#: packages/app-cli/app/command-edit.ts:76
msgid "Starting to edit note. Close the editor to get back to the prompt."
msgstr ""
"Beginne die Notiz zu bearbeiten. Schließe das Textverarbeitungsprogramm, um "
"zurück zum Terminal zu gelangen."
"Bearbeite die Notiz jetzt. Schließe den Editor, um zurück zum Terminal zu "
"gelangen."
#: packages/app-desktop/gui/NoteContentPropertiesDialog.tsx:164
msgid "Statistics"
@@ -5151,8 +5153,8 @@ msgid ""
"The Joplin team has vetted this plugin and it meets our standards for "
"security and performance."
msgstr ""
"Das Joplin-Team hat dieses Plugin auf unsere Standards für Sicherheit und "
"Leistung überprüft."
"Das Joplin-Team hat dieses Plugin überprüft und es erfüllt unsere Standards "
"für Sicherheit und Leistung."
#: packages/app-desktop/gui/EncryptionConfigScreen/EncryptionConfigScreen.tsx:321
msgid ""
@@ -5655,7 +5657,7 @@ msgstr "Menüleiste umschalten"
#: packages/lib/models/Setting.ts:2846
msgid "Toggle note history, keep notes for"
msgstr "Notizverlauf umschalten, Notizen aufbewahren für"
msgstr "Notizenverlauf umschalten, Notizen aufbewahren für"
#: packages/app-desktop/gui/MainScreen/commands/toggleNoteList.ts:9
msgid "Toggle note list"
@@ -5927,8 +5929,8 @@ msgid ""
"Use this to rebuild the search index if there is a problem with search. It "
"may take a long time depending on the number of notes."
msgstr ""
"Verwende dies, um den Suchindex neu aufzubauen, wenn es ein Problem mit der "
"Suche gibt. Dies kann je nach Anzahl der Notizen eine lange Zeit dauern."
"Verwende dies zum Neuaufbau des Suchindex, falls es ein Problem mit der "
"Suche gibt. Dies kann je nach Anzahl der Notizen etwas länger dauern."
#: packages/app-mobile/components/biometrics/BiometricPopup.tsx:83
msgid ""
@@ -5973,7 +5975,7 @@ msgstr "Gültig"
#: packages/app-mobile/components/biometrics/biometricAuthenticate.ts:10
msgid "Verify your identity"
msgstr "Verifiziere deine Identität"
msgstr "Überprüfe deine Identität"
#: packages/app-desktop/gui/NoteList/utils/canManuallySortNotes.ts:10
msgid "View"
@@ -6024,7 +6026,7 @@ msgstr "Warnung"
#: packages/app-desktop/gui/ResourceScreen.tsx:302
msgid "Warning: not all resources shown for performance reasons (limit: %s)."
msgstr ""
"Warnung: Aus Leistungsgründen werden nicht alle Anhänge angezeigt "
"Warnung: Aus Kapazitätsgründen werden nicht alle Anhänge angezeigt "
"(Obergrenze: %s)."
#: packages/app-mobile/components/screens/ConfigScreen/plugins/EnablePluginSupportPage.tsx:116
@@ -6038,7 +6040,7 @@ msgid ""
"We mark plugins developed by trusted Joplin community members as "
"\"recommended\"."
msgstr ""
"Wir kennzeichen Erweiterungen, die von vertrauenswürdigen Mitgliedern der "
"Wir kennzeichnen Erweiterungen, die von vertrauenswürdigen Mitgliedern der "
"Joplin-Community entwickelt wurden, als „empfohlen“."
#: packages/lib/models/Setting.ts:2812
@@ -6086,8 +6088,8 @@ msgid ""
msgstr ""
"Willkommen bei Joplin!\n"
"\n"
"Tippe `:help shortcuts` für eine Liste der Shortcuts oder `:help` für "
"Informationen zur Benutzung ein.\n"
"Gib `:help shortcuts` für eine Liste der Shortcuts oder `:help` für Infos "
"zur Benutzung ein.\n"
"\n"
"Um zum Beispiel ein Notizbuch zu erstellen, drücke `mb`; um eine Notiz zu "
"erstellen drücke `mn`."
@@ -6102,11 +6104,11 @@ msgstr "Was sind Erweiterungen?"
#: packages/lib/models/Setting.ts:1166
msgid "When creating a new note:"
msgstr "Wenn eine neue Notiz erstellt wird:"
msgstr "Beim Erstellen einer neuen Notiz:"
#: packages/lib/models/Setting.ts:1149
msgid "When creating a new to-do:"
msgstr "Wenn eine neue Aufgabe erstellt wird:"
msgstr "Beim Erstellen einer neuen Aufgabe:"
#: packages/lib/models/Setting.ts:882
msgid ""
@@ -6114,8 +6116,7 @@ msgid ""
"text from it. This will allow you to search for text in these attachments."
msgstr ""
"Wenn aktiviert, wird die Anwendung deine Anhänge einlesen und Text aus ihnen "
"extrahieren. Dies wird dir ermöglichen, nach Text innerhalb dieser Anhänge "
"zu suchen."
"extrahieren. Damit kannst du innerhalb dieser Anhänge nach Text suchen."
#: packages/app-desktop/ElectronAppWrapper.ts:184
msgid "Window unresponsive."
@@ -6197,7 +6198,7 @@ msgstr "Dein Konto hat keinen Zugriff auf diese Funktion"
#: packages/app-cli/app/cli-utils.js:160
msgid "Your choice: "
msgstr "Deine Auswahl: "
msgstr "Deine Wahl: "
#: packages/lib/components/EncryptionConfigScreen/utils.ts:70
msgid "Your data is going to be re-encrypted and synced again."
@@ -6206,7 +6207,7 @@ msgstr "Deine Daten werden neu verschlüsselt und erneut synchronisiert."
#: packages/app-desktop/gui/MainScreen/MainScreen.tsx:697
#: packages/app-mobile/components/ScreenHeader/WarningBanner.tsx:55
msgid "Your Joplin Cloud credentials are invalid, please login."
msgstr ""
msgstr "Deine Zugangsdaten für Joplin Cloud sind ungültig, bitte einloggen."
#: packages/app-desktop/gui/EncryptionConfigScreen/EncryptionConfigScreen.tsx:259
msgid "Your password is needed to decrypt some of your data."
@@ -6808,7 +6809,7 @@ msgstr "Herauszoomen"
#~ msgstr "\"%s\": \"%s\""
#~ msgid "File system synchronisation target directory"
#~ msgstr "Dateisystem-Synchronisation Zielpfad"
#~ msgstr "Dateisystem-Zielpfad für Synchronisation"
#~ msgid "Set or clear alarm:"
#~ msgstr "Erstelle oder entferne Alarm:"

View File

@@ -1,6 +1,6 @@
{
"name": "@joplin/tools",
"version": "3.0.0",
"version": "3.0.1",
"description": "Various tools for Joplin",
"main": "index.js",
"author": "Laurent Cozic",
@@ -20,9 +20,9 @@
},
"license": "AGPL-3.0-or-later",
"dependencies": {
"@joplin/lib": "~3.0",
"@joplin/renderer": "~3.0",
"@joplin/utils": "~3.0",
"@joplin/lib": "^3.0.1",
"@joplin/renderer": "^3.0.1",
"@joplin/utils": "^3.0.1",
"compare-versions": "6.1.0",
"dayjs": "1.11.10",
"execa": "4.1.0",
@@ -43,7 +43,7 @@
},
"devDependencies": {
"@docusaurus/plugin-sitemap": "2.4.3",
"@joplin/fork-htmlparser2": "^4.1.51",
"@joplin/fork-htmlparser2": "^4.1.52",
"@rmp135/sql-ts": "1.18.1",
"@types/fs-extra": "11.0.4",
"@types/jest": "29.5.8",

View File

@@ -4,7 +4,7 @@
"publishConfig": {
"access": "public"
},
"version": "1.0.55",
"version": "1.0.56",
"author": "Dom Christie",
"main": "lib/turndown-plugin-gfm.cjs.js",
"devDependencies": {

View File

@@ -1,7 +1,7 @@
{
"name": "@joplin/turndown",
"description": "A library that converts HTML to Markdown",
"version": "4.0.73",
"version": "4.0.74",
"author": "Dom Christie",
"main": "lib/turndown.cjs.js",
"publishConfig": {

View File

@@ -1,6 +1,6 @@
{
"name": "@joplin/utils",
"version": "3.0.0",
"version": "3.0.1",
"description": "Utilities for Joplin",
"repository": "https://github.com/laurent22/joplin/tree/dev/packages/utils",
"exports": {
@@ -32,7 +32,7 @@
"author": "",
"license": "AGPL-3.0-or-later",
"dependencies": {
"@joplin/fork-htmlparser2": "^4.1.51",
"@joplin/fork-htmlparser2": "^4.1.52",
"async-mutex": "0.4.1",
"execa": "5.1.1",
"fs-extra": "11.2.0",

View File

@@ -1,5 +1,24 @@
# Joplin Terminal App Changelog
## [cli-v3.0.1](https://github.com/laurent22/joplin/releases/tag/cli-v3.0.1) - 2024-07-02T18:42:44Z
- Improved: Add trash folder (#9671) (#483)
- Improved: Allow deleting notes and notebooks permanently (#10107) (#10090 by [@personalizedrefrigerator](https://github.com/personalizedrefrigerator))
- Improved: Avoid unnecessary requests if Joplin Cloud credentials are empty (#10256 by [@pedr](https://github.com/pedr))
- Improved: Bump @codemirror/view version. (#10174 by [@itzTheMeow](https://github.com/itzTheMeow))
- Improved: Change Joplin Cloud login process (#9722 by [@pedr](https://github.com/pedr))
- Improved: Clarify that the "restore" command is to restore items from the trash (8cb9c08)
- Improved: Do not repeat failed requests with ENOTFOUND error (#6173)
- Improved: Don't render empty title page for Fountain (#10631 by [@XPhyro](https://github.com/XPhyro))
- Improved: Improved log formatting and allow saving last lines of log to memory (74bc9b3)
- Improved: Improves formatting of log statements (aac8d58)
- Improved: Log user actions (deletions) (#9585) (#9465 by [@personalizedrefrigerator](https://github.com/personalizedrefrigerator))
- Improved: Set min version for synchronising to 3.0.0 (e4b8976)
- Improved: Updated packages @adobe/css-tools (v4.3.3), chokidar (v3.6.0), follow-redirects (v1.15.6), jsdom (v23), react, sass (v1.71.0), style-to-js (v1.1.11), terminal-kit (v3.0.2), tesseract.js (v5.0.5), turndown (v7.1.3)
- Fixed: After deleting the last note from the conflicts folder, the application state is invalid (#10189)
- Fixed: ENEX does not import correctly when title of note matches the name of the attachment (#10125)
- Fixed: English: Use the plural form of a localization for negative and zero items (#10582) (#10581 by [@personalizedrefrigerator](https://github.com/personalizedrefrigerator))
## [cli-v2.14.1](https://github.com/laurent22/joplin/releases/tag/cli-v2.14.1) - 2024-03-01T19:08:28Z
- Improved: Allow setting a minimum app version on the sync target (#9778)

View File

@@ -1,5 +1,10 @@
# Joplin iOS Changelog
## [ios-v13.0.5](https://github.com/laurent22/joplin/releases/tag/ios-v13.0.5) - 2024-07-01T15:47:53Z
- Improved: Set min version for synchronising to 3.0.0 (e4b8976)
- Fixed: Show notification in case Joplin Cloud credential is not valid anymore (#10649) (#10645 by [@pedr](https://github.com/pedr))
## [ios-v13.0.4](https://github.com/laurent22/joplin/releases/tag/ios-v13.0.4) - 2024-06-29T10:21:04Z
- Updated German and Chinese translation

View File

@@ -6807,7 +6807,7 @@ __metadata:
languageName: unknown
linkType: soft
"@joplin/fork-htmlparser2@^4.1.51, @joplin/fork-htmlparser2@workspace:packages/fork-htmlparser2":
"@joplin/fork-htmlparser2@^4.1.52, @joplin/fork-htmlparser2@workspace:packages/fork-htmlparser2":
version: 0.0.0-use.local
resolution: "@joplin/fork-htmlparser2@workspace:packages/fork-htmlparser2"
dependencies:
@@ -6828,7 +6828,7 @@ __metadata:
languageName: unknown
linkType: soft
"@joplin/fork-sax@^1.2.55, @joplin/fork-sax@workspace:packages/fork-sax":
"@joplin/fork-sax@^1.2.56, @joplin/fork-sax@workspace:packages/fork-sax":
version: 0.0.0-use.local
resolution: "@joplin/fork-sax@workspace:packages/fork-sax"
dependencies:
@@ -6837,7 +6837,7 @@ __metadata:
languageName: unknown
linkType: soft
"@joplin/fork-uslug@^1.0.16, @joplin/fork-uslug@workspace:packages/fork-uslug":
"@joplin/fork-uslug@^1.0.17, @joplin/fork-uslug@workspace:packages/fork-uslug":
version: 0.0.0-use.local
resolution: "@joplin/fork-uslug@workspace:packages/fork-uslug"
dependencies:
@@ -6847,12 +6847,12 @@ __metadata:
languageName: unknown
linkType: soft
"@joplin/htmlpack@workspace:packages/htmlpack, @joplin/htmlpack@~3.0":
"@joplin/htmlpack@^3.0.1, @joplin/htmlpack@workspace:packages/htmlpack":
version: 0.0.0-use.local
resolution: "@joplin/htmlpack@workspace:packages/htmlpack"
dependencies:
"@adobe/css-tools": 4.3.3
"@joplin/fork-htmlparser2": ^4.1.51
"@joplin/fork-htmlparser2": ^4.1.52
"@types/fs-extra": 11.0.4
datauri: 4.1.0
fs-extra: 11.2.0
@@ -6860,21 +6860,21 @@ __metadata:
languageName: unknown
linkType: soft
"@joplin/lib@workspace:packages/lib, @joplin/lib@~3.0":
"@joplin/lib@^3.0.1, @joplin/lib@workspace:packages/lib, @joplin/lib@~3.0":
version: 0.0.0-use.local
resolution: "@joplin/lib@workspace:packages/lib"
dependencies:
"@adobe/css-tools": 4.3.3
"@aws-sdk/client-s3": 3.296.0
"@aws-sdk/s3-request-presigner": 3.296.0
"@joplin/fork-htmlparser2": ^4.1.51
"@joplin/fork-sax": ^1.2.55
"@joplin/fork-uslug": ^1.0.16
"@joplin/htmlpack": ~3.0
"@joplin/renderer": ~3.0
"@joplin/turndown": ^4.0.73
"@joplin/turndown-plugin-gfm": ^1.0.55
"@joplin/utils": ~3.0
"@joplin/fork-htmlparser2": ^4.1.52
"@joplin/fork-sax": ^1.2.56
"@joplin/fork-uslug": ^1.0.17
"@joplin/htmlpack": ^3.0.1
"@joplin/renderer": ^3.0.1
"@joplin/turndown": ^4.0.74
"@joplin/turndown-plugin-gfm": ^1.0.56
"@joplin/utils": ^3.0.1
"@testing-library/react-hooks": 8.0.1
"@types/fs-extra": 11.0.4
"@types/jest": 29.5.8
@@ -6983,9 +6983,9 @@ __metadata:
version: 0.0.0-use.local
resolution: "@joplin/plugin-repo-cli@workspace:packages/plugin-repo-cli"
dependencies:
"@joplin/lib": ~3.0
"@joplin/tools": ~3.0
"@joplin/utils": ~3.0
"@joplin/lib": ^3.0.1
"@joplin/tools": ^3.0.1
"@joplin/utils": ^3.0.1
"@types/fs-extra": 11.0.4
"@types/jest": 29.5.8
"@types/node": 18.19.26
@@ -7034,13 +7034,13 @@ __metadata:
languageName: unknown
linkType: soft
"@joplin/renderer@workspace:packages/renderer, @joplin/renderer@~3.0":
"@joplin/renderer@^3.0.1, @joplin/renderer@workspace:packages/renderer, @joplin/renderer@~3.0":
version: 0.0.0-use.local
resolution: "@joplin/renderer@workspace:packages/renderer"
dependencies:
"@joplin/fork-htmlparser2": ^4.1.51
"@joplin/fork-uslug": ^1.0.16
"@joplin/utils": ~3.0
"@joplin/fork-htmlparser2": ^4.1.52
"@joplin/fork-uslug": ^1.0.17
"@joplin/utils": ^3.0.1
"@types/jest": 29.5.8
"@types/markdown-it": 13.0.7
"@types/node": 18.19.26
@@ -7138,15 +7138,15 @@ __metadata:
languageName: unknown
linkType: soft
"@joplin/tools@workspace:packages/tools, @joplin/tools@~3.0":
"@joplin/tools@^3.0.1, @joplin/tools@workspace:packages/tools, @joplin/tools@~3.0":
version: 0.0.0-use.local
resolution: "@joplin/tools@workspace:packages/tools"
dependencies:
"@docusaurus/plugin-sitemap": 2.4.3
"@joplin/fork-htmlparser2": ^4.1.51
"@joplin/lib": ~3.0
"@joplin/renderer": ~3.0
"@joplin/utils": ~3.0
"@joplin/fork-htmlparser2": ^4.1.52
"@joplin/lib": ^3.0.1
"@joplin/renderer": ^3.0.1
"@joplin/utils": ^3.0.1
"@rmp135/sql-ts": 1.18.1
"@types/fs-extra": 11.0.4
"@types/jest": 29.5.8
@@ -7186,7 +7186,7 @@ __metadata:
languageName: unknown
linkType: soft
"@joplin/turndown-plugin-gfm@^1.0.55, @joplin/turndown-plugin-gfm@workspace:packages/turndown-plugin-gfm":
"@joplin/turndown-plugin-gfm@^1.0.56, @joplin/turndown-plugin-gfm@workspace:packages/turndown-plugin-gfm":
version: 0.0.0-use.local
resolution: "@joplin/turndown-plugin-gfm@workspace:packages/turndown-plugin-gfm"
dependencies:
@@ -7198,7 +7198,7 @@ __metadata:
languageName: unknown
linkType: soft
"@joplin/turndown@^4.0.73, @joplin/turndown@workspace:packages/turndown":
"@joplin/turndown@^4.0.74, @joplin/turndown@workspace:packages/turndown":
version: 0.0.0-use.local
resolution: "@joplin/turndown@workspace:packages/turndown"
dependencies:
@@ -7215,26 +7215,11 @@ __metadata:
languageName: unknown
linkType: soft
"@joplin/utils@npm:~2.12":
version: 2.12.1
resolution: "@joplin/utils@npm:2.12.1"
dependencies:
async-mutex: 0.4.0
execa: 5.1.1
fs-extra: 11.1.1
glob: 10.3.3
moment: 2.29.4
node-fetch: 2.6.7
sprintf-js: 1.1.2
checksum: dab823a7bb5d6d13c3d85c67dc669861aa0cdb89cee28cddceb280b43a235d7e058813b9724468b58532489fde25e0857098afe322286bd914e6096d1dc7ece7
languageName: node
linkType: hard
"@joplin/utils@workspace:packages/utils, @joplin/utils@~3.0":
"@joplin/utils@^3.0.1, @joplin/utils@workspace:packages/utils, @joplin/utils@~3.0":
version: 0.0.0-use.local
resolution: "@joplin/utils@workspace:packages/utils"
dependencies:
"@joplin/fork-htmlparser2": ^4.1.51
"@joplin/fork-htmlparser2": ^4.1.52
"@types/fs-extra": 11.0.4
"@types/jest": 29.5.8
"@types/markdown-it": 13.0.7
@@ -7253,6 +7238,21 @@ __metadata:
languageName: unknown
linkType: soft
"@joplin/utils@npm:~2.12":
version: 2.12.1
resolution: "@joplin/utils@npm:2.12.1"
dependencies:
async-mutex: 0.4.0
execa: 5.1.1
fs-extra: 11.1.1
glob: 10.3.3
moment: 2.29.4
node-fetch: 2.6.7
sprintf-js: 1.1.2
checksum: dab823a7bb5d6d13c3d85c67dc669861aa0cdb89cee28cddceb280b43a235d7e058813b9724468b58532489fde25e0857098afe322286bd914e6096d1dc7ece7
languageName: node
linkType: hard
"@jridgewell/gen-mapping@npm:^0.1.0":
version: 0.1.1
resolution: "@jridgewell/gen-mapping@npm:0.1.1"