1
0
Fork 0

fix(build): adopt rollup-template makefile, CI scripts

This commit is contained in:
ssube 2019-11-01 18:48:59 -05:00 committed by Sean Sube
parent b3c66dc702
commit a5bb2f4db3
13 changed files with 391 additions and 78 deletions

View File

@ -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

View File

@ -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

105
Makefile
View File

@ -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)

View File

@ -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:

43
config/api-extractor.json Normal file
View File

@ -0,0 +1,43 @@
{
"$schema": "https://developer.microsoft.com/json-schemas/api-extractor/v7/api-extractor.schema.json",
"projectFolder": "..",
"mainEntryPointFilePath": "<projectFolder>/out/src/index.d.ts",
"apiReport": {
"enabled": true,
"reportFolder": "<projectFolder>/out/",
"reportTempFolder": "<projectFolder>/out/tmp/"
},
"docModel": {
"enabled": true,
"apiJsonFilePath": "<projectFolder>/out/api/<unscopedPackageName>.api.json"
},
"dtsRollup": {
"enabled": true,
"untrimmedFilePath": "<projectFolder>/out/index.d.ts",
"betaTrimmedFilePath": "<projectFolder>/out/index-beta.d.ts",
"publicTrimmedFilePath": "<projectFolder>/out/index-public.d.ts"
},
"tsdocMetadata": {
},
"messages": {
"compilerMessageReporting": {
"default": {
"logLevel": "warning"
}
},
"extractorMessageReporting": {
"default": {
"logLevel": "warning"
}
},
"tsdocMessageReporting": {
"default": {
"logLevel": "warning"
}
}
}
}

12
docs/api/index.md Normal file
View File

@ -0,0 +1,12 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md)
## API Reference
## Packages
| Package | Description |
| --- | --- |
| [salty-dog](./salty-dog.md) | |

View File

@ -0,0 +1,22 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [salty-dog](./salty-dog.md) &gt; [main](./salty-dog.main.md)
## main() function
<b>Signature:</b>
```typescript
export declare function main(argv: Array<string>): Promise<number>;
```
## Parameters
| Parameter | Type | Description |
| --- | --- | --- |
| argv | <code>Array&lt;string&gt;</code> | |
<b>Returns:</b>
`Promise<number>`

12
docs/api/salty-dog.md Normal file
View File

@ -0,0 +1,12 @@
<!-- Do not edit this file. It is automatically generated by API Documenter. -->
[Home](./index.md) &gt; [salty-dog](./salty-dog.md)
## salty-dog package
## Functions
| Function | Description |
| --- | --- |
| [main(argv)](./salty-dog.main.md) | |

View File

@ -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",

33
run.mk Normal file
View File

@ -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

7
scripts/ci-project-path.sh Executable file
View File

@ -0,0 +1,7 @@
#! /bin/bash
PROJECT="${ROOT_PATH}"
PARENT="$(dirname "${PROJECT}")"
PROJECT_PATH="$(basename "${PARENT}")/$(basename "${PROJECT}")"
echo "${PROJECT_PATH}"

27
scripts/docker-build.sh Executable file
View File

@ -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

141
yarn.lock
View File

@ -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"