diff --git a/.eslintignore b/.eslintignore deleted file mode 100644 index c1861d8..0000000 --- a/.eslintignore +++ /dev/null @@ -1,4 +0,0 @@ -node_modules -public -vite.config.ts -dist diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 11de68a..d98b6c4 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -22,11 +22,11 @@ jobs: - name: Get npm cache directory id: npm-cache-dir run: | - echo "::set-output name=dir::$(npm config get cache)" + echo "NPM_DIR=$(npm config get cache)" >> $GITHUB_ENV - uses: actions/cache@v3 id: npm-cache with: - path: ${{ steps.npm-cache-dir.outputs.dir }} + path: ${{ env.NPM_DIR }} key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }} restore-keys: | ${{ runner.os }}-node- @@ -43,11 +43,10 @@ jobs: run: | # slugify branch ref slug=$(echo ${{ github.event.pull_request.head.ref || 'stg' }} | tr '[:upper:]' '[:lower:]' | sed -E 's/[^a-z0-9]+/-/g' | sed -E 's/^-+\|-+$//g') - body="$(npm run deploy -- --stage $slug 2>&1)" - body="${body//'%'/'%25'}" - body="${body//$'\n'/'%0A'}" - body="${body//$'\r'/'%0D'}" - echo "::set-output name=result::$body" + npm run deploy -- --stage $slug + echo 'COMMENT_BODY<> $GITHUB_ENV + cat ./.serverless/compose.log >> $GITHUB_ENV + echo 'EOF' >> $GITHUB_ENV - name: Find Comment uses: peter-evans/find-comment@v2 if: ${{ github.event_name == 'pull_request' }} @@ -65,5 +64,5 @@ jobs: issue-number: ${{ github.event.pull_request.number }} body: | Build output - ${{ steps.deploy.outputs.result }} + ${{ env.COMMENT_BODY }} edit-mode: replace diff --git a/commons/constants/api-paths.ts b/commons/constants/api-paths.ts new file mode 100644 index 0000000..7cab16a --- /dev/null +++ b/commons/constants/api-paths.ts @@ -0,0 +1 @@ +export const PRODUCTS_API_PATH = "products"; diff --git a/services/shop-frontend-app/src/mocks/data.ts b/commons/mocks/index.ts similarity index 88% rename from services/shop-frontend-app/src/mocks/data.ts rename to commons/mocks/index.ts index 42205cc..4a4f042 100644 --- a/services/shop-frontend-app/src/mocks/data.ts +++ b/commons/mocks/index.ts @@ -1,7 +1,7 @@ -import { OrderStatus } from "~/constants/order"; -import { CartItem } from "~/models/CartItem"; -import { Order } from "~/models/Order"; -import { AvailableProduct, Product } from "~/models/Product"; +import { OrderStatus } from "../models/Order"; +import { CartItem } from "../models/CartItem"; +import { Order } from "../models/Order"; +import { AvailableProduct, Product } from "../models/Product"; export const products: Product[] = [ { @@ -24,7 +24,7 @@ export const products: Product[] = [ }, { description: "Short Product Description4", - id: "7567ec4b-b10c-48c5-9345-fc73348a80a1", + id: "7567ec4b-b10c-48c5-9345-fc73348a80a4", price: 15, title: "ProductTest", }, @@ -36,7 +36,7 @@ export const products: Product[] = [ }, { description: "Short Product Description7", - id: "7567ec4b-b10c-45c5-9345-fc73c48a80a1", + id: "7567ec4b-b10c-45c5-9345-fc73c48a80a5", price: 15, title: "ProductName", }, diff --git a/services/shop-frontend-app/src/models/CartItem.ts b/commons/models/CartItem.ts similarity index 60% rename from services/shop-frontend-app/src/models/CartItem.ts rename to commons/models/CartItem.ts index b572860..363af9f 100755 --- a/services/shop-frontend-app/src/models/CartItem.ts +++ b/commons/models/CartItem.ts @@ -1,4 +1,4 @@ -import { Product } from "~/models/Product"; +import { Product } from "./Product"; export type CartItem = { product: Product; diff --git a/services/shop-frontend-app/src/models/Order.ts b/commons/models/Order.ts similarity index 82% rename from services/shop-frontend-app/src/models/Order.ts rename to commons/models/Order.ts index 2900e50..201d9eb 100755 --- a/services/shop-frontend-app/src/models/Order.ts +++ b/commons/models/Order.ts @@ -1,5 +1,15 @@ import * as Yup from "yup"; -import { OrderStatus } from "~/constants/order"; + +export enum OrderStatus { + Open = "OPEN", + Approved = "APPROVED", + Confirmed = "CONFIRMED", + Sent = "SENT", + Completed = "COMPLETED", + Cancelled = "CANCELLED", +} + +export const ORDER_STATUS_FLOW = Object.values(OrderStatus); export const AddressSchema = Yup.object({ firstName: Yup.string().required().default(""), diff --git a/services/shop-frontend-app/src/models/Product.ts b/commons/models/Product.ts similarity index 100% rename from services/shop-frontend-app/src/models/Product.ts rename to commons/models/Product.ts diff --git a/commons/package.json b/commons/package.json new file mode 100644 index 0000000..ea22cad --- /dev/null +++ b/commons/package.json @@ -0,0 +1,10 @@ +{ + "name": "@guria.dev/aws-js-practitioner-commons", + "version": "1.0.0", + "engines": { + "node": ">=16.0.0" + }, + "dependencies": { + "yup": "^0.32.11" + } +} diff --git a/commons/tsconfig.json b/commons/tsconfig.json new file mode 100644 index 0000000..b8b5651 --- /dev/null +++ b/commons/tsconfig.json @@ -0,0 +1,17 @@ +{ + "compilerOptions": { + "lib": ["ESNext"], + "moduleResolution": "node", + "noUnusedLocals": true, + "noUnusedParameters": true, + "removeComments": true, + "sourceMap": true, + "target": "ES2020", + "outDir": "lib" + }, + "include": ["serverless.ts", "*.ts", "mocks/*", "models/*", "constants/*"], + "exclude": [ + "node_modules/**/*", + ".serverless/**/*" + ] +} diff --git a/package-lock.json b/package-lock.json index f9b8bfa..9f94a91 100644 --- a/package-lock.json +++ b/package-lock.json @@ -9,7 +9,8 @@ "version": "1.0.0", "workspaces": [ "services/*", - "plugins/*" + "plugins/*", + "commons" ], "devDependencies": { "@serverless/compose": "^1.3.0", @@ -28,6 +29,16 @@ "node": ">=16.0.0" } }, + "commons": { + "name": "@guria.dev/aws-js-practitioner-commons", + "version": "1.0.0", + "dependencies": { + "yup": "^0.32.11" + }, + "engines": { + "node": ">=16.0.0" + } + }, "node_modules/@adobe/css-tools": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/@adobe/css-tools/-/css-tools-4.0.1.tgz", @@ -38,7 +49,6 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", - "dev": true, "dependencies": { "@jridgewell/gen-mapping": "^0.1.0", "@jridgewell/trace-mapping": "^0.3.9" @@ -1441,7 +1451,6 @@ "version": "7.19.4", "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.19.4.tgz", "integrity": "sha512-CHIGpJcUQ5lU9KrPHTjBMhVwQG6CQjxfg36fGXl3qk/Gik1WwWachaXFuo0uCWJT/mStOKtcbFJCaVLihC1CMw==", - "dev": true, "engines": { "node": ">=6.9.0" } @@ -1450,7 +1459,6 @@ "version": "7.19.3", "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.19.3.tgz", "integrity": "sha512-WneDJxdsjEvyKtXKsaBGbDeiyOjR5vYq4HcShxnIbG0qixpoHjI3MqeZM9NDvsojNCEBItQE4juOo/bU6e72gQ==", - "dev": true, "dependencies": { "@ampproject/remapping": "^2.1.0", "@babel/code-frame": "^7.18.6", @@ -1480,7 +1488,6 @@ "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, "bin": { "semver": "bin/semver.js" } @@ -1489,7 +1496,6 @@ "version": "7.19.5", "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.19.5.tgz", "integrity": "sha512-DxbNz9Lz4aMZ99qPpO1raTbcrI1ZeYh+9NR9qhfkQIbFtVEqotHojEBxHzmxhVONkGt6VyrqVQcgpefMy9pqcg==", - "dev": true, "dependencies": { "@babel/types": "^7.19.4", "@jridgewell/gen-mapping": "^0.3.2", @@ -1503,7 +1509,6 @@ "version": "0.3.2", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", - "dev": true, "dependencies": { "@jridgewell/set-array": "^1.0.1", "@jridgewell/sourcemap-codec": "^1.4.10", @@ -1529,7 +1534,6 @@ "version": "7.19.3", "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.19.3.tgz", "integrity": "sha512-65ESqLGyGmLvgR0mst5AdW1FkNlj9rQsCKduzEoEPhBCDFGXvz2jW6bXFG6i0/MrV2s7hhXjjb2yAzcPuQlLwg==", - "dev": true, "dependencies": { "@babel/compat-data": "^7.19.3", "@babel/helper-validator-option": "^7.18.6", @@ -1547,7 +1551,6 @@ "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true, "bin": { "semver": "bin/semver.js" } @@ -1556,7 +1559,6 @@ "version": "7.18.9", "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==", - "dev": true, "engines": { "node": ">=6.9.0" } @@ -1565,7 +1567,6 @@ "version": "7.19.0", "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz", "integrity": "sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==", - "dev": true, "dependencies": { "@babel/template": "^7.18.10", "@babel/types": "^7.19.0" @@ -1578,7 +1579,6 @@ "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", - "dev": true, "dependencies": { "@babel/types": "^7.18.6" }, @@ -1601,7 +1601,6 @@ "version": "7.19.0", "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.19.0.tgz", "integrity": "sha512-3HBZ377Fe14RbLIA+ac3sY4PTgpxHVkFrESaWhoI5PuyXPBBX8+C34qblV9G89ZtycGJCmCI/Ut+VUDK4bltNQ==", - "dev": true, "dependencies": { "@babel/helper-environment-visitor": "^7.18.9", "@babel/helper-module-imports": "^7.18.6", @@ -1628,7 +1627,6 @@ "version": "7.19.4", "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.19.4.tgz", "integrity": "sha512-f9Xq6WqBFqaDfbCzn2w85hwklswz5qsKlh7f08w4Y9yhJHpnNC0QemtSkK5YyOY8kPGvyiwdzZksGUhnGdaUIg==", - "dev": true, "dependencies": { "@babel/types": "^7.19.4" }, @@ -1640,7 +1638,6 @@ "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", - "dev": true, "dependencies": { "@babel/types": "^7.18.6" }, @@ -1668,7 +1665,6 @@ "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz", "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==", - "dev": true, "engines": { "node": ">=6.9.0" } @@ -1677,7 +1673,6 @@ "version": "7.19.4", "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.19.4.tgz", "integrity": "sha512-G+z3aOx2nfDHwX/kyVii5fJq+bgscg89/dJNWpYeKeBv3v9xX8EIabmx1k6u9LS04H7nROFVRVK+e3k0VHp+sw==", - "dev": true, "dependencies": { "@babel/template": "^7.18.10", "@babel/traverse": "^7.19.4", @@ -1768,7 +1763,6 @@ "version": "7.19.4", "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.19.4.tgz", "integrity": "sha512-qpVT7gtuOLjWeDTKLkJ6sryqLliBaFpAtGeqw5cs5giLldvh+Ch0plqnUMKoVAUS6ZEueQQiZV+p5pxtPitEsA==", - "dev": true, "bin": { "parser": "bin/babel-parser.js" }, @@ -1869,7 +1863,6 @@ "version": "7.18.10", "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.10.tgz", "integrity": "sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==", - "dev": true, "dependencies": { "@babel/code-frame": "^7.18.6", "@babel/parser": "^7.18.10", @@ -1883,7 +1876,6 @@ "version": "7.19.4", "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.19.4.tgz", "integrity": "sha512-w3K1i+V5u2aJUOXBFFC5pveFLmtq1s3qcdDNC2qRI6WPBQIDaKFqXxDEqDO/h1dQ3HjsZoZMyIy6jGLq0xtw+g==", - "dev": true, "dependencies": { "@babel/code-frame": "^7.18.6", "@babel/generator": "^7.19.4", @@ -1904,7 +1896,6 @@ "version": "11.12.0", "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true, "engines": { "node": ">=4" } @@ -1927,6 +1918,12 @@ "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==" }, + "node_modules/@cush/relative": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@cush/relative/-/relative-1.0.0.tgz", + "integrity": "sha512-RpfLEtTlyIxeNPGKcokS+p3BZII/Q3bYxryFRglh5H3A3T8q9fsLYm72VYAMEOOIBLEa8o93kFLiBDUWKrwXZA==", + "dev": true + }, "node_modules/@emotion/babel-plugin": { "version": "11.10.2", "resolved": "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.10.2.tgz", @@ -2147,6 +2144,10 @@ "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", "dev": true }, + "node_modules/@guria.dev/aws-js-practitioner-commons": { + "resolved": "commons", + "link": true + }, "node_modules/@guria.dev/aws-js-practitioner-shop-frontend": { "resolved": "services/shop-frontend-app", "link": true @@ -2241,7 +2242,6 @@ "version": "0.1.1", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", - "dev": true, "dependencies": { "@jridgewell/set-array": "^1.0.0", "@jridgewell/sourcemap-codec": "^1.4.10" @@ -2262,7 +2262,6 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", - "dev": true, "engines": { "node": ">=6.0.0" } @@ -2271,7 +2270,7 @@ "version": "0.3.2", "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz", "integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==", - "dev": true, + "devOptional": true, "dependencies": { "@jridgewell/gen-mapping": "^0.3.0", "@jridgewell/trace-mapping": "^0.3.9" @@ -2281,7 +2280,7 @@ "version": "0.3.2", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", - "dev": true, + "devOptional": true, "dependencies": { "@jridgewell/set-array": "^1.0.1", "@jridgewell/sourcemap-codec": "^1.4.10", @@ -2353,14 +2352,14 @@ } }, "node_modules/@mui/base": { - "version": "5.0.0-alpha.100", - "resolved": "https://registry.npmjs.org/@mui/base/-/base-5.0.0-alpha.100.tgz", - "integrity": "sha512-bSoJEKCENtmJrJDECHUe9PiqztIUACuSskyqw9ypqE7Dz3WxL3e8puFsWBkUsz+WOCjXh4B4Xljn88Ucxxv5HA==", + "version": "5.0.0-alpha.101", + "resolved": "https://registry.npmjs.org/@mui/base/-/base-5.0.0-alpha.101.tgz", + "integrity": "sha512-a54BcXvArGOKUZ2zyS/7B9GNhAGgfomEQSkfEZ88Nc9jKvXA+Mppenfz5o4JCAnD8c4VlePmz9rKOYvvum1bZw==", "dependencies": { "@babel/runtime": "^7.19.0", "@emotion/is-prop-valid": "^1.2.0", "@mui/types": "^7.2.0", - "@mui/utils": "^5.10.6", + "@mui/utils": "^5.10.9", "@popperjs/core": "^2.11.6", "clsx": "^1.2.1", "prop-types": "^15.8.1", @@ -2390,18 +2389,18 @@ "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==" }, "node_modules/@mui/core-downloads-tracker": { - "version": "5.10.8", - "resolved": "https://registry.npmjs.org/@mui/core-downloads-tracker/-/core-downloads-tracker-5.10.8.tgz", - "integrity": "sha512-V5D7OInO4P9PdT/JACg7fwjbOORm3GklaMVgdGomjyxiyetgRND5CC9r35e1LK/DqHdoyDuhbFzdfrqWtpmEIw==", + "version": "5.10.9", + "resolved": "https://registry.npmjs.org/@mui/core-downloads-tracker/-/core-downloads-tracker-5.10.9.tgz", + "integrity": "sha512-rqoFu4qww6KJBbXYhyRd9YXjwBHa3ylnBPSWbGf1bdfG0AYMKmVzg8zxkWvxAWOp97kvx3M2kNPb0xMIDZiogQ==", "funding": { "type": "opencollective", "url": "https://opencollective.com/mui" } }, "node_modules/@mui/icons-material": { - "version": "5.10.6", - "resolved": "https://registry.npmjs.org/@mui/icons-material/-/icons-material-5.10.6.tgz", - "integrity": "sha512-QwxdRmLA46S94B0hExPDx0td+A2unF+33bQ6Cs+lNpJKVsm1YeHwNdYXYcnpWeHeQQ07055OXl7IB2GKDd0MfA==", + "version": "5.10.9", + "resolved": "https://registry.npmjs.org/@mui/icons-material/-/icons-material-5.10.9.tgz", + "integrity": "sha512-sqClXdEM39WKQJOQ0ZCPTptaZgqwibhj2EFV9N0v7BU1PO8y4OcX/a2wIQHn4fNuDjIZktJIBrmU23h7aqlGgg==", "dependencies": { "@babel/runtime": "^7.19.0" }, @@ -2424,16 +2423,16 @@ } }, "node_modules/@mui/material": { - "version": "5.10.8", - "resolved": "https://registry.npmjs.org/@mui/material/-/material-5.10.8.tgz", - "integrity": "sha512-sF/Ka0IJjGXV52zoT4xAWEqXVRjNYbIjATo9L4Q5oQC5iJpGrKJFY16uNtWWB0+vp/nayAuPGZHrxtV+t3ecdQ==", + "version": "5.10.9", + "resolved": "https://registry.npmjs.org/@mui/material/-/material-5.10.9.tgz", + "integrity": "sha512-sdOzlgpCmyw48je+E7o9UGGJpgBaF+60FlTRpVpcd/z+LUhnuzzuis891yPI5dPPXLBDL/bO4SsGg51lgNeLBw==", "dependencies": { "@babel/runtime": "^7.19.0", - "@mui/base": "5.0.0-alpha.100", - "@mui/core-downloads-tracker": "^5.10.8", - "@mui/system": "^5.10.8", + "@mui/base": "5.0.0-alpha.101", + "@mui/core-downloads-tracker": "^5.10.9", + "@mui/system": "^5.10.9", "@mui/types": "^7.2.0", - "@mui/utils": "^5.10.6", + "@mui/utils": "^5.10.9", "@types/react-transition-group": "^4.4.5", "clsx": "^1.2.1", "csstype": "^3.1.1", @@ -2473,12 +2472,12 @@ "integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==" }, "node_modules/@mui/private-theming": { - "version": "5.10.6", - "resolved": "https://registry.npmjs.org/@mui/private-theming/-/private-theming-5.10.6.tgz", - "integrity": "sha512-I/W0QyTLRdEx6py3lKAquKO/rNF/7j+nIOM/xCyI9kU0fcotVTcTY08mKMsS6vrzdWpi6pAkD0wP0KwWy5R5VA==", + "version": "5.10.9", + "resolved": "https://registry.npmjs.org/@mui/private-theming/-/private-theming-5.10.9.tgz", + "integrity": "sha512-BN7/CnsVPVyBaQpDTij4uV2xGYHHHhOgpdxeYLlIu+TqnsVM7wUeF+37kXvHovxM6xmL5qoaVUD98gDC0IZnHg==", "dependencies": { "@babel/runtime": "^7.19.0", - "@mui/utils": "^5.10.6", + "@mui/utils": "^5.10.9", "prop-types": "^15.8.1" }, "engines": { @@ -2530,15 +2529,15 @@ } }, "node_modules/@mui/styles": { - "version": "5.10.8", - "resolved": "https://registry.npmjs.org/@mui/styles/-/styles-5.10.8.tgz", - "integrity": "sha512-aQGfz4Av12Bf0C8sJC0a7UoTbusD0IUKo4zNjkB5ERmhIFrbgN1G8XDIVvTgrgwdKbstbFlHDFfXkDcYe9elSQ==", + "version": "5.10.9", + "resolved": "https://registry.npmjs.org/@mui/styles/-/styles-5.10.9.tgz", + "integrity": "sha512-dK6tsHkEp88MkwEDCxbqscj4Fa2aYBkfwy1MXMCexzx9TqxuahC0KSxBHfMMWZ0zV7xW5Suzwu8vveCp4uFN5A==", "dependencies": { "@babel/runtime": "^7.19.0", "@emotion/hash": "^0.9.0", - "@mui/private-theming": "^5.10.6", + "@mui/private-theming": "^5.10.9", "@mui/types": "^7.2.0", - "@mui/utils": "^5.10.6", + "@mui/utils": "^5.10.9", "clsx": "^1.2.1", "csstype": "^3.1.1", "hoist-non-react-statics": "^3.3.2", @@ -2570,15 +2569,15 @@ } }, "node_modules/@mui/system": { - "version": "5.10.8", - "resolved": "https://registry.npmjs.org/@mui/system/-/system-5.10.8.tgz", - "integrity": "sha512-hRQ354zcrYP/KHqK8FheICSvE9raQaUgQaV+A3oD4JETaFUCVI9Ytt+RcQYgTqx02xlCXIjl8LK1rPjTneySqw==", + "version": "5.10.9", + "resolved": "https://registry.npmjs.org/@mui/system/-/system-5.10.9.tgz", + "integrity": "sha512-B6fFC0sK06hNmqY7fAUfwShQv594+u/DT1YEFHPtK4laouTu7V4vSGQWi1WJT9Bjs9Db5D1bRDJ+Yy+tc3QOYA==", "dependencies": { "@babel/runtime": "^7.19.0", - "@mui/private-theming": "^5.10.6", + "@mui/private-theming": "^5.10.9", "@mui/styled-engine": "^5.10.8", "@mui/types": "^7.2.0", - "@mui/utils": "^5.10.6", + "@mui/utils": "^5.10.9", "clsx": "^1.2.1", "csstype": "^3.1.1", "prop-types": "^15.8.1" @@ -2622,9 +2621,9 @@ } }, "node_modules/@mui/utils": { - "version": "5.10.6", - "resolved": "https://registry.npmjs.org/@mui/utils/-/utils-5.10.6.tgz", - "integrity": "sha512-g0Qs8xN/MW2M3fLL8197h5J2VB9U+49fLlnKKqC6zy/yus5cZwdT+Gwec+wUMxgwQoxMDn+J8oDWAn28kEOR/Q==", + "version": "5.10.9", + "resolved": "https://registry.npmjs.org/@mui/utils/-/utils-5.10.9.tgz", + "integrity": "sha512-2tdHWrq3+WCy+G6TIIaFx3cg7PorXZ71P375ExuX61od1NOAJP1mK90VxQ8N4aqnj2vmO3AQDkV4oV2Ktvt4bA==", "dependencies": { "@babel/runtime": "^7.19.0", "@types/prop-types": "^15.7.5", @@ -2693,7 +2692,7 @@ "version": "1.0.0-next.21", "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.21.tgz", "integrity": "sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==", - "dev": true + "devOptional": true }, "node_modules/@popperjs/core": { "version": "2.11.6", @@ -3364,7 +3363,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", - "dev": true, + "devOptional": true, "engines": { "node": ">= 10" } @@ -3828,12 +3827,12 @@ } }, "node_modules/@vitest/coverage-c8": { - "version": "0.24.1", - "resolved": "https://registry.npmjs.org/@vitest/coverage-c8/-/coverage-c8-0.24.1.tgz", - "integrity": "sha512-cOFHXRHB9WHtGgsHE4FX4Ef1c9Hon668RNJQOJvqSy1/1Y7zIYIBhFWmuFKLZRCMV4jGT5CRiuB9KtdNsOc3og==", + "version": "0.24.3", + "resolved": "https://registry.npmjs.org/@vitest/coverage-c8/-/coverage-c8-0.24.3.tgz", + "integrity": "sha512-tAmMyHxWYnAwGeJb7QgTuEX8aLasTg4X1/6INobXa/7wYGEJ28CACFO5iLn1HzFVPoLvhsS3luQjiflGjjSMRQ==", "dependencies": { "c8": "^7.12.0", - "vitest": "0.24.1" + "vitest": "0.24.3" }, "funding": { "url": "https://github.com/sponsors/antfu" @@ -3843,7 +3842,7 @@ "version": "0.24.1", "resolved": "https://registry.npmjs.org/@vitest/ui/-/ui-0.24.1.tgz", "integrity": "sha512-7baeu1+XspO+eAOsygPNL1k8EQRpn7Mj8fhwgyzsTzoYAkqP62mOPO+sqa+TdVaE3241sbAniIzHD1mVMJp70A==", - "dev": true, + "devOptional": true, "dependencies": { "sirv": "^2.0.2" } @@ -3878,7 +3877,7 @@ "version": "2.0.6", "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==", - "dev": true + "devOptional": true }, "node_modules/acorn": { "version": "8.8.0", @@ -3895,7 +3894,7 @@ "version": "7.0.1", "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-7.0.1.tgz", "integrity": "sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q==", - "dev": true, + "devOptional": true, "dependencies": { "acorn": "^8.1.0", "acorn-walk": "^8.0.2" @@ -3914,7 +3913,7 @@ "version": "8.2.0", "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", - "dev": true, + "devOptional": true, "engines": { "node": ">=0.4.0" } @@ -3932,7 +3931,7 @@ "version": "6.0.2", "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "dev": true, + "devOptional": true, "dependencies": { "debug": "4" }, @@ -4470,7 +4469,6 @@ "version": "4.21.4", "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz", "integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==", - "dev": true, "funding": [ { "type": "opencollective", @@ -4553,7 +4551,7 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "dev": true + "devOptional": true }, "node_modules/builtin-modules": { "version": "3.3.0", @@ -4683,7 +4681,6 @@ "version": "1.0.30001418", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001418.tgz", "integrity": "sha512-oIs7+JL3K9JRQ3jPZjlH6qyYDp+nBTCais7hjh0s+fuBwufc7uZ7hPYMXrDOJhV360KGMTcczMRObk0/iMqZRg==", - "dev": true, "funding": [ { "type": "opencollective", @@ -5225,13 +5222,13 @@ "version": "0.5.0", "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.5.0.tgz", "integrity": "sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==", - "dev": true + "devOptional": true }, "node_modules/cssstyle": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", - "dev": true, + "devOptional": true, "dependencies": { "cssom": "~0.3.6" }, @@ -5243,7 +5240,7 @@ "version": "0.3.8", "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", - "dev": true + "devOptional": true }, "node_modules/csstype": { "version": "3.1.1", @@ -5279,7 +5276,7 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-3.0.2.tgz", "integrity": "sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==", - "dev": true, + "devOptional": true, "dependencies": { "abab": "^2.0.6", "whatwg-mimetype": "^3.0.0", @@ -5293,7 +5290,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz", "integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==", - "dev": true, + "devOptional": true, "dependencies": { "punycode": "^2.1.1" }, @@ -5305,7 +5302,7 @@ "version": "11.0.0", "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz", "integrity": "sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==", - "dev": true, + "devOptional": true, "dependencies": { "tr46": "^3.0.0", "webidl-conversions": "^7.0.0" @@ -5340,7 +5337,7 @@ "version": "10.4.1", "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.1.tgz", "integrity": "sha512-F29o+vci4DodHYT9UrR5IEbfBw9pE5eSapIJdTqXK5+6hq+t8VRxwQyKlW2i+KDKFkkJQRvFyI/QXD83h8LyQw==", - "dev": true + "devOptional": true }, "node_modules/decompress": { "version": "4.2.1", @@ -5532,7 +5529,7 @@ "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 + "devOptional": true }, "node_modules/deepmerge": { "version": "2.2.1", @@ -5783,7 +5780,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/domexception/-/domexception-4.0.0.tgz", "integrity": "sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==", - "dev": true, + "devOptional": true, "dependencies": { "webidl-conversions": "^7.0.0" }, @@ -5819,8 +5816,7 @@ "node_modules/electron-to-chromium": { "version": "1.4.276", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.276.tgz", - "integrity": "sha512-EpuHPqu8YhonqLBXHoU6hDJCD98FCe6KDoet3/gY1qsQ6usjJoHqBH2YIVs8FXaAtHwVL8Uqa/fsYao/vq9VWQ==", - "dev": true + "integrity": "sha512-EpuHPqu8YhonqLBXHoU6hDJCD98FCe6KDoet3/gY1qsQ6usjJoHqBH2YIVs8FXaAtHwVL8Uqa/fsYao/vq9VWQ==" }, "node_modules/emoji-regex": { "version": "8.0.0", @@ -6341,7 +6337,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz", "integrity": "sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==", - "dev": true, + "devOptional": true, "dependencies": { "esprima": "^4.0.1", "estraverse": "^5.2.0", @@ -6363,7 +6359,7 @@ "version": "0.3.0", "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==", - "dev": true, + "devOptional": true, "dependencies": { "prelude-ls": "~1.1.2", "type-check": "~0.3.2" @@ -6376,7 +6372,7 @@ "version": "0.8.3", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", - "dev": true, + "devOptional": true, "dependencies": { "deep-is": "~0.1.3", "fast-levenshtein": "~2.0.6", @@ -6393,7 +6389,7 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==", - "dev": true, + "devOptional": true, "engines": { "node": ">= 0.8.0" } @@ -6402,7 +6398,6 @@ "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, "optional": true, "engines": { "node": ">=0.10.0" @@ -6412,7 +6407,7 @@ "version": "0.3.2", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==", - "dev": true, + "devOptional": true, "dependencies": { "prelude-ls": "~1.1.2" }, @@ -6681,7 +6676,7 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true, + "devOptional": true, "bin": { "esparse": "bin/esparse.js", "esvalidate": "bin/esvalidate.js" @@ -6727,7 +6722,7 @@ "version": "5.3.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, + "devOptional": true, "engines": { "node": ">=4.0" } @@ -6736,7 +6731,7 @@ "version": "2.0.3", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true, + "devOptional": true, "engines": { "node": ">=0.10.0" } @@ -6874,7 +6869,7 @@ "version": "2.0.6", "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "dev": true + "devOptional": true }, "node_modules/fast-safe-stringify": { "version": "2.1.1", @@ -7350,7 +7345,6 @@ "version": "1.0.0-beta.2", "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "dev": true, "engines": { "node": ">=6.9.0" } @@ -7514,6 +7508,12 @@ "node": ">=10.13.0" } }, + "node_modules/glob-regex": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/glob-regex/-/glob-regex-0.3.2.tgz", + "integrity": "sha512-m5blUd3/OqDTWwzBBtWBPrGlAzatRywHameHeekAZyZrskYouOGdNB8T/q6JucucvJXtOuyHIn0/Yia7iDasDw==", + "dev": true + }, "node_modules/globals": { "version": "13.17.0", "resolved": "https://registry.npmjs.org/globals/-/globals-13.17.0.tgz", @@ -7549,6 +7549,12 @@ "url": "https://github.com/sponsors/sindresorhus" } }, + "node_modules/globrex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/globrex/-/globrex-0.1.2.tgz", + "integrity": "sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==", + "dev": true + }, "node_modules/got": { "version": "11.8.5", "resolved": "https://registry.npmjs.org/got/-/got-11.8.5.tgz", @@ -7741,7 +7747,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz", "integrity": "sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==", - "dev": true, + "devOptional": true, "dependencies": { "whatwg-encoding": "^2.0.0" }, @@ -7780,7 +7786,7 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", - "dev": true, + "devOptional": true, "dependencies": { "@tootallnate/once": "2", "agent-base": "6", @@ -7807,7 +7813,7 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", - "dev": true, + "devOptional": true, "dependencies": { "agent-base": "6", "debug": "4" @@ -8194,7 +8200,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", - "dev": true + "devOptional": true }, "node_modules/is-promise": { "version": "2.2.2", @@ -8610,7 +8616,7 @@ "version": "20.0.1", "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-20.0.1.tgz", "integrity": "sha512-pksjj7Rqoa+wdpkKcLzQRHhJCEE42qQhl/xLMUKHgoSejaKOdaXEAnqs6uDNwMl/fciHTzKeR8Wm8cw7N+g98A==", - "dev": true, + "devOptional": true, "dependencies": { "abab": "^2.0.6", "acorn": "^8.8.0", @@ -8655,7 +8661,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz", "integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==", - "dev": true, + "devOptional": true, "dependencies": { "punycode": "^2.1.1" }, @@ -8667,7 +8673,7 @@ "version": "11.0.0", "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz", "integrity": "sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==", - "dev": true, + "devOptional": true, "dependencies": { "tr46": "^3.0.0", "webidl-conversions": "^7.0.0" @@ -8680,7 +8686,7 @@ "version": "8.9.0", "resolved": "https://registry.npmjs.org/ws/-/ws-8.9.0.tgz", "integrity": "sha512-Ja7nszREasGaYUYCI2k4lCKIRTt+y7XuqVoHR44YpI49TtryyqbqvDMn5eqfW7e6HzTukDRIsXqzVHScqRcafg==", - "dev": true, + "devOptional": true, "engines": { "node": ">=10.0.0" }, @@ -8701,7 +8707,6 @@ "version": "2.5.2", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true, "bin": { "jsesc": "bin/jsesc" }, @@ -8804,7 +8809,6 @@ "version": "2.2.1", "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", - "dev": true, "bin": { "json5": "lib/cli.js" }, @@ -9474,7 +9478,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-1.0.1.tgz", "integrity": "sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==", - "dev": true, + "devOptional": true, "engines": { "node": ">=10" } @@ -9726,8 +9730,7 @@ "node_modules/node-releases": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz", - "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==", - "dev": true + "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==" }, "node_modules/normalize-package-data": { "version": "2.5.0", @@ -9973,7 +9976,7 @@ "version": "2.2.2", "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.2.tgz", "integrity": "sha512-90yv+6538zuvUMnN+zCr8LuV6bPFdq50304114vJYJ8RDyK8D5O9Phpbd6SZWgI7PwzmmfN1upeOJlvybDSgCw==", - "dev": true + "devOptional": true }, "node_modules/object-assign": { "version": "4.1.1", @@ -10352,7 +10355,7 @@ "version": "7.1.1", "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.1.tgz", "integrity": "sha512-kwpuwzB+px5WUg9pyK0IcK/shltJN5/OVhQagxhCQNtT9Y9QRZqNY2e1cmbu/paRh5LMnz/oVTVLBpjFmMZhSg==", - "dev": true, + "devOptional": true, "dependencies": { "entities": "^4.4.0" }, @@ -10364,7 +10367,7 @@ "version": "4.4.0", "resolved": "https://registry.npmjs.org/entities/-/entities-4.4.0.tgz", "integrity": "sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==", - "dev": true, + "devOptional": true, "engines": { "node": ">=0.12" }, @@ -10736,7 +10739,7 @@ "version": "1.9.0", "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==", - "dev": true + "devOptional": true }, "node_modules/pump": { "version": "3.0.0", @@ -10752,7 +10755,7 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "dev": true, + "devOptional": true, "engines": { "node": ">=6" } @@ -10786,7 +10789,7 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", - "dev": true + "devOptional": true }, "node_modules/queue-microtask": { "version": "1.2.3", @@ -11086,6 +11089,24 @@ "node": ">=8.10.0" } }, + "node_modules/recrawl-sync": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/recrawl-sync/-/recrawl-sync-2.2.2.tgz", + "integrity": "sha512-E2sI4F25Fu2nrfV+KsnC7/qfk/spQIYXlonfQoS4rwxeNK5BjxnLPbWiRXHVXPwYBOTWtPX5765kTm/zJiL+LQ==", + "dev": true, + "dependencies": { + "@cush/relative": "^1.0.0", + "glob-regex": "^0.3.0", + "slash": "^3.0.0", + "tslib": "^1.9.3" + } + }, + "node_modules/recrawl-sync/node_modules/tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, "node_modules/redent": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", @@ -11159,7 +11180,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", - "dev": true + "devOptional": true }, "node_modules/resolve": { "version": "2.0.0-next.4", @@ -11357,7 +11378,7 @@ "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true + "devOptional": true }, "node_modules/sax": { "version": "1.2.1", @@ -11369,7 +11390,7 @@ "version": "6.0.0", "resolved": "https://registry.npmjs.org/saxes/-/saxes-6.0.0.tgz", "integrity": "sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==", - "dev": true, + "devOptional": true, "dependencies": { "xmlchars": "^2.2.0" }, @@ -11676,7 +11697,7 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/sirv/-/sirv-2.0.2.tgz", "integrity": "sha512-4Qog6aE29nIjAOKe/wowFTxOdmbEZKb+3tsLljaBRzJwtqto0BChD2zzH0LhgCSXiI+V7X+Y45v14wBZQ1TK3w==", - "dev": true, + "devOptional": true, "dependencies": { "@polka/url": "^1.0.0-next.20", "mrmime": "^1.0.0", @@ -11783,7 +11804,7 @@ "version": "0.5.21", "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", - "dev": true, + "devOptional": true, "dependencies": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" @@ -11793,7 +11814,7 @@ "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, + "devOptional": true, "engines": { "node": ">=0.10.0" } @@ -12171,7 +12192,7 @@ "version": "3.2.4", "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", - "dev": true + "devOptional": true }, "node_modules/tar": { "version": "6.1.11", @@ -12264,7 +12285,7 @@ "version": "5.15.1", "resolved": "https://registry.npmjs.org/terser/-/terser-5.15.1.tgz", "integrity": "sha512-K1faMUvpm/FBxjBXud0LWVAGxmvoPbZbfTCYbSgaaYQaIXI3/TdI7a7ZGA73Zrou6Q8Zmz3oeUTsp/dj+ag2Xw==", - "dev": true, + "devOptional": true, "dependencies": { "@jridgewell/source-map": "^0.3.2", "acorn": "^8.5.0", @@ -12282,7 +12303,7 @@ "version": "2.20.3", "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true + "devOptional": true }, "node_modules/test-exclude": { "version": "6.0.0", @@ -12424,7 +12445,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.0.tgz", "integrity": "sha512-eM+pCBxXO/njtF7vdFsHuqb+ElbxqtI4r5EAvk6grfAFyJ6IvWlSkfZ5T9ozC6xWw3Fj1fGoSmrl0gUs46JVIw==", - "dev": true, + "devOptional": true, "engines": { "node": ">=6" } @@ -12433,7 +12454,7 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.2.tgz", "integrity": "sha512-G9fqXWoYFZgTc2z8Q5zaHy/vJMjm+WV0AkAeHxVCQiEB1b+dGvWzFW6QV07cY5jQ5gRkeid2qIkzkxUnmoQZUQ==", - "dev": true, + "devOptional": true, "dependencies": { "psl": "^1.1.33", "punycode": "^2.1.1", @@ -12448,7 +12469,7 @@ "version": "0.2.0", "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", - "dev": true, + "devOptional": true, "engines": { "node": ">= 4.0.0" } @@ -12486,6 +12507,20 @@ "node": ">=0.8.0" } }, + "node_modules/tsconfig-paths": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-4.1.0.tgz", + "integrity": "sha512-AHx4Euop/dXFC+Vx589alFba8QItjF+8hf8LtmuiCwHyI4rHXQtOOENaM8kvYf5fR0dRChy3wzWIZ9WbB7FWow==", + "dev": true, + "dependencies": { + "json5": "^2.2.1", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, "node_modules/tslib": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", @@ -12638,7 +12673,6 @@ "version": "1.0.10", "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", - "dev": true, "funding": [ { "type": "opencollective", @@ -12683,7 +12717,7 @@ "version": "1.5.10", "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", - "dev": true, + "devOptional": true, "dependencies": { "querystringify": "^2.1.1", "requires-port": "^1.0.0" @@ -12818,6 +12852,21 @@ "vite": ">=2.8" } }, + "node_modules/vite-tsconfig-paths": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/vite-tsconfig-paths/-/vite-tsconfig-paths-3.5.1.tgz", + "integrity": "sha512-t7cPvDMDxOCUxxNLqngXiX+L6jPYBr+eMgkeVadknxBb89d2s1aejz+wFEep010VfXjGVAUWGEFPe1fkRYTFvg==", + "dev": true, + "dependencies": { + "debug": "^4.1.1", + "globrex": "^0.1.2", + "recrawl-sync": "^2.0.3", + "tsconfig-paths": "^4.0.0" + }, + "peerDependencies": { + "vite": ">2.0.0-0" + } + }, "node_modules/vite/node_modules/resolve": { "version": "1.22.1", "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.1.tgz", @@ -12835,9 +12884,9 @@ } }, "node_modules/vitest": { - "version": "0.24.1", - "resolved": "https://registry.npmjs.org/vitest/-/vitest-0.24.1.tgz", - "integrity": "sha512-NKkK1xnDIOOr42pKBfGQQl6b6IWdFVBpG6ZS1T+nUlJuqcOiZ7lxjVwHy9wrtTYpJ0BWww9y6bSGYXubD29Nag==", + "version": "0.24.3", + "resolved": "https://registry.npmjs.org/vitest/-/vitest-0.24.3.tgz", + "integrity": "sha512-aM0auuPPgMSstWvr851hB74g/LKaKBzSxcG3da7ejfZbx08Y21JpZmbmDYrMTCGhVZKqTGwzcnLMwyfz2WzkhQ==", "dependencies": { "@types/chai": "^4.3.3", "@types/chai-subset": "^1.3.3", @@ -12905,7 +12954,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-3.0.0.tgz", "integrity": "sha512-3WFqGEgSXIyGhOmAFtlicJNMjEps8b1MG31NCA0/vOF9+nKMUW1ckhi9cnNHmf88Rzw5V+dwIwsm2C7X8k9aQg==", - "dev": true, + "devOptional": true, "dependencies": { "xml-name-validator": "^4.0.0" }, @@ -12938,7 +12987,7 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", - "dev": true, + "devOptional": true, "engines": { "node": ">=12" } @@ -12947,7 +12996,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz", "integrity": "sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==", - "dev": true, + "devOptional": true, "dependencies": { "iconv-lite": "0.6.3" }, @@ -12959,7 +13008,7 @@ "version": "0.6.3", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "dev": true, + "devOptional": true, "dependencies": { "safer-buffer": ">= 2.1.2 < 3.0.0" }, @@ -12971,7 +13020,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz", "integrity": "sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==", - "dev": true, + "devOptional": true, "engines": { "node": ">=12" } @@ -13046,7 +13095,7 @@ "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, + "devOptional": true, "engines": { "node": ">=0.10.0" } @@ -13110,7 +13159,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz", "integrity": "sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==", - "dev": true, + "devOptional": true, "engines": { "node": ">=12" } @@ -13138,7 +13187,7 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", - "dev": true + "devOptional": true }, "node_modules/xregexp": { "version": "2.0.0", @@ -13302,17 +13351,38 @@ "node": ">=16.0.0" } }, + "services/products-api": { + "name": "@guria.dev/aws-js-practitioner-products-api", + "version": "1.0.0", + "extraneous": true, + "dependencies": { + "@middy/core": "^3.5.0", + "@middy/http-json-body-parser": "^3.5.0" + }, + "devDependencies": { + "@types/aws-lambda": "^8.10.106", + "@types/node": "^16.11.65", + "esbuild": "^0.15.10", + "json-schema-to-ts": "^2.5.5", + "serverless-esbuild": "^1.33.0", + "ts-node": "^10.9.1", + "tsconfig-paths": "^4.1.0" + }, + "engines": { + "node": ">=16.0.0" + } + }, "services/shop-frontend-app": { "name": "@guria.dev/aws-js-practitioner-shop-frontend", "version": "1.0.0", "dependencies": { "@emotion/react": "^11.10.4", "@emotion/styled": "^11.10.4", - "@mui/icons-material": "^5.10.6", - "@mui/material": "^5.10.8", - "@mui/styles": "^5.10.8", - "@vitest/coverage-c8": "^0.24.1", - "axios": "^1.1.2", + "@mui/icons-material": "^5.10.9", + "@mui/material": "^5.10.9", + "@mui/styles": "^5.10.9", + "@vitest/coverage-c8": "^0.24.3", + "axios": "^1.1.3", "formik": "^2.2.9", "react": "^18.2.0", "react-dom": "^18.2.0", @@ -13335,6 +13405,7 @@ "terser": "^5.15.1", "vite": "^3.1.7", "vite-plugin-top-level-await": "^1.1.1", + "vite-tsconfig-paths": "^3.5.1", "vitest": "^0.24.1" }, "engines": { @@ -13342,9 +13413,9 @@ } }, "services/shop-frontend-app/node_modules/axios": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.1.2.tgz", - "integrity": "sha512-bznQyETwElsXl2RK7HLLwb5GPpOLlycxHCtrpDR/4RqqBzjARaOTo3jz4IgtntWUYee7Ne4S8UHd92VCuzPaWA==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.1.3.tgz", + "integrity": "sha512-00tXVRwKx/FZr/IDVFt4C+f9FYairX517WoGCL6dpOntqLkZofjhu43F/Xl44UOpqa+9sLFDrG/XAnFsUYgkDA==", "dependencies": { "follow-redirects": "^1.15.0", "form-data": "^4.0.0", @@ -13363,7 +13434,6 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", - "dev": true, "requires": { "@jridgewell/gen-mapping": "^0.1.0", "@jridgewell/trace-mapping": "^0.3.9" @@ -14563,14 +14633,12 @@ "@babel/compat-data": { "version": "7.19.4", "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.19.4.tgz", - "integrity": "sha512-CHIGpJcUQ5lU9KrPHTjBMhVwQG6CQjxfg36fGXl3qk/Gik1WwWachaXFuo0uCWJT/mStOKtcbFJCaVLihC1CMw==", - "dev": true + "integrity": "sha512-CHIGpJcUQ5lU9KrPHTjBMhVwQG6CQjxfg36fGXl3qk/Gik1WwWachaXFuo0uCWJT/mStOKtcbFJCaVLihC1CMw==" }, "@babel/core": { "version": "7.19.3", "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.19.3.tgz", "integrity": "sha512-WneDJxdsjEvyKtXKsaBGbDeiyOjR5vYq4HcShxnIbG0qixpoHjI3MqeZM9NDvsojNCEBItQE4juOo/bU6e72gQ==", - "dev": true, "requires": { "@ampproject/remapping": "^2.1.0", "@babel/code-frame": "^7.18.6", @@ -14592,8 +14660,7 @@ "semver": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" } } }, @@ -14601,7 +14668,6 @@ "version": "7.19.5", "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.19.5.tgz", "integrity": "sha512-DxbNz9Lz4aMZ99qPpO1raTbcrI1ZeYh+9NR9qhfkQIbFtVEqotHojEBxHzmxhVONkGt6VyrqVQcgpefMy9pqcg==", - "dev": true, "requires": { "@babel/types": "^7.19.4", "@jridgewell/gen-mapping": "^0.3.2", @@ -14612,7 +14678,6 @@ "version": "0.3.2", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", - "dev": true, "requires": { "@jridgewell/set-array": "^1.0.1", "@jridgewell/sourcemap-codec": "^1.4.10", @@ -14634,7 +14699,6 @@ "version": "7.19.3", "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.19.3.tgz", "integrity": "sha512-65ESqLGyGmLvgR0mst5AdW1FkNlj9rQsCKduzEoEPhBCDFGXvz2jW6bXFG6i0/MrV2s7hhXjjb2yAzcPuQlLwg==", - "dev": true, "requires": { "@babel/compat-data": "^7.19.3", "@babel/helper-validator-option": "^7.18.6", @@ -14645,22 +14709,19 @@ "semver": { "version": "6.3.0", "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "dev": true + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" } } }, "@babel/helper-environment-visitor": { "version": "7.18.9", "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz", - "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==", - "dev": true + "integrity": "sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==" }, "@babel/helper-function-name": { "version": "7.19.0", "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz", "integrity": "sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==", - "dev": true, "requires": { "@babel/template": "^7.18.10", "@babel/types": "^7.19.0" @@ -14670,7 +14731,6 @@ "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", - "dev": true, "requires": { "@babel/types": "^7.18.6" } @@ -14687,7 +14747,6 @@ "version": "7.19.0", "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.19.0.tgz", "integrity": "sha512-3HBZ377Fe14RbLIA+ac3sY4PTgpxHVkFrESaWhoI5PuyXPBBX8+C34qblV9G89ZtycGJCmCI/Ut+VUDK4bltNQ==", - "dev": true, "requires": { "@babel/helper-environment-visitor": "^7.18.9", "@babel/helper-module-imports": "^7.18.6", @@ -14708,7 +14767,6 @@ "version": "7.19.4", "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.19.4.tgz", "integrity": "sha512-f9Xq6WqBFqaDfbCzn2w85hwklswz5qsKlh7f08w4Y9yhJHpnNC0QemtSkK5YyOY8kPGvyiwdzZksGUhnGdaUIg==", - "dev": true, "requires": { "@babel/types": "^7.19.4" } @@ -14717,7 +14775,6 @@ "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", - "dev": true, "requires": { "@babel/types": "^7.18.6" } @@ -14735,14 +14792,12 @@ "@babel/helper-validator-option": { "version": "7.18.6", "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz", - "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==", - "dev": true + "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==" }, "@babel/helpers": { "version": "7.19.4", "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.19.4.tgz", "integrity": "sha512-G+z3aOx2nfDHwX/kyVii5fJq+bgscg89/dJNWpYeKeBv3v9xX8EIabmx1k6u9LS04H7nROFVRVK+e3k0VHp+sw==", - "dev": true, "requires": { "@babel/template": "^7.18.10", "@babel/traverse": "^7.19.4", @@ -14813,8 +14868,7 @@ "@babel/parser": { "version": "7.19.4", "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.19.4.tgz", - "integrity": "sha512-qpVT7gtuOLjWeDTKLkJ6sryqLliBaFpAtGeqw5cs5giLldvh+Ch0plqnUMKoVAUS6ZEueQQiZV+p5pxtPitEsA==", - "dev": true + "integrity": "sha512-qpVT7gtuOLjWeDTKLkJ6sryqLliBaFpAtGeqw5cs5giLldvh+Ch0plqnUMKoVAUS6ZEueQQiZV+p5pxtPitEsA==" }, "@babel/plugin-syntax-jsx": { "version": "7.18.6", @@ -14876,7 +14930,6 @@ "version": "7.18.10", "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.10.tgz", "integrity": "sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==", - "dev": true, "requires": { "@babel/code-frame": "^7.18.6", "@babel/parser": "^7.18.10", @@ -14887,7 +14940,6 @@ "version": "7.19.4", "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.19.4.tgz", "integrity": "sha512-w3K1i+V5u2aJUOXBFFC5pveFLmtq1s3qcdDNC2qRI6WPBQIDaKFqXxDEqDO/h1dQ3HjsZoZMyIy6jGLq0xtw+g==", - "dev": true, "requires": { "@babel/code-frame": "^7.18.6", "@babel/generator": "^7.19.4", @@ -14904,8 +14956,7 @@ "globals": { "version": "11.12.0", "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==" } } }, @@ -14924,6 +14975,12 @@ "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==" }, + "@cush/relative": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@cush/relative/-/relative-1.0.0.tgz", + "integrity": "sha512-RpfLEtTlyIxeNPGKcokS+p3BZII/Q3bYxryFRglh5H3A3T8q9fsLYm72VYAMEOOIBLEa8o93kFLiBDUWKrwXZA==", + "dev": true + }, "@emotion/babel-plugin": { "version": "11.10.2", "resolved": "https://registry.npmjs.org/@emotion/babel-plugin/-/babel-plugin-11.10.2.tgz", @@ -15026,7 +15083,8 @@ "@emotion/use-insertion-effect-with-fallbacks": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.0.0.tgz", - "integrity": "sha512-1eEgUGmkaljiBnRMTdksDV1W4kUnmwgp7X9G8B++9GYwl1lUdqSndSriIrTJ0N7LQaoauY9JJ2yhiOYK5+NI4A==" + "integrity": "sha512-1eEgUGmkaljiBnRMTdksDV1W4kUnmwgp7X9G8B++9GYwl1lUdqSndSriIrTJ0N7LQaoauY9JJ2yhiOYK5+NI4A==", + "requires": {} }, "@emotion/utils": { "version": "1.2.0", @@ -15087,23 +15145,29 @@ } } }, + "@guria.dev/aws-js-practitioner-commons": { + "version": "file:commons", + "requires": { + "yup": "^0.32.11" + } + }, "@guria.dev/aws-js-practitioner-shop-frontend": { "version": "file:services/shop-frontend-app", "requires": { "@emotion/react": "^11.10.4", "@emotion/styled": "^11.10.4", - "@mui/icons-material": "^5.10.6", - "@mui/material": "^5.10.8", - "@mui/styles": "^5.10.8", + "@mui/icons-material": "^5.10.9", + "@mui/material": "^5.10.9", + "@mui/styles": "^5.10.9", "@testing-library/jest-dom": "^5.16.5", "@testing-library/react": "^13.4.0", "@testing-library/user-event": "^14.4.3", "@types/react": "^18.0.21", "@types/react-dom": "^18.0.6", "@vitejs/plugin-react": "^2.1.0", - "@vitest/coverage-c8": "^0.24.1", + "@vitest/coverage-c8": "^0.24.3", "@vitest/ui": "^0.24.1", - "axios": "^1.1.2", + "axios": "^1.1.3", "formik": "^2.2.9", "jsdom": "^20.0.1", "msw": "^0.47.4", @@ -15116,14 +15180,15 @@ "terser": "^5.15.1", "vite": "^3.1.7", "vite-plugin-top-level-await": "^1.1.1", + "vite-tsconfig-paths": "^3.5.1", "vitest": "^0.24.1", "yup": "^0.32.11" }, "dependencies": { "axios": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.1.2.tgz", - "integrity": "sha512-bznQyETwElsXl2RK7HLLwb5GPpOLlycxHCtrpDR/4RqqBzjARaOTo3jz4IgtntWUYee7Ne4S8UHd92VCuzPaWA==", + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.1.3.tgz", + "integrity": "sha512-00tXVRwKx/FZr/IDVFt4C+f9FYairX517WoGCL6dpOntqLkZofjhu43F/Xl44UOpqa+9sLFDrG/XAnFsUYgkDA==", "requires": { "follow-redirects": "^1.15.0", "form-data": "^4.0.0", @@ -15199,7 +15264,6 @@ "version": "0.1.1", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", - "dev": true, "requires": { "@jridgewell/set-array": "^1.0.0", "@jridgewell/sourcemap-codec": "^1.4.10" @@ -15213,14 +15277,13 @@ "@jridgewell/set-array": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", - "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==", - "dev": true + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==" }, "@jridgewell/source-map": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/@jridgewell/source-map/-/source-map-0.3.2.tgz", "integrity": "sha512-m7O9o2uR8k2ObDysZYzdfhb08VuEml5oWGiosa1VdaPZ/A6QyPkAJuwN0Q1lhULOf6B7MtQmHENS743hWtCrgw==", - "dev": true, + "devOptional": true, "requires": { "@jridgewell/gen-mapping": "^0.3.0", "@jridgewell/trace-mapping": "^0.3.9" @@ -15230,7 +15293,7 @@ "version": "0.3.2", "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", - "dev": true, + "devOptional": true, "requires": { "@jridgewell/set-array": "^1.0.1", "@jridgewell/sourcemap-codec": "^1.4.10", @@ -15295,14 +15358,14 @@ } }, "@mui/base": { - "version": "5.0.0-alpha.100", - "resolved": "https://registry.npmjs.org/@mui/base/-/base-5.0.0-alpha.100.tgz", - "integrity": "sha512-bSoJEKCENtmJrJDECHUe9PiqztIUACuSskyqw9ypqE7Dz3WxL3e8puFsWBkUsz+WOCjXh4B4Xljn88Ucxxv5HA==", + "version": "5.0.0-alpha.101", + "resolved": "https://registry.npmjs.org/@mui/base/-/base-5.0.0-alpha.101.tgz", + "integrity": "sha512-a54BcXvArGOKUZ2zyS/7B9GNhAGgfomEQSkfEZ88Nc9jKvXA+Mppenfz5o4JCAnD8c4VlePmz9rKOYvvum1bZw==", "requires": { "@babel/runtime": "^7.19.0", "@emotion/is-prop-valid": "^1.2.0", "@mui/types": "^7.2.0", - "@mui/utils": "^5.10.6", + "@mui/utils": "^5.10.9", "@popperjs/core": "^2.11.6", "clsx": "^1.2.1", "prop-types": "^15.8.1", @@ -15317,29 +15380,29 @@ } }, "@mui/core-downloads-tracker": { - "version": "5.10.8", - "resolved": "https://registry.npmjs.org/@mui/core-downloads-tracker/-/core-downloads-tracker-5.10.8.tgz", - "integrity": "sha512-V5D7OInO4P9PdT/JACg7fwjbOORm3GklaMVgdGomjyxiyetgRND5CC9r35e1LK/DqHdoyDuhbFzdfrqWtpmEIw==" + "version": "5.10.9", + "resolved": "https://registry.npmjs.org/@mui/core-downloads-tracker/-/core-downloads-tracker-5.10.9.tgz", + "integrity": "sha512-rqoFu4qww6KJBbXYhyRd9YXjwBHa3ylnBPSWbGf1bdfG0AYMKmVzg8zxkWvxAWOp97kvx3M2kNPb0xMIDZiogQ==" }, "@mui/icons-material": { - "version": "5.10.6", - "resolved": "https://registry.npmjs.org/@mui/icons-material/-/icons-material-5.10.6.tgz", - "integrity": "sha512-QwxdRmLA46S94B0hExPDx0td+A2unF+33bQ6Cs+lNpJKVsm1YeHwNdYXYcnpWeHeQQ07055OXl7IB2GKDd0MfA==", + "version": "5.10.9", + "resolved": "https://registry.npmjs.org/@mui/icons-material/-/icons-material-5.10.9.tgz", + "integrity": "sha512-sqClXdEM39WKQJOQ0ZCPTptaZgqwibhj2EFV9N0v7BU1PO8y4OcX/a2wIQHn4fNuDjIZktJIBrmU23h7aqlGgg==", "requires": { "@babel/runtime": "^7.19.0" } }, "@mui/material": { - "version": "5.10.8", - "resolved": "https://registry.npmjs.org/@mui/material/-/material-5.10.8.tgz", - "integrity": "sha512-sF/Ka0IJjGXV52zoT4xAWEqXVRjNYbIjATo9L4Q5oQC5iJpGrKJFY16uNtWWB0+vp/nayAuPGZHrxtV+t3ecdQ==", + "version": "5.10.9", + "resolved": "https://registry.npmjs.org/@mui/material/-/material-5.10.9.tgz", + "integrity": "sha512-sdOzlgpCmyw48je+E7o9UGGJpgBaF+60FlTRpVpcd/z+LUhnuzzuis891yPI5dPPXLBDL/bO4SsGg51lgNeLBw==", "requires": { "@babel/runtime": "^7.19.0", - "@mui/base": "5.0.0-alpha.100", - "@mui/core-downloads-tracker": "^5.10.8", - "@mui/system": "^5.10.8", + "@mui/base": "5.0.0-alpha.101", + "@mui/core-downloads-tracker": "^5.10.9", + "@mui/system": "^5.10.9", "@mui/types": "^7.2.0", - "@mui/utils": "^5.10.6", + "@mui/utils": "^5.10.9", "@types/react-transition-group": "^4.4.5", "clsx": "^1.2.1", "csstype": "^3.1.1", @@ -15356,12 +15419,12 @@ } }, "@mui/private-theming": { - "version": "5.10.6", - "resolved": "https://registry.npmjs.org/@mui/private-theming/-/private-theming-5.10.6.tgz", - "integrity": "sha512-I/W0QyTLRdEx6py3lKAquKO/rNF/7j+nIOM/xCyI9kU0fcotVTcTY08mKMsS6vrzdWpi6pAkD0wP0KwWy5R5VA==", + "version": "5.10.9", + "resolved": "https://registry.npmjs.org/@mui/private-theming/-/private-theming-5.10.9.tgz", + "integrity": "sha512-BN7/CnsVPVyBaQpDTij4uV2xGYHHHhOgpdxeYLlIu+TqnsVM7wUeF+37kXvHovxM6xmL5qoaVUD98gDC0IZnHg==", "requires": { "@babel/runtime": "^7.19.0", - "@mui/utils": "^5.10.6", + "@mui/utils": "^5.10.9", "prop-types": "^15.8.1" } }, @@ -15377,15 +15440,15 @@ } }, "@mui/styles": { - "version": "5.10.8", - "resolved": "https://registry.npmjs.org/@mui/styles/-/styles-5.10.8.tgz", - "integrity": "sha512-aQGfz4Av12Bf0C8sJC0a7UoTbusD0IUKo4zNjkB5ERmhIFrbgN1G8XDIVvTgrgwdKbstbFlHDFfXkDcYe9elSQ==", + "version": "5.10.9", + "resolved": "https://registry.npmjs.org/@mui/styles/-/styles-5.10.9.tgz", + "integrity": "sha512-dK6tsHkEp88MkwEDCxbqscj4Fa2aYBkfwy1MXMCexzx9TqxuahC0KSxBHfMMWZ0zV7xW5Suzwu8vveCp4uFN5A==", "requires": { "@babel/runtime": "^7.19.0", "@emotion/hash": "^0.9.0", - "@mui/private-theming": "^5.10.6", + "@mui/private-theming": "^5.10.9", "@mui/types": "^7.2.0", - "@mui/utils": "^5.10.6", + "@mui/utils": "^5.10.9", "clsx": "^1.2.1", "csstype": "^3.1.1", "hoist-non-react-statics": "^3.3.2", @@ -15401,15 +15464,15 @@ } }, "@mui/system": { - "version": "5.10.8", - "resolved": "https://registry.npmjs.org/@mui/system/-/system-5.10.8.tgz", - "integrity": "sha512-hRQ354zcrYP/KHqK8FheICSvE9raQaUgQaV+A3oD4JETaFUCVI9Ytt+RcQYgTqx02xlCXIjl8LK1rPjTneySqw==", + "version": "5.10.9", + "resolved": "https://registry.npmjs.org/@mui/system/-/system-5.10.9.tgz", + "integrity": "sha512-B6fFC0sK06hNmqY7fAUfwShQv594+u/DT1YEFHPtK4laouTu7V4vSGQWi1WJT9Bjs9Db5D1bRDJ+Yy+tc3QOYA==", "requires": { "@babel/runtime": "^7.19.0", - "@mui/private-theming": "^5.10.6", + "@mui/private-theming": "^5.10.9", "@mui/styled-engine": "^5.10.8", "@mui/types": "^7.2.0", - "@mui/utils": "^5.10.6", + "@mui/utils": "^5.10.9", "clsx": "^1.2.1", "csstype": "^3.1.1", "prop-types": "^15.8.1" @@ -15418,12 +15481,13 @@ "@mui/types": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/@mui/types/-/types-7.2.0.tgz", - "integrity": "sha512-lGXtFKe5lp3UxTBGqKI1l7G8sE2xBik8qCfrLHD5olwP/YU0/ReWoWT7Lp1//ri32dK39oPMrJN8TgbkCSbsNA==" + "integrity": "sha512-lGXtFKe5lp3UxTBGqKI1l7G8sE2xBik8qCfrLHD5olwP/YU0/ReWoWT7Lp1//ri32dK39oPMrJN8TgbkCSbsNA==", + "requires": {} }, "@mui/utils": { - "version": "5.10.6", - "resolved": "https://registry.npmjs.org/@mui/utils/-/utils-5.10.6.tgz", - "integrity": "sha512-g0Qs8xN/MW2M3fLL8197h5J2VB9U+49fLlnKKqC6zy/yus5cZwdT+Gwec+wUMxgwQoxMDn+J8oDWAn28kEOR/Q==", + "version": "5.10.9", + "resolved": "https://registry.npmjs.org/@mui/utils/-/utils-5.10.9.tgz", + "integrity": "sha512-2tdHWrq3+WCy+G6TIIaFx3cg7PorXZ71P375ExuX61od1NOAJP1mK90VxQ8N4aqnj2vmO3AQDkV4oV2Ktvt4bA==", "requires": { "@babel/runtime": "^7.19.0", "@types/prop-types": "^15.7.5", @@ -15475,7 +15539,7 @@ "version": "1.0.0-next.21", "resolved": "https://registry.npmjs.org/@polka/url/-/url-1.0.0-next.21.tgz", "integrity": "sha512-a5Sab1C4/icpTZVzZc5Ghpz88yQtGOyNqYXcZgOssB2uuAr+wF/MvN6bgtW32q7HHrvBki+BsZ0OuNv6EV3K9g==", - "dev": true + "devOptional": true }, "@popperjs/core": { "version": "2.11.6", @@ -15956,7 +16020,8 @@ "version": "14.4.3", "resolved": "https://registry.npmjs.org/@testing-library/user-event/-/user-event-14.4.3.tgz", "integrity": "sha512-kCUc5MEwaEMakkO5x7aoD+DLi02ehmEM2QCGWvNqAS1dV/fAvORWEjnjsEIvml59M7Y5kCkWN6fCCyPOe8OL6Q==", - "dev": true + "dev": true, + "requires": {} }, "@tokenizer/token": { "version": "0.3.0", @@ -15968,7 +16033,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", - "dev": true + "devOptional": true }, "@types/aria-query": { "version": "4.2.2", @@ -16327,19 +16392,19 @@ } }, "@vitest/coverage-c8": { - "version": "0.24.1", - "resolved": "https://registry.npmjs.org/@vitest/coverage-c8/-/coverage-c8-0.24.1.tgz", - "integrity": "sha512-cOFHXRHB9WHtGgsHE4FX4Ef1c9Hon668RNJQOJvqSy1/1Y7zIYIBhFWmuFKLZRCMV4jGT5CRiuB9KtdNsOc3og==", + "version": "0.24.3", + "resolved": "https://registry.npmjs.org/@vitest/coverage-c8/-/coverage-c8-0.24.3.tgz", + "integrity": "sha512-tAmMyHxWYnAwGeJb7QgTuEX8aLasTg4X1/6INobXa/7wYGEJ28CACFO5iLn1HzFVPoLvhsS3luQjiflGjjSMRQ==", "requires": { "c8": "^7.12.0", - "vitest": "0.24.1" + "vitest": "0.24.3" } }, "@vitest/ui": { "version": "0.24.1", "resolved": "https://registry.npmjs.org/@vitest/ui/-/ui-0.24.1.tgz", "integrity": "sha512-7baeu1+XspO+eAOsygPNL1k8EQRpn7Mj8fhwgyzsTzoYAkqP62mOPO+sqa+TdVaE3241sbAniIzHD1mVMJp70A==", - "dev": true, + "devOptional": true, "requires": { "sirv": "^2.0.2" } @@ -16371,7 +16436,7 @@ "version": "2.0.6", "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==", - "dev": true + "devOptional": true }, "acorn": { "version": "8.8.0", @@ -16382,7 +16447,7 @@ "version": "7.0.1", "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-7.0.1.tgz", "integrity": "sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q==", - "dev": true, + "devOptional": true, "requires": { "acorn": "^8.1.0", "acorn-walk": "^8.0.2" @@ -16392,13 +16457,14 @@ "version": "5.3.2", "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true + "dev": true, + "requires": {} }, "acorn-walk": { "version": "8.2.0", "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", - "dev": true + "devOptional": true }, "adm-zip": { "version": "0.5.9", @@ -16410,7 +16476,7 @@ "version": "6.0.2", "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "dev": true, + "devOptional": true, "requires": { "debug": "4" } @@ -16827,7 +16893,6 @@ "version": "4.21.4", "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.4.tgz", "integrity": "sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==", - "dev": true, "requires": { "caniuse-lite": "^1.0.30001400", "electron-to-chromium": "^1.4.251", @@ -16877,7 +16942,7 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==", - "dev": true + "devOptional": true }, "builtin-modules": { "version": "3.3.0", @@ -16972,8 +17037,7 @@ "caniuse-lite": { "version": "1.0.30001418", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001418.tgz", - "integrity": "sha512-oIs7+JL3K9JRQ3jPZjlH6qyYDp+nBTCais7hjh0s+fuBwufc7uZ7hPYMXrDOJhV360KGMTcczMRObk0/iMqZRg==", - "dev": true + "integrity": "sha512-oIs7+JL3K9JRQ3jPZjlH6qyYDp+nBTCais7hjh0s+fuBwufc7uZ7hPYMXrDOJhV360KGMTcczMRObk0/iMqZRg==" }, "chai": { "version": "4.3.6", @@ -17390,13 +17454,13 @@ "version": "0.5.0", "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.5.0.tgz", "integrity": "sha512-iKuQcq+NdHqlAcwUY0o/HL69XQrUaQdMjmStJ8JFmUaiiQErlhrmuigkg/CU4E2J0IyUKUrMAgl36TvN67MqTw==", - "dev": true + "devOptional": true }, "cssstyle": { "version": "2.3.0", "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", - "dev": true, + "devOptional": true, "requires": { "cssom": "~0.3.6" }, @@ -17405,7 +17469,7 @@ "version": "0.3.8", "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==", - "dev": true + "devOptional": true } } }, @@ -17442,7 +17506,7 @@ "version": "3.0.2", "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-3.0.2.tgz", "integrity": "sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==", - "dev": true, + "devOptional": true, "requires": { "abab": "^2.0.6", "whatwg-mimetype": "^3.0.0", @@ -17453,7 +17517,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz", "integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==", - "dev": true, + "devOptional": true, "requires": { "punycode": "^2.1.1" } @@ -17462,7 +17526,7 @@ "version": "11.0.0", "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz", "integrity": "sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==", - "dev": true, + "devOptional": true, "requires": { "tr46": "^3.0.0", "webidl-conversions": "^7.0.0" @@ -17488,7 +17552,7 @@ "version": "10.4.1", "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.1.tgz", "integrity": "sha512-F29o+vci4DodHYT9UrR5IEbfBw9pE5eSapIJdTqXK5+6hq+t8VRxwQyKlW2i+KDKFkkJQRvFyI/QXD83h8LyQw==", - "dev": true + "devOptional": true }, "decompress": { "version": "4.2.1", @@ -17643,7 +17707,7 @@ "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 + "devOptional": true }, "deepmerge": { "version": "2.2.1", @@ -17836,7 +17900,7 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/domexception/-/domexception-4.0.0.tgz", "integrity": "sha512-A2is4PLG+eeSfoTMA95/s4pvAoSo2mKtiM5jlHkAVewmiO8ISFTFKZjH7UAM1Atli/OT/7JHOrJRJiMKUZKYBw==", - "dev": true, + "devOptional": true, "requires": { "webidl-conversions": "^7.0.0" } @@ -17866,8 +17930,7 @@ "electron-to-chromium": { "version": "1.4.276", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.276.tgz", - "integrity": "sha512-EpuHPqu8YhonqLBXHoU6hDJCD98FCe6KDoet3/gY1qsQ6usjJoHqBH2YIVs8FXaAtHwVL8Uqa/fsYao/vq9VWQ==", - "dev": true + "integrity": "sha512-EpuHPqu8YhonqLBXHoU6hDJCD98FCe6KDoet3/gY1qsQ6usjJoHqBH2YIVs8FXaAtHwVL8Uqa/fsYao/vq9VWQ==" }, "emoji-regex": { "version": "8.0.0", @@ -18170,7 +18233,7 @@ "version": "2.0.0", "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz", "integrity": "sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==", - "dev": true, + "devOptional": true, "requires": { "esprima": "^4.0.1", "estraverse": "^5.2.0", @@ -18183,7 +18246,7 @@ "version": "0.3.0", "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==", - "dev": true, + "devOptional": true, "requires": { "prelude-ls": "~1.1.2", "type-check": "~0.3.2" @@ -18193,7 +18256,7 @@ "version": "0.8.3", "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", - "dev": true, + "devOptional": true, "requires": { "deep-is": "~0.1.3", "fast-levenshtein": "~2.0.6", @@ -18207,20 +18270,19 @@ "version": "1.1.2", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==", - "dev": true + "devOptional": true }, "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true, "optional": true }, "type-check": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==", - "dev": true, + "devOptional": true, "requires": { "prelude-ls": "~1.1.2" } @@ -18307,7 +18369,8 @@ "version": "8.5.0", "resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.5.0.tgz", "integrity": "sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==", - "dev": true + "dev": true, + "requires": {} }, "eslint-plugin-prettier": { "version": "4.2.1", @@ -18423,7 +18486,7 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true + "devOptional": true }, "esquery": { "version": "1.4.0", @@ -18456,13 +18519,13 @@ "version": "5.3.0", "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true + "devOptional": true }, "esutils": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true + "devOptional": true }, "event-emitter": { "version": "0.3.5", @@ -18578,7 +18641,7 @@ "version": "2.0.6", "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "dev": true + "devOptional": true }, "fast-safe-stringify": { "version": "2.1.1", @@ -18931,8 +18994,7 @@ "gensync": { "version": "1.0.0-beta.2", "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", - "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", - "dev": true + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==" }, "get-caller-file": { "version": "2.0.5", @@ -19047,6 +19109,12 @@ "is-glob": "^4.0.3" } }, + "glob-regex": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/glob-regex/-/glob-regex-0.3.2.tgz", + "integrity": "sha512-m5blUd3/OqDTWwzBBtWBPrGlAzatRywHameHeekAZyZrskYouOGdNB8T/q6JucucvJXtOuyHIn0/Yia7iDasDw==", + "dev": true + }, "globals": { "version": "13.17.0", "resolved": "https://registry.npmjs.org/globals/-/globals-13.17.0.tgz", @@ -19070,6 +19138,12 @@ "slash": "^3.0.0" } }, + "globrex": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/globrex/-/globrex-0.1.2.tgz", + "integrity": "sha512-uHJgbwAMwNFf5mLst7IWLNg14x1CkeqglJb/K3doi4dw6q2IvAAmM/Y81kevy83wP+Sst+nutFTYOGg3d1lsxg==", + "dev": true + }, "got": { "version": "11.8.5", "resolved": "https://registry.npmjs.org/got/-/got-11.8.5.tgz", @@ -19213,7 +19287,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-3.0.0.tgz", "integrity": "sha512-oWv4T4yJ52iKrufjnyZPkrN0CH3QnrUqdB6In1g5Fe1mia8GmF36gnfNySxoZtxD5+NmYw1EElVXiBk93UeskA==", - "dev": true, + "devOptional": true, "requires": { "whatwg-encoding": "^2.0.0" } @@ -19246,7 +19320,7 @@ "version": "5.0.0", "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", - "dev": true, + "devOptional": true, "requires": { "@tootallnate/once": "2", "agent-base": "6", @@ -19267,7 +19341,7 @@ "version": "5.0.1", "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", - "dev": true, + "devOptional": true, "requires": { "agent-base": "6", "debug": "4" @@ -19535,7 +19609,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==", - "dev": true + "devOptional": true }, "is-promise": { "version": "2.2.2", @@ -19638,7 +19712,8 @@ "version": "4.0.1", "resolved": "https://registry.npmjs.org/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz", "integrity": "sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w==", - "dev": true + "dev": true, + "requires": {} }, "istanbul-lib-coverage": { "version": "3.2.0", @@ -19851,7 +19926,7 @@ "version": "20.0.1", "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-20.0.1.tgz", "integrity": "sha512-pksjj7Rqoa+wdpkKcLzQRHhJCEE42qQhl/xLMUKHgoSejaKOdaXEAnqs6uDNwMl/fciHTzKeR8Wm8cw7N+g98A==", - "dev": true, + "devOptional": true, "requires": { "abab": "^2.0.6", "acorn": "^8.8.0", @@ -19885,7 +19960,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/tr46/-/tr46-3.0.0.tgz", "integrity": "sha512-l7FvfAHlcmulp8kr+flpQZmVwtu7nfRV7NZujtN0OqES8EL4O4e0qqzL0DC5gAvx/ZC/9lk6rhcUwYvkBnBnYA==", - "dev": true, + "devOptional": true, "requires": { "punycode": "^2.1.1" } @@ -19894,7 +19969,7 @@ "version": "11.0.0", "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-11.0.0.tgz", "integrity": "sha512-RKT8HExMpoYx4igMiVMY83lN6UeITKJlBQ+vR/8ZJ8OCdSiN3RwCq+9gH0+Xzj0+5IrM6i4j/6LuvzbZIQgEcQ==", - "dev": true, + "devOptional": true, "requires": { "tr46": "^3.0.0", "webidl-conversions": "^7.0.0" @@ -19904,15 +19979,15 @@ "version": "8.9.0", "resolved": "https://registry.npmjs.org/ws/-/ws-8.9.0.tgz", "integrity": "sha512-Ja7nszREasGaYUYCI2k4lCKIRTt+y7XuqVoHR44YpI49TtryyqbqvDMn5eqfW7e6HzTukDRIsXqzVHScqRcafg==", - "dev": true + "devOptional": true, + "requires": {} } } }, "jsesc": { "version": "2.5.2", "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==" }, "json-buffer": { "version": "3.0.1", @@ -19995,8 +20070,7 @@ "json5": { "version": "2.2.1", "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", - "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==", - "dev": true + "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==" }, "jsonfile": { "version": "6.1.0", @@ -20551,7 +20625,7 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/mrmime/-/mrmime-1.0.1.tgz", "integrity": "sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw==", - "dev": true + "devOptional": true }, "ms": { "version": "2.1.2", @@ -20736,8 +20810,7 @@ "node-releases": { "version": "2.0.6", "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz", - "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==", - "dev": true + "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==" }, "normalize-package-data": { "version": "2.5.0", @@ -20925,7 +20998,7 @@ "version": "2.2.2", "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.2.tgz", "integrity": "sha512-90yv+6538zuvUMnN+zCr8LuV6bPFdq50304114vJYJ8RDyK8D5O9Phpbd6SZWgI7PwzmmfN1upeOJlvybDSgCw==", - "dev": true + "devOptional": true }, "object-assign": { "version": "4.1.1", @@ -21201,7 +21274,7 @@ "version": "7.1.1", "resolved": "https://registry.npmjs.org/parse5/-/parse5-7.1.1.tgz", "integrity": "sha512-kwpuwzB+px5WUg9pyK0IcK/shltJN5/OVhQagxhCQNtT9Y9QRZqNY2e1cmbu/paRh5LMnz/oVTVLBpjFmMZhSg==", - "dev": true, + "devOptional": true, "requires": { "entities": "^4.4.0" }, @@ -21210,7 +21283,7 @@ "version": "4.4.0", "resolved": "https://registry.npmjs.org/entities/-/entities-4.4.0.tgz", "integrity": "sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==", - "dev": true + "devOptional": true } } }, @@ -21481,7 +21554,7 @@ "version": "1.9.0", "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==", - "dev": true + "devOptional": true }, "pump": { "version": "3.0.0", @@ -21497,7 +21570,7 @@ "version": "2.1.1", "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "dev": true + "devOptional": true }, "qs": { "version": "6.11.0", @@ -21518,7 +21591,7 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", - "dev": true + "devOptional": true }, "queue-microtask": { "version": "1.2.3", @@ -21723,6 +21796,26 @@ "picomatch": "^2.2.1" } }, + "recrawl-sync": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/recrawl-sync/-/recrawl-sync-2.2.2.tgz", + "integrity": "sha512-E2sI4F25Fu2nrfV+KsnC7/qfk/spQIYXlonfQoS4rwxeNK5BjxnLPbWiRXHVXPwYBOTWtPX5765kTm/zJiL+LQ==", + "dev": true, + "requires": { + "@cush/relative": "^1.0.0", + "glob-regex": "^0.3.0", + "slash": "^3.0.0", + "tslib": "^1.9.3" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + } + } + }, "redent": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", @@ -21775,7 +21868,7 @@ "version": "1.0.0", "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", - "dev": true + "devOptional": true }, "resolve": { "version": "2.0.0-next.4", @@ -21894,7 +21987,7 @@ "version": "2.1.2", "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true + "devOptional": true }, "sax": { "version": "1.2.1", @@ -21906,7 +21999,7 @@ "version": "6.0.0", "resolved": "https://registry.npmjs.org/saxes/-/saxes-6.0.0.tgz", "integrity": "sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==", - "dev": true, + "devOptional": true, "requires": { "xmlchars": "^2.2.0" } @@ -22162,7 +22255,7 @@ "version": "2.0.2", "resolved": "https://registry.npmjs.org/sirv/-/sirv-2.0.2.tgz", "integrity": "sha512-4Qog6aE29nIjAOKe/wowFTxOdmbEZKb+3tsLljaBRzJwtqto0BChD2zzH0LhgCSXiI+V7X+Y45v14wBZQ1TK3w==", - "dev": true, + "devOptional": true, "requires": { "@polka/url": "^1.0.0-next.20", "mrmime": "^1.0.0", @@ -22242,7 +22335,7 @@ "version": "0.5.21", "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", - "dev": true, + "devOptional": true, "requires": { "buffer-from": "^1.0.0", "source-map": "^0.6.0" @@ -22252,7 +22345,7 @@ "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "dev": true + "devOptional": true } } }, @@ -22558,7 +22651,7 @@ "version": "3.2.4", "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==", - "dev": true + "devOptional": true }, "tar": { "version": "6.1.11", @@ -22643,7 +22736,7 @@ "version": "5.15.1", "resolved": "https://registry.npmjs.org/terser/-/terser-5.15.1.tgz", "integrity": "sha512-K1faMUvpm/FBxjBXud0LWVAGxmvoPbZbfTCYbSgaaYQaIXI3/TdI7a7ZGA73Zrou6Q8Zmz3oeUTsp/dj+ag2Xw==", - "dev": true, + "devOptional": true, "requires": { "@jridgewell/source-map": "^0.3.2", "acorn": "^8.5.0", @@ -22655,7 +22748,7 @@ "version": "2.20.3", "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true + "devOptional": true } } }, @@ -22771,13 +22864,13 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/totalist/-/totalist-3.0.0.tgz", "integrity": "sha512-eM+pCBxXO/njtF7vdFsHuqb+ElbxqtI4r5EAvk6grfAFyJ6IvWlSkfZ5T9ozC6xWw3Fj1fGoSmrl0gUs46JVIw==", - "dev": true + "devOptional": true }, "tough-cookie": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.1.2.tgz", "integrity": "sha512-G9fqXWoYFZgTc2z8Q5zaHy/vJMjm+WV0AkAeHxVCQiEB1b+dGvWzFW6QV07cY5jQ5gRkeid2qIkzkxUnmoQZUQ==", - "dev": true, + "devOptional": true, "requires": { "psl": "^1.1.33", "punycode": "^2.1.1", @@ -22789,7 +22882,7 @@ "version": "0.2.0", "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.2.0.tgz", "integrity": "sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==", - "dev": true + "devOptional": true } } }, @@ -22822,6 +22915,17 @@ } } }, + "tsconfig-paths": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-4.1.0.tgz", + "integrity": "sha512-AHx4Euop/dXFC+Vx589alFba8QItjF+8hf8LtmuiCwHyI4rHXQtOOENaM8kvYf5fR0dRChy3wzWIZ9WbB7FWow==", + "dev": true, + "requires": { + "json5": "^2.2.1", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + } + }, "tslib": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", @@ -22939,7 +23043,6 @@ "version": "1.0.10", "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.10.tgz", "integrity": "sha512-OztqDenkfFkbSG+tRxBeAnCVPckDBcvibKd35yDONx6OU8N7sqgwc7rCbkJ/WcYtVRZ4ba68d6byhC21GFh7sQ==", - "dev": true, "requires": { "escalade": "^3.1.1", "picocolors": "^1.0.0" @@ -22982,7 +23085,7 @@ "version": "1.5.10", "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz", "integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==", - "dev": true, + "devOptional": true, "requires": { "querystringify": "^2.1.1", "requires-port": "^1.0.0" @@ -23076,10 +23179,22 @@ "@swc/core": "^1.2.147" } }, + "vite-tsconfig-paths": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/vite-tsconfig-paths/-/vite-tsconfig-paths-3.5.1.tgz", + "integrity": "sha512-t7cPvDMDxOCUxxNLqngXiX+L6jPYBr+eMgkeVadknxBb89d2s1aejz+wFEep010VfXjGVAUWGEFPe1fkRYTFvg==", + "dev": true, + "requires": { + "debug": "^4.1.1", + "globrex": "^0.1.2", + "recrawl-sync": "^2.0.3", + "tsconfig-paths": "^4.0.0" + } + }, "vitest": { - "version": "0.24.1", - "resolved": "https://registry.npmjs.org/vitest/-/vitest-0.24.1.tgz", - "integrity": "sha512-NKkK1xnDIOOr42pKBfGQQl6b6IWdFVBpG6ZS1T+nUlJuqcOiZ7lxjVwHy9wrtTYpJ0BWww9y6bSGYXubD29Nag==", + "version": "0.24.3", + "resolved": "https://registry.npmjs.org/vitest/-/vitest-0.24.3.tgz", + "integrity": "sha512-aM0auuPPgMSstWvr851hB74g/LKaKBzSxcG3da7ejfZbx08Y21JpZmbmDYrMTCGhVZKqTGwzcnLMwyfz2WzkhQ==", "requires": { "@types/chai": "^4.3.3", "@types/chai-subset": "^1.3.3", @@ -23108,7 +23223,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-3.0.0.tgz", "integrity": "sha512-3WFqGEgSXIyGhOmAFtlicJNMjEps8b1MG31NCA0/vOF9+nKMUW1ckhi9cnNHmf88Rzw5V+dwIwsm2C7X8k9aQg==", - "dev": true, + "devOptional": true, "requires": { "xml-name-validator": "^4.0.0" } @@ -23136,13 +23251,13 @@ "version": "7.0.0", "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-7.0.0.tgz", "integrity": "sha512-VwddBukDzu71offAQR975unBIGqfKZpM+8ZX6ySk8nYhVoo5CYaZyzt3YBvYtRtO+aoGlqxPg/B87NGVZ/fu6g==", - "dev": true + "devOptional": true }, "whatwg-encoding": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-2.0.0.tgz", "integrity": "sha512-p41ogyeMUrw3jWclHWTQg1k05DSVXPLcVxRTYsXUk+ZooOCZLcoYgPZ/HL/D/N+uQPOtcp1me1WhBEaX02mhWg==", - "dev": true, + "devOptional": true, "requires": { "iconv-lite": "0.6.3" }, @@ -23151,7 +23266,7 @@ "version": "0.6.3", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", - "dev": true, + "devOptional": true, "requires": { "safer-buffer": ">= 2.1.2 < 3.0.0" } @@ -23162,7 +23277,7 @@ "version": "3.0.0", "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz", "integrity": "sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==", - "dev": true + "devOptional": true }, "whatwg-url": { "version": "5.0.0", @@ -23221,7 +23336,7 @@ "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 + "devOptional": true }, "wrap-ansi": { "version": "7.0.0", @@ -23252,13 +23367,14 @@ "version": "7.5.9", "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", - "dev": true + "dev": true, + "requires": {} }, "xml-name-validator": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-4.0.0.tgz", "integrity": "sha512-ICP2e+jsHvAj2E2lIHxa5tjXRlKDJo4IdvPvCXbXQGdzSfmSpNVyIKMvoZHjDY9DP0zV17iI85o90vRFXNccRw==", - "dev": true + "devOptional": true }, "xml2js": { "version": "0.4.19", @@ -23280,7 +23396,7 @@ "version": "2.2.0", "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==", - "dev": true + "devOptional": true }, "xregexp": { "version": "2.0.0", diff --git a/package.json b/package.json index 78d1877..1a10032 100755 --- a/package.json +++ b/package.json @@ -4,11 +4,12 @@ "private": true, "workspaces": [ "services/*", - "plugins/*" + "plugins/*", + "commons" ], "scripts": { - "test": "npx cross-env CI=true npm run --workspaces test", - "lint": "npm run --workspaces lint", + "test": "npx cross-env CI=true npm run -ws --if-present test", + "lint": "npm run -ws --if-present lint", "deploy": "sls deploy", "remove": "sls remove" }, diff --git a/plugins/log-output-values/package.json b/plugins/log-output-values/package.json index fbb814d..6756dd5 100755 --- a/plugins/log-output-values/package.json +++ b/plugins/log-output-values/package.json @@ -4,8 +4,7 @@ "private": true, "main": "index.js", "scripts": { - "lint": "eslint .", - "test": "echo \"No test specified\" || true" + "lint": "eslint ." }, "engines": { "node": ">=16.0.0" diff --git a/services/shop-frontend-app/.eslintignore b/services/shop-frontend-app/.eslintignore index 27fa529..fe2cbb6 100644 --- a/services/shop-frontend-app/.eslintignore +++ b/services/shop-frontend-app/.eslintignore @@ -1,3 +1,3 @@ -dist -coverage +node_modules public +dist diff --git a/services/shop-frontend-app/.eslintrc b/services/shop-frontend-app/.eslintrc deleted file mode 100644 index 5e3ba64..0000000 --- a/services/shop-frontend-app/.eslintrc +++ /dev/null @@ -1,24 +0,0 @@ -{ - "root": true, - "parser": "@typescript-eslint/parser", - "parserOptions": { - "project": ["./tsconfig.json", "./tsconfig.node.json"], - }, - "extends": [ - "plugin:@typescript-eslint/recommended", - "plugin:react/recommended", - "plugin:react/jsx-runtime", - "plugin:prettier/recommended", - "prettier" - ], - "plugins": ["@typescript-eslint", "react", "prettier"], - "env": { - "browser": true, - "node": true - }, - "settings": { - "react": { - "version": "detect" - } - } -} diff --git a/services/shop-frontend-app/.eslintrc.js b/services/shop-frontend-app/.eslintrc.js new file mode 100644 index 0000000..3dfdbe7 --- /dev/null +++ b/services/shop-frontend-app/.eslintrc.js @@ -0,0 +1,51 @@ +const path = require("path"); +const projectFilesPaths = [ + path.resolve(__dirname, "tsconfig.json"), + path.resolve(__dirname, "tsconfig.eslint.json"), +]; + +module.exports = { + root: true, + parser: "@typescript-eslint/parser", + overrides: [ + { + files: ["*.ts", "*.tsx"], + parser: "@typescript-eslint/parser", + parserOptions: { + project: projectFilesPaths, + }, + extends: [ + "plugin:@typescript-eslint/recommended", + "plugin:react/recommended", + "plugin:react/jsx-runtime", + "plugin:prettier/recommended", + "prettier", + ], + plugins: ["@typescript-eslint", "react", "prettier"], + settings: { + react: { + version: "detect", + }, + }, + }, + { + files: ["src/**"], + env: { + browser: true, + node: false, + }, + }, + { + files: [".eslintrc.js"], + plugins: ["prettier"], + parserOptions: { + ecmaVersion: 2018, + sourceType: "commonjs", + }, + env: { + node: true, + browser: false, + }, + }, + ], +}; diff --git a/services/shop-frontend-app/package.json b/services/shop-frontend-app/package.json index acaf1be..31c19f3 100755 --- a/services/shop-frontend-app/package.json +++ b/services/shop-frontend-app/package.json @@ -17,11 +17,11 @@ "dependencies": { "@emotion/react": "^11.10.4", "@emotion/styled": "^11.10.4", - "@mui/icons-material": "^5.10.6", - "@mui/material": "^5.10.8", - "@mui/styles": "^5.10.8", - "@vitest/coverage-c8": "^0.24.1", - "axios": "^1.1.2", + "@mui/icons-material": "^5.10.9", + "@mui/material": "^5.10.9", + "@mui/styles": "^5.10.9", + "@vitest/coverage-c8": "^0.24.3", + "axios": "^1.1.3", "formik": "^2.2.9", "react": "^18.2.0", "react-dom": "^18.2.0", @@ -44,6 +44,7 @@ "terser": "^5.15.1", "vite": "^3.1.7", "vite-plugin-top-level-await": "^1.1.1", + "vite-tsconfig-paths": "^3.5.1", "vitest": "^0.24.1" }, "msw": { diff --git a/services/shop-frontend-app/src/components/AddProductToCart/AddProductToCart.tsx b/services/shop-frontend-app/src/components/AddProductToCart/AddProductToCart.tsx index c3b3b52..9909ff4 100755 --- a/services/shop-frontend-app/src/components/AddProductToCart/AddProductToCart.tsx +++ b/services/shop-frontend-app/src/components/AddProductToCart/AddProductToCart.tsx @@ -1,5 +1,5 @@ import Typography from "@mui/material/Typography"; -import { Product } from "~/models/Product"; +import { Product } from "@commons/models/Product"; import CartIcon from "@mui/icons-material/ShoppingCart"; import Add from "@mui/icons-material/Add"; import Remove from "@mui/icons-material/Remove"; diff --git a/services/shop-frontend-app/src/components/App/App.test.tsx b/services/shop-frontend-app/src/components/App/App.test.tsx index 7131448..d7abaad 100755 --- a/services/shop-frontend-app/src/components/App/App.test.tsx +++ b/services/shop-frontend-app/src/components/App/App.test.tsx @@ -4,8 +4,8 @@ import App from "~/components/App/App"; import { server } from "~/mocks/server"; import { rest } from "msw"; import API_PATHS from "~/constants/apiPaths"; -import { CartItem } from "~/models/CartItem"; -import { AvailableProduct } from "~/models/Product"; +import { CartItem } from "@commons/models/CartItem"; +import { AvailableProduct } from "@commons/models/Product"; import { renderWithProviders } from "~/testUtils"; import { screen, waitForElementToBeRemoved } from "@testing-library/react"; import { formatAsPrice } from "~/utils/utils"; @@ -28,7 +28,7 @@ test("Renders products list", async () => { }, ]; server.use( - rest.get(`${API_PATHS.bff}/product/available`, (req, res, ctx) => { + rest.get(`${API_PATHS.products}/available`, (req, res, ctx) => { return res( ctx.status(200), ctx.delay(), diff --git a/services/shop-frontend-app/src/components/CartItems/CartItems.tsx b/services/shop-frontend-app/src/components/CartItems/CartItems.tsx index 939e1a1..44a4f90 100755 --- a/services/shop-frontend-app/src/components/CartItems/CartItems.tsx +++ b/services/shop-frontend-app/src/components/CartItems/CartItems.tsx @@ -2,7 +2,7 @@ import Typography from "@mui/material/Typography"; import List from "@mui/material/List"; import ListItem from "@mui/material/ListItem"; import ListItemText from "@mui/material/ListItemText"; -import { CartItem } from "~/models/CartItem"; +import { CartItem } from "@commons/models/CartItem"; import { formatAsPrice } from "~/utils/utils"; import AddProductToCart from "~/components/AddProductToCart/AddProductToCart"; diff --git a/services/shop-frontend-app/src/components/pages/PageCart/PageCart.tsx b/services/shop-frontend-app/src/components/pages/PageCart/PageCart.tsx index 12e201c..4e4cb0a 100755 --- a/services/shop-frontend-app/src/components/pages/PageCart/PageCart.tsx +++ b/services/shop-frontend-app/src/components/pages/PageCart/PageCart.tsx @@ -4,10 +4,10 @@ import Step from "@mui/material/Step"; import StepLabel from "@mui/material/StepLabel"; import Button from "@mui/material/Button"; import Typography from "@mui/material/Typography"; +import { Address, AddressSchema, Order } from "@commons/models/Order"; import ReviewCart from "~/components/pages/PageCart/components/ReviewCart"; import ReviewOrder from "~/components/pages/PageCart/components/ReviewOrder"; import PaperLayout from "~/components/PaperLayout/PaperLayout"; -import { Address, AddressSchema, Order } from "~/models/Order"; import Box from "@mui/material/Box"; import { useCart, useInvalidateCart } from "~/queries/cart"; import AddressForm from "~/components/pages/PageCart/components/AddressForm"; diff --git a/services/shop-frontend-app/src/components/pages/PageCart/components/AddressForm.tsx b/services/shop-frontend-app/src/components/pages/PageCart/components/AddressForm.tsx index df6d449..c687e90 100644 --- a/services/shop-frontend-app/src/components/pages/PageCart/components/AddressForm.tsx +++ b/services/shop-frontend-app/src/components/pages/PageCart/components/AddressForm.tsx @@ -4,7 +4,7 @@ import Button from "@mui/material/Button"; import Typography from "@mui/material/Typography"; import { Formik, Form, Field } from "formik"; import TextField from "~/components/Form/TextField"; -import { Address, AddressSchema } from "~/models/Order"; +import { Address, AddressSchema } from "@commons/models/Order"; type AddressFormProps = { initialValues: Address; diff --git a/services/shop-frontend-app/src/components/pages/PageCart/components/ReviewCart.tsx b/services/shop-frontend-app/src/components/pages/PageCart/components/ReviewCart.tsx index 7eb4748..b6da608 100755 --- a/services/shop-frontend-app/src/components/pages/PageCart/components/ReviewCart.tsx +++ b/services/shop-frontend-app/src/components/pages/PageCart/components/ReviewCart.tsx @@ -1,6 +1,6 @@ import Typography from "@mui/material/Typography"; import CartItems from "~/components/CartItems/CartItems"; -import { CartItem } from "~/models/CartItem"; +import { CartItem } from "@commons/models/CartItem"; type ReviewCartProps = { items: CartItem[]; diff --git a/services/shop-frontend-app/src/components/pages/PageCart/components/ReviewOrder.tsx b/services/shop-frontend-app/src/components/pages/PageCart/components/ReviewOrder.tsx index 9099d74..3850570 100755 --- a/services/shop-frontend-app/src/components/pages/PageCart/components/ReviewOrder.tsx +++ b/services/shop-frontend-app/src/components/pages/PageCart/components/ReviewOrder.tsx @@ -2,7 +2,7 @@ import Typography from "@mui/material/Typography"; import Grid from "@mui/material/Grid"; import CartItems from "~/components/CartItems/CartItems"; import { FormikValues } from "formik"; -import { CartItem } from "~/models/CartItem"; +import { CartItem } from "@commons/models/CartItem"; type ReviewOrderProps = { address: FormikValues; diff --git a/services/shop-frontend-app/src/components/pages/PageOrder/PageOrder.tsx b/services/shop-frontend-app/src/components/pages/PageOrder/PageOrder.tsx index b2b2f26..93a0ad2 100755 --- a/services/shop-frontend-app/src/components/pages/PageOrder/PageOrder.tsx +++ b/services/shop-frontend-app/src/components/pages/PageOrder/PageOrder.tsx @@ -1,14 +1,14 @@ import React from "react"; -import { Order, OrderItem } from "~/models/Order"; +import { Order, OrderItem } from "@commons/models/Order"; import axios from "axios"; import { useParams } from "react-router-dom"; import PaperLayout from "~/components/PaperLayout/PaperLayout"; import Typography from "@mui/material/Typography"; import API_PATHS from "~/constants/apiPaths"; -import { CartItem } from "~/models/CartItem"; -import { AvailableProduct } from "~/models/Product"; +import { CartItem } from "@commons/models/CartItem"; +import { AvailableProduct } from "@commons/models/Product"; import ReviewOrder from "~/components/pages/PageCart/components/ReviewOrder"; -import { OrderStatus, ORDER_STATUS_FLOW } from "~/constants/order"; +import { OrderStatus, ORDER_STATUS_FLOW } from "@commons/models/Order"; import Button from "@mui/material/Button"; import MenuItem from "@mui/material/MenuItem"; import { Field, Form, Formik, FormikProps } from "formik"; @@ -43,7 +43,7 @@ export default function PageOrder() { queryKey: "products", queryFn: async () => { const res = await axios.get( - `${API_PATHS.bff}/product/available` + `${API_PATHS.products}/available` ); return res.data; }, diff --git a/services/shop-frontend-app/src/components/pages/PageProductForm/PageProductForm.tsx b/services/shop-frontend-app/src/components/pages/PageProductForm/PageProductForm.tsx index 845ba98..afafdf4 100755 --- a/services/shop-frontend-app/src/components/pages/PageProductForm/PageProductForm.tsx +++ b/services/shop-frontend-app/src/components/pages/PageProductForm/PageProductForm.tsx @@ -1,6 +1,9 @@ import Button from "@mui/material/Button"; import Grid from "@mui/material/Grid"; -import { AvailableProduct, AvailableProductSchema } from "~/models/Product"; +import { + AvailableProduct, + AvailableProductSchema, +} from "@commons/models/Product"; import { Formik, Field, FormikProps, Form } from "formik"; import TextField from "~/components/Form/TextField"; import { useNavigate, useParams } from "react-router-dom"; diff --git a/services/shop-frontend-app/src/constants/apiPaths.ts b/services/shop-frontend-app/src/constants/apiPaths.ts index 6846a75..5bce31f 100755 --- a/services/shop-frontend-app/src/constants/apiPaths.ts +++ b/services/shop-frontend-app/src/constants/apiPaths.ts @@ -1,9 +1,12 @@ +import { PRODUCTS_API_PATH } from "@commons/constants/api-paths"; + +const BASE_URL = "https://.execute-api.eu-west-1.amazonaws.com/dev"; + const API_PATHS = { - product: "https://.execute-api.eu-west-1.amazonaws.com/dev", - order: "https://.execute-api.eu-west-1.amazonaws.com/dev", - import: "https://.execute-api.eu-west-1.amazonaws.com/dev", - bff: "https://.execute-api.eu-west-1.amazonaws.com/dev", - cart: "https://.execute-api.eu-west-1.amazonaws.com/dev", + order: BASE_URL, + import: BASE_URL, + products: `${BASE_URL}/${PRODUCTS_API_PATH}`, + cart: BASE_URL, }; export default API_PATHS; diff --git a/services/shop-frontend-app/src/constants/order.tsx b/services/shop-frontend-app/src/constants/order.tsx deleted file mode 100755 index efbc94f..0000000 --- a/services/shop-frontend-app/src/constants/order.tsx +++ /dev/null @@ -1,10 +0,0 @@ -export enum OrderStatus { - Open = "OPEN", - Approved = "APPROVED", - Confirmed = "CONFIRMED", - Sent = "SENT", - Completed = "COMPLETED", - Cancelled = "CANCELLED", -} - -export const ORDER_STATUS_FLOW = Object.values(OrderStatus); diff --git a/services/shop-frontend-app/src/mocks/handlers.ts b/services/shop-frontend-app/src/mocks/handlers.ts index f9b51ea..dbbc9d2 100644 --- a/services/shop-frontend-app/src/mocks/handlers.ts +++ b/services/shop-frontend-app/src/mocks/handlers.ts @@ -1,28 +1,28 @@ import { rest } from "msw"; import API_PATHS from "~/constants/apiPaths"; -import { availableProducts, orders, products, cart } from "~/mocks/data"; -import { CartItem } from "~/models/CartItem"; -import { Order } from "~/models/Order"; -import { AvailableProduct, Product } from "~/models/Product"; +import { availableProducts, orders, products, cart } from "@commons/mocks"; +import { CartItem } from "@commons/models/CartItem"; +import { Order } from "@commons/models/Order"; +import { AvailableProduct, Product } from "@commons/models/Product"; export const handlers = [ - rest.get(`${API_PATHS.bff}/product`, (req, res, ctx) => { + rest.get(API_PATHS.products, (req, res, ctx) => { return res(ctx.status(200), ctx.delay(), ctx.json(products)); }), - rest.put(`${API_PATHS.bff}/product`, (req, res, ctx) => { + rest.put(API_PATHS.products, (req, res, ctx) => { return res(ctx.status(200)); }), - rest.delete(`${API_PATHS.bff}/product/:id`, (req, res, ctx) => { + rest.delete(`${API_PATHS.products}/:id`, (req, res, ctx) => { return res(ctx.status(200)); }), - rest.get(`${API_PATHS.bff}/product/available`, (req, res, ctx) => { + rest.get(`${API_PATHS.products}/available`, (req, res, ctx) => { return res( ctx.status(200), ctx.delay(), ctx.json(availableProducts) ); }), - rest.get(`${API_PATHS.bff}/product/:id`, (req, res, ctx) => { + rest.get(`${API_PATHS.products}/:id`, (req, res, ctx) => { const product = availableProducts.find((p) => p.id === req.params.id); if (!product) { return res(ctx.status(404)); @@ -39,23 +39,23 @@ export const handlers = [ rest.put(`${API_PATHS.cart}/profile/cart`, (req, res, ctx) => { return res(ctx.status(200)); }), - rest.get(`${API_PATHS.order}/order`, (req, res, ctx) => { + rest.get(`${API_PATHS.order}/orders`, (req, res, ctx) => { return res(ctx.status(200), ctx.delay(), ctx.json(orders)); }), - rest.put(`${API_PATHS.order}/order`, (req, res, ctx) => { + rest.put(`${API_PATHS.order}/orders`, (req, res, ctx) => { return res(ctx.status(200)); }), - rest.get(`${API_PATHS.order}/order/:id`, (req, res, ctx) => { + rest.get(`${API_PATHS.order}/orders/:id`, (req, res, ctx) => { const order = orders.find((p) => p.id === req.params.id); if (!order) { return res(ctx.status(404)); } return res(ctx.status(200), ctx.delay(), ctx.json(order)); }), - rest.delete(`${API_PATHS.order}/order/:id`, (req, res, ctx) => { + rest.delete(`${API_PATHS.order}/orders/:id`, (req, res, ctx) => { return res(ctx.status(200)); }), - rest.put(`${API_PATHS.order}/order/:id/status`, (req, res, ctx) => { + rest.put(`${API_PATHS.order}/orders/:id/status`, (req, res, ctx) => { return res(ctx.status(200)); }), ]; diff --git a/services/shop-frontend-app/src/queries/cart.ts b/services/shop-frontend-app/src/queries/cart.ts index 7e9b637..11f5e33 100644 --- a/services/shop-frontend-app/src/queries/cart.ts +++ b/services/shop-frontend-app/src/queries/cart.ts @@ -2,7 +2,7 @@ import axios, { AxiosError } from "axios"; import React from "react"; import { useQuery, useQueryClient, useMutation } from "react-query"; import API_PATHS from "~/constants/apiPaths"; -import { CartItem } from "~/models/CartItem"; +import { CartItem } from "@commons/models/CartItem"; export function useCart() { return useQuery("cart", async () => { diff --git a/services/shop-frontend-app/src/queries/orders.ts b/services/shop-frontend-app/src/queries/orders.ts index 976a4ea..bbe7048 100644 --- a/services/shop-frontend-app/src/queries/orders.ts +++ b/services/shop-frontend-app/src/queries/orders.ts @@ -2,8 +2,7 @@ import axios, { AxiosError } from "axios"; import React from "react"; import { useQuery, useQueryClient, useMutation } from "react-query"; import API_PATHS from "~/constants/apiPaths"; -import { OrderStatus } from "~/constants/order"; -import { Order } from "~/models/Order"; +import { Order, OrderStatus } from "@commons/models/Order"; export function useOrders() { return useQuery("orders", async () => { diff --git a/services/shop-frontend-app/src/queries/products.ts b/services/shop-frontend-app/src/queries/products.ts index 090a803..db8c4d5 100644 --- a/services/shop-frontend-app/src/queries/products.ts +++ b/services/shop-frontend-app/src/queries/products.ts @@ -1,6 +1,6 @@ import axios, { AxiosError } from "axios"; import API_PATHS from "~/constants/apiPaths"; -import { AvailableProduct } from "~/models/Product"; +import { AvailableProduct } from "@commons/models/Product"; import { useQuery, useQueryClient, useMutation } from "react-query"; import React from "react"; @@ -9,7 +9,7 @@ export function useAvailableProducts() { "available-products", async () => { const res = await axios.get( - `${API_PATHS.bff}/product/available` + `${API_PATHS.products}/available` ); return res.data; } @@ -29,7 +29,7 @@ export function useAvailableProduct(id?: string) { ["product", { id }], async () => { const res = await axios.get( - `${API_PATHS.bff}/product/${id}` + `${API_PATHS.products}/${id}` ); return res.data; }, @@ -48,7 +48,7 @@ export function useRemoveProductCache() { export function useUpsertAvailableProduct() { return useMutation((values: AvailableProduct) => - axios.put(`${API_PATHS.bff}/product`, values, { + axios.put(API_PATHS.products, values, { headers: { Authorization: `Basic ${localStorage.getItem("authorization_token")}`, }, @@ -58,7 +58,7 @@ export function useUpsertAvailableProduct() { export function useDeleteAvailableProduct() { return useMutation((id: string) => - axios.delete(`${API_PATHS.bff}/product/${id}`, { + axios.delete(`${API_PATHS.products}/${id}`, { headers: { Authorization: `Basic ${localStorage.getItem("authorization_token")}`, }, diff --git a/services/shop-frontend-app/tsconfig.eslint.json b/services/shop-frontend-app/tsconfig.eslint.json new file mode 100644 index 0000000..252dd03 --- /dev/null +++ b/services/shop-frontend-app/tsconfig.eslint.json @@ -0,0 +1,8 @@ +{ + "compilerOptions": { + "composite": true, + "module": "esnext", + "moduleResolution": "node" + }, + "include": ["vite.config.ts", ".eslintrc.js", "src"] +} diff --git a/services/shop-frontend-app/tsconfig.json b/services/shop-frontend-app/tsconfig.json index 315afca..f00da9d 100644 --- a/services/shop-frontend-app/tsconfig.json +++ b/services/shop-frontend-app/tsconfig.json @@ -2,7 +2,8 @@ "compilerOptions": { "baseUrl": "./src", "paths": { - "~/*": ["./*"] + "~/*": ["./*"], + "@commons/*": ["../../../commons/*"], }, "target": "ESNext", "useDefineForClassFields": true, diff --git a/services/shop-frontend-app/vite.config.ts b/services/shop-frontend-app/vite.config.ts index 6355079..7f60efa 100644 --- a/services/shop-frontend-app/vite.config.ts +++ b/services/shop-frontend-app/vite.config.ts @@ -4,16 +4,11 @@ import { defineConfig } from "vite"; import react from "@vitejs/plugin-react"; import topLevelAwait from "vite-plugin-top-level-await"; -import * as path from "path"; +import tsconfigPaths from "vite-tsconfig-paths"; // https://vitejs.dev/config/ export default defineConfig({ - resolve: { - alias: { - "~": path.resolve(__dirname, "src"), - }, - }, - plugins: [react(), topLevelAwait()], + plugins: [tsconfigPaths(), react(), topLevelAwait()], build: { minify: "terser", rollupOptions: {