diff --git a/.eslintignore b/.eslintignore index 77acd080653..bc931e63e09 100644 --- a/.eslintignore +++ b/.eslintignore @@ -553,7 +553,16 @@ packages/app-mobile/commands/util/goToNote.js packages/app-mobile/commands/util/showResource.js packages/app-mobile/components/BackButtonDialogBox.js packages/app-mobile/components/BetaChip.js -packages/app-mobile/components/CameraView.js +packages/app-mobile/components/CameraView/ActionButtons.js +packages/app-mobile/components/CameraView/Camera/index.jest.js +packages/app-mobile/components/CameraView/Camera/index.js +packages/app-mobile/components/CameraView/Camera/types.js +packages/app-mobile/components/CameraView/CameraView.test.js +packages/app-mobile/components/CameraView/CameraView.js +packages/app-mobile/components/CameraView/ScannedBarcodes.js +packages/app-mobile/components/CameraView/types.js +packages/app-mobile/components/CameraView/utils/fitRectIntoBounds.js +packages/app-mobile/components/CameraView/utils/useBarcodeScanner.js packages/app-mobile/components/Checkbox.js packages/app-mobile/components/DialogManager.js packages/app-mobile/components/DismissibleDialog.js @@ -730,6 +739,7 @@ packages/app-mobile/components/screens/UpgradeSyncTargetScreen.js packages/app-mobile/components/screens/encryption-config.js packages/app-mobile/components/screens/status.js packages/app-mobile/components/side-menu-content.js +packages/app-mobile/components/testing/TestProviderStack.js packages/app-mobile/components/voiceTyping/VoiceTypingDialog.js packages/app-mobile/gulpfile.js packages/app-mobile/index.web.js diff --git a/.gitignore b/.gitignore index c61785aade8..796ad6f4313 100644 --- a/.gitignore +++ b/.gitignore @@ -530,7 +530,16 @@ packages/app-mobile/commands/util/goToNote.js packages/app-mobile/commands/util/showResource.js packages/app-mobile/components/BackButtonDialogBox.js packages/app-mobile/components/BetaChip.js -packages/app-mobile/components/CameraView.js +packages/app-mobile/components/CameraView/ActionButtons.js +packages/app-mobile/components/CameraView/Camera/index.jest.js +packages/app-mobile/components/CameraView/Camera/index.js +packages/app-mobile/components/CameraView/Camera/types.js +packages/app-mobile/components/CameraView/CameraView.test.js +packages/app-mobile/components/CameraView/CameraView.js +packages/app-mobile/components/CameraView/ScannedBarcodes.js +packages/app-mobile/components/CameraView/types.js +packages/app-mobile/components/CameraView/utils/fitRectIntoBounds.js +packages/app-mobile/components/CameraView/utils/useBarcodeScanner.js packages/app-mobile/components/Checkbox.js packages/app-mobile/components/DialogManager.js packages/app-mobile/components/DismissibleDialog.js @@ -707,6 +716,7 @@ packages/app-mobile/components/screens/UpgradeSyncTargetScreen.js packages/app-mobile/components/screens/encryption-config.js packages/app-mobile/components/screens/status.js packages/app-mobile/components/side-menu-content.js +packages/app-mobile/components/testing/TestProviderStack.js packages/app-mobile/components/voiceTyping/VoiceTypingDialog.js packages/app-mobile/gulpfile.js packages/app-mobile/index.web.js diff --git a/packages/app-cli/package.json b/packages/app-cli/package.json index 93c0e1dd30c..72b0bfa419a 100644 --- a/packages/app-cli/package.json +++ b/packages/app-cli/package.json @@ -35,15 +35,15 @@ ], "owner": "Laurent Cozic" }, - "version": "3.1.0", + "version": "3.2.0", "bin": "./main.js", "engines": { "node": ">=10.0.0" }, "dependencies": { - "@joplin/lib": "~3.1", - "@joplin/renderer": "~3.1", - "@joplin/utils": "~3.1", + "@joplin/lib": "~3.2", + "@joplin/renderer": "~3.2", + "@joplin/utils": "~3.2", "aws-sdk": "2.1340.0", "chalk": "4.1.2", "compare-version": "0.1.2", @@ -70,10 +70,10 @@ "yargs-parser": "21.1.1" }, "devDependencies": { - "@joplin/tools": "~3.1", + "@joplin/tools": "~3.2", "@types/fs-extra": "11.0.4", "@types/jest": "29.5.12", - "@types/node": "18.19.42", + "@types/node": "18.19.43", "@types/proper-lockfile": "^4.1.2", "gulp": "4.0.2", "jest": "29.7.0", diff --git a/packages/app-clipper/manifest.json b/packages/app-clipper/manifest.json index 55024f358bf..1a9ed5123f5 100644 --- a/packages/app-clipper/manifest.json +++ b/packages/app-clipper/manifest.json @@ -1,7 +1,7 @@ { "manifest_version": 3, "name": "Joplin Web Clipper [DEV]", - "version": "3.1.1", + "version": "3.2.0", "description": "Capture and save web pages and screenshots from your browser to Joplin.", "homepage_url": "https://joplinapp.org", "content_security_policy": { diff --git a/packages/app-desktop/integration-tests/pluginApi.spec.ts b/packages/app-desktop/integration-tests/pluginApi.spec.ts index e1ba59e14d2..ff0eee367e3 100644 --- a/packages/app-desktop/integration-tests/pluginApi.spec.ts +++ b/packages/app-desktop/integration-tests/pluginApi.spec.ts @@ -18,6 +18,7 @@ test.describe('pluginApi', () => { await editor.richTextEditor.click(); } + await editor.expectToHaveText('This content should be overwritten.'); await mainScreen.goToAnything.runCommand(app, 'testUpdateEditorText'); await editor.expectToHaveText('PASS'); diff --git a/packages/app-desktop/package.json b/packages/app-desktop/package.json index 74faf988bb0..80770771514 100644 --- a/packages/app-desktop/package.json +++ b/packages/app-desktop/package.json @@ -1,6 +1,6 @@ { "name": "@joplin/app-desktop", - "version": "3.1.18", + "version": "3.2.0", "description": "Joplin for Desktop", "main": "main.js", "private": true, @@ -125,12 +125,12 @@ "devDependencies": { "7zip-bin": "5.2.0", "@electron/rebuild": "3.6.0", - "@joplin/default-plugins": "~3.1", - "@joplin/tools": "~3.1", + "@joplin/default-plugins": "~3.2", + "@joplin/tools": "~3.2", "@playwright/test": "1.45.3", "@testing-library/react-hooks": "8.0.1", "@types/jest": "29.5.12", - "@types/node": "18.19.42", + "@types/node": "18.19.43", "@types/react": "18.3.3", "@types/react-dom": "18.3.0", "@types/react-redux": "7.1.33", @@ -155,10 +155,10 @@ "@electron/remote": "2.1.2", "@fortawesome/fontawesome-free": "5.15.4", "@joeattardi/emoji-button": "4.6.4", - "@joplin/editor": "~3.1", - "@joplin/lib": "~3.1", - "@joplin/renderer": "~3.1", - "@joplin/utils": "~3.1", + "@joplin/editor": "~3.2", + "@joplin/lib": "~3.2", + "@joplin/renderer": "~3.2", + "@joplin/utils": "~3.2", "@sentry/electron": "4.24.0", "@types/mustache": "4.2.5", "async-mutex": "0.5.0", diff --git a/packages/app-mobile/android/app/build.gradle b/packages/app-mobile/android/app/build.gradle index 111ff095e64..9e867cd79d0 100644 --- a/packages/app-mobile/android/app/build.gradle +++ b/packages/app-mobile/android/app/build.gradle @@ -80,13 +80,10 @@ android { minSdkVersion rootProject.ext.minSdkVersion targetSdkVersion rootProject.ext.targetSdkVersion versionCode 2097753 - versionName "3.1.5" + versionName "3.2.0" ndk { abiFilters "armeabi-v7a", "x86", "arm64-v8a", "x86_64" } - - // https://github.com/react-native-community/react-native-camera/issues/2138 - missingDimensionStrategy 'react-native-camera', 'general' // Needed to fix: The number of method references in a .dex file cannot exceed 64K multiDexEnabled true @@ -122,12 +119,6 @@ android { } dependencies { - // This removes proprietary bits to enable inclusion in F-Droid - // https://gitlab.com/fdroid/rfp/-/issues/434#note_443458711 - implementation (project(':react-native-camera')){ - exclude group: 'com.google.android.gms', module: 'play-services-vision' - } - // The version of react-native is set by the React Native Gradle Plugin implementation("com.facebook.react:react-android") diff --git a/packages/app-mobile/android/app/src/main/java/net/cozic/joplin/MainActivity.kt b/packages/app-mobile/android/app/src/main/java/net/cozic/joplin/MainActivity.kt index b89de8c7d7e..7812649d643 100644 --- a/packages/app-mobile/android/app/src/main/java/net/cozic/joplin/MainActivity.kt +++ b/packages/app-mobile/android/app/src/main/java/net/cozic/joplin/MainActivity.kt @@ -1,4 +1,5 @@ package net.cozic.joplin +import expo.modules.ReactActivityDelegateWrapper import com.facebook.react.ReactActivity import com.facebook.react.ReactActivityDelegate @@ -18,5 +19,5 @@ class MainActivity : ReactActivity() { * which allows you to enable New Architecture with a single boolean flags [fabricEnabled] */ override fun createReactActivityDelegate(): ReactActivityDelegate = - DefaultReactActivityDelegate(this, mainComponentName, fabricEnabled) + ReactActivityDelegateWrapper(this, BuildConfig.IS_NEW_ARCHITECTURE_ENABLED, DefaultReactActivityDelegate(this, mainComponentName, fabricEnabled)) } diff --git a/packages/app-mobile/android/app/src/main/java/net/cozic/joplin/MainApplication.kt b/packages/app-mobile/android/app/src/main/java/net/cozic/joplin/MainApplication.kt index 3c4a4bd1f0f..b2237e5c3f3 100644 --- a/packages/app-mobile/android/app/src/main/java/net/cozic/joplin/MainApplication.kt +++ b/packages/app-mobile/android/app/src/main/java/net/cozic/joplin/MainApplication.kt @@ -1,4 +1,7 @@ package net.cozic.joplin +import android.content.res.Configuration +import expo.modules.ApplicationLifecycleDispatcher +import expo.modules.ReactNativeHostWrapper import android.app.Application import android.database.CursorWindow @@ -18,7 +21,7 @@ import net.cozic.joplin.ssl.SslPackage import net.cozic.joplin.textinput.TextInputPackage class MainApplication : Application(), ReactApplication { - override val reactNativeHost: ReactNativeHost = object : DefaultReactNativeHost(this) { + override val reactNativeHost: ReactNativeHost = ReactNativeHostWrapper(this, object : DefaultReactNativeHost(this) { override fun getPackages(): List = PackageList(this).packages.apply { // Packages that cannot be autolinked yet can be added manually here, for example: @@ -35,10 +38,10 @@ class MainApplication : Application(), ReactApplication { override val isNewArchEnabled: Boolean = BuildConfig.IS_NEW_ARCHITECTURE_ENABLED override val isHermesEnabled: Boolean = BuildConfig.IS_HERMES_ENABLED - } + }) override val reactHost: ReactHost - get() = getDefaultReactHost(this.applicationContext, reactNativeHost) + get() = ReactNativeHostWrapper.createReactHost(this.applicationContext, reactNativeHost) override fun onCreate() { super.onCreate() @@ -59,5 +62,11 @@ class MainApplication : Application(), ReactApplication { // If you opted-in for the New Architecture, we load the native entry point for this app. load() } - } + ApplicationLifecycleDispatcher.onApplicationCreate(this) + } + + override fun onConfigurationChanged(newConfig: Configuration) { + super.onConfigurationChanged(newConfig) + ApplicationLifecycleDispatcher.onConfigurationChanged(this, newConfig) + } } diff --git a/packages/app-mobile/android/build.gradle b/packages/app-mobile/android/build.gradle index 5594f8f0c5f..4285b49c793 100644 --- a/packages/app-mobile/android/build.gradle +++ b/packages/app-mobile/android/build.gradle @@ -53,6 +53,11 @@ allprojects { google() maven { url 'https://www.jitpack.io' } + + maven { + // expo-camera bundles a custom com.google.android:cameraview + url "$rootDir/../node_modules/expo-camera/android/maven" + } } } diff --git a/packages/app-mobile/android/settings.gradle b/packages/app-mobile/android/settings.gradle index 4c69f05eb15..473c6f47f21 100644 --- a/packages/app-mobile/android/settings.gradle +++ b/packages/app-mobile/android/settings.gradle @@ -3,4 +3,6 @@ include ':react-native-vector-icons' project(':react-native-vector-icons').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-vector-icons/android') apply from: file("../node_modules/@react-native-community/cli-platform-android/native_modules.gradle"); applyNativeModulesSettingsGradle(settings) include ':app' -includeBuild('../node_modules/@react-native/gradle-plugin') \ No newline at end of file +includeBuild('../node_modules/@react-native/gradle-plugin') +apply from: new File(["node", "--print", "require.resolve('expo/package.json')"].execute(null, rootDir).text.trim(), "../scripts/autolinking.gradle") +useExpoModules() \ No newline at end of file diff --git a/packages/app-mobile/components/CameraView.tsx b/packages/app-mobile/components/CameraView.tsx deleted file mode 100644 index 9e7d2b8ebfe..00000000000 --- a/packages/app-mobile/components/CameraView.tsx +++ /dev/null @@ -1,247 +0,0 @@ -const { RNCamera } = require('react-native-camera'); -const React = require('react'); -const Component = React.Component; -const { connect } = require('react-redux'); -const { View, TouchableOpacity, Text, Dimensions } = require('react-native'); -const Icon = require('react-native-vector-icons/Ionicons').default; -const { _ } = require('@joplin/lib/locale'); -import shim from '@joplin/lib/shim'; -import Setting from '@joplin/lib/models/Setting'; - -class CameraView extends Component { - public constructor() { - super(); - - const dimensions = Dimensions.get('window'); - - this.state = { - snapping: false, - ratios: [], - screenWidth: dimensions.width, - screenHeight: dimensions.height, - }; - - this.back_onPress = this.back_onPress.bind(this); - this.photo_onPress = this.photo_onPress.bind(this); - this.reverse_onPress = this.reverse_onPress.bind(this); - this.ratio_onPress = this.ratio_onPress.bind(this); - this.onCameraReady = this.onCameraReady.bind(this); - this.onLayout = this.onLayout.bind(this); - } - - // eslint-disable-next-line @typescript-eslint/no-explicit-any -- Old code before rule was applied - public onLayout(event: any) { - this.setState({ - screenWidth: event.nativeEvent.layout.width, - screenHeight: event.nativeEvent.layout.height, - }); - } - - private back_onPress() { - if (this.props.onCancel) this.props.onCancel(); - } - - private reverse_onPress() { - if (this.props.cameraType === RNCamera.Constants.Type.back) { - Setting.setValue('camera.type', RNCamera.Constants.Type.front); - } else { - Setting.setValue('camera.type', RNCamera.Constants.Type.back); - } - } - - private ratio_onPress() { - if (this.state.ratios.length <= 1) return; - - let index = this.state.ratios.indexOf(this.props.cameraRatio); - index++; - if (index >= this.state.ratios.length) index = 0; - Setting.setValue('camera.ratio', this.state.ratios[index]); - } - - private async photo_onPress() { - if (!this.camera || !this.props.onPhoto) return; - - this.setState({ snapping: true }); - - const result = await this.camera.takePictureAsync({ - quality: 0.8, - exif: true, - fixOrientation: true, - }); - - this.setState({ snapping: false }); - - if (this.props.onPhoto) this.props.onPhoto(result); - - } - - public async onCameraReady() { - if (this.supportsRatios()) { - const ratios = await this.camera.getSupportedRatiosAsync(); - this.setState({ ratios: ratios }); - } - } - - // eslint-disable-next-line @typescript-eslint/ban-types, @typescript-eslint/no-explicit-any -- Old code before rule was applied, Old code before rule was applied - public renderButton(onPress: Function, iconNameOrIcon: any, style: any) { - let icon = null; - - if (typeof iconNameOrIcon === 'string') { - icon = ( - - ); - } else { - icon = iconNameOrIcon; - } - - return ( - - - { icon } - - - ); - } - - // eslint-disable-next-line @typescript-eslint/no-explicit-any -- Old code before rule was applied - public fitRectIntoBounds(rect: any, bounds: any) { - const rectRatio = rect.width / rect.height; - const boundsRatio = bounds.width / bounds.height; - - // eslint-disable-next-line @typescript-eslint/no-explicit-any -- Old code before rule was applied - const newDimensions: any = {}; - - // Rect is more landscape than bounds - fit to width - if (rectRatio > boundsRatio) { - newDimensions.width = bounds.width; - newDimensions.height = rect.height * (bounds.width / rect.width); - } else { // Rect is more portrait than bounds - fit to height - newDimensions.width = rect.width * (bounds.height / rect.height); - newDimensions.height = bounds.height; - } - - return newDimensions; - } - - public cameraRect(ratio: string) { - // To keep the calculations simpler, it's assumed that the phone is in - // portrait orientation. Then at the end we swap the values if needed. - const splitted = ratio.split(':'); - - const output = this.fitRectIntoBounds({ - width: Number(splitted[1]), - height: Number(splitted[0]), - }, { - width: Math.min(this.state.screenWidth, this.state.screenHeight), - height: Math.max(this.state.screenWidth, this.state.screenHeight), - }); - - if (this.state.screenWidth > this.state.screenHeight) { - const w = output.width; - output.width = output.height; - output.height = w; - } - - return output; - } - - public supportsRatios() { - return shim.mobilePlatform() === 'android'; - } - - public render() { - const photoIcon = this.state.snapping ? 'checkmark' : 'camera'; - - const displayRatios = this.supportsRatios() && this.state.ratios.length > 1; - - const reverseCameraButton = this.renderButton(this.reverse_onPress, 'camera-reverse', { flex: 1, flexDirection: 'row', justifyContent: 'flex-start', marginLeft: 20 }); - const ratioButton = !displayRatios ? : this.renderButton(this.ratio_onPress, {Setting.value('camera.ratio')}, { flex: 1, flexDirection: 'row', justifyContent: 'flex-end', marginRight: 20 }); - - let cameraRatio = '4:3'; - // eslint-disable-next-line @typescript-eslint/no-explicit-any -- Old code before rule was applied - const cameraProps: any = {}; - - if (displayRatios) { - cameraProps.ratio = this.props.cameraRatio; - cameraRatio = this.props.cameraRatio; - } - - const cameraRect = this.cameraRect(cameraRatio); - cameraRect.left = (this.state.screenWidth - cameraRect.width) / 2; - cameraRect.top = (this.state.screenHeight - cameraRect.height) / 2; - - return ( - - - { - this.camera = ref; - }} - type={this.props.cameraType} - captureAudio={false} - onCameraReady={this.onCameraReady} - androidCameraPermissionOptions={{ - title: _('Permission to use camera'), - message: _('Your permission to use your camera is required.'), - buttonPositive: _('OK'), - buttonNegative: _('Cancel'), - }} - - { ...cameraProps } - > - - - - - - - - - - - { reverseCameraButton } - - - - - - { ratioButton } - - - - - - ); - } -} - -// eslint-disable-next-line @typescript-eslint/no-explicit-any -- Old code before rule was applied -const mapStateToProps = (state: any) => { - return { - cameraRatio: state.settings['camera.ratio'], - cameraType: state.settings['camera.type'], - }; -}; - - -export default connect(mapStateToProps)(CameraView); diff --git a/packages/app-mobile/components/CameraView/ActionButtons.tsx b/packages/app-mobile/components/CameraView/ActionButtons.tsx new file mode 100644 index 00000000000..4dd29e515ae --- /dev/null +++ b/packages/app-mobile/components/CameraView/ActionButtons.tsx @@ -0,0 +1,155 @@ +import * as React from 'react'; +import { useMemo } from 'react'; +import { View, StyleSheet, ViewStyle, Platform } from 'react-native'; +import IconButton from '../IconButton'; +import { _ } from '@joplin/lib/locale'; +import { CameraDirection } from '@joplin/lib/models/settings/builtInMetadata'; +import { ActivityIndicator } from 'react-native-paper'; + +interface Props { + themeId: number; + onCameraReverse: ()=> void; + cameraDirection: CameraDirection; + + onSetCameraRatio: ()=> void; + cameraRatio: string; + + onCancelPhoto: ()=> void; + onTakePicture: ()=> void; + takingPicture: boolean; + + cameraReady: boolean; +} + +const useStyles = () => { + return useMemo(() => { + const buttonContainer: ViewStyle = { + borderRadius: 32, + minWidth: 60, + minHeight: 60, + borderColor: '#00000040', + borderWidth: 1, + borderStyle: 'solid', + backgroundColor: '#ffffff77', + justifyContent: 'center', + alignItems: 'center', + alignSelf: 'flex-end', + }; + const buttonRowContainer: ViewStyle = { + display: 'flex', + flexDirection: 'row', + justifyContent: 'space-between', + left: 20, + right: 20, + position: 'absolute', + }; + + return StyleSheet.create({ + buttonRowContainerTop: { + ...buttonRowContainer, + top: 20, + }, + buttonRowContainerBottom: { + ...buttonRowContainer, + bottom: 20, + }, + buttonContainer, + buttonContent: { + color: 'black', + fontSize: 40, + }, + buttonPlaceHolder: { + width: 60, + }, + + qrCodeButtonDimmed: { + ...buttonContainer, + backgroundColor: '#ffffff44', + borderWidth: 0, + }, + + takePhotoButtonContainer: { + ...buttonContainer, + minWidth: 80, + minHeight: 80, + borderRadius: 80, + }, + takePhotoButtonContent: { + color: 'black', + fontSize: 60, + }, + + ratioButtonContainer: { + ...buttonContainer, + aspectRatio: undefined, + padding: 12, + }, + ratioButtonContent: { + fontSize: 20, + color: 'black', + }, + }); + }, []); +}; + +const ActionButtons: React.FC = props => { + const styles = useStyles(); + const reverseButton = ( + + ); + const takePhotoButton = ( + + ); + const ratioButton = ( + + ); + + const cameraActions = ( + + {reverseButton} + {takePhotoButton} + { + // Changing ratio is only supported on Android: + Platform.OS === 'android' ? ratioButton : + } + + ); + + + return <> + + + + {props.cameraReady ? cameraActions : } + ; +}; + +export default ActionButtons; diff --git a/packages/app-mobile/components/CameraView/Camera/index.jest.tsx b/packages/app-mobile/components/CameraView/Camera/index.jest.tsx new file mode 100644 index 00000000000..6455f7ee7b9 --- /dev/null +++ b/packages/app-mobile/components/CameraView/Camera/index.jest.tsx @@ -0,0 +1,40 @@ +import * as React from 'react'; +import { ForwardedRef, forwardRef, useCallback, useImperativeHandle } from 'react'; +import { CameraRef, Props } from './types'; +import { PrimaryButton } from '../../buttons'; +import { Surface, Text } from 'react-native-paper'; +import shim from '@joplin/lib/shim'; +import { TextInput } from 'react-native'; + +const Camera = (props: Props, ref: ForwardedRef) => { + useImperativeHandle(ref, () => ({ + takePictureAsync: async () => { + const path = `${shim.fsDriver().getCacheDirectoryPath()}/test-photo.svg`; + await shim.fsDriver().writeFile( + path, + ` + Test! + `, + 'utf8', + ); + return { uri: path, type: 'image/svg+xml' }; + }, + }), []); + + const onCodeChange = useCallback((data: string) => { + props.codeScanner.onBarcodeScanned?.({ + data, + type: 'qr', + }); + }, [props.codeScanner]); + + return + Camera mock + Reject permission + Accept permission + On camera ready + + ; +}; + +export default forwardRef(Camera); diff --git a/packages/app-mobile/components/CameraView/Camera/index.tsx b/packages/app-mobile/components/CameraView/Camera/index.tsx new file mode 100644 index 00000000000..d5f61109ad7 --- /dev/null +++ b/packages/app-mobile/components/CameraView/Camera/index.tsx @@ -0,0 +1,57 @@ +import * as React from 'react'; +import { CameraDirection } from '@joplin/lib/models/settings/builtInMetadata'; +import { BarcodeSettings, CameraRatio, CameraView, useCameraPermissions } from 'expo-camera'; +import { ForwardedRef, forwardRef, useEffect, useImperativeHandle, useRef } from 'react'; +import useAsyncEffect from '@joplin/lib/hooks/useAsyncEffect'; +import { CameraRef, Props } from './types'; + +const barcodeScannerSettings: BarcodeSettings = { + // Rocketbook pages use both QR and datamatrix + barcodeTypes: ['qr', 'datamatrix'], +}; + +const Camera = (props: Props, ref: ForwardedRef) => { + const cameraRef = useRef(null); + + useImperativeHandle(ref, () => ({ + takePictureAsync: async () => { + const result = await cameraRef.current.takePictureAsync(); + return { + uri: result.uri, + type: 'image/jpg', + }; + }, + }), []); + + const [hasPermission, requestPermission] = useCameraPermissions(); + useAsyncEffect(async () => { + try { + if (!hasPermission?.granted) { + await requestPermission(); + } + } finally { + if (!!hasPermission && !hasPermission.canAskAgain) { + props.onPermissionRequestFailure(); + } + } + }, [hasPermission, requestPermission, props.onPermissionRequestFailure]); + + useEffect(() => { + if (hasPermission?.granted) { + props.onHasPermission(); + } + }, [hasPermission, props.onHasPermission]); + + return ; +}; + +export default forwardRef(Camera); diff --git a/packages/app-mobile/components/CameraView/Camera/types.ts b/packages/app-mobile/components/CameraView/Camera/types.ts new file mode 100644 index 00000000000..c76c2a88043 --- /dev/null +++ b/packages/app-mobile/components/CameraView/Camera/types.ts @@ -0,0 +1,19 @@ +import { CameraDirection } from '@joplin/lib/models/settings/builtInMetadata'; +import { ViewStyle } from 'react-native'; +import { BarcodeScanner } from '../utils/useBarcodeScanner'; +import { CameraResult } from '../types'; + +export interface Props { + style: ViewStyle; + cameraType: CameraDirection; + ratio: string|undefined; + codeScanner: BarcodeScanner; + + onCameraReady: ()=> void; + onPermissionRequestFailure: ()=> void; + onHasPermission: ()=> void; +} + +export interface CameraRef { + takePictureAsync(): Promise; +} diff --git a/packages/app-mobile/components/CameraView/CameraView.test.tsx b/packages/app-mobile/components/CameraView/CameraView.test.tsx new file mode 100644 index 00000000000..869e91c8b9b --- /dev/null +++ b/packages/app-mobile/components/CameraView/CameraView.test.tsx @@ -0,0 +1,88 @@ +import * as React from 'react'; +import CameraView from './CameraView'; +import { CameraResult } from './types'; +import { fireEvent, render, screen } from '@testing-library/react-native'; +import '@testing-library/jest-native/extend-expect'; +import createMockReduxStore from '../../utils/testing/createMockReduxStore'; +import TestProviderStack from '../testing/TestProviderStack'; + +interface WrapperProps { + onPhoto?: (result: CameraResult)=> void; + onInsertBarcode?: (text: string)=> void; + onCancel?: ()=> void; +} + +const emptyFn = ()=>{}; +const store = createMockReduxStore(); +const CameraViewWrapper: React.FC = props => { + return + + ; +}; + +const rejectCameraPermission = () => { + const rejectPermissionButton = screen.getByRole('button', { name: 'Reject permission' }); + fireEvent.press(rejectPermissionButton); +}; + +const acceptCameraPermission = () => { + const acceptPermissionButton = screen.getByRole('button', { name: 'Accept permission' }); + fireEvent.press(acceptPermissionButton); +}; + +const startCamera = () => { + const startCameraButton = screen.getByRole('button', { name: 'On camera ready' }); + fireEvent.press(startCameraButton); +}; + +const setQrCodeData = (data: string) => { + const qrCodeDataInput = screen.getByPlaceholderText('QR code data'); + fireEvent.changeText(qrCodeDataInput, data); +}; + +describe('CameraView', () => { + test('should hide permissions error if camera permission is granted', async () => { + const view = render(); + + const queryPermissionsError = () => screen.queryByText('Missing camera permission'); + + expect(queryPermissionsError()).toBeNull(); + rejectCameraPermission(); + expect(queryPermissionsError()).toBeVisible(); + acceptCameraPermission(); + expect(queryPermissionsError()).toBeNull(); + + expect(await screen.findByRole('button', { name: 'Back' })).toBeVisible(); + startCamera(); + expect(await screen.findByRole('button', { name: 'Take picture' })).toBeVisible(); + + view.unmount(); + }); + + test('should allow inserting QR code text', async () => { + const onInsertBarcode = jest.fn(); + const view = render(); + acceptCameraPermission(); + startCamera(); + + const qrCodeData = 'Test!'; + setQrCodeData(qrCodeData); + + const qrCodeButton = await screen.findByRole('button', { name: 'QR Code' }); + expect(qrCodeButton).toBeVisible(); + fireEvent.press(qrCodeButton); + + const addToNoteButton = await screen.findByRole('button', { name: 'Add to note' }); + fireEvent.press(addToNoteButton); + + expect(onInsertBarcode).toHaveBeenCalledTimes(1); + expect(onInsertBarcode).toHaveBeenCalledWith(qrCodeData); + + view.unmount(); + }); +}); diff --git a/packages/app-mobile/components/CameraView/CameraView.tsx b/packages/app-mobile/components/CameraView/CameraView.tsx new file mode 100644 index 00000000000..e2f8b92bbb5 --- /dev/null +++ b/packages/app-mobile/components/CameraView/CameraView.tsx @@ -0,0 +1,216 @@ +import * as React from 'react'; +import { useCallback, useEffect, useMemo, useRef, useState } from 'react'; + +import { connect } from 'react-redux'; +import { Text, StyleSheet, Linking, View, Platform, useWindowDimensions } from 'react-native'; +import { _ } from '@joplin/lib/locale'; +import { ViewStyle } from 'react-native'; +import { AppState } from '../../utils/types'; +import ActionButtons from './ActionButtons'; +import { CameraDirection } from '@joplin/lib/models/settings/builtInMetadata'; +import Setting from '@joplin/lib/models/Setting'; +import { LinkButton, PrimaryButton } from '../buttons'; +import BackButtonService from '../../services/BackButtonService'; +import { themeStyle } from '../global-style'; +import fitRectIntoBounds from './utils/fitRectIntoBounds'; +import useBarcodeScanner from './utils/useBarcodeScanner'; +import ScannedBarcodes from './ScannedBarcodes'; +import { CameraRef } from './Camera/types'; +import Camera from './Camera'; +import { CameraResult } from './types'; + +interface Props { + themeId: number; + style: ViewStyle; + cameraType: CameraDirection; + cameraRatio: string; + onPhoto: (data: CameraResult)=> void; + onCancel: ()=> void; + onInsertBarcode: (barcodeText: string)=> void; +} + +interface UseStyleProps { + themeId: number; + style: ViewStyle; + cameraRatio: string; +} + +const useStyles = ({ themeId, style, cameraRatio }: UseStyleProps) => { + const { width: screenWidth, height: screenHeight } = useWindowDimensions(); + const outputPositioning = useMemo((): ViewStyle => { + const ratioMatch = cameraRatio?.match(/^(\d+):(\d+)$/); + if (!ratioMatch) { + return { left: 0, top: 0 }; + } + const output = fitRectIntoBounds({ + width: Number(ratioMatch[2]), + height: Number(ratioMatch[1]), + }, { + width: Math.min(screenWidth, screenHeight), + height: Math.max(screenWidth, screenHeight), + }); + + if (screenWidth > screenHeight) { + const w = output.width; + output.width = output.height; + output.height = w; + } + + return { + left: (screenWidth - output.width) / 2, + top: (screenHeight - output.height) / 2, + width: output.width, + height: output.height, + flexBasis: output.height, + flexGrow: 0, + alignContent: 'center', + }; + }, [cameraRatio, screenWidth, screenHeight]); + + return useMemo(() => { + const theme = themeStyle(themeId); + return StyleSheet.create({ + container: { + backgroundColor: '#000', + ...style, + }, + camera: { + position: 'relative', + ...outputPositioning, + ...style, + }, + errorContainer: { + position: 'absolute', + top: 0, + alignSelf: 'center', + backgroundColor: theme.backgroundColor, + maxWidth: 600, + padding: 28, + borderRadius: 28, + }, + }); + }, [themeId, style, outputPositioning]); +}; + +const androidRatios = ['1:1', '4:3', '16:9']; +const iOSRatios: string[] = []; +const useAvailableRatios = (): string[] => { + return Platform.OS === 'android' ? androidRatios : iOSRatios; +}; + + +const CameraViewComponent: React.FC = props => { + const styles = useStyles(props); + const cameraRef = useRef(null); + const [cameraReady, setCameraReady] = useState(false); + + useEffect(() => { + const handler = () => { + props.onCancel(); + return true; + }; + BackButtonService.addHandler(handler); + return () => { + BackButtonService.removeHandler(handler); + }; + }, [props.onCancel]); + + const onCameraReverse = useCallback(() => { + const newDirection = props.cameraType === CameraDirection.Front ? CameraDirection.Back : CameraDirection.Front; + Setting.setValue('camera.type', newDirection); + }, [props.cameraType]); + + const availableRatios = useAvailableRatios(); + const onNextCameraRatio = useCallback(async () => { + const ratioIndex = Math.max(0, availableRatios.indexOf(props.cameraRatio)); + + Setting.setValue('camera.ratio', availableRatios[(ratioIndex + 1) % availableRatios.length]); + }, [props.cameraRatio, availableRatios]); + + const codeScanner = useBarcodeScanner(); + + const onCameraReady = useCallback(() => { + setCameraReady(true); + }, []); + + const [takingPicture, setTakingPicture] = useState(false); + const takingPictureRef = useRef(takingPicture); + takingPictureRef.current = takingPicture; + const onTakePicture = useCallback(async () => { + if (takingPictureRef.current) return; + setTakingPicture(true); + try { + const picture = await cameraRef.current.takePictureAsync(); + if (picture) { + props.onPhoto(picture); + } + } finally { + setTakingPicture(false); + } + }, [props.onPhoto]); + + const [permissionRequestFailed, setPermissionRequestFailed] = useState(false); + const onPermissionRequestFailure = useCallback(() => { + setPermissionRequestFailed(true); + }, []); + const onHasPermission = useCallback(() => { + setPermissionRequestFailed(false); + }, []); + + let overlay; + if (permissionRequestFailed) { + overlay = + {_('Missing camera permission')} + Linking.openSettings()}>{_('Open settings')} + {_('Go back')} + ; + } else { + overlay = <> + + + ; + } + + return ( + + + {overlay} + + ); +}; + +const mapStateToProps = (state: AppState) => { + return { + themeId: state.settings.theme, + cameraRatio: state.settings['camera.ratio'], + cameraType: state.settings['camera.type'], + }; +}; + +export default connect(mapStateToProps)(CameraViewComponent); diff --git a/packages/app-mobile/components/CameraView/ScannedBarcodes.tsx b/packages/app-mobile/components/CameraView/ScannedBarcodes.tsx new file mode 100644 index 00000000000..b9e371ae8a9 --- /dev/null +++ b/packages/app-mobile/components/CameraView/ScannedBarcodes.tsx @@ -0,0 +1,103 @@ +import * as React from 'react'; +import { useCallback, useMemo, useState } from 'react'; +import { Platform, ScrollView, StyleSheet, View } from 'react-native'; +import { BarcodeScanner } from './utils/useBarcodeScanner'; +import { LinkButton, PrimaryButton } from '../buttons'; +import { _ } from '@joplin/lib/locale'; +import DismissibleDialog, { DialogSize } from '../DismissibleDialog'; +import { Chip, Text } from 'react-native-paper'; +import { isCallbackUrl, parseCallbackUrl } from '@joplin/lib/callbackUrlUtils'; +import CommandService from '@joplin/lib/services/CommandService'; + +interface Props { + themeId: number; + codeScanner: BarcodeScanner; + onInsertCode: (codeText: string)=> void; +} + +const useStyles = () => { + return useMemo(() => { + return StyleSheet.create({ + container: { + position: 'absolute', + right: 10, + top: 10, + }, + spacer: { + flexGrow: 1, + }, + scannedCode: { + padding: 20, + fontFamily: Platform.select({ + android: 'monospace', + ios: 'Courier New', + default: undefined, + }), + }, + }); + }, []); +}; + +const ScannedBarcodes: React.FC = props => { + const styles = useStyles(); + const [dialogVisible, setDialogVisible] = useState(false); + + const [dismissedAtTime, setDismissedAtTime] = useState(0); + const onHideCodeNotification = useCallback(() => { + setDismissedAtTime(performance.now()); + }, []); + + const onShowDialog = useCallback(() => { + setDialogVisible(true); + }, []); + const onHideDialog = useCallback(() => { + setDialogVisible(false); + onHideCodeNotification(); + }, [onHideCodeNotification]); + + const codeScanner = props.codeScanner; + const scannedText = codeScanner.lastScan?.text; + + const isLink = useMemo(() => { + return scannedText && isCallbackUrl(scannedText); + }, [scannedText]); + const onFollowLink = useCallback(() => { + setDialogVisible(false); + const data = parseCallbackUrl(scannedText); + if (data && data.params.id) { + void CommandService.instance().execute('openItem', `:/${data.params.id}`); + } + }, [scannedText]); + const onInsertText = useCallback(() => { + setDialogVisible(false); + props.onInsertCode(scannedText); + }, [scannedText, props.onInsertCode]); + + const codeChipHidden = !scannedText || dialogVisible || codeScanner.lastScan.timestamp < dismissedAtTime; + const dialogOpenButton = + {_('QR Code')} + ; + return + {codeChipHidden ? null : dialogOpenButton} + + + {_('Scanned code')} + {scannedText} + + + {isLink ? {_('Follow link')} : null} + {_('Add to note')} + + ; +}; + +export default ScannedBarcodes; diff --git a/packages/app-mobile/components/CameraView/types.ts b/packages/app-mobile/components/CameraView/types.ts new file mode 100644 index 00000000000..de6722afa7c --- /dev/null +++ b/packages/app-mobile/components/CameraView/types.ts @@ -0,0 +1,5 @@ + +export interface CameraResult { + uri: string; + type: string; +} diff --git a/packages/app-mobile/components/CameraView/utils/fitRectIntoBounds.ts b/packages/app-mobile/components/CameraView/utils/fitRectIntoBounds.ts new file mode 100644 index 00000000000..25ecf6a2d1e --- /dev/null +++ b/packages/app-mobile/components/CameraView/utils/fitRectIntoBounds.ts @@ -0,0 +1,24 @@ +export interface Rect { + width: number; + height: number; +} + +const fitRectIntoBounds = (rect: Rect, bounds: Rect) => { + const rectRatio = rect.width / rect.height; + const boundsRatio = bounds.width / bounds.height; + + const newDimensions: Rect = { width: 0, height: 0 }; + + // Rect is more landscape than bounds - fit to width + if (rectRatio > boundsRatio) { + newDimensions.width = bounds.width; + newDimensions.height = rect.height * (bounds.width / rect.width); + } else { // Rect is more portrait than bounds - fit to height + newDimensions.width = rect.width * (bounds.height / rect.height); + newDimensions.height = bounds.height; + } + + return newDimensions; +}; + +export default fitRectIntoBounds; diff --git a/packages/app-mobile/components/CameraView/utils/useBarcodeScanner.ts b/packages/app-mobile/components/CameraView/utils/useBarcodeScanner.ts new file mode 100644 index 00000000000..b577f16afa1 --- /dev/null +++ b/packages/app-mobile/components/CameraView/utils/useBarcodeScanner.ts @@ -0,0 +1,42 @@ +import { useMemo, useState } from 'react'; + + +interface ScannedData { + text: string; + timestamp: number; +} + +interface BarcodeScanningResult { + type: string; + data: string; +} + +export interface BarcodeScanner { + enabled: boolean; + onToggleEnabled: ()=> void; + onBarcodeScanned: (scan: BarcodeScanningResult)=> void; + lastScan: ScannedData|null; +} + + +const useBarcodeScanner = (): BarcodeScanner => { + const [lastScan, setLastScan] = useState(null); + const [enabled, setEnabled] = useState(true); + return useMemo(() => { + return { + enabled, + onToggleEnabled: () => { + setEnabled(enabled => !enabled); + }, + onBarcodeScanned: enabled ? (scanningResult: BarcodeScanningResult) => { + setLastScan({ + text: scanningResult.data ?? 'null', + timestamp: performance.now(), + }); + } : null, + lastScan, + }; + }, [lastScan, enabled]); +}; + +export default useBarcodeScanner; diff --git a/packages/app-mobile/components/screens/Note.test.tsx b/packages/app-mobile/components/screens/Note.test.tsx index 1de9266c000..59b0b4601f9 100644 --- a/packages/app-mobile/components/screens/Note.test.tsx +++ b/packages/app-mobile/components/screens/Note.test.tsx @@ -3,10 +3,8 @@ import * as React from 'react'; import { describe, it, beforeEach } from '@jest/globals'; import { act, fireEvent, render, screen, userEvent, waitFor } from '@testing-library/react-native'; import '@testing-library/jest-native/extend-expect'; -import { Provider } from 'react-redux'; import NoteScreen from './Note'; -import { MenuProvider } from 'react-native-popup-menu'; import { setupDatabaseAndSynchronizer, switchClient, simulateReadOnlyShareEnv, supportDir, synchronizerStart, resourceFetcher, runWithFakeTimers } from '@joplin/lib/testing/test-utils'; import { waitFor as waitForWithRealTimers } from '@joplin/lib/testing/test-utils'; import Note from '@joplin/lib/models/Note'; @@ -14,7 +12,6 @@ import { AppState } from '../../utils/types'; import { Store } from 'redux'; import createMockReduxStore from '../../utils/testing/createMockReduxStore'; import initializeCommandService from '../../utils/initializeCommandService'; -import { PaperProvider } from 'react-native-paper'; import getWebViewDomById from '../../utils/testing/getWebViewDomById'; import { NoteEntity } from '@joplin/lib/services/database/types'; import Folder from '@joplin/lib/models/Folder'; @@ -29,6 +26,7 @@ import getWebViewWindowById from '../../utils/testing/getWebViewWindowById'; import CodeMirrorControl from '@joplin/editor/CodeMirror/CodeMirrorControl'; import Setting from '@joplin/lib/models/Setting'; import Resource from '@joplin/lib/models/Resource'; +import TestProviderStack from '../testing/TestProviderStack'; interface WrapperProps { } @@ -36,13 +34,9 @@ interface WrapperProps { let store: Store; const WrappedNoteScreen: React.FC = _props => { - return - - - - - - ; + return + + ; }; const getNoteViewerDom = async () => { diff --git a/packages/app-mobile/components/screens/Note.tsx b/packages/app-mobile/components/screens/Note.tsx index d97eacaf42c..fc3881403ad 100644 --- a/packages/app-mobile/components/screens/Note.tsx +++ b/packages/app-mobile/components/screens/Note.tsx @@ -38,7 +38,7 @@ import shared, { BaseNoteScreenComponent, Props as BaseProps } from '@joplin/lib import { Asset, ImagePickerResponse, launchImageLibrary } from 'react-native-image-picker'; import SelectDateTimeDialog from '../SelectDateTimeDialog'; import ShareExtension from '../../utils/ShareExtension.js'; -import CameraView from '../CameraView'; +import CameraView from '../CameraView/CameraView'; import { FolderEntity, NoteEntity, ResourceEntity } from '@joplin/lib/services/database/types'; import Logger from '@joplin/utils/Logger'; import ImageEditor from '../NoteEditor/ImageEditor/ImageEditor'; @@ -63,6 +63,7 @@ import CommandService from '@joplin/lib/services/CommandService'; import { ResourceInfo } from '../NoteBodyViewer/hooks/useRerenderHandler'; import getImageDimensions from '../../utils/image/getImageDimensions'; import resizeImage from '../../utils/image/resizeImage'; +import { CameraResult } from '../CameraView/types'; // eslint-disable-next-line @typescript-eslint/no-explicit-any -- Old code before rule was applied const emptyArray: any[] = []; @@ -680,6 +681,39 @@ class NoteScreenComponent extends BaseScreenComponent implements B return await saveOriginalImage(); } + private async insertText(text: string) { + const newNote = { ...this.state.note }; + + if (this.state.mode === 'edit') { + let newText = ''; + + if (this.selection) { + newText = `\n${text}\n`; + const prefix = newNote.body.substring(0, this.selection.start); + const suffix = newNote.body.substring(this.selection.end); + newNote.body = `${prefix}${newText}${suffix}`; + } else { + newText = `\n${text}`; + newNote.body = `${newNote.body}\n${newText}`; + } + + if (this.useEditorBeta()) { + // The beta editor needs to be explicitly informed of changes + // to the note's body + if (this.editorRef.current) { + this.editorRef.current.insertText(newText); + } else { + logger.info(`Tried to insert text ${text} to the note when the editor is not visible -- updating the note body instead.`); + } + } + } else { + newNote.body += `\n${text}`; + } + + this.setState({ note: newNote }); + return newNote; + } + public async attachFile(pickerResponse: Asset, fileType: string): Promise { if (!pickerResponse) { // User has cancelled @@ -753,36 +787,7 @@ class NoteScreenComponent extends BaseScreenComponent implements B resource = await Resource.save(resource, { isNew: true }); const resourceTag = Resource.markupTag(resource); - - const newNote = { ...this.state.note }; - - if (this.state.mode === 'edit') { - let newText = ''; - - if (this.selection) { - newText = `\n${resourceTag}\n`; - const prefix = newNote.body.substring(0, this.selection.start); - const suffix = newNote.body.substring(this.selection.end); - newNote.body = `${prefix}${newText}${suffix}`; - } else { - newText = `\n${resourceTag}`; - newNote.body = `${newNote.body}\n${newText}`; - } - - if (this.useEditorBeta()) { - // The beta editor needs to be explicitly informed of changes - // to the note's body - if (this.editorRef.current) { - this.editorRef.current.insertText(newText); - } else { - logger.info(`Tried to attach resource ${resource.id} to the note when the editor is not visible -- updating the note body instead.`); - } - } - } else { - newNote.body += `\n${resourceTag}`; - } - - this.setState({ note: newNote }); + const newNote = await this.insertText(resourceTag); void this.refreshResource(resource, newNote.body); @@ -821,19 +826,20 @@ class NoteScreenComponent extends BaseScreenComponent implements B } } - // eslint-disable-next-line @typescript-eslint/no-explicit-any -- Old code before rule was applied - private cameraView_onPhoto(data: any) { + private cameraView_onPhoto(data: CameraResult) { void this.attachFile( - { - uri: data.uri, - type: 'image/jpg', - }, + data, 'image', ); this.setState({ showCamera: false }); } + private cameraView_onInsertBarcode = (data: string) => { + this.setState({ showCamera: false }); + void this.insertText(data); + }; + private cameraView_onCancel() { this.setState({ showCamera: false }); } @@ -1440,7 +1446,12 @@ class NoteScreenComponent extends BaseScreenComponent implements B const isTodo = !!Number(note.is_todo); if (this.state.showCamera) { - return ; + return ; } else if (this.state.showImageEditor) { return { folderEmojiIcon: { ...sidebarIconStyle, ...folderIconBase, - textAlign: undefined, fontSize: theme.fontSize, }, folderImageIcon: { diff --git a/packages/app-mobile/components/testing/TestProviderStack.tsx b/packages/app-mobile/components/testing/TestProviderStack.tsx new file mode 100644 index 00000000000..68eb257206f --- /dev/null +++ b/packages/app-mobile/components/testing/TestProviderStack.tsx @@ -0,0 +1,23 @@ +import * as React from 'react'; +import { PaperProvider } from 'react-native-paper'; +import { MenuProvider } from 'react-native-popup-menu'; +import { Provider } from 'react-redux'; +import { Store } from 'redux'; +import { AppState } from '../../utils/types'; + +interface Props { + store: Store; + children: React.ReactNode; +} + +const TestProviderStack: React.FC = props => { + return + + + {props.children} + + + ; +}; + +export default TestProviderStack; diff --git a/packages/app-mobile/ios/Joplin-Bridging-Header.h b/packages/app-mobile/ios/Joplin-Bridging-Header.h index 1b2cb5d6d09..a95e1c672d2 100644 --- a/packages/app-mobile/ios/Joplin-Bridging-Header.h +++ b/packages/app-mobile/ios/Joplin-Bridging-Header.h @@ -1,3 +1,4 @@ +#import // // Use this file to import your target's public headers that you would like to expose to Swift. // diff --git a/packages/app-mobile/ios/Joplin.xcodeproj/project.pbxproj b/packages/app-mobile/ios/Joplin.xcodeproj/project.pbxproj index 5c6a2bde019..6e6fcd69315 100644 --- a/packages/app-mobile/ios/Joplin.xcodeproj/project.pbxproj +++ b/packages/app-mobile/ios/Joplin.xcodeproj/project.pbxproj @@ -11,6 +11,7 @@ 13B07FBF1A68108700A75B9A /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 13B07FB51A68108700A75B9A /* Images.xcassets */; }; 13B07FC11A68108700A75B9A /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 13B07FB71A68108700A75B9A /* main.m */; }; 46E31F54C547C341F605BB66 /* libPods-Joplin.a in Frameworks */ = {isa = PBXBuildFile; fileRef = A5E1CD825FABD6C4E704EA54 /* libPods-Joplin.a */; }; + 4C036D13E81D8DB9640B0DC1 /* ExpoModulesProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = CF14612B39CE1556A9A31631 /* ExpoModulesProvider.swift */; }; 4D122473270878D700DE23E8 /* wtf.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4D122472270878D700DE23E8 /* wtf.swift */; }; 5E556FC75AECECB13464A724 /* libPods-ShareExtension.a in Frameworks */ = {isa = PBXBuildFile; fileRef = FAC957496DFD2368FFE3C360 /* libPods-ShareExtension.a */; }; 81AB9BB82411601600AC10FF /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */; }; @@ -79,6 +80,7 @@ AE82E4B02599FA3A0013551B /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; B61798F36B3BC123BF8EA4D9 /* libPods-Joplin-tvOS.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-Joplin-tvOS.a"; sourceTree = BUILT_PRODUCTS_DIR; }; BAD33BAC2BE9A08300E9F46A /* PrivacyInfo.xcprivacy */ = {isa = PBXFileReference; lastKnownFileType = text.xml; path = PrivacyInfo.xcprivacy; sourceTree = ""; }; + CF14612B39CE1556A9A31631 /* ExpoModulesProvider.swift */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = sourcecode.swift; name = ExpoModulesProvider.swift; path = "Pods/Target Support Files/Pods-Joplin/ExpoModulesProvider.swift"; sourceTree = ""; }; ED297162215061F000B7C4FE /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = System/Library/Frameworks/JavaScriptCore.framework; sourceTree = SDKROOT; }; ED2971642150620600B7C4FE /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS12.0.sdk/System/Library/Frameworks/JavaScriptCore.framework; sourceTree = DEVELOPER_DIR; }; F69B873C692CE22F1C4C9264 /* libPods-Joplin-JoplinTests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-Joplin-JoplinTests.a"; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -153,6 +155,14 @@ name = Frameworks; sourceTree = ""; }; + 336B5BD29D5BD1737E707672 /* Joplin */ = { + isa = PBXGroup; + children = ( + CF14612B39CE1556A9A31631 /* ExpoModulesProvider.swift */, + ); + name = Joplin; + sourceTree = ""; + }; 832341AE1AAA6A7D00B99B32 /* Libraries */ = { isa = PBXGroup; children = ( @@ -171,6 +181,7 @@ 83CBBA001A601CBA00E9B192 /* Products */, 2D16E6871FA4F8E400B85C8A /* Frameworks */, 9CDB1D9DB6483D893504BFCB /* Pods */, + E67B064D6F5F7E8B1080FDB0 /* ExpoModulesProviders */, ); indentWidth = 2; sourceTree = ""; @@ -215,6 +226,14 @@ path = ShareExtension; sourceTree = ""; }; + E67B064D6F5F7E8B1080FDB0 /* ExpoModulesProviders */ = { + isa = PBXGroup; + children = ( + 336B5BD29D5BD1737E707672 /* Joplin */, + ); + name = ExpoModulesProviders; + sourceTree = ""; + }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ @@ -223,6 +242,7 @@ buildConfigurationList = 13B07F931A680F5B00A75B9A /* Build configuration list for PBXNativeTarget "Joplin" */; buildPhases = ( 335ACF4DE85695BEBB18D8A3 /* [CP] Check Pods Manifest.lock */, + EB61CD887618E406C80EBC43 /* [Expo] Configure project */, 13B07F871A680F5B00A75B9A /* Sources */, 13B07F8C1A680F5B00A75B9A /* Frameworks */, 13B07F8E1A680F5B00A75B9A /* Resources */, @@ -404,6 +424,9 @@ ); inputPaths = ( "${PODS_ROOT}/Target Support Files/Pods-Joplin/Pods-Joplin-resources.sh", + "${PODS_CONFIGURATION_BUILD_DIR}/EXConstants/EXConstants.bundle", + "${PODS_CONFIGURATION_BUILD_DIR}/EXConstants/ExpoConstants_privacy.bundle", + "${PODS_CONFIGURATION_BUILD_DIR}/ExpoFileSystem/ExpoFileSystem_privacy.bundle", "${PODS_CONFIGURATION_BUILD_DIR}/RNDeviceInfo/RNDeviceInfoPrivacyInfo.bundle", "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/AntDesign.ttf", "${PODS_ROOT}/../../node_modules/react-native-vector-icons/Fonts/Entypo.ttf", @@ -428,6 +451,9 @@ ); name = "[CP] Copy Pods Resources"; outputPaths = ( + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/EXConstants.bundle", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/ExpoConstants_privacy.bundle", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/ExpoFileSystem_privacy.bundle", "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/RNDeviceInfoPrivacyInfo.bundle", "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/AntDesign.ttf", "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Entypo.ttf", @@ -455,6 +481,25 @@ shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-Joplin/Pods-Joplin-resources.sh\"\n"; showEnvVarsInLog = 0; }; + EB61CD887618E406C80EBC43 /* [Expo] Configure project */ = { + isa = PBXShellScriptBuildPhase; + alwaysOutOfDate = 1; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + ); + name = "[Expo] Configure project"; + outputFileListPaths = ( + ); + outputPaths = ( + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "# This script configures Expo modules and generates the modules provider file.\nbash -l -c \"./Pods/Target\\ Support\\ Files/Pods-Joplin/expo-configure-project.sh\"\n"; + }; /* End PBXShellScriptBuildPhase section */ /* Begin PBXSourcesBuildPhase section */ @@ -465,6 +510,7 @@ 13B07FBC1A68108700A75B9A /* AppDelegate.mm in Sources */, 4D122473270878D700DE23E8 /* wtf.swift in Sources */, 13B07FC11A68108700A75B9A /* main.m in Sources */, + 4C036D13E81D8DB9640B0DC1 /* ExpoModulesProvider.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -511,7 +557,7 @@ INFOPLIST_FILE = Joplin/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 13.4; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - MARKETING_VERSION = 13.1.5; + MARKETING_VERSION = 13.2.0; OTHER_LDFLAGS = ( "$(inherited)", "-ObjC", @@ -519,6 +565,7 @@ "-weak_framework", SwiftUI, ); + OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_DEBUG"; PRODUCT_BUNDLE_IDENTIFIER = net.cozic.joplin; PRODUCT_NAME = Joplin; SWIFT_OBJC_BRIDGING_HEADER = "Joplin-Bridging-Header.h"; @@ -541,7 +588,7 @@ INFOPLIST_FILE = Joplin/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 13.4; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; - MARKETING_VERSION = 13.1.5; + MARKETING_VERSION = 13.2.0; OTHER_LDFLAGS = ( "$(inherited)", "-ObjC", @@ -549,6 +596,7 @@ "-weak_framework", SwiftUI, ); + OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_RELEASE"; PRODUCT_BUNDLE_IDENTIFIER = net.cozic.joplin; PRODUCT_NAME = Joplin; SWIFT_OBJC_BRIDGING_HEADER = "Joplin-Bridging-Header.h"; @@ -733,7 +781,7 @@ INFOPLIST_FILE = ShareExtension/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 13.4; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks"; - MARKETING_VERSION = 13.1.5; + MARKETING_VERSION = 13.2.0; MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; MTL_FAST_MATH = YES; OTHER_LDFLAGS = ( @@ -743,6 +791,7 @@ "-weak_framework", SwiftUI, ); + OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_DEBUG"; PRODUCT_BUNDLE_IDENTIFIER = net.cozic.joplin.ShareExtension; PRODUCT_NAME = "$(TARGET_NAME)"; SKIP_INSTALL = YES; @@ -771,7 +820,7 @@ INFOPLIST_FILE = ShareExtension/Info.plist; IPHONEOS_DEPLOYMENT_TARGET = 13.4; LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks"; - MARKETING_VERSION = 13.1.5; + MARKETING_VERSION = 13.2.0; MTL_FAST_MATH = YES; OTHER_LDFLAGS = ( "$(inherited)", @@ -780,6 +829,7 @@ "-weak_framework", SwiftUI, ); + OTHER_SWIFT_FLAGS = "$(inherited) -D EXPO_CONFIGURATION_RELEASE"; PRODUCT_BUNDLE_IDENTIFIER = net.cozic.joplin.ShareExtension; PRODUCT_NAME = "$(TARGET_NAME)"; SKIP_INSTALL = YES; diff --git a/packages/app-mobile/ios/Joplin/AppDelegate.h b/packages/app-mobile/ios/Joplin/AppDelegate.h index fa96831ebdf..7115d29821a 100644 --- a/packages/app-mobile/ios/Joplin/AppDelegate.h +++ b/packages/app-mobile/ios/Joplin/AppDelegate.h @@ -1,7 +1,8 @@ #import +#import #import #import -@interface AppDelegate : RCTAppDelegate +@interface AppDelegate : EXAppDelegateWrapper @end diff --git a/packages/app-mobile/ios/Podfile b/packages/app-mobile/ios/Podfile index 48e7b112176..7bc02f25763 100644 --- a/packages/app-mobile/ios/Podfile +++ b/packages/app-mobile/ios/Podfile @@ -1,3 +1,4 @@ +require File.join(File.dirname(`node --print "require.resolve('expo/package.json')"`), "scripts/autolinking") # Resolve react_native_pods.rb with node to allow for hoisting require Pod::Executable.execute_command('node', ['-p', 'require.resolve( @@ -23,6 +24,14 @@ if linkage != nil end target 'Joplin' do + use_expo_modules! + post_integrate do |installer| + begin + expo_patch_react_imports!(installer) + rescue => e + Pod::UI.warn e + end + end config = use_native_modules! use_react_native!( diff --git a/packages/app-mobile/ios/Podfile.lock b/packages/app-mobile/ios/Podfile.lock index 510a2826309..1ed97d484b6 100644 --- a/packages/app-mobile/ios/Podfile.lock +++ b/packages/app-mobile/ios/Podfile.lock @@ -1,6 +1,43 @@ PODS: - boost (1.83.0) - DoubleConversion (1.1.6) + - EXConstants (16.0.2): + - ExpoModulesCore + - Expo (51.0.0): + - ExpoModulesCore + - ExpoAsset (10.0.10): + - ExpoModulesCore + - ExpoCamera (15.0.16): + - ExpoModulesCore + - ZXingObjC/OneD + - ZXingObjC/PDF417 + - ExpoFileSystem (17.0.1): + - ExpoModulesCore + - ExpoFont (12.0.10): + - ExpoModulesCore + - ExpoModulesCore (1.12.9): + - DoubleConversion + - glog + - hermes-engine + - RCT-Folly (= 2024.01.01.00) + - RCTRequired + - RCTTypeSafety + - React-Codegen + - React-Core + - React-debug + - React-Fabric + - React-featureflags + - React-graphics + - React-ImageManager + - React-jsinspector + - React-NativeModulesApple + - React-RCTAppDelegate + - React-RCTFabric + - React-rendererdebug + - React-utils + - ReactCommon/turbomodule/bridging + - ReactCommon/turbomodule/core + - Yoga - FBLazyVector (0.74.1) - fmt (9.1.0) - glog (0.3.5) @@ -941,14 +978,6 @@ PODS: - React-debug - react-native-alarm-notification (3.1.0): - React - - react-native-camera (4.2.1): - - React-Core - - react-native-camera/RCT (= 4.2.1) - - react-native-camera/RN (= 4.2.1) - - react-native-camera/RCT (4.2.1): - - React-Core - - react-native-camera/RN (4.2.1): - - React-Core - react-native-document-picker (9.3.0): - React-Core - react-native-fingerprint-scanner (6.0.0): @@ -1005,7 +1034,7 @@ PODS: - React - react-native-saf-x (3.1.0): - React-Core - - react-native-safe-area-context (4.10.7): + - react-native-safe-area-context (4.10.8): - React-Core - react-native-slider (4.4.4): - DoubleConversion @@ -1032,7 +1061,7 @@ PODS: - React-Core - react-native-version-info (1.1.1): - React-Core - - react-native-webview (13.10.4): + - react-native-webview (13.10.5): - DoubleConversion - glog - hermes-engine @@ -1288,7 +1317,7 @@ PODS: - React-Core - RNCPushNotificationIOS (1.11.0): - React-Core - - RNDateTimePicker (8.0.1): + - RNDateTimePicker (8.1.1): - React-Core - RNDeviceInfo (10.14.0): - React-Core @@ -1337,10 +1366,22 @@ PODS: - SocketRocket (0.7.0) - SSZipArchive (2.4.3) - Yoga (0.0.0) + - ZXingObjC/Core (3.6.9) + - ZXingObjC/OneD (3.6.9): + - ZXingObjC/Core + - ZXingObjC/PDF417 (3.6.9): + - ZXingObjC/Core DEPENDENCIES: - boost (from `../node_modules/react-native/third-party-podspecs/boost.podspec`) - DoubleConversion (from `../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec`) + - EXConstants (from `../node_modules/expo-constants/ios`) + - Expo (from `../node_modules/expo`) + - ExpoAsset (from `../node_modules/expo-asset/ios`) + - ExpoCamera (from `../node_modules/expo-camera/ios`) + - ExpoFileSystem (from `../node_modules/expo-file-system/ios`) + - ExpoFont (from `../node_modules/expo-font/ios`) + - ExpoModulesCore (from `../node_modules/expo-modules-core`) - FBLazyVector (from `../node_modules/react-native/Libraries/FBLazyVector`) - fmt (from `../node_modules/react-native/third-party-podspecs/fmt.podspec`) - glog (from `../node_modules/react-native/third-party-podspecs/glog.podspec`) @@ -1374,7 +1415,6 @@ DEPENDENCIES: - React-logger (from `../node_modules/react-native/ReactCommon/logger`) - React-Mapbuffer (from `../node_modules/react-native/ReactCommon`) - "react-native-alarm-notification (from `../node_modules/@joplin/react-native-alarm-notification`)" - - react-native-camera (from `../node_modules/react-native-camera`) - react-native-document-picker (from `../node_modules/react-native-document-picker`) - react-native-fingerprint-scanner (from `../node_modules/react-native-fingerprint-scanner`) - "react-native-geolocation (from `../node_modules/@react-native-community/geolocation`)" @@ -1432,12 +1472,27 @@ SPEC REPOS: trunk: - SocketRocket - SSZipArchive + - ZXingObjC EXTERNAL SOURCES: boost: :podspec: "../node_modules/react-native/third-party-podspecs/boost.podspec" DoubleConversion: :podspec: "../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec" + EXConstants: + :path: "../node_modules/expo-constants/ios" + Expo: + :path: "../node_modules/expo" + ExpoAsset: + :path: "../node_modules/expo-asset/ios" + ExpoCamera: + :path: "../node_modules/expo-camera/ios" + ExpoFileSystem: + :path: "../node_modules/expo-file-system/ios" + ExpoFont: + :path: "../node_modules/expo-font/ios" + ExpoModulesCore: + :path: "../node_modules/expo-modules-core" FBLazyVector: :path: "../node_modules/react-native/Libraries/FBLazyVector" fmt: @@ -1501,8 +1556,6 @@ EXTERNAL SOURCES: :path: "../node_modules/react-native/ReactCommon" react-native-alarm-notification: :path: "../node_modules/@joplin/react-native-alarm-notification" - react-native-camera: - :path: "../node_modules/react-native-camera" react-native-document-picker: :path: "../node_modules/react-native-document-picker" react-native-fingerprint-scanner: @@ -1611,6 +1664,13 @@ EXTERNAL SOURCES: SPEC CHECKSUMS: boost: d3f49c53809116a5d38da093a8aa78bf551aed09 DoubleConversion: 76ab83afb40bddeeee456813d9c04f67f78771b5 + EXConstants: 409690fbfd5afea964e5e9d6c4eb2c2b59222c59 + Expo: 17eb02cbf2ac0db49a6bc0c80a6b635a900d4f60 + ExpoAsset: 323700f291684f110fb55f0d4022a3362ea9f875 + ExpoCamera: 929be541d1c1319fcf32f9f5d9df8b97804346b5 + ExpoFileSystem: 80bfe850b1f9922c16905822ecbf97acd711dc51 + ExpoFont: 00756e6c796d8f7ee8d211e29c8b619e75cbf238 + ExpoModulesCore: 070bbb7162641709919cbf50230f0b535b8190b1 FBLazyVector: 898d14d17bf19e2435cafd9ea2a1033efe445709 fmt: 4c2741a687cc09f0634a2e2c72a838b99f1ff120 glog: c5d68082e772fa1c511173d6b30a9de2c05a69a2 @@ -1642,7 +1702,6 @@ SPEC CHECKSUMS: React-logger: 7e7403a2b14c97f847d90763af76b84b152b6fce React-Mapbuffer: 11029dcd47c5c9e057a4092ab9c2a8d10a496a33 react-native-alarm-notification: 43183613222c563c071f2c726624f9f6f06e605d - react-native-camera: 3eae183c1d111103963f3dd913b65d01aef8110f react-native-document-picker: 5b97e24a7f1a1e4a50a72c540a043f32d29a70a2 react-native-fingerprint-scanner: ac6656f18c8e45a7459302b84da41a44ad96dbbe react-native-geolocation: fe0562c94eb0b6334f266aea717448dfd9b08cd0 @@ -1652,11 +1711,11 @@ SPEC CHECKSUMS: react-native-netinfo: 076df4f9b07f6670acf4ce9a75aac8d34c2e2ccc react-native-rsa-native: 12132eb627797529fdb1f0d22fd0f8f9678df64a react-native-saf-x: 7dfb7e614512c82dba2dea3401509e1c44f3d1f9 - react-native-safe-area-context: 422017db8bcabbada9ad607d010996c56713234c + react-native-safe-area-context: b7daa1a8df36095a032dff095a1ea8963cb48371 react-native-slider: 03f213d3ffbf919b16298c7896c1b60101d8e137 react-native-sqlite-storage: f6d515e1c446d1e6d026aa5352908a25d4de3261 react-native-version-info: a106f23009ac0db4ee00de39574eb546682579b9 - react-native-webview: 596fb33d67a3cde5a74bf1f6b4c28d3543477fdd + react-native-webview: 553abd09f58e340fdc7746c9e2ae096839e99911 React-nativeconfig: b0073a590774e8b35192fead188a36d1dca23dec React-NativeModulesApple: df46ff3e3de5b842b30b4ca8a6caae6d7c8ab09f React-perflogger: 3d31e0d1e8ad891e43a09ac70b7b17a79773003a @@ -1683,7 +1742,7 @@ SPEC CHECKSUMS: rn-fetch-blob: f065bb7ab7fb48dd002629f8bdcb0336602d3cba RNCClipboard: 0a720adef5ec193aa0e3de24c3977222c7e52a37 RNCPushNotificationIOS: 64218f3c776c03d7408284a819b2abfda1834bc8 - RNDateTimePicker: b6a9b35a785ecbe12b4e7d6de5439d0aa4614146 + RNDateTimePicker: 430174392d275f0ffefb627d04f0f8677f667fed RNDeviceInfo: 59344c19152c4b2b32283005f9737c5c64b42fba RNExitApp: 00036cabe7bacbb413d276d5520bf74ba39afa6a RNFileViewer: ce7ca3ac370e18554d35d6355cffd7c30437c592 @@ -1697,7 +1756,8 @@ SPEC CHECKSUMS: SocketRocket: abac6f5de4d4d62d24e11868d7a2f427e0ef940d SSZipArchive: fe6a26b2a54d5a0890f2567b5cc6de5caa600aef Yoga: 348f8b538c3ed4423eb58a8e5730feec50bce372 + ZXingObjC: 8898711ab495761b2dbbdec76d90164a6d7e14c5 -PODFILE CHECKSUM: 0b954caebefad4e9dc123f5491a2649c02c896ea +PODFILE CHECKSUM: 11a2f8ebab99f816b8905858bff8a86a196b1f7e COCOAPODS: 1.15.2 diff --git a/packages/app-mobile/ios/PrivacyInfo.xcprivacy b/packages/app-mobile/ios/PrivacyInfo.xcprivacy index bc3923f78c2..5bb83c5d432 100644 --- a/packages/app-mobile/ios/PrivacyInfo.xcprivacy +++ b/packages/app-mobile/ios/PrivacyInfo.xcprivacy @@ -4,14 +4,6 @@ NSPrivacyAccessedAPITypes - - NSPrivacyAccessedAPIType - NSPrivacyAccessedAPICategorySystemBootTime - NSPrivacyAccessedAPITypeReasons - - 35F9.1 - - NSPrivacyAccessedAPIType NSPrivacyAccessedAPICategoryUserDefaults @@ -25,6 +17,8 @@ NSPrivacyAccessedAPICategoryFileTimestamp NSPrivacyAccessedAPITypeReasons + 0A2A.1 + 3B52.1 C617.1 @@ -33,8 +27,16 @@ NSPrivacyAccessedAPICategoryDiskSpace NSPrivacyAccessedAPITypeReasons - 85F4.1 E174.1 + 85F4.1 + + + + NSPrivacyAccessedAPIType + NSPrivacyAccessedAPICategorySystemBootTime + NSPrivacyAccessedAPITypeReasons + + 35F9.1 diff --git a/packages/app-mobile/jest.setup.js b/packages/app-mobile/jest.setup.js index 655024e0676..8a4f76c2e8d 100644 --- a/packages/app-mobile/jest.setup.js +++ b/packages/app-mobile/jest.setup.js @@ -55,6 +55,10 @@ jest.mock('./components/ExtendedWebView', () => { return require('./components/ExtendedWebView/index.jest.js'); }); +jest.mock('./components/CameraView/Camera', () => { + return require('./components/CameraView/Camera/index.jest'); +}); + jest.mock('@react-native-clipboard/clipboard', () => { return { default: { getString: jest.fn(), setString: jest.fn() } }; }); diff --git a/packages/app-mobile/package.json b/packages/app-mobile/package.json index 6159a450281..7867cc36745 100644 --- a/packages/app-mobile/package.json +++ b/packages/app-mobile/package.json @@ -2,7 +2,7 @@ "name": "@joplin/app-mobile", "description": "Joplin for Mobile", "license": "AGPL-3.0-or-later", - "version": "3.1.0", + "version": "3.2.0", "private": true, "scripts": { "start": "BROWSERSLIST_IGNORE_OLD_DATA=true react-native start --reset-cache", @@ -21,12 +21,12 @@ }, "dependencies": { "@bam.tech/react-native-image-resizer": "3.0.10", - "@joplin/editor": "~3.1", - "@joplin/lib": "~3.1", - "@joplin/react-native-alarm-notification": "~3.1", - "@joplin/react-native-saf-x": "~3.1", - "@joplin/renderer": "~3.1", - "@joplin/utils": "~3.1", + "@joplin/editor": "~3.2", + "@joplin/lib": "~3.2", + "@joplin/react-native-alarm-notification": "~3.2", + "@joplin/react-native-saf-x": "~3.2", + "@joplin/renderer": "~3.2", + "@joplin/utils": "~3.2", "@react-native-clipboard/clipboard": "1.14.1", "@react-native-community/datetimepicker": "8.1.1", "@react-native-community/geolocation": "3.2.1", @@ -39,6 +39,8 @@ "crypto-browserify": "3.12.0", "deprecated-react-native-prop-types": "5.0.0", "events": "3.3.0", + "expo": "51.0.0", + "expo-camera": "15.0.16", "lodash": "4.17.21", "md5": "2.3.0", "path-browserify": "1.0.1", @@ -46,7 +48,6 @@ "punycode": "2.3.1", "react": "18.3.1", "react-native": "0.74.1", - "react-native-camera": "4.2.1", "react-native-device-info": "10.14.0", "react-native-dialogbox": "0.6.10", "react-native-document-picker": "9.3.0", @@ -62,7 +63,7 @@ "react-native-paper": "5.12.5", "react-native-popup-menu": "0.16.1", "react-native-quick-actions": "0.3.13", - "react-native-quick-crypto": "0.7.2", + "react-native-quick-crypto": "0.7.5", "react-native-rsa-native": "2.0.5", "react-native-safe-area-context": "4.10.8", "react-native-securerandom": "1.0.1", @@ -89,7 +90,7 @@ "@babel/plugin-transform-export-namespace-from": "7.24.7", "@babel/preset-env": "7.24.7", "@babel/runtime": "7.24.7", - "@joplin/tools": "~3.1", + "@joplin/tools": "~3.2", "@js-draw/material-icons": "1.20.3", "@react-native/babel-preset": "0.74.86", "@react-native/metro-config": "0.74.86", @@ -134,5 +135,13 @@ }, "engines": { "node": ">=18" + }, + "expo": { + "autolinking": { + "exclude": [ + "expo-application", + "expo-keep-awake" + ] + } } } diff --git a/packages/app-mobile/root.tsx b/packages/app-mobile/root.tsx index d1b2a3637fa..a7de655bd07 100644 --- a/packages/app-mobile/root.tsx +++ b/packages/app-mobile/root.tsx @@ -948,6 +948,21 @@ class AppComponent extends React.Component { throw error; } + // https://reactnative.dev/docs/linking#handling-deep-links + // + // The handler added with Linking.addEventListener() is only triggered when app is already open. + // + // When the app is not already open and the deep link triggered app launch, + // the URL can be obtained with Linking.getInitialURL(). + // + // We only save the URL here since we want to show the content only + // after biometrics check is passed or known disabled. + const url = await Linking.getInitialURL(); + if (url && isCallbackUrl(url)) { + logger.info('received initial callback url: ', url); + this.callbackUrl = url; + } + const loadedSensorInfo = await sensorInfo(); this.setState({ sensorInfo: loadedSensorInfo }); diff --git a/packages/app-mobile/services/e2ee/crypto.ts b/packages/app-mobile/services/e2ee/crypto.ts index 221103cfd93..09712bb4936 100644 --- a/packages/app-mobile/services/e2ee/crypto.ts +++ b/packages/app-mobile/services/e2ee/crypto.ts @@ -1,6 +1,5 @@ import { Crypto, CryptoBuffer, Digest, CipherAlgorithm, EncryptionResult, EncryptionParameters } from '@joplin/lib/services/e2ee/types'; import QuickCrypto from 'react-native-quick-crypto'; -import { HashAlgorithm } from 'react-native-quick-crypto/lib/typescript/keys'; import type { CipherGCMOptions, CipherGCM, DecipherGCM } from 'crypto'; import { generateNonce as generateNonceShared, @@ -18,7 +17,7 @@ const digestNameMap: DigestNameMap = { const pbkdf2Raw = (password: string, salt: CryptoBuffer, iterations: number, keylen: number, digest: Digest): Promise => { return new Promise((resolve, reject) => { - QuickCrypto.pbkdf2(password, salt, iterations, keylen, digest as HashAlgorithm, (error, result) => { + QuickCrypto.pbkdf2(password, salt, iterations, keylen, digest, (error, result) => { if (error) { reject(error); } else { diff --git a/packages/app-mobile/web/webpack.config.js b/packages/app-mobile/web/webpack.config.js index 0e6f7f53cbc..d43d17b54bd 100644 --- a/packages/app-mobile/web/webpack.config.js +++ b/packages/app-mobile/web/webpack.config.js @@ -73,6 +73,7 @@ module.exports = { 'react-native-zip-archive': emptyLibraryMock, 'react-native-document-picker': emptyLibraryMock, 'react-native-exit-app': emptyLibraryMock, + 'expo-camera': emptyLibraryMock, // Workaround for applying serviceworker types to a single file. // See https://joshuatz.com/posts/2021/strongly-typed-service-workers/. @@ -100,6 +101,7 @@ module.exports = { 'timers': require.resolve('timers-browserify'), 'path': require.resolve('path-browserify'), 'stream': require.resolve('stream-browserify'), + 'crypto': require.resolve('crypto-browserify'), }, }, diff --git a/packages/default-plugins/package.json b/packages/default-plugins/package.json index 82850ba11b6..6c8026e9f7f 100644 --- a/packages/default-plugins/package.json +++ b/packages/default-plugins/package.json @@ -1,6 +1,6 @@ { "name": "@joplin/default-plugins", - "version": "3.1.0", + "version": "3.2.0", "description": "Default plugins bundler", "private": true, "scripts": { @@ -18,7 +18,7 @@ "typescript": "5.4.5" }, "dependencies": { - "@joplin/utils": "~3.1", + "@joplin/utils": "~3.2", "fs-extra": "11.2.0", "yargs": "17.7.2" } diff --git a/packages/editor/package.json b/packages/editor/package.json index e51df206837..91c1d495cf1 100644 --- a/packages/editor/package.json +++ b/packages/editor/package.json @@ -1,6 +1,6 @@ { "name": "@joplin/editor", - "version": "3.1.0", + "version": "3.2.0", "description": "Web-based markdown editor", "private": true, "scripts": { @@ -14,7 +14,7 @@ "url": "git+https://github.com/laurent22/joplin.git" }, "devDependencies": { - "@joplin/lib": "~3.1", + "@joplin/lib": "~3.2", "@testing-library/react-hooks": "8.0.1", "@types/jest": "29.5.12", "@types/react": "18.3.3", diff --git a/packages/fork-htmlparser2/package.json b/packages/fork-htmlparser2/package.json index edb1f86d321..170e5c8d490 100644 --- a/packages/fork-htmlparser2/package.json +++ b/packages/fork-htmlparser2/package.json @@ -46,7 +46,7 @@ }, "devDependencies": { "@types/jest": "29.5.12", - "@types/node": "18.19.42", + "@types/node": "18.19.43", "@typescript-eslint/eslint-plugin": "6.21.0", "@typescript-eslint/parser": "6.21.0", "coveralls": "3.1.1", diff --git a/packages/generator-joplin/generators/app/templates/src/manifest.json b/packages/generator-joplin/generators/app/templates/src/manifest.json index 45e71be79fb..ba166b2540f 100644 --- a/packages/generator-joplin/generators/app/templates/src/manifest.json +++ b/packages/generator-joplin/generators/app/templates/src/manifest.json @@ -1,7 +1,7 @@ { "manifest_version": 1, "id": "<%= pluginId %>", - "app_min_version": "3.1", + "app_min_version": "3.2", "version": "1.0.0", "name": "<%= pluginName %>", "description": "<%= pluginDescription %>", diff --git a/packages/generator-joplin/package.json b/packages/generator-joplin/package.json index 7658ffbaee0..424b9b9a03e 100644 --- a/packages/generator-joplin/package.json +++ b/packages/generator-joplin/package.json @@ -1,6 +1,6 @@ { "name": "generator-joplin", - "version": "3.1.0", + "version": "3.2.0", "description": "Scaffolds out a new Joplin plugin", "homepage": "https://github.com/laurent22/joplin/tree/dev/packages/generator-joplin", "author": { @@ -30,8 +30,8 @@ "yosay": "2.0.2" }, "devDependencies": { - "@joplin/lib": "~3.1", - "@joplin/tools": "~3.1", + "@joplin/lib": "~3.2", + "@joplin/tools": "~3.2", "jest": "29.7.0", "ts-node": "10.9.2" }, diff --git a/packages/htmlpack/package.json b/packages/htmlpack/package.json index a0105cc924b..74ce63b2436 100644 --- a/packages/htmlpack/package.json +++ b/packages/htmlpack/package.json @@ -1,6 +1,6 @@ { "name": "@joplin/htmlpack", - "version": "3.1.0", + "version": "3.2.0", "description": "Pack an HTML file and all its linked resources into a single HTML file", "main": "dist/index.js", "types": "src/index.ts", diff --git a/packages/lib/models/settings/builtInMetadata.ts b/packages/lib/models/settings/builtInMetadata.ts index d052a8568c4..d6a11669183 100644 --- a/packages/lib/models/settings/builtInMetadata.ts +++ b/packages/lib/models/settings/builtInMetadata.ts @@ -14,6 +14,11 @@ const customCssFilePath = (Setting: typeof SettingType, filename: string): strin return `${Setting.value('rootProfileDir')}/${filename}`; }; +export enum CameraDirection { + Back, + Front, +} + const builtInMetadata = (Setting: typeof SettingType) => { const platform = shim.platformName(); const mobilePlatform = shim.mobilePlatform(); @@ -1436,7 +1441,7 @@ const builtInMetadata = (Setting: typeof SettingType) => { 'welcome.wasBuilt': { value: false, type: SettingItemType.Bool, public: false }, 'welcome.enabled': { value: true, type: SettingItemType.Bool, public: false }, - 'camera.type': { value: 0, type: SettingItemType.Int, public: false, appTypes: [AppType.Mobile] }, + 'camera.type': { value: CameraDirection.Back, type: SettingItemType.Int, public: false, appTypes: [AppType.Mobile] }, 'camera.ratio': { value: '4:3', type: SettingItemType.String, public: false, appTypes: [AppType.Mobile] }, 'spellChecker.enabled': { value: true, type: SettingItemType.Bool, isGlobal: true, storage: SettingStorage.File, public: false }, diff --git a/packages/lib/package.json b/packages/lib/package.json index 2d80df52ede..b2f35fdd833 100644 --- a/packages/lib/package.json +++ b/packages/lib/package.json @@ -1,6 +1,6 @@ { "name": "@joplin/lib", - "version": "3.1.0", + "version": "3.2.0", "description": "Joplin Core library", "author": "Laurent Cozic", "homepage": "", @@ -22,7 +22,7 @@ "@types/js-yaml": "4.0.9", "@types/markdown-it": "13.0.9", "@types/mustache": "4.2.5", - "@types/node": "18.19.42", + "@types/node": "18.19.43", "@types/node-rsa": "1.1.4", "@types/react": "18.3.3", "@types/uuid": "9.0.7", @@ -43,11 +43,11 @@ "@joplin/fork-htmlparser2": "^4.1.52", "@joplin/fork-sax": "^1.2.56", "@joplin/fork-uslug": "^1.0.17", - "@joplin/htmlpack": "~3.1", - "@joplin/renderer": "~3.1", + "@joplin/htmlpack": "~3.2", + "@joplin/renderer": "~3.2", "@joplin/turndown": "^4.0.74", "@joplin/turndown-plugin-gfm": "^1.0.56", - "@joplin/utils": "~3.1", + "@joplin/utils": "~3.2", "@types/nanoid": "3.0.0", "async-mutex": "0.5.0", "base-64": "1.0.0", diff --git a/packages/pdf-viewer/package.json b/packages/pdf-viewer/package.json index a856bffc2fb..6ce3b1c4a64 100644 --- a/packages/pdf-viewer/package.json +++ b/packages/pdf-viewer/package.json @@ -1,6 +1,6 @@ { "name": "@joplin/pdf-viewer", - "version": "3.1.0", + "version": "3.2.0", "description": "Provides embedded PDF viewers for Joplin", "main": "dist/main.js", "types": "src/main.ts", @@ -39,7 +39,7 @@ "@fortawesome/fontawesome-svg-core": "6.1.2", "@fortawesome/free-solid-svg-icons": "6.1.2", "@fortawesome/react-fontawesome": "0.2.2", - "@joplin/lib": "~3.1", + "@joplin/lib": "~3.2", "async-mutex": "0.5.0", "pdfjs-dist": "2.16.105", "react": "18.3.1", diff --git a/packages/plugin-repo-cli/package.json b/packages/plugin-repo-cli/package.json index 49ec30a64a3..a5e7904d49b 100644 --- a/packages/plugin-repo-cli/package.json +++ b/packages/plugin-repo-cli/package.json @@ -1,6 +1,6 @@ { "name": "@joplin/plugin-repo-cli", - "version": "3.1.0", + "version": "3.2.0", "description": "", "main": "index.js", "bin": "./dist/index.js", @@ -18,9 +18,9 @@ "author": "", "license": "AGPL-3.0-or-later", "dependencies": { - "@joplin/lib": "~3.1", - "@joplin/tools": "~3.1", - "@joplin/utils": "~3.1", + "@joplin/lib": "~3.2", + "@joplin/tools": "~3.2", + "@joplin/utils": "~3.2", "fs-extra": "11.2.0", "gh-release-assets": "2.0.1", "node-fetch": "2.6.7", @@ -30,7 +30,7 @@ "devDependencies": { "@types/fs-extra": "11.0.4", "@types/jest": "29.5.12", - "@types/node": "18.19.42", + "@types/node": "18.19.43", "jest": "29.7.0", "source-map-loader": "4.0.2", "typescript": "5.4.5", diff --git a/packages/react-native-alarm-notification/package.json b/packages/react-native-alarm-notification/package.json index 9d7b849056f..fe16c37c7d9 100644 --- a/packages/react-native-alarm-notification/package.json +++ b/packages/react-native-alarm-notification/package.json @@ -1,7 +1,7 @@ { "name": "@joplin/react-native-alarm-notification", "title": "React Native Alarm Notification for Joplin. Forked from https://github.com/emekalites/react-native-alarm-notification", - "version": "3.1.0", + "version": "3.2.0", "description": "schedule alarm with notification in react-native", "main": "index.js", "private": true, diff --git a/packages/react-native-saf-x/package.json b/packages/react-native-saf-x/package.json index dd3505086f0..246800d35c0 100644 --- a/packages/react-native-saf-x/package.json +++ b/packages/react-native-saf-x/package.json @@ -1,6 +1,6 @@ { "name": "@joplin/react-native-saf-x", - "version": "3.1.0", + "version": "3.2.0", "description": "a module to help work with scoped storages on android easily", "main": "src/index", "react-native": "src/index", diff --git a/packages/renderer/package.json b/packages/renderer/package.json index 3cf6a8181c3..67f51236727 100644 --- a/packages/renderer/package.json +++ b/packages/renderer/package.json @@ -1,6 +1,6 @@ { "name": "@joplin/renderer", - "version": "3.1.0", + "version": "3.2.0", "description": "The Joplin note renderer, used the mobile and desktop application", "repository": "https://github.com/laurent22/joplin/tree/dev/packages/renderer", "main": "index.js", @@ -21,7 +21,7 @@ "devDependencies": { "@types/jest": "29.5.12", "@types/markdown-it": "13.0.9", - "@types/node": "18.19.42", + "@types/node": "18.19.43", "jest": "29.7.0", "jest-environment-jsdom": "29.7.0", "ts-jest": "29.1.5", @@ -30,7 +30,7 @@ "dependencies": { "@joplin/fork-htmlparser2": "^4.1.52", "@joplin/fork-uslug": "^1.0.17", - "@joplin/utils": "~3.1", + "@joplin/utils": "~3.2", "font-awesome-filetypes": "2.1.0", "fs-extra": "11.2.0", "highlight.js": "11.9.0", diff --git a/packages/server/package.json b/packages/server/package.json index fd60ebb5cec..12935327682 100644 --- a/packages/server/package.json +++ b/packages/server/package.json @@ -1,6 +1,6 @@ { "name": "@joplin/server", - "version": "3.1.0", + "version": "3.2.0", "private": true, "scripts": { "start-dev": "yarn build && JOPLIN_IS_TESTING=1 nodemon --config nodemon.json --ext ts,js,mustache,css,tsx dist/app.js --env dev", @@ -24,9 +24,9 @@ "dependencies": { "@aws-sdk/client-s3": "3.296.0", "@fortawesome/fontawesome-free": "5.15.4", - "@joplin/lib": "~3.1", - "@joplin/renderer": "~3.1", - "@joplin/utils": "~3.1", + "@joplin/lib": "~3.2", + "@joplin/renderer": "~3.2", + "@joplin/utils": "~3.2", "@koa/cors": "3.4.3", "@types/uuid": "9.0.7", "bcryptjs": "2.4.3", @@ -61,7 +61,7 @@ "zxcvbn": "4.4.2" }, "devDependencies": { - "@joplin/tools": "~3.1", + "@joplin/tools": "~3.2", "@rmp135/sql-ts": "1.18.1", "@types/bcryptjs": "2.4.6", "@types/formidable": "2.0.6", diff --git a/packages/tools/cspell/dictionary4.txt b/packages/tools/cspell/dictionary4.txt index a4ad8f0845a..9e1e2b813b9 100644 --- a/packages/tools/cspell/dictionary4.txt +++ b/packages/tools/cspell/dictionary4.txt @@ -136,3 +136,6 @@ Backblaze onnx onnxruntime treeitem +qrcode +Rocketbook +datamatrix diff --git a/packages/tools/package.json b/packages/tools/package.json index ea84bd52b80..182be28dcce 100644 --- a/packages/tools/package.json +++ b/packages/tools/package.json @@ -1,6 +1,6 @@ { "name": "@joplin/tools", - "version": "3.1.0", + "version": "3.2.0", "description": "Various tools for Joplin", "main": "index.js", "author": "Laurent Cozic", @@ -21,9 +21,9 @@ }, "license": "AGPL-3.0-or-later", "dependencies": { - "@joplin/lib": "~3.1", - "@joplin/renderer": "~3.1", - "@joplin/utils": "~3.1", + "@joplin/lib": "~3.2", + "@joplin/renderer": "~3.2", + "@joplin/utils": "~3.2", "compare-versions": "6.1.1", "dayjs": "1.11.12", "execa": "4.1.0", @@ -52,7 +52,7 @@ "@types/js-yaml": "4.0.9", "@types/markdown-it": "13.0.9", "@types/mustache": "4.2.5", - "@types/node": "18.19.42", + "@types/node": "18.19.43", "@types/node-fetch": "2.6.11", "@types/yargs": "17.0.32", "gettext-extractor": "3.8.0", diff --git a/packages/utils/package.json b/packages/utils/package.json index a40978c0ba8..207bf1a675d 100644 --- a/packages/utils/package.json +++ b/packages/utils/package.json @@ -1,6 +1,6 @@ { "name": "@joplin/utils", - "version": "3.1.0", + "version": "3.2.0", "description": "Utilities for Joplin", "repository": "https://github.com/laurent22/joplin/tree/dev/packages/utils", "exports": { diff --git a/readme/about/stats.md b/readme/about/stats.md index 8c1f85229ca..b8f82a1e09f 100644 --- a/readme/about/stats.md +++ b/readme/about/stats.md @@ -1,15 +1,15 @@ --- -updated: 2024-10-01T00:51:19Z +updated: 2024-11-01T00:51:49Z --- # Joplin statistics | Name | Value | | ----- | ----- | -| Total Windows downloads | 5,406,702 | -| Total macOs downloads | 1,803,088 | -| Total Linux downloads | 1,327,251 | -| Windows % | 63% | +| Total Windows downloads | 5,532,957 | +| Total macOs downloads | 1,825,919 | +| Total Linux downloads | 1,351,302 | +| Windows % | 64% | | macOS % | 21% | | Linux % | 16% | @@ -17,195 +17,197 @@ updated: 2024-10-01T00:51:19Z | Version | Date | Windows | macOS | Linux | Total | | ----- | ----- | ----- | ----- | ----- | ----- | -| [v3.1.17](https://github.com/laurent22/joplin/releases/tag/v3.1.17) (p) | 2024-09-26T11:57:54Z | 717 | 144 | 207 | 1,068 | -| [v3.1.15](https://github.com/laurent22/joplin/releases/tag/v3.1.15) (p) | 2024-09-17T09:15:10Z | 1,146 | 210 | 436 | 1,792 | -| [v3.1.8](https://github.com/laurent22/joplin/releases/tag/v3.1.8) (p) | 2024-09-08T20:32:44Z | 1,204 | 237 | 321 | 1,762 | -| [v3.1.6](https://github.com/laurent22/joplin/releases/tag/v3.1.6) (p) | 2024-09-02T13:19:40Z | 945 | 211 | 411 | 1,567 | -| [v3.1.4](https://github.com/laurent22/joplin/releases/tag/v3.1.4) (p) | 2024-08-27T17:46:38Z | 917 | 162 | 240 | 1,319 | -| [v3.0.15](https://github.com/laurent22/joplin/releases/tag/v3.0.15) | 2024-08-21T09:19:58Z | 149,999 | 30,489 | 29,853 | 210,341 | -| [v3.1.3](https://github.com/laurent22/joplin/releases/tag/v3.1.3) (p) | 2024-08-17T13:08:21Z | 1,208 | 258 | 449 | 1,915 | -| [v3.1.2](https://github.com/laurent22/joplin/releases/tag/v3.1.2) (p) | 2024-08-16T09:00:59Z | 408 | 89 | 75 | 572 | -| [v3.1.1](https://github.com/laurent22/joplin/releases/tag/v3.1.1) (p) | 2024-08-10T11:36:02Z | 1,059 | 191 | 252 | 1,502 | -| [v2.14.23](https://github.com/laurent22/joplin/releases/tag/v2.14.23) | 2024-08-07T11:15:25Z | 10,488 | 2,545 | 586 | 13,619 | -| [v3.0.14](https://github.com/laurent22/joplin/releases/tag/v3.0.14) | 2024-07-28T13:55:50Z | 87,621 | 18,528 | 18,673 | 124,822 | -| [v3.0.12](https://github.com/laurent22/joplin/releases/tag/v3.0.12) | 2024-07-02T17:11:14Z | 42,034 | 12,765 | 7,085 | 61,884 | -| [v3.0.11](https://github.com/laurent22/joplin/releases/tag/v3.0.11) (p) | 2024-06-29T10:20:02Z | 829 | 158 | 262 | 1,249 | -| [v3.0.10](https://github.com/laurent22/joplin/releases/tag/v3.0.10) (p) | 2024-06-19T15:24:07Z | 1,605 | 284 | 531 | 2,420 | +| [v3.1.20](https://github.com/laurent22/joplin/releases/tag/v3.1.20) | 2024-10-22T12:21:32Z | 61,941 | 14,872 | 8,135 | 84,948 | +| [v3.1.18](https://github.com/laurent22/joplin/releases/tag/v3.1.18) (p) | 2024-10-11T23:27:10Z | 1,466 | 263 | 545 | 2,274 | +| [v3.1.17](https://github.com/laurent22/joplin/releases/tag/v3.1.17) (p) | 2024-09-26T11:57:54Z | 1,673 | 339 | 512 | 2,524 | +| [v3.1.15](https://github.com/laurent22/joplin/releases/tag/v3.1.15) (p) | 2024-09-17T09:15:10Z | 1,161 | 212 | 470 | 1,843 | +| [v3.1.8](https://github.com/laurent22/joplin/releases/tag/v3.1.8) (p) | 2024-09-08T20:32:44Z | 1,205 | 240 | 324 | 1,769 | +| [v3.1.6](https://github.com/laurent22/joplin/releases/tag/v3.1.6) (p) | 2024-09-02T13:19:40Z | 946 | 212 | 416 | 1,574 | +| [v3.1.4](https://github.com/laurent22/joplin/releases/tag/v3.1.4) (p) | 2024-08-27T17:46:38Z | 927 | 163 | 240 | 1,330 | +| [v3.0.15](https://github.com/laurent22/joplin/releases/tag/v3.0.15) | 2024-08-21T09:19:58Z | 201,246 | 37,694 | 44,570 | 283,510 | +| [v3.1.3](https://github.com/laurent22/joplin/releases/tag/v3.1.3) (p) | 2024-08-17T13:08:21Z | 1,210 | 262 | 462 | 1,934 | +| [v3.1.2](https://github.com/laurent22/joplin/releases/tag/v3.1.2) (p) | 2024-08-16T09:00:59Z | 419 | 89 | 75 | 583 | +| [v3.1.1](https://github.com/laurent22/joplin/releases/tag/v3.1.1) (p) | 2024-08-10T11:36:02Z | 1,063 | 194 | 255 | 1,512 | +| [v2.14.23](https://github.com/laurent22/joplin/releases/tag/v2.14.23) | 2024-08-07T11:15:25Z | 10,554 | 2,556 | 589 | 13,699 | +| [v3.0.14](https://github.com/laurent22/joplin/releases/tag/v3.0.14) | 2024-07-28T13:55:50Z | 87,941 | 18,539 | 18,721 | 125,201 | +| [v3.0.12](https://github.com/laurent22/joplin/releases/tag/v3.0.12) | 2024-07-02T17:11:14Z | 42,318 | 12,772 | 7,121 | 62,211 | +| [v3.0.11](https://github.com/laurent22/joplin/releases/tag/v3.0.11) (p) | 2024-06-29T10:20:02Z | 830 | 159 | 262 | 1,251 | +| [v3.0.10](https://github.com/laurent22/joplin/releases/tag/v3.0.10) (p) | 2024-06-19T15:24:07Z | 1,605 | 284 | 533 | 2,422 | | [v3.0.9](https://github.com/laurent22/joplin/releases/tag/v3.0.9) (p) | 2024-06-12T19:07:50Z | 1,253 | 251 | 376 | 1,880 | -| [v3.0.8](https://github.com/laurent22/joplin/releases/tag/v3.0.8) (p) | 2024-05-22T14:20:45Z | 2,639 | 0 | 905 | 3,544 | -| [v2.14.22](https://github.com/laurent22/joplin/releases/tag/v2.14.22) | 2024-05-22T19:19:02Z | 141,497 | 30,503 | 25,425 | 197,425 | -| [v3.0.6](https://github.com/laurent22/joplin/releases/tag/v3.0.6) (p) | 2024-04-27T13:16:04Z | 2,987 | 677 | 857 | 4,521 | -| [v3.0.3](https://github.com/laurent22/joplin/releases/tag/v3.0.3) (p) | 2024-04-18T15:41:38Z | 1,467 | 299 | 325 | 2,091 | -| [v3.0.2](https://github.com/laurent22/joplin/releases/tag/v3.0.2) (p) | 2024-03-21T18:18:49Z | 2,828 | 689 | 1,090 | 4,607 | -| [v2.14.20](https://github.com/laurent22/joplin/releases/tag/v2.14.20) | 2024-03-18T17:05:17Z | 190,741 | 39,279 | 38,152 | 268,172 | -| [v2.14.19](https://github.com/laurent22/joplin/releases/tag/v2.14.19) | 2024-03-08T10:45:16Z | 63,741 | 18,463 | 8,539 | 90,743 | -| [v2.14.17](https://github.com/laurent22/joplin/releases/tag/v2.14.17) | 2024-03-01T18:10:26Z | 62,521 | 18,620 | 7,606 | 88,747 | -| [v2.14.16](https://github.com/laurent22/joplin/releases/tag/v2.14.16) (p) | 2024-02-22T22:49:10Z | 1,339 | 280 | 376 | 1,995 | -| [v2.14.15](https://github.com/laurent22/joplin/releases/tag/v2.14.15) (p) | 2024-02-19T11:24:57Z | 844 | 177 | 183 | 1,204 | -| [v2.14.14](https://github.com/laurent22/joplin/releases/tag/v2.14.14) (p) | 2024-02-10T16:03:08Z | 1,265 | 242 | 377 | 1,884 | +| [v3.0.8](https://github.com/laurent22/joplin/releases/tag/v3.0.8) (p) | 2024-05-22T14:20:45Z | 2,644 | 0 | 905 | 3,549 | +| [v2.14.22](https://github.com/laurent22/joplin/releases/tag/v2.14.22) | 2024-05-22T19:19:02Z | 141,691 | 30,541 | 25,431 | 197,663 | +| [v3.0.6](https://github.com/laurent22/joplin/releases/tag/v3.0.6) (p) | 2024-04-27T13:16:04Z | 2,991 | 679 | 859 | 4,529 | +| [v3.0.3](https://github.com/laurent22/joplin/releases/tag/v3.0.3) (p) | 2024-04-18T15:41:38Z | 1,469 | 301 | 326 | 2,096 | +| [v3.0.2](https://github.com/laurent22/joplin/releases/tag/v3.0.2) (p) | 2024-03-21T18:18:49Z | 2,832 | 692 | 1,091 | 4,615 | +| [v2.14.20](https://github.com/laurent22/joplin/releases/tag/v2.14.20) | 2024-03-18T17:05:17Z | 190,999 | 39,326 | 38,161 | 268,486 | +| [v2.14.19](https://github.com/laurent22/joplin/releases/tag/v2.14.19) | 2024-03-08T10:45:16Z | 63,877 | 18,465 | 8,539 | 90,881 | +| [v2.14.17](https://github.com/laurent22/joplin/releases/tag/v2.14.17) | 2024-03-01T18:10:26Z | 62,645 | 18,621 | 7,608 | 88,874 | +| [v2.14.16](https://github.com/laurent22/joplin/releases/tag/v2.14.16) (p) | 2024-02-22T22:49:10Z | 1,340 | 280 | 376 | 1,996 | +| [v2.14.15](https://github.com/laurent22/joplin/releases/tag/v2.14.15) (p) | 2024-02-19T11:24:57Z | 845 | 177 | 186 | 1,208 | +| [v2.14.14](https://github.com/laurent22/joplin/releases/tag/v2.14.14) (p) | 2024-02-10T16:03:08Z | 1,266 | 242 | 377 | 1,885 | | [v2.14.13](https://github.com/laurent22/joplin/releases/tag/v2.14.13) (p) | 2024-02-09T16:31:54Z | 409 | 79 | 79 | 567 | -| [v2.14.12](https://github.com/laurent22/joplin/releases/tag/v2.14.12) (p) | 2024-02-03T12:11:47Z | 963 | 213 | 242 | 1,418 | -| [v2.14.11](https://github.com/laurent22/joplin/releases/tag/v2.14.11) (p) | 2024-01-26T11:53:05Z | 1,258 | 256 | 453 | 1,967 | -| [v2.14.10](https://github.com/laurent22/joplin/releases/tag/v2.14.10) (p) | 2024-01-18T22:45:04Z | 2,068 | 266 | 368 | 2,702 | -| [v2.13.15](https://github.com/laurent22/joplin/releases/tag/v2.13.15) | 2024-01-15T13:01:19Z | 148,405 | 34,111 | 29,235 | 211,751 | -| [v2.13.14](https://github.com/laurent22/joplin/releases/tag/v2.13.14) | 2024-01-13T19:11:04Z | 18,918 | 7,819 | 2,357 | 29,094 | +| [v2.14.12](https://github.com/laurent22/joplin/releases/tag/v2.14.12) (p) | 2024-02-03T12:11:47Z | 964 | 214 | 242 | 1,420 | +| [v2.14.11](https://github.com/laurent22/joplin/releases/tag/v2.14.11) (p) | 2024-01-26T11:53:05Z | 1,260 | 257 | 455 | 1,972 | +| [v2.14.10](https://github.com/laurent22/joplin/releases/tag/v2.14.10) (p) | 2024-01-18T22:45:04Z | 2,069 | 266 | 368 | 2,703 | +| [v2.13.15](https://github.com/laurent22/joplin/releases/tag/v2.13.15) | 2024-01-15T13:01:19Z | 148,561 | 34,113 | 29,238 | 211,912 | +| [v2.13.14](https://github.com/laurent22/joplin/releases/tag/v2.13.14) | 2024-01-13T19:11:04Z | 19,028 | 7,821 | 2,357 | 29,206 | | [v2.14.9](https://github.com/laurent22/joplin/releases/tag/v2.14.9) (p) | 2024-01-11T22:17:59Z | 1,053 | 0 | 237 | 1,290 | | [v2.14.8](https://github.com/laurent22/joplin/releases/tag/v2.14.8) (p) | 2024-01-09T22:57:07Z | 748 | 233 | 173 | 1,154 | | [v2.14.7](https://github.com/laurent22/joplin/releases/tag/v2.14.7) (p) | 2024-01-08T11:51:49Z | 617 | 124 | 172 | 913 | | [v2.14.6](https://github.com/laurent22/joplin/releases/tag/v2.14.6) (p) | 2024-01-06T16:38:32Z | 720 | 147 | 145 | 1,012 | -| [v2.13.13](https://github.com/laurent22/joplin/releases/tag/v2.13.13) | 2024-01-06T13:33:11Z | 52,591 | 15,928 | 6,343 | 74,862 | -| [v2.13.12](https://github.com/laurent22/joplin/releases/tag/v2.13.12) | 2023-12-31T16:08:02Z | 44,123 | 14,277 | 5,081 | 63,481 | -| [v2.13.11](https://github.com/laurent22/joplin/releases/tag/v2.13.11) | 2023-12-24T12:58:53Z | 45,134 | 13,259 | 5,969 | 64,362 | -| [v2.13.10](https://github.com/laurent22/joplin/releases/tag/v2.13.10) | 2023-12-22T10:11:08Z | 19,227 | 8,677 | 1,439 | 29,343 | -| [v2.13.9](https://github.com/laurent22/joplin/releases/tag/v2.13.9) | 2023-12-09T17:18:58Z | 66,900 | 21,919 | 8,590 | 97,409 | -| [v2.13.8](https://github.com/laurent22/joplin/releases/tag/v2.13.8) | 2023-12-03T12:07:08Z | 49,689 | 17,895 | 5,208 | 72,792 | -| [v2.13.6](https://github.com/laurent22/joplin/releases/tag/v2.13.6) (p) | 2023-11-17T19:24:03Z | 2,149 | 442 | 570 | 3,161 | +| [v2.13.13](https://github.com/laurent22/joplin/releases/tag/v2.13.13) | 2024-01-06T13:33:11Z | 52,789 | 15,928 | 6,343 | 75,060 | +| [v2.13.12](https://github.com/laurent22/joplin/releases/tag/v2.13.12) | 2023-12-31T16:08:02Z | 44,289 | 14,278 | 5,081 | 63,648 | +| [v2.13.11](https://github.com/laurent22/joplin/releases/tag/v2.13.11) | 2023-12-24T12:58:53Z | 45,260 | 13,260 | 5,969 | 64,489 | +| [v2.13.10](https://github.com/laurent22/joplin/releases/tag/v2.13.10) | 2023-12-22T10:11:08Z | 19,281 | 8,680 | 1,441 | 29,402 | +| [v2.13.9](https://github.com/laurent22/joplin/releases/tag/v2.13.9) | 2023-12-09T17:18:58Z | 67,025 | 21,921 | 8,593 | 97,539 | +| [v2.13.8](https://github.com/laurent22/joplin/releases/tag/v2.13.8) | 2023-12-03T12:07:08Z | 49,822 | 17,899 | 5,209 | 72,930 | +| [v2.13.6](https://github.com/laurent22/joplin/releases/tag/v2.13.6) (p) | 2023-11-17T19:24:03Z | 2,150 | 442 | 570 | 3,162 | | [v2.13.5](https://github.com/laurent22/joplin/releases/tag/v2.13.5) (p) | 2023-11-09T20:24:09Z | 1,464 | 337 | 435 | 2,236 | | [v2.13.4](https://github.com/laurent22/joplin/releases/tag/v2.13.4) (p) | 2023-10-31T00:01:00Z | 1,532 | 368 | 478 | 2,378 | -| [v2.13.3](https://github.com/laurent22/joplin/releases/tag/v2.13.3) (p) | 2023-10-24T09:25:33Z | 1,292 | 279 | 299 | 1,870 | -| [v2.12.19](https://github.com/laurent22/joplin/releases/tag/v2.12.19) | 2023-10-21T09:39:18Z | 165,203 | 43,643 | 27,815 | 236,661 | -| [v2.13.2](https://github.com/laurent22/joplin/releases/tag/v2.13.2) (p) | 2023-10-06T17:00:07Z | 2,018 | 502 | 699 | 3,219 | -| [v2.12.18](https://github.com/laurent22/joplin/releases/tag/v2.12.18) | 2023-09-22T14:37:24Z | 107,598 | 36,505 | 18,675 | 162,778 | -| [v2.12.17](https://github.com/laurent22/joplin/releases/tag/v2.12.17) | 2023-09-14T21:54:52Z | 46,636 | 21,025 | 6,620 | 74,281 | -| [v2.13.1](https://github.com/laurent22/joplin/releases/tag/v2.13.1) (p) | 2023-09-13T09:31:50Z | 1,388 | 425 | 658 | 2,471 | -| [v2.12.16](https://github.com/laurent22/joplin/releases/tag/v2.12.16) | 2023-09-11T22:33:37Z | 27,930 | 14,659 | 2,442 | 45,031 | -| [v2.12.15](https://github.com/laurent22/joplin/releases/tag/v2.12.15) | 2023-08-27T11:35:39Z | 63,253 | 27,987 | 8,272 | 99,512 | -| [v2.12.12](https://github.com/laurent22/joplin/releases/tag/v2.12.12) (p) | 2023-08-19T22:44:56Z | 2,195 | 384 | 422 | 3,001 | -| [v2.12.10](https://github.com/laurent22/joplin/releases/tag/v2.12.10) (p) | 2023-07-30T18:25:58Z | 6,851 | 3,810 | 911 | 11,572 | -| [v2.12.9](https://github.com/laurent22/joplin/releases/tag/v2.12.9) (p) | 2023-07-25T16:06:08Z | 1,676 | 366 | 318 | 2,360 | -| [v2.12.7](https://github.com/laurent22/joplin/releases/tag/v2.12.7) (p) | 2023-07-13T12:55:31Z | 2,072 | 657 | 589 | 3,318 | -| [v2.12.5](https://github.com/laurent22/joplin/releases/tag/v2.12.5) (p) | 2023-07-12T15:03:46Z | 1,588 | 156 | 144 | 1,888 | -| [v2.12.4](https://github.com/laurent22/joplin/releases/tag/v2.12.4) (p) | 2023-07-07T22:36:53Z | 1,043 | 425 | 213 | 1,681 | -| [v2.12.3](https://github.com/laurent22/joplin/releases/tag/v2.12.3) (p) | 2023-07-07T10:16:55Z | 375 | 180 | 91 | 646 | -| [v2.11.11](https://github.com/laurent22/joplin/releases/tag/v2.11.11) | 2023-06-23T15:16:37Z | 188,082 | 67,202 | 38,810 | 294,094 | +| [v2.13.3](https://github.com/laurent22/joplin/releases/tag/v2.13.3) (p) | 2023-10-24T09:25:33Z | 1,292 | 279 | 300 | 1,871 | +| [v2.12.19](https://github.com/laurent22/joplin/releases/tag/v2.12.19) | 2023-10-21T09:39:18Z | 165,380 | 43,644 | 27,816 | 236,840 | +| [v2.13.2](https://github.com/laurent22/joplin/releases/tag/v2.13.2) (p) | 2023-10-06T17:00:07Z | 2,018 | 502 | 700 | 3,220 | +| [v2.12.18](https://github.com/laurent22/joplin/releases/tag/v2.12.18) | 2023-09-22T14:37:24Z | 107,782 | 36,510 | 18,684 | 162,976 | +| [v2.12.17](https://github.com/laurent22/joplin/releases/tag/v2.12.17) | 2023-09-14T21:54:52Z | 46,757 | 21,026 | 6,622 | 74,405 | +| [v2.13.1](https://github.com/laurent22/joplin/releases/tag/v2.13.1) (p) | 2023-09-13T09:31:50Z | 1,388 | 425 | 659 | 2,472 | +| [v2.12.16](https://github.com/laurent22/joplin/releases/tag/v2.12.16) | 2023-09-11T22:33:37Z | 27,995 | 14,661 | 2,442 | 45,098 | +| [v2.12.15](https://github.com/laurent22/joplin/releases/tag/v2.12.15) | 2023-08-27T11:35:39Z | 63,402 | 27,999 | 8,297 | 99,698 | +| [v2.12.12](https://github.com/laurent22/joplin/releases/tag/v2.12.12) (p) | 2023-08-19T22:44:56Z | 2,270 | 384 | 426 | 3,080 | +| [v2.12.10](https://github.com/laurent22/joplin/releases/tag/v2.12.10) (p) | 2023-07-30T18:25:58Z | 6,916 | 3,810 | 911 | 11,637 | +| [v2.12.9](https://github.com/laurent22/joplin/releases/tag/v2.12.9) (p) | 2023-07-25T16:06:08Z | 1,735 | 366 | 318 | 2,419 | +| [v2.12.7](https://github.com/laurent22/joplin/releases/tag/v2.12.7) (p) | 2023-07-13T12:55:31Z | 2,089 | 657 | 590 | 3,336 | +| [v2.12.5](https://github.com/laurent22/joplin/releases/tag/v2.12.5) (p) | 2023-07-12T15:03:46Z | 1,614 | 156 | 145 | 1,915 | +| [v2.12.4](https://github.com/laurent22/joplin/releases/tag/v2.12.4) (p) | 2023-07-07T22:36:53Z | 1,044 | 425 | 213 | 1,682 | +| [v2.12.3](https://github.com/laurent22/joplin/releases/tag/v2.12.3) (p) | 2023-07-07T10:16:55Z | 377 | 183 | 92 | 652 | +| [v2.11.11](https://github.com/laurent22/joplin/releases/tag/v2.11.11) | 2023-06-23T15:16:37Z | 188,227 | 67,206 | 38,821 | 294,254 | | [v2.11.9](https://github.com/laurent22/joplin/releases/tag/v2.11.9) (p) | 2023-06-06T16:23:27Z | 2,293 | 571 | 742 | 3,606 | -| [v2.11.6](https://github.com/laurent22/joplin/releases/tag/v2.11.6) (p) | 2023-05-31T20:13:08Z | 1,153 | 430 | 340 | 1,923 | -| [v2.11.5](https://github.com/laurent22/joplin/releases/tag/v2.11.5) (p) | 2023-05-28T00:41:40Z | 1,012 | 303 | 278 | 1,593 | -| [v2.10.19](https://github.com/laurent22/joplin/releases/tag/v2.10.19) | 2023-05-17T12:25:41Z | 123,472 | 48,322 | 22,461 | 194,255 | +| [v2.11.6](https://github.com/laurent22/joplin/releases/tag/v2.11.6) (p) | 2023-05-31T20:13:08Z | 1,154 | 430 | 341 | 1,925 | +| [v2.11.5](https://github.com/laurent22/joplin/releases/tag/v2.11.5) (p) | 2023-05-28T00:41:40Z | 1,013 | 303 | 278 | 1,594 | +| [v2.10.19](https://github.com/laurent22/joplin/releases/tag/v2.10.19) | 2023-05-17T12:25:41Z | 123,592 | 48,322 | 22,462 | 194,376 | | [v2.11.4](https://github.com/laurent22/joplin/releases/tag/v2.11.4) (p) | 2023-05-16T10:02:21Z | 1,076 | 463 | 409 | 1,948 | -| [v2.11.3](https://github.com/laurent22/joplin/releases/tag/v2.11.3) (p) | 2023-05-16T09:09:57Z | 115 | 37 | 36 | 188 | -| [v2.10.18](https://github.com/laurent22/joplin/releases/tag/v2.10.18) | 2023-05-09T13:27:43Z | 55,537 | 24,243 | 6,766 | 86,546 | -| [v2.10.17](https://github.com/laurent22/joplin/releases/tag/v2.10.17) | 2023-05-08T17:27:28Z | 18,280 | 11,504 | 883 | 30,667 | -| [v2.10.16](https://github.com/laurent22/joplin/releases/tag/v2.10.16) | 2023-04-27T09:27:45Z | 8,586 | 4,246 | 777 | 13,609 | +| [v2.11.3](https://github.com/laurent22/joplin/releases/tag/v2.11.3) (p) | 2023-05-16T09:09:57Z | 117 | 37 | 36 | 190 | +| [v2.10.18](https://github.com/laurent22/joplin/releases/tag/v2.10.18) | 2023-05-09T13:27:43Z | 55,620 | 24,245 | 6,766 | 86,631 | +| [v2.10.17](https://github.com/laurent22/joplin/releases/tag/v2.10.17) | 2023-05-08T17:27:28Z | 18,373 | 11,504 | 883 | 30,760 | +| [v2.10.16](https://github.com/laurent22/joplin/releases/tag/v2.10.16) | 2023-04-27T09:27:45Z | 8,659 | 4,247 | 777 | 13,683 | | [v2.10.15](https://github.com/laurent22/joplin/releases/tag/v2.10.15) (p) | 2023-04-26T22:02:16Z | 370 | 139 | 56 | 565 | -| [v2.10.13](https://github.com/laurent22/joplin/releases/tag/v2.10.13) (p) | 2023-04-03T16:53:46Z | 4,011 | 828 | 1,077 | 5,916 | -| [v2.10.12](https://github.com/laurent22/joplin/releases/tag/v2.10.12) (p) | 2023-03-23T12:17:13Z | 2,985 | 518 | 604 | 4,107 | -| [v2.10.11](https://github.com/laurent22/joplin/releases/tag/v2.10.11) (p) | 2023-03-17T10:54:02Z | 2,345 | 381 | 389 | 3,115 | -| [v2.10.10](https://github.com/laurent22/joplin/releases/tag/v2.10.10) (p) | 2023-03-13T23:16:37Z | 1,856 | 281 | 254 | 2,391 | -| [v2.10.9](https://github.com/laurent22/joplin/releases/tag/v2.10.9) (p) | 2023-03-12T16:16:45Z | 1,389 | 213 | 295 | 1,897 | -| [v2.10.8](https://github.com/laurent22/joplin/releases/tag/v2.10.8) (p) | 2023-02-26T12:53:55Z | 3,874 | 573 | 871 | 5,318 | -| [v2.10.7](https://github.com/laurent22/joplin/releases/tag/v2.10.7) (p) | 2023-02-24T10:56:20Z | 1,521 | 189 | 277 | 1,987 | -| [v2.10.6](https://github.com/laurent22/joplin/releases/tag/v2.10.6) (p) | 2023-02-20T14:00:05Z | 2,336 | 341 | 289 | 2,966 | -| [v2.10.5](https://github.com/laurent22/joplin/releases/tag/v2.10.5) | 2023-01-16T15:00:53Z | 361 | 99 | 305 | 765 | -| [v2.10.4](https://github.com/laurent22/joplin/releases/tag/v2.10.4) (p) | 2023-01-05T13:09:20Z | 7,538 | 1,302 | 1,809 | 10,649 | -| [v2.10.3](https://github.com/laurent22/joplin/releases/tag/v2.10.3) (p) | 2022-12-31T15:53:23Z | 2,115 | 312 | 410 | 2,837 | -| [v2.10.2](https://github.com/laurent22/joplin/releases/tag/v2.10.2) (p) | 2022-12-18T18:05:08Z | 3,543 | 585 | 633 | 4,761 | -| [v2.9.17](https://github.com/laurent22/joplin/releases/tag/v2.9.17) | 2022-11-15T10:28:37Z | 334,422 | 108,773 | 83,307 | 526,502 | -| [v2.9.12](https://github.com/laurent22/joplin/releases/tag/v2.9.12) (p) | 2022-11-01T17:06:05Z | 10,731 | 610 | 538 | 11,879 | -| [v2.9.11](https://github.com/laurent22/joplin/releases/tag/v2.9.11) (p) | 2022-10-23T16:09:58Z | 2,880 | 528 | 753 | 4,161 | -| [v2.9.4](https://github.com/laurent22/joplin/releases/tag/v2.9.4) (p) | 2022-08-18T16:52:26Z | 7,930 | 1,866 | 2,191 | 11,987 | -| [v2.9.3](https://github.com/laurent22/joplin/releases/tag/v2.9.3) (p) | 2022-08-18T13:11:09Z | 341 | 90 | 268 | 699 | -| [v2.9.2](https://github.com/laurent22/joplin/releases/tag/v2.9.2) (p) | 2022-08-12T18:12:12Z | 1,522 | 446 | 0 | 1,968 | -| [v2.9.1](https://github.com/laurent22/joplin/releases/tag/v2.9.1) (p) | 2022-07-11T09:59:32Z | 7,347 | 1,338 | 1,400 | 10,085 | -| [v2.8.8](https://github.com/laurent22/joplin/releases/tag/v2.8.8) | 2022-05-17T14:48:06Z | 350,369 | 114,320 | 113,545 | 578,234 | -| [v2.8.7](https://github.com/laurent22/joplin/releases/tag/v2.8.7) (p) | 2022-05-06T11:34:27Z | 3,876 | 363 | 421 | 4,660 | -| [v2.8.6](https://github.com/laurent22/joplin/releases/tag/v2.8.6) (p) | 2022-05-03T10:08:25Z | 3,499 | 402 | 328 | 4,229 | -| [v2.8.5](https://github.com/laurent22/joplin/releases/tag/v2.8.5) (p) | 2022-04-27T13:51:50Z | 3,590 | 369 | 350 | 4,309 | -| [v2.8.4](https://github.com/laurent22/joplin/releases/tag/v2.8.4) (p) | 2022-04-19T18:00:09Z | 4,088 | 588 | 326 | 5,002 | -| [v2.8.2](https://github.com/laurent22/joplin/releases/tag/v2.8.2) (p) | 2022-04-14T11:35:45Z | 3,485 | 278 | 265 | 4,028 | -| [v2.7.15](https://github.com/laurent22/joplin/releases/tag/v2.7.15) | 2022-03-17T13:03:23Z | 155,606 | 56,771 | 51,253 | 263,630 | -| [v2.7.14](https://github.com/laurent22/joplin/releases/tag/v2.7.14) | 2022-02-27T11:30:53Z | 34,020 | 16,780 | 4,802 | 55,602 | -| [v2.7.13](https://github.com/laurent22/joplin/releases/tag/v2.7.13) | 2022-02-24T17:42:12Z | 54,401 | 25,723 | 11,712 | 91,836 | -| [v2.7.12](https://github.com/laurent22/joplin/releases/tag/v2.7.12) (p) | 2022-02-14T15:06:14Z | 4,266 | 463 | 480 | 5,209 | -| [v2.7.11](https://github.com/laurent22/joplin/releases/tag/v2.7.11) (p) | 2022-02-12T13:00:02Z | 3,403 | 194 | 166 | 3,763 | -| [v2.7.10](https://github.com/laurent22/joplin/releases/tag/v2.7.10) (p) | 2022-02-11T18:19:09Z | 2,923 | 124 | 82 | 3,129 | -| [v2.7.8](https://github.com/laurent22/joplin/releases/tag/v2.7.8) (p) | 2022-01-19T09:35:27Z | 5,135 | 769 | 823 | 6,727 | -| [v2.7.7](https://github.com/laurent22/joplin/releases/tag/v2.7.7) (p) | 2022-01-18T14:05:07Z | 3,243 | 156 | 135 | 3,534 | -| [v2.7.6](https://github.com/laurent22/joplin/releases/tag/v2.7.6) (p) | 2022-01-17T17:08:28Z | 3,169 | 182 | 114 | 3,465 | -| [v2.6.10](https://github.com/laurent22/joplin/releases/tag/v2.6.10) | 2021-12-19T11:31:16Z | 135,441 | 51,195 | 49,299 | 235,935 | -| [v2.6.9](https://github.com/laurent22/joplin/releases/tag/v2.6.9) | 2021-12-17T11:57:32Z | 18,589 | 9,495 | 3,184 | 31,268 | -| [v2.6.7](https://github.com/laurent22/joplin/releases/tag/v2.6.7) (p) | 2021-12-16T10:47:23Z | 3,366 | 163 | 102 | 3,631 | -| [v2.6.6](https://github.com/laurent22/joplin/releases/tag/v2.6.6) (p) | 2021-12-13T12:31:43Z | 3,389 | 256 | 166 | 3,811 | -| [v2.6.5](https://github.com/laurent22/joplin/releases/tag/v2.6.5) (p) | 2021-12-13T10:07:04Z | 2,715 | 50 | 30 | 2,795 | -| [v2.6.4](https://github.com/laurent22/joplin/releases/tag/v2.6.4) (p) | 2021-12-09T19:53:43Z | 3,439 | 288 | 200 | 3,927 | -| [v2.6.2](https://github.com/laurent22/joplin/releases/tag/v2.6.2) (p) | 2021-11-18T12:19:12Z | 5,242 | 792 | 701 | 6,735 | -| [v2.5.12](https://github.com/laurent22/joplin/releases/tag/v2.5.12) | 2021-11-08T11:07:11Z | 82,231 | 32,503 | 25,226 | 139,960 | -| [v2.5.10](https://github.com/laurent22/joplin/releases/tag/v2.5.10) | 2021-11-01T08:22:42Z | 46,607 | 19,047 | 10,093 | 75,747 | -| [v2.5.8](https://github.com/laurent22/joplin/releases/tag/v2.5.8) | 2021-10-31T11:38:03Z | 15,320 | 6,577 | 2,319 | 24,216 | -| [v2.5.7](https://github.com/laurent22/joplin/releases/tag/v2.5.7) (p) | 2021-10-29T14:47:33Z | 2,984 | 203 | 164 | 3,351 | -| [v2.5.6](https://github.com/laurent22/joplin/releases/tag/v2.5.6) (p) | 2021-10-28T22:03:09Z | 3,032 | 177 | 107 | 3,316 | -| [v2.5.4](https://github.com/laurent22/joplin/releases/tag/v2.5.4) (p) | 2021-10-19T10:10:54Z | 4,523 | 568 | 578 | 5,669 | -| [v2.4.12](https://github.com/laurent22/joplin/releases/tag/v2.4.12) | 2021-10-13T17:24:34Z | 46,830 | 19,979 | 9,786 | 76,595 | -| [v2.5.1](https://github.com/laurent22/joplin/releases/tag/v2.5.1) (p) | 2021-10-02T09:51:58Z | 5,554 | 906 | 946 | 7,406 | -| [v2.4.9](https://github.com/laurent22/joplin/releases/tag/v2.4.9) | 2021-09-29T19:08:58Z | 58,666 | 23,256 | 15,908 | 97,830 | -| [v2.4.8](https://github.com/laurent22/joplin/releases/tag/v2.4.8) (p) | 2021-09-22T19:01:46Z | 9,398 | 1,773 | 535 | 11,706 | -| [v2.4.7](https://github.com/laurent22/joplin/releases/tag/v2.4.7) (p) | 2021-09-19T12:53:22Z | 3,488 | 256 | 208 | 3,952 | -| [v2.4.6](https://github.com/laurent22/joplin/releases/tag/v2.4.6) (p) | 2021-09-09T18:57:17Z | 4,272 | 459 | 519 | 5,250 | -| [v2.4.5](https://github.com/laurent22/joplin/releases/tag/v2.4.5) (p) | 2021-09-06T18:03:28Z | 3,500 | 274 | 224 | 3,998 | -| [v2.4.4](https://github.com/laurent22/joplin/releases/tag/v2.4.4) (p) | 2021-08-30T16:02:51Z | 3,710 | 378 | 365 | 4,453 | -| [v2.4.3](https://github.com/laurent22/joplin/releases/tag/v2.4.3) (p) | 2021-08-28T15:27:32Z | 3,214 | 206 | 178 | 3,598 | -| [v2.4.2](https://github.com/laurent22/joplin/releases/tag/v2.4.2) (p) | 2021-08-27T17:13:21Z | 2,975 | 151 | 91 | 3,217 | -| [v2.4.1](https://github.com/laurent22/joplin/releases/tag/v2.4.1) (p) | 2021-08-21T11:52:30Z | 3,839 | 371 | 336 | 4,546 | -| [v2.3.5](https://github.com/laurent22/joplin/releases/tag/v2.3.5) | 2021-08-17T06:43:30Z | 84,515 | 31,433 | 33,135 | 149,083 | -| [v2.3.3](https://github.com/laurent22/joplin/releases/tag/v2.3.3) | 2021-08-14T09:19:40Z | 17,814 | 6,885 | 4,062 | 28,761 | -| [v2.2.7](https://github.com/laurent22/joplin/releases/tag/v2.2.7) | 2021-08-11T11:03:26Z | 17,722 | 7,524 | 2,603 | 27,849 | -| [v2.2.6](https://github.com/laurent22/joplin/releases/tag/v2.2.6) (p) | 2021-08-09T19:29:20Z | 10,238 | 4,619 | 958 | 15,815 | -| [v2.2.5](https://github.com/laurent22/joplin/releases/tag/v2.2.5) (p) | 2021-08-07T10:35:24Z | 3,560 | 277 | 207 | 4,044 | -| [v2.2.4](https://github.com/laurent22/joplin/releases/tag/v2.2.4) (p) | 2021-08-05T16:42:48Z | 3,220 | 207 | 133 | 3,560 | -| [v2.2.2](https://github.com/laurent22/joplin/releases/tag/v2.2.2) (p) | 2021-07-19T10:28:35Z | 5,128 | 736 | 647 | 6,511 | -| [v2.1.9](https://github.com/laurent22/joplin/releases/tag/v2.1.9) | 2021-07-19T10:28:43Z | 49,260 | 18,954 | 16,815 | 85,029 | -| [v2.2.1](https://github.com/laurent22/joplin/releases/tag/v2.2.1) (p) | 2021-07-09T17:38:25Z | 4,771 | 416 | 393 | 5,580 | -| [v2.1.8](https://github.com/laurent22/joplin/releases/tag/v2.1.8) | 2021-07-03T08:25:16Z | 32,923 | 12,204 | 12,736 | 57,863 | -| [v2.1.7](https://github.com/laurent22/joplin/releases/tag/v2.1.7) | 2021-06-26T19:48:55Z | 16,322 | 6,409 | 3,635 | 26,366 | -| [v2.1.5](https://github.com/laurent22/joplin/releases/tag/v2.1.5) (p) | 2021-06-23T15:08:52Z | 3,645 | 252 | 201 | 4,098 | -| [v2.1.3](https://github.com/laurent22/joplin/releases/tag/v2.1.3) (p) | 2021-06-19T16:32:51Z | 3,719 | 310 | 216 | 4,245 | -| [v2.0.11](https://github.com/laurent22/joplin/releases/tag/v2.0.11) | 2021-06-16T17:55:49Z | 25,975 | 9,275 | 9,895 | 45,145 | -| [v2.0.10](https://github.com/laurent22/joplin/releases/tag/v2.0.10) | 2021-06-16T07:58:29Z | 5,141 | 944 | 398 | 6,483 | -| [v2.0.9](https://github.com/laurent22/joplin/releases/tag/v2.0.9) (p) | 2021-06-12T09:30:30Z | 3,614 | 304 | 892 | 4,810 | -| [v2.0.8](https://github.com/laurent22/joplin/releases/tag/v2.0.8) (p) | 2021-06-10T16:15:08Z | 3,146 | 243 | 592 | 3,981 | +| [v2.10.13](https://github.com/laurent22/joplin/releases/tag/v2.10.13) (p) | 2023-04-03T16:53:46Z | 4,072 | 828 | 1,077 | 5,977 | +| [v2.10.12](https://github.com/laurent22/joplin/releases/tag/v2.10.12) (p) | 2023-03-23T12:17:13Z | 3,044 | 518 | 604 | 4,166 | +| [v2.10.11](https://github.com/laurent22/joplin/releases/tag/v2.10.11) (p) | 2023-03-17T10:54:02Z | 2,406 | 381 | 389 | 3,176 | +| [v2.10.10](https://github.com/laurent22/joplin/releases/tag/v2.10.10) (p) | 2023-03-13T23:16:37Z | 1,916 | 281 | 254 | 2,451 | +| [v2.10.9](https://github.com/laurent22/joplin/releases/tag/v2.10.9) (p) | 2023-03-12T16:16:45Z | 1,450 | 213 | 295 | 1,958 | +| [v2.10.8](https://github.com/laurent22/joplin/releases/tag/v2.10.8) (p) | 2023-02-26T12:53:55Z | 3,935 | 573 | 871 | 5,379 | +| [v2.10.7](https://github.com/laurent22/joplin/releases/tag/v2.10.7) (p) | 2023-02-24T10:56:20Z | 1,583 | 189 | 277 | 2,049 | +| [v2.10.6](https://github.com/laurent22/joplin/releases/tag/v2.10.6) (p) | 2023-02-20T14:00:05Z | 2,396 | 341 | 289 | 3,026 | +| [v2.10.5](https://github.com/laurent22/joplin/releases/tag/v2.10.5) | 2023-01-16T15:00:53Z | 363 | 99 | 307 | 769 | +| [v2.10.4](https://github.com/laurent22/joplin/releases/tag/v2.10.4) (p) | 2023-01-05T13:09:20Z | 7,598 | 1,302 | 1,809 | 10,709 | +| [v2.10.3](https://github.com/laurent22/joplin/releases/tag/v2.10.3) (p) | 2022-12-31T15:53:23Z | 2,179 | 312 | 410 | 2,901 | +| [v2.10.2](https://github.com/laurent22/joplin/releases/tag/v2.10.2) (p) | 2022-12-18T18:05:08Z | 3,605 | 585 | 633 | 4,823 | +| [v2.9.17](https://github.com/laurent22/joplin/releases/tag/v2.9.17) | 2022-11-15T10:28:37Z | 334,550 | 108,773 | 83,314 | 526,637 | +| [v2.9.12](https://github.com/laurent22/joplin/releases/tag/v2.9.12) (p) | 2022-11-01T17:06:05Z | 10,793 | 610 | 538 | 11,941 | +| [v2.9.11](https://github.com/laurent22/joplin/releases/tag/v2.9.11) (p) | 2022-10-23T16:09:58Z | 2,942 | 528 | 753 | 4,223 | +| [v2.9.4](https://github.com/laurent22/joplin/releases/tag/v2.9.4) (p) | 2022-08-18T16:52:26Z | 7,992 | 1,866 | 2,191 | 12,049 | +| [v2.9.3](https://github.com/laurent22/joplin/releases/tag/v2.9.3) (p) | 2022-08-18T13:11:09Z | 343 | 90 | 268 | 701 | +| [v2.9.2](https://github.com/laurent22/joplin/releases/tag/v2.9.2) (p) | 2022-08-12T18:12:12Z | 1,524 | 446 | 0 | 1,970 | +| [v2.9.1](https://github.com/laurent22/joplin/releases/tag/v2.9.1) (p) | 2022-07-11T09:59:32Z | 7,411 | 1,338 | 1,400 | 10,149 | +| [v2.8.8](https://github.com/laurent22/joplin/releases/tag/v2.8.8) | 2022-05-17T14:48:06Z | 350,533 | 114,336 | 113,548 | 578,417 | +| [v2.8.7](https://github.com/laurent22/joplin/releases/tag/v2.8.7) (p) | 2022-05-06T11:34:27Z | 3,941 | 363 | 421 | 4,725 | +| [v2.8.6](https://github.com/laurent22/joplin/releases/tag/v2.8.6) (p) | 2022-05-03T10:08:25Z | 3,560 | 402 | 328 | 4,290 | +| [v2.8.5](https://github.com/laurent22/joplin/releases/tag/v2.8.5) (p) | 2022-04-27T13:51:50Z | 3,651 | 369 | 350 | 4,370 | +| [v2.8.4](https://github.com/laurent22/joplin/releases/tag/v2.8.4) (p) | 2022-04-19T18:00:09Z | 4,149 | 588 | 326 | 5,063 | +| [v2.8.2](https://github.com/laurent22/joplin/releases/tag/v2.8.2) (p) | 2022-04-14T11:35:45Z | 3,549 | 279 | 266 | 4,094 | +| [v2.7.15](https://github.com/laurent22/joplin/releases/tag/v2.7.15) | 2022-03-17T13:03:23Z | 155,737 | 56,771 | 51,255 | 263,763 | +| [v2.7.14](https://github.com/laurent22/joplin/releases/tag/v2.7.14) | 2022-02-27T11:30:53Z | 34,084 | 16,781 | 4,802 | 55,667 | +| [v2.7.13](https://github.com/laurent22/joplin/releases/tag/v2.7.13) | 2022-02-24T17:42:12Z | 54,468 | 25,723 | 11,712 | 91,903 | +| [v2.7.12](https://github.com/laurent22/joplin/releases/tag/v2.7.12) (p) | 2022-02-14T15:06:14Z | 4,327 | 463 | 481 | 5,271 | +| [v2.7.11](https://github.com/laurent22/joplin/releases/tag/v2.7.11) (p) | 2022-02-12T13:00:02Z | 3,466 | 194 | 167 | 3,827 | +| [v2.7.10](https://github.com/laurent22/joplin/releases/tag/v2.7.10) (p) | 2022-02-11T18:19:09Z | 2,983 | 125 | 82 | 3,190 | +| [v2.7.8](https://github.com/laurent22/joplin/releases/tag/v2.7.8) (p) | 2022-01-19T09:35:27Z | 5,202 | 769 | 823 | 6,794 | +| [v2.7.7](https://github.com/laurent22/joplin/releases/tag/v2.7.7) (p) | 2022-01-18T14:05:07Z | 3,306 | 156 | 135 | 3,597 | +| [v2.7.6](https://github.com/laurent22/joplin/releases/tag/v2.7.6) (p) | 2022-01-17T17:08:28Z | 3,231 | 182 | 114 | 3,527 | +| [v2.6.10](https://github.com/laurent22/joplin/releases/tag/v2.6.10) | 2021-12-19T11:31:16Z | 135,537 | 51,197 | 49,304 | 236,038 | +| [v2.6.9](https://github.com/laurent22/joplin/releases/tag/v2.6.9) | 2021-12-17T11:57:32Z | 18,661 | 9,495 | 3,184 | 31,340 | +| [v2.6.7](https://github.com/laurent22/joplin/releases/tag/v2.6.7) (p) | 2021-12-16T10:47:23Z | 3,427 | 163 | 103 | 3,693 | +| [v2.6.6](https://github.com/laurent22/joplin/releases/tag/v2.6.6) (p) | 2021-12-13T12:31:43Z | 3,447 | 256 | 166 | 3,869 | +| [v2.6.5](https://github.com/laurent22/joplin/releases/tag/v2.6.5) (p) | 2021-12-13T10:07:04Z | 2,779 | 50 | 30 | 2,859 | +| [v2.6.4](https://github.com/laurent22/joplin/releases/tag/v2.6.4) (p) | 2021-12-09T19:53:43Z | 3,504 | 288 | 200 | 3,992 | +| [v2.6.2](https://github.com/laurent22/joplin/releases/tag/v2.6.2) (p) | 2021-11-18T12:19:12Z | 5,301 | 792 | 701 | 6,794 | +| [v2.5.12](https://github.com/laurent22/joplin/releases/tag/v2.5.12) | 2021-11-08T11:07:11Z | 82,321 | 32,503 | 25,229 | 140,053 | +| [v2.5.10](https://github.com/laurent22/joplin/releases/tag/v2.5.10) | 2021-11-01T08:22:42Z | 46,672 | 19,048 | 10,095 | 75,815 | +| [v2.5.8](https://github.com/laurent22/joplin/releases/tag/v2.5.8) | 2021-10-31T11:38:03Z | 15,384 | 6,577 | 2,320 | 24,281 | +| [v2.5.7](https://github.com/laurent22/joplin/releases/tag/v2.5.7) (p) | 2021-10-29T14:47:33Z | 3,046 | 203 | 164 | 3,413 | +| [v2.5.6](https://github.com/laurent22/joplin/releases/tag/v2.5.6) (p) | 2021-10-28T22:03:09Z | 3,092 | 177 | 107 | 3,376 | +| [v2.5.4](https://github.com/laurent22/joplin/releases/tag/v2.5.4) (p) | 2021-10-19T10:10:54Z | 4,584 | 568 | 578 | 5,730 | +| [v2.4.12](https://github.com/laurent22/joplin/releases/tag/v2.4.12) | 2021-10-13T17:24:34Z | 46,929 | 19,979 | 9,786 | 76,694 | +| [v2.5.1](https://github.com/laurent22/joplin/releases/tag/v2.5.1) (p) | 2021-10-02T09:51:58Z | 5,615 | 906 | 946 | 7,467 | +| [v2.4.9](https://github.com/laurent22/joplin/releases/tag/v2.4.9) | 2021-09-29T19:08:58Z | 58,739 | 23,258 | 15,908 | 97,905 | +| [v2.4.8](https://github.com/laurent22/joplin/releases/tag/v2.4.8) (p) | 2021-09-22T19:01:46Z | 9,460 | 1,773 | 535 | 11,768 | +| [v2.4.7](https://github.com/laurent22/joplin/releases/tag/v2.4.7) (p) | 2021-09-19T12:53:22Z | 3,553 | 257 | 208 | 4,018 | +| [v2.4.6](https://github.com/laurent22/joplin/releases/tag/v2.4.6) (p) | 2021-09-09T18:57:17Z | 4,332 | 459 | 519 | 5,310 | +| [v2.4.5](https://github.com/laurent22/joplin/releases/tag/v2.4.5) (p) | 2021-09-06T18:03:28Z | 3,562 | 274 | 224 | 4,060 | +| [v2.4.4](https://github.com/laurent22/joplin/releases/tag/v2.4.4) (p) | 2021-08-30T16:02:51Z | 3,773 | 378 | 366 | 4,517 | +| [v2.4.3](https://github.com/laurent22/joplin/releases/tag/v2.4.3) (p) | 2021-08-28T15:27:32Z | 3,278 | 206 | 178 | 3,662 | +| [v2.4.2](https://github.com/laurent22/joplin/releases/tag/v2.4.2) (p) | 2021-08-27T17:13:21Z | 3,039 | 151 | 91 | 3,281 | +| [v2.4.1](https://github.com/laurent22/joplin/releases/tag/v2.4.1) (p) | 2021-08-21T11:52:30Z | 3,901 | 372 | 337 | 4,610 | +| [v2.3.5](https://github.com/laurent22/joplin/releases/tag/v2.3.5) | 2021-08-17T06:43:30Z | 84,618 | 31,433 | 33,136 | 149,187 | +| [v2.3.3](https://github.com/laurent22/joplin/releases/tag/v2.3.3) | 2021-08-14T09:19:40Z | 17,895 | 6,885 | 4,062 | 28,842 | +| [v2.2.7](https://github.com/laurent22/joplin/releases/tag/v2.2.7) | 2021-08-11T11:03:26Z | 17,795 | 7,524 | 2,603 | 27,922 | +| [v2.2.6](https://github.com/laurent22/joplin/releases/tag/v2.2.6) (p) | 2021-08-09T19:29:20Z | 10,298 | 4,619 | 958 | 15,875 | +| [v2.2.5](https://github.com/laurent22/joplin/releases/tag/v2.2.5) (p) | 2021-08-07T10:35:24Z | 3,625 | 278 | 208 | 4,111 | +| [v2.2.4](https://github.com/laurent22/joplin/releases/tag/v2.2.4) (p) | 2021-08-05T16:42:48Z | 3,284 | 207 | 133 | 3,624 | +| [v2.2.2](https://github.com/laurent22/joplin/releases/tag/v2.2.2) (p) | 2021-07-19T10:28:35Z | 5,190 | 736 | 647 | 6,573 | +| [v2.1.9](https://github.com/laurent22/joplin/releases/tag/v2.1.9) | 2021-07-19T10:28:43Z | 49,344 | 18,954 | 16,815 | 85,113 | +| [v2.2.1](https://github.com/laurent22/joplin/releases/tag/v2.2.1) (p) | 2021-07-09T17:38:25Z | 4,833 | 416 | 393 | 5,642 | +| [v2.1.8](https://github.com/laurent22/joplin/releases/tag/v2.1.8) | 2021-07-03T08:25:16Z | 32,997 | 12,204 | 12,736 | 57,937 | +| [v2.1.7](https://github.com/laurent22/joplin/releases/tag/v2.1.7) | 2021-06-26T19:48:55Z | 16,383 | 6,409 | 3,635 | 26,427 | +| [v2.1.5](https://github.com/laurent22/joplin/releases/tag/v2.1.5) (p) | 2021-06-23T15:08:52Z | 3,710 | 252 | 201 | 4,163 | +| [v2.1.3](https://github.com/laurent22/joplin/releases/tag/v2.1.3) (p) | 2021-06-19T16:32:51Z | 3,783 | 311 | 216 | 4,310 | +| [v2.0.11](https://github.com/laurent22/joplin/releases/tag/v2.0.11) | 2021-06-16T17:55:49Z | 26,036 | 9,275 | 9,897 | 45,208 | +| [v2.0.10](https://github.com/laurent22/joplin/releases/tag/v2.0.10) | 2021-06-16T07:58:29Z | 5,224 | 945 | 399 | 6,568 | +| [v2.0.9](https://github.com/laurent22/joplin/releases/tag/v2.0.9) (p) | 2021-06-12T09:30:30Z | 3,678 | 305 | 894 | 4,877 | +| [v2.0.8](https://github.com/laurent22/joplin/releases/tag/v2.0.8) (p) | 2021-06-10T16:15:08Z | 3,207 | 245 | 594 | 4,046 | | [v2.0.4](https://github.com/laurent22/joplin/releases/tag/v2.0.4) (p) | 2021-06-02T12:54:17Z | 1,641 | 403 | 391 | 2,435 | -| [v2.0.2](https://github.com/laurent22/joplin/releases/tag/v2.0.2) (p) | 2021-05-21T18:07:48Z | 5,136 | 502 | 1,680 | 7,318 | -| [v2.0.1](https://github.com/laurent22/joplin/releases/tag/v2.0.1) (p) | 2021-05-15T13:22:58Z | 918 | 285 | 1,036 | 2,239 | -| [v1.8.5](https://github.com/laurent22/joplin/releases/tag/v1.8.5) | 2021-05-10T11:58:14Z | 40,933 | 16,296 | 19,435 | 76,664 | -| [v1.8.4](https://github.com/laurent22/joplin/releases/tag/v1.8.4) (p) | 2021-05-09T18:05:05Z | 3,081 | 150 | 471 | 3,702 | -| [v1.8.3](https://github.com/laurent22/joplin/releases/tag/v1.8.3) (p) | 2021-05-04T10:38:16Z | 4,091 | 320 | 951 | 5,362 | -| [v1.8.2](https://github.com/laurent22/joplin/releases/tag/v1.8.2) (p) | 2021-04-25T10:50:51Z | 4,398 | 450 | 1,299 | 6,147 | -| [v1.8.1](https://github.com/laurent22/joplin/releases/tag/v1.8.1) (p) | 2021-03-29T10:46:41Z | 5,406 | 839 | 2,465 | 8,710 | -| [v1.7.11](https://github.com/laurent22/joplin/releases/tag/v1.7.11) | 2021-02-03T12:50:01Z | 120,109 | 42,956 | 64,437 | 227,502 | -| [v1.7.10](https://github.com/laurent22/joplin/releases/tag/v1.7.10) | 2021-01-30T13:25:29Z | 14,550 | 4,879 | 4,525 | 23,954 | +| [v2.0.2](https://github.com/laurent22/joplin/releases/tag/v2.0.2) (p) | 2021-05-21T18:07:48Z | 5,210 | 502 | 1,680 | 7,392 | +| [v2.0.1](https://github.com/laurent22/joplin/releases/tag/v2.0.1) (p) | 2021-05-15T13:22:58Z | 922 | 285 | 1,036 | 2,243 | +| [v1.8.5](https://github.com/laurent22/joplin/releases/tag/v1.8.5) | 2021-05-10T11:58:14Z | 41,028 | 16,297 | 19,436 | 76,761 | +| [v1.8.4](https://github.com/laurent22/joplin/releases/tag/v1.8.4) (p) | 2021-05-09T18:05:05Z | 3,143 | 150 | 471 | 3,764 | +| [v1.8.3](https://github.com/laurent22/joplin/releases/tag/v1.8.3) (p) | 2021-05-04T10:38:16Z | 4,156 | 320 | 951 | 5,427 | +| [v1.8.2](https://github.com/laurent22/joplin/releases/tag/v1.8.2) (p) | 2021-04-25T10:50:51Z | 4,460 | 450 | 1,299 | 6,209 | +| [v1.8.1](https://github.com/laurent22/joplin/releases/tag/v1.8.1) (p) | 2021-03-29T10:46:41Z | 5,468 | 839 | 2,465 | 8,772 | +| [v1.7.11](https://github.com/laurent22/joplin/releases/tag/v1.7.11) | 2021-02-03T12:50:01Z | 120,211 | 42,961 | 64,438 | 227,610 | +| [v1.7.10](https://github.com/laurent22/joplin/releases/tag/v1.7.10) | 2021-01-30T13:25:29Z | 14,557 | 4,879 | 4,525 | 23,961 | | [v1.7.9](https://github.com/laurent22/joplin/releases/tag/v1.7.9) (p) | 2021-01-28T09:50:21Z | 530 | 147 | 513 | 1,190 | | [v1.7.6](https://github.com/laurent22/joplin/releases/tag/v1.7.6) (p) | 2021-01-27T10:36:05Z | 344 | 107 | 303 | 754 | | [v1.7.5](https://github.com/laurent22/joplin/releases/tag/v1.7.5) (p) | 2021-01-26T09:53:05Z | 437 | 218 | 468 | 1,123 | | [v1.7.4](https://github.com/laurent22/joplin/releases/tag/v1.7.4) (p) | 2021-01-22T17:58:38Z | 729 | 219 | 641 | 1,589 | -| [v1.6.8](https://github.com/laurent22/joplin/releases/tag/v1.6.8) | 2021-01-20T18:11:34Z | 22,542 | 7,728 | 7,630 | 37,900 | -| [v1.7.3](https://github.com/laurent22/joplin/releases/tag/v1.7.3) (p) | 2021-01-20T11:23:50Z | 377 | 92 | 458 | 927 | -| [v1.6.7](https://github.com/laurent22/joplin/releases/tag/v1.6.7) | 2021-01-11T23:20:33Z | 14,145 | 4,663 | 4,571 | 23,379 | -| [v1.6.6](https://github.com/laurent22/joplin/releases/tag/v1.6.6) | 2021-01-09T16:15:31Z | 12,849 | 3,440 | 4,816 | 21,105 | -| [v1.6.5](https://github.com/laurent22/joplin/releases/tag/v1.6.5) (p) | 2021-01-09T01:24:32Z | 3,361 | 90 | 323 | 3,774 | +| [v1.6.8](https://github.com/laurent22/joplin/releases/tag/v1.6.8) | 2021-01-20T18:11:34Z | 22,633 | 7,731 | 7,631 | 37,995 | +| [v1.7.3](https://github.com/laurent22/joplin/releases/tag/v1.7.3) (p) | 2021-01-20T11:23:50Z | 377 | 92 | 459 | 928 | +| [v1.6.7](https://github.com/laurent22/joplin/releases/tag/v1.6.7) | 2021-01-11T23:20:33Z | 14,229 | 4,663 | 4,571 | 23,463 | +| [v1.6.6](https://github.com/laurent22/joplin/releases/tag/v1.6.6) | 2021-01-09T16:15:31Z | 12,851 | 3,440 | 4,818 | 21,109 | +| [v1.6.5](https://github.com/laurent22/joplin/releases/tag/v1.6.5) (p) | 2021-01-09T01:24:32Z | 3,427 | 90 | 323 | 3,840 | | [v1.6.4](https://github.com/laurent22/joplin/releases/tag/v1.6.4) (p) | 2021-01-07T19:11:32Z | 420 | 92 | 219 | 731 | | [v1.6.2](https://github.com/laurent22/joplin/releases/tag/v1.6.2) (p) | 2021-01-04T22:34:55Z | 704 | 242 | 606 | 1,552 | -| [v1.5.14](https://github.com/laurent22/joplin/releases/tag/v1.5.14) | 2020-12-30T01:48:46Z | 14,642 | 5,232 | 5,550 | 25,424 | +| [v1.5.14](https://github.com/laurent22/joplin/releases/tag/v1.5.14) | 2020-12-30T01:48:46Z | 14,719 | 5,232 | 5,550 | 25,501 | | [v1.6.1](https://github.com/laurent22/joplin/releases/tag/v1.6.1) (p) | 2020-12-29T19:37:45Z | 201 | 52 | 183 | 436 | -| [v1.5.13](https://github.com/laurent22/joplin/releases/tag/v1.5.13) | 2020-12-29T18:29:15Z | 776 | 242 | 228 | 1,246 | -| [v1.5.12](https://github.com/laurent22/joplin/releases/tag/v1.5.12) | 2020-12-28T15:14:08Z | 2,558 | 1,795 | 942 | 5,295 | -| [v1.5.11](https://github.com/laurent22/joplin/releases/tag/v1.5.11) | 2020-12-27T19:54:07Z | 14,326 | 4,658 | 4,306 | 23,290 | +| [v1.5.13](https://github.com/laurent22/joplin/releases/tag/v1.5.13) | 2020-12-29T18:29:15Z | 777 | 242 | 228 | 1,247 | +| [v1.5.12](https://github.com/laurent22/joplin/releases/tag/v1.5.12) | 2020-12-28T15:14:08Z | 2,559 | 1,795 | 942 | 5,296 | +| [v1.5.11](https://github.com/laurent22/joplin/releases/tag/v1.5.11) | 2020-12-27T19:54:07Z | 14,328 | 4,658 | 4,306 | 23,292 | | [v1.5.10](https://github.com/laurent22/joplin/releases/tag/v1.5.10) (p) | 2020-12-26T12:35:36Z | 322 | 122 | 285 | 729 | | [v1.5.9](https://github.com/laurent22/joplin/releases/tag/v1.5.9) (p) | 2020-12-23T18:01:08Z | 356 | 386 | 426 | 1,168 | | [v1.5.8](https://github.com/laurent22/joplin/releases/tag/v1.5.8) (p) | 2020-12-20T09:45:19Z | 594 | 179 | 659 | 1,432 | | [v1.5.7](https://github.com/laurent22/joplin/releases/tag/v1.5.7) (p) | 2020-12-10T12:58:33Z | 918 | 268 | 1,009 | 2,195 | -| [v1.5.4](https://github.com/laurent22/joplin/releases/tag/v1.5.4) (p) | 2020-12-05T12:07:49Z | 723 | 181 | 650 | 1,554 | -| [v1.4.19](https://github.com/laurent22/joplin/releases/tag/v1.4.19) | 2020-12-01T11:11:16Z | 29,110 | 13,607 | 11,712 | 54,429 | -| [v1.4.18](https://github.com/laurent22/joplin/releases/tag/v1.4.18) | 2020-11-28T12:21:41Z | 11,734 | 3,910 | 3,161 | 18,805 | -| [v1.4.16](https://github.com/laurent22/joplin/releases/tag/v1.4.16) | 2020-11-27T19:40:16Z | 1,636 | 860 | 620 | 3,116 | -| [v1.4.15](https://github.com/laurent22/joplin/releases/tag/v1.4.15) | 2020-11-27T13:25:43Z | 1,027 | 512 | 295 | 1,834 | -| [v1.4.12](https://github.com/laurent22/joplin/releases/tag/v1.4.12) | 2020-11-23T18:58:07Z | 3,210 | 1,373 | 1,327 | 5,910 | -| [v1.4.11](https://github.com/laurent22/joplin/releases/tag/v1.4.11) (p) | 2020-11-19T23:06:51Z | 4,139 | 190 | 610 | 4,939 | +| [v1.5.4](https://github.com/laurent22/joplin/releases/tag/v1.5.4) (p) | 2020-12-05T12:07:49Z | 724 | 181 | 650 | 1,555 | +| [v1.4.19](https://github.com/laurent22/joplin/releases/tag/v1.4.19) | 2020-12-01T11:11:16Z | 29,178 | 13,610 | 11,714 | 54,502 | +| [v1.4.18](https://github.com/laurent22/joplin/releases/tag/v1.4.18) | 2020-11-28T12:21:41Z | 11,739 | 3,910 | 3,161 | 18,810 | +| [v1.4.16](https://github.com/laurent22/joplin/releases/tag/v1.4.16) | 2020-11-27T19:40:16Z | 1,638 | 860 | 620 | 3,118 | +| [v1.4.15](https://github.com/laurent22/joplin/releases/tag/v1.4.15) | 2020-11-27T13:25:43Z | 1,029 | 512 | 295 | 1,836 | +| [v1.4.12](https://github.com/laurent22/joplin/releases/tag/v1.4.12) | 2020-11-23T18:58:07Z | 3,211 | 1,373 | 1,327 | 5,911 | +| [v1.4.11](https://github.com/laurent22/joplin/releases/tag/v1.4.11) (p) | 2020-11-19T23:06:51Z | 4,201 | 190 | 610 | 5,001 | | [v1.4.10](https://github.com/laurent22/joplin/releases/tag/v1.4.10) (p) | 2020-11-14T09:53:15Z | 686 | 228 | 701 | 1,615 | | [v1.4.9](https://github.com/laurent22/joplin/releases/tag/v1.4.9) (p) | 2020-11-11T14:23:17Z | 871 | 175 | 419 | 1,465 | | [v1.4.7](https://github.com/laurent22/joplin/releases/tag/v1.4.7) (p) | 2020-11-07T18:23:29Z | 556 | 205 | 532 | 1,293 | -| [v1.3.18](https://github.com/laurent22/joplin/releases/tag/v1.3.18) | 2020-11-06T12:07:02Z | 34,599 | 11,383 | 10,546 | 56,528 | +| [v1.3.18](https://github.com/laurent22/joplin/releases/tag/v1.3.18) | 2020-11-06T12:07:02Z | 34,686 | 11,385 | 10,546 | 56,617 | | [v1.3.17](https://github.com/laurent22/joplin/releases/tag/v1.3.17) (p) | 2020-11-06T11:35:15Z | 82 | 60 | 41 | 183 | -| [v1.4.6](https://github.com/laurent22/joplin/releases/tag/v1.4.6) (p) | 2020-11-05T22:44:12Z | 716 | 126 | 70 | 912 | +| [v1.4.6](https://github.com/laurent22/joplin/releases/tag/v1.4.6) (p) | 2020-11-05T22:44:12Z | 718 | 126 | 70 | 914 | | [v1.3.15](https://github.com/laurent22/joplin/releases/tag/v1.3.15) | 2020-11-04T12:22:50Z | 2,781 | 1,343 | 871 | 4,995 | | [v1.3.11](https://github.com/laurent22/joplin/releases/tag/v1.3.11) (p) | 2020-10-31T13:22:20Z | 738 | 219 | 499 | 1,456 | | [v1.3.10](https://github.com/laurent22/joplin/releases/tag/v1.3.10) (p) | 2020-10-29T13:27:14Z | 411 | 148 | 334 | 893 | @@ -213,153 +215,153 @@ updated: 2024-10-01T00:51:19Z | [v1.3.8](https://github.com/laurent22/joplin/releases/tag/v1.3.8) (p) | 2020-10-21T18:46:29Z | 557 | 150 | 348 | 1,055 | | [v1.3.7](https://github.com/laurent22/joplin/releases/tag/v1.3.7) (p) | 2020-10-20T11:35:55Z | 330 | 118 | 360 | 808 | | [v1.3.5](https://github.com/laurent22/joplin/releases/tag/v1.3.5) (p) | 2020-10-17T14:26:35Z | 508 | 167 | 424 | 1,099 | -| [v1.3.3](https://github.com/laurent22/joplin/releases/tag/v1.3.3) (p) | 2020-10-17T10:56:57Z | 154 | 79 | 51 | 284 | +| [v1.3.3](https://github.com/laurent22/joplin/releases/tag/v1.3.3) (p) | 2020-10-17T10:56:57Z | 156 | 81 | 52 | 289 | | [v1.3.2](https://github.com/laurent22/joplin/releases/tag/v1.3.2) (p) | 2020-10-11T20:39:49Z | 707 | 214 | 585 | 1,506 | | [v1.3.1](https://github.com/laurent22/joplin/releases/tag/v1.3.1) (p) | 2020-10-11T15:10:18Z | 119 | 85 | 62 | 266 | -| [v1.2.6](https://github.com/laurent22/joplin/releases/tag/v1.2.6) | 2020-10-09T13:56:59Z | 48,568 | 17,789 | 14,085 | 80,442 | +| [v1.2.6](https://github.com/laurent22/joplin/releases/tag/v1.2.6) | 2020-10-09T13:56:59Z | 48,641 | 17,790 | 14,088 | 80,519 | | [v1.2.4](https://github.com/laurent22/joplin/releases/tag/v1.2.4) (p) | 2020-09-30T07:34:29Z | 855 | 282 | 818 | 1,955 | | [v1.2.3](https://github.com/laurent22/joplin/releases/tag/v1.2.3) (p) | 2020-09-29T15:13:02Z | 255 | 98 | 100 | 453 | | [v1.2.2](https://github.com/laurent22/joplin/releases/tag/v1.2.2) (p) | 2020-09-22T20:31:55Z | 1,147 | 240 | 657 | 2,044 | -| [v1.1.4](https://github.com/laurent22/joplin/releases/tag/v1.1.4) | 2020-09-21T11:20:09Z | 28,216 | 13,550 | 7,783 | 49,549 | +| [v1.1.4](https://github.com/laurent22/joplin/releases/tag/v1.1.4) | 2020-09-21T11:20:09Z | 28,220 | 13,550 | 7,783 | 49,553 | | [v1.1.3](https://github.com/laurent22/joplin/releases/tag/v1.1.3) (p) | 2020-09-17T10:30:37Z | 617 | 186 | 483 | 1,286 | | [v1.1.2](https://github.com/laurent22/joplin/releases/tag/v1.1.2) (p) | 2020-09-15T12:58:38Z | 418 | 152 | 271 | 841 | | [v1.1.1](https://github.com/laurent22/joplin/releases/tag/v1.1.1) (p) | 2020-09-11T23:32:47Z | 588 | 232 | 370 | 1,190 | -| [v1.0.245](https://github.com/laurent22/joplin/releases/tag/v1.0.245) | 2020-09-09T12:56:10Z | 22,853 | 10,061 | 5,675 | 38,589 | -| [v1.0.242](https://github.com/laurent22/joplin/releases/tag/v1.0.242) | 2020-09-04T22:00:34Z | 12,893 | 6,461 | 3,045 | 22,399 | -| [v1.0.241](https://github.com/laurent22/joplin/releases/tag/v1.0.241) | 2020-09-04T18:06:00Z | 26,596 | 5,984 | 5,141 | 37,721 | +| [v1.0.245](https://github.com/laurent22/joplin/releases/tag/v1.0.245) | 2020-09-09T12:56:10Z | 22,870 | 10,062 | 5,675 | 38,607 | +| [v1.0.242](https://github.com/laurent22/joplin/releases/tag/v1.0.242) | 2020-09-04T22:00:34Z | 12,894 | 6,461 | 3,045 | 22,400 | +| [v1.0.241](https://github.com/laurent22/joplin/releases/tag/v1.0.241) | 2020-09-04T18:06:00Z | 26,600 | 5,986 | 5,141 | 37,727 | | [v1.0.239](https://github.com/laurent22/joplin/releases/tag/v1.0.239) (p) | 2020-09-01T21:56:36Z | 979 | 264 | 423 | 1,666 | | [v1.0.237](https://github.com/laurent22/joplin/releases/tag/v1.0.237) (p) | 2020-08-29T15:38:04Z | 629 | 962 | 360 | 1,951 | | [v1.0.236](https://github.com/laurent22/joplin/releases/tag/v1.0.236) (p) | 2020-08-28T09:16:54Z | 355 | 150 | 126 | 631 | | [v1.0.235](https://github.com/laurent22/joplin/releases/tag/v1.0.235) (p) | 2020-08-18T22:08:01Z | 2,054 | 527 | 943 | 3,524 | | [v1.0.234](https://github.com/laurent22/joplin/releases/tag/v1.0.234) (p) | 2020-08-17T23:13:02Z | 694 | 164 | 123 | 981 | -| [v1.0.233](https://github.com/laurent22/joplin/releases/tag/v1.0.233) | 2020-08-01T14:51:15Z | 47,154 | 18,241 | 12,386 | 77,781 | +| [v1.0.233](https://github.com/laurent22/joplin/releases/tag/v1.0.233) | 2020-08-01T14:51:15Z | 47,236 | 18,243 | 12,386 | 77,865 | | [v1.0.232](https://github.com/laurent22/joplin/releases/tag/v1.0.232) (p) | 2020-07-28T22:34:40Z | 694 | 261 | 201 | 1,156 | -| [v1.0.227](https://github.com/laurent22/joplin/releases/tag/v1.0.227) | 2020-07-07T20:44:54Z | 41,657 | 15,322 | 9,670 | 66,649 | -| [v1.0.226](https://github.com/laurent22/joplin/releases/tag/v1.0.226) (p) | 2020-07-04T10:21:26Z | 4,962 | 2,291 | 709 | 7,962 | -| [v1.0.224](https://github.com/laurent22/joplin/releases/tag/v1.0.224) | 2020-06-20T22:26:08Z | 25,206 | 11,047 | 6,031 | 42,284 | +| [v1.0.227](https://github.com/laurent22/joplin/releases/tag/v1.0.227) | 2020-07-07T20:44:54Z | 41,672 | 15,322 | 9,670 | 66,664 | +| [v1.0.226](https://github.com/laurent22/joplin/releases/tag/v1.0.226) (p) | 2020-07-04T10:21:26Z | 4,963 | 2,291 | 709 | 7,963 | +| [v1.0.224](https://github.com/laurent22/joplin/releases/tag/v1.0.224) | 2020-06-20T22:26:08Z | 25,222 | 11,047 | 6,031 | 42,300 | | [v1.0.223](https://github.com/laurent22/joplin/releases/tag/v1.0.223) (p) | 2020-06-20T11:51:27Z | 226 | 152 | 100 | 478 | | [v1.0.221](https://github.com/laurent22/joplin/releases/tag/v1.0.221) (p) | 2020-06-20T01:44:20Z | 894 | 245 | 234 | 1,373 | -| [v1.0.220](https://github.com/laurent22/joplin/releases/tag/v1.0.220) | 2020-06-13T18:26:22Z | 32,792 | 9,969 | 6,444 | 49,205 | -| [v1.0.218](https://github.com/laurent22/joplin/releases/tag/v1.0.218) | 2020-06-07T10:43:34Z | 14,613 | 7,015 | 3,151 | 24,779 | +| [v1.0.220](https://github.com/laurent22/joplin/releases/tag/v1.0.220) | 2020-06-13T18:26:22Z | 32,796 | 9,969 | 6,444 | 49,209 | +| [v1.0.218](https://github.com/laurent22/joplin/releases/tag/v1.0.218) | 2020-06-07T10:43:34Z | 14,615 | 7,015 | 3,151 | 24,781 | | [v1.0.217](https://github.com/laurent22/joplin/releases/tag/v1.0.217) (p) | 2020-06-06T15:17:27Z | 265 | 134 | 81 | 480 | -| [v1.0.216](https://github.com/laurent22/joplin/releases/tag/v1.0.216) | 2020-05-24T14:21:01Z | 40,883 | 14,348 | 10,214 | 65,445 | -| [v1.0.214](https://github.com/laurent22/joplin/releases/tag/v1.0.214) (p) | 2020-05-21T17:15:15Z | 7,016 | 3,508 | 788 | 11,312 | +| [v1.0.216](https://github.com/laurent22/joplin/releases/tag/v1.0.216) | 2020-05-24T14:21:01Z | 40,967 | 14,348 | 10,214 | 65,529 | +| [v1.0.214](https://github.com/laurent22/joplin/releases/tag/v1.0.214) (p) | 2020-05-21T17:15:15Z | 7,028 | 3,508 | 788 | 11,324 | | [v1.0.212](https://github.com/laurent22/joplin/releases/tag/v1.0.212) (p) | 2020-05-21T07:48:39Z | 250 | 108 | 71 | 429 | -| [v1.0.211](https://github.com/laurent22/joplin/releases/tag/v1.0.211) (p) | 2020-05-20T08:59:16Z | 339 | 172 | 111 | 622 | -| [v1.0.209](https://github.com/laurent22/joplin/releases/tag/v1.0.209) (p) | 2020-05-17T18:32:51Z | 1,432 | 891 | 171 | 2,494 | -| [v1.0.207](https://github.com/laurent22/joplin/releases/tag/v1.0.207) (p) | 2020-05-10T16:37:35Z | 1,240 | 302 | 1,042 | 2,584 | -| [v1.0.201](https://github.com/laurent22/joplin/releases/tag/v1.0.201) | 2020-04-15T22:55:13Z | 54,361 | 20,095 | 18,213 | 92,669 | +| [v1.0.211](https://github.com/laurent22/joplin/releases/tag/v1.0.211) (p) | 2020-05-20T08:59:16Z | 341 | 174 | 112 | 627 | +| [v1.0.209](https://github.com/laurent22/joplin/releases/tag/v1.0.209) (p) | 2020-05-17T18:32:51Z | 1,434 | 891 | 171 | 2,496 | +| [v1.0.207](https://github.com/laurent22/joplin/releases/tag/v1.0.207) (p) | 2020-05-10T16:37:35Z | 1,241 | 302 | 1,042 | 2,585 | +| [v1.0.201](https://github.com/laurent22/joplin/releases/tag/v1.0.201) | 2020-04-15T22:55:13Z | 54,367 | 20,096 | 18,213 | 92,676 | | [v1.0.200](https://github.com/laurent22/joplin/releases/tag/v1.0.200) | 2020-04-12T12:17:46Z | 9,617 | 4,933 | 1,930 | 16,480 | -| [v1.0.199](https://github.com/laurent22/joplin/releases/tag/v1.0.199) | 2020-04-10T18:41:58Z | 19,790 | 5,928 | 3,825 | 29,543 | -| [v1.0.197](https://github.com/laurent22/joplin/releases/tag/v1.0.197) | 2020-03-30T17:21:22Z | 23,423 | 9,863 | 6,536 | 39,822 | -| [v1.0.195](https://github.com/laurent22/joplin/releases/tag/v1.0.195) | 2020-03-22T19:56:12Z | 19,155 | 7,988 | 4,533 | 31,676 | -| [v1.0.194](https://github.com/laurent22/joplin/releases/tag/v1.0.194) (p) | 2020-03-14T00:00:32Z | 1,323 | 1,424 | 542 | 3,289 | -| [v1.0.193](https://github.com/laurent22/joplin/releases/tag/v1.0.193) | 2020-03-08T08:58:53Z | 28,806 | 10,963 | 7,442 | 47,211 | -| [v1.0.192](https://github.com/laurent22/joplin/releases/tag/v1.0.192) (p) | 2020-03-06T23:27:52Z | 539 | 160 | 113 | 812 | +| [v1.0.199](https://github.com/laurent22/joplin/releases/tag/v1.0.199) | 2020-04-10T18:41:58Z | 19,797 | 5,929 | 3,826 | 29,552 | +| [v1.0.197](https://github.com/laurent22/joplin/releases/tag/v1.0.197) | 2020-03-30T17:21:22Z | 23,432 | 9,863 | 6,548 | 39,843 | +| [v1.0.195](https://github.com/laurent22/joplin/releases/tag/v1.0.195) | 2020-03-22T19:56:12Z | 19,157 | 7,988 | 4,533 | 31,678 | +| [v1.0.194](https://github.com/laurent22/joplin/releases/tag/v1.0.194) (p) | 2020-03-14T00:00:32Z | 1,327 | 1,424 | 542 | 3,293 | +| [v1.0.193](https://github.com/laurent22/joplin/releases/tag/v1.0.193) | 2020-03-08T08:58:53Z | 28,810 | 10,963 | 7,442 | 47,215 | +| [v1.0.192](https://github.com/laurent22/joplin/releases/tag/v1.0.192) (p) | 2020-03-06T23:27:52Z | 540 | 160 | 113 | 813 | | [v1.0.190](https://github.com/laurent22/joplin/releases/tag/v1.0.190) (p) | 2020-03-06T01:22:22Z | 435 | 130 | 108 | 673 | | [v1.0.189](https://github.com/laurent22/joplin/releases/tag/v1.0.189) (p) | 2020-03-04T17:27:15Z | 414 | 134 | 120 | 668 | | [v1.0.187](https://github.com/laurent22/joplin/releases/tag/v1.0.187) (p) | 2020-03-01T12:31:06Z | 970 | 273 | 296 | 1,539 | -| [v1.0.179](https://github.com/laurent22/joplin/releases/tag/v1.0.179) | 2020-01-24T22:42:41Z | 71,657 | 29,054 | 22,591 | 123,302 | -| [v1.0.178](https://github.com/laurent22/joplin/releases/tag/v1.0.178) | 2020-01-20T19:06:45Z | 17,648 | 6,003 | 2,617 | 26,268 | -| [v1.0.177](https://github.com/laurent22/joplin/releases/tag/v1.0.177) (p) | 2019-12-30T14:40:40Z | 1,998 | 476 | 745 | 3,219 | -| [v1.0.176](https://github.com/laurent22/joplin/releases/tag/v1.0.176) (p) | 2019-12-14T10:36:44Z | 3,162 | 2,573 | 493 | 6,228 | -| [v1.0.175](https://github.com/laurent22/joplin/releases/tag/v1.0.175) | 2019-12-08T11:48:47Z | 73,701 | 17,009 | 16,615 | 107,325 | -| [v1.0.174](https://github.com/laurent22/joplin/releases/tag/v1.0.174) | 2019-11-12T18:20:58Z | 30,702 | 11,795 | 8,251 | 50,748 | +| [v1.0.179](https://github.com/laurent22/joplin/releases/tag/v1.0.179) | 2020-01-24T22:42:41Z | 71,669 | 29,063 | 22,591 | 123,323 | +| [v1.0.178](https://github.com/laurent22/joplin/releases/tag/v1.0.178) | 2020-01-20T19:06:45Z | 17,650 | 6,003 | 2,617 | 26,270 | +| [v1.0.177](https://github.com/laurent22/joplin/releases/tag/v1.0.177) (p) | 2019-12-30T14:40:40Z | 1,999 | 476 | 746 | 3,221 | +| [v1.0.176](https://github.com/laurent22/joplin/releases/tag/v1.0.176) (p) | 2019-12-14T10:36:44Z | 3,163 | 2,573 | 493 | 6,229 | +| [v1.0.175](https://github.com/laurent22/joplin/releases/tag/v1.0.175) | 2019-12-08T11:48:47Z | 73,713 | 17,009 | 16,615 | 107,337 | +| [v1.0.174](https://github.com/laurent22/joplin/releases/tag/v1.0.174) | 2019-11-12T18:20:58Z | 30,712 | 11,798 | 8,251 | 50,761 | | [v1.0.173](https://github.com/laurent22/joplin/releases/tag/v1.0.173) | 2019-11-11T08:33:35Z | 5,141 | 2,118 | 770 | 8,029 | -| [v1.0.170](https://github.com/laurent22/joplin/releases/tag/v1.0.170) | 2019-10-13T22:13:04Z | 27,805 | 8,817 | 7,712 | 44,334 | -| [v1.0.169](https://github.com/laurent22/joplin/releases/tag/v1.0.169) | 2019-09-27T18:35:13Z | 17,227 | 5,967 | 3,782 | 26,976 | -| [v1.0.168](https://github.com/laurent22/joplin/releases/tag/v1.0.168) | 2019-09-25T21:21:38Z | 5,378 | 2,314 | 742 | 8,434 | -| [v1.0.167](https://github.com/laurent22/joplin/releases/tag/v1.0.167) | 2019-09-10T08:48:37Z | 16,956 | 5,745 | 3,739 | 26,440 | -| [v1.0.166](https://github.com/laurent22/joplin/releases/tag/v1.0.166) | 2019-09-09T17:35:54Z | 1,999 | 599 | 259 | 2,857 | -| [v1.0.165](https://github.com/laurent22/joplin/releases/tag/v1.0.165) | 2019-08-14T21:46:29Z | 19,093 | 7,018 | 5,489 | 31,600 | -| [v1.0.161](https://github.com/laurent22/joplin/releases/tag/v1.0.161) | 2019-07-13T18:30:00Z | 19,382 | 6,389 | 4,160 | 29,931 | -| [v1.0.160](https://github.com/laurent22/joplin/releases/tag/v1.0.160) | 2019-06-15T00:21:40Z | 30,789 | 7,794 | 8,132 | 46,715 | -| [v1.0.159](https://github.com/laurent22/joplin/releases/tag/v1.0.159) | 2019-06-08T00:00:19Z | 5,245 | 2,218 | 1,270 | 8,733 | -| [v1.0.158](https://github.com/laurent22/joplin/releases/tag/v1.0.158) | 2019-05-27T19:01:18Z | 9,867 | 3,586 | 1,960 | 15,413 | -| [v1.0.157](https://github.com/laurent22/joplin/releases/tag/v1.0.157) | 2019-05-26T17:55:53Z | 2,220 | 879 | 313 | 3,412 | -| [v1.0.153](https://github.com/laurent22/joplin/releases/tag/v1.0.153) (p) | 2019-05-15T06:27:29Z | 889 | 141 | 130 | 1,160 | +| [v1.0.170](https://github.com/laurent22/joplin/releases/tag/v1.0.170) | 2019-10-13T22:13:04Z | 27,823 | 8,817 | 7,712 | 44,352 | +| [v1.0.169](https://github.com/laurent22/joplin/releases/tag/v1.0.169) | 2019-09-27T18:35:13Z | 17,236 | 5,967 | 3,782 | 26,985 | +| [v1.0.168](https://github.com/laurent22/joplin/releases/tag/v1.0.168) | 2019-09-25T21:21:38Z | 5,381 | 2,314 | 742 | 8,437 | +| [v1.0.167](https://github.com/laurent22/joplin/releases/tag/v1.0.167) | 2019-09-10T08:48:37Z | 16,966 | 5,745 | 3,739 | 26,450 | +| [v1.0.166](https://github.com/laurent22/joplin/releases/tag/v1.0.166) | 2019-09-09T17:35:54Z | 2,002 | 599 | 259 | 2,860 | +| [v1.0.165](https://github.com/laurent22/joplin/releases/tag/v1.0.165) | 2019-08-14T21:46:29Z | 19,096 | 7,018 | 5,489 | 31,603 | +| [v1.0.161](https://github.com/laurent22/joplin/releases/tag/v1.0.161) | 2019-07-13T18:30:00Z | 19,385 | 6,389 | 4,160 | 29,934 | +| [v1.0.160](https://github.com/laurent22/joplin/releases/tag/v1.0.160) | 2019-06-15T00:21:40Z | 30,797 | 7,794 | 8,132 | 46,723 | +| [v1.0.159](https://github.com/laurent22/joplin/releases/tag/v1.0.159) | 2019-06-08T00:00:19Z | 5,248 | 2,218 | 1,274 | 8,740 | +| [v1.0.158](https://github.com/laurent22/joplin/releases/tag/v1.0.158) | 2019-05-27T19:01:18Z | 9,869 | 3,586 | 1,960 | 15,415 | +| [v1.0.157](https://github.com/laurent22/joplin/releases/tag/v1.0.157) | 2019-05-26T17:55:53Z | 2,222 | 879 | 313 | 3,414 | +| [v1.0.153](https://github.com/laurent22/joplin/releases/tag/v1.0.153) (p) | 2019-05-15T06:27:29Z | 892 | 141 | 130 | 1,163 | | [v1.0.152](https://github.com/laurent22/joplin/releases/tag/v1.0.152) | 2019-05-13T09:08:07Z | 13,930 | 4,471 | 4,088 | 22,489 | -| [v1.0.151](https://github.com/laurent22/joplin/releases/tag/v1.0.151) | 2019-05-12T15:14:32Z | 1,995 | 572 | 983 | 3,550 | -| [v1.0.150](https://github.com/laurent22/joplin/releases/tag/v1.0.150) | 2019-05-12T11:27:48Z | 466 | 173 | 93 | 732 | -| [v1.0.148](https://github.com/laurent22/joplin/releases/tag/v1.0.148) (p) | 2019-05-08T19:12:24Z | 166 | 93 | 119 | 378 | -| [v1.0.145](https://github.com/laurent22/joplin/releases/tag/v1.0.145) | 2019-05-03T09:16:53Z | 7,059 | 2,901 | 1,463 | 11,423 | -| [v1.0.143](https://github.com/laurent22/joplin/releases/tag/v1.0.143) | 2019-04-22T10:51:38Z | 11,966 | 3,588 | 2,805 | 18,359 | -| [v1.0.142](https://github.com/laurent22/joplin/releases/tag/v1.0.142) | 2019-04-02T16:44:51Z | 14,819 | 4,606 | 4,755 | 24,180 | -| [v1.0.140](https://github.com/laurent22/joplin/releases/tag/v1.0.140) | 2019-03-10T20:59:58Z | 13,683 | 4,213 | 3,404 | 21,300 | -| [v1.0.139](https://github.com/laurent22/joplin/releases/tag/v1.0.139) (p) | 2019-03-09T10:06:48Z | 159 | 102 | 68 | 329 | -| [v1.0.138](https://github.com/laurent22/joplin/releases/tag/v1.0.138) (p) | 2019-03-03T17:23:00Z | 196 | 126 | 106 | 428 | -| [v1.0.137](https://github.com/laurent22/joplin/releases/tag/v1.0.137) (p) | 2019-03-03T01:12:51Z | 627 | 93 | 106 | 826 | -| [v1.0.135](https://github.com/laurent22/joplin/releases/tag/v1.0.135) | 2019-02-27T23:36:57Z | 12,673 | 3,995 | 4,105 | 20,773 | +| [v1.0.151](https://github.com/laurent22/joplin/releases/tag/v1.0.151) | 2019-05-12T15:14:32Z | 1,996 | 572 | 983 | 3,551 | +| [v1.0.150](https://github.com/laurent22/joplin/releases/tag/v1.0.150) | 2019-05-12T11:27:48Z | 469 | 173 | 93 | 735 | +| [v1.0.148](https://github.com/laurent22/joplin/releases/tag/v1.0.148) (p) | 2019-05-08T19:12:24Z | 169 | 93 | 119 | 381 | +| [v1.0.145](https://github.com/laurent22/joplin/releases/tag/v1.0.145) | 2019-05-03T09:16:53Z | 7,063 | 2,901 | 1,463 | 11,427 | +| [v1.0.143](https://github.com/laurent22/joplin/releases/tag/v1.0.143) | 2019-04-22T10:51:38Z | 11,970 | 3,589 | 2,806 | 18,365 | +| [v1.0.142](https://github.com/laurent22/joplin/releases/tag/v1.0.142) | 2019-04-02T16:44:51Z | 14,823 | 4,606 | 4,756 | 24,185 | +| [v1.0.140](https://github.com/laurent22/joplin/releases/tag/v1.0.140) | 2019-03-10T20:59:58Z | 13,687 | 4,213 | 3,404 | 21,304 | +| [v1.0.139](https://github.com/laurent22/joplin/releases/tag/v1.0.139) (p) | 2019-03-09T10:06:48Z | 162 | 102 | 68 | 332 | +| [v1.0.138](https://github.com/laurent22/joplin/releases/tag/v1.0.138) (p) | 2019-03-03T17:23:00Z | 200 | 126 | 106 | 432 | +| [v1.0.137](https://github.com/laurent22/joplin/releases/tag/v1.0.137) (p) | 2019-03-03T01:12:51Z | 630 | 93 | 106 | 829 | +| [v1.0.135](https://github.com/laurent22/joplin/releases/tag/v1.0.135) | 2019-02-27T23:36:57Z | 12,676 | 3,995 | 4,105 | 20,776 | | [v1.0.134](https://github.com/laurent22/joplin/releases/tag/v1.0.134) | 2019-02-27T10:21:44Z | 1,510 | 606 | 243 | 2,359 | -| [v1.0.132](https://github.com/laurent22/joplin/releases/tag/v1.0.132) | 2019-02-26T23:02:05Z | 1,129 | 489 | 118 | 1,736 | -| [v1.0.127](https://github.com/laurent22/joplin/releases/tag/v1.0.127) | 2019-02-14T23:12:48Z | 9,987 | 3,211 | 2,956 | 16,154 | -| [v1.0.126](https://github.com/laurent22/joplin/releases/tag/v1.0.126) (p) | 2019-02-09T19:46:16Z | 970 | 111 | 137 | 1,218 | -| [v1.0.125](https://github.com/laurent22/joplin/releases/tag/v1.0.125) | 2019-01-26T18:14:33Z | 10,360 | 3,595 | 1,726 | 15,681 | -| [v1.0.120](https://github.com/laurent22/joplin/releases/tag/v1.0.120) | 2019-01-10T21:42:53Z | 15,671 | 5,246 | 6,542 | 27,459 | -| [v1.0.119](https://github.com/laurent22/joplin/releases/tag/v1.0.119) | 2018-12-18T12:40:22Z | 8,978 | 3,300 | 2,039 | 14,317 | +| [v1.0.132](https://github.com/laurent22/joplin/releases/tag/v1.0.132) | 2019-02-26T23:02:05Z | 1,132 | 489 | 118 | 1,739 | +| [v1.0.127](https://github.com/laurent22/joplin/releases/tag/v1.0.127) | 2019-02-14T23:12:48Z | 9,997 | 3,211 | 2,956 | 16,164 | +| [v1.0.126](https://github.com/laurent22/joplin/releases/tag/v1.0.126) (p) | 2019-02-09T19:46:16Z | 972 | 111 | 137 | 1,220 | +| [v1.0.125](https://github.com/laurent22/joplin/releases/tag/v1.0.125) | 2019-01-26T18:14:33Z | 10,362 | 3,595 | 1,726 | 15,683 | +| [v1.0.120](https://github.com/laurent22/joplin/releases/tag/v1.0.120) | 2019-01-10T21:42:53Z | 15,674 | 5,246 | 6,543 | 27,463 | +| [v1.0.119](https://github.com/laurent22/joplin/releases/tag/v1.0.119) | 2018-12-18T12:40:22Z | 8,981 | 3,300 | 2,039 | 14,320 | | [v1.0.118](https://github.com/laurent22/joplin/releases/tag/v1.0.118) | 2019-01-11T08:34:13Z | 759 | 284 | 112 | 1,155 | -| [v1.0.117](https://github.com/laurent22/joplin/releases/tag/v1.0.117) | 2018-11-24T12:05:24Z | 16,321 | 4,940 | 6,406 | 27,667 | -| [v1.0.116](https://github.com/laurent22/joplin/releases/tag/v1.0.116) | 2018-11-20T19:09:24Z | 4,040 | 1,160 | 738 | 5,938 | -| [v1.0.115](https://github.com/laurent22/joplin/releases/tag/v1.0.115) | 2018-11-16T16:52:02Z | 3,698 | 1,339 | 824 | 5,861 | -| [v1.0.114](https://github.com/laurent22/joplin/releases/tag/v1.0.114) | 2018-10-24T20:14:10Z | 11,439 | 3,538 | 3,854 | 18,831 | -| [v1.0.111](https://github.com/laurent22/joplin/releases/tag/v1.0.111) | 2018-09-30T20:15:09Z | 12,426 | 3,506 | 3,706 | 19,638 | +| [v1.0.117](https://github.com/laurent22/joplin/releases/tag/v1.0.117) | 2018-11-24T12:05:24Z | 16,324 | 4,940 | 6,408 | 27,672 | +| [v1.0.116](https://github.com/laurent22/joplin/releases/tag/v1.0.116) | 2018-11-20T19:09:24Z | 4,044 | 1,160 | 738 | 5,942 | +| [v1.0.115](https://github.com/laurent22/joplin/releases/tag/v1.0.115) | 2018-11-16T16:52:02Z | 3,704 | 1,341 | 825 | 5,870 | +| [v1.0.114](https://github.com/laurent22/joplin/releases/tag/v1.0.114) | 2018-10-24T20:14:10Z | 11,444 | 3,538 | 3,854 | 18,836 | +| [v1.0.111](https://github.com/laurent22/joplin/releases/tag/v1.0.111) | 2018-09-30T20:15:09Z | 12,436 | 3,510 | 3,706 | 19,652 | | [v1.0.110](https://github.com/laurent22/joplin/releases/tag/v1.0.110) | 2018-09-29T12:29:21Z | 1,005 | 448 | 142 | 1,595 | | [v1.0.109](https://github.com/laurent22/joplin/releases/tag/v1.0.109) | 2018-09-27T18:01:41Z | 2,145 | 742 | 355 | 3,242 | | [v1.0.108](https://github.com/laurent22/joplin/releases/tag/v1.0.108) (p) | 2018-09-29T18:49:29Z | 65 | 58 | 37 | 160 | -| [v1.0.107](https://github.com/laurent22/joplin/releases/tag/v1.0.107) | 2018-09-16T19:51:07Z | 7,201 | 2,175 | 1,734 | 11,110 | +| [v1.0.107](https://github.com/laurent22/joplin/releases/tag/v1.0.107) | 2018-09-16T19:51:07Z | 7,202 | 2,175 | 1,734 | 11,111 | | [v1.0.106](https://github.com/laurent22/joplin/releases/tag/v1.0.106) | 2018-09-08T15:23:40Z | 4,601 | 1,495 | 341 | 6,437 | | [v1.0.105](https://github.com/laurent22/joplin/releases/tag/v1.0.105) | 2018-09-05T11:29:36Z | 4,698 | 1,630 | 1,483 | 7,811 | -| [v1.0.104](https://github.com/laurent22/joplin/releases/tag/v1.0.104) | 2018-06-28T20:25:36Z | 15,131 | 4,739 | 7,403 | 27,273 | -| [v1.0.103](https://github.com/laurent22/joplin/releases/tag/v1.0.103) | 2018-06-21T19:38:13Z | 2,096 | 924 | 702 | 3,722 | -| [v1.0.101](https://github.com/laurent22/joplin/releases/tag/v1.0.101) | 2018-06-17T18:35:11Z | 1,351 | 645 | 434 | 2,430 | -| [v1.0.100](https://github.com/laurent22/joplin/releases/tag/v1.0.100) | 2018-06-14T17:41:43Z | 931 | 475 | 271 | 1,677 | -| [v1.0.99](https://github.com/laurent22/joplin/releases/tag/v1.0.99) | 2018-06-10T13:18:23Z | 1,296 | 635 | 404 | 2,335 | -| [v1.0.97](https://github.com/laurent22/joplin/releases/tag/v1.0.97) | 2018-06-09T19:23:34Z | 357 | 193 | 85 | 635 | -| [v1.0.96](https://github.com/laurent22/joplin/releases/tag/v1.0.96) | 2018-05-26T16:36:39Z | 2,770 | 1,263 | 1,742 | 5,775 | +| [v1.0.104](https://github.com/laurent22/joplin/releases/tag/v1.0.104) | 2018-06-28T20:25:36Z | 15,137 | 4,739 | 7,408 | 27,284 | +| [v1.0.103](https://github.com/laurent22/joplin/releases/tag/v1.0.103) | 2018-06-21T19:38:13Z | 2,100 | 926 | 703 | 3,729 | +| [v1.0.101](https://github.com/laurent22/joplin/releases/tag/v1.0.101) | 2018-06-17T18:35:11Z | 1,353 | 645 | 434 | 2,432 | +| [v1.0.100](https://github.com/laurent22/joplin/releases/tag/v1.0.100) | 2018-06-14T17:41:43Z | 933 | 475 | 271 | 1,679 | +| [v1.0.99](https://github.com/laurent22/joplin/releases/tag/v1.0.99) | 2018-06-10T13:18:23Z | 1,298 | 635 | 404 | 2,337 | +| [v1.0.97](https://github.com/laurent22/joplin/releases/tag/v1.0.97) | 2018-06-09T19:23:34Z | 357 | 193 | 86 | 636 | +| [v1.0.96](https://github.com/laurent22/joplin/releases/tag/v1.0.96) | 2018-05-26T16:36:39Z | 2,772 | 1,263 | 1,742 | 5,777 | | [v1.0.95](https://github.com/laurent22/joplin/releases/tag/v1.0.95) | 2018-05-25T13:04:30Z | 462 | 256 | 161 | 879 | -| [v1.0.94](https://github.com/laurent22/joplin/releases/tag/v1.0.94) | 2018-05-21T20:52:59Z | 1,177 | 627 | 442 | 2,246 | -| [v1.0.93](https://github.com/laurent22/joplin/releases/tag/v1.0.93) | 2018-05-14T11:36:01Z | 1,837 | 1,348 | 800 | 3,985 | -| [v1.0.91](https://github.com/laurent22/joplin/releases/tag/v1.0.91) | 2018-05-10T14:48:04Z | 852 | 591 | 362 | 1,805 | -| [v1.0.89](https://github.com/laurent22/joplin/releases/tag/v1.0.89) | 2018-05-09T13:05:05Z | 543 | 283 | 157 | 983 | -| [v1.0.85](https://github.com/laurent22/joplin/releases/tag/v1.0.85) | 2018-05-01T21:08:24Z | 1,678 | 990 | 674 | 3,342 | -| [v1.0.83](https://github.com/laurent22/joplin/releases/tag/v1.0.83) | 2018-04-04T19:43:58Z | 5,583 | 2,573 | 2,700 | 10,856 | -| [v1.0.82](https://github.com/laurent22/joplin/releases/tag/v1.0.82) | 2018-03-31T19:16:31Z | 726 | 444 | 162 | 1,332 | -| [v1.0.81](https://github.com/laurent22/joplin/releases/tag/v1.0.81) | 2018-03-28T08:13:58Z | 1,023 | 636 | 824 | 2,483 | -| [v1.0.79](https://github.com/laurent22/joplin/releases/tag/v1.0.79) | 2018-03-23T18:00:11Z | 955 | 578 | 426 | 1,959 | -| [v1.0.78](https://github.com/laurent22/joplin/releases/tag/v1.0.78) | 2018-03-17T15:27:18Z | 1,338 | 940 | 913 | 3,191 | +| [v1.0.94](https://github.com/laurent22/joplin/releases/tag/v1.0.94) | 2018-05-21T20:52:59Z | 1,179 | 627 | 442 | 2,248 | +| [v1.0.93](https://github.com/laurent22/joplin/releases/tag/v1.0.93) | 2018-05-14T11:36:01Z | 1,841 | 1,351 | 802 | 3,994 | +| [v1.0.91](https://github.com/laurent22/joplin/releases/tag/v1.0.91) | 2018-05-10T14:48:04Z | 855 | 593 | 364 | 1,812 | +| [v1.0.89](https://github.com/laurent22/joplin/releases/tag/v1.0.89) | 2018-05-09T13:05:05Z | 544 | 284 | 157 | 985 | +| [v1.0.85](https://github.com/laurent22/joplin/releases/tag/v1.0.85) | 2018-05-01T21:08:24Z | 1,679 | 990 | 674 | 3,343 | +| [v1.0.83](https://github.com/laurent22/joplin/releases/tag/v1.0.83) | 2018-04-04T19:43:58Z | 5,585 | 2,573 | 2,700 | 10,858 | +| [v1.0.82](https://github.com/laurent22/joplin/releases/tag/v1.0.82) | 2018-03-31T19:16:31Z | 727 | 444 | 162 | 1,333 | +| [v1.0.81](https://github.com/laurent22/joplin/releases/tag/v1.0.81) | 2018-03-28T08:13:58Z | 1,024 | 636 | 824 | 2,484 | +| [v1.0.79](https://github.com/laurent22/joplin/releases/tag/v1.0.79) | 2018-03-23T18:00:11Z | 956 | 578 | 426 | 1,960 | +| [v1.0.78](https://github.com/laurent22/joplin/releases/tag/v1.0.78) | 2018-03-17T15:27:18Z | 1,340 | 943 | 915 | 3,198 | | [v1.0.77](https://github.com/laurent22/joplin/releases/tag/v1.0.77) | 2018-03-16T15:12:35Z | 202 | 144 | 88 | 434 | -| [v1.0.72](https://github.com/laurent22/joplin/releases/tag/v1.0.72) | 2018-03-14T09:44:35Z | 434 | 296 | 98 | 828 | -| [v1.0.70](https://github.com/laurent22/joplin/releases/tag/v1.0.70) | 2018-02-28T20:04:30Z | 1,983 | 1,090 | 1,294 | 4,367 | -| [v1.0.67](https://github.com/laurent22/joplin/releases/tag/v1.0.67) | 2018-02-19T22:51:08Z | 1,930 | 643 | 0 | 2,573 | -| [v1.0.66](https://github.com/laurent22/joplin/releases/tag/v1.0.66) | 2018-02-18T23:09:09Z | 448 | 172 | 107 | 727 | -| [v1.0.65](https://github.com/laurent22/joplin/releases/tag/v1.0.65) | 2018-02-17T20:02:25Z | 326 | 166 | 155 | 647 | -| [v1.0.64](https://github.com/laurent22/joplin/releases/tag/v1.0.64) | 2018-02-16T00:58:20Z | 1,189 | 581 | 1,145 | 2,915 | +| [v1.0.72](https://github.com/laurent22/joplin/releases/tag/v1.0.72) | 2018-03-14T09:44:35Z | 435 | 296 | 98 | 829 | +| [v1.0.70](https://github.com/laurent22/joplin/releases/tag/v1.0.70) | 2018-02-28T20:04:30Z | 1,984 | 1,090 | 1,294 | 4,368 | +| [v1.0.67](https://github.com/laurent22/joplin/releases/tag/v1.0.67) | 2018-02-19T22:51:08Z | 1,931 | 644 | 0 | 2,575 | +| [v1.0.66](https://github.com/laurent22/joplin/releases/tag/v1.0.66) | 2018-02-18T23:09:09Z | 449 | 174 | 108 | 731 | +| [v1.0.65](https://github.com/laurent22/joplin/releases/tag/v1.0.65) | 2018-02-17T20:02:25Z | 327 | 166 | 155 | 648 | +| [v1.0.64](https://github.com/laurent22/joplin/releases/tag/v1.0.64) | 2018-02-16T00:58:20Z | 1,190 | 583 | 1,146 | 2,919 | | [v1.0.63](https://github.com/laurent22/joplin/releases/tag/v1.0.63) | 2018-02-14T19:40:36Z | 412 | 200 | 115 | 727 | -| [v1.0.62](https://github.com/laurent22/joplin/releases/tag/v1.0.62) | 2018-02-12T20:19:58Z | 693 | 345 | 396 | 1,434 | -| [v0.10.61](https://github.com/laurent22/joplin/releases/tag/v0.10.61) | 2018-02-08T18:27:39Z | 1,104 | 676 | 986 | 2,766 | -| [v0.10.60](https://github.com/laurent22/joplin/releases/tag/v0.10.60) | 2018-02-06T13:09:56Z | 747 | 561 | 575 | 1,883 | -| [v0.10.54](https://github.com/laurent22/joplin/releases/tag/v0.10.54) | 2018-01-31T20:21:30Z | 1,936 | 1,501 | 346 | 3,783 | +| [v1.0.62](https://github.com/laurent22/joplin/releases/tag/v1.0.62) | 2018-02-12T20:19:58Z | 695 | 345 | 396 | 1,436 | +| [v0.10.61](https://github.com/laurent22/joplin/releases/tag/v0.10.61) | 2018-02-08T18:27:39Z | 1,105 | 676 | 986 | 2,767 | +| [v0.10.60](https://github.com/laurent22/joplin/releases/tag/v0.10.60) | 2018-02-06T13:09:56Z | 748 | 561 | 575 | 1,884 | +| [v0.10.54](https://github.com/laurent22/joplin/releases/tag/v0.10.54) | 2018-01-31T20:21:30Z | 1,937 | 1,501 | 346 | 3,784 | | [v0.10.52](https://github.com/laurent22/joplin/releases/tag/v0.10.52) | 2018-01-31T19:25:18Z | 163 | 677 | 41 | 881 | | [v0.10.51](https://github.com/laurent22/joplin/releases/tag/v0.10.51) | 2018-01-28T18:47:02Z | 1,429 | 1,643 | 352 | 3,424 | -| [v0.10.48](https://github.com/laurent22/joplin/releases/tag/v0.10.48) | 2018-01-23T11:19:51Z | 2,092 | 1,791 | 55 | 3,938 | +| [v0.10.48](https://github.com/laurent22/joplin/releases/tag/v0.10.48) | 2018-01-23T11:19:51Z | 2,093 | 1,791 | 55 | 3,939 | | [v0.10.47](https://github.com/laurent22/joplin/releases/tag/v0.10.47) | 2018-01-16T17:27:17Z | 1,332 | 1,315 | 90 | 2,737 | -| [v0.10.43](https://github.com/laurent22/joplin/releases/tag/v0.10.43) | 2018-01-08T10:12:10Z | 3,466 | 2,399 | 1,235 | 7,100 | -| [v0.10.41](https://github.com/laurent22/joplin/releases/tag/v0.10.41) | 2018-01-05T20:38:12Z | 1,222 | 1,597 | 266 | 3,085 | -| [v0.10.40](https://github.com/laurent22/joplin/releases/tag/v0.10.40) | 2018-01-02T23:16:57Z | 1,618 | 1,830 | 361 | 3,809 | -| [v0.10.39](https://github.com/laurent22/joplin/releases/tag/v0.10.39) | 2017-12-11T21:19:44Z | 5,960 | 4,438 | 3,319 | 13,717 | +| [v0.10.43](https://github.com/laurent22/joplin/releases/tag/v0.10.43) | 2018-01-08T10:12:10Z | 3,468 | 2,400 | 1,236 | 7,104 | +| [v0.10.41](https://github.com/laurent22/joplin/releases/tag/v0.10.41) | 2018-01-05T20:38:12Z | 1,223 | 1,597 | 266 | 3,086 | +| [v0.10.40](https://github.com/laurent22/joplin/releases/tag/v0.10.40) | 2018-01-02T23:16:57Z | 1,620 | 1,832 | 362 | 3,814 | +| [v0.10.39](https://github.com/laurent22/joplin/releases/tag/v0.10.39) | 2017-12-11T21:19:44Z | 5,963 | 4,439 | 3,320 | 13,722 | | [v0.10.38](https://github.com/laurent22/joplin/releases/tag/v0.10.38) | 2017-12-08T10:12:06Z | 1,073 | 1,273 | 330 | 2,676 | | [v0.10.37](https://github.com/laurent22/joplin/releases/tag/v0.10.37) | 2017-12-07T19:38:05Z | 291 | 892 | 109 | 1,292 | | [v0.10.36](https://github.com/laurent22/joplin/releases/tag/v0.10.36) | 2017-12-05T09:34:40Z | 1,040 | 1,401 | 463 | 2,904 | -| [v0.10.35](https://github.com/laurent22/joplin/releases/tag/v0.10.35) | 2017-12-02T15:56:08Z | 1,601 | 1,591 | 768 | 3,960 | -| [v0.10.34](https://github.com/laurent22/joplin/releases/tag/v0.10.34) | 2017-12-02T14:50:28Z | 116 | 715 | 84 | 915 | -| [v0.10.33](https://github.com/laurent22/joplin/releases/tag/v0.10.33) | 2017-12-02T13:20:39Z | 86 | 709 | 50 | 845 | -| [v0.10.31](https://github.com/laurent22/joplin/releases/tag/v0.10.31) | 2017-12-01T09:56:44Z | 917 | 1,497 | 434 | 2,848 | -| [v0.10.30](https://github.com/laurent22/joplin/releases/tag/v0.10.30) | 2017-11-30T20:28:16Z | 831 | 1,426 | 451 | 2,708 | -| [v0.10.28](https://github.com/laurent22/joplin/releases/tag/v0.10.28) | 2017-11-30T01:07:46Z | 1,486 | 1,761 | 906 | 4,153 | -| [v0.10.26](https://github.com/laurent22/joplin/releases/tag/v0.10.26) | 2017-11-29T16:02:17Z | 305 | 754 | 290 | 1,349 | -| [v0.10.25](https://github.com/laurent22/joplin/releases/tag/v0.10.25) | 2017-11-24T14:27:49Z | 258 | 752 | 6,753 | 7,763 | +| [v0.10.35](https://github.com/laurent22/joplin/releases/tag/v0.10.35) | 2017-12-02T15:56:08Z | 1,602 | 1,593 | 769 | 3,964 | +| [v0.10.34](https://github.com/laurent22/joplin/releases/tag/v0.10.34) | 2017-12-02T14:50:28Z | 117 | 717 | 85 | 919 | +| [v0.10.33](https://github.com/laurent22/joplin/releases/tag/v0.10.33) | 2017-12-02T13:20:39Z | 87 | 711 | 51 | 849 | +| [v0.10.31](https://github.com/laurent22/joplin/releases/tag/v0.10.31) | 2017-12-01T09:56:44Z | 918 | 1,499 | 435 | 2,852 | +| [v0.10.30](https://github.com/laurent22/joplin/releases/tag/v0.10.30) | 2017-11-30T20:28:16Z | 832 | 1,428 | 452 | 2,712 | +| [v0.10.28](https://github.com/laurent22/joplin/releases/tag/v0.10.28) | 2017-11-30T01:07:46Z | 1,487 | 1,761 | 906 | 4,154 | +| [v0.10.26](https://github.com/laurent22/joplin/releases/tag/v0.10.26) | 2017-11-29T16:02:17Z | 306 | 756 | 291 | 1,353 | +| [v0.10.25](https://github.com/laurent22/joplin/releases/tag/v0.10.25) | 2017-11-24T14:27:49Z | 258 | 752 | 6,757 | 7,767 | | [v0.10.23](https://github.com/laurent22/joplin/releases/tag/v0.10.23) | 2017-11-21T19:38:41Z | 245 | 714 | 63 | 1,022 | -| [v0.10.22](https://github.com/laurent22/joplin/releases/tag/v0.10.22) | 2017-11-20T21:45:57Z | 191 | 700 | 48 | 939 | +| [v0.10.22](https://github.com/laurent22/joplin/releases/tag/v0.10.22) | 2017-11-20T21:45:57Z | 191 | 700 | 49 | 940 | | [v0.10.21](https://github.com/laurent22/joplin/releases/tag/v0.10.21) | 2017-11-18T00:53:15Z | 169 | 693 | 44 | 906 | | [v0.10.20](https://github.com/laurent22/joplin/releases/tag/v0.10.20) | 2017-11-17T17:18:25Z | 158 | 702 | 54 | 914 | -| [v0.10.19](https://github.com/laurent22/joplin/releases/tag/v0.10.19) | 2017-11-20T18:59:48Z | 170 | 707 | 53 | 930 | \ No newline at end of file +| [v0.10.19](https://github.com/laurent22/joplin/releases/tag/v0.10.19) | 2017-11-20T18:59:48Z | 172 | 707 | 54 | 933 | \ No newline at end of file diff --git a/readme/install.md b/readme/install.md index e72fcae7f0b..44da912215e 100644 --- a/readme/install.md +++ b/readme/install.md @@ -27,7 +27,7 @@ The install and update script supports the [following flags](https://github.com/ Operating System | Download | Alt. Download ---|---|--- -Android | Get it on Google Play | or download the [APK file](https://objects.joplinusercontent.com/v3.0.7/joplin-v3.0.7.apk?source=JoplinWebsite&type=New) +Android | Get it on Google Play | or download the [APK file](https://objects.joplinusercontent.com/v3.1.6/joplin-v3.1.6.apk?source=JoplinWebsite&type=New) iOS | Get it on the App Store | - ## Terminal application diff --git a/yarn.lock b/yarn.lock index cc1eff67af8..61de7953b2a 100644 --- a/yarn.lock +++ b/yarn.lock @@ -12,6 +12,18 @@ __metadata: languageName: node linkType: hard +"@0no-co/graphql.web@npm:^1.0.5": + version: 1.0.8 + resolution: "@0no-co/graphql.web@npm:1.0.8" + peerDependencies: + graphql: ^14.0.0 || ^15.0.0 || ^16.0.0 + peerDependenciesMeta: + graphql: + optional: true + checksum: 5bd3ac2a55401c6d47e8af479170e1ae3b38c80847203d5b445f281f36e68ac11e6a6400e43e90b382d38f704721dd46acaab1088239362b9290b536a9e7d707 + languageName: node + linkType: hard + "@aashutoshrathi/word-wrap@npm:^1.2.3": version: 1.2.6 resolution: "@aashutoshrathi/word-wrap@npm:1.2.6" @@ -1411,6 +1423,15 @@ __metadata: languageName: node linkType: hard +"@babel/code-frame@npm:7.10.4, @babel/code-frame@npm:~7.10.4": + version: 7.10.4 + resolution: "@babel/code-frame@npm:7.10.4" + dependencies: + "@babel/highlight": ^7.10.4 + checksum: feb4543c8a509fe30f0f6e8d7aa84f82b41148b963b826cd330e34986f649a85cb63b2f13dd4effdf434ac555d16f14940b8ea5f4433297c2f5ff85486ded019 + languageName: node + linkType: hard + "@babel/code-frame@npm:7.12.11": version: 7.12.11 resolution: "@babel/code-frame@npm:7.12.11" @@ -1610,6 +1631,18 @@ __metadata: languageName: node linkType: hard +"@babel/generator@npm:^7.20.5, @babel/generator@npm:^7.25.6": + version: 7.25.6 + resolution: "@babel/generator@npm:7.25.6" + dependencies: + "@babel/types": ^7.25.6 + "@jridgewell/gen-mapping": ^0.3.5 + "@jridgewell/trace-mapping": ^0.3.25 + jsesc: ^2.5.1 + checksum: b55975cd664f5602304d868bb34f4ee3bed6f5c7ce8132cd92ff27a46a53a119def28a182d91992e86f75db904f63094a81247703c4dc96e4db0c03fd04bcd68 + languageName: node + linkType: hard + "@babel/generator@npm:^7.24.7": version: 7.24.7 resolution: "@babel/generator@npm:7.24.7" @@ -1757,6 +1790,23 @@ __metadata: languageName: node linkType: hard +"@babel/helper-create-class-features-plugin@npm:^7.25.0": + version: 7.25.4 + resolution: "@babel/helper-create-class-features-plugin@npm:7.25.4" + dependencies: + "@babel/helper-annotate-as-pure": ^7.24.7 + "@babel/helper-member-expression-to-functions": ^7.24.8 + "@babel/helper-optimise-call-expression": ^7.24.7 + "@babel/helper-replace-supers": ^7.25.0 + "@babel/helper-skip-transparent-expression-wrappers": ^7.24.7 + "@babel/traverse": ^7.25.4 + semver: ^6.3.1 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: 4544ebda4516eb25efdebd47ca024bd7bdb1eb6e7cc3ad89688c8ef8e889734c2f4411ed78981899c641394f013f246f2af63d92a0e9270f6c453309b4cb89ba + languageName: node + linkType: hard + "@babel/helper-create-regexp-features-plugin@npm:^7.18.6, @babel/helper-create-regexp-features-plugin@npm:^7.22.5": version: 7.22.5 resolution: "@babel/helper-create-regexp-features-plugin@npm:7.22.5" @@ -1928,6 +1978,16 @@ __metadata: languageName: node linkType: hard +"@babel/helper-member-expression-to-functions@npm:^7.24.8": + version: 7.24.8 + resolution: "@babel/helper-member-expression-to-functions@npm:7.24.8" + dependencies: + "@babel/traverse": ^7.24.8 + "@babel/types": ^7.24.8 + checksum: bf923d05d81b06857f4ca4fe9c528c9c447a58db5ea39595bb559eae2fce01a8266173db0fd6a2ec129d7bbbb9bb22f4e90008252f7c66b422c76630a878a4bc + languageName: node + linkType: hard + "@babel/helper-module-imports@npm:^7.0.0, @babel/helper-module-imports@npm:^7.16.0, @babel/helper-module-imports@npm:^7.16.7, @babel/helper-module-imports@npm:^7.18.6, @babel/helper-module-imports@npm:^7.22.5": version: 7.22.5 resolution: "@babel/helper-module-imports@npm:7.22.5" @@ -2041,6 +2101,13 @@ __metadata: languageName: node linkType: hard +"@babel/helper-plugin-utils@npm:^7.24.8": + version: 7.24.8 + resolution: "@babel/helper-plugin-utils@npm:7.24.8" + checksum: 73b1a83ba8bcee21dc94de2eb7323207391715e4369fd55844bb15cf13e3df6f3d13a40786d990e6370bf0f571d94fc31f70dec96c1d1002058258c35ca3767a + languageName: node + linkType: hard + "@babel/helper-remap-async-to-generator@npm:^7.18.9, @babel/helper-remap-async-to-generator@npm:^7.22.5": version: 7.22.5 resolution: "@babel/helper-remap-async-to-generator@npm:7.22.5" @@ -2121,6 +2188,19 @@ __metadata: languageName: node linkType: hard +"@babel/helper-replace-supers@npm:^7.25.0": + version: 7.25.0 + resolution: "@babel/helper-replace-supers@npm:7.25.0" + dependencies: + "@babel/helper-member-expression-to-functions": ^7.24.8 + "@babel/helper-optimise-call-expression": ^7.24.7 + "@babel/traverse": ^7.25.0 + peerDependencies: + "@babel/core": ^7.0.0 + checksum: f669fc2487c22d40b808f94b9c3ee41129484d5ef0ba689bdd70f216ff91e10b6b021d2f8cd37e7bdd700235a2a6ae6622526344f064528190383bf661ac65f8 + languageName: node + linkType: hard + "@babel/helper-simple-access@npm:^7.22.5": version: 7.22.5 resolution: "@babel/helper-simple-access@npm:7.22.5" @@ -2200,6 +2280,13 @@ __metadata: languageName: node linkType: hard +"@babel/helper-string-parser@npm:^7.24.8": + version: 7.24.8 + resolution: "@babel/helper-string-parser@npm:7.24.8" + checksum: 39b03c5119216883878655b149148dc4d2e284791e969b19467a9411fccaa33f7a713add98f4db5ed519535f70ad273cdadfd2eb54d47ebbdeac5083351328ce + languageName: node + linkType: hard + "@babel/helper-validator-identifier@npm:^7.22.20": version: 7.22.20 resolution: "@babel/helper-validator-identifier@npm:7.22.20" @@ -2370,6 +2457,17 @@ __metadata: languageName: node linkType: hard +"@babel/parser@npm:^7.25.0, @babel/parser@npm:^7.25.6": + version: 7.25.6 + resolution: "@babel/parser@npm:7.25.6" + dependencies: + "@babel/types": ^7.25.6 + bin: + parser: ./bin/babel-parser.js + checksum: 85b237ded09ee43cc984493c35f3b1ff8a83e8dbbb8026b8132e692db6567acc5a1659ec928e4baa25499ddd840d7dae9dee3062be7108fe23ec5f94a8066b1e + languageName: node + linkType: hard + "@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:^7.24.7": version: 7.24.7 resolution: "@babel/plugin-bugfix-firefox-class-in-computed-class-key@npm:7.24.7" @@ -2468,6 +2566,19 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-proposal-decorators@npm:^7.12.9": + version: 7.24.7 + resolution: "@babel/plugin-proposal-decorators@npm:7.24.7" + dependencies: + "@babel/helper-create-class-features-plugin": ^7.24.7 + "@babel/helper-plugin-utils": ^7.24.7 + "@babel/plugin-syntax-decorators": ^7.24.7 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 75aa5ff5537d5ff77f0e52eb161a2f67c7d2bfd8f2000be710dedb1dd238b43ce53d2f734f84bda95b3f013b69de126403f84167f4eddb1d35e8f26257ee07c8 + languageName: node + linkType: hard + "@babel/plugin-proposal-export-default-from@npm:^7.0.0": version: 7.16.0 resolution: "@babel/plugin-proposal-export-default-from@npm:7.16.0" @@ -2622,6 +2733,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-syntax-decorators@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-syntax-decorators@npm:7.24.7" + dependencies: + "@babel/helper-plugin-utils": ^7.24.7 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: dc303bcc1f5df61638f1eddc69dd55e65574bd43d8a4a098d3589f5a742e93a4ca3a173967b34eb95e4eaa994799b4c72bfed8688036e43c634be7f24db01ac5 + languageName: node + linkType: hard + "@babel/plugin-syntax-dynamic-import@npm:^7.0.0, @babel/plugin-syntax-dynamic-import@npm:^7.8.0, @babel/plugin-syntax-dynamic-import@npm:^7.8.3": version: 7.8.3 resolution: "@babel/plugin-syntax-dynamic-import@npm:7.8.3" @@ -2776,6 +2898,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-syntax-jsx@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-syntax-jsx@npm:7.24.7" + dependencies: + "@babel/helper-plugin-utils": ^7.24.7 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 7a5ca629d8ca1e1ee78705a78e58c12920d07ed8006d7e7232b31296a384ff5e41d7b649bde5561196041037bbb9f9715be1d1c20975df87ca204f34ad15b965 + languageName: node + linkType: hard + "@babel/plugin-syntax-logical-assignment-operators@npm:^7.10.4, @babel/plugin-syntax-logical-assignment-operators@npm:^7.8.3": version: 7.10.4 resolution: "@babel/plugin-syntax-logical-assignment-operators@npm:7.10.4" @@ -2886,6 +3019,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-syntax-typescript@npm:^7.24.7": + version: 7.25.4 + resolution: "@babel/plugin-syntax-typescript@npm:7.25.4" + dependencies: + "@babel/helper-plugin-utils": ^7.24.8 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 9b89b8930cd5983f64251d75c9fcdc17a8dc73837d6de12220ff972888ecff4054a6467cf0c423cad242aa96c0f0564a39a0823073728cc02239b80d13f02230 + languageName: node + linkType: hard + "@babel/plugin-syntax-unicode-sets-regex@npm:^7.18.6": version: 7.18.6 resolution: "@babel/plugin-syntax-unicode-sets-regex@npm:7.18.6" @@ -3719,6 +3863,20 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-object-rest-spread@npm:^7.12.13, @babel/plugin-transform-object-rest-spread@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-object-rest-spread@npm:7.24.7" + dependencies: + "@babel/helper-compilation-targets": ^7.24.7 + "@babel/helper-plugin-utils": ^7.24.7 + "@babel/plugin-syntax-object-rest-spread": ^7.8.3 + "@babel/plugin-transform-parameters": ^7.24.7 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 169d257b9800c13e1feb4c37fb05dae84f702e58b342bb76e19e82e6692b7b5337c9923ee89e3916a97c0dd04a3375bdeca14f5e126f110bbacbeb46d1886ca2 + languageName: node + linkType: hard + "@babel/plugin-transform-object-rest-spread@npm:^7.22.15": version: 7.22.15 resolution: "@babel/plugin-transform-object-rest-spread@npm:7.22.15" @@ -3734,20 +3892,6 @@ __metadata: languageName: node linkType: hard -"@babel/plugin-transform-object-rest-spread@npm:^7.24.7": - version: 7.24.7 - resolution: "@babel/plugin-transform-object-rest-spread@npm:7.24.7" - dependencies: - "@babel/helper-compilation-targets": ^7.24.7 - "@babel/helper-plugin-utils": ^7.24.7 - "@babel/plugin-syntax-object-rest-spread": ^7.8.3 - "@babel/plugin-transform-parameters": ^7.24.7 - peerDependencies: - "@babel/core": ^7.0.0-0 - checksum: 169d257b9800c13e1feb4c37fb05dae84f702e58b342bb76e19e82e6692b7b5337c9923ee89e3916a97c0dd04a3375bdeca14f5e126f110bbacbeb46d1886ca2 - languageName: node - linkType: hard - "@babel/plugin-transform-object-super@npm:^7.0.0, @babel/plugin-transform-object-super@npm:^7.22.5": version: 7.22.5 resolution: "@babel/plugin-transform-object-super@npm:7.22.5" @@ -3962,6 +4106,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-react-display-name@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-react-display-name@npm:7.24.7" + dependencies: + "@babel/helper-plugin-utils": ^7.24.7 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: a05bf83bf5e7b31f7a3b56da1bf8e2eeec76ef52ae44435ceff66363a1717fcda45b7b4b931a2c115982175f481fc3f2d0fab23f0a43c44e6d983afc396858f0 + languageName: node + linkType: hard + "@babel/plugin-transform-react-jsx-development@npm:^7.22.5": version: 7.22.5 resolution: "@babel/plugin-transform-react-jsx-development@npm:7.22.5" @@ -3973,6 +4128,17 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-react-jsx-development@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-react-jsx-development@npm:7.24.7" + dependencies: + "@babel/plugin-transform-react-jsx": ^7.24.7 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 653d32ea5accb12d016e324ec5a584b60a8f39e60c6a5101194b73553fdefbfa3c3f06ec2410216ec2033fddae181a2f146a1d6ed59f075c488fc4570cad2e7b + languageName: node + linkType: hard + "@babel/plugin-transform-react-jsx-self@npm:^7.0.0": version: 7.16.0 resolution: "@babel/plugin-transform-react-jsx-self@npm:7.16.0" @@ -4025,6 +4191,21 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-react-jsx@npm:^7.24.7": + version: 7.25.2 + resolution: "@babel/plugin-transform-react-jsx@npm:7.25.2" + dependencies: + "@babel/helper-annotate-as-pure": ^7.24.7 + "@babel/helper-module-imports": ^7.24.7 + "@babel/helper-plugin-utils": ^7.24.8 + "@babel/plugin-syntax-jsx": ^7.24.7 + "@babel/types": ^7.25.2 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 44fbde046385916de19a88d77fed9121c6cc6e25b9cdc38a43d8e514a9b18cf391ed3de25e7d6a8996d3fe4c298e395edf856ee20efffaab3b70f8ce225fffa4 + languageName: node + linkType: hard + "@babel/plugin-transform-react-pure-annotations@npm:^7.22.5": version: 7.22.5 resolution: "@babel/plugin-transform-react-pure-annotations@npm:7.22.5" @@ -4037,6 +4218,18 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-react-pure-annotations@npm:^7.24.7": + version: 7.24.7 + resolution: "@babel/plugin-transform-react-pure-annotations@npm:7.24.7" + dependencies: + "@babel/helper-annotate-as-pure": ^7.24.7 + "@babel/helper-plugin-utils": ^7.24.7 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: d859ada3cbeb829fa3d9978a29b2d36657fcc9dcc1e4c3c3af84ec5a044a8f8db26ada406baa309e5d4d512aca53d07c520d991b891ff943bec7d8f01aae0419 + languageName: node + linkType: hard + "@babel/plugin-transform-regenerator@npm:^7.22.10": version: 7.22.10 resolution: "@babel/plugin-transform-regenerator@npm:7.22.10" @@ -4254,6 +4447,21 @@ __metadata: languageName: node linkType: hard +"@babel/plugin-transform-typescript@npm:^7.24.7": + version: 7.25.2 + resolution: "@babel/plugin-transform-typescript@npm:7.25.2" + dependencies: + "@babel/helper-annotate-as-pure": ^7.24.7 + "@babel/helper-create-class-features-plugin": ^7.25.0 + "@babel/helper-plugin-utils": ^7.24.8 + "@babel/helper-skip-transparent-expression-wrappers": ^7.24.7 + "@babel/plugin-syntax-typescript": ^7.24.7 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: b0267128d93560a4350919f7230a3b497e20fb8611d9f04bb3560d6b38877305ccad4c40903160263361c6930a84dbcb5b21b8ea923531bda51f67bffdc2dd0b + languageName: node + linkType: hard + "@babel/plugin-transform-unicode-escapes@npm:^7.22.10": version: 7.22.10 resolution: "@babel/plugin-transform-unicode-escapes@npm:7.22.10" @@ -4571,6 +4779,22 @@ __metadata: languageName: node linkType: hard +"@babel/preset-react@npm:^7.22.15": + version: 7.24.7 + resolution: "@babel/preset-react@npm:7.24.7" + dependencies: + "@babel/helper-plugin-utils": ^7.24.7 + "@babel/helper-validator-option": ^7.24.7 + "@babel/plugin-transform-react-display-name": ^7.24.7 + "@babel/plugin-transform-react-jsx": ^7.24.7 + "@babel/plugin-transform-react-jsx-development": ^7.24.7 + "@babel/plugin-transform-react-pure-annotations": ^7.24.7 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 76d0365b6bca808be65c4ccb3f3384c0792084add15eb537f16b3e44184216b82fa37f945339b732ceee6f06e09ba1f39f75c45e69b9811ddcc479f05555ea9c + languageName: node + linkType: hard + "@babel/preset-typescript@npm:^7.13.0": version: 7.18.6 resolution: "@babel/preset-typescript@npm:7.18.6" @@ -4599,6 +4823,21 @@ __metadata: languageName: node linkType: hard +"@babel/preset-typescript@npm:^7.23.0": + version: 7.24.7 + resolution: "@babel/preset-typescript@npm:7.24.7" + dependencies: + "@babel/helper-plugin-utils": ^7.24.7 + "@babel/helper-validator-option": ^7.24.7 + "@babel/plugin-syntax-jsx": ^7.24.7 + "@babel/plugin-transform-modules-commonjs": ^7.24.7 + "@babel/plugin-transform-typescript": ^7.24.7 + peerDependencies: + "@babel/core": ^7.0.0-0 + checksum: 12929b24757f3bd6548103475f86478eda4c872bc7cefd920b29591eee8f4a4f350561d888e133d632d0c9402b8615fdcec9138e5127a6567dcb22f804ff207f + languageName: node + linkType: hard + "@babel/register@npm:^7.13.16": version: 7.18.9 resolution: "@babel/register@npm:7.18.9" @@ -4658,6 +4897,15 @@ __metadata: languageName: node linkType: hard +"@babel/runtime@npm:^7.20.0": + version: 7.25.6 + resolution: "@babel/runtime@npm:7.25.6" + dependencies: + regenerator-runtime: ^0.14.0 + checksum: ee1a69d3ac7802803f5ee6a96e652b78b8addc28c6a38c725a4ad7d61a059d9e6cb9f6550ed2f63cce67a1bd82e0b1ef66a1079d895be6bfb536a5cfbd9ccc32 + languageName: node + linkType: hard + "@babel/template@npm:^7.0.0, @babel/template@npm:^7.16.0, @babel/template@npm:^7.22.5, @babel/template@npm:^7.3.3": version: 7.22.5 resolution: "@babel/template@npm:7.22.5" @@ -4691,6 +4939,17 @@ __metadata: languageName: node linkType: hard +"@babel/template@npm:^7.25.0": + version: 7.25.0 + resolution: "@babel/template@npm:7.25.0" + dependencies: + "@babel/code-frame": ^7.24.7 + "@babel/parser": ^7.25.0 + "@babel/types": ^7.25.0 + checksum: 3f2db568718756d0daf2a16927b78f00c425046b654cd30b450006f2e84bdccaf0cbe6dc04994aa1f5f6a4398da2f11f3640a4d3ee31722e43539c4c919c817b + languageName: node + linkType: hard + "@babel/traverse@npm:^7.12.9, @babel/traverse@npm:^7.18.8, @babel/traverse@npm:^7.23.2": version: 7.23.2 resolution: "@babel/traverse@npm:7.23.2" @@ -4745,6 +5004,21 @@ __metadata: languageName: node linkType: hard +"@babel/traverse@npm:^7.24.8, @babel/traverse@npm:^7.25.0, @babel/traverse@npm:^7.25.4": + version: 7.25.6 + resolution: "@babel/traverse@npm:7.25.6" + dependencies: + "@babel/code-frame": ^7.24.7 + "@babel/generator": ^7.25.6 + "@babel/parser": ^7.25.6 + "@babel/template": ^7.25.0 + "@babel/types": ^7.25.6 + debug: ^4.3.1 + globals: ^11.1.0 + checksum: 11ee47269aa4356f2d6633a05b9af73405b5ed72c09378daf644289b686ef852035a6ac9aa410f601991993c6bbf72006795b5478283b78eb1ca77874ada7737 + languageName: node + linkType: hard + "@babel/types@npm:^7.0.0, @babel/types@npm:^7.16.0, @babel/types@npm:^7.19.0, @babel/types@npm:^7.20.0, @babel/types@npm:^7.22.5, @babel/types@npm:^7.3.0, @babel/types@npm:^7.3.3, @babel/types@npm:^7.4.4, @babel/types@npm:^7.8.3": version: 7.22.5 resolution: "@babel/types@npm:7.22.5" @@ -4778,6 +5052,17 @@ __metadata: languageName: node linkType: hard +"@babel/types@npm:^7.24.8, @babel/types@npm:^7.25.0, @babel/types@npm:^7.25.2, @babel/types@npm:^7.25.6": + version: 7.25.6 + resolution: "@babel/types@npm:7.25.6" + dependencies: + "@babel/helper-string-parser": ^7.24.8 + "@babel/helper-validator-identifier": ^7.24.7 + to-fast-properties: ^2.0.0 + checksum: 9b2f84ff3f874ad05b0b9bf06862c56f478b65781801f82296b4cc01bee39e79c20a7c0a06959fed0ee582c8267e1cb21638318655c5e070b0287242a844d1c9 + languageName: node + linkType: hard + "@bam.tech/react-native-image-resizer@npm:3.0.10": version: 3.0.10 resolution: "@bam.tech/react-native-image-resizer@npm:3.0.10" @@ -6592,6 +6877,432 @@ __metadata: languageName: node linkType: hard +"@expo/bunyan@npm:^4.0.0": + version: 4.0.1 + resolution: "@expo/bunyan@npm:4.0.1" + dependencies: + uuid: ^8.0.0 + checksum: 7a503cf202ef26bd151ef31be63fdac113a27edd1e5703aee96326c3b7bea349e09e706a18854c251b313814a05673d5041eaea4c018667d9afa2c583d821af7 + languageName: node + linkType: hard + +"@expo/cli@npm:0.18.9": + version: 0.18.9 + resolution: "@expo/cli@npm:0.18.9" + dependencies: + "@babel/runtime": ^7.20.0 + "@expo/code-signing-certificates": 0.0.5 + "@expo/config": ~9.0.0-beta.0 + "@expo/config-plugins": ~8.0.0-beta.0 + "@expo/devcert": ^1.0.0 + "@expo/env": ~0.3.0 + "@expo/image-utils": ^0.5.0 + "@expo/json-file": ^8.3.0 + "@expo/metro-config": ~0.18.0 + "@expo/osascript": ^2.0.31 + "@expo/package-manager": ^1.5.0 + "@expo/plist": ^0.1.0 + "@expo/prebuild-config": 7.0.3 + "@expo/rudder-sdk-node": 1.1.1 + "@expo/spawn-async": ^1.7.2 + "@expo/xcpretty": ^4.3.0 + "@react-native/dev-middleware": ~0.74.75 + "@urql/core": 2.3.6 + "@urql/exchange-retry": 0.3.0 + accepts: ^1.3.8 + arg: 5.0.2 + better-opn: ~3.0.2 + bplist-parser: ^0.3.1 + cacache: ^15.3.0 + chalk: ^4.0.0 + ci-info: ^3.3.0 + connect: ^3.7.0 + debug: ^4.3.4 + env-editor: ^0.4.1 + fast-glob: ^3.3.2 + find-yarn-workspace-root: ~2.0.0 + form-data: ^3.0.1 + freeport-async: 2.0.0 + fs-extra: ~8.1.0 + getenv: ^1.0.0 + glob: ^7.1.7 + graphql: 15.8.0 + graphql-tag: ^2.10.1 + https-proxy-agent: ^5.0.1 + internal-ip: 4.3.0 + is-docker: ^2.0.0 + is-wsl: ^2.1.1 + js-yaml: ^3.13.1 + json-schema-deref-sync: ^0.13.0 + lodash.debounce: ^4.0.8 + md5hex: ^1.0.0 + minimatch: ^3.0.4 + node-fetch: ^2.6.7 + node-forge: ^1.3.1 + npm-package-arg: ^7.0.0 + open: ^8.3.0 + ora: 3.4.0 + picomatch: ^3.0.1 + pretty-bytes: 5.6.0 + progress: 2.0.3 + prompts: ^2.3.2 + qrcode-terminal: 0.11.0 + require-from-string: ^2.0.2 + requireg: ^0.2.2 + resolve: ^1.22.2 + resolve-from: ^5.0.0 + resolve.exports: ^2.0.2 + semver: ^7.6.0 + send: ^0.18.0 + slugify: ^1.3.4 + source-map-support: ~0.5.21 + stacktrace-parser: ^0.1.10 + structured-headers: ^0.4.1 + tar: ^6.0.5 + temp-dir: ^2.0.0 + tempy: ^0.7.1 + terminal-link: ^2.1.1 + text-table: ^0.2.0 + url-join: 4.0.0 + wrap-ansi: ^7.0.0 + ws: ^8.12.1 + bin: + expo-internal: build/bin/cli + checksum: b69dcb343b220cb28a57aa73df50e134ca010929afd5d99e89ecd8abbdbc260b542a6e03e4f4668a231967019181d674a3f3b61be79c0c771fbe96cefbe76d67 + languageName: node + linkType: hard + +"@expo/code-signing-certificates@npm:0.0.5": + version: 0.0.5 + resolution: "@expo/code-signing-certificates@npm:0.0.5" + dependencies: + node-forge: ^1.2.1 + nullthrows: ^1.1.1 + checksum: 4a1c73a6bc74443284a45db698ede874c7d47f6ed58cf44adaa255139490c8754d81dc1556247f3782cdc5034382fb72f23b0033daa2117facad4eb13b841e37 + languageName: node + linkType: hard + +"@expo/config-plugins@npm:8.0.4": + version: 8.0.4 + resolution: "@expo/config-plugins@npm:8.0.4" + dependencies: + "@expo/config-types": ^51.0.0-unreleased + "@expo/json-file": ~8.3.0 + "@expo/plist": ^0.1.0 + "@expo/sdk-runtime-versions": ^1.0.0 + chalk: ^4.1.2 + debug: ^4.3.1 + find-up: ~5.0.0 + getenv: ^1.0.0 + glob: 7.1.6 + resolve-from: ^5.0.0 + semver: ^7.5.4 + slash: ^3.0.0 + slugify: ^1.6.6 + xcode: ^3.0.1 + xml2js: 0.6.0 + checksum: 974119aa57cdf8dd197bfbc04a2c798433d4915cd5fb8ca19be0ebfaa7f773221c3ba8b60fe0b093343c8920993d0f2a65d01fafd82ca2055f6b68236908e232 + languageName: node + linkType: hard + +"@expo/config-plugins@npm:~8.0.0-beta.0, @expo/config-plugins@npm:~8.0.8": + version: 8.0.10 + resolution: "@expo/config-plugins@npm:8.0.10" + dependencies: + "@expo/config-types": ^51.0.3 + "@expo/json-file": ~8.3.0 + "@expo/plist": ^0.1.0 + "@expo/sdk-runtime-versions": ^1.0.0 + chalk: ^4.1.2 + debug: ^4.3.1 + find-up: ~5.0.0 + getenv: ^1.0.0 + glob: 7.1.6 + resolve-from: ^5.0.0 + semver: ^7.5.4 + slash: ^3.0.0 + slugify: ^1.6.6 + xcode: ^3.0.1 + xml2js: 0.6.0 + checksum: 16dd818c6f52e5d0298e28a37b6fa3a6c3c5dd070c851642760f62a062058192a4b91f73e57cf9f5e1a3be4ffe9c48c46a965366756c108531b915f214dd2182 + languageName: node + linkType: hard + +"@expo/config-types@npm:^51.0.0-unreleased, @expo/config-types@npm:^51.0.3": + version: 51.0.3 + resolution: "@expo/config-types@npm:51.0.3" + checksum: c46def814a5e0d6c8358b9767a89f51239f4f1c3b4a5305ffcfa1a86e4360ac40de54a65f7c6e787be7656e4144c99a050e98b600a1edd3d6e8e20c83d8e107b + languageName: node + linkType: hard + +"@expo/config@npm:9.0.1": + version: 9.0.1 + resolution: "@expo/config@npm:9.0.1" + dependencies: + "@babel/code-frame": ~7.10.4 + "@expo/config-plugins": ~8.0.0-beta.0 + "@expo/config-types": ^51.0.0-unreleased + "@expo/json-file": ^8.3.0 + getenv: ^1.0.0 + glob: 7.1.6 + require-from-string: ^2.0.2 + resolve-from: ^5.0.0 + semver: ^7.6.0 + slugify: ^1.3.4 + sucrase: 3.34.0 + checksum: 2afb247657cdab069e55326decc04892b7d9ff7bf198c0bbaa1eb5a6a9b664c5758bcd22f5f6206ef38682b8b66b8855233d08dc101f9c8da712782a903719db + languageName: node + linkType: hard + +"@expo/config@npm:~9.0.0, @expo/config@npm:~9.0.0-beta.0": + version: 9.0.4 + resolution: "@expo/config@npm:9.0.4" + dependencies: + "@babel/code-frame": ~7.10.4 + "@expo/config-plugins": ~8.0.8 + "@expo/config-types": ^51.0.3 + "@expo/json-file": ^8.3.0 + getenv: ^1.0.0 + glob: 7.1.6 + require-from-string: ^2.0.2 + resolve-from: ^5.0.0 + semver: ^7.6.0 + slugify: ^1.3.4 + sucrase: 3.34.0 + checksum: a00b2690a1abbfd83f419c436dcff8590d1e8c8c0a598339ae30da57aedde49564e5bd5f71edf4d634ebe079c4008a64eb9850ee4cf69592a7506c71a36f3132 + languageName: node + linkType: hard + +"@expo/devcert@npm:^1.0.0": + version: 1.1.4 + resolution: "@expo/devcert@npm:1.1.4" + dependencies: + application-config-path: ^0.1.0 + command-exists: ^1.2.4 + debug: ^3.1.0 + eol: ^0.9.1 + get-port: ^3.2.0 + glob: ^10.4.2 + lodash: ^4.17.21 + mkdirp: ^0.5.1 + password-prompt: ^1.0.4 + sudo-prompt: ^8.2.0 + tmp: ^0.0.33 + tslib: ^2.4.0 + checksum: a6bb5ba18d1d4fe5ebfa096f8d332f14bbe8bb942bc3650debf89fb68b5637bd5b7b22f9b28d5971965436bf83d442e843ac7e0e1e7408cce6e575b55c830b6d + languageName: node + linkType: hard + +"@expo/env@npm:~0.3.0": + version: 0.3.0 + resolution: "@expo/env@npm:0.3.0" + dependencies: + chalk: ^4.0.0 + debug: ^4.3.4 + dotenv: ~16.4.5 + dotenv-expand: ~11.0.6 + getenv: ^1.0.0 + checksum: 4199b7a3e186de81a5ddae4966d1a60694c1f0b3b24c190b9e5a584d47fb98254c8597ed66808511c09b3ee2774284fc72e03fc69ad9ee79005a7cd470ef6787 + languageName: node + linkType: hard + +"@expo/image-utils@npm:^0.5.0": + version: 0.5.1 + resolution: "@expo/image-utils@npm:0.5.1" + dependencies: + "@expo/spawn-async": ^1.7.2 + chalk: ^4.0.0 + fs-extra: 9.0.0 + getenv: ^1.0.0 + jimp-compact: 0.16.1 + node-fetch: ^2.6.0 + parse-png: ^2.1.0 + resolve-from: ^5.0.0 + semver: ^7.6.0 + tempy: 0.3.0 + checksum: ce369f863635391ce752832bba081b90130140de931166b9d2e26384087a8d04a3b401eacdfba874b09da1d18e90526328d82ebdc4798925c7fe0593dc08e4e6 + languageName: node + linkType: hard + +"@expo/json-file@npm:^8.3.0, @expo/json-file@npm:~8.3.0": + version: 8.3.3 + resolution: "@expo/json-file@npm:8.3.3" + dependencies: + "@babel/code-frame": ~7.10.4 + json5: ^2.2.2 + write-file-atomic: ^2.3.0 + checksum: 49fcb3581ac21c1c223459f32e9e931149b56a7587318f666303a62e719e3d0f122ff56a60d47ee31fac937c297a66400a00fcee63a17bebbf4b8cd30c5138c1 + languageName: node + linkType: hard + +"@expo/metro-config@npm:0.18.3": + version: 0.18.3 + resolution: "@expo/metro-config@npm:0.18.3" + dependencies: + "@babel/core": ^7.20.0 + "@babel/generator": ^7.20.5 + "@babel/parser": ^7.20.0 + "@babel/types": ^7.20.0 + "@expo/config": ~9.0.0-beta.0 + "@expo/env": ~0.3.0 + "@expo/json-file": ~8.3.0 + "@expo/spawn-async": ^1.7.2 + chalk: ^4.1.0 + debug: ^4.3.2 + find-yarn-workspace-root: ~2.0.0 + fs-extra: ^9.1.0 + getenv: ^1.0.0 + glob: ^7.2.3 + jsc-safe-url: ^0.2.4 + lightningcss: ~1.19.0 + postcss: ~8.4.32 + resolve-from: ^5.0.0 + checksum: da2ad5e6c3da9d96c1c2aac71a9d4e45056401e6c8fe0942dfa9dd5717cc753ba923789149abb9836bb1e8fd44ef841f4b9bf24d77b4b7d21b2819a01a4cc705 + languageName: node + linkType: hard + +"@expo/metro-config@npm:~0.18.0": + version: 0.18.11 + resolution: "@expo/metro-config@npm:0.18.11" + dependencies: + "@babel/core": ^7.20.0 + "@babel/generator": ^7.20.5 + "@babel/parser": ^7.20.0 + "@babel/types": ^7.20.0 + "@expo/config": ~9.0.0-beta.0 + "@expo/env": ~0.3.0 + "@expo/json-file": ~8.3.0 + "@expo/spawn-async": ^1.7.2 + chalk: ^4.1.0 + debug: ^4.3.2 + find-yarn-workspace-root: ~2.0.0 + fs-extra: ^9.1.0 + getenv: ^1.0.0 + glob: ^7.2.3 + jsc-safe-url: ^0.2.4 + lightningcss: ~1.19.0 + postcss: ~8.4.32 + resolve-from: ^5.0.0 + checksum: 4de79b97c6d818a487c6eaa83a55d3d9d1a1b28262507d74ad407fa22c2c32658d2cd2fa38babf82c32cf58239aff2c5d85e130609eaa34ed29a8e20a295cd7f + languageName: node + linkType: hard + +"@expo/osascript@npm:^2.0.31": + version: 2.1.3 + resolution: "@expo/osascript@npm:2.1.3" + dependencies: + "@expo/spawn-async": ^1.7.2 + exec-async: ^2.2.0 + checksum: 6cdc69021d28e68e1b33004521b553040aa659cafd45d67b617644a5ae077a1d6b0884bc7ce7c06dd1c6225a34b221d0671da0febe3687e28d70ef3b99dfaf5a + languageName: node + linkType: hard + +"@expo/package-manager@npm:^1.5.0": + version: 1.5.2 + resolution: "@expo/package-manager@npm:1.5.2" + dependencies: + "@expo/json-file": ^8.3.0 + "@expo/spawn-async": ^1.7.2 + ansi-regex: ^5.0.0 + chalk: ^4.0.0 + find-up: ^5.0.0 + find-yarn-workspace-root: ~2.0.0 + js-yaml: ^3.13.1 + micromatch: ^4.0.2 + npm-package-arg: ^7.0.0 + ora: ^3.4.0 + split: ^1.0.1 + sudo-prompt: 9.1.1 + checksum: 825e727106592bac98c82c69bf316b8b1ee20829f7f3e909cf374861b771cfa77d38b029f8b078341b2a9333004b4b90392f6f1a6a366c45ecf3f397798fb2a4 + languageName: node + linkType: hard + +"@expo/plist@npm:^0.1.0": + version: 0.1.3 + resolution: "@expo/plist@npm:0.1.3" + dependencies: + "@xmldom/xmldom": ~0.7.7 + base64-js: ^1.2.3 + xmlbuilder: ^14.0.0 + checksum: 8abe78bed4d1849f2cddddd1a238c6fe5c2549a9dee40158224ff70112f31503db3f17a522b6e21f16eea66b5f4b46cc49d22f2b369067d00a88ef6d301a50cd + languageName: node + linkType: hard + +"@expo/prebuild-config@npm:7.0.3": + version: 7.0.3 + resolution: "@expo/prebuild-config@npm:7.0.3" + dependencies: + "@expo/config": ~9.0.0-beta.0 + "@expo/config-plugins": ~8.0.0-beta.0 + "@expo/config-types": ^51.0.0-unreleased + "@expo/image-utils": ^0.5.0 + "@expo/json-file": ^8.3.0 + "@react-native/normalize-colors": ~0.74.83 + debug: ^4.3.1 + fs-extra: ^9.0.0 + resolve-from: ^5.0.0 + semver: ^7.6.0 + xml2js: 0.6.0 + peerDependencies: + expo-modules-autolinking: ">=0.8.1" + checksum: f8945ee9624cefac014f830ee1da77273d8de595a08eef544e8b5c347d2365a4fb8bb3c24f2ae1e9fee378554e947e940bb88621a8a29cc388549223d47e7ab2 + languageName: node + linkType: hard + +"@expo/rudder-sdk-node@npm:1.1.1": + version: 1.1.1 + resolution: "@expo/rudder-sdk-node@npm:1.1.1" + dependencies: + "@expo/bunyan": ^4.0.0 + "@segment/loosely-validate-event": ^2.0.0 + fetch-retry: ^4.1.1 + md5: ^2.2.1 + node-fetch: ^2.6.1 + remove-trailing-slash: ^0.1.0 + uuid: ^8.3.2 + checksum: 5ce50c1a82f899b135600cb29cddf3fab601938700c8203f16a1394d2ffbf9e2cdd246b92ff635f8415121072d99a7b4a370f715b78f6680594b5a630e8d78c6 + languageName: node + linkType: hard + +"@expo/sdk-runtime-versions@npm:^1.0.0": + version: 1.0.0 + resolution: "@expo/sdk-runtime-versions@npm:1.0.0" + checksum: 0942d5a356f590e8dc795761456cc48b3e2d6a38ad2a02d6774efcdc5a70424e05623b4e3e5d2fec0cdc30f40dde05c14391c781607eed3971bf8676518bfd9d + languageName: node + linkType: hard + +"@expo/spawn-async@npm:^1.7.2": + version: 1.7.2 + resolution: "@expo/spawn-async@npm:1.7.2" + dependencies: + cross-spawn: ^7.0.3 + checksum: d99e5ff6d303ec9b0105f97c4fa6c65bca526c7d4d0987997c35cc745fa8224adf009942d01808192ebb9fa30619a53316641958631e85cf17b773d9eeda2597 + languageName: node + linkType: hard + +"@expo/vector-icons@npm:^14.0.0": + version: 14.0.4 + resolution: "@expo/vector-icons@npm:14.0.4" + dependencies: + prop-types: ^15.8.1 + checksum: 31bd5d4e4e2f0b0620b7e8b55b0c5691875cf57c5737bd0ccef0017d0e7abee66352f3d66a58997b719bd0720cccf8f5119503c69fe1a30398747306ebefeb6e + languageName: node + linkType: hard + +"@expo/xcpretty@npm:^4.3.0": + version: 4.3.1 + resolution: "@expo/xcpretty@npm:4.3.1" + dependencies: + "@babel/code-frame": 7.10.4 + chalk: ^4.1.0 + find-up: ^5.0.0 + js-yaml: ^4.1.0 + bin: + excpretty: build/cli.js + checksum: dbf3e2d7f501fbbd11baf0c0aa9057c8a87efe0993a82caafd30c66977ac430d03fa84e27b529e3d0b04fee8c6beec1bd135f0522229dca91220561b76309854 + languageName: node + linkType: hard + "@floating-ui/core@npm:^1.0.1": version: 1.0.1 resolution: "@floating-ui/core@npm:1.0.1" @@ -6762,6 +7473,15 @@ __metadata: languageName: node linkType: hard +"@graphql-typed-document-node/core@npm:^3.1.0": + version: 3.2.0 + resolution: "@graphql-typed-document-node/core@npm:3.2.0" + peerDependencies: + graphql: ^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0 + checksum: fa44443accd28c8cf4cb96aaaf39d144a22e8b091b13366843f4e97d19c7bfeaf609ce3c7603a4aeffe385081eaf8ea245d078633a7324c11c5ec4b2011bb76d + languageName: node + linkType: hard + "@hapi/hoek@npm:^9.0.0": version: 9.2.1 resolution: "@hapi/hoek@npm:9.2.1" @@ -7100,7 +7820,7 @@ __metadata: languageName: node linkType: hard -"@jest/create-cache-key-function@npm:^29.2.1, @jest/create-cache-key-function@npm:^29.6.3": +"@jest/create-cache-key-function@npm:^29.6.3": version: 29.7.0 resolution: "@jest/create-cache-key-function@npm:29.7.0" dependencies: @@ -7398,18 +8118,18 @@ __metadata: "@electron/remote": 2.1.2 "@fortawesome/fontawesome-free": 5.15.4 "@joeattardi/emoji-button": 4.6.4 - "@joplin/default-plugins": ~3.1 - "@joplin/editor": ~3.1 - "@joplin/lib": ~3.1 - "@joplin/renderer": ~3.1 - "@joplin/tools": ~3.1 - "@joplin/utils": ~3.1 + "@joplin/default-plugins": ~3.2 + "@joplin/editor": ~3.2 + "@joplin/lib": ~3.2 + "@joplin/renderer": ~3.2 + "@joplin/tools": ~3.2 + "@joplin/utils": ~3.2 "@playwright/test": 1.45.3 "@sentry/electron": 4.24.0 "@testing-library/react-hooks": 8.0.1 "@types/jest": 29.5.12 "@types/mustache": 4.2.5 - "@types/node": 18.19.42 + "@types/node": 18.19.43 "@types/react": 18.3.3 "@types/react-dom": 18.3.0 "@types/react-redux": 7.1.33 @@ -7481,13 +8201,13 @@ __metadata: "@babel/preset-env": 7.24.7 "@babel/runtime": 7.24.7 "@bam.tech/react-native-image-resizer": 3.0.10 - "@joplin/editor": ~3.1 - "@joplin/lib": ~3.1 - "@joplin/react-native-alarm-notification": ~3.1 - "@joplin/react-native-saf-x": ~3.1 - "@joplin/renderer": ~3.1 - "@joplin/tools": ~3.1 - "@joplin/utils": ~3.1 + "@joplin/editor": ~3.2 + "@joplin/lib": ~3.2 + "@joplin/react-native-alarm-notification": ~3.2 + "@joplin/react-native-saf-x": ~3.2 + "@joplin/renderer": ~3.2 + "@joplin/tools": ~3.2 + "@joplin/utils": ~3.2 "@js-draw/material-icons": 1.20.3 "@react-native-clipboard/clipboard": 1.14.1 "@react-native-community/datetimepicker": 8.1.1 @@ -7518,6 +8238,8 @@ __metadata: crypto-browserify: 3.12.0 deprecated-react-native-prop-types: 5.0.0 events: 3.3.0 + expo: 51.0.0 + expo-camera: 15.0.16 fs-extra: 11.2.0 gulp: 4.0.2 jest: 29.7.0 @@ -7534,7 +8256,6 @@ __metadata: react: 18.3.1 react-dom: 18.3.1 react-native: 0.74.1 - react-native-camera: 4.2.1 react-native-device-info: 10.14.0 react-native-dialogbox: 0.6.10 react-native-document-picker: 9.3.0 @@ -7550,7 +8271,7 @@ __metadata: react-native-paper: 5.12.5 react-native-popup-menu: 0.16.1 react-native-quick-actions: 0.3.13 - react-native-quick-crypto: 0.7.2 + react-native-quick-crypto: 0.7.5 react-native-rsa-native: 2.0.5 react-native-safe-area-context: 4.10.8 react-native-securerandom: 1.0.1 @@ -7587,11 +8308,11 @@ __metadata: languageName: unknown linkType: soft -"@joplin/default-plugins@workspace:packages/default-plugins, @joplin/default-plugins@~3.1": +"@joplin/default-plugins@workspace:packages/default-plugins, @joplin/default-plugins@~3.2": version: 0.0.0-use.local resolution: "@joplin/default-plugins@workspace:packages/default-plugins" dependencies: - "@joplin/utils": ~3.1 + "@joplin/utils": ~3.2 "@types/yargs": 17.0.32 fs-extra: 11.2.0 ts-node: 10.9.2 @@ -7623,7 +8344,7 @@ __metadata: languageName: unknown linkType: soft -"@joplin/editor@workspace:packages/editor, @joplin/editor@~3.1": +"@joplin/editor@workspace:packages/editor, @joplin/editor@~3.2": version: 0.0.0-use.local resolution: "@joplin/editor@workspace:packages/editor" dependencies: @@ -7638,7 +8359,7 @@ __metadata: "@codemirror/search": 6.5.6 "@codemirror/state": 6.4.1 "@codemirror/view": 6.34.1 - "@joplin/lib": ~3.1 + "@joplin/lib": ~3.2 "@lezer/common": 1.2.3 "@lezer/highlight": 1.2.1 "@lezer/markdown": 1.3.1 @@ -7660,7 +8381,7 @@ __metadata: resolution: "@joplin/fork-htmlparser2@workspace:packages/fork-htmlparser2" dependencies: "@types/jest": 29.5.12 - "@types/node": 18.19.42 + "@types/node": 18.19.43 "@typescript-eslint/eslint-plugin": 6.21.0 "@typescript-eslint/parser": 6.21.0 coveralls: 3.1.1 @@ -7695,7 +8416,7 @@ __metadata: languageName: unknown linkType: soft -"@joplin/htmlpack@workspace:packages/htmlpack, @joplin/htmlpack@~3.1": +"@joplin/htmlpack@workspace:packages/htmlpack, @joplin/htmlpack@~3.2": version: 0.0.0-use.local resolution: "@joplin/htmlpack@workspace:packages/htmlpack" dependencies: @@ -7708,7 +8429,7 @@ __metadata: languageName: unknown linkType: soft -"@joplin/lib@workspace:packages/lib, @joplin/lib@~3.1": +"@joplin/lib@workspace:packages/lib, @joplin/lib@~3.2": version: 0.0.0-use.local resolution: "@joplin/lib@workspace:packages/lib" dependencies: @@ -7718,11 +8439,11 @@ __metadata: "@joplin/fork-htmlparser2": ^4.1.52 "@joplin/fork-sax": ^1.2.56 "@joplin/fork-uslug": ^1.0.17 - "@joplin/htmlpack": ~3.1 - "@joplin/renderer": ~3.1 + "@joplin/htmlpack": ~3.2 + "@joplin/renderer": ~3.2 "@joplin/turndown": ^4.0.74 "@joplin/turndown-plugin-gfm": ^1.0.56 - "@joplin/utils": ~3.1 + "@joplin/utils": ~3.2 "@testing-library/react-hooks": 8.0.1 "@types/fs-extra": 11.0.4 "@types/jest": 29.5.12 @@ -7730,7 +8451,7 @@ __metadata: "@types/markdown-it": 13.0.9 "@types/mustache": 4.2.5 "@types/nanoid": 3.0.0 - "@types/node": 18.19.42 + "@types/node": 18.19.43 "@types/node-rsa": 1.1.4 "@types/react": 18.3.3 "@types/uuid": 9.0.7 @@ -7803,7 +8524,7 @@ __metadata: "@fortawesome/fontawesome-svg-core": 6.1.2 "@fortawesome/free-solid-svg-icons": 6.1.2 "@fortawesome/react-fontawesome": 0.2.2 - "@joplin/lib": ~3.1 + "@joplin/lib": ~3.2 "@types/jest": 29.5.12 "@types/pdfjs-dist": 2.10.378 "@types/react": 18.3.3 @@ -7831,12 +8552,12 @@ __metadata: version: 0.0.0-use.local resolution: "@joplin/plugin-repo-cli@workspace:packages/plugin-repo-cli" dependencies: - "@joplin/lib": ~3.1 - "@joplin/tools": ~3.1 - "@joplin/utils": ~3.1 + "@joplin/lib": ~3.2 + "@joplin/tools": ~3.2 + "@joplin/utils": ~3.2 "@types/fs-extra": 11.0.4 "@types/jest": 29.5.12 - "@types/node": 18.19.42 + "@types/node": 18.19.43 fs-extra: 11.2.0 gh-release-assets: 2.0.1 jest: 29.7.0 @@ -7858,7 +8579,7 @@ __metadata: languageName: unknown linkType: soft -"@joplin/react-native-alarm-notification@workspace:packages/react-native-alarm-notification, @joplin/react-native-alarm-notification@~3.1": +"@joplin/react-native-alarm-notification@workspace:packages/react-native-alarm-notification, @joplin/react-native-alarm-notification@~3.2": version: 0.0.0-use.local resolution: "@joplin/react-native-alarm-notification@workspace:packages/react-native-alarm-notification" dependencies: @@ -7867,7 +8588,7 @@ __metadata: languageName: unknown linkType: soft -"@joplin/react-native-saf-x@workspace:packages/react-native-saf-x, @joplin/react-native-saf-x@~3.1": +"@joplin/react-native-saf-x@workspace:packages/react-native-saf-x, @joplin/react-native-saf-x@~3.2": version: 0.0.0-use.local resolution: "@joplin/react-native-saf-x@workspace:packages/react-native-saf-x" dependencies: @@ -7882,16 +8603,16 @@ __metadata: languageName: unknown linkType: soft -"@joplin/renderer@workspace:packages/renderer, @joplin/renderer@~3.1": +"@joplin/renderer@workspace:packages/renderer, @joplin/renderer@~3.2": version: 0.0.0-use.local resolution: "@joplin/renderer@workspace:packages/renderer" dependencies: "@joplin/fork-htmlparser2": ^4.1.52 "@joplin/fork-uslug": ^1.0.17 - "@joplin/utils": ~3.1 + "@joplin/utils": ~3.2 "@types/jest": 29.5.12 "@types/markdown-it": 13.0.9 - "@types/node": 18.19.42 + "@types/node": 18.19.43 font-awesome-filetypes: 2.1.0 fs-extra: 11.2.0 highlight.js: 11.9.0 @@ -7926,10 +8647,10 @@ __metadata: dependencies: "@aws-sdk/client-s3": 3.296.0 "@fortawesome/fontawesome-free": 5.15.4 - "@joplin/lib": ~3.1 - "@joplin/renderer": ~3.1 - "@joplin/tools": ~3.1 - "@joplin/utils": ~3.1 + "@joplin/lib": ~3.2 + "@joplin/renderer": ~3.2 + "@joplin/tools": ~3.2 + "@joplin/utils": ~3.2 "@koa/cors": 3.4.3 "@rmp135/sql-ts": 1.18.1 "@types/bcryptjs": 2.4.6 @@ -7986,22 +8707,22 @@ __metadata: languageName: unknown linkType: soft -"@joplin/tools@workspace:packages/tools, @joplin/tools@~3.1": +"@joplin/tools@workspace:packages/tools, @joplin/tools@~3.2": version: 0.0.0-use.local resolution: "@joplin/tools@workspace:packages/tools" dependencies: "@docusaurus/plugin-sitemap": 2.4.3 "@joplin/fork-htmlparser2": ^4.1.52 - "@joplin/lib": ~3.1 - "@joplin/renderer": ~3.1 - "@joplin/utils": ~3.1 + "@joplin/lib": ~3.2 + "@joplin/renderer": ~3.2 + "@joplin/utils": ~3.2 "@rmp135/sql-ts": 1.18.1 "@types/fs-extra": 11.0.4 "@types/jest": 29.5.12 "@types/js-yaml": 4.0.9 "@types/markdown-it": 13.0.9 "@types/mustache": 4.2.5 - "@types/node": 18.19.42 + "@types/node": 18.19.43 "@types/node-fetch": 2.6.11 "@types/yargs": 17.0.32 compare-versions: 6.1.1 @@ -8080,7 +8801,7 @@ __metadata: languageName: node linkType: hard -"@joplin/utils@workspace:packages/utils, @joplin/utils@~3.1": +"@joplin/utils@workspace:packages/utils, @joplin/utils@~3.2": version: 0.0.0-use.local resolution: "@joplin/utils@workspace:packages/utils" dependencies: @@ -9868,18 +10589,6 @@ __metadata: languageName: node linkType: hard -"@react-native-community/cli-clean@npm:11.4.1": - version: 11.4.1 - resolution: "@react-native-community/cli-clean@npm:11.4.1" - dependencies: - "@react-native-community/cli-tools": 11.4.1 - chalk: ^4.1.2 - execa: ^5.0.0 - prompts: ^2.4.0 - checksum: a4f248fcd7cd0743f44c5c16149aa0acc2cb4eeca7405da7e712d4d398b9597e6ba780ec522490b232ef917ad13dce407e2743da08536e5d30e71b964efc8e42 - languageName: node - linkType: hard - "@react-native-community/cli-clean@npm:13.6.6": version: 13.6.6 resolution: "@react-native-community/cli-clean@npm:13.6.6" @@ -9904,20 +10613,6 @@ __metadata: languageName: node linkType: hard -"@react-native-community/cli-config@npm:11.4.1": - version: 11.4.1 - resolution: "@react-native-community/cli-config@npm:11.4.1" - dependencies: - "@react-native-community/cli-tools": 11.4.1 - chalk: ^4.1.2 - cosmiconfig: ^5.1.0 - deepmerge: ^4.3.0 - glob: ^7.1.3 - joi: ^17.2.1 - checksum: 7061309acb928fdd9018bd0007bf09995a6108a32d0191590ff977193f20601086fb7b3578267f32b2f720350003f978d4fb551fdeb18faa094a3c8099b06dfe - languageName: node - linkType: hard - "@react-native-community/cli-config@npm:13.6.6": version: 13.6.6 resolution: "@react-native-community/cli-config@npm:13.6.6" @@ -9945,15 +10640,6 @@ __metadata: languageName: node linkType: hard -"@react-native-community/cli-debugger-ui@npm:11.4.1": - version: 11.4.1 - resolution: "@react-native-community/cli-debugger-ui@npm:11.4.1" - dependencies: - serve-static: ^1.13.1 - checksum: ac317207cea904f30bdaf614536d0a9a9fdeac4f4abbc2e1c0e2f0e4bdc047c4c1709ca671bc28ecd97ad65d11e1f465a02f403ead57219e4f5610328cc7192f - languageName: node - linkType: hard - "@react-native-community/cli-debugger-ui@npm:13.6.6": version: 13.6.6 resolution: "@react-native-community/cli-debugger-ui@npm:13.6.6" @@ -9972,31 +10658,6 @@ __metadata: languageName: node linkType: hard -"@react-native-community/cli-doctor@npm:11.4.1": - version: 11.4.1 - resolution: "@react-native-community/cli-doctor@npm:11.4.1" - dependencies: - "@react-native-community/cli-config": 11.4.1 - "@react-native-community/cli-platform-android": 11.4.1 - "@react-native-community/cli-platform-ios": 11.4.1 - "@react-native-community/cli-tools": 11.4.1 - chalk: ^4.1.2 - command-exists: ^1.2.8 - envinfo: ^7.7.2 - execa: ^5.0.0 - hermes-profile-transformer: ^0.0.6 - node-stream-zip: ^1.9.1 - ora: ^5.4.1 - prompts: ^2.4.0 - semver: ^7.5.2 - strip-ansi: ^5.2.0 - sudo-prompt: ^9.0.0 - wcwidth: ^1.0.1 - yaml: ^2.2.1 - checksum: c4899162cf716175987fab6de6833b1e21f0ed92dbdecea756b917f766ef04ecead3a36840a262ffec3af3adbb45ac5568c120f2849ce78a3fdc867bfe0cd487 - languageName: node - linkType: hard - "@react-native-community/cli-doctor@npm:13.6.6": version: 13.6.6 resolution: "@react-native-community/cli-doctor@npm:13.6.6" @@ -10046,18 +10707,6 @@ __metadata: languageName: node linkType: hard -"@react-native-community/cli-hermes@npm:11.4.1": - version: 11.4.1 - resolution: "@react-native-community/cli-hermes@npm:11.4.1" - dependencies: - "@react-native-community/cli-platform-android": 11.4.1 - "@react-native-community/cli-tools": 11.4.1 - chalk: ^4.1.2 - hermes-profile-transformer: ^0.0.6 - checksum: 9059ae0329ddfab8836c028d7e7b149bbd63392b6c3a3f3acfbe4222fc7556b5065963b0d70db0370595af27411c8c229aabf9239cd64116825b9208f0cc9f24 - languageName: node - linkType: hard - "@react-native-community/cli-hermes@npm:13.6.6": version: 13.6.6 resolution: "@react-native-community/cli-hermes@npm:13.6.6" @@ -10083,19 +10732,6 @@ __metadata: languageName: node linkType: hard -"@react-native-community/cli-platform-android@npm:11.4.1, @react-native-community/cli-platform-android@npm:^11.4.1": - version: 11.4.1 - resolution: "@react-native-community/cli-platform-android@npm:11.4.1" - dependencies: - "@react-native-community/cli-tools": 11.4.1 - chalk: ^4.1.2 - execa: ^5.0.0 - glob: ^7.1.3 - logkitty: ^0.7.1 - checksum: 4d024275ab8df1ac70bc46e22389732e63ae1df806acff482d1b063a0ed2f201f00bfe7984df22fca1a894a43967da02abb06635254bde72d8441920ae9a6aa9 - languageName: node - linkType: hard - "@react-native-community/cli-platform-android@npm:13.6.6": version: 13.6.6 resolution: "@react-native-community/cli-platform-android@npm:13.6.6" @@ -10139,20 +10775,6 @@ __metadata: languageName: node linkType: hard -"@react-native-community/cli-platform-ios@npm:11.4.1, @react-native-community/cli-platform-ios@npm:^11.4.1": - version: 11.4.1 - resolution: "@react-native-community/cli-platform-ios@npm:11.4.1" - dependencies: - "@react-native-community/cli-tools": 11.4.1 - chalk: ^4.1.2 - execa: ^5.0.0 - fast-xml-parser: ^4.0.12 - glob: ^7.1.3 - ora: ^5.4.1 - checksum: ad3f16221b49bddab144869f6d050cbffecee72624cc7dd1ab5cb31af6c0add459dc7a7f528d138a1c529054b7da53489a8cbe34a07b080ba21706d9bc589167 - languageName: node - linkType: hard - "@react-native-community/cli-platform-ios@npm:13.6.6": version: 13.6.6 resolution: "@react-native-community/cli-platform-ios@npm:13.6.6" @@ -10175,25 +10797,6 @@ __metadata: languageName: node linkType: hard -"@react-native-community/cli-plugin-metro@npm:11.4.1": - version: 11.4.1 - resolution: "@react-native-community/cli-plugin-metro@npm:11.4.1" - dependencies: - "@react-native-community/cli-server-api": 11.4.1 - "@react-native-community/cli-tools": 11.4.1 - chalk: ^4.1.2 - execa: ^5.0.0 - metro: ^0.76.9 - metro-config: ^0.76.9 - metro-core: ^0.76.9 - metro-react-native-babel-transformer: ^0.76.9 - metro-resolver: ^0.76.9 - metro-runtime: ^0.76.9 - readline: ^1.3.0 - checksum: e35ff066bd11cc07c930600237a5ea9c9b6ab1f704a07093c6ee0e2118a7213cfc2b83fbe2fb86dc1a14bf118d3f50fb8f5c2d5e3d962bf9bcdaddc3683f14a9 - languageName: node - linkType: hard - "@react-native-community/cli-plugin-metro@npm:^9.2.1": version: 9.2.1 resolution: "@react-native-community/cli-plugin-metro@npm:9.2.1" @@ -10212,23 +10815,6 @@ __metadata: languageName: node linkType: hard -"@react-native-community/cli-server-api@npm:11.4.1": - version: 11.4.1 - resolution: "@react-native-community/cli-server-api@npm:11.4.1" - dependencies: - "@react-native-community/cli-debugger-ui": 11.4.1 - "@react-native-community/cli-tools": 11.4.1 - compression: ^1.7.1 - connect: ^3.6.5 - errorhandler: ^1.5.1 - nocache: ^3.0.1 - pretty-format: ^26.6.2 - serve-static: ^1.13.1 - ws: ^7.5.1 - checksum: dcf1ab13ae7e1b715281b7d045f06871441faf184c6d031965f0c0829bbf5f1ac18b82e239fe043f0e47c94d1f75e68931ab8483806596c934dcad1fb0fd78cf - languageName: node - linkType: hard - "@react-native-community/cli-server-api@npm:13.6.6": version: 13.6.6 resolution: "@react-native-community/cli-server-api@npm:13.6.6" @@ -10263,23 +10849,6 @@ __metadata: languageName: node linkType: hard -"@react-native-community/cli-tools@npm:11.4.1": - version: 11.4.1 - resolution: "@react-native-community/cli-tools@npm:11.4.1" - dependencies: - appdirsjs: ^1.2.4 - chalk: ^4.1.2 - find-up: ^5.0.0 - mime: ^2.4.1 - node-fetch: ^2.6.0 - open: ^6.2.0 - ora: ^5.4.1 - semver: ^7.5.2 - shell-quote: ^1.7.3 - checksum: 371a73219d25dbd381cd92f879f355ed1040900159fc13745050aa06758cabf89502d4db902abdd7998b09a6d5af4bcd5489f9647dc0b5529be1a49997038f15 - languageName: node - linkType: hard - "@react-native-community/cli-tools@npm:13.6.6": version: 13.6.6 resolution: "@react-native-community/cli-tools@npm:13.6.6" @@ -10316,15 +10885,6 @@ __metadata: languageName: node linkType: hard -"@react-native-community/cli-types@npm:11.4.1": - version: 11.4.1 - resolution: "@react-native-community/cli-types@npm:11.4.1" - dependencies: - joi: ^17.2.1 - checksum: 2a17e2a8c254456c86bccbd8418bf4c8279c6a0d1491f5f9081fcf7f7c5975cc5b6c7c6dc26c3f115ca0e83cbe70655df1aa292fad6e5624db6f8e9c134ac631 - languageName: node - linkType: hard - "@react-native-community/cli-types@npm:13.6.6": version: 13.6.6 resolution: "@react-native-community/cli-types@npm:13.6.6" @@ -10397,33 +10957,6 @@ __metadata: languageName: node linkType: hard -"@react-native-community/cli@npm:^11.4.1": - version: 11.4.1 - resolution: "@react-native-community/cli@npm:11.4.1" - dependencies: - "@react-native-community/cli-clean": 11.4.1 - "@react-native-community/cli-config": 11.4.1 - "@react-native-community/cli-debugger-ui": 11.4.1 - "@react-native-community/cli-doctor": 11.4.1 - "@react-native-community/cli-hermes": 11.4.1 - "@react-native-community/cli-plugin-metro": 11.4.1 - "@react-native-community/cli-server-api": 11.4.1 - "@react-native-community/cli-tools": 11.4.1 - "@react-native-community/cli-types": 11.4.1 - chalk: ^4.1.2 - commander: ^9.4.1 - execa: ^5.0.0 - find-up: ^4.1.0 - fs-extra: ^8.1.0 - graceful-fs: ^4.1.3 - prompts: ^2.4.0 - semver: ^7.5.2 - bin: - react-native: build/bin.js - checksum: aab22f10eda679050e7eb556ded0a6b0dc57ce44ffe1c423d4202295cbc913d93a4ec510d34644bd23971e67f2800de75583b0125f9a949da55586f48f08dac0 - languageName: node - linkType: hard - "@react-native-community/datetimepicker@npm:8.1.1": version: 8.1.1 resolution: "@react-native-community/datetimepicker@npm:8.1.1" @@ -10492,13 +11025,6 @@ __metadata: languageName: node linkType: hard -"@react-native/assets-registry@npm:^0.72.0": - version: 0.72.0 - resolution: "@react-native/assets-registry@npm:0.72.0" - checksum: 94c2b842f9fcc6e2817463dd5f26a40b69a5ff10d8d10a2af95b677f88c6645e833f985db9d85c9c3d8e66fb882b2065921ad8890fe6ac7b5eb3f9d04f6e17fa - languageName: node - linkType: hard - "@react-native/assets@npm:1.0.0": version: 1.0.0 resolution: "@react-native/assets@npm:1.0.0" @@ -10524,6 +11050,15 @@ __metadata: languageName: node linkType: hard +"@react-native/babel-plugin-codegen@npm:0.74.87": + version: 0.74.87 + resolution: "@react-native/babel-plugin-codegen@npm:0.74.87" + dependencies: + "@react-native/codegen": 0.74.87 + checksum: f4d1d85deb0925d86a4763643f380afed37476733ef15e416f4022eab8a5aa51737406175c9701d19b9103f4359370a6a5d26f544f299660524fd2d8f5121b71 + languageName: node + linkType: hard + "@react-native/babel-preset@npm:0.74.83": version: 0.74.83 resolution: "@react-native/babel-preset@npm:0.74.83" @@ -10630,6 +11165,59 @@ __metadata: languageName: node linkType: hard +"@react-native/babel-preset@npm:0.74.87": + version: 0.74.87 + resolution: "@react-native/babel-preset@npm:0.74.87" + dependencies: + "@babel/core": ^7.20.0 + "@babel/plugin-proposal-async-generator-functions": ^7.0.0 + "@babel/plugin-proposal-class-properties": ^7.18.0 + "@babel/plugin-proposal-export-default-from": ^7.0.0 + "@babel/plugin-proposal-logical-assignment-operators": ^7.18.0 + "@babel/plugin-proposal-nullish-coalescing-operator": ^7.18.0 + "@babel/plugin-proposal-numeric-separator": ^7.0.0 + "@babel/plugin-proposal-object-rest-spread": ^7.20.0 + "@babel/plugin-proposal-optional-catch-binding": ^7.0.0 + "@babel/plugin-proposal-optional-chaining": ^7.20.0 + "@babel/plugin-syntax-dynamic-import": ^7.8.0 + "@babel/plugin-syntax-export-default-from": ^7.0.0 + "@babel/plugin-syntax-flow": ^7.18.0 + "@babel/plugin-syntax-nullish-coalescing-operator": ^7.0.0 + "@babel/plugin-syntax-optional-chaining": ^7.0.0 + "@babel/plugin-transform-arrow-functions": ^7.0.0 + "@babel/plugin-transform-async-to-generator": ^7.20.0 + "@babel/plugin-transform-block-scoping": ^7.0.0 + "@babel/plugin-transform-classes": ^7.0.0 + "@babel/plugin-transform-computed-properties": ^7.0.0 + "@babel/plugin-transform-destructuring": ^7.20.0 + "@babel/plugin-transform-flow-strip-types": ^7.20.0 + "@babel/plugin-transform-function-name": ^7.0.0 + "@babel/plugin-transform-literals": ^7.0.0 + "@babel/plugin-transform-modules-commonjs": ^7.0.0 + "@babel/plugin-transform-named-capturing-groups-regex": ^7.0.0 + "@babel/plugin-transform-parameters": ^7.0.0 + "@babel/plugin-transform-private-methods": ^7.22.5 + "@babel/plugin-transform-private-property-in-object": ^7.22.11 + "@babel/plugin-transform-react-display-name": ^7.0.0 + "@babel/plugin-transform-react-jsx": ^7.0.0 + "@babel/plugin-transform-react-jsx-self": ^7.0.0 + "@babel/plugin-transform-react-jsx-source": ^7.0.0 + "@babel/plugin-transform-runtime": ^7.0.0 + "@babel/plugin-transform-shorthand-properties": ^7.0.0 + "@babel/plugin-transform-spread": ^7.0.0 + "@babel/plugin-transform-sticky-regex": ^7.0.0 + "@babel/plugin-transform-typescript": ^7.5.0 + "@babel/plugin-transform-unicode-regex": ^7.0.0 + "@babel/template": ^7.0.0 + "@react-native/babel-plugin-codegen": 0.74.87 + babel-plugin-transform-flow-enums: ^0.0.2 + react-refresh: ^0.14.0 + peerDependencies: + "@babel/core": "*" + checksum: 7a8f7c1bbba5cc50e6feeec2912b686b0d5d3257af11c15c6ebbadb501d5af7db29dca846ee79c4ad9d5e2737a4eb7e0a1a7df92c0bf173d7c82f9c3dcee7f6d + languageName: node + linkType: hard + "@react-native/codegen@npm:0.74.83": version: 0.74.83 resolution: "@react-native/codegen@npm:0.74.83" @@ -10664,20 +11252,20 @@ __metadata: languageName: node linkType: hard -"@react-native/codegen@npm:^0.72.8": - version: 0.72.8 - resolution: "@react-native/codegen@npm:0.72.8" +"@react-native/codegen@npm:0.74.87": + version: 0.74.87 + resolution: "@react-native/codegen@npm:0.74.87" dependencies: "@babel/parser": ^7.20.0 - flow-parser: ^0.206.0 glob: ^7.1.1 + hermes-parser: 0.19.1 invariant: ^2.2.4 jscodeshift: ^0.14.0 mkdirp: ^0.5.1 nullthrows: ^1.1.1 peerDependencies: "@babel/preset-env": ^7.1.6 - checksum: c031f199cb50f44010faaec96190bfd6a3abb376349c599cad85fa4f202c21d644b54ab6f530d2d0a915f086078f45d1082e2753ed4e4f80d256852ef1d081f9 + checksum: 587b9eacebf3cc96055c11868ac3cf73be3c135cb15b9bb67d0c7b252ef7d46c13621bffd5cbeb5b1744cd9809e97f86d87cb7ab27d517b3aaefeef07fa70642 languageName: node linkType: hard @@ -10708,6 +11296,13 @@ __metadata: languageName: node linkType: hard +"@react-native/debugger-frontend@npm:0.74.88": + version: 0.74.88 + resolution: "@react-native/debugger-frontend@npm:0.74.88" + checksum: 0f9f1211739ff31d65ad204a93cbfbe828b44d92aa606221052da4414d9baa6bfae779223fd442ce51b717bcf1bd546b039152b43d4fbb1999522d09a362259a + languageName: node + linkType: hard + "@react-native/dev-middleware@npm:0.74.83": version: 0.74.83 resolution: "@react-native/dev-middleware@npm:0.74.83" @@ -10729,6 +11324,27 @@ __metadata: languageName: node linkType: hard +"@react-native/dev-middleware@npm:~0.74.75": + version: 0.74.88 + resolution: "@react-native/dev-middleware@npm:0.74.88" + dependencies: + "@isaacs/ttlcache": ^1.4.1 + "@react-native/debugger-frontend": 0.74.88 + "@rnx-kit/chromium-edge-launcher": ^1.0.0 + chrome-launcher: ^0.15.2 + connect: ^3.6.5 + debug: ^2.2.0 + node-fetch: ^2.2.0 + nullthrows: ^1.1.1 + open: ^7.0.3 + selfsigned: ^2.4.1 + serve-static: ^1.13.1 + temp-dir: ^2.0.0 + ws: ^6.2.2 + checksum: adfb096b4cef9d341f20f92b72b2e05dca5a29693a3e32084152558b4afab6dd69e61daf7cbb55c955c80e1367c1a69bcbe59fca15b334571b9d3142b1aef8a7 + languageName: node + linkType: hard + "@react-native/gradle-plugin@npm:0.74.83": version: 0.74.83 resolution: "@react-native/gradle-plugin@npm:0.74.83" @@ -10736,13 +11352,6 @@ __metadata: languageName: node linkType: hard -"@react-native/gradle-plugin@npm:^0.72.11": - version: 0.72.11 - resolution: "@react-native/gradle-plugin@npm:0.72.11" - checksum: 1688e9b0f7571f142d9bea95339f1194c043f2230fd5018b69d69487bd4efdc4a0c7bce6e93cee2ac9ff8c7a382541186ca4d68b0e5086b5f4f2e78747978144 - languageName: node - linkType: hard - "@react-native/js-polyfills@npm:0.74.83": version: 0.74.83 resolution: "@react-native/js-polyfills@npm:0.74.83" @@ -10757,13 +11366,6 @@ __metadata: languageName: node linkType: hard -"@react-native/js-polyfills@npm:^0.72.1": - version: 0.72.1 - resolution: "@react-native/js-polyfills@npm:0.72.1" - checksum: c81b0217cefdfda5cda34acf260a862711e0c9262c2503eb155d6e16050438b387242f7232b986890cb461d01ca61a8b6dab9a9bcc75e00f5509315006028286 - languageName: node - linkType: hard - "@react-native/metro-babel-transformer@npm:0.74.83": version: 0.74.83 resolution: "@react-native/metro-babel-transformer@npm:0.74.83" @@ -10818,13 +11420,6 @@ __metadata: languageName: node linkType: hard -"@react-native/normalize-colors@npm:<0.73.0, @react-native/normalize-colors@npm:^0.72.0": - version: 0.72.0 - resolution: "@react-native/normalize-colors@npm:0.72.0" - checksum: c8ec577663394a3390eb34c3cd531350521172bcfad7de309ab111e5f9e3d27c966d4a4387f00972302107be3d8cad584c5794ccfa30939aecc56162e4ddbe25 - languageName: node - linkType: hard - "@react-native/normalize-colors@npm:^0.73.0": version: 0.73.2 resolution: "@react-native/normalize-colors@npm:0.73.2" @@ -10839,6 +11434,13 @@ __metadata: languageName: node linkType: hard +"@react-native/normalize-colors@npm:~0.74.83": + version: 0.74.88 + resolution: "@react-native/normalize-colors@npm:0.74.88" + checksum: 348d0f1b9802e824843ec58ed90f72af078b81dd576f72c45caa1ed9846ea733b0dab932e431f88ebc40a186e7443875b64e8e2cf8e669a59abef0aedf2d9aa7 + languageName: node + linkType: hard + "@react-native/polyfills@npm:2.0.0": version: 2.0.0 resolution: "@react-native/polyfills@npm:2.0.0" @@ -10863,18 +11465,6 @@ __metadata: languageName: node linkType: hard -"@react-native/virtualized-lists@npm:^0.72.8": - version: 0.72.8 - resolution: "@react-native/virtualized-lists@npm:0.72.8" - dependencies: - invariant: ^2.2.4 - nullthrows: ^1.1.1 - peerDependencies: - react-native: "*" - checksum: ad9628a04e72420326fd5ef09c746ad9cd6cff745b73850c7297429e3c42927043d1310896a72aa94497dc6b7f1abc2be1081b465734f7673f0e7d36aaae5e53 - languageName: node - linkType: hard - "@replit/codemirror-vim@npm:6.2.0": version: 6.2.0 resolution: "@replit/codemirror-vim@npm:6.2.0" @@ -11089,6 +11679,16 @@ __metadata: languageName: node linkType: hard +"@segment/loosely-validate-event@npm:^2.0.0": + version: 2.0.0 + resolution: "@segment/loosely-validate-event@npm:2.0.0" + dependencies: + component-type: ^1.2.1 + join-component: ^1.1.0 + checksum: 8c4aacc903fb717619b69ca7eecf8d4a7b928661b0e835c9cd98f1b858a85ce62c348369ad9a52cb2df8df02578c0525a73fce4c69a42ac414d9554cc6be7117 + languageName: node + linkType: hard + "@seiyab/eslint-plugin-react-hooks@npm:4.5.1-beta.0": version: 4.5.1-beta.0 resolution: "@seiyab/eslint-plugin-react-hooks@npm:4.5.1-beta.0" @@ -12483,12 +13083,12 @@ __metadata: languageName: node linkType: hard -"@types/node@npm:18.19.42, @types/node@npm:^18.0.0": - version: 18.19.42 - resolution: "@types/node@npm:18.19.42" +"@types/node@npm:18.19.43": + version: 18.19.43 + resolution: "@types/node@npm:18.19.43" dependencies: undici-types: ~5.26.4 - checksum: 3f976583d3f4ff6040187f98e838337d59134e53bfe1cf241d8143e87e6f9507a1ad0aa435ea550c21d76c6cabb78f63a410413de476764f45695378cc022377 + checksum: 5eb9045aae6da86e8ad297381f93d29d2e7fcd4ed0c53670d9dff1e7b714920f8bbe5ee456289c19fc69c510ac197bdbacc7a785eaeba0afb9cb5d634a64bcd3 languageName: node linkType: hard @@ -12499,6 +13099,15 @@ __metadata: languageName: node linkType: hard +"@types/node@npm:^18.0.0": + version: 18.19.42 + resolution: "@types/node@npm:18.19.42" + dependencies: + undici-types: ~5.26.4 + checksum: 3f976583d3f4ff6040187f98e838337d59134e53bfe1cf241d8143e87e6f9507a1ad0aa435ea550c21d76c6cabb78f63a410413de476764f45695378cc022377 + languageName: node + linkType: hard + "@types/node@npm:^20.10.6": version: 20.11.16 resolution: "@types/node@npm:20.11.16" @@ -13403,6 +14012,40 @@ __metadata: languageName: node linkType: hard +"@urql/core@npm:2.3.6": + version: 2.3.6 + resolution: "@urql/core@npm:2.3.6" + dependencies: + "@graphql-typed-document-node/core": ^3.1.0 + wonka: ^4.0.14 + peerDependencies: + graphql: ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + checksum: 39b10abc9b600cf698bc702b9b678cf8cf4851faa8041be6fe26e439a18a447f8f39049cd2a9b188076cbd272ead62286ea05294c5de14719e7799caa8c44942 + languageName: node + linkType: hard + +"@urql/core@npm:>=2.3.1": + version: 5.0.6 + resolution: "@urql/core@npm:5.0.6" + dependencies: + "@0no-co/graphql.web": ^1.0.5 + wonka: ^6.3.2 + checksum: cf94025ff58d6eee82da2eb51ec74126c2c83f5f797ef5f5a51376039cb3c342ddeac1ed050ce47d2da7f375b3e2c7b4c780dd00c3c684bfe6e7f825d859d322 + languageName: node + linkType: hard + +"@urql/exchange-retry@npm:0.3.0": + version: 0.3.0 + resolution: "@urql/exchange-retry@npm:0.3.0" + dependencies: + "@urql/core": ">=2.3.1" + wonka: ^4.0.14 + peerDependencies: + graphql: ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 + checksum: 7638518e809da750f89bc59343b3a1f7fea2927110a2aab39701ae36c7c1bc5953f5a536a47402d4febbfc227fd0c729844b58d72efb283ed8aa73c20c26ef25 + languageName: node + linkType: hard + "@webassemblyjs/ast@npm:1.11.1": version: 1.11.1 resolution: "@webassemblyjs/ast@npm:1.11.1" @@ -13778,6 +14421,13 @@ __metadata: languageName: node linkType: hard +"@xmldom/xmldom@npm:~0.7.7": + version: 0.7.13 + resolution: "@xmldom/xmldom@npm:0.7.13" + checksum: b4054078530e5fa8ede9677425deff0fce6d965f4c477ca73f8490d8a089e60b8498a15560425a1335f5ff99ecb851ed2c734b0a9a879299a5694302f212f37a + languageName: node + linkType: hard + "@xtuc/ieee754@npm:^1.2.0": version: 1.2.0 resolution: "@xtuc/ieee754@npm:1.2.0" @@ -13869,7 +14519,7 @@ __metadata: languageName: node linkType: hard -"accepts@npm:~1.3.4, accepts@npm:~1.3.8": +"accepts@npm:^1.3.8, accepts@npm:~1.3.4, accepts@npm:~1.3.8": version: 1.3.8 resolution: "accepts@npm:1.3.8" dependencies: @@ -14274,7 +14924,7 @@ __metadata: languageName: node linkType: hard -"ansi-escapes@npm:^4.2.1": +"ansi-escapes@npm:^4.2.1, ansi-escapes@npm:^4.3.2": version: 4.3.2 resolution: "ansi-escapes@npm:4.3.2" dependencies: @@ -14529,6 +15179,13 @@ __metadata: languageName: node linkType: hard +"application-config-path@npm:^0.1.0": + version: 0.1.1 + resolution: "application-config-path@npm:0.1.1" + checksum: e478c1e4d515108de89693165d92dab11cfdc69dd0f3ccde034f14a3f4e50007946de9e4dd51cd77d2f7ba9752e75d8e4d937ef053a53e466425d9751c961a37 + languageName: node + linkType: hard + "aproba@npm:^1.0.3 || ^2.0.0, aproba@npm:^2.0.0": version: 2.0.0 resolution: "aproba@npm:2.0.0" @@ -14570,6 +15227,13 @@ __metadata: languageName: node linkType: hard +"arg@npm:5.0.2, arg@npm:^5.0.0": + version: 5.0.2 + resolution: "arg@npm:5.0.2" + checksum: 6c69ada1a9943d332d9e5382393e897c500908d91d5cb735a01120d5f71daf1b339b7b8980cbeaba8fd1afc68e658a739746179e4315a26e8a28951ff9930078 + languageName: node + linkType: hard + "arg@npm:^4.1.0": version: 4.1.3 resolution: "arg@npm:4.1.3" @@ -14577,13 +15241,6 @@ __metadata: languageName: node linkType: hard -"arg@npm:^5.0.0": - version: 5.0.2 - resolution: "arg@npm:5.0.2" - checksum: 6c69ada1a9943d332d9e5382393e897c500908d91d5cb735a01120d5f71daf1b339b7b8980cbeaba8fd1afc68e658a739746179e4315a26e8a28951ff9930078 - languageName: node - linkType: hard - "argparse@npm:^1.0.7": version: 1.0.10 resolution: "argparse@npm:1.0.10" @@ -15618,7 +16275,14 @@ __metadata: languageName: node linkType: hard -"babel-plugin-react-native-web@npm:0.19.12": +"babel-plugin-react-compiler@npm:^0.0.0-experimental-592953e-20240517": + version: 0.0.0 + resolution: "babel-plugin-react-compiler@npm:0.0.0" + checksum: 6413005e947f9ee089359e354ab279956a6c7d979c397b3fcc311fe9d6599a83d4343f2de5cb6aebf38b1ebc1dfdc05b5fe1ea37b84c4ff891b31d6d1d59b899 + languageName: node + linkType: hard + +"babel-plugin-react-native-web@npm:0.19.12, babel-plugin-react-native-web@npm:~0.19.10": version: 0.19.12 resolution: "babel-plugin-react-native-web@npm:0.19.12" checksum: bf5378f9ed3477f0165e989cc389da60681032680c5b8147f88905c65bba5267bb296943f87d4885c22a3fcdebfa815f7e7c25ae8f8192c4579f291994a1d946 @@ -15685,6 +16349,24 @@ __metadata: languageName: node linkType: hard +"babel-preset-expo@npm:~11.0.5": + version: 11.0.14 + resolution: "babel-preset-expo@npm:11.0.14" + dependencies: + "@babel/plugin-proposal-decorators": ^7.12.9 + "@babel/plugin-transform-export-namespace-from": ^7.22.11 + "@babel/plugin-transform-object-rest-spread": ^7.12.13 + "@babel/plugin-transform-parameters": ^7.22.15 + "@babel/preset-react": ^7.22.15 + "@babel/preset-typescript": ^7.23.0 + "@react-native/babel-preset": 0.74.87 + babel-plugin-react-compiler: ^0.0.0-experimental-592953e-20240517 + babel-plugin-react-native-web: ~0.19.10 + react-refresh: ^0.14.2 + checksum: b41c3fab6592fceb4ae020a0a79cb8e1d2e0354daca1d468e7db2c3033a17d654ac4627fb0b26f728809bc9810b7a1065dfd2a8a1f05fdbc83bacdc90e8e79dd + languageName: node + linkType: hard + "babel-preset-fbjs@npm:^3.4.0": version: 3.4.0 resolution: "babel-preset-fbjs@npm:3.4.0" @@ -15786,7 +16468,7 @@ __metadata: languageName: node linkType: hard -"base64-js@npm:*, base64-js@npm:^1.0.2, base64-js@npm:^1.1.2, base64-js@npm:^1.3.1, base64-js@npm:^1.5.1": +"base64-js@npm:*, base64-js@npm:^1.0.2, base64-js@npm:^1.1.2, base64-js@npm:^1.2.3, base64-js@npm:^1.3.1, base64-js@npm:^1.5.1": version: 1.5.1 resolution: "base64-js@npm:1.5.1" checksum: 669632eb3745404c2f822a18fc3a0122d2f9a7a13f7fb8b5823ee19d1d2ff9ee5b52c53367176ea4ad093c332fd5ab4bd0ebae5a8e27917a4105a4cfc86b1005 @@ -15875,6 +16557,15 @@ __metadata: languageName: node linkType: hard +"better-opn@npm:~3.0.2": + version: 3.0.2 + resolution: "better-opn@npm:3.0.2" + dependencies: + open: ^8.0.4 + checksum: 1471552fa7f733561e7f49e812be074b421153006ca744de985fb6d38939807959fc5fe9cb819cf09f864782e294704fd3b31711ea14c115baf3330a2f1135de + languageName: node + linkType: hard + "bezier-js@npm:6.1.3": version: 6.1.3 resolution: "bezier-js@npm:6.1.3" @@ -15882,6 +16573,13 @@ __metadata: languageName: node linkType: hard +"big-integer@npm:1.6.x": + version: 1.6.52 + resolution: "big-integer@npm:1.6.52" + checksum: 6e86885787a20fed96521958ae9086960e4e4b5e74d04f3ef7513d4d0ad631a9f3bde2730fc8aaa4b00419fc865f6ec573e5320234531ef37505da7da192c40b + languageName: node + linkType: hard + "big-integer@npm:^1.6.44": version: 1.6.51 resolution: "big-integer@npm:1.6.51" @@ -16103,6 +16801,24 @@ __metadata: languageName: node linkType: hard +"bplist-creator@npm:0.1.1": + version: 0.1.1 + resolution: "bplist-creator@npm:0.1.1" + dependencies: + stream-buffers: 2.2.x + checksum: b0d40d1d1623f1afdbb575cfc8075d742d2c4f0eb458574be809e3857752d1042a39553b3943d2d7f505dde92bcd43e1d7bdac61c9cd44475d696deb79f897ce + languageName: node + linkType: hard + +"bplist-parser@npm:0.3.2, bplist-parser@npm:^0.3.1": + version: 0.3.2 + resolution: "bplist-parser@npm:0.3.2" + dependencies: + big-integer: 1.6.x + checksum: fad0f6eb155a9b636b4096a1725ce972a0386490d7d38df7be11a3a5645372446b7c44aacbc6626d24d2c17d8b837765361520ebf2960aeffcaf56765811620e + languageName: node + linkType: hard + "bplist-parser@npm:^0.2.0": version: 0.2.0 resolution: "bplist-parser@npm:0.2.0" @@ -16447,6 +17163,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.1.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" @@ -16461,6 +17194,13 @@ __metadata: 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" @@ -16653,7 +17393,7 @@ __metadata: languageName: node linkType: hard -"cacache@npm:^15.2.0": +"cacache@npm:^15.2.0, cacache@npm:^15.3.0": version: 15.3.0 resolution: "cacache@npm:15.3.0" dependencies: @@ -17092,7 +17832,7 @@ __metadata: languageName: node linkType: hard -"chalk@npm:2.4.2, chalk@npm:^2.0.0, chalk@npm:^2.1.0, chalk@npm:^2.3.1, chalk@npm:^2.4.2": +"chalk@npm:2.4.2, chalk@npm:^2.0.0, chalk@npm:^2.0.1, chalk@npm:^2.1.0, chalk@npm:^2.3.1, chalk@npm:^2.4.2": version: 2.4.2 resolution: "chalk@npm:2.4.2" dependencies: @@ -17219,7 +17959,7 @@ __metadata: languageName: node linkType: hard -"charenc@npm:0.0.2": +"charenc@npm:0.0.2, charenc@npm:~0.0.1": version: 0.0.2 resolution: "charenc@npm:0.0.2" checksum: 81dcadbe57e861d527faf6dd3855dc857395a1c4d6781f4847288ab23cffb7b3ee80d57c15bba7252ffe3e5e8019db767757ee7975663ad2ca0939bb8fcaf2e5 @@ -17391,6 +18131,13 @@ __metadata: languageName: node linkType: hard +"ci-info@npm:^3.3.0": + version: 3.9.0 + resolution: "ci-info@npm:3.9.0" + checksum: 6b19dc9b2966d1f8c2041a838217299718f15d6c4b63ae36e4674edd2bee48f780e94761286a56aa59eb305a85fbea4ddffb7630ec063e7ec7e7e5ad42549a87 + languageName: node + linkType: hard + "cipher-base@npm:^1.0.0, cipher-base@npm:^1.0.1, cipher-base@npm:^1.0.3": version: 1.0.4 resolution: "cipher-base@npm:1.0.4" @@ -17524,6 +18271,13 @@ __metadata: languageName: node linkType: hard +"cli-spinners@npm:^2.0.0": + version: 2.9.2 + resolution: "cli-spinners@npm:2.9.2" + checksum: 1bd588289b28432e4676cb5d40505cfe3e53f2e4e10fbe05c8a710a154d6fe0ce7836844b00d6858f740f2ffe67cdc36e0fce9c7b6a8430e80e6388d5aa4956c + languageName: node + linkType: hard + "cli-spinners@npm:^2.5.0": version: 2.6.1 resolution: "cli-spinners@npm:2.6.1" @@ -17699,7 +18453,7 @@ __metadata: languageName: node linkType: hard -"clone@npm:^2.1.1": +"clone@npm:^2.1.1, clone@npm:^2.1.2": version: 2.1.2 resolution: "clone@npm:2.1.2" checksum: aaf106e9bc025b21333e2f4c12da539b568db4925c0501a1bf4070836c9e848c892fa22c35548ce0d1132b08bbbfa17a00144fe58fccdab6fa900fec4250f67d @@ -17964,7 +18718,7 @@ __metadata: languageName: node linkType: hard -"command-exists@npm:^1.2.8": +"command-exists@npm:^1.2.4, command-exists@npm:^1.2.8": version: 1.2.9 resolution: "command-exists@npm:1.2.9" checksum: 729ae3d88a2058c93c58840f30341b7f82688a573019535d198b57a4d8cb0135ced0ad7f52b591e5b28a90feb2c675080ce916e56254a0f7c15cb2395277cac3 @@ -18018,6 +18772,13 @@ __metadata: languageName: node linkType: hard +"commander@npm:^4.0.0": + version: 4.1.1 + resolution: "commander@npm:4.1.1" + checksum: d7b9913ff92cae20cb577a4ac6fcc121bd6223319e54a40f51a14740a681ad5c574fd29a57da478a5f234a6fa6c52cbf0b7c641353e03c648b1ae85ba670b977 + languageName: node + linkType: hard + "commander@npm:^5.0.0, commander@npm:^5.1.0": version: 5.1.0 resolution: "commander@npm:5.1.0" @@ -18132,6 +18893,13 @@ __metadata: languageName: node linkType: hard +"component-type@npm:^1.2.1": + version: 1.2.2 + resolution: "component-type@npm:1.2.2" + checksum: ca5a9886a961985b9ebcc0a5b23f2526506eced1c2c932648e5f8960db22fffcc3a77442013c6aef0b5afa8e6b9de02ae2a23ce5c967374edaf99d74fd6d6c3e + languageName: node + linkType: hard + "compressible@npm:~2.0.16": version: 2.0.18 resolution: "compressible@npm:2.0.18" @@ -18239,7 +19007,7 @@ __metadata: languageName: node linkType: hard -"connect@npm:^3.6.5": +"connect@npm:^3.6.5, connect@npm:^3.7.0": version: 3.7.0 resolution: "connect@npm:3.7.0" dependencies: @@ -18839,7 +19607,7 @@ __metadata: languageName: node linkType: hard -"crypt@npm:0.0.2": +"crypt@npm:0.0.2, crypt@npm:~0.0.1": version: 0.0.2 resolution: "crypt@npm:0.0.2" checksum: baf4c7bbe05df656ec230018af8cf7dbe8c14b36b98726939cef008d473f6fe7a4fad906cfea4062c93af516f1550a3f43ceb4d6615329612c6511378ed9fe34 @@ -18865,6 +19633,13 @@ __metadata: languageName: node linkType: hard +"crypto-random-string@npm:^1.0.0": + version: 1.0.0 + resolution: "crypto-random-string@npm:1.0.0" + checksum: 6fc61a46c18547b49a93da24f4559c4a1c859f4ee730ecc9533c1ba89fa2a9e9d81f390c2789467afbbd0d1c55a6e96a71e4716b6cd3e77736ed5fced7a2df9a + languageName: node + linkType: hard + "crypto-random-string@npm:^2.0.0": version: 2.0.0 resolution: "crypto-random-string@npm:2.0.0" @@ -19711,6 +20486,13 @@ __metadata: languageName: node linkType: hard +"dag-map@npm:~1.0.0": + version: 1.0.2 + resolution: "dag-map@npm:1.0.2" + checksum: a46bee1adda1459abe778b0c3616ef8c4ec14c314d38c3daa6f6a695ceae7c4b76ea3efa78385c1f25bb4d600566b3e1edd40e9ec3e862bd8927edca828025ed + languageName: node + linkType: hard + "dagre-d3-es@npm:7.0.10": version: 7.0.10 resolution: "dagre-d3-es@npm:7.0.10" @@ -20205,6 +20987,16 @@ __metadata: languageName: node linkType: hard +"default-gateway@npm:^4.2.0": + version: 4.2.0 + resolution: "default-gateway@npm:4.2.0" + dependencies: + execa: ^1.0.0 + ip-regex: ^2.1.0 + checksum: 1f5be765471689c6bab33e0c8b87363c3e2485cc1ab78904d383a8a8293a79f684da2a3303744b112503f986af4ea87d917c63a468ed913e9b0c31588c02d6a4 + languageName: node + linkType: hard + "default-gateway@npm:^6.0.3": version: 6.0.3 resolution: "default-gateway@npm:6.0.3" @@ -20364,7 +21156,7 @@ __metadata: languageName: node linkType: hard -"del@npm:^6.1.1": +"del@npm:^6.0.0, del@npm:^6.1.1": version: 6.1.1 resolution: "del@npm:6.1.1" dependencies: @@ -20450,17 +21242,6 @@ __metadata: languageName: node linkType: hard -"deprecated-react-native-prop-types@npm:^4.2.3": - version: 4.2.3 - resolution: "deprecated-react-native-prop-types@npm:4.2.3" - dependencies: - "@react-native/normalize-colors": <0.73.0 - invariant: ^2.2.4 - prop-types: ^15.8.1 - checksum: 294752f9f15733b66473022d8258a14aac850e4a3db7e802ef189a09871236f5a110f8fe588468ae1df92f24641ae29de05943074dc54da02a5e4262935f913d - languageName: node - linkType: hard - "deprecation@npm:^2.0.0, deprecation@npm:^2.3.1": version: 2.3.1 resolution: "deprecation@npm:2.3.1" @@ -20536,6 +21317,15 @@ __metadata: languageName: node linkType: hard +"detect-libc@npm:^1.0.3": + version: 1.0.3 + resolution: "detect-libc@npm:1.0.3" + bin: + detect-libc: ./bin/detect-libc.js + checksum: daaaed925ffa7889bd91d56e9624e6c8033911bb60f3a50a74a87500680652969dbaab9526d1e200a4c94acf80fc862a22131841145a0a8482d60a99c24f4a3e + languageName: node + linkType: hard + "detect-libc@npm:^2.0.0, detect-libc@npm:^2.0.1": version: 2.0.1 resolution: "detect-libc@npm:2.0.1" @@ -21192,6 +21982,22 @@ __metadata: languageName: node linkType: hard +"dotenv-expand@npm:~11.0.6": + version: 11.0.6 + resolution: "dotenv-expand@npm:11.0.6" + dependencies: + dotenv: ^16.4.4 + checksum: dbbe1ecbdf17f4ba5556744b259801bdbc8c221c0d167f4f3ef079206ebf658f487fe96ea1fd504dc15172328d25f6c665581eb8d873298904a52d48a2004b49 + languageName: node + linkType: hard + +"dotenv@npm:^16.4.4, dotenv@npm:~16.4.5": + version: 16.4.5 + resolution: "dotenv@npm:16.4.5" + checksum: 301a12c3d44fd49888b74eb9ccf9f07a1f5df43f489e7fcb89647a2edcd84c42d6bc349dc8df099cd18f07c35c7b04685c1a4f3e6a6a9e6b30f8d48c15b7f49c + languageName: node + linkType: hard + "dotenv@npm:^9.0.2": version: 9.0.2 resolution: "dotenv@npm:9.0.2" @@ -21618,6 +22424,13 @@ __metadata: languageName: node linkType: hard +"env-editor@npm:^0.4.1": + version: 0.4.2 + resolution: "env-editor@npm:0.4.2" + checksum: d162e161d9a1bddaf63f68428c587b1d823afe7d56cde039ce403cc68706c68350c92b9db44692f4ecea1d67ec80de9ba01ca70568299ed929d3fa056c40aebf + languageName: node + linkType: hard + "env-paths@npm:^2.2.0": version: 2.2.1 resolution: "env-paths@npm:2.2.1" @@ -21650,6 +22463,13 @@ __metadata: languageName: node linkType: hard +"eol@npm:^0.9.1": + version: 0.9.1 + resolution: "eol@npm:0.9.1" + checksum: ba9fa998bc8148b935dcf85585eacf049eeaf18d2ab6196710d4d1f59e7dfd0e87b18508dc67144ff8ba12f835a4a4989aeea64c98b13cca77b74b9d4b33bce5 + languageName: node + linkType: hard + "err-code@npm:^1.0.0": version: 1.1.2 resolution: "err-code@npm:1.1.2" @@ -22936,6 +23756,13 @@ __metadata: languageName: node linkType: hard +"exec-async@npm:^2.2.0": + version: 2.2.0 + resolution: "exec-async@npm:2.2.0" + checksum: 5877d83c2d553994accb39c26f40f0a633bca10d9572696e524fd91b385060ba05d1edcc28d6e3899c451e65ed453fdc7e6b69bd5d5a27d914220a100f81bb3a + languageName: node + linkType: hard + "execa@npm:4.1.0": version: 4.1.0 resolution: "execa@npm:4.1.0" @@ -23083,6 +23910,120 @@ __metadata: languageName: node linkType: hard +"expo-asset@npm:~10.0.6": + version: 10.0.10 + resolution: "expo-asset@npm:10.0.10" + dependencies: + expo-constants: ~16.0.0 + invariant: ^2.2.4 + md5-file: ^3.2.3 + peerDependencies: + expo: "*" + checksum: abf6afee29db1df356008b2260ecfd37eafdeeda989deeaf546d6c6857f82f71efe6d2f6e348d5bf0f077325f9ce2c8dad006ad5d8d2df35cdd9bf3dc15e714a + languageName: node + linkType: hard + +"expo-camera@npm:15.0.16": + version: 15.0.16 + resolution: "expo-camera@npm:15.0.16" + dependencies: + invariant: ^2.2.4 + peerDependencies: + expo: "*" + checksum: 5bd41377c40f1be5caa9f94755b22da82afd7626a1d7f2cb2648a6dcd16cf9681d855fa59b16a01629749d59b24cf8f1984edd32dce45ba86fe4926d5645f0d1 + languageName: node + linkType: hard + +"expo-constants@npm:~16.0.0": + version: 16.0.2 + resolution: "expo-constants@npm:16.0.2" + dependencies: + "@expo/config": ~9.0.0 + "@expo/env": ~0.3.0 + peerDependencies: + expo: "*" + checksum: 59e0ceeef9d6f863730a940b1d2b1117b1c55a1cf9b71557e6e067fa06b116e703e4848e9ad5e223aca86715a03d91464797e2308c1d9fc8530b5a24f4d01902 + languageName: node + linkType: hard + +"expo-file-system@npm:~17.0.1": + version: 17.0.1 + resolution: "expo-file-system@npm:17.0.1" + peerDependencies: + expo: "*" + checksum: e87f4b663dd01150ccc0c2eda52c221d0e6826ebaad4ff371498fb57c124ca73586868615d17031775671a58096a40a98e7dca189d46538aa3ade77ca2930e8b + languageName: node + linkType: hard + +"expo-font@npm:~12.0.4": + version: 12.0.10 + resolution: "expo-font@npm:12.0.10" + dependencies: + fontfaceobserver: ^2.1.0 + peerDependencies: + expo: "*" + checksum: c8fdc046158d4c2d71d81fcd9ba115bc0e142bc0d637ae9b5fea04cd816c62c051f63e44685530109106565d29feca2035ef6123c56cf9c951d0a2775a8cd9a7 + languageName: node + linkType: hard + +"expo-keep-awake@npm:~13.0.1": + version: 13.0.2 + resolution: "expo-keep-awake@npm:13.0.2" + peerDependencies: + expo: "*" + checksum: 1300c6663632bc00db71a7d3b8a8dfc30ec0cbdd01777ab30b54ef5269cdfd557ae9419ae9f4007dbab1d252610fa6bfd22ebb0b5c2012ecad929bb4c3f35188 + languageName: node + linkType: hard + +"expo-modules-autolinking@npm:1.11.1": + version: 1.11.1 + resolution: "expo-modules-autolinking@npm:1.11.1" + dependencies: + chalk: ^4.1.0 + commander: ^7.2.0 + fast-glob: ^3.2.5 + find-up: ^5.0.0 + fs-extra: ^9.1.0 + bin: + expo-modules-autolinking: bin/expo-modules-autolinking.js + checksum: 45936fe2d4a38b44477875f3eafd915f62035ff6e6abde1d36c3dc4fac087f284c5458b5edc3c235c7a9d3b525efd5886fe43432f565da135c87a5bf1b4e07fd + languageName: node + linkType: hard + +"expo-modules-core@npm:1.12.9": + version: 1.12.9 + resolution: "expo-modules-core@npm:1.12.9" + dependencies: + invariant: ^2.2.4 + checksum: 0c7fb32f022b35639b9db8ca4961683c055ea9555841e1313fcd81ba0d1f80432217afe771aac0e2eed1c5ea41cf0a1304a70a51660ed2c78eb1e431bcf56ddd + languageName: node + linkType: hard + +"expo@npm:51.0.0": + version: 51.0.0 + resolution: "expo@npm:51.0.0" + dependencies: + "@babel/runtime": ^7.20.0 + "@expo/cli": 0.18.9 + "@expo/config": 9.0.1 + "@expo/config-plugins": 8.0.4 + "@expo/metro-config": 0.18.3 + "@expo/vector-icons": ^14.0.0 + babel-preset-expo: ~11.0.5 + expo-asset: ~10.0.6 + expo-file-system: ~17.0.1 + expo-font: ~12.0.4 + expo-keep-awake: ~13.0.1 + expo-modules-autolinking: 1.11.1 + expo-modules-core: 1.12.9 + fbemitter: ^3.0.0 + whatwg-url-without-unicode: 8.0.0-3 + bin: + expo: bin/cli + checksum: 8655db6c50a90372bae54ffed1b41e609c2da42ec7e348bfe0246b0f780fd6b5ed4c49a9a4925b02d711f4275351fcfe1b0831750d9afc94465f8a3d44bad2c1 + languageName: node + linkType: hard + "exponential-backoff@npm:^3.1.1": version: 3.1.1 resolution: "exponential-backoff@npm:3.1.1" @@ -23318,29 +24259,29 @@ __metadata: languageName: node linkType: hard -"fast-glob@npm:^3.2.9": - version: 3.2.11 - resolution: "fast-glob@npm:3.2.11" +"fast-glob@npm:^3.2.5, fast-glob@npm:^3.3.2": + version: 3.3.2 + resolution: "fast-glob@npm:3.3.2" dependencies: "@nodelib/fs.stat": ^2.0.2 "@nodelib/fs.walk": ^1.2.3 glob-parent: ^5.1.2 merge2: ^1.3.0 micromatch: ^4.0.4 - checksum: f473105324a7780a20c06de842e15ddbb41d3cb7e71d1e4fe6e8373204f22245d54f5ab9e2061e6a1c613047345954d29b022e0e76f5c28b1df9858179a0e6d7 + checksum: 900e4979f4dbc3313840078419245621259f349950411ca2fa445a2f9a1a6d98c3b5e7e0660c5ccd563aa61abe133a21765c6c0dec8e57da1ba71d8000b05ec1 languageName: node linkType: hard -"fast-glob@npm:^3.3.2": - version: 3.3.2 - resolution: "fast-glob@npm:3.3.2" +"fast-glob@npm:^3.2.9": + version: 3.2.11 + resolution: "fast-glob@npm:3.2.11" dependencies: "@nodelib/fs.stat": ^2.0.2 "@nodelib/fs.walk": ^1.2.3 glob-parent: ^5.1.2 merge2: ^1.3.0 micromatch: ^4.0.4 - checksum: 900e4979f4dbc3313840078419245621259f349950411ca2fa445a2f9a1a6d98c3b5e7e0660c5ccd563aa61abe133a21765c6c0dec8e57da1ba71d8000b05ec1 + checksum: f473105324a7780a20c06de842e15ddbb41d3cb7e71d1e4fe6e8373204f22245d54f5ab9e2061e6a1c613047345954d29b022e0e76f5c28b1df9858179a0e6d7 languageName: node linkType: hard @@ -23538,6 +24479,13 @@ __metadata: languageName: node linkType: hard +"fetch-retry@npm:^4.1.1": + version: 4.1.1 + resolution: "fetch-retry@npm:4.1.1" + checksum: a06b6a0201efeb5082794713bcdc8dd2c8f1fd4ad5660de860b9c4e51738aa369be58ba7cfa67aa7aa4a3bf9d9b5a4cd2d2fdea88868856483fb81bacd70455b + languageName: node + linkType: hard + "figgy-pudding@npm:^3.4.1, figgy-pudding@npm:^3.5.1": version: 3.5.2 resolution: "figgy-pudding@npm:3.5.2" @@ -23775,7 +24723,7 @@ __metadata: languageName: node linkType: hard -"find-up@npm:^5.0.0": +"find-up@npm:^5.0.0, find-up@npm:~5.0.0": version: 5.0.0 resolution: "find-up@npm:5.0.0" dependencies: @@ -23795,6 +24743,15 @@ __metadata: languageName: node linkType: hard +"find-yarn-workspace-root@npm:~2.0.0": + version: 2.0.0 + resolution: "find-yarn-workspace-root@npm:2.0.0" + dependencies: + micromatch: ^4.0.2 + checksum: fa5ca8f9d08fe7a54ce7c0a5931ff9b7e36f9ee7b9475fb13752bcea80ec6b5f180fa5102d60b376d5526ce924ea3fc6b19301262efa0a5d248dd710f3644242 + languageName: node + linkType: hard + "findit@npm:^2.0.0": version: 2.0.0 resolution: "findit@npm:2.0.0" @@ -23879,13 +24836,6 @@ __metadata: languageName: node linkType: hard -"flow-enums-runtime@npm:^0.0.5": - version: 0.0.5 - resolution: "flow-enums-runtime@npm:0.0.5" - checksum: a2cdd6a3e86a1d113d9300fd210e379da5a20d9423a1b957cd17207a4434a866ca75d5eb400c9058afb1b5fe64a653c4ddd2e30bf9fb8477291f0d5e70c20539 - languageName: node - linkType: hard - "flow-enums-runtime@npm:^0.0.6": version: 0.0.6 resolution: "flow-enums-runtime@npm:0.0.6" @@ -23907,13 +24857,6 @@ __metadata: languageName: node linkType: hard -"flow-parser@npm:^0.206.0": - version: 0.206.0 - resolution: "flow-parser@npm:0.206.0" - checksum: 1b87d87b59815b09852a6981543ad222da7f4d0e0c26702f9d5e0065174f5f64d2563db76d07a487c6b55e1979344e3845ac42929db70f77a82e8c9171a62a86 - languageName: node - linkType: hard - "flush-write-stream@npm:^1.0.0, flush-write-stream@npm:^1.0.2": version: 1.1.1 resolution: "flush-write-stream@npm:1.1.1" @@ -23993,6 +24936,13 @@ __metadata: languageName: node linkType: hard +"fontfaceobserver@npm:^2.1.0": + version: 2.3.0 + resolution: "fontfaceobserver@npm:2.3.0" + checksum: 5f14715974203b9d68f299f93a7623afd9d5701572d683e861cdbb7514573ac556f56e9b5d07d2d534e01aed19a3b0bbe568e735e0e5494cbea913fc3f12b856 + languageName: node + linkType: hard + "for-each-property-deep@npm:0.0.3": version: 0.0.3 resolution: "for-each-property-deep@npm:0.0.3" @@ -24112,7 +25062,7 @@ __metadata: languageName: node linkType: hard -"form-data@npm:^3.0.0": +"form-data@npm:^3.0.0, form-data@npm:^3.0.1": version: 3.0.1 resolution: "form-data@npm:3.0.1" dependencies: @@ -24183,6 +25133,13 @@ __metadata: languageName: node linkType: hard +"freeport-async@npm:2.0.0": + version: 2.0.0 + resolution: "freeport-async@npm:2.0.0" + checksum: 03156ab2179fbbf5b7ff3aafc56f3e01c9d7df5cc366fbf3c29f26007773632e33ed90847fa4a979c5412ad55de8b21a7292601c531acaf8957933d96225c76d + languageName: node + linkType: hard + "fresh@npm:0.5.2, fresh@npm:^0.5.2, fresh@npm:~0.5.2": version: 0.5.2 resolution: "fresh@npm:0.5.2" @@ -24243,6 +25200,18 @@ __metadata: languageName: node linkType: hard +"fs-extra@npm:9.0.0": + version: 9.0.0 + resolution: "fs-extra@npm:9.0.0" + dependencies: + at-least-node: ^1.0.0 + graceful-fs: ^4.2.0 + jsonfile: ^6.0.1 + universalify: ^1.0.0 + checksum: c4269fbfd8d8d2a1edca4257fa28545caf7e5ad218d264f723c338a154d3624d2ef098c19915b9436d3186b7ac45d5b032371a2004008ec0cd4072512e853aa8 + languageName: node + linkType: hard + "fs-extra@npm:^0.26.7": version: 0.26.7 resolution: "fs-extra@npm:0.26.7" @@ -24278,7 +25247,7 @@ __metadata: languageName: node linkType: hard -"fs-extra@npm:^8.0.1, fs-extra@npm:^8.1.0": +"fs-extra@npm:^8.0.1, fs-extra@npm:^8.1.0, fs-extra@npm:~8.1.0": version: 8.1.0 resolution: "fs-extra@npm:8.1.0" dependencies: @@ -24289,7 +25258,7 @@ __metadata: languageName: node linkType: hard -"fs-extra@npm:^9.0.0, fs-extra@npm:^9.0.1": +"fs-extra@npm:^9.0.0, fs-extra@npm:^9.0.1, fs-extra@npm:^9.1.0": version: 9.1.0 resolution: "fs-extra@npm:9.1.0" dependencies: @@ -24512,8 +25481,8 @@ __metadata: version: 0.0.0-use.local resolution: "generator-joplin@workspace:packages/generator-joplin" dependencies: - "@joplin/lib": ~3.1 - "@joplin/tools": ~3.1 + "@joplin/lib": ~3.2 + "@joplin/tools": ~3.2 chalk: 2.4.2 jest: 29.7.0 slugify: 1.6.6 @@ -24668,6 +25637,13 @@ __metadata: languageName: node linkType: hard +"get-port@npm:^3.2.0": + version: 3.2.0 + resolution: "get-port@npm:3.2.0" + checksum: 31f530326569683ac4b7452eb7573c40e9dbe52aec14d80745c35475261e6389160da153d5b8ae911150b4ce99003472b30c69ba5be0cedeaa7865b95542d168 + languageName: node + linkType: hard + "get-port@npm:^4.2.0": version: 4.2.0 resolution: "get-port@npm:4.2.0" @@ -24782,6 +25758,13 @@ __metadata: languageName: node linkType: hard +"getenv@npm:^1.0.0": + version: 1.0.0 + resolution: "getenv@npm:1.0.0" + checksum: 19ae5cad603a1cf1bcb8fa3bed48e00d062eb0572a4404c02334b67f3b3499f238383082b064bb42515e9e25c2b08aef1a3e3d2b6852347721aa8b174825bd56 + languageName: node + linkType: hard + "getopts@npm:2.3.0": version: 2.3.0 resolution: "getopts@npm:2.3.0" @@ -25031,7 +26014,7 @@ __metadata: languageName: node linkType: hard -"glob@npm:10.4.5": +"glob@npm:10.4.5, glob@npm:^10.3.7, glob@npm:^10.4.2": version: 10.4.5 resolution: "glob@npm:10.4.5" dependencies: @@ -25075,6 +26058,20 @@ __metadata: languageName: node linkType: hard +"glob@npm:7.1.6": + version: 7.1.6 + resolution: "glob@npm:7.1.6" + dependencies: + fs.realpath: ^1.0.0 + inflight: ^1.0.4 + inherits: 2 + minimatch: ^3.0.4 + once: ^1.3.0 + path-is-absolute: ^1.0.0 + checksum: 351d549dd90553b87c2d3f90ce11aed9e1093c74130440e7ae0592e11bbcd2ce7f0ebb8ba6bfe63aaf9b62166a7f4c80cb84490ae5d78408bb2572bf7d4ee0a6 + languageName: node + linkType: hard + "glob@npm:^10.2.2": version: 10.3.1 resolution: "glob@npm:10.3.1" @@ -25090,23 +26087,7 @@ __metadata: languageName: node linkType: hard -"glob@npm:^10.3.7": - version: 10.4.2 - resolution: "glob@npm:10.4.2" - dependencies: - foreground-child: ^3.1.0 - jackspeak: ^3.1.2 - minimatch: ^9.0.4 - minipass: ^7.1.2 - package-json-from-dist: ^1.0.0 - path-scurry: ^1.11.1 - bin: - glob: dist/esm/bin.mjs - checksum: bd7c0e30701136e936f414e5f6f82c7f04503f01df77408f177aa584927412f0bde0338e6ec541618cd21eacc57dde33e7b3c6c0a779cc1c6e6a0e14f3d15d9b - languageName: node - linkType: hard - -"glob@npm:^7.2.3": +"glob@npm:^7.1.7, glob@npm:^7.2.3": version: 7.2.3 resolution: "glob@npm:7.2.3" dependencies: @@ -25415,6 +26396,24 @@ __metadata: languageName: node linkType: hard +"graphql-tag@npm:^2.10.1": + version: 2.12.6 + resolution: "graphql-tag@npm:2.12.6" + dependencies: + tslib: ^2.1.0 + peerDependencies: + graphql: ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 + checksum: b15162a3d62f17b9b79302445b9ee330e041582f1c7faca74b9dec5daa74272c906ec1c34e1c50592bb6215e5c3eba80a309103f6ba9e4c1cddc350c46f010df + languageName: node + linkType: hard + +"graphql@npm:15.8.0": + version: 15.8.0 + resolution: "graphql@npm:15.8.0" + checksum: 423325271db8858428641b9aca01699283d1fe5b40ef6d4ac622569ecca927019fce8196208b91dd1d8eb8114f00263fe661d241d0eb40c10e5bfd650f86ec5e + languageName: node + linkType: hard + "gray-matter@npm:^4.0.3": version: 4.0.3 resolution: "gray-matter@npm:4.0.3" @@ -25920,13 +26919,6 @@ __metadata: languageName: node linkType: hard -"hermes-estree@npm:0.12.0": - version: 0.12.0 - resolution: "hermes-estree@npm:0.12.0" - checksum: 368fd60bd66a30d237d8a11f0958975b18e24ec8a045217b6200818c2fab9a57880f027c4688601a5a380996be9018cb5f8c16384cb3f14647650d64a03c4030 - languageName: node - linkType: hard - "hermes-estree@npm:0.19.1": version: 0.19.1 resolution: "hermes-estree@npm:0.19.1" @@ -25941,15 +26933,6 @@ __metadata: languageName: node linkType: hard -"hermes-parser@npm:0.12.0": - version: 0.12.0 - resolution: "hermes-parser@npm:0.12.0" - dependencies: - hermes-estree: 0.12.0 - checksum: 49c7bf721c9412bec7e447d625d73f79d1fb525f1e77032ae291b720bcff57ebdb5ab241a3e09e145640b4e00ae6caa0f4f2e594ad1d3fed67880fbd521ba142 - languageName: node - linkType: hard - "hermes-parser@npm:0.19.1": version: 0.19.1 resolution: "hermes-parser@npm:0.19.1" @@ -26067,6 +27050,15 @@ __metadata: languageName: node linkType: hard +"hosted-git-info@npm:^3.0.2": + version: 3.0.8 + resolution: "hosted-git-info@npm:3.0.8" + dependencies: + lru-cache: ^6.0.0 + checksum: 5af7a69581acb84206a7b8e009f4680c36396814e92c8a83973dfb3b87e44e44d1f7b8eaf3e4a953686482770ecb78406a4ce4666bfdfe447762434127871d8d + languageName: node + linkType: hard + "hosted-git-info@npm:^4.0.1": version: 4.0.2 resolution: "hosted-git-info@npm:4.0.2" @@ -27233,6 +28225,16 @@ __metadata: languageName: node linkType: hard +"internal-ip@npm:4.3.0": + version: 4.3.0 + resolution: "internal-ip@npm:4.3.0" + dependencies: + default-gateway: ^4.2.0 + ipaddr.js: ^1.9.0 + checksum: c970433c84d9a6b46e2c9f5ab7785d3105b856d0a566891bf919241b5a884c5c1c9bf8e915aebb822a86c14b1b6867e58c1eaf5cd49eb023368083069d1a4a9a + languageName: node + linkType: hard + "internal-slot@npm:^1.0.3": version: 1.0.3 resolution: "internal-slot@npm:1.0.3" @@ -27324,6 +28326,13 @@ __metadata: languageName: node linkType: hard +"ip-regex@npm:^2.1.0": + version: 2.1.0 + resolution: "ip-regex@npm:2.1.0" + checksum: 331d95052aa53ce245745ea0fc3a6a1e2e3c8d6da65fa8ea52bf73768c1b22a9ac50629d1d2b08c04e7b3ac4c21b536693c149ce2c2615ee4796030e5b3e3cba + languageName: node + linkType: hard + "ip-regex@npm:^4.1.0": version: 4.3.0 resolution: "ip-regex@npm:4.3.0" @@ -27352,7 +28361,7 @@ __metadata: languageName: node linkType: hard -"ipaddr.js@npm:1.9.1": +"ipaddr.js@npm:1.9.1, ipaddr.js@npm:^1.9.0": version: 1.9.1 resolution: "ipaddr.js@npm:1.9.1" checksum: f88d3825981486f5a1942414c8d77dd6674dd71c065adcfa46f578d677edcb99fda25af42675cb59db492fdf427b34a5abfcde3982da11a8fd83a500b41cfe77 @@ -27507,7 +28516,7 @@ __metadata: languageName: node linkType: hard -"is-buffer@npm:^1.0.2, is-buffer@npm:^1.1.0, is-buffer@npm:^1.1.5, is-buffer@npm:~1.1.6": +"is-buffer@npm:^1.0.2, is-buffer@npm:^1.1.0, is-buffer@npm:^1.1.5, is-buffer@npm:~1.1.1, is-buffer@npm:~1.1.6": version: 1.1.6 resolution: "is-buffer@npm:1.1.6" checksum: 4a186d995d8bbf9153b4bd9ff9fd04ae75068fe695d29025d25e592d9488911eeece84eefbd8fa41b8ddcc0711058a71d4c466dcf6f1f6e1d83830052d8ca707 @@ -27724,6 +28733,13 @@ __metadata: languageName: node linkType: hard +"is-extglob@npm:^1.0.0": + version: 1.0.0 + resolution: "is-extglob@npm:1.0.0" + checksum: 5eea8517feeae5206547c0fc838c1416ec763b30093c286e1965a05f46b74a59ad391f912565f3b67c9c31cab4769ab9c35420e016b608acb47309be8d0d6e94 + languageName: node + linkType: hard + "is-extglob@npm:^2.1.0, is-extglob@npm:^2.1.1": version: 2.1.1 resolution: "is-extglob@npm:2.1.1" @@ -27802,6 +28818,15 @@ __metadata: languageName: node linkType: hard +"is-glob@npm:^2.0.0": + version: 2.0.1 + resolution: "is-glob@npm:2.0.1" + dependencies: + is-extglob: ^1.0.0 + checksum: 089f5f93640072491396a5f075ce73e949a90f35832b782bc49a6b7637d58e392d53cb0b395e059ccab70fcb82ff35d183f6f9ebbcb43227a1e02e3fed5430c9 + languageName: node + linkType: hard + "is-glob@npm:^3.1.0": version: 3.1.0 resolution: "is-glob@npm:3.1.0" @@ -27862,6 +28887,15 @@ __metadata: languageName: node linkType: hard +"is-invalid-path@npm:^0.1.0": + version: 0.1.0 + resolution: "is-invalid-path@npm:0.1.0" + dependencies: + is-glob: ^2.0.0 + checksum: 184dd40d9c7a765506e4fdcd7e664f86de68a4d5d429964b160255fe40de1b4323d1b4e6ea76ff87debf788a330e4f27cb1dfe5fc2420405e1c8a16a6ed87092 + languageName: node + linkType: hard + "is-lambda@npm:^1.0.1": version: 1.0.1 resolution: "is-lambda@npm:1.0.1" @@ -28266,6 +29300,15 @@ __metadata: languageName: node linkType: hard +"is-valid-path@npm:^0.1.1": + version: 0.1.1 + resolution: "is-valid-path@npm:0.1.1" + dependencies: + is-invalid-path: ^0.1.0 + checksum: d6e716a4a999c75e32ff91ff1ea684fc9e69de05747ec4aaae049460beb971c79f474629dd87a5b4b662691f8323c1920f1b6f1dcdcb39b07082f0ff77b71da6 + languageName: node + linkType: hard + "is-weakmap@npm:^2.0.1": version: 2.0.1 resolution: "is-weakmap@npm:2.0.1" @@ -28784,7 +29827,7 @@ __metadata: languageName: node linkType: hard -"jest-environment-node@npm:^29.2.1, jest-environment-node@npm:^29.6.3, jest-environment-node@npm:^29.7.0": +"jest-environment-node@npm:^29.6.3, jest-environment-node@npm:^29.7.0": version: 29.7.0 resolution: "jest-environment-node@npm:29.7.0" dependencies: @@ -29153,7 +30196,7 @@ __metadata: languageName: node linkType: hard -"jest-validate@npm:^29.2.1, jest-validate@npm:^29.6.3, jest-validate@npm:^29.7.0": +"jest-validate@npm:^29.6.3, jest-validate@npm:^29.7.0": version: 29.7.0 resolution: "jest-validate@npm:29.7.0" dependencies: @@ -29247,6 +30290,13 @@ __metadata: languageName: node linkType: hard +"jimp-compact@npm:0.16.1": + version: 0.16.1 + resolution: "jimp-compact@npm:0.16.1" + checksum: 5a1c62d70881b31f79ea65fecfe03617be0eb56139bc451f37e8972365c99ac3b52c5176c446ff27144c98ab664a99107ae08d347044e94e1de637f165b41a57 + languageName: node + linkType: hard + "jiti@npm:^1.18.2": version: 1.20.0 resolution: "jiti@npm:1.20.0" @@ -29289,17 +30339,24 @@ __metadata: languageName: node linkType: hard +"join-component@npm:^1.1.0": + version: 1.1.0 + resolution: "join-component@npm:1.1.0" + checksum: b904c2f98549e4195022caca3a7dc837f9706c670ff333f3d617f2aed23bce2841322a999734683b6ab8e202568ad810c11ff79b58a64df66888153f04750239 + languageName: node + linkType: hard + "joplin@workspace:packages/app-cli": version: 0.0.0-use.local resolution: "joplin@workspace:packages/app-cli" dependencies: - "@joplin/lib": ~3.1 - "@joplin/renderer": ~3.1 - "@joplin/tools": ~3.1 - "@joplin/utils": ~3.1 + "@joplin/lib": ~3.2 + "@joplin/renderer": ~3.2 + "@joplin/tools": ~3.2 + "@joplin/utils": ~3.2 "@types/fs-extra": 11.0.4 "@types/jest": 29.5.12 - "@types/node": 18.19.42 + "@types/node": 18.19.43 "@types/proper-lockfile": ^4.1.2 aws-sdk: 2.1340.0 chalk: 4.1.2 @@ -29435,7 +30492,7 @@ __metadata: languageName: node linkType: hard -"jsc-safe-url@npm:^0.2.2": +"jsc-safe-url@npm:^0.2.2, jsc-safe-url@npm:^0.2.4": version: 0.2.4 resolution: "jsc-safe-url@npm:0.2.4" checksum: 53b5741ba2c0a54da1722929dc80becb2c6fcc9525124fb6c2aec1a00f48e79afffd26816c278111e7b938e37ace029e33cbb8cdaa4ac1f528a87e58022284af @@ -29670,6 +30727,22 @@ __metadata: languageName: node linkType: hard +"json-schema-deref-sync@npm:^0.13.0": + version: 0.13.0 + resolution: "json-schema-deref-sync@npm:0.13.0" + dependencies: + clone: ^2.1.2 + dag-map: ~1.0.0 + is-valid-path: ^0.1.1 + lodash: ^4.17.13 + md5: ~2.2.0 + memory-cache: ~0.2.0 + traverse: ~0.6.6 + valid-url: ~1.0.9 + checksum: c6630b3ec37d0d43c8b75f4733fee304e93b3867f55190e779b2fb149a2f27c632694804ddbc1f56882cee8f6d92130855af061a1a941e63a20902455ac33426 + languageName: node + linkType: hard + "json-schema-traverse@npm:^0.4.1": version: 0.4.1 resolution: "json-schema-traverse@npm:0.4.1" @@ -30417,6 +31490,96 @@ __metadata: languageName: node linkType: hard +"lightningcss-darwin-arm64@npm:1.19.0": + version: 1.19.0 + resolution: "lightningcss-darwin-arm64@npm:1.19.0" + conditions: os=darwin & cpu=arm64 + languageName: node + linkType: hard + +"lightningcss-darwin-x64@npm:1.19.0": + version: 1.19.0 + resolution: "lightningcss-darwin-x64@npm:1.19.0" + conditions: os=darwin & cpu=x64 + languageName: node + linkType: hard + +"lightningcss-linux-arm-gnueabihf@npm:1.19.0": + version: 1.19.0 + resolution: "lightningcss-linux-arm-gnueabihf@npm:1.19.0" + conditions: os=linux & cpu=arm + languageName: node + linkType: hard + +"lightningcss-linux-arm64-gnu@npm:1.19.0": + version: 1.19.0 + resolution: "lightningcss-linux-arm64-gnu@npm:1.19.0" + conditions: os=linux & cpu=arm64 & libc=glibc + languageName: node + linkType: hard + +"lightningcss-linux-arm64-musl@npm:1.19.0": + version: 1.19.0 + resolution: "lightningcss-linux-arm64-musl@npm:1.19.0" + conditions: os=linux & cpu=arm64 & libc=musl + languageName: node + linkType: hard + +"lightningcss-linux-x64-gnu@npm:1.19.0": + version: 1.19.0 + resolution: "lightningcss-linux-x64-gnu@npm:1.19.0" + conditions: os=linux & cpu=x64 & libc=glibc + languageName: node + linkType: hard + +"lightningcss-linux-x64-musl@npm:1.19.0": + version: 1.19.0 + resolution: "lightningcss-linux-x64-musl@npm:1.19.0" + conditions: os=linux & cpu=x64 & libc=musl + languageName: node + linkType: hard + +"lightningcss-win32-x64-msvc@npm:1.19.0": + version: 1.19.0 + resolution: "lightningcss-win32-x64-msvc@npm:1.19.0" + conditions: os=win32 & cpu=x64 + languageName: node + linkType: hard + +"lightningcss@npm:~1.19.0": + version: 1.19.0 + resolution: "lightningcss@npm:1.19.0" + dependencies: + detect-libc: ^1.0.3 + lightningcss-darwin-arm64: 1.19.0 + lightningcss-darwin-x64: 1.19.0 + lightningcss-linux-arm-gnueabihf: 1.19.0 + lightningcss-linux-arm64-gnu: 1.19.0 + lightningcss-linux-arm64-musl: 1.19.0 + lightningcss-linux-x64-gnu: 1.19.0 + lightningcss-linux-x64-musl: 1.19.0 + lightningcss-win32-x64-msvc: 1.19.0 + dependenciesMeta: + lightningcss-darwin-arm64: + optional: true + lightningcss-darwin-x64: + optional: true + lightningcss-linux-arm-gnueabihf: + optional: true + lightningcss-linux-arm64-gnu: + optional: true + lightningcss-linux-arm64-musl: + optional: true + lightningcss-linux-x64-gnu: + optional: true + lightningcss-linux-x64-musl: + optional: true + lightningcss-win32-x64-msvc: + optional: true + checksum: c51de34b7379f9da391d0c1157893bb1484357d1ce2212a8c7943690d7a4fed7f2fa0d2dd7a92004b4444662011564ec7bf31f458a1638c856c529fe07285177 + languageName: node + linkType: hard + "lilconfig@npm:^2.0.3": version: 2.1.0 resolution: "lilconfig@npm:2.1.0" @@ -30829,7 +31992,7 @@ __metadata: languageName: node linkType: hard -"lodash@npm:4.17.21, lodash@npm:^4.17.11, lodash@npm:^4.17.12, lodash@npm:^4.17.14, lodash@npm:^4.17.15, lodash@npm:^4.17.19, lodash@npm:^4.17.20, lodash@npm:^4.17.21, lodash@npm:^4.2.1, lodash@npm:^4.7.0": +"lodash@npm:4.17.21, lodash@npm:^4.17.11, lodash@npm:^4.17.12, lodash@npm:^4.17.13, lodash@npm:^4.17.14, lodash@npm:^4.17.15, lodash@npm:^4.17.19, lodash@npm:^4.17.20, lodash@npm:^4.17.21, lodash@npm:^4.2.1, lodash@npm:^4.7.0": version: 4.17.21 resolution: "lodash@npm:4.17.21" checksum: eb835a2e51d381e561e508ce932ea50a8e5a68f4ebdd771ea240d3048244a8d13658acbd502cd4829768c56f2e16bdd4340b9ea141297d472517b83868e677f7 @@ -30843,6 +32006,15 @@ __metadata: languageName: node linkType: hard +"log-symbols@npm:^2.2.0": + version: 2.2.0 + resolution: "log-symbols@npm:2.2.0" + dependencies: + chalk: ^2.0.1 + checksum: 4c95e3b65f0352dbe91dc4989c10baf7a44e2ef5b0db7e6721e1476268e2b6f7090c3aa880d4f833a05c5c3ff18f4ec5215a09bd0099986d64a8186cfeb48ac8 + languageName: node + linkType: hard + "log-symbols@npm:^4.1.0": version: 4.1.0 resolution: "log-symbols@npm:4.1.0" @@ -31430,6 +32602,17 @@ __metadata: languageName: node linkType: hard +"md5-file@npm:^3.2.3": + version: 3.2.3 + resolution: "md5-file@npm:3.2.3" + dependencies: + buffer-alloc: ^1.1.0 + bin: + md5-file: cli.js + checksum: a3738274ee0c5ce21e7c14a4b60e5de6b298740f8a37eeb502bb97a056e3f19ea0871418b4dd45ca9c70d2f1d6c79a19e9a320fba1c129b196cdf671e544c450 + languageName: node + linkType: hard + "md5.js@npm:^1.3.4": version: 1.3.5 resolution: "md5.js@npm:1.3.5" @@ -31441,7 +32624,7 @@ __metadata: languageName: node linkType: hard -"md5@npm:2.3.0": +"md5@npm:2.3.0, md5@npm:^2.2.1": version: 2.3.0 resolution: "md5@npm:2.3.0" dependencies: @@ -31452,6 +32635,24 @@ __metadata: languageName: node linkType: hard +"md5@npm:~2.2.0": + version: 2.2.1 + resolution: "md5@npm:2.2.1" + dependencies: + charenc: ~0.0.1 + crypt: ~0.0.1 + is-buffer: ~1.1.1 + checksum: 2237e583f961d04d43c59c2f9383d1e47099427fa37f9dc50e8aec32e770f8b038ad9268c2523a7c8041ab6f4678a742ca533a7f670dbc2857c5b18388cf4d71 + languageName: node + linkType: hard + +"md5hex@npm:^1.0.0": + version: 1.0.0 + resolution: "md5hex@npm:1.0.0" + checksum: eabca53391ef32429f78fc5c83d7c7cebee9ee88db79854492a5e19de2880d4497523b4489abeeb920fcd5bae9ee7a6d8aa343d55ed91866b2d50e619047b639 + languageName: node + linkType: hard + "mdast-squeeze-paragraphs@npm:^4.0.0": version: 4.0.0 resolution: "mdast-squeeze-paragraphs@npm:4.0.0" @@ -31601,6 +32802,13 @@ __metadata: languageName: node linkType: hard +"memory-cache@npm:~0.2.0": + version: 0.2.0 + resolution: "memory-cache@npm:0.2.0" + checksum: 255c87fec360ce06818ca7aeb5850d798e14950a9fcea879d88e1f8d1f4a6cffb8ed16da54aa677f5ec8e47773fbe15775a1cdf837ac190e17e9fb4b71e87bee + languageName: node + linkType: hard + "meow@npm:^3.3.0": version: 3.7.0 resolution: "meow@npm:3.7.0" @@ -31767,17 +32975,6 @@ __metadata: languageName: node linkType: hard -"metro-babel-transformer@npm:0.76.9": - version: 0.76.9 - resolution: "metro-babel-transformer@npm:0.76.9" - dependencies: - "@babel/core": ^7.20.0 - hermes-parser: 0.12.0 - nullthrows: ^1.1.1 - checksum: 06e7578547c9a6f5d96b653e35ade75d7b7b33ab76fcb731e7525611d2e80277c0ef8532280a3f99facb03e0744410bd052621b846bd7fc690d86f3bdee80413 - languageName: node - linkType: hard - "metro-babel-transformer@npm:0.80.6": version: 0.80.6 resolution: "metro-babel-transformer@npm:0.80.6" @@ -31796,13 +32993,6 @@ __metadata: languageName: node linkType: hard -"metro-cache-key@npm:0.76.9": - version: 0.76.9 - resolution: "metro-cache-key@npm:0.76.9" - checksum: 9056f4fd04da6bb403df970058303645cc1045bc941b06e0c0b778ef9a592d2ce7d7c3b9e4a7b86d40151a24af7d954737927aa26cbc9c395d0a0043e58d83e7 - languageName: node - linkType: hard - "metro-cache-key@npm:0.80.6": version: 0.80.6 resolution: "metro-cache-key@npm:0.80.6" @@ -31820,16 +33010,6 @@ __metadata: languageName: node linkType: hard -"metro-cache@npm:0.76.9": - version: 0.76.9 - resolution: "metro-cache@npm:0.76.9" - dependencies: - metro-core: 0.76.9 - rimraf: ^3.0.2 - checksum: 47a25ebc511d07e5577e69800b8906c070f6cd66e565cabd42784e007dc815558ebd30b2618fbac93880775d29e56de51afb89d2a772298c71af46b6fc6d9a76 - languageName: node - linkType: hard - "metro-cache@npm:0.80.6": version: 0.80.6 resolution: "metro-cache@npm:0.80.6" @@ -31854,21 +33034,6 @@ __metadata: languageName: node linkType: hard -"metro-config@npm:0.76.9, metro-config@npm:^0.76.9": - version: 0.76.9 - resolution: "metro-config@npm:0.76.9" - dependencies: - connect: ^3.6.5 - cosmiconfig: ^5.0.5 - jest-validate: ^29.2.1 - metro: 0.76.9 - metro-cache: 0.76.9 - metro-core: 0.76.9 - metro-runtime: 0.76.9 - checksum: a46a5fd8ff5ae880e21194f8ee385240173712968ac0da6388e58ed056e0cb0d931d2aaf69f65641e525dcc5bcde035338be8e5ff345a9d078772611e9690e7c - languageName: node - linkType: hard - "metro-config@npm:0.80.6, metro-config@npm:^0.80.3": version: 0.80.6 resolution: "metro-config@npm:0.80.6" @@ -31894,16 +33059,6 @@ __metadata: languageName: node linkType: hard -"metro-core@npm:0.76.9, metro-core@npm:^0.76.9": - version: 0.76.9 - resolution: "metro-core@npm:0.76.9" - dependencies: - lodash.throttle: ^4.1.1 - metro-resolver: 0.76.9 - checksum: 6ca96a68808d7cee355872b430fee627ff969f1b315eb8adb567c82504aa7306a5d0ebc99fdb5806a1449afac38514037ef8f70e24bafbda5518ad2b043c3d15 - languageName: node - linkType: hard - "metro-core@npm:0.80.6, metro-core@npm:^0.80.3": version: 0.80.6 resolution: "metro-core@npm:0.80.6" @@ -31938,30 +33093,6 @@ __metadata: languageName: node linkType: hard -"metro-file-map@npm:0.76.9": - version: 0.76.9 - resolution: "metro-file-map@npm:0.76.9" - dependencies: - anymatch: ^3.0.3 - debug: ^2.2.0 - fb-watchman: ^2.0.0 - fsevents: ^2.3.2 - graceful-fs: ^4.2.4 - invariant: ^2.2.4 - jest-regex-util: ^27.0.6 - jest-util: ^27.2.0 - jest-worker: ^27.2.0 - micromatch: ^4.0.4 - node-abort-controller: ^3.1.1 - nullthrows: ^1.1.1 - walker: ^1.0.7 - dependenciesMeta: - fsevents: - optional: true - checksum: b377a46f2e5037ecaae35f7d1210300e03be1d28a7e5a3a24b24120488be3d7af20b865523a66bddf700da9eebbe0f6c8cf1693c80253968bbd44cd7d4228f42 - languageName: node - linkType: hard - "metro-file-map@npm:0.80.6": version: 0.80.6 resolution: "metro-file-map@npm:0.80.6" @@ -32005,30 +33136,6 @@ __metadata: languageName: node linkType: hard -"metro-inspector-proxy@npm:0.76.9": - version: 0.76.9 - resolution: "metro-inspector-proxy@npm:0.76.9" - dependencies: - connect: ^3.6.5 - debug: ^2.2.0 - node-fetch: ^2.2.0 - ws: ^7.5.1 - yargs: ^17.6.2 - bin: - metro-inspector-proxy: src/cli.js - checksum: 8c46f907d301da2b733109c4e4f271c0e34591733bbed3329a16aedbb8aeae975178b6222380a930d0322c8e4e4bac989bffc95c438ffa7b71f36c6e3d8821b5 - languageName: node - linkType: hard - -"metro-minify-terser@npm:0.76.9": - version: 0.76.9 - resolution: "metro-minify-terser@npm:0.76.9" - dependencies: - terser: ^5.15.0 - checksum: 66f1ffe75635311fe504b66f4841a6985440993092261e6066d6b23b66d9d08871ba06d6e2cae971b67445f3b9040cda4a757f897cdf54fbad954191f9d971e4 - languageName: node - linkType: hard - "metro-minify-terser@npm:0.80.6": version: 0.80.6 resolution: "metro-minify-terser@npm:0.80.6" @@ -32047,15 +33154,6 @@ __metadata: languageName: node linkType: hard -"metro-minify-uglify@npm:0.76.9": - version: 0.76.9 - resolution: "metro-minify-uglify@npm:0.76.9" - dependencies: - uglify-es: ^3.1.9 - checksum: d2da815a006cafaf6373d3fa9256929aeada738f9abbd41cc5acbf47cb1ed1aac5a0e71f11b87ca375e313da790e8ad7a4e8163a07983d8d34d3feaeda8729cf - languageName: node - linkType: hard - "metro-react-native-babel-preset@npm:0.72.3": version: 0.72.3 resolution: "metro-react-native-babel-preset@npm:0.72.3" @@ -32105,55 +33203,6 @@ __metadata: languageName: node linkType: hard -"metro-react-native-babel-preset@npm:0.76.9": - version: 0.76.9 - resolution: "metro-react-native-babel-preset@npm:0.76.9" - dependencies: - "@babel/core": ^7.20.0 - "@babel/plugin-proposal-async-generator-functions": ^7.0.0 - "@babel/plugin-proposal-class-properties": ^7.18.0 - "@babel/plugin-proposal-export-default-from": ^7.0.0 - "@babel/plugin-proposal-nullish-coalescing-operator": ^7.18.0 - "@babel/plugin-proposal-numeric-separator": ^7.0.0 - "@babel/plugin-proposal-object-rest-spread": ^7.20.0 - "@babel/plugin-proposal-optional-catch-binding": ^7.0.0 - "@babel/plugin-proposal-optional-chaining": ^7.20.0 - "@babel/plugin-syntax-dynamic-import": ^7.8.0 - "@babel/plugin-syntax-export-default-from": ^7.0.0 - "@babel/plugin-syntax-flow": ^7.18.0 - "@babel/plugin-syntax-nullish-coalescing-operator": ^7.0.0 - "@babel/plugin-syntax-optional-chaining": ^7.0.0 - "@babel/plugin-transform-arrow-functions": ^7.0.0 - "@babel/plugin-transform-async-to-generator": ^7.20.0 - "@babel/plugin-transform-block-scoping": ^7.0.0 - "@babel/plugin-transform-classes": ^7.0.0 - "@babel/plugin-transform-computed-properties": ^7.0.0 - "@babel/plugin-transform-destructuring": ^7.20.0 - "@babel/plugin-transform-flow-strip-types": ^7.20.0 - "@babel/plugin-transform-function-name": ^7.0.0 - "@babel/plugin-transform-literals": ^7.0.0 - "@babel/plugin-transform-modules-commonjs": ^7.0.0 - "@babel/plugin-transform-named-capturing-groups-regex": ^7.0.0 - "@babel/plugin-transform-parameters": ^7.0.0 - "@babel/plugin-transform-react-display-name": ^7.0.0 - "@babel/plugin-transform-react-jsx": ^7.0.0 - "@babel/plugin-transform-react-jsx-self": ^7.0.0 - "@babel/plugin-transform-react-jsx-source": ^7.0.0 - "@babel/plugin-transform-runtime": ^7.0.0 - "@babel/plugin-transform-shorthand-properties": ^7.0.0 - "@babel/plugin-transform-spread": ^7.0.0 - "@babel/plugin-transform-sticky-regex": ^7.0.0 - "@babel/plugin-transform-typescript": ^7.5.0 - "@babel/plugin-transform-unicode-regex": ^7.0.0 - "@babel/template": ^7.0.0 - babel-plugin-transform-flow-enums: ^0.0.2 - react-refresh: ^0.4.0 - peerDependencies: - "@babel/core": "*" - checksum: 344fbcbcf82a9f8425a38a910716777cf45619d7b61a1a935a903f751e3a335ff8a54f80ba9fd9a16b96ac74e68f77760cb09d2c40ec6faf113308c91b863a9e - languageName: node - linkType: hard - "metro-react-native-babel-transformer@npm:0.72.3": version: 0.72.3 resolution: "metro-react-native-babel-transformer@npm:0.72.3" @@ -32171,21 +33220,6 @@ __metadata: languageName: node linkType: hard -"metro-react-native-babel-transformer@npm:^0.76.9": - version: 0.76.9 - resolution: "metro-react-native-babel-transformer@npm:0.76.9" - dependencies: - "@babel/core": ^7.20.0 - babel-preset-fbjs: ^3.4.0 - hermes-parser: 0.12.0 - metro-react-native-babel-preset: 0.76.9 - nullthrows: ^1.1.1 - peerDependencies: - "@babel/core": "*" - checksum: bb4427ed2225f72667f82e0ec5317843582628d35f2a7c329ba6d22eb9ee20726403cf2ab869ee6e9056e80576e5a05a55a92d169ac3276227bb6a0159caadeb - languageName: node - linkType: hard - "metro-resolver@npm:0.72.3": version: 0.72.3 resolution: "metro-resolver@npm:0.72.3" @@ -32195,13 +33229,6 @@ __metadata: languageName: node linkType: hard -"metro-resolver@npm:0.76.9, metro-resolver@npm:^0.76.9": - version: 0.76.9 - resolution: "metro-resolver@npm:0.76.9" - checksum: 340b689582698f87f54cb06dc06f6ad8adaf4bd3a35931c5a8e46754c2ae73d82df29c7e13e87f0326175b04edf61b2a1d012d6f7b31e85a500218952badc6c3 - languageName: node - linkType: hard - "metro-resolver@npm:0.80.6": version: 0.80.6 resolution: "metro-resolver@npm:0.80.6" @@ -32219,16 +33246,6 @@ __metadata: languageName: node linkType: hard -"metro-runtime@npm:0.76.9, metro-runtime@npm:^0.76.9": - version: 0.76.9 - resolution: "metro-runtime@npm:0.76.9" - dependencies: - "@babel/runtime": ^7.0.0 - react-refresh: ^0.4.0 - checksum: e82db2688f05c064c6768d389e33476b62d1106ea5fd630e7a795f889d40c17ac9db9a1fe5d46fb6972559cb90e41f00b2f7f3cb12e24c969ad9885682928817 - languageName: node - linkType: hard - "metro-runtime@npm:0.80.6": version: 0.80.6 resolution: "metro-runtime@npm:0.80.6" @@ -32263,22 +33280,6 @@ __metadata: languageName: node linkType: hard -"metro-source-map@npm:0.76.9, metro-source-map@npm:^0.76.9": - version: 0.76.9 - resolution: "metro-source-map@npm:0.76.9" - dependencies: - "@babel/traverse": ^7.20.0 - "@babel/types": ^7.20.0 - invariant: ^2.2.4 - metro-symbolicate: 0.76.9 - nullthrows: ^1.1.1 - ob1: 0.76.9 - source-map: ^0.5.6 - vlq: ^1.0.0 - checksum: e6b2ad1a9da66bbd1ed23fa78f064415557db9328c01661948fcfd8617472ebcdab0b027c0bb86085e66a4c4f415d47656ee1ad99569e53a95d8ea0d999fb864 - languageName: node - linkType: hard - "metro-source-map@npm:0.80.6": version: 0.80.6 resolution: "metro-source-map@npm:0.80.6" @@ -32327,22 +33328,6 @@ __metadata: languageName: node linkType: hard -"metro-symbolicate@npm:0.76.9": - version: 0.76.9 - resolution: "metro-symbolicate@npm:0.76.9" - dependencies: - invariant: ^2.2.4 - metro-source-map: 0.76.9 - nullthrows: ^1.1.1 - source-map: ^0.5.6 - through2: ^2.0.1 - vlq: ^1.0.0 - bin: - metro-symbolicate: src/index.js - checksum: 386ffd4e6fb2483d91e16497b9eac130a06d3618a19e8133c312254427b4ea8ec2d5bed7e12c647d4ab9b194c976814406324c83d28ca63366e641ffb9b558b3 - languageName: node - linkType: hard - "metro-symbolicate@npm:0.80.6": version: 0.80.6 resolution: "metro-symbolicate@npm:0.80.6" @@ -32388,19 +33373,6 @@ __metadata: languageName: node linkType: hard -"metro-transform-plugins@npm:0.76.9": - version: 0.76.9 - resolution: "metro-transform-plugins@npm:0.76.9" - dependencies: - "@babel/core": ^7.20.0 - "@babel/generator": ^7.20.0 - "@babel/template": ^7.0.0 - "@babel/traverse": ^7.20.0 - nullthrows: ^1.1.1 - checksum: 669e34052a31a535d4b9e0a419641fedcc9db05eac0c2f6a685a6dc69d01f555534e9ff1595fb1d9ad2ccf046e4e9f817a4b5faac9b5189c17bba4611d6c873d - languageName: node - linkType: hard - "metro-transform-plugins@npm:0.80.6": version: 0.80.6 resolution: "metro-transform-plugins@npm:0.80.6" @@ -32435,27 +33407,6 @@ __metadata: languageName: node linkType: hard -"metro-transform-worker@npm:0.76.9": - version: 0.76.9 - resolution: "metro-transform-worker@npm:0.76.9" - dependencies: - "@babel/core": ^7.20.0 - "@babel/generator": ^7.20.0 - "@babel/parser": ^7.20.0 - "@babel/types": ^7.20.0 - babel-preset-fbjs: ^3.4.0 - metro: 0.76.9 - metro-babel-transformer: 0.76.9 - metro-cache: 0.76.9 - metro-cache-key: 0.76.9 - metro-minify-terser: 0.76.9 - metro-source-map: 0.76.9 - metro-transform-plugins: 0.76.9 - nullthrows: ^1.1.1 - checksum: 62d7d53fd2fe17de3d6f91f32444755df446625c13abad3ce6851f65e39c80809e726d54595cd95481b3c6211a368ff71d305df28674d04492e230db93932b8d - languageName: node - linkType: hard - "metro-transform-worker@npm:0.80.6": version: 0.80.6 resolution: "metro-transform-worker@npm:0.80.6" @@ -32536,63 +33487,6 @@ __metadata: languageName: node linkType: hard -"metro@npm:0.76.9, metro@npm:^0.76.9": - version: 0.76.9 - resolution: "metro@npm:0.76.9" - dependencies: - "@babel/code-frame": ^7.0.0 - "@babel/core": ^7.20.0 - "@babel/generator": ^7.20.0 - "@babel/parser": ^7.20.0 - "@babel/template": ^7.0.0 - "@babel/traverse": ^7.20.0 - "@babel/types": ^7.20.0 - accepts: ^1.3.7 - async: ^3.2.2 - chalk: ^4.0.0 - ci-info: ^2.0.0 - connect: ^3.6.5 - debug: ^2.2.0 - denodeify: ^1.2.1 - error-stack-parser: ^2.0.6 - graceful-fs: ^4.2.4 - hermes-parser: 0.12.0 - image-size: ^1.0.2 - invariant: ^2.2.4 - jest-worker: ^27.2.0 - jsc-safe-url: ^0.2.2 - lodash.throttle: ^4.1.1 - metro-babel-transformer: 0.76.9 - metro-cache: 0.76.9 - metro-cache-key: 0.76.9 - metro-config: 0.76.9 - metro-core: 0.76.9 - metro-file-map: 0.76.9 - metro-inspector-proxy: 0.76.9 - metro-minify-uglify: 0.76.9 - metro-react-native-babel-preset: 0.76.9 - metro-resolver: 0.76.9 - metro-runtime: 0.76.9 - metro-source-map: 0.76.9 - metro-symbolicate: 0.76.9 - metro-transform-plugins: 0.76.9 - metro-transform-worker: 0.76.9 - mime-types: ^2.1.27 - node-fetch: ^2.2.0 - nullthrows: ^1.1.1 - rimraf: ^3.0.2 - serialize-error: ^2.1.0 - source-map: ^0.5.6 - strip-ansi: ^6.0.0 - throat: ^5.0.0 - ws: ^7.5.1 - yargs: ^17.6.2 - bin: - metro: src/cli.js - checksum: 48bb3fe16ea6be22796f520cc95c34ca625678fe48bf0e5b73e974b213680c63200c0e3daa13c59131e31c3b10d9232d2bf1eab399d7fac1a39cbabf76cd4622 - languageName: node - linkType: hard - "metro@npm:0.80.6, metro@npm:^0.80.3": version: 0.80.6 resolution: "metro@npm:0.80.6" @@ -33714,7 +34608,7 @@ __metadata: languageName: node linkType: hard -"mz@npm:^2.5.0": +"mz@npm:^2.5.0, mz@npm:^2.7.0": version: 2.7.0 resolution: "mz@npm:2.7.0" dependencies: @@ -33839,6 +34733,13 @@ __metadata: languageName: node linkType: hard +"nested-error-stacks@npm:~2.0.1": + version: 2.0.1 + resolution: "nested-error-stacks@npm:2.0.1" + checksum: 8430d7d80ad69b1add2992ee2992a363db6c1a26a54740963bc99a004c5acb1d2a67049397062eab2caa3a312b4da89a0b85de3bdf82d7d472a6baa166311fe6 + languageName: node + linkType: hard + "netmask@npm:^2.0.2": version: 2.0.2 resolution: "netmask@npm:2.0.2" @@ -34034,7 +34935,7 @@ __metadata: languageName: node linkType: hard -"node-forge@npm:^1": +"node-forge@npm:^1, node-forge@npm:^1.2.1, node-forge@npm:^1.3.1": version: 1.3.1 resolution: "node-forge@npm:1.3.1" checksum: 08fb072d3d670599c89a1704b3e9c649ff1b998256737f0e06fbd1a5bf41cae4457ccaee32d95052d80bbafd9ffe01284e078c8071f0267dc9744e51c5ed42a9 @@ -34490,6 +35391,18 @@ __metadata: languageName: node linkType: hard +"npm-package-arg@npm:^7.0.0": + version: 7.0.0 + resolution: "npm-package-arg@npm:7.0.0" + dependencies: + hosted-git-info: ^3.0.2 + osenv: ^0.1.5 + semver: ^5.6.0 + validate-npm-package-name: ^3.0.0 + checksum: 5b777c1177c262c2b3ea27248b77aeda401b9d6a79f6c17d32bc7be020a1daadfcb812d5a44b34977f60b220efc1590e7b84b277e4f6cb0a396b01fad06c5f33 + languageName: node + linkType: hard + "npm-package-json-lint@npm:7.1.0": version: 7.1.0 resolution: "npm-package-json-lint@npm:7.1.0" @@ -34750,13 +35663,6 @@ __metadata: languageName: node linkType: hard -"ob1@npm:0.76.9": - version: 0.76.9 - resolution: "ob1@npm:0.76.9" - checksum: b7ed126985e766a1d00dc1826006ca4d724628f74f917678f63c664efadb2441283e09cd67dce0f1c0b765bb169159d073ad6a9b62959a01cc8fd37687252b31 - languageName: node - linkType: hard - "ob1@npm:0.80.6": version: 0.80.6 resolution: "ob1@npm:0.80.6" @@ -35143,7 +36049,7 @@ __metadata: languageName: node linkType: hard -"open@npm:8.4.2, open@npm:^8.0.9, open@npm:^8.4.0": +"open@npm:8.4.2, open@npm:^8.0.4, open@npm:^8.0.9, open@npm:^8.3.0, open@npm:^8.4.0": version: 8.4.2 resolution: "open@npm:8.4.2" dependencies: @@ -35243,6 +36149,20 @@ __metadata: languageName: node linkType: hard +"ora@npm:3.4.0, ora@npm:^3.4.0": + version: 3.4.0 + resolution: "ora@npm:3.4.0" + dependencies: + chalk: ^2.4.2 + cli-cursor: ^2.1.0 + cli-spinners: ^2.0.0 + log-symbols: ^2.2.0 + strip-ansi: ^5.2.0 + wcwidth: ^1.0.1 + checksum: f1f8e7f290b766276dcd19ddf2159a1971b1ec37eec4a5556b8f5e4afbe513a965ed65c183d38956724263b6a20989b3d8fb71b95ac4a2d6a01db2f1ed8899e4 + languageName: node + linkType: hard + "ora@npm:^5.1.0, ora@npm:^5.4.1": version: 5.4.1 resolution: "ora@npm:5.4.1" @@ -35835,6 +36755,15 @@ __metadata: languageName: node linkType: hard +"parse-png@npm:^2.1.0": + version: 2.1.0 + resolution: "parse-png@npm:2.1.0" + dependencies: + pngjs: ^3.3.0 + checksum: 0c6b6c42c8830cd16f6f9e9aedafd53111c0ad2ff350ba79c629996887567558f5639ad0c95764f96f7acd1f9ff63d4ac73737e80efa3911a6de9839ee520c96 + languageName: node + linkType: hard + "parse-url@npm:^6.0.0": version: 6.0.0 resolution: "parse-url@npm:6.0.0" @@ -35915,6 +36844,16 @@ __metadata: languageName: node linkType: hard +"password-prompt@npm:^1.0.4": + version: 1.1.3 + resolution: "password-prompt@npm:1.1.3" + dependencies: + ansi-escapes: ^4.3.2 + cross-spawn: ^7.0.3 + checksum: 9a5fdbd7360db896809704c141acfe9258450a9982c4c177b82a1e6c69d204800cdab6064abac6736bd7d31142c80108deedf4484146594747cb3ce776816e97 + languageName: node + linkType: hard + "patch-console@npm:^1.0.0": version: 1.0.0 resolution: "patch-console@npm:1.0.0" @@ -36018,7 +36957,7 @@ __metadata: languageName: node linkType: hard -"path-parse@npm:^1.0.6, path-parse@npm:^1.0.7": +"path-parse@npm:^1.0.5, path-parse@npm:^1.0.6, path-parse@npm:^1.0.7": version: 1.0.7 resolution: "path-parse@npm:1.0.7" checksum: 49abf3d81115642938a8700ec580da6e830dde670be21893c62f4e10bd7dd4c3742ddc603fe24f898cba7eb0c6bc1777f8d9ac14185d34540c6d4d80cd9cae8a @@ -36315,6 +37254,13 @@ __metadata: languageName: node linkType: hard +"picocolors@npm:^1.1.0": + version: 1.1.0 + resolution: "picocolors@npm:1.1.0" + checksum: a64d653d3a188119ff45781dfcdaeedd7625583f45280aea33fcb032c7a0d3959f2368f9b192ad5e8aade75b74dbd954ffe3106c158509a45e4c18ab379a2acd + languageName: node + linkType: hard + "picomatch@npm:^2.0.4, picomatch@npm:^2.2.1, picomatch@npm:^2.2.3": version: 2.3.0 resolution: "picomatch@npm:2.3.0" @@ -36329,6 +37275,13 @@ __metadata: languageName: node linkType: hard +"picomatch@npm:^3.0.1": + version: 3.0.1 + resolution: "picomatch@npm:3.0.1" + checksum: b7fe18174bcc05bbf0ea09cc85623ae395676b3e6bc25636d4c20db79a948586237e429905453bf1ba385bc7a7aa5b56f1b351680e650d2b5c305ceb98dfc914 + languageName: node + linkType: hard + "pidtree@npm:~0.6.0": version: 0.6.0 resolution: "pidtree@npm:0.6.0" @@ -36400,6 +37353,13 @@ __metadata: languageName: node linkType: hard +"pirates@npm:^4.0.1": + version: 4.0.6 + resolution: "pirates@npm:4.0.6" + checksum: 46a65fefaf19c6f57460388a5af9ab81e3d7fd0e7bc44ca59d753cb5c4d0df97c6c6e583674869762101836d68675f027d60f841c105d72734df9dfca97cbcc6 + languageName: node + linkType: hard + "pirates@npm:^4.0.4, pirates@npm:^4.0.5": version: 4.0.5 resolution: "pirates@npm:4.0.5" @@ -36612,6 +37572,13 @@ __metadata: languageName: node linkType: hard +"pngjs@npm:^3.3.0": + version: 3.4.0 + resolution: "pngjs@npm:3.4.0" + checksum: 8bd40bd698abd16b72c97b85cb858c80894fbedc76277ce72a784aa441e14795d45d9856e97333ca469b34b67528860ffc8a7317ca6beea349b645366df00bcd + languageName: node + linkType: hard + "pngjs@npm:^5.0.0": version: 5.0.0 resolution: "pngjs@npm:5.0.0" @@ -37214,6 +38181,17 @@ __metadata: languageName: node linkType: hard +"postcss@npm:~8.4.32": + version: 8.4.47 + resolution: "postcss@npm:8.4.47" + dependencies: + nanoid: ^3.3.7 + picocolors: ^1.1.0 + source-map-js: ^1.2.1 + checksum: f78440a9d8f97431dd2ab1ab8e1de64f12f3eff38a3d8d4a33919b96c381046a314658d2de213a5fa5eb296b656de76a3ec269fdea27f16d5ab465b916a0f52c + languageName: node + linkType: hard + "postgres-array@npm:~2.0.0": version: 2.0.0 resolution: "postgres-array@npm:2.0.0" @@ -37517,7 +38495,7 @@ __metadata: languageName: node linkType: hard -"progress@npm:^2.0.3": +"progress@npm:2.0.3, progress@npm:^2.0.3": version: 2.0.3 resolution: "progress@npm:2.0.3" checksum: f67403fe7b34912148d9252cb7481266a354bd99ce82c835f79070643bb3c6583d10dbcfda4d41e04bbc1d8437e9af0fb1e1f2135727878f5308682a579429b7 @@ -37578,7 +38556,7 @@ __metadata: languageName: node linkType: hard -"prompts@npm:^2.0.1, prompts@npm:^2.4.0, prompts@npm:^2.4.2": +"prompts@npm:^2.0.1, prompts@npm:^2.3.2, prompts@npm:^2.4.0, prompts@npm:^2.4.2": version: 2.4.2 resolution: "prompts@npm:2.4.2" dependencies: @@ -37823,6 +38801,15 @@ __metadata: languageName: node linkType: hard +"qrcode-terminal@npm:0.11.0": + version: 0.11.0 + resolution: "qrcode-terminal@npm:0.11.0" + bin: + qrcode-terminal: ./bin/qrcode-terminal.js + checksum: ad146ea1e339e1745402a3ea131631f64f40f0d1ff9cc6bd9c21677feaa1ca6dcd32eadf188fd3febdab8bf6191b3d24d533454903a72543645a72820e4d324c + languageName: node + linkType: hard + "qs@npm:6.11.0, qs@npm:^6.10.3": version: 6.11.0 resolution: "qs@npm:6.11.0" @@ -38049,7 +39036,7 @@ __metadata: languageName: node linkType: hard -"rc@npm:1.2.8, rc@npm:^1.2.7, rc@npm:^1.2.8": +"rc@npm:1.2.8, rc@npm:^1.2.7, rc@npm:^1.2.8, rc@npm:~1.2.7": version: 1.2.8 resolution: "rc@npm:1.2.8" dependencies: @@ -38158,16 +39145,6 @@ __metadata: languageName: node linkType: hard -"react-devtools-core@npm:^4.27.2": - version: 4.28.5 - resolution: "react-devtools-core@npm:4.28.5" - dependencies: - shell-quote: ^1.6.1 - ws: ^7 - checksum: d8e4b32ffcfe1ada5c9f7decffd04afc4707a3d6261953a92b8aed1c8abe15cd57d6eb4ce711f842180a2f5c60d2947209e3c1202f7ea29303ee150c55da59e0 - languageName: node - linkType: hard - "react-devtools-core@npm:^5.0.0": version: 5.2.0 resolution: "react-devtools-core@npm:5.2.0" @@ -38319,24 +39296,6 @@ __metadata: languageName: node linkType: hard -"react-native-camera@npm:4.2.1": - version: 4.2.1 - resolution: "react-native-camera@npm:4.2.1" - dependencies: - prop-types: ^15.6.2 - checksum: 0e84ce657774694d1cc49395c43a8f2caabc03df36aa77aacfb5c797ad8cfe0368f4807deccc54e82ff2b193e8c2d1ce7ad504eedf7a9fc4719b38e39958a804 - languageName: node - linkType: hard - -"react-native-camera@patch:react-native-camera@npm%3A4.2.1#./.yarn/patches/react-native-camera-npm-4.2.1-24b2600a7e.patch::locator=root%40workspace%3A.": - version: 4.2.1 - resolution: "react-native-camera@patch:react-native-camera@npm%3A4.2.1#./.yarn/patches/react-native-camera-npm-4.2.1-24b2600a7e.patch::version=4.2.1&hash=e9c70e&locator=root%40workspace%3A." - dependencies: - prop-types: ^15.6.2 - checksum: 09a95a91cf3669c86083980f9dc1b4270d1d7f53d29ae3f3f69a44c99abf5380d5bcc816006826a888bef8b17cce1d75aff09779c288bcabe22671ab8dae5f37 - languageName: node - linkType: hard - "react-native-codegen@npm:^0.70.6": version: 0.70.6 resolution: "react-native-codegen@npm:0.70.6" @@ -38530,18 +39489,19 @@ __metadata: languageName: node linkType: hard -"react-native-quick-crypto@npm:0.7.2": - version: 0.7.2 - resolution: "react-native-quick-crypto@npm:0.7.2" +"react-native-quick-crypto@npm:0.7.5": + version: 0.7.5 + resolution: "react-native-quick-crypto@npm:0.7.5" dependencies: "@craftzdog/react-native-buffer": ^6.0.5 events: ^3.3.0 - react: ^18.2.0 - react-native: ^0.72.7 readable-stream: ^4.5.2 string_decoder: ^1.3.0 util: ^0.12.5 - checksum: 85c3a4b854bfaeb8423f19a76f7aad5e6d183fd70876772639f0e976efcd94dfa776457111cd69cdbfe0dfba6027b2a472a63945da58968d289d78cbd1d13bd6 + peerDependencies: + react: "*" + react-native: "*" + checksum: 07f5abc4ddf7fbc8d5bfa9b459f04a7e1fbc3afe9b1add8e07d0918401abb2a8a987da00741b2baa4e94d2125cec10b3a77c4136250a20f6f3376cefba048135 languageName: node linkType: hard @@ -38783,55 +39743,6 @@ __metadata: languageName: node linkType: hard -"react-native@npm:^0.72.7": - version: 0.72.17 - resolution: "react-native@npm:0.72.17" - dependencies: - "@jest/create-cache-key-function": ^29.2.1 - "@react-native-community/cli": ^11.4.1 - "@react-native-community/cli-platform-android": ^11.4.1 - "@react-native-community/cli-platform-ios": ^11.4.1 - "@react-native/assets-registry": ^0.72.0 - "@react-native/codegen": ^0.72.8 - "@react-native/gradle-plugin": ^0.72.11 - "@react-native/js-polyfills": ^0.72.1 - "@react-native/normalize-colors": ^0.72.0 - "@react-native/virtualized-lists": ^0.72.8 - abort-controller: ^3.0.0 - anser: ^1.4.9 - ansi-regex: ^5.0.0 - base64-js: ^1.1.2 - deprecated-react-native-prop-types: ^4.2.3 - event-target-shim: ^5.0.1 - flow-enums-runtime: ^0.0.5 - invariant: ^2.2.4 - jest-environment-node: ^29.2.1 - jsc-android: ^250231.0.0 - memoize-one: ^5.0.0 - metro-runtime: ^0.76.9 - metro-source-map: ^0.76.9 - mkdirp: ^0.5.1 - nullthrows: ^1.1.1 - pretty-format: ^26.5.2 - promise: ^8.3.0 - react-devtools-core: ^4.27.2 - react-refresh: ^0.4.0 - react-shallow-renderer: ^16.15.0 - regenerator-runtime: ^0.13.2 - scheduler: 0.24.0-canary-efb381bbf-20230505 - stacktrace-parser: ^0.1.10 - use-sync-external-store: ^1.0.0 - whatwg-fetch: ^3.0.0 - ws: ^6.2.2 - yargs: ^17.6.2 - peerDependencies: - react: 18.2.0 - bin: - react-native: cli.js - checksum: 3b5162d92dc6d290e47caea0895ce1bb178f267851d0c729cb23cce78946b43fc2bc415436ef2a1a6d940ed6f6b28e8937fc71671bdd60f7a0e54544f7f34043 - languageName: node - linkType: hard - "react-native@patch:react-native@npm%3A0.74.1#./.yarn/patches/react-native-npm-0.74.1-754c02ae9e.patch::locator=root%40workspace%3A.": version: 0.74.1 resolution: "react-native@patch:react-native@npm%3A0.74.1#./.yarn/patches/react-native-npm-0.74.1-754c02ae9e.patch::version=0.74.1&hash=51a96c&locator=root%40workspace%3A." @@ -38937,6 +39848,13 @@ __metadata: languageName: node linkType: hard +"react-refresh@npm:^0.14.2": + version: 0.14.2 + resolution: "react-refresh@npm:0.14.2" + checksum: d80db4bd40a36dab79010dc8aa317a5b931f960c0d83c4f3b81f0552cbcf7f29e115b84bb7908ec6a1eb67720fff7023084eff73ece8a7ddc694882478464382 + languageName: node + linkType: hard + "react-refresh@npm:^0.4.0": version: 0.4.3 resolution: "react-refresh@npm:0.4.3" @@ -39090,7 +40008,7 @@ __metadata: languageName: node linkType: hard -"react@npm:18.3.1, react@npm:^18.2.0": +"react@npm:18.3.1": version: 18.3.1 resolution: "react@npm:18.3.1" dependencies: @@ -39829,6 +40747,13 @@ __metadata: languageName: node linkType: hard +"remove-trailing-slash@npm:^0.1.0": + version: 0.1.1 + resolution: "remove-trailing-slash@npm:0.1.1" + checksum: dd200c6b7d6f2b49d12b3eff3abc7089917e8a268cefcd5bf67ff23f8c2ad9f866fbe2f3566e1a8dbdc4f4b1171e2941f7dd00852f8de549bb73c3df53b09d96 + languageName: node + linkType: hard + "renderkid@npm:^3.0.0": version: 3.0.0 resolution: "renderkid@npm:3.0.0" @@ -39957,6 +40882,17 @@ __metadata: languageName: node linkType: hard +"requireg@npm:^0.2.2": + version: 0.2.2 + resolution: "requireg@npm:0.2.2" + dependencies: + nested-error-stacks: ~2.0.1 + rc: ~1.2.7 + resolve: ~1.7.1 + checksum: 99b420a02e7272717153cdf75891cbb133c02c04b287721eb1bdb0668b6a98aa1da38c08d8148fc8b1443a668d939eeb622d390538ac8da17b18a977ebe998ae + languageName: node + linkType: hard + "requirejs-config-file@npm:^4.0.0": version: 4.0.0 resolution: "requirejs-config-file@npm:4.0.0" @@ -40100,6 +41036,13 @@ __metadata: languageName: node linkType: hard +"resolve.exports@npm:^2.0.2": + version: 2.0.2 + resolution: "resolve.exports@npm:2.0.2" + checksum: 1c7778ca1b86a94f8ab4055d196c7d87d1874b96df4d7c3e67bbf793140f0717fd506dcafd62785b079cd6086b9264424ad634fb904409764c3509c3df1653f2 + languageName: node + linkType: hard + "resolve@npm:1.1.7": version: 1.1.7 resolution: "resolve@npm:1.1.7" @@ -40130,7 +41073,7 @@ __metadata: languageName: node linkType: hard -"resolve@npm:^1.22.4, resolve@npm:^1.3.2": +"resolve@npm:^1.22.2, resolve@npm:^1.22.4, resolve@npm:^1.3.2": version: 1.22.8 resolution: "resolve@npm:1.22.8" dependencies: @@ -40169,6 +41112,15 @@ __metadata: languageName: node linkType: hard +"resolve@npm:~1.7.1": + version: 1.7.1 + resolution: "resolve@npm:1.7.1" + dependencies: + path-parse: ^1.0.5 + checksum: afb829d4b923f9b17aaf55320c2feaf8d44577674a3a71510d299f832fb80f6703e5a701e01cf774c3241fe8663d4b2b99053cfbca7995488d18ea9f8c7ac309 + languageName: node + linkType: hard + "resolve@patch:resolve@1.1.7#~builtin": version: 1.1.7 resolution: "resolve@patch:resolve@npm%3A1.1.7#~builtin::version=1.1.7&hash=3bafbf" @@ -40199,7 +41151,7 @@ __metadata: languageName: node linkType: hard -"resolve@patch:resolve@^1.22.4#~builtin, resolve@patch:resolve@^1.3.2#~builtin": +"resolve@patch:resolve@^1.22.2#~builtin, resolve@patch:resolve@^1.22.4#~builtin, resolve@patch:resolve@^1.3.2#~builtin": version: 1.22.8 resolution: "resolve@patch:resolve@npm%3A1.22.8#~builtin::version=1.22.8&hash=c3c19d" dependencies: @@ -40238,6 +41190,15 @@ __metadata: languageName: node linkType: hard +"resolve@patch:resolve@~1.7.1#~builtin": + version: 1.7.1 + resolution: "resolve@patch:resolve@npm%3A1.7.1#~builtin::version=1.7.1&hash=3bafbf" + dependencies: + path-parse: ^1.0.5 + checksum: c2a6f0e3856ac1ddc8297091c20ca6c36d99bf289ddea366c46bd2a7ed8b31075c7f9d01ff5d390ebed1fe41b9fabe57a79ae087992ba92e3592f0c3be07c1ac + languageName: node + linkType: hard + "responselike@npm:^1.0.2": version: 1.0.2 resolution: "responselike@npm:1.0.2" @@ -41130,7 +42091,7 @@ __metadata: languageName: node linkType: hard -"send@npm:0.18.0": +"send@npm:0.18.0, send@npm:^0.18.0": version: 0.18.0 resolution: "send@npm:0.18.0" dependencies: @@ -41695,6 +42656,17 @@ __metadata: languageName: node linkType: hard +"simple-plist@npm:^1.1.0": + version: 1.4.0 + resolution: "simple-plist@npm:1.4.0" + dependencies: + bplist-creator: 0.1.1 + bplist-parser: 0.3.2 + plist: ^3.0.5 + checksum: fa8086f6b781c289f1abad21306481dda4af6373b32a5d998a70e53c2b7218a1d21ebb5ae3e736baae704c21d311d3d39d01d0e6a2387eda01b4020b9ebd909e + languageName: node + linkType: hard + "simple-swizzle@npm:^0.2.2": version: 0.2.2 resolution: "simple-swizzle@npm:0.2.2" @@ -41835,7 +42807,7 @@ __metadata: languageName: node linkType: hard -"slugify@npm:1.6.6": +"slugify@npm:1.6.6, slugify@npm:^1.3.4, slugify@npm:^1.6.6": version: 1.6.6 resolution: "slugify@npm:1.6.6" checksum: 04773c2d3b7aea8d2a61fa47cc7e5d29ce04e1a96cbaec409da57139df906acb3a449fac30b167d203212c806e73690abd4ff94fbad0a9a7b7ea109a2a638ae9 @@ -42036,6 +43008,13 @@ __metadata: languageName: node linkType: hard +"source-map-js@npm:^1.2.1": + version: 1.2.1 + resolution: "source-map-js@npm:1.2.1" + checksum: 4eb0cd997cdf228bc253bcaff9340afeb706176e64868ecd20efbe6efea931465f43955612346d6b7318789e5265bdc419bc7669c1cebe3db0eb255f57efa76b + languageName: node + linkType: hard + "source-map-loader@npm:4.0.2": version: 4.0.2 resolution: "source-map-loader@npm:4.0.2" @@ -42071,7 +43050,7 @@ __metadata: languageName: node linkType: hard -"source-map-support@npm:0.5.21, source-map-support@npm:^0.5.16, source-map-support@npm:^0.5.19, source-map-support@npm:~0.5.20": +"source-map-support@npm:0.5.21, source-map-support@npm:^0.5.16, source-map-support@npm:^0.5.19, source-map-support@npm:~0.5.20, source-map-support@npm:~0.5.21": version: 0.5.21 resolution: "source-map-support@npm:0.5.21" dependencies: @@ -42299,7 +43278,7 @@ __metadata: languageName: node linkType: hard -"split@npm:^1.0.0": +"split@npm:^1.0.0, split@npm:^1.0.1": version: 1.0.1 resolution: "split@npm:1.0.1" dependencies: @@ -42550,6 +43529,13 @@ __metadata: languageName: node linkType: hard +"stream-buffers@npm:2.2.x": + version: 2.2.0 + resolution: "stream-buffers@npm:2.2.0" + checksum: 4587d9e8f050d689fb38b4295e73408401b16de8edecc12026c6f4ae92956705ecfd995ae3845d7fa3ebf19502d5754df9143d91447fd881d86e518f43882c1c + languageName: node + linkType: hard + "stream-combiner2@npm:^1.1.1": version: 1.1.1 resolution: "stream-combiner2@npm:1.1.1" @@ -43157,6 +44143,13 @@ __metadata: languageName: node linkType: hard +"structured-headers@npm:^0.4.1": + version: 0.4.1 + resolution: "structured-headers@npm:0.4.1" + checksum: 2f3073b2c8b4f2515367a1647ba0b6764ce6d35b3943605940de41077c2afd2513257f4bf6fbfd67a3455f25a3e844905da6fddde6b6ad7974256495311a25a3 + languageName: node + linkType: hard + "style-loader@npm:3.3.4": version: 3.3.4 resolution: "style-loader@npm:3.3.4" @@ -43311,6 +44304,38 @@ __metadata: languageName: node linkType: hard +"sucrase@npm:3.34.0": + version: 3.34.0 + resolution: "sucrase@npm:3.34.0" + dependencies: + "@jridgewell/gen-mapping": ^0.3.2 + commander: ^4.0.0 + glob: 7.1.6 + lines-and-columns: ^1.1.6 + mz: ^2.7.0 + pirates: ^4.0.1 + ts-interface-checker: ^0.1.9 + bin: + sucrase: bin/sucrase + sucrase-node: bin/sucrase-node + checksum: 61860063bdf6103413698e13247a3074d25843e91170825a9752e4af7668ffadd331b6e99e92fc32ee5b3c484ee134936f926fa9039d5711fafff29d017a2110 + languageName: node + linkType: hard + +"sudo-prompt@npm:9.1.1": + version: 9.1.1 + resolution: "sudo-prompt@npm:9.1.1" + checksum: 20fe5bde6a27725d87938e68d6f99c0798ce9bf3a8fdebd58392a0436df713c66ebf67863e682941ff98ee7611e40ed599e12be7f264c9286106feb0f3db3860 + languageName: node + linkType: hard + +"sudo-prompt@npm:^8.2.0": + version: 8.2.5 + resolution: "sudo-prompt@npm:8.2.5" + checksum: bacff1f18a8ab8dba345cc1f3cf3a02b4cc571f71585df79af95af31278f56107f7c29402f5347b07c489888c63f2deb78d544b93a6347e83d0ed0847f4bc163 + languageName: node + linkType: hard + "sudo-prompt@npm:^9.0.0": version: 9.2.1 resolution: "sudo-prompt@npm:9.2.1" @@ -43361,6 +44386,16 @@ __metadata: languageName: node linkType: hard +"supports-hyperlinks@npm:^2.0.0": + version: 2.3.0 + resolution: "supports-hyperlinks@npm:2.3.0" + dependencies: + has-flag: ^4.0.0 + supports-color: ^7.0.0 + checksum: 9ee0de3c8ce919d453511b2b1588a8205bd429d98af94a01df87411391010fe22ca463f268c84b2ce2abad019dfff8452aa02806eeb5c905a8d7ad5c4f4c52b8 + languageName: node + linkType: hard + "supports-hyperlinks@npm:^2.2.0": version: 2.2.0 resolution: "supports-hyperlinks@npm:2.2.0" @@ -43819,6 +44854,30 @@ __metadata: languageName: node linkType: hard +"tempy@npm:0.3.0": + version: 0.3.0 + resolution: "tempy@npm:0.3.0" + dependencies: + temp-dir: ^1.0.0 + type-fest: ^0.3.1 + unique-string: ^1.0.0 + checksum: f81ef72a7ee6d512439af8d8891e4fc6595309451910d7ac9d760f1242a1f87272b2b97c830c8f74aaa93a3aa550483bb16db17e6345601f64d614d240edc322 + languageName: node + linkType: hard + +"tempy@npm:^0.7.1": + version: 0.7.1 + resolution: "tempy@npm:0.7.1" + dependencies: + del: ^6.0.0 + is-stream: ^2.0.0 + temp-dir: ^2.0.0 + type-fest: ^0.16.0 + unique-string: ^2.0.0 + checksum: 265652f94eed077c311777e0290c4b4f3ec670c71c62c979efcbbd67ee506d677ff2741a72d7160556e9b0fba8fc5fbd7b3c482ac94c8acc48d85411f1f079c3 + languageName: node + linkType: hard + "terminal-kit@npm:3.1.1": version: 3.1.1 resolution: "terminal-kit@npm:3.1.1" @@ -43851,6 +44910,16 @@ __metadata: languageName: node linkType: hard +"terminal-link@npm:^2.1.1": + version: 2.1.1 + resolution: "terminal-link@npm:2.1.1" + dependencies: + ansi-escapes: ^4.2.1 + supports-hyperlinks: ^2.0.0 + checksum: ce3d2cd3a438c4a9453947aa664581519173ea40e77e2534d08c088ee6dda449eabdbe0a76d2a516b8b73c33262fedd10d5270ccf7576ae316e3db170ce6562f + languageName: node + linkType: hard + "terminal-link@npm:^3.0.0": version: 3.0.0 resolution: "terminal-link@npm:3.0.0" @@ -44460,6 +45529,17 @@ __metadata: languageName: node linkType: hard +"traverse@npm:~0.6.6": + version: 0.6.10 + resolution: "traverse@npm:0.6.10" + dependencies: + gopd: ^1.0.1 + typedarray.prototype.slice: ^1.0.3 + which-typed-array: ^1.1.15 + checksum: ff25d30726db4867c01ff1f1bd8a5e3356b920c4d674ddf6c3764179bb54766cf1ad0158bbd65667e1f5fbde2d4efbd814d7b24d44149cc31255f0cfe2ab2095 + languageName: node + linkType: hard + "tree-dump@npm:^1.0.1": version: 1.0.1 resolution: "tree-dump@npm:1.0.1" @@ -44598,6 +45678,13 @@ __metadata: languageName: node linkType: hard +"ts-interface-checker@npm:^0.1.9": + version: 0.1.13 + resolution: "ts-interface-checker@npm:0.1.13" + checksum: 20c29189c2dd6067a8775e07823ddf8d59a33e2ffc47a1bd59a5cb28bb0121a2969a816d5e77eda2ed85b18171aa5d1c4005a6b88ae8499ec7cc49f78571cb5e + languageName: node + linkType: hard + "ts-jest@npm:29.1.5": version: 29.1.5 resolution: "ts-jest@npm:29.1.5" @@ -44899,6 +45986,13 @@ __metadata: languageName: node linkType: hard +"type-fest@npm:^0.16.0": + version: 0.16.0 + resolution: "type-fest@npm:0.16.0" + checksum: 1a4102c06dc109db00418c753062e206cab65befd469d000ece4452ee649bf2a9cf57686d96fb42326bc9d918d9a194d4452897b486dcc41989e5c99e4e87094 + languageName: node + linkType: hard + "type-fest@npm:^0.18.0": version: 0.18.1 resolution: "type-fest@npm:0.18.1" @@ -44920,7 +46014,7 @@ __metadata: languageName: node linkType: hard -"type-fest@npm:^0.3.0": +"type-fest@npm:^0.3.0, type-fest@npm:^0.3.1": version: 0.3.1 resolution: "type-fest@npm:0.3.1" checksum: 347ff46c2285616635cb59f722e7f396bee81b8988b6fc1f1536b725077f2abf6ccfa22ab7a78e9b6ce7debea0e6614bbf5946cbec6674ec1bde12113af3a65c @@ -45101,6 +46195,20 @@ __metadata: languageName: node linkType: hard +"typedarray.prototype.slice@npm:^1.0.3": + version: 1.0.3 + resolution: "typedarray.prototype.slice@npm:1.0.3" + dependencies: + call-bind: ^1.0.7 + define-properties: ^1.2.1 + es-abstract: ^1.23.0 + es-errors: ^1.3.0 + typed-array-buffer: ^1.0.2 + typed-array-byte-offset: ^1.0.2 + checksum: 07bfebdfb7a67b2a80557bf4f1061d8a68ee847d7f04c91c7aa327aa90681f97e1ea3efef17b3b8f336a7f2da1d2ff95dd92de59a4788b4e6373318b27fca2c1 + languageName: node + linkType: hard + "typedarray@npm:^0.0.6, typedarray@npm:~0.0.5": version: 0.0.6 resolution: "typedarray@npm:0.0.6" @@ -45586,6 +46694,15 @@ __metadata: languageName: node linkType: hard +"unique-string@npm:^1.0.0": + version: 1.0.0 + resolution: "unique-string@npm:1.0.0" + dependencies: + crypto-random-string: ^1.0.0 + checksum: 588f16bd4ec99b5130f237793d1a5694156adde20460366726573238e41e93b739b87987e863792aeb2392b26f8afb292490ace119c82ed12c46816c9c859f5f + languageName: node + linkType: hard + "unique-string@npm:^2.0.0": version: 2.0.0 resolution: "unique-string@npm:2.0.0" @@ -45719,6 +46836,13 @@ __metadata: languageName: node linkType: hard +"universalify@npm:^1.0.0": + version: 1.0.0 + resolution: "universalify@npm:1.0.0" + checksum: 095a808f2b915e3b89d29b6f3b4ee4163962b02fa5b7cb686970b8d0439f4ca789bc43f319b7cbb1ce552ae724e631d148e5aee9ce04c4f46a7fe0c5bbfd2b9e + languageName: node + linkType: hard + "universalify@npm:^2.0.0": version: 2.0.0 resolution: "universalify@npm:2.0.0" @@ -45899,6 +47023,13 @@ __metadata: languageName: node linkType: hard +"url-join@npm:4.0.0": + version: 4.0.0 + resolution: "url-join@npm:4.0.0" + checksum: d2ac05f8ac276edbcd2b234745415abe27ef6b0c18c4d7a8e7f88fbafa1e9470912392b09391fb47f097f470d4c8b93bf2219b5638286852b2bf65d693e207ee + languageName: node + linkType: hard + "url-join@npm:^4.0.1": version: 4.0.1 resolution: "url-join@npm:4.0.1" @@ -46142,7 +47273,7 @@ __metadata: languageName: node linkType: hard -"uuid@npm:8.3.2, uuid@npm:^8.3.2": +"uuid@npm:8.3.2, uuid@npm:^8.0.0, uuid@npm:^8.3.2": version: 8.3.2 resolution: "uuid@npm:8.3.2" bin: @@ -46228,6 +47359,13 @@ __metadata: languageName: node linkType: hard +"valid-url@npm:~1.0.9": + version: 1.0.9 + resolution: "valid-url@npm:1.0.9" + checksum: 3ecb030559404441c2cf104cbabab8770efb0f36d117db03d1081052ef133015a68806148ce954bb4dd0b5c42c14b709a88783c93d66b0916cb67ba771c98702 + languageName: node + linkType: hard + "validate-npm-package-license@npm:^3.0.1, validate-npm-package-license@npm:^3.0.3, validate-npm-package-license@npm:^3.0.4": version: 3.0.4 resolution: "validate-npm-package-license@npm:3.0.4" @@ -47327,6 +48465,20 @@ __metadata: languageName: node linkType: hard +"wonka@npm:^4.0.14": + version: 4.0.15 + resolution: "wonka@npm:4.0.15" + checksum: afbee7359ed2d0a9146bf682f3953cb093f47d5f827e767e6ef33cb70ca6f30631afe5fe31dbb8d6c7eaed26c4ac6426e7c13568917c017ef6f42c71139b38f7 + languageName: node + linkType: hard + +"wonka@npm:^6.3.2": + version: 6.3.4 + resolution: "wonka@npm:6.3.4" + checksum: 6bb57955cb2982fb469a7824484e6854b436f89a7f10b6a981348789d88fbc944665771adc4cc404f62416417eb47ab2b8657d898e5301ccd4a53eaac6a10508 + languageName: node + linkType: hard + "word-wrap@npm:1.2.5": version: 1.2.5 resolution: "word-wrap@npm:1.2.5" @@ -47550,9 +48702,9 @@ __metadata: languageName: node linkType: hard -"ws@npm:^8.13.0": - version: 8.13.0 - resolution: "ws@npm:8.13.0" +"ws@npm:^8.12.1, ws@npm:^8.16.0, ws@npm:^8.18.0": + version: 8.18.0 + resolution: "ws@npm:8.18.0" peerDependencies: bufferutil: ^4.0.1 utf-8-validate: ">=5.0.2" @@ -47561,13 +48713,13 @@ __metadata: optional: true utf-8-validate: optional: true - checksum: 53e991bbf928faf5dc6efac9b8eb9ab6497c69feeb94f963d648b7a3530a720b19ec2e0ec037344257e05a4f35bd9ad04d9de6f289615ffb133282031b18c61c + checksum: 91d4d35bc99ff6df483bdf029b9ea4bfd7af1f16fc91231a96777a63d263e1eabf486e13a2353970efc534f9faa43bdbf9ee76525af22f4752cbc5ebda333975 languageName: node linkType: hard -"ws@npm:^8.16.0, ws@npm:^8.18.0": - version: 8.18.0 - resolution: "ws@npm:8.18.0" +"ws@npm:^8.13.0": + version: 8.13.0 + resolution: "ws@npm:8.13.0" peerDependencies: bufferutil: ^4.0.1 utf-8-validate: ">=5.0.2" @@ -47576,7 +48728,7 @@ __metadata: optional: true utf-8-validate: optional: true - checksum: 91d4d35bc99ff6df483bdf029b9ea4bfd7af1f16fc91231a96777a63d263e1eabf486e13a2353970efc534f9faa43bdbf9ee76525af22f4752cbc5ebda333975 + checksum: 53e991bbf928faf5dc6efac9b8eb9ab6497c69feeb94f963d648b7a3530a720b19ec2e0ec037344257e05a4f35bd9ad04d9de6f289615ffb133282031b18c61c languageName: node linkType: hard @@ -47610,6 +48762,16 @@ __metadata: languageName: node linkType: hard +"xcode@npm:^3.0.1": + version: 3.0.1 + resolution: "xcode@npm:3.0.1" + dependencies: + simple-plist: ^1.1.0 + uuid: ^7.0.3 + checksum: 908ff85851f81aec6e36ca24427db092e1cc068f052716e14de5e762196858039efabbe053a1abe8920184622501049e74a93618e8692b982f7604a9847db108 + languageName: node + linkType: hard + "xdg-basedir@npm:^4.0.0": version: 4.0.0 resolution: "xdg-basedir@npm:4.0.0" @@ -47669,6 +48831,16 @@ __metadata: languageName: node linkType: hard +"xml2js@npm:0.6.0": + version: 0.6.0 + resolution: "xml2js@npm:0.6.0" + dependencies: + sax: ">=0.6.0" + xmlbuilder: ~11.0.0 + checksum: 437f353fd66d367bf158e9555a0625df9965d944e499728a5c6bc92a54a2763179b144f14b7e1c725040f56bbd22b0fa6cfcb09ec4faf39c45ce01efe631f40b + languageName: node + linkType: hard + "xml@npm:1.0.1": version: 1.0.1 resolution: "xml@npm:1.0.1" @@ -47683,6 +48855,13 @@ __metadata: languageName: node linkType: hard +"xmlbuilder@npm:^14.0.0": + version: 14.0.0 + resolution: "xmlbuilder@npm:14.0.0" + checksum: 9e93d3c73957dbb21acde63afa5d241b19057bdbdca9d53534d8351e70f1d5c9db154e3ca19bd3e9ea84c082539ab6e7845591c8778a663e8b5d3470d5427a8b + languageName: node + linkType: hard + "xmlbuilder@npm:~11.0.0": version: 11.0.1 resolution: "xmlbuilder@npm:11.0.1"