Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore: upgrade to Vue 3 #1812

Merged
merged 280 commits into from
Apr 3, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
280 commits
Select commit Hold shift + click to select a range
7aade2d
chore(vite): exclude tests from typechecking
ferferga Sep 12, 2022
d23ab9f
chore(vite): update $vuetify.breakpoint to $vuetify.display
ferferga Sep 9, 2022
0dac5df
chore(node): upgrade to Node 18 LTS
ferferga Oct 28, 2022
c3f67ba
chore(lint): re-add and refactor linting suites
ferferga Nov 3, 2022
3217656
chore(lint): automatic eslint fix
ferferga Nov 3, 2022
095141d
chore(vite): tweak sass config and comment more variable blocks
ferferga Nov 3, 2022
c614982
chore(vuetify): remove deprecated v-list-item-content
ferferga Nov 3, 2022
7428b41
chore(vuetify): replace v-list-item-avatar with v-avatar
ferferga Nov 3, 2022
7c66bf7
chore(vuetify): remove v-list-item-icon
ferferga Nov 3, 2022
87637e4
chore(vuetify): update v-tabs-items and v-tab-item to v-tabs and v-tab
ferferga Nov 3, 2022
f43b4fc
chore(vuetify): replace v-list-item-group with v-list-group
ferferga Nov 3, 2022
1deee43
chore(vuetify): replace v-subheader with v-list-subheader
ferferga Nov 3, 2022
ff89213
chore(vuetify): replace v-simple-table with v-table
ferferga Nov 17, 2022
19a61bc
chore(vuetify): comment Vuetify 3.1 components
ferferga Nov 3, 2022
e38946a
chore(vuetify): remove v-expansion-panel-header
ferferga Nov 3, 2022
b293047
chore(vuetify): remove v-expansion-panel-content
ferferga Nov 3, 2022
1971257
chore(vuetify): replace v-slide-item to v-slide-group-item
ferferga Nov 3, 2022
fc20643
chore(vue3): first iteration with a booting app instance
ferferga Nov 4, 2022
020831d
chore(vuetify): run eslint-plugin-vuetify
ferferga Nov 4, 2022
1c93a83
chore(vue3): handle web history based on env var
ferferga Nov 4, 2022
1d5ab79
chore(lint): add rules for end brackets in different lines and fix im…
ferferga Nov 9, 2022
62a3bbd
chore(lint): automatic prettier fix for end brackets
ferferga Nov 9, 2022
6aa41b2
chore(node): add engine-strict config to .npmrc
ferferga Nov 9, 2022
9a1df51
chore(vue3): dynamic splashscreen based on user preferences and browser
ferferga Nov 17, 2022
9870489
chore(vuetify): remove duplicated variant attributes
ferferga Nov 17, 2022
89c12b1
chore(vue3): target ES2022 and add eslint globals
ferferga Nov 17, 2022
85d0643
chore(vite): adapt WebWorker usage
ferferga Nov 18, 2022
873046b
chore(vue3): add strictTemplates to Vue typechecking
ferferga Nov 20, 2022
8a92fb5
chore(vue3): migrate Snackbar to composition API
ferferga Nov 20, 2022
582b0fa
chore(vue3): draft remote plugin and minor QoL improvements
ferferga Nov 22, 2022
b79e13e
chore(eslint-unicorn): automatic fix
ferferga Nov 22, 2022
e5c3a43
chore(vue3): update Jellyfin SDK imports
ferferga Nov 22, 2022
1d8643d
chore(vue3): create ExternalJSONConfig plugin
ferferga Nov 22, 2022
e122630
feat(vue3): draft router middlewares
ferferga Nov 22, 2022
57aa54b
feat(vue3): create socket plugin inside remote plugin
ferferga Nov 23, 2022
91b849e
chore(vue3): remove authStore usage across components
ferferga Nov 23, 2022
8f3ac87
chore(vue3): remove deviceProfileStore usage across components
ferferga Nov 23, 2022
12093c7
chore(vue3): remove socketStore usage across components
ferferga Nov 23, 2022
35537bd
chore(vue3): create i18n composable and QoL improvements
ferferga Nov 24, 2022
8297167
chore(vue3): remove last remnants of authStore and snackbarStore
ferferga Nov 24, 2022
473a103
feat(vue3): add route meta handling, deprecate pageStore and validate…
ferferga Nov 24, 2022
7c5cfe2
chore(vue3): reorganize last remnants of nuxt plugins
ferferga Nov 24, 2022
4719aee
chore(vue3): remove nuxt imports
ferferga Nov 24, 2022
0cbbe4b
chore(vue3): finish migration of $browser, $features and $playbackPro…
ferferga Nov 24, 2022
b7ad5fa
chore(vue3): minor cleanup and lint fixes
ferferga Nov 24, 2022
4285d3f
chore(vue3): rework vue router meta handling to comply with vite-plug…
ferferga Nov 24, 2022
58f5322
chore(vue3): migrate CommitLink to composition API
ferferga Nov 24, 2022
f7e185f
chore(vue3-i18n): add language map to match language codes with langu…
ferferga Nov 25, 2022
ced9f2e
chore(vue3-i18n): prepare vue-i18n-extract and add missing locales in…
ferferga Nov 25, 2022
291ad24
feat(vue3): login flow
ferferga Nov 27, 2022
b2d33ad
chore(vue3): replace all v-icon usage with Icon custom component
ferferga Nov 29, 2022
b4074a7
chore(vue3): remove nuxt error layout
ferferga Nov 29, 2022
a562a4b
chore(vue3): minor lint fixes
ferferga Nov 29, 2022
c4c860c
chore(vue3): adapt date-fns and time utils
ferferga Nov 29, 2022
8a423e5
chore(vue3): remove asyncData usage
ferferga Nov 29, 2022
c9a7c85
chore(vue3): migrate ItemMenu to composition API
ferferga Nov 29, 2022
ceb6c56
chore(vue3): migrate VolumeSlider to composition API
ferferga Nov 29, 2022
b48b7a1
chore(vite): use lodash-es instead of lodash
ferferga Nov 29, 2022
9babd80
chore(vite): remove unnecessary @types dependencies
ferferga Nov 29, 2022
92454e6
chore(vue3): migrate DraggableQueue to composition API
ferferga Nov 29, 2022
5610543
chore(vue3): migrate Blurhash to composition API
ferferga Nov 29, 2022
804d124
chore(vue3): migrate NavigationDrawer to composition API
ferferga Nov 29, 2022
5da8330
chore(vue3): remove mapStores and use setup for stores
ferferga Nov 29, 2022
39806ef
chore(vue3): generate route typings using unplugin-vue-router
ferferga Nov 29, 2022
1bcb8ad
chore(vue3): update $api usage to new SDK
ferferga Nov 30, 2022
720dd31
chore(vue3): start bug bashing and minor improvements
ferferga Dec 2, 2022
8037c4e
chore(vue3): remove nuxt remnants and fix typechecking in some option…
ferferga Dec 2, 2022
34fe2a8
chore(vue3): minor fixes
ferferga Dec 2, 2022
bfa38ae
chore(vue3): plug all the styling rules together
ferferga Dec 2, 2022
0cb1c79
chore(vue3): first reimplementation of music playback's swiper
ferferga Dec 2, 2022
46aa5d1
fix(tauri): icon paths
ferferga Dec 2, 2022
abef264
feat(vue3): improvements pass
ferferga Dec 15, 2022
118aa18
chore(vue3): replace ~icons/ with virtual:icons/ imports
ferferga Dec 15, 2022
0fbb6af
feat(vue3): make time runtime reactive
ferferga Dec 15, 2022
b94609b
chore(vue3): router, main and lint improvements
ferferga Dec 16, 2022
9118fb5
chore/perf(vue3): cleanup and minor performance improvements
ferferga Dec 21, 2022
d127181
fix(vue3): prop watching
ferferga Dec 26, 2022
39635fe
perf(vue3): fix image popping on load and cache blurhashes
ferferga Dec 28, 2022
3a12f8d
perf(vue3): implement virtual scroller for item grid
ferferga Dec 30, 2022
1ab7147
chore(vue3): update thai language in i18n and add sort-keys rule to l…
ferferga Dec 30, 2022
3ec8caa
chore(vue3): move router history config to JSON
ferferga Dec 30, 2022
5d1865e
deps: updating JF sdk to unstable
ThibaultNocchi Jan 10, 2023
9a9e2ef
fix: use recommended method to find best server
ThibaultNocchi Jan 10, 2023
4e072e3
ui: fix server selection page
ThibaultNocchi Jan 12, 2023
2c14e1f
ui: fix other server layouts vertical centering
ThibaultNocchi Jan 12, 2023
5058f20
refactor: remove custom icon component as given PR has been merged to…
ThibaultNocchi Jan 12, 2023
0ed75e2
chore(vue3): deprecate pinia
ferferga Jan 13, 2023
5607814
chore(vue3): update plugin imports
ferferga Jan 13, 2023
b5e77bc
chore(vue3): replace ~ with @ for imports
ferferga Jan 13, 2023
be4ed1e
chore(vue3): add temporal .gitignore for components.d.ts
ferferga Jan 13, 2023
5474335
fix(vue3): change references to new playbackManager
ferferga Jan 13, 2023
099b804
fix: remove requestIdleCallback as not supported by Safari
ThibaultNocchi Jan 15, 2023
b3e5212
feat: add 0.0.0.0 as vite host
ThibaultNocchi Jan 13, 2023
53cd19d
ui: fix task manager not opening
ThibaultNocchi Jan 13, 2023
35ecf32
refactor(taskmanagerbutton): migrated to composition
ThibaultNocchi Jan 13, 2023
a7b8e4e
fix: nav drawer icon not displayed when closed
ThibaultNocchi Jan 15, 2023
0c74ab6
fix: keep nav drawer closed on load on mobile
ThibaultNocchi Jan 15, 2023
c3afba6
fix(navdrawer): fix drawer to cover full height on mobile
ThibaultNocchi Jan 15, 2023
73a2c62
refactor: removed unused import
ThibaultNocchi Jan 17, 2023
080857a
fix(clientsettings): fix watcher not working
ThibaultNocchi Jan 15, 2023
52412a2
fix(clientsettings): pause sync watcher when fetching data
ThibaultNocchi Jan 16, 2023
0bff988
style: update vuetify & use newly fixed .fill-height class (#1854)
ThibaultNocchi Jan 19, 2023
ec87a3b
fix: Use v-item-group to display settings list again (#1855)
Jan 19, 2023
c5728d7
refactor(mediastreamselector): composition api
ThibaultNocchi Jan 20, 2023
8e7c039
refactor: factorized CSS class
ThibaultNocchi Jan 16, 2023
d55a243
refactor(watchedindicator&playbutton&markplayedbutton&likebutton&item…
ThibaultNocchi Jan 16, 2023
135aea6
refactor(card): composition api
ThibaultNocchi Jan 19, 2023
bae843d
fix: always refresh userviews on homepage
ThibaultNocchi Jan 20, 2023
7863de5
fix: prop types and blurhash cache
ThibaultNocchi Jan 21, 2023
5a515fd
fix(virtual-grid): slice bounds
ferferga Jan 22, 2023
5201e78
refactor(datefns): move locale handling to composable
ferferga Jan 23, 2023
e468b06
fix(relateditems): don't render if no items
ThibaultNocchi Jan 21, 2023
aed5bae
fix(usedatefns): argument merging logic and better locale matching be…
ThibaultNocchi Jan 21, 2023
1ecae9f
refactor(person): composition api
ThibaultNocchi Jan 21, 2023
6949ed2
perf(blurhash-image): rely less on watchers
ferferga Jan 23, 2023
fcc5ec7
chore(devcontainer): update codespaces config for Vue 3
ferferga Jan 25, 2023
acb70a3
perf(virtual-grid): don't use throttle function when no throttle is d…
ferferga Jan 26, 2023
d440d7f
refactor(vue3): migrate type button to Composition API
Jan 23, 2023
3567d04
refactor(vue3): migrate sort button to Composition API
Jan 24, 2023
82236bf
refactor(vue3): migrate filter button to Composition API
Jan 19, 2023
a372f0c
perf: remove OverlayScrollbars
ThibaultNocchi Jan 26, 2023
83ec512
fix(blurhashimage): watch url instead of item to avoid putting loadin…
ThibaultNocchi Jan 26, 2023
347c04b
fix: Seasontabs component
Jan 27, 2023
93e10b5
chore(eslint): enforce public member accessibility (#1871)
ThibaultNocchi Jan 27, 2023
6d3e31e
fix: relatedItems background color and avatar prepend
Jan 27, 2023
27dbef3
fix(socket): update vueuse to overcome socket limitations
ferferga Jan 30, 2023
73e265c
refactor(store): don't use async storage for stores and minor refactor
ferferga Jan 24, 2023
e4a824a
feat(vue3): refactor playerManager store and fix music playback
ferferga Jan 25, 2023
c4b54b1
refactor(vue3-router): remove deprecated tag prop
ferferga Jan 25, 2023
9187449
fix(vuetify): hover slots
ferferga Jan 25, 2023
2a192c2
fix(vuetify): backdrop borking v-app
ferferga Jan 25, 2023
9bda774
feat: drop shaka player and natively play direct streaming audio
ThibaultNocchi Jan 27, 2023
cb67a80
refactor(auth): remove computed property and fix some type errors
ferferga Jan 30, 2023
01bfa5b
ci(vue3): update linting and type checking configuration
ferferga Jan 30, 2023
c9cd632
style: switch default button to variant text
ThibaultNocchi Jan 31, 2023
cf81a04
style: remove unnecessary as casts
aweebs Jan 28, 2023
e8d57e2
fix: music playback and home section's swipers
ferferga Feb 7, 2023
6d0e52a
fix: commit link design
ThibaultNocchi Feb 8, 2023
56cc5c8
style: convert single line eslint disables to use next-line rather th…
aweebs Feb 8, 2023
dd9f240
style: Removing more unnecessary as casts
aweebs Feb 9, 2023
04048c1
chore: correctly import task running types
aweebs Feb 8, 2023
a712daa
chore: rewrite PlayButton component using composition
aweebs Feb 9, 2023
0b4b208
chore: rewrite CollectionTabs component with Composition API
aweebs Feb 9, 2023
ea18547
chore: fix up metadata index page
aweebs Feb 9, 2023
7a27c2c
refactor(search-vue3): fix and migrate to Composition API
Jan 27, 2023
23dc481
feat(item-grid): add no-virtual prop to skip virtual rendering in som…
ferferga Feb 15, 2023
43c9df1
chore(search-vue3): remove top results and improve logic
ferferga Feb 15, 2023
6eb625f
feat(search-vue3): handle search page based on SearchField focus stat…
ferferga Feb 15, 2023
5500485
feat(search-vue3): trim input string
ferferga Feb 18, 2023
8c3a963
refactor: remove use of deprecated filters
aweebs Feb 14, 2023
b904b0d
refactor: SkeletonCard and SkeletonHomeSection to Composition API
aweebs Feb 12, 2023
adb1f2a
fix: AxiosError missing types in MetadataEditor
aweebs Feb 12, 2023
cfe5086
refactor: change all `defineProps` to use TypeScript
aweebs Feb 10, 2023
5047ed8
refactor: update components to not have optional parameters that are …
aweebs Feb 12, 2023
298b3b1
perf(vue3): improve index loading times by only blocking navigation a…
ferferga Feb 21, 2023
13fea76
refactor(vue3): migrate the remaining Carousel components to Composit…
ferferga Feb 21, 2023
d910aef
chore: remove unnecessary `as` casts
aweebs Feb 11, 2023
d161406
chore: update DateInput to setup composition api
aweebs Feb 19, 2023
c59a9f2
chore: add vuetify 3 github references to TODO comments for unsupport…
aweebs Feb 19, 2023
63db2c7
fix: item store no longer breaks non-BaseItemDtos that enter it
aweebs Feb 21, 2023
bdfb5d4
chore: sonarcloud and unicorn fixes
ferferga Feb 23, 2023
ce88b56
refactor: fix long running timeout and requestAnimationFrame handlers
ferferga Feb 25, 2023
b29555a
chore: convert library route to setup composition api
aweebs Feb 12, 2023
6d99983
fix: wrong value for user check in URL
ThibaultNocchi Jan 31, 2023
16d5876
fix(mediastreamselector): didn't emit new values & set default audio …
ThibaultNocchi Feb 2, 2023
c786447
fix music playback starting from the previous time when going to the …
ferferga Feb 21, 2023
dd80dcb
feat: implement new HLS video player + subs + PiP
ThibaultNocchi Feb 1, 2023
48eedf3
refactor: better video player handling
ferferga Feb 20, 2023
de0bd1d
style: removing unused CSS classes
ThibaultNocchi Feb 23, 2023
49480d0
refactor: better video player routing
ThibaultNocchi Feb 23, 2023
cab0dbb
fix(videoplayer): few refactors and lint fixes
ferferga Feb 24, 2023
4636864
feat: implement jassub instead of libass
ThibaultNocchi Mar 5, 2023
7fc2194
fix: recursive and unneeded logic calls to refreshItems
ThibaultNocchi Mar 7, 2023
dbdd2b3
perf: improve index page rendering
ferferga Mar 14, 2023
17f0ff1
refactor: improve volar autocompletion
ferferga Feb 23, 2023
f78bc94
fix: refactor stores, fix concurrency errors when pushing data to server
ferferga Feb 22, 2023
6562b64
refactor: items store
ferferga Feb 23, 2023
d5d1d19
refactor: apply suggestions from code review
ferferga Mar 9, 2023
d46e547
refactor: make LikeButton computed
ferferga Mar 9, 2023
0b3d907
refactor: taskManager
ferferga Mar 9, 2023
1dbc3b6
fix: don't change locale code following browser locale change
ferferga Mar 9, 2023
a93471f
refactor: apply suggestions from code review
ferferga Mar 11, 2023
9737a02
refactor: auto color mode and language
ferferga Mar 13, 2023
d46d6f8
refactor: merge state into the class instances
ferferga Mar 13, 2023
11e7611
refactor: keep all completed tasks in TaskManagerButton
ferferga Mar 14, 2023
8bd2ee0
perf: debounce image width change, refactor shared state usage and re…
ferferga Mar 14, 2023
2677e9b
refactor: apply suggestions from code review
ferferga Mar 14, 2023
a412805
refactor: factorize playback buttons into components
ferferga Mar 9, 2023
02bdda9
refactor: merge osdplayer into fullscreen
ferferga Mar 11, 2023
78101b3
feat: new music fullscreen page
ferferga Mar 11, 2023
43d7836
fix: transitions
ferferga Mar 11, 2023
e3096b8
refactor: replace Vue router's back function
ferferga Mar 11, 2023
3475352
feat: reverse transition when going to the back page
ferferga Mar 14, 2023
57ab52c
refactor: router middleware for playback pages
ferferga Mar 11, 2023
86dc133
refactor: remove multiple usage of user-select: none property
ferferga Mar 11, 2023
d25f447
fix: use correct key for routerviewtransition
ferferga Mar 13, 2023
50920a8
fix: page, menus overflow, color icons
ferferga Mar 14, 2023
239bbe7
ci: expand devcontainer configuration to support Docker
ferferga Mar 16, 2023
24468d4
ci: update Dockerfile to new config.json client configuration
ferferga Mar 17, 2023
e64a585
chore: convert settings page to setup composition api
aweebs Feb 21, 2023
3cdc7e7
chore: fix admin page redirect check
aweebs Mar 3, 2023
c3c9824
chore: convert apikeys page to composition api
aweebs Feb 21, 2023
6c4b6b0
chore: Convert devices.vue to Composition api
aweebs Feb 21, 2023
ecd7f69
chore: convert logs and activities to Composition API
aweebs Feb 26, 2023
81f842a
chore: update ImageEditor and ImageSearch to setup composition API
aweebs Mar 1, 2023
c1c4cd6
chore: update MetadataEditor, MetadataEditorDialog, and PersonEditor …
aweebs Mar 1, 2023
3776371
chore: PlayButton make track index props optional
aweebs Mar 7, 2023
b7b98ce
chore: fix v-chip component's not using size correctly
aweebs Mar 1, 2023
1c815a3
chore: update routed pages to use setup composition api
aweebs Mar 2, 2023
e0c9a79
chore: change library routes to use itemId param instead of viewId fo…
aweebs Mar 7, 2023
930cb38
refactor: route pages use onMounted instead of watching route params …
aweebs Mar 15, 2023
e761a58
chore: rewrite setup wizard with setup composition api
aweebs Mar 2, 2023
53c894c
chore: convert UpNext component to setup composition api
aweebs Mar 3, 2023
e56ac8b
chore: type refactors style for computed properties
aweebs Mar 12, 2023
74a71cf
chore: remove PlaybackInfoCard
aweebs Mar 13, 2023
fd4ea07
feat(vue3): create global loading state
ferferga Feb 23, 2023
0beaeb3
fix: remaining SonarCloud bugs
ferferga Mar 19, 2023
9e1f16c
fix: external dependency's types
ferferga Mar 21, 2023
9fe8a41
chore: remove CONTRIBUTING.md
ferferga Mar 21, 2023
0b85a69
chore: add roboto font for consistent display across all devices
ferferga Mar 21, 2023
28a143d
chore: clear old dependencies' usage
ferferga Mar 19, 2023
067998f
refector: Refactor store-sync utils for clarity
aweebs Feb 17, 2023
e41f7ed
chore: Cleaning up typing and type checking of websocket messages
aweebs Mar 20, 2023
23b98c2
chore: Added type assert for external config
aweebs Mar 20, 2023
14f8c2f
chore: add ban-ts-comment eslint rule and remove usages
aweebs Mar 20, 2023
cef96c4
chore: upgrade to latest version of typescript
aweebs Mar 22, 2023
44d4374
chore: General typing cleanups
aweebs Mar 20, 2023
00310c6
chore: remove old tests
aweebs Mar 23, 2023
f5e0e90
fix: artist images
ferferga Mar 23, 2023
ca8f265
chore: add additional linting suites
ferferga Mar 23, 2023
672aff7
chore: cleanup old files
ferferga Mar 22, 2023
530d973
fix(blurhashimages): error not being reset when image is loaded
ThibaultNocchi Mar 24, 2023
7af1545
refactor: reimplement SortableJS for queue
ferferga Mar 21, 2023
57891cc
fix(icons): unset scale to see icons on iOS and avoid overflow
ThibaultNocchi Mar 24, 2023
554903f
fix: minor fixes
ferferga Mar 28, 2023
bac44ef
fix: failing github actions
ferferga Feb 16, 2023
2ce4bbc
refactor: remove workaround for Safari's iOS fullscreen
ferferga Mar 20, 2023
669c6ad
chore: use absolute paths for favicon and logo
aweebs Mar 23, 2023
abd2186
chore: support arbitrary data- attributes on vue components
aweebs Mar 26, 2023
730bd4f
refactor: image utils
aweebs Mar 27, 2023
2b8b392
refactor: remove tooltip button and replace v-tooltip and v-menu with…
aweebs Mar 24, 2023
a44574e
fix: unplayed chips UI readable and globally rounded chips
ThibaultNocchi Mar 30, 2023
6c98080
chore: remove unnecessary Options API type declarations
ferferga Mar 30, 2023
a5b8334
feat: permanent scrollbars in default layout only
ferferga Mar 28, 2023
de62be0
chore: update readme
ferferga Mar 31, 2023
c126223
fix: collection browsing in libraries
ThibaultNocchi Mar 31, 2023
56df6c6
fix: nextup can have undefined parent id
ThibaultNocchi Mar 31, 2023
d417023
refactor: search page
ferferga Mar 31, 2023
725fd44
chore: pre-merge cleanup
ferferga Mar 31, 2023
3a50ce9
chore: tag v0.3.0
ferferga Mar 31, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
18 changes: 0 additions & 18 deletions .devcontainer/Dockerfile

This file was deleted.

47 changes: 20 additions & 27 deletions .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
@@ -1,31 +1,24 @@
// For format details, see https://aka.ms/vscode-remote/devcontainer.json or this file's README at:
// https://github.com/microsoft/vscode-dev-containers/tree/v0.134.1/containers/typescript-node
{
"name": "Node.js & TypeScript",
"build": {
"dockerfile": "Dockerfile",
// Update 'VARIANT' to pick a Node version: 10, 12, 14...
"args": {
"VARIANT": "16"
}
},
// Set *default* container specific settings.json values on container create.
"settings": {
"terminal.integrated.shell.linux": "/usr/bin/zsh"
"name": "jellyfin-vue Codespace (with support for Tauri and Docker development)",
"image": "mcr.microsoft.com/devcontainers/typescript-node:0-18",
"features": {
"ghcr.io/devcontainers/features/rust:1": {
"profile": "default"
},
"ghcr.io/devcontainers/features/docker-in-docker:2": {
"dockerDashComposeVersion": "v2"
},
"ghcr.io/devcontainers/features/github-cli:1": {}
},
// Add the IDs of extensions you want installed when the container is created.
"extensions": [
"octref.vetur",
"dbaeumer.vscode-eslint",
"esbenp.prettier-vscode",
"lokalise.i18n-ally",
"ryanluker.vscode-coverage-gutters"
],
// Use 'forwardPorts' to make a list of ports inside the container available locally.
"containerEnv": { "SHELL": "/bin/bash" },
"forwardPorts": [3000],
// Use 'postCreateCommand' to run commands after the container is created.
"postCreateCommand": "npm install",
// Uncomment to connect as a non-root user. See https://aka.ms/vscode-remote/containers/non-root.
// "remoteUser": "node"
"mounts": ["source=jellyfin-vue-history,target=/commandhistory,type=volume"]
"portsAttributes": {
"3000": {
"label": "Vite server",
"onAutoForward": "notify"
}
},
"postCreateCommand": "npm ci",
"postAttachCommand": "cat .vscode/extensions.json | jq -r .recommendations[] | xargs -n 1 code --install-extension",
"hostRequirements": { "cpus": 4, "memory": "8gb" }
}
14 changes: 14 additions & 0 deletions .docker/docker-entrypoint.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
#!/bin/sh

## If the command has not been replaced by the user (i.e docker run image /bin/sh),
## follow through the setup process
if [[ "$*" = "nginx -g daemon off;" ]]; then
echo "==== Starting Jellyfin Vue setup ===="
echo
/setup.sh
echo
echo "==== Setup finished! ===="
echo -e "\n"
fi

exec "$@"
4 changes: 1 addition & 3 deletions .docker/nginx.conf
Original file line number Diff line number Diff line change
@@ -1,11 +1,9 @@
server {
listen 80;

root /usr/share/nginx/html;

location / {
# First attempt to serve request as file, then as directory, then fall back to redirecting to index.html
# This is needed for history mode in Vue router
# This is needed for history mode in Vue router: https://router.vuejs.org/guide/essentials/history-mode.html#nginx
try_files $uri $uri/ /index.html;
}
}
21 changes: 21 additions & 0 deletions .docker/setup.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
#!/bin/sh

CONFIG_FILE_PATH="/usr/share/nginx/html/config.json"
echo "Writing data to $CONFIG_FILE_PATH..."

if [[ "$HISTORY_ROUTER_MODE" == "0" ]]; then
ROUTER_MODE="hash"
else
ROUTER_MODE="history"
fi

echo "DEFAULT_SERVERS value: $DEFAULT_SERVERS"
echo "ROUTER_MODE value: $ROUTER_MODE"

output=$(jq -r --arg R_MODE "$ROUTER_MODE" --arg SERVS "$DEFAULT_SERVERS" '
.defaultServerURLs = ($SERVS | split(",")) |
.routerMode = $R_MODE
' $CONFIG_FILE_PATH
)

echo "$output" > $CONFIG_FILE_PATH
53 changes: 41 additions & 12 deletions .github/renovate.json
Original file line number Diff line number Diff line change
@@ -1,40 +1,69 @@
{
"packageRules": [
{
"matchManagers": ["npm"],
"matchDepTypes": ["devDependencies"],
"matchManagers": [
"npm"
],
"matchDepTypes": [
"devDependencies"
],
"groupName": "development dependencies",
"groupSlug": "dev-deps"
},
{
"matchManagers": ["npm"],
"matchDepTypes": ["dependencies"],
"matchManagers": [
"npm"
],
"matchDepTypes": [
"dependencies"
],
"groupName": "dependencies",
"groupSlug": "deps"
},
{
"matchManagers": ["github-actions"],
"matchManagers": [
"github-actions"
],
"groupName": "CI dependencies",
"groupSlug": "ci-deps",
"separateMajorMinor": false
},
{
"matchManagers": ["cargo"],
"matchManagers": [
"cargo"
],
"groupName": "Tauri dependencies",
"groupSlug": "tauri-deps",
"separateMajorMinor": false
}
],
"dependencyDashboard": false,
"ignoreDeps": ["npm", "swiper", "node"],
"enabledManagers": ["npm", "github-actions", "cargo"],
"labels": ["dependencies"],
"ignoreDeps": [
"npm",
"node"
],
"enabledManagers": [
"npm",
"github-actions",
"cargo"
],
"labels": [
"dependencies"
],
"rebaseWhen": "behind-base-branch",
"rangeStrategy": "pin",
"lockFileMaintenance": {
"enabled": true,
"schedule": ["every 2 months on the first day of the month"]
"schedule": [
"every 2 months on the first day of the month"
]
},
"assignees": ["ferferga", "ThibaultNocchi"],
"reviewers": ["ferferga", "ThibaultNocchi"]
"assignees": [
"ferferga",
"ThibaultNocchi"
],
"reviewers": [
"ferferga",
"ThibaultNocchi"
]
}
6 changes: 3 additions & 3 deletions .github/workflows/automation.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ on:
branches:
- master
paths-ignore:
- '**/*.md'
- "**/*.md"
pull_request_target:

jobs:
Expand Down Expand Up @@ -63,10 +63,10 @@ jobs:
if: ${{ github.event_name == 'pull_request_target' }}
continue-on-error: true
with:
repo-token: '${{ secrets.JF_BOT_TOKEN }}'
repo-token: "${{ secrets.JF_BOT_TOKEN }}"

- name: Check all PRs for merge conflicts ⛔
uses: eps1lon/actions-label-merge-conflict@v2.1.0
with:
dirtyLabel: 'merge conflict'
dirtyLabel: "merge conflict"
repoToken: ${{ secrets.JF_BOT_TOKEN }}
2 changes: 1 addition & 1 deletion .github/workflows/codeQL.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ on:
- master
pull_request:
paths-ignore:
- '**/*.md'
- "**/*.md"
workflow_call:

jobs:
Expand Down
46 changes: 19 additions & 27 deletions .github/workflows/code_quality.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,9 +7,9 @@ concurrency:
on:
pull_request:
paths-ignore:
- '**/*.md'
- "**/*.md"
schedule:
- cron: '30 7 * * 6'
- cron: "30 7 * * 6"
workflow_dispatch:

jobs:
Expand All @@ -34,41 +34,34 @@ jobs:
- name: Setup node environment ⚙️
uses: actions/setup-node@v3.5.1
with:
node-version: 16
cache: 'npm'
node-version: 18
check-latest: true

- name: Install dependencies 📦
run: npm ci --no-audit

- name: Run linter ✏️
run: 'npm run lint:js && npm run lint:style'
run: npm run lint

test:
name: Test 🧫
typecheck:
name: Typecheck 🈯
runs-on: ubuntu-latest

steps:
- name: Checkout ⬇️
uses: actions/checkout@v3.2.0
with:
fetch-depth: 0

- name: Setup node environment ⚙️
uses: actions/setup-node@v3.5.1
with:
node-version: 16
cache: 'npm'
node-version: 18
check-latest: true

- name: Install dependencies 📦
run: npm ci --no-audit

- name: Run tests 🧪
run: npm run test

- name: Upload coverage ⬆️
uses: codecov/codecov-action@v3.1.1
- name: Run typecheck 📖
run: npm run typecheck

build:
name: Build frontend 🛠️
Expand All @@ -77,9 +70,9 @@ jobs:
fail-fast: false
matrix:
platform:
- 'linux/amd64'
- 'linux/arm64'
- 'linux/arm'
- "linux/amd64"
- "linux/arm64"
- "linux/arm"

steps:
- name: Checkout ⬇️
Expand Down Expand Up @@ -131,9 +124,9 @@ jobs:
fail-fast: false
matrix:
platform:
- 'macos-latest'
- 'ubuntu-latest'
- 'windows-latest'
- "macos-latest"
- "ubuntu-latest"
- "windows-latest"

runs-on: ${{ matrix.platform }}
steps:
Expand All @@ -143,8 +136,7 @@ jobs:
- name: Setup node environment ⚙️
uses: actions/setup-node@v3.5.1
with:
node-version: 16
cache: 'npm'
node-version: 18
check-latest: true

- name: Install dependencies 📦
Expand All @@ -157,10 +149,10 @@ jobs:
sudo apt-get install -y webkit2gtk-4.0

- name: Generate Tauri icons 🖌️
run: 'npm run tauri:icon -w tauri'
run: "npm run tauri:icon -w tauri"

- name: Build Tauri 🛠️
run: 'npm run tauri:build -w tauri'
run: "npm run tauri:build -w tauri"

- name: Upload artifact (Linux) ⬆️🐧
uses: actions/upload-artifact@v3.1.1
Expand Down Expand Up @@ -194,7 +186,7 @@ jobs:
needs:
- dependency-review
- lint
- test
- typecheck
- build
- build_tauri

Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/job_messages.yml
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ on:
value: ${{ jobs.msg.outputs.msg }}
marker:
description: Hidden marker to detect PR comments composed by the bot
value: 'CFPages-deployment'
value: "CFPages-deployment"

jobs:
msg:
Expand Down
13 changes: 6 additions & 7 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -72,9 +72,9 @@ jobs:
fail-fast: false
matrix:
platform:
- 'macos-latest'
- 'ubuntu-latest'
- 'windows-latest'
- "macos-latest"
- "ubuntu-latest"
- "windows-latest"

runs-on: ${{ matrix.platform }}
steps:
Expand All @@ -84,8 +84,7 @@ jobs:
- name: Setup node environment ⚙️
uses: actions/setup-node@v3.5.1
with:
node-version: 16
cache: 'npm'
node-version: 18
check-latest: true

- name: Install dependencies 📦
Expand All @@ -98,10 +97,10 @@ jobs:
sudo apt-get install -y webkit2gtk-4.0

- name: Generate Tauri icons 🖌️
run: 'npm run tauri:icon -w tauri'
run: "npm run tauri:icon -w tauri"

- name: Build Tauri 🛠️
run: 'npm run tauri:build -w tauri'
run: "npm run tauri:build -w tauri"

- name: Upload artifact (Linux) ⬆️🐧
uses: actions/upload-artifact@v3.1.1
Expand Down
Loading