mirror of
https://github.com/floccusaddon/floccus
synced 2025-04-29 15:57:24 +08:00
Merge branch 'develop' of github.com:floccusaddon/floccus into develop
This commit is contained in:
commit
047fa38fc3
2
.github/workflows/build.yml
vendored
2
.github/workflows/build.yml
vendored
@ -59,7 +59,7 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
strategy:
|
||||
matrix:
|
||||
java-version: [ 17 ]
|
||||
java-version: [ 21 ]
|
||||
name: android java${{ matrix.java-version }}
|
||||
steps:
|
||||
- uses: actions/setup-java@v4
|
||||
|
14
CHANGELOG.md
14
CHANGELOG.md
@ -1,5 +1,19 @@
|
||||
# Changelog
|
||||
|
||||
## [5.4.5] - 2025-03-20
|
||||
|
||||
### Fixed
|
||||
|
||||
* Upgrade to capacitor 7 and Java 21
|
||||
* fix(Tree#search): Harden search
|
||||
* fix(Controller): Cap exponential backoff at 1h
|
||||
* fix(Account): Don't call onSyncFail twice if onSyncStart failed
|
||||
* fix: Reduce intervention frequency to avoid annoying users
|
||||
* fix(App): Allow opening any view in a new tab
|
||||
* fix(Git): Make sure foreign locks are freed when forceLock is set
|
||||
* fix(NextcloudBookmarks): Make sure lock is freed when forceLock is set
|
||||
* fix(LocalTabs): Speed up tabs updated callback
|
||||
|
||||
## [5.4.4]
|
||||
|
||||
### Fixed
|
||||
|
@ -7,8 +7,8 @@ android {
|
||||
applicationId "org.handmadeideas.floccus"
|
||||
minSdkVersion rootProject.ext.minSdkVersion
|
||||
targetSdkVersion rootProject.ext.targetSdkVersion
|
||||
versionCode 5004004
|
||||
versionName "5.4.4"
|
||||
versionCode 5004005
|
||||
versionName "5.4.5"
|
||||
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
||||
aaptOptions {
|
||||
// Files and dirs to omit from the packaged assets dir, modified to accommodate modern web apps.
|
||||
|
@ -361,7 +361,7 @@
|
||||
INFOPLIST_FILE = "Floccus New Bookmark/Info.plist";
|
||||
INFOPLIST_KEY_CFBundleDisplayName = "Floccus New Bookmark";
|
||||
INFOPLIST_KEY_NSHumanReadableCopyright = "";
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 13.0;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 14.0;
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks";
|
||||
MARKETING_VERSION = 5.4.3;
|
||||
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
|
||||
@ -395,7 +395,7 @@
|
||||
INFOPLIST_FILE = "Floccus New Bookmark/Info.plist";
|
||||
INFOPLIST_KEY_CFBundleDisplayName = "Floccus New Bookmark";
|
||||
INFOPLIST_KEY_NSHumanReadableCopyright = "";
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 13.0;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 14.0;
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @executable_path/../../Frameworks";
|
||||
MARKETING_VERSION = 5.4.3;
|
||||
MTL_FAST_MATH = YES;
|
||||
@ -458,7 +458,7 @@
|
||||
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 13.0;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 14.0;
|
||||
MARKETING_VERSION = 5.4.3;
|
||||
MTL_ENABLE_DEBUG_INFO = YES;
|
||||
ONLY_ACTIVE_ARCH = YES;
|
||||
@ -510,7 +510,7 @@
|
||||
GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE;
|
||||
GCC_WARN_UNUSED_FUNCTION = YES;
|
||||
GCC_WARN_UNUSED_VARIABLE = YES;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 13.0;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 14.0;
|
||||
MARKETING_VERSION = 5.4.3;
|
||||
MTL_ENABLE_DEBUG_INFO = NO;
|
||||
SDKROOT = iphoneos;
|
||||
@ -535,7 +535,7 @@
|
||||
INFOPLIST_FILE = App/Info.plist;
|
||||
INFOPLIST_KEY_CFBundleDisplayName = Floccus;
|
||||
INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.productivity";
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 13.0;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 14.0;
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
|
||||
MARKETING_VERSION = 5.4.3;
|
||||
OTHER_SWIFT_FLAGS = "$(inherited) \"-D\" \"COCOAPODS\" \"-DDEBUG\"";
|
||||
@ -565,7 +565,7 @@
|
||||
INFOPLIST_FILE = App/Info.plist;
|
||||
INFOPLIST_KEY_CFBundleDisplayName = Floccus;
|
||||
INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.productivity";
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 13.0;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 14.0;
|
||||
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
|
||||
MARKETING_VERSION = 5.4.3;
|
||||
PRODUCT_BUNDLE_IDENTIFIER = org.handmadeideas.floccus;
|
||||
|
@ -2,7 +2,7 @@
|
||||
"manifest_version": 3,
|
||||
"name": "floccus bookmarks sync",
|
||||
"short_name": "floccus",
|
||||
"version": "5.4.4",
|
||||
"version": "5.4.5",
|
||||
"description": "__MSG_DescriptionExtension__",
|
||||
"icons": {
|
||||
"48": "icons/logo.png",
|
||||
|
@ -2,7 +2,7 @@
|
||||
"manifest_version": 2,
|
||||
"name": "floccus bookmarks sync",
|
||||
"short_name": "floccus",
|
||||
"version": "5.4.4",
|
||||
"version": "5.4.5",
|
||||
"description": "__MSG_DescriptionExtension__",
|
||||
"icons": {
|
||||
"48": "icons/logo.png",
|
||||
|
169
package-lock.json
generated
169
package-lock.json
generated
@ -10,17 +10,17 @@
|
||||
"license": "MPL-2.0",
|
||||
"dependencies": {
|
||||
"@byteowls/capacitor-oauth2": "5.x",
|
||||
"@capacitor/android": "^7.0.0",
|
||||
"@capacitor/app": "^7.0.0",
|
||||
"@capacitor/browser": "^7.0.0",
|
||||
"@capacitor/core": "^7.0.0",
|
||||
"@capacitor/device": "^7.0.0",
|
||||
"@capacitor/filesystem": "^7.0.0",
|
||||
"@capacitor/ios": "^7.0.0",
|
||||
"@capacitor/network": "^7.0.0",
|
||||
"@capacitor/preferences": "^7.0.0",
|
||||
"@capacitor/share": "^7.0.0",
|
||||
"@capacitor/splash-screen": "^7.0.0",
|
||||
"@capacitor/android": "7.x",
|
||||
"@capacitor/app": "7.x",
|
||||
"@capacitor/browser": "7.x",
|
||||
"@capacitor/core": "7.x",
|
||||
"@capacitor/device": "7.x",
|
||||
"@capacitor/filesystem": "7.x",
|
||||
"@capacitor/ios": "7.x",
|
||||
"@capacitor/network": "7.x",
|
||||
"@capacitor/preferences": "7.x",
|
||||
"@capacitor/share": "7.x",
|
||||
"@capacitor/splash-screen": "7.x",
|
||||
"@isomorphic-git/lightning-fs": "^4.6.0",
|
||||
"@sentry/vue": "7.x",
|
||||
"@sentry/webpack-plugin": "2.x",
|
||||
@ -52,7 +52,7 @@
|
||||
"devDependencies": {
|
||||
"@babel/core": "7.x",
|
||||
"@babel/preset-env": "7.x",
|
||||
"@capacitor/cli": "^7.0.0",
|
||||
"@capacitor/cli": "^7.1.0",
|
||||
"@mdi/font": "^6.6.96",
|
||||
"@types/node": "^14.14.37",
|
||||
"@typescript-eslint/eslint-plugin": "^5.2.0",
|
||||
@ -139,21 +139,21 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@babel/core": {
|
||||
"version": "7.26.9",
|
||||
"resolved": "https://registry.npmjs.org/@babel/core/-/core-7.26.9.tgz",
|
||||
"integrity": "sha512-lWBYIrF7qK5+GjY5Uy+/hEgp8OJWOD/rpy74GplYRhEauvbHDeFB8t5hPOZxCZ0Oxf4Cc36tK51/l3ymJysrKw==",
|
||||
"version": "7.26.10",
|
||||
"resolved": "https://registry.npmjs.org/@babel/core/-/core-7.26.10.tgz",
|
||||
"integrity": "sha512-vMqyb7XCDMPvJFFOaT9kxtiRh42GwlZEg1/uIgtZshS5a/8OaduUfCi7kynKgc3Tw/6Uo2D+db9qBttghhmxwQ==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@ampproject/remapping": "^2.2.0",
|
||||
"@babel/code-frame": "^7.26.2",
|
||||
"@babel/generator": "^7.26.9",
|
||||
"@babel/generator": "^7.26.10",
|
||||
"@babel/helper-compilation-targets": "^7.26.5",
|
||||
"@babel/helper-module-transforms": "^7.26.0",
|
||||
"@babel/helpers": "^7.26.9",
|
||||
"@babel/parser": "^7.26.9",
|
||||
"@babel/helpers": "^7.26.10",
|
||||
"@babel/parser": "^7.26.10",
|
||||
"@babel/template": "^7.26.9",
|
||||
"@babel/traverse": "^7.26.9",
|
||||
"@babel/types": "^7.26.9",
|
||||
"@babel/traverse": "^7.26.10",
|
||||
"@babel/types": "^7.26.10",
|
||||
"convert-source-map": "^2.0.0",
|
||||
"debug": "^4.1.0",
|
||||
"gensync": "^1.0.0-beta.2",
|
||||
@ -169,13 +169,13 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@babel/generator": {
|
||||
"version": "7.26.9",
|
||||
"resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.9.tgz",
|
||||
"integrity": "sha512-kEWdzjOAUMW4hAyrzJ0ZaTOu9OmpyDIQicIh0zg0EEcEkYXZb2TjtBhnHi2ViX7PKwZqF4xwqfAm299/QMP3lg==",
|
||||
"version": "7.26.10",
|
||||
"resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.26.10.tgz",
|
||||
"integrity": "sha512-rRHT8siFIXQrAYOYqZQVsAr8vJ+cBNqcVAY6m5V8/4QqzaPl+zDBe6cLEPRDuNOUf3ww8RfJVlOyQMoSI+5Ang==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@babel/parser": "^7.26.9",
|
||||
"@babel/types": "^7.26.9",
|
||||
"@babel/parser": "^7.26.10",
|
||||
"@babel/types": "^7.26.10",
|
||||
"@jridgewell/gen-mapping": "^0.3.5",
|
||||
"@jridgewell/trace-mapping": "^0.3.25",
|
||||
"jsesc": "^3.0.2"
|
||||
@ -430,13 +430,13 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@babel/helpers": {
|
||||
"version": "7.26.9",
|
||||
"resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.26.9.tgz",
|
||||
"integrity": "sha512-Mz/4+y8udxBKdmzt/UjPACs4G3j5SshJJEFFKxlCGPydG4JAHXxjWjAwjd09tf6oINvl1VfMJo+nB7H2YKQ0dA==",
|
||||
"version": "7.26.10",
|
||||
"resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.26.10.tgz",
|
||||
"integrity": "sha512-UPYc3SauzZ3JGgj87GgZ89JVdC5dj0AoetR5Bw6wj4niittNyFh6+eOGonYvJ1ao6B8lEa3Q3klS7ADZ53bc5g==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@babel/template": "^7.26.9",
|
||||
"@babel/types": "^7.26.9"
|
||||
"@babel/types": "^7.26.10"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=6.9.0"
|
||||
@ -537,12 +537,12 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@babel/parser": {
|
||||
"version": "7.26.9",
|
||||
"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.9.tgz",
|
||||
"integrity": "sha512-81NWa1njQblgZbQHxWHpxxCzNsa3ZwvFqpUg7P+NNUU6f3UU2jBEg4OlF/J6rl8+PQGh1q6/zWScd001YwcA5A==",
|
||||
"version": "7.26.10",
|
||||
"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.26.10.tgz",
|
||||
"integrity": "sha512-6aQR2zGE/QFi8JpDLjUZEPYOs7+mhKXm86VaKFiLP35JQwQb6bwUE+XbvkH0EptsYhbNBSUGaUBLKqxH1xSgsA==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@babel/types": "^7.26.9"
|
||||
"@babel/types": "^7.26.10"
|
||||
},
|
||||
"bin": {
|
||||
"parser": "bin/babel-parser.js"
|
||||
@ -1634,9 +1634,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@babel/runtime": {
|
||||
"version": "7.26.9",
|
||||
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.26.9.tgz",
|
||||
"integrity": "sha512-aA63XwOkcl4xxQa3HjPMqOP6LiK0ZDv3mUPYEFXkpHbaFjtGggE1A61FjFzJnB+p7/oy2gA8E+rcBNl/zC1tMg==",
|
||||
"version": "7.26.10",
|
||||
"resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.26.10.tgz",
|
||||
"integrity": "sha512-2WJMeRQPHKSPemqk/awGrAiuFfzBmOIPXKizAsVhWH9YJqLZ0H+HS4c8loHGgW6utJ3E/ejXQUsiGaQy2NZ9Fw==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
@ -1661,16 +1661,16 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@babel/traverse": {
|
||||
"version": "7.26.9",
|
||||
"resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.26.9.tgz",
|
||||
"integrity": "sha512-ZYW7L+pL8ahU5fXmNbPF+iZFHCv5scFak7MZ9bwaRPLUhHh7QQEMjZUg0HevihoqCM5iSYHN61EyCoZvqC+bxg==",
|
||||
"version": "7.26.10",
|
||||
"resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.26.10.tgz",
|
||||
"integrity": "sha512-k8NuDrxr0WrPH5Aupqb2LCVURP/S0vBEn5mK6iH+GIYob66U5EtoZvcdudR2jQ4cmTwhEwW1DLB+Yyas9zjF6A==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@babel/code-frame": "^7.26.2",
|
||||
"@babel/generator": "^7.26.9",
|
||||
"@babel/parser": "^7.26.9",
|
||||
"@babel/generator": "^7.26.10",
|
||||
"@babel/parser": "^7.26.10",
|
||||
"@babel/template": "^7.26.9",
|
||||
"@babel/types": "^7.26.9",
|
||||
"@babel/types": "^7.26.10",
|
||||
"debug": "^4.3.1",
|
||||
"globals": "^11.1.0"
|
||||
},
|
||||
@ -1679,9 +1679,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@babel/types": {
|
||||
"version": "7.26.9",
|
||||
"resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.9.tgz",
|
||||
"integrity": "sha512-Y3IR1cRnOxOCDvMmNiym7XpXQ93iGDDPHx+Zj+NM+rg0fBaShfQLkg+hKPaZCEvg5N/LeCo4+Rj/i3FuJsIQaw==",
|
||||
"version": "7.26.10",
|
||||
"resolved": "https://registry.npmjs.org/@babel/types/-/types-7.26.10.tgz",
|
||||
"integrity": "sha512-emqcG3vHrpxUKTrxcblR36dcrcoRDvKmnL/dCL6ZsHaShW80qxCAcNhzQZrpeM765VzEos+xOi4s+r4IXzTwdQ==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@babel/helper-string-parser": "^7.25.9",
|
||||
@ -1708,12 +1708,12 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@capacitor/android": {
|
||||
"version": "7.0.1",
|
||||
"resolved": "https://registry.npmjs.org/@capacitor/android/-/android-7.0.1.tgz",
|
||||
"integrity": "sha512-jukJJHfkcyEBOkFBJRD3EwXMIIQo7lSv0ExPWgsIliPdGXLAj6ElvK2JaYEzec3vKyLc4RTNFVv0PMEU0vnImg==",
|
||||
"version": "7.1.0",
|
||||
"resolved": "https://registry.npmjs.org/@capacitor/android/-/android-7.1.0.tgz",
|
||||
"integrity": "sha512-piPgQViWOjh18H7R8wDkh5uaZ5PwRbMxGZFu39ReP8Y0nZwjS8ESUvJuBm38T+HHJnHM6MnDHmCWnW3ixKqeZw==",
|
||||
"license": "MIT",
|
||||
"peerDependencies": {
|
||||
"@capacitor/core": "^7.0.0"
|
||||
"@capacitor/core": "^7.1.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@capacitor/app": {
|
||||
@ -1735,9 +1735,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@capacitor/cli": {
|
||||
"version": "7.0.1",
|
||||
"resolved": "https://registry.npmjs.org/@capacitor/cli/-/cli-7.0.1.tgz",
|
||||
"integrity": "sha512-KNKT25ZvNL8Gm+zxSxCq8n9FQYUBsZcAGs5lisQKHnDRz7tkTMmMNok+TlNlLn6to78J1k+OtBgpmfbFerpOng==",
|
||||
"version": "7.1.0",
|
||||
"resolved": "https://registry.npmjs.org/@capacitor/cli/-/cli-7.1.0.tgz",
|
||||
"integrity": "sha512-oCjB9VB6KNTnBAlzt8tVIuBW+ZniIOCbrsp+nLoa2EfUIgoOGfMHldS4tG9KlTG3pTi5AzeHjSHJIMZwfiz6gg==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@ionic/cli-framework-output": "^2.2.8",
|
||||
@ -1779,9 +1779,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@capacitor/core": {
|
||||
"version": "7.0.1",
|
||||
"resolved": "https://registry.npmjs.org/@capacitor/core/-/core-7.0.1.tgz",
|
||||
"integrity": "sha512-1Ob9bvA/p8g8aNwK6VesxEekGXowLVf6APjkW4LRnr05H+7z/bke+Q5pn9zqh/GgTbIxAQ/rwZrAZvvxkdm1UA==",
|
||||
"version": "7.1.0",
|
||||
"resolved": "https://registry.npmjs.org/@capacitor/core/-/core-7.1.0.tgz",
|
||||
"integrity": "sha512-I0a4C8gux5sx+HDamJjCiWHEWRdJU3hejwURFOSwJjUmAMkfkrm4hOsI0dgd+S0eCkKKKYKz9WNm7DAIvhm2zw==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"tslib": "^2.1.0"
|
||||
@ -1806,12 +1806,12 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@capacitor/ios": {
|
||||
"version": "7.0.1",
|
||||
"resolved": "https://registry.npmjs.org/@capacitor/ios/-/ios-7.0.1.tgz",
|
||||
"integrity": "sha512-RN6S1C1k7ue57DFmJM4EizzsYBrahTTiMhcnlHspFLaojgHbFWZbYq1VriuRKysPU1ka/P+klsdtRFsB5K9jyw==",
|
||||
"version": "7.1.0",
|
||||
"resolved": "https://registry.npmjs.org/@capacitor/ios/-/ios-7.1.0.tgz",
|
||||
"integrity": "sha512-ND7GNxtBRnD6Az14D5YRFKFL4VtdLeXE6Zym1SVcKac0NZF18n4DBympBcnfCR61421FCmRlswbpPa9Fr+Czxw==",
|
||||
"license": "MIT",
|
||||
"peerDependencies": {
|
||||
"@capacitor/core": "^7.0.0"
|
||||
"@capacitor/core": "^7.1.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@capacitor/network": {
|
||||
@ -1871,9 +1871,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@eslint-community/eslint-utils": {
|
||||
"version": "4.4.1",
|
||||
"resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.1.tgz",
|
||||
"integrity": "sha512-s3O3waFUrMV8P/XaF/+ZTp1X9XBZW1a4B97ZnjQF2KYWaFD2A8KyFBsrsfSjEmjn3RGWAIuvlneuZm3CUK3jbA==",
|
||||
"version": "4.5.1",
|
||||
"resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.5.1.tgz",
|
||||
"integrity": "sha512-soEIOALTfTK6EjmKMMoLugwaP0rzkad90iIWd1hMO9ARkSAyjfMfkRRhLvD5qH7vvM0Cg72pieUfR6yh6XxC4w==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
@ -4329,18 +4329,19 @@
|
||||
}
|
||||
},
|
||||
"node_modules/array.prototype.findlastindex": {
|
||||
"version": "1.2.5",
|
||||
"resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.5.tgz",
|
||||
"integrity": "sha512-zfETvRFA8o7EiNn++N5f/kaCw221hrpGsDmcpndVupkPzEc1Wuf3VgC0qby1BbHs7f5DVYjgtEU2LLh5bqeGfQ==",
|
||||
"version": "1.2.6",
|
||||
"resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.6.tgz",
|
||||
"integrity": "sha512-F/TKATkzseUExPlfvmwQKGITM3DGTK+vkAsCZoDc5daVygbJBnjEUCbgkAvVFsgfXfX4YIqZ/27G3k3tdXrTxQ==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"call-bind": "^1.0.7",
|
||||
"call-bind": "^1.0.8",
|
||||
"call-bound": "^1.0.4",
|
||||
"define-properties": "^1.2.1",
|
||||
"es-abstract": "^1.23.2",
|
||||
"es-abstract": "^1.23.9",
|
||||
"es-errors": "^1.3.0",
|
||||
"es-object-atoms": "^1.0.0",
|
||||
"es-shim-unscopables": "^1.0.2"
|
||||
"es-object-atoms": "^1.1.1",
|
||||
"es-shim-unscopables": "^1.1.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 0.4"
|
||||
@ -5285,9 +5286,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/caniuse-lite": {
|
||||
"version": "1.0.30001702",
|
||||
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001702.tgz",
|
||||
"integrity": "sha512-LoPe/D7zioC0REI5W73PeR1e1MLCipRGq/VkovJnd6Df+QVqT+vT33OXCp8QUd7kA7RZrHWxb1B36OQKI/0gOA==",
|
||||
"version": "1.0.30001706",
|
||||
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001706.tgz",
|
||||
"integrity": "sha512-3ZczoTApMAZwPKYWmwVbQMFpXBDds3/0VciVoUwPUbldlYyVLmRVuRs/PcUZtHpbLRpzzDvrvnFuREsGt6lUug==",
|
||||
"funding": [
|
||||
{
|
||||
"type": "opencollective",
|
||||
@ -6614,9 +6615,9 @@
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/electron-to-chromium": {
|
||||
"version": "1.5.113",
|
||||
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.113.tgz",
|
||||
"integrity": "sha512-wjT2O4hX+wdWPJ76gWSkMhcHAV2PTMX+QetUCPYEdCIe+cxmgzzSSiGRCKW8nuh4mwKZlpv0xvoW7OF2X+wmHg==",
|
||||
"version": "1.5.120",
|
||||
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.120.tgz",
|
||||
"integrity": "sha512-oTUp3gfX1gZI+xfD2djr2rzQdHCwHzPQrrK0CD7WpTdF0nPdQ/INcRVjWgLdCT4a9W3jFObR9DAfsuyFQnI8CQ==",
|
||||
"license": "ISC"
|
||||
},
|
||||
"node_modules/elementtree": {
|
||||
@ -13508,9 +13509,9 @@
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/postcss/node_modules/nanoid": {
|
||||
"version": "3.3.9",
|
||||
"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.9.tgz",
|
||||
"integrity": "sha512-SppoicMGpZvbF1l3z4x7No3OlIjP7QJvC9XR7AhZr1kL133KHnKPztkKDc+Ir4aJ/1VhTySrtKhrsycmrMQfvg==",
|
||||
"version": "3.3.11",
|
||||
"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz",
|
||||
"integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==",
|
||||
"funding": [
|
||||
{
|
||||
"type": "github",
|
||||
@ -14832,9 +14833,9 @@
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/sass": {
|
||||
"version": "1.85.1",
|
||||
"resolved": "https://registry.npmjs.org/sass/-/sass-1.85.1.tgz",
|
||||
"integrity": "sha512-Uk8WpxM5v+0cMR0XjX9KfRIacmSG86RH4DCCZjLU2rFh5tyutt9siAXJ7G+YfxQ99Q6wrRMbMlVl6KqUms71ag==",
|
||||
"version": "1.86.0",
|
||||
"resolved": "https://registry.npmjs.org/sass/-/sass-1.86.0.tgz",
|
||||
"integrity": "sha512-zV8vGUld/+mP4KbMLJMX7TyGCuUp7hnkOScgCMsWuHtns8CWBoz+vmEhoGMXsaJrbUP8gj+F1dLvVe79sK8UdA==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
@ -16715,9 +16716,9 @@
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/undici": {
|
||||
"version": "6.21.1",
|
||||
"resolved": "https://registry.npmjs.org/undici/-/undici-6.21.1.tgz",
|
||||
"integrity": "sha512-q/1rj5D0/zayJB2FraXdaWxbhWiNKDvu8naDT2dl1yTlvJp4BLtOcp2a5BvgGNQpYYJzau7tf1WgKv3b+7mqpQ==",
|
||||
"version": "6.21.2",
|
||||
"resolved": "https://registry.npmjs.org/undici/-/undici-6.21.2.tgz",
|
||||
"integrity": "sha512-uROZWze0R0itiAKVPsYhFov9LxrPMHLMEQFszeI2gCN6bnIIZ8twzBCJcN2LJrBBLfrP0t1FW0g+JmKVl8Vk1g==",
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": ">=18.17"
|
||||
|
28
package.json
28
package.json
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "floccus",
|
||||
"version": "5.4.4",
|
||||
"version": "5.4.5",
|
||||
"description": "Sync your bookmarks privately across browsers and devices",
|
||||
"scripts": {
|
||||
"build": "NODE_OPTIONS=--max-old-space-size=5000 gulp",
|
||||
@ -26,7 +26,7 @@
|
||||
"devDependencies": {
|
||||
"@babel/core": "7.x",
|
||||
"@babel/preset-env": "7.x",
|
||||
"@capacitor/cli": "^7.0.0",
|
||||
"@capacitor/cli": "^7.1.0",
|
||||
"@mdi/font": "^6.6.96",
|
||||
"@types/node": "^14.14.37",
|
||||
"@typescript-eslint/eslint-plugin": "^5.2.0",
|
||||
@ -77,17 +77,17 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"@byteowls/capacitor-oauth2": "5.x",
|
||||
"@capacitor/android": "^7.0.0",
|
||||
"@capacitor/app": "^7.0.0",
|
||||
"@capacitor/browser": "^7.0.0",
|
||||
"@capacitor/core": "^7.0.0",
|
||||
"@capacitor/device": "^7.0.0",
|
||||
"@capacitor/filesystem": "^7.0.0",
|
||||
"@capacitor/ios": "^7.0.0",
|
||||
"@capacitor/network": "^7.0.0",
|
||||
"@capacitor/preferences": "^7.0.0",
|
||||
"@capacitor/share": "^7.0.0",
|
||||
"@capacitor/splash-screen": "^7.0.0",
|
||||
"@capacitor/android": "7.x",
|
||||
"@capacitor/app": "7.x",
|
||||
"@capacitor/browser": "7.x",
|
||||
"@capacitor/core": "7.x",
|
||||
"@capacitor/device": "7.x",
|
||||
"@capacitor/filesystem": "7.x",
|
||||
"@capacitor/ios": "7.x",
|
||||
"@capacitor/network": "7.x",
|
||||
"@capacitor/preferences": "7.x",
|
||||
"@capacitor/share": "7.x",
|
||||
"@capacitor/splash-screen": "7.x",
|
||||
"@isomorphic-git/lightning-fs": "^4.6.0",
|
||||
"@sentry/vue": "7.x",
|
||||
"@sentry/webpack-plugin": "2.x",
|
||||
@ -133,4 +133,4 @@
|
||||
"not KaiOS >= 0",
|
||||
"not Samsung >= 0"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
@ -15,6 +15,7 @@ import {
|
||||
SlashError
|
||||
} from '../../errors/Error'
|
||||
import Crypto from '../Crypto'
|
||||
import { isOrion } from '../isOrion'
|
||||
|
||||
const LOCK_INTERVAL = 2 * 60 * 1000 // Lock every 2mins while syncing
|
||||
const LOCK_TIMEOUT = 15 * 60 * 1000 // Override lock 0.25h after last time lock has been set
|
||||
@ -71,7 +72,7 @@ export default class GitAdapter extends CachingAdapter {
|
||||
this.hash = await Crypto.sha256(JSON.stringify(this.server)) + Date.now()
|
||||
this.dir = '/' + this.hash + '/'
|
||||
|
||||
if (Capacitor.getPlatform() === 'web') {
|
||||
if (Capacitor.getPlatform() === 'web' && !isOrion) {
|
||||
const browser = (await import('../browser-api')).default
|
||||
let hasPermissions, error = false
|
||||
try {
|
||||
|
@ -12,6 +12,7 @@ import {
|
||||
} from '../../errors/Error'
|
||||
import { OAuth2Client } from '@byteowls/capacitor-oauth2'
|
||||
import { Capacitor, CapacitorHttp as Http } from '@capacitor/core'
|
||||
import { isOrion } from '../isOrion'
|
||||
|
||||
const OAuthConfig = {
|
||||
authorizationBaseUrl: 'https://accounts.google.com/o/oauth2/auth',
|
||||
@ -198,7 +199,7 @@ export default class GoogleDriveAdapter extends CachingAdapter {
|
||||
async onSyncStart(needLock = true, forceLock = false) {
|
||||
Logger.log('onSyncStart: begin')
|
||||
|
||||
if (Capacitor.getPlatform() === 'web') {
|
||||
if (Capacitor.getPlatform() === 'web' && !isOrion) {
|
||||
const browser = (await import('../browser-api')).default
|
||||
const origins = ['https://oauth2.googleapis.com/', 'https://www.googleapis.com/']
|
||||
let hasPermissions, error = false
|
||||
|
@ -31,6 +31,7 @@ import {
|
||||
UnknownFolderUpdateError,
|
||||
UnknownMoveTargetError, UpdateBookmarkError
|
||||
} from '../../errors/Error'
|
||||
import { isOrion } from '../isOrion'
|
||||
|
||||
const PAGE_SIZE = 300
|
||||
const TIMEOUT = 300000
|
||||
@ -133,7 +134,7 @@ export default class NextcloudBookmarksAdapter implements Adapter, BulkImportRes
|
||||
}
|
||||
|
||||
async onSyncStart(needLock = true, forceLock = false): Promise<void> {
|
||||
if (Capacitor.getPlatform() === 'web') {
|
||||
if (Capacitor.getPlatform() === 'web' && !isOrion) {
|
||||
const browser = (await import('../browser-api')).default
|
||||
let hasPermissions, error = false
|
||||
try {
|
||||
|
@ -15,6 +15,7 @@ import {
|
||||
import { CapacitorHttp as Http } from '@capacitor/core'
|
||||
import { Capacitor } from '@capacitor/core'
|
||||
import Html from '../serializers/Html'
|
||||
import { isOrion } from '../isOrion'
|
||||
|
||||
const LOCK_INTERVAL = 2 * 60 * 1000 // Lock every 2mins while syncing
|
||||
const LOCK_TIMEOUT = 15 * 60 * 1000 // Override lock 0.25h after last time lock has been set
|
||||
@ -269,7 +270,7 @@ export default class WebDavAdapter extends CachingAdapter {
|
||||
Logger.log('onSyncStart: begin')
|
||||
this.ended = false
|
||||
|
||||
if (Capacitor.getPlatform() === 'web') {
|
||||
if (Capacitor.getPlatform() === 'web' && !isOrion) {
|
||||
const browser = (await import('../browser-api')).default
|
||||
let hasPermissions, error = false
|
||||
try {
|
||||
|
@ -14,7 +14,7 @@ const INACTIVITY_TIMEOUT = 7 * 1000 // 7 seconds
|
||||
const MAX_BACKOFF_INTERVAL = 1000 * 60 * 60 // 1 hour
|
||||
const DEFAULT_SYNC_INTERVAL = 15 // 15 minutes
|
||||
const STALE_SYNC_TIME = 1000 * 60 * 60 * 24 * 2 // two days
|
||||
const INTERVENTION_INTERVAL = 1000 * 60 * 60 * 24 * 91 // 91 days
|
||||
const INTERVENTION_INTERVAL = 1000 * 60 * 60 * 24 * 182 // 182 days
|
||||
|
||||
class AlarmManager {
|
||||
constructor(ctl) {
|
||||
|
1
src/lib/isOrion.ts
Normal file
1
src/lib/isOrion.ts
Normal file
@ -0,0 +1 @@
|
||||
export const isOrion = 'userAgentData' in navigator && JSON.stringify(navigator.userAgentData).includes('Orion')
|
@ -506,7 +506,7 @@ export default {
|
||||
return []
|
||||
}
|
||||
let items
|
||||
if (this.searchQuery && this.searchQuery.length >= 2) {
|
||||
if (this.searchQuery && this.searchQuery.trim().length >= 2) {
|
||||
return this.search(this.searchQuery.toLowerCase().trim(), this.currentFolder)
|
||||
} else {
|
||||
items = this.currentFolder.children
|
||||
@ -515,7 +515,11 @@ export default {
|
||||
return sortBy(items, [(item) => {
|
||||
if (this.sortBy === 'url') {
|
||||
if (item.url) {
|
||||
return new URL(item.url).hostname
|
||||
try {
|
||||
return new URL(item.url).hostname
|
||||
} catch (e) {
|
||||
return item.url.toLowerCase()
|
||||
}
|
||||
} else {
|
||||
return '0000000' + item.title.toLowerCase() // folders to the top
|
||||
}
|
||||
@ -527,7 +531,7 @@ export default {
|
||||
}
|
||||
},
|
||||
otherSearchItems() {
|
||||
if (!this.currentFolder && (!this.searchQuery || this.searchQuery.length < 2)) {
|
||||
if (!this.currentFolder && (!this.searchQuery || this.searchQuery.trim().length < 2)) {
|
||||
return []
|
||||
}
|
||||
return this.search(this.searchQuery.toLowerCase().trim(), this.tree).filter(item => !this.items.includes(item))
|
||||
|
Loading…
x
Reference in New Issue
Block a user