Skip to content

Commit 678c29a

Browse files
committed
Merge branch 'development' into feature/drag-n-drop
* development: (42 commits) Translated using Weblate (Swedish) Translated using Weblate (Arabic) Translated using Weblate (Turkish) Translated using Weblate (Slovak) Translated using Weblate (French) Translated using Weblate (Portuguese (Brazil)) Translated using Weblate (Polish) Translated using Weblate (Japanese) Translated using Weblate (Russian) Translated using Weblate (Danish) Translated using Weblate (Italian) Bump shaka-player from 5.0.6 to 5.0.7 (FreeTubeApp#8848) Bump @babel/preset-env from 7.29.0 to 7.29.2 in the babel group (FreeTubeApp#8842) Bump calibreapp/image-actions (FreeTubeApp#8843) Bump actions/cache from 5.0.3 to 5.0.4 (FreeTubeApp#8844) Bump flatted from 3.3.3 to 3.4.2 (FreeTubeApp#8851) Translated using Weblate (German) Translated using Weblate (Czech) Translated using Weblate (Hungarian) Translated using Weblate (Norwegian Bokmål) ...
2 parents ca74aa1 + 64f6171 commit 678c29a

File tree

115 files changed

+757
-964
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

115 files changed

+757
-964
lines changed

.github/workflows/build.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ jobs:
8686

8787
- name: Restore yarn cache
8888
id: restore_cache
89-
uses: actions/cache/restore@cdf6c1fa76f9f475f3d7449005a359c84ca0f306 #v5.0.3
89+
uses: actions/cache/restore@668228422ae6a00e4ad889ee87cd7109ec5666a7 #v5.0.4
9090
with:
9191
key: ${{ format('node-cache-{0}-{1}-yarn-{2}', runner.os, runner.arch, hashFiles('yarn.lock')) }}
9292
path: ${{ steps.cache_dir.outputs.cache_dir }}
@@ -361,7 +361,7 @@ jobs:
361361
path: build/freetube-${{ steps.versionNumber.outputs.version }}-arm64-mac.7z
362362

363363
- name: Save yarn cache
364-
uses: actions/cache/save@cdf6c1fa76f9f475f3d7449005a359c84ca0f306 #v5.0.3
364+
uses: actions/cache/save@668228422ae6a00e4ad889ee87cd7109ec5666a7 #v5.0.4
365365
# Only save the cache if we weren't able to restore an existing one above
366366
if: steps.restore_cache.outputs.cache-primary-key != steps.restore_cache.outputs.cache-matched-key
367367
with:

.github/workflows/calibreapp-image-actions.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ jobs:
3030

3131
- name: Compress Images
3232
id: calibre
33-
uses: calibreapp/image-actions@d9c8ee5c3dc52ae4622c82ead88d658f4b16b65f
33+
uses: calibreapp/image-actions@03c976c29803442fc4040a9de5509669e7759b81
3434
with:
3535
githubToken: ${{ secrets.GITHUB_TOKEN }}
3636
compressOnly: true

.github/workflows/codeql.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,12 +43,12 @@ jobs:
4343
persist-credentials: false
4444

4545
- name: Initialize CodeQL
46-
uses: github/codeql-action/init@0d579ffd059c29b07949a3cce3983f0780820c98 # v4.32.6
46+
uses: github/codeql-action/init@b1bff81932f5cdfc8695c7752dcee935dcd061c8 # v4.33.0
4747
with:
4848
languages: ${{ matrix.language }}
4949
build-mode: ${{ matrix.build-mode }}
5050

5151
- name: Perform CodeQL Analysis
52-
uses: github/codeql-action/analyze@0d579ffd059c29b07949a3cce3983f0780820c98 # v4.32.6
52+
uses: github/codeql-action/analyze@b1bff81932f5cdfc8695c7752dcee935dcd061c8 # v4.33.0
5353
with:
5454
category: "/language:${{matrix.language}}"

.github/workflows/linter.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ jobs:
4646
# so we only restore the yarn cache, we don't save it to avoid cache poisoning
4747
- name: Restore yarn cache
4848
id: restore_cache
49-
uses: actions/cache/restore@cdf6c1fa76f9f475f3d7449005a359c84ca0f306 #v5.0.3
49+
uses: actions/cache/restore@668228422ae6a00e4ad889ee87cd7109ec5666a7 #v5.0.4
5050
with:
5151
key: ${{ format('node-cache-{0}-{1}-yarn-{2}', runner.os, runner.arch, hashFiles('yarn.lock')) }}
5252
path: ${{ steps.cache_dir.outputs.cache_dir }}
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
export default undefined

_scripts/webpack.renderer.config.js

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -196,11 +196,14 @@ const config = {
196196

197197
'youtubei.js$': 'youtubei.js/web',
198198

199-
// change to "shaka-player.ui.debug.js" to get debug logs (update jsconfig to get updated types)
200-
'shaka-player$': 'shaka-player/dist/shaka-player.ui.js',
199+
// change to "shaka-player.ui-es2021.debug.js" to get debug logs (update jsconfig to get updated types)
200+
'shaka-player$': 'shaka-player/dist/shaka-player.ui-es2021.js',
201201

202202
// Make @fortawesome/vue-fontawesome use the trimmed down API instead of the original @fortawesome/fontawesome-svg-core
203-
'@fortawesome/fontawesome-svg-core$': path.resolve(__dirname, '../src/renderer/fontawesome-minimal.js')
203+
'@fortawesome/fontawesome-svg-core$': path.resolve(__dirname, '../src/renderer/fontawesome-minimal.js'),
204+
205+
// Fix dompurify not being tree-shaking friendly
206+
dompurify$: path.resolve(__dirname, '_undefinedDefaultExport.mjs')
204207
},
205208
extensions: ['.js', '.vue']
206209
},

_scripts/webpack.web.config.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -173,8 +173,8 @@ const config = {
173173
alias: {
174174
DB_HANDLERS_ELECTRON_RENDERER_OR_WEB$: path.resolve(__dirname, '../src/datastores/handlers/web.js'),
175175

176-
// change to "shaka-player.ui.debug.js" to get debug logs (update jsconfig to get updated types)
177-
'shaka-player$': 'shaka-player/dist/shaka-player.ui.js',
176+
// change to "shaka-player.ui-es2021.debug.js" to get debug logs (update jsconfig to get updated types)
177+
'shaka-player$': 'shaka-player/dist/shaka-player.ui-es2021.js',
178178

179179
// Make @fortawesome/vue-fontawesome use the trimmed down API instead of the original @fortawesome/fontawesome-svg-core
180180
'@fortawesome/fontawesome-svg-core$': path.resolve(__dirname, '../src/renderer/fontawesome-minimal.js')

eslint.config.mjs

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -270,7 +270,11 @@ export default [
270270
rules: {
271271
'@stylistic/space-before-function-paren': 'off',
272272
'@stylistic/comma-dangle': ['error', 'only-multiline'],
273-
'vue/no-v-html': 'off',
273+
274+
// Ban v-html as it inserts HTML via innerHTML without sanitizing it
275+
// if inserting raw HTML is unavoidable the custom v-safer-html directive should be used
276+
// which sanitizes the HTML before inserting it into the DOM
277+
'vue/no-v-html': 'error',
274278

275279
'no-console': ['error', {
276280
allow: ['warn', 'error'],
@@ -342,6 +346,15 @@ export default [
342346
}
343347
}
344348
},
349+
{
350+
files: ['src/renderer/directives/vSaferHtml.js'],
351+
languageOptions: {
352+
globals: {
353+
// Fix Sanitizer not being listed in `globals` yet, remove it when it gets added in the future
354+
Sanitizer: 'readable'
355+
}
356+
}
357+
},
345358

346359
...eslintPluginJsonc.configs.base,
347360
{

jsconfig.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
"src/datastores/handlers/web"
1414
],
1515
"shaka-player": [
16-
"./node_modules/shaka-player/dist/shaka-player.ui"
16+
"./node_modules/shaka-player/dist/shaka-player.ui-es2021"
1717
]
1818
}
1919
}

package.json

Lines changed: 15 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
"name": "freetube",
33
"productName": "FreeTube",
44
"description": "A private YouTube client",
5-
"version": "0.23.14",
5+
"version": "0.23.15",
66
"license": "AGPL-3.0-or-later",
77
"main": "./dist/main.js",
88
"private": true,
@@ -41,10 +41,10 @@
4141
"lint-style-fix": "stylelint --fix \"src/**/*.{css,scss}\"",
4242
"lint-yml": "eslint --config eslint.config.mjs \"**/*.yml\" \"**/*.yaml\"",
4343
"pack": "run-p pack:main pack:renderer pack:preload pack:botGuardScript && node _scripts/injectAllowedPaths.mjs",
44-
"pack:main": "webpack --mode=production --node-env=production --config _scripts/webpack.main.config.js",
45-
"pack:renderer": "webpack --mode=production --node-env=production --config _scripts/webpack.renderer.config.js",
46-
"pack:preload": "webpack --mode=production --node-env=production --config _scripts/webpack.preload.config.js",
47-
"pack:web": "webpack --mode=production --node-env=production --config _scripts/webpack.web.config.js",
44+
"pack:main": "webpack --mode=production --config-node-env=production --config _scripts/webpack.main.config.js",
45+
"pack:renderer": "webpack --mode=production --config-node-env=production --config _scripts/webpack.renderer.config.js",
46+
"pack:preload": "webpack --mode=production --config-node-env=production --config _scripts/webpack.preload.config.js",
47+
"pack:web": "webpack --mode=production --config-node-env=production --config _scripts/webpack.web.config.js",
4848
"pack:botGuardScript": "webpack --config _scripts/webpack.botGuardScript.config.js",
4949
"checkforbadtemplates": "node _scripts/findMissingTemplates.mjs",
5050
"ci": "yarn install --silent --frozen-lockfile --network-concurrency 1"
@@ -58,31 +58,32 @@
5858
"@seald-io/nedb": "^4.1.2",
5959
"autolinker": "^4.1.5",
6060
"bgutils-js": "^3.2.0",
61-
"electron-context-menu": "^4.1.1",
61+
"dompurify": "^3.3.3",
62+
"electron-context-menu": "^4.1.2",
6263
"googlevideo": "^4.0.4",
6364
"marked": "^17.0.4",
6465
"process": "^0.11.10",
65-
"shaka-player": "^4.16.20",
66+
"shaka-player": "^5.0.7",
6667
"swiper": "^12.1.2",
6768
"vue": "^3.5.30",
6869
"vue-i18n": "^11.3.0",
6970
"vue-observe-visibility": "^2.0.0-alpha.1",
70-
"vue-router": "^5.0.3",
71+
"vue-router": "^5.0.4",
7172
"vuex": "^4.1.0",
72-
"youtubei.js": "^16.0.1"
73+
"youtubei.js": "^17.0.1"
7374
},
7475
"devDependencies": {
7576
"@babel/core": "^7.29.0",
76-
"@babel/preset-env": "^7.29.0",
77-
"@double-great/stylelint-a11y": "^3.4.5",
77+
"@babel/preset-env": "^7.29.2",
78+
"@double-great/stylelint-a11y": "^3.4.6",
7879
"@eslint/js": "^10.0.1",
7980
"@intlify/eslint-plugin-vue-i18n": "^4.3.0",
8081
"@stylistic/eslint-plugin": "^5.10.0",
8182
"babel-loader": "^10.1.1",
8283
"copy-webpack-plugin": "^14.0.0",
8384
"css-loader": "^7.1.4",
8485
"css-minimizer-webpack-plugin": "^8.0.0",
85-
"electron": "^41.0.2",
86+
"electron": "^41.0.3",
8687
"electron-builder": "^26.8.1",
8788
"eslint": "^10.0.3",
8889
"eslint-plugin-import-x": "^4.16.2",
@@ -105,7 +106,7 @@
105106
"postcss-scss": "^4.0.9",
106107
"sass": "^1.98.0",
107108
"sass-loader": "^16.0.7",
108-
"stylelint": "^17.4.0",
109+
"stylelint": "^17.5.0",
109110
"stylelint-config-sass-guidelines": "^13.0.0",
110111
"stylelint-config-standard": "^40.0.0",
111112
"stylelint-high-performance-animation": "^2.0.0",
@@ -114,7 +115,7 @@
114115
"vue-eslint-parser": "^10.2.0",
115116
"vue-loader": "^17.4.2",
116117
"webpack": "^5.105.4",
117-
"webpack-cli": "^6.0.1",
118+
"webpack-cli": "^7.0.2",
118119
"webpack-dev-server": "^5.2.3"
119120
}
120121
}

0 commit comments

Comments
 (0)