Toggle navigation
Toggle navigation
This project
Loading...
Sign in
2021-1-capstone-design1
/
RIT_Project1
Go to a project
Toggle navigation
Toggle navigation pinning
Projects
Groups
Snippets
Help
Project
Activity
Repository
Pipelines
Graphs
Issues
1
Merge Requests
0
Wiki
Snippets
Network
Create a new issue
Builds
Commits
Issue Boards
Authored by
박권수
2021-09-21 03:05:19 +0900
Browse Files
Options
Browse Files
Download
Plain Diff
Commit
7bd1e1cc00a0e92bdd27151f78274bd401cff6eb
7bd1e1cc
2 parents
588fd6df
9a028502
Merge branch 'server' into web
Show whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
1623 additions
and
220 deletions
server/index.js
server/package-lock.json
server/package.json
server/src/api/auth/auth.ctrl.js
server/src/util/Batch.js
server/src/util/FCM.js
server/src/util/QrCodeUtil.js
server/yarn.lock
server/index.js
View file @
7bd1e1c
...
...
@@ -8,6 +8,7 @@ const Mongoose = require('mongoose');
const
api
=
require
(
'./src/api'
);
const
MqttServer
=
require
(
'./src/util/MqttServer'
);
const
BatchSystem
=
require
(
'./src/util/Batch'
);
const
FCM
=
require
(
'./src/util/FCM'
);
require
(
'dotenv'
).
config
();
// eslint-disable-next-line no-undef
...
...
@@ -37,5 +38,7 @@ app.use(router.routes()).use(router.allowedMethods());
app
.
listen
(
SERVER_PORT
,
()
=>
{
console
.
log
(
'\x1b[1;36mPORT : '
,
SERVER_PORT
,
'is connected\x1b[0m'
);
MqttServer
.
on
();
BatchSystem
.
PushNotifyByDosage
();
FCM
.
initializeFCM
();
BatchSystem
.
removeQrCode
();
BatchSystem
.
pushNotifyByDosage
();
});
\ No newline at end of file
...
...
server/package-lock.json
View file @
7bd1e1c
...
...
@@ -11,11 +11,13 @@
"dependencies"
:
{
"@google-cloud/storage"
:
"^5.14.2"
,
"@koa/cors"
:
"^3.1.0"
,
"firebase-admin"
:
"^9.11.1"
,
"koa-body"
:
"^4.2.0"
,
"moment"
:
"^2.29.1"
,
"moment-timezone"
:
"^0.5.33"
,
"mqtt"
:
"^4.2.6"
,
"node-cron"
:
"^3.0.0"
"node-cron"
:
"^3.0.0"
,
"qrcode"
:
"^1.4.4"
},
"devDependencies"
:
{
"eslint"
:
"^7.32.0"
...
...
@@ -144,6 +146,70 @@
"node"
:
"^10.12.0 || >=12.0.0"
}
},
"node_modules/@firebase/app-types"
:
{
"version"
:
"0.7.0"
,
"resolved"
:
"https://registry.npmjs.org/@firebase/app-types/-/app-types-0.7.0.tgz"
,
"integrity"
:
"sha512-6fbHQwDv2jp/v6bXhBw2eSRbNBpxHcd1NBF864UksSMVIqIyri9qpJB1Mn6sGZE+bnDsSQBC5j2TbMxYsJQkQg=="
,
"peer"
:
true
},
"node_modules/@firebase/auth-interop-types"
:
{
"version"
:
"0.1.6"
,
"resolved"
:
"https://registry.npmjs.org/@firebase/auth-interop-types/-/auth-interop-types-0.1.6.tgz"
,
"integrity"
:
"sha512-etIi92fW3CctsmR9e3sYM3Uqnoq861M0Id9mdOPF6PWIg38BXL5k4upCNBggGUpLIS0H1grMOvy/wn1xymwe2g=="
,
"peerDependencies"
:
{
"@firebase/app-types"
:
"0.x"
,
"@firebase/util"
:
"1.x"
}
},
"node_modules/@firebase/component"
:
{
"version"
:
"0.5.5"
,
"resolved"
:
"https://registry.npmjs.org/@firebase/component/-/component-0.5.5.tgz"
,
"integrity"
:
"sha512-L41SdS/4a164jx2iGfakJgaBUPPBI3DI+RrUlmh3oHSUljTeCwfj/Nhcv3S7e2lyXsGFJtAyepfPUx4IQ05crw=="
,
"dependencies"
:
{
"@firebase/util"
:
"1.2.0"
,
"tslib"
:
"^2.1.0"
}
},
"node_modules/@firebase/database"
:
{
"version"
:
"0.10.9"
,
"resolved"
:
"https://registry.npmjs.org/@firebase/database/-/database-0.10.9.tgz"
,
"integrity"
:
"sha512-Jxi9SiE4cNOftO9YKlG71ccyWFw4kSM9AG/xYu6vWXUGBr39Uw1TvYougANOcU21Q0TP4J08VPGnOnpXk/FGbQ=="
,
"dependencies"
:
{
"@firebase/auth-interop-types"
:
"0.1.6"
,
"@firebase/component"
:
"0.5.5"
,
"@firebase/database-types"
:
"0.7.3"
,
"@firebase/logger"
:
"0.2.6"
,
"@firebase/util"
:
"1.2.0"
,
"faye-websocket"
:
"0.11.3"
,
"tslib"
:
"^2.1.0"
}
},
"node_modules/@firebase/database-types"
:
{
"version"
:
"0.7.3"
,
"resolved"
:
"https://registry.npmjs.org/@firebase/database-types/-/database-types-0.7.3.tgz"
,
"integrity"
:
"sha512-dSOJmhKQ0nL8O4EQMRNGpSExWCXeHtH57gGg0BfNAdWcKhC8/4Y+qfKLfWXzyHvrSecpLmO0SmAi/iK2D5fp5A=="
,
"dependencies"
:
{
"@firebase/app-types"
:
"0.6.3"
}
},
"node_modules/@firebase/database-types/node_modules/@firebase/app-types"
:
{
"version"
:
"0.6.3"
,
"resolved"
:
"https://registry.npmjs.org/@firebase/app-types/-/app-types-0.6.3.tgz"
,
"integrity"
:
"sha512-/M13DPPati7FQHEQ9Minjk1HGLm/4K4gs9bR4rzLCWJg64yGtVC0zNg9gDpkw9yc2cvol/mNFxqTtd4geGrwdw=="
},
"node_modules/@firebase/logger"
:
{
"version"
:
"0.2.6"
,
"resolved"
:
"https://registry.npmjs.org/@firebase/logger/-/logger-0.2.6.tgz"
,
"integrity"
:
"sha512-KIxcUvW/cRGWlzK9Vd2KB864HlUnCfdTH0taHE0sXW5Xl7+W68suaeau1oKNEqmc3l45azkd4NzXTCWZRZdXrw=="
},
"node_modules/@firebase/util"
:
{
"version"
:
"1.2.0"
,
"resolved"
:
"https://registry.npmjs.org/@firebase/util/-/util-1.2.0.tgz"
,
"integrity"
:
"sha512-8W9TTGImXr9cu+oyjBJ7yjoEd/IVAv0pBZA4c1uIuKrpGZi2ee38m+8xlZOBRmsAaOU/tR9DXz1WF/oeM6Fb7Q=="
,
"dependencies"
:
{
"tslib"
:
"^2.1.0"
}
},
"node_modules/@google-cloud/common"
:
{
"version"
:
"3.7.2"
,
"resolved"
:
"https://registry.npmjs.org/@google-cloud/common/-/common-3.7.2.tgz"
,
...
...
@@ -174,6 +240,21 @@
"stream-shift"
:
"^1.0.0"
}
},
"node_modules/@google-cloud/firestore"
:
{
"version"
:
"4.15.1"
,
"resolved"
:
"https://registry.npmjs.org/@google-cloud/firestore/-/firestore-4.15.1.tgz"
,
"integrity"
:
"sha512-2PWsCkEF1W02QbghSeRsNdYKN1qavrHBP3m72gPDMHQSYrGULOaTi7fSJquQmAtc4iPVB2/x6h80rdLHTATQtA=="
,
"optional"
:
true
,
"dependencies"
:
{
"fast-deep-equal"
:
"^3.1.1"
,
"functional-red-black-tree"
:
"^1.0.1"
,
"google-gax"
:
"^2.24.1"
,
"protobufjs"
:
"^6.8.6"
},
"engines"
:
{
"node"
:
">=10.10.0"
}
},
"node_modules/@google-cloud/paginator"
:
{
"version"
:
"3.0.6"
,
"resolved"
:
"https://registry.npmjs.org/@google-cloud/paginator/-/paginator-3.0.6.tgz"
,
...
...
@@ -252,6 +333,37 @@
"pump"
:
"^3.0.0"
}
},
"node_modules/@grpc/grpc-js"
:
{
"version"
:
"1.3.7"
,
"resolved"
:
"https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.3.7.tgz"
,
"integrity"
:
"sha512-CKQVuwuSPh40tgOkR7c0ZisxYRiN05PcKPW72mQL5y++qd7CwBRoaJZvU5xfXnCJDFBmS3qZGQ71Frx6Ofo2XA=="
,
"optional"
:
true
,
"dependencies"
:
{
"@types/node"
:
">=12.12.47"
},
"engines"
:
{
"node"
:
"^8.13.0 || >=10.10.0"
}
},
"node_modules/@grpc/proto-loader"
:
{
"version"
:
"0.6.5"
,
"resolved"
:
"https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.6.5.tgz"
,
"integrity"
:
"sha512-GZdzyVQI1Bln/kCzIYgTKu+rQJ5dno0gVrfmLe4jqQu7T2e7svSwJzpCBqVU5hhBSJP3peuPjOMWsj5GR61YmQ=="
,
"optional"
:
true
,
"dependencies"
:
{
"@types/long"
:
"^4.0.1"
,
"lodash.camelcase"
:
"^4.3.0"
,
"long"
:
"^4.0.0"
,
"protobufjs"
:
"^6.10.0"
,
"yargs"
:
"^16.1.1"
},
"bin"
:
{
"proto-loader-gen-types"
:
"build/bin/proto-loader-gen-types.js"
},
"engines"
:
{
"node"
:
">=6"
}
},
"node_modules/@humanwhocodes/config-array"
:
{
"version"
:
"0.5.0"
,
"resolved"
:
"https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz"
,
...
...
@@ -283,6 +395,78 @@
"node"
:
">= 8.0.0"
}
},
"node_modules/@panva/asn1.js"
:
{
"version"
:
"1.0.0"
,
"resolved"
:
"https://registry.npmjs.org/@panva/asn1.js/-/asn1.js-1.0.0.tgz"
,
"integrity"
:
"sha512-UdkG3mLEqXgnlKsWanWcgb6dOjUzJ+XC5f+aWw30qrtjxeNUSfKX1cd5FBzOaXQumoe9nIqeZUvrRJS03HCCtw=="
,
"engines"
:
{
"node"
:
">=10.13.0"
}
},
"node_modules/@protobufjs/aspromise"
:
{
"version"
:
"1.1.2"
,
"resolved"
:
"https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz"
,
"integrity"
:
"sha1-m4sMxmPWaafY9vXQiToU00jzD78="
,
"optional"
:
true
},
"node_modules/@protobufjs/base64"
:
{
"version"
:
"1.1.2"
,
"resolved"
:
"https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz"
,
"integrity"
:
"sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg=="
,
"optional"
:
true
},
"node_modules/@protobufjs/codegen"
:
{
"version"
:
"2.0.4"
,
"resolved"
:
"https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz"
,
"integrity"
:
"sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg=="
,
"optional"
:
true
},
"node_modules/@protobufjs/eventemitter"
:
{
"version"
:
"1.1.0"
,
"resolved"
:
"https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz"
,
"integrity"
:
"sha1-NVy8mLr61ZePntCV85diHx0Ga3A="
,
"optional"
:
true
},
"node_modules/@protobufjs/fetch"
:
{
"version"
:
"1.1.0"
,
"resolved"
:
"https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz"
,
"integrity"
:
"sha1-upn7WYYUr2VwDBYZ/wbUVLDYTEU="
,
"optional"
:
true
,
"dependencies"
:
{
"@protobufjs/aspromise"
:
"^1.1.1"
,
"@protobufjs/inquire"
:
"^1.1.0"
}
},
"node_modules/@protobufjs/float"
:
{
"version"
:
"1.0.2"
,
"resolved"
:
"https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz"
,
"integrity"
:
"sha1-Xp4avctz/Ap8uLKR33jIy9l7h9E="
,
"optional"
:
true
},
"node_modules/@protobufjs/inquire"
:
{
"version"
:
"1.1.0"
,
"resolved"
:
"https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz"
,
"integrity"
:
"sha1-/yAOPnzyQp4tyvwRQIKOjMY48Ik="
,
"optional"
:
true
},
"node_modules/@protobufjs/path"
:
{
"version"
:
"1.1.2"
,
"resolved"
:
"https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz"
,
"integrity"
:
"sha1-bMKyDFya1q0NzP0hynZz2Nf79o0="
,
"optional"
:
true
},
"node_modules/@protobufjs/pool"
:
{
"version"
:
"1.1.0"
,
"resolved"
:
"https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz"
,
"integrity"
:
"sha1-Cf0V8tbTq/qbZbw2ZQbWrXhG/1Q="
,
"optional"
:
true
},
"node_modules/@protobufjs/utf8"
:
{
"version"
:
"1.1.0"
,
"resolved"
:
"https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz"
,
"integrity"
:
"sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA="
,
"optional"
:
true
},
"node_modules/@tootallnate/once"
:
{
"version"
:
"1.1.2"
,
"resolved"
:
"https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz"
,
...
...
@@ -291,6 +475,61 @@
"node"
:
">= 6"
}
},
"node_modules/@types/body-parser"
:
{
"version"
:
"1.19.1"
,
"resolved"
:
"https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.1.tgz"
,
"integrity"
:
"sha512-a6bTJ21vFOGIkwM0kzh9Yr89ziVxq4vYH2fQ6N8AeipEzai/cFK6aGMArIkUeIdRIgpwQa+2bXiLuUJCpSf2Cg=="
,
"dependencies"
:
{
"@types/connect"
:
"*"
,
"@types/node"
:
"*"
}
},
"node_modules/@types/connect"
:
{
"version"
:
"3.4.35"
,
"resolved"
:
"https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz"
,
"integrity"
:
"sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ=="
,
"dependencies"
:
{
"@types/node"
:
"*"
}
},
"node_modules/@types/express"
:
{
"version"
:
"4.17.13"
,
"resolved"
:
"https://registry.npmjs.org/@types/express/-/express-4.17.13.tgz"
,
"integrity"
:
"sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA=="
,
"dependencies"
:
{
"@types/body-parser"
:
"*"
,
"@types/express-serve-static-core"
:
"^4.17.18"
,
"@types/qs"
:
"*"
,
"@types/serve-static"
:
"*"
}
},
"node_modules/@types/express-jwt"
:
{
"version"
:
"0.0.42"
,
"resolved"
:
"https://registry.npmjs.org/@types/express-jwt/-/express-jwt-0.0.42.tgz"
,
"integrity"
:
"sha512-WszgUddvM1t5dPpJ3LhWNH8kfNN8GPIBrAGxgIYXVCEGx6Bx4A036aAuf/r5WH9DIEdlmp7gHOYvSM6U87B0ag=="
,
"dependencies"
:
{
"@types/express"
:
"*"
,
"@types/express-unless"
:
"*"
}
},
"node_modules/@types/express-serve-static-core"
:
{
"version"
:
"4.17.24"
,
"resolved"
:
"https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.24.tgz"
,
"integrity"
:
"sha512-3UJuW+Qxhzwjq3xhwXm2onQcFHn76frIYVbTu+kn24LFxI+dEhdfISDFovPB8VpEgW8oQCTpRuCe+0zJxB7NEA=="
,
"dependencies"
:
{
"@types/node"
:
"*"
,
"@types/qs"
:
"*"
,
"@types/range-parser"
:
"*"
}
},
"node_modules/@types/express-unless"
:
{
"version"
:
"0.5.2"
,
"resolved"
:
"https://registry.npmjs.org/@types/express-unless/-/express-unless-0.5.2.tgz"
,
"integrity"
:
"sha512-Q74UyYRX/zIgl1HSp9tUX2PlG8glkVm+59r7aK4KGKzC5jqKIOX6rrVLRQrzpZUQ84VukHtRoeAuon2nIssHPQ=="
,
"dependencies"
:
{
"@types/express"
:
"*"
}
},
"node_modules/@types/formidable"
:
{
"version"
:
"1.2.4"
,
"resolved"
:
"https://registry.npmjs.org/@types/formidable/-/formidable-1.2.4.tgz"
,
...
...
@@ -299,11 +538,41 @@
"@types/node"
:
"*"
}
},
"node_modules/@types/long"
:
{
"version"
:
"4.0.1"
,
"resolved"
:
"https://registry.npmjs.org/@types/long/-/long-4.0.1.tgz"
,
"integrity"
:
"sha512-5tXH6Bx/kNGd3MgffdmP4dy2Z+G4eaXw0SE81Tq3BNadtnMR5/ySMzX4SLEzHJzSmPNn4HIdpQsBvXMUykr58w=="
,
"optional"
:
true
},
"node_modules/@types/mime"
:
{
"version"
:
"1.3.2"
,
"resolved"
:
"https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz"
,
"integrity"
:
"sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw=="
},
"node_modules/@types/node"
:
{
"version"
:
"16.9.2"
,
"resolved"
:
"https://registry.npmjs.org/@types/node/-/node-16.9.2.tgz"
,
"integrity"
:
"sha512-ZHty/hKoOLZvSz6BtP1g7tc7nUeJhoCf3flLjh8ZEv1vFKBWHXcnMbJMyN/pftSljNyy0kNW/UqI3DccnBnZ8w=="
},
"node_modules/@types/qs"
:
{
"version"
:
"6.9.7"
,
"resolved"
:
"https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz"
,
"integrity"
:
"sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw=="
},
"node_modules/@types/range-parser"
:
{
"version"
:
"1.2.4"
,
"resolved"
:
"https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz"
,
"integrity"
:
"sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw=="
},
"node_modules/@types/serve-static"
:
{
"version"
:
"1.13.10"
,
"resolved"
:
"https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.10.tgz"
,
"integrity"
:
"sha512-nCkHGI4w7ZgAdNkrEu0bv+4xNV/XDqW+DydknebMOQwkpDGx8G+HTlj7R7ABI8i8nKxVw0wtKPi1D+lPOkh4YQ=="
,
"dependencies"
:
{
"@types/mime"
:
"^1"
,
"@types/node"
:
"*"
}
},
"node_modules/abort-controller"
:
{
"version"
:
"3.0.0"
,
"resolved"
:
"https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz"
,
...
...
@@ -504,11 +773,30 @@
"ieee754"
:
"^1.1.13"
}
},
"node_modules/buffer-alloc"
:
{
"version"
:
"1.2.0"
,
"resolved"
:
"https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz"
,
"integrity"
:
"sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow=="
,
"dependencies"
:
{
"buffer-alloc-unsafe"
:
"^1.1.0"
,
"buffer-fill"
:
"^1.0.0"
}
},
"node_modules/buffer-alloc-unsafe"
:
{
"version"
:
"1.1.0"
,
"resolved"
:
"https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz"
,
"integrity"
:
"sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg=="
},
"node_modules/buffer-equal-constant-time"
:
{
"version"
:
"1.0.1"
,
"resolved"
:
"https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz"
,
"integrity"
:
"sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk="
},
"node_modules/buffer-fill"
:
{
"version"
:
"1.0.0"
,
"resolved"
:
"https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz"
,
"integrity"
:
"sha1-+PeLdniYiO858gXNY39o5wISKyw="
},
"node_modules/buffer-from"
:
{
"version"
:
"1.1.1"
,
"resolved"
:
"https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz"
,
...
...
@@ -579,6 +867,14 @@
"node"
:
">=6"
}
},
"node_modules/camelcase"
:
{
"version"
:
"5.3.1"
,
"resolved"
:
"https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz"
,
"integrity"
:
"sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg=="
,
"engines"
:
{
"node"
:
">=6"
}
},
"node_modules/chalk"
:
{
"version"
:
"4.1.2"
,
"resolved"
:
"https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz"
,
...
...
@@ -595,6 +891,17 @@
"url"
:
"https://github.com/chalk/chalk?sponsor=1"
}
},
"node_modules/cliui"
:
{
"version"
:
"7.0.4"
,
"resolved"
:
"https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz"
,
"integrity"
:
"sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ=="
,
"optional"
:
true
,
"dependencies"
:
{
"string-width"
:
"^4.2.0"
,
"strip-ansi"
:
"^6.0.0"
,
"wrap-ansi"
:
"^7.0.0"
}
},
"node_modules/co-body"
:
{
"version"
:
"5.2.0"
,
"resolved"
:
"https://registry.npmjs.org/co-body/-/co-body-5.2.0.tgz"
,
...
...
@@ -727,6 +1034,14 @@
}
}
},
"node_modules/decamelize"
:
{
"version"
:
"1.2.0"
,
"resolved"
:
"https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz"
,
"integrity"
:
"sha1-9lNNFRSCabIDUue+4m9QH5oZEpA="
,
"engines"
:
{
"node"
:
">=0.10.0"
}
},
"node_modules/deep-is"
:
{
"version"
:
"0.1.3"
,
"resolved"
:
"https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz"
,
...
...
@@ -741,6 +1056,22 @@
"node"
:
">= 0.6"
}
},
"node_modules/dicer"
:
{
"version"
:
"0.3.0"
,
"resolved"
:
"https://registry.npmjs.org/dicer/-/dicer-0.3.0.tgz"
,
"integrity"
:
"sha512-MdceRRWqltEG2dZqO769g27N/3PXfcKl04VhYnBlo2YhH7zPi88VebsjTKclaOyiuMaGU72hTfw3VkUitGcVCA=="
,
"dependencies"
:
{
"streamsearch"
:
"0.1.2"
},
"engines"
:
{
"node"
:
">=4.5.0"
}
},
"node_modules/dijkstrajs"
:
{
"version"
:
"1.0.2"
,
"resolved"
:
"https://registry.npmjs.org/dijkstrajs/-/dijkstrajs-1.0.2.tgz"
,
"integrity"
:
"sha512-QV6PMaHTCNmKSeP6QoXhVTw9snc9VD8MulTT0Bd99Pacp4SS1cjcrYPgBPmibqKVtMJJfqC6XvOXgPMEEPH/fg=="
},
"node_modules/doctrine"
:
{
"version"
:
"3.0.0"
,
"resolved"
:
"https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz"
,
...
...
@@ -841,6 +1172,15 @@
"resolved"
:
"https://registry.npmjs.org/ent/-/ent-2.2.0.tgz"
,
"integrity"
:
"sha1-6WQhkyWiHQX0RGai9obtbOX13R0="
},
"node_modules/escalade"
:
{
"version"
:
"3.1.1"
,
"resolved"
:
"https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz"
,
"integrity"
:
"sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw=="
,
"optional"
:
true
,
"engines"
:
{
"node"
:
">=6"
}
},
"node_modules/escape-string-regexp"
:
{
"version"
:
"4.0.0"
,
"resolved"
:
"https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz"
,
...
...
@@ -1112,6 +1452,17 @@
"resolved"
:
"https://registry.npmjs.org/fast-text-encoding/-/fast-text-encoding-1.0.3.tgz"
,
"integrity"
:
"sha512-dtm4QZH9nZtcDt8qJiOH9fcQd1NAgi+K1O2DbE6GG1PPCK/BWfOH3idCTRQ4ImXRUOyopDEgDEnVEE7Y/2Wrig=="
},
"node_modules/faye-websocket"
:
{
"version"
:
"0.11.3"
,
"resolved"
:
"https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.3.tgz"
,
"integrity"
:
"sha512-D2y4bovYpzziGgbHYtGCMjlJM36vAl/y+xUyn1C+FVx8szd1E+86KwVw6XvYSzOP8iMpm1X0I4xJD+QtUb36OA=="
,
"dependencies"
:
{
"websocket-driver"
:
">=0.5.1"
},
"engines"
:
{
"node"
:
">=0.8.0"
}
},
"node_modules/file-entry-cache"
:
{
"version"
:
"6.0.1"
,
"resolved"
:
"https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz"
,
...
...
@@ -1124,6 +1475,17 @@
"node"
:
"^10.12.0 || >=12.0.0"
}
},
"node_modules/find-up"
:
{
"version"
:
"3.0.0"
,
"resolved"
:
"https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz"
,
"integrity"
:
"sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg=="
,
"dependencies"
:
{
"locate-path"
:
"^3.0.0"
},
"engines"
:
{
"node"
:
">=6"
}
},
"node_modules/firebase-admin"
:
{
"version"
:
"9.11.1"
,
"resolved"
:
"https://registry.npmjs.org/firebase-admin/-/firebase-admin-9.11.1.tgz"
,
...
...
@@ -1350,6 +1712,14 @@
"pump"
:
"^3.0.0"
}
},
"node_modules/get-caller-file"
:
{
"version"
:
"2.0.5"
,
"resolved"
:
"https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz"
,
"integrity"
:
"sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg=="
,
"engines"
:
{
"node"
:
"6.* || 8.* || >= 10.*"
}
},
"node_modules/get-intrinsic"
:
{
"version"
:
"1.1.1"
,
"resolved"
:
"https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz"
,
...
...
@@ -1483,6 +1853,45 @@
"node"
:
">=10"
}
},
"node_modules/google-gax"
:
{
"version"
:
"2.25.4"
,
"resolved"
:
"https://registry.npmjs.org/google-gax/-/google-gax-2.25.4.tgz"
,
"integrity"
:
"sha512-+Jd0FFOWyb8ieX53e6Sl5OYvHXoA1sWKfQ24ykR502NKgBTvPAh/RFcITihGePBJZ1E8pfh4MKWU0Sf+f1CK+A=="
,
"optional"
:
true
,
"dependencies"
:
{
"@grpc/grpc-js"
:
"~1.3.0"
,
"@grpc/proto-loader"
:
"^0.6.1"
,
"@types/long"
:
"^4.0.0"
,
"abort-controller"
:
"^3.0.0"
,
"duplexify"
:
"^4.0.0"
,
"fast-text-encoding"
:
"^1.0.3"
,
"google-auth-library"
:
"^7.6.1"
,
"is-stream-ended"
:
"^0.1.4"
,
"node-fetch"
:
"^2.6.1"
,
"object-hash"
:
"^2.1.1"
,
"proto3-json-serializer"
:
"^0.1.1"
,
"protobufjs"
:
"6.11.2"
,
"retry-request"
:
"^4.0.0"
},
"bin"
:
{
"compileProtos"
:
"build/tools/compileProtos.js"
},
"engines"
:
{
"node"
:
">=10"
}
},
"node_modules/google-gax/node_modules/duplexify"
:
{
"version"
:
"4.1.2"
,
"resolved"
:
"https://registry.npmjs.org/duplexify/-/duplexify-4.1.2.tgz"
,
"integrity"
:
"sha512-fz3OjcNCHmRP12MJoZMPglx8m4rrFP8rovnk4vT8Fs+aonZoCwGg10dSsQsfP/E62eZcPTMSMP6686fu9Qlqtw=="
,
"optional"
:
true
,
"dependencies"
:
{
"end-of-stream"
:
"^1.4.1"
,
"inherits"
:
"^2.0.3"
,
"readable-stream"
:
"^3.1.1"
,
"stream-shift"
:
"^1.0.0"
}
},
"node_modules/google-p12-pem"
:
{
"version"
:
"3.1.2"
,
"resolved"
:
"https://registry.npmjs.org/google-p12-pem/-/google-p12-pem-3.1.2.tgz"
,
...
...
@@ -1577,6 +1986,11 @@
"node"
:
">= 0.6"
}
},
"node_modules/http-parser-js"
:
{
"version"
:
"0.5.3"
,
"resolved"
:
"https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.3.tgz"
,
"integrity"
:
"sha512-t7hjvef/5HEK7RWTdUzVUhl8zkEu+LlaE0IYzdMuvbSDipxBRpOn4Uhw8ZyECEa808iVT8XCjzo6xmYt4CiLZg=="
},
"node_modules/http-proxy-agent"
:
{
"version"
:
"4.0.1"
,
"resolved"
:
"https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz"
,
...
...
@@ -1765,6 +2179,12 @@
"url"
:
"https://github.com/sponsors/sindresorhus"
}
},
"node_modules/is-stream-ended"
:
{
"version"
:
"0.1.4"
,
"resolved"
:
"https://registry.npmjs.org/is-stream-ended/-/is-stream-ended-0.1.4.tgz"
,
"integrity"
:
"sha512-xj0XPvmr7bQFTvirqnFr50o0hQIh6ZItDqloxt5aJrR4NQsYeSsyFQERYGCAzfindAcnKjINnwEEgLx4IqVzQw=="
,
"optional"
:
true
},
"node_modules/is-typedarray"
:
{
"version"
:
"1.0.0"
,
"resolved"
:
"https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz"
,
...
...
@@ -1852,6 +2272,54 @@
"resolved"
:
"https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz"
,
"integrity"
:
"sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE="
},
"node_modules/jsonwebtoken"
:
{
"version"
:
"8.5.1"
,
"resolved"
:
"https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz"
,
"integrity"
:
"sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w=="
,
"dependencies"
:
{
"jws"
:
"^3.2.2"
,
"lodash.includes"
:
"^4.3.0"
,
"lodash.isboolean"
:
"^3.0.3"
,
"lodash.isinteger"
:
"^4.0.4"
,
"lodash.isnumber"
:
"^3.0.3"
,
"lodash.isplainobject"
:
"^4.0.6"
,
"lodash.isstring"
:
"^4.0.1"
,
"lodash.once"
:
"^4.0.0"
,
"ms"
:
"^2.1.1"
,
"semver"
:
"^5.6.0"
},
"engines"
:
{
"node"
:
">=4"
,
"npm"
:
">=1.4.28"
}
},
"node_modules/jsonwebtoken/node_modules/jwa"
:
{
"version"
:
"1.4.1"
,
"resolved"
:
"https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz"
,
"integrity"
:
"sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA=="
,
"dependencies"
:
{
"buffer-equal-constant-time"
:
"1.0.1"
,
"ecdsa-sig-formatter"
:
"1.0.11"
,
"safe-buffer"
:
"^5.0.1"
}
},
"node_modules/jsonwebtoken/node_modules/jws"
:
{
"version"
:
"3.2.2"
,
"resolved"
:
"https://registry.npmjs.org/jws/-/jws-3.2.2.tgz"
,
"integrity"
:
"sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA=="
,
"dependencies"
:
{
"jwa"
:
"^1.4.1"
,
"safe-buffer"
:
"^5.0.1"
}
},
"node_modules/jsonwebtoken/node_modules/semver"
:
{
"version"
:
"5.7.1"
,
"resolved"
:
"https://registry.npmjs.org/semver/-/semver-5.7.1.tgz"
,
"integrity"
:
"sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ=="
,
"bin"
:
{
"semver"
:
"bin/semver"
}
},
"node_modules/jwa"
:
{
"version"
:
"2.0.0"
,
"resolved"
:
"https://registry.npmjs.org/jwa/-/jwa-2.0.0.tgz"
,
...
...
@@ -1862,6 +2330,21 @@
"safe-buffer"
:
"^5.0.1"
}
},
"node_modules/jwks-rsa"
:
{
"version"
:
"2.0.4"
,
"resolved"
:
"https://registry.npmjs.org/jwks-rsa/-/jwks-rsa-2.0.4.tgz"
,
"integrity"
:
"sha512-iJqVCECYZZ+3oPmY1qXv3Fq+3ywDtuNEVBvG41pPlaR0zyGxa12nC0beAOBBUhETJmc05puS50mRQN4NkCGhmg=="
,
"dependencies"
:
{
"@types/express-jwt"
:
"0.0.42"
,
"debug"
:
"^4.3.2"
,
"jose"
:
"^2.0.5"
,
"limiter"
:
"^1.1.5"
,
"lru-memoizer"
:
"^2.1.4"
},
"engines"
:
{
"node"
:
">=10 < 13 || >=14"
}
},
"node_modules/jws"
:
{
"version"
:
"4.0.0"
,
"resolved"
:
"https://registry.npmjs.org/jws/-/jws-4.0.0.tgz"
,
...
...
@@ -1907,6 +2390,18 @@
"resolved"
:
"https://registry.npmjs.org/limiter/-/limiter-1.1.5.tgz"
,
"integrity"
:
"sha512-FWWMIEOxz3GwUI4Ts/IvgVy6LPvoMPgjMdQ185nN6psJyBJ4yOpzqm695/h5umdLJg2vW3GR5iG11MAkR2AzJA=="
},
"node_modules/locate-path"
:
{
"version"
:
"3.0.0"
,
"resolved"
:
"https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz"
,
"integrity"
:
"sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A=="
,
"dependencies"
:
{
"p-locate"
:
"^3.0.0"
,
"path-exists"
:
"^3.0.0"
},
"engines"
:
{
"node"
:
">=6"
}
},
"node_modules/lodash.camelcase"
:
{
"version"
:
"4.3.0"
,
"resolved"
:
"https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz"
,
...
...
@@ -2010,7 +2505,6 @@
"version"
:
"3.1.0"
,
"resolved"
:
"https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz"
,
"integrity"
:
"sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw=="
,
"optional"
:
true
,
"dependencies"
:
{
"semver"
:
"^6.0.0"
},
...
...
@@ -2025,16 +2519,22 @@
"version"
:
"6.3.0"
,
"resolved"
:
"https://registry.npmjs.org/semver/-/semver-6.3.0.tgz"
,
"integrity"
:
"sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw=="
,
"optional"
:
true
,
"bin"
:
{
"semver"
:
"bin/semver.js"
}
},
"node_modules/media-typer"
:
{
"version"
:
"0.3.0"
,
"resolved"
:
"https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz"
,
"integrity"
:
"sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g="
,
"engines"
:
{
"node"
:
">= 0.6"
}
},
"node_modules/mime"
:
{
"version"
:
"2.5.2"
,
"resolved"
:
"https://registry.npmjs.org/mime/-/mime-2.5.2.tgz"
,
"integrity"
:
"sha512-tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg=="
,
"optional"
:
true
,
"bin"
:
{
"mime"
:
"cli.js"
},
...
...
@@ -2046,75 +2546,14 @@
"version"
:
"1.49.0"
,
"resolved"
:
"https://registry.npmjs.org/mime-db/-/mime-db-1.49.0.tgz"
,
"integrity"
:
"sha512-CIc8j9URtOVApSFCQIF+VBkX1RwXp/oMMOrqdyXSBXq5RWNEsRfyj1kiRnQgmNXmHxPoFIxOroKA3zcU9P+nAA=="
,
"optional"
:
true
,
"engines"
:
{
"node"
:
">= 0.6"
}
},
"node_modules/lru-cache"
:
{
"version"
:
"6.0.0"
,
"resolved"
:
"https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz"
,
"integrity"
:
"sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA=="
,
"dependencies"
:
{
"mime-db"
:
"1.49.0"
},
"engines"
:
{
"node"
:
">= 0.6"
}
},
"node_modules/make-dir"
:
{
"version"
:
"3.1.0"
,
"resolved"
:
"https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz"
,
"integrity"
:
"sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw=="
,
"dependencies"
:
{
"semver"
:
"^6.0.0"
},
"engines"
:
{
"node"
:
">=8"
},
"funding"
:
{
"url"
:
"https://github.com/sponsors/sindresorhus"
}
},
"node_modules/make-dir/node_modules/semver"
:
{
"version"
:
"6.3.0"
,
"resolved"
:
"https://registry.npmjs.org/semver/-/semver-6.3.0.tgz"
,
"integrity"
:
"sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw=="
,
"bin"
:
{
"semver"
:
"bin/semver.js"
}
},
"node_modules/media-typer"
:
{
"version"
:
"0.3.0"
,
"resolved"
:
"https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz"
,
"integrity"
:
"sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g="
,
"engines"
:
{
"node"
:
">= 0.6"
}
},
"node_modules/mime"
:
{
"version"
:
"2.5.2"
,
"resolved"
:
"https://registry.npmjs.org/mime/-/mime-2.5.2.tgz"
,
"integrity"
:
"sha512-tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg=="
,
"bin"
:
{
"mime"
:
"cli.js"
},
"engines"
:
{
"node"
:
">=4.0.0"
}
},
"node_modules/mime-db"
:
{
"version"
:
"1.49.0"
,
"resolved"
:
"https://registry.npmjs.org/mime-db/-/mime-db-1.49.0.tgz"
,
"integrity"
:
"sha512-CIc8j9URtOVApSFCQIF+VBkX1RwXp/oMMOrqdyXSBXq5RWNEsRfyj1kiRnQgmNXmHxPoFIxOroKA3zcU9P+nAA=="
,
"engines"
:
{
"node"
:
">= 0.6"
}
},
"node_modules/mime-types"
:
{
"version"
:
"2.1.32"
,
"resolved"
:
"https://registry.npmjs.org/mime-types/-/mime-types-2.1.32.tgz"
,
"integrity"
:
"sha512-hJGaVS4G4c9TSMYh2n6SQAGrC4RnfU+daP8G7cSCmaqNjiOoUY0VHCMS42pxnQmVF1GWwFhbHWn3RIxCqTmZ9A=="
,
"node_modules/mime-types"
:
{
"version"
:
"2.1.32"
,
"resolved"
:
"https://registry.npmjs.org/mime-types/-/mime-types-2.1.32.tgz"
,
"integrity"
:
"sha512-hJGaVS4G4c9TSMYh2n6SQAGrC4RnfU+daP8G7cSCmaqNjiOoUY0VHCMS42pxnQmVF1GWwFhbHWn3RIxCqTmZ9A=="
,
"dependencies"
:
{
"mime-db"
:
"1.49.0"
},
...
...
@@ -2233,6 +2672,15 @@
"node"
:
">= 6.0.0"
}
},
"node_modules/object-hash"
:
{
"version"
:
"2.2.0"
,
"resolved"
:
"https://registry.npmjs.org/object-hash/-/object-hash-2.2.0.tgz"
,
"integrity"
:
"sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw=="
,
"optional"
:
true
,
"engines"
:
{
"node"
:
">= 6"
}
},
"node_modules/object-inspect"
:
{
"version"
:
"1.11.0"
,
"resolved"
:
"https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.0.tgz"
,
...
...
@@ -2315,6 +2763,39 @@
"url"
:
"https://github.com/sponsors/sindresorhus"
}
},
"node_modules/p-locate"
:
{
"version"
:
"3.0.0"
,
"resolved"
:
"https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz"
,
"integrity"
:
"sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ=="
,
"dependencies"
:
{
"p-limit"
:
"^2.0.0"
},
"engines"
:
{
"node"
:
">=6"
}
},
"node_modules/p-locate/node_modules/p-limit"
:
{
"version"
:
"2.3.0"
,
"resolved"
:
"https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz"
,
"integrity"
:
"sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w=="
,
"dependencies"
:
{
"p-try"
:
"^2.0.0"
},
"engines"
:
{
"node"
:
">=6"
},
"funding"
:
{
"url"
:
"https://github.com/sponsors/sindresorhus"
}
},
"node_modules/p-try"
:
{
"version"
:
"2.2.0"
,
"resolved"
:
"https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz"
,
"integrity"
:
"sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ=="
,
"engines"
:
{
"node"
:
">=6"
}
},
"node_modules/parent-module"
:
{
"version"
:
"1.0.1"
,
"resolved"
:
"https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz"
,
...
...
@@ -2332,6 +2813,14 @@
"resolved"
:
"https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz"
,
"integrity"
:
"sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA="
},
"node_modules/path-exists"
:
{
"version"
:
"3.0.0"
,
"resolved"
:
"https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz"
,
"integrity"
:
"sha1-zg6+ql94yxiSXqfYENe1mwEP1RU="
,
"engines"
:
{
"node"
:
">=4"
}
},
"node_modules/path-is-absolute"
:
{
"version"
:
"1.0.1"
,
"resolved"
:
"https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz"
,
...
...
@@ -2349,6 +2838,14 @@
"node"
:
">=8"
}
},
"node_modules/pngjs"
:
{
"version"
:
"3.4.0"
,
"resolved"
:
"https://registry.npmjs.org/pngjs/-/pngjs-3.4.0.tgz"
,
"integrity"
:
"sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w=="
,
"engines"
:
{
"node"
:
">=4.0.0"
}
},
"node_modules/prelude-ls"
:
{
"version"
:
"1.2.1"
,
"resolved"
:
"https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz"
,
...
...
@@ -2446,6 +2943,154 @@
"node"
:
">=6"
}
},
"node_modules/qrcode"
:
{
"version"
:
"1.4.4"
,
"resolved"
:
"https://registry.npmjs.org/qrcode/-/qrcode-1.4.4.tgz"
,
"integrity"
:
"sha512-oLzEC5+NKFou9P0bMj5+v6Z40evexeE29Z9cummZXZ9QXyMr3lphkURzxjXgPJC5azpxcshoDWV1xE46z+/c3Q=="
,
"dependencies"
:
{
"buffer"
:
"^5.4.3"
,
"buffer-alloc"
:
"^1.2.0"
,
"buffer-from"
:
"^1.1.1"
,
"dijkstrajs"
:
"^1.0.1"
,
"isarray"
:
"^2.0.1"
,
"pngjs"
:
"^3.3.0"
,
"yargs"
:
"^13.2.4"
},
"bin"
:
{
"qrcode"
:
"bin/qrcode"
},
"engines"
:
{
"node"
:
">=4"
}
},
"node_modules/qrcode/node_modules/ansi-regex"
:
{
"version"
:
"4.1.0"
,
"resolved"
:
"https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz"
,
"integrity"
:
"sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg=="
,
"engines"
:
{
"node"
:
">=6"
}
},
"node_modules/qrcode/node_modules/ansi-styles"
:
{
"version"
:
"3.2.1"
,
"resolved"
:
"https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz"
,
"integrity"
:
"sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA=="
,
"dependencies"
:
{
"color-convert"
:
"^1.9.0"
},
"engines"
:
{
"node"
:
">=4"
}
},
"node_modules/qrcode/node_modules/cliui"
:
{
"version"
:
"5.0.0"
,
"resolved"
:
"https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz"
,
"integrity"
:
"sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA=="
,
"dependencies"
:
{
"string-width"
:
"^3.1.0"
,
"strip-ansi"
:
"^5.2.0"
,
"wrap-ansi"
:
"^5.1.0"
}
},
"node_modules/qrcode/node_modules/color-convert"
:
{
"version"
:
"1.9.3"
,
"resolved"
:
"https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz"
,
"integrity"
:
"sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg=="
,
"dependencies"
:
{
"color-name"
:
"1.1.3"
}
},
"node_modules/qrcode/node_modules/color-name"
:
{
"version"
:
"1.1.3"
,
"resolved"
:
"https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz"
,
"integrity"
:
"sha1-p9BVi9icQveV3UIyj3QIMcpTvCU="
},
"node_modules/qrcode/node_modules/emoji-regex"
:
{
"version"
:
"7.0.3"
,
"resolved"
:
"https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz"
,
"integrity"
:
"sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA=="
},
"node_modules/qrcode/node_modules/is-fullwidth-code-point"
:
{
"version"
:
"2.0.0"
,
"resolved"
:
"https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz"
,
"integrity"
:
"sha1-o7MKXE8ZkYMWeqq5O+764937ZU8="
,
"engines"
:
{
"node"
:
">=4"
}
},
"node_modules/qrcode/node_modules/isarray"
:
{
"version"
:
"2.0.5"
,
"resolved"
:
"https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz"
,
"integrity"
:
"sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw=="
},
"node_modules/qrcode/node_modules/string-width"
:
{
"version"
:
"3.1.0"
,
"resolved"
:
"https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz"
,
"integrity"
:
"sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w=="
,
"dependencies"
:
{
"emoji-regex"
:
"^7.0.1"
,
"is-fullwidth-code-point"
:
"^2.0.0"
,
"strip-ansi"
:
"^5.1.0"
},
"engines"
:
{
"node"
:
">=6"
}
},
"node_modules/qrcode/node_modules/strip-ansi"
:
{
"version"
:
"5.2.0"
,
"resolved"
:
"https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz"
,
"integrity"
:
"sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA=="
,
"dependencies"
:
{
"ansi-regex"
:
"^4.1.0"
},
"engines"
:
{
"node"
:
">=6"
}
},
"node_modules/qrcode/node_modules/wrap-ansi"
:
{
"version"
:
"5.1.0"
,
"resolved"
:
"https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz"
,
"integrity"
:
"sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q=="
,
"dependencies"
:
{
"ansi-styles"
:
"^3.2.0"
,
"string-width"
:
"^3.0.0"
,
"strip-ansi"
:
"^5.0.0"
},
"engines"
:
{
"node"
:
">=6"
}
},
"node_modules/qrcode/node_modules/y18n"
:
{
"version"
:
"4.0.3"
,
"resolved"
:
"https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz"
,
"integrity"
:
"sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ=="
},
"node_modules/qrcode/node_modules/yargs"
:
{
"version"
:
"13.3.2"
,
"resolved"
:
"https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz"
,
"integrity"
:
"sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw=="
,
"dependencies"
:
{
"cliui"
:
"^5.0.0"
,
"find-up"
:
"^3.0.0"
,
"get-caller-file"
:
"^2.0.1"
,
"require-directory"
:
"^2.1.1"
,
"require-main-filename"
:
"^2.0.0"
,
"set-blocking"
:
"^2.0.0"
,
"string-width"
:
"^3.0.0"
,
"which-module"
:
"^2.0.0"
,
"y18n"
:
"^4.0.0"
,
"yargs-parser"
:
"^13.1.2"
}
},
"node_modules/qrcode/node_modules/yargs-parser"
:
{
"version"
:
"13.1.2"
,
"resolved"
:
"https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz"
,
"integrity"
:
"sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg=="
,
"dependencies"
:
{
"camelcase"
:
"^5.0.0"
,
"decamelize"
:
"^1.2.0"
}
},
"node_modules/qs"
:
{
"version"
:
"6.10.1"
,
"resolved"
:
"https://registry.npmjs.org/qs/-/qs-6.10.1.tgz"
,
...
...
@@ -2513,7 +3158,6 @@
"version"
:
"2.1.1"
,
"resolved"
:
"https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz"
,
"integrity"
:
"sha1-jGStX9MNqxyXbiNE/+f3kqam30I="
,
"optional"
:
true
,
"engines"
:
{
"node"
:
">=0.10.0"
}
...
...
@@ -2527,6 +3171,11 @@
"node"
:
">=0.10.0"
}
},
"node_modules/require-main-filename"
:
{
"version"
:
"2.0.0"
,
"resolved"
:
"https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz"
,
"integrity"
:
"sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg=="
},
"node_modules/resolve-from"
:
{
"version"
:
"4.0.0"
,
"resolved"
:
"https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz"
,
...
...
@@ -2610,6 +3259,11 @@
"node"
:
">=10"
}
},
"node_modules/set-blocking"
:
{
"version"
:
"2.0.0"
,
"resolved"
:
"https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz"
,
"integrity"
:
"sha1-BF+XgtARrppoA93TgrJDkrPYkPc="
},
"node_modules/setprototypeof"
:
{
"version"
:
"1.1.1"
,
"resolved"
:
"https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz"
,
...
...
@@ -2907,6 +3561,11 @@
"node"
:
">=0.6"
}
},
"node_modules/tslib"
:
{
"version"
:
"2.3.1"
,
"resolved"
:
"https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz"
,
"integrity"
:
"sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw=="
},
"node_modules/type-check"
:
{
"version"
:
"0.4.0"
,
"resolved"
:
"https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz"
,
...
...
@@ -3028,6 +3687,27 @@
"node"
:
">= 0.8"
}
},
"node_modules/websocket-driver"
:
{
"version"
:
"0.7.4"
,
"resolved"
:
"https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz"
,
"integrity"
:
"sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg=="
,
"dependencies"
:
{
"http-parser-js"
:
">=0.5.1"
,
"safe-buffer"
:
">=5.1.0"
,
"websocket-extensions"
:
">=0.1.1"
},
"engines"
:
{
"node"
:
">=0.8.0"
}
},
"node_modules/websocket-extensions"
:
{
"version"
:
"0.1.4"
,
"resolved"
:
"https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz"
,
"integrity"
:
"sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg=="
,
"engines"
:
{
"node"
:
">=0.8.0"
}
},
"node_modules/which"
:
{
"version"
:
"2.0.2"
,
"resolved"
:
"https://registry.npmjs.org/which/-/which-2.0.2.tgz"
,
...
...
@@ -3043,6 +3723,11 @@
"node"
:
">= 8"
}
},
"node_modules/which-module"
:
{
"version"
:
"2.0.0"
,
"resolved"
:
"https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz"
,
"integrity"
:
"sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho="
},
"node_modules/word-wrap"
:
{
"version"
:
"1.2.3"
,
"resolved"
:
"https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz"
,
...
...
@@ -3121,11 +3806,47 @@
"node"
:
">=0.4"
}
},
"node_modules/y18n"
:
{
"version"
:
"5.0.8"
,
"resolved"
:
"https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz"
,
"integrity"
:
"sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA=="
,
"optional"
:
true
,
"engines"
:
{
"node"
:
">=10"
}
},
"node_modules/yallist"
:
{
"version"
:
"4.0.0"
,
"resolved"
:
"https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz"
,
"integrity"
:
"sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
},
"node_modules/yargs"
:
{
"version"
:
"16.2.0"
,
"resolved"
:
"https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz"
,
"integrity"
:
"sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw=="
,
"optional"
:
true
,
"dependencies"
:
{
"cliui"
:
"^7.0.2"
,
"escalade"
:
"^3.1.1"
,
"get-caller-file"
:
"^2.0.5"
,
"require-directory"
:
"^2.1.1"
,
"string-width"
:
"^4.2.0"
,
"y18n"
:
"^5.0.5"
,
"yargs-parser"
:
"^20.2.2"
},
"engines"
:
{
"node"
:
">=10"
}
},
"node_modules/yargs-parser"
:
{
"version"
:
"20.2.9"
,
"resolved"
:
"https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz"
,
"integrity"
:
"sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w=="
,
"optional"
:
true
,
"engines"
:
{
"node"
:
">=10"
}
},
"node_modules/yocto-queue"
:
{
"version"
:
"0.1.0"
,
"resolved"
:
"https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz"
,
...
...
@@ -3240,6 +3961,69 @@
"strip-json-comments"
:
"^3.1.1"
}
},
"@firebase/app-types"
:
{
"version"
:
"0.7.0"
,
"resolved"
:
"https://registry.npmjs.org/@firebase/app-types/-/app-types-0.7.0.tgz"
,
"integrity"
:
"sha512-6fbHQwDv2jp/v6bXhBw2eSRbNBpxHcd1NBF864UksSMVIqIyri9qpJB1Mn6sGZE+bnDsSQBC5j2TbMxYsJQkQg=="
,
"peer"
:
true
},
"@firebase/auth-interop-types"
:
{
"version"
:
"0.1.6"
,
"resolved"
:
"https://registry.npmjs.org/@firebase/auth-interop-types/-/auth-interop-types-0.1.6.tgz"
,
"integrity"
:
"sha512-etIi92fW3CctsmR9e3sYM3Uqnoq861M0Id9mdOPF6PWIg38BXL5k4upCNBggGUpLIS0H1grMOvy/wn1xymwe2g=="
,
"requires"
:
{}
},
"@firebase/component"
:
{
"version"
:
"0.5.5"
,
"resolved"
:
"https://registry.npmjs.org/@firebase/component/-/component-0.5.5.tgz"
,
"integrity"
:
"sha512-L41SdS/4a164jx2iGfakJgaBUPPBI3DI+RrUlmh3oHSUljTeCwfj/Nhcv3S7e2lyXsGFJtAyepfPUx4IQ05crw=="
,
"requires"
:
{
"@firebase/util"
:
"1.2.0"
,
"tslib"
:
"^2.1.0"
}
},
"@firebase/database"
:
{
"version"
:
"0.10.9"
,
"resolved"
:
"https://registry.npmjs.org/@firebase/database/-/database-0.10.9.tgz"
,
"integrity"
:
"sha512-Jxi9SiE4cNOftO9YKlG71ccyWFw4kSM9AG/xYu6vWXUGBr39Uw1TvYougANOcU21Q0TP4J08VPGnOnpXk/FGbQ=="
,
"requires"
:
{
"@firebase/auth-interop-types"
:
"0.1.6"
,
"@firebase/component"
:
"0.5.5"
,
"@firebase/database-types"
:
"0.7.3"
,
"@firebase/logger"
:
"0.2.6"
,
"@firebase/util"
:
"1.2.0"
,
"faye-websocket"
:
"0.11.3"
,
"tslib"
:
"^2.1.0"
}
},
"@firebase/database-types"
:
{
"version"
:
"0.7.3"
,
"resolved"
:
"https://registry.npmjs.org/@firebase/database-types/-/database-types-0.7.3.tgz"
,
"integrity"
:
"sha512-dSOJmhKQ0nL8O4EQMRNGpSExWCXeHtH57gGg0BfNAdWcKhC8/4Y+qfKLfWXzyHvrSecpLmO0SmAi/iK2D5fp5A=="
,
"requires"
:
{
"@firebase/app-types"
:
"0.6.3"
},
"dependencies"
:
{
"@firebase/app-types"
:
{
"version"
:
"0.6.3"
,
"resolved"
:
"https://registry.npmjs.org/@firebase/app-types/-/app-types-0.6.3.tgz"
,
"integrity"
:
"sha512-/M13DPPati7FQHEQ9Minjk1HGLm/4K4gs9bR4rzLCWJg64yGtVC0zNg9gDpkw9yc2cvol/mNFxqTtd4geGrwdw=="
}
}
},
"@firebase/logger"
:
{
"version"
:
"0.2.6"
,
"resolved"
:
"https://registry.npmjs.org/@firebase/logger/-/logger-0.2.6.tgz"
,
"integrity"
:
"sha512-KIxcUvW/cRGWlzK9Vd2KB864HlUnCfdTH0taHE0sXW5Xl7+W68suaeau1oKNEqmc3l45azkd4NzXTCWZRZdXrw=="
},
"@firebase/util"
:
{
"version"
:
"1.2.0"
,
"resolved"
:
"https://registry.npmjs.org/@firebase/util/-/util-1.2.0.tgz"
,
"integrity"
:
"sha512-8W9TTGImXr9cu+oyjBJ7yjoEd/IVAv0pBZA4c1uIuKrpGZi2ee38m+8xlZOBRmsAaOU/tR9DXz1WF/oeM6Fb7Q=="
,
"requires"
:
{
"tslib"
:
"^2.1.0"
}
},
"@google-cloud/common"
:
{
"version"
:
"3.7.2"
,
"resolved"
:
"https://registry.npmjs.org/@google-cloud/common/-/common-3.7.2.tgz"
,
...
...
@@ -3269,6 +4053,18 @@
}
}
},
"@google-cloud/firestore"
:
{
"version"
:
"4.15.1"
,
"resolved"
:
"https://registry.npmjs.org/@google-cloud/firestore/-/firestore-4.15.1.tgz"
,
"integrity"
:
"sha512-2PWsCkEF1W02QbghSeRsNdYKN1qavrHBP3m72gPDMHQSYrGULOaTi7fSJquQmAtc4iPVB2/x6h80rdLHTATQtA=="
,
"optional"
:
true
,
"requires"
:
{
"fast-deep-equal"
:
"^3.1.1"
,
"functional-red-black-tree"
:
"^1.0.1"
,
"google-gax"
:
"^2.24.1"
,
"protobufjs"
:
"^6.8.6"
}
},
"@google-cloud/paginator"
:
{
"version"
:
"3.0.6"
,
"resolved"
:
"https://registry.npmjs.org/@google-cloud/paginator/-/paginator-3.0.6.tgz"
,
...
...
@@ -3337,6 +4133,28 @@
}
}
},
"@grpc/grpc-js"
:
{
"version"
:
"1.3.7"
,
"resolved"
:
"https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.3.7.tgz"
,
"integrity"
:
"sha512-CKQVuwuSPh40tgOkR7c0ZisxYRiN05PcKPW72mQL5y++qd7CwBRoaJZvU5xfXnCJDFBmS3qZGQ71Frx6Ofo2XA=="
,
"optional"
:
true
,
"requires"
:
{
"@types/node"
:
">=12.12.47"
}
},
"@grpc/proto-loader"
:
{
"version"
:
"0.6.5"
,
"resolved"
:
"https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.6.5.tgz"
,
"integrity"
:
"sha512-GZdzyVQI1Bln/kCzIYgTKu+rQJ5dno0gVrfmLe4jqQu7T2e7svSwJzpCBqVU5hhBSJP3peuPjOMWsj5GR61YmQ=="
,
"optional"
:
true
,
"requires"
:
{
"@types/long"
:
"^4.0.1"
,
"lodash.camelcase"
:
"^4.3.0"
,
"long"
:
"^4.0.0"
,
"protobufjs"
:
"^6.10.0"
,
"yargs"
:
"^16.1.1"
}
},
"@humanwhocodes/config-array"
:
{
"version"
:
"0.5.0"
,
"resolved"
:
"https://registry.npmjs.org/@humanwhocodes/config-array/-/config-array-0.5.0.tgz"
,
...
...
@@ -3362,11 +4180,135 @@
"vary"
:
"^1.1.2"
}
},
"@panva/asn1.js"
:
{
"version"
:
"1.0.0"
,
"resolved"
:
"https://registry.npmjs.org/@panva/asn1.js/-/asn1.js-1.0.0.tgz"
,
"integrity"
:
"sha512-UdkG3mLEqXgnlKsWanWcgb6dOjUzJ+XC5f+aWw30qrtjxeNUSfKX1cd5FBzOaXQumoe9nIqeZUvrRJS03HCCtw=="
},
"@protobufjs/aspromise"
:
{
"version"
:
"1.1.2"
,
"resolved"
:
"https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz"
,
"integrity"
:
"sha1-m4sMxmPWaafY9vXQiToU00jzD78="
,
"optional"
:
true
},
"@protobufjs/base64"
:
{
"version"
:
"1.1.2"
,
"resolved"
:
"https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz"
,
"integrity"
:
"sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg=="
,
"optional"
:
true
},
"@protobufjs/codegen"
:
{
"version"
:
"2.0.4"
,
"resolved"
:
"https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz"
,
"integrity"
:
"sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg=="
,
"optional"
:
true
},
"@protobufjs/eventemitter"
:
{
"version"
:
"1.1.0"
,
"resolved"
:
"https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz"
,
"integrity"
:
"sha1-NVy8mLr61ZePntCV85diHx0Ga3A="
,
"optional"
:
true
},
"@protobufjs/fetch"
:
{
"version"
:
"1.1.0"
,
"resolved"
:
"https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz"
,
"integrity"
:
"sha1-upn7WYYUr2VwDBYZ/wbUVLDYTEU="
,
"optional"
:
true
,
"requires"
:
{
"@protobufjs/aspromise"
:
"^1.1.1"
,
"@protobufjs/inquire"
:
"^1.1.0"
}
},
"@protobufjs/float"
:
{
"version"
:
"1.0.2"
,
"resolved"
:
"https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz"
,
"integrity"
:
"sha1-Xp4avctz/Ap8uLKR33jIy9l7h9E="
,
"optional"
:
true
},
"@protobufjs/inquire"
:
{
"version"
:
"1.1.0"
,
"resolved"
:
"https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz"
,
"integrity"
:
"sha1-/yAOPnzyQp4tyvwRQIKOjMY48Ik="
,
"optional"
:
true
},
"@protobufjs/path"
:
{
"version"
:
"1.1.2"
,
"resolved"
:
"https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz"
,
"integrity"
:
"sha1-bMKyDFya1q0NzP0hynZz2Nf79o0="
,
"optional"
:
true
},
"@protobufjs/pool"
:
{
"version"
:
"1.1.0"
,
"resolved"
:
"https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz"
,
"integrity"
:
"sha1-Cf0V8tbTq/qbZbw2ZQbWrXhG/1Q="
,
"optional"
:
true
},
"@protobufjs/utf8"
:
{
"version"
:
"1.1.0"
,
"resolved"
:
"https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz"
,
"integrity"
:
"sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA="
,
"optional"
:
true
},
"@tootallnate/once"
:
{
"version"
:
"1.1.2"
,
"resolved"
:
"https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz"
,
"integrity"
:
"sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw=="
},
"@types/body-parser"
:
{
"version"
:
"1.19.1"
,
"resolved"
:
"https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.1.tgz"
,
"integrity"
:
"sha512-a6bTJ21vFOGIkwM0kzh9Yr89ziVxq4vYH2fQ6N8AeipEzai/cFK6aGMArIkUeIdRIgpwQa+2bXiLuUJCpSf2Cg=="
,
"requires"
:
{
"@types/connect"
:
"*"
,
"@types/node"
:
"*"
}
},
"@types/connect"
:
{
"version"
:
"3.4.35"
,
"resolved"
:
"https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz"
,
"integrity"
:
"sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ=="
,
"requires"
:
{
"@types/node"
:
"*"
}
},
"@types/express"
:
{
"version"
:
"4.17.13"
,
"resolved"
:
"https://registry.npmjs.org/@types/express/-/express-4.17.13.tgz"
,
"integrity"
:
"sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA=="
,
"requires"
:
{
"@types/body-parser"
:
"*"
,
"@types/express-serve-static-core"
:
"^4.17.18"
,
"@types/qs"
:
"*"
,
"@types/serve-static"
:
"*"
}
},
"@types/express-jwt"
:
{
"version"
:
"0.0.42"
,
"resolved"
:
"https://registry.npmjs.org/@types/express-jwt/-/express-jwt-0.0.42.tgz"
,
"integrity"
:
"sha512-WszgUddvM1t5dPpJ3LhWNH8kfNN8GPIBrAGxgIYXVCEGx6Bx4A036aAuf/r5WH9DIEdlmp7gHOYvSM6U87B0ag=="
,
"requires"
:
{
"@types/express"
:
"*"
,
"@types/express-unless"
:
"*"
}
},
"@types/express-serve-static-core"
:
{
"version"
:
"4.17.24"
,
"resolved"
:
"https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.24.tgz"
,
"integrity"
:
"sha512-3UJuW+Qxhzwjq3xhwXm2onQcFHn76frIYVbTu+kn24LFxI+dEhdfISDFovPB8VpEgW8oQCTpRuCe+0zJxB7NEA=="
,
"requires"
:
{
"@types/node"
:
"*"
,
"@types/qs"
:
"*"
,
"@types/range-parser"
:
"*"
}
},
"@types/express-unless"
:
{
"version"
:
"0.5.2"
,
"resolved"
:
"https://registry.npmjs.org/@types/express-unless/-/express-unless-0.5.2.tgz"
,
"integrity"
:
"sha512-Q74UyYRX/zIgl1HSp9tUX2PlG8glkVm+59r7aK4KGKzC5jqKIOX6rrVLRQrzpZUQ84VukHtRoeAuon2nIssHPQ=="
,
"requires"
:
{
"@types/express"
:
"*"
}
},
"@types/formidable"
:
{
"version"
:
"1.2.4"
,
"resolved"
:
"https://registry.npmjs.org/@types/formidable/-/formidable-1.2.4.tgz"
,
...
...
@@ -3375,11 +4317,41 @@
"@types/node"
:
"*"
}
},
"@types/long"
:
{
"version"
:
"4.0.1"
,
"resolved"
:
"https://registry.npmjs.org/@types/long/-/long-4.0.1.tgz"
,
"integrity"
:
"sha512-5tXH6Bx/kNGd3MgffdmP4dy2Z+G4eaXw0SE81Tq3BNadtnMR5/ySMzX4SLEzHJzSmPNn4HIdpQsBvXMUykr58w=="
,
"optional"
:
true
},
"@types/mime"
:
{
"version"
:
"1.3.2"
,
"resolved"
:
"https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz"
,
"integrity"
:
"sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw=="
},
"@types/node"
:
{
"version"
:
"16.9.2"
,
"resolved"
:
"https://registry.npmjs.org/@types/node/-/node-16.9.2.tgz"
,
"integrity"
:
"sha512-ZHty/hKoOLZvSz6BtP1g7tc7nUeJhoCf3flLjh8ZEv1vFKBWHXcnMbJMyN/pftSljNyy0kNW/UqI3DccnBnZ8w=="
},
"@types/qs"
:
{
"version"
:
"6.9.7"
,
"resolved"
:
"https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz"
,
"integrity"
:
"sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw=="
},
"@types/range-parser"
:
{
"version"
:
"1.2.4"
,
"resolved"
:
"https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz"
,
"integrity"
:
"sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw=="
},
"@types/serve-static"
:
{
"version"
:
"1.13.10"
,
"resolved"
:
"https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.10.tgz"
,
"integrity"
:
"sha512-nCkHGI4w7ZgAdNkrEu0bv+4xNV/XDqW+DydknebMOQwkpDGx8G+HTlj7R7ABI8i8nKxVw0wtKPi1D+lPOkh4YQ=="
,
"requires"
:
{
"@types/mime"
:
"^1"
,
"@types/node"
:
"*"
}
},
"abort-controller"
:
{
"version"
:
"3.0.0"
,
"resolved"
:
"https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz"
,
...
...
@@ -3513,11 +4485,30 @@
"ieee754"
:
"^1.1.13"
}
},
"buffer-alloc"
:
{
"version"
:
"1.2.0"
,
"resolved"
:
"https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz"
,
"integrity"
:
"sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow=="
,
"requires"
:
{
"buffer-alloc-unsafe"
:
"^1.1.0"
,
"buffer-fill"
:
"^1.0.0"
}
},
"buffer-alloc-unsafe"
:
{
"version"
:
"1.1.0"
,
"resolved"
:
"https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz"
,
"integrity"
:
"sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg=="
},
"buffer-equal-constant-time"
:
{
"version"
:
"1.0.1"
,
"resolved"
:
"https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz"
,
"integrity"
:
"sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk="
},
"buffer-fill"
:
{
"version"
:
"1.0.0"
,
"resolved"
:
"https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz"
,
"integrity"
:
"sha1-+PeLdniYiO858gXNY39o5wISKyw="
},
"buffer-from"
:
{
"version"
:
"1.1.1"
,
"resolved"
:
"https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz"
,
...
...
@@ -3581,6 +4572,11 @@
"integrity"
:
"sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ=="
,
"dev"
:
true
},
"camelcase"
:
{
"version"
:
"5.3.1"
,
"resolved"
:
"https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz"
,
"integrity"
:
"sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg=="
},
"chalk"
:
{
"version"
:
"4.1.2"
,
"resolved"
:
"https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz"
,
...
...
@@ -3591,6 +4587,17 @@
"supports-color"
:
"^7.1.0"
}
},
"cliui"
:
{
"version"
:
"7.0.4"
,
"resolved"
:
"https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz"
,
"integrity"
:
"sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ=="
,
"optional"
:
true
,
"requires"
:
{
"string-width"
:
"^4.2.0"
,
"strip-ansi"
:
"^6.0.0"
,
"wrap-ansi"
:
"^7.0.0"
}
},
"co-body"
:
{
"version"
:
"5.2.0"
,
"resolved"
:
"https://registry.npmjs.org/co-body/-/co-body-5.2.0.tgz"
,
...
...
@@ -3697,6 +4704,11 @@
"ms"
:
"2.1.2"
}
},
"decamelize"
:
{
"version"
:
"1.2.0"
,
"resolved"
:
"https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz"
,
"integrity"
:
"sha1-9lNNFRSCabIDUue+4m9QH5oZEpA="
},
"deep-is"
:
{
"version"
:
"0.1.3"
,
"resolved"
:
"https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz"
,
...
...
@@ -3708,6 +4720,19 @@
"resolved"
:
"https://registry.npmjs.org/depd/-/depd-1.1.2.tgz"
,
"integrity"
:
"sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak="
},
"dicer"
:
{
"version"
:
"0.3.0"
,
"resolved"
:
"https://registry.npmjs.org/dicer/-/dicer-0.3.0.tgz"
,
"integrity"
:
"sha512-MdceRRWqltEG2dZqO769g27N/3PXfcKl04VhYnBlo2YhH7zPi88VebsjTKclaOyiuMaGU72hTfw3VkUitGcVCA=="
,
"requires"
:
{
"streamsearch"
:
"0.1.2"
}
},
"dijkstrajs"
:
{
"version"
:
"1.0.2"
,
"resolved"
:
"https://registry.npmjs.org/dijkstrajs/-/dijkstrajs-1.0.2.tgz"
,
"integrity"
:
"sha512-QV6PMaHTCNmKSeP6QoXhVTw9snc9VD8MulTT0Bd99Pacp4SS1cjcrYPgBPmibqKVtMJJfqC6XvOXgPMEEPH/fg=="
},
"doctrine"
:
{
"version"
:
"3.0.0"
,
"resolved"
:
"https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz"
,
...
...
@@ -3801,6 +4826,12 @@
"resolved"
:
"https://registry.npmjs.org/ent/-/ent-2.2.0.tgz"
,
"integrity"
:
"sha1-6WQhkyWiHQX0RGai9obtbOX13R0="
},
"escalade"
:
{
"version"
:
"3.1.1"
,
"resolved"
:
"https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz"
,
"integrity"
:
"sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw=="
,
"optional"
:
true
},
"escape-string-regexp"
:
{
"version"
:
"4.0.0"
,
"resolved"
:
"https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz"
,
...
...
@@ -4012,142 +5043,83 @@
"resolved"
:
"https://registry.npmjs.org/fast-text-encoding/-/fast-text-encoding-1.0.3.tgz"
,
"integrity"
:
"sha512-dtm4QZH9nZtcDt8qJiOH9fcQd1NAgi+K1O2DbE6GG1PPCK/BWfOH3idCTRQ4ImXRUOyopDEgDEnVEE7Y/2Wrig=="
},
"faye-websocket"
:
{
"version"
:
"0.11.3"
,
"resolved"
:
"https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.3.tgz"
,
"integrity"
:
"sha512-D2y4bovYpzziGgbHYtGCMjlJM36vAl/y+xUyn1C+FVx8szd1E+86KwVw6XvYSzOP8iMpm1X0I4xJD+QtUb36OA=="
,
"requires"
:
{
"websocket-driver"
:
">=0.5.1"
}
},
"file-entry-cache"
:
{
"version"
:
"6.0.1"
,
"resolved"
:
"https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-6.0.1.tgz"
,
"integrity"
:
"sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg=="
,
"dev"
:
true
,
"requires"
:
{
"flat-cache"
:
"^3.0.4"
}
},
"firebase-admin"
:
{
"version"
:
"9.11.1"
,
"resolved"
:
"https://registry.npmjs.org/firebase-admin/-/firebase-admin-9.11.1.tgz"
,
"integrity"
:
"sha512-Y9fjelljy6MKqwsSbM/UN1k8gBQh5zfm5fCTe0Z6Gch2T3nDUIPsTcf+jfe4o40/MPYuybili9XJjTMmM2e5MQ=="
,
"requires"
:
{
"@firebase/database"
:
"^0.10.0"
,
"@firebase/database-types"
:
"^0.7.2"
,
"@google-cloud/firestore"
:
"^4.5.0"
,
"@google-cloud/storage"
:
"^5.3.0"
,
"@types/node"
:
">=12.12.47"
,
"dicer"
:
"^0.3.0"
,
"jsonwebtoken"
:
"^8.5.1"
,
"jwks-rsa"
:
"^2.0.2"
,
"node-forge"
:
"^0.10.0"
}
},
"flat-cache"
:
{
"version"
:
"3.0.4"
,
"resolved"
:
"https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz"
,
"integrity"
:
"sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg=="
,
"dev"
:
true
,
"requires"
:
{
"flatted"
:
"^3.1.0"
,
"rimraf"
:
"^3.0.2"
}
},
"flatted"
:
{
"version"
:
"3.2.2"
,
"resolved"
:
"https://registry.npmjs.org/flatted/-/flatted-3.2.2.tgz"
,
"integrity"
:
"sha512-JaTY/wtrcSyvXJl4IMFHPKyFur1sE9AUqc0QnhOaJ0CxHtAoIV8pYDzeEfAaNEtGkOfq4gr3LBFmdXW5mOQFnA=="
,
"dev"
:
true
},
"formidable"
:
{
"version"
:
"1.2.2"
,
"resolved"
:
"https://registry.npmjs.org/formidable/-/formidable-1.2.2.tgz"
,
"integrity"
:
"sha512-V8gLm+41I/8kguQ4/o1D3RIHRmhYFG4pnNyonvua+40rqcEmT4+V71yaZ3B457xbbgCsCfjSPi65u/W6vK1U5Q=="
},
"fs.realpath"
:
{
"version"
:
"1.0.0"
,
"resolved"
:
"https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz"
,
"integrity"
:
"sha1-FQStJSMVjKpA20onh8sBQRmU6k8="
},
"function-bind"
:
{
"version"
:
"1.1.1"
,
"resolved"
:
"https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz"
,
"integrity"
:
"sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
},
"functional-red-black-tree"
:
{
"version"
:
"1.0.1"
,
"resolved"
:
"https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz"
,
"integrity"
:
"sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc="
,
"devOptional"
:
true
},
"gaxios"
:
{
"version"
:
"4.3.1"
,
"resolved"
:
"https://registry.npmjs.org/gaxios/-/gaxios-4.3.1.tgz"
,
"integrity"
:
"sha512-9qXV7yrMCGzTrphl9/YGMVH41oSg0rhn1j3wJWed4Oqk45/hXDD2wBT5J1NjQcqTCcv4g3nFnyQ7reSRHNgBgw=="
,
"optional"
:
true
,
"requires"
:
{
"abort-controller"
:
"^3.0.0"
,
"extend"
:
"^3.0.2"
,
"https-proxy-agent"
:
"^5.0.0"
,
"is-stream"
:
"^2.0.0"
,
"node-fetch"
:
"^2.6.1"
}
},
"gcp-metadata"
:
{
"version"
:
"4.3.1"
,
"resolved"
:
"https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-4.3.1.tgz"
,
"integrity"
:
"sha512-x850LS5N7V1F3UcV7PoupzGsyD6iVwTVvsh3tbXfkctZnBnjW5yu5z1/3k3SehF7TyoTIe78rJs02GMMy+LF+A=="
,
"optional"
:
true
,
"requires"
:
{
"gaxios"
:
"^4.0.0"
,
"json-bigint"
:
"^1.0.0"
}
},
"gcs-resumable-upload"
:
{
"version"
:
"3.3.1"
,
"resolved"
:
"https://registry.npmjs.org/gcs-resumable-upload/-/gcs-resumable-upload-3.3.1.tgz"
,
"integrity"
:
"sha512-WyC0i4VkslIdrdmeM5PNuGzANALLXTG5RoHb08OE30gYT+FEvCDPiA8KOjV2s1wOu9ngEW4+IuzBjtP/ni7UdQ=="
,
"optional"
:
true
,
"requires"
:
{
"abort-controller"
:
"^3.0.0"
,
"configstore"
:
"^5.0.0"
,
"extend"
:
"^3.0.2"
,
"gaxios"
:
"^4.0.0"
,
"google-auth-library"
:
"^7.0.0"
,
"pumpify"
:
"^2.0.0"
,
"stream-events"
:
"^1.0.4"
},
"dependencies"
:
{
"duplexify"
:
{
"version"
:
"4.1.2"
,
"resolved"
:
"https://registry.npmjs.org/duplexify/-/duplexify-4.1.2.tgz"
,
"integrity"
:
"sha512-fz3OjcNCHmRP12MJoZMPglx8m4rrFP8rovnk4vT8Fs+aonZoCwGg10dSsQsfP/E62eZcPTMSMP6686fu9Qlqtw=="
,
"optional"
:
true
,
"requires"
:
{
"end-of-stream"
:
"^1.4.1"
,
"inherits"
:
"^2.0.3"
,
"readable-stream"
:
"^3.1.1"
,
"stream-shift"
:
"^1.0.0"
"flat-cache"
:
"^3.0.4"
}
},
"pumpify"
:
{
"version"
:
"2.0.1"
,
"resolved"
:
"https://registry.npmjs.org/pumpify/-/pumpify-2.0.1.tgz"
,
"integrity"
:
"sha512-m7KOje7jZxrmutanlkS1daj1dS6z6BgslzOXmcSEpIlCxM3VJH7lG5QLeck/6hgF6F4crFf01UtQmNsJfweTAw=="
,
"optional"
:
true
,
"find-up"
:
{
"version"
:
"3.0.0"
,
"resolved"
:
"https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz"
,
"integrity"
:
"sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg=="
,
"requires"
:
{
"duplexify"
:
"^4.1.1"
,
"inherits"
:
"^2.0.3"
,
"pump"
:
"^3.0.0"
"locate-path"
:
"^3.0.0"
}
},
"firebase-admin"
:
{
"version"
:
"9.11.1"
,
"resolved"
:
"https://registry.npmjs.org/firebase-admin/-/firebase-admin-9.11.1.tgz"
,
"integrity"
:
"sha512-Y9fjelljy6MKqwsSbM/UN1k8gBQh5zfm5fCTe0Z6Gch2T3nDUIPsTcf+jfe4o40/MPYuybili9XJjTMmM2e5MQ=="
,
"requires"
:
{
"@firebase/database"
:
"^0.10.0"
,
"@firebase/database-types"
:
"^0.7.2"
,
"@google-cloud/firestore"
:
"^4.5.0"
,
"@google-cloud/storage"
:
"^5.3.0"
,
"@types/node"
:
">=12.12.47"
,
"dicer"
:
"^0.3.0"
,
"jsonwebtoken"
:
"^8.5.1"
,
"jwks-rsa"
:
"^2.0.2"
,
"node-forge"
:
"^0.10.0"
}
},
"flat-cache"
:
{
"version"
:
"3.0.4"
,
"resolved"
:
"https://registry.npmjs.org/flat-cache/-/flat-cache-3.0.4.tgz"
,
"integrity"
:
"sha512-dm9s5Pw7Jc0GvMYbshN6zchCA9RgQlzzEZX3vylR9IqFfS8XciblUXOKfW6SiuJ0e13eDYZoZV5wdrev7P3Nwg=="
,
"dev"
:
true
,
"requires"
:
{
"flatted"
:
"^3.1.0"
,
"rimraf"
:
"^3.0.2"
}
},
"
get-caller-file
"
:
{
"version"
:
"
2.0.5
"
,
"resolved"
:
"https://registry.npmjs.org/
get-caller-file/-/get-caller-file-2.0.5
.tgz"
,
"integrity"
:
"sha512-
DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg
=="
,
"
optional
"
:
true
"
flatted
"
:
{
"version"
:
"
3.2.2
"
,
"resolved"
:
"https://registry.npmjs.org/
flatted/-/flatted-3.2.2
.tgz"
,
"integrity"
:
"sha512-
JaTY/wtrcSyvXJl4IMFHPKyFur1sE9AUqc0QnhOaJ0CxHtAoIV8pYDzeEfAaNEtGkOfq4gr3LBFmdXW5mOQFnA
=="
,
"
dev
"
:
true
},
"get-stream"
:
{
"version"
:
"6.0.1"
,
"resolved"
:
"https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz"
,
"integrity"
:
"sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg=="
,
"optional"
:
true
"formidable"
:
{
"version"
:
"1.2.2"
,
"resolved"
:
"https://registry.npmjs.org/formidable/-/formidable-1.2.2.tgz"
,
"integrity"
:
"sha512-V8gLm+41I/8kguQ4/o1D3RIHRmhYFG4pnNyonvua+40rqcEmT4+V71yaZ3B457xbbgCsCfjSPi65u/W6vK1U5Q=="
},
"fs.realpath"
:
{
"version"
:
"1.0.0"
,
"resolved"
:
"https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz"
,
"integrity"
:
"sha1-FQStJSMVjKpA20onh8sBQRmU6k8="
},
"function-bind"
:
{
"version"
:
"1.1.1"
,
"resolved"
:
"https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz"
,
"integrity"
:
"sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
},
"functional-red-black-tree"
:
{
"version"
:
"1.0.1"
,
"resolved"
:
"https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz"
,
"integrity"
:
"sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc="
,
"devOptional"
:
true
},
"gaxios"
:
{
"version"
:
"4.3.2"
,
...
...
@@ -4207,6 +5179,11 @@
}
}
},
"get-caller-file"
:
{
"version"
:
"2.0.5"
,
"resolved"
:
"https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz"
,
"integrity"
:
"sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg=="
},
"get-intrinsic"
:
{
"version"
:
"1.1.1"
,
"resolved"
:
"https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz"
,
...
...
@@ -4315,6 +5292,41 @@
"lru-cache"
:
"^6.0.0"
}
},
"google-gax"
:
{
"version"
:
"2.25.4"
,
"resolved"
:
"https://registry.npmjs.org/google-gax/-/google-gax-2.25.4.tgz"
,
"integrity"
:
"sha512-+Jd0FFOWyb8ieX53e6Sl5OYvHXoA1sWKfQ24ykR502NKgBTvPAh/RFcITihGePBJZ1E8pfh4MKWU0Sf+f1CK+A=="
,
"optional"
:
true
,
"requires"
:
{
"@grpc/grpc-js"
:
"~1.3.0"
,
"@grpc/proto-loader"
:
"^0.6.1"
,
"@types/long"
:
"^4.0.0"
,
"abort-controller"
:
"^3.0.0"
,
"duplexify"
:
"^4.0.0"
,
"fast-text-encoding"
:
"^1.0.3"
,
"google-auth-library"
:
"^7.6.1"
,
"is-stream-ended"
:
"^0.1.4"
,
"node-fetch"
:
"^2.6.1"
,
"object-hash"
:
"^2.1.1"
,
"proto3-json-serializer"
:
"^0.1.1"
,
"protobufjs"
:
"6.11.2"
,
"retry-request"
:
"^4.0.0"
},
"dependencies"
:
{
"duplexify"
:
{
"version"
:
"4.1.2"
,
"resolved"
:
"https://registry.npmjs.org/duplexify/-/duplexify-4.1.2.tgz"
,
"integrity"
:
"sha512-fz3OjcNCHmRP12MJoZMPglx8m4rrFP8rovnk4vT8Fs+aonZoCwGg10dSsQsfP/E62eZcPTMSMP6686fu9Qlqtw=="
,
"optional"
:
true
,
"requires"
:
{
"end-of-stream"
:
"^1.4.1"
,
"inherits"
:
"^2.0.3"
,
"readable-stream"
:
"^3.1.1"
,
"stream-shift"
:
"^1.0.0"
}
}
}
},
"google-p12-pem"
:
{
"version"
:
"3.1.2"
,
"resolved"
:
"https://registry.npmjs.org/google-p12-pem/-/google-p12-pem-3.1.2.tgz"
,
...
...
@@ -4385,6 +5397,11 @@
"toidentifier"
:
"1.0.0"
}
},
"http-parser-js"
:
{
"version"
:
"0.5.3"
,
"resolved"
:
"https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.3.tgz"
,
"integrity"
:
"sha512-t7hjvef/5HEK7RWTdUzVUhl8zkEu+LlaE0IYzdMuvbSDipxBRpOn4Uhw8ZyECEa808iVT8XCjzo6xmYt4CiLZg=="
},
"http-proxy-agent"
:
{
"version"
:
"4.0.1"
,
"resolved"
:
"https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz"
,
...
...
@@ -4508,6 +5525,12 @@
"resolved"
:
"https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz"
,
"integrity"
:
"sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg=="
},
"is-stream-ended"
:
{
"version"
:
"0.1.4"
,
"resolved"
:
"https://registry.npmjs.org/is-stream-ended/-/is-stream-ended-0.1.4.tgz"
,
"integrity"
:
"sha512-xj0XPvmr7bQFTvirqnFr50o0hQIh6ZItDqloxt5aJrR4NQsYeSsyFQERYGCAzfindAcnKjINnwEEgLx4IqVzQw=="
,
"optional"
:
true
},
"is-typedarray"
:
{
"version"
:
"1.0.0"
,
"resolved"
:
"https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz"
,
...
...
@@ -4580,6 +5603,49 @@
"resolved"
:
"https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz"
,
"integrity"
:
"sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE="
},
"jsonwebtoken"
:
{
"version"
:
"8.5.1"
,
"resolved"
:
"https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz"
,
"integrity"
:
"sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w=="
,
"requires"
:
{
"jws"
:
"^3.2.2"
,
"lodash.includes"
:
"^4.3.0"
,
"lodash.isboolean"
:
"^3.0.3"
,
"lodash.isinteger"
:
"^4.0.4"
,
"lodash.isnumber"
:
"^3.0.3"
,
"lodash.isplainobject"
:
"^4.0.6"
,
"lodash.isstring"
:
"^4.0.1"
,
"lodash.once"
:
"^4.0.0"
,
"ms"
:
"^2.1.1"
,
"semver"
:
"^5.6.0"
},
"dependencies"
:
{
"jwa"
:
{
"version"
:
"1.4.1"
,
"resolved"
:
"https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz"
,
"integrity"
:
"sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA=="
,
"requires"
:
{
"buffer-equal-constant-time"
:
"1.0.1"
,
"ecdsa-sig-formatter"
:
"1.0.11"
,
"safe-buffer"
:
"^5.0.1"
}
},
"jws"
:
{
"version"
:
"3.2.2"
,
"resolved"
:
"https://registry.npmjs.org/jws/-/jws-3.2.2.tgz"
,
"integrity"
:
"sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA=="
,
"requires"
:
{
"jwa"
:
"^1.4.1"
,
"safe-buffer"
:
"^5.0.1"
}
},
"semver"
:
{
"version"
:
"5.7.1"
,
"resolved"
:
"https://registry.npmjs.org/semver/-/semver-5.7.1.tgz"
,
"integrity"
:
"sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ=="
}
}
},
"jwa"
:
{
"version"
:
"2.0.0"
,
"resolved"
:
"https://registry.npmjs.org/jwa/-/jwa-2.0.0.tgz"
,
...
...
@@ -4590,6 +5656,18 @@
"safe-buffer"
:
"^5.0.1"
}
},
"jwks-rsa"
:
{
"version"
:
"2.0.4"
,
"resolved"
:
"https://registry.npmjs.org/jwks-rsa/-/jwks-rsa-2.0.4.tgz"
,
"integrity"
:
"sha512-iJqVCECYZZ+3oPmY1qXv3Fq+3ywDtuNEVBvG41pPlaR0zyGxa12nC0beAOBBUhETJmc05puS50mRQN4NkCGhmg=="
,
"requires"
:
{
"@types/express-jwt"
:
"0.0.42"
,
"debug"
:
"^4.3.2"
,
"jose"
:
"^2.0.5"
,
"limiter"
:
"^1.1.5"
,
"lru-memoizer"
:
"^2.1.4"
}
},
"jws"
:
{
"version"
:
"4.0.0"
,
"resolved"
:
"https://registry.npmjs.org/jws/-/jws-4.0.0.tgz"
,
...
...
@@ -4629,6 +5707,15 @@
"resolved"
:
"https://registry.npmjs.org/limiter/-/limiter-1.1.5.tgz"
,
"integrity"
:
"sha512-FWWMIEOxz3GwUI4Ts/IvgVy6LPvoMPgjMdQ185nN6psJyBJ4yOpzqm695/h5umdLJg2vW3GR5iG11MAkR2AzJA=="
},
"locate-path"
:
{
"version"
:
"3.0.0"
,
"resolved"
:
"https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz"
,
"integrity"
:
"sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A=="
,
"requires"
:
{
"p-locate"
:
"^3.0.0"
,
"path-exists"
:
"^3.0.0"
}
},
"lodash.camelcase"
:
{
"version"
:
"4.3.0"
,
"resolved"
:
"https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz"
,
...
...
@@ -4701,6 +5788,31 @@
"yallist"
:
"^4.0.0"
}
},
"lru-memoizer"
:
{
"version"
:
"2.1.4"
,
"resolved"
:
"https://registry.npmjs.org/lru-memoizer/-/lru-memoizer-2.1.4.tgz"
,
"integrity"
:
"sha512-IXAq50s4qwrOBrXJklY+KhgZF+5y98PDaNo0gi/v2KQBFLyWr+JyFvijZXkGKjQj/h9c0OwoE+JZbwUXce76hQ=="
,
"requires"
:
{
"lodash.clonedeep"
:
"^4.5.0"
,
"lru-cache"
:
"~4.0.0"
},
"dependencies"
:
{
"lru-cache"
:
{
"version"
:
"4.0.2"
,
"resolved"
:
"https://registry.npmjs.org/lru-cache/-/lru-cache-4.0.2.tgz"
,
"integrity"
:
"sha1-HRdnnAac2l0ECZGgnbwsDbN35V4="
,
"requires"
:
{
"pseudomap"
:
"^1.0.1"
,
"yallist"
:
"^2.0.0"
}
},
"yallist"
:
{
"version"
:
"2.1.2"
,
"resolved"
:
"https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz"
,
"integrity"
:
"sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI="
}
}
},
"make-dir"
:
{
"version"
:
"3.1.0"
,
"resolved"
:
"https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz"
,
...
...
@@ -4824,6 +5936,12 @@
"resolved"
:
"https://registry.npmjs.org/node-forge/-/node-forge-0.10.0.tgz"
,
"integrity"
:
"sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA=="
},
"object-hash"
:
{
"version"
:
"2.2.0"
,
"resolved"
:
"https://registry.npmjs.org/object-hash/-/object-hash-2.2.0.tgz"
,
"integrity"
:
"sha512-gScRMn0bS5fH+IuwyIFgnh9zBdo4DV+6GhygmWM9HyNJSgS0hScp1f5vjtm7oIIOiT9trXrShAkLFSc2IqKNgw=="
,
"optional"
:
true
},
"object-inspect"
:
{
"version"
:
"1.11.0"
,
"resolved"
:
"https://registry.npmjs.org/object-inspect/-/object-inspect-1.11.0.tgz"
,
...
...
@@ -4896,6 +6014,29 @@
"yocto-queue"
:
"^0.1.0"
}
},
"p-locate"
:
{
"version"
:
"3.0.0"
,
"resolved"
:
"https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz"
,
"integrity"
:
"sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ=="
,
"requires"
:
{
"p-limit"
:
"^2.0.0"
},
"dependencies"
:
{
"p-limit"
:
{
"version"
:
"2.3.0"
,
"resolved"
:
"https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz"
,
"integrity"
:
"sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w=="
,
"requires"
:
{
"p-try"
:
"^2.0.0"
}
}
}
},
"p-try"
:
{
"version"
:
"2.2.0"
,
"resolved"
:
"https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz"
,
"integrity"
:
"sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ=="
},
"parent-module"
:
{
"version"
:
"1.0.1"
,
"resolved"
:
"https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz"
,
...
...
@@ -4910,6 +6051,11 @@
"resolved"
:
"https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz"
,
"integrity"
:
"sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA="
},
"path-exists"
:
{
"version"
:
"3.0.0"
,
"resolved"
:
"https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz"
,
"integrity"
:
"sha1-zg6+ql94yxiSXqfYENe1mwEP1RU="
},
"path-is-absolute"
:
{
"version"
:
"1.0.1"
,
"resolved"
:
"https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz"
,
...
...
@@ -4921,6 +6067,11 @@
"integrity"
:
"sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q=="
,
"dev"
:
true
},
"pngjs"
:
{
"version"
:
"3.4.0"
,
"resolved"
:
"https://registry.npmjs.org/pngjs/-/pngjs-3.4.0.tgz"
,
"integrity"
:
"sha512-NCrCHhWmnQklfH4MtJMRjZ2a8c80qXeMlQMv2uVp9ISJMTt562SbGd6n2oq0PaPgKm7Z6pL9E2UlLIhC+SHL3w=="
},
"prelude-ls"
:
{
"version"
:
"1.2.1"
,
"resolved"
:
"https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz"
,
...
...
@@ -5006,6 +6157,132 @@
"integrity"
:
"sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A=="
,
"dev"
:
true
},
"qrcode"
:
{
"version"
:
"1.4.4"
,
"resolved"
:
"https://registry.npmjs.org/qrcode/-/qrcode-1.4.4.tgz"
,
"integrity"
:
"sha512-oLzEC5+NKFou9P0bMj5+v6Z40evexeE29Z9cummZXZ9QXyMr3lphkURzxjXgPJC5azpxcshoDWV1xE46z+/c3Q=="
,
"requires"
:
{
"buffer"
:
"^5.4.3"
,
"buffer-alloc"
:
"^1.2.0"
,
"buffer-from"
:
"^1.1.1"
,
"dijkstrajs"
:
"^1.0.1"
,
"isarray"
:
"^2.0.1"
,
"pngjs"
:
"^3.3.0"
,
"yargs"
:
"^13.2.4"
},
"dependencies"
:
{
"ansi-regex"
:
{
"version"
:
"4.1.0"
,
"resolved"
:
"https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz"
,
"integrity"
:
"sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg=="
},
"ansi-styles"
:
{
"version"
:
"3.2.1"
,
"resolved"
:
"https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz"
,
"integrity"
:
"sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA=="
,
"requires"
:
{
"color-convert"
:
"^1.9.0"
}
},
"cliui"
:
{
"version"
:
"5.0.0"
,
"resolved"
:
"https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz"
,
"integrity"
:
"sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA=="
,
"requires"
:
{
"string-width"
:
"^3.1.0"
,
"strip-ansi"
:
"^5.2.0"
,
"wrap-ansi"
:
"^5.1.0"
}
},
"color-convert"
:
{
"version"
:
"1.9.3"
,
"resolved"
:
"https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz"
,
"integrity"
:
"sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg=="
,
"requires"
:
{
"color-name"
:
"1.1.3"
}
},
"color-name"
:
{
"version"
:
"1.1.3"
,
"resolved"
:
"https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz"
,
"integrity"
:
"sha1-p9BVi9icQveV3UIyj3QIMcpTvCU="
},
"emoji-regex"
:
{
"version"
:
"7.0.3"
,
"resolved"
:
"https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz"
,
"integrity"
:
"sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA=="
},
"is-fullwidth-code-point"
:
{
"version"
:
"2.0.0"
,
"resolved"
:
"https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz"
,
"integrity"
:
"sha1-o7MKXE8ZkYMWeqq5O+764937ZU8="
},
"isarray"
:
{
"version"
:
"2.0.5"
,
"resolved"
:
"https://registry.npmjs.org/isarray/-/isarray-2.0.5.tgz"
,
"integrity"
:
"sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw=="
},
"string-width"
:
{
"version"
:
"3.1.0"
,
"resolved"
:
"https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz"
,
"integrity"
:
"sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w=="
,
"requires"
:
{
"emoji-regex"
:
"^7.0.1"
,
"is-fullwidth-code-point"
:
"^2.0.0"
,
"strip-ansi"
:
"^5.1.0"
}
},
"strip-ansi"
:
{
"version"
:
"5.2.0"
,
"resolved"
:
"https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz"
,
"integrity"
:
"sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA=="
,
"requires"
:
{
"ansi-regex"
:
"^4.1.0"
}
},
"wrap-ansi"
:
{
"version"
:
"5.1.0"
,
"resolved"
:
"https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz"
,
"integrity"
:
"sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q=="
,
"requires"
:
{
"ansi-styles"
:
"^3.2.0"
,
"string-width"
:
"^3.0.0"
,
"strip-ansi"
:
"^5.0.0"
}
},
"y18n"
:
{
"version"
:
"4.0.3"
,
"resolved"
:
"https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz"
,
"integrity"
:
"sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ=="
},
"yargs"
:
{
"version"
:
"13.3.2"
,
"resolved"
:
"https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz"
,
"integrity"
:
"sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw=="
,
"requires"
:
{
"cliui"
:
"^5.0.0"
,
"find-up"
:
"^3.0.0"
,
"get-caller-file"
:
"^2.0.1"
,
"require-directory"
:
"^2.1.1"
,
"require-main-filename"
:
"^2.0.0"
,
"set-blocking"
:
"^2.0.0"
,
"string-width"
:
"^3.0.0"
,
"which-module"
:
"^2.0.0"
,
"y18n"
:
"^4.0.0"
,
"yargs-parser"
:
"^13.1.2"
}
},
"yargs-parser"
:
{
"version"
:
"13.1.2"
,
"resolved"
:
"https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz"
,
"integrity"
:
"sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg=="
,
"requires"
:
{
"camelcase"
:
"^5.0.0"
,
"decamelize"
:
"^1.2.0"
}
}
}
},
"qs"
:
{
"version"
:
"6.10.1"
,
"resolved"
:
"https://registry.npmjs.org/qs/-/qs-6.10.1.tgz"
,
...
...
@@ -5054,8 +6331,7 @@
"require-directory"
:
{
"version"
:
"2.1.1"
,
"resolved"
:
"https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz"
,
"integrity"
:
"sha1-jGStX9MNqxyXbiNE/+f3kqam30I="
,
"optional"
:
true
"integrity"
:
"sha1-jGStX9MNqxyXbiNE/+f3kqam30I="
},
"require-from-string"
:
{
"version"
:
"2.0.2"
,
...
...
@@ -5063,6 +6339,11 @@
"integrity"
:
"sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw=="
,
"dev"
:
true
},
"require-main-filename"
:
{
"version"
:
"2.0.0"
,
"resolved"
:
"https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz"
,
"integrity"
:
"sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg=="
},
"resolve-from"
:
{
"version"
:
"4.0.0"
,
"resolved"
:
"https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz"
,
...
...
@@ -5111,6 +6392,11 @@
"lru-cache"
:
"^6.0.0"
}
},
"set-blocking"
:
{
"version"
:
"2.0.0"
,
"resolved"
:
"https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz"
,
"integrity"
:
"sha1-BF+XgtARrppoA93TgrJDkrPYkPc="
},
"setprototypeof"
:
{
"version"
:
"1.1.1"
,
"resolved"
:
"https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz"
,
...
...
@@ -5360,6 +6646,11 @@
"resolved"
:
"https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz"
,
"integrity"
:
"sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw=="
},
"tslib"
:
{
"version"
:
"2.3.1"
,
"resolved"
:
"https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz"
,
"integrity"
:
"sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw=="
},
"type-check"
:
{
"version"
:
"0.4.0"
,
"resolved"
:
"https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz"
,
...
...
@@ -5454,6 +6745,21 @@
"resolved"
:
"https://registry.npmjs.org/vary/-/vary-1.1.2.tgz"
,
"integrity"
:
"sha1-IpnwLG3tMNSllhsLn3RSShj2NPw="
},
"websocket-driver"
:
{
"version"
:
"0.7.4"
,
"resolved"
:
"https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz"
,
"integrity"
:
"sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg=="
,
"requires"
:
{
"http-parser-js"
:
">=0.5.1"
,
"safe-buffer"
:
">=5.1.0"
,
"websocket-extensions"
:
">=0.1.1"
}
},
"websocket-extensions"
:
{
"version"
:
"0.1.4"
,
"resolved"
:
"https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz"
,
"integrity"
:
"sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg=="
},
"which"
:
{
"version"
:
"2.0.2"
,
"resolved"
:
"https://registry.npmjs.org/which/-/which-2.0.2.tgz"
,
...
...
@@ -5463,6 +6769,11 @@
"isexe"
:
"^2.0.0"
}
},
"which-module"
:
{
"version"
:
"2.0.0"
,
"resolved"
:
"https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz"
,
"integrity"
:
"sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho="
},
"word-wrap"
:
{
"version"
:
"1.2.3"
,
"resolved"
:
"https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz"
,
...
...
@@ -5523,6 +6834,27 @@
"resolved"
:
"https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz"
,
"integrity"
:
"sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
},
"yargs"
:
{
"version"
:
"16.2.0"
,
"resolved"
:
"https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz"
,
"integrity"
:
"sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw=="
,
"optional"
:
true
,
"requires"
:
{
"cliui"
:
"^7.0.2"
,
"escalade"
:
"^3.1.1"
,
"get-caller-file"
:
"^2.0.5"
,
"require-directory"
:
"^2.1.1"
,
"string-width"
:
"^4.2.0"
,
"y18n"
:
"^5.0.5"
,
"yargs-parser"
:
"^20.2.2"
}
},
"yargs-parser"
:
{
"version"
:
"20.2.9"
,
"resolved"
:
"https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz"
,
"integrity"
:
"sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w=="
,
"optional"
:
true
},
"yocto-queue"
:
{
"version"
:
"0.1.0"
,
"resolved"
:
"https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz"
,
...
...
server/package.json
View file @
7bd1e1c
...
...
@@ -19,6 +19,7 @@
"dependencies"
:
{
"@google-cloud/storage"
:
"^5.14.2"
,
"@koa/cors"
:
"^3.1.0"
,
"firebase-admin"
:
"^9.11.1"
,
"koa-body"
:
"^4.2.0"
,
"moment"
:
"^2.29.1"
,
"moment-timezone"
:
"^0.5.33"
,
...
...
server/src/api/auth/auth.ctrl.js
View file @
7bd1e1c
...
...
@@ -17,6 +17,7 @@ exports.register = async(ctx) => {
userNm
,
birth
,
contact
,
deviceToken
,
}
=
ctx
.
request
.
body
;
const
schema
=
Joi
.
object
().
keys
({
...
...
@@ -59,6 +60,7 @@ exports.register = async(ctx) => {
userNm
,
birth
,
contact
,
deviceToken
,
});
await
user
.
save
();
...
...
@@ -192,7 +194,7 @@ exports.doctorRegister = async ctx => {
}
exports
.
login
=
async
(
ctx
)
=>
{
const
{
userId
,
password
}
=
ctx
.
request
.
body
;
const
{
userId
,
password
,
deviceToken
}
=
ctx
.
request
.
body
;
const
schema
=
Joi
.
object
().
keys
({
userId
:
Joi
.
string
().
email
().
max
(
50
).
required
(),
...
...
@@ -225,7 +227,6 @@ exports.login = async(ctx) => {
};
return
;
}
if
(
user
.
useYn
!==
'Y'
)
{
ctx
.
status
=
403
;
ctx
.
body
=
{
...
...
@@ -234,6 +235,16 @@ exports.login = async(ctx) => {
return
;
}
//일반 유저의 deviceToken값이 바뀌면 업데이트한다 = 기기가 바뀌면
if
(
user
.
userTypeCd
===
'NORMAL'
)
{
const
profile
=
await
Profile
.
findByUserId
(
user
.
userId
);
if
(
deviceToken
&&
profile
.
deviceToken
!==
deviceToken
)
{
profile
.
updateDeviceToken
(
deviceToken
);
await
profile
.
save
();
}
}
const
token
=
await
user
.
generateToken
();
ctx
.
cookies
.
set
(
'access_token'
,
token
,
{
httpOnly
:
true
,
...
...
@@ -243,7 +254,7 @@ exports.login = async(ctx) => {
ctx
.
status
=
200
;
ctx
.
body
=
{
userTypeCd
:
user
.
userTypeCd
,
token
token
,
};
};
...
...
server/src/util/Batch.js
View file @
7bd1e1c
...
...
@@ -6,15 +6,18 @@
* 1) Dosage에 따라, Push Notification 발송
*/
const
cron
=
require
(
'node-cron'
);
const
cron
=
require
(
'node-cron'
);
const
fs
=
require
(
'fs'
);
const
Profile
=
require
(
'../models/profile'
);
const
User
=
require
(
'../models/user'
);
const
Hub
=
require
(
'../models/hub'
);
const
Bottle
=
require
(
'../models/bottle'
);
const
BottleMedicine
=
require
(
'../models/bottleMedicine'
);
const
Profile
=
require
(
'../models/profile'
);
const
User
=
require
(
'../models/user'
);
const
Hub
=
require
(
'../models/hub'
);
const
Bottle
=
require
(
'../models/bottle'
);
const
BottleMedicine
=
require
(
'../models/bottleMedicine'
);
const
Medicine
=
require
(
'../models/medicine'
);
const
updateMedicineInfo
=
require
(
'../lib/UpdatingMedicineInfo'
);
const
{
sendPushMessage
}
=
require
(
'./FCM'
);
// //매년 1월 1일 00시 00분에 1살씩 추가
...
...
@@ -35,12 +38,27 @@ const updateMedicineInfo = require('../lib/UpdatingMedicineInfo');
exports
.
updateMedicineData
=
async
()
=>
{
cron
.
schedule
(
'0 0 0 1 * *'
,
()
=>
{
updateMedicineInfo
.
updateMedicineInfo
();
},
{
timezone
:
'Asia/Tokyo'
,
});
};
//매주 일요일마다 불필요한 qrcode 제거
exports
.
removeQrCode
=
()
=>
{
cron
.
schedule
(
'0 0 0 * * 0'
,
()
=>
{
// eslint-disable-next-line no-undef
const
qrDir
=
process
.
env
.
QR_DIR
;
fs
.
rm
(
qrDir
,
{
recursive
:
true
,
force
:
true
,
},
()
=>
{
fs
.
mkdir
(
qrDir
,
(
err
)
=>
{
if
(
err
)
console
.
log
(
err
)
});
});
},
{
timezone
:
'Asia/Tokyo'
,
});
};
//dosage에 따라, Push Notification을 발송한다.
//아침 8시, 점심 12시, 저녁 6시에 한번씩 발송
exports
.
P
ushNotifyByDosage
=
async
()
=>
{
exports
.
p
ushNotifyByDosage
=
async
()
=>
{
//매일 아침 8시 : 복용량 상관 없이 보냄
cron
.
schedule
(
'0 0 8 * * *'
,
async
()
=>
{
...
...
@@ -52,9 +70,15 @@ exports.updateMedicineData = async () => {
if
(
user
)
{
const
profile
=
await
Profile
.
findOne
({
userId
:
user
.
userId
});
const
{
deviceToken
}
=
profile
;
PushNotify
(
deviceToken
);
if
(
deviceToken
)
{
const
medicine
=
await
Medicine
.
findOne
({
medicineId
:
bottleMedicine
.
medicineId
});
pushNotify
({
deviceToken
,
message
:
medicine
.
name
+
'을 복용하셔야 합니다.'
,
});
}
}
});
},
{
...
...
@@ -72,9 +96,15 @@ exports.updateMedicineData = async () => {
if
(
user
)
{
const
profile
=
await
Profile
.
findOne
({
userId
:
user
.
userId
});
const
{
deviceToken
}
=
profile
;
PushNotify
(
deviceToken
);
if
(
deviceToken
)
{
const
medicine
=
await
Medicine
.
findOne
({
medicineId
:
bottleMedicine
.
medicineId
});
pushNotify
({
deviceToken
,
message
:
medicine
.
name
+
'을 복용하셔야 합니다.'
,
});
}
}
});
},
{
...
...
@@ -92,21 +122,27 @@ exports.updateMedicineData = async () => {
if
(
user
)
{
const
profile
=
await
Profile
.
findOne
({
userId
:
user
.
userId
});
const
{
deviceToken
}
=
profile
;
PushNotify
(
deviceToken
);
if
(
deviceToken
)
{
const
medicine
=
await
Medicine
.
findOne
({
medicineId
:
bottleMedicine
.
medicineId
});
pushNotify
({
deviceToken
,
message
:
medicine
.
name
+
'을 복용하셔야 합니다.'
,
});
}
}
});
},
{
timezone
:
'Asia/Tokyo'
,
});
};
};
const
PushNotify
=
async
(
deviceToken
)
=>
{
const
pushNotify
=
({
deviceToken
,
message
}
)
=>
{
//toDo : deviceToken을 받아서 push notification을 발송하는 함수
if
(
deviceToken
)
{
console
.
log
(
deviceToken
);
}
}
;
sendPushMessage
(
{
deviceToken
,
message
,
})
;
};
...
...
server/src/util/FCM.js
0 → 100644
View file @
7bd1e1c
const
fcm
=
require
(
'firebase-admin'
);
exports
.
initializeFCM
=
()
=>
{
fcm
.
initializeApp
({
credential
:
fcm
.
credential
.
applicationDefault
(),
});
};
exports
.
sendPushMessage
=
async
({
deviceToken
,
message
})
=>
{
const
notifyMessage
=
{
notification
:
{
title
:
'약 먹을 시간입니다'
,
body
:
message
,
},
token
:
deviceToken
,
};
fcm
.
messaging
().
send
(
notifyMessage
);
};
\ No newline at end of file
server/src/util/QrCodeUtil.js
View file @
7bd1e1c
...
...
@@ -3,14 +3,15 @@ const moment = require('moment');
exports
.
generateQrCode_prescribe
=
async
({
medicine
,
dosage
,
patientId
,
doctorId
})
=>
{
const
directory
=
"/Users/parkkwonsoo/Desktop/Project/Capstone_Design_1/server/data/"
;
// eslint-disable-next-line no-undef
const
directory
=
process
.
env
.
QR_DIR
;
const
now
=
moment
().
format
(
'YYYY-MM-DD_HH:mm'
);
const
qrCodeFileName
=
`
${
now
}
_
${
doctorId
}
_
${
patientId
}
_
${
medicine
.
medicineId
}
_
${
dosage
}
.png`
;
try
{
await
QrCode
.
toFile
(
directory
+
qrCodeFileName
,
directory
+
'/'
+
qrCodeFileName
,
`
${
medicine
.
name
}
/
${
medicine
.
medicineId
}
/
${
dosage
}
/
${
patientId
}
/
${
doctorId
}
`
,
{
color
:
{
...
...
server/yarn.lock
View file @
7bd1e1c
This diff could not be displayed because it is too large.
Please
register
or
login
to post a comment