From c75439a4b5a4ef84752a9277de646915f82ac5d5 Mon Sep 17 00:00:00 2001 From: zadam Date: Fri, 18 Sep 2020 21:47:59 +0200 Subject: [PATCH] similarity tweaks --- package-lock.json | 229 +++++++++--------- package.json | 6 +- .../app/services/frontend_script_api.js | 4 +- src/services/note_cache/entities/note.js | 3 + src/services/note_cache/similarity.js | 46 +++- src/services/note_revisions.js | 2 +- 6 files changed, 165 insertions(+), 125 deletions(-) diff --git a/package-lock.json b/package-lock.json index 02fcc815e..645338aa6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -35,9 +35,9 @@ }, "dependencies": { "ajv": { - "version": "6.12.3", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.3.tgz", - "integrity": "sha512-4K0cK3L1hsqk9xIb2z9vs/XU+PGJZ9PNpJRDS9YLzmNdX6jmVPfamLvTJr0aDAusnHyCHO6MjzlkAsgtqp9teA==", + "version": "6.12.5", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.5.tgz", + "integrity": "sha512-lRF8RORchjpKG50/WFf8xmg7sgCLFiYNNnqdKflk63whMQcWR5ngGjiSXkL9bjxy6B2npOK2HSMN49jEBMSkag==", "dev": true, "requires": { "fast-deep-equal": "^3.1.1", @@ -1160,9 +1160,9 @@ } }, "ajv-keywords": { - "version": "3.4.1", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.4.1.tgz", - "integrity": "sha512-RO1ibKvd27e6FEShVFfPALuHI3WjSVNeK5FIsmme/LYRNxjKuNj+Dt7bucLa6NdSv3JcVTyMlm9kGR84z1XpaQ==", + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", "dev": true }, "ansi-align": { @@ -1250,27 +1250,27 @@ "integrity": "sha512-uMgjozySS8adZZYePpaWs8cxB9/kdzmpX6SgJZ+wbz1K5eYk5QMYDVJaZKhxyIHUdnnJkfR7SVgStgH7LkGUyg==" }, "app-builder-bin": { - "version": "3.5.9", - "resolved": "https://registry.npmjs.org/app-builder-bin/-/app-builder-bin-3.5.9.tgz", - "integrity": "sha512-NSjtqZ3x2kYiDp3Qezsgukx/AUzKPr3Xgf9by4cYt05ILWGAptepeeu0Uv+7MO+41o6ujhLixTou8979JGg2Kg==", + "version": "3.5.10", + "resolved": "https://registry.npmjs.org/app-builder-bin/-/app-builder-bin-3.5.10.tgz", + "integrity": "sha512-Jd+GW68lR0NeetgZDo47PdWBEPdnD+p0jEa7XaxjRC8u6Oo/wgJsfKUkORRgr2NpkD19IFKN50P6JYy04XHFLQ==", "dev": true }, "app-builder-lib": { - "version": "22.8.0", - "resolved": "https://registry.npmjs.org/app-builder-lib/-/app-builder-lib-22.8.0.tgz", - "integrity": "sha512-RGaIRjCUrqkmh6QOGsyekQPEOaVynHfmeh8JZuyUymFYUOFdzBbPamkA2nhBVBTkkgfjRHsxK7LhedFKPzvWEQ==", + "version": "22.8.1", + "resolved": "https://registry.npmjs.org/app-builder-lib/-/app-builder-lib-22.8.1.tgz", + "integrity": "sha512-D/ac1+vuGIAAwEeTtXl8b+qWl7Gz/IQatFyzYl2ocag/7N8LqUjKzZFJJISQPWt6PFDPDH0oCj8/GMh63aV0yw==", "dev": true, "requires": { "7zip-bin": "~5.0.3", "@develar/schema-utils": "~2.6.5", "async-exit-hook": "^2.0.1", "bluebird-lst": "^1.0.9", - "builder-util": "22.8.0", + "builder-util": "22.8.1", "builder-util-runtime": "8.7.2", "chromium-pickle-js": "^0.2.0", - "debug": "^4.1.1", + "debug": "^4.2.0", "ejs": "^3.1.3", - "electron-publish": "22.8.0", + "electron-publish": "22.8.1", "fs-extra": "^9.0.1", "hosted-git-info": "^3.0.5", "is-ci": "^2.0.0", @@ -1285,6 +1285,15 @@ "temp-file": "^3.3.7" }, "dependencies": { + "debug": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz", + "integrity": "sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, "hosted-git-info": { "version": "3.0.5", "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-3.0.5.tgz", @@ -1294,19 +1303,10 @@ "lru-cache": "^6.0.0" } }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", "dev": true } } @@ -1883,19 +1883,19 @@ "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==" }, "builder-util": { - "version": "22.8.0", - "resolved": "https://registry.npmjs.org/builder-util/-/builder-util-22.8.0.tgz", - "integrity": "sha512-H80P1JzVy3TGpi63x81epQDK24XalL034+jAZlrPb5IhLtYmnNNdxCCAVJvg3VjSISd73Y71O+uhqCxWpqbPHw==", + "version": "22.8.1", + "resolved": "https://registry.npmjs.org/builder-util/-/builder-util-22.8.1.tgz", + "integrity": "sha512-LZG+E1xszMdut5hL5h7RkJQ7yOsQqdhJYgn1wvOP7MmF3MoUPRNDiRodLpYiWlaqZmgYhcfaipR/Mb8F/RqK8w==", "dev": true, "requires": { "7zip-bin": "~5.0.3", "@types/debug": "^4.1.5", "@types/fs-extra": "^9.0.1", - "app-builder-bin": "3.5.9", + "app-builder-bin": "3.5.10", "bluebird-lst": "^1.0.9", "builder-util-runtime": "8.7.2", "chalk": "^4.1.0", - "debug": "^4.1.1", + "debug": "^4.2.0", "fs-extra": "^9.0.1", "is-ci": "^2.0.0", "js-yaml": "^3.14.0", @@ -1938,6 +1938,21 @@ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true + }, + "debug": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz", + "integrity": "sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "dev": true } } }, @@ -2084,9 +2099,9 @@ }, "dependencies": { "get-stream": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.1.0.tgz", - "integrity": "sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", "dev": true, "requires": { "pump": "^3.0.0" @@ -2219,9 +2234,9 @@ "dev": true }, "cli-boxes": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.0.tgz", - "integrity": "sha512-gpaBrMAizVEANOpfZp/EEUixTXDyGt7DFzdK5hU+UbWt/J0lB0w20ncZj59Z9a93xHb9u12zF5BS6i9RKbtg4w==", + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", + "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==", "dev": true }, "cli-cursor": { @@ -2840,9 +2855,9 @@ } }, "dayjs": { - "version": "1.8.35", - "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.8.35.tgz", - "integrity": "sha512-isAbIEenO4ilm6f8cpqvgjZCsuerDAz2Kb7ri201AiNn58aqXuaLJEnCtfIMdCvERZHNGRY5lDMTr/jdAnKSWQ==" + "version": "1.8.36", + "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.8.36.tgz", + "integrity": "sha512-3VmRXEtw7RZKAf+4Tv1Ym9AGeo8r8+CjDi26x+7SYQil1UqtqdaokhzoEJohqlzt0m5kacJSDhJQkG/LWhpRBw==" }, "debug": { "version": "4.1.1", @@ -3025,13 +3040,13 @@ } }, "dmg-builder": { - "version": "22.8.0", - "resolved": "https://registry.npmjs.org/dmg-builder/-/dmg-builder-22.8.0.tgz", - "integrity": "sha512-orePWjcrl97SYLA8F/6UUtbXJSoZCYu5KOP1lVqD4LOomr8bjGDyEVYZmZYcg5WqKmXucdmO6OpqgzH/aRMMuA==", + "version": "22.8.1", + "resolved": "https://registry.npmjs.org/dmg-builder/-/dmg-builder-22.8.1.tgz", + "integrity": "sha512-WeGom1moM00gBII6swljl4DQGrlJuEivoUhOmh8U9p1ALgeJL+EiTHbZFERlj8Ejy62xUUjURV+liOxUKmJFWg==", "dev": true, "requires": { - "app-builder-lib": "22.8.0", - "builder-util": "22.8.0", + "app-builder-lib": "22.8.1", + "builder-util": "22.8.1", "fs-extra": "^9.0.1", "iconv-lite": "^0.6.2", "js-yaml": "^3.14.0", @@ -3094,9 +3109,9 @@ } }, "dot-prop": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.2.0.tgz", - "integrity": "sha512-uEUyaDKoSQ1M4Oq8l45hSE26SnTxL6snNnqvK/VWx5wJhmff5z0FUVJDKDanor/6w3kzE3i7XZOk+7wC0EXr1A==", + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", + "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", "dev": true, "requires": { "is-obj": "^2.0.0" @@ -3154,25 +3169,25 @@ } }, "electron-builder": { - "version": "22.8.0", - "resolved": "https://registry.npmjs.org/electron-builder/-/electron-builder-22.8.0.tgz", - "integrity": "sha512-dUv4F3srJouqxhWivtKqSoQP4Df6vYgjooGdzms+iYMTFi9f0b4LlEbr7kgsPvte8zAglee7VOGOODkCRJDkUQ==", + "version": "22.8.1", + "resolved": "https://registry.npmjs.org/electron-builder/-/electron-builder-22.8.1.tgz", + "integrity": "sha512-Hs7KTMq1rGSvT0fwGKXrjbLiJkK6sAKDQooUSwklOkktUgWi4ATjlP0fVE3l8SmS7zcLoww2yDZonSDqxEFhaQ==", "dev": true, "requires": { "@types/yargs": "^15.0.5", - "app-builder-lib": "22.8.0", + "app-builder-lib": "22.8.1", "bluebird-lst": "^1.0.9", - "builder-util": "22.8.0", + "builder-util": "22.8.1", "builder-util-runtime": "8.7.2", "chalk": "^4.1.0", - "dmg-builder": "22.8.0", + "dmg-builder": "22.8.1", "fs-extra": "^9.0.1", "is-ci": "^2.0.0", "lazy-val": "^1.0.4", "read-config-file": "6.0.0", "sanitize-filename": "^1.6.3", "update-notifier": "^4.1.0", - "yargs": "^15.3.1" + "yargs": "^15.4.1" }, "dependencies": { "ansi-styles": { @@ -3523,14 +3538,14 @@ } }, "electron-publish": { - "version": "22.8.0", - "resolved": "https://registry.npmjs.org/electron-publish/-/electron-publish-22.8.0.tgz", - "integrity": "sha512-uM0Zdi9hUqqGOrPj478v7toTvV1Kgto1w11rIiI168batiXAJvNLD8VZRfehOrZT0ibUyZlw8FtxoGCrjyHUOw==", + "version": "22.8.1", + "resolved": "https://registry.npmjs.org/electron-publish/-/electron-publish-22.8.1.tgz", + "integrity": "sha512-zqI66vl7j1CJZJ60J+1ez1tQNQeuqVspW44JvYDa5kZbM5wSFDAJFMK9RWHOqRF1Ezd4LDeiBa4aeTOwOt9syA==", "dev": true, "requires": { "@types/fs-extra": "^9.0.1", "bluebird-lst": "^1.0.9", - "builder-util": "22.8.0", + "builder-util": "22.8.1", "builder-util-runtime": "8.7.2", "chalk": "^4.1.0", "fs-extra": "^9.0.1", @@ -3748,13 +3763,21 @@ } }, "enhanced-resolve": { - "version": "5.0.0-beta.10", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.0.0-beta.10.tgz", - "integrity": "sha512-vEyxvHv3f8xl7i7QmTQ6BqKY32acSPQ4dTZo8WRMtcqTDYH9YyXnDxqXsQqBLvdRHUiwl9nVivESiM1RcrxbKQ==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.0.0.tgz", + "integrity": "sha512-6F037vvK16tgLlRgUx6ZEZISMysNvnnk09SILFrx3bNa1UsSLpIXFzWOmtiDxf1ISPAG6/wHBI61PEkeuTLVNA==", "dev": true, "requires": { - "graceful-fs": "^4.2.0", - "tapable": "^2.0.0-beta.10" + "graceful-fs": "^4.2.4", + "tapable": "^2.0.0" + }, + "dependencies": { + "graceful-fs": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", + "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", + "dev": true + } } }, "enquirer": { @@ -7572,12 +7595,6 @@ "uri-js": "^4.2.2" } }, - "ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true - }, "fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", @@ -7677,9 +7694,9 @@ } }, "serialize-javascript": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", - "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-5.0.1.tgz", + "integrity": "sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA==", "dev": true, "requires": { "randombytes": "^2.1.0" @@ -8277,9 +8294,9 @@ "dev": true }, "tapable": { - "version": "2.0.0-beta.11", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.0.0-beta.11.tgz", - "integrity": "sha512-cAhRzCvMdyJsxmdrSXG8/SUlJG4WJUxD/csuYAybUFjKVt74Y6pTyZ/I1ZK+enmCkWZN0JWxh14G69temaGSiA==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.0.0.tgz", + "integrity": "sha512-bjzn0C0RWoffnNdTzNi7rNDhs1Zlwk2tRXgk8EiHKAOX1Mag3d6T0Y5zNa7l9CJ+EoUne/0UHdwS8tMbkh9zDg==", "dev": true }, "tar": { @@ -8409,9 +8426,9 @@ "dev": true }, "terser": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/terser/-/terser-5.3.1.tgz", - "integrity": "sha512-yD80f4hdwCWTH5mojzxe1q8bN1oJbsK/vfJGLcPZM/fl+/jItIVNKhFIHqqR71OipFWMLgj3Kc+GIp6CeIqfnA==", + "version": "5.3.2", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.3.2.tgz", + "integrity": "sha512-H67sydwBz5jCUA32ZRL319ULu+Su1cAoZnnc+lXnenGRYWyLE3Scgkt8mNoAsMx0h5kdo758zdoS0LG9rYZXDQ==", "dev": true, "requires": { "commander": "^2.20.0", @@ -8428,9 +8445,9 @@ } }, "terser-webpack-plugin": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-4.2.0.tgz", - "integrity": "sha512-Wi0YFbWKG8gBXhbJmrMusRcoXl/C9U5BzIPC2Tn3Si0hejGhhIh0gPf9rEfOCxwigzRPLC8PXv42qDiRTocMXg==", + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-4.2.1.tgz", + "integrity": "sha512-D0IZQNl1ZN/JivFNDFzOeU2Bk2LdQQESHJhKTHsodpUmISkaeRwVFk7gzHzX4OuQwanDGelOxIEsBt1SZ+s6nA==", "dev": true, "requires": { "cacache": "^15.0.5", @@ -8438,9 +8455,9 @@ "jest-worker": "^26.3.0", "p-limit": "^3.0.2", "schema-utils": "^2.7.1", - "serialize-javascript": "^4.0.0", + "serialize-javascript": "^5.0.1", "source-map": "^0.6.1", - "terser": "^5.3.0", + "terser": "^5.3.1", "webpack-sources": "^1.4.3" }, "dependencies": { @@ -8868,9 +8885,9 @@ } }, "update-notifier": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-4.1.0.tgz", - "integrity": "sha512-w3doE1qtI0/ZmgeoDoARmI5fjDoT93IfKgEGqm26dGUOh8oNpaSTsGNdYRN/SjOuo10jcJGwkEL3mroKzktkew==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-4.1.1.tgz", + "integrity": "sha512-9y+Kds0+LoLG6yN802wVXoIfxYEwh3FlZwzMwpCZp62S2i1/Jzeqb9Eeeju3NSHccGGasfGlK5/vEHbAifYRDg==", "dev": true, "requires": { "boxen": "^4.2.0", @@ -9030,9 +9047,9 @@ } }, "watchpack": { - "version": "2.0.0-beta.15", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.0.0-beta.15.tgz", - "integrity": "sha512-zyhhC7vEajo5fZEUxlhVpC1uLAOs088zy8RwzcMp8YucTBirNCNmTFQWVeoKxKNNqEfYUBQdVzW3wfItcc/eUQ==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.0.0.tgz", + "integrity": "sha512-xSdCxxYZWNk3VK13bZRYhsQpfa8Vg63zXG+3pyU8ouqSLRCv4IGXIp9Kr226q6GBkGRlZrST2wwKtjfKz2m7Cg==", "dev": true, "requires": { "glob-to-regexp": "^0.4.1", @@ -9054,9 +9071,9 @@ "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==" }, "webpack": { - "version": "5.0.0-beta.30", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.0.0-beta.30.tgz", - "integrity": "sha512-pOAAo71m6icygRrOPn/lQM4Ky8MN+9dDBwEU9Get285VBbmuZE6AFqizEEV692mYgUit/0+7vnjsnUr8xX2puA==", + "version": "5.0.0-beta.32", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.0.0-beta.32.tgz", + "integrity": "sha512-PrEyICK8AGeY/yK6yuHk7iuo5y1lMOuD2tI0rM+pG8ZYR6tjdkmvvu0kJGBeor9AaPjB46YA4BDBigMdBLCFCA==", "dev": true, "requires": { "@types/eslint-scope": "^3.7.0", @@ -9067,7 +9084,7 @@ "@webassemblyjs/wasm-parser": "1.9.0", "acorn": "^7.4.0", "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "5.0.0-beta.10", + "enhanced-resolve": "^5.0.0", "eslint-scope": "^5.1.0", "events": "^3.2.0", "glob-to-regexp": "^0.4.1", @@ -9078,10 +9095,10 @@ "neo-async": "^2.6.2", "pkg-dir": "^4.2.0", "schema-utils": "^2.7.0", - "tapable": "^2.0.0-beta.11", + "tapable": "^2.0.0", "terser-webpack-plugin": "^4.1.0", - "watchpack": "2.0.0-beta.15", - "webpack-sources": "2.0.0-beta.10" + "watchpack": "^2.0.0", + "webpack-sources": "^2.0.0" }, "dependencies": { "acorn": { @@ -9335,9 +9352,9 @@ } }, "webpack-sources": { - "version": "2.0.0-beta.10", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-2.0.0-beta.10.tgz", - "integrity": "sha512-HxeYa9Q6nMk3MtSbi5mKUUV+gOxYlGQwujKbeK0JQ+SmLSMgC4cQkZ+xpsWvsUtTvskDwpKvuVLpE9eW7vn0IQ==", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-2.0.0.tgz", + "integrity": "sha512-CpCkDjEKa5vYVRDFDRABBkBomz+82lz9bpXViN1LBc8L/WDXvSyELKcBvBnTeDEiRfMJCGAFG9+04406PLSsIA==", "dev": true, "requires": { "source-list-map": "^2.0.1", @@ -9727,14 +9744,6 @@ "requires": { "camelcase": "^5.0.0", "decamelize": "^1.2.0" - }, - "dependencies": { - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true - } } }, "yauzl": { diff --git a/package.json b/package.json index 1af49a519..cc3160f76 100644 --- a/package.json +++ b/package.json @@ -32,7 +32,7 @@ "commonmark": "0.29.2", "cookie-parser": "1.4.5", "csurf": "1.11.0", - "dayjs": "1.8.35", + "dayjs": "1.8.36", "debug": "4.1.1", "ejs": "3.1.5", "electron-debug": "3.1.0", @@ -77,7 +77,7 @@ "devDependencies": { "cross-env": "7.0.2", "electron": "9.3.1", - "electron-builder": "22.8.0", + "electron-builder": "22.8.1", "electron-packager": "15.1.0", "electron-rebuild": "2.0.3", "esm": "3.2.25", @@ -85,7 +85,7 @@ "jsdoc": "3.6.5", "lorem-ipsum": "2.0.3", "rcedit": "2.2.0", - "webpack": "5.0.0-beta.30", + "webpack": "5.0.0-beta.32", "webpack-cli": "4.0.0-beta.8" }, "optionalDependencies": { diff --git a/src/public/app/services/frontend_script_api.js b/src/public/app/services/frontend_script_api.js index 6f0601d3a..3aa28b7e1 100644 --- a/src/public/app/services/frontend_script_api.js +++ b/src/public/app/services/frontend_script_api.js @@ -169,7 +169,7 @@ function FrontendScriptApi(startNote, currentNote, originEntity = null, $contain /** * This is a powerful search method - you can search by attributes and their values, e.g.: - * "@dateModified =* MONTH AND @log". See full documentation for all options at: https://github.com/zadam/trilium/wiki/Search + * "#dateModified =* MONTH AND #log". See full documentation for all options at: https://github.com/zadam/trilium/wiki/Search * * @method * @param {string} searchString @@ -185,7 +185,7 @@ function FrontendScriptApi(startNote, currentNote, originEntity = null, $contain /** * This is a powerful search method - you can search by attributes and their values, e.g.: - * "@dateModified =* MONTH AND @log". See full documentation for all options at: https://github.com/zadam/trilium/wiki/Search + * "#dateModified =* MONTH AND #log". See full documentation for all options at: https://github.com/zadam/trilium/wiki/Search * * @method * @param {string} searchString diff --git a/src/services/note_cache/entities/note.js b/src/services/note_cache/entities/note.js index d5bdfc35b..0ed575941 100644 --- a/src/services/note_cache/entities/note.js +++ b/src/services/note_cache/entities/note.js @@ -341,6 +341,9 @@ class Note { delete pojo.ancestorCache; delete pojo.attributeCache; delete pojo.flatTextCache; + delete pojo.children; + delete pojo.parents; + delete pojo.parentBranches; return pojo; } diff --git a/src/services/note_cache/similarity.js b/src/services/note_cache/similarity.js index 831e9acbc..b9382d641 100644 --- a/src/services/note_cache/similarity.js +++ b/src/services/note_cache/similarity.js @@ -2,6 +2,14 @@ const noteCache = require('./note_cache'); const noteCacheService = require('./note_cache_service.js'); const dateUtils = require('../date_utils'); +const DEBUG = false; + +const IGNORED_ATTRS = [ + "datenote", + "monthnote", + "yearnote" +]; + const IGNORED_ATTR_NAMES = [ "includenotelink", "internallink", @@ -88,6 +96,10 @@ function buildRewardMap(note) { // inherited notes get small penalization const reward = note.noteId === attr.noteId ? 0.8 : 0.5; + if (IGNORED_ATTRS.includes(attr.name)) { + continue; + } + if (!IGNORED_ATTR_NAMES.includes(attr.name)) { addToRewardMap(attr.name, reward); } @@ -149,7 +161,7 @@ function splitToWords(text) { let words = wordCache[text]; if (!words) { - wordCache[text] = words = text.toLowerCase().split(/\W+/); + wordCache[text] = words = text.toLowerCase().split(/[^\p{L}\p{N}]+/u); for (const idx in words) { if (WORD_BLACKLIST.includes(words[idx])) { @@ -182,6 +194,7 @@ async function findSimilarNotes(noteId) { const rewardMap = buildRewardMap(baseNote); const ancestorRewardCache = {}; const ancestorNoteIds = new Set(baseNote.ancestors.map(note => note.noteId)); + let displayRewards = false; function gatherRewards(text, factor = 1) { if (!text) { @@ -195,7 +208,13 @@ async function findSimilarNotes(noteId) { const lengthPenalization = 1 / Math.pow(text.length, 0.3); for (const word of splitToWords(text)) { - counter += rewardMap[word] * factor * lengthPenalization || 0; + const reward = rewardMap[word] * factor * lengthPenalization || 0; + + if (displayRewards && reward > 0) { + console.log(`Reward ${Math.round(reward * 10) / 10} for word: ${word}`); + } + + counter += reward; } return counter; @@ -243,6 +262,10 @@ async function findSimilarNotes(noteId) { continue; } + if (IGNORED_ATTRS.includes(attr.name)) { + continue; + } + if (!IGNORED_ATTR_NAMES.includes(attr.name)) { score += gatherRewards(attr.name); } @@ -307,15 +330,20 @@ async function findSimilarNotes(noteId) { results.sort((a, b) => a.score > b.score ? -1 : 1); - results.forEach(r => { - const note = noteCache.notes[r.noteId]; + if (DEBUG) { + console.log("REWARD MAP", rewardMap); - if (!note.isDecrypted) { - console.log(note.pojo); + if (results.length >= 1) { + const note = noteCache.notes[results[0].noteId]; + + console.log("WINNER", note.pojo); + + displayRewards = true; + const totalReward = computeScore(note); + + console.log("Total reward:", Math.round(totalReward * 10) / 10); } - }); - - console.log(rewardMap); + } return results.length > 200 ? results.slice(0, 200) : results; } diff --git a/src/services/note_revisions.js b/src/services/note_revisions.js index 329bfd499..19eabc120 100644 --- a/src/services/note_revisions.js +++ b/src/services/note_revisions.js @@ -36,7 +36,7 @@ function createNoteRevision(note) { return; } - const contentMetadata = note.getContentMetadata();console.log("contentMetadata", contentMetadata); + const contentMetadata = note.getContentMetadata(); const noteRevision = new NoteRevision({ noteId: note.noteId,