Compare commits
	
		
			35 Commits
		
	
	
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 52cc249098 | |||
| 2e189b0660 | |||
| f876c7414b | |||
| 08b7585cfc | |||
| 76311fab72 | |||
| 1b73df64f5 | |||
| 701cee573b | |||
| 3dd086f711 | |||
| 67ff5d09d4 | |||
| 5cb8a79b6a | |||
| 2dcbca2362 | |||
| bd63194f4b | |||
| 2763fdef5f | |||
| bbedde01b9 | |||
| f26606f757 | |||
| 99b03aa796 | |||
| f30dd3da65 | |||
| d4decddb4b | |||
| 5c2880da1a | |||
| bfffc5b130 | |||
| 8900a13c6b | |||
| d42acf737f | |||
| 77e3b2912d | |||
| 103e470eb4 | |||
| 74c1324e55 | |||
| a1876963a8 | |||
| 5d88e25c99 | |||
| b3c47546e2 | |||
| 6316e81958 | |||
| ff10afbee4 | |||
| 9dbfa77084 | |||
| 46dbd61d89 | |||
| 713df1867a | |||
| 23886c1ed3 | |||
| 0c46b627be | 
| @@ -37,18 +37,6 @@ snyk: | |||||||
| # ==================== | # ==================== | ||||||
| # test stage | # test stage | ||||||
| # ==================== | # ==================== | ||||||
| testLEGACY: |  | ||||||
|   stage: test |  | ||||||
|   script: |  | ||||||
|   - npmci npm prepare |  | ||||||
|   - npmci node install legacy |  | ||||||
|   - npmci npm install |  | ||||||
|   - npmci npm test |  | ||||||
|   coverage: /\d+.?\d+?\%\s*coverage/ |  | ||||||
|   tags: |  | ||||||
|   - docker |  | ||||||
|   - notpriv |  | ||||||
|   allow_failure: true |  | ||||||
|  |  | ||||||
| testLTS: | testLTS: | ||||||
|   stage: test |   stage: test | ||||||
|   | |||||||
							
								
								
									
										28
									
								
								.snyk
									
									
									
									
									
								
							
							
						
						
									
										28
									
								
								.snyk
									
									
									
									
									
								
							| @@ -1,28 +1,4 @@ | |||||||
| # Snyk (https://snyk.io) policy file, patches or ignores known vulnerabilities. | # Snyk (https://snyk.io) policy file, patches or ignores known vulnerabilities. | ||||||
| version: v1.12.0 | version: v1.13.1 | ||||||
| # ignores vulnerabilities until expiry date; change duration by modifying expiry date | ignore: {} | ||||||
| ignore: |  | ||||||
|   'npm:shelljs:20140723': |  | ||||||
|     - shelljs: |  | ||||||
|         reason: None given |  | ||||||
|         expires: '2018-06-02T22:48:10.660Z' |  | ||||||
|     - smartshell > shelljs: |  | ||||||
|         reason: None given |  | ||||||
|         expires: '2018-06-02T22:48:10.660Z' |  | ||||||
|     - smartssh > shelljs: |  | ||||||
|         reason: None given |  | ||||||
|         expires: '2018-06-02T22:48:10.660Z' |  | ||||||
|     - smartshell > shelljs: |  | ||||||
|         reason: None given |  | ||||||
|         expires: '2018-08-14T21:49:25.248Z' |  | ||||||
|     - smartssh > shelljs: |  | ||||||
|         reason: None given |  | ||||||
|         expires: '2018-08-14T21:49:25.248Z' |  | ||||||
|     - shelljs: |  | ||||||
|         reason: None given |  | ||||||
|         expires: '2018-08-14T21:49:25.248Z' |  | ||||||
|   'npm:stringstream:20180511': |  | ||||||
|     - request > stringstream: |  | ||||||
|         reason: None given |  | ||||||
|         expires: '2018-08-14T21:49:25.248Z' |  | ||||||
| patch: {} | patch: {} | ||||||
|   | |||||||
| @@ -5,10 +5,9 @@ | |||||||
|         "cli": true |         "cli": true | ||||||
|     }, |     }, | ||||||
|     "npmci": { |     "npmci": { | ||||||
|         "npmGlobalTools": [ |         "npmGlobalTools": [], | ||||||
|             "@gitzone/npmts" |         "npmAccessLevel": "public", | ||||||
|         ], |         "npmRegistryUrl": "registry.npmjs.org" | ||||||
|         "npmAccessLevel": "public" |  | ||||||
|     }, |     }, | ||||||
|     "npmdocker":{ |     "npmdocker":{ | ||||||
|         "baseImage":"hosttoday/ht-docker-node:npmci", |         "baseImage":"hosttoday/ht-docker-node:npmci", | ||||||
|   | |||||||
							
								
								
									
										135
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										135
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							| @@ -1,6 +1,6 @@ | |||||||
| { | { | ||||||
|   "name": "@shipzone/npmci", |   "name": "@shipzone/npmci", | ||||||
|   "version": "3.1.0", |   "version": "3.1.18", | ||||||
|   "lockfileVersion": 1, |   "lockfileVersion": 1, | ||||||
|   "requires": true, |   "requires": true, | ||||||
|   "dependencies": { |   "dependencies": { | ||||||
| @@ -102,7 +102,7 @@ | |||||||
|     }, |     }, | ||||||
|     "@pushrocks/projectinfo": { |     "@pushrocks/projectinfo": { | ||||||
|       "version": "4.0.2", |       "version": "4.0.2", | ||||||
|       "resolved": "https://registry.npmjs.org/@pushrocks/projectinfo/-/projectinfo-4.0.2.tgz", |       "resolved": "https://verdaccio.lossless.one/@pushrocks%2fprojectinfo/-/projectinfo-4.0.2.tgz", | ||||||
|       "integrity": "sha512-u5tSlrJTdDb5r3qmPub5WkDWlW561WfjqylZMkswP4yNZSR2krhew4ra4Y2/6q2QUnMBXRmo1lj4n7ggXoDNWQ==", |       "integrity": "sha512-u5tSlrJTdDb5r3qmPub5WkDWlW561WfjqylZMkswP4yNZSR2krhew4ra4Y2/6q2QUnMBXRmo1lj4n7ggXoDNWQ==", | ||||||
|       "requires": { |       "requires": { | ||||||
|         "@pushrocks/smartfile": "^6.0.8", |         "@pushrocks/smartfile": "^6.0.8", | ||||||
| @@ -252,9 +252,9 @@ | |||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "@pushrocks/smartshell": { |     "@pushrocks/smartshell": { | ||||||
|       "version": "2.0.8", |       "version": "2.0.11", | ||||||
|       "resolved": "https://registry.npmjs.org/@pushrocks/smartshell/-/smartshell-2.0.8.tgz", |       "resolved": "https://registry.npmjs.org/@pushrocks/smartshell/-/smartshell-2.0.11.tgz", | ||||||
|       "integrity": "sha512-OeGrJez0vSHe/E0auHNUqf7r0B3yS+pkVe6BuxdJemJx5LBRtcHuZnJCxU5pSLL8igzlTfR+jVpjKJXUMzCsrA==", |       "integrity": "sha512-NvDrafAgSPK12/HAekyL+BF5lROxhcfBNJIELI/bU7Jto/32QOOn6DthzMEPbqyPzsH7mWMjv10Djy3TWdqZag==", | ||||||
|       "requires": { |       "requires": { | ||||||
|         "@pushrocks/smartpromise": "^2.0.5", |         "@pushrocks/smartpromise": "^2.0.5", | ||||||
|         "@types/which": "^1.3.1", |         "@types/which": "^1.3.1", | ||||||
| @@ -290,42 +290,15 @@ | |||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "@pushrocks/smartstring": { |     "@pushrocks/smartstring": { | ||||||
|       "version": "3.0.4", |       "version": "3.0.5", | ||||||
|       "resolved": "https://registry.npmjs.org/@pushrocks/smartstring/-/smartstring-3.0.4.tgz", |       "resolved": "https://registry.npmjs.org/@pushrocks/smartstring/-/smartstring-3.0.5.tgz", | ||||||
|       "integrity": "sha512-6LwG9dRAVY6qAeDDWj7P1ehTh9KYdeUG/SNKdx+jIvzOfyldy0fGsdm4o4glfeZvijGSxFEcmXkL3ic7rR19+Q==", |       "integrity": "sha512-Bws2s6+Pc0HIXA35QH6cl6LJywhZ1U5icjyYMx+1kH8nURG+njzkacfarr9NWqyVYYOVu7SgXLzp9sR0eH7k9g==", | ||||||
|       "requires": { |       "requires": { | ||||||
|         "crypto-random-string": "^1.0.0", |         "crypto-random-string": "^1.0.0", | ||||||
|         "js-base64": "^2.4.8", |         "js-base64": "^2.4.9", | ||||||
|         "normalize-newline": "^3.0.0", |         "normalize-newline": "^3.0.0", | ||||||
|         "randomatic": "^3.1.0", |         "randomatic": "^3.1.1", | ||||||
|         "strip-indent": "^2.0.0" |         "strip-indent": "^2.0.0" | ||||||
|       }, |  | ||||||
|       "dependencies": { |  | ||||||
|         "is-number": { |  | ||||||
|           "version": "4.0.0", |  | ||||||
|           "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", |  | ||||||
|           "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==" |  | ||||||
|         }, |  | ||||||
|         "js-base64": { |  | ||||||
|           "version": "2.4.9", |  | ||||||
|           "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.4.9.tgz", |  | ||||||
|           "integrity": "sha512-xcinL3AuDJk7VSzsHgb9DvvIXayBbadtMZ4HFPx8rUszbW1MuNMlwYVC4zzCZ6e1sqZpnNS5ZFYOhXqA39T7LQ==" |  | ||||||
|         }, |  | ||||||
|         "kind-of": { |  | ||||||
|           "version": "6.0.2", |  | ||||||
|           "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", |  | ||||||
|           "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" |  | ||||||
|         }, |  | ||||||
|         "randomatic": { |  | ||||||
|           "version": "3.1.0", |  | ||||||
|           "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.1.0.tgz", |  | ||||||
|           "integrity": "sha512-KnGPVE0lo2WoXxIZ7cPR8YBpiol4gsSuOwDSg410oHh80ZMp5EiypNqL2K4Z77vJn6lB5rap7IkAmcUlalcnBQ==", |  | ||||||
|           "requires": { |  | ||||||
|             "is-number": "^4.0.0", |  | ||||||
|             "kind-of": "^6.0.0", |  | ||||||
|             "math-random": "^1.0.1" |  | ||||||
|           } |  | ||||||
|         } |  | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "@pushrocks/smarttime": { |     "@pushrocks/smarttime": { | ||||||
| @@ -718,20 +691,6 @@ | |||||||
|       "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.0.0.tgz", |       "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.0.0.tgz", | ||||||
|       "integrity": "sha512-faqwZqnWxbxn+F1d399ygeamQNy3lPp/H9H6rNrqYh4FSVCtcY+3cub1MxA8o9mDd55mM8Aghuu/kuyYA6VTsA==" |       "integrity": "sha512-faqwZqnWxbxn+F1d399ygeamQNy3lPp/H9H6rNrqYh4FSVCtcY+3cub1MxA8o9mDd55mM8Aghuu/kuyYA6VTsA==" | ||||||
|     }, |     }, | ||||||
|     "cflare": { |  | ||||||
|       "version": "1.0.5", |  | ||||||
|       "resolved": "https://registry.npmjs.org/cflare/-/cflare-1.0.5.tgz", |  | ||||||
|       "integrity": "sha1-0B/XhZ4UEvRcsp8CoiJ/8EcasJQ=", |  | ||||||
|       "requires": { |  | ||||||
|         "beautylog": "^6.1.10", |  | ||||||
|         "smartdelay": "^1.0.3", |  | ||||||
|         "smartq": "^1.1.1", |  | ||||||
|         "smartrequest": "^1.0.6", |  | ||||||
|         "smartstring": "^2.0.24", |  | ||||||
|         "tsclass": "^1.0.12", |  | ||||||
|         "typings-global": "^1.0.17" |  | ||||||
|       } |  | ||||||
|     }, |  | ||||||
|     "chai": { |     "chai": { | ||||||
|       "version": "4.1.2", |       "version": "4.1.2", | ||||||
|       "resolved": "https://registry.npmjs.org/chai/-/chai-4.1.2.tgz", |       "resolved": "https://registry.npmjs.org/chai/-/chai-4.1.2.tgz", | ||||||
| @@ -1243,11 +1202,6 @@ | |||||||
|       "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz", |       "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz", | ||||||
|       "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==" |       "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==" | ||||||
|     }, |     }, | ||||||
|     "is-buffer": { |  | ||||||
|       "version": "1.1.6", |  | ||||||
|       "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", |  | ||||||
|       "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" |  | ||||||
|     }, |  | ||||||
|     "is-callable": { |     "is-callable": { | ||||||
|       "version": "1.1.3", |       "version": "1.1.3", | ||||||
|       "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.3.tgz", |       "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.3.tgz", | ||||||
| @@ -1264,22 +1218,9 @@ | |||||||
|       "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" |       "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=" | ||||||
|     }, |     }, | ||||||
|     "is-number": { |     "is-number": { | ||||||
|       "version": "3.0.0", |       "version": "4.0.0", | ||||||
|       "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", |       "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", | ||||||
|       "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", |       "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==" | ||||||
|       "requires": { |  | ||||||
|         "kind-of": "^3.0.2" |  | ||||||
|       }, |  | ||||||
|       "dependencies": { |  | ||||||
|         "kind-of": { |  | ||||||
|           "version": "3.2.2", |  | ||||||
|           "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", |  | ||||||
|           "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", |  | ||||||
|           "requires": { |  | ||||||
|             "is-buffer": "^1.1.5" |  | ||||||
|           } |  | ||||||
|         } |  | ||||||
|       } |  | ||||||
|     }, |     }, | ||||||
|     "is-promise": { |     "is-promise": { | ||||||
|       "version": "2.1.0", |       "version": "2.1.0", | ||||||
| @@ -1320,9 +1261,9 @@ | |||||||
|       "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" |       "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" | ||||||
|     }, |     }, | ||||||
|     "js-base64": { |     "js-base64": { | ||||||
|       "version": "2.4.5", |       "version": "2.4.9", | ||||||
|       "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.4.5.tgz", |       "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.4.9.tgz", | ||||||
|       "integrity": "sha512-aUnNwqMOXw3yvErjMPSQu6qIIzUmT1e5KcU1OZxRDU1g/am6mzBvcrmLAYwzmB59BHPrh5/tKaiF4OPhqRWESQ==" |       "integrity": "sha512-xcinL3AuDJk7VSzsHgb9DvvIXayBbadtMZ4HFPx8rUszbW1MuNMlwYVC4zzCZ6e1sqZpnNS5ZFYOhXqA39T7LQ==" | ||||||
|     }, |     }, | ||||||
|     "js-tokens": { |     "js-tokens": { | ||||||
|       "version": "3.0.2", |       "version": "3.0.2", | ||||||
| @@ -1348,12 +1289,9 @@ | |||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "kind-of": { |     "kind-of": { | ||||||
|       "version": "4.0.0", |       "version": "6.0.2", | ||||||
|       "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", |       "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", | ||||||
|       "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", |       "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" | ||||||
|       "requires": { |  | ||||||
|         "is-buffer": "^1.1.5" |  | ||||||
|       } |  | ||||||
|     }, |     }, | ||||||
|     "lcid": { |     "lcid": { | ||||||
|       "version": "2.0.0", |       "version": "2.0.0", | ||||||
| @@ -1745,12 +1683,13 @@ | |||||||
|       "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=" |       "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=" | ||||||
|     }, |     }, | ||||||
|     "randomatic": { |     "randomatic": { | ||||||
|       "version": "1.1.7", |       "version": "3.1.1", | ||||||
|       "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.7.tgz", |       "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.1.1.tgz", | ||||||
|       "integrity": "sha512-D5JUjPyJbaJDkuAazpVnSfVkLlpeO3wDlPROTMLGKG1zMFNFRgrciKo1ltz/AzNTkqE0HzDx655QOL51N06how==", |       "integrity": "sha512-TuDE5KxZ0J461RVjrJZCJc+J+zCkTb1MbH9AQUq68sMhOMcy9jLcb3BrZKgp9q9Ncltdg4QVqWrH02W2EFFVYw==", | ||||||
|       "requires": { |       "requires": { | ||||||
|         "is-number": "^3.0.0", |         "is-number": "^4.0.0", | ||||||
|         "kind-of": "^4.0.0" |         "kind-of": "^6.0.0", | ||||||
|  |         "math-random": "^1.0.1" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "readable-stream": { |     "readable-stream": { | ||||||
| @@ -1954,19 +1893,6 @@ | |||||||
|         "socket.io-client": "^2.0.4" |         "socket.io-client": "^2.0.4" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "smartstring": { |  | ||||||
|       "version": "2.0.28", |  | ||||||
|       "resolved": "https://registry.npmjs.org/smartstring/-/smartstring-2.0.28.tgz", |  | ||||||
|       "integrity": "sha512-pneklqLF1w3k043fyM3eMrJ1lXRnE4b/W6xlQrpkf2fLb/w1+NbnfJopJVfWJxtft8bVPHhYRk6fa1JKH4qTVw==", |  | ||||||
|       "requires": { |  | ||||||
|         "crypto-random-string": "^1.0.0", |  | ||||||
|         "js-base64": "^2.3.2", |  | ||||||
|         "normalize-newline": "^3.0.0", |  | ||||||
|         "randomatic": "^1.1.7", |  | ||||||
|         "strip-indent": "^2.0.0", |  | ||||||
|         "typings-global": "^1.0.20" |  | ||||||
|       } |  | ||||||
|     }, |  | ||||||
|     "socket.io": { |     "socket.io": { | ||||||
|       "version": "2.1.1", |       "version": "2.1.1", | ||||||
|       "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-2.1.1.tgz", |       "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-2.1.1.tgz", | ||||||
| @@ -2147,11 +2073,6 @@ | |||||||
|         "yn": "^2.0.0" |         "yn": "^2.0.0" | ||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "tsclass": { |  | ||||||
|       "version": "1.0.20", |  | ||||||
|       "resolved": "https://registry.npmjs.org/tsclass/-/tsclass-1.0.20.tgz", |  | ||||||
|       "integrity": "sha512-oreiwoX8YjXuSYy2cmsVS8/XC8YEb1ms7w9S9P+84sj+ZB6t/MEO8mJ7DaMZGH14zro8jcMSKVT7U9eTbknNLg==" |  | ||||||
|     }, |  | ||||||
|     "tslib": { |     "tslib": { | ||||||
|       "version": "1.9.3", |       "version": "1.9.3", | ||||||
|       "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz", |       "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz", | ||||||
| @@ -2178,9 +2099,9 @@ | |||||||
|       } |       } | ||||||
|     }, |     }, | ||||||
|     "tslint-config-prettier": { |     "tslint-config-prettier": { | ||||||
|       "version": "1.16.0", |       "version": "1.17.0", | ||||||
|       "resolved": "https://registry.npmjs.org/tslint-config-prettier/-/tslint-config-prettier-1.16.0.tgz", |       "resolved": "https://registry.npmjs.org/tslint-config-prettier/-/tslint-config-prettier-1.17.0.tgz", | ||||||
|       "integrity": "sha512-zu6RAcpBtqdvhT6KpBh9kRPYATjOf9BnRi718kNqVKFjEgSE4rFrPprFju1YJrkOa3RbtbWI1ZSuLd2NBX1MDw==", |       "integrity": "sha512-NKWNkThwqE4Snn4Cm6SZB7lV5RMDDFsBwz6fWUkTxOKGjMx8ycOHnjIbhn7dZd5XmssW3CwqUjlANR6EhP9YQw==", | ||||||
|       "dev": true |       "dev": true | ||||||
|     }, |     }, | ||||||
|     "tsutils": { |     "tsutils": { | ||||||
|   | |||||||
| @@ -1,6 +1,6 @@ | |||||||
| { | { | ||||||
|   "name": "@shipzone/npmci", |   "name": "@shipzone/npmci", | ||||||
|   "version": "3.1.0", |   "version": "3.1.18", | ||||||
|   "description": "node and docker in gitlab ci on steroids", |   "description": "node and docker in gitlab ci on steroids", | ||||||
|   "main": "dist/index.js", |   "main": "dist/index.js", | ||||||
|   "typings": "dist/index.d.ts", |   "typings": "dist/index.d.ts", | ||||||
| @@ -29,7 +29,7 @@ | |||||||
|     "@pushrocks/tapbundle": "^3.0.7", |     "@pushrocks/tapbundle": "^3.0.7", | ||||||
|     "@types/node": "^10.12.10", |     "@types/node": "^10.12.10", | ||||||
|     "tslint": "^5.11.0", |     "tslint": "^5.11.0", | ||||||
|     "tslint-config-prettier": "^1.16.0" |     "tslint-config-prettier": "^1.17.0" | ||||||
|   }, |   }, | ||||||
|   "dependencies": { |   "dependencies": { | ||||||
|     "@pushrocks/lik": "^3.0.2", |     "@pushrocks/lik": "^3.0.2", | ||||||
| @@ -43,13 +43,12 @@ | |||||||
|     "@pushrocks/smartparam": "^1.0.4", |     "@pushrocks/smartparam": "^1.0.4", | ||||||
|     "@pushrocks/smartpromise": "^2.0.5", |     "@pushrocks/smartpromise": "^2.0.5", | ||||||
|     "@pushrocks/smartrequest": "^1.1.14", |     "@pushrocks/smartrequest": "^1.1.14", | ||||||
|     "@pushrocks/smartshell": "^2.0.8", |     "@pushrocks/smartshell": "^2.0.11", | ||||||
|     "@pushrocks/smartssh": "^1.2.3", |     "@pushrocks/smartssh": "^1.2.3", | ||||||
|     "@pushrocks/smartstring": "^3.0.4", |     "@pushrocks/smartstring": "^3.0.5", | ||||||
|     "@types/lodash": "^4.14.118", |     "@types/lodash": "^4.14.118", | ||||||
|     "@types/shelljs": "^0.8.0", |     "@types/shelljs": "^0.8.0", | ||||||
|     "@types/through2": "^2.0.34", |     "@types/through2": "^2.0.34", | ||||||
|     "cflare": "^1.0.5", |  | ||||||
|     "lodash": "^4.17.11", |     "lodash": "^4.17.11", | ||||||
|     "smartanalytics": "^2.0.9", |     "smartanalytics": "^2.0.9", | ||||||
|     "smartsocket": "^1.1.19", |     "smartsocket": "^1.1.19", | ||||||
|   | |||||||
| @@ -42,7 +42,9 @@ export class Dockerfile { | |||||||
|   public async build() { |   public async build() { | ||||||
|     logger.log('info', 'now building Dockerfile for ' + this.cleanTag); |     logger.log('info', 'now building Dockerfile for ' + this.cleanTag); | ||||||
|     const buildArgsString = await helpers.getDockerBuildArgs(); |     const buildArgsString = await helpers.getDockerBuildArgs(); | ||||||
|     const buildCommand = `docker build -t ${this.buildTag} -f ${this.filePath} ${buildArgsString} .`; |     const buildCommand = `docker build -t ${this.buildTag} -f ${ | ||||||
|  |       this.filePath | ||||||
|  |     } ${buildArgsString} .`; | ||||||
|     await bash(buildCommand); |     await bash(buildCommand); | ||||||
|     return; |     return; | ||||||
|   } |   } | ||||||
| @@ -102,7 +104,9 @@ export class Dockerfile { | |||||||
|    * gets the id of a Dockerfile |    * gets the id of a Dockerfile | ||||||
|    */ |    */ | ||||||
|   public async getId() { |   public async getId() { | ||||||
|     const containerId = await bash('docker inspect --type=image --format="{{.Id}}" ' + this.buildTag); |     const containerId = await bash( | ||||||
|  |       'docker inspect --type=image --format="{{.Id}}" ' + this.buildTag | ||||||
|  |     ); | ||||||
|     return containerId; |     return containerId; | ||||||
|   } |   } | ||||||
| } | } | ||||||
|   | |||||||
| @@ -165,7 +165,7 @@ export let getDockerBuildArgs = async (): Promise<string> => { | |||||||
|   let buildArgsString: string = ''; |   let buildArgsString: string = ''; | ||||||
|   for (const key in NpmciConfig.configObject.dockerBuildargEnvMap) { |   for (const key in NpmciConfig.configObject.dockerBuildargEnvMap) { | ||||||
|     const targetValue = process.env[NpmciConfig.configObject.dockerBuildargEnvMap[key]]; |     const targetValue = process.env[NpmciConfig.configObject.dockerBuildargEnvMap[key]]; | ||||||
|     buildArgsString = `${buildArgsString} --build-arg ${key}=${targetValue}`; |     buildArgsString = `${buildArgsString} --build-arg ${key}="${targetValue}"`; | ||||||
|   } |   } | ||||||
|   return buildArgsString; |   return buildArgsString; | ||||||
| }; | }; | ||||||
| @@ -178,7 +178,7 @@ export let cleanTagsArrayFunction = ( | |||||||
|   trackingArrayArg: Dockerfile[] |   trackingArrayArg: Dockerfile[] | ||||||
| ): string[] => { | ): string[] => { | ||||||
|   const cleanTagsArray: string[] = []; |   const cleanTagsArray: string[] = []; | ||||||
|   dockerfileArrayArg.forEach((dockerfileArg) => { |   dockerfileArrayArg.forEach(dockerfileArg => { | ||||||
|     if (trackingArrayArg.indexOf(dockerfileArg) === -1) { |     if (trackingArrayArg.indexOf(dockerfileArg) === -1) { | ||||||
|       cleanTagsArray.push(dockerfileArg.cleanTag); |       cleanTagsArray.push(dockerfileArg.cleanTag); | ||||||
|     } |     } | ||||||
|   | |||||||
| @@ -3,6 +3,8 @@ import * as plugins from './mod.plugins'; | |||||||
| import { bash } from '../npmci.bash'; | import { bash } from '../npmci.bash'; | ||||||
| import { repo } from '../npmci.env'; | import { repo } from '../npmci.env'; | ||||||
|  |  | ||||||
|  | import { configObject } from '../npmci.config'; | ||||||
|  |  | ||||||
| /** | /** | ||||||
|  * handle cli input |  * handle cli input | ||||||
|  * @param argvArg |  * @param argvArg | ||||||
| @@ -15,10 +17,10 @@ export let handleCli = async argvArg => { | |||||||
|         await mirror(); |         await mirror(); | ||||||
|         break; |         break; | ||||||
|       default: |       default: | ||||||
|         logger.log('error', `>>npmci git ...<< action >>${action}<< not supported`); |         logger.log('error', `npmci git -> action >>${action}<< not supported!`); | ||||||
|     } |     } | ||||||
|   } else { |   } else { | ||||||
|     logger.log('info', `>>npmci git ...<< cli arguments invalid... Please read the documentation.`); |     logger.log('info', `npmci git -> cli arguments invalid! Please read the documentation.`); | ||||||
|   } |   } | ||||||
| }; | }; | ||||||
|  |  | ||||||
| @@ -26,6 +28,10 @@ export let mirror = async () => { | |||||||
|   const githubToken = process.env.NPMCI_GIT_GITHUBTOKEN; |   const githubToken = process.env.NPMCI_GIT_GITHUBTOKEN; | ||||||
|   const githubUser = process.env.NPMCI_GIT_GITHUBGROUP || repo.user; |   const githubUser = process.env.NPMCI_GIT_GITHUBGROUP || repo.user; | ||||||
|   const githubRepo = process.env.NPMCI_GIT_GITHUB || repo.repo; |   const githubRepo = process.env.NPMCI_GIT_GITHUB || repo.repo; | ||||||
|  |   if(configObject.projectInfo.npm.packageJson.private) { | ||||||
|  |     logger.log('warn', `refusing to mirror due to private property`); | ||||||
|  |     return; | ||||||
|  |   } | ||||||
|   if (githubToken) { |   if (githubToken) { | ||||||
|     logger.log('info', 'found github token.'); |     logger.log('info', 'found github token.'); | ||||||
|     logger.log('info', 'attempting the mirror the repository to GitHub'); |     logger.log('info', 'attempting the mirror the repository to GitHub'); | ||||||
|   | |||||||
| @@ -36,11 +36,11 @@ export let install = async versionArg => { | |||||||
|   logger.log('info', `now installing node version ${versionArg}`); |   logger.log('info', `now installing node version ${versionArg}`); | ||||||
|   let version: string; |   let version: string; | ||||||
|   if (versionArg === 'stable') { |   if (versionArg === 'stable') { | ||||||
|     version = '10'; |     version = '11'; | ||||||
|   } else if (versionArg === 'lts') { |   } else if (versionArg === 'lts') { | ||||||
|     version = '8'; |     version = '10'; | ||||||
|   } else if (versionArg === 'legacy') { |   } else if (versionArg === 'legacy') { | ||||||
|     version = '9'; |     version = '8'; | ||||||
|   } else { |   } else { | ||||||
|     version = versionArg; |     version = versionArg; | ||||||
|   } |   } | ||||||
|   | |||||||
| @@ -37,15 +37,25 @@ export let handleCli = async argvArg => { | |||||||
|  * authenticates npm with token from env var |  * authenticates npm with token from env var | ||||||
|  */ |  */ | ||||||
| const prepare = async () => { | const prepare = async () => { | ||||||
|   const npmrcPrefix: string = '//registry.npmjs.org/:_authToken='; |   const config = await configModule.getConfig(); | ||||||
|   const npmToken: string = process.env.NPMCI_TOKEN_NPM; |   let npmrcFileString: string = ''; | ||||||
|   const npmrcFileString: string = npmrcPrefix + npmToken; |   await plugins.smartparam.forEachMinimatch(process.env, 'NPMCI_TOKEN_NPM*', npmEnvArg => { | ||||||
|   if (npmToken) { |     const npmRegistryUrl = npmEnvArg.split('|')[0]; | ||||||
|     logger.log('info', 'found access token'); |     const npmToken = npmEnvArg.split('|')[1]; | ||||||
|  |     npmrcFileString += `//${npmRegistryUrl}/:_authToken="${plugins.smartstring.base64.decode(npmToken)}"\n`; | ||||||
|  |   }); | ||||||
|  |   logger.log('info', `setting default npm registry to ${config.npmRegistryUrl}`); | ||||||
|  |   npmrcFileString += `registry=https://${config.npmRegistryUrl}\n`; | ||||||
|  |  | ||||||
|  |   // final check | ||||||
|  |   if (npmrcFileString.length > 0) { | ||||||
|  |     logger.log('info', 'found one or more access tokens'); | ||||||
|   } else { |   } else { | ||||||
|     logger.log('error', 'no access token found! Exiting!'); |     logger.log('error', 'no access token found! Exiting!'); | ||||||
|     process.exit(1); |     process.exit(1); | ||||||
|   } |   } | ||||||
|  |  | ||||||
|  |   // lets save it to disk | ||||||
|   plugins.smartfile.memory.toFsSync(npmrcFileString, '/root/.npmrc'); |   plugins.smartfile.memory.toFsSync(npmrcFileString, '/root/.npmrc'); | ||||||
|   return; |   return; | ||||||
| }; | }; | ||||||
| @@ -55,6 +65,7 @@ const prepare = async () => { | |||||||
|  */ |  */ | ||||||
| const publish = async () => { | const publish = async () => { | ||||||
|   let npmAccessCliString = ``; |   let npmAccessCliString = ``; | ||||||
|  |   let npmRegistryCliString = ``; | ||||||
|   const config = await configModule.getConfig(); |   const config = await configModule.getConfig(); | ||||||
|  |  | ||||||
|   // -> configure package access level |   // -> configure package access level | ||||||
| @@ -65,6 +76,14 @@ const publish = async () => { | |||||||
|     npmAccessCliString = `--access=${config.npmAccessLevel}`; |     npmAccessCliString = `--access=${config.npmAccessLevel}`; | ||||||
|   } |   } | ||||||
|  |  | ||||||
|  |   // -> configure registry url | ||||||
|  |   if (config.npmRegistryUrl) { | ||||||
|  |     npmRegistryCliString = `--registry=https://${config.npmRegistryUrl}`; | ||||||
|  |   } else { | ||||||
|  |     logger.log('error', `no registry url specified. Can't publish!`); | ||||||
|  |     process.exit(1); | ||||||
|  |   } | ||||||
|  |  | ||||||
|   // -> preparing |   // -> preparing | ||||||
|   logger.log('info', `now preparing environment:`); |   logger.log('info', `now preparing environment:`); | ||||||
|   prepare(); |   prepare(); | ||||||
| @@ -84,7 +103,7 @@ const publish = async () => { | |||||||
|  |  | ||||||
|   // -> publish it |   // -> publish it | ||||||
|   logger.log('info', `now invoking npm to publish the package!`); |   logger.log('info', `now invoking npm to publish the package!`); | ||||||
|   await bash(`npm publish ${npmAccessCliString}`); |   await bash(`npm publish ${npmAccessCliString} ${npmRegistryCliString}`); | ||||||
|   logger.log('success', `Package was successfully published!`); |   logger.log('success', `Package was successfully published!`); | ||||||
| }; | }; | ||||||
|  |  | ||||||
|   | |||||||
| @@ -6,7 +6,7 @@ const triggerValueRegex = /^([a-zA-Z0-9\.]*)\|([a-zA-Z0-9\.]*)\|([a-zA-Z0-9\.]*) | |||||||
|  |  | ||||||
| export let trigger = async () => { | export let trigger = async () => { | ||||||
|   logger.log('info', 'now running triggers'); |   logger.log('info', 'now running triggers'); | ||||||
|   plugins.smartparam.forEachMinimatch(process.env, 'NPMCI_TRIGGER_*', evaluateTrigger); |   await plugins.smartparam.forEachMinimatch(process.env, 'NPMCI_TRIGGER_*', evaluateTrigger); | ||||||
| }; | }; | ||||||
|  |  | ||||||
| const evaluateTrigger = async triggerEnvVarArg => { | const evaluateTrigger = async triggerEnvVarArg => { | ||||||
|   | |||||||
| @@ -6,8 +6,10 @@ import { repo } from './npmci.env'; | |||||||
| import { KeyValueStore } from '@pushrocks/npmextra'; | import { KeyValueStore } from '@pushrocks/npmextra'; | ||||||
|  |  | ||||||
| export interface INpmciOptions { | export interface INpmciOptions { | ||||||
|  |   projectInfo: plugins.projectinfo.ProjectInfo; | ||||||
|   npmGlobalTools: string[]; |   npmGlobalTools: string[]; | ||||||
|   npmAccessLevel?: 'private' | 'public'; |   npmAccessLevel?: 'private' | 'public'; | ||||||
|  |   npmRegistryUrl: string; | ||||||
|   dockerRegistryRepoMap: any; |   dockerRegistryRepoMap: any; | ||||||
|   dockerBuildargEnvMap: any; |   dockerBuildargEnvMap: any; | ||||||
| } | } | ||||||
| @@ -18,8 +20,11 @@ export let kvStorage = new KeyValueStore('custom', `${repo.user}_${repo.repo}`); | |||||||
| // handle config retrival | // handle config retrival | ||||||
| const npmciNpmextra = new plugins.npmextra.Npmextra(paths.cwd); | const npmciNpmextra = new plugins.npmextra.Npmextra(paths.cwd); | ||||||
| const defaultConfig: INpmciOptions = { | const defaultConfig: INpmciOptions = { | ||||||
|  |   projectInfo: new plugins.projectinfo.ProjectInfo(paths.cwd), | ||||||
|   npmGlobalTools: [], |   npmGlobalTools: [], | ||||||
|   dockerRegistryRepoMap: {}, |   dockerRegistryRepoMap: {}, | ||||||
|  |   npmAccessLevel: 'private', | ||||||
|  |   npmRegistryUrl: 'registry.npmjs.org', | ||||||
|   dockerBuildargEnvMap: {} |   dockerBuildargEnvMap: {} | ||||||
| }; | }; | ||||||
| export let configObject = npmciNpmextra.dataFor<INpmciOptions>('npmci', defaultConfig); | export let configObject = npmciNpmextra.dataFor<INpmciOptions>('npmci', defaultConfig); | ||||||
|   | |||||||
| @@ -1,6 +1,6 @@ | |||||||
| import * as plugins from './npmci.plugins'; | import * as plugins from './npmci.plugins'; | ||||||
| import * as paths from './npmci.paths'; | import * as paths from './npmci.paths'; | ||||||
| import { GitRepo } from 'smartstring'; | import { GitRepo } from '@pushrocks/smartstring'; | ||||||
| import { Dockerfile } from './mod_docker/index'; | import { Dockerfile } from './mod_docker/index'; | ||||||
|  |  | ||||||
| /** | /** | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user