mirror of
https://github.com/Alfresco/alfresco-content-app.git
synced 2025-05-12 17:04:46 +00:00
[ACA-3821] Add lite-serve with VSCode launcher (#1584)
* Add lite-serve with VSCode launcher * Make lite-serve smarter to work with Basic authtype as well * Change and unify app-config-replace script
This commit is contained in:
parent
d7e61e8fcb
commit
32502e60b9
1
.gitignore
vendored
1
.gitignore
vendored
@ -19,6 +19,7 @@
|
||||
|
||||
# IDE - VSCode
|
||||
.vscode/*
|
||||
!.vscode/closest-config-finder.sh
|
||||
!.vscode/settings.json
|
||||
!.vscode/tasks.json
|
||||
!.vscode/launch.json
|
||||
|
17
.vscode/closest-config-finder.sh
vendored
Executable file
17
.vscode/closest-config-finder.sh
vendored
Executable file
@ -0,0 +1,17 @@
|
||||
specFile=$1;
|
||||
configFile=$2;
|
||||
|
||||
findconfig() {
|
||||
if [ -f "$1" ]; then
|
||||
printf '%s\n' "${PWD%/}/$1"
|
||||
elif [ "$PWD" = / ]; then
|
||||
false
|
||||
else
|
||||
(cd .. && findconfig $1)
|
||||
fi
|
||||
}
|
||||
|
||||
DIR=$(dirname "$specFile")
|
||||
cd $DIR
|
||||
configFile=`findconfig "$configFile"`;
|
||||
echo "$configFile";
|
21
.vscode/launch.json
vendored
Normal file
21
.vscode/launch.json
vendored
Normal file
@ -0,0 +1,21 @@
|
||||
{
|
||||
// Use IntelliSense to learn about possible attributes.
|
||||
// Hover to view descriptions of existing attributes.
|
||||
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
|
||||
"version": "0.2.0",
|
||||
"configurations": [
|
||||
{
|
||||
"type": "node",
|
||||
"request": "launch",
|
||||
"name": "e2e",
|
||||
"program": "${workspaceFolder}/node_modules/protractor/bin/protractor",
|
||||
"args": ["`${workspaceFolder}/.vscode/closest-config-finder.sh ${file} protractor.conf.js`", "--specs=${file}"],
|
||||
"envFile": "${workspaceFolder}/.env",
|
||||
"console": "integratedTerminal",
|
||||
"sourceMaps": true,
|
||||
"smartStep": true,
|
||||
"skipFiles": ["${workspaceFolder}/node_modules/**/*.js", "<node_internals>/**/*.js"],
|
||||
"internalConsoleOptions": "neverOpen"
|
||||
}
|
||||
]
|
||||
}
|
@ -171,6 +171,11 @@
|
||||
"options": {
|
||||
"publicHost": "http://localhost:4200",
|
||||
"browserTarget": "app:build"
|
||||
},
|
||||
"configurations": {
|
||||
"standalone": {
|
||||
"watch": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"extract-i18n": {
|
||||
@ -380,5 +385,8 @@
|
||||
"@schematics/angular:directive": {
|
||||
"prefix": "aca"
|
||||
}
|
||||
},
|
||||
"cli": {
|
||||
"analytics": "a5069b3a-642d-4d97-b810-0c24d7628413"
|
||||
}
|
||||
}
|
||||
|
505
package-lock.json
generated
505
package-lock.json
generated
@ -5,9 +5,9 @@
|
||||
"requires": true,
|
||||
"dependencies": {
|
||||
"@alfresco/adf-cli": {
|
||||
"version": "3.10.0-89b37067ff6b1ccde8af1a1611828ee61da0bcac",
|
||||
"resolved": "https://registry.npmjs.org/@alfresco/adf-cli/-/adf-cli-3.10.0-89b37067ff6b1ccde8af1a1611828ee61da0bcac.tgz",
|
||||
"integrity": "sha512-CyYT/+/X1nKJ92VFd60CcSDHiLH0Y2FztGRAhOkcIfL/x0RAXp8OLXrSXImwsJVAcKeIR+WJZiy9sAACndElyw==",
|
||||
"version": "3.10.0-61cac20ab3b1a76069dcfbfbe37619126d4b51ab",
|
||||
"resolved": "https://registry.npmjs.org/@alfresco/adf-cli/-/adf-cli-3.10.0-61cac20ab3b1a76069dcfbfbe37619126d4b51ab.tgz",
|
||||
"integrity": "sha512-Vq7J5D7YpvP7b8eJsauCykS3yNZElsUJwqQV9ZQ+B00HvHCMW2UUUd5VWLb9F/n82hKlsY9k8WSsDnP4aRcSIw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@alfresco/js-api": "3.10.0-23b97d354151ced90eb2fc68f9d57cad852376d7",
|
||||
@ -29,33 +29,33 @@
|
||||
}
|
||||
},
|
||||
"@alfresco/adf-content-services": {
|
||||
"version": "3.10.0-89b37067ff6b1ccde8af1a1611828ee61da0bcac",
|
||||
"resolved": "https://registry.npmjs.org/@alfresco/adf-content-services/-/adf-content-services-3.10.0-89b37067ff6b1ccde8af1a1611828ee61da0bcac.tgz",
|
||||
"integrity": "sha512-37lZG0s9WfyZYvuwiA/JZPO8iHWarRPUHujQbPPCGhRBUqCteix/7Qj2QXkF5aqjkkLpN4tAej/OyU18edYc2Q==",
|
||||
"version": "3.10.0-61cac20ab3b1a76069dcfbfbe37619126d4b51ab",
|
||||
"resolved": "https://registry.npmjs.org/@alfresco/adf-content-services/-/adf-content-services-3.10.0-61cac20ab3b1a76069dcfbfbe37619126d4b51ab.tgz",
|
||||
"integrity": "sha512-i89GrjsnhugcsNeAbBH/XEwAnEZI7fO9TezuAzBAw9pl2fr0jyjwvcHtrs0BmIT7+HsNv4AJ8ar9bCo7GDy0zg==",
|
||||
"requires": {
|
||||
"tslib": "^2.0.0"
|
||||
}
|
||||
},
|
||||
"@alfresco/adf-core": {
|
||||
"version": "3.10.0-89b37067ff6b1ccde8af1a1611828ee61da0bcac",
|
||||
"resolved": "https://registry.npmjs.org/@alfresco/adf-core/-/adf-core-3.10.0-89b37067ff6b1ccde8af1a1611828ee61da0bcac.tgz",
|
||||
"integrity": "sha512-B2LQ6OU/qT8lhDbX4t6ZMa/zSTYDyse9VuzJwzAC2s0ppLcypp6AzNNeuTMdlyJyLEPXviSXVIAjxT1DJvMFbg==",
|
||||
"version": "3.10.0-61cac20ab3b1a76069dcfbfbe37619126d4b51ab",
|
||||
"resolved": "https://registry.npmjs.org/@alfresco/adf-core/-/adf-core-3.10.0-61cac20ab3b1a76069dcfbfbe37619126d4b51ab.tgz",
|
||||
"integrity": "sha512-di++9RaUxJhHfb4N33+Bf/4QmxRG2b7FHZcS3qkTlk28S0GqobzsMizkccMHmwEU5nOF/yJHJGVpaFvF7zHNSg==",
|
||||
"requires": {
|
||||
"tslib": "^2.0.0"
|
||||
}
|
||||
},
|
||||
"@alfresco/adf-extensions": {
|
||||
"version": "3.10.0-89b37067ff6b1ccde8af1a1611828ee61da0bcac",
|
||||
"resolved": "https://registry.npmjs.org/@alfresco/adf-extensions/-/adf-extensions-3.10.0-89b37067ff6b1ccde8af1a1611828ee61da0bcac.tgz",
|
||||
"integrity": "sha512-DIC1QKnOaVugsNr2+nqH8BhfspN6/1MEovIf4IERuc142viGyDpGxkgaTzF/qDnYMBoAzDf1x2Qfz0y97g+HWw==",
|
||||
"version": "3.10.0-61cac20ab3b1a76069dcfbfbe37619126d4b51ab",
|
||||
"resolved": "https://registry.npmjs.org/@alfresco/adf-extensions/-/adf-extensions-3.10.0-61cac20ab3b1a76069dcfbfbe37619126d4b51ab.tgz",
|
||||
"integrity": "sha512-ped6r42Exxl17MtXUjEyPh/U5kZGfeGcT80qhQ9aqPOjfAZnmcfSPz7u+/j5jScHWDRbgTFCltiwwxl3N+2m1w==",
|
||||
"requires": {
|
||||
"tslib": "^2.0.0"
|
||||
}
|
||||
},
|
||||
"@alfresco/adf-testing": {
|
||||
"version": "3.10.0-89b37067ff6b1ccde8af1a1611828ee61da0bcac",
|
||||
"resolved": "https://registry.npmjs.org/@alfresco/adf-testing/-/adf-testing-3.10.0-89b37067ff6b1ccde8af1a1611828ee61da0bcac.tgz",
|
||||
"integrity": "sha512-4Pj8G8QXmyuLJir8CP9G57SprZfIxfwY3L3JWrQmwLLFTQdw+pEDlrNAD42yvUfSN42g+RvFs3zZTxVPhb7GwA==",
|
||||
"version": "3.10.0-61cac20ab3b1a76069dcfbfbe37619126d4b51ab",
|
||||
"resolved": "https://registry.npmjs.org/@alfresco/adf-testing/-/adf-testing-3.10.0-61cac20ab3b1a76069dcfbfbe37619126d4b51ab.tgz",
|
||||
"integrity": "sha512-2hJpNATtoHN+YdLodnekmE9J6R6Qo9sxvwCyFRUYdbVCZiv4smWysOuuCNHQt1o2KD/syxYrwnG8HO2X9YZCRQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"tslib": "^2.0.0"
|
||||
@ -490,6 +490,28 @@
|
||||
"rxjs": "6.5.5"
|
||||
},
|
||||
"dependencies": {
|
||||
"ansi-regex": {
|
||||
"version": "5.0.0",
|
||||
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
|
||||
"integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==",
|
||||
"dev": true
|
||||
},
|
||||
"ora": {
|
||||
"version": "4.0.4",
|
||||
"resolved": "https://registry.npmjs.org/ora/-/ora-4.0.4.tgz",
|
||||
"integrity": "sha512-77iGeVU1cIdRhgFzCK8aw1fbtT1B/iZAvWjS+l/o1x0RShMgxHUZaD2yDpWsNCPwXg9z1ZA78Kbdvr8kBmG/Ww==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"chalk": "^3.0.0",
|
||||
"cli-cursor": "^3.1.0",
|
||||
"cli-spinners": "^2.2.0",
|
||||
"is-interactive": "^1.0.0",
|
||||
"log-symbols": "^3.0.0",
|
||||
"mute-stream": "0.0.8",
|
||||
"strip-ansi": "^6.0.0",
|
||||
"wcwidth": "^1.0.1"
|
||||
}
|
||||
},
|
||||
"rxjs": {
|
||||
"version": "6.5.5",
|
||||
"resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.5.tgz",
|
||||
@ -499,6 +521,15 @@
|
||||
"tslib": "^1.9.0"
|
||||
}
|
||||
},
|
||||
"strip-ansi": {
|
||||
"version": "6.0.0",
|
||||
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
|
||||
"integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"ansi-regex": "^5.0.0"
|
||||
}
|
||||
},
|
||||
"tslib": {
|
||||
"version": "1.13.0",
|
||||
"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.13.0.tgz",
|
||||
@ -2996,7 +3027,6 @@
|
||||
"version": "4.3.1",
|
||||
"resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz",
|
||||
"integrity": "sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"type-fest": "^0.11.0"
|
||||
}
|
||||
@ -4202,22 +4232,55 @@
|
||||
"dev": true
|
||||
},
|
||||
"chalk": {
|
||||
"version": "1.1.3",
|
||||
"resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
|
||||
"integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz",
|
||||
"integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==",
|
||||
"requires": {
|
||||
"ansi-styles": "^2.2.1",
|
||||
"escape-string-regexp": "^1.0.2",
|
||||
"has-ansi": "^2.0.0",
|
||||
"strip-ansi": "^3.0.0",
|
||||
"supports-color": "^2.0.0"
|
||||
"ansi-styles": "^4.1.0",
|
||||
"supports-color": "^7.1.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"ansi-styles": {
|
||||
"version": "4.2.1",
|
||||
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz",
|
||||
"integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==",
|
||||
"requires": {
|
||||
"@types/color-name": "^1.1.1",
|
||||
"color-convert": "^2.0.1"
|
||||
}
|
||||
},
|
||||
"color-convert": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
|
||||
"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
|
||||
"requires": {
|
||||
"color-name": "~1.1.4"
|
||||
}
|
||||
},
|
||||
"color-name": {
|
||||
"version": "1.1.4",
|
||||
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
|
||||
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="
|
||||
},
|
||||
"has-flag": {
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
|
||||
"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="
|
||||
},
|
||||
"supports-color": {
|
||||
"version": "7.1.0",
|
||||
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz",
|
||||
"integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==",
|
||||
"requires": {
|
||||
"has-flag": "^4.0.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"chardet": {
|
||||
"version": "0.7.0",
|
||||
"resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz",
|
||||
"integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==",
|
||||
"dev": true
|
||||
"integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA=="
|
||||
},
|
||||
"chokidar": {
|
||||
"version": "3.4.1",
|
||||
@ -4318,7 +4381,6 @@
|
||||
"version": "3.1.0",
|
||||
"resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz",
|
||||
"integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"restore-cursor": "^3.1.0"
|
||||
}
|
||||
@ -4326,8 +4388,7 @@
|
||||
"cli-spinners": {
|
||||
"version": "2.4.0",
|
||||
"resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.4.0.tgz",
|
||||
"integrity": "sha512-sJAofoarcm76ZGpuooaO0eDy8saEy+YoZBLjC4h8srt4jeBnkYeOgqxgsJQTpyt2LjI5PTfLJHSL+41Yu4fEJA==",
|
||||
"dev": true
|
||||
"integrity": "sha512-sJAofoarcm76ZGpuooaO0eDy8saEy+YoZBLjC4h8srt4jeBnkYeOgqxgsJQTpyt2LjI5PTfLJHSL+41Yu4fEJA=="
|
||||
},
|
||||
"cli-truncate": {
|
||||
"version": "2.1.0",
|
||||
@ -4382,8 +4443,7 @@
|
||||
"cli-width": {
|
||||
"version": "2.2.1",
|
||||
"resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz",
|
||||
"integrity": "sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==",
|
||||
"dev": true
|
||||
"integrity": "sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw=="
|
||||
},
|
||||
"cliui": {
|
||||
"version": "5.0.0",
|
||||
@ -4592,17 +4652,40 @@
|
||||
"version": "1.5.3",
|
||||
"resolved": "https://registry.npmjs.org/color-string/-/color-string-1.5.3.tgz",
|
||||
"integrity": "sha512-dC2C5qeWoYkxki5UAXapdjqO672AM4vZuPGRQfO8b5HKuKGBbKWpITyDYN7TOFKvRW7kOgAn3746clDBMDJyQw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"color-name": "^1.0.0",
|
||||
"simple-swizzle": "^0.2.2"
|
||||
}
|
||||
},
|
||||
"colornames": {
|
||||
"version": "1.1.1",
|
||||
"resolved": "https://registry.npmjs.org/colornames/-/colornames-1.1.1.tgz",
|
||||
"integrity": "sha1-+IiQMGhcfE/54qVZ9Qd+t2qBb5Y="
|
||||
},
|
||||
"colors": {
|
||||
"version": "1.4.0",
|
||||
"resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz",
|
||||
"integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==",
|
||||
"dev": true
|
||||
"integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA=="
|
||||
},
|
||||
"colorspace": {
|
||||
"version": "1.1.2",
|
||||
"resolved": "https://registry.npmjs.org/colorspace/-/colorspace-1.1.2.tgz",
|
||||
"integrity": "sha512-vt+OoIP2d76xLhjwbBaucYlNSpPsrJWPlBTtwCpQKIu6/CSMutyzX93O/Do0qzpH3YoHEes8YEFXyZ797rEhzQ==",
|
||||
"requires": {
|
||||
"color": "3.0.x",
|
||||
"text-hex": "1.0.x"
|
||||
},
|
||||
"dependencies": {
|
||||
"color": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/color/-/color-3.0.0.tgz",
|
||||
"integrity": "sha512-jCpd5+s0s0t7p3pHQKpnJ0TpQKKdleP71LWcA0aqiljpiuAkOSUFN/dyH8ZwF0hRmFlrIuRhufds1QyEP9EB+w==",
|
||||
"requires": {
|
||||
"color-convert": "^1.9.1",
|
||||
"color-string": "^1.5.2"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"combined-stream": {
|
||||
"version": "1.0.8",
|
||||
@ -5061,8 +5144,7 @@
|
||||
"core-util-is": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
|
||||
"integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",
|
||||
"dev": true
|
||||
"integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="
|
||||
},
|
||||
"cosmiconfig": {
|
||||
"version": "5.2.1",
|
||||
@ -6070,7 +6152,6 @@
|
||||
"version": "1.0.3",
|
||||
"resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz",
|
||||
"integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"clone": "^1.0.2"
|
||||
},
|
||||
@ -6078,8 +6159,7 @@
|
||||
"clone": {
|
||||
"version": "1.0.4",
|
||||
"resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz",
|
||||
"integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=",
|
||||
"dev": true
|
||||
"integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4="
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -6250,6 +6330,16 @@
|
||||
"integrity": "sha1-gGZJMmzqp8qjMG112YXqJ0i6kTw=",
|
||||
"dev": true
|
||||
},
|
||||
"diagnostics": {
|
||||
"version": "1.1.1",
|
||||
"resolved": "https://registry.npmjs.org/diagnostics/-/diagnostics-1.1.1.tgz",
|
||||
"integrity": "sha512-8wn1PmdunLJ9Tqbx+Fx/ZEuHfJf4NKSN2ZBj7SJC/OWRWha843+WsTjqMe1B5E3p28jqBlp+mJ2fPVxPyNgYKQ==",
|
||||
"requires": {
|
||||
"colorspace": "1.1.x",
|
||||
"enabled": "1.0.x",
|
||||
"kuler": "1.0.x"
|
||||
}
|
||||
},
|
||||
"diff": {
|
||||
"version": "4.0.2",
|
||||
"resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz",
|
||||
@ -6551,6 +6641,14 @@
|
||||
"integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==",
|
||||
"dev": true
|
||||
},
|
||||
"enabled": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/enabled/-/enabled-1.0.2.tgz",
|
||||
"integrity": "sha1-ll9lE9LC0cX0ZStkouM5ZGf8L5M=",
|
||||
"requires": {
|
||||
"env-variable": "0.0.x"
|
||||
}
|
||||
},
|
||||
"encodeurl": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
|
||||
@ -6710,6 +6808,11 @@
|
||||
"integrity": "sha512-MyoZ0jgnLvB2X3Lg5HqpFmn1kybDiIfEQmKzTb5apr51Rb+T3KdmMiqa70T+bhGnyv7bQ6WMj2QMHpGMmlrUYQ==",
|
||||
"dev": true
|
||||
},
|
||||
"env-variable": {
|
||||
"version": "0.0.6",
|
||||
"resolved": "https://registry.npmjs.org/env-variable/-/env-variable-0.0.6.tgz",
|
||||
"integrity": "sha512-bHz59NlBbtS0NhftmR8+ExBEekE7br0e01jw+kk0NDro7TtZzBYZ5ScGPs3OmwnpyfHTHOtr1Y6uedCdrIldtg=="
|
||||
},
|
||||
"err-code": {
|
||||
"version": "1.1.2",
|
||||
"resolved": "https://registry.npmjs.org/err-code/-/err-code-1.1.2.tgz",
|
||||
@ -7208,7 +7311,6 @@
|
||||
"version": "3.1.0",
|
||||
"resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz",
|
||||
"integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"chardet": "^0.7.0",
|
||||
"iconv-lite": "^0.4.24",
|
||||
@ -7364,6 +7466,11 @@
|
||||
"websocket-driver": ">=0.5.1"
|
||||
}
|
||||
},
|
||||
"fecha": {
|
||||
"version": "4.2.0",
|
||||
"resolved": "https://registry.npmjs.org/fecha/-/fecha-4.2.0.tgz",
|
||||
"integrity": "sha512-aN3pcx/DSmtyoovUudctc8+6Hl4T+hI9GBBHLjA76jdZl7+b1sgh5g4k+u/GL3dTy1/pnYzKp69FpJ0OicE3Wg=="
|
||||
},
|
||||
"figgy-pudding": {
|
||||
"version": "3.5.2",
|
||||
"resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.2.tgz",
|
||||
@ -7374,7 +7481,6 @@
|
||||
"version": "3.2.0",
|
||||
"resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz",
|
||||
"integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"escape-string-regexp": "^1.0.5"
|
||||
}
|
||||
@ -7974,8 +8080,7 @@
|
||||
"has-flag": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
|
||||
"integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
|
||||
"dev": true
|
||||
"integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0="
|
||||
},
|
||||
"has-own-prop": {
|
||||
"version": "2.0.0",
|
||||
@ -8752,7 +8857,6 @@
|
||||
"version": "7.1.0",
|
||||
"resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.1.0.tgz",
|
||||
"integrity": "sha512-5fJMWEmikSYu0nv/flMc475MhGbB7TSPd/2IpFV4I4rMklboCH2rQjYY5kKiYGHqUF9gvaambupcJFFG9dvReg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"ansi-escapes": "^4.2.1",
|
||||
"chalk": "^3.0.0",
|
||||
@ -8772,67 +8876,22 @@
|
||||
"ansi-regex": {
|
||||
"version": "5.0.0",
|
||||
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
|
||||
"integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==",
|
||||
"dev": true
|
||||
},
|
||||
"ansi-styles": {
|
||||
"version": "4.2.1",
|
||||
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz",
|
||||
"integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@types/color-name": "^1.1.1",
|
||||
"color-convert": "^2.0.1"
|
||||
}
|
||||
},
|
||||
"chalk": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz",
|
||||
"integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"ansi-styles": "^4.1.0",
|
||||
"supports-color": "^7.1.0"
|
||||
}
|
||||
},
|
||||
"color-convert": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
|
||||
"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"color-name": "~1.1.4"
|
||||
}
|
||||
},
|
||||
"color-name": {
|
||||
"version": "1.1.4",
|
||||
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
|
||||
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
|
||||
"dev": true
|
||||
"integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg=="
|
||||
},
|
||||
"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==",
|
||||
"dev": true
|
||||
},
|
||||
"has-flag": {
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
|
||||
"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
|
||||
"dev": true
|
||||
"integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="
|
||||
},
|
||||
"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==",
|
||||
"dev": true
|
||||
"integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg=="
|
||||
},
|
||||
"string-width": {
|
||||
"version": "4.2.0",
|
||||
"resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz",
|
||||
"integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"emoji-regex": "^8.0.0",
|
||||
"is-fullwidth-code-point": "^3.0.0",
|
||||
@ -8843,19 +8902,9 @@
|
||||
"version": "6.0.0",
|
||||
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
|
||||
"integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"ansi-regex": "^5.0.0"
|
||||
}
|
||||
},
|
||||
"supports-color": {
|
||||
"version": "7.1.0",
|
||||
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz",
|
||||
"integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"has-flag": "^4.0.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -9096,8 +9145,7 @@
|
||||
"is-interactive": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz",
|
||||
"integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==",
|
||||
"dev": true
|
||||
"integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w=="
|
||||
},
|
||||
"is-module": {
|
||||
"version": "1.0.0",
|
||||
@ -9202,8 +9250,7 @@
|
||||
"is-stream": {
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz",
|
||||
"integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=",
|
||||
"dev": true
|
||||
"integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ="
|
||||
},
|
||||
"is-svg": {
|
||||
"version": "3.0.0",
|
||||
@ -9962,6 +10009,14 @@
|
||||
"integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==",
|
||||
"dev": true
|
||||
},
|
||||
"kuler": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/kuler/-/kuler-1.0.1.tgz",
|
||||
"integrity": "sha512-J9nVUucG1p/skKul6DU3PUZrhs0LPulNaeUOox0IyXDi8S4CztTHs1gQphhuZmzXG7VOQSf6NJfKuzteQLv9gQ==",
|
||||
"requires": {
|
||||
"colornames": "^1.1.1"
|
||||
}
|
||||
},
|
||||
"latest-version": {
|
||||
"version": "5.1.0",
|
||||
"resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz",
|
||||
@ -10505,7 +10560,6 @@
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-3.0.0.tgz",
|
||||
"integrity": "sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"chalk": "^2.4.2"
|
||||
},
|
||||
@ -10514,7 +10568,6 @@
|
||||
"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==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"color-convert": "^1.9.0"
|
||||
}
|
||||
@ -10523,7 +10576,6 @@
|
||||
"version": "2.4.2",
|
||||
"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
|
||||
"integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"ansi-styles": "^3.2.1",
|
||||
"escape-string-regexp": "^1.0.5",
|
||||
@ -10534,7 +10586,6 @@
|
||||
"version": "5.5.0",
|
||||
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
|
||||
"integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"has-flag": "^3.0.0"
|
||||
}
|
||||
@ -10653,6 +10704,18 @@
|
||||
"streamroller": "^2.2.4"
|
||||
}
|
||||
},
|
||||
"logform": {
|
||||
"version": "2.2.0",
|
||||
"resolved": "https://registry.npmjs.org/logform/-/logform-2.2.0.tgz",
|
||||
"integrity": "sha512-N0qPlqfypFx7UHNn4B3lzS/b0uLqt2hmuoa+PpuXNYgozdJYAyauF5Ky0BWVjrxDlMWiT3qN4zPq3vVAfZy7Yg==",
|
||||
"requires": {
|
||||
"colors": "^1.2.1",
|
||||
"fast-safe-stringify": "^2.0.4",
|
||||
"fecha": "^4.2.0",
|
||||
"ms": "^2.1.1",
|
||||
"triple-beam": "^1.3.0"
|
||||
}
|
||||
},
|
||||
"loglevel": {
|
||||
"version": "1.6.8",
|
||||
"resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.6.8.tgz",
|
||||
@ -10909,8 +10972,7 @@
|
||||
"mimic-fn": {
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
|
||||
"integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
|
||||
"dev": true
|
||||
"integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg=="
|
||||
},
|
||||
"mimic-response": {
|
||||
"version": "1.0.1",
|
||||
@ -11192,8 +11254,7 @@
|
||||
"mute-stream": {
|
||||
"version": "0.0.8",
|
||||
"resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz",
|
||||
"integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==",
|
||||
"dev": true
|
||||
"integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA=="
|
||||
},
|
||||
"nan": {
|
||||
"version": "2.14.1",
|
||||
@ -11874,11 +11935,15 @@
|
||||
"wrappy": "1"
|
||||
}
|
||||
},
|
||||
"one-time": {
|
||||
"version": "0.0.4",
|
||||
"resolved": "https://registry.npmjs.org/one-time/-/one-time-0.0.4.tgz",
|
||||
"integrity": "sha1-+M33eISCb+Tf+T46nMN7HkSAdC4="
|
||||
},
|
||||
"onetime": {
|
||||
"version": "5.1.0",
|
||||
"resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.0.tgz",
|
||||
"integrity": "sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"mimic-fn": "^2.1.0"
|
||||
}
|
||||
@ -11924,10 +11989,9 @@
|
||||
}
|
||||
},
|
||||
"ora": {
|
||||
"version": "4.0.4",
|
||||
"resolved": "https://registry.npmjs.org/ora/-/ora-4.0.4.tgz",
|
||||
"integrity": "sha512-77iGeVU1cIdRhgFzCK8aw1fbtT1B/iZAvWjS+l/o1x0RShMgxHUZaD2yDpWsNCPwXg9z1ZA78Kbdvr8kBmG/Ww==",
|
||||
"dev": true,
|
||||
"version": "4.0.3",
|
||||
"resolved": "https://registry.npmjs.org/ora/-/ora-4.0.3.tgz",
|
||||
"integrity": "sha512-fnDebVFyz309A73cqCipVL1fBZewq4vwgSHfxh43vVy31mbyoQ8sCH3Oeaog/owYOs/lLlGVPCISQonTneg6Pg==",
|
||||
"requires": {
|
||||
"chalk": "^3.0.0",
|
||||
"cli-cursor": "^3.1.0",
|
||||
@ -11942,67 +12006,15 @@
|
||||
"ansi-regex": {
|
||||
"version": "5.0.0",
|
||||
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz",
|
||||
"integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==",
|
||||
"dev": true
|
||||
},
|
||||
"ansi-styles": {
|
||||
"version": "4.2.1",
|
||||
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz",
|
||||
"integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@types/color-name": "^1.1.1",
|
||||
"color-convert": "^2.0.1"
|
||||
}
|
||||
},
|
||||
"chalk": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz",
|
||||
"integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"ansi-styles": "^4.1.0",
|
||||
"supports-color": "^7.1.0"
|
||||
}
|
||||
},
|
||||
"color-convert": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
|
||||
"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"color-name": "~1.1.4"
|
||||
}
|
||||
},
|
||||
"color-name": {
|
||||
"version": "1.1.4",
|
||||
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
|
||||
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
|
||||
"dev": true
|
||||
},
|
||||
"has-flag": {
|
||||
"version": "4.0.0",
|
||||
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
|
||||
"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
|
||||
"dev": true
|
||||
"integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg=="
|
||||
},
|
||||
"strip-ansi": {
|
||||
"version": "6.0.0",
|
||||
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz",
|
||||
"integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"ansi-regex": "^5.0.0"
|
||||
}
|
||||
},
|
||||
"supports-color": {
|
||||
"version": "7.1.0",
|
||||
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz",
|
||||
"integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"has-flag": "^4.0.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -12030,8 +12042,7 @@
|
||||
"os-tmpdir": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
|
||||
"integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=",
|
||||
"dev": true
|
||||
"integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ="
|
||||
},
|
||||
"osenv": {
|
||||
"version": "0.1.5",
|
||||
@ -13275,8 +13286,7 @@
|
||||
"process-nextick-args": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
|
||||
"integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==",
|
||||
"dev": true
|
||||
"integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag=="
|
||||
},
|
||||
"promise-inflight": {
|
||||
"version": "1.0.1",
|
||||
@ -13354,6 +13364,19 @@
|
||||
"integrity": "sha512-tGomyEuzSC1H28y2zlW6XPCaDaXFaD6soTdb4GNdmte2qfHtrKqhy0ZFs4r/1hpazCfEZqeTSRLvSasmEx89uw==",
|
||||
"dev": true
|
||||
},
|
||||
"chalk": {
|
||||
"version": "1.1.3",
|
||||
"resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
|
||||
"integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"ansi-styles": "^2.2.1",
|
||||
"escape-string-regexp": "^1.0.2",
|
||||
"has-ansi": "^2.0.0",
|
||||
"strip-ansi": "^3.0.0",
|
||||
"supports-color": "^2.0.0"
|
||||
}
|
||||
},
|
||||
"q": {
|
||||
"version": "1.4.1",
|
||||
"resolved": "https://registry.npmjs.org/q/-/q-1.4.1.tgz",
|
||||
@ -14148,7 +14171,6 @@
|
||||
"version": "3.1.0",
|
||||
"resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz",
|
||||
"integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"onetime": "^5.1.0",
|
||||
"signal-exit": "^3.0.2"
|
||||
@ -14267,8 +14289,7 @@
|
||||
"run-async": {
|
||||
"version": "2.4.1",
|
||||
"resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz",
|
||||
"integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==",
|
||||
"dev": true
|
||||
"integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ=="
|
||||
},
|
||||
"run-parallel": {
|
||||
"version": "1.1.9",
|
||||
@ -14902,14 +14923,12 @@
|
||||
"signal-exit": {
|
||||
"version": "3.0.3",
|
||||
"resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz",
|
||||
"integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==",
|
||||
"dev": true
|
||||
"integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA=="
|
||||
},
|
||||
"simple-swizzle": {
|
||||
"version": "0.2.2",
|
||||
"resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz",
|
||||
"integrity": "sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"is-arrayish": "^0.3.1"
|
||||
},
|
||||
@ -14917,8 +14936,7 @@
|
||||
"is-arrayish": {
|
||||
"version": "0.3.2",
|
||||
"resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz",
|
||||
"integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==",
|
||||
"dev": true
|
||||
"integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ=="
|
||||
}
|
||||
}
|
||||
},
|
||||
@ -15646,6 +15664,11 @@
|
||||
"integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==",
|
||||
"dev": true
|
||||
},
|
||||
"stack-trace": {
|
||||
"version": "0.0.10",
|
||||
"resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz",
|
||||
"integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA="
|
||||
},
|
||||
"static-extend": {
|
||||
"version": "0.1.2",
|
||||
"resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz",
|
||||
@ -16328,6 +16351,11 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"text-hex": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/text-hex/-/text-hex-1.0.0.tgz",
|
||||
"integrity": "sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg=="
|
||||
},
|
||||
"tfunk": {
|
||||
"version": "3.1.0",
|
||||
"resolved": "https://registry.npmjs.org/tfunk/-/tfunk-3.1.0.tgz",
|
||||
@ -16335,13 +16363,26 @@
|
||||
"requires": {
|
||||
"chalk": "^1.1.1",
|
||||
"object-path": "^0.9.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"chalk": {
|
||||
"version": "1.1.3",
|
||||
"resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
|
||||
"integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
|
||||
"requires": {
|
||||
"ansi-styles": "^2.2.1",
|
||||
"escape-string-regexp": "^1.0.2",
|
||||
"has-ansi": "^2.0.0",
|
||||
"strip-ansi": "^3.0.0",
|
||||
"supports-color": "^2.0.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"through": {
|
||||
"version": "2.3.8",
|
||||
"resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
|
||||
"integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=",
|
||||
"dev": true
|
||||
"integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU="
|
||||
},
|
||||
"through2": {
|
||||
"version": "2.0.5",
|
||||
@ -16416,7 +16457,6 @@
|
||||
"version": "0.0.33",
|
||||
"resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
|
||||
"integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"os-tmpdir": "~1.0.2"
|
||||
}
|
||||
@ -16535,6 +16575,11 @@
|
||||
"escape-string-regexp": "^1.0.2"
|
||||
}
|
||||
},
|
||||
"triple-beam": {
|
||||
"version": "1.3.0",
|
||||
"resolved": "https://registry.npmjs.org/triple-beam/-/triple-beam-1.3.0.tgz",
|
||||
"integrity": "sha512-XrHUvV5HpdLmIj4uVMxHggLbFSZYIn7HEWsqePZcI50pco+MPqJ50wMGY794X7AOOhxOBAjbkqfAbEe/QMp2Lw=="
|
||||
},
|
||||
"ts-node": {
|
||||
"version": "8.10.2",
|
||||
"resolved": "https://registry.npmjs.org/ts-node/-/ts-node-8.10.2.tgz",
|
||||
@ -16735,8 +16780,7 @@
|
||||
"type-fest": {
|
||||
"version": "0.11.0",
|
||||
"resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz",
|
||||
"integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==",
|
||||
"dev": true
|
||||
"integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ=="
|
||||
},
|
||||
"type-is": {
|
||||
"version": "1.6.18",
|
||||
@ -17557,7 +17601,6 @@
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz",
|
||||
"integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"defaults": "^1.0.3"
|
||||
}
|
||||
@ -17629,6 +17672,19 @@
|
||||
"array-uniq": "^1.0.1"
|
||||
}
|
||||
},
|
||||
"chalk": {
|
||||
"version": "1.1.3",
|
||||
"resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
|
||||
"integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"ansi-styles": "^2.2.1",
|
||||
"escape-string-regexp": "^1.0.2",
|
||||
"has-ansi": "^2.0.0",
|
||||
"strip-ansi": "^3.0.0",
|
||||
"supports-color": "^2.0.0"
|
||||
}
|
||||
},
|
||||
"del": {
|
||||
"version": "2.2.2",
|
||||
"resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz",
|
||||
@ -18533,6 +18589,75 @@
|
||||
}
|
||||
}
|
||||
},
|
||||
"winston": {
|
||||
"version": "3.2.1",
|
||||
"resolved": "https://registry.npmjs.org/winston/-/winston-3.2.1.tgz",
|
||||
"integrity": "sha512-zU6vgnS9dAWCEKg/QYigd6cgMVVNwyTzKs81XZtTFuRwJOcDdBg7AU0mXVyNbs7O5RH2zdv+BdNZUlx7mXPuOw==",
|
||||
"requires": {
|
||||
"async": "^2.6.1",
|
||||
"diagnostics": "^1.1.1",
|
||||
"is-stream": "^1.1.0",
|
||||
"logform": "^2.1.1",
|
||||
"one-time": "0.0.4",
|
||||
"readable-stream": "^3.1.1",
|
||||
"stack-trace": "0.0.x",
|
||||
"triple-beam": "^1.3.0",
|
||||
"winston-transport": "^4.3.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"async": {
|
||||
"version": "2.6.3",
|
||||
"resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz",
|
||||
"integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==",
|
||||
"requires": {
|
||||
"lodash": "^4.17.14"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"winston-transport": {
|
||||
"version": "4.4.0",
|
||||
"resolved": "https://registry.npmjs.org/winston-transport/-/winston-transport-4.4.0.tgz",
|
||||
"integrity": "sha512-Lc7/p3GtqtqPBYYtS6KCN3c77/2QCev51DvcJKbkFPQNoj1sinkGwLGFDxkXY9J6p9+EPnYs+D90uwbnaiURTw==",
|
||||
"requires": {
|
||||
"readable-stream": "^2.3.7",
|
||||
"triple-beam": "^1.2.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"isarray": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
|
||||
"integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
|
||||
},
|
||||
"readable-stream": {
|
||||
"version": "2.3.7",
|
||||
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
|
||||
"integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
|
||||
"requires": {
|
||||
"core-util-is": "~1.0.0",
|
||||
"inherits": "~2.0.3",
|
||||
"isarray": "~1.0.0",
|
||||
"process-nextick-args": "~2.0.0",
|
||||
"safe-buffer": "~5.1.1",
|
||||
"string_decoder": "~1.1.1",
|
||||
"util-deprecate": "~1.0.1"
|
||||
}
|
||||
},
|
||||
"safe-buffer": {
|
||||
"version": "5.1.2",
|
||||
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
|
||||
"integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
|
||||
},
|
||||
"string_decoder": {
|
||||
"version": "1.1.1",
|
||||
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
|
||||
"integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
|
||||
"requires": {
|
||||
"safe-buffer": "~5.1.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"worker-farm": {
|
||||
"version": "1.7.0",
|
||||
"resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.7.0.tgz",
|
||||
|
17
package.json
17
package.json
@ -17,6 +17,7 @@
|
||||
"build.e2e": "npm run build.app -- --prod --configuration=e2e",
|
||||
"test": "ng test app --code-coverage",
|
||||
"unit": "ng test --browsers=Chrome --watch",
|
||||
"lite-serve": "./scripts/run lite-serve",
|
||||
"test:ci": "npm run build.extensions && ng test adf-office-services-ext --watch=false && ng test app --code-coverage --watch=false",
|
||||
"lint": "ng lint && npm run spellcheck && npm run e2e.typecheck",
|
||||
"update-webdriver": "./scripts/update-webdriver.sh",
|
||||
@ -33,11 +34,11 @@
|
||||
},
|
||||
"private": true,
|
||||
"dependencies": {
|
||||
"@alfresco/adf-content-services": "3.10.0-89b37067ff6b1ccde8af1a1611828ee61da0bcac",
|
||||
"@alfresco/adf-core": "3.10.0-89b37067ff6b1ccde8af1a1611828ee61da0bcac",
|
||||
"@alfresco/adf-extensions": "3.10.0-89b37067ff6b1ccde8af1a1611828ee61da0bcac",
|
||||
"@alfresco/adf-content-services": "3.10.0-61cac20ab3b1a76069dcfbfbe37619126d4b51ab",
|
||||
"@alfresco/adf-core": "3.10.0-61cac20ab3b1a76069dcfbfbe37619126d4b51ab",
|
||||
"@alfresco/adf-extensions": "3.10.0-61cac20ab3b1a76069dcfbfbe37619126d4b51ab",
|
||||
"@alfresco/js-api": "3.10.0-23b97d354151ced90eb2fc68f9d57cad852376d7",
|
||||
"@angular-custom-builders/lite-serve": "0.2.2",
|
||||
"@angular-custom-builders/lite-serve": "^0.2.2",
|
||||
"@angular/animations": "10.0.4",
|
||||
"@angular/cdk": "^10.0.2",
|
||||
"@angular/common": "10.0.4",
|
||||
@ -58,17 +59,21 @@
|
||||
"@ngrx/store-devtools": "^9.2.0",
|
||||
"@ngx-translate/core": "^13.0.0",
|
||||
"browser-sync": "^2.26.12",
|
||||
"chalk": "^3.0.0",
|
||||
"inquirer": "^7.1.0",
|
||||
"minimatch-browser": "^1.0.0",
|
||||
"moment": "^2.27.0",
|
||||
"moment-es6": "1.0.0",
|
||||
"ora": "^4.0.3",
|
||||
"pdfjs-dist": "2.4.456",
|
||||
"rxjs": "^6.6.2",
|
||||
"tslib": "^2.0.1",
|
||||
"winston": "^3.2.1",
|
||||
"zone.js": "~0.10.2"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@alfresco/adf-cli": "3.10.0-89b37067ff6b1ccde8af1a1611828ee61da0bcac",
|
||||
"@alfresco/adf-testing": "3.10.0-89b37067ff6b1ccde8af1a1611828ee61da0bcac",
|
||||
"@alfresco/adf-cli": "3.10.0-61cac20ab3b1a76069dcfbfbe37619126d4b51ab",
|
||||
"@alfresco/adf-testing": "3.10.0-61cac20ab3b1a76069dcfbfbe37619126d4b51ab",
|
||||
"@angular-devkit/build-angular": "~0.1000.4",
|
||||
"@angular-devkit/build-ng-packagr": "~0.1000.5",
|
||||
"@angular/cli": "^10.0.5",
|
||||
|
@ -4,51 +4,73 @@ const program = require('commander');
|
||||
require('dotenv').config({ path: process.env.ENV_FILE });
|
||||
const fs = require('fs');
|
||||
|
||||
const API_CONTENT_HOST = process.env.API_CONTENT_HOST || 'api';
|
||||
const OAUTH_HOST = process.env.OAUTH_HOST || 'keycloak';
|
||||
const API_HOST = process.env.API_HOST || null;
|
||||
const API_CONTENT_HOST = process.env.API_CONTENT_HOST || API_HOST;
|
||||
const API_PROCESS_HOST = process.env.API_PROCESS_HOST || API_HOST;
|
||||
const API_AOS_HOST = process.env.AOS_HOST || API_HOST;
|
||||
const OAUTH_HOST = process.env.OAUTH_HOST || 'oauth-host-default-replaced-value';
|
||||
const IDENTITY_HOST = process.env.IDENTITY_HOST || 'identity-host-default-replaced-value';
|
||||
const NOTIFICATION_LAST = parseInt(process.env.NOTIFICATION_LAST, 10) || 2000;
|
||||
|
||||
const options = {
|
||||
apiHost: {
|
||||
flags: '-a, --api-host',
|
||||
description: "set apiHost's and ecmHost's value with API_CONTENT_HOST",
|
||||
set: appConfig => {
|
||||
description:
|
||||
'set apiHost=API_HOST, bpmHost=API_PROCESS_HOST, ecmHost=API_CONTENT_HOST, aosHost = API_AOS_HOST if present or fall back to API_HOST in each case',
|
||||
set: (appConfig) => {
|
||||
appConfig.apiHost = API_HOST;
|
||||
appConfig.bpmHost = API_PROCESS_HOST;
|
||||
appConfig.ecmHost = API_CONTENT_HOST;
|
||||
appConfig.aosHost = API_CONTENT_HOST + '/alfresco/aos';
|
||||
appConfig.aosHost = API_AOS_HOST;
|
||||
}
|
||||
},
|
||||
indentityHost: {
|
||||
flags: '-i, --indentity-host',
|
||||
description: "set identityHost's value with IDENTITY_HOST",
|
||||
set: (appConfig) => {
|
||||
appConfig.authType = 'OAUTH';
|
||||
appConfig.identityHost = IDENTITY_HOST;
|
||||
}
|
||||
},
|
||||
oauthHost: {
|
||||
flags: '-o, --oauth-host',
|
||||
description: "set oauth2.host's value with OAUTH_HOST",
|
||||
set: appConfig => {
|
||||
set: (appConfig) => {
|
||||
appConfig.authType = 'OAUTH';
|
||||
appConfig.oauth2.host = OAUTH_HOST;
|
||||
}
|
||||
},
|
||||
notification: {
|
||||
flags: '-n, --notification',
|
||||
description: "set notificationDefaultDuration's value with <duration> and switch on showNotificationHistory",
|
||||
set: (appConfig) => {
|
||||
appConfig.showNotificationHistory = true;
|
||||
appConfig.notificationDefaultDuration = NOTIFICATION_LAST;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
program
|
||||
.version('0.0.1')
|
||||
.requiredOption(
|
||||
'-c, --config <path>',
|
||||
'path to the app.config.json to reset its values with env vars'
|
||||
);
|
||||
program.version('0.0.1').requiredOption('-c, --config <path>', 'path to the app.config.json to reset its values with env vars');
|
||||
|
||||
Object.keys(options).forEach(option => {
|
||||
Object.keys(options).forEach((option) => {
|
||||
program.option(options[option].flags, options[option].description);
|
||||
});
|
||||
|
||||
program.parse(process.argv);
|
||||
|
||||
fs.readFile(program.config, (err, appConfigString) => {
|
||||
if (err) throw err;
|
||||
let appConfig = JSON.parse(appConfigString);
|
||||
if (err) {
|
||||
throw err;
|
||||
}
|
||||
|
||||
Object.keys(options).forEach(option => {
|
||||
const appConfig = JSON.parse(appConfigString);
|
||||
|
||||
Object.keys(options).forEach((option) => {
|
||||
if (program[option]) {
|
||||
options[option].set(appConfig);
|
||||
}
|
||||
});
|
||||
|
||||
let appConfigReplacedJson = JSON.stringify(appConfig, null, 4);
|
||||
const appConfigReplacedJson = JSON.stringify(appConfig, null, 4);
|
||||
fs.writeFileSync(program.config, appConfigReplacedJson);
|
||||
});
|
||||
|
38
scripts/clireader/base-param.ts
Normal file
38
scripts/clireader/base-param.ts
Normal file
@ -0,0 +1,38 @@
|
||||
/*
|
||||
* Copyright 2005-2019 Alfresco Software, Ltd. All rights reserved.
|
||||
*
|
||||
* License rights for this program may be obtained from Alfresco Software, Ltd.
|
||||
* pursuant to a written agreement and any use of this program without such an
|
||||
* agreement is prohibited.
|
||||
*/
|
||||
|
||||
import { ParamType } from './params';
|
||||
|
||||
export type CommanderProcessor = (arg1: any, arg2: any) => void;
|
||||
export type CommanderOptionParams = [string, string, CommanderProcessor?, any?];
|
||||
|
||||
export interface BaseParamOptions {
|
||||
name: string;
|
||||
alias: string;
|
||||
title: string;
|
||||
required: boolean;
|
||||
processor?: CommanderProcessor;
|
||||
default?: any;
|
||||
}
|
||||
|
||||
export abstract class BaseParam {
|
||||
protected type: ParamType;
|
||||
constructor(protected options: BaseParamOptions) {}
|
||||
|
||||
abstract get commanderOption(): CommanderOptionParams;
|
||||
|
||||
abstract get inquirerOption(): any;
|
||||
|
||||
get isRequired() {
|
||||
return this.options.required;
|
||||
}
|
||||
|
||||
get name() {
|
||||
return this.options.name;
|
||||
}
|
||||
}
|
40
scripts/clireader/boolean-param.ts
Normal file
40
scripts/clireader/boolean-param.ts
Normal file
@ -0,0 +1,40 @@
|
||||
/*
|
||||
* Copyright 2005-2019 Alfresco Software, Ltd. All rights reserved.
|
||||
*
|
||||
* License rights for this program may be obtained from Alfresco Software, Ltd.
|
||||
* pursuant to a written agreement and any use of this program without such an
|
||||
* agreement is prohibited.
|
||||
*/
|
||||
|
||||
import { ParamType } from './params';
|
||||
import { BaseParamOptions, CommanderOptionParams, BaseParam } from './base-param';
|
||||
|
||||
export class BooleanParam extends BaseParam {
|
||||
protected type = ParamType.confirm;
|
||||
|
||||
get commanderOption(): CommanderOptionParams {
|
||||
const optionParams: CommanderOptionParams = [`-${this.options.alias}, --${this.options.name}`, this.options.title];
|
||||
|
||||
if (this.options.processor !== undefined) {
|
||||
optionParams.push(this.options.processor);
|
||||
} else {
|
||||
optionParams.push((value, previousValue) => {
|
||||
return value !== undefined ? !!value : previousValue;
|
||||
});
|
||||
}
|
||||
|
||||
if (this.options.default !== undefined) {
|
||||
optionParams.push(this.options.default);
|
||||
}
|
||||
|
||||
return optionParams;
|
||||
}
|
||||
|
||||
get inquirerOption() {
|
||||
return {
|
||||
type: this.type,
|
||||
name: this.options.name,
|
||||
message: this.options.title
|
||||
};
|
||||
}
|
||||
}
|
58
scripts/clireader/checkbox-param.ts
Normal file
58
scripts/clireader/checkbox-param.ts
Normal file
@ -0,0 +1,58 @@
|
||||
/*
|
||||
* Copyright 2005-2019 Alfresco Software, Ltd. All rights reserved.
|
||||
*
|
||||
* License rights for this program may be obtained from Alfresco Software, Ltd.
|
||||
* pursuant to a written agreement and any use of this program without such an
|
||||
* agreement is prohibited.
|
||||
*/
|
||||
|
||||
import { ParamType } from './params';
|
||||
import { BaseParamOptions, CommanderOptionParams, BaseParam } from './base-param';
|
||||
|
||||
export interface ComplexCheckboxChoice {
|
||||
name: string;
|
||||
value?: any;
|
||||
checked?: boolean;
|
||||
short?: string;
|
||||
}
|
||||
|
||||
export interface ChekboxParamOptions extends BaseParamOptions {
|
||||
choices: string[] | ComplexCheckboxChoice[];
|
||||
default?: any[];
|
||||
}
|
||||
|
||||
export class CheckboxParam extends BaseParam {
|
||||
protected type = ParamType.checkbox;
|
||||
|
||||
constructor(protected options: ChekboxParamOptions) {
|
||||
super(options);
|
||||
}
|
||||
|
||||
get commanderOption(): CommanderOptionParams {
|
||||
const optionParams: CommanderOptionParams = [`-${this.options.alias}, --${this.options.name} <${this.options.name}>`, this.options.title];
|
||||
|
||||
if (this.options.processor !== undefined) {
|
||||
optionParams.push(this.options.processor);
|
||||
} else {
|
||||
optionParams.push((value, previousValue) => {
|
||||
return value !== undefined ? value.split(',') : previousValue;
|
||||
});
|
||||
}
|
||||
|
||||
if (this.options.default !== undefined) {
|
||||
optionParams.push(this.options.default);
|
||||
}
|
||||
|
||||
return optionParams;
|
||||
}
|
||||
|
||||
get inquirerOption() {
|
||||
return {
|
||||
type: this.type,
|
||||
name: this.options.name,
|
||||
message: this.options.title,
|
||||
choices: this.options.choices,
|
||||
default: this.options.default
|
||||
};
|
||||
}
|
||||
}
|
55
scripts/clireader/cli-reader.ts
Normal file
55
scripts/clireader/cli-reader.ts
Normal file
@ -0,0 +1,55 @@
|
||||
/*
|
||||
* Copyright 2005-2019 Alfresco Software, Ltd. All rights reserved.
|
||||
*
|
||||
* License rights for this program may be obtained from Alfresco Software, Ltd.
|
||||
* pursuant to a written agreement and any use of this program without such an
|
||||
* agreement is prohibited.
|
||||
*/
|
||||
|
||||
import commander, { program } from 'commander';
|
||||
import * as inquirer from 'inquirer';
|
||||
import { BooleanParam } from './boolean-param';
|
||||
import { InputParam } from './input-param';
|
||||
import { ListParam } from './list-param';
|
||||
import { CheckboxParam } from './checkbox-param';
|
||||
import * as logger from '../../tools/helpers/logger';
|
||||
|
||||
export type CliParam = ListParam | InputParam | BooleanParam | CheckboxParam;
|
||||
|
||||
export class CliReader {
|
||||
private program: commander.Command;
|
||||
|
||||
constructor(name: string, usage: string, description: string, version: string) {
|
||||
this.program = program;
|
||||
|
||||
this.program
|
||||
.name(name)
|
||||
.usage(usage)
|
||||
.description(description)
|
||||
.version(version)
|
||||
.option('-d, --debug <level>', 'Set the output information level (silly, debug, verbose, info, warn, error)', 'info');
|
||||
}
|
||||
|
||||
*getReader(params: CliParam[], cliArgs: string[]): Generator {
|
||||
params.forEach((param) => {
|
||||
program.option.apply(this.program, param.commanderOption);
|
||||
});
|
||||
this.program.parse(cliArgs);
|
||||
logger.level = this.program.debug;
|
||||
|
||||
const commanderParams = params
|
||||
.filter((param) => this.program[param.name] !== undefined)
|
||||
.reduce((paramsAcc, param) => ({ ...paramsAcc, [param.name]: this.program[param.name] }), {});
|
||||
|
||||
yield commanderParams;
|
||||
|
||||
let unsetRequiredParams;
|
||||
if (Object.keys(commanderParams).length) {
|
||||
unsetRequiredParams = params.filter((param) => param.isRequired && this.program[param.name] === undefined).map((param) => param.inquirerOption);
|
||||
} else {
|
||||
unsetRequiredParams = params.map((param) => param.inquirerOption);
|
||||
}
|
||||
|
||||
return yield inquirer.prompt(unsetRequiredParams).then((inquiredParams) => ({ ...commanderParams, ...inquiredParams }));
|
||||
}
|
||||
}
|
36
scripts/clireader/input-param.ts
Normal file
36
scripts/clireader/input-param.ts
Normal file
@ -0,0 +1,36 @@
|
||||
/*
|
||||
* Copyright 2005-2019 Alfresco Software, Ltd. All rights reserved.
|
||||
*
|
||||
* License rights for this program may be obtained from Alfresco Software, Ltd.
|
||||
* pursuant to a written agreement and any use of this program without such an
|
||||
* agreement is prohibited.
|
||||
*/
|
||||
|
||||
import { ParamType } from './params';
|
||||
import { BaseParam, BaseParamOptions, CommanderOptionParams } from './base-param';
|
||||
|
||||
export class InputParam extends BaseParam {
|
||||
protected type = ParamType.input;
|
||||
|
||||
get commanderOption(): CommanderOptionParams {
|
||||
const optionParams: CommanderOptionParams = [`-${this.options.alias}, --${this.options.name} <${this.options.name}>`, this.options.title];
|
||||
|
||||
if (this.options.processor !== undefined) {
|
||||
optionParams.push(this.options.processor);
|
||||
}
|
||||
|
||||
if (this.options.default !== undefined) {
|
||||
optionParams.push(this.options.default);
|
||||
}
|
||||
|
||||
return optionParams;
|
||||
}
|
||||
|
||||
get inquirerOption() {
|
||||
return {
|
||||
type: this.type,
|
||||
name: this.options.name,
|
||||
message: this.options.title
|
||||
};
|
||||
}
|
||||
}
|
54
scripts/clireader/list-param.ts
Normal file
54
scripts/clireader/list-param.ts
Normal file
@ -0,0 +1,54 @@
|
||||
/*
|
||||
* Copyright 2005-2019 Alfresco Software, Ltd. All rights reserved.
|
||||
*
|
||||
* License rights for this program may be obtained from Alfresco Software, Ltd.
|
||||
* pursuant to a written agreement and any use of this program without such an
|
||||
* agreement is prohibited.
|
||||
*/
|
||||
|
||||
import { ParamType } from './params';
|
||||
import { BaseParamOptions, CommanderOptionParams, BaseParam } from './base-param';
|
||||
|
||||
export interface ComplexListChoice {
|
||||
name: string;
|
||||
value?: any;
|
||||
disabled?: boolean;
|
||||
short?: string;
|
||||
}
|
||||
|
||||
export interface ListParamOptions extends BaseParamOptions {
|
||||
choices: string[] | ComplexListChoice[];
|
||||
pageSize?: number;
|
||||
}
|
||||
|
||||
export class ListParam extends BaseParam {
|
||||
protected type = ParamType.list;
|
||||
|
||||
constructor(protected options: ListParamOptions) {
|
||||
super(options);
|
||||
}
|
||||
|
||||
get commanderOption(): CommanderOptionParams {
|
||||
const optionParams: CommanderOptionParams = [`-${this.options.alias}, --${this.options.name} <${this.options.name}>`, this.options.title];
|
||||
|
||||
if (this.options.processor !== undefined) {
|
||||
optionParams.push(this.options.processor);
|
||||
}
|
||||
|
||||
if (this.options.default !== undefined) {
|
||||
optionParams.push(this.options.default);
|
||||
}
|
||||
|
||||
return optionParams;
|
||||
}
|
||||
|
||||
get inquirerOption() {
|
||||
return {
|
||||
type: this.type,
|
||||
name: this.options.name,
|
||||
message: this.options.title,
|
||||
choices: this.options.choices,
|
||||
pageSize: this.options.pageSize
|
||||
};
|
||||
}
|
||||
}
|
14
scripts/clireader/params.ts
Normal file
14
scripts/clireader/params.ts
Normal file
@ -0,0 +1,14 @@
|
||||
/*
|
||||
* Copyright 2005-2019 Alfresco Software, Ltd. All rights reserved.
|
||||
*
|
||||
* License rights for this program may be obtained from Alfresco Software, Ltd.
|
||||
* pursuant to a written agreement and any use of this program without such an
|
||||
* agreement is prohibited.
|
||||
*/
|
||||
|
||||
export enum ParamType {
|
||||
input = 'input',
|
||||
list = 'list',
|
||||
checkbox = 'checkbox',
|
||||
confirm = 'confirm'
|
||||
}
|
29
scripts/npm/helpers/project-selectors.ts
Normal file
29
scripts/npm/helpers/project-selectors.ts
Normal file
@ -0,0 +1,29 @@
|
||||
/*
|
||||
* Copyright 2005-2019 Alfresco Software, Ltd. All rights reserved.
|
||||
*
|
||||
* License rights for this program may be obtained from Alfresco Software, Ltd.
|
||||
* pursuant to a written agreement and any use of this program without such an
|
||||
* agreement is prohibited.
|
||||
*/
|
||||
|
||||
import * as angularJson from 'angular.json';
|
||||
|
||||
export const getApps = () => {
|
||||
return Object.keys(angularJson.projects)
|
||||
.map((projectName) => ({ name: projectName, ...angularJson.projects[projectName] }))
|
||||
.filter((project) => project.projectType === 'application')
|
||||
.filter((project) => project.name.indexOf('e2e') === -1);
|
||||
};
|
||||
|
||||
export const getE2Es = () => {
|
||||
return Object.keys(angularJson.projects)
|
||||
.map((projectName) => ({ name: projectName, ...angularJson.projects[projectName] }))
|
||||
.filter((project) => project.projectType === 'application')
|
||||
.filter((project) => project.name.endsWith('-e2e'));
|
||||
};
|
||||
|
||||
export const getLibs = () => {
|
||||
return Object.keys(angularJson.projects)
|
||||
.map((projectName) => ({ name: projectName, ...angularJson.projects[projectName] }))
|
||||
.filter((project) => project.projectType === 'library');
|
||||
};
|
159
scripts/npm/lite-serve.ts
Executable file
159
scripts/npm/lite-serve.ts
Executable file
@ -0,0 +1,159 @@
|
||||
/*
|
||||
* Copyright 2005-2019 Alfresco Software, Ltd. All rights reserved.
|
||||
*
|
||||
* License rights for this program may be obtained from Alfresco Software, Ltd.
|
||||
* pursuant to a written agreement and any use of this program without such an
|
||||
* agreement is prohibited.
|
||||
*/
|
||||
|
||||
import { getApps } from './helpers/project-selectors';
|
||||
import { existsSync } from 'fs';
|
||||
import { resolve } from 'path';
|
||||
import { spawn } from 'child_process';
|
||||
import { yellow, green, red } from 'chalk';
|
||||
import { ListParam, ComplexListChoice } from 'clireader/list-param';
|
||||
import { CheckboxParam } from '../clireader/checkbox-param';
|
||||
import { CliReader, CliParam } from 'clireader/cli-reader';
|
||||
import * as logger from '../../tools/helpers/logger';
|
||||
import * as ora from 'ora';
|
||||
|
||||
require('dotenv').config({ path: process.env.ENV_FILE });
|
||||
const API_HOST = process.env.API_HOST;
|
||||
const OAUTH_HOST = process.env.OAUTH_HOST;
|
||||
const IDENTITY_HOST = process.env.IDENTITY_HOST;
|
||||
const NOTIFICATION_LAST = process.env.NOTIFICATION_LAST;
|
||||
|
||||
interface LiteServeRunnerInputs {
|
||||
app: string;
|
||||
configRewrite: string[];
|
||||
}
|
||||
|
||||
export default class LiteServeRunner {
|
||||
private cliReader: CliReader;
|
||||
private inputParams: CliParam[];
|
||||
|
||||
constructor(private cliArgs: any[]) {
|
||||
this.cliReader = new CliReader('lite-serve', '[options]', 'Start lite-serve for previously built app', '0.0.1');
|
||||
|
||||
this.inputParams = [
|
||||
new ListParam({
|
||||
name: 'app',
|
||||
alias: 'a',
|
||||
title: `Which ${yellow('prebuilt')} application to serve with lite-serve?`,
|
||||
required: true,
|
||||
choices: this.getAppList.bind(this),
|
||||
pageSize: 30
|
||||
}),
|
||||
new CheckboxParam({
|
||||
name: 'configRewrite',
|
||||
alias: 'c',
|
||||
title: 'Rewrite app.config.json with the following environment vars?',
|
||||
required: false,
|
||||
choices: [
|
||||
...(API_HOST !== undefined ? [{ name: `API_HOST=${API_HOST}`, value: 'a', short: 'API_HOST', checked: true }] : []),
|
||||
...(OAUTH_HOST !== undefined
|
||||
? [{ name: `OAUTH_HOST=${OAUTH_HOST} ${red('+ authType=OAUTH also!!!')}`, value: 'o', short: 'OAUTH_HOST', checked: true }]
|
||||
: []),
|
||||
...(IDENTITY_HOST !== undefined
|
||||
? [{ name: `IDENTITY_HOST=${IDENTITY_HOST} ${red('+ authType=OAUTH also!!!')}`, value: 'i', short: 'IDENTITY_HOST', checked: true }]
|
||||
: []),
|
||||
...(NOTIFICATION_LAST !== undefined
|
||||
? [{ name: `NOTIFICATION_LAST=${NOTIFICATION_LAST}`, value: 'n', short: 'NOTIFICATION_LAST', checked: true }]
|
||||
: [])
|
||||
]
|
||||
})
|
||||
];
|
||||
}
|
||||
|
||||
run() {
|
||||
const readerGenerator = this.cliReader.getReader(this.inputParams, this.cliArgs);
|
||||
const program: Object = readerGenerator.next().value;
|
||||
|
||||
const builtApps = this.getAppList().filter((app) => !app.disabled);
|
||||
if (!builtApps.length) {
|
||||
logger.error('No prebuilt app found.');
|
||||
process.exit(0);
|
||||
}
|
||||
|
||||
const inputInquirer = <Promise<Object>>readerGenerator.next().value;
|
||||
|
||||
return inputInquirer.then(this.appConfigReplace.bind(this)).then(this.spawnLiteServer.bind(this)).catch(logger.error.bind(logger));
|
||||
}
|
||||
|
||||
private appConfigReplace(inputParams: LiteServeRunnerInputs) {
|
||||
return new Promise((resolvePromise, reject) => {
|
||||
if (!inputParams['configRewrite'] || !inputParams['configRewrite'].length) {
|
||||
logger.verbose(green('No rewrite has been made'));
|
||||
resolvePromise(inputParams);
|
||||
return;
|
||||
}
|
||||
|
||||
let appPath = getApps()
|
||||
.filter((app) => app.name === inputParams.app)
|
||||
.map((project) => this.getOutputPath(project))[0];
|
||||
appPath = resolve(appPath, 'app.config.json');
|
||||
const rewriteFlags = `-${inputParams['configRewrite'].join('')}`;
|
||||
|
||||
const spinner = ora(`Rewriting ${appPath} with flags: ${rewriteFlags}`).start();
|
||||
const replace = spawn(process.cwd() + '/scripts/app-config-replace.js', [`--config=${appPath}`, rewriteFlags]);
|
||||
|
||||
replace.stdout.on('data', (data) => logger.verbose(data.toString()));
|
||||
replace.stderr.on('data', (data) => {
|
||||
logger.error(data.toString());
|
||||
reject();
|
||||
});
|
||||
replace.on('exit', (code) => {
|
||||
spinner.succeed();
|
||||
logger.verbose(green(`Rewrite ${appPath} succeeded!`));
|
||||
resolvePromise(inputParams);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
private spawnLiteServer(inputParams: LiteServeRunnerInputs) {
|
||||
const spinner = ora(`Starting lite-serve, please wait and don't move!`).start();
|
||||
|
||||
return new Promise((resolvePromise, reject) => {
|
||||
const liteServe = spawn('npm', ['run', '--quiet', 'ng', 'run', `${inputParams.app}:lite-serve:standalone`]);
|
||||
process.on('SIGINT', () => {
|
||||
liteServe.kill('SIGINT');
|
||||
spinner.text = red('Lite-serve terminated.');
|
||||
spinner.fail();
|
||||
});
|
||||
|
||||
liteServe.stdout.on('data', (data) => {
|
||||
if (data.toString().includes(`lite-serve serving folder`)) {
|
||||
spinner.text = green('Lite-serve is running.');
|
||||
}
|
||||
logger.verbose(data.toString());
|
||||
});
|
||||
liteServe.stderr.on('data', (data) => {
|
||||
logger.error(data.toString());
|
||||
reject();
|
||||
});
|
||||
liteServe.on('exit', (code) => {
|
||||
logger.verbose('Lite-serve process exited with code ' + code.toString());
|
||||
resolvePromise();
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
private getOutputPath(project) {
|
||||
return resolve(process.cwd(), project.architect.build.options.outputPath);
|
||||
}
|
||||
|
||||
private getAppList(): ComplexListChoice[] {
|
||||
return getApps().map((project) => {
|
||||
if (existsSync(this.getOutputPath(project))) {
|
||||
return {
|
||||
name: project.name,
|
||||
disabled: false
|
||||
};
|
||||
}
|
||||
return {
|
||||
name: `${project.name} (not built)`,
|
||||
disabled: true
|
||||
};
|
||||
});
|
||||
}
|
||||
}
|
20
scripts/run
Executable file
20
scripts/run
Executable file
@ -0,0 +1,20 @@
|
||||
#!/usr/bin/env node
|
||||
|
||||
const path = require('path');
|
||||
const tsConfigPath = path.resolve(__dirname, 'tsconfig.json');
|
||||
const tsConfig = require(tsConfigPath);
|
||||
|
||||
require('ts-node').register({ project: tsConfigPath });
|
||||
require('tsconfig-paths').register({
|
||||
project: tsConfigPath,
|
||||
baseUrl: path.resolve(__dirname),
|
||||
paths: tsConfig.compilerOptions.paths
|
||||
});
|
||||
|
||||
const handlerParam = process.argv[2];
|
||||
const RunnerClass = require(`./npm/${handlerParam}.ts`).default;
|
||||
|
||||
const runnerArgs = [ ...process.argv ];
|
||||
runnerArgs.splice(2, 1);
|
||||
const runner = new RunnerClass(runnerArgs);
|
||||
runner.run();
|
32
scripts/tsconfig.json
Normal file
32
scripts/tsconfig.json
Normal file
@ -0,0 +1,32 @@
|
||||
{
|
||||
"compilerOptions": {
|
||||
"outDir": "./dist/scripts",
|
||||
"module": "commonjs",
|
||||
"target": "es5",
|
||||
"baseUrl": ".",
|
||||
"sourceMap": false,
|
||||
"declaration": false,
|
||||
"moduleResolution": "node",
|
||||
"resolveJsonModule": true,
|
||||
"emitDecoratorMetadata": true,
|
||||
"experimentalDecorators": true,
|
||||
"skipLibCheck": true,
|
||||
"noUnusedLocals": false,
|
||||
"noUnusedParameters": false,
|
||||
"noImplicitReturns": true,
|
||||
"allowSyntheticDefaultImports": true,
|
||||
"typeRoots": [
|
||||
"node_modules/@types",
|
||||
"node_modules/commander/typings/index.d.ts"
|
||||
],
|
||||
"lib": ["es2018", "dom"],
|
||||
"types": ["node", "jasmine", "jest"],
|
||||
"paths": {
|
||||
"angular.json": ["../angular.json"]
|
||||
}
|
||||
},
|
||||
"exclude": ["node_modules"],
|
||||
"angularCompilerOptions": {
|
||||
"preserveWhitespaces": false
|
||||
}
|
||||
}
|
26
tools/helpers/logger.js
Normal file
26
tools/helpers/logger.js
Normal file
@ -0,0 +1,26 @@
|
||||
const { createLogger, transports, format } = require('winston');
|
||||
const { yellow, green, red, blue, magenta, cyan } = require('chalk');
|
||||
|
||||
const levels = {
|
||||
error: red,
|
||||
warn: yellow,
|
||||
info: cyan,
|
||||
verbose: magenta,
|
||||
debug: green,
|
||||
silly: blue
|
||||
};
|
||||
|
||||
const myFormat = format.printf(({ level, message, label, timestamp }) => {
|
||||
return `[${levels[level](timestamp)}]: ${message}`;
|
||||
});
|
||||
|
||||
module.exports = createLogger({
|
||||
level: 'silly',
|
||||
format: format.combine(
|
||||
// format.splat(),
|
||||
format.timestamp(),
|
||||
format.prettyPrint(),
|
||||
myFormat
|
||||
),
|
||||
transports: [new transports.Console()]
|
||||
});
|
Loading…
x
Reference in New Issue
Block a user