diff --git a/vue3/.browserslistrc b/vue3/.browserslistrc new file mode 100644 index 000000000..dc3bc09a2 --- /dev/null +++ b/vue3/.browserslistrc @@ -0,0 +1,4 @@ +> 1% +last 2 versions +not dead +not ie 11 diff --git a/vue3/.editorconfig b/vue3/.editorconfig new file mode 100644 index 000000000..ecea360f1 --- /dev/null +++ b/vue3/.editorconfig @@ -0,0 +1,6 @@ +[*.{js,jsx,mjs,cjs,ts,tsx,mts,cts,vue}] +charset = utf-8 +indent_size = 2 +indent_style = space +insert_final_newline = true +trim_trailing_whitespace = true diff --git a/web/.env.development b/vue3/.env.development similarity index 100% rename from web/.env.development rename to vue3/.env.development diff --git a/web/.env.production b/vue3/.env.production similarity index 100% rename from web/.env.production rename to vue3/.env.production diff --git a/vue3/.gitignore b/vue3/.gitignore new file mode 100644 index 000000000..ec511e1ee --- /dev/null +++ b/vue3/.gitignore @@ -0,0 +1,25 @@ +.DS_Store +node_modules +/dist +.vite +components.d.ts +typed-router.d.ts + +# local env files +.env.local +.env.*.local + +# Log files +npm-debug.log* +yarn-debug.log* +yarn-error.log* +pnpm-debug.log* + +# Editor directories and files +.idea +.vscode +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? diff --git a/web/LICENSE b/vue3/LICENSE similarity index 100% rename from web/LICENSE rename to vue3/LICENSE diff --git a/web/README.md b/vue3/README.md similarity index 100% rename from web/README.md rename to vue3/README.md diff --git a/vue3/env.d.ts b/vue3/env.d.ts new file mode 100644 index 000000000..dabd0deba --- /dev/null +++ b/vue3/env.d.ts @@ -0,0 +1,2 @@ +/// +/// diff --git a/vue3/eslint.config.js b/vue3/eslint.config.js new file mode 100644 index 000000000..2e824002e --- /dev/null +++ b/vue3/eslint.config.js @@ -0,0 +1,38 @@ +/** + * .eslint.js + * + * ESLint configuration file. + */ + +import pluginVue from 'eslint-plugin-vue' +import pluginVuetify from 'eslint-plugin-vuetify' +import vueTsEslintConfig from '@vue/eslint-config-typescript' + +export default [ + { + name: 'app/files-to-lint', + files: ['**/*.{ts,mts,tsx,vue}'], + }, + + { + name: 'app/files-to-ignore', + ignores: ['**/dist/**', '**/dist-ssr/**', '**/coverage/**'], + }, + + ...pluginVue.configs['flat/recommended'], + ...pluginVuetify.configs['flat/recommended'], + ...vueTsEslintConfig(), + + { + rules: { + '@typescript-eslint/no-unused-expressions': [ + 'error', + { + allowShortCircuit: true, + allowTernary: true, + }, + ], + 'vue/multi-word-component-names': 'off', + } + } +] diff --git a/web/index.html b/vue3/index.html similarity index 100% rename from web/index.html rename to vue3/index.html diff --git a/web/netlify.toml b/vue3/netlify.toml similarity index 100% rename from web/netlify.toml rename to vue3/netlify.toml diff --git a/web/netlify/plugins/server-info-build/index.js b/vue3/netlify/plugins/server-info-build/index.js similarity index 100% rename from web/netlify/plugins/server-info-build/index.js rename to vue3/netlify/plugins/server-info-build/index.js diff --git a/web/netlify/plugins/server-info-build/manifest.yml b/vue3/netlify/plugins/server-info-build/manifest.yml similarity index 100% rename from web/netlify/plugins/server-info-build/manifest.yml rename to vue3/netlify/plugins/server-info-build/manifest.yml diff --git a/vue3/package.json b/vue3/package.json new file mode 100644 index 000000000..3f1e6b360 --- /dev/null +++ b/vue3/package.json @@ -0,0 +1,55 @@ +{ + "name": "dandi-archive", + "private": true, + "type": "module", + "engines": { + "node": "20.x" + }, + "version": "0.0.0", + "scripts": { + "dev": "vite", + "build": "run-p type-check \"build-only {@}\" --", + "preview": "vite preview", + "build-only": "vite build", + "type-check": "vue-tsc --build --force", + "lint": "eslint . --fix" + }, + "dependencies": { + "@apidevtools/json-schema-ref-parser": "^11.7.3", + "@mdi/font": "7.4.47", + "@resonant/oauth-client": "^0.9.2", + "axios": "^1.7.9", + "core-js": "^3.37.1", + "dompurify": "^3.2.3", + "filesize": "^10.1.6", + "marked": "^15.0.6", + "moment": "^2.30.1", + "pinia": "^2.3.0", + "roboto-fontface": "*", + "vue": "^3.4.31", + "vuetify": "^3.6.14" + }, + "devDependencies": { + "@eslint/js": "^9.14.0", + "@tsconfig/node22": "^22.0.0", + "@types/node": "^22.9.0", + "@vitejs/plugin-vue": "^5.1.4", + "@vue/eslint-config-typescript": "^14.1.3", + "@vue/tsconfig": "^0.5.1", + "eslint": "^9.14.0", + "eslint-plugin-vue": "^9.30.0", + "eslint-plugin-vuetify": "^2.5.1", + "npm-run-all2": "^7.0.1", + "sass": "1.77.8", + "sass-embedded": "^1.77.8", + "typescript": "~5.6.3", + "unplugin-fonts": "^1.1.1", + "unplugin-vue-components": "^0.27.2", + "unplugin-vue-router": "^0.10.0", + "vite": "^5.4.10", + "vite-plugin-node-polyfills": "^0.22.0", + "vite-plugin-vuetify": "^2.0.3", + "vue-router": "^4.4.0", + "vue-tsc": "^2.1.10" + } +} diff --git a/web/public/favicon.ico b/vue3/public/favicon.ico similarity index 100% rename from web/public/favicon.ico rename to vue3/public/favicon.ico diff --git a/web/public/robots.txt b/vue3/public/robots.txt similarity index 100% rename from web/public/robots.txt rename to vue3/public/robots.txt diff --git a/web/src/App.vue b/vue3/src/App.vue similarity index 88% rename from web/src/App.vue rename to vue3/src/App.vue index 86053a8c5..78a1bbd21 100644 --- a/web/src/App.vue +++ b/vue3/src/App.vue @@ -17,21 +17,19 @@ {{ SERVER_DOWNTIME_MESSAGE }} Sorry, something went wrong on our side (the developers have been notified). Please try that operation again later. -