Merge pull request #485 from Irev-Dev/kurt/484-rebase

Remove s3
This commit was merged in pull request #485.
This commit is contained in:
Kurt Hutten
2021-09-04 23:53:21 +10:00
committed by GitHub
28 changed files with 457 additions and 4660 deletions

View File

@@ -3,13 +3,21 @@
"version": "0.0.0", "version": "0.0.0",
"private": true, "private": true,
"dependencies": { "dependencies": {
"@redwoodjs/api": "^0.36.2", "@redwoodjs/api": "^0.36.3",
"@sentry/node": "^6.5.1", "@sentry/node": "^6.5.1",
"axios": "^0.21.1",
"cloudinary": "^1.23.0", "cloudinary": "^1.23.0",
"cors": "^2.8.5",
"express": "^4.17.1",
"human-id": "^2.0.1", "human-id": "^2.0.1",
"nodemailer": "^6.6.2" "middy": "^0.36.0",
"nanoid": "^3.1.20",
"nodemailer": "^6.6.2",
"serverless-binary-cors": "^0.0.1"
}, },
"devDependencies": { "devDependencies": {
"@types/nodemailer": "^6.4.2" "@types/nodemailer": "^6.4.2",
"concurrently": "^6.0.0",
"nodemon": "^2.0.7"
} }
} }

View File

@@ -1,11 +1,12 @@
# Serverless # Serverless
We're using the serverless from work for deployment We're using the serverless framework for deployment
``` ```
sls deploy --stage stagename yarn rw build api && sls deploy --stage <stagename>
``` ```
But [Kurt Hutten](https://github.com/Irev-Dev) is the only one with credentials for deployment atm, though if you wanted to set your own account you could deploy to that if you wanted to test. But [Kurt Hutten](https://github.com/Irev-Dev) is the only one with credentials for deployment atm, though if you wanted to set your own account you could deploy to that if you wanted to test.
Deploying has `yarn rw build` first because the image uses built js files
## Testing changes locally ## Testing changes locally
@@ -18,17 +19,16 @@ The docker build relies on a git ignored file, the aws-lambda-rie. [Download it]
you will also need to create a .env in `app/api/src/docker/.env` for the following env-vars `DEV_AWS_SECRET_ACCESS_KEY, DEV_AWS_ACCESS_KEY_ID and DEV_BUCKET`. Ask @irev-dev for credentials and he can sort you out. you will also need to create a .env in `app/api/src/docker/.env` for the following env-vars `DEV_AWS_SECRET_ACCESS_KEY, DEV_AWS_ACCESS_KEY_ID and DEV_BUCKET`. Ask @irev-dev for credentials and he can sort you out.
Then cd into this folder `cd api/src/docker` and: Run
```bash ```bash
docker-compose up --build yarn cad
``` ```
The first time you run this, it has to build the main image it will take some time, but launching again will be quicker. The first time you run this, it has to build the main image it will take some time, but launching again will be quicker.
After which we'll also spin up a light express server to act as an emulator to transform some the request from the front end into how the lambda's expect them (This emulates the aws-api-gateway which changes tranforms the inbound requests somewhat). After which we'll also spin up a light express server to act as an emulator to transform some the request from the front end into how the lambda's expect them (This emulates the aws-api-gateway which changes tranforms the inbound requests somewhat).
``` ```
yarn install yarn aws-emulate
yarn emulate
``` ```
You can now add CAD_LAMBDA_BASE_URL="http://localhost:8080" to you .env file and restart your main dev process (`yarn rw dev`) comment that line out if you want to go back to using the aws endpoint (and restart the dev process). You can now add CAD_LAMBDA_BASE_URL="http://localhost:8080" to you .env file and restart your main dev process (`yarn rw dev`) comment that line out if you want to go back to using the aws endpoint (and restart the dev process).

View File

@@ -16,10 +16,12 @@ const makeRequest = (route, port) => [
console.log(`making post request to ${port}, ${route}`) console.log(`making post request to ${port}, ${route}`)
try { try {
const { data } = await axios.post(invocationURL(port), { const { data } = await axios.post(invocationURL(port), {
body: JSON.stringify(req.body), body: Buffer.from(JSON.stringify(req.body)).toString('base64'),
}) })
res.status(data.statusCode) res.status(data.statusCode)
res.send(data.body) res.setHeader('Content-Type', 'application/javascript')
res.setHeader('Content-Encoding', 'gzip')
res.send(Buffer.from(data.body, 'base64'))
} catch (e) { } catch (e) {
res.status(500) res.status(500)
res.send() res.send()

View File

@@ -8,7 +8,7 @@ RUN apt-get update -qq
RUN apt-get install -y wget RUN apt-get install -y wget
# install node14, see comment at the to of node14source_setup.sh # install node14, see comment at the to of node14source_setup.sh
ADD common/node14source_setup.sh /nodesource_setup.sh ADD src/docker/common/node14source_setup.sh /nodesource_setup.sh
RUN ["chmod", "+x", "/nodesource_setup.sh"] RUN ["chmod", "+x", "/nodesource_setup.sh"]
RUN bash nodesource_setup.sh RUN bash nodesource_setup.sh
RUN apt-get install -y nodejs RUN apt-get install -y nodejs
@@ -26,13 +26,14 @@ RUN apt-get update && \
# Add the lambda emulator for local dev, (see entrypoint.sh for where it's used), # Add the lambda emulator for local dev, (see entrypoint.sh for where it's used),
# I have the file locally (gitignored) to speed up build times (as it downloads everytime), # I have the file locally (gitignored) to speed up build times (as it downloads everytime),
# but you can use the http version of the below ADD command or download it yourself from that url. # but you can use the http version of the below ADD command or download it yourself from that url.
ADD common/aws-lambda-rie /usr/local/bin/aws-lambda-rie ADD src/docker/common/aws-lambda-rie /usr/local/bin/aws-lambda-rie
# ADD https://github.com/aws/aws-lambda-runtime-interface-emulator/releases/download/v1.0/aws-lambda-rie /usr/local/bin/aws-lambda-rie # ADD https://github.com/aws/aws-lambda-runtime-interface-emulator/releases/download/v1.0/aws-lambda-rie /usr/local/bin/aws-lambda-rie
RUN ["chmod", "+x", "/usr/local/bin/aws-lambda-rie"] RUN ["chmod", "+x", "/usr/local/bin/aws-lambda-rie"]
WORKDIR /var/task/ WORKDIR /var/task/
COPY cadquery/package*.json /var/task/ COPY package*.json /var/task/
RUN npm install RUN npm install
RUN npm install aws-lambda-ric@1.0.0
# Get the distribution copy of cq-cli # Get the distribution copy of cq-cli
@@ -45,9 +46,11 @@ RUN unzip cq-cli-Linux-x86_64.zip
RUN chmod +x cq-cli/cq-cli RUN chmod +x cq-cli/cq-cli
RUN echo "cadhub-concat-split" > /var/task/cadhub-concat-split RUN echo "cadhub-concat-split" > /var/task/cadhub-concat-split
COPY cadquery/*.js /var/task/ # using built javascript from dist
COPY common/*.js /var/common/ # run `yarn rw build` before bulding this image
COPY common/entrypoint.sh /entrypoint.sh COPY dist/docker/cadquery/*.js /var/task/js/
COPY dist/docker/common/*.js /var/task/common/
COPY src/docker/common/entrypoint.sh /entrypoint.sh
RUN ["chmod", "+x", "/entrypoint.sh"] RUN ["chmod", "+x", "/entrypoint.sh"]
ENTRYPOINT ["sh", "/entrypoint.sh"] ENTRYPOINT ["sh", "/entrypoint.sh"]
CMD [ "cadquery.stl" ] CMD [ "js/cadquery.stl" ]

View File

@@ -1,56 +0,0 @@
const { runCQ } = require('./runCQ')
const middy = require('middy')
const { cors } = require('middy/middlewares')
const AWS = require('aws-sdk')
const tk = require('timekeeper')
const {
makeHash,
checkIfAlreadyExists,
getObjectUrl,
loggerWrap,
storeAssetAndReturnUrl,
} = require('../common/utils')
const s3 = new AWS.S3()
const stl = async (req, _context, callback) => {
_context.callbackWaitsForEmptyEventLoop = false
const eventBody = req.body
console.log('eventBody', eventBody)
const key = `${makeHash(eventBody)}.stl`
console.log('key', key)
const params = {
Bucket: process.env.BUCKET,
Key: key,
}
const previousAsset = await checkIfAlreadyExists(params, s3)
if (previousAsset.isAlreadyInBucket) {
console.log('already in bucket')
const response = {
statusCode: 200,
body: JSON.stringify({
url: getObjectUrl(params, s3, tk),
}),
}
callback(null, response)
return
}
const { file, settings } = JSON.parse(eventBody)
const { error, consoleMessage, fullPath } = await runCQ({ file, settings })
await storeAssetAndReturnUrl({
error,
callback,
fullPath,
consoleMessage,
key,
s3,
params,
tk,
})
}
module.exports = {
stl: middy(loggerWrap(stl)).use(cors()),
}

View File

@@ -0,0 +1,23 @@
import { runCQ } from './runCQ'
import middy from 'middy'
import { cors } from 'middy/middlewares'
import { loggerWrap, storeAssetAndReturnUrl } from '../common/utils'
const stl = async (req, _context, callback) => {
_context.callbackWaitsForEmptyEventLoop = false
const eventBody = Buffer.from(req.body, 'base64').toString('ascii')
console.log('eventBody', eventBody)
const { file, settings } = JSON.parse(eventBody)
const { error, consoleMessage, fullPath } = await runCQ({ file, settings })
await storeAssetAndReturnUrl({
error,
callback,
fullPath,
consoleMessage,
})
}
module.exports = {
stl: middy(loggerWrap(stl)).use(cors()),
}

File diff suppressed because it is too large Load Diff

View File

@@ -1,18 +0,0 @@
{
"name": "openscad-endpoint",
"version": "0.0.1",
"description": "endpoint for openscad",
"main": "index.js",
"author": "Kurt Hutten <kurt@kurthutten.com>",
"license": "",
"dependencies": {
"aws-sdk": "^2.907.0",
"cors": "^2.8.5",
"middy": "^0.36.0",
"nanoid": "^3.1.20",
"timekeeper": "2.2.0"
},
"devDependencies": {
"aws-lambda-ric": "^1.0.0"
}
}

View File

@@ -1,7 +1,7 @@
const { writeFiles, runCommand } = require('../common/utils') import { writeFiles, runCommand } from '../common/utils'
const { nanoid } = require('nanoid') import { nanoid } from 'nanoid'
module.exports.runCQ = async ({ export const runCQ = async ({
file, file,
settings: { deflection = 0.3 } = {}, settings: { deflection = 0.3 } = {},
} = {}) => { } = {}) => {
@@ -27,6 +27,7 @@ module.exports.runCQ = async ({
{ {
file: JSON.stringify({ file: JSON.stringify({
consoleMessage, consoleMessage,
type: 'stl',
}), }),
fileName: 'metadata.json', fileName: 'metadata.json',
}, },

View File

@@ -2,8 +2,12 @@ const { exec } = require('child_process')
const { promises } = require('fs') const { promises } = require('fs')
const { writeFile } = promises const { writeFile } = promises
const { createHash } = require('crypto') const { createHash } = require('crypto')
import { readFile } from 'fs/promises'
async function writeFiles(files = [], tempFile) { export async function writeFiles(
files: { file: string; fileName: string }[] = [],
tempFile: string
): Promise<string> {
console.log(`file to write: ${files.length}`) console.log(`file to write: ${files.length}`)
try { try {
@@ -19,7 +23,7 @@ async function writeFiles(files = [], tempFile) {
return tempFile return tempFile
} }
async function runCommand(command, timeout = 5000) { export async function runCommand(command, timeout = 5000): Promise<string> {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
exec(command, (error, stdout, stderr) => { exec(command, (error, stdout, stderr) => {
if (error) { if (error) {
@@ -77,7 +81,7 @@ function getObjectUrl(params, s3, tk) {
) )
} }
function loggerWrap(handler) { export function loggerWrap(handler) {
return (req, _context, callback) => { return (req, _context, callback) => {
try { try {
return handler(req, _context, callback) return handler(req, _context, callback)
@@ -87,15 +91,16 @@ function loggerWrap(handler) {
} }
} }
async function storeAssetAndReturnUrl({ export async function storeAssetAndReturnUrl({
error, error,
callback, callback,
fullPath, fullPath,
consoleMessage, consoleMessage,
key, }: {
s3, error: string
params, callback: Function
tk, fullPath: string
consoleMessage: string
}) { }) {
if (error) { if (error) {
const response = { const response = {
@@ -106,11 +111,10 @@ async function storeAssetAndReturnUrl({
return return
} else { } else {
console.log(`got result in route: ${consoleMessage}, file is: ${fullPath}`) console.log(`got result in route: ${consoleMessage}, file is: ${fullPath}`)
const { readFile } = require('fs/promises') let buffer = ''
let buffer
try { try {
buffer = await readFile(fullPath) buffer = await readFile(fullPath, { encoding: 'base64' })
} catch (e) { } catch (e) {
console.log('read file error', e) console.log('read file error', e)
const response = { const response = {
@@ -120,37 +124,16 @@ async function storeAssetAndReturnUrl({
callback(null, response) callback(null, response)
return return
} }
const FiveDays = 432000
const storedRender = await s3
.putObject({
Bucket: process.env.BUCKET,
Key: key,
Body: buffer,
CacheControl: `max-age=${FiveDays}`, // browser caching to stop downloads of the same part
ContentType: 'text/stl',
ContentEncoding: 'gzip',
})
.promise()
console.log('stored object', storedRender)
const url = getObjectUrl(params, s3, tk)
console.log('url', url)
const response = { const response = {
statusCode: 200, statusCode: 200,
body: JSON.stringify({ body: buffer,
url, isBase64Encoded: true,
}), headers: {
'Content-Type': 'application/javascript',
'Content-Encoding': 'gzip',
},
} }
callback(null, response) callback(null, response)
return return
} }
} }
module.exports = {
runCommand,
writeFiles,
makeHash,
checkIfAlreadyExists,
getObjectUrl,
loggerWrap,
storeAssetAndReturnUrl,
}

View File

@@ -2,10 +2,14 @@ services:
openscad-preview: openscad-preview:
build: build:
context: ./ context: ../../
dockerfile: ./openscad/Dockerfile dockerfile: ./src/docker/openscad/Dockerfile
image: openscad image: openscad
command: openscad.preview command: js/openscad.preview
# Adding volumes so that the containers can be restarted for js only changes in local dev
volumes:
- ../../dist/docker/openscad:/var/task/js/
- ../../dist/docker/common:/var/task/common/
ports: ports:
- "5052:8080" - "5052:8080"
environment: environment:
@@ -15,7 +19,10 @@ services:
openscad-stl: openscad-stl:
image: openscad image: openscad
command: openscad.stl volumes:
- ../../dist/docker/openscad:/var/task/js/
- ../../dist/docker/common:/var/task/common/
command: js/openscad.stl
ports: ports:
- "5053:8080" - "5053:8080"
environment: environment:
@@ -25,9 +32,12 @@ services:
cadquery-stl: cadquery-stl:
build: build:
context: ./ context: ../../
dockerfile: ./cadquery/Dockerfile dockerfile: ./src/docker/cadquery/Dockerfile
command: cadquery.stl volumes:
- ../../dist/docker/cadquery:/var/task/js/
- ../../dist/docker/common:/var/task/common/
command: js/cadquery.stl
ports: ports:
- 5060:8080 - 5060:8080
environment: environment:

View File

@@ -14,7 +14,7 @@ RUN apt-get update -qq
RUN apt-get install -y openscad-nightly RUN apt-get install -y openscad-nightly
# install node14, see comment at the to of node14source_setup.sh # install node14, see comment at the to of node14source_setup.sh
ADD common/node14source_setup.sh /nodesource_setup.sh ADD src/docker/common/node14source_setup.sh /nodesource_setup.sh
RUN ["chmod", "+x", "/nodesource_setup.sh"] RUN ["chmod", "+x", "/nodesource_setup.sh"]
RUN bash nodesource_setup.sh RUN bash nodesource_setup.sh
RUN apt-get install -y nodejs RUN apt-get install -y nodejs
@@ -32,13 +32,14 @@ RUN apt-get update && \
# Add the lambda emulator for local dev, (see entrypoint.sh for where it's used), # Add the lambda emulator for local dev, (see entrypoint.sh for where it's used),
# I have the file locally (gitignored) to speed up build times (as it downloads everytime), # I have the file locally (gitignored) to speed up build times (as it downloads everytime),
# but you can use the http version of the below ADD command or download it yourself from that url. # but you can use the http version of the below ADD command or download it yourself from that url.
ADD common/aws-lambda-rie /usr/local/bin/aws-lambda-rie ADD src/docker/common/aws-lambda-rie /usr/local/bin/aws-lambda-rie
# ADD https://github.com/aws/aws-lambda-runtime-interface-emulator/releases/download/v1.0/aws-lambda-rie /usr/local/bin/aws-lambda-rie # ADD https://github.com/aws/aws-lambda-runtime-interface-emulator/releases/download/v1.0/aws-lambda-rie /usr/local/bin/aws-lambda-rie
RUN ["chmod", "+x", "/usr/local/bin/aws-lambda-rie"] RUN ["chmod", "+x", "/usr/local/bin/aws-lambda-rie"]
WORKDIR /var/task/ WORKDIR /var/task/
COPY openscad/package*.json /var/task/ COPY package*.json /var/task/
RUN npm install RUN npm install
RUN npm install aws-lambda-ric@1.0.0
# Install OpenSCAD libraries # Install OpenSCAD libraries
# It's experimental, so only adding latest Round-Anything for now # It's experimental, so only adding latest Round-Anything for now
@@ -46,14 +47,16 @@ RUN echo "OPENSCADPATH=/var/task/openscad" >>/etc/profile && \
wget -P /var/task/openscad/ https://github.com/Irev-Dev/Round-Anything/archive/refs/tags/1.0.4.zip && \ wget -P /var/task/openscad/ https://github.com/Irev-Dev/Round-Anything/archive/refs/tags/1.0.4.zip && \
unzip /var/task/openscad/1.0.4 unzip /var/task/openscad/1.0.4
# Add our own theming (based on DeepOcean with a different "background" and "opencsg-face-back") # Add our own theming (based on DeepOcean with a different "background" and "opencsg-face-back")
COPY openscad/cadhubtheme.json /usr/share/openscad-nightly/color-schemes/render/ COPY src/docker/openscad/cadhubtheme.json /usr/share/openscad-nightly/color-schemes/render/
RUN echo "cadhub-concat-split" > /var/task/cadhub-concat-split RUN echo "cadhub-concat-split" > /var/task/cadhub-concat-split
COPY openscad/*.js /var/task/ # using built javascript from dist
COPY common/*.js /var/common/ # run `yarn rw build` before bulding this image
COPY common/entrypoint.sh /entrypoint.sh COPY dist/docker/openscad/* /var/task/js/
COPY dist/docker/common/* /var/task/common/
COPY src/docker/common/entrypoint.sh /entrypoint.sh
RUN ["chmod", "+x", "/entrypoint.sh"] RUN ["chmod", "+x", "/entrypoint.sh"]
ENTRYPOINT ["sh", "/entrypoint.sh"] ENTRYPOINT ["sh", "/entrypoint.sh"]
CMD [ "openscad.render" ] CMD [ "js/openscad.render" ]

View File

@@ -1,129 +0,0 @@
const { runScad, stlExport } = require('./runScad')
const middy = require('middy')
const { cors } = require('middy/middlewares')
const AWS = require('aws-sdk')
const tk = require('timekeeper')
const {
makeHash,
checkIfAlreadyExists,
getObjectUrl,
loggerWrap,
storeAssetAndReturnUrl,
} = require('../common/utils')
const s3 = new AWS.S3()
const openScadStlKey = (eventBody) => {
const { file } = JSON.parse(eventBody)
return `${makeHash(JSON.stringify(file))}.stl`
}
const preview = async (req, _context, callback) => {
_context.callbackWaitsForEmptyEventLoop = false
const eventBody = req.body
console.log('eventBody', eventBody)
const key = `${makeHash(eventBody)}.png`
const stlKey = openScadStlKey(eventBody)
console.log('key', key)
const stlParams = {
Bucket: process.env.BUCKET,
Key: stlKey,
}
const params = {
Bucket: process.env.BUCKET,
Key: key,
}
const [previousAssetStl, previousAssetPng] = await Promise.all([
checkIfAlreadyExists(stlParams, s3),
checkIfAlreadyExists(params, s3),
])
const type = previousAssetStl.isAlreadyInBucket ? 'stl' : 'png'
const previousAsset = previousAssetStl.isAlreadyInBucket
? previousAssetStl
: previousAssetPng
if (previousAsset.isAlreadyInBucket) {
console.log('already in bucket')
const response = {
statusCode: 200,
body: JSON.stringify({
url: getObjectUrl(
{
Bucket: process.env.BUCKET,
Key: previousAssetStl.isAlreadyInBucket ? stlKey : key,
},
s3,
tk
),
type,
}),
}
callback(null, response)
return
}
const { file, settings } = JSON.parse(eventBody)
const { error, consoleMessage, fullPath, customizerPath } = await runScad({
file,
settings,
})
await storeAssetAndReturnUrl({
error,
callback,
fullPath,
consoleMessage,
key,
s3,
params,
tk,
})
}
const stl = async (req, _context, callback) => {
_context.callbackWaitsForEmptyEventLoop = false
const eventBody = req.body
console.log(eventBody, 'eventBody')
const stlKey = openScadStlKey(eventBody)
console.log('key', stlKey)
const params = {
Bucket: process.env.BUCKET,
Key: stlKey,
}
console.log('original params', params)
const previousAsset = await checkIfAlreadyExists(params, s3)
if (previousAsset.isAlreadyInBucket) {
console.log('already in bucket')
const response = {
statusCode: 200,
body: JSON.stringify({
url: getObjectUrl({ ...params }, s3, tk),
}),
}
callback(null, response)
return
}
const { file, settings } = JSON.parse(eventBody)
const { error, consoleMessage, fullPath, customizerPath } = await stlExport({
file,
settings,
})
await storeAssetAndReturnUrl({
error,
callback,
fullPath,
consoleMessage,
key: stlKey,
s3,
params,
tk,
})
}
module.exports = {
stl: middy(loggerWrap(stl)).use(cors()),
preview: middy(loggerWrap(preview)).use(cors()),
}

View File

@@ -0,0 +1,46 @@
import { runScad, stlExport } from './runScad'
import middy from 'middy'
import { cors } from 'middy/middlewares'
import { loggerWrap, storeAssetAndReturnUrl } from '../common/utils'
const preview = async (req, _context, callback) => {
_context.callbackWaitsForEmptyEventLoop = false
const eventBody = Buffer.from(req.body, 'base64').toString('ascii')
console.log('eventBody', eventBody)
const { file, settings } = JSON.parse(eventBody)
const { error, consoleMessage, fullPath } = await runScad({
file,
settings,
})
await storeAssetAndReturnUrl({
error,
callback,
fullPath,
consoleMessage,
})
}
const stl = async (req, _context, callback) => {
_context.callbackWaitsForEmptyEventLoop = false
const eventBody = Buffer.from(req.body, 'base64').toString('ascii')
console.log(eventBody, 'eventBody')
const { file, settings } = JSON.parse(eventBody)
const { error, consoleMessage, fullPath } = await stlExport({
file,
settings,
})
await storeAssetAndReturnUrl({
error,
callback,
fullPath,
consoleMessage,
})
}
module.exports = {
stl: middy(loggerWrap(stl)).use(cors()),
preview: middy(loggerWrap(preview)).use(cors()),
}

File diff suppressed because it is too large Load Diff

View File

@@ -1,18 +0,0 @@
{
"name": "openscad-endpoint",
"version": "0.0.1",
"description": "endpoint for openscad",
"main": "index.js",
"author": "Kurt Hutten <kurt@kurthutten.com>",
"license": "",
"dependencies": {
"aws-sdk": "^2.907.0",
"cors": "^2.8.5",
"middy": "^0.36.0",
"nanoid": "^3.1.20",
"timekeeper": "2.2.0"
},
"devDependencies": {
"aws-lambda-ric": "^1.0.0"
}
}

View File

@@ -1,5 +1,5 @@
const { writeFiles, runCommand } = require('../common/utils') import { writeFiles, runCommand } from '../common/utils'
const { nanoid } = require('nanoid') import { nanoid } from 'nanoid'
const { readFile } = require('fs/promises') const { readFile } = require('fs/promises')
const OPENSCAD_COMMON = `xvfb-run --auto-servernum --server-args "-screen 0 1024x768x24" openscad-nightly` const OPENSCAD_COMMON = `xvfb-run --auto-servernum --server-args "-screen 0 1024x768x24" openscad-nightly`
@@ -8,7 +8,7 @@ const OPENSCAD_COMMON = `xvfb-run --auto-servernum --server-args "-screen 0 1024
const cleanOpenScadError = (error) => const cleanOpenScadError = (error) =>
error.replace(/["|']\/tmp\/.+\/main.scad["|']/g, "'main.scad'") error.replace(/["|']\/tmp\/.+\/main.scad["|']/g, "'main.scad'")
module.exports.runScad = async ({ export const runScad = async ({
file, file,
settings: { settings: {
size: { x = 500, y = 500 } = {}, size: { x = 500, y = 500 } = {},
@@ -19,7 +19,12 @@ module.exports.runScad = async ({
dist = 200, dist = 200,
} = {}, } = {},
} = {}, // TODO add view settings } = {}, // TODO add view settings
} = {}) => { } = {}): Promise<{
error?: string
consoleMessage?: string
fullPath?: string
customizerPath?: string
}> => {
const tempFile = await writeFiles( const tempFile = await writeFiles(
[ [
{ file, fileName: 'main.scad' }, { file, fileName: 'main.scad' },
@@ -62,6 +67,7 @@ module.exports.runScad = async ({
file: JSON.stringify({ file: JSON.stringify({
customizerParams: params, customizerParams: params,
consoleMessage, consoleMessage,
type: 'png',
}), }),
fileName: 'metadata.json', fileName: 'metadata.json',
}, },
@@ -78,7 +84,7 @@ module.exports.runScad = async ({
} }
} }
module.exports.stlExport = async ({ file, settings: { parameters } } = {}) => { export const stlExport = async ({ file, settings: { parameters } } = {}) => {
const tempFile = await writeFiles( const tempFile = await writeFiles(
[ [
{ file, fileName: 'main.scad' }, { file, fileName: 'main.scad' },
@@ -116,6 +122,7 @@ module.exports.stlExport = async ({ file, settings: { parameters } } = {}) => {
file: JSON.stringify({ file: JSON.stringify({
customizerParams: params, customizerParams: params,
consoleMessage, consoleMessage,
type: 'stl',
}), }),
fileName: 'metadata.json', fileName: 'metadata.json',
}, },

File diff suppressed because it is too large Load Diff

View File

@@ -1,20 +0,0 @@
{
"name": "aws-emulator",
"version": "1.0.0",
"description": "thin layer so that we can use docker lambdas locally",
"scripts": {
"lambdas": "docker-compose up --build",
"emulate": "nodemon ./aws-emulator.js",
"watch": "concurrently \"yarn lambdas\" \"yarn emulate\""
},
"main": "aws-emulator.js",
"dependencies": {
"axios": "^0.21.1",
"cors": "^2.8.5",
"express": "^4.17.1"
},
"devDependencies": {
"concurrently": "^6.0.0",
"nodemon": "^2.0.7"
}
}

View File

@@ -3,7 +3,8 @@ service: cad-lambdas
#app: your-app-name #app: your-app-name
#org: your-org-name #org: your-org-name
# plugins: plugins:
- serverless-binary-cors
# - serverless-offline # - serverless-offline
# You can pin your service to only deploy with a specific Serverless version # You can pin your service to only deploy with a specific Serverless version
@@ -17,13 +18,18 @@ provider:
images: images:
# this image is built locally and push to ECR # this image is built locally and push to ECR
openscadimage: openscadimage:
path: ./ path: ../../
file: ./openscad/Dockerfile file: ./src/docker/openscad/Dockerfile
cadqueryimage: cadqueryimage:
path: ./ path: ../../
file: ./cadquery/Dockerfile file: ./src/docker/cadquery/Dockerfile
apiGateway: apiGateway:
metrics: true metrics: true
binaryMediaTypes:
# we need to allow binary types to be able to send back images and stls, but it would be better to be more specific
# ie image/png etc. as */* treats everything as binary including the json body as the input the lambdas
# which mean we need to decode the input bode from base64, but the images break with anything other than */* :(
- '*/*'
# you can overwrite defaults here # you can overwrite defaults here
# stage: dev # stage: dev
@@ -52,7 +58,7 @@ functions:
image: image:
name: openscadimage name: openscadimage
command: command:
- openscad.preview - js/openscad.preview
entryPoint: entryPoint:
- '/entrypoint.sh' - '/entrypoint.sh'
events: events:
@@ -67,7 +73,7 @@ functions:
image: image:
name: openscadimage name: openscadimage
command: command:
- openscad.stl - js/openscad.stl
entryPoint: entryPoint:
- '/entrypoint.sh' - '/entrypoint.sh'
events: events:
@@ -82,7 +88,7 @@ functions:
image: image:
name: cadqueryimage name: cadqueryimage
command: command:
- cadquery.stl - js/cadquery.stl
entryPoint: entryPoint:
- '/entrypoint.sh' - '/entrypoint.sh'
events: events:

View File

@@ -6,9 +6,13 @@
"web" "web"
] ]
}, },
"scripts": {}, "scripts": {
"cad": "yarn rw build api && docker-compose --file ./api/src/docker/docker-compose.yml up --build",
"cad-r": "yarn rw build api && docker-compose --file ./api/src/docker/docker-compose.yml restart",
"aws-emulate": "nodemon ./api/src/docker/aws-emulator.js"
},
"devDependencies": { "devDependencies": {
"@redwoodjs/core": "^0.36.2" "@redwoodjs/core": "^0.36.3"
}, },
"eslintConfig": { "eslintConfig": {
"extends": "@redwoodjs/eslint-config", "extends": "@redwoodjs/eslint-config",

View File

@@ -19,10 +19,10 @@
"@monaco-editor/react": "^4.0.11", "@monaco-editor/react": "^4.0.11",
"@react-three/drei": "^7.3.1", "@react-three/drei": "^7.3.1",
"@react-three/fiber": "^7.0.5", "@react-three/fiber": "^7.0.5",
"@redwoodjs/auth": "^0.36.2", "@redwoodjs/auth": "^0.36.3",
"@redwoodjs/forms": "^0.36.2", "@redwoodjs/forms": "^0.36.3",
"@redwoodjs/router": "^0.36.2", "@redwoodjs/router": "^0.36.3",
"@redwoodjs/web": "^0.36.2", "@redwoodjs/web": "^0.36.3",
"@sentry/browser": "^6.5.1", "@sentry/browser": "^6.5.1",
"@tailwindcss/aspect-ratio": "0.2.1", "@tailwindcss/aspect-ratio": "0.2.1",
"axios": "^0.21.1", "axios": "^0.21.1",

View File

@@ -11,8 +11,9 @@ const ExternalScript = () => {
const handleRender = useRender() const handleRender = useRender()
const [rawUrl, setRawUrl] = useState('') const [rawUrl, setRawUrl] = useState('')
const [script, setScript] = useState('') const [script, setScript] = useState('')
const [asyncState, setAsyncState] = const [asyncState, setAsyncState] = useState<
useState<'INIT' | 'SUCCESS' | 'ERROR' | 'LOADING'>('INIT') 'INIT' | 'SUCCESS' | 'ERROR' | 'LOADING'
>('INIT')
const cadName = ideTypeNameMap[state.ideType] const cadName = ideTypeNameMap[state.ideType]

View File

@@ -3,7 +3,9 @@ import { TextField, FieldError } from '@redwoodjs/forms'
import { useFormContext } from 'react-hook-form' import { useFormContext } from 'react-hook-form'
const InputText = ({ type = 'text', className, name, validation }) => { const InputText = ({ type = 'text', className, name, validation }) => {
const { formState: { errors } } = useFormContext() const {
formState: { errors },
} = useFormContext()
return ( return (
<> <>
<div className={getActiveClasses('relative inline-block', className)}> <div className={getActiveClasses('relative inline-block', className)}>

View File

@@ -41,20 +41,16 @@ export const render: DefaultKernelExport['render'] = async ({
if (response.status === 502) { if (response.status === 502) {
return createUnhealthyResponse(new Date(), timeoutErrorMessage) return createUnhealthyResponse(new Date(), timeoutErrorMessage)
} }
const data = await response.json() const blob = await response.blob()
const newData = await fetch(data.url).then(async (a) => {
const blob = await a.blob()
const text = await new Response(blob).text() const text = await new Response(blob).text()
const { consoleMessage } = splitGziped(text) const { consoleMessage, customizerParams, type } = splitGziped(text)
return {
data: await stlToGeometry(window.URL.createObjectURL(blob)),
consoleMessage,
}
})
return createHealthyResponse({ return createHealthyResponse({
type: 'geometry', type: type !== 'stl' ? 'png' : 'geometry',
data: newData.data, data:
consoleMessage: newData.consoleMessage, type !== 'stl'
? blob
: await stlToGeometry(window.URL.createObjectURL(blob)),
consoleMessage,
date: new Date(), date: new Date(),
}) })
} catch (e) { } catch (e) {

View File

@@ -4,7 +4,7 @@ import { CadhubParams } from 'src/components/Customizer/customizerConverter'
export const lambdaBaseURL = export const lambdaBaseURL =
process.env.CAD_LAMBDA_BASE_URL || process.env.CAD_LAMBDA_BASE_URL ||
'https://oxt2p7ddgj.execute-api.us-east-1.amazonaws.com/prod' 'https://2inlbple1b.execute-api.us-east-1.amazonaws.com/prod2'
export const stlToGeometry = (url) => export const stlToGeometry = (url) =>
new Promise((resolve, reject) => { new Promise((resolve, reject) => {

View File

@@ -57,27 +57,18 @@ export const render = async ({ code, settings }: RenderArgs) => {
if (response.status === 502) { if (response.status === 502) {
return createUnhealthyResponse(new Date(), timeoutErrorMessage) return createUnhealthyResponse(new Date(), timeoutErrorMessage)
} }
const data = await response.json() const blob = await response.blob()
const type = data.type !== 'stl' ? 'png' : 'geometry'
const newData = await fetch(data.url).then(async (a) => {
const blob = await a.blob()
const text = await new Response(blob).text() const text = await new Response(blob).text()
const { consoleMessage, customizerParams } = splitGziped(text) const { consoleMessage, customizerParams, type } = splitGziped(text)
return { return createHealthyResponse({
type: type !== 'stl' ? 'png' : 'geometry',
data: data:
data.type !== 'stl' type !== 'stl'
? blob ? blob
: await stlToGeometry(window.URL.createObjectURL(blob)), : await stlToGeometry(window.URL.createObjectURL(blob)),
consoleMessage, consoleMessage,
customizerParams,
}
})
return createHealthyResponse({
type,
data: newData.data,
consoleMessage: newData.consoleMessage,
date: new Date(), date: new Date(),
customizerParams: openScadToCadhubParams(newData.customizerParams || []), customizerParams: openScadToCadhubParams(customizerParams || []),
}) })
} catch (e) { } catch (e) {
return createUnhealthyResponse(new Date()) return createUnhealthyResponse(new Date())
@@ -105,23 +96,18 @@ export const stl = async ({ code, settings }: RenderArgs) => {
if (response.status === 502) { if (response.status === 502) {
return createUnhealthyResponse(new Date(), timeoutErrorMessage) return createUnhealthyResponse(new Date(), timeoutErrorMessage)
} }
const data = await response.json() const blob = await response.blob()
const newData = await fetch(data.url).then(async (a) => {
const blob = await a.blob()
const text = await new Response(blob).text() const text = await new Response(blob).text()
const { consoleMessage, customizerParams } = splitGziped(text) const { consoleMessage, customizerParams, type } = splitGziped(text)
return {
data: await stlToGeometry(window.URL.createObjectURL(blob)),
consoleMessage,
customizerParams,
}
})
return createHealthyResponse({ return createHealthyResponse({
type: 'geometry', type: type !== 'stl' ? 'png' : 'geometry',
data: newData.data, data:
consoleMessage: newData.consoleMessage, type !== 'stl'
? blob
: await stlToGeometry(window.URL.createObjectURL(blob)),
consoleMessage,
date: new Date(), date: new Date(),
customizerParams: openScadToCadhubParams(newData.customizerParams || []), customizerParams: openScadToCadhubParams(customizerParams || []),
}) })
} catch (e) { } catch (e) {
return createUnhealthyResponse(new Date()) return createUnhealthyResponse(new Date())

View File

@@ -2476,20 +2476,12 @@
resolved "https://registry.yarnpkg.com/@popperjs/core/-/core-2.9.2.tgz#adea7b6953cbb34651766b0548468e743c6a2353" resolved "https://registry.yarnpkg.com/@popperjs/core/-/core-2.9.2.tgz#adea7b6953cbb34651766b0548468e743c6a2353"
integrity sha512-VZMYa7+fXHdwIq1TDhSXoVmSPEGM/aa+6Aiq3nVVJ9bXr24zScr+NlKFKC3iPljA7ho/GAZr+d2jOf5GIRC30Q== integrity sha512-VZMYa7+fXHdwIq1TDhSXoVmSPEGM/aa+6Aiq3nVVJ9bXr24zScr+NlKFKC3iPljA7ho/GAZr+d2jOf5GIRC30Q==
"@prisma/client@2.29.1": "@prisma/client@2.30.0":
version "2.29.1" version "2.30.0"
resolved "https://registry.yarnpkg.com/@prisma/client/-/client-2.29.1.tgz#a7b91c9644800de4e00b2f7c3789ff4bae42b3d6" resolved "https://registry.yarnpkg.com/@prisma/client/-/client-2.30.0.tgz#b0ed9db67405f619e428577f2d45843104142e00"
integrity sha512-GhieSvHGPIV5IwRYIkJ4FrGSNfX18lPhFtlyVWxhvX0ocdy8oTnjNZVTFgGxB6qVmJIUpH1HsckAzIoAX689IA== integrity sha512-tjJNHVfgyNOwS2F+AkjMMCJGPnXzHuUCrOnAMJyidAu4aNzxbJ8jWwjt96rRMpyrg9Hwen3xqqQ2oA+ikK7nhQ==
dependencies: dependencies:
"@prisma/engines-version" "2.29.0-34.1be4cd60b89afa04b192acb1ef47758a39810f3a" "@prisma/engines-version" "2.30.0-28.60b19f4a1de4fe95741da371b4c44a92f4d1adcb"
"@prisma/debug@2.28.0":
version "2.28.0"
resolved "https://registry.yarnpkg.com/@prisma/debug/-/debug-2.28.0.tgz#bb56e0b1baf91fe7732f8cf14759b1d035180315"
integrity sha512-SKihAtTPDqfm/iyLVs5xf1uLu4Ev+zcFLc8vdiGofpHTkeiu3qU1OSDPnrQ0nwn0IJsp3SeRbV0NRWTwL5Z71w==
dependencies:
debug "4.3.2"
ms "^2.1.3"
"@prisma/debug@2.29.1": "@prisma/debug@2.29.1":
version "2.29.1" version "2.29.1"
@@ -2500,15 +2492,24 @@
debug "4.3.2" debug "4.3.2"
ms "2.1.3" ms "2.1.3"
"@prisma/engine-core@2.29.1": "@prisma/debug@2.30.0":
version "2.29.1" version "2.30.0"
resolved "https://registry.yarnpkg.com/@prisma/engine-core/-/engine-core-2.29.1.tgz#9fdb1fddea6d650a97ae1d86e8264d4b95dbe364" resolved "https://registry.yarnpkg.com/@prisma/debug/-/debug-2.30.0.tgz#f9e25106a650b7e6c53b26a7f67195c24b2bc82d"
integrity sha512-vbZNry916sErWIagF62kASy665Pe9xDYdOQuJ9Njg90sApg4qHPAmDqRC5cf4wQzWOnhnenmWC7AjUfQKrrFiQ== integrity sha512-PCEBFJxOmtLhPcl7VdLeVabSHJnlqWMCR4J1y6H+WvqtCt8oMwhgWu4z2Wgh2baphHC3T87+iQVU5BtZX+b5mA==
dependencies: dependencies:
"@prisma/debug" "2.29.1" "@types/debug" "4.1.7"
"@prisma/engines" "2.29.0-34.1be4cd60b89afa04b192acb1ef47758a39810f3a" debug "4.3.2"
"@prisma/generator-helper" "2.29.1" ms "2.1.3"
"@prisma/get-platform" "2.29.0-34.1be4cd60b89afa04b192acb1ef47758a39810f3a"
"@prisma/engine-core@2.30.0":
version "2.30.0"
resolved "https://registry.yarnpkg.com/@prisma/engine-core/-/engine-core-2.30.0.tgz#26264a634ddfd9320dc1a46c0a9accdfe8a3bb76"
integrity sha512-wy9B1dJLGv5u/E6LbjobEjEfhCVf9++2L3OLAAk9hfg4cCqwY4629woJ1m3w5FWLy29HSnZKgpvQ/8lz1dUbMA==
dependencies:
"@prisma/debug" "2.30.0"
"@prisma/engines" "2.30.0-28.60b19f4a1de4fe95741da371b4c44a92f4d1adcb"
"@prisma/generator-helper" "2.30.0"
"@prisma/get-platform" "2.30.0-28.60b19f4a1de4fe95741da371b4c44a92f4d1adcb"
chalk "4.1.2" chalk "4.1.2"
execa "5.1.1" execa "5.1.1"
get-stream "6.0.1" get-stream "6.0.1"
@@ -2518,23 +2519,23 @@
terminal-link "2.1.1" terminal-link "2.1.1"
undici "3.3.6" undici "3.3.6"
"@prisma/engines-version@2.29.0-34.1be4cd60b89afa04b192acb1ef47758a39810f3a": "@prisma/engines-version@2.30.0-28.60b19f4a1de4fe95741da371b4c44a92f4d1adcb":
version "2.29.0-34.1be4cd60b89afa04b192acb1ef47758a39810f3a" version "2.30.0-28.60b19f4a1de4fe95741da371b4c44a92f4d1adcb"
resolved "https://registry.yarnpkg.com/@prisma/engines-version/-/engines-version-2.29.0-34.1be4cd60b89afa04b192acb1ef47758a39810f3a.tgz#96db92f09714d4dd2a5e21054c28bd1c0820fa77" resolved "https://registry.yarnpkg.com/@prisma/engines-version/-/engines-version-2.30.0-28.60b19f4a1de4fe95741da371b4c44a92f4d1adcb.tgz#1360113dc19e1d43d4442e3b638ccfa0e1711943"
integrity sha512-BU1DNNDhdzqjHtycpUzDrU8+jf6ZY+fbXvCV/rbqG+0JifljlIo4vbkHDMg97gBi1Do8pTLZGlTH16FlniKgAg== integrity sha512-oThNpx7HtJ0eEmnvrWARYcNCs6dqFdAK3Smt2bJVDD6Go4HLuuhjx028osP+rHaFrGOTx7OslLZYtvvFlAXRDA==
"@prisma/engines@2.29.0-34.1be4cd60b89afa04b192acb1ef47758a39810f3a": "@prisma/engines@2.30.0-28.60b19f4a1de4fe95741da371b4c44a92f4d1adcb":
version "2.29.0-34.1be4cd60b89afa04b192acb1ef47758a39810f3a" version "2.30.0-28.60b19f4a1de4fe95741da371b4c44a92f4d1adcb"
resolved "https://registry.yarnpkg.com/@prisma/engines/-/engines-2.29.0-34.1be4cd60b89afa04b192acb1ef47758a39810f3a.tgz#0a44a6dcbee7e0a2850ea086675a8a4f4d627f9d" resolved "https://registry.yarnpkg.com/@prisma/engines/-/engines-2.30.0-28.60b19f4a1de4fe95741da371b4c44a92f4d1adcb.tgz#b4d91ff876662b1de83e0cc913149a1c088becc7"
integrity sha512-cgEoGK3dmKZkMp/sRbL8TsuVS50rHXYBHk2NY18DPUGr5//4ICno46EjzlayqAFVak8J6RtWZEs+8tE8j8frAQ== integrity sha512-LPKq88lIbYezvX0OOc1PU42hHdTsSMPJWmK8lusaHK7DaLHyXjDp/551LbsVapypbjW6N3Jx/If6GoMDASSMSw==
"@prisma/fetch-engine@2.29.0-34.1be4cd60b89afa04b192acb1ef47758a39810f3a": "@prisma/fetch-engine@2.30.0-28.60b19f4a1de4fe95741da371b4c44a92f4d1adcb":
version "2.29.0-34.1be4cd60b89afa04b192acb1ef47758a39810f3a" version "2.30.0-28.60b19f4a1de4fe95741da371b4c44a92f4d1adcb"
resolved "https://registry.yarnpkg.com/@prisma/fetch-engine/-/fetch-engine-2.29.0-34.1be4cd60b89afa04b192acb1ef47758a39810f3a.tgz#de40f3bd761f3da1f2e0e0af027514c845f58264" resolved "https://registry.yarnpkg.com/@prisma/fetch-engine/-/fetch-engine-2.30.0-28.60b19f4a1de4fe95741da371b4c44a92f4d1adcb.tgz#434c8fb3b7c631bc1f55abb87e16c03c60895ce3"
integrity sha512-HsTHffo2xg0rZchdqWJHDvl7JaOi2U1rDockKYAYPf3grGZ14AnJ/ZVP292xMm0IiGLkb5YE3qkI5SKoGEUqMw== integrity sha512-62/gM4Gm+e1BQlgj4OFmdQKa22nWg5FZ6hNsoRHopcm45RRhnSHqYiD+9djo/98i1/+MYfwxCwPqhhJm28lJuw==
dependencies: dependencies:
"@prisma/debug" "2.28.0" "@prisma/debug" "2.29.1"
"@prisma/get-platform" "2.29.0-34.1be4cd60b89afa04b192acb1ef47758a39810f3a" "@prisma/get-platform" "2.30.0-28.60b19f4a1de4fe95741da371b4c44a92f4d1adcb"
chalk "^4.0.0" chalk "^4.0.0"
execa "^5.0.0" execa "^5.0.0"
find-cache-dir "^3.3.1" find-cache-dir "^3.3.1"
@@ -2551,37 +2552,37 @@
temp-dir "^2.0.0" temp-dir "^2.0.0"
tempy "^1.0.0" tempy "^1.0.0"
"@prisma/generator-helper@2.29.1": "@prisma/generator-helper@2.30.0":
version "2.29.1" version "2.30.0"
resolved "https://registry.yarnpkg.com/@prisma/generator-helper/-/generator-helper-2.29.1.tgz#7bd984f649ba830d11fdd514f8781c92a2782e41" resolved "https://registry.yarnpkg.com/@prisma/generator-helper/-/generator-helper-2.30.0.tgz#152f7381d7c4eb6022c7173f905d98a79f830728"
integrity sha512-rba/mfxv1JtbAm51yXipYY7DVYB4L2DVVnnXOvSAhAqDLUVylT68WxLXQKiSBxNAlks5ngD2DeaH6qpGi+XnYw== integrity sha512-7XKJM83LLrpDSqiDrINaBqtePUJomgxfiofIx0TM5pBIg2vmWwpe5Q+VDQxr88ypqVW83NW6BfPgTm7Qni4+mQ==
dependencies: dependencies:
"@prisma/debug" "2.29.1" "@prisma/debug" "2.30.0"
"@types/cross-spawn" "6.0.2" "@types/cross-spawn" "6.0.2"
chalk "4.1.2" chalk "4.1.2"
cross-spawn "7.0.3" cross-spawn "7.0.3"
"@prisma/get-platform@2.29.0-34.1be4cd60b89afa04b192acb1ef47758a39810f3a": "@prisma/get-platform@2.30.0-28.60b19f4a1de4fe95741da371b4c44a92f4d1adcb":
version "2.29.0-34.1be4cd60b89afa04b192acb1ef47758a39810f3a" version "2.30.0-28.60b19f4a1de4fe95741da371b4c44a92f4d1adcb"
resolved "https://registry.yarnpkg.com/@prisma/get-platform/-/get-platform-2.29.0-34.1be4cd60b89afa04b192acb1ef47758a39810f3a.tgz#78e9200abdfa15446d4830c101e5b2d692bef7ab" resolved "https://registry.yarnpkg.com/@prisma/get-platform/-/get-platform-2.30.0-28.60b19f4a1de4fe95741da371b4c44a92f4d1adcb.tgz#6b2aa861c1c6383c39178d0e272d5bc53dc7bc30"
integrity sha512-eEuXFcELlo8bAszQOz3YOyVpoKMjD/RSml29P51WFaDaHZaudfqV6OkSpMV2Qchcyg6neI1mvT+0acutBpNXTw== integrity sha512-gqB9defmpCvxvQM9HFNpo1s0G652eE556ckO+k9X1Kfbt1vaX6FuxtQD5IPcu0nDm42u3NTkX9lDR1Y0j5VPng==
dependencies:
"@prisma/debug" "2.28.0"
"@prisma/sdk@2.29.1":
version "2.29.1"
resolved "https://registry.yarnpkg.com/@prisma/sdk/-/sdk-2.29.1.tgz#1619f4f20847caa408c75b9e8175e6a2913c4184"
integrity sha512-vtcF5jdUskjalL5Q9iagbcc+vfwUa+DAQnNdYg0PtmpaS2llWezptvEJd2ihMR7O5m2sAmI87QDiCn9Y5FxNjQ==
dependencies: dependencies:
"@prisma/debug" "2.29.1" "@prisma/debug" "2.29.1"
"@prisma/engine-core" "2.29.1"
"@prisma/engines" "2.29.0-34.1be4cd60b89afa04b192acb1ef47758a39810f3a" "@prisma/sdk@2.30.0":
"@prisma/fetch-engine" "2.29.0-34.1be4cd60b89afa04b192acb1ef47758a39810f3a" version "2.30.0"
"@prisma/generator-helper" "2.29.1" resolved "https://registry.yarnpkg.com/@prisma/sdk/-/sdk-2.30.0.tgz#0c7d5bc4872d87b31831ce8ddd7ac5ab73c80471"
"@prisma/get-platform" "2.29.0-34.1be4cd60b89afa04b192acb1ef47758a39810f3a" integrity sha512-bIYLphnGnfoguFfKiHon/RZhMTAk8gpElUos1+O7RHzDdzqPEusyl8T9lX123zxhmeVocyV0V2y/AxaD5USaxg==
dependencies:
"@prisma/debug" "2.30.0"
"@prisma/engine-core" "2.30.0"
"@prisma/engines" "2.30.0-28.60b19f4a1de4fe95741da371b4c44a92f4d1adcb"
"@prisma/fetch-engine" "2.30.0-28.60b19f4a1de4fe95741da371b4c44a92f4d1adcb"
"@prisma/generator-helper" "2.30.0"
"@prisma/get-platform" "2.30.0-28.60b19f4a1de4fe95741da371b4c44a92f4d1adcb"
"@timsuchanek/copy" "1.4.5" "@timsuchanek/copy" "1.4.5"
archiver "4.0.2" archiver "4.0.2"
arg "5.0.0" arg "5.0.1"
chalk "4.1.2" chalk "4.1.2"
checkpoint-client "1.1.20" checkpoint-client "1.1.20"
cli-truncate "2.1.0" cli-truncate "2.1.0"
@@ -2602,7 +2603,7 @@
string-width "4.2.2" string-width "4.2.2"
strip-ansi "6.0.0" strip-ansi "6.0.0"
strip-indent "3.0.0" strip-indent "3.0.0"
tar "6.1.6" tar "6.1.8"
temp-dir "2.0.0" temp-dir "2.0.0"
temp-write "4.0.0" temp-write "4.0.0"
tempy "1.0.1" tempy "1.0.1"
@@ -2739,10 +2740,10 @@
utility-types "^3.10.0" utility-types "^3.10.0"
zustand "^3.5.1" zustand "^3.5.1"
"@redwoodjs/api-server@0.36.2": "@redwoodjs/api-server@0.36.3":
version "0.36.2" version "0.36.3"
resolved "https://registry.yarnpkg.com/@redwoodjs/api-server/-/api-server-0.36.2.tgz#0040b08a124cafb049a2388602a3e023e1b39834" resolved "https://registry.yarnpkg.com/@redwoodjs/api-server/-/api-server-0.36.3.tgz#d4b011faceb34df775ebdf3054535e03f1b7e647"
integrity sha512-bxDaZCwTZF3SXZ6AdaQm+Ajqe+oOGvw1oIpMWsJ3m1Me7R8YNfhVqMEJKMrCAAw8APcgrcFZOeBAumpVLdBtrA== integrity sha512-9hhn6rJSEo08IxzFmcZK5n5wdqiRdY3wBRs1JfM6zZDGvus+4Jwj9erK7pDLPeJilJazOtB/0gGW5JQnjE58yw==
dependencies: dependencies:
ansi-colors "4.1.1" ansi-colors "4.1.1"
body-parser "1.19.0" body-parser "1.19.0"
@@ -2758,13 +2759,13 @@
youch "2.2.2" youch "2.2.2"
youch-terminal "1.1.1" youch-terminal "1.1.1"
"@redwoodjs/api@^0.36.2": "@redwoodjs/api@^0.36.3":
version "0.36.2" version "0.36.3"
resolved "https://registry.yarnpkg.com/@redwoodjs/api/-/api-0.36.2.tgz#e9122f407854a289480dd2e9f917a61cff77e6c3" resolved "https://registry.yarnpkg.com/@redwoodjs/api/-/api-0.36.3.tgz#643b87419bd3d7dd57321abc984aa7ab2efb4b60"
integrity sha512-nTNfDkkEpgFtc/tGTExikoJApbKT0JlA3TQTCXx0FlBE83NdFEjIZZBETUTKBaLZ/sUFT4iGIn/uzhJtYOI+DQ== integrity sha512-Qcgsk/4nw4lbPIWD3Q+6f1cnJ4s8G52edVkkf6tJuQ6D3He4whJc0PVpfDOGymSJs3DA49C7TFuRfaV+W22QBA==
dependencies: dependencies:
"@graphql-tools/merge" "7.0.0" "@graphql-tools/merge" "7.0.0"
"@prisma/client" "2.29.1" "@prisma/client" "2.30.0"
"@types/pino" "6.3.11" "@types/pino" "6.3.11"
apollo-server-lambda "2.25.2" apollo-server-lambda "2.25.2"
core-js "3.16.1" core-js "3.16.1"
@@ -2780,21 +2781,21 @@
pino-pretty "5.1.3" pino-pretty "5.1.3"
uuid "8.3.2" uuid "8.3.2"
"@redwoodjs/auth@0.36.2", "@redwoodjs/auth@^0.36.2": "@redwoodjs/auth@0.36.3", "@redwoodjs/auth@^0.36.3":
version "0.36.2" version "0.36.3"
resolved "https://registry.yarnpkg.com/@redwoodjs/auth/-/auth-0.36.2.tgz#86fc2611a50fff8929f9d5c2a5ed5f7c54b5e8c7" resolved "https://registry.yarnpkg.com/@redwoodjs/auth/-/auth-0.36.3.tgz#285ce9817c8124cb9701a3e1f410fbed3793bb36"
integrity sha512-iXjclf3C09+3CUsbyVpYBY96wboqOjzcvoAt4WbidUGh80W9mRLKYw1cDvaodRnWuQjB14A/33KOuqUtKVw8zw== integrity sha512-FYJfwrEuByrELrcxCBHKO3clvlTFUJii9wogxYg/ojzAMbbbjo0QF/DSHobpiE95GSyXb9LTUtaaHqGc0Y4R1g==
"@redwoodjs/cli@0.36.2": "@redwoodjs/cli@0.36.3":
version "0.36.2" version "0.36.3"
resolved "https://registry.yarnpkg.com/@redwoodjs/cli/-/cli-0.36.2.tgz#da10c8175193f65a076a5c7feaab5e1fef2cc290" resolved "https://registry.yarnpkg.com/@redwoodjs/cli/-/cli-0.36.3.tgz#9545c167f019879c2c0d068a89489897e3d9c2d2"
integrity sha512-Cgs00BpQYefrd9y4nO5yYiqZQZ2mC/Q/VxdyzHBbovhOS4uGlsy4TGBJ9SWICevPymxb62GdAblCxGcwQ2xX9A== integrity sha512-ItsjxjeAXYwN+Ax0SZB3DZtuMZP0H0HuEgPgLPuzVAwIueVLw21dooM1Hq8ggHjkDAY+rgKJwcEN2qzxpo/QkA==
dependencies: dependencies:
"@prisma/sdk" "2.29.1" "@prisma/sdk" "2.30.0"
"@redwoodjs/api-server" "0.36.2" "@redwoodjs/api-server" "0.36.3"
"@redwoodjs/internal" "0.36.2" "@redwoodjs/internal" "0.36.3"
"@redwoodjs/prerender" "0.36.2" "@redwoodjs/prerender" "0.36.3"
"@redwoodjs/structure" "0.36.2" "@redwoodjs/structure" "0.36.3"
boxen "5.0.1" boxen "5.0.1"
camelcase "6.2.0" camelcase "6.2.0"
chalk "4.1.2" chalk "4.1.2"
@@ -2816,17 +2817,17 @@
pascalcase "1.0.0" pascalcase "1.0.0"
pluralize "8.0.0" pluralize "8.0.0"
prettier "2.3.2" prettier "2.3.2"
prisma "2.29.1" prisma "2.30.0"
prompts "2.4.1" prompts "2.4.1"
rimraf "3.0.2" rimraf "3.0.2"
secure-random-password "0.2.3" secure-random-password "0.2.3"
terminal-link "2.1.1" terminal-link "2.1.1"
yargs "16.2.0" yargs "16.2.0"
"@redwoodjs/core@^0.36.2": "@redwoodjs/core@^0.36.3":
version "0.36.2" version "0.36.3"
resolved "https://registry.yarnpkg.com/@redwoodjs/core/-/core-0.36.2.tgz#bdcd03174437fba1edc6ad616cca51d877d78519" resolved "https://registry.yarnpkg.com/@redwoodjs/core/-/core-0.36.3.tgz#d0c8ffd86547c3c5bc63a9f59fe2df0ed80798d8"
integrity sha512-T7zRlKcPiuj1tj59rB6nhhZgSj2bfg03cfN+EfP94jNb6Zew/0T6Jl4jdXIywGuB16Own9TpALzXQdQvxq29eg== integrity sha512-HNJeFevkWNJ/1Rt7pEvwyu96Z1xsKF8mwrpXCBGhEh2m+aHCMf3Oc/gq4DLmWkZ9mEPwYbTGR0fEvd8cPQlRCQ==
dependencies: dependencies:
"@babel/cli" "7.14.8" "@babel/cli" "7.14.8"
"@babel/core" "7.15.0" "@babel/core" "7.15.0"
@@ -2840,10 +2841,10 @@
"@babel/preset-typescript" "7.15.0" "@babel/preset-typescript" "7.15.0"
"@babel/runtime-corejs3" "7.15.3" "@babel/runtime-corejs3" "7.15.3"
"@pmmmwh/react-refresh-webpack-plugin" "0.5.0-rc.4" "@pmmmwh/react-refresh-webpack-plugin" "0.5.0-rc.4"
"@redwoodjs/cli" "0.36.2" "@redwoodjs/cli" "0.36.3"
"@redwoodjs/eslint-config" "0.36.2" "@redwoodjs/eslint-config" "0.36.3"
"@redwoodjs/internal" "0.36.2" "@redwoodjs/internal" "0.36.3"
"@redwoodjs/testing" "0.36.2" "@redwoodjs/testing" "0.36.3"
babel-loader "8.2.2" babel-loader "8.2.2"
babel-plugin-auto-import "1.1.0" babel-plugin-auto-import "1.1.0"
babel-plugin-graphql-tag "3.3.0" babel-plugin-graphql-tag "3.3.0"
@@ -2881,10 +2882,10 @@
webpack-retry-chunk-load-plugin "2.2.0" webpack-retry-chunk-load-plugin "2.2.0"
x----x----x "^0 Webpack" x----x----x "^0 Webpack"
"@redwoodjs/eslint-config@0.36.2": "@redwoodjs/eslint-config@0.36.3":
version "0.36.2" version "0.36.3"
resolved "https://registry.yarnpkg.com/@redwoodjs/eslint-config/-/eslint-config-0.36.2.tgz#4dcdd103172e0dcd3290a6b174f8356408306ea6" resolved "https://registry.yarnpkg.com/@redwoodjs/eslint-config/-/eslint-config-0.36.3.tgz#795516703971aef3abdd26661c4236f1c5116554"
integrity sha512-QhLOnR3GL6ARluGRg2cJl/wXE+s9zvBZpguGGoC5gsrgGGCvWB3FjUvAeO6DfmfqrGbxym02JSbtB5+nm4qeNg== integrity sha512-Gl9vFbyXJ2S5QT+pPIsTdofrXjgnaat5Ws8wssG2fBM58gRbBfj50/McMBsMVArjaZllcPLzekpC9tGlsK9zBw==
dependencies: dependencies:
"@typescript-eslint/eslint-plugin" "4.29.0" "@typescript-eslint/eslint-plugin" "4.29.0"
"@typescript-eslint/parser" "4.29.0" "@typescript-eslint/parser" "4.29.0"
@@ -2901,20 +2902,20 @@
eslint-plugin-react-hooks "4.2.0" eslint-plugin-react-hooks "4.2.0"
prettier "2.3.2" prettier "2.3.2"
"@redwoodjs/forms@^0.36.2": "@redwoodjs/forms@^0.36.3":
version "0.36.2" version "0.36.3"
resolved "https://registry.yarnpkg.com/@redwoodjs/forms/-/forms-0.36.2.tgz#200e5145e1f8c248e0d16017b3fe05df8d1b3c13" resolved "https://registry.yarnpkg.com/@redwoodjs/forms/-/forms-0.36.3.tgz#db0256b868ea6672ab2e2ae602ab8e80a368207a"
integrity sha512-QIfJFY8zVFs6c/p7n9Aja72lV0tmEiI0zLlasuv/SznM14sqVB96fquTSVJxPCAYoOBLgYuL0sX4V9LR0yYVuQ== integrity sha512-WcJzv5bBuYFkUwhbL5dn29GqltAfhwRMKyDpuqGfLFxcbtMY7uzf/ie07fh3LJgzIu/KBXv2f5aNCxzmXvDHsQ==
dependencies: dependencies:
"@types/pascalcase" "1.0.0" "@types/pascalcase" "1.0.0"
core-js "3.16.1" core-js "3.16.1"
pascalcase "1.0.0" pascalcase "1.0.0"
react-hook-form "7.12.2" react-hook-form "7.12.2"
"@redwoodjs/internal@0.36.2": "@redwoodjs/internal@0.36.3":
version "0.36.2" version "0.36.3"
resolved "https://registry.yarnpkg.com/@redwoodjs/internal/-/internal-0.36.2.tgz#78cbddc51fd8452ec11add010bf45e2226fb3b06" resolved "https://registry.yarnpkg.com/@redwoodjs/internal/-/internal-0.36.3.tgz#e3522f6ebede0f43032755e284926cf7b4d2deb7"
integrity sha512-twMYzLkUlcCXPW1nPxg3g0l/2ypNjF4LbPiBpHfWCOESQOPq0DJrg8/swfabW/WoHD8XXxpBWF62hjrE+JMJbA== integrity sha512-3iLe3bJaBReabTMK6vZMckNv5LgwcBg/cTmeEAKRDjGd521yKrsuoqdjNkA1O7JvAIjUzDVOe4Q4IyfVNBTdIA==
dependencies: dependencies:
"@babel/parser" "7.15.3" "@babel/parser" "7.15.3"
"@babel/plugin-transform-typescript" "7.15.0" "@babel/plugin-transform-typescript" "7.15.0"
@@ -2928,6 +2929,8 @@
"@graphql-codegen/typescript-operations" "2.0.1" "@graphql-codegen/typescript-operations" "2.0.1"
"@graphql-codegen/typescript-react-apollo" "3.0.0" "@graphql-codegen/typescript-react-apollo" "3.0.0"
"@graphql-codegen/typescript-resolvers" "2.0.0" "@graphql-codegen/typescript-resolvers" "2.0.0"
babel-plugin-polyfill-corejs3 "0.2.4"
core-js "3.16.3"
deepmerge "4.2.2" deepmerge "4.2.2"
esbuild "0.12.21" esbuild "0.12.21"
fast-glob "3.2.7" fast-glob "3.2.7"
@@ -2940,37 +2943,37 @@
rimraf "3.0.2" rimraf "3.0.2"
toml "3.0.0" toml "3.0.0"
"@redwoodjs/prerender@0.36.2": "@redwoodjs/prerender@0.36.3":
version "0.36.2" version "0.36.3"
resolved "https://registry.yarnpkg.com/@redwoodjs/prerender/-/prerender-0.36.2.tgz#8949c21ece38af25575b8d3381df3b1524f0571f" resolved "https://registry.yarnpkg.com/@redwoodjs/prerender/-/prerender-0.36.3.tgz#9fb7b333dd5f010faac087b8c5f90e45c1a68e87"
integrity sha512-YLwvrLKEpOdi0WMCxF/sA0Z7HJKhWxOqkwCebIT4seuP8tuo7L/8k0lZjO1MPFeg5E0fbEYHMl9ty7StegeI9Q== integrity sha512-l9vH5NG2sam+a8gBf3V4JeAXsNN4byrsN+yGwfVlef8d+aJjhdwJ1B3rE9Z0NkH99SybE11KubrWvRp+rfuHrg==
dependencies: dependencies:
"@redwoodjs/auth" "0.36.2" "@redwoodjs/auth" "0.36.3"
"@redwoodjs/internal" "0.36.2" "@redwoodjs/internal" "0.36.3"
"@redwoodjs/router" "0.36.2" "@redwoodjs/router" "0.36.3"
"@redwoodjs/structure" "0.36.2" "@redwoodjs/structure" "0.36.3"
"@redwoodjs/web" "0.36.2" "@redwoodjs/web" "0.36.3"
babel-plugin-ignore-html-and-css-imports "0.1.0" babel-plugin-ignore-html-and-css-imports "0.1.0"
cheerio "1.0.0-rc.10" cheerio "1.0.0-rc.10"
node-fetch "2.6.1" node-fetch "2.6.1"
"@redwoodjs/router@0.36.2", "@redwoodjs/router@^0.36.2": "@redwoodjs/router@0.36.3", "@redwoodjs/router@^0.36.3":
version "0.36.2" version "0.36.3"
resolved "https://registry.yarnpkg.com/@redwoodjs/router/-/router-0.36.2.tgz#775f412c905437802f602728455fc5d4d88dbc03" resolved "https://registry.yarnpkg.com/@redwoodjs/router/-/router-0.36.3.tgz#f8b44953311e521f48fba22f428a89929099785f"
integrity sha512-o89YMAwqxQvGQNFsyaj4hxgiH18NBppRuIgvpWqZbBOuvGL86h33QmlJmaxN9gx3kbbQnnh+/yBJRy4bmUbOLg== integrity sha512-ErslfXTkljTJtggtfE/gIfDDltOkkvqimM483VR/jldRUoanR4k3iiwAwlt3AjAA43wLjSohV+jylR6dWy3d0g==
dependencies: dependencies:
"@reach/skip-nav" "0.16.0" "@reach/skip-nav" "0.16.0"
"@redwoodjs/auth" "0.36.2" "@redwoodjs/auth" "0.36.3"
core-js "3.16.1" core-js "3.16.1"
lodash.isequal "4.5.0" lodash.isequal "4.5.0"
"@redwoodjs/structure@0.36.2": "@redwoodjs/structure@0.36.3":
version "0.36.2" version "0.36.3"
resolved "https://registry.yarnpkg.com/@redwoodjs/structure/-/structure-0.36.2.tgz#27d263fac228a08975344e476a4a4f136d8c839e" resolved "https://registry.yarnpkg.com/@redwoodjs/structure/-/structure-0.36.3.tgz#7351951a1719f2553920f7418e03b2b857cccb62"
integrity sha512-ucAsy78SQmULISDvMNir9jdrZwi377+CtdNSvixuPDXSljU8WEXJjWQabwKZuo4c9GkazFiNIoXVXqtp2l29Bw== integrity sha512-QY4Qm76tKUCn74zyyRdBV7CmvFXhg7WDzq2Q2m6rLOOtOaj1wo0s8ayfSWA7E5cDrYCetO/aGetAzmyUkYzIsw==
dependencies: dependencies:
"@prisma/sdk" "2.29.1" "@prisma/sdk" "2.30.0"
"@redwoodjs/internal" "0.36.2" "@redwoodjs/internal" "0.36.3"
"@types/line-column" "1.0.0" "@types/line-column" "1.0.0"
camelcase "6.2.0" camelcase "6.2.0"
deepmerge "4.2.2" deepmerge "4.2.2"
@@ -2991,15 +2994,15 @@
vscode-languageserver-types "3.15.1" vscode-languageserver-types "3.15.1"
yargs-parser "20.2.9" yargs-parser "20.2.9"
"@redwoodjs/testing@0.36.2": "@redwoodjs/testing@0.36.3":
version "0.36.2" version "0.36.3"
resolved "https://registry.yarnpkg.com/@redwoodjs/testing/-/testing-0.36.2.tgz#67de6d2e2953e0ee67ce3e270465bfe76d8bd325" resolved "https://registry.yarnpkg.com/@redwoodjs/testing/-/testing-0.36.3.tgz#9e4f669be387f9cfe0c84d9f1eb3943f94bd0366"
integrity sha512-zxodhDtezdG2mtDV2B9dDMtO1XclalzmHAX/qugMoCQ849U4vQ9OhgW4RTgSSbrWjg6es/Ok1OLhhhNmW0502g== integrity sha512-9VdSmbO2WeOrjNCRk00cpvbYqVQ6IF5mVEreR481vEG7DyV4GdxPj1gMxBNSL+RpZRT1OeTQiMeCkw85C2UG9A==
dependencies: dependencies:
"@redwoodjs/auth" "0.36.2" "@redwoodjs/auth" "0.36.3"
"@redwoodjs/internal" "0.36.2" "@redwoodjs/internal" "0.36.3"
"@redwoodjs/router" "0.36.2" "@redwoodjs/router" "0.36.3"
"@redwoodjs/web" "0.36.2" "@redwoodjs/web" "0.36.3"
"@storybook/addon-a11y" "6.3.7" "@storybook/addon-a11y" "6.3.7"
"@storybook/builder-webpack5" "6.3.7" "@storybook/builder-webpack5" "6.3.7"
"@storybook/manager-webpack5" "6.3.7" "@storybook/manager-webpack5" "6.3.7"
@@ -3020,13 +3023,13 @@
ts-toolbelt "9.6.0" ts-toolbelt "9.6.0"
whatwg-fetch "3.6.2" whatwg-fetch "3.6.2"
"@redwoodjs/web@0.36.2", "@redwoodjs/web@^0.36.2": "@redwoodjs/web@0.36.3", "@redwoodjs/web@^0.36.3":
version "0.36.2" version "0.36.3"
resolved "https://registry.yarnpkg.com/@redwoodjs/web/-/web-0.36.2.tgz#6313cc4673d56121f61d0cba5f1cd92f3dc68541" resolved "https://registry.yarnpkg.com/@redwoodjs/web/-/web-0.36.3.tgz#41c8b603db869530be5512762edde21d33be033e"
integrity sha512-tda4nv6YedZhqzv63lgM3mawxs5N/bb0rYAJyzMY7cEP4XYD5a6URu00KDInxB+K4WV8YZlVeEDgMqYMw8NQaw== integrity sha512-nOPpL5MYHWFqVmRjNB4XJSbViiRjOUfhhf6axQ54ww88A5PxWmtlJlZCiKulyyJhgnt0EjOagnWQRu/JENcL1A==
dependencies: dependencies:
"@apollo/client" "3.3.21" "@apollo/client" "3.3.21"
"@redwoodjs/auth" "0.36.2" "@redwoodjs/auth" "0.36.3"
core-js "3.16.1" core-js "3.16.1"
graphql "15.5.1" graphql "15.5.1"
proptypes "1.1.0" proptypes "1.1.0"
@@ -3916,6 +3919,11 @@
resolved "https://registry.yarnpkg.com/@types/aws-lambda/-/aws-lambda-8.10.77.tgz#04c4e3a06ab5552f2fa80816f8adca54b6bb9671" resolved "https://registry.yarnpkg.com/@types/aws-lambda/-/aws-lambda-8.10.77.tgz#04c4e3a06ab5552f2fa80816f8adca54b6bb9671"
integrity sha512-n0EMFJU/7u3KvHrR83l/zrKOVURXl5pUJPNED/Bzjah89QKCHwCiKCBoVUXRwTGRfCYGIDdinJaAlKDHZdp/Ng== integrity sha512-n0EMFJU/7u3KvHrR83l/zrKOVURXl5pUJPNED/Bzjah89QKCHwCiKCBoVUXRwTGRfCYGIDdinJaAlKDHZdp/Ng==
"@types/aws-lambda@^8.10.45":
version "8.10.83"
resolved "https://registry.yarnpkg.com/@types/aws-lambda/-/aws-lambda-8.10.83.tgz#66db06cedb7476e860e8655e4387fd2e4385433a"
integrity sha512-7YsLv/B8rF7K7jYAGmYBxLq3QU+hQV7qNJBMcSCmJCTcXuzoTKGBX8d4v9CsVs0SOKBSAErXG7rtk8jVxiP30g==
"@types/babel-core@6.25.7": "@types/babel-core@6.25.7":
version "6.25.7" version "6.25.7"
resolved "https://registry.yarnpkg.com/@types/babel-core/-/babel-core-6.25.7.tgz#f9c22d5c085686da2f6ffbdae778edb3e6017671" resolved "https://registry.yarnpkg.com/@types/babel-core/-/babel-core-6.25.7.tgz#f9c22d5c085686da2f6ffbdae778edb3e6017671"
@@ -4175,6 +4183,11 @@
resolved "https://registry.yarnpkg.com/@types/http-errors/-/http-errors-1.8.0.tgz#682477dbbbd07cd032731cb3b0e7eaee3d026b69" resolved "https://registry.yarnpkg.com/@types/http-errors/-/http-errors-1.8.0.tgz#682477dbbbd07cd032731cb3b0e7eaee3d026b69"
integrity sha512-2aoSC4UUbHDj2uCsCxcG/vRMXey/m17bC7UwitVm5hn22nI8O8Y9iDpA76Orc+DWkQ4zZrOKEshCqR/jSuXAHA== integrity sha512-2aoSC4UUbHDj2uCsCxcG/vRMXey/m17bC7UwitVm5hn22nI8O8Y9iDpA76Orc+DWkQ4zZrOKEshCqR/jSuXAHA==
"@types/http-errors@^1.6.3":
version "1.8.1"
resolved "https://registry.yarnpkg.com/@types/http-errors/-/http-errors-1.8.1.tgz#e81ad28a60bee0328c6d2384e029aec626f1ae67"
integrity sha512-e+2rjEwK6KDaNOm5Aa9wNGgyS9oSZU/4pfSMMPYNOfjvFI0WVXm29+ITRFr6aKDvvKo7uU1jV68MW4ScsfDi7Q==
"@types/http-proxy@^1.17.5": "@types/http-proxy@^1.17.5":
version "1.17.6" version "1.17.6"
resolved "https://registry.yarnpkg.com/@types/http-proxy/-/http-proxy-1.17.6.tgz#62dc3fade227d6ac2862c8f19ee0da9da9fd8616" resolved "https://registry.yarnpkg.com/@types/http-proxy/-/http-proxy-1.17.6.tgz#62dc3fade227d6ac2862c8f19ee0da9da9fd8616"
@@ -5229,12 +5242,17 @@ ajv-errors@^1.0.0:
resolved "https://registry.yarnpkg.com/ajv-errors/-/ajv-errors-1.0.1.tgz#f35986aceb91afadec4102fbd85014950cefa64d" resolved "https://registry.yarnpkg.com/ajv-errors/-/ajv-errors-1.0.1.tgz#f35986aceb91afadec4102fbd85014950cefa64d"
integrity sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ== integrity sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==
ajv-i18n@^3.4.0:
version "3.6.0"
resolved "https://registry.yarnpkg.com/ajv-i18n/-/ajv-i18n-3.6.0.tgz#321313ce421b8a656e38e0cd2872393cab0c57ce"
integrity sha512-F21DzmzYq9aVtY8CGGtlnQDy3rFMaFW2KRlMuCQp76KiPIkvqN+mpq5MI9EsgC0VFwj+jeLIsvVCvPOa1sobBQ==
ajv-keywords@^3.1.0, ajv-keywords@^3.4.1, ajv-keywords@^3.5.2: ajv-keywords@^3.1.0, ajv-keywords@^3.4.1, ajv-keywords@^3.5.2:
version "3.5.2" version "3.5.2"
resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d"
integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==
ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.2, ajv@^6.12.4, ajv@^6.12.5: ajv@^6.1.0, ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.2, ajv@^6.12.4, ajv@^6.12.5, ajv@^6.9.1:
version "6.12.6" version "6.12.6"
resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4"
integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==
@@ -5565,21 +5583,16 @@ are-we-there-yet@~1.1.2:
delegates "^1.0.0" delegates "^1.0.0"
readable-stream "^2.0.6" readable-stream "^2.0.6"
arg@5.0.0: arg@5.0.1, arg@^5.0.1:
version "5.0.0" version "5.0.1"
resolved "https://registry.yarnpkg.com/arg/-/arg-5.0.0.tgz#a20e2bb5710e82950a516b3f933fee5ed478be90" resolved "https://registry.yarnpkg.com/arg/-/arg-5.0.1.tgz#eb0c9a8f77786cad2af8ff2b862899842d7b6adb"
integrity sha512-4P8Zm2H+BRS+c/xX1LrHw0qKpEhdlZjLCgWy+d78T9vqa2Z2SiD2wMrYuWIAFy5IZUD7nnNXroRttz+0RzlrzQ== integrity sha512-e0hDa9H2Z9AwFkk2qDlwhoMYE4eToKarchkQHovNdLTCYMHZHeRjI71crOh+dio4K6u1IcwubQqo79Ga4CyAQA==
arg@^4.1.0: arg@^4.1.0:
version "4.1.3" version "4.1.3"
resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089"
integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==
arg@^5.0.1:
version "5.0.1"
resolved "https://registry.yarnpkg.com/arg/-/arg-5.0.1.tgz#eb0c9a8f77786cad2af8ff2b862899842d7b6adb"
integrity sha512-e0hDa9H2Z9AwFkk2qDlwhoMYE4eToKarchkQHovNdLTCYMHZHeRjI71crOh+dio4K6u1IcwubQqo79Ga4CyAQA==
argparse@^1.0.7: argparse@^1.0.7:
version "1.0.10" version "1.0.10"
resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911"
@@ -6059,6 +6072,14 @@ babel-plugin-polyfill-corejs2@^0.2.2:
"@babel/helper-define-polyfill-provider" "^0.2.2" "@babel/helper-define-polyfill-provider" "^0.2.2"
semver "^6.1.1" semver "^6.1.1"
babel-plugin-polyfill-corejs3@0.2.4:
version "0.2.4"
resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.2.4.tgz#68cb81316b0e8d9d721a92e0009ec6ecd4cd2ca9"
integrity sha512-z3HnJE5TY/j4EFEa/qpQMSbcUJZ5JQi+3UFjXzn6pQCmIKc5Ug5j98SuYyH+m4xQnvKlMDIW4plLfgyVnd0IcQ==
dependencies:
"@babel/helper-define-polyfill-provider" "^0.2.2"
core-js-compat "^3.14.0"
babel-plugin-polyfill-corejs3@^0.1.0: babel-plugin-polyfill-corejs3@^0.1.0:
version "0.1.7" version "0.1.7"
resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.1.7.tgz#80449d9d6f2274912e05d9e182b54816904befd0" resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.1.7.tgz#80449d9d6f2274912e05d9e182b54816904befd0"
@@ -7337,7 +7358,7 @@ concat-stream@^1.5.0:
readable-stream "^2.2.2" readable-stream "^2.2.2"
typedarray "^0.0.6" typedarray "^0.0.6"
concurrently@6.2.1: concurrently@6.2.1, concurrently@^6.0.0:
version "6.2.1" version "6.2.1"
resolved "https://registry.yarnpkg.com/concurrently/-/concurrently-6.2.1.tgz#d880fc1d77559084732fa514092a3d5109a0d5bf" resolved "https://registry.yarnpkg.com/concurrently/-/concurrently-6.2.1.tgz#d880fc1d77559084732fa514092a3d5109a0d5bf"
integrity sha512-emgwhH+ezkuYKSHZQ+AkgEpoUZZlbpPVYCVv7YZx0r+T7fny1H03r2nYRebpi2DudHR4n1Rgbo2YTxKOxVJ4+g== integrity sha512-emgwhH+ezkuYKSHZQ+AkgEpoUZZlbpPVYCVv7YZx0r+T7fny1H03r2nYRebpi2DudHR4n1Rgbo2YTxKOxVJ4+g==
@@ -7412,7 +7433,7 @@ content-disposition@0.5.3:
dependencies: dependencies:
safe-buffer "5.1.2" safe-buffer "5.1.2"
content-type@~1.0.4: content-type@^1.0.4, content-type@~1.0.4:
version "1.0.4" version "1.0.4"
resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b"
integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA== integrity sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==
@@ -7507,6 +7528,11 @@ core-js@3.16.1:
resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.16.1.tgz#f4485ce5c9f3c6a7cb18fa80488e08d362097249" resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.16.1.tgz#f4485ce5c9f3c6a7cb18fa80488e08d362097249"
integrity sha512-AAkP8i35EbefU+JddyWi12AWE9f2N/qr/pwnDtWz4nyUIBGMJPX99ANFFRSw6FefM374lDujdtLDyhN2A/btHw== integrity sha512-AAkP8i35EbefU+JddyWi12AWE9f2N/qr/pwnDtWz4nyUIBGMJPX99ANFFRSw6FefM374lDujdtLDyhN2A/btHw==
core-js@3.16.3:
version "3.16.3"
resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.16.3.tgz#1f2d43c51a9ed014cc6c83440af14697ae4b75f2"
integrity sha512-lM3GftxzHNtPNUJg0v4pC2RC6puwMd6VZA7vXUczi+SKmCWSf4JwO89VJGMqbzmB7jlK7B5hr3S64PqwFL49cA==
core-js@3.6.5: core-js@3.6.5:
version "3.6.5" version "3.6.5"
resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.6.5.tgz#7395dc273af37fb2e50e9bd3d9fe841285231d1a" resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.6.5.tgz#7395dc273af37fb2e50e9bd3d9fe841285231d1a"
@@ -7527,6 +7553,14 @@ core-util-is@~1.0.0:
resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7"
integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=
cors@^2.8.5:
version "2.8.5"
resolved "https://registry.yarnpkg.com/cors/-/cors-2.8.5.tgz#eac11da51592dd86b9f06f6e7ac293b3df875d29"
integrity sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==
dependencies:
object-assign "^4"
vary "^1"
cosmiconfig-toml-loader@1.0.0: cosmiconfig-toml-loader@1.0.0:
version "1.0.0" version "1.0.0"
resolved "https://registry.yarnpkg.com/cosmiconfig-toml-loader/-/cosmiconfig-toml-loader-1.0.0.tgz#0681383651cceff918177debe9084c0d3769509b" resolved "https://registry.yarnpkg.com/cosmiconfig-toml-loader/-/cosmiconfig-toml-loader-1.0.0.tgz#0681383651cceff918177debe9084c0d3769509b"
@@ -12125,6 +12159,11 @@ json-buffer@3.0.0:
resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.0.tgz#5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898" resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.0.tgz#5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898"
integrity sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg= integrity sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=
json-mask@^0.3.8:
version "0.3.9"
resolved "https://registry.yarnpkg.com/json-mask/-/json-mask-0.3.9.tgz#c3772baa49ceda56ca360a6dd6b479ca3c0e327f"
integrity sha512-RRu7bf7vzOohKMrU5pD9+fROMltTegWj2trZlPNr7hXekptFGkOZo4S63Jdx2X1GR7IK6rEVvXkQKY+2TPs0PA==
json-parse-better-errors@^1.0.1, json-parse-better-errors@^1.0.2: json-parse-better-errors@^1.0.1, json-parse-better-errors@^1.0.2:
version "1.0.2" version "1.0.2"
resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9"
@@ -13142,6 +13181,25 @@ micromatch@^4.0.2, micromatch@^4.0.4:
braces "^3.0.1" braces "^3.0.1"
picomatch "^2.2.3" picomatch "^2.2.3"
middy@^0.36.0:
version "0.36.0"
resolved "https://registry.yarnpkg.com/middy/-/middy-0.36.0.tgz#f5f2e461b2f7260e4aadd0e53ff4c828e9f7e7ba"
integrity sha512-IhIVEZQs8mxcvPHfzAQpwINj4R+aVgeCcUL9KS+OYE5Vy4hKhZtVl/1yfI8dSvDAfRBoRp6N/Gi04pxQM4vAzw==
dependencies:
"@types/aws-lambda" "^8.10.45"
"@types/http-errors" "^1.6.3"
ajv "^6.9.1"
ajv-i18n "^3.4.0"
ajv-keywords "^3.4.1"
busboy "^0.3.1"
content-type "^1.0.4"
http-errors "^1.7.3"
json-mask "^0.3.8"
negotiator "^0.6.1"
once "^1.4.0"
qs "^6.6.0"
querystring "^0.2.0"
miller-rabin@^4.0.0: miller-rabin@^4.0.0:
version "4.0.1" version "4.0.1"
resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d"
@@ -13375,7 +13433,7 @@ ms@2.1.2:
resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"
integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
ms@2.1.3, ms@^2.1.1, ms@^2.1.3: ms@2.1.3, ms@^2.1.1:
version "2.1.3" version "2.1.3"
resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2"
integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==
@@ -13445,6 +13503,11 @@ nan@^2.12.1:
resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.2.tgz#f5376400695168f4cc694ac9393d0c9585eeea19" resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.2.tgz#f5376400695168f4cc694ac9393d0c9585eeea19"
integrity sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ== integrity sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ==
nanoid@^3.1.20:
version "3.1.25"
resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.25.tgz#09ca32747c0e543f0e1814b7d3793477f9c8e152"
integrity sha512-rdwtIXaXCLFAQbnfqDRnI6jaRHp9fTcYBjtFKE8eezcZ7LuLjhUaQGNeMXf1HmRoCH32CLz6XwX0TtxEOS/A3Q==
nanoid@^3.1.23: nanoid@^3.1.23:
version "3.1.23" version "3.1.23"
resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.23.tgz#f744086ce7c2bc47ee0a8472574d5c78e4183a81" resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.1.23.tgz#f744086ce7c2bc47ee0a8472574d5c78e4183a81"
@@ -13479,7 +13542,7 @@ natural-compare@^1.4.0:
resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7" resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7"
integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc= integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=
negotiator@0.6.2: negotiator@0.6.2, negotiator@^0.6.1:
version "0.6.2" version "0.6.2"
resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb" resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.2.tgz#feacf7ccf525a77ae9634436a64883ffeca346fb"
integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw== integrity sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==
@@ -13603,7 +13666,7 @@ nodemailer@^6.6.2:
resolved "https://registry.yarnpkg.com/nodemailer/-/nodemailer-6.6.2.tgz#e184c9ed5bee245a3e0bcabc7255866385757114" resolved "https://registry.yarnpkg.com/nodemailer/-/nodemailer-6.6.2.tgz#e184c9ed5bee245a3e0bcabc7255866385757114"
integrity sha512-YSzu7TLbI+bsjCis/TZlAXBoM4y93HhlIgo0P5oiA2ua9Z4k+E2Fod//ybIzdJxOlXGRcHIh/WaeCBehvxZb/Q== integrity sha512-YSzu7TLbI+bsjCis/TZlAXBoM4y93HhlIgo0P5oiA2ua9Z4k+E2Fod//ybIzdJxOlXGRcHIh/WaeCBehvxZb/Q==
nodemon@2.0.12: nodemon@2.0.12, nodemon@^2.0.7:
version "2.0.12" version "2.0.12"
resolved "https://registry.yarnpkg.com/nodemon/-/nodemon-2.0.12.tgz#5dae4e162b617b91f1873b3bfea215dd71e144d5" resolved "https://registry.yarnpkg.com/nodemon/-/nodemon-2.0.12.tgz#5dae4e162b617b91f1873b3bfea215dd71e144d5"
integrity sha512-egCTmNZdObdBxUBw6ZNwvZ/xzk24CKRs5K6d+5zbmrMr7rOpPmfPeF6OxM3DDpaRx331CQRFEktn+wrFFfBSOA== integrity sha512-egCTmNZdObdBxUBw6ZNwvZ/xzk24CKRs5K6d+5zbmrMr7rOpPmfPeF6OxM3DDpaRx331CQRFEktn+wrFFfBSOA==
@@ -13715,7 +13778,7 @@ nwsapi@^2.2.0:
resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.0.tgz#204879a9e3d068ff2a55139c2c772780681a38b7" resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.0.tgz#204879a9e3d068ff2a55139c2c772780681a38b7"
integrity sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ== integrity sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==
object-assign@^4.1.0, object-assign@^4.1.1: object-assign@^4, object-assign@^4.1.0, object-assign@^4.1.1:
version "4.1.1" version "4.1.1"
resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=
@@ -14931,12 +14994,12 @@ prettysize@^2.0.0:
resolved "https://registry.yarnpkg.com/prettysize/-/prettysize-2.0.0.tgz#902c02480d865d9cc0813011c9feb4fa02ce6996" resolved "https://registry.yarnpkg.com/prettysize/-/prettysize-2.0.0.tgz#902c02480d865d9cc0813011c9feb4fa02ce6996"
integrity sha512-VVtxR7sOh0VsG8o06Ttq5TrI1aiZKmC+ClSn4eBPaNf4SHr5lzbYW+kYGX3HocBL/MfpVrRfFZ9V3vCbLaiplg== integrity sha512-VVtxR7sOh0VsG8o06Ttq5TrI1aiZKmC+ClSn4eBPaNf4SHr5lzbYW+kYGX3HocBL/MfpVrRfFZ9V3vCbLaiplg==
prisma@2.29.1: prisma@2.30.0:
version "2.29.1" version "2.30.0"
resolved "https://registry.yarnpkg.com/prisma/-/prisma-2.29.1.tgz#7845f55c7f09955b01f973c6a4b1f330cb212e7d" resolved "https://registry.yarnpkg.com/prisma/-/prisma-2.30.0.tgz#5b12091c480d538540b898d364b73651d44b4a01"
integrity sha512-fRGh90+z0m3Jw3D6KBE6wyVCRR0w6M6QD93jh+em8IOQycmC48zB8hho8zeri3J9//C0k8fkDeQrRLJUosXROw== integrity sha512-2XYpSibcVpMd1JDxYypGDU/JKq0W2f/HI1itdddr4Pfg+q6qxt/ItWKcftv4/lqN6u/BVlQ2gDzXVEjpHeO5kQ==
dependencies: dependencies:
"@prisma/engines" "2.29.0-34.1be4cd60b89afa04b192acb1ef47758a39810f3a" "@prisma/engines" "2.30.0-28.60b19f4a1de4fe95741da371b4c44a92f4d1adcb"
prismjs@^1.21.0, prismjs@~1.23.0: prismjs@^1.21.0, prismjs@~1.23.0:
version "1.23.0" version "1.23.0"
@@ -15283,7 +15346,7 @@ qs@6.9.3:
resolved "https://registry.yarnpkg.com/qs/-/qs-6.9.3.tgz#bfadcd296c2d549f1dffa560619132c977f5008e" resolved "https://registry.yarnpkg.com/qs/-/qs-6.9.3.tgz#bfadcd296c2d549f1dffa560619132c977f5008e"
integrity sha512-EbZYNarm6138UKKq46tdx08Yo/q9ZhFoAXAI1meAFd2GtbRDhbZY2WQSICskT0c5q99aFzLG1D4nvTk9tqfXIw== integrity sha512-EbZYNarm6138UKKq46tdx08Yo/q9ZhFoAXAI1meAFd2GtbRDhbZY2WQSICskT0c5q99aFzLG1D4nvTk9tqfXIw==
qs@^6.10.0: qs@^6.10.0, qs@^6.6.0:
version "6.10.1" version "6.10.1"
resolved "https://registry.yarnpkg.com/qs/-/qs-6.10.1.tgz#4931482fa8d647a5aab799c5271d2133b981fb6a" resolved "https://registry.yarnpkg.com/qs/-/qs-6.10.1.tgz#4931482fa8d647a5aab799c5271d2133b981fb6a"
integrity sha512-M528Hph6wsSVOBiYUnGf+K/7w0hNshs/duGsNXPUCLH5XAqjEtiPGwNONLV0tBH8NoGb0mvD5JubnUTrujKDTg== integrity sha512-M528Hph6wsSVOBiYUnGf+K/7w0hNshs/duGsNXPUCLH5XAqjEtiPGwNONLV0tBH8NoGb0mvD5JubnUTrujKDTg==
@@ -16530,6 +16593,11 @@ serve-static@1.14.1:
parseurl "~1.3.3" parseurl "~1.3.3"
send "0.17.1" send "0.17.1"
serverless-binary-cors@^0.0.1:
version "0.0.1"
resolved "https://registry.yarnpkg.com/serverless-binary-cors/-/serverless-binary-cors-0.0.1.tgz#68ff2da3b7cd59fb9513253d9b3a7fa4c71e2d5f"
integrity sha512-i37glxloiUOzeXiUpQVmYISgcHLr7TZbRgVwMLrYzPSoT0VZCPwt9o/HMY8zRJxSb7OynQpy/dUVed+5ADnuxQ==
set-blocking@^2.0.0, set-blocking@~2.0.0: set-blocking@^2.0.0, set-blocking@~2.0.0:
version "2.0.0" version "2.0.0"
resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7"
@@ -17464,10 +17532,10 @@ tar-stream@^2.1.2:
inherits "^2.0.3" inherits "^2.0.3"
readable-stream "^3.1.1" readable-stream "^3.1.1"
tar@6.1.6: tar@6.1.8:
version "6.1.6" version "6.1.8"
resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.6.tgz#c23d797b0a1efe5d479b1490805c5443f3560c5d" resolved "https://registry.yarnpkg.com/tar/-/tar-6.1.8.tgz#4fc50cfe56511c538ce15b71e05eebe66530cbd4"
integrity sha512-oaWyu5dQbHaYcyZCTfyPpC+VmI62/OM2RTUYavTk1MDr1cwW5Boi3baeYQKiZbY2uSQJGr+iMOzb/JFxLrft+g== integrity sha512-sb9b0cp855NbkMJcskdSYA7b11Q8JsX4qe4pyUAfHp+Y6jBjJeek2ZVlwEfWayshEIwlIzXx0Fain3QG9JPm2A==
dependencies: dependencies:
chownr "^2.0.0" chownr "^2.0.0"
fs-minipass "^2.0.0" fs-minipass "^2.0.0"
@@ -18484,7 +18552,7 @@ value-or-promise@1.0.10:
resolved "https://registry.yarnpkg.com/value-or-promise/-/value-or-promise-1.0.10.tgz#5bf041f1e9a8e7043911875547636768a836e446" resolved "https://registry.yarnpkg.com/value-or-promise/-/value-or-promise-1.0.10.tgz#5bf041f1e9a8e7043911875547636768a836e446"
integrity sha512-1OwTzvcfXkAfabk60UVr5NdjtjJ0Fg0T5+B1bhxtrOEwSH2fe8y4DnLgoksfCyd8yZCOQQHB0qLMQnwgCjbXLQ== integrity sha512-1OwTzvcfXkAfabk60UVr5NdjtjJ0Fg0T5+B1bhxtrOEwSH2fe8y4DnLgoksfCyd8yZCOQQHB0qLMQnwgCjbXLQ==
vary@~1.1.2: vary@^1, vary@~1.1.2:
version "1.1.2" version "1.1.2"
resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc"
integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw= integrity sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=