mirror of
https://github.com/ajayyy/SponsorBlock.git
synced 2025-12-06 11:37:02 +03:00
Compare commits
27 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
b4c8e54d3e | ||
|
|
b83426caba | ||
|
|
9da99688d3 | ||
|
|
9bcee6afce | ||
|
|
1b5d7ccf3e | ||
|
|
41a8b2718a | ||
|
|
002f22c040 | ||
|
|
bf735f47b0 | ||
|
|
e4aa7efd3c | ||
|
|
b210b22af3 | ||
|
|
154e12f201 | ||
|
|
b6c1ee1743 | ||
|
|
6b6ca6198f | ||
|
|
6788394be1 | ||
|
|
059a674ae1 | ||
|
|
a45bd4c5c7 | ||
|
|
bb47863080 | ||
|
|
d50a69f1fd | ||
|
|
31014b78ac | ||
|
|
cf9e016581 | ||
|
|
dee836c783 | ||
|
|
5c7f8cef45 | ||
|
|
9f5ec09789 | ||
|
|
a82062da5b | ||
|
|
35da572f3f | ||
|
|
cf01679f16 | ||
|
|
16f4ab53b6 |
36
.github/workflows/release.yml
vendored
36
.github/workflows/release.yml
vendored
@@ -51,6 +51,28 @@ jobs:
|
||||
- name: Zip Artifacts
|
||||
run: cd ./dist ; zip -r ../builds/ChromeExtensionBeta.zip *
|
||||
|
||||
|
||||
# Create Safari artifacts
|
||||
- name: Create Safari artifacts
|
||||
run: npm run build:safari
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: SafariExtension
|
||||
path: dist
|
||||
- name: Zip Artifacts
|
||||
run: cd ./dist ; zip -r ../builds/SafariExtension.zip *
|
||||
# Create Edge artifacts
|
||||
- name: Clear dist for Edge
|
||||
run: rm -rf ./dist
|
||||
- name: Create Edge artifacts
|
||||
run: npm run build:edge
|
||||
- uses: actions/upload-artifact@v2
|
||||
with:
|
||||
name: EdgeExtension
|
||||
path: dist
|
||||
- name: Zip Artifacts
|
||||
run: cd ./dist ; zip -r ../builds/EdgeExtension.zip *
|
||||
|
||||
# Upload each release asset
|
||||
- name: Upload ChromeExtension to release
|
||||
uses: Shopify/upload-to-release@master
|
||||
@@ -73,6 +95,20 @@ jobs:
|
||||
name: FirefoxExtension.zip
|
||||
path: ./builds/FirefoxExtension.zip
|
||||
repo-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
- name: Upload SafariExtension to release
|
||||
uses: Shopify/upload-to-release@master
|
||||
with:
|
||||
args: builds/SafariExtension.zip
|
||||
name: SafariExtension.zip
|
||||
path: ./builds/SafariExtension.zip
|
||||
repo-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
- name: Upload EdgeExtension to release
|
||||
uses: Shopify/upload-to-release@master
|
||||
with:
|
||||
args: builds/EdgeExtension.zip
|
||||
name: EdgeExtension.zip
|
||||
path: ./builds/EdgeExtension.zip
|
||||
repo-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
# Firefox Beta
|
||||
- name: Create Firefox Beta artifacts
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "__MSG_fullName__",
|
||||
"short_name": "SponsorBlock",
|
||||
"version": "4.0.2",
|
||||
"version": "4.0.5",
|
||||
"default_locale": "en",
|
||||
"description": "__MSG_Description__",
|
||||
"homepage_url": "https://sponsor.ajay.app",
|
||||
|
||||
5
manifest/safari-manifest-extra.json
Normal file
5
manifest/safari-manifest-extra.json
Normal file
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"background": {
|
||||
"persistent": false
|
||||
}
|
||||
}
|
||||
510
package-lock.json
generated
510
package-lock.json
generated
@@ -7,7 +7,7 @@
|
||||
"": {
|
||||
"name": "sponsorblock",
|
||||
"version": "1.0.0",
|
||||
"license": "GPL-3.0-only",
|
||||
"license": "LGPL-3.0-or-later",
|
||||
"dependencies": {
|
||||
"@types/react": "^16.9.22",
|
||||
"@types/react-dom": "^16.9.5",
|
||||
@@ -28,7 +28,7 @@
|
||||
"@typescript-eslint/eslint-plugin": "^4.9.1",
|
||||
"@typescript-eslint/parser": "^4.9.1",
|
||||
"chromedriver": "^92.0.0",
|
||||
"copy-webpack-plugin": "^6.0.3",
|
||||
"copy-webpack-plugin": "^6.4.1",
|
||||
"eslint": "^7.15.0",
|
||||
"eslint-plugin-react": "^7.21.5",
|
||||
"jest": "^27.0.6",
|
||||
@@ -38,7 +38,7 @@
|
||||
"ts-loader": "^6.2.1",
|
||||
"typescript": "~4.3",
|
||||
"web-ext": "^6.2.0",
|
||||
"webpack": "~4.41.2",
|
||||
"webpack": "~4.46.0",
|
||||
"webpack-cli": "~3.3.10",
|
||||
"webpack-merge": "~4.2.2"
|
||||
}
|
||||
@@ -1990,8 +1990,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@types/json-schema": {
|
||||
"version": "7.0.5",
|
||||
"integrity": "sha512-7+2BITlgjgDhH0vvwZU/HZJVyk+2XUlvxXe8dFMedNX/aMkaOq++rMAFXc0tM7ij15QaWlbdQASBR9dihi+bDQ==",
|
||||
"version": "7.0.9",
|
||||
"resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz",
|
||||
"integrity": "sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/@types/minimatch": {
|
||||
@@ -2313,151 +2314,170 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@webassemblyjs/ast": {
|
||||
"version": "1.8.5",
|
||||
"integrity": "sha512-aJMfngIZ65+t71C3y2nBBg5FFG0Okt9m0XEgWZ7Ywgn1oMAT8cNwx00Uv1cQyHtidq0Xn94R4TAywO+LCQ+ZAQ==",
|
||||
"version": "1.9.0",
|
||||
"resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz",
|
||||
"integrity": "sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA==",
|
||||
"dependencies": {
|
||||
"@webassemblyjs/helper-module-context": "1.8.5",
|
||||
"@webassemblyjs/helper-wasm-bytecode": "1.8.5",
|
||||
"@webassemblyjs/wast-parser": "1.8.5"
|
||||
"@webassemblyjs/helper-module-context": "1.9.0",
|
||||
"@webassemblyjs/helper-wasm-bytecode": "1.9.0",
|
||||
"@webassemblyjs/wast-parser": "1.9.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@webassemblyjs/floating-point-hex-parser": {
|
||||
"version": "1.8.5",
|
||||
"integrity": "sha512-9p+79WHru1oqBh9ewP9zW95E3XAo+90oth7S5Re3eQnECGq59ly1Ri5tsIipKGpiStHsUYmY3zMLqtk3gTcOtQ=="
|
||||
"version": "1.9.0",
|
||||
"resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz",
|
||||
"integrity": "sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA=="
|
||||
},
|
||||
"node_modules/@webassemblyjs/helper-api-error": {
|
||||
"version": "1.8.5",
|
||||
"integrity": "sha512-Za/tnzsvnqdaSPOUXHyKJ2XI7PDX64kWtURyGiJJZKVEdFOsdKUCPTNEVFZq3zJ2R0G5wc2PZ5gvdTRFgm81zA=="
|
||||
"version": "1.9.0",
|
||||
"resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz",
|
||||
"integrity": "sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw=="
|
||||
},
|
||||
"node_modules/@webassemblyjs/helper-buffer": {
|
||||
"version": "1.8.5",
|
||||
"integrity": "sha512-Ri2R8nOS0U6G49Q86goFIPNgjyl6+oE1abW1pS84BuhP1Qcr5JqMwRFT3Ah3ADDDYGEgGs1iyb1DGX+kAi/c/Q=="
|
||||
"version": "1.9.0",
|
||||
"resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz",
|
||||
"integrity": "sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA=="
|
||||
},
|
||||
"node_modules/@webassemblyjs/helper-code-frame": {
|
||||
"version": "1.8.5",
|
||||
"integrity": "sha512-VQAadSubZIhNpH46IR3yWO4kZZjMxN1opDrzePLdVKAZ+DFjkGD/rf4v1jap744uPVU6yjL/smZbRIIJTOUnKQ==",
|
||||
"version": "1.9.0",
|
||||
"resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz",
|
||||
"integrity": "sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA==",
|
||||
"dependencies": {
|
||||
"@webassemblyjs/wast-printer": "1.8.5"
|
||||
"@webassemblyjs/wast-printer": "1.9.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@webassemblyjs/helper-fsm": {
|
||||
"version": "1.8.5",
|
||||
"integrity": "sha512-kRuX/saORcg8se/ft6Q2UbRpZwP4y7YrWsLXPbbmtepKr22i8Z4O3V5QE9DbZK908dh5Xya4Un57SDIKwB9eow=="
|
||||
"version": "1.9.0",
|
||||
"resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz",
|
||||
"integrity": "sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw=="
|
||||
},
|
||||
"node_modules/@webassemblyjs/helper-module-context": {
|
||||
"version": "1.8.5",
|
||||
"integrity": "sha512-/O1B236mN7UNEU4t9X7Pj38i4VoU8CcMHyy3l2cV/kIF4U5KoHXDVqcDuOs1ltkac90IM4vZdHc52t1x8Yfs3g==",
|
||||
"version": "1.9.0",
|
||||
"resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz",
|
||||
"integrity": "sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g==",
|
||||
"dependencies": {
|
||||
"@webassemblyjs/ast": "1.8.5",
|
||||
"mamacro": "^0.0.3"
|
||||
"@webassemblyjs/ast": "1.9.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@webassemblyjs/helper-wasm-bytecode": {
|
||||
"version": "1.8.5",
|
||||
"integrity": "sha512-Cu4YMYG3Ddl72CbmpjU/wbP6SACcOPVbHN1dI4VJNJVgFwaKf1ppeFJrwydOG3NDHxVGuCfPlLZNyEdIYlQ6QQ=="
|
||||
"version": "1.9.0",
|
||||
"resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz",
|
||||
"integrity": "sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw=="
|
||||
},
|
||||
"node_modules/@webassemblyjs/helper-wasm-section": {
|
||||
"version": "1.8.5",
|
||||
"integrity": "sha512-VV083zwR+VTrIWWtgIUpqfvVdK4ff38loRmrdDBgBT8ADXYsEZ5mPQ4Nde90N3UYatHdYoDIFb7oHzMncI02tA==",
|
||||
"version": "1.9.0",
|
||||
"resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz",
|
||||
"integrity": "sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw==",
|
||||
"dependencies": {
|
||||
"@webassemblyjs/ast": "1.8.5",
|
||||
"@webassemblyjs/helper-buffer": "1.8.5",
|
||||
"@webassemblyjs/helper-wasm-bytecode": "1.8.5",
|
||||
"@webassemblyjs/wasm-gen": "1.8.5"
|
||||
"@webassemblyjs/ast": "1.9.0",
|
||||
"@webassemblyjs/helper-buffer": "1.9.0",
|
||||
"@webassemblyjs/helper-wasm-bytecode": "1.9.0",
|
||||
"@webassemblyjs/wasm-gen": "1.9.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@webassemblyjs/ieee754": {
|
||||
"version": "1.8.5",
|
||||
"integrity": "sha512-aaCvQYrvKbY/n6wKHb/ylAJr27GglahUO89CcGXMItrOBqRarUMxWLJgxm9PJNuKULwN5n1csT9bYoMeZOGF3g==",
|
||||
"version": "1.9.0",
|
||||
"resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz",
|
||||
"integrity": "sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg==",
|
||||
"dependencies": {
|
||||
"@xtuc/ieee754": "^1.2.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@webassemblyjs/leb128": {
|
||||
"version": "1.8.5",
|
||||
"integrity": "sha512-plYUuUwleLIziknvlP8VpTgO4kqNaH57Y3JnNa6DLpu/sGcP6hbVdfdX5aHAV716pQBKrfuU26BJK29qY37J7A==",
|
||||
"version": "1.9.0",
|
||||
"resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.9.0.tgz",
|
||||
"integrity": "sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw==",
|
||||
"dependencies": {
|
||||
"@xtuc/long": "4.2.2"
|
||||
}
|
||||
},
|
||||
"node_modules/@webassemblyjs/utf8": {
|
||||
"version": "1.8.5",
|
||||
"integrity": "sha512-U7zgftmQriw37tfD934UNInokz6yTmn29inT2cAetAsaU9YeVCveWEwhKL1Mg4yS7q//NGdzy79nlXh3bT8Kjw=="
|
||||
"version": "1.9.0",
|
||||
"resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.9.0.tgz",
|
||||
"integrity": "sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w=="
|
||||
},
|
||||
"node_modules/@webassemblyjs/wasm-edit": {
|
||||
"version": "1.8.5",
|
||||
"integrity": "sha512-A41EMy8MWw5yvqj7MQzkDjU29K7UJq1VrX2vWLzfpRHt3ISftOXqrtojn7nlPsZ9Ijhp5NwuODuycSvfAO/26Q==",
|
||||
"version": "1.9.0",
|
||||
"resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz",
|
||||
"integrity": "sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw==",
|
||||
"dependencies": {
|
||||
"@webassemblyjs/ast": "1.8.5",
|
||||
"@webassemblyjs/helper-buffer": "1.8.5",
|
||||
"@webassemblyjs/helper-wasm-bytecode": "1.8.5",
|
||||
"@webassemblyjs/helper-wasm-section": "1.8.5",
|
||||
"@webassemblyjs/wasm-gen": "1.8.5",
|
||||
"@webassemblyjs/wasm-opt": "1.8.5",
|
||||
"@webassemblyjs/wasm-parser": "1.8.5",
|
||||
"@webassemblyjs/wast-printer": "1.8.5"
|
||||
"@webassemblyjs/ast": "1.9.0",
|
||||
"@webassemblyjs/helper-buffer": "1.9.0",
|
||||
"@webassemblyjs/helper-wasm-bytecode": "1.9.0",
|
||||
"@webassemblyjs/helper-wasm-section": "1.9.0",
|
||||
"@webassemblyjs/wasm-gen": "1.9.0",
|
||||
"@webassemblyjs/wasm-opt": "1.9.0",
|
||||
"@webassemblyjs/wasm-parser": "1.9.0",
|
||||
"@webassemblyjs/wast-printer": "1.9.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@webassemblyjs/wasm-gen": {
|
||||
"version": "1.8.5",
|
||||
"integrity": "sha512-BCZBT0LURC0CXDzj5FXSc2FPTsxwp3nWcqXQdOZE4U7h7i8FqtFK5Egia6f9raQLpEKT1VL7zr4r3+QX6zArWg==",
|
||||
"version": "1.9.0",
|
||||
"resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz",
|
||||
"integrity": "sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA==",
|
||||
"dependencies": {
|
||||
"@webassemblyjs/ast": "1.8.5",
|
||||
"@webassemblyjs/helper-wasm-bytecode": "1.8.5",
|
||||
"@webassemblyjs/ieee754": "1.8.5",
|
||||
"@webassemblyjs/leb128": "1.8.5",
|
||||
"@webassemblyjs/utf8": "1.8.5"
|
||||
"@webassemblyjs/ast": "1.9.0",
|
||||
"@webassemblyjs/helper-wasm-bytecode": "1.9.0",
|
||||
"@webassemblyjs/ieee754": "1.9.0",
|
||||
"@webassemblyjs/leb128": "1.9.0",
|
||||
"@webassemblyjs/utf8": "1.9.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@webassemblyjs/wasm-opt": {
|
||||
"version": "1.8.5",
|
||||
"integrity": "sha512-HKo2mO/Uh9A6ojzu7cjslGaHaUU14LdLbGEKqTR7PBKwT6LdPtLLh9fPY33rmr5wcOMrsWDbbdCHq4hQUdd37Q==",
|
||||
"version": "1.9.0",
|
||||
"resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz",
|
||||
"integrity": "sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A==",
|
||||
"dependencies": {
|
||||
"@webassemblyjs/ast": "1.8.5",
|
||||
"@webassemblyjs/helper-buffer": "1.8.5",
|
||||
"@webassemblyjs/wasm-gen": "1.8.5",
|
||||
"@webassemblyjs/wasm-parser": "1.8.5"
|
||||
"@webassemblyjs/ast": "1.9.0",
|
||||
"@webassemblyjs/helper-buffer": "1.9.0",
|
||||
"@webassemblyjs/wasm-gen": "1.9.0",
|
||||
"@webassemblyjs/wasm-parser": "1.9.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@webassemblyjs/wasm-parser": {
|
||||
"version": "1.8.5",
|
||||
"integrity": "sha512-pi0SYE9T6tfcMkthwcgCpL0cM9nRYr6/6fjgDtL6q/ZqKHdMWvxitRi5JcZ7RI4SNJJYnYNaWy5UUrHQy998lw==",
|
||||
"version": "1.9.0",
|
||||
"resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz",
|
||||
"integrity": "sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA==",
|
||||
"dependencies": {
|
||||
"@webassemblyjs/ast": "1.8.5",
|
||||
"@webassemblyjs/helper-api-error": "1.8.5",
|
||||
"@webassemblyjs/helper-wasm-bytecode": "1.8.5",
|
||||
"@webassemblyjs/ieee754": "1.8.5",
|
||||
"@webassemblyjs/leb128": "1.8.5",
|
||||
"@webassemblyjs/utf8": "1.8.5"
|
||||
"@webassemblyjs/ast": "1.9.0",
|
||||
"@webassemblyjs/helper-api-error": "1.9.0",
|
||||
"@webassemblyjs/helper-wasm-bytecode": "1.9.0",
|
||||
"@webassemblyjs/ieee754": "1.9.0",
|
||||
"@webassemblyjs/leb128": "1.9.0",
|
||||
"@webassemblyjs/utf8": "1.9.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@webassemblyjs/wast-parser": {
|
||||
"version": "1.8.5",
|
||||
"integrity": "sha512-daXC1FyKWHF1i11obK086QRlsMsY4+tIOKgBqI1lxAnkp9xe9YMcgOxm9kLe+ttjs5aWV2KKE1TWJCN57/Btsg==",
|
||||
"version": "1.9.0",
|
||||
"resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz",
|
||||
"integrity": "sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw==",
|
||||
"dependencies": {
|
||||
"@webassemblyjs/ast": "1.8.5",
|
||||
"@webassemblyjs/floating-point-hex-parser": "1.8.5",
|
||||
"@webassemblyjs/helper-api-error": "1.8.5",
|
||||
"@webassemblyjs/helper-code-frame": "1.8.5",
|
||||
"@webassemblyjs/helper-fsm": "1.8.5",
|
||||
"@webassemblyjs/ast": "1.9.0",
|
||||
"@webassemblyjs/floating-point-hex-parser": "1.9.0",
|
||||
"@webassemblyjs/helper-api-error": "1.9.0",
|
||||
"@webassemblyjs/helper-code-frame": "1.9.0",
|
||||
"@webassemblyjs/helper-fsm": "1.9.0",
|
||||
"@xtuc/long": "4.2.2"
|
||||
}
|
||||
},
|
||||
"node_modules/@webassemblyjs/wast-printer": {
|
||||
"version": "1.8.5",
|
||||
"integrity": "sha512-w0U0pD4EhlnvRyeJzBqaVSJAo9w/ce7/WPogeXLzGkO6hzhr4GnQIZ4W4uUt5b9ooAaXPtnXlj0gzsXEOUNYMg==",
|
||||
"version": "1.9.0",
|
||||
"resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz",
|
||||
"integrity": "sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA==",
|
||||
"dependencies": {
|
||||
"@webassemblyjs/ast": "1.8.5",
|
||||
"@webassemblyjs/wast-parser": "1.8.5",
|
||||
"@webassemblyjs/ast": "1.9.0",
|
||||
"@webassemblyjs/wast-parser": "1.9.0",
|
||||
"@xtuc/long": "4.2.2"
|
||||
}
|
||||
},
|
||||
"node_modules/@xtuc/ieee754": {
|
||||
"version": "1.2.0",
|
||||
"resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz",
|
||||
"integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA=="
|
||||
},
|
||||
"node_modules/@xtuc/long": {
|
||||
"version": "4.2.2",
|
||||
"resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz",
|
||||
"integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ=="
|
||||
},
|
||||
"node_modules/abab": {
|
||||
@@ -5394,20 +5414,21 @@
|
||||
}
|
||||
},
|
||||
"node_modules/copy-webpack-plugin": {
|
||||
"version": "6.0.3",
|
||||
"integrity": "sha512-q5m6Vz4elsuyVEIUXr7wJdIdePWTubsqVbEMvf1WQnHGv0Q+9yPRu7MtYFPt+GBOXRav9lvIINifTQ1vSCs+eA==",
|
||||
"version": "6.4.1",
|
||||
"resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-6.4.1.tgz",
|
||||
"integrity": "sha512-MXyPCjdPVx5iiWyl40Va3JGh27bKzOTNY3NjUTrosD2q7dR/cLD0013uqJ3BpFbUjyONINjb6qI7nDIJujrMbA==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"cacache": "^15.0.4",
|
||||
"cacache": "^15.0.5",
|
||||
"fast-glob": "^3.2.4",
|
||||
"find-cache-dir": "^3.3.1",
|
||||
"glob-parent": "^5.1.1",
|
||||
"globby": "^11.0.1",
|
||||
"loader-utils": "^2.0.0",
|
||||
"normalize-path": "^3.0.0",
|
||||
"p-limit": "^3.0.1",
|
||||
"schema-utils": "^2.7.0",
|
||||
"serialize-javascript": "^4.0.0",
|
||||
"p-limit": "^3.0.2",
|
||||
"schema-utils": "^3.0.0",
|
||||
"serialize-javascript": "^5.0.1",
|
||||
"webpack-sources": "^1.4.3"
|
||||
},
|
||||
"engines": {
|
||||
@@ -5633,30 +5654,23 @@
|
||||
}
|
||||
},
|
||||
"node_modules/copy-webpack-plugin/node_modules/schema-utils": {
|
||||
"version": "2.7.0",
|
||||
"integrity": "sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==",
|
||||
"version": "3.1.1",
|
||||
"resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz",
|
||||
"integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"@types/json-schema": "^7.0.4",
|
||||
"ajv": "^6.12.2",
|
||||
"ajv-keywords": "^3.4.1"
|
||||
"@types/json-schema": "^7.0.8",
|
||||
"ajv": "^6.12.5",
|
||||
"ajv-keywords": "^3.5.2"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 8.9.0"
|
||||
"node": ">= 10.13.0"
|
||||
},
|
||||
"funding": {
|
||||
"type": "opencollective",
|
||||
"url": "https://opencollective.com/webpack"
|
||||
}
|
||||
},
|
||||
"node_modules/copy-webpack-plugin/node_modules/serialize-javascript": {
|
||||
"version": "4.0.0",
|
||||
"integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"randombytes": "^2.1.0"
|
||||
}
|
||||
},
|
||||
"node_modules/copy-webpack-plugin/node_modules/yallist": {
|
||||
"version": "4.0.0",
|
||||
"integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
|
||||
@@ -6543,8 +6557,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/enhanced-resolve": {
|
||||
"version": "4.1.1",
|
||||
"integrity": "sha512-98p2zE+rL7/g/DzMHMTF4zZlCgeVdJ7yr6xzEpJRYwFYrGi9ANdn5DnJURg6RpBkyk60XYDnWIv51VfIhfNGuA==",
|
||||
"version": "4.5.0",
|
||||
"resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz",
|
||||
"integrity": "sha512-Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg==",
|
||||
"dependencies": {
|
||||
"graceful-fs": "^4.1.2",
|
||||
"memory-fs": "^0.5.0",
|
||||
@@ -13561,10 +13576,6 @@
|
||||
"tmpl": "1.0.x"
|
||||
}
|
||||
},
|
||||
"node_modules/mamacro": {
|
||||
"version": "0.0.3",
|
||||
"integrity": "sha512-qMEwh+UujcQ+kbz3T6V+wAmO2U8veoq2w+3wY8MquqwVA3jChfwY+Tk52GZKDfACEPjuZ7r2oJLejwpt8jtwTA=="
|
||||
},
|
||||
"node_modules/map-age-cleaner": {
|
||||
"version": "0.1.3",
|
||||
"integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==",
|
||||
@@ -16073,6 +16084,15 @@
|
||||
"dev": true,
|
||||
"peer": true
|
||||
},
|
||||
"node_modules/serialize-javascript": {
|
||||
"version": "5.0.1",
|
||||
"resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-5.0.1.tgz",
|
||||
"integrity": "sha512-SaaNal9imEO737H2c05Og0/8LUXG7EnsZyMa8MzkmuHoELfT6txuj0cMqRj6zfPKnmQ1yasR4PCJc8x+M4JSPA==",
|
||||
"dev": true,
|
||||
"dependencies": {
|
||||
"randombytes": "^2.1.0"
|
||||
}
|
||||
},
|
||||
"node_modules/serve-static": {
|
||||
"version": "1.14.1",
|
||||
"integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==",
|
||||
@@ -18395,31 +18415,32 @@
|
||||
}
|
||||
},
|
||||
"node_modules/webpack": {
|
||||
"version": "4.41.5",
|
||||
"integrity": "sha512-wp0Co4vpyumnp3KlkmpM5LWuzvZYayDwM2n17EHFr4qxBBbRokC7DJawPJC7TfSFZ9HZ6GsdH40EBj4UV0nmpw==",
|
||||
"version": "4.46.0",
|
||||
"resolved": "https://registry.npmjs.org/webpack/-/webpack-4.46.0.tgz",
|
||||
"integrity": "sha512-6jJuJjg8znb/xRItk7bkT0+Q7AHCYjjFnvKIWQPkNIOyRqoCGvkOs0ipeQzrqz4l5FtN5ZI/ukEHroeX/o1/5Q==",
|
||||
"dependencies": {
|
||||
"@webassemblyjs/ast": "1.8.5",
|
||||
"@webassemblyjs/helper-module-context": "1.8.5",
|
||||
"@webassemblyjs/wasm-edit": "1.8.5",
|
||||
"@webassemblyjs/wasm-parser": "1.8.5",
|
||||
"acorn": "^6.2.1",
|
||||
"@webassemblyjs/ast": "1.9.0",
|
||||
"@webassemblyjs/helper-module-context": "1.9.0",
|
||||
"@webassemblyjs/wasm-edit": "1.9.0",
|
||||
"@webassemblyjs/wasm-parser": "1.9.0",
|
||||
"acorn": "^6.4.1",
|
||||
"ajv": "^6.10.2",
|
||||
"ajv-keywords": "^3.4.1",
|
||||
"chrome-trace-event": "^1.0.2",
|
||||
"enhanced-resolve": "^4.1.0",
|
||||
"enhanced-resolve": "^4.5.0",
|
||||
"eslint-scope": "^4.0.3",
|
||||
"json-parse-better-errors": "^1.0.2",
|
||||
"loader-runner": "^2.4.0",
|
||||
"loader-utils": "^1.2.3",
|
||||
"memory-fs": "^0.4.1",
|
||||
"micromatch": "^3.1.10",
|
||||
"mkdirp": "^0.5.1",
|
||||
"mkdirp": "^0.5.3",
|
||||
"neo-async": "^2.6.1",
|
||||
"node-libs-browser": "^2.2.1",
|
||||
"schema-utils": "^1.0.0",
|
||||
"tapable": "^1.1.3",
|
||||
"terser-webpack-plugin": "^1.4.3",
|
||||
"watchpack": "^1.6.0",
|
||||
"watchpack": "^1.7.4",
|
||||
"webpack-sources": "^1.4.1"
|
||||
},
|
||||
"bin": {
|
||||
@@ -18431,6 +18452,14 @@
|
||||
"funding": {
|
||||
"type": "opencollective",
|
||||
"url": "https://opencollective.com/webpack"
|
||||
},
|
||||
"peerDependenciesMeta": {
|
||||
"webpack-cli": {
|
||||
"optional": true
|
||||
},
|
||||
"webpack-command": {
|
||||
"optional": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"node_modules/webpack-cli": {
|
||||
@@ -20460,8 +20489,9 @@
|
||||
}
|
||||
},
|
||||
"@types/json-schema": {
|
||||
"version": "7.0.5",
|
||||
"integrity": "sha512-7+2BITlgjgDhH0vvwZU/HZJVyk+2XUlvxXe8dFMedNX/aMkaOq++rMAFXc0tM7ij15QaWlbdQASBR9dihi+bDQ==",
|
||||
"version": "7.0.9",
|
||||
"resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.9.tgz",
|
||||
"integrity": "sha512-qcUXuemtEu+E5wZSJHNxUXeCZhAfXKQ41D+duX+VYPde7xyEVZci+/oXKJL13tnRs9lR2pr4fod59GT6/X1/yQ==",
|
||||
"dev": true
|
||||
},
|
||||
"@types/minimatch": {
|
||||
@@ -20689,151 +20719,170 @@
|
||||
}
|
||||
},
|
||||
"@webassemblyjs/ast": {
|
||||
"version": "1.8.5",
|
||||
"integrity": "sha512-aJMfngIZ65+t71C3y2nBBg5FFG0Okt9m0XEgWZ7Ywgn1oMAT8cNwx00Uv1cQyHtidq0Xn94R4TAywO+LCQ+ZAQ==",
|
||||
"version": "1.9.0",
|
||||
"resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.9.0.tgz",
|
||||
"integrity": "sha512-C6wW5L+b7ogSDVqymbkkvuW9kruN//YisMED04xzeBBqjHa2FYnmvOlS6Xj68xWQRgWvI9cIglsjFowH/RJyEA==",
|
||||
"requires": {
|
||||
"@webassemblyjs/helper-module-context": "1.8.5",
|
||||
"@webassemblyjs/helper-wasm-bytecode": "1.8.5",
|
||||
"@webassemblyjs/wast-parser": "1.8.5"
|
||||
"@webassemblyjs/helper-module-context": "1.9.0",
|
||||
"@webassemblyjs/helper-wasm-bytecode": "1.9.0",
|
||||
"@webassemblyjs/wast-parser": "1.9.0"
|
||||
}
|
||||
},
|
||||
"@webassemblyjs/floating-point-hex-parser": {
|
||||
"version": "1.8.5",
|
||||
"integrity": "sha512-9p+79WHru1oqBh9ewP9zW95E3XAo+90oth7S5Re3eQnECGq59ly1Ri5tsIipKGpiStHsUYmY3zMLqtk3gTcOtQ=="
|
||||
"version": "1.9.0",
|
||||
"resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.9.0.tgz",
|
||||
"integrity": "sha512-TG5qcFsS8QB4g4MhrxK5TqfdNe7Ey/7YL/xN+36rRjl/BlGE/NcBvJcqsRgCP6Z92mRE+7N50pRIi8SmKUbcQA=="
|
||||
},
|
||||
"@webassemblyjs/helper-api-error": {
|
||||
"version": "1.8.5",
|
||||
"integrity": "sha512-Za/tnzsvnqdaSPOUXHyKJ2XI7PDX64kWtURyGiJJZKVEdFOsdKUCPTNEVFZq3zJ2R0G5wc2PZ5gvdTRFgm81zA=="
|
||||
"version": "1.9.0",
|
||||
"resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.9.0.tgz",
|
||||
"integrity": "sha512-NcMLjoFMXpsASZFxJ5h2HZRcEhDkvnNFOAKneP5RbKRzaWJN36NC4jqQHKwStIhGXu5mUWlUUk7ygdtrO8lbmw=="
|
||||
},
|
||||
"@webassemblyjs/helper-buffer": {
|
||||
"version": "1.8.5",
|
||||
"integrity": "sha512-Ri2R8nOS0U6G49Q86goFIPNgjyl6+oE1abW1pS84BuhP1Qcr5JqMwRFT3Ah3ADDDYGEgGs1iyb1DGX+kAi/c/Q=="
|
||||
"version": "1.9.0",
|
||||
"resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.9.0.tgz",
|
||||
"integrity": "sha512-qZol43oqhq6yBPx7YM3m9Bv7WMV9Eevj6kMi6InKOuZxhw+q9hOkvq5e/PpKSiLfyetpaBnogSbNCfBwyB00CA=="
|
||||
},
|
||||
"@webassemblyjs/helper-code-frame": {
|
||||
"version": "1.8.5",
|
||||
"integrity": "sha512-VQAadSubZIhNpH46IR3yWO4kZZjMxN1opDrzePLdVKAZ+DFjkGD/rf4v1jap744uPVU6yjL/smZbRIIJTOUnKQ==",
|
||||
"version": "1.9.0",
|
||||
"resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.9.0.tgz",
|
||||
"integrity": "sha512-ERCYdJBkD9Vu4vtjUYe8LZruWuNIToYq/ME22igL+2vj2dQ2OOujIZr3MEFvfEaqKoVqpsFKAGsRdBSBjrIvZA==",
|
||||
"requires": {
|
||||
"@webassemblyjs/wast-printer": "1.8.5"
|
||||
"@webassemblyjs/wast-printer": "1.9.0"
|
||||
}
|
||||
},
|
||||
"@webassemblyjs/helper-fsm": {
|
||||
"version": "1.8.5",
|
||||
"integrity": "sha512-kRuX/saORcg8se/ft6Q2UbRpZwP4y7YrWsLXPbbmtepKr22i8Z4O3V5QE9DbZK908dh5Xya4Un57SDIKwB9eow=="
|
||||
"version": "1.9.0",
|
||||
"resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.9.0.tgz",
|
||||
"integrity": "sha512-OPRowhGbshCb5PxJ8LocpdX9Kl0uB4XsAjl6jH/dWKlk/mzsANvhwbiULsaiqT5GZGT9qinTICdj6PLuM5gslw=="
|
||||
},
|
||||
"@webassemblyjs/helper-module-context": {
|
||||
"version": "1.8.5",
|
||||
"integrity": "sha512-/O1B236mN7UNEU4t9X7Pj38i4VoU8CcMHyy3l2cV/kIF4U5KoHXDVqcDuOs1ltkac90IM4vZdHc52t1x8Yfs3g==",
|
||||
"version": "1.9.0",
|
||||
"resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.9.0.tgz",
|
||||
"integrity": "sha512-MJCW8iGC08tMk2enck1aPW+BE5Cw8/7ph/VGZxwyvGbJwjktKkDK7vy7gAmMDx88D7mhDTCNKAW5tED+gZ0W8g==",
|
||||
"requires": {
|
||||
"@webassemblyjs/ast": "1.8.5",
|
||||
"mamacro": "^0.0.3"
|
||||
"@webassemblyjs/ast": "1.9.0"
|
||||
}
|
||||
},
|
||||
"@webassemblyjs/helper-wasm-bytecode": {
|
||||
"version": "1.8.5",
|
||||
"integrity": "sha512-Cu4YMYG3Ddl72CbmpjU/wbP6SACcOPVbHN1dI4VJNJVgFwaKf1ppeFJrwydOG3NDHxVGuCfPlLZNyEdIYlQ6QQ=="
|
||||
"version": "1.9.0",
|
||||
"resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.9.0.tgz",
|
||||
"integrity": "sha512-R7FStIzyNcd7xKxCZH5lE0Bqy+hGTwS3LJjuv1ZVxd9O7eHCedSdrId/hMOd20I+v8wDXEn+bjfKDLzTepoaUw=="
|
||||
},
|
||||
"@webassemblyjs/helper-wasm-section": {
|
||||
"version": "1.8.5",
|
||||
"integrity": "sha512-VV083zwR+VTrIWWtgIUpqfvVdK4ff38loRmrdDBgBT8ADXYsEZ5mPQ4Nde90N3UYatHdYoDIFb7oHzMncI02tA==",
|
||||
"version": "1.9.0",
|
||||
"resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.9.0.tgz",
|
||||
"integrity": "sha512-XnMB8l3ek4tvrKUUku+IVaXNHz2YsJyOOmz+MMkZvh8h1uSJpSen6vYnw3IoQ7WwEuAhL8Efjms1ZWjqh2agvw==",
|
||||
"requires": {
|
||||
"@webassemblyjs/ast": "1.8.5",
|
||||
"@webassemblyjs/helper-buffer": "1.8.5",
|
||||
"@webassemblyjs/helper-wasm-bytecode": "1.8.5",
|
||||
"@webassemblyjs/wasm-gen": "1.8.5"
|
||||
"@webassemblyjs/ast": "1.9.0",
|
||||
"@webassemblyjs/helper-buffer": "1.9.0",
|
||||
"@webassemblyjs/helper-wasm-bytecode": "1.9.0",
|
||||
"@webassemblyjs/wasm-gen": "1.9.0"
|
||||
}
|
||||
},
|
||||
"@webassemblyjs/ieee754": {
|
||||
"version": "1.8.5",
|
||||
"integrity": "sha512-aaCvQYrvKbY/n6wKHb/ylAJr27GglahUO89CcGXMItrOBqRarUMxWLJgxm9PJNuKULwN5n1csT9bYoMeZOGF3g==",
|
||||
"version": "1.9.0",
|
||||
"resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.9.0.tgz",
|
||||
"integrity": "sha512-dcX8JuYU/gvymzIHc9DgxTzUUTLexWwt8uCTWP3otys596io0L5aW02Gb1RjYpx2+0Jus1h4ZFqjla7umFniTg==",
|
||||
"requires": {
|
||||
"@xtuc/ieee754": "^1.2.0"
|
||||
}
|
||||
},
|
||||
"@webassemblyjs/leb128": {
|
||||
"version": "1.8.5",
|
||||
"integrity": "sha512-plYUuUwleLIziknvlP8VpTgO4kqNaH57Y3JnNa6DLpu/sGcP6hbVdfdX5aHAV716pQBKrfuU26BJK29qY37J7A==",
|
||||
"version": "1.9.0",
|
||||
"resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.9.0.tgz",
|
||||
"integrity": "sha512-ENVzM5VwV1ojs9jam6vPys97B/S65YQtv/aanqnU7D8aSoHFX8GyhGg0CMfyKNIHBuAVjy3tlzd5QMMINa7wpw==",
|
||||
"requires": {
|
||||
"@xtuc/long": "4.2.2"
|
||||
}
|
||||
},
|
||||
"@webassemblyjs/utf8": {
|
||||
"version": "1.8.5",
|
||||
"integrity": "sha512-U7zgftmQriw37tfD934UNInokz6yTmn29inT2cAetAsaU9YeVCveWEwhKL1Mg4yS7q//NGdzy79nlXh3bT8Kjw=="
|
||||
"version": "1.9.0",
|
||||
"resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.9.0.tgz",
|
||||
"integrity": "sha512-GZbQlWtopBTP0u7cHrEx+73yZKrQoBMpwkGEIqlacljhXCkVM1kMQge/Mf+csMJAjEdSwhOyLAS0AoR3AG5P8w=="
|
||||
},
|
||||
"@webassemblyjs/wasm-edit": {
|
||||
"version": "1.8.5",
|
||||
"integrity": "sha512-A41EMy8MWw5yvqj7MQzkDjU29K7UJq1VrX2vWLzfpRHt3ISftOXqrtojn7nlPsZ9Ijhp5NwuODuycSvfAO/26Q==",
|
||||
"version": "1.9.0",
|
||||
"resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.9.0.tgz",
|
||||
"integrity": "sha512-FgHzBm80uwz5M8WKnMTn6j/sVbqilPdQXTWraSjBwFXSYGirpkSWE2R9Qvz9tNiTKQvoKILpCuTjBKzOIm0nxw==",
|
||||
"requires": {
|
||||
"@webassemblyjs/ast": "1.8.5",
|
||||
"@webassemblyjs/helper-buffer": "1.8.5",
|
||||
"@webassemblyjs/helper-wasm-bytecode": "1.8.5",
|
||||
"@webassemblyjs/helper-wasm-section": "1.8.5",
|
||||
"@webassemblyjs/wasm-gen": "1.8.5",
|
||||
"@webassemblyjs/wasm-opt": "1.8.5",
|
||||
"@webassemblyjs/wasm-parser": "1.8.5",
|
||||
"@webassemblyjs/wast-printer": "1.8.5"
|
||||
"@webassemblyjs/ast": "1.9.0",
|
||||
"@webassemblyjs/helper-buffer": "1.9.0",
|
||||
"@webassemblyjs/helper-wasm-bytecode": "1.9.0",
|
||||
"@webassemblyjs/helper-wasm-section": "1.9.0",
|
||||
"@webassemblyjs/wasm-gen": "1.9.0",
|
||||
"@webassemblyjs/wasm-opt": "1.9.0",
|
||||
"@webassemblyjs/wasm-parser": "1.9.0",
|
||||
"@webassemblyjs/wast-printer": "1.9.0"
|
||||
}
|
||||
},
|
||||
"@webassemblyjs/wasm-gen": {
|
||||
"version": "1.8.5",
|
||||
"integrity": "sha512-BCZBT0LURC0CXDzj5FXSc2FPTsxwp3nWcqXQdOZE4U7h7i8FqtFK5Egia6f9raQLpEKT1VL7zr4r3+QX6zArWg==",
|
||||
"version": "1.9.0",
|
||||
"resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.9.0.tgz",
|
||||
"integrity": "sha512-cPE3o44YzOOHvlsb4+E9qSqjc9Qf9Na1OO/BHFy4OI91XDE14MjFN4lTMezzaIWdPqHnsTodGGNP+iRSYfGkjA==",
|
||||
"requires": {
|
||||
"@webassemblyjs/ast": "1.8.5",
|
||||
"@webassemblyjs/helper-wasm-bytecode": "1.8.5",
|
||||
"@webassemblyjs/ieee754": "1.8.5",
|
||||
"@webassemblyjs/leb128": "1.8.5",
|
||||
"@webassemblyjs/utf8": "1.8.5"
|
||||
"@webassemblyjs/ast": "1.9.0",
|
||||
"@webassemblyjs/helper-wasm-bytecode": "1.9.0",
|
||||
"@webassemblyjs/ieee754": "1.9.0",
|
||||
"@webassemblyjs/leb128": "1.9.0",
|
||||
"@webassemblyjs/utf8": "1.9.0"
|
||||
}
|
||||
},
|
||||
"@webassemblyjs/wasm-opt": {
|
||||
"version": "1.8.5",
|
||||
"integrity": "sha512-HKo2mO/Uh9A6ojzu7cjslGaHaUU14LdLbGEKqTR7PBKwT6LdPtLLh9fPY33rmr5wcOMrsWDbbdCHq4hQUdd37Q==",
|
||||
"version": "1.9.0",
|
||||
"resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.9.0.tgz",
|
||||
"integrity": "sha512-Qkjgm6Anhm+OMbIL0iokO7meajkzQD71ioelnfPEj6r4eOFuqm4YC3VBPqXjFyyNwowzbMD+hizmprP/Fwkl2A==",
|
||||
"requires": {
|
||||
"@webassemblyjs/ast": "1.8.5",
|
||||
"@webassemblyjs/helper-buffer": "1.8.5",
|
||||
"@webassemblyjs/wasm-gen": "1.8.5",
|
||||
"@webassemblyjs/wasm-parser": "1.8.5"
|
||||
"@webassemblyjs/ast": "1.9.0",
|
||||
"@webassemblyjs/helper-buffer": "1.9.0",
|
||||
"@webassemblyjs/wasm-gen": "1.9.0",
|
||||
"@webassemblyjs/wasm-parser": "1.9.0"
|
||||
}
|
||||
},
|
||||
"@webassemblyjs/wasm-parser": {
|
||||
"version": "1.8.5",
|
||||
"integrity": "sha512-pi0SYE9T6tfcMkthwcgCpL0cM9nRYr6/6fjgDtL6q/ZqKHdMWvxitRi5JcZ7RI4SNJJYnYNaWy5UUrHQy998lw==",
|
||||
"version": "1.9.0",
|
||||
"resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.9.0.tgz",
|
||||
"integrity": "sha512-9+wkMowR2AmdSWQzsPEjFU7njh8HTO5MqO8vjwEHuM+AMHioNqSBONRdr0NQQ3dVQrzp0s8lTcYqzUdb7YgELA==",
|
||||
"requires": {
|
||||
"@webassemblyjs/ast": "1.8.5",
|
||||
"@webassemblyjs/helper-api-error": "1.8.5",
|
||||
"@webassemblyjs/helper-wasm-bytecode": "1.8.5",
|
||||
"@webassemblyjs/ieee754": "1.8.5",
|
||||
"@webassemblyjs/leb128": "1.8.5",
|
||||
"@webassemblyjs/utf8": "1.8.5"
|
||||
"@webassemblyjs/ast": "1.9.0",
|
||||
"@webassemblyjs/helper-api-error": "1.9.0",
|
||||
"@webassemblyjs/helper-wasm-bytecode": "1.9.0",
|
||||
"@webassemblyjs/ieee754": "1.9.0",
|
||||
"@webassemblyjs/leb128": "1.9.0",
|
||||
"@webassemblyjs/utf8": "1.9.0"
|
||||
}
|
||||
},
|
||||
"@webassemblyjs/wast-parser": {
|
||||
"version": "1.8.5",
|
||||
"integrity": "sha512-daXC1FyKWHF1i11obK086QRlsMsY4+tIOKgBqI1lxAnkp9xe9YMcgOxm9kLe+ttjs5aWV2KKE1TWJCN57/Btsg==",
|
||||
"version": "1.9.0",
|
||||
"resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.9.0.tgz",
|
||||
"integrity": "sha512-qsqSAP3QQ3LyZjNC/0jBJ/ToSxfYJ8kYyuiGvtn/8MK89VrNEfwj7BPQzJVHi0jGTRK2dGdJ5PRqhtjzoww+bw==",
|
||||
"requires": {
|
||||
"@webassemblyjs/ast": "1.8.5",
|
||||
"@webassemblyjs/floating-point-hex-parser": "1.8.5",
|
||||
"@webassemblyjs/helper-api-error": "1.8.5",
|
||||
"@webassemblyjs/helper-code-frame": "1.8.5",
|
||||
"@webassemblyjs/helper-fsm": "1.8.5",
|
||||
"@webassemblyjs/ast": "1.9.0",
|
||||
"@webassemblyjs/floating-point-hex-parser": "1.9.0",
|
||||
"@webassemblyjs/helper-api-error": "1.9.0",
|
||||
"@webassemblyjs/helper-code-frame": "1.9.0",
|
||||
"@webassemblyjs/helper-fsm": "1.9.0",
|
||||
"@xtuc/long": "4.2.2"
|
||||
}
|
||||
},
|
||||
"@webassemblyjs/wast-printer": {
|
||||
"version": "1.8.5",
|
||||
"integrity": "sha512-w0U0pD4EhlnvRyeJzBqaVSJAo9w/ce7/WPogeXLzGkO6hzhr4GnQIZ4W4uUt5b9ooAaXPtnXlj0gzsXEOUNYMg==",
|
||||
"version": "1.9.0",
|
||||
"resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.9.0.tgz",
|
||||
"integrity": "sha512-2J0nE95rHXHyQ24cWjMKJ1tqB/ds8z/cyeOZxJhcb+rW+SQASVjuznUSmdz5GpVJTzU8JkhYut0D3siFDD6wsA==",
|
||||
"requires": {
|
||||
"@webassemblyjs/ast": "1.8.5",
|
||||
"@webassemblyjs/wast-parser": "1.8.5",
|
||||
"@webassemblyjs/ast": "1.9.0",
|
||||
"@webassemblyjs/wast-parser": "1.9.0",
|
||||
"@xtuc/long": "4.2.2"
|
||||
}
|
||||
},
|
||||
"@xtuc/ieee754": {
|
||||
"version": "1.2.0",
|
||||
"resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz",
|
||||
"integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA=="
|
||||
},
|
||||
"@xtuc/long": {
|
||||
"version": "4.2.2",
|
||||
"resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz",
|
||||
"integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ=="
|
||||
},
|
||||
"abab": {
|
||||
@@ -23246,20 +23295,21 @@
|
||||
"integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40="
|
||||
},
|
||||
"copy-webpack-plugin": {
|
||||
"version": "6.0.3",
|
||||
"integrity": "sha512-q5m6Vz4elsuyVEIUXr7wJdIdePWTubsqVbEMvf1WQnHGv0Q+9yPRu7MtYFPt+GBOXRav9lvIINifTQ1vSCs+eA==",
|
||||
"version": "6.4.1",
|
||||
"resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-6.4.1.tgz",
|
||||
"integrity": "sha512-MXyPCjdPVx5iiWyl40Va3JGh27bKzOTNY3NjUTrosD2q7dR/cLD0013uqJ3BpFbUjyONINjb6qI7nDIJujrMbA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"cacache": "^15.0.4",
|
||||
"cacache": "^15.0.5",
|
||||
"fast-glob": "^3.2.4",
|
||||
"find-cache-dir": "^3.3.1",
|
||||
"glob-parent": "^5.1.1",
|
||||
"globby": "^11.0.1",
|
||||
"loader-utils": "^2.0.0",
|
||||
"normalize-path": "^3.0.0",
|
||||
"p-limit": "^3.0.1",
|
||||
"schema-utils": "^2.7.0",
|
||||
"serialize-javascript": "^4.0.0",
|
||||
"p-limit": "^3.0.2",
|
||||
"schema-utils": "^3.0.0",
|
||||
"serialize-javascript": "^5.0.1",
|
||||
"webpack-sources": "^1.4.3"
|
||||
},
|
||||
"dependencies": {
|
||||
@@ -23408,21 +23458,14 @@
|
||||
}
|
||||
},
|
||||
"schema-utils": {
|
||||
"version": "2.7.0",
|
||||
"integrity": "sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==",
|
||||
"version": "3.1.1",
|
||||
"resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz",
|
||||
"integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@types/json-schema": "^7.0.4",
|
||||
"ajv": "^6.12.2",
|
||||
"ajv-keywords": "^3.4.1"
|
||||
}
|
||||
},
|
||||
"serialize-javascript": {
|
||||
"version": "4.0.0",
|
||||
"integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"randombytes": "^2.1.0"
|
||||
"@types/json-schema": "^7.0.8",
|
||||
"ajv": "^6.12.5",
|
||||
"ajv-keywords": "^3.5.2"
|
||||
}
|
||||
},
|
||||
"yallist": {
|
||||
@@ -24135,8 +24178,9 @@
|
||||
}
|
||||
},
|
||||
"enhanced-resolve": {
|
||||
"version": "4.1.1",
|
||||
"integrity": "sha512-98p2zE+rL7/g/DzMHMTF4zZlCgeVdJ7yr6xzEpJRYwFYrGi9ANdn5DnJURg6RpBkyk60XYDnWIv51VfIhfNGuA==",
|
||||
"version": "4.5.0",
|
||||
"resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.5.0.tgz",
|
||||
"integrity": "sha512-Nv9m36S/vxpsI+Hc4/ZGRs0n9mXqSWGGq49zxb/cJfPAQMbUtttJAlNPS4AQzaBdw/pKskw5bMbekT/Y7W/Wlg==",
|
||||
"requires": {
|
||||
"graceful-fs": "^4.1.2",
|
||||
"memory-fs": "^0.5.0",
|
||||
@@ -29445,10 +29489,6 @@
|
||||
"tmpl": "1.0.x"
|
||||
}
|
||||
},
|
||||
"mamacro": {
|
||||
"version": "0.0.3",
|
||||
"integrity": "sha512-qMEwh+UujcQ+kbz3T6V+wAmO2U8veoq2w+3wY8MquqwVA3jChfwY+Tk52GZKDfACEPjuZ7r2oJLejwpt8jtwTA=="
|
||||
},
|
||||
"map-age-cleaner": {
|
||||
"version": "0.1.3",
|
||||
"integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==",
|
||||
@@ -31380,6 +31420,15 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"serialize-javascript": {
|
||||
"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"
|
||||
}
|
||||
},
|
||||
"serve-static": {
|
||||
"version": "1.14.1",
|
||||
"integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==",
|
||||
@@ -33178,31 +33227,32 @@
|
||||
"dev": true
|
||||
},
|
||||
"webpack": {
|
||||
"version": "4.41.5",
|
||||
"integrity": "sha512-wp0Co4vpyumnp3KlkmpM5LWuzvZYayDwM2n17EHFr4qxBBbRokC7DJawPJC7TfSFZ9HZ6GsdH40EBj4UV0nmpw==",
|
||||
"version": "4.46.0",
|
||||
"resolved": "https://registry.npmjs.org/webpack/-/webpack-4.46.0.tgz",
|
||||
"integrity": "sha512-6jJuJjg8znb/xRItk7bkT0+Q7AHCYjjFnvKIWQPkNIOyRqoCGvkOs0ipeQzrqz4l5FtN5ZI/ukEHroeX/o1/5Q==",
|
||||
"requires": {
|
||||
"@webassemblyjs/ast": "1.8.5",
|
||||
"@webassemblyjs/helper-module-context": "1.8.5",
|
||||
"@webassemblyjs/wasm-edit": "1.8.5",
|
||||
"@webassemblyjs/wasm-parser": "1.8.5",
|
||||
"acorn": "^6.2.1",
|
||||
"@webassemblyjs/ast": "1.9.0",
|
||||
"@webassemblyjs/helper-module-context": "1.9.0",
|
||||
"@webassemblyjs/wasm-edit": "1.9.0",
|
||||
"@webassemblyjs/wasm-parser": "1.9.0",
|
||||
"acorn": "^6.4.1",
|
||||
"ajv": "^6.10.2",
|
||||
"ajv-keywords": "^3.4.1",
|
||||
"chrome-trace-event": "^1.0.2",
|
||||
"enhanced-resolve": "^4.1.0",
|
||||
"enhanced-resolve": "^4.5.0",
|
||||
"eslint-scope": "^4.0.3",
|
||||
"json-parse-better-errors": "^1.0.2",
|
||||
"loader-runner": "^2.4.0",
|
||||
"loader-utils": "^1.2.3",
|
||||
"memory-fs": "^0.4.1",
|
||||
"micromatch": "^3.1.10",
|
||||
"mkdirp": "^0.5.1",
|
||||
"mkdirp": "^0.5.3",
|
||||
"neo-async": "^2.6.1",
|
||||
"node-libs-browser": "^2.2.1",
|
||||
"schema-utils": "^1.0.0",
|
||||
"tapable": "^1.1.3",
|
||||
"terser-webpack-plugin": "^1.4.3",
|
||||
"watchpack": "^1.6.0",
|
||||
"watchpack": "^1.7.4",
|
||||
"webpack-sources": "^1.4.1"
|
||||
},
|
||||
"dependencies": {
|
||||
|
||||
@@ -23,7 +23,7 @@
|
||||
"@typescript-eslint/eslint-plugin": "^4.9.1",
|
||||
"@typescript-eslint/parser": "^4.9.1",
|
||||
"chromedriver": "^92.0.0",
|
||||
"copy-webpack-plugin": "^6.0.3",
|
||||
"copy-webpack-plugin": "^6.4.1",
|
||||
"eslint": "^7.15.0",
|
||||
"eslint-plugin-react": "^7.21.5",
|
||||
"jest": "^27.0.6",
|
||||
@@ -33,7 +33,7 @@
|
||||
"ts-loader": "^6.2.1",
|
||||
"typescript": "~4.3",
|
||||
"web-ext": "^6.2.0",
|
||||
"webpack": "~4.41.2",
|
||||
"webpack": "~4.46.0",
|
||||
"webpack-cli": "~3.3.10",
|
||||
"webpack-merge": "~4.2.2"
|
||||
},
|
||||
@@ -46,6 +46,8 @@
|
||||
"build": "npm run build:chrome",
|
||||
"build:chrome": "webpack --env.browser=chrome --config webpack/webpack.prod.js",
|
||||
"build:firefox": "webpack --env.browser=firefox --config webpack/webpack.prod.js",
|
||||
"build:safari": "webpack --env.browser=safari --config webpack/webpack.prod.js",
|
||||
"build:edge": "webpack --env.browser=edge --config webpack/webpack.prod.js",
|
||||
"build:dev": "npm run build:dev:chrome",
|
||||
"build:dev:chrome": "webpack --env.browser=chrome --config webpack/webpack.dev.js",
|
||||
"build:dev:firefox": "webpack --env.browser=firefox --config webpack/webpack.dev.js",
|
||||
|
||||
@@ -440,6 +440,9 @@
|
||||
"shortCheck": {
|
||||
"message": "Следното предложение е по-кратко от опцията за минимална продължителност. Това може да означава, че вече е изпратено и просто е игнорирано поради тази опция. Наистина ли искате да го изпратите?"
|
||||
},
|
||||
"liveOrPremiere": {
|
||||
"message": "Не е разрешено изпращането по време на активен поток на живо или премиера. Моля, изчакайте, докато приключи, след което опреснете страницата и проверете дали сегментите са все още валидни."
|
||||
},
|
||||
"showUploadButton": {
|
||||
"message": "Показване на бутона за качване"
|
||||
},
|
||||
|
||||
@@ -440,6 +440,9 @@
|
||||
"shortCheck": {
|
||||
"message": "Váš příspěvek je kratší než vaše možnost nejkratší doby trvání. To by mohlo znamenat, že někdo segment již odeslal, a je jenom ignorován kvůli této možnosti. Opravdu chcete odeslat váš příspěvek?"
|
||||
},
|
||||
"liveOrPremiere": {
|
||||
"message": "Odesílání na aktivním streamu nebo premiéře. Počkejte prosím, než skončí, poté obnovte stránku a ověřte, zda jsou segmenty stále platné."
|
||||
},
|
||||
"showUploadButton": {
|
||||
"message": "Zobrazit tlačítko Nahrát"
|
||||
},
|
||||
|
||||
@@ -440,6 +440,9 @@
|
||||
"shortCheck": {
|
||||
"message": "Die folgende Einreichung ist kürzer als deine Mindestdauer. Das könnte bedeuten, dass dieses Videosegment bereits eingereicht wurde und aufgrund dieser Option einfach ignoriert wird. Bist du dir sicher, dass du es übermitteln möchtest?"
|
||||
},
|
||||
"liveOrPremiere": {
|
||||
"message": "Das Einreichen eines aktiven Livestreams oder Premiere ist nicht erlaubt. Bitte warte bis es zu ende ist, lade die Seite neu und überprüfe, dass die Segmente noch immer korrekt sind."
|
||||
},
|
||||
"showUploadButton": {
|
||||
"message": "Upload-Knopf anzeigen"
|
||||
},
|
||||
@@ -544,7 +547,7 @@
|
||||
"message": "Nur für das Kennzeichnen ganzer Videos. Wird verwendet wenn ein Video ein Produkt, eine Dienstleistung oder einen Ort präsentiert, zu welchem sie freien oder subventionierten Zugriff erhalten haben."
|
||||
},
|
||||
"category_exclusive_access_pill": {
|
||||
"message": "Dieses Video präsentiert ein Produkt, eine Dienstleistung oder einen Ort, zu welchem sie freien oder subventionierten Zigriff erhalten haben",
|
||||
"message": "Dieses Video präsentiert ein Produkt, eine Dienstleistung oder einen Ort, zu welchem sie freien oder subventionierten Zugriff erhalten haben",
|
||||
"description": "Short description for this category"
|
||||
},
|
||||
"category_interaction": {
|
||||
@@ -638,7 +641,7 @@
|
||||
"message": "Segmente zulassen, die den Ton ausschalten anstatt zu überspringen"
|
||||
},
|
||||
"fullVideoSegments": {
|
||||
"message": "Zeige an, wenn das gesamte Video Werbung ist",
|
||||
"message": "Zeige ein Icon, wenn ein ganzes Video Werbung ist",
|
||||
"description": "Referring to the category pill that is now shown on videos that are entirely sponsor or entirely selfpromo"
|
||||
},
|
||||
"colorFormatIncorrect": {
|
||||
|
||||
@@ -440,6 +440,9 @@
|
||||
"shortCheck": {
|
||||
"message": "The following submission is shorter than your minimum duration option. This could mean that this is already submitted, and just being ignored due to this option. Are you sure you would like to submit?"
|
||||
},
|
||||
"liveOrPremiere": {
|
||||
"message": "Submitting on an active livesteam or premiere is not allowed. Please wait until it finishes, then refresh the page and verify that the segments are still valid."
|
||||
},
|
||||
"showUploadButton": {
|
||||
"message": "Show Upload Button"
|
||||
},
|
||||
@@ -541,10 +544,10 @@
|
||||
"message": "Exclusive Access"
|
||||
},
|
||||
"category_exclusive_access_description": {
|
||||
"message": "Only for labeling entire videos. Used when a video showcases a product, service or location that they've recieved free or subsidized access to."
|
||||
"message": "Only for labeling entire videos. Used when a video showcases a product, service or location that they've received free or subsidized access to."
|
||||
},
|
||||
"category_exclusive_access_pill": {
|
||||
"message": "This video showcases a product, service or location that they've recieved free or subsidized access to",
|
||||
"message": "This video showcases a product, service or location that they've received free or subsidized access to",
|
||||
"description": "Short description for this category"
|
||||
},
|
||||
"category_interaction": {
|
||||
|
||||
@@ -440,6 +440,9 @@
|
||||
"shortCheck": {
|
||||
"message": "El siguiente envío es más corto que su opción de duración mínima. Esto podría significar que esto ya se ha enviado y que simplemente se ha ignorado debido a esta opción. ¿Está seguro de que desea enviar?"
|
||||
},
|
||||
"liveOrPremiere": {
|
||||
"message": "No se permite enviar en una transmisión en vivo activa o estreno. Espere hasta que finalice, luego actualice la página y verifique que los segmentos aún sean válidos."
|
||||
},
|
||||
"showUploadButton": {
|
||||
"message": "Mostrar botón de subida"
|
||||
},
|
||||
@@ -537,6 +540,16 @@
|
||||
"category_selfpromo_description": {
|
||||
"message": "Similar a \"sponsor\", excepto que para la promoción propia o no remunerada. Esto incluye secciones sobre mercancía, donaciones o información sobre con quiénes colaboraron."
|
||||
},
|
||||
"category_exclusive_access": {
|
||||
"message": "Acceso Exclusivo"
|
||||
},
|
||||
"category_exclusive_access_description": {
|
||||
"message": "Solo para etiquetar videos completos. Utilizado cuando un video exhibe un producto, servicio o ubicación al que han recibido acceso gratuito o subsidiado."
|
||||
},
|
||||
"category_exclusive_access_pill": {
|
||||
"message": "Este video exhibe un producto, servicio o ubicación al que han recibido acceso gratuito o subsidiado",
|
||||
"description": "Short description for this category"
|
||||
},
|
||||
"category_interaction": {
|
||||
"message": "Recordatorio de interacción (subscribir)"
|
||||
},
|
||||
@@ -618,6 +631,9 @@
|
||||
"showOverlay_POI": {
|
||||
"message": "Mostrar en la barra de búsqueda"
|
||||
},
|
||||
"showOverlay_full": {
|
||||
"message": "Mostrar Etiqueta"
|
||||
},
|
||||
"autoSkipOnMusicVideos": {
|
||||
"message": "Omitir automáticamente todos los segmentos cuando hay un segmento sin música"
|
||||
},
|
||||
|
||||
@@ -537,6 +537,16 @@
|
||||
"category_selfpromo_description": {
|
||||
"message": "Sarnaneb \"sponsorile\", ent on mõeldud tasumata või enesepromo jaoks. Selle alla kuuluvad jaotised oma müüdava kauba, annetuste ja koostööpartnerite kohta."
|
||||
},
|
||||
"category_exclusive_access": {
|
||||
"message": "Eksklusiivne ligipääs"
|
||||
},
|
||||
"category_exclusive_access_description": {
|
||||
"message": "Ainult tervete videote märkimiseks. Kasutatakse, kui video esitleb toodet, teenust või asukohta, millele isik on tasuta või toetusega ligipääsu saanud."
|
||||
},
|
||||
"category_exclusive_access_pill": {
|
||||
"message": "See video esitleb toodet, teenust või asukohta, millele isik on tasuta või toetusega ligipääsu saanud",
|
||||
"description": "Short description for this category"
|
||||
},
|
||||
"category_interaction": {
|
||||
"message": "Tegutsemise meeldetuletus (kanali tellimine)"
|
||||
},
|
||||
@@ -618,6 +628,9 @@
|
||||
"showOverlay_POI": {
|
||||
"message": "Kuva mängija ajaribal"
|
||||
},
|
||||
"showOverlay_full": {
|
||||
"message": "Kuva silt"
|
||||
},
|
||||
"autoSkipOnMusicVideos": {
|
||||
"message": "Jäta automaatselt kõik segmendid vahele, kui eksisteerib mitte-muusika segment"
|
||||
},
|
||||
@@ -745,6 +758,9 @@
|
||||
"message": "Sain aru",
|
||||
"description": "Used as the button to dismiss a tooltip"
|
||||
},
|
||||
"categoryPillTitleText": {
|
||||
"message": "See terve video on selle kategooriaga sildistatud ning on liiga tihedalt integreeritud, et eraldada saaks"
|
||||
},
|
||||
"experiementOptOut": {
|
||||
"message": "Keeldu kõigist tulevikus tehtavatatest eksperimentidest",
|
||||
"description": "This is used in a popup about a new experiment to get a list of unlisted videos to back up since all unlisted videos uploaded before 2017 will be set to private."
|
||||
|
||||
@@ -3,11 +3,15 @@
|
||||
"message": "اسپانسربلاک برای یوتیوب - اسپانسر ها را رد کنید",
|
||||
"description": "Name of the extension."
|
||||
},
|
||||
"Description": {
|
||||
"message": "بخش های اسپانسر شده، درخواست ساب اسکرایب و خیلی چیز های دیگر در ویدیو های یوتیوب را رد کنید. قسمت های اسپانسری ویدیو هایی که میبینید را گزارش کنید تا در وقت دیگران صرفه جویی شود.",
|
||||
"description": "Description of the extension."
|
||||
},
|
||||
"400": {
|
||||
"message": "سرور گفت که این درخواست نامعتبر است"
|
||||
},
|
||||
"429": {
|
||||
"message": "شما برای این یک ویدیو تعداد بیش از حدی زمان اسپانسر ثبت کردهاید، آیا مطمئن هستید که به این تعداد وجود دارد؟"
|
||||
"message": "شما برای این ویدیو قسمت های اسپانسری خیلی زیادی ثبت کرده اید، آیا مطمئنید که به این تعداد وجوددارد؟"
|
||||
},
|
||||
"409": {
|
||||
"message": "این قبلاً ثبت شده است"
|
||||
@@ -127,7 +131,7 @@
|
||||
"message": "شما دیگران را نجات دادید از "
|
||||
},
|
||||
"viewLeaderboard": {
|
||||
"message": "لیست سرنشینان"
|
||||
"message": "نفرات برتر"
|
||||
},
|
||||
"recordTimesDescription": {
|
||||
"message": "ثبت"
|
||||
@@ -144,6 +148,9 @@
|
||||
"setUsername": {
|
||||
"message": "تنظیم نام کاربری"
|
||||
},
|
||||
"discordAdvert": {
|
||||
"message": "به سرور رسمی دیسکورد بپیوندید تا پیشنهادات و بازخوردهای خود را ارائه دهید!"
|
||||
},
|
||||
"hideThis": {
|
||||
"message": "مخفیسازی"
|
||||
},
|
||||
@@ -156,6 +163,9 @@
|
||||
"hideButtons": {
|
||||
"message": "مخفیسازی کلید ها در پخشکننده یوتیوب"
|
||||
},
|
||||
"showNotice": {
|
||||
"message": "نمایش مجدد اطلاعیه"
|
||||
},
|
||||
"longDescription": {
|
||||
"message": "افزونه اسپانسر بلاک به شما امکان رد کردن بخشهای تبلیغاتی (اسپانسر شده)، قسمتهای شروع و پایان ویدیو، درخواست ساباسکرایب و سایر قسمتهای آزار دهنده یوتیوب را میدهد. اسپانسر بلاک یک افزونه مرورگر است که به هر کسی امکان ثبت زمان شروع و پایان بخش های اسپانسر شده و سایر بخش های ویدیو های یوتیوب را میدهد. پس از اینکه هر کاربر این اطلاعات را ثبت کرده و گزارش دهد، بقیه کاربرانی که از این افزونه استفاده میکنند مستقیماً بخش اسپانسر شده ویدیو را رد خواهند کرد. شما همچنین میتوانید در ویدیو های نماهنگ (موزیک ویدیو)، قسمتهای غیر موسیقی ویدیو را رد کنید.",
|
||||
"description": "Full description of the extension on the store pages."
|
||||
@@ -172,6 +182,9 @@
|
||||
"message": "اگر همچنان این را نمیپسندید، گزینه هرگز نمایش نده را انتخاب کنید.",
|
||||
"description": "The second line of the message displayed after the notice was upgraded."
|
||||
},
|
||||
"keybindDescription": {
|
||||
"message": "یک کلید را با تایپ نمودن انتخاب نمایید"
|
||||
},
|
||||
"disableSkipping": {
|
||||
"message": "ردکردن فعال است"
|
||||
},
|
||||
@@ -194,6 +207,20 @@
|
||||
"mute": {
|
||||
"message": "بیصدا"
|
||||
},
|
||||
"skip_category": {
|
||||
"message": "{0} رد شود؟"
|
||||
},
|
||||
"mute_category": {
|
||||
"message": "{0} بیصدا شود؟"
|
||||
},
|
||||
"skipped": {
|
||||
"message": "{0} رد شد",
|
||||
"description": "Example: Sponsor Skipped"
|
||||
},
|
||||
"muted": {
|
||||
"message": "{0} بیصدا شد",
|
||||
"description": "Example: Sponsor Muted"
|
||||
},
|
||||
"minLower": {
|
||||
"message": "دقیقه"
|
||||
},
|
||||
@@ -203,6 +230,12 @@
|
||||
"createdBy": {
|
||||
"message": "ایجاد شده توسط"
|
||||
},
|
||||
"keybindCurrentlySet": {
|
||||
"message": ". در حال حاضر تنظیم شده است به:"
|
||||
},
|
||||
"supportedSites": {
|
||||
"message": "وبسایتهای پشتیبانی شده: "
|
||||
},
|
||||
"add": {
|
||||
"message": "افزودن"
|
||||
},
|
||||
@@ -221,6 +254,9 @@
|
||||
"setOptions": {
|
||||
"message": "تنظیم گزینهها"
|
||||
},
|
||||
"confirmNoticeTitle": {
|
||||
"message": "ثبت بخش"
|
||||
},
|
||||
"submit": {
|
||||
"message": "ثبت"
|
||||
},
|
||||
@@ -242,6 +278,9 @@
|
||||
"edit": {
|
||||
"message": "ویرایش"
|
||||
},
|
||||
"theKey": {
|
||||
"message": "کلید"
|
||||
},
|
||||
"to": {
|
||||
"message": "به",
|
||||
"description": "Used between segments. Example: 1:20 to 1:30"
|
||||
@@ -249,6 +288,12 @@
|
||||
"category_sponsor": {
|
||||
"message": "اسپانسر"
|
||||
},
|
||||
"category_exclusive_access": {
|
||||
"message": "دسترسی اختصاصی"
|
||||
},
|
||||
"category_filler_short": {
|
||||
"message": "پر کننده"
|
||||
},
|
||||
"category_music_offtopic_short": {
|
||||
"message": "غیر موسیقی"
|
||||
},
|
||||
@@ -261,12 +306,43 @@
|
||||
"manualSkip": {
|
||||
"message": "ردکردن دستی"
|
||||
},
|
||||
"showOverlay": {
|
||||
"message": "نمایش در نوار پیشرفت"
|
||||
},
|
||||
"disable": {
|
||||
"message": "غیرفعال کردن"
|
||||
},
|
||||
"showOverlay_POI": {
|
||||
"message": "نمایش در نوار پیشرفت"
|
||||
},
|
||||
"showOverlay_full": {
|
||||
"message": "نمایش نام"
|
||||
},
|
||||
"category": {
|
||||
"message": "دسته بندی"
|
||||
},
|
||||
"bracketNow": {
|
||||
"message": "(اکنون)"
|
||||
},
|
||||
"moreCategories": {
|
||||
"message": "نمایش دستهبندیها"
|
||||
},
|
||||
"bracketEnd": {
|
||||
"message": "(پایان)"
|
||||
},
|
||||
"acceptPermission": {
|
||||
"message": "تأیید دسترسی"
|
||||
},
|
||||
"incorrectCategory": {
|
||||
"message": "تغییر دسته بندی"
|
||||
},
|
||||
"guidelines": {
|
||||
"message": "دستورالعملها"
|
||||
},
|
||||
"readTheGuidelines": {
|
||||
"message": "دستورالعملها را بخوانید!!",
|
||||
"description": "Show the first time they submit or if they are \"high risk\""
|
||||
},
|
||||
"help": {
|
||||
"message": "راهنما"
|
||||
},
|
||||
@@ -274,7 +350,61 @@
|
||||
"message": "فهمیدم",
|
||||
"description": "Used as the button to dismiss a tooltip"
|
||||
},
|
||||
"hideForever": {
|
||||
"message": "مخفیسازی برای همیشه"
|
||||
},
|
||||
"warningChatInfo": {
|
||||
"message": "شما یک اخطار دریافت کرده اید و موقتاً نمیتوانید بخشی را ثبت کنید. این یعنی ما متوجه شدیم که شما یک سری اشتباهات متداول داشتید اما قصد و نیت خرابکاری نداشتید، لطفاً فقط تایید کنید که شما از قوانین آگاهی دارید و سپس ما این اخطار را حذف خواهیم کرد. شما میتوانید به کمک discord.gg/SponsorBlock یا matrix.to/#/#sponsor:ajay.app عضو گروه ما بشوید."
|
||||
},
|
||||
"voteRejectedWarning": {
|
||||
"message": "رای شما رد شد چون شما یک اخطار دارید. برای حل این مشکل یک کلیک کنید تا گروه چت ما باز بشود، یا اینکه بعداً هر موقع وقت داشتید این کار را انجام بدهید.",
|
||||
"description": "This is an integrated chat panel that will appearing allowing them to talk to the Discord/Matrix chat without leaving their browser."
|
||||
},
|
||||
"Donate": {
|
||||
"message": "کمک مالی"
|
||||
},
|
||||
"hideDonationLink": {
|
||||
"message": "پنهان کردن لینک کمک مالی"
|
||||
},
|
||||
"helpPageThanksForInstalling": {
|
||||
"message": "ازینکه افزونه SponserBlock را نصب کردید سپاسگزاریم."
|
||||
},
|
||||
"helpPageReviewOptions": {
|
||||
"message": "لطفاً تنظیمات زیر را بررسی کنید"
|
||||
},
|
||||
"helpPageHowSkippingWorks": {
|
||||
"message": "چگونه ردکردن کار میکند"
|
||||
},
|
||||
"Submitting": {
|
||||
"message": "ثبت نمودن"
|
||||
},
|
||||
"Editing": {
|
||||
"message": "ویرایش"
|
||||
},
|
||||
"helpPageCopyOfDatabase": {
|
||||
"message": "آیا میتوان یک کپی از پایگاه داده را دریافت کرد؟ اگر شما یک روز ناپدید شدید چه میشود؟"
|
||||
},
|
||||
"helpPageCopyOfDatabase1": {
|
||||
"message": "پایگاه داده بهصورت عمومی در دسترس است در"
|
||||
},
|
||||
"helpPageCopyOfDatabase2": {
|
||||
"message": "سورس کد بهصورت رایگان ارائه شده است. بنابراین، اگر اتفاقی برای من بیفتد، ارسالات شما از بین نمیروند."
|
||||
},
|
||||
"helpPageSourceCode": {
|
||||
"message": "از کجا سورس کد را بگیرم؟"
|
||||
},
|
||||
"Credits": {
|
||||
"message": "سازندگان"
|
||||
},
|
||||
"LearnMore": {
|
||||
"message": "بیشتر بدانید"
|
||||
},
|
||||
"dayAbbreviation": {
|
||||
"message": "روز",
|
||||
"description": "100d"
|
||||
},
|
||||
"hourAbbreviation": {
|
||||
"message": "ساعت",
|
||||
"description": "100h"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -440,6 +440,9 @@
|
||||
"shortCheck": {
|
||||
"message": "Seuraava lähetys on lyhyempi kuin vähimmäiskeston asetuksesi. Tämä voi tarkoittaa sitä, että tämä on jo lähetetty, ja sitä ei vain oteta huomioon tämän asetuksen vuoksi. Oletko varma, että haluat lähettää?"
|
||||
},
|
||||
"liveOrPremiere": {
|
||||
"message": "Aktiivisen livestriimin tai ensiesityksen aikana lähettäminen ei ole sallittua. Odota kunnes se loppuu, sitten päivitä sivu ja varmista, että segmentit ovat yhä oikein."
|
||||
},
|
||||
"showUploadButton": {
|
||||
"message": "Näytä lähetä-painike"
|
||||
},
|
||||
@@ -537,6 +540,16 @@
|
||||
"category_selfpromo_description": {
|
||||
"message": "Samankaltainen \"sponsorin\" kanssa, mutta maksamattomalle tai itsensä mainostukselle. Tämä sisältää osioita kauppatavarasta, lahjoituksista tai tietoa siitä, kenen kanssa he ovat tehneet yhteistyötä."
|
||||
},
|
||||
"category_exclusive_access": {
|
||||
"message": "Yksinoikeudellinen ensikatsaus"
|
||||
},
|
||||
"category_exclusive_access_description": {
|
||||
"message": "Vain kokonaisten videoiden merkitsemiseen. Käytetään kun videossa esitellään tuote, palvelu tai sijainti, johon he ovat saaneet ilmaisen tai tuetun käyttöoikeuden."
|
||||
},
|
||||
"category_exclusive_access_pill": {
|
||||
"message": "Tämä video esittelee tuotteen, palvelun tai sijainnin, johon he ovat saaneet ilmaisen tai tuetun käyttöoikeuden",
|
||||
"description": "Short description for this category"
|
||||
},
|
||||
"category_interaction": {
|
||||
"message": "Vuorovaikutusmuistutus (tilaaminen)"
|
||||
},
|
||||
@@ -618,6 +631,9 @@
|
||||
"showOverlay_POI": {
|
||||
"message": "Näytä liukusäätimessä"
|
||||
},
|
||||
"showOverlay_full": {
|
||||
"message": "Näytä merkki"
|
||||
},
|
||||
"autoSkipOnMusicVideos": {
|
||||
"message": "Ohita kaikki segmentit automaattisesti, kun videossa on \"Musiikiton\" segmentti"
|
||||
},
|
||||
|
||||
@@ -440,6 +440,9 @@
|
||||
"shortCheck": {
|
||||
"message": "A következő szegmens rövidebb, mint az általad beállított minimális időtartam. Ez azt jelentheti, hogy már beküldhették, csak emiatt az opció miatt nálad nem jelenik meg. Biztosan beküldöd?"
|
||||
},
|
||||
"liveOrPremiere": {
|
||||
"message": "Aktív élő közvetítés vagy premier közben nem lehet szegmenseket beküldeni. Kérjük várd meg a végét, majd frissítsd az oldalt és ellenőrizd, hogy a szegmensek nem csúsztak-e el."
|
||||
},
|
||||
"showUploadButton": {
|
||||
"message": "Feltöltés gomb megjelenítése"
|
||||
},
|
||||
@@ -541,10 +544,10 @@
|
||||
"message": "Exkluzív hozzáférés"
|
||||
},
|
||||
"category_exclusive_access_description": {
|
||||
"message": "Csak teljes videók megjelölésére. Akkor használt, amikor egy videó egy olyan terméket, szolgáltatást vagy helyszínt mutat be, amihez ingyen vagy kedvezményes hozzáférést kaptak."
|
||||
"message": "Csak teljes videók megjelölésére. Akkor használt, amikor egy videó egy olyan terméket, szolgáltatást vagy helyszínt mutat be, amihez ingyenes vagy kedvezményes hozzáférést kaptak."
|
||||
},
|
||||
"category_exclusive_access_pill": {
|
||||
"message": "Ez a videó olyan terméket, szolgáltatást vagy helyszínt mutat be, amihez ingyen vagy kedvezményes hozzáférést kaptak",
|
||||
"message": "Ez a videó olyan terméket, szolgáltatást vagy helyszínt mutat be, amihez ingyenes vagy kedvezményes hozzáférést kaptak",
|
||||
"description": "Short description for this category"
|
||||
},
|
||||
"category_interaction": {
|
||||
|
||||
@@ -440,6 +440,9 @@
|
||||
"shortCheck": {
|
||||
"message": "Il seguente contributo è più breve della tua opzione di durata minima. Ciò potrebbe significare che questo è già stato inviato e viene semplicemente ignorato a causa di questa opzione. Sei sicuro di voler inviare?"
|
||||
},
|
||||
"liveOrPremiere": {
|
||||
"message": "Inviare segmenti per una live o premiere non è consentito. Per favore aspetta che finisca, poi ricarica la pagina e verifica che i segmenti siano ancora validi."
|
||||
},
|
||||
"showUploadButton": {
|
||||
"message": "Mostra Pulsante di Caricamento"
|
||||
},
|
||||
@@ -537,6 +540,16 @@
|
||||
"category_selfpromo_description": {
|
||||
"message": "Simile alle \"sponsorizzazioni\" tranne che per promozioni non pagate o autopromozioni. Ciò include sezioni riguardanti vendita di merce, donazioni o informazioni in merito a collaboratori."
|
||||
},
|
||||
"category_exclusive_access": {
|
||||
"message": "Accesso Esclusivo"
|
||||
},
|
||||
"category_exclusive_access_description": {
|
||||
"message": "Solo per etichettare interi video. Usato quando un video mostra un prodotto, un servizio o un posto che hanno ricevuto gratuitamente o a cui hanno avuto un accesso sovvenzionato."
|
||||
},
|
||||
"category_exclusive_access_pill": {
|
||||
"message": "Questo video mostra un prodotto, un servizio o un posto che hanno ricevuto gratuitamente o a cui hanno avuto un accesso sovvenzionato",
|
||||
"description": "Short description for this category"
|
||||
},
|
||||
"category_interaction": {
|
||||
"message": "Promemoria di Interazione (Sottoscrizione)"
|
||||
},
|
||||
@@ -568,10 +581,10 @@
|
||||
"message": "Riepilogo rapido degli episodi precedenti, o un'anteprima di ciò che sta arrivando più tardi nel video attuale. Inteso per clip, non per riassunti a voce."
|
||||
},
|
||||
"category_filler": {
|
||||
"message": "Tangente di Riempimento"
|
||||
"message": "Tangente riempitiva"
|
||||
},
|
||||
"category_filler_description": {
|
||||
"message": "Le scene tangenziali aggiunte solo per riempire o per umorismo che non sono richieste per comprendere il contenuto principale del video. Questo non dovrebbe includere segmenti che forniscono contesto o dettagli di sfondo."
|
||||
"message": "Le scene riempitive sono aggiunte solo per riempire o per umorismo che non sono richieste per comprendere il contenuto principale del video. Questo non dovrebbe includere segmenti che forniscono contesto o dettagli di sfondo."
|
||||
},
|
||||
"category_filler_short": {
|
||||
"message": "Riempimento"
|
||||
@@ -618,6 +631,9 @@
|
||||
"showOverlay_POI": {
|
||||
"message": "Mostra Nella Barra di Ricerca"
|
||||
},
|
||||
"showOverlay_full": {
|
||||
"message": "Mostra Etichetta"
|
||||
},
|
||||
"autoSkipOnMusicVideos": {
|
||||
"message": "Salta automaticamente tutti i segmenti quando c'è un segmento non musicale"
|
||||
},
|
||||
@@ -832,7 +848,7 @@
|
||||
"message": "Scopri di Più"
|
||||
},
|
||||
"CopyDownvoteButtonInfo": {
|
||||
"message": "Vota negativamente e crea una copia locale per reinviare"
|
||||
"message": "Vota negativamente e crea una copia locale da reinviare"
|
||||
},
|
||||
"OpenCategoryWikiPage": {
|
||||
"message": "Apri la pagina della wiki di questa categoria."
|
||||
|
||||
@@ -440,6 +440,9 @@
|
||||
"shortCheck": {
|
||||
"message": "De volgende inzending is korter dan uw \"minimale tijdsduur\"-instelling. Dit kan betekenen dat dit al is ingediend en genegeerd wordt door deze optie. Weet u zeker dat u dit wilt indienen?"
|
||||
},
|
||||
"liveOrPremiere": {
|
||||
"message": "Indienen op een actieve livesteam of première is niet toegestaan. Wacht tot hij klaar is, vernieuw dan de pagina en controleer of de segmenten nog geldig zijn."
|
||||
},
|
||||
"showUploadButton": {
|
||||
"message": "Uploaden-knop weergeven"
|
||||
},
|
||||
@@ -537,6 +540,16 @@
|
||||
"category_selfpromo_description": {
|
||||
"message": "Vergelijkbaar met \"sponsor\", behalve voor onbetaalde of zelfpromotie. Dit is inclusief secties over koopwaar, donaties of informatie over met wie ze hebben samengewerkt."
|
||||
},
|
||||
"category_exclusive_access": {
|
||||
"message": "Exclusieve toegang"
|
||||
},
|
||||
"category_exclusive_access_description": {
|
||||
"message": "Alleen voor het labelen van volledige video's. Wordt gebruikt wanneer een video een product, dienst of locatie laat zien waartoe men gratis of gesubsidieerd toegang heeft gekregen."
|
||||
},
|
||||
"category_exclusive_access_pill": {
|
||||
"message": "Deze video toont een product, dienst of locatie waartoe men gratis of gesubsidieerd toegang heeft gekregen",
|
||||
"description": "Short description for this category"
|
||||
},
|
||||
"category_interaction": {
|
||||
"message": "Interactieherinnering (abonneren)"
|
||||
},
|
||||
@@ -618,6 +631,9 @@
|
||||
"showOverlay_POI": {
|
||||
"message": "Weergeven in tijdbalk"
|
||||
},
|
||||
"showOverlay_full": {
|
||||
"message": "Label weergeven"
|
||||
},
|
||||
"autoSkipOnMusicVideos": {
|
||||
"message": "Automatisch alle segmenten overslaan wanneer er een niet-muziek-segment is"
|
||||
},
|
||||
|
||||
@@ -302,6 +302,10 @@
|
||||
"mute": {
|
||||
"message": "Silenciar"
|
||||
},
|
||||
"full": {
|
||||
"message": "Vídeo completo",
|
||||
"description": "Used for the name of the option to label an entire video as sponsor or self promotion."
|
||||
},
|
||||
"skip_category": {
|
||||
"message": "Pular {0}?"
|
||||
},
|
||||
@@ -533,6 +537,9 @@
|
||||
"category_selfpromo_description": {
|
||||
"message": "Similar a \"patrocinador\", mas para auto promoções e segmentos não-pagos. Isso inclui seções sobre vendas, doações ou informações sobre com quem colaboraram."
|
||||
},
|
||||
"category_exclusive_access": {
|
||||
"message": "Acesso Exclusivo"
|
||||
},
|
||||
"category_interaction": {
|
||||
"message": "Lembrete de interação (inscrever-se)"
|
||||
},
|
||||
@@ -614,12 +621,19 @@
|
||||
"showOverlay_POI": {
|
||||
"message": "Mostrar na barra de progresso"
|
||||
},
|
||||
"showOverlay_full": {
|
||||
"message": "Mostrar Rótulo"
|
||||
},
|
||||
"autoSkipOnMusicVideos": {
|
||||
"message": "Pular automaticamente todos os segmentos quando há um segmento que não é música"
|
||||
},
|
||||
"muteSegments": {
|
||||
"message": "Permitir segmentos que silenciem o áudio ao invés de pular"
|
||||
},
|
||||
"fullVideoSegments": {
|
||||
"message": "Mostrar um ícone quando um vídeo é inteiramente um anúncio",
|
||||
"description": "Referring to the category pill that is now shown on videos that are entirely sponsor or entirely selfpromo"
|
||||
},
|
||||
"colorFormatIncorrect": {
|
||||
"message": "Sua cor está formatada incorretamente. Deve ser um código hexadecimal de 3 ou 6 dígitos com uma cerquilha (hashtag) no início."
|
||||
},
|
||||
@@ -737,6 +751,12 @@
|
||||
"message": "Entendi",
|
||||
"description": "Used as the button to dismiss a tooltip"
|
||||
},
|
||||
"fullVideoTooltipWarning": {
|
||||
"message": "Este segmento é grande. Se o vídeo inteiro for sobre um tópico, altere de \"Pular\" para \"Vídeo completo\". Consulte as diretrizes para obter mais informações."
|
||||
},
|
||||
"categoryPillTitleText": {
|
||||
"message": "Este vídeo inteiro está rotulado como esta categoria e está muito integrado para poder ser separado"
|
||||
},
|
||||
"experiementOptOut": {
|
||||
"message": "Optar por sair de todos os experimentos futuros",
|
||||
"description": "This is used in a popup about a new experiment to get a list of unlisted videos to back up since all unlisted videos uploaded before 2017 will be set to private."
|
||||
@@ -835,6 +855,9 @@
|
||||
"SponsorTimeEditScrollNewFeature": {
|
||||
"message": "Use a roda do mouse enquanto mantêm o cursor sobre a caixa de edição para ajustar o tempo rapidamente. Combinações das teclas ctrl e shift podem ser usadas para refinar as mudanças."
|
||||
},
|
||||
"categoryPillNewFeature": {
|
||||
"message": "Novo! Veja quando um vídeo é inteiramente patrocinado ou de autopromoção"
|
||||
},
|
||||
"dayAbbreviation": {
|
||||
"message": "d",
|
||||
"description": "100d"
|
||||
|
||||
@@ -440,6 +440,9 @@
|
||||
"shortCheck": {
|
||||
"message": "Следующий диапазон времени короче, чем Ваша настройка минимальной длительности. Это может означать, что он уже был отправлен, и просто игнорируется из-за этой настройки. Вы действительно хотите отправить?"
|
||||
},
|
||||
"liveOrPremiere": {
|
||||
"message": "Отправка сегментов на стримах или премьерах не допускается. Пожалуйста, дождитесь окончания видео, затем обновите страницу и убедитесь, что сегменты всё ещё верные."
|
||||
},
|
||||
"showUploadButton": {
|
||||
"message": "Показывать кнопку отправки"
|
||||
},
|
||||
@@ -541,7 +544,7 @@
|
||||
"message": "Эксклюзивный доступ"
|
||||
},
|
||||
"category_exclusive_access_description": {
|
||||
"message": "Категория для всего видео. Используется когда видео демонстрирует продукт, сервис или местоположение, к которому автор получил бесплатный или проспонсированный доступ."
|
||||
"message": "Категория для всего видео. Используется, когда видео демонстрирует продукт, сервис или местоположение, к которому автор получил бесплатный или проспонсированный доступ."
|
||||
},
|
||||
"category_exclusive_access_pill": {
|
||||
"message": "Это видео демонстрирует продукт, сервис или местоположение, к которому автор получил бесплатный или проспонсированный доступ",
|
||||
@@ -629,7 +632,7 @@
|
||||
"message": "Показывать в полосе прокрутки"
|
||||
},
|
||||
"showOverlay_full": {
|
||||
"message": "Отображать название"
|
||||
"message": "Показывать категорию"
|
||||
},
|
||||
"autoSkipOnMusicVideos": {
|
||||
"message": "Пропускать все сегменты автоматически при наличии сегмента без музыки"
|
||||
|
||||
@@ -537,6 +537,16 @@
|
||||
"category_selfpromo_description": {
|
||||
"message": "Podobné ako sponzor, okrem neplatenej alebo vlastnej propagácie. Patria sem sekcie týkajúce sa merchu, donatov alebo informácií o tom, s kým spolupracovali."
|
||||
},
|
||||
"category_exclusive_access": {
|
||||
"message": "Exkluzívny Prístup"
|
||||
},
|
||||
"category_exclusive_access_description": {
|
||||
"message": "Iba pre označovanie celých videí. Používa sa, keď video predstavuje produkt, službu alebo miesto, ku ktorým získali bezplatný alebo dotovaný prístup."
|
||||
},
|
||||
"category_exclusive_access_pill": {
|
||||
"message": "Toto video predstavuje produkt, službu alebo miesto, ku ktorým získali bezplatný alebo dotovaný prístup",
|
||||
"description": "Short description for this category"
|
||||
},
|
||||
"category_interaction": {
|
||||
"message": "Pripomienka interakcie (Prihlásiť sa na odber)"
|
||||
},
|
||||
@@ -618,6 +628,9 @@
|
||||
"showOverlay_POI": {
|
||||
"message": "Zobraziť v časovej lište"
|
||||
},
|
||||
"showOverlay_full": {
|
||||
"message": "Ukázať Označenie"
|
||||
},
|
||||
"autoSkipOnMusicVideos": {
|
||||
"message": "Automaticky preskočiť všetky segmenty ak neexistuje segment bez hudby"
|
||||
},
|
||||
|
||||
@@ -440,6 +440,9 @@
|
||||
"shortCheck": {
|
||||
"message": "Följande rapport är kortare än ditt minstavärde i inställningarna. Det skulle kunna betyda att det redan är rapporterat och bara ignorerat på grund av denna inställning. Är du säker på att du vill rapportera?"
|
||||
},
|
||||
"liveOrPremiere": {
|
||||
"message": "Att skicka in på en aktiv liveström eller premiär är inte tillåtet. Vänta tills den är färdig, uppdatera sedan sidan och kontrollera att segmenten fortfarande är giltiga."
|
||||
},
|
||||
"showUploadButton": {
|
||||
"message": "Visa uppladdningsknapp"
|
||||
},
|
||||
|
||||
@@ -71,7 +71,7 @@
|
||||
"message": "Sponsor sürelerini yollarken bir sorun oluştur, lütfen tekrar deneyin."
|
||||
},
|
||||
"sponsorFound": {
|
||||
"message": "Bu videonun kısımları veri tabanımızda mevut"
|
||||
"message": "Bu videonun kısımları veri tabanımızda mevcut"
|
||||
},
|
||||
"sponsor404": {
|
||||
"message": "Kısım bulunamadı"
|
||||
@@ -440,6 +440,9 @@
|
||||
"shortCheck": {
|
||||
"message": "Sıradaki öneri belirlediğiniz minimum süre ayarından daha kısa. Bu zaten yollandığı ve bu ayardan dolayı yok sayıldığı anlamına gelebilir. Göndermek istediğinizden emin misiniz?"
|
||||
},
|
||||
"liveOrPremiere": {
|
||||
"message": "Bir canlı yayın veya ön gösterim sırasında kısım gönderilemez. Yayının bitmesini bekleyin, sonra sayfayı tazeleyip kısımların geçerli olduğunu kontrol edin."
|
||||
},
|
||||
"showUploadButton": {
|
||||
"message": "Karşıya Yükleme Butonunu Göster"
|
||||
},
|
||||
@@ -537,6 +540,16 @@
|
||||
"category_selfpromo_description": {
|
||||
"message": "\"Sponsor\" seçeneğinden farkı para karşılığı olmaması veya kendi reklamını yapmasıdır. Buna kendi markalı ürünlerini satmak, bağış toplamak ve videoda işbirliği yaptığı kimselerden bahsetmek dahildir."
|
||||
},
|
||||
"category_exclusive_access": {
|
||||
"message": "Özel Erişim"
|
||||
},
|
||||
"category_exclusive_access_description": {
|
||||
"message": "Yalnızca bütün videoyu etiketlemek için kullanın. Video; ücretli veya ücretsiz elde edilen bir ürünün, hizmetin veya bir yerin reklamını yapıyorsa kullanılır."
|
||||
},
|
||||
"category_exclusive_access_pill": {
|
||||
"message": "Bu video; yayıncıya özel ücretle veya ücretsiz sunulan bir ürünün, hizmetin veya bir yerin reklamını yapıyor",
|
||||
"description": "Short description for this category"
|
||||
},
|
||||
"category_interaction": {
|
||||
"message": "Etkileşim Hatırlatıcısı (Abonelik)"
|
||||
},
|
||||
@@ -618,6 +631,9 @@
|
||||
"showOverlay_POI": {
|
||||
"message": "Arama Çubuğunda Göster"
|
||||
},
|
||||
"showOverlay_full": {
|
||||
"message": "Etiketi Göster"
|
||||
},
|
||||
"autoSkipOnMusicVideos": {
|
||||
"message": "Müzik olmayan kısım varsa tüm kısımları otomatik atla"
|
||||
},
|
||||
@@ -850,7 +866,7 @@
|
||||
"message": "Zaman aralığını hızlı bir şekilde ayarlamak için düzenleme kutusunun üzerinde fare tekerini kullanın. Değişikliklere ince ayar yapmak için ctrl veya shift tuşunun kombinasyonları kullanılabilir."
|
||||
},
|
||||
"categoryPillNewFeature": {
|
||||
"message": "Yeni! Videonun bütünü sponsor veya kendi reklamıysa öngörün"
|
||||
"message": "Yeni! Videonun bütünü sponsor veya kendi reklamıysa bu uyarıyı görün"
|
||||
},
|
||||
"dayAbbreviation": {
|
||||
"message": "d",
|
||||
|
||||
@@ -440,6 +440,9 @@
|
||||
"shortCheck": {
|
||||
"message": "Наступний діапазон часу коротше, ніж Ваше налаштування мінімальної тривалості. Це може означати, що він вже був надісланий, і просто ігнорується через це налаштування. Ви дійсно хочете надіслати?"
|
||||
},
|
||||
"liveOrPremiere": {
|
||||
"message": "Надсилання під час прямого ефіру чи прем'єри не дозволено. Будь ласка, зачекайте до завершення, потім оновіть сторінку і переконайтеся, що сегменти все ще дійсні."
|
||||
},
|
||||
"showUploadButton": {
|
||||
"message": "Показувати кнопку надсилання"
|
||||
},
|
||||
|
||||
@@ -537,6 +537,9 @@
|
||||
"category_selfpromo_description": {
|
||||
"message": "Tương tự như 'nhà tài trợ' ngoại trừ việc quảng cáo không được trả tiền hay tự quảng cáo. Điều này bao gồm các phần hàng hóa, đóng góp, hoặc thông tin về người mà họ hợp tác cùng."
|
||||
},
|
||||
"category_exclusive_access": {
|
||||
"message": "Truy cập riêng"
|
||||
},
|
||||
"category_interaction": {
|
||||
"message": "Nhắc tương tác (Đăng ký)"
|
||||
},
|
||||
|
||||
@@ -15,9 +15,8 @@ import { Message, MessageResponse, VoteResponse } from "./messageTypes";
|
||||
import * as Chat from "./js-components/chat";
|
||||
import { getCategoryActionType } from "./utils/categoryUtils";
|
||||
import { SkipButtonControlBar } from "./js-components/skipButtonControlBar";
|
||||
import { Tooltip } from "./render/Tooltip";
|
||||
import { getStartTimeFromUrl } from "./utils/urlParser";
|
||||
import { findValidElement, getControls, isVisible } from "./utils/pageUtils";
|
||||
import { findValidElement, getControls, getHashParams, isVisible } from "./utils/pageUtils";
|
||||
import { CategoryPill } from "./render/CategoryPill";
|
||||
import { AnimationUtils } from "./utils/animationUtils";
|
||||
import { GenericUtils } from "./utils/genericUtils";
|
||||
@@ -92,6 +91,8 @@ const playerButtons: Record<string, {button: HTMLButtonElement, image: HTMLImage
|
||||
|
||||
// Direct Links after the config is loaded
|
||||
utils.wait(() => Config.config !== null, 1000, 1).then(() => videoIDChange(getYouTubeVideoID(document)));
|
||||
// wait for hover preview to appear, and refresh attachments if ever found
|
||||
window.addEventListener("DOMContentLoaded", () => utils.waitForElement(".ytp-inline-preview-ui").then(() => refreshVideoAttachments()));
|
||||
addPageListeners();
|
||||
addHotkeyListener();
|
||||
|
||||
@@ -265,7 +266,7 @@ function resetValues() {
|
||||
isAdPlaying = false;
|
||||
|
||||
for (let i = 0; i < skipNotices.length; i++) {
|
||||
skipNotices.pop().close();
|
||||
skipNotices.pop()?.close();
|
||||
}
|
||||
|
||||
skipButtonControlBar?.disable();
|
||||
@@ -682,9 +683,6 @@ async function sponsorsLookup(id: string, keepOldSubmissions = true) {
|
||||
|
||||
setupVideoMutationListener();
|
||||
|
||||
//check database for sponsor times
|
||||
//made true once a setTimeout has been created to try again after a server error
|
||||
let recheckStarted = false;
|
||||
// Create categories list
|
||||
const categories: string[] = [];
|
||||
for (const categorySelection of Config.config.categorySelections) {
|
||||
@@ -692,16 +690,8 @@ async function sponsorsLookup(id: string, keepOldSubmissions = true) {
|
||||
}
|
||||
|
||||
const extraRequestData: Record<string, unknown> = {};
|
||||
const windowHash = window.location.hash.substr(1);
|
||||
if (windowHash) {
|
||||
const params: Record<string, unknown> = windowHash.split('&').reduce((acc, param) => {
|
||||
const [key, value] = param.split('=');
|
||||
acc[key] = value;
|
||||
return acc;
|
||||
}, {});
|
||||
|
||||
if (params.requiredSegment) extraRequestData.requiredSegment = params.requiredSegment;
|
||||
}
|
||||
const hashParams = getHashParams();
|
||||
if (hashParams.requiredSegment) extraRequestData.requiredSegment = hashParams.requiredSegment;
|
||||
|
||||
// Check for hashPrefix setting
|
||||
const hashPrefix = (await utils.getHash(id, 1)).substr(0, 4);
|
||||
@@ -771,18 +761,6 @@ async function sponsorsLookup(id: string, keepOldSubmissions = true) {
|
||||
sponsorLookupRetries = 0;
|
||||
} else if (response?.status === 404) {
|
||||
retryFetch();
|
||||
} else if (sponsorLookupRetries < 15 && !recheckStarted) {
|
||||
recheckStarted = true;
|
||||
|
||||
//TODO lower when server becomes better (back to 1 second)
|
||||
//some error occurred, try again in a second
|
||||
setTimeout(() => {
|
||||
if (sponsorVideoID && sponsorTimes?.length === 0) {
|
||||
sponsorsLookup(sponsorVideoID);
|
||||
}
|
||||
}, 5000 + Math.random() * 15000 + 5000 * sponsorLookupRetries);
|
||||
|
||||
sponsorLookupRetries++;
|
||||
}
|
||||
|
||||
lookupVipInformation(id);
|
||||
@@ -953,7 +931,7 @@ function getYouTubeVideoID(document: Document): string | boolean {
|
||||
// skip to document if matches pattern
|
||||
if (url.includes("/channel/") || url.includes("/user/") || url.includes("/c/")) return getYouTubeVideoIDFromDocument(document);
|
||||
// not sure, try URL then document
|
||||
return getYouTubeVideoIDFromURL(url) || getYouTubeVideoIDFromDocument(document);
|
||||
return getYouTubeVideoIDFromURL(url) || getYouTubeVideoIDFromDocument(document, false);
|
||||
}
|
||||
|
||||
function getYouTubeVideoIDFromDocument(document: Document, hideIcon = true): string | boolean {
|
||||
@@ -1403,8 +1381,9 @@ function shouldAutoSkip(segment: SponsorTime): boolean {
|
||||
}
|
||||
|
||||
function shouldSkip(segment: SponsorTime): boolean {
|
||||
return utils.getCategorySelection(segment.category)?.option !== CategorySkipOption.ShowOverlay ||
|
||||
(Config.config.autoSkipOnMusicVideos && sponsorTimes?.some((s) => s.category === "music_offtopic"));
|
||||
return (segment.actionType !== ActionType.Full
|
||||
&& utils.getCategorySelection(segment.category)?.option !== CategorySkipOption.ShowOverlay)
|
||||
|| (Config.config.autoSkipOnMusicVideos && sponsorTimes?.some((s) => s.category === "music_offtopic"));
|
||||
}
|
||||
|
||||
/** Creates any missing buttons on the YouTube player if possible. */
|
||||
@@ -1582,6 +1561,8 @@ function updateSponsorTimesSubmitting(getFromConfig = true) {
|
||||
if (submissionNotice !== null) {
|
||||
submissionNotice.update();
|
||||
}
|
||||
|
||||
checkForPreloadedSegment();
|
||||
}
|
||||
|
||||
function openInfoMenu() {
|
||||
@@ -1803,6 +1784,12 @@ function submitSponsorTimes() {
|
||||
//send the message to the background js
|
||||
//called after all the checks have been made that it's okay to do so
|
||||
async function sendSubmitMessage() {
|
||||
// Block if submitting on a running livestream or premiere
|
||||
if (isVisible(document.querySelector(".ytp-live-badge"))) {
|
||||
alert(chrome.i18n.getMessage("liveOrPremiere"));
|
||||
return;
|
||||
}
|
||||
|
||||
// Add loading animation
|
||||
playerButtons.submit.image.src = chrome.extension.getURL("icons/PlayerUploadIconSponsorBlocker.svg");
|
||||
const stopAnimation = AnimationUtils.applyLoadingAnimation(playerButtons.submit.button, 1, () => updateEditButtonsOnPlayer());
|
||||
@@ -1820,8 +1807,8 @@ async function sendSubmitMessage() {
|
||||
// Check to see if any of the submissions are below the minimum duration set
|
||||
if (Config.config.minDuration > 0) {
|
||||
for (let i = 0; i < sponsorTimesSubmitting.length; i++) {
|
||||
if (sponsorTimesSubmitting[i].segment[1] - sponsorTimesSubmitting[i].segment[0] < Config.config.minDuration
|
||||
&& getCategoryActionType(sponsorTimesSubmitting[i].category) !== CategoryActionType.POI) {
|
||||
const duration = sponsorTimesSubmitting[i].segment[1] - sponsorTimesSubmitting[i].segment[0];
|
||||
if (duration > 0 && duration < Config.config.minDuration) {
|
||||
const confirmShort = chrome.i18n.getMessage("shortCheck") + "\n\n" +
|
||||
getSegmentsMessage(sponsorTimesSubmitting);
|
||||
|
||||
@@ -2023,3 +2010,24 @@ function showTimeWithoutSkips(skippedDuration: number): void {
|
||||
|
||||
duration.innerText = (durationAfterSkips == null || skippedDuration <= 0) ? "" : " (" + durationAfterSkips + ")";
|
||||
}
|
||||
|
||||
function checkForPreloadedSegment() {
|
||||
const hashParams = getHashParams();
|
||||
|
||||
const segments = hashParams.segments;
|
||||
if (Array.isArray(segments)) {
|
||||
for (const segment of segments) {
|
||||
if (Array.isArray(segment.segment)) {
|
||||
if (!sponsorTimesSubmitting.some((s) => s.segment[0] === segment.segment[0] && s.segment[1] === s.segment[1])) {
|
||||
sponsorTimesSubmitting.push({
|
||||
segment: segment.segment,
|
||||
UUID: utils.generateUserID() as SegmentUUID,
|
||||
category: segment.category ? segment.category : Config.config.defaultCategory,
|
||||
actionType: segment.actionType ? segment.actionType : ActionType.Skip,
|
||||
source: SponsorSourceType.Local
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
53
src/utils.ts
53
src/utils.ts
@@ -21,6 +21,10 @@ export default class Utils {
|
||||
"popup.css"
|
||||
];
|
||||
|
||||
/* Used for waitForElement */
|
||||
waitingMutationObserver:MutationObserver = null;
|
||||
waitingElements: { selector: string, callback: (element: Element) => void }[] = [];
|
||||
|
||||
constructor(backgroundScriptContainer: BackgroundScriptContainer = null) {
|
||||
this.backgroundScriptContainer = backgroundScriptContainer;
|
||||
}
|
||||
@@ -29,6 +33,41 @@ export default class Utils {
|
||||
return GenericUtils.wait(condition, timeout, check);
|
||||
}
|
||||
|
||||
/* Uses a mutation observer to wait asynchronously */
|
||||
async waitForElement(selector: string): Promise<Element> {
|
||||
return await new Promise((resolve) => {
|
||||
this.waitingElements.push({
|
||||
selector,
|
||||
callback: resolve
|
||||
});
|
||||
|
||||
if (!this.waitingMutationObserver) {
|
||||
this.waitingMutationObserver = new MutationObserver(() => {
|
||||
const foundSelectors = [];
|
||||
for (const { selector, callback } of this.waitingElements) {
|
||||
const element = document.querySelector(selector);
|
||||
if (element) {
|
||||
callback(element);
|
||||
foundSelectors.push(selector);
|
||||
}
|
||||
}
|
||||
|
||||
this.waitingElements = this.waitingElements.filter((element) => !foundSelectors.includes(element.selector));
|
||||
|
||||
if (this.waitingElements.length === 0) {
|
||||
this.waitingMutationObserver.disconnect();
|
||||
this.waitingMutationObserver = null;
|
||||
}
|
||||
});
|
||||
|
||||
this.waitingMutationObserver.observe(document.body, {
|
||||
childList: true,
|
||||
subtree: true
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
containsPermission(permissions: chrome.permissions.Permissions): Promise<boolean> {
|
||||
return new Promise((resolve) => {
|
||||
chrome.permissions.contains(permissions, resolve)
|
||||
@@ -331,9 +370,9 @@ export default class Utils {
|
||||
|
||||
findReferenceNode(): HTMLElement {
|
||||
const selectors = [
|
||||
"#player-container-id",
|
||||
"#movie_player",
|
||||
"#c4-player", // Channel Trailer
|
||||
"#player-container", // Preview on hover
|
||||
"#main-panel.ytmusic-player-page", // YouTube music
|
||||
"#player-container .video-js", // Invidious
|
||||
".main-video-section > .video-container" // Cloudtube
|
||||
@@ -343,13 +382,15 @@ export default class Utils {
|
||||
//for embeds
|
||||
const player = document.getElementById("player");
|
||||
referenceNode = player.firstChild as HTMLElement;
|
||||
let index = 1;
|
||||
if (referenceNode) {
|
||||
let index = 1;
|
||||
|
||||
//find the child that is the video player (sometimes it is not the first)
|
||||
while (index < player.children.length && (!referenceNode.classList.contains("html5-video-player") || !referenceNode.classList.contains("ytp-embed"))) {
|
||||
referenceNode = player.children[index] as HTMLElement;
|
||||
//find the child that is the video player (sometimes it is not the first)
|
||||
while (index < player.children.length && (!referenceNode.classList?.contains("html5-video-player") || !referenceNode.classList?.contains("ytp-embed"))) {
|
||||
referenceNode = player.children[index] as HTMLElement;
|
||||
|
||||
index++;
|
||||
index++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -40,4 +40,25 @@ function findValidElementFromGenerator<T>(objects: T[] | NodeListOf<HTMLElement>
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
export function getHashParams(): Record<string, unknown> {
|
||||
const windowHash = window.location.hash.substr(1);
|
||||
if (windowHash) {
|
||||
const params: Record<string, unknown> = windowHash.split('&').reduce((acc, param) => {
|
||||
const [key, value] = param.split('=');
|
||||
const decoded = decodeURIComponent(value);
|
||||
try {
|
||||
acc[key] = decoded?.match(/{|\[/) ? JSON.parse(decoded) : value;
|
||||
} catch (e) {
|
||||
console.error(`Failed to parse hash parameter ${key}: ${value}`);
|
||||
}
|
||||
|
||||
return acc;
|
||||
}, {});
|
||||
|
||||
return params;
|
||||
}
|
||||
|
||||
return {};
|
||||
}
|
||||
@@ -3,6 +3,23 @@ const path = require('path');
|
||||
const CopyPlugin = require('copy-webpack-plugin');
|
||||
const BuildManifest = require('./webpack.manifest');
|
||||
const srcDir = '../src/';
|
||||
const fs = require("fs");
|
||||
|
||||
const edgeLanguages = [
|
||||
"de",
|
||||
"en",
|
||||
"es",
|
||||
"fr",
|
||||
"pl",
|
||||
"pt_BR",
|
||||
"ro",
|
||||
"ru",
|
||||
"sk",
|
||||
"sv",
|
||||
"tr",
|
||||
"uk",
|
||||
"zh_CN"
|
||||
]
|
||||
|
||||
module.exports = env => ({
|
||||
entry: {
|
||||
@@ -38,16 +55,51 @@ module.exports = env => ({
|
||||
plugins: [
|
||||
// exclude locale files in moment
|
||||
new CopyPlugin({
|
||||
patterns: [
|
||||
{
|
||||
from: '.',
|
||||
to: '../',
|
||||
globOptions: {
|
||||
ignore: ['manifest.json'],
|
||||
},
|
||||
context: './public',
|
||||
}
|
||||
]
|
||||
patterns: [
|
||||
{
|
||||
from: '.',
|
||||
to: '../',
|
||||
globOptions: {
|
||||
ignore: ['manifest.json'],
|
||||
},
|
||||
context: './public',
|
||||
filter: async (path) => {
|
||||
if (path.match(/\/_locales\/.+/)) {
|
||||
if (env.browser.toLowerCase() === "edge"
|
||||
&& !edgeLanguages.includes(path.match(/(?<=\/_locales\/)[^/]+(?=\/[^/]+$)/)[0])) {
|
||||
return false;
|
||||
}
|
||||
|
||||
const data = await fs.promises.readFile(path);
|
||||
const parsed = JSON.parse(data.toString());
|
||||
|
||||
return parsed.fullName && parsed.Description;
|
||||
} else {
|
||||
return true;
|
||||
}
|
||||
},
|
||||
transform(content, path) {
|
||||
if (path.match(/\/_locales\/.+/)) {
|
||||
const parsed = JSON.parse(content.toString());
|
||||
if (env.browser.toLowerCase() === "safari") {
|
||||
parsed.fullName.message = parsed.fullName.message.match(/^.+(?= -)/)?.[0] || parsed.fullName.message;
|
||||
if (parsed.fullName.message.length > 50) {
|
||||
parsed.fullName.message = parsed.fullName.message.substr(0, 47) + "...";
|
||||
}
|
||||
|
||||
parsed.Description.message = parsed.Description.message.match(/^.+(?=\. )/)?.[0] || parsed.Description.message;
|
||||
if (parsed.Description.message.length > 80) {
|
||||
parsed.Description.message = parsed.Description.message.substr(0, 77) + "...";
|
||||
}
|
||||
}
|
||||
|
||||
return Buffer.from(JSON.stringify(parsed));
|
||||
}
|
||||
|
||||
return content;
|
||||
}
|
||||
}
|
||||
]
|
||||
}),
|
||||
new BuildManifest({
|
||||
browser: env.browser,
|
||||
|
||||
@@ -8,6 +8,7 @@ const fs = require('fs');
|
||||
const manifest = require("../manifest/manifest.json");
|
||||
const firefoxManifestExtra = require("../manifest/firefox-manifest-extra.json");
|
||||
const chromeManifestExtra = require("../manifest/chrome-manifest-extra.json");
|
||||
const safariManifestExtra = require("../manifest/safari-manifest-extra.json");
|
||||
const betaManifestExtra = require("../manifest/beta-manifest-extra.json");
|
||||
const firefoxBetaManifestExtra = require("../manifest/firefox-beta-manifest-extra.json");
|
||||
|
||||
@@ -41,8 +42,12 @@ class BuildManifest {
|
||||
// Add missing manifest elements
|
||||
if (this.options.browser.toLowerCase() === "firefox") {
|
||||
mergeObjects(manifest, firefoxManifestExtra);
|
||||
} else if (this.options.browser.toLowerCase() === "chrome" || this.options.browser.toLowerCase() === "chromium") {
|
||||
} else if (this.options.browser.toLowerCase() === "chrome"
|
||||
|| this.options.browser.toLowerCase() === "chromium"
|
||||
|| this.options.browser.toLowerCase() === "edge") {
|
||||
mergeObjects(manifest, chromeManifestExtra);
|
||||
} else if (this.options.browser.toLowerCase() === "safari") {
|
||||
mergeObjects(manifest, safariManifestExtra);
|
||||
}
|
||||
|
||||
if (this.options.stream === "beta") {
|
||||
|
||||
Reference in New Issue
Block a user