You've already forked joplin
mirror of
https://github.com/laurent22/joplin.git
synced 2025-09-05 20:56:22 +02:00
Compare commits
158 Commits
testing2
...
android-v1
Author | SHA1 | Date | |
---|---|---|---|
|
ff6cd57873 | ||
|
4c948408c4 | ||
|
cc3a1d78da | ||
|
0cc544a95f | ||
|
03b7402dc5 | ||
|
dd5c400c24 | ||
|
abc702c21f | ||
|
cc3e1bdee8 | ||
|
10cfa773ca | ||
|
8dc42b1f41 | ||
|
6e7ea9a549 | ||
|
ed2ccdd504 | ||
|
6d2bad01e6 | ||
|
3847831d80 | ||
|
44462f4d71 | ||
|
4d20589773 | ||
|
52140ec1a9 | ||
|
08c2a7ad64 | ||
|
d19796f14c | ||
|
e4f53a48d2 | ||
|
154163bd6c | ||
|
4502414934 | ||
|
38e4bc61d9 | ||
|
86c471afcd | ||
|
e2698aaead | ||
|
8cfe4b0f82 | ||
|
fd90a490c0 | ||
|
16c5ffadc7 | ||
|
4a184721e4 | ||
|
1e3bd937ed | ||
|
0f6932f1e8 | ||
|
cab98776db | ||
|
fbc1e3ed3b | ||
|
805d16abda | ||
|
f133229287 | ||
|
8f4031572a | ||
|
d25fa796c0 | ||
|
089d6a5c9e | ||
|
3f83355d9f | ||
|
40380e3066 | ||
|
a6748bafb3 | ||
|
b52f6eb77c | ||
|
98c933fdb7 | ||
|
ece7ffadd6 | ||
|
591bceb8ef | ||
|
04cfd07176 | ||
|
db2282a351 | ||
|
0ec3d6ca9d | ||
|
442b7ce0d3 | ||
|
6a068a90b2 | ||
|
9a6f6c8b39 | ||
|
52d5c32950 | ||
|
de47cff86d | ||
|
a459174f98 | ||
|
75d5aa3a77 | ||
|
c254ca524f | ||
|
51934b8d8d | ||
|
a5dd686bb2 | ||
|
4cbfd04522 | ||
|
6d5d9323bd | ||
|
76063a6284 | ||
|
4119924e57 | ||
|
537336754c | ||
|
06f73919bd | ||
|
3f3e46081c | ||
|
68e4b4eaad | ||
|
9dcb4b51e5 | ||
|
8543849ea1 | ||
|
6ce5240e12 | ||
|
5bc25aefce | ||
|
b737ca7471 | ||
|
a5d7366f94 | ||
|
98f822d89c | ||
|
c33a8250ee | ||
|
adad406696 | ||
|
d82eec0fa4 | ||
|
c93f474547 | ||
|
0afd4a6234 | ||
|
f42786a840 | ||
|
1c1f044966 | ||
|
ad7a80e260 | ||
|
5e040c062c | ||
|
0cede5f90a | ||
|
8dc0deb2a4 | ||
|
1ca44b8f44 | ||
|
4ba9e60194 | ||
|
9d0bb4257f | ||
|
1a273b9bca | ||
|
d9e93cd6c4 | ||
|
5d39860707 | ||
|
60a6f714bc | ||
|
6eebeca259 | ||
|
995034c53f | ||
|
45a0981d05 | ||
|
3d8577a689 | ||
|
5292fc1402 | ||
|
03063f1137 | ||
|
b125a768b8 | ||
|
a721f170e4 | ||
|
76cd69ea16 | ||
|
45d4f277e2 | ||
|
fc2a52aa1a | ||
|
b3e5a1e48d | ||
|
45eb902030 | ||
|
456f7ac00c | ||
|
a93bda71fe | ||
|
0f9d92dd3d | ||
|
5543e9ef64 | ||
|
22dd613660 | ||
|
f7502fe34b | ||
|
8254206f44 | ||
|
3a57cfea02 | ||
|
71bf0437c1 | ||
|
eca4e24362 | ||
|
9a6efb7b37 | ||
|
4b666cbbd2 | ||
|
f8f46db910 | ||
|
f529adac99 | ||
|
3a52b9764b | ||
|
7e78d7716b | ||
|
0488c5c4cb | ||
|
921cc3b6c6 | ||
|
2a7aa28d4c | ||
|
7b3440ac4c | ||
|
958e5a80b7 | ||
|
3179117c62 | ||
|
d895463167 | ||
|
7e0e513051 | ||
|
4309c4f8e2 | ||
|
20b1c90574 | ||
|
7ff6ceb585 | ||
|
3dc3f334ec | ||
|
3476211f8b | ||
|
48e299916f | ||
|
35aebc9f52 | ||
|
cb3e1cf1e9 | ||
|
db509955f6 | ||
|
fb39899f8e | ||
|
f5d4bedc07 | ||
|
e710709c15 | ||
|
d74d6d9539 | ||
|
435e8dfc3b | ||
|
6c68459b34 | ||
|
2e75a63b26 | ||
|
c328996568 | ||
|
c648f19693 | ||
|
2caaf8e8c1 | ||
|
ceb7a7303d | ||
|
c01f533342 | ||
|
ff50361e19 | ||
|
3539a452a3 | ||
|
9dfe084a02 | ||
|
66204401c9 | ||
|
0644e2897d | ||
|
5761451def | ||
|
12db3d20ee | ||
|
80a70a6649 | ||
|
02ed297529 |
@@ -64,11 +64,16 @@ CliClient/build/
|
|||||||
# AUTO-GENERATED - EXCLUDED TYPESCRIPT BUILD
|
# AUTO-GENERATED - EXCLUDED TYPESCRIPT BUILD
|
||||||
CliClient/app/LinkSelector.js
|
CliClient/app/LinkSelector.js
|
||||||
CliClient/app/services/plugins/PluginRunner.js
|
CliClient/app/services/plugins/PluginRunner.js
|
||||||
|
CliClient/tests/fsDriver.js
|
||||||
|
CliClient/tests/InMemoryCache.js
|
||||||
|
CliClient/tests/MdToHtml.js
|
||||||
CliClient/tests/models_Setting.js
|
CliClient/tests/models_Setting.js
|
||||||
CliClient/tests/services_CommandService.js
|
CliClient/tests/services_CommandService.js
|
||||||
CliClient/tests/services_InteropService.js
|
CliClient/tests/services_InteropService.js
|
||||||
|
CliClient/tests/services_keychainService.js
|
||||||
CliClient/tests/services_PluginService.js
|
CliClient/tests/services_PluginService.js
|
||||||
CliClient/tests/services_rest_Api.js
|
CliClient/tests/services_rest_Api.js
|
||||||
|
CliClient/tests/services/plugins/api/JoplinSetting.js
|
||||||
CliClient/tests/services/plugins/sandboxProxy.js
|
CliClient/tests/services/plugins/sandboxProxy.js
|
||||||
CliClient/tests/synchronizer_LockHandler.js
|
CliClient/tests/synchronizer_LockHandler.js
|
||||||
CliClient/tests/synchronizer_MigrationHandler.js
|
CliClient/tests/synchronizer_MigrationHandler.js
|
||||||
@@ -76,6 +81,7 @@ ElectronClient/app.js
|
|||||||
ElectronClient/bridge.js
|
ElectronClient/bridge.js
|
||||||
ElectronClient/commands/copyDevCommand.js
|
ElectronClient/commands/copyDevCommand.js
|
||||||
ElectronClient/commands/focusElement.js
|
ElectronClient/commands/focusElement.js
|
||||||
|
ElectronClient/commands/openProfileDirectory.js
|
||||||
ElectronClient/commands/startExternalEditing.js
|
ElectronClient/commands/startExternalEditing.js
|
||||||
ElectronClient/commands/stopExternalEditing.js
|
ElectronClient/commands/stopExternalEditing.js
|
||||||
ElectronClient/commands/toggleExternalEditing.js
|
ElectronClient/commands/toggleExternalEditing.js
|
||||||
@@ -99,7 +105,11 @@ ElectronClient/gui/MainScreen/commands/hideModalMessage.js
|
|||||||
ElectronClient/gui/MainScreen/commands/moveToFolder.js
|
ElectronClient/gui/MainScreen/commands/moveToFolder.js
|
||||||
ElectronClient/gui/MainScreen/commands/newFolder.js
|
ElectronClient/gui/MainScreen/commands/newFolder.js
|
||||||
ElectronClient/gui/MainScreen/commands/newNote.js
|
ElectronClient/gui/MainScreen/commands/newNote.js
|
||||||
|
ElectronClient/gui/MainScreen/commands/newSubFolder.js
|
||||||
ElectronClient/gui/MainScreen/commands/newTodo.js
|
ElectronClient/gui/MainScreen/commands/newTodo.js
|
||||||
|
ElectronClient/gui/MainScreen/commands/openFolder.js
|
||||||
|
ElectronClient/gui/MainScreen/commands/openNote.js
|
||||||
|
ElectronClient/gui/MainScreen/commands/openTag.js
|
||||||
ElectronClient/gui/MainScreen/commands/print.js
|
ElectronClient/gui/MainScreen/commands/print.js
|
||||||
ElectronClient/gui/MainScreen/commands/renameFolder.js
|
ElectronClient/gui/MainScreen/commands/renameFolder.js
|
||||||
ElectronClient/gui/MainScreen/commands/renameTag.js
|
ElectronClient/gui/MainScreen/commands/renameTag.js
|
||||||
@@ -112,10 +122,11 @@ ElectronClient/gui/MainScreen/commands/showNoteProperties.js
|
|||||||
ElectronClient/gui/MainScreen/commands/showShareNoteDialog.js
|
ElectronClient/gui/MainScreen/commands/showShareNoteDialog.js
|
||||||
ElectronClient/gui/MainScreen/commands/toggleEditors.js
|
ElectronClient/gui/MainScreen/commands/toggleEditors.js
|
||||||
ElectronClient/gui/MainScreen/commands/toggleNoteList.js
|
ElectronClient/gui/MainScreen/commands/toggleNoteList.js
|
||||||
ElectronClient/gui/MainScreen/commands/toggleSidebar.js
|
ElectronClient/gui/MainScreen/commands/toggleSideBar.js
|
||||||
ElectronClient/gui/MainScreen/commands/toggleVisiblePanes.js
|
ElectronClient/gui/MainScreen/commands/toggleVisiblePanes.js
|
||||||
ElectronClient/gui/MainScreen/MainScreen.js
|
ElectronClient/gui/MainScreen/MainScreen.js
|
||||||
ElectronClient/gui/MenuBar.js
|
ElectronClient/gui/MenuBar.js
|
||||||
|
ElectronClient/gui/menuCommandNames.js
|
||||||
ElectronClient/gui/MultiNoteActions.js
|
ElectronClient/gui/MultiNoteActions.js
|
||||||
ElectronClient/gui/NoteContentPropertiesDialog.js
|
ElectronClient/gui/NoteContentPropertiesDialog.js
|
||||||
ElectronClient/gui/NoteEditor/commands/editorCommandDeclarations.js
|
ElectronClient/gui/NoteEditor/commands/editorCommandDeclarations.js
|
||||||
@@ -178,6 +189,7 @@ ElectronClient/gui/SideBar/styles/index.js
|
|||||||
ElectronClient/gui/StatusScreen/StatusScreen.js
|
ElectronClient/gui/StatusScreen/StatusScreen.js
|
||||||
ElectronClient/gui/style/StyledInput.js
|
ElectronClient/gui/style/StyledInput.js
|
||||||
ElectronClient/gui/style/StyledTextInput.js
|
ElectronClient/gui/style/StyledTextInput.js
|
||||||
|
ElectronClient/gui/TagList.js
|
||||||
ElectronClient/gui/ToggleEditorsButton/styles/index.js
|
ElectronClient/gui/ToggleEditorsButton/styles/index.js
|
||||||
ElectronClient/gui/ToggleEditorsButton/ToggleEditorsButton.js
|
ElectronClient/gui/ToggleEditorsButton/ToggleEditorsButton.js
|
||||||
ElectronClient/gui/ToolbarBase.js
|
ElectronClient/gui/ToolbarBase.js
|
||||||
@@ -185,7 +197,9 @@ ElectronClient/gui/ToolbarButton/styles/index.js
|
|||||||
ElectronClient/gui/ToolbarButton/ToolbarButton.js
|
ElectronClient/gui/ToolbarButton/ToolbarButton.js
|
||||||
ElectronClient/gui/utils/NoteListUtils.js
|
ElectronClient/gui/utils/NoteListUtils.js
|
||||||
ElectronClient/InteropServiceHelper.js
|
ElectronClient/InteropServiceHelper.js
|
||||||
|
ElectronClient/plugins/GotoAnything.js
|
||||||
ElectronClient/services/bridge.js
|
ElectronClient/services/bridge.js
|
||||||
|
ElectronClient/services/commands/types.js
|
||||||
ElectronClient/services/plugins/hooks/useThemeCss.js
|
ElectronClient/services/plugins/hooks/useThemeCss.js
|
||||||
ElectronClient/services/plugins/hooks/useViewIsReady.js
|
ElectronClient/services/plugins/hooks/useViewIsReady.js
|
||||||
ElectronClient/services/plugins/PlatformImplementation.js
|
ElectronClient/services/plugins/PlatformImplementation.js
|
||||||
@@ -200,33 +214,57 @@ ReactNativeClient/lib/commands/historyBackward.js
|
|||||||
ReactNativeClient/lib/commands/historyForward.js
|
ReactNativeClient/lib/commands/historyForward.js
|
||||||
ReactNativeClient/lib/commands/synchronize.js
|
ReactNativeClient/lib/commands/synchronize.js
|
||||||
ReactNativeClient/lib/components/BackButtonDialogBox.js
|
ReactNativeClient/lib/components/BackButtonDialogBox.js
|
||||||
|
ReactNativeClient/lib/components/CameraView.js
|
||||||
|
ReactNativeClient/lib/components/NoteBodyViewer/hooks/useOnMessage.js
|
||||||
|
ReactNativeClient/lib/components/NoteBodyViewer/hooks/useOnResourceLongPress.js
|
||||||
|
ReactNativeClient/lib/components/NoteBodyViewer/hooks/useSource.js
|
||||||
|
ReactNativeClient/lib/components/NoteBodyViewer/NoteBodyViewer.js
|
||||||
|
ReactNativeClient/lib/components/screens/Note.js
|
||||||
ReactNativeClient/lib/components/screens/UpgradeSyncTargetScreen.js
|
ReactNativeClient/lib/components/screens/UpgradeSyncTargetScreen.js
|
||||||
|
ReactNativeClient/lib/components/SelectDateTimeDialog.js
|
||||||
ReactNativeClient/lib/errorUtils.js
|
ReactNativeClient/lib/errorUtils.js
|
||||||
ReactNativeClient/lib/eventManager.js
|
ReactNativeClient/lib/eventManager.js
|
||||||
|
ReactNativeClient/lib/fs-driver-node.js
|
||||||
ReactNativeClient/lib/hooks/useEffectDebugger.js
|
ReactNativeClient/lib/hooks/useEffectDebugger.js
|
||||||
ReactNativeClient/lib/hooks/useImperativeHandlerDebugger.js
|
ReactNativeClient/lib/hooks/useImperativeHandlerDebugger.js
|
||||||
ReactNativeClient/lib/hooks/usePrevious.js
|
ReactNativeClient/lib/hooks/usePrevious.js
|
||||||
ReactNativeClient/lib/hooks/usePropsDebugger.js
|
ReactNativeClient/lib/hooks/usePropsDebugger.js
|
||||||
|
ReactNativeClient/lib/InMemoryCache.js
|
||||||
|
ReactNativeClient/lib/joplin-renderer/MarkupToHtml.js
|
||||||
|
ReactNativeClient/lib/joplin-renderer/MdToHtml.js
|
||||||
ReactNativeClient/lib/joplin-renderer/MdToHtml/rules/checkbox.js
|
ReactNativeClient/lib/joplin-renderer/MdToHtml/rules/checkbox.js
|
||||||
|
ReactNativeClient/lib/joplin-renderer/MdToHtml/rules/code_inline.js
|
||||||
ReactNativeClient/lib/joplin-renderer/MdToHtml/rules/fence.js
|
ReactNativeClient/lib/joplin-renderer/MdToHtml/rules/fence.js
|
||||||
|
ReactNativeClient/lib/joplin-renderer/MdToHtml/rules/fountain.js
|
||||||
|
ReactNativeClient/lib/joplin-renderer/MdToHtml/rules/highlight_keywords.js
|
||||||
|
ReactNativeClient/lib/joplin-renderer/MdToHtml/rules/html_image.js
|
||||||
|
ReactNativeClient/lib/joplin-renderer/MdToHtml/rules/image.js
|
||||||
|
ReactNativeClient/lib/joplin-renderer/MdToHtml/rules/katex.js
|
||||||
|
ReactNativeClient/lib/joplin-renderer/MdToHtml/rules/link_open.js
|
||||||
ReactNativeClient/lib/joplin-renderer/MdToHtml/rules/mermaid.js
|
ReactNativeClient/lib/joplin-renderer/MdToHtml/rules/mermaid.js
|
||||||
ReactNativeClient/lib/joplin-renderer/MdToHtml/rules/sanitize_html.js
|
ReactNativeClient/lib/joplin-renderer/MdToHtml/rules/sanitize_html.js
|
||||||
|
ReactNativeClient/lib/joplin-renderer/noteStyle.js
|
||||||
|
ReactNativeClient/lib/joplin-renderer/pathUtils.js
|
||||||
ReactNativeClient/lib/JoplinServerApi.js
|
ReactNativeClient/lib/JoplinServerApi.js
|
||||||
ReactNativeClient/lib/locale.js
|
ReactNativeClient/lib/locale.js
|
||||||
ReactNativeClient/lib/Logger.js
|
ReactNativeClient/lib/Logger.js
|
||||||
ReactNativeClient/lib/markdownUtils.js
|
ReactNativeClient/lib/markdownUtils.js
|
||||||
|
ReactNativeClient/lib/markupLanguageUtils.js
|
||||||
ReactNativeClient/lib/models/Alarm.js
|
ReactNativeClient/lib/models/Alarm.js
|
||||||
ReactNativeClient/lib/models/Setting.js
|
ReactNativeClient/lib/models/Setting.js
|
||||||
ReactNativeClient/lib/ntpDate.js
|
ReactNativeClient/lib/ntpDate.js
|
||||||
|
ReactNativeClient/lib/path-utils.js
|
||||||
|
ReactNativeClient/lib/PoorManIntervals.js
|
||||||
ReactNativeClient/lib/reducer.js
|
ReactNativeClient/lib/reducer.js
|
||||||
ReactNativeClient/lib/services/AlarmService.js
|
ReactNativeClient/lib/services/AlarmService.js
|
||||||
ReactNativeClient/lib/services/AlarmServiceDriver.android.js
|
ReactNativeClient/lib/services/AlarmServiceDriver.android.js
|
||||||
ReactNativeClient/lib/services/AlarmServiceDriver.ios.js
|
ReactNativeClient/lib/services/AlarmServiceDriver.ios.js
|
||||||
ReactNativeClient/lib/services/AlarmServiceDriverNode.js
|
ReactNativeClient/lib/services/AlarmServiceDriverNode.js
|
||||||
ReactNativeClient/lib/services/BaseService.js
|
ReactNativeClient/lib/services/BaseService.js
|
||||||
ReactNativeClient/lib/services/BooleanExpression.js
|
ReactNativeClient/lib/services/commands/commandsToMarkdownTable.js
|
||||||
ReactNativeClient/lib/services/commands/MenuUtils.js
|
ReactNativeClient/lib/services/commands/MenuUtils.js
|
||||||
ReactNativeClient/lib/services/commands/propsHaveChanged.js
|
ReactNativeClient/lib/services/commands/propsHaveChanged.js
|
||||||
|
ReactNativeClient/lib/services/commands/stateToWhenClauseContext.js
|
||||||
ReactNativeClient/lib/services/commands/ToolbarButtonUtils.js
|
ReactNativeClient/lib/services/commands/ToolbarButtonUtils.js
|
||||||
ReactNativeClient/lib/services/CommandService.js
|
ReactNativeClient/lib/services/CommandService.js
|
||||||
ReactNativeClient/lib/services/contextkey/contextkey.js
|
ReactNativeClient/lib/services/contextkey/contextkey.js
|
||||||
@@ -263,17 +301,20 @@ ReactNativeClient/lib/services/plugins/api/JoplinSettings.js
|
|||||||
ReactNativeClient/lib/services/plugins/api/JoplinViews.js
|
ReactNativeClient/lib/services/plugins/api/JoplinViews.js
|
||||||
ReactNativeClient/lib/services/plugins/api/JoplinViewsDialogs.js
|
ReactNativeClient/lib/services/plugins/api/JoplinViewsDialogs.js
|
||||||
ReactNativeClient/lib/services/plugins/api/JoplinViewsMenuItems.js
|
ReactNativeClient/lib/services/plugins/api/JoplinViewsMenuItems.js
|
||||||
|
ReactNativeClient/lib/services/plugins/api/JoplinViewsMenus.js
|
||||||
ReactNativeClient/lib/services/plugins/api/JoplinViewsPanels.js
|
ReactNativeClient/lib/services/plugins/api/JoplinViewsPanels.js
|
||||||
ReactNativeClient/lib/services/plugins/api/JoplinViewsToolbarButtons.js
|
ReactNativeClient/lib/services/plugins/api/JoplinViewsToolbarButtons.js
|
||||||
ReactNativeClient/lib/services/plugins/api/JoplinWorkspace.js
|
ReactNativeClient/lib/services/plugins/api/JoplinWorkspace.js
|
||||||
ReactNativeClient/lib/services/plugins/api/types.js
|
ReactNativeClient/lib/services/plugins/api/types.js
|
||||||
ReactNativeClient/lib/services/plugins/BasePluginRunner.js
|
ReactNativeClient/lib/services/plugins/BasePluginRunner.js
|
||||||
|
ReactNativeClient/lib/services/plugins/MenuController.js
|
||||||
ReactNativeClient/lib/services/plugins/MenuItemController.js
|
ReactNativeClient/lib/services/plugins/MenuItemController.js
|
||||||
ReactNativeClient/lib/services/plugins/Plugin.js
|
ReactNativeClient/lib/services/plugins/Plugin.js
|
||||||
ReactNativeClient/lib/services/plugins/PluginService.js
|
ReactNativeClient/lib/services/plugins/PluginService.js
|
||||||
ReactNativeClient/lib/services/plugins/reducer.js
|
ReactNativeClient/lib/services/plugins/reducer.js
|
||||||
ReactNativeClient/lib/services/plugins/sandboxProxy.js
|
ReactNativeClient/lib/services/plugins/sandboxProxy.js
|
||||||
ReactNativeClient/lib/services/plugins/ToolbarButtonController.js
|
ReactNativeClient/lib/services/plugins/ToolbarButtonController.js
|
||||||
|
ReactNativeClient/lib/services/plugins/utils/contentScriptsToRendererRules.js
|
||||||
ReactNativeClient/lib/services/plugins/utils/createViewHandle.js
|
ReactNativeClient/lib/services/plugins/utils/createViewHandle.js
|
||||||
ReactNativeClient/lib/services/plugins/utils/executeSandboxCall.js
|
ReactNativeClient/lib/services/plugins/utils/executeSandboxCall.js
|
||||||
ReactNativeClient/lib/services/plugins/utils/manifestFromObject.js
|
ReactNativeClient/lib/services/plugins/utils/manifestFromObject.js
|
||||||
@@ -296,6 +337,7 @@ ReactNativeClient/lib/services/synchronizer/migrations/1.js
|
|||||||
ReactNativeClient/lib/services/synchronizer/migrations/2.js
|
ReactNativeClient/lib/services/synchronizer/migrations/2.js
|
||||||
ReactNativeClient/lib/services/synchronizer/utils/types.js
|
ReactNativeClient/lib/services/synchronizer/utils/types.js
|
||||||
ReactNativeClient/lib/services/UndoRedoService.js
|
ReactNativeClient/lib/services/UndoRedoService.js
|
||||||
|
ReactNativeClient/lib/services/WhenClause.js
|
||||||
ReactNativeClient/lib/ShareExtension.js
|
ReactNativeClient/lib/ShareExtension.js
|
||||||
ReactNativeClient/lib/shareHandler.js
|
ReactNativeClient/lib/shareHandler.js
|
||||||
ReactNativeClient/lib/shim.js
|
ReactNativeClient/lib/shim.js
|
||||||
|
46
.gitignore
vendored
46
.gitignore
vendored
@@ -58,11 +58,16 @@ plugin_types/
|
|||||||
# AUTO-GENERATED - EXCLUDED TYPESCRIPT BUILD
|
# AUTO-GENERATED - EXCLUDED TYPESCRIPT BUILD
|
||||||
CliClient/app/LinkSelector.js
|
CliClient/app/LinkSelector.js
|
||||||
CliClient/app/services/plugins/PluginRunner.js
|
CliClient/app/services/plugins/PluginRunner.js
|
||||||
|
CliClient/tests/fsDriver.js
|
||||||
|
CliClient/tests/InMemoryCache.js
|
||||||
|
CliClient/tests/MdToHtml.js
|
||||||
CliClient/tests/models_Setting.js
|
CliClient/tests/models_Setting.js
|
||||||
CliClient/tests/services_CommandService.js
|
CliClient/tests/services_CommandService.js
|
||||||
CliClient/tests/services_InteropService.js
|
CliClient/tests/services_InteropService.js
|
||||||
|
CliClient/tests/services_keychainService.js
|
||||||
CliClient/tests/services_PluginService.js
|
CliClient/tests/services_PluginService.js
|
||||||
CliClient/tests/services_rest_Api.js
|
CliClient/tests/services_rest_Api.js
|
||||||
|
CliClient/tests/services/plugins/api/JoplinSetting.js
|
||||||
CliClient/tests/services/plugins/sandboxProxy.js
|
CliClient/tests/services/plugins/sandboxProxy.js
|
||||||
CliClient/tests/synchronizer_LockHandler.js
|
CliClient/tests/synchronizer_LockHandler.js
|
||||||
CliClient/tests/synchronizer_MigrationHandler.js
|
CliClient/tests/synchronizer_MigrationHandler.js
|
||||||
@@ -70,6 +75,7 @@ ElectronClient/app.js
|
|||||||
ElectronClient/bridge.js
|
ElectronClient/bridge.js
|
||||||
ElectronClient/commands/copyDevCommand.js
|
ElectronClient/commands/copyDevCommand.js
|
||||||
ElectronClient/commands/focusElement.js
|
ElectronClient/commands/focusElement.js
|
||||||
|
ElectronClient/commands/openProfileDirectory.js
|
||||||
ElectronClient/commands/startExternalEditing.js
|
ElectronClient/commands/startExternalEditing.js
|
||||||
ElectronClient/commands/stopExternalEditing.js
|
ElectronClient/commands/stopExternalEditing.js
|
||||||
ElectronClient/commands/toggleExternalEditing.js
|
ElectronClient/commands/toggleExternalEditing.js
|
||||||
@@ -93,7 +99,11 @@ ElectronClient/gui/MainScreen/commands/hideModalMessage.js
|
|||||||
ElectronClient/gui/MainScreen/commands/moveToFolder.js
|
ElectronClient/gui/MainScreen/commands/moveToFolder.js
|
||||||
ElectronClient/gui/MainScreen/commands/newFolder.js
|
ElectronClient/gui/MainScreen/commands/newFolder.js
|
||||||
ElectronClient/gui/MainScreen/commands/newNote.js
|
ElectronClient/gui/MainScreen/commands/newNote.js
|
||||||
|
ElectronClient/gui/MainScreen/commands/newSubFolder.js
|
||||||
ElectronClient/gui/MainScreen/commands/newTodo.js
|
ElectronClient/gui/MainScreen/commands/newTodo.js
|
||||||
|
ElectronClient/gui/MainScreen/commands/openFolder.js
|
||||||
|
ElectronClient/gui/MainScreen/commands/openNote.js
|
||||||
|
ElectronClient/gui/MainScreen/commands/openTag.js
|
||||||
ElectronClient/gui/MainScreen/commands/print.js
|
ElectronClient/gui/MainScreen/commands/print.js
|
||||||
ElectronClient/gui/MainScreen/commands/renameFolder.js
|
ElectronClient/gui/MainScreen/commands/renameFolder.js
|
||||||
ElectronClient/gui/MainScreen/commands/renameTag.js
|
ElectronClient/gui/MainScreen/commands/renameTag.js
|
||||||
@@ -106,10 +116,11 @@ ElectronClient/gui/MainScreen/commands/showNoteProperties.js
|
|||||||
ElectronClient/gui/MainScreen/commands/showShareNoteDialog.js
|
ElectronClient/gui/MainScreen/commands/showShareNoteDialog.js
|
||||||
ElectronClient/gui/MainScreen/commands/toggleEditors.js
|
ElectronClient/gui/MainScreen/commands/toggleEditors.js
|
||||||
ElectronClient/gui/MainScreen/commands/toggleNoteList.js
|
ElectronClient/gui/MainScreen/commands/toggleNoteList.js
|
||||||
ElectronClient/gui/MainScreen/commands/toggleSidebar.js
|
ElectronClient/gui/MainScreen/commands/toggleSideBar.js
|
||||||
ElectronClient/gui/MainScreen/commands/toggleVisiblePanes.js
|
ElectronClient/gui/MainScreen/commands/toggleVisiblePanes.js
|
||||||
ElectronClient/gui/MainScreen/MainScreen.js
|
ElectronClient/gui/MainScreen/MainScreen.js
|
||||||
ElectronClient/gui/MenuBar.js
|
ElectronClient/gui/MenuBar.js
|
||||||
|
ElectronClient/gui/menuCommandNames.js
|
||||||
ElectronClient/gui/MultiNoteActions.js
|
ElectronClient/gui/MultiNoteActions.js
|
||||||
ElectronClient/gui/NoteContentPropertiesDialog.js
|
ElectronClient/gui/NoteContentPropertiesDialog.js
|
||||||
ElectronClient/gui/NoteEditor/commands/editorCommandDeclarations.js
|
ElectronClient/gui/NoteEditor/commands/editorCommandDeclarations.js
|
||||||
@@ -172,6 +183,7 @@ ElectronClient/gui/SideBar/styles/index.js
|
|||||||
ElectronClient/gui/StatusScreen/StatusScreen.js
|
ElectronClient/gui/StatusScreen/StatusScreen.js
|
||||||
ElectronClient/gui/style/StyledInput.js
|
ElectronClient/gui/style/StyledInput.js
|
||||||
ElectronClient/gui/style/StyledTextInput.js
|
ElectronClient/gui/style/StyledTextInput.js
|
||||||
|
ElectronClient/gui/TagList.js
|
||||||
ElectronClient/gui/ToggleEditorsButton/styles/index.js
|
ElectronClient/gui/ToggleEditorsButton/styles/index.js
|
||||||
ElectronClient/gui/ToggleEditorsButton/ToggleEditorsButton.js
|
ElectronClient/gui/ToggleEditorsButton/ToggleEditorsButton.js
|
||||||
ElectronClient/gui/ToolbarBase.js
|
ElectronClient/gui/ToolbarBase.js
|
||||||
@@ -179,7 +191,9 @@ ElectronClient/gui/ToolbarButton/styles/index.js
|
|||||||
ElectronClient/gui/ToolbarButton/ToolbarButton.js
|
ElectronClient/gui/ToolbarButton/ToolbarButton.js
|
||||||
ElectronClient/gui/utils/NoteListUtils.js
|
ElectronClient/gui/utils/NoteListUtils.js
|
||||||
ElectronClient/InteropServiceHelper.js
|
ElectronClient/InteropServiceHelper.js
|
||||||
|
ElectronClient/plugins/GotoAnything.js
|
||||||
ElectronClient/services/bridge.js
|
ElectronClient/services/bridge.js
|
||||||
|
ElectronClient/services/commands/types.js
|
||||||
ElectronClient/services/plugins/hooks/useThemeCss.js
|
ElectronClient/services/plugins/hooks/useThemeCss.js
|
||||||
ElectronClient/services/plugins/hooks/useViewIsReady.js
|
ElectronClient/services/plugins/hooks/useViewIsReady.js
|
||||||
ElectronClient/services/plugins/PlatformImplementation.js
|
ElectronClient/services/plugins/PlatformImplementation.js
|
||||||
@@ -194,33 +208,57 @@ ReactNativeClient/lib/commands/historyBackward.js
|
|||||||
ReactNativeClient/lib/commands/historyForward.js
|
ReactNativeClient/lib/commands/historyForward.js
|
||||||
ReactNativeClient/lib/commands/synchronize.js
|
ReactNativeClient/lib/commands/synchronize.js
|
||||||
ReactNativeClient/lib/components/BackButtonDialogBox.js
|
ReactNativeClient/lib/components/BackButtonDialogBox.js
|
||||||
|
ReactNativeClient/lib/components/CameraView.js
|
||||||
|
ReactNativeClient/lib/components/NoteBodyViewer/hooks/useOnMessage.js
|
||||||
|
ReactNativeClient/lib/components/NoteBodyViewer/hooks/useOnResourceLongPress.js
|
||||||
|
ReactNativeClient/lib/components/NoteBodyViewer/hooks/useSource.js
|
||||||
|
ReactNativeClient/lib/components/NoteBodyViewer/NoteBodyViewer.js
|
||||||
|
ReactNativeClient/lib/components/screens/Note.js
|
||||||
ReactNativeClient/lib/components/screens/UpgradeSyncTargetScreen.js
|
ReactNativeClient/lib/components/screens/UpgradeSyncTargetScreen.js
|
||||||
|
ReactNativeClient/lib/components/SelectDateTimeDialog.js
|
||||||
ReactNativeClient/lib/errorUtils.js
|
ReactNativeClient/lib/errorUtils.js
|
||||||
ReactNativeClient/lib/eventManager.js
|
ReactNativeClient/lib/eventManager.js
|
||||||
|
ReactNativeClient/lib/fs-driver-node.js
|
||||||
ReactNativeClient/lib/hooks/useEffectDebugger.js
|
ReactNativeClient/lib/hooks/useEffectDebugger.js
|
||||||
ReactNativeClient/lib/hooks/useImperativeHandlerDebugger.js
|
ReactNativeClient/lib/hooks/useImperativeHandlerDebugger.js
|
||||||
ReactNativeClient/lib/hooks/usePrevious.js
|
ReactNativeClient/lib/hooks/usePrevious.js
|
||||||
ReactNativeClient/lib/hooks/usePropsDebugger.js
|
ReactNativeClient/lib/hooks/usePropsDebugger.js
|
||||||
|
ReactNativeClient/lib/InMemoryCache.js
|
||||||
|
ReactNativeClient/lib/joplin-renderer/MarkupToHtml.js
|
||||||
|
ReactNativeClient/lib/joplin-renderer/MdToHtml.js
|
||||||
ReactNativeClient/lib/joplin-renderer/MdToHtml/rules/checkbox.js
|
ReactNativeClient/lib/joplin-renderer/MdToHtml/rules/checkbox.js
|
||||||
|
ReactNativeClient/lib/joplin-renderer/MdToHtml/rules/code_inline.js
|
||||||
ReactNativeClient/lib/joplin-renderer/MdToHtml/rules/fence.js
|
ReactNativeClient/lib/joplin-renderer/MdToHtml/rules/fence.js
|
||||||
|
ReactNativeClient/lib/joplin-renderer/MdToHtml/rules/fountain.js
|
||||||
|
ReactNativeClient/lib/joplin-renderer/MdToHtml/rules/highlight_keywords.js
|
||||||
|
ReactNativeClient/lib/joplin-renderer/MdToHtml/rules/html_image.js
|
||||||
|
ReactNativeClient/lib/joplin-renderer/MdToHtml/rules/image.js
|
||||||
|
ReactNativeClient/lib/joplin-renderer/MdToHtml/rules/katex.js
|
||||||
|
ReactNativeClient/lib/joplin-renderer/MdToHtml/rules/link_open.js
|
||||||
ReactNativeClient/lib/joplin-renderer/MdToHtml/rules/mermaid.js
|
ReactNativeClient/lib/joplin-renderer/MdToHtml/rules/mermaid.js
|
||||||
ReactNativeClient/lib/joplin-renderer/MdToHtml/rules/sanitize_html.js
|
ReactNativeClient/lib/joplin-renderer/MdToHtml/rules/sanitize_html.js
|
||||||
|
ReactNativeClient/lib/joplin-renderer/noteStyle.js
|
||||||
|
ReactNativeClient/lib/joplin-renderer/pathUtils.js
|
||||||
ReactNativeClient/lib/JoplinServerApi.js
|
ReactNativeClient/lib/JoplinServerApi.js
|
||||||
ReactNativeClient/lib/locale.js
|
ReactNativeClient/lib/locale.js
|
||||||
ReactNativeClient/lib/Logger.js
|
ReactNativeClient/lib/Logger.js
|
||||||
ReactNativeClient/lib/markdownUtils.js
|
ReactNativeClient/lib/markdownUtils.js
|
||||||
|
ReactNativeClient/lib/markupLanguageUtils.js
|
||||||
ReactNativeClient/lib/models/Alarm.js
|
ReactNativeClient/lib/models/Alarm.js
|
||||||
ReactNativeClient/lib/models/Setting.js
|
ReactNativeClient/lib/models/Setting.js
|
||||||
ReactNativeClient/lib/ntpDate.js
|
ReactNativeClient/lib/ntpDate.js
|
||||||
|
ReactNativeClient/lib/path-utils.js
|
||||||
|
ReactNativeClient/lib/PoorManIntervals.js
|
||||||
ReactNativeClient/lib/reducer.js
|
ReactNativeClient/lib/reducer.js
|
||||||
ReactNativeClient/lib/services/AlarmService.js
|
ReactNativeClient/lib/services/AlarmService.js
|
||||||
ReactNativeClient/lib/services/AlarmServiceDriver.android.js
|
ReactNativeClient/lib/services/AlarmServiceDriver.android.js
|
||||||
ReactNativeClient/lib/services/AlarmServiceDriver.ios.js
|
ReactNativeClient/lib/services/AlarmServiceDriver.ios.js
|
||||||
ReactNativeClient/lib/services/AlarmServiceDriverNode.js
|
ReactNativeClient/lib/services/AlarmServiceDriverNode.js
|
||||||
ReactNativeClient/lib/services/BaseService.js
|
ReactNativeClient/lib/services/BaseService.js
|
||||||
ReactNativeClient/lib/services/BooleanExpression.js
|
ReactNativeClient/lib/services/commands/commandsToMarkdownTable.js
|
||||||
ReactNativeClient/lib/services/commands/MenuUtils.js
|
ReactNativeClient/lib/services/commands/MenuUtils.js
|
||||||
ReactNativeClient/lib/services/commands/propsHaveChanged.js
|
ReactNativeClient/lib/services/commands/propsHaveChanged.js
|
||||||
|
ReactNativeClient/lib/services/commands/stateToWhenClauseContext.js
|
||||||
ReactNativeClient/lib/services/commands/ToolbarButtonUtils.js
|
ReactNativeClient/lib/services/commands/ToolbarButtonUtils.js
|
||||||
ReactNativeClient/lib/services/CommandService.js
|
ReactNativeClient/lib/services/CommandService.js
|
||||||
ReactNativeClient/lib/services/contextkey/contextkey.js
|
ReactNativeClient/lib/services/contextkey/contextkey.js
|
||||||
@@ -257,17 +295,20 @@ ReactNativeClient/lib/services/plugins/api/JoplinSettings.js
|
|||||||
ReactNativeClient/lib/services/plugins/api/JoplinViews.js
|
ReactNativeClient/lib/services/plugins/api/JoplinViews.js
|
||||||
ReactNativeClient/lib/services/plugins/api/JoplinViewsDialogs.js
|
ReactNativeClient/lib/services/plugins/api/JoplinViewsDialogs.js
|
||||||
ReactNativeClient/lib/services/plugins/api/JoplinViewsMenuItems.js
|
ReactNativeClient/lib/services/plugins/api/JoplinViewsMenuItems.js
|
||||||
|
ReactNativeClient/lib/services/plugins/api/JoplinViewsMenus.js
|
||||||
ReactNativeClient/lib/services/plugins/api/JoplinViewsPanels.js
|
ReactNativeClient/lib/services/plugins/api/JoplinViewsPanels.js
|
||||||
ReactNativeClient/lib/services/plugins/api/JoplinViewsToolbarButtons.js
|
ReactNativeClient/lib/services/plugins/api/JoplinViewsToolbarButtons.js
|
||||||
ReactNativeClient/lib/services/plugins/api/JoplinWorkspace.js
|
ReactNativeClient/lib/services/plugins/api/JoplinWorkspace.js
|
||||||
ReactNativeClient/lib/services/plugins/api/types.js
|
ReactNativeClient/lib/services/plugins/api/types.js
|
||||||
ReactNativeClient/lib/services/plugins/BasePluginRunner.js
|
ReactNativeClient/lib/services/plugins/BasePluginRunner.js
|
||||||
|
ReactNativeClient/lib/services/plugins/MenuController.js
|
||||||
ReactNativeClient/lib/services/plugins/MenuItemController.js
|
ReactNativeClient/lib/services/plugins/MenuItemController.js
|
||||||
ReactNativeClient/lib/services/plugins/Plugin.js
|
ReactNativeClient/lib/services/plugins/Plugin.js
|
||||||
ReactNativeClient/lib/services/plugins/PluginService.js
|
ReactNativeClient/lib/services/plugins/PluginService.js
|
||||||
ReactNativeClient/lib/services/plugins/reducer.js
|
ReactNativeClient/lib/services/plugins/reducer.js
|
||||||
ReactNativeClient/lib/services/plugins/sandboxProxy.js
|
ReactNativeClient/lib/services/plugins/sandboxProxy.js
|
||||||
ReactNativeClient/lib/services/plugins/ToolbarButtonController.js
|
ReactNativeClient/lib/services/plugins/ToolbarButtonController.js
|
||||||
|
ReactNativeClient/lib/services/plugins/utils/contentScriptsToRendererRules.js
|
||||||
ReactNativeClient/lib/services/plugins/utils/createViewHandle.js
|
ReactNativeClient/lib/services/plugins/utils/createViewHandle.js
|
||||||
ReactNativeClient/lib/services/plugins/utils/executeSandboxCall.js
|
ReactNativeClient/lib/services/plugins/utils/executeSandboxCall.js
|
||||||
ReactNativeClient/lib/services/plugins/utils/manifestFromObject.js
|
ReactNativeClient/lib/services/plugins/utils/manifestFromObject.js
|
||||||
@@ -290,6 +331,7 @@ ReactNativeClient/lib/services/synchronizer/migrations/1.js
|
|||||||
ReactNativeClient/lib/services/synchronizer/migrations/2.js
|
ReactNativeClient/lib/services/synchronizer/migrations/2.js
|
||||||
ReactNativeClient/lib/services/synchronizer/utils/types.js
|
ReactNativeClient/lib/services/synchronizer/utils/types.js
|
||||||
ReactNativeClient/lib/services/UndoRedoService.js
|
ReactNativeClient/lib/services/UndoRedoService.js
|
||||||
|
ReactNativeClient/lib/services/WhenClause.js
|
||||||
ReactNativeClient/lib/ShareExtension.js
|
ReactNativeClient/lib/ShareExtension.js
|
||||||
ReactNativeClient/lib/shareHandler.js
|
ReactNativeClient/lib/shareHandler.js
|
||||||
ReactNativeClient/lib/shim.js
|
ReactNativeClient/lib/shim.js
|
||||||
|
302
.ignore
Normal file
302
.ignore
Normal file
@@ -0,0 +1,302 @@
|
|||||||
|
# This is used by VSCode to ignore patterns during search.
|
||||||
|
# Before they were in joplin.code-workspace, under the `files.exclude` key
|
||||||
|
# but it eventually reached the limit with ENAMETOOLONG error.
|
||||||
|
#
|
||||||
|
# https://github.com/microsoft/vscode/issues/94718
|
||||||
|
|
||||||
|
# AUTO-GENERATED - EXCLUDED TYPESCRIPT BUILD
|
||||||
|
CliClient/app/LinkSelector.js
|
||||||
|
CliClient/app/services/plugins/PluginRunner.js
|
||||||
|
CliClient/tests/fsDriver.js
|
||||||
|
CliClient/tests/InMemoryCache.js
|
||||||
|
CliClient/tests/MdToHtml.js
|
||||||
|
CliClient/tests/models_Setting.js
|
||||||
|
CliClient/tests/services_CommandService.js
|
||||||
|
CliClient/tests/services_InteropService.js
|
||||||
|
CliClient/tests/services_keychainService.js
|
||||||
|
CliClient/tests/services_PluginService.js
|
||||||
|
CliClient/tests/services_rest_Api.js
|
||||||
|
CliClient/tests/services/plugins/api/JoplinSetting.js
|
||||||
|
CliClient/tests/services/plugins/sandboxProxy.js
|
||||||
|
CliClient/tests/synchronizer_LockHandler.js
|
||||||
|
CliClient/tests/synchronizer_MigrationHandler.js
|
||||||
|
ElectronClient/app.js
|
||||||
|
ElectronClient/bridge.js
|
||||||
|
ElectronClient/commands/copyDevCommand.js
|
||||||
|
ElectronClient/commands/focusElement.js
|
||||||
|
ElectronClient/commands/openProfileDirectory.js
|
||||||
|
ElectronClient/commands/startExternalEditing.js
|
||||||
|
ElectronClient/commands/stopExternalEditing.js
|
||||||
|
ElectronClient/commands/toggleExternalEditing.js
|
||||||
|
ElectronClient/ElectronAppWrapper.js
|
||||||
|
ElectronClient/global.d.js
|
||||||
|
ElectronClient/gui/Button/Button.js
|
||||||
|
ElectronClient/gui/ConfigScreen/ButtonBar.js
|
||||||
|
ElectronClient/gui/ConfigScreen/ConfigScreen.js
|
||||||
|
ElectronClient/gui/ConfigScreen/SideBar.js
|
||||||
|
ElectronClient/gui/DropboxLoginScreen.js
|
||||||
|
ElectronClient/gui/ErrorBoundary.js
|
||||||
|
ElectronClient/gui/KeymapConfig/KeymapConfigScreen.js
|
||||||
|
ElectronClient/gui/KeymapConfig/ShortcutRecorder.js
|
||||||
|
ElectronClient/gui/KeymapConfig/styles/index.js
|
||||||
|
ElectronClient/gui/KeymapConfig/utils/getLabel.js
|
||||||
|
ElectronClient/gui/KeymapConfig/utils/useCommandStatus.js
|
||||||
|
ElectronClient/gui/KeymapConfig/utils/useKeymap.js
|
||||||
|
ElectronClient/gui/MainScreen/commands/editAlarm.js
|
||||||
|
ElectronClient/gui/MainScreen/commands/exportPdf.js
|
||||||
|
ElectronClient/gui/MainScreen/commands/hideModalMessage.js
|
||||||
|
ElectronClient/gui/MainScreen/commands/moveToFolder.js
|
||||||
|
ElectronClient/gui/MainScreen/commands/newFolder.js
|
||||||
|
ElectronClient/gui/MainScreen/commands/newNote.js
|
||||||
|
ElectronClient/gui/MainScreen/commands/newSubFolder.js
|
||||||
|
ElectronClient/gui/MainScreen/commands/newTodo.js
|
||||||
|
ElectronClient/gui/MainScreen/commands/openFolder.js
|
||||||
|
ElectronClient/gui/MainScreen/commands/openNote.js
|
||||||
|
ElectronClient/gui/MainScreen/commands/openTag.js
|
||||||
|
ElectronClient/gui/MainScreen/commands/print.js
|
||||||
|
ElectronClient/gui/MainScreen/commands/renameFolder.js
|
||||||
|
ElectronClient/gui/MainScreen/commands/renameTag.js
|
||||||
|
ElectronClient/gui/MainScreen/commands/search.js
|
||||||
|
ElectronClient/gui/MainScreen/commands/selectTemplate.js
|
||||||
|
ElectronClient/gui/MainScreen/commands/setTags.js
|
||||||
|
ElectronClient/gui/MainScreen/commands/showModalMessage.js
|
||||||
|
ElectronClient/gui/MainScreen/commands/showNoteContentProperties.js
|
||||||
|
ElectronClient/gui/MainScreen/commands/showNoteProperties.js
|
||||||
|
ElectronClient/gui/MainScreen/commands/showShareNoteDialog.js
|
||||||
|
ElectronClient/gui/MainScreen/commands/toggleEditors.js
|
||||||
|
ElectronClient/gui/MainScreen/commands/toggleNoteList.js
|
||||||
|
ElectronClient/gui/MainScreen/commands/toggleSideBar.js
|
||||||
|
ElectronClient/gui/MainScreen/commands/toggleVisiblePanes.js
|
||||||
|
ElectronClient/gui/MainScreen/MainScreen.js
|
||||||
|
ElectronClient/gui/MenuBar.js
|
||||||
|
ElectronClient/gui/menuCommandNames.js
|
||||||
|
ElectronClient/gui/MultiNoteActions.js
|
||||||
|
ElectronClient/gui/NoteContentPropertiesDialog.js
|
||||||
|
ElectronClient/gui/NoteEditor/commands/editorCommandDeclarations.js
|
||||||
|
ElectronClient/gui/NoteEditor/commands/focusElementNoteBody.js
|
||||||
|
ElectronClient/gui/NoteEditor/commands/focusElementNoteTitle.js
|
||||||
|
ElectronClient/gui/NoteEditor/commands/showLocalSearch.js
|
||||||
|
ElectronClient/gui/NoteEditor/commands/showRevisions.js
|
||||||
|
ElectronClient/gui/NoteEditor/NoteBody/CodeMirror/CodeMirror.js
|
||||||
|
ElectronClient/gui/NoteEditor/NoteBody/CodeMirror/Editor.js
|
||||||
|
ElectronClient/gui/NoteEditor/NoteBody/CodeMirror/styles/index.js
|
||||||
|
ElectronClient/gui/NoteEditor/NoteBody/CodeMirror/Toolbar.js
|
||||||
|
ElectronClient/gui/NoteEditor/NoteBody/CodeMirror/utils/index.js
|
||||||
|
ElectronClient/gui/NoteEditor/NoteBody/CodeMirror/utils/types.js
|
||||||
|
ElectronClient/gui/NoteEditor/NoteBody/CodeMirror/utils/useCursorUtils.js
|
||||||
|
ElectronClient/gui/NoteEditor/NoteBody/CodeMirror/utils/useEditorSearch.js
|
||||||
|
ElectronClient/gui/NoteEditor/NoteBody/CodeMirror/utils/useJoplinMode.js
|
||||||
|
ElectronClient/gui/NoteEditor/NoteBody/CodeMirror/utils/useKeymap.js
|
||||||
|
ElectronClient/gui/NoteEditor/NoteBody/CodeMirror/utils/useLineSorting.js
|
||||||
|
ElectronClient/gui/NoteEditor/NoteBody/CodeMirror/utils/useListIdent.js
|
||||||
|
ElectronClient/gui/NoteEditor/NoteBody/CodeMirror/utils/useScrollUtils.js
|
||||||
|
ElectronClient/gui/NoteEditor/NoteBody/TinyMCE/styles/index.js
|
||||||
|
ElectronClient/gui/NoteEditor/NoteBody/TinyMCE/TinyMCE.js
|
||||||
|
ElectronClient/gui/NoteEditor/NoteBody/TinyMCE/utils/useScroll.js
|
||||||
|
ElectronClient/gui/NoteEditor/NoteEditor.js
|
||||||
|
ElectronClient/gui/NoteEditor/styles/index.js
|
||||||
|
ElectronClient/gui/NoteEditor/utils/contextMenu.js
|
||||||
|
ElectronClient/gui/NoteEditor/utils/index.js
|
||||||
|
ElectronClient/gui/NoteEditor/utils/resourceHandling.js
|
||||||
|
ElectronClient/gui/NoteEditor/utils/types.js
|
||||||
|
ElectronClient/gui/NoteEditor/utils/useDropHandler.js
|
||||||
|
ElectronClient/gui/NoteEditor/utils/useFolder.js
|
||||||
|
ElectronClient/gui/NoteEditor/utils/useFormNote.js
|
||||||
|
ElectronClient/gui/NoteEditor/utils/useMarkupToHtml.js
|
||||||
|
ElectronClient/gui/NoteEditor/utils/useMessageHandler.js
|
||||||
|
ElectronClient/gui/NoteEditor/utils/useNoteSearchBar.js
|
||||||
|
ElectronClient/gui/NoteEditor/utils/usePluginServiceRegistration.js
|
||||||
|
ElectronClient/gui/NoteEditor/utils/useSearchMarkers.js
|
||||||
|
ElectronClient/gui/NoteEditor/utils/useWindowCommandHandler.js
|
||||||
|
ElectronClient/gui/NoteList/commands/focusElementNoteList.js
|
||||||
|
ElectronClient/gui/NoteList/NoteList.js
|
||||||
|
ElectronClient/gui/NoteListControls/commands/focusSearch.js
|
||||||
|
ElectronClient/gui/NoteListControls/NoteListControls.js
|
||||||
|
ElectronClient/gui/NoteListItem.js
|
||||||
|
ElectronClient/gui/NoteTextViewer.js
|
||||||
|
ElectronClient/gui/NoteToolbar/NoteToolbar.js
|
||||||
|
ElectronClient/gui/OneDriveLoginScreen.js
|
||||||
|
ElectronClient/gui/ResizableLayout/hooks/useLayoutItemSizes.js
|
||||||
|
ElectronClient/gui/ResizableLayout/hooks/useWindowResizeEvent.js
|
||||||
|
ElectronClient/gui/ResizableLayout/ResizableLayout.js
|
||||||
|
ElectronClient/gui/ResourceScreen.js
|
||||||
|
ElectronClient/gui/Root_UpgradeSyncTarget.js
|
||||||
|
ElectronClient/gui/Root.js
|
||||||
|
ElectronClient/gui/SearchBar/hooks/useSearch.js
|
||||||
|
ElectronClient/gui/SearchBar/SearchBar.js
|
||||||
|
ElectronClient/gui/SearchBar/styles/index.js
|
||||||
|
ElectronClient/gui/ShareNoteDialog.js
|
||||||
|
ElectronClient/gui/SideBar/commands/focusElementSideBar.js
|
||||||
|
ElectronClient/gui/SideBar/SideBar.js
|
||||||
|
ElectronClient/gui/SideBar/styles/index.js
|
||||||
|
ElectronClient/gui/StatusScreen/StatusScreen.js
|
||||||
|
ElectronClient/gui/style/StyledInput.js
|
||||||
|
ElectronClient/gui/style/StyledTextInput.js
|
||||||
|
ElectronClient/gui/TagList.js
|
||||||
|
ElectronClient/gui/ToggleEditorsButton/styles/index.js
|
||||||
|
ElectronClient/gui/ToggleEditorsButton/ToggleEditorsButton.js
|
||||||
|
ElectronClient/gui/ToolbarBase.js
|
||||||
|
ElectronClient/gui/ToolbarButton/styles/index.js
|
||||||
|
ElectronClient/gui/ToolbarButton/ToolbarButton.js
|
||||||
|
ElectronClient/gui/utils/NoteListUtils.js
|
||||||
|
ElectronClient/InteropServiceHelper.js
|
||||||
|
ElectronClient/plugins/GotoAnything.js
|
||||||
|
ElectronClient/services/bridge.js
|
||||||
|
ElectronClient/services/commands/types.js
|
||||||
|
ElectronClient/services/plugins/hooks/useThemeCss.js
|
||||||
|
ElectronClient/services/plugins/hooks/useViewIsReady.js
|
||||||
|
ElectronClient/services/plugins/PlatformImplementation.js
|
||||||
|
ElectronClient/services/plugins/PluginRunner.js
|
||||||
|
ElectronClient/services/plugins/UserWebview.js
|
||||||
|
ElectronClient/services/plugins/UserWebviewDialog.js
|
||||||
|
ElectronClient/services/plugins/UserWebviewDialogButtonBar.js
|
||||||
|
ReactNativeClient/lib/AsyncActionQueue.js
|
||||||
|
ReactNativeClient/lib/BaseApplication.js
|
||||||
|
ReactNativeClient/lib/checkPermissions.js
|
||||||
|
ReactNativeClient/lib/commands/historyBackward.js
|
||||||
|
ReactNativeClient/lib/commands/historyForward.js
|
||||||
|
ReactNativeClient/lib/commands/synchronize.js
|
||||||
|
ReactNativeClient/lib/components/BackButtonDialogBox.js
|
||||||
|
ReactNativeClient/lib/components/CameraView.js
|
||||||
|
ReactNativeClient/lib/components/NoteBodyViewer/hooks/useOnMessage.js
|
||||||
|
ReactNativeClient/lib/components/NoteBodyViewer/hooks/useOnResourceLongPress.js
|
||||||
|
ReactNativeClient/lib/components/NoteBodyViewer/hooks/useSource.js
|
||||||
|
ReactNativeClient/lib/components/NoteBodyViewer/NoteBodyViewer.js
|
||||||
|
ReactNativeClient/lib/components/screens/Note.js
|
||||||
|
ReactNativeClient/lib/components/screens/UpgradeSyncTargetScreen.js
|
||||||
|
ReactNativeClient/lib/components/SelectDateTimeDialog.js
|
||||||
|
ReactNativeClient/lib/errorUtils.js
|
||||||
|
ReactNativeClient/lib/eventManager.js
|
||||||
|
ReactNativeClient/lib/fs-driver-node.js
|
||||||
|
ReactNativeClient/lib/hooks/useEffectDebugger.js
|
||||||
|
ReactNativeClient/lib/hooks/useImperativeHandlerDebugger.js
|
||||||
|
ReactNativeClient/lib/hooks/usePrevious.js
|
||||||
|
ReactNativeClient/lib/hooks/usePropsDebugger.js
|
||||||
|
ReactNativeClient/lib/InMemoryCache.js
|
||||||
|
ReactNativeClient/lib/joplin-renderer/MarkupToHtml.js
|
||||||
|
ReactNativeClient/lib/joplin-renderer/MdToHtml.js
|
||||||
|
ReactNativeClient/lib/joplin-renderer/MdToHtml/rules/checkbox.js
|
||||||
|
ReactNativeClient/lib/joplin-renderer/MdToHtml/rules/code_inline.js
|
||||||
|
ReactNativeClient/lib/joplin-renderer/MdToHtml/rules/fence.js
|
||||||
|
ReactNativeClient/lib/joplin-renderer/MdToHtml/rules/fountain.js
|
||||||
|
ReactNativeClient/lib/joplin-renderer/MdToHtml/rules/highlight_keywords.js
|
||||||
|
ReactNativeClient/lib/joplin-renderer/MdToHtml/rules/html_image.js
|
||||||
|
ReactNativeClient/lib/joplin-renderer/MdToHtml/rules/image.js
|
||||||
|
ReactNativeClient/lib/joplin-renderer/MdToHtml/rules/katex.js
|
||||||
|
ReactNativeClient/lib/joplin-renderer/MdToHtml/rules/link_open.js
|
||||||
|
ReactNativeClient/lib/joplin-renderer/MdToHtml/rules/mermaid.js
|
||||||
|
ReactNativeClient/lib/joplin-renderer/MdToHtml/rules/sanitize_html.js
|
||||||
|
ReactNativeClient/lib/joplin-renderer/noteStyle.js
|
||||||
|
ReactNativeClient/lib/joplin-renderer/pathUtils.js
|
||||||
|
ReactNativeClient/lib/JoplinServerApi.js
|
||||||
|
ReactNativeClient/lib/locale.js
|
||||||
|
ReactNativeClient/lib/Logger.js
|
||||||
|
ReactNativeClient/lib/markdownUtils.js
|
||||||
|
ReactNativeClient/lib/markupLanguageUtils.js
|
||||||
|
ReactNativeClient/lib/models/Alarm.js
|
||||||
|
ReactNativeClient/lib/models/Setting.js
|
||||||
|
ReactNativeClient/lib/ntpDate.js
|
||||||
|
ReactNativeClient/lib/path-utils.js
|
||||||
|
ReactNativeClient/lib/PoorManIntervals.js
|
||||||
|
ReactNativeClient/lib/reducer.js
|
||||||
|
ReactNativeClient/lib/services/AlarmService.js
|
||||||
|
ReactNativeClient/lib/services/AlarmServiceDriver.android.js
|
||||||
|
ReactNativeClient/lib/services/AlarmServiceDriver.ios.js
|
||||||
|
ReactNativeClient/lib/services/AlarmServiceDriverNode.js
|
||||||
|
ReactNativeClient/lib/services/BaseService.js
|
||||||
|
ReactNativeClient/lib/services/commands/commandsToMarkdownTable.js
|
||||||
|
ReactNativeClient/lib/services/commands/MenuUtils.js
|
||||||
|
ReactNativeClient/lib/services/commands/propsHaveChanged.js
|
||||||
|
ReactNativeClient/lib/services/commands/stateToWhenClauseContext.js
|
||||||
|
ReactNativeClient/lib/services/commands/ToolbarButtonUtils.js
|
||||||
|
ReactNativeClient/lib/services/CommandService.js
|
||||||
|
ReactNativeClient/lib/services/contextkey/contextkey.js
|
||||||
|
ReactNativeClient/lib/services/debug/populateDatabase.js
|
||||||
|
ReactNativeClient/lib/services/interop/InteropService_Exporter_Base.js
|
||||||
|
ReactNativeClient/lib/services/interop/InteropService_Exporter_Custom.js
|
||||||
|
ReactNativeClient/lib/services/interop/InteropService_Exporter_Html.js
|
||||||
|
ReactNativeClient/lib/services/interop/InteropService_Exporter_Jex.js
|
||||||
|
ReactNativeClient/lib/services/interop/InteropService_Exporter_Md.js
|
||||||
|
ReactNativeClient/lib/services/interop/InteropService_Exporter_Raw.js
|
||||||
|
ReactNativeClient/lib/services/interop/InteropService_Importer_Base.js
|
||||||
|
ReactNativeClient/lib/services/interop/InteropService_Importer_Custom.js
|
||||||
|
ReactNativeClient/lib/services/interop/InteropService_Importer_EnexToHtml.js
|
||||||
|
ReactNativeClient/lib/services/interop/InteropService_Importer_EnexToMd.js
|
||||||
|
ReactNativeClient/lib/services/interop/InteropService_Importer_Jex.js
|
||||||
|
ReactNativeClient/lib/services/interop/InteropService_Importer_Md.js
|
||||||
|
ReactNativeClient/lib/services/interop/InteropService_Importer_Raw.js
|
||||||
|
ReactNativeClient/lib/services/interop/InteropService.js
|
||||||
|
ReactNativeClient/lib/services/interop/types.js
|
||||||
|
ReactNativeClient/lib/services/keychain/KeychainService.js
|
||||||
|
ReactNativeClient/lib/services/keychain/KeychainServiceDriver.dummy.js
|
||||||
|
ReactNativeClient/lib/services/keychain/KeychainServiceDriver.mobile.js
|
||||||
|
ReactNativeClient/lib/services/keychain/KeychainServiceDriver.node.js
|
||||||
|
ReactNativeClient/lib/services/keychain/KeychainServiceDriverBase.js
|
||||||
|
ReactNativeClient/lib/services/KeymapService.js
|
||||||
|
ReactNativeClient/lib/services/plugins/api/Global.js
|
||||||
|
ReactNativeClient/lib/services/plugins/api/Joplin.js
|
||||||
|
ReactNativeClient/lib/services/plugins/api/JoplinCommands.js
|
||||||
|
ReactNativeClient/lib/services/plugins/api/JoplinData.js
|
||||||
|
ReactNativeClient/lib/services/plugins/api/JoplinFilters.js
|
||||||
|
ReactNativeClient/lib/services/plugins/api/JoplinInterop.js
|
||||||
|
ReactNativeClient/lib/services/plugins/api/JoplinPlugins.js
|
||||||
|
ReactNativeClient/lib/services/plugins/api/JoplinSettings.js
|
||||||
|
ReactNativeClient/lib/services/plugins/api/JoplinViews.js
|
||||||
|
ReactNativeClient/lib/services/plugins/api/JoplinViewsDialogs.js
|
||||||
|
ReactNativeClient/lib/services/plugins/api/JoplinViewsMenuItems.js
|
||||||
|
ReactNativeClient/lib/services/plugins/api/JoplinViewsMenus.js
|
||||||
|
ReactNativeClient/lib/services/plugins/api/JoplinViewsPanels.js
|
||||||
|
ReactNativeClient/lib/services/plugins/api/JoplinViewsToolbarButtons.js
|
||||||
|
ReactNativeClient/lib/services/plugins/api/JoplinWorkspace.js
|
||||||
|
ReactNativeClient/lib/services/plugins/api/types.js
|
||||||
|
ReactNativeClient/lib/services/plugins/BasePluginRunner.js
|
||||||
|
ReactNativeClient/lib/services/plugins/MenuController.js
|
||||||
|
ReactNativeClient/lib/services/plugins/MenuItemController.js
|
||||||
|
ReactNativeClient/lib/services/plugins/Plugin.js
|
||||||
|
ReactNativeClient/lib/services/plugins/PluginService.js
|
||||||
|
ReactNativeClient/lib/services/plugins/reducer.js
|
||||||
|
ReactNativeClient/lib/services/plugins/sandboxProxy.js
|
||||||
|
ReactNativeClient/lib/services/plugins/ToolbarButtonController.js
|
||||||
|
ReactNativeClient/lib/services/plugins/utils/contentScriptsToRendererRules.js
|
||||||
|
ReactNativeClient/lib/services/plugins/utils/createViewHandle.js
|
||||||
|
ReactNativeClient/lib/services/plugins/utils/executeSandboxCall.js
|
||||||
|
ReactNativeClient/lib/services/plugins/utils/manifestFromObject.js
|
||||||
|
ReactNativeClient/lib/services/plugins/utils/mapEventHandlersToIds.js
|
||||||
|
ReactNativeClient/lib/services/plugins/utils/types.js
|
||||||
|
ReactNativeClient/lib/services/plugins/ViewController.js
|
||||||
|
ReactNativeClient/lib/services/plugins/WebviewController.js
|
||||||
|
ReactNativeClient/lib/services/ResourceEditWatcher/index.js
|
||||||
|
ReactNativeClient/lib/services/ResourceEditWatcher/reducer.js
|
||||||
|
ReactNativeClient/lib/services/rest/actionApi.desktop.js
|
||||||
|
ReactNativeClient/lib/services/rest/Api.js
|
||||||
|
ReactNativeClient/lib/services/rest/errors.js
|
||||||
|
ReactNativeClient/lib/services/searchengine/filterParser.js
|
||||||
|
ReactNativeClient/lib/services/searchengine/queryBuilder.js
|
||||||
|
ReactNativeClient/lib/services/SettingUtils.js
|
||||||
|
ReactNativeClient/lib/services/synchronizer/gui/useSyncTargetUpgrade.js
|
||||||
|
ReactNativeClient/lib/services/synchronizer/LockHandler.js
|
||||||
|
ReactNativeClient/lib/services/synchronizer/MigrationHandler.js
|
||||||
|
ReactNativeClient/lib/services/synchronizer/migrations/1.js
|
||||||
|
ReactNativeClient/lib/services/synchronizer/migrations/2.js
|
||||||
|
ReactNativeClient/lib/services/synchronizer/utils/types.js
|
||||||
|
ReactNativeClient/lib/services/UndoRedoService.js
|
||||||
|
ReactNativeClient/lib/services/WhenClause.js
|
||||||
|
ReactNativeClient/lib/ShareExtension.js
|
||||||
|
ReactNativeClient/lib/shareHandler.js
|
||||||
|
ReactNativeClient/lib/shim.js
|
||||||
|
ReactNativeClient/lib/Synchronizer.js
|
||||||
|
ReactNativeClient/lib/theme.js
|
||||||
|
ReactNativeClient/lib/themes/aritimDark.js
|
||||||
|
ReactNativeClient/lib/themes/dark.js
|
||||||
|
ReactNativeClient/lib/themes/dracula.js
|
||||||
|
ReactNativeClient/lib/themes/light.js
|
||||||
|
ReactNativeClient/lib/themes/nord.js
|
||||||
|
ReactNativeClient/lib/themes/oledDark.js
|
||||||
|
ReactNativeClient/lib/themes/solarizedDark.js
|
||||||
|
ReactNativeClient/lib/themes/solarizedLight.js
|
||||||
|
ReactNativeClient/lib/themes/type.js
|
||||||
|
ReactNativeClient/lib/uuid.js
|
||||||
|
ReactNativeClient/lib/versionInfo.js
|
||||||
|
ReactNativeClient/PluginAssetsLoader.js
|
||||||
|
ReactNativeClient/setUpQuickActions.js
|
||||||
|
# AUTO-GENERATED - EXCLUDED TYPESCRIPT BUILD
|
3
CliClient/.gitignore
vendored
3
CliClient/.gitignore
vendored
@@ -22,4 +22,5 @@ yarn-error.log
|
|||||||
tests/support/dropbox-auth.txt
|
tests/support/dropbox-auth.txt
|
||||||
tests/support/nextcloud-auth.json
|
tests/support/nextcloud-auth.json
|
||||||
tests/support/onedrive-auth.txt
|
tests/support/onedrive-auth.txt
|
||||||
build/
|
build/
|
||||||
|
patches/
|
@@ -8,7 +8,7 @@ const Note = require('lib/models/Note.js');
|
|||||||
const Tag = require('lib/models/Tag.js');
|
const Tag = require('lib/models/Tag.js');
|
||||||
const Setting = require('lib/models/Setting').default;
|
const Setting = require('lib/models/Setting').default;
|
||||||
const { reg } = require('lib/registry.js');
|
const { reg } = require('lib/registry.js');
|
||||||
const { fileExtension } = require('lib/path-utils.js');
|
const { fileExtension } = require('lib/path-utils');
|
||||||
const { _ } = require('lib/locale');
|
const { _ } = require('lib/locale');
|
||||||
const fs = require('fs-extra');
|
const fs = require('fs-extra');
|
||||||
const { cliUtils } = require('./cli-utils.js');
|
const { cliUtils } = require('./cli-utils.js');
|
||||||
|
@@ -1,5 +1,5 @@
|
|||||||
const fs = require('fs-extra');
|
const fs = require('fs-extra');
|
||||||
const { fileExtension, dirname } = require('lib/path-utils.js');
|
const { fileExtension, dirname } = require('lib/path-utils');
|
||||||
const wrap_ = require('word-wrap');
|
const wrap_ = require('word-wrap');
|
||||||
const { languageCode } = require('lib/locale');
|
const { languageCode } = require('lib/locale');
|
||||||
|
|
||||||
|
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
const fs = require('fs-extra');
|
const fs = require('fs-extra');
|
||||||
const Logger = require('lib/Logger').default;
|
const Logger = require('lib/Logger').default;
|
||||||
const { dirname } = require('lib/path-utils.js');
|
const { dirname } = require('lib/path-utils');
|
||||||
const { DatabaseDriverNode } = require('lib/database-driver-node.js');
|
const { DatabaseDriverNode } = require('lib/database-driver-node.js');
|
||||||
const { JoplinDatabase } = require('lib/joplin-database.js');
|
const { JoplinDatabase } = require('lib/joplin-database.js');
|
||||||
const BaseModel = require('lib/BaseModel.js');
|
const BaseModel = require('lib/BaseModel.js');
|
||||||
|
@@ -5,7 +5,7 @@ const DecryptionWorker = require('lib/services/DecryptionWorker');
|
|||||||
const BaseItem = require('lib/models/BaseItem');
|
const BaseItem = require('lib/models/BaseItem');
|
||||||
const Setting = require('lib/models/Setting').default;
|
const Setting = require('lib/models/Setting').default;
|
||||||
const shim = require('lib/shim').default;
|
const shim = require('lib/shim').default;
|
||||||
const pathUtils = require('lib/path-utils.js');
|
const pathUtils = require('lib/path-utils');
|
||||||
const imageType = require('image-type');
|
const imageType = require('image-type');
|
||||||
const readChunk = require('read-chunk');
|
const readChunk = require('read-chunk');
|
||||||
|
|
||||||
@@ -45,10 +45,12 @@ class Command extends BaseCommand {
|
|||||||
|
|
||||||
const startDecryption = async () => {
|
const startDecryption = async () => {
|
||||||
this.stdout(_('Starting decryption... Please wait as it may take several minutes depending on how much there is to decrypt.'));
|
this.stdout(_('Starting decryption... Please wait as it may take several minutes depending on how much there is to decrypt.'));
|
||||||
|
|
||||||
while (true) {
|
while (true) {
|
||||||
try {
|
try {
|
||||||
const result = await DecryptionWorker.instance().start();
|
const result = await DecryptionWorker.instance().start();
|
||||||
|
|
||||||
|
if (result.error) throw result.error;
|
||||||
|
|
||||||
const line = [];
|
const line = [];
|
||||||
line.push(_('Decrypted items: %d', result.decryptedItemCount));
|
line.push(_('Decrypted items: %d', result.decryptedItemCount));
|
||||||
if (result.skippedItemCount) line.push(_('Skipped items: %d (use --retry-failed-items to retry decrypting them)', result.skippedItemCount));
|
if (result.skippedItemCount) line.push(_('Skipped items: %d (use --retry-failed-items to retry decrypting them)', result.skippedItemCount));
|
||||||
|
@@ -3,8 +3,8 @@
|
|||||||
const { time } = require('lib/time-utils.js');
|
const { time } = require('lib/time-utils.js');
|
||||||
const Logger = require('lib/Logger').default;
|
const Logger = require('lib/Logger').default;
|
||||||
const Resource = require('lib/models/Resource.js');
|
const Resource = require('lib/models/Resource.js');
|
||||||
const { dirname } = require('lib/path-utils.js');
|
const { dirname } = require('lib/path-utils');
|
||||||
const { FsDriverNode } = require('./fs-driver-node.js');
|
const FsDriverNode = require('lib/fs-driver-node').default;
|
||||||
const lodash = require('lodash');
|
const lodash = require('lodash');
|
||||||
const exec = require('child_process').exec;
|
const exec = require('child_process').exec;
|
||||||
const fs = require('fs-extra');
|
const fs = require('fs-extra');
|
||||||
|
@@ -24,7 +24,7 @@ const MasterKey = require('lib/models/MasterKey');
|
|||||||
const Setting = require('lib/models/Setting').default;
|
const Setting = require('lib/models/Setting').default;
|
||||||
const Revision = require('lib/models/Revision.js');
|
const Revision = require('lib/models/Revision.js');
|
||||||
const Logger = require('lib/Logger').default;
|
const Logger = require('lib/Logger').default;
|
||||||
const { FsDriverNode } = require('lib/fs-driver-node.js');
|
const FsDriverNode = require('lib/fs-driver-node').default;
|
||||||
const { shimInit } = require('lib/shim-init-node.js');
|
const { shimInit } = require('lib/shim-init-node.js');
|
||||||
const { _ } = require('lib/locale');
|
const { _ } = require('lib/locale');
|
||||||
const { FileApiDriverLocal } = require('lib/file-api-driver-local.js');
|
const { FileApiDriverLocal } = require('lib/file-api-driver-local.js');
|
||||||
|
@@ -54,15 +54,25 @@ export default class PluginRunner extends BasePluginRunner {
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
async run(plugin:Plugin, sandbox:Global) {
|
async run(plugin:Plugin, sandbox:Global):Promise<void> {
|
||||||
const vmSandbox = vm.createContext(this.newSandboxProxy(plugin.id, sandbox));
|
return new Promise((resolve:Function, reject:Function) => {
|
||||||
|
const onStarted = () => {
|
||||||
|
plugin.off('started', onStarted);
|
||||||
|
resolve();
|
||||||
|
};
|
||||||
|
|
||||||
try {
|
plugin.on('started', onStarted);
|
||||||
vm.runInContext(plugin.scriptText, vmSandbox);
|
|
||||||
} catch (error) {
|
const vmSandbox = vm.createContext(this.newSandboxProxy(plugin.id, sandbox));
|
||||||
this.logger().error(`In plugin ${plugin.id}:`, error);
|
|
||||||
return;
|
try {
|
||||||
}
|
vm.runInContext(plugin.scriptText, vmSandbox);
|
||||||
|
} catch (error) {
|
||||||
|
reject(error);
|
||||||
|
// this.logger().error(`In plugin ${plugin.id}:`, error);
|
||||||
|
// return;
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@@ -17,12 +17,23 @@ tasks.prepareBuild = {
|
|||||||
excluded: ['node_modules'],
|
excluded: ['node_modules'],
|
||||||
});
|
});
|
||||||
await utils.copyDir(`${__dirname}/locales-build`, `${buildDir}/locales`);
|
await utils.copyDir(`${__dirname}/locales-build`, `${buildDir}/locales`);
|
||||||
await utils.copyDir(`${__dirname}/../patches`, `${buildDir}/patches`);
|
|
||||||
await tasks.copyLib.fn();
|
await tasks.copyLib.fn();
|
||||||
await utils.copyFile(`${__dirname}/package.json`, `${buildDir}/package.json`);
|
await utils.copyFile(`${__dirname}/package.json`, `${buildDir}/package.json`);
|
||||||
await utils.copyFile(`${__dirname}/package-lock.json`, `${buildDir}/package-lock.json`);
|
await utils.copyFile(`${__dirname}/package-lock.json`, `${buildDir}/package-lock.json`);
|
||||||
await utils.copyFile(`${__dirname}/gulpfile.js`, `${buildDir}/gulpfile.js`);
|
await utils.copyFile(`${__dirname}/gulpfile.js`, `${buildDir}/gulpfile.js`);
|
||||||
|
|
||||||
|
// Import all the patches inside the CliClient directory
|
||||||
|
// and build file. Needs to be in CliClient dir for when running
|
||||||
|
// in dev mode, and in build dir for production.
|
||||||
|
const localPatchDir = `${buildDir}/patches`;
|
||||||
|
await fs.remove(localPatchDir);
|
||||||
|
await fs.mkdirp(localPatchDir);
|
||||||
|
await utils.copyDir(`${__dirname}/../patches/shared`, `${localPatchDir}`, { delete: false });
|
||||||
|
await utils.copyDir(`${__dirname}/../patches/node`, `${localPatchDir}`, { delete: false });
|
||||||
|
|
||||||
|
await fs.remove(`${__dirname}/patches`);
|
||||||
|
await utils.copyDir(`${localPatchDir}`, `${__dirname}/patches`);
|
||||||
|
|
||||||
const packageRaw = await fs.readFile(`${buildDir}/package.json`);
|
const packageRaw = await fs.readFile(`${buildDir}/package.json`);
|
||||||
const package = JSON.parse(packageRaw.toString());
|
const package = JSON.parse(packageRaw.toString());
|
||||||
package.scripts.postinstall = 'patch-package';
|
package.scripts.postinstall = 'patch-package';
|
||||||
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -38,42 +38,42 @@ locales['tr_TR'] = require('./tr_TR.json');
|
|||||||
locales['vi'] = require('./vi.json');
|
locales['vi'] = require('./vi.json');
|
||||||
locales['zh_CN'] = require('./zh_CN.json');
|
locales['zh_CN'] = require('./zh_CN.json');
|
||||||
locales['zh_TW'] = require('./zh_TW.json');
|
locales['zh_TW'] = require('./zh_TW.json');
|
||||||
stats['ar'] = {"percentDone":80};
|
stats['ar'] = {"percentDone":78};
|
||||||
stats['eu'] = {"percentDone":34};
|
stats['eu'] = {"percentDone":33};
|
||||||
stats['bs_BA'] = {"percentDone":83};
|
stats['bs_BA'] = {"percentDone":82};
|
||||||
stats['bg_BG'] = {"percentDone":66};
|
stats['bg_BG'] = {"percentDone":65};
|
||||||
stats['ca'] = {"percentDone":96};
|
stats['ca'] = {"percentDone":95};
|
||||||
stats['hr_HR'] = {"percentDone":27};
|
stats['hr_HR'] = {"percentDone":27};
|
||||||
stats['cs_CZ'] = {"percentDone":82};
|
stats['cs_CZ'] = {"percentDone":98};
|
||||||
stats['da_DK'] = {"percentDone":74};
|
stats['da_DK'] = {"percentDone":72};
|
||||||
stats['de_DE'] = {"percentDone":98};
|
stats['de_DE'] = {"percentDone":97};
|
||||||
stats['et_EE'] = {"percentDone":66};
|
stats['et_EE'] = {"percentDone":65};
|
||||||
stats['en_GB'] = {"percentDone":100};
|
stats['en_GB'] = {"percentDone":100};
|
||||||
stats['en_US'] = {"percentDone":100};
|
stats['en_US'] = {"percentDone":100};
|
||||||
stats['es_ES'] = {"percentDone":95};
|
stats['es_ES'] = {"percentDone":98};
|
||||||
stats['eo'] = {"percentDone":38};
|
stats['eo'] = {"percentDone":37};
|
||||||
stats['fr_FR'] = {"percentDone":99};
|
stats['fr_FR'] = {"percentDone":98};
|
||||||
stats['gl_ES'] = {"percentDone":43};
|
stats['gl_ES'] = {"percentDone":42};
|
||||||
stats['id_ID'] = {"percentDone":93};
|
stats['id_ID'] = {"percentDone":92};
|
||||||
stats['it_IT'] = {"percentDone":90};
|
stats['it_IT'] = {"percentDone":98};
|
||||||
stats['nl_BE'] = {"percentDone":34};
|
stats['nl_NL'] = {"percentDone":94};
|
||||||
stats['nl_NL'] = {"percentDone":95};
|
stats['nl_BE'] = {"percentDone":33};
|
||||||
stats['nb_NO'] = {"percentDone":88};
|
stats['nb_NO'] = {"percentDone":87};
|
||||||
stats['fa'] = {"percentDone":83};
|
stats['fa'] = {"percentDone":82};
|
||||||
stats['pl_PL'] = {"percentDone":98};
|
stats['pl_PL'] = {"percentDone":97};
|
||||||
stats['pt_PT'] = {"percentDone":88};
|
stats['pt_PT'] = {"percentDone":98};
|
||||||
stats['pt_BR'] = {"percentDone":96};
|
stats['pt_BR'] = {"percentDone":96};
|
||||||
stats['ro'] = {"percentDone":77};
|
stats['ro'] = {"percentDone":77};
|
||||||
stats['sl_SI'] = {"percentDone":42};
|
stats['sl_SI'] = {"percentDone":41};
|
||||||
stats['sv'] = {"percentDone":70};
|
stats['sv'] = {"percentDone":70};
|
||||||
stats['th_TH'] = {"percentDone":52};
|
stats['th_TH'] = {"percentDone":52};
|
||||||
stats['vi'] = {"percentDone":85};
|
stats['vi'] = {"percentDone":84};
|
||||||
stats['tr_TR'] = {"percentDone":98};
|
stats['tr_TR'] = {"percentDone":97};
|
||||||
stats['el_GR'] = {"percentDone":96};
|
stats['el_GR'] = {"percentDone":95};
|
||||||
stats['ru_RU'] = {"percentDone":95};
|
stats['ru_RU'] = {"percentDone":94};
|
||||||
stats['sr_RS'] = {"percentDone":71};
|
stats['sr_RS'] = {"percentDone":70};
|
||||||
stats['zh_CN'] = {"percentDone":96};
|
stats['zh_CN'] = {"percentDone":95};
|
||||||
stats['zh_TW'] = {"percentDone":95};
|
stats['zh_TW'] = {"percentDone":94};
|
||||||
stats['ja_JP'] = {"percentDone":98};
|
stats['ja_JP'] = {"percentDone":99};
|
||||||
stats['ko'] = {"percentDone":98};
|
stats['ko'] = {"percentDone":99};
|
||||||
module.exports = { locales: locales, stats: stats };
|
module.exports = { locales: locales, stats: stats };
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
77
CliClient/package-lock.json
generated
77
CliClient/package-lock.json
generated
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "joplin",
|
"name": "joplin",
|
||||||
"version": "1.3.0",
|
"version": "1.3.3",
|
||||||
"lockfileVersion": 1,
|
"lockfileVersion": 1,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
@@ -23,9 +23,9 @@
|
|||||||
"integrity": "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ=="
|
"integrity": "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ=="
|
||||||
},
|
},
|
||||||
"abab": {
|
"abab": {
|
||||||
"version": "2.0.3",
|
"version": "2.0.5",
|
||||||
"resolved": "https://registry.npmjs.org/abab/-/abab-2.0.3.tgz",
|
"resolved": "https://registry.npmjs.org/abab/-/abab-2.0.5.tgz",
|
||||||
"integrity": "sha512-tsFzPpcttalNjFBCFMqsKYQcWxxen1pgJR56by//QwvJc4/OUS3kPOOttx2tSIfjsylB0pYu7f5D3K1RCxUnUg=="
|
"integrity": "sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q=="
|
||||||
},
|
},
|
||||||
"abbrev": {
|
"abbrev": {
|
||||||
"version": "1.1.1",
|
"version": "1.1.1",
|
||||||
@@ -33,9 +33,9 @@
|
|||||||
"integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q=="
|
"integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q=="
|
||||||
},
|
},
|
||||||
"acorn": {
|
"acorn": {
|
||||||
"version": "7.3.1",
|
"version": "7.4.1",
|
||||||
"resolved": "https://registry.npmjs.org/acorn/-/acorn-7.3.1.tgz",
|
"resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz",
|
||||||
"integrity": "sha512-tLc0wSnatxAQHVHUapaHdz72pi9KUyHjq5KyHjGg9Y8Ifdc79pTh2XvI6I1/chZbnM7QtNKzh66ooDogPZSleA=="
|
"integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A=="
|
||||||
},
|
},
|
||||||
"acorn-globals": {
|
"acorn-globals": {
|
||||||
"version": "4.3.4",
|
"version": "4.3.4",
|
||||||
@@ -47,9 +47,9 @@
|
|||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"acorn": {
|
"acorn": {
|
||||||
"version": "6.4.1",
|
"version": "6.4.2",
|
||||||
"resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.1.tgz",
|
"resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz",
|
||||||
"integrity": "sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA=="
|
"integrity": "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ=="
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -2964,9 +2964,9 @@
|
|||||||
"integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0="
|
"integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0="
|
||||||
},
|
},
|
||||||
"highlight.js": {
|
"highlight.js": {
|
||||||
"version": "10.1.1",
|
"version": "10.2.1",
|
||||||
"resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-10.1.1.tgz",
|
"resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-10.2.1.tgz",
|
||||||
"integrity": "sha512-b4L09127uVa+9vkMgPpdUQP78ickGbHEQTWeBrQFTJZ4/n2aihWOGS0ZoUqAwjVmfjhq/C76HRzkqwZhK4sBbg=="
|
"integrity": "sha512-A+sckVPIb9zQTUydC9lpRX1qRFO/N0OKEh0NwIr65ckvWA/oMY8v9P3+kGRK3w2ULSh9E8v5MszXafodQ6039g=="
|
||||||
},
|
},
|
||||||
"homedir-polyfill": {
|
"homedir-polyfill": {
|
||||||
"version": "1.0.3",
|
"version": "1.0.3",
|
||||||
@@ -3227,6 +3227,11 @@
|
|||||||
"file-type": "^4.1.0"
|
"file-type": "^4.1.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"immer": {
|
||||||
|
"version": "7.0.14",
|
||||||
|
"resolved": "https://registry.npmjs.org/immer/-/immer-7.0.14.tgz",
|
||||||
|
"integrity": "sha512-BxCs6pJwhgSEUEOZjywW7OA8DXVzfHjkBelSEl0A+nEu0+zS4cFVdNOONvt55N4WOm8Pu4xqSPYxhm1Lv2iBBA=="
|
||||||
|
},
|
||||||
"inflight": {
|
"inflight": {
|
||||||
"version": "1.0.6",
|
"version": "1.0.6",
|
||||||
"resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
|
"resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
|
||||||
@@ -3650,9 +3655,9 @@
|
|||||||
"integrity": "sha1-o/Iiqarp+Wb10nx5ZRDigJF2Qhc="
|
"integrity": "sha1-o/Iiqarp+Wb10nx5ZRDigJF2Qhc="
|
||||||
},
|
},
|
||||||
"joplin-turndown": {
|
"joplin-turndown": {
|
||||||
"version": "4.0.29",
|
"version": "4.0.30",
|
||||||
"resolved": "https://registry.npmjs.org/joplin-turndown/-/joplin-turndown-4.0.29.tgz",
|
"resolved": "https://registry.npmjs.org/joplin-turndown/-/joplin-turndown-4.0.30.tgz",
|
||||||
"integrity": "sha512-rVGu8u4TpSRETo59/jiVW9iaXnpdxxpBHjb7nyCflkDfWhg1Kska4uagBQGw7cD2yxw7mB2YUIB/fAgtlIzcDQ==",
|
"integrity": "sha512-OrGdNTsjI6/cbx/es9Hl0YI3YTql4SopduFcYCnWTZgqT0SJqILnF2JQxSNnbPnkSDIIRdNOG4+iNzlY6bS1nw==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"css": "^2.2.4",
|
"css": "^2.2.4",
|
||||||
"html-entities": "^1.2.1",
|
"html-entities": "^1.2.1",
|
||||||
@@ -4199,11 +4204,6 @@
|
|||||||
"resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz",
|
||||||
"integrity": "sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4="
|
"integrity": "sha1-/oWy7HWlkDfyrf7BAP1sYBdhFS4="
|
||||||
},
|
},
|
||||||
"memory-cache": {
|
|
||||||
"version": "0.2.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/memory-cache/-/memory-cache-0.2.0.tgz",
|
|
||||||
"integrity": "sha1-eJCwHVLADI68nVM+H46xfjA0hxo="
|
|
||||||
},
|
|
||||||
"micromatch": {
|
"micromatch": {
|
||||||
"version": "3.1.10",
|
"version": "3.1.10",
|
||||||
"resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz",
|
"resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz",
|
||||||
@@ -5573,13 +5573,6 @@
|
|||||||
"integrity": "sha512-TTbAfBBRdWD7aNNOoVOBH4pN/KigV6LyapYNNlAPA8JwbovRti1E88m3sYAwsLi5ryhPKsE9APwnjFTgdUjTpw==",
|
"integrity": "sha512-TTbAfBBRdWD7aNNOoVOBH4pN/KigV6LyapYNNlAPA8JwbovRti1E88m3sYAwsLi5ryhPKsE9APwnjFTgdUjTpw==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"lodash": "^4.17.19"
|
"lodash": "^4.17.19"
|
||||||
},
|
|
||||||
"dependencies": {
|
|
||||||
"lodash": {
|
|
||||||
"version": "4.17.19",
|
|
||||||
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz",
|
|
||||||
"integrity": "sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ=="
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"request-promise-native": {
|
"request-promise-native": {
|
||||||
@@ -5900,11 +5893,6 @@
|
|||||||
"is-fullwidth-code-point": "^2.0.0"
|
"is-fullwidth-code-point": "^2.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"slug": {
|
|
||||||
"version": "3.5.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/slug/-/slug-3.5.0.tgz",
|
|
||||||
"integrity": "sha512-+pZLDhMtmAc+ZcojQSMlUKDZBYmvhZiZmK8Ffx/D3Q/MIMHPDBAMbWvWN8vJb9xl2MfbDdRWxFzrdOhBiyVpow=="
|
|
||||||
},
|
|
||||||
"snapdragon": {
|
"snapdragon": {
|
||||||
"version": "0.8.2",
|
"version": "0.8.2",
|
||||||
"resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz",
|
"resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz",
|
||||||
@@ -6767,6 +6755,11 @@
|
|||||||
"resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.1.tgz",
|
"resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.1.tgz",
|
||||||
"integrity": "sha1-+nG63UQ3r0wUiEHjs7Fl+enlkLc="
|
"integrity": "sha1-+nG63UQ3r0wUiEHjs7Fl+enlkLc="
|
||||||
},
|
},
|
||||||
|
"unorm": {
|
||||||
|
"version": "1.6.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/unorm/-/unorm-1.6.0.tgz",
|
||||||
|
"integrity": "sha512-b2/KCUlYZUeA7JFUuRJZPUtr4gZvBh7tavtv4fvk4+KV9pfGiR6CQAQAWl49ZpR3ts2dk4FYkP7EIgDJoiOLDA=="
|
||||||
|
},
|
||||||
"unpack-string": {
|
"unpack-string": {
|
||||||
"version": "0.0.2",
|
"version": "0.0.2",
|
||||||
"resolved": "https://registry.npmjs.org/unpack-string/-/unpack-string-0.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/unpack-string/-/unpack-string-0.0.2.tgz",
|
||||||
@@ -6869,6 +6862,24 @@
|
|||||||
"resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz",
|
"resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz",
|
||||||
"integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ=="
|
"integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ=="
|
||||||
},
|
},
|
||||||
|
"uslug": {
|
||||||
|
"version": "git+https://github.com/laurent22/uslug.git#ba2834d79beb0435318709958b2f5e817d96674d",
|
||||||
|
"from": "git+https://github.com/laurent22/uslug.git#emoji-support",
|
||||||
|
"requires": {
|
||||||
|
"node-emoji": "^1.10.0",
|
||||||
|
"unorm": ">= 1.0.0"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"node-emoji": {
|
||||||
|
"version": "1.10.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.10.0.tgz",
|
||||||
|
"integrity": "sha512-Yt3384If5H6BYGVHiHwTL+99OzJKHhgp82S8/dktEK73T26BazdgZ4JZh92xSVtGNJvz9UbXdNAc5hcrXV42vw==",
|
||||||
|
"requires": {
|
||||||
|
"lodash.toarray": "^4.4.0"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
"util-deprecate": {
|
"util-deprecate": {
|
||||||
"version": "1.0.2",
|
"version": "1.0.2",
|
||||||
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
|
||||||
|
@@ -6,7 +6,7 @@
|
|||||||
"scripts": {
|
"scripts": {
|
||||||
"test": "gulp buildTests -L && node node_modules/jasmine/bin/jasmine.js --fail-fast=true --config=tests/support/jasmine.json",
|
"test": "gulp buildTests -L && node node_modules/jasmine/bin/jasmine.js --fail-fast=true --config=tests/support/jasmine.json",
|
||||||
"test-ci": "gulp buildTests -L && node node_modules/jasmine/bin/jasmine.js --config=tests/support/jasmine.json",
|
"test-ci": "gulp buildTests -L && node node_modules/jasmine/bin/jasmine.js --config=tests/support/jasmine.json",
|
||||||
"postinstall": "npm run build && patch-package --patch-dir ../patches",
|
"postinstall": "npm run build && patch-package --patch-dir ./patches",
|
||||||
"build": "gulp build",
|
"build": "gulp build",
|
||||||
"start": "gulp build -L && node 'build/main.js' --stack-trace-enabled --log-level debug --env dev"
|
"start": "gulp build -L && node 'build/main.js' --stack-trace-enabled --log-level debug --env dev"
|
||||||
},
|
},
|
||||||
@@ -28,7 +28,7 @@
|
|||||||
],
|
],
|
||||||
"owner": "Laurent Cozic"
|
"owner": "Laurent Cozic"
|
||||||
},
|
},
|
||||||
"version": "1.3.0",
|
"version": "1.3.3",
|
||||||
"bin": {
|
"bin": {
|
||||||
"joplin": "./main.js"
|
"joplin": "./main.js"
|
||||||
},
|
},
|
||||||
@@ -52,13 +52,14 @@
|
|||||||
"font-awesome-filetypes": "^2.1.0",
|
"font-awesome-filetypes": "^2.1.0",
|
||||||
"form-data": "^2.1.4",
|
"form-data": "^2.1.4",
|
||||||
"fs-extra": "^5.0.0",
|
"fs-extra": "^5.0.0",
|
||||||
"highlight.js": "10.1.1",
|
"highlight.js": "^10.2.1",
|
||||||
"html-entities": "^1.2.1",
|
"html-entities": "^1.2.1",
|
||||||
"html-minifier": "^3.5.15",
|
"html-minifier": "^3.5.15",
|
||||||
"htmlparser2": "^4.1.0",
|
"htmlparser2": "^4.1.0",
|
||||||
"image-data-uri": "^2.0.0",
|
"image-data-uri": "^2.0.0",
|
||||||
"image-type": "^3.0.0",
|
"image-type": "^3.0.0",
|
||||||
"joplin-turndown": "^4.0.29",
|
"immer": "^7.0.14",
|
||||||
|
"joplin-turndown": "^4.0.30",
|
||||||
"joplin-turndown-plugin-gfm": "^1.0.12",
|
"joplin-turndown-plugin-gfm": "^1.0.12",
|
||||||
"json-stringify-safe": "^5.0.1",
|
"json-stringify-safe": "^5.0.1",
|
||||||
"jssha": "^2.3.0",
|
"jssha": "^2.3.0",
|
||||||
@@ -80,7 +81,6 @@
|
|||||||
"markdown-it-toc-done-right": "^4.1.0",
|
"markdown-it-toc-done-right": "^4.1.0",
|
||||||
"md5": "^2.2.1",
|
"md5": "^2.2.1",
|
||||||
"md5-file": "^4.0.0",
|
"md5-file": "^4.0.0",
|
||||||
"memory-cache": "^0.2.0",
|
|
||||||
"mime": "^2.0.3",
|
"mime": "^2.0.3",
|
||||||
"moment": "^2.24.0",
|
"moment": "^2.24.0",
|
||||||
"multiparty": "^4.2.1",
|
"multiparty": "^4.2.1",
|
||||||
@@ -102,7 +102,6 @@
|
|||||||
"sax": "^1.2.4",
|
"sax": "^1.2.4",
|
||||||
"server-destroy": "^1.0.1",
|
"server-destroy": "^1.0.1",
|
||||||
"sharp": "^0.23.2",
|
"sharp": "^0.23.2",
|
||||||
"slug": "^3.5.0",
|
|
||||||
"sprintf-js": "^1.1.1",
|
"sprintf-js": "^1.1.1",
|
||||||
"sqlite3": "^4.1.1",
|
"sqlite3": "^4.1.1",
|
||||||
"string-padding": "^1.0.2",
|
"string-padding": "^1.0.2",
|
||||||
@@ -114,6 +113,7 @@
|
|||||||
"terminal-kit": "^1.30.0",
|
"terminal-kit": "^1.30.0",
|
||||||
"tkwidgets": "^0.5.26",
|
"tkwidgets": "^0.5.26",
|
||||||
"url-parse": "^1.4.7",
|
"url-parse": "^1.4.7",
|
||||||
|
"uslug": "git+https://github.com/laurent22/uslug.git#emoji-support",
|
||||||
"uuid": "^3.0.1",
|
"uuid": "^3.0.1",
|
||||||
"valid-url": "^1.0.9",
|
"valid-url": "^1.0.9",
|
||||||
"word-wrap": "^1.2.3",
|
"word-wrap": "^1.2.3",
|
||||||
|
@@ -3,6 +3,7 @@ require('app-module-path').addPath(__dirname);
|
|||||||
const { asyncTest, setupDatabaseAndSynchronizer, switchClient } = require('test-utils.js');
|
const { asyncTest, setupDatabaseAndSynchronizer, switchClient } = require('test-utils.js');
|
||||||
const shim = require('lib/shim').default;
|
const shim = require('lib/shim').default;
|
||||||
const { enexXmlToHtml } = require('lib/import-enex-html-gen.js');
|
const { enexXmlToHtml } = require('lib/import-enex-html-gen.js');
|
||||||
|
const cleanHtml = require('clean-html');
|
||||||
|
|
||||||
process.on('unhandledRejection', (reason, p) => {
|
process.on('unhandledRejection', (reason, p) => {
|
||||||
console.warn('Unhandled Rejection at: Promise', p, 'reason:', reason);
|
console.warn('Unhandled Rejection at: Promise', p, 'reason:', reason);
|
||||||
@@ -19,6 +20,20 @@ const audioResource = {
|
|||||||
title: 'audio test',
|
title: 'audio test',
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// All the test HTML files are beautified ones, so we need to run
|
||||||
|
// this before the comparison. Before, beautifying was done by `enexXmlToHtml`
|
||||||
|
// but that was removed due to problems with the clean-html package.
|
||||||
|
const beautifyHtml = (html) => {
|
||||||
|
return new Promise((resolve) => {
|
||||||
|
try {
|
||||||
|
cleanHtml.clean(html, { wrap: 0 }, (...cleanedHtml) => resolve(cleanedHtml.join('')));
|
||||||
|
} catch (error) {
|
||||||
|
console.warn(`Could not clean HTML - the "unclean" version will be used: ${error.message}: ${html.trim().substr(0, 512).replace(/[\n\r]/g, ' ')}...`);
|
||||||
|
resolve([html].join(''));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Tests the importer for a single note, checking that the result of
|
* Tests the importer for a single note, checking that the result of
|
||||||
* processing the given `.enex` input file matches the contents of the given
|
* processing the given `.enex` input file matches the contents of the given
|
||||||
@@ -38,7 +53,7 @@ const compareOutputToExpected = (options) => {
|
|||||||
it(testTitle, asyncTest(async () => {
|
it(testTitle, asyncTest(async () => {
|
||||||
const enexInput = await shim.fsDriver().readFile(inputFile);
|
const enexInput = await shim.fsDriver().readFile(inputFile);
|
||||||
const expectedOutput = await shim.fsDriver().readFile(outputFile);
|
const expectedOutput = await shim.fsDriver().readFile(outputFile);
|
||||||
const actualOutput = await enexXmlToHtml(enexInput, options.resources);
|
const actualOutput = await beautifyHtml(await enexXmlToHtml(enexInput, options.resources));
|
||||||
|
|
||||||
expect(actualOutput).toEqual(expectedOutput);
|
expect(actualOutput).toEqual(expectedOutput);
|
||||||
}));
|
}));
|
||||||
|
@@ -4,7 +4,7 @@ require('app-module-path').addPath(__dirname);
|
|||||||
|
|
||||||
const os = require('os');
|
const os = require('os');
|
||||||
const { time } = require('lib/time-utils.js');
|
const { time } = require('lib/time-utils.js');
|
||||||
const { filename } = require('lib/path-utils.js');
|
const { filename } = require('lib/path-utils');
|
||||||
const { asyncTest, fileContentEqual, setupDatabase, setupDatabaseAndSynchronizer, db, synchronizer, fileApi, sleep, clearDatabase, switchClient, syncTargetId, objectsEqual, checkThrowAsync } = require('test-utils.js');
|
const { asyncTest, fileContentEqual, setupDatabase, setupDatabaseAndSynchronizer, db, synchronizer, fileApi, sleep, clearDatabase, switchClient, syncTargetId, objectsEqual, checkThrowAsync } = require('test-utils.js');
|
||||||
const Folder = require('lib/models/Folder.js');
|
const Folder = require('lib/models/Folder.js');
|
||||||
const Note = require('lib/models/Note.js');
|
const Note = require('lib/models/Note.js');
|
||||||
|
@@ -4,7 +4,7 @@ require('app-module-path').addPath(__dirname);
|
|||||||
|
|
||||||
const os = require('os');
|
const os = require('os');
|
||||||
const { time } = require('lib/time-utils.js');
|
const { time } = require('lib/time-utils.js');
|
||||||
const { filename } = require('lib/path-utils.js');
|
const { filename } = require('lib/path-utils');
|
||||||
const { asyncTest, fileContentEqual, setupDatabase, setupDatabaseAndSynchronizer, db, synchronizer, fileApi, sleep, clearDatabase, switchClient, syncTargetId, objectsEqual, checkThrowAsync } = require('test-utils.js');
|
const { asyncTest, fileContentEqual, setupDatabase, setupDatabaseAndSynchronizer, db, synchronizer, fileApi, sleep, clearDatabase, switchClient, syncTargetId, objectsEqual, checkThrowAsync } = require('test-utils.js');
|
||||||
const Folder = require('lib/models/Folder.js');
|
const Folder = require('lib/models/Folder.js');
|
||||||
const Note = require('lib/models/Note.js');
|
const Note = require('lib/models/Note.js');
|
||||||
|
@@ -4,7 +4,7 @@ require('app-module-path').addPath(__dirname);
|
|||||||
|
|
||||||
const os = require('os');
|
const os = require('os');
|
||||||
const { time } = require('lib/time-utils.js');
|
const { time } = require('lib/time-utils.js');
|
||||||
const { filename } = require('lib/path-utils.js');
|
const { filename } = require('lib/path-utils');
|
||||||
const { asyncTest, fileContentEqual, setupDatabase, setupDatabaseAndSynchronizer, db, synchronizer, fileApi, sleep, clearDatabase, switchClient, syncTargetId, objectsEqual, checkThrowAsync } = require('test-utils.js');
|
const { asyncTest, fileContentEqual, setupDatabase, setupDatabaseAndSynchronizer, db, synchronizer, fileApi, sleep, clearDatabase, switchClient, syncTargetId, objectsEqual, checkThrowAsync } = require('test-utils.js');
|
||||||
const Folder = require('lib/models/Folder.js');
|
const Folder = require('lib/models/Folder.js');
|
||||||
const Note = require('lib/models/Note.js');
|
const Note = require('lib/models/Note.js');
|
||||||
|
59
CliClient/tests/InMemoryCache.ts
Normal file
59
CliClient/tests/InMemoryCache.ts
Normal file
@@ -0,0 +1,59 @@
|
|||||||
|
import InMemoryCache from 'lib/InMemoryCache';
|
||||||
|
const { time } = require('lib/time-utils.js');
|
||||||
|
|
||||||
|
describe('InMemoryCache', function() {
|
||||||
|
|
||||||
|
it('should get and set values', () => {
|
||||||
|
const cache = new InMemoryCache();
|
||||||
|
|
||||||
|
expect(cache.value('test')).toBe(undefined);
|
||||||
|
expect(cache.value('test', 'default')).toBe('default');
|
||||||
|
|
||||||
|
cache.setValue('test', 'something');
|
||||||
|
expect(cache.value('test')).toBe('something');
|
||||||
|
|
||||||
|
// Check we get the exact same object back (cache should not copy)
|
||||||
|
const someObj = { abcd: '123' };
|
||||||
|
cache.setValue('someObj', someObj);
|
||||||
|
expect(cache.value('someObj')).toBe(someObj);
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should expire values', async () => {
|
||||||
|
const cache = new InMemoryCache();
|
||||||
|
|
||||||
|
// Check that the value is udefined once the cache has expired
|
||||||
|
cache.setValue('test', 'something', 500);
|
||||||
|
expect(cache.value('test')).toBe('something');
|
||||||
|
await time.msleep(510);
|
||||||
|
expect(cache.value('test')).toBe(undefined);
|
||||||
|
|
||||||
|
// Check that the TTL is reset every time setValue is called
|
||||||
|
cache.setValue('test', 'something', 300);
|
||||||
|
await time.msleep(100);
|
||||||
|
cache.setValue('test', 'something', 300);
|
||||||
|
await time.msleep(100);
|
||||||
|
cache.setValue('test', 'something', 300);
|
||||||
|
await time.msleep(100);
|
||||||
|
cache.setValue('test', 'something', 300);
|
||||||
|
await time.msleep(100);
|
||||||
|
|
||||||
|
expect(cache.value('test')).toBe('something');
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should delete old records', async () => {
|
||||||
|
const cache = new InMemoryCache(5);
|
||||||
|
|
||||||
|
cache.setValue('1', '1');
|
||||||
|
cache.setValue('2', '2');
|
||||||
|
cache.setValue('3', '3');
|
||||||
|
cache.setValue('4', '4');
|
||||||
|
cache.setValue('5', '5');
|
||||||
|
|
||||||
|
expect(cache.value('1')).toBe('1');
|
||||||
|
|
||||||
|
cache.setValue('6', '6');
|
||||||
|
|
||||||
|
expect(cache.value('1')).toBe(undefined);
|
||||||
|
});
|
||||||
|
|
||||||
|
});
|
@@ -1,7 +1,7 @@
|
|||||||
require('app-module-path').addPath(__dirname);
|
require('app-module-path').addPath(__dirname);
|
||||||
|
|
||||||
const { asyncTest } = require('test-utils.js');
|
const { asyncTest } = require('test-utils.js');
|
||||||
const MarkupToHtml = require('lib/joplin-renderer/MarkupToHtml');
|
const MarkupToHtml = require('lib/joplin-renderer/MarkupToHtml').default;
|
||||||
|
|
||||||
describe('MarkupToHtml', function() {
|
describe('MarkupToHtml', function() {
|
||||||
|
|
||||||
|
@@ -1,24 +1,11 @@
|
|||||||
/* eslint-disable no-unused-vars */
|
|
||||||
|
|
||||||
require('app-module-path').addPath(__dirname);
|
|
||||||
|
|
||||||
const os = require('os');
|
const os = require('os');
|
||||||
const { time } = require('lib/time-utils.js');
|
const { filename } = require('lib/path-utils');
|
||||||
const { filename } = require('lib/path-utils.js');
|
const { asyncTest, setupDatabaseAndSynchronizer, switchClient } = require('test-utils.js');
|
||||||
const { asyncTest, fileContentEqual, setupDatabase, setupDatabaseAndSynchronizer, db, synchronizer, fileApi, sleep, clearDatabase, switchClient, syncTargetId, objectsEqual, checkThrowAsync } = require('test-utils.js');
|
|
||||||
const Folder = require('lib/models/Folder.js');
|
|
||||||
const Note = require('lib/models/Note.js');
|
|
||||||
const BaseModel = require('lib/BaseModel.js');
|
|
||||||
const shim = require('lib/shim').default;
|
const shim = require('lib/shim').default;
|
||||||
const MdToHtml = require('lib/joplin-renderer/MdToHtml');
|
const MdToHtml = require('lib/joplin-renderer/MdToHtml').default;
|
||||||
const { enexXmlToMd } = require('lib/import-enex-md-gen.js');
|
|
||||||
const { themeStyle } = require('lib/theme');
|
const { themeStyle } = require('lib/theme');
|
||||||
|
|
||||||
process.on('unhandledRejection', (reason, p) => {
|
function newTestMdToHtml(options:any = null) {
|
||||||
console.log('Unhandled Rejection at: Promise', p, 'reason:', reason);
|
|
||||||
});
|
|
||||||
|
|
||||||
function newTestMdToHtml(options = null) {
|
|
||||||
options = {
|
options = {
|
||||||
ResourceModel: {
|
ResourceModel: {
|
||||||
isResourceUrl: () => false,
|
isResourceUrl: () => false,
|
||||||
@@ -32,7 +19,7 @@ function newTestMdToHtml(options = null) {
|
|||||||
|
|
||||||
describe('MdToHtml', function() {
|
describe('MdToHtml', function() {
|
||||||
|
|
||||||
beforeEach(async (done) => {
|
beforeEach(async (done:Function) => {
|
||||||
await setupDatabaseAndSynchronizer(1);
|
await setupDatabaseAndSynchronizer(1);
|
||||||
await switchClient(1);
|
await switchClient(1);
|
||||||
done();
|
done();
|
||||||
@@ -52,14 +39,14 @@ describe('MdToHtml', function() {
|
|||||||
|
|
||||||
// if (mdFilename !== 'sanitize_9.md') continue;
|
// if (mdFilename !== 'sanitize_9.md') continue;
|
||||||
|
|
||||||
const mdToHtmlOptions = {
|
const mdToHtmlOptions:any = {
|
||||||
bodyOnly: true,
|
bodyOnly: true,
|
||||||
};
|
};
|
||||||
|
|
||||||
if (mdFilename === 'checkbox_alternative.md') {
|
if (mdFilename === 'checkbox_alternative.md') {
|
||||||
mdToHtmlOptions.plugins = {
|
mdToHtmlOptions.plugins = {
|
||||||
checkbox: {
|
checkbox: {
|
||||||
renderingType: 2,
|
checkboxRenderingType: 2,
|
||||||
},
|
},
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
@@ -96,7 +83,7 @@ describe('MdToHtml', function() {
|
|||||||
}));
|
}));
|
||||||
|
|
||||||
it('should return enabled plugin assets', asyncTest(async () => {
|
it('should return enabled plugin assets', asyncTest(async () => {
|
||||||
const pluginOptions = {};
|
const pluginOptions:any = {};
|
||||||
const pluginNames = MdToHtml.pluginNames();
|
const pluginNames = MdToHtml.pluginNames();
|
||||||
|
|
||||||
for (const n of pluginNames) pluginOptions[n] = { enabled: false };
|
for (const n of pluginNames) pluginOptions[n] = { enabled: false };
|
||||||
@@ -126,7 +113,7 @@ describe('MdToHtml', function() {
|
|||||||
// In this case, the HTML contains both the style and
|
// In this case, the HTML contains both the style and
|
||||||
// the rendered markdown wrapped in a DIV.
|
// the rendered markdown wrapped in a DIV.
|
||||||
const result = await mdToHtml.render('just **testing**');
|
const result = await mdToHtml.render('just **testing**');
|
||||||
expect(result.cssStrings.length).toBe(0);
|
expect(result.cssStrings.length).toBeGreaterThan(0);
|
||||||
expect(result.html.indexOf('rendered-md') >= 0).toBe(true);
|
expect(result.html.indexOf('rendered-md') >= 0).toBe(true);
|
||||||
}));
|
}));
|
||||||
|
|
||||||
@@ -137,7 +124,7 @@ describe('MdToHtml', function() {
|
|||||||
// with no wrapper and no style.
|
// with no wrapper and no style.
|
||||||
// The style is instead in the cssStrings property.
|
// The style is instead in the cssStrings property.
|
||||||
const result = await mdToHtml.render('just **testing**', null, { bodyOnly: true });
|
const result = await mdToHtml.render('just **testing**', null, { bodyOnly: true });
|
||||||
expect(result.cssStrings.length).toBe(1);
|
expect(result.cssStrings.length).toBeGreaterThan(0);
|
||||||
expect(result.html.trim()).toBe('just <strong>testing</strong>');
|
expect(result.html.trim()).toBe('just <strong>testing</strong>');
|
||||||
}));
|
}));
|
||||||
|
|
||||||
@@ -147,7 +134,7 @@ describe('MdToHtml', function() {
|
|||||||
// It is similar to the bodyOnly option, excepts that
|
// It is similar to the bodyOnly option, excepts that
|
||||||
// the rendered Markdown is wrapped in a DIV
|
// the rendered Markdown is wrapped in a DIV
|
||||||
const result = await mdToHtml.render('just **testing**', null, { splitted: true });
|
const result = await mdToHtml.render('just **testing**', null, { splitted: true });
|
||||||
expect(result.cssStrings.length).toBe(1);
|
expect(result.cssStrings.length).toBeGreaterThan(0);
|
||||||
expect(result.html.trim()).toBe('<div id="rendered-md"><p>just <strong>testing</strong></p>\n</div>');
|
expect(result.html.trim()).toBe('<div id="rendered-md"><p>just <strong>testing</strong></p>\n</div>');
|
||||||
}));
|
}));
|
||||||
|
|
@@ -1,5 +1,5 @@
|
|||||||
<en-note>
|
<en-note>
|
||||||
<div><a href="joplin://21ca2b948f222a38802940ec7e2e5de3" hash="21ca2b948f222a38802940ec7e2e5de3" type="application/pdf" style="cursor:pointer;" alt="attachment-1">attachment-1</a></div>
|
<div><a href=":/21ca2b948f222a38802940ec7e2e5de3" hash="21ca2b948f222a38802940ec7e2e5de3" type="application/pdf" style="cursor:pointer;" alt="attachment-1">attachment-1</a></div>
|
||||||
<div>
|
<div>
|
||||||
<br>
|
<br>
|
||||||
</div>
|
</div>
|
||||||
|
29
CliClient/tests/fsDriver.ts
Normal file
29
CliClient/tests/fsDriver.ts
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
import FsDriverNode from 'lib/fs-driver-node';
|
||||||
|
import shim from 'lib/shim';
|
||||||
|
const { expectThrow } = require('test-utils.js');
|
||||||
|
|
||||||
|
// On Windows, path.resolve is going to convert a path such as
|
||||||
|
// /tmp/file.txt to c:\tmp\file.txt
|
||||||
|
function platformPath(path:string) {
|
||||||
|
if (shim.isWindows()) {
|
||||||
|
return `C:${path.replace(/\//g, '\\')}`;
|
||||||
|
} else {
|
||||||
|
return path;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
describe('fsDriver', function() {
|
||||||
|
|
||||||
|
it('should resolveRelativePathWithinDir', () => {
|
||||||
|
const fsDriver = new FsDriverNode();
|
||||||
|
expect(fsDriver.resolveRelativePathWithinDir('/test/temp', './my/file.txt')).toBe(platformPath('/test/temp/my/file.txt'));
|
||||||
|
expect(fsDriver.resolveRelativePathWithinDir('/', './test')).toBe(platformPath('/test'));
|
||||||
|
expect(fsDriver.resolveRelativePathWithinDir('/test', 'myfile.txt')).toBe(platformPath('/test/myfile.txt'));
|
||||||
|
expect(fsDriver.resolveRelativePathWithinDir('/test/temp', './mydir/../test.txt')).toBe(platformPath('/test/temp/test.txt'));
|
||||||
|
|
||||||
|
expectThrow(() => fsDriver.resolveRelativePathWithinDir('/test/temp', '../myfile.txt'));
|
||||||
|
expectThrow(() => fsDriver.resolveRelativePathWithinDir('/test/temp', './mydir/../../test.txt'));
|
||||||
|
expectThrow(() => fsDriver.resolveRelativePathWithinDir('/test/temp', '/var/local/no.txt'));
|
||||||
|
});
|
||||||
|
|
||||||
|
});
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user