-
+
+ />
+ />
@@ -185,7 +185,7 @@ onMounted(() => {
+ />
diff --git a/components/EndlessDocumentList.vue b/app/components/EndlessDocumentList.vue
similarity index 100%
rename from components/EndlessDocumentList.vue
rename to app/components/EndlessDocumentList.vue
diff --git a/components/ErrorMsg.vue b/app/components/ErrorMsg.vue
similarity index 100%
rename from components/ErrorMsg.vue
rename to app/components/ErrorMsg.vue
diff --git a/components/FadeInImage.vue b/app/components/FadeInImage.vue
similarity index 100%
rename from components/FadeInImage.vue
rename to app/components/FadeInImage.vue
diff --git a/components/GenericListItem.vue b/app/components/GenericListItem.vue
similarity index 100%
rename from components/GenericListItem.vue
rename to app/components/GenericListItem.vue
diff --git a/components/I18nText.vue b/app/components/I18nText.vue
similarity index 100%
rename from components/I18nText.vue
rename to app/components/I18nText.vue
diff --git a/components/InfoMessageItem.vue b/app/components/InfoMessageItem.vue
similarity index 100%
rename from components/InfoMessageItem.vue
rename to app/components/InfoMessageItem.vue
diff --git a/components/ItemCard.vue b/app/components/ItemCard.vue
similarity index 100%
rename from components/ItemCard.vue
rename to app/components/ItemCard.vue
diff --git a/components/KeyboardShortcut.vue b/app/components/KeyboardShortcut.vue
similarity index 100%
rename from components/KeyboardShortcut.vue
rename to app/components/KeyboardShortcut.vue
diff --git a/components/LyricsEditor.vue b/app/components/LyricsEditor.vue
similarity index 100%
rename from components/LyricsEditor.vue
rename to app/components/LyricsEditor.vue
diff --git a/components/PageHeading.vue b/app/components/PageHeading.vue
similarity index 100%
rename from components/PageHeading.vue
rename to app/components/PageHeading.vue
diff --git a/components/PrivatePlaylistMenu.vue b/app/components/PrivatePlaylistMenu.vue
similarity index 100%
rename from components/PrivatePlaylistMenu.vue
rename to app/components/PrivatePlaylistMenu.vue
diff --git a/components/ProfileMenu.vue b/app/components/ProfileMenu.vue
similarity index 100%
rename from components/ProfileMenu.vue
rename to app/components/ProfileMenu.vue
diff --git a/components/ProjectBoxItem.vue b/app/components/ProjectBoxItem.vue
similarity index 100%
rename from components/ProjectBoxItem.vue
rename to app/components/ProjectBoxItem.vue
diff --git a/components/ProtectedImage.spec.ts b/app/components/ProtectedImage.spec.ts
similarity index 100%
rename from components/ProtectedImage.spec.ts
rename to app/components/ProtectedImage.spec.ts
diff --git a/components/ProtectedImage.vue b/app/components/ProtectedImage.vue
similarity index 100%
rename from components/ProtectedImage.vue
rename to app/components/ProtectedImage.vue
diff --git a/components/RecommendationItem.vue b/app/components/RecommendationItem.vue
similarity index 100%
rename from components/RecommendationItem.vue
rename to app/components/RecommendationItem.vue
diff --git a/components/SiteLogo.vue b/app/components/SiteLogo.vue
similarity index 100%
rename from components/SiteLogo.vue
rename to app/components/SiteLogo.vue
diff --git a/components/TextMarquee.vue b/app/components/TextMarquee.vue
similarity index 100%
rename from components/TextMarquee.vue
rename to app/components/TextMarquee.vue
diff --git a/components/TileItem.vue b/app/components/TileItem.vue
similarity index 100%
rename from components/TileItem.vue
rename to app/components/TileItem.vue
diff --git a/components/TimeDuration.vue b/app/components/TimeDuration.vue
similarity index 100%
rename from components/TimeDuration.vue
rename to app/components/TimeDuration.vue
diff --git a/components/TooltipBase.vue b/app/components/TooltipBase.vue
similarity index 100%
rename from components/TooltipBase.vue
rename to app/components/TooltipBase.vue
diff --git a/components/TrackCollectionHeader.vue b/app/components/TrackCollectionHeader.vue
similarity index 100%
rename from components/TrackCollectionHeader.vue
rename to app/components/TrackCollectionHeader.vue
diff --git a/components/TrackCountAndDuration.vue b/app/components/TrackCountAndDuration.vue
similarity index 100%
rename from components/TrackCountAndDuration.vue
rename to app/components/TrackCountAndDuration.vue
diff --git a/components/album/SubAlbum.vue b/app/components/album/SubAlbum.vue
similarity index 100%
rename from components/album/SubAlbum.vue
rename to app/components/album/SubAlbum.vue
diff --git a/components/dashboard/DashboardDataTable.vue b/app/components/dashboard/DashboardDataTable.vue
similarity index 100%
rename from components/dashboard/DashboardDataTable.vue
rename to app/components/dashboard/DashboardDataTable.vue
diff --git a/components/dashboard/DashboardStatistic.vue b/app/components/dashboard/DashboardStatistic.vue
similarity index 100%
rename from components/dashboard/DashboardStatistic.vue
rename to app/components/dashboard/DashboardStatistic.vue
diff --git a/components/dashboard/DashboardTimeSeriesChart.vue b/app/components/dashboard/DashboardTimeSeriesChart.vue
similarity index 100%
rename from components/dashboard/DashboardTimeSeriesChart.vue
rename to app/components/dashboard/DashboardTimeSeriesChart.vue
diff --git a/components/dialog/DialogBase.vue b/app/components/dialog/DialogBase.vue
similarity index 100%
rename from components/dialog/DialogBase.vue
rename to app/components/dialog/DialogBase.vue
diff --git a/components/dialog/DialogDownloadNotAllowed.vue b/app/components/dialog/DialogDownloadNotAllowed.vue
similarity index 100%
rename from components/dialog/DialogDownloadNotAllowed.vue
rename to app/components/dialog/DialogDownloadNotAllowed.vue
diff --git a/components/dialog/DialogPlain.vue b/app/components/dialog/DialogPlain.vue
similarity index 100%
rename from components/dialog/DialogPlain.vue
rename to app/components/dialog/DialogPlain.vue
diff --git a/components/dialog/ErrorDialog.vue b/app/components/dialog/ErrorDialog.vue
similarity index 100%
rename from components/dialog/ErrorDialog.vue
rename to app/components/dialog/ErrorDialog.vue
diff --git a/components/dropdown/DropdownMenu.vue b/app/components/dropdown/DropdownMenu.vue
similarity index 100%
rename from components/dropdown/DropdownMenu.vue
rename to app/components/dropdown/DropdownMenu.vue
diff --git a/components/dropdown/DropdownMenuGroup.vue b/app/components/dropdown/DropdownMenuGroup.vue
similarity index 100%
rename from components/dropdown/DropdownMenuGroup.vue
rename to app/components/dropdown/DropdownMenuGroup.vue
diff --git a/components/dropdown/DropdownMenuItem.vue b/app/components/dropdown/DropdownMenuItem.vue
similarity index 100%
rename from components/dropdown/DropdownMenuItem.vue
rename to app/components/dropdown/DropdownMenuItem.vue
diff --git a/components/media-player/MediaPlayer.vue b/app/components/media-player/MediaPlayer.vue
similarity index 100%
rename from components/media-player/MediaPlayer.vue
rename to app/components/media-player/MediaPlayer.vue
diff --git a/components/media-player/MediaPlayerClosed.vue b/app/components/media-player/MediaPlayerClosed.vue
similarity index 100%
rename from components/media-player/MediaPlayerClosed.vue
rename to app/components/media-player/MediaPlayerClosed.vue
diff --git a/components/media-player/MediaPlayerOpen.vue b/app/components/media-player/MediaPlayerOpen.vue
similarity index 100%
rename from components/media-player/MediaPlayerOpen.vue
rename to app/components/media-player/MediaPlayerOpen.vue
diff --git a/components/media-player/PositionSlider.vue b/app/components/media-player/PositionSlider.vue
similarity index 100%
rename from components/media-player/PositionSlider.vue
rename to app/components/media-player/PositionSlider.vue
diff --git a/components/media-player/VolumeSlider.vue b/app/components/media-player/VolumeSlider.vue
similarity index 100%
rename from components/media-player/VolumeSlider.vue
rename to app/components/media-player/VolumeSlider.vue
diff --git a/components/page-editor/PageEditorDatetimeInput.vue b/app/components/page-editor/PageEditorDatetimeInput.vue
similarity index 100%
rename from components/page-editor/PageEditorDatetimeInput.vue
rename to app/components/page-editor/PageEditorDatetimeInput.vue
diff --git a/components/page-editor/PageEditorElement.vue b/app/components/page-editor/PageEditorElement.vue
similarity index 100%
rename from components/page-editor/PageEditorElement.vue
rename to app/components/page-editor/PageEditorElement.vue
diff --git a/components/page-editor/PageEditorFieldset.vue b/app/components/page-editor/PageEditorFieldset.vue
similarity index 100%
rename from components/page-editor/PageEditorFieldset.vue
rename to app/components/page-editor/PageEditorFieldset.vue
diff --git a/components/page-editor/PageEditorInput.vue b/app/components/page-editor/PageEditorInput.vue
similarity index 100%
rename from components/page-editor/PageEditorInput.vue
rename to app/components/page-editor/PageEditorInput.vue
diff --git a/components/sidebar/AddPlaylist.vue b/app/components/sidebar/AddPlaylist.vue
similarity index 100%
rename from components/sidebar/AddPlaylist.vue
rename to app/components/sidebar/AddPlaylist.vue
diff --git a/components/sidebar/DesktopPromo.vue b/app/components/sidebar/DesktopPromo.vue
similarity index 100%
rename from components/sidebar/DesktopPromo.vue
rename to app/components/sidebar/DesktopPromo.vue
diff --git a/components/sidebar/SidebarElement.vue b/app/components/sidebar/SidebarElement.vue
similarity index 97%
rename from components/sidebar/SidebarElement.vue
rename to app/components/sidebar/SidebarElement.vue
index b517e32a..8bd24527 100644
--- a/components/sidebar/SidebarElement.vue
+++ b/app/components/sidebar/SidebarElement.vue
@@ -1,5 +1,5 @@
-
+
diff --git a/pages/year-in-review.vue b/app/pages/year-in-review.vue
similarity index 100%
rename from pages/year-in-review.vue
rename to app/pages/year-in-review.vue
diff --git a/plugins/00.sentry.client.ts b/app/plugins/00.sentry.client.ts
similarity index 100%
rename from plugins/00.sentry.client.ts
rename to app/plugins/00.sentry.client.ts
diff --git a/plugins/1.auth0.client.ts b/app/plugins/1.auth0.client.ts
similarity index 100%
rename from plugins/1.auth0.client.ts
rename to app/plugins/1.auth0.client.ts
diff --git a/plugins/1.auth0.server.ts b/app/plugins/1.auth0.server.ts
similarity index 100%
rename from plugins/1.auth0.server.ts
rename to app/plugins/1.auth0.server.ts
diff --git a/plugins/2.bmm-api.ts b/app/plugins/2.bmm-api.ts
similarity index 100%
rename from plugins/2.bmm-api.ts
rename to app/plugins/2.bmm-api.ts
diff --git a/plugins/2.userData.ts b/app/plugins/2.userData.ts
similarity index 100%
rename from plugins/2.userData.ts
rename to app/plugins/2.userData.ts
diff --git a/plugins/3.applicationInsights.ts b/app/plugins/3.applicationInsights.ts
similarity index 98%
rename from plugins/3.applicationInsights.ts
rename to app/plugins/3.applicationInsights.ts
index 7037b321..5798b9df 100644
--- a/plugins/3.applicationInsights.ts
+++ b/app/plugins/3.applicationInsights.ts
@@ -4,7 +4,7 @@
/* eslint-disable no-nested-ternary */
import { ApplicationInsights } from "@microsoft/applicationinsights-web";
-import { version } from "~/package.json";
+import { version } from "~~/package.json";
import type { IUserData } from "./2.userData";
export interface AppInsights {
diff --git a/plugins/4.mediaPlayer.ts b/app/plugins/4.mediaPlayer.ts
similarity index 100%
rename from plugins/4.mediaPlayer.ts
rename to app/plugins/4.mediaPlayer.ts
diff --git a/plugins/5.mediaKeys.ts b/app/plugins/5.mediaKeys.ts
similarity index 100%
rename from plugins/5.mediaKeys.ts
rename to app/plugins/5.mediaKeys.ts
diff --git a/app/plugins/VueSanitize.ts b/app/plugins/VueSanitize.ts
new file mode 100644
index 00000000..8a1e95c9
--- /dev/null
+++ b/app/plugins/VueSanitize.ts
@@ -0,0 +1,5 @@
+import VueSanitize from "vue-sanitize-directive";
+
+export default defineNuxtPlugin((nuxtApp) => {
+ nuxtApp.vueApp.use(VueSanitize);
+});
diff --git a/app/plugins/i18n.ts b/app/plugins/i18n.ts
new file mode 100644
index 00000000..08956944
--- /dev/null
+++ b/app/plugins/i18n.ts
@@ -0,0 +1,49 @@
+import { createI18n } from "vue-i18n";
+import da from "../locales/da.json";
+import de from "../locales/de.json";
+import el from "../locales/el.json";
+import en from "../locales/en.json";
+import es from "../locales/es.json";
+import et from "../locales/et.json";
+import fi from "../locales/fi.json";
+import fr from "../locales/fr.json";
+import hu from "../locales/hu.json";
+import it from "../locales/it.json";
+import nb from "../locales/nb.json";
+import nl from "../locales/nl.json";
+import pl from "../locales/pl.json";
+import pt from "../locales/pt.json";
+import ro from "../locales/ro.json";
+import ru from "../locales/ru.json";
+import sl from "../locales/sl.json";
+import ta from "../locales/ta.json";
+import tr from "../locales/tr.json";
+
+export default defineNuxtPlugin(({ vueApp }) => {
+ const i18n = createI18n({
+ globalInjection: true,
+ locale: "en",
+ messages: {
+ da,
+ de,
+ el,
+ en,
+ es,
+ et,
+ fi,
+ fr,
+ hu,
+ it,
+ nb,
+ nl,
+ pl,
+ pt,
+ ro,
+ ru,
+ sl,
+ ta,
+ tr
+ },
+ });
+ vueApp.use(i18n);
+});
diff --git a/plugins/mediaPlayer/EnrichedTrackModel.ts b/app/plugins/mediaPlayer/EnrichedTrackModel.ts
similarity index 100%
rename from plugins/mediaPlayer/EnrichedTrackModel.ts
rename to app/plugins/mediaPlayer/EnrichedTrackModel.ts
diff --git a/plugins/mediaPlayer/MediaTrack.spec.ts b/app/plugins/mediaPlayer/MediaTrack.spec.ts
similarity index 95%
rename from plugins/mediaPlayer/MediaTrack.spec.ts
rename to app/plugins/mediaPlayer/MediaTrack.spec.ts
index 86720398..9fdfc7ce 100644
--- a/plugins/mediaPlayer/MediaTrack.spec.ts
+++ b/app/plugins/mediaPlayer/MediaTrack.spec.ts
@@ -5,6 +5,7 @@ import { HTMLAudioElement, Event } from "happy-dom";
import { flushPromises } from "@vue/test-utils";
import MediaTrack from "./MediaTrack";
import type { AppInsights } from "../3.applicationInsights";
+import { ref } from "vue";
class MediaTrackMock extends MediaTrack {
public get audioElementMock() {
@@ -17,7 +18,7 @@ class MediaTrackMock extends MediaTrack {
}
const appInsights: AppInsights = {
- event: (_: string, _2: any) => {},
+ event: (_: string, _2: unknown) => {},
};
describe("plugin mediaPlayer MediaTrack", () => {
@@ -57,11 +58,11 @@ describe("plugin mediaPlayer MediaTrack", () => {
mT.registerEvents();
mT.registerSource();
mT.loading = true;
- (audio as any).duration = 1000;
+ (audio as unknown).duration = 1000;
audio.dispatchEvent(
new Event("durationchange", { bubbles: false, cancelable: false }),
);
- (audio as any).currentTime = 500;
+ (audio as unknown).currentTime = 500;
audio.dispatchEvent(
new Event("timeupdate", { bubbles: false, cancelable: false }),
);
@@ -159,12 +160,12 @@ describe("plugin mediaPlayer MediaTrack", () => {
// Act
await flushPromises();
- (audio as any).duration = 500;
+ (audio as unknown).duration = 500;
audio.dispatchEvent(
new Event("durationchange", { bubbles: false, cancelable: false }),
);
await flushPromises();
- (audio as any).duration = 800;
+ (audio as unknown).duration = 800;
audio.dispatchEvent(
new Event("durationchange", { bubbles: false, cancelable: false }),
);
@@ -200,12 +201,12 @@ describe("plugin mediaPlayer MediaTrack", () => {
// Act
await flushPromises();
- (audio as any).duration = 500;
+ (audio as unknown).duration = 500;
audio.dispatchEvent(
new Event("durationchange", { bubbles: false, cancelable: false }),
);
await flushPromises();
- (audio as any).duration = +Infinity;
+ (audio as unknown).duration = +Infinity;
audio.dispatchEvent(
new Event("durationchange", { bubbles: false, cancelable: false }),
);
@@ -321,12 +322,12 @@ describe("plugin mediaPlayer MediaTrack", () => {
// Act
await flushPromises();
- (audio as any).currentTime = 500;
+ (audio as unknown).currentTime = 500;
audio.dispatchEvent(
new Event("timeupdate", { bubbles: false, cancelable: false }),
);
await flushPromises();
- (audio as any).currentTime = 501;
+ (audio as unknown).currentTime = 501;
audio.dispatchEvent(
new Event("timeupdate", { bubbles: false, cancelable: false }),
);
@@ -362,22 +363,22 @@ describe("plugin mediaPlayer MediaTrack", () => {
// Act
await flushPromises();
- (audio as any).currentTime = 500;
+ (audio as unknown).currentTime = 500;
audio.dispatchEvent(
new Event("timeupdate", { bubbles: false, cancelable: false }),
);
await flushPromises();
- (audio as any).currentTime = 500;
+ (audio as unknown).currentTime = 500;
audio.dispatchEvent(
new Event("timeupdate", { bubbles: false, cancelable: false }),
);
await flushPromises();
- (audio as any).currentTime = 500;
+ (audio as unknown).currentTime = 500;
audio.dispatchEvent(
new Event("timeupdate", { bubbles: false, cancelable: false }),
);
await flushPromises();
- (audio as any).currentTime = 500;
+ (audio as unknown).currentTime = 500;
audio.dispatchEvent(
new Event("timeupdate", { bubbles: false, cancelable: false }),
);
@@ -495,7 +496,7 @@ describe("plugin mediaPlayer MediaTrack", () => {
describe("destroy", () => {
it("resets the option `srcObject` to `null` (best practice)", () => {
// Arrange
- const audio: HTMLAudioElement & { srcObject?: {} | null } =
+ const audio: HTMLAudioElement & { srcObject?: object | null } =
new HTMLAudioElement();
audio.srcObject = {};
const mT = new MediaTrackMock(
diff --git a/plugins/mediaPlayer/MediaTrack.ts b/app/plugins/mediaPlayer/MediaTrack.ts
similarity index 100%
rename from plugins/mediaPlayer/MediaTrack.ts
rename to app/plugins/mediaPlayer/MediaTrack.ts
diff --git a/plugins/mediaPlayer/Queue.spec.ts b/app/plugins/mediaPlayer/Queue.spec.ts
similarity index 99%
rename from plugins/mediaPlayer/Queue.spec.ts
rename to app/plugins/mediaPlayer/Queue.spec.ts
index ad2c7c1a..27171f7b 100644
--- a/plugins/mediaPlayer/Queue.spec.ts
+++ b/app/plugins/mediaPlayer/Queue.spec.ts
@@ -5,6 +5,7 @@ import { flushPromises } from "@vue/test-utils";
import type { TrackModel } from "@bcc-code/bmm-sdk-fetch";
import Queue from "./Queue";
import EnrichedTrackModel from "./EnrichedTrackModel";
+import { ref } from "vue";
const now = new Date();
function track(id: number) {
diff --git a/plugins/mediaPlayer/Queue.ts b/app/plugins/mediaPlayer/Queue.ts
similarity index 100%
rename from plugins/mediaPlayer/Queue.ts
rename to app/plugins/mediaPlayer/Queue.ts
diff --git a/plugins/mediaPlayer/mediaPlayer.spec.ts b/app/plugins/mediaPlayer/mediaPlayer.spec.ts
similarity index 98%
rename from plugins/mediaPlayer/mediaPlayer.spec.ts
rename to app/plugins/mediaPlayer/mediaPlayer.spec.ts
index 09d6f7ab..f1d7689e 100644
--- a/plugins/mediaPlayer/mediaPlayer.spec.ts
+++ b/app/plugins/mediaPlayer/mediaPlayer.spec.ts
@@ -1,3 +1,4 @@
+/* eslint-disable @typescript-eslint/no-explicit-any */
// @vitest-environment happy-dom
import { describe, it, expect, vi, afterEach } from "vitest";
@@ -15,6 +16,7 @@ import {
RepeatStatus,
} from "./mediaPlayer";
import EnrichedTrackModel from "./EnrichedTrackModel";
+import { ref } from "vue";
vi.mock("./Queue", async (importOriginal) => {
const { default: Mod } = (await importOriginal()) as any;
@@ -1022,7 +1024,7 @@ describe("plugin mediaPlayer MediaTrack", () => {
mediaPlayer.value.setQueue([track(1)]);
await flushPromises();
- const isLoadingValues: Boolean[] = [];
+ const isLoadingValues: boolean[] = [];
watch(
() => mediaPlayer.value.isLoading,
(v) => {
@@ -1047,7 +1049,7 @@ describe("plugin mediaPlayer MediaTrack", () => {
MockedMediaTrack.mock.results[0]!.value.obj!.loading = true;
await flushPromises();
- const isLoadingValues: Boolean[] = [];
+ const isLoadingValues: boolean[] = [];
watch(
() => mediaPlayer.value.isLoading,
(v) => {
@@ -1071,7 +1073,7 @@ describe("plugin mediaPlayer MediaTrack", () => {
// Arrange
const mediaPlayer = ref(setupPlayer());
- const hasNextValues: Boolean[] = [];
+ const hasNextValues: boolean[] = [];
watch(
() => mediaPlayer.value.hasNext,
(v) => {
@@ -1094,7 +1096,7 @@ describe("plugin mediaPlayer MediaTrack", () => {
mediaPlayer.value.setQueue([track(1), track(2), track(3)]);
await flushPromises();
- const hasNextValues: Boolean[] = [];
+ const hasNextValues: boolean[] = [];
watch(
() => mediaPlayer.value.hasNext,
(v) => {
@@ -1117,7 +1119,7 @@ describe("plugin mediaPlayer MediaTrack", () => {
mediaPlayer.value.setQueue([track(1), track(2)]);
await flushPromises();
- const hasNextValues: Boolean[] = [];
+ const hasNextValues: boolean[] = [];
watch(
() => mediaPlayer.value.hasNext,
(v) => {
@@ -1140,7 +1142,7 @@ describe("plugin mediaPlayer MediaTrack", () => {
mediaPlayer.value.setQueue([track(1), track(2)], 1);
await flushPromises();
- const hasNextValues: Boolean[] = [];
+ const hasNextValues: boolean[] = [];
watch(
() => mediaPlayer.value.hasNext,
(v) => {
@@ -1163,7 +1165,7 @@ describe("plugin mediaPlayer MediaTrack", () => {
mediaPlayer.value.setQueue([track(1), track(2)]);
await flushPromises();
- const hasNextValues: Boolean[] = [];
+ const hasNextValues: boolean[] = [];
watch(
() => mediaPlayer.value.hasNext,
(v) => {
@@ -1187,7 +1189,7 @@ describe("plugin mediaPlayer MediaTrack", () => {
mediaPlayer.value.repeatStatus = RepeatStatus.RepeatQueue;
await flushPromises();
- const hasNextValues: Boolean[] = [];
+ const hasNextValues: boolean[] = [];
watch(
() => mediaPlayer.value.hasNext,
(v) => {
@@ -1211,7 +1213,7 @@ describe("plugin mediaPlayer MediaTrack", () => {
mediaPlayer.value.repeatStatus = RepeatStatus.RepeatQueue;
await flushPromises();
- const hasNextValues: Boolean[] = [];
+ const hasNextValues: boolean[] = [];
watch(
() => mediaPlayer.value.hasNext,
(v) => {
@@ -1251,7 +1253,7 @@ describe("plugin mediaPlayer MediaTrack", () => {
mediaPlayer.value.setQueue([track(1), track(2)], 1);
await flushPromises();
- const hasPreviousValues: Boolean[] = [];
+ const hasPreviousValues: boolean[] = [];
watch(
() => mediaPlayer.value.hasPrevious,
(v) => {
@@ -1271,7 +1273,7 @@ describe("plugin mediaPlayer MediaTrack", () => {
// Arrange
const mediaPlayer = ref(setupPlayer());
- const hasPreviousValues: Boolean[] = [];
+ const hasPreviousValues: boolean[] = [];
watch(
() => mediaPlayer.value.hasPrevious,
(v) => {
diff --git a/plugins/mediaPlayer/mediaPlayer.ts b/app/plugins/mediaPlayer/mediaPlayer.ts
similarity index 100%
rename from plugins/mediaPlayer/mediaPlayer.ts
rename to app/plugins/mediaPlayer/mediaPlayer.ts
diff --git a/plugins/piniaPersistedState.ts b/app/plugins/piniaPersistedState.ts
similarity index 100%
rename from plugins/piniaPersistedState.ts
rename to app/plugins/piniaPersistedState.ts
diff --git a/plugins/updateRouterOnRouteChangeEvent.client.ts b/app/plugins/updateRouterOnRouteChangeEvent.client.ts
similarity index 100%
rename from plugins/updateRouterOnRouteChangeEvent.client.ts
rename to app/plugins/updateRouterOnRouteChangeEvent.client.ts
diff --git a/spa-loading-template.html b/app/spa-loading-template.html
similarity index 100%
rename from spa-loading-template.html
rename to app/spa-loading-template.html
diff --git a/stores/contentLanguage.ts b/app/stores/contentLanguage.ts
similarity index 100%
rename from stores/contentLanguage.ts
rename to app/stores/contentLanguage.ts
diff --git a/stores/profile.ts b/app/stores/profile.ts
similarity index 100%
rename from stores/profile.ts
rename to app/stores/profile.ts
diff --git a/stores/toolbarTitle.ts b/app/stores/toolbarTitle.ts
similarity index 100%
rename from stores/toolbarTitle.ts
rename to app/stores/toolbarTitle.ts
diff --git a/utils/DropdownMenuItem.ts b/app/utils/DropdownMenuItem.ts
similarity index 100%
rename from utils/DropdownMenuItem.ts
rename to app/utils/DropdownMenuItem.ts
diff --git a/utils/authorizedUrl.ts b/app/utils/authorizedUrl.ts
similarity index 100%
rename from utils/authorizedUrl.ts
rename to app/utils/authorizedUrl.ts
diff --git a/utils/availableContentLanguages.ts b/app/utils/availableContentLanguages.ts
similarity index 100%
rename from utils/availableContentLanguages.ts
rename to app/utils/availableContentLanguages.ts
diff --git a/utils/config.ts b/app/utils/config.ts
similarity index 100%
rename from utils/config.ts
rename to app/utils/config.ts
diff --git a/utils/dateToUtc.ts b/app/utils/dateToUtc.ts
similarity index 100%
rename from utils/dateToUtc.ts
rename to app/utils/dateToUtc.ts
diff --git a/utils/formatDate.ts b/app/utils/formatDate.ts
similarity index 100%
rename from utils/formatDate.ts
rename to app/utils/formatDate.ts
diff --git a/utils/formatTime.ts b/app/utils/formatTime.ts
similarity index 100%
rename from utils/formatTime.ts
rename to app/utils/formatTime.ts
diff --git a/utils/getLocalizedLanguageName.ts b/app/utils/getLocalizedLanguageName.ts
similarity index 100%
rename from utils/getLocalizedLanguageName.ts
rename to app/utils/getLocalizedLanguageName.ts
diff --git a/utils/getLocalizedList.ts b/app/utils/getLocalizedList.ts
similarity index 100%
rename from utils/getLocalizedList.ts
rename to app/utils/getLocalizedList.ts
diff --git a/utils/lyricsEditor.ts b/app/utils/lyricsEditor.ts
similarity index 100%
rename from utils/lyricsEditor.ts
rename to app/utils/lyricsEditor.ts
diff --git a/utils/parseLink.ts b/app/utils/parseLink.ts
similarity index 100%
rename from utils/parseLink.ts
rename to app/utils/parseLink.ts
diff --git a/utils/reactiveApi.ts b/app/utils/reactiveApi.ts
similarity index 100%
rename from utils/reactiveApi.ts
rename to app/utils/reactiveApi.ts
diff --git a/utils/roles.ts b/app/utils/roles.ts
similarity index 100%
rename from utils/roles.ts
rename to app/utils/roles.ts
diff --git a/utils/scroll.ts b/app/utils/scroll.ts
similarity index 100%
rename from utils/scroll.ts
rename to app/utils/scroll.ts
diff --git a/utils/setTitle.ts b/app/utils/setTitle.ts
similarity index 100%
rename from utils/setTitle.ts
rename to app/utils/setTitle.ts
diff --git a/utils/setTitleOfDocumentList.ts b/app/utils/setTitleOfDocumentList.ts
similarity index 100%
rename from utils/setTitleOfDocumentList.ts
rename to app/utils/setTitleOfDocumentList.ts
diff --git a/utils/showErrorToUser.ts b/app/utils/showErrorToUser.ts
similarity index 100%
rename from utils/showErrorToUser.ts
rename to app/utils/showErrorToUser.ts
diff --git a/utils/songbookName.ts b/app/utils/songbookName.ts
similarity index 100%
rename from utils/songbookName.ts
rename to app/utils/songbookName.ts
diff --git a/utils/songtreasures.ts b/app/utils/songtreasures.ts
similarity index 100%
rename from utils/songtreasures.ts
rename to app/utils/songtreasures.ts
diff --git a/utils/stringCasing.ts b/app/utils/stringCasing.ts
similarity index 100%
rename from utils/stringCasing.ts
rename to app/utils/stringCasing.ts
diff --git a/utils/trackFields.ts b/app/utils/trackFields.ts
similarity index 100%
rename from utils/trackFields.ts
rename to app/utils/trackFields.ts
diff --git a/utils/tracks.ts b/app/utils/tracks.ts
similarity index 100%
rename from utils/tracks.ts
rename to app/utils/tracks.ts
diff --git a/utils/tracksToTrackReferences.ts b/app/utils/tracksToTrackReferences.ts
similarity index 100%
rename from utils/tracksToTrackReferences.ts
rename to app/utils/tracksToTrackReferences.ts
diff --git a/utils/transcription.ts b/app/utils/transcription.ts
similarity index 100%
rename from utils/transcription.ts
rename to app/utils/transcription.ts
diff --git a/utils/uniqueItems.ts b/app/utils/uniqueItems.ts
similarity index 100%
rename from utils/uniqueItems.ts
rename to app/utils/uniqueItems.ts
diff --git a/utils/uuid.ts b/app/utils/uuid.ts
similarity index 100%
rename from utils/uuid.ts
rename to app/utils/uuid.ts
diff --git a/utils/weekDay.ts b/app/utils/weekDay.ts
similarity index 100%
rename from utils/weekDay.ts
rename to app/utils/weekDay.ts
diff --git a/build/entitlements.mac.plist b/build/entitlements.mac.plist
index 38c887b2..46f43d4a 100644
--- a/build/entitlements.mac.plist
+++ b/build/entitlements.mac.plist
@@ -1,12 +1,12 @@
-
- com.apple.security.cs.allow-jit
-
- com.apple.security.cs.allow-unsigned-executable-memory
-
- com.apple.security.cs.allow-dyld-environment-variables
-
-
+
+ com.apple.security.cs.allow-jit
+
+ com.apple.security.cs.allow-unsigned-executable-memory
+
+ com.apple.security.cs.allow-dyld-environment-variables
+
+
diff --git a/build/entitlements.mas.plist b/build/entitlements.mas.plist
index eb2489f8..51d633a1 100644
--- a/build/entitlements.mas.plist
+++ b/build/entitlements.mas.plist
@@ -1,14 +1,14 @@
-
-com.apple.security.app-sandbox
-
-com.apple.security.application-groups
-KJ6LCYQ3A8.org.brunstad.bmm
-com.apple.security.files.user-selected.read-only
-
-com.apple.security.files.user-selected.read-write
-
-
+
+ com.apple.security.app-sandbox
+
+ com.apple.security.application-groups
+ KJ6LCYQ3A8.org.brunstad.bmm
+ com.apple.security.files.user-selected.read-only
+
+ com.apple.security.files.user-selected.read-write
+
+
\ No newline at end of file
diff --git a/declarations.d.ts b/declarations.d.ts
index 510f7a36..0253ceb1 100644
--- a/declarations.d.ts
+++ b/declarations.d.ts
@@ -4,6 +4,6 @@ import type {
} from "vue";
declare module "@vue/runtime-core" {
- interface ComponentCustomProperties extends _ComponentCustomProperties {}
- interface ComponentCustomOptions extends _ComponentCustomOptions {}
+ type ComponentCustomProperties = _ComponentCustomProperties;
+ type ComponentCustomOptions = _ComponentCustomOptions;
}
diff --git a/eslint.config.mjs b/eslint.config.mjs
new file mode 100644
index 00000000..934c3a1d
--- /dev/null
+++ b/eslint.config.mjs
@@ -0,0 +1,6 @@
+// @ts-check
+import withNuxt from './.nuxt/eslint.config.mjs'
+
+export default withNuxt(
+ // Your custom configs here
+)
diff --git a/i18n.config.ts b/i18n.config.ts
index 20d6dd6f..76b54d98 100644
--- a/i18n.config.ts
+++ b/i18n.config.ts
@@ -19,7 +19,7 @@ import ru from "./locales/ru.json";
import it from "./locales/it.json";
import pl from "./locales/pl.json";
-function cleanupEmptyProperties(obj: any, fallback: any): any {
+function cleanupEmptyProperties(obj, fallback) {
Object.keys(obj).forEach((key) => {
if (typeof obj[key] === "object") {
obj[key] = cleanupEmptyProperties(obj[key], fallback[key]);
diff --git a/modules/figma2tailwind/convertToTailwind.ts b/modules/figma2tailwind/convertToTailwind.ts
index 161a33ce..b17a0f49 100644
--- a/modules/figma2tailwind/convertToTailwind.ts
+++ b/modules/figma2tailwind/convertToTailwind.ts
@@ -15,7 +15,7 @@ const comment = `/**
async function writeTailwindColors(tailwindColors: Record
) {
await fs.writeFile(
- "./assets/design-tokens/tailwind-colors.generated.ts",
+ "app/assets/design-tokens/tailwind-colors.generated.ts",
`${comment}\n\nexport default ${JSON.stringify(tailwindColors, null, 2)}`,
"utf8",
);
@@ -25,7 +25,7 @@ async function writeTailwindTypography(
tailwindTypography: Record,
) {
await fs.writeFile(
- "./assets/design-tokens/tailwind-typography.generated.ts",
+ "app/assets/design-tokens/tailwind-typography.generated.ts",
`${comment}\n\nexport default ${JSON.stringify(tailwindTypography, null, 2)}`,
"utf8",
);
@@ -33,7 +33,7 @@ async function writeTailwindTypography(
async function writeColorsCss(content: string) {
await fs.writeFile(
- "./assets/design-tokens/colors.generated.css",
+ "app/assets/design-tokens/colors.generated.css",
`${comment}\n\n${content}`,
"utf8",
);
@@ -79,7 +79,7 @@ async function writeColors(figmaInput) {
async function getFigmaInput() {
const content = await fs.readFile(
- "./assets/design-tokens/tokens.json",
+ "app/assets/design-tokens/tokens.json",
"utf-8",
);
return JSON.parse(content);
diff --git a/modules/icons/module.ts b/modules/icons/module.ts
index 9d62b315..23d8d919 100644
--- a/modules/icons/module.ts
+++ b/modules/icons/module.ts
@@ -1,5 +1,4 @@
// This component is a copy of the nuxt-icon component from nuxt-icons (https://nuxt.com/modules/icons)
-/* eslint import/no-extraneous-dependencies: ["error", {"devDependencies": true}] */
import { defineNuxtModule, createResolver, addComponent } from "@nuxt/kit";
import { CreateTypedIcons } from "./generator";
@@ -18,7 +17,7 @@ export default defineNuxtModule({
name: "nuxt-icons",
configKey: "nuxtIcons",
compatibility: {
- nuxt: "^3.0.0",
+ nuxt: "^4.3.1",
},
},
defaults: {
diff --git a/modules/icons/runtime/components/nuxt-icon.vue b/modules/icons/runtime/components/nuxt-icon.vue
index bd95681d..cf8bf760 100644
--- a/modules/icons/runtime/components/nuxt-icon.vue
+++ b/modules/icons/runtime/components/nuxt-icon.vue
@@ -9,10 +9,11 @@ const props = withDefaults(
{},
);
+// eslint-disable-next-line @typescript-eslint/no-explicit-any
const icon = ref>("");
async function getIcon() {
- const iconsImport = import.meta.glob("assets/icons/**/**.svg", {
+ const iconsImport = import.meta.glob("assets/icons/**.svg", {
query: "?raw",
import: "default",
eager: false,
@@ -24,7 +25,6 @@ async function getIcon() {
}
getIcon().catch((e) => {
- // eslint-disable-next-line no-console
console.warn(
`[nuxt-icons] Failed. Does icon '${props.name}' exist in 'assets/icons'? Error was:`,
e,
@@ -35,7 +35,7 @@ watchEffect(getIcon);
-
+