diff --git a/.gitignore b/.gitignore index f9df5df..adb4a04 100644 --- a/.gitignore +++ b/.gitignore @@ -14,6 +14,7 @@ client/coverage .DS_Store server/client-build/static +server/client-build/index.html server/client-build/asset-manifest.json server/client-build/precache-manifest.* diff --git a/client/package-lock.json b/client/package-lock.json index 30333f6..b21d3d3 100644 --- a/client/package-lock.json +++ b/client/package-lock.json @@ -4,6 +4,16 @@ "lockfileVersion": 1, "requires": true, "dependencies": { + "@adobe/react-spectrum-ui": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@adobe/react-spectrum-ui/-/react-spectrum-ui-1.0.1.tgz", + "integrity": "sha512-3RSX2hVWo4n7eUAkYBJmEySc5yfyWXLpQLiSKcOSGIXseD/1aUlPQxcYTdgj8gpRmJH7QghmoHeCjRviRfPXyg==" + }, + "@adobe/react-spectrum-workflow": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@adobe/react-spectrum-workflow/-/react-spectrum-workflow-1.0.1.tgz", + "integrity": "sha512-5BM+oJyP4vjmqAV/HSJYLJzR3wDDbEOMUZEEVeKJ81cKyq0aJ6qF9A9tmsW6jb/73cE7PpLr6vb+xqBqTOYsTw==" + }, "@babel/code-frame": { "version": "7.10.1", "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.10.1.tgz", @@ -59,11 +69,11 @@ } }, "@babel/generator": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.10.1.tgz", - "integrity": "sha512-AT0YPLQw9DI21tliuJIdplVfLHya6mcGa8ctkv7n4Qv+hYacJrKmNWIteAK1P9iyLikFIAkwqJ7HAOqIDLFfgA==", + "version": "7.10.2", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.10.2.tgz", + "integrity": "sha512-AxfBNHNu99DTMvlUPlt1h2+Hn7knPpH5ayJ8OqDWSeLld+Fi2AYBTC/IejWDM9Edcii4UzZRCsbUt0WlSDsDsA==", "requires": { - "@babel/types": "^7.10.1", + "@babel/types": "^7.10.2", "jsesc": "^2.5.1", "lodash": "^4.17.13", "source-map": "^0.5.0" @@ -106,9 +116,9 @@ } }, "@babel/helper-compilation-targets": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.10.1.tgz", - "integrity": "sha512-YuF8IrgSmX/+MV2plPkjEnzlC2wf+gaok8ehMNN0jodF3/sejZauExqpEVGbJua62oaWoNYIXwz4RmAsVcGyHw==", + "version": "7.10.2", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.10.2.tgz", + "integrity": "sha512-hYgOhF4To2UTB4LTaZepN/4Pl9LD4gfbJx8A34mqoluT8TLbof1mhUlYuNWTEebONa8+UlCC4X0TEXu7AOUyGA==", "requires": { "@babel/compat-data": "^7.10.1", "browserslist": "^4.12.0", @@ -125,9 +135,9 @@ } }, "@babel/helper-create-class-features-plugin": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.10.1.tgz", - "integrity": "sha512-bwhdehBJZt84HuPUcP1HaTLuc/EywVS8rc3FgsEPDcivg+DCW+SHuLHVkYOmcBA1ZfI+Z/oZjQc/+bPmIO7uAA==", + "version": "7.10.2", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.10.2.tgz", + "integrity": "sha512-5C/QhkGFh1vqcziq1vAL6SI9ymzUp8BCYjFpvYVhWP4DlATIb3u5q3iUd35mvlyGs8fO7hckkW7i0tmH+5+bvQ==", "requires": { "@babel/helper-function-name": "^7.10.1", "@babel/helper-member-expression-to-functions": "^7.10.1", @@ -320,9 +330,9 @@ } }, "@babel/parser": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.10.1.tgz", - "integrity": "sha512-AUTksaz3FqugBkbTZ1i+lDLG5qy8hIzCaAxEtttU6C0BtZZU9pkNZtWSVAht4EW9kl46YBiyTGMp9xTTGqViNg==" + "version": "7.10.2", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.10.2.tgz", + "integrity": "sha512-PApSXlNMJyB4JiGVhCOlzKIif+TKFTvu0aQAhnTvfP/z3vVSN6ZypH5bfUNwFXXjRQtUEBNFd2PtmCmG2Py3qQ==" }, "@babel/plugin-proposal-async-generator-functions": { "version": "7.10.1", @@ -932,12 +942,12 @@ } }, "@babel/preset-env": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.10.1.tgz", - "integrity": "sha512-bGWNfjfXRLnqbN2T4lB3pMfoic8dkRrmHpVZamSFHzGy5xklyHTobZ28TVUD2grhE5WDnu67tBj8oslIhkiOMQ==", + "version": "7.10.2", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.10.2.tgz", + "integrity": "sha512-MjqhX0RZaEgK/KueRzh+3yPSk30oqDKJ5HP5tqTSB1e2gzGS3PLy7K0BIpnp78+0anFuSwOeuCf1zZO7RzRvEA==", "requires": { "@babel/compat-data": "^7.10.1", - "@babel/helper-compilation-targets": "^7.10.1", + "@babel/helper-compilation-targets": "^7.10.2", "@babel/helper-module-imports": "^7.10.1", "@babel/helper-plugin-utils": "^7.10.1", "@babel/plugin-proposal-async-generator-functions": "^7.10.1", @@ -994,7 +1004,7 @@ "@babel/plugin-transform-unicode-escapes": "^7.10.1", "@babel/plugin-transform-unicode-regex": "^7.10.1", "@babel/preset-modules": "^0.1.3", - "@babel/types": "^7.10.1", + "@babel/types": "^7.10.2", "browserslist": "^4.12.0", "core-js-compat": "^3.6.2", "invariant": "^2.2.2", @@ -1045,9 +1055,9 @@ } }, "@babel/runtime": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.10.1.tgz", - "integrity": "sha512-nQbbCbQc9u/rpg1XCxoMYQTbSMVZjCDxErQ1ClCn9Pvcmv1lGads19ep0a2VsEiIJeHqjZley6EQGEC3Yo1xMA==", + "version": "7.10.2", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.10.2.tgz", + "integrity": "sha512-6sF3uQw2ivImfVIl62RZ7MXhO2tap69WeWK57vAaimT6AZbE4FbqjdEJIN1UqoD6wI6B+1n9UiagafH1sxjOtg==", "requires": { "regenerator-runtime": "^0.13.4" } @@ -1079,9 +1089,9 @@ } }, "@babel/types": { - "version": "7.10.1", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.1.tgz", - "integrity": "sha512-L2yqUOpf3tzlW9GVuipgLEcZxnO+96SzR6fjXMuxxNkIgFJ5+07mHCZ+HkHqaeZu8+3LKnNJJ1bKbjBETQAsrA==", + "version": "7.10.2", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.10.2.tgz", + "integrity": "sha512-AD3AwWBSz0AWF0AkCN9VPiWrvldXq+/e3cHa4J89vo4ymjz1XwrBFFVZmkJTsQIPNk+ZVomPSXUJqq8yyjZsng==", "requires": { "@babel/helper-validator-identifier": "^7.10.1", "lodash": "^4.17.13", @@ -1346,6 +1356,304 @@ "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz", "integrity": "sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw==" }, + "@react-aria/button": { + "version": "3.0.0-rc.2", + "resolved": "https://registry.npmjs.org/@react-aria/button/-/button-3.0.0-rc.2.tgz", + "integrity": "sha512-41utzwBgbdIWhvLge//6nxPdqYcYgKZT4eRLoOHo8sa1aOK5ygabA2lLRlzZ8dU4QI3mz/X/SaKmGfgRb2eR2g==", + "requires": { + "@babel/runtime": "^7.6.2", + "@react-aria/focus": "^3.0.0-rc.2", + "@react-aria/i18n": "^3.0.0-rc.2", + "@react-aria/interactions": "^3.0.0-rc.2", + "@react-aria/utils": "^3.0.0-rc.2", + "@react-types/button": "^3.0.0-rc.2" + } + }, + "@react-aria/focus": { + "version": "3.0.0-rc.2", + "resolved": "https://registry.npmjs.org/@react-aria/focus/-/focus-3.0.0-rc.2.tgz", + "integrity": "sha512-id0qYxPuQiMrGgKKiyqBHdUDmhyaR5742NNWdqoRCCAR7xTYgksWqqBXTFDiI3NSMt9FVb5DRG789UfT/9sHDQ==", + "requires": { + "@babel/runtime": "^7.6.2", + "@react-aria/interactions": "^3.0.0-rc.2", + "@react-aria/utils": "^3.0.0-rc.2", + "@react-types/shared": "^3.0.0-rc.2", + "classnames": "^2.2.5" + } + }, + "@react-aria/i18n": { + "version": "3.0.0-rc.2", + "resolved": "https://registry.npmjs.org/@react-aria/i18n/-/i18n-3.0.0-rc.2.tgz", + "integrity": "sha512-hpWl+AoR2yQfjXtGIiBSOKo5tv+kKAHGl0hlVs7NVdFPDMlypL9p0ONpi+U/oaz8zgZD4Bu0wTHoRBRs2SJp6g==", + "requires": { + "@babel/runtime": "^7.6.2", + "@react-types/shared": "^3.0.0-rc.2", + "intl-messageformat": "^2.2.0" + } + }, + "@react-aria/interactions": { + "version": "3.0.0-rc.2", + "resolved": "https://registry.npmjs.org/@react-aria/interactions/-/interactions-3.0.0-rc.2.tgz", + "integrity": "sha512-BX/miUtmTgnFiBUI8LN+XuhgmYs49wdHs/tb/lhSyCRJe+weoK17Ag3M14+GmtfOv1XZVVGtOskEg8KwCTwQow==", + "requires": { + "@babel/runtime": "^7.6.2", + "@react-aria/utils": "^3.0.0-rc.2", + "@react-types/shared": "^3.0.0-rc.2" + } + }, + "@react-aria/link": { + "version": "3.0.0-alpha.1", + "resolved": "https://registry.npmjs.org/@react-aria/link/-/link-3.0.0-alpha.1.tgz", + "integrity": "sha512-joGkB2QZaqDWb2mtJB3IvRa61/0bdqYMeDM3U9i+81Q/NX/zY4aZLWJM9ap0yghRzkG8dTSzPmp9OOyEnsyAFg==", + "requires": { + "@babel/runtime": "^7.6.2", + "@react-aria/interactions": "^3.0.0-rc.2", + "@react-aria/utils": "^3.0.0-rc.2", + "@react-types/link": "^3.0.0-alpha.1", + "@react-types/shared": "^3.0.0-rc.2" + } + }, + "@react-aria/overlays": { + "version": "3.0.0-alpha.1", + "resolved": "https://registry.npmjs.org/@react-aria/overlays/-/overlays-3.0.0-alpha.1.tgz", + "integrity": "sha512-yXyLI1Xn+dQt44CG2aLWZVvRhe3Ma9voq/W9l/erx2E2ZmO0l+38olP653FB+zMV9Kik0sOqaqy7dvZi4xkXXg==", + "requires": { + "@babel/runtime": "^7.6.2", + "@react-aria/i18n": "^3.0.0-rc.2", + "@react-aria/interactions": "^3.0.0-rc.2", + "@react-aria/utils": "^3.0.0-rc.2", + "@react-aria/visually-hidden": "^3.0.0-alpha.1", + "@react-types/overlays": "^3.0.0-alpha.1", + "dom-helpers": "^3.3.1" + } + }, + "@react-aria/utils": { + "version": "3.0.0-rc.2", + "resolved": "https://registry.npmjs.org/@react-aria/utils/-/utils-3.0.0-rc.2.tgz", + "integrity": "sha512-08mJVyXOMuSPg2eZ779QNUE3nRRtgF07iRz/Tsv8b6VbhNLA6coIxp4/XRgLf+iIHJ7L7JhaBZoStDKR+lqmQQ==", + "requires": { + "@babel/runtime": "^7.6.2", + "@react-types/shared": "^3.0.0-rc.2", + "classnames": "^2.2.5" + } + }, + "@react-aria/visually-hidden": { + "version": "3.0.0-alpha.1", + "resolved": "https://registry.npmjs.org/@react-aria/visually-hidden/-/visually-hidden-3.0.0-alpha.1.tgz", + "integrity": "sha512-0xzkagQUdtp5c5QeEJig5iWdrAk7bu6nM5ecIEFu1YzCnwd2o8B0jM6+2cfFnJDNCPiJbGukIbLhyOyZqtSYbg==", + "requires": { + "@babel/runtime": "^7.6.2", + "classnames": "^2.2.5" + } + }, + "@react-spectrum/button": { + "version": "3.0.0-rc.2", + "resolved": "https://registry.npmjs.org/@react-spectrum/button/-/button-3.0.0-rc.2.tgz", + "integrity": "sha512-HQnyXeD4RJhpTyfUQ4nvfmVR6UoQJEx2HoYyjB90x0EDsQlbIdH9xAo/r6/5dBZ/wnzo5b74cenZJMaX3jP3Qg==", + "requires": { + "@babel/runtime": "^7.6.2", + "@react-aria/button": "^3.0.0-rc.2", + "@react-aria/focus": "^3.0.0-rc.2", + "@react-aria/utils": "^3.0.0-rc.2", + "@react-spectrum/typography": "^3.0.0-alpha.1", + "@react-spectrum/utils": "^3.0.0-rc.2", + "@react-types/button": "^3.0.0-rc.2", + "@react-types/shared": "^3.0.0-rc.2", + "@spectrum-icons/ui": "^3.0.0-rc.2" + } + }, + "@react-spectrum/icon": { + "version": "3.0.0-rc.2", + "resolved": "https://registry.npmjs.org/@react-spectrum/icon/-/icon-3.0.0-rc.2.tgz", + "integrity": "sha512-9ZOsCxajYbbMzLANsjUg8YPedbIPIA3CtWmgjOnWB1mwQdWOovQMgpyFA2Nm5rYj1hN37YSv1qbV6Pm3Z61MqA==", + "requires": { + "@babel/runtime": "^7.6.2", + "@react-spectrum/utils": "^3.0.0-rc.2", + "@react-types/shared": "^3.0.0-rc.2" + } + }, + "@react-spectrum/image": { + "version": "3.0.0-alpha.1", + "resolved": "https://registry.npmjs.org/@react-spectrum/image/-/image-3.0.0-alpha.1.tgz", + "integrity": "sha512-eRXhPDcUn4+k4Yh+KnFPQOvNe7gFWaoadsyikUa1RwzRrShNyJE3ty/Qe4GQqSv//cZTwYUnh1MBmxQX5WfTmA==", + "requires": { + "@babel/runtime": "^7.6.2", + "@react-aria/utils": "^3.0.0-rc.2", + "@react-spectrum/utils": "^3.0.0-rc.2", + "@react-types/image": "^3.0.0-alpha.1" + } + }, + "@react-spectrum/layout": { + "version": "3.0.0-alpha.1", + "resolved": "https://registry.npmjs.org/@react-spectrum/layout/-/layout-3.0.0-alpha.1.tgz", + "integrity": "sha512-pCJLRzv+JQ2/ekQIDVjQSnXM7BvJc9BXN4OvBYsYEabuOextb8QP1VKXTHDOfR//goBNgh8VWqlrAr3aylP5kQ==", + "requires": { + "@babel/runtime": "^7.6.2", + "@react-aria/utils": "^3.0.0-rc.2", + "@react-spectrum/utils": "^3.0.0-rc.2", + "@react-types/layout": "^3.0.0-alpha.1", + "classnames": "^2.2.6" + } + }, + "@react-spectrum/link": { + "version": "3.0.0-alpha.1", + "resolved": "https://registry.npmjs.org/@react-spectrum/link/-/link-3.0.0-alpha.1.tgz", + "integrity": "sha512-qxHgmaTruwwHL+MhKbffiKvJyv26VVKLuLcSCuVnUSlY29ss5V3MtgjbD0p/XuzeNPnagbLPRWHDBj5P7FC0Bw==", + "requires": { + "@babel/runtime": "^7.6.2", + "@react-aria/focus": "^3.0.0-rc.2", + "@react-aria/link": "^3.0.0-alpha.1", + "@react-spectrum/utils": "^3.0.0-rc.2", + "@react-types/link": "^3.0.0-alpha.1" + } + }, + "@react-spectrum/provider": { + "version": "3.0.0-rc.2", + "resolved": "https://registry.npmjs.org/@react-spectrum/provider/-/provider-3.0.0-rc.2.tgz", + "integrity": "sha512-tOkkt1Q2OF8JuBmwLpoJAVv4IazleD3BGadVYkEWjoPGURnSIWVWyUiaABN8db6w8ovyHdh7vB2pc3ZTV/9xpQ==", + "requires": { + "@babel/runtime": "^7.6.2", + "@react-aria/i18n": "^3.0.0-rc.2", + "@react-aria/overlays": "^3.0.0-alpha.1", + "@react-spectrum/utils": "^3.0.0-rc.2", + "@react-types/provider": "^3.0.0-rc.2", + "@react-types/shared": "^3.0.0-rc.2", + "classnames": "^2.2.5" + } + }, + "@react-spectrum/theme-default": { + "version": "3.0.0-rc.2", + "resolved": "https://registry.npmjs.org/@react-spectrum/theme-default/-/theme-default-3.0.0-rc.2.tgz", + "integrity": "sha512-cY0wz9S+MdV7gfyrpl+c4iUOU9c6UX/dNL0snNmxFNnyI8rBLcoIPswKX0mkef/CS9vYMxOHAcGfVPehH5k9Ug==", + "requires": { + "@babel/runtime": "^7.6.2", + "@react-types/provider": "^3.0.0-rc.2" + } + }, + "@react-spectrum/typography": { + "version": "3.0.0-alpha.1", + "resolved": "https://registry.npmjs.org/@react-spectrum/typography/-/typography-3.0.0-alpha.1.tgz", + "integrity": "sha512-jOFrEcK4DpiHXWnPiZEio3dX2MQqr2kuuzZfwXS16HJAVzhUCv6nLUUrewFvhQ/Ga4AYjgW9CNPQ/dZHVA4hwg==", + "requires": { + "@babel/runtime": "^7.6.2", + "@react-aria/utils": "^3.0.0-rc.2", + "@react-spectrum/utils": "^3.0.0-rc.2", + "@react-types/typography": "^3.0.0-alpha.1" + } + }, + "@react-spectrum/utils": { + "version": "3.0.0-rc.2", + "resolved": "https://registry.npmjs.org/@react-spectrum/utils/-/utils-3.0.0-rc.2.tgz", + "integrity": "sha512-DimP2P6F5xlh+tVG0qvl1e0BZcoCwVzpNGLuuTOYFSf/JEUmtq2Iul+G3UOyloL7Ad+TrNCGIrMS1h1Pt2B6bw==", + "requires": { + "@babel/runtime": "^7.6.2", + "@react-aria/i18n": "^3.0.0-rc.2", + "@react-aria/utils": "^3.0.0-rc.2", + "@react-types/shared": "^3.0.0-rc.2", + "classnames": "^2.2.5" + } + }, + "@react-spectrum/view": { + "version": "3.0.0-alpha.1", + "resolved": "https://registry.npmjs.org/@react-spectrum/view/-/view-3.0.0-alpha.1.tgz", + "integrity": "sha512-S0TjkcOEVZNO+3J6gzqyac9QoaJ+P2ljSyuEkdO/bJrMMAgD7jb/Mdf+v4R2hTAbPOQqOZE5ko1Pe5Gda0XV6g==", + "requires": { + "@babel/runtime": "^7.6.2", + "@react-aria/i18n": "^3.0.0-rc.2", + "@react-spectrum/utils": "^3.0.0-rc.2", + "@react-types/shared": "^3.0.0-rc.2", + "@react-types/view": "^3.0.0-alpha.1" + } + }, + "@react-spectrum/well": { + "version": "3.0.0-rc.2", + "resolved": "https://registry.npmjs.org/@react-spectrum/well/-/well-3.0.0-rc.2.tgz", + "integrity": "sha512-zbPbSptluoP88frYBi/5KDlnex+BpNrNhk/JlxlDtKr450cFyQmwf5da5FEWcHseBiGj0frDyb1x+HF/9hV/+w==", + "requires": { + "@babel/runtime": "^7.6.2", + "@react-spectrum/utils": "^3.0.0-rc.2", + "@react-types/shared": "^3.0.0-rc.2", + "@react-types/well": "^3.0.0-rc.2" + } + }, + "@react-types/button": { + "version": "3.0.0-rc.2", + "resolved": "https://registry.npmjs.org/@react-types/button/-/button-3.0.0-rc.2.tgz", + "integrity": "sha512-NehJD5zwCfGHZgtL30QP8zIQMPCfqpDZ1zzwqCtUq1OCB0+WFciyrXFeeoSiNcJJX8sI/3bV45m5445Y32FagA==", + "requires": { + "@react-types/shared": "^3.0.0-rc.2" + } + }, + "@react-types/image": { + "version": "3.0.0-alpha.1", + "resolved": "https://registry.npmjs.org/@react-types/image/-/image-3.0.0-alpha.1.tgz", + "integrity": "sha512-fnyMPDuu56gyvxQwNfWvUi7rjaPGIk1Y+hAP/x3IrPDFsaE40oAqouQ2H0eihGaEK2gMvMYcsG6rCS0bmUPeZw==", + "requires": { + "@react-types/shared": "^3.0.0-rc.2" + } + }, + "@react-types/layout": { + "version": "3.0.0-alpha.1", + "resolved": "https://registry.npmjs.org/@react-types/layout/-/layout-3.0.0-alpha.1.tgz", + "integrity": "sha512-dx1HMsMlspWW6jVU+mkwBS6N8fl6TT1d1FFIG9r4c7N/i+OQxF+9IjYzmQsH/CdORrWfWEJyYWHm7rERlQnnKw==", + "requires": { + "@react-types/shared": "^3.0.0-rc.2" + } + }, + "@react-types/link": { + "version": "3.0.0-alpha.1", + "resolved": "https://registry.npmjs.org/@react-types/link/-/link-3.0.0-alpha.1.tgz", + "integrity": "sha512-u60Cx7IZDzt/yUqb2eq24uHTeZ63OML7tFT0s0i7Lx/X2RW+uC/tcJ5b//PjAplxQevjzy9wrEIXM+YAznhyDA==", + "requires": { + "@react-aria/interactions": "^3.0.0-rc.2", + "@react-types/shared": "^3.0.0-rc.2" + } + }, + "@react-types/overlays": { + "version": "3.0.0-alpha.1", + "resolved": "https://registry.npmjs.org/@react-types/overlays/-/overlays-3.0.0-alpha.1.tgz", + "integrity": "sha512-gFGiAnNfDurRQNWaH5jkn9tDGvvnBGEb40CMLUOrB5TylgJawFuhx+IJ/0DPOEzFKRbY/Y7E+DddZ73LJaewcA==", + "requires": { + "@react-types/shared": "^3.0.0-rc.2" + } + }, + "@react-types/provider": { + "version": "3.0.0-rc.2", + "resolved": "https://registry.npmjs.org/@react-types/provider/-/provider-3.0.0-rc.2.tgz", + "integrity": "sha512-RTt+NsBEHzAoWc7k0Eipulhm52jb/GNKXa6COgE5V7+vmo1RACJMR55bGChGHyCZABZ1+OCv15Re0g7kkXWJnA==", + "requires": { + "@react-types/shared": "^3.0.0-rc.2" + } + }, + "@react-types/shared": { + "version": "3.0.0-rc.2", + "resolved": "https://registry.npmjs.org/@react-types/shared/-/shared-3.0.0-rc.2.tgz", + "integrity": "sha512-P6cawIHarCsBZU+E+iFCuhNhhvd+inulqyJtZ2huaXhD8Po+D5Hlk7yGiHT8SS5HaXsjAPgtzB5bwAW5trBUFQ==" + }, + "@react-types/typography": { + "version": "3.0.0-alpha.1", + "resolved": "https://registry.npmjs.org/@react-types/typography/-/typography-3.0.0-alpha.1.tgz", + "integrity": "sha512-y4Kgp4+SF2TdSkzXDMsoUTn8j+UVXWficQ1pjhaGjeQyUmjd6epHABc15huLt9Webp30ql+3YDrEosc4IAD8aQ==", + "requires": { + "@react-types/shared": "^3.0.0-rc.2" + } + }, + "@react-types/view": { + "version": "3.0.0-alpha.1", + "resolved": "https://registry.npmjs.org/@react-types/view/-/view-3.0.0-alpha.1.tgz", + "integrity": "sha512-B8SpBLn+njeunJic9zJxHKt/ne+mEPnLGqS8mI0Warlzijd7JGAxqCdCfaqLociY7qSMc7T/bQgOxLPV2uJqJA==", + "requires": { + "@react-types/shared": "^3.0.0-rc.2" + } + }, + "@react-types/well": { + "version": "3.0.0-rc.2", + "resolved": "https://registry.npmjs.org/@react-types/well/-/well-3.0.0-rc.2.tgz", + "integrity": "sha512-gieBS8zyTf2qUrxtRdzLcZ531ewtzmBltx/QA0D0Jd7fLZa22/QwWRt4aBdlGd9+/PaVJltCMsuaSn1ShfXX/A==", + "requires": { + "@react-types/shared": "^3.0.0-rc.2" + } + }, "@react/collection-view": { "version": "4.1.6", "resolved": "https://artifactory.corp.adobe.com:443/artifactory/api/npm/npm-react-release/@react/collection-view/-/@react/collection-view-4.1.6.tgz", @@ -1372,6 +1680,24 @@ "semver-compare": "^1.0.0" } }, + "@spectrum-icons/ui": { + "version": "3.0.0-rc.2", + "resolved": "https://registry.npmjs.org/@spectrum-icons/ui/-/ui-3.0.0-rc.2.tgz", + "integrity": "sha512-rx2UNMhRK+65OTxbwSMG9HJLK/FyCDgPOfLHu1ugvcvwqror7hlg/yhcXWYX90cNVwokbxyU+20TcZsazKyOgQ==", + "requires": { + "@adobe/react-spectrum-ui": "^1.0.0", + "@react-spectrum/icon": "^3.0.0-rc.2" + } + }, + "@spectrum-icons/workflow": { + "version": "3.0.0-rc.2", + "resolved": "https://registry.npmjs.org/@spectrum-icons/workflow/-/workflow-3.0.0-rc.2.tgz", + "integrity": "sha512-uW5kznHFnZ/WDPaNU7DG38ZfEbOex3aEd+R4M3JsGc+F7HYL6ifE6Nc7W9zGfgvSTMxPYCBQGweapyLcynDAtA==", + "requires": { + "@adobe/react-spectrum-workflow": "^1.0.0", + "@react-spectrum/icon": "^3.0.0-rc.2" + } + }, "@svgr/babel-plugin-add-jsx-attribute": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/@svgr/babel-plugin-add-jsx-attribute/-/babel-plugin-add-jsx-attribute-4.2.0.tgz", @@ -1488,9 +1814,9 @@ "dev": true }, "@types/babel__core": { - "version": "7.1.7", - "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.7.tgz", - "integrity": "sha512-RL62NqSFPCDK2FM1pSDH0scHpJvsXtZNiYlMB73DgPBaG1E38ZYVL+ei5EkWRbr+KC4YNiAUNBnRj+bgwpgjMw==", + "version": "7.1.8", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.8.tgz", + "integrity": "sha512-KXBiQG2OXvaPWFPDS1rD8yV9vO0OuWIqAEqLsbfX0oU2REN5KuoMnZ1gClWcBhO5I3n6oTVAmrMufOvRqdmFTQ==", "requires": { "@babel/parser": "^7.1.0", "@babel/types": "^7.0.0", @@ -1517,9 +1843,9 @@ } }, "@types/babel__traverse": { - "version": "7.0.11", - "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.0.11.tgz", - "integrity": "sha512-ddHK5icION5U6q11+tV2f9Mo6CZVuT8GJKld2q9LqHSZbvLbH34Kcu2yFGckZut453+eQU6btIA3RihmnRgI+Q==", + "version": "7.0.12", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.0.12.tgz", + "integrity": "sha512-t4CoEokHTfcyfb4hUaF9oOHu9RmmNWnm1CP0YmMqOOfClKascOmvlEM736vlqeScuGvBDsHkf8R2INd4DWreQA==", "requires": { "@babel/types": "^7.3.0" } @@ -1534,17 +1860,11 @@ "resolved": "https://registry.npmjs.org/@types/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz", "integrity": "sha512-OCutwjDZ4aFS6PB1UZ988C4YgwlBHJd6wCeQqaLdmadZ/7e+w79+hbMUFC1QXDNCmdyoRfAFdm0RypzwR+Qpag==" }, - "@types/events": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/@types/events/-/events-3.0.0.tgz", - "integrity": "sha512-EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g==" - }, "@types/glob": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.1.tgz", - "integrity": "sha512-1Bh06cbWJUHMC97acuD6UMG29nMt0Aqz1vF3guLfG+kHHJhy3AyohZFFxYk2f7Q1SQIrNwvncxAE0N/9s70F2w==", + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-VgNIkxK+j7Nz5P7jvUZlRvhuPSmsEfS03b0alKcq5V/STUKAa3Plemsn5mrQUO7am6OErJ4rhGEGJbACclrtRA==", "requires": { - "@types/events": "*", "@types/minimatch": "*", "@types/node": "*" } @@ -1582,9 +1902,9 @@ "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==" }, "@types/node": { - "version": "14.0.5", - "resolved": "https://registry.npmjs.org/@types/node/-/node-14.0.5.tgz", - "integrity": "sha512-90hiq6/VqtQgX8Sp0EzeIsv3r+ellbGj4URKj5j30tLlZvRUpnAe9YbYnjl3pJM93GyXU0tghHhvXHq+5rnCKA==" + "version": "14.0.11", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.0.11.tgz", + "integrity": "sha512-lCvvI24L21ZVeIiyIUHZ5Oflv1hhHQ5E1S25IRlKIXaRkVgmXpJMI3wUJkmym2bTbCe+WoIibQnMVAU3FguaOg==" }, "@types/parse-json": { "version": "4.0.0", @@ -3191,9 +3511,9 @@ } }, "caniuse-lite": { - "version": "1.0.30001066", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001066.tgz", - "integrity": "sha512-Gfj/WAastBtfxLws0RCh2sDbTK/8rJuSeZMecrSkNGYxPcv7EzblmDGfWQCFEQcSqYE2BRgQiJh8HOD07N5hIw==" + "version": "1.0.30001077", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001077.tgz", + "integrity": "sha512-AEzsGvjBJL0lby/87W96PyEvwN0GsYvk5LHsglLg9tW37K4BqvAvoSCdWIE13OZQ8afupqZ73+oL/1LkedN8hA==" }, "capture-exit": { "version": "2.0.0", @@ -3943,9 +4263,9 @@ } }, "css-what": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-3.2.1.tgz", - "integrity": "sha512-WwOrosiQTvyms+Ti5ZC5vGEK0Vod3FTt1ca+payZqvKuGJF+dq7bG63DstxtN0dpm6FxY27a/zS3Wten+gEtGw==" + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-3.3.0.tgz", + "integrity": "sha512-pv9JPyatiPaQ6pf4OvD/dbfm0o5LviWmwxNWzblYf/1u9QZd0ihV+PMwy5jdQWQ3349kZmKEx9WXuSka2dM4cg==" }, "cssdb": { "version": "4.4.0", @@ -4532,9 +4852,9 @@ "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=" }, "electron-to-chromium": { - "version": "1.3.453", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.453.tgz", - "integrity": "sha512-IQbCfjJR0NDDn/+vojTlq7fPSREcALtF8M1n01gw7nQghCtfFYrJ2dfhsp8APr8bANoFC8vRTFVXMOGpT0eetw==" + "version": "1.3.460", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.460.tgz", + "integrity": "sha512-9nOPN0KoGUim2cDV2I1JWoWnxfC9o8z0ictsPnpNPhJD8NVZVW8DDacyrmIobwgY6Xaxn0TgVuUYXXmov8mPGg==" }, "elliptic": { "version": "6.5.2", @@ -4624,9 +4944,9 @@ } }, "entities": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.0.2.tgz", - "integrity": "sha512-dmD3AvJQBUjKpcNkoqr+x+IF0SdRtPz9Vk0uTy4yWqga9ibB6s4v++QFWNohjiUGoMlF552ZvNyXDxz5iW0qmw==" + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.0.3.tgz", + "integrity": "sha512-MyoZ0jgnLvB2X3Lg5HqpFmn1kybDiIfEQmKzTb5apr51Rb+T3KdmMiqa70T+bhGnyv7bQ6WMj2QMHpGMmlrUYQ==" }, "errno": { "version": "0.1.7", @@ -4712,9 +5032,9 @@ "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" }, "escodegen": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.1.tgz", - "integrity": "sha512-Bmt7NcRySdIfNPfU2ZoXDrrXsG9ZjvDxcAlMfDUgRBjLOWTuIACXPBFJH7Z+cLb40JeQco5toikyc9t9P8E9SQ==", + "version": "1.14.2", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.14.2.tgz", + "integrity": "sha512-InuOIiKk8wwuOFg6x9BQXbzjrQhtyXh46K9bqVTPzSo2FnyMBaYGBMC6PhQy7yxxil9vIedFBweQBMK74/7o8A==", "requires": { "esprima": "^4.0.1", "estraverse": "^4.2.0", @@ -5045,9 +5365,9 @@ "integrity": "sha512-iXTCFcOmlWvw4+TOE8CLWj6yX1GwzT0Y6cUfHHZqWnSk144VmVIRcVGtUAzrLES7C798lmvnt02C7rxaOX1HNA==" }, "eslint-scope": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.0.0.tgz", - "integrity": "sha512-oYrhJW7S0bxAFDvWqzvMPRm6pcgcnWc4QnofCAqRTRfQC0JcwenzGglTtsLyIuuWFfkqDG9vz67cnttSd53djw==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.0.tgz", + "integrity": "sha512-iiGRvtxWqgtx5m8EyQUJihBloE4EnYeGE/bz1wSPwJE6tZuJUtHlhqDM4Xj2ukE8Dyy1+HCZ4hE0fzIVMzb58w==", "requires": { "esrecurse": "^4.1.0", "estraverse": "^4.1.1" @@ -5062,9 +5382,9 @@ } }, "eslint-visitor-keys": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.1.0.tgz", - "integrity": "sha512-8y9YjtM1JBJU/A9Kc+SbaOV4y29sSWckBwMHa+FGtVj5gN/sbnKDf6xJUl+8g7FAij9LVaP8C24DUiH/f/2Z9A==" + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.2.0.tgz", + "integrity": "sha512-WFb4ihckKil6hu3Dp798xdzSfddwKKU3+nGniKF6HfeW6OLd2OUDEPP7TcHtB5+QXOKg2s6B2DaMPE1Nn/kxKQ==" }, "espree": { "version": "6.2.1", @@ -6623,9 +6943,9 @@ "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" }, "is-callable": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz", - "integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q==" + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.0.tgz", + "integrity": "sha512-pyVD9AaGLxtg6srb2Ng6ynWJqkHU9bEM087AKck0w8QwDarTfNcpIYoU8x8Hv2Icm8u6kFJM18Dag8lyqGkviw==" }, "is-ci": { "version": "2.0.0", @@ -6764,11 +7084,11 @@ } }, "is-regex": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz", - "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==", + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.0.tgz", + "integrity": "sha512-iI97M8KTWID2la5uYXlkbSDQIg4F6o1sYboZKKTDpnDQMLtUL86zxhgDet3Q2SriaYsyGqZ6Mn2SjbRKeLHdqw==", "requires": { - "has": "^1.0.3" + "has-symbols": "^1.0.1" } }, "is-regexp": { @@ -7972,9 +8292,9 @@ "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" }, "merge2": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.3.0.tgz", - "integrity": "sha512-2j4DAdlBOkiSZIsaXk4mTE3sRS02yBHAtfy127xRV3bQUFqXkjHCHLW6Scv7DwNRbIWNHH8zpnz9zMaKXIdvYw==" + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==" }, "methods": { "version": "1.1.2", @@ -8422,9 +8742,9 @@ } }, "node-releases": { - "version": "1.1.57", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.57.tgz", - "integrity": "sha512-ZQmnWS7adi61A9JsllJ2gdj2PauElcjnOwTp2O011iGzoakTxUsDGSe+6vD7wXbKdqhSFymC0OSx35aAMhrSdw==" + "version": "1.1.58", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.58.tgz", + "integrity": "sha512-NxBudgVKiRh/2aPWMgPR7bPTX0VPmGx5QBwCtdHitnqFE5/O8DeBXuIMH1nwNnw/aMo6AjOrpsHzfY3UbUJ7yg==" }, "normalize-package-data": { "version": "2.5.0", @@ -8960,9 +9280,9 @@ } }, "pbkdf2": { - "version": "3.0.17", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.0.17.tgz", - "integrity": "sha512-U/il5MsrZp7mGg3mSQfn742na2T+1/vHDCG5/iTI3X9MKUuYUZVLQhyRsg06mCgDBTd57TxzgZt7P+fYfjRLtA==", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.1.tgz", + "integrity": "sha512-4Ejy1OPxi9f2tt1rRV7Go7zmfDQ+ZectEQz3VGUQhgq62HtIRPDyG/JtnwIxs6x3uNMwo2V7q1fMvKjb+Tnpqg==", "requires": { "create-hash": "^1.1.2", "create-hmac": "^1.1.4", @@ -9102,9 +9422,9 @@ "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=" }, "postcss": { - "version": "7.0.31", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.31.tgz", - "integrity": "sha512-a937VDHE1ftkjk+8/7nj/mrjtmkn69xxzJgRETXdAUU+IgOYPQNJF17haGWbeDxSyk++HA14UA98FurvPyBJOA==", + "version": "7.0.32", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.32.tgz", + "integrity": "sha512-03eXong5NLnNCD05xscnGKGDZ98CyzoqPSMjOe6SuoQY7Z2hIj0Ld1g/O/UQRuOle2aRtiIRDg9tDcTGAkLfKw==", "requires": { "chalk": "^2.4.2", "source-map": "^0.6.1", @@ -10787,9 +11107,9 @@ } }, "regenerate": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.0.tgz", - "integrity": "sha512-1G6jJVDWrt0rK99kBjvEtziZNCICAuvIPkSiUFIQxVP06RCVpq3dmDo2oi6ABpYaDYaTRr67BEhL8r1wgEZZKg==" + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.1.tgz", + "integrity": "sha512-j2+C8+NtXQgEKWk49MMP5P/u2GhnahTtVkRIHr5R5lVRlbKvmQ+oS+A5aLKWp2ma5VkT8sh6v+v4hbH0YHR66A==" }, "regenerate-unicode-properties": { "version": "8.2.0", @@ -11301,11 +11621,12 @@ } }, "schema-utils": { - "version": "2.6.6", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.6.6.tgz", - "integrity": "sha512-wHutF/WPSbIi9x6ctjGGk2Hvl0VOz5l3EKEuKbjPlB30mKZUzb9A5k9yEXRX3pwyqVLPvpfZZEllaFq/M718hA==", + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.0.tgz", + "integrity": "sha512-0ilKFI6QQF5nxDZLFn2dMjvc4hjg/Wkg7rHd3jK6/A4a1Hl9VFdQWvgB1UMGoU94pad1P/8N7fMcEnLnSiju8A==", "requires": { - "ajv": "^6.12.0", + "@types/json-schema": "^7.0.4", + "ajv": "^6.12.2", "ajv-keywords": "^3.4.1" } }, @@ -12872,9 +13193,9 @@ "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==" }, "v8-compile-cache": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.1.0.tgz", - "integrity": "sha512-usZBT3PW+LOjM25wbqIlZwPeJV+3OSz3M1k1Ws8snlW39dZyYL9lOGC5FgPVHfk0jKmjiDV8Z0mIbVQPiwFs7g==" + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.1.1.tgz", + "integrity": "sha512-8OQ9CL+VWyt3JStj7HX7/ciTL2V3Rl1Wf5OL+SNTm0yK1KvtReVulksyeRnCANHHuUxHlQig+JJDlUhBt1NQDQ==" }, "validate-npm-package-license": { "version": "3.0.4", @@ -13162,6 +13483,14 @@ "ajv-keywords": "^3.1.0" } }, + "serialize-javascript": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-3.1.0.tgz", + "integrity": "sha512-JIJT1DGiWmIKhzRsG91aS6Ze4sFUrYbltlkg2onR5OrnNM02Kl/hnY/T4FN2omvyeBbQmMJv+K4cPOpGzOTFBg==", + "requires": { + "randombytes": "^2.1.0" + } + }, "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", @@ -13176,15 +13505,15 @@ } }, "terser-webpack-plugin": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.3.tgz", - "integrity": "sha512-QMxecFz/gHQwteWwSo5nTc6UaICqN1bMedC5sMtUc7y3Ha3Q8y6ZO0iCR8pq4RJC8Hjf0FEPEHZqcMB/+DFCrA==", + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.4.tgz", + "integrity": "sha512-U4mACBHIegmfoEe5fdongHESNJWqsGU+W0S/9+BmYGVQDw1+c2Ow05TpMhxjPK1sRb7cuYq1BPl1e5YHJMTCqA==", "requires": { "cacache": "^12.0.2", "find-cache-dir": "^2.1.0", "is-wsl": "^1.1.0", "schema-utils": "^1.0.0", - "serialize-javascript": "^2.1.2", + "serialize-javascript": "^3.1.0", "source-map": "^0.6.1", "terser": "^4.1.2", "webpack-sources": "^1.4.0", @@ -13607,9 +13936,9 @@ } }, "websocket-extensions": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.3.tgz", - "integrity": "sha512-nqHUnMXmBzT0w570r2JpJxfiSD1IzoI+HGVdd3aZ0yNi3ngvQ4jv1dtHt5VGxfI2yj5yqImPhOK4vmIh2xMbGg==" + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", + "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==" }, "whatwg-encoding": { "version": "1.0.5", diff --git a/client/package.json b/client/package.json index d21aa10..c7c6185 100644 --- a/client/package.json +++ b/client/package.json @@ -3,7 +3,17 @@ "version": "0.1.0", "private": true, "dependencies": { + "@react-spectrum/button": "^3.0.0-rc.2", + "@react-spectrum/icon": "^3.0.0-rc.2", + "@react-spectrum/image": "^3.0.0-alpha.1", + "@react-spectrum/layout": "^3.0.0-alpha.1", + "@react-spectrum/link": "^3.0.0-alpha.1", + "@react-spectrum/provider": "^3.0.0-rc.2", + "@react-spectrum/theme-default": "^3.0.0-rc.2", + "@react-spectrum/view": "^3.0.0-alpha.1", + "@react-spectrum/well": "^3.0.0-rc.2", "@react/react-spectrum": "^2.28.0", + "@spectrum-icons/workflow": "^3.0.0-rc.2", "ace-builds": "^1.4.8", "ajv": "^6.12.0", "babel-polyfill": "^6.26.0", diff --git a/client/src/App.js b/client/src/App.js index 5cb53b7..bf073a7 100755 --- a/client/src/App.js +++ b/client/src/App.js @@ -14,8 +14,13 @@ governing permissions and limitations under the License. import React from 'react'; // Importing react-spectrum components -import Well from '@react/react-spectrum/Well'; -import Button from '@react/react-spectrum/Button'; +import {Well} from '@react-spectrum/well'; +import {Button} from '@react-spectrum/button'; +// import {Image} from '@react-spectrum/image'; +// import {Flex} from '@react-spectrum/layout' +// import {Header, View} from '@react-spectrum/view' + + import {Toast} from '@react/react-spectrum/Toast'; import Heading from '@react/react-spectrum/Heading'; import {Image} from '@react/react-spectrum/Image'; @@ -398,11 +403,15 @@ export default class NormalDisplay extends React.Component { minWidth: '500px', marginBottom: '1em', overflow: 'scroll', padding: '1rem'}}> + {/* choose file and add new file */} - + {this.handleTextChange(v)}} onRun={this.run}/> diff --git a/client/src/components/Environment/Environment.jsx b/client/src/components/Environment/Environment.jsx deleted file mode 100644 index 9109a32..0000000 --- a/client/src/components/Environment/Environment.jsx +++ /dev/null @@ -1,121 +0,0 @@ -/* -Copyright 2020 Adobe. All rights reserved. -This file is licensed to you under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. You may obtain a copy -of the License at http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software distributed under -the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS -OF ANY KIND, either express or implied. See the License for the specific language -governing permissions and limitations under the License. -*/ - -import React, { Component } from 'react'; - -import '@react/react-spectrum/page'; -import StatusLight from '@react/react-spectrum/StatusLight' -import DropdownButton from '@react/react-spectrum/DropdownButton'; -import {MenuItem} from '@react/react-spectrum/Menu'; -import Tooltip from '@react/react-spectrum/Tooltip'; -import {Toast} from '@react/react-spectrum/Toast'; -import OverlayTrigger from '@react/react-spectrum/OverlayTrigger/js/OverlayTrigger'; - -const lights = {'prod':'celery', 'stage':'info', 'qe': 'notice', 'dev':"yellow", 'custom':"magenta"} -const ENVIRONMENTS = { prod: "asset-compute.adobe.io", - stage: "asset-compute-stage.adobe.io", - qe: "asset-compute-qe.adobe.io", - dev:`asset-compute-dev.adobe.io/`, - custom:'custom' } - -export default class Environment extends Component { - constructor(props){ - super(props); - this.state = { - status: this.props.env || localStorage.env || 'stage', - color: localStorage.color || 'info', - dev: this.props.dev || localStorage.dev, - endpoint: ENVIRONMENTS[this.props.dev] || ENVIRONMENTS.stage, - error: '', - } - } - hideToast() { - this.setState({error:''}) - } - - select(v) { - if (v.substring(0,3) === 'dev' && (!this.state.dev || this.state.dev.length <=0)) { - this.setState({error: - Error! Please set the development environment name in settings - }) - return; - } - else if (v.substring(0,3) === 'dev') { - this.setState({status:v, color:'yellow', endpoint: `${ENVIRONMENTS.dev}${this.props.dev}`}); - localStorage.setItem('color', 'yellow'); - localStorage.setItem('endpoint', `${ENVIRONMENTS.dev}${this.props.dev}`) - } - else { - this.setState({status:v, color:lights[v], endpoint: ENVIRONMENTS[v]}); - console.log('changing enviroment to ', v) - localStorage.setItem('color', lights[v]); - localStorage.setItem('endpoint', ENVIRONMENTS[v]) - } - localStorage.setItem('env', v); - } - render() { - return ( -
- - {this.state.status}}> - - - - prod - asset-compute.adobe.io - - - - - - - stage - - asset-compute-stage.adobe.io - - - - - - - qe - - asset-compute-qe.adobe.io - - - - - - - dev - - asset-compute-dev.adobe.io/{this.props.dev} - - - - - - custom - - {localStorage.getItem('openwhisk-url')} - - - - -
-

{this.state.error}

-
- - ); - }} diff --git a/client/src/components/Environment/__tests__/enviroment.test.js b/client/src/components/Environment/__tests__/enviroment.test.js deleted file mode 100644 index 304ffb8..0000000 --- a/client/src/components/Environment/__tests__/enviroment.test.js +++ /dev/null @@ -1,25 +0,0 @@ -/************************************************************************* -* ADOBE CONFIDENTIAL -* ___________________ -* -* Copyright 2019 Adobe -* All Rights Reserved. -* -* NOTICE: All information contained herein is, and remains -* the property of Adobe and its suppliers, if any. The intellectual -* and technical concepts contained herein are proprietary to Adobe -* and its suppliers and are protected by all applicable intellectual -* property laws, including trade secret and copyright laws. -* Dissemination of this information or reproduction of this material -* is strictly forbidden unless prior written permission is obtained -* from Adobe. -**************************************************************************/ - -'use strict'; -import React from 'react'; -import ReactDOM from 'react-dom'; -import Environment from '../Environment'; -it('renders without crashing', () => { - const div = document.createElement('div'); - ReactDOM.render(, div); -}); \ No newline at end of file diff --git a/client/src/components/FileChooser/ChooseFileBox.jsx b/client/src/components/FileChooser/ChooseFileBox.jsx index cc06c96..09814f2 100644 --- a/client/src/components/FileChooser/ChooseFileBox.jsx +++ b/client/src/components/FileChooser/ChooseFileBox.jsx @@ -12,14 +12,16 @@ governing permissions and limitations under the License. import React, { Component } from 'react'; -// Importing react-spectrum global page styles - -import Well from '@react/react-spectrum/Well'; -import Button from '@react/react-spectrum/Button'; +// v3 +import {Well} from '@react-spectrum/well'; +import {ActionButton} from '@react-spectrum/button'; +import {Icon} from '@react-spectrum/icon'; +import AddCircle from '@spectrum-icons/workflow//AddCircle'; +import Image from '@spectrum-icons/workflow//Image'; + +// v2 import OverlayTrigger from '@react/react-spectrum/OverlayTrigger'; import Popover from '@react/react-spectrum/Popover'; -import AddCircle from '@react/react-spectrum/Icon/AddCircle'; -import Image from '@react/react-spectrum/Icon/Image'; import ComboBox from '@react/react-spectrum/ComboBox'; export default class ChooseFileBox extends Component { @@ -164,8 +166,12 @@ export default class ChooseFileBox extends Component { render () { return (
- -
) diff --git a/client/src/components/FileFormat/index.js b/client/src/components/FileFormat/index.js deleted file mode 100644 index b3e135c..0000000 --- a/client/src/components/FileFormat/index.js +++ /dev/null @@ -1,13 +0,0 @@ -/* -Copyright 2020 Adobe. All rights reserved. -This file is licensed to you under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. You may obtain a copy -of the License at http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software distributed under -the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS -OF ANY KIND, either express or implied. See the License for the specific language -governing permissions and limitations under the License. -*/ - -module.exports = require('./js/FileFormatTable'); diff --git a/client/src/components/FileFormat/js/FileFormatDataSource.jsx b/client/src/components/FileFormat/js/FileFormatDataSource.jsx deleted file mode 100644 index ecca9f3..0000000 --- a/client/src/components/FileFormat/js/FileFormatDataSource.jsx +++ /dev/null @@ -1,251 +0,0 @@ -/* -Copyright 2020 Adobe. All rights reserved. -This file is licensed to you under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. You may obtain a copy -of the License at http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software distributed under -the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS -OF ANY KIND, either express or implied. See the License for the specific language -governing permissions and limitations under the License. -*/ - -import ListDataSource from '@react/react-spectrum/ListDataSource'; - -/** - * Returns an object that provides the output formats and supported capabilities - * grouped by category, input format. - * - * Usage: result.get(category).input.get(format) -> { records: [] } - * - * @param {Object} rawData Fetched data - * @return Data grouped by category, format - */ -function groupByCategoryFormat(rawData) { - const formatCategory = new Map(); - for (const category of rawData.categories) { - for (const format of category.formats) { - formatCategory.set(format, category.name); - } - } - - const result = new Map(); - for (const worker of rawData.workers) { - for (const inputFormat of worker.input) { - const category = formatCategory.get(inputFormat) || 'Not Categorized'; - const record = { - output: new Map((worker.output || []).map(x => [x, { - workerName: worker.name, - workerUrl: worker.url, - supported: "supported" - }])), - capabilities: new Map((worker.capabilities || []).map(x => [x, { - workerName: worker.name, - workerUrl: worker.url, - supported: "supported" - }])) - }; - - const { input } = result.get(category) || { input: new Map() }; - const { records } = input.get(inputFormat) || { records: [] }; - records.push(record); - input.set(inputFormat, { records }); - result.set(category, { input }); - } - } - return result; -} - -/** - * Merge two output format or capability maps to create a summary whether a given - * output format or capability is supported for all input formats in a category. - * - * @param {Map} map1 Output format or capability map - * @param {Map} map2 Output format or capability map - */ -function mergeSummaryMaps(map1, map2) { - const result = new Map(); - const keys = new Set([...Array.from(map1.keys()), ...Array.from(map2.keys())]); - for (const key of keys) { - const value1 = map1.get(key); - const value2 = map2.get(key); - if (value1 && (value1.supported === 'supported') && value2 && (value2.supported === 'supported')) { - result.set(key, { - supported: 'supported' - }); - } else { - result.set(key, { - supported: 'partially' - }); - } - } - return result; -} - -/** - * For a given input format, generate a new output format and capability record - * that contains which worker supports to given output format or capability. - * - * @param {Object} records Workers that support an input format - */ -function categoryInputSummary(records) { - const result = { - output: new Map(), - capabilities: new Map() - }; - for (const record of records) { - for (const [key, value] of record.output) { - if (!result.output.get(key)) { - result.output.set(key, value); - } - } - for (const [key, value] of record.capabilities) { - if (!result.capabilities.get(key)) { - result.capabilities.set(key, value); - } - } - } - return result; -} - -/** - * Summarize the output and capabilities for a given category - * - * @param {Map} input Map of format name -> object - * @returns {Object} with merged output and capabilities. - */ -function categorySummary(input) { - let result; - for (const { records } of input.values()) { - const record = categoryInputSummary(records); - if (!result) { - result = { - output: new Map(record.output), - capabilities: new Map(record.capabilities) - } - } else { - result.output = mergeSummaryMaps(result.output, record.output); - result.capabilities = mergeSummaryMaps(result.capabilities, record.capabilities); - } - } - return result; -} - -/** - * Create data derived from the raw data for use in data source - * - * @param {Object} rawData Data retrieved from workers - */ -function createDataSourceData(rawData) { - const result = groupByCategoryFormat(rawData); - for (const category of result.values()) { - category.summary = categorySummary(category.input); - for (const input of category.input.values()) { - input.summary = categoryInputSummary(input.records); - } - } - return result; -} - -export default class FileFormatDataSource extends ListDataSource { - - constructor() { - super(); - this.rawData = {}; - this.data = {}; - this.visibleCategories = new Set(); - } - - /** - * Fetch file format support data - */ - fetch() { - const self = this; - return new Promise((resolve, reject) => { - let request = new XMLHttpRequest(); - request.responseType = 'json'; - request.open('GET', './workers.json'); - request.onload = () => { - self.rawData = request.response; - self.data = createDataSourceData(self.rawData); - resolve(); - } - request.onerror = () => { - reject(); - } - request.send(); - }); - } - - /** - * Retrieve a set of output formats - */ - getOutputFormats() { - const result = new Set(); - for (const category of this.data.values()) { - for (const outputFormat of category.summary.output.keys()) { - result.add(outputFormat); - } - } - return result; - } - - /** - * Retrieve a set of capabilities - */ - getCapabilities() { - const result = new Set(); - for (const category of this.data.values()) { - for (const capability of category.summary.capabilities.keys()) { - result.add(capability); - } - } - return result; - } - - /** - * Load the data for the table - * - * Contract: called after fetch() - */ - async load() { - const result = []; - const categories = Array.from(this.data.keys()).sort(); - for (const categoryName of categories) { - const category = this.data.get(categoryName); - - // category summary line - result.push(Object.assign({}, - { category: categoryName }, - category.summary - )); - - // input summary lines - if (this.visibleCategories.has(categoryName)) { - const inputFormats = Array.from(category.input.keys()).sort(); - for (const inputFormat of inputFormats) { - const input = category.input.get(inputFormat); - result.push(Object.assign({}, - { input: inputFormat }, - input.summary - )); - } - } - } - return result; - } - - isCategoryVisible(category) { - return this.visibleCategories.has(category); - } - - toggleCategory(category) { - if (this.visibleCategories.has(category)) { - this.visibleCategories.delete(category); - } else { - this.visibleCategories.add(category); - } - super.reloadData(); - } - -} diff --git a/client/src/components/FileFormat/js/FileFormatTable.jsx b/client/src/components/FileFormat/js/FileFormatTable.jsx deleted file mode 100644 index a1eb478..0000000 --- a/client/src/components/FileFormat/js/FileFormatTable.jsx +++ /dev/null @@ -1,128 +0,0 @@ -/* -Copyright 2020 Adobe. All rights reserved. -This file is licensed to you under the Apache License, Version 2.0 (the "License"); -you may not use this file except in compliance with the License. You may obtain a copy -of the License at http://www.apache.org/licenses/LICENSE-2.0 - -Unless required by applicable law or agreed to in writing, software distributed under -the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS -OF ANY KIND, either express or implied. See the License for the specific language -governing permissions and limitations under the License. -*/ - -// import ReactDOM from 'react-dom'; -import React from 'react'; -import Button from '@react/react-spectrum/Button'; -import Link from '@react/react-spectrum/Link'; -import { TableView } from '@react/react-spectrum/TableView'; -import OverlayTrigger from '@react/react-spectrum/OverlayTrigger'; -import Popover from '@react/react-spectrum/Popover'; -import Checkmark from "@react/react-spectrum/Icon/Checkmark"; -import FileFormatDataSource from './FileFormatDataSource'; - -export default class FileFormatTable extends React.Component { - - state = { - columns: [] - } - - constructor(props) { - super(props); - this.dataSource = new FileFormatDataSource(); - this.renderCell = this.renderCell.bind(this); - } - - async componentDidMount() { - await this.dataSource.fetch(); - const columns = [{ - title: 'category', - key: 'category', - width: 160, - divider: true - }, { - title: 'input', - key: 'input', - divider: true - }]; - const outputFormats = Array.from(this.dataSource.getOutputFormats().keys()).sort(); - for (const output of outputFormats) { - columns.push({ - title: output, - key: output, - type: 'output' - }) - } - if (outputFormats.length) { - columns[columns.length - 1].divider = true; - } - const capabilities = Array.from(this.dataSource.getCapabilities().keys()).sort(); - for (const capability of capabilities) { - columns.push({ - title: capability, - key: capability, - type: 'capability' - }) - } - this.setState({ columns }); - } - - renderCell(column, data) { - if (column.key === 'category' && data.category) { - return ; - } else if (column.key === 'input' && data.input) { - return data.input; - } else if (column.type === 'output') { - const output = data.output.get(column.key); - if (output && output.supported === 'supported') { - if (output.workerName) { - return - - - - - - Select a file from the Cloud Storage container or choose a new file to upload. - - - - Type your renditions directly into the editor or fill out the form below to generate the rendition request - - -

Press Run to see your renditions come to life! See the request, response, and generated renditions to the right.

-
-
- - - ) - - } - -} diff --git a/client/src/components/RenditionDisplay/Rendition.jsx b/client/src/components/RenditionDisplay/Rendition.jsx index 69c972d..6543ef8 100644 --- a/client/src/components/RenditionDisplay/Rendition.jsx +++ b/client/src/components/RenditionDisplay/Rendition.jsx @@ -11,10 +11,14 @@ governing permissions and limitations under the License. */ import React, { Component } from 'react'; + +// v3 +import {Link} from '@react-spectrum/link'; + +// v2 import {Card, CardCoverPhoto, CardBody, CardPreview, CardFooter} from '@react/react-spectrum/Card'; import {Asset} from '@react/react-spectrum/Asset'; import Wait from '@react/react-spectrum/Wait'; -import Link from '@react/react-spectrum/Link'; import errorPlaceHolder from '../../images/renditionFailedPlaceHolder.png'; import path from 'path'; @@ -42,8 +46,10 @@ export default class Rendition extends Component { } else if (ext && (ext.length > 0) && IMAGE_EXT.includes(ext)) { - image = + image = + + } else if (ext && (ext.length > 0) && EMBEDDED_EXT.includes(ext)) { @@ -51,8 +57,10 @@ export default class Rendition extends Component { if (rendition.name.includes('json')) { type = 'application/json'} if (rendition.name.includes('xml')) { type = 'application/xml'} image = - - + + + + // @@ -63,9 +71,11 @@ export default class Rendition extends Component { } else { image = - - - + + + + + } diff --git a/client/src/components/TextEditor/ChangeAssetComputeProfileButton.jsx b/client/src/components/TextEditor/ChangeAssetComputeProfileButton.jsx index a7ff254..e3e3913 100644 --- a/client/src/components/TextEditor/ChangeAssetComputeProfileButton.jsx +++ b/client/src/components/TextEditor/ChangeAssetComputeProfileButton.jsx @@ -15,7 +15,9 @@ import React, { Component } from 'react'; import '@react/react-spectrum/page'; import DropdownButton from '@react/react-spectrum/DropdownButton'; import { MenuItem } from '@react/react-spectrum/Menu'; -import ChevronDown from '@react/react-spectrum/Icon/ChevronDown'; + +// OS +import ChevronDown from '@spectrum-icons/workflow//ChevronDown'; diff --git a/client/src/index.js b/client/src/index.js index 9ca7559..461e052 100644 --- a/client/src/index.js +++ b/client/src/index.js @@ -13,12 +13,12 @@ governing permissions and limitations under the License. import React from 'react'; import ReactDOM from 'react-dom'; import './index.css'; -// import App from './App'; import * as serviceWorker from './serviceWorker'; import App from './App'; -import Provider from '@react/react-spectrum/Provider'; +import { Provider } from '@react-spectrum/provider'; +import {theme} from '@react-spectrum/theme-default'; -ReactDOM.render(, document.getElementById('root')); +ReactDOM.render(, document.getElementById('root')); // If you want your app to work offline and load faster, you can change // unregister() to register() below. Note this comes with some pitfalls. diff --git a/server/client-build/service-worker.js b/server/client-build/service-worker.js index ccb50c5..7986d0a 100644 --- a/server/client-build/service-worker.js +++ b/server/client-build/service-worker.js @@ -14,13 +14,13 @@ importScripts("https://storage.googleapis.com/workbox-cdn/releases/4.3.1/workbox-sw.js"); importScripts( - "/precache-manifest.dbc9c2741504f3f47227a2ddd69a6065.js" + "/precache-manifest.7aaab549880c968f8fc41c79c7040ac5.js" ); self.addEventListener('message', (event) => { - if (event.data && event.data.type === 'SKIP_WAITING') { - self.skipWaiting(); - } + if (event.data && event.data.type === 'SKIP_WAITING') { + self.skipWaiting(); + } }); workbox.core.clientsClaim(); @@ -35,5 +35,5 @@ workbox.precaching.precacheAndRoute(self.__precacheManifest, {}); workbox.routing.registerNavigationRoute(workbox.precaching.getCacheKeyForURL("/index.html"), { - blacklist: [/^\/_/,/\/[^/?]+\.[^/]+$/], + blacklist: [/^\/_/,/\/[^\/?]+\.[^\/]+$/], });