You've already forked joplin
mirror of
https://github.com/laurent22/joplin.git
synced 2025-08-27 20:29:45 +02:00
Compare commits
1 Commits
server-v2.
...
@joplin/ap
Author | SHA1 | Date | |
---|---|---|---|
|
b490537c26 |
@@ -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
|
||||
|
2
.github/workflows/github-actions-main.yml
vendored
2
.github/workflows/github-actions-main.yml
vendored
@@ -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
15
.gitignore
vendored
@@ -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
|
||||
|
@@ -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;
|
||||
}
|
||||
|
@@ -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}}"
|
||||
|
@@ -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
|
||||
|
@@ -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
|
||||
#-----------------------------------------------------
|
||||
|
16
README.md
16
README.md
@@ -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
18678
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@@ -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);
|
||||
|
@@ -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;
|
||||
}
|
||||
|
||||
|
@@ -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')
|
||||
|
@@ -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')));
|
||||
}
|
||||
}
|
||||
|
||||
|
33259
packages/app-cli/package-lock.json
generated
33259
packages/app-cli/package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@@ -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",
|
||||
|
@@ -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('');
|
||||
|
@@ -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();
|
||||
|
||||
|
||||
|
@@ -1,5 +1,5 @@
|
||||
<div class="joplin-editable"><pre class="joplin-source" data-joplin-language="javascript" data-joplin-source-open="```javascript " data-joplin-source-close=" ```">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">'bonjour'</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">'bonjour'</span>);
|
||||
}</code></pre></div>
|
||||
|
@@ -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
|
||||
|
||||
|
@@ -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);
|
||||
|
||||
},
|
||||
|
||||
});
|
||||
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -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.
|
@@ -1 +0,0 @@
|
||||
2
|
@@ -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
|
@@ -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
|
@@ -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
|
@@ -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
|
@@ -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
|
@@ -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
|
@@ -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
|
@@ -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
|
@@ -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
|
@@ -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
|
@@ -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
|
@@ -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
|
@@ -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
|
@@ -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
|
@@ -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
|
@@ -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
|
@@ -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
|
@@ -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
|
@@ -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
|
@@ -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"}]}
|
@@ -1,4 +0,0 @@
|
||||
# Ignore everything in this directory
|
||||
*
|
||||
# Except this file
|
||||
!.gitignore
|
@@ -1,4 +0,0 @@
|
||||
# Ignore everything in this directory
|
||||
*
|
||||
# Except this file
|
||||
!.gitignore
|
Binary file not shown.
Before Width: | Height: | Size: 2.7 KiB |
Binary file not shown.
Before Width: | Height: | Size: 2.7 KiB |
@@ -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.
|
@@ -1 +0,0 @@
|
||||
2
|
@@ -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
|
@@ -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
|
@@ -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
|
@@ -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
|
@@ -1,30 +0,0 @@
|
||||
note5
|
||||
|
||||

|
||||
|
||||
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
|
@@ -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
|
@@ -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
|
@@ -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
|
@@ -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
|
@@ -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
|
@@ -1,30 +0,0 @@
|
||||
note1
|
||||
|
||||

|
||||
|
||||
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
|
@@ -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
|
@@ -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
|
@@ -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
|
@@ -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
|
@@ -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
|
@@ -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
|
@@ -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
|
@@ -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
|
@@ -1 +0,0 @@
|
||||
{"version":3,"e2ee":{"value":false,"updatedTime":0},"activeMasterKeyId":{"value":"","updatedTime":0},"masterKeys":[]}
|
@@ -1,4 +0,0 @@
|
||||
# Ignore everything in this directory
|
||||
*
|
||||
# Except this file
|
||||
!.gitignore
|
@@ -1,4 +0,0 @@
|
||||
# Ignore everything in this directory
|
||||
*
|
||||
# Except this file
|
||||
!.gitignore
|
@@ -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'",
|
||||
|
2
packages/app-clipper/package-lock.json
generated
2
packages/app-clipper/package-lock.json
generated
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"name": "joplin-webclipper",
|
||||
"version": "1.0.8",
|
||||
"version": "1.0.9",
|
||||
"lockfileVersion": 1
|
||||
}
|
||||
|
@@ -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",
|
||||
|
22025
packages/app-clipper/popup/package-lock.json
generated
22025
packages/app-clipper/popup/package-lock.json
generated
File diff suppressed because it is too large
Load Diff
1
packages/app-desktop/.gitignore
vendored
1
packages/app-desktop/.gitignore
vendored
@@ -9,4 +9,3 @@ gui/note-viewer/fonts/
|
||||
gui/note-viewer/lib.js
|
||||
gui/NoteEditor/NoteBody/TinyMCE/supportedLocales.js
|
||||
runForSharingCommands-*
|
||||
runForTestingCommands-*
|
||||
|
@@ -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',
|
||||
|
@@ -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,
|
||||
};
|
||||
|
@@ -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,
|
||||
|
@@ -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());
|
||||
|
@@ -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>;
|
||||
}
|
||||
|
||||
|
50212
packages/app-desktop/package-lock.json
generated
50212
packages/app-desktop/package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@@ -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",
|
||||
|
@@ -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"
|
||||
|
@@ -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'};
|
||||
`;
|
||||
|
@@ -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}
|
||||
|
@@ -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
|
||||
}
|
||||
|
||||
}
|
||||
|
@@ -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>
|
||||
|
@@ -58,6 +58,8 @@
|
||||
</intent-filter>
|
||||
</activity>
|
||||
|
||||
<activity android:name="com.facebook.react.devsupport.DevSettingsActivity" />
|
||||
|
||||
<!-- SHARE EXTENSION -->
|
||||
<activity
|
||||
android:noHistory="true"
|
||||
|
@@ -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>
|
||||
|
@@ -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
|
||||
}
|
||||
|
@@ -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
|
||||
|
@@ -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
|
||||
|
@@ -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,
|
||||
};
|
||||
|
@@ -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);
|
||||
|
@@ -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;
|
||||
|
||||
|
@@ -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)";
|
||||
|
@@ -1,6 +1,6 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Scheme
|
||||
LastUpgradeVersion = "1210"
|
||||
LastUpgradeVersion = "1130"
|
||||
version = "1.3">
|
||||
<BuildAction
|
||||
parallelizeBuildables = "YES"
|
||||
|
@@ -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
Reference in New Issue
Block a user