perf: update to pingbot v3
This commit is contained in:
parent
a5d1c07a78
commit
0663c3975d
106
api/index.js
106
api/index.js
|
@ -1,106 +0,0 @@
|
||||||
import axios from 'axios'
|
|
||||||
|
|
||||||
import connectToDatabase from '../lib/dbConnect'
|
|
||||||
|
|
||||||
export default async (req, res) => {
|
|
||||||
const { method } = req
|
|
||||||
const db = await connectToDatabase()
|
|
||||||
|
|
||||||
switch (method) {
|
|
||||||
case 'POST':
|
|
||||||
if (!req.body || !req.body.url || !req.body.cluster) {
|
|
||||||
return res.status(400).json(
|
|
||||||
{
|
|
||||||
success: false,
|
|
||||||
message: 'Invalid body'
|
|
||||||
}
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
try {
|
|
||||||
await axios.get(req.body.url)
|
|
||||||
} catch {
|
|
||||||
return res.status(400).json(
|
|
||||||
{
|
|
||||||
success: false,
|
|
||||||
message: 'Invalid URL'
|
|
||||||
}
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
try {
|
|
||||||
await db.coll.insertOne(
|
|
||||||
{
|
|
||||||
_id: req.body.url,
|
|
||||||
cluster: req.body.cluster
|
|
||||||
}
|
|
||||||
)
|
|
||||||
} catch {
|
|
||||||
return res.status(400).json(
|
|
||||||
{
|
|
||||||
success: false,
|
|
||||||
message: 'Error Inserting to DB'
|
|
||||||
}
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
res.status(200).json(
|
|
||||||
{
|
|
||||||
success: true,
|
|
||||||
url: req.body.url
|
|
||||||
}
|
|
||||||
)
|
|
||||||
|
|
||||||
break
|
|
||||||
case 'DELETE':
|
|
||||||
if (!req.query.url) {
|
|
||||||
return res.status(400).json(
|
|
||||||
{
|
|
||||||
success: false,
|
|
||||||
message: 'Invalid body'
|
|
||||||
}
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
try {
|
|
||||||
const { deletedCount } = await db.coll.deleteOne(
|
|
||||||
{
|
|
||||||
_id: req.query.url
|
|
||||||
}
|
|
||||||
)
|
|
||||||
|
|
||||||
if (deletedCount == 0) {
|
|
||||||
return res.status(400).json(
|
|
||||||
{
|
|
||||||
success: false,
|
|
||||||
message: 'Not Found'
|
|
||||||
}
|
|
||||||
)
|
|
||||||
}
|
|
||||||
} catch {
|
|
||||||
return res.status(400).json(
|
|
||||||
{
|
|
||||||
success: false,
|
|
||||||
message: 'Error Deleting from DB'
|
|
||||||
}
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
res.status(200).json(
|
|
||||||
{
|
|
||||||
success: true, url:
|
|
||||||
req.query.url
|
|
||||||
}
|
|
||||||
)
|
|
||||||
|
|
||||||
break
|
|
||||||
default:
|
|
||||||
res.status(404).json(
|
|
||||||
{
|
|
||||||
success: false
|
|
||||||
}
|
|
||||||
)
|
|
||||||
|
|
||||||
break
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -0,0 +1,111 @@
|
||||||
|
import { VercelRequest, VercelResponse } from '@vercel/node'
|
||||||
|
import axios from 'axios'
|
||||||
|
import dbConnect from '../lib/dbConnect'
|
||||||
|
import URLModel from '../lib/schema'
|
||||||
|
|
||||||
|
export default async (request: VercelRequest, response: VercelResponse) => {
|
||||||
|
const { method } = request
|
||||||
|
const db = await dbConnect()
|
||||||
|
|
||||||
|
switch (method) {
|
||||||
|
case 'POST':
|
||||||
|
if (!request.body || !request.body.url) {
|
||||||
|
return response.status(400).json(
|
||||||
|
{
|
||||||
|
success: false,
|
||||||
|
message: 'Invalid body'
|
||||||
|
}
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
await axios.get(request.body.url)
|
||||||
|
} catch (err) {
|
||||||
|
return response.status(400).json(
|
||||||
|
{
|
||||||
|
success: false,
|
||||||
|
message: 'Invalid URL'
|
||||||
|
}
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
const url = new URLModel({
|
||||||
|
url: request.body.url
|
||||||
|
})
|
||||||
|
|
||||||
|
await url.save()
|
||||||
|
|
||||||
|
return response.status(200).json(
|
||||||
|
{
|
||||||
|
success: true,
|
||||||
|
url: request.body.url
|
||||||
|
}
|
||||||
|
)
|
||||||
|
} catch (err) {
|
||||||
|
console.log(err)
|
||||||
|
return response.status(400).json(
|
||||||
|
{
|
||||||
|
success: false,
|
||||||
|
message: 'Error Inserting to DB'
|
||||||
|
}
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
break
|
||||||
|
case 'DELETE':
|
||||||
|
if (!request.query.url) {
|
||||||
|
return response.status(400).json(
|
||||||
|
{
|
||||||
|
success: false,
|
||||||
|
message: 'Invalid body'
|
||||||
|
}
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
const url = request.query.url
|
||||||
|
|
||||||
|
if (typeof url != "string") {
|
||||||
|
return response.status(400).json(
|
||||||
|
{
|
||||||
|
success: false,
|
||||||
|
message: 'Query URL isn\'t string'
|
||||||
|
}
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
await URLModel.deleteOne({
|
||||||
|
url
|
||||||
|
})
|
||||||
|
|
||||||
|
return response.status(200).json(
|
||||||
|
{
|
||||||
|
success: true,
|
||||||
|
message: 'Deleted!',
|
||||||
|
url
|
||||||
|
}
|
||||||
|
)
|
||||||
|
} catch (err) {
|
||||||
|
console.log(err)
|
||||||
|
return response.status(400).json(
|
||||||
|
{
|
||||||
|
success: false,
|
||||||
|
message: 'Error Deleting from DB'
|
||||||
|
}
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
break
|
||||||
|
default:
|
||||||
|
const urls = await URLModel.find()
|
||||||
|
|
||||||
|
response.status(200).json(
|
||||||
|
{
|
||||||
|
db: urls
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,35 +0,0 @@
|
||||||
import { MongoClient } from 'mongodb'
|
|
||||||
|
|
||||||
const { MONGODB_URI, MONGODB_DB, MONGODB_COLLECTION } = process.env
|
|
||||||
|
|
||||||
let cached = global.mongo
|
|
||||||
|
|
||||||
if (!cached) {
|
|
||||||
cached = global.mongo = {
|
|
||||||
conn: null,
|
|
||||||
promise: null
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
export default async function connectToDatabase() {
|
|
||||||
if (cached.conn)
|
|
||||||
return cached.conn
|
|
||||||
|
|
||||||
if (!cached.promise) {
|
|
||||||
const opts = {
|
|
||||||
useNewUrlParser: true,
|
|
||||||
useUnifiedTopology: true,
|
|
||||||
}
|
|
||||||
|
|
||||||
cached.promise = await MongoClient.connect(MONGODB_URI, opts).then(client => {
|
|
||||||
return {
|
|
||||||
client,
|
|
||||||
coll: client.db(MONGODB_DB).collection(MONGODB_COLLECTION),
|
|
||||||
}
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
cached.conn = await cached.promise
|
|
||||||
|
|
||||||
return cached.conn
|
|
||||||
}
|
|
|
@ -0,0 +1,29 @@
|
||||||
|
import { connect } from "mongoose"
|
||||||
|
|
||||||
|
interface CachedMongo {
|
||||||
|
conn: typeof import("mongoose")
|
||||||
|
promise: Promise<typeof import("mongoose")>
|
||||||
|
}
|
||||||
|
|
||||||
|
const { MONGODB_URI, MONGODB_DB, MONGODB_COLLECTION } = process.env
|
||||||
|
|
||||||
|
let cached: CachedMongo = global.mongo
|
||||||
|
|
||||||
|
if (!cached) {
|
||||||
|
cached = global.mongo = {
|
||||||
|
conn: null,
|
||||||
|
promise: null
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export default async function dbConnect() {
|
||||||
|
if (cached.conn)
|
||||||
|
return cached.conn
|
||||||
|
|
||||||
|
if (!cached.promise)
|
||||||
|
cached.promise = connect(MONGODB_URI)
|
||||||
|
|
||||||
|
cached.conn = await cached.promise
|
||||||
|
|
||||||
|
return cached.conn
|
||||||
|
}
|
|
@ -0,0 +1,23 @@
|
||||||
|
import { model, models, Schema } from "mongoose"
|
||||||
|
|
||||||
|
interface URL {
|
||||||
|
url: string
|
||||||
|
}
|
||||||
|
|
||||||
|
const schema = new Schema<URL>({
|
||||||
|
url: {
|
||||||
|
type: String,
|
||||||
|
required: true,
|
||||||
|
unique: true
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
schema.path('url').validate(async function(value) {
|
||||||
|
const count = await models.URL.countDocuments({ url: value })
|
||||||
|
|
||||||
|
return !count
|
||||||
|
}, 'URL already exists')
|
||||||
|
|
||||||
|
const URLModel = model<URL>('URL', schema)
|
||||||
|
|
||||||
|
export = URLModel
|
|
@ -24,7 +24,7 @@
|
||||||
"gatsby-plugin-sass": "4.13.0",
|
"gatsby-plugin-sass": "4.13.0",
|
||||||
"gatsby-plugin-transition-link": "1.20.5",
|
"gatsby-plugin-transition-link": "1.20.5",
|
||||||
"gsap": "3.7.1",
|
"gsap": "3.7.1",
|
||||||
"mongodb": "4.1.1",
|
"mongoose": "^6.0.5",
|
||||||
"prop-types": "15.7.2",
|
"prop-types": "15.7.2",
|
||||||
"react": "17.0.2",
|
"react": "17.0.2",
|
||||||
"react-dom": "17.0.2",
|
"react-dom": "17.0.2",
|
||||||
|
@ -33,6 +33,8 @@
|
||||||
"sass": "1.39.0"
|
"sass": "1.39.0"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
|
"@types/mongoose": "^5.11.97",
|
||||||
|
"@vercel/node": "^1.12.1",
|
||||||
"eslint": "7.32.0",
|
"eslint": "7.32.0",
|
||||||
"eslint-plugin-react": "7.25.1"
|
"eslint-plugin-react": "7.25.1"
|
||||||
}
|
}
|
||||||
|
|
|
@ -36,7 +36,7 @@ const DeleteURLPage = () => {
|
||||||
success: {
|
success: {
|
||||||
delay: 500,
|
delay: 500,
|
||||||
render({ data: { data } }) {
|
render({ data: { data } }) {
|
||||||
return `Deleted ${data.url}!`
|
return `If URL: ${data.url} existed, it has been deleted!`
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
error: {
|
error: {
|
||||||
|
|
103
yarn.lock
103
yarn.lock
|
@ -1598,6 +1598,13 @@
|
||||||
dependencies:
|
dependencies:
|
||||||
"@types/node" "*"
|
"@types/node" "*"
|
||||||
|
|
||||||
|
"@types/mongoose@^5.11.97":
|
||||||
|
version "5.11.97"
|
||||||
|
resolved "https://registry.yarnpkg.com/@types/mongoose/-/mongoose-5.11.97.tgz#80b0357f3de6807eb597262f52e49c3e13ee14d8"
|
||||||
|
integrity sha512-cqwOVYT3qXyLiGw7ueU2kX9noE8DPGRY6z8eUxudhXY8NZ7DMKYAxyZkLSevGfhCX3dO/AoX5/SO9lAzfjon0Q==
|
||||||
|
dependencies:
|
||||||
|
mongoose "*"
|
||||||
|
|
||||||
"@types/node-fetch@2":
|
"@types/node-fetch@2":
|
||||||
version "2.5.12"
|
version "2.5.12"
|
||||||
resolved "https://registry.yarnpkg.com/@types/node-fetch/-/node-fetch-2.5.12.tgz#8a6f779b1d4e60b7a57fb6fd48d84fb545b9cc66"
|
resolved "https://registry.yarnpkg.com/@types/node-fetch/-/node-fetch-2.5.12.tgz#8a6f779b1d4e60b7a57fb6fd48d84fb545b9cc66"
|
||||||
|
@ -1776,6 +1783,15 @@
|
||||||
"@typescript-eslint/types" "4.30.0"
|
"@typescript-eslint/types" "4.30.0"
|
||||||
eslint-visitor-keys "^2.0.0"
|
eslint-visitor-keys "^2.0.0"
|
||||||
|
|
||||||
|
"@vercel/node@^1.12.1":
|
||||||
|
version "1.12.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/@vercel/node/-/node-1.12.1.tgz#15f42f64690f904f8a52a387123ce0958657060f"
|
||||||
|
integrity sha512-NcawIY05BvVkWlsowaxF2hl/hJg475U8JvT2FnGykFPMx31q1/FtqyTw/awSrKfOSRXR0InrbEIDIelmS9NzPA==
|
||||||
|
dependencies:
|
||||||
|
"@types/node" "*"
|
||||||
|
ts-node "8.9.1"
|
||||||
|
typescript "4.3.4"
|
||||||
|
|
||||||
"@webassemblyjs/ast@1.11.1":
|
"@webassemblyjs/ast@1.11.1":
|
||||||
version "1.11.1"
|
version "1.11.1"
|
||||||
resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.11.1.tgz#2bfd767eae1a6996f432ff7e8d7fc75679c0b6a7"
|
resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.11.1.tgz#2bfd767eae1a6996f432ff7e8d7fc75679c0b6a7"
|
||||||
|
@ -2571,7 +2587,7 @@ browserslist@^4.0.0, browserslist@^4.12.2, browserslist@^4.14.5, browserslist@^4
|
||||||
escalade "^3.1.1"
|
escalade "^3.1.1"
|
||||||
node-releases "^1.1.73"
|
node-releases "^1.1.73"
|
||||||
|
|
||||||
bson@^4.5.1:
|
bson@^4.2.2, bson@^4.5.1:
|
||||||
version "4.5.1"
|
version "4.5.1"
|
||||||
resolved "https://registry.yarnpkg.com/bson/-/bson-4.5.1.tgz#02e9d649ce017ab14ed258737756c11809963d6c"
|
resolved "https://registry.yarnpkg.com/bson/-/bson-4.5.1.tgz#02e9d649ce017ab14ed258737756c11809963d6c"
|
||||||
integrity sha512-XqFP74pbTVLyLy5KFxVfTUyRrC1mgOlmu/iXHfXqfCKT59jyP9lwbotGfbN59cHBRbJSamZNkrSopjv+N0SqAA==
|
integrity sha512-XqFP74pbTVLyLy5KFxVfTUyRrC1mgOlmu/iXHfXqfCKT59jyP9lwbotGfbN59cHBRbJSamZNkrSopjv+N0SqAA==
|
||||||
|
@ -3403,6 +3419,13 @@ debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.0, debug@^2.6.9:
|
||||||
dependencies:
|
dependencies:
|
||||||
ms "2.0.0"
|
ms "2.0.0"
|
||||||
|
|
||||||
|
debug@4.x, debug@^4.0.0, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@~4.3.1:
|
||||||
|
version "4.3.2"
|
||||||
|
resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.2.tgz#f0a49c18ac8779e31d4a0c6029dfb76873c7428b"
|
||||||
|
integrity sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==
|
||||||
|
dependencies:
|
||||||
|
ms "2.1.2"
|
||||||
|
|
||||||
debug@^3.0.0, debug@^3.1.0, debug@^3.2.7:
|
debug@^3.0.0, debug@^3.1.0, debug@^3.2.7:
|
||||||
version "3.2.7"
|
version "3.2.7"
|
||||||
resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a"
|
resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a"
|
||||||
|
@ -3410,13 +3433,6 @@ debug@^3.0.0, debug@^3.1.0, debug@^3.2.7:
|
||||||
dependencies:
|
dependencies:
|
||||||
ms "^2.1.1"
|
ms "^2.1.1"
|
||||||
|
|
||||||
debug@^4.0.0, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@~4.3.1:
|
|
||||||
version "4.3.2"
|
|
||||||
resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.2.tgz#f0a49c18ac8779e31d4a0c6029dfb76873c7428b"
|
|
||||||
integrity sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==
|
|
||||||
dependencies:
|
|
||||||
ms "2.1.2"
|
|
||||||
|
|
||||||
decamelize@^1.2.0:
|
decamelize@^1.2.0:
|
||||||
version "1.2.0"
|
version "1.2.0"
|
||||||
resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290"
|
resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290"
|
||||||
|
@ -3510,9 +3526,9 @@ delegates@^1.0.0:
|
||||||
integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=
|
integrity sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=
|
||||||
|
|
||||||
denque@^1.5.0:
|
denque@^1.5.0:
|
||||||
version "1.5.0"
|
version "1.5.1"
|
||||||
resolved "https://registry.yarnpkg.com/denque/-/denque-1.5.0.tgz#773de0686ff2d8ec2ff92914316a47b73b1c73de"
|
resolved "https://registry.yarnpkg.com/denque/-/denque-1.5.1.tgz#07f670e29c9a78f8faecb2566a1e2c11929c5cbf"
|
||||||
integrity sha512-CYiCSgIF1p6EUByQPlGkKnP1M9g0ZV3qMIrqMqZqdwazygIA/YP2vrbcyl1h/WppKJTdl1F85cXIle+394iDAQ==
|
integrity sha512-XwE+iZ4D6ZUB7mfYRMb5wByE8L74HCn30FBN7sWnXksWc1LO1bPDl67pBR9o/kC4z/xSNAwkMYcGgqDV3BE3Hw==
|
||||||
|
|
||||||
depd@~1.1.2:
|
depd@~1.1.2:
|
||||||
version "1.1.2"
|
version "1.1.2"
|
||||||
|
@ -6351,6 +6367,11 @@ jsonfile@^4.0.0:
|
||||||
array-includes "^3.1.2"
|
array-includes "^3.1.2"
|
||||||
object.assign "^4.1.2"
|
object.assign "^4.1.2"
|
||||||
|
|
||||||
|
kareem@2.3.2:
|
||||||
|
version "2.3.2"
|
||||||
|
resolved "https://registry.yarnpkg.com/kareem/-/kareem-2.3.2.tgz#78c4508894985b8d38a0dc15e1a8e11078f2ca93"
|
||||||
|
integrity sha512-STHz9P7X2L4Kwn72fA4rGyqyXdmrMSdxqHx9IXon/FXluXieaFA6KJ2upcHAHxQPQ0LeM/OjLrhFxifHewOALQ==
|
||||||
|
|
||||||
keyv@3.0.0:
|
keyv@3.0.0:
|
||||||
version "3.0.0"
|
version "3.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/keyv/-/keyv-3.0.0.tgz#44923ba39e68b12a7cec7df6c3268c031f2ef373"
|
resolved "https://registry.yarnpkg.com/keyv/-/keyv-3.0.0.tgz#44923ba39e68b12a7cec7df6c3268c031f2ef373"
|
||||||
|
@ -7047,6 +7068,35 @@ mongodb@4.1.1:
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
saslprep "^1.0.0"
|
saslprep "^1.0.0"
|
||||||
|
|
||||||
|
mongoose@*, mongoose@^6.0.5:
|
||||||
|
version "6.0.5"
|
||||||
|
resolved "https://registry.yarnpkg.com/mongoose/-/mongoose-6.0.5.tgz#42648005d13b49261c757607d1f23761b59a610d"
|
||||||
|
integrity sha512-1MoG52oosjEK8z45DHQVbakP6DJG1sbQI/ZASBW8sZRV+rCaG/pC3L3wWjrsiped/2+uhvanWM9C89F2n6bQ3w==
|
||||||
|
dependencies:
|
||||||
|
bson "^4.2.2"
|
||||||
|
kareem "2.3.2"
|
||||||
|
mongodb "4.1.1"
|
||||||
|
mpath "0.8.4"
|
||||||
|
mquery "4.0.0"
|
||||||
|
ms "2.1.2"
|
||||||
|
regexp-clone "1.0.0"
|
||||||
|
sift "13.5.2"
|
||||||
|
sliced "1.0.1"
|
||||||
|
|
||||||
|
mpath@0.8.4:
|
||||||
|
version "0.8.4"
|
||||||
|
resolved "https://registry.yarnpkg.com/mpath/-/mpath-0.8.4.tgz#6b566d9581621d9e931dd3b142ed3618e7599313"
|
||||||
|
integrity sha512-DTxNZomBcTWlrMW76jy1wvV37X/cNNxPW1y2Jzd4DZkAaC5ZGsm8bfGfNOthcDuRJujXLqiuS6o3Tpy0JEoh7g==
|
||||||
|
|
||||||
|
mquery@4.0.0:
|
||||||
|
version "4.0.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/mquery/-/mquery-4.0.0.tgz#6c62160ad25289e99e0840907757cdfd62bde775"
|
||||||
|
integrity sha512-nGjm89lHja+T/b8cybAby6H0YgA4qYC/lx6UlwvHGqvTq8bDaNeCwl1sY8uRELrNbVWJzIihxVd+vphGGn1vBw==
|
||||||
|
dependencies:
|
||||||
|
debug "4.x"
|
||||||
|
regexp-clone "^1.0.0"
|
||||||
|
sliced "1.0.1"
|
||||||
|
|
||||||
ms@2.0.0:
|
ms@2.0.0:
|
||||||
version "2.0.0"
|
version "2.0.0"
|
||||||
resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
|
resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
|
||||||
|
@ -8491,6 +8541,11 @@ regex-parser@^2.2.11:
|
||||||
resolved "https://registry.yarnpkg.com/regex-parser/-/regex-parser-2.2.11.tgz#3b37ec9049e19479806e878cabe7c1ca83ccfe58"
|
resolved "https://registry.yarnpkg.com/regex-parser/-/regex-parser-2.2.11.tgz#3b37ec9049e19479806e878cabe7c1ca83ccfe58"
|
||||||
integrity sha512-jbD/FT0+9MBU2XAZluI7w2OBs1RBi6p9M83nkoZayQXXU9e8Robt69FcZc7wU4eJD/YFTjn1JdCk3rbMJajz8Q==
|
integrity sha512-jbD/FT0+9MBU2XAZluI7w2OBs1RBi6p9M83nkoZayQXXU9e8Robt69FcZc7wU4eJD/YFTjn1JdCk3rbMJajz8Q==
|
||||||
|
|
||||||
|
regexp-clone@1.0.0, regexp-clone@^1.0.0:
|
||||||
|
version "1.0.0"
|
||||||
|
resolved "https://registry.yarnpkg.com/regexp-clone/-/regexp-clone-1.0.0.tgz#222db967623277056260b992626354a04ce9bf63"
|
||||||
|
integrity sha512-TuAasHQNamyyJ2hb97IuBEif4qBHGjPHBS64sZwytpLEqtBQ1gPJTnOaQ6qmpET16cK14kkjbazl6+p0RRv0yw==
|
||||||
|
|
||||||
regexp.prototype.flags@^1.3.1:
|
regexp.prototype.flags@^1.3.1:
|
||||||
version "1.3.1"
|
version "1.3.1"
|
||||||
resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz#7ef352ae8d159e758c0eadca6f8fcb4eef07be26"
|
resolved "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz#7ef352ae8d159e758c0eadca6f8fcb4eef07be26"
|
||||||
|
@ -9035,6 +9090,11 @@ side-channel@^1.0.4:
|
||||||
get-intrinsic "^1.0.2"
|
get-intrinsic "^1.0.2"
|
||||||
object-inspect "^1.9.0"
|
object-inspect "^1.9.0"
|
||||||
|
|
||||||
|
sift@13.5.2:
|
||||||
|
version "13.5.2"
|
||||||
|
resolved "https://registry.yarnpkg.com/sift/-/sift-13.5.2.tgz#24a715e13c617b086166cd04917d204a591c9da6"
|
||||||
|
integrity sha512-+gxdEOMA2J+AI+fVsCqeNn7Tgx3M9ZN9jdi95939l1IJ8cZsqS8sqpJyOkic2SJk+1+98Uwryt/gL6XDaV+UZA==
|
||||||
|
|
||||||
signal-exit@^3.0.0, signal-exit@^3.0.2, signal-exit@^3.0.3:
|
signal-exit@^3.0.0, signal-exit@^3.0.2, signal-exit@^3.0.3:
|
||||||
version "3.0.3"
|
version "3.0.3"
|
||||||
resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c"
|
resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c"
|
||||||
|
@ -9087,6 +9147,11 @@ slice-ansi@^4.0.0:
|
||||||
astral-regex "^2.0.0"
|
astral-regex "^2.0.0"
|
||||||
is-fullwidth-code-point "^3.0.0"
|
is-fullwidth-code-point "^3.0.0"
|
||||||
|
|
||||||
|
sliced@1.0.1:
|
||||||
|
version "1.0.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/sliced/-/sliced-1.0.1.tgz#0b3a662b5d04c3177b1926bea82b03f837a2ef41"
|
||||||
|
integrity sha1-CzpmK10Ewxd7GSa+qCsD+Dei70E=
|
||||||
|
|
||||||
slugify@^1.4.4:
|
slugify@^1.4.4:
|
||||||
version "1.6.0"
|
version "1.6.0"
|
||||||
resolved "https://registry.yarnpkg.com/slugify/-/slugify-1.6.0.tgz#6bdf8ed01dabfdc46425b67e3320b698832ff893"
|
resolved "https://registry.yarnpkg.com/slugify/-/slugify-1.6.0.tgz#6bdf8ed01dabfdc46425b67e3320b698832ff893"
|
||||||
|
@ -9799,6 +9864,17 @@ trough@^1.0.0:
|
||||||
resolved "https://registry.yarnpkg.com/true-case-path/-/true-case-path-2.2.1.tgz#c5bf04a5bbec3fd118be4084461b3a27c4d796bf"
|
resolved "https://registry.yarnpkg.com/true-case-path/-/true-case-path-2.2.1.tgz#c5bf04a5bbec3fd118be4084461b3a27c4d796bf"
|
||||||
integrity sha512-0z3j8R7MCjy10kc/g+qg7Ln3alJTodw9aDuVWZa3uiWqfuBMKeAeP2ocWcxoyM3D73yz3Jt/Pu4qPr4wHSdB/Q==
|
integrity sha512-0z3j8R7MCjy10kc/g+qg7Ln3alJTodw9aDuVWZa3uiWqfuBMKeAeP2ocWcxoyM3D73yz3Jt/Pu4qPr4wHSdB/Q==
|
||||||
|
|
||||||
|
ts-node@8.9.1:
|
||||||
|
version "8.9.1"
|
||||||
|
resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-8.9.1.tgz#2f857f46c47e91dcd28a14e052482eb14cfd65a5"
|
||||||
|
integrity sha512-yrq6ODsxEFTLz0R3BX2myf0WBCSQh9A+py8PBo1dCzWIOcvisbyH6akNKqDHMgXePF2kir5mm5JXJTH3OUJYOQ==
|
||||||
|
dependencies:
|
||||||
|
arg "^4.1.0"
|
||||||
|
diff "^4.0.1"
|
||||||
|
make-error "^1.1.1"
|
||||||
|
source-map-support "^0.5.17"
|
||||||
|
yn "3.1.1"
|
||||||
|
|
||||||
ts-node@^9:
|
ts-node@^9:
|
||||||
version "9.1.1"
|
version "9.1.1"
|
||||||
resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-9.1.1.tgz#51a9a450a3e959401bda5f004a72d54b936d376d"
|
resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-9.1.1.tgz#51a9a450a3e959401bda5f004a72d54b936d376d"
|
||||||
|
@ -9916,6 +9992,11 @@ typedarray@^0.0.6:
|
||||||
resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777"
|
resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777"
|
||||||
integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=
|
integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=
|
||||||
|
|
||||||
|
typescript@4.3.4:
|
||||||
|
version "4.3.4"
|
||||||
|
resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.3.4.tgz#3f85b986945bcf31071decdd96cf8bfa65f9dcbc"
|
||||||
|
integrity sha512-uauPG7XZn9F/mo+7MrsRjyvbxFpzemRjKEZXS4AK83oP2KKOJPvb+9cO/gmnv8arWZvhnjVOXz7B49m1l0e9Ew==
|
||||||
|
|
||||||
unbox-primitive@^1.0.1:
|
unbox-primitive@^1.0.1:
|
||||||
version "1.0.1"
|
version "1.0.1"
|
||||||
resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.1.tgz#085e215625ec3162574dc8859abee78a59b14471"
|
resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.1.tgz#085e215625ec3162574dc8859abee78a59b14471"
|
||||||
|
|
Loading…
Reference in New Issue