diff --git a/packages/nc-gui-v2/.eslintrc.js b/packages/nc-gui-v2/.eslintrc.js index 4f5bbdf923..301af65d8d 100644 --- a/packages/nc-gui-v2/.eslintrc.js +++ b/packages/nc-gui-v2/.eslintrc.js @@ -5,6 +5,7 @@ const baseRules = { } module.exports = { - extends: ['@antfu'], + extends: ['@antfu', 'plugin:prettier/recommended'], + plugins: ['prettier'], rules: baseRules, } diff --git a/packages/nc-gui-v2/.prettierrc b/packages/nc-gui-v2/.prettierrc new file mode 100644 index 0000000000..02018a3756 --- /dev/null +++ b/packages/nc-gui-v2/.prettierrc @@ -0,0 +1,8 @@ +{ + "singleQuote": true, + "trailingComma": "all", + "semi": false, + "quoteProps": "consistent", + "bracketSpacing": true, + "printWidth": 130 +} diff --git a/packages/nc-gui-v2/components/dashboard/TabView.vue b/packages/nc-gui-v2/components/dashboard/TabView.vue index 6be3281d0a..3cfdae9e2a 100644 --- a/packages/nc-gui-v2/components/dashboard/TabView.vue +++ b/packages/nc-gui-v2/components/dashboard/TabView.vue @@ -13,17 +13,11 @@ const { tabs, activeTab } = useTabs() - + - + diff --git a/packages/nc-gui-v2/components/dashboard/TreeView.vue b/packages/nc-gui-v2/components/dashboard/TreeView.vue index 4a57b2d856..8bcebee7bc 100644 --- a/packages/nc-gui-v2/components/dashboard/TreeView.vue +++ b/packages/nc-gui-v2/components/dashboard/TreeView.vue @@ -10,7 +10,8 @@ const { addTab } = useTabs()
@@ -21,7 +22,7 @@ const { addTab } = useTabs() diff --git a/packages/nc-gui-v2/components/smartsheet/Grid.vue b/packages/nc-gui-v2/components/smartsheet/Grid.vue index 99b5086670..c5ccf2169c 100644 --- a/packages/nc-gui-v2/components/smartsheet/Grid.vue +++ b/packages/nc-gui-v2/components/smartsheet/Grid.vue @@ -16,13 +16,17 @@ const rows = ref() const { $api } = useNuxtApp() const loadData = async () => { - const response = await $api.dbTableRow.list('noco', + const response = await $api.dbTableRow.list( + 'noco', project.value.id, - meta.id, {}, { + meta.id, + {}, + { headers: { 'xc-auth': user.token, }, - }) + }, + ) rows.value = response.list } @@ -55,6 +59,4 @@ onMounted(async () => {
- + diff --git a/packages/nc-gui-v2/components/tabs/Smartsheet.vue b/packages/nc-gui-v2/components/tabs/Smartsheet.vue index 7a15b59d6f..fe41a84b12 100644 --- a/packages/nc-gui-v2/components/tabs/Smartsheet.vue +++ b/packages/nc-gui-v2/components/tabs/Smartsheet.vue @@ -16,10 +16,12 @@ onMounted(async () => { await getMeta(tabMeta?.id) }) -watch(() => tabMeta && tabMeta?.id, async (newVal, oldVal) => { - if (newVal !== oldVal) - await getMeta(newVal) -}) +watch( + () => tabMeta && tabMeta?.id, + async (newVal, oldVal) => { + if (newVal !== oldVal) await getMeta(newVal) + }, +) - + diff --git a/packages/nc-gui-v2/composables/metas.ts b/packages/nc-gui-v2/composables/metas.ts index 4c77dbd1b1..645e17742f 100644 --- a/packages/nc-gui-v2/composables/metas.ts +++ b/packages/nc-gui-v2/composables/metas.ts @@ -11,10 +11,9 @@ export const useMetas = () => { const metas = useState<{ [idOrTitle: string]: TableType | any }>('metas', () => ({})) const getMeta = async (tableIdOrTitle: string, force = false) => { - if (!force && metas[tableIdOrTitle as keyof typeof metas]) - return metas[tableIdOrTitle as keyof typeof metas] + if (!force && metas[tableIdOrTitle as keyof typeof metas]) return metas[tableIdOrTitle as keyof typeof metas] - const modelId = (tables.value.find(t => t.title === tableIdOrTitle || t.id === tableIdOrTitle) || {}).id + const modelId = (tables.value.find((t) => t.title === tableIdOrTitle || t.id === tableIdOrTitle) || {}).id if (!modelId) { console.warn(`Table '${tableIdOrTitle}' is not found in the table list`) return diff --git a/packages/nc-gui-v2/helpers/errorUtils.ts b/packages/nc-gui-v2/helpers/errorUtils.ts index 7b1de0aa75..6601b5b1dc 100644 --- a/packages/nc-gui-v2/helpers/errorUtils.ts +++ b/packages/nc-gui-v2/helpers/errorUtils.ts @@ -4,12 +4,10 @@ export async function extractSdkResponseErrorMsg(e: Error & { response: any }) { if (e.response.data instanceof Blob) { try { msg = JSON.parse(await e.response.data.text()).msg - } - catch { + } catch { msg = 'Some internal error occurred' } - } - else { + } else { msg = e.response.data.msg || e.response.data.message || 'Some internal error occurred' } return msg || 'Some error occurred' diff --git a/packages/nc-gui-v2/helpers/projectCreateUtils.ts b/packages/nc-gui-v2/helpers/projectCreateUtils.ts index 5e385b3055..aee7fbef24 100644 --- a/packages/nc-gui-v2/helpers/projectCreateUtils.ts +++ b/packages/nc-gui-v2/helpers/projectCreateUtils.ts @@ -10,24 +10,27 @@ const testDataBaseNames = { export type ClientType = 'mysql2' | 'mssql' | 'pg' | 'sqlite3' | 'vitess' export const getTestDatabaseName = (db: { client: ClientType; connection?: { database?: string } }) => { - if (db.client === 'pg') - return db.connection?.database + if (db.client === 'pg') return db.connection?.database return testDataBaseNames[db.client as keyof typeof testDataBaseNames] } -export const clientTypes = [{ - text: 'MySql', - value: 'mysql2', -}, { - text: 'MSSQL', - value: 'mssql', -}, { - text: 'PostgreSQL', - value: 'pg', -}, { - text: 'SQLite', - value: 'sqlite', -}, +export const clientTypes = [ + { + text: 'MySql', + value: 'mysql2', + }, + { + text: 'MSSQL', + value: 'mssql', + }, + { + text: 'PostgreSQL', + value: 'pg', + }, + { + text: 'SQLite', + value: 'sqlite', + }, ] const homeDir = '' diff --git a/packages/nc-gui-v2/package-lock.json b/packages/nc-gui-v2/package-lock.json index 89291281e7..94239b6271 100644 --- a/packages/nc-gui-v2/package-lock.json +++ b/packages/nc-gui-v2/package-lock.json @@ -5,8 +5,11 @@ "packages": { "": { "dependencies": { + "eslint-config-prettier": "^8.5.0", + "eslint-plugin-prettier": "^4.0.0", "nocodb-sdk": "file:../nocodb-sdk", "nuxt3-store": "^1.0.0", + "prettier": "^2.7.1", "socket.io-client": "^4.5.1", "vue-i18n": "^9.1.10", "vue-toastification": "^2.0.0-rc.5", @@ -14,7 +17,7 @@ }, "devDependencies": { "@antfu/eslint-config": "^0.25.2", - "@intlify/vite-plugin-vue-i18n": "^3.4.0", + "@intlify/vite-plugin-vue-i18n": "^4.0.0", "@vueuse/nuxt": "^8.6.0", "nuxt": "3.0.0-rc.4", "sass": "^1.53.0" @@ -660,7 +663,6 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.0.tgz", "integrity": "sha512-UWW0TMTmk2d7hLcWD1/e2g5HDM/HQ3csaLSqXCfqwh4uNDuNqlaKWXmEsL4Cs41Z0KnILNvwbHAah3C2yt06kw==", - "dev": true, "peer": true, "dependencies": { "ajv": "^6.12.4", @@ -681,7 +683,6 @@ "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, "peer": true, "dependencies": { "fast-deep-equal": "^3.1.1", @@ -698,7 +699,6 @@ "version": "13.15.0", "resolved": "https://registry.npmjs.org/globals/-/globals-13.15.0.tgz", "integrity": "sha512-bpzcOlgDhMG070Av0Vy5Owklpv1I6+j96GhUI7Rh7IzDCKLzboflLrrfqMu8NquDbiR4EOQk7XzJwqVJxicxog==", - "dev": true, "peer": true, "dependencies": { "type-fest": "^0.20.2" @@ -714,14 +714,12 @@ "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true, "peer": true }, "node_modules/@eslint/eslintrc/node_modules/type-fest": { "version": "0.20.2", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true, "peer": true, "engines": { "node": ">=10" @@ -734,7 +732,6 @@ "version": "0.9.5", "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.5.tgz", "integrity": "sha512-ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw==", - "dev": true, "peer": true, "dependencies": { "@humanwhocodes/object-schema": "^1.2.1", @@ -749,7 +746,6 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", - "dev": true, "peer": true }, "node_modules/@intlify/bundle-utils": { @@ -949,13 +945,13 @@ } }, "node_modules/@intlify/vite-plugin-vue-i18n": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/@intlify/vite-plugin-vue-i18n/-/vite-plugin-vue-i18n-3.4.0.tgz", - "integrity": "sha512-XXcZBgwJ+3FRu11c4ARoY9N00kElPii0/jNZ49qR045Ka7/YGCwb1Ku14BBlMSEHiHDSjLQknLwrJKSQGVZLyA==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@intlify/vite-plugin-vue-i18n/-/vite-plugin-vue-i18n-4.0.0.tgz", + "integrity": "sha512-bX7WgJAnYAbhmfvMp17TjCzg4e4T68O7iqAcNo6TOS+oHK0kAJAN9AJfEMTdpDrAwURCw0VwZ0kgMFWDbJkY4g==", "dev": true, "dependencies": { - "@intlify/bundle-utils": "^2.2.2", - "@intlify/shared": "^9.1.0", + "@intlify/bundle-utils": "next", + "@intlify/shared": "next", "@rollup/pluginutils": "^4.1.0", "debug": "^4.3.1", "fast-glob": "^3.2.5", @@ -965,9 +961,9 @@ "node": ">= 12" }, "peerDependencies": { - "petite-vue-i18n": "^9.1.0", - "vite": "^2.0.0", - "vue-i18n": "^9.1.0" + "petite-vue-i18n": "next", + "vite": "^2.9.0", + "vue-i18n": "next" }, "peerDependenciesMeta": { "petite-vue-i18n": { @@ -2636,7 +2632,6 @@ "version": "5.3.2", "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true, "peerDependencies": { "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } @@ -2814,7 +2809,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true, "peer": true }, "node_modules/array-includes": { @@ -3128,7 +3122,6 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true, "peer": true, "engines": { "node": ">=6" @@ -3689,7 +3682,6 @@ "version": "0.1.4", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true, "peer": true }, "node_modules/deepmerge": { @@ -3795,7 +3787,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dev": true, "peer": true, "dependencies": { "esutils": "^2.0.2" @@ -4436,7 +4427,6 @@ "version": "8.18.0", "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.18.0.tgz", "integrity": "sha512-As1EfFMVk7Xc6/CvhssHUjsAQSkpfXvUGMFC3ce8JDe6WvqCgRrLOBQbVpsBFr1X1V+RACOadnzVvcUS5ni2bA==", - "dev": true, "peer": true, "dependencies": { "@eslint/eslintrc": "^1.3.0", @@ -4485,6 +4475,17 @@ "url": "https://opencollective.com/eslint" } }, + "node_modules/eslint-config-prettier": { + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.5.0.tgz", + "integrity": "sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==", + "bin": { + "eslint-config-prettier": "bin/cli.js" + }, + "peerDependencies": { + "eslint": ">=7.0.0" + } + }, "node_modules/eslint-import-resolver-node": { "version": "0.3.6", "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz", @@ -4729,6 +4730,26 @@ "eslint": ">=7.0.0" } }, + "node_modules/eslint-plugin-prettier": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz", + "integrity": "sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==", + "dependencies": { + "prettier-linter-helpers": "^1.0.0" + }, + "engines": { + "node": ">=12.0.0" + }, + "peerDependencies": { + "eslint": ">=7.28.0", + "prettier": ">=2.0.0" + }, + "peerDependenciesMeta": { + "eslint-config-prettier": { + "optional": true + } + } + }, "node_modules/eslint-plugin-promise": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-6.0.0.tgz", @@ -4906,7 +4927,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", - "dev": true, "dependencies": { "eslint-visitor-keys": "^2.0.0" }, @@ -4924,7 +4944,6 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", - "dev": true, "engines": { "node": ">=10" } @@ -4933,7 +4952,6 @@ "version": "3.3.0", "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", - "dev": true, "engines": { "node": "^12.22.0 || ^14.17.0 || >=16.0.0" } @@ -4942,7 +4960,6 @@ "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, "peer": true, "dependencies": { "fast-deep-equal": "^3.1.1", @@ -4959,7 +4976,6 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, "peer": true, "dependencies": { "ansi-styles": "^4.1.0", @@ -4976,7 +4992,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true, "peer": true, "engines": { "node": ">=10" @@ -4989,7 +5004,6 @@ "version": "7.1.1", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", - "dev": true, "peer": true, "dependencies": { "esrecurse": "^4.3.0", @@ -5003,7 +5017,6 @@ "version": "5.3.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, "peer": true, "engines": { "node": ">=4.0" @@ -5013,7 +5026,6 @@ "version": "6.0.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, "peer": true, "dependencies": { "is-glob": "^4.0.3" @@ -5026,7 +5038,6 @@ "version": "13.15.0", "resolved": "https://registry.npmjs.org/globals/-/globals-13.15.0.tgz", "integrity": "sha512-bpzcOlgDhMG070Av0Vy5Owklpv1I6+j96GhUI7Rh7IzDCKLzboflLrrfqMu8NquDbiR4EOQk7XzJwqVJxicxog==", - "dev": true, "peer": true, "dependencies": { "type-fest": "^0.20.2" @@ -5042,14 +5053,12 @@ "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true, "peer": true }, "node_modules/eslint/node_modules/type-fest": { "version": "0.20.2", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true, "peer": true, "engines": { "node": ">=10" @@ -5062,7 +5071,6 @@ "version": "9.3.2", "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.2.tgz", "integrity": "sha512-D211tC7ZwouTIuY5x9XnS0E9sWNChB7IYKX/Xp5eQj3nFXhqmiUDB9q27y76oFl8jTg3pXcQx/bpxMfs3CIZbA==", - "dev": true, "dependencies": { "acorn": "^8.7.1", "acorn-jsx": "^5.3.2", @@ -5076,7 +5084,6 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", - "dev": true, "dependencies": { "estraverse": "^5.1.0" }, @@ -5088,7 +5095,6 @@ "version": "5.3.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, "engines": { "node": ">=4.0" } @@ -5097,7 +5103,6 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "devOptional": true, "dependencies": { "estraverse": "^5.2.0" }, @@ -5109,7 +5114,6 @@ "version": "5.3.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "devOptional": true, "engines": { "node": ">=4.0" } @@ -5132,7 +5136,6 @@ "version": "2.0.3", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true, "engines": { "node": ">=0.10.0" } @@ -5211,6 +5214,11 @@ "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" }, + "node_modules/fast-diff": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz", + "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==" + }, "node_modules/fast-glob": { "version": "3.2.11", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", @@ -5230,14 +5238,12 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "devOptional": true, "peer": true }, "node_modules/fast-levenshtein": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "dev": true, "peer": true }, "node_modules/fastq": { @@ -5296,7 +5302,6 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", - "dev": true, "peer": true, "dependencies": { "flat-cache": "^3.0.4" @@ -5353,7 +5358,6 @@ "version": "3.0.4", "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", - "dev": true, "peer": true, "dependencies": { "flatted": "^3.1.0", @@ -5367,7 +5371,6 @@ "version": "3.2.6", "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.6.tgz", "integrity": "sha512-0sQoMh9s0BYsm+12Huy/rkKxVu4R1+r96YX5cG44rHV0pQ6iC3Q+mkoMFaGWObMFYQxCVT+ssG1ksneA2MI9KQ==", - "dev": true, "peer": true }, "node_modules/follow-redirects": { @@ -5495,8 +5498,7 @@ "node_modules/functional-red-black-tree": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==", - "dev": true + "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==" }, "node_modules/functions-have-names": { "version": "1.2.3", @@ -5954,7 +5956,6 @@ "version": "3.3.0", "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "dev": true, "peer": true, "dependencies": { "parent-module": "^1.0.0", @@ -5971,7 +5972,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, "peer": true, "dependencies": { "callsites": "^3.0.0" @@ -5984,7 +5984,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true, "peer": true, "engines": { "node": ">=4" @@ -5994,7 +5993,6 @@ "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "dev": true, "peer": true, "engines": { "node": ">=0.8.19" @@ -6518,7 +6516,6 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, "peer": true, "dependencies": { "argparse": "^2.0.1" @@ -6553,7 +6550,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", - "dev": true, "peer": true }, "node_modules/json5": { @@ -6669,7 +6665,6 @@ "version": "0.4.1", "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "dev": true, "peer": true, "dependencies": { "prelude-ls": "^1.2.1", @@ -6790,7 +6785,6 @@ "version": "4.6.2", "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true, "peer": true }, "node_modules/lodash.pick": { @@ -7173,8 +7167,7 @@ "node_modules/natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==" }, "node_modules/neo-async": { "version": "2.6.2", @@ -8013,7 +8006,6 @@ "version": "0.9.1", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", - "dev": true, "peer": true, "dependencies": { "deep-is": "^0.1.3", @@ -8780,12 +8772,36 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "dev": true, "peer": true, "engines": { "node": ">= 0.8.0" } }, + "node_modules/prettier": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.7.1.tgz", + "integrity": "sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g==", + "bin": { + "prettier": "bin-prettier.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/prettier-linter-helpers": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", + "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", + "dependencies": { + "fast-diff": "^1.1.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, "node_modules/pretty-bytes": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-6.0.0.tgz", @@ -9127,7 +9143,6 @@ "version": "3.2.0", "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", - "dev": true, "engines": { "node": ">=8" }, @@ -9856,7 +9871,6 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true, "peer": true, "engines": { "node": ">=8" @@ -10119,7 +10133,6 @@ "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", - "dev": true, "peer": true }, "node_modules/through": { @@ -10229,7 +10242,6 @@ "version": "0.4.0", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", - "dev": true, "peer": true, "dependencies": { "prelude-ls": "^1.2.1" @@ -10425,7 +10437,6 @@ "version": "2.3.0", "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", - "dev": true, "peer": true }, "node_modules/validate-npm-package-license": { @@ -10894,7 +10905,6 @@ "version": "1.2.3", "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", - "dev": true, "peer": true, "engines": { "node": ">=0.10.0" @@ -11507,7 +11517,6 @@ "version": "1.3.0", "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-1.3.0.tgz", "integrity": "sha512-UWW0TMTmk2d7hLcWD1/e2g5HDM/HQ3csaLSqXCfqwh4uNDuNqlaKWXmEsL4Cs41Z0KnILNvwbHAah3C2yt06kw==", - "dev": true, "peer": true, "requires": { "ajv": "^6.12.4", @@ -11525,7 +11534,6 @@ "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, "peer": true, "requires": { "fast-deep-equal": "^3.1.1", @@ -11538,7 +11546,6 @@ "version": "13.15.0", "resolved": "https://registry.npmjs.org/globals/-/globals-13.15.0.tgz", "integrity": "sha512-bpzcOlgDhMG070Av0Vy5Owklpv1I6+j96GhUI7Rh7IzDCKLzboflLrrfqMu8NquDbiR4EOQk7XzJwqVJxicxog==", - "dev": true, "peer": true, "requires": { "type-fest": "^0.20.2" @@ -11548,14 +11555,12 @@ "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true, "peer": true }, "type-fest": { "version": "0.20.2", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true, "peer": true } } @@ -11564,7 +11569,6 @@ "version": "0.9.5", "resolved": "https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.9.5.tgz", "integrity": "sha512-ObyMyWxZiCu/yTisA7uzx81s40xR2fD5Cg/2Kq7G02ajkNubJf6BopgDTmDyc3U7sXpNKM8cYOw7s7Tyr+DnCw==", - "dev": true, "peer": true, "requires": { "@humanwhocodes/object-schema": "^1.2.1", @@ -11576,7 +11580,6 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/@humanwhocodes/object-schema/-/object-schema-1.2.1.tgz", "integrity": "sha512-ZnQMnLV4e7hDlUvw8H+U8ASL02SS2Gn6+9Ac3wGGLIe7+je2AeAOxPY+izIPJDfFDb7eDjev0Us8MO1iFRN8hA==", - "dev": true, "peer": true }, "@intlify/bundle-utils": { @@ -11721,13 +11724,13 @@ "integrity": "sha512-Om54xJeo1Vw+K1+wHYyXngE8cAbrxZHpWjYzMR9wCkqbhGtRV5VLhVc214Ze2YatPrWlS2WSMOWXR8JktX/IgA==" }, "@intlify/vite-plugin-vue-i18n": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/@intlify/vite-plugin-vue-i18n/-/vite-plugin-vue-i18n-3.4.0.tgz", - "integrity": "sha512-XXcZBgwJ+3FRu11c4ARoY9N00kElPii0/jNZ49qR045Ka7/YGCwb1Ku14BBlMSEHiHDSjLQknLwrJKSQGVZLyA==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@intlify/vite-plugin-vue-i18n/-/vite-plugin-vue-i18n-4.0.0.tgz", + "integrity": "sha512-bX7WgJAnYAbhmfvMp17TjCzg4e4T68O7iqAcNo6TOS+oHK0kAJAN9AJfEMTdpDrAwURCw0VwZ0kgMFWDbJkY4g==", "dev": true, "requires": { - "@intlify/bundle-utils": "^2.2.2", - "@intlify/shared": "^9.1.0", + "@intlify/bundle-utils": "next", + "@intlify/shared": "next", "@rollup/pluginutils": "^4.1.0", "debug": "^4.3.1", "fast-glob": "^3.2.5", @@ -13034,7 +13037,6 @@ "version": "5.3.2", "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true, "requires": {} }, "agent-base": { @@ -13164,7 +13166,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true, "peer": true }, "array-includes": { @@ -13375,7 +13376,6 @@ "version": "3.1.0", "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true, "peer": true }, "camelcase": { @@ -13771,7 +13771,6 @@ "version": "0.1.4", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true, "peer": true }, "deepmerge": { @@ -13849,7 +13848,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz", "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==", - "dev": true, "peer": true, "requires": { "esutils": "^2.0.2" @@ -14221,7 +14219,6 @@ "version": "8.18.0", "resolved": "https://registry.npmjs.org/eslint/-/eslint-8.18.0.tgz", "integrity": "sha512-As1EfFMVk7Xc6/CvhssHUjsAQSkpfXvUGMFC3ce8JDe6WvqCgRrLOBQbVpsBFr1X1V+RACOadnzVvcUS5ni2bA==", - "dev": true, "peer": true, "requires": { "@eslint/eslintrc": "^1.3.0", @@ -14265,7 +14262,6 @@ "version": "6.12.6", "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, "peer": true, "requires": { "fast-deep-equal": "^3.1.1", @@ -14278,7 +14274,6 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, "peer": true, "requires": { "ansi-styles": "^4.1.0", @@ -14289,14 +14284,12 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true, "peer": true }, "eslint-scope": { "version": "7.1.1", "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-7.1.1.tgz", "integrity": "sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==", - "dev": true, "peer": true, "requires": { "esrecurse": "^4.3.0", @@ -14307,14 +14300,12 @@ "version": "5.3.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, "peer": true }, "glob-parent": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, "peer": true, "requires": { "is-glob": "^4.0.3" @@ -14324,7 +14315,6 @@ "version": "13.15.0", "resolved": "https://registry.npmjs.org/globals/-/globals-13.15.0.tgz", "integrity": "sha512-bpzcOlgDhMG070Av0Vy5Owklpv1I6+j96GhUI7Rh7IzDCKLzboflLrrfqMu8NquDbiR4EOQk7XzJwqVJxicxog==", - "dev": true, "peer": true, "requires": { "type-fest": "^0.20.2" @@ -14334,18 +14324,22 @@ "version": "0.4.1", "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true, "peer": true }, "type-fest": { "version": "0.20.2", "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.20.2.tgz", "integrity": "sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==", - "dev": true, "peer": true } } }, + "eslint-config-prettier": { + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.5.0.tgz", + "integrity": "sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==", + "requires": {} + }, "eslint-import-resolver-node": { "version": "0.3.6", "resolved": "https://registry.npmjs.org/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.6.tgz", @@ -14534,6 +14528,14 @@ "semver": "^7.3.7" } }, + "eslint-plugin-prettier": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz", + "integrity": "sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==", + "requires": { + "prettier-linter-helpers": "^1.0.0" + } + }, "eslint-plugin-promise": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-6.0.0.tgz", @@ -14660,7 +14662,6 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-3.0.0.tgz", "integrity": "sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA==", - "dev": true, "requires": { "eslint-visitor-keys": "^2.0.0" }, @@ -14668,22 +14669,19 @@ "eslint-visitor-keys": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz", - "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==", - "dev": true + "integrity": "sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==" } } }, "eslint-visitor-keys": { "version": "3.3.0", "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz", - "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==", - "dev": true + "integrity": "sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==" }, "espree": { "version": "9.3.2", "resolved": "https://registry.npmjs.org/espree/-/espree-9.3.2.tgz", "integrity": "sha512-D211tC7ZwouTIuY5x9XnS0E9sWNChB7IYKX/Xp5eQj3nFXhqmiUDB9q27y76oFl8jTg3pXcQx/bpxMfs3CIZbA==", - "dev": true, "requires": { "acorn": "^8.7.1", "acorn-jsx": "^5.3.2", @@ -14694,7 +14692,6 @@ "version": "1.4.0", "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.4.0.tgz", "integrity": "sha512-cCDispWt5vHHtwMY2YrAQ4ibFkAL8RbH5YGBnZBc90MolvvfkkQcJro/aZiAQUlQ3qgrYS6D6v8Gc5G5CQsc9w==", - "dev": true, "requires": { "estraverse": "^5.1.0" }, @@ -14702,8 +14699,7 @@ "estraverse": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==" } } }, @@ -14711,7 +14707,6 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "devOptional": true, "requires": { "estraverse": "^5.2.0" }, @@ -14719,8 +14714,7 @@ "estraverse": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "devOptional": true + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==" } } }, @@ -14738,8 +14732,7 @@ "esutils": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==" }, "etag": { "version": "1.8.1", @@ -14800,6 +14793,11 @@ "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" }, + "fast-diff": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz", + "integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==" + }, "fast-glob": { "version": "3.2.11", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", @@ -14816,14 +14814,12 @@ "version": "2.1.0", "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "devOptional": true, "peer": true }, "fast-levenshtein": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "dev": true, "peer": true }, "fastq": { @@ -14862,7 +14858,6 @@ "version": "6.0.1", "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz", "integrity": "sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==", - "dev": true, "peer": true, "requires": { "flat-cache": "^3.0.4" @@ -14904,7 +14899,6 @@ "version": "3.0.4", "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz", "integrity": "sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg==", - "dev": true, "peer": true, "requires": { "flatted": "^3.1.0", @@ -14915,7 +14909,6 @@ "version": "3.2.6", "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.6.tgz", "integrity": "sha512-0sQoMh9s0BYsm+12Huy/rkKxVu4R1+r96YX5cG44rHV0pQ6iC3Q+mkoMFaGWObMFYQxCVT+ssG1ksneA2MI9KQ==", - "dev": true, "peer": true }, "follow-redirects": { @@ -15000,8 +14993,7 @@ "functional-red-black-tree": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz", - "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==", - "dev": true + "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==" }, "functions-have-names": { "version": "1.2.3", @@ -15325,7 +15317,6 @@ "version": "3.3.0", "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", - "dev": true, "peer": true, "requires": { "parent-module": "^1.0.0", @@ -15336,7 +15327,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, "peer": true, "requires": { "callsites": "^3.0.0" @@ -15346,7 +15336,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true, "peer": true } } @@ -15355,7 +15344,6 @@ "version": "0.1.4", "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "dev": true, "peer": true }, "indent-string": { @@ -15719,7 +15707,6 @@ "version": "4.1.0", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, "peer": true, "requires": { "argparse": "^2.0.1" @@ -15745,7 +15732,6 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", - "dev": true, "peer": true }, "json5": { @@ -15840,7 +15826,6 @@ "version": "0.4.1", "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "dev": true, "peer": true, "requires": { "prelude-ls": "^1.2.1", @@ -15943,7 +15928,6 @@ "version": "4.6.2", "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true, "peer": true }, "lodash.pick": { @@ -16246,8 +16230,7 @@ "natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true + "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==" }, "neo-async": { "version": "2.6.2", @@ -16894,7 +16877,6 @@ "version": "0.9.1", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.1.tgz", "integrity": "sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==", - "dev": true, "peer": true, "requires": { "deep-is": "^0.1.3", @@ -17403,9 +17385,21 @@ "version": "1.2.1", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "dev": true, "peer": true }, + "prettier": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.7.1.tgz", + "integrity": "sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g==" + }, + "prettier-linter-helpers": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz", + "integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==", + "requires": { + "fast-diff": "^1.1.2" + } + }, "pretty-bytes": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-6.0.0.tgz", @@ -17655,8 +17649,7 @@ "regexpp": { "version": "3.2.0", "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-3.2.0.tgz", - "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==", - "dev": true + "integrity": "sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg==" }, "require-directory": { "version": "2.1.1", @@ -18204,7 +18197,6 @@ "version": "3.1.1", "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true, "peer": true }, "strip-literal": { @@ -18381,7 +18373,6 @@ "version": "0.2.0", "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", - "dev": true, "peer": true }, "through": { @@ -18474,7 +18465,6 @@ "version": "0.4.0", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", - "dev": true, "peer": true, "requires": { "prelude-ls": "^1.2.1" @@ -18621,7 +18611,6 @@ "version": "2.3.0", "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz", "integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==", - "dev": true, "peer": true }, "validate-npm-package-license": { @@ -18950,7 +18939,6 @@ "version": "1.2.3", "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", - "dev": true, "peer": true }, "wrap-ansi": { diff --git a/packages/nc-gui-v2/package.json b/packages/nc-gui-v2/package.json index 156db5626d..b285380344 100644 --- a/packages/nc-gui-v2/package.json +++ b/packages/nc-gui-v2/package.json @@ -9,14 +9,17 @@ }, "devDependencies": { "@antfu/eslint-config": "^0.25.2", - "@intlify/vite-plugin-vue-i18n": "^3.4.0", + "@intlify/vite-plugin-vue-i18n": "^4.0.0", "@vueuse/nuxt": "^8.6.0", "nuxt": "3.0.0-rc.4", "sass": "^1.53.0" }, "dependencies": { + "eslint-config-prettier": "^8.5.0", + "eslint-plugin-prettier": "^4.0.0", "nocodb-sdk": "file:../nocodb-sdk", "nuxt3-store": "^1.0.0", + "prettier": "^2.7.1", "socket.io-client": "^4.5.1", "vue-i18n": "^9.1.10", "vue-toastification": "^2.0.0-rc.5", diff --git a/packages/nc-gui-v2/pages/dashboard/[projectId].vue b/packages/nc-gui-v2/pages/dashboard/[projectId].vue index 26b92ed5f5..f73ba3c5f6 100644 --- a/packages/nc-gui-v2/pages/dashboard/[projectId].vue +++ b/packages/nc-gui-v2/pages/dashboard/[projectId].vue @@ -13,13 +13,16 @@ onMounted(async () => { await loadTables() }) -watch(() => route.params.projectId, async (newVal, oldVal) => { - if (newVal && newVal !== oldVal) { - clearTabs() - await loadProject(newVal as string) - await loadTables() - } -}) +watch( + () => route.params.projectId, + async (newVal, oldVal) => { + if (newVal && newVal !== oldVal) { + clearTabs() + await loadProject(newVal as string) + await loadTables() + } + }, +) - + diff --git a/packages/nc-gui-v2/pages/projects/create-external.vue b/packages/nc-gui-v2/pages/projects/create-external.vue index 53e7209d32..6003cfce8f 100644 --- a/packages/nc-gui-v2/pages/projects/create-external.vue +++ b/packages/nc-gui-v2/pages/projects/create-external.vue @@ -22,10 +22,7 @@ const { user } = useUser() const toast = useToast() const { t: $t } = useI18n() -const titleValidationRule = [ - v => !!v || 'Title is required', - v => v.length <= 50 || 'Project name exceeds 50 characters', -] +const titleValidationRule = [(v) => !!v || 'Title is required', (v) => v.length <= 50 || 'Project name exceeds 50 characters'] const createProject = async () => { loading.value = true @@ -44,8 +41,7 @@ const createProject = async () => { }) await $router.push(`/dashboard/${result.id}`) - } - catch (e) { + } catch (e) { // todo: toast toast.error(await extractSdkResponseErrorMsg(e)) } @@ -59,8 +55,7 @@ const testConnection = async () => { if (projectDatasource.value.client === 'sqlite3') { testSuccess.value = true - } - else { + } else { const testConnectionConfig = { ...projectDatasource, connection: { @@ -73,14 +68,12 @@ const testConnection = async () => { if (result.code === 0) { testSuccess.value = true - } - else { + } else { testSuccess.value = false toast.error($t('msg.error.dbConnectionFailed') + result.message) } } - } - catch (e) { + } catch (e) { testSuccess.value = false toast.error(await extractSdkResponseErrorMsg(e)) } @@ -89,24 +82,19 @@ const testConnection = async () => { - + diff --git a/packages/nc-gui-v2/pages/projects/create.vue b/packages/nc-gui-v2/pages/projects/create.vue index 69974f8d88..1538f7fd81 100644 --- a/packages/nc-gui-v2/pages/projects/create.vue +++ b/packages/nc-gui-v2/pages/projects/create.vue @@ -10,21 +10,17 @@ const { $api, $toast } = useNuxtApp() const $router = useRouter() const { user } = useUser() -const titleValidationRule = [ - v => !!v || 'Title is required', - v => v.length <= 50 || 'Project name exceeds 50 characters', -] +const titleValidationRule = [(v) => !!v || 'Title is required', (v) => v.length <= 50 || 'Project name exceeds 50 characters'] const createProject = async () => { loading.value = true try { - const result = (await $api.project.create({ + const result = await $api.project.create({ title: name.value, - })) + }) await $router.push(`/dashboard/${result.id}`) - } - catch (e) { + } catch (e) { // todo: toast $toast.error(await this._extractSdkResponseErrorMsg(e)).goAway(3000) } @@ -33,36 +29,24 @@ const createProject = async () => { - + diff --git a/packages/nc-gui-v2/pages/signup.vue b/packages/nc-gui-v2/pages/signup.vue index 9b05bda90c..767ca936ce 100644 --- a/packages/nc-gui-v2/pages/signup.vue +++ b/packages/nc-gui-v2/pages/signup.vue @@ -18,8 +18,7 @@ const signUp = async () => { const { token } = await $api.auth.signup(form) await setToken(token) $router.push('/projects') - } - catch (e) { + } catch (e) { error.value = await extractSdkResponseErrorMsg(e) } } @@ -34,20 +33,17 @@ const signUp = async () => { {{ error }} -
- +
+
-
- +
+
- + Sign Up
@@ -56,6 +52,4 @@ const signUp = async () => {
- + diff --git a/packages/nc-gui-v2/plugins/api.ts b/packages/nc-gui-v2/plugins/api.ts index 0d6745c321..17c6285858 100644 --- a/packages/nc-gui-v2/plugins/api.ts +++ b/packages/nc-gui-v2/plugins/api.ts @@ -19,27 +19,25 @@ function addAxiosInterceptors(api: Api) { api.instance.interceptors.request.use((config) => { config.headers['xc-gui'] = 'true' - if (user?.token) - config.headers['xc-auth'] = user?.token + if (user?.token) config.headers['xc-auth'] = user?.token if (!config.url?.endsWith('/user/me') && !config.url?.endsWith('/admin/roles')) { // config.headers['xc-preview'] = store.state.users.previewAs } if (!config.url?.endsWith('/user/me') && !config.url?.endsWith('/admin/roles')) { - if (route && route.params && route.params.shared_base_id) - config.headers['xc-shared-base-id'] = route.params.shared_base_id + if (route && route.params && route.params.shared_base_id) config.headers['xc-shared-base-id'] = route.params.shared_base_id } return config }) // Return a successful response back to the calling service - api.instance.interceptors.response.use(response => response, + api.instance.interceptors.response.use( + (response) => response, // Handle Error (error) => { - if (error.response && error.response.data && error.response.data.msg === DbNotFoundMsg) - return router.replace('/project/0') + if (error.response && error.response.data && error.response.data.msg === DbNotFoundMsg) return router.replace('/project/0') // Return any error which is not due to authentication back to the calling service if (!error.response || error.response.status !== 401) { @@ -50,7 +48,7 @@ function addAxiosInterceptors(api: Api) { // Logout user if token refresh didn't work or user is disabled if (error.config.url === '/auth/refresh-token') { - // todo: clear token + // todo: clear token setToken(null) return new Promise((resolve, reject) => { @@ -59,26 +57,30 @@ function addAxiosInterceptors(api: Api) { } // Try request again with new token - return api.instance.post('/auth/refresh-token', null, { - withCredentials: true, - }) + return api.instance + .post('/auth/refresh-token', null, { + withCredentials: true, + }) .then((token) => { - // New request with new token + // New request with new token const config = error.config config.headers['xc-auth'] = token.data.token user.token = token.data.token return new Promise((resolve, reject) => { - api.instance.request(config).then((response) => { - resolve(response) - }).catch((error) => { - reject(error) - }) + api.instance + .request(config) + .then((response) => { + resolve(response) + }) + .catch((error) => { + reject(error) + }) }) }) .catch(async (error) => { - // todo: clear token - // await store.dispatch('users/ActSignOut') + // todo: clear token + // await store.dispatch('users/ActSignOut') setToken(null) // todo: handle new user // if (store.state.project.appInfo.firstUser) { @@ -93,7 +95,8 @@ function addAxiosInterceptors(api: Api) { // } return Promise.reject(error) }) - }) + }, + ) } export function getApi(store: any, axios: any) { diff --git a/packages/nc-gui-v2/plugins/i18n.ts b/packages/nc-gui-v2/plugins/i18n.ts index 5fe42008d0..86726c17f2 100644 --- a/packages/nc-gui-v2/plugins/i18n.ts +++ b/packages/nc-gui-v2/plugins/i18n.ts @@ -1,19 +1,20 @@ import { defineNuxtPlugin } from 'nuxt/app' import { createI18n } from 'vue-i18n' +import type en from '~/lang/en.json' + +// Type-define 'en' as the master schema for the resource +type MessageSchema = typeof en + export default defineNuxtPlugin(async (nuxtApp) => { - // Set the i18n instance on app - // This way we can use it globally in our components through this.$i18n const i18n = createI18n({ - // Set the initial locale - locale: 'en', + locale: 'en', // Set the initial locale - // Set the fallback locale in case the current locale can't be found - fallbackLocale: 'en', + fallbackLocale: 'en', // Set the fallback locale in case the current locale can't be found - legacy: false, + legacy: false, // disable legacy API (we use the composition API and inject utilities) - globalInjection: true, + globalInjection: true, // enable global injection, so all utilities are injected into all components // Associate each locale to a content file messages: { @@ -45,9 +46,9 @@ export default defineNuxtPlugin(async (nuxtApp) => { fa: await import('~/lang/fa.json'), tr: await import('~/lang/tr.json'), }, - }); + }) - (nuxtApp.vueApp as any).i18n = i18n + ;(nuxtApp.vueApp as any).i18n = i18n nuxtApp.vueApp.use(i18n) }) /** diff --git a/packages/nc-gui-v2/plugins/tele.ts b/packages/nc-gui-v2/plugins/tele.ts index fd4e33ea17..6b3790372c 100644 --- a/packages/nc-gui-v2/plugins/tele.ts +++ b/packages/nc-gui-v2/plugins/tele.ts @@ -12,8 +12,7 @@ export default defineNuxtPlugin(async (nuxtApp) => { const init = async (token: string) => { try { - if (socket) - socket.disconnect() + if (socket) socket.disconnect() // todo: extract base url const url = 'http://localhost:8080' // new URL($axios.defaults.baseURL, window.location.href.split(/[?#]/)[0]).href @@ -24,14 +23,11 @@ export default defineNuxtPlugin(async (nuxtApp) => { socket.on('connect_error', () => { socket.disconnect() }) - } - catch { - } + } catch {} } router.afterEach((to, from) => { - if (!socket || (to.path === from.path && (to.query && to.query.type) === (from.query && from.query.type))) - return + if (!socket || (to.path === from.path && (to.query && to.query.type) === (from.query && from.query.type))) return socket.emit('page', { path: to.matched[0].path + (to.query && to.query.type ? `?type=${to.query.type}` : ''), @@ -65,38 +61,32 @@ export default defineNuxtPlugin(async (nuxtApp) => { nuxtApp.vueApp.directive('t', { created(el, binding, vnode) { - if (vnode.el) - vnode.el.addEventListener('click', getListener(binding)) - else - el.addEventListener('click', getListener(binding)) + if (vnode.el) vnode.el.addEventListener('click', getListener(binding)) + else el.addEventListener('click', getListener(binding)) }, }) function getListener(binding: any) { return function () { - if (!socket) - return + if (!socket) return const event = binding.value && binding.value[0] const data = binding.value && binding.value[1] const extra = binding.value && binding.value.slice(2) - tele.emit(event, - { - data, - extra, - }) + tele.emit(event, { + data, + extra, + }) } } - if (user.token) - await init(user.token) + if (user.token) await init(user.token) - watch(() => user.token, (newToken, oldToken) => { - if (newToken !== oldToken) - init(newToken) - - else if (!newToken) - socket.disconnect() - }) + watch( + () => user.token, + (newToken, oldToken) => { + if (newToken !== oldToken) init(newToken) + else if (!newToken) socket.disconnect() + }, + ) }) -