Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -214,6 +214,8 @@ jobs:
javascript_build:
working_directory: ~/identity-idp
executor: ruby_browsers
environment:
NODE_ENV: production
steps:
- checkout
- node-install
Expand Down
18 changes: 10 additions & 8 deletions .gitlab-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -165,6 +165,8 @@ js_build:
cache:
- <<: *ruby_cache
- <<: *yarn_production_cache
variables:
NODE_ENV: 'production'
script:
- *bundle_install
- *yarn_production_install
Expand All @@ -187,14 +189,14 @@ coverage:
- bundle exec spec/simplecov_merger.rb
- mv coverage/coverage/* coverage/
artifacts:
reports:
cobertura: coverage/coverage.xml
name: coverage
expire_in: 31d
paths:
- coverage/index.html
- coverage/assets/
- coverage/coverage.xml
reports:
cobertura: coverage/coverage.xml
name: coverage
expire_in: 31d
paths:
- coverage/index.html
- coverage/assets/
- coverage/coverage.xml

artifact:
extends: .on_push
Expand Down
3 changes: 1 addition & 2 deletions app/javascript/packages/polyfill/index.js
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
import 'promise-polyfill/src/polyfill';
import 'core-js/actual';
import 'whatwg-fetch';
import 'classlist-polyfill';
import 'clipboard-polyfill/overwrite-globals';
import 'webcrypto-shim';
import '@webcomponents/custom-elements';
import 'custom-event-polyfill';
import 'js-polyfills/url';
3 changes: 1 addition & 2 deletions app/javascript/packages/polyfill/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,8 @@
"@webcomponents/custom-elements": "^1.5.0",
"classlist-polyfill": "^1.2.0",
"clipboard-polyfill": "^3.0.3",
"core-js": "^3.21.1",
"custom-event-polyfill": "^1.0.7",
"js-polyfills": "^0.1.43",
"promise-polyfill": "^8.2.3",
"webcrypto-shim": "^0.1.7",
"whatwg-fetch": "^3.4.0"
}
Expand Down
50 changes: 13 additions & 37 deletions babel.config.js
Original file line number Diff line number Diff line change
@@ -1,57 +1,33 @@
module.exports = function (api) {
const validEnv = ['development', 'test', 'production'];
const currentEnv = api.env();
const isDevelopmentEnv = api.env('development');
const isProductionEnv = api.env('production');
module.exports = (api) => {
const isTestEnv = api.env('test');

if (!validEnv.includes(currentEnv)) {
throw new Error(
`${
'Please specify a valid `NODE_ENV` or ' +
'`BABEL_ENV` environment variables. Valid values are "development", ' +
'"test", and "production". Instead, received: '
}${JSON.stringify(currentEnv)}.`,
);
}

return {
presets: [
['@babel/preset-env', { targets: isTestEnv ? 'current node' : '> 1% or IE 11' }],
'@babel/typescript',
[
'@babel/preset-react',
{
runtime: 'automatic',
},
],
isTestEnv && [
'@babel/preset-env',
],
plugins: [
[
'polyfill-corejs3',
{
targets: {
node: 'current',
},
method: 'usage-global',
targets: isTestEnv ? 'current node' : '> 1% and supports es6-module',
},
],
(isProductionEnv || isDevelopmentEnv) && [
'@babel/preset-env',
[
'polyfill-regenerator',
{
forceAllTransforms: true,
useBuiltIns: 'usage',
corejs: 3,
modules: false,
// Exclude polyfills for features known to be provided by @18f/identity-polyfill package.
// See: https://github.com/babel/babel-polyfills/blob/main/packages/babel-plugin-polyfill-corejs3/src/built-in-definitions.js
exclude: ['web.url', 'web.url-search-params', 'es.promise'],
method: 'usage-global',
targets: isTestEnv ? 'current node' : '> 1% or IE 11',
},
],
].filter(Boolean),
// For third-party dependencies compiled using Babel, don't assume module source type. Use
// "unambiguous" for best-effort attempt to identify source type by patterns.
overrides: [
{
test: /node_modules\/(?!@18f\/identity-)/,
sourceType: 'unambiguous',
},
],
sourceType: 'unambiguous',
};
};
3 changes: 2 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -27,9 +27,10 @@
"@babel/preset-typescript": "^7.16.7",
"@babel/register": "^7.15.3",
"babel-loader": "^8.2.3",
"babel-plugin-polyfill-corejs3": "^0.5.2",
"classlist-polyfill": "^1.2.0",
"cleave.js": "^1.6.0",
"core-js": "^3.20.2",
"core-js": "^3.21.1",
"fast-glob": "^3.2.7",
"focus-trap": "^6.7.1",
"foundation-emails": "^2.3.1",
Expand Down
88 changes: 50 additions & 38 deletions yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -104,6 +104,20 @@
resolve "^1.14.2"
semver "^6.1.2"

"@babel/helper-define-polyfill-provider@^0.3.1":
version "0.3.1"
resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.1.tgz#52411b445bdb2e676869e5a74960d2d3826d2665"
integrity sha512-J9hGMpJQmtWmj46B3kBHmL38UhJGhYX7eqkcq+2gsstyYt341HmPeWspihX43yVRA0mS+8GGk2Gckc7bY/HCmA==
dependencies:
"@babel/helper-compilation-targets" "^7.13.0"
"@babel/helper-module-imports" "^7.12.13"
"@babel/helper-plugin-utils" "^7.13.0"
"@babel/traverse" "^7.13.0"
debug "^4.1.1"
lodash.debounce "^4.0.8"
resolve "^1.14.2"
semver "^6.1.2"

"@babel/helper-environment-visitor@^7.16.7":
version "7.16.7"
resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz#ff484094a839bde9d89cd63cba017d7aae80ecd7"
Expand Down Expand Up @@ -1950,6 +1964,14 @@ babel-plugin-polyfill-corejs3@^0.2.2:
"@babel/helper-define-polyfill-provider" "^0.2.2"
core-js-compat "^3.16.2"

babel-plugin-polyfill-corejs3@^0.5.2:
version "0.5.2"
resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.2.tgz#aabe4b2fa04a6e038b688c5e55d44e78cd3a5f72"
integrity sha512-G3uJih0XWiID451fpeFaYGVuxHEjzKTHtc9uGFEjR6hHrvNzeS/PX+LLLcetJcytsB5m4j+K3o/EpXJNb/5IEQ==
dependencies:
"@babel/helper-define-polyfill-provider" "^0.3.1"
core-js-compat "^3.21.0"

babel-plugin-polyfill-regenerator@^0.2.2:
version "0.2.2"
resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.2.2.tgz#b310c8d642acada348c1fa3b3e6ce0e851bee077"
Expand Down Expand Up @@ -2050,15 +2072,15 @@ browser-stdout@1.3.1:
resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60"
integrity sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==

browserslist@^4.14.5, browserslist@^4.16.6, browserslist@^4.17.3:
version "4.19.1"
resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.19.1.tgz#4ac0435b35ab655896c31d53018b6dd5e9e4c9a3"
integrity sha512-u2tbbG5PdKRTUoctO3NBD8FQ5HdPh1ZXPHzp1rwaa5jTc+RV9/+RlWiAIKmjRPQF+xbGM9Kklj5bZQFa2s/38A==
browserslist@^4.14.5, browserslist@^4.16.6, browserslist@^4.19.1:
version "4.20.2"
resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.20.2.tgz#567b41508757ecd904dab4d1c646c612cd3d4f88"
integrity sha512-CQOBCqp/9pDvDbx3xfMi+86pr4KXIf2FDkTTdeuYw8OxS9t898LA1Khq57gtufFILXpfgsSx5woNgsBgvGjpsA==
dependencies:
caniuse-lite "^1.0.30001286"
electron-to-chromium "^1.4.17"
caniuse-lite "^1.0.30001317"
electron-to-chromium "^1.4.84"
escalade "^3.1.1"
node-releases "^2.0.1"
node-releases "^2.0.2"
picocolors "^1.0.0"

buffer-from@^1.0.0:
Expand Down Expand Up @@ -2113,10 +2135,10 @@ camelcase@^6.0.0:
resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.2.0.tgz#924af881c9d525ac9d87f40d964e5cea982a1809"
integrity sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==

caniuse-lite@^1.0.30001286:
version "1.0.30001299"
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001299.tgz#d753bf6444ed401eb503cbbe17aa3e1451b5a68c"
integrity sha512-iujN4+x7QzqA2NCSrS5VUy+4gLmRd4xv6vbBBsmfVqTx8bLAD8097euLqQgKxSVLvxjSDcvF1T/i9ocgnUFexw==
caniuse-lite@^1.0.30001317:
version "1.0.30001317"
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001317.tgz#0548fb28fd5bc259a70b8c1ffdbe598037666a1b"
integrity sha512-xIZLh8gBm4dqNX0gkzrBeyI86J2eCjWzYAs40q88smG844YIrN4tVQl/RhquHvKEKImWWFIVh1Lxe5n1G/N+GQ==

chai-as-promised@^7.1.1:
version "7.1.1"
Expand Down Expand Up @@ -2346,23 +2368,23 @@ cookie@0.4.0:
resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.0.tgz#beb437e7022b3b6d49019d088665303ebe9c14ba"
integrity sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==

core-js-compat@^3.16.0, core-js-compat@^3.16.2:
version "3.18.2"
resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.18.2.tgz#e40c266fbd613948dd8d2d2156345da8ac03c142"
integrity sha512-25VJYCJtGjZwLguj7d66oiHfmnVw3TMOZ0zV8DyMJp/aeQ3OjR519iOOeck08HMyVVRAqXxafc2Hl+5QstJrsQ==
core-js-compat@^3.16.0, core-js-compat@^3.16.2, core-js-compat@^3.21.0:
version "3.21.1"
resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.21.1.tgz#cac369f67c8d134ff8f9bd1623e3bc2c42068c82"
integrity sha512-gbgX5AUvMb8gwxC7FLVWYT7Kkgu/y7+h/h1X43yJkNqhlK2fuYyQimqvKGNZFAY6CKii/GFKJ2cp/1/42TN36g==
dependencies:
browserslist "^4.17.3"
browserslist "^4.19.1"
semver "7.0.0"

core-js-pure@^3.0.0:
version "3.6.5"
resolved "https://registry.yarnpkg.com/core-js-pure/-/core-js-pure-3.6.5.tgz#c79e75f5e38dbc85a662d91eea52b8256d53b813"
integrity sha512-lacdXOimsiD0QyNf9BC/mxivNJ/ybBGJXQFKzRekp1WTHoVUWsUHEn+2T8GJAzzIhyOuXA+gOxCVN3l+5PLPUA==

core-js@^3.20.2:
version "3.20.2"
resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.20.2.tgz#46468d8601eafc8b266bd2dd6bf9dee622779581"
integrity sha512-nuqhq11DcOAbFBV4zCbKeGbKQsUDRqTX0oqx7AttUBuqe3h20ixsE039QHelbL6P4h+9kytVqyEtyZ6gsiwEYw==
core-js@^3.21.1:
version "3.21.1"
resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.21.1.tgz#f2e0ddc1fc43da6f904706e8e955bc19d06a0d94"
integrity sha512-FRq5b/VMrWlrmCzwRrpDYNxyHP9BcAZC+xHJaqTgIE5091ZV1NTmyh0sGOg5XqpnHvR0svdy0sv1gWA1zmhxig==

core-util-is@~1.0.0:
version "1.0.2"
Expand Down Expand Up @@ -2700,10 +2722,10 @@ ee-first@1.1.1:
resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d"
integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=

electron-to-chromium@^1.4.17:
version "1.4.43"
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.43.tgz#665c0cd8d5e7cce0ba78d90a514c8c813ca3bdbe"
integrity sha512-PO3kEfcxPrti/4STbXvCkNIF4fgWvCKl2508e6UI7KomCDffpIfeBZLXsh5DK/XGsjUw3kwq6WEsi0MJTlGAdg==
electron-to-chromium@^1.4.84:
version "1.4.85"
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.85.tgz#a3666ba42147026b9f34d4d8d4caf0740e80f751"
integrity sha512-K9AsQ41WS2bjZUFpRWfvaS4RjEcRCamEkBJN1Z1TQILBfP1H8QnJ9ti0wiLiMv0sRjX3EHKzgs9jDnmGFx2jXg==

element-closest@^2.0.1:
version "2.0.2"
Expand Down Expand Up @@ -3980,11 +4002,6 @@ jest-worker@^27.4.1:
merge-stream "^2.0.0"
supports-color "^8.0.0"

js-polyfills@^0.1.43:
version "0.1.43"
resolved "https://registry.yarnpkg.com/js-polyfills/-/js-polyfills-0.1.43.tgz#6ec32030b05dc71a4257a950d1c4eaf301bb8035"
integrity sha512-wWCJcw7uMA12uk7qcqZlIQy9nj+Evh1wVUmn5MOlJ7GPC8HT5PLjB9Uiqjw9ldAbbOuNOWJ6ENb7NwU6qqf48g==

"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
Expand Down Expand Up @@ -4527,10 +4544,10 @@ node-modules-regexp@^1.0.0:
resolved "https://registry.yarnpkg.com/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz#8d9dbe28964a4ac5712e9131642107c71e90ec40"
integrity sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA=

node-releases@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.1.tgz#3d1d395f204f1f2f29a54358b9fb678765ad2fc5"
integrity sha512-CqyzN6z7Q6aMeF/ktcMVTzhAHCEpf8SOarwpzpf8pNBY2k5/oM34UHldUwp8VKI7uxct2HxSRdJjBaZeESzcxA==
node-releases@^2.0.2:
version "2.0.2"
resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.2.tgz#7139fe71e2f4f11b47d4d2986aaf8c48699e0c01"
integrity sha512-XxYDdcQ6eKqp/YjI+tb2C5WM2LgjnZrfYg4vgQt49EK268b6gYCHsBLrK2qvJo4FmCtqmKezb0WZFK4fkrZNsg==

normalize-package-data@^2.5.0:
version "2.5.0"
Expand Down Expand Up @@ -4992,11 +5009,6 @@ process-nextick-args@~2.0.0:
resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2"
integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==

promise-polyfill@^8.2.3:
version "8.2.3"
resolved "https://registry.yarnpkg.com/promise-polyfill/-/promise-polyfill-8.2.3.tgz#2edc7e4b81aff781c88a0d577e5fe9da822107c6"
integrity sha512-Og0+jCRQetV84U8wVjMNccfGCnMQ9mGs9Hv78QFe+pSDD3gWTpz0y+1QCuxy5d/vBFuZ3iwP2eycAkvqIMPmWg==

prop-types@^15.8.1:
version "15.8.1"
resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.8.1.tgz#67d87bf1a694f48435cf332c24af10214a3140b5"
Expand Down