mirror of
https://github.com/streetwriters/notesnook.git
synced 2025-12-16 19:57:52 +01:00
clipper: remove unneeded code & packages
Signed-off-by: 01zulfi <85733202+01zulfi@users.noreply.github.com>
This commit is contained in:
467
packages/clipper/package-lock.json
generated
467
packages/clipper/package-lock.json
generated
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "@notesnook/clipper",
|
||||
"version": "2.1.3",
|
||||
"lockfileVersion": 2,
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
@@ -11,9 +11,7 @@
|
||||
"license": "GPL-3.0-or-later",
|
||||
"dependencies": {
|
||||
"@mozilla/readability": "^0.4.2",
|
||||
"css-what": "6.1.0",
|
||||
"hyperapp": "^2.0.22",
|
||||
"specificity": "^0.4.1"
|
||||
"hyperapp": "^2.0.22"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@playwright/test": "1.48.2",
|
||||
@@ -22,9 +20,7 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@emnapi/core": {
|
||||
"version": "1.5.0",
|
||||
"resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.5.0.tgz",
|
||||
"integrity": "sha512-sbP8GzB1WDzacS8fgNPpHlp6C9VZe+SJP3F90W9rLemaQj2PzIuTEl1qDOYQf58YIpyjViI24y9aPWCjEzY2cg==",
|
||||
"version": "1.6.0",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
@@ -34,9 +30,7 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@emnapi/runtime": {
|
||||
"version": "1.5.0",
|
||||
"resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.5.0.tgz",
|
||||
"integrity": "sha512-97/BJ3iXHww3djw6hYIfErCZFee7qCtrneuLa20UXFCOTCfBM2cvQHjWJ2EG0s0MtdNwInarqCTz35i4wWXHsQ==",
|
||||
"version": "1.6.0",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
@@ -46,8 +40,6 @@
|
||||
},
|
||||
"node_modules/@emnapi/wasi-threads": {
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.1.0.tgz",
|
||||
"integrity": "sha512-WI0DdZ8xFSbgMjR1sFsKABJ/C5OnRrjT06JXbZKexJGrDuPTzZdDYfFlsgcCXCyf+suG5QU2e/y1Wo2V/OapLQ==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
@@ -57,15 +49,11 @@
|
||||
},
|
||||
"node_modules/@module-federation/error-codes": {
|
||||
"version": "0.18.0",
|
||||
"resolved": "https://registry.npmjs.org/@module-federation/error-codes/-/error-codes-0.18.0.tgz",
|
||||
"integrity": "sha512-Woonm8ehyVIUPXChmbu80Zj6uJkC0dD9SJUZ/wOPtO8iiz/m+dkrOugAuKgoiR6qH4F+yorWila954tBz4uKsQ==",
|
||||
"dev": true,
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/@module-federation/runtime": {
|
||||
"version": "0.18.0",
|
||||
"resolved": "https://registry.npmjs.org/@module-federation/runtime/-/runtime-0.18.0.tgz",
|
||||
"integrity": "sha512-+C4YtoSztM7nHwNyZl6dQKGUVJdsPrUdaf3HIKReg/GQbrt9uvOlUWo2NXMZ8vDAnf/QRrpSYAwXHmWDn9Obaw==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
@@ -76,8 +64,6 @@
|
||||
},
|
||||
"node_modules/@module-federation/runtime-core": {
|
||||
"version": "0.18.0",
|
||||
"resolved": "https://registry.npmjs.org/@module-federation/runtime-core/-/runtime-core-0.18.0.tgz",
|
||||
"integrity": "sha512-ZyYhrDyVAhUzriOsVfgL6vwd+5ebYm595Y13KeMf6TKDRoUHBMTLGQ8WM4TDj8JNsy7LigncK8C03fn97of0QQ==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
@@ -87,8 +73,6 @@
|
||||
},
|
||||
"node_modules/@module-federation/runtime-tools": {
|
||||
"version": "0.18.0",
|
||||
"resolved": "https://registry.npmjs.org/@module-federation/runtime-tools/-/runtime-tools-0.18.0.tgz",
|
||||
"integrity": "sha512-fSga9o4t1UfXNV/Kh6qFvRyZpPp3EHSPRISNeyT8ZoTpzDNiYzhtw0BPUSSD8m6C6XQh2s/11rI4g80UY+d+hA==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
@@ -98,15 +82,11 @@
|
||||
},
|
||||
"node_modules/@module-federation/sdk": {
|
||||
"version": "0.18.0",
|
||||
"resolved": "https://registry.npmjs.org/@module-federation/sdk/-/sdk-0.18.0.tgz",
|
||||
"integrity": "sha512-Lo/Feq73tO2unjmpRfyyoUkTVoejhItXOk/h5C+4cistnHbTV8XHrW/13fD5e1Iu60heVdAhhelJd6F898Ve9A==",
|
||||
"dev": true,
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/@module-federation/webpack-bundler-runtime": {
|
||||
"version": "0.18.0",
|
||||
"resolved": "https://registry.npmjs.org/@module-federation/webpack-bundler-runtime/-/webpack-bundler-runtime-0.18.0.tgz",
|
||||
"integrity": "sha512-TEvErbF+YQ+6IFimhUYKK3a5wapD90d90sLsNpcu2kB3QGT7t4nIluE25duXuZDVUKLz86tEPrza/oaaCWTpvQ==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
@@ -116,16 +96,13 @@
|
||||
},
|
||||
"node_modules/@mozilla/readability": {
|
||||
"version": "0.4.2",
|
||||
"resolved": "https://registry.npmjs.org/@mozilla/readability/-/readability-0.4.2.tgz",
|
||||
"integrity": "sha512-48MJXzi4Dhy2fJ3lGjmwdEJKoMmn3oiYew9n/1OW6cZy78hAzRIyDJDBCGrg4PBFDyY4xos+H4LCFn5QVRDcfw==",
|
||||
"license": "Apache-2.0",
|
||||
"engines": {
|
||||
"node": ">=10.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@napi-rs/wasm-runtime": {
|
||||
"version": "1.0.6",
|
||||
"resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.0.6.tgz",
|
||||
"integrity": "sha512-DXj75ewm11LIWUk198QSKUTxjyRjsBwk09MuMk5DGK+GDUtyPhhEHOGP/Xwwj3DjQXXkivoBirmOnKrLfc0+9g==",
|
||||
"version": "1.0.7",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
@@ -137,9 +114,8 @@
|
||||
},
|
||||
"node_modules/@playwright/test": {
|
||||
"version": "1.48.2",
|
||||
"resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.48.2.tgz",
|
||||
"integrity": "sha512-54w1xCWfXuax7dz4W2M9uw0gDyh+ti/0K/MxcCUxChFh37kkdxPdfZDw5QBbuPUJHr1CiHJ1hXgSs+GgeQc5Zw==",
|
||||
"dev": true,
|
||||
"license": "Apache-2.0",
|
||||
"dependencies": {
|
||||
"playwright": "1.48.2"
|
||||
},
|
||||
@@ -151,17 +127,15 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@rsbuild/core": {
|
||||
"version": "1.5.13",
|
||||
"resolved": "https://registry.npmjs.org/@rsbuild/core/-/core-1.5.13.tgz",
|
||||
"integrity": "sha512-P+TCvZCVpBYZ3GDdnzR/tZKicE41khJIqIRlJYnEc9dwUfX1/eqRf8lA8yrsbB5iZbSfj1iOoH1N25cCQ3hhuA==",
|
||||
"version": "1.5.17",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@rspack/core": "1.5.8",
|
||||
"@rspack/lite-tapable": "~1.0.1",
|
||||
"@swc/helpers": "^0.5.17",
|
||||
"core-js": "~3.45.1",
|
||||
"jiti": "^2.6.0"
|
||||
"core-js": "~3.46.0",
|
||||
"jiti": "^2.6.1"
|
||||
},
|
||||
"bin": {
|
||||
"rsbuild": "bin/rsbuild.js"
|
||||
@@ -172,8 +146,6 @@
|
||||
},
|
||||
"node_modules/@rspack/binding": {
|
||||
"version": "1.5.8",
|
||||
"resolved": "https://registry.npmjs.org/@rspack/binding/-/binding-1.5.8.tgz",
|
||||
"integrity": "sha512-/91CzhRl9r5BIQCgGsS7jA6MDbw1I2BQpbfcUUdkdKl2P79K3Zo/Mw/TvKzS86catwLaUQEgkGRmYawOfPg7ow==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"optionalDependencies": {
|
||||
@@ -189,7 +161,19 @@
|
||||
"@rspack/binding-win32-x64-msvc": "1.5.8"
|
||||
}
|
||||
},
|
||||
"node_modules/@rspack/binding-darwin-arm64": {
|
||||
"node_modules/@rspack/binding-win32-x64-msvc": {
|
||||
"version": "1.5.8",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"win32"
|
||||
]
|
||||
},
|
||||
"node_modules/@rspack/binding/node_modules/@rspack/binding-darwin-arm64": {
|
||||
"version": "1.5.8",
|
||||
"resolved": "https://registry.npmjs.org/@rspack/binding-darwin-arm64/-/binding-darwin-arm64-1.5.8.tgz",
|
||||
"integrity": "sha512-spJfpOSN3f7V90ic45/ET2NKB2ujAViCNmqb0iGurMNQtFRq+7Kd+jvVKKGXKBHBbsQrFhidSWbbqy2PBPGK8g==",
|
||||
@@ -203,7 +187,7 @@
|
||||
"darwin"
|
||||
]
|
||||
},
|
||||
"node_modules/@rspack/binding-darwin-x64": {
|
||||
"node_modules/@rspack/binding/node_modules/@rspack/binding-darwin-x64": {
|
||||
"version": "1.5.8",
|
||||
"resolved": "https://registry.npmjs.org/@rspack/binding-darwin-x64/-/binding-darwin-x64-1.5.8.tgz",
|
||||
"integrity": "sha512-YFOzeL1IBknBcri8vjUp43dfUBylCeQnD+9O9p0wZmLAw7DtpN5JEOe2AkGo8kdTqJjYKI+cczJPKIw6lu1LWw==",
|
||||
@@ -217,7 +201,7 @@
|
||||
"darwin"
|
||||
]
|
||||
},
|
||||
"node_modules/@rspack/binding-linux-arm64-gnu": {
|
||||
"node_modules/@rspack/binding/node_modules/@rspack/binding-linux-arm64-gnu": {
|
||||
"version": "1.5.8",
|
||||
"resolved": "https://registry.npmjs.org/@rspack/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.5.8.tgz",
|
||||
"integrity": "sha512-UAWCsOnpkvy8eAVRo0uipbHXDhnoDq5zmqWTMhpga0/a3yzCp2e+fnjZb/qnFNYb5MeL0O1mwMOYgn1M3oHILQ==",
|
||||
@@ -231,7 +215,7 @@
|
||||
"linux"
|
||||
]
|
||||
},
|
||||
"node_modules/@rspack/binding-linux-arm64-musl": {
|
||||
"node_modules/@rspack/binding/node_modules/@rspack/binding-linux-arm64-musl": {
|
||||
"version": "1.5.8",
|
||||
"resolved": "https://registry.npmjs.org/@rspack/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.5.8.tgz",
|
||||
"integrity": "sha512-GnSvGT4GjokPSD45cTtE+g7LgghuxSP1MRmvd+Vp/I8pnxTVSTsebRod4TAqyiv+l11nuS8yqNveK9qiOkBLWw==",
|
||||
@@ -245,7 +229,7 @@
|
||||
"linux"
|
||||
]
|
||||
},
|
||||
"node_modules/@rspack/binding-linux-x64-gnu": {
|
||||
"node_modules/@rspack/binding/node_modules/@rspack/binding-linux-x64-gnu": {
|
||||
"version": "1.5.8",
|
||||
"resolved": "https://registry.npmjs.org/@rspack/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.5.8.tgz",
|
||||
"integrity": "sha512-XLxh5n/pzUfxsugz/8rVBv+Tx2nqEM+9rharK69kfooDsQNKyz7PANllBQ/v4svJ+W0BRHnDL4qXSGdteZeEjA==",
|
||||
@@ -259,7 +243,7 @@
|
||||
"linux"
|
||||
]
|
||||
},
|
||||
"node_modules/@rspack/binding-linux-x64-musl": {
|
||||
"node_modules/@rspack/binding/node_modules/@rspack/binding-linux-x64-musl": {
|
||||
"version": "1.5.8",
|
||||
"resolved": "https://registry.npmjs.org/@rspack/binding-linux-x64-musl/-/binding-linux-x64-musl-1.5.8.tgz",
|
||||
"integrity": "sha512-gE0+MZmwF+01p9/svpEESkzkLpBkVUG2o03YMpwXYC/maeRRhWvF8BJ7R3i/Ls/jFGSE87dKX5NbRLVzqksq/w==",
|
||||
@@ -273,7 +257,7 @@
|
||||
"linux"
|
||||
]
|
||||
},
|
||||
"node_modules/@rspack/binding-wasm32-wasi": {
|
||||
"node_modules/@rspack/binding/node_modules/@rspack/binding-wasm32-wasi": {
|
||||
"version": "1.5.8",
|
||||
"resolved": "https://registry.npmjs.org/@rspack/binding-wasm32-wasi/-/binding-wasm32-wasi-1.5.8.tgz",
|
||||
"integrity": "sha512-cfg3niNHeJuxuml1Vy9VvaJrI/5TakzoaZvKX2g5S24wfzR50Eyy4JAsZ+L2voWQQp1yMJbmPYPmnTCTxdJQBQ==",
|
||||
@@ -287,7 +271,7 @@
|
||||
"@napi-rs/wasm-runtime": "^1.0.5"
|
||||
}
|
||||
},
|
||||
"node_modules/@rspack/binding-win32-arm64-msvc": {
|
||||
"node_modules/@rspack/binding/node_modules/@rspack/binding-win32-arm64-msvc": {
|
||||
"version": "1.5.8",
|
||||
"resolved": "https://registry.npmjs.org/@rspack/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.5.8.tgz",
|
||||
"integrity": "sha512-7i3ZTHFXKfU/9Jm9XhpMkrdkxO7lfeYMNVEGkuU5dyBfRMQj69dRgPL7zJwc2plXiqu9LUOl+TwDNTjap7Q36g==",
|
||||
@@ -301,7 +285,7 @@
|
||||
"win32"
|
||||
]
|
||||
},
|
||||
"node_modules/@rspack/binding-win32-ia32-msvc": {
|
||||
"node_modules/@rspack/binding/node_modules/@rspack/binding-win32-ia32-msvc": {
|
||||
"version": "1.5.8",
|
||||
"resolved": "https://registry.npmjs.org/@rspack/binding-win32-ia32-msvc/-/binding-win32-ia32-msvc-1.5.8.tgz",
|
||||
"integrity": "sha512-7ZPPWO11J+soea1+mnfaPpQt7GIodBM7A86dx6PbXgVEoZmetcWPrCF2NBfXxQWOKJ9L3RYltC4z+ZyXRgMOrw==",
|
||||
@@ -315,24 +299,8 @@
|
||||
"win32"
|
||||
]
|
||||
},
|
||||
"node_modules/@rspack/binding-win32-x64-msvc": {
|
||||
"version": "1.5.8",
|
||||
"resolved": "https://registry.npmjs.org/@rspack/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.5.8.tgz",
|
||||
"integrity": "sha512-N/zXQgzIxME3YUzXT8qnyzxjqcnXudWOeDh8CAG9zqTCnCiy16SFfQ/cQgEoLlD9geQntV6jx2GbDDI5kpDGMQ==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"win32"
|
||||
]
|
||||
},
|
||||
"node_modules/@rspack/core": {
|
||||
"version": "1.5.8",
|
||||
"resolved": "https://registry.npmjs.org/@rspack/core/-/core-1.5.8.tgz",
|
||||
"integrity": "sha512-sUd2LfiDhqYVfvknuoz0+/c+wSpn693xotnG5g1CSWKZArbtwiYzBIVnNlcHGmuoBRsnj/TkSq8dTQ7gwfBroQ==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
@@ -354,8 +322,6 @@
|
||||
},
|
||||
"node_modules/@rspack/lite-tapable": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/@rspack/lite-tapable/-/lite-tapable-1.0.1.tgz",
|
||||
"integrity": "sha512-VynGOEsVw2s8TAlLf/uESfrgfrq2+rcXB1muPJYBWbsm1Oa6r5qVQhjA5ggM6z/coYPrsVMgovl3Ff7Q7OCp1w==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
@@ -364,8 +330,6 @@
|
||||
},
|
||||
"node_modules/@swc/helpers": {
|
||||
"version": "0.5.17",
|
||||
"resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.17.tgz",
|
||||
"integrity": "sha512-5IKx/Y13RsYd+sauPb2x+U/xZikHjolzfuDgTAl/Tdf3Q8rslRvC19NKDLgAJQ6wsqADk10ntlv08nPFw/gO/A==",
|
||||
"dev": true,
|
||||
"license": "Apache-2.0",
|
||||
"dependencies": {
|
||||
@@ -374,8 +338,6 @@
|
||||
},
|
||||
"node_modules/@tybys/wasm-util": {
|
||||
"version": "0.10.1",
|
||||
"resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.1.tgz",
|
||||
"integrity": "sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
@@ -384,9 +346,7 @@
|
||||
}
|
||||
},
|
||||
"node_modules/core-js": {
|
||||
"version": "3.45.1",
|
||||
"resolved": "https://registry.npmjs.org/core-js/-/core-js-3.45.1.tgz",
|
||||
"integrity": "sha512-L4NPsJlCfZsPeXukyzHFlg/i7IIVwHSItR0wg0FLNqYClJ4MQYTYLbC7EkjKYRLZF2iof2MUgN0EGy7MdQFChg==",
|
||||
"version": "3.46.0",
|
||||
"dev": true,
|
||||
"hasInstallScript": true,
|
||||
"license": "MIT",
|
||||
@@ -395,40 +355,12 @@
|
||||
"url": "https://opencollective.com/core-js"
|
||||
}
|
||||
},
|
||||
"node_modules/css-what": {
|
||||
"version": "6.1.0",
|
||||
"resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz",
|
||||
"integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==",
|
||||
"engines": {
|
||||
"node": ">= 6"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/fb55"
|
||||
}
|
||||
},
|
||||
"node_modules/fsevents": {
|
||||
"version": "2.3.2",
|
||||
"resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
|
||||
"integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
|
||||
"dev": true,
|
||||
"hasInstallScript": true,
|
||||
"optional": true,
|
||||
"os": [
|
||||
"darwin"
|
||||
],
|
||||
"engines": {
|
||||
"node": "^8.16.0 || ^10.6.0 || >=11.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/hyperapp": {
|
||||
"version": "2.0.22",
|
||||
"resolved": "https://registry.npmjs.org/hyperapp/-/hyperapp-2.0.22.tgz",
|
||||
"integrity": "sha512-3uf9HjnjrhbfykowFNEObZewBEo4DXJIM+9FnGkiR9E4H2eh2f921SzMCMS69X5nN3A7KFfmZc9KCKh/7TQBFA=="
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/jiti": {
|
||||
"version": "2.6.1",
|
||||
"resolved": "https://registry.npmjs.org/jiti/-/jiti-2.6.1.tgz",
|
||||
"integrity": "sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"bin": {
|
||||
@@ -437,9 +369,8 @@
|
||||
},
|
||||
"node_modules/playwright": {
|
||||
"version": "1.48.2",
|
||||
"resolved": "https://registry.npmjs.org/playwright/-/playwright-1.48.2.tgz",
|
||||
"integrity": "sha512-NjYvYgp4BPmiwfe31j4gHLa3J7bD2WiBz8Lk2RoSsmX38SVIARZ18VYjxLjAcDsAhA+F4iSEXTSGgjua0rrlgQ==",
|
||||
"dev": true,
|
||||
"license": "Apache-2.0",
|
||||
"dependencies": {
|
||||
"playwright-core": "1.48.2"
|
||||
},
|
||||
@@ -455,9 +386,8 @@
|
||||
},
|
||||
"node_modules/playwright-core": {
|
||||
"version": "1.48.2",
|
||||
"resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.48.2.tgz",
|
||||
"integrity": "sha512-sjjw+qrLFlriJo64du+EK0kJgZzoQPsabGF4lBvsid+3CNIZIYLgnMj9V6JY5VhM2Peh20DJWIVpVljLLnlawA==",
|
||||
"dev": true,
|
||||
"license": "Apache-2.0",
|
||||
"bin": {
|
||||
"playwright-core": "cli.js"
|
||||
},
|
||||
@@ -467,341 +397,16 @@
|
||||
},
|
||||
"node_modules/slugify": {
|
||||
"version": "1.6.6",
|
||||
"resolved": "https://registry.npmjs.org/slugify/-/slugify-1.6.6.tgz",
|
||||
"integrity": "sha512-h+z7HKHYXj6wJU+AnS/+IH8Uh9fdcX1Lrhg1/VMdf9PwoBQXFcXiAdsy2tSK0P6gKwJLXp02r90ahUCqHk9rrw==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": ">=8.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/specificity": {
|
||||
"version": "0.4.1",
|
||||
"resolved": "https://registry.npmjs.org/specificity/-/specificity-0.4.1.tgz",
|
||||
"integrity": "sha512-1klA3Gi5PD1Wv9Q0wUoOQN1IWAuPu0D1U03ThXTr0cJ20+/iq2tHSDnK7Kk/0LXJ1ztUB2/1Os0wKmfyNgUQfg==",
|
||||
"bin": {
|
||||
"specificity": "bin/specificity"
|
||||
}
|
||||
},
|
||||
"node_modules/tslib": {
|
||||
"version": "2.8.1",
|
||||
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz",
|
||||
"integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==",
|
||||
"dev": true,
|
||||
"license": "0BSD"
|
||||
}
|
||||
},
|
||||
"dependencies": {
|
||||
"@emnapi/core": {
|
||||
"version": "1.5.0",
|
||||
"resolved": "https://registry.npmjs.org/@emnapi/core/-/core-1.5.0.tgz",
|
||||
"integrity": "sha512-sbP8GzB1WDzacS8fgNPpHlp6C9VZe+SJP3F90W9rLemaQj2PzIuTEl1qDOYQf58YIpyjViI24y9aPWCjEzY2cg==",
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"@emnapi/wasi-threads": "1.1.0",
|
||||
"tslib": "^2.4.0"
|
||||
}
|
||||
},
|
||||
"@emnapi/runtime": {
|
||||
"version": "1.5.0",
|
||||
"resolved": "https://registry.npmjs.org/@emnapi/runtime/-/runtime-1.5.0.tgz",
|
||||
"integrity": "sha512-97/BJ3iXHww3djw6hYIfErCZFee7qCtrneuLa20UXFCOTCfBM2cvQHjWJ2EG0s0MtdNwInarqCTz35i4wWXHsQ==",
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"tslib": "^2.4.0"
|
||||
}
|
||||
},
|
||||
"@emnapi/wasi-threads": {
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/@emnapi/wasi-threads/-/wasi-threads-1.1.0.tgz",
|
||||
"integrity": "sha512-WI0DdZ8xFSbgMjR1sFsKABJ/C5OnRrjT06JXbZKexJGrDuPTzZdDYfFlsgcCXCyf+suG5QU2e/y1Wo2V/OapLQ==",
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"tslib": "^2.4.0"
|
||||
}
|
||||
},
|
||||
"@module-federation/error-codes": {
|
||||
"version": "0.18.0",
|
||||
"resolved": "https://registry.npmjs.org/@module-federation/error-codes/-/error-codes-0.18.0.tgz",
|
||||
"integrity": "sha512-Woonm8ehyVIUPXChmbu80Zj6uJkC0dD9SJUZ/wOPtO8iiz/m+dkrOugAuKgoiR6qH4F+yorWila954tBz4uKsQ==",
|
||||
"dev": true
|
||||
},
|
||||
"@module-federation/runtime": {
|
||||
"version": "0.18.0",
|
||||
"resolved": "https://registry.npmjs.org/@module-federation/runtime/-/runtime-0.18.0.tgz",
|
||||
"integrity": "sha512-+C4YtoSztM7nHwNyZl6dQKGUVJdsPrUdaf3HIKReg/GQbrt9uvOlUWo2NXMZ8vDAnf/QRrpSYAwXHmWDn9Obaw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@module-federation/error-codes": "0.18.0",
|
||||
"@module-federation/runtime-core": "0.18.0",
|
||||
"@module-federation/sdk": "0.18.0"
|
||||
}
|
||||
},
|
||||
"@module-federation/runtime-core": {
|
||||
"version": "0.18.0",
|
||||
"resolved": "https://registry.npmjs.org/@module-federation/runtime-core/-/runtime-core-0.18.0.tgz",
|
||||
"integrity": "sha512-ZyYhrDyVAhUzriOsVfgL6vwd+5ebYm595Y13KeMf6TKDRoUHBMTLGQ8WM4TDj8JNsy7LigncK8C03fn97of0QQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@module-federation/error-codes": "0.18.0",
|
||||
"@module-federation/sdk": "0.18.0"
|
||||
}
|
||||
},
|
||||
"@module-federation/runtime-tools": {
|
||||
"version": "0.18.0",
|
||||
"resolved": "https://registry.npmjs.org/@module-federation/runtime-tools/-/runtime-tools-0.18.0.tgz",
|
||||
"integrity": "sha512-fSga9o4t1UfXNV/Kh6qFvRyZpPp3EHSPRISNeyT8ZoTpzDNiYzhtw0BPUSSD8m6C6XQh2s/11rI4g80UY+d+hA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@module-federation/runtime": "0.18.0",
|
||||
"@module-federation/webpack-bundler-runtime": "0.18.0"
|
||||
}
|
||||
},
|
||||
"@module-federation/sdk": {
|
||||
"version": "0.18.0",
|
||||
"resolved": "https://registry.npmjs.org/@module-federation/sdk/-/sdk-0.18.0.tgz",
|
||||
"integrity": "sha512-Lo/Feq73tO2unjmpRfyyoUkTVoejhItXOk/h5C+4cistnHbTV8XHrW/13fD5e1Iu60heVdAhhelJd6F898Ve9A==",
|
||||
"dev": true
|
||||
},
|
||||
"@module-federation/webpack-bundler-runtime": {
|
||||
"version": "0.18.0",
|
||||
"resolved": "https://registry.npmjs.org/@module-federation/webpack-bundler-runtime/-/webpack-bundler-runtime-0.18.0.tgz",
|
||||
"integrity": "sha512-TEvErbF+YQ+6IFimhUYKK3a5wapD90d90sLsNpcu2kB3QGT7t4nIluE25duXuZDVUKLz86tEPrza/oaaCWTpvQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@module-federation/runtime": "0.18.0",
|
||||
"@module-federation/sdk": "0.18.0"
|
||||
}
|
||||
},
|
||||
"@mozilla/readability": {
|
||||
"version": "0.4.2",
|
||||
"resolved": "https://registry.npmjs.org/@mozilla/readability/-/readability-0.4.2.tgz",
|
||||
"integrity": "sha512-48MJXzi4Dhy2fJ3lGjmwdEJKoMmn3oiYew9n/1OW6cZy78hAzRIyDJDBCGrg4PBFDyY4xos+H4LCFn5QVRDcfw=="
|
||||
},
|
||||
"@napi-rs/wasm-runtime": {
|
||||
"version": "1.0.6",
|
||||
"resolved": "https://registry.npmjs.org/@napi-rs/wasm-runtime/-/wasm-runtime-1.0.6.tgz",
|
||||
"integrity": "sha512-DXj75ewm11LIWUk198QSKUTxjyRjsBwk09MuMk5DGK+GDUtyPhhEHOGP/Xwwj3DjQXXkivoBirmOnKrLfc0+9g==",
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"@emnapi/core": "^1.5.0",
|
||||
"@emnapi/runtime": "^1.5.0",
|
||||
"@tybys/wasm-util": "^0.10.1"
|
||||
}
|
||||
},
|
||||
"@playwright/test": {
|
||||
"version": "1.48.2",
|
||||
"resolved": "https://registry.npmjs.org/@playwright/test/-/test-1.48.2.tgz",
|
||||
"integrity": "sha512-54w1xCWfXuax7dz4W2M9uw0gDyh+ti/0K/MxcCUxChFh37kkdxPdfZDw5QBbuPUJHr1CiHJ1hXgSs+GgeQc5Zw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"playwright": "1.48.2"
|
||||
}
|
||||
},
|
||||
"@rsbuild/core": {
|
||||
"version": "1.5.13",
|
||||
"resolved": "https://registry.npmjs.org/@rsbuild/core/-/core-1.5.13.tgz",
|
||||
"integrity": "sha512-P+TCvZCVpBYZ3GDdnzR/tZKicE41khJIqIRlJYnEc9dwUfX1/eqRf8lA8yrsbB5iZbSfj1iOoH1N25cCQ3hhuA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@rspack/core": "1.5.8",
|
||||
"@rspack/lite-tapable": "~1.0.1",
|
||||
"@swc/helpers": "^0.5.17",
|
||||
"core-js": "~3.45.1",
|
||||
"jiti": "^2.6.0"
|
||||
}
|
||||
},
|
||||
"@rspack/binding": {
|
||||
"version": "1.5.8",
|
||||
"resolved": "https://registry.npmjs.org/@rspack/binding/-/binding-1.5.8.tgz",
|
||||
"integrity": "sha512-/91CzhRl9r5BIQCgGsS7jA6MDbw1I2BQpbfcUUdkdKl2P79K3Zo/Mw/TvKzS86catwLaUQEgkGRmYawOfPg7ow==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@rspack/binding-darwin-arm64": "1.5.8",
|
||||
"@rspack/binding-darwin-x64": "1.5.8",
|
||||
"@rspack/binding-linux-arm64-gnu": "1.5.8",
|
||||
"@rspack/binding-linux-arm64-musl": "1.5.8",
|
||||
"@rspack/binding-linux-x64-gnu": "1.5.8",
|
||||
"@rspack/binding-linux-x64-musl": "1.5.8",
|
||||
"@rspack/binding-wasm32-wasi": "1.5.8",
|
||||
"@rspack/binding-win32-arm64-msvc": "1.5.8",
|
||||
"@rspack/binding-win32-ia32-msvc": "1.5.8",
|
||||
"@rspack/binding-win32-x64-msvc": "1.5.8"
|
||||
}
|
||||
},
|
||||
"@rspack/binding-darwin-arm64": {
|
||||
"version": "1.5.8",
|
||||
"resolved": "https://registry.npmjs.org/@rspack/binding-darwin-arm64/-/binding-darwin-arm64-1.5.8.tgz",
|
||||
"integrity": "sha512-spJfpOSN3f7V90ic45/ET2NKB2ujAViCNmqb0iGurMNQtFRq+7Kd+jvVKKGXKBHBbsQrFhidSWbbqy2PBPGK8g==",
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"@rspack/binding-darwin-x64": {
|
||||
"version": "1.5.8",
|
||||
"resolved": "https://registry.npmjs.org/@rspack/binding-darwin-x64/-/binding-darwin-x64-1.5.8.tgz",
|
||||
"integrity": "sha512-YFOzeL1IBknBcri8vjUp43dfUBylCeQnD+9O9p0wZmLAw7DtpN5JEOe2AkGo8kdTqJjYKI+cczJPKIw6lu1LWw==",
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"@rspack/binding-linux-arm64-gnu": {
|
||||
"version": "1.5.8",
|
||||
"resolved": "https://registry.npmjs.org/@rspack/binding-linux-arm64-gnu/-/binding-linux-arm64-gnu-1.5.8.tgz",
|
||||
"integrity": "sha512-UAWCsOnpkvy8eAVRo0uipbHXDhnoDq5zmqWTMhpga0/a3yzCp2e+fnjZb/qnFNYb5MeL0O1mwMOYgn1M3oHILQ==",
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"@rspack/binding-linux-arm64-musl": {
|
||||
"version": "1.5.8",
|
||||
"resolved": "https://registry.npmjs.org/@rspack/binding-linux-arm64-musl/-/binding-linux-arm64-musl-1.5.8.tgz",
|
||||
"integrity": "sha512-GnSvGT4GjokPSD45cTtE+g7LgghuxSP1MRmvd+Vp/I8pnxTVSTsebRod4TAqyiv+l11nuS8yqNveK9qiOkBLWw==",
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"@rspack/binding-linux-x64-gnu": {
|
||||
"version": "1.5.8",
|
||||
"resolved": "https://registry.npmjs.org/@rspack/binding-linux-x64-gnu/-/binding-linux-x64-gnu-1.5.8.tgz",
|
||||
"integrity": "sha512-XLxh5n/pzUfxsugz/8rVBv+Tx2nqEM+9rharK69kfooDsQNKyz7PANllBQ/v4svJ+W0BRHnDL4qXSGdteZeEjA==",
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"@rspack/binding-linux-x64-musl": {
|
||||
"version": "1.5.8",
|
||||
"resolved": "https://registry.npmjs.org/@rspack/binding-linux-x64-musl/-/binding-linux-x64-musl-1.5.8.tgz",
|
||||
"integrity": "sha512-gE0+MZmwF+01p9/svpEESkzkLpBkVUG2o03YMpwXYC/maeRRhWvF8BJ7R3i/Ls/jFGSE87dKX5NbRLVzqksq/w==",
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"@rspack/binding-wasm32-wasi": {
|
||||
"version": "1.5.8",
|
||||
"resolved": "https://registry.npmjs.org/@rspack/binding-wasm32-wasi/-/binding-wasm32-wasi-1.5.8.tgz",
|
||||
"integrity": "sha512-cfg3niNHeJuxuml1Vy9VvaJrI/5TakzoaZvKX2g5S24wfzR50Eyy4JAsZ+L2voWQQp1yMJbmPYPmnTCTxdJQBQ==",
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"@napi-rs/wasm-runtime": "^1.0.5"
|
||||
}
|
||||
},
|
||||
"@rspack/binding-win32-arm64-msvc": {
|
||||
"version": "1.5.8",
|
||||
"resolved": "https://registry.npmjs.org/@rspack/binding-win32-arm64-msvc/-/binding-win32-arm64-msvc-1.5.8.tgz",
|
||||
"integrity": "sha512-7i3ZTHFXKfU/9Jm9XhpMkrdkxO7lfeYMNVEGkuU5dyBfRMQj69dRgPL7zJwc2plXiqu9LUOl+TwDNTjap7Q36g==",
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"@rspack/binding-win32-ia32-msvc": {
|
||||
"version": "1.5.8",
|
||||
"resolved": "https://registry.npmjs.org/@rspack/binding-win32-ia32-msvc/-/binding-win32-ia32-msvc-1.5.8.tgz",
|
||||
"integrity": "sha512-7ZPPWO11J+soea1+mnfaPpQt7GIodBM7A86dx6PbXgVEoZmetcWPrCF2NBfXxQWOKJ9L3RYltC4z+ZyXRgMOrw==",
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"@rspack/binding-win32-x64-msvc": {
|
||||
"version": "1.5.8",
|
||||
"resolved": "https://registry.npmjs.org/@rspack/binding-win32-x64-msvc/-/binding-win32-x64-msvc-1.5.8.tgz",
|
||||
"integrity": "sha512-N/zXQgzIxME3YUzXT8qnyzxjqcnXudWOeDh8CAG9zqTCnCiy16SFfQ/cQgEoLlD9geQntV6jx2GbDDI5kpDGMQ==",
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"@rspack/core": {
|
||||
"version": "1.5.8",
|
||||
"resolved": "https://registry.npmjs.org/@rspack/core/-/core-1.5.8.tgz",
|
||||
"integrity": "sha512-sUd2LfiDhqYVfvknuoz0+/c+wSpn693xotnG5g1CSWKZArbtwiYzBIVnNlcHGmuoBRsnj/TkSq8dTQ7gwfBroQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@module-federation/runtime-tools": "0.18.0",
|
||||
"@rspack/binding": "1.5.8",
|
||||
"@rspack/lite-tapable": "1.0.1"
|
||||
}
|
||||
},
|
||||
"@rspack/lite-tapable": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/@rspack/lite-tapable/-/lite-tapable-1.0.1.tgz",
|
||||
"integrity": "sha512-VynGOEsVw2s8TAlLf/uESfrgfrq2+rcXB1muPJYBWbsm1Oa6r5qVQhjA5ggM6z/coYPrsVMgovl3Ff7Q7OCp1w==",
|
||||
"dev": true
|
||||
},
|
||||
"@swc/helpers": {
|
||||
"version": "0.5.17",
|
||||
"resolved": "https://registry.npmjs.org/@swc/helpers/-/helpers-0.5.17.tgz",
|
||||
"integrity": "sha512-5IKx/Y13RsYd+sauPb2x+U/xZikHjolzfuDgTAl/Tdf3Q8rslRvC19NKDLgAJQ6wsqADk10ntlv08nPFw/gO/A==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"tslib": "^2.8.0"
|
||||
}
|
||||
},
|
||||
"@tybys/wasm-util": {
|
||||
"version": "0.10.1",
|
||||
"resolved": "https://registry.npmjs.org/@tybys/wasm-util/-/wasm-util-0.10.1.tgz",
|
||||
"integrity": "sha512-9tTaPJLSiejZKx+Bmog4uSubteqTvFrVrURwkmHixBo0G4seD0zUxp98E1DzUBJxLQ3NPwXrGKDiVjwx/DpPsg==",
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"tslib": "^2.4.0"
|
||||
}
|
||||
},
|
||||
"core-js": {
|
||||
"version": "3.45.1",
|
||||
"resolved": "https://registry.npmjs.org/core-js/-/core-js-3.45.1.tgz",
|
||||
"integrity": "sha512-L4NPsJlCfZsPeXukyzHFlg/i7IIVwHSItR0wg0FLNqYClJ4MQYTYLbC7EkjKYRLZF2iof2MUgN0EGy7MdQFChg==",
|
||||
"dev": true
|
||||
},
|
||||
"css-what": {
|
||||
"version": "6.1.0",
|
||||
"resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz",
|
||||
"integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw=="
|
||||
},
|
||||
"fsevents": {
|
||||
"version": "2.3.2",
|
||||
"resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz",
|
||||
"integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==",
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"hyperapp": {
|
||||
"version": "2.0.22",
|
||||
"resolved": "https://registry.npmjs.org/hyperapp/-/hyperapp-2.0.22.tgz",
|
||||
"integrity": "sha512-3uf9HjnjrhbfykowFNEObZewBEo4DXJIM+9FnGkiR9E4H2eh2f921SzMCMS69X5nN3A7KFfmZc9KCKh/7TQBFA=="
|
||||
},
|
||||
"jiti": {
|
||||
"version": "2.6.1",
|
||||
"resolved": "https://registry.npmjs.org/jiti/-/jiti-2.6.1.tgz",
|
||||
"integrity": "sha512-ekilCSN1jwRvIbgeg/57YFh8qQDNbwDb9xT/qu2DAHbFFZUicIl4ygVaAvzveMhMVr3LnpSKTNnwt8PoOfmKhQ==",
|
||||
"dev": true
|
||||
},
|
||||
"playwright": {
|
||||
"version": "1.48.2",
|
||||
"resolved": "https://registry.npmjs.org/playwright/-/playwright-1.48.2.tgz",
|
||||
"integrity": "sha512-NjYvYgp4BPmiwfe31j4gHLa3J7bD2WiBz8Lk2RoSsmX38SVIARZ18VYjxLjAcDsAhA+F4iSEXTSGgjua0rrlgQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"fsevents": "2.3.2",
|
||||
"playwright-core": "1.48.2"
|
||||
}
|
||||
},
|
||||
"playwright-core": {
|
||||
"version": "1.48.2",
|
||||
"resolved": "https://registry.npmjs.org/playwright-core/-/playwright-core-1.48.2.tgz",
|
||||
"integrity": "sha512-sjjw+qrLFlriJo64du+EK0kJgZzoQPsabGF4lBvsid+3CNIZIYLgnMj9V6JY5VhM2Peh20DJWIVpVljLLnlawA==",
|
||||
"dev": true
|
||||
},
|
||||
"slugify": {
|
||||
"version": "1.6.6",
|
||||
"resolved": "https://registry.npmjs.org/slugify/-/slugify-1.6.6.tgz",
|
||||
"integrity": "sha512-h+z7HKHYXj6wJU+AnS/+IH8Uh9fdcX1Lrhg1/VMdf9PwoBQXFcXiAdsy2tSK0P6gKwJLXp02r90ahUCqHk9rrw==",
|
||||
"dev": true
|
||||
},
|
||||
"specificity": {
|
||||
"version": "0.4.1",
|
||||
"resolved": "https://registry.npmjs.org/specificity/-/specificity-0.4.1.tgz",
|
||||
"integrity": "sha512-1klA3Gi5PD1Wv9Q0wUoOQN1IWAuPu0D1U03ThXTr0cJ20+/iq2tHSDnK7Kk/0LXJ1ztUB2/1Os0wKmfyNgUQfg=="
|
||||
},
|
||||
"tslib": {
|
||||
"version": "2.8.1",
|
||||
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz",
|
||||
"integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -33,8 +33,6 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"@mozilla/readability": "^0.4.2",
|
||||
"css-what": "6.1.0",
|
||||
"hyperapp": "^2.0.22",
|
||||
"specificity": "^0.4.1"
|
||||
"hyperapp": "^2.0.22"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,176 +0,0 @@
|
||||
/*
|
||||
This file is part of the Notesnook project (https://notesnook.com/)
|
||||
|
||||
Copyright (C) 2023 Streetwriters (Private) Limited
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
const from = String.fromCharCode;
|
||||
|
||||
function trim(value: string): string {
|
||||
return value.trim();
|
||||
}
|
||||
|
||||
function charat(value: string, index: number): number {
|
||||
return value.charCodeAt(index) | 0;
|
||||
}
|
||||
|
||||
function strlen(value: string): number {
|
||||
return value.length;
|
||||
}
|
||||
|
||||
function substr(value: string, begin: number, end: number): string {
|
||||
return value.slice(begin, end);
|
||||
}
|
||||
|
||||
function append<T>(value: T, array: T[]): T {
|
||||
array.push(value);
|
||||
return value;
|
||||
}
|
||||
|
||||
let line = 1;
|
||||
let column = 1;
|
||||
let length = 0;
|
||||
let position = 0;
|
||||
let character = 0;
|
||||
let characters = "";
|
||||
|
||||
function next(): number {
|
||||
character = position < length ? charat(characters, position++) : 0;
|
||||
|
||||
if ((column++, character === 10)) (column = 1), line++;
|
||||
|
||||
return character;
|
||||
}
|
||||
|
||||
function peek(): number {
|
||||
return charat(characters, position);
|
||||
}
|
||||
|
||||
function slice(begin: number, end: number): string {
|
||||
return substr(characters, begin, end);
|
||||
}
|
||||
|
||||
function token(type: number): number {
|
||||
switch (type) {
|
||||
// \0 \t \n \r \s whitespace token
|
||||
case 0:
|
||||
case 9:
|
||||
case 10:
|
||||
case 13:
|
||||
case 32:
|
||||
return 5;
|
||||
|
||||
// ! + , / > @ ~ isolate token
|
||||
case 33:
|
||||
case 42:
|
||||
case 43:
|
||||
case 44:
|
||||
case 47:
|
||||
case 62:
|
||||
case 64:
|
||||
case 126:
|
||||
case 59: /* ; { } breakpoint token */
|
||||
case 123:
|
||||
case 125:
|
||||
return 4;
|
||||
// : accompanied token
|
||||
case 58:
|
||||
return 3;
|
||||
// " ' ( [ opening delimit token
|
||||
case 34:
|
||||
case 39:
|
||||
case 40:
|
||||
case 91:
|
||||
return 2;
|
||||
// ) ] closing delimit token
|
||||
case 41:
|
||||
case 93:
|
||||
return 1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
function alloc(value: string): [] {
|
||||
line = column = 1;
|
||||
length = strlen((characters = value));
|
||||
position = 0;
|
||||
return [];
|
||||
}
|
||||
|
||||
function dealloc<T>(value: T): T {
|
||||
characters = "";
|
||||
return value;
|
||||
}
|
||||
|
||||
function delimit(type: number): string {
|
||||
return trim(
|
||||
slice(
|
||||
position - 1,
|
||||
delimiter(type === 91 ? type + 2 : type === 40 ? type + 1 : type)
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
export function tokenize(value: string): string[] {
|
||||
return dealloc(tokenizer(alloc(value)));
|
||||
}
|
||||
|
||||
function tokenizer(children: string[]): string[] {
|
||||
while (next())
|
||||
switch (token(character)) {
|
||||
case 0:
|
||||
append(identifier(position - 1), children);
|
||||
break;
|
||||
case 2:
|
||||
append(delimit(character), children);
|
||||
break;
|
||||
default:
|
||||
append(from(character), children);
|
||||
}
|
||||
|
||||
return children;
|
||||
}
|
||||
|
||||
function delimiter(type: number): number {
|
||||
while (next())
|
||||
switch (character) {
|
||||
// ] ) " '
|
||||
case type:
|
||||
return position;
|
||||
// " '
|
||||
case 34:
|
||||
case 39:
|
||||
if (type !== 34 && type !== 39) delimiter(character);
|
||||
break;
|
||||
// (
|
||||
case 40:
|
||||
if (type === 41) delimiter(type);
|
||||
break;
|
||||
// \
|
||||
case 92:
|
||||
next();
|
||||
break;
|
||||
}
|
||||
|
||||
return position;
|
||||
}
|
||||
|
||||
function identifier(index: number): string {
|
||||
while (!token(peek())) next();
|
||||
|
||||
return slice(index, position);
|
||||
}
|
||||
@@ -17,57 +17,6 @@ You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
import { constructUrl, FetchOptions } from "./fetch.js";
|
||||
import { compare, calculate, SpecificityArray } from "specificity";
|
||||
import { tokenize } from "./css-tokenizer.js";
|
||||
import { stringify, parse, SelectorType } from "css-what";
|
||||
import { safeQuerySelectorAll } from "./utils.js";
|
||||
|
||||
const SHORTHANDS = [
|
||||
"animation",
|
||||
"background",
|
||||
"border",
|
||||
"border-block-end",
|
||||
"border-block-start",
|
||||
"border-bottom",
|
||||
"border-color",
|
||||
"border-image",
|
||||
"border-inline-end",
|
||||
"border-inline-start",
|
||||
"border-left",
|
||||
"border-radius",
|
||||
"border-right",
|
||||
"border-style",
|
||||
"border-top",
|
||||
"border-width",
|
||||
"column-rule",
|
||||
"columns",
|
||||
"contain-intrinsic-size",
|
||||
"flex",
|
||||
"flex-flow",
|
||||
"font",
|
||||
"gap",
|
||||
"grid",
|
||||
"grid-area",
|
||||
"grid-column",
|
||||
"grid-row",
|
||||
"grid-template",
|
||||
"grid-gap",
|
||||
"list-style",
|
||||
"margin",
|
||||
"mask",
|
||||
"offset",
|
||||
"outline",
|
||||
"overflow",
|
||||
"padding",
|
||||
"place-content",
|
||||
"place-items",
|
||||
"place-self",
|
||||
"scroll-margin",
|
||||
"scroll-padding",
|
||||
"text-decoration",
|
||||
"text-emphasis",
|
||||
"transition"
|
||||
];
|
||||
|
||||
export async function inlineStylesheets(options?: FetchOptions) {
|
||||
for (const sheet of document.styleSheets) {
|
||||
@@ -113,224 +62,6 @@ async function downloadStylesheet(href: string, options?: FetchOptions) {
|
||||
}
|
||||
}
|
||||
|
||||
type StyleableElement = HTMLElement | SVGElement;
|
||||
type BaseStyle = {
|
||||
rule: CSSStyleDeclaration;
|
||||
href: URL | null;
|
||||
};
|
||||
type SpecifiedStyle = BaseStyle & {
|
||||
specificity: SpecificityArray;
|
||||
};
|
||||
type PseudoElementStyle = BaseStyle & {
|
||||
pseudoElement: string;
|
||||
};
|
||||
type CSSStyledElements = Map<StyleableElement, SpecifiedStyle[]>;
|
||||
type CSSPseudoElements = Map<StyleableElement, PseudoElementStyle[]>;
|
||||
|
||||
export async function cacheStylesheets(documentStyles: CSSStyleDeclaration) {
|
||||
const styledElements: CSSStyledElements = new Map();
|
||||
const styledPseudoElements: CSSPseudoElements = new Map();
|
||||
|
||||
for (const sheet of document.styleSheets) {
|
||||
if (await skipStyleSheet(sheet)) continue;
|
||||
let href = sheet.href || undefined;
|
||||
if (!href && sheet.ownerNode instanceof HTMLElement)
|
||||
href = sheet.ownerNode.getAttribute("href") || undefined;
|
||||
|
||||
walkRules(
|
||||
sheet.cssRules,
|
||||
documentStyles,
|
||||
styledElements,
|
||||
styledPseudoElements,
|
||||
href
|
||||
);
|
||||
}
|
||||
|
||||
return {
|
||||
getPseudo(element: StyleableElement, pseudoElement: string) {
|
||||
const styles = styledPseudoElements
|
||||
.get(element)
|
||||
?.filter((s) => s.pseudoElement.includes(pseudoElement));
|
||||
if (!styles || !styles.length) return;
|
||||
|
||||
return getElementStyles(element, styles, documentStyles);
|
||||
},
|
||||
get(element: StyleableElement) {
|
||||
const styles = styledElements.get(element);
|
||||
if (!styles) return;
|
||||
|
||||
const allStyles = styles.sort((a, b) =>
|
||||
compare(a.specificity, b.specificity)
|
||||
);
|
||||
allStyles.push({
|
||||
rule: element.style,
|
||||
specificity: [0, 0, 0, 0],
|
||||
href: null
|
||||
});
|
||||
|
||||
return getElementStyles(element, allStyles, documentStyles);
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
function walkRules(
|
||||
cssRules: CSSRuleList,
|
||||
documentStyles: CSSStyleDeclaration,
|
||||
styled: CSSStyledElements,
|
||||
pseudoElements: CSSPseudoElements,
|
||||
href?: string
|
||||
) {
|
||||
for (const rule of cssRules) {
|
||||
if (rule instanceof CSSStyleRule) {
|
||||
if (isPseudoSelector(rule.selectorText)) {
|
||||
const selectors = parsePseudoSelector(rule.selectorText);
|
||||
|
||||
for (const selector of selectors) {
|
||||
if (!selector || !selector.selector.trim()) continue;
|
||||
const elements = safeQuerySelectorAll(
|
||||
document,
|
||||
selector.selector
|
||||
) as NodeListOf<StyleableElement>;
|
||||
|
||||
for (const element of elements) {
|
||||
if (
|
||||
!(element instanceof HTMLElement) &&
|
||||
!(element instanceof SVGElement)
|
||||
)
|
||||
continue;
|
||||
|
||||
const styles: PseudoElementStyle[] =
|
||||
pseudoElements.get(element) || [];
|
||||
pseudoElements.set(element, styles);
|
||||
|
||||
styles.push({
|
||||
rule: rule.style,
|
||||
href: getBaseUrl(href),
|
||||
pseudoElement: selector.pseudoElement
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
const elements = safeQuerySelectorAll(
|
||||
document,
|
||||
rule.selectorText
|
||||
) as NodeListOf<StyleableElement>;
|
||||
|
||||
for (const element of elements) {
|
||||
if (
|
||||
!(element instanceof HTMLElement) &&
|
||||
!(element instanceof SVGElement)
|
||||
)
|
||||
continue;
|
||||
|
||||
const parts = rule.selectorText.split(",");
|
||||
const styles: SpecifiedStyle[] = styled.get(element) || [];
|
||||
styled.set(element, styles);
|
||||
|
||||
for (const part of parts) {
|
||||
try {
|
||||
const specificity = calculate(part)[0];
|
||||
styles.push({
|
||||
specificity: specificity.specificityArray,
|
||||
rule: rule.style,
|
||||
href: getBaseUrl(href)
|
||||
});
|
||||
break;
|
||||
} catch (e) {
|
||||
console.error(e, href && getBaseUrl(href));
|
||||
// ignore
|
||||
}
|
||||
}
|
||||
}
|
||||
} else if (
|
||||
rule instanceof CSSMediaRule &&
|
||||
window.matchMedia(rule.conditionText).matches
|
||||
) {
|
||||
walkRules(rule.cssRules, documentStyles, styled, pseudoElements, href);
|
||||
} else if (
|
||||
rule instanceof CSSSupportsRule &&
|
||||
CSS.supports(rule.conditionText)
|
||||
) {
|
||||
walkRules(rule.cssRules, documentStyles, styled, pseudoElements, href);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function getElementStyles(
|
||||
element: StyleableElement,
|
||||
styles: BaseStyle[],
|
||||
documentStyles: CSSStyleDeclaration
|
||||
) {
|
||||
const newStyles = newStyleDeclaration();
|
||||
const computedStyle = lazyComputedStyle(element);
|
||||
const overrides = ["display"];
|
||||
|
||||
for (const style of styles) {
|
||||
for (const property of [...style.rule, ...SHORTHANDS]) {
|
||||
let value = style.rule.getPropertyValue(property);
|
||||
if (overrides.includes(property))
|
||||
value = computedStyle.style.getPropertyValue(property);
|
||||
|
||||
if (value.trim()) {
|
||||
setStyle(
|
||||
newStyles,
|
||||
property,
|
||||
value,
|
||||
(variable) => {
|
||||
return (
|
||||
computedStyle.style.getPropertyValue(variable) ||
|
||||
documentStyles.getPropertyValue(variable)
|
||||
);
|
||||
},
|
||||
(url) => {
|
||||
console.log("resolving url", url, style.href);
|
||||
if (url.startsWith("data:") || !style.href) return url;
|
||||
console.log("resolving url", url, style.href.href);
|
||||
if (url.startsWith("/"))
|
||||
return new URL(`${style.href.origin}${url}`).href;
|
||||
|
||||
return new URL(`${style.href.href}${url}`).href;
|
||||
},
|
||||
style.rule.getPropertyPriority(property)
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
return newStyles;
|
||||
}
|
||||
|
||||
function setStyle(
|
||||
target: CSSStyleDeclaration,
|
||||
property: string,
|
||||
value: string,
|
||||
get: (variable: string) => string,
|
||||
resolveUrl: (variable: string) => string,
|
||||
priority?: string
|
||||
) {
|
||||
value = resolveCssVariables(value, get);
|
||||
value = resolveCssUrl(value, resolveUrl);
|
||||
|
||||
target.setProperty(property, value, priority);
|
||||
}
|
||||
|
||||
function newStyleDeclaration() {
|
||||
const sheet = new CSSStyleSheet();
|
||||
sheet.insertRule(".dummy{}");
|
||||
return (sheet.cssRules[0] as CSSStyleRule).style;
|
||||
}
|
||||
|
||||
function lazyComputedStyle(element: StyleableElement) {
|
||||
let computedStyle: CSSStyleDeclaration | undefined;
|
||||
|
||||
return Object.defineProperty({}, "style", {
|
||||
get: () => {
|
||||
if (!computedStyle) computedStyle = getComputedStyle(element);
|
||||
return computedStyle;
|
||||
}
|
||||
}) as { style: CSSStyleDeclaration };
|
||||
}
|
||||
|
||||
async function skipStyleSheet(sheet: CSSStyleSheet, options?: FetchOptions) {
|
||||
try {
|
||||
sheet.cssRules.length;
|
||||
@@ -349,86 +80,6 @@ async function skipStyleSheet(sheet: CSSStyleSheet, options?: FetchOptions) {
|
||||
.includes("print");
|
||||
}
|
||||
|
||||
function resolveCssVariables(css: string, get: (variable: string) => string) {
|
||||
const tokens = tokenize(css);
|
||||
const finalTokens: string[] = [];
|
||||
for (let i = 0; i < tokens.length; ++i) {
|
||||
const token = tokens[i];
|
||||
if (token === "var") {
|
||||
const args = tokenize(tokens[++i].slice(1, -1));
|
||||
const [variable, operator, space, ...restArgs] = args;
|
||||
|
||||
const value = get(variable);
|
||||
if (value) {
|
||||
finalTokens.push(value);
|
||||
} else if (operator && restArgs.length <= 1) {
|
||||
finalTokens.push(restArgs[0] || space);
|
||||
} else if (operator && restArgs.length === 2) {
|
||||
finalTokens.push(resolveCssVariables(restArgs.join(""), get));
|
||||
}
|
||||
} else if (token.startsWith("(") && token.endsWith(")")) {
|
||||
finalTokens.push("(", resolveCssVariables(token.slice(1, -1), get), ")");
|
||||
} else finalTokens.push(token);
|
||||
}
|
||||
return finalTokens.join("");
|
||||
}
|
||||
|
||||
function resolveCssUrl(css: string, get: (url: string) => string) {
|
||||
const tokens = tokenize(css);
|
||||
const finalTokens: string[] = [];
|
||||
for (let i = 0; i < tokens.length; ++i) {
|
||||
const token = tokens[i];
|
||||
if (token === "url" && !tokens[i + 1].startsWith("(data")) {
|
||||
const url = tokens[++i].slice(2, -2);
|
||||
const resolvedUrl = get(url);
|
||||
if (resolvedUrl) {
|
||||
finalTokens.push(token);
|
||||
finalTokens.push('("');
|
||||
finalTokens.push(resolvedUrl);
|
||||
finalTokens.push('")');
|
||||
}
|
||||
} else finalTokens.push(token);
|
||||
}
|
||||
return finalTokens.join("");
|
||||
}
|
||||
|
||||
function getBaseUrl(href?: string | null) {
|
||||
if (!href) return null;
|
||||
if (href.startsWith("/")) href = `${document.location.origin}${href}`;
|
||||
const url = new URL(href);
|
||||
const basepath = url.pathname.split("/").slice(0, -1).join("/");
|
||||
return new URL(`${url.origin}${basepath}/`);
|
||||
}
|
||||
|
||||
function isPseudoSelector(text: string) {
|
||||
return (
|
||||
text.includes(":before") ||
|
||||
text.includes(":after") ||
|
||||
text.includes("::after") ||
|
||||
text.includes("::before")
|
||||
);
|
||||
}
|
||||
|
||||
function parsePseudoSelector(selector: string) {
|
||||
const output = [];
|
||||
const selectors = parse(selector);
|
||||
for (const part of selectors) {
|
||||
const pseduoElementIndex = part.findIndex(
|
||||
(s) =>
|
||||
(s.type === SelectorType.Pseudo ||
|
||||
s.type === SelectorType.PseudoElement) &&
|
||||
(s.name === "after" || s.name === "before")
|
||||
);
|
||||
if (pseduoElementIndex <= -1) continue;
|
||||
|
||||
output.push({
|
||||
selector: stringify([part.slice(0, pseduoElementIndex)]),
|
||||
pseudoElement: stringify([part.slice(pseduoElementIndex)])
|
||||
});
|
||||
}
|
||||
return output;
|
||||
}
|
||||
|
||||
export async function addStylesToHead(
|
||||
head: HTMLHeadElement,
|
||||
options?: FetchOptions
|
||||
|
||||
@@ -165,14 +165,6 @@ function getRootStylesheet() {
|
||||
return null;
|
||||
}
|
||||
|
||||
function safeQuerySelectorAll(root: Node, selector: string) {
|
||||
try {
|
||||
return (root as HTMLElement).querySelectorAll(selector);
|
||||
} catch (e) {
|
||||
return new NodeList();
|
||||
}
|
||||
}
|
||||
|
||||
const SVGElements = [
|
||||
"altGlyph",
|
||||
"altGlyphDef",
|
||||
@@ -272,6 +264,5 @@ export {
|
||||
escapeXhtml,
|
||||
width,
|
||||
height,
|
||||
safeQuerySelectorAll,
|
||||
isSVGElement
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user