initial
This commit is contained in:
		
							
								
								
									
										6
									
								
								.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								.gitignore
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,6 @@ | ||||
| .nogit/ | ||||
| node_modules/ | ||||
| coverage/ | ||||
| public/ | ||||
| pages/ | ||||
| .yarn/ | ||||
							
								
								
									
										142
									
								
								.gitlab-ci.yml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										142
									
								
								.gitlab-ci.yml
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,142 @@ | ||||
| # gitzone standard | ||||
| image: hosttoday/ht-docker-node:npmci | ||||
|  | ||||
| cache: | ||||
|   paths: | ||||
|   - .npmci_cache/ | ||||
|   key: "$CI_BUILD_STAGE" | ||||
|  | ||||
| stages: | ||||
| - security | ||||
| - test | ||||
| - release | ||||
| - metadata | ||||
|  | ||||
| # ==================== | ||||
| # security stage | ||||
| # ==================== | ||||
| mirror: | ||||
|   stage: security | ||||
|   script: | ||||
|   - npmci git mirror | ||||
|   tags: | ||||
|   - docker | ||||
|   - notpriv | ||||
|  | ||||
| snyk: | ||||
|   stage: security | ||||
|   script: | ||||
|     - npmci command npm install -g snyk | ||||
|     - npmci command npm install --ignore-scripts | ||||
|     - npmci command snyk test | ||||
|   tags: | ||||
|   - docker | ||||
|   - notpriv | ||||
|  | ||||
| # ==================== | ||||
| # test stage | ||||
| # ==================== | ||||
| testLEGACY: | ||||
|   stage: test | ||||
|   script: | ||||
|   - npmci node install legacy | ||||
|   - npmci npm install | ||||
|   - npmci npm test | ||||
|   coverage: /\d+.?\d+?\%\s*coverage/ | ||||
|   tags: | ||||
|   - docker | ||||
|   - notpriv | ||||
|   allow_failure: true | ||||
|  | ||||
| testLTS: | ||||
|   stage: test | ||||
|   script: | ||||
|   - npmci node install lts | ||||
|   - npmci npm install | ||||
|   - npmci npm test | ||||
|   coverage: /\d+.?\d+?\%\s*coverage/ | ||||
|   tags: | ||||
|   - docker | ||||
|   - notpriv | ||||
|      | ||||
| testSTABLE: | ||||
|   stage: test | ||||
|   script: | ||||
|   - npmci node install stable | ||||
|   - npmci npm install | ||||
|   - npmci npm test | ||||
|   coverage: /\d+.?\d+?\%\s*coverage/ | ||||
|   tags: | ||||
|   - docker | ||||
|   - notpriv | ||||
|  | ||||
| release: | ||||
|   stage: release | ||||
|   script: | ||||
|   - npmci node install stable | ||||
|   - npmci npm publish | ||||
|   only: | ||||
|   - tags | ||||
|   tags: | ||||
|   - docker | ||||
|   - notpriv | ||||
|  | ||||
| # ==================== | ||||
| # metadata stage | ||||
| # ==================== | ||||
| codequality: | ||||
|   stage: metadata | ||||
|   image: docker:stable | ||||
|   allow_failure: true | ||||
|   services: | ||||
|     - docker:stable-dind | ||||
|   script: | ||||
|     - export SP_VERSION=$(echo "$CI_SERVER_VERSION" | sed 's/^\([0-9]*\)\.\([0-9]*\).*/\1-\2-stable/') | ||||
|     - docker run | ||||
|         --env SOURCE_CODE="$PWD" | ||||
|         --volume "$PWD":/code | ||||
|         --volume /var/run/docker.sock:/var/run/docker.sock | ||||
|         "registry.gitlab.com/gitlab-org/security-products/codequality:$SP_VERSION" /code | ||||
|   artifacts: | ||||
|     paths: [codeclimate.json] | ||||
|   tags: | ||||
|   - docker | ||||
|   - priv | ||||
|  | ||||
| trigger: | ||||
|   stage: metadata | ||||
|   script: | ||||
|   - npmci trigger | ||||
|   only: | ||||
|   - tags | ||||
|   tags: | ||||
|   - docker | ||||
|   - notpriv | ||||
|  | ||||
| pages: | ||||
|   image: hosttoday/ht-docker-node:npmci | ||||
|   stage: metadata | ||||
|   script: | ||||
|     - npmci command npm install -g typedoc typescript | ||||
|     - npmci npm install | ||||
|     - npmci command typedoc --module "commonjs" --target "ES2016" --out public/ ts/ | ||||
|   tags: | ||||
|     - docker | ||||
|     - notpriv | ||||
|   only: | ||||
|     - tags | ||||
|   artifacts: | ||||
|     expire_in: 1 week | ||||
|     paths: | ||||
|     - public | ||||
|   allow_failure: true | ||||
|  | ||||
| windowsCompatibility: | ||||
|   image: stefanscherer/node-windows:10-build-tools | ||||
|   stage: metadata | ||||
|   script: | ||||
|   - npm install & npm test | ||||
|   coverage: /\d+.?\d+?\%\s*coverage/ | ||||
|   tags: | ||||
|   - windows | ||||
|   allow_failure: true | ||||
							
								
								
									
										3
									
								
								cli.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								cli.js
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,3 @@ | ||||
| #!/usr/bin/env node | ||||
| process.env.CLI_CALL = 'true'; | ||||
| require('./dist/index'); | ||||
							
								
								
									
										4
									
								
								cli.ts.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								cli.ts.js
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,4 @@ | ||||
| #!/usr/bin/env node | ||||
| process.env.CLI_CALL = 'true'; | ||||
| require('@gitzone/tsrun'); | ||||
| require('./ts/index'); | ||||
							
								
								
									
										9
									
								
								npmextra.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								npmextra.json
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,9 @@ | ||||
| { | ||||
|   "npmci": { | ||||
|     "npmGlobalTools": [ | ||||
|       "@gitzone/npmts", | ||||
|       "ts-node" | ||||
|     ], | ||||
|     "npmAccessLevel": "public" | ||||
|   } | ||||
| } | ||||
							
								
								
									
										873
									
								
								package-lock.json
									
									
									
										generated
									
									
									
										Normal file
									
								
							
							
						
						
									
										873
									
								
								package-lock.json
									
									
									
										generated
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,873 @@ | ||||
| { | ||||
|   "name": "tstest", | ||||
|   "version": "1.0.1", | ||||
|   "lockfileVersion": 1, | ||||
|   "requires": true, | ||||
|   "dependencies": { | ||||
|     "@airbnb/node-memwatch": { | ||||
|       "version": "1.0.2", | ||||
|       "resolved": "https://registry.npmjs.org/@airbnb/node-memwatch/-/node-memwatch-1.0.2.tgz", | ||||
|       "integrity": "sha512-2R+MEEMSTUdKwQ6NFWkyA/UNoSjL1tMldZqJbZpgXSwNMBzlNlkUWEXKu9RqTTMkDqJRfGJ2VDs8gPlPK2APDQ==", | ||||
|       "dev": true, | ||||
|       "requires": { | ||||
|         "bindings": "^1.3.0", | ||||
|         "nan": "^2.9.2" | ||||
|       } | ||||
|     }, | ||||
|     "@gitzone/tsrun": { | ||||
|       "version": "1.1.9", | ||||
|       "resolved": "https://registry.npmjs.org/@gitzone/tsrun/-/tsrun-1.1.9.tgz", | ||||
|       "integrity": "sha512-MbCLj4hSK5nY6cMqT0OxY0BrXffmiC1Rjbzan8CmEpB8OttaAJT+zsJErJWhI+pk4s75Te73PyhHYaJAXUoJhw==", | ||||
|       "requires": { | ||||
|         "@pushrocks/smartfile": "^6.0.3", | ||||
|         "ts-node": "^7.0.0", | ||||
|         "typescript": "^2.9.1" | ||||
|       } | ||||
|     }, | ||||
|     "@pushrocks/smartdelay": { | ||||
|       "version": "2.0.1", | ||||
|       "resolved": "https://registry.npmjs.org/@pushrocks/smartdelay/-/smartdelay-2.0.1.tgz", | ||||
|       "integrity": "sha512-olWwh2/JWfhmYdgqrR5RdSsgv1GlXBnbP+XKUrdKVk3dcCzkoqDx9lRE9NfpoCg1cUM2VMxbTVgTW9PWyexEuw==", | ||||
|       "dev": true, | ||||
|       "requires": { | ||||
|         "@pushrocks/smartpromise": "^2.0.5" | ||||
|       } | ||||
|     }, | ||||
|     "@pushrocks/smartfile": { | ||||
|       "version": "6.0.3", | ||||
|       "resolved": "https://registry.npmjs.org/@pushrocks/smartfile/-/smartfile-6.0.3.tgz", | ||||
|       "integrity": "sha512-oYnLQzY/R6kVNerbWY4WwnPvdxXldrzMPWcB9j0aAdSDSqGwBEO1/ZFTQuNzN5MmPopoYmJrc06ZmI6dm4OJmw==", | ||||
|       "requires": { | ||||
|         "@pushrocks/smartpromise": "^2.0.5", | ||||
|         "@pushrocks/smartrequest": "^1.0.15", | ||||
|         "@types/fs-extra": "^5.0.3", | ||||
|         "@types/vinyl": "^2.0.2", | ||||
|         "fs-extra": "^6.0.1", | ||||
|         "glob": "^7.1.2", | ||||
|         "js-yaml": "^3.10.0", | ||||
|         "smartpath": "^3.2.8", | ||||
|         "vinyl-file": "^3.0.0" | ||||
|       } | ||||
|     }, | ||||
|     "@pushrocks/smartlog": { | ||||
|       "version": "2.0.1", | ||||
|       "resolved": "https://registry.npmjs.org/@pushrocks/smartlog/-/smartlog-2.0.1.tgz", | ||||
|       "integrity": "sha512-GtsDTGIUF3VuWPyF8FV5dF31ZCEIcaJ56ZlvJsWxjnyJq57X25mk5/K0QAaRE9IIeHg6fORcukFomb5C+AOQrg==", | ||||
|       "requires": { | ||||
|         "@pushrocks/smartlog-interfaces": "^1.0.9" | ||||
|       } | ||||
|     }, | ||||
|     "@pushrocks/smartlog-interfaces": { | ||||
|       "version": "1.0.9", | ||||
|       "resolved": "https://registry.npmjs.org/@pushrocks/smartlog-interfaces/-/smartlog-interfaces-1.0.9.tgz", | ||||
|       "integrity": "sha512-0qwpomrRN0kFjmhR9m1iHYXoISoNuXtRP0Wr+JtkYyURLwKHMaW8Xoznf8MzXJptRfqufJi3Fxh5HodpPrIZUA==" | ||||
|     }, | ||||
|     "@pushrocks/smartpromise": { | ||||
|       "version": "2.0.5", | ||||
|       "resolved": "https://registry.npmjs.org/@pushrocks/smartpromise/-/smartpromise-2.0.5.tgz", | ||||
|       "integrity": "sha512-9j/chLtIiNkR0MDw7Mpxg9slxAVvAQwUZuiaPYX5KpHdKxQaHLI1VZ8IN0vPhwlfgNO4i4vGXV0wB8BvSDj03g==" | ||||
|     }, | ||||
|     "@pushrocks/smartrequest": { | ||||
|       "version": "1.1.12", | ||||
|       "resolved": "https://registry.npmjs.org/@pushrocks/smartrequest/-/smartrequest-1.1.12.tgz", | ||||
|       "integrity": "sha512-8vDpYUADkbJFdxDcHQJyJBpc66+cvsRAJdQ6SwMirz5cIeWNlLSR/PVrdGQ94z5tSusf4mwnODk2Ai9smN6XSA==", | ||||
|       "requires": { | ||||
|         "@pushrocks/smartpromise": "^2.0.5", | ||||
|         "@types/form-data": "^2.2.1", | ||||
|         "form-data": "^2.3.2" | ||||
|       } | ||||
|     }, | ||||
|     "@pushrocks/smartshell": { | ||||
|       "version": "2.0.4", | ||||
|       "resolved": "https://registry.npmjs.org/@pushrocks/smartshell/-/smartshell-2.0.4.tgz", | ||||
|       "integrity": "sha512-yGVfp0i474nBUL44ufx5AQchFs5gAYBHiVAupDcG5H0f0KmnR2RKK1EIqKmdfmK7CIqLf8IAvv9FlhetmSrUhw==", | ||||
|       "requires": { | ||||
|         "@pushrocks/smartpromise": "^2.0.5", | ||||
|         "@types/which": "^1.3.1", | ||||
|         "which": "^1.3.1" | ||||
|       } | ||||
|     }, | ||||
|     "@pushrocks/tapbundle": { | ||||
|       "version": "3.0.1", | ||||
|       "resolved": "https://registry.npmjs.org/@pushrocks/tapbundle/-/tapbundle-3.0.1.tgz", | ||||
|       "integrity": "sha512-QWVz5EwB3sjjqHTMa22xuw78TBgVTyqKTF5H6HT9d/rvxL5Ag4ZrTuoadMPcU9hRBx9gtPsKbWq4lEwOHdCmLA==", | ||||
|       "dev": true, | ||||
|       "requires": { | ||||
|         "@pushrocks/smartdelay": "^2.0.1", | ||||
|         "@pushrocks/smartpromise": "^2.0.5", | ||||
|         "early": "^2.1.1", | ||||
|         "leakage": "^0.4.0", | ||||
|         "smartchai": "^2.0.1" | ||||
|       } | ||||
|     }, | ||||
|     "@types/chai": { | ||||
|       "version": "4.1.4", | ||||
|       "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.1.4.tgz", | ||||
|       "integrity": "sha512-h6+VEw2Vr3ORiFCyyJmcho2zALnUq9cvdB/IO8Xs9itrJVCenC7o26A6+m7D0ihTTr65eS259H5/Ghl/VjYs6g==", | ||||
|       "dev": true | ||||
|     }, | ||||
|     "@types/chai-as-promised": { | ||||
|       "version": "7.1.0", | ||||
|       "resolved": "https://registry.npmjs.org/@types/chai-as-promised/-/chai-as-promised-7.1.0.tgz", | ||||
|       "integrity": "sha512-MFiW54UOSt+f2bRw8J7LgQeIvE/9b4oGvwU7XW30S9QGAiHGnU/fmiOprsyMkdmH2rl8xSPc0/yrQw8juXU6bQ==", | ||||
|       "dev": true, | ||||
|       "requires": { | ||||
|         "@types/chai": "*" | ||||
|       } | ||||
|     }, | ||||
|     "@types/chai-string": { | ||||
|       "version": "1.4.1", | ||||
|       "resolved": "https://registry.npmjs.org/@types/chai-string/-/chai-string-1.4.1.tgz", | ||||
|       "integrity": "sha512-aRNMs6TKgjgPlCHwDfq/YNy5VtRR2hJ4AUWByddrT0TRVVD8eX4MiHW6/iHvmQHRlVuuPZcwnTUE7b4yFt7bEA==", | ||||
|       "dev": true, | ||||
|       "requires": { | ||||
|         "@types/chai": "*" | ||||
|       } | ||||
|     }, | ||||
|     "@types/form-data": { | ||||
|       "version": "2.2.1", | ||||
|       "resolved": "https://registry.npmjs.org/@types/form-data/-/form-data-2.2.1.tgz", | ||||
|       "integrity": "sha512-JAMFhOaHIciYVh8fb5/83nmuO/AHwmto+Hq7a9y8FzLDcC1KCU344XDOMEmahnrTFlHjgh4L0WJFczNIX2GxnQ==", | ||||
|       "requires": { | ||||
|         "@types/node": "*" | ||||
|       } | ||||
|     }, | ||||
|     "@types/fs-extra": { | ||||
|       "version": "5.0.4", | ||||
|       "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-5.0.4.tgz", | ||||
|       "integrity": "sha512-DsknoBvD8s+RFfSGjmERJ7ZOP1HI0UZRA3FSI+Zakhrc/Gy26YQsLI+m5V5DHxroHRJqCDLKJp7Hixn8zyaF7g==", | ||||
|       "requires": { | ||||
|         "@types/node": "*" | ||||
|       } | ||||
|     }, | ||||
|     "@types/node": { | ||||
|       "version": "10.5.5", | ||||
|       "resolved": "https://registry.npmjs.org/@types/node/-/node-10.5.5.tgz", | ||||
|       "integrity": "sha512-6Qnb1gXbp3g1JX9QVJj3A6ORzc9XCyhokxUKaoonHgNXcQhmk8adhotxfkeK8El9TnFeUuH72yI6jQ5nDJKS6w==" | ||||
|     }, | ||||
|     "@types/vinyl": { | ||||
|       "version": "2.0.2", | ||||
|       "resolved": "https://registry.npmjs.org/@types/vinyl/-/vinyl-2.0.2.tgz", | ||||
|       "integrity": "sha512-2iYpNuOl98SrLPBZfEN9Mh2JCJ2EI9HU35SfgBEb51DcmaHkhp8cKMblYeBqMQiwXMgAD3W60DbQ4i/UdLiXhw==", | ||||
|       "requires": { | ||||
|         "@types/node": "*" | ||||
|       } | ||||
|     }, | ||||
|     "@types/which": { | ||||
|       "version": "1.3.1", | ||||
|       "resolved": "https://registry.npmjs.org/@types/which/-/which-1.3.1.tgz", | ||||
|       "integrity": "sha512-ZrJDWpvg75LTGX4XwuneY9s6bF3OeZcGTpoGh3zDV9ytzcHMFsRrMIaLBRJZQMBoGyKs6unBQfVdrLZiYfb1zQ==" | ||||
|     }, | ||||
|     "ansi-256-colors": { | ||||
|       "version": "1.1.0", | ||||
|       "resolved": "https://registry.npmjs.org/ansi-256-colors/-/ansi-256-colors-1.1.0.tgz", | ||||
|       "integrity": "sha1-kQ3lDvzHwJ49gvL4er1rcAwYgYo=", | ||||
|       "dev": true | ||||
|     }, | ||||
|     "argparse": { | ||||
|       "version": "1.0.10", | ||||
|       "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", | ||||
|       "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", | ||||
|       "requires": { | ||||
|         "sprintf-js": "~1.0.2" | ||||
|       } | ||||
|     }, | ||||
|     "arrify": { | ||||
|       "version": "1.0.1", | ||||
|       "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", | ||||
|       "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=" | ||||
|     }, | ||||
|     "assertion-error": { | ||||
|       "version": "1.1.0", | ||||
|       "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", | ||||
|       "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", | ||||
|       "dev": true | ||||
|     }, | ||||
|     "asynckit": { | ||||
|       "version": "0.4.0", | ||||
|       "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", | ||||
|       "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" | ||||
|     }, | ||||
|     "balanced-match": { | ||||
|       "version": "1.0.0", | ||||
|       "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", | ||||
|       "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" | ||||
|     }, | ||||
|     "beautycolor": { | ||||
|       "version": "1.0.11", | ||||
|       "resolved": "https://registry.npmjs.org/beautycolor/-/beautycolor-1.0.11.tgz", | ||||
|       "integrity": "sha512-Uxl/39+2uqixPzsrV+0NOHf0sJlWmsKnRTV0oz8+bfwnHPA/E+SZuh3Upn3OXobv0W7LZg5BVoLj1nkMj7m5jA==", | ||||
|       "dev": true, | ||||
|       "requires": { | ||||
|         "ansi-256-colors": "^1.1.0", | ||||
|         "typings-global": "^1.0.14" | ||||
|       } | ||||
|     }, | ||||
|     "bindings": { | ||||
|       "version": "1.3.0", | ||||
|       "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.3.0.tgz", | ||||
|       "integrity": "sha512-DpLh5EzMR2kzvX1KIlVC0VkC3iZtHKTgdtZ0a3pglBZdaQFjt5S9g9xd1lE+YvXyfd6mtCeRnrUfOLYiTMlNSw==", | ||||
|       "dev": true | ||||
|     }, | ||||
|     "brace-expansion": { | ||||
|       "version": "1.1.11", | ||||
|       "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", | ||||
|       "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", | ||||
|       "requires": { | ||||
|         "balanced-match": "^1.0.0", | ||||
|         "concat-map": "0.0.1" | ||||
|       } | ||||
|     }, | ||||
|     "buffer-from": { | ||||
|       "version": "1.1.1", | ||||
|       "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", | ||||
|       "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==" | ||||
|     }, | ||||
|     "chai": { | ||||
|       "version": "4.1.2", | ||||
|       "resolved": "https://registry.npmjs.org/chai/-/chai-4.1.2.tgz", | ||||
|       "integrity": "sha1-D2RYS6ZC8PKs4oBiefTwbKI61zw=", | ||||
|       "dev": true, | ||||
|       "requires": { | ||||
|         "assertion-error": "^1.0.1", | ||||
|         "check-error": "^1.0.1", | ||||
|         "deep-eql": "^3.0.0", | ||||
|         "get-func-name": "^2.0.0", | ||||
|         "pathval": "^1.0.0", | ||||
|         "type-detect": "^4.0.0" | ||||
|       } | ||||
|     }, | ||||
|     "chai-as-promised": { | ||||
|       "version": "7.1.1", | ||||
|       "resolved": "https://registry.npmjs.org/chai-as-promised/-/chai-as-promised-7.1.1.tgz", | ||||
|       "integrity": "sha512-azL6xMoi+uxu6z4rhWQ1jbdUhOMhis2PvscD/xjLqNMkv3BPPp2JyyuTHOrf9BOosGpNQ11v6BKv/g57RXbiaA==", | ||||
|       "dev": true, | ||||
|       "requires": { | ||||
|         "check-error": "^1.0.2" | ||||
|       } | ||||
|     }, | ||||
|     "chai-string": { | ||||
|       "version": "1.4.0", | ||||
|       "resolved": "https://registry.npmjs.org/chai-string/-/chai-string-1.4.0.tgz", | ||||
|       "integrity": "sha1-NZFAwFHTak5LGl/GuRAVL0OKjUk=", | ||||
|       "dev": true | ||||
|     }, | ||||
|     "check-error": { | ||||
|       "version": "1.0.2", | ||||
|       "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", | ||||
|       "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=", | ||||
|       "dev": true | ||||
|     }, | ||||
|     "clone": { | ||||
|       "version": "2.1.2", | ||||
|       "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", | ||||
|       "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=" | ||||
|     }, | ||||
|     "clone-buffer": { | ||||
|       "version": "1.0.0", | ||||
|       "resolved": "https://registry.npmjs.org/clone-buffer/-/clone-buffer-1.0.0.tgz", | ||||
|       "integrity": "sha1-4+JbIHrE5wGvch4staFnksrD3Fg=" | ||||
|     }, | ||||
|     "clone-stats": { | ||||
|       "version": "1.0.0", | ||||
|       "resolved": "https://registry.npmjs.org/clone-stats/-/clone-stats-1.0.0.tgz", | ||||
|       "integrity": "sha1-s3gt/4u1R04Yuba/D9/ngvh3doA=" | ||||
|     }, | ||||
|     "cloneable-readable": { | ||||
|       "version": "1.1.2", | ||||
|       "resolved": "https://registry.npmjs.org/cloneable-readable/-/cloneable-readable-1.1.2.tgz", | ||||
|       "integrity": "sha512-Bq6+4t+lbM8vhTs/Bef5c5AdEMtapp/iFb6+s4/Hh9MVTt8OLKH7ZOOZSCT+Ys7hsHvqv0GuMPJ1lnQJVHvxpg==", | ||||
|       "requires": { | ||||
|         "inherits": "^2.0.1", | ||||
|         "process-nextick-args": "^2.0.0", | ||||
|         "readable-stream": "^2.3.5" | ||||
|       } | ||||
|     }, | ||||
|     "combined-stream": { | ||||
|       "version": "1.0.6", | ||||
|       "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.6.tgz", | ||||
|       "integrity": "sha1-cj599ugBrFYTETp+RFqbactjKBg=", | ||||
|       "requires": { | ||||
|         "delayed-stream": "~1.0.0" | ||||
|       } | ||||
|     }, | ||||
|     "concat-map": { | ||||
|       "version": "0.0.1", | ||||
|       "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", | ||||
|       "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" | ||||
|     }, | ||||
|     "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=" | ||||
|     }, | ||||
|     "deep-eql": { | ||||
|       "version": "3.0.1", | ||||
|       "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz", | ||||
|       "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", | ||||
|       "dev": true, | ||||
|       "requires": { | ||||
|         "type-detect": "^4.0.0" | ||||
|       } | ||||
|     }, | ||||
|     "define-properties": { | ||||
|       "version": "1.1.2", | ||||
|       "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.2.tgz", | ||||
|       "integrity": "sha1-g6c/L+pWmJj7c3GTyPhzyvbUXJQ=", | ||||
|       "dev": true, | ||||
|       "requires": { | ||||
|         "foreach": "^2.0.5", | ||||
|         "object-keys": "^1.0.8" | ||||
|       } | ||||
|     }, | ||||
|     "delayed-stream": { | ||||
|       "version": "1.0.0", | ||||
|       "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", | ||||
|       "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" | ||||
|     }, | ||||
|     "diff": { | ||||
|       "version": "3.5.0", | ||||
|       "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", | ||||
|       "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==" | ||||
|     }, | ||||
|     "early": { | ||||
|       "version": "2.1.1", | ||||
|       "resolved": "https://registry.npmjs.org/early/-/early-2.1.1.tgz", | ||||
|       "integrity": "sha1-hB4jJU6l3FTYr67ugvWrZcAO4jw=", | ||||
|       "dev": true, | ||||
|       "requires": { | ||||
|         "beautycolor": "^1.0.7", | ||||
|         "smartq": "^1.1.1", | ||||
|         "typings-global": "^1.0.16" | ||||
|       } | ||||
|     }, | ||||
|     "es-abstract": { | ||||
|       "version": "1.12.0", | ||||
|       "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.12.0.tgz", | ||||
|       "integrity": "sha512-C8Fx/0jFmV5IPoMOFPA9P9G5NtqW+4cOPit3MIuvR2t7Ag2K15EJTpxnHAYTzL+aYQJIESYeXZmDBfOBE1HcpA==", | ||||
|       "dev": true, | ||||
|       "requires": { | ||||
|         "es-to-primitive": "^1.1.1", | ||||
|         "function-bind": "^1.1.1", | ||||
|         "has": "^1.0.1", | ||||
|         "is-callable": "^1.1.3", | ||||
|         "is-regex": "^1.0.4" | ||||
|       } | ||||
|     }, | ||||
|     "es-to-primitive": { | ||||
|       "version": "1.1.1", | ||||
|       "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.1.1.tgz", | ||||
|       "integrity": "sha1-RTVSSKiJeQNLZ5Lhm7gfK3l13Q0=", | ||||
|       "dev": true, | ||||
|       "requires": { | ||||
|         "is-callable": "^1.1.1", | ||||
|         "is-date-object": "^1.0.1", | ||||
|         "is-symbol": "^1.0.1" | ||||
|       } | ||||
|     }, | ||||
|     "es6-error": { | ||||
|       "version": "4.1.1", | ||||
|       "resolved": "https://registry.npmjs.org/es6-error/-/es6-error-4.1.1.tgz", | ||||
|       "integrity": "sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==", | ||||
|       "dev": true | ||||
|     }, | ||||
|     "esprima": { | ||||
|       "version": "4.0.1", | ||||
|       "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", | ||||
|       "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==" | ||||
|     }, | ||||
|     "first-chunk-stream": { | ||||
|       "version": "2.0.0", | ||||
|       "resolved": "https://registry.npmjs.org/first-chunk-stream/-/first-chunk-stream-2.0.0.tgz", | ||||
|       "integrity": "sha1-G97NuOCDwGZLkZRVgVd6Q6nzHXA=", | ||||
|       "requires": { | ||||
|         "readable-stream": "^2.0.2" | ||||
|       } | ||||
|     }, | ||||
|     "foreach": { | ||||
|       "version": "2.0.5", | ||||
|       "resolved": "https://registry.npmjs.org/foreach/-/foreach-2.0.5.tgz", | ||||
|       "integrity": "sha1-C+4AUBiusmDQo6865ljdATbsG5k=", | ||||
|       "dev": true | ||||
|     }, | ||||
|     "form-data": { | ||||
|       "version": "2.3.2", | ||||
|       "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.2.tgz", | ||||
|       "integrity": "sha1-SXBJi+YEwgwAXU9cI67NIda0kJk=", | ||||
|       "requires": { | ||||
|         "asynckit": "^0.4.0", | ||||
|         "combined-stream": "1.0.6", | ||||
|         "mime-types": "^2.1.12" | ||||
|       } | ||||
|     }, | ||||
|     "fs-extra": { | ||||
|       "version": "6.0.1", | ||||
|       "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-6.0.1.tgz", | ||||
|       "integrity": "sha512-GnyIkKhhzXZUWFCaJzvyDLEEgDkPfb4/TPvJCJVuS8MWZgoSsErf++QpiAlDnKFcqhRlm+tIOcencCjyJE6ZCA==", | ||||
|       "requires": { | ||||
|         "graceful-fs": "^4.1.2", | ||||
|         "jsonfile": "^4.0.0", | ||||
|         "universalify": "^0.1.0" | ||||
|       } | ||||
|     }, | ||||
|     "fs.realpath": { | ||||
|       "version": "1.0.0", | ||||
|       "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", | ||||
|       "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" | ||||
|     }, | ||||
|     "function-bind": { | ||||
|       "version": "1.1.1", | ||||
|       "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", | ||||
|       "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", | ||||
|       "dev": true | ||||
|     }, | ||||
|     "get-func-name": { | ||||
|       "version": "2.0.0", | ||||
|       "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", | ||||
|       "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=", | ||||
|       "dev": true | ||||
|     }, | ||||
|     "glob": { | ||||
|       "version": "7.1.2", | ||||
|       "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", | ||||
|       "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", | ||||
|       "requires": { | ||||
|         "fs.realpath": "^1.0.0", | ||||
|         "inflight": "^1.0.4", | ||||
|         "inherits": "2", | ||||
|         "minimatch": "^3.0.4", | ||||
|         "once": "^1.3.0", | ||||
|         "path-is-absolute": "^1.0.0" | ||||
|       } | ||||
|     }, | ||||
|     "graceful-fs": { | ||||
|       "version": "4.1.11", | ||||
|       "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", | ||||
|       "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=" | ||||
|     }, | ||||
|     "has": { | ||||
|       "version": "1.0.3", | ||||
|       "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", | ||||
|       "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", | ||||
|       "dev": true, | ||||
|       "requires": { | ||||
|         "function-bind": "^1.1.1" | ||||
|       } | ||||
|     }, | ||||
|     "home": { | ||||
|       "version": "1.0.1", | ||||
|       "resolved": "https://registry.npmjs.org/home/-/home-1.0.1.tgz", | ||||
|       "integrity": "sha1-lqQjzrSbmDeP9e886uBZpVf53TU=", | ||||
|       "requires": { | ||||
|         "os-homedir": "^1.0.1" | ||||
|       } | ||||
|     }, | ||||
|     "inflight": { | ||||
|       "version": "1.0.6", | ||||
|       "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", | ||||
|       "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", | ||||
|       "requires": { | ||||
|         "once": "^1.3.0", | ||||
|         "wrappy": "1" | ||||
|       } | ||||
|     }, | ||||
|     "inherits": { | ||||
|       "version": "2.0.3", | ||||
|       "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", | ||||
|       "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=" | ||||
|     }, | ||||
|     "is-callable": { | ||||
|       "version": "1.1.4", | ||||
|       "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz", | ||||
|       "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==", | ||||
|       "dev": true | ||||
|     }, | ||||
|     "is-date-object": { | ||||
|       "version": "1.0.1", | ||||
|       "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz", | ||||
|       "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=", | ||||
|       "dev": true | ||||
|     }, | ||||
|     "is-regex": { | ||||
|       "version": "1.0.4", | ||||
|       "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.4.tgz", | ||||
|       "integrity": "sha1-VRdIm1RwkbCTDglWVM7SXul+lJE=", | ||||
|       "dev": true, | ||||
|       "requires": { | ||||
|         "has": "^1.0.1" | ||||
|       } | ||||
|     }, | ||||
|     "is-symbol": { | ||||
|       "version": "1.0.1", | ||||
|       "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.1.tgz", | ||||
|       "integrity": "sha1-PMWfAAJRlLarLjjbrmaJJWtmBXI=", | ||||
|       "dev": true | ||||
|     }, | ||||
|     "is-utf8": { | ||||
|       "version": "0.2.1", | ||||
|       "resolved": "https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz", | ||||
|       "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=" | ||||
|     }, | ||||
|     "isarray": { | ||||
|       "version": "1.0.0", | ||||
|       "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", | ||||
|       "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" | ||||
|     }, | ||||
|     "isexe": { | ||||
|       "version": "2.0.0", | ||||
|       "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", | ||||
|       "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" | ||||
|     }, | ||||
|     "js-yaml": { | ||||
|       "version": "3.12.0", | ||||
|       "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.12.0.tgz", | ||||
|       "integrity": "sha512-PIt2cnwmPfL4hKNwqeiuz4bKfnzHTBv6HyVgjahA6mPLwPDzjDWrplJBMjHUFxku/N3FlmrbyPclad+I+4mJ3A==", | ||||
|       "requires": { | ||||
|         "argparse": "^1.0.7", | ||||
|         "esprima": "^4.0.0" | ||||
|       } | ||||
|     }, | ||||
|     "jsonfile": { | ||||
|       "version": "4.0.0", | ||||
|       "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", | ||||
|       "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", | ||||
|       "requires": { | ||||
|         "graceful-fs": "^4.1.6" | ||||
|       } | ||||
|     }, | ||||
|     "leakage": { | ||||
|       "version": "0.4.0", | ||||
|       "resolved": "https://registry.npmjs.org/leakage/-/leakage-0.4.0.tgz", | ||||
|       "integrity": "sha512-x7gYK5n5dPkHDZWJ2Kh8Ag1hZNzUh+HtXn8Bv1aDdN6o6ONPCJ8sOfFq+kxcULJFp3lXaCjXb3iXOLmQRbBLwA==", | ||||
|       "dev": true, | ||||
|       "requires": { | ||||
|         "@airbnb/node-memwatch": "^1.0.2", | ||||
|         "es6-error": "^4.0.2", | ||||
|         "left-pad": "^1.1.3", | ||||
|         "minimist": "^1.2.0", | ||||
|         "pretty-bytes": "^4.0.2" | ||||
|       } | ||||
|     }, | ||||
|     "left-pad": { | ||||
|       "version": "1.3.0", | ||||
|       "resolved": "https://registry.npmjs.org/left-pad/-/left-pad-1.3.0.tgz", | ||||
|       "integrity": "sha512-XI5MPzVNApjAyhQzphX8BkmKsKUxD4LdyK24iZeQGinBN9yTQT3bFlCBy/aVx2HrNcqQGsdot8ghrjyrvMCoEA==", | ||||
|       "dev": true | ||||
|     }, | ||||
|     "make-error": { | ||||
|       "version": "1.3.4", | ||||
|       "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.4.tgz", | ||||
|       "integrity": "sha512-0Dab5btKVPhibSalc9QGXb559ED7G7iLjFXBaj9Wq8O3vorueR5K5jaE3hkG6ZQINyhA/JgG6Qk4qdFQjsYV6g==" | ||||
|     }, | ||||
|     "mime-db": { | ||||
|       "version": "1.35.0", | ||||
|       "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.35.0.tgz", | ||||
|       "integrity": "sha512-JWT/IcCTsB0Io3AhWUMjRqucrHSPsSf2xKLaRldJVULioggvkJvggZ3VXNNSRkCddE6D+BUI4HEIZIA2OjwIvg==" | ||||
|     }, | ||||
|     "mime-types": { | ||||
|       "version": "2.1.19", | ||||
|       "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.19.tgz", | ||||
|       "integrity": "sha512-P1tKYHVSZ6uFo26mtnve4HQFE3koh1UWVkp8YUC+ESBHe945xWSoXuHHiGarDqcEZ+whpCDnlNw5LON0kLo+sw==", | ||||
|       "requires": { | ||||
|         "mime-db": "~1.35.0" | ||||
|       } | ||||
|     }, | ||||
|     "minimatch": { | ||||
|       "version": "3.0.4", | ||||
|       "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", | ||||
|       "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", | ||||
|       "requires": { | ||||
|         "brace-expansion": "^1.1.7" | ||||
|       } | ||||
|     }, | ||||
|     "minimist": { | ||||
|       "version": "1.2.0", | ||||
|       "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", | ||||
|       "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=" | ||||
|     }, | ||||
|     "mkdirp": { | ||||
|       "version": "0.5.1", | ||||
|       "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", | ||||
|       "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", | ||||
|       "requires": { | ||||
|         "minimist": "0.0.8" | ||||
|       }, | ||||
|       "dependencies": { | ||||
|         "minimist": { | ||||
|           "version": "0.0.8", | ||||
|           "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", | ||||
|           "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" | ||||
|         } | ||||
|       } | ||||
|     }, | ||||
|     "nan": { | ||||
|       "version": "2.10.0", | ||||
|       "resolved": "https://registry.npmjs.org/nan/-/nan-2.10.0.tgz", | ||||
|       "integrity": "sha512-bAdJv7fBLhWC+/Bls0Oza+mvTaNQtP+1RyhhhvD95pgUJz6XM5IzgmxOkItJ9tkoCiplvAnXI1tNmmUD/eScyA==", | ||||
|       "dev": true | ||||
|     }, | ||||
|     "object-keys": { | ||||
|       "version": "1.0.12", | ||||
|       "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.12.tgz", | ||||
|       "integrity": "sha512-FTMyFUm2wBcGHnH2eXmz7tC6IwlqQZ6mVZ+6dm6vZ4IQIHjs6FdNsQBuKGPuUUUY6NfJw2PshC08Tn6LzLDOag==", | ||||
|       "dev": true | ||||
|     }, | ||||
|     "object.getownpropertydescriptors": { | ||||
|       "version": "2.0.3", | ||||
|       "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz", | ||||
|       "integrity": "sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY=", | ||||
|       "dev": true, | ||||
|       "requires": { | ||||
|         "define-properties": "^1.1.2", | ||||
|         "es-abstract": "^1.5.1" | ||||
|       } | ||||
|     }, | ||||
|     "once": { | ||||
|       "version": "1.4.0", | ||||
|       "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", | ||||
|       "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", | ||||
|       "requires": { | ||||
|         "wrappy": "1" | ||||
|       } | ||||
|     }, | ||||
|     "os-homedir": { | ||||
|       "version": "1.0.2", | ||||
|       "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", | ||||
|       "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=" | ||||
|     }, | ||||
|     "path-is-absolute": { | ||||
|       "version": "1.0.1", | ||||
|       "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", | ||||
|       "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" | ||||
|     }, | ||||
|     "pathval": { | ||||
|       "version": "1.1.0", | ||||
|       "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.0.tgz", | ||||
|       "integrity": "sha1-uULm1L3mUwBe9rcTYd74cn0GReA=", | ||||
|       "dev": true | ||||
|     }, | ||||
|     "pify": { | ||||
|       "version": "2.3.0", | ||||
|       "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", | ||||
|       "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" | ||||
|     }, | ||||
|     "pretty-bytes": { | ||||
|       "version": "4.0.2", | ||||
|       "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-4.0.2.tgz", | ||||
|       "integrity": "sha1-sr+C5zUNZcbDOqlaqlpPYyf2HNk=", | ||||
|       "dev": true | ||||
|     }, | ||||
|     "process-nextick-args": { | ||||
|       "version": "2.0.0", | ||||
|       "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", | ||||
|       "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==" | ||||
|     }, | ||||
|     "readable-stream": { | ||||
|       "version": "2.3.6", | ||||
|       "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", | ||||
|       "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", | ||||
|       "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" | ||||
|       } | ||||
|     }, | ||||
|     "remove-trailing-separator": { | ||||
|       "version": "1.1.0", | ||||
|       "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", | ||||
|       "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=" | ||||
|     }, | ||||
|     "replace-ext": { | ||||
|       "version": "1.0.0", | ||||
|       "resolved": "https://registry.npmjs.org/replace-ext/-/replace-ext-1.0.0.tgz", | ||||
|       "integrity": "sha1-3mMSg3P8v3w8z6TeWkgMRaZ5WOs=" | ||||
|     }, | ||||
|     "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==" | ||||
|     }, | ||||
|     "smartchai": { | ||||
|       "version": "2.0.1", | ||||
|       "resolved": "https://registry.npmjs.org/smartchai/-/smartchai-2.0.1.tgz", | ||||
|       "integrity": "sha512-9M+R56OhAHXScxgr2vzQqxGx0XMS0QXriNZuP7hjlbVbo2FUT+l60iEzbwPt9Ga+5u2cEEjSSoZEQVqlROaddA==", | ||||
|       "dev": true, | ||||
|       "requires": { | ||||
|         "@types/chai": "^4.1.2", | ||||
|         "@types/chai-as-promised": "^7.1.0", | ||||
|         "@types/chai-string": "^1.4.0", | ||||
|         "chai": "^4.1.2", | ||||
|         "chai-as-promised": "^7.1.1", | ||||
|         "chai-string": "^1.4.0" | ||||
|       } | ||||
|     }, | ||||
|     "smartpath": { | ||||
|       "version": "3.2.8", | ||||
|       "resolved": "https://registry.npmjs.org/smartpath/-/smartpath-3.2.8.tgz", | ||||
|       "integrity": "sha1-SDS9OouuIpW6rK26I8h6UBlS+UA=", | ||||
|       "requires": { | ||||
|         "home": "^1.0.1", | ||||
|         "typings-global": "^1.0.14" | ||||
|       } | ||||
|     }, | ||||
|     "smartq": { | ||||
|       "version": "1.1.8", | ||||
|       "resolved": "https://registry.npmjs.org/smartq/-/smartq-1.1.8.tgz", | ||||
|       "integrity": "sha512-FURlYW/C3bLeZjJcBVyw7bxCyQoCXiXbLCZcDUKznhXHaLu35c8m33/a2H8CA0rtb82lvzN8dRLnBZAcNMzNHQ==", | ||||
|       "dev": true, | ||||
|       "requires": { | ||||
|         "util.promisify": "^1.0.0" | ||||
|       } | ||||
|     }, | ||||
|     "source-map": { | ||||
|       "version": "0.6.1", | ||||
|       "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", | ||||
|       "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" | ||||
|     }, | ||||
|     "source-map-support": { | ||||
|       "version": "0.5.6", | ||||
|       "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.6.tgz", | ||||
|       "integrity": "sha512-N4KXEz7jcKqPf2b2vZF11lQIz9W5ZMuUcIOGj243lduidkf2fjkVKJS9vNxVWn3u/uxX38AcE8U9nnH9FPcq+g==", | ||||
|       "requires": { | ||||
|         "buffer-from": "^1.0.0", | ||||
|         "source-map": "^0.6.0" | ||||
|       } | ||||
|     }, | ||||
|     "sprintf-js": { | ||||
|       "version": "1.0.3", | ||||
|       "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", | ||||
|       "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" | ||||
|     }, | ||||
|     "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" | ||||
|       } | ||||
|     }, | ||||
|     "strip-bom": { | ||||
|       "version": "2.0.0", | ||||
|       "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", | ||||
|       "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", | ||||
|       "requires": { | ||||
|         "is-utf8": "^0.2.0" | ||||
|       } | ||||
|     }, | ||||
|     "strip-bom-buf": { | ||||
|       "version": "1.0.0", | ||||
|       "resolved": "https://registry.npmjs.org/strip-bom-buf/-/strip-bom-buf-1.0.0.tgz", | ||||
|       "integrity": "sha1-HLRar1dTD0yvhsf3UXnSyaUd1XI=", | ||||
|       "requires": { | ||||
|         "is-utf8": "^0.2.1" | ||||
|       } | ||||
|     }, | ||||
|     "strip-bom-stream": { | ||||
|       "version": "2.0.0", | ||||
|       "resolved": "https://registry.npmjs.org/strip-bom-stream/-/strip-bom-stream-2.0.0.tgz", | ||||
|       "integrity": "sha1-+H217yYT9paKpUWr/h7HKLaoKco=", | ||||
|       "requires": { | ||||
|         "first-chunk-stream": "^2.0.0", | ||||
|         "strip-bom": "^2.0.0" | ||||
|       } | ||||
|     }, | ||||
|     "ts-node": { | ||||
|       "version": "7.0.0", | ||||
|       "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-7.0.0.tgz", | ||||
|       "integrity": "sha512-klJsfswHP0FuOLsvBZ/zzCfUvakOSSxds78mVeK7I+qP76YWtxf16hEZsp3U+b0kIo82R5UatGFeblYMqabb2Q==", | ||||
|       "requires": { | ||||
|         "arrify": "^1.0.0", | ||||
|         "buffer-from": "^1.1.0", | ||||
|         "diff": "^3.1.0", | ||||
|         "make-error": "^1.1.1", | ||||
|         "minimist": "^1.2.0", | ||||
|         "mkdirp": "^0.5.1", | ||||
|         "source-map-support": "^0.5.6", | ||||
|         "yn": "^2.0.0" | ||||
|       } | ||||
|     }, | ||||
|     "type-detect": { | ||||
|       "version": "4.0.8", | ||||
|       "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", | ||||
|       "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", | ||||
|       "dev": true | ||||
|     }, | ||||
|     "typescript": { | ||||
|       "version": "2.9.2", | ||||
|       "resolved": "https://registry.npmjs.org/typescript/-/typescript-2.9.2.tgz", | ||||
|       "integrity": "sha512-Gr4p6nFNaoufRIY4NMdpQRNmgxVIGMs4Fcu/ujdYk3nAZqk7supzBE9idmvfZIlH/Cuj//dvi+019qEue9lV0w==" | ||||
|     }, | ||||
|     "typings-global": { | ||||
|       "version": "1.0.28", | ||||
|       "resolved": "https://registry.npmjs.org/typings-global/-/typings-global-1.0.28.tgz", | ||||
|       "integrity": "sha512-6VOwJWEY2971HOMHu/7sURzUXiD4/LiMJPsMAOqkHHAtS3MVpLFE5gzTiHilsH9KY5VE1mBQirWIgWFsDuo90A==" | ||||
|     }, | ||||
|     "universalify": { | ||||
|       "version": "0.1.2", | ||||
|       "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", | ||||
|       "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==" | ||||
|     }, | ||||
|     "util-deprecate": { | ||||
|       "version": "1.0.2", | ||||
|       "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", | ||||
|       "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" | ||||
|     }, | ||||
|     "util.promisify": { | ||||
|       "version": "1.0.0", | ||||
|       "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.0.tgz", | ||||
|       "integrity": "sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA==", | ||||
|       "dev": true, | ||||
|       "requires": { | ||||
|         "define-properties": "^1.1.2", | ||||
|         "object.getownpropertydescriptors": "^2.0.3" | ||||
|       } | ||||
|     }, | ||||
|     "vinyl": { | ||||
|       "version": "2.2.0", | ||||
|       "resolved": "https://registry.npmjs.org/vinyl/-/vinyl-2.2.0.tgz", | ||||
|       "integrity": "sha512-MBH+yP0kC/GQ5GwBqrTPTzEfiiLjta7hTtvQtbxBgTeSXsmKQRQecjibMbxIXzVT3Y9KJK+drOz1/k+vsu8Nkg==", | ||||
|       "requires": { | ||||
|         "clone": "^2.1.1", | ||||
|         "clone-buffer": "^1.0.0", | ||||
|         "clone-stats": "^1.0.0", | ||||
|         "cloneable-readable": "^1.0.0", | ||||
|         "remove-trailing-separator": "^1.0.1", | ||||
|         "replace-ext": "^1.0.0" | ||||
|       } | ||||
|     }, | ||||
|     "vinyl-file": { | ||||
|       "version": "3.0.0", | ||||
|       "resolved": "https://registry.npmjs.org/vinyl-file/-/vinyl-file-3.0.0.tgz", | ||||
|       "integrity": "sha1-sQTZ5ECf+jJfqt1SBkLQo7SIs2U=", | ||||
|       "requires": { | ||||
|         "graceful-fs": "^4.1.2", | ||||
|         "pify": "^2.3.0", | ||||
|         "strip-bom-buf": "^1.0.0", | ||||
|         "strip-bom-stream": "^2.0.0", | ||||
|         "vinyl": "^2.0.1" | ||||
|       } | ||||
|     }, | ||||
|     "which": { | ||||
|       "version": "1.3.1", | ||||
|       "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", | ||||
|       "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", | ||||
|       "requires": { | ||||
|         "isexe": "^2.0.0" | ||||
|       } | ||||
|     }, | ||||
|     "wrappy": { | ||||
|       "version": "1.0.2", | ||||
|       "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", | ||||
|       "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" | ||||
|     }, | ||||
|     "yn": { | ||||
|       "version": "2.0.0", | ||||
|       "resolved": "https://registry.npmjs.org/yn/-/yn-2.0.0.tgz", | ||||
|       "integrity": "sha1-5a2ryKz0CPY4X8dklWhMiOavaJo=" | ||||
|     } | ||||
|   } | ||||
| } | ||||
							
								
								
									
										28
									
								
								package.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								package.json
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,28 @@ | ||||
| { | ||||
|   "name": "tstest", | ||||
|   "version": "1.0.1", | ||||
|   "private": false, | ||||
|   "description": "a test utility to run tests that match test/**/*.ts", | ||||
|   "main": "dist/index.js", | ||||
|   "typings": "dist/index.d.ts", | ||||
|   "author": "Lossless GmbH", | ||||
|   "license": "MIT", | ||||
|   "scripts": { | ||||
|     "test": "(npm run prepareTest && npm run tstest && npm run cleanUp)", | ||||
|     "prepareTest": "cd test/ && git clone git@gitlab.com:sandboxzone/sandbox-npmts.git && cd sandbox-npmts && npm install", | ||||
|     "tstest": "cd test/sandbox-npmts && node ../../cli.ts.js test/", | ||||
|     "cleanUp": "cd test/ && rm -rf sandbox-npmts", | ||||
|     "format": "(gitzone format)", | ||||
|     "build": "echo \"Not needed for now\"" | ||||
|   }, | ||||
|   "devDependencies": { | ||||
|     "@pushrocks/tapbundle": "^3.0.1" | ||||
|   }, | ||||
|   "dependencies": { | ||||
|     "@gitzone/tsrun": "^1.1.9", | ||||
|     "@pushrocks/smartfile": "^6.0.3", | ||||
|     "@pushrocks/smartlog": "^2.0.1", | ||||
|     "@pushrocks/smartpromise": "^2.0.5", | ||||
|     "@pushrocks/smartshell": "^2.0.4" | ||||
|   } | ||||
| } | ||||
							
								
								
									
										6
									
								
								test/test.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								test/test.ts
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,6 @@ | ||||
| import { expect, tap } from '@pushrocks/tapbundle'; | ||||
| import * as tstest from '../ts/index'; | ||||
|  | ||||
| tap.test('prepare test', async () => {}); | ||||
|  | ||||
| tap.start(); | ||||
							
								
								
									
										9
									
								
								ts/index.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								ts/index.ts
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,9 @@ | ||||
| import { TsTest } from './tstest.classes.tstest'; | ||||
|  | ||||
| const cliRun = async () => { | ||||
|   if (process.env.CLI_CALL) { | ||||
|     const tsTestInstance = new TsTest(process.cwd(), process.argv[2]); | ||||
|     await tsTestInstance.run(); | ||||
|   } | ||||
| }; | ||||
| cliRun(); | ||||
							
								
								
									
										57
									
								
								ts/tstest.classes.testdirectory.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										57
									
								
								ts/tstest.classes.testdirectory.ts
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,57 @@ | ||||
| import * as plugins from './tstest.plugins'; | ||||
| import * as paths from './tstest.paths'; | ||||
| import { Smartfile } from '@pushrocks/smartfile'; | ||||
|  | ||||
| // tap related stuff | ||||
| import { TapCombinator } from './tstest.tap.combinator'; | ||||
| import { TapParser } from './tstest.tap.parser'; | ||||
| import { TapTestResult } from './tstest.tap.testresult'; | ||||
|  | ||||
| export class TestDirectory { | ||||
|   /** | ||||
|    * the current working directory | ||||
|    */ | ||||
|   cwd: string; | ||||
|  | ||||
|   /** | ||||
|    * the relative location of the test dir | ||||
|    */ | ||||
|   relativePath: string; | ||||
|  | ||||
|   /** | ||||
|    * the absolute path of the test dir | ||||
|    */ | ||||
|   absolutePath: string; | ||||
|  | ||||
|   /** | ||||
|    * an array of Smartfiles | ||||
|    */ | ||||
|   testfileArray: Smartfile[] = []; | ||||
|  | ||||
|   /** | ||||
|    * the constructor for TestDirectory | ||||
|    * tell it the path | ||||
|    * @param pathToTestDirectory | ||||
|    */ | ||||
|   constructor(cwdArg: string, relativePathToTestDirectory: string) { | ||||
|     this.cwd = cwdArg; | ||||
|     this.relativePath = relativePathToTestDirectory; | ||||
|   } | ||||
|  | ||||
|   private async _init() { | ||||
|     this.testfileArray = await plugins.smartfile.fs.fileTreeToObject( | ||||
|       plugins.path.join(this.cwd, this.relativePath), | ||||
|       '**/*.ts' | ||||
|     ); | ||||
|   } | ||||
|  | ||||
|   async getTestFilePathArray() { | ||||
|     await this._init(); | ||||
|     const testFilePaths: string[] = []; | ||||
|     for (const testFile of this.testfileArray) { | ||||
|       const filePath = plugins.path.join(this.relativePath, testFile.path); | ||||
|       testFilePaths.push(filePath); | ||||
|     } | ||||
|     return testFilePaths; | ||||
|   } | ||||
| } | ||||
							
								
								
									
										30
									
								
								ts/tstest.classes.tstest.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										30
									
								
								ts/tstest.classes.tstest.ts
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,30 @@ | ||||
| import * as plugins from './tstest.plugins'; | ||||
| import { TestDirectory } from './tstest.classes.testdirectory'; | ||||
| import { TapCombinator } from './tstest.tap.combinator'; | ||||
| import { TapParser } from './tstest.tap.parser'; | ||||
|  | ||||
| export class TsTest { | ||||
|   testDir: TestDirectory; | ||||
|  | ||||
|   constructor(cwdArg: string, relativePathToTestDirectory: string) { | ||||
|     this.testDir = new TestDirectory(cwdArg, relativePathToTestDirectory); | ||||
|   } | ||||
|  | ||||
|   async run() { | ||||
|     const fileNamesToRun: string[] = await this.testDir.getTestFilePathArray(); | ||||
|     console.log(`Found ${fileNamesToRun.length} test(s):`); | ||||
|     for (const fileName of fileNamesToRun) { | ||||
|       console.log(fileName); | ||||
|     } | ||||
|     const smartshellInstance = new plugins.smartshell.Smartshell({ | ||||
|       executor: 'bash', | ||||
|       sourceFilePaths: [] | ||||
|     }); | ||||
|     const tapCombinator = new TapCombinator(); // lets create the TapCombinator | ||||
|     for (const fileName of fileNamesToRun) { | ||||
|       const tapParser = new TapParser(); | ||||
|       const execResultStreaming = await smartshellInstance.execStreamingSilent(`tsrun ${fileName}`); | ||||
|       await tapParser.handleTapProcess(execResultStreaming.childProcess); | ||||
|     } | ||||
|   } | ||||
| } | ||||
							
								
								
									
										4
									
								
								ts/tstest.paths.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								ts/tstest.paths.ts
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,4 @@ | ||||
| import * as plugins from './tstest.plugins'; | ||||
|  | ||||
| export const cwd = process.cwd(); | ||||
| export const testDir = plugins.path.join(cwd, './test/'); | ||||
							
								
								
									
										7
									
								
								ts/tstest.plugins.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								ts/tstest.plugins.ts
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,7 @@ | ||||
| import * as path from 'path'; | ||||
| import * as smartfile from '@pushrocks/smartfile'; | ||||
| import * as smartlog from '@pushrocks/smartlog'; | ||||
| import * as smartpromise from '@pushrocks/smartpromise'; | ||||
| import * as smartshell from '@pushrocks/smartshell'; | ||||
|  | ||||
| export { path, smartfile, smartlog, smartpromise, smartshell }; | ||||
							
								
								
									
										11
									
								
								ts/tstest.tap.combinator.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								ts/tstest.tap.combinator.ts
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,11 @@ | ||||
| // ============ | ||||
| // combines different tap test files to an overall result | ||||
| // ============ | ||||
| import * as plugins from './tstest.plugins'; | ||||
| import { TapParser } from './tstest.tap.parser'; | ||||
|  | ||||
| export class TapCombinator { | ||||
|   addTapParser(tapParserArg: TapParser) { | ||||
|      | ||||
|   } | ||||
| } | ||||
							
								
								
									
										26
									
								
								ts/tstest.tap.parser.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										26
									
								
								ts/tstest.tap.parser.ts
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,26 @@ | ||||
| import { ChildProcess } from 'child_process'; | ||||
|  | ||||
| // ============ | ||||
| // combines different tap test files to an overall result | ||||
| // ============ | ||||
| import * as plugins from './tstest.plugins'; | ||||
| import { TapTestResult } from './tstest.tap.testresult'; | ||||
|  | ||||
| export class TapParser { | ||||
|   resultStore: TapTestResult[] = []; | ||||
|   expectedTests: number; | ||||
|  | ||||
|   processLog(logChunk: Buffer | string) { | ||||
|     if(Buffer.isBuffer(logChunk)) { | ||||
|       logChunk = logChunk.toString(); | ||||
|     } | ||||
|     const logLineArray = logChunk.split('\n'); | ||||
|     console.log(logLineArray); | ||||
|   } | ||||
|  | ||||
|   async handleTapProcess(childProcessArg: ChildProcess) { | ||||
|     const done = plugins.smartpromise.defer(); | ||||
|      | ||||
|     await done.promise; | ||||
|   } | ||||
| } | ||||
							
								
								
									
										6
									
								
								ts/tstest.tap.testresult.ts
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								ts/tstest.tap.testresult.ts
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,6 @@ | ||||
| // ============ | ||||
| // combines different tap test files to an overall result | ||||
| // ============ | ||||
| import * as plugins from './tstest.plugins'; | ||||
|  | ||||
| export class TapTestResult {} | ||||
							
								
								
									
										3
									
								
								tslint.json
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								tslint.json
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,3 @@ | ||||
| { | ||||
|     "extends": "tslint-config-standard" | ||||
| } | ||||
		Reference in New Issue
	
	Block a user