diff --git a/frontend/api/index.ts b/frontend/api/index.ts index 84df7eeb6fa0..e3e4189df549 100644 --- a/frontend/api/index.ts +++ b/frontend/api/index.ts @@ -24,7 +24,7 @@ import { GroupReportsApi } from "./class-interfaces/group-reports"; import { ApiRequestInstance } from "~/types/api"; class Api { - private static instance: Api; + // private static instance: Api; public recipes: RecipeAPI; public users: UserApi; public groups: GroupAPI; @@ -50,9 +50,9 @@ class Api { public upload: UploadFile; constructor(requests: ApiRequestInstance) { - if (Api.instance instanceof Api) { - return Api.instance; - } + // if (Api.instance instanceof Api) { + // return Api.instance; + // } // Recipes this.recipes = new RecipeAPI(requests); @@ -88,7 +88,7 @@ class Api { this.bulk = new BulkActionsAPI(requests); Object.freeze(this); - Api.instance = this; + // Api.instance = this; } } diff --git a/frontend/composables/api/static-routes.ts b/frontend/composables/api/static-routes.ts index 30de192eafdb..547df9e0505f 100644 --- a/frontend/composables/api/static-routes.ts +++ b/frontend/composables/api/static-routes.ts @@ -1,25 +1,29 @@ import { useContext } from "@nuxtjs/composition-api"; +import { detectServerBaseUrl } from "../use-utils"; export const useStaticRoutes = () => { - const { $config } = useContext(); + const { $config, req } = useContext(); + const serverBase = detectServerBaseUrl(req); const prefix = `${$config.SUB_PATH}/api`.replace("//", "/"); + const fullBase = serverBase + prefix; + // Methods to Generate reference urls for assets/images * function recipeImage(recipeSlug: string, version = null, key = null) { - return `${prefix}/media/recipes/${recipeSlug}/images/original.webp?&rnd=${key}&version=${version}`; + return `${fullBase}/media/recipes/${recipeSlug}/images/original.webp?&rnd=${key}&version=${version}`; } function recipeSmallImage(recipeSlug: string, version = null, key = null) { - return `${prefix}/media/recipes/${recipeSlug}/images/min-original.webp?&rnd=${key}&version=${version}`; + return `${fullBase}/media/recipes/${recipeSlug}/images/min-original.webp?&rnd=${key}&version=${version}`; } function recipeTinyImage(recipeSlug: string, version = null, key = null) { - return `${prefix}/media/recipes/${recipeSlug}/images/tiny-original.webp?&rnd=${key}&version=${version}`; + return `${fullBase}/media/recipes/${recipeSlug}/images/tiny-original.webp?&rnd=${key}&version=${version}`; } function recipeAssetPath(recipeSlug: string, assetName: string) { - return `${prefix}/media/recipes/${recipeSlug}/assets/${assetName}`; + return `${fullBase}/media/recipes/${recipeSlug}/assets/${assetName}`; } return { diff --git a/frontend/composables/recipes/use-recipe-meta.ts b/frontend/composables/recipes/use-recipe-meta.ts index 07ec0f0c544a..ead63cc69294 100644 --- a/frontend/composables/recipes/use-recipe-meta.ts +++ b/frontend/composables/recipes/use-recipe-meta.ts @@ -1,36 +1,36 @@ import { Ref } from "@nuxtjs/composition-api"; -import { useStaticRoutes } from "../api"; +// import { useStaticRoutes } from "../api"; import { Recipe } from "~/types/api-types/recipe"; export const useRecipeMeta = (recipe: Ref) => { - const { recipeImage } = useStaticRoutes(); - console.log(recipe.value); + // const { recipeImage } = useStaticRoutes(); return () => { + const imageURL = ""; return { - title: recipe?.value?.name || "Recipe", + title: recipe?.value?.name, // @ts-ignore - mainImage: recipeImage(recipe?.value?.image), + mainImage: imageURL, meta: [ { hid: "og:title", property: "og:title", content: recipe?.value?.name || "Recipe" }, { hid: "og:desc", property: "og:description", - content: recipe?.value?.description || "", + content: recipe?.value?.description, }, { hid: "og-image", property: "og:image", - content: recipeImage(recipe?.value?.image || ""), + content: imageURL, }, { hid: "twitter:title", property: "twitter:title", - content: recipe?.value?.name || "Recipe", + content: recipe?.value?.name, }, { hid: "twitter:desc", property: "twitter:description", - content: recipe?.value?.description || "", + content: recipe?.value?.description, }, { hid: "t-type", name: "twitter:card", content: "summary_large_image" }, ], diff --git a/frontend/composables/use-utils.ts b/frontend/composables/use-utils.ts index 2bd5cafbb0e5..4e9c00c0065a 100644 --- a/frontend/composables/use-utils.ts +++ b/frontend/composables/use-utils.ts @@ -2,6 +2,24 @@ export const useAsyncKey = function () { return String(Date.now()); }; +export function detectServerBaseUrl(req: any) { + if (!req || req === undefined) { + return ""; + } + if (req.headers.referer) { + const url = new URL(req.headers.referer); + return `${url.protocol}//${url.host}`; + } else if (req.headers.host) { + const protocol = req.connection.encrypted ? "https" : "http:"; + return `${protocol}//${req.headers.host}`; + } else if (req.connection.remoteAddress) { + const protocol = req.connection.encrypted ? "https" : "http:"; + return `${protocol}//${req.connection.localAddress}:${req.connection.localPort}`; + } + + return ""; +} + export function uuid4() { // @ts-ignore return ([1e7] + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, (c) => diff --git a/frontend/nuxt.config.js b/frontend/nuxt.config.js index 216ffb98dcb3..8fe690222089 100644 --- a/frontend/nuxt.config.js +++ b/frontend/nuxt.config.js @@ -1,4 +1,5 @@ export default { + mode: "universal", // Global page headers: https://go.nuxtjs.dev/config-head head: { title: "Home", diff --git a/frontend/package.json b/frontend/package.json index 25c228989d3e..eb5dc0e82704 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -26,7 +26,7 @@ "core-js": "^3.15.1", "date-fns": "^2.23.0", "fuse.js": "^6.4.6", - "nuxt": "^2.15.7", + "nuxt": "^2.15.8", "v-jsoneditor": "^1.4.5", "vuedraggable": "^2.24.3", "vuetify": "^2.5.5" @@ -35,7 +35,7 @@ "@babel/eslint-parser": "^7.14.7", "@nuxt/types": "^2.15.7", "@nuxt/typescript-build": "^2.1.0", - "@nuxtjs/composition-api": "^0.30.0", + "@nuxtjs/composition-api": "^0.31.0", "@nuxtjs/eslint-config-typescript": "^6.0.1", "@nuxtjs/eslint-module": "^3.0.2", "@nuxtjs/vuetify": "^1.12.1", @@ -54,4 +54,4 @@ "resolutions": { "vite": "2.3.8" } -} \ No newline at end of file +} diff --git a/frontend/pages/recipe/_slug/index.vue b/frontend/pages/recipe/_slug/index.vue index 7086fb845960..2628f8b43709 100644 --- a/frontend/pages/recipe/_slug/index.vue +++ b/frontend/pages/recipe/_slug/index.vue @@ -271,12 +271,14 @@ class="mt-10" :edit="form" /> - + + + @@ -347,12 +349,14 @@ class="mt-10" :edit="form" /> - + + + @@ -449,7 +453,6 @@ import RecipeChips from "~/components/Domain/Recipe/RecipeChips.vue"; import RecipeIngredients from "~/components/Domain/Recipe/RecipeIngredients.vue"; import RecipeRating from "~/components/Domain/Recipe/RecipeRating.vue"; import RecipeTimeCard from "~/components/Domain/Recipe/RecipeTimeCard.vue"; -import RecipeAssets from "~/components/Domain/Recipe/RecipeAssets.vue"; import RecipeNutrition from "~/components/Domain/Recipe/RecipeNutrition.vue"; import RecipeInstructions from "~/components/Domain/Recipe/RecipeInstructions.vue"; import RecipeNotes from "~/components/Domain/Recipe/RecipeNotes.vue"; @@ -468,7 +471,11 @@ export default defineComponent({ components: { draggable, RecipeActionMenu, - RecipeAssets, + RecipeAssets: () => { + if (process.client) { + return import(/* webpackChunkName: "RecipeAssets" */ "~/components/Domain/Recipe/RecipeAssets.vue"); + } + }, RecipeCategoryTagSelector, RecipeChips, RecipeComments, @@ -519,9 +526,6 @@ export default defineComponent({ } }); - // =============================================================== - // Guest Mode - // =============================================================== // Check Before Leaving @@ -544,7 +548,7 @@ export default defineComponent({ const { recipe, loading, fetchRecipe } = useRecipe(slug); - // Manage a deep copy of the recipe so we can detect if changes have occured and inform + // Manage a deep copy of the recipe so we can detect if changes have occurred and inform // the user if they try to navigate away from the page without saving. const originalRecipe = ref(null); @@ -769,4 +773,3 @@ export default defineComponent({ }); - diff --git a/frontend/pages/shared/recipes/_id.vue b/frontend/pages/shared/recipes/_id.vue index 51ff85cd21ce..3a81d441d19c 100644 --- a/frontend/pages/shared/recipes/_id.vue +++ b/frontend/pages/shared/recipes/_id.vue @@ -229,12 +229,6 @@ class="mt-10" :edit="form" /> - @@ -278,7 +272,7 @@ import { } from "@nuxtjs/composition-api"; // @ts-ignore import VueMarkdown from "@adapttive/vue-markdown"; -import { useRecipeMeta } from "~/composables/recipes"; +// import { useRecipeMeta } from "~/composables/recipes"; import { useStaticRoutes, useUserApi } from "~/composables/api"; import RecipeChips from "~/components/Domain/Recipe/RecipeChips.vue"; import RecipeIngredients from "~/components/Domain/Recipe/RecipeIngredients.vue"; @@ -322,26 +316,55 @@ export default defineComponent({ }, }); + // @ts-ignore const { recipeImage } = useStaticRoutes(); + const { meta, title } = useMeta(); const recipe = useAsync(async () => { const { data } = await api.recipes.getShared(id); - if (data) { + if (data && data !== undefined) { + console.log("Computed Meta. RefKey="); + const imageURL = recipeImage(data.slug); + title.value = data.name; + + meta.value = [ + { hid: "og:title", property: "og:title", content: data.name }, + // @ts-ignore + { + hid: "og:desc", + property: "og:description", + content: data.description, + }, + { + hid: "og-image", + property: "og:image", + content: imageURL, + }, + // @ts-ignore + { + hid: "twitter:title", + property: "twitter:title", + content: data.name, + }, + // @ts-ignore + { + hid: "twitter:desc", + property: "twitter:description", + content: data.description, + }, + { hid: "t-type", name: "twitter:card", content: "summary_large_image" }, + ]; + } return data; } }); - // @ts-ignore - const recipeMeta = useRecipeMeta(recipe); - - useMeta(recipeMeta); - // @ts-ignore const { $vuetify } = useContext(); const enableLandscape = computed(() => { - const preferLandscape = recipe?.value?.settings?.landscapeView; + const preferLandscape = recipe.value?.settings?.landscapeView; const smallScreen = !$vuetify.breakpoint.smAndUp; if (preferLandscape) { diff --git a/frontend/yarn.lock b/frontend/yarn.lock index 0286effe2866..1f338a35f9f9 100644 --- a/frontend/yarn.lock +++ b/frontend/yarn.lock @@ -77,7 +77,7 @@ semver "^6.3.0" source-map "^0.5.0" -"@babel/core@^7.15.5": +"@babel/core@^7.16.0": version "7.16.0" resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.16.0.tgz#c4ff44046f5fe310525cc9eb4ef5147f0c5374d4" integrity sha512-mYZEvshBRHGsIAiyH5PzCFTCfbWfoYbO/jcSdXQSUQu1/pW0xDZAUP7KEc32heqWTAfAHhV9j1vH8Sav7l+JNQ== @@ -452,11 +452,16 @@ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.15.5.tgz#d33a58ca69facc05b26adfe4abebfed56c1c2dac" integrity sha512-2hQstc6I7T6tQsWzlboMh3SgMRPaS4H6H7cPQsJkdzTzEGqQrpLDsE2BGASU5sBPoEQyHzeqU6C8uKbFeEk6sg== -"@babel/parser@^7.15.6", "@babel/parser@^7.16.0": +"@babel/parser@^7.16.0": version "7.16.2" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.16.2.tgz#3723cd5c8d8773eef96ce57ea1d9b7faaccd12ac" integrity sha512-RUVpT0G2h6rOZwqLDTrKk7ksNv7YpAilTnYe1/Q+eDjxEceRMKVWbCsX7t8h6C1qCFi/1Y8WZjcEPBAFG27GPw== +"@babel/parser@^7.16.3": + version "7.16.4" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.16.4.tgz#d5f92f57cf2c74ffe9b37981c0e72fee7311372e" + integrity sha512-6V0qdPUaiVHH3RtZeLIsc+6pDhbYzHR8ogA8w+f+Wc77DuXto19g2QUwveINoS34Uw+W8/hQDGJCx+i4n7xcng== + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.15.4": version "7.15.4" resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.15.4.tgz#dbdeabb1e80f622d9f0b583efb2999605e0a567e" @@ -1136,6 +1141,21 @@ debug "^4.1.0" globals "^11.1.0" +"@babel/traverse@^7.16.3": + version "7.16.3" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.16.3.tgz#f63e8a938cc1b780f66d9ed3c54f532ca2d14787" + integrity sha512-eolumr1vVMjqevCpwVO99yN/LoGL0EyHiLO5I043aYQvwOJ9eR5UsZSClHVCzfhBduMAsSzgA/6AyqPjNayJag== + dependencies: + "@babel/code-frame" "^7.16.0" + "@babel/generator" "^7.16.0" + "@babel/helper-function-name" "^7.16.0" + "@babel/helper-hoist-variables" "^7.16.0" + "@babel/helper-split-export-declaration" "^7.16.0" + "@babel/parser" "^7.16.3" + "@babel/types" "^7.16.0" + debug "^4.1.0" + globals "^11.1.0" + "@babel/types@^7.0.0", "@babel/types@^7.15.0", "@babel/types@^7.15.4", "@babel/types@^7.3.0", "@babel/types@^7.4.4": version "7.15.4" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.15.4.tgz#74eeb86dbd6748d2741396557b9860e57fce0a0d" @@ -1144,7 +1164,7 @@ "@babel/helper-validator-identifier" "^7.14.9" to-fast-properties "^2.0.0" -"@babel/types@^7.15.6", "@babel/types@^7.16.0": +"@babel/types@^7.16.0": version "7.16.0" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.16.0.tgz#db3b313804f96aadd0b776c4823e127ad67289ba" integrity sha512-PJgg/k3SdLsGb3hhisFvtLOw5ts113klrpLuIPtCJIU+BB24fqq6lf8RWqKJEjzqXR9AEH1rIb5XTqwBHB+kQg== @@ -1646,18 +1666,18 @@ consola "^2.15.3" defu "^5.0.0" -"@nuxtjs/composition-api@^0.30.0": - version "0.30.0" - resolved "https://registry.yarnpkg.com/@nuxtjs/composition-api/-/composition-api-0.30.0.tgz#ea123798b8a9b2e74f80e22ccb38a3879b931e38" - integrity sha512-IEuzCY5oUmXOTYkMNwdYQMagAxtlJRzQSDJ1o7LYt5KulOawfOm+wyyNfQxQMIPz/p5Df1UQ14ORDdQ+ZjWXIw== +"@nuxtjs/composition-api@^0.31.0": + version "0.31.0" + resolved "https://registry.yarnpkg.com/@nuxtjs/composition-api/-/composition-api-0.31.0.tgz#4baa645ee45e306a49b72de6257fdb9438eb2b07" + integrity sha512-xplH/EJ17W/EjNP7M11URTOrQcjMYqQn1wXUkMOdMiSLKM58VWuCyt0uT9jNCHMUspeQ+SPzr9dxQkNBGvwfiA== dependencies: - "@vue/composition-api" "^1.3.3" + "@vue/composition-api" "^1.4.1" defu "^5.0.0" estree-walker "^2.0.2" fs-extra "^9.1.0" magic-string "^0.25.7" ufo "^0.7.9" - unplugin-vue2-script-setup "^0.6.13" + unplugin-vue2-script-setup "^0.7.3" upath "^2.0.1" "@nuxtjs/eslint-config-typescript@^6.0.1": @@ -2279,13 +2299,13 @@ "@vue/babel-plugin-transform-vue-jsx" "^1.2.1" camelcase "^5.0.0" -"@vue/compiler-core@3.2.21": - version "3.2.21" - resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.2.21.tgz#26566c32b2ad838199d471ef5df620a83846f24e" - integrity sha512-NhhiQZNG71KNq1h5pMW/fAXdTF7lJRaSI7LDm2edhHXVz1ROMICo8SreUmQnSf4Fet0UPBVqJ988eF4+936iDQ== +"@vue/compiler-core@3.2.24", "@vue/compiler-core@^3.2.23": + version "3.2.24" + resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.2.24.tgz#cadcda0e026e7f1cd453ce87160be51a5f313fe0" + integrity sha512-A0SxB2HAggKzP57LDin5gfgWOTwFyGCtQ5MTMNBADnfQYALWnYuC8kMI0DhRSplGTWRvn9Z2DAnG8f35BnojuA== dependencies: "@babel/parser" "^7.15.0" - "@vue/shared" "3.2.21" + "@vue/shared" "3.2.24" estree-walker "^2.0.2" source-map "^0.6.1" @@ -2312,10 +2332,10 @@ dependencies: tslib "^2.3.0" -"@vue/composition-api@^1.3.3": - version "1.3.3" - resolved "https://registry.yarnpkg.com/@vue/composition-api/-/composition-api-1.3.3.tgz#a782f2d40e41d4cbb6b4550692c7e01d2182d457" - integrity sha512-mjhfLjpCBecARYVJX65F0TYerlJQWtEgKjom4Btuu0x7k701EcvL66zyWQryf64HuIj9YR4h6aNRhM0AP/E3eQ== +"@vue/composition-api@^1.4.1": + version "1.4.1" + resolved "https://registry.yarnpkg.com/@vue/composition-api/-/composition-api-1.4.1.tgz#2b4a6bfabc5e8277c4b890e0c9ca55d1252ca5b8" + integrity sha512-ZTat9ru/rwecveRnFzlO2mduOBpGfnBdXn+WtBcFLV9UsL/D+6nX47RWuLiVdNxNDX0qphGZRC+JDjwt+YTnRA== dependencies: tslib "^2.3.1" @@ -2326,14 +2346,14 @@ dependencies: "@vue/shared" "3.2.9" -"@vue/ref-transform@^3.2.11": - version "3.2.21" - resolved "https://registry.yarnpkg.com/@vue/ref-transform/-/ref-transform-3.2.21.tgz#b0c554c9f640c3f005f77e676066aa0faba90984" - integrity sha512-uiEWWBsrGeun9O7dQExYWzXO3rHm/YdtFNXDVqCSoPypzOVxWxdiL+8hHeWzxMB58fVuV2sT80aUtIVyaBVZgQ== +"@vue/ref-transform@^3.2.23": + version "3.2.24" + resolved "https://registry.yarnpkg.com/@vue/ref-transform/-/ref-transform-3.2.24.tgz#335bf06e0b25be16e7056cc4117c51a79f0c9122" + integrity sha512-j6oNbsGLvea2rF8GQB9w6q7UFL1So7J+t6ducaMeWPSyjYZ+slWpwPVK6mmyghg5oGqC41R+HC5BV036Y0KhXQ== dependencies: "@babel/parser" "^7.15.0" - "@vue/compiler-core" "3.2.21" - "@vue/shared" "3.2.21" + "@vue/compiler-core" "3.2.24" + "@vue/shared" "3.2.24" estree-walker "^2.0.2" magic-string "^0.25.7" @@ -2354,10 +2374,10 @@ "@vue/shared" "3.2.9" csstype "^2.6.8" -"@vue/shared@3.2.21", "@vue/shared@^3.2.11": - version "3.2.21" - resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.2.21.tgz#4cd80c0e62cf65a7adab2449e86b6f0cb33a130b" - integrity sha512-5EQmIPK6gw4UVYUbM959B0uPsJ58+xoMESCZs3N89XyvJ9e+fX4pqEPrOGV8OroIk3SbEvJcC+eYc8BH9JQrHA== +"@vue/shared@3.2.24", "@vue/shared@^3.2.23": + version "3.2.24" + resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.2.24.tgz#d74615e856013b17fb60b19b09d712729ad5e090" + integrity sha512-BUgRiZCkCrqDps5aQ9av05xcge3rn092ztKIh17tHkeEFgP4zfXMQWBA2zfdoCdCEdBL26xtOv+FZYiOp9RUDA== "@vue/shared@3.2.9": version "3.2.9" @@ -4659,7 +4679,14 @@ domelementtype@^2.0.1, domelementtype@^2.2.0: resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.2.0.tgz#9a0b6c2782ed6a1c7323d42267183df9bd8b1d57" integrity sha512-DtBMo82pv1dFtUmHyr48beiuq792Sxohr+8Hm9zoxklYPfa6n0Z3Byjj2IV7bmr2IyqClnqEQhfgHJJ5QF0R5A== -domhandler@^4.0.0, domhandler@^4.2.0, domhandler@^4.2.2: +domhandler@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-3.3.0.tgz#6db7ea46e4617eb15cf875df68b2b8524ce0037a" + integrity sha512-J1C5rIANUbuYK+FuFL98650rihynUOEzRLxW+90bKZRWB6A1X1Tf82GxR1qAWLyfNPRvjqfip3Q5tdYlmAa9lA== + dependencies: + domelementtype "^2.0.1" + +domhandler@^4.0.0, domhandler@^4.2.0: version "4.2.2" resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-4.2.2.tgz#e825d721d19a86b8c201a35264e226c678ee755f" integrity sha512-PzE9aBMsdZO8TK4BnuJwH0QT41wgMbRzuZrHUcpYncEjmQazq8QEaBWgLG7ZyC/DAZKEgglpIA6j4Qn/HmxS3w== @@ -4674,7 +4701,7 @@ domutils@^1.7.0: dom-serializer "0" domelementtype "1" -domutils@^2.5.2, domutils@^2.6.0, domutils@^2.8.0: +domutils@^2.4.2, domutils@^2.5.2, domutils@^2.6.0: version "2.8.0" resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.8.0.tgz#4437def5db6e2d1f5d6ee859bd95ca7d02048135" integrity sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A== @@ -4789,11 +4816,6 @@ entities@^2.0.0: resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55" integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== -entities@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/entities/-/entities-3.0.1.tgz#2b887ca62585e96db3903482d336c1006c3001d4" - integrity sha512-WiyBqoomrwMdFG1e0kqvASYfnlb0lp8M5o5Fw2OFq1hNZxxcNk8Ik0Xm7LxzBhuidnZB/UtBqVCgUz3kBOP51Q== - entities@~2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/entities/-/entities-2.1.0.tgz#992d3129cf7df6870b96c57858c249a120f8b8b5" @@ -5961,6 +5983,16 @@ html-webpack-plugin@^4.5.1: tapable "^1.1.3" util.promisify "1.0.0" +htmlparser2@5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-5.0.1.tgz#7daa6fc3e35d6107ac95a4fc08781f091664f6e7" + integrity sha512-vKZZra6CSe9qsJzh0BjBGXo8dvzNsq/oGvsjfRdOrrryfeD9UOBEEQdeoqCRmKZchF5h2zOBMQ6YuQ0uRUmdbQ== + dependencies: + domelementtype "^2.0.1" + domhandler "^3.3.0" + domutils "^2.4.2" + entities "^2.0.0" + htmlparser2@^6.1.0: version "6.1.0" resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-6.1.0.tgz#c4d762b6c3371a05dbe65e94ae43a9f845fb8fb7" @@ -5971,16 +6003,6 @@ htmlparser2@^6.1.0: domutils "^2.5.2" entities "^2.0.0" -htmlparser2@^7.1.2: - version "7.1.2" - resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-7.1.2.tgz#587923d38f03bc89e03076e00cba2c7473f37f7c" - integrity sha512-d6cqsbJba2nRdg8WW2okyD4ceonFHn9jLFxhwlNcLhQWcFPdxXeJulgOLjLKtAK9T6ahd+GQNZwG9fjmGW7lyg== - dependencies: - domelementtype "^2.0.1" - domhandler "^4.2.2" - domutils "^2.8.0" - entities "^3.0.1" - http-errors@1.7.2: version "1.7.2" resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.2.tgz#4f5029cf13239f31036e5b2e55292bcfbcc85c8f" @@ -7562,7 +7584,7 @@ nuxt-vite@^0.1.1: vite "^2.4.4" vite-plugin-vue2 "^1.8.0" -nuxt@^2.15.7: +nuxt@^2.15.8: version "2.15.8" resolved "https://registry.yarnpkg.com/nuxt/-/nuxt-2.15.8.tgz#946cba46bdaaf0e3918aa27fd9ea0fed8ed303b0" integrity sha512-ceK3qLg/Baj7J8mK9bIxqw9AavrF+LXqwYEreBdY/a4Sj8YV4mIvhqea/6E7VTCNNGvKT2sJ/TTJjtfQ597lTA== @@ -10400,24 +10422,25 @@ unpipe@1.0.0, unpipe@~1.0.0: resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" integrity sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw= -unplugin-vue2-script-setup@^0.6.13: - version "0.6.13" - resolved "https://registry.yarnpkg.com/unplugin-vue2-script-setup/-/unplugin-vue2-script-setup-0.6.13.tgz#ec492ce0101684facbc0b116be3314df23d337f5" - integrity sha512-3jfzUhdKdI2gv1j62JZnuusbVWgBivUU24L3eAtezYe78xxa1CzEllTv34aCSAVC8ET6IdmiHcGvgSysmrv0pQ== +unplugin-vue2-script-setup@^0.7.3: + version "0.7.3" + resolved "https://registry.yarnpkg.com/unplugin-vue2-script-setup/-/unplugin-vue2-script-setup-0.7.3.tgz#edf63f7f183d8f50d2991d12f120f78faeb78a5a" + integrity sha512-3C32JkCS7BsNsgUkVnCEIJynHy+N/xwqiaUiMkeTm3Rk+HfHMhEPQ5Gysg3tejWY7KJyk8CohUKswTChurI1ng== dependencies: "@antfu/utils" "^0.3.0" - "@babel/core" "^7.15.5" - "@babel/generator" "^7.15.4" - "@babel/parser" "^7.15.6" - "@babel/traverse" "^7.15.4" - "@babel/types" "^7.15.6" + "@babel/core" "^7.16.0" + "@babel/generator" "^7.16.0" + "@babel/parser" "^7.16.3" + "@babel/traverse" "^7.16.3" + "@babel/types" "^7.16.0" "@rollup/pluginutils" "^4.1.1" - "@vue/ref-transform" "^3.2.11" - "@vue/shared" "^3.2.11" + "@vue/compiler-core" "^3.2.23" + "@vue/ref-transform" "^3.2.23" + "@vue/shared" "^3.2.23" defu "^5.0.0" - htmlparser2 "^7.1.2" + htmlparser2 "5.0.1" magic-string "^0.25.7" - unplugin "^0.2.11" + unplugin "^0.2.21" unplugin@^0.0.6: version "0.0.6" @@ -10426,10 +10449,10 @@ unplugin@^0.0.6: dependencies: webpack-virtual-modules "^0.4.3" -unplugin@^0.2.11: - version "0.2.20" - resolved "https://registry.yarnpkg.com/unplugin/-/unplugin-0.2.20.tgz#fd579b8f302459eb1ae3616f71c2ba93e6076187" - integrity sha512-CGnCaTqNjqeixpIlNEkpysxfR2hb4xv21xa4IURXnhYTfCp73UWuG0KcdanuhFJbwO5w+EGK4XaAaqdb/1vWbg== +unplugin@^0.2.21: + version "0.2.21" + resolved "https://registry.yarnpkg.com/unplugin/-/unplugin-0.2.21.tgz#7852cddd9f78f0b32881812fd2efd5a39dcc64e5" + integrity sha512-IJ15/L5XbhnV7J09Zjk0FT5HEkBjkXucWAXQWRsmEtUxmmxwh23yavrmDbCF6ZPxWiVB28+wnKIHePTRRpQPbQ== dependencies: webpack-virtual-modules "^0.4.3"