Upgrade @extollo/lib and finish dashboard interfaces
This commit is contained in:
parent
4715bf2758
commit
48edd7134f
@ -8,7 +8,7 @@
|
|||||||
"lib": "lib"
|
"lib": "lib"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@extollo/lib": "^0.9.50",
|
"@extollo/lib": "^0.10.5",
|
||||||
"any-date-parser": "^1.5.3",
|
"any-date-parser": "^1.5.3",
|
||||||
"copyfiles": "^2.4.1",
|
"copyfiles": "^2.4.1",
|
||||||
"feed": "^4.2.2",
|
"feed": "^4.2.2",
|
||||||
|
200
pnpm-lock.yaml
200
pnpm-lock.yaml
@ -2,7 +2,7 @@ lockfileVersion: 5.3
|
|||||||
|
|
||||||
specifiers:
|
specifiers:
|
||||||
'@extollo/cc': ^0.6.0
|
'@extollo/cc': ^0.6.0
|
||||||
'@extollo/lib': ^0.9.50
|
'@extollo/lib': ^0.10.5
|
||||||
any-date-parser: ^1.5.3
|
any-date-parser: ^1.5.3
|
||||||
copyfiles: ^2.4.1
|
copyfiles: ^2.4.1
|
||||||
feed: ^4.2.2
|
feed: ^4.2.2
|
||||||
@ -15,7 +15,7 @@ specifiers:
|
|||||||
zod: ^3.11.6
|
zod: ^3.11.6
|
||||||
|
|
||||||
dependencies:
|
dependencies:
|
||||||
'@extollo/lib': 0.9.50
|
'@extollo/lib': 0.10.5
|
||||||
any-date-parser: 1.5.3
|
any-date-parser: 1.5.3
|
||||||
copyfiles: 2.4.1
|
copyfiles: 2.4.1
|
||||||
feed: 4.2.2
|
feed: 4.2.2
|
||||||
@ -37,10 +37,10 @@ packages:
|
|||||||
engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0, npm: '>=6.14.11'}
|
engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0, npm: '>=6.14.11'}
|
||||||
hasBin: true
|
hasBin: true
|
||||||
dependencies:
|
dependencies:
|
||||||
'@babel/runtime': 7.17.8
|
'@babel/runtime': 7.18.6
|
||||||
arg: 5.0.1
|
arg: 5.0.2
|
||||||
chalk: 4.1.2
|
chalk: 4.1.2
|
||||||
core-js: 3.21.1
|
core-js: 3.23.3
|
||||||
fs-extra: 10.0.1
|
fs-extra: 10.0.1
|
||||||
graceful-fs: 4.2.9
|
graceful-fs: 4.2.9
|
||||||
inquirer: 8.2.0
|
inquirer: 8.2.0
|
||||||
@ -50,29 +50,29 @@ packages:
|
|||||||
tslib: 2.3.1
|
tslib: 2.3.1
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/@babel/helper-validator-identifier/7.16.7:
|
/@babel/helper-validator-identifier/7.18.6:
|
||||||
resolution: {integrity: sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==}
|
resolution: {integrity: sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g==}
|
||||||
engines: {node: '>=6.9.0'}
|
engines: {node: '>=6.9.0'}
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/@babel/parser/7.17.8:
|
/@babel/parser/7.18.8:
|
||||||
resolution: {integrity: sha512-BoHhDJrJXqcg+ZL16Xv39H9n+AqJ4pcDrQBGZN+wHxIysrLZ3/ECwCBUch/1zUNhnsXULcONU3Ei5Hmkfk6kiQ==}
|
resolution: {integrity: sha512-RSKRfYX20dyH+elbJK2uqAkVyucL+xXzhqlMD5/ZXx+dAAwpyB7HsvnHe/ZUGOF+xLr5Wx9/JoXVTj6BQE2/oA==}
|
||||||
engines: {node: '>=6.0.0'}
|
engines: {node: '>=6.0.0'}
|
||||||
hasBin: true
|
hasBin: true
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/@babel/runtime/7.17.8:
|
/@babel/runtime/7.18.6:
|
||||||
resolution: {integrity: sha512-dQpEpK0O9o6lj6oPu0gRDbbnk+4LeHlNcBpspf6Olzt3GIX4P1lWF1gS+pHLDFlaJvbR6q7jCfQ08zA4QJBnmA==}
|
resolution: {integrity: sha512-t9wi7/AW6XtKahAe20Yw0/mMljKq0B1r2fPdvaAdV/KPDZewFXdaaa6K7lxmZBZ8FBNpCiAT6iHPmd6QO9bKfQ==}
|
||||||
engines: {node: '>=6.9.0'}
|
engines: {node: '>=6.9.0'}
|
||||||
dependencies:
|
dependencies:
|
||||||
regenerator-runtime: 0.13.9
|
regenerator-runtime: 0.13.9
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/@babel/types/7.17.0:
|
/@babel/types/7.18.8:
|
||||||
resolution: {integrity: sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw==}
|
resolution: {integrity: sha512-qwpdsmraq0aJ3osLJRApsc2ouSJCdnMeZwB0DhbtHAtRpZNZCdlbRnHIgcRKzdE1g0iOGg644fzjOBcdOz9cPw==}
|
||||||
engines: {node: '>=6.9.0'}
|
engines: {node: '>=6.9.0'}
|
||||||
dependencies:
|
dependencies:
|
||||||
'@babel/helper-validator-identifier': 7.16.7
|
'@babel/helper-validator-identifier': 7.18.6
|
||||||
to-fast-properties: 2.0.0
|
to-fast-properties: 2.0.0
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
@ -116,11 +116,11 @@ packages:
|
|||||||
- supports-color
|
- supports-color
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
/@extollo/lib/0.9.50:
|
/@extollo/lib/0.10.5:
|
||||||
resolution: {integrity: sha512-6tKIpKJ5FDuuGFnvNU+OiPGzYQKvRi1eTVlEd0bgxG0zksZVzN+/lVxvLguk2lXbqumRxWRNzJtJh4uA2NyRig==}
|
resolution: {integrity: sha512-iZKRzjzsfU5gWks79y0FAHJJECed+e1QYozpYFDPExuWYpPdYZB6M7WKTmX1cBnF6Tv7QGtLXGsEHJxAmEl3gw==}
|
||||||
dependencies:
|
dependencies:
|
||||||
'@atao60/fse-cli': 0.1.7
|
'@atao60/fse-cli': 0.1.7
|
||||||
'@extollo/ui': 0.1.0_@types+node@14.18.12
|
'@extollo/ui': 0.1.0_@types+node@14.18.21
|
||||||
'@types/bcrypt': 5.0.0
|
'@types/bcrypt': 5.0.0
|
||||||
'@types/busboy': 0.2.4
|
'@types/busboy': 0.2.4
|
||||||
'@types/cli-table': 0.3.0
|
'@types/cli-table': 0.3.0
|
||||||
@ -129,7 +129,7 @@ packages:
|
|||||||
'@types/mime-types': 2.1.1
|
'@types/mime-types': 2.1.1
|
||||||
'@types/mkdirp': 1.0.2
|
'@types/mkdirp': 1.0.2
|
||||||
'@types/negotiator': 0.6.1
|
'@types/negotiator': 0.6.1
|
||||||
'@types/node': 14.18.12
|
'@types/node': 14.18.21
|
||||||
'@types/pg': 8.6.5
|
'@types/pg': 8.6.5
|
||||||
'@types/pluralize': 0.0.29
|
'@types/pluralize': 0.0.29
|
||||||
'@types/pug': 2.0.6
|
'@types/pug': 2.0.6
|
||||||
@ -146,13 +146,13 @@ packages:
|
|||||||
mime-types: 2.1.35
|
mime-types: 2.1.35
|
||||||
mkdirp: 1.0.4
|
mkdirp: 1.0.4
|
||||||
negotiator: 0.6.3
|
negotiator: 0.6.3
|
||||||
node-fetch: 3.2.3
|
node-fetch: 3.2.6
|
||||||
pg: 8.7.3
|
pg: 8.7.3
|
||||||
pluralize: 8.0.0
|
pluralize: 8.0.0
|
||||||
pug: 3.0.2
|
pug: 3.0.2
|
||||||
reflect-metadata: 0.1.13
|
reflect-metadata: 0.1.13
|
||||||
rimraf: 3.0.2
|
rimraf: 3.0.2
|
||||||
ssh2: 1.8.0
|
ssh2: 1.11.0
|
||||||
ts-node: 9.1.1_typescript@4.6.3
|
ts-node: 9.1.1_typescript@4.6.3
|
||||||
typedoc: 0.20.37_typescript@4.6.3
|
typedoc: 0.20.37_typescript@4.6.3
|
||||||
typedoc-plugin-pages-fork: 0.0.1
|
typedoc-plugin-pages-fork: 0.0.1
|
||||||
@ -168,17 +168,17 @@ packages:
|
|||||||
- supports-color
|
- supports-color
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/@extollo/ui/0.1.0_@types+node@14.18.12:
|
/@extollo/ui/0.1.0_@types+node@14.18.21:
|
||||||
resolution: {integrity: sha512-EuFpNfIyL9ZTbrlCxeOwIJaZnZo3EOLEKNUDHgGgTfEUJPDKKl8VTrGsuCEGWtPnwZwz/kwD0q8Qv+jTdgducQ==}
|
resolution: {integrity: sha512-EuFpNfIyL9ZTbrlCxeOwIJaZnZo3EOLEKNUDHgGgTfEUJPDKKl8VTrGsuCEGWtPnwZwz/kwD0q8Qv+jTdgducQ==}
|
||||||
dependencies:
|
dependencies:
|
||||||
'@popperjs/core': 2.11.4
|
'@popperjs/core': 2.11.5
|
||||||
'@types/rimraf': 3.0.2
|
'@types/rimraf': 3.0.2
|
||||||
'@types/uuid': 8.3.4
|
'@types/uuid': 8.3.4
|
||||||
bootstrap: 5.1.3_@popperjs+core@2.11.4
|
bootstrap: 5.1.3_@popperjs+core@2.11.5
|
||||||
dotenv: 10.0.0
|
dotenv: 10.0.0
|
||||||
mkdirp: 1.0.4
|
mkdirp: 1.0.4
|
||||||
rimraf: 3.0.2
|
rimraf: 3.0.2
|
||||||
ts-node: 10.7.0_b34c2d00f7bffffd3f771e5188a8c9e6
|
ts-node: 10.7.0_2c83ab3fa4a45acf1e79be32ccb30210
|
||||||
typescript: 4.6.3
|
typescript: 4.6.3
|
||||||
uuid: 8.3.2
|
uuid: 8.3.2
|
||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
@ -192,7 +192,7 @@ packages:
|
|||||||
hasBin: true
|
hasBin: true
|
||||||
dependencies:
|
dependencies:
|
||||||
detect-libc: 2.0.1
|
detect-libc: 2.0.1
|
||||||
https-proxy-agent: 5.0.0
|
https-proxy-agent: 5.0.1
|
||||||
make-dir: 3.1.0
|
make-dir: 3.1.0
|
||||||
node-fetch: 2.6.7
|
node-fetch: 2.6.7
|
||||||
nopt: 5.0.0
|
nopt: 5.0.0
|
||||||
@ -305,8 +305,8 @@ packages:
|
|||||||
transitivePeerDependencies:
|
transitivePeerDependencies:
|
||||||
- supports-color
|
- supports-color
|
||||||
|
|
||||||
/@popperjs/core/2.11.4:
|
/@popperjs/core/2.11.5:
|
||||||
resolution: {integrity: sha512-q/ytXxO5NKvyT37pmisQAItCFqA7FD/vNb8dgaJy3/630Fsc+Mz9/9f2SziBoIZ30TJooXyTwZmhi1zjXmObYg==}
|
resolution: {integrity: sha512-9X2obfABZuDVLCgPK9aX0a/x4jaOEweTTWE2+9sr0Qqqevj2Uv5XorvusThmc9XGYpS9yI+fhh8RTafBtGposw==}
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/@sindresorhus/is/2.1.1:
|
/@sindresorhus/is/2.1.1:
|
||||||
@ -420,8 +420,8 @@ packages:
|
|||||||
resolution: {integrity: sha512-c4mvXFByghezQ/eVGN5HvH/jI63vm3B7FiE81BUzDAWmuiohRecCO6ddU60dfq29oKUMiQujsoB2h0JQC7JHKA==}
|
resolution: {integrity: sha512-c4mvXFByghezQ/eVGN5HvH/jI63vm3B7FiE81BUzDAWmuiohRecCO6ddU60dfq29oKUMiQujsoB2h0JQC7JHKA==}
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/@types/node/14.18.12:
|
/@types/node/14.18.21:
|
||||||
resolution: {integrity: sha512-q4jlIR71hUpWTnGhXWcakgkZeHa3CCjcQcnuzU8M891BAWA2jHiziiWEPEkdS5pFsz7H9HJiy8BrK7tBRNrY7A==}
|
resolution: {integrity: sha512-x5W9s+8P4XteaxT/jKF0PSb7XEvo5VmqEWgsMlyeY4ZlLK8I6aH6g5TPPyDlLAep+GYf4kefb7HFyc7PAO3m+Q==}
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/@types/node/17.0.23:
|
/@types/node/17.0.23:
|
||||||
@ -560,8 +560,8 @@ packages:
|
|||||||
/arg/4.1.3:
|
/arg/4.1.3:
|
||||||
resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==}
|
resolution: {integrity: sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==}
|
||||||
|
|
||||||
/arg/5.0.1:
|
/arg/5.0.2:
|
||||||
resolution: {integrity: sha512-e0hDa9H2Z9AwFkk2qDlwhoMYE4eToKarchkQHovNdLTCYMHZHeRjI71crOh+dio4K6u1IcwubQqo79Ga4CyAQA==}
|
resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==}
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/argparse/2.0.1:
|
/argparse/2.0.1:
|
||||||
@ -573,7 +573,7 @@ packages:
|
|||||||
engines: {node: '>=8'}
|
engines: {node: '>=8'}
|
||||||
|
|
||||||
/asap/2.0.6:
|
/asap/2.0.6:
|
||||||
resolution: {integrity: sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=}
|
resolution: {integrity: sha512-BSHWgDSAiKs50o2Re8ppvp3seVHXSRM44cdSsT9FfNEUUZLOGWVCsiWaRPWM1Znn+mqZ1OfVZ3z3DWEzSp7hRA==}
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/asn1/0.2.6:
|
/asn1/0.2.6:
|
||||||
@ -597,7 +597,7 @@ packages:
|
|||||||
resolution: {integrity: sha512-GAwkz0AihzY5bkwIY5QDR+LvsRQgB/B+1foMPvi0FZPMl5fjD7ICiznUiBdLYMH1QYe6vqu4gWYytZOccLouFw==}
|
resolution: {integrity: sha512-GAwkz0AihzY5bkwIY5QDR+LvsRQgB/B+1foMPvi0FZPMl5fjD7ICiznUiBdLYMH1QYe6vqu4gWYytZOccLouFw==}
|
||||||
engines: {node: '>= 10.0.0'}
|
engines: {node: '>= 10.0.0'}
|
||||||
dependencies:
|
dependencies:
|
||||||
'@babel/types': 7.17.0
|
'@babel/types': 7.18.8
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/balanced-match/1.0.2:
|
/balanced-match/1.0.2:
|
||||||
@ -607,7 +607,7 @@ packages:
|
|||||||
resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==}
|
resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==}
|
||||||
|
|
||||||
/bcrypt-pbkdf/1.0.2:
|
/bcrypt-pbkdf/1.0.2:
|
||||||
resolution: {integrity: sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=}
|
resolution: {integrity: sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==}
|
||||||
dependencies:
|
dependencies:
|
||||||
tweetnacl: 0.14.5
|
tweetnacl: 0.14.5
|
||||||
dev: false
|
dev: false
|
||||||
@ -635,12 +635,12 @@ packages:
|
|||||||
inherits: 2.0.4
|
inherits: 2.0.4
|
||||||
readable-stream: 3.6.0
|
readable-stream: 3.6.0
|
||||||
|
|
||||||
/bootstrap/5.1.3_@popperjs+core@2.11.4:
|
/bootstrap/5.1.3_@popperjs+core@2.11.5:
|
||||||
resolution: {integrity: sha512-fcQztozJ8jToQWXxVuEyXWW+dSo8AiXWKwiSSrKWsRB/Qt+Ewwza+JWoLKiTuQLaEPhdNAJ7+Dosc9DOIqNy7Q==}
|
resolution: {integrity: sha512-fcQztozJ8jToQWXxVuEyXWW+dSo8AiXWKwiSSrKWsRB/Qt+Ewwza+JWoLKiTuQLaEPhdNAJ7+Dosc9DOIqNy7Q==}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
'@popperjs/core': ^2.10.2
|
'@popperjs/core': ^2.10.2
|
||||||
dependencies:
|
dependencies:
|
||||||
'@popperjs/core': 2.11.4
|
'@popperjs/core': 2.11.5
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/brace-expansion/1.1.11:
|
/brace-expansion/1.1.11:
|
||||||
@ -712,7 +712,7 @@ packages:
|
|||||||
resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==}
|
resolution: {integrity: sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==}
|
||||||
dependencies:
|
dependencies:
|
||||||
function-bind: 1.1.1
|
function-bind: 1.1.1
|
||||||
get-intrinsic: 1.1.1
|
get-intrinsic: 1.1.2
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/callsites/3.1.0:
|
/callsites/3.1.0:
|
||||||
@ -731,7 +731,7 @@ packages:
|
|||||||
supports-color: 7.2.0
|
supports-color: 7.2.0
|
||||||
|
|
||||||
/character-parser/2.2.0:
|
/character-parser/2.2.0:
|
||||||
resolution: {integrity: sha1-x84o821LzZdE5f/CxfzeHHMmH8A=}
|
resolution: {integrity: sha512-+UqJQjFEFaTAs3bNsF2j2kEN1baG/zghZbdqoYEDxGZtJo9LBzl1A+m0D4n3qKx8N2FNv8/Xp6yV9mQmBuptaw==}
|
||||||
dependencies:
|
dependencies:
|
||||||
is-regex: 1.1.4
|
is-regex: 1.1.4
|
||||||
dev: false
|
dev: false
|
||||||
@ -834,7 +834,7 @@ packages:
|
|||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/colors/1.0.3:
|
/colors/1.0.3:
|
||||||
resolution: {integrity: sha1-BDP0TYCWgP3rYO0mDxsMJi6CpAs=}
|
resolution: {integrity: sha512-pFGrxThWcWQ2MsAz6RtgeWe4NK2kUE1WfsrvvlctdII745EW9I0yflqhe7++M5LEc7bV2c/9/5zc8sFcpL0Drw==}
|
||||||
engines: {node: '>=0.1.90'}
|
engines: {node: '>=0.1.90'}
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
@ -859,14 +859,14 @@ packages:
|
|||||||
resolution: {integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=}
|
resolution: {integrity: sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=}
|
||||||
|
|
||||||
/console-control-strings/1.1.0:
|
/console-control-strings/1.1.0:
|
||||||
resolution: {integrity: sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=}
|
resolution: {integrity: sha512-ty/fTekppD2fIwRvnZAVdeOiGd1c7YXEixbgJTNzqcxJWKQnjJ/V1bNEEE6hygpM3WjwHFUVK6HTjWSzV4a8sQ==}
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/constantinople/4.0.1:
|
/constantinople/4.0.1:
|
||||||
resolution: {integrity: sha512-vCrqcSIq4//Gx74TXXCGnHpulY1dskqLTFGDmhrGxzeXL8lF8kvXv6mpNWlJj1uD4DW23D4ljAqbY4RRaaUZIw==}
|
resolution: {integrity: sha512-vCrqcSIq4//Gx74TXXCGnHpulY1dskqLTFGDmhrGxzeXL8lF8kvXv6mpNWlJj1uD4DW23D4ljAqbY4RRaaUZIw==}
|
||||||
dependencies:
|
dependencies:
|
||||||
'@babel/parser': 7.17.8
|
'@babel/parser': 7.18.8
|
||||||
'@babel/types': 7.17.0
|
'@babel/types': 7.18.8
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/copyfiles/2.4.1:
|
/copyfiles/2.4.1:
|
||||||
@ -882,8 +882,8 @@ packages:
|
|||||||
yargs: 16.2.0
|
yargs: 16.2.0
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/core-js/3.21.1:
|
/core-js/3.23.3:
|
||||||
resolution: {integrity: sha512-FRq5b/VMrWlrmCzwRrpDYNxyHP9BcAZC+xHJaqTgIE5091ZV1NTmyh0sGOg5XqpnHvR0svdy0sv1gWA1zmhxig==}
|
resolution: {integrity: sha512-oAKwkj9xcWNBAvGbT//WiCdOMpb9XQG92/Fe3ABFM/R16BsHgePG00mFOgKf7IsCtfj8tA1kHtf/VwErhriz5Q==}
|
||||||
requiresBuild: true
|
requiresBuild: true
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
@ -891,8 +891,8 @@ packages:
|
|||||||
resolution: {integrity: sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=}
|
resolution: {integrity: sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=}
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/cpu-features/0.0.3:
|
/cpu-features/0.0.4:
|
||||||
resolution: {integrity: sha512-p6C/uud4F4bDyCz9+BNU22KdV1AGxPK6L9rQG9x3x4SSzdMPyBPErP7Rxn8avT2ex1M2g5Rpjz5Us/ri/766Qg==}
|
resolution: {integrity: sha512-fKiZ/zp1mUwQbnzb9IghXtHtDoTMtNeb8oYGx6kX2SYfhnG0HNdBEBIzB9b5KlXu5DQPhfy3mInbBxFcgwAr3A==}
|
||||||
engines: {node: '>=10.0.0'}
|
engines: {node: '>=10.0.0'}
|
||||||
requiresBuild: true
|
requiresBuild: true
|
||||||
dependencies:
|
dependencies:
|
||||||
@ -945,7 +945,7 @@ packages:
|
|||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/delegates/1.0.0:
|
/delegates/1.0.0:
|
||||||
resolution: {integrity: sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=}
|
resolution: {integrity: sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==}
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/denque/1.5.1:
|
/denque/1.5.1:
|
||||||
@ -976,7 +976,7 @@ packages:
|
|||||||
path-type: 4.0.0
|
path-type: 4.0.0
|
||||||
|
|
||||||
/doctypes/1.1.0:
|
/doctypes/1.1.0:
|
||||||
resolution: {integrity: sha1-6oCxBqh1OHdOijpKWv4pPeSJ4Kk=}
|
resolution: {integrity: sha512-LLBi6pEqS6Do3EKQ3J0NqHWV5hhb78Pi8vvESYwyOy2c31ZEZVdtitdzsQsKb7878PEERhzUk0ftqGhG6Mz+pQ==}
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/dotenv/10.0.0:
|
/dotenv/10.0.0:
|
||||||
@ -1102,12 +1102,12 @@ packages:
|
|||||||
xml-js: 1.6.11
|
xml-js: 1.6.11
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/fetch-blob/3.1.5:
|
/fetch-blob/3.2.0:
|
||||||
resolution: {integrity: sha512-N64ZpKqoLejlrwkIAnb9iLSA3Vx/kjgzpcDhygcqJ2KKjky8nCgUQ+dzXtbrLaWZGZNmNfQTsiQ0weZ1svglHg==}
|
resolution: {integrity: sha512-7yAQpD2UMJzLi1Dqv7qFYnPbaPx7ZfFK6PiIxQ4PfkGPyNyl2Ugx+a/umUonmKqjhM4DnfbMvdX6otXq83soQQ==}
|
||||||
engines: {node: ^12.20 || >= 14.13}
|
engines: {node: ^12.20 || >= 14.13}
|
||||||
dependencies:
|
dependencies:
|
||||||
node-domexception: 1.0.0
|
node-domexception: 1.0.0
|
||||||
web-streams-polyfill: 3.2.0
|
web-streams-polyfill: 3.2.1
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/figures/3.2.0:
|
/figures/3.2.0:
|
||||||
@ -1126,7 +1126,7 @@ packages:
|
|||||||
resolution: {integrity: sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==}
|
resolution: {integrity: sha512-buewHzMvYL29jdeQTVILecSaZKnt/RJWjoZCF5OW60Z67/GmSLBkOFM7qh1PI3zFNtJbaZL5eQu1vLfazOwj4g==}
|
||||||
engines: {node: '>=12.20.0'}
|
engines: {node: '>=12.20.0'}
|
||||||
dependencies:
|
dependencies:
|
||||||
fetch-blob: 3.1.5
|
fetch-blob: 3.2.0
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/fs-extra/10.0.1:
|
/fs-extra/10.0.1:
|
||||||
@ -1158,7 +1158,7 @@ packages:
|
|||||||
resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==}
|
resolution: {integrity: sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==}
|
||||||
engines: {node: '>= 8'}
|
engines: {node: '>= 8'}
|
||||||
dependencies:
|
dependencies:
|
||||||
minipass: 3.1.6
|
minipass: 3.3.4
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/fs.realpath/1.0.0:
|
/fs.realpath/1.0.0:
|
||||||
@ -1194,8 +1194,8 @@ packages:
|
|||||||
engines: {node: 6.* || 8.* || >= 10.*}
|
engines: {node: 6.* || 8.* || >= 10.*}
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/get-intrinsic/1.1.1:
|
/get-intrinsic/1.1.2:
|
||||||
resolution: {integrity: sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==}
|
resolution: {integrity: sha512-Jfm3OyCxHh9DJyc28qGk+JmfkpO41A4XkneDSujN9MDXrm4oDKdHvndhZ2dN94+ERNfkYJWDclW6k2L/ZGHjXA==}
|
||||||
dependencies:
|
dependencies:
|
||||||
function-bind: 1.1.1
|
function-bind: 1.1.1
|
||||||
has: 1.0.3
|
has: 1.0.3
|
||||||
@ -1284,7 +1284,7 @@ packages:
|
|||||||
source-map: 0.6.1
|
source-map: 0.6.1
|
||||||
wordwrap: 1.0.0
|
wordwrap: 1.0.0
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
uglify-js: 3.16.1
|
uglify-js: 3.16.2
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/has-flag/4.0.0:
|
/has-flag/4.0.0:
|
||||||
@ -1304,7 +1304,7 @@ packages:
|
|||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/has-unicode/2.0.1:
|
/has-unicode/2.0.1:
|
||||||
resolution: {integrity: sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=}
|
resolution: {integrity: sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==}
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/has/1.0.3:
|
/has/1.0.3:
|
||||||
@ -1317,8 +1317,8 @@ packages:
|
|||||||
resolution: {integrity: sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==}
|
resolution: {integrity: sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==}
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/https-proxy-agent/5.0.0:
|
/https-proxy-agent/5.0.1:
|
||||||
resolution: {integrity: sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==}
|
resolution: {integrity: sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==}
|
||||||
engines: {node: '>= 6'}
|
engines: {node: '>= 6'}
|
||||||
dependencies:
|
dependencies:
|
||||||
agent-base: 6.0.2
|
agent-base: 6.0.2
|
||||||
@ -1480,7 +1480,7 @@ packages:
|
|||||||
resolution: {integrity: sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=}
|
resolution: {integrity: sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=}
|
||||||
|
|
||||||
/js-stringify/1.0.2:
|
/js-stringify/1.0.2:
|
||||||
resolution: {integrity: sha1-Fzb939lyTyijaCrcYjCufk6Weds=}
|
resolution: {integrity: sha512-rtS5ATOo2Q5k1G+DADISilDA6lv79zIiwFd6CcjuIxGKLFm5C+RLImRscVap9k55i+MOZwgliw+NejvkLuGD5g==}
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/json-buffer/3.0.1:
|
/json-buffer/3.0.1:
|
||||||
@ -1553,43 +1553,43 @@ packages:
|
|||||||
engines: {node: '>=0.10.0'}
|
engines: {node: '>=0.10.0'}
|
||||||
|
|
||||||
/lodash.defaults/4.2.0:
|
/lodash.defaults/4.2.0:
|
||||||
resolution: {integrity: sha1-0JF4cW/+pN3p5ft7N/bwgCJ0WAw=}
|
resolution: {integrity: sha512-qjxPLHd3r5DnsdGacqOMU6pb/avJzdh9tFX2ymgoZE27BmjXrNy/y4LoaiTeAb+O3gL8AfpJGtqfX/ae2leYYQ==}
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/lodash.flatten/4.4.0:
|
/lodash.flatten/4.4.0:
|
||||||
resolution: {integrity: sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8=}
|
resolution: {integrity: sha512-C5N2Z3DgnnKr0LOpv/hKCgKdb7ZZwafIrsesve6lmzvZIRZRGaZ/l6Q8+2W7NaT+ZwO3fFlSCzCzrDCFdJfZ4g==}
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/lodash.includes/4.3.0:
|
/lodash.includes/4.3.0:
|
||||||
resolution: {integrity: sha1-YLuYqHy5I8aMoeUTJUgzFISfVT8=}
|
resolution: {integrity: sha512-W3Bx6mdkRTGtlJISOvVD/lbqjTlPPUDTMnlXZFnVwi9NKJ6tiAk6LVdlhZMm17VZisqhKcgzpO5Wz91PCt5b0w==}
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/lodash.isarguments/3.1.0:
|
/lodash.isarguments/3.1.0:
|
||||||
resolution: {integrity: sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo=}
|
resolution: {integrity: sha512-chi4NHZlZqZD18a0imDHnZPrDeBbTtVN7GXMwuGdRH9qotxAjYs3aVLKc7zNOG9eddR5Ksd8rvFEBc9SsggPpg==}
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/lodash.isboolean/3.0.3:
|
/lodash.isboolean/3.0.3:
|
||||||
resolution: {integrity: sha1-bC4XHbKiV82WgC/UOwGyDV9YcPY=}
|
resolution: {integrity: sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg==}
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/lodash.isinteger/4.0.4:
|
/lodash.isinteger/4.0.4:
|
||||||
resolution: {integrity: sha1-YZwK89A/iwTDH1iChAt3sRzWg0M=}
|
resolution: {integrity: sha512-DBwtEWN2caHQ9/imiNeEA5ys1JoRtRfY3d7V9wkqtbycnAmTvRRmbHKDV4a0EYc678/dia0jrte4tjYwVBaZUA==}
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/lodash.isnumber/3.0.3:
|
/lodash.isnumber/3.0.3:
|
||||||
resolution: {integrity: sha1-POdoEMWSjQM1IwGsKHMX8RwLH/w=}
|
resolution: {integrity: sha512-QYqzpfwO3/CWf3XP+Z+tkQsfaLL/EnUlXWVkIk5FUPc4sBdTehEqZONuyRt2P67PXAk+NXmTBcc97zw9t1FQrw==}
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/lodash.isplainobject/4.0.6:
|
/lodash.isplainobject/4.0.6:
|
||||||
resolution: {integrity: sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=}
|
resolution: {integrity: sha512-oSXzaWypCMHkPC3NvBEaPHf0KsA5mvPrOPgQWDsbg8n7orZ290M0BmC/jgRZ4vcJ6DTAhjrsSYgdsW/F+MFOBA==}
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/lodash.isstring/4.0.1:
|
/lodash.isstring/4.0.1:
|
||||||
resolution: {integrity: sha1-1SfftUVuynzJu5XV2ur4i6VKVFE=}
|
resolution: {integrity: sha512-0wJxfxH1wgO3GrbuP+dTTk7op+6L41QCXbGINEmD+ny/G/eCqGzxyCsh7159S+mgDDcoarnBw6PC1PS5+wUGgw==}
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/lodash.once/4.1.1:
|
/lodash.once/4.1.1:
|
||||||
resolution: {integrity: sha1-DdOXEhPHxW34gJd9UEyI+0cal6w=}
|
resolution: {integrity: sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg==}
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/lodash/4.17.21:
|
/lodash/4.17.21:
|
||||||
@ -1701,8 +1701,8 @@ packages:
|
|||||||
/minimist/1.2.5:
|
/minimist/1.2.5:
|
||||||
resolution: {integrity: sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==}
|
resolution: {integrity: sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==}
|
||||||
|
|
||||||
/minipass/3.1.6:
|
/minipass/3.3.4:
|
||||||
resolution: {integrity: sha512-rty5kpw9/z8SX9dmxblFA6edItUmwJgMeYDZRrwlIVN27i8gysGbznJwUggw2V/FVqFSDdWy040ZPS811DYAqQ==}
|
resolution: {integrity: sha512-I9WPbWHCGu8W+6k1ZiGpPu0GkoKBeorkfKNuAFBNS1HNFJvke82sxvI5bzcCNpWPorkOO5QQ+zomzzwRxejXiw==}
|
||||||
engines: {node: '>=8'}
|
engines: {node: '>=8'}
|
||||||
dependencies:
|
dependencies:
|
||||||
yallist: 4.0.0
|
yallist: 4.0.0
|
||||||
@ -1712,7 +1712,7 @@ packages:
|
|||||||
resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==}
|
resolution: {integrity: sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==}
|
||||||
engines: {node: '>= 8'}
|
engines: {node: '>= 8'}
|
||||||
dependencies:
|
dependencies:
|
||||||
minipass: 3.1.6
|
minipass: 3.3.4
|
||||||
yallist: 4.0.0
|
yallist: 4.0.0
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
@ -1766,12 +1766,12 @@ packages:
|
|||||||
whatwg-url: 5.0.0
|
whatwg-url: 5.0.0
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/node-fetch/3.2.3:
|
/node-fetch/3.2.6:
|
||||||
resolution: {integrity: sha512-AXP18u4pidSZ1xYXRDPY/8jdv3RAozIt/WLNR/MBGZAz+xjtlr90RvCnsvHQRiXyWliZF/CpytExp32UU67/SA==}
|
resolution: {integrity: sha512-LAy/HZnLADOVkVPubaxHDft29booGglPFDr2Hw0J1AercRh01UiVFm++KMDnJeH9sHgNB4hsXPii7Sgym/sTbw==}
|
||||||
engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
|
engines: {node: ^12.20.0 || ^14.13.1 || >=16.0.0}
|
||||||
dependencies:
|
dependencies:
|
||||||
data-uri-to-buffer: 4.0.0
|
data-uri-to-buffer: 4.0.0
|
||||||
fetch-blob: 3.1.5
|
fetch-blob: 3.2.0
|
||||||
formdata-polyfill: 4.0.10
|
formdata-polyfill: 4.0.10
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
@ -1809,7 +1809,7 @@ packages:
|
|||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/object-assign/4.1.1:
|
/object-assign/4.1.1:
|
||||||
resolution: {integrity: sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=}
|
resolution: {integrity: sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==}
|
||||||
engines: {node: '>=0.10.0'}
|
engines: {node: '>=0.10.0'}
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
@ -1960,7 +1960,7 @@ packages:
|
|||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/postgres-bytea/1.0.0:
|
/postgres-bytea/1.0.0:
|
||||||
resolution: {integrity: sha1-AntTPAqokOJtFy1Hz5zOzFIazTU=}
|
resolution: {integrity: sha512-xy3pmLuQqRBZBXDULy7KbaitYqLcmxigw14Q5sj8QBVLqEwXfeybIKVWiqAXTlcvdvb0+xkOtDbfQMOf4lST1w==}
|
||||||
engines: {node: '>=0.10.0'}
|
engines: {node: '>=0.10.0'}
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
@ -2143,12 +2143,12 @@ packages:
|
|||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/redis-errors/1.2.0:
|
/redis-errors/1.2.0:
|
||||||
resolution: {integrity: sha1-62LSrbFeTq9GEMBK/hUpOEJQq60=}
|
resolution: {integrity: sha512-1qny3OExCf0UvUV/5wpYKf2YwPcOqXzkwKKSmKHiE6ZMQs5heeE/c8eXK+PNllPvmjgAbfnsbpkGZWy8cBpn9w==}
|
||||||
engines: {node: '>=4'}
|
engines: {node: '>=4'}
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/redis-parser/3.0.0:
|
/redis-parser/3.0.0:
|
||||||
resolution: {integrity: sha1-tm2CjNyv5rS4pCin3vTGvKwxyLQ=}
|
resolution: {integrity: sha512-DJnGAeenTdpMEH6uAJRK/uiyEIH9WVsUmoLwzudwGJUwZPp80PDBWPHXSAGNPwNvIXAbe7MSUB1zQFugFml66A==}
|
||||||
engines: {node: '>=4'}
|
engines: {node: '>=4'}
|
||||||
dependencies:
|
dependencies:
|
||||||
redis-errors: 1.2.0
|
redis-errors: 1.2.0
|
||||||
@ -2244,7 +2244,7 @@ packages:
|
|||||||
lru-cache: 6.0.0
|
lru-cache: 6.0.0
|
||||||
|
|
||||||
/set-blocking/2.0.0:
|
/set-blocking/2.0.0:
|
||||||
resolution: {integrity: sha1-BF+XgtARrppoA93TgrJDkrPYkPc=}
|
resolution: {integrity: sha512-KiKBS8AnWGEyLzofFfmvKwpdPzqiy16LvQfK3yv/fVH7Bj13/wl3JSR1J+rfgRE9q7xUJK4qvgS8raSOeLUehw==}
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/shelljs/0.8.5:
|
/shelljs/0.8.5:
|
||||||
@ -2288,15 +2288,15 @@ packages:
|
|||||||
engines: {node: '>= 10.x'}
|
engines: {node: '>= 10.x'}
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/ssh2/1.8.0:
|
/ssh2/1.11.0:
|
||||||
resolution: {integrity: sha512-NVIRkIwJvWl+mcRozp+EBzHMVCcbDKBea64ToPdZEk43yAVGwmfqYZRPFRnnvGjsKC34wYCmiupTcKgCVNVNNg==}
|
resolution: {integrity: sha512-nfg0wZWGSsfUe/IBJkXVll3PEZ//YH2guww+mP88gTpuSU4FtZN7zu9JoeTGOyCNx2dTDtT9fOpWwlzyj4uOOw==}
|
||||||
engines: {node: '>=10.16.0'}
|
engines: {node: '>=10.16.0'}
|
||||||
requiresBuild: true
|
requiresBuild: true
|
||||||
dependencies:
|
dependencies:
|
||||||
asn1: 0.2.6
|
asn1: 0.2.6
|
||||||
bcrypt-pbkdf: 1.0.2
|
bcrypt-pbkdf: 1.0.2
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
cpu-features: 0.0.3
|
cpu-features: 0.0.4
|
||||||
nan: 2.16.0
|
nan: 2.16.0
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
@ -2372,7 +2372,7 @@ packages:
|
|||||||
dependencies:
|
dependencies:
|
||||||
chownr: 2.0.0
|
chownr: 2.0.0
|
||||||
fs-minipass: 2.1.0
|
fs-minipass: 2.1.0
|
||||||
minipass: 3.1.6
|
minipass: 3.3.4
|
||||||
minizlib: 2.1.2
|
minizlib: 2.1.2
|
||||||
mkdirp: 1.0.4
|
mkdirp: 1.0.4
|
||||||
yallist: 4.0.0
|
yallist: 4.0.0
|
||||||
@ -2429,7 +2429,7 @@ packages:
|
|||||||
os-tmpdir: 1.0.2
|
os-tmpdir: 1.0.2
|
||||||
|
|
||||||
/to-fast-properties/2.0.0:
|
/to-fast-properties/2.0.0:
|
||||||
resolution: {integrity: sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=}
|
resolution: {integrity: sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==}
|
||||||
engines: {node: '>=4'}
|
engines: {node: '>=4'}
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
@ -2449,13 +2449,13 @@ packages:
|
|||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/tr46/0.0.3:
|
/tr46/0.0.3:
|
||||||
resolution: {integrity: sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=}
|
resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==}
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/ts-expose-internals/4.5.4:
|
/ts-expose-internals/4.5.4:
|
||||||
resolution: {integrity: sha512-HobejGI9ZnpRlyA0nlpIBpLG8A/gv+pDXP3L0OTRTqkJiInz3+yoMnRCaxw343pzQtxCYM0J/gpZ4IkLudrOWw==}
|
resolution: {integrity: sha512-HobejGI9ZnpRlyA0nlpIBpLG8A/gv+pDXP3L0OTRTqkJiInz3+yoMnRCaxw343pzQtxCYM0J/gpZ4IkLudrOWw==}
|
||||||
|
|
||||||
/ts-node/10.7.0_b34c2d00f7bffffd3f771e5188a8c9e6:
|
/ts-node/10.7.0_2c83ab3fa4a45acf1e79be32ccb30210:
|
||||||
resolution: {integrity: sha512-TbIGS4xgJoX2i3do417KSaep1uRAW/Lu+WAL2doDHC0D6ummjirVOXU5/7aiZotbQ5p1Zp9tP7U6cYhA0O7M8A==}
|
resolution: {integrity: sha512-TbIGS4xgJoX2i3do417KSaep1uRAW/Lu+WAL2doDHC0D6ummjirVOXU5/7aiZotbQ5p1Zp9tP7U6cYhA0O7M8A==}
|
||||||
hasBin: true
|
hasBin: true
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
@ -2474,7 +2474,7 @@ packages:
|
|||||||
'@tsconfig/node12': 1.0.9
|
'@tsconfig/node12': 1.0.9
|
||||||
'@tsconfig/node14': 1.0.1
|
'@tsconfig/node14': 1.0.1
|
||||||
'@tsconfig/node16': 1.0.2
|
'@tsconfig/node16': 1.0.2
|
||||||
'@types/node': 14.18.12
|
'@types/node': 14.18.21
|
||||||
acorn: 8.7.0
|
acorn: 8.7.0
|
||||||
acorn-walk: 8.2.0
|
acorn-walk: 8.2.0
|
||||||
arg: 4.1.3
|
arg: 4.1.3
|
||||||
@ -2607,7 +2607,7 @@ packages:
|
|||||||
typescript: 4.5.4
|
typescript: 4.5.4
|
||||||
|
|
||||||
/tweetnacl/0.14.5:
|
/tweetnacl/0.14.5:
|
||||||
resolution: {integrity: sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=}
|
resolution: {integrity: sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==}
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/type-fest/0.10.0:
|
/type-fest/0.10.0:
|
||||||
@ -2696,8 +2696,8 @@ packages:
|
|||||||
engines: {node: '>=4.2.0'}
|
engines: {node: '>=4.2.0'}
|
||||||
hasBin: true
|
hasBin: true
|
||||||
|
|
||||||
/uglify-js/3.16.1:
|
/uglify-js/3.16.2:
|
||||||
resolution: {integrity: sha512-X5BGTIDH8U6IQ1TIRP62YC36k+ULAa1d59BxlWvPUJ1NkW5L3FwcGfEzuVvGmhJFBu0YJ5Ge25tmRISqCmLiRQ==}
|
resolution: {integrity: sha512-AaQNokTNgExWrkEYA24BTNMSjyqEXPSfhqoS0AxmHkCJ4U+Dyy5AvbGV/sqxuxficEfGGoX3zWw9R7QpLFfEsg==}
|
||||||
engines: {node: '>=0.8.0'}
|
engines: {node: '>=0.8.0'}
|
||||||
hasBin: true
|
hasBin: true
|
||||||
requiresBuild: true
|
requiresBuild: true
|
||||||
@ -2728,7 +2728,7 @@ packages:
|
|||||||
resolution: {integrity: sha512-mpSYqfsFvASnSn5qMiwrr4VKfumbPyONLCOPmsR3A6pTY/r0+tSaVbgPWSAIuzbk3lCTa+FForeTiO+wBQGkjA==}
|
resolution: {integrity: sha512-mpSYqfsFvASnSn5qMiwrr4VKfumbPyONLCOPmsR3A6pTY/r0+tSaVbgPWSAIuzbk3lCTa+FForeTiO+wBQGkjA==}
|
||||||
|
|
||||||
/void-elements/3.1.0:
|
/void-elements/3.1.0:
|
||||||
resolution: {integrity: sha1-YU9/v42AHwu18GYfWy9XhXUOTwk=}
|
resolution: {integrity: sha512-Dhxzh5HZuiHQhbvTW9AMetFfBHDMYpo23Uo9btPXgdYP+3T5S+p+jgNy7spra+veYhBP2dCSgxR/i2Y02h5/6w==}
|
||||||
engines: {node: '>=0.10.0'}
|
engines: {node: '>=0.10.0'}
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
@ -2745,17 +2745,17 @@ packages:
|
|||||||
dependencies:
|
dependencies:
|
||||||
defaults: 1.0.3
|
defaults: 1.0.3
|
||||||
|
|
||||||
/web-streams-polyfill/3.2.0:
|
/web-streams-polyfill/3.2.1:
|
||||||
resolution: {integrity: sha512-EqPmREeOzttaLRm5HS7io98goBgZ7IVz79aDvqjD0kYXLtFZTc0T/U6wHTPKyIjb+MdN7DFIIX6hgdBEpWmfPA==}
|
resolution: {integrity: sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q==}
|
||||||
engines: {node: '>= 8'}
|
engines: {node: '>= 8'}
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/webidl-conversions/3.0.1:
|
/webidl-conversions/3.0.1:
|
||||||
resolution: {integrity: sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=}
|
resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==}
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/whatwg-url/5.0.0:
|
/whatwg-url/5.0.0:
|
||||||
resolution: {integrity: sha1-lmRU6HZUYuN2RNNib2dCzotwll0=}
|
resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==}
|
||||||
dependencies:
|
dependencies:
|
||||||
tr46: 0.0.3
|
tr46: 0.0.3
|
||||||
webidl-conversions: 3.0.1
|
webidl-conversions: 3.0.1
|
||||||
@ -2783,14 +2783,14 @@ packages:
|
|||||||
resolution: {integrity: sha512-RNGKj82nUPg3g5ygxkQl0R937xLyho1J24ItRCBTr/m1YnZkzJy1hUiHUJrc/VlsDQzsCnInEGSg3bci0Lmd4w==}
|
resolution: {integrity: sha512-RNGKj82nUPg3g5ygxkQl0R937xLyho1J24ItRCBTr/m1YnZkzJy1hUiHUJrc/VlsDQzsCnInEGSg3bci0Lmd4w==}
|
||||||
engines: {node: '>= 10.0.0'}
|
engines: {node: '>= 10.0.0'}
|
||||||
dependencies:
|
dependencies:
|
||||||
'@babel/parser': 7.17.8
|
'@babel/parser': 7.18.8
|
||||||
'@babel/types': 7.17.0
|
'@babel/types': 7.18.8
|
||||||
assert-never: 1.2.1
|
assert-never: 1.2.1
|
||||||
babel-walk: 3.0.0-canary-5
|
babel-walk: 3.0.0-canary-5
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/wordwrap/1.0.0:
|
/wordwrap/1.0.0:
|
||||||
resolution: {integrity: sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=}
|
resolution: {integrity: sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==}
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
/wrap-ansi/6.2.0:
|
/wrap-ansi/6.2.0:
|
||||||
|
@ -2,11 +2,13 @@
|
|||||||
export enum FieldType {
|
export enum FieldType {
|
||||||
text = 'text',
|
text = 'text',
|
||||||
textarea = 'textarea',
|
textarea = 'textarea',
|
||||||
|
html = 'html',
|
||||||
email = 'email',
|
email = 'email',
|
||||||
number = 'number',
|
number = 'number',
|
||||||
integer = 'integer',
|
integer = 'integer',
|
||||||
date = 'date',
|
date = 'date',
|
||||||
select = 'select',
|
select = 'select',
|
||||||
|
bool = 'bool',
|
||||||
}
|
}
|
||||||
|
|
||||||
enum ResourceAction {
|
enum ResourceAction {
|
||||||
@ -41,6 +43,10 @@ export type FieldBase = {
|
|||||||
readonly?: boolean,
|
readonly?: boolean,
|
||||||
helpText?: string,
|
helpText?: string,
|
||||||
placeholder?: string,
|
placeholder?: string,
|
||||||
|
hideOn?: {
|
||||||
|
form?: boolean,
|
||||||
|
listing?: boolean,
|
||||||
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
export type SelectOptions = {display: string, value: any}[]
|
export type SelectOptions = {display: string, value: any}[]
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
import {allResourceActions, FieldType, Renderer, ResourceConfiguration} from '../cobalt'
|
import {allResourceActions, FieldType, Renderer, ResourceAction, ResourceConfiguration} from '../cobalt'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
resources: [
|
resources: [
|
||||||
@ -22,7 +22,7 @@ export default {
|
|||||||
{
|
{
|
||||||
key: 'description',
|
key: 'description',
|
||||||
display: 'Description',
|
display: 'Description',
|
||||||
type: FieldType.textarea,
|
type: FieldType.html,
|
||||||
required: true,
|
required: true,
|
||||||
renderer: Renderer.html,
|
renderer: Renderer.html,
|
||||||
},
|
},
|
||||||
@ -43,5 +43,178 @@ export default {
|
|||||||
}
|
}
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
key: 'snippet',
|
||||||
|
primaryKey: 'snippet_id',
|
||||||
|
collection: 'snippets',
|
||||||
|
display: {
|
||||||
|
field: 'slug',
|
||||||
|
singular: 'Snippet',
|
||||||
|
plural: 'Snippets',
|
||||||
|
},
|
||||||
|
supportedActions: allResourceActions,
|
||||||
|
fields: [
|
||||||
|
{
|
||||||
|
key: 'slug',
|
||||||
|
display: 'Slug',
|
||||||
|
type: FieldType.text,
|
||||||
|
required: true,
|
||||||
|
sort: 'asc',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key: 'syntax',
|
||||||
|
display: 'Syntax',
|
||||||
|
type: FieldType.text,
|
||||||
|
required: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key: 'users_only',
|
||||||
|
display: 'Users only?',
|
||||||
|
type: FieldType.bool,
|
||||||
|
required: true,
|
||||||
|
renderer: Renderer.bool,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key: 'single_access_only',
|
||||||
|
display: 'Single-access only?',
|
||||||
|
type: FieldType.bool,
|
||||||
|
required: true,
|
||||||
|
renderer: Renderer.bool,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key: 'access_key',
|
||||||
|
display: 'Access key',
|
||||||
|
type: FieldType.text,
|
||||||
|
required: false,
|
||||||
|
hideOn: {
|
||||||
|
listing: true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key: 'body',
|
||||||
|
display: 'Content',
|
||||||
|
type: FieldType.textarea,
|
||||||
|
required: true,
|
||||||
|
hideOn: {
|
||||||
|
listing: true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key: 'contactSubmission',
|
||||||
|
primaryKey: 'contact_submission_id',
|
||||||
|
collection: 'contact_submissions',
|
||||||
|
display: {
|
||||||
|
field: 'name',
|
||||||
|
singular: 'Contact Submission',
|
||||||
|
plural: 'Contact Submissions',
|
||||||
|
},
|
||||||
|
supportedActions: [
|
||||||
|
ResourceAction.read, ResourceAction.readOne, ResourceAction.delete,
|
||||||
|
],
|
||||||
|
fields: [
|
||||||
|
{
|
||||||
|
key: 'name',
|
||||||
|
display: 'Name',
|
||||||
|
type: FieldType.text,
|
||||||
|
required: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key: 'email',
|
||||||
|
display: 'E-Mail Address',
|
||||||
|
type: FieldType.text,
|
||||||
|
required: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key: 'message',
|
||||||
|
display: 'Message',
|
||||||
|
type: FieldType.textarea,
|
||||||
|
required: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key: 'sent_at',
|
||||||
|
display: 'Sent At',
|
||||||
|
type: FieldType.date,
|
||||||
|
renderer: FieldType.date,
|
||||||
|
required: false,
|
||||||
|
sort: 'desc',
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key: 'goLink',
|
||||||
|
primaryKey: 'go_link_id',
|
||||||
|
collection: 'go_links',
|
||||||
|
display: {
|
||||||
|
field: 'short',
|
||||||
|
singular: 'Go Link',
|
||||||
|
plural: 'Go Links',
|
||||||
|
},
|
||||||
|
supportedActions: allResourceActions,
|
||||||
|
fields: [
|
||||||
|
{
|
||||||
|
key: 'short',
|
||||||
|
display: 'Slug',
|
||||||
|
type: FieldType.text,
|
||||||
|
required: true,
|
||||||
|
sort: 'asc',
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key: 'url',
|
||||||
|
display: 'URL',
|
||||||
|
type: FieldType.text,
|
||||||
|
required: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key: 'active',
|
||||||
|
display: 'Active?',
|
||||||
|
type: FieldType.bool,
|
||||||
|
renderer: Renderer.bool,
|
||||||
|
required: true,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key: 'feedPost',
|
||||||
|
primaryKey: 'feed_post_id',
|
||||||
|
collection: 'feed_posts',
|
||||||
|
display: {
|
||||||
|
// field: '',
|
||||||
|
singular: 'Feed Post',
|
||||||
|
plural: 'Feed Posts',
|
||||||
|
},
|
||||||
|
supportedActions: allResourceActions,
|
||||||
|
fields: [
|
||||||
|
{
|
||||||
|
key: 'posted_at',
|
||||||
|
display: 'Posted At',
|
||||||
|
type: FieldType.date,
|
||||||
|
sort: 'desc',
|
||||||
|
required: false,
|
||||||
|
renderer: Renderer.date,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key: 'tag',
|
||||||
|
display: 'Tag',
|
||||||
|
type: FieldType.text,
|
||||||
|
required: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key: 'body',
|
||||||
|
display: 'Body',
|
||||||
|
type: FieldType.html,
|
||||||
|
renderer: Renderer.html,
|
||||||
|
required: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
key: 'visible',
|
||||||
|
display: 'Visible?',
|
||||||
|
type: FieldType.bool,
|
||||||
|
renderer: Renderer.bool,
|
||||||
|
required: false,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
}
|
||||||
] as ResourceConfiguration[],
|
] as ResourceConfiguration[],
|
||||||
}
|
}
|
||||||
|
@ -38,6 +38,15 @@ export class Interface extends Controller {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public viewForm(key: string, id: number|string) {
|
||||||
|
this.getResourceConfigOrFail(key)
|
||||||
|
return view('dash:form', {
|
||||||
|
resourcekey: key,
|
||||||
|
resourceid: id,
|
||||||
|
resourcemode: 'view',
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
public insertForm(key: string) {
|
public insertForm(key: string) {
|
||||||
this.getResourceConfigOrFail(key)
|
this.getResourceConfigOrFail(key)
|
||||||
return view('dash:form', {
|
return view('dash:form', {
|
||||||
|
@ -151,7 +151,7 @@ export class ResourceAPI extends Controller {
|
|||||||
|
|
||||||
private castValue(fieldDef: FieldDefinition, value: any): any {
|
private castValue(fieldDef: FieldDefinition, value: any): any {
|
||||||
const { type, key, required } = fieldDef
|
const { type, key, required } = fieldDef
|
||||||
if ( type === FieldType.text || type === FieldType.textarea ) {
|
if ( type === FieldType.text || type === FieldType.textarea || type === FieldType.html ) {
|
||||||
const cast = String(value || '')
|
const cast = String(value || '')
|
||||||
if ( required && !cast ) {
|
if ( required && !cast ) {
|
||||||
throw new HTTPError(HTTPStatus.BAD_REQUEST, `Missing required field: ${key}`)
|
throw new HTTPError(HTTPStatus.BAD_REQUEST, `Missing required field: ${key}`)
|
||||||
@ -205,6 +205,8 @@ export class ResourceAPI extends Controller {
|
|||||||
if ( required ) {
|
if ( required ) {
|
||||||
throw new HTTPError(HTTPStatus.BAD_REQUEST, `Invalid or missing value for select: ${key}`)
|
throw new HTTPError(HTTPStatus.BAD_REQUEST, `Invalid or missing value for select: ${key}`)
|
||||||
}
|
}
|
||||||
|
} else if ( type === FieldType.bool ) {
|
||||||
|
return !!value
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -16,26 +16,6 @@ Route
|
|||||||
.alias('@dash')
|
.alias('@dash')
|
||||||
.calls<Dash>(Dash, dash => dash.main)
|
.calls<Dash>(Dash, dash => dash.main)
|
||||||
|
|
||||||
Route.get('/work-items')
|
|
||||||
.alias('@dash:work-items')
|
|
||||||
.handledBy(() => 'nope')
|
|
||||||
|
|
||||||
Route.get('/feed')
|
|
||||||
.alias('@dash:feed')
|
|
||||||
.handledBy(() => 'nope')
|
|
||||||
|
|
||||||
Route.get('/links')
|
|
||||||
.alias('@dash:links')
|
|
||||||
.handledBy(() => 'nope')
|
|
||||||
|
|
||||||
Route.get('/snippets')
|
|
||||||
.alias('@dash:snippets')
|
|
||||||
.handledBy(() => 'nope')
|
|
||||||
|
|
||||||
Route.get('/contact')
|
|
||||||
.alias('@dash:contact')
|
|
||||||
.handledBy(() => 'nope')
|
|
||||||
|
|
||||||
Route.group('/cobalt/resource', () => {
|
Route.group('/cobalt/resource', () => {
|
||||||
Route.get('/:key/configure')
|
Route.get('/:key/configure')
|
||||||
.parameterMiddleware(parseKey)
|
.parameterMiddleware(parseKey)
|
||||||
@ -79,6 +59,11 @@ Route
|
|||||||
.parameterMiddleware(parseKey)
|
.parameterMiddleware(parseKey)
|
||||||
.parameterMiddleware(parseId)
|
.parameterMiddleware(parseId)
|
||||||
.calls(Interface, (i: Interface) => i.updateForm)
|
.calls(Interface, (i: Interface) => i.updateForm)
|
||||||
|
|
||||||
|
Route.get('/cobalt/form/:key/:id/view')
|
||||||
|
.parameterMiddleware(parseKey)
|
||||||
|
.parameterMiddleware(parseId)
|
||||||
|
.calls(Interface, (i: Interface) => i.viewForm)
|
||||||
})
|
})
|
||||||
.pre(SessionAuthMiddleware)
|
.pre(SessionAuthMiddleware)
|
||||||
.pre(AuthRequiredMiddleware)
|
.pre(AuthRequiredMiddleware)
|
||||||
|
@ -12,6 +12,17 @@ const template = `
|
|||||||
<div v-if="status === 'loading'">Loading...</div>
|
<div v-if="status === 'loading'">Loading...</div>
|
||||||
<form v-if="status === 'ready'">
|
<form v-if="status === 'ready'">
|
||||||
<div class="form-group" v-for="field of fields">
|
<div class="form-group" v-for="field of fields">
|
||||||
|
<input
|
||||||
|
v-if="field.type === 'bool'"
|
||||||
|
class="form-check-inline"
|
||||||
|
type="checkbox"
|
||||||
|
:name="field.key"
|
||||||
|
v-model="data[field.key]"
|
||||||
|
:id="id + field.key"
|
||||||
|
:aria-describedby="id + field.key + '_help'"
|
||||||
|
:readonly="mode === 'view' || field.readonly"
|
||||||
|
:required="field.required"
|
||||||
|
>
|
||||||
<label for="id + field.key">{{ field.display }}</label>
|
<label for="id + field.key">{{ field.display }}</label>
|
||||||
<input
|
<input
|
||||||
v-if="field.type === 'text' || field.type === 'email' || field.type === 'number' || field.type === 'integer' || !field.type"
|
v-if="field.type === 'text' || field.type === 'email' || field.type === 'number' || field.type === 'integer' || !field.type"
|
||||||
@ -49,6 +60,16 @@ const template = `
|
|||||||
:placeholder="field.placeholder || ''"
|
:placeholder="field.placeholder || ''"
|
||||||
:readonly="mode === 'view' || field.readonly"
|
:readonly="mode === 'view' || field.readonly"
|
||||||
>
|
>
|
||||||
|
<cobalt-monaco
|
||||||
|
v-if="field.type === 'html' && !(mode === 'view' || field.readonly)"
|
||||||
|
syntax="html"
|
||||||
|
:initialvalue="data[field.key]"
|
||||||
|
@changed="value => data[field.key] = value"
|
||||||
|
></cobalt-monaco>
|
||||||
|
<div
|
||||||
|
v-if="field.type === 'html' && (mode === 'view' || field.readonly)"
|
||||||
|
v-html="data[field.key]"
|
||||||
|
></div>
|
||||||
<DatePicker
|
<DatePicker
|
||||||
v-model="data[field.key]"
|
v-model="data[field.key]"
|
||||||
v-if="field.type === 'date' && !(mode === 'view' || field.readonly)"
|
v-if="field.type === 'date' && !(mode === 'view' || field.readonly)"
|
||||||
@ -148,7 +169,9 @@ export class FormComponent extends Component {
|
|||||||
|
|
||||||
async load() {
|
async load() {
|
||||||
this.data = this.internalResourceId ? await this.resource.readOne(this.internalResourceId) : {}
|
this.data = this.internalResourceId ? await this.resource.readOne(this.internalResourceId) : {}
|
||||||
this.fields = [...this.resource.configuration.fields]
|
this.fields = [...this.resource.configuration.fields].filter(f => {
|
||||||
|
return !(f.hideOn && f.hideOn.form)
|
||||||
|
})
|
||||||
|
|
||||||
this.fields.forEach(field => {
|
this.fields.forEach(field => {
|
||||||
if ( field.type === 'date' && this.data[field.key] ) {
|
if ( field.type === 'date' && this.data[field.key] ) {
|
||||||
@ -165,6 +188,12 @@ export class FormComponent extends Component {
|
|||||||
this.statusMessage = ''
|
this.statusMessage = ''
|
||||||
}
|
}
|
||||||
|
|
||||||
|
onMonacoChange(field, data, args) {
|
||||||
|
console.log('on monaco change', {field, data, args})
|
||||||
|
this.data[field.key] = args[0]
|
||||||
|
console.log('after save', this.data)
|
||||||
|
}
|
||||||
|
|
||||||
async save() {
|
async save() {
|
||||||
if ( !this.validate() ) return;
|
if ( !this.validate() ) return;
|
||||||
|
|
||||||
@ -173,29 +202,35 @@ export class FormComponent extends Component {
|
|||||||
const values = {}
|
const values = {}
|
||||||
this.fields.forEach(field => {
|
this.fields.forEach(field => {
|
||||||
let value = this.data[field.key]
|
let value = this.data[field.key]
|
||||||
const isUndef = !value && !(['integer', 'number'].includes(field.type) && value === 0)
|
const isUndef = !value && !(['integer', 'number'].includes(field.type) && value === 0) && (field.type !== 'bool')
|
||||||
if ( isUndef ) return;
|
if ( isUndef ) return;
|
||||||
|
|
||||||
if ( field.type === 'number' ) value = parseFloat(String(value))
|
if ( field.type === 'number' ) value = parseFloat(String(value))
|
||||||
if ( field.type === 'integer' ) value = parseInt(String(value), 10)
|
if ( field.type === 'integer' ) value = parseInt(String(value), 10)
|
||||||
if ( field.type === 'date' ) value = value.toISOString()
|
if ( field.type === 'date' ) value = value.toISOString()
|
||||||
|
if ( field.type === 'bool' ) value = !!value
|
||||||
|
|
||||||
values[field.key] = value
|
values[field.key] = value
|
||||||
})
|
})
|
||||||
|
|
||||||
if ( this.internalResourceId ) {
|
try {
|
||||||
await this.resource.update(this.internalResourceId, values)
|
if (this.internalResourceId) {
|
||||||
} else {
|
await this.resource.update(this.internalResourceId, values)
|
||||||
const result = await this.resource.create(values)
|
} else {
|
||||||
this.internalResourceId = result[this.resource.configuration.primaryKey]
|
const result = await this.resource.create(values)
|
||||||
history.replaceState({}, document.getElementsByTagName('title')[0].innerText, `${location.protocol}//${location.host}/dash/cobalt/form/${this.resource.key}/${this.internalResourceId}`)
|
this.internalResourceId = result[this.resource.configuration.primaryKey]
|
||||||
|
history.replaceState({}, document.getElementsByTagName('title')[0].innerText, `${location.protocol}//${location.host}/dash/cobalt/form/${this.resource.key}/${this.internalResourceId}`)
|
||||||
|
}
|
||||||
|
|
||||||
|
await this.load()
|
||||||
|
|
||||||
|
this.statusMessage = `${this.resource.singular()} ${this.mode === 'insert' ? 'created' : 'saved'}`
|
||||||
|
this.mode = 'edit'
|
||||||
|
setTimeout(() => this.statusMessage = '', 7000)
|
||||||
|
} catch (e) {
|
||||||
|
console.error(e)
|
||||||
|
this.statusMessage = 'An unknown error occurred while saving'
|
||||||
}
|
}
|
||||||
|
|
||||||
await this.load()
|
|
||||||
|
|
||||||
this.statusMessage = `${this.resource.singular()} ${this.mode === 'insert' ? 'created' : 'saved'}`
|
|
||||||
this.mode = 'edit'
|
|
||||||
setTimeout(() => this.statusMessage = '', 7000)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
validate() {
|
validate() {
|
||||||
@ -206,7 +241,7 @@ export class FormComponent extends Component {
|
|||||||
// FIXME select
|
// FIXME select
|
||||||
|
|
||||||
const value = this.data[field.key]
|
const value = this.data[field.key]
|
||||||
const isUndef = !value && !(['integer', 'number'].includes(field.type) && value === 0)
|
const isUndef = !value && !(['integer', 'number'].includes(field.type) && value === 0) && (field.type !== 'bool')
|
||||||
if ( field.required && isUndef ) {
|
if ( field.required && isUndef ) {
|
||||||
this.errors[field.key] = 'This field is required'
|
this.errors[field.key] = 'This field is required'
|
||||||
pass = false
|
pass = false
|
||||||
|
@ -92,7 +92,9 @@ export class ListingComponent extends Component {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async load(reload = false) {
|
async load(reload = false) {
|
||||||
this.columns = [...this.resource.configuration.fields]
|
this.columns = [...this.resource.configuration.fields].filter(col => {
|
||||||
|
return !(col.hideOn && col.hideOn.listing)
|
||||||
|
})
|
||||||
|
|
||||||
if ( !reload && this.resource.supports(ResourceActions.create) ) {
|
if ( !reload && this.resource.supports(ResourceActions.create) ) {
|
||||||
this.actions.push({
|
this.actions.push({
|
||||||
@ -117,6 +119,16 @@ export class ListingComponent extends Component {
|
|||||||
action: 'update',
|
action: 'update',
|
||||||
defer: true,
|
defer: true,
|
||||||
})
|
})
|
||||||
|
} else if ( !reload && this.resource.supports(ResourceActions.read) ) {
|
||||||
|
this.actions.push({
|
||||||
|
title: 'View',
|
||||||
|
color: 'primary',
|
||||||
|
icon: 'fa-eye',
|
||||||
|
type: 'resource',
|
||||||
|
resource: this.resource.key,
|
||||||
|
action: 'view',
|
||||||
|
defer: true,
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( !reload && this.resource.supports(ResourceActions.delete) ) {
|
if ( !reload && this.resource.supports(ResourceActions.delete) ) {
|
||||||
|
@ -0,0 +1,35 @@
|
|||||||
|
import {Component} from '../../vues6.js'
|
||||||
|
import {uuid} from '../util.js'
|
||||||
|
|
||||||
|
const template = `
|
||||||
|
<div class="monaco-container" :id="id" style="width: 100%; height: 100%; min-height: 400px">
|
||||||
|
</div>
|
||||||
|
`
|
||||||
|
export class MonacoComponent extends Component {
|
||||||
|
static get template() { return template }
|
||||||
|
static get selector() { return 'cobalt-monaco' }
|
||||||
|
static get props() { return ['initialvalue', 'syntax'] }
|
||||||
|
|
||||||
|
constructor() {
|
||||||
|
super()
|
||||||
|
this.id = 'monaco-' + uuid()
|
||||||
|
this.value = ''
|
||||||
|
}
|
||||||
|
|
||||||
|
vue_on_create() {
|
||||||
|
this.value = this.initialvalue
|
||||||
|
this.$nextTick(() => {
|
||||||
|
this.el = document.querySelector(`#${this.id}`)
|
||||||
|
this.editor = monaco.editor.create(this.el, {
|
||||||
|
theme: 'vs-dark',
|
||||||
|
value: this.value,
|
||||||
|
language: this.syntax,
|
||||||
|
})
|
||||||
|
|
||||||
|
this.editor.onDidChangeModelContent(e => {
|
||||||
|
this.value = this.editor.getValue()
|
||||||
|
this.$emit('changed', this.value)
|
||||||
|
})
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
@ -2,12 +2,14 @@ import {MessageContainerComponent} from './component/MessageContainer.component.
|
|||||||
import {ListingComponent} from './component/Listing.component.js'
|
import {ListingComponent} from './component/Listing.component.js'
|
||||||
import {FormComponent} from './component/Form.component.js'
|
import {FormComponent} from './component/Form.component.js'
|
||||||
import {ActionButtonComponent} from './component/ActionButton.component.js'
|
import {ActionButtonComponent} from './component/ActionButton.component.js'
|
||||||
|
import {MonacoComponent} from './component/Monaco.component.js'
|
||||||
|
|
||||||
const components = {
|
const components = {
|
||||||
MessageContainerComponent,
|
MessageContainerComponent,
|
||||||
ListingComponent,
|
ListingComponent,
|
||||||
ActionButtonComponent,
|
ActionButtonComponent,
|
||||||
FormComponent,
|
FormComponent,
|
||||||
|
MonacoComponent,
|
||||||
}
|
}
|
||||||
|
|
||||||
export { components }
|
export { components }
|
||||||
|
@ -21,6 +21,7 @@ export class ActionService {
|
|||||||
if ( action.action === 'insert' ) this.launchResourceForm(action.resource)
|
if ( action.action === 'insert' ) this.launchResourceForm(action.resource)
|
||||||
if ( action.action === 'update' ) this.launchResourceForm(action.resource, data[resource.configuration.primaryKey])
|
if ( action.action === 'update' ) this.launchResourceForm(action.resource, data[resource.configuration.primaryKey])
|
||||||
if ( action.action === 'list' ) this.launchResourceListing(action.resource)
|
if ( action.action === 'list' ) this.launchResourceListing(action.resource)
|
||||||
|
if ( action.action === 'view' ) this.launchResourceForm(action.resource, data[resource.configuration.primaryKey], true)
|
||||||
if ( action.action === 'delete' ) {
|
if ( action.action === 'delete' ) {
|
||||||
await Message.get()
|
await Message.get()
|
||||||
.modal({
|
.modal({
|
||||||
@ -55,8 +56,8 @@ export class ActionService {
|
|||||||
location.assign(Session.get().url(`dash/cobalt/listing/${key}`))
|
location.assign(Session.get().url(`dash/cobalt/listing/${key}`))
|
||||||
}
|
}
|
||||||
|
|
||||||
launchResourceForm(key, id) {
|
launchResourceForm(key, id, view = false) {
|
||||||
location.assign(Session.get().url(`dash/cobalt/form/${key}${id ? '/' + id : ''}`))
|
location.assign(Session.get().url(`dash/cobalt/form/${key}${id ? '/' + id : ''}${view ? '/view' : ''}`))
|
||||||
}
|
}
|
||||||
|
|
||||||
goBack() {
|
goBack() {
|
||||||
|
@ -13,6 +13,7 @@ head
|
|||||||
link(href=asset('dash/vendor/fontawesome-free/css/all.min.css') rel='stylesheet' type='text/css')
|
link(href=asset('dash/vendor/fontawesome-free/css/all.min.css') rel='stylesheet' type='text/css')
|
||||||
link(href=asset('dash/vendor/datatables2/dataTables.bootstrap4.min.css'))
|
link(href=asset('dash/vendor/datatables2/dataTables.bootstrap4.min.css'))
|
||||||
link(rel='stylesheet' href='https://unpkg.com/vue2-datepicker@latest/index.css')
|
link(rel='stylesheet' href='https://unpkg.com/vue2-datepicker@latest/index.css')
|
||||||
|
link(rel='stylesheet' data-name='vs/editor/editor.main' href=asset('monaco/package/min/vs/editor/editor.main.css'))
|
||||||
#wrapper
|
#wrapper
|
||||||
ul#accordionSidebar.navbar-nav.bg-gradient-primary.sidebar.sidebar-dark.accordion
|
ul#accordionSidebar.navbar-nav.bg-gradient-primary.sidebar.sidebar-dark.accordion
|
||||||
a.sidebar-brand.d-flex.align-items-center.justify-content-center(href='index.html')
|
a.sidebar-brand.d-flex.align-items-center.justify-content-center(href='index.html')
|
||||||
@ -40,7 +41,7 @@ head
|
|||||||
hr.sidebar-divider
|
hr.sidebar-divider
|
||||||
.sidebar-heading Analytics
|
.sidebar-heading Analytics
|
||||||
li.nav-item
|
li.nav-item
|
||||||
a.nav-link(href=named('@dash:contact'))
|
a.nav-link(href=route('dash/cobalt/listing/contactSubmission'))
|
||||||
i.fas.fa-fw.fa-comment-alt
|
i.fas.fa-fw.fa-comment-alt
|
||||||
span Contact Form
|
span Contact Form
|
||||||
#content-wrapper.d-flex.flex-column
|
#content-wrapper.d-flex.flex-column
|
||||||
@ -135,6 +136,11 @@ block scripts
|
|||||||
script(src=asset('dash/vendor/datatables2/jquery.dataTables.min.js'))
|
script(src=asset('dash/vendor/datatables2/jquery.dataTables.min.js'))
|
||||||
script(src=asset('dash/vendor/datatables2/dataTables.bootstrap4.min.js'))
|
script(src=asset('dash/vendor/datatables2/dataTables.bootstrap4.min.js'))
|
||||||
script(src='https://unpkg.com/vue2-datepicker@latest')
|
script(src='https://unpkg.com/vue2-datepicker@latest')
|
||||||
|
script.
|
||||||
|
var require = { paths: { vs: "#{asset('monaco/package/min/vs')}" }}
|
||||||
|
script(src=asset('monaco/package/min/vs/loader.js'))
|
||||||
|
script(src=asset('monaco/package/min/vs/editor/editor.main.nls.js'))
|
||||||
|
script(src=asset('monaco/package/min/vs/editor/editor.main.js'))
|
||||||
script(type='module').
|
script(type='module').
|
||||||
import { Session } from "#{asset('cobalt/service/Session.service.js')}"
|
import { Session } from "#{asset('cobalt/service/Session.service.js')}"
|
||||||
import { EventBus } from "#{asset('cobalt/service/EventBus.service.js')}"
|
import { EventBus } from "#{asset('cobalt/service/EventBus.service.js')}"
|
||||||
|
Loading…
Reference in New Issue
Block a user