Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in
Toggle navigation
A
ajs12_shop
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Egor Kremnev
ajs12_shop
Commits
0ecb4814
Commit
0ecb4814
authored
May 03, 2023
by
Egor Kremnev
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
add authenticate
parent
da105c4b
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
642 additions
and
9 deletions
+642
-9
.gitignore
api_client/db/.gitignore
+0
-1
index.js
api_client/index.js
+2
-0
User.js
api_client/models/User.js
+51
-0
package-lock.json
api_client/package-lock.json
+535
-8
package.json
api_client/package.json
+1
-0
users.js
api_client/routes/users.js
+53
-0
No files found.
api_client/db/.gitignore
deleted
100644 → 0
View file @
da105c4b
*.json
api_client/index.js
View file @
0ecb4814
...
...
@@ -5,12 +5,14 @@ const {port, db: dbConfig} = require('./config');
const
createProductsRoutes
=
require
(
'./routes/products'
);
const
mongoose
=
require
(
'mongoose'
);
const
categoryRoutes
=
require
(
'./routes/categories'
);
const
userRoutes
=
require
(
'./routes/users'
);
app
.
use
(
cors
());
app
.
use
(
express
.
json
());
app
.
use
(
express
.
static
(
'public'
));
app
.
use
(
'/api/v1/products'
,
createProductsRoutes
());
app
.
use
(
'/api/v1/categories'
,
categoryRoutes
);
app
.
use
(
'/api/v1/users'
,
userRoutes
);
const
run
=
async
()
=>
{
await
mongoose
.
connect
(
...
...
api_client/models/User.js
0 → 100644
View file @
0ecb4814
const
mongoose
=
require
(
'mongoose'
);
const
Schema
=
mongoose
.
Schema
;
const
bcrypt
=
require
(
'bcrypt'
);
const
{
nanoid
}
=
require
(
'fix-esm'
).
require
(
'nanoid'
);
const
SALT_WORK_FACTOR
=
10
;
const
UserSchema
=
new
Schema
({
password
:
{
type
:
String
,
required
:
true
},
username
:
{
type
:
String
,
required
:
true
,
unique
:
true
},
token
:
{
type
:
String
,
required
:
false
,
unique
:
true
}
});
UserSchema
.
pre
(
'save'
,
async
function
(
next
)
{
if
(
!
this
.
isModified
(
'password'
))
return
next
();
const
salt
=
await
bcrypt
.
genSalt
(
SALT_WORK_FACTOR
);
this
.
password
=
await
bcrypt
.
hash
(
this
.
password
,
salt
);
next
();
});
UserSchema
.
set
(
'toJSON'
,
{
transform
:
(
doc
,
ret
,
options
)
=>
{
delete
ret
.
password
;
return
ret
;
}
});
UserSchema
.
methods
.
checkPassword
=
function
(
password
)
{
return
bcrypt
.
compare
(
password
,
this
.
password
)
};
UserSchema
.
methods
.
generateToken
=
function
()
{
this
.
token
=
nanoid
();
};
const
User
=
mongoose
.
model
(
'User'
,
UserSchema
);
module
.
exports
=
User
;
api_client/package-lock.json
View file @
0ecb4814
...
...
@@ -9,6 +9,7 @@
"version"
:
"1.0.0"
,
"license"
:
"ISC"
,
"dependencies"
:
{
"bcrypt"
:
"^5.1.0"
,
"cors"
:
"^2.8.5"
,
"express"
:
"^4.18.2"
,
"fix-esm"
:
"^1.0.1"
,
...
...
@@ -466,6 +467,69 @@
"@jridgewell/sourcemap-codec"
:
"1.4.14"
}
},
"node_modules/@mapbox/node-pre-gyp"
:
{
"version"
:
"1.0.10"
,
"resolved"
:
"https://registry.npmjs.org/@mapbox/node-pre-gyp/-/node-pre-gyp-1.0.10.tgz"
,
"integrity"
:
"sha512-4ySo4CjzStuprMwk35H5pPbkymjv1SF3jGLj6rAHp/xT/RF7TL7bd9CTm1xDY49K2qF7jmR/g7k+SkLETP6opA=="
,
"dependencies"
:
{
"detect-libc"
:
"^2.0.0"
,
"https-proxy-agent"
:
"^5.0.0"
,
"make-dir"
:
"^3.1.0"
,
"node-fetch"
:
"^2.6.7"
,
"nopt"
:
"^5.0.0"
,
"npmlog"
:
"^5.0.1"
,
"rimraf"
:
"^3.0.2"
,
"semver"
:
"^7.3.5"
,
"tar"
:
"^6.1.11"
},
"bin"
:
{
"node-pre-gyp"
:
"bin/node-pre-gyp"
}
},
"node_modules/@mapbox/node-pre-gyp/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"
:
{
"yallist"
:
"^4.0.0"
},
"engines"
:
{
"node"
:
">=10"
}
},
"node_modules/@mapbox/node-pre-gyp/node_modules/nopt"
:
{
"version"
:
"5.0.0"
,
"resolved"
:
"https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz"
,
"integrity"
:
"sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ=="
,
"dependencies"
:
{
"abbrev"
:
"1"
},
"bin"
:
{
"nopt"
:
"bin/nopt.js"
},
"engines"
:
{
"node"
:
">=6"
}
},
"node_modules/@mapbox/node-pre-gyp/node_modules/semver"
:
{
"version"
:
"7.5.0"
,
"resolved"
:
"https://registry.npmjs.org/semver/-/semver-7.5.0.tgz"
,
"integrity"
:
"sha512-+XC0AD/R7Q2mPSRuy2Id0+CGTZ98+8f+KvwirxOKIEyid+XSx6HbC63p+O4IndTHuX5Z+JxQ0TghCkO5Cg/2HA=="
,
"dependencies"
:
{
"lru-cache"
:
"^6.0.0"
},
"bin"
:
{
"semver"
:
"bin/semver.js"
},
"engines"
:
{
"node"
:
">=10"
}
},
"node_modules/@mapbox/node-pre-gyp/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/@types/node"
:
{
"version"
:
"18.15.12"
,
"resolved"
:
"https://registry.npmjs.org/@types/node/-/node-18.15.12.tgz"
,
...
...
@@ -488,8 +552,7 @@
"node_modules/abbrev"
:
{
"version"
:
"1.1.1"
,
"resolved"
:
"https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz"
,
"integrity"
:
"sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q=="
,
"dev"
:
true
"integrity"
:
"sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q=="
},
"node_modules/accepts"
:
{
"version"
:
"1.3.8"
,
...
...
@@ -503,6 +566,46 @@
"node"
:
">= 0.6"
}
},
"node_modules/agent-base"
:
{
"version"
:
"6.0.2"
,
"resolved"
:
"https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz"
,
"integrity"
:
"sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ=="
,
"dependencies"
:
{
"debug"
:
"4"
},
"engines"
:
{
"node"
:
">= 6.0.0"
}
},
"node_modules/agent-base/node_modules/debug"
:
{
"version"
:
"4.3.4"
,
"resolved"
:
"https://registry.npmjs.org/debug/-/debug-4.3.4.tgz"
,
"integrity"
:
"sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ=="
,
"dependencies"
:
{
"ms"
:
"2.1.2"
},
"engines"
:
{
"node"
:
">=6.0"
},
"peerDependenciesMeta"
:
{
"supports-color"
:
{
"optional"
:
true
}
}
},
"node_modules/agent-base/node_modules/ms"
:
{
"version"
:
"2.1.2"
,
"resolved"
:
"https://registry.npmjs.org/ms/-/ms-2.1.2.tgz"
,
"integrity"
:
"sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
},
"node_modules/ansi-regex"
:
{
"version"
:
"5.0.1"
,
"resolved"
:
"https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz"
,
"integrity"
:
"sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="
,
"engines"
:
{
"node"
:
">=8"
}
},
"node_modules/ansi-styles"
:
{
"version"
:
"3.2.1"
,
"resolved"
:
"https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz"
,
...
...
@@ -532,6 +635,36 @@
"resolved"
:
"https://registry.npmjs.org/append-field/-/append-field-1.0.0.tgz"
,
"integrity"
:
"sha512-klpgFSWLW1ZEs8svjfb7g4qWY0YS5imI82dTg+QahUvJ8YqAY0P10Uk8tTyh9ZGuYEZEMaeJYCF5BFuX552hsw=="
},
"node_modules/aproba"
:
{
"version"
:
"2.0.0"
,
"resolved"
:
"https://registry.npmjs.org/aproba/-/aproba-2.0.0.tgz"
,
"integrity"
:
"sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ=="
},
"node_modules/are-we-there-yet"
:
{
"version"
:
"2.0.0"
,
"resolved"
:
"https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-2.0.0.tgz"
,
"integrity"
:
"sha512-Ci/qENmwHnsYo9xKIcUJN5LeDKdJ6R1Z1j9V/J5wyq8nh/mYPEpIKJbBZXtZjG04HiK7zV/p6Vs9952MrMeUIw=="
,
"dependencies"
:
{
"delegates"
:
"^1.0.0"
,
"readable-stream"
:
"^3.6.0"
},
"engines"
:
{
"node"
:
">=10"
}
},
"node_modules/are-we-there-yet/node_modules/readable-stream"
:
{
"version"
:
"3.6.2"
,
"resolved"
:
"https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz"
,
"integrity"
:
"sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA=="
,
"dependencies"
:
{
"inherits"
:
"^2.0.3"
,
"string_decoder"
:
"^1.1.1"
,
"util-deprecate"
:
"^1.0.1"
},
"engines"
:
{
"node"
:
">= 6"
}
},
"node_modules/array-flatten"
:
{
"version"
:
"1.1.1"
,
"resolved"
:
"https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz"
,
...
...
@@ -540,8 +673,7 @@
"node_modules/balanced-match"
:
{
"version"
:
"1.0.2"
,
"resolved"
:
"https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz"
,
"integrity"
:
"sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
,
"dev"
:
true
"integrity"
:
"sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="
},
"node_modules/base64-js"
:
{
"version"
:
"1.5.1"
,
...
...
@@ -562,6 +694,19 @@
}
]
},
"node_modules/bcrypt"
:
{
"version"
:
"5.1.0"
,
"resolved"
:
"https://registry.npmjs.org/bcrypt/-/bcrypt-5.1.0.tgz"
,
"integrity"
:
"sha512-RHBS7HI5N5tEnGTmtR/pppX0mmDSBpQ4aCBsj7CEQfYXDcO74A8sIBYcJMuCsis2E81zDxeENYhv66oZwLiA+Q=="
,
"hasInstallScript"
:
true
,
"dependencies"
:
{
"@mapbox/node-pre-gyp"
:
"^1.0.10"
,
"node-addon-api"
:
"^5.0.0"
},
"engines"
:
{
"node"
:
">= 10.0.0"
}
},
"node_modules/binary-extensions"
:
{
"version"
:
"2.2.0"
,
"resolved"
:
"https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz"
,
...
...
@@ -598,7 +743,6 @@
"version"
:
"1.1.11"
,
"resolved"
:
"https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz"
,
"integrity"
:
"sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA=="
,
"dev"
:
true
,
"dependencies"
:
{
"balanced-match"
:
"^1.0.0"
,
"concat-map"
:
"0.0.1"
...
...
@@ -769,6 +913,14 @@
"fsevents"
:
"~2.3.2"
}
},
"node_modules/chownr"
:
{
"version"
:
"2.0.0"
,
"resolved"
:
"https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz"
,
"integrity"
:
"sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ=="
,
"engines"
:
{
"node"
:
">=10"
}
},
"node_modules/clone"
:
{
"version"
:
"1.0.4"
,
"resolved"
:
"https://registry.npmjs.org/clone/-/clone-1.0.4.tgz"
,
...
...
@@ -790,11 +942,18 @@
"resolved"
:
"https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz"
,
"integrity"
:
"sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw=="
},
"node_modules/color-support"
:
{
"version"
:
"1.1.3"
,
"resolved"
:
"https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz"
,
"integrity"
:
"sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg=="
,
"bin"
:
{
"color-support"
:
"bin.js"
}
},
"node_modules/concat-map"
:
{
"version"
:
"0.0.1"
,
"resolved"
:
"https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz"
,
"integrity"
:
"sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg=="
,
"dev"
:
true
"integrity"
:
"sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg=="
},
"node_modules/concat-stream"
:
{
"version"
:
"1.6.2"
,
...
...
@@ -810,6 +969,11 @@
"typedarray"
:
"^0.0.6"
}
},
"node_modules/console-control-strings"
:
{
"version"
:
"1.1.0"
,
"resolved"
:
"https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz"
,
"integrity"
:
"sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ=="
},
"node_modules/content-disposition"
:
{
"version"
:
"0.5.4"
,
"resolved"
:
"https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz"
,
...
...
@@ -872,6 +1036,11 @@
"ms"
:
"2.0.0"
}
},
"node_modules/delegates"
:
{
"version"
:
"1.0.0"
,
"resolved"
:
"https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz"
,
"integrity"
:
"sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ=="
},
"node_modules/denque"
:
{
"version"
:
"2.1.0"
,
"resolved"
:
"https://registry.npmjs.org/denque/-/denque-2.1.0.tgz"
,
...
...
@@ -897,6 +1066,14 @@
"npm"
:
"1.2.8000 || >= 1.4.16"
}
},
"node_modules/detect-libc"
:
{
"version"
:
"2.0.1"
,
"resolved"
:
"https://registry.npmjs.org/detect-libc/-/detect-libc-2.0.1.tgz"
,
"integrity"
:
"sha512-463v3ZeIrcWtdgIg6vI6XUncguvr2TnGl4SzDXinkt9mSLpBJKXT3mW6xT3VQdDN11+WVs29pgvivTc4Lp8v+w=="
,
"engines"
:
{
"node"
:
">=8"
}
},
"node_modules/ee-first"
:
{
"version"
:
"1.1.1"
,
"resolved"
:
"https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz"
,
...
...
@@ -907,6 +1084,11 @@
"resolved"
:
"https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.353.tgz"
,
"integrity"
:
"sha512-IdJVpMHJoBT/nn0GQ02wPfbhogDVpd1ud95lP//FTf5l35wzxKJwibB4HBdY7Q+xKPA1nkZ0UDLOMyRj5U5IAQ=="
},
"node_modules/emoji-regex"
:
{
"version"
:
"8.0.0"
,
"resolved"
:
"https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz"
,
"integrity"
:
"sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="
},
"node_modules/encodeurl"
:
{
"version"
:
"1.0.2"
,
"resolved"
:
"https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz"
,
...
...
@@ -1040,6 +1222,38 @@
"node"
:
">= 0.6"
}
},
"node_modules/fs-minipass"
:
{
"version"
:
"2.1.0"
,
"resolved"
:
"https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz"
,
"integrity"
:
"sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg=="
,
"dependencies"
:
{
"minipass"
:
"^3.0.0"
},
"engines"
:
{
"node"
:
">= 8"
}
},
"node_modules/fs-minipass/node_modules/minipass"
:
{
"version"
:
"3.3.6"
,
"resolved"
:
"https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz"
,
"integrity"
:
"sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw=="
,
"dependencies"
:
{
"yallist"
:
"^4.0.0"
},
"engines"
:
{
"node"
:
">=8"
}
},
"node_modules/fs-minipass/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/fs.realpath"
:
{
"version"
:
"1.0.0"
,
"resolved"
:
"https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz"
,
"integrity"
:
"sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw=="
},
"node_modules/fsevents"
:
{
"version"
:
"2.3.2"
,
"resolved"
:
"https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz"
,
...
...
@@ -1059,6 +1273,25 @@
"resolved"
:
"https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz"
,
"integrity"
:
"sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
},
"node_modules/gauge"
:
{
"version"
:
"3.0.2"
,
"resolved"
:
"https://registry.npmjs.org/gauge/-/gauge-3.0.2.tgz"
,
"integrity"
:
"sha512-+5J6MS/5XksCuXq++uFRsnUd7Ovu1XenbeuIuNRJxYWjgQbPuFhT14lAvsWfqfAmnwluf1OwMjz39HjfLPci0Q=="
,
"dependencies"
:
{
"aproba"
:
"^1.0.3 || ^2.0.0"
,
"color-support"
:
"^1.1.2"
,
"console-control-strings"
:
"^1.0.0"
,
"has-unicode"
:
"^2.0.1"
,
"object-assign"
:
"^4.1.1"
,
"signal-exit"
:
"^3.0.0"
,
"string-width"
:
"^4.2.3"
,
"strip-ansi"
:
"^6.0.1"
,
"wide-align"
:
"^1.1.2"
},
"engines"
:
{
"node"
:
">=10"
}
},
"node_modules/gensync"
:
{
"version"
:
"1.0.0-beta.2"
,
"resolved"
:
"https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz"
,
...
...
@@ -1080,6 +1313,25 @@
"url"
:
"https://github.com/sponsors/ljharb"
}
},
"node_modules/glob"
:
{
"version"
:
"7.2.3"
,
"resolved"
:
"https://registry.npmjs.org/glob/-/glob-7.2.3.tgz"
,
"integrity"
:
"sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q=="
,
"dependencies"
:
{
"fs.realpath"
:
"^1.0.0"
,
"inflight"
:
"^1.0.4"
,
"inherits"
:
"2"
,
"minimatch"
:
"^3.1.1"
,
"once"
:
"^1.3.0"
,
"path-is-absolute"
:
"^1.0.0"
},
"engines"
:
{
"node"
:
"*"
},
"funding"
:
{
"url"
:
"https://github.com/sponsors/isaacs"
}
},
"node_modules/glob-parent"
:
{
"version"
:
"5.1.2"
,
"resolved"
:
"https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz"
,
...
...
@@ -1130,6 +1382,11 @@
"url"
:
"https://github.com/sponsors/ljharb"
}
},
"node_modules/has-unicode"
:
{
"version"
:
"2.0.1"
,
"resolved"
:
"https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz"
,
"integrity"
:
"sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ=="
},
"node_modules/http-errors"
:
{
"version"
:
"2.0.0"
,
"resolved"
:
"https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz"
,
...
...
@@ -1145,6 +1402,39 @@
"node"
:
">= 0.8"
}
},
"node_modules/https-proxy-agent"
:
{
"version"
:
"5.0.1"
,
"resolved"
:
"https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz"
,
"integrity"
:
"sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA=="
,
"dependencies"
:
{
"agent-base"
:
"6"
,
"debug"
:
"4"
},
"engines"
:
{
"node"
:
">= 6"
}
},
"node_modules/https-proxy-agent/node_modules/debug"
:
{
"version"
:
"4.3.4"
,
"resolved"
:
"https://registry.npmjs.org/debug/-/debug-4.3.4.tgz"
,
"integrity"
:
"sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ=="
,
"dependencies"
:
{
"ms"
:
"2.1.2"
},
"engines"
:
{
"node"
:
">=6.0"
},
"peerDependenciesMeta"
:
{
"supports-color"
:
{
"optional"
:
true
}
}
},
"node_modules/https-proxy-agent/node_modules/ms"
:
{
"version"
:
"2.1.2"
,
"resolved"
:
"https://registry.npmjs.org/ms/-/ms-2.1.2.tgz"
,
"integrity"
:
"sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
},
"node_modules/iconv-lite"
:
{
"version"
:
"0.4.24"
,
"resolved"
:
"https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz"
,
...
...
@@ -1181,6 +1471,15 @@
"integrity"
:
"sha512-Ius2VYcGNk7T90CppJqcIkS5ooHUZyIQK+ClZfMfMNFEF9VSE73Fq+906u/CWu92x4gzZMWOwfFYckPObzdEbA=="
,
"dev"
:
true
},
"node_modules/inflight"
:
{
"version"
:
"1.0.6"
,
"resolved"
:
"https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz"
,
"integrity"
:
"sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA=="
,
"dependencies"
:
{
"once"
:
"^1.3.0"
,
"wrappy"
:
"1"
}
},
"node_modules/inherits"
:
{
"version"
:
"2.0.4"
,
"resolved"
:
"https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz"
,
...
...
@@ -1220,6 +1519,14 @@
"node"
:
">=0.10.0"
}
},
"node_modules/is-fullwidth-code-point"
:
{
"version"
:
"3.0.0"
,
"resolved"
:
"https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz"
,
"integrity"
:
"sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg=="
,
"engines"
:
{
"node"
:
">=8"
}
},
"node_modules/is-glob"
:
{
"version"
:
"4.0.3"
,
"resolved"
:
"https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz"
,
...
...
@@ -1286,6 +1593,28 @@
"yallist"
:
"^3.0.2"
}
},
"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"
,
...
...
@@ -1347,7 +1676,6 @@
"version"
:
"3.1.2"
,
"resolved"
:
"https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz"
,
"integrity"
:
"sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw=="
,
"dev"
:
true
,
"dependencies"
:
{
"brace-expansion"
:
"^1.1.7"
},
...
...
@@ -1363,6 +1691,42 @@
"url"
:
"https://github.com/sponsors/ljharb"
}
},
"node_modules/minipass"
:
{
"version"
:
"4.2.8"
,
"resolved"
:
"https://registry.npmjs.org/minipass/-/minipass-4.2.8.tgz"
,
"integrity"
:
"sha512-fNzuVyifolSLFL4NzpF+wEF4qrgqaaKX0haXPQEdQ7NKAN+WecoKMHV09YcuL/DHxrUsYQOK3MiuDf7Ip2OXfQ=="
,
"engines"
:
{
"node"
:
">=8"
}
},
"node_modules/minizlib"
:
{
"version"
:
"2.1.2"
,
"resolved"
:
"https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz"
,
"integrity"
:
"sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg=="
,
"dependencies"
:
{
"minipass"
:
"^3.0.0"
,
"yallist"
:
"^4.0.0"
},
"engines"
:
{
"node"
:
">= 8"
}
},
"node_modules/minizlib/node_modules/minipass"
:
{
"version"
:
"3.3.6"
,
"resolved"
:
"https://registry.npmjs.org/minipass/-/minipass-3.3.6.tgz"
,
"integrity"
:
"sha512-DxiNidxSEK+tHG6zOIklvNOwm3hvCrbUrdtzY74U6HKTJxvIDfOUL5W5P2Ghd3DTkhhKPYGqeNUIh5qcM4YBfw=="
,
"dependencies"
:
{
"yallist"
:
"^4.0.0"
},
"engines"
:
{
"node"
:
">=8"
}
},
"node_modules/minizlib/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/mkdirp"
:
{
"version"
:
"0.5.6"
,
"resolved"
:
"https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz"
,
...
...
@@ -1565,6 +1929,49 @@
"node"
:
">= 0.6"
}
},
"node_modules/node-addon-api"
:
{
"version"
:
"5.1.0"
,
"resolved"
:
"https://registry.npmjs.org/node-addon-api/-/node-addon-api-5.1.0.tgz"
,
"integrity"
:
"sha512-eh0GgfEkpnoWDq+VY8OyvYhFEzBk6jIYbRKdIlyTiAXIVJ8PyBaKb0rp7oDtoddbdoHWhq8wwr+XZ81F1rpNdA=="
},
"node_modules/node-fetch"
:
{
"version"
:
"2.6.9"
,
"resolved"
:
"https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.9.tgz"
,
"integrity"
:
"sha512-DJm/CJkZkRjKKj4Zi4BsKVZh3ValV5IR5s7LVZnW+6YMh0W1BfNA8XSs6DLMGYlId5F3KnA70uu2qepcR08Qqg=="
,
"dependencies"
:
{
"whatwg-url"
:
"^5.0.0"
},
"engines"
:
{
"node"
:
"4.x || >=6.0.0"
},
"peerDependencies"
:
{
"encoding"
:
"^0.1.0"
},
"peerDependenciesMeta"
:
{
"encoding"
:
{
"optional"
:
true
}
}
},
"node_modules/node-fetch/node_modules/tr46"
:
{
"version"
:
"0.0.3"
,
"resolved"
:
"https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz"
,
"integrity"
:
"sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw=="
},
"node_modules/node-fetch/node_modules/webidl-conversions"
:
{
"version"
:
"3.0.1"
,
"resolved"
:
"https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz"
,
"integrity"
:
"sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ=="
},
"node_modules/node-fetch/node_modules/whatwg-url"
:
{
"version"
:
"5.0.0"
,
"resolved"
:
"https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz"
,
"integrity"
:
"sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw=="
,
"dependencies"
:
{
"tr46"
:
"~0.0.3"
,
"webidl-conversions"
:
"^3.0.0"
}
},
"node_modules/node-releases"
:
{
"version"
:
"2.0.10"
,
"resolved"
:
"https://registry.npmjs.org/node-releases/-/node-releases-2.0.10.tgz"
,
...
...
@@ -1637,6 +2044,17 @@
"node"
:
">=0.10.0"
}
},
"node_modules/npmlog"
:
{
"version"
:
"5.0.1"
,
"resolved"
:
"https://registry.npmjs.org/npmlog/-/npmlog-5.0.1.tgz"
,
"integrity"
:
"sha512-AqZtDUWOMKs1G/8lwylVjrdYgqA4d9nu8hc+0gzRxlDb1I10+FHBGMXs6aiQHFdCUUlqH99MUMuLfzWDNDtfxw=="
,
"dependencies"
:
{
"are-we-there-yet"
:
"^2.0.0"
,
"console-control-strings"
:
"^1.1.0"
,
"gauge"
:
"^3.0.0"
,
"set-blocking"
:
"^2.0.0"
}
},
"node_modules/object-assign"
:
{
"version"
:
"4.1.1"
,
"resolved"
:
"https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz"
,
...
...
@@ -1664,6 +2082,14 @@
"node"
:
">= 0.8"
}
},
"node_modules/once"
:
{
"version"
:
"1.4.0"
,
"resolved"
:
"https://registry.npmjs.org/once/-/once-1.4.0.tgz"
,
"integrity"
:
"sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w=="
,
"dependencies"
:
{
"wrappy"
:
"1"
}
},
"node_modules/parseurl"
:
{
"version"
:
"1.3.3"
,
"resolved"
:
"https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz"
,
...
...
@@ -1672,6 +2098,14 @@
"node"
:
">= 0.8"
}
},
"node_modules/path-is-absolute"
:
{
"version"
:
"1.0.1"
,
"resolved"
:
"https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz"
,
"integrity"
:
"sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg=="
,
"engines"
:
{
"node"
:
">=0.10.0"
}
},
"node_modules/path-to-regexp"
:
{
"version"
:
"0.1.7"
,
"resolved"
:
"https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz"
,
...
...
@@ -1792,6 +2226,20 @@
"node"
:
">=8.10.0"
}
},
"node_modules/rimraf"
:
{
"version"
:
"3.0.2"
,
"resolved"
:
"https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz"
,
"integrity"
:
"sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA=="
,
"dependencies"
:
{
"glob"
:
"^7.1.3"
},
"bin"
:
{
"rimraf"
:
"bin.js"
},
"funding"
:
{
"url"
:
"https://github.com/sponsors/isaacs"
}
},
"node_modules/safe-buffer"
:
{
"version"
:
"5.2.1"
,
"resolved"
:
"https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz"
,
...
...
@@ -1879,6 +2327,11 @@
"node"
:
">= 0.8.0"
}
},
"node_modules/set-blocking"
:
{
"version"
:
"2.0.0"
,
"resolved"
:
"https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz"
,
"integrity"
:
"sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw=="
},
"node_modules/setprototypeof"
:
{
"version"
:
"1.2.0"
,
"resolved"
:
"https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz"
,
...
...
@@ -1902,6 +2355,11 @@
"resolved"
:
"https://registry.npmjs.org/sift/-/sift-16.0.0.tgz"
,
"integrity"
:
"sha512-ILTjdP2Mv9V1kIxWMXeMTIRbOBrqKc4JAXmFMnFq3fKeyQ2Qwa3Dw1ubcye3vR+Y6ofA0b9gNDr/y2t6eUeIzQ=="
},
"node_modules/signal-exit"
:
{
"version"
:
"3.0.7"
,
"resolved"
:
"https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz"
,
"integrity"
:
"sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ=="
},
"node_modules/simple-update-notifier"
:
{
"version"
:
"1.1.0"
,
"resolved"
:
"https://registry.npmjs.org/simple-update-notifier/-/simple-update-notifier-1.1.0.tgz"
,
...
...
@@ -1983,6 +2441,30 @@
"resolved"
:
"https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz"
,
"integrity"
:
"sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
},
"node_modules/string-width"
:
{
"version"
:
"4.2.3"
,
"resolved"
:
"https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz"
,
"integrity"
:
"sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g=="
,
"dependencies"
:
{
"emoji-regex"
:
"^8.0.0"
,
"is-fullwidth-code-point"
:
"^3.0.0"
,
"strip-ansi"
:
"^6.0.1"
},
"engines"
:
{
"node"
:
">=8"
}
},
"node_modules/strip-ansi"
:
{
"version"
:
"6.0.1"
,
"resolved"
:
"https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz"
,
"integrity"
:
"sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A=="
,
"dependencies"
:
{
"ansi-regex"
:
"^5.0.1"
},
"engines"
:
{
"node"
:
">=8"
}
},
"node_modules/supports-color"
:
{
"version"
:
"5.5.0"
,
"resolved"
:
"https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz"
,
...
...
@@ -1994,6 +2476,38 @@
"node"
:
">=4"
}
},
"node_modules/tar"
:
{
"version"
:
"6.1.13"
,
"resolved"
:
"https://registry.npmjs.org/tar/-/tar-6.1.13.tgz"
,
"integrity"
:
"sha512-jdIBIN6LTIe2jqzay/2vtYLlBHa3JF42ot3h1dW8Q0PaAG4v8rm0cvpVePtau5C6OKXGGcgO9q2AMNSWxiLqKw=="
,
"dependencies"
:
{
"chownr"
:
"^2.0.0"
,
"fs-minipass"
:
"^2.0.0"
,
"minipass"
:
"^4.0.0"
,
"minizlib"
:
"^2.1.1"
,
"mkdirp"
:
"^1.0.3"
,
"yallist"
:
"^4.0.0"
},
"engines"
:
{
"node"
:
">=10"
}
},
"node_modules/tar/node_modules/mkdirp"
:
{
"version"
:
"1.0.4"
,
"resolved"
:
"https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz"
,
"integrity"
:
"sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw=="
,
"bin"
:
{
"mkdirp"
:
"bin/cmd.js"
},
"engines"
:
{
"node"
:
">=10"
}
},
"node_modules/tar/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/to-fast-properties"
:
{
"version"
:
"2.0.0"
,
"resolved"
:
"https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz"
,
...
...
@@ -2150,6 +2664,19 @@
"node"
:
">=12"
}
},
"node_modules/wide-align"
:
{
"version"
:
"1.1.5"
,
"resolved"
:
"https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz"
,
"integrity"
:
"sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg=="
,
"dependencies"
:
{
"string-width"
:
"^1.0.2 || 2 || 3 || 4"
}
},
"node_modules/wrappy"
:
{
"version"
:
"1.0.2"
,
"resolved"
:
"https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz"
,
"integrity"
:
"sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="
},
"node_modules/xtend"
:
{
"version"
:
"4.0.2"
,
"resolved"
:
"https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz"
,
...
...
api_client/package.json
View file @
0ecb4814
...
...
@@ -12,6 +12,7 @@
"author"
:
""
,
"license"
:
"ISC"
,
"dependencies"
:
{
"bcrypt"
:
"^5.1.0"
,
"cors"
:
"^2.8.5"
,
"express"
:
"^4.18.2"
,
"fix-esm"
:
"^1.0.1"
,
...
...
api_client/routes/users.js
0 → 100644
View file @
0ecb4814
const
router
=
require
(
'express'
).
Router
();
const
User
=
require
(
'../models/User'
);
router
.
post
(
'/'
,
async
(
req
,
res
)
=>
{
try
{
const
user
=
new
User
(
req
.
body
);
user
.
generateToken
();
await
user
.
save
();
res
.
send
(
user
);
}
catch
(
e
)
{
res
.
status
(
400
).
send
(
e
);
}
});
router
.
post
(
'/login'
,
async
(
req
,
res
)
=>
{
const
user
=
await
User
.
findOne
({
username
:
req
.
body
.
username
});
if
(
!
user
)
return
res
.
status
(
400
)
.
send
({
error
:
'Username or password incorrect'
});
if
(
!
await
user
.
checkPassword
(
req
.
body
.
password
.
toString
()))
return
res
.
status
(
400
)
.
send
({
error
:
'Username or password incorrect'
});
user
.
generateToken
();
await
user
.
save
();
res
.
send
({
message
:
"User success authenticated"
,
user
});
});
router
.
get
(
'/profile'
,
async
(
req
,
res
)
=>
{
const
token
=
req
.
get
(
'Authorization'
);
if
(
!
token
)
return
res
.
status
(
401
)
.
send
({
error
:
'No token present'
});
const
user
=
await
User
.
findOne
({
token
});
if
(
!
user
)
return
res
.
status
(
401
)
.
send
(
'Token is wrong'
);
res
.
send
({
message
:
"Большой большой сикрет"
,
username
:
user
.
username
});
});
module
.
exports
=
router
;
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment