1
0
mirror of https://github.com/laurent22/joplin.git synced 2025-08-27 20:29:45 +02:00

Compare commits

..

1 Commits

Author SHA1 Message Date
Laurent Cozic
b490537c26 Publish
- joplin@2.2.2
 - @joplin/app-clipper@1.0.9
 - @joplin/app-desktop@2.2.7
 - @joplin/app-mobile@0.8.10
 - @joplin/fork-htmlparser2@4.1.31
 - @joplin/fork-sax@1.2.35
 - generator-joplin@2.2.2
 - @joplin/lib@2.2.3
 - @joplin/plugin-repo-cli@2.2.3
 - @joplin/plugins@0.0.1
 - @joplin/renderer@2.2.3
 - @joplin/server@2.2.12
 - @joplin/tools@2.2.3
 - @joplin/turndown-plugin-gfm@1.0.35
 - @joplin/turndown@4.0.53
2021-08-10 15:09:17 +01:00
197 changed files with 90027 additions and 243938 deletions

View File

@@ -978,9 +978,6 @@ packages/lib/models/ItemChange.js.map
packages/lib/models/MasterKey.d.ts
packages/lib/models/MasterKey.js
packages/lib/models/MasterKey.js.map
packages/lib/models/MasterKey.test.d.ts
packages/lib/models/MasterKey.test.js
packages/lib/models/MasterKey.test.js.map
packages/lib/models/Migration.d.ts
packages/lib/models/Migration.js
packages/lib/models/Migration.js.map
@@ -1176,9 +1173,6 @@ packages/lib/services/database/types.js.map
packages/lib/services/debug/populateDatabase.d.ts
packages/lib/services/debug/populateDatabase.js
packages/lib/services/debug/populateDatabase.js.map
packages/lib/services/e2ee/utils.d.ts
packages/lib/services/e2ee/utils.js
packages/lib/services/e2ee/utils.js.map
packages/lib/services/interop/InteropService.d.ts
packages/lib/services/interop/InteropService.js
packages/lib/services/interop/InteropService.js.map
@@ -1506,12 +1500,6 @@ packages/lib/services/synchronizer/migrations/1.js.map
packages/lib/services/synchronizer/migrations/2.d.ts
packages/lib/services/synchronizer/migrations/2.js
packages/lib/services/synchronizer/migrations/2.js.map
packages/lib/services/synchronizer/migrations/3.d.ts
packages/lib/services/synchronizer/migrations/3.js
packages/lib/services/synchronizer/migrations/3.js.map
packages/lib/services/synchronizer/syncInfoUtils.d.ts
packages/lib/services/synchronizer/syncInfoUtils.js
packages/lib/services/synchronizer/syncInfoUtils.js.map
packages/lib/services/synchronizer/synchronizer_LockHandler.test.d.ts
packages/lib/services/synchronizer/synchronizer_LockHandler.test.js
packages/lib/services/synchronizer/synchronizer_LockHandler.test.js.map
@@ -1731,9 +1719,6 @@ packages/tools/release-ios.js.map
packages/tools/release-server.d.ts
packages/tools/release-server.js
packages/tools/release-server.js.map
packages/tools/setupNewRelease.d.ts
packages/tools/setupNewRelease.js
packages/tools/setupNewRelease.js.map
packages/tools/tool-utils.d.ts
packages/tools/tool-utils.js
packages/tools/tool-utils.js.map

View File

@@ -39,7 +39,7 @@ jobs:
- uses: olegtarasov/get-tag@v2.1
- uses: actions/setup-node@v2
with:
node-version: '16'
node-version: '12'
# Login to Docker only if we're on a server release tag. If we run this on
# a pull request it will fail because the PR doesn't have access to

15
.gitignore vendored
View File

@@ -963,9 +963,6 @@ packages/lib/models/ItemChange.js.map
packages/lib/models/MasterKey.d.ts
packages/lib/models/MasterKey.js
packages/lib/models/MasterKey.js.map
packages/lib/models/MasterKey.test.d.ts
packages/lib/models/MasterKey.test.js
packages/lib/models/MasterKey.test.js.map
packages/lib/models/Migration.d.ts
packages/lib/models/Migration.js
packages/lib/models/Migration.js.map
@@ -1161,9 +1158,6 @@ packages/lib/services/database/types.js.map
packages/lib/services/debug/populateDatabase.d.ts
packages/lib/services/debug/populateDatabase.js
packages/lib/services/debug/populateDatabase.js.map
packages/lib/services/e2ee/utils.d.ts
packages/lib/services/e2ee/utils.js
packages/lib/services/e2ee/utils.js.map
packages/lib/services/interop/InteropService.d.ts
packages/lib/services/interop/InteropService.js
packages/lib/services/interop/InteropService.js.map
@@ -1491,12 +1485,6 @@ packages/lib/services/synchronizer/migrations/1.js.map
packages/lib/services/synchronizer/migrations/2.d.ts
packages/lib/services/synchronizer/migrations/2.js
packages/lib/services/synchronizer/migrations/2.js.map
packages/lib/services/synchronizer/migrations/3.d.ts
packages/lib/services/synchronizer/migrations/3.js
packages/lib/services/synchronizer/migrations/3.js.map
packages/lib/services/synchronizer/syncInfoUtils.d.ts
packages/lib/services/synchronizer/syncInfoUtils.js
packages/lib/services/synchronizer/syncInfoUtils.js.map
packages/lib/services/synchronizer/synchronizer_LockHandler.test.d.ts
packages/lib/services/synchronizer/synchronizer_LockHandler.test.js
packages/lib/services/synchronizer/synchronizer_LockHandler.test.js.map
@@ -1716,9 +1704,6 @@ packages/tools/release-ios.js.map
packages/tools/release-server.d.ts
packages/tools/release-server.js
packages/tools/release-server.js.map
packages/tools/setupNewRelease.d.ts
packages/tools/setupNewRelease.js
packages/tools/setupNewRelease.js.map
packages/tools/tool-utils.d.ts
packages/tools/tool-utils.js
packages/tools/tool-utils.js.map

View File

@@ -113,10 +113,6 @@ blockquote {
font-size: 16px !important;
}
.button-link {
white-space: nowrap;
}
.sponsor-button i {
font-size: 0.8em;
}
@@ -291,12 +287,6 @@ p,
/* margin-bottom: 10px; */
}
div.navbar-mobile-content a.sponsor-button {
padding: 4px 12px;
font-size: 0.9em;
margin-right: 1em;
}
#nav-section.white-bg a {
color: #0557ba;
}

View File

@@ -19,9 +19,7 @@
{{/showJoplinCloudLinks}}
{{> supportButton}}
</div>
<div class="col-9 text-right d-block d-md-none navbar-mobile-content">
{{> supportButton}}
<div class="col-9 text-right d-block d-md-none">
<span class="pointer"
><img
src="{{#isFrontPage}}{{imageBaseUrl}}/mobile-menu-open-icon.png{{/isFrontPage}}{{^isFrontPage}}{{imageBaseUrl}}/mobile-menu-black-open-icon.png{{/isFrontPage}}"

View File

@@ -1,13 +1,10 @@
# https://versatile.nl/blog/deploying-lerna-web-apps-with-docker
FROM node:16
FROM node:12
RUN apt-get update
RUN apt-get --yes install vim
RUN echo "Node: $(node --version)"
RUN echo "Npm: $(npm --version)"
ARG user=joplin
RUN useradd --create-home --shell /bin/bash $user

View File

@@ -2,17 +2,6 @@
set -e
trap 'handleError' ERR
handleError() {
echo ""
echo "If you encountered an error, please consider fixing"
echo "the script for your environment and creating a pull"
echo "request instead of asking for support on GitHub or"
echo "the forum. The error message above should tell you"
echo "where and why the error happened."
}
#-----------------------------------------------------
# Variables
#-----------------------------------------------------

View File

@@ -227,7 +227,7 @@ If the **terminal client** has been installed, it is possible to also synchronis
<img src="https://raw.githubusercontent.com/laurent22/joplin/dev/Assets/WebsiteAssets/images/nextcloud-logo-background.png" width="100" align="left"> <a href="https://nextcloud.com/">Nextcloud</a> is a self-hosted, private cloud solution. It can store documents, images and videos but also calendars, passwords and countless other things and can sync them to your laptop or phone. As you can host your own Nextcloud server, you own both the data on your device and infrastructure used for synchronisation. As such it is a good fit for Joplin. The platform is also well supported and with a strong community, so it is likely to be around for a while - since it's open source anyway, it is not a service that can be closed, it can exist on a server for as long as one chooses.
In the **desktop application** or **mobile application**, go to the [Configuration screen](https://github.com/laurent22/joplin/blob/dev/readme/config_screen.md) and select Nextcloud as the synchronisation target. Then input the WebDAV URL (to get it, click on Settings in the bottom left corner of the page, in Nextcloud), this is normally `https://example.com/nextcloud/remote.php/webdav/Joplin` (**make sure to create the "Joplin" directory in Nextcloud**), and set the username and password. If it does not work, please [see this explanation](https://github.com/laurent22/joplin/issues/61#issuecomment-373282608) for more details.
In the **desktop application** or **mobile application**, go to the Configuration screen and select Nextcloud as the synchronisation target. Then input the WebDAV URL (to get it, click on Settings in the bottom left corner of the page, in Nextcloud), this is normally `https://example.com/nextcloud/remote.php/webdav/Joplin` (**make sure to create the "Joplin" directory in Nextcloud**), and set the username and password. If it does not work, please [see this explanation](https://github.com/laurent22/joplin/issues/61#issuecomment-373282608) for more details.
In the **terminal application**, you will need to set the `sync.target` config variable and all the `sync.5.path`, `sync.5.username` and `sync.5.password` config variables to, respectively the Nextcloud WebDAV URL, your username and your password. This can be done from the command line mode using:
@@ -261,7 +261,7 @@ WebDAV-compatible services that are known to work with Joplin:
When syncing with Dropbox, Joplin creates a sub-directory in Dropbox, in `/Apps/Joplin` and read/write the notes and notebooks from it. The application does not have access to anything outside this directory.
In the **desktop application** or **mobile application**, select "Dropbox" as the synchronisation target in the [Configuration screen](https://github.com/laurent22/joplin/blob/dev/readme/config_screen.md) (it is selected by default). Then, to initiate the synchronisation process, click on the "Synchronise" button in the sidebar and follow the instructions.
In the **desktop application** or **mobile application**, select "Dropbox" as the synchronisation target in the Configuration screen (it is selected by default). Then, to initiate the synchronisation process, click on the "Synchronise" button in the sidebar and follow the instructions.
In the **terminal application**, to initiate the synchronisation process, type `:sync`. You will be asked to follow a link to authorise the application.
@@ -269,13 +269,13 @@ In the **terminal application**, to initiate the synchronisation process, type `
When syncing with OneDrive, Joplin creates a sub-directory in OneDrive, in /Apps/Joplin and read/write the notes and notebooks from it. The application does not have access to anything outside this directory.
In the **desktop application** or **mobile application**, select "OneDrive" as the synchronisation target in the [Configuration screen](https://github.com/laurent22/joplin/blob/dev/readme/config_screen.md). Then, to initiate the synchronisation process, click on the "Synchronise" button in the sidebar and follow the instructions.
In the **desktop application** or **mobile application**, select "OneDrive" as the synchronisation target in the Configuration screen. Then, to initiate the synchronisation process, click on the "Synchronise" button in the sidebar and follow the instructions.
In the **terminal application**, to initiate the synchronisation process, type `:sync`. You will be asked to follow a link to authorise the application (simply input your Microsoft credentials - you do not need to register with OneDrive).
## AWS S3 synchronisation
In the **desktop application** or **mobile application**, select "AWS S3 (Beta)" as the synchronisation target in the [Configuration screen](https://github.com/laurent22/joplin/blob/dev/readme/config_screen.md).
In the **desktop application** or **mobile application**, select "AWS S3 (Beta)" as the synchronisation target in the Configuration screen.
- **AWS S3 Bucket:** The name of your Bucket, such as `joplin-bucket`
- **AWS S3 URL:** Fully qualified URL; By default this should be `https://s3.amazonaws.com/`
@@ -321,7 +321,7 @@ For a more technical description, mostly relevant for development or to review t
The Joplin applications automatically save previous versions of your notes at regular intervals. These versions are synced across devices and can be viewed from the desktop application. To do so, click on the "Information" button on a note, then click on "Previous version of this note". From this screen you can view the previous versions of the note as well as restore any of them.
This feature can be disabled from the "Note history" section in the [Configuration screen](https://github.com/laurent22/joplin/blob/dev/readme/config_screen.md), and it is also possible to change for how long the history of a note is saved.
This feature can be disabled from the "Note history" section in the Configuration screen, and it is also possible to change for how long the history of a note is saved.
More information please see the [Note History page](https://github.com/laurent22/joplin/blob/dev/readme/note_history.md).
@@ -341,7 +341,7 @@ Resources that are not attached to any note will be automatically deleted in acc
## Downloading attachments
The way the attachments are downloaded during synchronisation can be customised in the [Configuration screen](https://github.com/laurent22/joplin/blob/dev/readme/config_screen.md), under "Attachment download behaviour". The default option ("Always") is to download all the attachments, all the time, so that the data is available even when the device is offline. There is also the option to download the attachments manually (option "Manual"), by clicking on it, or automatically (Option "Auto"), in which case the attachments are downloaded only when a note is opened. These options should help saving disk space and network bandwidth, especially on mobile.
The way the attachments are downloaded during synchronisation can be customised in the Configuration screen, under "Attachment download behaviour". The default option ("Always") is to download all the attachments, all the time, so that the data is available even when the device is offline. There is also the option to download the attachments manually (option "Manual"), by clicking on it, or automatically (Option "Auto"), in which case the attachments are downloaded only when a note is opened. These options should help saving disk space and network bandwidth, especially on mobile.
# Notifications
@@ -373,7 +373,7 @@ Joplin uses and renders a Github-flavoured Markdown with a few variations and ad
# Custom CSS
Rendered markdown can be customized by placing a userstyle file in the profile directory `~/.config/joplin-desktop/userstyle.css` (This path might be different on your device - check at the top of the `General` page of the [Configuration screen](https://github.com/laurent22/joplin/blob/dev/readme/config_screen.md) for the exact path). This file supports standard CSS syntax. Joplin ***must*** be restarted for the new css to be applied, please ensure that Joplin is not closing to the tray, but is actually exiting. Note that this file is used for both displaying the notes and printing the notes. Be aware how the CSS may look printed (for example, printing white text over a black background is usually not wanted).
Rendered markdown can be customized by placing a userstyle file in the profile directory `~/.config/joplin-desktop/userstyle.css` (This path might be different on your device - check at the top of the `General` page of the Configuration menu for the exact path). This file supports standard CSS syntax. Joplin ***must*** be restarted for the new css to be applied, please ensure that Joplin is not closing to the tray, but is actually exiting. Note that this file is used for both displaying the notes and printing the notes. Be aware how the CSS may look printed (for example, printing white text over a black background is usually not wanted).
The whole UI can be customized by placing a custom editor style file in the profile directory `~/.config/joplin-desktop/userchrome.css`.
@@ -381,7 +381,7 @@ Important: userstyle.css and userchrome.css are provided for your convenience, b
# Plugins
The **desktop app** has the ability to extend beyond its standard functionality by the way of plugins. These plugins adhere to the Joplin plugin API and can be installed & configured within the application via the `Plugins` page in the [Configuration screen](https://github.com/laurent22/joplin/blob/dev/readme/config_screen.md). This menu allows the manual installation of the plugin using the single 'Joplin Plugin Archive' (*.jpl) file. Once the application is reloaded the plugins will appear within the plugins menu where they can be toggled on/off or removed entirely.
The **desktop app** has the ability to extend beyond its standard functionality by the way of plugins. These plugins adhere to the Joplin plugin API and can be installed & configured within the application via the `Plugins` page in the Configuration screen. This menu allows the manual installation of the plugin using the single 'Joplin Plugin Archive' (*.jpl) file. Once the application is reloaded the plugins will appear within the plugins menu where they can be toggled on/off or removed entirely.
Plugins are currently maintained by the community in the [Joplin Discourse 'plugins' category](https://discourse.joplinapp.org/c/plugins/18).

18678
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -402,16 +402,8 @@ class Application extends BaseApplication {
}
}
// We need this special case here because by the time the `version` command
// runs, the keychain has already been setup.
checkIfKeychainEnabled(argv) {
return argv.indexOf('version') < 0;
}
async start(argv) {
const keychainEnabled = this.checkIfKeychainEnabled(argv);
argv = await super.start(argv, { keychainEnabled });
argv = await super.start(argv);
cliUtils.setStdout(object => {
return this.stdout(object);

View File

@@ -6,8 +6,6 @@ import BaseItem from '@joplin/lib/models/BaseItem';
import Setting from '@joplin/lib/models/Setting';
import shim from '@joplin/lib/shim';
import * as pathUtils from '@joplin/lib/path-utils';
import { getEncryptionEnabled } from '@joplin/lib/services/synchronizer/syncInfoUtils';
import { generateMasterKeyAndEnableEncryption, loadMasterKeysFromSettings, setupAndDisableEncryption } from '@joplin/lib/services/e2ee/utils';
const imageType = require('image-type');
const readChunk = require('read-chunk');
@@ -41,7 +39,7 @@ class Command extends BaseCommand {
return false;
}
Setting.setObjectValue('encryption.passwordCache', masterKeyId, password);
await loadMasterKeysFromSettings(EncryptionService.instance());
await EncryptionService.instance().loadMasterKeysFromSettings();
return true;
};
@@ -95,12 +93,12 @@ class Command extends BaseCommand {
}
}
await generateMasterKeyAndEnableEncryption(EncryptionService.instance(), password);
await EncryptionService.instance().generateMasterKeyAndEnableEncryption(password);
return;
}
if (args.command === 'disable') {
await setupAndDisableEncryption(EncryptionService.instance());
await EncryptionService.instance().disableEncryption();
return;
}
@@ -117,7 +115,7 @@ class Command extends BaseCommand {
}
if (args.command === 'status') {
this.stdout(_('Encryption is: %s', getEncryptionEnabled() ? _('Enabled') : _('Disabled')));
this.stdout(_('Encryption is: %s', Setting.value('encryption.enabled') ? _('Enabled') : _('Disabled')));
return;
}

View File

@@ -187,7 +187,6 @@ class Command extends BaseCommand {
try {
const migrationHandler = new MigrationHandler(
sync.api(),
reg.db(),
sync.lockHandler(),
Setting.value('appType'),
Setting.value('clientId')

View File

@@ -1,6 +1,6 @@
const { BaseCommand } = require('./base-command.js');
const Setting = require('@joplin/lib/models/Setting').default;
const { _ } = require('@joplin/lib/locale');
const versionInfo = require('@joplin/lib/versionInfo').default;
class Command extends BaseCommand {
usage() {
@@ -12,7 +12,8 @@ class Command extends BaseCommand {
}
async action() {
this.stdout(versionInfo(require('./package.json')).message);
const p = require('./package.json');
this.stdout(_('%s %s (%s)', p.name, p.version, Setting.value('env')));
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -32,7 +32,7 @@
],
"owner": "Laurent Cozic"
},
"version": "2.3.0",
"version": "2.2.2",
"bin": {
"joplin": "./main.js"
},
@@ -40,9 +40,8 @@
"node": ">=10.0.0"
},
"dependencies": {
"@joplin/lib": "~2.3",
"@joplin/renderer": "~2.3",
"aws-sdk": "^2.588.0",
"@joplin/lib": "2.1",
"@joplin/renderer": "2.1",
"chalk": "^4.1.0",
"compare-version": "^0.1.2",
"fs-extra": "^5.0.0",
@@ -65,7 +64,7 @@
"yargs-parser": "^7.0.0"
},
"devDependencies": {
"@joplin/tools": "~2.3",
"@joplin/tools": "2.1",
"@types/fs-extra": "^9.0.6",
"@types/jest": "^26.0.15",
"@types/node": "^14.14.6",

View File

@@ -1,6 +1,7 @@
import MdToHtml from '@joplin/renderer/MdToHtml';
const os = require('os');
const { filename } = require('@joplin/lib/path-utils');
import { setupDatabaseAndSynchronizer, switchClient } from '@joplin/lib/testing/test-utils';
const { setupDatabaseAndSynchronizer, switchClient } = require('@joplin/lib/testing/test-utils.js');
import shim from '@joplin/lib/shim';
const { themeStyle } = require('@joplin/lib/theme');
@@ -56,8 +57,10 @@ describe('MdToHtml', function() {
const result = await mdToHtml.render(markdown, null, mdToHtmlOptions);
let actualHtml = result.html;
expectedHtml = expectedHtml.replace(/\r?\n/g, '\n');
actualHtml = actualHtml.replace(/\r?\n/g, '\n');
if (os.EOL === '\r\n') {
expectedHtml = expectedHtml.replace(/\r\n/g, '\n');
actualHtml = actualHtml.replace(/\r\n/g, '\n');
}
if (actualHtml !== expectedHtml) {
console.info('');

View File

@@ -1,6 +1,7 @@
const mdImporterService = require('@joplin/lib/services/interop/InteropService_Importer_Md').default;
const Note = require('@joplin/lib/models/Note').default;
import { setupDatabaseAndSynchronizer, switchClient } from '@joplin/lib/testing/test-utils';
const { setupDatabaseAndSynchronizer, switchClient } = require('@joplin/lib/testing/test-utils.js');
const importer = new mdImporterService();

View File

@@ -1,5 +1,5 @@
<div class="joplin-editable"><pre class="joplin-source" data-joplin-language="javascript" data-joplin-source-open="```javascript&#10;" data-joplin-source-close="&#10;```">function() {
console.info('bonjour');
}</pre><pre class="hljs"><code><span class="hljs-keyword">function</span>(<span class="hljs-params"></span>) {
<span class="hljs-variable language_">console</span>.<span class="hljs-title function_">info</span>(<span class="hljs-string">&#x27;bonjour&#x27;</span>);
}</pre><pre class="hljs"><code><span class="hljs-function"><span class="hljs-keyword">function</span>(<span class="hljs-params"></span>) </span>{
<span class="hljs-built_in">console</span>.info(<span class="hljs-string">&#x27;bonjour&#x27;</span>);
}</code></pre></div>

View File

@@ -4,7 +4,7 @@ This is the official Joplin Plugin Repository
## Installation
To install any of these plugins, open the desktop application, then go to the "Plugins" section in the [Configuration screen](https://github.com/laurent22/joplin/blob/dev/readme/config_screen.md). You can then search for any plugin and install it from there.
To install any of these plugins, open the desktop application, then go to the "Plugins" section in the Configuration screen. You can then search for any plugin and install it from there.
## Plugins

View File

@@ -40,7 +40,23 @@ joplin.plugins.register({
`);
const result3 = await dialogs.open(handle3);
console.info('Got result: ' + JSON.stringify(result3));
console.info('Got result: ' + JSON.stringify(result3));
const handle4 = await dialogs.create('myDialog4');
await dialogs.setHtml(handle4, `
<h1>This dialog tests dynamic sizing</h1>
<h3>Resize the window and the dialog should resize accordingly</h3>
<p>
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.
Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur.
Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum
</p>
`);
await (dialogs as any).setFitToContent(handle4, false);
await dialogs.open(handle4);
},
});

View File

@@ -1 +0,0 @@
2020-07-16: In the new sync format, the version number is stored in /info.json. However, for backward compatibility, we need to keep the old version.txt file here, otherwise old clients will automatically recreate it, and assume a sync target version 1. So we keep it here but set its value to "2", so that old clients know that they need to be upgraded. This directory can be removed after a year or so, once we are confident that all clients have been upgraded to recent versions.

View File

@@ -1,26 +0,0 @@
id: 00dceec04659436196bae6b56eea10ad
parent_id: 8897f538ba4343cfba78eafd6c71a29c
created_time:
updated_time: 2021-08-07T17:03:37.267Z
is_conflict:
latitude:
longitude:
altitude:
author:
source_url:
is_todo:
todo_due:
todo_completed:
source:
source_application:
application_data:
order:
user_created_time:
user_updated_time:
encryption_cipher_text: JED01000022051f3b6b71948c4f5d909d1af6588c78bb000504{"iv":"ROL4MNnDG2BpjKv0QO+qNQ==","v":1,"iter":101,"ks":128,"ts":64,"mode":"ccm","adata":"","cipher":"aes","salt":"tVgmTCWSasM=","ct":"QsbumZxIFu1k1SxbJopf+NuhX5rhAjwDXOcwA4lRCNs3dsode2FIYV6hlCShrZ6FI+o/O72ecbZm1gvCGiIT6sG3Jl+snaXuT+B72/ibZrATs1ESJu0maQH+LrNG+TFcHFx5SbKKqsuCkQchWleDGsnjume08EkqhGwgDKC6FMGsCipWtsVxvOoZc1Khvf7PBmUYUSWaLLwPaawhMQPzm8m8ZMQMpU3shsY6FJZWhfCYqTomVey9DreKDLYe85Mgu+eCwnQDnZzd1/V7Xqi0gseJFxjBaqaKeO888ClpI6ew4bcL03KmtmSVhIkHTBo9R1wCA+Z33KWjT9JD2swhoi1SJNT0Hm6j1soCSLLnNWsiD/cnr4v41+7UUUZ++QDb79P/Dw1065tAjlVZm6Vmp1yT3X/Fl2ORzb6+DnhUMbEjw5tHIrFFtpYlcnoBjE4OaUIq/Hkhm9Q1L8HA1/6090x/4DVYmmQ617kIO7AvnpWy3TD+qKENcFr5gzXKUzWkQnfjZF7Z2si0sFdTRToj1wf72tiVvf24YYIdSxMTO3n2eXaahP4yjOcCQGnRy+QrUOwZn2+7nHa/THaSn98+PYcagAKmQccSQWYfmMc8wR3toLFQJKWZ/BP0ixX9v/D8uEihQMXlQXFxIVoAoltiRs3zkjR45RLSEQHfjzWsXxW6F1275Gd2weHl3T06sj+4kIAkaBCyarOSCfSCBCqSWaR3vNSW6ZmSjPH1KKAI1r8mkhK1KgQjZtoh78L+hOmkUjCMSK97mfq6Im26hY62pqx9bS5PFPSdO6HQs30mVtvqk3TIJXDKuwyvgA2YZoHxXg571IFDRW6Z6A0rS5p1XBmwUL4XoWAS2PJFfEs9FES28yCosp1/jVc0lE6Q587qn3T7Tz65TtZ6uyxz+O5aUiHjVXuBPELbm7dN6E/jMHaTYkmmDAhe268b+R4Fc3hmFsZmE4g/kCFaTGUZBufdQjZGJInKDecBfK/v3sD6zP8F2gebEOCcePnEiZ9tGAF/bhR0b7+LhMj7qxfaEuatxjAUjNuD0wgykVzsBiLw3EYnBWjtacOsH0iLUcdoZEatTEApT4zPhLjjEjtGbp0kmVj/p9hkWwxj+nuRA6/h/tIdhN9jGuNxca5IsONZ"}
encryption_applied: 1
markup_language:
is_shared:
share_id:
conflict_original_id:
type_: 1

View File

@@ -1,26 +0,0 @@
id: 04761c7a9930415f95ce98dac1706411
parent_id: 376c1a3fe5ce4fc885e344b52b9f37b8
created_time:
updated_time: 2021-08-07T17:03:37.157Z
is_conflict:
latitude:
longitude:
altitude:
author:
source_url:
is_todo:
todo_due:
todo_completed:
source:
source_application:
application_data:
order:
user_created_time:
user_updated_time:
encryption_cipher_text: JED01000022051f3b6b71948c4f5d909d1af6588c78bb0004ac{"iv":"lewZXUA2jDkYdCad/AI54w==","v":1,"iter":101,"ks":128,"ts":64,"mode":"ccm","adata":"","cipher":"aes","salt":"tVgmTCWSasM=","ct":"yd4oVd062nvTUBHM/kj14xPa6bexLz0xMexWMJlf7zziyswtRNgtA/5S9FbvxUHuzn065mcqjv3MoyvQVgisyH7jiTlHlbnU8JoXIFmwIeK7b3wer2UJrU/xbtICS2e/wrkX4v/uy1/cxyIIDcdjeFWv2v3gUMQVbSZ60r6Tzi8CdqcwhwAd/uVyHoUk2X8zt7on3vYL5ZOcy9TiS23s9Hzer64bJF31LFzer0TBqyV1voGURyeKBhmj+dAogoL4C1qTcebnagM8O2LosD3ZUxNh1gghRPX0BpIjeo3G4rJL9k62O9LsXL3aw/doY4vl32V2mOtXbiV/cU5yutDafxZHDC3VBb4A1RT5F/CeohFWq1CWrqYGINKbc+Mjoadu4oDtL3sR9CIDbktK7KGpmOdGd8hcbrLdRdI8ORbE831m1e5gmm7zc7tA42GvWLhGor0bk/vIJULlzEC9dUWBD8Hm97mpfdweRzKFGcdDGNo2SsSVTd4SSEviSF2q/Jamv9gsaV/kY6LuCFOj/JdhqMtAFR3cVH7fPqlbjbNPmEW8xvHjOLqCFyNFHn6uzJhTI6D+CtRgu1CKFxNozFZ/0C77boWe3EvUGIM40YGqr+GPhPD2qB9JbvrZMOtMQu99St/lxevKT7vni35lwpiTIp729CpuyS152YO6wTxVJD/ugZm/4TBUkf2croRw7i49IxZbCHRpj7fnLBiQ93qKm0Ud7Zh1CuIv3LSpDLNwdHp73/rAxom80P8ix9Md/KM587pxLLZIZmbxI2cmVPwcop2sxStVffu7OWE7NcVUJIfIroAE3UV22+TGvlOe3mrnKYCeMuZfButvmL+TyYHCJxtFK2o5Nofkk/tqgkHm4tu2maJ22djtg1Fl3DL8iR+no75M4IZY3quAiSNMh2jJruIl1nBT7sRwczjdVbLz5fUMjoY72fmGE2Y3aiPGEfZk2KtXFBHOo+S1ulrc7A6GN8yyLRoE8Jff5iL2MCBzhDWq0ABHhU+eKv9k6BPD75CmoPR5VbK2LYy9no0ae+HazqD0IjTaNXEdiLmD"}
encryption_applied: 1
markup_language:
is_shared:
share_id:
conflict_original_id:
type_: 1

View File

@@ -1,10 +0,0 @@
id: 07cd0925745b4441b898288f000c93d8
created_time:
updated_time: 2021-08-07T17:03:37.155Z
user_created_time:
user_updated_time:
encryption_cipher_text: JED01000022051f3b6b71948c4f5d909d1af6588c78bb00027c{"iv":"TcXBDKbu+tIXL2vhzwYb7w==","v":1,"iter":101,"ks":128,"ts":64,"mode":"ccm","adata":"","cipher":"aes","salt":"tVgmTCWSasM=","ct":"7JdThQsMepqu2l0gBd4ptjb98vLGMO4Hn3Mrsbepml9JkqgFKX8Bz7l9Bpn/zhQ7zInSIr89p/n55D93Y44t7ymvXUx3etAPGdDz6dzPklceagDwGWeO+KLD3nKWOfLPL7DSsNnNgZecFN3IJrgw87Kc89hoBz6IXoupdPrN1lIrxFdzC3DeXbE0ai9SnoY1yuipAdatEp+gkuKOyPyPCvHd7ud9JRc1SeI4mmjynuNxWi4ts3JtSTl7qw717FAN4UbVGRxRfI2fuGYxTVeeajJDtRDCDCYe0RfY1nuw3aqsiBnhAdvRcTxN2KZZSmIej5wFtACZ5zcFWQbVD54i8VTT7cTYjAtN4VqJmYvvsGz1uKamMQ/x6yYzRl3ByOes12MZjQnZpf2gGp9xCC52XcySzeu+vmCIllwR46ulbTXR5UhYUJuOlzbkujMXkvsAL4t/Sn4OjLq/mZpN13t1RSBA9ezBarBldqj3ZZ6uMdDISYIQOICe"}
encryption_applied: 1
is_shared:
parent_id:
type_: 5

View File

@@ -1,10 +0,0 @@
id: 11e9256883664948970fc5f78d0556bb
created_time:
updated_time: 2021-08-07T17:03:37.146Z
user_created_time:
user_updated_time:
encryption_cipher_text: JED01000022051f3b6b71948c4f5d909d1af6588c78bb00027c{"iv":"XRG1E4Do018pOt/1YCqZHg==","v":1,"iter":101,"ks":128,"ts":64,"mode":"ccm","adata":"","cipher":"aes","salt":"tVgmTCWSasM=","ct":"jINP1I0ejfdHxBLZInMCi8XUjGIgoSTgPIHipMZl5DsWhGKOLFkQWiNE8nneOAbp6RcT9627JViDrVqANn5U8vfA1MNucPQlQJpBRBZmePzO+KsKcBf7rsz90+jCFDbAGBXi5b94ckUfxijXcwNQqj8IdTSVNheb1e/FfvL3O8qamPANbJ6NxPEMYLSn0HMDkLKa/Lk3FVhybrvoqdipFW2zgGhLslP+gaEs4uk7USjHgmUdDOIQAy8gqxPVidymGslPgqRPVwTbWPRv2LH3J8S+2PNX6HeT/D+gsX/ewMXuCCg2WXWy2s++yFqwiiiLCP779gHMs4zN5nHLvMvH+tT7GQu0wGJRvFWpj9ZbFap3/2Itr0BIZwHIA/zlquUqkgSK026F7YicKJG7IG/DnFbPisLRshjNcBJ3P8RhGQuU2rFqPJvwoeXfoV3KN2fCPj0irVBcbub/99trx8vv3OUlJuEV3teQ37gjUCQccdIMmL7bAc18"}
encryption_applied: 1
is_shared:
parent_id:
type_: 5

View File

@@ -1,11 +0,0 @@
id: 1692f8857934461d8c24c8bf68c3fedf
note_id: 6865d0c2562e4d8ba88464e75006d443
tag_id: 07cd0925745b4441b898288f000c93d8
created_time:
updated_time: 2021-08-07T17:03:37.156Z
user_created_time:
user_updated_time:
encryption_cipher_text: JED01000022051f3b6b71948c4f5d909d1af6588c78bb0002d8{"iv":"LGP+1mTtj3U+EjJ0n2ljUg==","v":1,"iter":101,"ks":128,"ts":64,"mode":"ccm","adata":"","cipher":"aes","salt":"tVgmTCWSasM=","ct":"x5nE3YtB8spmTBk2HNa/GgUsKBply9ZkqCtnhPgDFBj5JeFL447YYL/ysDx4n3I/rdGXSXZvl0xS0U4+ieRlU7HcRGCdNTWdyVtbVaaBsw5J+8WPLU6AgpxtiayUU5R9b0TwxC2reFhxWWeZmXim5eeXr/cjVBAVK5i1f5zBr4xhApnQ8bpk22ymhFsV8lzQgX7Jquagg1EhZ2h1vTXVCXsHQ7lVuJ9u26GDimoFjzjUpHvIoO/f4jZqigHFqdcY5zWNgL3JMOxMNH4mnyQVRyQNNfqrNwmanhRHUfmUunoZwuUYYN5v82hLz7L4OmaNXQiF4QGy37iJ7HOqfheeZu5sicChr7bsBc6DQEAX71ttbIz15vl7DSMgCdKxg7hgsBgYbSDnSGDHeaMUJYR+pd9/fhwR/iH9C3vwCMklW99e477lOo/j20s65vdMXTIogsSYHCtFZAOPIlOkOPjodMMIHyFeslHWhRIPJ58Csqa8szcK6Rawdwd2bkAqUHqk1HXjzZiply6Fy8egJ860cAZTQJ+C6nmX7Fub8d7ALvFiPif3x2s6jP1zxiS6y8u2Jsx8HcUo4lfLDQ=="}
encryption_applied: 1
is_shared:
type_: 6

View File

@@ -1,11 +0,0 @@
id: 376c1a3fe5ce4fc885e344b52b9f37b8
created_time:
updated_time: 2021-08-07T17:03:37.026Z
user_created_time:
user_updated_time:
encryption_cipher_text: JED01000022051f3b6b71948c4f5d909d1af6588c78bb000298{"iv":"ejXvrI4W38XZ4yVBrF6ylw==","v":1,"iter":101,"ks":128,"ts":64,"mode":"ccm","adata":"","cipher":"aes","salt":"tVgmTCWSasM=","ct":"BH9UWW0HJBgQMijTTCkBcRlHGkkyblnMXTfRvYQ8YrGzu1IFlEAmT5kuPmvBWXeM4eDQwOooyE6J6P4m39iuobm1UwxTEeuQWjhwGGfVJYqcMWoqCC1pJPoacpu+MPUZAswd8omD+hBAw2CL4IvMwKYHqGCsaFaVrUex99ksRgAvF4JClSaTrMofUVTNdheVP4ORlFDS97EbR/dF62CZLyrgGGDuwxVONR/EvnRZlUsNYCt5aq/RDrMUdZz3E7RqVDdQ/jLCQc/HH4lY8281QM8RCygMuJP45ZSWfVhkUT2u7Z99Jl96mc5nhSxndRjFaRtkawUSF8nbM3LQQOgHXmmDsxyB4oKE0kvUyosnUNygZNqcKjmn0Tqmuk9eIntJH9ZPe+zdMvWEIuhamXWjmBHJpFSGv0VGKw6xTeALXwk0MXV1bII7sE4vz9Bx1pO4lm1h0nKL0Dxbz/egRAV+TiANjMz5a+uoW7E+QCtspO9fE9pUj5eclKvtMdVJUeRvbIPC8KOLCIP3oBA="}
encryption_applied: 1
parent_id:
is_shared:
share_id:
type_: 2

View File

@@ -1,11 +0,0 @@
id: 4a754e4afb6147d1a70114596d02184f
note_id: 6865d0c2562e4d8ba88464e75006d443
tag_id: 11e9256883664948970fc5f78d0556bb
created_time:
updated_time: 2021-08-07T17:03:37.152Z
user_created_time:
user_updated_time:
encryption_cipher_text: JED01000022051f3b6b71948c4f5d909d1af6588c78bb0002d8{"iv":"/eUAJAOvToqE2IUjYsqAMw==","v":1,"iter":101,"ks":128,"ts":64,"mode":"ccm","adata":"","cipher":"aes","salt":"tVgmTCWSasM=","ct":"CtDJBXr0lQRwJcVZk3Wq+R9R2VtrMdNb4AaMrOwLe/gTv/O5ya2zaOyKUyKEVTV88pws6X6sgBMPgaOKwC9FUrXMlymAMj4Tglj/gqZ6Hje7KD4b4/z0T91ZuJAZPQhdhPiY6YrxetkQmzDyF0Sm9CUKcVuTtBKu5uYcnguzPIn4L2YeZwFPAaf5GIPl/9EzebLE4c1+8W33r8NWQ+CPPf3QTkGjsKc+NaYfmnGJP8moPbtbp4eNtnaLWi+XLEK4VmQ1WbV3907209zy+8bg2GB84ymUBz0vkxb8CXwWObTl/7a3U4LxAiq7FY8mvz3YgM4RyBY2F/MIxG+T3drdkh00515qjJEYe58TOcA+3aGMqwg3Ad/1hQi8TUVODps25fiae7PBrgn+GQWio4+uaGWBiZILWxldgWNqSgNjMxRCrbEECdHNys2KtTaKU7BppBa1q2/+31a+BZaYsvn+cUNfbNrV7AhqPUFU/1yOh+gueaI65xNx5O7glzkJAGItHgoyOBYvgiYz9n6BsEF0L8uZUXsIuu+pXVmtMrM3CHEN61J1DOGm2W0q5WGQDCPZhqcBOOh50NH3Gw=="}
encryption_applied: 1
is_shared:
type_: 6

View File

@@ -1,26 +0,0 @@
id: 6865d0c2562e4d8ba88464e75006d443
parent_id: 376c1a3fe5ce4fc885e344b52b9f37b8
created_time:
updated_time: 2021-08-07T17:03:37.151Z
is_conflict:
latitude:
longitude:
altitude:
author:
source_url:
is_todo:
todo_due:
todo_completed:
source:
source_application:
application_data:
order:
user_created_time:
user_updated_time:
encryption_cipher_text: JED01000022051f3b6b71948c4f5d909d1af6588c78bb0004ac{"iv":"ZBBxavFRsrhjBtL5jXaTXA==","v":1,"iter":101,"ks":128,"ts":64,"mode":"ccm","adata":"","cipher":"aes","salt":"tVgmTCWSasM=","ct":"GZoeIryLSfn96nstg32eBM2vW4aw7oVn+pqIAhRjoOmyOTvkEAUTULgMVmgZDFwZuZMIete7Zkl2QA/VUlI/yu9Qurss7xNedf3CrYjSs0NVMVV9KmlZbX7NNivm01KXgM/02VOBkKCQf1ZtJUp15EwkgQxg+v6UjDktRtmguV3IWccEdJpretMnqfZIoxztmxMygOeGXObpmIwAbXmJ2VMsw638ZU3PH9ClCypo5ZBOC7kuxBzo4XfvhOvQ34Bf4amGSinNIsYOW5Pjt1G+qfBFBUFhIB0QFF0GQJUHDd3hl13YITjSaJQCQiIRsPb+ECOreIPiq8ngyQ6edZPjBWVAIacmyQoK2pUGfxuNJVr9EojJV4hrTnYMRVLRm9mkStYP4IJpg9NLUALIDrb5ScTXB3hkYNSnkEdn7Nk9CvJ1g9jQP6UyhnM6HVSfAZyRF3p2/E5wMPIGWazMCQWzlPoIMnq6YzHz9BRRZkdeBepD9mOIUCw1r4R0anS9/21AcoAb0lrMxELcUCdhQfH9grroyL9AERgoRb1U1i7TnCU3dSFUhTzncEUys45TMRUDG0ulvCDSSOZEev7xHWu7Su2vUjiekxELDzZCCYumDNnGN/QRq5HhTvFQ2Asc2q4GJlnDPdiYbXM4Xf8ziIoBHjjwEo9fQu+5KsVzoEwq4QJyHlCFBUv850GWUR89C5hrxO9AJJW28RMqZSzDFcWCodaFith9yvuhIf/R/6d4CTXaBqUBUc+WTklXPhvv6lzdnELziG79BiLwDcofZVF9cKK7FZWdbYhpWF/EW5X/whNxZYW8nGxSR5LgJhQ/eJSCHs5CSXCRkCYpVLJ7tLNKxirQznDvuvpdG39uwrpkT2Cyg6enBoFpHdeb5kWRiplAlEuHLL/SoOqIPd/2aL7yuloKzlN/mRUW9uwuAr3b4Brui9pOIWt3Izy9mdOoH3MsnqV2Py1yBJmiZ1M95bx9UNdVlJE9ubIbVDuz0eDqAx5zHfb77daQ16S4CnEjWBEpeDQuHCLzaZ/pq/L1U/DQrAA+rhK/XN89C59C"}
encryption_applied: 1
markup_language:
is_shared:
share_id:
conflict_original_id:
type_: 1

View File

@@ -1,15 +0,0 @@
id: 79a7c378c40a4538bdab7a6d46e7883e
mime:
filename:
created_time:
updated_time: 2021-08-07T17:03:37.265Z
user_created_time:
user_updated_time:
file_extension:
encryption_cipher_text: JED01000022051f3b6b71948c4f5d909d1af6588c78bb000320{"iv":"HPYbdXS7n2xrY/DqEsUiGw==","v":1,"iter":101,"ks":128,"ts":64,"mode":"ccm","adata":"","cipher":"aes","salt":"tVgmTCWSasM=","ct":"xO8BaMJjMZS9PSqdcld/Cu2CFQPQQhqxFoyLeQfj5kjH9Jv/O9ztM92FY0ycmhO7v+cx+E/45AFLUdAJlggC8hotYbAvmnUdU08EA/dU0NwxBnWwpWJSBzirXpKP76DUj+hIAxxaXZtu7ISIcvEANwIiMJj9lgPiVoxXfPMPJV9B8dtMdwX+8vqxZxhz5gkOva7T1NJlExlLCErALz1Vrim44bP9WpFbDH5Zihcww5VWE6y1yNbYPZprakiwNFQXQct4Ykm3taBdh3bOFcr4GLBHIccl4VSojmdIOGjCtGyZPBnaXNCPeza75NM2TTsbSEblsuPU49RBLrbICghBVj5wsZpZENf/6A3/syV6zG3TtA+5rCkLv/XH1R8kiJe9G1pHqatXsOjpIb0PVzuYl5OYmQByxmnLK0xhGTASPHKERFi6knKoml3vvy3UJsWRXtBSLk3bp1pJc9GlH2C/YKOenrOninT8SlNjzl2fKn5TOI8977Tw/zc5myrmlfiogf77cqgYKkCU1TSvKpblGvkWdoAewhkHX1DIWKp0DxB3xpToBFu4+Z6X3B+Yb5BGhNFMYibQLGAnQ1b8GWarFiYdChPqRfKV0NoiI7e0mObpvF0x7V7qKZvXN5vubJbq5Fo/X+qAVRTJlTd9cQXLDdA="}
encryption_applied: 1
encryption_blob_encrypted:
size:
is_shared:
share_id:
type_: 4

View File

@@ -1,11 +0,0 @@
id: 8897f538ba4343cfba78eafd6c71a29c
created_time:
updated_time: 2021-08-07T17:03:37.161Z
user_created_time:
user_updated_time:
encryption_cipher_text: JED01000022051f3b6b71948c4f5d909d1af6588c78bb000298{"iv":"hC0Y3d2VM7c49TbONsnUVA==","v":1,"iter":101,"ks":128,"ts":64,"mode":"ccm","adata":"","cipher":"aes","salt":"tVgmTCWSasM=","ct":"1gD9XcIdebdX5jVkdBVqM8Sf/5ms4d8D4t61Va8BxakyO+xCdZtKUNzPpSDvu+B6lJozt9knQNC2EouuJ0itfWUSmSI+1OVL2lbt8/MJHrhQQFG5JPGcJ06aeuL1dntfRJPpxX4KeDB0Dzh6Zv8qfuosYRjwOfAFf7J+w61Q6eQTBoSi1jfLx12mXEru3JfLOCMzRHtZH+xhghA0+LofM4J2q6Pr9XwIHQ8JMaaDCYV2jhpNUQlEHKlQo1M1ftHDSq0vb7m028c6KH/p0XvqH5rNx0M77nM1FRRmoj1pUgOfzszn0VNbKWi+OmBMWPS0yEruUKznneR35/0ZDFR+eRSHeEsJNbw/uz2NddC1q2Jdj26x/Gl3Sg6fpk2jUrXCNXidyVYWXBnYbK9jNJqIQz3uUQtCxe+lFH7ezZxX2b2gp60gXMluCbUomc8zbmaZHqM6kSAil+P6QUcpUhpMkfS5tjJRvLQ0Gj0/nbRiYjLWaCT5eA/IETU6DDZtrgUFsU1LCCmW5i0EzbU="}
encryption_applied: 1
parent_id:
is_shared:
share_id:
type_: 2

View File

@@ -1,26 +0,0 @@
id: a83fbcc450ab44679a785f5f265b5427
parent_id: affcd54c42bc4f49829013c6522d3a6f
created_time:
updated_time: 2021-08-07T17:03:37.143Z
is_conflict:
latitude:
longitude:
altitude:
author:
source_url:
is_todo:
todo_due:
todo_completed:
source:
source_application:
application_data:
order:
user_created_time:
user_updated_time:
encryption_cipher_text: JED01000022051f3b6b71948c4f5d909d1af6588c78bb000504{"iv":"Vq3cOPpdY23SvcyUjH0rWg==","v":1,"iter":101,"ks":128,"ts":64,"mode":"ccm","adata":"","cipher":"aes","salt":"tVgmTCWSasM=","ct":"gz0HU2L6HJH0kt20N431NYJQkWdWU3x/MlwO35NNboGvnfYQPU7bQIDtfNf4l/8Wx3LVNM2XqYSmbgzaF5dASvZUmk4Qh+szQUOk60iaxkqKHSm+85Q3O4RTT16aPh8MtJFlJAWrWI0SrNmgHUIcrxpgy//GSG/XIBVSxSGKIaung1bdTy0N4bm6RJjluEwsoPFi6SXwypbM1ZalGVaAEoNNYQZzaDqqGhe/EUpAC8iAQehYeSNf0PqVerx+AonOrlQ7yElLcPtpnadTlCVy0rc1suL0dD3mdRZrFT2Tn/rhb3tzmxM3jZWPl/VzFMCfJkSA0g/TV6r3V7jo/zlYxRs4RvCg87T10fwB5fBsUvmou9bt4wt4mR4YbQxEhlX/QCez4joN80mKu39vblDiiQt5WBzUR0k2D2+1iDvrhitXUVRPj+zdLSDiTDZYzen1TBnkknPZcablVHVCoHDsB1q0mwbtfR7cf/EqigIPOzF7S6I98Zf/ngWt1XPYnzz1pzG4vmSlKb/Ir7fY5KKpZFpuhoneQAhx4K7gX5LXAwABU/Py3DJJox5bSFuUMQN3ImN3BeZN54zsZGjJXXo0r4XGB0XOB/h+x054xflgrFIZb4QtmNbRu2DS7NCmVqlbsUigoh3MyddyLl2PZ5uyQ+YOgFZKUK+kJ7ctC/Cxv5RCRd5gjc9F+Wrn5bg+DziyIlO29q3tRKtIqWN2j7C13hVE3A87SKt2EAXazjMI6vW4jC2jtp5UWrpD6p89oNbtFzwKF0G/aHOOxmwRtV1UWGTXbvwF6PrfU2iHXl72+4At7wV4K74cty15QSZvg/N5T0inHL07q4t11ynvNHMuNQQr9eKyMUrPjOIlOlel7tYxt4H3Qmco0Nb4Oi35ZcRClmWSIVGKcz3cBLtGAYXZrG5fbSPqFa4Kf0vwjeIcdE8GpdVAeoUuw/Wj4DQU/RJncV6GTRTVJKZgC/Wreu8dob5ZkUuiogYehNa4xUupfPLuS3dAICx+/0QWEaFrnl3CXhaHH4I9Z25CUh/eqb7XrvXtaWJ1vEq27JxRIWSgNHqj4fI5l5fBvbPgYAwqllJ2aTLYqfY7/qBAm/2ph/g7EOceqC4AFqGExVF/h7UD4vZUh98YA64ZOD0EeICQ"}
encryption_applied: 1
markup_language:
is_shared:
share_id:
conflict_original_id:
type_: 1

View File

@@ -1,15 +0,0 @@
id: ac3adde7d7d642a48355553923dd2cde
mime:
filename:
created_time:
updated_time: 2021-08-07T17:03:37.141Z
user_created_time:
user_updated_time:
file_extension:
encryption_cipher_text: JED01000022051f3b6b71948c4f5d909d1af6588c78bb000320{"iv":"kw4oH3NXPNlqBs9OHb+3BA==","v":1,"iter":101,"ks":128,"ts":64,"mode":"ccm","adata":"","cipher":"aes","salt":"tVgmTCWSasM=","ct":"noSUeSw/bQ7CvsURbo2Bs0k+MHplFE2FCRjlfpBNqdDXKzcqGGTjPNH/5r9Ulw+rwXtzC0Td1MjEQ83YOphuoljqQEM7UD4wFDYGvOFQxFScCBGs89FU7aMB9uGre71eL1LlXvjDnX/a2p0ZV6qyp55Wp7DPBYe/tQJAxpdvbOXn271cHmiGMPrhV1ML2PJR24eEDwqU5nMMcqf+FpgvBo/KP3xrWwPh1MZy0AMtRPwrhr7xBE8XKFdPwJChKLMMTCqY3w6Loi28AJWvXgV3S0aqZQ4tFgw8IaWwTdxLXUVxO6D1vTQ98rEFp4f0PI0dJULlaVzXxnrczyHl/V5F9IYGaeiNth+6MJc6USkpQ3F+CgBpE3EOKcfojBE9EKa6LZcs4Kg+F8qGH8XdewgfcqMtwKt8qef+f0yIlVjcGNNOd0vlzEEIhtVhn5AlEzzwgu9875RsrMqS4yikfZkELbJ1dqdcffQS3KUINUzuHjxSKjAuDE/qk78pGetoCzlEr5ipeAvymyci6EbbZj1bWbmKXP8yiPlxNXwkydTmDo7FH4tHWzMq362qOFxoXw1Gu2eqqQMpSfhvCCQn+Li/GkFsDXd76zHJU/9J0Cqc3CQbrVFBFPIgGQ8LBauK/mUqi3uxZ5YF+DR0U2BODme+I/Y="}
encryption_applied: 1
encryption_blob_encrypted:
size:
is_shared:
share_id:
type_: 4

View File

@@ -1,11 +0,0 @@
id: affcd54c42bc4f49829013c6522d3a6f
created_time:
updated_time: 2021-08-07T17:03:37.029Z
user_created_time:
user_updated_time:
encryption_cipher_text: JED01000022051f3b6b71948c4f5d909d1af6588c78bb0002c8{"iv":"6aYSqc7Qkh4097CegpcyhQ==","v":1,"iter":101,"ks":128,"ts":64,"mode":"ccm","adata":"","cipher":"aes","salt":"tVgmTCWSasM=","ct":"YIEVEXEs8FLByd5Hdzw01atV/QwNudmMGFwh7Ve6grYsb62ezrGE0lsNuXG6U08JGiSE+vMnalY2OhixxdtOuAXkjVYsvndkSt75/BERHfJZ7OogFTHko3jpR661JfdzrQ2RqBX1S9R0dPYCnP7uZM8+phNxBDt/JwGFtxmQvPo+5ZeeRZC+gnKCWg2H+C1SiImqCkiNkppdi9Ul6OytBUMGoJkuet4+t0hth+mrJcCckshJTeqUYOA2+X4Xy9bOg6WKbGocKJsGyAnNnXKFaxamDa58xXYEfyyaMNCZaBk4yHK9L4jcez21Fy7lr7KQdQOInfY+KnbQsl8UTGAgU8SmR//hrmkAW3jtHcHQBuFkcM0lyXREloIcc6eFkuqfkqI4YK6ySqbZ5qdAGz7WNAPTx39EFxgmMKvYFf49m6JAQEKxMkgYG0eT686j9rsITrUZbGQwyclXZ2mHPehZ2eiQE+XXsZawgDb1Jb21turolUKTU/TXc8ObpUfW1NUmRElVtkeuNfEAmf3iAn8/qKTQQ/33oqnNugdpN9tuxZM7K+e3JR3FhXt2eJrPLA=="}
encryption_applied: 1
parent_id: 376c1a3fe5ce4fc885e344b52b9f37b8
is_shared:
share_id:
type_: 2

View File

@@ -1,26 +0,0 @@
id: ba876a7c0d2e44fc8105887c2a3fe9d0
parent_id: affcd54c42bc4f49829013c6522d3a6f
created_time:
updated_time: 2021-08-07T17:03:37.150Z
is_conflict:
latitude:
longitude:
altitude:
author:
source_url:
is_todo:
todo_due:
todo_completed:
source:
source_application:
application_data:
order:
user_created_time:
user_updated_time:
encryption_cipher_text: JED01000022051f3b6b71948c4f5d909d1af6588c78bb0004ac{"iv":"lyq7Vk+7IxfwXTfLbAQUFA==","v":1,"iter":101,"ks":128,"ts":64,"mode":"ccm","adata":"","cipher":"aes","salt":"tVgmTCWSasM=","ct":"vqREg9i2rlzQYKCnH/K2fqheqlXY7N6KfjKyKN33fOob3+urWS1TZWbecom0jnkNflsCmaFatt7awDuOccMIE8YkHG7FaVMnWVWkVRGvFlMD13xQXpVbEEHuIxTUEnBj8ey4quavW8PU6Q9K2KPIZoCDRN1c89ydGoYXSkF8FvaSgz8Di/tvpd/uYzhsYPqsNlGXY+Q4Uivna4fhL0S84cCE9J63JqdNseETPoOlk/bmv6fnAsEBPNJhLlAHHu6FR7IMXtneJfmP5WSZEY5v8yVqQf29xrhwbnwuipm4U3CxWH3u+C3UYSDoyJKW/dZQLDz2gZsNWE7NYMir5OJXIW0Hq/03zy1XmOX5EZyP977WbEEaQBQgSsL2BOJzaw1mrOWFwu46pWeZ6U3AMbRkxry5tgBzWwjkdqdsfPnbHzNjFA/pkSVZVqEPq1puf5mRhdNtn3RdwRN/XK/6GCj67qcwMnDcGvwjKicMKvZVy1igcaqlLWJdmXJYoUuu1UsvpiSPVPDUhTu8hNZ/l0pTBIaViVg5YsxTeUdRyqA/ItM79IDho4udSpNhUxx1SvRfT7MAcCcHHzeUjMhuCqlWzqztBQrk2SpvDd2LEf9sTDRxaJd3mVDlzWPmMrXJ/x27l7Y1PPV0AkYuPjMOl1TzCZTIw/8HTnOr1kKVURHImbZEmE3d8SzowLq3R4Mx1WnlCIZKq0P1brmD0NJZHX6Fx0iD23HX6YVy8JWejzPtKyU6RYR3VBk+LyyTkkYmKjPkgJKO1lJ8h5JqvJubh48WWU6VAZLikfaXy6F3+/syba8fgfU7/KPz3JiVxG6E/mBL+etwziF8UfhRoLx+k5SHWHOhk5+VbJY/VZxh2Mijjs2Rsoj9os8Ic+Q9UXiA/TCOaqkW/kuTor+Nd0bxVvfxwcsCOI6TijFdmkfw3r5C3I5C+MCDo3375NCWYlL5yuWv3LfdKaDd7Gns10xi0lAY2Jv/gpdDM48bN4Hzh17MfNVau5J9oxUN6P8NeZMhXnzwwohVV5lW9qVLByavWMlECMoAvuq7KK7h1MV0"}
encryption_applied: 1
markup_language:
is_shared:
share_id:
conflict_original_id:
type_: 1

View File

@@ -1,11 +0,0 @@
id: c5a09550eca84955bd4df85345299e5c
note_id: a83fbcc450ab44679a785f5f265b5427
tag_id: 11e9256883664948970fc5f78d0556bb
created_time:
updated_time: 2021-08-07T17:03:37.148Z
user_created_time:
user_updated_time:
encryption_cipher_text: JED01000022051f3b6b71948c4f5d909d1af6588c78bb0002d8{"iv":"QTeh2mfqgHTR5Brrz/jmnA==","v":1,"iter":101,"ks":128,"ts":64,"mode":"ccm","adata":"","cipher":"aes","salt":"tVgmTCWSasM=","ct":"HcosQRm4ww6Nvq13nc2rchWSLuoDU0NMG36paBQ1/1rttyb25US3uZjq0ahhYpofWfTdfPdf/lWYgRWqikBHP6l8xchPcKSwfZ03iAz3TBIGbnnDySW8NDtxUEgIraNpqFj8vsZc/xrT+vrOJef6TqFW0c/MeiQOEIL6UEaVTm8H+6UhEDg3ikPEhcwe9+3vM3V7eLKTRZYkIRFbQ+lOiHGWIbsHg/kuxmYEuKkuLna3cWb8ioV6TqP/5C90OMsexxUohyI5DWiohqebQv1cxKe4J7YrrMtCptNfHXA0/Oe8qSKLrWktFkHtaUVKlL7mASnpuY47x2WJJU200FExOcOpmBOjxZqo2JDML75hq2ZWYQz6KfhVE1Pru1yIuOzIhkJepa6edmuVpMfKuVMp+q1fa4wfdhp5giIgUKesqq/SGeNwxzH7kygStJxKrTRuuZ16rahxI4+modOEiV/henqD1gPH6OuuganjceqJZX7QBFxlcrmHes4TghDE+11Qjcq7jvW3TaMtpR1L2PtwMO60PvrSiQjG9T3QpIKXRZih6IyLUjJICwyQtHAzxGkeSXO6dFYtIdej8Q=="}
encryption_applied: 1
is_shared:
type_: 6

View File

@@ -1,11 +0,0 @@
id: c9e46ce958bb4bd5a3d0cfb65855d9d2
note_id: 00dceec04659436196bae6b56eea10ad
tag_id: 07cd0925745b4441b898288f000c93d8
created_time:
updated_time: 2021-08-07T17:03:37.269Z
user_created_time:
user_updated_time:
encryption_cipher_text: JED01000022051f3b6b71948c4f5d909d1af6588c78bb0002d8{"iv":"Ks7In3VN+ukwOfMigv5aGg==","v":1,"iter":101,"ks":128,"ts":64,"mode":"ccm","adata":"","cipher":"aes","salt":"tVgmTCWSasM=","ct":"5PCqJZzapvNh8PwCONuOoEFRS+dY0RKHBCZrgEd5rsBNCDHyW9H9GL7s/CtwYGJDgdRAtT5qCghNlTQa5t9cKE/N+jl+YbgWGdyRHv6BibzWHFd3z5mVWw4yr7jZLf7mb/3z+iiHc5kWsVbiKBlmkWROaVCspI3cwjBNyGCs8204vT6KwYC/OGji21V3gMHrnT7EuwaqvoXxQtYzH8ck8InQz/fQwVRZyFKVEIBcBclqSskpZ/JmXDvMqqq+bqiRRvcrqV6HhHmieOVmxMXwdSmSnRSgybwKjCGD63nmkCQFDvEAt9TvpNqESMDuL+q9DCW9FtZ0SHTfzm6eyBzeV6GdPUuMQVnGKMOhjs+CPZZ1cnEGPYt4fMgZdkuYf57b+Z0BCFC7eTdOhQBQdBtKryUoFp/J7Tg4MXbMCKIH2ZBPxPSAk30nNZbNBynidLOLBAzUFcBhxbjspqdqp3KldYNoqiQNP1j7sgta3e9z9Tf85Jpptfv49NMnCNgPojVXg6bgb5vuDO1QVUmiknhlK1BPjP7UsYFpW/n9OLrKUlTMTKQ1mPA0JkkrsJchB8GFEHPPRb8LJyHycw=="}
encryption_applied: 1
is_shared:
type_: 6

View File

@@ -1,11 +0,0 @@
id: d7f300c742bb44338563ddbd6fb285c3
created_time:
updated_time: 2021-08-07T17:03:37.028Z
user_created_time:
user_updated_time:
encryption_cipher_text: JED01000022051f3b6b71948c4f5d909d1af6588c78bb0002c8{"iv":"/TciaFYKNHcgOGewTRhZ7Q==","v":1,"iter":101,"ks":128,"ts":64,"mode":"ccm","adata":"","cipher":"aes","salt":"tVgmTCWSasM=","ct":"SDEcAeYxBnBVeHf+cPjW5pCSfGkSkHKZTQ50r3TnG1kdORfFV3Xgvchnjc10AdJxZs2QgMT7PoKioF+M9vWJbBbttiEZWVD2AdnnpwUtg3pYRenNvVmZFJ2TRc+llUrKoitgZ4iFUdeW6FD6zGRnXU+06apcmQFDZtHpqFEsFpIaoghYqV1SsjLEAt4sBKQPAFNpK3rJoQoVqVyqglMMAv3Z6UGSb2R8bkY6JxcJi86e1sJ9o/rovmco8cUhAWWa2TtZXvkFn36rTWM64caHW/BNGsM+xTiyvoLyNpWygsNSoRL1gzcLBn6WChdcK0UOaiQZHnWVeeHuMpcpR6lqyaFbf+g8yMtxRGhh4es9eG8F/rimV4aBcRnSdirPXJhLmw5H0OLaXtZOfy2RSYm7P7VqQ9BnYgRbqiZ3f/Bd0izciiekxIskvLWOK2hjc09YnaR0JjNQqsnuV4q9sgCnJkkKwXXv+k6WGlZFUTac4HUM3x+NIFa6yCHAt0D57uaiSJppmFG7ypR7xSTAKuNfGLHBaPlkyMFKDimIKf7RSjnpw1Ptkgbh3vxzg/royQ=="}
encryption_applied: 1
parent_id: 376c1a3fe5ce4fc885e344b52b9f37b8
is_shared:
share_id:
type_: 2

View File

@@ -1,11 +0,0 @@
id: df92d4e526b84c0d9d294c40790b6ee1
created_time:
updated_time: 2021-08-07T17:03:37.161Z
user_created_time:
user_updated_time:
encryption_cipher_text: JED01000022051f3b6b71948c4f5d909d1af6588c78bb000298{"iv":"0o/EgX9FH6llgRkC/uubsA==","v":1,"iter":101,"ks":128,"ts":64,"mode":"ccm","adata":"","cipher":"aes","salt":"tVgmTCWSasM=","ct":"xXtHkQ8VT2bM2qWPZStrYtmijFVZEP6qk4qxH+jFTcEw1N7pMh+OOTgZIru7ZaviAXdUSpScKdfuU85t0chsQzsxY+Eg+7QH5P0EQe62WLHubHujyjEi1ogbKpXaXEehjFZDwWc2MVEy3CuQ83K/1h0Y8wcND4W5pXrD2sniIXFiLg68uEAGmTRmbfaUaPfI1u8zBdLE97wmpA7gsXjsV5Rudb30gpHHM9iGwTU5HiXu9vgwufVv2FP/a6zlKmMWIRXlzkIOEtQPghGIOuFoGPQRyKPu3ab86cb5wU2xuXPIPn74eXY/X+sUUa2jZZPPqMWEtXIXF6DA2C52HRsaZ8J5d+TD7eq3vRjbFwYSd4F5lFdnq8SQGZyq4fdZqFF7cf0fFmOGmu+Z6JwYP2rJdVHgDuF8J0+VdkGCo/pZvROn3keUSZ+cl1VNp3M23xaCi5NgLD+ZEVlw+PVbJpd5hpg151zk6vWM7jpNuzdT4zgtdhoeyybInnvaXyRKULZP4FESMCgy+lJfEtA="}
encryption_applied: 1
parent_id:
is_shared:
share_id:
type_: 2

View File

@@ -1,11 +0,0 @@
id: ea596f46d526439490c9e1a32e35fab3
note_id: 04761c7a9930415f95ce98dac1706411
tag_id: 07cd0925745b4441b898288f000c93d8
created_time:
updated_time: 2021-08-07T17:03:37.159Z
user_created_time:
user_updated_time:
encryption_cipher_text: JED01000022051f3b6b71948c4f5d909d1af6588c78bb0002d8{"iv":"TjqK1/ZKKBVuSEEQmJbvmQ==","v":1,"iter":101,"ks":128,"ts":64,"mode":"ccm","adata":"","cipher":"aes","salt":"tVgmTCWSasM=","ct":"N7WRYFvCp57jTg60kTvaYsff+IETBz0oJqpQ9Wvb6YedeILeOg8x/vVTQnkhzinDnMggW3BKO69DNHh/laOmJ0CNrihDtt/EVsL3oULu2cFj0Kp7WSwSjyhL25ahvoibToJ9x4d/ERE+yPpw7qiYkTQquGEwQGtgPsZfMrvujWA7CeRvjbGVAfVLjWiuu0ByByG80SqrWX9/XJoI4hfqxkraouwL+KclFWqPCsq/m8y1OfGwjVEnu9cR9FwIK5+F9SEJnrdyx84/gUVm0N2RgUQ+O48Udp2MK1qXpxtq2IX11t///d7ex9lkWHkqteIcHhyISTXCoHso7pLOLnkmJBtGZlp4B5EmoSguw0GJJhDB7ZmJrn5UoBIh/xtq8/Yuqr0/qV8US3xUPUWqQg18UFPTKZyB2S4dGp7oUwK/tBfPGDq1B7sfYWwQkW7t9F1vgQfBPNvLkjDcsU8wq1xpK4FfIo6RRZNcitJLuIBS3wQ4Mvmf2MmbMz90R9qkqk2ibOLcs2jh8x4WfIgdCZjfmUKVQMu7DLV4Aca6IO6uXycaZcikHaGW03uyNTSfHISLzQ5ahOifHQYCdQ=="}
encryption_applied: 1
is_shared:
type_: 6

View File

@@ -1 +0,0 @@
{"version":3,"e2ee":{"value":true,"updatedTime":1628355817270},"activeMasterKeyId":{"value":"1f3b6b71948c4f5d909d1af6588c78bb","updatedTime":1628355817333},"masterKeys":[{"checksum":"","encryption_method":4,"content":"{\"iv\":\"J248v74XaIuzE2PuLfZhsA==\",\"v\":1,\"iter\":10000,\"ks\":256,\"ts\":64,\"mode\":\"ccm\",\"adata\":\"\",\"cipher\":\"aes\",\"salt\":\"rlIYz9E3bBU=\",\"ct\":\"xe684JZcA0wirB6aaBZd4rBdRQwjA/EqomPOiNCfV+hApf0ZajSTHirPf9UblaJQ9q/sjvs4v2I/yT+NsKB9WNsEegh9dKaXYlfzLbXCW84hBwAxAgBJf9IrtviOD0hS4ArhT3vwNYqZAvUlY7t8E68ntVaNl/4XoIDUHIto9Q9zDQqZd43KJxI7mkPD/pBHtW+OEPYzXtMGDTaV1iKJp2Tnu1w2ENCC8iN/aIwclT8Xp0uy1K3pvfck/FMO8yS4IX4tg6CC342o07DFla7ufeMzjys23j0O+N+mHOlZjumkMdMsRwyE5+JYoG5s7J2f3s3RkIBiBx/HCEP3ecQzaKMSpx5k7Nl9lobYbp9bP12pJSG72ixMGm9+S21b1cQw7geyOxsoaXoe54BsMnvtuey2tFxm3nwk5aBr4F2OWzeulRDGuOlScJkoV8x4C1j6V4qd77Rvf3hkxoHXzIZtir9wy8Iq3EuLuxv07rD0wnNj26XZzAfwN1xT7zLVwjZltNPQ3PKEEVHbKcROXDT1qFpXKeCsCGNWQCHbER7A7WFRj1VW3YbjntJg5JGNBmi3Jiry/AuAb6FYtGYC/J4jQ107WH8PezcbC9oic6ipblgmCHfmKm01sBc0b7U1rE2vWk8vHGlSC2W/LX/5aEwaeVf5YZVxsZ3MWHk3ufEbYF46toL+7as58Q==\"}","created_time":1628355817331,"updated_time":1628355817331,"source_application":"net.cozic.joplintest-cli","id":"1f3b6b71948c4f5d909d1af6588c78bb"}]}

View File

@@ -1,4 +0,0 @@
# Ignore everything in this directory
*
# Except this file
!.gitignore

View File

@@ -1,4 +0,0 @@
# Ignore everything in this directory
*
# Except this file
!.gitignore

View File

@@ -1 +0,0 @@
2020-07-16: In the new sync format, the version number is stored in /info.json. However, for backward compatibility, we need to keep the old version.txt file here, otherwise old clients will automatically recreate it, and assume a sync target version 1. So we keep it here but set its value to "2", so that old clients know that they need to be upgraded. This directory can be removed after a year or so, once we are confident that all clients have been upgraded to recent versions.

View File

@@ -1,11 +0,0 @@
id: 0394074009f8454e86cbf935a03da973
note_id: 59e44f93f28242529fbbca804bdd25c5
tag_id: 1e55a346b1c3444996c3c9f52d4adc47
created_time: 2021-08-07T17:03:33.718Z
updated_time: 2021-08-07T17:03:33.718Z
user_created_time: 2021-08-07T17:03:33.718Z
user_updated_time: 2021-08-07T17:03:33.718Z
encryption_cipher_text:
encryption_applied: 0
is_shared: 0
type_: 6

View File

@@ -1,12 +0,0 @@
tag1
id: 052789e9393649ae85427a7c17bfd263
created_time: 2021-08-07T17:03:33.706Z
updated_time: 2021-08-07T17:03:33.706Z
user_created_time: 2021-08-07T17:03:33.706Z
user_updated_time: 2021-08-07T17:03:33.706Z
encryption_cipher_text:
encryption_applied: 0
is_shared: 0
parent_id:
type_: 5

View File

@@ -1,12 +0,0 @@
tag2
id: 1e55a346b1c3444996c3c9f52d4adc47
created_time: 2021-08-07T17:03:33.717Z
updated_time: 2021-08-07T17:03:33.717Z
user_created_time: 2021-08-07T17:03:33.717Z
user_updated_time: 2021-08-07T17:03:33.717Z
encryption_cipher_text:
encryption_applied: 0
is_shared: 0
parent_id:
type_: 5

View File

@@ -1,11 +0,0 @@
id: 24a091b928cd4d70968514d4bddb79ad
note_id: 264606b4634f4fe58dda0e58a0dc64d9
tag_id: 1e55a346b1c3444996c3c9f52d4adc47
created_time: 2021-08-07T17:03:33.835Z
updated_time: 2021-08-07T17:03:33.835Z
user_created_time: 2021-08-07T17:03:33.835Z
user_updated_time: 2021-08-07T17:03:33.835Z
encryption_cipher_text:
encryption_applied: 0
is_shared: 0
type_: 6

View File

@@ -1,30 +0,0 @@
note5
![photo.jpg](:/933cf209b0094d43884c03149f034128)
id: 264606b4634f4fe58dda0e58a0dc64d9
parent_id: 625eb45b911248028fecd94bdca86f61
created_time: 2021-08-07T17:03:33.725Z
updated_time: 2021-08-07T17:03:33.833Z
is_conflict: 0
latitude: 0.00000000
longitude: 0.00000000
altitude: 0.0000
author:
source_url:
is_todo: 0
todo_due: 0
todo_completed: 0
source: joplin
source_application: net.cozic.joplintest-cli
application_data:
order: 1628355813725
user_created_time: 2021-08-07T17:03:33.725Z
user_updated_time: 2021-08-07T17:03:33.833Z
encryption_cipher_text:
encryption_applied: 0
markup_language: 1
is_shared: 0
share_id:
conflict_original_id:
type_: 1

View File

@@ -1,13 +0,0 @@
subFolder2
id: 5186fc36e6e44e14bd9dff172d7c41b2
created_time: 2021-08-07T17:03:33.591Z
updated_time: 2021-08-07T17:03:33.591Z
user_created_time: 2021-08-07T17:03:33.591Z
user_updated_time: 2021-08-07T17:03:33.591Z
encryption_cipher_text:
encryption_applied: 0
parent_id: c227e85585674332badfbc09c50907ec
is_shared: 0
share_id:
type_: 2

View File

@@ -1,28 +0,0 @@
note3
id: 59e44f93f28242529fbbca804bdd25c5
parent_id: c227e85585674332badfbc09c50907ec
created_time: 2021-08-07T17:03:33.711Z
updated_time: 2021-08-07T17:03:33.711Z
is_conflict: 0
latitude: 0.00000000
longitude: 0.00000000
altitude: 0.0000
author:
source_url:
is_todo: 0
todo_due: 0
todo_completed: 0
source: joplin
source_application: net.cozic.joplintest-cli
application_data:
order: 1628355813711
user_created_time: 2021-08-07T17:03:33.711Z
user_updated_time: 2021-08-07T17:03:33.711Z
encryption_cipher_text:
encryption_applied: 0
markup_language: 1
is_shared: 0
share_id:
conflict_original_id:
type_: 1

View File

@@ -1,28 +0,0 @@
note4
id: 5c0b421ac1e645e48dbdba4ed5328327
parent_id: c227e85585674332badfbc09c50907ec
created_time: 2021-08-07T17:03:33.720Z
updated_time: 2021-08-07T17:03:33.720Z
is_conflict: 0
latitude: 0.00000000
longitude: 0.00000000
altitude: 0.0000
author:
source_url:
is_todo: 0
todo_due: 0
todo_completed: 0
source: joplin
source_application: net.cozic.joplintest-cli
application_data:
order: 1628355813719
user_created_time: 2021-08-07T17:03:33.720Z
user_updated_time: 2021-08-07T17:03:33.720Z
encryption_cipher_text:
encryption_applied: 0
markup_language: 1
is_shared: 0
share_id:
conflict_original_id:
type_: 1

View File

@@ -1,13 +0,0 @@
folder3
id: 625eb45b911248028fecd94bdca86f61
created_time: 2021-08-07T17:03:33.723Z
updated_time: 2021-08-07T17:03:33.723Z
user_created_time: 2021-08-07T17:03:33.723Z
user_updated_time: 2021-08-07T17:03:33.723Z
encryption_cipher_text:
encryption_applied: 0
parent_id:
is_shared: 0
share_id:
type_: 2

View File

@@ -1,28 +0,0 @@
note2
id: 6b3b51468e8e44f1ba1b69e4d7e71613
parent_id: 5186fc36e6e44e14bd9dff172d7c41b2
created_time: 2021-08-07T17:03:33.710Z
updated_time: 2021-08-07T17:03:33.710Z
is_conflict: 0
latitude: 0.00000000
longitude: 0.00000000
altitude: 0.0000
author:
source_url:
is_todo: 0
todo_due: 0
todo_completed: 0
source: joplin
source_application: net.cozic.joplintest-cli
application_data:
order: 1628355813710
user_created_time: 2021-08-07T17:03:33.710Z
user_updated_time: 2021-08-07T17:03:33.710Z
encryption_cipher_text:
encryption_applied: 0
markup_language: 1
is_shared: 0
share_id:
conflict_original_id:
type_: 1

View File

@@ -1,30 +0,0 @@
note1
![photo.jpg](:/b1947d6f70314ab180b343e90f1b4660)
id: 8436cd9c58824ca58ed146d7bd519dfd
parent_id: 5186fc36e6e44e14bd9dff172d7c41b2
created_time: 2021-08-07T17:03:33.592Z
updated_time: 2021-08-07T17:03:33.703Z
is_conflict: 0
latitude: 0.00000000
longitude: 0.00000000
altitude: 0.0000
author:
source_url:
is_todo: 0
todo_due: 0
todo_completed: 0
source: joplin
source_application: net.cozic.joplintest-cli
application_data:
order: 1628355813592
user_created_time: 2021-08-07T17:03:33.592Z
user_updated_time: 2021-08-07T17:03:33.703Z
encryption_cipher_text:
encryption_applied: 0
markup_language: 1
is_shared: 0
share_id:
conflict_original_id:
type_: 1

View File

@@ -1,13 +0,0 @@
subFolder1
id: 8ce22808466b43008754086e29acccb5
created_time: 2021-08-07T17:03:33.590Z
updated_time: 2021-08-07T17:03:33.590Z
user_created_time: 2021-08-07T17:03:33.590Z
user_updated_time: 2021-08-07T17:03:33.590Z
encryption_cipher_text:
encryption_applied: 0
parent_id: c227e85585674332badfbc09c50907ec
is_shared: 0
share_id:
type_: 2

View File

@@ -1,17 +0,0 @@
photo.jpg
id: 933cf209b0094d43884c03149f034128
mime: image/jpeg
filename:
created_time: 2021-08-07T17:03:33.831Z
updated_time: 2021-08-07T17:03:33.831Z
user_created_time: 2021-08-07T17:03:33.831Z
user_updated_time: 2021-08-07T17:03:33.831Z
file_extension: jpg
encryption_cipher_text:
encryption_applied: 0
encryption_blob_encrypted: 0
size: 2720
is_shared: 0
share_id:
type_: 4

View File

@@ -1,11 +0,0 @@
id: a9d36e4398c74610b44a690b3a263fec
note_id: 8436cd9c58824ca58ed146d7bd519dfd
tag_id: 052789e9393649ae85427a7c17bfd263
created_time: 2021-08-07T17:03:33.709Z
updated_time: 2021-08-07T17:03:33.709Z
user_created_time: 2021-08-07T17:03:33.709Z
user_updated_time: 2021-08-07T17:03:33.709Z
encryption_cipher_text:
encryption_applied: 0
is_shared: 0
type_: 6

View File

@@ -1,17 +0,0 @@
photo.jpg
id: b1947d6f70314ab180b343e90f1b4660
mime: image/jpeg
filename:
created_time: 2021-08-07T17:03:33.701Z
updated_time: 2021-08-07T17:03:33.701Z
user_created_time: 2021-08-07T17:03:33.701Z
user_updated_time: 2021-08-07T17:03:33.701Z
file_extension: jpg
encryption_cipher_text:
encryption_applied: 0
encryption_blob_encrypted: 0
size: 2720
is_shared: 0
share_id:
type_: 4

View File

@@ -1,11 +0,0 @@
id: bd25634be15c4005913bca01e3229305
note_id: 5c0b421ac1e645e48dbdba4ed5328327
tag_id: 1e55a346b1c3444996c3c9f52d4adc47
created_time: 2021-08-07T17:03:33.721Z
updated_time: 2021-08-07T17:03:33.721Z
user_created_time: 2021-08-07T17:03:33.721Z
user_updated_time: 2021-08-07T17:03:33.721Z
encryption_cipher_text:
encryption_applied: 0
is_shared: 0
type_: 6

View File

@@ -1,13 +0,0 @@
folder1
id: c227e85585674332badfbc09c50907ec
created_time: 2021-08-07T17:03:33.589Z
updated_time: 2021-08-07T17:03:33.589Z
user_created_time: 2021-08-07T17:03:33.589Z
user_updated_time: 2021-08-07T17:03:33.589Z
encryption_cipher_text:
encryption_applied: 0
parent_id:
is_shared: 0
share_id:
type_: 2

View File

@@ -1,11 +0,0 @@
id: e2f6cc04e2c94066b3104e0f478d50c5
note_id: 59e44f93f28242529fbbca804bdd25c5
tag_id: 052789e9393649ae85427a7c17bfd263
created_time: 2021-08-07T17:03:33.713Z
updated_time: 2021-08-07T17:03:33.713Z
user_created_time: 2021-08-07T17:03:33.713Z
user_updated_time: 2021-08-07T17:03:33.713Z
encryption_cipher_text:
encryption_applied: 0
is_shared: 0
type_: 6

View File

@@ -1,13 +0,0 @@
folder2
id: f2bd86db0eeb47da8255e4bfb14cac16
created_time: 2021-08-07T17:03:33.722Z
updated_time: 2021-08-07T17:03:33.722Z
user_created_time: 2021-08-07T17:03:33.722Z
user_updated_time: 2021-08-07T17:03:33.722Z
encryption_cipher_text:
encryption_applied: 0
parent_id:
is_shared: 0
share_id:
type_: 2

View File

@@ -1 +0,0 @@
{"version":3,"e2ee":{"value":false,"updatedTime":0},"activeMasterKeyId":{"value":"","updatedTime":0},"masterKeys":[]}

View File

@@ -1,4 +0,0 @@
# Ignore everything in this directory
*
# Except this file
!.gitignore

View File

@@ -1,4 +0,0 @@
# Ignore everything in this directory
*
# Except this file
!.gitignore

View File

@@ -1,7 +1,7 @@
{
"manifest_version": 2,
"name": "Joplin Web Clipper [DEV]",
"version": "2.3.0",
"version": "2.2.0",
"description": "Capture and save web pages and screenshots from your browser to Joplin.",
"homepage_url": "https://joplinapp.org",
"content_security_policy": "script-src 'self'; object-src 'self'",

View File

@@ -1,5 +1,5 @@
{
"name": "joplin-webclipper",
"version": "1.0.8",
"version": "1.0.9",
"lockfileVersion": 1
}

View File

@@ -4,7 +4,7 @@
"scripts": {
"postinstall": "cd popup && npm install"
},
"version": "1.0.8",
"version": "1.0.9",
"description": "Joplin Web Clipper",
"main": "main.js",
"author": "Laurent Cozic",

File diff suppressed because it is too large Load Diff

View File

@@ -9,4 +9,3 @@ gui/note-viewer/fonts/
gui/note-viewer/lib.js
gui/NoteEditor/NoteBody/TinyMCE/supportedLocales.js
runForSharingCommands-*
runForTestingCommands-*

View File

@@ -26,7 +26,9 @@ import ExternalEditWatcher from '@joplin/lib/services/ExternalEditWatcher';
import produce from 'immer';
import iterateItems from './gui/ResizableLayout/utils/iterateItems';
import validateLayout from './gui/ResizableLayout/utils/validateLayout';
const { FoldersScreenUtils } = require('@joplin/lib/folders-screen-utils.js');
import MasterKey from '@joplin/lib/models/MasterKey';
import Folder from '@joplin/lib/models/Folder';
const fs = require('fs-extra');
import Tag from '@joplin/lib/models/Tag';
@@ -705,12 +707,12 @@ class Application extends BaseApplication {
items: tags,
});
// const masterKeys = await MasterKey.all();
const masterKeys = await MasterKey.all();
// this.dispatch({
// type: 'MASTERKEY_UPDATE_ALL',
// items: masterKeys,
// });
this.dispatch({
type: 'MASTERKEY_UPDATE_ALL',
items: masterKeys,
});
this.store().dispatch({
type: 'FOLDER_SELECT',

View File

@@ -10,18 +10,17 @@ import shim from '@joplin/lib/shim';
import dialogs from './dialogs';
import bridge from '../services/bridge';
import shared from '@joplin/lib/components/shared/encryption-config-shared';
import { MasterKeyEntity } from '@joplin/lib/services/database/types';
import { getEncryptionEnabled, SyncInfo } from '@joplin/lib/services/synchronizer/syncInfoUtils';
import { toggleAndSetupEncryption } from '@joplin/lib/services/e2ee/utils';
import MasterKey from '@joplin/lib/models/MasterKey';
import { MasterKeyEntity } from '../../lib/services/database/types';
interface Props {}
interface Props {
}
class EncryptionConfigScreenComponent extends React.Component<Props> {
constructor(props: Props) {
super(props);
shared.initialize(this, props);
shared.constructor(this, props);
}
componentWillUnmount() {
@@ -168,21 +167,23 @@ class EncryptionConfigScreenComponent extends React.Component<Props> {
}
const onToggleButtonClick = async () => {
const isEnabled = getEncryptionEnabled();
const masterKey = MasterKey.latest();
const isEnabled = Setting.value('encryption.enabled');
let answer = null;
if (isEnabled) {
answer = await dialogs.confirm(_('Disabling encryption means *all* your notes and attachments are going to be re-synchronised and sent unencrypted to the sync target. Do you wish to continue?'));
} else {
const msg = shared.enableEncryptionConfirmationMessages(masterKey);
answer = await dialogs.prompt(msg.join('\n\n'), '', '', { type: 'password' });
answer = await dialogs.prompt(_('Enabling encryption means *all* your notes and attachments are going to be re-synchronised and sent encrypted to the sync target. Do not lose the password as, for security purposes, this will be the *only* way to decrypt the data! To enable encryption, please enter your password below.'), '', '', { type: 'password' });
}
if (!answer) return;
try {
await toggleAndSetupEncryption(EncryptionService.instance(), !isEnabled, masterKey, answer);
if (isEnabled) {
await EncryptionService.instance().disableEncryption();
} else {
await EncryptionService.instance().generateMasterKeyAndEnableEncryption(answer);
}
} catch (error) {
await dialogs.alert(error.message);
}
@@ -294,14 +295,12 @@ class EncryptionConfigScreenComponent extends React.Component<Props> {
}
const mapStateToProps = (state: State) => {
const syncInfo = new SyncInfo(state.settings['syncInfoCache']);
return {
themeId: state.settings.theme,
masterKeys: syncInfo.masterKeys,
masterKeys: state.masterKeys,
passwords: state.settings['encryption.passwordCache'],
encryptionEnabled: syncInfo.e2ee,
activeMasterKeyId: syncInfo.activeMasterKeyId,
encryptionEnabled: state.settings['encryption.enabled'],
activeMasterKeyId: state.settings['encryption.activeMasterKeyId'],
shouldReencrypt: state.settings['encryption.shouldReencrypt'] >= Setting.SHOULD_REENCRYPT_YES,
notLoadedMasterKeys: state.notLoadedMasterKeys,
};

View File

@@ -35,7 +35,6 @@ import { ShareInvitation } from '@joplin/lib/services/share/reducer';
import ShareService from '@joplin/lib/services/share/ShareService';
import { reg } from '@joplin/lib/registry';
import removeKeylessItems from '../ResizableLayout/utils/removeKeylessItems';
import { localSyncInfoFromState } from '@joplin/lib/services/synchronizer/syncInfoUtils';
const { connect } = require('react-redux');
const { PromptDialog } = require('../PromptDialog.min.js');
@@ -783,6 +782,7 @@ class MainScreenComponent extends React.Component<Props, State> {
scripts={view.scripts}
pluginId={plugin.id}
buttons={view.buttons}
fitToContent={view.fitToContent}
/>);
}
@@ -857,8 +857,6 @@ class MainScreenComponent extends React.Component<Props, State> {
}
const mapStateToProps = (state: AppState) => {
const syncInfo = localSyncInfoFromState(state);
return {
themeId: state.settings.theme,
settingEditorCodeView: state.settings['editor.codeView'],
@@ -866,8 +864,8 @@ const mapStateToProps = (state: AppState) => {
notes: state.notes,
hasDisabledSyncItems: state.hasDisabledSyncItems,
hasDisabledEncryptionItems: state.hasDisabledEncryptionItems,
showMissingMasterKeyMessage: state.notLoadedMasterKeys.length && syncInfo.masterKeys.length,
showNeedUpgradingMasterKeyMessage: !!EncryptionService.instance().masterKeysThatNeedUpgrading(syncInfo.masterKeys).length,
showMissingMasterKeyMessage: state.notLoadedMasterKeys.length && state.masterKeys.length,
showNeedUpgradingMasterKeyMessage: !!EncryptionService.instance().masterKeysThatNeedUpgrading(state.masterKeys).length,
showShouldReencryptMessage: state.settings['encryption.shouldReencrypt'] >= Setting.SHOULD_REENCRYPT_YES,
shouldUpgradeSyncTarget: state.settings['sync.upgradeState'] === Setting.SYNC_UPGRADE_STATE_SHOULD_DO,
selectedFolderId: state.selectedFolderId,

View File

@@ -8,7 +8,7 @@ class NavigatorComponent extends Component {
UNSAFE_componentWillReceiveProps(newProps) {
if (newProps.route) {
const screenInfo = this.props.screens[newProps.route.routeName];
const devMarker = Setting.value('env') === 'dev' ? ` (DEV - ${Setting.value('profileDir')})` : '';
const devMarker = Setting.value('env') === 'dev' ? ' (DEV)' : '';
const windowTitle = [`Joplin${devMarker}`];
if (screenInfo.title) {
windowTitle.push(screenInfo.title());

View File

@@ -3,6 +3,7 @@ import { useState, useEffect } from 'react';
import JoplinServerApi from '@joplin/lib/JoplinServerApi';
import { _, _n } from '@joplin/lib/locale';
import Note from '@joplin/lib/models/Note';
import Setting from '@joplin/lib/models/Setting';
import DialogButtonRow from './DialogButtonRow';
import { themeStyle, buildStyle } from '@joplin/lib/theme';
import { reg } from '@joplin/lib/registry';
@@ -14,7 +15,6 @@ import { NoteEntity } from '@joplin/lib/services/database/types';
import Button from './Button/Button';
import { connect } from 'react-redux';
import { AppState } from '../app';
import { getEncryptionEnabled } from '@joplin/lib/services/synchronizer/syncInfoUtils';
const { clipboard } = require('electron');
interface Props {
@@ -210,7 +210,7 @@ export function ShareNoteDialog(props: Props) {
};
function renderEncryptionWarningMessage() {
if (!getEncryptionEnabled()) return null;
if (!Setting.value('encryption.enabled')) return null;
return <div style={theme.textStyle}>{_('Note: When a note is shared, it will no longer be encrypted on the server.')}<hr/></div>;
}

File diff suppressed because it is too large Load Diff

View File

@@ -1,6 +1,6 @@
{
"name": "@joplin/app-desktop",
"version": "2.3.3",
"version": "2.2.7",
"description": "Joplin for Desktop",
"main": "main.js",
"private": true,
@@ -93,7 +93,7 @@
},
"homepage": "https://github.com/laurent22/joplin#readme",
"devDependencies": {
"@joplin/tools": "~2.3",
"@joplin/tools": "^1.0.9",
"@testing-library/react-hooks": "^3.4.2",
"@types/jest": "^26.0.15",
"@types/node": "^14.14.6",
@@ -122,8 +122,8 @@
},
"dependencies": {
"@fortawesome/fontawesome-free": "^5.13.0",
"@joplin/lib": "~2.3",
"@joplin/renderer": "~2.3",
"@joplin/lib": "^1.0.9",
"@joplin/renderer": "^1.0.17",
"async-mutex": "^0.1.3",
"codemirror": "^5.56.0",
"color": "^3.1.2",

View File

@@ -17,7 +17,7 @@ USER_NUM=$1
COMMANDS=($(echo $2 | tr "," "\n"))
PROFILE_DIR=~/.config/joplindev-desktop-$USER_NUM
CMD_FILE="$SCRIPT_DIR/runForTestingCommands-$USER_NUM.txt"
CMD_FILE="$SCRIPT_DIR/runForSharingCommands-$USER_NUM.txt"
rm -f "$CMD_FILE"
touch "$CMD_FILE"
@@ -39,13 +39,6 @@ do
USER_EMAIL="user$USER_NUM@example.com"
rm -rf "$PROFILE_DIR"
# rm -rf "$HOME/Temp/SyncTestE2EE copy"
# rsync -a "$HOME/Temp/SyncTestE2EE/" "$HOME/Temp/SyncTestE2EE copy/"
# echo "config sync.target 2" >> "$CMD_FILE"
# echo "config sync.2.path \"$HOME/Temp/SyncTestE2EE copy/\"" >> "$CMD_FILE"
echo "config keychain.supported 0" >> "$CMD_FILE"
echo "config sync.target 10" >> "$CMD_FILE"
# echo "config sync.10.path http://api.joplincloud.local:22300" >> "$CMD_FILE"

View File

@@ -31,8 +31,8 @@ export interface Props {
const StyledFrame = styled.iframe`
padding: 0;
margin: 0;
width: ${(props: any) => props.fitToContent ? `${props.width}px` : '100%'};
height: ${(props: any) => props.fitToContent ? `${props.height}px` : '100%'};
width: ${(props: any) => props.fitToContent ? `${props.width}px` : '90vw'};
height: ${(props: any) => props.fitToContent ? `${props.height}px` : '80vh'};
border: none;
border-bottom: ${(props: Props) => props.borderBottom ? `1px solid ${props.theme.dividerColor}` : 'none'};
`;

View File

@@ -9,6 +9,7 @@ const styled = require('styled-components').default;
interface Props extends UserWebviewProps {
buttons: ButtonSpec[];
fitToContent: boolean;
}
const StyledRoot = styled.div`
@@ -113,7 +114,7 @@ export default function UserWebviewDialog(props: Props) {
viewId={props.viewId}
themeId={props.themeId}
borderBottom={false}
fitToContent={true}
fitToContent={props.fitToContent}
onSubmit={onSubmit}
onDismiss={onDismiss}
onReady={onReady}

View File

@@ -141,10 +141,10 @@ android {
applicationId "net.cozic.joplin"
minSdkVersion rootProject.ext.minSdkVersion
targetSdkVersion rootProject.ext.targetSdkVersion
versionCode 2097647
versionName "2.3.3"
versionCode 2097642
versionName "2.2.3"
ndk {
abiFilters "armeabi-v7a", "x86"
abiFilters "armeabi-v7a", "x86", "arm64-v8a", "x86_64"
}
// https://github.com/react-native-community/react-native-camera/issues/2138
@@ -158,7 +158,7 @@ android {
reset()
enable enableSeparateBuildPerCPUArchitecture
universalApk false // If true, also generate a universal APK
include "armeabi-v7a", "x86"
include "armeabi-v7a", "x86", "arm64-v8a", "x86_64"
}
}
signingConfigs {
@@ -195,12 +195,11 @@ android {
variant.outputs.each { output ->
// For each separate APK per architecture, set a unique version code as described here:
// https://developer.android.com/studio/build/configure-apk-splits.html
// Example: versionCode 1 will generate 1001 for armeabi-v7a, 1002 for x86, etc.
def versionCodes = ["armeabi-v7a": 1, "x86": 2, "arm64-v8a": 3, "x86_64": 4]
def abi = output.getFilter(OutputFile.ABI)
if (abi != null) { // null for the universal-debug, universal-release variants
output.versionCodeOverride =
defaultConfig.versionCode * 1000 + versionCodes.get(abi)
versionCodes.get(abi) * 1048576 + defaultConfig.versionCode
}
}

View File

@@ -4,10 +4,5 @@
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
<application
android:usesCleartextTraffic="true"
tools:targetApi="28"
tools:ignore="GoogleAppIndexingWarning">
<activity android:name="com.facebook.react.devsupport.DevSettingsActivity" />
</application>
<application android:usesCleartextTraffic="true" tools:targetApi="28" tools:ignore="GoogleAppIndexingWarning" />
</manifest>

View File

@@ -58,6 +58,8 @@
</intent-filter>
</activity>
<activity android:name="com.facebook.react.devsupport.DevSettingsActivity" />
<!-- SHARE EXTENSION -->
<activity
android:noHistory="true"

View File

@@ -1,7 +1,7 @@
<resources>
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.DayNight.NoActionBar">
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<!-- Customize your theme here. -->
<item name="android:textColor">#000000</item>
</style>

View File

@@ -2,18 +2,17 @@
buildscript {
ext {
buildToolsVersion = "29.0.3"
buildToolsVersion = "29.0.2"
minSdkVersion = 21
compileSdkVersion = 29
targetSdkVersion = 29
ndkVersion = "20.1.5948944"
}
repositories {
google()
jcenter()
}
dependencies {
classpath("com.android.tools.build:gradle:4.1.0")
classpath("com.android.tools.build:gradle:3.5.3")
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}

View File

@@ -26,4 +26,4 @@ android.useAndroidX=true
android.enableJetifier=true
# Version of flipper SDK to use with React Native
FLIPPER_VERSION=0.75.1
FLIPPER_VERSION=0.54.0

View File

@@ -1,5 +1,5 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-6.7-all.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-6.2-all.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists

View File

@@ -14,7 +14,6 @@ const { themeStyle } = require('./global-style.js');
const { Dropdown } = require('./Dropdown.js');
const { dialogs } = require('../utils/dialogs.js');
const DialogBox = require('react-native-dialogbox').default;
const { localSyncInfoFromState } = require('@joplin/lib/services/synchronizer/syncInfoUtils');
Icon.loadFont();
@@ -529,8 +528,6 @@ ScreenHeaderComponent.defaultProps = {
};
const ScreenHeader = connect(state => {
const syncInfo = localSyncInfoFromState(state);
return {
historyCanGoBack: state.historyCanGoBack,
locale: state.settings.locale,
@@ -538,7 +535,7 @@ const ScreenHeader = connect(state => {
themeId: state.settings.theme,
noteSelectionEnabled: state.noteSelectionEnabled,
selectedNoteIds: state.selectedNoteIds,
showMissingMasterKeyMessage: state.notLoadedMasterKeys.length && syncInfo.masterKeys.length,
showMissingMasterKeyMessage: state.notLoadedMasterKeys.length && state.masterKeys.length,
hasDisabledSyncItems: state.hasDisabledSyncItems,
shouldUpgradeSyncTarget: state.settings['sync.upgradeState'] === Setting.SYNC_UPGRADE_STATE_SHOULD_DO,
};

View File

@@ -10,13 +10,12 @@ import EncryptionService from '@joplin/lib/services/EncryptionService';
import { _ } from '@joplin/lib/locale';
import time from '@joplin/lib/time';
import shared from '@joplin/lib/components/shared/encryption-config-shared';
import { MasterKeyEntity } from '@joplin/lib/services/database/types';
import { MasterKeyEntity } from '../../../lib/services/database/types';
import { State } from '@joplin/lib/reducer';
import { SyncInfo } from '@joplin/lib/services/synchronizer/syncInfoUtils';
import { setupAndDisableEncryption, toggleAndSetupEncryption } from '@joplin/lib/services/e2ee/utils';
import MasterKey from '@joplin/lib/models/MasterKey';
interface Props {}
interface Props {
}
class EncryptionConfigScreenComponent extends BaseScreenComponent<Props> {
static navigationOptions(): any {
@@ -32,7 +31,7 @@ class EncryptionConfigScreenComponent extends BaseScreenComponent<Props> {
passwordPromptConfirmAnswer: '',
};
shared.initialize(this, props);
shared.constructor(this, props);
this.styles_ = {};
}
@@ -41,6 +40,10 @@ class EncryptionConfigScreenComponent extends BaseScreenComponent<Props> {
this.isMounted_ = false;
}
initState(props: Props) {
return shared.initState(this, props);
}
async refreshStats() {
return shared.refreshStats(this);
}
@@ -132,7 +135,6 @@ class EncryptionConfigScreenComponent extends BaseScreenComponent<Props> {
passwordPromptComponent() {
const theme = themeStyle(this.props.themeId);
const masterKey = MasterKey.latest();
const onEnableClick = async () => {
try {
@@ -141,23 +143,16 @@ class EncryptionConfigScreenComponent extends BaseScreenComponent<Props> {
const password2 = this.state.passwordPromptConfirmAnswer;
if (!password2) throw new Error(_('Confirm password cannot be empty'));
if (password !== password2) throw new Error(_('Passwords do not match!'));
await toggleAndSetupEncryption(EncryptionService.instance(), true, masterKey, password);
// await generateMasterKeyAndEnableEncryption(EncryptionService.instance(), password);
await EncryptionService.instance().generateMasterKeyAndEnableEncryption(password);
this.setState({ passwordPromptShow: false });
} catch (error) {
await dialogs.error(this, error.message);
}
};
const messages = shared.enableEncryptionConfirmationMessages(masterKey);
const messageComps = messages.map(msg => {
return <Text key={msg} style={{ fontSize: theme.fontSize, color: theme.color, marginBottom: 10 }}>{msg}</Text>;
});
return (
<View style={{ flex: 1, borderColor: theme.dividerColor, borderWidth: 1, padding: 10, marginTop: 10, marginBottom: 10 }}>
<View>{messageComps}</View>
<Text style={{ fontSize: theme.fontSize, color: theme.color, marginBottom: 10 }}>{_('Enabling encryption means *all* your notes and attachments are going to be re-synchronised and sent encrypted to the sync target. Do not lose the password as, for security purposes, this will be the *only* way to decrypt the data! To enable encryption, please enter your password below.')}</Text>
<Text style={this.styles().normalText}>{_('Password:')}</Text>
<TextInput
selectionColor={theme.textSelectionColor}
@@ -226,7 +221,7 @@ class EncryptionConfigScreenComponent extends BaseScreenComponent<Props> {
if (!ok) return;
try {
await setupAndDisableEncryption(EncryptionService.instance());
await EncryptionService.instance().disableEncryption();
} catch (error) {
await dialogs.error(this, error.message);
}
@@ -306,14 +301,12 @@ class EncryptionConfigScreenComponent extends BaseScreenComponent<Props> {
}
const EncryptionConfigScreen = connect((state: State) => {
const syncInfo = new SyncInfo(state.settings['syncInfoCache']);
return {
themeId: state.settings.theme,
masterKeys: syncInfo.masterKeys,
masterKeys: state.masterKeys,
passwords: state.settings['encryption.passwordCache'],
encryptionEnabled: syncInfo.e2ee,
activeMasterKeyId: syncInfo.activeMasterKeyId,
encryptionEnabled: state.settings['encryption.enabled'],
activeMasterKeyId: state.settings['encryption.activeMasterKeyId'],
notLoadedMasterKeys: state.notLoadedMasterKeys,
};
})(EncryptionConfigScreenComponent);

View File

@@ -6,6 +6,10 @@
// So there's basically still a one way flux: React => SQLite => Redux => React
// For aws-sdk-js-v3
import 'react-native-get-random-values';
import 'react-native-url-polyfill/auto';
import { LogBox, AppRegistry } from 'react-native';
const Root = require('./root').default;

View File

@@ -221,6 +221,7 @@
00DD1BFF1BD5951E006B06BC /* Bundle React Native code and images */,
CBC8354E4CF5CF4E15F2FCDE /* [CP] Copy Pods Resources */,
AE82E4B42599FA3A0013551B /* Embed App Extensions */,
13E3B207347DBB838B02DAEA /* [CP] Embed Pods Frameworks */,
);
buildRules = (
);
@@ -346,6 +347,24 @@
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
showEnvVarsInLog = 0;
};
13E3B207347DBB838B02DAEA /* [CP] Embed Pods Frameworks */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputPaths = (
"${PODS_ROOT}/Target Support Files/Pods-Joplin/Pods-Joplin-frameworks.sh",
"${PODS_XCFRAMEWORKS_BUILD_DIR}/OpenSSL/OpenSSL.framework/OpenSSL",
);
name = "[CP] Embed Pods Frameworks";
outputPaths = (
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/OpenSSL.framework",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Joplin/Pods-Joplin-frameworks.sh\"\n";
showEnvVarsInLog = 0;
};
335ACF4DE85695BEBB18D8A3 /* [CP] Check Pods Manifest.lock */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
@@ -492,7 +511,7 @@
INFOPLIST_FILE = Joplin/Info.plist;
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
MARKETING_VERSION = 12.3.0;
MARKETING_VERSION = 12.2.1;
OTHER_LDFLAGS = (
"$(inherited)",
"-ObjC",
@@ -519,7 +538,7 @@
INFOPLIST_FILE = Joplin/Info.plist;
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
MARKETING_VERSION = 12.3.0;
MARKETING_VERSION = 12.2.1;
OTHER_LDFLAGS = (
"$(inherited)",
"-ObjC",
@@ -666,7 +685,7 @@
INFOPLIST_FILE = ShareExtension/Info.plist;
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks";
MARKETING_VERSION = 12.3.0;
MARKETING_VERSION = 12.2.1;
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
MTL_FAST_MATH = YES;
PRODUCT_BUNDLE_IDENTIFIER = net.cozic.joplin.ShareExtension;
@@ -697,7 +716,7 @@
INFOPLIST_FILE = ShareExtension/Info.plist;
IPHONEOS_DEPLOYMENT_TARGET = 9.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks";
MARKETING_VERSION = 12.3.0;
MARKETING_VERSION = 12.2.1;
MTL_FAST_MATH = YES;
PRODUCT_BUNDLE_IDENTIFIER = net.cozic.joplin.ShareExtension;
PRODUCT_NAME = "$(TARGET_NAME)";

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1210"
LastUpgradeVersion = "1130"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"

View File

@@ -79,11 +79,7 @@ didReceiveNotificationResponse:(UNNotificationResponse *)response
moduleName:@"Joplin"
initialProperties:nil];
if (@available(iOS 13.0, *)) {
rootView.backgroundColor = [UIColor systemBackgroundColor];
} else {
rootView.backgroundColor = [UIColor whiteColor];
}
rootView.backgroundColor = [[UIColor alloc] initWithRed:1.0f green:1.0f blue:1.0f alpha:1];
self.window = [[UIWindow alloc] initWithFrame:[UIScreen mainScreen].bounds];
UIViewController *rootViewController = [UIViewController new];

Some files were not shown because too many files have changed in this diff Show More