diff --git a/CHANGELOG.md b/CHANGELOG.md index 6193aa2..6e515e0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,7 +1,13 @@ # Changelog +## 1.12.0 +* Post length preference is now part of the profile match score +* Improved kink match scoring +* Middle click a link to pin or unpin preview + + ## 1.11.0 -* Kinks are now part of the profile matching score +* Kinks are now part of the profile match score * Merged with the latest official F-Chat codebase * Fixed broken `[collapse]` when wrapped in `[heading]` diff --git a/README.md b/README.md index 1af3676..7f0c03f 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ # Download -[Windows](https://github.com/mrstallion/fchat-rising/releases/download/v1.11.0/F-Chat-Rising-1.11.0-win.exe) (75 MB) -| [MacOS](https://github.com/mrstallion/fchat-rising/releases/download/v1.11.0/F-Chat-Rising-1.11.0-macos.dmg) (76 MB) -| [Linux](https://github.com/mrstallion/fchat-rising/releases/download/v1.11.0/F-Chat-Rising-1.11.0-linux.AppImage) (76 MB) +[Windows](https://github.com/mrstallion/fchat-rising/releases/download/v1.12.0/F-Chat-Rising-1.12.0-win.exe) (75 MB) +| [MacOS](https://github.com/mrstallion/fchat-rising/releases/download/v1.12.0/F-Chat-Rising-1.12.0-macos.dmg) (76 MB) +| [Linux](https://github.com/mrstallion/fchat-rising/releases/download/v1.12.0/F-Chat-Rising-1.12.0-linux.AppImage) (76 MB) # F-Chat Rising @@ -93,6 +93,7 @@ This repository contains a heavily customized version of the mainline F-Chat 3.0 * Sexual preference * Dominance preference * Human/anthro preference + * Post length preference * Non-custom kinks * Species 1. Maching for non-binary genders relies on kinks. For example, if your non-binary character has a preference for females, make sure 'females' are listed as a favorite kink. diff --git a/bbcode/IconView.vue b/bbcode/IconView.vue index 6cd745a..aa151fe 100644 --- a/bbcode/IconView.vue +++ b/bbcode/IconView.vue @@ -5,7 +5,7 @@ @mouseover.prevent="show()" @mouseenter.prevent="show()" @mouseleave.prevent="dismiss()" - @click.middle.prevent="toggleStickyness()" + @click.middle.prevent.stop="toggleStickyness()" @click.right.passive="dismiss(true)" @click.left.passive="dismiss(true)" > diff --git a/bbcode/UrlTagView.vue b/bbcode/UrlTagView.vue index e3a3fe6..864a550 100644 --- a/bbcode/UrlTagView.vue +++ b/bbcode/UrlTagView.vue @@ -11,7 +11,7 @@ @mouseover.prevent="show()" @mouseenter.prevent="show()" @mouseleave.prevent="dismiss()" - @click.middle.prevent="toggleStickyness()" + @click.middle.prevent.stop="toggleStickyness()" >{{text}} - +
{{error}}
@@ -220,6 +220,10 @@ core.connection.connect(this.selectedCharacter.name); } + + getChatView(): ChatView | undefined { + return this.$refs['chatview'] as ChatView; + } } diff --git a/chat/ChatView.vue b/chat/ChatView.vue index f2c787f..6ac7f6d 100644 --- a/chat/ChatView.vue +++ b/chat/ChatView.vue @@ -34,7 +34,7 @@ + @click.middle.prevent.stop="conversation.close()">
{{conversation.character.name}} @@ -54,7 +54,7 @@
+ @click.middle.prevent.stop="conversation.close()"> {{conversation.name}} diff --git a/chat/UserView.vue b/chat/UserView.vue index d9d6fbd..5210851 100644 --- a/chat/UserView.vue +++ b/chat/UserView.vue @@ -1,15 +1,15 @@ - + diff --git a/electron/package.json b/electron/package.json index 91ca1e6..0b216be 100644 --- a/electron/package.json +++ b/electron/package.json @@ -1,6 +1,6 @@ { "name": "fchat", - "version": "1.11.0", + "version": "1.12.0", "author": "The F-List Team and Mister Stallion (Esq.)", "description": "F-List.net Chat Client", "main": "main.js", diff --git a/learn/matcher-types.ts b/learn/matcher-types.ts index 76b0d81..f3e4496 100644 --- a/learn/matcher-types.ts +++ b/learn/matcher-types.ts @@ -1,3 +1,12 @@ +export enum Scoring { + MATCH = 1, + WEAK_MATCH = 0.5, + NEUTRAL = 0, + WEAK_MISMATCH = -0.5, + MISMATCH = -1 +} + + export enum TagId { Age = 1, Orientation = 2, @@ -11,10 +20,23 @@ export enum TagId { RelationshipStatus = 42, Species = 9, LanguagePreference = 49, + PostLength = 24, Kinks = 99999 } + +export enum PostLengthPreference { + NoPreference = 63, + VeryShort_1_2 = 26, + Short_2_4 = 27, + SemiParagraph_4_7 = 28, + Paragraph_7_10 = 60, + StrongParagraph_10_14 = 61, + MultiParagraph_14_25 = 62 +} + + export enum Gender { Male = 1, Female = 2, @@ -103,6 +125,72 @@ export const furryPreferenceMapping = { }; +export const postLengthPreferenceMapping = { + [PostLengthPreference.MultiParagraph_14_25]: 'multi-paragraph posts', + [PostLengthPreference.StrongParagraph_10_14]: 'strong paragraph posts', + [PostLengthPreference.Paragraph_7_10]: 'paragraph posts', + [PostLengthPreference.SemiParagraph_4_7]: 'semi-paragraph posts', + [PostLengthPreference.Short_2_4]: 'short posts', + [PostLengthPreference.VeryShort_1_2]: 'very short posts' +}; + + +export const postLengthPreferenceScoreMapping = { + [PostLengthPreference.MultiParagraph_14_25]: { + [PostLengthPreference.MultiParagraph_14_25]: Scoring.MATCH, + [PostLengthPreference.StrongParagraph_10_14]: Scoring.MATCH, + [PostLengthPreference.Paragraph_7_10]: Scoring.WEAK_MATCH, + [PostLengthPreference.SemiParagraph_4_7]: Scoring.WEAK_MISMATCH, + [PostLengthPreference.Short_2_4]: Scoring.MISMATCH, + [PostLengthPreference.VeryShort_1_2]: Scoring.MISMATCH + }, + + [PostLengthPreference.StrongParagraph_10_14]: { + [PostLengthPreference.MultiParagraph_14_25]: Scoring.MATCH, + [PostLengthPreference.StrongParagraph_10_14]: Scoring.MATCH, + [PostLengthPreference.Paragraph_7_10]: Scoring.MATCH, + [PostLengthPreference.SemiParagraph_4_7]: Scoring.WEAK_MISMATCH, + [PostLengthPreference.Short_2_4]: Scoring.MISMATCH, + [PostLengthPreference.VeryShort_1_2]: Scoring.MISMATCH + }, + + [PostLengthPreference.Paragraph_7_10]: { + [PostLengthPreference.MultiParagraph_14_25]: Scoring.WEAK_MATCH, + [PostLengthPreference.StrongParagraph_10_14]: Scoring.MATCH, + [PostLengthPreference.Paragraph_7_10]: Scoring.MATCH, + [PostLengthPreference.SemiParagraph_4_7]: Scoring.WEAK_MATCH, + [PostLengthPreference.Short_2_4]: Scoring.MISMATCH, + [PostLengthPreference.VeryShort_1_2]: Scoring.MISMATCH + }, + + [PostLengthPreference.SemiParagraph_4_7]: { + [PostLengthPreference.MultiParagraph_14_25]: Scoring.MISMATCH, + [PostLengthPreference.StrongParagraph_10_14]: Scoring.WEAK_MISMATCH, + [PostLengthPreference.Paragraph_7_10]: Scoring.WEAK_MATCH, + [PostLengthPreference.SemiParagraph_4_7]: Scoring.MATCH, + [PostLengthPreference.Short_2_4]: Scoring.MATCH, + [PostLengthPreference.VeryShort_1_2]: Scoring.WEAK_MATCH + }, + + [PostLengthPreference.Short_2_4]: { + [PostLengthPreference.MultiParagraph_14_25]: Scoring.MISMATCH, + [PostLengthPreference.StrongParagraph_10_14]: Scoring.MISMATCH, + [PostLengthPreference.Paragraph_7_10]: Scoring.WEAK_MISMATCH, + [PostLengthPreference.SemiParagraph_4_7]: Scoring.WEAK_MATCH, + [PostLengthPreference.Short_2_4]: Scoring.MATCH, + [PostLengthPreference.VeryShort_1_2]: Scoring.MATCH + }, + + [PostLengthPreference.VeryShort_1_2]: { + [PostLengthPreference.MultiParagraph_14_25]: Scoring.MISMATCH, + [PostLengthPreference.StrongParagraph_10_14]: Scoring.MISMATCH, + [PostLengthPreference.Paragraph_7_10]: Scoring.MISMATCH, + [PostLengthPreference.SemiParagraph_4_7]: Scoring.WEAK_MATCH, + [PostLengthPreference.Short_2_4]: Scoring.MATCH, + [PostLengthPreference.VeryShort_1_2]: Scoring.MATCH + } +}; + export interface GenderKinkIdMap { [key: number]: Kink } @@ -485,37 +573,37 @@ export interface SpeciesMappingCache { export const kinkMatchWeights = { - logBase: 10, - weakMismatchThreshold: 0.3, - weakMatchThreshold: 0.3, - unicornThreshold: 8.0 + // logBase: 10, + weakMismatchThreshold: 16, + weakMatchThreshold: 16, + unicornThreshold: 9 }; export const kinkMatchScoreMap = { favorite: { - favorite: 0.5, - yes: 0.25, - maybe: -0.5, - no: -2 + favorite: 1, + yes: 0.5, + maybe: -0.65, + no: -1.5 }, yes: { - favorite: 0.3, - yes: 0.2, - maybe: -0.15, + favorite: 0.5, + yes: 0.5, + maybe: -0.25, no: -0.5 }, maybe: { favorite: -0.5, - yes: -0.2, + yes: -0.25, maybe: 0, no: 0 }, no: { - favorite: -2, - yes: -0.5, + favorite: -1.5, + yes: -0.65, maybe: 0, no: 0 } @@ -571,6 +659,7 @@ export interface KinkBucketScore { score: number; count: number; weighted: number; + total: number; } export interface MatchResultKinkScores { diff --git a/learn/matcher.ts b/learn/matcher.ts index 0499116..6f71d63 100644 --- a/learn/matcher.ts +++ b/learn/matcher.ts @@ -3,22 +3,36 @@ import * as _ from 'lodash'; import { Character, CharacterInfotag, KinkChoice } from '../interfaces'; import log from 'electron-log'; //tslint:disable-line:match-default-export-name - // tslint:disable-next-line ban-ts-ignore // @ts-ignore import anyAscii from 'any-ascii'; -import {Store} from '../site/character_page/data_store'; +import { Store } from '../site/character_page/data_store'; import { - BodyType, fchatGenderMap, + BodyType, + fchatGenderMap, FurryPreference, - Gender, genderKinkMapping, - Kink, KinkBucketScore, kinkComparisonExclusionGroups, kinkComparisonExclusions, kinkComparisonSwaps, - kinkMapping, kinkMatchScoreMap, kinkMatchWeights, - KinkPreference, likelyHuman, mammalSpecies, nonAnthroSpecies, + Gender, + genderKinkMapping, + Kink, + KinkBucketScore, + kinkComparisonExclusionGroups, + kinkComparisonExclusions, + kinkComparisonSwaps, + kinkMapping, + kinkMatchScoreMap, + kinkMatchWeights, + KinkPreference, + likelyHuman, + mammalSpecies, + nonAnthroSpecies, Orientation, - Species, SpeciesMap, speciesMapping, SpeciesMappingCache, + PostLengthPreference, postLengthPreferenceMapping, postLengthPreferenceScoreMapping, Scoring, + Species, + SpeciesMap, + speciesMapping, + SpeciesMappingCache, speciesNames, SubDomRole, TagId @@ -68,13 +82,6 @@ export interface MatchResult { theirAnalysis: CharacterAnalysis; } -export enum Scoring { - MATCH = 1, - WEAK_MATCH = 0.5, - NEUTRAL = 0, - WEAK_MISMATCH = -0.5, - MISMATCH = -1 -} export interface ScoreClassMap { [key: number]: string; @@ -141,6 +148,7 @@ export class CharacterAnalysis { readonly furryPreference: FurryPreference | null; readonly age: number | null; readonly subDomRole: SubDomRole | null; + readonly postLengthPreference: PostLengthPreference | null; readonly isAnthro: boolean | null; readonly isHuman: boolean | null; @@ -154,6 +162,7 @@ export class CharacterAnalysis { this.species = Matcher.species(c); this.furryPreference = Matcher.getTagValueList(TagId.FurryPreference, c); this.subDomRole = Matcher.getTagValueList(TagId.SubDomRole, c); + this.postLengthPreference = Matcher.getTagValueList(TagId.PostLength, c); const ageTag = Matcher.getTagValue(TagId.Age, c); @@ -391,7 +400,8 @@ export class Matcher { [TagId.FurryPreference]: this.resolveFurryPairingsScore(), [TagId.Species]: this.resolveSpeciesScore(), [TagId.SubDomRole]: this.resolveSubDomScore(), - [TagId.Kinks]: this.resolveKinkScore(pronoun) + [TagId.Kinks]: this.resolveKinkScore(pronoun), + [TagId.PostLength]: this.resolvePostLengthScore() }, info: { @@ -487,6 +497,24 @@ export class Matcher { return new Score(Scoring.NEUTRAL); } + private resolvePostLengthScore(): Score { + const yourLength = this.yourAnalysis.postLengthPreference; + const theirLength = this.theirAnalysis.postLengthPreference; + + if ( + (!yourLength) + || (!theirLength) + || (yourLength === PostLengthPreference.NoPreference) + || (theirLength === PostLengthPreference.NoPreference) + ) { + return new Score(Scoring.NEUTRAL); + } + + const score = postLengthPreferenceScoreMapping[yourLength][theirLength]; + + return this.formatScoring(score, postLengthPreferenceMapping[theirLength]); + } + private resolveSpeciesScore(): Score { const you = this.you; const theirAnalysis = this.theirAnalysis; @@ -568,23 +596,32 @@ export class Matcher { private resolveKinkScore(pronoun: string): Score { - const kinkScore = this.resolveKinkBucketScore('all'); + // const kinkScore = this.resolveKinkBucketScore('all'); - log.debug('report.score.kink', this.them.name, this.you.name, kinkScore.count, kinkScore.score, kinkScore.weighted); + const scores = { + favorite: this.resolveKinkBucketScore('favorite'), + yes: this.resolveKinkBucketScore('yes'), + maybe: this.resolveKinkBucketScore('maybe'), + no: this.resolveKinkBucketScore('no') + }; - if (kinkScore.weighted === 0) { + const weighted = scores.favorite.weighted + scores.yes.weighted + scores.maybe.weighted + scores.no.weighted; + + log.debug('report.score.kink', this.them.name, this.you.name, scores, weighted); + + if (weighted === 0) { return new Score(Scoring.NEUTRAL); } - if (kinkScore.weighted < 0) { - if (Math.abs(kinkScore.weighted) < kinkMatchWeights.weakMismatchThreshold) { + if (weighted < 0) { + if (Math.abs(weighted) < kinkMatchWeights.weakMismatchThreshold) { return new Score(Scoring.WEAK_MISMATCH, `Hesitant about ${pronoun} kinks`); } return new Score(Scoring.MISMATCH, `Dislikes ${pronoun} kinks`); } - if (Math.abs(kinkScore.weighted) < kinkMatchWeights.weakMatchThreshold) { + if (Math.abs(weighted) < kinkMatchWeights.weakMatchThreshold) { return new Score(Scoring.WEAK_MATCH, `Likes ${pronoun} kinks`); } @@ -793,42 +830,49 @@ export class Matcher { (accum, yourKinkValue: any, yourKinkId: any) => { const theirKinkId = (yourKinkId in kinkComparisonSwaps) ? kinkComparisonSwaps[yourKinkId] : yourKinkId; + const isExcluded = (yourKinkId in kinkComparisonExclusions) + || ((Store.shared.kinks[yourKinkId]) && (Store.shared.kinks[yourKinkId].kink_group in kinkComparisonExclusionGroups)); + + const isBucketMatch = (yourKinkValue === bucket) + || (bucket === 'all') + || ((bucket === 'negative') && ((yourKinkValue === 'no') || (yourKinkValue === 'maybe'))) + || ((bucket === 'positive') && ((yourKinkValue === 'favorite') || (yourKinkValue === 'yes'))); + + if ((isBucketMatch) && (!isExcluded)) { + accum.total += 1; + } + if ( (!(theirKinkId in theirKinks)) - || (yourKinkId in kinkComparisonExclusions) - || ((Store.shared.kinks[yourKinkId]) && (Store.shared.kinks[yourKinkId].kink_group in kinkComparisonExclusionGroups)) + || (isExcluded) ) { return accum; } const theirKinkValue = theirKinks[theirKinkId] as any; - if ( - (yourKinkValue === bucket) - || (bucket === 'all') - || ((bucket === 'negative') && ((yourKinkValue === 'no') || (yourKinkValue === 'maybe'))) - || ((bucket === 'positive') && ((yourKinkValue === 'favorite') || (yourKinkValue === 'yes'))) - ) { + if (isBucketMatch) { return { score: accum.score + this.getKinkMatchScore(yourKinkValue, theirKinkValue), - count: accum.count + 1 + count: accum.count + 1, + total: accum.total }; } - // missed += 1; return accum; }, - { score: 0, count: 0 } + { score: 0, count: 0, total: 0 } ); // const yourBucketCounts = this.countKinksByBucket(yourKinks); // const theirBucketCounts = this.countKinksByBucket(theirKinks); - result.weighted = (result.count === 0) + result.weighted = ((result.count === 0) || (Math.abs(result.score) < 1)) ? 0 : ( - (Math.log(result.count) / Math.log(kinkMatchWeights.logBase)) // log 8 base - * (result.score / result.count) + Math.log(result.total) * Math.log(Math.abs(result.score)) * Math.sign(result.score) + // (Math.log(result.count) / Math.log(kinkMatchWeights.logBase)) // log 8 base + // * (result.score / result.count) ); return result; @@ -873,7 +917,7 @@ export class Matcher { private getKinkMatchScore(aValue: string, bValue: string): number { - return _.get(kinkMatchScoreMap, `${aValue}.${bValue}`, 0); + return _.get(kinkMatchScoreMap, `${aValue}.${bValue}`, 0) * 7; // forces range above 1.0 } diff --git a/learn/profile-cache.ts b/learn/profile-cache.ts index 4dc159b..9feaa68 100644 --- a/learn/profile-cache.ts +++ b/learn/profile-cache.ts @@ -3,9 +3,10 @@ import * as _ from 'lodash'; import core from '../chat/core'; import {Character as ComplexCharacter, CharacterGroup, Guestbook} from '../site/character_page/interfaces'; import { AsyncCache } from './async-cache'; -import { Matcher, MatchReport, Scoring } from './matcher'; +import { Matcher, MatchReport } from './matcher'; import { PermanentIndexedStore } from './store/types'; import { CharacterImage, SimpleCharacter } from '../interfaces'; +import { Scoring } from './matcher-types'; export interface MetaRecord { diff --git a/package.json b/package.json index 0663bad..eb591e9 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "f-list-rising", - "version": "1.11.0", + "version": "1.12.0", "author": "The F-List Team and and Mister Stallion (Esq.)", "description": "A heavily modded F-Chat 3.0 client for F-List", "license": "MIT", @@ -52,9 +52,9 @@ "webpack": "^5.3.2" }, "dependencies": { - "@cliqz/adblocker-electron": "^1.20.0", + "@cliqz/adblocker-electron": "^1.20.4", "jquery": "^3.6.0", - "keytar": "^7.4.0", + "keytar": "^7.5.0", "node-fetch": "^2.6.1" }, "optionalDependencies": { diff --git a/site/character_page/infotag.vue b/site/character_page/infotag.vue index e0a98ca..9c744bb 100644 --- a/site/character_page/infotag.vue +++ b/site/character_page/infotag.vue @@ -59,7 +59,7 @@ } theirInterestIsRelevant(id: number): boolean { - return ((id === TagId.FurryPreference) || (id === TagId.Orientation) || (id === TagId.SubDomRole)); + return ((id === TagId.FurryPreference) || (id === TagId.Orientation) || (id === TagId.SubDomRole) || (id === TagId.PostLength)); } yourInterestIsRelevant(id: number): boolean { diff --git a/site/character_page/match-report.vue b/site/character_page/match-report.vue index 51b9a1b..47eedaf 100644 --- a/site/character_page/match-report.vue +++ b/site/character_page/match-report.vue @@ -37,9 +37,9 @@ import * as _ from 'lodash'; import Vue from 'vue'; import * as Utils from '../utils'; - import { Matcher, MatchReport, MatchResult, Score, Scoring } from '../../learn/matcher'; + import { Matcher, MatchReport, MatchResult, Score } from '../../learn/matcher'; import core from '../../chat/core'; - import { TagId } from '../../learn/matcher-types'; + import { Scoring, TagId } from '../../learn/matcher-types'; export interface CssClassMap { [key: string]: boolean; diff --git a/yarn.lock b/yarn.lock index 6c275f8..8ada3f5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -23,41 +23,41 @@ chalk "^2.0.0" js-tokens "^4.0.0" -"@cliqz/adblocker-content@^1.20.3": - version "1.20.3" - resolved "https://registry.yarnpkg.com/@cliqz/adblocker-content/-/adblocker-content-1.20.3.tgz#198c8719cd62ef3c67a5c98e7a54336b7812ed86" - integrity sha512-aCBTiIiNgVbmDIQyUcsn0j3n+umvs0DuVlL6dccPE3qfeFxT4whUvMwjxUS2/dIBfJK9A1LywmvVke2eSPw9wg== +"@cliqz/adblocker-content@^1.20.4": + version "1.20.4" + resolved "https://registry.yarnpkg.com/@cliqz/adblocker-content/-/adblocker-content-1.20.4.tgz#68c0c628acd6da49bb5a6ad9ee0cb540a8d50acd" + integrity sha512-Cp6M6MERCsLwklX6lAmrgOxom0pr4DjxmUGLcmM9MDACOIzk/m7ya1e82bXzEWAU1Jni2Bp91xUUWxg+DLWJgQ== dependencies: - "@cliqz/adblocker-extended-selectors" "^1.20.3" + "@cliqz/adblocker-extended-selectors" "^1.20.4" -"@cliqz/adblocker-electron-preload@^1.20.3": - version "1.20.3" - resolved "https://registry.yarnpkg.com/@cliqz/adblocker-electron-preload/-/adblocker-electron-preload-1.20.3.tgz#17dff446ad742cb6e68a4572e7a75cff1fa33f95" - integrity sha512-fWAFEGj+F0VOUKZd2FqWLuguXmGzkRQz5wTCqasvndX4HSe0P8Pd2666pWK9RJW1dLJE7U61mQfTbYqlUFVTMA== +"@cliqz/adblocker-electron-preload@^1.20.4": + version "1.20.4" + resolved "https://registry.yarnpkg.com/@cliqz/adblocker-electron-preload/-/adblocker-electron-preload-1.20.4.tgz#b7d6606dfc24e7b3f80109cc6820bd203faaf26e" + integrity sha512-tIEgFJJhEDTYrSUzAL+wbw+BBVwCtuFtckA/scka990DGlXsEmkJ7HxNXvUPwhOQiV4YUwN5bsqxCDA8VDTZNw== dependencies: - "@cliqz/adblocker-content" "^1.20.3" + "@cliqz/adblocker-content" "^1.20.4" -"@cliqz/adblocker-electron@^1.20.0": - version "1.20.3" - resolved "https://registry.yarnpkg.com/@cliqz/adblocker-electron/-/adblocker-electron-1.20.3.tgz#f2b4bf5dddf90f64251c46f89238526dc0037384" - integrity sha512-ZcEl3W7R/aoUA0IPIMtvdn7gVE6O9+rDQ9OllIH/s/gVeElXZsgPEtpPMSuoJWbi9d2mlr8yo3UFvkV3u7c4gw== +"@cliqz/adblocker-electron@^1.20.4": + version "1.20.4" + resolved "https://registry.yarnpkg.com/@cliqz/adblocker-electron/-/adblocker-electron-1.20.4.tgz#6d7de52cff013ef3cd0f4a7850ebfc31f6240a46" + integrity sha512-HaHexPnJL1BBvloXuqmSh8WtpPKYHyZ+o6f+9SciySN4dJAX9BIGTk9D/V6eJWLmy6+wY7/Bpcn2Q4nrYXsqBw== dependencies: - "@cliqz/adblocker" "^1.20.3" - "@cliqz/adblocker-electron-preload" "^1.20.3" + "@cliqz/adblocker" "^1.20.4" + "@cliqz/adblocker-electron-preload" "^1.20.4" tldts-experimental "^5.6.21" -"@cliqz/adblocker-extended-selectors@^1.20.3": - version "1.20.3" - resolved "https://registry.yarnpkg.com/@cliqz/adblocker-extended-selectors/-/adblocker-extended-selectors-1.20.3.tgz#a817915948ec4e64c8b878a80a71d911ea0412c8" - integrity sha512-Xsrqg4qgpNVx80UJrAz/nS8jcbgCTIGvir0MrjoXrw0GheqRxsgE540XXP9JA7QlifLNVEOO44DpHvhUmISkQw== +"@cliqz/adblocker-extended-selectors@^1.20.4": + version "1.20.4" + resolved "https://registry.yarnpkg.com/@cliqz/adblocker-extended-selectors/-/adblocker-extended-selectors-1.20.4.tgz#6f5ab8251a0d40cacf3703f5621025e0d85d6348" + integrity sha512-VBP8iv1IdYpwQ0hbbeiXCSW7ppzK05dbPM4DyeCb54mB0CjWj/pMQwEvjMZKLWTkEyPd26oMqnxNQz1UgGaZag== -"@cliqz/adblocker@^1.20.3": - version "1.20.3" - resolved "https://registry.yarnpkg.com/@cliqz/adblocker/-/adblocker-1.20.3.tgz#4e8d03ed03c476f7b4388d25f910b1b9e0b15cc9" - integrity sha512-Dqj8fJ399kFsFQ53uW0ajA5jH5VJ5ppawOjtoV2s+7NILj1ydvw40jTrr3l/ObMvxaAGaDUj2Euo4beg3/EtRQ== +"@cliqz/adblocker@^1.20.4": + version "1.20.4" + resolved "https://registry.yarnpkg.com/@cliqz/adblocker/-/adblocker-1.20.4.tgz#63f75456b6d63f66dc73b9ac2971ed073bf26722" + integrity sha512-ylwc4fScwgDjh9mKAvBQ+oCNyZWncrPakU17KbMtq+l82LkzJ0ND0wififpeq+nI9JBiQosW+eus5R08THpwCQ== dependencies: - "@cliqz/adblocker-content" "^1.20.3" - "@cliqz/adblocker-extended-selectors" "^1.20.3" + "@cliqz/adblocker-content" "^1.20.4" + "@cliqz/adblocker-extended-selectors" "^1.20.4" "@remusao/guess-url-type" "^1.1.2" "@remusao/small" "^1.1.2" "@remusao/smaz" "^1.7.1" @@ -4271,10 +4271,10 @@ junk@^3.1.0: resolved "https://registry.yarnpkg.com/junk/-/junk-3.1.0.tgz#31499098d902b7e98c5d9b9c80f43457a88abfa1" integrity sha512-pBxcB3LFc8QVgdggvZWyeys+hnrNWg4OcZIU/1X59k5jQdLBlCsYGRQaz234SqoRLTCgMH00fY0xRJH+F9METQ== -keytar@^7.4.0: - version "7.4.0" - resolved "https://registry.yarnpkg.com/keytar/-/keytar-7.4.0.tgz#0a508d64850ca05aa3ba4127818037d13ca3219f" - integrity sha512-nELmc35YjSE4ZNSFaID/743CgDt/MdV4JLX7rRewAh9mKvU72RtF3uJMY0MdMpwdDYZhmD8FSdRCD1J97lEyVg== +keytar@^7.5.0: + version "7.6.0" + resolved "https://registry.yarnpkg.com/keytar/-/keytar-7.6.0.tgz#498e796443cb543d31722099443f29d7b5c44100" + integrity sha512-H3cvrTzWb11+iv0NOAnoNAPgEapVZnYLVHZQyxmh7jdmVfR/c0jNNFEZ6AI38W/4DeTGTaY66ZX4Z1SbfKPvCQ== dependencies: node-addon-api "^3.0.0" prebuild-install "^6.0.0"