diff --git a/CHANGELOG.md b/CHANGELOG.md index 3777159..df581f3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,11 @@ +## v1.2.0 (2020-09-26) + +- Add `onError` prop +- Add missing typings for extra callbacks +- Fix callbacks reference changes +- Deprecated `preselectVaultedPaymentMethod` prop (simply put in `options`) +- Upgrade dependencies + ## v1.1.2 (2020-08-26) - Upgrade dependencies diff --git a/README.md b/README.md index 09c4230..2946f56 100644 --- a/README.md +++ b/README.md @@ -85,7 +85,7 @@ See [`example`](example/README.md). Options to setup Braintree. See [Drop-In options](https://braintree.github.io/braintree-web-drop-in/docs/current/module-braintree-web-drop-in.html#.create). -### `onInstance` (`function: instance`) +### `onInstance` (`function: instance`, optional) Called with the Braintree Drop-In instance when done initializing. You can call all regular [Drop-In methods](https://braintree.github.io/braintree-web-drop-in/docs/current/Dropin.html) @@ -119,7 +119,13 @@ Modify your configuration initially set in `options`. Can be used for any paypal If updateConfiguration is called after a user completes the PayPal authorization flow, any PayPal accounts not stored in the Vault record will be removed. -### `onNoPaymentMethodRequestable`, `onPaymentMethodRequestable`, `onPaymentOptionSelected` (`function: event`) +### `onError` (`function: error`, optional) + +Called when creating the instance throws an error. + +> Note: This doesn't propage up to React's error bounderies. If this is the desired behavior, rethrow the error inside your `onError` handler + +### `onNoPaymentMethodRequestable`, `onPaymentMethodRequestable`, `onPaymentOptionSelected` (`function: void/payload`, optional) Ran for [events](https://braintree.github.io/braintree-web-drop-in/docs/current/Dropin.html#on). @@ -129,9 +135,11 @@ Ran for [events](https://braintree.github.io/braintree-web-drop-in/docs/current/ ### `preselectVaultedPaymentMethod` (`boolean`, default: `true`) -Whether or not to initialize with a vaulted payment method pre-selected. +Whether to initialize with a vaulted payment method pre-selected. Only applicable when using a client token with a customer with saved payment methods. +> Note: This prop is deprecated and will be removed in v2. Simply place this prop inside your `options` instead. + ## Package size Since this depends on `braintree-web-drop-in`, this can be a [quite large package](https://bundlephobia.com/result?p=braintree-web-drop-in-react) (324.5 kB minified). This package alone is only ~3 kB. diff --git a/index.d.ts b/index.d.ts index 40c47c3..64624d5 100644 --- a/index.d.ts +++ b/index.d.ts @@ -1,12 +1,26 @@ -import * as React from 'react'; -import { Options as BraintreeOptions, Dropin } from 'braintree-web-drop-in'; +import * as React from "react"; +import { + Options as BraintreeOptions, + Dropin, + PaymentMethodRequestablePayload, + PaymentOptionSelectedPayload, +} from "braintree-web-drop-in"; -export type Options = Omit; +export type Options = Omit; export interface IDropInProps { options: Options; - preselectVaultedPaymentMethod?: boolean, + // @deprecated: Include inside options + preselectVaultedPaymentMethod?: boolean; + onInstance?: (instance: Dropin) => void; + onError?: (error: any) => void; + + onNoPaymentMethodRequestable?: () => void; + onPaymentMethodRequestable?: ( + payload: PaymentMethodRequestablePayload + ) => void; + onPaymentOptionSelected?: (payload: PaymentOptionSelectedPayload) => void; } -export default class DropIn extends React.Component { } +export default class DropIn extends React.Component {} diff --git a/package.json b/package.json index 9015890..c752ff5 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "braintree-web-drop-in-react", - "version": "1.1.2", + "version": "1.2.0", "description": "React component for Braintree Web Drop-In (v3)", "keywords": [ "braintree", @@ -24,31 +24,31 @@ "build": "babel src -d lib --source-maps && terser lib/index.js -o lib/index.min.js --source-map 'content=lib/index.js.map'", "clean": "rimraf lib", "example": "cd example && npm install && npm run start", - "format": "prettier --write 'src/**.js' package.json CHANGELOG.md README.md .travis.yml example/index.html example/index.js example/README.md example/package.json", + "format": "prettier --write 'src/**.js' index.d.ts package.json CHANGELOG.md README.md .travis.yml example/index.html example/index.js example/README.md example/package.json", "test": "jest" }, "dependencies": { - "braintree-web-drop-in": "^1.23.0", + "braintree-web-drop-in": "^1.24.0", "prop-types": "^15.7.2" }, "devDependencies": { - "@babel/cli": "^7.10.5", - "@babel/core": "^7.11.4", + "@babel/cli": "^7.11.6", + "@babel/core": "^7.11.6", "@babel/plugin-proposal-class-properties": "^7.10.4", - "@babel/plugin-transform-runtime": "^7.11.0", - "@babel/preset-env": "^7.11.0", + "@babel/plugin-transform-runtime": "^7.11.5", + "@babel/preset-env": "^7.11.5", "@babel/preset-react": "^7.10.4", "@babel/runtime": "^7.11.2", "@types/braintree-web-drop-in": "^1.22.1", - "@types/react": "^16.9.47", + "@types/react": "^16.9.49", "babel-jest": "^26.3.0", "jest": "^26.4.2", - "prettier": "^2.1.1", + "prettier": "^2.1.2", "react": "^16.8.6", "react-dom": "^16.8.6", "react-test-renderer": "^16.13.1", "rimraf": "^3.0.2", - "terser": "^5.2.1" + "terser": "^5.3.2" }, "peerDependencies": { "react": ">=16.13.1", diff --git a/src/index.js b/src/index.js index 11e3db6..717e9fc 100644 --- a/src/index.js +++ b/src/index.js @@ -8,8 +8,12 @@ export default class DropIn extends React.Component { static propTypes = { options: PropTypes.object.isRequired, + // @deprecated: Include inside options preselectVaultedPaymentMethod: PropTypes.bool, + onInstance: PropTypes.func, + onError: PropTypes.func, + onNoPaymentMethodRequestable: PropTypes.func, onPaymentMethodRequestable: PropTypes.func, onPaymentOptionSelected: PropTypes.func, @@ -23,33 +27,36 @@ export default class DropIn extends React.Component { instance; async componentDidMount() { - this.instance = await BraintreeWebDropIn.create({ - container: ReactDOM.findDOMNode(this.wrapper), - preselectVaultedPaymentMethod: this.props.preselectVaultedPaymentMethod, - ...this.props.options, - }); + try { + this.instance = await BraintreeWebDropIn.create({ + container: ReactDOM.findDOMNode(this.wrapper), + preselectVaultedPaymentMethod: this.props.preselectVaultedPaymentMethod, + ...this.props.options, + }); - if (this.props.onNoPaymentMethodRequestable) { - this.instance.on( - "noPaymentMethodRequestable", - this.props.onNoPaymentMethodRequestable - ); - } - if (this.props.onPaymentMethodRequestable) { - this.instance.on( - "paymentMethodRequestable", - this.props.onPaymentMethodRequestable - ); - } - if (this.props.onPaymentOptionSelected) { - this.instance.on( - "paymentOptionSelected", - this.props.onPaymentOptionSelected - ); - } + this.instance.on("noPaymentMethodRequestable", (...args) => { + if (this.props.onNoPaymentMethodRequestable) { + this.props.onNoPaymentMethodRequestable(...args); + } + }); + this.instance.on("paymentMethodRequestable", (...args) => { + if (this.props.onPaymentMethodRequestable) { + this.props.onPaymentMethodRequestable(...args); + } + }); + this.instance.on("paymentOptionSelected", (...args) => { + if (this.props.onPaymentOptionSelected) { + this.props.onPaymentOptionSelected(...args); + } + }); - if (this.props.onInstance) { - this.props.onInstance(this.instance); + if (this.props.onInstance) { + this.props.onInstance(this.instance); + } + } catch (error) { + if (this.props.onError) { + this.props.onError(error); + } } } diff --git a/yarn.lock b/yarn.lock index 850e0ec..2c91ee2 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2,10 +2,10 @@ # yarn lockfile v1 -"@babel/cli@^7.10.5": - version "7.10.5" - resolved "https://registry.yarnpkg.com/@babel/cli/-/cli-7.10.5.tgz#57df2987c8cf89d0fc7d4b157ec59d7619f1b77a" - integrity sha512-j9H9qSf3kLdM0Ao3aGPbGZ73mEA9XazuupcS6cDGWuiyAcANoguhP0r2Lx32H5JGw4sSSoHG3x/mxVnHgvOoyA== +"@babel/cli@^7.11.6": + version "7.11.6" + resolved "https://registry.yarnpkg.com/@babel/cli/-/cli-7.11.6.tgz#1fcbe61c2a6900c3539c06ee58901141f3558482" + integrity sha512-+w7BZCvkewSmaRM6H4L2QM3RL90teqEIHDIFXAmrW33+0jhlymnDAEdqVeCZATvxhQuio1ifoGVlJJbIiH9Ffg== dependencies: commander "^4.0.1" convert-source-map "^1.1.0" @@ -62,19 +62,19 @@ semver "^5.4.1" source-map "^0.5.0" -"@babel/core@^7.11.4": - version "7.11.4" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.11.4.tgz#4301dfdfafa01eeb97f1896c5501a3f0655d4229" - integrity sha512-5deljj5HlqRXN+5oJTY7Zs37iH3z3b++KjiKtIsJy1NrjOOVSEaJHEetLBhyu0aQOSNNZ/0IuEAan9GzRuDXHg== +"@babel/core@^7.11.6": + version "7.11.6" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.11.6.tgz#3a9455dc7387ff1bac45770650bc13ba04a15651" + integrity sha512-Wpcv03AGnmkgm6uS6k8iwhIwTrcP0m17TL1n1sy7qD0qelDu4XNeW0dN0mHfa+Gei211yDaLoEe/VlbXQzM4Bg== dependencies: "@babel/code-frame" "^7.10.4" - "@babel/generator" "^7.11.4" + "@babel/generator" "^7.11.6" "@babel/helper-module-transforms" "^7.11.0" "@babel/helpers" "^7.10.4" - "@babel/parser" "^7.11.4" + "@babel/parser" "^7.11.5" "@babel/template" "^7.10.4" - "@babel/traverse" "^7.11.0" - "@babel/types" "^7.11.0" + "@babel/traverse" "^7.11.5" + "@babel/types" "^7.11.5" convert-source-map "^1.7.0" debug "^4.1.0" gensync "^1.0.0-beta.1" @@ -84,7 +84,7 @@ semver "^5.4.1" source-map "^0.5.0" -"@babel/generator@^7.11.0", "@babel/generator@^7.11.4": +"@babel/generator@^7.11.0": version "7.11.4" resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.11.4.tgz#1ec7eec00defba5d6f83e50e3ee72ae2fee482be" integrity sha512-Rn26vueFx0eOoz7iifCN2UHT6rGtnkSGWSoDRIy8jZN3B91PzeSULbswfLoOWuTuAcNwpG/mxy+uCTDnZ9Mp1g== @@ -93,6 +93,15 @@ jsesc "^2.5.1" source-map "^0.5.0" +"@babel/generator@^7.11.5", "@babel/generator@^7.11.6": + version "7.11.6" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.11.6.tgz#b868900f81b163b4d464ea24545c61cbac4dc620" + integrity sha512-DWtQ1PV3r+cLbySoHrwn9RWEgKMBLLma4OBQloPRyDYvc5msJM9kvTLo1YnlJd1P/ZuKbdli3ijr5q3FvAF3uA== + dependencies: + "@babel/types" "^7.11.5" + jsesc "^2.5.1" + source-map "^0.5.0" + "@babel/generator@^7.8.6": version "7.8.6" resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.8.6.tgz#57adf96d370c9a63c241cd719f9111468578537a" @@ -414,11 +423,16 @@ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.8.6.tgz#ba5c9910cddb77685a008e3c587af8d27b67962c" integrity sha512-trGNYSfwq5s0SgM1BMEB8hX3NDmO7EP2wsDGDexiaKMB92BaRpS+qZfpkMqUBhcsOTBwNy9B/jieo4ad/t/z2g== -"@babel/parser@^7.10.4", "@babel/parser@^7.11.0", "@babel/parser@^7.11.4": +"@babel/parser@^7.10.4", "@babel/parser@^7.11.0": version "7.11.4" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.11.4.tgz#6fa1a118b8b0d80d0267b719213dc947e88cc0ca" integrity sha512-MggwidiH+E9j5Sh8pbrX5sJvMcsqS5o+7iB42M9/k0CD63MjYbdP4nhSh7uB5wnv2/RVzTZFTxzF/kIa5mrCqA== +"@babel/parser@^7.11.5": + version "7.11.5" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.11.5.tgz#c7ff6303df71080ec7a4f5b8c003c58f1cf51037" + integrity sha512-X9rD8qqm695vgmeaQ4fvz/o3+Wk4ZzQvSHkDBgpYKxpD4qTAUm88ZKtHkVqIOsYFFbIQ6wQYhC6q7pjqVK0E0Q== + "@babel/plugin-proposal-async-generator-functions@^7.10.4": version "7.10.5" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.10.5.tgz#3491cabf2f7c179ab820606cec27fed15e0e8558" @@ -944,10 +958,10 @@ dependencies: "@babel/helper-plugin-utils" "^7.10.4" -"@babel/plugin-transform-runtime@^7.11.0": - version "7.11.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.11.0.tgz#e27f78eb36f19448636e05c33c90fd9ad9b8bccf" - integrity sha512-LFEsP+t3wkYBlis8w6/kmnd6Kb1dxTd+wGJ8MlxTGzQo//ehtqlVL4S9DNUa53+dtPSQobN2CXx4d81FqC58cw== +"@babel/plugin-transform-runtime@^7.11.5": + version "7.11.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.11.5.tgz#f108bc8e0cf33c37da031c097d1df470b3a293fc" + integrity sha512-9aIoee+EhjySZ6vY5hnLjigHzunBlscx9ANKutkeWTJTx6m5Rbq6Ic01tLvO54lSusR+BxV7u4UDdCmXv5aagg== dependencies: "@babel/helper-module-imports" "^7.10.4" "@babel/helper-plugin-utils" "^7.10.4" @@ -1007,10 +1021,10 @@ "@babel/helper-create-regexp-features-plugin" "^7.10.4" "@babel/helper-plugin-utils" "^7.10.4" -"@babel/preset-env@^7.11.0": - version "7.11.0" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.11.0.tgz#860ee38f2ce17ad60480c2021ba9689393efb796" - integrity sha512-2u1/k7rG/gTh02dylX2kL3S0IJNF+J6bfDSp4DI2Ma8QN6Y9x9pmAax59fsCk6QUQG0yqH47yJWA+u1I1LccAg== +"@babel/preset-env@^7.11.5": + version "7.11.5" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.11.5.tgz#18cb4b9379e3e92ffea92c07471a99a2914e4272" + integrity sha512-kXqmW1jVcnB2cdueV+fyBM8estd5mlNfaQi6lwLgRwCby4edpavgbFhiBNjmWA3JpB/yZGSISa7Srf+TwxDQoA== dependencies: "@babel/compat-data" "^7.11.0" "@babel/helper-compilation-targets" "^7.10.4" @@ -1074,7 +1088,7 @@ "@babel/plugin-transform-unicode-escapes" "^7.10.4" "@babel/plugin-transform-unicode-regex" "^7.10.4" "@babel/preset-modules" "^0.1.3" - "@babel/types" "^7.11.0" + "@babel/types" "^7.11.5" browserslist "^4.12.0" core-js-compat "^3.6.2" invariant "^2.2.2" @@ -1152,7 +1166,7 @@ globals "^11.1.0" lodash "^4.17.13" -"@babel/traverse@^7.10.4", "@babel/traverse@^7.11.0": +"@babel/traverse@^7.10.4": version "7.11.0" resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.11.0.tgz#9b996ce1b98f53f7c3e4175115605d56ed07dd24" integrity sha512-ZB2V+LskoWKNpMq6E5UUCrjtDUh5IOTAyIl0dTjIEoXum/iKWkoIEKIRDnUucO6f+2FzNkE0oD4RLKoPIufDtg== @@ -1167,6 +1181,21 @@ globals "^11.1.0" lodash "^4.17.19" +"@babel/traverse@^7.11.5": + version "7.11.5" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.11.5.tgz#be777b93b518eb6d76ee2e1ea1d143daa11e61c3" + integrity sha512-EjiPXt+r7LiCZXEfRpSJd+jUMnBd4/9OUv7Nx3+0u9+eimMwJmG0Q98lw4/289JCoxSE8OolDMNZaaF/JZ69WQ== + dependencies: + "@babel/code-frame" "^7.10.4" + "@babel/generator" "^7.11.5" + "@babel/helper-function-name" "^7.10.4" + "@babel/helper-split-export-declaration" "^7.11.0" + "@babel/parser" "^7.11.5" + "@babel/types" "^7.11.5" + debug "^4.1.0" + globals "^11.1.0" + lodash "^4.17.19" + "@babel/types@^7.0.0", "@babel/types@^7.3.0", "@babel/types@^7.8.3", "@babel/types@^7.8.6": version "7.8.7" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.8.7.tgz#1fc9729e1acbb2337d5b6977a63979b4819f5d1d" @@ -1185,6 +1214,15 @@ lodash "^4.17.19" to-fast-properties "^2.0.0" +"@babel/types@^7.11.5": + version "7.11.5" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.11.5.tgz#d9de577d01252d77c6800cee039ee64faf75662d" + integrity sha512-bvM7Qz6eKnJVFIn+1LPtjlBFPVN5jNDc1XmN15vWe7Q3DPBufWWsLiIvUu7xW87uTG6QoggpIDnUgLQvPheU+Q== + dependencies: + "@babel/helper-validator-identifier" "^7.10.4" + lodash "^4.17.19" + to-fast-properties "^2.0.0" + "@babel/types@^7.4.4": version "7.9.0" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.9.0.tgz#00b064c3df83ad32b2dbf5ff07312b15c7f1efb5" @@ -1199,47 +1237,52 @@ resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39" integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw== -"@braintree/asset-loader@0.3.1": - version "0.3.1" - resolved "https://registry.yarnpkg.com/@braintree/asset-loader/-/asset-loader-0.3.1.tgz#2ee703193fba9f479e674e76ac83f2ccfd6e7a9e" - integrity sha512-6Jkps+3iobSwMOqSXHUwIU39QARDFr0T6R/OcIAKX51SlZbc8q9VXl+lxjsDDnNF8cybXn07OGEypeNs9ZKJ6g== +"@braintree/asset-loader@0.4.4": + version "0.4.4" + resolved "https://registry.yarnpkg.com/@braintree/asset-loader/-/asset-loader-0.4.4.tgz#9a5eda24c3627bfd5c7f7483cd48f0e411dd2f09" + integrity sha512-uVhXC5dydmngmNVuDiKgfXSlz4kv4x5ytIJodI8N5SY16mRh13m/UmbQ7yH+o8DQqp50qPZ45MUHIZkXKPg85w== dependencies: - promise-polyfill "^8.1.0" + promise-polyfill "^8.1.3" -"@braintree/browser-detection@1.9.0", "@braintree/browser-detection@^1.9.0": - version "1.9.0" - resolved "https://registry.yarnpkg.com/@braintree/browser-detection/-/browser-detection-1.9.0.tgz#bbaca6965a0685d0d91fd6e9194db034857d1d46" - integrity sha512-EEj6I9vRuxfvWRo4se5b13BP2nBVOJS9qoMKjFLJAMW+84/xgCaN6pYbZH8G6rDXhPUdkzqUPEGB3n+VdNFjTQ== +"@braintree/browser-detection@1.10.0", "@braintree/browser-detection@^1.10.0": + version "1.10.0" + resolved "https://registry.yarnpkg.com/@braintree/browser-detection/-/browser-detection-1.10.0.tgz#065c63e526e874b28d9957423be04b7788fd68ee" + integrity sha512-79maqUyksx4LFK4/7KVLgegHHGry363KfaoXtK4WAhoCjmxKbJsnjX7Yp1GSmK+FVcahaQfkFbO0K927UeAE+w== -"@braintree/class-list@0.1.0": - version "0.1.0" - resolved "https://registry.yarnpkg.com/@braintree/class-list/-/class-list-0.1.0.tgz#d6c8606ce6a82b4b37f28e32eadd090abcf1adaa" - integrity sha512-AmXPsYhiNJKcxuwkgQjwyyTwFCeRlyFTeUJ9ecV/jLxS8ZH8fCAB4enYgArMRyvCekZZkqLK54kOJ6+OJBzJwA== +"@braintree/class-list@0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@braintree/class-list/-/class-list-0.2.0.tgz#4c4352ac19c262f61526f93d07d248244b399ec4" + integrity sha512-iLXJT51jnBFuGvyTAQqZ2uwyEVwdyapyz52F5MK1Uoh2ZOiPJ5hoqI0wncyCP2KfqrgyCpOkkEaLMLb/94unGA== -"@braintree/event-emitter@0.3.0": - version "0.3.0" - resolved "https://registry.yarnpkg.com/@braintree/event-emitter/-/event-emitter-0.3.0.tgz#8239ad51c71707b317f30da2d29abb369f91a579" - integrity sha512-yzC81QgTuL18RK9Da4C5oAyta5OLNZ3mGqiGKZFc8BKxOnGJN5ObhiFiOdbMbvPUYJQ4teZsal7j00o5RFlGcQ== +"@braintree/event-emitter@0.4.1": + version "0.4.1" + resolved "https://registry.yarnpkg.com/@braintree/event-emitter/-/event-emitter-0.4.1.tgz#204eaad8cf84eb7bf81fb288a359d34eda85a396" + integrity sha512-X41357O3OXUDlnwMvS1m0GQEn3zB3s3flOBeg2J5OBvLvdJEIAVpPkblABPtsPrlciDSvfv1aSG5ixHPgFH0Zg== -"@braintree/extended-promise@0.3.1": - version "0.3.1" - resolved "https://registry.yarnpkg.com/@braintree/extended-promise/-/extended-promise-0.3.1.tgz#13eb22125c02bd47ff41a68d67639e4b185f03d5" - integrity sha512-jYP1hnRviu1MW9uCk0DSU1GMD9/Hkh3EYjHGnwhDbGK7os6XlLSieXxXSH+xSKolp3BPf6KUq0jWa7h6dXDnGA== +"@braintree/extended-promise@0.4.0": + version "0.4.0" + resolved "https://registry.yarnpkg.com/@braintree/extended-promise/-/extended-promise-0.4.0.tgz#7c14bce7f32f451a4a10265159cd8b3a817cd051" + integrity sha512-WHm6m6SS0QPJ3fKTKBBzWN9VaozT1D+cj6oQLo+N/oncqFec7Bk1KDIK+u6KQtkCEgo1Gd/JCOmZ9uUeWahAzA== -"@braintree/iframer@1.0.3": - version "1.0.3" - resolved "https://registry.yarnpkg.com/@braintree/iframer/-/iframer-1.0.3.tgz#21dd1fd4cebd4154aeab1efa4d5b0d5f4384364e" - integrity sha1-Id0f1M69QVSuqx76TVsNX0OENk4= +"@braintree/iframer@1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@braintree/iframer/-/iframer-1.1.0.tgz#7e59b975c2a48bd92616f653367a5214fc2ddd4b" + integrity sha512-tVpr7U6u6bqeQlHreEjYMNtnHX62vLnNWziY2kQLqkWhvusPuY5DfuGEIPpWqsd+V/a1slyTQaxK6HWTlH6A/Q== -"@braintree/sanitize-url@4.0.1": - version "4.0.1" - resolved "https://registry.yarnpkg.com/@braintree/sanitize-url/-/sanitize-url-4.0.1.tgz#16e719eba72693f95989c05f2b3b424f2aabc5b0" - integrity sha512-THIQtVN491hY2rTZ/h5boj0CwDKrZQIUnfaj6RbpGwRJKfmEIgNpgcCJC3KZl1Vux9bQmdE2P4Q7cYUoSUQ4MA== +"@braintree/sanitize-url@4.1.1": + version "4.1.1" + resolved "https://registry.yarnpkg.com/@braintree/sanitize-url/-/sanitize-url-4.1.1.tgz#671b3cfdbcc40d1449036ce586e882ab6150828e" + integrity sha512-epVksusKVEpwBs2vRg3SWssxn9KXs9CxEYNOcgeSRLRjq070ABj5bLPxkmtQpVeSPCHj8kfAE9J6z2WsLr4wZg== -"@braintree/wrap-promise@2.0.0": - version "2.0.0" - resolved "https://registry.yarnpkg.com/@braintree/wrap-promise/-/wrap-promise-2.0.0.tgz#6bf4bd934f18bb1b460bdd608d81154db8d2ff65" - integrity sha512-I9s8c/bHBx7gM04yHGKjRoyqX1NhT4d3RIQjLZDW+yFI3DRmi/8JYDpxQeW4fiU6bWX2f3KV1Oa8r2nwKeaAwA== +"@braintree/uuid@0.1.0": + version "0.1.0" + resolved "https://registry.yarnpkg.com/@braintree/uuid/-/uuid-0.1.0.tgz#ab9355015a7fb0e25cf3c2ff9cd32ece8ea304b0" + integrity sha512-YvZJdlNcK5EnR+7M8AjgEAf4Qx696+FOSYlPfy5ePn80vODtVAUU0FxHnzKZC0og1VbDNQDDiwhthR65D4Na0g== + +"@braintree/wrap-promise@2.1.0": + version "2.1.0" + resolved "https://registry.yarnpkg.com/@braintree/wrap-promise/-/wrap-promise-2.1.0.tgz#7e27ffc5dacd2d71533b0c42506eea8e7c2e50fa" + integrity sha512-UIrJB+AfKU0CCfbMoWrsGpd2D/hBpY/SGgFI6WRHPOwhaZ3g9rz1weiJ6eb6L9KgVyunT7s2tckcPkbHw+NzeA== "@cnakazawa/watch@^1.0.3": version "1.0.3" @@ -1538,10 +1581,10 @@ resolved "https://registry.yarnpkg.com/@types/prop-types/-/prop-types-15.7.3.tgz#2ab0d5da2e5815f94b0b9d4b95d1e5f243ab2ca7" integrity sha512-KfRL3PuHmqQLOG+2tGpRO26Ctg+Cq1E01D2DMriKEATHgWLfeNDmq9e29Q9WIky0dQ3NPkd1mzYH8Lm936Z9qw== -"@types/react@^16.9.47": - version "16.9.47" - resolved "https://registry.yarnpkg.com/@types/react/-/react-16.9.47.tgz#fb092936f0b56425f874d0ff1b08051fdf70c1ba" - integrity sha512-dAJO4VbrjYqTUwFiQqAKjLyHHl4RSTNnRyPdX3p16MPbDKvow51wxATUPxoe2QsiXNMEYrOjc2S6s92VjG+1VQ== +"@types/react@^16.9.49": + version "16.9.49" + resolved "https://registry.yarnpkg.com/@types/react/-/react-16.9.49.tgz#09db021cf8089aba0cdb12a49f8021a69cce4872" + integrity sha512-DtLFjSj0OYAdVLBbyjhuV9CdGVHCkHn2R+xr3XkBvK2rS1Y1tkc14XSGjYgm5Fjjr90AxH9tiSzc1pCFMGO06g== dependencies: "@types/prop-types" "*" csstype "^3.0.2" @@ -1864,38 +1907,40 @@ braces@^3.0.1: dependencies: fill-range "^7.0.1" -braintree-web-drop-in@^1.23.0: - version "1.23.0" - resolved "https://registry.yarnpkg.com/braintree-web-drop-in/-/braintree-web-drop-in-1.23.0.tgz#89b1cb819c513f7faa79bde1d15e0e36826e3353" - integrity sha512-uP1z6UI9edwlwxto838awSX1tbRM+vqEErEtsLxk3TuC+XRxIn7u5F9IIILW+y/A0OXa7/2klIbjqy3RMgK7Lw== - dependencies: - "@braintree/asset-loader" "0.3.1" - "@braintree/browser-detection" "1.9.0" - "@braintree/class-list" "0.1.0" - "@braintree/event-emitter" "0.3.0" - "@braintree/wrap-promise" "2.0.0" - braintree-web "3.63.0" +braintree-web-drop-in@^1.24.0: + version "1.24.0" + resolved "https://registry.yarnpkg.com/braintree-web-drop-in/-/braintree-web-drop-in-1.24.0.tgz#884c8e52decb633460ada6a326ab0e516a9bdb81" + integrity sha512-f4sedu5n1VpbkR+R5mDvSy4k3vWfZe1RTdQYaBsba9oY6+HxyoSigETOdQ+KcZSQnh6uopP1NYFPWoZwJ/rqTg== + dependencies: + "@braintree/asset-loader" "0.4.4" + "@braintree/browser-detection" "1.10.0" + "@braintree/class-list" "0.2.0" + "@braintree/event-emitter" "0.4.1" + "@braintree/uuid" "0.1.0" + "@braintree/wrap-promise" "2.1.0" + braintree-web "3.65.0" promise-polyfill "8.1.3" -braintree-web@3.63.0: - version "3.63.0" - resolved "https://registry.yarnpkg.com/braintree-web/-/braintree-web-3.63.0.tgz#c534bfe2c7a88cb052df8912f498c52ba541839a" - integrity sha512-dEjhrQmsZGffnrsyg3xMGSk0XgZ+NR7wVpNvCH7ePXnf3bVkOR3FAPJP1jqTLgtX6OvPReyZ5/TcVLFcJ7SktA== - dependencies: - "@braintree/asset-loader" "0.3.1" - "@braintree/browser-detection" "1.9.0" - "@braintree/class-list" "0.1.0" - "@braintree/event-emitter" "0.3.0" - "@braintree/extended-promise" "0.3.1" - "@braintree/iframer" "1.0.3" - "@braintree/sanitize-url" "4.0.1" - "@braintree/wrap-promise" "2.0.0" - card-validator "6.2.0" - credit-card-type "8.3.0" +braintree-web@3.65.0: + version "3.65.0" + resolved "https://registry.yarnpkg.com/braintree-web/-/braintree-web-3.65.0.tgz#3641e4ea553eeab1b986c7c64fda31e8396ed58a" + integrity sha512-xjFPJ/xAoF7tBlq4enGiQxk54YkGGi1U3XvMb4LGeK5RsLEq8Ey01wgAYARqTEqalIucLRyBFJn9Xprfm4lX8w== + dependencies: + "@braintree/asset-loader" "0.4.4" + "@braintree/browser-detection" "1.10.0" + "@braintree/class-list" "0.2.0" + "@braintree/event-emitter" "0.4.1" + "@braintree/extended-promise" "0.4.0" + "@braintree/iframer" "1.1.0" + "@braintree/sanitize-url" "4.1.1" + "@braintree/uuid" "0.1.0" + "@braintree/wrap-promise" "2.1.0" + card-validator "8.1.0" + credit-card-type "9.0.1" framebus "4.0.2" - inject-stylesheet "2.0.0" + inject-stylesheet "4.0.0" promise-polyfill "8.1.3" - restricted-input "2.1.1" + restricted-input "3.0.3" browser-process-hrtime@^1.0.0: version "1.0.0" @@ -1980,12 +2025,12 @@ capture-exit@^2.0.0: dependencies: rsvp "^4.8.4" -card-validator@6.2.0: - version "6.2.0" - resolved "https://registry.yarnpkg.com/card-validator/-/card-validator-6.2.0.tgz#59037c6480df5786473cab720f165ba868560e0b" - integrity sha512-1vYv45JaE9NmixZr4dl6ykzbFKv7imI9L7MQDs235b/a7EGbG8rrEsipeHtVvscLSUbl3RX6UP5gyOe0Y2FlHA== +card-validator@8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/card-validator/-/card-validator-8.1.0.tgz#9f59e039e9a15f66152b228831f3bdcd713f1edf" + integrity sha512-KlWjnGs6DyxRj9DLGPv+sb7AvU9Y6Od7DJWjnTghzplzsKz/vTYqRMK46xO/BCpHNqvnFNNVbSQa1vBFJ+/o8g== dependencies: - credit-card-type "^8.0.0" + credit-card-type "^9.0.0" caseless@~0.12.0: version "0.12.0" @@ -2166,10 +2211,10 @@ core-util-is@1.0.2, core-util-is@~1.0.0: resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= -credit-card-type@8.3.0, credit-card-type@^8.0.0: - version "8.3.0" - resolved "https://registry.yarnpkg.com/credit-card-type/-/credit-card-type-8.3.0.tgz#f93c187c9362411544158c91d552efcc443aa87a" - integrity sha512-czfZUpQ7W9CDxZL4yFLb1kFtM/q2lTOY975hL2aO+DC8+GRNDVSXVCHXhVFZPxiUKmQCZbFP8vIhxx5TBQaThw== +credit-card-type@9.0.1, credit-card-type@^9.0.0: + version "9.0.1" + resolved "https://registry.yarnpkg.com/credit-card-type/-/credit-card-type-9.0.1.tgz#b800ae4089ece5e9362626ff1bb44fb3bb8757ed" + integrity sha512-GtJr+IyIUN67fRXJGIFTw192kgAAneqZ0DDpKKM78Nh32jwfcuTVzJRe3xioECPZybiKHGIHGsbXg//Hu6PKSQ== cross-spawn@^6.0.0: version "6.0.5" @@ -2875,10 +2920,10 @@ ini@~1.3.0: resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" integrity sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw== -inject-stylesheet@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/inject-stylesheet/-/inject-stylesheet-2.0.0.tgz#5153437cbb30c55a203613a6f079a94089b6c361" - integrity sha512-XiItpXWDXRrH1VhG5AnHghuZdpDp6UeugiOKBr3RGmANucucHwKuT0BPSB0zpDqiX3P+rhhJFip1rxOI18+/Tw== +inject-stylesheet@4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/inject-stylesheet/-/inject-stylesheet-4.0.0.tgz#9c2080b227fe17e7f8d5c0aabc42130de4f415c0" + integrity sha512-EULSmN+gdAMR4w9kk57HJ1Lz6Xp+9OGgTbxpNV2QSncG+LWlihH1d/Clm8ui6b+LAqmIVcrtWfwDrMEgDiUpjg== invariant@^2.2.2, invariant@^2.2.4: version "2.2.4" @@ -4232,10 +4277,10 @@ prelude-ls@~1.1.2: resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= -prettier@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.1.1.tgz#d9485dd5e499daa6cb547023b87a6cf51bee37d6" - integrity sha512-9bY+5ZWCfqj3ghYBLxApy2zf6m+NJo5GzmLTpr9FsApsfjriNnS2dahWReHMi7qNPhhHl9SYHJs2cHZLgexNIw== +prettier@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.1.2.tgz#3050700dae2e4c8b67c4c3f666cdb8af405e1ce5" + integrity sha512-16c7K+x4qVlJg9rEbXl7HEGmQyZlG4R9AgP+oHKRMsMsuk8s+ATStlf1NpDqyBI1HpVyfjLOeMhH2LvuNvV5Vg== pretty-format@^26.4.2: version "26.4.2" @@ -4257,7 +4302,7 @@ 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.1.3, promise-polyfill@^8.1.0: +promise-polyfill@8.1.3, promise-polyfill@^8.1.3: version "8.1.3" resolved "https://registry.yarnpkg.com/promise-polyfill/-/promise-polyfill-8.1.3.tgz#8c99b3cf53f3a91c68226ffde7bde81d7f904116" integrity sha512-MG5r82wBzh7pSKDRa9y+vllNHz3e3d4CNj1PQE4BQYxLme0gKYYBm9YENq+UkEikyZ0XbiGWxYlVw3Rl9O/U8g== @@ -4578,12 +4623,12 @@ resolve@^1.3.2, resolve@^1.8.1: dependencies: path-parse "^1.0.6" -restricted-input@2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/restricted-input/-/restricted-input-2.1.1.tgz#8bdb8c924972b73f1bc3f9a91759ecf2ef34c805" - integrity sha512-uMQLSfirbhvVGyGiBxWIMwVLw1a839BX5VWqehYxH38r8eKIwIp0WmgzlIpjdM7CH4TG8ymw6GYIkXXC7dgwBQ== +restricted-input@3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/restricted-input/-/restricted-input-3.0.3.tgz#77f6641fe88ac330bbf431848ccfe55061aa4745" + integrity sha512-n+h80svtx0yHd6kr7b1nGJ87MSJKiX2lRD9BOOzgC7dzx+57qymdbEnZjdbv5po+4iW5nsKZx984mliALLv2eQ== dependencies: - "@braintree/browser-detection" "^1.9.0" + "@braintree/browser-detection" "^1.10.0" ret@~0.1.10: version "0.1.15" @@ -5030,10 +5075,10 @@ terminal-link@^2.0.0: ansi-escapes "^4.2.1" supports-hyperlinks "^2.0.0" -terser@^5.2.1: - version "5.2.1" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.2.1.tgz#40b971b8d28b4fe98c9e8c0d073ab48e7bb96cd8" - integrity sha512-/AOtjRtAMNGO0fIF6m8HfcvXTw/2AKpsOzDn36tA5RfhRdeXyb4RvHxJ5Pah7iL6dFkLk+gOnCaNHGwJPl6TrQ== +terser@^5.3.2: + version "5.3.2" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.3.2.tgz#f4bea90eb92945b2a028ceef79181b9bb586e7af" + integrity sha512-H67sydwBz5jCUA32ZRL319ULu+Su1cAoZnnc+lXnenGRYWyLE3Scgkt8mNoAsMx0h5kdo758zdoS0LG9rYZXDQ== dependencies: commander "^2.20.0" source-map "~0.6.1"