You've already forked joplin
mirror of
https://github.com/laurent22/joplin.git
synced 2025-09-05 20:56:22 +02:00
Compare commits
11 Commits
android-v2
...
v2.13.9
Author | SHA1 | Date | |
---|---|---|---|
|
1bbec445d5 | ||
|
fd5a4dcbbf | ||
|
604dcbc35b | ||
|
b459ba7224 | ||
|
0d0398312f | ||
|
39c8fc812d | ||
|
0638d711d7 | ||
|
9bad668cc5 | ||
|
c18c31ab7f | ||
|
7c24a2f4be | ||
|
56438ea644 |
@@ -35,7 +35,7 @@
|
||||
],
|
||||
"owner": "Laurent Cozic"
|
||||
},
|
||||
"version": "2.13.1",
|
||||
"version": "2.13.2",
|
||||
"bin": "./main.js",
|
||||
"engines": {
|
||||
"node": ">=10.0.0"
|
||||
|
@@ -291,4 +291,29 @@ describe('MdToHtml', () => {
|
||||
expect(html.html).toContain(opening + trimmedTex + closing);
|
||||
}
|
||||
});
|
||||
|
||||
it('should render inline KaTeX after a numbered equation', async () => {
|
||||
const mdToHtml = newTestMdToHtml();
|
||||
|
||||
// This test is intended to verify that inline KaTeX renders correctly
|
||||
// after creating a numbered equation with \begin{align}...\end{align}.
|
||||
//
|
||||
// See https://github.com/laurent22/joplin/issues/9455 for details.
|
||||
|
||||
const markdown = [
|
||||
'$$',
|
||||
'\\begin{align}\\text{Block}\\end{align}',
|
||||
'$$',
|
||||
'',
|
||||
'$\\text{Inline}$',
|
||||
].join('\n');
|
||||
const { html } = await mdToHtml.render(markdown, null, { bodyOnly: true });
|
||||
|
||||
// Because we don't control the output of KaTeX, this test should be as general as
|
||||
// possible while still verifying that rendering (without an error) occurs.
|
||||
|
||||
// Should have rendered the inline and block content without errors
|
||||
expect(html).toContain('Inline</span>');
|
||||
expect(html).toContain('Block</span>');
|
||||
});
|
||||
});
|
||||
|
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@joplin/app-desktop",
|
||||
"version": "2.13.7",
|
||||
"version": "2.13.9",
|
||||
"description": "Joplin for Desktop",
|
||||
"main": "main.js",
|
||||
"private": true,
|
||||
|
@@ -110,8 +110,8 @@ android {
|
||||
applicationId "net.cozic.joplin"
|
||||
minSdkVersion rootProject.ext.minSdkVersion
|
||||
targetSdkVersion rootProject.ext.targetSdkVersion
|
||||
versionCode 2097729
|
||||
versionName "2.13.9"
|
||||
versionCode 2097730
|
||||
versionName "2.13.10"
|
||||
ndk {
|
||||
abiFilters "armeabi-v7a", "x86", "arm64-v8a", "x86_64"
|
||||
}
|
||||
|
@@ -523,13 +523,13 @@
|
||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
CODE_SIGN_ENTITLEMENTS = Joplin/Joplin.entitlements;
|
||||
CURRENT_PROJECT_VERSION = 105;
|
||||
CURRENT_PROJECT_VERSION = 107;
|
||||
DEVELOPMENT_TEAM = A9BXAFS6CT;
|
||||
ENABLE_BITCODE = NO;
|
||||
INFOPLIST_FILE = Joplin/Info.plist;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 11.0;
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
|
||||
MARKETING_VERSION = 12.13.8;
|
||||
MARKETING_VERSION = 12.13.10;
|
||||
OTHER_LDFLAGS = (
|
||||
"$(inherited)",
|
||||
"-ObjC",
|
||||
@@ -552,12 +552,12 @@
|
||||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
CODE_SIGN_ENTITLEMENTS = Joplin/Joplin.entitlements;
|
||||
CURRENT_PROJECT_VERSION = 105;
|
||||
CURRENT_PROJECT_VERSION = 107;
|
||||
DEVELOPMENT_TEAM = A9BXAFS6CT;
|
||||
INFOPLIST_FILE = Joplin/Info.plist;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 11.0;
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
|
||||
MARKETING_VERSION = 12.13.8;
|
||||
MARKETING_VERSION = 12.13.10;
|
||||
OTHER_LDFLAGS = (
|
||||
"$(inherited)",
|
||||
"-ObjC",
|
||||
@@ -704,14 +704,14 @@
|
||||
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
|
||||
CODE_SIGN_ENTITLEMENTS = ShareExtension/ShareExtension.entitlements;
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
CURRENT_PROJECT_VERSION = 105;
|
||||
CURRENT_PROJECT_VERSION = 107;
|
||||
DEBUG_INFORMATION_FORMAT = dwarf;
|
||||
DEVELOPMENT_TEAM = A9BXAFS6CT;
|
||||
GCC_C_LANGUAGE_STANDARD = gnu11;
|
||||
INFOPLIST_FILE = ShareExtension/Info.plist;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 11.0;
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks";
|
||||
MARKETING_VERSION = 12.13.8;
|
||||
MARKETING_VERSION = 12.13.10;
|
||||
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
|
||||
MTL_FAST_MATH = YES;
|
||||
PRODUCT_BUNDLE_IDENTIFIER = net.cozic.joplin.ShareExtension;
|
||||
@@ -735,14 +735,14 @@
|
||||
CODE_SIGN_ENTITLEMENTS = ShareExtension/ShareExtension.entitlements;
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
COPY_PHASE_STRIP = NO;
|
||||
CURRENT_PROJECT_VERSION = 105;
|
||||
CURRENT_PROJECT_VERSION = 107;
|
||||
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
|
||||
DEVELOPMENT_TEAM = A9BXAFS6CT;
|
||||
GCC_C_LANGUAGE_STANDARD = gnu11;
|
||||
INFOPLIST_FILE = ShareExtension/Info.plist;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 11.0;
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks";
|
||||
MARKETING_VERSION = 12.13.8;
|
||||
MARKETING_VERSION = 12.13.10;
|
||||
MTL_FAST_MATH = YES;
|
||||
PRODUCT_BUNDLE_IDENTIFIER = net.cozic.joplin.ShareExtension;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
|
@@ -88,7 +88,7 @@
|
||||
"@babel/preset-env": "7.20.2",
|
||||
"@babel/runtime": "7.20.0",
|
||||
"@joplin/tools": "~2.13",
|
||||
"@js-draw/material-icons": "1.13.2",
|
||||
"@js-draw/material-icons": "1.14.0",
|
||||
"@lezer/highlight": "1.1.4",
|
||||
"@testing-library/jest-native": "5.4.3",
|
||||
"@testing-library/react-native": "12.3.1",
|
||||
@@ -106,7 +106,7 @@
|
||||
"jest": "29.7.0",
|
||||
"jest-environment-jsdom": "29.7.0",
|
||||
"jetifier": "2.0.0",
|
||||
"js-draw": "1.13.2",
|
||||
"js-draw": "1.14.0",
|
||||
"jsdom": "22.1.0",
|
||||
"metro-react-native-babel-preset": "0.73.9",
|
||||
"nodemon": "3.0.1",
|
||||
|
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "@joplin/fork-htmlparser2",
|
||||
"description": "Fast & forgiving HTML/XML/RSS parser",
|
||||
"version": "4.1.49",
|
||||
"version": "4.1.50",
|
||||
"author": "Felix Boehm <me@feedic.com>",
|
||||
"publishConfig": {
|
||||
"access": "public"
|
||||
|
@@ -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.53",
|
||||
"version": "1.2.54",
|
||||
"main": "lib/sax.js",
|
||||
"publishConfig": {
|
||||
"access": "public"
|
||||
|
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@joplin/fork-uslug",
|
||||
"version": "1.0.14",
|
||||
"version": "1.0.15",
|
||||
"description": "A permissive slug generator that works with unicode.",
|
||||
"author": "Jeremy Selier <jerem.selier@gmail.com>",
|
||||
"publishConfig": {
|
||||
|
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@joplin/htmlpack",
|
||||
"version": "2.13.3",
|
||||
"version": "2.13.4",
|
||||
"description": "Pack an HTML file and all its linked resources into a single HTML file",
|
||||
"main": "dist/index.js",
|
||||
"types": "src/index.ts",
|
||||
@@ -14,7 +14,7 @@
|
||||
"author": "Laurent Cozic",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@joplin/fork-htmlparser2": "^4.1.49",
|
||||
"@joplin/fork-htmlparser2": "^4.1.50",
|
||||
"css": "3.0.0",
|
||||
"datauri": "4.1.0",
|
||||
"fs-extra": "11.1.1",
|
||||
|
@@ -1,4 +1,4 @@
|
||||
import { defaultFolderIcon, FolderEntity, FolderIcon, NoteEntity } from '../services/database/types';
|
||||
import { defaultFolderIcon, FolderEntity, FolderIcon, NoteEntity, ResourceEntity } from '../services/database/types';
|
||||
import BaseModel, { DeleteOptions } from '../BaseModel';
|
||||
import time from '../time';
|
||||
import { _ } from '../locale';
|
||||
@@ -411,14 +411,21 @@ export default class Folder extends BaseItem {
|
||||
// resume the process from the start (thus the loop) so that we deal
|
||||
// with the right note/resource associations.
|
||||
|
||||
interface Row {
|
||||
id: string;
|
||||
share_id: string;
|
||||
is_shared: number;
|
||||
resource_is_shared: number;
|
||||
}
|
||||
|
||||
for (let i = 0; i < 5; i++) {
|
||||
// Find all resources where share_id is different from parent note
|
||||
// share_id. Then update share_id on all these resources. Essentially it
|
||||
// makes it match the resource share_id to the note share_id. At the
|
||||
// same time we also process the is_shared property.
|
||||
|
||||
const rows = await this.db().selectAll(`
|
||||
SELECT r.id, n.share_id, n.is_shared
|
||||
const rows = (await this.db().selectAll(`
|
||||
SELECT r.id, n.share_id, n.is_shared, r.is_shared as resource_is_shared
|
||||
FROM note_resources nr
|
||||
LEFT JOIN resources r ON nr.resource_id = r.id
|
||||
LEFT JOIN notes n ON nr.note_id = n.id
|
||||
@@ -426,7 +433,7 @@ export default class Folder extends BaseItem {
|
||||
n.share_id != r.share_id
|
||||
OR n.is_shared != r.is_shared
|
||||
) AND nr.is_associated = 1
|
||||
`);
|
||||
`)) as Row[];
|
||||
|
||||
if (!rows.length) return;
|
||||
|
||||
@@ -434,7 +441,7 @@ export default class Folder extends BaseItem {
|
||||
|
||||
const resourceIds = rows.map(r => r.id);
|
||||
|
||||
interface Row {
|
||||
interface NoteResourceRow {
|
||||
resource_id: string;
|
||||
note_id: string;
|
||||
share_id: string;
|
||||
@@ -450,9 +457,9 @@ export default class Folder extends BaseItem {
|
||||
LEFT JOIN notes ON notes.id = note_resources.note_id
|
||||
WHERE resource_id IN ('${resourceIds.join('\',\'')}')
|
||||
AND is_associated = 1
|
||||
`) as Row[];
|
||||
`) as NoteResourceRow[];
|
||||
|
||||
const resourceIdToNotes: Record<string, Row[]> = {};
|
||||
const resourceIdToNotes: Record<string, NoteResourceRow[]> = {};
|
||||
|
||||
for (const r of noteResourceAssociations) {
|
||||
if (!resourceIdToNotes[r.resource_id]) resourceIdToNotes[r.resource_id] = [];
|
||||
@@ -496,13 +503,20 @@ export default class Folder extends BaseItem {
|
||||
} else {
|
||||
// If all is good, we can set the share_id and is_shared
|
||||
// property of the resource.
|
||||
const now = Date.now();
|
||||
for (const row of rows) {
|
||||
await Resource.save({
|
||||
const resource: ResourceEntity = {
|
||||
id: row.id,
|
||||
share_id: row.share_id || '',
|
||||
is_shared: row.is_shared,
|
||||
updated_time: Date.now(),
|
||||
}, { autoTimestamp: false });
|
||||
updated_time: now,
|
||||
};
|
||||
|
||||
if (row.is_shared !== row.resource_is_shared) {
|
||||
resource.blob_updated_time = now;
|
||||
}
|
||||
|
||||
await Resource.save(resource, { autoTimestamp: false });
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@joplin/lib",
|
||||
"version": "2.13.3",
|
||||
"version": "2.13.4",
|
||||
"description": "Joplin Core library",
|
||||
"author": "Laurent Cozic",
|
||||
"homepage": "",
|
||||
@@ -31,14 +31,14 @@
|
||||
"dependencies": {
|
||||
"@aws-sdk/client-s3": "3.296.0",
|
||||
"@aws-sdk/s3-request-presigner": "3.296.0",
|
||||
"@joplin/fork-htmlparser2": "^4.1.49",
|
||||
"@joplin/fork-sax": "^1.2.53",
|
||||
"@joplin/fork-uslug": "^1.0.14",
|
||||
"@joplin/htmlpack": "^2.13.3",
|
||||
"@joplin/renderer": "^2.13.3",
|
||||
"@joplin/turndown": "^4.0.71",
|
||||
"@joplin/turndown-plugin-gfm": "^1.0.53",
|
||||
"@joplin/utils": "^2.13.3",
|
||||
"@joplin/fork-htmlparser2": "^4.1.50",
|
||||
"@joplin/fork-sax": "^1.2.54",
|
||||
"@joplin/fork-uslug": "^1.0.15",
|
||||
"@joplin/htmlpack": "^2.13.4",
|
||||
"@joplin/renderer": "^2.13.4",
|
||||
"@joplin/turndown": "^4.0.72",
|
||||
"@joplin/turndown-plugin-gfm": "^1.0.54",
|
||||
"@joplin/utils": "^2.13.4",
|
||||
"@types/nanoid": "3.0.0",
|
||||
"async-mutex": "0.4.0",
|
||||
"base-64": "1.0.0",
|
||||
|
@@ -1,9 +1,9 @@
|
||||
import Note from '../../models/Note';
|
||||
import { createFolderTree, encryptionService, loadEncryptionMasterKey, msleep, resourceService, setupDatabaseAndSynchronizer, simulateReadOnlyShareEnv, supportDir, switchClient } from '../../testing/test-utils';
|
||||
import { createFolderTree, encryptionService, loadEncryptionMasterKey, msleep, resourceService, setupDatabaseAndSynchronizer, simulateReadOnlyShareEnv, supportDir, switchClient, synchronizerStart } from '../../testing/test-utils';
|
||||
import ShareService from './ShareService';
|
||||
import reducer, { defaultState } from '../../reducer';
|
||||
import { createStore } from 'redux';
|
||||
import { NoteEntity } from '../database/types';
|
||||
import { NoteEntity, ResourceEntity } from '../database/types';
|
||||
import Folder from '../../models/Folder';
|
||||
import { setEncryptionEnabled, setPpk } from '../synchronizer/syncInfoUtils';
|
||||
import { generateKeyPair } from '../e2ee/ppk';
|
||||
@@ -18,6 +18,7 @@ import BaseItem from '../../models/BaseItem';
|
||||
import ResourceService from '../ResourceService';
|
||||
import Setting from '../../models/Setting';
|
||||
import { ModelType } from '../../BaseModel';
|
||||
import { remoteNotesFoldersResources } from '../../testing/test-utils-synchronizer';
|
||||
|
||||
interface TestShareFolderServiceOptions {
|
||||
master_key_id?: string;
|
||||
@@ -36,6 +37,18 @@ function mockService(api: any) {
|
||||
return service;
|
||||
}
|
||||
|
||||
const mockServiceForNoteSharing = () => {
|
||||
return mockService({
|
||||
exec: (method: string, path = '', _query: Record<string, any> = null, _body: any = null, _headers: any = null, _options: any = null): Promise<any> => {
|
||||
if (method === 'GET' && path === 'api/shares') return { items: [] } as any;
|
||||
return null;
|
||||
},
|
||||
personalizedUserContentBaseUrl(_userId: string) {
|
||||
|
||||
},
|
||||
});
|
||||
};
|
||||
|
||||
describe('ShareService', () => {
|
||||
|
||||
beforeEach(async () => {
|
||||
@@ -45,15 +58,7 @@ describe('ShareService', () => {
|
||||
|
||||
it('should not change the note user timestamps when sharing or unsharing', async () => {
|
||||
let note = await Note.save({});
|
||||
const service = mockService({
|
||||
exec: (method: string, path = '', _query: Record<string, any> = null, _body: any = null, _headers: any = null, _options: any = null): Promise<any> => {
|
||||
if (method === 'GET' && path === 'api/shares') return { items: [] } as any;
|
||||
return null;
|
||||
},
|
||||
personalizedUserContentBaseUrl(_userId: string) {
|
||||
|
||||
},
|
||||
});
|
||||
const service = mockServiceForNoteSharing();
|
||||
await msleep(1);
|
||||
await service.shareNote(note.id, false);
|
||||
|
||||
@@ -82,6 +87,46 @@ describe('ShareService', () => {
|
||||
}
|
||||
});
|
||||
|
||||
it('should not encrypt items that are shared', async () => {
|
||||
const folder = await Folder.save({});
|
||||
const note = await Note.save({ parent_id: folder.id });
|
||||
await shim.attachFileToNote(note, testImagePath);
|
||||
|
||||
const service = mockServiceForNoteSharing();
|
||||
|
||||
setEncryptionEnabled(true);
|
||||
await loadEncryptionMasterKey();
|
||||
|
||||
await synchronizerStart();
|
||||
|
||||
let previousBlobUpdatedTime = Infinity;
|
||||
{
|
||||
const allItems = await remoteNotesFoldersResources();
|
||||
expect(allItems.map(it => it.encryption_applied)).toEqual([1, 1, 1]);
|
||||
previousBlobUpdatedTime = allItems.find(it => it.type_ === ModelType.Resource).blob_updated_time;
|
||||
}
|
||||
|
||||
await service.shareNote(note.id, false);
|
||||
await msleep(1);
|
||||
await Folder.updateAllShareIds(resourceService());
|
||||
|
||||
await synchronizerStart();
|
||||
|
||||
{
|
||||
const allItems = await remoteNotesFoldersResources();
|
||||
expect(allItems.find(it => it.type_ === ModelType.Note).encryption_applied).toBe(0);
|
||||
expect(allItems.find(it => it.type_ === ModelType.Folder).encryption_applied).toBe(1);
|
||||
|
||||
const resource: ResourceEntity = allItems.find(it => it.type_ === ModelType.Resource);
|
||||
expect(resource.encryption_applied).toBe(0);
|
||||
|
||||
// Indicates that both the metadata and blob have been decrypted on
|
||||
// the sync target.
|
||||
expect(resource.blob_updated_time).toBe(resource.updated_time);
|
||||
expect(resource.blob_updated_time).toBeGreaterThan(previousBlobUpdatedTime);
|
||||
}
|
||||
});
|
||||
|
||||
// eslint-disable-next-line @typescript-eslint/ban-types -- Old code before rule was applied
|
||||
function testShareFolderService(extraExecHandlers: Record<string, Function> = {}, options: TestShareFolderServiceOptions = {}) {
|
||||
return mockService({
|
||||
|
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@joplin/plugin-repo-cli",
|
||||
"version": "2.13.3",
|
||||
"version": "2.13.4",
|
||||
"description": "",
|
||||
"main": "index.js",
|
||||
"bin": "./dist/index.js",
|
||||
@@ -18,9 +18,9 @@
|
||||
"author": "",
|
||||
"license": "AGPL-3.0-or-later",
|
||||
"dependencies": {
|
||||
"@joplin/lib": "^2.13.3",
|
||||
"@joplin/tools": "^2.13.3",
|
||||
"@joplin/utils": "^2.13.3",
|
||||
"@joplin/lib": "^2.13.4",
|
||||
"@joplin/tools": "^2.13.4",
|
||||
"@joplin/utils": "^2.13.4",
|
||||
"fs-extra": "11.1.1",
|
||||
"gh-release-assets": "2.0.1",
|
||||
"node-fetch": "2.6.7",
|
||||
|
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@joplin/react-native-saf-x",
|
||||
"version": "2.13.3",
|
||||
"version": "2.13.4",
|
||||
"description": "a module to help work with scoped storages on android easily",
|
||||
"main": "src/index",
|
||||
"react-native": "src/index",
|
||||
|
@@ -43,12 +43,22 @@ function stringifyKatexOptions(options: any) {
|
||||
// \prob: {tokens: Array(12), numArgs: 1}
|
||||
// \expval: {tokens: Array(14), numArgs: 2}
|
||||
// \wf: {tokens: Array(6), numArgs: 0}
|
||||
// \@eqnsw: "1"
|
||||
//
|
||||
// Additionally, some KaTeX macros don't follow this general format. For example
|
||||
// \@eqnsw: "1"
|
||||
// is created by \begin{align}...\end{align} environments, and doesn't have a "tokens" property.
|
||||
|
||||
if (options.macros) {
|
||||
const toSerialize: any = {};
|
||||
for (const k of Object.keys(options.macros)) {
|
||||
const macroText: string[] = options.macros[k].tokens.map((t: any) => t.text);
|
||||
toSerialize[k] = `${macroText.join('')}_${options.macros[k].numArgs}`;
|
||||
const macro = options.macros[k];
|
||||
if (typeof macro === 'string') {
|
||||
toSerialize[k] = `${macro}_string`;
|
||||
} else {
|
||||
const macroText: string[] = macro.tokens.map((t: any) => t.text);
|
||||
toSerialize[k] = `${macroText.join('')}_${macro.numArgs}`;
|
||||
}
|
||||
}
|
||||
newOptions.macros = toSerialize;
|
||||
}
|
||||
|
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@joplin/renderer",
|
||||
"version": "2.13.3",
|
||||
"version": "2.13.4",
|
||||
"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.49",
|
||||
"@joplin/fork-uslug": "^1.0.14",
|
||||
"@joplin/utils": "^2.13.3",
|
||||
"@joplin/fork-htmlparser2": "^4.1.50",
|
||||
"@joplin/fork-uslug": "^1.0.15",
|
||||
"@joplin/utils": "^2.13.4",
|
||||
"font-awesome-filetypes": "2.1.0",
|
||||
"fs-extra": "11.1.1",
|
||||
"highlight.js": "11.8.0",
|
||||
|
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@joplin/tools",
|
||||
"version": "2.13.3",
|
||||
"version": "2.13.4",
|
||||
"description": "Various tools for Joplin",
|
||||
"main": "index.js",
|
||||
"author": "Laurent Cozic",
|
||||
@@ -20,9 +20,9 @@
|
||||
},
|
||||
"license": "AGPL-3.0-or-later",
|
||||
"dependencies": {
|
||||
"@joplin/lib": "^2.13.3",
|
||||
"@joplin/renderer": "^2.13.3",
|
||||
"@joplin/utils": "^2.13.3",
|
||||
"@joplin/lib": "^2.13.4",
|
||||
"@joplin/renderer": "^2.13.4",
|
||||
"@joplin/utils": "^2.13.4",
|
||||
"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.49",
|
||||
"@joplin/fork-htmlparser2": "^4.1.50",
|
||||
"@rmp135/sql-ts": "1.18.0",
|
||||
"@types/fs-extra": "11.0.3",
|
||||
"@types/jest": "29.5.5",
|
||||
|
@@ -4,7 +4,7 @@
|
||||
"publishConfig": {
|
||||
"access": "public"
|
||||
},
|
||||
"version": "1.0.53",
|
||||
"version": "1.0.54",
|
||||
"author": "Dom Christie",
|
||||
"main": "lib/turndown-plugin-gfm.cjs.js",
|
||||
"devDependencies": {
|
||||
|
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "@joplin/turndown",
|
||||
"description": "A library that converts HTML to Markdown",
|
||||
"version": "4.0.71",
|
||||
"version": "4.0.72",
|
||||
"author": "Dom Christie",
|
||||
"main": "lib/turndown.cjs.js",
|
||||
"publishConfig": {
|
||||
|
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "@joplin/utils",
|
||||
"version": "2.13.3",
|
||||
"version": "2.13.4",
|
||||
"description": "Utilities for Joplin",
|
||||
"repository": "https://github.com/laurent22/joplin/tree/dev/packages/utils",
|
||||
"exports": {
|
||||
|
@@ -1,5 +1,9 @@
|
||||
# Joplin Android Changelog
|
||||
|
||||
## [android-v2.13.10](https://github.com/laurent22/joplin/releases/tag/android-v2.13.10) (Pre-release) - 2023-12-01T11:16:17Z
|
||||
|
||||
- Improved: Drawing: Revert recent changes to input system (#9426) (#9427 by Henry Heino)
|
||||
|
||||
## [android-v2.13.9](https://github.com/laurent22/joplin/releases/tag/android-v2.13.9) (Pre-release) - 2023-11-30T17:55:54Z
|
||||
|
||||
- Improved: Don't attach empty drawings when a user exits without saving (#9386) (#9377 by Henry Heino)
|
||||
|
@@ -1,5 +1,11 @@
|
||||
# Joplin Terminal App Changelog
|
||||
|
||||
## [cli-v2.13.2](https://github.com/laurent22/joplin/releases/tag/cli-v2.13.2) - 2023-11-30T18:11:38Z
|
||||
|
||||
- Improved: Updated packages mermaid (v10.5.1), sass (v1.69.5)
|
||||
- Fixed: Import of inter-linked md files has incorrect notebook structure (#9269) (#9151 by [@pedr](https://github.com/pedr))
|
||||
- Fixed: Work around WebDAV sync issues over ipv6 (#9286) (#8788 by Henry Heino)
|
||||
|
||||
## [cli-v2.13.1](https://github.com/laurent22/joplin/releases/tag/cli-v2.13.1) - 2023-11-09T20:08:17Z
|
||||
|
||||
- Improved: Allow modifying a resource metadata only when synchronising (#9114)
|
||||
|
@@ -1,5 +1,14 @@
|
||||
# Joplin iOS Changelog
|
||||
|
||||
## [ios-v12.13.10](https://github.com/laurent22/joplin/releases/tag/ios-v12.13.10) - 2023-12-01T12:07:57Z
|
||||
|
||||
- Improved: Drawing: Revert recent changes to input system (#9426) (#9427 by Henry Heino)
|
||||
|
||||
## [ios-v12.13.9](https://github.com/laurent22/joplin/releases/tag/ios-v12.13.9) - 2023-11-30T17:56:37Z
|
||||
|
||||
- Improved: Don't attach empty drawings when a user exits without saving (#9386) (#9377 by Henry Heino)
|
||||
- Fixed: Fix tooltips don't disappear on some devices (upgrade to js-draw 1.13.2) (#9401) (#9374 by Henry Heino)
|
||||
|
||||
## [ios-v12.13.8](https://github.com/laurent22/joplin/releases/tag/ios-v12.13.8) - 2023-11-26T12:54:44Z
|
||||
|
||||
- Fixed: Fix to-dos options toggle don't toggle a rerender (#9364) (#9361 by [@pedr](https://github.com/pedr))
|
||||
|
78
yarn.lock
78
yarn.lock
@@ -6293,7 +6293,7 @@ __metadata:
|
||||
"@joplin/renderer": ~2.13
|
||||
"@joplin/tools": ~2.13
|
||||
"@joplin/utils": ~2.13
|
||||
"@js-draw/material-icons": 1.13.2
|
||||
"@js-draw/material-icons": 1.14.0
|
||||
"@lezer/highlight": 1.1.4
|
||||
"@react-native-community/clipboard": 1.5.1
|
||||
"@react-native-community/datetimepicker": 7.6.1
|
||||
@@ -6323,7 +6323,7 @@ __metadata:
|
||||
jest: 29.7.0
|
||||
jest-environment-jsdom: 29.7.0
|
||||
jetifier: 2.0.0
|
||||
js-draw: 1.13.2
|
||||
js-draw: 1.14.0
|
||||
jsc-android: 241213.1.0
|
||||
jsdom: 22.1.0
|
||||
lodash: 4.17.21
|
||||
@@ -6437,7 +6437,7 @@ __metadata:
|
||||
languageName: unknown
|
||||
linkType: soft
|
||||
|
||||
"@joplin/fork-htmlparser2@^4.1.49, @joplin/fork-htmlparser2@workspace:packages/fork-htmlparser2":
|
||||
"@joplin/fork-htmlparser2@^4.1.50, @joplin/fork-htmlparser2@workspace:packages/fork-htmlparser2":
|
||||
version: 0.0.0-use.local
|
||||
resolution: "@joplin/fork-htmlparser2@workspace:packages/fork-htmlparser2"
|
||||
dependencies:
|
||||
@@ -6458,7 +6458,7 @@ __metadata:
|
||||
languageName: unknown
|
||||
linkType: soft
|
||||
|
||||
"@joplin/fork-sax@^1.2.53, @joplin/fork-sax@workspace:packages/fork-sax":
|
||||
"@joplin/fork-sax@^1.2.54, @joplin/fork-sax@workspace:packages/fork-sax":
|
||||
version: 0.0.0-use.local
|
||||
resolution: "@joplin/fork-sax@workspace:packages/fork-sax"
|
||||
dependencies:
|
||||
@@ -6467,7 +6467,7 @@ __metadata:
|
||||
languageName: unknown
|
||||
linkType: soft
|
||||
|
||||
"@joplin/fork-uslug@^1.0.14, @joplin/fork-uslug@workspace:packages/fork-uslug":
|
||||
"@joplin/fork-uslug@^1.0.15, @joplin/fork-uslug@workspace:packages/fork-uslug":
|
||||
version: 0.0.0-use.local
|
||||
resolution: "@joplin/fork-uslug@workspace:packages/fork-uslug"
|
||||
dependencies:
|
||||
@@ -6477,11 +6477,11 @@ __metadata:
|
||||
languageName: unknown
|
||||
linkType: soft
|
||||
|
||||
"@joplin/htmlpack@^2.13.3, @joplin/htmlpack@workspace:packages/htmlpack":
|
||||
"@joplin/htmlpack@^2.13.4, @joplin/htmlpack@workspace:packages/htmlpack":
|
||||
version: 0.0.0-use.local
|
||||
resolution: "@joplin/htmlpack@workspace:packages/htmlpack"
|
||||
dependencies:
|
||||
"@joplin/fork-htmlparser2": ^4.1.49
|
||||
"@joplin/fork-htmlparser2": ^4.1.50
|
||||
"@types/fs-extra": 11.0.3
|
||||
css: 3.0.0
|
||||
datauri: 4.1.0
|
||||
@@ -6490,20 +6490,20 @@ __metadata:
|
||||
languageName: unknown
|
||||
linkType: soft
|
||||
|
||||
"@joplin/lib@^2.13.3, @joplin/lib@workspace:packages/lib, @joplin/lib@~2.13":
|
||||
"@joplin/lib@^2.13.4, @joplin/lib@workspace:packages/lib, @joplin/lib@~2.13":
|
||||
version: 0.0.0-use.local
|
||||
resolution: "@joplin/lib@workspace:packages/lib"
|
||||
dependencies:
|
||||
"@aws-sdk/client-s3": 3.296.0
|
||||
"@aws-sdk/s3-request-presigner": 3.296.0
|
||||
"@joplin/fork-htmlparser2": ^4.1.49
|
||||
"@joplin/fork-sax": ^1.2.53
|
||||
"@joplin/fork-uslug": ^1.0.14
|
||||
"@joplin/htmlpack": ^2.13.3
|
||||
"@joplin/renderer": ^2.13.3
|
||||
"@joplin/turndown": ^4.0.71
|
||||
"@joplin/turndown-plugin-gfm": ^1.0.53
|
||||
"@joplin/utils": ^2.13.3
|
||||
"@joplin/fork-htmlparser2": ^4.1.50
|
||||
"@joplin/fork-sax": ^1.2.54
|
||||
"@joplin/fork-uslug": ^1.0.15
|
||||
"@joplin/htmlpack": ^2.13.4
|
||||
"@joplin/renderer": ^2.13.4
|
||||
"@joplin/turndown": ^4.0.72
|
||||
"@joplin/turndown-plugin-gfm": ^1.0.54
|
||||
"@joplin/utils": ^2.13.4
|
||||
"@types/fs-extra": 11.0.3
|
||||
"@types/jest": 29.5.5
|
||||
"@types/js-yaml": 4.0.8
|
||||
@@ -6607,9 +6607,9 @@ __metadata:
|
||||
version: 0.0.0-use.local
|
||||
resolution: "@joplin/plugin-repo-cli@workspace:packages/plugin-repo-cli"
|
||||
dependencies:
|
||||
"@joplin/lib": ^2.13.3
|
||||
"@joplin/tools": ^2.13.3
|
||||
"@joplin/utils": ^2.13.3
|
||||
"@joplin/lib": ^2.13.4
|
||||
"@joplin/tools": ^2.13.4
|
||||
"@joplin/utils": ^2.13.4
|
||||
"@types/fs-extra": 11.0.3
|
||||
"@types/jest": 29.5.5
|
||||
"@types/node": 18.18.7
|
||||
@@ -6658,13 +6658,13 @@ __metadata:
|
||||
languageName: unknown
|
||||
linkType: soft
|
||||
|
||||
"@joplin/renderer@^2.13.3, @joplin/renderer@workspace:packages/renderer, @joplin/renderer@~2.13":
|
||||
"@joplin/renderer@^2.13.4, @joplin/renderer@workspace:packages/renderer, @joplin/renderer@~2.13":
|
||||
version: 0.0.0-use.local
|
||||
resolution: "@joplin/renderer@workspace:packages/renderer"
|
||||
dependencies:
|
||||
"@joplin/fork-htmlparser2": ^4.1.49
|
||||
"@joplin/fork-uslug": ^1.0.14
|
||||
"@joplin/utils": ^2.13.3
|
||||
"@joplin/fork-htmlparser2": ^4.1.50
|
||||
"@joplin/fork-uslug": ^1.0.15
|
||||
"@joplin/utils": ^2.13.4
|
||||
"@types/jest": 29.5.5
|
||||
"@types/markdown-it": 13.0.5
|
||||
"@types/node": 18.18.7
|
||||
@@ -6761,15 +6761,15 @@ __metadata:
|
||||
languageName: unknown
|
||||
linkType: soft
|
||||
|
||||
"@joplin/tools@^2.13.3, @joplin/tools@workspace:packages/tools, @joplin/tools@~2.13":
|
||||
"@joplin/tools@^2.13.4, @joplin/tools@workspace:packages/tools, @joplin/tools@~2.13":
|
||||
version: 0.0.0-use.local
|
||||
resolution: "@joplin/tools@workspace:packages/tools"
|
||||
dependencies:
|
||||
"@docusaurus/plugin-sitemap": 2.4.3
|
||||
"@joplin/fork-htmlparser2": ^4.1.49
|
||||
"@joplin/lib": ^2.13.3
|
||||
"@joplin/renderer": ^2.13.3
|
||||
"@joplin/utils": ^2.13.3
|
||||
"@joplin/fork-htmlparser2": ^4.1.50
|
||||
"@joplin/lib": ^2.13.4
|
||||
"@joplin/renderer": ^2.13.4
|
||||
"@joplin/utils": ^2.13.4
|
||||
"@rmp135/sql-ts": 1.18.0
|
||||
"@types/fs-extra": 11.0.3
|
||||
"@types/jest": 29.5.5
|
||||
@@ -6809,7 +6809,7 @@ __metadata:
|
||||
languageName: unknown
|
||||
linkType: soft
|
||||
|
||||
"@joplin/turndown-plugin-gfm@^1.0.53, @joplin/turndown-plugin-gfm@workspace:packages/turndown-plugin-gfm":
|
||||
"@joplin/turndown-plugin-gfm@^1.0.54, @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:
|
||||
@@ -6821,7 +6821,7 @@ __metadata:
|
||||
languageName: unknown
|
||||
linkType: soft
|
||||
|
||||
"@joplin/turndown@^4.0.71, @joplin/turndown@workspace:packages/turndown":
|
||||
"@joplin/turndown@^4.0.72, @joplin/turndown@workspace:packages/turndown":
|
||||
version: 0.0.0-use.local
|
||||
resolution: "@joplin/turndown@workspace:packages/turndown"
|
||||
dependencies:
|
||||
@@ -6838,7 +6838,7 @@ __metadata:
|
||||
languageName: unknown
|
||||
linkType: soft
|
||||
|
||||
"@joplin/utils@^2.13.3, @joplin/utils@workspace:packages/utils, @joplin/utils@~2.13":
|
||||
"@joplin/utils@^2.13.4, @joplin/utils@workspace:packages/utils, @joplin/utils@~2.13":
|
||||
version: 0.0.0-use.local
|
||||
resolution: "@joplin/utils@workspace:packages/utils"
|
||||
dependencies:
|
||||
@@ -6990,12 +6990,12 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"@js-draw/material-icons@npm:1.13.2":
|
||||
version: 1.13.2
|
||||
resolution: "@js-draw/material-icons@npm:1.13.2"
|
||||
"@js-draw/material-icons@npm:1.14.0":
|
||||
version: 1.14.0
|
||||
resolution: "@js-draw/material-icons@npm:1.14.0"
|
||||
peerDependencies:
|
||||
js-draw: ^1.0.1
|
||||
checksum: a442d10926b9218b959a2c5d441998c009d72be9b1c3c48a35501be74a27f107963e1c02dfa6c5c075d474de164a8d4571d0cb00a79645205c988f89a8ae5ea8
|
||||
checksum: 6e67ee6399b9b4f9e5891952e71a978acd69c0d386fe80c957ad884ab8e9f4f954aa0d9dd1b08e78f314b0b8f3807989a482ed4a153457a8bba67f5989dd7a0c
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
@@ -26295,13 +26295,13 @@ __metadata:
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
"js-draw@npm:1.13.2":
|
||||
version: 1.13.2
|
||||
resolution: "js-draw@npm:1.13.2"
|
||||
"js-draw@npm:1.14.0":
|
||||
version: 1.14.0
|
||||
resolution: "js-draw@npm:1.14.0"
|
||||
dependencies:
|
||||
"@js-draw/math": ^1.11.1
|
||||
"@melloware/coloris": 0.22.0
|
||||
checksum: 22dc85634f5717c015f31d0e6daabe8eb189930dc102a96b1a49f548e9b208d302e014822ed04b82931a5ba2bacd3a33d9407d8d0a329966595e83e118075fa7
|
||||
checksum: 0e2bbf318a8ebc645ed83f8cf0ef1f43a49d85b5f83e0be1616ec200d37817070a002bda54ef21df72d74a37597aa61e61e94559b27fbe4de8fcdb70effa04d4
|
||||
languageName: node
|
||||
linkType: hard
|
||||
|
||||
|
Reference in New Issue
Block a user