diff --git a/scripts/build-backend-container.sh b/scripts/build-backend-container.sh new file mode 100755 index 00000000000..3ad9fa5137c --- /dev/null +++ b/scripts/build-backend-container.sh @@ -0,0 +1,5 @@ +#!/bin/bash +DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )" +VERSION=`sed 's/version/VERSION/' $DIR/../package.json | grep VERSION | tr -d 'VERSION [:blank:] ["] [:] [,]'` +docker build \ + ./sites/backend/. diff --git a/sites/backend/Dockerfile b/sites/backend/Dockerfile new file mode 100644 index 00000000000..4f0442061e0 --- /dev/null +++ b/sites/backend/Dockerfile @@ -0,0 +1,38 @@ +## Stage 1: Builder +FROM node:alpine as builder + +## Set workdir +WORKDIR /backend + +## Install build toolchain +#RUN apk add --no-cache python make g++ + +## Install node dependencies +COPY package* ./ +RUN npm install pm2 && npm ci + +## Build app +COPY package.json package.json +COPY src src +COPY build.mjs build.mjs +RUN npm run build + +## Stage 2: App +FROM node:alpine as app + +## Set workdir +WORKDIR /backend + +## Copy built node modules and binaries without including the toolchain +COPY --from=builder /backend/node_modules/ /backend/node_modules/ +COPY --from=builder /backend/dist/ /backend/dist/ +COPY --from=builder /backend/package.json /backend/package.json + +## Add a user to run the app +RUN addgroup -S freesewing \ + && adduser -S freesewing \ + && chown -R freesewing /backend + +## Drop privleges and run app +USER freesewing +CMD ["./node_modules/.bin/pm2-runtime", "./dist/index.mjs"] diff --git a/sites/backend/build.mjs b/sites/backend/build.mjs new file mode 100644 index 00000000000..73b1a44cf1e --- /dev/null +++ b/sites/backend/build.mjs @@ -0,0 +1,40 @@ +/* This script will build the backend with esbuild */ +import esbuild from 'esbuild' +import pkg from './package.json' assert { type: 'json' } + +// Create banner based on package info +const banner = `/** + * ${pkg.name} | v${pkg.version} + * ${pkg.description} + * (c) ${new Date().getFullYear()} ${pkg.author} + * @license ${pkg.license} + */` + +// Shared esbuild options +const options = { + banner: { js: banner }, + bundle: true, + entryPoints: ['src/index.mjs'], + format: 'esm', + outfile: 'dist/index.mjs', + external: [], + metafile: process.env.VERBOSE ? true : false, + minify: process.env.NO_MINIFY ? false : true, + sourcemap: true, + platform: 'node', + target: 'node16', +} + +// Let esbuild generate the build +const build = async () => { + const result = await esbuild.build(options).catch((err) => { + console.log(err) + process.exit(1) + }) + + if (process.env.VERBOSE) { + const info = await esbuild.analyzeMetafile(result.metafile) + console.log(info) + } +} +build() diff --git a/sites/backend/package.json b/sites/backend/package.json index 6aa1e445164..0a2c2d63842 100644 --- a/sites/backend/package.json +++ b/sites/backend/package.json @@ -16,6 +16,7 @@ }, "scripts": { "dev": "nodemon src/index.mjs", + "build": "node --experimental-json-modules build.mjs", "test": "npx mocha --require mocha-steps tests/index.mjs", "initdb": "npx prisma db push", "newdb": "node ./scripts/newdb.mjs", @@ -27,6 +28,7 @@ "@prisma/client": "4.7.1", "bcryptjs": "^2.4.3", "crypto": "^1.0.1", + "esbuild": "^0.16.8", "express": "4.18.2", "mustache": "^4.2.0", "otplib": "^12.0.1", @@ -34,11 +36,13 @@ "passport-http": "^0.3.0", "passport-jwt": "^4.0.0", "pino": "^8.7.0", - "qrcode": "^1.5.1" + "qrcode": "^1.5.1", + "cors": "latest" }, "devDependencies": { "chai-http": "^4.3.0", "mocha": "^10.1.0", + "dotenv": "latest", "mocha-steps": "^1.3.0", "prisma": "4.7.1" }, diff --git a/sites/backend/src/config.mjs b/sites/backend/src/config.mjs index 5c862591821..5fe321176b8 100644 --- a/sites/backend/src/config.mjs +++ b/sites/backend/src/config.mjs @@ -2,7 +2,7 @@ import chalk from 'chalk' // Load environment variables import dotenv from 'dotenv' import { asJson } from './utils/index.mjs' -import { measurements } from '../../../config/measurements.mjs' +import { measurements } from './measurements.mjs' dotenv.config() // Allow these 2 to be imported diff --git a/sites/backend/src/measurements.mjs b/sites/backend/src/measurements.mjs new file mode 100644 index 00000000000..64e318f81f8 --- /dev/null +++ b/sites/backend/src/measurements.mjs @@ -0,0 +1,47 @@ +/* A list of all measurements used by FreeSewing */ +export const measurements = [ + 'ankle', + 'biceps', + 'bustFront', + 'bustPointToUnderbust', + 'bustSpan', + 'chest', + 'crossSeam', + 'crossSeamFront', + 'crotchDepth', + 'heel', + 'head', + 'highBust', + 'highBustFront', + 'hips', + 'hpsToBust', + 'hpsToWaistBack', + 'hpsToWaistFront', + 'inseam', + 'knee', + 'neck', + 'seat', + 'seatBack', + 'shoulderSlope', + 'shoulderToElbow', + 'shoulderToShoulder', + 'shoulderToWrist', + 'underbust', + 'upperLeg', + 'waist', + 'waistBack', + 'waistToArmhole', + 'waistToFloor', + 'waistToHips', + 'waistToKnee', + 'waistToSeat', + 'waistToUnderbust', + 'waistToUpperLeg', + 'wrist', +] + +/* A list of measurments that are degrees (rather than mm) */ +export const degreeMeasurements = ['shoulderSlope'] + +/* Helper method to determine whether a measurement uses degrees */ +export const isDegreeMeasurement = (measie) => degreeMeasurements.indexOf(measie) !== -1 diff --git a/yarn.lock b/yarn.lock index 651359c2141..da9b7b18731 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2345,111 +2345,221 @@ resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.16.5.tgz#4d86e00dee422c76a86904d6b863d115db34f862" integrity sha512-BCWkmAqFoW6xXzz6Up16bU0vdZqe23UxkrabbrmXXUuH27Tts3LVcHFCi/dGLYa6ZqC/txhtJm2kAJdoyOfHxg== +"@esbuild/android-arm64@0.16.8": + version "0.16.8" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.16.8.tgz#37837dd8092d98268d0c3cf682c1b4a284d33638" + integrity sha512-TGQM/tdy5EV1KoFHu0+cMrKvPR8UBLGEfwS84PTCJ07KVp21Fr488aFEL2TCamz9CxoF1np36kY6XOSdLncg2Q== + "@esbuild/android-arm@0.16.5": version "0.16.5" resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.16.5.tgz#e6dd899ab0727d31c04309b6db2fb70ca4331af1" integrity sha512-eNkNuLSKpbZTH0BZklJ9B9Sml7fTIamhrQNBwftsEHCUuSLBVunzV3LfghryVGpE5lSkOwOfeX6gR6+3yLaEfQ== +"@esbuild/android-arm@0.16.8": + version "0.16.8" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.16.8.tgz#bfe7e05ea51517948e93b190b3d8d8b7f1ce13f5" + integrity sha512-r/qxYWkC3gY+Uq24wZacAUevGGb6d7d8VpyO8R0HGg31LXVi+eUr8XxHLCcmVzAjRjlZsZfzPelGpAKP/DafKg== + "@esbuild/android-x64@0.16.5": version "0.16.5" resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.16.5.tgz#c5237c582bb038a9403afe5ad7e451cc79187505" integrity sha512-E0R7d0dy9+QlpMps8gJXXhtfn+fQFaTXbq8kV2u/HfHyyhxr4nIIuXZCcYxxA9LSKnsFBBbSQIGDUVY9FGgx0w== +"@esbuild/android-x64@0.16.8": + version "0.16.8" + resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.16.8.tgz#fb625a45f3f73f153e2497bcfdf42f62225851a4" + integrity sha512-HtA4BNfrf5Nyoz3G2IS3qW4A0yckPJ1NjCMA3SiOw3zS1IfpMkbepDGp/Gdokc/tASFd38IP2uIL3W6bHJzAQw== + "@esbuild/darwin-arm64@0.16.5": version "0.16.5" resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.16.5.tgz#6e553f4be193d25a5e7cb6a73077d407a64bd6ad" integrity sha512-4HlbUMy50cRaHGVriBjShs46WRPshtnVOqkxEGhEuDuJhgZ3regpWzaQxXOcDXFvVwue8RiqDAAcOi/QlVLE6Q== +"@esbuild/darwin-arm64@0.16.8": + version "0.16.8" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.16.8.tgz#46ace701d2e7f9981584ec719cd8da6f6088642b" + integrity sha512-Ks8K1HGFf6LEjLnnVqB/zyaJcv7zMjbJ9txRZAwQwj+bzg8/AP0TmLBMJf9Ahwn6ATnHrhORtpydP8A/mNthXg== + "@esbuild/darwin-x64@0.16.5": version "0.16.5" resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.16.5.tgz#a9c466dbeca614edb5fe1a9c1ccd97bce30301af" integrity sha512-ZDCAxAPwbtKJ5YxRZusQKDFuywH+7YNKbilss0DCRPtXMxrKRZETcuSfcgIWGYBBc+ypdOazousx3yZss2Az0A== +"@esbuild/darwin-x64@0.16.8": + version "0.16.8" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.16.8.tgz#a1de180765d63a247a892c3abdf32cc9497f55ab" + integrity sha512-XXh2070hatspZdG/uPqyHLFlHlGbytvT4JlqZuTU3AizcyOvmatPBSnuARvwCtJMw30wjjehcYY8DWPZ5UF2og== + "@esbuild/freebsd-arm64@0.16.5": version "0.16.5" resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.16.5.tgz#e101c671b150a6e0fe06b5978f2005505afd97b8" integrity sha512-w0dJ8om4KiagLCHURgwxXVWzi5xa0W7F5woMxzWO+LDCebrlyZUhCIbSXUKa4qD3XbdG7K4Y8N4mLDRMkZzMuw== +"@esbuild/freebsd-arm64@0.16.8": + version "0.16.8" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.16.8.tgz#c52f25e4f74c1b50b7242a7aefd208652716a209" + integrity sha512-6DJuU3+tG9LcHCG/4K3e0AnqmmKWhUc9WDNIhLHOOdleafXwZeFvsqwfyaowNg9yUw5KipRLvV3JJMQ8kT1aPg== + "@esbuild/freebsd-x64@0.16.5": version "0.16.5" resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.16.5.tgz#79bf9368634f390d16f5032a9b6603f02b0d999b" integrity sha512-qCdC0T7XUxngX8otO4nmPUE/cHZfvF8jk+GMr9qkAGP0nIMACD7t/AWoY2N5rsn5/dOJ1VKM/aMF4wCFBP5AqQ== +"@esbuild/freebsd-x64@0.16.8": + version "0.16.8" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.16.8.tgz#fbec93f8fd4864b5882d62e45d2adf535ef2f582" + integrity sha512-UcsCaR25C0tZWnoImprPzr7vMEMjLImlTQAIfWXU2wvjF4gBWKO9GEH2JlsKYqBjfWfGgH+HHoGSF/evZbKyxA== + "@esbuild/linux-arm64@0.16.5": version "0.16.5" resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.16.5.tgz#9025197f1d4007743d130413f7579607f943a0f2" integrity sha512-h84QZmBhBdEclyxf9Wm/UESY6ITI7/gYLNvj/3emhDd0ILAqwHdWnMDmKqqubrMcpb1O4sWOYRm7EZ+Av8eGiQ== +"@esbuild/linux-arm64@0.16.8": + version "0.16.8" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.16.8.tgz#ba2799f92f34a0ded78963892c8e5a3117b575fe" + integrity sha512-WTL1v/OhSxgE7rEELRFNWskym0e+hKDMl4JZs7jpQp7218yJPOjdOEWsbzVEYv4G1cbbtWFvp9DtaAONtdCW5w== + "@esbuild/linux-arm@0.16.5": version "0.16.5" resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.16.5.tgz#4cc5ff0fc093610598f32f7fd5565326c0c4e5c6" integrity sha512-6crdpqwFjl+DObBgwaJMtB+VWrZd87Jy05gQTERysc1ujnUJNCJzemUcRDT5hM34dzTYThlXfFW32qQy9QpPGQ== +"@esbuild/linux-arm@0.16.8": + version "0.16.8" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.16.8.tgz#2b17c138f32ac00299bfdc9300c88f57e6bf04f9" + integrity sha512-Hn36NbKd6Prh0Ehv1A2ObjfXtN2g81jTpmq1+uRLHrW7CJW+W8GdVgOCVwyeupADUIOOa8bars6IZGcjkwq21w== + "@esbuild/linux-ia32@0.16.5": version "0.16.5" resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.16.5.tgz#9d897e7fff2f31433fa2c7b00048738dc9d47a69" integrity sha512-P1WNzGqy6ipvbt8iNoYY66+qUANCiM80D8bGJIU8jqSZ613eG0lUWBePi4xQazcNgIi9tSiCa9Ba3f4krXtQDw== +"@esbuild/linux-ia32@0.16.8": + version "0.16.8" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.16.8.tgz#7665de87f89bde21166da55f097f91d227945108" + integrity sha512-Jt+8YBFR2Pk68oS7E9z9PtmgJrDonGdEW3Camb2plZcztKpu/OxfnxFu8f41+TYpKhzUDm5uNMwqxRH3yDYrsQ== + "@esbuild/linux-loong64@0.16.5": version "0.16.5" resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.16.5.tgz#9fc800568028d1a1d5601375cd9f20f33fd91093" integrity sha512-r8wKqs+rl4gIT/xDB6CHMaYcvvyZ7tWf5LulH9NsDvgQEy3gIXQPR4Oy9tYrjM75uKkvBv1uw15Iz4EWsvve9Q== +"@esbuild/linux-loong64@0.16.8": + version "0.16.8" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.16.8.tgz#6ce9f86678d8b73dfd81672ab0477cf65e5ecf51" + integrity sha512-P+5J/U/WwPEwcKOFTlTQBK6Gqw4OytpfBvR2V+kBRb5jujwMOQ1aG8iKX14DAwCLks1YHXrXPwXXDPNWEWC59A== + "@esbuild/linux-mips64el@0.16.5": version "0.16.5" resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.16.5.tgz#ef9ee33e33c13771055f3726a3350cb0a4e1e550" integrity sha512-0WMhOlwfeeAp6KMx3E6LZKDN6INk4Me8dwIw1XMSFvmE6r31vRnwXkrQlAk5FI44KZ/rIi+yynRZqEd7UJAV2g== +"@esbuild/linux-mips64el@0.16.8": + version "0.16.8" + resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.16.8.tgz#6cf093dd9706e8f078868ffb91b602c1dc7f135e" + integrity sha512-RDSnljcka9UkVxcLtWv2lG5zcqkZUxIPY47ZSKytv4aoo8b05dH1gnKVWrxBZ+owp3dX48s2lXm6zp3hZHl8qw== + "@esbuild/linux-ppc64@0.16.5": version "0.16.5" resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.16.5.tgz#175d4a6f7b304c63686059861f276151d015cf26" integrity sha512-29x+DtRGcYH0Sh3QSnoF+D2SYkHLxwx5AugoGLIlVtcVqDb4fEb654d67k9VcAR2RiTAYUZ764KXzWB+ItQfgw== +"@esbuild/linux-ppc64@0.16.8": + version "0.16.8" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.16.8.tgz#ed3f4aa0a835fc385554711cdc0ac785d2f3856d" + integrity sha512-fNGvIKXyigXYhSflraBsqR/EBhXhuH0/0r7IpU+3reh+8yX3VjowjC/dwmqHDOSQXbcj+HJb1o9kWYi+fJQ/3g== + "@esbuild/linux-riscv64@0.16.5": version "0.16.5" resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.16.5.tgz#69fe8bc94f49fdcead8ed6144cb40e45920c4196" integrity sha512-ZX4SSKOJUcuqFNDydfN4yCo9je9f1T72Pj+RLsAGRiuiREVCwRkXIBp810C01+MdPqYExp322kY78ISEq5XGLQ== +"@esbuild/linux-riscv64@0.16.8": + version "0.16.8" + resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.16.8.tgz#7f1e1dee09b70041ab31ba770f9cc3cad78505f4" + integrity sha512-CsE1IKyVq/Y55PDnBUvm/e7XfvBgfb5kZxHbIEdmB9xt6cTcBkaVvv8EwLDZuYPkYI60WGl0UwyYYx9B2LLgkg== + "@esbuild/linux-s390x@0.16.5": version "0.16.5" resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.16.5.tgz#18d418673579081e7ec3c376b110cea832efadbc" integrity sha512-pYY86RiLD1s5RN8q0aMhWD44NiHmAZxv2bSzaNlL63/ibWETld+m6F+MPh9+ZNOqGJw53E/0qHukYI5Lm+1k7A== +"@esbuild/linux-s390x@0.16.8": + version "0.16.8" + resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.16.8.tgz#0641fbfd9fe1b7e14172ddd9c9dd396d402d54f9" + integrity sha512-k8RIN4M+GWQAfJ/oGqwxZlpzOyGF8mxp5mH1A1WUJrpSUo4pe0zkq2EoP1KMQbYkjeJi45YsjwK3IOnSoueXbA== + "@esbuild/linux-x64@0.16.5": version "0.16.5" resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.16.5.tgz#3dadd838a89b38e0653fcd3d74455d965c6c400d" integrity sha512-vsOwzKN+4NenUTyuoWLmg5dAuO8JKuLD9MXSeENA385XucuOZbblmOMwwgPlHsgVRtSjz38riqPJU2ALI/CWYQ== +"@esbuild/linux-x64@0.16.8": + version "0.16.8" + resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.16.8.tgz#50b960e728845c4e16497b6344ff49cd18e68410" + integrity sha512-u0hOo4E9PKyVDmPgJNeip1Tg63wxq+3KBJZKQFblqCl+d5N7n1h7pFwdN5ZzeLaaE645ep8aXzf76ndGnyOypg== + "@esbuild/netbsd-x64@0.16.5": version "0.16.5" resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.16.5.tgz#ab0ffb19dc14c0efc2317372e4e4782fdb8cbd9c" integrity sha512-ZhfELxpZLXg7OidX9MrjgQNhjhYx3GXm59EAQVZds8GTyOOPj+Hg7ttKenlXoV8PZVkoCm0dgoWXzhasZJGfWw== +"@esbuild/netbsd-x64@0.16.8": + version "0.16.8" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.16.8.tgz#c301af71797751766689460c2bd4516ead698c0e" + integrity sha512-wtENU7TOrnEbUes9aQuNe5PeBM4cTK5dn1W7v6XCr1LatJxAOn6Jn8yDGRsa2uKeEbAS5HeYx7uBAbTBd98OXQ== + "@esbuild/openbsd-x64@0.16.5": version "0.16.5" resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.16.5.tgz#0f33fb3acb8ac207cd366576030d17688acd2c60" integrity sha512-2HY2L0afN8IUgvxCAWY04bB6mhHSnC7YNGM2hmEkyAgP+n8jpZgGjiRokuk3AQ0g0IpX8h0KnS+xaznGEr5CGw== +"@esbuild/openbsd-x64@0.16.8": + version "0.16.8" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.16.8.tgz#8f10f04c6c80f04c7c1ee89e2f60ef5c791a8d4d" + integrity sha512-Y0DRVd/PIiutCpAYvRZHkpDNN3tdSQ1oyKy6xoh5TFTElAmzdlO7CO8ABs8689gq47lJ466cQEq9adJrKXrgXg== + "@esbuild/sunos-x64@0.16.5": version "0.16.5" resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.16.5.tgz#9f0da4e9c594bdbe92c27fe1d3d1effb8f036ad3" integrity sha512-Q7+HbDnW52LLW8YIU5h0sYZ23TvaaC0vuwiIbJUa91Qr77NKNJCe8stfunN1TRZo+6OwGpM3MrdUcUVUfr5wuA== +"@esbuild/sunos-x64@0.16.8": + version "0.16.8" + resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.16.8.tgz#463cb5d29997216391eaeaca25ed8549dd464f8e" + integrity sha512-eKg0I3C5z4NTF396Yo9QByXA8DdRS7QiYPFf6JHcED0BanyLW/jX8csUy96wyGivTNrmU0mCOShbeLgzb0eX7w== + "@esbuild/win32-arm64@0.16.5": version "0.16.5" resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.16.5.tgz#5ebb50418ed224061a049a59c876283962134cee" integrity sha512-KcegNS7IgLm/cAcjIW3kZyLiZi/p8I+A2a6OonDA77em9xHewdA2yTA+9pO4gr77MkXATcnDAFBrWw5oLHIZkQ== +"@esbuild/win32-arm64@0.16.8": + version "0.16.8" + resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.16.8.tgz#f69f45591a0d5c54f52c9fdc124fb3c54c823b42" + integrity sha512-M2BZhsa7z8kMGre96HTMXpm266cfJkbdtcZgVfAL8hY4ptkh5MwNDasl85CDo++ffW2issVT+W/xIGJOr0v2pg== + "@esbuild/win32-ia32@0.16.5": version "0.16.5" resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.16.5.tgz#57f008d3a2b8336ab0f7bd07431619c46921dbd0" integrity sha512-ReUCJSzLNGH6WcvwjMzpEy2SX5GTZBeRTvCdklN4DT2YrgRIe82lYVikVHwA7fdiL3xHKvmdiicMqxE8QYmxrA== +"@esbuild/win32-ia32@0.16.8": + version "0.16.8" + resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.16.8.tgz#0fd3cba945998c5907b63a2af2943b248461e272" + integrity sha512-mzzHVpnuHQT+IrptiW+uUswEMpVIueYuAkjwt1m4tQuVq9dGWqCA1y9EE+W3S19nMg6JvHMbaRjv3mlCcmi0rA== + "@esbuild/win32-x64@0.16.5": version "0.16.5" resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.16.5.tgz#9398d079a83b309b44021634ae6b4f7bc6a0cad0" integrity sha512-q00Jasz6/wCOD2XxRj4GEwj27u1zfpiBniL1ip3/YGGcYtvOoGKCNSS47sufO/8ixEgrSYDlkglSd6CxcS7m0g== +"@esbuild/win32-x64@0.16.8": + version "0.16.8" + resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.16.8.tgz#f77f4f51b1e088fd82e5dce258e83e5d255dc8ac" + integrity sha512-Zgzyn7njXpSSe1YGQk03eW4uei4QoZKloe/TBQZXgQHo6ul/ux0BtYdLz3MZ8WDlvqTG3QnLV4+gtV5ordM0+g== + "@eslint/eslintrc@^1.3.3": version "1.3.3" resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.3.3.tgz#2b044ab39fdfa75b4688184f9e573ce3c5b0ff95" @@ -9939,6 +10049,34 @@ esbuild@^0.16.0: "@esbuild/win32-ia32" "0.16.5" "@esbuild/win32-x64" "0.16.5" +esbuild@^0.16.8: + version "0.16.8" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.16.8.tgz#e6a383ad7b321421a299b7bd66cb0a96eac6d70d" + integrity sha512-RKxRaLYAI5b/IVJ5k8jK3bO2G7cch2ZIZFbfKHbBzpwsWt9+VChcBEndNISBBZ5c3WwekFfkfl11/2QfIGHgDw== + optionalDependencies: + "@esbuild/android-arm" "0.16.8" + "@esbuild/android-arm64" "0.16.8" + "@esbuild/android-x64" "0.16.8" + "@esbuild/darwin-arm64" "0.16.8" + "@esbuild/darwin-x64" "0.16.8" + "@esbuild/freebsd-arm64" "0.16.8" + "@esbuild/freebsd-x64" "0.16.8" + "@esbuild/linux-arm" "0.16.8" + "@esbuild/linux-arm64" "0.16.8" + "@esbuild/linux-ia32" "0.16.8" + "@esbuild/linux-loong64" "0.16.8" + "@esbuild/linux-mips64el" "0.16.8" + "@esbuild/linux-ppc64" "0.16.8" + "@esbuild/linux-riscv64" "0.16.8" + "@esbuild/linux-s390x" "0.16.8" + "@esbuild/linux-x64" "0.16.8" + "@esbuild/netbsd-x64" "0.16.8" + "@esbuild/openbsd-x64" "0.16.8" + "@esbuild/sunos-x64" "0.16.8" + "@esbuild/win32-arm64" "0.16.8" + "@esbuild/win32-ia32" "0.16.8" + "@esbuild/win32-x64" "0.16.8" + escalade@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40"