From a5bb2f4db3db19093f13f4618f7d43a9aca269b6 Mon Sep 17 00:00:00 2001 From: ssube Date: Fri, 1 Nov 2019 18:48:59 -0500 Subject: [PATCH] fix(build): adopt rollup-template makefile, CI scripts --- .gitlab-ci.yml | 53 +++++++++----- .npmignore | 10 +-- Makefile | 105 ++++++++++++++------------- README.md | 2 +- config/api-extractor.json | 43 +++++++++++ docs/api/index.md | 12 ++++ docs/api/salty-dog.main.md | 22 ++++++ docs/api/salty-dog.md | 12 ++++ package.json | 2 + run.mk | 33 +++++++++ scripts/ci-project-path.sh | 7 ++ scripts/docker-build.sh | 27 +++++++ yarn.lock | 141 +++++++++++++++++++++++++++++++++++-- 13 files changed, 391 insertions(+), 78 deletions(-) create mode 100644 config/api-extractor.json create mode 100644 docs/api/index.md create mode 100644 docs/api/salty-dog.main.md create mode 100644 docs/api/salty-dog.md create mode 100644 run.mk create mode 100755 scripts/ci-project-path.sh create mode 100755 scripts/docker-build.sh diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 460454c..69a7189 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -50,16 +50,6 @@ stages: - mkdir ${HOME}/.docker - echo "${DOCKER_SECRET}" | base64 -d > ${HOME}/.docker/config.json - docker info - script: - - docker build -f Dockerfile.${IMAGE_ARCH} -t ${IMAGE_TAG}-${IMAGE_ARCH} . - - docker push ${IMAGE_TAG}-${IMAGE_ARCH} - - | - if [[ "${DEFAULT_ARCH:-false}" = "true" ]]; - then - docker tag ${IMAGE_TAG}-${IMAGE_ARCH} ${IMAGE_TAG} - docker push ${IMAGE_TAG} - fi - after_script: - rm -rfv ${HOME}/.docker @@ -113,39 +103,41 @@ build-image-alpine-branch: <<: [*build-docker] except: - tags + script: + - ./scripts/docker-build.sh --push --default variables: <<: [*vars-docker] - DEFAULT_ARCH: "true" IMAGE_ARCH: alpine - IMAGE_TAG: "ssube/salty-dog:${CI_COMMIT_REF_SLUG}" build-image-alpine-tag: <<: [*build-docker] only: - tags + script: + - ./scripts/docker-build.sh --push --default variables: <<: [*vars-docker] - DEFAULT_ARCH: "true" IMAGE_ARCH: alpine - IMAGE_TAG: "ssube/salty-dog:${CI_COMMIT_TAG}" build-image-stretch-branch: <<: [*build-docker] except: - tags + script: + - ./scripts/docker-build.sh --push variables: <<: [*vars-docker] IMAGE_ARCH: stretch - IMAGE_TAG: "ssube/salty-dog:${CI_COMMIT_REF_SLUG}" build-image-stretch-tag: <<: [*build-docker] only: - tags + script: + - ./scripts/docker-build.sh --push variables: <<: [*vars-docker] IMAGE_ARCH: stretch - IMAGE_TAG: "ssube/salty-dog:${CI_COMMIT_TAG}" # publish jobs publish-npm: @@ -160,6 +152,35 @@ publish-npm: - npm publish # commit status +climate-pending: + stage: status-pre + extends: + - .build-climate + + script: + - cc-test-reporter before-build + +climate-success: + stage: status-post + extends: + - .build-climate + + dependencies: + - build-node + script: + - make upload-climate + +codecov-success: + stage: status-post + extends: + - .build-codecov + + when: on_success + dependencies: + - build-node + script: + - make upload-codecov + github-pending: <<: [*build-curl] stage: status-pre diff --git a/.npmignore b/.npmignore index 4c232ac..c217dfb 100644 --- a/.npmignore +++ b/.npmignore @@ -4,17 +4,19 @@ config/ deploy/ node_modules/ out/cache/ -out/*.html -out/*.json -out/*.map out/src/ out/test/ -out/test.* scripts/ src/ test/ vendor/ +out/*.html +out/*.json +out/*.map +out/entry-* +out/test.* + .codeclimate.yml .gitlab-ci.yml .gitmodules diff --git a/Makefile b/Makefile index 2db8c0e..fdd2cdf 100755 --- a/Makefile +++ b/Makefile @@ -1,14 +1,28 @@ # Git export GIT_BRANCH ?= $(shell git rev-parse --abbrev-ref HEAD) export GIT_COMMIT ?= $(shell git rev-parse HEAD) -export GIT_REMOTES ?= $(shell git remote -v | awk '{ print $1; }' | sort | uniq) export GIT_OPTIONS ?= +export GIT_REMOTES ?= $(shell git remote -v | awk '{ print $1; }' | sort | uniq) +export GIT_TAG ?= $(shell git tag -l --points-at HEAD | head -1) + +# Paths +# resolve the makefile's path and directory, from https://stackoverflow.com/a/18137056 +export MAKE_PATH ?= $(abspath $(lastword $(MAKEFILE_LIST))) +export ROOT_PATH ?= $(dir $(MAKE_PATH)) +export CONFIG_PATH ?= $(ROOT_PATH)/config +export DOCS_PATH ?= $(ROOT_PATH)/docs +export SCRIPT_PATH ?= $(ROOT_PATH)/scripts +export SOURCE_PATH ?= $(ROOT_PATH)/src +export TARGET_PATH ?= $(ROOT_PATH)/out +export TEST_PATH ?= $(ROOT_PATH)/test # CI export CI_COMMIT_REF_SLUG ?= $(GIT_BRANCH) export CI_COMMIT_SHA ?= $(GIT_COMMIT) +export CI_COMMIT_TAG ?= $(GIT_TAG) export CI_ENVIRONMENT_SLUG ?= local export CI_JOB_ID ?= 0 +export CI_PROJECT_PATH ?= $(shell ROOT_PATH=$(ROOT_PATH) ${SCRIPT_PATH}/ci-project-path.sh) export CI_RUNNER_DESCRIPTION ?= $(shell hostname) export CI_RUNNER_ID ?= $(shell hostname) export CI_RUNNER_VERSION ?= 0.0.0 @@ -17,32 +31,28 @@ export CI_RUNNER_VERSION ?= 0.0.0 export DEBUG_BIND ?= 127.0.0.1 export DEBUG_PORT ?= 9229 -# Paths -# resolve the makefile's path and directory, from https://stackoverflow.com/a/18137056 -export MAKE_PATH ?= $(abspath $(lastword $(MAKEFILE_LIST))) -export ROOT_PATH ?= $(dir $(MAKE_PATH)) -export CONFIG_PATH ?= $(ROOT_PATH)/config -export SCRIPT_PATH ?= $(ROOT_PATH)/scripts -export SOURCE_PATH ?= $(ROOT_PATH)/src -export TARGET_PATH ?= $(ROOT_PATH)/out -export TEST_PATH ?= $(ROOT_PATH)/test +# Versions +export NODE_VERSION := $(shell node -v || echo "none") +export RUNNER_VERSION := $(CI_RUNNER_VERSION) + # Node options NODE_BIN := $(ROOT_PATH)/node_modules/.bin NODE_CMD ?= $(shell env node) NODE_DEBUG ?= --inspect-brk=$(DEBUG_BIND):$(DEBUG_PORT) --nolazy -export NODE_OPTIONS ?= --max-old-space-size=5500 +NODE_INFO := $(shell node -v) # Tool options +COVER_OPTS ?= --reporter=lcov --reporter=text-summary --reporter=html --report-dir="$(TARGET_PATH)/coverage" --exclude-after-remap DOCKER_IMAGE ?= ssube/salty:master -DOCS_OPTS ?= --exclude "test.+" --tsconfig "$(CONFIG_PATH)/tsconfig.json" --out "$(TARGET_PATH)/docs" +MOCHA_OPTS ?= --check-leaks --colors --sort --ui bdd RELEASE_OPTS ?= --commit-all -# Versions -export NODE_VERSION := $(shell node -v) -export RUNNER_VERSION := $(CI_RUNNER_VERSION) +.PHONY: all clean clean-deps clean-target configure help todo +.PHONY: build build-bundle build-docs build-image test test-check test-cover test-watch +.PHONY: yarn-install yarn-upgrade git-push git-stats license-check release release-dry upload-climate upload-codecov -all: build test +all: build test ## builds, bundles, and tests the application @echo Success! clean: ## clean up everything added by the default target @@ -78,39 +88,40 @@ todo: @grep "as any" -r src/ test/ || true @echo "" -# build targets +# Build targets build: ## builds, bundles, and tests the application -build: build-bundle +build: build-bundle build-docs build-bundle: node_modules $(NODE_BIN)/rollup --config $(CONFIG_PATH)/rollup.js -build-image: build-bundle - docker build $(ROOT_PATH) +build-docs: ## generate html docs + $(NODE_BIN)/api-extractor run --config $(CONFIG_PATH)/api-extractor.json --local -v + $(NODE_BIN)/api-documenter markdown -i $(TARGET_PATH)/api -o $(DOCS_PATH)/api -test: test-bundle test-rules test-examples +build-image: ## build a docker image + $(SCRIPT_PATH)/docker-build.sh --push -test-examples: ## run medium (feature) tests - $(SCRIPT_PATH)/test-examples.sh +test: ## run mocha unit tests +test: test-cover -test-bundle: ## run small (unit) tests -test-bundle: build-bundle - $(NODE_BIN)/nyc --report-dir="$(TARGET_PATH)/coverage" --exclude-after-remap \ - --reporter=html --reporter=lcov --reporter=text-summary \ - $(NODE_BIN)/mocha --timeout 5000 $(TARGET_PATH)/test.js +test-check: ## run mocha unit tests with coverage reports + $(NODE_BIN)/nyc $(COVER_OPTS) $(NODE_BIN)/mocha $(MOCHA_OPTS) $(TARGET_PATH)/test.js -test-rules: ## validate the rules directory -test-rules: build-bundle - find $(ROOT_PATH)/rules -maxdepth 1 -name '*.yml' | while read file; \ - do \ - echo "Validating $${file}..."; \ - node out/index.js \ - --config-path $(ROOT_PATH)/docs \ - --config-name config-stderr.yml \ - --rules $(ROOT_PATH)/rules/salty-dog.yml \ - --source $${file} \ - --tag salty-dog > /dev/null || exit 1; \ - done +test-cover: ## run mocha unit tests with coverage reports +test-cover: test-check + sed -i $(TARGET_PATH)/coverage/lcov.info \ + -e '/external ".*"$$/,/end_of_record/d' \ + -e '/ sync$$/,/end_of_record/d' \ + -e '/test sync/,/end_of_record/d' \ + -e '/node_modules/,/end_of_record/d' \ + -e '/bootstrap$$/,/end_of_record/d' \ + -e '/universalModuleDefinition/,/end_of_record/d' + sed -n '/^SF/,$$p' -i $(TARGET_PATH)/coverage/lcov.info + sed '1s;^;TN:\n;' -i $(TARGET_PATH)/coverage/lcov.info + +test-watch: + $(NODE_BIN)/nyc $(COVER_OPTS) $(NODE_BIN)/mocha $(MOCHA_OPTS) --watch $(TARGET_PATH)/test-bundle.js yarn-install: ## install dependencies from package and lock file yarn @@ -149,16 +160,4 @@ upload-climate: upload-codecov: codecov --disable=gcov --file=$(TARGET_PATH)/coverage/lcov.info --token=$(shell echo "${CODECOV_SECRET}" | base64 -d) -# run targets -run-help: ## print the help - @node out/index.js --help - -run-stream: ## validate stdin and write it to stdout, errors to stderr - @node out/index.js \ - --config-path $(ROOT_PATH)/docs \ - --config-name config-stderr.yml \ - --dest - \ - --format yaml \ - --rules $(ROOT_PATH)/rules/kubernetes.yml \ - --source - \ - --tag kubernetes +include $(shell find $(ROOT_PATH) -name '*.mk' | grep -v node_modules) diff --git a/README.md b/README.md index a84127e..3f7e836 100644 --- a/README.md +++ b/README.md @@ -101,7 +101,7 @@ After building, run with `node out/index.js` or install run as `salty-dog`: ```shell > cd salty-dog -> yarn global add file:$PWD +> yarn global add file:$(pwd) ``` `make` targets are provided for some common arguments: diff --git a/config/api-extractor.json b/config/api-extractor.json new file mode 100644 index 0000000..2bbeed9 --- /dev/null +++ b/config/api-extractor.json @@ -0,0 +1,43 @@ +{ + "$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json", + "projectFolder": "..", + "mainEntryPointFilePath": "/out/src/index.d.ts", + "apiReport": { + "enabled": true, + "reportFolder": "/out/", + "reportTempFolder": "/out/tmp/" + }, + "docModel": { + "enabled": true, + "apiJsonFilePath": "/out/api/.api.json" + }, + + "dtsRollup": { + "enabled": true, + "untrimmedFilePath": "/out/index.d.ts", + "betaTrimmedFilePath": "/out/index-beta.d.ts", + "publicTrimmedFilePath": "/out/index-public.d.ts" + }, + + "tsdocMetadata": { + }, + + "messages": { + "compilerMessageReporting": { + "default": { + "logLevel": "warning" + } + }, + + "extractorMessageReporting": { + "default": { + "logLevel": "warning" + } + }, + "tsdocMessageReporting": { + "default": { + "logLevel": "warning" + } + } + } +} diff --git a/docs/api/index.md b/docs/api/index.md new file mode 100644 index 0000000..eeaedef --- /dev/null +++ b/docs/api/index.md @@ -0,0 +1,12 @@ + + +[Home](./index.md) + +## API Reference + +## Packages + +| Package | Description | +| --- | --- | +| [salty-dog](./salty-dog.md) | | + diff --git a/docs/api/salty-dog.main.md b/docs/api/salty-dog.main.md new file mode 100644 index 0000000..68f4199 --- /dev/null +++ b/docs/api/salty-dog.main.md @@ -0,0 +1,22 @@ + + +[Home](./index.md) > [salty-dog](./salty-dog.md) > [main](./salty-dog.main.md) + +## main() function + +Signature: + +```typescript +export declare function main(argv: Array): Promise; +``` + +## Parameters + +| Parameter | Type | Description | +| --- | --- | --- | +| argv | Array<string> | | + +Returns: + +`Promise` + diff --git a/docs/api/salty-dog.md b/docs/api/salty-dog.md new file mode 100644 index 0000000..72684c9 --- /dev/null +++ b/docs/api/salty-dog.md @@ -0,0 +1,12 @@ + + +[Home](./index.md) > [salty-dog](./salty-dog.md) + +## salty-dog package + +## Functions + +| Function | Description | +| --- | --- | +| [main(argv)](./salty-dog.main.md) | | + diff --git a/package.json b/package.json index 07e8ca2..2c8be12 100644 --- a/package.json +++ b/package.json @@ -34,6 +34,8 @@ "license": "MIT", "devDependencies": { "@istanbuljs/nyc-config-typescript": "0.1.3", + "@microsoft/api-documenter": "^7.5.4", + "@microsoft/api-extractor": "^7.5.2", "@types/bunyan": "1.8.6", "@types/chai": "4.2.4", "@types/chai-as-promised": "7.1.2", diff --git a/run.mk b/run.mk new file mode 100644 index 0000000..f658ead --- /dev/null +++ b/run.mk @@ -0,0 +1,33 @@ +ci: build test-cover test-rules test-examples + +local: build test-cover run-help + +# run targets +run-help: ## print the help + @node out/index.js --help + +run-stream: ## validate stdin and write it to stdout, errors to stderr + @node out/index.js \ + --config-path $(ROOT_PATH)/docs \ + --config-name config-stderr.yml \ + --dest - \ + --format yaml \ + --rules $(ROOT_PATH)/rules/tsconfig.yml \ + --source - \ + --tag tsconfig + +test-examples: ## run medium (feature) tests + $(SCRIPT_PATH)/test-examples.sh + +test-rules: ## validate the rules directory +test-rules: build-bundle + find $(ROOT_PATH)/rules -maxdepth 1 -name '*.yml' | while read file; \ + do \ + echo "Validating $${file}..."; \ + node out/index.js \ + --config-path $(ROOT_PATH)/docs \ + --config-name config-stderr.yml \ + --rules $(ROOT_PATH)/rules/salty-dog.yml \ + --source $${file} \ + --tag salty-dog > /dev/null || exit 1; \ + done diff --git a/scripts/ci-project-path.sh b/scripts/ci-project-path.sh new file mode 100755 index 0000000..f941420 --- /dev/null +++ b/scripts/ci-project-path.sh @@ -0,0 +1,7 @@ +#! /bin/bash + +PROJECT="${ROOT_PATH}" +PARENT="$(dirname "${PROJECT}")" +PROJECT_PATH="$(basename "${PARENT}")/$(basename "${PROJECT}")" + +echo "${PROJECT_PATH}" \ No newline at end of file diff --git a/scripts/docker-build.sh b/scripts/docker-build.sh new file mode 100755 index 0000000..888b804 --- /dev/null +++ b/scripts/docker-build.sh @@ -0,0 +1,27 @@ +#! /bin/bash + +IMAGE_PUSH="${1:---skip}" +IMAGE_DEFAULT="${2:---skip}" + +IMAGE_NAME="${CI_PROJECT_PATH}" +IMAGE_TAG="$(echo "${CI_COMMIT_TAG:-${CI_COMMIT_REF_SLUG}}" | sed -r 's/[^-_a-zA-Z0-9\\.]/-/g')" + +IAMGE_SHORT="${IMAGE_NAME}:${IMAGE_TAG}" +IMAGE_FULL="${IMAGE_NAME}:${IMAGE_TAG}-${IMAGE_ARCH}" + +echo "Building image: ${IMAGE_FULL}" + +docker build -f "Dockerfile.${IMAGE_ARCH}" -t "${IMAGE_FULL}" . + +if [[ "${IMAGE_PUSH}" == "--push" ]]; +then + echo "Pushing image: ${IMAGE_FULL}" + docker push "${IMAGE_FULL}" +fi + +if [[ "${IMAGE_DEFAULT}" == "--default" ]]; +then + echo "Pushing image (default architecture): ${IMAGE_SHORT}" + docker tag "${IMAGE_FULL}" "${IMAGE_SHORT}" + docker push "${IMAGE_SHORT}" +fi diff --git a/yarn.lock b/yarn.lock index bc84719..c2eba3f 100644 --- a/yarn.lock +++ b/yarn.lock @@ -94,6 +94,67 @@ resolved "https://artifacts.apextoaster.com/repository/group-npm/@istanbuljs/nyc-config-typescript/-/nyc-config-typescript-0.1.3.tgz#944d15b3ebdb71f963a628daffaa25ade981bb86" integrity sha512-EzRFg92bRSD1W/zeuNkeGwph0nkWf+pP2l/lYW4/5hav7RjKKBN5kV1Ix7Tvi0CMu3pC4Wi/U7rNisiJMR3ORg== +"@microsoft/api-documenter@^7.5.4": + version "7.5.4" + resolved "https://artifacts.apextoaster.com/repository/group-npm/@microsoft/api-documenter/-/api-documenter-7.5.4.tgz#4aaec26c010eea71c6d8a17955c3307c2e63aae4" + integrity sha512-N/mDVpf1V4g6UTbFlrsF9LT09SFTb362gm+ZnPUA1OAGV62SqBBe8ZJO7LPFyLo1UOYGUpfK+YgS6dlGKItxkg== + dependencies: + "@microsoft/api-extractor-model" "7.5.2" + "@microsoft/node-core-library" "3.16.0" + "@microsoft/ts-command-line" "4.3.4" + "@microsoft/tsdoc" "0.12.14" + colors "~1.2.1" + js-yaml "~3.13.1" + resolve "1.8.1" + +"@microsoft/api-extractor-model@7.5.2": + version "7.5.2" + resolved "https://artifacts.apextoaster.com/repository/group-npm/@microsoft/api-extractor-model/-/api-extractor-model-7.5.2.tgz#39a3c015ca01a3435b5f161b8fce07117e6039be" + integrity sha512-wDXQ6IvrVg7tp3iqA+7f7yrSzjUPQ2kVNKsrxD5AqbGeohsJYePbmWvz6V8yxxO7ZuM9W7V5zLY6pYh4epq8Dg== + dependencies: + "@microsoft/node-core-library" "3.16.0" + "@microsoft/tsdoc" "0.12.14" + +"@microsoft/api-extractor@^7.5.2": + version "7.5.2" + resolved "https://artifacts.apextoaster.com/repository/group-npm/@microsoft/api-extractor/-/api-extractor-7.5.2.tgz#4da588e71c6342ec66b6b087a471aa773a232c81" + integrity sha512-IGMpxhiTaUsGGdrGqCwhwGbyJNMwrVe0wi3vYqFL0G93N+DO2uI89/JNGxaiGjgQ8nCem6u8hPd0NhOcGU6DcA== + dependencies: + "@microsoft/api-extractor-model" "7.5.2" + "@microsoft/node-core-library" "3.16.0" + "@microsoft/ts-command-line" "4.3.4" + "@microsoft/tsdoc" "0.12.14" + colors "~1.2.1" + lodash "~4.17.15" + resolve "1.8.1" + source-map "~0.6.1" + typescript "~3.5.3" + +"@microsoft/node-core-library@3.16.0": + version "3.16.0" + resolved "https://artifacts.apextoaster.com/repository/group-npm/@microsoft/node-core-library/-/node-core-library-3.16.0.tgz#cdd3a27b1513cb470d1098ba32d50ca22a1fb75c" + integrity sha512-zjgOAmOhWgE5eX8ofmRagcomeIhs96GizRm7m9UfAuzhEmWtQSOE33/WpZzoyw41S/bjevHi7YbkY+R70mdjFg== + dependencies: + "@types/node" "8.10.54" + colors "~1.2.1" + fs-extra "~7.0.1" + jju "~1.4.0" + z-schema "~3.18.3" + +"@microsoft/ts-command-line@4.3.4": + version "4.3.4" + resolved "https://artifacts.apextoaster.com/repository/group-npm/@microsoft/ts-command-line/-/ts-command-line-4.3.4.tgz#a52214bd86f6d65c8975f46e6b12fad68545058a" + integrity sha512-PNqh7tACiOaM3znLX2EjECbabk0PfChEn6lMzrC62+xtV2Xr0N0dj1PtvDX125cxxF4FNcWoZqCODzJI/cB0GA== + dependencies: + "@types/argparse" "1.0.33" + argparse "~1.0.9" + colors "~1.2.1" + +"@microsoft/tsdoc@0.12.14": + version "0.12.14" + resolved "https://artifacts.apextoaster.com/repository/group-npm/@microsoft/tsdoc/-/tsdoc-0.12.14.tgz#0e0810a0a174e50e22dfe8edb30599840712f22d" + integrity sha512-518yewjSga1jLdiLrcmpMFlaba5P+50b0TWNFUpC+SL9Yzf0kMi57qw+bMl+rQ08cGqH1vLx4eg9YFUbZXgZ0Q== + "@sinonjs/commons@^1", "@sinonjs/commons@^1.3.0", "@sinonjs/commons@^1.4.0": version "1.6.0" resolved "https://artifacts.apextoaster.com/repository/group-npm/@sinonjs/commons/-/commons-1.6.0.tgz#ec7670432ae9c8eb710400d112c201a362d83393" @@ -123,6 +184,11 @@ resolved "https://artifacts.apextoaster.com/repository/group-npm/@sinonjs/text-encoding/-/text-encoding-0.7.1.tgz#8da5c6530915653f3a1f38fd5f101d8c3f8079c5" integrity sha512-+iTbntw2IZPb/anVDbypzfQa+ay64MW0Zo8aJ8gZPWMMK6/OubMVb6lUPMagqjOPnmtauXnFCACVl3O7ogjeqQ== +"@types/argparse@1.0.33": + version "1.0.33" + resolved "https://artifacts.apextoaster.com/repository/group-npm/@types/argparse/-/argparse-1.0.33.tgz#2728669427cdd74a99e53c9f457ca2866a37c52d" + integrity sha512-VQgHxyPMTj3hIlq9SY1mctqx+Jj8kpQfoLvDlVSDNOyuYs8JYfkuY3OW/4+dO657yPmNhHpePRx0/Tje5ImNVQ== + "@types/bunyan@1.8.6": version "1.8.6" resolved "https://artifacts.apextoaster.com/repository/group-npm/@types/bunyan/-/bunyan-1.8.6.tgz#6527641cca30bedec5feb9ab527b7803b8000582" @@ -172,6 +238,11 @@ resolved "https://artifacts.apextoaster.com/repository/group-npm/@types/node/-/node-12.7.8.tgz#cb1bf6800238898bc2ff6ffa5702c3cadd350708" integrity sha512-FMdVn84tJJdV+xe+53sYiZS4R5yn1mAIxfj+DVoNiQjTYz1+OYmjwEZr1ev9nU0axXwda0QDbYl06QHanRVH3A== +"@types/node@8.10.54": + version "8.10.54" + resolved "https://artifacts.apextoaster.com/repository/group-npm/@types/node/-/node-8.10.54.tgz#1c88eb253ac1210f1a5876953fb70f7cc4928402" + integrity sha512-kaYyLYf6ICn6/isAyD4K1MyWWd5Q3JgH6bnMN089LUx88+s4W8GvK9Q6JMBVu5vsFFp7pMdSxdKmlBXwH/VFRg== + "@types/resolve@0.0.8": version "0.0.8" resolved "https://artifacts.apextoaster.com/repository/group-npm/@types/resolve/-/resolve-0.0.8.tgz#f26074d238e02659e323ce1a13d041eee280e194" @@ -268,7 +339,7 @@ archy@^1.0.0: resolved "https://artifacts.apextoaster.com/repository/group-npm/archy/-/archy-1.0.0.tgz#f9c8c13757cc1dd7bc379ac77b2c62a5c2868c40" integrity sha1-+cjBN1fMHde8N5rHeyxipcKGjEA= -argparse@^1.0.7: +argparse@^1.0.7, argparse@~1.0.9: version "1.0.10" resolved "https://artifacts.apextoaster.com/repository/group-npm/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== @@ -449,11 +520,21 @@ color-name@1.1.3: resolved "https://artifacts.apextoaster.com/repository/group-npm/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= +colors@~1.2.1: + version "1.2.5" + resolved "https://artifacts.apextoaster.com/repository/group-npm/colors/-/colors-1.2.5.tgz#89c7ad9a374bc030df8013241f68136ed8835afc" + integrity sha512-erNRLao/Y3Fv54qUa0LBB+//Uf3YwMUmdJinN20yMXm9zdKKqH9wt7R9IIVZ+K7ShzfpLV/Zg8+VyrBJYB4lpg== + commander@^2.12.1, commander@~2.20.0: version "2.20.1" resolved "https://artifacts.apextoaster.com/repository/group-npm/commander/-/commander-2.20.1.tgz#3863ce3ca92d0831dcf2a102f5fb4b5926afd0f9" integrity sha512-cCuLsMhJeWQ/ZpsFTbE765kvVfoeSddc4nU3up4fV+fDBcfUXnbITJ+JzhkdjzOqhURjZgujxaioam4RM9yGUg== +commander@^2.7.1: + version "2.20.3" + resolved "https://artifacts.apextoaster.com/repository/group-npm/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" + integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== + commondir@^1.0.1: version "1.0.1" resolved "https://artifacts.apextoaster.com/repository/group-npm/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" @@ -955,6 +1036,15 @@ fs-extra@8.1.0: jsonfile "^4.0.0" universalify "^0.1.0" +fs-extra@~7.0.1: + version "7.0.1" + resolved "https://artifacts.apextoaster.com/repository/group-npm/fs-extra/-/fs-extra-7.0.1.tgz#4f189c44aa123b895f722804f55ea23eadc348e9" + integrity sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw== + dependencies: + graceful-fs "^4.1.2" + jsonfile "^4.0.0" + universalify "^0.1.0" + fs.realpath@^1.0.0: version "1.0.0" resolved "https://artifacts.apextoaster.com/repository/group-npm/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" @@ -1376,12 +1466,17 @@ istanbul-reports@^2.2.4: dependencies: handlebars "^4.1.2" +jju@~1.4.0: + version "1.4.0" + resolved "https://artifacts.apextoaster.com/repository/group-npm/jju/-/jju-1.4.0.tgz#a3abe2718af241a2b2904f84a625970f389ae32a" + integrity sha1-o6vicYryQaKykE+EpiWXDzia4yo= + js-tokens@^4.0.0: version "4.0.0" resolved "https://artifacts.apextoaster.com/repository/group-npm/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== -js-yaml@3.13.1, js-yaml@^3.13.1: +js-yaml@3.13.1, js-yaml@^3.13.1, js-yaml@~3.13.1: version "3.13.1" resolved "https://artifacts.apextoaster.com/repository/group-npm/js-yaml/-/js-yaml-3.13.1.tgz#aff151b30bfdfa8e49e05da22e7415e9dfa37847" integrity sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw== @@ -1485,6 +1580,16 @@ lodash.flattendeep@^4.4.0: resolved "https://artifacts.apextoaster.com/repository/group-npm/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz#fb030917f86a3134e5bc9bec0d69e0013ddfedb2" integrity sha1-+wMJF/hqMTTlvJvsDWngAT3f7bI= +lodash.get@^4.0.0: + version "4.4.2" + resolved "https://artifacts.apextoaster.com/repository/group-npm/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99" + integrity sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk= + +lodash.isequal@^4.0.0: + version "4.5.0" + resolved "https://artifacts.apextoaster.com/repository/group-npm/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0" + integrity sha1-QVxEePK8wwEgwizhDtMib30+GOA= + lodash.ismatch@^4.4.0: version "4.4.0" resolved "https://artifacts.apextoaster.com/repository/group-npm/lodash.ismatch/-/lodash.ismatch-4.4.0.tgz#756cb5150ca3ba6f11085a78849645f188f85f37" @@ -1505,7 +1610,7 @@ lodash.templatesettings@^4.0.0: dependencies: lodash._reinterpolate "^3.0.0" -lodash@4.17.15, lodash@^4.17.13, lodash@^4.17.15, lodash@^4.2.1: +lodash@4.17.15, lodash@^4.17.13, lodash@^4.17.15, lodash@^4.2.1, lodash@~4.17.15: version "4.17.15" resolved "https://artifacts.apextoaster.com/repository/group-npm/lodash/-/lodash-4.17.15.tgz#b447f6670a0455bbfeedd11392eff330ea097548" integrity sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A== @@ -1970,7 +2075,7 @@ path-is-absolute@^1.0.0: resolved "https://artifacts.apextoaster.com/repository/group-npm/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= -path-parse@^1.0.6: +path-parse@^1.0.5, path-parse@^1.0.6: version "1.0.6" resolved "https://artifacts.apextoaster.com/repository/group-npm/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw== @@ -2193,6 +2298,13 @@ resolve@1.12.0, resolve@^1.10.0, resolve@^1.11.0, resolve@^1.11.1, resolve@^1.3. dependencies: path-parse "^1.0.6" +resolve@1.8.1: + version "1.8.1" + resolved "https://artifacts.apextoaster.com/repository/group-npm/resolve/-/resolve-1.8.1.tgz#82f1ec19a423ac1fbd080b0bab06ba36e84a7a26" + integrity sha512-AicPrAC7Qu1JxPCZ9ZgCZlY35QgFnNqc+0LtbRNxnVw4TXvjQ72wnuL9JQcEBgXkI9JM8MsT9kaQoHcpCRJOYA== + dependencies: + path-parse "^1.0.5" + rimraf@^2.6.2, rimraf@^2.6.3: version "2.7.1" resolved "https://artifacts.apextoaster.com/repository/group-npm/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" @@ -2705,6 +2817,11 @@ typescript@^3.0.0: resolved "https://artifacts.apextoaster.com/repository/group-npm/typescript/-/typescript-3.6.3.tgz#fea942fabb20f7e1ca7164ff626f1a9f3f70b4da" integrity sha512-N7bceJL1CtRQ2RiG0AQME13ksR7DiuQh/QehubYcghzv20tnh+MQnQIuJddTmsbqYj+dztchykemz0zFzlvdQw== +typescript@~3.5.3: + version "3.5.3" + resolved "https://artifacts.apextoaster.com/repository/group-npm/typescript/-/typescript-3.5.3.tgz#c830f657f93f1ea846819e929092f5fe5983e977" + integrity sha512-ACzBtm/PhXBDId6a6sDJfroT2pOWt/oOnk4/dElG5G33ZL776N3Y6/6bKZJBFpd+b05F3Ct9qDjMeJmRWtE2/g== + uglify-js@^3.1.4: version "3.6.0" resolved "https://artifacts.apextoaster.com/repository/group-npm/uglify-js/-/uglify-js-3.6.0.tgz#704681345c53a8b2079fb6cec294b05ead242ff5" @@ -2743,6 +2860,11 @@ validate-npm-package-license@^3.0.1: spdx-correct "^3.0.0" spdx-expression-parse "^3.0.0" +validator@^8.0.0: + version "8.2.0" + resolved "https://artifacts.apextoaster.com/repository/group-npm/validator/-/validator-8.2.0.tgz#3c1237290e37092355344fef78c231249dab77b9" + integrity sha512-Yw5wW34fSv5spzTXNkokD6S6/Oq92d8q/t14TqsS3fAiA1RYnxSFSIZ+CY3n6PGGRCq5HhJTSepQvFUS2QUDxA== + which-module@^2.0.0: version "2.0.0" resolved "https://artifacts.apextoaster.com/repository/group-npm/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" @@ -2862,3 +2984,14 @@ yargs@14.2.0: which-module "^2.0.0" y18n "^4.0.0" yargs-parser "^15.0.0" + +z-schema@~3.18.3: + version "3.18.4" + resolved "https://artifacts.apextoaster.com/repository/group-npm/z-schema/-/z-schema-3.18.4.tgz#ea8132b279533ee60be2485a02f7e3e42541a9a2" + integrity sha512-DUOKC/IhbkdLKKiV89gw9DUauTV8U/8yJl1sjf6MtDmzevLKOF2duNJ495S3MFVjqZarr+qNGCPbkg4mu4PpLw== + dependencies: + lodash.get "^4.0.0" + lodash.isequal "^4.0.0" + validator "^8.0.0" + optionalDependencies: + commander "^2.7.1"