mirror of
https://github.com/Sebclem/hassio-nextcloud-backup.git
synced 2024-11-29 04:14:53 +01:00
A lot of deps upgrade
This commit is contained in:
parent
8f51d5d837
commit
86f4a6faa4
@ -12,46 +12,46 @@
|
|||||||
"serve": "node dist/server.js"
|
"serve": "node dist/server.js"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@typescript-eslint/eslint-plugin": "^5.38.0",
|
"@typescript-eslint/eslint-plugin": "^7.0.1",
|
||||||
"app-root-path": "3.0.0",
|
"app-root-path": "3.1.0",
|
||||||
"cookie-parser": "1.4.6",
|
"cookie-parser": "1.4.6",
|
||||||
"cors": "^2.8.5",
|
"cors": "^2.8.5",
|
||||||
"cron": "2.1.0",
|
"cron": "3.1.6",
|
||||||
"debug": "4.3.4",
|
"debug": "4.3.4",
|
||||||
"errorhandler": "^1.5.1",
|
"errorhandler": "^1.5.1",
|
||||||
"express": "4.18.1",
|
"express": "4.18.2",
|
||||||
"fast-xml-parser": "^4.0.10",
|
"fast-xml-parser": "^4.3.4",
|
||||||
"figlet": "^1.5.2",
|
"figlet": "^1.7.0",
|
||||||
"form-data": "4.0.0",
|
"form-data": "4.0.0",
|
||||||
"got": "12.3.0",
|
"got": "14.2.0",
|
||||||
"http-errors": "2.0.0",
|
"http-errors": "2.0.0",
|
||||||
"joi": "^17.6.1",
|
"joi": "^17.12.1",
|
||||||
"jquery": "3.6.0",
|
"jquery": "3.7.1",
|
||||||
"kleur": "^4.1.5",
|
"kleur": "^4.1.5",
|
||||||
"luxon": "3.0.1",
|
"luxon": "3.4.4",
|
||||||
"morgan": "1.10.0",
|
"morgan": "1.10.0",
|
||||||
"webdav": "4.10.0",
|
"webdav": "5.3.2",
|
||||||
"winston": "3.8.1"
|
"winston": "3.11.0"
|
||||||
},
|
},
|
||||||
"packageManager": "pnpm@7.12.1",
|
"packageManager": "pnpm@8.15.3",
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@tsconfig/recommended": "^1.0.1",
|
"@tsconfig/recommended": "^1.0.3",
|
||||||
"@types/cookie-parser": "^1.4.3",
|
"@types/cookie-parser": "^1.4.6",
|
||||||
"@types/cors": "^2.8.12",
|
"@types/cors": "^2.8.17",
|
||||||
"@types/cron": "^2.0.0",
|
"@types/cron": "^2.4.0",
|
||||||
"@types/errorhandler": "^1.5.0",
|
"@types/errorhandler": "^1.5.3",
|
||||||
"@types/express": "^4.17.14",
|
"@types/express": "^4.17.21",
|
||||||
"@types/figlet": "^1.5.5",
|
"@types/figlet": "^1.5.8",
|
||||||
"@types/http-errors": "^1.8.2",
|
"@types/http-errors": "^2.0.4",
|
||||||
"@types/luxon": "^3.0.1",
|
"@types/luxon": "^3.4.2",
|
||||||
"@types/morgan": "^1.9.3",
|
"@types/morgan": "^1.9.9",
|
||||||
"@types/node": "^18.7.18",
|
"@types/node": "^20.11.19",
|
||||||
"@typescript-eslint/parser": "^5.38.0",
|
"@typescript-eslint/parser": "^7.0.1",
|
||||||
"concurrently": "6.0.2",
|
"concurrently": "8.2.2",
|
||||||
"dotenv": "^16.0.2",
|
"dotenv": "^16.4.4",
|
||||||
"eslint": "7.19.0",
|
"eslint": "8.56.0",
|
||||||
"nodemon": "^2.0.20",
|
"nodemon": "^3.0.3",
|
||||||
"ts-node": "^10.9.1",
|
"ts-node": "^10.9.2",
|
||||||
"typescript": "^4.8.3"
|
"typescript": "^5.3.3"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
2262
nextcloud_backup/backend/pnpm-lock.yaml
generated
2262
nextcloud_backup/backend/pnpm-lock.yaml
generated
File diff suppressed because it is too large
Load Diff
@ -1,5 +1,5 @@
|
|||||||
import cookieParser from "cookie-parser";
|
import cookieParser from "cookie-parser";
|
||||||
import express, { NextFunction, Request, Response } from "express";
|
import express, { type NextFunction, type Request, type Response } from "express";
|
||||||
import createError from "http-errors";
|
import createError from "http-errors";
|
||||||
import morgan from "morgan";
|
import morgan from "morgan";
|
||||||
import path from "path";
|
import path from "path";
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
import fs from "fs";
|
import fs from "fs";
|
||||||
import Joi from "joi";
|
import Joi from "joi";
|
||||||
import logger from "../config/winston.js";
|
import logger from "../config/winston.js";
|
||||||
import { BackupConfig, BackupType } from "../types/services/backupConfig.js";
|
import { type BackupConfig, BackupType } from "../types/services/backupConfig.js";
|
||||||
import backupConfigValidation from "../types/services/backupConfigValidation.js";
|
import backupConfigValidation from "../types/services/backupConfigValidation.js";
|
||||||
|
|
||||||
const backupConfigPath = "/data/backupConfigV2.json";
|
const backupConfigPath = "/data/backupConfigV2.json";
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
import fs from "fs";
|
import fs from "fs";
|
||||||
|
|
||||||
import FormData from "form-data";
|
import FormData from "form-data";
|
||||||
import got, { OptionsOfJSONResponseBody, Response } from "got";
|
import got, { type OptionsOfJSONResponseBody, type Response } from "got";
|
||||||
import stream from "stream";
|
import stream from "stream";
|
||||||
import { promisify } from "util";
|
import { promisify } from "util";
|
||||||
import logger from "../config/winston.js";
|
import logger from "../config/winston.js";
|
||||||
|
@ -3,7 +3,7 @@ import Joi from "joi";
|
|||||||
import logger from "../config/winston.js";
|
import logger from "../config/winston.js";
|
||||||
import { default_root } from "../tools/pathTools.js";
|
import { default_root } from "../tools/pathTools.js";
|
||||||
import {
|
import {
|
||||||
WebdavConfig,
|
type WebdavConfig,
|
||||||
WebdavEndpointType
|
WebdavEndpointType
|
||||||
} from "../types/services/webdavConfig.js";
|
} from "../types/services/webdavConfig.js";
|
||||||
import WebdavConfigValidation from "../types/services/webdavConfigValidation.js";
|
import WebdavConfigValidation from "../types/services/webdavConfigValidation.js";
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
import { XMLParser } from "fast-xml-parser";
|
import { XMLParser } from "fast-xml-parser";
|
||||||
import { createReadStream, statSync, unlinkSync } from "fs";
|
import { createReadStream, statSync, unlinkSync } from "fs";
|
||||||
import got, { HTTPError, Method } from "got";
|
import got, { HTTPError, type Method } from "got";
|
||||||
import { DateTime } from "luxon";
|
import { DateTime } from "luxon";
|
||||||
import logger from "../config/winston.js";
|
import logger from "../config/winston.js";
|
||||||
import messageManager from "../tools/messageManager.js";
|
import messageManager from "../tools/messageManager.js";
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
import { randomUUID } from "crypto";
|
import { randomUUID } from "crypto";
|
||||||
import { DateTime } from "luxon";
|
import { DateTime } from "luxon";
|
||||||
import { Message, MessageType } from "../types/message.js";
|
import { type Message, MessageType } from "../types/message.js";
|
||||||
|
|
||||||
const maxMessageLength = 255;
|
const maxMessageLength = 255;
|
||||||
|
|
||||||
|
@ -3,11 +3,11 @@
|
|||||||
"compilerOptions": {
|
"compilerOptions": {
|
||||||
"allowJs": true,
|
"allowJs": true,
|
||||||
"outDir": "./dist",
|
"outDir": "./dist",
|
||||||
"module": "ES2022",
|
"module": "NodeNext",
|
||||||
"moduleResolution": "NodeNext",
|
"moduleResolution": "NodeNext",
|
||||||
"target": "es6",
|
"target": "es6",
|
||||||
"sourceMap": true,
|
"sourceMap": true,
|
||||||
"importsNotUsedAsValues": "error",
|
"verbatimModuleSyntax": true,
|
||||||
"strict": true,
|
"strict": true,
|
||||||
},
|
},
|
||||||
"include": ["src/**/*"]
|
"include": ["src/**/*"]
|
||||||
|
72
nextcloud_backup/frontend/.eslintrc-auto-import.json
Normal file
72
nextcloud_backup/frontend/.eslintrc-auto-import.json
Normal file
@ -0,0 +1,72 @@
|
|||||||
|
{
|
||||||
|
"globals": {
|
||||||
|
"Component": true,
|
||||||
|
"ComponentPublicInstance": true,
|
||||||
|
"ComputedRef": true,
|
||||||
|
"EffectScope": true,
|
||||||
|
"ExtractDefaultPropTypes": true,
|
||||||
|
"ExtractPropTypes": true,
|
||||||
|
"ExtractPublicPropTypes": true,
|
||||||
|
"InjectionKey": true,
|
||||||
|
"PropType": true,
|
||||||
|
"Ref": true,
|
||||||
|
"VNode": true,
|
||||||
|
"WritableComputedRef": true,
|
||||||
|
"computed": true,
|
||||||
|
"createApp": true,
|
||||||
|
"customRef": true,
|
||||||
|
"defineAsyncComponent": true,
|
||||||
|
"defineComponent": true,
|
||||||
|
"effectScope": true,
|
||||||
|
"getCurrentInstance": true,
|
||||||
|
"getCurrentScope": true,
|
||||||
|
"h": true,
|
||||||
|
"inject": true,
|
||||||
|
"isProxy": true,
|
||||||
|
"isReactive": true,
|
||||||
|
"isReadonly": true,
|
||||||
|
"isRef": true,
|
||||||
|
"markRaw": true,
|
||||||
|
"nextTick": true,
|
||||||
|
"onActivated": true,
|
||||||
|
"onBeforeMount": true,
|
||||||
|
"onBeforeRouteLeave": true,
|
||||||
|
"onBeforeRouteUpdate": true,
|
||||||
|
"onBeforeUnmount": true,
|
||||||
|
"onBeforeUpdate": true,
|
||||||
|
"onDeactivated": true,
|
||||||
|
"onErrorCaptured": true,
|
||||||
|
"onMounted": true,
|
||||||
|
"onRenderTracked": true,
|
||||||
|
"onRenderTriggered": true,
|
||||||
|
"onScopeDispose": true,
|
||||||
|
"onServerPrefetch": true,
|
||||||
|
"onUnmounted": true,
|
||||||
|
"onUpdated": true,
|
||||||
|
"provide": true,
|
||||||
|
"reactive": true,
|
||||||
|
"readonly": true,
|
||||||
|
"ref": true,
|
||||||
|
"resolveComponent": true,
|
||||||
|
"shallowReactive": true,
|
||||||
|
"shallowReadonly": true,
|
||||||
|
"shallowRef": true,
|
||||||
|
"toRaw": true,
|
||||||
|
"toRef": true,
|
||||||
|
"toRefs": true,
|
||||||
|
"toValue": true,
|
||||||
|
"triggerRef": true,
|
||||||
|
"unref": true,
|
||||||
|
"useAttrs": true,
|
||||||
|
"useCssModule": true,
|
||||||
|
"useCssVars": true,
|
||||||
|
"useLink": true,
|
||||||
|
"useRoute": true,
|
||||||
|
"useRouter": true,
|
||||||
|
"useSlots": true,
|
||||||
|
"watch": true,
|
||||||
|
"watchEffect": true,
|
||||||
|
"watchPostEffect": true,
|
||||||
|
"watchSyncEffect": true
|
||||||
|
}
|
||||||
|
}
|
197
nextcloud_backup/frontend/auto-imports.d.ts
vendored
Normal file
197
nextcloud_backup/frontend/auto-imports.d.ts
vendored
Normal file
@ -0,0 +1,197 @@
|
|||||||
|
/* eslint-disable */
|
||||||
|
/* prettier-ignore */
|
||||||
|
// @ts-nocheck
|
||||||
|
// noinspection JSUnusedGlobalSymbols
|
||||||
|
// Generated by unplugin-auto-import
|
||||||
|
export {}
|
||||||
|
declare global {
|
||||||
|
const EffectScope: typeof import('vue')['EffectScope']
|
||||||
|
const computed: typeof import('vue')['computed']
|
||||||
|
const createApp: typeof import('vue')['createApp']
|
||||||
|
const customRef: typeof import('vue')['customRef']
|
||||||
|
const defineAsyncComponent: typeof import('vue')['defineAsyncComponent']
|
||||||
|
const defineComponent: typeof import('vue')['defineComponent']
|
||||||
|
const effectScope: typeof import('vue')['effectScope']
|
||||||
|
const getCurrentInstance: typeof import('vue')['getCurrentInstance']
|
||||||
|
const getCurrentScope: typeof import('vue')['getCurrentScope']
|
||||||
|
const h: typeof import('vue')['h']
|
||||||
|
const inject: typeof import('vue')['inject']
|
||||||
|
const isProxy: typeof import('vue')['isProxy']
|
||||||
|
const isReactive: typeof import('vue')['isReactive']
|
||||||
|
const isReadonly: typeof import('vue')['isReadonly']
|
||||||
|
const isRef: typeof import('vue')['isRef']
|
||||||
|
const markRaw: typeof import('vue')['markRaw']
|
||||||
|
const nextTick: typeof import('vue')['nextTick']
|
||||||
|
const onActivated: typeof import('vue')['onActivated']
|
||||||
|
const onBeforeMount: typeof import('vue')['onBeforeMount']
|
||||||
|
const onBeforeRouteLeave: typeof import('vue-router')['onBeforeRouteLeave']
|
||||||
|
const onBeforeRouteUpdate: typeof import('vue-router')['onBeforeRouteUpdate']
|
||||||
|
const onBeforeUnmount: typeof import('vue')['onBeforeUnmount']
|
||||||
|
const onBeforeUpdate: typeof import('vue')['onBeforeUpdate']
|
||||||
|
const onDeactivated: typeof import('vue')['onDeactivated']
|
||||||
|
const onErrorCaptured: typeof import('vue')['onErrorCaptured']
|
||||||
|
const onMounted: typeof import('vue')['onMounted']
|
||||||
|
const onRenderTracked: typeof import('vue')['onRenderTracked']
|
||||||
|
const onRenderTriggered: typeof import('vue')['onRenderTriggered']
|
||||||
|
const onScopeDispose: typeof import('vue')['onScopeDispose']
|
||||||
|
const onServerPrefetch: typeof import('vue')['onServerPrefetch']
|
||||||
|
const onUnmounted: typeof import('vue')['onUnmounted']
|
||||||
|
const onUpdated: typeof import('vue')['onUpdated']
|
||||||
|
const provide: typeof import('vue')['provide']
|
||||||
|
const reactive: typeof import('vue')['reactive']
|
||||||
|
const readonly: typeof import('vue')['readonly']
|
||||||
|
const ref: typeof import('vue')['ref']
|
||||||
|
const resolveComponent: typeof import('vue')['resolveComponent']
|
||||||
|
const shallowReactive: typeof import('vue')['shallowReactive']
|
||||||
|
const shallowReadonly: typeof import('vue')['shallowReadonly']
|
||||||
|
const shallowRef: typeof import('vue')['shallowRef']
|
||||||
|
const toRaw: typeof import('vue')['toRaw']
|
||||||
|
const toRef: typeof import('vue')['toRef']
|
||||||
|
const toRefs: typeof import('vue')['toRefs']
|
||||||
|
const toValue: typeof import('vue')['toValue']
|
||||||
|
const triggerRef: typeof import('vue')['triggerRef']
|
||||||
|
const unref: typeof import('vue')['unref']
|
||||||
|
const useAttrs: typeof import('vue')['useAttrs']
|
||||||
|
const useCssModule: typeof import('vue')['useCssModule']
|
||||||
|
const useCssVars: typeof import('vue')['useCssVars']
|
||||||
|
const useLink: typeof import('vue-router')['useLink']
|
||||||
|
const useRoute: typeof import('vue-router')['useRoute']
|
||||||
|
const useRouter: typeof import('vue-router')['useRouter']
|
||||||
|
const useSlots: typeof import('vue')['useSlots']
|
||||||
|
const watch: typeof import('vue')['watch']
|
||||||
|
const watchEffect: typeof import('vue')['watchEffect']
|
||||||
|
const watchPostEffect: typeof import('vue')['watchPostEffect']
|
||||||
|
const watchSyncEffect: typeof import('vue')['watchSyncEffect']
|
||||||
|
}
|
||||||
|
// for type re-export
|
||||||
|
declare global {
|
||||||
|
// @ts-ignore
|
||||||
|
export type { Component, ComponentPublicInstance, ComputedRef, ExtractDefaultPropTypes, ExtractPropTypes, ExtractPublicPropTypes, InjectionKey, PropType, Ref, VNode, WritableComputedRef } from 'vue'
|
||||||
|
import('vue')
|
||||||
|
}
|
||||||
|
// for vue template auto import
|
||||||
|
import { UnwrapRef } from 'vue'
|
||||||
|
declare module 'vue' {
|
||||||
|
interface GlobalComponents {}
|
||||||
|
interface ComponentCustomProperties {
|
||||||
|
readonly EffectScope: UnwrapRef<typeof import('vue')['EffectScope']>
|
||||||
|
readonly computed: UnwrapRef<typeof import('vue')['computed']>
|
||||||
|
readonly createApp: UnwrapRef<typeof import('vue')['createApp']>
|
||||||
|
readonly customRef: UnwrapRef<typeof import('vue')['customRef']>
|
||||||
|
readonly defineAsyncComponent: UnwrapRef<typeof import('vue')['defineAsyncComponent']>
|
||||||
|
readonly defineComponent: UnwrapRef<typeof import('vue')['defineComponent']>
|
||||||
|
readonly effectScope: UnwrapRef<typeof import('vue')['effectScope']>
|
||||||
|
readonly getCurrentInstance: UnwrapRef<typeof import('vue')['getCurrentInstance']>
|
||||||
|
readonly getCurrentScope: UnwrapRef<typeof import('vue')['getCurrentScope']>
|
||||||
|
readonly h: UnwrapRef<typeof import('vue')['h']>
|
||||||
|
readonly inject: UnwrapRef<typeof import('vue')['inject']>
|
||||||
|
readonly isProxy: UnwrapRef<typeof import('vue')['isProxy']>
|
||||||
|
readonly isReactive: UnwrapRef<typeof import('vue')['isReactive']>
|
||||||
|
readonly isReadonly: UnwrapRef<typeof import('vue')['isReadonly']>
|
||||||
|
readonly isRef: UnwrapRef<typeof import('vue')['isRef']>
|
||||||
|
readonly markRaw: UnwrapRef<typeof import('vue')['markRaw']>
|
||||||
|
readonly nextTick: UnwrapRef<typeof import('vue')['nextTick']>
|
||||||
|
readonly onActivated: UnwrapRef<typeof import('vue')['onActivated']>
|
||||||
|
readonly onBeforeMount: UnwrapRef<typeof import('vue')['onBeforeMount']>
|
||||||
|
readonly onBeforeRouteLeave: UnwrapRef<typeof import('vue-router')['onBeforeRouteLeave']>
|
||||||
|
readonly onBeforeRouteUpdate: UnwrapRef<typeof import('vue-router')['onBeforeRouteUpdate']>
|
||||||
|
readonly onBeforeUnmount: UnwrapRef<typeof import('vue')['onBeforeUnmount']>
|
||||||
|
readonly onBeforeUpdate: UnwrapRef<typeof import('vue')['onBeforeUpdate']>
|
||||||
|
readonly onDeactivated: UnwrapRef<typeof import('vue')['onDeactivated']>
|
||||||
|
readonly onErrorCaptured: UnwrapRef<typeof import('vue')['onErrorCaptured']>
|
||||||
|
readonly onMounted: UnwrapRef<typeof import('vue')['onMounted']>
|
||||||
|
readonly onRenderTracked: UnwrapRef<typeof import('vue')['onRenderTracked']>
|
||||||
|
readonly onRenderTriggered: UnwrapRef<typeof import('vue')['onRenderTriggered']>
|
||||||
|
readonly onScopeDispose: UnwrapRef<typeof import('vue')['onScopeDispose']>
|
||||||
|
readonly onServerPrefetch: UnwrapRef<typeof import('vue')['onServerPrefetch']>
|
||||||
|
readonly onUnmounted: UnwrapRef<typeof import('vue')['onUnmounted']>
|
||||||
|
readonly onUpdated: UnwrapRef<typeof import('vue')['onUpdated']>
|
||||||
|
readonly provide: UnwrapRef<typeof import('vue')['provide']>
|
||||||
|
readonly reactive: UnwrapRef<typeof import('vue')['reactive']>
|
||||||
|
readonly readonly: UnwrapRef<typeof import('vue')['readonly']>
|
||||||
|
readonly ref: UnwrapRef<typeof import('vue')['ref']>
|
||||||
|
readonly resolveComponent: UnwrapRef<typeof import('vue')['resolveComponent']>
|
||||||
|
readonly shallowReactive: UnwrapRef<typeof import('vue')['shallowReactive']>
|
||||||
|
readonly shallowReadonly: UnwrapRef<typeof import('vue')['shallowReadonly']>
|
||||||
|
readonly shallowRef: UnwrapRef<typeof import('vue')['shallowRef']>
|
||||||
|
readonly toRaw: UnwrapRef<typeof import('vue')['toRaw']>
|
||||||
|
readonly toRef: UnwrapRef<typeof import('vue')['toRef']>
|
||||||
|
readonly toRefs: UnwrapRef<typeof import('vue')['toRefs']>
|
||||||
|
readonly toValue: UnwrapRef<typeof import('vue')['toValue']>
|
||||||
|
readonly triggerRef: UnwrapRef<typeof import('vue')['triggerRef']>
|
||||||
|
readonly unref: UnwrapRef<typeof import('vue')['unref']>
|
||||||
|
readonly useAttrs: UnwrapRef<typeof import('vue')['useAttrs']>
|
||||||
|
readonly useCssModule: UnwrapRef<typeof import('vue')['useCssModule']>
|
||||||
|
readonly useCssVars: UnwrapRef<typeof import('vue')['useCssVars']>
|
||||||
|
readonly useLink: UnwrapRef<typeof import('vue-router')['useLink']>
|
||||||
|
readonly useRoute: UnwrapRef<typeof import('vue-router')['useRoute']>
|
||||||
|
readonly useRouter: UnwrapRef<typeof import('vue-router')['useRouter']>
|
||||||
|
readonly useSlots: UnwrapRef<typeof import('vue')['useSlots']>
|
||||||
|
readonly watch: UnwrapRef<typeof import('vue')['watch']>
|
||||||
|
readonly watchEffect: UnwrapRef<typeof import('vue')['watchEffect']>
|
||||||
|
readonly watchPostEffect: UnwrapRef<typeof import('vue')['watchPostEffect']>
|
||||||
|
readonly watchSyncEffect: UnwrapRef<typeof import('vue')['watchSyncEffect']>
|
||||||
|
}
|
||||||
|
}
|
||||||
|
declare module '@vue/runtime-core' {
|
||||||
|
interface GlobalComponents {}
|
||||||
|
interface ComponentCustomProperties {
|
||||||
|
readonly EffectScope: UnwrapRef<typeof import('vue')['EffectScope']>
|
||||||
|
readonly computed: UnwrapRef<typeof import('vue')['computed']>
|
||||||
|
readonly createApp: UnwrapRef<typeof import('vue')['createApp']>
|
||||||
|
readonly customRef: UnwrapRef<typeof import('vue')['customRef']>
|
||||||
|
readonly defineAsyncComponent: UnwrapRef<typeof import('vue')['defineAsyncComponent']>
|
||||||
|
readonly defineComponent: UnwrapRef<typeof import('vue')['defineComponent']>
|
||||||
|
readonly effectScope: UnwrapRef<typeof import('vue')['effectScope']>
|
||||||
|
readonly getCurrentInstance: UnwrapRef<typeof import('vue')['getCurrentInstance']>
|
||||||
|
readonly getCurrentScope: UnwrapRef<typeof import('vue')['getCurrentScope']>
|
||||||
|
readonly h: UnwrapRef<typeof import('vue')['h']>
|
||||||
|
readonly inject: UnwrapRef<typeof import('vue')['inject']>
|
||||||
|
readonly isProxy: UnwrapRef<typeof import('vue')['isProxy']>
|
||||||
|
readonly isReactive: UnwrapRef<typeof import('vue')['isReactive']>
|
||||||
|
readonly isReadonly: UnwrapRef<typeof import('vue')['isReadonly']>
|
||||||
|
readonly isRef: UnwrapRef<typeof import('vue')['isRef']>
|
||||||
|
readonly markRaw: UnwrapRef<typeof import('vue')['markRaw']>
|
||||||
|
readonly nextTick: UnwrapRef<typeof import('vue')['nextTick']>
|
||||||
|
readonly onActivated: UnwrapRef<typeof import('vue')['onActivated']>
|
||||||
|
readonly onBeforeMount: UnwrapRef<typeof import('vue')['onBeforeMount']>
|
||||||
|
readonly onBeforeRouteLeave: UnwrapRef<typeof import('vue-router')['onBeforeRouteLeave']>
|
||||||
|
readonly onBeforeRouteUpdate: UnwrapRef<typeof import('vue-router')['onBeforeRouteUpdate']>
|
||||||
|
readonly onBeforeUnmount: UnwrapRef<typeof import('vue')['onBeforeUnmount']>
|
||||||
|
readonly onBeforeUpdate: UnwrapRef<typeof import('vue')['onBeforeUpdate']>
|
||||||
|
readonly onDeactivated: UnwrapRef<typeof import('vue')['onDeactivated']>
|
||||||
|
readonly onErrorCaptured: UnwrapRef<typeof import('vue')['onErrorCaptured']>
|
||||||
|
readonly onMounted: UnwrapRef<typeof import('vue')['onMounted']>
|
||||||
|
readonly onRenderTracked: UnwrapRef<typeof import('vue')['onRenderTracked']>
|
||||||
|
readonly onRenderTriggered: UnwrapRef<typeof import('vue')['onRenderTriggered']>
|
||||||
|
readonly onScopeDispose: UnwrapRef<typeof import('vue')['onScopeDispose']>
|
||||||
|
readonly onServerPrefetch: UnwrapRef<typeof import('vue')['onServerPrefetch']>
|
||||||
|
readonly onUnmounted: UnwrapRef<typeof import('vue')['onUnmounted']>
|
||||||
|
readonly onUpdated: UnwrapRef<typeof import('vue')['onUpdated']>
|
||||||
|
readonly provide: UnwrapRef<typeof import('vue')['provide']>
|
||||||
|
readonly reactive: UnwrapRef<typeof import('vue')['reactive']>
|
||||||
|
readonly readonly: UnwrapRef<typeof import('vue')['readonly']>
|
||||||
|
readonly ref: UnwrapRef<typeof import('vue')['ref']>
|
||||||
|
readonly resolveComponent: UnwrapRef<typeof import('vue')['resolveComponent']>
|
||||||
|
readonly shallowReactive: UnwrapRef<typeof import('vue')['shallowReactive']>
|
||||||
|
readonly shallowReadonly: UnwrapRef<typeof import('vue')['shallowReadonly']>
|
||||||
|
readonly shallowRef: UnwrapRef<typeof import('vue')['shallowRef']>
|
||||||
|
readonly toRaw: UnwrapRef<typeof import('vue')['toRaw']>
|
||||||
|
readonly toRef: UnwrapRef<typeof import('vue')['toRef']>
|
||||||
|
readonly toRefs: UnwrapRef<typeof import('vue')['toRefs']>
|
||||||
|
readonly toValue: UnwrapRef<typeof import('vue')['toValue']>
|
||||||
|
readonly triggerRef: UnwrapRef<typeof import('vue')['triggerRef']>
|
||||||
|
readonly unref: UnwrapRef<typeof import('vue')['unref']>
|
||||||
|
readonly useAttrs: UnwrapRef<typeof import('vue')['useAttrs']>
|
||||||
|
readonly useCssModule: UnwrapRef<typeof import('vue')['useCssModule']>
|
||||||
|
readonly useCssVars: UnwrapRef<typeof import('vue')['useCssVars']>
|
||||||
|
readonly useLink: UnwrapRef<typeof import('vue-router')['useLink']>
|
||||||
|
readonly useRoute: UnwrapRef<typeof import('vue-router')['useRoute']>
|
||||||
|
readonly useRouter: UnwrapRef<typeof import('vue-router')['useRouter']>
|
||||||
|
readonly useSlots: UnwrapRef<typeof import('vue')['useSlots']>
|
||||||
|
readonly watch: UnwrapRef<typeof import('vue')['watch']>
|
||||||
|
readonly watchEffect: UnwrapRef<typeof import('vue')['watchEffect']>
|
||||||
|
readonly watchPostEffect: UnwrapRef<typeof import('vue')['watchPostEffect']>
|
||||||
|
readonly watchSyncEffect: UnwrapRef<typeof import('vue')['watchSyncEffect']>
|
||||||
|
}
|
||||||
|
}
|
32
nextcloud_backup/frontend/components.d.ts
vendored
Normal file
32
nextcloud_backup/frontend/components.d.ts
vendored
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
/* eslint-disable */
|
||||||
|
/* prettier-ignore */
|
||||||
|
// @ts-nocheck
|
||||||
|
// Generated by unplugin-vue-components
|
||||||
|
// Read more: https://github.com/vuejs/core/pull/3399
|
||||||
|
export {}
|
||||||
|
|
||||||
|
declare module 'vue' {
|
||||||
|
export interface GlobalComponents {
|
||||||
|
AlertManager: typeof import('./src/components/AlertManager.vue')['default']
|
||||||
|
BackupConfigAddon: typeof import('./src/components/settings/BackupConfig/BackupConfigAddon.vue')['default']
|
||||||
|
BackupConfigAutoBackup: typeof import('./src/components/settings/BackupConfig/BackupConfigAutoBackup.vue')['default']
|
||||||
|
BackupConfigAutoClean: typeof import('./src/components/settings/BackupConfig/BackupConfigAutoClean.vue')['default']
|
||||||
|
BackupConfigAutoStop: typeof import('./src/components/settings/BackupConfig/BackupConfigAutoStop.vue')['default']
|
||||||
|
BackupConfigFolder: typeof import('./src/components/settings/BackupConfig/BackupConfigFolder.vue')['default']
|
||||||
|
BackupConfigForm: typeof import('./src/components/settings/BackupConfigForm.vue')['default']
|
||||||
|
BackupConfigMenu: typeof import('./src/components/settings/BackupConfigMenu.vue')['default']
|
||||||
|
BackupConfigSecurity: typeof import('./src/components/settings/BackupConfig/BackupConfigSecurity.vue')['default']
|
||||||
|
CloudDeleteDialog: typeof import('./src/components/cloud/CloudDeleteDialog.vue')['default']
|
||||||
|
CloudList: typeof import('./src/components/cloud/CloudList.vue')['default']
|
||||||
|
CloudListItem: typeof import('./src/components/cloud/CloudListItem.vue')['default']
|
||||||
|
HaList: typeof import('./src/components/homeAssistant/HaList.vue')['default']
|
||||||
|
HaListItem: typeof import('./src/components/homeAssistant/HaListItem.vue')['default']
|
||||||
|
HaListItemContent: typeof import('./src/components/homeAssistant/HaListItemContent.vue')['default']
|
||||||
|
MessageBar: typeof import('./src/components/MessageBar.vue')['default']
|
||||||
|
NavbarComponent: typeof import('./src/components/NavbarComponent.vue')['default']
|
||||||
|
RouterLink: typeof import('vue-router')['RouterLink']
|
||||||
|
RouterView: typeof import('vue-router')['RouterView']
|
||||||
|
WebdavConfigForm: typeof import('./src/components/settings/WebdavConfigForm.vue')['default']
|
||||||
|
WebdavConfigMenu: typeof import('./src/components/settings/WebdavConfigMenu.vue')['default']
|
||||||
|
}
|
||||||
|
}
|
@ -2,45 +2,48 @@
|
|||||||
"name": "frontend",
|
"name": "frontend",
|
||||||
"version": "0.0.0",
|
"version": "0.0.0",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"serve": "vite preview",
|
"dev": "cross-env NODE_OPTIONS='--no-warnings' vite",
|
||||||
"build": "vite build",
|
"build": "vue-tsc --noEmit && vite build",
|
||||||
"lint": "eslint . --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --fix --ignore-path .gitignore",
|
"preview": "vite preview",
|
||||||
"build-only": "vite build",
|
"lint": "eslint . --fix --ignore-path .gitignore",
|
||||||
"dev": "vite",
|
|
||||||
"preview": "vite preview --port 4173",
|
|
||||||
"type-check": "vue-tsc --noEmit"
|
"type-check": "vue-tsc --noEmit"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@mdi/font": "7.1.96",
|
"@mdi/font": "7.0.96",
|
||||||
"@mdi/js": "^7.1.96",
|
"core-js": "^3.34.0",
|
||||||
"@types/luxon": "^3.2.0",
|
"ky": "^1.2.0",
|
||||||
"@types/uuid": "^9.0.0",
|
"luxon": "^3.4.4",
|
||||||
"ky": "^0.31.4",
|
"pretty-bytes": "^6.1.1",
|
||||||
"luxon": "^3.2.1",
|
|
||||||
"pinia": "^2.0.28",
|
|
||||||
"pretty-bytes": "^6.0.0",
|
|
||||||
"roboto-fontface": "*",
|
"roboto-fontface": "*",
|
||||||
"uuid": "^9.0.0",
|
"uuid": "^9.0.1",
|
||||||
"vue": "^3.2.45",
|
"vue": "^3.3.0",
|
||||||
"vuetify": "3.1.3",
|
"vuetify": "^3.0.0"
|
||||||
"webfontloader": "^1.6.28"
|
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@rushstack/eslint-patch": "^1.2.0",
|
"@babel/types": "^7.23.0",
|
||||||
"@types/node": "^16.18.11",
|
"@types/node": "^20.10.0",
|
||||||
"@types/webfontloader": "^1.6.35",
|
"@vitejs/plugin-vue": "^4.5.0",
|
||||||
"@vitejs/plugin-vue": "^3.2.0",
|
"@vue/eslint-config-typescript": "^12.0.0",
|
||||||
"@vue/eslint-config-prettier": "^7.0.0",
|
"cross-env": "^7.0.3",
|
||||||
"@vue/eslint-config-typescript": "^11.0.2",
|
"eslint": "^8.56.0",
|
||||||
"@vue/tsconfig": "^0.1.3",
|
"eslint-config-standard": "^17.1.0",
|
||||||
"eslint": "^8.31.0",
|
"eslint-plugin-import": "^2.29.0",
|
||||||
"eslint-plugin-vue": "^9.8.0",
|
"eslint-plugin-n": "^16.4.0",
|
||||||
"npm-run-all": "^4.1.5",
|
"eslint-plugin-node": "^11.1.0",
|
||||||
"prettier": "^2.8.2",
|
"eslint-plugin-promise": "^6.1.1",
|
||||||
"typescript": "~4.7.4",
|
"eslint-plugin-vue": "^9.19.0",
|
||||||
"vite": "^3.2.5",
|
"pinia": "^2.1.0",
|
||||||
"vite-plugin-vuetify": "^1.0.1",
|
"sass": "^1.69.0",
|
||||||
"vue-tsc": "1.0.7"
|
"typescript": "^5.3.0",
|
||||||
|
"unplugin-auto-import": "^0.17.3",
|
||||||
|
"unplugin-fonts": "^1.1.0",
|
||||||
|
"unplugin-vue-components": "^0.26.0",
|
||||||
|
"unplugin-vue-router": "^0.7.0",
|
||||||
|
"vite": "^5.0.0",
|
||||||
|
"vite-plugin-vue-layouts": "^0.10.0",
|
||||||
|
"vite-plugin-vuetify": "^2.0.0",
|
||||||
|
"vue-router": "^4.2.0",
|
||||||
|
"vue-tsc": "^1.8.0"
|
||||||
},
|
},
|
||||||
"packageManager": "pnpm@7.12.1"
|
"packageManager": "pnpm@8.15.3"
|
||||||
}
|
}
|
||||||
|
3226
nextcloud_backup/frontend/pnpm-lock.yaml
generated
3226
nextcloud_backup/frontend/pnpm-lock.yaml
generated
File diff suppressed because it is too large
Load Diff
@ -36,7 +36,7 @@
|
|||||||
</v-fade-transition>
|
</v-fade-transition>
|
||||||
</template>
|
</template>
|
||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import { useAlertStore } from "@/stores/alert";
|
import { useAlertStore } from "@/store/alert";
|
||||||
import { storeToRefs } from "pinia";
|
import { storeToRefs } from "pinia";
|
||||||
import { computed } from "vue";
|
import { computed } from "vue";
|
||||||
|
|
||||||
@ -54,3 +54,4 @@ const alertVisible = computed(() => alertList.value.length > 0);
|
|||||||
z-index: 99999;
|
z-index: 99999;
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@/store/alert
|
@ -72,7 +72,7 @@
|
|||||||
|
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import * as messageService from "@/services/messageService";
|
import * as messageService from "@/services/messageService";
|
||||||
import { useMessageStore } from "@/stores/message";
|
import { useMessageStore } from "@/store/message";
|
||||||
import { MessageType } from "@/types/messages";
|
import { MessageType } from "@/types/messages";
|
||||||
import { DateTime } from "luxon";
|
import { DateTime } from "luxon";
|
||||||
import { storeToRefs } from "pinia";
|
import { storeToRefs } from "pinia";
|
||||||
@ -157,3 +157,4 @@ onBeforeUnmount(() => {
|
|||||||
clearInterval(interval);
|
clearInterval(interval);
|
||||||
});
|
});
|
||||||
</script>
|
</script>
|
||||||
|
@/store/message
|
@ -42,8 +42,8 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { useDialogStatusStore } from "@/stores/dialogStatus";
|
import { useDialogStatusStore } from "@/store/dialogStatus";
|
||||||
import { useMessageStore } from "@/stores/message";
|
import { useMessageStore } from "@/store/message";
|
||||||
import { storeToRefs } from "pinia";
|
import { storeToRefs } from "pinia";
|
||||||
import logoUrl from "../assets/logo.svg";
|
import logoUrl from "../assets/logo.svg";
|
||||||
|
|
||||||
@ -86,3 +86,4 @@ const { haveUnreadMessages, countUnreadMessages } = storeToRefs(messagesStore);
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
</style>
|
</style>
|
||||||
|
@/store/dialogStatus@/store/message
|
@ -25,7 +25,7 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { useBackupConfigStore } from "@/stores/backupConfig";
|
import { useBackupConfigStore } from "@/store/backupConfig";
|
||||||
import { storeToRefs } from "pinia";
|
import { storeToRefs } from "pinia";
|
||||||
import { watch } from "vue";
|
import { watch } from "vue";
|
||||||
|
|
||||||
@ -50,3 +50,4 @@ function manageInverted() {
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped></style>
|
<style scoped></style>
|
||||||
|
@/store/backupConfig
|
@ -175,7 +175,7 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { useBackupConfigStore } from "@/stores/backupConfig";
|
import { useBackupConfigStore } from "@/store/backupConfig";
|
||||||
import {
|
import {
|
||||||
CronMode,
|
CronMode,
|
||||||
CronModeFriendly,
|
CronModeFriendly,
|
||||||
@ -198,3 +198,4 @@ const { data } = storeToRefs(backupConfigStore);
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped></style>
|
<style scoped></style>
|
||||||
|
@/store/backupConfig
|
@ -76,10 +76,11 @@
|
|||||||
</v-card>
|
</v-card>
|
||||||
</template>
|
</template>
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { useBackupConfigStore } from "@/stores/backupConfig";
|
import { useBackupConfigStore } from "@/store/backupConfig";
|
||||||
import { storeToRefs } from "pinia";
|
import { storeToRefs } from "pinia";
|
||||||
|
|
||||||
defineProps<{ loading: boolean }>();
|
defineProps<{ loading: boolean }>();
|
||||||
const backupConfigStore = useBackupConfigStore();
|
const backupConfigStore = useBackupConfigStore();
|
||||||
const { data } = storeToRefs(backupConfigStore);
|
const { data } = storeToRefs(backupConfigStore);
|
||||||
</script>
|
</script>
|
||||||
|
@/store/backupConfig
|
@ -25,10 +25,11 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { useBackupConfigStore } from "@/stores/backupConfig";
|
import { useBackupConfigStore } from "@/store/backupConfig";
|
||||||
import { storeToRefs } from "pinia";
|
import { storeToRefs } from "pinia";
|
||||||
|
|
||||||
defineProps<{ loading: boolean }>();
|
defineProps<{ loading: boolean }>();
|
||||||
const backupConfigStore = useBackupConfigStore();
|
const backupConfigStore = useBackupConfigStore();
|
||||||
const { data, addons } = storeToRefs(backupConfigStore);
|
const { data, addons } = storeToRefs(backupConfigStore);
|
||||||
</script>
|
</script>
|
||||||
|
@/store/backupConfig
|
@ -25,7 +25,7 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { useBackupConfigStore } from "@/stores/backupConfig";
|
import { useBackupConfigStore } from "@/store/backupConfig";
|
||||||
import { storeToRefs } from "pinia";
|
import { storeToRefs } from "pinia";
|
||||||
import { watch } from "vue";
|
import { watch } from "vue";
|
||||||
|
|
||||||
@ -51,3 +51,4 @@ function manageInverted() {
|
|||||||
</script>
|
</script>
|
||||||
|
|
||||||
<style scoped></style>
|
<style scoped></style>
|
||||||
|
@/store/backupConfig
|
@ -47,10 +47,11 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { useBackupConfigStore } from "@/stores/backupConfig";
|
import { useBackupConfigStore } from "@/store/backupConfig";
|
||||||
import { storeToRefs } from "pinia";
|
import { storeToRefs } from "pinia";
|
||||||
|
|
||||||
defineProps<{ loading: boolean }>();
|
defineProps<{ loading: boolean }>();
|
||||||
const backupConfigStore = useBackupConfigStore();
|
const backupConfigStore = useBackupConfigStore();
|
||||||
const { data } = storeToRefs(backupConfigStore);
|
const { data } = storeToRefs(backupConfigStore);
|
||||||
</script>
|
</script>
|
||||||
|
@/store/backupConfig
|
@ -18,8 +18,6 @@
|
|||||||
<v-btn
|
<v-btn
|
||||||
color="success"
|
color="success"
|
||||||
variant="outlined"
|
variant="outlined"
|
||||||
class="mt-n2"
|
|
||||||
height="auto"
|
|
||||||
href="https://github.com/Sebclem/hassio-nextcloud-backup/blob/master/nextcloud_backup/naming_template.md"
|
href="https://github.com/Sebclem/hassio-nextcloud-backup/blob/master/nextcloud_backup/naming_template.md"
|
||||||
target="_blank"
|
target="_blank"
|
||||||
>
|
>
|
||||||
@ -93,7 +91,7 @@ import { ref } from "vue";
|
|||||||
|
|
||||||
import { useConfigForm } from "@/composable/ConfigForm";
|
import { useConfigForm } from "@/composable/ConfigForm";
|
||||||
import { saveBackupConfig } from "@/services/configService";
|
import { saveBackupConfig } from "@/services/configService";
|
||||||
import { useBackupConfigStore } from "@/stores/backupConfig";
|
import { useBackupConfigStore } from "@/store/backupConfig";
|
||||||
import { storeToRefs } from "pinia";
|
import { storeToRefs } from "pinia";
|
||||||
import BackupConfigAddon from "./BackupConfig/BackupConfigAddon.vue";
|
import BackupConfigAddon from "./BackupConfig/BackupConfigAddon.vue";
|
||||||
import BackupConfigAutoBackup from "./BackupConfig/BackupConfigAutoBackup.vue";
|
import BackupConfigAutoBackup from "./BackupConfig/BackupConfigAutoBackup.vue";
|
||||||
@ -131,3 +129,4 @@ const { save, loading } = useConfigForm(
|
|||||||
);
|
);
|
||||||
defineExpose({ save });
|
defineExpose({ save });
|
||||||
</script>
|
</script>
|
||||||
|
@/store/backupConfig
|
||||||
|
@ -35,11 +35,11 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { useDialogStatusStore } from "@/stores/dialogStatus";
|
import { useDialogStatusStore } from "@/store/dialogStatus";
|
||||||
import { computed, ref } from "vue";
|
import { computed, ref } from "vue";
|
||||||
import { useMenuSize } from "@/composable/menuSize";
|
import { useMenuSize } from "@/composable/menuSize";
|
||||||
import BackupConfigForm from "./BackupConfigForm.vue";
|
import BackupConfigForm from "./BackupConfigForm.vue";
|
||||||
import { useAlertStore } from "@/stores/alert";
|
import { useAlertStore } from "@/store/alert";
|
||||||
|
|
||||||
const alertStore = useAlertStore();
|
const alertStore = useAlertStore();
|
||||||
|
|
||||||
@ -69,3 +69,4 @@ function saved() {
|
|||||||
alertStore.add("success", "Backup settings saved !");
|
alertStore.add("success", "Backup settings saved !");
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
@/store/dialogStatus@/store/alert
|
@ -36,8 +36,8 @@
|
|||||||
|
|
||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { useMenuSize } from "@/composable/menuSize";
|
import { useMenuSize } from "@/composable/menuSize";
|
||||||
import { useAlertStore } from "@/stores/alert";
|
import { useAlertStore } from "@/store/alert";
|
||||||
import { useDialogStatusStore } from "@/stores/dialogStatus";
|
import { useDialogStatusStore } from "@/store/dialogStatus";
|
||||||
import { computed, ref } from "vue";
|
import { computed, ref } from "vue";
|
||||||
import WebdavSettingsForm from "./WebdavConfigForm.vue";
|
import WebdavSettingsForm from "./WebdavConfigForm.vue";
|
||||||
|
|
||||||
@ -69,3 +69,4 @@ function saved() {
|
|||||||
alertStore.add("success", "Cloud settings saved !");
|
alertStore.add("success", "Cloud settings saved !");
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
@/store/alert@/store/dialogStatus
|
@ -1,9 +1,9 @@
|
|||||||
import { createPinia } from "pinia";
|
|
||||||
import { createApp } from "vue";
|
import { createApp } from "vue";
|
||||||
import App from "./App.vue";
|
import App from "./App.vue";
|
||||||
import vuetify from "./plugins/vuetify";
|
import { registerPlugins } from "@/plugins";
|
||||||
import { loadFonts } from "./plugins/webfontloader";
|
|
||||||
|
|
||||||
loadFonts();
|
const app = createApp(App);
|
||||||
const pinia = createPinia();
|
|
||||||
createApp(App).use(vuetify).use(pinia).mount("#app");
|
registerPlugins(app);
|
||||||
|
|
||||||
|
app.mount("#app");
|
||||||
|
20
nextcloud_backup/frontend/src/plugins/index.ts
Normal file
20
nextcloud_backup/frontend/src/plugins/index.ts
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
/**
|
||||||
|
* plugins/index.ts
|
||||||
|
*
|
||||||
|
* Automatically included in `./src/main.ts`
|
||||||
|
*/
|
||||||
|
|
||||||
|
// Plugins
|
||||||
|
import vuetify from "./vuetify";
|
||||||
|
import pinia from "../store";
|
||||||
|
// import router from '../router'
|
||||||
|
|
||||||
|
// Types
|
||||||
|
import type { App } from "vue";
|
||||||
|
|
||||||
|
export function registerPlugins(app: App) {
|
||||||
|
app
|
||||||
|
.use(vuetify)
|
||||||
|
// .use(router)
|
||||||
|
.use(pinia);
|
||||||
|
}
|
@ -1,15 +0,0 @@
|
|||||||
/**
|
|
||||||
* plugins/webfontloader.js
|
|
||||||
*
|
|
||||||
* webfontloader documentation: https://github.com/typekit/webfontloader
|
|
||||||
*/
|
|
||||||
|
|
||||||
export async function loadFonts () {
|
|
||||||
const webFontLoader = await import(/* webpackChunkName: "webfontloader" */'webfontloader')
|
|
||||||
|
|
||||||
webFontLoader.load({
|
|
||||||
google: {
|
|
||||||
families: ['Roboto:100,300,400,500,700,900&display=swap'],
|
|
||||||
},
|
|
||||||
})
|
|
||||||
}
|
|
4
nextcloud_backup/frontend/src/store/index.ts
Normal file
4
nextcloud_backup/frontend/src/store/index.ts
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
// Utilities
|
||||||
|
import { createPinia } from "pinia";
|
||||||
|
|
||||||
|
export default createPinia();
|
10
nextcloud_backup/frontend/src/styles/settings.scss
Normal file
10
nextcloud_backup/frontend/src/styles/settings.scss
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
/**
|
||||||
|
* src/styles/settings.scss
|
||||||
|
*
|
||||||
|
* Configures SASS variables and Vuetify overwrites
|
||||||
|
*/
|
||||||
|
|
||||||
|
// https://vuetifyjs.com/features/sass-variables/`
|
||||||
|
// @use 'vuetify/settings' with (
|
||||||
|
// $color-pack: false
|
||||||
|
// );
|
@ -1,8 +0,0 @@
|
|||||||
{
|
|
||||||
"extends": "@vue/tsconfig/tsconfig.node.json",
|
|
||||||
"include": ["vite.config.*", "vitest.config.*", "cypress.config.*"],
|
|
||||||
"compilerOptions": {
|
|
||||||
"composite": true,
|
|
||||||
"types": ["node", "vuetify"]
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,17 +1,25 @@
|
|||||||
{
|
{
|
||||||
"extends": "@vue/tsconfig/tsconfig.web.json",
|
|
||||||
"include": ["env.d.ts", "src/**/*", "src/**/*.vue"],
|
|
||||||
"compilerOptions": {
|
"compilerOptions": {
|
||||||
"baseUrl": ".",
|
"baseUrl": ".",
|
||||||
|
"target": "ESNext",
|
||||||
|
"useDefineForClassFields": true,
|
||||||
|
"module": "ESNext",
|
||||||
|
"moduleResolution": "Node",
|
||||||
|
"strict": true,
|
||||||
|
"jsx": "preserve",
|
||||||
|
"resolveJsonModule": true,
|
||||||
|
"isolatedModules": true,
|
||||||
|
"esModuleInterop": true,
|
||||||
|
"lib": ["ESNext", "DOM"],
|
||||||
|
"skipLibCheck": true,
|
||||||
|
"noEmit": true,
|
||||||
"paths": {
|
"paths": {
|
||||||
"@/*": ["./src/*"]
|
"@/*": [
|
||||||
},
|
"src/*"
|
||||||
"lib": ["ES2017", "DOM", "DOM.Iterable"]
|
]
|
||||||
|
}
|
||||||
},
|
},
|
||||||
|
"include": ["src/**/*.ts", "src/**/*.d.ts", "src/**/*.tsx", "src/**/*.vue"],
|
||||||
"references": [
|
"references": [{ "path": "./tsconfig.node.json" }],
|
||||||
{
|
"exclude": ["node_modules"]
|
||||||
"path": "./tsconfig.config.json"
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
}
|
||||||
|
9
nextcloud_backup/frontend/tsconfig.node.json
Normal file
9
nextcloud_backup/frontend/tsconfig.node.json
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
{
|
||||||
|
"compilerOptions": {
|
||||||
|
"composite": true,
|
||||||
|
"module": "ESNext",
|
||||||
|
"moduleResolution": "Node",
|
||||||
|
"allowSyntheticDefaultImports": true
|
||||||
|
},
|
||||||
|
"include": ["vite.config.mts"]
|
||||||
|
}
|
140
nextcloud_backup/frontend/typed-router.d.ts
vendored
Normal file
140
nextcloud_backup/frontend/typed-router.d.ts
vendored
Normal file
@ -0,0 +1,140 @@
|
|||||||
|
/* eslint-disable */
|
||||||
|
/* prettier-ignore */
|
||||||
|
// @ts-nocheck
|
||||||
|
// Generated by unplugin-vue-router. ‼️ DO NOT MODIFY THIS FILE ‼️
|
||||||
|
// It's recommended to commit this file.
|
||||||
|
// Make sure to add this file to your tsconfig.json file as an "includes" or "files" entry.
|
||||||
|
|
||||||
|
/// <reference types="unplugin-vue-router/client" />
|
||||||
|
|
||||||
|
import type {
|
||||||
|
// type safe route locations
|
||||||
|
RouteLocationTypedList,
|
||||||
|
RouteLocationResolvedTypedList,
|
||||||
|
RouteLocationNormalizedTypedList,
|
||||||
|
RouteLocationNormalizedLoadedTypedList,
|
||||||
|
RouteLocationAsString,
|
||||||
|
RouteLocationAsRelativeTypedList,
|
||||||
|
RouteLocationAsPathTypedList,
|
||||||
|
|
||||||
|
// helper types
|
||||||
|
// route definitions
|
||||||
|
RouteRecordInfo,
|
||||||
|
ParamValue,
|
||||||
|
ParamValueOneOrMore,
|
||||||
|
ParamValueZeroOrMore,
|
||||||
|
ParamValueZeroOrOne,
|
||||||
|
|
||||||
|
// vue-router extensions
|
||||||
|
_RouterTyped,
|
||||||
|
RouterLinkTyped,
|
||||||
|
RouterLinkPropsTyped,
|
||||||
|
NavigationGuard,
|
||||||
|
UseLinkFnTyped,
|
||||||
|
|
||||||
|
// data fetching
|
||||||
|
_DataLoader,
|
||||||
|
_DefineLoaderOptions,
|
||||||
|
} from 'unplugin-vue-router/types'
|
||||||
|
|
||||||
|
declare module 'vue-router/auto/routes' {
|
||||||
|
export interface RouteNamedMap {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
declare module 'vue-router/auto' {
|
||||||
|
import type { RouteNamedMap } from 'vue-router/auto/routes'
|
||||||
|
|
||||||
|
export type RouterTyped = _RouterTyped<RouteNamedMap>
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Type safe version of `RouteLocationNormalized` (the type of `to` and `from` in navigation guards).
|
||||||
|
* Allows passing the name of the route to be passed as a generic.
|
||||||
|
*/
|
||||||
|
export type RouteLocationNormalized<Name extends keyof RouteNamedMap = keyof RouteNamedMap> = RouteLocationNormalizedTypedList<RouteNamedMap>[Name]
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Type safe version of `RouteLocationNormalizedLoaded` (the return type of `useRoute()`).
|
||||||
|
* Allows passing the name of the route to be passed as a generic.
|
||||||
|
*/
|
||||||
|
export type RouteLocationNormalizedLoaded<Name extends keyof RouteNamedMap = keyof RouteNamedMap> = RouteLocationNormalizedLoadedTypedList<RouteNamedMap>[Name]
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Type safe version of `RouteLocationResolved` (the returned route of `router.resolve()`).
|
||||||
|
* Allows passing the name of the route to be passed as a generic.
|
||||||
|
*/
|
||||||
|
export type RouteLocationResolved<Name extends keyof RouteNamedMap = keyof RouteNamedMap> = RouteLocationResolvedTypedList<RouteNamedMap>[Name]
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Type safe version of `RouteLocation` . Allows passing the name of the route to be passed as a generic.
|
||||||
|
*/
|
||||||
|
export type RouteLocation<Name extends keyof RouteNamedMap = keyof RouteNamedMap> = RouteLocationTypedList<RouteNamedMap>[Name]
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Type safe version of `RouteLocationRaw` . Allows passing the name of the route to be passed as a generic.
|
||||||
|
*/
|
||||||
|
export type RouteLocationRaw<Name extends keyof RouteNamedMap = keyof RouteNamedMap> =
|
||||||
|
| RouteLocationAsString<RouteNamedMap>
|
||||||
|
| RouteLocationAsRelativeTypedList<RouteNamedMap>[Name]
|
||||||
|
| RouteLocationAsPathTypedList<RouteNamedMap>[Name]
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Generate a type safe params for a route location. Requires the name of the route to be passed as a generic.
|
||||||
|
*/
|
||||||
|
export type RouteParams<Name extends keyof RouteNamedMap> = RouteNamedMap[Name]['params']
|
||||||
|
/**
|
||||||
|
* Generate a type safe raw params for a route location. Requires the name of the route to be passed as a generic.
|
||||||
|
*/
|
||||||
|
export type RouteParamsRaw<Name extends keyof RouteNamedMap> = RouteNamedMap[Name]['paramsRaw']
|
||||||
|
|
||||||
|
export function useRouter(): RouterTyped
|
||||||
|
export function useRoute<Name extends keyof RouteNamedMap = keyof RouteNamedMap>(name?: Name): RouteLocationNormalizedLoadedTypedList<RouteNamedMap>[Name]
|
||||||
|
|
||||||
|
export const useLink: UseLinkFnTyped<RouteNamedMap>
|
||||||
|
|
||||||
|
export function onBeforeRouteLeave(guard: NavigationGuard<RouteNamedMap>): void
|
||||||
|
export function onBeforeRouteUpdate(guard: NavigationGuard<RouteNamedMap>): void
|
||||||
|
|
||||||
|
export const RouterLink: RouterLinkTyped<RouteNamedMap>
|
||||||
|
export const RouterLinkProps: RouterLinkPropsTyped<RouteNamedMap>
|
||||||
|
|
||||||
|
// Experimental Data Fetching
|
||||||
|
|
||||||
|
export function defineLoader<
|
||||||
|
P extends Promise<any>,
|
||||||
|
Name extends keyof RouteNamedMap = keyof RouteNamedMap,
|
||||||
|
isLazy extends boolean = false,
|
||||||
|
>(
|
||||||
|
name: Name,
|
||||||
|
loader: (route: RouteLocationNormalizedLoaded<Name>) => P,
|
||||||
|
options?: _DefineLoaderOptions<isLazy>,
|
||||||
|
): _DataLoader<Awaited<P>, isLazy>
|
||||||
|
export function defineLoader<
|
||||||
|
P extends Promise<any>,
|
||||||
|
isLazy extends boolean = false,
|
||||||
|
>(
|
||||||
|
loader: (route: RouteLocationNormalizedLoaded) => P,
|
||||||
|
options?: _DefineLoaderOptions<isLazy>,
|
||||||
|
): _DataLoader<Awaited<P>, isLazy>
|
||||||
|
|
||||||
|
export {
|
||||||
|
_definePage as definePage,
|
||||||
|
_HasDataLoaderMeta as HasDataLoaderMeta,
|
||||||
|
_setupDataFetchingGuard as setupDataFetchingGuard,
|
||||||
|
_stopDataFetchingScope as stopDataFetchingScope,
|
||||||
|
} from 'unplugin-vue-router/runtime'
|
||||||
|
}
|
||||||
|
|
||||||
|
declare module 'vue-router' {
|
||||||
|
import type { RouteNamedMap } from 'vue-router/auto/routes'
|
||||||
|
|
||||||
|
export interface TypesConfig {
|
||||||
|
beforeRouteUpdate: NavigationGuard<RouteNamedMap>
|
||||||
|
beforeRouteLeave: NavigationGuard<RouteNamedMap>
|
||||||
|
|
||||||
|
$route: RouteLocationNormalizedLoadedTypedList<RouteNamedMap>[keyof RouteNamedMap]
|
||||||
|
$router: _RouterTyped<RouteNamedMap>
|
||||||
|
|
||||||
|
RouterLink: RouterLinkTyped<RouteNamedMap>
|
||||||
|
}
|
||||||
|
}
|
59
nextcloud_backup/frontend/vite.config.mts
Normal file
59
nextcloud_backup/frontend/vite.config.mts
Normal file
@ -0,0 +1,59 @@
|
|||||||
|
// Plugins
|
||||||
|
import AutoImport from "unplugin-auto-import/vite";
|
||||||
|
import Components from "unplugin-vue-components/vite";
|
||||||
|
import Fonts from "unplugin-fonts/vite";
|
||||||
|
import Layouts from "vite-plugin-vue-layouts";
|
||||||
|
import Vue from "@vitejs/plugin-vue";
|
||||||
|
import VueRouter from "unplugin-vue-router/vite";
|
||||||
|
import Vuetify, { transformAssetUrls } from "vite-plugin-vuetify";
|
||||||
|
|
||||||
|
// Utilities
|
||||||
|
import { defineConfig } from "vite";
|
||||||
|
import { fileURLToPath, URL } from "node:url";
|
||||||
|
|
||||||
|
// https://vitejs.dev/config/
|
||||||
|
export default defineConfig({
|
||||||
|
plugins: [
|
||||||
|
VueRouter(),
|
||||||
|
Layouts(),
|
||||||
|
Vue({
|
||||||
|
template: { transformAssetUrls },
|
||||||
|
}),
|
||||||
|
// https://github.com/vuetifyjs/vuetify-loader/tree/master/packages/vite-plugin#readme
|
||||||
|
Vuetify({
|
||||||
|
autoImport: true,
|
||||||
|
styles: {
|
||||||
|
configFile: "src/styles/settings.scss",
|
||||||
|
},
|
||||||
|
}),
|
||||||
|
Components(),
|
||||||
|
Fonts({
|
||||||
|
google: {
|
||||||
|
families: [
|
||||||
|
{
|
||||||
|
name: "Roboto",
|
||||||
|
styles: "wght@100;300;400;500;700;900",
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
}),
|
||||||
|
AutoImport({
|
||||||
|
imports: ["vue", "vue-router"],
|
||||||
|
dts: true,
|
||||||
|
eslintrc: {
|
||||||
|
enabled: true,
|
||||||
|
},
|
||||||
|
vueTemplate: true,
|
||||||
|
}),
|
||||||
|
],
|
||||||
|
define: { "process.env": {} },
|
||||||
|
resolve: {
|
||||||
|
alias: {
|
||||||
|
"@": fileURLToPath(new URL("./src", import.meta.url)),
|
||||||
|
},
|
||||||
|
extensions: [".js", ".json", ".jsx", ".mjs", ".ts", ".tsx", ".vue"],
|
||||||
|
},
|
||||||
|
server: {
|
||||||
|
port: 3000,
|
||||||
|
},
|
||||||
|
});
|
@ -1,22 +0,0 @@
|
|||||||
import { fileURLToPath, URL } from "node:url";
|
|
||||||
|
|
||||||
import { defineConfig } from "vite";
|
|
||||||
import vue from "@vitejs/plugin-vue";
|
|
||||||
import dns from "dns";
|
|
||||||
|
|
||||||
// https://github.com/vuetifyjs/vuetify-loader/tree/next/packages/vite-plugin
|
|
||||||
import vuetify from "vite-plugin-vuetify";
|
|
||||||
|
|
||||||
// //Print localhost instead of 127.0.0.1
|
|
||||||
// dns.setDefaultResultOrder("verbatim");
|
|
||||||
|
|
||||||
// https://vitejs.dev/config/
|
|
||||||
export default defineConfig({
|
|
||||||
plugins: [vue(), vuetify({ autoImport: true })],
|
|
||||||
resolve: {
|
|
||||||
alias: {
|
|
||||||
"@": fileURLToPath(new URL("./src", import.meta.url)),
|
|
||||||
},
|
|
||||||
},
|
|
||||||
base: "",
|
|
||||||
});
|
|
Loading…
Reference in New Issue
Block a user