mirror of
https://github.com/overleaf/overleaf.git
synced 2025-04-21 00:13:37 +00:00
Merge pull request #2929 from overleaf/jpa-ci-3m30s-with-custom-cloudbuild
[misc] another batch of CI improvements GitOrigin-RevId: 470fd762ba541d5dce92f0e99830fb2fd8fc4747
This commit is contained in:
parent
acd8ff6aeb
commit
48b138f227
13 changed files with 171 additions and 513 deletions
|
@ -1,3 +1,6 @@
|
|||
.git
|
||||
|
||||
modules/*/Makefile
|
||||
**/node_modules
|
||||
copybara
|
||||
data
|
||||
|
@ -5,3 +8,8 @@ public/js
|
|||
public/minjs
|
||||
public/stylesheets
|
||||
public/manifest.json
|
||||
|
||||
build.tar
|
||||
|
||||
.sentryclirc
|
||||
.sentryclirc.enc
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
# NOTE: changing paths may require updating them in the Makefile too.
|
||||
node_modules
|
||||
modules/**/scripts
|
||||
frontend/js/vendor
|
||||
|
|
|
@ -49,6 +49,7 @@
|
|||
"chai-friendly/no-unused-expressions": "error"
|
||||
},
|
||||
"overrides": [
|
||||
// NOTE: changing paths may require updating them in the Makefile too.
|
||||
{
|
||||
// Test specific rules
|
||||
"files": ["**/test/*/src/**/*.js"],
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
# NOTE: changing paths may require updating them in the Makefile too.
|
||||
node_modules
|
||||
modules/**/scripts
|
||||
frontend/js/vendor
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
# the base image is suitable for running web with /app bind mounted
|
||||
FROM node:10.21.0 as base
|
||||
|
||||
WORKDIR /app
|
||||
|
@ -9,30 +10,20 @@ RUN apt-get update \
|
|||
&& apt-get install -y parallel \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
|
||||
# the deps image is used for caching npm ci
|
||||
FROM base as deps
|
||||
|
||||
COPY package.json package-lock.json /app/
|
||||
|
||||
RUN npm ci --quiet
|
||||
|
||||
FROM deps as app
|
||||
|
||||
# the dev is suitable for running tests
|
||||
FROM deps as dev
|
||||
|
||||
COPY . /app
|
||||
|
||||
# Set environment variables for Sentry
|
||||
ARG SENTRY_RELEASE
|
||||
ARG BRANCH_NAME
|
||||
ENV SENTRY_RELEASE=$SENTRY_RELEASE
|
||||
ENV BRANCH_NAME=$BRANCH_NAME
|
||||
|
||||
RUN chmod 0755 ./install_deps.sh && ./install_deps.sh
|
||||
|
||||
FROM base
|
||||
|
||||
COPY --from=app /app /app
|
||||
|
||||
WORKDIR /app
|
||||
|
||||
RUN mkdir -p /app/data/dumpFolder && \
|
||||
mkdir -p /app/data/logs && \
|
||||
mkdir -p /app/data/pdf && \
|
||||
|
@ -41,9 +32,23 @@ RUN mkdir -p /app/data/dumpFolder && \
|
|||
chmod -R 0755 /app/data/ && \
|
||||
chown -R node:node /app/data/
|
||||
|
||||
ARG SENTRY_RELEASE
|
||||
ENV SENTRY_RELEASE=$SENTRY_RELEASE
|
||||
|
||||
USER node
|
||||
|
||||
|
||||
# the webpack image has deps+src+webpack artifacts
|
||||
FROM dev as webpack
|
||||
|
||||
USER root
|
||||
RUN chmod 0755 ./install_deps.sh && ./install_deps.sh
|
||||
|
||||
|
||||
# the final production image without webpack source maps
|
||||
FROM webpack as app
|
||||
|
||||
RUN find /app/public -name '*.js.map' -delete
|
||||
USER node
|
||||
|
||||
CMD ["node", "--expose-gc", "app.js"]
|
||||
|
||||
ARG SENTRY_RELEASE
|
||||
ENV SENTRY_RELEASE=$SENTRY_RELEASE
|
||||
|
|
|
@ -48,9 +48,36 @@ test_unit_app:
|
|||
COMPOSE_PROJECT_NAME=unit_test_$(BUILD_DIR_NAME) $(DOCKER_COMPOSE) run --name unit_test_$(BUILD_DIR_NAME) --rm test_unit
|
||||
COMPOSE_PROJECT_NAME=unit_test_$(BUILD_DIR_NAME) $(DOCKER_COMPOSE) down -v -t 0
|
||||
|
||||
test_unit_app_parallel: export COMPOSE_PROJECT_NAME = \
|
||||
TEST_SUITES = $(sort $(filter-out \
|
||||
$(wildcard test/unit/src/helpers/*), \
|
||||
$(wildcard test/unit/src/*/*)))
|
||||
|
||||
MOCHA_CMD_LINE = \
|
||||
mocha \
|
||||
--exit \
|
||||
--file test/unit/bootstrap.js \
|
||||
--grep=${MOCHA_GREP} \
|
||||
--reporter spec \
|
||||
--timeout 25000 \
|
||||
|
||||
.PHONY: $(TEST_SUITES)
|
||||
$(TEST_SUITES):
|
||||
$(MOCHA_CMD_LINE) $@
|
||||
|
||||
J ?= 1
|
||||
test_unit_app_parallel_gnu_make: $(TEST_SUITES)
|
||||
test_unit_app_parallel_gnu_make_docker: export COMPOSE_PROJECT_NAME = \
|
||||
unit_test_parallel_make_$(BUILD_DIR_NAME)
|
||||
test_unit_app_parallel_gnu_make_docker:
|
||||
$(DOCKER_COMPOSE) down -v -t 0
|
||||
$(DOCKER_COMPOSE) run --rm test_unit \
|
||||
make test_unit_app_parallel_gnu_make --output-sync -j $(J)
|
||||
$(DOCKER_COMPOSE) down -v -t 0
|
||||
|
||||
test_unit_app_parallel: test_unit_app_parallel_gnu_parallel
|
||||
test_unit_app_parallel_gnu_parallel: export COMPOSE_PROJECT_NAME = \
|
||||
unit_test_parallel_$(BUILD_DIR_NAME)
|
||||
test_unit_app_parallel:
|
||||
test_unit_app_parallel_gnu_parallel:
|
||||
$(DOCKER_COMPOSE) down -v -t 0
|
||||
$(DOCKER_COMPOSE) run --rm test_unit npm run test:unit:app:parallel
|
||||
$(DOCKER_COMPOSE) down -v -t 0
|
||||
|
@ -111,18 +138,58 @@ ci:
|
|||
#
|
||||
ORG_PATH = /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
|
||||
RUN_LINT_FORMAT ?= \
|
||||
docker run --rm \
|
||||
--volume $(PWD):/src \
|
||||
--workdir /src \
|
||||
--env NODE_PATH=/app/node_modules \
|
||||
--env PATH=$(ORG_PATH):/app/node_modules/.bin \
|
||||
gcr.io/overleaf-ops/$(PROJECT_NAME):$(BRANCH_NAME)-deps
|
||||
docker run --rm ci/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER)
|
||||
|
||||
format:
|
||||
npm -q run format
|
||||
NODE_MODULES_PATH := ${PATH}:${PWD}/node_modules/.bin:/app/node_modules/.bin
|
||||
WITH_NODE_MODULES_PATH = \
|
||||
format_backend \
|
||||
format_frontend \
|
||||
format_misc \
|
||||
format_test \
|
||||
$(TEST_SUITES) \
|
||||
|
||||
$(WITH_NODE_MODULES_PATH): export PATH=$(NODE_MODULES_PATH)
|
||||
|
||||
format: format_backend
|
||||
format_backend:
|
||||
prettier-eslint \
|
||||
app.js \
|
||||
'app/**/*.js' \
|
||||
'modules/*/index.js' \
|
||||
'modules/*/app/**/*.js' \
|
||||
--list-different
|
||||
|
||||
format: format_frontend
|
||||
format_frontend:
|
||||
prettier-eslint \
|
||||
'frontend/**/*.{js,less}' \
|
||||
'modules/*/frontend/**/*.{js,less}' \
|
||||
--list-different
|
||||
|
||||
format: format_test
|
||||
format_test:
|
||||
prettier-eslint \
|
||||
'test/**/*.js' \
|
||||
'modules/*/test/**/*.js' \
|
||||
--list-different
|
||||
|
||||
format: format_misc
|
||||
# migrations, scripts, webpack config, karma config
|
||||
format_misc:
|
||||
prettier-eslint \
|
||||
'**/*.{js,less}' \
|
||||
--ignore app.js \
|
||||
--ignore 'app/**/*.js' \
|
||||
--ignore 'modules/*/app/**/*.js' \
|
||||
--ignore 'modules/*/index.js' \
|
||||
--ignore 'frontend/**/*.{js,less}' \
|
||||
--ignore 'modules/*/frontend/**/*.{js,less}' \
|
||||
--ignore 'test/**/*.js' \
|
||||
--ignore 'modules/*/test/**/*.js' \
|
||||
--list-different
|
||||
|
||||
format_in_docker:
|
||||
$(RUN_LINT_FORMAT) make format
|
||||
$(RUN_LINT_FORMAT) make format -j --output-sync
|
||||
|
||||
format_fix:
|
||||
npm -q run format:fix
|
||||
|
@ -137,20 +204,47 @@ lint_in_docker:
|
|||
# Build & publish
|
||||
#
|
||||
|
||||
IMAGE_CI ?= ci/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER)
|
||||
IMAGE_REPO ?= gcr.io/overleaf-ops/$(PROJECT_NAME)
|
||||
IMAGE_REPO_BRANCH ?= $(IMAGE_REPO):$(BRANCH_NAME)
|
||||
IMAGE_REPO_MASTER ?= $(IMAGE_REPO):master
|
||||
IMAGE_REPO_FINAL ?= $(IMAGE_REPO_BRANCH)-$(BUILD_NUMBER)
|
||||
|
||||
export SENTRY_RELEASE ?= ${COMMIT_SHA}
|
||||
|
||||
build_deps:
|
||||
docker build --pull \
|
||||
--tag gcr.io/overleaf-ops/$(PROJECT_NAME):$(BRANCH_NAME)-deps \
|
||||
--cache-from gcr.io/overleaf-ops/$(PROJECT_NAME):$(BRANCH_NAME)-deps \
|
||||
--cache-from gcr.io/overleaf-ops/$(PROJECT_NAME):master-deps \
|
||||
--cache-from $(IMAGE_REPO_BRANCH)-deps \
|
||||
--cache-from $(IMAGE_REPO_MASTER)-deps \
|
||||
--tag $(IMAGE_REPO_BRANCH)-deps \
|
||||
--target deps \
|
||||
.
|
||||
|
||||
build: build_deps
|
||||
docker build --pull --tag ci/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER) \
|
||||
--tag gcr.io/overleaf-ops/$(PROJECT_NAME):$(BRANCH_NAME)-$(BUILD_NUMBER) \
|
||||
--cache-from gcr.io/overleaf-ops/$(PROJECT_NAME):$(BRANCH_NAME)-deps \
|
||||
--build-arg SENTRY_RELEASE=${COMMIT_SHA} \
|
||||
--build-arg BRANCH_NAME=$(BRANCH_NAME) \
|
||||
build_dev:
|
||||
docker build \
|
||||
--build-arg SENTRY_RELEASE \
|
||||
--cache-from $(IMAGE_REPO_BRANCH)-deps \
|
||||
--cache-from $(IMAGE_CI)-dev \
|
||||
--tag $(IMAGE_CI) \
|
||||
--tag $(IMAGE_CI)-dev \
|
||||
--target dev \
|
||||
.
|
||||
|
||||
build_webpack:
|
||||
docker build \
|
||||
--build-arg SENTRY_RELEASE \
|
||||
--cache-from $(IMAGE_CI)-dev \
|
||||
--cache-from $(IMAGE_CI)-webpack \
|
||||
--tag $(IMAGE_CI)-webpack \
|
||||
--target webpack \
|
||||
.
|
||||
|
||||
build:
|
||||
docker build \
|
||||
--build-arg SENTRY_RELEASE \
|
||||
--cache-from $(IMAGE_CI)-webpack \
|
||||
--cache-from $(IMAGE_REPO_FINAL) \
|
||||
--tag $(IMAGE_REPO_FINAL) \
|
||||
.
|
||||
|
||||
build_test_frontend:
|
||||
|
|
|
@ -4,6 +4,10 @@ set -e
|
|||
# Upload to staging CDN if branch is either 'master' or 'staging-master'
|
||||
if [[ "$BRANCH_NAME" == "master" || "$BRANCH_NAME" == "staging-master" ]]; then
|
||||
tar --directory=/tmp/ -xf build.tar
|
||||
|
||||
# delete source maps
|
||||
find /tmp/public -name '*.js.map' -delete
|
||||
|
||||
gsutil -h "Cache-Control:public, max-age=31536000" -m cp -r /tmp/public $CDN_STAG
|
||||
# Only upload to production CDN if branch is
|
||||
if [[ "$BRANCH_NAME" == "master" ]]; then
|
||||
|
|
17
services/web/bin/sentry_upload
Executable file
17
services/web/bin/sentry_upload
Executable file
|
@ -0,0 +1,17 @@
|
|||
#!/bin/sh
|
||||
set -e
|
||||
|
||||
if [[ "$BRANCH_NAME" == "master" ]]; then
|
||||
rm -rf sentry_upload
|
||||
mkdir sentry_upload
|
||||
tar --directory sentry_upload -xf build.tar
|
||||
cd sentry_upload/public
|
||||
|
||||
SENTRY_RELEASE=${COMMIT_SHA}
|
||||
OPTS="--no-rewrite --url-prefix ~"
|
||||
sentry-cli releases new "$SENTRY_RELEASE"
|
||||
sentry-cli releases files "$SENTRY_RELEASE" upload-sourcemaps ${OPTS} .
|
||||
sentry-cli releases finalize "$SENTRY_RELEASE"
|
||||
|
||||
rm -rf sentry_upload
|
||||
fi
|
|
@ -45,8 +45,7 @@ services:
|
|||
user: node
|
||||
|
||||
tar:
|
||||
build: .
|
||||
image: ci/$PROJECT_NAME:$BRANCH_NAME-$BUILD_NUMBER
|
||||
image: ci/$PROJECT_NAME:$BRANCH_NAME-$BUILD_NUMBER-webpack
|
||||
volumes:
|
||||
- ./:/tmp/build/
|
||||
command: tar -cf /tmp/build/build.tar public/
|
||||
|
|
|
@ -8,5 +8,3 @@ echo "Waiting for translations and minify to finish"
|
|||
|
||||
wait $TRANSLATIONS && echo "Translations install complete" || exit 1
|
||||
wait $WEBPACK && echo "Webpack complete" || exit 1
|
||||
|
||||
rm .sentryclirc
|
||||
|
|
422
services/web/package-lock.json
generated
422
services/web/package-lock.json
generated
|
@ -2864,67 +2864,6 @@
|
|||
"tslib": "^1.9.3"
|
||||
}
|
||||
},
|
||||
"@sentry/cli": {
|
||||
"version": "1.52.3",
|
||||
"resolved": "https://registry.npmjs.org/@sentry/cli/-/cli-1.52.3.tgz",
|
||||
"integrity": "sha512-QOSIg5hxAEa6v6H7oEeF6A/Rpa0wloMhbu0Qed6zHv3lyoqf0Z34Kq2jCXdqGsOE3IzkO+3CNy81F6361j5TKg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"https-proxy-agent": "^5.0.0",
|
||||
"mkdirp": "^0.5.5",
|
||||
"node-fetch": "^2.6.0",
|
||||
"progress": "^2.0.3",
|
||||
"proxy-from-env": "^1.1.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"agent-base": {
|
||||
"version": "6.0.0",
|
||||
"resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.0.tgz",
|
||||
"integrity": "sha512-j1Q7cSCqN+AwrmDd+pzgqc0/NpC655x2bUf5ZjRIO77DcNBFmh+OgRNzF6OKdCC9RSCb19fGd99+bhXFdkRNqw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"debug": "4"
|
||||
}
|
||||
},
|
||||
"https-proxy-agent": {
|
||||
"version": "5.0.0",
|
||||
"resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz",
|
||||
"integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"agent-base": "6",
|
||||
"debug": "4"
|
||||
}
|
||||
},
|
||||
"mkdirp": {
|
||||
"version": "0.5.5",
|
||||
"resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz",
|
||||
"integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"minimist": "^1.2.5"
|
||||
}
|
||||
},
|
||||
"node-fetch": {
|
||||
"version": "2.6.0",
|
||||
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.0.tgz",
|
||||
"integrity": "sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA==",
|
||||
"dev": true
|
||||
},
|
||||
"progress": {
|
||||
"version": "2.0.3",
|
||||
"resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz",
|
||||
"integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==",
|
||||
"dev": true
|
||||
},
|
||||
"proxy-from-env": {
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz",
|
||||
"integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"@sentry/core": {
|
||||
"version": "5.15.4",
|
||||
"resolved": "https://registry.npmjs.org/@sentry/core/-/core-5.15.4.tgz",
|
||||
|
@ -2971,54 +2910,6 @@
|
|||
"tslib": "^1.9.3"
|
||||
}
|
||||
},
|
||||
"@sentry/webpack-plugin": {
|
||||
"version": "1.11.1",
|
||||
"resolved": "https://registry.npmjs.org/@sentry/webpack-plugin/-/webpack-plugin-1.11.1.tgz",
|
||||
"integrity": "sha512-7uQiqHXK84GYy2mL/c+cW/QBtr/D8fNmf8U5nUDN4+44aNrQxSJ4vJmYJbxYg1zO6qN/xZyqJt3uKBlgA3FkZg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@sentry/cli": "^1.52.3"
|
||||
}
|
||||
},
|
||||
"@sindresorhus/df": {
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/@sindresorhus/df/-/df-2.1.0.tgz",
|
||||
"integrity": "sha512-yozEsK3X8sEjh9fiolh3JntMUuGKe2n2t8gtE3yZ1PqAFFeaSxTrSiEVORy/YkPzUsxQ85RzLcGqmqSOgiFhtg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"execa": "^0.2.2"
|
||||
},
|
||||
"dependencies": {
|
||||
"execa": {
|
||||
"version": "0.2.2",
|
||||
"resolved": "https://registry.npmjs.org/execa/-/execa-0.2.2.tgz",
|
||||
"integrity": "sha512-zmBGzLd3nhA/NB9P7VLoceAO6vyYPftvl809Vjwe5U2fYI9tYWbeKqP3wZlAw9WS+znnkogf/bhSU+Gcn2NbkQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"cross-spawn-async": "^2.1.1",
|
||||
"npm-run-path": "^1.0.0",
|
||||
"object-assign": "^4.0.1",
|
||||
"path-key": "^1.0.0",
|
||||
"strip-eof": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"npm-run-path": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-1.0.0.tgz",
|
||||
"integrity": "sha512-PrGAi1SLlqNvKN5uGBjIgnrTb8fl0Jz0a3JJmeMcGnIBh7UE9Gc4zsAMlwDajOMg2b1OgP6UPvoLUboTmMZPFA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"path-key": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"path-key": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/path-key/-/path-key-1.0.0.tgz",
|
||||
"integrity": "sha512-T3hWy7tyXlk3QvPFnT+o2tmXRzU4GkitkUWLp/WZ0S/FXd7XMx176tRurgTvHTNMJOQzTcesHNpBqetH86mQ9g==",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"@sindresorhus/fnv1a": {
|
||||
"version": "1.2.0",
|
||||
"resolved": "https://registry.npmjs.org/@sindresorhus/fnv1a/-/fnv1a-1.2.0.tgz",
|
||||
|
@ -3081,12 +2972,6 @@
|
|||
"integrity": "sha512-+iTbntw2IZPb/anVDbypzfQa+ay64MW0Zo8aJ8gZPWMMK6/OubMVb6lUPMagqjOPnmtauXnFCACVl3O7ogjeqQ==",
|
||||
"dev": true
|
||||
},
|
||||
"@stroncium/procfs": {
|
||||
"version": "1.2.1",
|
||||
"resolved": "https://registry.npmjs.org/@stroncium/procfs/-/procfs-1.2.1.tgz",
|
||||
"integrity": "sha512-X1Iui3FUNZP18EUvysTHxt+Avu2nlVzyf90YM8OYgP6SGzTzzX/0JgObfO1AQQDzuZtNNz29bVh8h5R97JrjxA==",
|
||||
"dev": true
|
||||
},
|
||||
"@testing-library/dom": {
|
||||
"version": "7.7.3",
|
||||
"resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-7.7.3.tgz",
|
||||
|
@ -3213,12 +3098,6 @@
|
|||
"resolved": "https://registry.npmjs.org/@types/angular/-/angular-1.7.0.tgz",
|
||||
"integrity": "sha512-zneUmi5I6oSkGBqkRP9rxbWX1mi6Yj7gNV+WNffmJLf8x4cnV0MGqXFNSP90NZ1kRRLCOdKBf9RIVD1TMg4aog=="
|
||||
},
|
||||
"@types/anymatch": {
|
||||
"version": "1.3.1",
|
||||
"resolved": "https://registry.npmjs.org/@types/anymatch/-/anymatch-1.3.1.tgz",
|
||||
"integrity": "sha512-/+CRPXpBDpo2RK9C68N3b2cOvO0Cf5B9aPijHsoDQTHivnGSObdOF2BRQOYjojWTDy6nQvMjmqRXIxH55VjxxA==",
|
||||
"dev": true
|
||||
},
|
||||
"@types/babel-types": {
|
||||
"version": "7.0.7",
|
||||
"resolved": "https://registry.npmjs.org/@types/babel-types/-/babel-types-7.0.7.tgz",
|
||||
|
@ -3400,18 +3279,6 @@
|
|||
"resolved": "https://registry.npmjs.org/@types/semver/-/semver-5.5.0.tgz",
|
||||
"integrity": "sha512-41qEJgBH/TWgo5NFSvBCJ1qkoi3Q6ONSF2avrHq1LVEZfYpdHmj0y9SuTK+u9ZhG1sYQKBL1AWXKyLWP4RaUoQ=="
|
||||
},
|
||||
"@types/source-list-map": {
|
||||
"version": "0.1.2",
|
||||
"resolved": "https://registry.npmjs.org/@types/source-list-map/-/source-list-map-0.1.2.tgz",
|
||||
"integrity": "sha512-K5K+yml8LTo9bWJI/rECfIPrGgxdpeNbj+d53lwN4QjW1MCwlkhUms+gtdzigTeUyBr09+u8BwOIY3MXvHdcsA==",
|
||||
"dev": true
|
||||
},
|
||||
"@types/tapable": {
|
||||
"version": "1.0.5",
|
||||
"resolved": "https://registry.npmjs.org/@types/tapable/-/tapable-1.0.5.tgz",
|
||||
"integrity": "sha512-/gG2M/Imw7cQFp8PGvz/SwocNrmKFjFsm5Pb8HdbHkZ1K8pmuPzOX4VeVoiEecFCVf4CsN1r3/BRvx+6sNqwtQ==",
|
||||
"dev": true
|
||||
},
|
||||
"@types/testing-library__dom": {
|
||||
"version": "7.0.2",
|
||||
"resolved": "https://registry.npmjs.org/@types/testing-library__dom/-/testing-library__dom-7.0.2.tgz",
|
||||
|
@ -3539,64 +3406,6 @@
|
|||
"resolved": "https://registry.npmjs.org/@types/tough-cookie/-/tough-cookie-4.0.0.tgz",
|
||||
"integrity": "sha512-I99sngh224D0M7XgW1s120zxCt3VYQ3IQsuw3P3jbq5GG4yc79+ZjyKznyOGIQrflfylLgcfekeZW/vk0yng6A=="
|
||||
},
|
||||
"@types/uglify-js": {
|
||||
"version": "3.9.0",
|
||||
"resolved": "https://registry.npmjs.org/@types/uglify-js/-/uglify-js-3.9.0.tgz",
|
||||
"integrity": "sha512-3ZcoyPYHVOCcLpnfZwD47KFLr8W/mpUcgjpf1M4Q78TMJIw7KMAHSjiCLJp1z3ZrBR9pTLbe191O0TldFK5zcw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"source-map": "^0.6.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"source-map": {
|
||||
"version": "0.6.1",
|
||||
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
|
||||
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"@types/webpack": {
|
||||
"version": "4.41.12",
|
||||
"resolved": "https://registry.npmjs.org/@types/webpack/-/webpack-4.41.12.tgz",
|
||||
"integrity": "sha512-BpCtM4NnBen6W+KEhrL9jKuZCXVtiH6+0b6cxdvNt2EwU949Al334PjQSl2BeAyvAX9mgoNNG21wvjP3xZJJ5w==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@types/anymatch": "*",
|
||||
"@types/node": "*",
|
||||
"@types/tapable": "*",
|
||||
"@types/uglify-js": "*",
|
||||
"@types/webpack-sources": "*",
|
||||
"source-map": "^0.6.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"source-map": {
|
||||
"version": "0.6.1",
|
||||
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
|
||||
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"@types/webpack-sources": {
|
||||
"version": "0.1.7",
|
||||
"resolved": "https://registry.npmjs.org/@types/webpack-sources/-/webpack-sources-0.1.7.tgz",
|
||||
"integrity": "sha512-XyaHrJILjK1VHVC4aVlKsdNN5KBTwufMb43cQs+flGxtPAf/1Qwl8+Q0tp5BwEGaI8D6XT1L+9bSWXckgkjTLw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@types/node": "*",
|
||||
"@types/source-list-map": "*",
|
||||
"source-map": "^0.6.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"source-map": {
|
||||
"version": "0.6.1",
|
||||
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
|
||||
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"@types/yargs": {
|
||||
"version": "15.0.5",
|
||||
"resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.5.tgz",
|
||||
|
@ -7731,43 +7540,6 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"cp-file": {
|
||||
"version": "6.2.0",
|
||||
"resolved": "https://registry.npmjs.org/cp-file/-/cp-file-6.2.0.tgz",
|
||||
"integrity": "sha512-fmvV4caBnofhPe8kOcitBwSn2f39QLjnAnGq3gO9dfd75mUytzKNZB1hde6QHunW2Rt+OwuBOMc3i1tNElbszA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"graceful-fs": "^4.1.2",
|
||||
"make-dir": "^2.0.0",
|
||||
"nested-error-stacks": "^2.0.0",
|
||||
"pify": "^4.0.1",
|
||||
"safe-buffer": "^5.0.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"make-dir": {
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz",
|
||||
"integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"pify": "^4.0.1",
|
||||
"semver": "^5.6.0"
|
||||
}
|
||||
},
|
||||
"pify": {
|
||||
"version": "4.0.1",
|
||||
"resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz",
|
||||
"integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==",
|
||||
"dev": true
|
||||
},
|
||||
"semver": {
|
||||
"version": "5.7.1",
|
||||
"resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
|
||||
"integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"crc": {
|
||||
"version": "3.8.0",
|
||||
"resolved": "https://registry.npmjs.org/crc/-/crc-3.8.0.tgz",
|
||||
|
@ -7899,16 +7671,6 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"cross-spawn-async": {
|
||||
"version": "2.2.5",
|
||||
"resolved": "https://registry.npmjs.org/cross-spawn-async/-/cross-spawn-async-2.2.5.tgz",
|
||||
"integrity": "sha512-snteb3aVrxYYOX9e8BabYFK9WhCDhTlw1YQktfTthBogxri4/2r9U2nQc0ffY73ZAxezDc+U8gvHAeU1wy1ubQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"lru-cache": "^4.0.0",
|
||||
"which": "^1.2.8"
|
||||
}
|
||||
},
|
||||
"cryptiles": {
|
||||
"version": "0.2.2",
|
||||
"resolved": "https://registry.npmjs.org/cryptiles/-/cryptiles-0.2.2.tgz",
|
||||
|
@ -15167,16 +14929,6 @@
|
|||
"integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==",
|
||||
"dev": true
|
||||
},
|
||||
"lru-cache": {
|
||||
"version": "4.1.5",
|
||||
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz",
|
||||
"integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"pseudomap": "^1.0.2",
|
||||
"yallist": "^2.1.2"
|
||||
}
|
||||
},
|
||||
"lsmod": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/lsmod/-/lsmod-1.0.0.tgz",
|
||||
|
@ -16126,31 +15878,6 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"mount-point": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/mount-point/-/mount-point-3.0.0.tgz",
|
||||
"integrity": "sha512-jAhfD7ZCG+dbESZjcY1SdFVFqSJkh/yGbdsifHcPkvuLRO5ugK0Ssmd9jdATu29BTd4JiN+vkpMzVvsUgP3SZA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@sindresorhus/df": "^1.0.1",
|
||||
"pify": "^2.3.0",
|
||||
"pinkie-promise": "^2.0.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"@sindresorhus/df": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/@sindresorhus/df/-/df-1.0.1.tgz",
|
||||
"integrity": "sha512-1Hyp7NQnD/u4DSxR2DGW78TF9k7R0wZ8ev0BpMAIzA6yTQSHqNb5wTuvtcPYf4FWbVse2rW7RgDsyL8ua2vXHw==",
|
||||
"dev": true
|
||||
},
|
||||
"pify": {
|
||||
"version": "2.3.0",
|
||||
"resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
|
||||
"integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"move-concurrently": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz",
|
||||
|
@ -16176,34 +15903,6 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"move-file": {
|
||||
"version": "1.2.0",
|
||||
"resolved": "https://registry.npmjs.org/move-file/-/move-file-1.2.0.tgz",
|
||||
"integrity": "sha512-USHrRmxzGowUWAGBbJPdFjHzEqtxDU03pLHY0Rfqgtnq+q8FOIs8wvkkf+Udmg77SJKs47y9sI0jJvQeYsmiCA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"cp-file": "^6.1.0",
|
||||
"make-dir": "^3.0.0",
|
||||
"path-exists": "^3.0.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"make-dir": {
|
||||
"version": "3.1.0",
|
||||
"resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz",
|
||||
"integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"semver": "^6.0.0"
|
||||
}
|
||||
},
|
||||
"semver": {
|
||||
"version": "6.3.0",
|
||||
"resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
|
||||
"integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"mpath": {
|
||||
"version": "0.5.1",
|
||||
"resolved": "https://registry.npmjs.org/mpath/-/mpath-0.5.1.tgz",
|
||||
|
@ -16439,12 +16138,6 @@
|
|||
"resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.1.tgz",
|
||||
"integrity": "sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw=="
|
||||
},
|
||||
"nested-error-stacks": {
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/nested-error-stacks/-/nested-error-stacks-2.1.0.tgz",
|
||||
"integrity": "sha512-AO81vsIO1k1sM4Zrd6Hu7regmJN1NSiAja10gc4bX3F0wd+9rQmcuHQaHVQCYIEC8iFXnE+mavh23GOt7wBgug==",
|
||||
"dev": true
|
||||
},
|
||||
"ngcomponent": {
|
||||
"version": "4.1.0",
|
||||
"resolved": "https://registry.npmjs.org/ngcomponent/-/ngcomponent-4.1.0.tgz",
|
||||
|
@ -20989,16 +20682,6 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"remove-files-webpack-plugin": {
|
||||
"version": "1.4.1",
|
||||
"resolved": "https://registry.npmjs.org/remove-files-webpack-plugin/-/remove-files-webpack-plugin-1.4.1.tgz",
|
||||
"integrity": "sha512-BlINlu1rnLEPK1+W+686mlJ5G0NqUQOeFVGMmZGwRyVw2vxYH95mSHa92qahTOjYOdfe3BkthWdoq4a26PCXuA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@types/webpack": "4.41.12",
|
||||
"trash": "6.1.1"
|
||||
}
|
||||
},
|
||||
"remove-trailing-separator": {
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz",
|
||||
|
@ -24418,72 +24101,6 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"trash": {
|
||||
"version": "6.1.1",
|
||||
"resolved": "https://registry.npmjs.org/trash/-/trash-6.1.1.tgz",
|
||||
"integrity": "sha512-4i56lCmz2RG6WZN018hf4L75L5HboaFuKkHx3wDG/ihevI99e0OgFyl8w6G4ioqBm62V4EJqCy5xw3vQSNXU8A==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@stroncium/procfs": "^1.0.0",
|
||||
"globby": "^7.1.1",
|
||||
"is-path-inside": "^3.0.2",
|
||||
"make-dir": "^3.0.0",
|
||||
"move-file": "^1.1.0",
|
||||
"p-map": "^3.0.0",
|
||||
"p-try": "^2.2.0",
|
||||
"uuid": "^3.3.2",
|
||||
"xdg-trashdir": "^2.1.1"
|
||||
},
|
||||
"dependencies": {
|
||||
"globby": {
|
||||
"version": "7.1.1",
|
||||
"resolved": "https://registry.npmjs.org/globby/-/globby-7.1.1.tgz",
|
||||
"integrity": "sha512-yANWAN2DUcBtuus5Cpd+SKROzXHs2iVXFZt/Ykrfz6SAXqacLX25NZpltE+39ceMexYF4TtEadjuSTw8+3wX4g==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"array-union": "^1.0.1",
|
||||
"dir-glob": "^2.0.0",
|
||||
"glob": "^7.1.2",
|
||||
"ignore": "^3.3.5",
|
||||
"pify": "^3.0.0",
|
||||
"slash": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"is-path-inside": {
|
||||
"version": "3.0.2",
|
||||
"resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.2.tgz",
|
||||
"integrity": "sha512-/2UGPSgmtqwo1ktx8NDHjuPwZWmHhO+gj0f93EkhLB5RgW9RZevWYYlIkS6zePc6U2WpOdQYIwHe9YC4DWEBVg==",
|
||||
"dev": true
|
||||
},
|
||||
"make-dir": {
|
||||
"version": "3.1.0",
|
||||
"resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz",
|
||||
"integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"semver": "^6.0.0"
|
||||
}
|
||||
},
|
||||
"semver": {
|
||||
"version": "6.3.0",
|
||||
"resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
|
||||
"integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
|
||||
"dev": true
|
||||
},
|
||||
"slash": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz",
|
||||
"integrity": "sha512-3TYDR7xWt4dIqV2JauJr+EJeW356RXijHeUlO+8djJ+uBXPn8/2dpzBc8yQhh583sVvc9CvFAeQVgijsH+PNNg==",
|
||||
"dev": true
|
||||
},
|
||||
"uuid": {
|
||||
"version": "3.4.0",
|
||||
"resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz",
|
||||
"integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"tslib": {
|
||||
"version": "1.10.0",
|
||||
"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz",
|
||||
|
@ -25012,15 +24629,6 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"user-home": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/user-home/-/user-home-2.0.0.tgz",
|
||||
"integrity": "sha512-KMWqdlOcjCYdtIJpicDSFBQ8nFwS2i9sslAd6f4+CBGcU4gist2REnr2fxj2YocvJFxSF3ZOHLYLVZnUxv4BZQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"os-homedir": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"utf-8-validate": {
|
||||
"version": "5.0.2",
|
||||
"resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.2.tgz",
|
||||
|
@ -26826,36 +26434,6 @@
|
|||
"integrity": "sha512-1Dly4xqlulvPD3fZUQJLY+FUIeqN3N2MM3uqe4rCJftAvOjFa3jFGfctOgluGx4ahPbUCsZkmJILiP0Vi4T6lQ==",
|
||||
"dev": true
|
||||
},
|
||||
"xdg-trashdir": {
|
||||
"version": "2.1.1",
|
||||
"resolved": "https://registry.npmjs.org/xdg-trashdir/-/xdg-trashdir-2.1.1.tgz",
|
||||
"integrity": "sha512-KcVhPaOu2ZurYNHSRTf1+ZHORkTZGCQ+u0JHN17QixRISJq4pXOnjt/lQcehvtHL5QAKhSzKgyjrcNnPdkPBHA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@sindresorhus/df": "^2.1.0",
|
||||
"mount-point": "^3.0.0",
|
||||
"pify": "^2.2.0",
|
||||
"user-home": "^2.0.0",
|
||||
"xdg-basedir": "^2.0.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"pify": {
|
||||
"version": "2.3.0",
|
||||
"resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
|
||||
"integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==",
|
||||
"dev": true
|
||||
},
|
||||
"xdg-basedir": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-2.0.0.tgz",
|
||||
"integrity": "sha512-NF1pPn594TaRSUO/HARoB4jK8I+rWgcpVlpQCK6/6o5PHyLUt2CSiDrpUZbQ6rROck+W2EwF8mBJcTs+W98J9w==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"os-homedir": "^1.0.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"xml-crypto": {
|
||||
"version": "1.4.0",
|
||||
"resolved": "https://registry.npmjs.org/xml-crypto/-/xml-crypto-1.4.0.tgz",
|
||||
|
|
|
@ -138,7 +138,6 @@
|
|||
"yauzl": "^2.10.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@sentry/webpack-plugin": "^1.11.1",
|
||||
"@testing-library/dom": "^7.7.3",
|
||||
"@testing-library/react": "^10.0.4",
|
||||
"acorn": "^7.1.1",
|
||||
|
@ -191,7 +190,6 @@
|
|||
"optimize-css-assets-webpack-plugin": "^5.0.3",
|
||||
"postcss-loader": "^3.0.0",
|
||||
"prettier-eslint-cli": "^4.7.1",
|
||||
"remove-files-webpack-plugin": "^1.4.1",
|
||||
"requirejs": "^2.3.6",
|
||||
"samlp": "^3.4.1",
|
||||
"sandboxed-module": "0.2.0",
|
||||
|
|
|
@ -1,10 +1,7 @@
|
|||
const fs = require('fs')
|
||||
const merge = require('webpack-merge')
|
||||
const TerserPlugin = require('terser-webpack-plugin')
|
||||
const OptimizeCssAssetsPlugin = require('optimize-css-assets-webpack-plugin')
|
||||
const MiniCssExtractPlugin = require('mini-css-extract-plugin')
|
||||
const SentryPlugin = require('@sentry/webpack-plugin')
|
||||
const RemoveFilesPlugin = require('remove-files-webpack-plugin')
|
||||
|
||||
const base = require('./webpack.config')
|
||||
|
||||
|
@ -57,48 +54,5 @@ module.exports = merge.smart(
|
|||
})
|
||||
]
|
||||
},
|
||||
// Conditionally merge in Sentry plugins
|
||||
generateSentryConfig()
|
||||
{}
|
||||
)
|
||||
|
||||
/*
|
||||
* If Sentry secrets file exists, then configure SentryPlugin to upload source
|
||||
* maps to Sentry
|
||||
*/
|
||||
function generateSentryConfig() {
|
||||
// Only upload if the Sentry secrets file is available and on master branch
|
||||
if (
|
||||
fs.existsSync('./.sentryclirc') &&
|
||||
process.env['BRANCH_NAME'] === 'master'
|
||||
) {
|
||||
console.log('Sentry secrets file found. Uploading source maps to Sentry')
|
||||
return {
|
||||
plugins: [
|
||||
new SentryPlugin({
|
||||
release: process.env['SENTRY_RELEASE'],
|
||||
include: './public/js',
|
||||
ignore: ['ace-1.4.5', 'cmaps', 'libs']
|
||||
}),
|
||||
|
||||
// After uploading source maps to Sentry, delete them. Some of the
|
||||
// source maps are of proprietary code and so we don't want to make them
|
||||
// publicly available
|
||||
new RemoveFilesPlugin({
|
||||
after: {
|
||||
test: [
|
||||
{
|
||||
folder: './public/js',
|
||||
method: filePath => /\.map$/.test(filePath)
|
||||
}
|
||||
]
|
||||
}
|
||||
})
|
||||
]
|
||||
}
|
||||
} else {
|
||||
console.log(
|
||||
'Sentry secrets file not found. NOT uploading source maps to Sentry'
|
||||
)
|
||||
return {}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue