1
0
mirror of https://github.com/laurent22/joplin.git synced 2026-02-01 07:49:31 +02:00

Compare commits

..

16 Commits

Author SHA1 Message Date
palerdot
10468c912a fix(desktop): hide splash screen for tray start 2023-04-26 15:11:47 +05:30
palerdot
a6d8478679 register hide-splash event before creating main window 2023-04-25 15:06:48 +05:30
palerdot
7f82501a19 feat(desktop): splash screen 2023-04-25 15:01:36 +05:30
palerdot
4973f3c082 splash screen assets 2023-04-24 12:46:05 +05:30
github-actions[bot]
b83165f9e5 @DeeJayLSP has signed the CLA in laurent22/joplin#8077 2023-04-24 04:57:05 +00:00
Laurent Cozic
7706f9058b Chore: Trying to fix CI error "TypeError: Cannot redefine property: performance" 2023-04-23 22:58:43 +01:00
Laurent Cozic
03222ba1b2 Revert "Chore: Trying to fix CI error "TypeError: Cannot redefine property: performance""
This reverts commit d4f49db342.

Wrong fix
2023-04-23 22:56:24 +01:00
Laurent Cozic
d4f49db342 Chore: Trying to fix CI error "TypeError: Cannot redefine property: performance" 2023-04-23 22:43:10 +01:00
Laurent Cozic
40e1b0559e Doc: Allow translating documentation 2023-04-23 22:33:15 +01:00
Laurent Cozic
738f1decbb Chore: Add types to search engine 2023-04-23 10:07:38 +01:00
jcgurango
e5a364d052 Chore: Mobile: Convert note-list.js to NoteList.tsx (#8064) 2023-04-23 10:07:28 +01:00
Laurent Cozic
357a3e2e7b Chore: Add types to search engine 2023-04-23 10:05:13 +01:00
Joplin Bot
af91fd99cc Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-04-22 00:39:14 +00:00
Joplin Bot
3855f60a0d Doc: Auto-update documentation
Auto-updated using release-website.sh
2023-04-21 18:18:40 +00:00
Arun Kumar
079b379e7a Desktop: Resolves #8028: Compress installer to reduce size (#8068) 2023-04-20 09:02:04 +01:00
github-actions[bot]
e23e036677 @Wladefant has signed the CLA in laurent22/joplin#8069 2023-04-19 12:28:56 +00:00
35 changed files with 802 additions and 5424 deletions

View File

@@ -396,6 +396,7 @@ packages/app-mobile/components/NoteEditor/NoteEditor.js
packages/app-mobile/components/NoteEditor/SearchPanel.js
packages/app-mobile/components/NoteEditor/SelectionFormatting.js
packages/app-mobile/components/NoteEditor/types.js
packages/app-mobile/components/NoteList.js
packages/app-mobile/components/ProfileSwitcher/ProfileEditor.js
packages/app-mobile/components/ProfileSwitcher/ProfileSwitcher.js
packages/app-mobile/components/ProfileSwitcher/useProfileConfig.js
@@ -711,6 +712,7 @@ packages/lib/services/searchengine/SearchFilter.test.js
packages/lib/services/searchengine/filterParser.js
packages/lib/services/searchengine/filterParser.test.js
packages/lib/services/searchengine/gotoAnythingStyleQuery.js
packages/lib/services/searchengine/gotoAnythingStyleQuery.test.js
packages/lib/services/searchengine/queryBuilder.js
packages/lib/services/share/ShareService.js
packages/lib/services/share/ShareService.test.js
@@ -872,6 +874,8 @@ packages/tools/website/updateDownloadPage.js
packages/tools/website/updateNews.js
packages/tools/website/utils/applyTranslations.js
packages/tools/website/utils/applyTranslations.test.js
packages/tools/website/utils/convertLinksToLocale.js
packages/tools/website/utils/convertLinksToLocale.test.js
packages/tools/website/utils/frontMatter.js
packages/tools/website/utils/news.js
packages/tools/website/utils/openGraph.js

View File

@@ -180,6 +180,9 @@ cd "$ROOT_DIR/packages/app-desktop"
if [[ $GIT_TAG_NAME = v* ]]; then
echo "Step: Building and publishing desktop application..."
# cd "$ROOT_DIR/packages/tools"
# node bundleDefaultPlugins.js
cd "$ROOT_DIR/packages/app-desktop"
USE_HARD_LINKS=false yarn run dist
elif [[ $IS_LINUX = 1 ]] && [[ $GIT_TAG_NAME = $SERVER_TAG_PREFIX-* ]]; then
echo "Step: Building Docker Image..."

View File

@@ -71,7 +71,9 @@ jobs:
- uses: olegtarasov/get-tag@v2.1
- uses: actions/setup-node@v2
with:
node-version: '18'
# We need to pin the version to 18.15, because 18.16+ fails with this error:
# https://github.com/facebook/react-native/issues/36440
node-version: '18.15.0'
- name: Install Yarn
run: |

4
.gitignore vendored
View File

@@ -383,6 +383,7 @@ packages/app-mobile/components/NoteEditor/NoteEditor.js
packages/app-mobile/components/NoteEditor/SearchPanel.js
packages/app-mobile/components/NoteEditor/SelectionFormatting.js
packages/app-mobile/components/NoteEditor/types.js
packages/app-mobile/components/NoteList.js
packages/app-mobile/components/ProfileSwitcher/ProfileEditor.js
packages/app-mobile/components/ProfileSwitcher/ProfileSwitcher.js
packages/app-mobile/components/ProfileSwitcher/useProfileConfig.js
@@ -698,6 +699,7 @@ packages/lib/services/searchengine/SearchFilter.test.js
packages/lib/services/searchengine/filterParser.js
packages/lib/services/searchengine/filterParser.test.js
packages/lib/services/searchengine/gotoAnythingStyleQuery.js
packages/lib/services/searchengine/gotoAnythingStyleQuery.test.js
packages/lib/services/searchengine/queryBuilder.js
packages/lib/services/share/ShareService.js
packages/lib/services/share/ShareService.test.js
@@ -859,6 +861,8 @@ packages/tools/website/updateDownloadPage.js
packages/tools/website/updateNews.js
packages/tools/website/utils/applyTranslations.js
packages/tools/website/utils/applyTranslations.test.js
packages/tools/website/utils/convertLinksToLocale.js
packages/tools/website/utils/convertLinksToLocale.test.js
packages/tools/website/utils/frontMatter.js
packages/tools/website/utils/news.js
packages/tools/website/utils/openGraph.js

View File

@@ -657,6 +657,16 @@ footer .bottom-links-row p {
font-size: 1.1em;
}
.language-switcher {
display: inline;
}
.language-switcher > button {
border: none;
background-color: transparent;
color: #0557ba;
}
/*****************************************************************
WHAT'S NEW PAGE
*****************************************************************/

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 one or more lines are too long

View File

@@ -421,7 +421,7 @@
</div>
<script
src="{{jsBaseUrl}}/bootstrap5.0.2.min.js"
src="{{jsBaseUrl}}/bootstrap5.0.2.bundle.min.js"
rel="preload"
as="script"
></script>

View File

@@ -85,6 +85,11 @@ https://github.com/laurent22/joplin/blob/dev/{{{sourceMarkdownFile}}}
{{> footer}}
</div>
<script
src="{{jsBaseUrl}}/bootstrap5.0.2.bundle.min.js"
rel="preload"
as="script"
></script>
<script src="{{{assetUrls.js.script}}}"></script>
{{> analytics}}

View File

@@ -17,6 +17,21 @@
<a href="{{baseUrl}}/help/" class="fw500">Help</a>
<a href="{{forumUrl}}" class="fw500">Forum</a>
<a href="{{baseUrl}}/cn/" class="fw500">中文</a>
<!--
<div class="dropdown language-switcher">
<button class="fw500" type="button" id="dropdownMenuButton1" data-bs-toggle="dropdown" aria-expanded="false">
Language
</button>
<ul class="dropdown-menu" aria-labelledby="dropdownMenuButton1">
<li><a class="dropdown-item" href="#">Action</a></li>
<li><a class="dropdown-item" href="#">Another action</a></li>
<li><a class="dropdown-item" href="#">Something else here</a></li>
</ul>
</div>
-->
{{#showJoplinCloudLinks}}
{{> joplinCloudButton}}
{{/showJoplinCloudLinks}}

7
bootstrap.bundle.min.js vendored Normal file

File diff suppressed because one or more lines are too long

View File

@@ -65,6 +65,21 @@ export default class ElectronAppWrapper {
return this.initialCallbackUrl_;
}
private async createSplashScreen() {
const splash = new BrowserWindow({
width: 500,
height: 300,
transparent: true,
frame: false,
alwaysOnTop: true,
});
await splash.loadFile('splash.html');
splash.center();
return splash;
}
public createWindow() {
// Set to true to view errors if the application does not start
const debugEarlyBugs = this.env_ === 'dev' || this.isDebugMode_;
@@ -355,6 +370,12 @@ export default class ElectronAppWrapper {
const alreadyRunning = this.ensureSingleInstance();
if (alreadyRunning) return;
const splash = await this.createSplashScreen();
ipcMain.on('hide-splash', () => {
splash.destroy();
});
this.createWindow();
this.electronApp_.on('before-quit', () => {

View File

@@ -45,6 +45,7 @@ import libCommands from '@joplin/lib/commands/index';
import { homedir } from 'os';
import getDefaultPluginsInfo from '@joplin/lib/services/plugins/defaultPlugins/desktopDefaultPluginsInfo';
const electronContextMenu = require('./services/electron-context-menu');
const ipcRenderer = require('electron').ipcRenderer;
// import populateDatabase from '@joplin/lib/services/debug/populateDatabase';
const commands = mainScreenCommands
@@ -489,6 +490,8 @@ class Application extends BaseApplication {
void AlarmService.garbageCollect();
}, 1000 * 60 * 60);
ipcRenderer.send('hide-splash');
if (Setting.value('startMinimized') && Setting.value('showTrayIcon')) {
// Keep it hidden
} else {

View File

@@ -0,0 +1,11 @@
<svg id="joplin-icon" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 1980 1080" shape-rendering="geometricPrecision" text-rendering="geometricPrecision" style="background-color:#043873">
<style><![CDATA[
#joplin-icon-s-g1 {animation: joplin-icon-s-g1_c_o 500ms linear 1 normal forwards}@keyframes joplin-icon-s-g1_c_o { 0% {opacity: 0} 100% {opacity: 1}}
]]></style>
<defs><linearGradient id="joplin-icon-u-path28-fill" x1="4753.95" y1="366.05" x2="366.04" y2="4753.96" spreadMethod="pad" gradientUnits="userSpaceOnUse" gradientTransform="translate(0 0)"><stop id="joplin-icon-u-path28-fill-0" offset="0%" stop-color="#004caf"/><stop id="joplin-icon-u-path28-fill-1" offset="100%" stop-color="#1f95f8"/></linearGradient></defs><g id="joplin-icon-s-g1" transform="translate(.000001 0)" opacity="0"><g id="joplin-icon-s-g2" transform="translate(89.731006 0)"><g id="joplin-icon-s-g3" transform="translate(37.781477 0)"><g id="joplin-icon-s-g4"><g id="joplin-icon-s-g5"><g id="joplin-icon-u-g10" transform="matrix(.8 0 0-.8 335.310601 744.8)"><g id="joplin-icon-u-g12" transform="matrix(.1 0 0 0.1 0 0)"><g id="joplin-icon-u-g14"><g id="joplin-icon-u-g16"><path id="joplin-icon-u-path28" d="M3873.89,0h-2627.78C560.754,0,0,560.75,0,1246.11v2627.77C0,4559.25,560.754,5120,1246.11,5120h2627.78C4559.25,5120,5120,4559.25,5120,3873.88v-2627.77C5120,560.75,4559.25,0,3873.89,0" fill="url(#joplin-icon-u-path28-fill)"/></g></g><path id="joplin-icon-u-path30" d="M3961.59,4435.23h-1391.41c-13.15,0-23.78-10.64-23.78-23.77v-441.84c0-14.87,12.04-26.92,26.92-26.92h190.77c77.16,0,139.73-59.35,146.43-134.77v-302.93-168.77-1607.48-11.39h-.05c.48-16.84-.19-33.4-1.83-49.71-.18-2.38-.5-4.73-.79-7.09-1.1-9.53-2.32-19.01-4.17-28.29-1.01-5.29-2.44-10.44-3.71-15.65-1.71-6.93-3.09-13.97-5.22-20.75-12.58-40.27-32.47-77.62-59.98-110.5-1.01-1.17-2.26-2.25-3.26-3.41-8.39-9.72-17.2-19.19-26.95-28.06-9.84-8.95-20.26-17.27-31.21-25-77.84-55.14-182.61-79.4-299.67-68.2-149.26,14.03-297.34,81.72-417.03,190.62-119.67,108.89-194.08,243.62-209.48,379.41-13.85,121.48,22.55,228.38,102.42,301.05.21.16.4.31.56.48c3.09,2.77,6.49,5.2,9.67,7.87c57.16,47.89,131.67,76.91,216.7,84.91.96.09,1.88.24,2.79.32c8.95.79,18.07,1.15,27.27,1.49c4.81.16,9.56.5,14.44.54c1.62.02,3.16.19,4.78.19c2.9,0,5.91-.38,8.81-.42c13.4-.21,26.9-.76,40.67-1.94c1.74-.14,3.4-.08,5.19-.24c1.27-.13,2.53-.41,3.8-.54c78-7.82,155.23-31.11,228.52-66.4c1.53-.07,3.3-.54,5.51-1.76c22.34-12.34,26.62.9,27.28,9.65v382.24v282.82c0,19.05-13.25,35.9-31.83,39.99-394.76,86.88-782.08-3.55-1055.38-252.34-238.75-217.18-354.24-530.58-316.82-859.79c33.39-293.23,183.91-574.94,423.88-793.33c233.89-212.79,531.69-345.86,838.88-374.801c42.33-3.918,84.86-5.938,126.36-5.938c293.38,0,565.61,100.598,766.54,283.379c190.34,173.3,304.35,411.27,321.08,670.16l1.55,1697.91h.17v453.97h.06v7.92c1.72,80.12,67.05,144.58,147.61,144.58h190.77c14.86,0,26.92,12.05,26.92,26.92v441.84c0,13.13-10.63,23.77-23.78,23.77" fill="#fff"/></g></g></g></g></g></g><text id="joplin-icon-s-text1" dx="0" dy="0" font-family="&quot;joplin-icon:::Montserrat&quot;" font-size="200" font-weight="500" transform="translate(993.43468 610.410935)" fill="#fff" stroke-width="0"><tspan id="joplin-icon-s-tspan1" y="0" font-weight="500" stroke-width="0"><![CDATA[
Joplin
]]></tspan></text></g>
<style><![CDATA[
@font-face {font-family: 'joplin-icon:::Montserrat';font-style: normal;font-weight: 500;src: url(data:font/ttf;charset=utf-8;base64,AAEAAAAQAQAABAAAR0RFRgBQABAAAAGcAAAALkdQT1OPgpfEAAADLAAAAMJHU1VCs4qylQAAA/AAAADUT1MvMndNXi0AAALMAAAAYFNUQVTlHMwkAAACNAAAAERjbWFwANwBewAAAngAAABUZ2FzcAAAABAAAAEUAAAACGdseWZFHfZ5AAAExAAAAkhoZWFkGBWy5wAAAfwAAAA2aGhlYQkaAhsAAAF4AAAAJGhtdHgSbwNBAAABzAAAAC5sb2NhA64DMAAAARwAAAAabWF4cAAgALYAAAE4AAAAIG5hbWUw7VuXAAAHDAAAAkpwb3N0/58AMgAAAVgAAAAgcHJlcGgGjIUAAAEMAAAAB7gB/4WwBI0AAAEAAf//AA8AAAAUADEAPQBJAFUAYQCHALkA9gD2AQ0BJAAAAAEAAAAMAFkABwBZAAkAAQAAAAAAAAAAAAAAAAADAAMAAwAAAAAAAP+cADIAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAADyP8FAAAGHv9W/OwF+QABAAAAAAAAAAAAAAAAAAAACwABAAIAHgAAAAAAAAAOAAEAAgAAAAwAAAAMAAEAAAACAAIAAQACAAEABAAIAAEAAAJLACgCAf/3ARcASwEXAFsBFwBQARcAWwKpAFsCewAqAqoAWwENAAAAAADxAOsAAAABAAAACAAAOP9XB18PPPUAAwPoAAAAANYL/kYAAAAA3ZxwxP9W/v0F+QP9AAAABgACAAAAAAAAAAEAAQAIAAIAAAAUAAIAAAAkAAJ3Z2h0AQAAAGl0YWwBEwABAAQAEAABAAAAAAEFAfQAAAADAAEAAgEUAAAAAAABAAAAAAACAAAAAwAAABQAAwABAAAAFAAEAEAAAAAMAAgAAgAEACAASgBpAGwAcP//AAAAIABKAGkAbABu////6f+3/5n/mf+YAAEAAAAAAAAAAAAAAAAABAJyAfQABQAAAooCWAAAAEsCigJYAAABXgAyATYAAAAAAAAAAAAAAACgAAL/QAAgewAAAAAAAAAAVUxBAADAAAD7AgPI/wUAAARVAQ4gAAGXAAAAAAIFArwAAAAgAAMAAQAAAAoAKgA4AANERkxUABRjeXJsABRsYXRuABQABAAAAAD//wABAAAAAWtlcm4ACAAAAAEAAAABAAQAAgAIAAEACAACAEIABAAAAGgAUgAFAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAIAAQACAAAABAAIAAIAAQABAAgABAADAAAAAgADAAIAAQACAAEAAQAIAAMAAAAAAAAABAABAAIAAgAAAAEAAAAKAHYAtAADREZMVABiY3lybABebGF0bgAUAAAABUFaRSAAQkNSVCAAOktBWiAAMlRBVCAAKlRSSyAAIgAA//8AAQAEAAD//wABAAMAAP//AAEAAgAA//8AAQABAAD//wABAAAAAAAAAAQAAAAA//8AAAAFbG9jbAA4bG9jbAAybG9jbAAsbG9jbAAmbG9jbAAgAAAAAQACAAAAAQABAAAAAQAAAAAAAQADAAAAAQAEAAUADAAMAAwADAAMAAEAAAABAAgAAQAGAAIAAQABAAIAAgAoAAACIwK8AAMABwAAMxEhESUhESEoAfv+VQFb/qUCvP1ERgIwAAH/9//4AZ4CvAAQAAAXIiYnNxYWMzI1ESM1IREUBsM+bCI6HUkseP0BYG8INDFEKCuOAYlX/iV1dP//AEsAAADMAvUCJgADAAAABwAL/18AAAABAFsAAAC7AhIAAwAAMxEzEVtgAhL97v//AFAAAADGAucCJgADAAAABwAK/18AAAABAFsAAAC7AuYAAwAAMxEzEVtgAub9GgABAFsAAAJSAhcAFgAAATIWFhURIxE0JiMiBgYVESMRMxUnNjYBdkFjOGBLRDNMKWBcDxpsAhcyZk7+zwEmTU4oTjr+7wISjyY0OgAAAgAq//oCUQIXAA8AHwAABSImJjU0NjYzMhYWFRQGBicyNjY1NCYmIyIGBhUUFhYBPlB8SEh8UE99R0d9TzNRLi5RMzNQMDBQBkZ7Tk96RUV5UE96RlQuVTg5Uy4uUzk4VS4AAAMAW/8+AoACFwAPABYAJgAABSImJjU0NjYzMhYWFRQGBgURMxUHFxETMjY2NTQmJiMiBgYVFBYWAXRCbUE/bUROeEZGeP6ZXAYKsTNRLy9RMzJRLy9RBj14Wlp4PER5UVF6RLwC1I97e/6xARAuVTg5Uy4uUzk4VS4AAQDxAnEBZwLnAAsAAAEiJjU0NjMyFhUUBgEsGSIiGRkiIgJxIhkZIiIZGSIAAAEA6wJ4AW0C9QALAAABIiY1NDYzMhYVFAYBLBwlJRwcJSQCeCQaGyQjGhslAAAAAAwAlgADAAEECQAAALABBAADAAEECQABACIA4gADAAEECQACAA4A1AADAAEECQADADYAngADAAEECQAEACIA4gADAAEECQAFABoAhAADAAEECQAGACIAYgADAAEECQAOADQALgADAAEECQEAAAwAIgADAAEECQEFAAwAFgADAAEECQETAAwACgADAAEECQEUAAoAAABSAG8AbQBhAG4ASQB0AGEAbABpAGMATQBlAGQAaQB1AG0AVwBlAGkAZwBoAHQAaAB0AHQAcAA6AC8ALwBzAGMAcgBpAHAAdABzAC4AcwBpAGwALgBvAHIAZwAvAE8ARgBMAE0AbwBuAHQAcwBlAHIAcgBhAHQALQBNAGUAZABpAHUAbQBWAGUAcgBzAGkAbwBuACAAOAAuADAAMAAwADgALgAwADAAMAA7AFUATABBADsATQBvAG4AdABzAGUAcgByAGEAdAAtAE0AZQBkAGkAdQBtAFIAZQBnAHUAbABhAHIATQBvAG4AdABzAGUAcgByAGEAdAAgAE0AZQBkAGkAdQBtAEMAbwBwAHkAcgBpAGcAaAB0ACAAMgAwADEAMQAgAFQAaABlACAATQBvAG4AdABzAGUAcgByAGEAdAAgAFAAcgBvAGoAZQBjAHQAIABBAHUAdABoAG8AcgBzACAAKABoAHQAdABwAHMAOgAvAC8AZwBpAHQAaAB1AGIALgBjAG8AbQAvAEoAdQBsAGkAZQB0AGEAVQBsAGEALwBNAG8AbgB0AHMAZQByAHIAYQB0ACkAAA==) format('truetype');}
]]></style>
</svg>

After

Width:  |  Height:  |  Size: 6.5 KiB

View File

@@ -5,8 +5,7 @@
"main": "main.js",
"private": true,
"scripts": {
"dist": "yarn run bundleDefaultPlugins && yarn run electronRebuild && npx electron-builder",
"bundleDefaultPlugins": "cd ../tools && node bundleDefaultPlugins.js",
"dist": "yarn run electronRebuild && npx electron-builder",
"build": "gulp build",
"postinstall": "yarn run build",
"electronBuilder": "gulp electronBuilder",
@@ -28,6 +27,7 @@
},
"build": {
"appId": "net.cozic.joplin-desktop",
"compression": "maximum",
"productName": "Joplin",
"npmRebuild": false,
"afterSign": "./tools/notarizeMacApp.js",
@@ -91,11 +91,7 @@
"CFBundleURLName": "org.joplinapp.x-callback-url"
}
]
},
"binaries": [
"Contents/Resources/build/defaultPlugins/io.github.jackgruber.backup/7zip-bin/mac/arm64/7za",
"Contents/Resources/build/defaultPlugins/io.github.jackgruber.backup/7zip-bin/mac/x64/7za"
]
}
},
"linux": {
"icon": "../../Assets/LinuxIcons",
@@ -112,8 +108,6 @@
},
"homepage": "https://github.com/laurent22/joplin#readme",
"devDependencies": {
"@electron/notarize": "1.2.3",
"@electron/rebuild": "3.2.10",
"@joplin/tools": "~2.11",
"@testing-library/react-hooks": "8.0.1",
"@types/jest": "29.2.6",
@@ -122,7 +116,9 @@
"@types/react-redux": "7.1.25",
"@types/styled-components": "5.1.26",
"electron": "19.1.4",
"electron-builder": "24.1.2",
"electron-builder": "23.6.0",
"electron-notarize": "1.2.2",
"electron-rebuild": "3.2.9",
"glob": "8.1.0",
"gulp": "4.0.2",
"jest": "29.4.3",
@@ -181,4 +177,4 @@
"taboverride": "4.0.3",
"tinymce": "5.10.6"
}
}
}

View File

@@ -0,0 +1,12 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>JoplinSplashScreen</title>
</head>
<body>
<img src="./build/images/splash-image.svg" alt="joplin-icon">
</body>
</html>

View File

@@ -1,6 +1,6 @@
const fs = require('fs');
const path = require('path');
const electron_notarize = require('@electron/notarize');
const electron_notarize = require('electron-notarize');
const execCommand = require('./execCommand');
function isDesktopAppTag(tagName) {

View File

@@ -1,15 +1,32 @@
const React = require('react');
const Component = React.Component;
const { connect } = require('react-redux');
const { FlatList, Text, StyleSheet, Button, View } = require('react-native');
import { Component } from 'react';
import { connect } from 'react-redux';
import { FlatList, Text, StyleSheet, Button, View } from 'react-native';
import { FolderEntity, NoteEntity } from '@joplin/lib/services/database/types';
import { AppState } from '../utils/types';
const { _ } = require('@joplin/lib/locale');
const { NoteItem } = require('./note-item.js');
const time = require('@joplin/lib/time').default;
const { themeStyle } = require('./global-style.js');
class NoteListComponent extends Component {
constructor() {
super();
interface NoteListProps {
themeId: string;
dispatch: (action: any)=> void;
notesSource: string;
items: NoteEntity[];
folders: FolderEntity[];
noteSelectionEnabled?: boolean;
selectedFolderId?: string;
}
class NoteListComponent extends Component<NoteListProps> {
private rootRef_: FlatList;
private styles_: Record<string, StyleSheet.NamedStyles<any>>;
public constructor(props: NoteListProps) {
super(props);
this.state = {
items: [],
@@ -21,7 +38,7 @@ class NoteListComponent extends Component {
this.createNotebookButton_click = this.createNotebookButton_click.bind(this);
}
styles() {
private styles() {
const themeId = this.props.themeId;
const theme = themeStyle(themeId);
@@ -47,7 +64,7 @@ class NoteListComponent extends Component {
return this.styles_[themeId];
}
createNotebookButton_click() {
private createNotebookButton_click() {
this.props.dispatch({
type: 'NAV_GO',
routeName: 'Folder',
@@ -55,34 +72,14 @@ class NoteListComponent extends Component {
});
}
filterNotes(notes) {
const todoFilter = 'all'; // Setting.value('todoFilter');
if (todoFilter === 'all') return notes;
const now = time.unixMs();
const maxInterval = 1000 * 60 * 60 * 24;
const notRecentTime = now - maxInterval;
const output = [];
for (let i = 0; i < notes.length; i++) {
const note = notes[i];
if (note.is_todo) {
if (todoFilter === 'recent' && note.user_updated_time < notRecentTime && !!note.todo_completed) continue;
if (todoFilter === 'nonCompleted' && !!note.todo_completed) continue;
}
output.push(note);
}
return output;
}
UNSAFE_componentWillReceiveProps(newProps) {
public UNSAFE_componentWillReceiveProps(newProps: NoteListProps) {
// Make sure scroll position is reset when switching from one folder to another or to a tag list.
if (this.rootRef_ && newProps.notesSource !== this.props.notesSource) {
this.rootRef_.scrollToOffset({ offset: 0, animated: false });
}
}
render() {
public render() {
// `enableEmptySections` is to fix this warning: https://github.com/FaridSafi/react-native-gifted-listview/issues/39
if (this.props.items.length) {
@@ -109,7 +106,7 @@ class NoteListComponent extends Component {
}
}
const NoteList = connect(state => {
const NoteList = connect((state: AppState) => {
return {
items: state.notes,
folders: state.folders,
@@ -119,4 +116,4 @@ const NoteList = connect(state => {
};
})(NoteListComponent);
module.exports = { NoteList };
export default NoteList;

View File

@@ -2,7 +2,7 @@ const React = require('react');
import { AppState as RNAppState, View, StyleSheet, NativeEventSubscription } from 'react-native';
import { stateUtils } from '@joplin/lib/reducer';
import { connect } from 'react-redux';
const { NoteList } = require('../note-list.js');
import NoteList from '../NoteList';
import Folder from '@joplin/lib/models/Folder';
import Tag from '@joplin/lib/models/Tag';
import Note from '@joplin/lib/models/Note';
@@ -254,7 +254,7 @@ class NotesScreenComponent extends BaseScreenComponent<any> {
return (
<View style={rootStyle}>
<ScreenHeader title={iconString + title} showBackButton={false} parentComponent={thisComp} sortButton_press={this.sortButton_press} folderPickerOptions={this.folderPickerOptions()} showSearchButton={true} showSideMenuButton={true} />
<NoteList style={this.styles().noteList} />
<NoteList />
{actionButtonComp}
<DialogBox
ref={(dialogbox: any) => {

View File

@@ -431,6 +431,7 @@ describe('services_SearchEngine', () => {
['title:abcd efgh', { _: ['efgh'], title: ['abcd'] }],
['title:abcd', { title: ['abcd'] }],
['"abcd efgh"', { _: ['abcd efgh'] }],
['"abcd efgh" ijkl', { _: ['abcd efgh', 'ijkl'] }],
['title:abcd title:efgh', { title: ['abcd', 'efgh'] }],
];

View File

@@ -5,20 +5,31 @@ import Note from '../../models/Note';
import BaseModel from '../../BaseModel';
import ItemChangeUtils from '../ItemChangeUtils';
import shim from '../../shim';
import filterParser from './filterParser';
import filterParser, { Term } from './filterParser';
import queryBuilder from './queryBuilder';
import { ItemChangeEntity, NoteEntity } from '../database/types';
const { sprintf } = require('sprintf-js');
const { pregQuote, scriptType, removeDiacritics } = require('../../string-utils.js');
enum SearchType {
Auto = 'auto',
Basic = 'basic',
Nonlatin = 'nonlatin',
Fts = 'fts',
}
interface SearchOptions {
searchType: SearchType;
}
export default class SearchEngine {
public static instance_: SearchEngine = null;
public static relevantFields = 'id, title, body, user_created_time, user_updated_time, is_todo, todo_completed, todo_due, parent_id, latitude, longitude, altitude, source_url';
public static SEARCH_TYPE_AUTO = 'auto';
public static SEARCH_TYPE_BASIC = 'basic';
public static SEARCH_TYPE_NONLATIN_SCRIPT = 'nonlatin';
public static SEARCH_TYPE_FTS = 'fts';
public static SEARCH_TYPE_AUTO = SearchType.Auto;
public static SEARCH_TYPE_BASIC = SearchType.Basic;
public static SEARCH_TYPE_NONLATIN_SCRIPT = SearchType.Nonlatin;
public static SEARCH_TYPE_FTS = SearchType.Fts;
public dispatch: Function = (_o: any) => {};
private logger_ = new Logger();
@@ -417,7 +428,7 @@ export default class SearchEngine {
const trimQuotes = (str: string) => str.startsWith('"') ? str.substr(1, str.length - 2) : str;
let allTerms: any[] = [];
let allTerms: Term[] = [];
try {
allTerms = filterParser(query);
@@ -429,7 +440,20 @@ export default class SearchEngine {
const titleTerms = allTerms.filter(x => x.name === 'title' && !x.negated).map(x => trimQuotes(x.value));
const bodyTerms = allTerms.filter(x => x.name === 'body' && !x.negated).map(x => trimQuotes(x.value));
const terms: any = { _: textTerms, 'title': titleTerms, 'body': bodyTerms };
interface ComplexTerm {
type: 'regex' | 'text';
value: string;
scriptType: any;
valueRegex?: RegExp;
}
interface Terms {
_: (string | ComplexTerm)[];
title: (string | ComplexTerm)[];
body: (string | ComplexTerm)[];
}
const terms: Terms = { _: textTerms, 'title': titleTerms, 'body': bodyTerms };
// Filter terms:
// - Convert wildcards to regex
@@ -438,7 +462,9 @@ export default class SearchEngine {
let termCount = 0;
const keys = [];
for (const col in terms) {
for (const col2 in terms) {
const col = col2 as '_' | 'title' | 'body';
if (!terms.hasOwnProperty(col)) continue;
if (!terms[col].length) {
@@ -447,7 +473,7 @@ export default class SearchEngine {
}
for (let i = terms[col].length - 1; i >= 0; i--) {
const term = terms[col][i];
const term = terms[col][i] as string;
// SQlLite FTS doesn't allow "*" queries and neither shall we
if (term === '*') {
@@ -468,12 +494,16 @@ export default class SearchEngine {
}
//
// The object "allTerms" is used for query construction purposes (this contains all the filter terms)
// Since this is used for the FTS match query, we need to normalize text, title and body terms.
// Note, we're not normalizing terms like tag because these are matched using SQL LIKE operator and so we must preserve their diacritics.
// The object "allTerms" is used for query construction purposes (this
// contains all the filter terms) Since this is used for the FTS match
// query, we need to normalize text, title and body terms. Note, we're
// not normalizing terms like tag because these are matched using SQL
// LIKE operator and so we must preserve their diacritics.
//
// The object "terms" only include text, title, body terms and is used for highlighting.
// By not normalizing the text, title, body in "terms", highlighting still works correctly for words with diacritics.
// The object "terms" only include text, title, body terms and is used
// for highlighting. By not normalizing the text, title, body in
// "terms", highlighting still works correctly for words with
// diacritics.
//
allTerms = allTerms.map(x => {
@@ -521,9 +551,9 @@ export default class SearchEngine {
const searchOptions: any = {};
for (const key of parsedQuery.keys) {
if (parsedQuery.terms[key].length === 0) continue;
if ((parsedQuery.terms as any)[key].length === 0) continue;
const term = parsedQuery.terms[key].map((x: any) => x.value).join(' ');
const term = (parsedQuery.terms as any)[key].map((x: Term) => x.value).join(' ');
if (key === '_') searchOptions.anywherePattern = `*${term}*`;
if (key === 'title') searchOptions.titlePattern = `*${term}*`;
if (key === 'body') searchOptions.bodyPattern = `*${term}*`;
@@ -561,12 +591,13 @@ export default class SearchEngine {
return SearchEngine.SEARCH_TYPE_FTS;
}
public async search(searchString: string, options: any = null) {
public async search(searchString: string, options: SearchOptions = null) {
if (!searchString) return [];
options = Object.assign({}, {
options = {
searchType: SearchEngine.SEARCH_TYPE_AUTO,
}, options);
...options,
};
const searchType = this.determineSearchType_(searchString, options.searchType);
const parsedQuery = await this.parseQuery(searchString);

View File

@@ -1,5 +1,5 @@
interface Term {
export interface Term {
name: string;
value: string;
negated: boolean;

View File

@@ -0,0 +1,17 @@
import gotoAnythingStyleQuery from './gotoAnythingStyleQuery';
describe('searchengine/gotoAnythingStyleQuery', () => {
it('should prepare queries', () => {
const testCases: [string, string][] = [
['hello', 'hello*'],
['hello welc', 'hello* welc*'],
];
for (const [input, expected] of testCases) {
const actual = gotoAnythingStyleQuery(input);
expect(actual).toBe(expected);
}
});
});

View File

@@ -41,7 +41,7 @@ async function downloadFile(url: string, outputPath: string) {
export async function extractPlugins(currentDir: string, defaultPluginDir: string, downloadedPluginsNames: PluginIdAndName): Promise<void> {
for (const pluginId of Object.keys(downloadedPluginsNames)) {
await execCommand(`tar xzf ${currentDir}/${downloadedPluginsNames[pluginId]}`, { quiet: true, splitCommandOptions: { handleEscape: false } });
await execCommand(`tar xzf ${currentDir}/${downloadedPluginsNames[pluginId]}`, { quiet: true });
await move(`package/publish/${pluginId}.jpl`, `${defaultPluginDir}/${pluginId}/plugin.jpl`, { overwrite: true });
await move(`package/publish/${pluginId}.json`, `${defaultPluginDir}/${pluginId}/manifest.json`, { overwrite: true });
await remove(`${downloadedPluginsNames[pluginId]}`);
@@ -73,20 +73,6 @@ export const downloadPlugins = async (localPluginsVersions: PluginAndVersion, de
return downloadedPluginsNames;
};
// Mac app signing/notarizing fails if the binaries are inside an archive (plugin.jpl)
// Contents of plugin.jpl are unzipped just for Mac so that binary signing passes through
// ref: https://github.com/laurent22/joplin/pull/8048, https://github.com/laurent22/joplin/pull/8040
const extractMacPlugins = async (defaultPluginDir: string, downloadedPluginsNames: PluginIdAndName) => {
if (process.platform !== 'darwin') return;
for (const pluginId in downloadedPluginsNames) {
const pluginDirectory = `${defaultPluginDir}/${pluginId}`;
const archivePath = `${pluginDirectory}/plugin.jpl`;
await execCommand(`tar xzf ${archivePath} --directory ${pluginDirectory}`, { quiet: true, splitCommandOptions: { handleEscape: false } });
await remove(archivePath);
}
};
async function start(): Promise<void> {
const defaultPluginDir = join(__dirname, '..', '..', 'packages', 'app-desktop', 'build', 'defaultPlugins');
const defaultPluginsInfo = getDefaultPluginsInfo();
@@ -98,7 +84,6 @@ async function start(): Promise<void> {
const localPluginsVersions = await localPluginsVersion(defaultPluginDir, defaultPluginsInfo);
const downloadedPluginNames: PluginIdAndName = await downloadPlugins(localPluginsVersions, defaultPluginsInfo, manifests);
await extractPlugins(__dirname, defaultPluginDir, downloadedPluginNames);
await extractMacPlugins(defaultPluginDir, downloadedPluginNames);
}
if (require.main === module) {

View File

@@ -1,19 +1,20 @@
import { readFileSync, readFile, mkdirpSync, writeFileSync, remove, copy, pathExistsSync } from 'fs-extra';
import { readFileSync, readFile, mkdirpSync, writeFileSync, remove, copy, pathExistsSync, pathExists } from 'fs-extra';
import { rootDir } from '../tool-utils';
import { pressCarouselItems } from './utils/pressCarousel';
import { getMarkdownIt, loadMustachePartials, markdownToPageHtml, renderMustache } from './utils/render';
import { AssetUrls, Env, Partials, PlanPageParams, TemplateParams } from './utils/types';
import { AssetUrls, Env, Locale, Partials, PlanPageParams, TemplateParams } from './utils/types';
import { createFeatureTableMd, getPlans, loadStripeConfig } from '@joplin/lib/utils/joplinCloud';
import { stripOffFrontMatter } from './utils/frontMatter';
import { dirname, basename } from 'path';
import { readmeFileTitle, replaceGitHubByWebsiteLinks } from './utils/parser';
import { extractOpenGraphTags } from './utils/openGraph';
import { extractOpenGraphTags, OpenGraphTags } from './utils/openGraph';
import { readCredentialFileJson } from '@joplin/lib/utils/credentialFiles';
import { getNewsDateString } from './utils/news';
import { parsePoFile, parseTranslations, Translations } from '../utils/translation';
import { countryCodeOnly, setLocale } from '@joplin/lib/locale';
import { setLocale } from '@joplin/lib/locale';
import applyTranslations from './utils/applyTranslations';
import { loadSponsors } from '../utils/loadSponsors';
import convertLinksToLocale from './utils/convertLinksToLocale';
interface BuildConfig {
env: Env;
@@ -23,6 +24,12 @@ const buildConfig = readCredentialFileJson<BuildConfig>('website-build.json', {
env: Env.Prod,
});
const enGbLocale: Locale = {
htmlTranslations: {},
lang: 'en-gb',
pathPrefix: '',
};
const glob = require('glob');
const path = require('path');
const md5File = require('md5-file');
@@ -41,7 +48,7 @@ const partialDir = `${websiteAssetDir}/templates/partials`;
const discussLink = 'https://discourse.joplinapp.org/c/news/9';
let tocMd_: string = null;
let tocHtml_: string = null;
const tocHtml_: Record<string, string> = {};
const tocRegex_ = /<!-- TOC -->([^]*)<!-- TOC -->/;
function tocMd() {
if (tocMd_) return tocMd_;
@@ -61,15 +68,17 @@ async function getDonateLinks() {
return `<div class="donate-links">\n\n${matches[1].trim()}\n\n</div>`;
}
function tocHtml() {
if (tocHtml_) return tocHtml_;
function tocHtml(locale: Locale) {
if (tocHtml_[locale.lang]) return tocHtml_[locale.lang];
const markdownIt = getMarkdownIt();
let md = tocMd();
md = md.replace(/# Table of contents/, '');
md = replaceGitHubByWebsiteLinks(md);
tocHtml_ = markdownIt.render(md);
tocHtml_ = `<div>${tocHtml_}</div>`;
return tocHtml_;
md = convertLinksToLocale(md, locale);
let output = markdownIt.render(md);
output = `<div>${output}</div>`;
tocHtml_[locale.lang] = output;
return output;
}
const baseUrl = '';
@@ -90,14 +99,16 @@ async function getAssetUrls(): Promise<AssetUrls> {
};
}
function defaultTemplateParams(assetUrls: AssetUrls): TemplateParams {
function defaultTemplateParams(assetUrls: AssetUrls, locale: Locale = null): TemplateParams {
if (!locale) locale = enGbLocale;
return {
env: buildConfig.env,
baseUrl,
imageBaseUrl: `${baseUrl}/images`,
cssBaseUrl,
jsBaseUrl,
tocHtml: tocHtml(),
tocHtml: tocHtml(locale),
yyyy: (new Date()).getFullYear().toString(),
templateHtml: mainTemplateHtml,
forumUrl: 'https://discourse.joplinapp.org/',
@@ -109,6 +120,7 @@ function defaultTemplateParams(assetUrls: AssetUrls): TemplateParams {
},
assetUrls,
openGraph: null,
locale,
};
}
@@ -117,7 +129,7 @@ function renderPageToHtml(md: string, targetPath: string, templateParams: Templa
md = md.replace(/# Joplin\n/, '');
templateParams = {
...defaultTemplateParams(templateParams.assetUrls),
...defaultTemplateParams(templateParams.assetUrls, templateParams.locale),
...templateParams,
};
@@ -133,6 +145,7 @@ function renderPageToHtml(md: string, targetPath: string, templateParams: Templa
}
md = replaceGitHubByWebsiteLinks(md);
md = convertLinksToLocale(md, templateParams.locale);
if (templateParams.donateLinksMd) {
md = `${templateParams.donateLinksMd}\n\n${md}`;
@@ -161,8 +174,8 @@ function renderFileToHtml(sourcePath: string, targetPath: string, templateParams
}
}
function makeHomePageMd() {
let md = readFileSync(`${rootDir}/README.md`, 'utf8');
function makeHomePageMd(readmePath: string) {
let md = readFileSync(readmePath, 'utf8');
md = md.replace(tocRegex_, '');
// HACK: GitHub needs the \| or the inline code won't be displayed correctly inside the table,
@@ -216,15 +229,20 @@ const updatePageLanguage = (html: string, lang: string): string => {
return html.replace('<html lang="en-gb">', `<html lang="${lang}">`);
};
// TODO: Add function that process links and add prefix.
async function main() {
const supportedLocales = {
'en_GB': {
htmlTranslations: {},
lang: 'en-gb',
},
const supportedLocales: Record<string, Locale> = {
'en_GB': enGbLocale,
'zh_CN': {
htmlTranslations: parseTranslations(await parsePoFile(`${websiteAssetDir}/locales/zh_CN.po`)),
lang: 'zh-cn',
pathPrefix: 'cn',
},
'fr_FR': {
htmlTranslations: {},
lang: 'fr-fr',
pathPrefix: 'fr',
},
};
@@ -237,34 +255,53 @@ async function main() {
const partials = await loadMustachePartials(partialDir);
const assetUrls = await getAssetUrls();
const readmeMd = makeHomePageMd();
const donateLinksMd = await getDonateLinks();
// =============================================================
// HELP PAGE
// =============================================================
renderPageToHtml(readmeMd, `${docDir}/help/index.html`, {
sourceMarkdownFile: 'README.md',
donateLinksMd,
partials,
sponsors,
assetUrls,
openGraph: {
title: 'Joplin documentation',
description: '',
url: 'https://joplinapp.org/help/',
},
});
// =============================================================
// FRONT PAGE
// =============================================================
for (const [localeName, locale] of Object.entries(supportedLocales)) {
setLocale(localeName);
const pathPrefix = localeName !== 'en_GB' ? `/${countryCodeOnly(localeName).toLowerCase()}` : '';
const pathPrefix = localeName !== 'en_GB' ? `/${locale.pathPrefix}` : '';
// =============================================================
// HELP PAGE
// =============================================================
let readmePath = `${rootDir}/README.md`;
let sourceMarkdownFile = 'README.md';
let targetDocDir = docDir;
if (localeName !== 'en_GB') {
const possibleSource = `${rootDir}/readme/_i18n/${localeName}/README.md`;
if (await pathExists(possibleSource)) {
sourceMarkdownFile = possibleSource;
readmePath = possibleSource;
} else {
console.warn(`Cannot find source file: ${possibleSource}`);
}
targetDocDir = `${docDir}/${locale.pathPrefix}`;
}
const readmeMd = makeHomePageMd(readmePath);
renderPageToHtml(readmeMd, `${targetDocDir}/help/index.html`, {
sourceMarkdownFile,
donateLinksMd,
partials,
sponsors,
assetUrls,
openGraph: {
title: 'Joplin documentation',
description: '',
url: 'https://joplinapp.org/help/',
},
locale,
});
// =============================================================
// FRONT PAGE
// =============================================================
let templateHtml = updatePageLanguage(applyTranslations(frontTemplateHtml, localeName, locale.htmlTranslations), locale.lang);
if (localeName === 'zh_CN') templateHtml = templateHtml.replace(/\/plans/g, '/cn/plans');
@@ -292,22 +329,16 @@ async function main() {
url: 'https://joplinapp.org',
},
});
}
setLocale('en_GB');
// =============================================================
// PLANS PAGE
// =============================================================
for (const [localeName, locale] of Object.entries(supportedLocales)) {
setLocale(localeName);
// =============================================================
// PLANS PAGE
// =============================================================
const planPageFaqMd = await readFile(`${readmeDir}/faq_joplin_cloud.md`, 'utf8');
const planPageFaqHtml = getMarkdownIt().render(planPageFaqMd, {});
const planPageParams: PlanPageParams = {
...defaultTemplateParams(assetUrls),
...defaultTemplateParams(assetUrls, locale),
partials: translatePartials(partials, localeName, locale.htmlTranslations),
templateHtml: applyTranslations(plansTemplateHtml, localeName, locale.htmlTranslations),
plans: getPlans(stripeConfig),
@@ -318,10 +349,8 @@ async function main() {
const planPageContentHtml = renderMustache('', planPageParams);
const pathPrefix = localeName !== 'en_GB' ? `/${countryCodeOnly(localeName).toLowerCase()}` : '';
const templateParams = {
...defaultTemplateParams(assetUrls),
...defaultTemplateParams(assetUrls, locale),
pageName: 'plans',
partials,
showToc: false,
@@ -342,10 +371,20 @@ async function main() {
// Markdown files under /readme
// =============================================================
const mdFiles = glob.sync(`${readmeDir}/**/*.md`).map((f: string) => f.substr(rootDir.length + 1));
const sources = [];
interface SourceInfo {
title: string;
donateLinksMd: string;
showToc: boolean;
openGraph: OpenGraphTags;
sourceMarkdownName?: string;
sourceMarkdownFile?: string;
locale: Locale;
}
const makeTargetBasename = (input: string): string => {
const mdFiles: string[] = glob.sync(`${readmeDir}/**/*.md`).map((f: string) => f.substr(rootDir.length + 1));
const sources: [string, string, SourceInfo][] = [];
const makeTargetBasename = (input: string, pathPrefix: string): string => {
if (isNewsFile(input)) {
const filenameNoExt = basename(input, '.md');
return `news/${filenameNoExt}/index.html`;
@@ -364,34 +403,49 @@ async function main() {
s = s.replace(/readme\//, '');
if (pathPrefix) s = `${pathPrefix}/${s}`;
return s;
}
};
const makeTargetFilePath = (input: string): string => {
return `${docDir}/${makeTargetBasename(input)}`;
const makeTargetFilePath = (input: string, pathPrefix: string): string => {
return `${docDir}/${makeTargetBasename(input, pathPrefix)}`;
};
const makeTargetUrl = (input: string) => {
return `https://joplinapp.org/${makeTargetBasename(input)}`;
const makeTargetUrl = (input: string, pathPrefix: string) => {
return `https://joplinapp.org/${makeTargetBasename(input, pathPrefix)}`;
};
const newsFilePaths: string[] = [];
for (const mdFile of mdFiles) {
const title = await readmeFileTitle(`${rootDir}/${mdFile}`);
const targetFilePath = makeTargetFilePath(mdFile);
const openGraph = await extractOpenGraphTags(mdFile, makeTargetUrl(mdFile));
if (mdFile.startsWith('readme/_i18n')) continue;
const isNews = isNewsFile(mdFile);
if (isNews) newsFilePaths.push(mdFile);
for (const [localeName, locale] of Object.entries(supportedLocales)) {
const title = await readmeFileTitle(`${rootDir}/${mdFile}`);
const targetFilePath = makeTargetFilePath(mdFile, locale.pathPrefix);
const openGraph = await extractOpenGraphTags(mdFile, makeTargetUrl(mdFile, locale.pathPrefix));
sources.push([mdFile, targetFilePath, {
title: title,
donateLinksMd: mdFile === 'readme/donate.md' ? '' : donateLinksMd,
showToc: mdFile !== 'readme/download.md' && !isNews,
openGraph,
}]);
const isNews = isNewsFile(mdFile);
if (isNews) newsFilePaths.push(mdFile);
let sourceFile = mdFile;
if (localeName !== 'en_GB') {
let temp = mdFile.replace(/readme\//, '');
temp = `readme/_i18n/${localeName}/${temp}`;
if (await pathExists(temp)) sourceFile = temp;
}
sources.push([sourceFile, targetFilePath, {
title: title,
donateLinksMd: mdFile === 'readme/donate.md' ? '' : donateLinksMd,
showToc: mdFile !== 'readme/download.md' && !isNews,
openGraph,
locale,
}]);
}
}
for (const source of sources) {
@@ -418,7 +472,7 @@ async function main() {
});
await makeNewsFrontPage(newsFilePaths, `${docDir}/news/index.html`, {
...defaultTemplateParams(assetUrls),
...defaultTemplateParams(assetUrls, null),
title: 'What\'s new',
pageName: 'news',
partials,

View File

@@ -0,0 +1,25 @@
import convertLinksToLocale from './convertLinksToLocale';
describe('convertLinksToLocale', () => {
it('should convert links', async () => {
const tests: [string, any, string][] = [
[
'test [link](/help/link)',
{ pathPrefix: 'fr' },
'test [link](/fr/help/link)',
],
[
'test [link](/help/link) [link2](/link2)',
{ pathPrefix: 'fr' },
'test [link](/fr/help/link) [link2](/fr/link2)',
],
];
for (const [input, locale, expected] of tests) {
const actual = convertLinksToLocale(input, locale);
expect(actual).toBe(expected);
}
});
});

View File

@@ -0,0 +1,9 @@
import { Locale } from './types';
export default (md: string, locale: Locale) => {
if (locale.lang === 'en-gb') return md;
md = md.replace(/\(\//g, `(/${locale.pathPrefix}/`);
return md;
};

View File

@@ -7,6 +7,12 @@ export enum Env {
Prod = 'prod',
}
export interface Locale {
htmlTranslations: Record<string, string>;
lang: string;
pathPrefix: string;
}
export interface GithubUser {
id: string;
}
@@ -62,6 +68,7 @@ export interface TemplateParams {
showBottomLinks?: boolean;
openGraph: OpenGraphTags;
isNews?: boolean;
locale?: Locale;
}
export interface PlanPageParams extends TemplateParams {

View File

@@ -1,6 +1,6 @@
import * as execa from 'execa';
import commandToString from './commandToString';
import splitCommandString, { SplitCommandOptions } from './splitCommandString';
import splitCommandString from './splitCommandString';
import { stdout } from 'process';
interface ExecCommandOptions {
@@ -8,7 +8,6 @@ interface ExecCommandOptions {
showStdout?: boolean;
showStderr?: boolean;
quiet?: boolean;
splitCommandOptions?: SplitCommandOptions | null;
}
export default async (command: string | string[], options: ExecCommandOptions | null = null): Promise<string> => {
@@ -34,7 +33,7 @@ export default async (command: string | string[], options: ExecCommandOptions |
}
}
const args: string[] = typeof command === 'string' ? splitCommandString(command, options.splitCommandOptions || null) : command as string[];
const args: string[] = typeof command === 'string' ? splitCommandString(command) : command as string[];
const executableName = args[0];
args.splice(0, 1);
const promise = execa(executableName, args);

View File

@@ -1,8 +1,4 @@
export interface SplitCommandOptions {
handleEscape?: boolean;
}
export default (command: string, options: SplitCommandOptions | null = null) => {
export default (command: string, options: any = null) => {
options = options || {};
if (!('handleEscape' in options)) {
options.handleEscape = true;

View File

@@ -0,0 +1,74 @@
<!-- DONATELINKS -->
[! [Faire un don via PayPal] (https://raw.githubusercontent.com/laurent22/joplin/dev/Assets/WebsiteAssets/images/badges/Donate-PayPal-green.svg)](https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=E8JMYD2LQ8MMA&lc=GB&item_name=Joplin+Development¤cy_code=EUR&bn=PP%2dDonationsBF%3abtn_donateCC_LG%2egif%3aNonHosted) [! [Sponsor sur GitHub] (https://raw.githubusercontent.com/laurent22/joplin/dev/Assets/WebsiteAssets/images/badges/GitHub-Badge.svg)](https://github.com/sponsors/laurent22/) [! [Devenez mécène] (https://raw.githubusercontent.com/laurent22/joplin/dev/Assets/WebsiteAssets/images/badges/Patreon-Badge.svg)](https://www.patreon.com/joplin) [! [Faire un don en utilisant un IBAN] (https://raw.githubusercontent.com/laurent22/joplin/dev/Assets/WebsiteAssets/images/badges/Donate-IBAN.svg)](https://joplinapp.org/donate/#donations)
<!-- DONATELINKS -->
* * *
**TEST ONLY**
* * *
[test link](/spec/e2ee)
<img width="64" src="https://raw.githubusercontent.com/laurent22/joplin/dev/Assets/LinuxIcons/256x256.png" align="left" />**Joplin** est une application gratuite et open source de prise de notes et de tâches, qui peut gérer un grand nombre de notes organisées dans des carnets de notes. Les notes sont consultables, peuvent être copiées, balisées et modifiées directement depuis les applications ou depuis votre propre éditeur de texte. Les notes sont au format [Markdown] (#markdown).
Les notes exportées depuis Evernote [peuvent être importées] (#importing) dans Joplin, y compris le contenu formaté (qui est converti en Markdown), les ressources (images, pièces jointes, etc.) et les métadonnées complètes (géolocalisation, heure de mise à jour, heure de création, etc.). Les fichiers Markdown simples peuvent également être importés.
Les notes peuvent être [synchronisées] (#synchronisation) en toute sécurité à l'aide du [chiffrement de bout en bout] (#encryption) avec divers services cloud, notamment Nextcloud, Dropbox, OneDrive et [Joplin Cloud] (https://joplinapp.org/plans/).
La recherche en texte intégral est disponible sur toutes les plateformes pour trouver rapidement les informations dont vous avez besoin. L'application peut être personnalisée à l'aide de plugins et de thèmes, et vous pouvez également créer facilement le vôtre.
L'application est disponible pour Windows, Linux, macOS, Android et iOS. Un [Web Clipper] (https://github.com/laurent22/joplin/blob/dev/readme/clipper.md), qui permet d'enregistrer des pages Web et des captures d'écran depuis votre navigateur, est également disponible pour [Firefox] (https://addons.mozilla.org/firefox/addon/joplin-web-clipper/) et [Chrome] (https://chrome.google.com/webstore/detail/joplin-web-clipper/alofnhikmmkdbbbgpnglcpdollgjjfek?hl=en-GB).
<div class="top-screenshot"></div><img src="https://raw.githubusercontent.com/laurent22/joplin/dev/Assets/WebsiteAssets/images/home-top-img.png" style="max-width: 100%; max-height: 35em;">
# Installation
Trois types d'applications sont disponibles : pour **bureau** (Windows, macOS et Linux), pour **mobile** (Android et iOS) et pour **terminal** (Windows, macOS, Linux et FreeBSD). Toutes les applications disposent d'interfaces utilisateur similaires et peuvent se synchroniser entre elles.
## Applications de bureau
Système d'exploitation | Télécharger
---|---
Windows (32 et 64 bits) | <a href='https://github.com/laurent22/joplin/releases/download/v2.9.17/Joplin-Setup-2.9.17.exe'><img alt='Get it on Windows' width="134px" src='https://raw.githubusercontent.com/laurent22/joplin/dev/Assets/WebsiteAssets/images/BadgeWindows.png'/></a>
MacOS | <a href='https://github.com/laurent22/joplin/releases/download/v2.9.17/Joplin-2.9.17.dmg'><img alt='Get it on macOS' width="134px" src='https://raw.githubusercontent.com/laurent22/joplin/dev/Assets/WebsiteAssets/images/BadgeMacOS.png'/></a>
Linux | <a href='https://github.com/laurent22/joplin/releases/download/v2.9.17/Joplin-2.9.17.AppImage'><img alt='Get it on Linux' width="134px" src='https://raw.githubusercontent.com/laurent22/joplin/dev/Assets/WebsiteAssets/images/BadgeLinux.png'/></a>
<a href='https://github.com/laurent22/joplin/releases/download/v2.9.17/JoplinPortable.exe'>**Sous Windows**, vous pouvez également utiliser la version portable.</a> L' [application portable] (https://en.wikipedia.org/wiki/Portable_application) permet d'installer le logiciel sur un appareil portable tel qu'une clé USB. Copiez simplement le fichier JoplinPortable.exe dans n'importe quel répertoire de cette clé USB ; l'application créera alors un répertoire appelé « JoplinProfile » à côté du fichier exécutable.
**Sous Linux**, la méthode recommandée est d'utiliser le script d'installation suivant car il gérera également l'icône du bureau :
<pre><code style="word-break: break-all">wget -O - https://raw.githubusercontent.com/laurent22/joplin/dev/Joplin_install_and_update.sh | bash</code></pre>
## Applications mobiles
Système d'exploitation | Télécharger | Alt. Télécharger
---|---|---
Android | <a href='https://play.google.com/store/apps/details?id=net.cozic.joplin&utm_source=GitHub&utm_campaign=README&pcampaignid=MKT-Other-global-all-co-prtnr-py-PartBadge-Mar2515-1'><img alt='Get it on Google Play' height="40px" src='https://raw.githubusercontent.com/laurent22/joplin/dev/Assets/WebsiteAssets/images/BadgeAndroid.png'/></a>| ou téléchargez le fichier APK : [64 bits] (https://github.com/laurent22/joplin-android/releases/download/android-v2.9.8/joplin-v2.9.8.apk) [32 bits] ( https://github.com/laurent22/joplin-android/releases/download/android-v2.9.8/joplin-v2.9.8-32bit.apk)
iOS | <a href='https://itunes.apple.com/us/app/joplin/id1315599797'><img alt='Get it on the App Store' height="40px" src='https://raw.githubusercontent.com/laurent22/joplin/dev/Assets/WebsiteAssets/images/BadgeIOS.png'/></a>| -
## Application du terminal
Système d'exploitation | Méthode
-----------------|----------------
macOS, Linux ou Windows (via [WSL] (https://msdn.microsoft.com/en-us/commandline/wsl/faq?f=255&MSPPError=-2147217396)) | **Important :** Tout d'abord, [installez Node 12+] (https://nodejs.org/en/download/package-manager/). <br/><br/><br><br>`NPM_CONFIG_PREFIX=~/.joplin-bin npm install -g joplin` `sudo ln -s ~/.joplin-bin/bin/joplin /usr/bin/joplin `Par défaut, le binaire de l'application sera installé sous <br/> `~/.joplin-bin`. Vous pouvez modifier ce répertoire si nécessaire. Sinon, si vos autorisations npm sont configurées comme décrit [ici] (https://docs.npmjs.com/getting-started/fixing-npm-permissions#option-2-change-npms-default-directory-to-another-directory) (Option 2), il suffit d'exécuter `npm -g install joplin`.
Pour le démarrer, tapez `joplin`.
Pour des informations d'utilisation, veuillez consulter la [Documentation complète de l'application Joplin Terminal] (https://joplinapp.org/terminal/).
## Web Clipper
Le Web Clipper est une extension de navigateur qui vous permet d'enregistrer des pages Web et des captures d'écran à partir de votre navigateur. Pour plus d'informations sur son installation et son utilisation, consultez la [Page d'aide de Web Clipper] (https://github.com/laurent22/joplin/blob/dev/readme/clipper.md).
## Distributions alternatives non officielles
Il existe un certain nombre de distributions alternatives non officielles de Joplin. Si vous ne voulez pas ou ne pouvez pas utiliser appimages ou l'une des autres versions officiellement prises en charge, vous pouvez envisager de les utiliser.
Cependant, ils sont assortis d'une mise en garde dans la mesure où ils ne sont pas officiellement pris en charge, de sorte que certains problèmes peuvent ne pas être pris en charge par le projet principal. Les demandes d'assistance, les rapports de bogues et les conseils généraux devraient plutôt être adressés aux responsables de ces distributions.
Une liste de ces distributions gérée par la communauté est disponible ici : [Distributions Joplin non officielles] (https://discourse.joplinapp.org/t/unofficial-alternative-joplin-distributions/23703)
# Sponsors
<!-- SPONSORS-ORG -->
</a><a href="https://seirei.ne.jp"><img title="Serei Network" width="256" src="https://joplinapp.org/images/sponsors/SeireiNetwork.png"/><a href="https://www.hosting.de/nextcloud/?mtm_campaign=managed-nextcloud&mtm_kwd=joplinapp&mtm_source=joplinapp-webseite&mtm_medium=banner"><img title="Hosting.de" width="256" src="https://joplinapp.org/images/sponsors/HostingDe.png"/></a><a href="https://residence-greece.com/"><img title="Greece Golden Visa" width="256" src="https://joplinapp.org/images/sponsors/ResidenceGreece.jpg"/></a> <a href="https://grundstueckspreise.info/"><img title="SP Software GmbH" width="256" src="https://joplinapp.org/images/sponsors/Grundstueckspreise.png"/></a>
<!-- SPONSORS-ORG -->

View File

@@ -0,0 +1,5 @@
# Application de bureau
<img src="https://raw.githubusercontent.com/laurent22/joplin/dev/Assets/WebsiteAssets/images/DemoDesktop.png" style="width: 100%">
Pour des informations générales relatives à toutes les applications, voir aussi [la page de garde](https://joplinapp.org).

View File

@@ -447,6 +447,22 @@
"created_at": "2023-04-11T19:02:23Z",
"repoId": 79162682,
"pullRequestNo": 8042
},
{
"name": "Wladefant",
"id": 79611093,
"comment_id": 1514649134,
"created_at": "2023-04-19T12:28:22Z",
"repoId": 79162682,
"pullRequestNo": 8069
},
{
"name": "DeeJayLSP",
"id": 60024671,
"comment_id": 1519381301,
"created_at": "2023-04-24T04:56:51Z",
"repoId": 79162682,
"pullRequestNo": 8077
}
]
}

551
yarn.lock
View File

@@ -3779,24 +3779,6 @@ __metadata:
languageName: node
linkType: hard
"@electron/asar@npm:^3.2.1":
version: 3.2.3
resolution: "@electron/asar@npm:3.2.3"
dependencies:
"@types/glob": ^7.1.1
chromium-pickle-js: ^0.2.0
commander: ^5.0.0
glob: ^7.1.6
minimatch: ^3.0.4
dependenciesMeta:
"@types/glob":
optional: true
bin:
asar: bin/asar.js
checksum: 67ce7170fc4fc1d4157c03e4d2a03cba461835f77df449d659a71eaf69a412a765bf27198935d8d4ce6c9070bb563dd9fe2a2618863830c0ec2708e53d48dc5c
languageName: node
linkType: hard
"@electron/get@npm:^1.14.1":
version: 1.14.1
resolution: "@electron/get@npm:1.14.1"
@@ -3819,57 +3801,6 @@ __metadata:
languageName: node
linkType: hard
"@electron/notarize@npm:1.2.3, @electron/notarize@npm:^1.2.3":
version: 1.2.3
resolution: "@electron/notarize@npm:1.2.3"
dependencies:
debug: ^4.1.1
fs-extra: ^9.0.1
checksum: 2e2d930a116948492616eb3c51df48f41ae5a9eac83c4e7de96e93d7f9c725b5e6c8e02c3b2644fe801e4b711b9d3f4f2a6f9ac8ab95b0f6eb1189c490981523
languageName: node
linkType: hard
"@electron/osx-sign@npm:^1.0.4":
version: 1.0.4
resolution: "@electron/osx-sign@npm:1.0.4"
dependencies:
compare-version: ^0.1.2
debug: ^4.3.4
fs-extra: ^10.0.0
isbinaryfile: ^4.0.8
minimist: ^1.2.6
plist: ^3.0.5
bin:
electron-osx-flat: bin/electron-osx-flat.js
electron-osx-sign: bin/electron-osx-sign.js
checksum: 0d7382922eabd06ee53b538e15050c7662773ba3fd07cc51ee86f5ec63872685c3b6c8678c967afe7efbee1b393d555fb5553137f7a76af514b30d102568d63e
languageName: node
linkType: hard
"@electron/rebuild@npm:3.2.10, @electron/rebuild@npm:^3.2.10":
version: 3.2.10
resolution: "@electron/rebuild@npm:3.2.10"
dependencies:
"@malept/cross-spawn-promise": ^2.0.0
chalk: ^4.0.0
debug: ^4.1.1
detect-libc: ^2.0.1
fs-extra: ^10.0.0
got: ^11.7.0
lzma-native: ^8.0.5
node-abi: ^3.0.0
node-api-version: ^0.1.4
node-gyp: ^9.0.0
ora: ^5.1.0
semver: ^7.3.5
tar: ^6.0.5
yargs: ^17.0.1
bin:
electron-rebuild: lib/src/cli.js
checksum: 5bbcc81f1473d29ef5e7aa8826dc6a7bb9c7846d95364687d69e84e925e9b8f38e6b1c9c9a448b9132654ffe3cae2863bdb2e11e585ca502ac90ab29f4d44649
languageName: node
linkType: hard
"@electron/remote@npm:2.0.9":
version: 2.0.9
resolution: "@electron/remote@npm:2.0.9"
@@ -3879,18 +3810,18 @@ __metadata:
languageName: node
linkType: hard
"@electron/universal@npm:1.3.4":
version: 1.3.4
resolution: "@electron/universal@npm:1.3.4"
"@electron/universal@npm:1.2.1":
version: 1.2.1
resolution: "@electron/universal@npm:1.2.1"
dependencies:
"@electron/asar": ^3.2.1
"@malept/cross-spawn-promise": ^1.1.0
asar: ^3.1.0
debug: ^4.3.1
dir-compare: ^3.0.0
dir-compare: ^2.4.0
fs-extra: ^9.0.1
minimatch: ^3.0.4
plist: ^3.0.4
checksum: 2abc051d9ad3faa87406a72829817dc8d432018ad19cde021b265947e2733190ef7024d50e80690f2bfbcde363332dc3ff6c366ecc6d30e63a826e4c2cf6728a
checksum: 9a7d98cf2b8414ff0274384fef1b72b5a545a0feb7ce03163d2e2ee1b13e4f7064dfe7147cdd652708a1314d1b5e68acdd907847a1747866ec8d2d3e757ec1f7
languageName: node
linkType: hard
@@ -4904,8 +4835,6 @@ __metadata:
7zip-bin-linux: ^1.0.1
7zip-bin-mac: ^1.0.1
7zip-bin-win: ^2.1.1
"@electron/notarize": 1.2.3
"@electron/rebuild": 3.2.10
"@electron/remote": 2.0.9
"@fortawesome/fontawesome-free": 5.15.4
"@joeattardi/emoji-button": 4.6.4
@@ -4926,7 +4855,9 @@ __metadata:
countable: 3.0.1
debounce: 1.2.1
electron: 19.1.4
electron-builder: 24.1.2
electron-builder: 23.6.0
electron-notarize: 1.2.2
electron-rebuild: 3.2.9
electron-window-state: 5.0.3
formatcoords: 1.1.3
fs-extra: 11.1.1
@@ -7203,9 +7134,9 @@ __metadata:
linkType: hard
"@sindresorhus/is@npm:^4.0.0":
version: 4.6.0
resolution: "@sindresorhus/is@npm:4.6.0"
checksum: 83839f13da2c29d55c97abc3bc2c55b250d33a0447554997a85c539e058e57b8da092da396e252b11ec24a0279a0bed1f537fa26302209327060643e327f81d2
version: 4.2.0
resolution: "@sindresorhus/is@npm:4.2.0"
checksum: 59040dfb75c2eb6ab76e8c7ac10b7f7f6ba740f0b5ac618a89a8bcdbaf923836a8e998078d59d81f6f13f4b6bbe15bfe1bca962c877edcbe9160d1c100c56fd7
languageName: node
linkType: hard
@@ -7486,14 +7417,14 @@ __metadata:
linkType: hard
"@types/cacheable-request@npm:^6.0.1":
version: 6.0.3
resolution: "@types/cacheable-request@npm:6.0.3"
version: 6.0.2
resolution: "@types/cacheable-request@npm:6.0.2"
dependencies:
"@types/http-cache-semantics": "*"
"@types/keyv": ^3.1.4
"@types/keyv": "*"
"@types/node": "*"
"@types/responselike": ^1.0.0
checksum: d9b26403fe65ce6b0cb3720b7030104c352bcb37e4fac2a7089a25a97de59c355fa08940658751f2f347a8512aa9d18fdb66ab3ade835975b2f454f2d5befbd9
"@types/responselike": "*"
checksum: 667d25808dbf46fe104d6f029e0281ff56058d50c7c1b9182774b3e38bb9c1124f56e4c367ba54f92dbde2d1cc573f26eb0e9748710b2822bc0fd1e5498859c6
languageName: node
linkType: hard
@@ -7525,6 +7456,15 @@ __metadata:
languageName: node
linkType: hard
"@types/debug@npm:^4.1.6":
version: 4.1.7
resolution: "@types/debug@npm:4.1.7"
dependencies:
"@types/ms": "*"
checksum: 0a7b89d8ed72526858f0b61c6fd81f477853e8c4415bb97f48b1b5545248d2ae389931680b94b393b993a7cfe893537a200647d93defe6d87159b96812305adc
languageName: node
linkType: hard
"@types/eslint-scope@npm:^3.7.0":
version: 3.7.2
resolution: "@types/eslint-scope@npm:3.7.2"
@@ -7601,7 +7541,7 @@ __metadata:
languageName: node
linkType: hard
"@types/fs-extra@npm:9.0.13":
"@types/fs-extra@npm:9.0.13, @types/fs-extra@npm:^9.0.11":
version: 9.0.13
resolution: "@types/fs-extra@npm:9.0.13"
dependencies:
@@ -7781,7 +7721,7 @@ __metadata:
languageName: node
linkType: hard
"@types/keyv@npm:^3.1.1":
"@types/keyv@npm:*, @types/keyv@npm:^3.1.1":
version: 3.1.3
resolution: "@types/keyv@npm:3.1.3"
dependencies:
@@ -7790,15 +7730,6 @@ __metadata:
languageName: node
linkType: hard
"@types/keyv@npm:^3.1.4":
version: 3.1.4
resolution: "@types/keyv@npm:3.1.4"
dependencies:
"@types/node": "*"
checksum: e009a2bfb50e90ca9b7c6e8f648f8464067271fd99116f881073fa6fa76dc8d0133181dd65e6614d5fb1220d671d67b0124aef7d97dc02d7e342ab143a47779d
languageName: node
linkType: hard
"@types/koa-compose@npm:*":
version: 3.2.5
resolution: "@types/koa-compose@npm:3.2.5"
@@ -7885,6 +7816,13 @@ __metadata:
languageName: node
linkType: hard
"@types/ms@npm:*":
version: 0.7.31
resolution: "@types/ms@npm:0.7.31"
checksum: daadd354aedde024cce6f5aa873fefe7b71b22cd0e28632a69e8b677aeb48ae8caa1c60e5919bb781df040d116b01cb4316335167a3fc0ef6a63fa3614c0f6da
languageName: node
linkType: hard
"@types/mustache@npm:4.2.2":
version: 4.2.2
resolution: "@types/mustache@npm:4.2.2"
@@ -8138,7 +8076,7 @@ __metadata:
languageName: node
linkType: hard
"@types/responselike@npm:^1.0.0":
"@types/responselike@npm:*, @types/responselike@npm:^1.0.0":
version: 1.0.0
resolution: "@types/responselike@npm:1.0.0"
dependencies:
@@ -8269,6 +8207,15 @@ __metadata:
languageName: node
linkType: hard
"@types/yargs@npm:^17.0.1":
version: 17.0.7
resolution: "@types/yargs@npm:17.0.7"
dependencies:
"@types/yargs-parser": "*"
checksum: 520e803720b2a626338c0e2b61825dd1b956910fec4d855018c17e62cf9fb41eb67bcf122ba5c6fb569b1bfac73520d5d73e8be502b87f9a551619df441b1875
languageName: node
linkType: hard
"@types/yargs@npm:^17.0.8":
version: 17.0.10
resolution: "@types/yargs@npm:17.0.10"
@@ -9255,39 +9202,37 @@ __metadata:
languageName: node
linkType: hard
"app-builder-lib@npm:24.1.2":
version: 24.1.2
resolution: "app-builder-lib@npm:24.1.2"
"app-builder-lib@npm:23.6.0":
version: 23.6.0
resolution: "app-builder-lib@npm:23.6.0"
dependencies:
7zip-bin: ~5.1.1
"@develar/schema-utils": ~2.6.5
"@electron/notarize": ^1.2.3
"@electron/osx-sign": ^1.0.4
"@electron/rebuild": ^3.2.10
"@electron/universal": 1.3.4
"@electron/universal": 1.2.1
"@malept/flatpak-bundler": ^0.4.0
async-exit-hook: ^2.0.1
bluebird-lst: ^1.0.9
builder-util: 24.1.2
builder-util-runtime: 9.2.0
builder-util: 23.6.0
builder-util-runtime: 9.1.1
chromium-pickle-js: ^0.2.0
debug: ^4.3.4
ejs: ^3.1.8
electron-publish: 24.1.2
ejs: ^3.1.7
electron-osx-sign: ^0.6.0
electron-publish: 23.6.0
form-data: ^4.0.0
fs-extra: ^10.1.0
hosted-git-info: ^4.1.0
is-ci: ^3.0.0
isbinaryfile: ^5.0.0
isbinaryfile: ^4.0.10
js-yaml: ^4.1.0
lazy-val: ^1.0.5
minimatch: ^5.1.1
read-config-file: 6.3.2
minimatch: ^3.1.2
read-config-file: 6.2.0
sanitize-filename: ^1.6.3
semver: ^7.3.8
tar: ^6.1.12
semver: ^7.3.7
tar: ^6.1.11
temp-file: ^3.4.0
checksum: 3848417037c71a8e6322c8b3b5b2835eb49bbbbeca20fd8e6c241a7bba00c313db4152d03693bce1feb70c07637514f1a1be7c2fb1858929a146f9550f3c8705
checksum: da3cc9f24e127add651197076c5fa2f68bc7979bcd6a441df7f69629e96bf3aca3118d61c63a85d382a824748f8056a7639464f07b1ded09db53ff1c4b3101be
languageName: node
linkType: hard
@@ -9671,6 +9616,24 @@ __metadata:
languageName: node
linkType: hard
"asar@npm:^3.1.0":
version: 3.1.0
resolution: "asar@npm:3.1.0"
dependencies:
"@types/glob": ^7.1.1
chromium-pickle-js: ^0.2.0
commander: ^5.0.0
glob: ^7.1.6
minimatch: ^3.0.4
dependenciesMeta:
"@types/glob":
optional: true
bin:
asar: bin/asar.js
checksum: facc80845639fa4f9e1d1aa40b96adbd1e8b6fee0725d287e8c8e30a69b235cd5b7131b7b09ff700da06c919dd0595b373e372c55722808f983fdb71ef0d5399
languageName: node
linkType: hard
"asn1.js@npm:^5.2.0":
version: 5.4.1
resolution: "asn1.js@npm:5.4.1"
@@ -10364,7 +10327,7 @@ __metadata:
languageName: node
linkType: hard
"bluebird@npm:^3.5.1, bluebird@npm:^3.5.3, bluebird@npm:^3.5.5":
"bluebird@npm:^3.5.0, bluebird@npm:^3.5.1, bluebird@npm:^3.5.3, bluebird@npm:^3.5.5":
version: 3.7.2
resolution: "bluebird@npm:3.7.2"
checksum: 869417503c722e7dc54ca46715f70e15f4d9c602a423a02c825570862d12935be59ed9c7ba34a9b31f186c017c23cac6b54e35446f8353059c101da73eac22ef
@@ -10713,6 +10676,23 @@ __metadata:
languageName: node
linkType: hard
"buffer-alloc-unsafe@npm:^1.1.0":
version: 1.1.0
resolution: "buffer-alloc-unsafe@npm:1.1.0"
checksum: c5e18bf51f67754ec843c9af3d4c005051aac5008a3992938dda1344e5cfec77c4b02b4ca303644d1e9a6e281765155ce6356d85c6f5ccc5cd21afc868def396
languageName: node
linkType: hard
"buffer-alloc@npm:^1.2.0":
version: 1.2.0
resolution: "buffer-alloc@npm:1.2.0"
dependencies:
buffer-alloc-unsafe: ^1.1.0
buffer-fill: ^1.0.0
checksum: 560cd27f3cbe73c614867da373407d4506309c62fe18de45a1ce191f3785ec6ca2488d802ff82065798542422980ca25f903db078c57822218182c37c3576df5
languageName: node
linkType: hard
"buffer-crc32@npm:~0.2.3":
version: 0.2.13
resolution: "buffer-crc32@npm:0.2.13"
@@ -10720,13 +10700,20 @@ __metadata:
languageName: node
linkType: hard
"buffer-equal@npm:^1.0.0":
"buffer-equal@npm:1.0.0, buffer-equal@npm:^1.0.0":
version: 1.0.0
resolution: "buffer-equal@npm:1.0.0"
checksum: c63a62d25ffc6f3a7064a86dd0d92d93a32d03b14f22d17374790bc10e94bca2312302895fdd28a2b0060999d4385cf90cbf6ad1a6678065156c664016d3be45
languageName: node
linkType: hard
"buffer-fill@npm:^1.0.0":
version: 1.0.0
resolution: "buffer-fill@npm:1.0.0"
checksum: c29b4723ddeab01e74b5d3b982a0c6828f2ded49cef049ddca3dac661c874ecdbcecb5dd8380cf0f4adbeb8cff90a7de724126750a1f1e5ebd4eb6c59a1315b1
languageName: node
linkType: hard
"buffer-from@npm:^1.0.0":
version: 1.1.2
resolution: "buffer-from@npm:1.1.2"
@@ -10779,36 +10766,38 @@ __metadata:
languageName: node
linkType: hard
"builder-util-runtime@npm:9.2.0":
version: 9.2.0
resolution: "builder-util-runtime@npm:9.2.0"
"builder-util-runtime@npm:9.1.1":
version: 9.1.1
resolution: "builder-util-runtime@npm:9.1.1"
dependencies:
debug: ^4.3.4
sax: ^1.2.4
checksum: 06af106bd3c1917be7a043a086924ea3358c4e5b7fe4d5d48f94f6b8ac8baf0afc57f7e33c7743a2bdf931abe48dd658f282caf840e5cd37367c923f430e1b54
checksum: 3458f9c8accad6e934c841cffa93f5d4b342c22b10b9c1a2eb3fd44ca96ea2c662b1048f9a075da9b8a4fada17206887b7e92ebdca331b1071520916e013e245
languageName: node
linkType: hard
"builder-util@npm:24.1.2":
version: 24.1.2
resolution: "builder-util@npm:24.1.2"
"builder-util@npm:23.6.0":
version: 23.6.0
resolution: "builder-util@npm:23.6.0"
dependencies:
7zip-bin: ~5.1.1
"@types/debug": ^4.1.6
"@types/fs-extra": ^9.0.11
app-builder-bin: 4.0.0
bluebird-lst: ^1.0.9
builder-util-runtime: 9.2.0
chalk: ^4.1.2
builder-util-runtime: 9.1.1
chalk: ^4.1.1
cross-spawn: ^7.0.3
debug: ^4.3.4
fs-extra: ^10.1.0
fs-extra: ^10.0.0
http-proxy-agent: ^5.0.0
https-proxy-agent: ^5.0.1
https-proxy-agent: ^5.0.0
is-ci: ^3.0.0
js-yaml: ^4.1.0
source-map-support: ^0.5.19
stat-mode: ^1.0.0
temp-file: ^3.4.0
checksum: 83dc3f7b7152bc6b06edb8ac3388fa24f86b3603742709dfbcde5606293651e4aff0c626e00366d8c0320156a92f48ab3297b67178688ecfc8a653241e7b7b42
checksum: 138fb9abed01ea2e5ac895e6a6ed75310ca6c89e0050483c81801b052f61b42ae5a042f457088b6e205ec8b4403b1ff3a325955f110255afb4da2310e3cf14ad
languageName: node
linkType: hard
@@ -11939,6 +11928,13 @@ __metadata:
languageName: node
linkType: hard
"colors@npm:1.0.3":
version: 1.0.3
resolution: "colors@npm:1.0.3"
checksum: 234e8d3ab7e4003851cdd6a1f02eaa16dabc502ee5f4dc576ad7959c64b7477b15bd21177bab4055a4c0a66aa3d919753958030445f87c39a253d73b7a3637f5
languageName: node
linkType: hard
"columnify@npm:^1.5.4":
version: 1.5.4
resolution: "columnify@npm:1.5.4"
@@ -12003,6 +11999,15 @@ __metadata:
languageName: node
linkType: hard
"commander@npm:2.9.0":
version: 2.9.0
resolution: "commander@npm:2.9.0"
dependencies:
graceful-readlink: ">= 1.0.0"
checksum: 37939b6866ae190784fa946ea5b926dfe713731064c746e818642ac59e28f513b54e88e35d8c34b4d24d063cb465977dca2efd2ec974f91e495c743fcb2ae7a2
languageName: node
linkType: hard
"commander@npm:7, commander@npm:^7.0.0, commander@npm:^7.2.0":
version: 7.2.0
resolution: "commander@npm:7.2.0"
@@ -12186,16 +12191,6 @@ __metadata:
languageName: node
linkType: hard
"config-file-ts@npm:^0.2.4":
version: 0.2.4
resolution: "config-file-ts@npm:0.2.4"
dependencies:
glob: ^7.1.6
typescript: ^4.0.2
checksum: c7032064c0b00d7a3c429ea4dad477cc32a66370a0a2c39440feea0568158e662781cb905a54319be50f0345a63045ecbd7cc9a9ccbf0cc15744f874deea8029
languageName: node
linkType: hard
"configstore@npm:^5.0.1":
version: 5.0.1
resolution: "configstore@npm:5.0.1"
@@ -13689,7 +13684,7 @@ __metadata:
languageName: node
linkType: hard
"debug@npm:2.6.9, debug@npm:^2.2.0, debug@npm:^2.3.3, debug@npm:^2.6.9":
"debug@npm:2.6.9, debug@npm:^2.2.0, debug@npm:^2.3.3, debug@npm:^2.6.8, debug@npm:^2.6.9":
version: 2.6.9
resolution: "debug@npm:2.6.9"
dependencies:
@@ -14409,13 +14404,17 @@ __metadata:
languageName: node
linkType: hard
"dir-compare@npm:^3.0.0":
version: 3.3.0
resolution: "dir-compare@npm:3.3.0"
"dir-compare@npm:^2.4.0":
version: 2.4.0
resolution: "dir-compare@npm:2.4.0"
dependencies:
buffer-equal: ^1.0.0
minimatch: ^3.0.4
checksum: 05e7381509b17cb4e6791bd9569c12ce4267f44b1ee36594946ed895ed7ad24da9285130dc42af3a60707d58c76307bb3a1cbae2acd0a9cce8c74664e6a26828
buffer-equal: 1.0.0
colors: 1.0.3
commander: 2.9.0
minimatch: 3.0.4
bin:
dircompare: src/cli/dircompare.js
checksum: 16710bcb640b0edb753c6ecf10440c20a073588d797f624288601c52bca64a1f8c4dcd474d1fb7fda3595361b7cf528dee856140d83ecdaa19ba5695112d1209
languageName: node
linkType: hard
@@ -14437,21 +14436,21 @@ __metadata:
languageName: node
linkType: hard
"dmg-builder@npm:24.1.2":
version: 24.1.2
resolution: "dmg-builder@npm:24.1.2"
"dmg-builder@npm:23.6.0":
version: 23.6.0
resolution: "dmg-builder@npm:23.6.0"
dependencies:
app-builder-lib: 24.1.2
builder-util: 24.1.2
builder-util-runtime: 9.2.0
app-builder-lib: 23.6.0
builder-util: 23.6.0
builder-util-runtime: 9.1.1
dmg-license: ^1.0.11
fs-extra: ^10.1.0
fs-extra: ^10.0.0
iconv-lite: ^0.6.2
js-yaml: ^4.1.0
dependenciesMeta:
dmg-license:
optional: true
checksum: 2a347a331ce6998f1aad53cbdb92a25ccdc7776354c609ac16131226bf983621f6ec3aad75eda1655705bc544c06abc7c58c6f6c3861aad9adf20fb4d6bf52dc
checksum: 3e37a4b191cf40c9c7b97d07408c2bf58e7632d78de0dc49a142fb7c68670fd2a7123f31ee8803b3cd100f38feea7b785c28698dfaace508254659d81ecc0b80
languageName: node
linkType: hard
@@ -14771,6 +14770,17 @@ __metadata:
languageName: node
linkType: hard
"ejs@npm:^3.1.7":
version: 3.1.7
resolution: "ejs@npm:3.1.7"
dependencies:
jake: ^10.8.5
bin:
ejs: bin/cli.js
checksum: fe40764af39955ce8f8b116716fc8b911959946698edb49ecab85df597746c07aa65d5b74ead28a1e2ffa75b0f92d9bedd752f1c29437da6137b3518271e988c
languageName: node
linkType: hard
"ejs@npm:^3.1.8":
version: 3.1.8
resolution: "ejs@npm:3.1.8"
@@ -14782,39 +14792,92 @@ __metadata:
languageName: node
linkType: hard
"electron-builder@npm:24.1.2":
version: 24.1.2
resolution: "electron-builder@npm:24.1.2"
"electron-builder@npm:23.6.0":
version: 23.6.0
resolution: "electron-builder@npm:23.6.0"
dependencies:
app-builder-lib: 24.1.2
builder-util: 24.1.2
builder-util-runtime: 9.2.0
chalk: ^4.1.2
dmg-builder: 24.1.2
fs-extra: ^10.1.0
"@types/yargs": ^17.0.1
app-builder-lib: 23.6.0
builder-util: 23.6.0
builder-util-runtime: 9.1.1
chalk: ^4.1.1
dmg-builder: 23.6.0
fs-extra: ^10.0.0
is-ci: ^3.0.0
lazy-val: ^1.0.5
read-config-file: 6.3.2
simple-update-notifier: ^1.1.0
yargs: ^17.6.2
read-config-file: 6.2.0
simple-update-notifier: ^1.0.7
yargs: ^17.5.1
bin:
electron-builder: cli.js
install-app-deps: install-app-deps.js
checksum: d5e26ecfa171e104d0991e00c00287f7fb57212fdc6ad9c2d6c880a204938cfcaedfd7d5698035221324b8b4a7e068a3b24613a09447f56c440771258a7a6597
checksum: 227f8fb9c9bb11a11d999f2ade6a5cd1afb720d6ff5053c88b4be62d1265b6268c8f6b4b3b8ad6d0a7261d57ea5acd6619ef301b843865f260b616c474cf8cbd
languageName: node
linkType: hard
"electron-publish@npm:24.1.2":
version: 24.1.2
resolution: "electron-publish@npm:24.1.2"
"electron-notarize@npm:1.2.2":
version: 1.2.2
resolution: "electron-notarize@npm:1.2.2"
dependencies:
builder-util: 24.1.2
builder-util-runtime: 9.2.0
chalk: ^4.1.2
fs-extra: ^10.1.0
debug: ^4.1.1
fs-extra: ^9.0.1
checksum: 98909bc90f0840a4bd3da0edc6895d719eb0d17942812a8c8f5a130d323c7fbaafd819245cfe9a6c5b5abfa8dd3b0eb2bd8ee9c0b2dcf0c3b238b6845730c368
languageName: node
linkType: hard
"electron-osx-sign@npm:^0.6.0":
version: 0.6.0
resolution: "electron-osx-sign@npm:0.6.0"
dependencies:
bluebird: ^3.5.0
compare-version: ^0.1.2
debug: ^2.6.8
isbinaryfile: ^3.0.2
minimist: ^1.2.0
plist: ^3.0.1
bin:
electron-osx-flat: bin/electron-osx-flat.js
electron-osx-sign: bin/electron-osx-sign.js
checksum: b688f9efb013670b4226cff7c38101e7b1384ea44e1ab203259995f1eefc019c63aa18e936217a76d33b5a5a452b987ab3d86a56a961294582ce42acbb950de6
languageName: node
linkType: hard
"electron-publish@npm:23.6.0":
version: 23.6.0
resolution: "electron-publish@npm:23.6.0"
dependencies:
"@types/fs-extra": ^9.0.11
builder-util: 23.6.0
builder-util-runtime: 9.1.1
chalk: ^4.1.1
fs-extra: ^10.0.0
lazy-val: ^1.0.5
mime: ^2.5.2
checksum: a1bf425099072f3b0420cffb652366d8e8985de26e562884071bc8397f870b8216c2be62a8f63fac1039162832e9807f8dd87f0a42fbd94ced5648da1ddc0e20
checksum: 70473d800f0607b5ffc32473e87004079fe3e5f133242bb498dcff0be89bfaa4ce967860809e12b97ce216b1e907649a8a916b7483daf7a00ea28db3d665878e
languageName: node
linkType: hard
"electron-rebuild@npm:3.2.9":
version: 3.2.9
resolution: "electron-rebuild@npm:3.2.9"
dependencies:
"@malept/cross-spawn-promise": ^2.0.0
chalk: ^4.0.0
debug: ^4.1.1
detect-libc: ^2.0.1
fs-extra: ^10.0.0
got: ^11.7.0
lzma-native: ^8.0.5
node-abi: ^3.0.0
node-api-version: ^0.1.4
node-gyp: ^9.0.0
ora: ^5.1.0
semver: ^7.3.5
tar: ^6.0.5
yargs: ^17.0.1
bin:
electron-rebuild: lib/src/cli.js
checksum: d72bd028849c84d0daa009765197d5afd4a643521f5f05fedfec9720923985eb474acdeed44f906f1224ced315075d715553a64dc593d78c83d1bc2b94e78cca
languageName: node
linkType: hard
@@ -17764,8 +17827,8 @@ __metadata:
linkType: hard
"got@npm:^11.7.0":
version: 11.8.6
resolution: "got@npm:11.8.6"
version: 11.8.3
resolution: "got@npm:11.8.3"
dependencies:
"@sindresorhus/is": ^4.0.0
"@szmarczak/http-timer": ^4.0.5
@@ -17778,7 +17841,7 @@ __metadata:
lowercase-keys: ^2.0.0
p-cancelable: ^2.0.0
responselike: ^2.0.0
checksum: bbc783578a8d5030c8164ef7f57ce41b5ad7db2ed13371e1944bef157eeca5a7475530e07c0aaa71610d7085474d0d96222c9f4268d41db333a17e39b463f45d
checksum: 3b6db107d9765470b18e4cb22f7c7400381be7425b9be5823f0168d6c21b5d6b28b023c0b3ee208f73f6638c3ce251948ca9b54a1e8f936d3691139ac202d01b
languageName: node
linkType: hard
@@ -17815,6 +17878,13 @@ __metadata:
languageName: node
linkType: hard
"graceful-readlink@npm:>= 1.0.0":
version: 1.0.1
resolution: "graceful-readlink@npm:1.0.1"
checksum: 4c1889ca0a6fc0bb9585b55c26a99719be132cbc4b7d84036193b70608059b9783e52e2a866d5a8e39821b16a69e899644ca75c6206563f1319b6720836b9ab2
languageName: node
linkType: hard
"grapheme-splitter@npm:^1.0.4":
version: 1.0.4
resolution: "grapheme-splitter@npm:1.0.4"
@@ -19811,7 +19881,16 @@ __metadata:
languageName: node
linkType: hard
"isbinaryfile@npm:^4.0.8":
"isbinaryfile@npm:^3.0.2":
version: 3.0.3
resolution: "isbinaryfile@npm:3.0.3"
dependencies:
buffer-alloc: ^1.2.0
checksum: 9a555786857c66fe36024d15a54e0ca371c02275622b007356d6afca2b3bca179cb0bd97e1adf5d3922b3325c0fe22813645c7f7eafb4c4bdab1da9d635133c2
languageName: node
linkType: hard
"isbinaryfile@npm:^4.0.10":
version: 4.0.10
resolution: "isbinaryfile@npm:4.0.10"
checksum: a6b28db7e23ac7a77d3707567cac81356ea18bd602a4f21f424f862a31d0e7ab4f250759c98a559ece35ffe4d99f0d339f1ab884ffa9795172f632ab8f88e686
@@ -21621,11 +21700,11 @@ __metadata:
linkType: hard
"keyv@npm:^4.0.0":
version: 4.5.2
resolution: "keyv@npm:4.5.2"
version: 4.0.4
resolution: "keyv@npm:4.0.4"
dependencies:
json-buffer: 3.0.1
checksum: 13ad58303acd2261c0d4831b4658451603fd159e61daea2121fcb15feb623e75ee328cded0572da9ca76b7b3ceaf8e614f1806c6b3af5db73c9c35a345259651
checksum: 73f0f45e149be12aab0449a59c9a490195f231ef90024222e544f4c24221fa2b4ec1cd432f92384f0f852e6ae48b7e97f1bf2147c29616b2feddf8ffbc401777
languageName: node
linkType: hard
@@ -23476,7 +23555,7 @@ __metadata:
languageName: node
linkType: hard
"minimatch@npm:^3.0.0, minimatch@npm:^3.0.2, minimatch@npm:^3.0.4":
"minimatch@npm:3.0.4, minimatch@npm:^3.0.0, minimatch@npm:^3.0.2, minimatch@npm:^3.0.4":
version: 3.0.4
resolution: "minimatch@npm:3.0.4"
dependencies:
@@ -23503,15 +23582,6 @@ __metadata:
languageName: node
linkType: hard
"minimatch@npm:^5.1.1":
version: 5.1.6
resolution: "minimatch@npm:5.1.6"
dependencies:
brace-expansion: ^2.0.1
checksum: 7564208ef81d7065a370f788d337cd80a689e981042cb9a1d0e6580b6c6a8c9279eba80010516e258835a988363f99f54a6f711a315089b8b42694f5da9d0d77
languageName: node
linkType: hard
"minimatch@npm:^7.2.0":
version: 7.4.2
resolution: "minimatch@npm:7.4.2"
@@ -24161,11 +24231,11 @@ __metadata:
linkType: hard
"node-abi@npm:^3.0.0":
version: 3.34.0
resolution: "node-abi@npm:3.34.0"
version: 3.5.0
resolution: "node-abi@npm:3.5.0"
dependencies:
semver: ^7.3.5
checksum: c58b16570d6b5a42ade1e2ba55864460db77508e477e6e0fca8aae7142614128b6adf2e3bbe56115c64099f874355bc55760368c565fa4c865372913aaebdda3
checksum: e7fa2363cea366e788e460ead39cf900cc3c49b5978fa56790fda87df54b6937424c72ea00cbfb72fe1513eedcbb48a0ac50a56e7961cc6bd425ef09efbe1916
languageName: node
linkType: hard
@@ -24309,13 +24379,13 @@ __metadata:
linkType: hard
"node-gyp-build@npm:^4.2.1":
version: 4.6.0
resolution: "node-gyp-build@npm:4.6.0"
version: 4.3.0
resolution: "node-gyp-build@npm:4.3.0"
bin:
node-gyp-build: bin.js
node-gyp-build-optional: optional.js
node-gyp-build-test: build-test.js
checksum: 25d78c5ef1f8c24291f4a370c47ba52fcea14f39272041a90a7894cd50d766f7c8cb8fb06c0f42bf6f69b204b49d9be3c8fc344aac09714d5bdb95965499eb15
checksum: 1ecab16d9f275174d516e223f60f65ebe07540347d5c04a6a7d6921060b7f2e3af4f19463d9d1dcedc452e275c2ae71354a99405e55ebd5b655bb2f38025c728
languageName: node
linkType: hard
@@ -24339,7 +24409,7 @@ __metadata:
languageName: node
linkType: hard
"node-gyp@npm:9.3.1, node-gyp@npm:^9.0.0":
"node-gyp@npm:9.3.1":
version: 9.3.1
resolution: "node-gyp@npm:9.3.1"
dependencies:
@@ -24380,6 +24450,26 @@ __metadata:
languageName: node
linkType: hard
"node-gyp@npm:^9.0.0":
version: 9.3.0
resolution: "node-gyp@npm:9.3.0"
dependencies:
env-paths: ^2.2.0
glob: ^7.1.4
graceful-fs: ^4.2.6
make-fetch-happen: ^10.0.3
nopt: ^6.0.0
npmlog: ^6.0.0
rimraf: ^3.0.2
semver: ^7.3.5
tar: ^6.1.2
which: ^2.0.2
bin:
node-gyp: bin/node-gyp.js
checksum: 589ddd3ed967724ef425f9624bfa47cf73022640ab3eba6d556e92cdc4ddef33b63fce3a467c93b995a3f61df92eafd3c3d1e8dbe4a2c00c383334487dea99c3
languageName: node
linkType: hard
"node-int64@npm:^0.4.0":
version: 0.4.0
resolution: "node-int64@npm:0.4.0"
@@ -26197,7 +26287,7 @@ __metadata:
languageName: node
linkType: hard
"plist@npm:^3.0.4":
"plist@npm:^3.0.1, plist@npm:^3.0.4":
version: 3.0.4
resolution: "plist@npm:3.0.4"
dependencies:
@@ -26207,16 +26297,6 @@ __metadata:
languageName: node
linkType: hard
"plist@npm:^3.0.5":
version: 3.0.6
resolution: "plist@npm:3.0.6"
dependencies:
base64-js: ^1.5.1
xmlbuilder: ^15.1.1
checksum: e21390fab8a3c388f8f51b76c0aa187242a40537119ce865d8637630e7d7df79b21f841ec6a4668e7c68d409a6f584d696619099a6125d28011561639c0823b8
languageName: node
linkType: hard
"plur@npm:^4.0.0":
version: 4.0.0
resolution: "plur@npm:4.0.0"
@@ -27730,17 +27810,16 @@ __metadata:
languageName: node
linkType: hard
"read-config-file@npm:6.3.2":
version: 6.3.2
resolution: "read-config-file@npm:6.3.2"
"read-config-file@npm:6.2.0":
version: 6.2.0
resolution: "read-config-file@npm:6.2.0"
dependencies:
config-file-ts: ^0.2.4
dotenv: ^9.0.2
dotenv-expand: ^5.1.0
js-yaml: ^4.1.0
json5: ^2.2.0
lazy-val: ^1.0.4
checksum: bb4862851b616f905219a474fe92e37f2a65e07cda896cd3a89b3b357d38f9bfc3fd3d443e2f9c5fdd85b5166d5d09d49088dd8933cd82fd606c017a20703007
checksum: 51e30db82244b8ceea19143207a52c5210fa17f5282ec43e9485cf7da87ac4ee3a0fb961cccc5c7af319b06d004baa0154349e09ca8ca7235ae7e5ac7c14c3f3
languageName: node
linkType: hard
@@ -28567,11 +28646,11 @@ __metadata:
linkType: hard
"responselike@npm:^2.0.0":
version: 2.0.1
resolution: "responselike@npm:2.0.1"
version: 2.0.0
resolution: "responselike@npm:2.0.0"
dependencies:
lowercase-keys: ^2.0.0
checksum: b122535466e9c97b55e69c7f18e2be0ce3823c5d47ee8de0d9c0b114aa55741c6db8bfbfce3766a94d1272e61bfb1ebf0a15e9310ac5629fbb7446a861b4fd3a
checksum: 6a4d32c37d4e88678ae0a9d69fcc90aafa15b1a3eab455bd65c06af3c6c4976afc47d07a0e5a60d277ab041a465f43bf0a581e0d7ab33786e7a7741573f2e487
languageName: node
linkType: hard
@@ -29543,15 +29622,6 @@ __metadata:
languageName: node
linkType: hard
"simple-update-notifier@npm:^1.1.0":
version: 1.1.0
resolution: "simple-update-notifier@npm:1.1.0"
dependencies:
semver: ~7.0.0
checksum: 1012e9b6c504e559a948078177b3eedbb9d7e4d15878e2bda56314d08db609ca5da485be4ac9f838759faae8057935ee0246fcdf63f1233c86bd9fecb2a5544b
languageName: node
linkType: hard
"sisteransi@npm:^1.0.5":
version: 1.0.5
resolution: "sisteransi@npm:1.0.5"
@@ -31080,7 +31150,7 @@ __metadata:
languageName: node
linkType: hard
"tar@npm:6.1.13, tar@npm:^6.0.5, tar@npm:^6.1.12":
"tar@npm:6.1.13":
version: 6.1.13
resolution: "tar@npm:6.1.13"
dependencies:
@@ -31109,7 +31179,7 @@ __metadata:
languageName: node
linkType: hard
"tar@npm:^6.0.2, tar@npm:^6.1.11, tar@npm:^6.1.2":
"tar@npm:^6.0.2, tar@npm:^6.0.5, tar@npm:^6.1.11, tar@npm:^6.1.2":
version: 6.1.11
resolution: "tar@npm:6.1.11"
dependencies:
@@ -32159,7 +32229,7 @@ __metadata:
languageName: node
linkType: hard
"typescript@npm:^4.0.0, typescript@npm:^4.0.2, typescript@npm:^4.5.5":
"typescript@npm:^4.0.0, typescript@npm:^4.5.5":
version: 4.9.5
resolution: "typescript@npm:4.9.5"
bin:
@@ -32199,7 +32269,7 @@ __metadata:
languageName: node
linkType: hard
"typescript@patch:typescript@^4.0.0#~builtin<compat/typescript>, typescript@patch:typescript@^4.0.2#~builtin<compat/typescript>, typescript@patch:typescript@^4.5.5#~builtin<compat/typescript>":
"typescript@patch:typescript@^4.0.0#~builtin<compat/typescript>, typescript@patch:typescript@^4.5.5#~builtin<compat/typescript>":
version: 4.9.5
resolution: "typescript@patch:typescript@npm%3A4.9.5#~builtin<compat/typescript>::version=4.9.5&hash=ad5954"
bin:
@@ -33811,7 +33881,7 @@ __metadata:
languageName: node
linkType: hard
"xmlbuilder@npm:>=11.0.1, xmlbuilder@npm:^15.1.1":
"xmlbuilder@npm:>=11.0.1":
version: 15.1.1
resolution: "xmlbuilder@npm:15.1.1"
checksum: 14f7302402e28d1f32823583d121594a9dca36408d40320b33f598bd589ca5163a352d076489c9c64d2dc1da19a790926a07bf4191275330d4de2b0d85bb1843
@@ -33962,7 +34032,7 @@ __metadata:
languageName: node
linkType: hard
"yargs@npm:17.7.1, yargs@npm:^17.0.1":
"yargs@npm:17.7.1":
version: 17.7.1
resolution: "yargs@npm:17.7.1"
dependencies:
@@ -34030,6 +34100,21 @@ __metadata:
languageName: node
linkType: hard
"yargs@npm:^17.0.1":
version: 17.3.0
resolution: "yargs@npm:17.3.0"
dependencies:
cliui: ^7.0.2
escalade: ^3.1.1
get-caller-file: ^2.0.5
require-directory: ^2.1.1
string-width: ^4.2.3
y18n: ^5.0.5
yargs-parser: ^21.0.0
checksum: 2b687338684bf9645e9389ffdbe813fc5a2ddfede299d46fbe5ac80eb9a391e558b97861ba44d2256936ebe9d7f8135f6a38af1c76a5685eac4061008b2df57a
languageName: node
linkType: hard
"yargs@npm:^17.3.1":
version: 17.5.1
resolution: "yargs@npm:17.5.1"