{"_id":"veritone-widgets","_rev":"122-fe90b4804878241819cf449c09fff08d","name":"veritone-widgets","dist-tags":{"beta":"9.0.12-beta.3","latest":"10.1.1"},"versions":{"1.0.1":{"name":"veritone-widgets","version":"1.0.1","license":"Apache-2.0","_id":"veritone-widgets@1.0.1","maintainers":[{"name":"coolmitch","email":"robb.mitch@gmail.com"}],"dist":{"shasum":"4e3615095d6c85503bcd2ddaae7e0020d80e6358","tarball":"https://registry.npmjs.org/veritone-widgets/-/veritone-widgets-1.0.1.tgz","integrity":"sha512-PXz/YSVtqtctVjezr3Tt3O+L35D7FCd4t4xzt6KOQvLa92I/Hx9FdJkHLvkNckmi5TGMEZLfLvuhmgZtzp8P6A==","signatures":[{"sig":"MEQCIDWo55s0AOtGdi/hRSpyAwtrdmY0P395H+jLeyspWYcxAiAMZDp/4SwIiIcSQZka+83SuDyilMpov0a31RONmVo/7w==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"jest":{"setupFiles":["<rootDir>/test/testSuitePolyfills.js","<rootDir>/test/configureEnzyme.js"],"moduleNameMapper":{"\\.(css|scss)$":"identity-obj-proxy","\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$":"<rootDir>/test/__mocks__/fileMock.js"},"moduleDirectories":["node_modules"],"moduleFileExtensions":["js","jsx"]},"main":"dist/bundle.js","scripts":{"lint":"eslint src/** --ext .js","test":"jest","build":"cross-env NODE_ENV=production webpack --config ./webpack.config.js --progress","start":"yarn run start:widget-server; yarn run start:storybook","format":"prettier --write \"./src/**/*.{js,scss}\"","prebuild":"npm run clean:build","test:watch":"jest --watch","clean:build":"rimraf build","prepublishOnly":"npm run test && npm run lint && npm run build","start:storybook":"start-storybook -p 3000 -c .storybook","start:widget-server":"yarn workspace veritone-widgets-server run start &"},"_npmUser":{"name":"coolmitch","email":"robb.mitch@gmail.com"},"description":"Copyright 2017, Veritone Inc.","directories":{},"licenseText":"                                 Apache License\n                           Version 2.0, January 2004\n                        http://www.apache.org/licenses/\n\n   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n   1. Definitions.\n\n      \"License\" shall mean the terms and conditions for use, reproduction,\n      and distribution as defined by Sections 1 through 9 of this document.\n\n      \"Licensor\" shall mean the copyright owner or entity authorized by\n      the copyright owner that is granting the License.\n\n      \"Legal Entity\" shall mean the union of the acting entity and all\n      other entities that control, are controlled by, or are under common\n      control with that entity. For the purposes of this definition,\n      \"control\" means (i) the power, direct or indirect, to cause the\n      direction or management of such entity, whether by contract or\n      otherwise, or (ii) ownership of fifty percent (50%) or more of the\n      outstanding shares, or (iii) beneficial ownership of such entity.\n\n      \"You\" (or \"Your\") shall mean an individual or Legal Entity\n      exercising permissions granted by this License.\n\n      \"Source\" form shall mean the preferred form for making modifications,\n      including but not limited to software source code, documentation\n      source, and configuration files.\n\n      \"Object\" form shall mean any form resulting from mechanical\n      transformation or translation of a Source form, including but\n      not limited to compiled object code, generated documentation,\n      and conversions to other media types.\n\n      \"Work\" shall mean the work of authorship, whether in Source or\n      Object form, made available under the License, as indicated by a\n      copyright notice that is included in or attached to the work\n      (an example is provided in the Appendix below).\n\n      \"Derivative Works\" shall mean any work, whether in Source or Object\n      form, that is based on (or derived from) the Work and for which the\n      editorial revisions, annotations, elaborations, or other modifications\n      represent, as a whole, an original work of authorship. For the purposes\n      of this License, Derivative Works shall not include works that remain\n      separable from, or merely link (or bind by name) to the interfaces of,\n      the Work and Derivative Works thereof.\n\n      \"Contribution\" shall mean any work of authorship, including\n      the original version of the Work and any modifications or additions\n      to that Work or Derivative Works thereof, that is intentionally\n      submitted to Licensor for inclusion in the Work by the copyright owner\n      or by an individual or Legal Entity authorized to submit on behalf of\n      the copyright owner. For the purposes of this definition, \"submitted\"\n      means any form of electronic, verbal, or written communication sent\n      to the Licensor or its representatives, including but not limited to\n      communication on electronic mailing lists, source code control systems,\n      and issue tracking systems that are managed by, or on behalf of, the\n      Licensor for the purpose of discussing and improving the Work, but\n      excluding communication that is conspicuously marked or otherwise\n      designated in writing by the copyright owner as \"Not a Contribution.\"\n\n      \"Contributor\" shall mean Licensor and any individual or Legal Entity\n      on behalf of whom a Contribution has been received by Licensor and\n      subsequently incorporated within the Work.\n\n   2. Grant of Copyright License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      copyright license to reproduce, prepare Derivative Works of,\n      publicly display, publicly perform, sublicense, and distribute the\n      Work and such Derivative Works in Source or Object form.\n\n   3. Grant of Patent License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      (except as stated in this section) patent license to make, have made,\n      use, offer to sell, sell, import, and otherwise transfer the Work,\n      where such license applies only to those patent claims licensable\n      by such Contributor that are necessarily infringed by their\n      Contribution(s) alone or by combination of their Contribution(s)\n      with the Work to which such Contribution(s) was submitted. If You\n      institute patent litigation against any entity (including a\n      cross-claim or counterclaim in a lawsuit) alleging that the Work\n      or a Contribution incorporated within the Work constitutes direct\n      or contributory patent infringement, then any patent licenses\n      granted to You under this License for that Work shall terminate\n      as of the date such litigation is filed.\n\n   4. Redistribution. You may reproduce and distribute copies of the\n      Work or Derivative Works thereof in any medium, with or without\n      modifications, and in Source or Object form, provided that You\n      meet the following conditions:\n\n      (a) You must give any other recipients of the Work or\n          Derivative Works a copy of this License; and\n\n      (b) You must cause any modified files to carry prominent notices\n          stating that You changed the files; and\n\n      (c) You must retain, in the Source form of any Derivative Works\n          that You distribute, all copyright, patent, trademark, and\n          attribution notices from the Source form of the Work,\n          excluding those notices that do not pertain to any part of\n          the Derivative Works; and\n\n      (d) If the Work includes a \"NOTICE\" text file as part of its\n          distribution, then any Derivative Works that You distribute must\n          include a readable copy of the attribution notices contained\n          within such NOTICE file, excluding those notices that do not\n          pertain to any part of the Derivative Works, in at least one\n          of the following places: within a NOTICE text file distributed\n          as part of the Derivative Works; within the Source form or\n          documentation, if provided along with the Derivative Works; or,\n          within a display generated by the Derivative Works, if and\n          wherever such third-party notices normally appear. The contents\n          of the NOTICE file are for informational purposes only and\n          do not modify the License. You may add Your own attribution\n          notices within Derivative Works that You distribute, alongside\n          or as an addendum to the NOTICE text from the Work, provided\n          that such additional attribution notices cannot be construed\n          as modifying the License.\n\n      You may add Your own copyright statement to Your modifications and\n      may provide additional or different license terms and conditions\n      for use, reproduction, or distribution of Your modifications, or\n      for any such Derivative Works as a whole, provided Your use,\n      reproduction, and distribution of the Work otherwise complies with\n      the conditions stated in this License.\n\n   5. Submission of Contributions. Unless You explicitly state otherwise,\n      any Contribution intentionally submitted for inclusion in the Work\n      by You to the Licensor shall be under the terms and conditions of\n      this License, without any additional terms or conditions.\n      Notwithstanding the above, nothing herein shall supersede or modify\n      the terms of any separate license agreement you may have executed\n      with Licensor regarding such Contributions.\n\n   6. Trademarks. This License does not grant permission to use the trade\n      names, trademarks, service marks, or product names of the Licensor,\n      except as required for reasonable and customary use in describing the\n      origin of the Work and reproducing the content of the NOTICE file.\n\n   7. Disclaimer of Warranty. Unless required by applicable law or\n      agreed to in writing, Licensor provides the Work (and each\n      Contributor provides its Contributions) on an \"AS IS\" BASIS,\n      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n      implied, including, without limitation, any warranties or conditions\n      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n      PARTICULAR PURPOSE. You are solely responsible for determining the\n      appropriateness of using or redistributing the Work and assume any\n      risks associated with Your exercise of permissions under this License.\n\n   8. Limitation of Liability. In no event and under no legal theory,\n      whether in tort (including negligence), contract, or otherwise,\n      unless required by applicable law (such as deliberate and grossly\n      negligent acts) or agreed to in writing, shall any Contributor be\n      liable to You for damages, including any direct, indirect, special,\n      incidental, or consequential damages of any character arising as a\n      result of this License or out of the use or inability to use the\n      Work (including but not limited to damages for loss of goodwill,\n      work stoppage, computer failure or malfunction, or any and all\n      other commercial damages or losses), even if such Contributor\n      has been advised of the possibility of such damages.\n\n   9. Accepting Warranty or Additional Liability. While redistributing\n      the Work or Derivative Works thereof, You may choose to offer,\n      and charge a fee for, acceptance of support, warranty, indemnity,\n      or other liability obligations and/or rights consistent with this\n      License. However, in accepting such obligations, You may act only\n      on Your own behalf and on Your sole responsibility, not on behalf\n      of any other Contributor, and only if You agree to indemnify,\n      defend, and hold each Contributor harmless for any liability\n      incurred by, or claims asserted against, such Contributor by reason\n      of your accepting any such warranty or additional liability.\n\n   END OF TERMS AND CONDITIONS\n\n   APPENDIX: How to apply the Apache License to your work.\n\n      To apply the Apache License to your work, attach the following\n      boilerplate notice, with the fields enclosed by brackets \"{}\"\n      replaced with your own identifying information. (Don't include\n      the brackets!)  The text should be enclosed in the appropriate\n      comment syntax for the file format. We also recommend that a\n      file or class name and description of purpose be included on the\n      same \"printed page\" as the copyright notice for easier\n      identification within third-party archives.\n\n   Copyright {yyyy} {name of copyright owner}\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n","dependencies":{"react":"^16.0.0","redux":"^3.7.2","react-dom":"^16.0.0","redux-saga":"^0.15.6","es6-promise":"^4.1.1","react-redux":"^5.0.6","babel-runtime":"^6.26.0","babel-polyfill":"^6.26.0","react-redux-saga":"^1.0.2","veritone-react-common":"^2.0.0","veritone-redux-common":"^2.0.0","babel-plugin-transform-object-rest-spread":"^6.26.0"},"devDependencies":{"raf":"^3.4.0","jest":"^21.2.1","enzyme":"^3.1.0","eslint":"^4.10.0","rimraf":"^2.6.2","webpack":"^3.6.0","cross-env":"^5.1.1","redux-logger":"^3.0.6","redux-devtools":"^3.4.0","@storybook/react":"v3.3.0-alpha.4","redux-mock-store":"^1.3.0","veritone-dev-env":"^1.0.2","identity-obj-proxy":"^3.0.0","redux-validate-fsa":"^0.1.2","babel-plugin-lodash":"^3.3.2","eslint-plugin-react":"^7.4.0","react-test-renderer":"^16.0.0","eslint-plugin-lodash":"^2.5.0","eslint-plugin-promise":"^3.6.0","@storybook/addon-knobs":"3.3.0-alpha.4","eslint-config-prettier":"^2.7.0","enzyme-adapter-react-16":"^1.0.2","babel-plugin-transform-runtime":"^6.23.0","redux-immutable-state-invariant":"^2.1.0"},"_npmOperationalInternal":{"tmp":"tmp/veritone-widgets-1.0.1.tgz_1515616211868_0.16426825849339366","host":"s3://npm-registry-packages"}},"2.0.0":{"name":"veritone-widgets","version":"2.0.0","license":"Apache-2.0","_id":"veritone-widgets@2.0.0","maintainers":[{"name":"coolmitch","email":"robb.mitch@gmail.com"}],"dist":{"shasum":"f7328d689c8f7cd37fe7af1633fa38cf31064011","tarball":"https://registry.npmjs.org/veritone-widgets/-/veritone-widgets-2.0.0.tgz","integrity":"sha512-YdEQtmimcQW/LB1rmsV+Vi1NQl+UDLma9Hk1a+PzdR46ivNxS4XYQVbw3LrFSVfndGNbbSTdDCtG7FjOdwx5iQ==","signatures":[{"sig":"MEQCIBs7G8YNSDvASI21BoyDI0i7d9iHPYiFk8qtzU6rEtbCAiAb6Ccw8zkJlPtxyYOMaR0RnohbFniDcRHwArlH4F6p5Q==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"jest":{"setupFiles":["<rootDir>/test/testSuitePolyfills.js","<rootDir>/test/configureEnzyme.js"],"moduleNameMapper":{"\\.(css|scss)$":"identity-obj-proxy","\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$":"<rootDir>/test/__mocks__/fileMock.js"},"moduleDirectories":["node_modules"],"moduleFileExtensions":["js","jsx"]},"main":"dist/bundle.js","scripts":{"lint":"eslint src/** --ext .js","test":"jest","build":"cross-env NODE_ENV=production webpack --config ./webpack.config.js --progress","start":"yarn run start:widget-server; yarn run start:storybook","format":"prettier --write \"./src/**/*.{js,scss}\"","prebuild":"npm run clean:build","test:watch":"jest --watch","clean:build":"rimraf build","prepublishOnly":"npm run test && npm run lint && npm run build","start:storybook":"start-storybook -p 3000 -c .storybook","start:widget-server":"yarn workspace veritone-widgets-server run start &"},"_npmUser":{"name":"coolmitch","email":"robb.mitch@gmail.com"},"description":"Copyright 2017, Veritone Inc.","directories":{},"licenseText":"                                 Apache License\n                           Version 2.0, January 2004\n                        http://www.apache.org/licenses/\n\n   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n   1. Definitions.\n\n      \"License\" shall mean the terms and conditions for use, reproduction,\n      and distribution as defined by Sections 1 through 9 of this document.\n\n      \"Licensor\" shall mean the copyright owner or entity authorized by\n      the copyright owner that is granting the License.\n\n      \"Legal Entity\" shall mean the union of the acting entity and all\n      other entities that control, are controlled by, or are under common\n      control with that entity. For the purposes of this definition,\n      \"control\" means (i) the power, direct or indirect, to cause the\n      direction or management of such entity, whether by contract or\n      otherwise, or (ii) ownership of fifty percent (50%) or more of the\n      outstanding shares, or (iii) beneficial ownership of such entity.\n\n      \"You\" (or \"Your\") shall mean an individual or Legal Entity\n      exercising permissions granted by this License.\n\n      \"Source\" form shall mean the preferred form for making modifications,\n      including but not limited to software source code, documentation\n      source, and configuration files.\n\n      \"Object\" form shall mean any form resulting from mechanical\n      transformation or translation of a Source form, including but\n      not limited to compiled object code, generated documentation,\n      and conversions to other media types.\n\n      \"Work\" shall mean the work of authorship, whether in Source or\n      Object form, made available under the License, as indicated by a\n      copyright notice that is included in or attached to the work\n      (an example is provided in the Appendix below).\n\n      \"Derivative Works\" shall mean any work, whether in Source or Object\n      form, that is based on (or derived from) the Work and for which the\n      editorial revisions, annotations, elaborations, or other modifications\n      represent, as a whole, an original work of authorship. For the purposes\n      of this License, Derivative Works shall not include works that remain\n      separable from, or merely link (or bind by name) to the interfaces of,\n      the Work and Derivative Works thereof.\n\n      \"Contribution\" shall mean any work of authorship, including\n      the original version of the Work and any modifications or additions\n      to that Work or Derivative Works thereof, that is intentionally\n      submitted to Licensor for inclusion in the Work by the copyright owner\n      or by an individual or Legal Entity authorized to submit on behalf of\n      the copyright owner. For the purposes of this definition, \"submitted\"\n      means any form of electronic, verbal, or written communication sent\n      to the Licensor or its representatives, including but not limited to\n      communication on electronic mailing lists, source code control systems,\n      and issue tracking systems that are managed by, or on behalf of, the\n      Licensor for the purpose of discussing and improving the Work, but\n      excluding communication that is conspicuously marked or otherwise\n      designated in writing by the copyright owner as \"Not a Contribution.\"\n\n      \"Contributor\" shall mean Licensor and any individual or Legal Entity\n      on behalf of whom a Contribution has been received by Licensor and\n      subsequently incorporated within the Work.\n\n   2. Grant of Copyright License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      copyright license to reproduce, prepare Derivative Works of,\n      publicly display, publicly perform, sublicense, and distribute the\n      Work and such Derivative Works in Source or Object form.\n\n   3. Grant of Patent License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      (except as stated in this section) patent license to make, have made,\n      use, offer to sell, sell, import, and otherwise transfer the Work,\n      where such license applies only to those patent claims licensable\n      by such Contributor that are necessarily infringed by their\n      Contribution(s) alone or by combination of their Contribution(s)\n      with the Work to which such Contribution(s) was submitted. If You\n      institute patent litigation against any entity (including a\n      cross-claim or counterclaim in a lawsuit) alleging that the Work\n      or a Contribution incorporated within the Work constitutes direct\n      or contributory patent infringement, then any patent licenses\n      granted to You under this License for that Work shall terminate\n      as of the date such litigation is filed.\n\n   4. Redistribution. You may reproduce and distribute copies of the\n      Work or Derivative Works thereof in any medium, with or without\n      modifications, and in Source or Object form, provided that You\n      meet the following conditions:\n\n      (a) You must give any other recipients of the Work or\n          Derivative Works a copy of this License; and\n\n      (b) You must cause any modified files to carry prominent notices\n          stating that You changed the files; and\n\n      (c) You must retain, in the Source form of any Derivative Works\n          that You distribute, all copyright, patent, trademark, and\n          attribution notices from the Source form of the Work,\n          excluding those notices that do not pertain to any part of\n          the Derivative Works; and\n\n      (d) If the Work includes a \"NOTICE\" text file as part of its\n          distribution, then any Derivative Works that You distribute must\n          include a readable copy of the attribution notices contained\n          within such NOTICE file, excluding those notices that do not\n          pertain to any part of the Derivative Works, in at least one\n          of the following places: within a NOTICE text file distributed\n          as part of the Derivative Works; within the Source form or\n          documentation, if provided along with the Derivative Works; or,\n          within a display generated by the Derivative Works, if and\n          wherever such third-party notices normally appear. The contents\n          of the NOTICE file are for informational purposes only and\n          do not modify the License. You may add Your own attribution\n          notices within Derivative Works that You distribute, alongside\n          or as an addendum to the NOTICE text from the Work, provided\n          that such additional attribution notices cannot be construed\n          as modifying the License.\n\n      You may add Your own copyright statement to Your modifications and\n      may provide additional or different license terms and conditions\n      for use, reproduction, or distribution of Your modifications, or\n      for any such Derivative Works as a whole, provided Your use,\n      reproduction, and distribution of the Work otherwise complies with\n      the conditions stated in this License.\n\n   5. Submission of Contributions. Unless You explicitly state otherwise,\n      any Contribution intentionally submitted for inclusion in the Work\n      by You to the Licensor shall be under the terms and conditions of\n      this License, without any additional terms or conditions.\n      Notwithstanding the above, nothing herein shall supersede or modify\n      the terms of any separate license agreement you may have executed\n      with Licensor regarding such Contributions.\n\n   6. Trademarks. This License does not grant permission to use the trade\n      names, trademarks, service marks, or product names of the Licensor,\n      except as required for reasonable and customary use in describing the\n      origin of the Work and reproducing the content of the NOTICE file.\n\n   7. Disclaimer of Warranty. Unless required by applicable law or\n      agreed to in writing, Licensor provides the Work (and each\n      Contributor provides its Contributions) on an \"AS IS\" BASIS,\n      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n      implied, including, without limitation, any warranties or conditions\n      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n      PARTICULAR PURPOSE. You are solely responsible for determining the\n      appropriateness of using or redistributing the Work and assume any\n      risks associated with Your exercise of permissions under this License.\n\n   8. Limitation of Liability. In no event and under no legal theory,\n      whether in tort (including negligence), contract, or otherwise,\n      unless required by applicable law (such as deliberate and grossly\n      negligent acts) or agreed to in writing, shall any Contributor be\n      liable to You for damages, including any direct, indirect, special,\n      incidental, or consequential damages of any character arising as a\n      result of this License or out of the use or inability to use the\n      Work (including but not limited to damages for loss of goodwill,\n      work stoppage, computer failure or malfunction, or any and all\n      other commercial damages or losses), even if such Contributor\n      has been advised of the possibility of such damages.\n\n   9. Accepting Warranty or Additional Liability. While redistributing\n      the Work or Derivative Works thereof, You may choose to offer,\n      and charge a fee for, acceptance of support, warranty, indemnity,\n      or other liability obligations and/or rights consistent with this\n      License. However, in accepting such obligations, You may act only\n      on Your own behalf and on Your sole responsibility, not on behalf\n      of any other Contributor, and only if You agree to indemnify,\n      defend, and hold each Contributor harmless for any liability\n      incurred by, or claims asserted against, such Contributor by reason\n      of your accepting any such warranty or additional liability.\n\n   END OF TERMS AND CONDITIONS\n\n   APPENDIX: How to apply the Apache License to your work.\n\n      To apply the Apache License to your work, attach the following\n      boilerplate notice, with the fields enclosed by brackets \"{}\"\n      replaced with your own identifying information. (Don't include\n      the brackets!)  The text should be enclosed in the appropriate\n      comment syntax for the file format. We also recommend that a\n      file or class name and description of purpose be included on the\n      same \"printed page\" as the copyright notice for easier\n      identification within third-party archives.\n\n   Copyright {yyyy} {name of copyright owner}\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n","dependencies":{"react":"^16.2.0","redux":"^3.7.2","react-dom":"^16.2.0","redux-saga":"^0.15.6","es6-promise":"^4.1.1","react-redux":"^5.0.6","babel-runtime":"^6.26.0","babel-polyfill":"^6.26.0","react-redux-saga":"^1.0.2","veritone-react-common":"^2.1.0","veritone-redux-common":"^2.1.0","babel-plugin-transform-object-rest-spread":"^6.26.0"},"devDependencies":{"raf":"^3.4.0","jest":"^21.2.1","enzyme":"^3.1.0","eslint":"^4.10.0","rimraf":"^2.6.2","webpack":"^3.6.0","cross-env":"^5.1.1","redux-logger":"^3.0.6","redux-devtools":"^3.4.0","@storybook/react":"v3.3.0-alpha.4","redux-mock-store":"^1.3.0","veritone-dev-env":"^1.0.2","identity-obj-proxy":"^3.0.0","redux-validate-fsa":"^0.1.2","babel-plugin-lodash":"^3.3.2","eslint-plugin-react":"^7.4.0","react-test-renderer":"^16.0.0","eslint-plugin-lodash":"^2.5.0","eslint-plugin-promise":"^3.6.0","@storybook/addon-knobs":"3.3.0-alpha.4","eslint-config-prettier":"^2.7.0","enzyme-adapter-react-16":"^1.0.2","babel-plugin-transform-runtime":"^6.23.0","redux-immutable-state-invariant":"^2.1.0"},"_npmOperationalInternal":{"tmp":"tmp/veritone-widgets-2.0.0.tgz_1516762193169_0.8673197936732322","host":"s3://npm-registry-packages"}},"2.0.1":{"name":"veritone-widgets","version":"2.0.1","license":"Apache-2.0","_id":"veritone-widgets@2.0.1","maintainers":[{"name":"coolmitch","email":"robb.mitch@gmail.com"}],"dist":{"shasum":"a38e9ff25efeb56c2b3454736b71b2dc826ca8f2","tarball":"https://registry.npmjs.org/veritone-widgets/-/veritone-widgets-2.0.1.tgz","integrity":"sha512-h/KhPGQo/qq9f1CTLrwnusb64+NLlC73lu2zWP16uAUuybd3WK3IcRbBb9o3bkw99GsMTiONY7SQfs9Ls6XnOQ==","signatures":[{"sig":"MEUCIQDceOi+IyyFX8U0ab5FOcCcvPD6wm/M/+PSVNeqhnm3mAIgF2ygtaC9zsYhbPtTldcRHmjUwDUxHRVDWWU1lGKf8o8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"jest":{"setupFiles":["<rootDir>/test/testSuitePolyfills.js","<rootDir>/test/configureEnzyme.js"],"moduleNameMapper":{"\\.(css|scss)$":"identity-obj-proxy","\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$":"<rootDir>/test/__mocks__/fileMock.js"},"moduleDirectories":["node_modules"],"moduleFileExtensions":["js","jsx"]},"main":"dist/bundle.js","scripts":{"lint":"eslint src/** --ext .js","test":"jest","build":"cross-env NODE_ENV=production webpack --config ./webpack.config.js --progress","start":"yarn run start:widget-server; yarn run start:storybook","format":"prettier --write \"./src/**/*.{js,scss}\"","prebuild":"npm run clean:build","test:watch":"jest --watch","clean:build":"rimraf build","prepublishOnly":"npm run test && npm run lint && npm run build","start:storybook":"start-storybook -p 3000 -c .storybook","start:widget-server":"yarn workspace veritone-widgets-server run start &"},"_npmUser":{"name":"coolmitch","email":"robb.mitch@gmail.com"},"description":"Copyright 2017, Veritone Inc.","directories":{},"licenseText":"                                 Apache License\n                           Version 2.0, January 2004\n                        http://www.apache.org/licenses/\n\n   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n   1. Definitions.\n\n      \"License\" shall mean the terms and conditions for use, reproduction,\n      and distribution as defined by Sections 1 through 9 of this document.\n\n      \"Licensor\" shall mean the copyright owner or entity authorized by\n      the copyright owner that is granting the License.\n\n      \"Legal Entity\" shall mean the union of the acting entity and all\n      other entities that control, are controlled by, or are under common\n      control with that entity. For the purposes of this definition,\n      \"control\" means (i) the power, direct or indirect, to cause the\n      direction or management of such entity, whether by contract or\n      otherwise, or (ii) ownership of fifty percent (50%) or more of the\n      outstanding shares, or (iii) beneficial ownership of such entity.\n\n      \"You\" (or \"Your\") shall mean an individual or Legal Entity\n      exercising permissions granted by this License.\n\n      \"Source\" form shall mean the preferred form for making modifications,\n      including but not limited to software source code, documentation\n      source, and configuration files.\n\n      \"Object\" form shall mean any form resulting from mechanical\n      transformation or translation of a Source form, including but\n      not limited to compiled object code, generated documentation,\n      and conversions to other media types.\n\n      \"Work\" shall mean the work of authorship, whether in Source or\n      Object form, made available under the License, as indicated by a\n      copyright notice that is included in or attached to the work\n      (an example is provided in the Appendix below).\n\n      \"Derivative Works\" shall mean any work, whether in Source or Object\n      form, that is based on (or derived from) the Work and for which the\n      editorial revisions, annotations, elaborations, or other modifications\n      represent, as a whole, an original work of authorship. For the purposes\n      of this License, Derivative Works shall not include works that remain\n      separable from, or merely link (or bind by name) to the interfaces of,\n      the Work and Derivative Works thereof.\n\n      \"Contribution\" shall mean any work of authorship, including\n      the original version of the Work and any modifications or additions\n      to that Work or Derivative Works thereof, that is intentionally\n      submitted to Licensor for inclusion in the Work by the copyright owner\n      or by an individual or Legal Entity authorized to submit on behalf of\n      the copyright owner. For the purposes of this definition, \"submitted\"\n      means any form of electronic, verbal, or written communication sent\n      to the Licensor or its representatives, including but not limited to\n      communication on electronic mailing lists, source code control systems,\n      and issue tracking systems that are managed by, or on behalf of, the\n      Licensor for the purpose of discussing and improving the Work, but\n      excluding communication that is conspicuously marked or otherwise\n      designated in writing by the copyright owner as \"Not a Contribution.\"\n\n      \"Contributor\" shall mean Licensor and any individual or Legal Entity\n      on behalf of whom a Contribution has been received by Licensor and\n      subsequently incorporated within the Work.\n\n   2. Grant of Copyright License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      copyright license to reproduce, prepare Derivative Works of,\n      publicly display, publicly perform, sublicense, and distribute the\n      Work and such Derivative Works in Source or Object form.\n\n   3. Grant of Patent License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      (except as stated in this section) patent license to make, have made,\n      use, offer to sell, sell, import, and otherwise transfer the Work,\n      where such license applies only to those patent claims licensable\n      by such Contributor that are necessarily infringed by their\n      Contribution(s) alone or by combination of their Contribution(s)\n      with the Work to which such Contribution(s) was submitted. If You\n      institute patent litigation against any entity (including a\n      cross-claim or counterclaim in a lawsuit) alleging that the Work\n      or a Contribution incorporated within the Work constitutes direct\n      or contributory patent infringement, then any patent licenses\n      granted to You under this License for that Work shall terminate\n      as of the date such litigation is filed.\n\n   4. Redistribution. You may reproduce and distribute copies of the\n      Work or Derivative Works thereof in any medium, with or without\n      modifications, and in Source or Object form, provided that You\n      meet the following conditions:\n\n      (a) You must give any other recipients of the Work or\n          Derivative Works a copy of this License; and\n\n      (b) You must cause any modified files to carry prominent notices\n          stating that You changed the files; and\n\n      (c) You must retain, in the Source form of any Derivative Works\n          that You distribute, all copyright, patent, trademark, and\n          attribution notices from the Source form of the Work,\n          excluding those notices that do not pertain to any part of\n          the Derivative Works; and\n\n      (d) If the Work includes a \"NOTICE\" text file as part of its\n          distribution, then any Derivative Works that You distribute must\n          include a readable copy of the attribution notices contained\n          within such NOTICE file, excluding those notices that do not\n          pertain to any part of the Derivative Works, in at least one\n          of the following places: within a NOTICE text file distributed\n          as part of the Derivative Works; within the Source form or\n          documentation, if provided along with the Derivative Works; or,\n          within a display generated by the Derivative Works, if and\n          wherever such third-party notices normally appear. The contents\n          of the NOTICE file are for informational purposes only and\n          do not modify the License. You may add Your own attribution\n          notices within Derivative Works that You distribute, alongside\n          or as an addendum to the NOTICE text from the Work, provided\n          that such additional attribution notices cannot be construed\n          as modifying the License.\n\n      You may add Your own copyright statement to Your modifications and\n      may provide additional or different license terms and conditions\n      for use, reproduction, or distribution of Your modifications, or\n      for any such Derivative Works as a whole, provided Your use,\n      reproduction, and distribution of the Work otherwise complies with\n      the conditions stated in this License.\n\n   5. Submission of Contributions. Unless You explicitly state otherwise,\n      any Contribution intentionally submitted for inclusion in the Work\n      by You to the Licensor shall be under the terms and conditions of\n      this License, without any additional terms or conditions.\n      Notwithstanding the above, nothing herein shall supersede or modify\n      the terms of any separate license agreement you may have executed\n      with Licensor regarding such Contributions.\n\n   6. Trademarks. This License does not grant permission to use the trade\n      names, trademarks, service marks, or product names of the Licensor,\n      except as required for reasonable and customary use in describing the\n      origin of the Work and reproducing the content of the NOTICE file.\n\n   7. Disclaimer of Warranty. Unless required by applicable law or\n      agreed to in writing, Licensor provides the Work (and each\n      Contributor provides its Contributions) on an \"AS IS\" BASIS,\n      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n      implied, including, without limitation, any warranties or conditions\n      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n      PARTICULAR PURPOSE. You are solely responsible for determining the\n      appropriateness of using or redistributing the Work and assume any\n      risks associated with Your exercise of permissions under this License.\n\n   8. Limitation of Liability. In no event and under no legal theory,\n      whether in tort (including negligence), contract, or otherwise,\n      unless required by applicable law (such as deliberate and grossly\n      negligent acts) or agreed to in writing, shall any Contributor be\n      liable to You for damages, including any direct, indirect, special,\n      incidental, or consequential damages of any character arising as a\n      result of this License or out of the use or inability to use the\n      Work (including but not limited to damages for loss of goodwill,\n      work stoppage, computer failure or malfunction, or any and all\n      other commercial damages or losses), even if such Contributor\n      has been advised of the possibility of such damages.\n\n   9. Accepting Warranty or Additional Liability. While redistributing\n      the Work or Derivative Works thereof, You may choose to offer,\n      and charge a fee for, acceptance of support, warranty, indemnity,\n      or other liability obligations and/or rights consistent with this\n      License. However, in accepting such obligations, You may act only\n      on Your own behalf and on Your sole responsibility, not on behalf\n      of any other Contributor, and only if You agree to indemnify,\n      defend, and hold each Contributor harmless for any liability\n      incurred by, or claims asserted against, such Contributor by reason\n      of your accepting any such warranty or additional liability.\n\n   END OF TERMS AND CONDITIONS\n\n   APPENDIX: How to apply the Apache License to your work.\n\n      To apply the Apache License to your work, attach the following\n      boilerplate notice, with the fields enclosed by brackets \"{}\"\n      replaced with your own identifying information. (Don't include\n      the brackets!)  The text should be enclosed in the appropriate\n      comment syntax for the file format. We also recommend that a\n      file or class name and description of purpose be included on the\n      same \"printed page\" as the copyright notice for easier\n      identification within third-party archives.\n\n   Copyright {yyyy} {name of copyright owner}\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n","dependencies":{"react":"^16.2.0","redux":"^3.7.2","react-dom":"^16.2.0","redux-saga":"^0.15.6","es6-promise":"^4.1.1","react-redux":"^5.0.6","babel-runtime":"^6.26.0","babel-polyfill":"^6.26.0","react-redux-saga":"^1.0.2","veritone-react-common":"^2.1.0","veritone-redux-common":"^2.1.0","babel-plugin-transform-object-rest-spread":"^6.26.0"},"devDependencies":{"raf":"^3.4.0","jest":"^21.2.1","enzyme":"^3.1.0","eslint":"^4.10.0","rimraf":"^2.6.2","webpack":"^3.6.0","cross-env":"^5.1.1","redux-logger":"^3.0.6","redux-devtools":"^3.4.0","@storybook/react":"v3.3.0-alpha.4","redux-mock-store":"^1.3.0","veritone-dev-env":"^1.0.2","identity-obj-proxy":"^3.0.0","redux-validate-fsa":"^0.1.2","babel-plugin-lodash":"^3.3.2","eslint-plugin-react":"^7.4.0","react-test-renderer":"^16.0.0","eslint-plugin-lodash":"^2.5.0","eslint-plugin-promise":"^3.6.0","@storybook/addon-knobs":"3.3.0-alpha.4","eslint-config-prettier":"^2.7.0","enzyme-adapter-react-16":"^1.0.2","babel-plugin-transform-runtime":"^6.23.0","redux-immutable-state-invariant":"^2.1.0"},"_npmOperationalInternal":{"tmp":"tmp/veritone-widgets-2.0.1.tgz_1516836056832_0.5435530494432896","host":"s3://npm-registry-packages"}},"2.1.0-beta-1":{"name":"veritone-widgets","version":"2.1.0-beta-1","license":"Apache-2.0","_id":"veritone-widgets@2.1.0-beta-1","maintainers":[{"name":"coolmitch","email":"robb.mitch@gmail.com"}],"dist":{"shasum":"108cd1d6eaed67586871a8807a8d3d615384c4a5","tarball":"https://registry.npmjs.org/veritone-widgets/-/veritone-widgets-2.1.0-beta-1.tgz","fileCount":52,"integrity":"sha512-ErhSU0kLvmRUAp9ya/BFWFCuZu3SS63e1uZ5bg23MpPx5q7LdSXewXXtDkLyFOj4BiF5tG+xPK1kkNvvlwsRtQ==","signatures":[{"sig":"MEUCIQDyxEP7aWqHvYxTjp27uQ1JLPZMOXn7eHZlkIY3UK5qZgIgNIkYxtZa73r9Qgf5VQxnzqd0nrw6yJY3ARbror86keU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":57135},"jest":{"setupFiles":["<rootDir>/test/testSuitePolyfills.js","<rootDir>/test/configureEnzyme.js"],"moduleNameMapper":{"\\.(css|scss)$":"identity-obj-proxy","\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$":"<rootDir>/test/__mocks__/fileMock.js"},"moduleDirectories":["node_modules"],"moduleFileExtensions":["js","jsx"]},"module":"dist/bundle-es.js","readme":"\n# License\nCopyright 2017, Veritone Inc.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.","scripts":{"lint":"eslint src/** --ext .js","test":"jest","build":"cross-env NODE_ENV=production rollup -c","start":"yarn run start:widget-server; yarn run start:storybook","format":"prettier --write \"./src/**/*.{js,scss}\"","prebuild":"npm run clean:build","test:watch":"jest --watch","build:watch":"cross-env NODE_ENV=production rollup -c --watch","clean:build":"rimraf build","prepublishOnly":"npm run test && npm run lint && npm run build","start:storybook":"start-storybook -p 3000 -c .storybook","start:widget-server":"yarn workspace veritone-widgets-server run start &"},"_npmUser":{"name":"coolmitch","email":"robb.mitch@gmail.com"},"description":"Copyright 2017, Veritone Inc.","directories":{},"jsnext:main":"dist/bundle-es.js","licenseText":"                                 Apache License\n                           Version 2.0, January 2004\n                        http://www.apache.org/licenses/\n\n   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n   1. Definitions.\n\n      \"License\" shall mean the terms and conditions for use, reproduction,\n      and distribution as defined by Sections 1 through 9 of this document.\n\n      \"Licensor\" shall mean the copyright owner or entity authorized by\n      the copyright owner that is granting the License.\n\n      \"Legal Entity\" shall mean the union of the acting entity and all\n      other entities that control, are controlled by, or are under common\n      control with that entity. For the purposes of this definition,\n      \"control\" means (i) the power, direct or indirect, to cause the\n      direction or management of such entity, whether by contract or\n      otherwise, or (ii) ownership of fifty percent (50%) or more of the\n      outstanding shares, or (iii) beneficial ownership of such entity.\n\n      \"You\" (or \"Your\") shall mean an individual or Legal Entity\n      exercising permissions granted by this License.\n\n      \"Source\" form shall mean the preferred form for making modifications,\n      including but not limited to software source code, documentation\n      source, and configuration files.\n\n      \"Object\" form shall mean any form resulting from mechanical\n      transformation or translation of a Source form, including but\n      not limited to compiled object code, generated documentation,\n      and conversions to other media types.\n\n      \"Work\" shall mean the work of authorship, whether in Source or\n      Object form, made available under the License, as indicated by a\n      copyright notice that is included in or attached to the work\n      (an example is provided in the Appendix below).\n\n      \"Derivative Works\" shall mean any work, whether in Source or Object\n      form, that is based on (or derived from) the Work and for which the\n      editorial revisions, annotations, elaborations, or other modifications\n      represent, as a whole, an original work of authorship. For the purposes\n      of this License, Derivative Works shall not include works that remain\n      separable from, or merely link (or bind by name) to the interfaces of,\n      the Work and Derivative Works thereof.\n\n      \"Contribution\" shall mean any work of authorship, including\n      the original version of the Work and any modifications or additions\n      to that Work or Derivative Works thereof, that is intentionally\n      submitted to Licensor for inclusion in the Work by the copyright owner\n      or by an individual or Legal Entity authorized to submit on behalf of\n      the copyright owner. For the purposes of this definition, \"submitted\"\n      means any form of electronic, verbal, or written communication sent\n      to the Licensor or its representatives, including but not limited to\n      communication on electronic mailing lists, source code control systems,\n      and issue tracking systems that are managed by, or on behalf of, the\n      Licensor for the purpose of discussing and improving the Work, but\n      excluding communication that is conspicuously marked or otherwise\n      designated in writing by the copyright owner as \"Not a Contribution.\"\n\n      \"Contributor\" shall mean Licensor and any individual or Legal Entity\n      on behalf of whom a Contribution has been received by Licensor and\n      subsequently incorporated within the Work.\n\n   2. Grant of Copyright License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      copyright license to reproduce, prepare Derivative Works of,\n      publicly display, publicly perform, sublicense, and distribute the\n      Work and such Derivative Works in Source or Object form.\n\n   3. Grant of Patent License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      (except as stated in this section) patent license to make, have made,\n      use, offer to sell, sell, import, and otherwise transfer the Work,\n      where such license applies only to those patent claims licensable\n      by such Contributor that are necessarily infringed by their\n      Contribution(s) alone or by combination of their Contribution(s)\n      with the Work to which such Contribution(s) was submitted. If You\n      institute patent litigation against any entity (including a\n      cross-claim or counterclaim in a lawsuit) alleging that the Work\n      or a Contribution incorporated within the Work constitutes direct\n      or contributory patent infringement, then any patent licenses\n      granted to You under this License for that Work shall terminate\n      as of the date such litigation is filed.\n\n   4. Redistribution. You may reproduce and distribute copies of the\n      Work or Derivative Works thereof in any medium, with or without\n      modifications, and in Source or Object form, provided that You\n      meet the following conditions:\n\n      (a) You must give any other recipients of the Work or\n          Derivative Works a copy of this License; and\n\n      (b) You must cause any modified files to carry prominent notices\n          stating that You changed the files; and\n\n      (c) You must retain, in the Source form of any Derivative Works\n          that You distribute, all copyright, patent, trademark, and\n          attribution notices from the Source form of the Work,\n          excluding those notices that do not pertain to any part of\n          the Derivative Works; and\n\n      (d) If the Work includes a \"NOTICE\" text file as part of its\n          distribution, then any Derivative Works that You distribute must\n          include a readable copy of the attribution notices contained\n          within such NOTICE file, excluding those notices that do not\n          pertain to any part of the Derivative Works, in at least one\n          of the following places: within a NOTICE text file distributed\n          as part of the Derivative Works; within the Source form or\n          documentation, if provided along with the Derivative Works; or,\n          within a display generated by the Derivative Works, if and\n          wherever such third-party notices normally appear. The contents\n          of the NOTICE file are for informational purposes only and\n          do not modify the License. You may add Your own attribution\n          notices within Derivative Works that You distribute, alongside\n          or as an addendum to the NOTICE text from the Work, provided\n          that such additional attribution notices cannot be construed\n          as modifying the License.\n\n      You may add Your own copyright statement to Your modifications and\n      may provide additional or different license terms and conditions\n      for use, reproduction, or distribution of Your modifications, or\n      for any such Derivative Works as a whole, provided Your use,\n      reproduction, and distribution of the Work otherwise complies with\n      the conditions stated in this License.\n\n   5. Submission of Contributions. Unless You explicitly state otherwise,\n      any Contribution intentionally submitted for inclusion in the Work\n      by You to the Licensor shall be under the terms and conditions of\n      this License, without any additional terms or conditions.\n      Notwithstanding the above, nothing herein shall supersede or modify\n      the terms of any separate license agreement you may have executed\n      with Licensor regarding such Contributions.\n\n   6. Trademarks. This License does not grant permission to use the trade\n      names, trademarks, service marks, or product names of the Licensor,\n      except as required for reasonable and customary use in describing the\n      origin of the Work and reproducing the content of the NOTICE file.\n\n   7. Disclaimer of Warranty. Unless required by applicable law or\n      agreed to in writing, Licensor provides the Work (and each\n      Contributor provides its Contributions) on an \"AS IS\" BASIS,\n      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n      implied, including, without limitation, any warranties or conditions\n      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n      PARTICULAR PURPOSE. You are solely responsible for determining the\n      appropriateness of using or redistributing the Work and assume any\n      risks associated with Your exercise of permissions under this License.\n\n   8. Limitation of Liability. In no event and under no legal theory,\n      whether in tort (including negligence), contract, or otherwise,\n      unless required by applicable law (such as deliberate and grossly\n      negligent acts) or agreed to in writing, shall any Contributor be\n      liable to You for damages, including any direct, indirect, special,\n      incidental, or consequential damages of any character arising as a\n      result of this License or out of the use or inability to use the\n      Work (including but not limited to damages for loss of goodwill,\n      work stoppage, computer failure or malfunction, or any and all\n      other commercial damages or losses), even if such Contributor\n      has been advised of the possibility of such damages.\n\n   9. Accepting Warranty or Additional Liability. While redistributing\n      the Work or Derivative Works thereof, You may choose to offer,\n      and charge a fee for, acceptance of support, warranty, indemnity,\n      or other liability obligations and/or rights consistent with this\n      License. However, in accepting such obligations, You may act only\n      on Your own behalf and on Your sole responsibility, not on behalf\n      of any other Contributor, and only if You agree to indemnify,\n      defend, and hold each Contributor harmless for any liability\n      incurred by, or claims asserted against, such Contributor by reason\n      of your accepting any such warranty or additional liability.\n\n   END OF TERMS AND CONDITIONS\n\n   APPENDIX: How to apply the Apache License to your work.\n\n      To apply the Apache License to your work, attach the following\n      boilerplate notice, with the fields enclosed by brackets \"{}\"\n      replaced with your own identifying information. (Don't include\n      the brackets!)  The text should be enclosed in the appropriate\n      comment syntax for the file format. We also recommend that a\n      file or class name and description of purpose be included on the\n      same \"printed page\" as the copyright notice for easier\n      identification within third-party archives.\n\n   Copyright {yyyy} {name of copyright owner}\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n","dependencies":{"react":"^16.2.0","redux":"^3.7.2","react-dom":"^16.2.0","redux-saga":"^0.15.6","es6-promise":"^4.1.1","react-redux":"^5.0.6","babel-runtime":"^6.26.0","babel-polyfill":"^6.26.0","react-redux-saga":"^1.0.2","veritone-react-common":"^2.2.0-beta-1","veritone-redux-common":"^2.2.0-beta-1","babel-plugin-transform-object-rest-spread":"^6.26.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"raf":"^3.4.0","jest":"^21.2.1","enzyme":"^3.1.0","eslint":"^4.10.0","rimraf":"^2.6.2","rollup":"^0.55.1","webpack":"^3.6.0","cross-env":"^5.1.1","redux-logger":"^3.0.6","redux-devtools":"^3.4.0","@storybook/react":"v3.3.0-alpha.4","redux-mock-store":"^1.3.0","veritone-dev-env":"^1.0.2","rollup-plugin-url":"^1.3.0","identity-obj-proxy":"^3.0.0","redux-validate-fsa":"^0.1.2","rollup-plugin-json":"^2.3.0","babel-plugin-lodash":"^3.3.2","eslint-plugin-react":"^7.4.0","react-test-renderer":"^16.0.0","rollup-plugin-alias":"^1.4.0","rollup-plugin-babel":"^3.0.3","eslint-plugin-lodash":"^2.5.0","rollup-plugin-uglify":"^3.0.0","babel-plugin-date-fns":"^0.1.0","eslint-plugin-promise":"^3.6.0","rollup-plugin-postcss":"^1.2.8","rollup-plugin-replace":"^2.0.0","@storybook/addon-knobs":"3.3.0-alpha.4","eslint-config-prettier":"^2.7.0","rollup-analyzer-plugin":"^1.1.1","rollup-plugin-commonjs":"^8.3.0","enzyme-adapter-react-16":"^1.0.2","rollup-plugin-node-resolve":"^3.0.2","babel-plugin-transform-runtime":"^6.23.0","redux-immutable-state-invariant":"^2.1.0","babel-plugin-add-react-displayname":"^0.0.5","babel-plugin-transform-class-properties":"^6.24.1","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-plugin-transform-export-extensions":"^6.22.0"},"_npmOperationalInternal":{"tmp":"tmp/veritone-widgets_2.1.0-beta-1_1518125976594_0.648065243395592","host":"s3://npm-registry-packages"}},"2.1.0-beta-3":{"name":"veritone-widgets","version":"2.1.0-beta-3","license":"Apache-2.0","_id":"veritone-widgets@2.1.0-beta-3","maintainers":[{"name":"coolmitch","email":"robb.mitch@gmail.com"}],"dist":{"shasum":"953b441c6c96637abfc45fd9a20165ec9b4c1c92","tarball":"https://registry.npmjs.org/veritone-widgets/-/veritone-widgets-2.1.0-beta-3.tgz","fileCount":52,"integrity":"sha512-nDqk0UGnswpiKn09vqJXBxAIbNiBeVTVXhxvCZjS42rZxcY7YsBajkQfNhyheVLxnYoCzDldVlzKeFYNmxjt7w==","signatures":[{"sig":"MEUCIDZu356o6u+u2lbODCzE/pOPNUq5zS6vnoWm17ts+COLAiEA73qhRGuU7uZO4+sksOIh5mHcY+tbakwdpssbPY8eiFk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":57135},"jest":{"setupFiles":["<rootDir>/test/testSuitePolyfills.js","<rootDir>/test/configureEnzyme.js"],"moduleNameMapper":{"\\.(css|scss)$":"identity-obj-proxy","\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$":"<rootDir>/test/__mocks__/fileMock.js"},"moduleDirectories":["node_modules"],"moduleFileExtensions":["js","jsx"]},"module":"dist/bundle-es.js","readme":"\n# License\nCopyright 2017, Veritone Inc.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.","scripts":{"lint":"eslint src/** --ext .js","test":"jest","build":"cross-env NODE_ENV=production rollup -c","start":"yarn run start:widget-server; yarn run start:storybook","format":"prettier --write \"./src/**/*.{js,scss}\"","prebuild":"npm run clean:build","test:watch":"jest --watch","build:watch":"cross-env NODE_ENV=production rollup -c --watch","clean:build":"rimraf build","prepublishOnly":"npm run test && npm run lint && npm run build","start:storybook":"start-storybook -p 3000 -c .storybook","start:widget-server":"yarn workspace veritone-widgets-server run start &"},"_npmUser":{"name":"coolmitch","email":"robb.mitch@gmail.com"},"description":"Copyright 2017, Veritone Inc.","directories":{},"jsnext:main":"dist/bundle-es.js","licenseText":"                                 Apache License\n                           Version 2.0, January 2004\n                        http://www.apache.org/licenses/\n\n   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n   1. Definitions.\n\n      \"License\" shall mean the terms and conditions for use, reproduction,\n      and distribution as defined by Sections 1 through 9 of this document.\n\n      \"Licensor\" shall mean the copyright owner or entity authorized by\n      the copyright owner that is granting the License.\n\n      \"Legal Entity\" shall mean the union of the acting entity and all\n      other entities that control, are controlled by, or are under common\n      control with that entity. For the purposes of this definition,\n      \"control\" means (i) the power, direct or indirect, to cause the\n      direction or management of such entity, whether by contract or\n      otherwise, or (ii) ownership of fifty percent (50%) or more of the\n      outstanding shares, or (iii) beneficial ownership of such entity.\n\n      \"You\" (or \"Your\") shall mean an individual or Legal Entity\n      exercising permissions granted by this License.\n\n      \"Source\" form shall mean the preferred form for making modifications,\n      including but not limited to software source code, documentation\n      source, and configuration files.\n\n      \"Object\" form shall mean any form resulting from mechanical\n      transformation or translation of a Source form, including but\n      not limited to compiled object code, generated documentation,\n      and conversions to other media types.\n\n      \"Work\" shall mean the work of authorship, whether in Source or\n      Object form, made available under the License, as indicated by a\n      copyright notice that is included in or attached to the work\n      (an example is provided in the Appendix below).\n\n      \"Derivative Works\" shall mean any work, whether in Source or Object\n      form, that is based on (or derived from) the Work and for which the\n      editorial revisions, annotations, elaborations, or other modifications\n      represent, as a whole, an original work of authorship. For the purposes\n      of this License, Derivative Works shall not include works that remain\n      separable from, or merely link (or bind by name) to the interfaces of,\n      the Work and Derivative Works thereof.\n\n      \"Contribution\" shall mean any work of authorship, including\n      the original version of the Work and any modifications or additions\n      to that Work or Derivative Works thereof, that is intentionally\n      submitted to Licensor for inclusion in the Work by the copyright owner\n      or by an individual or Legal Entity authorized to submit on behalf of\n      the copyright owner. For the purposes of this definition, \"submitted\"\n      means any form of electronic, verbal, or written communication sent\n      to the Licensor or its representatives, including but not limited to\n      communication on electronic mailing lists, source code control systems,\n      and issue tracking systems that are managed by, or on behalf of, the\n      Licensor for the purpose of discussing and improving the Work, but\n      excluding communication that is conspicuously marked or otherwise\n      designated in writing by the copyright owner as \"Not a Contribution.\"\n\n      \"Contributor\" shall mean Licensor and any individual or Legal Entity\n      on behalf of whom a Contribution has been received by Licensor and\n      subsequently incorporated within the Work.\n\n   2. Grant of Copyright License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      copyright license to reproduce, prepare Derivative Works of,\n      publicly display, publicly perform, sublicense, and distribute the\n      Work and such Derivative Works in Source or Object form.\n\n   3. Grant of Patent License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      (except as stated in this section) patent license to make, have made,\n      use, offer to sell, sell, import, and otherwise transfer the Work,\n      where such license applies only to those patent claims licensable\n      by such Contributor that are necessarily infringed by their\n      Contribution(s) alone or by combination of their Contribution(s)\n      with the Work to which such Contribution(s) was submitted. If You\n      institute patent litigation against any entity (including a\n      cross-claim or counterclaim in a lawsuit) alleging that the Work\n      or a Contribution incorporated within the Work constitutes direct\n      or contributory patent infringement, then any patent licenses\n      granted to You under this License for that Work shall terminate\n      as of the date such litigation is filed.\n\n   4. Redistribution. You may reproduce and distribute copies of the\n      Work or Derivative Works thereof in any medium, with or without\n      modifications, and in Source or Object form, provided that You\n      meet the following conditions:\n\n      (a) You must give any other recipients of the Work or\n          Derivative Works a copy of this License; and\n\n      (b) You must cause any modified files to carry prominent notices\n          stating that You changed the files; and\n\n      (c) You must retain, in the Source form of any Derivative Works\n          that You distribute, all copyright, patent, trademark, and\n          attribution notices from the Source form of the Work,\n          excluding those notices that do not pertain to any part of\n          the Derivative Works; and\n\n      (d) If the Work includes a \"NOTICE\" text file as part of its\n          distribution, then any Derivative Works that You distribute must\n          include a readable copy of the attribution notices contained\n          within such NOTICE file, excluding those notices that do not\n          pertain to any part of the Derivative Works, in at least one\n          of the following places: within a NOTICE text file distributed\n          as part of the Derivative Works; within the Source form or\n          documentation, if provided along with the Derivative Works; or,\n          within a display generated by the Derivative Works, if and\n          wherever such third-party notices normally appear. The contents\n          of the NOTICE file are for informational purposes only and\n          do not modify the License. You may add Your own attribution\n          notices within Derivative Works that You distribute, alongside\n          or as an addendum to the NOTICE text from the Work, provided\n          that such additional attribution notices cannot be construed\n          as modifying the License.\n\n      You may add Your own copyright statement to Your modifications and\n      may provide additional or different license terms and conditions\n      for use, reproduction, or distribution of Your modifications, or\n      for any such Derivative Works as a whole, provided Your use,\n      reproduction, and distribution of the Work otherwise complies with\n      the conditions stated in this License.\n\n   5. Submission of Contributions. Unless You explicitly state otherwise,\n      any Contribution intentionally submitted for inclusion in the Work\n      by You to the Licensor shall be under the terms and conditions of\n      this License, without any additional terms or conditions.\n      Notwithstanding the above, nothing herein shall supersede or modify\n      the terms of any separate license agreement you may have executed\n      with Licensor regarding such Contributions.\n\n   6. Trademarks. This License does not grant permission to use the trade\n      names, trademarks, service marks, or product names of the Licensor,\n      except as required for reasonable and customary use in describing the\n      origin of the Work and reproducing the content of the NOTICE file.\n\n   7. Disclaimer of Warranty. Unless required by applicable law or\n      agreed to in writing, Licensor provides the Work (and each\n      Contributor provides its Contributions) on an \"AS IS\" BASIS,\n      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n      implied, including, without limitation, any warranties or conditions\n      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n      PARTICULAR PURPOSE. You are solely responsible for determining the\n      appropriateness of using or redistributing the Work and assume any\n      risks associated with Your exercise of permissions under this License.\n\n   8. Limitation of Liability. In no event and under no legal theory,\n      whether in tort (including negligence), contract, or otherwise,\n      unless required by applicable law (such as deliberate and grossly\n      negligent acts) or agreed to in writing, shall any Contributor be\n      liable to You for damages, including any direct, indirect, special,\n      incidental, or consequential damages of any character arising as a\n      result of this License or out of the use or inability to use the\n      Work (including but not limited to damages for loss of goodwill,\n      work stoppage, computer failure or malfunction, or any and all\n      other commercial damages or losses), even if such Contributor\n      has been advised of the possibility of such damages.\n\n   9. Accepting Warranty or Additional Liability. While redistributing\n      the Work or Derivative Works thereof, You may choose to offer,\n      and charge a fee for, acceptance of support, warranty, indemnity,\n      or other liability obligations and/or rights consistent with this\n      License. However, in accepting such obligations, You may act only\n      on Your own behalf and on Your sole responsibility, not on behalf\n      of any other Contributor, and only if You agree to indemnify,\n      defend, and hold each Contributor harmless for any liability\n      incurred by, or claims asserted against, such Contributor by reason\n      of your accepting any such warranty or additional liability.\n\n   END OF TERMS AND CONDITIONS\n\n   APPENDIX: How to apply the Apache License to your work.\n\n      To apply the Apache License to your work, attach the following\n      boilerplate notice, with the fields enclosed by brackets \"{}\"\n      replaced with your own identifying information. (Don't include\n      the brackets!)  The text should be enclosed in the appropriate\n      comment syntax for the file format. We also recommend that a\n      file or class name and description of purpose be included on the\n      same \"printed page\" as the copyright notice for easier\n      identification within third-party archives.\n\n   Copyright {yyyy} {name of copyright owner}\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n","dependencies":{"react":"^16.2.0","redux":"^3.7.2","react-dom":"^16.2.0","redux-saga":"^0.15.6","es6-promise":"^4.1.1","react-redux":"^5.0.6","babel-runtime":"^6.26.0","babel-polyfill":"^6.26.0","react-redux-saga":"^1.0.2","veritone-react-common":"^2.2.0-beta-1","veritone-redux-common":"^2.2.0-beta-1","babel-plugin-transform-object-rest-spread":"^6.26.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"raf":"^3.4.0","jest":"^21.2.1","enzyme":"^3.1.0","eslint":"^4.10.0","rimraf":"^2.6.2","rollup":"^0.55.1","webpack":"^3.6.0","cross-env":"^5.1.1","redux-logger":"^3.0.6","redux-devtools":"^3.4.0","@storybook/react":"v3.3.0-alpha.4","redux-mock-store":"^1.3.0","veritone-dev-env":"^1.0.2","rollup-plugin-url":"^1.3.0","identity-obj-proxy":"^3.0.0","redux-validate-fsa":"^0.1.2","rollup-plugin-json":"^2.3.0","babel-plugin-lodash":"^3.3.2","eslint-plugin-react":"^7.4.0","react-test-renderer":"^16.0.0","rollup-plugin-alias":"^1.4.0","rollup-plugin-babel":"^3.0.3","eslint-plugin-lodash":"^2.5.0","rollup-plugin-uglify":"^3.0.0","babel-plugin-date-fns":"^0.1.0","eslint-plugin-promise":"^3.6.0","rollup-plugin-postcss":"^1.2.8","rollup-plugin-replace":"^2.0.0","@storybook/addon-knobs":"3.3.0-alpha.4","eslint-config-prettier":"^2.7.0","rollup-analyzer-plugin":"^1.1.1","rollup-plugin-commonjs":"^8.3.0","enzyme-adapter-react-16":"^1.0.2","rollup-plugin-node-resolve":"^3.0.2","babel-plugin-transform-runtime":"^6.23.0","redux-immutable-state-invariant":"^2.1.0","babel-plugin-add-react-displayname":"^0.0.5","babel-plugin-transform-class-properties":"^6.24.1","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-plugin-transform-export-extensions":"^6.22.0"},"_npmOperationalInternal":{"tmp":"tmp/veritone-widgets_2.1.0-beta-3_1518127726729_0.030047594533273436","host":"s3://npm-registry-packages"}},"2.1.0-beta-4":{"name":"veritone-widgets","version":"2.1.0-beta-4","license":"Apache-2.0","_id":"veritone-widgets@2.1.0-beta-4","maintainers":[{"name":"coolmitch","email":"robb.mitch@gmail.com"}],"dist":{"shasum":"925a1719051e587456ae8c6754e3cf811ea2f7bc","tarball":"https://registry.npmjs.org/veritone-widgets/-/veritone-widgets-2.1.0-beta-4.tgz","fileCount":54,"integrity":"sha512-EvuqnBAbzosTsh7Mn8g6r8pFycRctIov1sWk39Y7EMVcxNOEQYPCMrEoXIRcz08frVvFGZWbI6ebToYKwlCkiQ==","signatures":[{"sig":"MEQCIEswmLA4SQYGLt/fzTrxOnJpWud0nr7TV2KDslSEYK+oAiBYytQDJOvak0qntwNemDs2ZyqrN1ZkvRICvVuOaFbQuQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1626330},"jest":{"setupFiles":["<rootDir>/test/testSuitePolyfills.js","<rootDir>/test/configureEnzyme.js"],"moduleNameMapper":{"\\.(css|scss)$":"identity-obj-proxy","\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$":"<rootDir>/test/__mocks__/fileMock.js"},"moduleDirectories":["node_modules"],"moduleFileExtensions":["js","jsx"]},"module":"dist/bundle-es.js","readme":"\n# License\nCopyright 2017, Veritone Inc.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.","scripts":{"lint":"eslint src/** --ext .js","test":"jest","build":"cross-env NODE_ENV=production rollup -c","start":"yarn run start:widget-server; yarn run start:storybook","format":"prettier --write \"./src/**/*.{js,scss}\"","prebuild":"npm run clean:build","test:watch":"jest --watch","build:watch":"cross-env NODE_ENV=production rollup -c --watch","clean:build":"rimraf build","prepublishOnly":"npm run test && npm run lint && npm run build","start:storybook":"start-storybook -p 3000 -c .storybook","start:widget-server":"yarn workspace veritone-widgets-server run start &"},"_npmUser":{"name":"coolmitch","email":"robb.mitch@gmail.com"},"description":"Copyright 2017, Veritone Inc.","directories":{},"jsnext:main":"dist/bundle-es.js","licenseText":"                                 Apache License\n                           Version 2.0, January 2004\n                        http://www.apache.org/licenses/\n\n   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n   1. Definitions.\n\n      \"License\" shall mean the terms and conditions for use, reproduction,\n      and distribution as defined by Sections 1 through 9 of this document.\n\n      \"Licensor\" shall mean the copyright owner or entity authorized by\n      the copyright owner that is granting the License.\n\n      \"Legal Entity\" shall mean the union of the acting entity and all\n      other entities that control, are controlled by, or are under common\n      control with that entity. For the purposes of this definition,\n      \"control\" means (i) the power, direct or indirect, to cause the\n      direction or management of such entity, whether by contract or\n      otherwise, or (ii) ownership of fifty percent (50%) or more of the\n      outstanding shares, or (iii) beneficial ownership of such entity.\n\n      \"You\" (or \"Your\") shall mean an individual or Legal Entity\n      exercising permissions granted by this License.\n\n      \"Source\" form shall mean the preferred form for making modifications,\n      including but not limited to software source code, documentation\n      source, and configuration files.\n\n      \"Object\" form shall mean any form resulting from mechanical\n      transformation or translation of a Source form, including but\n      not limited to compiled object code, generated documentation,\n      and conversions to other media types.\n\n      \"Work\" shall mean the work of authorship, whether in Source or\n      Object form, made available under the License, as indicated by a\n      copyright notice that is included in or attached to the work\n      (an example is provided in the Appendix below).\n\n      \"Derivative Works\" shall mean any work, whether in Source or Object\n      form, that is based on (or derived from) the Work and for which the\n      editorial revisions, annotations, elaborations, or other modifications\n      represent, as a whole, an original work of authorship. For the purposes\n      of this License, Derivative Works shall not include works that remain\n      separable from, or merely link (or bind by name) to the interfaces of,\n      the Work and Derivative Works thereof.\n\n      \"Contribution\" shall mean any work of authorship, including\n      the original version of the Work and any modifications or additions\n      to that Work or Derivative Works thereof, that is intentionally\n      submitted to Licensor for inclusion in the Work by the copyright owner\n      or by an individual or Legal Entity authorized to submit on behalf of\n      the copyright owner. For the purposes of this definition, \"submitted\"\n      means any form of electronic, verbal, or written communication sent\n      to the Licensor or its representatives, including but not limited to\n      communication on electronic mailing lists, source code control systems,\n      and issue tracking systems that are managed by, or on behalf of, the\n      Licensor for the purpose of discussing and improving the Work, but\n      excluding communication that is conspicuously marked or otherwise\n      designated in writing by the copyright owner as \"Not a Contribution.\"\n\n      \"Contributor\" shall mean Licensor and any individual or Legal Entity\n      on behalf of whom a Contribution has been received by Licensor and\n      subsequently incorporated within the Work.\n\n   2. Grant of Copyright License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      copyright license to reproduce, prepare Derivative Works of,\n      publicly display, publicly perform, sublicense, and distribute the\n      Work and such Derivative Works in Source or Object form.\n\n   3. Grant of Patent License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      (except as stated in this section) patent license to make, have made,\n      use, offer to sell, sell, import, and otherwise transfer the Work,\n      where such license applies only to those patent claims licensable\n      by such Contributor that are necessarily infringed by their\n      Contribution(s) alone or by combination of their Contribution(s)\n      with the Work to which such Contribution(s) was submitted. If You\n      institute patent litigation against any entity (including a\n      cross-claim or counterclaim in a lawsuit) alleging that the Work\n      or a Contribution incorporated within the Work constitutes direct\n      or contributory patent infringement, then any patent licenses\n      granted to You under this License for that Work shall terminate\n      as of the date such litigation is filed.\n\n   4. Redistribution. You may reproduce and distribute copies of the\n      Work or Derivative Works thereof in any medium, with or without\n      modifications, and in Source or Object form, provided that You\n      meet the following conditions:\n\n      (a) You must give any other recipients of the Work or\n          Derivative Works a copy of this License; and\n\n      (b) You must cause any modified files to carry prominent notices\n          stating that You changed the files; and\n\n      (c) You must retain, in the Source form of any Derivative Works\n          that You distribute, all copyright, patent, trademark, and\n          attribution notices from the Source form of the Work,\n          excluding those notices that do not pertain to any part of\n          the Derivative Works; and\n\n      (d) If the Work includes a \"NOTICE\" text file as part of its\n          distribution, then any Derivative Works that You distribute must\n          include a readable copy of the attribution notices contained\n          within such NOTICE file, excluding those notices that do not\n          pertain to any part of the Derivative Works, in at least one\n          of the following places: within a NOTICE text file distributed\n          as part of the Derivative Works; within the Source form or\n          documentation, if provided along with the Derivative Works; or,\n          within a display generated by the Derivative Works, if and\n          wherever such third-party notices normally appear. The contents\n          of the NOTICE file are for informational purposes only and\n          do not modify the License. You may add Your own attribution\n          notices within Derivative Works that You distribute, alongside\n          or as an addendum to the NOTICE text from the Work, provided\n          that such additional attribution notices cannot be construed\n          as modifying the License.\n\n      You may add Your own copyright statement to Your modifications and\n      may provide additional or different license terms and conditions\n      for use, reproduction, or distribution of Your modifications, or\n      for any such Derivative Works as a whole, provided Your use,\n      reproduction, and distribution of the Work otherwise complies with\n      the conditions stated in this License.\n\n   5. Submission of Contributions. Unless You explicitly state otherwise,\n      any Contribution intentionally submitted for inclusion in the Work\n      by You to the Licensor shall be under the terms and conditions of\n      this License, without any additional terms or conditions.\n      Notwithstanding the above, nothing herein shall supersede or modify\n      the terms of any separate license agreement you may have executed\n      with Licensor regarding such Contributions.\n\n   6. Trademarks. This License does not grant permission to use the trade\n      names, trademarks, service marks, or product names of the Licensor,\n      except as required for reasonable and customary use in describing the\n      origin of the Work and reproducing the content of the NOTICE file.\n\n   7. Disclaimer of Warranty. Unless required by applicable law or\n      agreed to in writing, Licensor provides the Work (and each\n      Contributor provides its Contributions) on an \"AS IS\" BASIS,\n      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n      implied, including, without limitation, any warranties or conditions\n      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n      PARTICULAR PURPOSE. You are solely responsible for determining the\n      appropriateness of using or redistributing the Work and assume any\n      risks associated with Your exercise of permissions under this License.\n\n   8. Limitation of Liability. In no event and under no legal theory,\n      whether in tort (including negligence), contract, or otherwise,\n      unless required by applicable law (such as deliberate and grossly\n      negligent acts) or agreed to in writing, shall any Contributor be\n      liable to You for damages, including any direct, indirect, special,\n      incidental, or consequential damages of any character arising as a\n      result of this License or out of the use or inability to use the\n      Work (including but not limited to damages for loss of goodwill,\n      work stoppage, computer failure or malfunction, or any and all\n      other commercial damages or losses), even if such Contributor\n      has been advised of the possibility of such damages.\n\n   9. Accepting Warranty or Additional Liability. While redistributing\n      the Work or Derivative Works thereof, You may choose to offer,\n      and charge a fee for, acceptance of support, warranty, indemnity,\n      or other liability obligations and/or rights consistent with this\n      License. However, in accepting such obligations, You may act only\n      on Your own behalf and on Your sole responsibility, not on behalf\n      of any other Contributor, and only if You agree to indemnify,\n      defend, and hold each Contributor harmless for any liability\n      incurred by, or claims asserted against, such Contributor by reason\n      of your accepting any such warranty or additional liability.\n\n   END OF TERMS AND CONDITIONS\n\n   APPENDIX: How to apply the Apache License to your work.\n\n      To apply the Apache License to your work, attach the following\n      boilerplate notice, with the fields enclosed by brackets \"{}\"\n      replaced with your own identifying information. (Don't include\n      the brackets!)  The text should be enclosed in the appropriate\n      comment syntax for the file format. We also recommend that a\n      file or class name and description of purpose be included on the\n      same \"printed page\" as the copyright notice for easier\n      identification within third-party archives.\n\n   Copyright {yyyy} {name of copyright owner}\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n","dependencies":{"react":"^16.2.0","redux":"^3.7.2","react-dom":"^16.2.0","redux-saga":"^0.15.6","es6-promise":"^4.1.1","react-redux":"^5.0.6","babel-runtime":"^6.26.0","babel-polyfill":"^6.26.0","react-redux-saga":"^1.0.2","veritone-react-common":"^2.2.0-beta-1","veritone-redux-common":"^2.2.0-beta-1","babel-plugin-transform-object-rest-spread":"^6.26.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"raf":"^3.4.0","jest":"^21.2.1","enzyme":"^3.1.0","eslint":"^4.10.0","rimraf":"^2.6.2","rollup":"^0.55.1","webpack":"^3.6.0","cross-env":"^5.1.1","redux-logger":"^3.0.6","redux-devtools":"^3.4.0","@storybook/react":"v3.3.0-alpha.4","redux-mock-store":"^1.3.0","veritone-dev-env":"^1.0.2","rollup-plugin-url":"^1.3.0","identity-obj-proxy":"^3.0.0","redux-validate-fsa":"^0.1.2","rollup-plugin-json":"^2.3.0","babel-plugin-lodash":"^3.3.2","eslint-plugin-react":"^7.4.0","react-test-renderer":"^16.0.0","rollup-plugin-alias":"^1.4.0","rollup-plugin-babel":"^3.0.3","eslint-plugin-lodash":"^2.5.0","rollup-plugin-uglify":"^3.0.0","babel-plugin-date-fns":"^0.1.0","eslint-plugin-promise":"^3.6.0","rollup-plugin-postcss":"^1.2.8","rollup-plugin-replace":"^2.0.0","@storybook/addon-knobs":"3.3.0-alpha.4","eslint-config-prettier":"^2.7.0","rollup-analyzer-plugin":"^1.1.1","rollup-plugin-commonjs":"^8.3.0","enzyme-adapter-react-16":"^1.0.2","rollup-plugin-node-resolve":"^3.0.2","babel-plugin-transform-runtime":"^6.23.0","redux-immutable-state-invariant":"^2.1.0","babel-plugin-add-react-displayname":"^0.0.5","babel-plugin-transform-class-properties":"^6.24.1","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-plugin-transform-export-extensions":"^6.22.0"},"_npmOperationalInternal":{"tmp":"tmp/veritone-widgets_2.1.0-beta-4_1518127965374_0.9125700309631124","host":"s3://npm-registry-packages"}},"2.1.0-beta-5":{"name":"veritone-widgets","version":"2.1.0-beta-5","license":"Apache-2.0","_id":"veritone-widgets@2.1.0-beta-5","maintainers":[{"name":"coolmitch","email":"robb.mitch@gmail.com"}],"dist":{"shasum":"1ca6bd54409a67994dc4ddaafd3800a3bba18371","tarball":"https://registry.npmjs.org/veritone-widgets/-/veritone-widgets-2.1.0-beta-5.tgz","fileCount":54,"integrity":"sha512-raOoI4SmfSLKhOMQAyyTtnFztGD/sSU+cqujn/BYpB33OQpTLoQsL5dXTGBhBIlxKuc/ZNHp0tLg3FZOa5nVKQ==","signatures":[{"sig":"MEUCIAbDOdHzQGusIllQ910MsuAL8o5eOMcBT9y9m+kbM04jAiEA3BVh2Xgiv/s9Sg5fSePSZ4/ZWbAJlomGDJGdIAp3WtA=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1626392},"jest":{"setupFiles":["<rootDir>/test/testSuitePolyfills.js","<rootDir>/test/configureEnzyme.js"],"moduleNameMapper":{"\\.(css|scss)$":"identity-obj-proxy","\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$":"<rootDir>/test/__mocks__/fileMock.js"},"moduleDirectories":["node_modules"],"moduleFileExtensions":["js","jsx"]},"module":"dist/bundle-es.js","readme":"\n# License\nCopyright 2017, Veritone Inc.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.","scripts":{"lint":"eslint src/** --ext .js","test":"jest","build":"cross-env NODE_ENV=production rollup -c","start":"yarn run start:widget-server; yarn run start:storybook","format":"prettier --write \"./src/**/*.{js,scss}\"","prebuild":"npm run clean:build","test:watch":"jest --watch","build:watch":"cross-env NODE_ENV=production rollup -c --watch","clean:build":"rimraf build","prepublishOnly":"npm run test && npm run lint && npm run build","start:storybook":"start-storybook -p 3000 -c .storybook","start:widget-server":"yarn workspace veritone-widgets-server run start &"},"_npmUser":{"name":"coolmitch","email":"robb.mitch@gmail.com"},"description":"Copyright 2017, Veritone Inc.","directories":{},"jsnext:main":"dist/bundle-es.js","licenseText":"                                 Apache License\n                           Version 2.0, January 2004\n                        http://www.apache.org/licenses/\n\n   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n   1. Definitions.\n\n      \"License\" shall mean the terms and conditions for use, reproduction,\n      and distribution as defined by Sections 1 through 9 of this document.\n\n      \"Licensor\" shall mean the copyright owner or entity authorized by\n      the copyright owner that is granting the License.\n\n      \"Legal Entity\" shall mean the union of the acting entity and all\n      other entities that control, are controlled by, or are under common\n      control with that entity. For the purposes of this definition,\n      \"control\" means (i) the power, direct or indirect, to cause the\n      direction or management of such entity, whether by contract or\n      otherwise, or (ii) ownership of fifty percent (50%) or more of the\n      outstanding shares, or (iii) beneficial ownership of such entity.\n\n      \"You\" (or \"Your\") shall mean an individual or Legal Entity\n      exercising permissions granted by this License.\n\n      \"Source\" form shall mean the preferred form for making modifications,\n      including but not limited to software source code, documentation\n      source, and configuration files.\n\n      \"Object\" form shall mean any form resulting from mechanical\n      transformation or translation of a Source form, including but\n      not limited to compiled object code, generated documentation,\n      and conversions to other media types.\n\n      \"Work\" shall mean the work of authorship, whether in Source or\n      Object form, made available under the License, as indicated by a\n      copyright notice that is included in or attached to the work\n      (an example is provided in the Appendix below).\n\n      \"Derivative Works\" shall mean any work, whether in Source or Object\n      form, that is based on (or derived from) the Work and for which the\n      editorial revisions, annotations, elaborations, or other modifications\n      represent, as a whole, an original work of authorship. For the purposes\n      of this License, Derivative Works shall not include works that remain\n      separable from, or merely link (or bind by name) to the interfaces of,\n      the Work and Derivative Works thereof.\n\n      \"Contribution\" shall mean any work of authorship, including\n      the original version of the Work and any modifications or additions\n      to that Work or Derivative Works thereof, that is intentionally\n      submitted to Licensor for inclusion in the Work by the copyright owner\n      or by an individual or Legal Entity authorized to submit on behalf of\n      the copyright owner. For the purposes of this definition, \"submitted\"\n      means any form of electronic, verbal, or written communication sent\n      to the Licensor or its representatives, including but not limited to\n      communication on electronic mailing lists, source code control systems,\n      and issue tracking systems that are managed by, or on behalf of, the\n      Licensor for the purpose of discussing and improving the Work, but\n      excluding communication that is conspicuously marked or otherwise\n      designated in writing by the copyright owner as \"Not a Contribution.\"\n\n      \"Contributor\" shall mean Licensor and any individual or Legal Entity\n      on behalf of whom a Contribution has been received by Licensor and\n      subsequently incorporated within the Work.\n\n   2. Grant of Copyright License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      copyright license to reproduce, prepare Derivative Works of,\n      publicly display, publicly perform, sublicense, and distribute the\n      Work and such Derivative Works in Source or Object form.\n\n   3. Grant of Patent License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      (except as stated in this section) patent license to make, have made,\n      use, offer to sell, sell, import, and otherwise transfer the Work,\n      where such license applies only to those patent claims licensable\n      by such Contributor that are necessarily infringed by their\n      Contribution(s) alone or by combination of their Contribution(s)\n      with the Work to which such Contribution(s) was submitted. If You\n      institute patent litigation against any entity (including a\n      cross-claim or counterclaim in a lawsuit) alleging that the Work\n      or a Contribution incorporated within the Work constitutes direct\n      or contributory patent infringement, then any patent licenses\n      granted to You under this License for that Work shall terminate\n      as of the date such litigation is filed.\n\n   4. Redistribution. You may reproduce and distribute copies of the\n      Work or Derivative Works thereof in any medium, with or without\n      modifications, and in Source or Object form, provided that You\n      meet the following conditions:\n\n      (a) You must give any other recipients of the Work or\n          Derivative Works a copy of this License; and\n\n      (b) You must cause any modified files to carry prominent notices\n          stating that You changed the files; and\n\n      (c) You must retain, in the Source form of any Derivative Works\n          that You distribute, all copyright, patent, trademark, and\n          attribution notices from the Source form of the Work,\n          excluding those notices that do not pertain to any part of\n          the Derivative Works; and\n\n      (d) If the Work includes a \"NOTICE\" text file as part of its\n          distribution, then any Derivative Works that You distribute must\n          include a readable copy of the attribution notices contained\n          within such NOTICE file, excluding those notices that do not\n          pertain to any part of the Derivative Works, in at least one\n          of the following places: within a NOTICE text file distributed\n          as part of the Derivative Works; within the Source form or\n          documentation, if provided along with the Derivative Works; or,\n          within a display generated by the Derivative Works, if and\n          wherever such third-party notices normally appear. The contents\n          of the NOTICE file are for informational purposes only and\n          do not modify the License. You may add Your own attribution\n          notices within Derivative Works that You distribute, alongside\n          or as an addendum to the NOTICE text from the Work, provided\n          that such additional attribution notices cannot be construed\n          as modifying the License.\n\n      You may add Your own copyright statement to Your modifications and\n      may provide additional or different license terms and conditions\n      for use, reproduction, or distribution of Your modifications, or\n      for any such Derivative Works as a whole, provided Your use,\n      reproduction, and distribution of the Work otherwise complies with\n      the conditions stated in this License.\n\n   5. Submission of Contributions. Unless You explicitly state otherwise,\n      any Contribution intentionally submitted for inclusion in the Work\n      by You to the Licensor shall be under the terms and conditions of\n      this License, without any additional terms or conditions.\n      Notwithstanding the above, nothing herein shall supersede or modify\n      the terms of any separate license agreement you may have executed\n      with Licensor regarding such Contributions.\n\n   6. Trademarks. This License does not grant permission to use the trade\n      names, trademarks, service marks, or product names of the Licensor,\n      except as required for reasonable and customary use in describing the\n      origin of the Work and reproducing the content of the NOTICE file.\n\n   7. Disclaimer of Warranty. Unless required by applicable law or\n      agreed to in writing, Licensor provides the Work (and each\n      Contributor provides its Contributions) on an \"AS IS\" BASIS,\n      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n      implied, including, without limitation, any warranties or conditions\n      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n      PARTICULAR PURPOSE. You are solely responsible for determining the\n      appropriateness of using or redistributing the Work and assume any\n      risks associated with Your exercise of permissions under this License.\n\n   8. Limitation of Liability. In no event and under no legal theory,\n      whether in tort (including negligence), contract, or otherwise,\n      unless required by applicable law (such as deliberate and grossly\n      negligent acts) or agreed to in writing, shall any Contributor be\n      liable to You for damages, including any direct, indirect, special,\n      incidental, or consequential damages of any character arising as a\n      result of this License or out of the use or inability to use the\n      Work (including but not limited to damages for loss of goodwill,\n      work stoppage, computer failure or malfunction, or any and all\n      other commercial damages or losses), even if such Contributor\n      has been advised of the possibility of such damages.\n\n   9. Accepting Warranty or Additional Liability. While redistributing\n      the Work or Derivative Works thereof, You may choose to offer,\n      and charge a fee for, acceptance of support, warranty, indemnity,\n      or other liability obligations and/or rights consistent with this\n      License. However, in accepting such obligations, You may act only\n      on Your own behalf and on Your sole responsibility, not on behalf\n      of any other Contributor, and only if You agree to indemnify,\n      defend, and hold each Contributor harmless for any liability\n      incurred by, or claims asserted against, such Contributor by reason\n      of your accepting any such warranty or additional liability.\n\n   END OF TERMS AND CONDITIONS\n\n   APPENDIX: How to apply the Apache License to your work.\n\n      To apply the Apache License to your work, attach the following\n      boilerplate notice, with the fields enclosed by brackets \"{}\"\n      replaced with your own identifying information. (Don't include\n      the brackets!)  The text should be enclosed in the appropriate\n      comment syntax for the file format. We also recommend that a\n      file or class name and description of purpose be included on the\n      same \"printed page\" as the copyright notice for easier\n      identification within third-party archives.\n\n   Copyright {yyyy} {name of copyright owner}\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n","dependencies":{"react":"^16.2.0","redux":"^3.7.2","lodash":"^4.17.4","react-dom":"^16.2.0","redux-saga":"^0.15.6","es6-promise":"^4.1.1","material-ui":"v1.0.0-beta.20","react-redux":"^5.0.6","babel-runtime":"^6.26.0","babel-polyfill":"^6.26.0","react-redux-saga":"^1.0.2","veritone-react-common":"^2.2.0-beta-1","veritone-redux-common":"^2.2.0-beta-1","babel-plugin-transform-object-rest-spread":"^6.26.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"raf":"^3.4.0","jest":"^21.2.1","enzyme":"^3.1.0","eslint":"^4.10.0","rimraf":"^2.6.2","rollup":"^0.55.1","webpack":"^3.6.0","cross-env":"^5.1.1","redux-logger":"^3.0.6","redux-devtools":"^3.4.0","@storybook/react":"v3.3.0-alpha.4","redux-mock-store":"^1.3.0","veritone-dev-env":"^1.0.2","rollup-plugin-url":"^1.3.0","identity-obj-proxy":"^3.0.0","redux-validate-fsa":"^0.1.2","rollup-plugin-json":"^2.3.0","babel-plugin-lodash":"^3.3.2","eslint-plugin-react":"^7.4.0","react-test-renderer":"^16.0.0","rollup-plugin-alias":"^1.4.0","rollup-plugin-babel":"^3.0.3","eslint-plugin-lodash":"^2.5.0","rollup-plugin-uglify":"^3.0.0","babel-plugin-date-fns":"^0.1.0","eslint-plugin-promise":"^3.6.0","rollup-plugin-postcss":"^1.2.8","rollup-plugin-replace":"^2.0.0","@storybook/addon-knobs":"3.3.0-alpha.4","eslint-config-prettier":"^2.7.0","rollup-analyzer-plugin":"^1.1.1","rollup-plugin-commonjs":"^8.3.0","enzyme-adapter-react-16":"^1.0.2","rollup-plugin-node-resolve":"^3.0.2","babel-plugin-transform-runtime":"^6.23.0","redux-immutable-state-invariant":"^2.1.0","babel-plugin-add-react-displayname":"^0.0.5","babel-plugin-transform-class-properties":"^6.24.1","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-plugin-transform-export-extensions":"^6.22.0"},"_npmOperationalInternal":{"tmp":"tmp/veritone-widgets_2.1.0-beta-5_1518129124800_0.43502774634365804","host":"s3://npm-registry-packages"}},"2.1.0-beta-8":{"name":"veritone-widgets","version":"2.1.0-beta-8","license":"Apache-2.0","_id":"veritone-widgets@2.1.0-beta-8","maintainers":[{"name":"coolmitch","email":"robb.mitch@gmail.com"}],"dist":{"shasum":"c49f88f4efcda7bede49a73fe759342838a492fe","tarball":"https://registry.npmjs.org/veritone-widgets/-/veritone-widgets-2.1.0-beta-8.tgz","fileCount":54,"integrity":"sha512-svcoU7HpYjDLsqDVdDTjxxovRRPUdIopRndmNuewRk6coVynRr3YaKTgGQBUGUz2hVKTBcXqpA/USxMr9gBCLg==","signatures":[{"sig":"MEUCICDD7y6DgxObBi+ky4y666G+CJs7pp1UrBjpLM2LksT7AiEA+wXAk3k7RDbZLKsRjKhKLfAIbvRCufenxuNW4/7b5vs=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1613170},"jest":{"setupFiles":["<rootDir>/test/testSuitePolyfills.js","<rootDir>/test/configureEnzyme.js"],"moduleNameMapper":{"\\.(css|scss)$":"identity-obj-proxy","\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$":"<rootDir>/test/__mocks__/fileMock.js"},"moduleDirectories":["node_modules"],"moduleFileExtensions":["js","jsx"]},"module":"dist/bundle-es.js","readme":"\n# License\nCopyright 2017, Veritone Inc.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.","scripts":{"lint":"eslint src/** --ext .js","test":"jest","build":"cross-env NODE_ENV=production rollup -c","start":"yarn run start:widget-server; yarn run start:storybook","format":"prettier --write \"./src/**/*.{js,scss}\"","prebuild":"npm run clean:build","test:watch":"jest --watch","build:watch":"cross-env NODE_ENV=production rollup -c --watch","clean:build":"rimraf build","prepublishOnly":"npm run test && npm run lint && npm run build","start:storybook":"start-storybook -p 3000 -c .storybook","start:widget-server":"yarn workspace veritone-widgets-server run start &"},"_npmUser":{"name":"coolmitch","email":"robb.mitch@gmail.com"},"description":"Copyright 2017, Veritone Inc.","directories":{},"jsnext:main":"dist/bundle-eswith .js","licenseText":"                                 Apache License\n                           Version 2.0, January 2004\n                        http://www.apache.org/licenses/\n\n   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n   1. Definitions.\n\n      \"License\" shall mean the terms and conditions for use, reproduction,\n      and distribution as defined by Sections 1 through 9 of this document.\n\n      \"Licensor\" shall mean the copyright owner or entity authorized by\n      the copyright owner that is granting the License.\n\n      \"Legal Entity\" shall mean the union of the acting entity and all\n      other entities that control, are controlled by, or are under common\n      control with that entity. For the purposes of this definition,\n      \"control\" means (i) the power, direct or indirect, to cause the\n      direction or management of such entity, whether by contract or\n      otherwise, or (ii) ownership of fifty percent (50%) or more of the\n      outstanding shares, or (iii) beneficial ownership of such entity.\n\n      \"You\" (or \"Your\") shall mean an individual or Legal Entity\n      exercising permissions granted by this License.\n\n      \"Source\" form shall mean the preferred form for making modifications,\n      including but not limited to software source code, documentation\n      source, and configuration files.\n\n      \"Object\" form shall mean any form resulting from mechanical\n      transformation or translation of a Source form, including but\n      not limited to compiled object code, generated documentation,\n      and conversions to other media types.\n\n      \"Work\" shall mean the work of authorship, whether in Source or\n      Object form, made available under the License, as indicated by a\n      copyright notice that is included in or attached to the work\n      (an example is provided in the Appendix below).\n\n      \"Derivative Works\" shall mean any work, whether in Source or Object\n      form, that is based on (or derived from) the Work and for which the\n      editorial revisions, annotations, elaborations, or other modifications\n      represent, as a whole, an original work of authorship. For the purposes\n      of this License, Derivative Works shall not include works that remain\n      separable from, or merely link (or bind by name) to the interfaces of,\n      the Work and Derivative Works thereof.\n\n      \"Contribution\" shall mean any work of authorship, including\n      the original version of the Work and any modifications or additions\n      to that Work or Derivative Works thereof, that is intentionally\n      submitted to Licensor for inclusion in the Work by the copyright owner\n      or by an individual or Legal Entity authorized to submit on behalf of\n      the copyright owner. For the purposes of this definition, \"submitted\"\n      means any form of electronic, verbal, or written communication sent\n      to the Licensor or its representatives, including but not limited to\n      communication on electronic mailing lists, source code control systems,\n      and issue tracking systems that are managed by, or on behalf of, the\n      Licensor for the purpose of discussing and improving the Work, but\n      excluding communication that is conspicuously marked or otherwise\n      designated in writing by the copyright owner as \"Not a Contribution.\"\n\n      \"Contributor\" shall mean Licensor and any individual or Legal Entity\n      on behalf of whom a Contribution has been received by Licensor and\n      subsequently incorporated within the Work.\n\n   2. Grant of Copyright License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      copyright license to reproduce, prepare Derivative Works of,\n      publicly display, publicly perform, sublicense, and distribute the\n      Work and such Derivative Works in Source or Object form.\n\n   3. Grant of Patent License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      (except as stated in this section) patent license to make, have made,\n      use, offer to sell, sell, import, and otherwise transfer the Work,\n      where such license applies only to those patent claims licensable\n      by such Contributor that are necessarily infringed by their\n      Contribution(s) alone or by combination of their Contribution(s)\n      with the Work to which such Contribution(s) was submitted. If You\n      institute patent litigation against any entity (including a\n      cross-claim or counterclaim in a lawsuit) alleging that the Work\n      or a Contribution incorporated within the Work constitutes direct\n      or contributory patent infringement, then any patent licenses\n      granted to You under this License for that Work shall terminate\n      as of the date such litigation is filed.\n\n   4. Redistribution. You may reproduce and distribute copies of the\n      Work or Derivative Works thereof in any medium, with or without\n      modifications, and in Source or Object form, provided that You\n      meet the following conditions:\n\n      (a) You must give any other recipients of the Work or\n          Derivative Works a copy of this License; and\n\n      (b) You must cause any modified files to carry prominent notices\n          stating that You changed the files; and\n\n      (c) You must retain, in the Source form of any Derivative Works\n          that You distribute, all copyright, patent, trademark, and\n          attribution notices from the Source form of the Work,\n          excluding those notices that do not pertain to any part of\n          the Derivative Works; and\n\n      (d) If the Work includes a \"NOTICE\" text file as part of its\n          distribution, then any Derivative Works that You distribute must\n          include a readable copy of the attribution notices contained\n          within such NOTICE file, excluding those notices that do not\n          pertain to any part of the Derivative Works, in at least one\n          of the following places: within a NOTICE text file distributed\n          as part of the Derivative Works; within the Source form or\n          documentation, if provided along with the Derivative Works; or,\n          within a display generated by the Derivative Works, if and\n          wherever such third-party notices normally appear. The contents\n          of the NOTICE file are for informational purposes only and\n          do not modify the License. You may add Your own attribution\n          notices within Derivative Works that You distribute, alongside\n          or as an addendum to the NOTICE text from the Work, provided\n          that such additional attribution notices cannot be construed\n          as modifying the License.\n\n      You may add Your own copyright statement to Your modifications and\n      may provide additional or different license terms and conditions\n      for use, reproduction, or distribution of Your modifications, or\n      for any such Derivative Works as a whole, provided Your use,\n      reproduction, and distribution of the Work otherwise complies with\n      the conditions stated in this License.\n\n   5. Submission of Contributions. Unless You explicitly state otherwise,\n      any Contribution intentionally submitted for inclusion in the Work\n      by You to the Licensor shall be under the terms and conditions of\n      this License, without any additional terms or conditions.\n      Notwithstanding the above, nothing herein shall supersede or modify\n      the terms of any separate license agreement you may have executed\n      with Licensor regarding such Contributions.\n\n   6. Trademarks. This License does not grant permission to use the trade\n      names, trademarks, service marks, or product names of the Licensor,\n      except as required for reasonable and customary use in describing the\n      origin of the Work and reproducing the content of the NOTICE file.\n\n   7. Disclaimer of Warranty. Unless required by applicable law or\n      agreed to in writing, Licensor provides the Work (and each\n      Contributor provides its Contributions) on an \"AS IS\" BASIS,\n      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n      implied, including, without limitation, any warranties or conditions\n      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n      PARTICULAR PURPOSE. You are solely responsible for determining the\n      appropriateness of using or redistributing the Work and assume any\n      risks associated with Your exercise of permissions under this License.\n\n   8. Limitation of Liability. In no event and under no legal theory,\n      whether in tort (including negligence), contract, or otherwise,\n      unless required by applicable law (such as deliberate and grossly\n      negligent acts) or agreed to in writing, shall any Contributor be\n      liable to You for damages, including any direct, indirect, special,\n      incidental, or consequential damages of any character arising as a\n      result of this License or out of the use or inability to use the\n      Work (including but not limited to damages for loss of goodwill,\n      work stoppage, computer failure or malfunction, or any and all\n      other commercial damages or losses), even if such Contributor\n      has been advised of the possibility of such damages.\n\n   9. Accepting Warranty or Additional Liability. While redistributing\n      the Work or Derivative Works thereof, You may choose to offer,\n      and charge a fee for, acceptance of support, warranty, indemnity,\n      or other liability obligations and/or rights consistent with this\n      License. However, in accepting such obligations, You may act only\n      on Your own behalf and on Your sole responsibility, not on behalf\n      of any other Contributor, and only if You agree to indemnify,\n      defend, and hold each Contributor harmless for any liability\n      incurred by, or claims asserted against, such Contributor by reason\n      of your accepting any such warranty or additional liability.\n\n   END OF TERMS AND CONDITIONS\n\n   APPENDIX: How to apply the Apache License to your work.\n\n      To apply the Apache License to your work, attach the following\n      boilerplate notice, with the fields enclosed by brackets \"{}\"\n      replaced with your own identifying information. (Don't include\n      the brackets!)  The text should be enclosed in the appropriate\n      comment syntax for the file format. We also recommend that a\n      file or class name and description of purpose be included on the\n      same \"printed page\" as the copyright notice for easier\n      identification within third-party archives.\n\n   Copyright {yyyy} {name of copyright owner}\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n","dependencies":{"react":"^16.2.0","redux":"^3.7.2","lodash":"^4.17.4","react-dom":"^16.2.0","redux-saga":"^0.15.6","es6-promise":"^4.1.1","material-ui":"v1.0.0-beta.20","react-redux":"^5.0.6","babel-runtime":"^6.26.0","babel-polyfill":"^6.26.0","react-redux-saga":"^1.0.2","veritone-react-common":"^2.2.0-beta-3","veritone-redux-common":"^2.2.0-beta-1","babel-plugin-transform-object-rest-spread":"^6.26.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"raf":"^3.4.0","jest":"^21.2.1","enzyme":"^3.1.0","eslint":"^4.10.0","rimraf":"^2.6.2","rollup":"^0.55.1","webpack":"^3.6.0","cross-env":"^5.1.1","redux-logger":"^3.0.6","redux-devtools":"^3.4.0","@storybook/react":"v3.3.0-alpha.4","redux-mock-store":"^1.3.0","veritone-dev-env":"^1.0.2","rollup-plugin-url":"^1.3.0","identity-obj-proxy":"^3.0.0","redux-validate-fsa":"^0.1.2","rollup-plugin-json":"^2.3.0","babel-plugin-lodash":"^3.3.2","eslint-plugin-react":"^7.4.0","react-test-renderer":"^16.0.0","rollup-plugin-alias":"^1.4.0","rollup-plugin-babel":"^3.0.3","eslint-plugin-lodash":"^2.5.0","rollup-plugin-uglify":"^3.0.0","babel-plugin-date-fns":"^0.1.0","eslint-plugin-promise":"^3.6.0","rollup-plugin-postcss":"^1.2.8","rollup-plugin-replace":"^2.0.0","@storybook/addon-knobs":"3.3.0-alpha.4","eslint-config-prettier":"^2.7.0","rollup-analyzer-plugin":"^1.1.1","rollup-plugin-commonjs":"^8.3.0","enzyme-adapter-react-16":"^1.0.2","rollup-plugin-node-resolve":"^3.0.2","babel-plugin-transform-runtime":"^6.23.0","redux-immutable-state-invariant":"^2.1.0","babel-plugin-add-react-displayname":"^0.0.5","babel-plugin-transform-class-properties":"^6.24.1","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-plugin-transform-export-extensions":"^6.22.0"},"_npmOperationalInternal":{"tmp":"tmp/veritone-widgets_2.1.0-beta-8_1518134389038_0.07710666868001947","host":"s3://npm-registry-packages"}},"2.1.0-beta-9":{"name":"veritone-widgets","version":"2.1.0-beta-9","license":"Apache-2.0","_id":"veritone-widgets@2.1.0-beta-9","maintainers":[{"name":"coolmitch","email":"robb.mitch@gmail.com"}],"dist":{"shasum":"cb92c1360a691889a899268551cf58763fff195d","tarball":"https://registry.npmjs.org/veritone-widgets/-/veritone-widgets-2.1.0-beta-9.tgz","fileCount":53,"integrity":"sha512-MQhgIRd1dd/D+P2Fcf9avEN37BojqWQJIL9RLgEsqZKZXp2aX/NPheJTqcev65flR9px3dL2cn94Cjx7VOzvbA==","signatures":[{"sig":"MEUCIQDWEfRNXh0NJqOnn2lHjOxl7gC6PQk5TjMFQTTQLuurPgIgMVU8clK68OdBi8ERRgQR9Fgm4wHEN2LvFMbhtWFifCc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":1621107},"jest":{"setupFiles":["<rootDir>/test/testSuitePolyfills.js","<rootDir>/test/configureEnzyme.js"],"moduleNameMapper":{"\\.(css|scss)$":"identity-obj-proxy","\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$":"<rootDir>/test/__mocks__/fileMock.js"},"moduleDirectories":["node_modules"],"moduleFileExtensions":["js","jsx"]},"module":"dist/bundle-es.js","readme":"\n# License\nCopyright 2017, Veritone Inc.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.","scripts":{"lint":"eslint src/** --ext .js","test":"jest","build":"cross-env NODE_ENV=production rollup -c","start":"yarn run start:widget-server; yarn run start:storybook","format":"prettier --write \"./src/**/*.{js,scss}\"","prebuild":"npm run clean:build","test:watch":"jest --watch","build:watch":"cross-env NODE_ENV=production rollup -c --watch","clean:build":"rimraf dist","prepublishOnly":"npm run test && npm run lint && npm run build","start:storybook":"start-storybook -p 3000 -c .storybook","start:widget-server":"yarn workspace veritone-widgets-server run start &"},"_npmUser":{"name":"coolmitch","email":"robb.mitch@gmail.com"},"description":"Copyright 2017, Veritone Inc.","directories":{},"jsnext:main":"dist/bundle-es.js","licenseText":"                                 Apache License\n                           Version 2.0, January 2004\n                        http://www.apache.org/licenses/\n\n   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n   1. Definitions.\n\n      \"License\" shall mean the terms and conditions for use, reproduction,\n      and distribution as defined by Sections 1 through 9 of this document.\n\n      \"Licensor\" shall mean the copyright owner or entity authorized by\n      the copyright owner that is granting the License.\n\n      \"Legal Entity\" shall mean the union of the acting entity and all\n      other entities that control, are controlled by, or are under common\n      control with that entity. For the purposes of this definition,\n      \"control\" means (i) the power, direct or indirect, to cause the\n      direction or management of such entity, whether by contract or\n      otherwise, or (ii) ownership of fifty percent (50%) or more of the\n      outstanding shares, or (iii) beneficial ownership of such entity.\n\n      \"You\" (or \"Your\") shall mean an individual or Legal Entity\n      exercising permissions granted by this License.\n\n      \"Source\" form shall mean the preferred form for making modifications,\n      including but not limited to software source code, documentation\n      source, and configuration files.\n\n      \"Object\" form shall mean any form resulting from mechanical\n      transformation or translation of a Source form, including but\n      not limited to compiled object code, generated documentation,\n      and conversions to other media types.\n\n      \"Work\" shall mean the work of authorship, whether in Source or\n      Object form, made available under the License, as indicated by a\n      copyright notice that is included in or attached to the work\n      (an example is provided in the Appendix below).\n\n      \"Derivative Works\" shall mean any work, whether in Source or Object\n      form, that is based on (or derived from) the Work and for which the\n      editorial revisions, annotations, elaborations, or other modifications\n      represent, as a whole, an original work of authorship. For the purposes\n      of this License, Derivative Works shall not include works that remain\n      separable from, or merely link (or bind by name) to the interfaces of,\n      the Work and Derivative Works thereof.\n\n      \"Contribution\" shall mean any work of authorship, including\n      the original version of the Work and any modifications or additions\n      to that Work or Derivative Works thereof, that is intentionally\n      submitted to Licensor for inclusion in the Work by the copyright owner\n      or by an individual or Legal Entity authorized to submit on behalf of\n      the copyright owner. For the purposes of this definition, \"submitted\"\n      means any form of electronic, verbal, or written communication sent\n      to the Licensor or its representatives, including but not limited to\n      communication on electronic mailing lists, source code control systems,\n      and issue tracking systems that are managed by, or on behalf of, the\n      Licensor for the purpose of discussing and improving the Work, but\n      excluding communication that is conspicuously marked or otherwise\n      designated in writing by the copyright owner as \"Not a Contribution.\"\n\n      \"Contributor\" shall mean Licensor and any individual or Legal Entity\n      on behalf of whom a Contribution has been received by Licensor and\n      subsequently incorporated within the Work.\n\n   2. Grant of Copyright License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      copyright license to reproduce, prepare Derivative Works of,\n      publicly display, publicly perform, sublicense, and distribute the\n      Work and such Derivative Works in Source or Object form.\n\n   3. Grant of Patent License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      (except as stated in this section) patent license to make, have made,\n      use, offer to sell, sell, import, and otherwise transfer the Work,\n      where such license applies only to those patent claims licensable\n      by such Contributor that are necessarily infringed by their\n      Contribution(s) alone or by combination of their Contribution(s)\n      with the Work to which such Contribution(s) was submitted. If You\n      institute patent litigation against any entity (including a\n      cross-claim or counterclaim in a lawsuit) alleging that the Work\n      or a Contribution incorporated within the Work constitutes direct\n      or contributory patent infringement, then any patent licenses\n      granted to You under this License for that Work shall terminate\n      as of the date such litigation is filed.\n\n   4. Redistribution. You may reproduce and distribute copies of the\n      Work or Derivative Works thereof in any medium, with or without\n      modifications, and in Source or Object form, provided that You\n      meet the following conditions:\n\n      (a) You must give any other recipients of the Work or\n          Derivative Works a copy of this License; and\n\n      (b) You must cause any modified files to carry prominent notices\n          stating that You changed the files; and\n\n      (c) You must retain, in the Source form of any Derivative Works\n          that You distribute, all copyright, patent, trademark, and\n          attribution notices from the Source form of the Work,\n          excluding those notices that do not pertain to any part of\n          the Derivative Works; and\n\n      (d) If the Work includes a \"NOTICE\" text file as part of its\n          distribution, then any Derivative Works that You distribute must\n          include a readable copy of the attribution notices contained\n          within such NOTICE file, excluding those notices that do not\n          pertain to any part of the Derivative Works, in at least one\n          of the following places: within a NOTICE text file distributed\n          as part of the Derivative Works; within the Source form or\n          documentation, if provided along with the Derivative Works; or,\n          within a display generated by the Derivative Works, if and\n          wherever such third-party notices normally appear. The contents\n          of the NOTICE file are for informational purposes only and\n          do not modify the License. You may add Your own attribution\n          notices within Derivative Works that You distribute, alongside\n          or as an addendum to the NOTICE text from the Work, provided\n          that such additional attribution notices cannot be construed\n          as modifying the License.\n\n      You may add Your own copyright statement to Your modifications and\n      may provide additional or different license terms and conditions\n      for use, reproduction, or distribution of Your modifications, or\n      for any such Derivative Works as a whole, provided Your use,\n      reproduction, and distribution of the Work otherwise complies with\n      the conditions stated in this License.\n\n   5. Submission of Contributions. Unless You explicitly state otherwise,\n      any Contribution intentionally submitted for inclusion in the Work\n      by You to the Licensor shall be under the terms and conditions of\n      this License, without any additional terms or conditions.\n      Notwithstanding the above, nothing herein shall supersede or modify\n      the terms of any separate license agreement you may have executed\n      with Licensor regarding such Contributions.\n\n   6. Trademarks. This License does not grant permission to use the trade\n      names, trademarks, service marks, or product names of the Licensor,\n      except as required for reasonable and customary use in describing the\n      origin of the Work and reproducing the content of the NOTICE file.\n\n   7. Disclaimer of Warranty. Unless required by applicable law or\n      agreed to in writing, Licensor provides the Work (and each\n      Contributor provides its Contributions) on an \"AS IS\" BASIS,\n      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n      implied, including, without limitation, any warranties or conditions\n      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n      PARTICULAR PURPOSE. You are solely responsible for determining the\n      appropriateness of using or redistributing the Work and assume any\n      risks associated with Your exercise of permissions under this License.\n\n   8. Limitation of Liability. In no event and under no legal theory,\n      whether in tort (including negligence), contract, or otherwise,\n      unless required by applicable law (such as deliberate and grossly\n      negligent acts) or agreed to in writing, shall any Contributor be\n      liable to You for damages, including any direct, indirect, special,\n      incidental, or consequential damages of any character arising as a\n      result of this License or out of the use or inability to use the\n      Work (including but not limited to damages for loss of goodwill,\n      work stoppage, computer failure or malfunction, or any and all\n      other commercial damages or losses), even if such Contributor\n      has been advised of the possibility of such damages.\n\n   9. Accepting Warranty or Additional Liability. While redistributing\n      the Work or Derivative Works thereof, You may choose to offer,\n      and charge a fee for, acceptance of support, warranty, indemnity,\n      or other liability obligations and/or rights consistent with this\n      License. However, in accepting such obligations, You may act only\n      on Your own behalf and on Your sole responsibility, not on behalf\n      of any other Contributor, and only if You agree to indemnify,\n      defend, and hold each Contributor harmless for any liability\n      incurred by, or claims asserted against, such Contributor by reason\n      of your accepting any such warranty or additional liability.\n\n   END OF TERMS AND CONDITIONS\n\n   APPENDIX: How to apply the Apache License to your work.\n\n      To apply the Apache License to your work, attach the following\n      boilerplate notice, with the fields enclosed by brackets \"{}\"\n      replaced with your own identifying information. (Don't include\n      the brackets!)  The text should be enclosed in the appropriate\n      comment syntax for the file format. We also recommend that a\n      file or class name and description of purpose be included on the\n      same \"printed page\" as the copyright notice for easier\n      identification within third-party archives.\n\n   Copyright {yyyy} {name of copyright owner}\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n","dependencies":{"react":"^16.2.0","redux":"^3.7.2","lodash":"^4.17.4","react-dom":"^16.2.0","redux-saga":"^0.15.6","es6-promise":"^4.1.1","material-ui":"v1.0.0-beta.20","react-redux":"^5.0.6","babel-runtime":"^6.26.0","babel-polyfill":"^6.26.0","react-redux-saga":"^1.0.2","veritone-react-common":"^2.2.0-beta-3","veritone-redux-common":"^2.2.0-beta-1","veritone-oauth-helpers":"^1.1.0","babel-plugin-transform-object-rest-spread":"^6.26.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"raf":"^3.4.0","jest":"^21.2.1","enzyme":"^3.1.0","eslint":"^4.10.0","rimraf":"^2.6.2","rollup":"^0.55.1","webpack":"^3.6.0","cross-env":"^5.1.1","redux-logger":"^3.0.6","redux-devtools":"^3.4.0","@storybook/react":"v3.3.0-alpha.4","redux-mock-store":"^1.3.0","veritone-dev-env":"^1.0.2","rollup-plugin-url":"^1.3.0","identity-obj-proxy":"^3.0.0","redux-validate-fsa":"^0.1.2","rollup-plugin-json":"^2.3.0","babel-plugin-lodash":"^3.3.2","eslint-plugin-react":"^7.4.0","react-test-renderer":"^16.0.0","rollup-plugin-alias":"^1.4.0","rollup-plugin-babel":"^3.0.3","eslint-plugin-lodash":"^2.5.0","rollup-plugin-uglify":"^3.0.0","babel-plugin-date-fns":"^0.1.0","eslint-plugin-promise":"^3.6.0","rollup-plugin-postcss":"^1.2.8","rollup-plugin-replace":"^2.0.0","@storybook/addon-knobs":"3.3.0-alpha.4","eslint-config-prettier":"^2.7.0","rollup-analyzer-plugin":"^1.1.1","rollup-plugin-commonjs":"^8.3.0","enzyme-adapter-react-16":"^1.0.2","rollup-plugin-node-resolve":"^3.0.2","babel-plugin-transform-runtime":"^6.23.0","redux-immutable-state-invariant":"^2.1.0","babel-plugin-add-react-displayname":"^0.0.5","babel-plugin-transform-regenerator":"^6.26.0","babel-plugin-transform-class-properties":"^6.24.1","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-plugin-transform-export-extensions":"^6.22.0"},"_npmOperationalInternal":{"tmp":"tmp/veritone-widgets_2.1.0-beta-9_1518466169921_0.3982873757117815","host":"s3://npm-registry-packages"}},"3.0.0":{"name":"veritone-widgets","version":"3.0.0","license":"Apache-2.0","_id":"veritone-widgets@3.0.0","maintainers":[{"name":"coolmitch","email":"robb.mitch@gmail.com"}],"dist":{"shasum":"a3a8208de3215528a9d795563c2ce158d6e73dda","tarball":"https://registry.npmjs.org/veritone-widgets/-/veritone-widgets-3.0.0.tgz","fileCount":52,"integrity":"sha512-G3JAt91BHgSOqsZIs81HsiMAECwEH6wXoD96HIf5sq65LzeFm/tfrTjV4G0GeOsq0xVolJIhHcwVElH/0AE24g==","signatures":[{"sig":"MEYCIQDDTR5+nMrlZxgoTCVsYbqCPx/PN1UD1QwFgga7YZ5AxQIhAO79qvFyqMuRN3n+AAyCOB1fzJlhJlbTO1nKjusToH1B","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":191578},"jest":{"setupFiles":["<rootDir>/test/testSuitePolyfills.js","<rootDir>/test/configureEnzyme.js"],"moduleNameMapper":{"\\.(css|scss)$":"identity-obj-proxy","\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$":"<rootDir>/test/__mocks__/fileMock.js"},"moduleDirectories":["node_modules"],"moduleFileExtensions":["js","jsx"]},"main":"dist/bundle-cjs.js","module":"dist/bundle-es.js","scripts":{"lint":"eslint src/** --ext .js","test":"jest","build":"cross-env NODE_ENV=production rollup -c","start":"yarn run start:widget-server; yarn run start:storybook","format":"prettier --write \"./src/**/*.{js,scss}\"","prebuild":"npm run clean:build","test:watch":"jest --watch","build:watch":"cross-env NODE_ENV=production rollup -c --watch","clean:build":"rimraf dist","prepublishOnly":"npm run test && npm run lint && npm run build","build:storybook":"NODE_ENV=production build-storybook -c .storybook -o docs-static","start:storybook":"NODE_ENV=test start-storybook -p 3000 -c .storybook","start:widget-server":"yarn workspace veritone-widgets-server run start &"},"_npmUser":{"name":"coolmitch","email":"robb.mitch@gmail.com"},"description":"```javascript import { VeritoneApp } from 'veritone-widgets' const app = VeritoneApp();","directories":{},"jsnext:main":"dist/bundle-es.js","licenseText":"                                 Apache License\n                           Version 2.0, January 2004\n                        http://www.apache.org/licenses/\n\n   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n   1. Definitions.\n\n      \"License\" shall mean the terms and conditions for use, reproduction,\n      and distribution as defined by Sections 1 through 9 of this document.\n\n      \"Licensor\" shall mean the copyright owner or entity authorized by\n      the copyright owner that is granting the License.\n\n      \"Legal Entity\" shall mean the union of the acting entity and all\n      other entities that control, are controlled by, or are under common\n      control with that entity. For the purposes of this definition,\n      \"control\" means (i) the power, direct or indirect, to cause the\n      direction or management of such entity, whether by contract or\n      otherwise, or (ii) ownership of fifty percent (50%) or more of the\n      outstanding shares, or (iii) beneficial ownership of such entity.\n\n      \"You\" (or \"Your\") shall mean an individual or Legal Entity\n      exercising permissions granted by this License.\n\n      \"Source\" form shall mean the preferred form for making modifications,\n      including but not limited to software source code, documentation\n      source, and configuration files.\n\n      \"Object\" form shall mean any form resulting from mechanical\n      transformation or translation of a Source form, including but\n      not limited to compiled object code, generated documentation,\n      and conversions to other media types.\n\n      \"Work\" shall mean the work of authorship, whether in Source or\n      Object form, made available under the License, as indicated by a\n      copyright notice that is included in or attached to the work\n      (an example is provided in the Appendix below).\n\n      \"Derivative Works\" shall mean any work, whether in Source or Object\n      form, that is based on (or derived from) the Work and for which the\n      editorial revisions, annotations, elaborations, or other modifications\n      represent, as a whole, an original work of authorship. For the purposes\n      of this License, Derivative Works shall not include works that remain\n      separable from, or merely link (or bind by name) to the interfaces of,\n      the Work and Derivative Works thereof.\n\n      \"Contribution\" shall mean any work of authorship, including\n      the original version of the Work and any modifications or additions\n      to that Work or Derivative Works thereof, that is intentionally\n      submitted to Licensor for inclusion in the Work by the copyright owner\n      or by an individual or Legal Entity authorized to submit on behalf of\n      the copyright owner. For the purposes of this definition, \"submitted\"\n      means any form of electronic, verbal, or written communication sent\n      to the Licensor or its representatives, including but not limited to\n      communication on electronic mailing lists, source code control systems,\n      and issue tracking systems that are managed by, or on behalf of, the\n      Licensor for the purpose of discussing and improving the Work, but\n      excluding communication that is conspicuously marked or otherwise\n      designated in writing by the copyright owner as \"Not a Contribution.\"\n\n      \"Contributor\" shall mean Licensor and any individual or Legal Entity\n      on behalf of whom a Contribution has been received by Licensor and\n      subsequently incorporated within the Work.\n\n   2. Grant of Copyright License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      copyright license to reproduce, prepare Derivative Works of,\n      publicly display, publicly perform, sublicense, and distribute the\n      Work and such Derivative Works in Source or Object form.\n\n   3. Grant of Patent License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      (except as stated in this section) patent license to make, have made,\n      use, offer to sell, sell, import, and otherwise transfer the Work,\n      where such license applies only to those patent claims licensable\n      by such Contributor that are necessarily infringed by their\n      Contribution(s) alone or by combination of their Contribution(s)\n      with the Work to which such Contribution(s) was submitted. If You\n      institute patent litigation against any entity (including a\n      cross-claim or counterclaim in a lawsuit) alleging that the Work\n      or a Contribution incorporated within the Work constitutes direct\n      or contributory patent infringement, then any patent licenses\n      granted to You under this License for that Work shall terminate\n      as of the date such litigation is filed.\n\n   4. Redistribution. You may reproduce and distribute copies of the\n      Work or Derivative Works thereof in any medium, with or without\n      modifications, and in Source or Object form, provided that You\n      meet the following conditions:\n\n      (a) You must give any other recipients of the Work or\n          Derivative Works a copy of this License; and\n\n      (b) You must cause any modified files to carry prominent notices\n          stating that You changed the files; and\n\n      (c) You must retain, in the Source form of any Derivative Works\n          that You distribute, all copyright, patent, trademark, and\n          attribution notices from the Source form of the Work,\n          excluding those notices that do not pertain to any part of\n          the Derivative Works; and\n\n      (d) If the Work includes a \"NOTICE\" text file as part of its\n          distribution, then any Derivative Works that You distribute must\n          include a readable copy of the attribution notices contained\n          within such NOTICE file, excluding those notices that do not\n          pertain to any part of the Derivative Works, in at least one\n          of the following places: within a NOTICE text file distributed\n          as part of the Derivative Works; within the Source form or\n          documentation, if provided along with the Derivative Works; or,\n          within a display generated by the Derivative Works, if and\n          wherever such third-party notices normally appear. The contents\n          of the NOTICE file are for informational purposes only and\n          do not modify the License. You may add Your own attribution\n          notices within Derivative Works that You distribute, alongside\n          or as an addendum to the NOTICE text from the Work, provided\n          that such additional attribution notices cannot be construed\n          as modifying the License.\n\n      You may add Your own copyright statement to Your modifications and\n      may provide additional or different license terms and conditions\n      for use, reproduction, or distribution of Your modifications, or\n      for any such Derivative Works as a whole, provided Your use,\n      reproduction, and distribution of the Work otherwise complies with\n      the conditions stated in this License.\n\n   5. Submission of Contributions. Unless You explicitly state otherwise,\n      any Contribution intentionally submitted for inclusion in the Work\n      by You to the Licensor shall be under the terms and conditions of\n      this License, without any additional terms or conditions.\n      Notwithstanding the above, nothing herein shall supersede or modify\n      the terms of any separate license agreement you may have executed\n      with Licensor regarding such Contributions.\n\n   6. Trademarks. This License does not grant permission to use the trade\n      names, trademarks, service marks, or product names of the Licensor,\n      except as required for reasonable and customary use in describing the\n      origin of the Work and reproducing the content of the NOTICE file.\n\n   7. Disclaimer of Warranty. Unless required by applicable law or\n      agreed to in writing, Licensor provides the Work (and each\n      Contributor provides its Contributions) on an \"AS IS\" BASIS,\n      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n      implied, including, without limitation, any warranties or conditions\n      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n      PARTICULAR PURPOSE. You are solely responsible for determining the\n      appropriateness of using or redistributing the Work and assume any\n      risks associated with Your exercise of permissions under this License.\n\n   8. Limitation of Liability. In no event and under no legal theory,\n      whether in tort (including negligence), contract, or otherwise,\n      unless required by applicable law (such as deliberate and grossly\n      negligent acts) or agreed to in writing, shall any Contributor be\n      liable to You for damages, including any direct, indirect, special,\n      incidental, or consequential damages of any character arising as a\n      result of this License or out of the use or inability to use the\n      Work (including but not limited to damages for loss of goodwill,\n      work stoppage, computer failure or malfunction, or any and all\n      other commercial damages or losses), even if such Contributor\n      has been advised of the possibility of such damages.\n\n   9. Accepting Warranty or Additional Liability. While redistributing\n      the Work or Derivative Works thereof, You may choose to offer,\n      and charge a fee for, acceptance of support, warranty, indemnity,\n      or other liability obligations and/or rights consistent with this\n      License. However, in accepting such obligations, You may act only\n      on Your own behalf and on Your sole responsibility, not on behalf\n      of any other Contributor, and only if You agree to indemnify,\n      defend, and hold each Contributor harmless for any liability\n      incurred by, or claims asserted against, such Contributor by reason\n      of your accepting any such warranty or additional liability.\n\n   END OF TERMS AND CONDITIONS\n\n   APPENDIX: How to apply the Apache License to your work.\n\n      To apply the Apache License to your work, attach the following\n      boilerplate notice, with the fields enclosed by brackets \"{}\"\n      replaced with your own identifying information. (Don't include\n      the brackets!)  The text should be enclosed in the appropriate\n      comment syntax for the file format. We also recommend that a\n      file or class name and description of purpose be included on the\n      same \"printed page\" as the copyright notice for easier\n      identification within third-party archives.\n\n   Copyright {yyyy} {name of copyright owner}\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n","dependencies":{"react":"^16.2.0","redux":"^3.7.2","react-dom":"^16.2.0","redux-saga":"^0.15.6","react-redux":"^5.0.6","babel-runtime":"^6.26.0","babel-polyfill":"^6.26.0","react-redux-saga":"^1.0.2","veritone-react-common":"^3.0.0","veritone-redux-common":"^3.0.0","redux-api-middleware-fixed":"^2.0.0"},"_hasShrinkwrap":false,"devDependencies":{"raf":"^3.4.0","jest":"^21.2.1","enzyme":"^3.1.0","eslint":"^4.10.0","rimraf":"^2.6.2","rollup":"^0.55.1","cross-env":"^5.1.1","redux-logger":"^3.0.6","redux-devtools":"^3.4.0","@storybook/react":"v3.3.9","redux-mock-store":"^1.3.0","veritone-dev-env":"^1.0.2","rollup-plugin-url":"^1.3.0","identity-obj-proxy":"^3.0.0","redux-validate-fsa":"^0.1.2","rollup-plugin-json":"^2.3.0","babel-plugin-lodash":"^3.3.2","eslint-plugin-react":"^7.4.0","react-test-renderer":"^16.0.0","rollup-plugin-alias":"^1.4.0","rollup-plugin-babel":"^3.0.3","eslint-plugin-lodash":"^2.5.0","babel-plugin-date-fns":"^0.1.0","eslint-plugin-promise":"^3.6.0","rollup-plugin-postcss":"^1.2.8","rollup-plugin-replace":"^2.0.0","@storybook/addon-knobs":"3.3.9","eslint-config-prettier":"^2.7.0","rollup-analyzer-plugin":"^1.1.1","rollup-plugin-commonjs":"^8.3.0","enzyme-adapter-react-16":"^1.0.2","rollup-plugin-node-resolve":"^3.0.2","babel-plugin-transform-runtime":"^6.23.0","redux-immutable-state-invariant":"^2.1.0","babel-plugin-add-react-displayname":"^0.0.5","babel-plugin-transform-class-properties":"^6.24.1","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-plugin-transform-export-extensions":"^6.22.0","babel-plugin-transform-object-rest-spread":"^6.26.0"},"_npmOperationalInternal":{"tmp":"tmp/veritone-widgets_3.0.0_1519337932767_0.5498286050942636","host":"s3://npm-registry-packages"}},"3.0.1":{"name":"veritone-widgets","version":"3.0.1","license":"Apache-2.0","_id":"veritone-widgets@3.0.1","maintainers":[{"name":"coolmitch","email":"robb.mitch@gmail.com"}],"dist":{"shasum":"5fbd764b75c17d0dc73ff56fb0054b5c179dc25b","tarball":"https://registry.npmjs.org/veritone-widgets/-/veritone-widgets-3.0.1.tgz","fileCount":54,"integrity":"sha512-UYk65Q3YDHHj6E5U2vqwXW1ZCkuOXYIsj1DtNpiEzFNnUy/S5sb7sBBAUHvOhqW+JRTzSr7QxPIKG7qmcRHgDA==","signatures":[{"sig":"MEUCIQCiw/fVYNTlKAqEuJD9Wjo1/6IjPMelWbERHmiTjdt7/gIgalL/dF3lbJMh14bGN9dIBm3+Fc2OB9I8mJk/Gf1kzzY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":194794},"jest":{"setupFiles":["<rootDir>/test/testSuitePolyfills.js","<rootDir>/test/configureEnzyme.js"],"moduleNameMapper":{"\\.(css|scss)$":"identity-obj-proxy","\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$":"<rootDir>/test/__mocks__/fileMock.js"},"moduleDirectories":["node_modules"],"moduleFileExtensions":["js","jsx"]},"main":"dist/bundle-cjs.js","module":"dist/bundle-es.js","scripts":{"lint":"eslint src/** --ext .js","test":"jest","build":"cross-env NODE_ENV=production rollup -c","start":"yarn run start:widget-server; yarn run start:storybook","format":"prettier --write \"./src/**/*.{js,scss}\"","prebuild":"npm run clean:build","test:watch":"jest --watch","build:watch":"cross-env NODE_ENV=production rollup -c --watch","clean:build":"rimraf dist","prepublishOnly":"npm run test && npm run lint && npm run build","build:storybook":"NODE_ENV=production build-storybook -c .storybook -o docs-static","start:storybook":"NODE_ENV=test start-storybook -p 3000 -c .storybook","start:widget-server":"yarn workspace veritone-widgets-server run start &"},"_npmUser":{"name":"coolmitch","email":"robb.mitch@gmail.com"},"description":"```javascript import { VeritoneApp } from 'veritone-widgets' const app = VeritoneApp();","directories":{},"jsnext:main":"dist/bundle-es.js","licenseText":"                                 Apache License\n                           Version 2.0, January 2004\n                        http://www.apache.org/licenses/\n\n   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n   1. Definitions.\n\n      \"License\" shall mean the terms and conditions for use, reproduction,\n      and distribution as defined by Sections 1 through 9 of this document.\n\n      \"Licensor\" shall mean the copyright owner or entity authorized by\n      the copyright owner that is granting the License.\n\n      \"Legal Entity\" shall mean the union of the acting entity and all\n      other entities that control, are controlled by, or are under common\n      control with that entity. For the purposes of this definition,\n      \"control\" means (i) the power, direct or indirect, to cause the\n      direction or management of such entity, whether by contract or\n      otherwise, or (ii) ownership of fifty percent (50%) or more of the\n      outstanding shares, or (iii) beneficial ownership of such entity.\n\n      \"You\" (or \"Your\") shall mean an individual or Legal Entity\n      exercising permissions granted by this License.\n\n      \"Source\" form shall mean the preferred form for making modifications,\n      including but not limited to software source code, documentation\n      source, and configuration files.\n\n      \"Object\" form shall mean any form resulting from mechanical\n      transformation or translation of a Source form, including but\n      not limited to compiled object code, generated documentation,\n      and conversions to other media types.\n\n      \"Work\" shall mean the work of authorship, whether in Source or\n      Object form, made available under the License, as indicated by a\n      copyright notice that is included in or attached to the work\n      (an example is provided in the Appendix below).\n\n      \"Derivative Works\" shall mean any work, whether in Source or Object\n      form, that is based on (or derived from) the Work and for which the\n      editorial revisions, annotations, elaborations, or other modifications\n      represent, as a whole, an original work of authorship. For the purposes\n      of this License, Derivative Works shall not include works that remain\n      separable from, or merely link (or bind by name) to the interfaces of,\n      the Work and Derivative Works thereof.\n\n      \"Contribution\" shall mean any work of authorship, including\n      the original version of the Work and any modifications or additions\n      to that Work or Derivative Works thereof, that is intentionally\n      submitted to Licensor for inclusion in the Work by the copyright owner\n      or by an individual or Legal Entity authorized to submit on behalf of\n      the copyright owner. For the purposes of this definition, \"submitted\"\n      means any form of electronic, verbal, or written communication sent\n      to the Licensor or its representatives, including but not limited to\n      communication on electronic mailing lists, source code control systems,\n      and issue tracking systems that are managed by, or on behalf of, the\n      Licensor for the purpose of discussing and improving the Work, but\n      excluding communication that is conspicuously marked or otherwise\n      designated in writing by the copyright owner as \"Not a Contribution.\"\n\n      \"Contributor\" shall mean Licensor and any individual or Legal Entity\n      on behalf of whom a Contribution has been received by Licensor and\n      subsequently incorporated within the Work.\n\n   2. Grant of Copyright License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      copyright license to reproduce, prepare Derivative Works of,\n      publicly display, publicly perform, sublicense, and distribute the\n      Work and such Derivative Works in Source or Object form.\n\n   3. Grant of Patent License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      (except as stated in this section) patent license to make, have made,\n      use, offer to sell, sell, import, and otherwise transfer the Work,\n      where such license applies only to those patent claims licensable\n      by such Contributor that are necessarily infringed by their\n      Contribution(s) alone or by combination of their Contribution(s)\n      with the Work to which such Contribution(s) was submitted. If You\n      institute patent litigation against any entity (including a\n      cross-claim or counterclaim in a lawsuit) alleging that the Work\n      or a Contribution incorporated within the Work constitutes direct\n      or contributory patent infringement, then any patent licenses\n      granted to You under this License for that Work shall terminate\n      as of the date such litigation is filed.\n\n   4. Redistribution. You may reproduce and distribute copies of the\n      Work or Derivative Works thereof in any medium, with or without\n      modifications, and in Source or Object form, provided that You\n      meet the following conditions:\n\n      (a) You must give any other recipients of the Work or\n          Derivative Works a copy of this License; and\n\n      (b) You must cause any modified files to carry prominent notices\n          stating that You changed the files; and\n\n      (c) You must retain, in the Source form of any Derivative Works\n          that You distribute, all copyright, patent, trademark, and\n          attribution notices from the Source form of the Work,\n          excluding those notices that do not pertain to any part of\n          the Derivative Works; and\n\n      (d) If the Work includes a \"NOTICE\" text file as part of its\n          distribution, then any Derivative Works that You distribute must\n          include a readable copy of the attribution notices contained\n          within such NOTICE file, excluding those notices that do not\n          pertain to any part of the Derivative Works, in at least one\n          of the following places: within a NOTICE text file distributed\n          as part of the Derivative Works; within the Source form or\n          documentation, if provided along with the Derivative Works; or,\n          within a display generated by the Derivative Works, if and\n          wherever such third-party notices normally appear. The contents\n          of the NOTICE file are for informational purposes only and\n          do not modify the License. You may add Your own attribution\n          notices within Derivative Works that You distribute, alongside\n          or as an addendum to the NOTICE text from the Work, provided\n          that such additional attribution notices cannot be construed\n          as modifying the License.\n\n      You may add Your own copyright statement to Your modifications and\n      may provide additional or different license terms and conditions\n      for use, reproduction, or distribution of Your modifications, or\n      for any such Derivative Works as a whole, provided Your use,\n      reproduction, and distribution of the Work otherwise complies with\n      the conditions stated in this License.\n\n   5. Submission of Contributions. Unless You explicitly state otherwise,\n      any Contribution intentionally submitted for inclusion in the Work\n      by You to the Licensor shall be under the terms and conditions of\n      this License, without any additional terms or conditions.\n      Notwithstanding the above, nothing herein shall supersede or modify\n      the terms of any separate license agreement you may have executed\n      with Licensor regarding such Contributions.\n\n   6. Trademarks. This License does not grant permission to use the trade\n      names, trademarks, service marks, or product names of the Licensor,\n      except as required for reasonable and customary use in describing the\n      origin of the Work and reproducing the content of the NOTICE file.\n\n   7. Disclaimer of Warranty. Unless required by applicable law or\n      agreed to in writing, Licensor provides the Work (and each\n      Contributor provides its Contributions) on an \"AS IS\" BASIS,\n      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n      implied, including, without limitation, any warranties or conditions\n      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n      PARTICULAR PURPOSE. You are solely responsible for determining the\n      appropriateness of using or redistributing the Work and assume any\n      risks associated with Your exercise of permissions under this License.\n\n   8. Limitation of Liability. In no event and under no legal theory,\n      whether in tort (including negligence), contract, or otherwise,\n      unless required by applicable law (such as deliberate and grossly\n      negligent acts) or agreed to in writing, shall any Contributor be\n      liable to You for damages, including any direct, indirect, special,\n      incidental, or consequential damages of any character arising as a\n      result of this License or out of the use or inability to use the\n      Work (including but not limited to damages for loss of goodwill,\n      work stoppage, computer failure or malfunction, or any and all\n      other commercial damages or losses), even if such Contributor\n      has been advised of the possibility of such damages.\n\n   9. Accepting Warranty or Additional Liability. While redistributing\n      the Work or Derivative Works thereof, You may choose to offer,\n      and charge a fee for, acceptance of support, warranty, indemnity,\n      or other liability obligations and/or rights consistent with this\n      License. However, in accepting such obligations, You may act only\n      on Your own behalf and on Your sole responsibility, not on behalf\n      of any other Contributor, and only if You agree to indemnify,\n      defend, and hold each Contributor harmless for any liability\n      incurred by, or claims asserted against, such Contributor by reason\n      of your accepting any such warranty or additional liability.\n\n   END OF TERMS AND CONDITIONS\n\n   APPENDIX: How to apply the Apache License to your work.\n\n      To apply the Apache License to your work, attach the following\n      boilerplate notice, with the fields enclosed by brackets \"{}\"\n      replaced with your own identifying information. (Don't include\n      the brackets!)  The text should be enclosed in the appropriate\n      comment syntax for the file format. We also recommend that a\n      file or class name and description of purpose be included on the\n      same \"printed page\" as the copyright notice for easier\n      identification within third-party archives.\n\n   Copyright {yyyy} {name of copyright owner}\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n","dependencies":{"react":"^16.2.0","redux":"^3.7.2","react-dom":"^16.2.0","redux-saga":"^0.15.6","react-redux":"^5.0.6","babel-runtime":"^6.26.0","babel-polyfill":"^6.26.0","react-redux-saga":"^1.0.2","veritone-react-common":"^3.0.0","veritone-redux-common":"^3.0.0","redux-api-middleware-fixed":"^2.0.0"},"_hasShrinkwrap":false,"devDependencies":{"raf":"^3.4.0","jest":"^21.2.1","enzyme":"^3.1.0","eslint":"^4.10.0","rimraf":"^2.6.2","rollup":"^0.55.1","cross-env":"^5.1.1","redux-logger":"^3.0.6","redux-devtools":"^3.4.0","@storybook/react":"v3.3.9","redux-mock-store":"^1.3.0","veritone-dev-env":"^1.0.2","rollup-plugin-url":"^1.3.0","identity-obj-proxy":"^3.0.0","redux-validate-fsa":"^0.1.2","rollup-plugin-json":"^2.3.0","babel-plugin-lodash":"^3.3.2","eslint-plugin-react":"^7.4.0","react-test-renderer":"^16.0.0","rollup-plugin-alias":"^1.4.0","rollup-plugin-babel":"^3.0.3","eslint-plugin-lodash":"^2.5.0","babel-plugin-date-fns":"^0.1.0","eslint-plugin-promise":"^3.6.0","rollup-plugin-postcss":"^1.2.8","rollup-plugin-replace":"^2.0.0","@storybook/addon-knobs":"3.3.9","eslint-config-prettier":"^2.7.0","rollup-analyzer-plugin":"^1.1.1","rollup-plugin-commonjs":"^8.3.0","enzyme-adapter-react-16":"^1.0.2","rollup-plugin-node-resolve":"^3.0.2","babel-plugin-transform-runtime":"^6.23.0","redux-immutable-state-invariant":"^2.1.0","babel-plugin-add-react-displayname":"^0.0.5","babel-plugin-transform-class-properties":"^6.24.1","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-plugin-transform-export-extensions":"^6.22.0","babel-plugin-transform-object-rest-spread":"^6.26.0"},"_npmOperationalInternal":{"tmp":"tmp/veritone-widgets_3.0.1_1519674105290_0.34996325896879954","host":"s3://npm-registry-packages"}},"4.0.0":{"name":"veritone-widgets","version":"4.0.0","license":"Apache-2.0","_id":"veritone-widgets@4.0.0","maintainers":[{"name":"coolmitch","email":"robb.mitch@gmail.com"}],"dist":{"shasum":"af0cd14837d38bb136f577cbaf264b07baf94650","tarball":"https://registry.npmjs.org/veritone-widgets/-/veritone-widgets-4.0.0.tgz","fileCount":59,"integrity":"sha512-cd7gEYNvYPRd3nFJwwmdVedt0WjEU2E6pWMrKxt25YM1wFlGf/cyrZlXuJyNhdUVRSRC9aoftMr+R4eg3TmAzg==","signatures":[{"sig":"MEUCIQChc530kAEEYs655y8/xQAv0CAilF40JSE+mRPZtw7DBgIgbIDeEs34cDuZOoEKTyCv20U1lQf8lu6RQTjLduJPNTM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2804939},"jest":{"setupFiles":["<rootDir>/test/testSuitePolyfills.js","<rootDir>/test/configureEnzyme.js"],"moduleNameMapper":{"\\.(css|scss)$":"identity-obj-proxy","\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$":"<rootDir>/test/__mocks__/fileMock.js"},"moduleDirectories":["node_modules"],"moduleFileExtensions":["js","jsx"]},"main":"dist/bundle-cjs.js","module":"dist/bundle-es.js","scripts":{"lint":"eslint src/** --ext .js","test":"jest","build":"yarn run build:es && yarn run build:script-tag","start":"yarn run start:widget-server; yarn run start:storybook","format":"prettier --write \"./src/**/*.{js,scss}\"","build:es":"cross-env NODE_ENV=production rollup -c","prebuild":"npm run clean:build","test:watch":"jest --watch","build:watch":"cross-env NODE_ENV=production rollup -c --watch","clean:build":"rimraf dist","prepublishOnly":"npm run test && npm run lint && npm run build","build:storybook":"NODE_ENV=production build-storybook -c .storybook -o docs-static","start:storybook":"NODE_ENV=test start-storybook -p 3000 -c .storybook","build:script-tag":"cross-env NODE_ENV=production webpack --config webpack.config.script-tag.js","start:widget-server":"yarn workspace veritone-widgets-server run start &"},"_npmUser":{"name":"coolmitch","email":"robb.mitch@gmail.com"},"description":"```javascript import { VeritoneApp } from 'veritone-widgets' const app = VeritoneApp();","directories":{},"jsnext:main":"dist/bundle-es.js","licenseText":"                                 Apache License\n                           Version 2.0, January 2004\n                        http://www.apache.org/licenses/\n\n   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n   1. Definitions.\n\n      \"License\" shall mean the terms and conditions for use, reproduction,\n      and distribution as defined by Sections 1 through 9 of this document.\n\n      \"Licensor\" shall mean the copyright owner or entity authorized by\n      the copyright owner that is granting the License.\n\n      \"Legal Entity\" shall mean the union of the acting entity and all\n      other entities that control, are controlled by, or are under common\n      control with that entity. For the purposes of this definition,\n      \"control\" means (i) the power, direct or indirect, to cause the\n      direction or management of such entity, whether by contract or\n      otherwise, or (ii) ownership of fifty percent (50%) or more of the\n      outstanding shares, or (iii) beneficial ownership of such entity.\n\n      \"You\" (or \"Your\") shall mean an individual or Legal Entity\n      exercising permissions granted by this License.\n\n      \"Source\" form shall mean the preferred form for making modifications,\n      including but not limited to software source code, documentation\n      source, and configuration files.\n\n      \"Object\" form shall mean any form resulting from mechanical\n      transformation or translation of a Source form, including but\n      not limited to compiled object code, generated documentation,\n      and conversions to other media types.\n\n      \"Work\" shall mean the work of authorship, whether in Source or\n      Object form, made available under the License, as indicated by a\n      copyright notice that is included in or attached to the work\n      (an example is provided in the Appendix below).\n\n      \"Derivative Works\" shall mean any work, whether in Source or Object\n      form, that is based on (or derived from) the Work and for which the\n      editorial revisions, annotations, elaborations, or other modifications\n      represent, as a whole, an original work of authorship. For the purposes\n      of this License, Derivative Works shall not include works that remain\n      separable from, or merely link (or bind by name) to the interfaces of,\n      the Work and Derivative Works thereof.\n\n      \"Contribution\" shall mean any work of authorship, including\n      the original version of the Work and any modifications or additions\n      to that Work or Derivative Works thereof, that is intentionally\n      submitted to Licensor for inclusion in the Work by the copyright owner\n      or by an individual or Legal Entity authorized to submit on behalf of\n      the copyright owner. For the purposes of this definition, \"submitted\"\n      means any form of electronic, verbal, or written communication sent\n      to the Licensor or its representatives, including but not limited to\n      communication on electronic mailing lists, source code control systems,\n      and issue tracking systems that are managed by, or on behalf of, the\n      Licensor for the purpose of discussing and improving the Work, but\n      excluding communication that is conspicuously marked or otherwise\n      designated in writing by the copyright owner as \"Not a Contribution.\"\n\n      \"Contributor\" shall mean Licensor and any individual or Legal Entity\n      on behalf of whom a Contribution has been received by Licensor and\n      subsequently incorporated within the Work.\n\n   2. Grant of Copyright License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      copyright license to reproduce, prepare Derivative Works of,\n      publicly display, publicly perform, sublicense, and distribute the\n      Work and such Derivative Works in Source or Object form.\n\n   3. Grant of Patent License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      (except as stated in this section) patent license to make, have made,\n      use, offer to sell, sell, import, and otherwise transfer the Work,\n      where such license applies only to those patent claims licensable\n      by such Contributor that are necessarily infringed by their\n      Contribution(s) alone or by combination of their Contribution(s)\n      with the Work to which such Contribution(s) was submitted. If You\n      institute patent litigation against any entity (including a\n      cross-claim or counterclaim in a lawsuit) alleging that the Work\n      or a Contribution incorporated within the Work constitutes direct\n      or contributory patent infringement, then any patent licenses\n      granted to You under this License for that Work shall terminate\n      as of the date such litigation is filed.\n\n   4. Redistribution. You may reproduce and distribute copies of the\n      Work or Derivative Works thereof in any medium, with or without\n      modifications, and in Source or Object form, provided that You\n      meet the following conditions:\n\n      (a) You must give any other recipients of the Work or\n          Derivative Works a copy of this License; and\n\n      (b) You must cause any modified files to carry prominent notices\n          stating that You changed the files; and\n\n      (c) You must retain, in the Source form of any Derivative Works\n          that You distribute, all copyright, patent, trademark, and\n          attribution notices from the Source form of the Work,\n          excluding those notices that do not pertain to any part of\n          the Derivative Works; and\n\n      (d) If the Work includes a \"NOTICE\" text file as part of its\n          distribution, then any Derivative Works that You distribute must\n          include a readable copy of the attribution notices contained\n          within such NOTICE file, excluding those notices that do not\n          pertain to any part of the Derivative Works, in at least one\n          of the following places: within a NOTICE text file distributed\n          as part of the Derivative Works; within the Source form or\n          documentation, if provided along with the Derivative Works; or,\n          within a display generated by the Derivative Works, if and\n          wherever such third-party notices normally appear. The contents\n          of the NOTICE file are for informational purposes only and\n          do not modify the License. You may add Your own attribution\n          notices within Derivative Works that You distribute, alongside\n          or as an addendum to the NOTICE text from the Work, provided\n          that such additional attribution notices cannot be construed\n          as modifying the License.\n\n      You may add Your own copyright statement to Your modifications and\n      may provide additional or different license terms and conditions\n      for use, reproduction, or distribution of Your modifications, or\n      for any such Derivative Works as a whole, provided Your use,\n      reproduction, and distribution of the Work otherwise complies with\n      the conditions stated in this License.\n\n   5. Submission of Contributions. Unless You explicitly state otherwise,\n      any Contribution intentionally submitted for inclusion in the Work\n      by You to the Licensor shall be under the terms and conditions of\n      this License, without any additional terms or conditions.\n      Notwithstanding the above, nothing herein shall supersede or modify\n      the terms of any separate license agreement you may have executed\n      with Licensor regarding such Contributions.\n\n   6. Trademarks. This License does not grant permission to use the trade\n      names, trademarks, service marks, or product names of the Licensor,\n      except as required for reasonable and customary use in describing the\n      origin of the Work and reproducing the content of the NOTICE file.\n\n   7. Disclaimer of Warranty. Unless required by applicable law or\n      agreed to in writing, Licensor provides the Work (and each\n      Contributor provides its Contributions) on an \"AS IS\" BASIS,\n      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n      implied, including, without limitation, any warranties or conditions\n      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n      PARTICULAR PURPOSE. You are solely responsible for determining the\n      appropriateness of using or redistributing the Work and assume any\n      risks associated with Your exercise of permissions under this License.\n\n   8. Limitation of Liability. In no event and under no legal theory,\n      whether in tort (including negligence), contract, or otherwise,\n      unless required by applicable law (such as deliberate and grossly\n      negligent acts) or agreed to in writing, shall any Contributor be\n      liable to You for damages, including any direct, indirect, special,\n      incidental, or consequential damages of any character arising as a\n      result of this License or out of the use or inability to use the\n      Work (including but not limited to damages for loss of goodwill,\n      work stoppage, computer failure or malfunction, or any and all\n      other commercial damages or losses), even if such Contributor\n      has been advised of the possibility of such damages.\n\n   9. Accepting Warranty or Additional Liability. While redistributing\n      the Work or Derivative Works thereof, You may choose to offer,\n      and charge a fee for, acceptance of support, warranty, indemnity,\n      or other liability obligations and/or rights consistent with this\n      License. However, in accepting such obligations, You may act only\n      on Your own behalf and on Your sole responsibility, not on behalf\n      of any other Contributor, and only if You agree to indemnify,\n      defend, and hold each Contributor harmless for any liability\n      incurred by, or claims asserted against, such Contributor by reason\n      of your accepting any such warranty or additional liability.\n\n   END OF TERMS AND CONDITIONS\n\n   APPENDIX: How to apply the Apache License to your work.\n\n      To apply the Apache License to your work, attach the following\n      boilerplate notice, with the fields enclosed by brackets \"{}\"\n      replaced with your own identifying information. (Don't include\n      the brackets!)  The text should be enclosed in the appropriate\n      comment syntax for the file format. We also recommend that a\n      file or class name and description of purpose be included on the\n      same \"printed page\" as the copyright notice for easier\n      identification within third-party archives.\n\n   Copyright {yyyy} {name of copyright owner}\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n","dependencies":{"react":"^16.2.0","redux":"^3.7.2","react-dom":"^16.2.0","redux-saga":"^0.15.6","react-redux":"^5.0.6","babel-runtime":"^6.26.0","babel-polyfill":"^6.26.0","react-redux-saga":"^1.0.2","veritone-react-common":"^4.0.0","veritone-redux-common":"^3.1.0","veritone-oauth-helpers":"^2.1.0","redux-api-middleware-fixed":"^2.0.0"},"_hasShrinkwrap":false,"devDependencies":{"raf":"^3.4.0","jest":"^21.2.1","enzyme":"^3.1.0","eslint":"^4.10.0","rimraf":"^2.6.2","rollup":"^0.55.1","webpack":"^4.0.1","cross-env":"^5.1.1","babel-core":"^6.26.0","webpack-cli":"^2.0.9","babel-loader":"^7.1.3","redux-logger":"^3.0.6","redux-devtools":"^3.4.0","@storybook/react":"v3.3.9","redux-mock-store":"^1.3.0","veritone-dev-env":"^1.0.2","rollup-plugin-url":"^1.3.0","identity-obj-proxy":"^3.0.0","redux-validate-fsa":"^0.1.2","rollup-plugin-json":"^2.3.0","babel-plugin-lodash":"^3.3.2","eslint-plugin-react":"^7.4.0","react-test-renderer":"^16.0.0","rollup-plugin-alias":"^1.4.0","rollup-plugin-babel":"^3.0.3","eslint-plugin-lodash":"^2.5.0","babel-plugin-date-fns":"^0.1.0","eslint-plugin-promise":"^3.6.0","rollup-plugin-postcss":"^1.2.8","rollup-plugin-replace":"^2.0.0","@storybook/addon-knobs":"3.3.9","eslint-config-prettier":"^2.7.0","rollup-analyzer-plugin":"^1.1.1","rollup-plugin-commonjs":"^8.3.0","enzyme-adapter-react-16":"^1.0.2","rollup-plugin-node-resolve":"^3.0.2","babel-plugin-transform-runtime":"^6.23.0","redux-immutable-state-invariant":"^2.1.0","babel-plugin-add-react-displayname":"^0.0.5","babel-plugin-transform-class-properties":"^6.24.1","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-plugin-transform-export-extensions":"^6.22.0","babel-plugin-transform-object-rest-spread":"^6.26.0"},"_npmOperationalInternal":{"tmp":"tmp/veritone-widgets_4.0.0_1521670928355_0.48232483388750147","host":"s3://npm-registry-packages"}},"4.1.0":{"name":"veritone-widgets","version":"4.1.0","license":"Apache-2.0","_id":"veritone-widgets@4.1.0","maintainers":[{"name":"coolmitch","email":"robb.mitch@gmail.com"}],"dist":{"shasum":"c53c04d7a746ad978cce08c8334b79b3fb3085ed","tarball":"https://registry.npmjs.org/veritone-widgets/-/veritone-widgets-4.1.0.tgz","fileCount":61,"integrity":"sha512-nCZ+wP4UV7Hsy4GKOczqKu6m4xqbdvLH2rkjnz3GDaaBJM2CTio+B0SdLh+pYgeznsZmfawb43XUoTLv+skDww==","signatures":[{"sig":"MEUCIAPSOdVQvv2WRXYdV4ZDRX/AWIXQ8tY5Zs5LfOXaiLjTAiEA6XDqG7gUB6EDAFvxctuH8KUhx/PjkhENAHYharHKs9Q=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":2893217},"jest":{"setupFiles":["<rootDir>/test/testSuitePolyfills.js","<rootDir>/test/configureEnzyme.js"],"moduleNameMapper":{"\\.(css|scss)$":"identity-obj-proxy","\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$":"<rootDir>/test/__mocks__/fileMock.js"},"moduleDirectories":["node_modules"],"moduleFileExtensions":["js","jsx"]},"main":"dist/bundle-cjs.js","module":"dist/bundle-es.js","scripts":{"lint":"eslint src/** --ext .js","test":"jest","build":"yarn run build:es && yarn run build:cjs && yarn run build:script-tag","start":"yarn run start:widget-server; yarn run start:storybook","format":"prettier --write \"./src/**/*.{js,scss}\"","build:es":"cross-env NODE_ENV=production BABEL_ENV=production-es rollup -c rollup.config.es.js","prebuild":"npm run clean:build","build:cjs":"cross-env NODE_ENV=production BABEL_ENV=production-cjs rollup -c rollup.config.cjs.js","test:watch":"jest --watch","build:watch":"cross-env NODE_ENV=production rollup -c --watch","clean:build":"rimraf dist","prepublishOnly":"npm run test && npm run lint && npm run build","build:storybook":"NODE_ENV=production build-storybook -c .storybook -o docs-static","start:storybook":"NODE_ENV=test start-storybook -p 3000 -c .storybook","build:script-tag":"cross-env NODE_ENV=production BABEL_ENV=production-cjs webpack --config webpack.config.script-tag.js","start:widget-server":"yarn workspace veritone-widgets-server run start &"},"_npmUser":{"name":"coolmitch","email":"robb.mitch@gmail.com"},"description":"```javascript import { VeritoneApp } from 'veritone-widgets' const app = VeritoneApp();","directories":{},"jsnext:main":"dist/bundle-es.js","licenseText":"                                 Apache License\n                           Version 2.0, January 2004\n                        http://www.apache.org/licenses/\n\n   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n   1. Definitions.\n\n      \"License\" shall mean the terms and conditions for use, reproduction,\n      and distribution as defined by Sections 1 through 9 of this document.\n\n      \"Licensor\" shall mean the copyright owner or entity authorized by\n      the copyright owner that is granting the License.\n\n      \"Legal Entity\" shall mean the union of the acting entity and all\n      other entities that control, are controlled by, or are under common\n      control with that entity. For the purposes of this definition,\n      \"control\" means (i) the power, direct or indirect, to cause the\n      direction or management of such entity, whether by contract or\n      otherwise, or (ii) ownership of fifty percent (50%) or more of the\n      outstanding shares, or (iii) beneficial ownership of such entity.\n\n      \"You\" (or \"Your\") shall mean an individual or Legal Entity\n      exercising permissions granted by this License.\n\n      \"Source\" form shall mean the preferred form for making modifications,\n      including but not limited to software source code, documentation\n      source, and configuration files.\n\n      \"Object\" form shall mean any form resulting from mechanical\n      transformation or translation of a Source form, including but\n      not limited to compiled object code, generated documentation,\n      and conversions to other media types.\n\n      \"Work\" shall mean the work of authorship, whether in Source or\n      Object form, made available under the License, as indicated by a\n      copyright notice that is included in or attached to the work\n      (an example is provided in the Appendix below).\n\n      \"Derivative Works\" shall mean any work, whether in Source or Object\n      form, that is based on (or derived from) the Work and for which the\n      editorial revisions, annotations, elaborations, or other modifications\n      represent, as a whole, an original work of authorship. For the purposes\n      of this License, Derivative Works shall not include works that remain\n      separable from, or merely link (or bind by name) to the interfaces of,\n      the Work and Derivative Works thereof.\n\n      \"Contribution\" shall mean any work of authorship, including\n      the original version of the Work and any modifications or additions\n      to that Work or Derivative Works thereof, that is intentionally\n      submitted to Licensor for inclusion in the Work by the copyright owner\n      or by an individual or Legal Entity authorized to submit on behalf of\n      the copyright owner. For the purposes of this definition, \"submitted\"\n      means any form of electronic, verbal, or written communication sent\n      to the Licensor or its representatives, including but not limited to\n      communication on electronic mailing lists, source code control systems,\n      and issue tracking systems that are managed by, or on behalf of, the\n      Licensor for the purpose of discussing and improving the Work, but\n      excluding communication that is conspicuously marked or otherwise\n      designated in writing by the copyright owner as \"Not a Contribution.\"\n\n      \"Contributor\" shall mean Licensor and any individual or Legal Entity\n      on behalf of whom a Contribution has been received by Licensor and\n      subsequently incorporated within the Work.\n\n   2. Grant of Copyright License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      copyright license to reproduce, prepare Derivative Works of,\n      publicly display, publicly perform, sublicense, and distribute the\n      Work and such Derivative Works in Source or Object form.\n\n   3. Grant of Patent License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      (except as stated in this section) patent license to make, have made,\n      use, offer to sell, sell, import, and otherwise transfer the Work,\n      where such license applies only to those patent claims licensable\n      by such Contributor that are necessarily infringed by their\n      Contribution(s) alone or by combination of their Contribution(s)\n      with the Work to which such Contribution(s) was submitted. If You\n      institute patent litigation against any entity (including a\n      cross-claim or counterclaim in a lawsuit) alleging that the Work\n      or a Contribution incorporated within the Work constitutes direct\n      or contributory patent infringement, then any patent licenses\n      granted to You under this License for that Work shall terminate\n      as of the date such litigation is filed.\n\n   4. Redistribution. You may reproduce and distribute copies of the\n      Work or Derivative Works thereof in any medium, with or without\n      modifications, and in Source or Object form, provided that You\n      meet the following conditions:\n\n      (a) You must give any other recipients of the Work or\n          Derivative Works a copy of this License; and\n\n      (b) You must cause any modified files to carry prominent notices\n          stating that You changed the files; and\n\n      (c) You must retain, in the Source form of any Derivative Works\n          that You distribute, all copyright, patent, trademark, and\n          attribution notices from the Source form of the Work,\n          excluding those notices that do not pertain to any part of\n          the Derivative Works; and\n\n      (d) If the Work includes a \"NOTICE\" text file as part of its\n          distribution, then any Derivative Works that You distribute must\n          include a readable copy of the attribution notices contained\n          within such NOTICE file, excluding those notices that do not\n          pertain to any part of the Derivative Works, in at least one\n          of the following places: within a NOTICE text file distributed\n          as part of the Derivative Works; within the Source form or\n          documentation, if provided along with the Derivative Works; or,\n          within a display generated by the Derivative Works, if and\n          wherever such third-party notices normally appear. The contents\n          of the NOTICE file are for informational purposes only and\n          do not modify the License. You may add Your own attribution\n          notices within Derivative Works that You distribute, alongside\n          or as an addendum to the NOTICE text from the Work, provided\n          that such additional attribution notices cannot be construed\n          as modifying the License.\n\n      You may add Your own copyright statement to Your modifications and\n      may provide additional or different license terms and conditions\n      for use, reproduction, or distribution of Your modifications, or\n      for any such Derivative Works as a whole, provided Your use,\n      reproduction, and distribution of the Work otherwise complies with\n      the conditions stated in this License.\n\n   5. Submission of Contributions. Unless You explicitly state otherwise,\n      any Contribution intentionally submitted for inclusion in the Work\n      by You to the Licensor shall be under the terms and conditions of\n      this License, without any additional terms or conditions.\n      Notwithstanding the above, nothing herein shall supersede or modify\n      the terms of any separate license agreement you may have executed\n      with Licensor regarding such Contributions.\n\n   6. Trademarks. This License does not grant permission to use the trade\n      names, trademarks, service marks, or product names of the Licensor,\n      except as required for reasonable and customary use in describing the\n      origin of the Work and reproducing the content of the NOTICE file.\n\n   7. Disclaimer of Warranty. Unless required by applicable law or\n      agreed to in writing, Licensor provides the Work (and each\n      Contributor provides its Contributions) on an \"AS IS\" BASIS,\n      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n      implied, including, without limitation, any warranties or conditions\n      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n      PARTICULAR PURPOSE. You are solely responsible for determining the\n      appropriateness of using or redistributing the Work and assume any\n      risks associated with Your exercise of permissions under this License.\n\n   8. Limitation of Liability. In no event and under no legal theory,\n      whether in tort (including negligence), contract, or otherwise,\n      unless required by applicable law (such as deliberate and grossly\n      negligent acts) or agreed to in writing, shall any Contributor be\n      liable to You for damages, including any direct, indirect, special,\n      incidental, or consequential damages of any character arising as a\n      result of this License or out of the use or inability to use the\n      Work (including but not limited to damages for loss of goodwill,\n      work stoppage, computer failure or malfunction, or any and all\n      other commercial damages or losses), even if such Contributor\n      has been advised of the possibility of such damages.\n\n   9. Accepting Warranty or Additional Liability. While redistributing\n      the Work or Derivative Works thereof, You may choose to offer,\n      and charge a fee for, acceptance of support, warranty, indemnity,\n      or other liability obligations and/or rights consistent with this\n      License. However, in accepting such obligations, You may act only\n      on Your own behalf and on Your sole responsibility, not on behalf\n      of any other Contributor, and only if You agree to indemnify,\n      defend, and hold each Contributor harmless for any liability\n      incurred by, or claims asserted against, such Contributor by reason\n      of your accepting any such warranty or additional liability.\n\n   END OF TERMS AND CONDITIONS\n\n   APPENDIX: How to apply the Apache License to your work.\n\n      To apply the Apache License to your work, attach the following\n      boilerplate notice, with the fields enclosed by brackets \"{}\"\n      replaced with your own identifying information. (Don't include\n      the brackets!)  The text should be enclosed in the appropriate\n      comment syntax for the file format. We also recommend that a\n      file or class name and description of purpose be included on the\n      same \"printed page\" as the copyright notice for easier\n      identification within third-party archives.\n\n   Copyright {yyyy} {name of copyright owner}\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n","dependencies":{"react":"^16.2.0","redux":"^3.7.2","react-dom":"^16.2.0","redux-saga":"^0.15.6","react-redux":"^5.0.6","babel-runtime":"^6.26.0","babel-polyfill":"^6.26.0","react-redux-saga":"^1.0.2","veritone-react-common":"^4.0.0","veritone-redux-common":"^3.1.0","veritone-oauth-helpers":"^2.1.0","redux-api-middleware-fixed":"^2.0.0"},"_hasShrinkwrap":false,"devDependencies":{"raf":"^3.4.0","jest":"^21.2.1","enzyme":"^3.1.0","eslint":"^4.10.0","rimraf":"^2.6.2","rollup":"^0.55.1","webpack":"^4.0.1","cross-env":"^5.1.1","babel-core":"^6.26.0","webpack-cli":"^2.0.9","babel-loader":"^7.1.3","redux-logger":"^3.0.6","redux-devtools":"^3.4.0","@storybook/react":"v3.3.9","redux-mock-store":"^1.3.0","veritone-dev-env":"^1.0.2","rollup-plugin-url":"^1.3.0","identity-obj-proxy":"^3.0.0","redux-validate-fsa":"^0.1.2","rollup-plugin-json":"^2.3.0","babel-plugin-lodash":"^3.3.2","eslint-plugin-react":"^7.4.0","react-test-renderer":"^16.0.0","rollup-plugin-alias":"^1.4.0","rollup-plugin-babel":"^3.0.3","eslint-plugin-lodash":"^2.5.0","babel-plugin-date-fns":"^0.1.0","eslint-plugin-promise":"^3.6.0","rollup-plugin-postcss":"^1.2.8","rollup-plugin-replace":"^2.0.0","@storybook/addon-knobs":"3.3.9","eslint-config-prettier":"^2.7.0","rollup-analyzer-plugin":"^1.1.1","rollup-plugin-commonjs":"^8.3.0","enzyme-adapter-react-16":"^1.0.2","rollup-plugin-node-resolve":"^3.0.2","babel-plugin-transform-runtime":"^6.23.0","redux-immutable-state-invariant":"^2.1.0","babel-plugin-add-react-displayname":"^0.0.5","babel-plugin-transform-class-properties":"^6.24.1","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-plugin-transform-export-extensions":"^6.22.0","babel-plugin-transform-object-rest-spread":"^6.26.0"},"_npmOperationalInternal":{"tmp":"tmp/veritone-widgets_4.1.0_1521672080468_0.7492542441612933","host":"s3://npm-registry-packages"}},"4.2.0":{"name":"veritone-widgets","version":"4.2.0","license":"Apache-2.0","_id":"veritone-widgets@4.2.0","maintainers":[{"name":"coolmitch","email":"robb.mitch@gmail.com"}],"dist":{"shasum":"6f7715c582b4ff99f641ac8c193335a11ad95a79","tarball":"https://registry.npmjs.org/veritone-widgets/-/veritone-widgets-4.2.0.tgz","fileCount":65,"integrity":"sha512-U/JMzmpip3qzWcS0BUAJlB7Y2LrTa+MER4oItVO5WgDKfHUVwJz86yQSDUdgBblZw73FWIgYoKP1YXl/v3x42A==","signatures":[{"sig":"MEQCIBrtZ7zwxBNEqggpASoDnisjEMWYvZ4kvMe8U3F3rAfaAiB33YqvHJLH+majDAwa1MJbRFbTVuY9XKJ86JXVPpicag==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":4921685},"jest":{"setupFiles":["<rootDir>/test/testSuitePolyfills.js","<rootDir>/test/configureEnzyme.js"],"moduleNameMapper":{"\\.(css|scss)$":"identity-obj-proxy","\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$":"<rootDir>/test/__mocks__/fileMock.js"},"moduleDirectories":["node_modules"],"moduleFileExtensions":["js","jsx"]},"main":"dist/bundle-cjs.js","module":"dist/bundle-es.js","scripts":{"lint":"eslint src/** --ext .js --max-warnings 0","test":"jest","build":"yarn run build:es && yarn run build:cjs && yarn run build:script-tag","start":"yarn run start:widget-server; yarn run start:storybook","format":"prettier --write \"./src/**/*.{js,scss}\"","build:es":"cross-env NODE_ENV=production BABEL_ENV=production-es rollup -c rollup.config.es.js","prebuild":"yarn run clean:build","build:cjs":"cross-env NODE_ENV=production BABEL_ENV=production-cjs rollup -c rollup.config.cjs.js","test:watch":"jest --watch","build:watch":"cross-env NODE_ENV=production rollup -c --watch","clean:build":"rimraf dist","prepublishOnly":"yarn run test && yarn run lint && yarn run build","build:storybook":"NODE_ENV=production build-storybook -c .storybook -o docs-static","start:storybook":"NODE_ENV=test start-storybook -p 3000 -c .storybook","build:script-tag":"cross-env NODE_ENV=production BABEL_ENV=production-cjs webpack --config webpack.config.script-tag.js","start:widget-server":"yarn workspace veritone-widgets-server run start &"},"_npmUser":{"name":"coolmitch","email":"robb.mitch@gmail.com"},"description":"```javascript import { VeritoneApp } from 'veritone-widgets' const app = VeritoneApp();","directories":{},"jsnext:main":"dist/bundle-es.js","licenseText":"                                 Apache License\n                           Version 2.0, January 2004\n                        http://www.apache.org/licenses/\n\n   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n   1. Definitions.\n\n      \"License\" shall mean the terms and conditions for use, reproduction,\n      and distribution as defined by Sections 1 through 9 of this document.\n\n      \"Licensor\" shall mean the copyright owner or entity authorized by\n      the copyright owner that is granting the License.\n\n      \"Legal Entity\" shall mean the union of the acting entity and all\n      other entities that control, are controlled by, or are under common\n      control with that entity. For the purposes of this definition,\n      \"control\" means (i) the power, direct or indirect, to cause the\n      direction or management of such entity, whether by contract or\n      otherwise, or (ii) ownership of fifty percent (50%) or more of the\n      outstanding shares, or (iii) beneficial ownership of such entity.\n\n      \"You\" (or \"Your\") shall mean an individual or Legal Entity\n      exercising permissions granted by this License.\n\n      \"Source\" form shall mean the preferred form for making modifications,\n      including but not limited to software source code, documentation\n      source, and configuration files.\n\n      \"Object\" form shall mean any form resulting from mechanical\n      transformation or translation of a Source form, including but\n      not limited to compiled object code, generated documentation,\n      and conversions to other media types.\n\n      \"Work\" shall mean the work of authorship, whether in Source or\n      Object form, made available under the License, as indicated by a\n      copyright notice that is included in or attached to the work\n      (an example is provided in the Appendix below).\n\n      \"Derivative Works\" shall mean any work, whether in Source or Object\n      form, that is based on (or derived from) the Work and for which the\n      editorial revisions, annotations, elaborations, or other modifications\n      represent, as a whole, an original work of authorship. For the purposes\n      of this License, Derivative Works shall not include works that remain\n      separable from, or merely link (or bind by name) to the interfaces of,\n      the Work and Derivative Works thereof.\n\n      \"Contribution\" shall mean any work of authorship, including\n      the original version of the Work and any modifications or additions\n      to that Work or Derivative Works thereof, that is intentionally\n      submitted to Licensor for inclusion in the Work by the copyright owner\n      or by an individual or Legal Entity authorized to submit on behalf of\n      the copyright owner. For the purposes of this definition, \"submitted\"\n      means any form of electronic, verbal, or written communication sent\n      to the Licensor or its representatives, including but not limited to\n      communication on electronic mailing lists, source code control systems,\n      and issue tracking systems that are managed by, or on behalf of, the\n      Licensor for the purpose of discussing and improving the Work, but\n      excluding communication that is conspicuously marked or otherwise\n      designated in writing by the copyright owner as \"Not a Contribution.\"\n\n      \"Contributor\" shall mean Licensor and any individual or Legal Entity\n      on behalf of whom a Contribution has been received by Licensor and\n      subsequently incorporated within the Work.\n\n   2. Grant of Copyright License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      copyright license to reproduce, prepare Derivative Works of,\n      publicly display, publicly perform, sublicense, and distribute the\n      Work and such Derivative Works in Source or Object form.\n\n   3. Grant of Patent License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      (except as stated in this section) patent license to make, have made,\n      use, offer to sell, sell, import, and otherwise transfer the Work,\n      where such license applies only to those patent claims licensable\n      by such Contributor that are necessarily infringed by their\n      Contribution(s) alone or by combination of their Contribution(s)\n      with the Work to which such Contribution(s) was submitted. If You\n      institute patent litigation against any entity (including a\n      cross-claim or counterclaim in a lawsuit) alleging that the Work\n      or a Contribution incorporated within the Work constitutes direct\n      or contributory patent infringement, then any patent licenses\n      granted to You under this License for that Work shall terminate\n      as of the date such litigation is filed.\n\n   4. Redistribution. You may reproduce and distribute copies of the\n      Work or Derivative Works thereof in any medium, with or without\n      modifications, and in Source or Object form, provided that You\n      meet the following conditions:\n\n      (a) You must give any other recipients of the Work or\n          Derivative Works a copy of this License; and\n\n      (b) You must cause any modified files to carry prominent notices\n          stating that You changed the files; and\n\n      (c) You must retain, in the Source form of any Derivative Works\n          that You distribute, all copyright, patent, trademark, and\n          attribution notices from the Source form of the Work,\n          excluding those notices that do not pertain to any part of\n          the Derivative Works; and\n\n      (d) If the Work includes a \"NOTICE\" text file as part of its\n          distribution, then any Derivative Works that You distribute must\n          include a readable copy of the attribution notices contained\n          within such NOTICE file, excluding those notices that do not\n          pertain to any part of the Derivative Works, in at least one\n          of the following places: within a NOTICE text file distributed\n          as part of the Derivative Works; within the Source form or\n          documentation, if provided along with the Derivative Works; or,\n          within a display generated by the Derivative Works, if and\n          wherever such third-party notices normally appear. The contents\n          of the NOTICE file are for informational purposes only and\n          do not modify the License. You may add Your own attribution\n          notices within Derivative Works that You distribute, alongside\n          or as an addendum to the NOTICE text from the Work, provided\n          that such additional attribution notices cannot be construed\n          as modifying the License.\n\n      You may add Your own copyright statement to Your modifications and\n      may provide additional or different license terms and conditions\n      for use, reproduction, or distribution of Your modifications, or\n      for any such Derivative Works as a whole, provided Your use,\n      reproduction, and distribution of the Work otherwise complies with\n      the conditions stated in this License.\n\n   5. Submission of Contributions. Unless You explicitly state otherwise,\n      any Contribution intentionally submitted for inclusion in the Work\n      by You to the Licensor shall be under the terms and conditions of\n      this License, without any additional terms or conditions.\n      Notwithstanding the above, nothing herein shall supersede or modify\n      the terms of any separate license agreement you may have executed\n      with Licensor regarding such Contributions.\n\n   6. Trademarks. This License does not grant permission to use the trade\n      names, trademarks, service marks, or product names of the Licensor,\n      except as required for reasonable and customary use in describing the\n      origin of the Work and reproducing the content of the NOTICE file.\n\n   7. Disclaimer of Warranty. Unless required by applicable law or\n      agreed to in writing, Licensor provides the Work (and each\n      Contributor provides its Contributions) on an \"AS IS\" BASIS,\n      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n      implied, including, without limitation, any warranties or conditions\n      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n      PARTICULAR PURPOSE. You are solely responsible for determining the\n      appropriateness of using or redistributing the Work and assume any\n      risks associated with Your exercise of permissions under this License.\n\n   8. Limitation of Liability. In no event and under no legal theory,\n      whether in tort (including negligence), contract, or otherwise,\n      unless required by applicable law (such as deliberate and grossly\n      negligent acts) or agreed to in writing, shall any Contributor be\n      liable to You for damages, including any direct, indirect, special,\n      incidental, or consequential damages of any character arising as a\n      result of this License or out of the use or inability to use the\n      Work (including but not limited to damages for loss of goodwill,\n      work stoppage, computer failure or malfunction, or any and all\n      other commercial damages or losses), even if such Contributor\n      has been advised of the possibility of such damages.\n\n   9. Accepting Warranty or Additional Liability. While redistributing\n      the Work or Derivative Works thereof, You may choose to offer,\n      and charge a fee for, acceptance of support, warranty, indemnity,\n      or other liability obligations and/or rights consistent with this\n      License. However, in accepting such obligations, You may act only\n      on Your own behalf and on Your sole responsibility, not on behalf\n      of any other Contributor, and only if You agree to indemnify,\n      defend, and hold each Contributor harmless for any liability\n      incurred by, or claims asserted against, such Contributor by reason\n      of your accepting any such warranty or additional liability.\n\n   END OF TERMS AND CONDITIONS\n\n   APPENDIX: How to apply the Apache License to your work.\n\n      To apply the Apache License to your work, attach the following\n      boilerplate notice, with the fields enclosed by brackets \"{}\"\n      replaced with your own identifying information. (Don't include\n      the brackets!)  The text should be enclosed in the appropriate\n      comment syntax for the file format. We also recommend that a\n      file or class name and description of purpose be included on the\n      same \"printed page\" as the copyright notice for easier\n      identification within third-party archives.\n\n   Copyright {yyyy} {name of copyright owner}\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n","dependencies":{"react":"^16.2.0","redux":"^3.7.2","react-dom":"^16.2.0","redux-saga":"^0.15.6","react-redux":"^5.0.6","babel-runtime":"^6.26.0","babel-polyfill":"^6.26.0","react-redux-saga":"^1.0.2","veritone-react-common":"^4.0.0","veritone-redux-common":"^3.1.0","veritone-oauth-helpers":"^2.1.0","redux-api-middleware-fixed":"^2.0.0"},"_hasShrinkwrap":false,"devDependencies":{"raf":"^3.4.0","jest":"^21.2.1","faker":"^4.1.0","enzyme":"^3.1.0","eslint":"^4.10.0","rimraf":"^2.6.2","rollup":"^0.55.1","webpack":"^4.0.1","cross-env":"^5.1.1","babel-core":"^6.26.0","webpack-cli":"^2.0.9","babel-loader":"^7.1.3","redux-logger":"^3.0.6","redux-devtools":"^3.4.0","@storybook/react":"v3.3.9","redux-mock-store":"^1.3.0","veritone-dev-env":"^1.0.2","rollup-plugin-url":"^1.3.0","identity-obj-proxy":"^3.0.0","redux-validate-fsa":"^0.1.2","rollup-plugin-json":"^2.3.0","babel-plugin-lodash":"^3.3.2","eslint-plugin-react":"^7.4.0","react-test-renderer":"^16.0.0","rollup-plugin-alias":"^1.4.0","rollup-plugin-babel":"^3.0.3","eslint-plugin-lodash":"^2.5.0","babel-plugin-date-fns":"^0.1.0","eslint-plugin-promise":"^3.6.0","rollup-plugin-postcss":"^1.2.8","rollup-plugin-replace":"^2.0.0","@storybook/addon-knobs":"3.3.9","eslint-config-prettier":"^2.7.0","rollup-analyzer-plugin":"^1.1.1","rollup-plugin-commonjs":"^8.3.0","enzyme-adapter-react-16":"^1.0.2","rollup-plugin-node-resolve":"^3.0.2","babel-plugin-transform-runtime":"^6.23.0","redux-immutable-state-invariant":"^2.1.0","babel-plugin-add-react-displayname":"^0.0.5","babel-plugin-transform-class-properties":"^6.24.1","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-plugin-transform-export-extensions":"^6.22.0","babel-plugin-transform-object-rest-spread":"^6.26.0"},"_npmOperationalInternal":{"tmp":"tmp/veritone-widgets_4.2.0_1522692564404_0.21731596331208647","host":"s3://npm-registry-packages"}},"5.0.0":{"name":"veritone-widgets","version":"5.0.0","license":"Apache-2.0","_id":"veritone-widgets@5.0.0","maintainers":[{"name":"coolmitch","email":"robb.mitch@gmail.com"}],"dist":{"shasum":"003d111f102ff5eb611e5c21f8b3998d24f66de2","tarball":"https://registry.npmjs.org/veritone-widgets/-/veritone-widgets-5.0.0.tgz","fileCount":72,"integrity":"sha512-EC+yRjPJFswrdDWIo8Z4iXZpCwLYnCH906cw7rvmgchrCLSN/fmDmjHyTUenwduzptgQ3/bx11us6qzfX4KGMg==","signatures":[{"sig":"MEUCIQDMOmKlwgOzOGg1D+eLadD4yBrC1FcF4HVEG7CSUYDBLQIgIheEglT9NoQO5Ugcm2pqppj7+k84d6VFo9DtEoYSv4Y=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":4684674,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbBJb0CRA9TVsSAnZWagAAxs8QAKKZ2nmVKiISfxgWx1SW\nmrW4IT97j4sPF37DllzHQuHi9x+oLq9YfVNZtJ7U8Rf1xPwKF2Nzc2Eqp1hJ\n4N2UZYBh1UdX0AKGySyZNxx+NPQgkfQdIJe9i8CnZOG6f/UdNTRb0A2lhQax\nR0BqEiul9yXE3sdqNwlymMTloh6aGh3Xfh/dUBrP8TAvqbv4M2QsiLXNuCLK\nwcSDLUZxZOg8f2ijuqi5RM7Qkue49sYfI3s+4uM447m4cZYGA60AbB9Qypa6\noAAZeVTTBcPxFvreFVz1NlsE/GcdquZjw/LHGopzZBpEbZiNIBR5i35sfY2/\nE+3tx8W3wux+pJcmIeDxJV3eXu9Vu014eNMXwjhOqzq5FAWka/eOXYwIz709\nHvG+zkdJroPk4NqRLli6sJ9vsqgkkivNMQJabvZe3rcGBnpru7P/NlOWNGit\n40K9JUPgoUrtfsB8r6uXV2/hSjdzqCoKVVZ46pmoPxO0i6EXbsA8fR+mM8zR\nCZUo7A9MRGY+1XZAoRAtQJlLhGbqm8EJ+1TvJdr/J5l0K3Y04pVuTt7EVQNN\n71/PaBE6mvExakFG0rO6cbfgXHxOR4Z3L67dU/SI1tD4sIsOl/Tr6Q4qKug+\n8t6L/7vs3NjWZDTpm6NT9cieUKsa/v3hNCXarod+XJ4X86UIBY8U6x+CST0R\n0wGM\r\n=NwGz\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"setupFiles":["<rootDir>/test/testSuitePolyfills.js","<rootDir>/test/configureEnzyme.js"],"moduleNameMapper":{"\\.(css|scss)$":"identity-obj-proxy","\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$":"<rootDir>/test/__mocks__/fileMock.js"},"moduleDirectories":["node_modules"],"moduleFileExtensions":["js","jsx"]},"main":"dist/bundle-cjs.js","module":"dist/bundle-es.js","scripts":{"lint":"eslint src/** --ext .js --max-warnings 0","test":"jest","build":"yarn run build:es && yarn run build:cjs && yarn run build:script-tag","start":"yarn run start:widget-server; yarn run start:storybook","format":"prettier --write \"./src/**/*.{js,scss}\"","build:es":"cross-env NODE_ENV=production BABEL_ENV=production-es rollup -c rollup.config.es.js","prebuild":"yarn run clean:build","build:cjs":"cross-env NODE_ENV=production BABEL_ENV=production-cjs rollup -c rollup.config.cjs.js","test:watch":"jest --watch","build:watch":"cross-env NODE_ENV=production rollup -c --watch","clean:build":"rimraf dist","prepublishOnly":"yarn run test && yarn run lint && yarn run build","build:storybook":"NODE_ENV=production build-storybook -c .storybook -o docs-static","start:storybook":"NODE_ENV=test start-storybook -p 3000 -c .storybook","build:script-tag":"cross-env NODE_ENV=production BABEL_ENV=production-cjs webpack --config webpack.config.script-tag.js","start:widget-server":"yarn workspace veritone-widgets-server run start &"},"_npmUser":{"name":"coolmitch","email":"robb.mitch@gmail.com"},"description":"As of v5.0.0, this package exports both React \"smart components\" and framework agnostic \"widgets\" for most components.","directories":{},"jsnext:main":"dist/bundle-es.js","licenseText":"                                 Apache License\n                           Version 2.0, January 2004\n                        http://www.apache.org/licenses/\n\n   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n   1. Definitions.\n\n      \"License\" shall mean the terms and conditions for use, reproduction,\n      and distribution as defined by Sections 1 through 9 of this document.\n\n      \"Licensor\" shall mean the copyright owner or entity authorized by\n      the copyright owner that is granting the License.\n\n      \"Legal Entity\" shall mean the union of the acting entity and all\n      other entities that control, are controlled by, or are under common\n      control with that entity. For the purposes of this definition,\n      \"control\" means (i) the power, direct or indirect, to cause the\n      direction or management of such entity, whether by contract or\n      otherwise, or (ii) ownership of fifty percent (50%) or more of the\n      outstanding shares, or (iii) beneficial ownership of such entity.\n\n      \"You\" (or \"Your\") shall mean an individual or Legal Entity\n      exercising permissions granted by this License.\n\n      \"Source\" form shall mean the preferred form for making modifications,\n      including but not limited to software source code, documentation\n      source, and configuration files.\n\n      \"Object\" form shall mean any form resulting from mechanical\n      transformation or translation of a Source form, including but\n      not limited to compiled object code, generated documentation,\n      and conversions to other media types.\n\n      \"Work\" shall mean the work of authorship, whether in Source or\n      Object form, made available under the License, as indicated by a\n      copyright notice that is included in or attached to the work\n      (an example is provided in the Appendix below).\n\n      \"Derivative Works\" shall mean any work, whether in Source or Object\n      form, that is based on (or derived from) the Work and for which the\n      editorial revisions, annotations, elaborations, or other modifications\n      represent, as a whole, an original work of authorship. For the purposes\n      of this License, Derivative Works shall not include works that remain\n      separable from, or merely link (or bind by name) to the interfaces of,\n      the Work and Derivative Works thereof.\n\n      \"Contribution\" shall mean any work of authorship, including\n      the original version of the Work and any modifications or additions\n      to that Work or Derivative Works thereof, that is intentionally\n      submitted to Licensor for inclusion in the Work by the copyright owner\n      or by an individual or Legal Entity authorized to submit on behalf of\n      the copyright owner. For the purposes of this definition, \"submitted\"\n      means any form of electronic, verbal, or written communication sent\n      to the Licensor or its representatives, including but not limited to\n      communication on electronic mailing lists, source code control systems,\n      and issue tracking systems that are managed by, or on behalf of, the\n      Licensor for the purpose of discussing and improving the Work, but\n      excluding communication that is conspicuously marked or otherwise\n      designated in writing by the copyright owner as \"Not a Contribution.\"\n\n      \"Contributor\" shall mean Licensor and any individual or Legal Entity\n      on behalf of whom a Contribution has been received by Licensor and\n      subsequently incorporated within the Work.\n\n   2. Grant of Copyright License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      copyright license to reproduce, prepare Derivative Works of,\n      publicly display, publicly perform, sublicense, and distribute the\n      Work and such Derivative Works in Source or Object form.\n\n   3. Grant of Patent License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      (except as stated in this section) patent license to make, have made,\n      use, offer to sell, sell, import, and otherwise transfer the Work,\n      where such license applies only to those patent claims licensable\n      by such Contributor that are necessarily infringed by their\n      Contribution(s) alone or by combination of their Contribution(s)\n      with the Work to which such Contribution(s) was submitted. If You\n      institute patent litigation against any entity (including a\n      cross-claim or counterclaim in a lawsuit) alleging that the Work\n      or a Contribution incorporated within the Work constitutes direct\n      or contributory patent infringement, then any patent licenses\n      granted to You under this License for that Work shall terminate\n      as of the date such litigation is filed.\n\n   4. Redistribution. You may reproduce and distribute copies of the\n      Work or Derivative Works thereof in any medium, with or without\n      modifications, and in Source or Object form, provided that You\n      meet the following conditions:\n\n      (a) You must give any other recipients of the Work or\n          Derivative Works a copy of this License; and\n\n      (b) You must cause any modified files to carry prominent notices\n          stating that You changed the files; and\n\n      (c) You must retain, in the Source form of any Derivative Works\n          that You distribute, all copyright, patent, trademark, and\n          attribution notices from the Source form of the Work,\n          excluding those notices that do not pertain to any part of\n          the Derivative Works; and\n\n      (d) If the Work includes a \"NOTICE\" text file as part of its\n          distribution, then any Derivative Works that You distribute must\n          include a readable copy of the attribution notices contained\n          within such NOTICE file, excluding those notices that do not\n          pertain to any part of the Derivative Works, in at least one\n          of the following places: within a NOTICE text file distributed\n          as part of the Derivative Works; within the Source form or\n          documentation, if provided along with the Derivative Works; or,\n          within a display generated by the Derivative Works, if and\n          wherever such third-party notices normally appear. The contents\n          of the NOTICE file are for informational purposes only and\n          do not modify the License. You may add Your own attribution\n          notices within Derivative Works that You distribute, alongside\n          or as an addendum to the NOTICE text from the Work, provided\n          that such additional attribution notices cannot be construed\n          as modifying the License.\n\n      You may add Your own copyright statement to Your modifications and\n      may provide additional or different license terms and conditions\n      for use, reproduction, or distribution of Your modifications, or\n      for any such Derivative Works as a whole, provided Your use,\n      reproduction, and distribution of the Work otherwise complies with\n      the conditions stated in this License.\n\n   5. Submission of Contributions. Unless You explicitly state otherwise,\n      any Contribution intentionally submitted for inclusion in the Work\n      by You to the Licensor shall be under the terms and conditions of\n      this License, without any additional terms or conditions.\n      Notwithstanding the above, nothing herein shall supersede or modify\n      the terms of any separate license agreement you may have executed\n      with Licensor regarding such Contributions.\n\n   6. Trademarks. This License does not grant permission to use the trade\n      names, trademarks, service marks, or product names of the Licensor,\n      except as required for reasonable and customary use in describing the\n      origin of the Work and reproducing the content of the NOTICE file.\n\n   7. Disclaimer of Warranty. Unless required by applicable law or\n      agreed to in writing, Licensor provides the Work (and each\n      Contributor provides its Contributions) on an \"AS IS\" BASIS,\n      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n      implied, including, without limitation, any warranties or conditions\n      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n      PARTICULAR PURPOSE. You are solely responsible for determining the\n      appropriateness of using or redistributing the Work and assume any\n      risks associated with Your exercise of permissions under this License.\n\n   8. Limitation of Liability. In no event and under no legal theory,\n      whether in tort (including negligence), contract, or otherwise,\n      unless required by applicable law (such as deliberate and grossly\n      negligent acts) or agreed to in writing, shall any Contributor be\n      liable to You for damages, including any direct, indirect, special,\n      incidental, or consequential damages of any character arising as a\n      result of this License or out of the use or inability to use the\n      Work (including but not limited to damages for loss of goodwill,\n      work stoppage, computer failure or malfunction, or any and all\n      other commercial damages or losses), even if such Contributor\n      has been advised of the possibility of such damages.\n\n   9. Accepting Warranty or Additional Liability. While redistributing\n      the Work or Derivative Works thereof, You may choose to offer,\n      and charge a fee for, acceptance of support, warranty, indemnity,\n      or other liability obligations and/or rights consistent with this\n      License. However, in accepting such obligations, You may act only\n      on Your own behalf and on Your sole responsibility, not on behalf\n      of any other Contributor, and only if You agree to indemnify,\n      defend, and hold each Contributor harmless for any liability\n      incurred by, or claims asserted against, such Contributor by reason\n      of your accepting any such warranty or additional liability.\n\n   END OF TERMS AND CONDITIONS\n\n   APPENDIX: How to apply the Apache License to your work.\n\n      To apply the Apache License to your work, attach the following\n      boilerplate notice, with the fields enclosed by brackets \"{}\"\n      replaced with your own identifying information. (Don't include\n      the brackets!)  The text should be enclosed in the appropriate\n      comment syntax for the file format. We also recommend that a\n      file or class name and description of purpose be included on the\n      same \"printed page\" as the copyright notice for easier\n      identification within third-party archives.\n\n   Copyright {yyyy} {name of copyright owner}\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n","dependencies":{"react":"^16.3.0","redux":"^3.7.2","react-dom":"^16.3.0","redux-saga":"^0.15.6","react-redux":"^5.0.6","babel-runtime":"^6.26.0","babel-polyfill":"^6.26.0","react-redux-saga":"^1.0.2","@material-ui/core":"^1.0.0","@material-ui/icons":"^1.0.0","veritone-react-common":"^5.0.0","veritone-redux-common":"^3.3.0","veritone-oauth-helpers":"^2.1.0","redux-api-middleware-fixed":"^2.0.0"},"_hasShrinkwrap":false,"devDependencies":{"raf":"^3.4.0","jest":"^22.4.3","faker":"^4.1.0","enzyme":"^3.1.0","eslint":"^4.10.0","rimraf":"^2.6.2","rollup":"^0.55.1","webpack":"^4.0.1","cross-env":"^5.1.1","babel-core":"^6.26.0","webpack-cli":"^2.0.9","babel-loader":"^7.1.3","redux-logger":"^3.0.6","redux-devtools":"^3.4.0","@storybook/react":"v3.3.9","redux-mock-store":"^1.3.0","veritone-dev-env":"^2.0.0","rollup-plugin-url":"^1.3.0","identity-obj-proxy":"^3.0.0","redux-validate-fsa":"^0.1.2","rollup-plugin-json":"^2.3.0","babel-plugin-lodash":"^3.3.2","eslint-plugin-react":"^7.4.0","react-test-renderer":"^16.0.0","rollup-plugin-alias":"^1.4.0","rollup-plugin-babel":"^3.0.3","eslint-plugin-import":"^2.11.0","eslint-plugin-lodash":"^2.5.0","babel-plugin-date-fns":"^0.1.0","eslint-plugin-promise":"^3.6.0","rollup-plugin-postcss":"^1.2.8","rollup-plugin-replace":"^2.0.0","@storybook/addon-knobs":"3.3.9","eslint-config-prettier":"^2.7.0","rollup-analyzer-plugin":"^1.1.1","rollup-plugin-commonjs":"^8.3.0","enzyme-adapter-react-16":"^1.0.2","rollup-plugin-node-resolve":"^3.0.2","babel-plugin-transform-runtime":"^6.23.0","redux-immutable-state-invariant":"^2.1.0","babel-plugin-add-react-displayname":"^0.0.5","babel-plugin-transform-class-properties":"^6.24.1","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-plugin-transform-export-extensions":"^6.22.0","babel-plugin-transform-object-rest-spread":"^6.26.0"},"_npmOperationalInternal":{"tmp":"tmp/veritone-widgets_5.0.0_1527027442602_0.25832439911122895","host":"s3://npm-registry-packages"}},"5.1.0":{"name":"veritone-widgets","version":"5.1.0","license":"Apache-2.0","_id":"veritone-widgets@5.1.0","maintainers":[{"name":"coolmitch","email":"robb.mitch@gmail.com"}],"dist":{"shasum":"aa7cdfcf8bea0bf283689103f26f9bcec32eb311","tarball":"https://registry.npmjs.org/veritone-widgets/-/veritone-widgets-5.1.0.tgz","fileCount":134,"integrity":"sha512-Dal7w6xW3MCyPRefaGdis8dLlELbasLcVZdbg1nRqCL1wz34GjD0smr/w4QRSfbxTzG+CG3BYVbCJTtaa2L7Vw==","signatures":[{"sig":"MEYCIQCz6ze2ITQtY0OXeQB+W+6Pvo8N4ncDn/NeckCqHPPEUgIhAK0ayhwgCVGLMFyLbYccP16cjGS+jmyoEMDQ14XDb99B","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":6516453},"jest":{"setupFiles":["<rootDir>/test/testSuitePolyfills.js","<rootDir>/test/configureEnzyme.js"],"moduleNameMapper":{"\\.(css|scss)$":"identity-obj-proxy","\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$":"<rootDir>/test/__mocks__/fileMock.js"},"moduleDirectories":["node_modules"],"moduleFileExtensions":["js","jsx"]},"main":"dist/bundle-cjs.js","module":"dist/bundle-es.js","scripts":{"lint":"eslint src/** --ext .js --max-warnings 0","test":"jest","build":"yarn run build:es && yarn run build:cjs && yarn run build:script-tag","start":"yarn run start:widget-server; yarn run start:storybook","format":"prettier --write \"./src/**/*.{js,scss}\"","prepare":"cd .. && yarn patch-package","build:es":"cross-env NODE_ENV=production BABEL_ENV=production-es rollup -c rollup.config.es.js","prebuild":"yarn run clean:build","build:cjs":"cross-env NODE_ENV=production BABEL_ENV=production-cjs rollup -c rollup.config.cjs.js","test:watch":"jest --watch","build:watch":"cross-env NODE_ENV=production rollup -c --watch","clean:build":"rimraf dist","prepublishOnly":"yarn run test && yarn run lint && yarn run build","build:storybook":"NODE_ENV=production build-storybook -c .storybook -o docs-static","start:storybook":"NODE_ENV=test start-storybook -p 3000 -c .storybook","build:script-tag":"cross-env NODE_ENV=production BABEL_ENV=production-cjs webpack --config webpack.config.script-tag.js","start:widget-server":"yarn workspace veritone-widgets-server run start &"},"_npmUser":{"name":"coolmitch","email":"robb.mitch@gmail.com"},"description":"As of v5.0.0, this package exports both React \"smart components\" and framework agnostic \"widgets\" for most components.","directories":{},"jsnext:main":"dist/bundle-es.js","licenseText":"                                 Apache License\n                           Version 2.0, January 2004\n                        http://www.apache.org/licenses/\n\n   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n   1. Definitions.\n\n      \"License\" shall mean the terms and conditions for use, reproduction,\n      and distribution as defined by Sections 1 through 9 of this document.\n\n      \"Licensor\" shall mean the copyright owner or entity authorized by\n      the copyright owner that is granting the License.\n\n      \"Legal Entity\" shall mean the union of the acting entity and all\n      other entities that control, are controlled by, or are under common\n      control with that entity. For the purposes of this definition,\n      \"control\" means (i) the power, direct or indirect, to cause the\n      direction or management of such entity, whether by contract or\n      otherwise, or (ii) ownership of fifty percent (50%) or more of the\n      outstanding shares, or (iii) beneficial ownership of such entity.\n\n      \"You\" (or \"Your\") shall mean an individual or Legal Entity\n      exercising permissions granted by this License.\n\n      \"Source\" form shall mean the preferred form for making modifications,\n      including but not limited to software source code, documentation\n      source, and configuration files.\n\n      \"Object\" form shall mean any form resulting from mechanical\n      transformation or translation of a Source form, including but\n      not limited to compiled object code, generated documentation,\n      and conversions to other media types.\n\n      \"Work\" shall mean the work of authorship, whether in Source or\n      Object form, made available under the License, as indicated by a\n      copyright notice that is included in or attached to the work\n      (an example is provided in the Appendix below).\n\n      \"Derivative Works\" shall mean any work, whether in Source or Object\n      form, that is based on (or derived from) the Work and for which the\n      editorial revisions, annotations, elaborations, or other modifications\n      represent, as a whole, an original work of authorship. For the purposes\n      of this License, Derivative Works shall not include works that remain\n      separable from, or merely link (or bind by name) to the interfaces of,\n      the Work and Derivative Works thereof.\n\n      \"Contribution\" shall mean any work of authorship, including\n      the original version of the Work and any modifications or additions\n      to that Work or Derivative Works thereof, that is intentionally\n      submitted to Licensor for inclusion in the Work by the copyright owner\n      or by an individual or Legal Entity authorized to submit on behalf of\n      the copyright owner. For the purposes of this definition, \"submitted\"\n      means any form of electronic, verbal, or written communication sent\n      to the Licensor or its representatives, including but not limited to\n      communication on electronic mailing lists, source code control systems,\n      and issue tracking systems that are managed by, or on behalf of, the\n      Licensor for the purpose of discussing and improving the Work, but\n      excluding communication that is conspicuously marked or otherwise\n      designated in writing by the copyright owner as \"Not a Contribution.\"\n\n      \"Contributor\" shall mean Licensor and any individual or Legal Entity\n      on behalf of whom a Contribution has been received by Licensor and\n      subsequently incorporated within the Work.\n\n   2. Grant of Copyright License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      copyright license to reproduce, prepare Derivative Works of,\n      publicly display, publicly perform, sublicense, and distribute the\n      Work and such Derivative Works in Source or Object form.\n\n   3. Grant of Patent License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      (except as stated in this section) patent license to make, have made,\n      use, offer to sell, sell, import, and otherwise transfer the Work,\n      where such license applies only to those patent claims licensable\n      by such Contributor that are necessarily infringed by their\n      Contribution(s) alone or by combination of their Contribution(s)\n      with the Work to which such Contribution(s) was submitted. If You\n      institute patent litigation against any entity (including a\n      cross-claim or counterclaim in a lawsuit) alleging that the Work\n      or a Contribution incorporated within the Work constitutes direct\n      or contributory patent infringement, then any patent licenses\n      granted to You under this License for that Work shall terminate\n      as of the date such litigation is filed.\n\n   4. Redistribution. You may reproduce and distribute copies of the\n      Work or Derivative Works thereof in any medium, with or without\n      modifications, and in Source or Object form, provided that You\n      meet the following conditions:\n\n      (a) You must give any other recipients of the Work or\n          Derivative Works a copy of this License; and\n\n      (b) You must cause any modified files to carry prominent notices\n          stating that You changed the files; and\n\n      (c) You must retain, in the Source form of any Derivative Works\n          that You distribute, all copyright, patent, trademark, and\n          attribution notices from the Source form of the Work,\n          excluding those notices that do not pertain to any part of\n          the Derivative Works; and\n\n      (d) If the Work includes a \"NOTICE\" text file as part of its\n          distribution, then any Derivative Works that You distribute must\n          include a readable copy of the attribution notices contained\n          within such NOTICE file, excluding those notices that do not\n          pertain to any part of the Derivative Works, in at least one\n          of the following places: within a NOTICE text file distributed\n          as part of the Derivative Works; within the Source form or\n          documentation, if provided along with the Derivative Works; or,\n          within a display generated by the Derivative Works, if and\n          wherever such third-party notices normally appear. The contents\n          of the NOTICE file are for informational purposes only and\n          do not modify the License. You may add Your own attribution\n          notices within Derivative Works that You distribute, alongside\n          or as an addendum to the NOTICE text from the Work, provided\n          that such additional attribution notices cannot be construed\n          as modifying the License.\n\n      You may add Your own copyright statement to Your modifications and\n      may provide additional or different license terms and conditions\n      for use, reproduction, or distribution of Your modifications, or\n      for any such Derivative Works as a whole, provided Your use,\n      reproduction, and distribution of the Work otherwise complies with\n      the conditions stated in this License.\n\n   5. Submission of Contributions. Unless You explicitly state otherwise,\n      any Contribution intentionally submitted for inclusion in the Work\n      by You to the Licensor shall be under the terms and conditions of\n      this License, without any additional terms or conditions.\n      Notwithstanding the above, nothing herein shall supersede or modify\n      the terms of any separate license agreement you may have executed\n      with Licensor regarding such Contributions.\n\n   6. Trademarks. This License does not grant permission to use the trade\n      names, trademarks, service marks, or product names of the Licensor,\n      except as required for reasonable and customary use in describing the\n      origin of the Work and reproducing the content of the NOTICE file.\n\n   7. Disclaimer of Warranty. Unless required by applicable law or\n      agreed to in writing, Licensor provides the Work (and each\n      Contributor provides its Contributions) on an \"AS IS\" BASIS,\n      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n      implied, including, without limitation, any warranties or conditions\n      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n      PARTICULAR PURPOSE. You are solely responsible for determining the\n      appropriateness of using or redistributing the Work and assume any\n      risks associated with Your exercise of permissions under this License.\n\n   8. Limitation of Liability. In no event and under no legal theory,\n      whether in tort (including negligence), contract, or otherwise,\n      unless required by applicable law (such as deliberate and grossly\n      negligent acts) or agreed to in writing, shall any Contributor be\n      liable to You for damages, including any direct, indirect, special,\n      incidental, or consequential damages of any character arising as a\n      result of this License or out of the use or inability to use the\n      Work (including but not limited to damages for loss of goodwill,\n      work stoppage, computer failure or malfunction, or any and all\n      other commercial damages or losses), even if such Contributor\n      has been advised of the possibility of such damages.\n\n   9. Accepting Warranty or Additional Liability. While redistributing\n      the Work or Derivative Works thereof, You may choose to offer,\n      and charge a fee for, acceptance of support, warranty, indemnity,\n      or other liability obligations and/or rights consistent with this\n      License. However, in accepting such obligations, You may act only\n      on Your own behalf and on Your sole responsibility, not on behalf\n      of any other Contributor, and only if You agree to indemnify,\n      defend, and hold each Contributor harmless for any liability\n      incurred by, or claims asserted against, such Contributor by reason\n      of your accepting any such warranty or additional liability.\n\n   END OF TERMS AND CONDITIONS\n\n   APPENDIX: How to apply the Apache License to your work.\n\n      To apply the Apache License to your work, attach the following\n      boilerplate notice, with the fields enclosed by brackets \"{}\"\n      replaced with your own identifying information. (Don't include\n      the brackets!)  The text should be enclosed in the appropriate\n      comment syntax for the file format. We also recommend that a\n      file or class name and description of purpose be included on the\n      same \"printed page\" as the copyright notice for easier\n      identification within third-party archives.\n\n   Copyright {yyyy} {name of copyright owner}\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n","dependencies":{"react":"^16.3.0","redux":"^3.7.2","react-dom":"^16.3.0","redux-saga":"^0.15.6","react-redux":"^5.0.6","redux-thunk":"^2.2.0","babel-runtime":"^6.26.0","babel-polyfill":"^6.26.0","react-redux-saga":"^1.0.2","@material-ui/core":"^1.0.0","react-virtualized":"^9.18.5","@material-ui/icons":"^1.0.0","veritone-react-common":"^5.1.0","veritone-redux-common":"^3.4.0","veritone-oauth-helpers":"^2.1.0","redux-api-middleware-fixed":"^2.0.0"},"_hasShrinkwrap":false,"devDependencies":{"raf":"^3.4.0","jest":"^22.4.3","faker":"^4.1.0","enzyme":"^3.3.0","eslint":"^4.10.0","rimraf":"^2.6.2","rollup":"^0.55.1","webpack":"^4.0.1","cross-env":"^5.1.1","babel-core":"^6.26.0","webpack-cli":"^2.0.9","babel-loader":"^7.1.3","redux-logger":"^3.0.6","redux-devtools":"^3.4.0","@storybook/react":"v3.3.9","redux-mock-store":"^1.3.0","veritone-dev-env":"^2.0.0","rollup-plugin-url":"^1.3.0","identity-obj-proxy":"^3.0.0","redux-validate-fsa":"^0.1.2","rollup-plugin-json":"^2.3.0","babel-plugin-lodash":"^3.3.2","eslint-plugin-react":"^7.8.2","postinstall-prepare":"^1.0.1","react-test-renderer":"^16.0.0","rollup-plugin-alias":"^1.4.0","rollup-plugin-babel":"^3.0.3","eslint-plugin-import":"^2.11.0","eslint-plugin-lodash":"^2.5.0","babel-plugin-date-fns":"^0.1.0","eslint-plugin-promise":"^3.6.0","rollup-plugin-postcss":"^1.2.8","rollup-plugin-replace":"^2.0.0","@storybook/addon-knobs":"3.3.9","eslint-config-prettier":"^2.7.0","rollup-analyzer-plugin":"^1.1.1","rollup-plugin-commonjs":"^8.3.0","enzyme-adapter-react-16":"^1.0.2","rollup-plugin-node-resolve":"^3.0.2","babel-plugin-transform-runtime":"^6.23.0","redux-immutable-state-invariant":"^2.1.0","babel-plugin-add-react-displayname":"^0.0.5","babel-plugin-transform-class-properties":"^6.24.1","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-plugin-transform-export-extensions":"^6.22.0","babel-plugin-transform-object-rest-spread":"^6.26.0"},"_npmOperationalInternal":{"tmp":"tmp/veritone-widgets_5.1.0_1528914795593_0.026378787717251884","host":"s3://npm-registry-packages"}},"5.2.0":{"name":"veritone-widgets","version":"5.2.0","license":"Apache-2.0","_id":"veritone-widgets@5.2.0","maintainers":[{"name":"coolmitch","email":"robb.mitch@gmail.com"}],"dist":{"shasum":"7847e44651641bbf0404101af4ea04c51dbcc1cf","tarball":"https://registry.npmjs.org/veritone-widgets/-/veritone-widgets-5.2.0.tgz","fileCount":141,"integrity":"sha512-3yLtCdvk+p5m3m6vKWanqnvju02Fp30eQIDqulqPls7eDABFoHJZrtPhWdaLAI2MtX5scMs1DfQmhK1RIuYtUA==","signatures":[{"sig":"MEUCIQCOfYqRbu0VMMWBTHuiF5ht2BFfiGDrkS3e6bzIG7CHAAIgJaLqPpIsYWznsaU8+0rF08WFyJ+jG9sARXEqoYB+Tlk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":7072521},"jest":{"setupFiles":["<rootDir>/test/testSuitePolyfills.js","<rootDir>/test/configureEnzyme.js"],"moduleNameMapper":{"\\.(css|scss)$":"identity-obj-proxy","\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$":"<rootDir>/test/__mocks__/fileMock.js"},"moduleDirectories":["node_modules"],"moduleFileExtensions":["js","jsx"]},"main":"dist/bundle-cjs.js","module":"dist/bundle-es.js","scripts":{"lint":"eslint src/** --ext .js --max-warnings 0","test":"jest","build":"yarn run build:es && yarn run build:cjs && yarn run build:script-tag","start":"yarn run start:widget-server; yarn run start:storybook","format":"prettier --write \"./src/**/*.{js,scss}\"","prepare":"cd .. && yarn patch-package","build:es":"cross-env NODE_ENV=production BABEL_ENV=production-es rollup -c rollup.config.es.js","prebuild":"yarn run clean:build","build:cjs":"cross-env NODE_ENV=production BABEL_ENV=production-cjs rollup -c rollup.config.cjs.js","test:watch":"jest --watch","build:watch":"cross-env NODE_ENV=production rollup -c --watch","clean:build":"rimraf dist","prepublishOnly":"yarn run test && yarn run lint && yarn run build","build:storybook":"NODE_ENV=production build-storybook -c .storybook -o docs-static","start:storybook":"NODE_ENV=test start-storybook -p 3000 -c .storybook","build:script-tag":"cross-env NODE_ENV=production BABEL_ENV=production-cjs webpack --config webpack.config.script-tag.js","start:widget-server":"yarn workspace veritone-widgets-server run start &"},"_npmUser":{"name":"coolmitch","email":"robb.mitch@gmail.com"},"description":"As of v5.0.0, this package exports both React \"smart components\" and framework agnostic \"widgets\" for most components.","directories":{},"jsnext:main":"dist/bundle-es.js","licenseText":"                                 Apache License\n                           Version 2.0, January 2004\n                        http://www.apache.org/licenses/\n\n   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n   1. Definitions.\n\n      \"License\" shall mean the terms and conditions for use, reproduction,\n      and distribution as defined by Sections 1 through 9 of this document.\n\n      \"Licensor\" shall mean the copyright owner or entity authorized by\n      the copyright owner that is granting the License.\n\n      \"Legal Entity\" shall mean the union of the acting entity and all\n      other entities that control, are controlled by, or are under common\n      control with that entity. For the purposes of this definition,\n      \"control\" means (i) the power, direct or indirect, to cause the\n      direction or management of such entity, whether by contract or\n      otherwise, or (ii) ownership of fifty percent (50%) or more of the\n      outstanding shares, or (iii) beneficial ownership of such entity.\n\n      \"You\" (or \"Your\") shall mean an individual or Legal Entity\n      exercising permissions granted by this License.\n\n      \"Source\" form shall mean the preferred form for making modifications,\n      including but not limited to software source code, documentation\n      source, and configuration files.\n\n      \"Object\" form shall mean any form resulting from mechanical\n      transformation or translation of a Source form, including but\n      not limited to compiled object code, generated documentation,\n      and conversions to other media types.\n\n      \"Work\" shall mean the work of authorship, whether in Source or\n      Object form, made available under the License, as indicated by a\n      copyright notice that is included in or attached to the work\n      (an example is provided in the Appendix below).\n\n      \"Derivative Works\" shall mean any work, whether in Source or Object\n      form, that is based on (or derived from) the Work and for which the\n      editorial revisions, annotations, elaborations, or other modifications\n      represent, as a whole, an original work of authorship. For the purposes\n      of this License, Derivative Works shall not include works that remain\n      separable from, or merely link (or bind by name) to the interfaces of,\n      the Work and Derivative Works thereof.\n\n      \"Contribution\" shall mean any work of authorship, including\n      the original version of the Work and any modifications or additions\n      to that Work or Derivative Works thereof, that is intentionally\n      submitted to Licensor for inclusion in the Work by the copyright owner\n      or by an individual or Legal Entity authorized to submit on behalf of\n      the copyright owner. For the purposes of this definition, \"submitted\"\n      means any form of electronic, verbal, or written communication sent\n      to the Licensor or its representatives, including but not limited to\n      communication on electronic mailing lists, source code control systems,\n      and issue tracking systems that are managed by, or on behalf of, the\n      Licensor for the purpose of discussing and improving the Work, but\n      excluding communication that is conspicuously marked or otherwise\n      designated in writing by the copyright owner as \"Not a Contribution.\"\n\n      \"Contributor\" shall mean Licensor and any individual or Legal Entity\n      on behalf of whom a Contribution has been received by Licensor and\n      subsequently incorporated within the Work.\n\n   2. Grant of Copyright License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      copyright license to reproduce, prepare Derivative Works of,\n      publicly display, publicly perform, sublicense, and distribute the\n      Work and such Derivative Works in Source or Object form.\n\n   3. Grant of Patent License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      (except as stated in this section) patent license to make, have made,\n      use, offer to sell, sell, import, and otherwise transfer the Work,\n      where such license applies only to those patent claims licensable\n      by such Contributor that are necessarily infringed by their\n      Contribution(s) alone or by combination of their Contribution(s)\n      with the Work to which such Contribution(s) was submitted. If You\n      institute patent litigation against any entity (including a\n      cross-claim or counterclaim in a lawsuit) alleging that the Work\n      or a Contribution incorporated within the Work constitutes direct\n      or contributory patent infringement, then any patent licenses\n      granted to You under this License for that Work shall terminate\n      as of the date such litigation is filed.\n\n   4. Redistribution. You may reproduce and distribute copies of the\n      Work or Derivative Works thereof in any medium, with or without\n      modifications, and in Source or Object form, provided that You\n      meet the following conditions:\n\n      (a) You must give any other recipients of the Work or\n          Derivative Works a copy of this License; and\n\n      (b) You must cause any modified files to carry prominent notices\n          stating that You changed the files; and\n\n      (c) You must retain, in the Source form of any Derivative Works\n          that You distribute, all copyright, patent, trademark, and\n          attribution notices from the Source form of the Work,\n          excluding those notices that do not pertain to any part of\n          the Derivative Works; and\n\n      (d) If the Work includes a \"NOTICE\" text file as part of its\n          distribution, then any Derivative Works that You distribute must\n          include a readable copy of the attribution notices contained\n          within such NOTICE file, excluding those notices that do not\n          pertain to any part of the Derivative Works, in at least one\n          of the following places: within a NOTICE text file distributed\n          as part of the Derivative Works; within the Source form or\n          documentation, if provided along with the Derivative Works; or,\n          within a display generated by the Derivative Works, if and\n          wherever such third-party notices normally appear. The contents\n          of the NOTICE file are for informational purposes only and\n          do not modify the License. You may add Your own attribution\n          notices within Derivative Works that You distribute, alongside\n          or as an addendum to the NOTICE text from the Work, provided\n          that such additional attribution notices cannot be construed\n          as modifying the License.\n\n      You may add Your own copyright statement to Your modifications and\n      may provide additional or different license terms and conditions\n      for use, reproduction, or distribution of Your modifications, or\n      for any such Derivative Works as a whole, provided Your use,\n      reproduction, and distribution of the Work otherwise complies with\n      the conditions stated in this License.\n\n   5. Submission of Contributions. Unless You explicitly state otherwise,\n      any Contribution intentionally submitted for inclusion in the Work\n      by You to the Licensor shall be under the terms and conditions of\n      this License, without any additional terms or conditions.\n      Notwithstanding the above, nothing herein shall supersede or modify\n      the terms of any separate license agreement you may have executed\n      with Licensor regarding such Contributions.\n\n   6. Trademarks. This License does not grant permission to use the trade\n      names, trademarks, service marks, or product names of the Licensor,\n      except as required for reasonable and customary use in describing the\n      origin of the Work and reproducing the content of the NOTICE file.\n\n   7. Disclaimer of Warranty. Unless required by applicable law or\n      agreed to in writing, Licensor provides the Work (and each\n      Contributor provides its Contributions) on an \"AS IS\" BASIS,\n      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n      implied, including, without limitation, any warranties or conditions\n      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n      PARTICULAR PURPOSE. You are solely responsible for determining the\n      appropriateness of using or redistributing the Work and assume any\n      risks associated with Your exercise of permissions under this License.\n\n   8. Limitation of Liability. In no event and under no legal theory,\n      whether in tort (including negligence), contract, or otherwise,\n      unless required by applicable law (such as deliberate and grossly\n      negligent acts) or agreed to in writing, shall any Contributor be\n      liable to You for damages, including any direct, indirect, special,\n      incidental, or consequential damages of any character arising as a\n      result of this License or out of the use or inability to use the\n      Work (including but not limited to damages for loss of goodwill,\n      work stoppage, computer failure or malfunction, or any and all\n      other commercial damages or losses), even if such Contributor\n      has been advised of the possibility of such damages.\n\n   9. Accepting Warranty or Additional Liability. While redistributing\n      the Work or Derivative Works thereof, You may choose to offer,\n      and charge a fee for, acceptance of support, warranty, indemnity,\n      or other liability obligations and/or rights consistent with this\n      License. However, in accepting such obligations, You may act only\n      on Your own behalf and on Your sole responsibility, not on behalf\n      of any other Contributor, and only if You agree to indemnify,\n      defend, and hold each Contributor harmless for any liability\n      incurred by, or claims asserted against, such Contributor by reason\n      of your accepting any such warranty or additional liability.\n\n   END OF TERMS AND CONDITIONS\n\n   APPENDIX: How to apply the Apache License to your work.\n\n      To apply the Apache License to your work, attach the following\n      boilerplate notice, with the fields enclosed by brackets \"{}\"\n      replaced with your own identifying information. (Don't include\n      the brackets!)  The text should be enclosed in the appropriate\n      comment syntax for the file format. We also recommend that a\n      file or class name and description of purpose be included on the\n      same \"printed page\" as the copyright notice for easier\n      identification within third-party archives.\n\n   Copyright {yyyy} {name of copyright owner}\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n","dependencies":{"react":"^16.3.0","redux":"^3.7.2","react-dom":"^16.3.0","redux-saga":"^0.15.6","react-redux":"^5.0.6","redux-thunk":"^2.2.0","shaka-player":"^2.4.1","babel-runtime":"^6.26.0","babel-polyfill":"^6.26.0","react-redux-saga":"^1.0.2","@material-ui/core":"^1.0.0","react-virtualized":"^9.18.5","@material-ui/icons":"^1.0.0","veritone-react-common":"^5.1.0","veritone-redux-common":"^3.4.0","veritone-oauth-helpers":"^2.1.0","redux-api-middleware-fixed":"^2.0.0"},"_hasShrinkwrap":false,"devDependencies":{"raf":"^3.4.0","jest":"^22.4.3","faker":"^4.1.0","enzyme":"^3.3.0","eslint":"^4.10.0","rimraf":"^2.6.2","rollup":"^0.55.1","webpack":"^4.0.1","cross-env":"^5.1.1","babel-core":"^6.26.0","video-react":"^0.11.2","webpack-cli":"^2.0.9","babel-loader":"^7.1.3","redux-logger":"^3.0.6","redux-devtools":"^3.4.0","@storybook/react":"v3.3.9","redux-mock-store":"^1.3.0","veritone-dev-env":"^2.0.0","rollup-plugin-url":"^1.3.0","identity-obj-proxy":"^3.0.0","redux-validate-fsa":"^0.1.2","rollup-plugin-json":"^2.3.0","babel-plugin-lodash":"^3.3.2","eslint-plugin-react":"^7.8.2","postinstall-prepare":"^1.0.1","react-test-renderer":"^16.0.0","rollup-plugin-alias":"^1.4.0","rollup-plugin-babel":"^3.0.3","eslint-plugin-import":"^2.11.0","eslint-plugin-lodash":"^2.5.0","babel-plugin-date-fns":"^0.1.0","eslint-plugin-promise":"^3.6.0","rollup-plugin-postcss":"^1.2.8","rollup-plugin-replace":"^2.0.0","@storybook/addon-knobs":"3.3.9","eslint-config-prettier":"^2.7.0","rollup-analyzer-plugin":"^1.1.1","rollup-plugin-commonjs":"^8.3.0","enzyme-adapter-react-16":"^1.0.2","rollup-plugin-node-resolve":"^3.0.2","babel-plugin-transform-runtime":"^6.23.0","redux-immutable-state-invariant":"^2.1.0","babel-plugin-add-react-displayname":"^0.0.5","babel-plugin-transform-class-properties":"^6.24.1","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-plugin-transform-export-extensions":"^6.22.0","babel-plugin-transform-object-rest-spread":"^6.26.0"},"peerDependencies":{"video-react":"^0.11.2"},"_npmOperationalInternal":{"tmp":"tmp/veritone-widgets_5.2.0_1530037001556_0.6698786791775908","host":"s3://npm-registry-packages"}},"5.2.1":{"name":"veritone-widgets","version":"5.2.1","license":"Apache-2.0","_id":"veritone-widgets@5.2.1","maintainers":[{"name":"coolmitch","email":"robb.mitch@gmail.com"}],"dist":{"shasum":"c4ba92336fd37640ae5e0c3e77354679375ec134","tarball":"https://registry.npmjs.org/veritone-widgets/-/veritone-widgets-5.2.1.tgz","fileCount":141,"integrity":"sha512-LcoC8vhdnA4LdSNRksXACvxCkFY+nfLGUONnbIEt7D8s25rOhbZlmjtkdE7s8k0AxNhoA7LZPrhBDM9jpCpxQA==","signatures":[{"sig":"MEUCIGfKAo/Wzp3JgzQ/HF86kEp5CRCpD72kjMX+Do+FYu4zAiEAuDvbupAqX64o54SUmjI7DXAPUFncBvmJu+N906UCgKc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":7212187},"jest":{"setupFiles":["<rootDir>/test/testSuitePolyfills.js","<rootDir>/test/configureEnzyme.js"],"moduleNameMapper":{"\\.(css|scss)$":"identity-obj-proxy","\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$":"<rootDir>/test/__mocks__/fileMock.js"},"moduleDirectories":["node_modules"],"moduleFileExtensions":["js","jsx"]},"main":"dist/bundle-cjs.js","module":"dist/bundle-es.js","scripts":{"lint":"eslint src/** --ext .js --max-warnings 0","test":"jest","build":"yarn run build:es && yarn run build:cjs && yarn run build:script-tag","start":"yarn run start:widget-server; yarn run start:storybook","format":"prettier --write \"./src/**/*.{js,scss}\"","prepare":"cd .. && yarn patch-package","build:es":"cross-env NODE_ENV=production BABEL_ENV=production-es rollup -c rollup.config.es.js","prebuild":"yarn run clean:build","build:cjs":"cross-env NODE_ENV=production BABEL_ENV=production-cjs rollup -c rollup.config.cjs.js","test:watch":"jest --watch","build:watch":"cross-env NODE_ENV=production rollup -c --watch","clean:build":"rimraf dist","prepublishOnly":"yarn run test && yarn run lint && yarn run build","build:storybook":"NODE_ENV=production build-storybook -c .storybook -o docs-static","start:storybook":"NODE_ENV=test start-storybook -p 3000 -c .storybook","build:script-tag":"cross-env NODE_ENV=production BABEL_ENV=production-cjs webpack --config webpack.config.script-tag.js","start:widget-server":"yarn workspace veritone-widgets-server run start &"},"_npmUser":{"name":"coolmitch","email":"robb.mitch@gmail.com"},"description":"As of v5.0.0, this package exports both React \"smart components\" and framework agnostic \"widgets\" for most components.","directories":{},"jsnext:main":"dist/bundle-es.js","licenseText":"                                 Apache License\n                           Version 2.0, January 2004\n                        http://www.apache.org/licenses/\n\n   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n   1. Definitions.\n\n      \"License\" shall mean the terms and conditions for use, reproduction,\n      and distribution as defined by Sections 1 through 9 of this document.\n\n      \"Licensor\" shall mean the copyright owner or entity authorized by\n      the copyright owner that is granting the License.\n\n      \"Legal Entity\" shall mean the union of the acting entity and all\n      other entities that control, are controlled by, or are under common\n      control with that entity. For the purposes of this definition,\n      \"control\" means (i) the power, direct or indirect, to cause the\n      direction or management of such entity, whether by contract or\n      otherwise, or (ii) ownership of fifty percent (50%) or more of the\n      outstanding shares, or (iii) beneficial ownership of such entity.\n\n      \"You\" (or \"Your\") shall mean an individual or Legal Entity\n      exercising permissions granted by this License.\n\n      \"Source\" form shall mean the preferred form for making modifications,\n      including but not limited to software source code, documentation\n      source, and configuration files.\n\n      \"Object\" form shall mean any form resulting from mechanical\n      transformation or translation of a Source form, including but\n      not limited to compiled object code, generated documentation,\n      and conversions to other media types.\n\n      \"Work\" shall mean the work of authorship, whether in Source or\n      Object form, made available under the License, as indicated by a\n      copyright notice that is included in or attached to the work\n      (an example is provided in the Appendix below).\n\n      \"Derivative Works\" shall mean any work, whether in Source or Object\n      form, that is based on (or derived from) the Work and for which the\n      editorial revisions, annotations, elaborations, or other modifications\n      represent, as a whole, an original work of authorship. For the purposes\n      of this License, Derivative Works shall not include works that remain\n      separable from, or merely link (or bind by name) to the interfaces of,\n      the Work and Derivative Works thereof.\n\n      \"Contribution\" shall mean any work of authorship, including\n      the original version of the Work and any modifications or additions\n      to that Work or Derivative Works thereof, that is intentionally\n      submitted to Licensor for inclusion in the Work by the copyright owner\n      or by an individual or Legal Entity authorized to submit on behalf of\n      the copyright owner. For the purposes of this definition, \"submitted\"\n      means any form of electronic, verbal, or written communication sent\n      to the Licensor or its representatives, including but not limited to\n      communication on electronic mailing lists, source code control systems,\n      and issue tracking systems that are managed by, or on behalf of, the\n      Licensor for the purpose of discussing and improving the Work, but\n      excluding communication that is conspicuously marked or otherwise\n      designated in writing by the copyright owner as \"Not a Contribution.\"\n\n      \"Contributor\" shall mean Licensor and any individual or Legal Entity\n      on behalf of whom a Contribution has been received by Licensor and\n      subsequently incorporated within the Work.\n\n   2. Grant of Copyright License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      copyright license to reproduce, prepare Derivative Works of,\n      publicly display, publicly perform, sublicense, and distribute the\n      Work and such Derivative Works in Source or Object form.\n\n   3. Grant of Patent License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      (except as stated in this section) patent license to make, have made,\n      use, offer to sell, sell, import, and otherwise transfer the Work,\n      where such license applies only to those patent claims licensable\n      by such Contributor that are necessarily infringed by their\n      Contribution(s) alone or by combination of their Contribution(s)\n      with the Work to which such Contribution(s) was submitted. If You\n      institute patent litigation against any entity (including a\n      cross-claim or counterclaim in a lawsuit) alleging that the Work\n      or a Contribution incorporated within the Work constitutes direct\n      or contributory patent infringement, then any patent licenses\n      granted to You under this License for that Work shall terminate\n      as of the date such litigation is filed.\n\n   4. Redistribution. You may reproduce and distribute copies of the\n      Work or Derivative Works thereof in any medium, with or without\n      modifications, and in Source or Object form, provided that You\n      meet the following conditions:\n\n      (a) You must give any other recipients of the Work or\n          Derivative Works a copy of this License; and\n\n      (b) You must cause any modified files to carry prominent notices\n          stating that You changed the files; and\n\n      (c) You must retain, in the Source form of any Derivative Works\n          that You distribute, all copyright, patent, trademark, and\n          attribution notices from the Source form of the Work,\n          excluding those notices that do not pertain to any part of\n          the Derivative Works; and\n\n      (d) If the Work includes a \"NOTICE\" text file as part of its\n          distribution, then any Derivative Works that You distribute must\n          include a readable copy of the attribution notices contained\n          within such NOTICE file, excluding those notices that do not\n          pertain to any part of the Derivative Works, in at least one\n          of the following places: within a NOTICE text file distributed\n          as part of the Derivative Works; within the Source form or\n          documentation, if provided along with the Derivative Works; or,\n          within a display generated by the Derivative Works, if and\n          wherever such third-party notices normally appear. The contents\n          of the NOTICE file are for informational purposes only and\n          do not modify the License. You may add Your own attribution\n          notices within Derivative Works that You distribute, alongside\n          or as an addendum to the NOTICE text from the Work, provided\n          that such additional attribution notices cannot be construed\n          as modifying the License.\n\n      You may add Your own copyright statement to Your modifications and\n      may provide additional or different license terms and conditions\n      for use, reproduction, or distribution of Your modifications, or\n      for any such Derivative Works as a whole, provided Your use,\n      reproduction, and distribution of the Work otherwise complies with\n      the conditions stated in this License.\n\n   5. Submission of Contributions. Unless You explicitly state otherwise,\n      any Contribution intentionally submitted for inclusion in the Work\n      by You to the Licensor shall be under the terms and conditions of\n      this License, without any additional terms or conditions.\n      Notwithstanding the above, nothing herein shall supersede or modify\n      the terms of any separate license agreement you may have executed\n      with Licensor regarding such Contributions.\n\n   6. Trademarks. This License does not grant permission to use the trade\n      names, trademarks, service marks, or product names of the Licensor,\n      except as required for reasonable and customary use in describing the\n      origin of the Work and reproducing the content of the NOTICE file.\n\n   7. Disclaimer of Warranty. Unless required by applicable law or\n      agreed to in writing, Licensor provides the Work (and each\n      Contributor provides its Contributions) on an \"AS IS\" BASIS,\n      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n      implied, including, without limitation, any warranties or conditions\n      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n      PARTICULAR PURPOSE. You are solely responsible for determining the\n      appropriateness of using or redistributing the Work and assume any\n      risks associated with Your exercise of permissions under this License.\n\n   8. Limitation of Liability. In no event and under no legal theory,\n      whether in tort (including negligence), contract, or otherwise,\n      unless required by applicable law (such as deliberate and grossly\n      negligent acts) or agreed to in writing, shall any Contributor be\n      liable to You for damages, including any direct, indirect, special,\n      incidental, or consequential damages of any character arising as a\n      result of this License or out of the use or inability to use the\n      Work (including but not limited to damages for loss of goodwill,\n      work stoppage, computer failure or malfunction, or any and all\n      other commercial damages or losses), even if such Contributor\n      has been advised of the possibility of such damages.\n\n   9. Accepting Warranty or Additional Liability. While redistributing\n      the Work or Derivative Works thereof, You may choose to offer,\n      and charge a fee for, acceptance of support, warranty, indemnity,\n      or other liability obligations and/or rights consistent with this\n      License. However, in accepting such obligations, You may act only\n      on Your own behalf and on Your sole responsibility, not on behalf\n      of any other Contributor, and only if You agree to indemnify,\n      defend, and hold each Contributor harmless for any liability\n      incurred by, or claims asserted against, such Contributor by reason\n      of your accepting any such warranty or additional liability.\n\n   END OF TERMS AND CONDITIONS\n\n   APPENDIX: How to apply the Apache License to your work.\n\n      To apply the Apache License to your work, attach the following\n      boilerplate notice, with the fields enclosed by brackets \"{}\"\n      replaced with your own identifying information. (Don't include\n      the brackets!)  The text should be enclosed in the appropriate\n      comment syntax for the file format. We also recommend that a\n      file or class name and description of purpose be included on the\n      same \"printed page\" as the copyright notice for easier\n      identification within third-party archives.\n\n   Copyright {yyyy} {name of copyright owner}\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n","dependencies":{"react":"^16.3.0","redux":"^4.0.0","react-dom":"^16.3.0","redux-saga":"^0.15.6","react-redux":"^5.0.6","redux-thunk":"^2.2.0","video-react":"^0.11.2","shaka-player":"^2.4.1","babel-runtime":"^6.26.0","babel-polyfill":"^6.26.0","react-redux-saga":"^1.0.2","@material-ui/core":"^1.0.0","react-virtualized":"^9.18.5","@material-ui/icons":"^1.0.0","veritone-react-common":"^5.1.0","veritone-redux-common":"^3.4.0","veritone-oauth-helpers":"^2.1.0","redux-api-middleware-fixed":"^2.0.0"},"_hasShrinkwrap":false,"devDependencies":{"raf":"^3.4.0","jest":"^22.4.3","faker":"^4.1.0","enzyme":"^3.3.0","eslint":"^4.10.0","rimraf":"^2.6.2","rollup":"^0.55.1","webpack":"^4.0.1","cross-env":"^5.1.1","babel-core":"^6.26.0","webpack-cli":"^2.0.9","babel-loader":"^7.1.3","redux-logger":"^3.0.6","redux-devtools":"^3.4.0","@storybook/react":"v3.3.9","redux-mock-store":"^1.3.0","veritone-dev-env":"^2.0.0","rollup-plugin-url":"^1.3.0","identity-obj-proxy":"^3.0.0","redux-validate-fsa":"^0.1.2","rollup-plugin-json":"^2.3.0","babel-plugin-lodash":"^3.3.2","eslint-plugin-react":"^7.8.2","postinstall-prepare":"^1.0.1","react-test-renderer":"^16.0.0","rollup-plugin-alias":"^1.4.0","rollup-plugin-babel":"^3.0.3","eslint-plugin-import":"^2.11.0","eslint-plugin-lodash":"^2.5.0","babel-plugin-date-fns":"^0.1.0","eslint-plugin-promise":"^3.6.0","rollup-plugin-postcss":"^1.2.8","rollup-plugin-replace":"^2.0.0","@storybook/addon-knobs":"3.3.9","eslint-config-prettier":"^2.7.0","rollup-analyzer-plugin":"^1.1.1","rollup-plugin-commonjs":"^8.3.0","enzyme-adapter-react-16":"^1.0.2","rollup-plugin-node-resolve":"^3.0.2","babel-plugin-transform-runtime":"^6.23.0","redux-immutable-state-invariant":"^2.1.0","babel-plugin-add-react-displayname":"^0.0.5","babel-plugin-transform-class-properties":"^6.24.1","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-plugin-transform-export-extensions":"^6.22.0","babel-plugin-transform-object-rest-spread":"^6.26.0"},"_npmOperationalInternal":{"tmp":"tmp/veritone-widgets_5.2.1_1531261234557_0.864994248257164","host":"s3://npm-registry-packages"}},"5.2.2":{"name":"veritone-widgets","version":"5.2.2","license":"Apache-2.0","_id":"veritone-widgets@5.2.2","maintainers":[{"name":"coolmitch","email":"robb.mitch@gmail.com"}],"dist":{"shasum":"51d1f022a18ee9fc0a151108a91be3a5db2a20bd","tarball":"https://registry.npmjs.org/veritone-widgets/-/veritone-widgets-5.2.2.tgz","fileCount":140,"integrity":"sha512-7v679Ndi6B26PSgQt/87jWgxzbfke49Xw97BlucVa/U84PBRqWnQ5ePsDN9A7WC/+iWy2g8IIXPgXNrCQZ8SPg==","signatures":[{"sig":"MEUCICtwySc3hRttxLrrNSDUgXwvYMFfUvqecfSryG4AdwraAiEArXSxIJDOdQBNlUw3+8iU9TeM/U1lpAkdCt6/1dHGnhI=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":7210052},"jest":{"setupFiles":["<rootDir>/test/testSuitePolyfills.js","<rootDir>/test/configureEnzyme.js"],"moduleNameMapper":{"\\.(css|scss)$":"identity-obj-proxy","\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$":"<rootDir>/test/__mocks__/fileMock.js"},"moduleDirectories":["node_modules"],"moduleFileExtensions":["js","jsx"]},"main":"dist/bundle-cjs.js","module":"dist/bundle-es.js","scripts":{"lint":"eslint src/** --ext .js --max-warnings 0","test":"jest","build":"yarn run build:es && yarn run build:cjs && yarn run build:script-tag","start":"yarn run start:widget-server; yarn run start:storybook","format":"prettier --write \"./src/**/*.{js,scss}\"","prepare":"cd .. && yarn patch-package","build:es":"cross-env NODE_ENV=production BABEL_ENV=production-es rollup -c rollup.config.es.js","prebuild":"yarn run clean:build","build:cjs":"cross-env NODE_ENV=production BABEL_ENV=production-cjs rollup -c rollup.config.cjs.js","test:watch":"jest --watch","build:watch":"cross-env NODE_ENV=production rollup -c --watch","clean:build":"rimraf dist","prepublishOnly":"yarn run test && yarn run lint && yarn run build","build:storybook":"NODE_ENV=production build-storybook -c .storybook -o docs-static","start:storybook":"NODE_ENV=test start-storybook -p 3000 -c .storybook","build:script-tag":"cross-env NODE_ENV=production BABEL_ENV=production-cjs webpack --config webpack.config.script-tag.js","start:widget-server":"yarn workspace veritone-widgets-server run start &"},"_npmUser":{"name":"coolmitch","email":"robb.mitch@gmail.com"},"description":"As of v5.0.0, this package exports both React \"smart components\" and framework agnostic \"widgets\" for most components.","directories":{},"jsnext:main":"dist/bundle-es.js","licenseText":"                                 Apache License\n                           Version 2.0, January 2004\n                        http://www.apache.org/licenses/\n\n   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n   1. Definitions.\n\n      \"License\" shall mean the terms and conditions for use, reproduction,\n      and distribution as defined by Sections 1 through 9 of this document.\n\n      \"Licensor\" shall mean the copyright owner or entity authorized by\n      the copyright owner that is granting the License.\n\n      \"Legal Entity\" shall mean the union of the acting entity and all\n      other entities that control, are controlled by, or are under common\n      control with that entity. For the purposes of this definition,\n      \"control\" means (i) the power, direct or indirect, to cause the\n      direction or management of such entity, whether by contract or\n      otherwise, or (ii) ownership of fifty percent (50%) or more of the\n      outstanding shares, or (iii) beneficial ownership of such entity.\n\n      \"You\" (or \"Your\") shall mean an individual or Legal Entity\n      exercising permissions granted by this License.\n\n      \"Source\" form shall mean the preferred form for making modifications,\n      including but not limited to software source code, documentation\n      source, and configuration files.\n\n      \"Object\" form shall mean any form resulting from mechanical\n      transformation or translation of a Source form, including but\n      not limited to compiled object code, generated documentation,\n      and conversions to other media types.\n\n      \"Work\" shall mean the work of authorship, whether in Source or\n      Object form, made available under the License, as indicated by a\n      copyright notice that is included in or attached to the work\n      (an example is provided in the Appendix below).\n\n      \"Derivative Works\" shall mean any work, whether in Source or Object\n      form, that is based on (or derived from) the Work and for which the\n      editorial revisions, annotations, elaborations, or other modifications\n      represent, as a whole, an original work of authorship. For the purposes\n      of this License, Derivative Works shall not include works that remain\n      separable from, or merely link (or bind by name) to the interfaces of,\n      the Work and Derivative Works thereof.\n\n      \"Contribution\" shall mean any work of authorship, including\n      the original version of the Work and any modifications or additions\n      to that Work or Derivative Works thereof, that is intentionally\n      submitted to Licensor for inclusion in the Work by the copyright owner\n      or by an individual or Legal Entity authorized to submit on behalf of\n      the copyright owner. For the purposes of this definition, \"submitted\"\n      means any form of electronic, verbal, or written communication sent\n      to the Licensor or its representatives, including but not limited to\n      communication on electronic mailing lists, source code control systems,\n      and issue tracking systems that are managed by, or on behalf of, the\n      Licensor for the purpose of discussing and improving the Work, but\n      excluding communication that is conspicuously marked or otherwise\n      designated in writing by the copyright owner as \"Not a Contribution.\"\n\n      \"Contributor\" shall mean Licensor and any individual or Legal Entity\n      on behalf of whom a Contribution has been received by Licensor and\n      subsequently incorporated within the Work.\n\n   2. Grant of Copyright License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      copyright license to reproduce, prepare Derivative Works of,\n      publicly display, publicly perform, sublicense, and distribute the\n      Work and such Derivative Works in Source or Object form.\n\n   3. Grant of Patent License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      (except as stated in this section) patent license to make, have made,\n      use, offer to sell, sell, import, and otherwise transfer the Work,\n      where such license applies only to those patent claims licensable\n      by such Contributor that are necessarily infringed by their\n      Contribution(s) alone or by combination of their Contribution(s)\n      with the Work to which such Contribution(s) was submitted. If You\n      institute patent litigation against any entity (including a\n      cross-claim or counterclaim in a lawsuit) alleging that the Work\n      or a Contribution incorporated within the Work constitutes direct\n      or contributory patent infringement, then any patent licenses\n      granted to You under this License for that Work shall terminate\n      as of the date such litigation is filed.\n\n   4. Redistribution. You may reproduce and distribute copies of the\n      Work or Derivative Works thereof in any medium, with or without\n      modifications, and in Source or Object form, provided that You\n      meet the following conditions:\n\n      (a) You must give any other recipients of the Work or\n          Derivative Works a copy of this License; and\n\n      (b) You must cause any modified files to carry prominent notices\n          stating that You changed the files; and\n\n      (c) You must retain, in the Source form of any Derivative Works\n          that You distribute, all copyright, patent, trademark, and\n          attribution notices from the Source form of the Work,\n          excluding those notices that do not pertain to any part of\n          the Derivative Works; and\n\n      (d) If the Work includes a \"NOTICE\" text file as part of its\n          distribution, then any Derivative Works that You distribute must\n          include a readable copy of the attribution notices contained\n          within such NOTICE file, excluding those notices that do not\n          pertain to any part of the Derivative Works, in at least one\n          of the following places: within a NOTICE text file distributed\n          as part of the Derivative Works; within the Source form or\n          documentation, if provided along with the Derivative Works; or,\n          within a display generated by the Derivative Works, if and\n          wherever such third-party notices normally appear. The contents\n          of the NOTICE file are for informational purposes only and\n          do not modify the License. You may add Your own attribution\n          notices within Derivative Works that You distribute, alongside\n          or as an addendum to the NOTICE text from the Work, provided\n          that such additional attribution notices cannot be construed\n          as modifying the License.\n\n      You may add Your own copyright statement to Your modifications and\n      may provide additional or different license terms and conditions\n      for use, reproduction, or distribution of Your modifications, or\n      for any such Derivative Works as a whole, provided Your use,\n      reproduction, and distribution of the Work otherwise complies with\n      the conditions stated in this License.\n\n   5. Submission of Contributions. Unless You explicitly state otherwise,\n      any Contribution intentionally submitted for inclusion in the Work\n      by You to the Licensor shall be under the terms and conditions of\n      this License, without any additional terms or conditions.\n      Notwithstanding the above, nothing herein shall supersede or modify\n      the terms of any separate license agreement you may have executed\n      with Licensor regarding such Contributions.\n\n   6. Trademarks. This License does not grant permission to use the trade\n      names, trademarks, service marks, or product names of the Licensor,\n      except as required for reasonable and customary use in describing the\n      origin of the Work and reproducing the content of the NOTICE file.\n\n   7. Disclaimer of Warranty. Unless required by applicable law or\n      agreed to in writing, Licensor provides the Work (and each\n      Contributor provides its Contributions) on an \"AS IS\" BASIS,\n      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n      implied, including, without limitation, any warranties or conditions\n      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n      PARTICULAR PURPOSE. You are solely responsible for determining the\n      appropriateness of using or redistributing the Work and assume any\n      risks associated with Your exercise of permissions under this License.\n\n   8. Limitation of Liability. In no event and under no legal theory,\n      whether in tort (including negligence), contract, or otherwise,\n      unless required by applicable law (such as deliberate and grossly\n      negligent acts) or agreed to in writing, shall any Contributor be\n      liable to You for damages, including any direct, indirect, special,\n      incidental, or consequential damages of any character arising as a\n      result of this License or out of the use or inability to use the\n      Work (including but not limited to damages for loss of goodwill,\n      work stoppage, computer failure or malfunction, or any and all\n      other commercial damages or losses), even if such Contributor\n      has been advised of the possibility of such damages.\n\n   9. Accepting Warranty or Additional Liability. While redistributing\n      the Work or Derivative Works thereof, You may choose to offer,\n      and charge a fee for, acceptance of support, warranty, indemnity,\n      or other liability obligations and/or rights consistent with this\n      License. However, in accepting such obligations, You may act only\n      on Your own behalf and on Your sole responsibility, not on behalf\n      of any other Contributor, and only if You agree to indemnify,\n      defend, and hold each Contributor harmless for any liability\n      incurred by, or claims asserted against, such Contributor by reason\n      of your accepting any such warranty or additional liability.\n\n   END OF TERMS AND CONDITIONS\n\n   APPENDIX: How to apply the Apache License to your work.\n\n      To apply the Apache License to your work, attach the following\n      boilerplate notice, with the fields enclosed by brackets \"{}\"\n      replaced with your own identifying information. (Don't include\n      the brackets!)  The text should be enclosed in the appropriate\n      comment syntax for the file format. We also recommend that a\n      file or class name and description of purpose be included on the\n      same \"printed page\" as the copyright notice for easier\n      identification within third-party archives.\n\n   Copyright {yyyy} {name of copyright owner}\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n","dependencies":{"react":"^16.3.0","redux":"^4.0.0","react-dom":"^16.3.0","redux-saga":"^0.15.6","react-redux":"^5.0.6","redux-thunk":"^2.2.0","video-react":"^0.11.2","shaka-player":"^2.4.1","babel-runtime":"^6.26.0","babel-polyfill":"^6.26.0","react-redux-saga":"^1.0.2","@material-ui/core":"^1.0.0","react-virtualized":"^9.18.5","@material-ui/icons":"^1.0.0","veritone-react-common":"^5.1.0","veritone-redux-common":"^3.6.0","veritone-oauth-helpers":"^2.1.0","redux-api-middleware-fixed":"^2.0.0"},"_hasShrinkwrap":false,"devDependencies":{"raf":"^3.4.0","jest":"^22.4.3","faker":"^4.1.0","enzyme":"^3.3.0","eslint":"^4.10.0","rimraf":"^2.6.2","rollup":"^0.55.1","webpack":"^4.0.1","cross-env":"^5.1.1","babel-core":"^6.26.0","webpack-cli":"^2.0.9","babel-loader":"^7.1.3","redux-logger":"^3.0.6","redux-devtools":"^3.4.0","@storybook/react":"v3.3.9","redux-mock-store":"^1.3.0","veritone-dev-env":"^2.0.0","rollup-plugin-url":"^1.3.0","identity-obj-proxy":"^3.0.0","redux-validate-fsa":"^0.1.2","rollup-plugin-json":"^2.3.0","babel-plugin-lodash":"^3.3.2","eslint-plugin-react":"^7.8.2","postinstall-prepare":"^1.0.1","react-test-renderer":"^16.0.0","rollup-plugin-alias":"^1.4.0","rollup-plugin-babel":"^3.0.3","eslint-plugin-import":"^2.11.0","eslint-plugin-lodash":"^2.5.0","babel-plugin-date-fns":"^0.1.0","eslint-plugin-promise":"^3.6.0","rollup-plugin-postcss":"^1.2.8","rollup-plugin-replace":"^2.0.0","@storybook/addon-knobs":"3.3.9","eslint-config-prettier":"^2.7.0","rollup-analyzer-plugin":"^1.1.1","rollup-plugin-commonjs":"^8.3.0","enzyme-adapter-react-16":"^1.0.2","rollup-plugin-node-resolve":"^3.0.2","babel-plugin-transform-runtime":"^6.23.0","redux-immutable-state-invariant":"^2.1.0","babel-plugin-add-react-displayname":"^0.0.5","babel-plugin-transform-class-properties":"^6.24.1","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-plugin-transform-export-extensions":"^6.22.0","babel-plugin-transform-object-rest-spread":"^6.26.0"},"_npmOperationalInternal":{"tmp":"tmp/veritone-widgets_5.2.2_1532034281528_0.19298831451100873","host":"s3://npm-registry-packages"}},"6.0.0":{"name":"veritone-widgets","version":"6.0.0","license":"Apache-2.0","_id":"veritone-widgets@6.0.0","maintainers":[{"name":"albertcbrown","email":"al@veritone.com"},{"name":"charliemantle","email":"charliemantle2@gmail.com"},{"name":"coolmitch","email":"robb.mitch@gmail.com"},{"name":"steveshaffer","email":"steve@shaffer.ninja"},{"name":"veritone_dev","email":"dev@veritone.com"}],"dist":{"shasum":"6616a4ef5c9a37b0a4ea4e830be81058b52563c3","tarball":"https://registry.npmjs.org/veritone-widgets/-/veritone-widgets-6.0.0.tgz","fileCount":180,"integrity":"sha512-LSI+UmUETAVpNRtuDAmzPyqahYp5ZMSZjYLaGSWeCQvB0LBsN1ib5y9bFOaDJZ1yQy7IHvRrij858hHW09ugiA==","signatures":[{"sig":"MEUCIFUqbGZ8Dxiz5I7UMiLSTxhnn4uM1ARFLlZrDJgXhtgwAiEAs3KBph9QQOpDY6LsoMfsM0zpUAaDlNcN0rXSZ7Lz0Fs=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":21967793,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbcztKCRA9TVsSAnZWagAAjucP/3JyCp0daHzg40t7KYGo\nN1fOA9rrGv96RILbwl2NnTnZFcGOYgoRbgr2OPQSiOulqAulkqykwptjbc02\nYk3Wy0bmljjEl/r8lf83+yO2KWMMPOw8aEgNv7BmvQfFQUijUbXa/HKuiaJ5\nCC8qD53g/uJlLfybSinXrCig3c/TihfcbGP+YAhSTD/F0NQLL1X5q4+vWO4+\niZ5nON50JTffAx/FoOa1KKF1Gzvm6uagrXwnFnAeuzjW/ToRTPPR9sf3qEFc\nGGggeSPESrkj7AU1rVN1HP1JdLUIS4tu0riPtpT+ZfZifCY/KdrXQO2+WobA\naGNGgCOuzj/6LucqNIXRQFIbSLV4ARIwB5qeM+VPS9G8aLZpHV/FF3RutbvP\n5KOv0XxZI2RcnUwD0mhQ6GhbcbmatX/7avcZ5/TgnAZk5sHtgZx2qTsKjywm\nygsTVGuSfFG2BAiXj93ixut64bYoK2Skjx5fZ3OQjIvjmMsOOAMRq4BalNV3\nHIWK3btxkVsezfghAc1qdoq4IX0iXRgJCqe1cVGPeZffTMn5jNyqO39z71Hv\n3LJtd1ZIheiC7pVIIEYRt01MCfcBFWODzDspcs45Ci+hi3BrBE17zzo/kJSE\nqddybFH0imP+QIRYnWQtAOQ6mX31iBnvhI+rCLEWvLQpJyV5+RL49ZNAQ6Ob\nIfzo\r\n=kj+/\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"setupFiles":["<rootDir>/test/testSuitePolyfills.js","<rootDir>/test/configureEnzyme.js"],"moduleNameMapper":{"\\.(css|scss)$":"identity-obj-proxy","\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$":"<rootDir>/test/__mocks__/fileMock.js"},"moduleDirectories":["node_modules"],"moduleFileExtensions":["js","jsx"]},"main":"dist/bundle-cjs.js","module":"dist/bundle-es.js","scripts":{"lint":"eslint src/** --ext .js --max-warnings 0","test":"jest","build":"yarn run build:es && yarn run build:cjs && yarn run build:script-tag","start":"yarn run start:widget-server; yarn run start:storybook","format":"prettier --write \"./src/**/*.{js,scss}\"","prepare":"cd .. && yarn patch-package","build:es":"cross-env NODE_ENV=production BABEL_ENV=production-es rollup -c rollup.config.es.js","prebuild":"yarn run clean:build","build:cjs":"cross-env NODE_ENV=production BABEL_ENV=production-cjs rollup -c rollup.config.cjs.js","test:watch":"jest --watch","build:watch":"cross-env NODE_ENV=production rollup -c --watch","clean:build":"rimraf dist","prepublishOnly":"yarn run test && yarn run lint && yarn run build","build:storybook":"NODE_ENV=production build-storybook -c .storybook -o docs-static","start:storybook":"NODE_ENV=test start-storybook -p 3000 -c .storybook","build:script-tag":"cross-env NODE_ENV=production BABEL_ENV=production-cjs webpack --config webpack.config.script-tag.js","start:widget-server":"yarn workspace veritone-widgets-server run start &"},"_npmUser":{"name":"coolmitch","email":"robb.mitch@gmail.com"},"description":"As of v5.0.0, this package exports both React \"smart components\" and framework agnostic \"widgets\" for most components. When both are available, the smart component is the default export and the widget is a named export. For example, `import FilePicker, { ","directories":{},"jsnext:main":"dist/bundle-es.js","licenseText":"                                 Apache License\n                           Version 2.0, January 2004\n                        http://www.apache.org/licenses/\n\n   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n   1. Definitions.\n\n      \"License\" shall mean the terms and conditions for use, reproduction,\n      and distribution as defined by Sections 1 through 9 of this document.\n\n      \"Licensor\" shall mean the copyright owner or entity authorized by\n      the copyright owner that is granting the License.\n\n      \"Legal Entity\" shall mean the union of the acting entity and all\n      other entities that control, are controlled by, or are under common\n      control with that entity. For the purposes of this definition,\n      \"control\" means (i) the power, direct or indirect, to cause the\n      direction or management of such entity, whether by contract or\n      otherwise, or (ii) ownership of fifty percent (50%) or more of the\n      outstanding shares, or (iii) beneficial ownership of such entity.\n\n      \"You\" (or \"Your\") shall mean an individual or Legal Entity\n      exercising permissions granted by this License.\n\n      \"Source\" form shall mean the preferred form for making modifications,\n      including but not limited to software source code, documentation\n      source, and configuration files.\n\n      \"Object\" form shall mean any form resulting from mechanical\n      transformation or translation of a Source form, including but\n      not limited to compiled object code, generated documentation,\n      and conversions to other media types.\n\n      \"Work\" shall mean the work of authorship, whether in Source or\n      Object form, made available under the License, as indicated by a\n      copyright notice that is included in or attached to the work\n      (an example is provided in the Appendix below).\n\n      \"Derivative Works\" shall mean any work, whether in Source or Object\n      form, that is based on (or derived from) the Work and for which the\n      editorial revisions, annotations, elaborations, or other modifications\n      represent, as a whole, an original work of authorship. For the purposes\n      of this License, Derivative Works shall not include works that remain\n      separable from, or merely link (or bind by name) to the interfaces of,\n      the Work and Derivative Works thereof.\n\n      \"Contribution\" shall mean any work of authorship, including\n      the original version of the Work and any modifications or additions\n      to that Work or Derivative Works thereof, that is intentionally\n      submitted to Licensor for inclusion in the Work by the copyright owner\n      or by an individual or Legal Entity authorized to submit on behalf of\n      the copyright owner. For the purposes of this definition, \"submitted\"\n      means any form of electronic, verbal, or written communication sent\n      to the Licensor or its representatives, including but not limited to\n      communication on electronic mailing lists, source code control systems,\n      and issue tracking systems that are managed by, or on behalf of, the\n      Licensor for the purpose of discussing and improving the Work, but\n      excluding communication that is conspicuously marked or otherwise\n      designated in writing by the copyright owner as \"Not a Contribution.\"\n\n      \"Contributor\" shall mean Licensor and any individual or Legal Entity\n      on behalf of whom a Contribution has been received by Licensor and\n      subsequently incorporated within the Work.\n\n   2. Grant of Copyright License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      copyright license to reproduce, prepare Derivative Works of,\n      publicly display, publicly perform, sublicense, and distribute the\n      Work and such Derivative Works in Source or Object form.\n\n   3. Grant of Patent License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      (except as stated in this section) patent license to make, have made,\n      use, offer to sell, sell, import, and otherwise transfer the Work,\n      where such license applies only to those patent claims licensable\n      by such Contributor that are necessarily infringed by their\n      Contribution(s) alone or by combination of their Contribution(s)\n      with the Work to which such Contribution(s) was submitted. If You\n      institute patent litigation against any entity (including a\n      cross-claim or counterclaim in a lawsuit) alleging that the Work\n      or a Contribution incorporated within the Work constitutes direct\n      or contributory patent infringement, then any patent licenses\n      granted to You under this License for that Work shall terminate\n      as of the date such litigation is filed.\n\n   4. Redistribution. You may reproduce and distribute copies of the\n      Work or Derivative Works thereof in any medium, with or without\n      modifications, and in Source or Object form, provided that You\n      meet the following conditions:\n\n      (a) You must give any other recipients of the Work or\n          Derivative Works a copy of this License; and\n\n      (b) You must cause any modified files to carry prominent notices\n          stating that You changed the files; and\n\n      (c) You must retain, in the Source form of any Derivative Works\n          that You distribute, all copyright, patent, trademark, and\n          attribution notices from the Source form of the Work,\n          excluding those notices that do not pertain to any part of\n          the Derivative Works; and\n\n      (d) If the Work includes a \"NOTICE\" text file as part of its\n          distribution, then any Derivative Works that You distribute must\n          include a readable copy of the attribution notices contained\n          within such NOTICE file, excluding those notices that do not\n          pertain to any part of the Derivative Works, in at least one\n          of the following places: within a NOTICE text file distributed\n          as part of the Derivative Works; within the Source form or\n          documentation, if provided along with the Derivative Works; or,\n          within a display generated by the Derivative Works, if and\n          wherever such third-party notices normally appear. The contents\n          of the NOTICE file are for informational purposes only and\n          do not modify the License. You may add Your own attribution\n          notices within Derivative Works that You distribute, alongside\n          or as an addendum to the NOTICE text from the Work, provided\n          that such additional attribution notices cannot be construed\n          as modifying the License.\n\n      You may add Your own copyright statement to Your modifications and\n      may provide additional or different license terms and conditions\n      for use, reproduction, or distribution of Your modifications, or\n      for any such Derivative Works as a whole, provided Your use,\n      reproduction, and distribution of the Work otherwise complies with\n      the conditions stated in this License.\n\n   5. Submission of Contributions. Unless You explicitly state otherwise,\n      any Contribution intentionally submitted for inclusion in the Work\n      by You to the Licensor shall be under the terms and conditions of\n      this License, without any additional terms or conditions.\n      Notwithstanding the above, nothing herein shall supersede or modify\n      the terms of any separate license agreement you may have executed\n      with Licensor regarding such Contributions.\n\n   6. Trademarks. This License does not grant permission to use the trade\n      names, trademarks, service marks, or product names of the Licensor,\n      except as required for reasonable and customary use in describing the\n      origin of the Work and reproducing the content of the NOTICE file.\n\n   7. Disclaimer of Warranty. Unless required by applicable law or\n      agreed to in writing, Licensor provides the Work (and each\n      Contributor provides its Contributions) on an \"AS IS\" BASIS,\n      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n      implied, including, without limitation, any warranties or conditions\n      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n      PARTICULAR PURPOSE. You are solely responsible for determining the\n      appropriateness of using or redistributing the Work and assume any\n      risks associated with Your exercise of permissions under this License.\n\n   8. Limitation of Liability. In no event and under no legal theory,\n      whether in tort (including negligence), contract, or otherwise,\n      unless required by applicable law (such as deliberate and grossly\n      negligent acts) or agreed to in writing, shall any Contributor be\n      liable to You for damages, including any direct, indirect, special,\n      incidental, or consequential damages of any character arising as a\n      result of this License or out of the use or inability to use the\n      Work (including but not limited to damages for loss of goodwill,\n      work stoppage, computer failure or malfunction, or any and all\n      other commercial damages or losses), even if such Contributor\n      has been advised of the possibility of such damages.\n\n   9. Accepting Warranty or Additional Liability. While redistributing\n      the Work or Derivative Works thereof, You may choose to offer,\n      and charge a fee for, acceptance of support, warranty, indemnity,\n      or other liability obligations and/or rights consistent with this\n      License. However, in accepting such obligations, You may act only\n      on Your own behalf and on Your sole responsibility, not on behalf\n      of any other Contributor, and only if You agree to indemnify,\n      defend, and hold each Contributor harmless for any liability\n      incurred by, or claims asserted against, such Contributor by reason\n      of your accepting any such warranty or additional liability.\n\n   END OF TERMS AND CONDITIONS\n\n   APPENDIX: How to apply the Apache License to your work.\n\n      To apply the Apache License to your work, attach the following\n      boilerplate notice, with the fields enclosed by brackets \"{}\"\n      replaced with your own identifying information. (Don't include\n      the brackets!)  The text should be enclosed in the appropriate\n      comment syntax for the file format. We also recommend that a\n      file or class name and description of purpose be included on the\n      same \"printed page\" as the copyright notice for easier\n      identification within third-party archives.\n\n   Copyright {yyyy} {name of copyright owner}\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n","dependencies":{"react":"^16.3.0","redux":"^4.0.0","react-dom":"^16.3.0","redux-saga":"^0.15.6","react-redux":"^5.0.6","redux-thunk":"^2.2.0","video-react":"^0.11.2","shaka-player":"^2.4.1","babel-runtime":"^6.26.0","babel-polyfill":"^6.26.0","react-redux-saga":"^1.0.2","@material-ui/core":"^1.0.0","react-virtualized":"^9.18.5","@material-ui/icons":"^1.0.0","veritone-react-common":"^6.0.0","veritone-redux-common":"^3.7.0","veritone-oauth-helpers":"^2.1.0","redux-api-middleware-fixed":"^2.0.0"},"_hasShrinkwrap":false,"devDependencies":{"raf":"^3.4.0","jest":"^22.4.3","faker":"^4.1.0","enzyme":"^3.3.0","eslint":"^4.10.0","rimraf":"^2.6.2","rollup":"^0.55.1","webpack":"^4.0.1","cross-env":"^5.1.1","babel-core":"^6.26.0","webpack-cli":"^2.0.9","babel-loader":"^7.1.3","redux-logger":"^3.0.6","redux-devtools":"^3.4.0","@storybook/react":"v3.3.9","redux-mock-store":"^1.3.0","veritone-dev-env":"^2.0.0","rollup-plugin-url":"^1.3.0","identity-obj-proxy":"^3.0.0","redux-validate-fsa":"^0.1.2","rollup-plugin-json":"^2.3.0","babel-plugin-lodash":"^3.3.2","eslint-plugin-react":"^7.8.2","postinstall-prepare":"^1.0.1","react-test-renderer":"^16.0.0","rollup-plugin-alias":"^1.4.0","rollup-plugin-babel":"^3.0.3","eslint-plugin-import":"^2.11.0","eslint-plugin-lodash":"^2.5.0","babel-plugin-date-fns":"^0.1.0","eslint-plugin-promise":"^3.6.0","rollup-plugin-postcss":"^1.2.8","rollup-plugin-replace":"^2.0.0","@storybook/addon-knobs":"3.3.9","eslint-config-prettier":"^2.7.0","rollup-analyzer-plugin":"^1.1.1","rollup-plugin-commonjs":"^8.3.0","enzyme-adapter-react-16":"^1.0.2","rollup-plugin-node-resolve":"^3.0.2","babel-plugin-transform-runtime":"^6.23.0","redux-immutable-state-invariant":"^2.1.0","babel-plugin-add-react-displayname":"^0.0.5","babel-plugin-transform-class-properties":"^6.24.1","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-plugin-transform-export-extensions":"^6.22.0","babel-plugin-transform-object-rest-spread":"^6.26.0"},"_npmOperationalInternal":{"tmp":"tmp/veritone-widgets_6.0.0_1534278473770_0.8249007563879054","host":"s3://npm-registry-packages"}},"6.0.1":{"name":"veritone-widgets","version":"6.0.1","license":"Apache-2.0","_id":"veritone-widgets@6.0.1","maintainers":[{"name":"albertcbrown","email":"al@veritone.com"},{"name":"charliemantle","email":"charliemantle2@gmail.com"},{"name":"coolmitch","email":"robb.mitch@gmail.com"},{"name":"steveshaffer","email":"steve@shaffer.ninja"},{"name":"veritone_dev","email":"dev@veritone.com"}],"dist":{"shasum":"81cb10ac19db299526f59877610ae2ffc835edac","tarball":"https://registry.npmjs.org/veritone-widgets/-/veritone-widgets-6.0.1.tgz","fileCount":180,"integrity":"sha512-50vgIJFw0BSS+vAHleAF2vLsd7WFBawD1IjXu6O283VzfhJ/+/r+Z4H4lVKNjjAki02ZW8nAXm3Z143l00twmw==","signatures":[{"sig":"MEYCIQDOrCWsfxl1Kvlu9okHx/jhpvKjUNUCpB80vke+/Z+iRAIhAK7cohhUo/FxXkTyyx/On3r4tY5pDkx6/IH3QRSqwjmg","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":21969387,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbdcXwCRA9TVsSAnZWagAARbIP/Roo9CXBQ/FrYRDeLB0N\nHQAqtiHkBdQ6h8NCUKtbV2XH0mYSZ+7//KhmDx0/UU22172R7xch3h5kMk2i\nRQGmaHVHB+n1s9N68EGQyZwHCM8kBXhQnXmpJfXMhihGNbc/ZX0HP27UXz48\nsuHE8KE9lhFScYapZ3VoCkhv2FupZt/R3P2yamz3GjyMgEko941Z+Fwa+SwD\nB8Wpuo5+Fwbh1Q8l/0Ie9OAOv+Wd4InX25KwhB53OVjexfUuau0bcVJHOh7/\nHj1Q1WeT8KQeGSm4uw7OlLeWtoREl3ew0PBTmsO57zYNnnIoZmG9ibdyImjO\nI2b9ZOslcfhNW3b/WVKN73aGjVwy7AATNq6g89WQ8ISnuAymB7H5EqyEScw2\nTQp7+cUYv64c9J4DoiIhWdtoPqfeIF+ZQAXhO5DVZ49s3OQKF/zg4GlcFlTQ\ns3Wjg5m1CZ9VnkJW2Ny7rFkhuR7HNw62jcTqvC+189ocVyDM2ZuVQy6KhO4Y\n7tSAtPVGzbItwAQLy7+pATQ3U/75Ch0slBzxIc5CfCtEr8CoTV0kpaiomdgP\niikJNnI2A7J/IbcKkgd+Z23otm4TAhum163L6R66e3yEquAgCquchQI2qcXe\noz0OgRCaxdip4TjUfJx3l12PNOf8wrdWXj3DvXogFowKEePGVR+tHWXtc84r\nbqQO\r\n=eSh6\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"setupFiles":["<rootDir>/test/testSuitePolyfills.js","<rootDir>/test/configureEnzyme.js"],"moduleNameMapper":{"\\.(css|scss)$":"identity-obj-proxy","\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$":"<rootDir>/test/__mocks__/fileMock.js"},"moduleDirectories":["node_modules"],"moduleFileExtensions":["js","jsx"]},"main":"dist/bundle-cjs.js","module":"dist/bundle-es.js","scripts":{"lint":"eslint src/** --ext .js --max-warnings 0","test":"jest","build":"yarn run build:es && yarn run build:cjs && yarn run build:script-tag","start":"yarn run start:widget-server; yarn run start:storybook","format":"prettier --write \"./src/**/*.{js,scss}\"","prepare":"cd .. && yarn patch-package","build:es":"cross-env NODE_ENV=production BABEL_ENV=production-es rollup -c rollup.config.es.js","prebuild":"yarn run clean:build","build:cjs":"cross-env NODE_ENV=production BABEL_ENV=production-cjs rollup -c rollup.config.cjs.js","test:watch":"jest --watch","build:watch":"cross-env NODE_ENV=production rollup -c --watch","clean:build":"rimraf dist","prepublishOnly":"yarn run test && yarn run lint && yarn run build","build:storybook":"NODE_ENV=production build-storybook -c .storybook -o docs-static","start:storybook":"NODE_ENV=test start-storybook -p 3000 -c .storybook","build:script-tag":"cross-env NODE_ENV=production BABEL_ENV=production-cjs webpack --config webpack.config.script-tag.js","start:widget-server":"yarn workspace veritone-widgets-server run start &"},"_npmUser":{"name":"coolmitch","email":"robb.mitch@gmail.com"},"description":"As of v5.0.0, this package exports both React \"smart components\" and framework agnostic \"widgets\" for most components. When both are available, the smart component is the default export and the widget is a named export. For example, `import FilePicker, { ","directories":{},"jsnext:main":"dist/bundle-es.js","licenseText":"                                 Apache License\n                           Version 2.0, January 2004\n                        http://www.apache.org/licenses/\n\n   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n   1. Definitions.\n\n      \"License\" shall mean the terms and conditions for use, reproduction,\n      and distribution as defined by Sections 1 through 9 of this document.\n\n      \"Licensor\" shall mean the copyright owner or entity authorized by\n      the copyright owner that is granting the License.\n\n      \"Legal Entity\" shall mean the union of the acting entity and all\n      other entities that control, are controlled by, or are under common\n      control with that entity. For the purposes of this definition,\n      \"control\" means (i) the power, direct or indirect, to cause the\n      direction or management of such entity, whether by contract or\n      otherwise, or (ii) ownership of fifty percent (50%) or more of the\n      outstanding shares, or (iii) beneficial ownership of such entity.\n\n      \"You\" (or \"Your\") shall mean an individual or Legal Entity\n      exercising permissions granted by this License.\n\n      \"Source\" form shall mean the preferred form for making modifications,\n      including but not limited to software source code, documentation\n      source, and configuration files.\n\n      \"Object\" form shall mean any form resulting from mechanical\n      transformation or translation of a Source form, including but\n      not limited to compiled object code, generated documentation,\n      and conversions to other media types.\n\n      \"Work\" shall mean the work of authorship, whether in Source or\n      Object form, made available under the License, as indicated by a\n      copyright notice that is included in or attached to the work\n      (an example is provided in the Appendix below).\n\n      \"Derivative Works\" shall mean any work, whether in Source or Object\n      form, that is based on (or derived from) the Work and for which the\n      editorial revisions, annotations, elaborations, or other modifications\n      represent, as a whole, an original work of authorship. For the purposes\n      of this License, Derivative Works shall not include works that remain\n      separable from, or merely link (or bind by name) to the interfaces of,\n      the Work and Derivative Works thereof.\n\n      \"Contribution\" shall mean any work of authorship, including\n      the original version of the Work and any modifications or additions\n      to that Work or Derivative Works thereof, that is intentionally\n      submitted to Licensor for inclusion in the Work by the copyright owner\n      or by an individual or Legal Entity authorized to submit on behalf of\n      the copyright owner. For the purposes of this definition, \"submitted\"\n      means any form of electronic, verbal, or written communication sent\n      to the Licensor or its representatives, including but not limited to\n      communication on electronic mailing lists, source code control systems,\n      and issue tracking systems that are managed by, or on behalf of, the\n      Licensor for the purpose of discussing and improving the Work, but\n      excluding communication that is conspicuously marked or otherwise\n      designated in writing by the copyright owner as \"Not a Contribution.\"\n\n      \"Contributor\" shall mean Licensor and any individual or Legal Entity\n      on behalf of whom a Contribution has been received by Licensor and\n      subsequently incorporated within the Work.\n\n   2. Grant of Copyright License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      copyright license to reproduce, prepare Derivative Works of,\n      publicly display, publicly perform, sublicense, and distribute the\n      Work and such Derivative Works in Source or Object form.\n\n   3. Grant of Patent License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      (except as stated in this section) patent license to make, have made,\n      use, offer to sell, sell, import, and otherwise transfer the Work,\n      where such license applies only to those patent claims licensable\n      by such Contributor that are necessarily infringed by their\n      Contribution(s) alone or by combination of their Contribution(s)\n      with the Work to which such Contribution(s) was submitted. If You\n      institute patent litigation against any entity (including a\n      cross-claim or counterclaim in a lawsuit) alleging that the Work\n      or a Contribution incorporated within the Work constitutes direct\n      or contributory patent infringement, then any patent licenses\n      granted to You under this License for that Work shall terminate\n      as of the date such litigation is filed.\n\n   4. Redistribution. You may reproduce and distribute copies of the\n      Work or Derivative Works thereof in any medium, with or without\n      modifications, and in Source or Object form, provided that You\n      meet the following conditions:\n\n      (a) You must give any other recipients of the Work or\n          Derivative Works a copy of this License; and\n\n      (b) You must cause any modified files to carry prominent notices\n          stating that You changed the files; and\n\n      (c) You must retain, in the Source form of any Derivative Works\n          that You distribute, all copyright, patent, trademark, and\n          attribution notices from the Source form of the Work,\n          excluding those notices that do not pertain to any part of\n          the Derivative Works; and\n\n      (d) If the Work includes a \"NOTICE\" text file as part of its\n          distribution, then any Derivative Works that You distribute must\n          include a readable copy of the attribution notices contained\n          within such NOTICE file, excluding those notices that do not\n          pertain to any part of the Derivative Works, in at least one\n          of the following places: within a NOTICE text file distributed\n          as part of the Derivative Works; within the Source form or\n          documentation, if provided along with the Derivative Works; or,\n          within a display generated by the Derivative Works, if and\n          wherever such third-party notices normally appear. The contents\n          of the NOTICE file are for informational purposes only and\n          do not modify the License. You may add Your own attribution\n          notices within Derivative Works that You distribute, alongside\n          or as an addendum to the NOTICE text from the Work, provided\n          that such additional attribution notices cannot be construed\n          as modifying the License.\n\n      You may add Your own copyright statement to Your modifications and\n      may provide additional or different license terms and conditions\n      for use, reproduction, or distribution of Your modifications, or\n      for any such Derivative Works as a whole, provided Your use,\n      reproduction, and distribution of the Work otherwise complies with\n      the conditions stated in this License.\n\n   5. Submission of Contributions. Unless You explicitly state otherwise,\n      any Contribution intentionally submitted for inclusion in the Work\n      by You to the Licensor shall be under the terms and conditions of\n      this License, without any additional terms or conditions.\n      Notwithstanding the above, nothing herein shall supersede or modify\n      the terms of any separate license agreement you may have executed\n      with Licensor regarding such Contributions.\n\n   6. Trademarks. This License does not grant permission to use the trade\n      names, trademarks, service marks, or product names of the Licensor,\n      except as required for reasonable and customary use in describing the\n      origin of the Work and reproducing the content of the NOTICE file.\n\n   7. Disclaimer of Warranty. Unless required by applicable law or\n      agreed to in writing, Licensor provides the Work (and each\n      Contributor provides its Contributions) on an \"AS IS\" BASIS,\n      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n      implied, including, without limitation, any warranties or conditions\n      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n      PARTICULAR PURPOSE. You are solely responsible for determining the\n      appropriateness of using or redistributing the Work and assume any\n      risks associated with Your exercise of permissions under this License.\n\n   8. Limitation of Liability. In no event and under no legal theory,\n      whether in tort (including negligence), contract, or otherwise,\n      unless required by applicable law (such as deliberate and grossly\n      negligent acts) or agreed to in writing, shall any Contributor be\n      liable to You for damages, including any direct, indirect, special,\n      incidental, or consequential damages of any character arising as a\n      result of this License or out of the use or inability to use the\n      Work (including but not limited to damages for loss of goodwill,\n      work stoppage, computer failure or malfunction, or any and all\n      other commercial damages or losses), even if such Contributor\n      has been advised of the possibility of such damages.\n\n   9. Accepting Warranty or Additional Liability. While redistributing\n      the Work or Derivative Works thereof, You may choose to offer,\n      and charge a fee for, acceptance of support, warranty, indemnity,\n      or other liability obligations and/or rights consistent with this\n      License. However, in accepting such obligations, You may act only\n      on Your own behalf and on Your sole responsibility, not on behalf\n      of any other Contributor, and only if You agree to indemnify,\n      defend, and hold each Contributor harmless for any liability\n      incurred by, or claims asserted against, such Contributor by reason\n      of your accepting any such warranty or additional liability.\n\n   END OF TERMS AND CONDITIONS\n\n   APPENDIX: How to apply the Apache License to your work.\n\n      To apply the Apache License to your work, attach the following\n      boilerplate notice, with the fields enclosed by brackets \"{}\"\n      replaced with your own identifying information. (Don't include\n      the brackets!)  The text should be enclosed in the appropriate\n      comment syntax for the file format. We also recommend that a\n      file or class name and description of purpose be included on the\n      same \"printed page\" as the copyright notice for easier\n      identification within third-party archives.\n\n   Copyright {yyyy} {name of copyright owner}\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n","dependencies":{"react":"^16.3.0","redux":"^4.0.0","react-dom":"^16.3.0","redux-saga":"^0.15.6","react-redux":"^5.0.6","redux-thunk":"^2.2.0","video-react":"^0.11.2","shaka-player":"^2.4.1","babel-runtime":"^6.26.0","babel-polyfill":"^6.26.0","react-redux-saga":"^1.0.2","@material-ui/core":"^1.0.0","react-virtualized":"^9.18.5","@material-ui/icons":"^1.0.0","veritone-react-common":"^6.0.0","veritone-redux-common":"^3.7.0","veritone-oauth-helpers":"^2.1.0","redux-api-middleware-fixed":"^2.0.0"},"_hasShrinkwrap":false,"devDependencies":{"raf":"^3.4.0","jest":"^22.4.3","faker":"^4.1.0","enzyme":"^3.3.0","eslint":"^4.10.0","rimraf":"^2.6.2","rollup":"^0.55.1","webpack":"^4.0.1","cross-env":"^5.1.1","babel-core":"^6.26.0","webpack-cli":"^2.0.9","babel-loader":"^7.1.3","redux-logger":"^3.0.6","redux-devtools":"^3.4.0","@storybook/react":"v3.3.9","redux-mock-store":"^1.3.0","veritone-dev-env":"^2.0.0","rollup-plugin-url":"^1.3.0","identity-obj-proxy":"^3.0.0","redux-validate-fsa":"^0.1.2","rollup-plugin-json":"^2.3.0","babel-plugin-lodash":"^3.3.2","eslint-plugin-react":"^7.8.2","postinstall-prepare":"^1.0.1","react-test-renderer":"^16.0.0","rollup-plugin-alias":"^1.4.0","rollup-plugin-babel":"^3.0.3","eslint-plugin-import":"^2.11.0","eslint-plugin-lodash":"^2.5.0","babel-plugin-date-fns":"^0.1.0","eslint-plugin-promise":"^3.6.0","rollup-plugin-postcss":"^1.2.8","rollup-plugin-replace":"^2.0.0","@storybook/addon-knobs":"3.3.9","eslint-config-prettier":"^2.7.0","rollup-analyzer-plugin":"^1.1.1","rollup-plugin-commonjs":"^8.3.0","enzyme-adapter-react-16":"^1.0.2","rollup-plugin-node-resolve":"^3.0.2","babel-plugin-transform-runtime":"^6.23.0","redux-immutable-state-invariant":"^2.1.0","babel-plugin-add-react-displayname":"^0.0.5","babel-plugin-transform-class-properties":"^6.24.1","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-plugin-transform-export-extensions":"^6.22.0","babel-plugin-transform-object-rest-spread":"^6.26.0"},"_npmOperationalInternal":{"tmp":"tmp/veritone-widgets_6.0.1_1534445039469_0.6156764106704604","host":"s3://npm-registry-packages"}},"6.1.0":{"name":"veritone-widgets","version":"6.1.0","license":"Apache-2.0","_id":"veritone-widgets@6.1.0","maintainers":[{"name":"albertcbrown","email":"al@veritone.com"},{"name":"charliemantle","email":"charliemantle2@gmail.com"},{"name":"coolmitch","email":"robb.mitch@gmail.com"},{"name":"steveshaffer","email":"steve@shaffer.ninja"},{"name":"veritone_dev","email":"dev@veritone.com"}],"dist":{"shasum":"dbf912fcd6a8a849c2d07f65083ebf9f1a7b1796","tarball":"https://registry.npmjs.org/veritone-widgets/-/veritone-widgets-6.1.0.tgz","fileCount":184,"integrity":"sha512-wBaXwDWO5VHkTUfhGVw07Rq0NviQ03JApJ4LI3ZuQpoJ8EE18kyXUx6eu5YshwSqwUu8i2JpCFR/GQ67QB/4UQ==","signatures":[{"sig":"MEUCIQCnKE4Ea/Hv1D47BrH2MTAALzUh6U1v4hIa0WFXVsaFbAIga8tMNLeJKuT6LHk0xCMxaG+KUSdqWRuQOOHXWMbJ3F0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":25086889,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbfGNbCRA9TVsSAnZWagAA7lUP/3xp8/+na6S5asqASHv5\nQkxIbaavD9KGn1tBqKrxyO+F+jPcoHv1MSTY5wLdIDVW2Cg6tbp7bBlj/gG5\n2IW9Lkcj71yQnRX+humWyeUtgWfgC4rs1VeZVLM1PY7tlM8d3UTZVamLXAeT\ncTPJDVz5oSMir66TyKDymqYB0I8asO6aD9ThyislPkEcD+ce/TukFjlSCqO8\n7+KmJ1cluSbJzSwc4UyWpopSj8DbqFjK6/8SoEwpiPeZqdWKjgr9HUdpXzD0\nwcvZSpaLtCFfx8KnxngqceF/Z5pjrF17YeeSRMFKq+F9llXuoFPslyF3Xx1U\nsa9iAlnjo/lPyq7WAzuIXaDiT2eQe9nolMl9y+WVnz6QucHGB7Hssi86NsWA\nhXmV4+N36EhH8HI+JudEQ/HPmlHZUf73ZMMNErG1eKL5CnXwKtjAI0ExLPUL\ntoXqTh3LVPgBDnsgsqaPQiI/CBELgh4nUjexSJRZ1jeWP+IiycJwypzj/jPx\nvkTOBPaVUURPNpmAA+mpPlLXXY9qMa//ufDtRHhngnKtPyvNvRAMEaERLFBf\nXBcxqbHLwh+7z1HkF9S+NG3AkWktmC8K0d0EJQCQl+g7sKhd3h/Sf/Lfv7S4\njqb9Jp31sp9eMumRv4nUCkyy/NgumvZ2B+kvzvXEDmNzBeTm9eTfuDTrm09D\npMOK\r\n=7fYQ\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"setupFiles":["<rootDir>/test/testSuitePolyfills.js","<rootDir>/test/configureEnzyme.js"],"moduleNameMapper":{"\\.(css|scss)$":"identity-obj-proxy","\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$":"<rootDir>/test/__mocks__/fileMock.js"},"moduleDirectories":["node_modules"],"moduleFileExtensions":["js","jsx"]},"main":"dist/bundle-cjs.js","module":"dist/bundle-es.js","scripts":{"lint":"eslint src/** --ext .js --max-warnings 0","test":"jest","build":"yarn run build:es && yarn run build:cjs && yarn run build:script-tag","start":"yarn run start:widget-server; yarn run start:storybook","format":"prettier --write \"./src/**/*.{js,scss}\"","build:es":"cross-env NODE_ENV=production BABEL_ENV=production-es rollup -c rollup.config.es.js","prebuild":"yarn run clean:build","build:cjs":"cross-env NODE_ENV=production BABEL_ENV=production-cjs rollup -c rollup.config.cjs.js","test:watch":"jest --watch","build:watch":"cross-env NODE_ENV=production rollup -c --watch","clean:build":"rimraf dist","prepublishOnly":"yarn run test && yarn run lint && yarn run build","build:storybook":"NODE_ENV=production build-storybook -c .storybook -o docs-static","start:storybook":"NODE_ENV=test start-storybook -p 3000 -c .storybook","build:script-tag":"cross-env NODE_ENV=production BABEL_ENV=production-cjs webpack --config webpack.config.script-tag.js","start:widget-server":"yarn workspace veritone-widgets-server run start &"},"_npmUser":{"name":"coolmitch","email":"robb.mitch@gmail.com"},"description":"As of v5.0.0, this package exports both React \"smart components\" and framework agnostic \"widgets\" for most components. When both are available, the smart component is the default export and the widget is a named export. For example, `import FilePicker, { ","directories":{},"jsnext:main":"dist/bundle-es.js","licenseText":"                                 Apache License\n                           Version 2.0, January 2004\n                        http://www.apache.org/licenses/\n\n   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n   1. Definitions.\n\n      \"License\" shall mean the terms and conditions for use, reproduction,\n      and distribution as defined by Sections 1 through 9 of this document.\n\n      \"Licensor\" shall mean the copyright owner or entity authorized by\n      the copyright owner that is granting the License.\n\n      \"Legal Entity\" shall mean the union of the acting entity and all\n      other entities that control, are controlled by, or are under common\n      control with that entity. For the purposes of this definition,\n      \"control\" means (i) the power, direct or indirect, to cause the\n      direction or management of such entity, whether by contract or\n      otherwise, or (ii) ownership of fifty percent (50%) or more of the\n      outstanding shares, or (iii) beneficial ownership of such entity.\n\n      \"You\" (or \"Your\") shall mean an individual or Legal Entity\n      exercising permissions granted by this License.\n\n      \"Source\" form shall mean the preferred form for making modifications,\n      including but not limited to software source code, documentation\n      source, and configuration files.\n\n      \"Object\" form shall mean any form resulting from mechanical\n      transformation or translation of a Source form, including but\n      not limited to compiled object code, generated documentation,\n      and conversions to other media types.\n\n      \"Work\" shall mean the work of authorship, whether in Source or\n      Object form, made available under the License, as indicated by a\n      copyright notice that is included in or attached to the work\n      (an example is provided in the Appendix below).\n\n      \"Derivative Works\" shall mean any work, whether in Source or Object\n      form, that is based on (or derived from) the Work and for which the\n      editorial revisions, annotations, elaborations, or other modifications\n      represent, as a whole, an original work of authorship. For the purposes\n      of this License, Derivative Works shall not include works that remain\n      separable from, or merely link (or bind by name) to the interfaces of,\n      the Work and Derivative Works thereof.\n\n      \"Contribution\" shall mean any work of authorship, including\n      the original version of the Work and any modifications or additions\n      to that Work or Derivative Works thereof, that is intentionally\n      submitted to Licensor for inclusion in the Work by the copyright owner\n      or by an individual or Legal Entity authorized to submit on behalf of\n      the copyright owner. For the purposes of this definition, \"submitted\"\n      means any form of electronic, verbal, or written communication sent\n      to the Licensor or its representatives, including but not limited to\n      communication on electronic mailing lists, source code control systems,\n      and issue tracking systems that are managed by, or on behalf of, the\n      Licensor for the purpose of discussing and improving the Work, but\n      excluding communication that is conspicuously marked or otherwise\n      designated in writing by the copyright owner as \"Not a Contribution.\"\n\n      \"Contributor\" shall mean Licensor and any individual or Legal Entity\n      on behalf of whom a Contribution has been received by Licensor and\n      subsequently incorporated within the Work.\n\n   2. Grant of Copyright License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      copyright license to reproduce, prepare Derivative Works of,\n      publicly display, publicly perform, sublicense, and distribute the\n      Work and such Derivative Works in Source or Object form.\n\n   3. Grant of Patent License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      (except as stated in this section) patent license to make, have made,\n      use, offer to sell, sell, import, and otherwise transfer the Work,\n      where such license applies only to those patent claims licensable\n      by such Contributor that are necessarily infringed by their\n      Contribution(s) alone or by combination of their Contribution(s)\n      with the Work to which such Contribution(s) was submitted. If You\n      institute patent litigation against any entity (including a\n      cross-claim or counterclaim in a lawsuit) alleging that the Work\n      or a Contribution incorporated within the Work constitutes direct\n      or contributory patent infringement, then any patent licenses\n      granted to You under this License for that Work shall terminate\n      as of the date such litigation is filed.\n\n   4. Redistribution. You may reproduce and distribute copies of the\n      Work or Derivative Works thereof in any medium, with or without\n      modifications, and in Source or Object form, provided that You\n      meet the following conditions:\n\n      (a) You must give any other recipients of the Work or\n          Derivative Works a copy of this License; and\n\n      (b) You must cause any modified files to carry prominent notices\n          stating that You changed the files; and\n\n      (c) You must retain, in the Source form of any Derivative Works\n          that You distribute, all copyright, patent, trademark, and\n          attribution notices from the Source form of the Work,\n          excluding those notices that do not pertain to any part of\n          the Derivative Works; and\n\n      (d) If the Work includes a \"NOTICE\" text file as part of its\n          distribution, then any Derivative Works that You distribute must\n          include a readable copy of the attribution notices contained\n          within such NOTICE file, excluding those notices that do not\n          pertain to any part of the Derivative Works, in at least one\n          of the following places: within a NOTICE text file distributed\n          as part of the Derivative Works; within the Source form or\n          documentation, if provided along with the Derivative Works; or,\n          within a display generated by the Derivative Works, if and\n          wherever such third-party notices normally appear. The contents\n          of the NOTICE file are for informational purposes only and\n          do not modify the License. You may add Your own attribution\n          notices within Derivative Works that You distribute, alongside\n          or as an addendum to the NOTICE text from the Work, provided\n          that such additional attribution notices cannot be construed\n          as modifying the License.\n\n      You may add Your own copyright statement to Your modifications and\n      may provide additional or different license terms and conditions\n      for use, reproduction, or distribution of Your modifications, or\n      for any such Derivative Works as a whole, provided Your use,\n      reproduction, and distribution of the Work otherwise complies with\n      the conditions stated in this License.\n\n   5. Submission of Contributions. Unless You explicitly state otherwise,\n      any Contribution intentionally submitted for inclusion in the Work\n      by You to the Licensor shall be under the terms and conditions of\n      this License, without any additional terms or conditions.\n      Notwithstanding the above, nothing herein shall supersede or modify\n      the terms of any separate license agreement you may have executed\n      with Licensor regarding such Contributions.\n\n   6. Trademarks. This License does not grant permission to use the trade\n      names, trademarks, service marks, or product names of the Licensor,\n      except as required for reasonable and customary use in describing the\n      origin of the Work and reproducing the content of the NOTICE file.\n\n   7. Disclaimer of Warranty. Unless required by applicable law or\n      agreed to in writing, Licensor provides the Work (and each\n      Contributor provides its Contributions) on an \"AS IS\" BASIS,\n      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n      implied, including, without limitation, any warranties or conditions\n      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n      PARTICULAR PURPOSE. You are solely responsible for determining the\n      appropriateness of using or redistributing the Work and assume any\n      risks associated with Your exercise of permissions under this License.\n\n   8. Limitation of Liability. In no event and under no legal theory,\n      whether in tort (including negligence), contract, or otherwise,\n      unless required by applicable law (such as deliberate and grossly\n      negligent acts) or agreed to in writing, shall any Contributor be\n      liable to You for damages, including any direct, indirect, special,\n      incidental, or consequential damages of any character arising as a\n      result of this License or out of the use or inability to use the\n      Work (including but not limited to damages for loss of goodwill,\n      work stoppage, computer failure or malfunction, or any and all\n      other commercial damages or losses), even if such Contributor\n      has been advised of the possibility of such damages.\n\n   9. Accepting Warranty or Additional Liability. While redistributing\n      the Work or Derivative Works thereof, You may choose to offer,\n      and charge a fee for, acceptance of support, warranty, indemnity,\n      or other liability obligations and/or rights consistent with this\n      License. However, in accepting such obligations, You may act only\n      on Your own behalf and on Your sole responsibility, not on behalf\n      of any other Contributor, and only if You agree to indemnify,\n      defend, and hold each Contributor harmless for any liability\n      incurred by, or claims asserted against, such Contributor by reason\n      of your accepting any such warranty or additional liability.\n\n   END OF TERMS AND CONDITIONS\n\n   APPENDIX: How to apply the Apache License to your work.\n\n      To apply the Apache License to your work, attach the following\n      boilerplate notice, with the fields enclosed by brackets \"{}\"\n      replaced with your own identifying information. (Don't include\n      the brackets!)  The text should be enclosed in the appropriate\n      comment syntax for the file format. We also recommend that a\n      file or class name and description of purpose be included on the\n      same \"printed page\" as the copyright notice for easier\n      identification within third-party archives.\n\n   Copyright {yyyy} {name of copyright owner}\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n","dependencies":{"react":"^16.3.0","redux":"^4.0.0","react-dom":"^16.3.0","redux-saga":"^0.15.6","react-redux":"^5.0.6","redux-thunk":"^2.2.0","video-react":"^0.11.2","shaka-player":"^2.4.1","babel-runtime":"^6.26.0","babel-polyfill":"^6.26.0","react-redux-saga":"^1.0.2","@material-ui/core":"^1.0.0","react-virtualized":"^9.18.5","@material-ui/icons":"^1.0.0","veritone-react-common":"^6.1.0","veritone-redux-common":"^3.7.0","veritone-oauth-helpers":"^2.1.0","redux-api-middleware-fixed":"^2.0.0"},"_hasShrinkwrap":false,"devDependencies":{"raf":"^3.4.0","jest":"^22.4.3","faker":"^4.1.0","enzyme":"^3.4.4","eslint":"^4.10.0","rimraf":"^2.6.2","rollup":"^0.55.1","webpack":"^4.0.1","cross-env":"^5.1.1","babel-core":"^6.26.0","webpack-cli":"^2.0.9","babel-loader":"^7.1.3","redux-logger":"^3.0.6","redux-devtools":"^3.4.0","@storybook/react":"v3.3.9","redux-mock-store":"^1.3.0","veritone-dev-env":"^2.0.0","rollup-plugin-url":"^1.3.0","identity-obj-proxy":"^3.0.0","redux-validate-fsa":"^0.1.2","rollup-plugin-json":"^2.3.0","babel-plugin-lodash":"^3.3.2","eslint-plugin-react":"^7.8.2","react-test-renderer":"^16.0.0","rollup-plugin-alias":"^1.4.0","rollup-plugin-babel":"^3.0.3","eslint-plugin-import":"^2.11.0","eslint-plugin-lodash":"^2.5.0","babel-plugin-date-fns":"^0.1.0","eslint-plugin-promise":"^3.6.0","rollup-plugin-postcss":"^1.2.8","rollup-plugin-replace":"^2.0.0","@storybook/addon-knobs":"3.3.9","eslint-config-prettier":"^2.7.0","rollup-analyzer-plugin":"^1.1.1","rollup-plugin-commonjs":"^8.3.0","enzyme-adapter-react-16.3":"1.0.0","rollup-plugin-node-resolve":"^3.0.2","babel-plugin-transform-runtime":"^6.23.0","redux-immutable-state-invariant":"^2.1.0","babel-plugin-add-react-displayname":"^0.0.5","babel-plugin-transform-class-properties":"^6.24.1","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-plugin-transform-export-extensions":"^6.22.0","babel-plugin-transform-object-rest-spread":"^6.26.0"},"_npmOperationalInternal":{"tmp":"tmp/veritone-widgets_6.1.0_1534878554582_0.1425336277484921","host":"s3://npm-registry-packages"}},"6.1.1":{"name":"veritone-widgets","version":"6.1.1","license":"Apache-2.0","_id":"veritone-widgets@6.1.1","maintainers":[{"name":"albertcbrown","email":"al@veritone.com"},{"name":"charliemantle","email":"charliemantle2@gmail.com"},{"name":"coolmitch","email":"robb.mitch@gmail.com"},{"name":"steveshaffer","email":"steve@shaffer.ninja"},{"name":"veritone_dev","email":"dev@veritone.com"}],"dist":{"shasum":"071cee992f57487575d676bb7b653e6f54cde594","tarball":"https://registry.npmjs.org/veritone-widgets/-/veritone-widgets-6.1.1.tgz","fileCount":184,"integrity":"sha512-kYcI/3aYg6xwOEJpgZmTXlR+HtEItCDjsb4DJhkdqdMKx5RuLQQLizxjJtq7MT4JMxHRhU58NCY81WUEQkdRwA==","signatures":[{"sig":"MEYCIQDatJSFGjApRcGawqB5dNt/ZmlzNS+rHwF5p9iFRzpR/wIhAOxUasVxKphfqB/tNwe9oEYv9PYZsIG4CJmCj+T7ewzL","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":25101947,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbfeuCCRA9TVsSAnZWagAA7gwP/0NUylugyFR314Fv8ZcM\nczmrIfAWwD8NQIANP7trDXW5eeHL2kWYay7B9FGu+deNgTLP+w+GCczM/8l0\nSI/llSrrMfqofkkswZXT6+p28MbsA+b8bwA4eXaN6aO1aiqT2FzKEIbCfDf6\nN5Dd/hfl2uKSrqiu3Mkqtu8DSyZoosUQxalIPG/mMSk+GXWckgPQKCftLXgT\nw6dDxUpRKRn8ncDw4UJ6LoRVyCI5g0RIGdiB0jKOXFegZd8kvpiHjklTIj2G\nSm1owyjPQP8cYJaC+j0pWTwDLFkaoj+VC08dL0NRgxdZJ82IVx/BbLq2V1qr\nm2OmGT955QH2FkcI5ZSEm/nFkJ544l+1p27H66uq05evx6N9ZZjoXkXBxR8y\nZv9A7YcrTjauxF9sV7ZOEdnBWdETJLMVyMtcyZYkLpwRALPgs8Znfd/UZ8Gc\n0IycH2xYrWy/NJVlTfsjeTjRprHI7nDCsGZriOVyHsbj2y1geEvhIXvQF1mu\nWzpLkaDE4vrW5HFeSpWEMEHQqAeqqXwYk4zqkg+q3VJXAo5lUZ4rfvMQH0Qs\npPsKPev82FrZVSbLTC08bGSggu2IkuqI0bjE19GqhYrEntCL2XcOXX5U0d9c\nml56/CPpuWOu7bUKHbWR8zXhQ308QvMZ9BX1PUAI1p8CJ0H4bwHBLN8ljhhM\n8YHO\r\n=vK+O\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"setupFiles":["<rootDir>/test/testSuitePolyfills.js","<rootDir>/test/configureEnzyme.js"],"moduleNameMapper":{"\\.(css|scss)$":"identity-obj-proxy","\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$":"<rootDir>/test/__mocks__/fileMock.js"},"moduleDirectories":["node_modules"],"moduleFileExtensions":["js","jsx"]},"main":"dist/bundle-cjs.js","module":"dist/bundle-es.js","scripts":{"lint":"eslint src/** --ext .js --max-warnings 0","test":"jest","build":"yarn run build:es && yarn run build:cjs && yarn run build:script-tag","start":"yarn run start:widget-server; yarn run start:storybook","format":"prettier --write \"./src/**/*.{js,scss}\"","build:es":"cross-env NODE_ENV=production BABEL_ENV=production-es rollup -c rollup.config.es.js","prebuild":"yarn run clean:build","build:cjs":"cross-env NODE_ENV=production BABEL_ENV=production-cjs rollup -c rollup.config.cjs.js","test:watch":"jest --watch","build:watch":"cross-env NODE_ENV=production rollup -c --watch","clean:build":"rimraf dist","prepublishOnly":"yarn run test && yarn run lint && yarn run build","build:storybook":"NODE_ENV=production build-storybook -c .storybook -o docs-static","start:storybook":"NODE_ENV=test start-storybook -p 3000 -c .storybook","build:script-tag":"cross-env NODE_ENV=production BABEL_ENV=production-cjs webpack --config webpack.config.script-tag.js","start:widget-server":"yarn workspace veritone-widgets-server run start &"},"_npmUser":{"name":"coolmitch","email":"robb.mitch@gmail.com"},"description":"As of v5.0.0, this package exports both React \"smart components\" and framework agnostic \"widgets\" for most components. When both are available, the smart component is the default export and the widget is a named export. For example, `import FilePicker, { ","directories":{},"jsnext:main":"dist/bundle-es.js","licenseText":"                                 Apache License\n                           Version 2.0, January 2004\n                        http://www.apache.org/licenses/\n\n   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n   1. Definitions.\n\n      \"License\" shall mean the terms and conditions for use, reproduction,\n      and distribution as defined by Sections 1 through 9 of this document.\n\n      \"Licensor\" shall mean the copyright owner or entity authorized by\n      the copyright owner that is granting the License.\n\n      \"Legal Entity\" shall mean the union of the acting entity and all\n      other entities that control, are controlled by, or are under common\n      control with that entity. For the purposes of this definition,\n      \"control\" means (i) the power, direct or indirect, to cause the\n      direction or management of such entity, whether by contract or\n      otherwise, or (ii) ownership of fifty percent (50%) or more of the\n      outstanding shares, or (iii) beneficial ownership of such entity.\n\n      \"You\" (or \"Your\") shall mean an individual or Legal Entity\n      exercising permissions granted by this License.\n\n      \"Source\" form shall mean the preferred form for making modifications,\n      including but not limited to software source code, documentation\n      source, and configuration files.\n\n      \"Object\" form shall mean any form resulting from mechanical\n      transformation or translation of a Source form, including but\n      not limited to compiled object code, generated documentation,\n      and conversions to other media types.\n\n      \"Work\" shall mean the work of authorship, whether in Source or\n      Object form, made available under the License, as indicated by a\n      copyright notice that is included in or attached to the work\n      (an example is provided in the Appendix below).\n\n      \"Derivative Works\" shall mean any work, whether in Source or Object\n      form, that is based on (or derived from) the Work and for which the\n      editorial revisions, annotations, elaborations, or other modifications\n      represent, as a whole, an original work of authorship. For the purposes\n      of this License, Derivative Works shall not include works that remain\n      separable from, or merely link (or bind by name) to the interfaces of,\n      the Work and Derivative Works thereof.\n\n      \"Contribution\" shall mean any work of authorship, including\n      the original version of the Work and any modifications or additions\n      to that Work or Derivative Works thereof, that is intentionally\n      submitted to Licensor for inclusion in the Work by the copyright owner\n      or by an individual or Legal Entity authorized to submit on behalf of\n      the copyright owner. For the purposes of this definition, \"submitted\"\n      means any form of electronic, verbal, or written communication sent\n      to the Licensor or its representatives, including but not limited to\n      communication on electronic mailing lists, source code control systems,\n      and issue tracking systems that are managed by, or on behalf of, the\n      Licensor for the purpose of discussing and improving the Work, but\n      excluding communication that is conspicuously marked or otherwise\n      designated in writing by the copyright owner as \"Not a Contribution.\"\n\n      \"Contributor\" shall mean Licensor and any individual or Legal Entity\n      on behalf of whom a Contribution has been received by Licensor and\n      subsequently incorporated within the Work.\n\n   2. Grant of Copyright License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      copyright license to reproduce, prepare Derivative Works of,\n      publicly display, publicly perform, sublicense, and distribute the\n      Work and such Derivative Works in Source or Object form.\n\n   3. Grant of Patent License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      (except as stated in this section) patent license to make, have made,\n      use, offer to sell, sell, import, and otherwise transfer the Work,\n      where such license applies only to those patent claims licensable\n      by such Contributor that are necessarily infringed by their\n      Contribution(s) alone or by combination of their Contribution(s)\n      with the Work to which such Contribution(s) was submitted. If You\n      institute patent litigation against any entity (including a\n      cross-claim or counterclaim in a lawsuit) alleging that the Work\n      or a Contribution incorporated within the Work constitutes direct\n      or contributory patent infringement, then any patent licenses\n      granted to You under this License for that Work shall terminate\n      as of the date such litigation is filed.\n\n   4. Redistribution. You may reproduce and distribute copies of the\n      Work or Derivative Works thereof in any medium, with or without\n      modifications, and in Source or Object form, provided that You\n      meet the following conditions:\n\n      (a) You must give any other recipients of the Work or\n          Derivative Works a copy of this License; and\n\n      (b) You must cause any modified files to carry prominent notices\n          stating that You changed the files; and\n\n      (c) You must retain, in the Source form of any Derivative Works\n          that You distribute, all copyright, patent, trademark, and\n          attribution notices from the Source form of the Work,\n          excluding those notices that do not pertain to any part of\n          the Derivative Works; and\n\n      (d) If the Work includes a \"NOTICE\" text file as part of its\n          distribution, then any Derivative Works that You distribute must\n          include a readable copy of the attribution notices contained\n          within such NOTICE file, excluding those notices that do not\n          pertain to any part of the Derivative Works, in at least one\n          of the following places: within a NOTICE text file distributed\n          as part of the Derivative Works; within the Source form or\n          documentation, if provided along with the Derivative Works; or,\n          within a display generated by the Derivative Works, if and\n          wherever such third-party notices normally appear. The contents\n          of the NOTICE file are for informational purposes only and\n          do not modify the License. You may add Your own attribution\n          notices within Derivative Works that You distribute, alongside\n          or as an addendum to the NOTICE text from the Work, provided\n          that such additional attribution notices cannot be construed\n          as modifying the License.\n\n      You may add Your own copyright statement to Your modifications and\n      may provide additional or different license terms and conditions\n      for use, reproduction, or distribution of Your modifications, or\n      for any such Derivative Works as a whole, provided Your use,\n      reproduction, and distribution of the Work otherwise complies with\n      the conditions stated in this License.\n\n   5. Submission of Contributions. Unless You explicitly state otherwise,\n      any Contribution intentionally submitted for inclusion in the Work\n      by You to the Licensor shall be under the terms and conditions of\n      this License, without any additional terms or conditions.\n      Notwithstanding the above, nothing herein shall supersede or modify\n      the terms of any separate license agreement you may have executed\n      with Licensor regarding such Contributions.\n\n   6. Trademarks. This License does not grant permission to use the trade\n      names, trademarks, service marks, or product names of the Licensor,\n      except as required for reasonable and customary use in describing the\n      origin of the Work and reproducing the content of the NOTICE file.\n\n   7. Disclaimer of Warranty. Unless required by applicable law or\n      agreed to in writing, Licensor provides the Work (and each\n      Contributor provides its Contributions) on an \"AS IS\" BASIS,\n      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n      implied, including, without limitation, any warranties or conditions\n      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n      PARTICULAR PURPOSE. You are solely responsible for determining the\n      appropriateness of using or redistributing the Work and assume any\n      risks associated with Your exercise of permissions under this License.\n\n   8. Limitation of Liability. In no event and under no legal theory,\n      whether in tort (including negligence), contract, or otherwise,\n      unless required by applicable law (such as deliberate and grossly\n      negligent acts) or agreed to in writing, shall any Contributor be\n      liable to You for damages, including any direct, indirect, special,\n      incidental, or consequential damages of any character arising as a\n      result of this License or out of the use or inability to use the\n      Work (including but not limited to damages for loss of goodwill,\n      work stoppage, computer failure or malfunction, or any and all\n      other commercial damages or losses), even if such Contributor\n      has been advised of the possibility of such damages.\n\n   9. Accepting Warranty or Additional Liability. While redistributing\n      the Work or Derivative Works thereof, You may choose to offer,\n      and charge a fee for, acceptance of support, warranty, indemnity,\n      or other liability obligations and/or rights consistent with this\n      License. However, in accepting such obligations, You may act only\n      on Your own behalf and on Your sole responsibility, not on behalf\n      of any other Contributor, and only if You agree to indemnify,\n      defend, and hold each Contributor harmless for any liability\n      incurred by, or claims asserted against, such Contributor by reason\n      of your accepting any such warranty or additional liability.\n\n   END OF TERMS AND CONDITIONS\n\n   APPENDIX: How to apply the Apache License to your work.\n\n      To apply the Apache License to your work, attach the following\n      boilerplate notice, with the fields enclosed by brackets \"{}\"\n      replaced with your own identifying information. (Don't include\n      the brackets!)  The text should be enclosed in the appropriate\n      comment syntax for the file format. We also recommend that a\n      file or class name and description of purpose be included on the\n      same \"printed page\" as the copyright notice for easier\n      identification within third-party archives.\n\n   Copyright {yyyy} {name of copyright owner}\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n","dependencies":{"react":"^16.3.0","redux":"^4.0.0","react-dom":"^16.3.0","redux-saga":"^0.15.6","react-redux":"^5.0.6","redux-thunk":"^2.2.0","video-react":"~0.13.0","shaka-player":"^2.4.1","babel-runtime":"^6.26.0","babel-polyfill":"^6.26.0","react-redux-saga":"^1.0.2","@material-ui/core":"^1.0.0","react-virtualized":"^9.18.5","@material-ui/icons":"^1.0.0","veritone-react-common":"^6.1.0","veritone-redux-common":"^3.7.0","veritone-oauth-helpers":"^2.1.0","redux-api-middleware-fixed":"^2.0.0"},"_hasShrinkwrap":false,"devDependencies":{"raf":"^3.4.0","jest":"^22.4.3","faker":"^4.1.0","enzyme":"^3.4.4","eslint":"^4.10.0","rimraf":"^2.6.2","rollup":"^0.55.1","webpack":"^4.0.1","cross-env":"^5.1.1","node-sass":"^4.7.2","babel-core":"^6.26.0","url-loader":"^0.6.2","sass-loader":"^6.0.6","webpack-cli":"^2.0.9","babel-loader":"^7.1.3","redux-logger":"^3.0.6","redux-devtools":"^3.4.0","@storybook/react":"v3.3.9","redux-mock-store":"^1.3.0","veritone-dev-env":"^2.0.0","rollup-plugin-url":"^1.3.0","identity-obj-proxy":"^3.0.0","redux-validate-fsa":"^0.1.2","rollup-plugin-json":"^2.3.0","babel-plugin-lodash":"^3.3.2","eslint-plugin-react":"^7.8.2","react-test-renderer":"^16.0.0","rollup-plugin-alias":"^1.4.0","rollup-plugin-babel":"^3.0.3","eslint-plugin-import":"^2.11.0","eslint-plugin-lodash":"^2.5.0","babel-plugin-date-fns":"^0.1.0","eslint-plugin-promise":"^3.6.0","rollup-plugin-postcss":"^1.2.8","rollup-plugin-replace":"^2.0.0","@storybook/addon-knobs":"3.3.9","eslint-config-prettier":"^2.7.0","rollup-analyzer-plugin":"^1.1.1","rollup-plugin-commonjs":"^8.3.0","enzyme-adapter-react-16.3":"1.0.0","rollup-plugin-node-resolve":"^3.0.2","babel-plugin-external-helpers":"^6.22.0","babel-plugin-transform-runtime":"^6.23.0","redux-immutable-state-invariant":"^2.1.0","babel-plugin-add-react-displayname":"^0.0.5","babel-plugin-transform-class-properties":"^6.24.1","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-plugin-transform-export-extensions":"^6.22.0","babel-plugin-transform-object-rest-spread":"^6.26.0"},"_npmOperationalInternal":{"tmp":"tmp/veritone-widgets_6.1.1_1534978945335_0.4905202335565575","host":"s3://npm-registry-packages"}},"6.2.0":{"name":"veritone-widgets","version":"6.2.0","license":"Apache-2.0","_id":"veritone-widgets@6.2.0","maintainers":[{"name":"albertcbrown","email":"al@veritone.com"},{"name":"charliemantle","email":"charliemantle2@gmail.com"},{"name":"coolmitch","email":"robb.mitch@gmail.com"},{"name":"steveshaffer","email":"steve@shaffer.ninja"},{"name":"veritone_dev","email":"dev@veritone.com"}],"dist":{"shasum":"8b5e57f59adfcd00fa8668b64b8e38c1625c1477","tarball":"https://registry.npmjs.org/veritone-widgets/-/veritone-widgets-6.2.0.tgz","fileCount":184,"integrity":"sha512-aW8/CCgbOWp+4xZx80gozzczne2SOjdoxi8Z2qnSI5PD5/lD/suOhWUxEp6IdjdIQVgf9hnkdx22uszBqnS13g==","signatures":[{"sig":"MEUCIHjxTmXii9j2vgvGabkk3+KBJlFuSUbey0P+Dhi8EsUsAiEAmRHu3VQZymDfOgaFrZhUJGyYAXFV7lkcEo0if7vkKFU=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":25107450,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbfxILCRA9TVsSAnZWagAAWhMP/0TnuE7dX5R5xkU/qvJn\nw0iVTSQj5wHqQtzrcq9CbtW+KubpaBWvrgg9MRTkwX5AU+oUX870JxuKrMy5\nbUWWoPzE895oCGr3hpd8q7SXr+q0+SIzzCBcDMr1N++XBdeQ7Vmd7ZjQkPA/\ngWeymDMKfN0I8Br7yuRpB6PNDMm/AVDB1nOnQFBs3ZIsn3jp4nxZyiwvCGfQ\nZAbYZcERjO3+KGmMV/A2AQU5d32F+AnW/YRcz4p4msg+W62GaXHtOd/N21ZR\nKJY4MLXOyLQJIDtVhi13Q3pbVh3lQrgjquW2Ctale4S9zzg1UTetz1/H7csZ\npztogGcqvf+9dnUrkKZQT/xNDAPQmCeRT5NRmFoGGWvPP2wFY0XGLmsNiqrR\nngdWh05r4Gpcp5YKBHWKXGueSsZCqNlpbTHXJz/Zt+Cr1J7JtTu0SzPpyeSu\nh+5BgRscAuIAY03qyY6CCo4KgT3MI9w2je4jMynMcOuN1UDhryCesCurQ5Sl\nDfTLXMQY1vrEQ5uJLvnrSkM3zpEcb/JQA9QlwU1EjnpFU+4/0ptqjf+JRSZ3\n3RGHXVZ/onpzf0OOrMW6bcv5Qutwtsp7IagvSEmUPrtFAZMuC+MP4s1p/SGk\ngG1LN3j17k2IetVDjZmb/7SlkSlenju5NC4i2uv82qYfqJTYsPAwJEh0CsoQ\nM3Gr\r\n=TxSJ\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"setupFiles":["<rootDir>/test/testSuitePolyfills.js","<rootDir>/test/configureEnzyme.js"],"moduleNameMapper":{"\\.(css|scss)$":"identity-obj-proxy","\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$":"<rootDir>/test/__mocks__/fileMock.js"},"moduleDirectories":["node_modules"],"moduleFileExtensions":["js","jsx"]},"main":"dist/bundle-cjs.js","module":"dist/bundle-es.js","scripts":{"lint":"eslint src/** --ext .js --max-warnings 0","test":"jest","build":"yarn run build:es && yarn run build:cjs && yarn run build:script-tag","start":"yarn run start:widget-server; yarn run start:storybook","format":"prettier --write \"./src/**/*.{js,scss}\"","build:es":"cross-env NODE_ENV=production BABEL_ENV=production-es rollup -c rollup.config.es.js","prebuild":"yarn run clean:build","build:cjs":"cross-env NODE_ENV=production BABEL_ENV=production-cjs rollup -c rollup.config.cjs.js","test:watch":"jest --watch","build:watch":"cross-env NODE_ENV=production rollup -c --watch","clean:build":"rimraf dist","prepublishOnly":"yarn run test && yarn run lint && yarn run build","build:storybook":"NODE_ENV=production build-storybook -c .storybook -o docs-static","start:storybook":"NODE_ENV=test start-storybook -p 3000 -c .storybook","build:script-tag":"cross-env NODE_ENV=production BABEL_ENV=production-cjs webpack --config webpack.config.script-tag.js","start:widget-server":"yarn workspace veritone-widgets-server run start &"},"_npmUser":{"name":"coolmitch","email":"robb.mitch@gmail.com"},"description":"As of v5.0.0, this package exports both React \"smart components\" and framework agnostic \"widgets\" for most components. When both are available, the smart component is the default export and the widget is a named export. For example, `import FilePicker, { ","directories":{},"jsnext:main":"dist/bundle-es.js","licenseText":"                                 Apache License\n                           Version 2.0, January 2004\n                        http://www.apache.org/licenses/\n\n   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n   1. Definitions.\n\n      \"License\" shall mean the terms and conditions for use, reproduction,\n      and distribution as defined by Sections 1 through 9 of this document.\n\n      \"Licensor\" shall mean the copyright owner or entity authorized by\n      the copyright owner that is granting the License.\n\n      \"Legal Entity\" shall mean the union of the acting entity and all\n      other entities that control, are controlled by, or are under common\n      control with that entity. For the purposes of this definition,\n      \"control\" means (i) the power, direct or indirect, to cause the\n      direction or management of such entity, whether by contract or\n      otherwise, or (ii) ownership of fifty percent (50%) or more of the\n      outstanding shares, or (iii) beneficial ownership of such entity.\n\n      \"You\" (or \"Your\") shall mean an individual or Legal Entity\n      exercising permissions granted by this License.\n\n      \"Source\" form shall mean the preferred form for making modifications,\n      including but not limited to software source code, documentation\n      source, and configuration files.\n\n      \"Object\" form shall mean any form resulting from mechanical\n      transformation or translation of a Source form, including but\n      not limited to compiled object code, generated documentation,\n      and conversions to other media types.\n\n      \"Work\" shall mean the work of authorship, whether in Source or\n      Object form, made available under the License, as indicated by a\n      copyright notice that is included in or attached to the work\n      (an example is provided in the Appendix below).\n\n      \"Derivative Works\" shall mean any work, whether in Source or Object\n      form, that is based on (or derived from) the Work and for which the\n      editorial revisions, annotations, elaborations, or other modifications\n      represent, as a whole, an original work of authorship. For the purposes\n      of this License, Derivative Works shall not include works that remain\n      separable from, or merely link (or bind by name) to the interfaces of,\n      the Work and Derivative Works thereof.\n\n      \"Contribution\" shall mean any work of authorship, including\n      the original version of the Work and any modifications or additions\n      to that Work or Derivative Works thereof, that is intentionally\n      submitted to Licensor for inclusion in the Work by the copyright owner\n      or by an individual or Legal Entity authorized to submit on behalf of\n      the copyright owner. For the purposes of this definition, \"submitted\"\n      means any form of electronic, verbal, or written communication sent\n      to the Licensor or its representatives, including but not limited to\n      communication on electronic mailing lists, source code control systems,\n      and issue tracking systems that are managed by, or on behalf of, the\n      Licensor for the purpose of discussing and improving the Work, but\n      excluding communication that is conspicuously marked or otherwise\n      designated in writing by the copyright owner as \"Not a Contribution.\"\n\n      \"Contributor\" shall mean Licensor and any individual or Legal Entity\n      on behalf of whom a Contribution has been received by Licensor and\n      subsequently incorporated within the Work.\n\n   2. Grant of Copyright License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      copyright license to reproduce, prepare Derivative Works of,\n      publicly display, publicly perform, sublicense, and distribute the\n      Work and such Derivative Works in Source or Object form.\n\n   3. Grant of Patent License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      (except as stated in this section) patent license to make, have made,\n      use, offer to sell, sell, import, and otherwise transfer the Work,\n      where such license applies only to those patent claims licensable\n      by such Contributor that are necessarily infringed by their\n      Contribution(s) alone or by combination of their Contribution(s)\n      with the Work to which such Contribution(s) was submitted. If You\n      institute patent litigation against any entity (including a\n      cross-claim or counterclaim in a lawsuit) alleging that the Work\n      or a Contribution incorporated within the Work constitutes direct\n      or contributory patent infringement, then any patent licenses\n      granted to You under this License for that Work shall terminate\n      as of the date such litigation is filed.\n\n   4. Redistribution. You may reproduce and distribute copies of the\n      Work or Derivative Works thereof in any medium, with or without\n      modifications, and in Source or Object form, provided that You\n      meet the following conditions:\n\n      (a) You must give any other recipients of the Work or\n          Derivative Works a copy of this License; and\n\n      (b) You must cause any modified files to carry prominent notices\n          stating that You changed the files; and\n\n      (c) You must retain, in the Source form of any Derivative Works\n          that You distribute, all copyright, patent, trademark, and\n          attribution notices from the Source form of the Work,\n          excluding those notices that do not pertain to any part of\n          the Derivative Works; and\n\n      (d) If the Work includes a \"NOTICE\" text file as part of its\n          distribution, then any Derivative Works that You distribute must\n          include a readable copy of the attribution notices contained\n          within such NOTICE file, excluding those notices that do not\n          pertain to any part of the Derivative Works, in at least one\n          of the following places: within a NOTICE text file distributed\n          as part of the Derivative Works; within the Source form or\n          documentation, if provided along with the Derivative Works; or,\n          within a display generated by the Derivative Works, if and\n          wherever such third-party notices normally appear. The contents\n          of the NOTICE file are for informational purposes only and\n          do not modify the License. You may add Your own attribution\n          notices within Derivative Works that You distribute, alongside\n          or as an addendum to the NOTICE text from the Work, provided\n          that such additional attribution notices cannot be construed\n          as modifying the License.\n\n      You may add Your own copyright statement to Your modifications and\n      may provide additional or different license terms and conditions\n      for use, reproduction, or distribution of Your modifications, or\n      for any such Derivative Works as a whole, provided Your use,\n      reproduction, and distribution of the Work otherwise complies with\n      the conditions stated in this License.\n\n   5. Submission of Contributions. Unless You explicitly state otherwise,\n      any Contribution intentionally submitted for inclusion in the Work\n      by You to the Licensor shall be under the terms and conditions of\n      this License, without any additional terms or conditions.\n      Notwithstanding the above, nothing herein shall supersede or modify\n      the terms of any separate license agreement you may have executed\n      with Licensor regarding such Contributions.\n\n   6. Trademarks. This License does not grant permission to use the trade\n      names, trademarks, service marks, or product names of the Licensor,\n      except as required for reasonable and customary use in describing the\n      origin of the Work and reproducing the content of the NOTICE file.\n\n   7. Disclaimer of Warranty. Unless required by applicable law or\n      agreed to in writing, Licensor provides the Work (and each\n      Contributor provides its Contributions) on an \"AS IS\" BASIS,\n      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n      implied, including, without limitation, any warranties or conditions\n      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n      PARTICULAR PURPOSE. You are solely responsible for determining the\n      appropriateness of using or redistributing the Work and assume any\n      risks associated with Your exercise of permissions under this License.\n\n   8. Limitation of Liability. In no event and under no legal theory,\n      whether in tort (including negligence), contract, or otherwise,\n      unless required by applicable law (such as deliberate and grossly\n      negligent acts) or agreed to in writing, shall any Contributor be\n      liable to You for damages, including any direct, indirect, special,\n      incidental, or consequential damages of any character arising as a\n      result of this License or out of the use or inability to use the\n      Work (including but not limited to damages for loss of goodwill,\n      work stoppage, computer failure or malfunction, or any and all\n      other commercial damages or losses), even if such Contributor\n      has been advised of the possibility of such damages.\n\n   9. Accepting Warranty or Additional Liability. While redistributing\n      the Work or Derivative Works thereof, You may choose to offer,\n      and charge a fee for, acceptance of support, warranty, indemnity,\n      or other liability obligations and/or rights consistent with this\n      License. However, in accepting such obligations, You may act only\n      on Your own behalf and on Your sole responsibility, not on behalf\n      of any other Contributor, and only if You agree to indemnify,\n      defend, and hold each Contributor harmless for any liability\n      incurred by, or claims asserted against, such Contributor by reason\n      of your accepting any such warranty or additional liability.\n\n   END OF TERMS AND CONDITIONS\n\n   APPENDIX: How to apply the Apache License to your work.\n\n      To apply the Apache License to your work, attach the following\n      boilerplate notice, with the fields enclosed by brackets \"{}\"\n      replaced with your own identifying information. (Don't include\n      the brackets!)  The text should be enclosed in the appropriate\n      comment syntax for the file format. We also recommend that a\n      file or class name and description of purpose be included on the\n      same \"printed page\" as the copyright notice for easier\n      identification within third-party archives.\n\n   Copyright {yyyy} {name of copyright owner}\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n","dependencies":{"react":"^16.3.0","redux":"^4.0.0","react-dom":"^16.3.0","redux-saga":"^0.15.6","react-redux":"^5.0.6","redux-thunk":"^2.2.0","video-react":"~0.13.0","shaka-player":"^2.4.1","babel-runtime":"^6.26.0","babel-polyfill":"^6.26.0","react-redux-saga":"^1.0.2","@material-ui/core":"^1.0.0","react-virtualized":"^9.18.5","@material-ui/icons":"^1.0.0","veritone-react-common":"^6.2.0","veritone-redux-common":"^3.7.0","veritone-oauth-helpers":"^2.1.0","redux-api-middleware-fixed":"^2.0.0"},"_hasShrinkwrap":false,"devDependencies":{"raf":"^3.4.0","jest":"^22.4.3","faker":"^4.1.0","enzyme":"^3.4.4","eslint":"^4.10.0","rimraf":"^2.6.2","rollup":"^0.55.1","webpack":"^4.0.1","cross-env":"^5.1.1","node-sass":"^4.7.2","babel-core":"^6.26.0","url-loader":"^0.6.2","sass-loader":"^6.0.6","webpack-cli":"^2.0.9","babel-loader":"^7.1.3","redux-logger":"^3.0.6","redux-devtools":"^3.4.0","@storybook/react":"v3.3.9","redux-mock-store":"^1.3.0","veritone-dev-env":"^2.0.0","rollup-plugin-url":"^1.3.0","identity-obj-proxy":"^3.0.0","redux-validate-fsa":"^0.1.2","rollup-plugin-json":"^2.3.0","babel-plugin-lodash":"^3.3.2","eslint-plugin-react":"^7.8.2","react-test-renderer":"^16.0.0","rollup-plugin-alias":"^1.4.0","rollup-plugin-babel":"^3.0.3","eslint-plugin-import":"^2.11.0","eslint-plugin-lodash":"^2.5.0","babel-plugin-date-fns":"^0.1.0","eslint-plugin-promise":"^3.6.0","rollup-plugin-postcss":"^1.2.8","rollup-plugin-replace":"^2.0.0","@storybook/addon-knobs":"3.3.9","eslint-config-prettier":"^2.7.0","rollup-analyzer-plugin":"^1.1.1","rollup-plugin-commonjs":"^8.3.0","enzyme-adapter-react-16.3":"1.0.0","rollup-plugin-node-resolve":"^3.0.2","babel-plugin-external-helpers":"^6.22.0","babel-plugin-transform-runtime":"^6.23.0","redux-immutable-state-invariant":"^2.1.0","babel-plugin-add-react-displayname":"^0.0.5","babel-plugin-transform-class-properties":"^6.24.1","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-plugin-transform-export-extensions":"^6.22.0","babel-plugin-transform-object-rest-spread":"^6.26.0"},"_npmOperationalInternal":{"tmp":"tmp/veritone-widgets_6.2.0_1535054347002_0.2951538726310745","host":"s3://npm-registry-packages"}},"6.3.0":{"name":"veritone-widgets","version":"6.3.0","license":"Apache-2.0","_id":"veritone-widgets@6.3.0","maintainers":[{"name":"albertcbrown","email":"al@veritone.com"},{"name":"charliemantle","email":"charliemantle2@gmail.com"},{"name":"coolmitch","email":"robb.mitch@gmail.com"},{"name":"steveshaffer","email":"steve@shaffer.ninja"},{"name":"veritone_dev","email":"dev@veritone.com"}],"dist":{"shasum":"f89e61ac16b9346ca3c24c88d2ecf7bcfb58a0da","tarball":"https://registry.npmjs.org/veritone-widgets/-/veritone-widgets-6.3.0.tgz","fileCount":185,"integrity":"sha512-4qpYWNHOT7cfjJyhXk/jOrkbiSQC8dHSevxk/ECTAXIYb6JgOWCO9DfokY1er/bsLRnY08q1HtTFbctk9Ro/ag==","signatures":[{"sig":"MEQCICNgfkiuTr1UiqCQDgfImnFgDSqHKHUW7FInHzfImXBKAiBgEL1oFaR1oJCw249woW7TYsmv6wzisWjmvf54wPq4rQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":24973697,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbzimqCRA9TVsSAnZWagAAyQgP/iP4lCRbwXYnWPqOWs6s\njikUqz3WEgzQj7YBVRNSwh6//g6wlbjPOYiCg0bfaC27z1eWIYUUKZL5A4/c\nhRMlDzckRgSvXgJL7ypjZ4u3OeNU6KiVapSaxO3+tF38A/GMm0Ekdp2UVUNP\nYfeDwUS8MATvRkv9L5h32O2K2FNZ9IBKWAXJQ/2ZD/wxFQfe7h/KoZ1oDdsi\nmO2a5lhRCB1GxfYc/6l7Y+Ygf27hcPWsIVPlD8ZVyoFFBoEjpXWFvdLZa9+c\nKKJiGUuMvFYCJgxuzFocDd8DuZsfAHUcmSMVUmS0ZtqraIqECQTUFgXc6wo7\ngXO0jqjnzMkaBdkkhtrBs9RYer9mIdM+Gj5oSJOodIfuTxvMz7tnE9xe1eRu\n2ylZWeITVm4ihHF4LYclvhcM1Fuqc+0koYQlkUiiVcdTq81vBy+bnCeiRQor\nTbAs3w6n0mWM9ENMdsitkXyVj68f5Z+N/QR/E500aNIcW5XvM4LFtrLbz7zI\n5fXsHbxEL6zaSgokJ4N0sueaUXP7L89vFlR6RHvB2JUZWjm0uIh5TJ8wwfwN\nwNOAn2bZrdew+QNxT1ZREPzZ4Nr7ZQoXNRacYu8bla+2hWxko1/vPhW4r79k\nEfnrJe2aRtxIEGHDnho4+MPETe66DsvU7UtskU+ThbTJKwxTAKkE5w25XT20\nXaFj\r\n=ncEL\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"setupFiles":["<rootDir>/test/testSuitePolyfills.js","<rootDir>/test/configureEnzyme.js"],"moduleNameMapper":{"\\.(css|scss)$":"identity-obj-proxy","\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$":"<rootDir>/test/__mocks__/fileMock.js"},"moduleDirectories":["node_modules"],"moduleFileExtensions":["js","jsx"]},"main":"dist/bundle-cjs.js","module":"dist/bundle-es.js","scripts":{"lint":"yarn run lint:js && yarn run lint:styles","test":"jest","build":"yarn run build:es && yarn run build:cjs && yarn run build:script-tag","start":"yarn run start:widget-server; yarn run start:storybook","format":"prettier --write \"./src/**/*.{js,scss}\"","lint:js":"eslint src/** --ext .js --max-warnings 0","build:es":"cross-env NODE_ENV=production BABEL_ENV=production-es rollup -c rollup.config.es.js","prebuild":"yarn run clean:build","build:cjs":"cross-env NODE_ENV=production BABEL_ENV=production-cjs rollup -c rollup.config.cjs.js","test:watch":"jest --watch","build:watch":"cross-env NODE_ENV=production rollup -c --watch","clean:build":"rimraf dist","lint:styles":"stylelint \"src/**/*.{scss, css}\"","prepublishOnly":"yarn run test && yarn run lint && yarn run build","build:storybook":"NODE_ENV=production build-storybook -c .storybook -o docs-static","start:storybook":"NODE_ENV=test start-storybook -p 3000 -c .storybook","build:script-tag":"cross-env NODE_ENV=production BABEL_ENV=production-cjs webpack --config webpack.config.script-tag.js","start:widget-server":"yarn workspace veritone-widgets-server run start &"},"_npmUser":{"name":"coolmitch","email":"robb.mitch@gmail.com"},"description":"As of v5.0.0, this package exports both React \"smart components\" and framework agnostic \"widgets\" for most components. When both are available, the smart component is the default export and the widget is a named export. For example, `import FilePicker, { ","directories":{},"jsnext:main":"dist/bundle-es.js","licenseText":"                                 Apache License\n                           Version 2.0, January 2004\n                        http://www.apache.org/licenses/\n\n   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n   1. Definitions.\n\n      \"License\" shall mean the terms and conditions for use, reproduction,\n      and distribution as defined by Sections 1 through 9 of this document.\n\n      \"Licensor\" shall mean the copyright owner or entity authorized by\n      the copyright owner that is granting the License.\n\n      \"Legal Entity\" shall mean the union of the acting entity and all\n      other entities that control, are controlled by, or are under common\n      control with that entity. For the purposes of this definition,\n      \"control\" means (i) the power, direct or indirect, to cause the\n      direction or management of such entity, whether by contract or\n      otherwise, or (ii) ownership of fifty percent (50%) or more of the\n      outstanding shares, or (iii) beneficial ownership of such entity.\n\n      \"You\" (or \"Your\") shall mean an individual or Legal Entity\n      exercising permissions granted by this License.\n\n      \"Source\" form shall mean the preferred form for making modifications,\n      including but not limited to software source code, documentation\n      source, and configuration files.\n\n      \"Object\" form shall mean any form resulting from mechanical\n      transformation or translation of a Source form, including but\n      not limited to compiled object code, generated documentation,\n      and conversions to other media types.\n\n      \"Work\" shall mean the work of authorship, whether in Source or\n      Object form, made available under the License, as indicated by a\n      copyright notice that is included in or attached to the work\n      (an example is provided in the Appendix below).\n\n      \"Derivative Works\" shall mean any work, whether in Source or Object\n      form, that is based on (or derived from) the Work and for which the\n      editorial revisions, annotations, elaborations, or other modifications\n      represent, as a whole, an original work of authorship. For the purposes\n      of this License, Derivative Works shall not include works that remain\n      separable from, or merely link (or bind by name) to the interfaces of,\n      the Work and Derivative Works thereof.\n\n      \"Contribution\" shall mean any work of authorship, including\n      the original version of the Work and any modifications or additions\n      to that Work or Derivative Works thereof, that is intentionally\n      submitted to Licensor for inclusion in the Work by the copyright owner\n      or by an individual or Legal Entity authorized to submit on behalf of\n      the copyright owner. For the purposes of this definition, \"submitted\"\n      means any form of electronic, verbal, or written communication sent\n      to the Licensor or its representatives, including but not limited to\n      communication on electronic mailing lists, source code control systems,\n      and issue tracking systems that are managed by, or on behalf of, the\n      Licensor for the purpose of discussing and improving the Work, but\n      excluding communication that is conspicuously marked or otherwise\n      designated in writing by the copyright owner as \"Not a Contribution.\"\n\n      \"Contributor\" shall mean Licensor and any individual or Legal Entity\n      on behalf of whom a Contribution has been received by Licensor and\n      subsequently incorporated within the Work.\n\n   2. Grant of Copyright License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      copyright license to reproduce, prepare Derivative Works of,\n      publicly display, publicly perform, sublicense, and distribute the\n      Work and such Derivative Works in Source or Object form.\n\n   3. Grant of Patent License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      (except as stated in this section) patent license to make, have made,\n      use, offer to sell, sell, import, and otherwise transfer the Work,\n      where such license applies only to those patent claims licensable\n      by such Contributor that are necessarily infringed by their\n      Contribution(s) alone or by combination of their Contribution(s)\n      with the Work to which such Contribution(s) was submitted. If You\n      institute patent litigation against any entity (including a\n      cross-claim or counterclaim in a lawsuit) alleging that the Work\n      or a Contribution incorporated within the Work constitutes direct\n      or contributory patent infringement, then any patent licenses\n      granted to You under this License for that Work shall terminate\n      as of the date such litigation is filed.\n\n   4. Redistribution. You may reproduce and distribute copies of the\n      Work or Derivative Works thereof in any medium, with or without\n      modifications, and in Source or Object form, provided that You\n      meet the following conditions:\n\n      (a) You must give any other recipients of the Work or\n          Derivative Works a copy of this License; and\n\n      (b) You must cause any modified files to carry prominent notices\n          stating that You changed the files; and\n\n      (c) You must retain, in the Source form of any Derivative Works\n          that You distribute, all copyright, patent, trademark, and\n          attribution notices from the Source form of the Work,\n          excluding those notices that do not pertain to any part of\n          the Derivative Works; and\n\n      (d) If the Work includes a \"NOTICE\" text file as part of its\n          distribution, then any Derivative Works that You distribute must\n          include a readable copy of the attribution notices contained\n          within such NOTICE file, excluding those notices that do not\n          pertain to any part of the Derivative Works, in at least one\n          of the following places: within a NOTICE text file distributed\n          as part of the Derivative Works; within the Source form or\n          documentation, if provided along with the Derivative Works; or,\n          within a display generated by the Derivative Works, if and\n          wherever such third-party notices normally appear. The contents\n          of the NOTICE file are for informational purposes only and\n          do not modify the License. You may add Your own attribution\n          notices within Derivative Works that You distribute, alongside\n          or as an addendum to the NOTICE text from the Work, provided\n          that such additional attribution notices cannot be construed\n          as modifying the License.\n\n      You may add Your own copyright statement to Your modifications and\n      may provide additional or different license terms and conditions\n      for use, reproduction, or distribution of Your modifications, or\n      for any such Derivative Works as a whole, provided Your use,\n      reproduction, and distribution of the Work otherwise complies with\n      the conditions stated in this License.\n\n   5. Submission of Contributions. Unless You explicitly state otherwise,\n      any Contribution intentionally submitted for inclusion in the Work\n      by You to the Licensor shall be under the terms and conditions of\n      this License, without any additional terms or conditions.\n      Notwithstanding the above, nothing herein shall supersede or modify\n      the terms of any separate license agreement you may have executed\n      with Licensor regarding such Contributions.\n\n   6. Trademarks. This License does not grant permission to use the trade\n      names, trademarks, service marks, or product names of the Licensor,\n      except as required for reasonable and customary use in describing the\n      origin of the Work and reproducing the content of the NOTICE file.\n\n   7. Disclaimer of Warranty. Unless required by applicable law or\n      agreed to in writing, Licensor provides the Work (and each\n      Contributor provides its Contributions) on an \"AS IS\" BASIS,\n      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n      implied, including, without limitation, any warranties or conditions\n      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n      PARTICULAR PURPOSE. You are solely responsible for determining the\n      appropriateness of using or redistributing the Work and assume any\n      risks associated with Your exercise of permissions under this License.\n\n   8. Limitation of Liability. In no event and under no legal theory,\n      whether in tort (including negligence), contract, or otherwise,\n      unless required by applicable law (such as deliberate and grossly\n      negligent acts) or agreed to in writing, shall any Contributor be\n      liable to You for damages, including any direct, indirect, special,\n      incidental, or consequential damages of any character arising as a\n      result of this License or out of the use or inability to use the\n      Work (including but not limited to damages for loss of goodwill,\n      work stoppage, computer failure or malfunction, or any and all\n      other commercial damages or losses), even if such Contributor\n      has been advised of the possibility of such damages.\n\n   9. Accepting Warranty or Additional Liability. While redistributing\n      the Work or Derivative Works thereof, You may choose to offer,\n      and charge a fee for, acceptance of support, warranty, indemnity,\n      or other liability obligations and/or rights consistent with this\n      License. However, in accepting such obligations, You may act only\n      on Your own behalf and on Your sole responsibility, not on behalf\n      of any other Contributor, and only if You agree to indemnify,\n      defend, and hold each Contributor harmless for any liability\n      incurred by, or claims asserted against, such Contributor by reason\n      of your accepting any such warranty or additional liability.\n\n   END OF TERMS AND CONDITIONS\n\n   APPENDIX: How to apply the Apache License to your work.\n\n      To apply the Apache License to your work, attach the following\n      boilerplate notice, with the fields enclosed by brackets \"{}\"\n      replaced with your own identifying information. (Don't include\n      the brackets!)  The text should be enclosed in the appropriate\n      comment syntax for the file format. We also recommend that a\n      file or class name and description of purpose be included on the\n      same \"printed page\" as the copyright notice for easier\n      identification within third-party archives.\n\n   Copyright {yyyy} {name of copyright owner}\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n","dependencies":{"react":"^16.3.0","redux":"^4.0.0","react-dom":"^16.3.0","recompose":"^0.30.0","redux-saga":"^0.15.6","react-redux":"^5.0.6","redux-thunk":"^2.2.0","video-react":"~0.13.0","shaka-player":"^2.4.1","babel-runtime":"^6.26.0","babel-polyfill":"^6.26.0","react-redux-saga":"^1.0.2","@material-ui/core":"^1.0.0","react-virtualized":"^9.18.5","@material-ui/icons":"^1.0.0","veritone-react-common":"^6.2.0","veritone-redux-common":"^3.7.0","veritone-oauth-helpers":"^2.1.0","redux-api-middleware-fixed":"^2.0.0"},"_hasShrinkwrap":false,"devDependencies":{"raf":"^3.4.0","jest":"^22.4.3","faker":"^4.1.0","enzyme":"^3.4.4","eslint":"^4.8.0","rimraf":"^2.6.2","rollup":"^0.55.1","webpack":"^4.0.1","cross-env":"^5.1.1","node-sass":"^4.7.2","stylelint":"^8.2.0","babel-core":"^6.26.0","url-loader":"^0.6.2","sass-loader":"^6.0.6","webpack-cli":"^2.0.9","babel-loader":"^7.1.3","redux-logger":"^3.0.6","redux-devtools":"^3.4.0","@storybook/react":"v3.3.9","redux-mock-store":"^1.3.0","veritone-dev-env":"^3.0.0","rollup-plugin-url":"^1.3.0","identity-obj-proxy":"^3.0.0","redux-validate-fsa":"^0.1.2","rollup-plugin-json":"^2.3.0","babel-plugin-lodash":"^3.3.2","eslint-plugin-react":"^7.8.2","react-test-renderer":"^16.0.0","rollup-plugin-alias":"^1.4.0","rollup-plugin-babel":"^3.0.3","eslint-plugin-import":"^2.10.0","eslint-plugin-lodash":"^2.4.5","babel-plugin-date-fns":"^0.1.0","eslint-plugin-promise":"^3.5.0","rollup-plugin-postcss":"^1.2.8","rollup-plugin-replace":"^2.0.0","@storybook/addon-knobs":"3.3.9","eslint-config-prettier":"^2.6.0","rollup-analyzer-plugin":"^1.1.1","rollup-plugin-commonjs":"^8.3.0","enzyme-adapter-react-16.3":"1.0.0","stylelint-config-prettier":"^4.0.0","stylelint-config-standard":"^17.0.0","rollup-plugin-node-resolve":"^3.0.2","babel-plugin-external-helpers":"^6.22.0","babel-plugin-transform-runtime":"^6.23.0","redux-immutable-state-invariant":"^2.1.0","babel-plugin-add-react-displayname":"^0.0.5","babel-plugin-transform-class-properties":"^6.24.1","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-plugin-transform-export-extensions":"^6.22.0","babel-plugin-transform-object-rest-spread":"^6.26.0"},"_npmOperationalInternal":{"tmp":"tmp/veritone-widgets_6.3.0_1540237737095_0.165120040531477","host":"s3://npm-registry-packages"}},"6.3.1":{"name":"veritone-widgets","version":"6.3.1","license":"Apache-2.0","_id":"veritone-widgets@6.3.1","maintainers":[{"name":"albertcbrown","email":"al@veritone.com"},{"name":"charliemantle","email":"charliemantle2@gmail.com"},{"name":"coolmitch","email":"robb.mitch@gmail.com"},{"name":"steveshaffer","email":"steve@shaffer.ninja"},{"name":"veritone_dev","email":"dev@veritone.com"}],"dist":{"shasum":"5634c36a64de9ae5b739f42e4565a4ecb37a56ba","tarball":"https://registry.npmjs.org/veritone-widgets/-/veritone-widgets-6.3.1.tgz","fileCount":185,"integrity":"sha512-IuXwLpFFEH0MAb63rgDUir5mX2gJsF//q7Pp5AyGjduJuTxcg0RTmvD4oPfVbSITF33vwyizJQ4c+BQ0VNQEiA==","signatures":[{"sig":"MEYCIQCQoi/GPLOhkIUMP1JhhBycY0SxSdEz6OZbflu4Ut2PdAIhANFiDa+EK+/WdF+hlVIAZC6ObY3oPjimwlPQ7NQoAayf","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":25019209,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJbz2T+CRA9TVsSAnZWagAA5z8P/Ri8ezw/IQv3zfpQDcsP\nA4M2Q+2hEH8eWpif92bdthSX+bSfkl4A6eNWBhnqmeusZ2XFG9A9dQ7FfhJu\neiQtF6ruiIhd/0oK2t8dA9KosatIYFXx+GYg6LF05AQ3ApDDm0ogkbCEscJt\nD+h1iHXSE+FWDo6tynCDWm8Ca8D+vJN6TZVlKdEMBWU3vksYIaJ4fT+m+XjH\ntDjniU+hIL3GDU1R6qvZ+jggAAAtpWIwBr/DYxvI42f4hsnXJ+E6HxmWNHyJ\nafKCpaY4gtXYohjphOg8L+K7sIR2fLhSmzmdNVQlIGOQIpluWuTPFzO4cBxI\nfekwVPxTlNVnajp9b17J+gDQwPmvJTbhzN3r0EgV51f4m3ynB3uCsDea6kO1\nUBhVCu/9NbkGNm+WGOiulL5AXGbjDY9JDmg6SG+C18udr6oZZ2DNqfkpkr/Q\nRxUlXkWr2SUbTD9H19xR5G86rGSAbV6vM0+5TJHeL2U28DeC9ztCpwc5ihYP\nCWeVzpFIWbB6sFIVfuJ6mMVGV79na41QFm8mw+zrV0XnXN4tZG4+nbdbTdsC\nLqWQNHSU0Q0roevUf5Udd+wf9KPhLtopsp3VRs5vGq2yhkYbr/jrbFO7XOUC\no9jIkIgz0E29zJQllybNmVnQh5y0zkXwLKIc+4I7n98QCk5iuaASm6xJQ/bI\nkupm\r\n=h0oZ\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"setupFiles":["<rootDir>/test/testSuitePolyfills.js","<rootDir>/test/configureEnzyme.js"],"moduleNameMapper":{"\\.(css|scss)$":"identity-obj-proxy","\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$":"<rootDir>/test/__mocks__/fileMock.js"},"moduleDirectories":["node_modules"],"moduleFileExtensions":["js","jsx"]},"main":"dist/bundle-cjs.js","module":"dist/bundle-es.js","scripts":{"lint":"yarn run lint:js && yarn run lint:styles","test":"jest","build":"yarn run build:es && yarn run build:cjs && yarn run build:script-tag","start":"yarn run start:widget-server; yarn run start:storybook","format":"prettier --write \"./src/**/*.{js,scss}\"","lint:js":"eslint src/** --ext .js --max-warnings 0","build:es":"cross-env NODE_ENV=production BABEL_ENV=production-es rollup -c rollup.config.es.js","prebuild":"yarn run clean:build","build:cjs":"cross-env NODE_ENV=production BABEL_ENV=production-cjs rollup -c rollup.config.cjs.js","test:watch":"jest --watch","build:watch":"cross-env NODE_ENV=production rollup -c --watch","clean:build":"rimraf dist","lint:styles":"stylelint \"src/**/*.{scss, css}\"","prepublishOnly":"yarn run test && yarn run lint && yarn run build","build:storybook":"NODE_ENV=production build-storybook -c .storybook -o docs-static","start:storybook":"NODE_ENV=test start-storybook -p 3000 -c .storybook","build:script-tag":"cross-env NODE_ENV=production BABEL_ENV=production-cjs webpack --config webpack.config.script-tag.js","start:widget-server":"yarn workspace veritone-widgets-server run start &"},"_npmUser":{"name":"coolmitch","email":"robb.mitch@gmail.com"},"description":"As of v5.0.0, this package exports both React \"smart components\" and framework agnostic \"widgets\" for most components. When both are available, the smart component is the default export and the widget is a named export. For example, `import FilePicker, { ","directories":{},"jsnext:main":"dist/bundle-es.js","licenseText":"                                 Apache License\n                           Version 2.0, January 2004\n                        http://www.apache.org/licenses/\n\n   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n   1. Definitions.\n\n      \"License\" shall mean the terms and conditions for use, reproduction,\n      and distribution as defined by Sections 1 through 9 of this document.\n\n      \"Licensor\" shall mean the copyright owner or entity authorized by\n      the copyright owner that is granting the License.\n\n      \"Legal Entity\" shall mean the union of the acting entity and all\n      other entities that control, are controlled by, or are under common\n      control with that entity. For the purposes of this definition,\n      \"control\" means (i) the power, direct or indirect, to cause the\n      direction or management of such entity, whether by contract or\n      otherwise, or (ii) ownership of fifty percent (50%) or more of the\n      outstanding shares, or (iii) beneficial ownership of such entity.\n\n      \"You\" (or \"Your\") shall mean an individual or Legal Entity\n      exercising permissions granted by this License.\n\n      \"Source\" form shall mean the preferred form for making modifications,\n      including but not limited to software source code, documentation\n      source, and configuration files.\n\n      \"Object\" form shall mean any form resulting from mechanical\n      transformation or translation of a Source form, including but\n      not limited to compiled object code, generated documentation,\n      and conversions to other media types.\n\n      \"Work\" shall mean the work of authorship, whether in Source or\n      Object form, made available under the License, as indicated by a\n      copyright notice that is included in or attached to the work\n      (an example is provided in the Appendix below).\n\n      \"Derivative Works\" shall mean any work, whether in Source or Object\n      form, that is based on (or derived from) the Work and for which the\n      editorial revisions, annotations, elaborations, or other modifications\n      represent, as a whole, an original work of authorship. For the purposes\n      of this License, Derivative Works shall not include works that remain\n      separable from, or merely link (or bind by name) to the interfaces of,\n      the Work and Derivative Works thereof.\n\n      \"Contribution\" shall mean any work of authorship, including\n      the original version of the Work and any modifications or additions\n      to that Work or Derivative Works thereof, that is intentionally\n      submitted to Licensor for inclusion in the Work by the copyright owner\n      or by an individual or Legal Entity authorized to submit on behalf of\n      the copyright owner. For the purposes of this definition, \"submitted\"\n      means any form of electronic, verbal, or written communication sent\n      to the Licensor or its representatives, including but not limited to\n      communication on electronic mailing lists, source code control systems,\n      and issue tracking systems that are managed by, or on behalf of, the\n      Licensor for the purpose of discussing and improving the Work, but\n      excluding communication that is conspicuously marked or otherwise\n      designated in writing by the copyright owner as \"Not a Contribution.\"\n\n      \"Contributor\" shall mean Licensor and any individual or Legal Entity\n      on behalf of whom a Contribution has been received by Licensor and\n      subsequently incorporated within the Work.\n\n   2. Grant of Copyright License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      copyright license to reproduce, prepare Derivative Works of,\n      publicly display, publicly perform, sublicense, and distribute the\n      Work and such Derivative Works in Source or Object form.\n\n   3. Grant of Patent License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      (except as stated in this section) patent license to make, have made,\n      use, offer to sell, sell, import, and otherwise transfer the Work,\n      where such license applies only to those patent claims licensable\n      by such Contributor that are necessarily infringed by their\n      Contribution(s) alone or by combination of their Contribution(s)\n      with the Work to which such Contribution(s) was submitted. If You\n      institute patent litigation against any entity (including a\n      cross-claim or counterclaim in a lawsuit) alleging that the Work\n      or a Contribution incorporated within the Work constitutes direct\n      or contributory patent infringement, then any patent licenses\n      granted to You under this License for that Work shall terminate\n      as of the date such litigation is filed.\n\n   4. Redistribution. You may reproduce and distribute copies of the\n      Work or Derivative Works thereof in any medium, with or without\n      modifications, and in Source or Object form, provided that You\n      meet the following conditions:\n\n      (a) You must give any other recipients of the Work or\n          Derivative Works a copy of this License; and\n\n      (b) You must cause any modified files to carry prominent notices\n          stating that You changed the files; and\n\n      (c) You must retain, in the Source form of any Derivative Works\n          that You distribute, all copyright, patent, trademark, and\n          attribution notices from the Source form of the Work,\n          excluding those notices that do not pertain to any part of\n          the Derivative Works; and\n\n      (d) If the Work includes a \"NOTICE\" text file as part of its\n          distribution, then any Derivative Works that You distribute must\n          include a readable copy of the attribution notices contained\n          within such NOTICE file, excluding those notices that do not\n          pertain to any part of the Derivative Works, in at least one\n          of the following places: within a NOTICE text file distributed\n          as part of the Derivative Works; within the Source form or\n          documentation, if provided along with the Derivative Works; or,\n          within a display generated by the Derivative Works, if and\n          wherever such third-party notices normally appear. The contents\n          of the NOTICE file are for informational purposes only and\n          do not modify the License. You may add Your own attribution\n          notices within Derivative Works that You distribute, alongside\n          or as an addendum to the NOTICE text from the Work, provided\n          that such additional attribution notices cannot be construed\n          as modifying the License.\n\n      You may add Your own copyright statement to Your modifications and\n      may provide additional or different license terms and conditions\n      for use, reproduction, or distribution of Your modifications, or\n      for any such Derivative Works as a whole, provided Your use,\n      reproduction, and distribution of the Work otherwise complies with\n      the conditions stated in this License.\n\n   5. Submission of Contributions. Unless You explicitly state otherwise,\n      any Contribution intentionally submitted for inclusion in the Work\n      by You to the Licensor shall be under the terms and conditions of\n      this License, without any additional terms or conditions.\n      Notwithstanding the above, nothing herein shall supersede or modify\n      the terms of any separate license agreement you may have executed\n      with Licensor regarding such Contributions.\n\n   6. Trademarks. This License does not grant permission to use the trade\n      names, trademarks, service marks, or product names of the Licensor,\n      except as required for reasonable and customary use in describing the\n      origin of the Work and reproducing the content of the NOTICE file.\n\n   7. Disclaimer of Warranty. Unless required by applicable law or\n      agreed to in writing, Licensor provides the Work (and each\n      Contributor provides its Contributions) on an \"AS IS\" BASIS,\n      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n      implied, including, without limitation, any warranties or conditions\n      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n      PARTICULAR PURPOSE. You are solely responsible for determining the\n      appropriateness of using or redistributing the Work and assume any\n      risks associated with Your exercise of permissions under this License.\n\n   8. Limitation of Liability. In no event and under no legal theory,\n      whether in tort (including negligence), contract, or otherwise,\n      unless required by applicable law (such as deliberate and grossly\n      negligent acts) or agreed to in writing, shall any Contributor be\n      liable to You for damages, including any direct, indirect, special,\n      incidental, or consequential damages of any character arising as a\n      result of this License or out of the use or inability to use the\n      Work (including but not limited to damages for loss of goodwill,\n      work stoppage, computer failure or malfunction, or any and all\n      other commercial damages or losses), even if such Contributor\n      has been advised of the possibility of such damages.\n\n   9. Accepting Warranty or Additional Liability. While redistributing\n      the Work or Derivative Works thereof, You may choose to offer,\n      and charge a fee for, acceptance of support, warranty, indemnity,\n      or other liability obligations and/or rights consistent with this\n      License. However, in accepting such obligations, You may act only\n      on Your own behalf and on Your sole responsibility, not on behalf\n      of any other Contributor, and only if You agree to indemnify,\n      defend, and hold each Contributor harmless for any liability\n      incurred by, or claims asserted against, such Contributor by reason\n      of your accepting any such warranty or additional liability.\n\n   END OF TERMS AND CONDITIONS\n\n   APPENDIX: How to apply the Apache License to your work.\n\n      To apply the Apache License to your work, attach the following\n      boilerplate notice, with the fields enclosed by brackets \"{}\"\n      replaced with your own identifying information. (Don't include\n      the brackets!)  The text should be enclosed in the appropriate\n      comment syntax for the file format. We also recommend that a\n      file or class name and description of purpose be included on the\n      same \"printed page\" as the copyright notice for easier\n      identification within third-party archives.\n\n   Copyright {yyyy} {name of copyright owner}\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n","dependencies":{"react":"^16.3.0","redux":"^4.0.0","react-dom":"^16.3.0","recompose":"^0.30.0","redux-saga":"^0.15.6","react-redux":"^5.0.6","redux-thunk":"^2.2.0","video-react":"~0.13.0","shaka-player":"^2.4.1","babel-runtime":"^6.26.0","babel-polyfill":"^6.26.0","react-redux-saga":"^1.0.2","@material-ui/core":"^1.0.0","react-virtualized":"^9.18.5","@material-ui/icons":"^1.0.0","veritone-react-common":"^6.2.0","veritone-redux-common":"^3.7.0","veritone-oauth-helpers":"^2.1.0","redux-api-middleware-fixed":"^2.0.0"},"_hasShrinkwrap":false,"devDependencies":{"raf":"^3.4.0","jest":"^22.4.3","faker":"^4.1.0","enzyme":"^3.4.4","eslint":"^4.8.0","rimraf":"^2.6.2","rollup":"^0.55.1","webpack":"^4.0.1","cross-env":"^5.1.1","node-sass":"^4.7.2","stylelint":"^8.2.0","babel-core":"^6.26.0","url-loader":"^0.6.2","sass-loader":"^6.0.6","webpack-cli":"^2.0.9","babel-loader":"^7.1.3","redux-logger":"^3.0.6","redux-devtools":"^3.4.0","@storybook/react":"v3.3.9","redux-mock-store":"^1.3.0","veritone-dev-env":"^3.0.0","rollup-plugin-url":"^1.3.0","identity-obj-proxy":"^3.0.0","redux-validate-fsa":"^0.1.2","rollup-plugin-json":"^2.3.0","babel-plugin-lodash":"^3.3.2","eslint-plugin-react":"^7.8.2","react-test-renderer":"^16.0.0","rollup-plugin-alias":"^1.4.0","rollup-plugin-babel":"^3.0.3","eslint-plugin-import":"^2.10.0","eslint-plugin-lodash":"^2.4.5","babel-plugin-date-fns":"^0.1.0","eslint-plugin-promise":"^3.5.0","rollup-plugin-postcss":"^1.2.8","rollup-plugin-replace":"^2.0.0","@storybook/addon-knobs":"3.3.9","eslint-config-prettier":"^2.6.0","rollup-analyzer-plugin":"^1.1.1","rollup-plugin-commonjs":"^8.3.0","enzyme-adapter-react-16.3":"1.0.0","stylelint-config-prettier":"^4.0.0","stylelint-config-standard":"^17.0.0","rollup-plugin-node-resolve":"^3.0.2","babel-plugin-external-helpers":"^6.22.0","babel-plugin-transform-runtime":"^6.23.0","redux-immutable-state-invariant":"^2.1.0","babel-plugin-add-react-displayname":"^0.0.5","babel-plugin-transform-class-properties":"^6.24.1","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-plugin-transform-export-extensions":"^6.22.0","babel-plugin-transform-object-rest-spread":"^6.26.0"},"_npmOperationalInternal":{"tmp":"tmp/veritone-widgets_6.3.1_1540318460995_0.7872621492242629","host":"s3://npm-registry-packages"}},"6.4.0":{"name":"veritone-widgets","version":"6.4.0","license":"Apache-2.0","_id":"veritone-widgets@6.4.0","maintainers":[{"name":"albertcbrown","email":"al@veritone.com"},{"name":"charliemantle","email":"charliemantle2@gmail.com"},{"name":"coolmitch","email":"robb.mitch@gmail.com"},{"name":"steveshaffer","email":"steve@shaffer.ninja"},{"name":"veritone_dev","email":"dev@veritone.com"}],"dist":{"shasum":"805557cc9dbeb7f33c1b2b07350f0a4b4940bbbb","tarball":"https://registry.npmjs.org/veritone-widgets/-/veritone-widgets-6.4.0.tgz","fileCount":204,"integrity":"sha512-YBltSWUn67jOrRSqdx5u4VqMEMiHXpIkTM7kHL+jHQ04pBMCIS8CCH893rxqbXXOHETzpPPO8F9pQTPVfAq1dQ==","signatures":[{"sig":"MEQCIDUOL/bXKbPNwaRLWQWj3/16vFqGEYLNyhdsGK+RRNXFAiBXqercX0orbcPD3orUcIDwZEM/q46t5zvNSn6bEnmzgg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":26750787,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJb/hMXCRA9TVsSAnZWagAA4d4QAJXa8ujwslSFffSiRbpc\npo3qZRfkDji84v7ZgNj8/4R5JGTAGtHpyIlw8+KprigCzq7XR+LT/ppOrNOD\nFVzTSiTUhDzREA+1vrmD4r3LIquymtKraqcrhAjCOLPMOKOcuN8rDtCOQze7\nTKEs/3Vu/oPihDSbZnyF/hLhLL/CcOxvLMEtJWg8vtrS8OQQjUENqDmSe8ZM\nSYgsei8fM8h8pu+JCRx9LoDqZItFMesjb5iQqfFzpDMmUmkCOz0w/DGAw2mm\nQdq3JeXnQIUhejvw93GdI4opEzWU03YH6RESY+U5Ipj/Yu2dm3kyWpuaf6c6\nfG1lwBdgUay39XrcqUBAYH2sKux8nvOGUaclTltIgHXZrNR/UL5cz5riUpMh\nG0QfumjO1qgSN0cTr5nXbWyndjdTSdZR4RXLSvkNtbidtSIXXVQyblFwqPtw\n9ZBxP1ukDSbjWl70cWxe73HkQQKftN4VobJsVWg/Wqlfgd3Q5NPaw6xHtFOQ\nl8iRL3tcBcdVCP+ugIAu7KwDb3xP2GMHrUE9Tnkklx5yuEhUwmcK6kAr5Xcg\nvj2XAFn4NsEn1C/n3nkVXiIjyJ6KkoXaG/GD/stdVqzIuGuI6DyYXnTkYabC\nlls+5qKpZYlcEElDdJB+M2VSsGLMPptBkaGjagko2ifpOXot+UMGgTQuGmYn\nj48a\r\n=hDAY\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"setupFiles":["<rootDir>/test/testSuitePolyfills.js","<rootDir>/test/configureEnzyme.js"],"moduleNameMapper":{"\\.(css|scss)$":"identity-obj-proxy","\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$":"<rootDir>/test/__mocks__/fileMock.js"},"moduleDirectories":["node_modules"],"moduleFileExtensions":["js","jsx"]},"main":"dist/bundle-cjs.js","module":"dist/bundle-es.js","scripts":{"lint":"yarn run lint:js && yarn run lint:styles","test":"jest","build":"yarn run build:es && yarn run build:cjs && yarn run build:script-tag","start":"yarn run start:widget-server; yarn run start:storybook","format":"prettier --write \"./src/**/*.{js,scss}\"","lint:js":"eslint src/** --ext .js --max-warnings 0","build:es":"cross-env NODE_ENV=production BABEL_ENV=production-es rollup -c rollup.config.es.js","prebuild":"yarn run clean:build","build:cjs":"cross-env NODE_ENV=production BABEL_ENV=production-cjs rollup -c rollup.config.cjs.js","test:watch":"jest --watch","build:watch":"cross-env NODE_ENV=production rollup -c --watch","clean:build":"rimraf dist","lint:styles":"stylelint \"src/**/*.{scss, css}\"","prepublishOnly":"yarn run test && yarn run lint && yarn run build","build:storybook":"NODE_ENV=production build-storybook -c .storybook -o docs-static","start:storybook":"NODE_ENV=test start-storybook -p 3000 -c .storybook","build:script-tag":"cross-env NODE_ENV=production BABEL_ENV=production-cjs webpack --config webpack.config.script-tag.js","start:widget-server":"yarn workspace veritone-widgets-server run start &"},"_npmUser":{"name":"coolmitch","email":"robb.mitch@gmail.com"},"description":"As of v5.0.0, this package exports both React \"smart components\" and framework agnostic \"widgets\" for most components. When both are available, the smart component is the default export and the widget is a named export. For example, `import FilePicker, { ","directories":{},"jsnext:main":"dist/bundle-es.js","licenseText":"                                 Apache License\n                           Version 2.0, January 2004\n                        http://www.apache.org/licenses/\n\n   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n   1. Definitions.\n\n      \"License\" shall mean the terms and conditions for use, reproduction,\n      and distribution as defined by Sections 1 through 9 of this document.\n\n      \"Licensor\" shall mean the copyright owner or entity authorized by\n      the copyright owner that is granting the License.\n\n      \"Legal Entity\" shall mean the union of the acting entity and all\n      other entities that control, are controlled by, or are under common\n      control with that entity. For the purposes of this definition,\n      \"control\" means (i) the power, direct or indirect, to cause the\n      direction or management of such entity, whether by contract or\n      otherwise, or (ii) ownership of fifty percent (50%) or more of the\n      outstanding shares, or (iii) beneficial ownership of such entity.\n\n      \"You\" (or \"Your\") shall mean an individual or Legal Entity\n      exercising permissions granted by this License.\n\n      \"Source\" form shall mean the preferred form for making modifications,\n      including but not limited to software source code, documentation\n      source, and configuration files.\n\n      \"Object\" form shall mean any form resulting from mechanical\n      transformation or translation of a Source form, including but\n      not limited to compiled object code, generated documentation,\n      and conversions to other media types.\n\n      \"Work\" shall mean the work of authorship, whether in Source or\n      Object form, made available under the License, as indicated by a\n      copyright notice that is included in or attached to the work\n      (an example is provided in the Appendix below).\n\n      \"Derivative Works\" shall mean any work, whether in Source or Object\n      form, that is based on (or derived from) the Work and for which the\n      editorial revisions, annotations, elaborations, or other modifications\n      represent, as a whole, an original work of authorship. For the purposes\n      of this License, Derivative Works shall not include works that remain\n      separable from, or merely link (or bind by name) to the interfaces of,\n      the Work and Derivative Works thereof.\n\n      \"Contribution\" shall mean any work of authorship, including\n      the original version of the Work and any modifications or additions\n      to that Work or Derivative Works thereof, that is intentionally\n      submitted to Licensor for inclusion in the Work by the copyright owner\n      or by an individual or Legal Entity authorized to submit on behalf of\n      the copyright owner. For the purposes of this definition, \"submitted\"\n      means any form of electronic, verbal, or written communication sent\n      to the Licensor or its representatives, including but not limited to\n      communication on electronic mailing lists, source code control systems,\n      and issue tracking systems that are managed by, or on behalf of, the\n      Licensor for the purpose of discussing and improving the Work, but\n      excluding communication that is conspicuously marked or otherwise\n      designated in writing by the copyright owner as \"Not a Contribution.\"\n\n      \"Contributor\" shall mean Licensor and any individual or Legal Entity\n      on behalf of whom a Contribution has been received by Licensor and\n      subsequently incorporated within the Work.\n\n   2. Grant of Copyright License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      copyright license to reproduce, prepare Derivative Works of,\n      publicly display, publicly perform, sublicense, and distribute the\n      Work and such Derivative Works in Source or Object form.\n\n   3. Grant of Patent License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      (except as stated in this section) patent license to make, have made,\n      use, offer to sell, sell, import, and otherwise transfer the Work,\n      where such license applies only to those patent claims licensable\n      by such Contributor that are necessarily infringed by their\n      Contribution(s) alone or by combination of their Contribution(s)\n      with the Work to which such Contribution(s) was submitted. If You\n      institute patent litigation against any entity (including a\n      cross-claim or counterclaim in a lawsuit) alleging that the Work\n      or a Contribution incorporated within the Work constitutes direct\n      or contributory patent infringement, then any patent licenses\n      granted to You under this License for that Work shall terminate\n      as of the date such litigation is filed.\n\n   4. Redistribution. You may reproduce and distribute copies of the\n      Work or Derivative Works thereof in any medium, with or without\n      modifications, and in Source or Object form, provided that You\n      meet the following conditions:\n\n      (a) You must give any other recipients of the Work or\n          Derivative Works a copy of this License; and\n\n      (b) You must cause any modified files to carry prominent notices\n          stating that You changed the files; and\n\n      (c) You must retain, in the Source form of any Derivative Works\n          that You distribute, all copyright, patent, trademark, and\n          attribution notices from the Source form of the Work,\n          excluding those notices that do not pertain to any part of\n          the Derivative Works; and\n\n      (d) If the Work includes a \"NOTICE\" text file as part of its\n          distribution, then any Derivative Works that You distribute must\n          include a readable copy of the attribution notices contained\n          within such NOTICE file, excluding those notices that do not\n          pertain to any part of the Derivative Works, in at least one\n          of the following places: within a NOTICE text file distributed\n          as part of the Derivative Works; within the Source form or\n          documentation, if provided along with the Derivative Works; or,\n          within a display generated by the Derivative Works, if and\n          wherever such third-party notices normally appear. The contents\n          of the NOTICE file are for informational purposes only and\n          do not modify the License. You may add Your own attribution\n          notices within Derivative Works that You distribute, alongside\n          or as an addendum to the NOTICE text from the Work, provided\n          that such additional attribution notices cannot be construed\n          as modifying the License.\n\n      You may add Your own copyright statement to Your modifications and\n      may provide additional or different license terms and conditions\n      for use, reproduction, or distribution of Your modifications, or\n      for any such Derivative Works as a whole, provided Your use,\n      reproduction, and distribution of the Work otherwise complies with\n      the conditions stated in this License.\n\n   5. Submission of Contributions. Unless You explicitly state otherwise,\n      any Contribution intentionally submitted for inclusion in the Work\n      by You to the Licensor shall be under the terms and conditions of\n      this License, without any additional terms or conditions.\n      Notwithstanding the above, nothing herein shall supersede or modify\n      the terms of any separate license agreement you may have executed\n      with Licensor regarding such Contributions.\n\n   6. Trademarks. This License does not grant permission to use the trade\n      names, trademarks, service marks, or product names of the Licensor,\n      except as required for reasonable and customary use in describing the\n      origin of the Work and reproducing the content of the NOTICE file.\n\n   7. Disclaimer of Warranty. Unless required by applicable law or\n      agreed to in writing, Licensor provides the Work (and each\n      Contributor provides its Contributions) on an \"AS IS\" BASIS,\n      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n      implied, including, without limitation, any warranties or conditions\n      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n      PARTICULAR PURPOSE. You are solely responsible for determining the\n      appropriateness of using or redistributing the Work and assume any\n      risks associated with Your exercise of permissions under this License.\n\n   8. Limitation of Liability. In no event and under no legal theory,\n      whether in tort (including negligence), contract, or otherwise,\n      unless required by applicable law (such as deliberate and grossly\n      negligent acts) or agreed to in writing, shall any Contributor be\n      liable to You for damages, including any direct, indirect, special,\n      incidental, or consequential damages of any character arising as a\n      result of this License or out of the use or inability to use the\n      Work (including but not limited to damages for loss of goodwill,\n      work stoppage, computer failure or malfunction, or any and all\n      other commercial damages or losses), even if such Contributor\n      has been advised of the possibility of such damages.\n\n   9. Accepting Warranty or Additional Liability. While redistributing\n      the Work or Derivative Works thereof, You may choose to offer,\n      and charge a fee for, acceptance of support, warranty, indemnity,\n      or other liability obligations and/or rights consistent with this\n      License. However, in accepting such obligations, You may act only\n      on Your own behalf and on Your sole responsibility, not on behalf\n      of any other Contributor, and only if You agree to indemnify,\n      defend, and hold each Contributor harmless for any liability\n      incurred by, or claims asserted against, such Contributor by reason\n      of your accepting any such warranty or additional liability.\n\n   END OF TERMS AND CONDITIONS\n\n   APPENDIX: How to apply the Apache License to your work.\n\n      To apply the Apache License to your work, attach the following\n      boilerplate notice, with the fields enclosed by brackets \"{}\"\n      replaced with your own identifying information. (Don't include\n      the brackets!)  The text should be enclosed in the appropriate\n      comment syntax for the file format. We also recommend that a\n      file or class name and description of purpose be included on the\n      same \"printed page\" as the copyright notice for easier\n      identification within third-party archives.\n\n   Copyright {yyyy} {name of copyright owner}\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n","dependencies":{"react":"^16.3.0","redux":"^4.0.0","react-dom":"^16.3.0","recompose":"^0.30.0","redux-saga":"^0.15.6","react-redux":"^5.0.6","redux-thunk":"^2.2.0","video-react":"~0.13.0","shaka-player":"^2.4.1","babel-runtime":"^6.26.0","babel-polyfill":"^6.26.0","react-redux-saga":"^1.0.2","@material-ui/core":"^1.0.0","react-virtualized":"^9.18.5","@material-ui/icons":"^1.0.0","veritone-react-common":"^6.2.0","veritone-redux-common":"^3.7.0","veritone-oauth-helpers":"^2.1.0","redux-api-middleware-fixed":"^2.0.0"},"_hasShrinkwrap":false,"devDependencies":{"raf":"^3.4.0","jest":"^22.4.3","faker":"^4.1.0","enzyme":"^3.4.4","eslint":"^4.8.0","rimraf":"^2.6.2","rollup":"^0.55.1","webpack":"^4.0.1","cross-env":"^5.1.1","node-sass":"^4.7.2","stylelint":"^8.2.0","babel-core":"^6.26.0","url-loader":"^0.6.2","sass-loader":"^6.0.6","webpack-cli":"^2.0.9","babel-loader":"^7.1.3","redux-logger":"^3.0.6","redux-devtools":"^3.4.0","@storybook/react":"v3.3.9","redux-mock-store":"^1.3.0","veritone-dev-env":"^3.0.0","rollup-plugin-url":"^1.3.0","identity-obj-proxy":"^3.0.0","redux-validate-fsa":"^0.1.2","rollup-plugin-json":"^2.3.0","babel-plugin-lodash":"^3.3.2","eslint-plugin-react":"^7.8.2","react-test-renderer":"^16.0.0","rollup-plugin-alias":"^1.4.0","rollup-plugin-babel":"^3.0.3","eslint-plugin-import":"^2.10.0","eslint-plugin-lodash":"^2.4.5","babel-plugin-date-fns":"^0.1.0","eslint-plugin-promise":"^3.5.0","rollup-plugin-postcss":"^1.2.8","rollup-plugin-replace":"^2.0.0","@storybook/addon-knobs":"3.3.9","eslint-config-prettier":"^2.6.0","rollup-analyzer-plugin":"^1.1.1","rollup-plugin-commonjs":"^8.3.0","enzyme-adapter-react-16.3":"1.0.0","stylelint-config-prettier":"^4.0.0","stylelint-config-standard":"^17.0.0","rollup-plugin-node-resolve":"^3.0.2","babel-plugin-external-helpers":"^6.22.0","babel-plugin-transform-runtime":"^6.23.0","redux-immutable-state-invariant":"^2.1.0","babel-plugin-add-react-displayname":"^0.0.5","babel-plugin-transform-class-properties":"^6.24.1","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-plugin-transform-export-extensions":"^6.22.0","babel-plugin-transform-object-rest-spread":"^6.26.0"},"_npmOperationalInternal":{"tmp":"tmp/veritone-widgets_6.4.0_1543377686387_0.00013931057896643395","host":"s3://npm-registry-packages"}},"7.0.0":{"name":"veritone-widgets","version":"7.0.0","license":"Apache-2.0","_id":"veritone-widgets@7.0.0","maintainers":[{"name":"albertcbrown","email":"al@veritone.com"},{"name":"coolmitch","email":"robb.mitch@gmail.com"},{"name":"steveshaffer","email":"steve@shaffer.ninja"},{"name":"tbui","email":"tbui@veritone.com"},{"name":"veritone_dev","email":"dev@veritone.com"}],"dist":{"shasum":"740350debaf9c498f98609f25c2945da203fc14d","tarball":"https://registry.npmjs.org/veritone-widgets/-/veritone-widgets-7.0.0.tgz","fileCount":176,"integrity":"sha512-ZdOhDOcWVu25mxZ0Uo/TZPqPmAoDq6qLBnCoYsDKrwioHiHxlJZBlXTDr2mygzP+TW+nLG2dXOG3ngSfOEKwVg==","signatures":[{"sig":"MEYCIQDytsaVELiAe31+jkXFPBPm3xnHGubcEEZbN7ABw9y6ZQIhAMDf64XTQ/lI/lVOzONpPvMBBysYiyKf8NADJhsOatad","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":16075459,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcVKEtCRA9TVsSAnZWagAAYagP/3A2jsKd3BUbXBWsatzr\nM8HYo2ERA2hegbIHO29p9atSNgTplEEYO6JdUc9Dh2YwCu6Y7Y+plVyWgHQe\ncQRclUzfZsa74X/gQ6bzAzjUw/SsPAbz/fQjc2K5h4SfTFvju4gRb+/Ga5sV\nJ66+U0aXNVW5umeTEnM1T3E6m0MBAm7pHK7BC8h4d5r9f5q1eS7xxcL0sSYe\nPF8jfc1uipt8/xwPsSxtTNl9J+TNVi2PLEQFSYCjipLRZwgjbekUMc0ThhiD\n3OjQjHHiFIAUBTdSw/oKb4Jmy+WVDsVkf/OyFXPbA0ExL4GWqYMR5cR/tSNy\nx3cR8cTj1sPIU2z/fQEhZVAo1YnM+tnUY/BtlcAv4XmQrmYBqvjloEYTVyEC\nESqJffcn++54zWs/TMRyGn6yROLa7mdmN8iobqccMrYIsFweZNtOl/XJnbn9\nQqMTmfLxY+8vhuB5eG6lRdVP7ZZqVf5+ow4aj2Xbc7aUy2kKLmjFxVPvPrzT\ndblGq3wZ2HVSJl/fZbQfQUi/B7BnKSeFi3oFMwYvX+Kj/mGemmx2sl7g44yn\nkLTLTubwSc0l+kh+6NYbZ/oNNwAK7HkPuvenScWfoH/WlQSQVPQBnkY+ckJG\nSSHvDduuPAaN9jXacNn8hyjbgA0a0URAaDp1zrCCXdF4JC68SCqBGk4AFP30\ntzGr\r\n=iHrB\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"setupFiles":["<rootDir>/test/testSuitePolyfills.js","<rootDir>/test/configureEnzyme.js"],"moduleNameMapper":{"\\.(css|scss)$":"identity-obj-proxy","\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$":"<rootDir>/test/__mocks__/fileMock.js"},"moduleDirectories":["node_modules"],"moduleFileExtensions":["js","jsx"]},"main":"dist/bundle-cjs.js","module":"dist/bundle-es.js","scripts":{"lint":"yarn run lint:js && yarn run lint:styles","test":"jest","build":"yarn run build:es && yarn run build:cjs && yarn run build:script-tag","start":"yarn run start:widget-server; yarn run start:storybook","format":"prettier --write \"./src/**/*.{js,scss}\"","lint:js":"eslint src/** --ext .js --max-warnings 0","build:es":"cross-env NODE_ENV=production BABEL_ENV=production-es rollup -c rollup.config.es.js","prebuild":"yarn run clean:build","build:cjs":"cross-env NODE_ENV=production BABEL_ENV=production-cjs rollup -c rollup.config.cjs.js","test:watch":"jest --watch","build:watch":"cross-env NODE_ENV=production rollup -c --watch","clean:build":"rimraf dist","lint:styles":"stylelint \"src/**/*.{scss, css}\"","prepublishOnly":"yarn run test && yarn run lint && yarn run build","build:storybook":"NODE_ENV=production build-storybook -c .storybook -o docs-static","start:storybook":"NODE_ENV=test start-storybook -p 3000 -c .storybook","build:script-tag":"cross-env NODE_ENV=production BABEL_ENV=production-cjs webpack --config webpack.config.script-tag.js","start:widget-server":"yarn workspace veritone-widgets-server run start &"},"_npmUser":{"name":"coolmitch","email":"robb.mitch@gmail.com"},"description":"As of v5.0.0, this package exports both React \"smart components\" and framework agnostic \"widgets\" for most components. When both are available, the smart component is the default export and the widget is a named export. For example, `import FilePicker, { ","directories":{},"jsnext:main":"dist/bundle-es.js","licenseText":"                                 Apache License\n                           Version 2.0, January 2004\n                        http://www.apache.org/licenses/\n\n   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n   1. Definitions.\n\n      \"License\" shall mean the terms and conditions for use, reproduction,\n      and distribution as defined by Sections 1 through 9 of this document.\n\n      \"Licensor\" shall mean the copyright owner or entity authorized by\n      the copyright owner that is granting the License.\n\n      \"Legal Entity\" shall mean the union of the acting entity and all\n      other entities that control, are controlled by, or are under common\n      control with that entity. For the purposes of this definition,\n      \"control\" means (i) the power, direct or indirect, to cause the\n      direction or management of such entity, whether by contract or\n      otherwise, or (ii) ownership of fifty percent (50%) or more of the\n      outstanding shares, or (iii) beneficial ownership of such entity.\n\n      \"You\" (or \"Your\") shall mean an individual or Legal Entity\n      exercising permissions granted by this License.\n\n      \"Source\" form shall mean the preferred form for making modifications,\n      including but not limited to software source code, documentation\n      source, and configuration files.\n\n      \"Object\" form shall mean any form resulting from mechanical\n      transformation or translation of a Source form, including but\n      not limited to compiled object code, generated documentation,\n      and conversions to other media types.\n\n      \"Work\" shall mean the work of authorship, whether in Source or\n      Object form, made available under the License, as indicated by a\n      copyright notice that is included in or attached to the work\n      (an example is provided in the Appendix below).\n\n      \"Derivative Works\" shall mean any work, whether in Source or Object\n      form, that is based on (or derived from) the Work and for which the\n      editorial revisions, annotations, elaborations, or other modifications\n      represent, as a whole, an original work of authorship. For the purposes\n      of this License, Derivative Works shall not include works that remain\n      separable from, or merely link (or bind by name) to the interfaces of,\n      the Work and Derivative Works thereof.\n\n      \"Contribution\" shall mean any work of authorship, including\n      the original version of the Work and any modifications or additions\n      to that Work or Derivative Works thereof, that is intentionally\n      submitted to Licensor for inclusion in the Work by the copyright owner\n      or by an individual or Legal Entity authorized to submit on behalf of\n      the copyright owner. For the purposes of this definition, \"submitted\"\n      means any form of electronic, verbal, or written communication sent\n      to the Licensor or its representatives, including but not limited to\n      communication on electronic mailing lists, source code control systems,\n      and issue tracking systems that are managed by, or on behalf of, the\n      Licensor for the purpose of discussing and improving the Work, but\n      excluding communication that is conspicuously marked or otherwise\n      designated in writing by the copyright owner as \"Not a Contribution.\"\n\n      \"Contributor\" shall mean Licensor and any individual or Legal Entity\n      on behalf of whom a Contribution has been received by Licensor and\n      subsequently incorporated within the Work.\n\n   2. Grant of Copyright License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      copyright license to reproduce, prepare Derivative Works of,\n      publicly display, publicly perform, sublicense, and distribute the\n      Work and such Derivative Works in Source or Object form.\n\n   3. Grant of Patent License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      (except as stated in this section) patent license to make, have made,\n      use, offer to sell, sell, import, and otherwise transfer the Work,\n      where such license applies only to those patent claims licensable\n      by such Contributor that are necessarily infringed by their\n      Contribution(s) alone or by combination of their Contribution(s)\n      with the Work to which such Contribution(s) was submitted. If You\n      institute patent litigation against any entity (including a\n      cross-claim or counterclaim in a lawsuit) alleging that the Work\n      or a Contribution incorporated within the Work constitutes direct\n      or contributory patent infringement, then any patent licenses\n      granted to You under this License for that Work shall terminate\n      as of the date such litigation is filed.\n\n   4. Redistribution. You may reproduce and distribute copies of the\n      Work or Derivative Works thereof in any medium, with or without\n      modifications, and in Source or Object form, provided that You\n      meet the following conditions:\n\n      (a) You must give any other recipients of the Work or\n          Derivative Works a copy of this License; and\n\n      (b) You must cause any modified files to carry prominent notices\n          stating that You changed the files; and\n\n      (c) You must retain, in the Source form of any Derivative Works\n          that You distribute, all copyright, patent, trademark, and\n          attribution notices from the Source form of the Work,\n          excluding those notices that do not pertain to any part of\n          the Derivative Works; and\n\n      (d) If the Work includes a \"NOTICE\" text file as part of its\n          distribution, then any Derivative Works that You distribute must\n          include a readable copy of the attribution notices contained\n          within such NOTICE file, excluding those notices that do not\n          pertain to any part of the Derivative Works, in at least one\n          of the following places: within a NOTICE text file distributed\n          as part of the Derivative Works; within the Source form or\n          documentation, if provided along with the Derivative Works; or,\n          within a display generated by the Derivative Works, if and\n          wherever such third-party notices normally appear. The contents\n          of the NOTICE file are for informational purposes only and\n          do not modify the License. You may add Your own attribution\n          notices within Derivative Works that You distribute, alongside\n          or as an addendum to the NOTICE text from the Work, provided\n          that such additional attribution notices cannot be construed\n          as modifying the License.\n\n      You may add Your own copyright statement to Your modifications and\n      may provide additional or different license terms and conditions\n      for use, reproduction, or distribution of Your modifications, or\n      for any such Derivative Works as a whole, provided Your use,\n      reproduction, and distribution of the Work otherwise complies with\n      the conditions stated in this License.\n\n   5. Submission of Contributions. Unless You explicitly state otherwise,\n      any Contribution intentionally submitted for inclusion in the Work\n      by You to the Licensor shall be under the terms and conditions of\n      this License, without any additional terms or conditions.\n      Notwithstanding the above, nothing herein shall supersede or modify\n      the terms of any separate license agreement you may have executed\n      with Licensor regarding such Contributions.\n\n   6. Trademarks. This License does not grant permission to use the trade\n      names, trademarks, service marks, or product names of the Licensor,\n      except as required for reasonable and customary use in describing the\n      origin of the Work and reproducing the content of the NOTICE file.\n\n   7. Disclaimer of Warranty. Unless required by applicable law or\n      agreed to in writing, Licensor provides the Work (and each\n      Contributor provides its Contributions) on an \"AS IS\" BASIS,\n      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n      implied, including, without limitation, any warranties or conditions\n      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n      PARTICULAR PURPOSE. You are solely responsible for determining the\n      appropriateness of using or redistributing the Work and assume any\n      risks associated with Your exercise of permissions under this License.\n\n   8. Limitation of Liability. In no event and under no legal theory,\n      whether in tort (including negligence), contract, or otherwise,\n      unless required by applicable law (such as deliberate and grossly\n      negligent acts) or agreed to in writing, shall any Contributor be\n      liable to You for damages, including any direct, indirect, special,\n      incidental, or consequential damages of any character arising as a\n      result of this License or out of the use or inability to use the\n      Work (including but not limited to damages for loss of goodwill,\n      work stoppage, computer failure or malfunction, or any and all\n      other commercial damages or losses), even if such Contributor\n      has been advised of the possibility of such damages.\n\n   9. Accepting Warranty or Additional Liability. While redistributing\n      the Work or Derivative Works thereof, You may choose to offer,\n      and charge a fee for, acceptance of support, warranty, indemnity,\n      or other liability obligations and/or rights consistent with this\n      License. However, in accepting such obligations, You may act only\n      on Your own behalf and on Your sole responsibility, not on behalf\n      of any other Contributor, and only if You agree to indemnify,\n      defend, and hold each Contributor harmless for any liability\n      incurred by, or claims asserted against, such Contributor by reason\n      of your accepting any such warranty or additional liability.\n\n   END OF TERMS AND CONDITIONS\n\n   APPENDIX: How to apply the Apache License to your work.\n\n      To apply the Apache License to your work, attach the following\n      boilerplate notice, with the fields enclosed by brackets \"{}\"\n      replaced with your own identifying information. (Don't include\n      the brackets!)  The text should be enclosed in the appropriate\n      comment syntax for the file format. We also recommend that a\n      file or class name and description of purpose be included on the\n      same \"printed page\" as the copyright notice for easier\n      identification within third-party archives.\n\n   Copyright {yyyy} {name of copyright owner}\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n","dependencies":{"react":"^16.3.0","redux":"^4.0.0","react-dom":"^16.3.0","recompose":"^0.30.0","redux-saga":"^0.15.6","react-redux":"^5.0.6","redux-thunk":"^2.2.0","video-react":"~0.13.0","shaka-player":"^2.4.1","babel-runtime":"^6.26.0","babel-polyfill":"^6.26.0","react-redux-saga":"^1.0.2","@material-ui/core":"^1.0.0","react-virtualized":"^9.18.5","@material-ui/icons":"^1.0.0","veritone-react-common":"^6.2.0","veritone-redux-common":"^3.7.0","veritone-oauth-helpers":"^2.1.0","redux-api-middleware-fixed":"^2.0.0"},"_hasShrinkwrap":false,"devDependencies":{"raf":"^3.4.0","jest":"^22.4.3","faker":"^4.1.0","enzyme":"^3.4.4","eslint":"^4.8.0","rimraf":"^2.6.2","rollup":"^0.55.1","webpack":"^4.0.1","cross-env":"^5.1.1","node-sass":"^4.7.2","stylelint":"^8.2.0","babel-core":"^6.26.0","url-loader":"^0.6.2","sass-loader":"^6.0.6","webpack-cli":"^2.0.9","babel-loader":"^7.1.3","redux-logger":"^3.0.6","redux-devtools":"^3.4.0","@storybook/react":"v3.3.9","redux-mock-store":"^1.3.0","veritone-dev-env":"^3.0.0","rollup-plugin-url":"^1.3.0","identity-obj-proxy":"^3.0.0","redux-validate-fsa":"^0.1.2","rollup-plugin-json":"^2.3.0","babel-plugin-lodash":"^3.3.2","eslint-plugin-react":"^7.8.2","react-test-renderer":"^16.0.0","rollup-plugin-alias":"^1.4.0","rollup-plugin-babel":"^3.0.3","eslint-plugin-import":"^2.10.0","eslint-plugin-lodash":"^2.4.5","babel-plugin-date-fns":"^0.1.0","eslint-plugin-promise":"^3.5.0","rollup-plugin-postcss":"^1.2.8","rollup-plugin-replace":"^2.0.0","@storybook/addon-knobs":"3.3.9","eslint-config-prettier":"^2.6.0","rollup-analyzer-plugin":"^1.1.1","rollup-plugin-commonjs":"^8.3.0","enzyme-adapter-react-16.3":"1.0.0","stylelint-config-prettier":"^4.0.0","stylelint-config-standard":"^17.0.0","rollup-plugin-node-resolve":"^3.0.2","babel-plugin-external-helpers":"^6.22.0","babel-plugin-transform-runtime":"^6.23.0","redux-immutable-state-invariant":"^2.1.0","babel-plugin-add-react-displayname":"^0.0.5","babel-plugin-transform-class-properties":"^6.24.1","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-plugin-transform-export-extensions":"^6.22.0","babel-plugin-transform-object-rest-spread":"^6.26.0"},"_npmOperationalInternal":{"tmp":"tmp/veritone-widgets_7.0.0_1549050156779_0.03082685987985423","host":"s3://npm-registry-packages"}},"7.1.0":{"name":"veritone-widgets","version":"7.1.0","license":"Apache-2.0","_id":"veritone-widgets@7.1.0","maintainers":[{"name":"albertcbrown","email":"al@veritone.com"},{"name":"atb91590","email":"atb91590@yahoo.com"},{"name":"coolmitch","email":"robb.mitch@gmail.com"},{"name":"steveshaffer","email":"steve@shaffer.ninja"},{"name":"tbui","email":"tbui@veritone.com"},{"name":"veritone_dev","email":"dev@veritone.com"}],"dist":{"shasum":"c7974c9ddacd5ed72f33effc6f805bd5248e3c76","tarball":"https://registry.npmjs.org/veritone-widgets/-/veritone-widgets-7.1.0.tgz","fileCount":176,"integrity":"sha512-FLZg/TryEV9AiwO0d+jhgoRaGyjERMX6Vy6r6wFw8Er7OdAnRFw8i0k3h3JzTj1NL0JC3edhfFS/3fuKfqIMiw==","signatures":[{"sig":"MEUCIQC+fbQLUNRpqa11FZt33M0no4aDi1fC5SUcTaxxZnUXywIgHsYBkhvIu9WoYjg2KfMREqEco9GMO0ps70/Q3Tc136U=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":15771655,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcsNnbCRA9TVsSAnZWagAA5NUP/j+MqJZdhSu59BdgFKm7\nvHfmMG1hStWGIEwG3z9A8MT3kNVSDgiyjTzOr3GtsCQjIROoa1xIAVfRkqoL\nsMiPbO+g+fIpQHCs3n+FKylFuBFP3P+hPknaAaTYhFlYnqQwtaDJJ6VsIIIn\nz9itJ5PqbdWxb97MpV9O9/AcJRdOX8XpmOVLwbBq3OlHzPUGtog6RMaG9GUV\nbYgTU8V8KLBEhCHLInRfUBuPErqmtelhrp5v1VPKkbPc4fdAjEbqsWiF2seZ\n/uBC2ORJ6xVVu1sjYHAnw+ygeKtlDOE5W2DHJurSHjPL4U9r/DcLwvdfJBaJ\ng9E+fve+CHxSPT7PFU5kYwuqUCmQKEYJEfX+5C3I3uLmuDpJegQKSI4UVznc\nSNfo+8gsZ3l3xwXMAxpJtsBOiVNZnjLnAv+01VsqYPQtFqd8twGR60HAyQPo\nP1I8h5lgzeJTy/8/k5vBAeoTn/KiX8XxcOTf971tqLWuRvmhw6sGvFZg+RoB\nMn48xj4rvFQtW3HFagNCqklDaB6a5SJ8qB5Q8pV7DVMhQ5w84f3J1+Ppmcql\nuPjsNydkbEG0tOka8onFGDtPtY8ic/hq9JI/+CFvFLBU9Xitg0df7+O/tqQE\n9O1ZxWnFXwyI3USb8pNOCyo2eCAghHD2IANA9YJPDqCjJtE2v42mFxbfGor0\nw0Lj\r\n=9wNR\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"setupFiles":["<rootDir>/test/testSuitePolyfills.js","<rootDir>/test/configureEnzyme.js"],"moduleNameMapper":{"\\.(css|scss)$":"identity-obj-proxy","\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$":"<rootDir>/test/__mocks__/fileMock.js"},"moduleDirectories":["node_modules"],"moduleFileExtensions":["js","jsx"]},"main":"dist/bundle-cjs.js","module":"dist/bundle-es.js","scripts":{"lint":"yarn run lint:js && yarn run lint:styles","test":"jest","build":"yarn run build:es && yarn run build:cjs && yarn run build:script-tag","start":"yarn run start:widget-server; yarn run start:storybook","format":"prettier --write \"./src/**/*.{js,scss}\"","lint:js":"eslint src/** --ext .js --max-warnings 0","build:es":"cross-env NODE_ENV=production BABEL_ENV=production-es rollup -c rollup.config.es.js","prebuild":"yarn run clean:build","build:cjs":"cross-env NODE_ENV=production BABEL_ENV=production-cjs rollup -c rollup.config.cjs.js","test:watch":"jest --watch","build:watch":"cross-env NODE_ENV=production rollup -c --watch","clean:build":"rimraf dist","lint:styles":"stylelint \"src/**/*.{scss, css}\"","prepublishOnly":"yarn run test && yarn run lint && yarn run build","build:storybook":"NODE_ENV=production build-storybook -c .storybook -o docs-static","start:storybook":"NODE_ENV=test start-storybook -p 3000 -c .storybook","build:script-tag":"cross-env NODE_ENV=production BABEL_ENV=production-cjs webpack --config webpack.config.script-tag.js","start:widget-server":"yarn workspace veritone-widgets-server run start &"},"_npmUser":{"name":"atb91590","email":"atb91590@yahoo.com"},"description":"As of v5.0.0, this package exports both React \"smart components\" and framework agnostic \"widgets\" for most components. When both are available, the smart component is the default export and the widget is a named export. For example, `import FilePicker, { ","directories":{},"jsnext:main":"dist/bundle-es.js","licenseText":"                                 Apache License\n                           Version 2.0, January 2004\n                        http://www.apache.org/licenses/\n\n   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n   1. Definitions.\n\n      \"License\" shall mean the terms and conditions for use, reproduction,\n      and distribution as defined by Sections 1 through 9 of this document.\n\n      \"Licensor\" shall mean the copyright owner or entity authorized by\n      the copyright owner that is granting the License.\n\n      \"Legal Entity\" shall mean the union of the acting entity and all\n      other entities that control, are controlled by, or are under common\n      control with that entity. For the purposes of this definition,\n      \"control\" means (i) the power, direct or indirect, to cause the\n      direction or management of such entity, whether by contract or\n      otherwise, or (ii) ownership of fifty percent (50%) or more of the\n      outstanding shares, or (iii) beneficial ownership of such entity.\n\n      \"You\" (or \"Your\") shall mean an individual or Legal Entity\n      exercising permissions granted by this License.\n\n      \"Source\" form shall mean the preferred form for making modifications,\n      including but not limited to software source code, documentation\n      source, and configuration files.\n\n      \"Object\" form shall mean any form resulting from mechanical\n      transformation or translation of a Source form, including but\n      not limited to compiled object code, generated documentation,\n      and conversions to other media types.\n\n      \"Work\" shall mean the work of authorship, whether in Source or\n      Object form, made available under the License, as indicated by a\n      copyright notice that is included in or attached to the work\n      (an example is provided in the Appendix below).\n\n      \"Derivative Works\" shall mean any work, whether in Source or Object\n      form, that is based on (or derived from) the Work and for which the\n      editorial revisions, annotations, elaborations, or other modifications\n      represent, as a whole, an original work of authorship. For the purposes\n      of this License, Derivative Works shall not include works that remain\n      separable from, or merely link (or bind by name) to the interfaces of,\n      the Work and Derivative Works thereof.\n\n      \"Contribution\" shall mean any work of authorship, including\n      the original version of the Work and any modifications or additions\n      to that Work or Derivative Works thereof, that is intentionally\n      submitted to Licensor for inclusion in the Work by the copyright owner\n      or by an individual or Legal Entity authorized to submit on behalf of\n      the copyright owner. For the purposes of this definition, \"submitted\"\n      means any form of electronic, verbal, or written communication sent\n      to the Licensor or its representatives, including but not limited to\n      communication on electronic mailing lists, source code control systems,\n      and issue tracking systems that are managed by, or on behalf of, the\n      Licensor for the purpose of discussing and improving the Work, but\n      excluding communication that is conspicuously marked or otherwise\n      designated in writing by the copyright owner as \"Not a Contribution.\"\n\n      \"Contributor\" shall mean Licensor and any individual or Legal Entity\n      on behalf of whom a Contribution has been received by Licensor and\n      subsequently incorporated within the Work.\n\n   2. Grant of Copyright License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      copyright license to reproduce, prepare Derivative Works of,\n      publicly display, publicly perform, sublicense, and distribute the\n      Work and such Derivative Works in Source or Object form.\n\n   3. Grant of Patent License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      (except as stated in this section) patent license to make, have made,\n      use, offer to sell, sell, import, and otherwise transfer the Work,\n      where such license applies only to those patent claims licensable\n      by such Contributor that are necessarily infringed by their\n      Contribution(s) alone or by combination of their Contribution(s)\n      with the Work to which such Contribution(s) was submitted. If You\n      institute patent litigation against any entity (including a\n      cross-claim or counterclaim in a lawsuit) alleging that the Work\n      or a Contribution incorporated within the Work constitutes direct\n      or contributory patent infringement, then any patent licenses\n      granted to You under this License for that Work shall terminate\n      as of the date such litigation is filed.\n\n   4. Redistribution. You may reproduce and distribute copies of the\n      Work or Derivative Works thereof in any medium, with or without\n      modifications, and in Source or Object form, provided that You\n      meet the following conditions:\n\n      (a) You must give any other recipients of the Work or\n          Derivative Works a copy of this License; and\n\n      (b) You must cause any modified files to carry prominent notices\n          stating that You changed the files; and\n\n      (c) You must retain, in the Source form of any Derivative Works\n          that You distribute, all copyright, patent, trademark, and\n          attribution notices from the Source form of the Work,\n          excluding those notices that do not pertain to any part of\n          the Derivative Works; and\n\n      (d) If the Work includes a \"NOTICE\" text file as part of its\n          distribution, then any Derivative Works that You distribute must\n          include a readable copy of the attribution notices contained\n          within such NOTICE file, excluding those notices that do not\n          pertain to any part of the Derivative Works, in at least one\n          of the following places: within a NOTICE text file distributed\n          as part of the Derivative Works; within the Source form or\n          documentation, if provided along with the Derivative Works; or,\n          within a display generated by the Derivative Works, if and\n          wherever such third-party notices normally appear. The contents\n          of the NOTICE file are for informational purposes only and\n          do not modify the License. You may add Your own attribution\n          notices within Derivative Works that You distribute, alongside\n          or as an addendum to the NOTICE text from the Work, provided\n          that such additional attribution notices cannot be construed\n          as modifying the License.\n\n      You may add Your own copyright statement to Your modifications and\n      may provide additional or different license terms and conditions\n      for use, reproduction, or distribution of Your modifications, or\n      for any such Derivative Works as a whole, provided Your use,\n      reproduction, and distribution of the Work otherwise complies with\n      the conditions stated in this License.\n\n   5. Submission of Contributions. Unless You explicitly state otherwise,\n      any Contribution intentionally submitted for inclusion in the Work\n      by You to the Licensor shall be under the terms and conditions of\n      this License, without any additional terms or conditions.\n      Notwithstanding the above, nothing herein shall supersede or modify\n      the terms of any separate license agreement you may have executed\n      with Licensor regarding such Contributions.\n\n   6. Trademarks. This License does not grant permission to use the trade\n      names, trademarks, service marks, or product names of the Licensor,\n      except as required for reasonable and customary use in describing the\n      origin of the Work and reproducing the content of the NOTICE file.\n\n   7. Disclaimer of Warranty. Unless required by applicable law or\n      agreed to in writing, Licensor provides the Work (and each\n      Contributor provides its Contributions) on an \"AS IS\" BASIS,\n      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n      implied, including, without limitation, any warranties or conditions\n      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n      PARTICULAR PURPOSE. You are solely responsible for determining the\n      appropriateness of using or redistributing the Work and assume any\n      risks associated with Your exercise of permissions under this License.\n\n   8. Limitation of Liability. In no event and under no legal theory,\n      whether in tort (including negligence), contract, or otherwise,\n      unless required by applicable law (such as deliberate and grossly\n      negligent acts) or agreed to in writing, shall any Contributor be\n      liable to You for damages, including any direct, indirect, special,\n      incidental, or consequential damages of any character arising as a\n      result of this License or out of the use or inability to use the\n      Work (including but not limited to damages for loss of goodwill,\n      work stoppage, computer failure or malfunction, or any and all\n      other commercial damages or losses), even if such Contributor\n      has been advised of the possibility of such damages.\n\n   9. Accepting Warranty or Additional Liability. While redistributing\n      the Work or Derivative Works thereof, You may choose to offer,\n      and charge a fee for, acceptance of support, warranty, indemnity,\n      or other liability obligations and/or rights consistent with this\n      License. However, in accepting such obligations, You may act only\n      on Your own behalf and on Your sole responsibility, not on behalf\n      of any other Contributor, and only if You agree to indemnify,\n      defend, and hold each Contributor harmless for any liability\n      incurred by, or claims asserted against, such Contributor by reason\n      of your accepting any such warranty or additional liability.\n\n   END OF TERMS AND CONDITIONS\n\n   APPENDIX: How to apply the Apache License to your work.\n\n      To apply the Apache License to your work, attach the following\n      boilerplate notice, with the fields enclosed by brackets \"{}\"\n      replaced with your own identifying information. (Don't include\n      the brackets!)  The text should be enclosed in the appropriate\n      comment syntax for the file format. We also recommend that a\n      file or class name and description of purpose be included on the\n      same \"printed page\" as the copyright notice for easier\n      identification within third-party archives.\n\n   Copyright {yyyy} {name of copyright owner}\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n","dependencies":{"react":"^16.3.0","redux":"^4.0.0","react-dom":"^16.3.0","recompose":"^0.30.0","redux-saga":"^0.15.6","react-redux":"^5.0.6","redux-thunk":"^2.2.0","video-react":"~0.13.0","shaka-player":"^2.4.1","babel-runtime":"^6.26.0","babel-polyfill":"^6.26.0","react-redux-saga":"^1.0.2","@material-ui/core":"^1.0.0","react-virtualized":"^9.18.5","@material-ui/icons":"^1.0.0","veritone-react-common":"^6.2.0","veritone-redux-common":"^3.7.0","veritone-oauth-helpers":"^2.1.0","redux-api-middleware-fixed":"^2.0.0"},"_hasShrinkwrap":false,"devDependencies":{"raf":"^3.4.0","jest":"^22.4.3","faker":"^4.1.0","enzyme":"^3.4.4","eslint":"^4.8.0","rimraf":"^2.6.2","rollup":"^0.55.1","webpack":"^4.0.1","cross-env":"^5.1.1","node-sass":"^4.7.2","stylelint":"^8.2.0","babel-core":"^6.26.0","url-loader":"^0.6.2","sass-loader":"^6.0.6","webpack-cli":"^2.0.9","babel-loader":"^7.1.3","redux-logger":"^3.0.6","redux-devtools":"^3.4.0","@storybook/react":"v3.3.9","redux-mock-store":"^1.3.0","veritone-dev-env":"^3.0.0","rollup-plugin-url":"^1.3.0","identity-obj-proxy":"^3.0.0","redux-validate-fsa":"^0.1.2","rollup-plugin-json":"^2.3.0","babel-plugin-lodash":"^3.3.2","eslint-plugin-react":"^7.8.2","react-test-renderer":"^16.0.0","rollup-plugin-alias":"^1.4.0","rollup-plugin-babel":"^3.0.3","eslint-plugin-import":"^2.10.0","eslint-plugin-lodash":"^2.4.5","babel-plugin-date-fns":"^0.1.0","eslint-plugin-promise":"^3.5.0","rollup-plugin-postcss":"^1.2.8","rollup-plugin-replace":"^2.0.0","@storybook/addon-knobs":"3.3.9","eslint-config-prettier":"^2.6.0","rollup-analyzer-plugin":"^1.1.1","rollup-plugin-commonjs":"^8.3.0","enzyme-adapter-react-16.3":"1.0.0","stylelint-config-prettier":"^4.0.0","stylelint-config-standard":"^17.0.0","rollup-plugin-node-resolve":"^3.0.2","babel-plugin-external-helpers":"^6.22.0","babel-plugin-transform-runtime":"^6.23.0","redux-immutable-state-invariant":"^2.1.0","babel-plugin-add-react-displayname":"^0.0.5","babel-plugin-transform-class-properties":"^6.24.1","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-plugin-transform-export-extensions":"^6.22.0","babel-plugin-transform-object-rest-spread":"^6.26.0"},"_npmOperationalInternal":{"tmp":"tmp/veritone-widgets_7.1.0_1555093978529_0.48188033637395367","host":"s3://npm-registry-packages"}},"7.1.1":{"name":"veritone-widgets","version":"7.1.1","license":"Apache-2.0","_id":"veritone-widgets@7.1.1","maintainers":[{"name":"albertcbrown","email":"al@veritone.com"},{"name":"atb91590","email":"atb91590@yahoo.com"},{"name":"coolmitch","email":"robb.mitch@gmail.com"},{"name":"steveshaffer","email":"steve@shaffer.ninja"},{"name":"tbui","email":"tbui@veritone.com"},{"name":"veritone_dev","email":"dev@veritone.com"}],"dist":{"shasum":"2c6be65a5d25e44064dd528241f894427b1b84ab","tarball":"https://registry.npmjs.org/veritone-widgets/-/veritone-widgets-7.1.1.tgz","fileCount":176,"integrity":"sha512-+CrZ9HHfmSilUUOghY1kbgNcDK6bfG3/gIywyHl0QEdgtMLIMrdZBdyoVUeskwp+5pVzmS0//+MGSH2vjBiNhA==","signatures":[{"sig":"MEYCIQCklGoyhtVp6dyeNK53BNHL7Gfa2O3IadJQy4kSMLhrAgIhAObG2hf6l/xgGvMdTzK2Us6HDT3UZMDb4Cv8yg7cBnxZ","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":14589945,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcy4YqCRA9TVsSAnZWagAAluIP/2FYdYQN5J6fiOY9azdo\n7XWoYKjOSPfcF2vZ6+EX820B8pssebEEjn9h35JDOCtqcd7SksLmnLxe03qm\n/QUKUMDNwL3HWMckBT5ibel0zmBg56GyvnEa0qOhHf85TCYy6unU0VPj2BnD\nAC6wpUPnf81eeVh/ETkCpPtyl47MZuGAmhyhHtHDbLmSsMn9ANNMOlTtQb5D\nPIlHCVgQ6GXVXwLWJ6FZVyZMXTYxpUTVE7jCmuSIlnyLCfpfGA1miEvMeT6e\nSeGt/a/I+AX5G3Fy0m9ejGAWyU3Df2E+daA87/hpjD4hZBD21InpvRi3Pi4O\n8SvUHzEILaNM1soP43qNQqRWKyN6m27ruMrEObZiK/is4VV6BHWrI0tcLYGw\n31JLtGaEQJ8D/UN+STX3+YVunFWeDQT2ughJe8OsIfEoHSTLLEXZfHgurECY\n4wHPZRE12UecjwEHWZqfEJCFnV5pvlv2h5GdfPM8VP6V27lXRVE/oiMzB//D\nNwh4eoXmh95xVAdTxDzTSlRKi9LCw0kWL+GSq0z3/mF0Aa+fbztc1LO6ZrMA\nYMUvPGCtOPMAuSU8cZ2FQD+5m1CHTtLXMWq/OCxrlk31oaoh8GJ67tyOp/R/\n7Sseyv3f3X1+4og+KeXn30wxR/GLL9FMoVHJto4LUS/wuftnKwMEdp5MvcJb\n9ZeU\r\n=bMX7\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"setupFiles":["<rootDir>/test/testSuitePolyfills.js","<rootDir>/test/configureEnzyme.js"],"moduleNameMapper":{"\\.(css|scss)$":"identity-obj-proxy","\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$":"<rootDir>/test/__mocks__/fileMock.js"},"moduleDirectories":["node_modules"],"moduleFileExtensions":["js","jsx"]},"main":"dist/bundle-cjs.js","module":"dist/bundle-es.js","scripts":{"lint":"yarn run lint:js && yarn run lint:styles","test":"jest","build":"yarn run build:es && yarn run build:cjs && yarn run build:script-tag","start":"yarn run start:widget-server; yarn run start:storybook","format":"prettier --write \"./src/**/*.{js,scss}\"","lint:js":"eslint src/** --ext .js --max-warnings 0","build:es":"cross-env NODE_ENV=production BABEL_ENV=production-es rollup -c rollup.config.es.js","prebuild":"yarn run clean:build","build:cjs":"cross-env NODE_ENV=production BABEL_ENV=production-cjs rollup -c rollup.config.cjs.js","test:watch":"jest --watch","build:watch":"cross-env NODE_ENV=production rollup -c --watch","clean:build":"rimraf dist","lint:styles":"stylelint \"src/**/*.{scss, css}\"","prepublishOnly":"yarn run test && yarn run lint && yarn run build","build:storybook":"NODE_ENV=production build-storybook -c .storybook -o docs-static","start:storybook":"NODE_ENV=test start-storybook -p 3000 -c .storybook","build:script-tag":"cross-env NODE_ENV=production BABEL_ENV=production-cjs webpack --config webpack.config.script-tag.js","start:widget-server":"yarn workspace veritone-widgets-server run start &"},"_npmUser":{"name":"atb91590","email":"atb91590@yahoo.com"},"description":"As of v5.0.0, this package exports both React \"smart components\" and framework agnostic \"widgets\" for most components. When both are available, the smart component is the default export and the widget is a named export. For example, `import FilePicker, { ","directories":{},"jsnext:main":"dist/bundle-es.js","licenseText":"                                 Apache License\n                           Version 2.0, January 2004\n                        http://www.apache.org/licenses/\n\n   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n   1. Definitions.\n\n      \"License\" shall mean the terms and conditions for use, reproduction,\n      and distribution as defined by Sections 1 through 9 of this document.\n\n      \"Licensor\" shall mean the copyright owner or entity authorized by\n      the copyright owner that is granting the License.\n\n      \"Legal Entity\" shall mean the union of the acting entity and all\n      other entities that control, are controlled by, or are under common\n      control with that entity. For the purposes of this definition,\n      \"control\" means (i) the power, direct or indirect, to cause the\n      direction or management of such entity, whether by contract or\n      otherwise, or (ii) ownership of fifty percent (50%) or more of the\n      outstanding shares, or (iii) beneficial ownership of such entity.\n\n      \"You\" (or \"Your\") shall mean an individual or Legal Entity\n      exercising permissions granted by this License.\n\n      \"Source\" form shall mean the preferred form for making modifications,\n      including but not limited to software source code, documentation\n      source, and configuration files.\n\n      \"Object\" form shall mean any form resulting from mechanical\n      transformation or translation of a Source form, including but\n      not limited to compiled object code, generated documentation,\n      and conversions to other media types.\n\n      \"Work\" shall mean the work of authorship, whether in Source or\n      Object form, made available under the License, as indicated by a\n      copyright notice that is included in or attached to the work\n      (an example is provided in the Appendix below).\n\n      \"Derivative Works\" shall mean any work, whether in Source or Object\n      form, that is based on (or derived from) the Work and for which the\n      editorial revisions, annotations, elaborations, or other modifications\n      represent, as a whole, an original work of authorship. For the purposes\n      of this License, Derivative Works shall not include works that remain\n      separable from, or merely link (or bind by name) to the interfaces of,\n      the Work and Derivative Works thereof.\n\n      \"Contribution\" shall mean any work of authorship, including\n      the original version of the Work and any modifications or additions\n      to that Work or Derivative Works thereof, that is intentionally\n      submitted to Licensor for inclusion in the Work by the copyright owner\n      or by an individual or Legal Entity authorized to submit on behalf of\n      the copyright owner. For the purposes of this definition, \"submitted\"\n      means any form of electronic, verbal, or written communication sent\n      to the Licensor or its representatives, including but not limited to\n      communication on electronic mailing lists, source code control systems,\n      and issue tracking systems that are managed by, or on behalf of, the\n      Licensor for the purpose of discussing and improving the Work, but\n      excluding communication that is conspicuously marked or otherwise\n      designated in writing by the copyright owner as \"Not a Contribution.\"\n\n      \"Contributor\" shall mean Licensor and any individual or Legal Entity\n      on behalf of whom a Contribution has been received by Licensor and\n      subsequently incorporated within the Work.\n\n   2. Grant of Copyright License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      copyright license to reproduce, prepare Derivative Works of,\n      publicly display, publicly perform, sublicense, and distribute the\n      Work and such Derivative Works in Source or Object form.\n\n   3. Grant of Patent License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      (except as stated in this section) patent license to make, have made,\n      use, offer to sell, sell, import, and otherwise transfer the Work,\n      where such license applies only to those patent claims licensable\n      by such Contributor that are necessarily infringed by their\n      Contribution(s) alone or by combination of their Contribution(s)\n      with the Work to which such Contribution(s) was submitted. If You\n      institute patent litigation against any entity (including a\n      cross-claim or counterclaim in a lawsuit) alleging that the Work\n      or a Contribution incorporated within the Work constitutes direct\n      or contributory patent infringement, then any patent licenses\n      granted to You under this License for that Work shall terminate\n      as of the date such litigation is filed.\n\n   4. Redistribution. You may reproduce and distribute copies of the\n      Work or Derivative Works thereof in any medium, with or without\n      modifications, and in Source or Object form, provided that You\n      meet the following conditions:\n\n      (a) You must give any other recipients of the Work or\n          Derivative Works a copy of this License; and\n\n      (b) You must cause any modified files to carry prominent notices\n          stating that You changed the files; and\n\n      (c) You must retain, in the Source form of any Derivative Works\n          that You distribute, all copyright, patent, trademark, and\n          attribution notices from the Source form of the Work,\n          excluding those notices that do not pertain to any part of\n          the Derivative Works; and\n\n      (d) If the Work includes a \"NOTICE\" text file as part of its\n          distribution, then any Derivative Works that You distribute must\n          include a readable copy of the attribution notices contained\n          within such NOTICE file, excluding those notices that do not\n          pertain to any part of the Derivative Works, in at least one\n          of the following places: within a NOTICE text file distributed\n          as part of the Derivative Works; within the Source form or\n          documentation, if provided along with the Derivative Works; or,\n          within a display generated by the Derivative Works, if and\n          wherever such third-party notices normally appear. The contents\n          of the NOTICE file are for informational purposes only and\n          do not modify the License. You may add Your own attribution\n          notices within Derivative Works that You distribute, alongside\n          or as an addendum to the NOTICE text from the Work, provided\n          that such additional attribution notices cannot be construed\n          as modifying the License.\n\n      You may add Your own copyright statement to Your modifications and\n      may provide additional or different license terms and conditions\n      for use, reproduction, or distribution of Your modifications, or\n      for any such Derivative Works as a whole, provided Your use,\n      reproduction, and distribution of the Work otherwise complies with\n      the conditions stated in this License.\n\n   5. Submission of Contributions. Unless You explicitly state otherwise,\n      any Contribution intentionally submitted for inclusion in the Work\n      by You to the Licensor shall be under the terms and conditions of\n      this License, without any additional terms or conditions.\n      Notwithstanding the above, nothing herein shall supersede or modify\n      the terms of any separate license agreement you may have executed\n      with Licensor regarding such Contributions.\n\n   6. Trademarks. This License does not grant permission to use the trade\n      names, trademarks, service marks, or product names of the Licensor,\n      except as required for reasonable and customary use in describing the\n      origin of the Work and reproducing the content of the NOTICE file.\n\n   7. Disclaimer of Warranty. Unless required by applicable law or\n      agreed to in writing, Licensor provides the Work (and each\n      Contributor provides its Contributions) on an \"AS IS\" BASIS,\n      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n      implied, including, without limitation, any warranties or conditions\n      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n      PARTICULAR PURPOSE. You are solely responsible for determining the\n      appropriateness of using or redistributing the Work and assume any\n      risks associated with Your exercise of permissions under this License.\n\n   8. Limitation of Liability. In no event and under no legal theory,\n      whether in tort (including negligence), contract, or otherwise,\n      unless required by applicable law (such as deliberate and grossly\n      negligent acts) or agreed to in writing, shall any Contributor be\n      liable to You for damages, including any direct, indirect, special,\n      incidental, or consequential damages of any character arising as a\n      result of this License or out of the use or inability to use the\n      Work (including but not limited to damages for loss of goodwill,\n      work stoppage, computer failure or malfunction, or any and all\n      other commercial damages or losses), even if such Contributor\n      has been advised of the possibility of such damages.\n\n   9. Accepting Warranty or Additional Liability. While redistributing\n      the Work or Derivative Works thereof, You may choose to offer,\n      and charge a fee for, acceptance of support, warranty, indemnity,\n      or other liability obligations and/or rights consistent with this\n      License. However, in accepting such obligations, You may act only\n      on Your own behalf and on Your sole responsibility, not on behalf\n      of any other Contributor, and only if You agree to indemnify,\n      defend, and hold each Contributor harmless for any liability\n      incurred by, or claims asserted against, such Contributor by reason\n      of your accepting any such warranty or additional liability.\n\n   END OF TERMS AND CONDITIONS\n\n   APPENDIX: How to apply the Apache License to your work.\n\n      To apply the Apache License to your work, attach the following\n      boilerplate notice, with the fields enclosed by brackets \"{}\"\n      replaced with your own identifying information. (Don't include\n      the brackets!)  The text should be enclosed in the appropriate\n      comment syntax for the file format. We also recommend that a\n      file or class name and description of purpose be included on the\n      same \"printed page\" as the copyright notice for easier\n      identification within third-party archives.\n\n   Copyright {yyyy} {name of copyright owner}\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n","dependencies":{"react":"^16.3.0","redux":"^4.0.0","react-dom":"^16.3.0","recompose":"^0.30.0","redux-saga":"^0.15.6","react-redux":"^5.0.6","redux-thunk":"^2.2.0","video-react":"~0.13.0","shaka-player":"^2.4.1","babel-runtime":"^6.26.0","babel-polyfill":"^6.26.0","react-redux-saga":"^1.0.2","@material-ui/core":"^1.0.0","react-virtualized":"^9.18.5","@material-ui/icons":"^1.0.0","veritone-react-common":"^6.2.0","veritone-redux-common":"^3.7.0","veritone-oauth-helpers":"^2.1.0","redux-api-middleware-fixed":"^2.0.0"},"_hasShrinkwrap":false,"devDependencies":{"raf":"^3.4.0","jest":"^22.4.3","faker":"^4.1.0","enzyme":"^3.4.4","eslint":"^4.8.0","rimraf":"^2.6.2","rollup":"^0.55.1","webpack":"^4.0.1","cross-env":"^5.1.1","node-sass":"^4.7.2","stylelint":"^8.2.0","babel-core":"^6.26.0","url-loader":"^0.6.2","sass-loader":"^6.0.6","webpack-cli":"^2.0.9","babel-loader":"^7.1.3","redux-logger":"^3.0.6","redux-devtools":"^3.4.0","@storybook/react":"v3.3.9","redux-mock-store":"^1.3.0","veritone-dev-env":"^3.0.0","rollup-plugin-url":"^1.3.0","identity-obj-proxy":"^3.0.0","redux-validate-fsa":"^0.1.2","rollup-plugin-json":"^2.3.0","babel-plugin-lodash":"^3.3.2","eslint-plugin-react":"^7.8.2","react-test-renderer":"^16.0.0","rollup-plugin-alias":"^1.4.0","rollup-plugin-babel":"^3.0.3","eslint-plugin-import":"^2.10.0","eslint-plugin-lodash":"^2.4.5","babel-plugin-date-fns":"^0.1.0","eslint-plugin-promise":"^3.5.0","rollup-plugin-postcss":"^1.2.8","rollup-plugin-replace":"^2.0.0","@storybook/addon-knobs":"3.3.9","eslint-config-prettier":"^2.6.0","rollup-analyzer-plugin":"^1.1.1","rollup-plugin-commonjs":"^8.3.0","enzyme-adapter-react-16.3":"1.0.0","stylelint-config-prettier":"^4.0.0","stylelint-config-standard":"^17.0.0","rollup-plugin-node-resolve":"^3.0.2","babel-plugin-external-helpers":"^6.22.0","babel-plugin-transform-runtime":"^6.23.0","redux-immutable-state-invariant":"^2.1.0","babel-plugin-add-react-displayname":"^0.0.5","babel-plugin-transform-class-properties":"^6.24.1","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-plugin-transform-export-extensions":"^6.22.0","babel-plugin-transform-object-rest-spread":"^6.26.0"},"_npmOperationalInternal":{"tmp":"tmp/veritone-widgets_7.1.1_1556842025276_0.2425496163516705","host":"s3://npm-registry-packages"}},"7.1.2":{"name":"veritone-widgets","version":"7.1.2","license":"Apache-2.0","_id":"veritone-widgets@7.1.2","maintainers":[{"name":"albertcbrown","email":"al@veritone.com"},{"name":"andrew.tung","email":"atungw@gmail.com"},{"name":"atb91590","email":"atb91590@yahoo.com"},{"name":"coolmitch","email":"robb.mitch@gmail.com"},{"name":"steveshaffer","email":"steve@shaffer.ninja"},{"name":"tbui","email":"tbui@veritone.com"},{"name":"veritone_dev","email":"dev@veritone.com"}],"dist":{"shasum":"7eda6f362d60f5ff7f52d24b356647c7e06ac122","tarball":"https://registry.npmjs.org/veritone-widgets/-/veritone-widgets-7.1.2.tgz","fileCount":129,"integrity":"sha512-yPVWGrHpICDZKIokgOVg4GMpL/GblPaAbiUXjM1c7PzkxF73jGR5BHFpnOi2wvpUwRJVabiDTqFHH+TV6JSBtQ==","signatures":[{"sig":"MEYCIQDO2FDPOsDu4gnynIGn44amitYEfNPuhRtp+zNzVqV4CAIhAMhCnSh2Z03gZfMdrTKDFfaOBSVmW7whbASa9SF5+0OC","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":15329621,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJcz4h4CRA9TVsSAnZWagAADWwP/2UWgmDW1OvJiCX0g+2b\nWPWdpY8Cg7a4PF65NiTrZ8fq2B6AMVeuqA4IiR84eFzHwd/m2GJJQwywTdK6\nUgB0qDqhgMQAV8/ompCDFZDslafw9/LIIa1GPmwnkoUzhxgSFccru7LtbZ4k\nGwFSxJ29rNOtURfADDn6KdMrPAD2c/ODemSAoqFIUS20QzLcqhmlrCfl35sV\npcF/YvTh+uXSc3X9aaSuqF0KUhiNVDqSGIh5GWM6UY5jyOf4L6zUjZVuA/m3\nP95OwmdirlB/Y5TUMXe2LPMicgiDp5q/pup8dxRVG66J8H9V0/JLpF5nlKlq\nQM0A9COjO1nip+ghtcVoMLcP2Go8EhTIeML55QCdEP/RAONLjlIgG+tH6mO9\nNdS7ezMUdvV5F2DTQwlnj1gU4UHiI8xoYYPSzSuvKSlqbRfPcxeaUCIGbbyG\npzYj4JVwIINudfRccshhiZsMxWyfel9EIRvRzvfZWQkveHYnzZEEOnoZony6\nfcGpEksw4Rro7uBGpywVGuf2n10gnJpbnpHePOeVo47IiXlwvpIImzVh6kqV\nt3Ckx7i3XtMA8V4d8UDBeQI6dZ2bz+00/XwvlaJd8QMqyTg4dQ75Cmv0ceNi\nYmP5jgd4TDbIcvBvvq0DRYRkacgHQK4ad+qSwG5QufC+rezKTVmMXgFgJTa3\nIDjO\r\n=k0uY\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"setupFiles":["<rootDir>/test/testSuitePolyfills.js","<rootDir>/test/configureEnzyme.js"],"moduleNameMapper":{"\\.(css|scss)$":"identity-obj-proxy","\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$":"<rootDir>/test/__mocks__/fileMock.js"},"moduleDirectories":["node_modules"],"moduleFileExtensions":["js","jsx"]},"main":"dist/bundle-cjs.js","module":"dist/bundle-es.js","scripts":{"lint":"yarn run lint:js && yarn run lint:styles","test":"jest","build":"yarn run build:es && yarn run build:cjs && yarn run build:script-tag","start":"yarn run start:widget-server; yarn run start:storybook","format":"prettier --write \"./src/**/*.{js,scss}\"","lint:js":"eslint src/** --ext .js --max-warnings 0","build:es":"cross-env NODE_ENV=production BABEL_ENV=production-es rollup -c rollup.config.es.js","prebuild":"yarn run clean:build","build:cjs":"cross-env NODE_ENV=production BABEL_ENV=production-cjs rollup -c rollup.config.cjs.js","test:watch":"jest --watch","build:watch":"cross-env NODE_ENV=production rollup -c --watch","clean:build":"rimraf dist","lint:styles":"stylelint \"src/**/*.{scss, css}\"","prepublishOnly":"yarn run test && yarn run lint && yarn run build","build:storybook":"NODE_ENV=production build-storybook -c .storybook -o docs-static","start:storybook":"NODE_ENV=test start-storybook -p 3000 -c .storybook","build:script-tag":"cross-env NODE_ENV=production BABEL_ENV=production-cjs webpack --config webpack.config.script-tag.js","start:widget-server":"yarn workspace veritone-widgets-server run start &"},"_npmUser":{"name":"andrew.tung","email":"atungw@gmail.com"},"_npmVersion":"6.4.1","description":"As of v5.0.0, this package exports both React \"smart components\" and framework agnostic \"widgets\" for most components. When both are available, the smart component is the default export and the widget is a named export. For example, `import FilePicker, { ","directories":{},"jsnext:main":"dist/bundle-es.js","_nodeVersion":"8.4.0","dependencies":{"react":"^16.3.0","redux":"^4.0.0","react-dom":"^16.3.0","recompose":"^0.30.0","redux-saga":"^0.15.6","react-redux":"^5.0.6","redux-thunk":"^2.2.0","video-react":"~0.13.0","shaka-player":"^2.4.1","babel-runtime":"^6.26.0","babel-polyfill":"^6.26.0","react-redux-saga":"^1.0.2","@material-ui/core":"^1.0.0","react-virtualized":"^9.18.5","@material-ui/icons":"^1.0.0","veritone-react-common":"7.0.1","veritone-redux-common":"^3.7.0","veritone-oauth-helpers":"^2.1.0","redux-api-middleware-fixed":"^2.0.0"},"_hasShrinkwrap":false,"devDependencies":{"raf":"^3.4.0","jest":"^22.4.3","faker":"^4.1.0","enzyme":"^3.4.4","eslint":"^4.8.0","rimraf":"^2.6.2","rollup":"^0.55.1","webpack":"^4.0.1","cross-env":"^5.1.1","node-sass":"^4.7.2","stylelint":"^8.2.0","babel-core":"^6.26.0","url-loader":"^0.6.2","sass-loader":"^6.0.6","webpack-cli":"^2.0.9","babel-loader":"^7.1.3","redux-logger":"^3.0.6","redux-devtools":"^3.4.0","@storybook/react":"v3.3.9","redux-mock-store":"^1.3.0","veritone-dev-env":"^3.0.0","rollup-plugin-url":"^1.3.0","identity-obj-proxy":"^3.0.0","redux-validate-fsa":"^0.1.2","rollup-plugin-json":"^2.3.0","babel-plugin-lodash":"^3.3.2","eslint-plugin-react":"^7.8.2","react-test-renderer":"^16.0.0","rollup-plugin-alias":"^1.4.0","rollup-plugin-babel":"^3.0.3","eslint-plugin-import":"^2.10.0","eslint-plugin-lodash":"^2.4.5","babel-plugin-date-fns":"^0.1.0","eslint-plugin-promise":"^3.5.0","rollup-plugin-postcss":"^1.2.8","rollup-plugin-replace":"^2.0.0","@storybook/addon-knobs":"3.3.9","eslint-config-prettier":"^2.6.0","rollup-analyzer-plugin":"^1.1.1","rollup-plugin-commonjs":"^8.3.0","enzyme-adapter-react-16.3":"1.0.0","stylelint-config-prettier":"^4.0.0","stylelint-config-standard":"^17.0.0","rollup-plugin-node-resolve":"^3.0.2","babel-plugin-external-helpers":"^6.22.0","babel-plugin-transform-runtime":"^6.23.0","redux-immutable-state-invariant":"^2.1.0","babel-plugin-add-react-displayname":"^0.0.5","babel-plugin-transform-class-properties":"^6.24.1","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-plugin-transform-export-extensions":"^6.22.0","babel-plugin-transform-object-rest-spread":"^6.26.0"},"_npmOperationalInternal":{"tmp":"tmp/veritone-widgets_7.1.2_1557104759691_0.24395270876868635","host":"s3://npm-registry-packages"}},"7.1.3":{"name":"veritone-widgets","version":"7.1.3","license":"Apache-2.0","_id":"veritone-widgets@7.1.3","maintainers":[{"name":"albertcbrown","email":"al@veritone.com"},{"name":"andrew.tung","email":"atungw@gmail.com"},{"name":"atb91590","email":"atb91590@yahoo.com"},{"name":"coolmitch","email":"robb.mitch@gmail.com"},{"name":"steveshaffer","email":"steve@shaffer.ninja"},{"name":"tbui","email":"tbui@veritone.com"},{"name":"veritone_dev","email":"dev@veritone.com"},{"name":"veritone-jordan","email":"jbelford@veritone.com"}],"dist":{"shasum":"9199350c54b08c14c708a83ef874e9509cbea73e","tarball":"https://registry.npmjs.org/veritone-widgets/-/veritone-widgets-7.1.3.tgz","fileCount":177,"integrity":"sha512-MJx5YRQDE2C4O0bdj66nT1Q3KC0NKLQDpSpSEZ/gDj5ROvQ27pRNOFOyoXIThi3f0ivC4bH9JLjFgQy/bl25CQ==","signatures":[{"sig":"MEYCIQDZB+tlREq65JOlWN4hBrcM5NRUjDH/2cs0zH+Bi5MqcwIhAIwD6+/8IZIKwT7cBpKeWs/SBGOJMLvUHx93PmyPjaav","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":15258485,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc2eiWCRA9TVsSAnZWagAAfw8P/A34qaQ7586jdHMA1NLX\nlWOjux7Q6eU48jbb1RXzwNI3ISD/lhT6qbOcPSl0NB+cxFc7cF9r4IRP3mom\nzvMXsY6WGUGeHNZAJWqHIIkS3K3NffrJ9j00Zbp/atP+4zniBCChXtAdk9I+\ncL20QhapMQ+l0AFjB3SnX8GbTbvQ3+hmoTp1x36pnr3vKAUdJD34TY5vv7UH\nA8P4n4PY9j+INIq1G4S5bWE+aBNrVxXgYHUYWg85e5G1F/Rnd79lPSRK909C\nVDojSW5flSi1+SkQFQ9bs9zGEebMu3fjLutXYYChLW0h6Lw05coGkV6YdHA9\nabXVoYwKN685Mr1albRn/Vv1zBpD/gfzmBM+FtXuftSkH2Or/rbsZLzjmgH/\n6UOs4NPp82DMXbt8MMyptHmTCnC9otvwz+lL/WBkXebePczga96jOM1oC7ZU\ntwySho4GPAdscueaVhugw231PRPK1KI8eruVzixwoHh/6ns5SL1G17GFOHDs\n6fUamJzUu0y+uJG5w6YNcF/b65ic30v/dxZgxsqoc+PFHUcLyrBSGRFmxHmw\nY2defecpGaef546ET+PSxC+fBPYEnhdL+2TuBV4sd8GAj0Q31vIp+e7jVkgp\n6k2/Q3x8+GW8l4sdqN4C0B87puvwGJU95g/g3KXRSdr19MhtXuKRQmem6CZ+\nH5YM\r\n=oi0R\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"setupFiles":["<rootDir>/test/testSuitePolyfills.js","<rootDir>/test/configureEnzyme.js"],"moduleNameMapper":{"\\.(css|scss)$":"identity-obj-proxy","\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$":"<rootDir>/test/__mocks__/fileMock.js"},"moduleDirectories":["node_modules"],"moduleFileExtensions":["js","jsx"]},"main":"dist/bundle-cjs.js","module":"dist/bundle-es.js","scripts":{"lint":"yarn run lint:js && yarn run lint:styles","test":"jest","build":"yarn run build:es && yarn run build:cjs && yarn run build:script-tag","start":"yarn run start:widget-server; yarn run start:storybook","format":"prettier --write \"./src/**/*.{js,scss}\"","lint:js":"eslint src/** --ext .js --max-warnings 0","build:es":"cross-env NODE_ENV=production BABEL_ENV=production-es rollup -c rollup.config.es.js","prebuild":"yarn run clean:build","build:cjs":"cross-env NODE_ENV=production BABEL_ENV=production-cjs rollup -c rollup.config.cjs.js","test:watch":"jest --watch","build:watch":"cross-env NODE_ENV=production rollup -c --watch","clean:build":"rimraf dist","lint:styles":"stylelint \"src/**/*.{scss, css}\"","prepublishOnly":"yarn run test && yarn run lint && yarn run build","build:storybook":"NODE_ENV=production build-storybook -c .storybook -o docs-static","start:storybook":"NODE_ENV=test start-storybook -p 3000 -c .storybook","build:script-tag":"cross-env NODE_ENV=production BABEL_ENV=production-cjs webpack --config webpack.config.script-tag.js","start:widget-server":"yarn workspace veritone-widgets-server run start &"},"_npmUser":{"name":"veritone-jordan","email":"jbelford@veritone.com"},"description":"As of v5.0.0, this package exports both React \"smart components\" and framework agnostic \"widgets\" for most components. When both are available, the smart component is the default export and the widget is a named export. For example, `import FilePicker, { ","directories":{},"jsnext:main":"dist/bundle-es.js","licenseText":"                                 Apache License\n                           Version 2.0, January 2004\n                        http://www.apache.org/licenses/\n\n   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n   1. Definitions.\n\n      \"License\" shall mean the terms and conditions for use, reproduction,\n      and distribution as defined by Sections 1 through 9 of this document.\n\n      \"Licensor\" shall mean the copyright owner or entity authorized by\n      the copyright owner that is granting the License.\n\n      \"Legal Entity\" shall mean the union of the acting entity and all\n      other entities that control, are controlled by, or are under common\n      control with that entity. For the purposes of this definition,\n      \"control\" means (i) the power, direct or indirect, to cause the\n      direction or management of such entity, whether by contract or\n      otherwise, or (ii) ownership of fifty percent (50%) or more of the\n      outstanding shares, or (iii) beneficial ownership of such entity.\n\n      \"You\" (or \"Your\") shall mean an individual or Legal Entity\n      exercising permissions granted by this License.\n\n      \"Source\" form shall mean the preferred form for making modifications,\n      including but not limited to software source code, documentation\n      source, and configuration files.\n\n      \"Object\" form shall mean any form resulting from mechanical\n      transformation or translation of a Source form, including but\n      not limited to compiled object code, generated documentation,\n      and conversions to other media types.\n\n      \"Work\" shall mean the work of authorship, whether in Source or\n      Object form, made available under the License, as indicated by a\n      copyright notice that is included in or attached to the work\n      (an example is provided in the Appendix below).\n\n      \"Derivative Works\" shall mean any work, whether in Source or Object\n      form, that is based on (or derived from) the Work and for which the\n      editorial revisions, annotations, elaborations, or other modifications\n      represent, as a whole, an original work of authorship. For the purposes\n      of this License, Derivative Works shall not include works that remain\n      separable from, or merely link (or bind by name) to the interfaces of,\n      the Work and Derivative Works thereof.\n\n      \"Contribution\" shall mean any work of authorship, including\n      the original version of the Work and any modifications or additions\n      to that Work or Derivative Works thereof, that is intentionally\n      submitted to Licensor for inclusion in the Work by the copyright owner\n      or by an individual or Legal Entity authorized to submit on behalf of\n      the copyright owner. For the purposes of this definition, \"submitted\"\n      means any form of electronic, verbal, or written communication sent\n      to the Licensor or its representatives, including but not limited to\n      communication on electronic mailing lists, source code control systems,\n      and issue tracking systems that are managed by, or on behalf of, the\n      Licensor for the purpose of discussing and improving the Work, but\n      excluding communication that is conspicuously marked or otherwise\n      designated in writing by the copyright owner as \"Not a Contribution.\"\n\n      \"Contributor\" shall mean Licensor and any individual or Legal Entity\n      on behalf of whom a Contribution has been received by Licensor and\n      subsequently incorporated within the Work.\n\n   2. Grant of Copyright License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      copyright license to reproduce, prepare Derivative Works of,\n      publicly display, publicly perform, sublicense, and distribute the\n      Work and such Derivative Works in Source or Object form.\n\n   3. Grant of Patent License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      (except as stated in this section) patent license to make, have made,\n      use, offer to sell, sell, import, and otherwise transfer the Work,\n      where such license applies only to those patent claims licensable\n      by such Contributor that are necessarily infringed by their\n      Contribution(s) alone or by combination of their Contribution(s)\n      with the Work to which such Contribution(s) was submitted. If You\n      institute patent litigation against any entity (including a\n      cross-claim or counterclaim in a lawsuit) alleging that the Work\n      or a Contribution incorporated within the Work constitutes direct\n      or contributory patent infringement, then any patent licenses\n      granted to You under this License for that Work shall terminate\n      as of the date such litigation is filed.\n\n   4. Redistribution. You may reproduce and distribute copies of the\n      Work or Derivative Works thereof in any medium, with or without\n      modifications, and in Source or Object form, provided that You\n      meet the following conditions:\n\n      (a) You must give any other recipients of the Work or\n          Derivative Works a copy of this License; and\n\n      (b) You must cause any modified files to carry prominent notices\n          stating that You changed the files; and\n\n      (c) You must retain, in the Source form of any Derivative Works\n          that You distribute, all copyright, patent, trademark, and\n          attribution notices from the Source form of the Work,\n          excluding those notices that do not pertain to any part of\n          the Derivative Works; and\n\n      (d) If the Work includes a \"NOTICE\" text file as part of its\n          distribution, then any Derivative Works that You distribute must\n          include a readable copy of the attribution notices contained\n          within such NOTICE file, excluding those notices that do not\n          pertain to any part of the Derivative Works, in at least one\n          of the following places: within a NOTICE text file distributed\n          as part of the Derivative Works; within the Source form or\n          documentation, if provided along with the Derivative Works; or,\n          within a display generated by the Derivative Works, if and\n          wherever such third-party notices normally appear. The contents\n          of the NOTICE file are for informational purposes only and\n          do not modify the License. You may add Your own attribution\n          notices within Derivative Works that You distribute, alongside\n          or as an addendum to the NOTICE text from the Work, provided\n          that such additional attribution notices cannot be construed\n          as modifying the License.\n\n      You may add Your own copyright statement to Your modifications and\n      may provide additional or different license terms and conditions\n      for use, reproduction, or distribution of Your modifications, or\n      for any such Derivative Works as a whole, provided Your use,\n      reproduction, and distribution of the Work otherwise complies with\n      the conditions stated in this License.\n\n   5. Submission of Contributions. Unless You explicitly state otherwise,\n      any Contribution intentionally submitted for inclusion in the Work\n      by You to the Licensor shall be under the terms and conditions of\n      this License, without any additional terms or conditions.\n      Notwithstanding the above, nothing herein shall supersede or modify\n      the terms of any separate license agreement you may have executed\n      with Licensor regarding such Contributions.\n\n   6. Trademarks. This License does not grant permission to use the trade\n      names, trademarks, service marks, or product names of the Licensor,\n      except as required for reasonable and customary use in describing the\n      origin of the Work and reproducing the content of the NOTICE file.\n\n   7. Disclaimer of Warranty. Unless required by applicable law or\n      agreed to in writing, Licensor provides the Work (and each\n      Contributor provides its Contributions) on an \"AS IS\" BASIS,\n      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n      implied, including, without limitation, any warranties or conditions\n      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n      PARTICULAR PURPOSE. You are solely responsible for determining the\n      appropriateness of using or redistributing the Work and assume any\n      risks associated with Your exercise of permissions under this License.\n\n   8. Limitation of Liability. In no event and under no legal theory,\n      whether in tort (including negligence), contract, or otherwise,\n      unless required by applicable law (such as deliberate and grossly\n      negligent acts) or agreed to in writing, shall any Contributor be\n      liable to You for damages, including any direct, indirect, special,\n      incidental, or consequential damages of any character arising as a\n      result of this License or out of the use or inability to use the\n      Work (including but not limited to damages for loss of goodwill,\n      work stoppage, computer failure or malfunction, or any and all\n      other commercial damages or losses), even if such Contributor\n      has been advised of the possibility of such damages.\n\n   9. Accepting Warranty or Additional Liability. While redistributing\n      the Work or Derivative Works thereof, You may choose to offer,\n      and charge a fee for, acceptance of support, warranty, indemnity,\n      or other liability obligations and/or rights consistent with this\n      License. However, in accepting such obligations, You may act only\n      on Your own behalf and on Your sole responsibility, not on behalf\n      of any other Contributor, and only if You agree to indemnify,\n      defend, and hold each Contributor harmless for any liability\n      incurred by, or claims asserted against, such Contributor by reason\n      of your accepting any such warranty or additional liability.\n\n   END OF TERMS AND CONDITIONS\n\n   APPENDIX: How to apply the Apache License to your work.\n\n      To apply the Apache License to your work, attach the following\n      boilerplate notice, with the fields enclosed by brackets \"{}\"\n      replaced with your own identifying information. (Don't include\n      the brackets!)  The text should be enclosed in the appropriate\n      comment syntax for the file format. We also recommend that a\n      file or class name and description of purpose be included on the\n      same \"printed page\" as the copyright notice for easier\n      identification within third-party archives.\n\n   Copyright {yyyy} {name of copyright owner}\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n","dependencies":{"react":"^16.3.0","redux":"^4.0.0","react-dom":"^16.3.0","recompose":"^0.30.0","redux-saga":"^0.15.6","react-redux":"^5.0.6","redux-thunk":"^2.2.0","video-react":"~0.13.0","shaka-player":"^2.4.1","babel-runtime":"^6.26.0","babel-polyfill":"^6.26.0","react-redux-saga":"^1.0.2","@material-ui/core":"^1.0.0","react-virtualized":"^9.18.5","@material-ui/icons":"^1.0.0","veritone-react-common":"7.0.1","veritone-redux-common":"^3.7.0","veritone-oauth-helpers":"^2.1.0","redux-api-middleware-fixed":"^2.0.0"},"_hasShrinkwrap":false,"devDependencies":{"raf":"^3.4.0","jest":"^22.4.3","faker":"^4.1.0","enzyme":"^3.4.4","eslint":"^4.8.0","rimraf":"^2.6.2","rollup":"^0.55.1","webpack":"^4.0.1","cross-env":"^5.1.1","node-sass":"^4.7.2","stylelint":"^8.2.0","babel-core":"^6.26.0","url-loader":"^0.6.2","sass-loader":"^6.0.6","webpack-cli":"^2.0.9","babel-loader":"^7.1.3","redux-logger":"^3.0.6","redux-devtools":"^3.4.0","@storybook/react":"v3.3.9","redux-mock-store":"^1.3.0","veritone-dev-env":"^3.0.0","rollup-plugin-url":"^1.3.0","identity-obj-proxy":"^3.0.0","redux-validate-fsa":"^0.1.2","rollup-plugin-json":"^2.3.0","babel-plugin-lodash":"^3.3.2","eslint-plugin-react":"^7.8.2","react-test-renderer":"^16.0.0","rollup-plugin-alias":"^1.4.0","rollup-plugin-babel":"^3.0.3","eslint-plugin-import":"^2.10.0","eslint-plugin-lodash":"^2.4.5","babel-plugin-date-fns":"^0.1.0","eslint-plugin-promise":"^3.5.0","rollup-plugin-postcss":"^1.2.8","rollup-plugin-replace":"^2.0.0","@storybook/addon-knobs":"3.3.9","eslint-config-prettier":"^2.6.0","rollup-analyzer-plugin":"^1.1.1","rollup-plugin-commonjs":"^8.3.0","enzyme-adapter-react-16.3":"1.0.0","stylelint-config-prettier":"^4.0.0","stylelint-config-standard":"^17.0.0","rollup-plugin-node-resolve":"^3.0.2","babel-plugin-external-helpers":"^6.22.0","babel-plugin-transform-runtime":"^6.23.0","redux-immutable-state-invariant":"^2.1.0","babel-plugin-add-react-displayname":"^0.0.5","babel-plugin-transform-class-properties":"^6.24.1","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-plugin-transform-export-extensions":"^6.22.0","babel-plugin-transform-object-rest-spread":"^6.26.0"},"_npmOperationalInternal":{"tmp":"tmp/veritone-widgets_7.1.3_1557784725928_0.06940503739708359","host":"s3://npm-registry-packages"}},"7.3.0":{"name":"veritone-widgets","version":"7.3.0","license":"Apache-2.0","_id":"veritone-widgets@7.3.0","maintainers":[{"name":"albertcbrown","email":"al@veritone.com"},{"name":"andrew.tung","email":"atungw@gmail.com"},{"name":"atb91590","email":"atb91590@yahoo.com"},{"name":"coolmitch","email":"robb.mitch@gmail.com"},{"name":"steveshaffer","email":"steve@shaffer.ninja"},{"name":"tbui","email":"tbui@veritone.com"},{"name":"veritone_dev","email":"dev@veritone.com"},{"name":"veritone-jordan","email":"jbelford@veritone.com"}],"dist":{"shasum":"258f0b2ead4f4a09f218bff899054a91e0efa747","tarball":"https://registry.npmjs.org/veritone-widgets/-/veritone-widgets-7.3.0.tgz","fileCount":187,"integrity":"sha512-sNInSzsfp6OFNeLvPcwXQ7wbt94ttYRf3hpCl4NO14V1OoGxXmA6CZB1J9kIhjJaehW2AbJdDH+dAqDor78i1w==","signatures":[{"sig":"MEQCIGSgpgDTJNWg2EVPpc+Zq4JQ4r2ZEUtyL0qHQEiA5xXwAiBH+nEbxt+1/SaA7Cf39gGU2k2sUjUiqLclGuAYBdPeAg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":18512740,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc3J2YCRA9TVsSAnZWagAATroQAKB390rAe3s0/2avEC8a\n0yt81/cQc/rvcPdXRbHkmNtrF3n6CGyg9B+3Gyoy71b1jTDi6sHGgl9o7sXR\nQQztQ5dmaWEZjFjpuZJ00yGzu9xTGNSlAqCu68pPrGZJD3F2mu99CTtCMOxJ\nr2SEYb3TueIHLU3dGnPqHCzlUpAZzUNlfmuuky96SVHbomkC5ImiyECD1nW8\nn98K7DQlCs+pzacNjNmO0dOxqlFL7C5g7rbuh8OV+7nHn2Op4Bmrt6IhH2ZN\nBtXUh+4SmpqDXqkXFb4U8dvszK16ZH67Wyc0VD2lQbVESBR747KMU/6GElXm\nJreOpPLme+gvNxHpYDsNmT1F8oOyXJq9mdA+QSnM/2PNo4OMJ9wtA/GEbIHA\nSM9PuLVkkM3lLEoGth2FpPdpMlnZP6mtf78+4taK/wEAq9qY8Jboz0XHp0lE\nCo7PronUKm1NZt2uBISM+0ojeZs9ZPVp5LZKvjtujChhCq1zxwHcb4Lrgojc\nD8Nh3srCE4tzUUnFQyyP3dH+UpIX4n8V7MoTKVUWiubO39SVrAF61WzBEnug\nOlQEO8lizpcJJd6osqBwEJuVBgrSGkmmOWDrbTbHbKWRzSyA5G4BPJUII7nF\nxosya54YXwUuIvA7vcWMcR0jKRguafWBZs8Em61nHWg3A6YQCqBnwE6UTHfR\nEz7t\r\n=NKQl\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"setupFiles":["<rootDir>/test/testSuitePolyfills.js","<rootDir>/test/configureEnzyme.js"],"moduleNameMapper":{"\\.(css|scss)$":"identity-obj-proxy","\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$":"<rootDir>/test/__mocks__/fileMock.js"},"moduleDirectories":["node_modules"],"moduleFileExtensions":["js","jsx"]},"main":"dist/bundle-cjs.js","module":"dist/bundle-es.js","scripts":{"lint":"yarn run lint:js && yarn run lint:styles","test":"jest","build":"yarn run build:es && yarn run build:cjs && yarn run build:script-tag","start":"yarn run start:widget-server; yarn run start:storybook","format":"prettier --write \"./src/**/*.{js,scss}\"","lint:js":"eslint src/** --ext .js --max-warnings 0","build:es":"cross-env NODE_ENV=production BABEL_ENV=production-es rollup -c rollup.config.es.js","prebuild":"yarn run clean:build","build:cjs":"cross-env NODE_ENV=production BABEL_ENV=production-cjs rollup -c rollup.config.cjs.js","test:watch":"jest --watch","build:watch":"cross-env NODE_ENV=production rollup -c --watch","clean:build":"rimraf dist","lint:styles":"stylelint \"src/**/*.{scss, css}\"","prepublishOnly":"yarn run test && yarn run lint && yarn run build","build:storybook":"NODE_ENV=production build-storybook -c .storybook -o docs-static","start:storybook":"NODE_ENV=test start-storybook -p 3000 -c .storybook","build:script-tag":"cross-env NODE_ENV=production BABEL_ENV=production-cjs webpack --config webpack.config.script-tag.js","start:widget-server":"yarn workspace veritone-widgets-server run start &"},"_npmUser":{"name":"atb91590","email":"atb91590@yahoo.com"},"description":"As of v5.0.0, this package exports both React \"smart components\" and framework agnostic \"widgets\" for most components. When both are available, the smart component is the default export and the widget is a named export. For example, `import FilePicker, { ","directories":{},"jsnext:main":"dist/bundle-es.js","licenseText":"                                 Apache License\n                           Version 2.0, January 2004\n                        http://www.apache.org/licenses/\n\n   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n   1. Definitions.\n\n      \"License\" shall mean the terms and conditions for use, reproduction,\n      and distribution as defined by Sections 1 through 9 of this document.\n\n      \"Licensor\" shall mean the copyright owner or entity authorized by\n      the copyright owner that is granting the License.\n\n      \"Legal Entity\" shall mean the union of the acting entity and all\n      other entities that control, are controlled by, or are under common\n      control with that entity. For the purposes of this definition,\n      \"control\" means (i) the power, direct or indirect, to cause the\n      direction or management of such entity, whether by contract or\n      otherwise, or (ii) ownership of fifty percent (50%) or more of the\n      outstanding shares, or (iii) beneficial ownership of such entity.\n\n      \"You\" (or \"Your\") shall mean an individual or Legal Entity\n      exercising permissions granted by this License.\n\n      \"Source\" form shall mean the preferred form for making modifications,\n      including but not limited to software source code, documentation\n      source, and configuration files.\n\n      \"Object\" form shall mean any form resulting from mechanical\n      transformation or translation of a Source form, including but\n      not limited to compiled object code, generated documentation,\n      and conversions to other media types.\n\n      \"Work\" shall mean the work of authorship, whether in Source or\n      Object form, made available under the License, as indicated by a\n      copyright notice that is included in or attached to the work\n      (an example is provided in the Appendix below).\n\n      \"Derivative Works\" shall mean any work, whether in Source or Object\n      form, that is based on (or derived from) the Work and for which the\n      editorial revisions, annotations, elaborations, or other modifications\n      represent, as a whole, an original work of authorship. For the purposes\n      of this License, Derivative Works shall not include works that remain\n      separable from, or merely link (or bind by name) to the interfaces of,\n      the Work and Derivative Works thereof.\n\n      \"Contribution\" shall mean any work of authorship, including\n      the original version of the Work and any modifications or additions\n      to that Work or Derivative Works thereof, that is intentionally\n      submitted to Licensor for inclusion in the Work by the copyright owner\n      or by an individual or Legal Entity authorized to submit on behalf of\n      the copyright owner. For the purposes of this definition, \"submitted\"\n      means any form of electronic, verbal, or written communication sent\n      to the Licensor or its representatives, including but not limited to\n      communication on electronic mailing lists, source code control systems,\n      and issue tracking systems that are managed by, or on behalf of, the\n      Licensor for the purpose of discussing and improving the Work, but\n      excluding communication that is conspicuously marked or otherwise\n      designated in writing by the copyright owner as \"Not a Contribution.\"\n\n      \"Contributor\" shall mean Licensor and any individual or Legal Entity\n      on behalf of whom a Contribution has been received by Licensor and\n      subsequently incorporated within the Work.\n\n   2. Grant of Copyright License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      copyright license to reproduce, prepare Derivative Works of,\n      publicly display, publicly perform, sublicense, and distribute the\n      Work and such Derivative Works in Source or Object form.\n\n   3. Grant of Patent License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      (except as stated in this section) patent license to make, have made,\n      use, offer to sell, sell, import, and otherwise transfer the Work,\n      where such license applies only to those patent claims licensable\n      by such Contributor that are necessarily infringed by their\n      Contribution(s) alone or by combination of their Contribution(s)\n      with the Work to which such Contribution(s) was submitted. If You\n      institute patent litigation against any entity (including a\n      cross-claim or counterclaim in a lawsuit) alleging that the Work\n      or a Contribution incorporated within the Work constitutes direct\n      or contributory patent infringement, then any patent licenses\n      granted to You under this License for that Work shall terminate\n      as of the date such litigation is filed.\n\n   4. Redistribution. You may reproduce and distribute copies of the\n      Work or Derivative Works thereof in any medium, with or without\n      modifications, and in Source or Object form, provided that You\n      meet the following conditions:\n\n      (a) You must give any other recipients of the Work or\n          Derivative Works a copy of this License; and\n\n      (b) You must cause any modified files to carry prominent notices\n          stating that You changed the files; and\n\n      (c) You must retain, in the Source form of any Derivative Works\n          that You distribute, all copyright, patent, trademark, and\n          attribution notices from the Source form of the Work,\n          excluding those notices that do not pertain to any part of\n          the Derivative Works; and\n\n      (d) If the Work includes a \"NOTICE\" text file as part of its\n          distribution, then any Derivative Works that You distribute must\n          include a readable copy of the attribution notices contained\n          within such NOTICE file, excluding those notices that do not\n          pertain to any part of the Derivative Works, in at least one\n          of the following places: within a NOTICE text file distributed\n          as part of the Derivative Works; within the Source form or\n          documentation, if provided along with the Derivative Works; or,\n          within a display generated by the Derivative Works, if and\n          wherever such third-party notices normally appear. The contents\n          of the NOTICE file are for informational purposes only and\n          do not modify the License. You may add Your own attribution\n          notices within Derivative Works that You distribute, alongside\n          or as an addendum to the NOTICE text from the Work, provided\n          that such additional attribution notices cannot be construed\n          as modifying the License.\n\n      You may add Your own copyright statement to Your modifications and\n      may provide additional or different license terms and conditions\n      for use, reproduction, or distribution of Your modifications, or\n      for any such Derivative Works as a whole, provided Your use,\n      reproduction, and distribution of the Work otherwise complies with\n      the conditions stated in this License.\n\n   5. Submission of Contributions. Unless You explicitly state otherwise,\n      any Contribution intentionally submitted for inclusion in the Work\n      by You to the Licensor shall be under the terms and conditions of\n      this License, without any additional terms or conditions.\n      Notwithstanding the above, nothing herein shall supersede or modify\n      the terms of any separate license agreement you may have executed\n      with Licensor regarding such Contributions.\n\n   6. Trademarks. This License does not grant permission to use the trade\n      names, trademarks, service marks, or product names of the Licensor,\n      except as required for reasonable and customary use in describing the\n      origin of the Work and reproducing the content of the NOTICE file.\n\n   7. Disclaimer of Warranty. Unless required by applicable law or\n      agreed to in writing, Licensor provides the Work (and each\n      Contributor provides its Contributions) on an \"AS IS\" BASIS,\n      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n      implied, including, without limitation, any warranties or conditions\n      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n      PARTICULAR PURPOSE. You are solely responsible for determining the\n      appropriateness of using or redistributing the Work and assume any\n      risks associated with Your exercise of permissions under this License.\n\n   8. Limitation of Liability. In no event and under no legal theory,\n      whether in tort (including negligence), contract, or otherwise,\n      unless required by applicable law (such as deliberate and grossly\n      negligent acts) or agreed to in writing, shall any Contributor be\n      liable to You for damages, including any direct, indirect, special,\n      incidental, or consequential damages of any character arising as a\n      result of this License or out of the use or inability to use the\n      Work (including but not limited to damages for loss of goodwill,\n      work stoppage, computer failure or malfunction, or any and all\n      other commercial damages or losses), even if such Contributor\n      has been advised of the possibility of such damages.\n\n   9. Accepting Warranty or Additional Liability. While redistributing\n      the Work or Derivative Works thereof, You may choose to offer,\n      and charge a fee for, acceptance of support, warranty, indemnity,\n      or other liability obligations and/or rights consistent with this\n      License. However, in accepting such obligations, You may act only\n      on Your own behalf and on Your sole responsibility, not on behalf\n      of any other Contributor, and only if You agree to indemnify,\n      defend, and hold each Contributor harmless for any liability\n      incurred by, or claims asserted against, such Contributor by reason\n      of your accepting any such warranty or additional liability.\n\n   END OF TERMS AND CONDITIONS\n\n   APPENDIX: How to apply the Apache License to your work.\n\n      To apply the Apache License to your work, attach the following\n      boilerplate notice, with the fields enclosed by brackets \"{}\"\n      replaced with your own identifying information. (Don't include\n      the brackets!)  The text should be enclosed in the appropriate\n      comment syntax for the file format. We also recommend that a\n      file or class name and description of purpose be included on the\n      same \"printed page\" as the copyright notice for easier\n      identification within third-party archives.\n\n   Copyright {yyyy} {name of copyright owner}\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n","dependencies":{"react":"^16.3.0","redux":"^4.0.0","react-dom":"^16.3.0","recompose":"^0.30.0","redux-saga":"^0.15.6","react-redux":"^5.0.6","redux-thunk":"^2.2.0","video-react":"~0.13.0","shaka-player":"^2.4.1","babel-runtime":"^6.26.0","babel-polyfill":"^6.26.0","react-redux-saga":"^1.0.2","@material-ui/core":"^1.0.0","react-virtualized":"^9.18.5","@material-ui/icons":"^1.0.0","immutability-helper":"^3.0.0","veritone-react-common":"^7.1.0","veritone-redux-common":"^3.7.0","veritone-oauth-helpers":"^2.1.0","redux-api-middleware-fixed":"^2.0.0"},"_hasShrinkwrap":false,"devDependencies":{"raf":"^3.4.0","jest":"^22.4.3","faker":"^4.1.0","enzyme":"^3.4.4","eslint":"^4.8.0","rimraf":"^2.6.2","rollup":"^0.55.1","webpack":"^4.0.1","cross-env":"^5.1.1","node-sass":"^4.7.2","stylelint":"^8.2.0","babel-core":"^6.26.0","url-loader":"^0.6.2","sass-loader":"^6.0.6","webpack-cli":"^2.0.9","babel-loader":"^7.1.3","redux-logger":"^3.0.6","redux-devtools":"^3.4.0","@storybook/react":"v3.3.9","redux-mock-store":"^1.3.0","veritone-dev-env":"^3.0.0","rollup-plugin-url":"^1.3.0","identity-obj-proxy":"^3.0.0","redux-validate-fsa":"^0.1.2","rollup-plugin-json":"^2.3.0","babel-plugin-lodash":"^3.3.2","eslint-plugin-react":"^7.8.2","react-test-renderer":"^16.0.0","rollup-plugin-alias":"^1.4.0","rollup-plugin-babel":"^3.0.3","eslint-plugin-import":"^2.10.0","eslint-plugin-lodash":"^2.4.5","babel-plugin-date-fns":"^0.1.0","eslint-plugin-promise":"^3.5.0","rollup-plugin-postcss":"^1.2.8","rollup-plugin-replace":"^2.0.0","@storybook/addon-knobs":"3.3.9","eslint-config-prettier":"^2.6.0","rollup-analyzer-plugin":"^1.1.1","rollup-plugin-commonjs":"^8.3.0","enzyme-adapter-react-16.3":"1.0.0","stylelint-config-prettier":"^4.0.0","stylelint-config-standard":"^17.0.0","rollup-plugin-node-resolve":"^3.0.2","babel-plugin-external-helpers":"^6.22.0","babel-plugin-transform-runtime":"^6.23.0","redux-immutable-state-invariant":"^2.1.0","babel-plugin-add-react-displayname":"^0.0.5","babel-plugin-transform-class-properties":"^6.24.1","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-plugin-transform-export-extensions":"^6.22.0","babel-plugin-transform-object-rest-spread":"^6.26.0"},"_npmOperationalInternal":{"tmp":"tmp/veritone-widgets_7.3.0_1557962135495_0.41562812482922484","host":"s3://npm-registry-packages"}},"7.4.0":{"name":"veritone-widgets","version":"7.4.0","license":"Apache-2.0","_id":"veritone-widgets@7.4.0","maintainers":[{"name":"albertcbrown","email":"al@veritone.com"},{"name":"andrew.tung","email":"atungw@gmail.com"},{"name":"atb91590","email":"atb91590@yahoo.com"},{"name":"coolmitch","email":"robb.mitch@gmail.com"},{"name":"steveshaffer","email":"steve@shaffer.ninja"},{"name":"tbui","email":"tbui@veritone.com"},{"name":"veritone_dev","email":"dev@veritone.com"},{"name":"veritone-jordan","email":"jbelford@veritone.com"}],"dist":{"shasum":"a56691cf73a775f98a9210ebbacae85196d9c39a","tarball":"https://registry.npmjs.org/veritone-widgets/-/veritone-widgets-7.4.0.tgz","fileCount":189,"integrity":"sha512-519RoYuf37i16G+P7zCQBfhtX7D997jASQpiAJ644JCfmnYwt7OjOELjMccylUQ5rtJuW6p2TO/0bQWEbfnlEg==","signatures":[{"sig":"MEUCIQCxp1qjfgv5/vL3peTTb7AsUzvVSCDscmXlGWyWnRv9vQIgLorzP4Sq7+Vr0zLIH6922hlYqr8hus38/b6Z7AR+Mzk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":19157235,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJc7YB1CRA9TVsSAnZWagAA928P/inS0bcZhA1qMhqrW8m5\ngANG0s3zRYLEqzAG3BlEgIa9J0C6SZW2ornqG79YhNVf5dmjBWRIKpVUmXPm\n4tIIPZR1eCbvBfCxZO1ft5QugHKOqxJVE6g5ZYQGGEGqsdQsZr76d/xnPQek\nu7que/YPbSHxtlqXGvBrcDuueFxQ2bnDVUKFGxn3ZFbW2sKL4DzoDpAEOmSC\nASEwFIheKYtxjiSLCFXiR7bY55zVvfMgBtLVNJfOmM0eQNq6haeMUKleZuHF\nu8jjn0FJnp7DZ1Rv1AHqbfq7B+E9piEUhhsWgbwvV22hUcMEyIVbtsQtLLk+\nxagkeq6xv/9uOJUBSK64QZb90Z3VtVBl0tvMw7E1ASy2uB6dblnWaKzxzZDv\nxSBhuQ9jX25tzuepPnVUEZYplG1k/aRwERxlKi/pZr2tVItHROKP8Vgp302j\nQ6fZ9o+e8RJ5gt2nBlc9ZV1Ejnlc9MS8dIUvK+yTr60o79kLK7U0RusUdqIC\nLgc7i60wjLaBFBE+AxJG84r35r868AwfIgowUcCbSvO47khhRJyWfXxPJAVT\nkGSAPxeip4rdvm0669x4bM1AWgFqy/EVyX0J6JhoLXeEsDO+ddlZxnPKPXpE\nBUbfYbhthImtJTVBRO8ABGzXF52j4rLXlOXTTVNGsXkliKWQnFzrnaJx65eD\nbfN/\r\n=WZBx\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"setupFiles":["<rootDir>/test/testSuitePolyfills.js","<rootDir>/test/configureEnzyme.js"],"moduleNameMapper":{"\\.(css|scss)$":"identity-obj-proxy","\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$":"<rootDir>/test/__mocks__/fileMock.js"},"moduleDirectories":["node_modules"],"moduleFileExtensions":["js","jsx"]},"main":"dist/bundle-cjs.js","module":"dist/bundle-es.js","scripts":{"lint":"yarn run lint:js && yarn run lint:styles","test":"jest","build":"yarn run build:es && yarn run build:cjs && yarn run build:script-tag","start":"yarn run start:widget-server; yarn run start:storybook","format":"prettier --write \"./src/**/*.{js,scss}\"","lint:js":"eslint src/** --ext .js --max-warnings 0","build:es":"cross-env NODE_ENV=production BABEL_ENV=production-es rollup -c rollup.config.es.js","prebuild":"yarn run clean:build","build:cjs":"cross-env NODE_ENV=production BABEL_ENV=production-cjs rollup -c rollup.config.cjs.js","test:watch":"jest --watch","build:watch":"cross-env NODE_ENV=production rollup -c --watch","clean:build":"rimraf dist","lint:styles":"stylelint \"src/**/*.{scss, css}\"","prepublishOnly":"yarn run test && yarn run lint && yarn run build","build:storybook":"NODE_ENV=production build-storybook -c .storybook -o docs-static","start:storybook":"NODE_ENV=test start-storybook -p 3000 -c .storybook","build:script-tag":"cross-env NODE_ENV=production BABEL_ENV=production-cjs webpack --config webpack.config.script-tag.js","start:widget-server":"yarn workspace veritone-widgets-server run start &"},"_npmUser":{"name":"veritone-jordan","email":"jbelford@veritone.com"},"description":"As of v5.0.0, this package exports both React \"smart components\" and framework agnostic \"widgets\" for most components. When both are available, the smart component is the default export and the widget is a named export. For example, `import FilePicker, { ","directories":{},"jsnext:main":"dist/bundle-es.js","licenseText":"                                 Apache License\n                           Version 2.0, January 2004\n                        http://www.apache.org/licenses/\n\n   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n   1. Definitions.\n\n      \"License\" shall mean the terms and conditions for use, reproduction,\n      and distribution as defined by Sections 1 through 9 of this document.\n\n      \"Licensor\" shall mean the copyright owner or entity authorized by\n      the copyright owner that is granting the License.\n\n      \"Legal Entity\" shall mean the union of the acting entity and all\n      other entities that control, are controlled by, or are under common\n      control with that entity. For the purposes of this definition,\n      \"control\" means (i) the power, direct or indirect, to cause the\n      direction or management of such entity, whether by contract or\n      otherwise, or (ii) ownership of fifty percent (50%) or more of the\n      outstanding shares, or (iii) beneficial ownership of such entity.\n\n      \"You\" (or \"Your\") shall mean an individual or Legal Entity\n      exercising permissions granted by this License.\n\n      \"Source\" form shall mean the preferred form for making modifications,\n      including but not limited to software source code, documentation\n      source, and configuration files.\n\n      \"Object\" form shall mean any form resulting from mechanical\n      transformation or translation of a Source form, including but\n      not limited to compiled object code, generated documentation,\n      and conversions to other media types.\n\n      \"Work\" shall mean the work of authorship, whether in Source or\n      Object form, made available under the License, as indicated by a\n      copyright notice that is included in or attached to the work\n      (an example is provided in the Appendix below).\n\n      \"Derivative Works\" shall mean any work, whether in Source or Object\n      form, that is based on (or derived from) the Work and for which the\n      editorial revisions, annotations, elaborations, or other modifications\n      represent, as a whole, an original work of authorship. For the purposes\n      of this License, Derivative Works shall not include works that remain\n      separable from, or merely link (or bind by name) to the interfaces of,\n      the Work and Derivative Works thereof.\n\n      \"Contribution\" shall mean any work of authorship, including\n      the original version of the Work and any modifications or additions\n      to that Work or Derivative Works thereof, that is intentionally\n      submitted to Licensor for inclusion in the Work by the copyright owner\n      or by an individual or Legal Entity authorized to submit on behalf of\n      the copyright owner. For the purposes of this definition, \"submitted\"\n      means any form of electronic, verbal, or written communication sent\n      to the Licensor or its representatives, including but not limited to\n      communication on electronic mailing lists, source code control systems,\n      and issue tracking systems that are managed by, or on behalf of, the\n      Licensor for the purpose of discussing and improving the Work, but\n      excluding communication that is conspicuously marked or otherwise\n      designated in writing by the copyright owner as \"Not a Contribution.\"\n\n      \"Contributor\" shall mean Licensor and any individual or Legal Entity\n      on behalf of whom a Contribution has been received by Licensor and\n      subsequently incorporated within the Work.\n\n   2. Grant of Copyright License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      copyright license to reproduce, prepare Derivative Works of,\n      publicly display, publicly perform, sublicense, and distribute the\n      Work and such Derivative Works in Source or Object form.\n\n   3. Grant of Patent License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      (except as stated in this section) patent license to make, have made,\n      use, offer to sell, sell, import, and otherwise transfer the Work,\n      where such license applies only to those patent claims licensable\n      by such Contributor that are necessarily infringed by their\n      Contribution(s) alone or by combination of their Contribution(s)\n      with the Work to which such Contribution(s) was submitted. If You\n      institute patent litigation against any entity (including a\n      cross-claim or counterclaim in a lawsuit) alleging that the Work\n      or a Contribution incorporated within the Work constitutes direct\n      or contributory patent infringement, then any patent licenses\n      granted to You under this License for that Work shall terminate\n      as of the date such litigation is filed.\n\n   4. Redistribution. You may reproduce and distribute copies of the\n      Work or Derivative Works thereof in any medium, with or without\n      modifications, and in Source or Object form, provided that You\n      meet the following conditions:\n\n      (a) You must give any other recipients of the Work or\n          Derivative Works a copy of this License; and\n\n      (b) You must cause any modified files to carry prominent notices\n          stating that You changed the files; and\n\n      (c) You must retain, in the Source form of any Derivative Works\n          that You distribute, all copyright, patent, trademark, and\n          attribution notices from the Source form of the Work,\n          excluding those notices that do not pertain to any part of\n          the Derivative Works; and\n\n      (d) If the Work includes a \"NOTICE\" text file as part of its\n          distribution, then any Derivative Works that You distribute must\n          include a readable copy of the attribution notices contained\n          within such NOTICE file, excluding those notices that do not\n          pertain to any part of the Derivative Works, in at least one\n          of the following places: within a NOTICE text file distributed\n          as part of the Derivative Works; within the Source form or\n          documentation, if provided along with the Derivative Works; or,\n          within a display generated by the Derivative Works, if and\n          wherever such third-party notices normally appear. The contents\n          of the NOTICE file are for informational purposes only and\n          do not modify the License. You may add Your own attribution\n          notices within Derivative Works that You distribute, alongside\n          or as an addendum to the NOTICE text from the Work, provided\n          that such additional attribution notices cannot be construed\n          as modifying the License.\n\n      You may add Your own copyright statement to Your modifications and\n      may provide additional or different license terms and conditions\n      for use, reproduction, or distribution of Your modifications, or\n      for any such Derivative Works as a whole, provided Your use,\n      reproduction, and distribution of the Work otherwise complies with\n      the conditions stated in this License.\n\n   5. Submission of Contributions. Unless You explicitly state otherwise,\n      any Contribution intentionally submitted for inclusion in the Work\n      by You to the Licensor shall be under the terms and conditions of\n      this License, without any additional terms or conditions.\n      Notwithstanding the above, nothing herein shall supersede or modify\n      the terms of any separate license agreement you may have executed\n      with Licensor regarding such Contributions.\n\n   6. Trademarks. This License does not grant permission to use the trade\n      names, trademarks, service marks, or product names of the Licensor,\n      except as required for reasonable and customary use in describing the\n      origin of the Work and reproducing the content of the NOTICE file.\n\n   7. Disclaimer of Warranty. Unless required by applicable law or\n      agreed to in writing, Licensor provides the Work (and each\n      Contributor provides its Contributions) on an \"AS IS\" BASIS,\n      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n      implied, including, without limitation, any warranties or conditions\n      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n      PARTICULAR PURPOSE. You are solely responsible for determining the\n      appropriateness of using or redistributing the Work and assume any\n      risks associated with Your exercise of permissions under this License.\n\n   8. Limitation of Liability. In no event and under no legal theory,\n      whether in tort (including negligence), contract, or otherwise,\n      unless required by applicable law (such as deliberate and grossly\n      negligent acts) or agreed to in writing, shall any Contributor be\n      liable to You for damages, including any direct, indirect, special,\n      incidental, or consequential damages of any character arising as a\n      result of this License or out of the use or inability to use the\n      Work (including but not limited to damages for loss of goodwill,\n      work stoppage, computer failure or malfunction, or any and all\n      other commercial damages or losses), even if such Contributor\n      has been advised of the possibility of such damages.\n\n   9. Accepting Warranty or Additional Liability. While redistributing\n      the Work or Derivative Works thereof, You may choose to offer,\n      and charge a fee for, acceptance of support, warranty, indemnity,\n      or other liability obligations and/or rights consistent with this\n      License. However, in accepting such obligations, You may act only\n      on Your own behalf and on Your sole responsibility, not on behalf\n      of any other Contributor, and only if You agree to indemnify,\n      defend, and hold each Contributor harmless for any liability\n      incurred by, or claims asserted against, such Contributor by reason\n      of your accepting any such warranty or additional liability.\n\n   END OF TERMS AND CONDITIONS\n\n   APPENDIX: How to apply the Apache License to your work.\n\n      To apply the Apache License to your work, attach the following\n      boilerplate notice, with the fields enclosed by brackets \"{}\"\n      replaced with your own identifying information. (Don't include\n      the brackets!)  The text should be enclosed in the appropriate\n      comment syntax for the file format. We also recommend that a\n      file or class name and description of purpose be included on the\n      same \"printed page\" as the copyright notice for easier\n      identification within third-party archives.\n\n   Copyright {yyyy} {name of copyright owner}\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n","dependencies":{"react":"^16.3.0","redux":"^4.0.0","react-dom":"^16.3.0","recompose":"^0.30.0","redux-saga":"^0.15.6","react-redux":"^5.0.6","redux-thunk":"^2.2.0","video-react":"~0.13.3","shaka-player":"^2.4.1","babel-runtime":"^6.26.0","babel-polyfill":"^6.26.0","react-redux-saga":"^1.0.2","@material-ui/core":"^1.0.0","react-virtualized":"^9.18.5","@material-ui/icons":"^1.0.0","immutability-helper":"^3.0.0","veritone-react-common":"^7.4.0","veritone-redux-common":"^3.7.0","veritone-oauth-helpers":"^2.1.0","redux-api-middleware-fixed":"^2.0.0"},"_hasShrinkwrap":false,"devDependencies":{"raf":"^3.4.0","jest":"^22.4.3","faker":"^4.1.0","enzyme":"^3.4.4","eslint":"^4.8.0","rimraf":"^2.6.2","rollup":"^0.55.1","webpack":"^4.0.1","cross-env":"^5.1.1","node-sass":"^4.7.2","stylelint":"^8.2.0","babel-core":"^6.26.0","url-loader":"^0.6.2","sass-loader":"^6.0.6","webpack-cli":"^2.0.9","babel-loader":"^7.1.3","redux-logger":"^3.0.6","redux-devtools":"^3.4.0","@storybook/react":"v3.3.9","redux-mock-store":"^1.3.0","veritone-dev-env":"^3.0.0","rollup-plugin-url":"^1.3.0","identity-obj-proxy":"^3.0.0","redux-validate-fsa":"^0.1.2","rollup-plugin-json":"^2.3.0","babel-plugin-lodash":"^3.3.2","eslint-plugin-react":"^7.8.2","react-test-renderer":"^16.0.0","rollup-plugin-alias":"^1.4.0","rollup-plugin-babel":"^3.0.3","eslint-plugin-import":"^2.10.0","eslint-plugin-lodash":"^2.4.5","babel-plugin-date-fns":"^0.1.0","eslint-plugin-promise":"^3.5.0","rollup-plugin-postcss":"^1.2.8","rollup-plugin-replace":"^2.0.0","@storybook/addon-knobs":"3.3.9","eslint-config-prettier":"^2.6.0","rollup-analyzer-plugin":"^1.1.1","rollup-plugin-commonjs":"^8.3.0","enzyme-adapter-react-16.3":"1.0.0","stylelint-config-prettier":"^4.0.0","stylelint-config-standard":"^17.0.0","rollup-plugin-node-resolve":"^3.0.2","babel-plugin-external-helpers":"^6.22.0","babel-plugin-transform-runtime":"^6.23.0","redux-immutable-state-invariant":"^2.1.0","babel-plugin-add-react-displayname":"^0.0.5","babel-plugin-transform-class-properties":"^6.24.1","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-plugin-transform-export-extensions":"^6.22.0","babel-plugin-transform-object-rest-spread":"^6.26.0"},"_npmOperationalInternal":{"tmp":"tmp/veritone-widgets_7.4.0_1559068788532_0.36357752986098046","host":"s3://npm-registry-packages"}},"7.5.0":{"name":"veritone-widgets","version":"7.5.0","license":"Apache-2.0","_id":"veritone-widgets@7.5.0","maintainers":[{"name":"albertcbrown","email":"al@veritone.com"},{"name":"andrew.tung","email":"atungw@gmail.com"},{"name":"atb91590","email":"atb91590@yahoo.com"},{"name":"coolmitch","email":"robb.mitch@gmail.com"},{"name":"steveshaffer","email":"steve@shaffer.ninja"},{"name":"tbui","email":"tbui@veritone.com"},{"name":"truong_veritone","email":"ktruong@veritone.com"},{"name":"veritone_dev","email":"dev@veritone.com"},{"name":"veritone-jordan","email":"jbelford@veritone.com"}],"dist":{"shasum":"f58b0e920a3c3d16e1efee8d7fe291f8c7702554","tarball":"https://registry.npmjs.org/veritone-widgets/-/veritone-widgets-7.5.0.tgz","fileCount":187,"integrity":"sha512-yEjJVJhEgJd5BxFeYxxV2313UX2bVxR5liOjkHLnDQntbJHmJR1Mic+QTRwqsPbcUzodE1B6Nsc7LxwKokODNA==","signatures":[{"sig":"MEUCIQCsUaT+2u/7aohJS/crdYvyRbeeCieWEOZjFn+xcY79gAIgUKhEcR8FvLCbJWXqjILBRUWSeZ2j8/hNiL3MaYU4Iwk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":18706088,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdCDrnCRA9TVsSAnZWagAAkpEP/107BsDJYGFUqN1oAJ+4\n9VDF7AOZ1CVJYRpS4aGdooA8NXWFlGf7BW/sSSIqWMIJZnY0oPi3aearH1Gz\nSP8CeLMoZoL9EFck2IbMeajTvwzhKru6o2UvFFWuV8q5eJGeG7/SoROdWeZ7\nyWSlQjENI1wKqmruwwzkjmvyfQUsDQBdBxp9shHA1z3udA8GV0xk4FZD/odo\nenY21Tz5fosiaQNwIjuuo6JCpMJ98CG1yiVrecK3SOA591PGe8q+WCCko4ai\ne59BUUXh6AfpRqo3XkzKB3ZuR4vPUGN36r/lxuJhSlUYWDDGWjiykM/BTr7c\nKdn6YsMCaz1LwJhz9KMgrpGONITY+LG7l98eKba3lMfUSQUN1sYWYS/57VJk\nfx0gIrn7yAxRxR6dYa7lY6Sos0pBjh6mTf77yaYqCiicM+uQlxO3CMK+gnIq\nRN76SkLOF2FTe70BkF0w/hh8VTDbDwEMkIPhq3dRDfdLS1ZNiB22bc9hwXpv\n8YDuIxXpvkAWg2v3ohI+D40vkGsBRjNToqR4+pCkklAevuleXoN29Wr3y4KR\n9BRhxzqrjXioleP/nyukhZ0exRdvVdqPo203OD2Iuw9u5DNj+iDcB1OdQ5tY\nRdHjU13MUPNjItAe1EH8kvjPwlYV4nYyTBcDjx3ocvQL2Qo7D/+7KYeNAP1t\nL40T\r\n=h4Sj\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"setupFiles":["<rootDir>/test/testSuitePolyfills.js","<rootDir>/test/configureEnzyme.js"],"moduleNameMapper":{"\\.(css|scss)$":"identity-obj-proxy","\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$":"<rootDir>/test/__mocks__/fileMock.js"},"moduleDirectories":["node_modules"],"moduleFileExtensions":["js","jsx"]},"main":"dist/bundle-cjs.js","module":"dist/bundle-es.js","scripts":{"lint":"yarn run lint:js && yarn run lint:styles","test":"jest","build":"yarn run build:es && yarn run build:cjs && yarn run build:script-tag","start":"yarn run start:widget-server; yarn run start:storybook","format":"prettier --write \"./src/**/*.{js,scss}\"","lint:js":"eslint src/** --ext .js --max-warnings 0","build:es":"cross-env NODE_ENV=production BABEL_ENV=production-es rollup -c rollup.config.es.js","prebuild":"yarn run clean:build","build:cjs":"cross-env NODE_ENV=production BABEL_ENV=production-cjs rollup -c rollup.config.cjs.js","test:watch":"jest --watch","build:watch":"cross-env NODE_ENV=production rollup -c --watch","clean:build":"rimraf dist","lint:styles":"stylelint \"src/**/*.{scss, css}\"","prepublishOnly":"yarn run test && yarn run lint && yarn run build","build:storybook":"NODE_ENV=production build-storybook -c .storybook -o docs-static","start:storybook":"NODE_ENV=test start-storybook -p 3000 -c .storybook","build:script-tag":"cross-env NODE_ENV=production BABEL_ENV=production-cjs webpack --config webpack.config.script-tag.js","start:widget-server":"yarn workspace veritone-widgets-server run start &"},"_npmUser":{"name":"truong_veritone","email":"ktruong@veritone.com"},"description":"As of v5.0.0, this package exports both React \"smart components\" and framework agnostic \"widgets\" for most components. When both are available, the smart component is the default export and the widget is a named export. For example, `import FilePicker, { ","directories":{},"jsnext:main":"dist/bundle-es.js","licenseText":"                                 Apache License\n                           Version 2.0, January 2004\n                        http://www.apache.org/licenses/\n\n   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n   1. Definitions.\n\n      \"License\" shall mean the terms and conditions for use, reproduction,\n      and distribution as defined by Sections 1 through 9 of this document.\n\n      \"Licensor\" shall mean the copyright owner or entity authorized by\n      the copyright owner that is granting the License.\n\n      \"Legal Entity\" shall mean the union of the acting entity and all\n      other entities that control, are controlled by, or are under common\n      control with that entity. For the purposes of this definition,\n      \"control\" means (i) the power, direct or indirect, to cause the\n      direction or management of such entity, whether by contract or\n      otherwise, or (ii) ownership of fifty percent (50%) or more of the\n      outstanding shares, or (iii) beneficial ownership of such entity.\n\n      \"You\" (or \"Your\") shall mean an individual or Legal Entity\n      exercising permissions granted by this License.\n\n      \"Source\" form shall mean the preferred form for making modifications,\n      including but not limited to software source code, documentation\n      source, and configuration files.\n\n      \"Object\" form shall mean any form resulting from mechanical\n      transformation or translation of a Source form, including but\n      not limited to compiled object code, generated documentation,\n      and conversions to other media types.\n\n      \"Work\" shall mean the work of authorship, whether in Source or\n      Object form, made available under the License, as indicated by a\n      copyright notice that is included in or attached to the work\n      (an example is provided in the Appendix below).\n\n      \"Derivative Works\" shall mean any work, whether in Source or Object\n      form, that is based on (or derived from) the Work and for which the\n      editorial revisions, annotations, elaborations, or other modifications\n      represent, as a whole, an original work of authorship. For the purposes\n      of this License, Derivative Works shall not include works that remain\n      separable from, or merely link (or bind by name) to the interfaces of,\n      the Work and Derivative Works thereof.\n\n      \"Contribution\" shall mean any work of authorship, including\n      the original version of the Work and any modifications or additions\n      to that Work or Derivative Works thereof, that is intentionally\n      submitted to Licensor for inclusion in the Work by the copyright owner\n      or by an individual or Legal Entity authorized to submit on behalf of\n      the copyright owner. For the purposes of this definition, \"submitted\"\n      means any form of electronic, verbal, or written communication sent\n      to the Licensor or its representatives, including but not limited to\n      communication on electronic mailing lists, source code control systems,\n      and issue tracking systems that are managed by, or on behalf of, the\n      Licensor for the purpose of discussing and improving the Work, but\n      excluding communication that is conspicuously marked or otherwise\n      designated in writing by the copyright owner as \"Not a Contribution.\"\n\n      \"Contributor\" shall mean Licensor and any individual or Legal Entity\n      on behalf of whom a Contribution has been received by Licensor and\n      subsequently incorporated within the Work.\n\n   2. Grant of Copyright License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      copyright license to reproduce, prepare Derivative Works of,\n      publicly display, publicly perform, sublicense, and distribute the\n      Work and such Derivative Works in Source or Object form.\n\n   3. Grant of Patent License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      (except as stated in this section) patent license to make, have made,\n      use, offer to sell, sell, import, and otherwise transfer the Work,\n      where such license applies only to those patent claims licensable\n      by such Contributor that are necessarily infringed by their\n      Contribution(s) alone or by combination of their Contribution(s)\n      with the Work to which such Contribution(s) was submitted. If You\n      institute patent litigation against any entity (including a\n      cross-claim or counterclaim in a lawsuit) alleging that the Work\n      or a Contribution incorporated within the Work constitutes direct\n      or contributory patent infringement, then any patent licenses\n      granted to You under this License for that Work shall terminate\n      as of the date such litigation is filed.\n\n   4. Redistribution. You may reproduce and distribute copies of the\n      Work or Derivative Works thereof in any medium, with or without\n      modifications, and in Source or Object form, provided that You\n      meet the following conditions:\n\n      (a) You must give any other recipients of the Work or\n          Derivative Works a copy of this License; and\n\n      (b) You must cause any modified files to carry prominent notices\n          stating that You changed the files; and\n\n      (c) You must retain, in the Source form of any Derivative Works\n          that You distribute, all copyright, patent, trademark, and\n          attribution notices from the Source form of the Work,\n          excluding those notices that do not pertain to any part of\n          the Derivative Works; and\n\n      (d) If the Work includes a \"NOTICE\" text file as part of its\n          distribution, then any Derivative Works that You distribute must\n          include a readable copy of the attribution notices contained\n          within such NOTICE file, excluding those notices that do not\n          pertain to any part of the Derivative Works, in at least one\n          of the following places: within a NOTICE text file distributed\n          as part of the Derivative Works; within the Source form or\n          documentation, if provided along with the Derivative Works; or,\n          within a display generated by the Derivative Works, if and\n          wherever such third-party notices normally appear. The contents\n          of the NOTICE file are for informational purposes only and\n          do not modify the License. You may add Your own attribution\n          notices within Derivative Works that You distribute, alongside\n          or as an addendum to the NOTICE text from the Work, provided\n          that such additional attribution notices cannot be construed\n          as modifying the License.\n\n      You may add Your own copyright statement to Your modifications and\n      may provide additional or different license terms and conditions\n      for use, reproduction, or distribution of Your modifications, or\n      for any such Derivative Works as a whole, provided Your use,\n      reproduction, and distribution of the Work otherwise complies with\n      the conditions stated in this License.\n\n   5. Submission of Contributions. Unless You explicitly state otherwise,\n      any Contribution intentionally submitted for inclusion in the Work\n      by You to the Licensor shall be under the terms and conditions of\n      this License, without any additional terms or conditions.\n      Notwithstanding the above, nothing herein shall supersede or modify\n      the terms of any separate license agreement you may have executed\n      with Licensor regarding such Contributions.\n\n   6. Trademarks. This License does not grant permission to use the trade\n      names, trademarks, service marks, or product names of the Licensor,\n      except as required for reasonable and customary use in describing the\n      origin of the Work and reproducing the content of the NOTICE file.\n\n   7. Disclaimer of Warranty. Unless required by applicable law or\n      agreed to in writing, Licensor provides the Work (and each\n      Contributor provides its Contributions) on an \"AS IS\" BASIS,\n      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n      implied, including, without limitation, any warranties or conditions\n      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n      PARTICULAR PURPOSE. You are solely responsible for determining the\n      appropriateness of using or redistributing the Work and assume any\n      risks associated with Your exercise of permissions under this License.\n\n   8. Limitation of Liability. In no event and under no legal theory,\n      whether in tort (including negligence), contract, or otherwise,\n      unless required by applicable law (such as deliberate and grossly\n      negligent acts) or agreed to in writing, shall any Contributor be\n      liable to You for damages, including any direct, indirect, special,\n      incidental, or consequential damages of any character arising as a\n      result of this License or out of the use or inability to use the\n      Work (including but not limited to damages for loss of goodwill,\n      work stoppage, computer failure or malfunction, or any and all\n      other commercial damages or losses), even if such Contributor\n      has been advised of the possibility of such damages.\n\n   9. Accepting Warranty or Additional Liability. While redistributing\n      the Work or Derivative Works thereof, You may choose to offer,\n      and charge a fee for, acceptance of support, warranty, indemnity,\n      or other liability obligations and/or rights consistent with this\n      License. However, in accepting such obligations, You may act only\n      on Your own behalf and on Your sole responsibility, not on behalf\n      of any other Contributor, and only if You agree to indemnify,\n      defend, and hold each Contributor harmless for any liability\n      incurred by, or claims asserted against, such Contributor by reason\n      of your accepting any such warranty or additional liability.\n\n   END OF TERMS AND CONDITIONS\n\n   APPENDIX: How to apply the Apache License to your work.\n\n      To apply the Apache License to your work, attach the following\n      boilerplate notice, with the fields enclosed by brackets \"{}\"\n      replaced with your own identifying information. (Don't include\n      the brackets!)  The text should be enclosed in the appropriate\n      comment syntax for the file format. We also recommend that a\n      file or class name and description of purpose be included on the\n      same \"printed page\" as the copyright notice for easier\n      identification within third-party archives.\n\n   Copyright {yyyy} {name of copyright owner}\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n","dependencies":{"react":"^16.3.0","redux":"^4.0.0","react-dom":"^16.3.0","recompose":"^0.30.0","redux-saga":"^0.15.6","react-redux":"^5.0.6","redux-thunk":"^2.2.0","video-react":"~0.13.3","shaka-player":"^2.4.1","babel-runtime":"^6.26.0","babel-polyfill":"^6.26.0","react-redux-saga":"^1.0.2","@material-ui/core":"^1.0.0","react-virtualized":"^9.18.5","@material-ui/icons":"^1.0.0","immutability-helper":"^3.0.0","veritone-react-common":"^7.4.0","veritone-redux-common":"^3.7.0","veritone-oauth-helpers":"^2.1.0","redux-api-middleware-fixed":"^2.0.0"},"_hasShrinkwrap":false,"devDependencies":{"raf":"^3.4.0","jest":"^22.4.3","faker":"^4.1.0","enzyme":"^3.4.4","eslint":"^4.8.0","rimraf":"^2.6.2","rollup":"^0.55.1","webpack":"^4.0.1","cross-env":"^5.1.1","node-sass":"^4.7.2","stylelint":"^8.2.0","babel-core":"^6.26.0","url-loader":"^0.6.2","sass-loader":"^6.0.6","webpack-cli":"^2.0.9","babel-loader":"^7.1.3","redux-logger":"^3.0.6","redux-devtools":"^3.4.0","@storybook/react":"v3.3.9","redux-mock-store":"^1.3.0","veritone-dev-env":"^3.0.0","rollup-plugin-url":"^1.3.0","identity-obj-proxy":"^3.0.0","redux-validate-fsa":"^0.1.2","rollup-plugin-json":"^2.3.0","babel-plugin-lodash":"^3.3.2","eslint-plugin-react":"^7.8.2","react-test-renderer":"^16.0.0","rollup-plugin-alias":"^1.4.0","rollup-plugin-babel":"^3.0.3","eslint-plugin-import":"^2.10.0","eslint-plugin-lodash":"^2.4.5","babel-plugin-date-fns":"^0.1.0","eslint-plugin-promise":"^3.5.0","rollup-plugin-postcss":"^1.2.8","rollup-plugin-replace":"^2.0.0","@storybook/addon-knobs":"3.3.9","eslint-config-prettier":"^2.6.0","rollup-analyzer-plugin":"^1.1.1","rollup-plugin-commonjs":"^8.3.0","enzyme-adapter-react-16.3":"1.0.0","stylelint-config-prettier":"^4.0.0","stylelint-config-standard":"^17.0.0","rollup-plugin-node-resolve":"^3.0.2","babel-plugin-external-helpers":"^6.22.0","babel-plugin-transform-runtime":"^6.23.0","redux-immutable-state-invariant":"^2.1.0","babel-plugin-add-react-displayname":"^0.0.5","babel-plugin-transform-class-properties":"^6.24.1","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-plugin-transform-export-extensions":"^6.22.0","babel-plugin-transform-object-rest-spread":"^6.26.0"},"_npmOperationalInternal":{"tmp":"tmp/veritone-widgets_7.5.0_1560820455063_0.7163583366248898","host":"s3://npm-registry-packages"}},"7.6.0":{"name":"veritone-widgets","version":"7.6.0","license":"Apache-2.0","_id":"veritone-widgets@7.6.0","maintainers":[{"name":"albertcbrown","email":"al@veritone.com"},{"name":"andrew.tung","email":"atungw@gmail.com"},{"name":"atb91590","email":"atb91590@yahoo.com"},{"name":"coolmitch","email":"robb.mitch@gmail.com"},{"name":"steveshaffer","email":"steve@shaffer.ninja"},{"name":"tbui","email":"tbui@veritone.com"},{"name":"truong_veritone","email":"ktruong@veritone.com"},{"name":"veritone_dev","email":"dev@veritone.com"},{"name":"veritone-jordan","email":"jbelford@veritone.com"}],"dist":{"shasum":"2871d0424d099811253393dc6f442193a262a650","tarball":"https://registry.npmjs.org/veritone-widgets/-/veritone-widgets-7.6.0.tgz","fileCount":199,"integrity":"sha512-dStss0GWG8msvB5VQjFN2+OyyLGwBANxo9a8x9F3XgC6fe13nfVjxNY4+S76sTt+xeQrBO+jJ4zPuOIB2MAkqg==","signatures":[{"sig":"MEUCIQCXIkY7kgmNQea1am/6iqkO0pdyNpWGMKJDq8z9yx3dvwIgNj32FS52Oe4Jz9L+vOWMPGlPcuyEJLMOdgElUhcTNLg=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":55998520,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdI7zLCRA9TVsSAnZWagAA86kP/RklPo3pRv+COGYRiqcd\nM0Y/oLCVT444tnDghG42A0domoLnjGO29gc0fphGT8EGam0twd3ceim6jBJl\ngbFCADeBMDHjNgkF42aTKy1DQA7N7FojkPnMGM0uol2xFMo6/t4O/TVYMcTv\n0rk2iEa5/wARMokTXLZOkH+xQFrhmlutlaTKO0EDqunB12XQrsnCNr5Uj8zi\n1MOH++7pt1M0J8JLjDmUat5Ip/0OgWKDBw285jtHqSEKUY4lDpLw8D9xNgcM\ncFYFp3wFVaa2aZGH48R7uTHz7WVslxS5dUiQzKEF+DQDYQ752Jj5wIrR8en/\nP36PMWfJyK3VALUBvR6axG1drXV2LCYNq1JIr3lXCbcWTtVs9FBASmNFxNa5\nLFr0Ft3qrhPLtECgrppcBdcr8gt2IIJvNA1yOqnNZzBPlag6PZxB8yfxxic3\nWDnyDUAAzW0RmMJA2vwJqmp/TVl0bhzXOAkkbktJbAvrfHtMavfJJsEI9rFC\nAqIg7ThPgkxUALU4sZ8tegaZMNi4T1t8ElOheYY+FafuvzinatDmY95+r+0L\n1HuRdet/S0z22NQR2mls+myOdTTL69u3BsbdnrF/uv++oCS7aj7Pr2Pjjc0m\n7u347fZBjZ9TL4R5iJLzC6G6AkT2nNwQXnkWQUQ36EsZqMFX3L8MrhODKlGp\n38SB\r\n=faf+\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"setupFiles":["<rootDir>/test/testSuitePolyfills.js","<rootDir>/test/configureEnzyme.js"],"moduleNameMapper":{"\\.(css|scss)$":"identity-obj-proxy","\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$":"<rootDir>/test/__mocks__/fileMock.js"},"moduleDirectories":["node_modules"],"moduleFileExtensions":["js","jsx"]},"main":"dist/bundle-cjs.js","module":"dist/bundle-es.js","scripts":{"lint":"yarn run lint:js && yarn run lint:styles","test":"jest","build":"yarn run build:es && yarn run build:cjs && yarn run build:script-tag","start":"yarn run start:widget-server; yarn run start:storybook","format":"prettier --write \"./src/**/*.{js,scss}\"","lint:js":"eslint src/** --ext .js --max-warnings 0","build:es":"cross-env NODE_ENV=production BABEL_ENV=production-es rollup -c rollup.config.es.js","prebuild":"yarn run clean:build","build:cjs":"cross-env NODE_ENV=production BABEL_ENV=production-cjs rollup -c rollup.config.cjs.js","test:watch":"jest --watch","build:watch":"cross-env NODE_ENV=production rollup -c --watch","clean:build":"rimraf dist","lint:styles":"stylelint \"src/**/*.{scss, css}\"","prepublishOnly":"yarn run test && yarn run lint && yarn run build","build:storybook":"NODE_ENV=production build-storybook -c .storybook -o docs-static","start:storybook":"NODE_ENV=test start-storybook -p 3000 -c .storybook","build:script-tag":"cross-env NODE_ENV=production BABEL_ENV=production-cjs webpack --config webpack.config.script-tag.js","start:widget-server":"yarn workspace veritone-widgets-server run start &"},"_npmUser":{"name":"atb91590","email":"atb91590@yahoo.com"},"description":"As of v5.0.0, this package exports both React \"smart components\" and framework agnostic \"widgets\" for most components. When both are available, the smart component is the default export and the widget is a named export. For example, `import FilePicker, { ","directories":{},"jsnext:main":"dist/bundle-es.js","licenseText":"                                 Apache License\n                           Version 2.0, January 2004\n                        http://www.apache.org/licenses/\n\n   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n   1. Definitions.\n\n      \"License\" shall mean the terms and conditions for use, reproduction,\n      and distribution as defined by Sections 1 through 9 of this document.\n\n      \"Licensor\" shall mean the copyright owner or entity authorized by\n      the copyright owner that is granting the License.\n\n      \"Legal Entity\" shall mean the union of the acting entity and all\n      other entities that control, are controlled by, or are under common\n      control with that entity. For the purposes of this definition,\n      \"control\" means (i) the power, direct or indirect, to cause the\n      direction or management of such entity, whether by contract or\n      otherwise, or (ii) ownership of fifty percent (50%) or more of the\n      outstanding shares, or (iii) beneficial ownership of such entity.\n\n      \"You\" (or \"Your\") shall mean an individual or Legal Entity\n      exercising permissions granted by this License.\n\n      \"Source\" form shall mean the preferred form for making modifications,\n      including but not limited to software source code, documentation\n      source, and configuration files.\n\n      \"Object\" form shall mean any form resulting from mechanical\n      transformation or translation of a Source form, including but\n      not limited to compiled object code, generated documentation,\n      and conversions to other media types.\n\n      \"Work\" shall mean the work of authorship, whether in Source or\n      Object form, made available under the License, as indicated by a\n      copyright notice that is included in or attached to the work\n      (an example is provided in the Appendix below).\n\n      \"Derivative Works\" shall mean any work, whether in Source or Object\n      form, that is based on (or derived from) the Work and for which the\n      editorial revisions, annotations, elaborations, or other modifications\n      represent, as a whole, an original work of authorship. For the purposes\n      of this License, Derivative Works shall not include works that remain\n      separable from, or merely link (or bind by name) to the interfaces of,\n      the Work and Derivative Works thereof.\n\n      \"Contribution\" shall mean any work of authorship, including\n      the original version of the Work and any modifications or additions\n      to that Work or Derivative Works thereof, that is intentionally\n      submitted to Licensor for inclusion in the Work by the copyright owner\n      or by an individual or Legal Entity authorized to submit on behalf of\n      the copyright owner. For the purposes of this definition, \"submitted\"\n      means any form of electronic, verbal, or written communication sent\n      to the Licensor or its representatives, including but not limited to\n      communication on electronic mailing lists, source code control systems,\n      and issue tracking systems that are managed by, or on behalf of, the\n      Licensor for the purpose of discussing and improving the Work, but\n      excluding communication that is conspicuously marked or otherwise\n      designated in writing by the copyright owner as \"Not a Contribution.\"\n\n      \"Contributor\" shall mean Licensor and any individual or Legal Entity\n      on behalf of whom a Contribution has been received by Licensor and\n      subsequently incorporated within the Work.\n\n   2. Grant of Copyright License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      copyright license to reproduce, prepare Derivative Works of,\n      publicly display, publicly perform, sublicense, and distribute the\n      Work and such Derivative Works in Source or Object form.\n\n   3. Grant of Patent License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      (except as stated in this section) patent license to make, have made,\n      use, offer to sell, sell, import, and otherwise transfer the Work,\n      where such license applies only to those patent claims licensable\n      by such Contributor that are necessarily infringed by their\n      Contribution(s) alone or by combination of their Contribution(s)\n      with the Work to which such Contribution(s) was submitted. If You\n      institute patent litigation against any entity (including a\n      cross-claim or counterclaim in a lawsuit) alleging that the Work\n      or a Contribution incorporated within the Work constitutes direct\n      or contributory patent infringement, then any patent licenses\n      granted to You under this License for that Work shall terminate\n      as of the date such litigation is filed.\n\n   4. Redistribution. You may reproduce and distribute copies of the\n      Work or Derivative Works thereof in any medium, with or without\n      modifications, and in Source or Object form, provided that You\n      meet the following conditions:\n\n      (a) You must give any other recipients of the Work or\n          Derivative Works a copy of this License; and\n\n      (b) You must cause any modified files to carry prominent notices\n          stating that You changed the files; and\n\n      (c) You must retain, in the Source form of any Derivative Works\n          that You distribute, all copyright, patent, trademark, and\n          attribution notices from the Source form of the Work,\n          excluding those notices that do not pertain to any part of\n          the Derivative Works; and\n\n      (d) If the Work includes a \"NOTICE\" text file as part of its\n          distribution, then any Derivative Works that You distribute must\n          include a readable copy of the attribution notices contained\n          within such NOTICE file, excluding those notices that do not\n          pertain to any part of the Derivative Works, in at least one\n          of the following places: within a NOTICE text file distributed\n          as part of the Derivative Works; within the Source form or\n          documentation, if provided along with the Derivative Works; or,\n          within a display generated by the Derivative Works, if and\n          wherever such third-party notices normally appear. The contents\n          of the NOTICE file are for informational purposes only and\n          do not modify the License. You may add Your own attribution\n          notices within Derivative Works that You distribute, alongside\n          or as an addendum to the NOTICE text from the Work, provided\n          that such additional attribution notices cannot be construed\n          as modifying the License.\n\n      You may add Your own copyright statement to Your modifications and\n      may provide additional or different license terms and conditions\n      for use, reproduction, or distribution of Your modifications, or\n      for any such Derivative Works as a whole, provided Your use,\n      reproduction, and distribution of the Work otherwise complies with\n      the conditions stated in this License.\n\n   5. Submission of Contributions. Unless You explicitly state otherwise,\n      any Contribution intentionally submitted for inclusion in the Work\n      by You to the Licensor shall be under the terms and conditions of\n      this License, without any additional terms or conditions.\n      Notwithstanding the above, nothing herein shall supersede or modify\n      the terms of any separate license agreement you may have executed\n      with Licensor regarding such Contributions.\n\n   6. Trademarks. This License does not grant permission to use the trade\n      names, trademarks, service marks, or product names of the Licensor,\n      except as required for reasonable and customary use in describing the\n      origin of the Work and reproducing the content of the NOTICE file.\n\n   7. Disclaimer of Warranty. Unless required by applicable law or\n      agreed to in writing, Licensor provides the Work (and each\n      Contributor provides its Contributions) on an \"AS IS\" BASIS,\n      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n      implied, including, without limitation, any warranties or conditions\n      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n      PARTICULAR PURPOSE. You are solely responsible for determining the\n      appropriateness of using or redistributing the Work and assume any\n      risks associated with Your exercise of permissions under this License.\n\n   8. Limitation of Liability. In no event and under no legal theory,\n      whether in tort (including negligence), contract, or otherwise,\n      unless required by applicable law (such as deliberate and grossly\n      negligent acts) or agreed to in writing, shall any Contributor be\n      liable to You for damages, including any direct, indirect, special,\n      incidental, or consequential damages of any character arising as a\n      result of this License or out of the use or inability to use the\n      Work (including but not limited to damages for loss of goodwill,\n      work stoppage, computer failure or malfunction, or any and all\n      other commercial damages or losses), even if such Contributor\n      has been advised of the possibility of such damages.\n\n   9. Accepting Warranty or Additional Liability. While redistributing\n      the Work or Derivative Works thereof, You may choose to offer,\n      and charge a fee for, acceptance of support, warranty, indemnity,\n      or other liability obligations and/or rights consistent with this\n      License. However, in accepting such obligations, You may act only\n      on Your own behalf and on Your sole responsibility, not on behalf\n      of any other Contributor, and only if You agree to indemnify,\n      defend, and hold each Contributor harmless for any liability\n      incurred by, or claims asserted against, such Contributor by reason\n      of your accepting any such warranty or additional liability.\n\n   END OF TERMS AND CONDITIONS\n\n   APPENDIX: How to apply the Apache License to your work.\n\n      To apply the Apache License to your work, attach the following\n      boilerplate notice, with the fields enclosed by brackets \"{}\"\n      replaced with your own identifying information. (Don't include\n      the brackets!)  The text should be enclosed in the appropriate\n      comment syntax for the file format. We also recommend that a\n      file or class name and description of purpose be included on the\n      same \"printed page\" as the copyright notice for easier\n      identification within third-party archives.\n\n   Copyright {yyyy} {name of copyright owner}\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n","dependencies":{"react":"^16.3.0","redux":"^4.0.0","react-dom":"^16.3.0","recompose":"^0.30.0","redux-saga":"^0.15.6","react-redux":"^5.0.6","redux-thunk":"^2.2.0","video-react":"~0.13.3","shaka-player":"^2.4.1","babel-runtime":"^6.26.0","babel-polyfill":"^6.26.0","react-redux-saga":"^1.0.2","@material-ui/core":"^1.0.0","react-virtualized":"^9.18.5","@material-ui/icons":"^1.0.0","immutability-helper":"^3.0.0","veritone-react-common":"^7.4.0","veritone-redux-common":"^3.7.0","veritone-oauth-helpers":"^2.1.0","redux-api-middleware-fixed":"^2.0.0"},"_hasShrinkwrap":false,"devDependencies":{"raf":"^3.4.0","jest":"^22.4.3","faker":"^4.1.0","enzyme":"^3.5.0","eslint":"^4.8.0","rimraf":"^2.6.2","rollup":"^0.55.1","webpack":"^4.0.1","cross-env":"^5.1.1","node-sass":"^4.7.2","stylelint":"^8.2.0","babel-core":"^6.26.0","url-loader":"^0.6.2","sass-loader":"^6.0.6","webpack-cli":"^2.0.9","babel-loader":"^7.1.3","redux-logger":"^3.0.6","redux-devtools":"^3.4.0","@storybook/react":"v3.3.9","redux-mock-store":"^1.3.0","veritone-dev-env":"^3.0.0","rollup-plugin-url":"^1.3.0","identity-obj-proxy":"^3.0.0","redux-validate-fsa":"^0.1.2","rollup-plugin-json":"^2.3.0","babel-plugin-lodash":"^3.3.2","eslint-plugin-react":"^7.8.2","react-test-renderer":"^16.0.0","rollup-plugin-alias":"^1.4.0","rollup-plugin-babel":"^3.0.3","eslint-plugin-import":"^2.10.0","eslint-plugin-lodash":"^2.4.5","babel-plugin-date-fns":"^0.1.0","eslint-plugin-promise":"^3.5.0","rollup-plugin-postcss":"^1.2.8","rollup-plugin-replace":"^2.0.0","@storybook/addon-knobs":"3.3.9","eslint-config-prettier":"^2.6.0","rollup-analyzer-plugin":"^1.1.1","rollup-plugin-commonjs":"^8.3.0","enzyme-adapter-react-16":"^1.0.0","stylelint-config-prettier":"^4.0.0","stylelint-config-standard":"^17.0.0","rollup-plugin-node-resolve":"^3.0.2","babel-plugin-external-helpers":"^6.22.0","babel-plugin-transform-runtime":"^6.23.0","redux-immutable-state-invariant":"^2.1.0","babel-plugin-add-react-displayname":"^0.0.5","babel-plugin-transform-class-properties":"^6.24.1","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-plugin-transform-export-extensions":"^6.22.0","babel-plugin-transform-object-rest-spread":"^6.26.0"},"_npmOperationalInternal":{"tmp":"tmp/veritone-widgets_7.6.0_1562623177976_0.9448361499468767","host":"s3://npm-registry-packages"}},"7.7.0":{"name":"veritone-widgets","version":"7.7.0","license":"Apache-2.0","_id":"veritone-widgets@7.7.0","maintainers":[{"name":"albertcbrown","email":"al@veritone.com"},{"name":"andrew.tung","email":"atungw@gmail.com"},{"name":"atb91590","email":"atb91590@yahoo.com"},{"name":"coolmitch","email":"robb.mitch@gmail.com"},{"name":"steveshaffer","email":"steve@shaffer.ninja"},{"name":"tbui","email":"tbui@veritone.com"},{"name":"truong_veritone","email":"ktruong@veritone.com"},{"name":"veritone_dev","email":"dev@veritone.com"},{"name":"veritone-jordan","email":"jbelford@veritone.com"}],"dist":{"shasum":"ca311edea706a96b36a15d5a34ad3b4272a56b2a","tarball":"https://registry.npmjs.org/veritone-widgets/-/veritone-widgets-7.7.0.tgz","fileCount":199,"integrity":"sha512-O1XyoNajKAPQXeMjrju3q8yw0ftn1YE4WmmJJbOjyBaFsM7PXRJsg8ddhef0DiXhR0IU9LbJdvMPAcaRQl/wlg==","signatures":[{"sig":"MEQCIHdFxjtQasIRk1UyC+hpZrEDobHs6rof1nDYfhnp7uFdAiA03mA5lgqHgebW/RwUAvjUtlarMEoqm67De1EdaIxmPA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":56013668,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdI9IRCRA9TVsSAnZWagAADrQQAKBAB/9FC8p1cqVslNX0\niVT7Tq1n/YsPAG/rh5dBGyiQvW/6c2NMXfFKiAStbN5ehS6XR5TFeEUw98GI\nadwb5nNDnWYbjEYn7eGFAIwSD038qhF9jDZZyW7x1kbwtSdrAU1KcDlDzYs0\nlJAclZpK3/45YLQ5oxS/cC8IJQF+DpHVXSdasjOKVAbMio5nWA+vSsC/CwBx\n0y4MVEvj9j9cME6XS0j1cJnwh7OJiROY98MsuePMhtsxm82QJAkJs8P/gjp1\nyO9ZyEICEQX8+aB5BY72L5g5sINi8w9qmyebBs/FKjsKBZaZW3OwqHehufzt\nty3kGD2ih36QM+Yfru6THYeu4bK/k+GPBjVPvse0Lbtt9gf1mr7PGPZpeQEq\nT7Vte0GIJjxAPBM8l7b3rE14PTNr1cIOJ3LtlTElWVYXT9UG9cchcNHFFSjV\nveZocOtjaW1x1Luau/vN88Ux1d8FngBNwmj2/r80sH+ggE8BHe6UdXOpbPvR\npwjI7wxZ2Mjie3hbFXp79ocjWhrLMC9NZOuAX3B/oBKiudNGtJMrJAmkjwAd\nqilyngJbohODsJBx771orwNtBC9CPbU10qn1X1u75qwWhETVCVkXi9VlgqBe\nk2LDSP+NP98P/cho/gnbqrN2Vv0dGD7L8kGniuDCDRln3RlnMmLPTHQ3W6Zd\nwzhq\r\n=3ipp\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"setupFiles":["<rootDir>/test/testSuitePolyfills.js","<rootDir>/test/configureEnzyme.js"],"moduleNameMapper":{"\\.(css|scss)$":"identity-obj-proxy","\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$":"<rootDir>/test/__mocks__/fileMock.js"},"moduleDirectories":["node_modules"],"moduleFileExtensions":["js","jsx"]},"main":"dist/bundle-cjs.js","module":"dist/bundle-es.js","scripts":{"lint":"yarn run lint:js && yarn run lint:styles","test":"jest","build":"yarn run build:es && yarn run build:cjs && yarn run build:script-tag","start":"yarn run start:widget-server; yarn run start:storybook","format":"prettier --write \"./src/**/*.{js,scss}\"","lint:js":"eslint src/** --ext .js --max-warnings 0","build:es":"cross-env NODE_ENV=production BABEL_ENV=production-es rollup -c rollup.config.es.js","prebuild":"yarn run clean:build","build:cjs":"cross-env NODE_ENV=production BABEL_ENV=production-cjs rollup -c rollup.config.cjs.js","test:watch":"jest --watch","build:watch":"cross-env NODE_ENV=production rollup -c --watch","clean:build":"rimraf dist","lint:styles":"stylelint \"src/**/*.{scss, css}\"","prepublishOnly":"yarn run test && yarn run lint && yarn run build","build:storybook":"NODE_ENV=production build-storybook -c .storybook -o docs-static","start:storybook":"NODE_ENV=test start-storybook -p 3000 -c .storybook","build:script-tag":"cross-env NODE_ENV=production BABEL_ENV=production-cjs webpack --config webpack.config.script-tag.js","start:widget-server":"yarn workspace veritone-widgets-server run start &"},"_npmUser":{"name":"truong_veritone","email":"ktruong@veritone.com"},"description":"As of v5.0.0, this package exports both React \"smart components\" and framework agnostic \"widgets\" for most components. When both are available, the smart component is the default export and the widget is a named export. For example, `import FilePicker, { ","directories":{},"jsnext:main":"dist/bundle-es.js","licenseText":"                                 Apache License\n                           Version 2.0, January 2004\n                        http://www.apache.org/licenses/\n\n   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n   1. Definitions.\n\n      \"License\" shall mean the terms and conditions for use, reproduction,\n      and distribution as defined by Sections 1 through 9 of this document.\n\n      \"Licensor\" shall mean the copyright owner or entity authorized by\n      the copyright owner that is granting the License.\n\n      \"Legal Entity\" shall mean the union of the acting entity and all\n      other entities that control, are controlled by, or are under common\n      control with that entity. For the purposes of this definition,\n      \"control\" means (i) the power, direct or indirect, to cause the\n      direction or management of such entity, whether by contract or\n      otherwise, or (ii) ownership of fifty percent (50%) or more of the\n      outstanding shares, or (iii) beneficial ownership of such entity.\n\n      \"You\" (or \"Your\") shall mean an individual or Legal Entity\n      exercising permissions granted by this License.\n\n      \"Source\" form shall mean the preferred form for making modifications,\n      including but not limited to software source code, documentation\n      source, and configuration files.\n\n      \"Object\" form shall mean any form resulting from mechanical\n      transformation or translation of a Source form, including but\n      not limited to compiled object code, generated documentation,\n      and conversions to other media types.\n\n      \"Work\" shall mean the work of authorship, whether in Source or\n      Object form, made available under the License, as indicated by a\n      copyright notice that is included in or attached to the work\n      (an example is provided in the Appendix below).\n\n      \"Derivative Works\" shall mean any work, whether in Source or Object\n      form, that is based on (or derived from) the Work and for which the\n      editorial revisions, annotations, elaborations, or other modifications\n      represent, as a whole, an original work of authorship. For the purposes\n      of this License, Derivative Works shall not include works that remain\n      separable from, or merely link (or bind by name) to the interfaces of,\n      the Work and Derivative Works thereof.\n\n      \"Contribution\" shall mean any work of authorship, including\n      the original version of the Work and any modifications or additions\n      to that Work or Derivative Works thereof, that is intentionally\n      submitted to Licensor for inclusion in the Work by the copyright owner\n      or by an individual or Legal Entity authorized to submit on behalf of\n      the copyright owner. For the purposes of this definition, \"submitted\"\n      means any form of electronic, verbal, or written communication sent\n      to the Licensor or its representatives, including but not limited to\n      communication on electronic mailing lists, source code control systems,\n      and issue tracking systems that are managed by, or on behalf of, the\n      Licensor for the purpose of discussing and improving the Work, but\n      excluding communication that is conspicuously marked or otherwise\n      designated in writing by the copyright owner as \"Not a Contribution.\"\n\n      \"Contributor\" shall mean Licensor and any individual or Legal Entity\n      on behalf of whom a Contribution has been received by Licensor and\n      subsequently incorporated within the Work.\n\n   2. Grant of Copyright License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      copyright license to reproduce, prepare Derivative Works of,\n      publicly display, publicly perform, sublicense, and distribute the\n      Work and such Derivative Works in Source or Object form.\n\n   3. Grant of Patent License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      (except as stated in this section) patent license to make, have made,\n      use, offer to sell, sell, import, and otherwise transfer the Work,\n      where such license applies only to those patent claims licensable\n      by such Contributor that are necessarily infringed by their\n      Contribution(s) alone or by combination of their Contribution(s)\n      with the Work to which such Contribution(s) was submitted. If You\n      institute patent litigation against any entity (including a\n      cross-claim or counterclaim in a lawsuit) alleging that the Work\n      or a Contribution incorporated within the Work constitutes direct\n      or contributory patent infringement, then any patent licenses\n      granted to You under this License for that Work shall terminate\n      as of the date such litigation is filed.\n\n   4. Redistribution. You may reproduce and distribute copies of the\n      Work or Derivative Works thereof in any medium, with or without\n      modifications, and in Source or Object form, provided that You\n      meet the following conditions:\n\n      (a) You must give any other recipients of the Work or\n          Derivative Works a copy of this License; and\n\n      (b) You must cause any modified files to carry prominent notices\n          stating that You changed the files; and\n\n      (c) You must retain, in the Source form of any Derivative Works\n          that You distribute, all copyright, patent, trademark, and\n          attribution notices from the Source form of the Work,\n          excluding those notices that do not pertain to any part of\n          the Derivative Works; and\n\n      (d) If the Work includes a \"NOTICE\" text file as part of its\n          distribution, then any Derivative Works that You distribute must\n          include a readable copy of the attribution notices contained\n          within such NOTICE file, excluding those notices that do not\n          pertain to any part of the Derivative Works, in at least one\n          of the following places: within a NOTICE text file distributed\n          as part of the Derivative Works; within the Source form or\n          documentation, if provided along with the Derivative Works; or,\n          within a display generated by the Derivative Works, if and\n          wherever such third-party notices normally appear. The contents\n          of the NOTICE file are for informational purposes only and\n          do not modify the License. You may add Your own attribution\n          notices within Derivative Works that You distribute, alongside\n          or as an addendum to the NOTICE text from the Work, provided\n          that such additional attribution notices cannot be construed\n          as modifying the License.\n\n      You may add Your own copyright statement to Your modifications and\n      may provide additional or different license terms and conditions\n      for use, reproduction, or distribution of Your modifications, or\n      for any such Derivative Works as a whole, provided Your use,\n      reproduction, and distribution of the Work otherwise complies with\n      the conditions stated in this License.\n\n   5. Submission of Contributions. Unless You explicitly state otherwise,\n      any Contribution intentionally submitted for inclusion in the Work\n      by You to the Licensor shall be under the terms and conditions of\n      this License, without any additional terms or conditions.\n      Notwithstanding the above, nothing herein shall supersede or modify\n      the terms of any separate license agreement you may have executed\n      with Licensor regarding such Contributions.\n\n   6. Trademarks. This License does not grant permission to use the trade\n      names, trademarks, service marks, or product names of the Licensor,\n      except as required for reasonable and customary use in describing the\n      origin of the Work and reproducing the content of the NOTICE file.\n\n   7. Disclaimer of Warranty. Unless required by applicable law or\n      agreed to in writing, Licensor provides the Work (and each\n      Contributor provides its Contributions) on an \"AS IS\" BASIS,\n      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n      implied, including, without limitation, any warranties or conditions\n      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n      PARTICULAR PURPOSE. You are solely responsible for determining the\n      appropriateness of using or redistributing the Work and assume any\n      risks associated with Your exercise of permissions under this License.\n\n   8. Limitation of Liability. In no event and under no legal theory,\n      whether in tort (including negligence), contract, or otherwise,\n      unless required by applicable law (such as deliberate and grossly\n      negligent acts) or agreed to in writing, shall any Contributor be\n      liable to You for damages, including any direct, indirect, special,\n      incidental, or consequential damages of any character arising as a\n      result of this License or out of the use or inability to use the\n      Work (including but not limited to damages for loss of goodwill,\n      work stoppage, computer failure or malfunction, or any and all\n      other commercial damages or losses), even if such Contributor\n      has been advised of the possibility of such damages.\n\n   9. Accepting Warranty or Additional Liability. While redistributing\n      the Work or Derivative Works thereof, You may choose to offer,\n      and charge a fee for, acceptance of support, warranty, indemnity,\n      or other liability obligations and/or rights consistent with this\n      License. However, in accepting such obligations, You may act only\n      on Your own behalf and on Your sole responsibility, not on behalf\n      of any other Contributor, and only if You agree to indemnify,\n      defend, and hold each Contributor harmless for any liability\n      incurred by, or claims asserted against, such Contributor by reason\n      of your accepting any such warranty or additional liability.\n\n   END OF TERMS AND CONDITIONS\n\n   APPENDIX: How to apply the Apache License to your work.\n\n      To apply the Apache License to your work, attach the following\n      boilerplate notice, with the fields enclosed by brackets \"{}\"\n      replaced with your own identifying information. (Don't include\n      the brackets!)  The text should be enclosed in the appropriate\n      comment syntax for the file format. We also recommend that a\n      file or class name and description of purpose be included on the\n      same \"printed page\" as the copyright notice for easier\n      identification within third-party archives.\n\n   Copyright {yyyy} {name of copyright owner}\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n","dependencies":{"react":"^16.3.0","redux":"^4.0.0","react-dom":"^16.3.0","recompose":"^0.30.0","redux-saga":"^0.15.6","react-redux":"^5.0.6","redux-thunk":"^2.2.0","video-react":"~0.13.3","shaka-player":"^2.4.1","babel-runtime":"^6.26.0","babel-polyfill":"^6.26.0","react-redux-saga":"^1.0.2","@material-ui/core":"^1.0.0","react-virtualized":"^9.18.5","@material-ui/icons":"^1.0.0","immutability-helper":"^3.0.0","veritone-react-common":"^7.4.0","veritone-redux-common":"^3.7.0","veritone-oauth-helpers":"^2.1.0","redux-api-middleware-fixed":"^2.0.0"},"_hasShrinkwrap":false,"devDependencies":{"raf":"^3.4.0","jest":"^22.4.3","faker":"^4.1.0","enzyme":"^3.5.0","eslint":"^4.8.0","rimraf":"^2.6.2","rollup":"^0.55.1","webpack":"^4.0.1","cross-env":"^5.1.1","node-sass":"^4.7.2","stylelint":"^8.2.0","babel-core":"^6.26.0","url-loader":"^0.6.2","sass-loader":"^6.0.6","webpack-cli":"^2.0.9","babel-loader":"^7.1.3","redux-logger":"^3.0.6","redux-devtools":"^3.4.0","@storybook/react":"v3.3.9","redux-mock-store":"^1.3.0","veritone-dev-env":"^3.0.0","rollup-plugin-url":"^1.3.0","identity-obj-proxy":"^3.0.0","redux-validate-fsa":"^0.1.2","rollup-plugin-json":"^2.3.0","babel-plugin-lodash":"^3.3.2","eslint-plugin-react":"^7.8.2","react-test-renderer":"^16.0.0","rollup-plugin-alias":"^1.4.0","rollup-plugin-babel":"^3.0.3","eslint-plugin-import":"^2.10.0","eslint-plugin-lodash":"^2.4.5","babel-plugin-date-fns":"^0.1.0","eslint-plugin-promise":"^3.5.0","rollup-plugin-postcss":"^1.2.8","rollup-plugin-replace":"^2.0.0","@storybook/addon-knobs":"3.3.9","eslint-config-prettier":"^2.6.0","rollup-analyzer-plugin":"^1.1.1","rollup-plugin-commonjs":"^8.3.0","enzyme-adapter-react-16":"^1.0.0","stylelint-config-prettier":"^4.0.0","stylelint-config-standard":"^17.0.0","rollup-plugin-node-resolve":"^3.0.2","babel-plugin-external-helpers":"^6.22.0","babel-plugin-transform-runtime":"^6.23.0","redux-immutable-state-invariant":"^2.1.0","babel-plugin-add-react-displayname":"^0.0.5","babel-plugin-transform-class-properties":"^6.24.1","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-plugin-transform-export-extensions":"^6.22.0","babel-plugin-transform-object-rest-spread":"^6.26.0"},"_npmOperationalInternal":{"tmp":"tmp/veritone-widgets_7.7.0_1562628624057_0.3372515876496358","host":"s3://npm-registry-packages"}},"8.0.1":{"name":"veritone-widgets","version":"8.0.1","license":"Apache-2.0","_id":"veritone-widgets@8.0.1","maintainers":[{"name":"albertcbrown","email":"al@veritone.com"},{"name":"andrew.tung","email":"atungw@gmail.com"},{"name":"atb91590","email":"atb91590@yahoo.com"},{"name":"coolmitch","email":"robb.mitch@gmail.com"},{"name":"mmtbkn","email":"mohamedirvine@gmail.com"},{"name":"steveshaffer","email":"steve@shaffer.ninja"},{"name":"tbui","email":"tbui@veritone.com"},{"name":"truong_veritone","email":"ktruong@veritone.com"},{"name":"veritone_dev","email":"dev@veritone.com"},{"name":"veritone-jordan","email":"jbelford@veritone.com"}],"dist":{"shasum":"5d1578856fe33dd9ff026a0fe4401c147f1317ab","tarball":"https://registry.npmjs.org/veritone-widgets/-/veritone-widgets-8.0.1.tgz","fileCount":199,"integrity":"sha512-di/WRZ5SXE1kXUZKb2YniZDJSDtjMMHUgR1fqFjvDLLQrD4GruSgU32ZidJLWPKX5z7n7qvtxAiDFNV6/rEeYQ==","signatures":[{"sig":"MEUCIQDOOD24Y6WBW+PKE3hogjfdiVy1nEkIMPYFH/OrB0q5FgIgAmt8NczLpIRXBOiGnIw4tmP8qp1x8VJ+aav20G7R7+4=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":55984646,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdI99nCRA9TVsSAnZWagAAGm4P/RrW5QqqZ/Vn+z+Ig6R7\nInng3Nz2JjFhYv27VgZYra+3hZPfT9B+k354D6hmT/8xdYkE2KDl4LM4ApX2\n+bdNRjOIMdPGgbAw8RJSc/5A5cAQj0ZRBYT83nUlIFkZz8hvjf+r0CIMYG2F\n5F99Su9iThKNmb49AKdBQY2vx9KsFud3ilwfmQ7AZQXWj1LK3Jp4+AGMINKy\nELRKbcMgaJcFxW/ZYJHHhET7uaEHmHo7Kqg1Uz5Fbfq41+Rxxx7ygRRkCZrA\n6Lk11tOscmrMOxocIZEP/eEgB9KR75VsiSUIO2+Jm5knv5XYhRWXxuG2HdOf\ns7bgyNOhGa83xSjRAOud/mKRM894LrHyIqc+lvGYoEtylPAUkjEHTFLSeaX/\nB8ZzsYrF5ng5GxAjGv5ZbNrm7BVBH/Uo7GGgaMaPElWFDcFiQOAYsTNTklIZ\nWXegNK8KSojaCtwz0I28OhmIhzTN9NjihXsYuMMqX7uM6khkVYmguVjSL22X\nfxr7UbVbYhBXu7WiZNJoHFKDPOMRXL5iyQhzHUmpCcisqMuqCKOcryRgIgS0\nVoyxq7Fp7zUZ7LAWhKKLHKfF8gDV/rwNhsOtfJixpHTZoufLoY/v8y9bVMEz\nCLHXz+62LEssJO6jWfMhU59Pww9K00T90h/PGwEXmQhPLPX57Ja+7QbYqTuX\nGq/V\r\n=HU9/\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"setupFiles":["<rootDir>/test/testSuitePolyfills.js","<rootDir>/test/configureEnzyme.js"],"moduleNameMapper":{"\\.(css|scss)$":"identity-obj-proxy","\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$":"<rootDir>/test/__mocks__/fileMock.js"},"moduleDirectories":["node_modules"],"moduleFileExtensions":["js","jsx"]},"main":"dist/bundle-cjs.js","module":"dist/bundle-es.js","scripts":{"lint":"yarn run lint:js && yarn run lint:styles","test":"jest","build":"yarn run build:es && yarn run build:cjs && yarn run build:script-tag","start":"yarn run start:widget-server; yarn run start:storybook","format":"prettier --write \"./src/**/*.{js,scss}\"","lint:js":"eslint src/** --ext .js --max-warnings 0","build:es":"cross-env NODE_ENV=production BABEL_ENV=production-es rollup -c rollup.config.es.js","prebuild":"yarn run clean:build","build:cjs":"cross-env NODE_ENV=production BABEL_ENV=production-cjs rollup -c rollup.config.cjs.js","test:watch":"jest --watch","build:watch":"cross-env NODE_ENV=production rollup -c --watch","clean:build":"rimraf dist","lint:styles":"stylelint \"src/**/*.{scss, css}\"","prepublishOnly":"yarn run test && yarn run lint && yarn run build","build:storybook":"NODE_ENV=production build-storybook -c .storybook -o docs-static","start:storybook":"NODE_ENV=test start-storybook -p 3000 -c .storybook","build:script-tag":"cross-env NODE_ENV=production BABEL_ENV=production-cjs webpack --config webpack.config.script-tag.js","start:widget-server":"yarn workspace veritone-widgets-server run start &"},"_npmUser":{"name":"mmtbkn","email":"mohamedirvine@gmail.com"},"description":"As of v5.0.0, this package exports both React \"smart components\" and framework agnostic \"widgets\" for most components. When both are available, the smart component is the default export and the widget is a named export. For example, `import FilePicker, { ","directories":{},"jsnext:main":"dist/bundle-es.js","licenseText":"                                 Apache License\n                           Version 2.0, January 2004\n                        http://www.apache.org/licenses/\n\n   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n   1. Definitions.\n\n      \"License\" shall mean the terms and conditions for use, reproduction,\n      and distribution as defined by Sections 1 through 9 of this document.\n\n      \"Licensor\" shall mean the copyright owner or entity authorized by\n      the copyright owner that is granting the License.\n\n      \"Legal Entity\" shall mean the union of the acting entity and all\n      other entities that control, are controlled by, or are under common\n      control with that entity. For the purposes of this definition,\n      \"control\" means (i) the power, direct or indirect, to cause the\n      direction or management of such entity, whether by contract or\n      otherwise, or (ii) ownership of fifty percent (50%) or more of the\n      outstanding shares, or (iii) beneficial ownership of such entity.\n\n      \"You\" (or \"Your\") shall mean an individual or Legal Entity\n      exercising permissions granted by this License.\n\n      \"Source\" form shall mean the preferred form for making modifications,\n      including but not limited to software source code, documentation\n      source, and configuration files.\n\n      \"Object\" form shall mean any form resulting from mechanical\n      transformation or translation of a Source form, including but\n      not limited to compiled object code, generated documentation,\n      and conversions to other media types.\n\n      \"Work\" shall mean the work of authorship, whether in Source or\n      Object form, made available under the License, as indicated by a\n      copyright notice that is included in or attached to the work\n      (an example is provided in the Appendix below).\n\n      \"Derivative Works\" shall mean any work, whether in Source or Object\n      form, that is based on (or derived from) the Work and for which the\n      editorial revisions, annotations, elaborations, or other modifications\n      represent, as a whole, an original work of authorship. For the purposes\n      of this License, Derivative Works shall not include works that remain\n      separable from, or merely link (or bind by name) to the interfaces of,\n      the Work and Derivative Works thereof.\n\n      \"Contribution\" shall mean any work of authorship, including\n      the original version of the Work and any modifications or additions\n      to that Work or Derivative Works thereof, that is intentionally\n      submitted to Licensor for inclusion in the Work by the copyright owner\n      or by an individual or Legal Entity authorized to submit on behalf of\n      the copyright owner. For the purposes of this definition, \"submitted\"\n      means any form of electronic, verbal, or written communication sent\n      to the Licensor or its representatives, including but not limited to\n      communication on electronic mailing lists, source code control systems,\n      and issue tracking systems that are managed by, or on behalf of, the\n      Licensor for the purpose of discussing and improving the Work, but\n      excluding communication that is conspicuously marked or otherwise\n      designated in writing by the copyright owner as \"Not a Contribution.\"\n\n      \"Contributor\" shall mean Licensor and any individual or Legal Entity\n      on behalf of whom a Contribution has been received by Licensor and\n      subsequently incorporated within the Work.\n\n   2. Grant of Copyright License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      copyright license to reproduce, prepare Derivative Works of,\n      publicly display, publicly perform, sublicense, and distribute the\n      Work and such Derivative Works in Source or Object form.\n\n   3. Grant of Patent License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      (except as stated in this section) patent license to make, have made,\n      use, offer to sell, sell, import, and otherwise transfer the Work,\n      where such license applies only to those patent claims licensable\n      by such Contributor that are necessarily infringed by their\n      Contribution(s) alone or by combination of their Contribution(s)\n      with the Work to which such Contribution(s) was submitted. If You\n      institute patent litigation against any entity (including a\n      cross-claim or counterclaim in a lawsuit) alleging that the Work\n      or a Contribution incorporated within the Work constitutes direct\n      or contributory patent infringement, then any patent licenses\n      granted to You under this License for that Work shall terminate\n      as of the date such litigation is filed.\n\n   4. Redistribution. You may reproduce and distribute copies of the\n      Work or Derivative Works thereof in any medium, with or without\n      modifications, and in Source or Object form, provided that You\n      meet the following conditions:\n\n      (a) You must give any other recipients of the Work or\n          Derivative Works a copy of this License; and\n\n      (b) You must cause any modified files to carry prominent notices\n          stating that You changed the files; and\n\n      (c) You must retain, in the Source form of any Derivative Works\n          that You distribute, all copyright, patent, trademark, and\n          attribution notices from the Source form of the Work,\n          excluding those notices that do not pertain to any part of\n          the Derivative Works; and\n\n      (d) If the Work includes a \"NOTICE\" text file as part of its\n          distribution, then any Derivative Works that You distribute must\n          include a readable copy of the attribution notices contained\n          within such NOTICE file, excluding those notices that do not\n          pertain to any part of the Derivative Works, in at least one\n          of the following places: within a NOTICE text file distributed\n          as part of the Derivative Works; within the Source form or\n          documentation, if provided along with the Derivative Works; or,\n          within a display generated by the Derivative Works, if and\n          wherever such third-party notices normally appear. The contents\n          of the NOTICE file are for informational purposes only and\n          do not modify the License. You may add Your own attribution\n          notices within Derivative Works that You distribute, alongside\n          or as an addendum to the NOTICE text from the Work, provided\n          that such additional attribution notices cannot be construed\n          as modifying the License.\n\n      You may add Your own copyright statement to Your modifications and\n      may provide additional or different license terms and conditions\n      for use, reproduction, or distribution of Your modifications, or\n      for any such Derivative Works as a whole, provided Your use,\n      reproduction, and distribution of the Work otherwise complies with\n      the conditions stated in this License.\n\n   5. Submission of Contributions. Unless You explicitly state otherwise,\n      any Contribution intentionally submitted for inclusion in the Work\n      by You to the Licensor shall be under the terms and conditions of\n      this License, without any additional terms or conditions.\n      Notwithstanding the above, nothing herein shall supersede or modify\n      the terms of any separate license agreement you may have executed\n      with Licensor regarding such Contributions.\n\n   6. Trademarks. This License does not grant permission to use the trade\n      names, trademarks, service marks, or product names of the Licensor,\n      except as required for reasonable and customary use in describing the\n      origin of the Work and reproducing the content of the NOTICE file.\n\n   7. Disclaimer of Warranty. Unless required by applicable law or\n      agreed to in writing, Licensor provides the Work (and each\n      Contributor provides its Contributions) on an \"AS IS\" BASIS,\n      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n      implied, including, without limitation, any warranties or conditions\n      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n      PARTICULAR PURPOSE. You are solely responsible for determining the\n      appropriateness of using or redistributing the Work and assume any\n      risks associated with Your exercise of permissions under this License.\n\n   8. Limitation of Liability. In no event and under no legal theory,\n      whether in tort (including negligence), contract, or otherwise,\n      unless required by applicable law (such as deliberate and grossly\n      negligent acts) or agreed to in writing, shall any Contributor be\n      liable to You for damages, including any direct, indirect, special,\n      incidental, or consequential damages of any character arising as a\n      result of this License or out of the use or inability to use the\n      Work (including but not limited to damages for loss of goodwill,\n      work stoppage, computer failure or malfunction, or any and all\n      other commercial damages or losses), even if such Contributor\n      has been advised of the possibility of such damages.\n\n   9. Accepting Warranty or Additional Liability. While redistributing\n      the Work or Derivative Works thereof, You may choose to offer,\n      and charge a fee for, acceptance of support, warranty, indemnity,\n      or other liability obligations and/or rights consistent with this\n      License. However, in accepting such obligations, You may act only\n      on Your own behalf and on Your sole responsibility, not on behalf\n      of any other Contributor, and only if You agree to indemnify,\n      defend, and hold each Contributor harmless for any liability\n      incurred by, or claims asserted against, such Contributor by reason\n      of your accepting any such warranty or additional liability.\n\n   END OF TERMS AND CONDITIONS\n\n   APPENDIX: How to apply the Apache License to your work.\n\n      To apply the Apache License to your work, attach the following\n      boilerplate notice, with the fields enclosed by brackets \"{}\"\n      replaced with your own identifying information. (Don't include\n      the brackets!)  The text should be enclosed in the appropriate\n      comment syntax for the file format. We also recommend that a\n      file or class name and description of purpose be included on the\n      same \"printed page\" as the copyright notice for easier\n      identification within third-party archives.\n\n   Copyright {yyyy} {name of copyright owner}\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n","dependencies":{"react":"^16.3.0","redux":"^4.0.0","react-dom":"^16.3.0","recompose":"^0.30.0","redux-saga":"^0.15.6","react-redux":"^5.0.6","redux-thunk":"^2.2.0","video-react":"~0.13.3","shaka-player":"^2.4.1","babel-runtime":"^6.26.0","babel-polyfill":"^6.26.0","react-redux-saga":"^1.0.2","@material-ui/core":"^1.0.0","react-virtualized":"^9.18.5","@material-ui/icons":"^2.0.0","immutability-helper":"^3.0.0","veritone-react-common":"^7.4.0","veritone-redux-common":"^3.7.0","veritone-oauth-helpers":"^2.1.0","redux-api-middleware-fixed":"^2.0.0"},"_hasShrinkwrap":false,"devDependencies":{"raf":"^3.4.0","jest":"^22.4.3","faker":"^4.1.0","enzyme":"^3.5.0","eslint":"^4.8.0","rimraf":"^2.6.2","rollup":"^0.55.1","webpack":"^4.0.1","cross-env":"^5.1.1","node-sass":"^4.7.2","stylelint":"^8.2.0","babel-core":"^6.26.0","url-loader":"^0.6.2","sass-loader":"^6.0.6","webpack-cli":"^2.0.9","babel-loader":"^7.1.3","redux-logger":"^3.0.6","redux-devtools":"^3.4.0","@storybook/react":"v3.3.9","redux-mock-store":"^1.3.0","veritone-dev-env":"^3.0.0","rollup-plugin-url":"^1.3.0","identity-obj-proxy":"^3.0.0","redux-validate-fsa":"^0.1.2","rollup-plugin-json":"^2.3.0","babel-plugin-lodash":"^3.3.2","eslint-plugin-react":"^7.8.2","react-test-renderer":"^16.0.0","rollup-plugin-alias":"^1.4.0","rollup-plugin-babel":"^3.0.3","eslint-plugin-import":"^2.10.0","eslint-plugin-lodash":"^2.4.5","babel-plugin-date-fns":"^0.1.0","eslint-plugin-promise":"^3.5.0","rollup-plugin-postcss":"^1.2.8","rollup-plugin-replace":"^2.0.0","@storybook/addon-knobs":"3.3.9","eslint-config-prettier":"^2.6.0","rollup-analyzer-plugin":"^1.1.1","rollup-plugin-commonjs":"^8.3.0","enzyme-adapter-react-16":"^1.0.0","stylelint-config-prettier":"^4.0.0","stylelint-config-standard":"^17.0.0","rollup-plugin-node-resolve":"^3.0.2","babel-plugin-external-helpers":"^6.22.0","babel-plugin-transform-runtime":"^6.23.0","redux-immutable-state-invariant":"^2.1.0","babel-plugin-add-react-displayname":"^0.0.5","babel-plugin-transform-class-properties":"^6.24.1","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-plugin-transform-export-extensions":"^6.22.0","babel-plugin-transform-object-rest-spread":"^6.26.0"},"_npmOperationalInternal":{"tmp":"tmp/veritone-widgets_8.0.1_1562632038793_0.061624604959790164","host":"s3://npm-registry-packages"}},"8.0.2":{"name":"veritone-widgets","version":"8.0.2","license":"Apache-2.0","_id":"veritone-widgets@8.0.2","maintainers":[{"name":"albertcbrown","email":"al@veritone.com"},{"name":"andrew.tung","email":"atungw@gmail.com"},{"name":"atb91590","email":"atb91590@yahoo.com"},{"name":"coolmitch","email":"robb.mitch@gmail.com"},{"name":"mmtbkn","email":"mohamedirvine@gmail.com"},{"name":"steveshaffer","email":"steve@shaffer.ninja"},{"name":"tbui","email":"tbui@veritone.com"},{"name":"truong_veritone","email":"ktruong@veritone.com"},{"name":"veritone_dev","email":"dev@veritone.com"},{"name":"veritone-jordan","email":"jbelford@veritone.com"}],"dist":{"shasum":"8c0159dc41aede0e3fd79fe5bdf13ac27f5284aa","tarball":"https://registry.npmjs.org/veritone-widgets/-/veritone-widgets-8.0.2.tgz","fileCount":199,"integrity":"sha512-umc1PQQG9jkIlc0f9b9ydGlfkfd/uJW6clgYgJCm5bTdzIUuDx/f540r/G6BsT/76qJbC9rw1+A74hEAKHI4mg==","signatures":[{"sig":"MEUCICYraTMZRnUoMb/OeTPtYjZ3hTzs5WuWYNoOdpN5MjYlAiEA+2aksM363cLE0QKud/qqcg7rma8Cv0c2/ItUc6EcACY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":55824744,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdI+WrCRA9TVsSAnZWagAAp84P/jK8vBy9JRPWz+7AypcR\ntsPSNNRedWRkmDR7Xr7O0BbJbRFsTdpBSrIvD8k4mLxms1qsETbDAXzh8/2t\nU9Olr+i00tLpY/kJRM8JSHhcjdAsslWO8KJbYFf3y201gg9aaacV8RyP4jql\n8Qtk/8K7x9/A8Leh2S/AiZRE3FayZskRjrjh6hqGb2wSGYLwlti/kZ79fsv7\ntSyq08zPTAWzMaBQHR1H4Ie6ZPDW0U97yQcu3zAU46djMEAWi9IdU1J/G/gx\nT0zfCouTU41OGIIFgG5nJrh3evb4RmM49k6hFH2Fy8Ke9G8fuTQYcuEuror6\nqVKktLpIHtiZu0Bn2oZ9Q0ca6biJXGArJiVFYBsMWRqcvMMplpqrqcAfNSaw\nWRlt4TAnAeZp3B+CjIz4G5XrSlM8DhfuBURclJB7+we1HUy2KUZTkmgC8+d+\nhTQbXHILIXfUSadZzPQofnM701ag36MUGQ+WJTjfZUA2B3/I18LZc8ZQNrwr\nHq1lbWY0/vAu01r1ioHJcAKc9HncsxTnu3mxEaYwqYNQtFI0kg1XaqWYAX9M\nJ/P3WBOO4QbguKbBz2aokE/d4B/5hfHlLgEfbTenKud0+/8polm2QenNapNF\n8kGKLr9kGxvzPPLH2hwyyQK3hc7gzd9akyA8Fmq/BYQ3EsmgDEhwgCyiyJvT\n1MyF\r\n=Deon\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"setupFiles":["<rootDir>/test/testSuitePolyfills.js","<rootDir>/test/configureEnzyme.js"],"moduleNameMapper":{"\\.(css|scss)$":"identity-obj-proxy","\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$":"<rootDir>/test/__mocks__/fileMock.js"},"moduleDirectories":["node_modules"],"moduleFileExtensions":["js","jsx"]},"main":"dist/bundle-cjs.js","module":"dist/bundle-es.js","scripts":{"lint":"yarn run lint:js && yarn run lint:styles","test":"jest","build":"yarn run build:es && yarn run build:cjs && yarn run build:script-tag","start":"yarn run start:widget-server; yarn run start:storybook","format":"prettier --write \"./src/**/*.{js,scss}\"","lint:js":"eslint src/** --ext .js --max-warnings 0","build:es":"cross-env NODE_ENV=production BABEL_ENV=production-es rollup -c rollup.config.es.js","prebuild":"yarn run clean:build","build:cjs":"cross-env NODE_ENV=production BABEL_ENV=production-cjs rollup -c rollup.config.cjs.js","test:watch":"jest --watch","build:watch":"cross-env NODE_ENV=production rollup -c --watch","clean:build":"rimraf dist","lint:styles":"stylelint \"src/**/*.{scss, css}\"","prepublishOnly":"yarn run test && yarn run lint && yarn run build","build:storybook":"NODE_ENV=production build-storybook -c .storybook -o docs-static","start:storybook":"NODE_ENV=test start-storybook -p 3000 -c .storybook","build:script-tag":"cross-env NODE_ENV=production BABEL_ENV=production-cjs webpack --config webpack.config.script-tag.js","start:widget-server":"yarn workspace veritone-widgets-server run start &"},"_npmUser":{"name":"mmtbkn","email":"mohamedirvine@gmail.com"},"description":"As of v5.0.0, this package exports both React \"smart components\" and framework agnostic \"widgets\" for most components. When both are available, the smart component is the default export and the widget is a named export. For example, `import FilePicker, { ","directories":{},"jsnext:main":"dist/bundle-es.js","licenseText":"                                 Apache License\n                           Version 2.0, January 2004\n                        http://www.apache.org/licenses/\n\n   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n   1. Definitions.\n\n      \"License\" shall mean the terms and conditions for use, reproduction,\n      and distribution as defined by Sections 1 through 9 of this document.\n\n      \"Licensor\" shall mean the copyright owner or entity authorized by\n      the copyright owner that is granting the License.\n\n      \"Legal Entity\" shall mean the union of the acting entity and all\n      other entities that control, are controlled by, or are under common\n      control with that entity. For the purposes of this definition,\n      \"control\" means (i) the power, direct or indirect, to cause the\n      direction or management of such entity, whether by contract or\n      otherwise, or (ii) ownership of fifty percent (50%) or more of the\n      outstanding shares, or (iii) beneficial ownership of such entity.\n\n      \"You\" (or \"Your\") shall mean an individual or Legal Entity\n      exercising permissions granted by this License.\n\n      \"Source\" form shall mean the preferred form for making modifications,\n      including but not limited to software source code, documentation\n      source, and configuration files.\n\n      \"Object\" form shall mean any form resulting from mechanical\n      transformation or translation of a Source form, including but\n      not limited to compiled object code, generated documentation,\n      and conversions to other media types.\n\n      \"Work\" shall mean the work of authorship, whether in Source or\n      Object form, made available under the License, as indicated by a\n      copyright notice that is included in or attached to the work\n      (an example is provided in the Appendix below).\n\n      \"Derivative Works\" shall mean any work, whether in Source or Object\n      form, that is based on (or derived from) the Work and for which the\n      editorial revisions, annotations, elaborations, or other modifications\n      represent, as a whole, an original work of authorship. For the purposes\n      of this License, Derivative Works shall not include works that remain\n      separable from, or merely link (or bind by name) to the interfaces of,\n      the Work and Derivative Works thereof.\n\n      \"Contribution\" shall mean any work of authorship, including\n      the original version of the Work and any modifications or additions\n      to that Work or Derivative Works thereof, that is intentionally\n      submitted to Licensor for inclusion in the Work by the copyright owner\n      or by an individual or Legal Entity authorized to submit on behalf of\n      the copyright owner. For the purposes of this definition, \"submitted\"\n      means any form of electronic, verbal, or written communication sent\n      to the Licensor or its representatives, including but not limited to\n      communication on electronic mailing lists, source code control systems,\n      and issue tracking systems that are managed by, or on behalf of, the\n      Licensor for the purpose of discussing and improving the Work, but\n      excluding communication that is conspicuously marked or otherwise\n      designated in writing by the copyright owner as \"Not a Contribution.\"\n\n      \"Contributor\" shall mean Licensor and any individual or Legal Entity\n      on behalf of whom a Contribution has been received by Licensor and\n      subsequently incorporated within the Work.\n\n   2. Grant of Copyright License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      copyright license to reproduce, prepare Derivative Works of,\n      publicly display, publicly perform, sublicense, and distribute the\n      Work and such Derivative Works in Source or Object form.\n\n   3. Grant of Patent License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      (except as stated in this section) patent license to make, have made,\n      use, offer to sell, sell, import, and otherwise transfer the Work,\n      where such license applies only to those patent claims licensable\n      by such Contributor that are necessarily infringed by their\n      Contribution(s) alone or by combination of their Contribution(s)\n      with the Work to which such Contribution(s) was submitted. If You\n      institute patent litigation against any entity (including a\n      cross-claim or counterclaim in a lawsuit) alleging that the Work\n      or a Contribution incorporated within the Work constitutes direct\n      or contributory patent infringement, then any patent licenses\n      granted to You under this License for that Work shall terminate\n      as of the date such litigation is filed.\n\n   4. Redistribution. You may reproduce and distribute copies of the\n      Work or Derivative Works thereof in any medium, with or without\n      modifications, and in Source or Object form, provided that You\n      meet the following conditions:\n\n      (a) You must give any other recipients of the Work or\n          Derivative Works a copy of this License; and\n\n      (b) You must cause any modified files to carry prominent notices\n          stating that You changed the files; and\n\n      (c) You must retain, in the Source form of any Derivative Works\n          that You distribute, all copyright, patent, trademark, and\n          attribution notices from the Source form of the Work,\n          excluding those notices that do not pertain to any part of\n          the Derivative Works; and\n\n      (d) If the Work includes a \"NOTICE\" text file as part of its\n          distribution, then any Derivative Works that You distribute must\n          include a readable copy of the attribution notices contained\n          within such NOTICE file, excluding those notices that do not\n          pertain to any part of the Derivative Works, in at least one\n          of the following places: within a NOTICE text file distributed\n          as part of the Derivative Works; within the Source form or\n          documentation, if provided along with the Derivative Works; or,\n          within a display generated by the Derivative Works, if and\n          wherever such third-party notices normally appear. The contents\n          of the NOTICE file are for informational purposes only and\n          do not modify the License. You may add Your own attribution\n          notices within Derivative Works that You distribute, alongside\n          or as an addendum to the NOTICE text from the Work, provided\n          that such additional attribution notices cannot be construed\n          as modifying the License.\n\n      You may add Your own copyright statement to Your modifications and\n      may provide additional or different license terms and conditions\n      for use, reproduction, or distribution of Your modifications, or\n      for any such Derivative Works as a whole, provided Your use,\n      reproduction, and distribution of the Work otherwise complies with\n      the conditions stated in this License.\n\n   5. Submission of Contributions. Unless You explicitly state otherwise,\n      any Contribution intentionally submitted for inclusion in the Work\n      by You to the Licensor shall be under the terms and conditions of\n      this License, without any additional terms or conditions.\n      Notwithstanding the above, nothing herein shall supersede or modify\n      the terms of any separate license agreement you may have executed\n      with Licensor regarding such Contributions.\n\n   6. Trademarks. This License does not grant permission to use the trade\n      names, trademarks, service marks, or product names of the Licensor,\n      except as required for reasonable and customary use in describing the\n      origin of the Work and reproducing the content of the NOTICE file.\n\n   7. Disclaimer of Warranty. Unless required by applicable law or\n      agreed to in writing, Licensor provides the Work (and each\n      Contributor provides its Contributions) on an \"AS IS\" BASIS,\n      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n      implied, including, without limitation, any warranties or conditions\n      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n      PARTICULAR PURPOSE. You are solely responsible for determining the\n      appropriateness of using or redistributing the Work and assume any\n      risks associated with Your exercise of permissions under this License.\n\n   8. Limitation of Liability. In no event and under no legal theory,\n      whether in tort (including negligence), contract, or otherwise,\n      unless required by applicable law (such as deliberate and grossly\n      negligent acts) or agreed to in writing, shall any Contributor be\n      liable to You for damages, including any direct, indirect, special,\n      incidental, or consequential damages of any character arising as a\n      result of this License or out of the use or inability to use the\n      Work (including but not limited to damages for loss of goodwill,\n      work stoppage, computer failure or malfunction, or any and all\n      other commercial damages or losses), even if such Contributor\n      has been advised of the possibility of such damages.\n\n   9. Accepting Warranty or Additional Liability. While redistributing\n      the Work or Derivative Works thereof, You may choose to offer,\n      and charge a fee for, acceptance of support, warranty, indemnity,\n      or other liability obligations and/or rights consistent with this\n      License. However, in accepting such obligations, You may act only\n      on Your own behalf and on Your sole responsibility, not on behalf\n      of any other Contributor, and only if You agree to indemnify,\n      defend, and hold each Contributor harmless for any liability\n      incurred by, or claims asserted against, such Contributor by reason\n      of your accepting any such warranty or additional liability.\n\n   END OF TERMS AND CONDITIONS\n\n   APPENDIX: How to apply the Apache License to your work.\n\n      To apply the Apache License to your work, attach the following\n      boilerplate notice, with the fields enclosed by brackets \"{}\"\n      replaced with your own identifying information. (Don't include\n      the brackets!)  The text should be enclosed in the appropriate\n      comment syntax for the file format. We also recommend that a\n      file or class name and description of purpose be included on the\n      same \"printed page\" as the copyright notice for easier\n      identification within third-party archives.\n\n   Copyright {yyyy} {name of copyright owner}\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n","dependencies":{"react":"^16.3.0","redux":"^4.0.0","react-dom":"^16.3.0","recompose":"^0.30.0","redux-saga":"^0.15.6","react-redux":"^5.0.6","redux-thunk":"^2.2.0","video-react":"~0.13.3","shaka-player":"^2.4.1","babel-runtime":"^6.26.0","babel-polyfill":"^6.26.0","react-redux-saga":"^1.0.2","@material-ui/core":"^1.0.0","react-virtualized":"^9.18.5","@material-ui/icons":"^2.0.0","immutability-helper":"^3.0.0","veritone-react-common":"^8.0.1","veritone-redux-common":"^3.7.0","veritone-oauth-helpers":"^2.1.0","redux-api-middleware-fixed":"^2.0.0"},"_hasShrinkwrap":false,"devDependencies":{"raf":"^3.4.0","jest":"^22.4.3","faker":"^4.1.0","enzyme":"^3.5.0","eslint":"^4.8.0","rimraf":"^2.6.2","rollup":"^0.55.1","webpack":"^4.0.1","cross-env":"^5.1.1","node-sass":"^4.7.2","stylelint":"^8.2.0","babel-core":"^6.26.0","url-loader":"^0.6.2","sass-loader":"^6.0.6","webpack-cli":"^2.0.9","babel-loader":"^7.1.3","redux-logger":"^3.0.6","redux-devtools":"^3.4.0","@storybook/react":"v3.3.9","redux-mock-store":"^1.3.0","veritone-dev-env":"^3.0.0","rollup-plugin-url":"^1.3.0","identity-obj-proxy":"^3.0.0","redux-validate-fsa":"^0.1.2","rollup-plugin-json":"^2.3.0","babel-plugin-lodash":"^3.3.2","eslint-plugin-react":"^7.8.2","react-test-renderer":"^16.0.0","rollup-plugin-alias":"^1.4.0","rollup-plugin-babel":"^3.0.3","eslint-plugin-import":"^2.10.0","eslint-plugin-lodash":"^2.4.5","babel-plugin-date-fns":"^0.1.0","eslint-plugin-promise":"^3.5.0","rollup-plugin-postcss":"^1.2.8","rollup-plugin-replace":"^2.0.0","@storybook/addon-knobs":"3.3.9","eslint-config-prettier":"^2.6.0","rollup-analyzer-plugin":"^1.1.1","rollup-plugin-commonjs":"^8.3.0","enzyme-adapter-react-16":"^1.0.0","stylelint-config-prettier":"^4.0.0","stylelint-config-standard":"^17.0.0","rollup-plugin-node-resolve":"^3.0.2","babel-plugin-external-helpers":"^6.22.0","babel-plugin-transform-runtime":"^6.23.0","redux-immutable-state-invariant":"^2.1.0","babel-plugin-add-react-displayname":"^0.0.5","babel-plugin-transform-class-properties":"^6.24.1","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-plugin-transform-export-extensions":"^6.22.0","babel-plugin-transform-object-rest-spread":"^6.26.0"},"_npmOperationalInternal":{"tmp":"tmp/veritone-widgets_8.0.2_1562633642197_0.7173415590092851","host":"s3://npm-registry-packages"}},"8.0.3":{"name":"veritone-widgets","version":"8.0.3","license":"Apache-2.0","_id":"veritone-widgets@8.0.3","maintainers":[{"name":"albertcbrown","email":"al@veritone.com"},{"name":"andrew.tung","email":"atungw@gmail.com"},{"name":"atb91590","email":"atb91590@yahoo.com"},{"name":"coolmitch","email":"robb.mitch@gmail.com"},{"name":"mmtbkn","email":"mohamedirvine@gmail.com"},{"name":"steveshaffer","email":"steve@shaffer.ninja"},{"name":"tbui","email":"tbui@veritone.com"},{"name":"truong_veritone","email":"ktruong@veritone.com"},{"name":"veritone_dev","email":"dev@veritone.com"},{"name":"veritone-jordan","email":"jbelford@veritone.com"}],"dist":{"shasum":"c0449bdcc53fd75fdbed3d0bbc22b53c487406c0","tarball":"https://registry.npmjs.org/veritone-widgets/-/veritone-widgets-8.0.3.tgz","fileCount":199,"integrity":"sha512-ePqZRI0ktAlyKB/wsxRtHWpPUYRwd1bn3CwZYw07GozFe9mx3tYoEkglxvzjtYjHoo6IfE7LtmAt7Zmvco3tzw==","signatures":[{"sig":"MEQCIHCKtWmohVA79z8JmdLUKCMS1cVs1mv+HOw1Q3uNhdyOAiAem0LTgUNRq2Vlz9LaO/6QrVAENLc5r3v8zSYrg1eO4Q==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":55825483,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdMhzBCRA9TVsSAnZWagAA5cAP/j/fgDyYr2QtZXcG+brM\noaO7JKEYJk0vpbfG+O2elxvbBfhP6mcgfUiLldFHQoslDxVHy8UpdWwLlJ80\nAn2+JC4QXvf6l2ODLwfTytFvAAjp3VIo3VhmV6PFA/lOBRBcIjkqF1p1WHCw\ns18iWSZRpl/yZf0RPHGYfwtiOrpICceY9YBsH5vEAEk/wWsJISQ2ol0v2XjO\nQooVZa4b172xAS5AX2RPNpjIQT0n+TcdToLwrqfi5+3MnX0xnG6MltX54etM\nxk10Xs4UNrFpFgrEwAFN13JvwgDHJL3QDt/FfF/YHb8Jd8luu3bmdUbX7rm/\ncKkP3hAovfikaIjdSgXrabdAjnDlAONMLce4qkP6rvmj9kLBx2T1yxRxSk74\nY9u30iwRUfiR5NVJK0rMtc4iQIiSBd4Jp0zfh0jvjCBwQarqgsEXVXYEmu3p\nNdmpUz9s34nN7dpTmgeS9gEix2p8nJeOFNzaXClM5KznIpvASnlXCgKjA1bd\nROQIhjjuTByhVShhZuK30s7hedjkSek2V2hT+XhUgDQ0NDNgbaSfVKQmTKdl\n9vfzjvuzoo9V9nlw71GY8thug0kPodDbX3IBY986e2yVwkunRUXdpaiemI1G\n8/GlhOwPhPj8dMtpLDBe2hIot2FpPhxCnxsKhB9X/Ltq930UdaLeK3vO/XWd\n5syW\r\n=6gPx\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"setupFiles":["<rootDir>/test/testSuitePolyfills.js","<rootDir>/test/configureEnzyme.js"],"moduleNameMapper":{"\\.(css|scss)$":"identity-obj-proxy","\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$":"<rootDir>/test/__mocks__/fileMock.js"},"moduleDirectories":["node_modules"],"moduleFileExtensions":["js","jsx"]},"main":"dist/bundle-cjs.js","module":"dist/bundle-es.js","scripts":{"lint":"yarn run lint:js && yarn run lint:styles","test":"jest","build":"yarn run build:es && yarn run build:cjs && yarn run build:script-tag","start":"yarn run start:widget-server; yarn run start:storybook","format":"prettier --write \"./src/**/*.{js,scss}\"","lint:js":"eslint src/** --ext .js --max-warnings 0","build:es":"cross-env NODE_ENV=production BABEL_ENV=production-es rollup -c rollup.config.es.js","prebuild":"yarn run clean:build","build:cjs":"cross-env NODE_ENV=production BABEL_ENV=production-cjs rollup -c rollup.config.cjs.js","test:watch":"jest --watch","build:watch":"cross-env NODE_ENV=production rollup -c --watch","clean:build":"rimraf dist","lint:styles":"stylelint \"src/**/*.{scss, css}\"","prepublishOnly":"yarn run test && yarn run lint && yarn run build","build:storybook":"NODE_ENV=production build-storybook -c .storybook -o docs-static","start:storybook":"NODE_ENV=test start-storybook -p 3000 -c .storybook","build:script-tag":"cross-env NODE_ENV=production BABEL_ENV=production-cjs webpack --config webpack.config.script-tag.js","start:widget-server":"yarn workspace veritone-widgets-server run start &"},"_npmUser":{"name":"truong_veritone","email":"ktruong@veritone.com"},"description":"As of v5.0.0, this package exports both React \"smart components\" and framework agnostic \"widgets\" for most components. When both are available, the smart component is the default export and the widget is a named export. For example, `import FilePicker, { ","directories":{},"jsnext:main":"dist/bundle-es.js","licenseText":"                                 Apache License\n                           Version 2.0, January 2004\n                        http://www.apache.org/licenses/\n\n   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n   1. Definitions.\n\n      \"License\" shall mean the terms and conditions for use, reproduction,\n      and distribution as defined by Sections 1 through 9 of this document.\n\n      \"Licensor\" shall mean the copyright owner or entity authorized by\n      the copyright owner that is granting the License.\n\n      \"Legal Entity\" shall mean the union of the acting entity and all\n      other entities that control, are controlled by, or are under common\n      control with that entity. For the purposes of this definition,\n      \"control\" means (i) the power, direct or indirect, to cause the\n      direction or management of such entity, whether by contract or\n      otherwise, or (ii) ownership of fifty percent (50%) or more of the\n      outstanding shares, or (iii) beneficial ownership of such entity.\n\n      \"You\" (or \"Your\") shall mean an individual or Legal Entity\n      exercising permissions granted by this License.\n\n      \"Source\" form shall mean the preferred form for making modifications,\n      including but not limited to software source code, documentation\n      source, and configuration files.\n\n      \"Object\" form shall mean any form resulting from mechanical\n      transformation or translation of a Source form, including but\n      not limited to compiled object code, generated documentation,\n      and conversions to other media types.\n\n      \"Work\" shall mean the work of authorship, whether in Source or\n      Object form, made available under the License, as indicated by a\n      copyright notice that is included in or attached to the work\n      (an example is provided in the Appendix below).\n\n      \"Derivative Works\" shall mean any work, whether in Source or Object\n      form, that is based on (or derived from) the Work and for which the\n      editorial revisions, annotations, elaborations, or other modifications\n      represent, as a whole, an original work of authorship. For the purposes\n      of this License, Derivative Works shall not include works that remain\n      separable from, or merely link (or bind by name) to the interfaces of,\n      the Work and Derivative Works thereof.\n\n      \"Contribution\" shall mean any work of authorship, including\n      the original version of the Work and any modifications or additions\n      to that Work or Derivative Works thereof, that is intentionally\n      submitted to Licensor for inclusion in the Work by the copyright owner\n      or by an individual or Legal Entity authorized to submit on behalf of\n      the copyright owner. For the purposes of this definition, \"submitted\"\n      means any form of electronic, verbal, or written communication sent\n      to the Licensor or its representatives, including but not limited to\n      communication on electronic mailing lists, source code control systems,\n      and issue tracking systems that are managed by, or on behalf of, the\n      Licensor for the purpose of discussing and improving the Work, but\n      excluding communication that is conspicuously marked or otherwise\n      designated in writing by the copyright owner as \"Not a Contribution.\"\n\n      \"Contributor\" shall mean Licensor and any individual or Legal Entity\n      on behalf of whom a Contribution has been received by Licensor and\n      subsequently incorporated within the Work.\n\n   2. Grant of Copyright License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      copyright license to reproduce, prepare Derivative Works of,\n      publicly display, publicly perform, sublicense, and distribute the\n      Work and such Derivative Works in Source or Object form.\n\n   3. Grant of Patent License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      (except as stated in this section) patent license to make, have made,\n      use, offer to sell, sell, import, and otherwise transfer the Work,\n      where such license applies only to those patent claims licensable\n      by such Contributor that are necessarily infringed by their\n      Contribution(s) alone or by combination of their Contribution(s)\n      with the Work to which such Contribution(s) was submitted. If You\n      institute patent litigation against any entity (including a\n      cross-claim or counterclaim in a lawsuit) alleging that the Work\n      or a Contribution incorporated within the Work constitutes direct\n      or contributory patent infringement, then any patent licenses\n      granted to You under this License for that Work shall terminate\n      as of the date such litigation is filed.\n\n   4. Redistribution. You may reproduce and distribute copies of the\n      Work or Derivative Works thereof in any medium, with or without\n      modifications, and in Source or Object form, provided that You\n      meet the following conditions:\n\n      (a) You must give any other recipients of the Work or\n          Derivative Works a copy of this License; and\n\n      (b) You must cause any modified files to carry prominent notices\n          stating that You changed the files; and\n\n      (c) You must retain, in the Source form of any Derivative Works\n          that You distribute, all copyright, patent, trademark, and\n          attribution notices from the Source form of the Work,\n          excluding those notices that do not pertain to any part of\n          the Derivative Works; and\n\n      (d) If the Work includes a \"NOTICE\" text file as part of its\n          distribution, then any Derivative Works that You distribute must\n          include a readable copy of the attribution notices contained\n          within such NOTICE file, excluding those notices that do not\n          pertain to any part of the Derivative Works, in at least one\n          of the following places: within a NOTICE text file distributed\n          as part of the Derivative Works; within the Source form or\n          documentation, if provided along with the Derivative Works; or,\n          within a display generated by the Derivative Works, if and\n          wherever such third-party notices normally appear. The contents\n          of the NOTICE file are for informational purposes only and\n          do not modify the License. You may add Your own attribution\n          notices within Derivative Works that You distribute, alongside\n          or as an addendum to the NOTICE text from the Work, provided\n          that such additional attribution notices cannot be construed\n          as modifying the License.\n\n      You may add Your own copyright statement to Your modifications and\n      may provide additional or different license terms and conditions\n      for use, reproduction, or distribution of Your modifications, or\n      for any such Derivative Works as a whole, provided Your use,\n      reproduction, and distribution of the Work otherwise complies with\n      the conditions stated in this License.\n\n   5. Submission of Contributions. Unless You explicitly state otherwise,\n      any Contribution intentionally submitted for inclusion in the Work\n      by You to the Licensor shall be under the terms and conditions of\n      this License, without any additional terms or conditions.\n      Notwithstanding the above, nothing herein shall supersede or modify\n      the terms of any separate license agreement you may have executed\n      with Licensor regarding such Contributions.\n\n   6. Trademarks. This License does not grant permission to use the trade\n      names, trademarks, service marks, or product names of the Licensor,\n      except as required for reasonable and customary use in describing the\n      origin of the Work and reproducing the content of the NOTICE file.\n\n   7. Disclaimer of Warranty. Unless required by applicable law or\n      agreed to in writing, Licensor provides the Work (and each\n      Contributor provides its Contributions) on an \"AS IS\" BASIS,\n      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n      implied, including, without limitation, any warranties or conditions\n      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n      PARTICULAR PURPOSE. You are solely responsible for determining the\n      appropriateness of using or redistributing the Work and assume any\n      risks associated with Your exercise of permissions under this License.\n\n   8. Limitation of Liability. In no event and under no legal theory,\n      whether in tort (including negligence), contract, or otherwise,\n      unless required by applicable law (such as deliberate and grossly\n      negligent acts) or agreed to in writing, shall any Contributor be\n      liable to You for damages, including any direct, indirect, special,\n      incidental, or consequential damages of any character arising as a\n      result of this License or out of the use or inability to use the\n      Work (including but not limited to damages for loss of goodwill,\n      work stoppage, computer failure or malfunction, or any and all\n      other commercial damages or losses), even if such Contributor\n      has been advised of the possibility of such damages.\n\n   9. Accepting Warranty or Additional Liability. While redistributing\n      the Work or Derivative Works thereof, You may choose to offer,\n      and charge a fee for, acceptance of support, warranty, indemnity,\n      or other liability obligations and/or rights consistent with this\n      License. However, in accepting such obligations, You may act only\n      on Your own behalf and on Your sole responsibility, not on behalf\n      of any other Contributor, and only if You agree to indemnify,\n      defend, and hold each Contributor harmless for any liability\n      incurred by, or claims asserted against, such Contributor by reason\n      of your accepting any such warranty or additional liability.\n\n   END OF TERMS AND CONDITIONS\n\n   APPENDIX: How to apply the Apache License to your work.\n\n      To apply the Apache License to your work, attach the following\n      boilerplate notice, with the fields enclosed by brackets \"{}\"\n      replaced with your own identifying information. (Don't include\n      the brackets!)  The text should be enclosed in the appropriate\n      comment syntax for the file format. We also recommend that a\n      file or class name and description of purpose be included on the\n      same \"printed page\" as the copyright notice for easier\n      identification within third-party archives.\n\n   Copyright {yyyy} {name of copyright owner}\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n","dependencies":{"react":"^16.3.0","redux":"^4.0.0","react-dom":"^16.3.0","recompose":"^0.30.0","redux-saga":"^0.15.6","react-redux":"^5.0.6","redux-thunk":"^2.2.0","video-react":"~0.13.3","shaka-player":"^2.4.1","babel-runtime":"^6.26.0","babel-polyfill":"^6.26.0","react-redux-saga":"^1.0.2","@material-ui/core":"^1.0.0","react-virtualized":"^9.18.5","@material-ui/icons":"^2.0.0","immutability-helper":"^3.0.0","veritone-react-common":"^8.0.2","veritone-redux-common":"^3.7.0","veritone-oauth-helpers":"^2.1.0","redux-api-middleware-fixed":"^2.0.0"},"_hasShrinkwrap":false,"devDependencies":{"raf":"^3.4.0","jest":"^22.4.3","faker":"^4.1.0","enzyme":"^3.5.0","eslint":"^4.8.0","rimraf":"^2.6.2","rollup":"^0.55.1","webpack":"^4.0.1","cross-env":"^5.1.1","node-sass":"^4.7.2","stylelint":"^8.2.0","babel-core":"^6.26.0","url-loader":"^0.6.2","sass-loader":"^6.0.6","webpack-cli":"^2.0.9","babel-loader":"^7.1.3","redux-logger":"^3.0.6","redux-devtools":"^3.4.0","@storybook/react":"v3.3.9","redux-mock-store":"^1.3.0","veritone-dev-env":"^3.0.0","rollup-plugin-url":"^1.3.0","identity-obj-proxy":"^3.0.0","redux-validate-fsa":"^0.1.2","rollup-plugin-json":"^2.3.0","babel-plugin-lodash":"^3.3.2","eslint-plugin-react":"^7.8.2","react-test-renderer":"^16.0.0","rollup-plugin-alias":"^1.4.0","rollup-plugin-babel":"^3.0.3","eslint-plugin-import":"^2.10.0","eslint-plugin-lodash":"^2.4.5","babel-plugin-date-fns":"^0.1.0","eslint-plugin-promise":"^3.5.0","rollup-plugin-postcss":"^1.2.8","rollup-plugin-replace":"^2.0.0","@storybook/addon-knobs":"3.3.9","eslint-config-prettier":"^2.6.0","rollup-analyzer-plugin":"^1.1.1","rollup-plugin-commonjs":"^8.3.0","enzyme-adapter-react-16":"^1.0.0","stylelint-config-prettier":"^4.0.0","stylelint-config-standard":"^17.0.0","rollup-plugin-node-resolve":"^3.0.2","babel-plugin-external-helpers":"^6.22.0","babel-plugin-transform-runtime":"^6.23.0","redux-immutable-state-invariant":"^2.1.0","babel-plugin-add-react-displayname":"^0.0.5","babel-plugin-transform-class-properties":"^6.24.1","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-plugin-transform-export-extensions":"^6.22.0","babel-plugin-transform-object-rest-spread":"^6.26.0"},"_npmOperationalInternal":{"tmp":"tmp/veritone-widgets_8.0.3_1563565247726_0.4927842117071972","host":"s3://npm-registry-packages"}},"8.0.4":{"name":"veritone-widgets","version":"8.0.4","license":"Apache-2.0","_id":"veritone-widgets@8.0.4","maintainers":[{"name":"albertcbrown","email":"al@veritone.com"},{"name":"andrew.tung","email":"atungw@gmail.com"},{"name":"atb91590","email":"atb91590@yahoo.com"},{"name":"coolmitch","email":"robb.mitch@gmail.com"},{"name":"mmtbkn","email":"mohamedirvine@gmail.com"},{"name":"steveshaffer","email":"steve@shaffer.ninja"},{"name":"tbui","email":"tbui@veritone.com"},{"name":"truong_veritone","email":"ktruong@veritone.com"},{"name":"veritone_dev","email":"dev@veritone.com"},{"name":"veritone-jordan","email":"jbelford@veritone.com"}],"dist":{"shasum":"382c81c6e8ac3c2092da693fb930593e9d9d6979","tarball":"https://registry.npmjs.org/veritone-widgets/-/veritone-widgets-8.0.4.tgz","fileCount":147,"integrity":"sha512-QyvMF4JfewivHXv0VxM8Jc8h53Jsf+QmC8cz/dXqOViU+kfZntTwCG5v1yGUguqINgj0+VgdIug1CQCJea6Pgw==","signatures":[{"sig":"MEQCIHGWnjl4HHTJZ0NI/Hai39vafSkFZmtjCX4vwpsnIjOQAiBROwuxK2AOcChKxiDndPAVXMDaj4O++Wi2+PNogVxKDw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":57687594,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdMl0bCRA9TVsSAnZWagAAbQsP/i3lbLcvpAr3rUxQOeUV\nL1mJS0BhGHHtx1iOS+Nwbop2CviHShRs/BnArgmVBParSGQ9nJ8S+K6ZRD9e\noxyztsllFDy9h4kvCuiLrwkHQpxotiUTzBXLT+iXBsLjkFpvjBz83GAKwR9h\nkb1enyUThfU70faneFNkL7GwjYejjgUbCtIW2FmAwMYNpes1LfeDxFmMspFw\nVR75av9DUSliyeZ7ngcXMiOPF9M44IB/ThjK3Zl24kWqvERpASD5oeoo1TSM\nHaWNZzzDLPdL9+6fmulw2y5BMyYILZOiFZ43vmPKibnoPlgaiLEcL6/gWMJb\ny6s4KYyCx7J9HP6KVwXQH/lNmr2euGtwQMzM3LcyKf17RX6K/yX7Ac3004nV\ngYC6ZkfIaF5wHvR05wV4lux8j6S1TQ2bMqUG0yvZoB5f9COLwJ7ax50+lhYg\nqEYoaUbqlR5I6D7kea/kH/mLXYnWCNbmIskYTxXaQzcYn8IPPC9Ba9dteJmb\n0CBWf7+qUOaZDvSAsMmKuLJxcFgSYKlgE5qHtgu41tN8DCq4GrY2EggM/drj\nHkGTw+NRCgrPOQMcUQB4K/qOZql2c/kZYTHcEexNr9StwVwNTc6Wqs2elZ2W\nQ4jE5T0C0VlknEX9GxNaXBc6AbvJg4v4vG3n6A2tGBLPVVm3V8HJDkWZXtN/\niDii\r\n=RvCl\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"setupFiles":["<rootDir>/test/testSuitePolyfills.js","<rootDir>/test/configureEnzyme.js"],"moduleNameMapper":{"\\.(css|scss)$":"identity-obj-proxy","\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$":"<rootDir>/test/__mocks__/fileMock.js"},"moduleDirectories":["node_modules"],"moduleFileExtensions":["js","jsx"]},"main":"dist/bundle-cjs.js","module":"dist/bundle-es.js","scripts":{"lint":"yarn run lint:js && yarn run lint:styles","test":"jest","build":"yarn run build:es && yarn run build:cjs && yarn run build:script-tag","start":"yarn run start:widget-server; yarn run start:storybook","format":"prettier --write \"./src/**/*.{js,scss}\"","lint:js":"eslint src/** --ext .js --max-warnings 0","build:es":"cross-env NODE_ENV=production BABEL_ENV=production-es rollup -c rollup.config.es.js","prebuild":"yarn run clean:build","build:cjs":"cross-env NODE_ENV=production BABEL_ENV=production-cjs rollup -c rollup.config.cjs.js","test:watch":"jest --watch","build:watch":"cross-env NODE_ENV=production rollup -c --watch","clean:build":"rimraf dist","lint:styles":"stylelint \"src/**/*.{scss, css}\"","prepublishOnly":"yarn run test && yarn run lint && yarn run build","build:storybook":"NODE_ENV=production build-storybook -c .storybook -o docs-static","start:storybook":"NODE_ENV=test start-storybook -p 3000 -c .storybook","build:script-tag":"cross-env NODE_ENV=production BABEL_ENV=production-cjs webpack --config webpack.config.script-tag.js","start:widget-server":"yarn workspace veritone-widgets-server run start &"},"_npmUser":{"name":"andrew.tung","email":"atungw@gmail.com"},"_npmVersion":"6.4.1","description":"As of v5.0.0, this package exports both React \"smart components\" and framework agnostic \"widgets\" for most components. When both are available, the smart component is the default export and the widget is a named export. For example, `import FilePicker, { ","directories":{},"jsnext:main":"dist/bundle-es.js","_nodeVersion":"8.4.0","dependencies":{"react":"^16.3.0","redux":"^4.0.0","react-dom":"^16.3.0","recompose":"^0.30.0","redux-saga":"^0.15.6","react-redux":"^5.0.6","redux-thunk":"^2.2.0","video-react":"~0.13.3","shaka-player":"^2.4.1","babel-runtime":"^6.26.0","babel-polyfill":"^6.26.0","react-redux-saga":"^1.0.2","@material-ui/core":"^1.0.0","react-virtualized":"^9.18.5","@material-ui/icons":"^2.0.0","immutability-helper":"^3.0.0","veritone-react-common":"^8.0.3","veritone-redux-common":"^3.7.0","veritone-oauth-helpers":"^2.1.0","redux-api-middleware-fixed":"^2.0.0"},"_hasShrinkwrap":false,"devDependencies":{"raf":"^3.4.0","jest":"^22.4.3","faker":"^4.1.0","enzyme":"^3.5.0","eslint":"^4.8.0","rimraf":"^2.6.2","rollup":"^0.55.1","webpack":"^4.0.1","cross-env":"^5.1.1","node-sass":"^4.7.2","stylelint":"^8.2.0","babel-core":"^6.26.0","url-loader":"^0.6.2","sass-loader":"^6.0.6","webpack-cli":"^2.0.9","babel-loader":"^7.1.3","redux-logger":"^3.0.6","redux-devtools":"^3.4.0","@storybook/react":"v3.3.9","redux-mock-store":"^1.3.0","veritone-dev-env":"^3.0.0","rollup-plugin-url":"^1.3.0","identity-obj-proxy":"^3.0.0","redux-validate-fsa":"^0.1.2","rollup-plugin-json":"^2.3.0","babel-plugin-lodash":"^3.3.2","eslint-plugin-react":"^7.8.2","react-test-renderer":"^16.0.0","rollup-plugin-alias":"^1.4.0","rollup-plugin-babel":"^3.0.3","eslint-plugin-import":"^2.10.0","eslint-plugin-lodash":"^2.4.5","babel-plugin-date-fns":"^0.1.0","eslint-plugin-promise":"^3.5.0","rollup-plugin-postcss":"^1.2.8","rollup-plugin-replace":"^2.0.0","@storybook/addon-knobs":"3.3.9","eslint-config-prettier":"^2.6.0","rollup-analyzer-plugin":"^1.1.1","rollup-plugin-commonjs":"^8.3.0","enzyme-adapter-react-16":"^1.0.0","stylelint-config-prettier":"^4.0.0","stylelint-config-standard":"^17.0.0","rollup-plugin-node-resolve":"^3.0.2","babel-plugin-external-helpers":"^6.22.0","babel-plugin-transform-runtime":"^6.23.0","redux-immutable-state-invariant":"^2.1.0","babel-plugin-add-react-displayname":"^0.0.5","babel-plugin-transform-class-properties":"^6.24.1","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-plugin-transform-export-extensions":"^6.22.0","babel-plugin-transform-object-rest-spread":"^6.26.0"},"_npmOperationalInternal":{"tmp":"tmp/veritone-widgets_8.0.4_1563581722059_0.7345811754834173","host":"s3://npm-registry-packages"}},"8.0.5":{"name":"veritone-widgets","version":"8.0.5","license":"Apache-2.0","_id":"veritone-widgets@8.0.5","maintainers":[{"name":"albertcbrown","email":"al@veritone.com"},{"name":"andrew.tung","email":"atungw@gmail.com"},{"name":"christopher-gustavsson","email":"chrisgustavsson1@gmail.com"},{"name":"coolmitch","email":"robb.mitch@gmail.com"},{"name":"mikomonday","email":"miko.monday@gmail.com"},{"name":"mmtbkn","email":"mohamedirvine@gmail.com"},{"name":"steveshaffer","email":"steve@shaffer.ninja"},{"name":"tbui","email":"tbui@veritone.com"},{"name":"truong_veritone","email":"ktruong@veritone.com"},{"name":"veritone_dev","email":"dev@veritone.com"},{"name":"veritone-jordan","email":"jbelford@veritone.com"}],"dist":{"shasum":"ec9378220b09593b2018806ff98135d30389b4d5","tarball":"https://registry.npmjs.org/veritone-widgets/-/veritone-widgets-8.0.5.tgz","fileCount":213,"integrity":"sha512-lXX5WmA5yh8iyfqWWK1eJx8GhED3wPzaXQN6U6GDG7021OieXPCWuSdzjuj4mqAe6sY+UiELcOsm0vyBdFRu/A==","signatures":[{"sig":"MEUCIQD7lmjvzsvqs2b5RMRu3iL/1ENckRChxP02HPzciqH8qAIgIeYSuq/kLZQq3Ubk+wGXfCvHSzmafjUQGPhCk6HOfUE=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":25281366,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJdwK6pCRA9TVsSAnZWagAAEYIQAJFW5m65cpDFkAFUFKXT\nrXJqxaet7drx9tNiH2Vo9L3S29jthlYqUCvKGDY6gIEQUmqlW+KZPYUlrnlo\nvAcYBZqCkCR+36/MqMfpseTB8LBBIrxy9PYOJFM7iSwN79qYKsDUMXWRPOTK\nBaCm1ionmk4SkNt1FxnhycnHVrSkIpaIMOrB9WIUV7sBXRGnMsZhORL2OBGU\n6xyQowKNohN1O30SiPjYvs0nV5mmsWzXmpxRAzRLG/8FrVg305HyQbh8T5TF\n+8bjbg1WIj+gP7Rxn89dlUfAhdd7j6VAjqQUT7nmmrAbptWUBWRpJMVcyVj2\njeCvPoGn6l2dl7Xv0/Bc+d5lSA1xZ3lvAWHBMMcGmuZIwDZ8qjjuIZaSnkz4\nQq9A4FP4TIZOGobr3/1ltdezfBwxXceEyHIjEEAp9Pi+GKwSlct1g1y+a9yS\nQ2wmbHhwH6etP6F54pZcGoQn2p6tPCuKtRDGcznjd1Aa5RIFL5rsWprPlFWC\nH6rxFhn6D8Au1Pen+q1lKNKM841ycsxH0u0WyiVnYslDUT6CyixwoSXJUl/3\nqrvzMt82vNBMizO62EerTbHqvA7eZZqDBkcyQqQ5wwse+9Fy3AzoYhjKSoay\nJyXhC/H+fkYMQEI8I7zYAhmBipHrJbr0kJvvA1jvXfea2fBDxnq1tnAf5Zuk\n+5cw\r\n=kwpJ\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"setupFiles":["<rootDir>/test/testSuitePolyfills.js","<rootDir>/test/configureEnzyme.js"],"moduleNameMapper":{"^dnd-core$":"dnd-core/dist/cjs","^react-dnd$":"react-dnd/dist/cjs","\\.(css|scss)$":"identity-obj-proxy","^react-dnd-test-utils$":"react-dnd-test-utils/dist/cjs","^react-dnd-test-backend$":"react-dnd-test-backend/dist/cjs","^react-dnd-html5-backend$":"react-dnd-html5-backend/dist/cjs","^react-dnd-touch-backend$":"react-dnd-touch-backend/dist/cjs","\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$":"<rootDir>/test/__mocks__/fileMock.js"},"moduleDirectories":["node_modules","../../node_modules"],"moduleFileExtensions":["js","jsx"]},"main":"dist/bundle-cjs.js","module":"dist/bundle-es.js","scripts":{"lint":"yarn run lint:js && yarn run lint:styles","test":"jest","build":"yarn run build:es && yarn run build:cjs && yarn run build:script-tag","start":"yarn run start:widget-server; yarn run start:storybook","format":"prettier --write \"./src/**/*.{js,scss}\"","lint:js":"eslint src/** --ext .js --max-warnings 0","build:es":"cross-env NODE_ENV=production BABEL_ENV=production-es rollup -c rollup.config.es.js","prebuild":"yarn run clean:build","build:cjs":"cross-env NODE_ENV=production BABEL_ENV=production-cjs rollup -c rollup.config.cjs.js","test:watch":"jest --watch","build:watch":"cross-env NODE_ENV=production rollup -c --watch","clean:build":"rimraf dist","lint:styles":"stylelint \"src/**/*.{scss, css}\"","prepublishOnly":"yarn run test && yarn run lint && yarn run build","build:storybook":"NODE_ENV=production build-storybook -c .storybook -o docs-static","start:storybook":"NODE_ENV=test start-storybook -p 3000 -c .storybook","build:script-tag":"cross-env NODE_ENV=production BABEL_ENV=production-cjs webpack --config webpack.config.script-tag.js","start:widget-server":"yarn workspace veritone-widgets-server run start &"},"_npmUser":{"name":"mikomonday","email":"miko.monday@gmail.com"},"description":"As of v5.0.0, this package exports both React \"smart components\" and framework agnostic \"widgets\" for most components. When both are available, the smart component is the default export and the widget is a named export. For example, `import FilePicker, { ","directories":{},"jsnext:main":"dist/bundle-es.js","licenseText":"                                 Apache License\n                           Version 2.0, January 2004\n                        http://www.apache.org/licenses/\n\n   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n   1. Definitions.\n\n      \"License\" shall mean the terms and conditions for use, reproduction,\n      and distribution as defined by Sections 1 through 9 of this document.\n\n      \"Licensor\" shall mean the copyright owner or entity authorized by\n      the copyright owner that is granting the License.\n\n      \"Legal Entity\" shall mean the union of the acting entity and all\n      other entities that control, are controlled by, or are under common\n      control with that entity. For the purposes of this definition,\n      \"control\" means (i) the power, direct or indirect, to cause the\n      direction or management of such entity, whether by contract or\n      otherwise, or (ii) ownership of fifty percent (50%) or more of the\n      outstanding shares, or (iii) beneficial ownership of such entity.\n\n      \"You\" (or \"Your\") shall mean an individual or Legal Entity\n      exercising permissions granted by this License.\n\n      \"Source\" form shall mean the preferred form for making modifications,\n      including but not limited to software source code, documentation\n      source, and configuration files.\n\n      \"Object\" form shall mean any form resulting from mechanical\n      transformation or translation of a Source form, including but\n      not limited to compiled object code, generated documentation,\n      and conversions to other media types.\n\n      \"Work\" shall mean the work of authorship, whether in Source or\n      Object form, made available under the License, as indicated by a\n      copyright notice that is included in or attached to the work\n      (an example is provided in the Appendix below).\n\n      \"Derivative Works\" shall mean any work, whether in Source or Object\n      form, that is based on (or derived from) the Work and for which the\n      editorial revisions, annotations, elaborations, or other modifications\n      represent, as a whole, an original work of authorship. For the purposes\n      of this License, Derivative Works shall not include works that remain\n      separable from, or merely link (or bind by name) to the interfaces of,\n      the Work and Derivative Works thereof.\n\n      \"Contribution\" shall mean any work of authorship, including\n      the original version of the Work and any modifications or additions\n      to that Work or Derivative Works thereof, that is intentionally\n      submitted to Licensor for inclusion in the Work by the copyright owner\n      or by an individual or Legal Entity authorized to submit on behalf of\n      the copyright owner. For the purposes of this definition, \"submitted\"\n      means any form of electronic, verbal, or written communication sent\n      to the Licensor or its representatives, including but not limited to\n      communication on electronic mailing lists, source code control systems,\n      and issue tracking systems that are managed by, or on behalf of, the\n      Licensor for the purpose of discussing and improving the Work, but\n      excluding communication that is conspicuously marked or otherwise\n      designated in writing by the copyright owner as \"Not a Contribution.\"\n\n      \"Contributor\" shall mean Licensor and any individual or Legal Entity\n      on behalf of whom a Contribution has been received by Licensor and\n      subsequently incorporated within the Work.\n\n   2. Grant of Copyright License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      copyright license to reproduce, prepare Derivative Works of,\n      publicly display, publicly perform, sublicense, and distribute the\n      Work and such Derivative Works in Source or Object form.\n\n   3. Grant of Patent License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      (except as stated in this section) patent license to make, have made,\n      use, offer to sell, sell, import, and otherwise transfer the Work,\n      where such license applies only to those patent claims licensable\n      by such Contributor that are necessarily infringed by their\n      Contribution(s) alone or by combination of their Contribution(s)\n      with the Work to which such Contribution(s) was submitted. If You\n      institute patent litigation against any entity (including a\n      cross-claim or counterclaim in a lawsuit) alleging that the Work\n      or a Contribution incorporated within the Work constitutes direct\n      or contributory patent infringement, then any patent licenses\n      granted to You under this License for that Work shall terminate\n      as of the date such litigation is filed.\n\n   4. Redistribution. You may reproduce and distribute copies of the\n      Work or Derivative Works thereof in any medium, with or without\n      modifications, and in Source or Object form, provided that You\n      meet the following conditions:\n\n      (a) You must give any other recipients of the Work or\n          Derivative Works a copy of this License; and\n\n      (b) You must cause any modified files to carry prominent notices\n          stating that You changed the files; and\n\n      (c) You must retain, in the Source form of any Derivative Works\n          that You distribute, all copyright, patent, trademark, and\n          attribution notices from the Source form of the Work,\n          excluding those notices that do not pertain to any part of\n          the Derivative Works; and\n\n      (d) If the Work includes a \"NOTICE\" text file as part of its\n          distribution, then any Derivative Works that You distribute must\n          include a readable copy of the attribution notices contained\n          within such NOTICE file, excluding those notices that do not\n          pertain to any part of the Derivative Works, in at least one\n          of the following places: within a NOTICE text file distributed\n          as part of the Derivative Works; within the Source form or\n          documentation, if provided along with the Derivative Works; or,\n          within a display generated by the Derivative Works, if and\n          wherever such third-party notices normally appear. The contents\n          of the NOTICE file are for informational purposes only and\n          do not modify the License. You may add Your own attribution\n          notices within Derivative Works that You distribute, alongside\n          or as an addendum to the NOTICE text from the Work, provided\n          that such additional attribution notices cannot be construed\n          as modifying the License.\n\n      You may add Your own copyright statement to Your modifications and\n      may provide additional or different license terms and conditions\n      for use, reproduction, or distribution of Your modifications, or\n      for any such Derivative Works as a whole, provided Your use,\n      reproduction, and distribution of the Work otherwise complies with\n      the conditions stated in this License.\n\n   5. Submission of Contributions. Unless You explicitly state otherwise,\n      any Contribution intentionally submitted for inclusion in the Work\n      by You to the Licensor shall be under the terms and conditions of\n      this License, without any additional terms or conditions.\n      Notwithstanding the above, nothing herein shall supersede or modify\n      the terms of any separate license agreement you may have executed\n      with Licensor regarding such Contributions.\n\n   6. Trademarks. This License does not grant permission to use the trade\n      names, trademarks, service marks, or product names of the Licensor,\n      except as required for reasonable and customary use in describing the\n      origin of the Work and reproducing the content of the NOTICE file.\n\n   7. Disclaimer of Warranty. Unless required by applicable law or\n      agreed to in writing, Licensor provides the Work (and each\n      Contributor provides its Contributions) on an \"AS IS\" BASIS,\n      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n      implied, including, without limitation, any warranties or conditions\n      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n      PARTICULAR PURPOSE. You are solely responsible for determining the\n      appropriateness of using or redistributing the Work and assume any\n      risks associated with Your exercise of permissions under this License.\n\n   8. Limitation of Liability. In no event and under no legal theory,\n      whether in tort (including negligence), contract, or otherwise,\n      unless required by applicable law (such as deliberate and grossly\n      negligent acts) or agreed to in writing, shall any Contributor be\n      liable to You for damages, including any direct, indirect, special,\n      incidental, or consequential damages of any character arising as a\n      result of this License or out of the use or inability to use the\n      Work (including but not limited to damages for loss of goodwill,\n      work stoppage, computer failure or malfunction, or any and all\n      other commercial damages or losses), even if such Contributor\n      has been advised of the possibility of such damages.\n\n   9. Accepting Warranty or Additional Liability. While redistributing\n      the Work or Derivative Works thereof, You may choose to offer,\n      and charge a fee for, acceptance of support, warranty, indemnity,\n      or other liability obligations and/or rights consistent with this\n      License. However, in accepting such obligations, You may act only\n      on Your own behalf and on Your sole responsibility, not on behalf\n      of any other Contributor, and only if You agree to indemnify,\n      defend, and hold each Contributor harmless for any liability\n      incurred by, or claims asserted against, such Contributor by reason\n      of your accepting any such warranty or additional liability.\n\n   END OF TERMS AND CONDITIONS\n\n   APPENDIX: How to apply the Apache License to your work.\n\n      To apply the Apache License to your work, attach the following\n      boilerplate notice, with the fields enclosed by brackets \"{}\"\n      replaced with your own identifying information. (Don't include\n      the brackets!)  The text should be enclosed in the appropriate\n      comment syntax for the file format. We also recommend that a\n      file or class name and description of purpose be included on the\n      same \"printed page\" as the copyright notice for easier\n      identification within third-party archives.\n\n   Copyright {yyyy} {name of copyright owner}\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n","dependencies":{"react":"^16.9.0","redux":"^4.0.0","react-dom":"^16.9.0","recompose":"^0.30.0","redux-saga":"^0.15.6","react-redux":"^5.0.6","redux-thunk":"^2.2.0","video-react":"~0.13.3","shaka-player":"^2.4.1","babel-runtime":"^6.26.0","babel-polyfill":"^6.26.0","@material-ui/lab":"^4.0.0-alpha.25","react-redux-saga":"^1.0.2","@material-ui/core":"^4.4.0","react-virtualized":"^9.18.5","@material-ui/icons":"^4.2.1","@material-ui/styles":"^4.3.3","immutability-helper":"^3.0.0","veritone-react-common":"^9.0.0","veritone-redux-common":"^3.7.0","veritone-oauth-helpers":"^2.1.0","redux-api-middleware-fixed":"^2.0.0"},"_hasShrinkwrap":false,"devDependencies":{"raf":"^3.4.0","jest":"^22.4.3","faker":"^4.1.0","enzyme":"^3.5.0","eslint":"^4.8.0","rimraf":"^2.6.2","rollup":"^1.17.0","webpack":"^4.0.1","cross-env":"^5.1.1","node-sass":"^4.7.2","stylelint":"^8.2.0","babel-core":"^6.26.0","url-loader":"^0.6.2","sass-loader":"^6.0.6","webpack-cli":"^2.0.9","babel-loader":"^7.1.3","redux-logger":"^3.0.6","redux-devtools":"^3.4.0","@storybook/react":"v3.3.9","redux-mock-store":"^1.3.0","veritone-dev-env":"^3.0.0","rollup-plugin-url":"^2.2.2","identity-obj-proxy":"^3.0.0","redux-validate-fsa":"^0.1.2","rollup-plugin-json":"^4.0.0","babel-plugin-lodash":"^3.3.2","eslint-plugin-react":"^7.8.2","react-test-renderer":"^16.0.0","rollup-plugin-alias":"^1.5.2","rollup-plugin-babel":"^3.0.7","eslint-plugin-import":"^2.10.0","eslint-plugin-lodash":"^2.4.5","babel-plugin-date-fns":"^0.2.1","eslint-plugin-promise":"^3.5.0","rollup-plugin-postcss":"^2.0.3","rollup-plugin-replace":"^2.2.0","@storybook/addon-knobs":"3.3.9","eslint-config-prettier":"^2.6.0","rollup-analyzer-plugin":"^1.2.0","rollup-plugin-commonjs":"^10.0.1","enzyme-adapter-react-16":"^1.0.0","stylelint-config-prettier":"^4.0.0","stylelint-config-standard":"^17.0.0","rollup-plugin-node-resolve":"^5.2.0","babel-plugin-external-helpers":"^6.22.0","babel-plugin-transform-runtime":"^6.23.0","redux-immutable-state-invariant":"^2.1.0","babel-plugin-add-react-displayname":"^0.0.5","babel-plugin-transform-class-properties":"^6.24.1","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-plugin-transform-export-extensions":"^6.22.0","babel-plugin-transform-object-rest-spread":"^6.26.0"},"_npmOperationalInternal":{"tmp":"tmp/veritone-widgets_8.0.5_1572908712178_0.9578003685443133","host":"s3://npm-registry-packages"}},"8.0.6":{"name":"veritone-widgets","version":"8.0.6","license":"Apache-2.0","_id":"veritone-widgets@8.0.6","maintainers":[{"name":"aaronadaniel","email":"aaron.kalel@gmail.com"},{"name":"albertcbrown","email":"al@veritone.com"},{"name":"christopher-gustavsson","email":"chrisgustavsson1@gmail.com"},{"name":"coolmitch","email":"robb.mitch@gmail.com"},{"name":"kkaiser","email":"kkaiser@veritone.com"},{"name":"linh.le","email":"linh.le@setacinq.vn"},{"name":"mikomonday","email":"miko.monday@gmail.com"},{"name":"mmtbkn","email":"mohamedirvine@gmail.com"},{"name":"seta-tuha","email":"tu.ha@setacinq.vn"},{"name":"truong_veritone","email":"ktruong@veritone.com"},{"name":"veritone_dev","email":"dev@veritone.com"},{"name":"veritone-jordan","email":"jbelford@veritone.com"}],"dist":{"shasum":"ce8ba8abb8dd742ccd1a9e6e7202ba24049fb960","tarball":"https://registry.npmjs.org/veritone-widgets/-/veritone-widgets-8.0.6.tgz","fileCount":185,"integrity":"sha512-dp5UdzW75hBojhywgnywO2NQ2cwtJcoK8rMYw6UYC/eq1yQGNAAQy1yKQ8JZa7k6+39G0er6VebvaVp5jhJFoQ==","signatures":[{"sig":"MEYCIQDHmTVIEYwzQycP0VP4Rx/SASOVwkqO/agkx46c882hUwIhAMMINf4QHXj5o9n/3M8TBvi+wbIhyIY0cQmiVUyj5sxU","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":29683162,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeOAQaCRA9TVsSAnZWagAAaJIP/RK8bJvRDAdnu/jDB+/b\nuwE0bPZsReZt/A58Akj0eDjRKIT8463Nh/UNe/5NVMzp9bcc9zY11ZmHMJpM\nbeTKRYcqbf9v7OUHHIyWykBhGTR567xUKnBZmsRa3KfBkukr6svD2eXi+oBh\nO+NcmBJGisxUZGwprOTdnDgBWarz89Ll9ksuJThsGSyYqbG1pxbC6eva6iax\np0f9yaHNzZDXVXeQxTl75ag411cIY2Ay1VIOPrubXLZNNztD9nscaLC9A8Y8\nqycqaOx9ELhoEf3SK3L0tqkgFMxX0hPKClAHXWrdQiUsZ08F+f4B3pkvCUEx\nixE2uTAQboD/tzK/zOKX/QTBFr7ZSVLq42pHasrAjpYfdROEic6BCi9ZmqZS\njFHPT4eI+PIwNChdgKD0t2QarKO0S2ycEQW8p90UZkqCaHYXpjVm0PWlSYPJ\nl9g+EPyVldPojH/EYzykDuZPzGj13lgI5LesijXVsMONR5/A6WJVqcnfXLYW\nxtJ9ksQLu21NWzngrMmB7RhTRZTWYOccV0VKxYPSXj1KgM1YDs7PGqV5Q3aC\nVlZ+Rm6MKTGPRMszc8/kJ9Yr5rtaKLKrlURnmBKMBDj00DmyyOIKZofgnNil\nAi/aJwDVWAnfXQ/pRedQyilQ/ugZ6SvmO6VSPz8fOHbYTvsSluj6aN3/XdPd\nYvP9\r\n=Y5pB\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"setupFiles":["<rootDir>/test/testSuitePolyfills.js","<rootDir>/test/configureEnzyme.js"],"moduleNameMapper":{"^dnd-core$":"dnd-core/dist/cjs","^react-dnd$":"react-dnd/dist/cjs","\\.(css|scss)$":"identity-obj-proxy","^react-dnd-test-utils$":"react-dnd-test-utils/dist/cjs","^react-dnd-test-backend$":"react-dnd-test-backend/dist/cjs","^react-dnd-html5-backend$":"react-dnd-html5-backend/dist/cjs","^react-dnd-touch-backend$":"react-dnd-touch-backend/dist/cjs","\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$":"<rootDir>/test/__mocks__/fileMock.js"},"moduleDirectories":["node_modules","../../node_modules"],"moduleFileExtensions":["js","jsx"]},"main":"dist/bundle-cjs.js","module":"dist/bundle-es.js","readme":"## Quick Start\nAs of v5.0.0, this package exports both React \"smart components\" and framework agnostic \"widgets\" for most components. When both are available, the smart component is the default export and the widget is a named export. For example, `import FilePicker, { FilePickerWidget } from 'veritone-widgets'` imports the smart component as FilePicker and the widget as FilePickerWidget. Smart components usually require redux reducers and sagas to be imported as well, see [Using Smart Components](#using-smart-components)\n\n### Widgets (framework agnostic)\n```javascript\nimport { VeritoneApp, OAuthLoginButtonWidget, AppBarWidget } from 'veritone-widgets'\nconst app = VeritoneApp();\n\n// a \"log in with veritone\" button\nconst oauthButton = new OAuthLoginButtonWidget({\n  // the ID of an existing element in your document where the button will appear\n  elId: 'login-button-widget',\n  // the ID of your Veritone application (found in Developer App)\n  clientId: 'my-client-id',\n  // the route in your app that will handle OAuth responses (more details below)\n  redirectUri: 'https://my-app.com/handle_oauth_callback',\n  // optional callbacks to retrieve the OAuth token for using outside of VeritoneApp:\n  onAuthSuccess: ({ OAuthToken }) => console.log(OAuthToken),\n  onAuthFailure: (error) => console.log(error)\n});\n\n// the Veritone app bar, which will receive auth after the user completes\n// the oauth flow using the OAuthLoginButton\nconst appBar = new AppBarWidget({\n  elId: 'appBar-widget',\n  title: 'My App',\n  backgroundColor: '#4caf50',\n  profileMenu: true,\n  appSwitcher: true\n});\n```\n### React Components\n```javascript\nimport { OAuthLoginButton } from 'veritone-widgets'\n\nrender(\n  <OAuthLoginButton\n    clientId=\"my-client-id\"\n    redirectUri=\"https://my-app.com/handle_oauth_callback\"\n  />\n)\n```\n\n## Using Smart Components\nBecause smart components are not rendered within the VeritoneApp widget framework, they require the user's app to have its own redux store with the components' reducers installed. Often, [sagas](https://redux-saga.js.org/) are also included and must be started as part of the app's root saga.\n\n### Smart component reducer/saga requirements\n#### FilePicker\n* reducer:\n`import {filePickerReducer} from 'veritone-widgets'`\n\n* saga:\n`import {filePickerSaga} from 'veritone-widgets'`\n\n#### Notifications\n* reducer:\n`import {notificationsReducer} from 'veritone-widgets'`\n\n#### EngineOutputExport\n* reducer:\n`import {engineOutputExportReducer} from 'veritone-widgets'`\n\n#### OAuthLoginButton\n* reducers:\nveritone-redux-common `User`, `Auth` and `Config` reducers\n\n### Smart component theme wrapper requirements\nIn your app, import the `VeritoneSDKThemeProvider` from `veritone-react-common`:\n```\nimport {VeritoneSDKThemeProvider } from 'veritone-react-common'\n```\nthen wrap your root component with `<VeritoneSDKThemeProvider>`. If this is not possible, the `@withVeritoneSDKThemeProvider` decorator is provided to wrap individual components.\n\nComponents can be customized using [material-ui themes](https://material-ui.com/customization/themes/) by passing a theme into the `theme` prop of the provider. Passed-in themes will be merged with the default Veritone theme.\n\n## Using Widgets\n### 1. Create an instance of VeritoneApp\n`VeritoneApp` is a container for all the widgets and widget data in an app. Before using any widgets, you need to import and call it. Typically this will be done when your application is loaded and initialized.\n\n```javascript\nimport { VeritoneApp } from 'veritone-widgets'\nconst app = VeritoneApp();\n```\n\n_Note_: `VeritoneApp` creates a singleton, so you do not need to manage the constructed app instance yourself. As long as VeritoneApp() has been imported and called at least once, you can retrieve the same instance by importing and calling VeritoneApp() again elsewhere in your app, if needed.\n\n### 2. Authenticate with Veritone via OAuth\nIf you already have an OAuth token (because your app handles the client-side OAuth flow on its own), provide it by calling `login()` on the returned app instance.\n\n```javascript\nimport { VeritoneApp } from 'veritone-widgets'\nconst app = VeritoneApp().login({\n  OAuthToken: 'my-token-here'\n});\n```\n \nCalling `login()` is usually not necessary; we provide an `OAuthLoginButton` widget, which handles the OAuth token exchange automatically. See the instructions in the next section for more information.\n\n\n### 3. Add widgets to your app\nAfter you've initialized the app framework by calling `VeritoneApp()`, you can begin using widgets.\n\nA \"widget\" is a self-contained frontend component. Widgets always render into an empty element which you provide. They are self-contained and handle rendering a UI, responding to user interactions, making api calls, and so on.\n\nFor example, the `AppBar` widget renders the Veritone application toolbar, fetches the required data to render the Veritone app switcher and profile menu, and allows the developer to configure their application logo and title. When the user uses the app switcher or uses the profile menu to log out, the AppBar widget handles those events.  \n\nWidgets typically can be configured with a variety of options, but always require at least `elId`. This is the id (string) of an element in your document, often a `div`, into which the widget will be rendered. By applying styling to that div, you can position the widget around your app. The element specified in elId must exist in the document before you create the widget that will use it.\n\n#### Example: Using the OAuthLoginButton widget\nThe first widget you are likely to include is `OAuthLoginButton`. `OAuthLoginButton` renders a \"log in with Veritone\" button that your users can click to start the OAuth authentication flow. At the end of that flow, your VeritoneApp instance will be authenticated and able to make requests to our API. You can also retrieve the oauth token to use in your own app.\n\n_Note_: Unless you are handling the OAuth flow on your own and providing the token to VeritoneApp manually, the `OAuthLoginButton` widget is required for Veritone widgets to work.\n\nThe actual code you write to use widgets will vary based on your framework of choice, but in general, it should be as follows.\n\n```javascript\n// assuming VeritoneApp has already been initialized as described earlier, and given a document like:\n<body>\n  ...\n  <div id=\"login-button-widget\" />\n</body>\n\n// you can render the login button to the document like this:\nimport { OAuthLoginButtonWidget } from 'veritone-widgets'\nconst oauthButton = new OAuthLoginButtonWidget({\n  // the ID of an existing element in your document where the button will appear\n  elId: 'login-button-widget',\n  // the ID of your Veritone application (found in Developer App)\n  clientId: 'my-client-id',\n  // the route in your app that will handle OAuth responses (more details below)\n  redirectUri: 'https://my-app.com/handle_oauth_callback',\n  // optional callbacks to retrieve the OAuth token for using outside of VeritoneApp:\n  onAuthSuccess: ({ OAuthToken }) => console.log(OAuthToken),\n  onAuthFailure: (error) => console.log(error)\n});\n```\n\nWhen `new OAuthLoginButtonWidget({ ... })` runs, the widget will appear on your page.\n\n#### Example: Using the AppBar widget\nAll Veritone apps should also include the AppBar widget.\n\n```javascript\n<body>\n  <div id=\"appBar-widget\" />\n  ...\n</body>\n\nimport { AppBarWidget } from 'veritone-widgets'\nconst appBar = new AppBarWidget({\n  elId: 'appBar-widget',\n  title: 'My App',\n  backgroundColor: '#4caf50',\n  profileMenu: true,\n  appSwitcher: true\n});\n```\n\n## Use via script tag\nFor environments that do not support javascript module imports, widgets can also be included in an app via script tags.\n\n```\n<body>\n  <div id=\"appBar-widget\"></div>\n\n  <script src=\"https://unpkg.com/veritone-widgets@^5/dist/umd/VeritoneApp.js\"></script>\n  <script src=\"https://unpkg.com/veritone-widgets@^5/dist/umd/AppBar.js\"></script>\n\n  <script>\n    const app = VeritoneApp.default();\n\n    const appBar = new AppBar.AppBarWidget({\n      elId: 'appBar-widget',\n      title: 'AppBar Widget',\n      profileMenu: true,\n      appSwitcher: true\n    });\n  </script>\n</body>\n```\n\nAs you can see, each widget is bundled individually to keep file sizes small. In addition, VeritoneApp is separately bundled and required to use widgets. Scripts can be accessed from the the [unpkg](https://unpkg.com/) cdn or downloaded and hosted on your own infrastructure. Unpkg supports [semver ranges](https://docs.npmjs.com/misc/semver), or a specific version can be specified exactly. \n\n\n## Configuring widgets\nNote that the OAuthLoginButton widget in the example above is being configured with five properties: elId, clientId, OAuthURI, onAuthSuccess and onAuthFailure. As mentioned earlier, an elId is required for every widget. OAuthURI, clientId, onAuthSuccess and onAuthFailure are specific configurable properties on the OAuthLoginButton. As it is in the example, configuration is always provided to the widget constructor.\n\n## Widget instance methods\nSome widgets have methods which can be called on an instance of that widget. For example, the FilePicker widget has the methods `pick()` and `cancel()` to open and close the picker dialog, respectively.\n\n```javascript\nthis._picker = new FilePickerWidget({\n  elId: 'file-picker-widget',\n  accept: ['image/*'],\n  multiple: true\n});\n\n...\n// call the pick() instance method on the widget\nthis._picker.pick(files => console.log(files))\n```\n\n#### Where to look for widget options\nIn practice, a widget is just a wrapper around a React component. The easiest way to determine all the possible options for a given widget is to look at the PropTypes of its component. Remember to watch for console warnings which will indicate when an option was configured incorrectly, or when a required option was not provided. \n\n* The \"storybook\" dev environments in veritone-widgets and veritone-react-common have live examples of the various widgets and components.\n\n* The `story.js` file in the root of each widget folder in veritone-widgets and in the root of each component folder in veritone-react-common show the code used to create the storybook pages. If you are using React to write your application, these can be used directly as a basis for your own implementation. \n\n* The PropTypes in the source files of the various widgets (in veritone-widgets) and their respective components (in veritone-react-common) generally correspond to configurable options. Likewise, instance methods for a widget will be defined on its widget class in veritone-widgets.\n\n### Destroying widgets\nTo remove a widget, call `destroy()` on the instance\n```javascript\nconst oauthButton = new OAuthLoginButtonWidget({ ... });\n...\noauthButton.destroy();\n```\n\n## Available widgets\nThe current widgets are:\n\n**AppBar**\n\nThe title and navigation bar common between all Veritone applications. Includes a logo, title, the Veritone app switcher and profile menu.\n\n*Options:*\n\n* title: string, a title to show in the center of the AppBar\n* logoSrc: string, a URL or image (like an SVG) to use as the logo on the left-hand side of the AppBar.\n* backgroundColor: string, a color (in hex) to use for the AppBar background\n* profileMenu: bool, whether or not to show the profile menu\n* appSwitcher: bool, whether or not to show the app switcher menu\n* logo: bool, whether or not to show the veritone logo on the left side of the AppBar\n* onLogout: func, called when the user clicks \"logout\". Apps must implement their own logout logic (usually by deleting the stored oauth token and redirecting or refreshing the page appropriately)\n\n**OAuthLoginButton**\nThe \"Log in with Veritone\" button and corresponding frontend logic to handle the OAuth2 authentication flow.\n\n*Options:*\n* mode: \"implicit\" (default) or \"authCode\", the OAuth grant type you wish to use. \n* OAuthURI: string (required if using `authCode` mode), the URL of your app server's OAuth callback endpoint.\n* redirectUri: string (required if using `implicit` mode), the URL of your app frontend's OAuth callback endpoint.\n* clientID: string (required if using implicit mode), the ID of your Veritone application (found in Developer App)\n* onAuthSuccess: function, a callback that will be called with the OAuth token when the OAuth flow is completed successfully.\n* onAuthFailure: function, a callback that will be called with the error when the OAuth flow fails.\n\n*Requirements*\n\nVeritone provides two OAuth modes to suit different app requirements:\n\n`Implicit`, the default mode, is a frontend-only grant flow with no serverside requirement. _Most apps will use this mode._ This flow is much easier for apps to implement but has the downside of not returning a refresh token; users will need to log in again each time their token expires. \n\n`Auth Code` is a server-based grant flow, which uses your Veritone app's OAuth secret to retrieve both an auth token and refresh token. Auth code flow requires a server because the OAuth secret cannot be exposed to the client; the veritone-widets-server package is an example implementation, and more information can be found in its readme.\n\n**FilePicker**\n\nThe Veritone file upload dialog. Handles selecting and uploading files to S3 for use on the Veritone platform.\n\n*Options:*\n\n* accept: oneOfType([arrayOf(string), string]), file extension(s) or mimetype(s) which the file picker will accept\n* multiple: bool, whether the picker will accept multiple files to upload in a batch\n* width: number, the width of the filepicker dialog\n* height: number, the height of the filepicker dialog\n* allowUrlUpload: bool, whether the filepicker will allow files to be selected by URL\n\n*Instance methods*\n\n* pick(callback): open the filepicker dialog.\n  * callback signature is (result, { warning, error, cancelled })\n    * result: array of result objects, one for each file uploaded\n      * key: string, the filename as stored on the server (may include a UUID)\n      * fileName: string, the original filename\n      * size: number, the file size in bytes\n      * type: string, the mime type of the file\n      * error: string or `false`, the error that prevented the file from uploading, if any\n      * bucket: string, the S3 bucket to which the file was uploaded\n      * expiresInSeconds: number, the length of time the credentials in `getUrl` will be valid, in seconds.\n      * getUrl: string or `null`, the resulting S3 URL, if successful. Includes credentials that are valid for `expires` seconds. \n      * unsignedUrl: string or `null`, the resulting S3 URL, if successful. Does not include credentials and will need to be signed to be used.\n    * warning: string or `false`, a warning message if some (but not all) files failed to upload. A warning indicates that `result` contains some successful upload result objects, and some that were not successful (unsuccessful objects will have `error` populated with an error message, as noted above)\n    * error: string or `false`, an error message, if all files failed to upload.\n    * cancelled: bool, whether or not the filepicker interaction was cancelled (by the user, or by calling cancel()).\n\n* cancel(): close the filepicker dialog. The callback provided to pick() will be called with `(null, { cancelled: true })`.\n\n**Table**\n\nA Veritone table to display data.\n\n*Options:*\n\n* data: arrayOf(object) (required), the dataset\n* columns: arrayOf(shape) (required), a set of defintions for each column to be displayed\n  * shape: object with the following keys:\n    * dataKey: string (required), the data attribute to display within column \n    * header: string, the column heading\n    * transform: function, specifies how column data should be displayed\n      * signature: `(cellValue) => {}`\n    * menu: bool, identifies a column as a menu column\n    * onSelectItem: function, when `menu` is `true`, specifies action(s) to take when a menu option is clicked\n      * signature: `(menuAction) => {}`\n    * cursorPointer: bool, show cursor pointer over table cells\n    * align: string, specifies columm alignment: `['left', 'right', 'center']`\n    * width: number, specifies the width of a column\n* paginate: bool, specifies whether table data should be paginated\n* initialItemsPerPage: number, the number of items to display per page in a paginated table,\n* onCellClick: function, specifies action to take when a table cell is clicked\n  * signature: `(cellRow, cellColumn, cellData) => {}`\n* focusedRow: number, identifies a row to display additional content for\n* renderFocusedRowDetails: function, specifies additional content to display for `focusedRow`\n  * signature: `(focusedRowData) => (string | react component)`\n* onShowCellRange: function, fires when table page or rows (on page) changes;\n  * signature: `({ start: firstRowIndex, end: lastRowIndex }) => {}`\n* onRefreshPageData: function, specifies how to refresh data (if needed)\n  * signature: `() => {}`\n* emptyMessage: string, text to display when table has no data\n\n**EngineOutputExport**\n\nThe Veritone export engine outputs full screen dialog. This will fetch the engines ran on a tdo/recording and allow the user to configure what file types are included in the export\n\n*Options:*\n\n* tdos: arrayOf(shape), array of tdo data objects that engine outputs will be exported for\n  * shape: object with the following keys:\n    * tdoId: string (required), the unique id of a tdo you want to export engine outputs for\n    * mentionId: string, the unique id of a mention you want to export engine outputs for. If a mentionId is provided the engine results of the mention will be returned rather than those of the tdo\n    * startOffsetMs: number, an integer representing the number of milliseconds from the start of the tdo where the exported engine outputs will begin\n    * stopOffsetMs: number, an integer representing the number of milliseconds from the start of the tdo where the exported engine outputs will end\n* onExport: func, specifies action to take when export button is clicked\n  * signature: `(response) => {}`\n* onCancel: func, specifies action to take when cancel button is clicked\n  * signature: `() => {}`\n\n*Instance methods*\n\n* open(): opens the export engine output dialog.\n\n## Running the development environment (storybook)\n1. Set up your local clone of veritone-sdk, following the instructions in the [main readme](https://github.com/veritone/veritone-sdk#development)\n2. cd to this package\n3. In `config.dev.json`, fill in the missing fields with your own app's information (see our [application quick-start guide](http://docs.veritone.com/#/applications/quick-start/) for more info on how to create an app). **Your app's `URL` and `redirect URL` should be set to the same value** for the purposes of dev in this package. This default allows the environment to run with minimal config. \n4. run `yarn start`.\n5. When the build finishes, access the storybook at the url provided in your terminal.\n\n## License\nCopyright 2019, Veritone Inc.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n","scripts":{"lint":"yarn run lint:js && yarn run lint:styles","test":"jest","build":"yarn run build:es && yarn run build:cjs && yarn run build:script-tag","start":"yarn run start:widget-server; yarn run start:storybook","format":"prettier --write \"./src/**/*.{js,scss}\"","lint:js":"eslint src/** --ext .js --max-warnings 0","build:es":"cross-env NODE_ENV=production BABEL_ENV=production-es rollup -c rollup.config.es.js","prebuild":"yarn run clean:build","build:cjs":"cross-env NODE_ENV=production BABEL_ENV=production-cjs rollup -c rollup.config.cjs.js","test:watch":"jest --watch","build:watch":"cross-env NODE_ENV=production rollup -c --watch","clean:build":"rimraf dist","lint:styles":"stylelint \"src/**/*.{scss, css}\"","prepublishOnly":"yarn run test && yarn run lint && yarn run build","build:storybook":"NODE_ENV=production build-storybook -c .storybook -o docs-static","start:storybook":"NODE_ENV=test start-storybook -p 3000 -c .storybook","build:script-tag":"cross-env NODE_ENV=production BABEL_ENV=production-cjs webpack --config webpack.config.script-tag.js","start:widget-server":"yarn workspace veritone-widgets-server run start &"},"_npmUser":{"name":"linh.le","email":"linh.le@setacinq.vn"},"_npmVersion":"6.4.1","description":"As of v5.0.0, this package exports both React \"smart components\" and framework agnostic \"widgets\" for most components. When both are available, the smart component is the default export and the widget is a named export. For example, `import FilePicker, { ","directories":{},"jsnext:main":"dist/bundle-es.js","_nodeVersion":"8.15.1","dependencies":{"rxjs":"^6.5.3","react":"^16.9.0","redux":"^4.0.4","deepmerge":"^4.2.2","react-dom":"^16.9.0","recompose":"^0.30.0","redux-saga":"^1.1.3","react-redux":"^7.1.3","redux-thunk":"^2.3.0","video-react":"~0.13.3","shaka-player":"^2.4.1","babel-runtime":"^6.26.0","babel-polyfill":"^6.26.0","@material-ui/lab":"^4.0.0-alpha.37","react-redux-saga":"^1.0.2","@material-ui/core":"^4.8.1","react-virtualized":"^9.18.5","@material-ui/icons":"^4.5.1","@material-ui/styles":"^4.7.1","immutability-helper":"^3.0.0","@material-ui/pickers":"^3.2.8","redux-dynamic-modules":"^5.2.0","veritone-react-common":"^9.0.1","veritone-redux-common":"^3.11.4","veritone-oauth-helpers":"^2.1.0","redux-api-middleware-fixed":"^2.0.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"raf":"^3.4.0","jest":"^22.4.3","faker":"^4.1.0","enzyme":"^3.5.0","eslint":"^4.8.0","rimraf":"^2.6.2","rollup":"^1.17.0","webpack":"^4.0.1","cross-env":"^5.1.1","node-sass":"^4.7.2","stylelint":"^8.2.0","babel-core":"^6.26.0","url-loader":"^0.6.2","sass-loader":"^6.0.6","webpack-cli":"^2.0.9","babel-loader":"^7.1.3","redux-logger":"^3.0.6","redux-devtools":"^3.5.0","@storybook/react":"v3.3.9","redux-mock-store":"^1.5.4","veritone-dev-env":"^3.0.0","rollup-plugin-url":"^2.2.2","identity-obj-proxy":"^3.0.0","redux-validate-fsa":"^0.1.2","rollup-plugin-json":"^4.0.0","babel-plugin-lodash":"^3.3.2","eslint-plugin-react":"^7.8.2","react-test-renderer":"^16.0.0","rollup-plugin-alias":"^1.5.2","rollup-plugin-babel":"^3.0.7","eslint-plugin-import":"^2.10.0","eslint-plugin-lodash":"^2.4.5","babel-plugin-date-fns":"^0.2.1","eslint-plugin-promise":"^3.5.0","rollup-plugin-postcss":"^2.0.3","rollup-plugin-replace":"^2.2.0","@storybook/addon-knobs":"3.3.9","eslint-config-prettier":"^2.6.0","rollup-analyzer-plugin":"^1.2.0","rollup-plugin-commonjs":"^10.0.1","enzyme-adapter-react-16":"^1.0.0","stylelint-config-prettier":"^4.0.0","stylelint-config-standard":"^17.0.0","rollup-plugin-node-resolve":"^5.2.0","babel-plugin-external-helpers":"^6.22.0","babel-plugin-transform-runtime":"^6.23.0","redux-immutable-state-invariant":"^2.1.0","babel-plugin-add-react-displayname":"^0.0.5","babel-plugin-transform-class-properties":"^6.24.1","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-plugin-transform-export-extensions":"^6.22.0","babel-plugin-transform-object-rest-spread":"^6.26.0"},"_npmOperationalInternal":{"tmp":"tmp/veritone-widgets_8.0.6_1580729370075_0.42225586401528803","host":"s3://npm-registry-packages"}},"8.0.6-beta.2":{"name":"veritone-widgets","version":"8.0.6-beta.2","license":"Apache-2.0","_id":"veritone-widgets@8.0.6-beta.2","maintainers":[{"name":"aaronadaniel","email":"aaron.kalel@gmail.com"},{"name":"albertcbrown","email":"al@veritone.com"},{"name":"christopher-gustavsson","email":"chrisgustavsson1@gmail.com"},{"name":"coolmitch","email":"robb.mitch@gmail.com"},{"name":"kkaiser","email":"kkaiser@veritone.com"},{"name":"linh.le","email":"linh.le@setacinq.vn"},{"name":"mikomonday","email":"miko.monday@gmail.com"},{"name":"mmtbkn","email":"mohamedirvine@gmail.com"},{"name":"seta-tuha","email":"tu.ha@setacinq.vn"},{"name":"truong_veritone","email":"ktruong@veritone.com"},{"name":"veritone_dev","email":"dev@veritone.com"},{"name":"veritone-jordan","email":"jbelford@veritone.com"}],"dist":{"shasum":"ea330f3062ab413d234c8363d305ff82dc3e8e3c","tarball":"https://registry.npmjs.org/veritone-widgets/-/veritone-widgets-8.0.6-beta.2.tgz","fileCount":184,"integrity":"sha512-rRekaALMrEcJPdZeiZoQ1S1CDg+GFp33SvoeXuY4IYGVkt6hrk+tZOYoJoyJpNkkDKyPcAHJ0S3fk9T9GLPglw==","signatures":[{"sig":"MEUCIEJr6wQvZevJuE4LRTVZtVgrVqrsebj/D5XrGOKRjTrgAiEAxIs3mNUHDS8eAAqku4oT12vkoilWZxnjoLA5D0db+TQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":29764427,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeOR2mCRA9TVsSAnZWagAAyI0P/i0hPotXRT/NdHtX6iJ1\nKj2/Cvcmx1pgfIYNJ3Y80uVkCzkCcUsXveHKe51D2ZUSeX7PAESpT4Wc1R0G\nRJf9LwHCzMBh+rYoq/pnx782xOtnWq032Yg1kOFzMAGSlVQDkhQZIpUMItvY\ntwi+AvVvWiGYe85kyoKIpupyTXvKaT8oXFNaabdoU4ibo9DesW6fUXXfcmee\np+IhGB0yG1fUMNt85xlEXolGiAelrGDm8TZQnlVEHg1mXAY/7dGS33sunPfP\n6QrgD0f4u9B0yHsPw3i84g34xVYETBFSJ/Wovebj39oK235j2rbjPhfU1qKu\nqBG5UkWxac8OnvHVPfomSURDop3Ci7CZCP709nUAEqIoZ4t9J7ojnnLQaGNB\nOrI8UrSL3UFE0u+0jJ0ztz8MgKknOFmjD/FFny3SQURKtfW7tcyYt/NT1ryw\ngde6EZZGvf0aaSRScx6jRLT+7YfQmkn6/gPAVyD8IpjbY+IWwcyxuSdlSVPR\n+55Ff38zhppcPsbGr/QxBdHI16ZTYnHbPfkOqhfIb6UlidqTQJgO70m6ncgT\na1ByE8B4Tog19yyzQB5tUB3V+lOva5x0mHbQmgII7Au4Yw7uYm25dyraW0M7\nM9Hw3npmCmZr9NGbwglqSwgC5CUrxAepro1E2HEQhWVvt/Z50QSyBX4m6Kpu\n6rSq\r\n=W91M\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"setupFiles":["<rootDir>/test/testSuitePolyfills.js","<rootDir>/test/configureEnzyme.js"],"moduleNameMapper":{"^dnd-core$":"dnd-core/dist/cjs","^react-dnd$":"react-dnd/dist/cjs","\\.(css|scss)$":"identity-obj-proxy","^react-dnd-test-utils$":"react-dnd-test-utils/dist/cjs","^react-dnd-test-backend$":"react-dnd-test-backend/dist/cjs","^react-dnd-html5-backend$":"react-dnd-html5-backend/dist/cjs","^react-dnd-touch-backend$":"react-dnd-touch-backend/dist/cjs","\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$":"<rootDir>/test/__mocks__/fileMock.js"},"moduleDirectories":["node_modules","../../node_modules"],"moduleFileExtensions":["js","jsx"]},"main":"dist/bundle-cjs.js","module":"dist/bundle-es.js","readme":"## Quick Start\nAs of v5.0.0, this package exports both React \"smart components\" and framework agnostic \"widgets\" for most components. When both are available, the smart component is the default export and the widget is a named export. For example, `import FilePicker, { FilePickerWidget } from 'veritone-widgets'` imports the smart component as FilePicker and the widget as FilePickerWidget. Smart components usually require redux reducers and sagas to be imported as well, see [Using Smart Components](#using-smart-components)\n\n### Widgets (framework agnostic)\n```javascript\nimport { VeritoneApp, OAuthLoginButtonWidget, AppBarWidget } from 'veritone-widgets'\nconst app = VeritoneApp();\n\n// a \"log in with veritone\" button\nconst oauthButton = new OAuthLoginButtonWidget({\n  // the ID of an existing element in your document where the button will appear\n  elId: 'login-button-widget',\n  // the ID of your Veritone application (found in Developer App)\n  clientId: 'my-client-id',\n  // the route in your app that will handle OAuth responses (more details below)\n  redirectUri: 'https://my-app.com/handle_oauth_callback',\n  // optional callbacks to retrieve the OAuth token for using outside of VeritoneApp:\n  onAuthSuccess: ({ OAuthToken }) => console.log(OAuthToken),\n  onAuthFailure: (error) => console.log(error)\n});\n\n// the Veritone app bar, which will receive auth after the user completes\n// the oauth flow using the OAuthLoginButton\nconst appBar = new AppBarWidget({\n  elId: 'appBar-widget',\n  title: 'My App',\n  backgroundColor: '#4caf50',\n  profileMenu: true,\n  appSwitcher: true\n});\n```\n### React Components\n```javascript\nimport { OAuthLoginButton } from 'veritone-widgets'\n\nrender(\n  <OAuthLoginButton\n    clientId=\"my-client-id\"\n    redirectUri=\"https://my-app.com/handle_oauth_callback\"\n  />\n)\n```\n\n## Using Smart Components\nBecause smart components are not rendered within the VeritoneApp widget framework, they require the user's app to have its own redux store with the components' reducers installed. Often, [sagas](https://redux-saga.js.org/) are also included and must be started as part of the app's root saga.\n\n### Smart component reducer/saga requirements\n#### FilePicker\n* reducer:\n`import {filePickerReducer} from 'veritone-widgets'`\n\n* saga:\n`import {filePickerSaga} from 'veritone-widgets'`\n\n#### Notifications\n* reducer:\n`import {notificationsReducer} from 'veritone-widgets'`\n\n#### EngineOutputExport\n* reducer:\n`import {engineOutputExportReducer} from 'veritone-widgets'`\n\n#### OAuthLoginButton\n* reducers:\nveritone-redux-common `User`, `Auth` and `Config` reducers\n\n### Smart component theme wrapper requirements\nIn your app, import the `VeritoneSDKThemeProvider` from `veritone-react-common`:\n```\nimport {VeritoneSDKThemeProvider } from 'veritone-react-common'\n```\nthen wrap your root component with `<VeritoneSDKThemeProvider>`. If this is not possible, the `@withVeritoneSDKThemeProvider` decorator is provided to wrap individual components.\n\nComponents can be customized using [material-ui themes](https://material-ui.com/customization/themes/) by passing a theme into the `theme` prop of the provider. Passed-in themes will be merged with the default Veritone theme.\n\n## Using Widgets\n### 1. Create an instance of VeritoneApp\n`VeritoneApp` is a container for all the widgets and widget data in an app. Before using any widgets, you need to import and call it. Typically this will be done when your application is loaded and initialized.\n\n```javascript\nimport { VeritoneApp } from 'veritone-widgets'\nconst app = VeritoneApp();\n```\n\n_Note_: `VeritoneApp` creates a singleton, so you do not need to manage the constructed app instance yourself. As long as VeritoneApp() has been imported and called at least once, you can retrieve the same instance by importing and calling VeritoneApp() again elsewhere in your app, if needed.\n\n### 2. Authenticate with Veritone via OAuth\nIf you already have an OAuth token (because your app handles the client-side OAuth flow on its own), provide it by calling `login()` on the returned app instance.\n\n```javascript\nimport { VeritoneApp } from 'veritone-widgets'\nconst app = VeritoneApp().login({\n  OAuthToken: 'my-token-here'\n});\n```\n \nCalling `login()` is usually not necessary; we provide an `OAuthLoginButton` widget, which handles the OAuth token exchange automatically. See the instructions in the next section for more information.\n\n\n### 3. Add widgets to your app\nAfter you've initialized the app framework by calling `VeritoneApp()`, you can begin using widgets.\n\nA \"widget\" is a self-contained frontend component. Widgets always render into an empty element which you provide. They are self-contained and handle rendering a UI, responding to user interactions, making api calls, and so on.\n\nFor example, the `AppBar` widget renders the Veritone application toolbar, fetches the required data to render the Veritone app switcher and profile menu, and allows the developer to configure their application logo and title. When the user uses the app switcher or uses the profile menu to log out, the AppBar widget handles those events.  \n\nWidgets typically can be configured with a variety of options, but always require at least `elId`. This is the id (string) of an element in your document, often a `div`, into which the widget will be rendered. By applying styling to that div, you can position the widget around your app. The element specified in elId must exist in the document before you create the widget that will use it.\n\n#### Example: Using the OAuthLoginButton widget\nThe first widget you are likely to include is `OAuthLoginButton`. `OAuthLoginButton` renders a \"log in with Veritone\" button that your users can click to start the OAuth authentication flow. At the end of that flow, your VeritoneApp instance will be authenticated and able to make requests to our API. You can also retrieve the oauth token to use in your own app.\n\n_Note_: Unless you are handling the OAuth flow on your own and providing the token to VeritoneApp manually, the `OAuthLoginButton` widget is required for Veritone widgets to work.\n\nThe actual code you write to use widgets will vary based on your framework of choice, but in general, it should be as follows.\n\n```javascript\n// assuming VeritoneApp has already been initialized as described earlier, and given a document like:\n<body>\n  ...\n  <div id=\"login-button-widget\" />\n</body>\n\n// you can render the login button to the document like this:\nimport { OAuthLoginButtonWidget } from 'veritone-widgets'\nconst oauthButton = new OAuthLoginButtonWidget({\n  // the ID of an existing element in your document where the button will appear\n  elId: 'login-button-widget',\n  // the ID of your Veritone application (found in Developer App)\n  clientId: 'my-client-id',\n  // the route in your app that will handle OAuth responses (more details below)\n  redirectUri: 'https://my-app.com/handle_oauth_callback',\n  // optional callbacks to retrieve the OAuth token for using outside of VeritoneApp:\n  onAuthSuccess: ({ OAuthToken }) => console.log(OAuthToken),\n  onAuthFailure: (error) => console.log(error)\n});\n```\n\nWhen `new OAuthLoginButtonWidget({ ... })` runs, the widget will appear on your page.\n\n#### Example: Using the AppBar widget\nAll Veritone apps should also include the AppBar widget.\n\n```javascript\n<body>\n  <div id=\"appBar-widget\" />\n  ...\n</body>\n\nimport { AppBarWidget } from 'veritone-widgets'\nconst appBar = new AppBarWidget({\n  elId: 'appBar-widget',\n  title: 'My App',\n  backgroundColor: '#4caf50',\n  profileMenu: true,\n  appSwitcher: true\n});\n```\n\n## Use via script tag\nFor environments that do not support javascript module imports, widgets can also be included in an app via script tags.\n\n```\n<body>\n  <div id=\"appBar-widget\"></div>\n\n  <script src=\"https://unpkg.com/veritone-widgets@^5/dist/umd/VeritoneApp.js\"></script>\n  <script src=\"https://unpkg.com/veritone-widgets@^5/dist/umd/AppBar.js\"></script>\n\n  <script>\n    const app = VeritoneApp.default();\n\n    const appBar = new AppBar.AppBarWidget({\n      elId: 'appBar-widget',\n      title: 'AppBar Widget',\n      profileMenu: true,\n      appSwitcher: true\n    });\n  </script>\n</body>\n```\n\nAs you can see, each widget is bundled individually to keep file sizes small. In addition, VeritoneApp is separately bundled and required to use widgets. Scripts can be accessed from the the [unpkg](https://unpkg.com/) cdn or downloaded and hosted on your own infrastructure. Unpkg supports [semver ranges](https://docs.npmjs.com/misc/semver), or a specific version can be specified exactly. \n\n\n## Configuring widgets\nNote that the OAuthLoginButton widget in the example above is being configured with five properties: elId, clientId, OAuthURI, onAuthSuccess and onAuthFailure. As mentioned earlier, an elId is required for every widget. OAuthURI, clientId, onAuthSuccess and onAuthFailure are specific configurable properties on the OAuthLoginButton. As it is in the example, configuration is always provided to the widget constructor.\n\n## Widget instance methods\nSome widgets have methods which can be called on an instance of that widget. For example, the FilePicker widget has the methods `pick()` and `cancel()` to open and close the picker dialog, respectively.\n\n```javascript\nthis._picker = new FilePickerWidget({\n  elId: 'file-picker-widget',\n  accept: ['image/*'],\n  multiple: true\n});\n\n...\n// call the pick() instance method on the widget\nthis._picker.pick(files => console.log(files))\n```\n\n#### Where to look for widget options\nIn practice, a widget is just a wrapper around a React component. The easiest way to determine all the possible options for a given widget is to look at the PropTypes of its component. Remember to watch for console warnings which will indicate when an option was configured incorrectly, or when a required option was not provided. \n\n* The \"storybook\" dev environments in veritone-widgets and veritone-react-common have live examples of the various widgets and components.\n\n* The `story.js` file in the root of each widget folder in veritone-widgets and in the root of each component folder in veritone-react-common show the code used to create the storybook pages. If you are using React to write your application, these can be used directly as a basis for your own implementation. \n\n* The PropTypes in the source files of the various widgets (in veritone-widgets) and their respective components (in veritone-react-common) generally correspond to configurable options. Likewise, instance methods for a widget will be defined on its widget class in veritone-widgets.\n\n### Destroying widgets\nTo remove a widget, call `destroy()` on the instance\n```javascript\nconst oauthButton = new OAuthLoginButtonWidget({ ... });\n...\noauthButton.destroy();\n```\n\n## Available widgets\nThe current widgets are:\n\n**AppBar**\n\nThe title and navigation bar common between all Veritone applications. Includes a logo, title, the Veritone app switcher and profile menu.\n\n*Options:*\n\n* title: string, a title to show in the center of the AppBar\n* logoSrc: string, a URL or image (like an SVG) to use as the logo on the left-hand side of the AppBar.\n* backgroundColor: string, a color (in hex) to use for the AppBar background\n* profileMenu: bool, whether or not to show the profile menu\n* appSwitcher: bool, whether or not to show the app switcher menu\n* logo: bool, whether or not to show the veritone logo on the left side of the AppBar\n* onLogout: func, called when the user clicks \"logout\". Apps must implement their own logout logic (usually by deleting the stored oauth token and redirecting or refreshing the page appropriately)\n\n**OAuthLoginButton**\nThe \"Log in with Veritone\" button and corresponding frontend logic to handle the OAuth2 authentication flow.\n\n*Options:*\n* mode: \"implicit\" (default) or \"authCode\", the OAuth grant type you wish to use. \n* OAuthURI: string (required if using `authCode` mode), the URL of your app server's OAuth callback endpoint.\n* redirectUri: string (required if using `implicit` mode), the URL of your app frontend's OAuth callback endpoint.\n* clientID: string (required if using implicit mode), the ID of your Veritone application (found in Developer App)\n* onAuthSuccess: function, a callback that will be called with the OAuth token when the OAuth flow is completed successfully.\n* onAuthFailure: function, a callback that will be called with the error when the OAuth flow fails.\n\n*Requirements*\n\nVeritone provides two OAuth modes to suit different app requirements:\n\n`Implicit`, the default mode, is a frontend-only grant flow with no serverside requirement. _Most apps will use this mode._ This flow is much easier for apps to implement but has the downside of not returning a refresh token; users will need to log in again each time their token expires. \n\n`Auth Code` is a server-based grant flow, which uses your Veritone app's OAuth secret to retrieve both an auth token and refresh token. Auth code flow requires a server because the OAuth secret cannot be exposed to the client; the veritone-widets-server package is an example implementation, and more information can be found in its readme.\n\n**FilePicker**\n\nThe Veritone file upload dialog. Handles selecting and uploading files to S3 for use on the Veritone platform.\n\n*Options:*\n\n* accept: oneOfType([arrayOf(string), string]), file extension(s) or mimetype(s) which the file picker will accept\n* multiple: bool, whether the picker will accept multiple files to upload in a batch\n* width: number, the width of the filepicker dialog\n* height: number, the height of the filepicker dialog\n* allowUrlUpload: bool, whether the filepicker will allow files to be selected by URL\n\n*Instance methods*\n\n* pick(callback): open the filepicker dialog.\n  * callback signature is (result, { warning, error, cancelled })\n    * result: array of result objects, one for each file uploaded\n      * key: string, the filename as stored on the server (may include a UUID)\n      * fileName: string, the original filename\n      * size: number, the file size in bytes\n      * type: string, the mime type of the file\n      * error: string or `false`, the error that prevented the file from uploading, if any\n      * bucket: string, the S3 bucket to which the file was uploaded\n      * expiresInSeconds: number, the length of time the credentials in `getUrl` will be valid, in seconds.\n      * getUrl: string or `null`, the resulting S3 URL, if successful. Includes credentials that are valid for `expires` seconds. \n      * unsignedUrl: string or `null`, the resulting S3 URL, if successful. Does not include credentials and will need to be signed to be used.\n    * warning: string or `false`, a warning message if some (but not all) files failed to upload. A warning indicates that `result` contains some successful upload result objects, and some that were not successful (unsuccessful objects will have `error` populated with an error message, as noted above)\n    * error: string or `false`, an error message, if all files failed to upload.\n    * cancelled: bool, whether or not the filepicker interaction was cancelled (by the user, or by calling cancel()).\n\n* cancel(): close the filepicker dialog. The callback provided to pick() will be called with `(null, { cancelled: true })`.\n\n**Table**\n\nA Veritone table to display data.\n\n*Options:*\n\n* data: arrayOf(object) (required), the dataset\n* columns: arrayOf(shape) (required), a set of defintions for each column to be displayed\n  * shape: object with the following keys:\n    * dataKey: string (required), the data attribute to display within column \n    * header: string, the column heading\n    * transform: function, specifies how column data should be displayed\n      * signature: `(cellValue) => {}`\n    * menu: bool, identifies a column as a menu column\n    * onSelectItem: function, when `menu` is `true`, specifies action(s) to take when a menu option is clicked\n      * signature: `(menuAction) => {}`\n    * cursorPointer: bool, show cursor pointer over table cells\n    * align: string, specifies columm alignment: `['left', 'right', 'center']`\n    * width: number, specifies the width of a column\n* paginate: bool, specifies whether table data should be paginated\n* initialItemsPerPage: number, the number of items to display per page in a paginated table,\n* onCellClick: function, specifies action to take when a table cell is clicked\n  * signature: `(cellRow, cellColumn, cellData) => {}`\n* focusedRow: number, identifies a row to display additional content for\n* renderFocusedRowDetails: function, specifies additional content to display for `focusedRow`\n  * signature: `(focusedRowData) => (string | react component)`\n* onShowCellRange: function, fires when table page or rows (on page) changes;\n  * signature: `({ start: firstRowIndex, end: lastRowIndex }) => {}`\n* onRefreshPageData: function, specifies how to refresh data (if needed)\n  * signature: `() => {}`\n* emptyMessage: string, text to display when table has no data\n\n**EngineOutputExport**\n\nThe Veritone export engine outputs full screen dialog. This will fetch the engines ran on a tdo/recording and allow the user to configure what file types are included in the export\n\n*Options:*\n\n* tdos: arrayOf(shape), array of tdo data objects that engine outputs will be exported for\n  * shape: object with the following keys:\n    * tdoId: string (required), the unique id of a tdo you want to export engine outputs for\n    * mentionId: string, the unique id of a mention you want to export engine outputs for. If a mentionId is provided the engine results of the mention will be returned rather than those of the tdo\n    * startOffsetMs: number, an integer representing the number of milliseconds from the start of the tdo where the exported engine outputs will begin\n    * stopOffsetMs: number, an integer representing the number of milliseconds from the start of the tdo where the exported engine outputs will end\n* onExport: func, specifies action to take when export button is clicked\n  * signature: `(response) => {}`\n* onCancel: func, specifies action to take when cancel button is clicked\n  * signature: `() => {}`\n\n*Instance methods*\n\n* open(): opens the export engine output dialog.\n\n## Running the development environment (storybook)\n1. Set up your local clone of veritone-sdk, following the instructions in the [main readme](https://github.com/veritone/veritone-sdk#development)\n2. cd to this package\n3. In `config.dev.json`, fill in the missing fields with your own app's information (see our [application quick-start guide](http://docs.veritone.com/#/applications/quick-start/) for more info on how to create an app). **Your app's `URL` and `redirect URL` should be set to the same value** for the purposes of dev in this package. This default allows the environment to run with minimal config. \n4. run `yarn start`.\n5. When the build finishes, access the storybook at the url provided in your terminal.\n\n## License\nCopyright 2019, Veritone Inc.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n","scripts":{"lint":"yarn run lint:js && yarn run lint:styles","test":"jest","build":"yarn run build:es && yarn run build:cjs && yarn run build:script-tag","start":"yarn run start:widget-server; yarn run start:storybook","format":"prettier --write \"./src/**/*.{js,scss}\"","lint:js":"eslint src/** --ext .js --max-warnings 0","build:es":"cross-env NODE_ENV=production BABEL_ENV=production-es rollup -c rollup.config.es.js","prebuild":"yarn run clean:build","build:cjs":"cross-env NODE_ENV=production BABEL_ENV=production-cjs rollup -c rollup.config.cjs.js","test:watch":"jest --watch","build:watch":"cross-env NODE_ENV=production rollup -c --watch","clean:build":"rimraf dist","lint:styles":"stylelint \"src/**/*.{scss, css}\"","prepublishOnly":"yarn run test && yarn run lint && yarn run build","build:storybook":"NODE_ENV=production build-storybook -c .storybook -o docs-static","start:storybook":"NODE_ENV=test start-storybook -p 3000 -c .storybook","build:script-tag":"cross-env NODE_ENV=production BABEL_ENV=production-cjs webpack --config webpack.config.script-tag.js","start:widget-server":"yarn workspace veritone-widgets-server run start &"},"_npmUser":{"name":"linh.le","email":"linh.le@setacinq.vn"},"_npmVersion":"6.4.1","description":"As of v5.0.0, this package exports both React \"smart components\" and framework agnostic \"widgets\" for most components. When both are available, the smart component is the default export and the widget is a named export. For example, `import FilePicker, { ","directories":{},"jsnext:main":"dist/bundle-es.js","_nodeVersion":"8.15.1","dependencies":{"rxjs":"^6.5.3","react":"^16.9.0","redux":"^4.0.4","deepmerge":"^4.2.2","react-dom":"^16.9.0","recompose":"^0.30.0","redux-saga":"^1.1.3","react-redux":"^7.1.3","redux-thunk":"^2.3.0","video-react":"~0.13.3","shaka-player":"^2.4.1","babel-runtime":"^6.26.0","babel-polyfill":"^6.26.0","@material-ui/lab":"^4.0.0-alpha.37","react-redux-saga":"^1.0.2","@material-ui/core":"^4.8.1","react-virtualized":"^9.18.5","@material-ui/icons":"^4.5.1","@material-ui/styles":"^4.7.1","immutability-helper":"^3.0.0","@material-ui/pickers":"^3.2.8","redux-dynamic-modules":"^5.2.0","veritone-react-common":"^9.0.1","veritone-redux-common":"^3.11.4","veritone-oauth-helpers":"^2.1.0","redux-api-middleware-fixed":"^2.0.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"raf":"^3.4.0","jest":"^22.4.3","faker":"^4.1.0","enzyme":"^3.5.0","eslint":"^4.8.0","rimraf":"^2.6.2","rollup":"^1.17.0","webpack":"^4.0.1","cross-env":"^5.1.1","node-sass":"^4.7.2","stylelint":"^8.2.0","babel-core":"^6.26.0","url-loader":"^0.6.2","sass-loader":"^6.0.6","webpack-cli":"^2.0.9","babel-loader":"^7.1.3","redux-logger":"^3.0.6","redux-devtools":"^3.5.0","@storybook/react":"v3.3.9","redux-mock-store":"^1.5.4","veritone-dev-env":"^3.0.0","rollup-plugin-url":"^2.2.2","identity-obj-proxy":"^3.0.0","redux-validate-fsa":"^0.1.2","rollup-plugin-json":"^4.0.0","babel-plugin-lodash":"^3.3.2","eslint-plugin-react":"^7.8.2","react-test-renderer":"^16.0.0","rollup-plugin-alias":"^1.5.2","rollup-plugin-babel":"^3.0.7","eslint-plugin-import":"^2.10.0","eslint-plugin-lodash":"^2.4.5","babel-plugin-date-fns":"^0.2.1","eslint-plugin-promise":"^3.5.0","rollup-plugin-postcss":"^2.0.3","rollup-plugin-replace":"^2.2.0","@storybook/addon-knobs":"3.3.9","eslint-config-prettier":"^2.6.0","rollup-analyzer-plugin":"^1.2.0","rollup-plugin-commonjs":"^10.0.1","enzyme-adapter-react-16":"^1.0.0","stylelint-config-prettier":"^4.0.0","stylelint-config-standard":"^17.0.0","rollup-plugin-node-resolve":"^5.2.0","babel-plugin-external-helpers":"^6.22.0","babel-plugin-transform-runtime":"^6.23.0","redux-immutable-state-invariant":"^2.1.0","babel-plugin-add-react-displayname":"^0.0.5","babel-plugin-transform-class-properties":"^6.24.1","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-plugin-transform-export-extensions":"^6.22.0","babel-plugin-transform-object-rest-spread":"^6.26.0"},"_npmOperationalInternal":{"tmp":"tmp/veritone-widgets_8.0.6-beta.2_1580801445604_0.04142749457557238","host":"s3://npm-registry-packages"}},"8.0.6-beta.3":{"name":"veritone-widgets","version":"8.0.6-beta.3","license":"Apache-2.0","_id":"veritone-widgets@8.0.6-beta.3","maintainers":[{"name":"aaronadaniel","email":"aaron.kalel@gmail.com"},{"name":"albertcbrown","email":"al@veritone.com"},{"name":"christopher-gustavsson","email":"chrisgustavsson1@gmail.com"},{"name":"coolmitch","email":"robb.mitch@gmail.com"},{"name":"kkaiser","email":"kkaiser@veritone.com"},{"name":"linh.le","email":"linh.le@setacinq.vn"},{"name":"mikomonday","email":"miko.monday@gmail.com"},{"name":"mmtbkn","email":"mohamedirvine@gmail.com"},{"name":"seta-tuha","email":"tu.ha@setacinq.vn"},{"name":"truong_veritone","email":"ktruong@veritone.com"},{"name":"veritone_dev","email":"dev@veritone.com"},{"name":"veritone-jordan","email":"jbelford@veritone.com"}],"dist":{"shasum":"b9bfebbe7c451c4375fa11510b4cb9995ca7fd3b","tarball":"https://registry.npmjs.org/veritone-widgets/-/veritone-widgets-8.0.6-beta.3.tgz","fileCount":185,"integrity":"sha512-9VH/NtVn9IE4OZgLZP9q5ovC9XXHDeKDIpKt37ypD4PrAy1KcAtf5pJj7QJv0X8WfIx5Qgak43UWr9tPpJ4T3Q==","signatures":[{"sig":"MEUCIQDpjONIWRPM/eQ/AKExmQ6bqgwIVEHcoHGBY7Le0K2/XAIgEQC/76TPV28pV2VHIToc5LQgK6AXtzSm+rxsNVUzZss=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":29969636,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeVmDuCRA9TVsSAnZWagAAD/oP/AjFp93TU4klzFtl9gGr\n9bdEolIivgJxVsyLJbU4vmv4Bd5DX+jXDgCaEC7Gu5hIfXpbmz+arYnDiy15\nNLTNh828MKPSP6a7RCvuxQBhOo/t6l09lgumyybwZwyxykjSsKmhvMsigfgK\nNTvdhprUHYSyy0d0FYRodAHf0rxWiTSdldP6kD3BpC4PO3aH9BVNrYd+u9PT\nYHHh0OEuWd+kTs2fj9ITsQHy8XIVGSVvV9Aw+IZFgkMrC3bLZl+PG1jZNDdQ\nE0elmrde98TYXjrwf2wTrCe3lQxHQO4vLCzBFJTMUM45skcKL4SSx8D43unm\nGxb/YZLiAaTM70KRLLvU3yhGLfBp+Szxo7uTzTzhpi9dtqjIPWbg4p3KmcA1\nYdvRAsZmG3pOERx6hGWo0T0+JJr6Sp5A8D1DT5hWNqvX6dzZjo5IA3r3V1e/\nfZyj/Ih6X3eMSZzlz3biWRzj7e2HIleDGzNOA3ts5l/gkUS92+9XH9VgxVC3\n17do4lESEBuLxvsDJLwJ3zY19ySp+HkU3ePk5BPHyHpuumwoHqYi3I+RjYDj\n5OLfP0fu+zsF4NXt+as7Ob05AUcS6eC9R4OFmItnM01d8ujm+EtctF5oxYl2\nZK3jU6XMLE9VQfbq0vWoCLHKWwHkDkkedCSdYtxleDj0hkTKmraAkaxxFJZj\nykWm\r\n=xmuF\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"setupFiles":["<rootDir>/test/testSuitePolyfills.js","<rootDir>/test/configureEnzyme.js"],"moduleNameMapper":{"^dnd-core$":"dnd-core/dist/cjs","^react-dnd$":"react-dnd/dist/cjs","\\.(css|scss)$":"identity-obj-proxy","^react-dnd-test-utils$":"react-dnd-test-utils/dist/cjs","^react-dnd-test-backend$":"react-dnd-test-backend/dist/cjs","^react-dnd-html5-backend$":"react-dnd-html5-backend/dist/cjs","^react-dnd-touch-backend$":"react-dnd-touch-backend/dist/cjs","\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$":"<rootDir>/test/__mocks__/fileMock.js"},"moduleDirectories":["node_modules","../../node_modules"],"moduleFileExtensions":["js","jsx"]},"main":"dist/bundle-cjs.js","module":"dist/bundle-es.js","readme":"## Quick Start\nAs of v5.0.0, this package exports both React \"smart components\" and framework agnostic \"widgets\" for most components. When both are available, the smart component is the default export and the widget is a named export. For example, `import FilePicker, { FilePickerWidget } from 'veritone-widgets'` imports the smart component as FilePicker and the widget as FilePickerWidget. Smart components usually require redux reducers and sagas to be imported as well, see [Using Smart Components](#using-smart-components)\n\n### Widgets (framework agnostic)\n```javascript\nimport { VeritoneApp, OAuthLoginButtonWidget, AppBarWidget } from 'veritone-widgets'\nconst app = VeritoneApp();\n\n// a \"log in with veritone\" button\nconst oauthButton = new OAuthLoginButtonWidget({\n  // the ID of an existing element in your document where the button will appear\n  elId: 'login-button-widget',\n  // the ID of your Veritone application (found in Developer App)\n  clientId: 'my-client-id',\n  // the route in your app that will handle OAuth responses (more details below)\n  redirectUri: 'https://my-app.com/handle_oauth_callback',\n  // optional callbacks to retrieve the OAuth token for using outside of VeritoneApp:\n  onAuthSuccess: ({ OAuthToken }) => console.log(OAuthToken),\n  onAuthFailure: (error) => console.log(error)\n});\n\n// the Veritone app bar, which will receive auth after the user completes\n// the oauth flow using the OAuthLoginButton\nconst appBar = new AppBarWidget({\n  elId: 'appBar-widget',\n  title: 'My App',\n  backgroundColor: '#4caf50',\n  profileMenu: true,\n  appSwitcher: true\n});\n```\n### React Components\n```javascript\nimport { OAuthLoginButton } from 'veritone-widgets'\n\nrender(\n  <OAuthLoginButton\n    clientId=\"my-client-id\"\n    redirectUri=\"https://my-app.com/handle_oauth_callback\"\n  />\n)\n```\n\n## Using Smart Components\nBecause smart components are not rendered within the VeritoneApp widget framework, they require the user's app to have its own redux store with the components' reducers installed. Often, [sagas](https://redux-saga.js.org/) are also included and must be started as part of the app's root saga.\n\n### Smart component reducer/saga requirements\n#### FilePicker\n* reducer:\n`import {filePickerReducer} from 'veritone-widgets'`\n\n* saga:\n`import {filePickerSaga} from 'veritone-widgets'`\n\n#### Notifications\n* reducer:\n`import {notificationsReducer} from 'veritone-widgets'`\n\n#### EngineOutputExport\n* reducer:\n`import {engineOutputExportReducer} from 'veritone-widgets'`\n\n#### OAuthLoginButton\n* reducers:\nveritone-redux-common `User`, `Auth` and `Config` reducers\n\n### Smart component theme wrapper requirements\nIn your app, import the `VeritoneSDKThemeProvider` from `veritone-react-common`:\n```\nimport {VeritoneSDKThemeProvider } from 'veritone-react-common'\n```\nthen wrap your root component with `<VeritoneSDKThemeProvider>`. If this is not possible, the `@withVeritoneSDKThemeProvider` decorator is provided to wrap individual components.\n\nComponents can be customized using [material-ui themes](https://material-ui.com/customization/themes/) by passing a theme into the `theme` prop of the provider. Passed-in themes will be merged with the default Veritone theme.\n\n## Using Widgets\n### 1. Create an instance of VeritoneApp\n`VeritoneApp` is a container for all the widgets and widget data in an app. Before using any widgets, you need to import and call it. Typically this will be done when your application is loaded and initialized.\n\n```javascript\nimport { VeritoneApp } from 'veritone-widgets'\nconst app = VeritoneApp();\n```\n\n_Note_: `VeritoneApp` creates a singleton, so you do not need to manage the constructed app instance yourself. As long as VeritoneApp() has been imported and called at least once, you can retrieve the same instance by importing and calling VeritoneApp() again elsewhere in your app, if needed.\n\n### 2. Authenticate with Veritone via OAuth\nIf you already have an OAuth token (because your app handles the client-side OAuth flow on its own), provide it by calling `login()` on the returned app instance.\n\n```javascript\nimport { VeritoneApp } from 'veritone-widgets'\nconst app = VeritoneApp().login({\n  OAuthToken: 'my-token-here'\n});\n```\n \nCalling `login()` is usually not necessary; we provide an `OAuthLoginButton` widget, which handles the OAuth token exchange automatically. See the instructions in the next section for more information.\n\n\n### 3. Add widgets to your app\nAfter you've initialized the app framework by calling `VeritoneApp()`, you can begin using widgets.\n\nA \"widget\" is a self-contained frontend component. Widgets always render into an empty element which you provide. They are self-contained and handle rendering a UI, responding to user interactions, making api calls, and so on.\n\nFor example, the `AppBar` widget renders the Veritone application toolbar, fetches the required data to render the Veritone app switcher and profile menu, and allows the developer to configure their application logo and title. When the user uses the app switcher or uses the profile menu to log out, the AppBar widget handles those events.  \n\nWidgets typically can be configured with a variety of options, but always require at least `elId`. This is the id (string) of an element in your document, often a `div`, into which the widget will be rendered. By applying styling to that div, you can position the widget around your app. The element specified in elId must exist in the document before you create the widget that will use it.\n\n#### Example: Using the OAuthLoginButton widget\nThe first widget you are likely to include is `OAuthLoginButton`. `OAuthLoginButton` renders a \"log in with Veritone\" button that your users can click to start the OAuth authentication flow. At the end of that flow, your VeritoneApp instance will be authenticated and able to make requests to our API. You can also retrieve the oauth token to use in your own app.\n\n_Note_: Unless you are handling the OAuth flow on your own and providing the token to VeritoneApp manually, the `OAuthLoginButton` widget is required for Veritone widgets to work.\n\nThe actual code you write to use widgets will vary based on your framework of choice, but in general, it should be as follows.\n\n```javascript\n// assuming VeritoneApp has already been initialized as described earlier, and given a document like:\n<body>\n  ...\n  <div id=\"login-button-widget\" />\n</body>\n\n// you can render the login button to the document like this:\nimport { OAuthLoginButtonWidget } from 'veritone-widgets'\nconst oauthButton = new OAuthLoginButtonWidget({\n  // the ID of an existing element in your document where the button will appear\n  elId: 'login-button-widget',\n  // the ID of your Veritone application (found in Developer App)\n  clientId: 'my-client-id',\n  // the route in your app that will handle OAuth responses (more details below)\n  redirectUri: 'https://my-app.com/handle_oauth_callback',\n  // optional callbacks to retrieve the OAuth token for using outside of VeritoneApp:\n  onAuthSuccess: ({ OAuthToken }) => console.log(OAuthToken),\n  onAuthFailure: (error) => console.log(error)\n});\n```\n\nWhen `new OAuthLoginButtonWidget({ ... })` runs, the widget will appear on your page.\n\n#### Example: Using the AppBar widget\nAll Veritone apps should also include the AppBar widget.\n\n```javascript\n<body>\n  <div id=\"appBar-widget\" />\n  ...\n</body>\n\nimport { AppBarWidget } from 'veritone-widgets'\nconst appBar = new AppBarWidget({\n  elId: 'appBar-widget',\n  title: 'My App',\n  backgroundColor: '#4caf50',\n  profileMenu: true,\n  appSwitcher: true\n});\n```\n\n## Use via script tag\nFor environments that do not support javascript module imports, widgets can also be included in an app via script tags.\n\n```\n<body>\n  <div id=\"appBar-widget\"></div>\n\n  <script src=\"https://unpkg.com/veritone-widgets@^5/dist/umd/VeritoneApp.js\"></script>\n  <script src=\"https://unpkg.com/veritone-widgets@^5/dist/umd/AppBar.js\"></script>\n\n  <script>\n    const app = VeritoneApp.default();\n\n    const appBar = new AppBar.AppBarWidget({\n      elId: 'appBar-widget',\n      title: 'AppBar Widget',\n      profileMenu: true,\n      appSwitcher: true\n    });\n  </script>\n</body>\n```\n\nAs you can see, each widget is bundled individually to keep file sizes small. In addition, VeritoneApp is separately bundled and required to use widgets. Scripts can be accessed from the the [unpkg](https://unpkg.com/) cdn or downloaded and hosted on your own infrastructure. Unpkg supports [semver ranges](https://docs.npmjs.com/misc/semver), or a specific version can be specified exactly. \n\n\n## Configuring widgets\nNote that the OAuthLoginButton widget in the example above is being configured with five properties: elId, clientId, OAuthURI, onAuthSuccess and onAuthFailure. As mentioned earlier, an elId is required for every widget. OAuthURI, clientId, onAuthSuccess and onAuthFailure are specific configurable properties on the OAuthLoginButton. As it is in the example, configuration is always provided to the widget constructor.\n\n## Widget instance methods\nSome widgets have methods which can be called on an instance of that widget. For example, the FilePicker widget has the methods `pick()` and `cancel()` to open and close the picker dialog, respectively.\n\n```javascript\nthis._picker = new FilePickerWidget({\n  elId: 'file-picker-widget',\n  accept: ['image/*'],\n  multiple: true\n});\n\n...\n// call the pick() instance method on the widget\nthis._picker.pick(files => console.log(files))\n```\n\n#### Where to look for widget options\nIn practice, a widget is just a wrapper around a React component. The easiest way to determine all the possible options for a given widget is to look at the PropTypes of its component. Remember to watch for console warnings which will indicate when an option was configured incorrectly, or when a required option was not provided. \n\n* The \"storybook\" dev environments in veritone-widgets and veritone-react-common have live examples of the various widgets and components.\n\n* The `story.js` file in the root of each widget folder in veritone-widgets and in the root of each component folder in veritone-react-common show the code used to create the storybook pages. If you are using React to write your application, these can be used directly as a basis for your own implementation. \n\n* The PropTypes in the source files of the various widgets (in veritone-widgets) and their respective components (in veritone-react-common) generally correspond to configurable options. Likewise, instance methods for a widget will be defined on its widget class in veritone-widgets.\n\n### Destroying widgets\nTo remove a widget, call `destroy()` on the instance\n```javascript\nconst oauthButton = new OAuthLoginButtonWidget({ ... });\n...\noauthButton.destroy();\n```\n\n## Available widgets\nThe current widgets are:\n\n**AppBar**\n\nThe title and navigation bar common between all Veritone applications. Includes a logo, title, the Veritone app switcher and profile menu.\n\n*Options:*\n\n* title: string, a title to show in the center of the AppBar\n* logoSrc: string, a URL or image (like an SVG) to use as the logo on the left-hand side of the AppBar.\n* backgroundColor: string, a color (in hex) to use for the AppBar background\n* profileMenu: bool, whether or not to show the profile menu\n* appSwitcher: bool, whether or not to show the app switcher menu\n* logo: bool, whether or not to show the veritone logo on the left side of the AppBar\n* onLogout: func, called when the user clicks \"logout\". Apps must implement their own logout logic (usually by deleting the stored oauth token and redirecting or refreshing the page appropriately)\n\n**OAuthLoginButton**\nThe \"Log in with Veritone\" button and corresponding frontend logic to handle the OAuth2 authentication flow.\n\n*Options:*\n* mode: \"implicit\" (default) or \"authCode\", the OAuth grant type you wish to use. \n* OAuthURI: string (required if using `authCode` mode), the URL of your app server's OAuth callback endpoint.\n* redirectUri: string (required if using `implicit` mode), the URL of your app frontend's OAuth callback endpoint.\n* clientID: string (required if using implicit mode), the ID of your Veritone application (found in Developer App)\n* onAuthSuccess: function, a callback that will be called with the OAuth token when the OAuth flow is completed successfully.\n* onAuthFailure: function, a callback that will be called with the error when the OAuth flow fails.\n\n*Requirements*\n\nVeritone provides two OAuth modes to suit different app requirements:\n\n`Implicit`, the default mode, is a frontend-only grant flow with no serverside requirement. _Most apps will use this mode._ This flow is much easier for apps to implement but has the downside of not returning a refresh token; users will need to log in again each time their token expires. \n\n`Auth Code` is a server-based grant flow, which uses your Veritone app's OAuth secret to retrieve both an auth token and refresh token. Auth code flow requires a server because the OAuth secret cannot be exposed to the client; the veritone-widets-server package is an example implementation, and more information can be found in its readme.\n\n**FilePicker**\n\nThe Veritone file upload dialog. Handles selecting and uploading files to S3 for use on the Veritone platform.\n\n*Options:*\n\n* accept: oneOfType([arrayOf(string), string]), file extension(s) or mimetype(s) which the file picker will accept\n* multiple: bool, whether the picker will accept multiple files to upload in a batch\n* width: number, the width of the filepicker dialog\n* height: number, the height of the filepicker dialog\n* allowUrlUpload: bool, whether the filepicker will allow files to be selected by URL\n\n*Instance methods*\n\n* pick(callback): open the filepicker dialog.\n  * callback signature is (result, { warning, error, cancelled })\n    * result: array of result objects, one for each file uploaded\n      * key: string, the filename as stored on the server (may include a UUID)\n      * fileName: string, the original filename\n      * size: number, the file size in bytes\n      * type: string, the mime type of the file\n      * error: string or `false`, the error that prevented the file from uploading, if any\n      * bucket: string, the S3 bucket to which the file was uploaded\n      * expiresInSeconds: number, the length of time the credentials in `getUrl` will be valid, in seconds.\n      * getUrl: string or `null`, the resulting S3 URL, if successful. Includes credentials that are valid for `expires` seconds. \n      * unsignedUrl: string or `null`, the resulting S3 URL, if successful. Does not include credentials and will need to be signed to be used.\n    * warning: string or `false`, a warning message if some (but not all) files failed to upload. A warning indicates that `result` contains some successful upload result objects, and some that were not successful (unsuccessful objects will have `error` populated with an error message, as noted above)\n    * error: string or `false`, an error message, if all files failed to upload.\n    * cancelled: bool, whether or not the filepicker interaction was cancelled (by the user, or by calling cancel()).\n\n* cancel(): close the filepicker dialog. The callback provided to pick() will be called with `(null, { cancelled: true })`.\n\n**Table**\n\nA Veritone table to display data.\n\n*Options:*\n\n* data: arrayOf(object) (required), the dataset\n* columns: arrayOf(shape) (required), a set of defintions for each column to be displayed\n  * shape: object with the following keys:\n    * dataKey: string (required), the data attribute to display within column \n    * header: string, the column heading\n    * transform: function, specifies how column data should be displayed\n      * signature: `(cellValue) => {}`\n    * menu: bool, identifies a column as a menu column\n    * onSelectItem: function, when `menu` is `true`, specifies action(s) to take when a menu option is clicked\n      * signature: `(menuAction) => {}`\n    * cursorPointer: bool, show cursor pointer over table cells\n    * align: string, specifies columm alignment: `['left', 'right', 'center']`\n    * width: number, specifies the width of a column\n* paginate: bool, specifies whether table data should be paginated\n* initialItemsPerPage: number, the number of items to display per page in a paginated table,\n* onCellClick: function, specifies action to take when a table cell is clicked\n  * signature: `(cellRow, cellColumn, cellData) => {}`\n* focusedRow: number, identifies a row to display additional content for\n* renderFocusedRowDetails: function, specifies additional content to display for `focusedRow`\n  * signature: `(focusedRowData) => (string | react component)`\n* onShowCellRange: function, fires when table page or rows (on page) changes;\n  * signature: `({ start: firstRowIndex, end: lastRowIndex }) => {}`\n* onRefreshPageData: function, specifies how to refresh data (if needed)\n  * signature: `() => {}`\n* emptyMessage: string, text to display when table has no data\n\n**EngineOutputExport**\n\nThe Veritone export engine outputs full screen dialog. This will fetch the engines ran on a tdo/recording and allow the user to configure what file types are included in the export\n\n*Options:*\n\n* tdos: arrayOf(shape), array of tdo data objects that engine outputs will be exported for\n  * shape: object with the following keys:\n    * tdoId: string (required), the unique id of a tdo you want to export engine outputs for\n    * mentionId: string, the unique id of a mention you want to export engine outputs for. If a mentionId is provided the engine results of the mention will be returned rather than those of the tdo\n    * startOffsetMs: number, an integer representing the number of milliseconds from the start of the tdo where the exported engine outputs will begin\n    * stopOffsetMs: number, an integer representing the number of milliseconds from the start of the tdo where the exported engine outputs will end\n* onExport: func, specifies action to take when export button is clicked\n  * signature: `(response) => {}`\n* onCancel: func, specifies action to take when cancel button is clicked\n  * signature: `() => {}`\n\n*Instance methods*\n\n* open(): opens the export engine output dialog.\n\n## Running the development environment (storybook)\n1. Set up your local clone of veritone-sdk, following the instructions in the [main readme](https://github.com/veritone/veritone-sdk#development)\n2. cd to this package\n3. In `config.dev.json`, fill in the missing fields with your own app's information (see our [application quick-start guide](http://docs.veritone.com/#/applications/quick-start/) for more info on how to create an app). **Your app's `URL` and `redirect URL` should be set to the same value** for the purposes of dev in this package. This default allows the environment to run with minimal config. \n4. run `yarn start`.\n5. When the build finishes, access the storybook at the url provided in your terminal.\n\n## License\nCopyright 2019, Veritone Inc.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n","scripts":{"lint":"yarn run lint:js && yarn run lint:styles","test":"jest","build":"yarn run build:es && yarn run build:cjs && yarn run build:script-tag","start":"yarn run start:widget-server; yarn run start:storybook","format":"prettier --write \"./src/**/*.{js,scss}\"","lint:js":"eslint src/** --ext .js --max-warnings 0","build:es":"cross-env NODE_ENV=production BABEL_ENV=production-es rollup -c rollup.config.es.js","prebuild":"yarn run clean:build","build:cjs":"cross-env NODE_ENV=production BABEL_ENV=production-cjs rollup -c rollup.config.cjs.js","test:watch":"jest --watch","build:watch":"cross-env NODE_ENV=production rollup -c --watch","clean:build":"rimraf dist","lint:styles":"stylelint \"src/**/*.{scss, css}\"","prepublishOnly":"yarn run test && yarn run lint && yarn run build","build:storybook":"NODE_ENV=production build-storybook -c .storybook -o docs-static","start:storybook":"NODE_ENV=test start-storybook -p 3000 -c .storybook","build:script-tag":"cross-env NODE_ENV=production BABEL_ENV=production-cjs webpack --config webpack.config.script-tag.js","start:widget-server":"yarn workspace veritone-widgets-server run start &"},"_npmUser":{"name":"linh.le","email":"linh.le@setacinq.vn"},"_npmVersion":"6.4.1","description":"As of v5.0.0, this package exports both React \"smart components\" and framework agnostic \"widgets\" for most components. When both are available, the smart component is the default export and the widget is a named export. For example, `import FilePicker, { ","directories":{},"jsnext:main":"dist/bundle-es.js","_nodeVersion":"8.15.1","dependencies":{"rxjs":"^6.5.3","react":"^16.9.0","redux":"^4.0.4","deepmerge":"^4.2.2","react-dom":"^16.9.0","recompose":"^0.30.0","redux-saga":"^1.1.3","react-redux":"^7.1.3","redux-thunk":"^2.3.0","video-react":"~0.13.3","shaka-player":"^2.4.1","babel-runtime":"^6.26.0","babel-polyfill":"^6.26.0","@material-ui/lab":"^4.0.0-alpha.37","react-redux-saga":"^1.0.2","@material-ui/core":"^4.8.1","react-virtualized":"^9.18.5","@material-ui/icons":"^4.5.1","@material-ui/styles":"^4.7.1","immutability-helper":"^3.0.0","@material-ui/pickers":"^3.2.8","redux-dynamic-modules":"^5.2.0","veritone-react-common":"9.0.1-beta.2","veritone-redux-common":"^3.11.4","veritone-oauth-helpers":"^2.1.0","redux-api-middleware-fixed":"^2.0.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"raf":"^3.4.0","jest":"^22.4.3","faker":"^4.1.0","enzyme":"^3.5.0","eslint":"^4.8.0","rimraf":"^2.6.2","rollup":"^1.17.0","webpack":"^4.0.1","cross-env":"^5.1.1","node-sass":"^4.7.2","stylelint":"^8.2.0","babel-core":"^6.26.0","url-loader":"^0.6.2","sass-loader":"^6.0.6","webpack-cli":"^2.0.9","babel-loader":"^7.1.3","redux-logger":"^3.0.6","redux-devtools":"^3.5.0","@storybook/react":"v3.3.9","redux-mock-store":"^1.5.4","veritone-dev-env":"^3.0.0","rollup-plugin-url":"^2.2.2","identity-obj-proxy":"^3.0.0","redux-validate-fsa":"^0.1.2","rollup-plugin-json":"^4.0.0","babel-plugin-lodash":"^3.3.2","eslint-plugin-react":"^7.8.2","react-test-renderer":"^16.0.0","rollup-plugin-alias":"^1.5.2","rollup-plugin-babel":"^3.0.7","eslint-plugin-import":"^2.10.0","eslint-plugin-lodash":"^2.4.5","babel-plugin-date-fns":"^0.2.1","eslint-plugin-promise":"^3.5.0","rollup-plugin-postcss":"^2.0.3","rollup-plugin-replace":"^2.2.0","@storybook/addon-knobs":"3.3.9","eslint-config-prettier":"^2.6.0","rollup-analyzer-plugin":"^1.2.0","rollup-plugin-commonjs":"^10.0.1","enzyme-adapter-react-16":"^1.0.0","stylelint-config-prettier":"^4.0.0","stylelint-config-standard":"^17.0.0","rollup-plugin-node-resolve":"^5.2.0","babel-plugin-external-helpers":"^6.22.0","babel-plugin-transform-runtime":"^6.23.0","redux-immutable-state-invariant":"^2.1.0","babel-plugin-add-react-displayname":"^0.0.5","babel-plugin-transform-class-properties":"^6.24.1","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-plugin-transform-export-extensions":"^6.22.0","babel-plugin-transform-object-rest-spread":"^6.26.0"},"_npmOperationalInternal":{"tmp":"tmp/veritone-widgets_8.0.6-beta.3_1582719213862_0.7458790183573354","host":"s3://npm-registry-packages"}},"8.0.6-beta.4":{"name":"veritone-widgets","version":"8.0.6-beta.4","license":"Apache-2.0","_id":"veritone-widgets@8.0.6-beta.4","maintainers":[{"name":"aaronadaniel","email":"aaron.kalel@gmail.com"},{"name":"albertcbrown","email":"al@veritone.com"},{"name":"christopher-gustavsson","email":"chrisgustavsson1@gmail.com"},{"name":"coolmitch","email":"robb.mitch@gmail.com"},{"name":"kkaiser","email":"kkaiser@veritone.com"},{"name":"linh.le","email":"linh.le@setacinq.vn"},{"name":"mikomonday","email":"miko.monday@gmail.com"},{"name":"mmtbkn","email":"mohamedirvine@gmail.com"},{"name":"seta-tuha","email":"tu.ha@setacinq.vn"},{"name":"truong_veritone","email":"ktruong@veritone.com"},{"name":"veritone_dev","email":"dev@veritone.com"},{"name":"veritone-jordan","email":"jbelford@veritone.com"}],"dist":{"shasum":"98d7b0a76a58ddeaf72a0ba4b71e67756dfa11cf","tarball":"https://registry.npmjs.org/veritone-widgets/-/veritone-widgets-8.0.6-beta.4.tgz","fileCount":185,"integrity":"sha512-7nnlASQeNhx0/7v0yWeIrsZZdWB8XY54DUsNYPfv/3sv/ic3wYJzeeLkehYQGlHyzGkO6ZxxIml7GiFNvN4arg==","signatures":[{"sig":"MEQCID+DRI80tFS0lnk8aB+tr0N+C+LHBsiuSeGbDkcAbYqzAiB7qfNd1lPHgxAeQU/xSfs9O1GP0H1ZAsdOPD7sdBRm+Q==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":29812107,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeVmJWCRA9TVsSAnZWagAAp4MQAJN79cGWKOSQ1DSB6chk\negOipfo9O1FWhbnLtlyLb1lXbsc13SuNgJOB+hcbq0GBdC5IFEEOBW6KAkiE\nwaK6tSkcEGsLXUuXfyjvUAFSvOXcKYc2eH32bCWoUs3EgD1GQ3bu4CMs/Z6q\nIJ2dzfkcQfeJH4I1YWiqgHS1Bd//OhojIeqHo7oZYg6W6qn+Wotj3xF5G/fB\ncESIBuCyaolHqocAB4zk7/5jQBXPhtJZwVnjwS4iOr/Zomz0QM1UWG3YZ+4I\nUHy/2VyDHWt/pfAEuiBlEXPoSz8Ywxuq0TebA4B0fUjgfHJIeBjKm2LGOHAs\nk6W+v9sVv79oiGKWYTzFTtCfteDKA+Fzr95MeXpT9t1up7w3vPc8OoIgMH/L\nLi9qJwRofse4D4BSktsQ2QV/V/zfGNnvLxwC7RdQG3egh7MVshRnpo2m64s/\n/X4MOsBjpKzazq4MyM8Y42FF0YzrCxKyHkPjkZs4PIsICBZ08yYlYNPj50XY\n2cZHv1gAQJL6NNWywEkSymKKrL03y++dfjJYHsvccj2MexXNZuZhCgdC4lJ2\nGEJ/XwNFGN1Z1KkL0DIcfE3F4zYdbj9cH0YPAFNHg5TDlL3U8iFO0rUjHSOK\ng5sfHsYqXoQF4Tznk9LUFXpTbwMnHfuP51GkE3nL0a4XTzToHIEFr0ONH/Cq\npd6L\r\n=hdys\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"setupFiles":["<rootDir>/test/testSuitePolyfills.js","<rootDir>/test/configureEnzyme.js"],"moduleNameMapper":{"^dnd-core$":"dnd-core/dist/cjs","^react-dnd$":"react-dnd/dist/cjs","\\.(css|scss)$":"identity-obj-proxy","^react-dnd-test-utils$":"react-dnd-test-utils/dist/cjs","^react-dnd-test-backend$":"react-dnd-test-backend/dist/cjs","^react-dnd-html5-backend$":"react-dnd-html5-backend/dist/cjs","^react-dnd-touch-backend$":"react-dnd-touch-backend/dist/cjs","\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$":"<rootDir>/test/__mocks__/fileMock.js"},"moduleDirectories":["node_modules","../../node_modules"],"moduleFileExtensions":["js","jsx"]},"main":"dist/bundle-cjs.js","module":"dist/bundle-es.js","readme":"## Quick Start\nAs of v5.0.0, this package exports both React \"smart components\" and framework agnostic \"widgets\" for most components. When both are available, the smart component is the default export and the widget is a named export. For example, `import FilePicker, { FilePickerWidget } from 'veritone-widgets'` imports the smart component as FilePicker and the widget as FilePickerWidget. Smart components usually require redux reducers and sagas to be imported as well, see [Using Smart Components](#using-smart-components)\n\n### Widgets (framework agnostic)\n```javascript\nimport { VeritoneApp, OAuthLoginButtonWidget, AppBarWidget } from 'veritone-widgets'\nconst app = VeritoneApp();\n\n// a \"log in with veritone\" button\nconst oauthButton = new OAuthLoginButtonWidget({\n  // the ID of an existing element in your document where the button will appear\n  elId: 'login-button-widget',\n  // the ID of your Veritone application (found in Developer App)\n  clientId: 'my-client-id',\n  // the route in your app that will handle OAuth responses (more details below)\n  redirectUri: 'https://my-app.com/handle_oauth_callback',\n  // optional callbacks to retrieve the OAuth token for using outside of VeritoneApp:\n  onAuthSuccess: ({ OAuthToken }) => console.log(OAuthToken),\n  onAuthFailure: (error) => console.log(error)\n});\n\n// the Veritone app bar, which will receive auth after the user completes\n// the oauth flow using the OAuthLoginButton\nconst appBar = new AppBarWidget({\n  elId: 'appBar-widget',\n  title: 'My App',\n  backgroundColor: '#4caf50',\n  profileMenu: true,\n  appSwitcher: true\n});\n```\n### React Components\n```javascript\nimport { OAuthLoginButton } from 'veritone-widgets'\n\nrender(\n  <OAuthLoginButton\n    clientId=\"my-client-id\"\n    redirectUri=\"https://my-app.com/handle_oauth_callback\"\n  />\n)\n```\n\n## Using Smart Components\nBecause smart components are not rendered within the VeritoneApp widget framework, they require the user's app to have its own redux store with the components' reducers installed. Often, [sagas](https://redux-saga.js.org/) are also included and must be started as part of the app's root saga.\n\n### Smart component reducer/saga requirements\n#### FilePicker\n* reducer:\n`import {filePickerReducer} from 'veritone-widgets'`\n\n* saga:\n`import {filePickerSaga} from 'veritone-widgets'`\n\n#### Notifications\n* reducer:\n`import {notificationsReducer} from 'veritone-widgets'`\n\n#### EngineOutputExport\n* reducer:\n`import {engineOutputExportReducer} from 'veritone-widgets'`\n\n#### OAuthLoginButton\n* reducers:\nveritone-redux-common `User`, `Auth` and `Config` reducers\n\n### Smart component theme wrapper requirements\nIn your app, import the `VeritoneSDKThemeProvider` from `veritone-react-common`:\n```\nimport {VeritoneSDKThemeProvider } from 'veritone-react-common'\n```\nthen wrap your root component with `<VeritoneSDKThemeProvider>`. If this is not possible, the `@withVeritoneSDKThemeProvider` decorator is provided to wrap individual components.\n\nComponents can be customized using [material-ui themes](https://material-ui.com/customization/themes/) by passing a theme into the `theme` prop of the provider. Passed-in themes will be merged with the default Veritone theme.\n\n## Using Widgets\n### 1. Create an instance of VeritoneApp\n`VeritoneApp` is a container for all the widgets and widget data in an app. Before using any widgets, you need to import and call it. Typically this will be done when your application is loaded and initialized.\n\n```javascript\nimport { VeritoneApp } from 'veritone-widgets'\nconst app = VeritoneApp();\n```\n\n_Note_: `VeritoneApp` creates a singleton, so you do not need to manage the constructed app instance yourself. As long as VeritoneApp() has been imported and called at least once, you can retrieve the same instance by importing and calling VeritoneApp() again elsewhere in your app, if needed.\n\n### 2. Authenticate with Veritone via OAuth\nIf you already have an OAuth token (because your app handles the client-side OAuth flow on its own), provide it by calling `login()` on the returned app instance.\n\n```javascript\nimport { VeritoneApp } from 'veritone-widgets'\nconst app = VeritoneApp().login({\n  OAuthToken: 'my-token-here'\n});\n```\n \nCalling `login()` is usually not necessary; we provide an `OAuthLoginButton` widget, which handles the OAuth token exchange automatically. See the instructions in the next section for more information.\n\n\n### 3. Add widgets to your app\nAfter you've initialized the app framework by calling `VeritoneApp()`, you can begin using widgets.\n\nA \"widget\" is a self-contained frontend component. Widgets always render into an empty element which you provide. They are self-contained and handle rendering a UI, responding to user interactions, making api calls, and so on.\n\nFor example, the `AppBar` widget renders the Veritone application toolbar, fetches the required data to render the Veritone app switcher and profile menu, and allows the developer to configure their application logo and title. When the user uses the app switcher or uses the profile menu to log out, the AppBar widget handles those events.  \n\nWidgets typically can be configured with a variety of options, but always require at least `elId`. This is the id (string) of an element in your document, often a `div`, into which the widget will be rendered. By applying styling to that div, you can position the widget around your app. The element specified in elId must exist in the document before you create the widget that will use it.\n\n#### Example: Using the OAuthLoginButton widget\nThe first widget you are likely to include is `OAuthLoginButton`. `OAuthLoginButton` renders a \"log in with Veritone\" button that your users can click to start the OAuth authentication flow. At the end of that flow, your VeritoneApp instance will be authenticated and able to make requests to our API. You can also retrieve the oauth token to use in your own app.\n\n_Note_: Unless you are handling the OAuth flow on your own and providing the token to VeritoneApp manually, the `OAuthLoginButton` widget is required for Veritone widgets to work.\n\nThe actual code you write to use widgets will vary based on your framework of choice, but in general, it should be as follows.\n\n```javascript\n// assuming VeritoneApp has already been initialized as described earlier, and given a document like:\n<body>\n  ...\n  <div id=\"login-button-widget\" />\n</body>\n\n// you can render the login button to the document like this:\nimport { OAuthLoginButtonWidget } from 'veritone-widgets'\nconst oauthButton = new OAuthLoginButtonWidget({\n  // the ID of an existing element in your document where the button will appear\n  elId: 'login-button-widget',\n  // the ID of your Veritone application (found in Developer App)\n  clientId: 'my-client-id',\n  // the route in your app that will handle OAuth responses (more details below)\n  redirectUri: 'https://my-app.com/handle_oauth_callback',\n  // optional callbacks to retrieve the OAuth token for using outside of VeritoneApp:\n  onAuthSuccess: ({ OAuthToken }) => console.log(OAuthToken),\n  onAuthFailure: (error) => console.log(error)\n});\n```\n\nWhen `new OAuthLoginButtonWidget({ ... })` runs, the widget will appear on your page.\n\n#### Example: Using the AppBar widget\nAll Veritone apps should also include the AppBar widget.\n\n```javascript\n<body>\n  <div id=\"appBar-widget\" />\n  ...\n</body>\n\nimport { AppBarWidget } from 'veritone-widgets'\nconst appBar = new AppBarWidget({\n  elId: 'appBar-widget',\n  title: 'My App',\n  backgroundColor: '#4caf50',\n  profileMenu: true,\n  appSwitcher: true\n});\n```\n\n## Use via script tag\nFor environments that do not support javascript module imports, widgets can also be included in an app via script tags.\n\n```\n<body>\n  <div id=\"appBar-widget\"></div>\n\n  <script src=\"https://unpkg.com/veritone-widgets@^5/dist/umd/VeritoneApp.js\"></script>\n  <script src=\"https://unpkg.com/veritone-widgets@^5/dist/umd/AppBar.js\"></script>\n\n  <script>\n    const app = VeritoneApp.default();\n\n    const appBar = new AppBar.AppBarWidget({\n      elId: 'appBar-widget',\n      title: 'AppBar Widget',\n      profileMenu: true,\n      appSwitcher: true\n    });\n  </script>\n</body>\n```\n\nAs you can see, each widget is bundled individually to keep file sizes small. In addition, VeritoneApp is separately bundled and required to use widgets. Scripts can be accessed from the the [unpkg](https://unpkg.com/) cdn or downloaded and hosted on your own infrastructure. Unpkg supports [semver ranges](https://docs.npmjs.com/misc/semver), or a specific version can be specified exactly. \n\n\n## Configuring widgets\nNote that the OAuthLoginButton widget in the example above is being configured with five properties: elId, clientId, OAuthURI, onAuthSuccess and onAuthFailure. As mentioned earlier, an elId is required for every widget. OAuthURI, clientId, onAuthSuccess and onAuthFailure are specific configurable properties on the OAuthLoginButton. As it is in the example, configuration is always provided to the widget constructor.\n\n## Widget instance methods\nSome widgets have methods which can be called on an instance of that widget. For example, the FilePicker widget has the methods `pick()` and `cancel()` to open and close the picker dialog, respectively.\n\n```javascript\nthis._picker = new FilePickerWidget({\n  elId: 'file-picker-widget',\n  accept: ['image/*'],\n  multiple: true\n});\n\n...\n// call the pick() instance method on the widget\nthis._picker.pick(files => console.log(files))\n```\n\n#### Where to look for widget options\nIn practice, a widget is just a wrapper around a React component. The easiest way to determine all the possible options for a given widget is to look at the PropTypes of its component. Remember to watch for console warnings which will indicate when an option was configured incorrectly, or when a required option was not provided. \n\n* The \"storybook\" dev environments in veritone-widgets and veritone-react-common have live examples of the various widgets and components.\n\n* The `story.js` file in the root of each widget folder in veritone-widgets and in the root of each component folder in veritone-react-common show the code used to create the storybook pages. If you are using React to write your application, these can be used directly as a basis for your own implementation. \n\n* The PropTypes in the source files of the various widgets (in veritone-widgets) and their respective components (in veritone-react-common) generally correspond to configurable options. Likewise, instance methods for a widget will be defined on its widget class in veritone-widgets.\n\n### Destroying widgets\nTo remove a widget, call `destroy()` on the instance\n```javascript\nconst oauthButton = new OAuthLoginButtonWidget({ ... });\n...\noauthButton.destroy();\n```\n\n## Available widgets\nThe current widgets are:\n\n**AppBar**\n\nThe title and navigation bar common between all Veritone applications. Includes a logo, title, the Veritone app switcher and profile menu.\n\n*Options:*\n\n* title: string, a title to show in the center of the AppBar\n* logoSrc: string, a URL or image (like an SVG) to use as the logo on the left-hand side of the AppBar.\n* backgroundColor: string, a color (in hex) to use for the AppBar background\n* profileMenu: bool, whether or not to show the profile menu\n* appSwitcher: bool, whether or not to show the app switcher menu\n* logo: bool, whether or not to show the veritone logo on the left side of the AppBar\n* onLogout: func, called when the user clicks \"logout\". Apps must implement their own logout logic (usually by deleting the stored oauth token and redirecting or refreshing the page appropriately)\n\n**OAuthLoginButton**\nThe \"Log in with Veritone\" button and corresponding frontend logic to handle the OAuth2 authentication flow.\n\n*Options:*\n* mode: \"implicit\" (default) or \"authCode\", the OAuth grant type you wish to use. \n* OAuthURI: string (required if using `authCode` mode), the URL of your app server's OAuth callback endpoint.\n* redirectUri: string (required if using `implicit` mode), the URL of your app frontend's OAuth callback endpoint.\n* clientID: string (required if using implicit mode), the ID of your Veritone application (found in Developer App)\n* onAuthSuccess: function, a callback that will be called with the OAuth token when the OAuth flow is completed successfully.\n* onAuthFailure: function, a callback that will be called with the error when the OAuth flow fails.\n\n*Requirements*\n\nVeritone provides two OAuth modes to suit different app requirements:\n\n`Implicit`, the default mode, is a frontend-only grant flow with no serverside requirement. _Most apps will use this mode._ This flow is much easier for apps to implement but has the downside of not returning a refresh token; users will need to log in again each time their token expires. \n\n`Auth Code` is a server-based grant flow, which uses your Veritone app's OAuth secret to retrieve both an auth token and refresh token. Auth code flow requires a server because the OAuth secret cannot be exposed to the client; the veritone-widets-server package is an example implementation, and more information can be found in its readme.\n\n**FilePicker**\n\nThe Veritone file upload dialog. Handles selecting and uploading files to S3 for use on the Veritone platform.\n\n*Options:*\n\n* accept: oneOfType([arrayOf(string), string]), file extension(s) or mimetype(s) which the file picker will accept\n* multiple: bool, whether the picker will accept multiple files to upload in a batch\n* width: number, the width of the filepicker dialog\n* height: number, the height of the filepicker dialog\n* allowUrlUpload: bool, whether the filepicker will allow files to be selected by URL\n\n*Instance methods*\n\n* pick(callback): open the filepicker dialog.\n  * callback signature is (result, { warning, error, cancelled })\n    * result: array of result objects, one for each file uploaded\n      * key: string, the filename as stored on the server (may include a UUID)\n      * fileName: string, the original filename\n      * size: number, the file size in bytes\n      * type: string, the mime type of the file\n      * error: string or `false`, the error that prevented the file from uploading, if any\n      * bucket: string, the S3 bucket to which the file was uploaded\n      * expiresInSeconds: number, the length of time the credentials in `getUrl` will be valid, in seconds.\n      * getUrl: string or `null`, the resulting S3 URL, if successful. Includes credentials that are valid for `expires` seconds. \n      * unsignedUrl: string or `null`, the resulting S3 URL, if successful. Does not include credentials and will need to be signed to be used.\n    * warning: string or `false`, a warning message if some (but not all) files failed to upload. A warning indicates that `result` contains some successful upload result objects, and some that were not successful (unsuccessful objects will have `error` populated with an error message, as noted above)\n    * error: string or `false`, an error message, if all files failed to upload.\n    * cancelled: bool, whether or not the filepicker interaction was cancelled (by the user, or by calling cancel()).\n\n* cancel(): close the filepicker dialog. The callback provided to pick() will be called with `(null, { cancelled: true })`.\n\n**Table**\n\nA Veritone table to display data.\n\n*Options:*\n\n* data: arrayOf(object) (required), the dataset\n* columns: arrayOf(shape) (required), a set of defintions for each column to be displayed\n  * shape: object with the following keys:\n    * dataKey: string (required), the data attribute to display within column \n    * header: string, the column heading\n    * transform: function, specifies how column data should be displayed\n      * signature: `(cellValue) => {}`\n    * menu: bool, identifies a column as a menu column\n    * onSelectItem: function, when `menu` is `true`, specifies action(s) to take when a menu option is clicked\n      * signature: `(menuAction) => {}`\n    * cursorPointer: bool, show cursor pointer over table cells\n    * align: string, specifies columm alignment: `['left', 'right', 'center']`\n    * width: number, specifies the width of a column\n* paginate: bool, specifies whether table data should be paginated\n* initialItemsPerPage: number, the number of items to display per page in a paginated table,\n* onCellClick: function, specifies action to take when a table cell is clicked\n  * signature: `(cellRow, cellColumn, cellData) => {}`\n* focusedRow: number, identifies a row to display additional content for\n* renderFocusedRowDetails: function, specifies additional content to display for `focusedRow`\n  * signature: `(focusedRowData) => (string | react component)`\n* onShowCellRange: function, fires when table page or rows (on page) changes;\n  * signature: `({ start: firstRowIndex, end: lastRowIndex }) => {}`\n* onRefreshPageData: function, specifies how to refresh data (if needed)\n  * signature: `() => {}`\n* emptyMessage: string, text to display when table has no data\n\n**EngineOutputExport**\n\nThe Veritone export engine outputs full screen dialog. This will fetch the engines ran on a tdo/recording and allow the user to configure what file types are included in the export\n\n*Options:*\n\n* tdos: arrayOf(shape), array of tdo data objects that engine outputs will be exported for\n  * shape: object with the following keys:\n    * tdoId: string (required), the unique id of a tdo you want to export engine outputs for\n    * mentionId: string, the unique id of a mention you want to export engine outputs for. If a mentionId is provided the engine results of the mention will be returned rather than those of the tdo\n    * startOffsetMs: number, an integer representing the number of milliseconds from the start of the tdo where the exported engine outputs will begin\n    * stopOffsetMs: number, an integer representing the number of milliseconds from the start of the tdo where the exported engine outputs will end\n* onExport: func, specifies action to take when export button is clicked\n  * signature: `(response) => {}`\n* onCancel: func, specifies action to take when cancel button is clicked\n  * signature: `() => {}`\n\n*Instance methods*\n\n* open(): opens the export engine output dialog.\n\n## Running the development environment (storybook)\n1. Set up your local clone of veritone-sdk, following the instructions in the [main readme](https://github.com/veritone/veritone-sdk#development)\n2. cd to this package\n3. In `config.dev.json`, fill in the missing fields with your own app's information (see our [application quick-start guide](http://docs.veritone.com/#/applications/quick-start/) for more info on how to create an app). **Your app's `URL` and `redirect URL` should be set to the same value** for the purposes of dev in this package. This default allows the environment to run with minimal config. \n4. run `yarn start`.\n5. When the build finishes, access the storybook at the url provided in your terminal.\n\n## License\nCopyright 2019, Veritone Inc.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n","scripts":{"lint":"yarn run lint:js && yarn run lint:styles","test":"jest","build":"yarn run build:es && yarn run build:cjs && yarn run build:script-tag","start":"yarn run start:widget-server; yarn run start:storybook","format":"prettier --write \"./src/**/*.{js,scss}\"","lint:js":"eslint src/** --ext .js --max-warnings 0","build:es":"cross-env NODE_ENV=production BABEL_ENV=production-es rollup -c rollup.config.es.js","prebuild":"yarn run clean:build","build:cjs":"cross-env NODE_ENV=production BABEL_ENV=production-cjs rollup -c rollup.config.cjs.js","test:watch":"jest --watch","build:watch":"cross-env NODE_ENV=production rollup -c --watch","clean:build":"rimraf dist","lint:styles":"stylelint \"src/**/*.{scss, css}\"","prepublishOnly":"yarn run test && yarn run lint && yarn run build","build:storybook":"NODE_ENV=production build-storybook -c .storybook -o docs-static","start:storybook":"NODE_ENV=test start-storybook -p 3000 -c .storybook","build:script-tag":"cross-env NODE_ENV=production BABEL_ENV=production-cjs webpack --config webpack.config.script-tag.js","start:widget-server":"yarn workspace veritone-widgets-server run start &"},"_npmUser":{"name":"linh.le","email":"linh.le@setacinq.vn"},"_npmVersion":"6.4.1","description":"As of v5.0.0, this package exports both React \"smart components\" and framework agnostic \"widgets\" for most components. When both are available, the smart component is the default export and the widget is a named export. For example, `import FilePicker, { ","directories":{},"jsnext:main":"dist/bundle-es.js","_nodeVersion":"8.15.1","dependencies":{"rxjs":"^6.5.3","react":"^16.9.0","redux":"^4.0.4","deepmerge":"^4.2.2","react-dom":"^16.9.0","recompose":"^0.30.0","redux-saga":"^1.1.3","react-redux":"^7.1.3","redux-thunk":"^2.3.0","video-react":"~0.13.3","shaka-player":"^2.4.1","babel-runtime":"^6.26.0","babel-polyfill":"^6.26.0","@material-ui/lab":"^4.0.0-alpha.37","react-redux-saga":"^1.0.2","@material-ui/core":"^4.8.1","react-virtualized":"^9.18.5","@material-ui/icons":"^4.5.1","@material-ui/styles":"^4.7.1","immutability-helper":"^3.0.0","@material-ui/pickers":"^3.2.8","redux-dynamic-modules":"^5.2.0","veritone-react-common":"9.0.1-beta.2","veritone-redux-common":"^3.11.4","veritone-oauth-helpers":"^2.1.0","redux-api-middleware-fixed":"^2.0.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"raf":"^3.4.0","jest":"^22.4.3","faker":"^4.1.0","enzyme":"^3.5.0","eslint":"^4.8.0","rimraf":"^2.6.2","rollup":"^1.17.0","webpack":"^4.0.1","cross-env":"^5.1.1","node-sass":"^4.7.2","stylelint":"^8.2.0","babel-core":"^6.26.0","url-loader":"^0.6.2","sass-loader":"^6.0.6","webpack-cli":"^2.0.9","babel-loader":"^7.1.3","redux-logger":"^3.0.6","redux-devtools":"^3.5.0","@storybook/react":"v3.3.9","redux-mock-store":"^1.5.4","veritone-dev-env":"^3.0.0","rollup-plugin-url":"^2.2.2","identity-obj-proxy":"^3.0.0","redux-validate-fsa":"^0.1.2","rollup-plugin-json":"^4.0.0","babel-plugin-lodash":"^3.3.2","eslint-plugin-react":"^7.8.2","react-test-renderer":"^16.0.0","rollup-plugin-alias":"^1.5.2","rollup-plugin-babel":"^3.0.7","eslint-plugin-import":"^2.10.0","eslint-plugin-lodash":"^2.4.5","babel-plugin-date-fns":"^0.2.1","eslint-plugin-promise":"^3.5.0","rollup-plugin-postcss":"^2.0.3","rollup-plugin-replace":"^2.2.0","@storybook/addon-knobs":"3.3.9","eslint-config-prettier":"^2.6.0","rollup-analyzer-plugin":"^1.2.0","rollup-plugin-commonjs":"^10.0.1","enzyme-adapter-react-16":"^1.0.0","stylelint-config-prettier":"^4.0.0","stylelint-config-standard":"^17.0.0","rollup-plugin-node-resolve":"^5.2.0","babel-plugin-external-helpers":"^6.22.0","babel-plugin-transform-runtime":"^6.23.0","redux-immutable-state-invariant":"^2.1.0","babel-plugin-add-react-displayname":"^0.0.5","babel-plugin-transform-class-properties":"^6.24.1","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-plugin-transform-export-extensions":"^6.22.0","babel-plugin-transform-object-rest-spread":"^6.26.0"},"_npmOperationalInternal":{"tmp":"tmp/veritone-widgets_8.0.6-beta.4_1582719573923_0.2159489058766726","host":"s3://npm-registry-packages"}},"8.0.6-beta.5":{"name":"veritone-widgets","version":"8.0.6-beta.5","license":"Apache-2.0","_id":"veritone-widgets@8.0.6-beta.5","maintainers":[{"name":"aaronadaniel","email":"aaron.kalel@gmail.com"},{"name":"albertcbrown","email":"al@veritone.com"},{"name":"christopher-gustavsson","email":"chrisgustavsson1@gmail.com"},{"name":"coolmitch","email":"robb.mitch@gmail.com"},{"name":"kkaiser","email":"kkaiser@veritone.com"},{"name":"linh.le","email":"linh.le@setacinq.vn"},{"name":"mikomonday","email":"miko.monday@gmail.com"},{"name":"mmtbkn","email":"mohamedirvine@gmail.com"},{"name":"seta-tuha","email":"tu.ha@setacinq.vn"},{"name":"truong_veritone","email":"ktruong@veritone.com"},{"name":"veritone_dev","email":"dev@veritone.com"},{"name":"veritone-jordan","email":"jbelford@veritone.com"}],"dist":{"shasum":"6a41b03778e96208d0f7f6e69bc0e997e0a39849","tarball":"https://registry.npmjs.org/veritone-widgets/-/veritone-widgets-8.0.6-beta.5.tgz","fileCount":184,"integrity":"sha512-OiNSvGdAcGnBpd8l6pf9yqwvckT992tlQhE3VBBlcIhPaUWJJNItQ8Hquo6lFMVnXhkj+BDnZBk0qaEO4MRVbA==","signatures":[{"sig":"MEQCIFT+bfHdB3z6KTCMLZ+UNsy73QnlwhhVZs3Inr2e9GY3AiACEAVT/p37n7UEnqOdmG6sxn8ivanGFEz52Tr3fUEg6Q==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":28321246,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeXLZPCRA9TVsSAnZWagAAfLIP/jJkLlxInycHvoQDXSZ3\nsnm5ziPgNhyapO0trR09t392QJtlcMRW2osp7jxMQ1FGHYzcJloRzDh6excI\nU3TEIZN0V6DmDg7hWMGdmk7FfTFm11Rfw2oG45/BPKifdYbqjaXoHqsXtf34\n9s77tvZn/SVmd6HrrI7LGm2eaG2R26+tLk6E3IVLTTFW1h8bPauIgh6bgdci\nQaabF3kgHq/Jyv7mi79lJGXajElouhWbtl9zG9vW4QZCzQBMMx4ZhLqcj29v\nFy2QHsWzYprxIn+FzojD+SCComEusSvtmSveGx9KRfVsFepRpPlCPbVNG1S+\nugtsXKJQq9sVhlN4182tRnBbSqxkkuxwJxzcTHCoA97OQveVMhs2B6+X/Vig\nsLOuw9rCHvI9AP3CszF63oIe5ehgzeHsDU3A5KZopYdU9oKfscXg+dNUi86A\nC8cH5PPvJlmAUpB3BJOdyJ8RJfDAwhZK9gm4kkqcmyGGCQX3puHZTmaaoCJl\nSlnBegAxr46wl9f878onCzQE1u3Rc0dKq2jAf33Ma3vVSCPj4LwHmxZRlUJJ\ncbHNFMpydXafgpudTHcwWYVKiZW7RKbKtisQR77JUh5uUdlCX5YnmPqnda2N\ngWqlzyFIVe97TbsnPDlqFV259JcZzBro/Gie3cUZ9xsNummP5/yC2gavpWtI\nTppk\r\n=v4wr\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"setupFiles":["<rootDir>/test/testSuitePolyfills.js","<rootDir>/test/configureEnzyme.js"],"moduleNameMapper":{"^dnd-core$":"dnd-core/dist/cjs","^react-dnd$":"react-dnd/dist/cjs","\\.(css|scss)$":"identity-obj-proxy","^react-dnd-test-utils$":"react-dnd-test-utils/dist/cjs","^react-dnd-test-backend$":"react-dnd-test-backend/dist/cjs","^react-dnd-html5-backend$":"react-dnd-html5-backend/dist/cjs","^react-dnd-touch-backend$":"react-dnd-touch-backend/dist/cjs","\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$":"<rootDir>/test/__mocks__/fileMock.js"},"moduleDirectories":["node_modules","../../node_modules"],"moduleFileExtensions":["js","jsx"]},"main":"dist/bundle-cjs.js","module":"dist/bundle-es.js","readme":"## Quick Start\nAs of v5.0.0, this package exports both React \"smart components\" and framework agnostic \"widgets\" for most components. When both are available, the smart component is the default export and the widget is a named export. For example, `import FilePicker, { FilePickerWidget } from 'veritone-widgets'` imports the smart component as FilePicker and the widget as FilePickerWidget. Smart components usually require redux reducers and sagas to be imported as well, see [Using Smart Components](#using-smart-components)\n\n### Widgets (framework agnostic)\n```javascript\nimport { VeritoneApp, OAuthLoginButtonWidget, AppBarWidget } from 'veritone-widgets'\nconst app = VeritoneApp();\n\n// a \"log in with veritone\" button\nconst oauthButton = new OAuthLoginButtonWidget({\n  // the ID of an existing element in your document where the button will appear\n  elId: 'login-button-widget',\n  // the ID of your Veritone application (found in Developer App)\n  clientId: 'my-client-id',\n  // the route in your app that will handle OAuth responses (more details below)\n  redirectUri: 'https://my-app.com/handle_oauth_callback',\n  // optional callbacks to retrieve the OAuth token for using outside of VeritoneApp:\n  onAuthSuccess: ({ OAuthToken }) => console.log(OAuthToken),\n  onAuthFailure: (error) => console.log(error)\n});\n\n// the Veritone app bar, which will receive auth after the user completes\n// the oauth flow using the OAuthLoginButton\nconst appBar = new AppBarWidget({\n  elId: 'appBar-widget',\n  title: 'My App',\n  backgroundColor: '#4caf50',\n  profileMenu: true,\n  appSwitcher: true\n});\n```\n### React Components\n```javascript\nimport { OAuthLoginButton } from 'veritone-widgets'\n\nrender(\n  <OAuthLoginButton\n    clientId=\"my-client-id\"\n    redirectUri=\"https://my-app.com/handle_oauth_callback\"\n  />\n)\n```\n\n## Using Smart Components\nBecause smart components are not rendered within the VeritoneApp widget framework, they require the user's app to have its own redux store with the components' reducers installed. Often, [sagas](https://redux-saga.js.org/) are also included and must be started as part of the app's root saga.\n\n### Smart component reducer/saga requirements\n#### FilePicker\n* reducer:\n`import {filePickerReducer} from 'veritone-widgets'`\n\n* saga:\n`import {filePickerSaga} from 'veritone-widgets'`\n\n#### Notifications\n* reducer:\n`import {notificationsReducer} from 'veritone-widgets'`\n\n#### EngineOutputExport\n* reducer:\n`import {engineOutputExportReducer} from 'veritone-widgets'`\n\n#### OAuthLoginButton\n* reducers:\nveritone-redux-common `User`, `Auth` and `Config` reducers\n\n### Smart component theme wrapper requirements\nIn your app, import the `VeritoneSDKThemeProvider` from `veritone-react-common`:\n```\nimport {VeritoneSDKThemeProvider } from 'veritone-react-common'\n```\nthen wrap your root component with `<VeritoneSDKThemeProvider>`. If this is not possible, the `@withVeritoneSDKThemeProvider` decorator is provided to wrap individual components.\n\nComponents can be customized using [material-ui themes](https://material-ui.com/customization/themes/) by passing a theme into the `theme` prop of the provider. Passed-in themes will be merged with the default Veritone theme.\n\n## Using Widgets\n### 1. Create an instance of VeritoneApp\n`VeritoneApp` is a container for all the widgets and widget data in an app. Before using any widgets, you need to import and call it. Typically this will be done when your application is loaded and initialized.\n\n```javascript\nimport { VeritoneApp } from 'veritone-widgets'\nconst app = VeritoneApp();\n```\n\n_Note_: `VeritoneApp` creates a singleton, so you do not need to manage the constructed app instance yourself. As long as VeritoneApp() has been imported and called at least once, you can retrieve the same instance by importing and calling VeritoneApp() again elsewhere in your app, if needed.\n\n### 2. Authenticate with Veritone via OAuth\nIf you already have an OAuth token (because your app handles the client-side OAuth flow on its own), provide it by calling `login()` on the returned app instance.\n\n```javascript\nimport { VeritoneApp } from 'veritone-widgets'\nconst app = VeritoneApp().login({\n  OAuthToken: 'my-token-here'\n});\n```\n \nCalling `login()` is usually not necessary; we provide an `OAuthLoginButton` widget, which handles the OAuth token exchange automatically. See the instructions in the next section for more information.\n\n\n### 3. Add widgets to your app\nAfter you've initialized the app framework by calling `VeritoneApp()`, you can begin using widgets.\n\nA \"widget\" is a self-contained frontend component. Widgets always render into an empty element which you provide. They are self-contained and handle rendering a UI, responding to user interactions, making api calls, and so on.\n\nFor example, the `AppBar` widget renders the Veritone application toolbar, fetches the required data to render the Veritone app switcher and profile menu, and allows the developer to configure their application logo and title. When the user uses the app switcher or uses the profile menu to log out, the AppBar widget handles those events.  \n\nWidgets typically can be configured with a variety of options, but always require at least `elId`. This is the id (string) of an element in your document, often a `div`, into which the widget will be rendered. By applying styling to that div, you can position the widget around your app. The element specified in elId must exist in the document before you create the widget that will use it.\n\n#### Example: Using the OAuthLoginButton widget\nThe first widget you are likely to include is `OAuthLoginButton`. `OAuthLoginButton` renders a \"log in with Veritone\" button that your users can click to start the OAuth authentication flow. At the end of that flow, your VeritoneApp instance will be authenticated and able to make requests to our API. You can also retrieve the oauth token to use in your own app.\n\n_Note_: Unless you are handling the OAuth flow on your own and providing the token to VeritoneApp manually, the `OAuthLoginButton` widget is required for Veritone widgets to work.\n\nThe actual code you write to use widgets will vary based on your framework of choice, but in general, it should be as follows.\n\n```javascript\n// assuming VeritoneApp has already been initialized as described earlier, and given a document like:\n<body>\n  ...\n  <div id=\"login-button-widget\" />\n</body>\n\n// you can render the login button to the document like this:\nimport { OAuthLoginButtonWidget } from 'veritone-widgets'\nconst oauthButton = new OAuthLoginButtonWidget({\n  // the ID of an existing element in your document where the button will appear\n  elId: 'login-button-widget',\n  // the ID of your Veritone application (found in Developer App)\n  clientId: 'my-client-id',\n  // the route in your app that will handle OAuth responses (more details below)\n  redirectUri: 'https://my-app.com/handle_oauth_callback',\n  // optional callbacks to retrieve the OAuth token for using outside of VeritoneApp:\n  onAuthSuccess: ({ OAuthToken }) => console.log(OAuthToken),\n  onAuthFailure: (error) => console.log(error)\n});\n```\n\nWhen `new OAuthLoginButtonWidget({ ... })` runs, the widget will appear on your page.\n\n#### Example: Using the AppBar widget\nAll Veritone apps should also include the AppBar widget.\n\n```javascript\n<body>\n  <div id=\"appBar-widget\" />\n  ...\n</body>\n\nimport { AppBarWidget } from 'veritone-widgets'\nconst appBar = new AppBarWidget({\n  elId: 'appBar-widget',\n  title: 'My App',\n  backgroundColor: '#4caf50',\n  profileMenu: true,\n  appSwitcher: true\n});\n```\n\n## Use via script tag\nFor environments that do not support javascript module imports, widgets can also be included in an app via script tags.\n\n```\n<body>\n  <div id=\"appBar-widget\"></div>\n\n  <script src=\"https://unpkg.com/veritone-widgets@^5/dist/umd/VeritoneApp.js\"></script>\n  <script src=\"https://unpkg.com/veritone-widgets@^5/dist/umd/AppBar.js\"></script>\n\n  <script>\n    const app = VeritoneApp.default();\n\n    const appBar = new AppBar.AppBarWidget({\n      elId: 'appBar-widget',\n      title: 'AppBar Widget',\n      profileMenu: true,\n      appSwitcher: true\n    });\n  </script>\n</body>\n```\n\nAs you can see, each widget is bundled individually to keep file sizes small. In addition, VeritoneApp is separately bundled and required to use widgets. Scripts can be accessed from the the [unpkg](https://unpkg.com/) cdn or downloaded and hosted on your own infrastructure. Unpkg supports [semver ranges](https://docs.npmjs.com/misc/semver), or a specific version can be specified exactly. \n\n\n## Configuring widgets\nNote that the OAuthLoginButton widget in the example above is being configured with five properties: elId, clientId, OAuthURI, onAuthSuccess and onAuthFailure. As mentioned earlier, an elId is required for every widget. OAuthURI, clientId, onAuthSuccess and onAuthFailure are specific configurable properties on the OAuthLoginButton. As it is in the example, configuration is always provided to the widget constructor.\n\n## Widget instance methods\nSome widgets have methods which can be called on an instance of that widget. For example, the FilePicker widget has the methods `pick()` and `cancel()` to open and close the picker dialog, respectively.\n\n```javascript\nthis._picker = new FilePickerWidget({\n  elId: 'file-picker-widget',\n  accept: ['image/*'],\n  multiple: true\n});\n\n...\n// call the pick() instance method on the widget\nthis._picker.pick(files => console.log(files))\n```\n\n#### Where to look for widget options\nIn practice, a widget is just a wrapper around a React component. The easiest way to determine all the possible options for a given widget is to look at the PropTypes of its component. Remember to watch for console warnings which will indicate when an option was configured incorrectly, or when a required option was not provided. \n\n* The \"storybook\" dev environments in veritone-widgets and veritone-react-common have live examples of the various widgets and components.\n\n* The `story.js` file in the root of each widget folder in veritone-widgets and in the root of each component folder in veritone-react-common show the code used to create the storybook pages. If you are using React to write your application, these can be used directly as a basis for your own implementation. \n\n* The PropTypes in the source files of the various widgets (in veritone-widgets) and their respective components (in veritone-react-common) generally correspond to configurable options. Likewise, instance methods for a widget will be defined on its widget class in veritone-widgets.\n\n### Destroying widgets\nTo remove a widget, call `destroy()` on the instance\n```javascript\nconst oauthButton = new OAuthLoginButtonWidget({ ... });\n...\noauthButton.destroy();\n```\n\n## Available widgets\nThe current widgets are:\n\n**AppBar**\n\nThe title and navigation bar common between all Veritone applications. Includes a logo, title, the Veritone app switcher and profile menu.\n\n*Options:*\n\n* title: string, a title to show in the center of the AppBar\n* logoSrc: string, a URL or image (like an SVG) to use as the logo on the left-hand side of the AppBar.\n* backgroundColor: string, a color (in hex) to use for the AppBar background\n* profileMenu: bool, whether or not to show the profile menu\n* appSwitcher: bool, whether or not to show the app switcher menu\n* logo: bool, whether or not to show the veritone logo on the left side of the AppBar\n* onLogout: func, called when the user clicks \"logout\". Apps must implement their own logout logic (usually by deleting the stored oauth token and redirecting or refreshing the page appropriately)\n\n**OAuthLoginButton**\nThe \"Log in with Veritone\" button and corresponding frontend logic to handle the OAuth2 authentication flow.\n\n*Options:*\n* mode: \"implicit\" (default) or \"authCode\", the OAuth grant type you wish to use. \n* OAuthURI: string (required if using `authCode` mode), the URL of your app server's OAuth callback endpoint.\n* redirectUri: string (required if using `implicit` mode), the URL of your app frontend's OAuth callback endpoint.\n* clientID: string (required if using implicit mode), the ID of your Veritone application (found in Developer App)\n* onAuthSuccess: function, a callback that will be called with the OAuth token when the OAuth flow is completed successfully.\n* onAuthFailure: function, a callback that will be called with the error when the OAuth flow fails.\n\n*Requirements*\n\nVeritone provides two OAuth modes to suit different app requirements:\n\n`Implicit`, the default mode, is a frontend-only grant flow with no serverside requirement. _Most apps will use this mode._ This flow is much easier for apps to implement but has the downside of not returning a refresh token; users will need to log in again each time their token expires. \n\n`Auth Code` is a server-based grant flow, which uses your Veritone app's OAuth secret to retrieve both an auth token and refresh token. Auth code flow requires a server because the OAuth secret cannot be exposed to the client; the veritone-widets-server package is an example implementation, and more information can be found in its readme.\n\n**FilePicker**\n\nThe Veritone file upload dialog. Handles selecting and uploading files to S3 for use on the Veritone platform.\n\n*Options:*\n\n* accept: oneOfType([arrayOf(string), string]), file extension(s) or mimetype(s) which the file picker will accept\n* multiple: bool, whether the picker will accept multiple files to upload in a batch\n* width: number, the width of the filepicker dialog\n* height: number, the height of the filepicker dialog\n* allowUrlUpload: bool, whether the filepicker will allow files to be selected by URL\n\n*Instance methods*\n\n* pick(callback): open the filepicker dialog.\n  * callback signature is (result, { warning, error, cancelled })\n    * result: array of result objects, one for each file uploaded\n      * key: string, the filename as stored on the server (may include a UUID)\n      * fileName: string, the original filename\n      * size: number, the file size in bytes\n      * type: string, the mime type of the file\n      * error: string or `false`, the error that prevented the file from uploading, if any\n      * bucket: string, the S3 bucket to which the file was uploaded\n      * expiresInSeconds: number, the length of time the credentials in `getUrl` will be valid, in seconds.\n      * getUrl: string or `null`, the resulting S3 URL, if successful. Includes credentials that are valid for `expires` seconds. \n      * unsignedUrl: string or `null`, the resulting S3 URL, if successful. Does not include credentials and will need to be signed to be used.\n    * warning: string or `false`, a warning message if some (but not all) files failed to upload. A warning indicates that `result` contains some successful upload result objects, and some that were not successful (unsuccessful objects will have `error` populated with an error message, as noted above)\n    * error: string or `false`, an error message, if all files failed to upload.\n    * cancelled: bool, whether or not the filepicker interaction was cancelled (by the user, or by calling cancel()).\n\n* cancel(): close the filepicker dialog. The callback provided to pick() will be called with `(null, { cancelled: true })`.\n\n**Table**\n\nA Veritone table to display data.\n\n*Options:*\n\n* data: arrayOf(object) (required), the dataset\n* columns: arrayOf(shape) (required), a set of defintions for each column to be displayed\n  * shape: object with the following keys:\n    * dataKey: string (required), the data attribute to display within column \n    * header: string, the column heading\n    * transform: function, specifies how column data should be displayed\n      * signature: `(cellValue) => {}`\n    * menu: bool, identifies a column as a menu column\n    * onSelectItem: function, when `menu` is `true`, specifies action(s) to take when a menu option is clicked\n      * signature: `(menuAction) => {}`\n    * cursorPointer: bool, show cursor pointer over table cells\n    * align: string, specifies columm alignment: `['left', 'right', 'center']`\n    * width: number, specifies the width of a column\n* paginate: bool, specifies whether table data should be paginated\n* initialItemsPerPage: number, the number of items to display per page in a paginated table,\n* onCellClick: function, specifies action to take when a table cell is clicked\n  * signature: `(cellRow, cellColumn, cellData) => {}`\n* focusedRow: number, identifies a row to display additional content for\n* renderFocusedRowDetails: function, specifies additional content to display for `focusedRow`\n  * signature: `(focusedRowData) => (string | react component)`\n* onShowCellRange: function, fires when table page or rows (on page) changes;\n  * signature: `({ start: firstRowIndex, end: lastRowIndex }) => {}`\n* onRefreshPageData: function, specifies how to refresh data (if needed)\n  * signature: `() => {}`\n* emptyMessage: string, text to display when table has no data\n\n**EngineOutputExport**\n\nThe Veritone export engine outputs full screen dialog. This will fetch the engines ran on a tdo/recording and allow the user to configure what file types are included in the export\n\n*Options:*\n\n* tdos: arrayOf(shape), array of tdo data objects that engine outputs will be exported for\n  * shape: object with the following keys:\n    * tdoId: string (required), the unique id of a tdo you want to export engine outputs for\n    * mentionId: string, the unique id of a mention you want to export engine outputs for. If a mentionId is provided the engine results of the mention will be returned rather than those of the tdo\n    * startOffsetMs: number, an integer representing the number of milliseconds from the start of the tdo where the exported engine outputs will begin\n    * stopOffsetMs: number, an integer representing the number of milliseconds from the start of the tdo where the exported engine outputs will end\n* onExport: func, specifies action to take when export button is clicked\n  * signature: `(response) => {}`\n* onCancel: func, specifies action to take when cancel button is clicked\n  * signature: `() => {}`\n\n*Instance methods*\n\n* open(): opens the export engine output dialog.\n\n## Running the development environment (storybook)\n1. Set up your local clone of veritone-sdk, following the instructions in the [main readme](https://github.com/veritone/veritone-sdk#development)\n2. cd to this package\n3. In `config.dev.json`, fill in the missing fields with your own app's information (see our [application quick-start guide](http://docs.veritone.com/#/applications/quick-start/) for more info on how to create an app). **Your app's `URL` and `redirect URL` should be set to the same value** for the purposes of dev in this package. This default allows the environment to run with minimal config. \n4. run `yarn start`.\n5. When the build finishes, access the storybook at the url provided in your terminal.\n\n## License\nCopyright 2019, Veritone Inc.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n","scripts":{"lint":"yarn run lint:js && yarn run lint:styles","test":"jest","build":"yarn run build:es && yarn run build:cjs && yarn run build:script-tag","start":"yarn run start:widget-server; yarn run start:storybook","format":"prettier --write \"./src/**/*.{js,scss}\"","lint:js":"eslint src/** --ext .js --max-warnings 0","build:es":"cross-env NODE_ENV=production BABEL_ENV=production-es rollup -c rollup.config.es.js","prebuild":"yarn run clean:build","build:cjs":"cross-env NODE_ENV=production BABEL_ENV=production-cjs rollup -c rollup.config.cjs.js","test:watch":"jest --watch","build:watch":"cross-env NODE_ENV=production rollup -c --watch","clean:build":"rimraf dist","lint:styles":"stylelint \"src/**/*.{scss, css}\"","prepublishOnly":"yarn run test && yarn run lint && yarn run build","build:storybook":"NODE_ENV=production build-storybook -c .storybook -o docs-static","start:storybook":"NODE_ENV=test start-storybook -p 3000 -c .storybook","build:script-tag":"cross-env NODE_ENV=production BABEL_ENV=production-cjs webpack --config webpack.config.script-tag.js","start:widget-server":"yarn workspace veritone-widgets-server run start &"},"_npmUser":{"name":"linh.le","email":"linh.le@setacinq.vn"},"_npmVersion":"6.4.1","description":"As of v5.0.0, this package exports both React \"smart components\" and framework agnostic \"widgets\" for most components. When both are available, the smart component is the default export and the widget is a named export. For example, `import FilePicker, { ","directories":{},"jsnext:main":"dist/bundle-es.js","_nodeVersion":"8.15.1","dependencies":{"rxjs":"^6.5.3","react":"^16.9.0","redux":"^4.0.4","deepmerge":"^4.2.2","react-dom":"^16.9.0","recompose":"^0.30.0","redux-saga":"^1.1.3","react-redux":"^7.1.3","redux-thunk":"^2.3.0","video-react":"~0.13.3","shaka-player":"^2.4.1","babel-runtime":"^6.26.0","babel-polyfill":"^6.26.0","@material-ui/lab":"^4.0.0-alpha.45","react-redux-saga":"^1.0.2","@material-ui/core":"^4.9.5","react-virtualized":"^9.18.5","@material-ui/icons":"^4.9.1","@material-ui/styles":"^4.9.0","immutability-helper":"^3.0.0","@material-ui/pickers":"^3.2.10","redux-dynamic-modules":"^5.2.0","veritone-react-common":"9.0.1-beta.3","veritone-redux-common":"^3.11.4","veritone-oauth-helpers":"^2.1.0","redux-api-middleware-fixed":"^2.0.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"raf":"^3.4.0","jest":"^22.4.3","faker":"^4.1.0","enzyme":"^3.5.0","eslint":"^4.8.0","rimraf":"^2.6.2","rollup":"^1.17.0","webpack":"^4.0.1","cross-env":"^5.1.1","node-sass":"^4.7.2","stylelint":"^8.2.0","babel-core":"^6.26.0","url-loader":"^0.6.2","sass-loader":"^6.0.6","webpack-cli":"^2.0.9","babel-loader":"^7.1.3","redux-logger":"^3.0.6","redux-devtools":"^3.5.0","@storybook/react":"v3.3.9","redux-mock-store":"^1.5.4","veritone-dev-env":"^3.0.0","rollup-plugin-url":"^2.2.2","identity-obj-proxy":"^3.0.0","redux-validate-fsa":"^0.1.2","rollup-plugin-json":"^4.0.0","babel-plugin-lodash":"^3.3.2","eslint-plugin-react":"^7.8.2","react-test-renderer":"^16.0.0","rollup-plugin-alias":"^1.5.2","rollup-plugin-babel":"^3.0.7","eslint-plugin-import":"^2.10.0","eslint-plugin-lodash":"^2.4.5","babel-plugin-date-fns":"^0.2.1","eslint-plugin-promise":"^3.5.0","rollup-plugin-postcss":"^2.0.3","rollup-plugin-replace":"^2.2.0","@storybook/addon-knobs":"3.3.9","eslint-config-prettier":"^2.6.0","rollup-analyzer-plugin":"^1.2.0","rollup-plugin-commonjs":"^10.0.1","enzyme-adapter-react-16":"^1.0.0","stylelint-config-prettier":"^4.0.0","stylelint-config-standard":"^17.0.0","rollup-plugin-node-resolve":"^5.2.0","babel-plugin-external-helpers":"^6.22.0","babel-plugin-transform-runtime":"^6.23.0","redux-immutable-state-invariant":"^2.1.0","babel-plugin-add-react-displayname":"^0.0.5","babel-plugin-transform-class-properties":"^6.24.1","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-plugin-transform-export-extensions":"^6.22.0","babel-plugin-transform-object-rest-spread":"^6.26.0"},"_npmOperationalInternal":{"tmp":"tmp/veritone-widgets_8.0.6-beta.5_1583134286978_0.9100651762555609","host":"s3://npm-registry-packages"}},"8.0.7":{"name":"veritone-widgets","version":"8.0.7","license":"Apache-2.0","_id":"veritone-widgets@8.0.7","maintainers":[{"name":"aaronadaniel","email":"aaron.kalel@gmail.com"},{"name":"albertcbrown","email":"al@veritone.com"},{"name":"christopher-gustavsson","email":"chrisgustavsson1@gmail.com"},{"name":"coolmitch","email":"robb.mitch@gmail.com"},{"name":"kkaiser","email":"kkaiser@veritone.com"},{"name":"linh.le","email":"linh.le@setacinq.vn"},{"name":"mikomonday","email":"miko.monday@gmail.com"},{"name":"mmtbkn","email":"mohamedirvine@gmail.com"},{"name":"seta-tuha","email":"tu.ha@setacinq.vn"},{"name":"truong_veritone","email":"ktruong@veritone.com"},{"name":"veritone_dev","email":"dev@veritone.com"},{"name":"veritone-jordan","email":"jbelford@veritone.com"}],"dist":{"shasum":"52b4c00d3f99f07da5ba442c9caacc9d73784eeb","tarball":"https://registry.npmjs.org/veritone-widgets/-/veritone-widgets-8.0.7.tgz","fileCount":184,"integrity":"sha512-AIS+xuGxEZv6zG4Ou2qKh6yImvRUaCOzJVgE+0E6oJ4jRLei8z7QkY3byUr/xs5wvwgLdmSiPYvZ9Sgit8fvBg==","signatures":[{"sig":"MEUCIAy3k8n9gLjHcqdj2WF3SPQpCGcJgVkVjZxuybHomWS0AiEAoivBvqkGUamFw7yEyaHiJZLbKuznZ4a1MwZjDaSa7wQ=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":28321453,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeXPZgCRA9TVsSAnZWagAAXu8P/iyKH2Ua+aYHSVPhOnko\nFjeVWcPqNRRdvJZtMJtKhwktIwq3gr5jhvGCCvboRjCFSufpaLkFVuGsLieq\nOehsElCyEv/tXZyZYQivkhhB0d0t7W+9HPZz1kf03l3GARXSM0b41Bl1aGHw\nR9ojri7MLtqeS73rsExo2wc8Vor0K8ZaOYyehoDC2+JOHzUXG5EmkO7YmNm6\n2ZjOVuILQPGs6nUfqjFm6xSFA6UiPSlpeHOMrsQ6+thQS3o8oB6oXsHoKle5\nJjYsx8T94aqmA2vAkx5jIFcnwdHauuXp7HpcYU+ylOlIhbB5WKe1Ofk4G58s\nbKijScyB06r1PRouXafW6EDRJlpp/O67yTO1Fk8sckBPCGEgeC+JHs+6t0+A\nIwt3SRsg3INgvc3oDGygwqlpfRm9jUpFYWlRZn1qA05BJAvdTnoHDmiiv2fh\nJsO+ar+XS17VwKCtf7+p01ma7brD3YL4CQ5O5BpVNRCEt5a12k2v1UJn0eZW\nZG4TNtCmuhZACe1LZYqY0WOjzDx+n3C1Jiz1g3D/uGzR1ks8/lRpZrkEPelN\nRx70SSTu2BWc/yJuv9iE8sgfxWt65cBQgTUQW9tb9N/r/cTGUWppUfV2GvUt\nHjN8XU1EdudUtLjFm3xe+RsYMCgPD+H7Lugf7OVX6Pyg3E0oObGNW1VgiFFQ\ni2Qh\r\n=SoT/\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"setupFiles":["<rootDir>/test/testSuitePolyfills.js","<rootDir>/test/configureEnzyme.js"],"moduleNameMapper":{"^dnd-core$":"dnd-core/dist/cjs","^react-dnd$":"react-dnd/dist/cjs","\\.(css|scss)$":"identity-obj-proxy","^react-dnd-test-utils$":"react-dnd-test-utils/dist/cjs","^react-dnd-test-backend$":"react-dnd-test-backend/dist/cjs","^react-dnd-html5-backend$":"react-dnd-html5-backend/dist/cjs","^react-dnd-touch-backend$":"react-dnd-touch-backend/dist/cjs","\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$":"<rootDir>/test/__mocks__/fileMock.js"},"moduleDirectories":["node_modules","../../node_modules"],"moduleFileExtensions":["js","jsx"]},"main":"dist/bundle-cjs.js","module":"dist/bundle-es.js","readme":"## Quick Start\nAs of v5.0.0, this package exports both React \"smart components\" and framework agnostic \"widgets\" for most components. When both are available, the smart component is the default export and the widget is a named export. For example, `import FilePicker, { FilePickerWidget } from 'veritone-widgets'` imports the smart component as FilePicker and the widget as FilePickerWidget. Smart components usually require redux reducers and sagas to be imported as well, see [Using Smart Components](#using-smart-components)\n\n### Widgets (framework agnostic)\n```javascript\nimport { VeritoneApp, OAuthLoginButtonWidget, AppBarWidget } from 'veritone-widgets'\nconst app = VeritoneApp();\n\n// a \"log in with veritone\" button\nconst oauthButton = new OAuthLoginButtonWidget({\n  // the ID of an existing element in your document where the button will appear\n  elId: 'login-button-widget',\n  // the ID of your Veritone application (found in Developer App)\n  clientId: 'my-client-id',\n  // the route in your app that will handle OAuth responses (more details below)\n  redirectUri: 'https://my-app.com/handle_oauth_callback',\n  // optional callbacks to retrieve the OAuth token for using outside of VeritoneApp:\n  onAuthSuccess: ({ OAuthToken }) => console.log(OAuthToken),\n  onAuthFailure: (error) => console.log(error)\n});\n\n// the Veritone app bar, which will receive auth after the user completes\n// the oauth flow using the OAuthLoginButton\nconst appBar = new AppBarWidget({\n  elId: 'appBar-widget',\n  title: 'My App',\n  backgroundColor: '#4caf50',\n  profileMenu: true,\n  appSwitcher: true\n});\n```\n### React Components\n```javascript\nimport { OAuthLoginButton } from 'veritone-widgets'\n\nrender(\n  <OAuthLoginButton\n    clientId=\"my-client-id\"\n    redirectUri=\"https://my-app.com/handle_oauth_callback\"\n  />\n)\n```\n\n## Using Smart Components\nBecause smart components are not rendered within the VeritoneApp widget framework, they require the user's app to have its own redux store with the components' reducers installed. Often, [sagas](https://redux-saga.js.org/) are also included and must be started as part of the app's root saga.\n\n### Smart component reducer/saga requirements\n#### FilePicker\n* reducer:\n`import {filePickerReducer} from 'veritone-widgets'`\n\n* saga:\n`import {filePickerSaga} from 'veritone-widgets'`\n\n#### Notifications\n* reducer:\n`import {notificationsReducer} from 'veritone-widgets'`\n\n#### EngineOutputExport\n* reducer:\n`import {engineOutputExportReducer} from 'veritone-widgets'`\n\n#### OAuthLoginButton\n* reducers:\nveritone-redux-common `User`, `Auth` and `Config` reducers\n\n### Smart component theme wrapper requirements\nIn your app, import the `VeritoneSDKThemeProvider` from `veritone-react-common`:\n```\nimport {VeritoneSDKThemeProvider } from 'veritone-react-common'\n```\nthen wrap your root component with `<VeritoneSDKThemeProvider>`. If this is not possible, the `@withVeritoneSDKThemeProvider` decorator is provided to wrap individual components.\n\nComponents can be customized using [material-ui themes](https://material-ui.com/customization/themes/) by passing a theme into the `theme` prop of the provider. Passed-in themes will be merged with the default Veritone theme.\n\n## Using Widgets\n### 1. Create an instance of VeritoneApp\n`VeritoneApp` is a container for all the widgets and widget data in an app. Before using any widgets, you need to import and call it. Typically this will be done when your application is loaded and initialized.\n\n```javascript\nimport { VeritoneApp } from 'veritone-widgets'\nconst app = VeritoneApp();\n```\n\n_Note_: `VeritoneApp` creates a singleton, so you do not need to manage the constructed app instance yourself. As long as VeritoneApp() has been imported and called at least once, you can retrieve the same instance by importing and calling VeritoneApp() again elsewhere in your app, if needed.\n\n### 2. Authenticate with Veritone via OAuth\nIf you already have an OAuth token (because your app handles the client-side OAuth flow on its own), provide it by calling `login()` on the returned app instance.\n\n```javascript\nimport { VeritoneApp } from 'veritone-widgets'\nconst app = VeritoneApp().login({\n  OAuthToken: 'my-token-here'\n});\n```\n \nCalling `login()` is usually not necessary; we provide an `OAuthLoginButton` widget, which handles the OAuth token exchange automatically. See the instructions in the next section for more information.\n\n\n### 3. Add widgets to your app\nAfter you've initialized the app framework by calling `VeritoneApp()`, you can begin using widgets.\n\nA \"widget\" is a self-contained frontend component. Widgets always render into an empty element which you provide. They are self-contained and handle rendering a UI, responding to user interactions, making api calls, and so on.\n\nFor example, the `AppBar` widget renders the Veritone application toolbar, fetches the required data to render the Veritone app switcher and profile menu, and allows the developer to configure their application logo and title. When the user uses the app switcher or uses the profile menu to log out, the AppBar widget handles those events.  \n\nWidgets typically can be configured with a variety of options, but always require at least `elId`. This is the id (string) of an element in your document, often a `div`, into which the widget will be rendered. By applying styling to that div, you can position the widget around your app. The element specified in elId must exist in the document before you create the widget that will use it.\n\n#### Example: Using the OAuthLoginButton widget\nThe first widget you are likely to include is `OAuthLoginButton`. `OAuthLoginButton` renders a \"log in with Veritone\" button that your users can click to start the OAuth authentication flow. At the end of that flow, your VeritoneApp instance will be authenticated and able to make requests to our API. You can also retrieve the oauth token to use in your own app.\n\n_Note_: Unless you are handling the OAuth flow on your own and providing the token to VeritoneApp manually, the `OAuthLoginButton` widget is required for Veritone widgets to work.\n\nThe actual code you write to use widgets will vary based on your framework of choice, but in general, it should be as follows.\n\n```javascript\n// assuming VeritoneApp has already been initialized as described earlier, and given a document like:\n<body>\n  ...\n  <div id=\"login-button-widget\" />\n</body>\n\n// you can render the login button to the document like this:\nimport { OAuthLoginButtonWidget } from 'veritone-widgets'\nconst oauthButton = new OAuthLoginButtonWidget({\n  // the ID of an existing element in your document where the button will appear\n  elId: 'login-button-widget',\n  // the ID of your Veritone application (found in Developer App)\n  clientId: 'my-client-id',\n  // the route in your app that will handle OAuth responses (more details below)\n  redirectUri: 'https://my-app.com/handle_oauth_callback',\n  // optional callbacks to retrieve the OAuth token for using outside of VeritoneApp:\n  onAuthSuccess: ({ OAuthToken }) => console.log(OAuthToken),\n  onAuthFailure: (error) => console.log(error)\n});\n```\n\nWhen `new OAuthLoginButtonWidget({ ... })` runs, the widget will appear on your page.\n\n#### Example: Using the AppBar widget\nAll Veritone apps should also include the AppBar widget.\n\n```javascript\n<body>\n  <div id=\"appBar-widget\" />\n  ...\n</body>\n\nimport { AppBarWidget } from 'veritone-widgets'\nconst appBar = new AppBarWidget({\n  elId: 'appBar-widget',\n  title: 'My App',\n  backgroundColor: '#4caf50',\n  profileMenu: true,\n  appSwitcher: true\n});\n```\n\n## Use via script tag\nFor environments that do not support javascript module imports, widgets can also be included in an app via script tags.\n\n```\n<body>\n  <div id=\"appBar-widget\"></div>\n\n  <script src=\"https://unpkg.com/veritone-widgets@^5/dist/umd/VeritoneApp.js\"></script>\n  <script src=\"https://unpkg.com/veritone-widgets@^5/dist/umd/AppBar.js\"></script>\n\n  <script>\n    const app = VeritoneApp.default();\n\n    const appBar = new AppBar.AppBarWidget({\n      elId: 'appBar-widget',\n      title: 'AppBar Widget',\n      profileMenu: true,\n      appSwitcher: true\n    });\n  </script>\n</body>\n```\n\nAs you can see, each widget is bundled individually to keep file sizes small. In addition, VeritoneApp is separately bundled and required to use widgets. Scripts can be accessed from the the [unpkg](https://unpkg.com/) cdn or downloaded and hosted on your own infrastructure. Unpkg supports [semver ranges](https://docs.npmjs.com/misc/semver), or a specific version can be specified exactly. \n\n\n## Configuring widgets\nNote that the OAuthLoginButton widget in the example above is being configured with five properties: elId, clientId, OAuthURI, onAuthSuccess and onAuthFailure. As mentioned earlier, an elId is required for every widget. OAuthURI, clientId, onAuthSuccess and onAuthFailure are specific configurable properties on the OAuthLoginButton. As it is in the example, configuration is always provided to the widget constructor.\n\n## Widget instance methods\nSome widgets have methods which can be called on an instance of that widget. For example, the FilePicker widget has the methods `pick()` and `cancel()` to open and close the picker dialog, respectively.\n\n```javascript\nthis._picker = new FilePickerWidget({\n  elId: 'file-picker-widget',\n  accept: ['image/*'],\n  multiple: true\n});\n\n...\n// call the pick() instance method on the widget\nthis._picker.pick(files => console.log(files))\n```\n\n#### Where to look for widget options\nIn practice, a widget is just a wrapper around a React component. The easiest way to determine all the possible options for a given widget is to look at the PropTypes of its component. Remember to watch for console warnings which will indicate when an option was configured incorrectly, or when a required option was not provided. \n\n* The \"storybook\" dev environments in veritone-widgets and veritone-react-common have live examples of the various widgets and components.\n\n* The `story.js` file in the root of each widget folder in veritone-widgets and in the root of each component folder in veritone-react-common show the code used to create the storybook pages. If you are using React to write your application, these can be used directly as a basis for your own implementation. \n\n* The PropTypes in the source files of the various widgets (in veritone-widgets) and their respective components (in veritone-react-common) generally correspond to configurable options. Likewise, instance methods for a widget will be defined on its widget class in veritone-widgets.\n\n### Destroying widgets\nTo remove a widget, call `destroy()` on the instance\n```javascript\nconst oauthButton = new OAuthLoginButtonWidget({ ... });\n...\noauthButton.destroy();\n```\n\n## Available widgets\nThe current widgets are:\n\n**AppBar**\n\nThe title and navigation bar common between all Veritone applications. Includes a logo, title, the Veritone app switcher and profile menu.\n\n*Options:*\n\n* title: string, a title to show in the center of the AppBar\n* logoSrc: string, a URL or image (like an SVG) to use as the logo on the left-hand side of the AppBar.\n* backgroundColor: string, a color (in hex) to use for the AppBar background\n* profileMenu: bool, whether or not to show the profile menu\n* appSwitcher: bool, whether or not to show the app switcher menu\n* logo: bool, whether or not to show the veritone logo on the left side of the AppBar\n* onLogout: func, called when the user clicks \"logout\". Apps must implement their own logout logic (usually by deleting the stored oauth token and redirecting or refreshing the page appropriately)\n\n**OAuthLoginButton**\nThe \"Log in with Veritone\" button and corresponding frontend logic to handle the OAuth2 authentication flow.\n\n*Options:*\n* mode: \"implicit\" (default) or \"authCode\", the OAuth grant type you wish to use. \n* OAuthURI: string (required if using `authCode` mode), the URL of your app server's OAuth callback endpoint.\n* redirectUri: string (required if using `implicit` mode), the URL of your app frontend's OAuth callback endpoint.\n* clientID: string (required if using implicit mode), the ID of your Veritone application (found in Developer App)\n* onAuthSuccess: function, a callback that will be called with the OAuth token when the OAuth flow is completed successfully.\n* onAuthFailure: function, a callback that will be called with the error when the OAuth flow fails.\n\n*Requirements*\n\nVeritone provides two OAuth modes to suit different app requirements:\n\n`Implicit`, the default mode, is a frontend-only grant flow with no serverside requirement. _Most apps will use this mode._ This flow is much easier for apps to implement but has the downside of not returning a refresh token; users will need to log in again each time their token expires. \n\n`Auth Code` is a server-based grant flow, which uses your Veritone app's OAuth secret to retrieve both an auth token and refresh token. Auth code flow requires a server because the OAuth secret cannot be exposed to the client; the veritone-widets-server package is an example implementation, and more information can be found in its readme.\n\n**FilePicker**\n\nThe Veritone file upload dialog. Handles selecting and uploading files to S3 for use on the Veritone platform.\n\n*Options:*\n\n* accept: oneOfType([arrayOf(string), string]), file extension(s) or mimetype(s) which the file picker will accept\n* multiple: bool, whether the picker will accept multiple files to upload in a batch\n* width: number, the width of the filepicker dialog\n* height: number, the height of the filepicker dialog\n* allowUrlUpload: bool, whether the filepicker will allow files to be selected by URL\n\n*Instance methods*\n\n* pick(callback): open the filepicker dialog.\n  * callback signature is (result, { warning, error, cancelled })\n    * result: array of result objects, one for each file uploaded\n      * key: string, the filename as stored on the server (may include a UUID)\n      * fileName: string, the original filename\n      * size: number, the file size in bytes\n      * type: string, the mime type of the file\n      * error: string or `false`, the error that prevented the file from uploading, if any\n      * bucket: string, the S3 bucket to which the file was uploaded\n      * expiresInSeconds: number, the length of time the credentials in `getUrl` will be valid, in seconds.\n      * getUrl: string or `null`, the resulting S3 URL, if successful. Includes credentials that are valid for `expires` seconds. \n      * unsignedUrl: string or `null`, the resulting S3 URL, if successful. Does not include credentials and will need to be signed to be used.\n    * warning: string or `false`, a warning message if some (but not all) files failed to upload. A warning indicates that `result` contains some successful upload result objects, and some that were not successful (unsuccessful objects will have `error` populated with an error message, as noted above)\n    * error: string or `false`, an error message, if all files failed to upload.\n    * cancelled: bool, whether or not the filepicker interaction was cancelled (by the user, or by calling cancel()).\n\n* cancel(): close the filepicker dialog. The callback provided to pick() will be called with `(null, { cancelled: true })`.\n\n**Table**\n\nA Veritone table to display data.\n\n*Options:*\n\n* data: arrayOf(object) (required), the dataset\n* columns: arrayOf(shape) (required), a set of defintions for each column to be displayed\n  * shape: object with the following keys:\n    * dataKey: string (required), the data attribute to display within column \n    * header: string, the column heading\n    * transform: function, specifies how column data should be displayed\n      * signature: `(cellValue) => {}`\n    * menu: bool, identifies a column as a menu column\n    * onSelectItem: function, when `menu` is `true`, specifies action(s) to take when a menu option is clicked\n      * signature: `(menuAction) => {}`\n    * cursorPointer: bool, show cursor pointer over table cells\n    * align: string, specifies columm alignment: `['left', 'right', 'center']`\n    * width: number, specifies the width of a column\n* paginate: bool, specifies whether table data should be paginated\n* initialItemsPerPage: number, the number of items to display per page in a paginated table,\n* onCellClick: function, specifies action to take when a table cell is clicked\n  * signature: `(cellRow, cellColumn, cellData) => {}`\n* focusedRow: number, identifies a row to display additional content for\n* renderFocusedRowDetails: function, specifies additional content to display for `focusedRow`\n  * signature: `(focusedRowData) => (string | react component)`\n* onShowCellRange: function, fires when table page or rows (on page) changes;\n  * signature: `({ start: firstRowIndex, end: lastRowIndex }) => {}`\n* onRefreshPageData: function, specifies how to refresh data (if needed)\n  * signature: `() => {}`\n* emptyMessage: string, text to display when table has no data\n\n**EngineOutputExport**\n\nThe Veritone export engine outputs full screen dialog. This will fetch the engines ran on a tdo/recording and allow the user to configure what file types are included in the export\n\n*Options:*\n\n* tdos: arrayOf(shape), array of tdo data objects that engine outputs will be exported for\n  * shape: object with the following keys:\n    * tdoId: string (required), the unique id of a tdo you want to export engine outputs for\n    * mentionId: string, the unique id of a mention you want to export engine outputs for. If a mentionId is provided the engine results of the mention will be returned rather than those of the tdo\n    * startOffsetMs: number, an integer representing the number of milliseconds from the start of the tdo where the exported engine outputs will begin\n    * stopOffsetMs: number, an integer representing the number of milliseconds from the start of the tdo where the exported engine outputs will end\n* onExport: func, specifies action to take when export button is clicked\n  * signature: `(response) => {}`\n* onCancel: func, specifies action to take when cancel button is clicked\n  * signature: `() => {}`\n\n*Instance methods*\n\n* open(): opens the export engine output dialog.\n\n## Running the development environment (storybook)\n1. Set up your local clone of veritone-sdk, following the instructions in the [main readme](https://github.com/veritone/veritone-sdk#development)\n2. cd to this package\n3. In `config.dev.json`, fill in the missing fields with your own app's information (see our [application quick-start guide](http://docs.veritone.com/#/applications/quick-start/) for more info on how to create an app). **Your app's `URL` and `redirect URL` should be set to the same value** for the purposes of dev in this package. This default allows the environment to run with minimal config. \n4. run `yarn start`.\n5. When the build finishes, access the storybook at the url provided in your terminal.\n\n## License\nCopyright 2019, Veritone Inc.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n","scripts":{"lint":"yarn run lint:js && yarn run lint:styles","test":"jest","build":"yarn run build:es && yarn run build:cjs && yarn run build:script-tag","start":"yarn run start:widget-server; yarn run start:storybook","format":"prettier --write \"./src/**/*.{js,scss}\"","lint:js":"eslint src/** --ext .js --max-warnings 0","build:es":"cross-env NODE_ENV=production BABEL_ENV=production-es rollup -c rollup.config.es.js","prebuild":"yarn run clean:build","build:cjs":"cross-env NODE_ENV=production BABEL_ENV=production-cjs rollup -c rollup.config.cjs.js","test:watch":"jest --watch","build:watch":"cross-env NODE_ENV=production rollup -c --watch","clean:build":"rimraf dist","lint:styles":"stylelint \"src/**/*.{scss, css}\"","prepublishOnly":"yarn run test && yarn run lint && yarn run build","build:storybook":"NODE_ENV=production build-storybook -c .storybook -o docs-static","start:storybook":"NODE_ENV=test start-storybook -p 3000 -c .storybook","build:script-tag":"cross-env NODE_ENV=production BABEL_ENV=production-cjs webpack --config webpack.config.script-tag.js","start:widget-server":"yarn workspace veritone-widgets-server run start &"},"_npmUser":{"name":"linh.le","email":"linh.le@setacinq.vn"},"_npmVersion":"6.4.1","description":"As of v5.0.0, this package exports both React \"smart components\" and framework agnostic \"widgets\" for most components. When both are available, the smart component is the default export and the widget is a named export. For example, `import FilePicker, { ","directories":{},"jsnext:main":"dist/bundle-es.js","_nodeVersion":"8.15.1","dependencies":{"rxjs":"^6.5.3","react":"^16.9.0","redux":"^4.0.4","deepmerge":"^4.2.2","react-dom":"^16.9.0","recompose":"^0.30.0","redux-saga":"^1.1.3","react-redux":"^7.1.3","redux-thunk":"^2.3.0","video-react":"~0.13.3","shaka-player":"^2.4.1","babel-runtime":"^6.26.0","babel-polyfill":"^6.26.0","@material-ui/lab":"^4.0.0-alpha.45","react-redux-saga":"^1.0.2","@material-ui/core":"^4.9.5","react-virtualized":"^9.18.5","@material-ui/icons":"^4.9.1","@material-ui/styles":"^4.9.0","immutability-helper":"^3.0.0","@material-ui/pickers":"^3.2.10","redux-dynamic-modules":"^5.2.0","veritone-react-common":"9.0.2","veritone-redux-common":"^3.11.4","veritone-oauth-helpers":"^2.1.0","redux-api-middleware-fixed":"^2.0.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"raf":"^3.4.0","jest":"^22.4.3","faker":"^4.1.0","enzyme":"^3.5.0","eslint":"^4.8.0","rimraf":"^2.6.2","rollup":"^1.17.0","webpack":"^4.0.1","cross-env":"^5.1.1","node-sass":"^4.7.2","stylelint":"^8.2.0","babel-core":"^6.26.0","url-loader":"^0.6.2","sass-loader":"^6.0.6","webpack-cli":"^2.0.9","babel-loader":"^7.1.3","redux-logger":"^3.0.6","redux-devtools":"^3.5.0","@storybook/react":"v3.3.9","redux-mock-store":"^1.5.4","veritone-dev-env":"^3.0.0","rollup-plugin-url":"^2.2.2","identity-obj-proxy":"^3.0.0","redux-validate-fsa":"^0.1.2","rollup-plugin-json":"^4.0.0","babel-plugin-lodash":"^3.3.2","eslint-plugin-react":"^7.8.2","react-test-renderer":"^16.0.0","rollup-plugin-alias":"^1.5.2","rollup-plugin-babel":"^3.0.7","eslint-plugin-import":"^2.10.0","eslint-plugin-lodash":"^2.4.5","babel-plugin-date-fns":"^0.2.1","eslint-plugin-promise":"^3.5.0","rollup-plugin-postcss":"^2.0.3","rollup-plugin-replace":"^2.2.0","@storybook/addon-knobs":"3.3.9","eslint-config-prettier":"^2.6.0","rollup-analyzer-plugin":"^1.2.0","rollup-plugin-commonjs":"^10.0.1","enzyme-adapter-react-16":"^1.0.0","stylelint-config-prettier":"^4.0.0","stylelint-config-standard":"^17.0.0","rollup-plugin-node-resolve":"^5.2.0","babel-plugin-external-helpers":"^6.22.0","babel-plugin-transform-runtime":"^6.23.0","redux-immutable-state-invariant":"^2.1.0","babel-plugin-add-react-displayname":"^0.0.5","babel-plugin-transform-class-properties":"^6.24.1","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-plugin-transform-export-extensions":"^6.22.0","babel-plugin-transform-object-rest-spread":"^6.26.0"},"_npmOperationalInternal":{"tmp":"tmp/veritone-widgets_8.0.7_1583150687358_0.4642056262048735","host":"s3://npm-registry-packages"}},"8.0.8":{"name":"veritone-widgets","version":"8.0.8","license":"Apache-2.0","_id":"veritone-widgets@8.0.8","maintainers":[{"name":"aaronadaniel","email":"aaron.kalel@gmail.com"},{"name":"albertcbrown","email":"al@veritone.com"},{"name":"christopher-gustavsson","email":"chrisgustavsson1@gmail.com"},{"name":"coolmitch","email":"robb.mitch@gmail.com"},{"name":"kkaiser","email":"kkaiser@veritone.com"},{"name":"linh.le","email":"linh.le@setacinq.vn"},{"name":"mikomonday","email":"miko.monday@gmail.com"},{"name":"mmtbkn","email":"mohamedirvine@gmail.com"},{"name":"seta-tuha","email":"tu.ha@setacinq.vn"},{"name":"truong_veritone","email":"ktruong@veritone.com"},{"name":"veritone_dev","email":"dev@veritone.com"},{"name":"veritone-jordan","email":"jbelford@veritone.com"}],"dist":{"shasum":"785825a5eb2479af55031a168e418dca83f8c636","tarball":"https://registry.npmjs.org/veritone-widgets/-/veritone-widgets-8.0.8.tgz","fileCount":184,"integrity":"sha512-4RA8DW4OeaDhuTmYPln2dZhnSvRyu9rM0r8UiFcC8+9NpXoCDDoND142QxNSkq6+VEk0s7dPaRKEl5FyF6CmJA==","signatures":[{"sig":"MEQCIFOWW6sbgOx22kYVnoYAQGTQbLm12OlXivtDoFT67Q0kAiAMcaYJk4DWPJeXbuGZN2vfBDHHKKs+Kk2GOxWU3+02mA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":29359758,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeZ22qCRA9TVsSAnZWagAAGj4P/1APYFsqgk1doiRyZUNQ\nzaoQ44iAE/w3pnNSB9cXPJY/FqGJ2hd3aNafJfO+5eN4mTapuJqAJgyQUk+p\n/cNflyhzuatjC2brlpgu/1Et2FlcwIX9dY0MJV+HtW/nsg5tDye1WNNxnNu8\nLR1Knhnd66ge1v596Fx7jrD0wNt4hxc+pM51bvjUowUkcKcxxeRe+p3frJb0\nh0GNRK753uq//60DfOMxp42kJRmNhLVJgeuGXArANH49kejjtfXT/51epxiD\n4Ck1UD8pSLlgwRTqvOnLDJdV1BTUFmQDmQTKs+UGLjK5u1tmC9nJcGmiemdF\n4vP4bme+hN11KwQTS00ZHbAPoJjalXzkOrnhPfj7Yi9MpSCLFkkWXv+1ctTY\n+xXtbRTVr1n45EMQsNl6A4eIp3EP3I1DkWqw2E+/X5ucMaxGuKZsP1ZvfExD\nrvq+X1zJ2dChanBcgPIfBfD/c6OvmsLygqhKXmS4i/S1xDlmNAbjXUZ3Wrmr\nbhKoJjXjHb+iWhHR1YUCQwtYfBKd0JRemx6SGAwCu6+jfciP0796EhxNOvXl\nGN6uMySaz7J42DmwlIUbgPOgTYZMbvQsWXUvcirjGAsbhQMxe8xvsZNtOtzS\n+4XnWOJSSVeHtRYqmXFnTTfC3mTp4WtdRpXWhTgKcELkVVi9iQL0DthL3RBF\nSsmw\r\n=kXlM\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"setupFiles":["<rootDir>/test/testSuitePolyfills.js","<rootDir>/test/configureEnzyme.js"],"moduleNameMapper":{"^dnd-core$":"dnd-core/dist/cjs","^react-dnd$":"react-dnd/dist/cjs","\\.(css|scss)$":"identity-obj-proxy","^react-dnd-test-utils$":"react-dnd-test-utils/dist/cjs","^react-dnd-test-backend$":"react-dnd-test-backend/dist/cjs","^react-dnd-html5-backend$":"react-dnd-html5-backend/dist/cjs","^react-dnd-touch-backend$":"react-dnd-touch-backend/dist/cjs","\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$":"<rootDir>/test/__mocks__/fileMock.js"},"moduleDirectories":["node_modules","../../node_modules"],"moduleFileExtensions":["js","jsx"]},"main":"dist/bundle-cjs.js","module":"dist/bundle-es.js","readme":"## Quick Start\nAs of v5.0.0, this package exports both React \"smart components\" and framework agnostic \"widgets\" for most components. When both are available, the smart component is the default export and the widget is a named export. For example, `import FilePicker, { FilePickerWidget } from 'veritone-widgets'` imports the smart component as FilePicker and the widget as FilePickerWidget. Smart components usually require redux reducers and sagas to be imported as well, see [Using Smart Components](#using-smart-components)\n\n### Widgets (framework agnostic)\n```javascript\nimport { VeritoneApp, OAuthLoginButtonWidget, AppBarWidget } from 'veritone-widgets'\nconst app = VeritoneApp();\n\n// a \"log in with veritone\" button\nconst oauthButton = new OAuthLoginButtonWidget({\n  // the ID of an existing element in your document where the button will appear\n  elId: 'login-button-widget',\n  // the ID of your Veritone application (found in Developer App)\n  clientId: 'my-client-id',\n  // the route in your app that will handle OAuth responses (more details below)\n  redirectUri: 'https://my-app.com/handle_oauth_callback',\n  // optional callbacks to retrieve the OAuth token for using outside of VeritoneApp:\n  onAuthSuccess: ({ OAuthToken }) => console.log(OAuthToken),\n  onAuthFailure: (error) => console.log(error)\n});\n\n// the Veritone app bar, which will receive auth after the user completes\n// the oauth flow using the OAuthLoginButton\nconst appBar = new AppBarWidget({\n  elId: 'appBar-widget',\n  title: 'My App',\n  backgroundColor: '#4caf50',\n  profileMenu: true,\n  appSwitcher: true\n});\n```\n### React Components\n```javascript\nimport { OAuthLoginButton } from 'veritone-widgets'\n\nrender(\n  <OAuthLoginButton\n    clientId=\"my-client-id\"\n    redirectUri=\"https://my-app.com/handle_oauth_callback\"\n  />\n)\n```\n\n## Using Smart Components\nBecause smart components are not rendered within the VeritoneApp widget framework, they require the user's app to have its own redux store with the components' reducers installed. Often, [sagas](https://redux-saga.js.org/) are also included and must be started as part of the app's root saga.\n\n### Smart component reducer/saga requirements\n#### FilePicker\n* reducer:\n`import {filePickerReducer} from 'veritone-widgets'`\n\n* saga:\n`import {filePickerSaga} from 'veritone-widgets'`\n\n#### Notifications\n* reducer:\n`import {notificationsReducer} from 'veritone-widgets'`\n\n#### EngineOutputExport\n* reducer:\n`import {engineOutputExportReducer} from 'veritone-widgets'`\n\n#### OAuthLoginButton\n* reducers:\nveritone-redux-common `User`, `Auth` and `Config` reducers\n\n### Smart component theme wrapper requirements\nIn your app, import the `VeritoneSDKThemeProvider` from `veritone-react-common`:\n```\nimport {VeritoneSDKThemeProvider } from 'veritone-react-common'\n```\nthen wrap your root component with `<VeritoneSDKThemeProvider>`. If this is not possible, the `@withVeritoneSDKThemeProvider` decorator is provided to wrap individual components.\n\nComponents can be customized using [material-ui themes](https://material-ui.com/customization/themes/) by passing a theme into the `theme` prop of the provider. Passed-in themes will be merged with the default Veritone theme.\n\n## Using Widgets\n### 1. Create an instance of VeritoneApp\n`VeritoneApp` is a container for all the widgets and widget data in an app. Before using any widgets, you need to import and call it. Typically this will be done when your application is loaded and initialized.\n\n```javascript\nimport { VeritoneApp } from 'veritone-widgets'\nconst app = VeritoneApp();\n```\n\n_Note_: `VeritoneApp` creates a singleton, so you do not need to manage the constructed app instance yourself. As long as VeritoneApp() has been imported and called at least once, you can retrieve the same instance by importing and calling VeritoneApp() again elsewhere in your app, if needed.\n\n### 2. Authenticate with Veritone via OAuth\nIf you already have an OAuth token (because your app handles the client-side OAuth flow on its own), provide it by calling `login()` on the returned app instance.\n\n```javascript\nimport { VeritoneApp } from 'veritone-widgets'\nconst app = VeritoneApp().login({\n  OAuthToken: 'my-token-here'\n});\n```\n \nCalling `login()` is usually not necessary; we provide an `OAuthLoginButton` widget, which handles the OAuth token exchange automatically. See the instructions in the next section for more information.\n\n\n### 3. Add widgets to your app\nAfter you've initialized the app framework by calling `VeritoneApp()`, you can begin using widgets.\n\nA \"widget\" is a self-contained frontend component. Widgets always render into an empty element which you provide. They are self-contained and handle rendering a UI, responding to user interactions, making api calls, and so on.\n\nFor example, the `AppBar` widget renders the Veritone application toolbar, fetches the required data to render the Veritone app switcher and profile menu, and allows the developer to configure their application logo and title. When the user uses the app switcher or uses the profile menu to log out, the AppBar widget handles those events.  \n\nWidgets typically can be configured with a variety of options, but always require at least `elId`. This is the id (string) of an element in your document, often a `div`, into which the widget will be rendered. By applying styling to that div, you can position the widget around your app. The element specified in elId must exist in the document before you create the widget that will use it.\n\n#### Example: Using the OAuthLoginButton widget\nThe first widget you are likely to include is `OAuthLoginButton`. `OAuthLoginButton` renders a \"log in with Veritone\" button that your users can click to start the OAuth authentication flow. At the end of that flow, your VeritoneApp instance will be authenticated and able to make requests to our API. You can also retrieve the oauth token to use in your own app.\n\n_Note_: Unless you are handling the OAuth flow on your own and providing the token to VeritoneApp manually, the `OAuthLoginButton` widget is required for Veritone widgets to work.\n\nThe actual code you write to use widgets will vary based on your framework of choice, but in general, it should be as follows.\n\n```javascript\n// assuming VeritoneApp has already been initialized as described earlier, and given a document like:\n<body>\n  ...\n  <div id=\"login-button-widget\" />\n</body>\n\n// you can render the login button to the document like this:\nimport { OAuthLoginButtonWidget } from 'veritone-widgets'\nconst oauthButton = new OAuthLoginButtonWidget({\n  // the ID of an existing element in your document where the button will appear\n  elId: 'login-button-widget',\n  // the ID of your Veritone application (found in Developer App)\n  clientId: 'my-client-id',\n  // the route in your app that will handle OAuth responses (more details below)\n  redirectUri: 'https://my-app.com/handle_oauth_callback',\n  // optional callbacks to retrieve the OAuth token for using outside of VeritoneApp:\n  onAuthSuccess: ({ OAuthToken }) => console.log(OAuthToken),\n  onAuthFailure: (error) => console.log(error)\n});\n```\n\nWhen `new OAuthLoginButtonWidget({ ... })` runs, the widget will appear on your page.\n\n#### Example: Using the AppBar widget\nAll Veritone apps should also include the AppBar widget.\n\n```javascript\n<body>\n  <div id=\"appBar-widget\" />\n  ...\n</body>\n\nimport { AppBarWidget } from 'veritone-widgets'\nconst appBar = new AppBarWidget({\n  elId: 'appBar-widget',\n  title: 'My App',\n  backgroundColor: '#4caf50',\n  profileMenu: true,\n  appSwitcher: true\n});\n```\n\n## Use via script tag\nFor environments that do not support javascript module imports, widgets can also be included in an app via script tags.\n\n```\n<body>\n  <div id=\"appBar-widget\"></div>\n\n  <script src=\"https://unpkg.com/veritone-widgets@^5/dist/umd/VeritoneApp.js\"></script>\n  <script src=\"https://unpkg.com/veritone-widgets@^5/dist/umd/AppBar.js\"></script>\n\n  <script>\n    const app = VeritoneApp.default();\n\n    const appBar = new AppBar.AppBarWidget({\n      elId: 'appBar-widget',\n      title: 'AppBar Widget',\n      profileMenu: true,\n      appSwitcher: true\n    });\n  </script>\n</body>\n```\n\nAs you can see, each widget is bundled individually to keep file sizes small. In addition, VeritoneApp is separately bundled and required to use widgets. Scripts can be accessed from the the [unpkg](https://unpkg.com/) cdn or downloaded and hosted on your own infrastructure. Unpkg supports [semver ranges](https://docs.npmjs.com/misc/semver), or a specific version can be specified exactly. \n\n\n## Configuring widgets\nNote that the OAuthLoginButton widget in the example above is being configured with five properties: elId, clientId, OAuthURI, onAuthSuccess and onAuthFailure. As mentioned earlier, an elId is required for every widget. OAuthURI, clientId, onAuthSuccess and onAuthFailure are specific configurable properties on the OAuthLoginButton. As it is in the example, configuration is always provided to the widget constructor.\n\n## Widget instance methods\nSome widgets have methods which can be called on an instance of that widget. For example, the FilePicker widget has the methods `pick()` and `cancel()` to open and close the picker dialog, respectively.\n\n```javascript\nthis._picker = new FilePickerWidget({\n  elId: 'file-picker-widget',\n  accept: ['image/*'],\n  multiple: true\n});\n\n...\n// call the pick() instance method on the widget\nthis._picker.pick(files => console.log(files))\n```\n\n#### Where to look for widget options\nIn practice, a widget is just a wrapper around a React component. The easiest way to determine all the possible options for a given widget is to look at the PropTypes of its component. Remember to watch for console warnings which will indicate when an option was configured incorrectly, or when a required option was not provided. \n\n* The \"storybook\" dev environments in veritone-widgets and veritone-react-common have live examples of the various widgets and components.\n\n* The `story.js` file in the root of each widget folder in veritone-widgets and in the root of each component folder in veritone-react-common show the code used to create the storybook pages. If you are using React to write your application, these can be used directly as a basis for your own implementation. \n\n* The PropTypes in the source files of the various widgets (in veritone-widgets) and their respective components (in veritone-react-common) generally correspond to configurable options. Likewise, instance methods for a widget will be defined on its widget class in veritone-widgets.\n\n### Destroying widgets\nTo remove a widget, call `destroy()` on the instance\n```javascript\nconst oauthButton = new OAuthLoginButtonWidget({ ... });\n...\noauthButton.destroy();\n```\n\n## Available widgets\nThe current widgets are:\n\n**AppBar**\n\nThe title and navigation bar common between all Veritone applications. Includes a logo, title, the Veritone app switcher and profile menu.\n\n*Options:*\n\n* title: string, a title to show in the center of the AppBar\n* logoSrc: string, a URL or image (like an SVG) to use as the logo on the left-hand side of the AppBar.\n* backgroundColor: string, a color (in hex) to use for the AppBar background\n* profileMenu: bool, whether or not to show the profile menu\n* appSwitcher: bool, whether or not to show the app switcher menu\n* logo: bool, whether or not to show the veritone logo on the left side of the AppBar\n* onLogout: func, called when the user clicks \"logout\". Apps must implement their own logout logic (usually by deleting the stored oauth token and redirecting or refreshing the page appropriately)\n\n**OAuthLoginButton**\nThe \"Log in with Veritone\" button and corresponding frontend logic to handle the OAuth2 authentication flow.\n\n*Options:*\n* mode: \"implicit\" (default) or \"authCode\", the OAuth grant type you wish to use. \n* OAuthURI: string (required if using `authCode` mode), the URL of your app server's OAuth callback endpoint.\n* redirectUri: string (required if using `implicit` mode), the URL of your app frontend's OAuth callback endpoint.\n* clientID: string (required if using implicit mode), the ID of your Veritone application (found in Developer App)\n* onAuthSuccess: function, a callback that will be called with the OAuth token when the OAuth flow is completed successfully.\n* onAuthFailure: function, a callback that will be called with the error when the OAuth flow fails.\n\n*Requirements*\n\nVeritone provides two OAuth modes to suit different app requirements:\n\n`Implicit`, the default mode, is a frontend-only grant flow with no serverside requirement. _Most apps will use this mode._ This flow is much easier for apps to implement but has the downside of not returning a refresh token; users will need to log in again each time their token expires. \n\n`Auth Code` is a server-based grant flow, which uses your Veritone app's OAuth secret to retrieve both an auth token and refresh token. Auth code flow requires a server because the OAuth secret cannot be exposed to the client; the veritone-widets-server package is an example implementation, and more information can be found in its readme.\n\n**FilePicker**\n\nThe Veritone file upload dialog. Handles selecting and uploading files to S3 for use on the Veritone platform.\n\n*Options:*\n\n* accept: oneOfType([arrayOf(string), string]), file extension(s) or mimetype(s) which the file picker will accept\n* multiple: bool, whether the picker will accept multiple files to upload in a batch\n* width: number, the width of the filepicker dialog\n* height: number, the height of the filepicker dialog\n* allowUrlUpload: bool, whether the filepicker will allow files to be selected by URL\n\n*Instance methods*\n\n* pick(callback): open the filepicker dialog.\n  * callback signature is (result, { warning, error, cancelled })\n    * result: array of result objects, one for each file uploaded\n      * key: string, the filename as stored on the server (may include a UUID)\n      * fileName: string, the original filename\n      * size: number, the file size in bytes\n      * type: string, the mime type of the file\n      * error: string or `false`, the error that prevented the file from uploading, if any\n      * bucket: string, the S3 bucket to which the file was uploaded\n      * expiresInSeconds: number, the length of time the credentials in `getUrl` will be valid, in seconds.\n      * getUrl: string or `null`, the resulting S3 URL, if successful. Includes credentials that are valid for `expires` seconds. \n      * unsignedUrl: string or `null`, the resulting S3 URL, if successful. Does not include credentials and will need to be signed to be used.\n    * warning: string or `false`, a warning message if some (but not all) files failed to upload. A warning indicates that `result` contains some successful upload result objects, and some that were not successful (unsuccessful objects will have `error` populated with an error message, as noted above)\n    * error: string or `false`, an error message, if all files failed to upload.\n    * cancelled: bool, whether or not the filepicker interaction was cancelled (by the user, or by calling cancel()).\n\n* cancel(): close the filepicker dialog. The callback provided to pick() will be called with `(null, { cancelled: true })`.\n\n**Table**\n\nA Veritone table to display data.\n\n*Options:*\n\n* data: arrayOf(object) (required), the dataset\n* columns: arrayOf(shape) (required), a set of defintions for each column to be displayed\n  * shape: object with the following keys:\n    * dataKey: string (required), the data attribute to display within column \n    * header: string, the column heading\n    * transform: function, specifies how column data should be displayed\n      * signature: `(cellValue) => {}`\n    * menu: bool, identifies a column as a menu column\n    * onSelectItem: function, when `menu` is `true`, specifies action(s) to take when a menu option is clicked\n      * signature: `(menuAction) => {}`\n    * cursorPointer: bool, show cursor pointer over table cells\n    * align: string, specifies columm alignment: `['left', 'right', 'center']`\n    * width: number, specifies the width of a column\n* paginate: bool, specifies whether table data should be paginated\n* initialItemsPerPage: number, the number of items to display per page in a paginated table,\n* onCellClick: function, specifies action to take when a table cell is clicked\n  * signature: `(cellRow, cellColumn, cellData) => {}`\n* focusedRow: number, identifies a row to display additional content for\n* renderFocusedRowDetails: function, specifies additional content to display for `focusedRow`\n  * signature: `(focusedRowData) => (string | react component)`\n* onShowCellRange: function, fires when table page or rows (on page) changes;\n  * signature: `({ start: firstRowIndex, end: lastRowIndex }) => {}`\n* onRefreshPageData: function, specifies how to refresh data (if needed)\n  * signature: `() => {}`\n* emptyMessage: string, text to display when table has no data\n\n**EngineOutputExport**\n\nThe Veritone export engine outputs full screen dialog. This will fetch the engines ran on a tdo/recording and allow the user to configure what file types are included in the export\n\n*Options:*\n\n* tdos: arrayOf(shape), array of tdo data objects that engine outputs will be exported for\n  * shape: object with the following keys:\n    * tdoId: string (required), the unique id of a tdo you want to export engine outputs for\n    * mentionId: string, the unique id of a mention you want to export engine outputs for. If a mentionId is provided the engine results of the mention will be returned rather than those of the tdo\n    * startOffsetMs: number, an integer representing the number of milliseconds from the start of the tdo where the exported engine outputs will begin\n    * stopOffsetMs: number, an integer representing the number of milliseconds from the start of the tdo where the exported engine outputs will end\n* onExport: func, specifies action to take when export button is clicked\n  * signature: `(response) => {}`\n* onCancel: func, specifies action to take when cancel button is clicked\n  * signature: `() => {}`\n\n*Instance methods*\n\n* open(): opens the export engine output dialog.\n\n## Running the development environment (storybook)\n1. Set up your local clone of veritone-sdk, following the instructions in the [main readme](https://github.com/veritone/veritone-sdk#development)\n2. cd to this package\n3. In `config.dev.json`, fill in the missing fields with your own app's information (see our [application quick-start guide](http://docs.veritone.com/#/applications/quick-start/) for more info on how to create an app). **Your app's `URL` and `redirect URL` should be set to the same value** for the purposes of dev in this package. This default allows the environment to run with minimal config. \n4. run `yarn start`.\n5. When the build finishes, access the storybook at the url provided in your terminal.\n\n## License\nCopyright 2019, Veritone Inc.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n","scripts":{"lint":"yarn run lint:js && yarn run lint:styles","test":"jest","build":"yarn run build:es && yarn run build:cjs && yarn run build:script-tag","start":"yarn run start:widget-server; yarn run start:storybook","format":"prettier --write \"./src/**/*.{js,scss}\"","lint:js":"eslint src/** --ext .js --max-warnings 0","build:es":"cross-env NODE_ENV=production BABEL_ENV=production-es rollup -c rollup.config.es.js","prebuild":"yarn run clean:build","build:cjs":"cross-env NODE_ENV=production BABEL_ENV=production-cjs rollup -c rollup.config.cjs.js","test:watch":"jest --watch","build:watch":"cross-env NODE_ENV=production rollup -c --watch","clean:build":"rimraf dist","lint:styles":"stylelint \"src/**/*.{scss, css}\"","prepublishOnly":"yarn run test && yarn run lint && yarn run build","build:storybook":"NODE_ENV=production build-storybook -c .storybook -o docs-static","start:storybook":"NODE_ENV=test start-storybook -p 3000 -c .storybook","build:script-tag":"cross-env NODE_ENV=production BABEL_ENV=production-cjs webpack --config webpack.config.script-tag.js","start:widget-server":"yarn workspace veritone-widgets-server run start &"},"_npmUser":{"name":"linh.le","email":"linh.le@setacinq.vn"},"_npmVersion":"6.13.7","description":"As of v5.0.0, this package exports both React \"smart components\" and framework agnostic \"widgets\" for most components. When both are available, the smart component is the default export and the widget is a named export. For example, `import FilePicker, { ","directories":{},"jsnext:main":"dist/bundle-es.js","_nodeVersion":"8.15.1","dependencies":{"rxjs":"^6.5.3","react":"^16.9.0","redux":"^4.0.4","deepmerge":"^4.2.2","react-dom":"^16.9.0","recompose":"^0.30.0","redux-saga":"^1.1.3","react-redux":"^7.1.3","redux-thunk":"^2.3.0","video-react":"~0.13.3","shaka-player":"^2.4.1","babel-runtime":"^6.26.0","babel-polyfill":"^6.26.0","@material-ui/lab":"^4.0.0-alpha.45","react-redux-saga":"^1.0.2","@material-ui/core":"^4.9.5","react-virtualized":"^9.18.5","@material-ui/icons":"^4.9.1","@material-ui/styles":"^4.9.0","immutability-helper":"^3.0.0","@material-ui/pickers":"^3.2.10","redux-dynamic-modules":"^5.2.0","veritone-react-common":"^9.0.3","veritone-redux-common":"^3.11.4","veritone-oauth-helpers":"^2.1.0","redux-api-middleware-fixed":"^2.0.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"raf":"^3.4.0","jest":"^22.4.3","faker":"^4.1.0","enzyme":"^3.5.0","eslint":"^4.8.0","rimraf":"^2.6.2","rollup":"^1.17.0","webpack":"^4.0.1","cross-env":"^5.1.1","node-sass":"^4.7.2","stylelint":"^8.2.0","babel-core":"^6.26.0","url-loader":"^0.6.2","sass-loader":"^6.0.6","webpack-cli":"^2.0.9","babel-loader":"^7.1.3","redux-logger":"^3.0.6","redux-devtools":"^3.5.0","@storybook/react":"v3.3.9","redux-mock-store":"^1.5.4","veritone-dev-env":"^3.0.0","rollup-plugin-url":"^2.2.2","identity-obj-proxy":"^3.0.0","redux-validate-fsa":"^0.1.2","rollup-plugin-json":"^4.0.0","babel-plugin-lodash":"^3.3.2","eslint-plugin-react":"^7.8.2","react-test-renderer":"^16.0.0","rollup-plugin-alias":"^1.5.2","rollup-plugin-babel":"^3.0.7","eslint-plugin-import":"^2.10.0","eslint-plugin-lodash":"^2.4.5","babel-plugin-date-fns":"^0.2.1","eslint-plugin-promise":"^3.5.0","rollup-plugin-postcss":"^2.0.3","rollup-plugin-replace":"^2.2.0","@storybook/addon-knobs":"3.3.9","eslint-config-prettier":"^2.6.0","rollup-analyzer-plugin":"^1.2.0","rollup-plugin-commonjs":"^10.0.1","enzyme-adapter-react-16":"^1.0.0","stylelint-config-prettier":"^4.0.0","stylelint-config-standard":"^17.0.0","rollup-plugin-node-resolve":"^5.2.0","babel-plugin-external-helpers":"^6.22.0","babel-plugin-transform-runtime":"^6.23.0","redux-immutable-state-invariant":"^2.1.0","babel-plugin-add-react-displayname":"^0.0.5","babel-plugin-transform-class-properties":"^6.24.1","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-plugin-transform-export-extensions":"^6.22.0","babel-plugin-transform-object-rest-spread":"^6.26.0"},"_npmOperationalInternal":{"tmp":"tmp/veritone-widgets_8.0.8_1583836585816_0.07329047586762516","host":"s3://npm-registry-packages"}},"8.0.9":{"name":"veritone-widgets","version":"8.0.9","license":"Apache-2.0","_id":"veritone-widgets@8.0.9","maintainers":[{"name":"aaronadaniel","email":"aaron.kalel@gmail.com"},{"name":"albertcbrown","email":"al@veritone.com"},{"name":"christopher-gustavsson","email":"chrisgustavsson1@gmail.com"},{"name":"coolmitch","email":"robb.mitch@gmail.com"},{"name":"kkaiser","email":"kkaiser@veritone.com"},{"name":"linh.le","email":"linh.le@setacinq.vn"},{"name":"mikomonday","email":"miko.monday@gmail.com"},{"name":"mmtbkn","email":"mohamedirvine@gmail.com"},{"name":"seta-tuha","email":"tu.ha@setacinq.vn"},{"name":"truong_veritone","email":"ktruong@veritone.com"},{"name":"veritone_dev","email":"dev@veritone.com"},{"name":"veritone-jordan","email":"jbelford@veritone.com"}],"dist":{"shasum":"ff905fe0c82fdf02d1e8a999983ad7590105a253","tarball":"https://registry.npmjs.org/veritone-widgets/-/veritone-widgets-8.0.9.tgz","fileCount":146,"integrity":"sha512-RWlxrp0QA/ZsHvsYFAlXyz48p0X9CZxtgtROuOHc/T8tS1BCWT2YE1wqbiJSElO2AaPnLm5r6EdwQmPEfdWVgA==","signatures":[{"sig":"MEUCIGiN7g5HdADEDf1L0Kob2f7JxkV3av1/sXYjcpMFXRNCAiEAjZyubUIdTO95GnLyGx1QORt8BCV2qNcaHp7dKJJ5sTc=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":57049534,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeb9jjCRA9TVsSAnZWagAAj1MQAJXxxY4iFI8j8SjwbaGf\ny9kB693VisyD2vBheB4/DQyktggggh39oC6g5xyy1FApt6icpVFq3pzKPXj4\nXo45rfDxjglju+FNr0XzVoY0Gx1+ygypWUQbVBFuOatDqol5X9L/RFH+kfYF\n49dkInUOfdOogTFO/nButFnMipfVL3TWRhRfkYQ4xaCTYaJ97plqC1Q5lRW4\nyQOoTHx1DvB0Su6m1B5nFBlS1wu7MYgQgFAlY+SrRXmHA/sKb2sBoEtCnsO1\noPJAGbtq7sL1+fgxycNHW+H6RyuVfelMN3byJ6AB++WeuFkMOhaC9QZJDsfx\nNwDfsvF2Ng59pL5wMRHDbiRwZbrDiV5tT1BZuCn6uv/MgR/urVjGnb2lSfF2\n9ZpVPDMtkt9t+v9HxhLpwS2JRAOv6KMSdRx+MTXRWdmYCAIzLhERuN2yRxtP\nsNvKiAcuuIhhQAwQtn1SNgFb2Nuhet/h19yHgdTVdnLnplCqQ2xFN9dsmeAK\nGzZdnx6bfzv+9Bh5uC2fYlQ+3EOmdtqBHus2R4/Rq/nbT7hSayONyRag9oeH\nmsTrQxoRPQ3BgM7eGxuK1VNHeGJjKEb/zDoo73FQEt67Paip+dFGymguQxfr\n6eOMzbXABDb2N/XD7keoJ1Y2JrtS2yS5qGqqhdT6C8EmQJ0rzoEt98vdhfGY\nuvrN\r\n=NFzW\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"setupFiles":["<rootDir>/test/testSuitePolyfills.js","<rootDir>/test/configureEnzyme.js"],"moduleNameMapper":{"\\.(css|scss)$":"identity-obj-proxy","\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$":"<rootDir>/test/__mocks__/fileMock.js"},"moduleDirectories":["node_modules"],"moduleFileExtensions":["js","jsx"]},"main":"dist/bundle-cjs.js","module":"dist/bundle-es.js","scripts":{"lint":"yarn run lint:js && yarn run lint:styles","test":"jest","build":"yarn run build:es && yarn run build:cjs && yarn run build:script-tag","start":"yarn run start:widget-server; yarn run start:storybook","format":"prettier --write \"./src/**/*.{js,scss}\"","lint:js":"eslint src/** --ext .js --max-warnings 0","build:es":"cross-env NODE_ENV=production BABEL_ENV=production-es rollup -c rollup.config.es.js","prebuild":"yarn run clean:build","build:cjs":"cross-env NODE_ENV=production BABEL_ENV=production-cjs rollup -c rollup.config.cjs.js","test:watch":"jest --watch","build:watch":"cross-env NODE_ENV=production rollup -c --watch","clean:build":"rimraf dist","lint:styles":"stylelint \"src/**/*.{scss, css}\"","build:storybook":"NODE_ENV=production build-storybook -c .storybook -o docs-static","start:storybook":"NODE_ENV=test start-storybook -p 3000 -c .storybook","build:script-tag":"cross-env NODE_ENV=production BABEL_ENV=production-cjs webpack --config webpack.config.script-tag.js","start:widget-server":"yarn workspace veritone-widgets-server run start &"},"_npmUser":{"name":"mmtbkn","email":"mohamedirvine@gmail.com"},"_npmVersion":"6.11.3","description":"As of v5.0.0, this package exports both React \"smart components\" and framework agnostic \"widgets\" for most components. When both are available, the smart component is the default export and the widget is a named export. For example, `import FilePicker, { ","directories":{},"jsnext:main":"dist/bundle-es.js","_nodeVersion":"8.11.2","dependencies":{"react":"^16.3.0","redux":"^4.0.0","react-dom":"^16.3.0","recompose":"^0.30.0","redux-saga":"^0.15.6","react-redux":"^5.0.6","redux-thunk":"^2.2.0","video-react":"~0.13.3","shaka-player":"^2.4.1","babel-runtime":"^6.26.0","babel-polyfill":"^6.26.0","react-redux-saga":"^1.0.2","@material-ui/core":"^1.0.0","react-virtualized":"^9.18.5","@material-ui/icons":"^2.0.0","immutability-helper":"^3.0.0","veritone-react-common":"^8.0.2","veritone-redux-common":"^3.7.0","veritone-oauth-helpers":"^2.1.0","redux-api-middleware-fixed":"^2.0.0"},"_hasShrinkwrap":false,"devDependencies":{"raf":"^3.4.0","jest":"^22.4.3","faker":"^4.1.0","enzyme":"^3.5.0","eslint":"^4.8.0","rimraf":"^2.6.2","rollup":"^0.55.1","webpack":"^4.0.1","cross-env":"^5.1.1","node-sass":"^4.7.2","stylelint":"^8.2.0","babel-core":"^6.26.0","url-loader":"^0.6.2","sass-loader":"^6.0.6","webpack-cli":"^2.0.9","babel-loader":"^7.1.3","redux-logger":"^3.0.6","redux-devtools":"^3.4.0","@storybook/react":"v3.3.9","redux-mock-store":"^1.3.0","veritone-dev-env":"^3.0.0","rollup-plugin-url":"^1.3.0","identity-obj-proxy":"^3.0.0","redux-validate-fsa":"^0.1.2","rollup-plugin-json":"^2.3.0","babel-plugin-lodash":"^3.3.2","eslint-plugin-react":"^7.8.2","react-test-renderer":"^16.0.0","rollup-plugin-alias":"^1.4.0","rollup-plugin-babel":"^3.0.3","eslint-plugin-import":"^2.10.0","eslint-plugin-lodash":"^2.4.5","babel-plugin-date-fns":"^0.1.0","eslint-plugin-promise":"^3.5.0","rollup-plugin-postcss":"^1.2.8","rollup-plugin-replace":"^2.0.0","@storybook/addon-knobs":"3.3.9","eslint-config-prettier":"^2.6.0","rollup-analyzer-plugin":"^1.1.1","rollup-plugin-commonjs":"^8.3.0","enzyme-adapter-react-16":"^1.0.0","stylelint-config-prettier":"^4.0.0","stylelint-config-standard":"^17.0.0","rollup-plugin-node-resolve":"^3.0.2","babel-plugin-external-helpers":"^6.22.0","babel-plugin-transform-runtime":"^6.23.0","redux-immutable-state-invariant":"^2.1.0","babel-plugin-add-react-displayname":"^0.0.5","babel-plugin-transform-class-properties":"^6.24.1","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-plugin-transform-export-extensions":"^6.22.0","babel-plugin-transform-object-rest-spread":"^6.26.0"},"_npmOperationalInternal":{"tmp":"tmp/veritone-widgets_8.0.9_1584388322165_0.17483830812345258","host":"s3://npm-registry-packages"}},"8.0.10":{"name":"veritone-widgets","version":"8.0.10","license":"Apache-2.0","_id":"veritone-widgets@8.0.10","maintainers":[{"name":"aaronadaniel","email":"aaron.kalel@gmail.com"},{"name":"albertcbrown","email":"al@veritone.com"},{"name":"christopher-gustavsson","email":"chrisgustavsson1@gmail.com"},{"name":"coolmitch","email":"robb.mitch@gmail.com"},{"name":"kkaiser","email":"kkaiser@veritone.com"},{"name":"linh.le","email":"linh.le@setacinq.vn"},{"name":"mikomonday","email":"miko.monday@gmail.com"},{"name":"mmtbkn","email":"mohamedirvine@gmail.com"},{"name":"seta-tuha","email":"tu.ha@setacinq.vn"},{"name":"truong_veritone","email":"ktruong@veritone.com"},{"name":"veritone_dev","email":"dev@veritone.com"},{"name":"veritone-jordan","email":"jbelford@veritone.com"}],"dist":{"shasum":"d79fc4f55ca14743ac8e41457b65c7be706fe317","tarball":"https://registry.npmjs.org/veritone-widgets/-/veritone-widgets-8.0.10.tgz","fileCount":146,"integrity":"sha512-6rFNjWwmndtpDclEDorx+T4/cMr4vDkHgvHA6yb69CUV1Lgk2ajzTQlZUd7zf1W21kmwv/tt6+OnhqMweokvsw==","signatures":[{"sig":"MEUCIEn51nCnmvHl45S0b6n2Yl23U4isONa2E/BsjB2tjtG9AiEAzJikyi1oY8AWxzF3mZ5tlKofPQ7UmlvNoHPAnwVKHxY=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":57049570,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeb9qACRA9TVsSAnZWagAA1qcP/iGv+TOjR/Z8roV8Mma1\ngx0RaIwlMXdAqU3xgHpsgjs49vbf4Hu6KQ+LPrLLKRtBnZKKss5yQDtEnIJI\ndLz8LwRFuhb+AsJVhdpHO4CcCklR252D/qZR+hd4pYx1UcbdQw9B2DQ3Lf7l\nxkLcoHnNjcqIC9pgFLdrlVwTr7Bj2FDu5U1mLjEEIAFTcklJdf6CoWQqt8Yv\ni7hctNhfWLtQlpe7duiu8sm24nEeyt4DfTy7jrG5s8M17mpRPxpvOmbwQIN1\nIpCn3iQuBdloXlCvdECkpKTE5J/LTaVOZRbQNxkE/bI6oaQf6zyPZU2RiVoj\nGFZRI3yt3McG2eEzjFvHWK0XA5mfdUGk3NuDDUkXAQdt60QhzChHoB/4P2Fp\nE3UHDBq10CZ8SExbv3A7qqmi28LVytDSYaLMfQf4JYJEv8R8ejgh1FSHZhxl\nLJUkz+mMrSkVIBt7Gs1dSArqnDg2YryNHycOyuA9/qQDZ4dO1db0tLHGQBta\nLedNMxxeLBofelXBCwNE/xKqsqRWU3MzwMv3RKnjaiyoMujQckZEkdSI1JXK\nWrCMbdzRatcvB3OhKxwg9X6Al1iV5k0m6aGkuIcgF6LrJWI5FIVkqGdNx1d/\nSLyLRc3KSQNbPdzdMULNwaLbObnqxD+XaJ/7X+5A5gn2lCNVjR+LWhkb2Wl5\nBwJx\r\n=VpS8\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"setupFiles":["<rootDir>/test/testSuitePolyfills.js","<rootDir>/test/configureEnzyme.js"],"moduleNameMapper":{"\\.(css|scss)$":"identity-obj-proxy","\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$":"<rootDir>/test/__mocks__/fileMock.js"},"moduleDirectories":["node_modules"],"moduleFileExtensions":["js","jsx"]},"main":"dist/bundle-cjs.js","module":"dist/bundle-es.js","scripts":{"lint":"yarn run lint:js && yarn run lint:styles","test":"jest","build":"yarn run build:es && yarn run build:cjs && yarn run build:script-tag","start":"yarn run start:widget-server; yarn run start:storybook","format":"prettier --write \"./src/**/*.{js,scss}\"","lint:js":"eslint src/** --ext .js --max-warnings 0","build:es":"cross-env NODE_ENV=production BABEL_ENV=production-es rollup -c rollup.config.es.js","prebuild":"yarn run clean:build","build:cjs":"cross-env NODE_ENV=production BABEL_ENV=production-cjs rollup -c rollup.config.cjs.js","test:watch":"jest --watch","build:watch":"cross-env NODE_ENV=production rollup -c --watch","clean:build":"rimraf dist","lint:styles":"stylelint \"src/**/*.{scss, css}\"","build:storybook":"NODE_ENV=production build-storybook -c .storybook -o docs-static","start:storybook":"NODE_ENV=test start-storybook -p 3000 -c .storybook","build:script-tag":"cross-env NODE_ENV=production BABEL_ENV=production-cjs webpack --config webpack.config.script-tag.js","start:widget-server":"yarn workspace veritone-widgets-server run start &"},"_npmUser":{"name":"mmtbkn","email":"mohamedirvine@gmail.com"},"_npmVersion":"6.11.3","description":"As of v5.0.0, this package exports both React \"smart components\" and framework agnostic \"widgets\" for most components. When both are available, the smart component is the default export and the widget is a named export. For example, `import FilePicker, { ","directories":{},"jsnext:main":"dist/bundle-es.js","_nodeVersion":"8.11.2","dependencies":{"react":"^16.3.0","redux":"^4.0.0","react-dom":"^16.3.0","recompose":"^0.30.0","redux-saga":"^0.15.6","react-redux":"^5.0.6","redux-thunk":"^2.2.0","video-react":"~0.13.3","shaka-player":"^2.4.1","babel-runtime":"^6.26.0","babel-polyfill":"^6.26.0","react-redux-saga":"^1.0.2","@material-ui/core":"^1.0.0","react-virtualized":"^9.18.5","@material-ui/icons":"^2.0.0","immutability-helper":"^3.0.0","veritone-react-common":"^8.0.2","veritone-redux-common":"^3.7.0","veritone-oauth-helpers":"^2.1.0","redux-api-middleware-fixed":"^2.0.0"},"_hasShrinkwrap":false,"devDependencies":{"raf":"^3.4.0","jest":"^22.4.3","faker":"^4.1.0","enzyme":"^3.5.0","eslint":"^4.8.0","rimraf":"^2.6.2","rollup":"^0.55.1","webpack":"^4.0.1","cross-env":"^5.1.1","node-sass":"^4.7.2","stylelint":"^8.2.0","babel-core":"^6.26.0","url-loader":"^0.6.2","sass-loader":"^6.0.6","webpack-cli":"^2.0.9","babel-loader":"^7.1.3","redux-logger":"^3.0.6","redux-devtools":"^3.4.0","@storybook/react":"v3.3.9","redux-mock-store":"^1.3.0","veritone-dev-env":"^3.0.0","rollup-plugin-url":"^1.3.0","identity-obj-proxy":"^3.0.0","redux-validate-fsa":"^0.1.2","rollup-plugin-json":"^2.3.0","babel-plugin-lodash":"^3.3.2","eslint-plugin-react":"^7.8.2","react-test-renderer":"^16.0.0","rollup-plugin-alias":"^1.4.0","rollup-plugin-babel":"^3.0.3","eslint-plugin-import":"^2.10.0","eslint-plugin-lodash":"^2.4.5","babel-plugin-date-fns":"^0.1.0","eslint-plugin-promise":"^3.5.0","rollup-plugin-postcss":"^1.2.8","rollup-plugin-replace":"^2.0.0","@storybook/addon-knobs":"3.3.9","eslint-config-prettier":"^2.6.0","rollup-analyzer-plugin":"^1.1.1","rollup-plugin-commonjs":"^8.3.0","enzyme-adapter-react-16":"^1.0.0","stylelint-config-prettier":"^4.0.0","stylelint-config-standard":"^17.0.0","rollup-plugin-node-resolve":"^3.0.2","babel-plugin-external-helpers":"^6.22.0","babel-plugin-transform-runtime":"^6.23.0","redux-immutable-state-invariant":"^2.1.0","babel-plugin-add-react-displayname":"^0.0.5","babel-plugin-transform-class-properties":"^6.24.1","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-plugin-transform-export-extensions":"^6.22.0","babel-plugin-transform-object-rest-spread":"^6.26.0"},"_npmOperationalInternal":{"tmp":"tmp/veritone-widgets_8.0.10_1584388735507_0.6901403041245597","host":"s3://npm-registry-packages"}},"9.0.0":{"name":"veritone-widgets","version":"9.0.0","license":"Apache-2.0","_id":"veritone-widgets@9.0.0","maintainers":[{"name":"aaronadaniel","email":"aaron.kalel@gmail.com"},{"name":"albertcbrown","email":"al@veritone.com"},{"name":"christopher-gustavsson","email":"chrisgustavsson1@gmail.com"},{"name":"coolmitch","email":"robb.mitch@gmail.com"},{"name":"kkaiser","email":"kkaiser@veritone.com"},{"name":"linh.le","email":"linh.le@setacinq.vn"},{"name":"mikomonday","email":"miko.monday@gmail.com"},{"name":"mmtbkn","email":"mohamedirvine@gmail.com"},{"name":"seta-tuha","email":"tu.ha@setacinq.vn"},{"name":"truong_veritone","email":"ktruong@veritone.com"},{"name":"veritone_dev","email":"dev@veritone.com"},{"name":"veritone-jordan","email":"jbelford@veritone.com"}],"dist":{"shasum":"b0fdb5125b30b44d656085bdac2fea363b11a185","tarball":"https://registry.npmjs.org/veritone-widgets/-/veritone-widgets-9.0.0.tgz","fileCount":186,"integrity":"sha512-u8UlQQzSTQsna7W7I1Bto8Kql2nn269UfqyPoxewpEm/kdkH2ijrja0RrT8wtIT59wF4lAaHsbd4fPNwLP8odw==","signatures":[{"sig":"MEQCIHG0qtzkiL7mbcmqknj0ob2OHhlGzJf6RSS/61NFvZIQAiBNcyTITN27BXjxxBtRlSco2ceR+SIczwFU0Hr2/TNRzg==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":28343115,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJecc0NCRA9TVsSAnZWagAA/xgQAJ7OrnMir6FN8OTRkIWA\nDjETQtUiGVnFM7/z8bCjaYL+kLv4AfQz072L5xzsgGWrvXIVM/1Bks6Jtk2E\nzZUC7m9zhBToJEJ1OX1niuMYHi7oaDrlHJ549QEgDjzNLYFXt5lSs/7mcvjo\nPESogj0F+npmXyEDEnIfmO4DVMjhhM3e/BgBpk2ZjK0awsjmWvCVVRgyPkfn\nx44kofqRVbmR6TGpZJh5Ztriy1OiSTgFAL5zrlv9F6NBrTz+At3Xn36D11Tm\nXYjcotJqujxpfmuF6SI7TZNl7Zx+h59SqBfwcIB8isg1ZkN4iKPvlQzE2FWi\n54cjeB6uuN9v6/s3mGO+pKPgDghzIPRWf8xcI9Dpw1LN+KJRNb22I5MWghxc\nYOQZVdAy4f03K7QE79EzmxotiHD95wl09e3bPrmWvs6HQ25bQahYqf5Cxdv2\nvwBaXihL2fSPBMqYd00xZ7cb4cSj4iApVLq5NAH00SRMt4ER1J9jS6x4byPH\nwb9b28qB/FCFPkpCkRDf7Dy9ten0JWNWQTwkV8Bf75CrQ0wECKB9oeg7Ewz3\n3wgMrsYwIutZNFAmTdzqTwTZUc7yRqs7Wg9uIEMmq6oHH2mt6UWwBvQDx2AX\nW3ypOkuLW3sDCEcd4MORtHjCYPKlr2JTvkXkr5xzZZh9NvdEtKK54/EFNGJT\n99lq\r\n=TnAh\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"setupFiles":["<rootDir>/test/testSuitePolyfills.js","<rootDir>/test/configureEnzyme.js"],"moduleNameMapper":{"^dnd-core$":"dnd-core/dist/cjs","^react-dnd$":"react-dnd/dist/cjs","\\.(css|scss)$":"identity-obj-proxy","^react-dnd-test-utils$":"react-dnd-test-utils/dist/cjs","^react-dnd-test-backend$":"react-dnd-test-backend/dist/cjs","^react-dnd-html5-backend$":"react-dnd-html5-backend/dist/cjs","^react-dnd-touch-backend$":"react-dnd-touch-backend/dist/cjs","\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$":"<rootDir>/test/__mocks__/fileMock.js"},"moduleDirectories":["node_modules","../../node_modules"],"moduleFileExtensions":["js","jsx"]},"main":"dist/bundle-cjs.js","module":"dist/bundle-es.js","readme":"## Quick Start\nAs of v5.0.0, this package exports both React \"smart components\" and framework agnostic \"widgets\" for most components. When both are available, the smart component is the default export and the widget is a named export. For example, `import FilePicker, { FilePickerWidget } from 'veritone-widgets'` imports the smart component as FilePicker and the widget as FilePickerWidget. Smart components usually require redux reducers and sagas to be imported as well, see [Using Smart Components](#using-smart-components)\n\n### Widgets (framework agnostic)\n```javascript\nimport { VeritoneApp, OAuthLoginButtonWidget, AppBarWidget } from 'veritone-widgets'\nconst app = VeritoneApp();\n\n// a \"log in with veritone\" button\nconst oauthButton = new OAuthLoginButtonWidget({\n  // the ID of an existing element in your document where the button will appear\n  elId: 'login-button-widget',\n  // the ID of your Veritone application (found in Developer App)\n  clientId: 'my-client-id',\n  // the route in your app that will handle OAuth responses (more details below)\n  redirectUri: 'https://my-app.com/handle_oauth_callback',\n  // optional callbacks to retrieve the OAuth token for using outside of VeritoneApp:\n  onAuthSuccess: ({ OAuthToken }) => console.log(OAuthToken),\n  onAuthFailure: (error) => console.log(error)\n});\n\n// the Veritone app bar, which will receive auth after the user completes\n// the oauth flow using the OAuthLoginButton\nconst appBar = new AppBarWidget({\n  elId: 'appBar-widget',\n  title: 'My App',\n  backgroundColor: '#4caf50',\n  profileMenu: true,\n  appSwitcher: true\n});\n```\n### React Components\n```javascript\nimport { OAuthLoginButton } from 'veritone-widgets'\n\nrender(\n  <OAuthLoginButton\n    clientId=\"my-client-id\"\n    redirectUri=\"https://my-app.com/handle_oauth_callback\"\n  />\n)\n```\n\n## Using Smart Components\nBecause smart components are not rendered within the VeritoneApp widget framework, they require the user's app to have its own redux store with the components' reducers installed. Often, [sagas](https://redux-saga.js.org/) are also included and must be started as part of the app's root saga.\n\n### Smart component reducer/saga requirements\n#### FilePicker\n* reducer:\n`import {filePickerReducer} from 'veritone-widgets'`\n\n* saga:\n`import {filePickerSaga} from 'veritone-widgets'`\n\n#### Notifications\n* reducer:\n`import {notificationsReducer} from 'veritone-widgets'`\n\n#### EngineOutputExport\n* reducer:\n`import {engineOutputExportReducer} from 'veritone-widgets'`\n\n#### OAuthLoginButton\n* reducers:\nveritone-redux-common `User`, `Auth` and `Config` reducers\n\n### Smart component theme wrapper requirements\nIn your app, import the `VeritoneSDKThemeProvider` from `veritone-react-common`:\n```\nimport {VeritoneSDKThemeProvider } from 'veritone-react-common'\n```\nthen wrap your root component with `<VeritoneSDKThemeProvider>`. If this is not possible, the `@withVeritoneSDKThemeProvider` decorator is provided to wrap individual components.\n\nComponents can be customized using [material-ui themes](https://material-ui.com/customization/themes/) by passing a theme into the `theme` prop of the provider. Passed-in themes will be merged with the default Veritone theme.\n\n## Using Widgets\n### 1. Create an instance of VeritoneApp\n`VeritoneApp` is a container for all the widgets and widget data in an app. Before using any widgets, you need to import and call it. Typically this will be done when your application is loaded and initialized.\n\n```javascript\nimport { VeritoneApp } from 'veritone-widgets'\nconst app = VeritoneApp();\n```\n\n_Note_: `VeritoneApp` creates a singleton, so you do not need to manage the constructed app instance yourself. As long as VeritoneApp() has been imported and called at least once, you can retrieve the same instance by importing and calling VeritoneApp() again elsewhere in your app, if needed.\n\n### 2. Authenticate with Veritone via OAuth\nIf you already have an OAuth token (because your app handles the client-side OAuth flow on its own), provide it by calling `login()` on the returned app instance.\n\n```javascript\nimport { VeritoneApp } from 'veritone-widgets'\nconst app = VeritoneApp().login({\n  OAuthToken: 'my-token-here'\n});\n```\n \nCalling `login()` is usually not necessary; we provide an `OAuthLoginButton` widget, which handles the OAuth token exchange automatically. See the instructions in the next section for more information.\n\n\n### 3. Add widgets to your app\nAfter you've initialized the app framework by calling `VeritoneApp()`, you can begin using widgets.\n\nA \"widget\" is a self-contained frontend component. Widgets always render into an empty element which you provide. They are self-contained and handle rendering a UI, responding to user interactions, making api calls, and so on.\n\nFor example, the `AppBar` widget renders the Veritone application toolbar, fetches the required data to render the Veritone app switcher and profile menu, and allows the developer to configure their application logo and title. When the user uses the app switcher or uses the profile menu to log out, the AppBar widget handles those events.  \n\nWidgets typically can be configured with a variety of options, but always require at least `elId`. This is the id (string) of an element in your document, often a `div`, into which the widget will be rendered. By applying styling to that div, you can position the widget around your app. The element specified in elId must exist in the document before you create the widget that will use it.\n\n#### Example: Using the OAuthLoginButton widget\nThe first widget you are likely to include is `OAuthLoginButton`. `OAuthLoginButton` renders a \"log in with Veritone\" button that your users can click to start the OAuth authentication flow. At the end of that flow, your VeritoneApp instance will be authenticated and able to make requests to our API. You can also retrieve the oauth token to use in your own app.\n\n_Note_: Unless you are handling the OAuth flow on your own and providing the token to VeritoneApp manually, the `OAuthLoginButton` widget is required for Veritone widgets to work.\n\nThe actual code you write to use widgets will vary based on your framework of choice, but in general, it should be as follows.\n\n```javascript\n// assuming VeritoneApp has already been initialized as described earlier, and given a document like:\n<body>\n  ...\n  <div id=\"login-button-widget\" />\n</body>\n\n// you can render the login button to the document like this:\nimport { OAuthLoginButtonWidget } from 'veritone-widgets'\nconst oauthButton = new OAuthLoginButtonWidget({\n  // the ID of an existing element in your document where the button will appear\n  elId: 'login-button-widget',\n  // the ID of your Veritone application (found in Developer App)\n  clientId: 'my-client-id',\n  // the route in your app that will handle OAuth responses (more details below)\n  redirectUri: 'https://my-app.com/handle_oauth_callback',\n  // optional callbacks to retrieve the OAuth token for using outside of VeritoneApp:\n  onAuthSuccess: ({ OAuthToken }) => console.log(OAuthToken),\n  onAuthFailure: (error) => console.log(error)\n});\n```\n\nWhen `new OAuthLoginButtonWidget({ ... })` runs, the widget will appear on your page.\n\n#### Example: Using the AppBar widget\nAll Veritone apps should also include the AppBar widget.\n\n```javascript\n<body>\n  <div id=\"appBar-widget\" />\n  ...\n</body>\n\nimport { AppBarWidget } from 'veritone-widgets'\nconst appBar = new AppBarWidget({\n  elId: 'appBar-widget',\n  title: 'My App',\n  backgroundColor: '#4caf50',\n  profileMenu: true,\n  appSwitcher: true\n});\n```\n\n## Use via script tag\nFor environments that do not support javascript module imports, widgets can also be included in an app via script tags.\n\n```\n<body>\n  <div id=\"appBar-widget\"></div>\n\n  <script src=\"https://unpkg.com/veritone-widgets@^5/dist/umd/VeritoneApp.js\"></script>\n  <script src=\"https://unpkg.com/veritone-widgets@^5/dist/umd/AppBar.js\"></script>\n\n  <script>\n    const app = VeritoneApp.default();\n\n    const appBar = new AppBar.AppBarWidget({\n      elId: 'appBar-widget',\n      title: 'AppBar Widget',\n      profileMenu: true,\n      appSwitcher: true\n    });\n  </script>\n</body>\n```\n\nAs you can see, each widget is bundled individually to keep file sizes small. In addition, VeritoneApp is separately bundled and required to use widgets. Scripts can be accessed from the the [unpkg](https://unpkg.com/) cdn or downloaded and hosted on your own infrastructure. Unpkg supports [semver ranges](https://docs.npmjs.com/misc/semver), or a specific version can be specified exactly. \n\n\n## Configuring widgets\nNote that the OAuthLoginButton widget in the example above is being configured with five properties: elId, clientId, OAuthURI, onAuthSuccess and onAuthFailure. As mentioned earlier, an elId is required for every widget. OAuthURI, clientId, onAuthSuccess and onAuthFailure are specific configurable properties on the OAuthLoginButton. As it is in the example, configuration is always provided to the widget constructor.\n\n## Widget instance methods\nSome widgets have methods which can be called on an instance of that widget. For example, the FilePicker widget has the methods `pick()` and `cancel()` to open and close the picker dialog, respectively.\n\n```javascript\nthis._picker = new FilePickerWidget({\n  elId: 'file-picker-widget',\n  accept: ['image/*'],\n  multiple: true\n});\n\n...\n// call the pick() instance method on the widget\nthis._picker.pick(files => console.log(files))\n```\n\n#### Where to look for widget options\nIn practice, a widget is just a wrapper around a React component. The easiest way to determine all the possible options for a given widget is to look at the PropTypes of its component. Remember to watch for console warnings which will indicate when an option was configured incorrectly, or when a required option was not provided. \n\n* The \"storybook\" dev environments in veritone-widgets and veritone-react-common have live examples of the various widgets and components.\n\n* The `story.js` file in the root of each widget folder in veritone-widgets and in the root of each component folder in veritone-react-common show the code used to create the storybook pages. If you are using React to write your application, these can be used directly as a basis for your own implementation. \n\n* The PropTypes in the source files of the various widgets (in veritone-widgets) and their respective components (in veritone-react-common) generally correspond to configurable options. Likewise, instance methods for a widget will be defined on its widget class in veritone-widgets.\n\n### Destroying widgets\nTo remove a widget, call `destroy()` on the instance\n```javascript\nconst oauthButton = new OAuthLoginButtonWidget({ ... });\n...\noauthButton.destroy();\n```\n\n## Available widgets\nThe current widgets are:\n\n**AppBar**\n\nThe title and navigation bar common between all Veritone applications. Includes a logo, title, the Veritone app switcher and profile menu.\n\n*Options:*\n\n* title: string, a title to show in the center of the AppBar\n* logoSrc: string, a URL or image (like an SVG) to use as the logo on the left-hand side of the AppBar.\n* backgroundColor: string, a color (in hex) to use for the AppBar background\n* profileMenu: bool, whether or not to show the profile menu\n* appSwitcher: bool, whether or not to show the app switcher menu\n* logo: bool, whether or not to show the veritone logo on the left side of the AppBar\n* onLogout: func, called when the user clicks \"logout\". Apps must implement their own logout logic (usually by deleting the stored oauth token and redirecting or refreshing the page appropriately)\n\n**OAuthLoginButton**\nThe \"Log in with Veritone\" button and corresponding frontend logic to handle the OAuth2 authentication flow.\n\n*Options:*\n* mode: \"implicit\" (default) or \"authCode\", the OAuth grant type you wish to use. \n* OAuthURI: string (required if using `authCode` mode), the URL of your app server's OAuth callback endpoint.\n* redirectUri: string (required if using `implicit` mode), the URL of your app frontend's OAuth callback endpoint.\n* clientID: string (required if using implicit mode), the ID of your Veritone application (found in Developer App)\n* onAuthSuccess: function, a callback that will be called with the OAuth token when the OAuth flow is completed successfully.\n* onAuthFailure: function, a callback that will be called with the error when the OAuth flow fails.\n\n*Requirements*\n\nVeritone provides two OAuth modes to suit different app requirements:\n\n`Implicit`, the default mode, is a frontend-only grant flow with no serverside requirement. _Most apps will use this mode._ This flow is much easier for apps to implement but has the downside of not returning a refresh token; users will need to log in again each time their token expires. \n\n`Auth Code` is a server-based grant flow, which uses your Veritone app's OAuth secret to retrieve both an auth token and refresh token. Auth code flow requires a server because the OAuth secret cannot be exposed to the client; the veritone-widets-server package is an example implementation, and more information can be found in its readme.\n\n**FilePicker**\n\nThe Veritone file upload dialog. Handles selecting and uploading files to S3 for use on the Veritone platform.\n\n*Options:*\n\n* accept: oneOfType([arrayOf(string), string]), file extension(s) or mimetype(s) which the file picker will accept\n* multiple: bool, whether the picker will accept multiple files to upload in a batch\n* width: number, the width of the filepicker dialog\n* height: number, the height of the filepicker dialog\n* allowUrlUpload: bool, whether the filepicker will allow files to be selected by URL\n\n*Instance methods*\n\n* pick(callback): open the filepicker dialog.\n  * callback signature is (result, { warning, error, cancelled })\n    * result: array of result objects, one for each file uploaded\n      * key: string, the filename as stored on the server (may include a UUID)\n      * fileName: string, the original filename\n      * size: number, the file size in bytes\n      * type: string, the mime type of the file\n      * error: string or `false`, the error that prevented the file from uploading, if any\n      * bucket: string, the S3 bucket to which the file was uploaded\n      * expiresInSeconds: number, the length of time the credentials in `getUrl` will be valid, in seconds.\n      * getUrl: string or `null`, the resulting S3 URL, if successful. Includes credentials that are valid for `expires` seconds. \n      * unsignedUrl: string or `null`, the resulting S3 URL, if successful. Does not include credentials and will need to be signed to be used.\n    * warning: string or `false`, a warning message if some (but not all) files failed to upload. A warning indicates that `result` contains some successful upload result objects, and some that were not successful (unsuccessful objects will have `error` populated with an error message, as noted above)\n    * error: string or `false`, an error message, if all files failed to upload.\n    * cancelled: bool, whether or not the filepicker interaction was cancelled (by the user, or by calling cancel()).\n\n* cancel(): close the filepicker dialog. The callback provided to pick() will be called with `(null, { cancelled: true })`.\n\n**Table**\n\nA Veritone table to display data.\n\n*Options:*\n\n* data: arrayOf(object) (required), the dataset\n* columns: arrayOf(shape) (required), a set of defintions for each column to be displayed\n  * shape: object with the following keys:\n    * dataKey: string (required), the data attribute to display within column \n    * header: string, the column heading\n    * transform: function, specifies how column data should be displayed\n      * signature: `(cellValue) => {}`\n    * menu: bool, identifies a column as a menu column\n    * onSelectItem: function, when `menu` is `true`, specifies action(s) to take when a menu option is clicked\n      * signature: `(menuAction) => {}`\n    * cursorPointer: bool, show cursor pointer over table cells\n    * align: string, specifies columm alignment: `['left', 'right', 'center']`\n    * width: number, specifies the width of a column\n* paginate: bool, specifies whether table data should be paginated\n* initialItemsPerPage: number, the number of items to display per page in a paginated table,\n* onCellClick: function, specifies action to take when a table cell is clicked\n  * signature: `(cellRow, cellColumn, cellData) => {}`\n* focusedRow: number, identifies a row to display additional content for\n* renderFocusedRowDetails: function, specifies additional content to display for `focusedRow`\n  * signature: `(focusedRowData) => (string | react component)`\n* onShowCellRange: function, fires when table page or rows (on page) changes;\n  * signature: `({ start: firstRowIndex, end: lastRowIndex }) => {}`\n* onRefreshPageData: function, specifies how to refresh data (if needed)\n  * signature: `() => {}`\n* emptyMessage: string, text to display when table has no data\n\n**EngineOutputExport**\n\nThe Veritone export engine outputs full screen dialog. This will fetch the engines ran on a tdo/recording and allow the user to configure what file types are included in the export\n\n*Options:*\n\n* tdos: arrayOf(shape), array of tdo data objects that engine outputs will be exported for\n  * shape: object with the following keys:\n    * tdoId: string (required), the unique id of a tdo you want to export engine outputs for\n    * mentionId: string, the unique id of a mention you want to export engine outputs for. If a mentionId is provided the engine results of the mention will be returned rather than those of the tdo\n    * startOffsetMs: number, an integer representing the number of milliseconds from the start of the tdo where the exported engine outputs will begin\n    * stopOffsetMs: number, an integer representing the number of milliseconds from the start of the tdo where the exported engine outputs will end\n* onExport: func, specifies action to take when export button is clicked\n  * signature: `(response) => {}`\n* onCancel: func, specifies action to take when cancel button is clicked\n  * signature: `() => {}`\n\n*Instance methods*\n\n* open(): opens the export engine output dialog.\n\n## Running the development environment (storybook)\n1. Set up your local clone of veritone-sdk, following the instructions in the [main readme](https://github.com/veritone/veritone-sdk#development)\n2. cd to this package\n3. In `config.dev.json`, fill in the missing fields with your own app's information (see our [application quick-start guide](http://docs.veritone.com/#/applications/quick-start/) for more info on how to create an app). **Your app's `URL` and `redirect URL` should be set to the same value** for the purposes of dev in this package. This default allows the environment to run with minimal config. \n4. run `yarn start`.\n5. When the build finishes, access the storybook at the url provided in your terminal.\n\n## License\nCopyright 2019, Veritone Inc.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n","scripts":{"lint":"yarn run lint:js && yarn run lint:styles","test":"jest","build":"yarn run build:es && yarn run build:cjs && yarn run build:script-tag","start":"yarn run start:widget-server; yarn run start:storybook","format":"prettier --write \"./src/**/*.{js,scss}\"","lint:js":"eslint src/** --ext .js --max-warnings 0","build:es":"cross-env NODE_ENV=production BABEL_ENV=production-es rollup -c rollup.config.es.js","prebuild":"yarn run clean:build","build:cjs":"cross-env NODE_ENV=production BABEL_ENV=production-cjs rollup -c rollup.config.cjs.js","test:watch":"jest --watch","build:watch":"cross-env NODE_ENV=production rollup -c --watch","clean:build":"rimraf dist","lint:styles":"stylelint \"src/**/*.{scss, css}\"","prepublishOnly":"yarn run test && yarn run lint && yarn run build","build:storybook":"NODE_ENV=production build-storybook -c .storybook -o docs-static","start:storybook":"NODE_ENV=test start-storybook -p 3000 -c .storybook","build:script-tag":"cross-env NODE_ENV=production BABEL_ENV=production-cjs webpack --config webpack.config.script-tag.js","start:widget-server":"yarn workspace veritone-widgets-server run start &"},"_npmUser":{"name":"linh.le","email":"linh.le@setacinq.vn"},"_npmVersion":"6.4.1","description":"As of v5.0.0, this package exports both React \"smart components\" and framework agnostic \"widgets\" for most components. When both are available, the smart component is the default export and the widget is a named export. For example, `import FilePicker, { ","directories":{},"jsnext:main":"dist/bundle-es.js","_nodeVersion":"8.15.1","dependencies":{"react":"^16.9.0","redux":"^4.0.4","deepmerge":"^4.2.2","react-dom":"^16.9.0","recompose":"^0.30.0","redux-saga":"^1.1.3","react-redux":"^7.1.3","redux-thunk":"^2.3.0","video-react":"~0.13.3","shaka-player":"^2.4.1","babel-runtime":"^6.26.0","babel-polyfill":"^6.26.0","@material-ui/lab":"^4.0.0-alpha.45","react-redux-saga":"^1.0.2","@material-ui/core":"^4.9.5","react-virtualized":"^9.18.5","@material-ui/icons":"^4.9.1","@material-ui/styles":"^4.9.0","immutability-helper":"^3.0.0","@material-ui/pickers":"^3.2.10","redux-dynamic-modules":"^5.2.0","veritone-react-common":"^9.0.3","veritone-redux-common":"^3.11.4","veritone-oauth-helpers":"^2.1.0","redux-api-middleware-fixed":"^2.0.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"raf":"^3.4.0","jest":"^22.4.3","faker":"^4.1.0","enzyme":"^3.5.0","eslint":"^4.8.0","rimraf":"^2.6.2","rollup":"^1.17.0","webpack":"^4.0.1","cross-env":"^5.1.1","node-sass":"^4.7.2","stylelint":"^8.2.0","babel-core":"^6.26.0","url-loader":"^0.6.2","sass-loader":"^6.0.6","webpack-cli":"^2.0.9","babel-loader":"^7.1.3","redux-logger":"^3.0.6","redux-devtools":"^3.5.0","@storybook/react":"v3.3.9","redux-mock-store":"^1.5.4","veritone-dev-env":"^3.0.0","rollup-plugin-url":"^2.2.2","identity-obj-proxy":"^3.0.0","redux-validate-fsa":"^0.1.2","rollup-plugin-json":"^4.0.0","babel-plugin-lodash":"^3.3.2","eslint-plugin-react":"^7.8.2","react-test-renderer":"^16.0.0","rollup-plugin-alias":"^1.5.2","rollup-plugin-babel":"^3.0.7","eslint-plugin-import":"^2.10.0","eslint-plugin-lodash":"^2.4.5","babel-plugin-date-fns":"^0.2.1","eslint-plugin-promise":"^3.5.0","rollup-plugin-postcss":"^2.0.3","rollup-plugin-replace":"^2.2.0","@storybook/addon-knobs":"3.3.9","eslint-config-prettier":"^2.6.0","rollup-analyzer-plugin":"^1.2.0","rollup-plugin-commonjs":"^10.0.1","enzyme-adapter-react-16":"^1.0.0","stylelint-config-prettier":"^4.0.0","stylelint-config-standard":"^17.0.0","rollup-plugin-node-resolve":"^5.2.0","babel-plugin-external-helpers":"^6.22.0","babel-plugin-transform-runtime":"^6.23.0","redux-immutable-state-invariant":"^2.1.0","babel-plugin-add-react-displayname":"^0.0.5","babel-plugin-transform-class-properties":"^6.24.1","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-plugin-transform-export-extensions":"^6.22.0","babel-plugin-transform-object-rest-spread":"^6.26.0"},"_npmOperationalInternal":{"tmp":"tmp/veritone-widgets_9.0.0_1584516365031_0.5885350950547452","host":"s3://npm-registry-packages"}},"9.0.1":{"name":"veritone-widgets","version":"9.0.1","license":"Apache-2.0","_id":"veritone-widgets@9.0.1","maintainers":[{"name":"aaronadaniel","email":"aaron.kalel@gmail.com"},{"name":"albertcbrown","email":"al@veritone.com"},{"name":"christopher-gustavsson","email":"chrisgustavsson1@gmail.com"},{"name":"coolmitch","email":"robb.mitch@gmail.com"},{"name":"kkaiser","email":"kkaiser@veritone.com"},{"name":"linh.le","email":"linh.le@setacinq.vn"},{"name":"mikomonday","email":"miko.monday@gmail.com"},{"name":"mmtbkn","email":"mohamedirvine@gmail.com"},{"name":"seta-tuha","email":"tu.ha@setacinq.vn"},{"name":"truong_veritone","email":"ktruong@veritone.com"},{"name":"veritone_dev","email":"dev@veritone.com"},{"name":"veritone-jordan","email":"jbelford@veritone.com"}],"dist":{"shasum":"25bda1812e8751436250feaa1a5dde6782fd8b40","tarball":"https://registry.npmjs.org/veritone-widgets/-/veritone-widgets-9.0.1.tgz","fileCount":186,"integrity":"sha512-NbUZ7D4Run/nAbyX96rZspqV8L/h1SRW60wHVH9faZ7wwxOCW1Org3CtoQo2MNJ9RYuOQCMfPjWGSJYEXKZ8pQ==","signatures":[{"sig":"MEYCIQDgBpe9fS8XJ5BEnMzXMTVsTN/+7tBXIYISkXMxC9MsxAIhAJwCHgYqssEarjlL7zE9lRdWTyFT0GvDvoGaiDsWX3hr","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":28471179,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJegYl/CRA9TVsSAnZWagAAS/UQAIK4BNan4d1vIET7YaOc\ng99+d/hXIMdb1agqnlFyfUVr8O/27lq/GbuFJLNa5L3VUyfLgnSMEGcGkeCV\nWHUMMqY+WZzYAgDnQWwE+xgjaGnSTl4xQnCCDbj8J9v0Y/F84Db30Kx2PdDW\nvBzMO0ISGu64gnt4tw2nATN5QPmohMsgxyig0rK9G/zk49HeyAbcwTbxQ/CT\n0c1hWHmkxB8GV0TXyNyxn8DRwJUpQjVshjLXte++V4hCT0z6IjTwFrE1A1yi\nmgqGbHGCoDFFFK56BBwTXEDpQseI3RUpcuXv2C1vH5xZdkwG/v+/o8zPA7rJ\n9Pjy8cJS4VMeDTwhtR24c1mha6uj++0gDI2HCaiaZE4v1vrOWRNZ3+kDHO0Z\nLdEZLnuvikFX0aD8+6kVopsHo3m8IBoS0Rjux5FuVFIQMZwws5TZzQxjpWH7\ncuBXj2okKuZmhCejJRJ5fvEQ8WqJVu1z0BfcR78KVBzc7KPu9kSBvDejlEnq\nOAbyDf4fVhlC7s4LEeJGRlf2tP38WGfA0frx3ME1tEnF/dyqG9BOSGkWLtn2\ni75wEWKFHKHUJClKR7LsrS2rm39DOadvM02z6Hqehk/tLF7JemvY1x9nX6jf\nyJjivVKcPjY16E2cAjvHXoymIfqeYR1oJUeBH0J5XiSPkNO9QqflyIU6wTfc\n7vk/\r\n=DjMo\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"setupFiles":["<rootDir>/test/testSuitePolyfills.js","<rootDir>/test/configureEnzyme.js"],"moduleNameMapper":{"^dnd-core$":"dnd-core/dist/cjs","^react-dnd$":"react-dnd/dist/cjs","\\.(css|scss)$":"identity-obj-proxy","^react-dnd-test-utils$":"react-dnd-test-utils/dist/cjs","^react-dnd-test-backend$":"react-dnd-test-backend/dist/cjs","^react-dnd-html5-backend$":"react-dnd-html5-backend/dist/cjs","^react-dnd-touch-backend$":"react-dnd-touch-backend/dist/cjs","\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$":"<rootDir>/test/__mocks__/fileMock.js"},"moduleDirectories":["node_modules","../../node_modules"],"moduleFileExtensions":["js","jsx"]},"main":"dist/bundle-cjs.js","module":"dist/bundle-es.js","readme":"## Quick Start\nAs of v5.0.0, this package exports both React \"smart components\" and framework agnostic \"widgets\" for most components. When both are available, the smart component is the default export and the widget is a named export. For example, `import FilePicker, { FilePickerWidget } from 'veritone-widgets'` imports the smart component as FilePicker and the widget as FilePickerWidget. Smart components usually require redux reducers and sagas to be imported as well, see [Using Smart Components](#using-smart-components)\n\n### Widgets (framework agnostic)\n```javascript\nimport { VeritoneApp, OAuthLoginButtonWidget, AppBarWidget } from 'veritone-widgets'\nconst app = VeritoneApp();\n\n// a \"log in with veritone\" button\nconst oauthButton = new OAuthLoginButtonWidget({\n  // the ID of an existing element in your document where the button will appear\n  elId: 'login-button-widget',\n  // the ID of your Veritone application (found in Developer App)\n  clientId: 'my-client-id',\n  // the route in your app that will handle OAuth responses (more details below)\n  redirectUri: 'https://my-app.com/handle_oauth_callback',\n  // optional callbacks to retrieve the OAuth token for using outside of VeritoneApp:\n  onAuthSuccess: ({ OAuthToken }) => console.log(OAuthToken),\n  onAuthFailure: (error) => console.log(error)\n});\n\n// the Veritone app bar, which will receive auth after the user completes\n// the oauth flow using the OAuthLoginButton\nconst appBar = new AppBarWidget({\n  elId: 'appBar-widget',\n  title: 'My App',\n  backgroundColor: '#4caf50',\n  profileMenu: true,\n  appSwitcher: true\n});\n```\n### React Components\n```javascript\nimport { OAuthLoginButton } from 'veritone-widgets'\n\nrender(\n  <OAuthLoginButton\n    clientId=\"my-client-id\"\n    redirectUri=\"https://my-app.com/handle_oauth_callback\"\n  />\n)\n```\n\n## Using Smart Components\nBecause smart components are not rendered within the VeritoneApp widget framework, they require the user's app to have its own redux store with the components' reducers installed. Often, [sagas](https://redux-saga.js.org/) are also included and must be started as part of the app's root saga.\n\n### Smart component reducer/saga requirements\n#### FilePicker\n* reducer:\n`import {filePickerReducer} from 'veritone-widgets'`\n\n* saga:\n`import {filePickerSaga} from 'veritone-widgets'`\n\n#### Notifications\n* reducer:\n`import {notificationsReducer} from 'veritone-widgets'`\n\n#### EngineOutputExport\n* reducer:\n`import {engineOutputExportReducer} from 'veritone-widgets'`\n\n#### OAuthLoginButton\n* reducers:\nveritone-redux-common `User`, `Auth` and `Config` reducers\n\n### Smart component theme wrapper requirements\nIn your app, import the `VeritoneSDKThemeProvider` from `veritone-react-common`:\n```\nimport {VeritoneSDKThemeProvider } from 'veritone-react-common'\n```\nthen wrap your root component with `<VeritoneSDKThemeProvider>`. If this is not possible, the `@withVeritoneSDKThemeProvider` decorator is provided to wrap individual components.\n\nComponents can be customized using [material-ui themes](https://material-ui.com/customization/themes/) by passing a theme into the `theme` prop of the provider. Passed-in themes will be merged with the default Veritone theme.\n\n## Using Widgets\n### 1. Create an instance of VeritoneApp\n`VeritoneApp` is a container for all the widgets and widget data in an app. Before using any widgets, you need to import and call it. Typically this will be done when your application is loaded and initialized.\n\n```javascript\nimport { VeritoneApp } from 'veritone-widgets'\nconst app = VeritoneApp();\n```\n\n_Note_: `VeritoneApp` creates a singleton, so you do not need to manage the constructed app instance yourself. As long as VeritoneApp() has been imported and called at least once, you can retrieve the same instance by importing and calling VeritoneApp() again elsewhere in your app, if needed.\n\n### 2. Authenticate with Veritone via OAuth\nIf you already have an OAuth token (because your app handles the client-side OAuth flow on its own), provide it by calling `login()` on the returned app instance.\n\n```javascript\nimport { VeritoneApp } from 'veritone-widgets'\nconst app = VeritoneApp().login({\n  OAuthToken: 'my-token-here'\n});\n```\n \nCalling `login()` is usually not necessary; we provide an `OAuthLoginButton` widget, which handles the OAuth token exchange automatically. See the instructions in the next section for more information.\n\n\n### 3. Add widgets to your app\nAfter you've initialized the app framework by calling `VeritoneApp()`, you can begin using widgets.\n\nA \"widget\" is a self-contained frontend component. Widgets always render into an empty element which you provide. They are self-contained and handle rendering a UI, responding to user interactions, making api calls, and so on.\n\nFor example, the `AppBar` widget renders the Veritone application toolbar, fetches the required data to render the Veritone app switcher and profile menu, and allows the developer to configure their application logo and title. When the user uses the app switcher or uses the profile menu to log out, the AppBar widget handles those events.  \n\nWidgets typically can be configured with a variety of options, but always require at least `elId`. This is the id (string) of an element in your document, often a `div`, into which the widget will be rendered. By applying styling to that div, you can position the widget around your app. The element specified in elId must exist in the document before you create the widget that will use it.\n\n#### Example: Using the OAuthLoginButton widget\nThe first widget you are likely to include is `OAuthLoginButton`. `OAuthLoginButton` renders a \"log in with Veritone\" button that your users can click to start the OAuth authentication flow. At the end of that flow, your VeritoneApp instance will be authenticated and able to make requests to our API. You can also retrieve the oauth token to use in your own app.\n\n_Note_: Unless you are handling the OAuth flow on your own and providing the token to VeritoneApp manually, the `OAuthLoginButton` widget is required for Veritone widgets to work.\n\nThe actual code you write to use widgets will vary based on your framework of choice, but in general, it should be as follows.\n\n```javascript\n// assuming VeritoneApp has already been initialized as described earlier, and given a document like:\n<body>\n  ...\n  <div id=\"login-button-widget\" />\n</body>\n\n// you can render the login button to the document like this:\nimport { OAuthLoginButtonWidget } from 'veritone-widgets'\nconst oauthButton = new OAuthLoginButtonWidget({\n  // the ID of an existing element in your document where the button will appear\n  elId: 'login-button-widget',\n  // the ID of your Veritone application (found in Developer App)\n  clientId: 'my-client-id',\n  // the route in your app that will handle OAuth responses (more details below)\n  redirectUri: 'https://my-app.com/handle_oauth_callback',\n  // optional callbacks to retrieve the OAuth token for using outside of VeritoneApp:\n  onAuthSuccess: ({ OAuthToken }) => console.log(OAuthToken),\n  onAuthFailure: (error) => console.log(error)\n});\n```\n\nWhen `new OAuthLoginButtonWidget({ ... })` runs, the widget will appear on your page.\n\n#### Example: Using the AppBar widget\nAll Veritone apps should also include the AppBar widget.\n\n```javascript\n<body>\n  <div id=\"appBar-widget\" />\n  ...\n</body>\n\nimport { AppBarWidget } from 'veritone-widgets'\nconst appBar = new AppBarWidget({\n  elId: 'appBar-widget',\n  title: 'My App',\n  backgroundColor: '#4caf50',\n  profileMenu: true,\n  appSwitcher: true\n});\n```\n\n## Use via script tag\nFor environments that do not support javascript module imports, widgets can also be included in an app via script tags.\n\n```\n<body>\n  <div id=\"appBar-widget\"></div>\n\n  <script src=\"https://unpkg.com/veritone-widgets@^5/dist/umd/VeritoneApp.js\"></script>\n  <script src=\"https://unpkg.com/veritone-widgets@^5/dist/umd/AppBar.js\"></script>\n\n  <script>\n    const app = VeritoneApp.default();\n\n    const appBar = new AppBar.AppBarWidget({\n      elId: 'appBar-widget',\n      title: 'AppBar Widget',\n      profileMenu: true,\n      appSwitcher: true\n    });\n  </script>\n</body>\n```\n\nAs you can see, each widget is bundled individually to keep file sizes small. In addition, VeritoneApp is separately bundled and required to use widgets. Scripts can be accessed from the the [unpkg](https://unpkg.com/) cdn or downloaded and hosted on your own infrastructure. Unpkg supports [semver ranges](https://docs.npmjs.com/misc/semver), or a specific version can be specified exactly. \n\n\n## Configuring widgets\nNote that the OAuthLoginButton widget in the example above is being configured with five properties: elId, clientId, OAuthURI, onAuthSuccess and onAuthFailure. As mentioned earlier, an elId is required for every widget. OAuthURI, clientId, onAuthSuccess and onAuthFailure are specific configurable properties on the OAuthLoginButton. As it is in the example, configuration is always provided to the widget constructor.\n\n## Widget instance methods\nSome widgets have methods which can be called on an instance of that widget. For example, the FilePicker widget has the methods `pick()` and `cancel()` to open and close the picker dialog, respectively.\n\n```javascript\nthis._picker = new FilePickerWidget({\n  elId: 'file-picker-widget',\n  accept: ['image/*'],\n  multiple: true\n});\n\n...\n// call the pick() instance method on the widget\nthis._picker.pick(files => console.log(files))\n```\n\n#### Where to look for widget options\nIn practice, a widget is just a wrapper around a React component. The easiest way to determine all the possible options for a given widget is to look at the PropTypes of its component. Remember to watch for console warnings which will indicate when an option was configured incorrectly, or when a required option was not provided. \n\n* The \"storybook\" dev environments in veritone-widgets and veritone-react-common have live examples of the various widgets and components.\n\n* The `story.js` file in the root of each widget folder in veritone-widgets and in the root of each component folder in veritone-react-common show the code used to create the storybook pages. If you are using React to write your application, these can be used directly as a basis for your own implementation. \n\n* The PropTypes in the source files of the various widgets (in veritone-widgets) and their respective components (in veritone-react-common) generally correspond to configurable options. Likewise, instance methods for a widget will be defined on its widget class in veritone-widgets.\n\n### Destroying widgets\nTo remove a widget, call `destroy()` on the instance\n```javascript\nconst oauthButton = new OAuthLoginButtonWidget({ ... });\n...\noauthButton.destroy();\n```\n\n## Available widgets\nThe current widgets are:\n\n**AppBar**\n\nThe title and navigation bar common between all Veritone applications. Includes a logo, title, the Veritone app switcher and profile menu.\n\n*Options:*\n\n* title: string, a title to show in the center of the AppBar\n* logoSrc: string, a URL or image (like an SVG) to use as the logo on the left-hand side of the AppBar.\n* backgroundColor: string, a color (in hex) to use for the AppBar background\n* profileMenu: bool, whether or not to show the profile menu\n* appSwitcher: bool, whether or not to show the app switcher menu\n* logo: bool, whether or not to show the veritone logo on the left side of the AppBar\n* onLogout: func, called when the user clicks \"logout\". Apps must implement their own logout logic (usually by deleting the stored oauth token and redirecting or refreshing the page appropriately)\n\n**OAuthLoginButton**\nThe \"Log in with Veritone\" button and corresponding frontend logic to handle the OAuth2 authentication flow.\n\n*Options:*\n* mode: \"implicit\" (default) or \"authCode\", the OAuth grant type you wish to use. \n* OAuthURI: string (required if using `authCode` mode), the URL of your app server's OAuth callback endpoint.\n* redirectUri: string (required if using `implicit` mode), the URL of your app frontend's OAuth callback endpoint.\n* clientID: string (required if using implicit mode), the ID of your Veritone application (found in Developer App)\n* onAuthSuccess: function, a callback that will be called with the OAuth token when the OAuth flow is completed successfully.\n* onAuthFailure: function, a callback that will be called with the error when the OAuth flow fails.\n\n*Requirements*\n\nVeritone provides two OAuth modes to suit different app requirements:\n\n`Implicit`, the default mode, is a frontend-only grant flow with no serverside requirement. _Most apps will use this mode._ This flow is much easier for apps to implement but has the downside of not returning a refresh token; users will need to log in again each time their token expires. \n\n`Auth Code` is a server-based grant flow, which uses your Veritone app's OAuth secret to retrieve both an auth token and refresh token. Auth code flow requires a server because the OAuth secret cannot be exposed to the client; the veritone-widets-server package is an example implementation, and more information can be found in its readme.\n\n**FilePicker**\n\nThe Veritone file upload dialog. Handles selecting and uploading files to S3 for use on the Veritone platform.\n\n*Options:*\n\n* accept: oneOfType([arrayOf(string), string]), file extension(s) or mimetype(s) which the file picker will accept\n* multiple: bool, whether the picker will accept multiple files to upload in a batch\n* width: number, the width of the filepicker dialog\n* height: number, the height of the filepicker dialog\n* allowUrlUpload: bool, whether the filepicker will allow files to be selected by URL\n\n*Instance methods*\n\n* pick(callback): open the filepicker dialog.\n  * callback signature is (result, { warning, error, cancelled })\n    * result: array of result objects, one for each file uploaded\n      * key: string, the filename as stored on the server (may include a UUID)\n      * fileName: string, the original filename\n      * size: number, the file size in bytes\n      * type: string, the mime type of the file\n      * error: string or `false`, the error that prevented the file from uploading, if any\n      * bucket: string, the S3 bucket to which the file was uploaded\n      * expiresInSeconds: number, the length of time the credentials in `getUrl` will be valid, in seconds.\n      * getUrl: string or `null`, the resulting S3 URL, if successful. Includes credentials that are valid for `expires` seconds. \n      * unsignedUrl: string or `null`, the resulting S3 URL, if successful. Does not include credentials and will need to be signed to be used.\n    * warning: string or `false`, a warning message if some (but not all) files failed to upload. A warning indicates that `result` contains some successful upload result objects, and some that were not successful (unsuccessful objects will have `error` populated with an error message, as noted above)\n    * error: string or `false`, an error message, if all files failed to upload.\n    * cancelled: bool, whether or not the filepicker interaction was cancelled (by the user, or by calling cancel()).\n\n* cancel(): close the filepicker dialog. The callback provided to pick() will be called with `(null, { cancelled: true })`.\n\n**Table**\n\nA Veritone table to display data.\n\n*Options:*\n\n* data: arrayOf(object) (required), the dataset\n* columns: arrayOf(shape) (required), a set of defintions for each column to be displayed\n  * shape: object with the following keys:\n    * dataKey: string (required), the data attribute to display within column \n    * header: string, the column heading\n    * transform: function, specifies how column data should be displayed\n      * signature: `(cellValue) => {}`\n    * menu: bool, identifies a column as a menu column\n    * onSelectItem: function, when `menu` is `true`, specifies action(s) to take when a menu option is clicked\n      * signature: `(menuAction) => {}`\n    * cursorPointer: bool, show cursor pointer over table cells\n    * align: string, specifies columm alignment: `['left', 'right', 'center']`\n    * width: number, specifies the width of a column\n* paginate: bool, specifies whether table data should be paginated\n* initialItemsPerPage: number, the number of items to display per page in a paginated table,\n* onCellClick: function, specifies action to take when a table cell is clicked\n  * signature: `(cellRow, cellColumn, cellData) => {}`\n* focusedRow: number, identifies a row to display additional content for\n* renderFocusedRowDetails: function, specifies additional content to display for `focusedRow`\n  * signature: `(focusedRowData) => (string | react component)`\n* onShowCellRange: function, fires when table page or rows (on page) changes;\n  * signature: `({ start: firstRowIndex, end: lastRowIndex }) => {}`\n* onRefreshPageData: function, specifies how to refresh data (if needed)\n  * signature: `() => {}`\n* emptyMessage: string, text to display when table has no data\n\n**EngineOutputExport**\n\nThe Veritone export engine outputs full screen dialog. This will fetch the engines ran on a tdo/recording and allow the user to configure what file types are included in the export\n\n*Options:*\n\n* tdos: arrayOf(shape), array of tdo data objects that engine outputs will be exported for\n  * shape: object with the following keys:\n    * tdoId: string (required), the unique id of a tdo you want to export engine outputs for\n    * mentionId: string, the unique id of a mention you want to export engine outputs for. If a mentionId is provided the engine results of the mention will be returned rather than those of the tdo\n    * startOffsetMs: number, an integer representing the number of milliseconds from the start of the tdo where the exported engine outputs will begin\n    * stopOffsetMs: number, an integer representing the number of milliseconds from the start of the tdo where the exported engine outputs will end\n* onExport: func, specifies action to take when export button is clicked\n  * signature: `(response) => {}`\n* onCancel: func, specifies action to take when cancel button is clicked\n  * signature: `() => {}`\n\n*Instance methods*\n\n* open(): opens the export engine output dialog.\n\n## Running the development environment (storybook)\n1. Set up your local clone of veritone-sdk, following the instructions in the [main readme](https://github.com/veritone/veritone-sdk#development)\n2. cd to this package\n3. In `config.dev.json`, fill in the missing fields with your own app's information (see our [application quick-start guide](http://docs.veritone.com/#/applications/quick-start/) for more info on how to create an app). **Your app's `URL` and `redirect URL` should be set to the same value** for the purposes of dev in this package. This default allows the environment to run with minimal config. \n4. run `yarn start`.\n5. When the build finishes, access the storybook at the url provided in your terminal.\n\n## License\nCopyright 2019, Veritone Inc.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n","scripts":{"lint":"yarn run lint:js && yarn run lint:styles","test":"jest","build":"yarn run build:es && yarn run build:cjs && yarn run build:script-tag","start":"yarn run start:widget-server; yarn run start:storybook","format":"prettier --write \"./src/**/*.{js,scss}\"","lint:js":"eslint src/** --ext .js --max-warnings 0","build:es":"cross-env NODE_ENV=production BABEL_ENV=production-es rollup -c rollup.config.es.js","prebuild":"yarn run clean:build","build:cjs":"cross-env NODE_ENV=production BABEL_ENV=production-cjs rollup -c rollup.config.cjs.js","test:watch":"jest --watch","build:watch":"cross-env NODE_ENV=production rollup -c --watch","clean:build":"rimraf dist","lint:styles":"stylelint \"src/**/*.{scss, css}\"","prepublishOnly":"yarn run test && yarn run lint && yarn run build","build:storybook":"NODE_ENV=production build-storybook -c .storybook -o docs-static","start:storybook":"NODE_ENV=test start-storybook -p 3000 -c .storybook","build:script-tag":"cross-env NODE_ENV=production BABEL_ENV=production-cjs webpack --config webpack.config.script-tag.js","start:widget-server":"yarn workspace veritone-widgets-server run start &"},"_npmUser":{"name":"linh.le","email":"linh.le@setacinq.vn"},"_npmVersion":"6.13.7","description":"As of v5.0.0, this package exports both React \"smart components\" and framework agnostic \"widgets\" for most components. When both are available, the smart component is the default export and the widget is a named export. For example, `import FilePicker, { ","directories":{},"jsnext:main":"dist/bundle-es.js","_nodeVersion":"10.16.0","dependencies":{"react":"^16.9.0","redux":"^4.0.4","deepmerge":"^4.2.2","react-dom":"^16.9.0","recompose":"^0.30.0","redux-saga":"^1.1.3","react-redux":"^7.1.3","redux-thunk":"^2.3.0","video-react":"~0.13.3","shaka-player":"^2.4.1","babel-runtime":"^6.26.0","babel-polyfill":"^6.26.0","@material-ui/lab":"^4.0.0-alpha.45","react-redux-saga":"^1.0.2","@material-ui/core":"^4.9.5","react-virtualized":"^9.18.5","@material-ui/icons":"^4.9.1","@material-ui/styles":"^4.9.0","immutability-helper":"^3.0.0","@material-ui/pickers":"^3.2.10","redux-dynamic-modules":"^5.2.0","veritone-react-common":"^9.0.5","veritone-redux-common":"^3.11.4","veritone-oauth-helpers":"^2.1.0","redux-api-middleware-fixed":"^2.0.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"raf":"^3.4.0","jest":"^22.4.3","faker":"^4.1.0","enzyme":"^3.5.0","eslint":"^4.8.0","rimraf":"^2.6.2","rollup":"^1.17.0","webpack":"^4.0.1","cross-env":"^5.1.1","node-sass":"^4.7.2","stylelint":"^8.2.0","babel-core":"^6.26.0","url-loader":"^0.6.2","sass-loader":"^6.0.6","webpack-cli":"^2.0.9","babel-loader":"^7.1.3","redux-logger":"^3.0.6","redux-devtools":"^3.5.0","@storybook/react":"v3.3.9","redux-mock-store":"^1.5.4","veritone-dev-env":"^3.0.0","rollup-plugin-url":"^2.2.2","identity-obj-proxy":"^3.0.0","redux-validate-fsa":"^0.1.2","rollup-plugin-json":"^4.0.0","babel-plugin-lodash":"^3.3.2","eslint-plugin-react":"^7.8.2","react-test-renderer":"^16.0.0","rollup-plugin-alias":"^1.5.2","rollup-plugin-babel":"^3.0.7","eslint-plugin-import":"^2.10.0","eslint-plugin-lodash":"^2.4.5","babel-plugin-date-fns":"^0.2.1","eslint-plugin-promise":"^3.5.0","rollup-plugin-postcss":"^2.0.3","rollup-plugin-replace":"^2.2.0","@storybook/addon-knobs":"3.3.9","eslint-config-prettier":"^2.6.0","rollup-analyzer-plugin":"^1.2.0","rollup-plugin-commonjs":"^10.0.1","enzyme-adapter-react-16":"^1.0.0","stylelint-config-prettier":"^4.0.0","stylelint-config-standard":"^17.0.0","rollup-plugin-node-resolve":"^5.2.0","babel-plugin-external-helpers":"^6.22.0","babel-plugin-transform-runtime":"^6.23.0","redux-immutable-state-invariant":"^2.1.0","babel-plugin-add-react-displayname":"^0.0.5","babel-plugin-transform-class-properties":"^6.24.1","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-plugin-transform-export-extensions":"^6.22.0","babel-plugin-transform-object-rest-spread":"^6.26.0"},"_npmOperationalInternal":{"tmp":"tmp/veritone-widgets_9.0.1_1585547646404_0.19808705014867667","host":"s3://npm-registry-packages"}},"9.0.2":{"name":"veritone-widgets","version":"9.0.2","license":"Apache-2.0","_id":"veritone-widgets@9.0.2","maintainers":[{"name":"aaronadaniel","email":"aaron.kalel@gmail.com"},{"name":"albertcbrown","email":"al@veritone.com"},{"name":"christopher-gustavsson","email":"chrisgustavsson1@gmail.com"},{"name":"coolmitch","email":"robb.mitch@gmail.com"},{"name":"kkaiser","email":"kkaiser@veritone.com"},{"name":"linh.le","email":"linh.le@setacinq.vn"},{"name":"mikomonday","email":"miko.monday@gmail.com"},{"name":"mmtbkn","email":"mohamedirvine@gmail.com"},{"name":"seta-tuha","email":"tu.ha@setacinq.vn"},{"name":"truong_veritone","email":"ktruong@veritone.com"},{"name":"veritone_dev","email":"dev@veritone.com"},{"name":"veritone-jordan","email":"jbelford@veritone.com"}],"dist":{"shasum":"3818a6c6fcc3f56b1c5a32511f2834efc96d0520","tarball":"https://registry.npmjs.org/veritone-widgets/-/veritone-widgets-9.0.2.tgz","fileCount":186,"integrity":"sha512-STOwBiAwz8Jhv5c3SSJ8CHdeQuHveRDBUQhAXBETvzHPsBGsFXg8lLRqBUEg/4XjmnQpWeQXvIm4M8yY0DWX6Q==","signatures":[{"sig":"MEYCIQCuGi6et9bnjDH8tBBduNXXa1qnAAadFP/6g/DjNNDctgIhAMp5YNF62JlypzUlf8Oe4JxCKl+P/CBMGqwn71bCyCzb","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":29245736,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJejFToCRA9TVsSAnZWagAADZgP/0+fKp1DRQIihia9yzzn\ndrkcRFMGXlioIjGjtAi5Gy/rq4ZJ4pk5FRnx1rH7mSKyRwL2upsJ5O0ecaS9\nUiBZRiZALN25A2N0tEU5SV2IqZlD5LyzYqTtDwsb518fMGfkortraTOY+klZ\nBewKg+dlkpaXhw9IN/tKu6n89Z9D8kaj9InSvrY8TuLQLlra4BvTVE+npD/A\nUmVgICqRUTnFqX92y2GnZtrghszvcOqhgakXaw7gnu6E2M6TJedz+GnKlQMi\nn21S5joWolbXa4ckoeDt/pBeokUFc5G1sWgZ7/a7r0FsQLtuumwQop/pi0Sq\nyZVyItsBbtmw96ZVr6LfA/A0GSOJZaPId+UKTpjjJXnP24PHpz59oN9uijq+\nfrMbxTUKEVvwSe9t6H62WTOnk6SriaYiLeTFgf4fjATBc1EMf7phZs7wNvHm\nQZ+y9SIssDnAWpmdI3SQWH2EFc19gfKvGj/C3ZgS43DxTMCiRfjGMneqzKem\neFJ43U4zunsHgJH0Jniymj0AeUw+TT7BzUzWaQCIqlpio1A8UFZ+WPRSvjEJ\nnTzKFUY13jL1rZr51KB1gvAegICuZ+5iabqELjQHr64KrQ8iTBoki2ZnEmVy\nwSUAKK+X5b31kIZXxI7F148lyS6wQWmi4J6F3GJLdRCjeFlkeRTaVMPR+W/4\nvb1v\r\n=Vwdz\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"setupFiles":["<rootDir>/test/testSuitePolyfills.js","<rootDir>/test/configureEnzyme.js"],"moduleNameMapper":{"^dnd-core$":"dnd-core/dist/cjs","^react-dnd$":"react-dnd/dist/cjs","\\.(css|scss)$":"identity-obj-proxy","^react-dnd-test-utils$":"react-dnd-test-utils/dist/cjs","^react-dnd-test-backend$":"react-dnd-test-backend/dist/cjs","^react-dnd-html5-backend$":"react-dnd-html5-backend/dist/cjs","^react-dnd-touch-backend$":"react-dnd-touch-backend/dist/cjs","\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$":"<rootDir>/test/__mocks__/fileMock.js"},"moduleDirectories":["node_modules","../../node_modules"],"moduleFileExtensions":["js","jsx"]},"main":"dist/bundle-cjs.js","module":"dist/bundle-es.js","readme":"## Quick Start\nAs of v5.0.0, this package exports both React \"smart components\" and framework agnostic \"widgets\" for most components. When both are available, the smart component is the default export and the widget is a named export. For example, `import FilePicker, { FilePickerWidget } from 'veritone-widgets'` imports the smart component as FilePicker and the widget as FilePickerWidget. Smart components usually require redux reducers and sagas to be imported as well, see [Using Smart Components](#using-smart-components)\n\n### Widgets (framework agnostic)\n```javascript\nimport { VeritoneApp, OAuthLoginButtonWidget, AppBarWidget } from 'veritone-widgets'\nconst app = VeritoneApp();\n\n// a \"log in with veritone\" button\nconst oauthButton = new OAuthLoginButtonWidget({\n  // the ID of an existing element in your document where the button will appear\n  elId: 'login-button-widget',\n  // the ID of your Veritone application (found in Developer App)\n  clientId: 'my-client-id',\n  // the route in your app that will handle OAuth responses (more details below)\n  redirectUri: 'https://my-app.com/handle_oauth_callback',\n  // optional callbacks to retrieve the OAuth token for using outside of VeritoneApp:\n  onAuthSuccess: ({ OAuthToken }) => console.log(OAuthToken),\n  onAuthFailure: (error) => console.log(error)\n});\n\n// the Veritone app bar, which will receive auth after the user completes\n// the oauth flow using the OAuthLoginButton\nconst appBar = new AppBarWidget({\n  elId: 'appBar-widget',\n  title: 'My App',\n  backgroundColor: '#4caf50',\n  profileMenu: true,\n  appSwitcher: true\n});\n```\n### React Components\n```javascript\nimport { OAuthLoginButton } from 'veritone-widgets'\n\nrender(\n  <OAuthLoginButton\n    clientId=\"my-client-id\"\n    redirectUri=\"https://my-app.com/handle_oauth_callback\"\n  />\n)\n```\n\n## Using Smart Components\nBecause smart components are not rendered within the VeritoneApp widget framework, they require the user's app to have its own redux store with the components' reducers installed. Often, [sagas](https://redux-saga.js.org/) are also included and must be started as part of the app's root saga.\n\n### Smart component reducer/saga requirements\n#### FilePicker\n* reducer:\n`import {filePickerReducer} from 'veritone-widgets'`\n\n* saga:\n`import {filePickerSaga} from 'veritone-widgets'`\n\n#### Notifications\n* reducer:\n`import {notificationsReducer} from 'veritone-widgets'`\n\n#### EngineOutputExport\n* reducer:\n`import {engineOutputExportReducer} from 'veritone-widgets'`\n\n#### OAuthLoginButton\n* reducers:\nveritone-redux-common `User`, `Auth` and `Config` reducers\n\n### Smart component theme wrapper requirements\nIn your app, import the `VeritoneSDKThemeProvider` from `veritone-react-common`:\n```\nimport {VeritoneSDKThemeProvider } from 'veritone-react-common'\n```\nthen wrap your root component with `<VeritoneSDKThemeProvider>`. If this is not possible, the `@withVeritoneSDKThemeProvider` decorator is provided to wrap individual components.\n\nComponents can be customized using [material-ui themes](https://material-ui.com/customization/themes/) by passing a theme into the `theme` prop of the provider. Passed-in themes will be merged with the default Veritone theme.\n\n## Using Widgets\n### 1. Create an instance of VeritoneApp\n`VeritoneApp` is a container for all the widgets and widget data in an app. Before using any widgets, you need to import and call it. Typically this will be done when your application is loaded and initialized.\n\n```javascript\nimport { VeritoneApp } from 'veritone-widgets'\nconst app = VeritoneApp();\n```\n\n_Note_: `VeritoneApp` creates a singleton, so you do not need to manage the constructed app instance yourself. As long as VeritoneApp() has been imported and called at least once, you can retrieve the same instance by importing and calling VeritoneApp() again elsewhere in your app, if needed.\n\n### 2. Authenticate with Veritone via OAuth\nIf you already have an OAuth token (because your app handles the client-side OAuth flow on its own), provide it by calling `login()` on the returned app instance.\n\n```javascript\nimport { VeritoneApp } from 'veritone-widgets'\nconst app = VeritoneApp().login({\n  OAuthToken: 'my-token-here'\n});\n```\n \nCalling `login()` is usually not necessary; we provide an `OAuthLoginButton` widget, which handles the OAuth token exchange automatically. See the instructions in the next section for more information.\n\n\n### 3. Add widgets to your app\nAfter you've initialized the app framework by calling `VeritoneApp()`, you can begin using widgets.\n\nA \"widget\" is a self-contained frontend component. Widgets always render into an empty element which you provide. They are self-contained and handle rendering a UI, responding to user interactions, making api calls, and so on.\n\nFor example, the `AppBar` widget renders the Veritone application toolbar, fetches the required data to render the Veritone app switcher and profile menu, and allows the developer to configure their application logo and title. When the user uses the app switcher or uses the profile menu to log out, the AppBar widget handles those events.  \n\nWidgets typically can be configured with a variety of options, but always require at least `elId`. This is the id (string) of an element in your document, often a `div`, into which the widget will be rendered. By applying styling to that div, you can position the widget around your app. The element specified in elId must exist in the document before you create the widget that will use it.\n\n#### Example: Using the OAuthLoginButton widget\nThe first widget you are likely to include is `OAuthLoginButton`. `OAuthLoginButton` renders a \"log in with Veritone\" button that your users can click to start the OAuth authentication flow. At the end of that flow, your VeritoneApp instance will be authenticated and able to make requests to our API. You can also retrieve the oauth token to use in your own app.\n\n_Note_: Unless you are handling the OAuth flow on your own and providing the token to VeritoneApp manually, the `OAuthLoginButton` widget is required for Veritone widgets to work.\n\nThe actual code you write to use widgets will vary based on your framework of choice, but in general, it should be as follows.\n\n```javascript\n// assuming VeritoneApp has already been initialized as described earlier, and given a document like:\n<body>\n  ...\n  <div id=\"login-button-widget\" />\n</body>\n\n// you can render the login button to the document like this:\nimport { OAuthLoginButtonWidget } from 'veritone-widgets'\nconst oauthButton = new OAuthLoginButtonWidget({\n  // the ID of an existing element in your document where the button will appear\n  elId: 'login-button-widget',\n  // the ID of your Veritone application (found in Developer App)\n  clientId: 'my-client-id',\n  // the route in your app that will handle OAuth responses (more details below)\n  redirectUri: 'https://my-app.com/handle_oauth_callback',\n  // optional callbacks to retrieve the OAuth token for using outside of VeritoneApp:\n  onAuthSuccess: ({ OAuthToken }) => console.log(OAuthToken),\n  onAuthFailure: (error) => console.log(error)\n});\n```\n\nWhen `new OAuthLoginButtonWidget({ ... })` runs, the widget will appear on your page.\n\n#### Example: Using the AppBar widget\nAll Veritone apps should also include the AppBar widget.\n\n```javascript\n<body>\n  <div id=\"appBar-widget\" />\n  ...\n</body>\n\nimport { AppBarWidget } from 'veritone-widgets'\nconst appBar = new AppBarWidget({\n  elId: 'appBar-widget',\n  title: 'My App',\n  backgroundColor: '#4caf50',\n  profileMenu: true,\n  appSwitcher: true\n});\n```\n\n## Use via script tag\nFor environments that do not support javascript module imports, widgets can also be included in an app via script tags.\n\n```\n<body>\n  <div id=\"appBar-widget\"></div>\n\n  <script src=\"https://unpkg.com/veritone-widgets@^5/dist/umd/VeritoneApp.js\"></script>\n  <script src=\"https://unpkg.com/veritone-widgets@^5/dist/umd/AppBar.js\"></script>\n\n  <script>\n    const app = VeritoneApp.default();\n\n    const appBar = new AppBar.AppBarWidget({\n      elId: 'appBar-widget',\n      title: 'AppBar Widget',\n      profileMenu: true,\n      appSwitcher: true\n    });\n  </script>\n</body>\n```\n\nAs you can see, each widget is bundled individually to keep file sizes small. In addition, VeritoneApp is separately bundled and required to use widgets. Scripts can be accessed from the the [unpkg](https://unpkg.com/) cdn or downloaded and hosted on your own infrastructure. Unpkg supports [semver ranges](https://docs.npmjs.com/misc/semver), or a specific version can be specified exactly. \n\n\n## Configuring widgets\nNote that the OAuthLoginButton widget in the example above is being configured with five properties: elId, clientId, OAuthURI, onAuthSuccess and onAuthFailure. As mentioned earlier, an elId is required for every widget. OAuthURI, clientId, onAuthSuccess and onAuthFailure are specific configurable properties on the OAuthLoginButton. As it is in the example, configuration is always provided to the widget constructor.\n\n## Widget instance methods\nSome widgets have methods which can be called on an instance of that widget. For example, the FilePicker widget has the methods `pick()` and `cancel()` to open and close the picker dialog, respectively.\n\n```javascript\nthis._picker = new FilePickerWidget({\n  elId: 'file-picker-widget',\n  accept: ['image/*'],\n  multiple: true\n});\n\n...\n// call the pick() instance method on the widget\nthis._picker.pick(files => console.log(files))\n```\n\n#### Where to look for widget options\nIn practice, a widget is just a wrapper around a React component. The easiest way to determine all the possible options for a given widget is to look at the PropTypes of its component. Remember to watch for console warnings which will indicate when an option was configured incorrectly, or when a required option was not provided. \n\n* The \"storybook\" dev environments in veritone-widgets and veritone-react-common have live examples of the various widgets and components.\n\n* The `story.js` file in the root of each widget folder in veritone-widgets and in the root of each component folder in veritone-react-common show the code used to create the storybook pages. If you are using React to write your application, these can be used directly as a basis for your own implementation. \n\n* The PropTypes in the source files of the various widgets (in veritone-widgets) and their respective components (in veritone-react-common) generally correspond to configurable options. Likewise, instance methods for a widget will be defined on its widget class in veritone-widgets.\n\n### Destroying widgets\nTo remove a widget, call `destroy()` on the instance\n```javascript\nconst oauthButton = new OAuthLoginButtonWidget({ ... });\n...\noauthButton.destroy();\n```\n\n## Available widgets\nThe current widgets are:\n\n**AppBar**\n\nThe title and navigation bar common between all Veritone applications. Includes a logo, title, the Veritone app switcher and profile menu.\n\n*Options:*\n\n* title: string, a title to show in the center of the AppBar\n* logoSrc: string, a URL or image (like an SVG) to use as the logo on the left-hand side of the AppBar.\n* backgroundColor: string, a color (in hex) to use for the AppBar background\n* profileMenu: bool, whether or not to show the profile menu\n* appSwitcher: bool, whether or not to show the app switcher menu\n* logo: bool, whether or not to show the veritone logo on the left side of the AppBar\n* onLogout: func, called when the user clicks \"logout\". Apps must implement their own logout logic (usually by deleting the stored oauth token and redirecting or refreshing the page appropriately)\n\n**OAuthLoginButton**\nThe \"Log in with Veritone\" button and corresponding frontend logic to handle the OAuth2 authentication flow.\n\n*Options:*\n* mode: \"implicit\" (default) or \"authCode\", the OAuth grant type you wish to use. \n* OAuthURI: string (required if using `authCode` mode), the URL of your app server's OAuth callback endpoint.\n* redirectUri: string (required if using `implicit` mode), the URL of your app frontend's OAuth callback endpoint.\n* clientID: string (required if using implicit mode), the ID of your Veritone application (found in Developer App)\n* onAuthSuccess: function, a callback that will be called with the OAuth token when the OAuth flow is completed successfully.\n* onAuthFailure: function, a callback that will be called with the error when the OAuth flow fails.\n\n*Requirements*\n\nVeritone provides two OAuth modes to suit different app requirements:\n\n`Implicit`, the default mode, is a frontend-only grant flow with no serverside requirement. _Most apps will use this mode._ This flow is much easier for apps to implement but has the downside of not returning a refresh token; users will need to log in again each time their token expires. \n\n`Auth Code` is a server-based grant flow, which uses your Veritone app's OAuth secret to retrieve both an auth token and refresh token. Auth code flow requires a server because the OAuth secret cannot be exposed to the client; the veritone-widets-server package is an example implementation, and more information can be found in its readme.\n\n**FilePicker**\n\nThe Veritone file upload dialog. Handles selecting and uploading files to S3 for use on the Veritone platform.\n\n*Options:*\n\n* accept: oneOfType([arrayOf(string), string]), file extension(s) or mimetype(s) which the file picker will accept\n* multiple: bool, whether the picker will accept multiple files to upload in a batch\n* width: number, the width of the filepicker dialog\n* height: number, the height of the filepicker dialog\n* allowUrlUpload: bool, whether the filepicker will allow files to be selected by URL\n\n*Instance methods*\n\n* pick(callback): open the filepicker dialog.\n  * callback signature is (result, { warning, error, cancelled })\n    * result: array of result objects, one for each file uploaded\n      * key: string, the filename as stored on the server (may include a UUID)\n      * fileName: string, the original filename\n      * size: number, the file size in bytes\n      * type: string, the mime type of the file\n      * error: string or `false`, the error that prevented the file from uploading, if any\n      * bucket: string, the S3 bucket to which the file was uploaded\n      * expiresInSeconds: number, the length of time the credentials in `getUrl` will be valid, in seconds.\n      * getUrl: string or `null`, the resulting S3 URL, if successful. Includes credentials that are valid for `expires` seconds. \n      * unsignedUrl: string or `null`, the resulting S3 URL, if successful. Does not include credentials and will need to be signed to be used.\n    * warning: string or `false`, a warning message if some (but not all) files failed to upload. A warning indicates that `result` contains some successful upload result objects, and some that were not successful (unsuccessful objects will have `error` populated with an error message, as noted above)\n    * error: string or `false`, an error message, if all files failed to upload.\n    * cancelled: bool, whether or not the filepicker interaction was cancelled (by the user, or by calling cancel()).\n\n* cancel(): close the filepicker dialog. The callback provided to pick() will be called with `(null, { cancelled: true })`.\n\n**Table**\n\nA Veritone table to display data.\n\n*Options:*\n\n* data: arrayOf(object) (required), the dataset\n* columns: arrayOf(shape) (required), a set of defintions for each column to be displayed\n  * shape: object with the following keys:\n    * dataKey: string (required), the data attribute to display within column \n    * header: string, the column heading\n    * transform: function, specifies how column data should be displayed\n      * signature: `(cellValue) => {}`\n    * menu: bool, identifies a column as a menu column\n    * onSelectItem: function, when `menu` is `true`, specifies action(s) to take when a menu option is clicked\n      * signature: `(menuAction) => {}`\n    * cursorPointer: bool, show cursor pointer over table cells\n    * align: string, specifies columm alignment: `['left', 'right', 'center']`\n    * width: number, specifies the width of a column\n* paginate: bool, specifies whether table data should be paginated\n* initialItemsPerPage: number, the number of items to display per page in a paginated table,\n* onCellClick: function, specifies action to take when a table cell is clicked\n  * signature: `(cellRow, cellColumn, cellData) => {}`\n* focusedRow: number, identifies a row to display additional content for\n* renderFocusedRowDetails: function, specifies additional content to display for `focusedRow`\n  * signature: `(focusedRowData) => (string | react component)`\n* onShowCellRange: function, fires when table page or rows (on page) changes;\n  * signature: `({ start: firstRowIndex, end: lastRowIndex }) => {}`\n* onRefreshPageData: function, specifies how to refresh data (if needed)\n  * signature: `() => {}`\n* emptyMessage: string, text to display when table has no data\n\n**EngineOutputExport**\n\nThe Veritone export engine outputs full screen dialog. This will fetch the engines ran on a tdo/recording and allow the user to configure what file types are included in the export\n\n*Options:*\n\n* tdos: arrayOf(shape), array of tdo data objects that engine outputs will be exported for\n  * shape: object with the following keys:\n    * tdoId: string (required), the unique id of a tdo you want to export engine outputs for\n    * mentionId: string, the unique id of a mention you want to export engine outputs for. If a mentionId is provided the engine results of the mention will be returned rather than those of the tdo\n    * startOffsetMs: number, an integer representing the number of milliseconds from the start of the tdo where the exported engine outputs will begin\n    * stopOffsetMs: number, an integer representing the number of milliseconds from the start of the tdo where the exported engine outputs will end\n* onExport: func, specifies action to take when export button is clicked\n  * signature: `(response) => {}`\n* onCancel: func, specifies action to take when cancel button is clicked\n  * signature: `() => {}`\n\n*Instance methods*\n\n* open(): opens the export engine output dialog.\n\n## Running the development environment (storybook)\n1. Set up your local clone of veritone-sdk, following the instructions in the [main readme](https://github.com/veritone/veritone-sdk#development)\n2. cd to this package\n3. In `config.dev.json`, fill in the missing fields with your own app's information (see our [application quick-start guide](http://docs.veritone.com/#/applications/quick-start/) for more info on how to create an app). **Your app's `URL` and `redirect URL` should be set to the same value** for the purposes of dev in this package. This default allows the environment to run with minimal config. \n4. run `yarn start`.\n5. When the build finishes, access the storybook at the url provided in your terminal.\n\n## License\nCopyright 2019, Veritone Inc.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n","scripts":{"lint":"yarn run lint:js && yarn run lint:styles","test":"jest","build":"yarn run build:es && yarn run build:cjs && yarn run build:script-tag","start":"yarn run start:widget-server; yarn run start:storybook","format":"prettier --write \"./src/**/*.{js,scss}\"","lint:js":"eslint src/** --ext .js --max-warnings 0","build:es":"cross-env NODE_ENV=production BABEL_ENV=production-es rollup -c rollup.config.es.js","prebuild":"yarn run clean:build","build:cjs":"cross-env NODE_ENV=production BABEL_ENV=production-cjs rollup -c rollup.config.cjs.js","test:watch":"jest --watch","build:watch":"cross-env NODE_ENV=production rollup -c --watch","clean:build":"rimraf dist","lint:styles":"stylelint \"src/**/*.{scss, css}\"","prepublishOnly":"yarn run test && yarn run lint && yarn run build","build:storybook":"NODE_ENV=production build-storybook -c .storybook -o docs-static","start:storybook":"NODE_ENV=test start-storybook -p 3000 -c .storybook","build:script-tag":"cross-env NODE_ENV=production BABEL_ENV=production-cjs webpack --config webpack.config.script-tag.js","start:widget-server":"yarn workspace veritone-widgets-server run start &"},"_npmUser":{"name":"linh.le","email":"linh.le@setacinq.vn"},"_npmVersion":"6.13.7","description":"As of v5.0.0, this package exports both React \"smart components\" and framework agnostic \"widgets\" for most components. When both are available, the smart component is the default export and the widget is a named export. For example, `import FilePicker, { ","directories":{},"jsnext:main":"dist/bundle-es.js","_nodeVersion":"8.15.1","dependencies":{"react":"^16.9.0","redux":"^4.0.4","deepmerge":"^4.2.2","react-dom":"^16.9.0","recompose":"^0.30.0","redux-saga":"^1.1.3","react-redux":"^7.1.3","redux-thunk":"^2.3.0","video-react":"~0.13.3","shaka-player":"^2.4.1","babel-runtime":"^6.26.0","react-cropper":"^1.3.0","babel-polyfill":"^6.26.0","@material-ui/lab":"^4.0.0-alpha.45","react-redux-saga":"^1.0.2","@material-ui/core":"^4.9.5","react-virtualized":"^9.18.5","@material-ui/icons":"^4.9.1","@material-ui/styles":"^4.9.0","immutability-helper":"^3.0.0","@material-ui/pickers":"^3.2.10","redux-dynamic-modules":"^5.2.0","veritone-react-common":"^9.0.6","veritone-redux-common":"^3.11.4","veritone-oauth-helpers":"^2.1.0","redux-api-middleware-fixed":"^2.0.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"raf":"^3.4.0","jest":"^22.4.3","faker":"^4.1.0","enzyme":"^3.5.0","eslint":"^4.8.0","rimraf":"^2.6.2","rollup":"^1.17.0","webpack":"^4.0.1","cross-env":"^5.1.1","node-sass":"^4.7.2","stylelint":"^8.2.0","babel-core":"^6.26.0","url-loader":"^0.6.2","sass-loader":"^6.0.6","webpack-cli":"^2.0.9","babel-loader":"^7.1.3","redux-logger":"^3.0.6","redux-devtools":"^3.5.0","@storybook/react":"v3.3.9","redux-mock-store":"^1.5.4","veritone-dev-env":"^3.0.0","rollup-plugin-url":"^2.2.2","identity-obj-proxy":"^3.0.0","redux-validate-fsa":"^0.1.2","rollup-plugin-json":"^4.0.0","babel-plugin-lodash":"^3.3.2","eslint-plugin-react":"^7.8.2","react-test-renderer":"^16.0.0","rollup-plugin-alias":"^1.5.2","rollup-plugin-babel":"^3.0.7","eslint-plugin-import":"^2.10.0","eslint-plugin-lodash":"^2.4.5","babel-plugin-date-fns":"^0.2.1","eslint-plugin-promise":"^3.5.0","rollup-plugin-postcss":"^2.0.3","rollup-plugin-replace":"^2.2.0","@storybook/addon-knobs":"3.3.9","eslint-config-prettier":"^2.6.0","rollup-analyzer-plugin":"^1.2.0","rollup-plugin-commonjs":"^10.0.1","enzyme-adapter-react-16":"^1.0.0","stylelint-config-prettier":"^4.0.0","stylelint-config-standard":"^17.0.0","rollup-plugin-node-resolve":"^5.2.0","babel-plugin-external-helpers":"^6.22.0","babel-plugin-transform-runtime":"^6.23.0","redux-immutable-state-invariant":"^2.1.0","babel-plugin-add-react-displayname":"^0.0.5","babel-plugin-transform-class-properties":"^6.24.1","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-plugin-transform-export-extensions":"^6.22.0","babel-plugin-transform-object-rest-spread":"^6.26.0"},"_npmOperationalInternal":{"tmp":"tmp/veritone-widgets_9.0.2_1586255079699_0.5581677085845638","host":"s3://npm-registry-packages"}},"9.0.3":{"name":"veritone-widgets","version":"9.0.3","license":"Apache-2.0","_id":"veritone-widgets@9.0.3","maintainers":[{"name":"aaronadaniel","email":"aaron.kalel@gmail.com"},{"name":"albertcbrown","email":"al@veritone.com"},{"name":"christopher-gustavsson","email":"chrisgustavsson1@gmail.com"},{"name":"coolmitch","email":"robb.mitch@gmail.com"},{"name":"kkaiser","email":"kkaiser@veritone.com"},{"name":"linh.le","email":"linh.le@setacinq.vn"},{"name":"mikomonday","email":"miko.monday@gmail.com"},{"name":"mmtbkn","email":"mohamedirvine@gmail.com"},{"name":"seta-tuha","email":"tu.ha@setacinq.vn"},{"name":"truong_veritone","email":"ktruong@veritone.com"},{"name":"veritone_dev","email":"dev@veritone.com"},{"name":"veritone-jordan","email":"jbelford@veritone.com"}],"dist":{"shasum":"ccf8fc33144c0dffa378d8f954d876a8e659952d","tarball":"https://registry.npmjs.org/veritone-widgets/-/veritone-widgets-9.0.3.tgz","fileCount":188,"integrity":"sha512-ok4A/E2AO2dG3oDuvmPrKvAVNwHsUlNO8u5vEH4qAlDlVS9Zw8Y28HmTmiHqbfkNc+gfC3LKTOFrDu3PJTL7iA==","signatures":[{"sig":"MEUCIH32LtqmAQRKM+U4x12l7d1CzqQHIsKd2Hzoy7u8eeBrAiEAiWfh7A56FfO/AFN55bQQJNUGCZ67XsKxg6Vt7hfUZ/8=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":29294039,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJenrCqCRA9TVsSAnZWagAAhD4P/R7XpTS6MxNzOpcyX82q\naASLgWqx3N+P3PrBRFI6rfxbsOz2C1EwVY+wQHT38QsNvo/pgL0+x4aMHakD\nIZ0aMM8ot1D+jF5I3PFXfxqH/k51ABnPn1Ln0e0GgYb5LfE2kPRZ2Q2OasQ9\nvQOr8RxuczavXFfDOxUA/FuRA1WObl6LttWRkvjm7LsKOgdTn+gmwAz8P8FP\nHpbSxSfKa7fLyONv5s+Se2+9CwnAyxA9yHpmWjfA2Ktcu+Bd0kKNu0E53ajU\nCpfVo9APw472dM68b9InqQyS57QATRPC82W78BM+tv/97ya5r3if+UyRGD1s\nndjAoLjbote6jwHK4Z5iwoA8yHhKelAiw6caP1kvunfhFuC9xZX6Ngb16TLV\nZ6Gjwh0W+7ZnDZ4PRP1BFQWFmjfJF5xoshP7kRfierhesD38kDYmnYuH7JqY\nLNsMA78p9X4SO+1p4GeC4mRmsmBYsWZAs0SOZP494TwLVliIFHVWTnDfJDNF\nmvOmRHadNh3YkPzlNqHcp2K38NOkqUqamF1rcNjJZn5aRK/XG2+5xHK42+uO\nJbNMh6m+5FTbhJWdXvpvvkfWhiBmIoNoOOULvMNW+eITZEokaOIhGT9FEeQt\nWn7ctkMuvVT8WK0LNIL8cU/ns1WWFVfurch4IIg+Ckgx8oJ1MigDk1jYvYUV\n/zDl\r\n=pZuo\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"setupFiles":["<rootDir>/test/testSuitePolyfills.js","<rootDir>/test/configureEnzyme.js"],"moduleNameMapper":{"^dnd-core$":"dnd-core/dist/cjs","^react-dnd$":"react-dnd/dist/cjs","\\.(css|scss)$":"identity-obj-proxy","^react-dnd-test-utils$":"react-dnd-test-utils/dist/cjs","^react-dnd-test-backend$":"react-dnd-test-backend/dist/cjs","^react-dnd-html5-backend$":"react-dnd-html5-backend/dist/cjs","^react-dnd-touch-backend$":"react-dnd-touch-backend/dist/cjs","\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$":"<rootDir>/test/__mocks__/fileMock.js"},"moduleDirectories":["node_modules","../../node_modules"],"moduleFileExtensions":["js","jsx"]},"main":"dist/bundle-cjs.js","module":"dist/bundle-es.js","readme":"## Quick Start\nAs of v5.0.0, this package exports both React \"smart components\" and framework agnostic \"widgets\" for most components. When both are available, the smart component is the default export and the widget is a named export. For example, `import FilePicker, { FilePickerWidget } from 'veritone-widgets'` imports the smart component as FilePicker and the widget as FilePickerWidget. Smart components usually require redux reducers and sagas to be imported as well, see [Using Smart Components](#using-smart-components)\n\n### Widgets (framework agnostic)\n```javascript\nimport { VeritoneApp, OAuthLoginButtonWidget, AppBarWidget } from 'veritone-widgets'\nconst app = VeritoneApp();\n\n// a \"log in with veritone\" button\nconst oauthButton = new OAuthLoginButtonWidget({\n  // the ID of an existing element in your document where the button will appear\n  elId: 'login-button-widget',\n  // the ID of your Veritone application (found in Developer App)\n  clientId: 'my-client-id',\n  // the route in your app that will handle OAuth responses (more details below)\n  redirectUri: 'https://my-app.com/handle_oauth_callback',\n  // optional callbacks to retrieve the OAuth token for using outside of VeritoneApp:\n  onAuthSuccess: ({ OAuthToken }) => console.log(OAuthToken),\n  onAuthFailure: (error) => console.log(error)\n});\n\n// the Veritone app bar, which will receive auth after the user completes\n// the oauth flow using the OAuthLoginButton\nconst appBar = new AppBarWidget({\n  elId: 'appBar-widget',\n  title: 'My App',\n  backgroundColor: '#4caf50',\n  profileMenu: true,\n  appSwitcher: true\n});\n```\n### React Components\n```javascript\nimport { OAuthLoginButton } from 'veritone-widgets'\n\nrender(\n  <OAuthLoginButton\n    clientId=\"my-client-id\"\n    redirectUri=\"https://my-app.com/handle_oauth_callback\"\n  />\n)\n```\n\n## Using Smart Components\nBecause smart components are not rendered within the VeritoneApp widget framework, they require the user's app to have its own redux store with the components' reducers installed. Often, [sagas](https://redux-saga.js.org/) are also included and must be started as part of the app's root saga.\n\n### Smart component reducer/saga requirements\n#### FilePicker\n* reducer:\n`import {filePickerReducer} from 'veritone-widgets'`\n\n* saga:\n`import {filePickerSaga} from 'veritone-widgets'`\n\n#### Notifications\n* reducer:\n`import {notificationsReducer} from 'veritone-widgets'`\n\n#### EngineOutputExport\n* reducer:\n`import {engineOutputExportReducer} from 'veritone-widgets'`\n\n#### OAuthLoginButton\n* reducers:\nveritone-redux-common `User`, `Auth` and `Config` reducers\n\n### Smart component theme wrapper requirements\nIn your app, import the `VeritoneSDKThemeProvider` from `veritone-react-common`:\n```\nimport {VeritoneSDKThemeProvider } from 'veritone-react-common'\n```\nthen wrap your root component with `<VeritoneSDKThemeProvider>`. If this is not possible, the `@withVeritoneSDKThemeProvider` decorator is provided to wrap individual components.\n\nComponents can be customized using [material-ui themes](https://material-ui.com/customization/themes/) by passing a theme into the `theme` prop of the provider. Passed-in themes will be merged with the default Veritone theme.\n\n## Using Widgets\n### 1. Create an instance of VeritoneApp\n`VeritoneApp` is a container for all the widgets and widget data in an app. Before using any widgets, you need to import and call it. Typically this will be done when your application is loaded and initialized.\n\n```javascript\nimport { VeritoneApp } from 'veritone-widgets'\nconst app = VeritoneApp();\n```\n\n_Note_: `VeritoneApp` creates a singleton, so you do not need to manage the constructed app instance yourself. As long as VeritoneApp() has been imported and called at least once, you can retrieve the same instance by importing and calling VeritoneApp() again elsewhere in your app, if needed.\n\n### 2. Authenticate with Veritone via OAuth\nIf you already have an OAuth token (because your app handles the client-side OAuth flow on its own), provide it by calling `login()` on the returned app instance.\n\n```javascript\nimport { VeritoneApp } from 'veritone-widgets'\nconst app = VeritoneApp().login({\n  OAuthToken: 'my-token-here'\n});\n```\n \nCalling `login()` is usually not necessary; we provide an `OAuthLoginButton` widget, which handles the OAuth token exchange automatically. See the instructions in the next section for more information.\n\n\n### 3. Add widgets to your app\nAfter you've initialized the app framework by calling `VeritoneApp()`, you can begin using widgets.\n\nA \"widget\" is a self-contained frontend component. Widgets always render into an empty element which you provide. They are self-contained and handle rendering a UI, responding to user interactions, making api calls, and so on.\n\nFor example, the `AppBar` widget renders the Veritone application toolbar, fetches the required data to render the Veritone app switcher and profile menu, and allows the developer to configure their application logo and title. When the user uses the app switcher or uses the profile menu to log out, the AppBar widget handles those events.  \n\nWidgets typically can be configured with a variety of options, but always require at least `elId`. This is the id (string) of an element in your document, often a `div`, into which the widget will be rendered. By applying styling to that div, you can position the widget around your app. The element specified in elId must exist in the document before you create the widget that will use it.\n\n#### Example: Using the OAuthLoginButton widget\nThe first widget you are likely to include is `OAuthLoginButton`. `OAuthLoginButton` renders a \"log in with Veritone\" button that your users can click to start the OAuth authentication flow. At the end of that flow, your VeritoneApp instance will be authenticated and able to make requests to our API. You can also retrieve the oauth token to use in your own app.\n\n_Note_: Unless you are handling the OAuth flow on your own and providing the token to VeritoneApp manually, the `OAuthLoginButton` widget is required for Veritone widgets to work.\n\nThe actual code you write to use widgets will vary based on your framework of choice, but in general, it should be as follows.\n\n```javascript\n// assuming VeritoneApp has already been initialized as described earlier, and given a document like:\n<body>\n  ...\n  <div id=\"login-button-widget\" />\n</body>\n\n// you can render the login button to the document like this:\nimport { OAuthLoginButtonWidget } from 'veritone-widgets'\nconst oauthButton = new OAuthLoginButtonWidget({\n  // the ID of an existing element in your document where the button will appear\n  elId: 'login-button-widget',\n  // the ID of your Veritone application (found in Developer App)\n  clientId: 'my-client-id',\n  // the route in your app that will handle OAuth responses (more details below)\n  redirectUri: 'https://my-app.com/handle_oauth_callback',\n  // optional callbacks to retrieve the OAuth token for using outside of VeritoneApp:\n  onAuthSuccess: ({ OAuthToken }) => console.log(OAuthToken),\n  onAuthFailure: (error) => console.log(error)\n});\n```\n\nWhen `new OAuthLoginButtonWidget({ ... })` runs, the widget will appear on your page.\n\n#### Example: Using the AppBar widget\nAll Veritone apps should also include the AppBar widget.\n\n```javascript\n<body>\n  <div id=\"appBar-widget\" />\n  ...\n</body>\n\nimport { AppBarWidget } from 'veritone-widgets'\nconst appBar = new AppBarWidget({\n  elId: 'appBar-widget',\n  title: 'My App',\n  backgroundColor: '#4caf50',\n  profileMenu: true,\n  appSwitcher: true\n});\n```\n\n## Use via script tag\nFor environments that do not support javascript module imports, widgets can also be included in an app via script tags.\n\n```\n<body>\n  <div id=\"appBar-widget\"></div>\n\n  <script src=\"https://unpkg.com/veritone-widgets@^5/dist/umd/VeritoneApp.js\"></script>\n  <script src=\"https://unpkg.com/veritone-widgets@^5/dist/umd/AppBar.js\"></script>\n\n  <script>\n    const app = VeritoneApp.default();\n\n    const appBar = new AppBar.AppBarWidget({\n      elId: 'appBar-widget',\n      title: 'AppBar Widget',\n      profileMenu: true,\n      appSwitcher: true\n    });\n  </script>\n</body>\n```\n\nAs you can see, each widget is bundled individually to keep file sizes small. In addition, VeritoneApp is separately bundled and required to use widgets. Scripts can be accessed from the the [unpkg](https://unpkg.com/) cdn or downloaded and hosted on your own infrastructure. Unpkg supports [semver ranges](https://docs.npmjs.com/misc/semver), or a specific version can be specified exactly. \n\n\n## Configuring widgets\nNote that the OAuthLoginButton widget in the example above is being configured with five properties: elId, clientId, OAuthURI, onAuthSuccess and onAuthFailure. As mentioned earlier, an elId is required for every widget. OAuthURI, clientId, onAuthSuccess and onAuthFailure are specific configurable properties on the OAuthLoginButton. As it is in the example, configuration is always provided to the widget constructor.\n\n## Widget instance methods\nSome widgets have methods which can be called on an instance of that widget. For example, the FilePicker widget has the methods `pick()` and `cancel()` to open and close the picker dialog, respectively.\n\n```javascript\nthis._picker = new FilePickerWidget({\n  elId: 'file-picker-widget',\n  accept: ['image/*'],\n  multiple: true\n});\n\n...\n// call the pick() instance method on the widget\nthis._picker.pick(files => console.log(files))\n```\n\n#### Where to look for widget options\nIn practice, a widget is just a wrapper around a React component. The easiest way to determine all the possible options for a given widget is to look at the PropTypes of its component. Remember to watch for console warnings which will indicate when an option was configured incorrectly, or when a required option was not provided. \n\n* The \"storybook\" dev environments in veritone-widgets and veritone-react-common have live examples of the various widgets and components.\n\n* The `story.js` file in the root of each widget folder in veritone-widgets and in the root of each component folder in veritone-react-common show the code used to create the storybook pages. If you are using React to write your application, these can be used directly as a basis for your own implementation. \n\n* The PropTypes in the source files of the various widgets (in veritone-widgets) and their respective components (in veritone-react-common) generally correspond to configurable options. Likewise, instance methods for a widget will be defined on its widget class in veritone-widgets.\n\n### Destroying widgets\nTo remove a widget, call `destroy()` on the instance\n```javascript\nconst oauthButton = new OAuthLoginButtonWidget({ ... });\n...\noauthButton.destroy();\n```\n\n## Available widgets\nThe current widgets are:\n\n**AppBar**\n\nThe title and navigation bar common between all Veritone applications. Includes a logo, title, the Veritone app switcher and profile menu.\n\n*Options:*\n\n* title: string, a title to show in the center of the AppBar\n* logoSrc: string, a URL or image (like an SVG) to use as the logo on the left-hand side of the AppBar.\n* backgroundColor: string, a color (in hex) to use for the AppBar background\n* profileMenu: bool, whether or not to show the profile menu\n* appSwitcher: bool, whether or not to show the app switcher menu\n* logo: bool, whether or not to show the veritone logo on the left side of the AppBar\n* onLogout: func, called when the user clicks \"logout\". Apps must implement their own logout logic (usually by deleting the stored oauth token and redirecting or refreshing the page appropriately)\n\n**OAuthLoginButton**\nThe \"Log in with Veritone\" button and corresponding frontend logic to handle the OAuth2 authentication flow.\n\n*Options:*\n* mode: \"implicit\" (default) or \"authCode\", the OAuth grant type you wish to use. \n* OAuthURI: string (required if using `authCode` mode), the URL of your app server's OAuth callback endpoint.\n* redirectUri: string (required if using `implicit` mode), the URL of your app frontend's OAuth callback endpoint.\n* clientID: string (required if using implicit mode), the ID of your Veritone application (found in Developer App)\n* onAuthSuccess: function, a callback that will be called with the OAuth token when the OAuth flow is completed successfully.\n* onAuthFailure: function, a callback that will be called with the error when the OAuth flow fails.\n\n*Requirements*\n\nVeritone provides two OAuth modes to suit different app requirements:\n\n`Implicit`, the default mode, is a frontend-only grant flow with no serverside requirement. _Most apps will use this mode._ This flow is much easier for apps to implement but has the downside of not returning a refresh token; users will need to log in again each time their token expires. \n\n`Auth Code` is a server-based grant flow, which uses your Veritone app's OAuth secret to retrieve both an auth token and refresh token. Auth code flow requires a server because the OAuth secret cannot be exposed to the client; the veritone-widets-server package is an example implementation, and more information can be found in its readme.\n\n**FilePicker**\n\nThe Veritone file upload dialog. Handles selecting and uploading files to S3 for use on the Veritone platform.\n\n*Options:*\n\n* accept: oneOfType([arrayOf(string), string]), file extension(s) or mimetype(s) which the file picker will accept\n* multiple: bool, whether the picker will accept multiple files to upload in a batch\n* width: number, the width of the filepicker dialog\n* height: number, the height of the filepicker dialog\n* allowUrlUpload: bool, whether the filepicker will allow files to be selected by URL\n\n*Instance methods*\n\n* pick(callback): open the filepicker dialog.\n  * callback signature is (result, { warning, error, cancelled })\n    * result: array of result objects, one for each file uploaded\n      * key: string, the filename as stored on the server (may include a UUID)\n      * fileName: string, the original filename\n      * size: number, the file size in bytes\n      * type: string, the mime type of the file\n      * error: string or `false`, the error that prevented the file from uploading, if any\n      * bucket: string, the S3 bucket to which the file was uploaded\n      * expiresInSeconds: number, the length of time the credentials in `getUrl` will be valid, in seconds.\n      * getUrl: string or `null`, the resulting S3 URL, if successful. Includes credentials that are valid for `expires` seconds. \n      * unsignedUrl: string or `null`, the resulting S3 URL, if successful. Does not include credentials and will need to be signed to be used.\n    * warning: string or `false`, a warning message if some (but not all) files failed to upload. A warning indicates that `result` contains some successful upload result objects, and some that were not successful (unsuccessful objects will have `error` populated with an error message, as noted above)\n    * error: string or `false`, an error message, if all files failed to upload.\n    * cancelled: bool, whether or not the filepicker interaction was cancelled (by the user, or by calling cancel()).\n\n* cancel(): close the filepicker dialog. The callback provided to pick() will be called with `(null, { cancelled: true })`.\n\n**Table**\n\nA Veritone table to display data.\n\n*Options:*\n\n* data: arrayOf(object) (required), the dataset\n* columns: arrayOf(shape) (required), a set of defintions for each column to be displayed\n  * shape: object with the following keys:\n    * dataKey: string (required), the data attribute to display within column \n    * header: string, the column heading\n    * transform: function, specifies how column data should be displayed\n      * signature: `(cellValue) => {}`\n    * menu: bool, identifies a column as a menu column\n    * onSelectItem: function, when `menu` is `true`, specifies action(s) to take when a menu option is clicked\n      * signature: `(menuAction) => {}`\n    * cursorPointer: bool, show cursor pointer over table cells\n    * align: string, specifies columm alignment: `['left', 'right', 'center']`\n    * width: number, specifies the width of a column\n* paginate: bool, specifies whether table data should be paginated\n* initialItemsPerPage: number, the number of items to display per page in a paginated table,\n* onCellClick: function, specifies action to take when a table cell is clicked\n  * signature: `(cellRow, cellColumn, cellData) => {}`\n* focusedRow: number, identifies a row to display additional content for\n* renderFocusedRowDetails: function, specifies additional content to display for `focusedRow`\n  * signature: `(focusedRowData) => (string | react component)`\n* onShowCellRange: function, fires when table page or rows (on page) changes;\n  * signature: `({ start: firstRowIndex, end: lastRowIndex }) => {}`\n* onRefreshPageData: function, specifies how to refresh data (if needed)\n  * signature: `() => {}`\n* emptyMessage: string, text to display when table has no data\n\n**EngineOutputExport**\n\nThe Veritone export engine outputs full screen dialog. This will fetch the engines ran on a tdo/recording and allow the user to configure what file types are included in the export\n\n*Options:*\n\n* tdos: arrayOf(shape), array of tdo data objects that engine outputs will be exported for\n  * shape: object with the following keys:\n    * tdoId: string (required), the unique id of a tdo you want to export engine outputs for\n    * mentionId: string, the unique id of a mention you want to export engine outputs for. If a mentionId is provided the engine results of the mention will be returned rather than those of the tdo\n    * startOffsetMs: number, an integer representing the number of milliseconds from the start of the tdo where the exported engine outputs will begin\n    * stopOffsetMs: number, an integer representing the number of milliseconds from the start of the tdo where the exported engine outputs will end\n* onExport: func, specifies action to take when export button is clicked\n  * signature: `(response) => {}`\n* onCancel: func, specifies action to take when cancel button is clicked\n  * signature: `() => {}`\n\n*Instance methods*\n\n* open(): opens the export engine output dialog.\n\n## Running the development environment (storybook)\n1. Set up your local clone of veritone-sdk, following the instructions in the [main readme](https://github.com/veritone/veritone-sdk#development)\n2. cd to this package\n3. In `config.dev.json`, fill in the missing fields with your own app's information (see our [application quick-start guide](http://docs.veritone.com/#/applications/quick-start/) for more info on how to create an app). **Your app's `URL` and `redirect URL` should be set to the same value** for the purposes of dev in this package. This default allows the environment to run with minimal config. \n4. run `yarn start`.\n5. When the build finishes, access the storybook at the url provided in your terminal.\n\n## License\nCopyright 2019, Veritone Inc.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n","scripts":{"lint":"yarn run lint:js && yarn run lint:styles","test":"jest","build":"yarn run build:es && yarn run build:cjs && yarn run build:script-tag","start":"yarn run start:widget-server; yarn run start:storybook","format":"prettier --write \"./src/**/*.{js,scss}\"","lint:js":"eslint src/** --ext .js --max-warnings 0","build:es":"cross-env NODE_ENV=production BABEL_ENV=production-es rollup -c rollup.config.es.js","prebuild":"yarn run clean:build","build:cjs":"cross-env NODE_ENV=production BABEL_ENV=production-cjs rollup -c rollup.config.cjs.js","test:watch":"jest --watch","build:watch":"cross-env NODE_ENV=production rollup -c --watch","clean:build":"rimraf dist","lint:styles":"stylelint \"src/**/*.{scss, css}\"","prepublishOnly":"yarn run test && yarn run lint && yarn run build","build:storybook":"NODE_ENV=production build-storybook -c .storybook -o docs-static","start:storybook":"NODE_ENV=test start-storybook -p 3000 -c .storybook","build:script-tag":"cross-env NODE_ENV=production BABEL_ENV=production-cjs webpack --config webpack.config.script-tag.js","start:widget-server":"yarn workspace veritone-widgets-server run start &"},"_npmUser":{"name":"linh.le","email":"linh.le@setacinq.vn"},"_npmVersion":"6.13.7","description":"As of v5.0.0, this package exports both React \"smart components\" and framework agnostic \"widgets\" for most components. When both are available, the smart component is the default export and the widget is a named export. For example, `import FilePicker, { ","directories":{},"jsnext:main":"dist/bundle-es.js","_nodeVersion":"8.15.1","dependencies":{"react":"^16.9.0","redux":"^4.0.4","deepmerge":"^4.2.2","react-dom":"^16.9.0","recompose":"^0.30.0","redux-saga":"^1.1.3","react-redux":"^7.1.3","redux-thunk":"^2.3.0","video-react":"~0.13.3","shaka-player":"^2.4.1","babel-runtime":"^6.26.0","react-cropper":"^1.3.0","babel-polyfill":"^6.26.0","@material-ui/lab":"^4.0.0-alpha.45","react-redux-saga":"^1.0.2","@material-ui/core":"^4.9.5","react-virtualized":"^9.18.5","@material-ui/icons":"^4.9.1","@material-ui/styles":"^4.9.0","immutability-helper":"^3.0.0","@material-ui/pickers":"^3.2.10","redux-dynamic-modules":"^5.2.0","veritone-react-common":"^9.0.7","veritone-redux-common":"^3.11.4","veritone-oauth-helpers":"^2.1.0","redux-api-middleware-fixed":"^2.0.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"raf":"^3.4.0","jest":"^22.4.3","faker":"^4.1.0","enzyme":"^3.5.0","eslint":"^4.8.0","rimraf":"^2.6.2","rollup":"^1.17.0","webpack":"^4.0.1","cross-env":"^5.1.1","node-sass":"^4.7.2","stylelint":"^8.2.0","babel-core":"^6.26.0","url-loader":"^0.6.2","sass-loader":"^6.0.6","webpack-cli":"^2.0.9","babel-loader":"^7.1.3","redux-logger":"^3.0.6","redux-devtools":"^3.5.0","@storybook/react":"v3.3.9","redux-mock-store":"^1.5.4","veritone-dev-env":"^3.0.0","rollup-plugin-url":"^2.2.2","identity-obj-proxy":"^3.0.0","redux-validate-fsa":"^0.1.2","rollup-plugin-json":"^4.0.0","babel-plugin-lodash":"^3.3.2","eslint-plugin-react":"^7.8.2","react-test-renderer":"^16.0.0","rollup-plugin-alias":"^1.5.2","rollup-plugin-babel":"^3.0.7","eslint-plugin-import":"^2.10.0","eslint-plugin-lodash":"^2.4.5","babel-plugin-date-fns":"^0.2.1","eslint-plugin-promise":"^3.5.0","rollup-plugin-postcss":"^2.0.3","rollup-plugin-replace":"^2.2.0","@storybook/addon-knobs":"3.3.9","eslint-config-prettier":"^2.6.0","rollup-analyzer-plugin":"^1.2.0","rollup-plugin-commonjs":"^10.0.1","enzyme-adapter-react-16":"^1.0.0","stylelint-config-prettier":"^4.0.0","stylelint-config-standard":"^17.0.0","rollup-plugin-node-resolve":"^5.2.0","babel-plugin-external-helpers":"^6.22.0","babel-plugin-transform-runtime":"^6.23.0","redux-immutable-state-invariant":"^2.1.0","babel-plugin-add-react-displayname":"^0.0.5","babel-plugin-transform-class-properties":"^6.24.1","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-plugin-transform-export-extensions":"^6.22.0","babel-plugin-transform-object-rest-spread":"^6.26.0"},"_npmOperationalInternal":{"tmp":"tmp/veritone-widgets_9.0.3_1587458217303_0.6060816263186941","host":"s3://npm-registry-packages"}},"9.0.4":{"name":"veritone-widgets","version":"9.0.4","license":"Apache-2.0","_id":"veritone-widgets@9.0.4","maintainers":[{"name":"aaronadaniel","email":"aaron.kalel@gmail.com"},{"name":"albertcbrown","email":"al@veritone.com"},{"name":"christopher-gustavsson","email":"chrisgustavsson1@gmail.com"},{"name":"coolmitch","email":"robb.mitch@gmail.com"},{"name":"kkaiser","email":"kkaiser@veritone.com"},{"name":"linh.le","email":"linh.le@setacinq.vn"},{"name":"mikomonday","email":"miko.monday@gmail.com"},{"name":"mmtbkn","email":"mohamedirvine@gmail.com"},{"name":"seta-tuha","email":"tu.ha@setacinq.vn"},{"name":"truong_veritone","email":"ktruong@veritone.com"},{"name":"veritone_dev","email":"dev@veritone.com"},{"name":"veritone-jordan","email":"jbelford@veritone.com"}],"dist":{"shasum":"3103e7e3057f67c3de7bdd10863c0589b4433ef9","tarball":"https://registry.npmjs.org/veritone-widgets/-/veritone-widgets-9.0.4.tgz","fileCount":188,"integrity":"sha512-4PPBv1GhvPoaH/JIrmDDlz8TqpTbWYbMtGOpyfzwPYuSF+BVF0/GJZyC+rJ9GTlv8NmAIppoWftvAcE1pet79g==","signatures":[{"sig":"MEQCIHF7cjo4lwUJNUNRjGSd2aF6EzqlqFq3/Y/d4FBDcEiJAiAfgk+aE1wnZSYcum5iKJ6GwT43XvA4x7BTpc41ItE9ZA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":29469677,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJesrh9CRA9TVsSAnZWagAA8ZcQAKETs+DmwEabBlzUbETj\nBBXwsUMkiXLV/u0ipJ/fhfU1TiwK493XkcoMdz77oRfPHUlhBwvgqf0G5KfL\nquypGkAzUSUAArtDHAh4rornZCT0qPuV4oPudXhoKYd9U1gDxOwLsX3iyCEE\n5tIL1wh2InWvhvRlgr/kJVES3HOT6+5raJpaFDFGbzITFhe3ygUz+Htsfa/2\nDSyswRj3i+pxIm4pGjWWllAtGax0eTsXBPqdw8qxU3MIgegbJAzjNxx7PMUB\nt/GeQDAmbXcOYgWhMdGiEmtkbswn7IrqqMPpUCQz6LzT6ryXbnDeL8CN5+FM\nXaRcqEJlvDXSvM4Z7+j1Lbyy29fy5f/ijENpxeTdujihf6ALFEE6mce+Em5O\ncoO+18B5yto5ozCoOXq9n2tKL8QEEK9QXY+MM4jHH3PmNu7j4CpM/Mvuzmz4\nL60R6YmW7XpH1iLAF/0yGPBnUej9ADAsgW/k7z2PH+I9cjhlvTnd1LvP65aN\nXNhOv66sGln1Cd/jkf0hiRL3dCPzrb5UgUDF5pwiXi4iYYonpNfnCxhUGq/m\n7PulndpOzz8HgqX8GtWkuAuBkVNp3Lh0DOSieL3q+kptUhymdPJUA2cY6esv\nGAIPAPJJZp1W60Sai+258/29ViC3YDkxN9ZQaO/Mk+l3GzWZsXlQu2gHSJCQ\neUTy\r\n=VmGz\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"setupFiles":["<rootDir>/test/testSuitePolyfills.js","<rootDir>/test/configureEnzyme.js"],"moduleNameMapper":{"^dnd-core$":"dnd-core/dist/cjs","^react-dnd$":"react-dnd/dist/cjs","\\.(css|scss)$":"identity-obj-proxy","^react-dnd-test-utils$":"react-dnd-test-utils/dist/cjs","^react-dnd-test-backend$":"react-dnd-test-backend/dist/cjs","^react-dnd-html5-backend$":"react-dnd-html5-backend/dist/cjs","^react-dnd-touch-backend$":"react-dnd-touch-backend/dist/cjs","\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$":"<rootDir>/test/__mocks__/fileMock.js"},"moduleDirectories":["node_modules","../../node_modules"],"moduleFileExtensions":["js","jsx"]},"main":"dist/bundle-cjs.js","module":"dist/bundle-es.js","readme":"## Quick Start\nAs of v5.0.0, this package exports both React \"smart components\" and framework agnostic \"widgets\" for most components. When both are available, the smart component is the default export and the widget is a named export. For example, `import FilePicker, { FilePickerWidget } from 'veritone-widgets'` imports the smart component as FilePicker and the widget as FilePickerWidget. Smart components usually require redux reducers and sagas to be imported as well, see [Using Smart Components](#using-smart-components)\n\n### Widgets (framework agnostic)\n```javascript\nimport { VeritoneApp, OAuthLoginButtonWidget, AppBarWidget } from 'veritone-widgets'\nconst app = VeritoneApp();\n\n// a \"log in with veritone\" button\nconst oauthButton = new OAuthLoginButtonWidget({\n  // the ID of an existing element in your document where the button will appear\n  elId: 'login-button-widget',\n  // the ID of your Veritone application (found in Developer App)\n  clientId: 'my-client-id',\n  // the route in your app that will handle OAuth responses (more details below)\n  redirectUri: 'https://my-app.com/handle_oauth_callback',\n  // optional callbacks to retrieve the OAuth token for using outside of VeritoneApp:\n  onAuthSuccess: ({ OAuthToken }) => console.log(OAuthToken),\n  onAuthFailure: (error) => console.log(error)\n});\n\n// the Veritone app bar, which will receive auth after the user completes\n// the oauth flow using the OAuthLoginButton\nconst appBar = new AppBarWidget({\n  elId: 'appBar-widget',\n  title: 'My App',\n  backgroundColor: '#4caf50',\n  profileMenu: true,\n  appSwitcher: true\n});\n```\n### React Components\n```javascript\nimport { OAuthLoginButton } from 'veritone-widgets'\n\nrender(\n  <OAuthLoginButton\n    clientId=\"my-client-id\"\n    redirectUri=\"https://my-app.com/handle_oauth_callback\"\n  />\n)\n```\n\n## Using Smart Components\nBecause smart components are not rendered within the VeritoneApp widget framework, they require the user's app to have its own redux store with the components' reducers installed. Often, [sagas](https://redux-saga.js.org/) are also included and must be started as part of the app's root saga.\n\n### Smart component reducer/saga requirements\n#### FilePicker\n* reducer:\n`import {filePickerReducer} from 'veritone-widgets'`\n\n* saga:\n`import {filePickerSaga} from 'veritone-widgets'`\n\n#### Notifications\n* reducer:\n`import {notificationsReducer} from 'veritone-widgets'`\n\n#### EngineOutputExport\n* reducer:\n`import {engineOutputExportReducer} from 'veritone-widgets'`\n\n#### OAuthLoginButton\n* reducers:\nveritone-redux-common `User`, `Auth` and `Config` reducers\n\n### Smart component theme wrapper requirements\nIn your app, import the `VeritoneSDKThemeProvider` from `veritone-react-common`:\n```\nimport {VeritoneSDKThemeProvider } from 'veritone-react-common'\n```\nthen wrap your root component with `<VeritoneSDKThemeProvider>`. If this is not possible, the `@withVeritoneSDKThemeProvider` decorator is provided to wrap individual components.\n\nComponents can be customized using [material-ui themes](https://material-ui.com/customization/themes/) by passing a theme into the `theme` prop of the provider. Passed-in themes will be merged with the default Veritone theme.\n\n## Using Widgets\n### 1. Create an instance of VeritoneApp\n`VeritoneApp` is a container for all the widgets and widget data in an app. Before using any widgets, you need to import and call it. Typically this will be done when your application is loaded and initialized.\n\n```javascript\nimport { VeritoneApp } from 'veritone-widgets'\nconst app = VeritoneApp();\n```\n\n_Note_: `VeritoneApp` creates a singleton, so you do not need to manage the constructed app instance yourself. As long as VeritoneApp() has been imported and called at least once, you can retrieve the same instance by importing and calling VeritoneApp() again elsewhere in your app, if needed.\n\n### 2. Authenticate with Veritone via OAuth\nIf you already have an OAuth token (because your app handles the client-side OAuth flow on its own), provide it by calling `login()` on the returned app instance.\n\n```javascript\nimport { VeritoneApp } from 'veritone-widgets'\nconst app = VeritoneApp().login({\n  OAuthToken: 'my-token-here'\n});\n```\n \nCalling `login()` is usually not necessary; we provide an `OAuthLoginButton` widget, which handles the OAuth token exchange automatically. See the instructions in the next section for more information.\n\n\n### 3. Add widgets to your app\nAfter you've initialized the app framework by calling `VeritoneApp()`, you can begin using widgets.\n\nA \"widget\" is a self-contained frontend component. Widgets always render into an empty element which you provide. They are self-contained and handle rendering a UI, responding to user interactions, making api calls, and so on.\n\nFor example, the `AppBar` widget renders the Veritone application toolbar, fetches the required data to render the Veritone app switcher and profile menu, and allows the developer to configure their application logo and title. When the user uses the app switcher or uses the profile menu to log out, the AppBar widget handles those events.  \n\nWidgets typically can be configured with a variety of options, but always require at least `elId`. This is the id (string) of an element in your document, often a `div`, into which the widget will be rendered. By applying styling to that div, you can position the widget around your app. The element specified in elId must exist in the document before you create the widget that will use it.\n\n#### Example: Using the OAuthLoginButton widget\nThe first widget you are likely to include is `OAuthLoginButton`. `OAuthLoginButton` renders a \"log in with Veritone\" button that your users can click to start the OAuth authentication flow. At the end of that flow, your VeritoneApp instance will be authenticated and able to make requests to our API. You can also retrieve the oauth token to use in your own app.\n\n_Note_: Unless you are handling the OAuth flow on your own and providing the token to VeritoneApp manually, the `OAuthLoginButton` widget is required for Veritone widgets to work.\n\nThe actual code you write to use widgets will vary based on your framework of choice, but in general, it should be as follows.\n\n```javascript\n// assuming VeritoneApp has already been initialized as described earlier, and given a document like:\n<body>\n  ...\n  <div id=\"login-button-widget\" />\n</body>\n\n// you can render the login button to the document like this:\nimport { OAuthLoginButtonWidget } from 'veritone-widgets'\nconst oauthButton = new OAuthLoginButtonWidget({\n  // the ID of an existing element in your document where the button will appear\n  elId: 'login-button-widget',\n  // the ID of your Veritone application (found in Developer App)\n  clientId: 'my-client-id',\n  // the route in your app that will handle OAuth responses (more details below)\n  redirectUri: 'https://my-app.com/handle_oauth_callback',\n  // optional callbacks to retrieve the OAuth token for using outside of VeritoneApp:\n  onAuthSuccess: ({ OAuthToken }) => console.log(OAuthToken),\n  onAuthFailure: (error) => console.log(error)\n});\n```\n\nWhen `new OAuthLoginButtonWidget({ ... })` runs, the widget will appear on your page.\n\n#### Example: Using the AppBar widget\nAll Veritone apps should also include the AppBar widget.\n\n```javascript\n<body>\n  <div id=\"appBar-widget\" />\n  ...\n</body>\n\nimport { AppBarWidget } from 'veritone-widgets'\nconst appBar = new AppBarWidget({\n  elId: 'appBar-widget',\n  title: 'My App',\n  backgroundColor: '#4caf50',\n  profileMenu: true,\n  appSwitcher: true\n});\n```\n\n## Use via script tag\nFor environments that do not support javascript module imports, widgets can also be included in an app via script tags.\n\n```\n<body>\n  <div id=\"appBar-widget\"></div>\n\n  <script src=\"https://unpkg.com/veritone-widgets@^5/dist/umd/VeritoneApp.js\"></script>\n  <script src=\"https://unpkg.com/veritone-widgets@^5/dist/umd/AppBar.js\"></script>\n\n  <script>\n    const app = VeritoneApp.default();\n\n    const appBar = new AppBar.AppBarWidget({\n      elId: 'appBar-widget',\n      title: 'AppBar Widget',\n      profileMenu: true,\n      appSwitcher: true\n    });\n  </script>\n</body>\n```\n\nAs you can see, each widget is bundled individually to keep file sizes small. In addition, VeritoneApp is separately bundled and required to use widgets. Scripts can be accessed from the the [unpkg](https://unpkg.com/) cdn or downloaded and hosted on your own infrastructure. Unpkg supports [semver ranges](https://docs.npmjs.com/misc/semver), or a specific version can be specified exactly. \n\n\n## Configuring widgets\nNote that the OAuthLoginButton widget in the example above is being configured with five properties: elId, clientId, OAuthURI, onAuthSuccess and onAuthFailure. As mentioned earlier, an elId is required for every widget. OAuthURI, clientId, onAuthSuccess and onAuthFailure are specific configurable properties on the OAuthLoginButton. As it is in the example, configuration is always provided to the widget constructor.\n\n## Widget instance methods\nSome widgets have methods which can be called on an instance of that widget. For example, the FilePicker widget has the methods `pick()` and `cancel()` to open and close the picker dialog, respectively.\n\n```javascript\nthis._picker = new FilePickerWidget({\n  elId: 'file-picker-widget',\n  accept: ['image/*'],\n  multiple: true\n});\n\n...\n// call the pick() instance method on the widget\nthis._picker.pick(files => console.log(files))\n```\n\n#### Where to look for widget options\nIn practice, a widget is just a wrapper around a React component. The easiest way to determine all the possible options for a given widget is to look at the PropTypes of its component. Remember to watch for console warnings which will indicate when an option was configured incorrectly, or when a required option was not provided. \n\n* The \"storybook\" dev environments in veritone-widgets and veritone-react-common have live examples of the various widgets and components.\n\n* The `story.js` file in the root of each widget folder in veritone-widgets and in the root of each component folder in veritone-react-common show the code used to create the storybook pages. If you are using React to write your application, these can be used directly as a basis for your own implementation. \n\n* The PropTypes in the source files of the various widgets (in veritone-widgets) and their respective components (in veritone-react-common) generally correspond to configurable options. Likewise, instance methods for a widget will be defined on its widget class in veritone-widgets.\n\n### Destroying widgets\nTo remove a widget, call `destroy()` on the instance\n```javascript\nconst oauthButton = new OAuthLoginButtonWidget({ ... });\n...\noauthButton.destroy();\n```\n\n## Available widgets\nThe current widgets are:\n\n**AppBar**\n\nThe title and navigation bar common between all Veritone applications. Includes a logo, title, the Veritone app switcher and profile menu.\n\n*Options:*\n\n* title: string, a title to show in the center of the AppBar\n* logoSrc: string, a URL or image (like an SVG) to use as the logo on the left-hand side of the AppBar.\n* backgroundColor: string, a color (in hex) to use for the AppBar background\n* profileMenu: bool, whether or not to show the profile menu\n* appSwitcher: bool, whether or not to show the app switcher menu\n* logo: bool, whether or not to show the veritone logo on the left side of the AppBar\n* onLogout: func, called when the user clicks \"logout\". Apps must implement their own logout logic (usually by deleting the stored oauth token and redirecting or refreshing the page appropriately)\n\n**OAuthLoginButton**\nThe \"Log in with Veritone\" button and corresponding frontend logic to handle the OAuth2 authentication flow.\n\n*Options:*\n* mode: \"implicit\" (default) or \"authCode\", the OAuth grant type you wish to use. \n* OAuthURI: string (required if using `authCode` mode), the URL of your app server's OAuth callback endpoint.\n* redirectUri: string (required if using `implicit` mode), the URL of your app frontend's OAuth callback endpoint.\n* clientID: string (required if using implicit mode), the ID of your Veritone application (found in Developer App)\n* onAuthSuccess: function, a callback that will be called with the OAuth token when the OAuth flow is completed successfully.\n* onAuthFailure: function, a callback that will be called with the error when the OAuth flow fails.\n\n*Requirements*\n\nVeritone provides two OAuth modes to suit different app requirements:\n\n`Implicit`, the default mode, is a frontend-only grant flow with no serverside requirement. _Most apps will use this mode._ This flow is much easier for apps to implement but has the downside of not returning a refresh token; users will need to log in again each time their token expires. \n\n`Auth Code` is a server-based grant flow, which uses your Veritone app's OAuth secret to retrieve both an auth token and refresh token. Auth code flow requires a server because the OAuth secret cannot be exposed to the client; the veritone-widets-server package is an example implementation, and more information can be found in its readme.\n\n**FilePicker**\n\nThe Veritone file upload dialog. Handles selecting and uploading files to S3 for use on the Veritone platform.\n\n*Options:*\n\n* accept: oneOfType([arrayOf(string), string]), file extension(s) or mimetype(s) which the file picker will accept\n* multiple: bool, whether the picker will accept multiple files to upload in a batch\n* width: number, the width of the filepicker dialog\n* height: number, the height of the filepicker dialog\n* allowUrlUpload: bool, whether the filepicker will allow files to be selected by URL\n\n*Instance methods*\n\n* pick(callback): open the filepicker dialog.\n  * callback signature is (result, { warning, error, cancelled })\n    * result: array of result objects, one for each file uploaded\n      * key: string, the filename as stored on the server (may include a UUID)\n      * fileName: string, the original filename\n      * size: number, the file size in bytes\n      * type: string, the mime type of the file\n      * error: string or `false`, the error that prevented the file from uploading, if any\n      * bucket: string, the S3 bucket to which the file was uploaded\n      * expiresInSeconds: number, the length of time the credentials in `getUrl` will be valid, in seconds.\n      * getUrl: string or `null`, the resulting S3 URL, if successful. Includes credentials that are valid for `expires` seconds. \n      * unsignedUrl: string or `null`, the resulting S3 URL, if successful. Does not include credentials and will need to be signed to be used.\n    * warning: string or `false`, a warning message if some (but not all) files failed to upload. A warning indicates that `result` contains some successful upload result objects, and some that were not successful (unsuccessful objects will have `error` populated with an error message, as noted above)\n    * error: string or `false`, an error message, if all files failed to upload.\n    * cancelled: bool, whether or not the filepicker interaction was cancelled (by the user, or by calling cancel()).\n\n* cancel(): close the filepicker dialog. The callback provided to pick() will be called with `(null, { cancelled: true })`.\n\n**Table**\n\nA Veritone table to display data.\n\n*Options:*\n\n* data: arrayOf(object) (required), the dataset\n* columns: arrayOf(shape) (required), a set of defintions for each column to be displayed\n  * shape: object with the following keys:\n    * dataKey: string (required), the data attribute to display within column \n    * header: string, the column heading\n    * transform: function, specifies how column data should be displayed\n      * signature: `(cellValue) => {}`\n    * menu: bool, identifies a column as a menu column\n    * onSelectItem: function, when `menu` is `true`, specifies action(s) to take when a menu option is clicked\n      * signature: `(menuAction) => {}`\n    * cursorPointer: bool, show cursor pointer over table cells\n    * align: string, specifies columm alignment: `['left', 'right', 'center']`\n    * width: number, specifies the width of a column\n* paginate: bool, specifies whether table data should be paginated\n* initialItemsPerPage: number, the number of items to display per page in a paginated table,\n* onCellClick: function, specifies action to take when a table cell is clicked\n  * signature: `(cellRow, cellColumn, cellData) => {}`\n* focusedRow: number, identifies a row to display additional content for\n* renderFocusedRowDetails: function, specifies additional content to display for `focusedRow`\n  * signature: `(focusedRowData) => (string | react component)`\n* onShowCellRange: function, fires when table page or rows (on page) changes;\n  * signature: `({ start: firstRowIndex, end: lastRowIndex }) => {}`\n* onRefreshPageData: function, specifies how to refresh data (if needed)\n  * signature: `() => {}`\n* emptyMessage: string, text to display when table has no data\n\n**EngineOutputExport**\n\nThe Veritone export engine outputs full screen dialog. This will fetch the engines ran on a tdo/recording and allow the user to configure what file types are included in the export\n\n*Options:*\n\n* tdos: arrayOf(shape), array of tdo data objects that engine outputs will be exported for\n  * shape: object with the following keys:\n    * tdoId: string (required), the unique id of a tdo you want to export engine outputs for\n    * mentionId: string, the unique id of a mention you want to export engine outputs for. If a mentionId is provided the engine results of the mention will be returned rather than those of the tdo\n    * startOffsetMs: number, an integer representing the number of milliseconds from the start of the tdo where the exported engine outputs will begin\n    * stopOffsetMs: number, an integer representing the number of milliseconds from the start of the tdo where the exported engine outputs will end\n* onExport: func, specifies action to take when export button is clicked\n  * signature: `(response) => {}`\n* onCancel: func, specifies action to take when cancel button is clicked\n  * signature: `() => {}`\n\n*Instance methods*\n\n* open(): opens the export engine output dialog.\n\n## Running the development environment (storybook)\n1. Set up your local clone of veritone-sdk, following the instructions in the [main readme](https://github.com/veritone/veritone-sdk#development)\n2. cd to this package\n3. In `config.dev.json`, fill in the missing fields with your own app's information (see our [application quick-start guide](http://docs.veritone.com/#/applications/quick-start/) for more info on how to create an app). **Your app's `URL` and `redirect URL` should be set to the same value** for the purposes of dev in this package. This default allows the environment to run with minimal config. \n4. run `yarn start`.\n5. When the build finishes, access the storybook at the url provided in your terminal.\n\n## License\nCopyright 2019, Veritone Inc.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n","scripts":{"lint":"yarn run lint:js && yarn run lint:styles","test":"jest","build":"yarn run build:es && yarn run build:cjs && yarn run build:script-tag","start":"yarn run start:widget-server; yarn run start:storybook","format":"prettier --write \"./src/**/*.{js,scss}\"","lint:js":"eslint src/** --ext .js --max-warnings 0","build:es":"cross-env NODE_ENV=production BABEL_ENV=production-es rollup -c rollup.config.es.js","prebuild":"yarn run clean:build","build:cjs":"cross-env NODE_ENV=production BABEL_ENV=production-cjs rollup -c rollup.config.cjs.js","test:watch":"jest --watch","build:watch":"cross-env NODE_ENV=production rollup -c --watch","clean:build":"rimraf dist","lint:styles":"stylelint \"src/**/*.{scss, css}\"","prepublishOnly":"yarn run test && yarn run lint && yarn run build","build:storybook":"NODE_ENV=production build-storybook -c .storybook -o docs-static","start:storybook":"NODE_ENV=test start-storybook -p 3000 -c .storybook","build:script-tag":"cross-env NODE_ENV=production BABEL_ENV=production-cjs webpack --config webpack.config.script-tag.js","start:widget-server":"yarn workspace veritone-widgets-server run start &"},"_npmUser":{"name":"mmtbkn","email":"mohamedirvine@gmail.com"},"_npmVersion":"6.4.1","description":"As of v5.0.0, this package exports both React \"smart components\" and framework agnostic \"widgets\" for most components. When both are available, the smart component is the default export and the widget is a named export. For example, `import FilePicker, { ","directories":{},"jsnext:main":"dist/bundle-es.js","_nodeVersion":"8.15.1","dependencies":{"react":"^16.9.0","redux":"^4.0.4","deepmerge":"^4.2.2","react-dom":"^16.9.0","recompose":"^0.30.0","redux-saga":"^1.1.3","react-redux":"^7.1.3","redux-thunk":"^2.3.0","video-react":"~0.13.3","shaka-player":"^2.4.1","babel-runtime":"^6.26.0","react-cropper":"^1.3.0","babel-polyfill":"^6.26.0","@material-ui/lab":"^4.0.0-alpha.45","react-redux-saga":"^1.0.2","@material-ui/core":"^4.9.5","react-virtualized":"^9.18.5","@material-ui/icons":"^4.9.1","@material-ui/styles":"^4.9.0","immutability-helper":"^3.0.0","@material-ui/pickers":"^3.2.10","redux-dynamic-modules":"^5.2.0","veritone-react-common":"^9.0.4","veritone-redux-common":"^3.11.4","veritone-oauth-helpers":"^2.1.0","redux-api-middleware-fixed":"^2.0.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"raf":"^3.4.0","jest":"^22.4.3","faker":"^4.1.0","enzyme":"^3.5.0","eslint":"^4.8.0","rimraf":"^2.6.2","rollup":"^1.17.0","webpack":"^4.0.1","cross-env":"^5.1.1","node-sass":"^4.7.2","stylelint":"^8.2.0","babel-core":"^6.26.0","url-loader":"^0.6.2","sass-loader":"^6.0.6","webpack-cli":"^2.0.9","babel-loader":"^7.1.3","redux-logger":"^3.0.6","redux-devtools":"^3.5.0","@storybook/react":"v3.3.9","redux-mock-store":"^1.5.4","veritone-dev-env":"^3.0.0","rollup-plugin-url":"^2.2.2","identity-obj-proxy":"^3.0.0","redux-validate-fsa":"^0.1.2","rollup-plugin-json":"^4.0.0","babel-plugin-lodash":"^3.3.2","eslint-plugin-react":"^7.8.2","react-test-renderer":"^16.0.0","rollup-plugin-alias":"^1.5.2","rollup-plugin-babel":"^3.0.7","eslint-plugin-import":"^2.10.0","eslint-plugin-lodash":"^2.4.5","babel-plugin-date-fns":"^0.2.1","eslint-plugin-promise":"^3.5.0","rollup-plugin-postcss":"^2.0.3","rollup-plugin-replace":"^2.2.0","@storybook/addon-knobs":"3.3.9","eslint-config-prettier":"^2.6.0","rollup-analyzer-plugin":"^1.2.0","rollup-plugin-commonjs":"^10.0.1","enzyme-adapter-react-16":"^1.0.0","stylelint-config-prettier":"^4.0.0","stylelint-config-standard":"^17.0.0","rollup-plugin-node-resolve":"^5.2.0","babel-plugin-external-helpers":"^6.22.0","babel-plugin-transform-runtime":"^6.23.0","redux-immutable-state-invariant":"^2.1.0","babel-plugin-add-react-displayname":"^0.0.5","babel-plugin-transform-class-properties":"^6.24.1","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-plugin-transform-export-extensions":"^6.22.0","babel-plugin-transform-object-rest-spread":"^6.26.0"},"_npmOperationalInternal":{"tmp":"tmp/veritone-widgets_9.0.4_1588770941185_0.4401430385737055","host":"s3://npm-registry-packages"}},"9.0.5":{"name":"veritone-widgets","version":"9.0.5","license":"Apache-2.0","_id":"veritone-widgets@9.0.5","maintainers":[{"name":"aaronadaniel","email":"aaron.kalel@gmail.com"},{"name":"albertcbrown","email":"al@veritone.com"},{"name":"christopher-gustavsson","email":"chrisgustavsson1@gmail.com"},{"name":"coolmitch","email":"robb.mitch@gmail.com"},{"name":"kkaiser","email":"kkaiser@veritone.com"},{"name":"linh.le","email":"linh.le@setacinq.vn"},{"name":"mikomonday","email":"miko.monday@gmail.com"},{"name":"mmtbkn","email":"mohamedirvine@gmail.com"},{"name":"seta-tuha","email":"tu.ha@setacinq.vn"},{"name":"truong_veritone","email":"ktruong@veritone.com"},{"name":"veritone_dev","email":"dev@veritone.com"},{"name":"veritone-jordan","email":"jbelford@veritone.com"}],"dist":{"shasum":"8c14558ef7294140e9d23048925d1994c67ddc20","tarball":"https://registry.npmjs.org/veritone-widgets/-/veritone-widgets-9.0.5.tgz","fileCount":247,"integrity":"sha512-Uv0JXh72P9FytB9rxdb1qWSyA5viFllQ429wDFIAx5T4IPTqvX/OU1LhQLcR5McFMLt0oPTzBMKt25p18weRmQ==","signatures":[{"sig":"MEYCIQDNX/RjtX6rx3frjn5fPy+nuxON3czCsaSJM7LJy+rPUAIhAI2gAHTKewixIoDR/2EmhNgQAYqjmzSju74pGoRKYYR9","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":29315167,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJezc3YCRA9TVsSAnZWagAAs3oP/RfP42/6/VW0NZWokAaJ\n3wwCWWR/8/XTIt77z/xlMmf6Q/t0GvHqUXDNMhyWsnl8MOXpghXcM1XaN4CD\nv5qLUJ22mFIHr5lGDKIcbL1bNMSeRx+2biVCwKqm1XHCLCLHltjs5knlyed4\nVPxzDmGUBjy/COo93nzChiYwiHbq2uJ2saRYmr880DCw2YqE9yzp3ufk21VH\nGFZQAV6a4t+67qSqKEmwF8edE9syLLe/eBeneOt7lGnmWSxAFdFeo52LbUbf\n2diFCfxn4ln3/z1WsZGkBVucasT8+hAMKSPGsJc4s9EkdIh5LjkcGFr6ytS1\noHT3KhJS02EN7hr8c/Uqfh+rrVtoUN3AXjvMn2Hs44RzgMq3NzottM14sldL\neo6cGCJ3ABlfAqTs6MoeESn9vy0dWGsx30PveA6fPKhNXdThYsv9xTvVXx40\niPpfatNMVEYVP+Jfit7E4IicNQLj+IIRrja4ekzx0GcGjGHp3DKiM8wzWH/8\nSbYi94zIF8ectNsltvX4f4YGuNKdTSQP6xBJi7Dqpt/fMAoO6YsBAQxaPTy2\n1HtQZ/qGOIeUSX2G1Xr2a7O4NBKCEhUOghWbTBpLmU43yb3pJE1OeV8gY2ih\npqPZQHyqBPNWpvlT6wzHX0A0a2d1yf/TU9t5beK6HGvMNyzHY/eMsirmOAGr\nheAy\r\n=0ZeA\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"setupFiles":["<rootDir>/test/testSuitePolyfills.js","<rootDir>/test/configureEnzyme.js"],"moduleNameMapper":{"^dnd-core$":"dnd-core/dist/cjs","^react-dnd$":"react-dnd/dist/cjs","\\.(css|scss)$":"identity-obj-proxy","^react-dnd-test-utils$":"react-dnd-test-utils/dist/cjs","^react-dnd-test-backend$":"react-dnd-test-backend/dist/cjs","^react-dnd-html5-backend$":"react-dnd-html5-backend/dist/cjs","^react-dnd-touch-backend$":"react-dnd-touch-backend/dist/cjs","\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$":"<rootDir>/test/__mocks__/fileMock.js"},"moduleDirectories":["node_modules","../../node_modules"],"moduleFileExtensions":["js","jsx"]},"main":"dist/bundle-cjs.js","module":"dist/bundle-es.js","readme":"## Quick Start\nAs of v5.0.0, this package exports both React \"smart components\" and framework agnostic \"widgets\" for most components. When both are available, the smart component is the default export and the widget is a named export. For example, `import FilePicker, { FilePickerWidget } from 'veritone-widgets'` imports the smart component as FilePicker and the widget as FilePickerWidget. Smart components usually require redux reducers and sagas to be imported as well, see [Using Smart Components](#using-smart-components)\n\n### Widgets (framework agnostic)\n```javascript\nimport { VeritoneApp, OAuthLoginButtonWidget, AppBarWidget } from 'veritone-widgets'\nconst app = VeritoneApp();\n\n// a \"log in with veritone\" button\nconst oauthButton = new OAuthLoginButtonWidget({\n  // the ID of an existing element in your document where the button will appear\n  elId: 'login-button-widget',\n  // the ID of your Veritone application (found in Developer App)\n  clientId: 'my-client-id',\n  // the route in your app that will handle OAuth responses (more details below)\n  redirectUri: 'https://my-app.com/handle_oauth_callback',\n  // optional callbacks to retrieve the OAuth token for using outside of VeritoneApp:\n  onAuthSuccess: ({ OAuthToken }) => console.log(OAuthToken),\n  onAuthFailure: (error) => console.log(error)\n});\n\n// the Veritone app bar, which will receive auth after the user completes\n// the oauth flow using the OAuthLoginButton\nconst appBar = new AppBarWidget({\n  elId: 'appBar-widget',\n  title: 'My App',\n  backgroundColor: '#4caf50',\n  profileMenu: true,\n  appSwitcher: true\n});\n```\n### React Components\n```javascript\nimport { OAuthLoginButton } from 'veritone-widgets'\n\nrender(\n  <OAuthLoginButton\n    clientId=\"my-client-id\"\n    redirectUri=\"https://my-app.com/handle_oauth_callback\"\n  />\n)\n```\n\n## Using Smart Components\nBecause smart components are not rendered within the VeritoneApp widget framework, they require the user's app to have its own redux store with the components' reducers installed. Often, [sagas](https://redux-saga.js.org/) are also included and must be started as part of the app's root saga.\n\n### Smart component reducer/saga requirements\n#### FilePicker\n* reducer:\n`import {filePickerReducer} from 'veritone-widgets'`\n\n* saga:\n`import {filePickerSaga} from 'veritone-widgets'`\n\n#### Notifications\n* reducer:\n`import {notificationsReducer} from 'veritone-widgets'`\n\n#### EngineOutputExport\n* reducer:\n`import {engineOutputExportReducer} from 'veritone-widgets'`\n\n#### OAuthLoginButton\n* reducers:\nveritone-redux-common `User`, `Auth` and `Config` reducers\n\n### Smart component theme wrapper requirements\nIn your app, import the `VeritoneSDKThemeProvider` from `veritone-react-common`:\n```\nimport {VeritoneSDKThemeProvider } from 'veritone-react-common'\n```\nthen wrap your root component with `<VeritoneSDKThemeProvider>`. If this is not possible, the `@withVeritoneSDKThemeProvider` decorator is provided to wrap individual components.\n\nComponents can be customized using [material-ui themes](https://material-ui.com/customization/themes/) by passing a theme into the `theme` prop of the provider. Passed-in themes will be merged with the default Veritone theme.\n\n## Using Widgets\n### 1. Create an instance of VeritoneApp\n`VeritoneApp` is a container for all the widgets and widget data in an app. Before using any widgets, you need to import and call it. Typically this will be done when your application is loaded and initialized.\n\n```javascript\nimport { VeritoneApp } from 'veritone-widgets'\nconst app = VeritoneApp();\n```\n\n_Note_: `VeritoneApp` creates a singleton, so you do not need to manage the constructed app instance yourself. As long as VeritoneApp() has been imported and called at least once, you can retrieve the same instance by importing and calling VeritoneApp() again elsewhere in your app, if needed.\n\n### 2. Authenticate with Veritone via OAuth\nIf you already have an OAuth token (because your app handles the client-side OAuth flow on its own), provide it by calling `login()` on the returned app instance.\n\n```javascript\nimport { VeritoneApp } from 'veritone-widgets'\nconst app = VeritoneApp().login({\n  OAuthToken: 'my-token-here'\n});\n```\n \nCalling `login()` is usually not necessary; we provide an `OAuthLoginButton` widget, which handles the OAuth token exchange automatically. See the instructions in the next section for more information.\n\n\n### 3. Add widgets to your app\nAfter you've initialized the app framework by calling `VeritoneApp()`, you can begin using widgets.\n\nA \"widget\" is a self-contained frontend component. Widgets always render into an empty element which you provide. They are self-contained and handle rendering a UI, responding to user interactions, making api calls, and so on.\n\nFor example, the `AppBar` widget renders the Veritone application toolbar, fetches the required data to render the Veritone app switcher and profile menu, and allows the developer to configure their application logo and title. When the user uses the app switcher or uses the profile menu to log out, the AppBar widget handles those events.  \n\nWidgets typically can be configured with a variety of options, but always require at least `elId`. This is the id (string) of an element in your document, often a `div`, into which the widget will be rendered. By applying styling to that div, you can position the widget around your app. The element specified in elId must exist in the document before you create the widget that will use it.\n\n#### Example: Using the OAuthLoginButton widget\nThe first widget you are likely to include is `OAuthLoginButton`. `OAuthLoginButton` renders a \"log in with Veritone\" button that your users can click to start the OAuth authentication flow. At the end of that flow, your VeritoneApp instance will be authenticated and able to make requests to our API. You can also retrieve the oauth token to use in your own app.\n\n_Note_: Unless you are handling the OAuth flow on your own and providing the token to VeritoneApp manually, the `OAuthLoginButton` widget is required for Veritone widgets to work.\n\nThe actual code you write to use widgets will vary based on your framework of choice, but in general, it should be as follows.\n\n```javascript\n// assuming VeritoneApp has already been initialized as described earlier, and given a document like:\n<body>\n  ...\n  <div id=\"login-button-widget\" />\n</body>\n\n// you can render the login button to the document like this:\nimport { OAuthLoginButtonWidget } from 'veritone-widgets'\nconst oauthButton = new OAuthLoginButtonWidget({\n  // the ID of an existing element in your document where the button will appear\n  elId: 'login-button-widget',\n  // the ID of your Veritone application (found in Developer App)\n  clientId: 'my-client-id',\n  // the route in your app that will handle OAuth responses (more details below)\n  redirectUri: 'https://my-app.com/handle_oauth_callback',\n  // optional callbacks to retrieve the OAuth token for using outside of VeritoneApp:\n  onAuthSuccess: ({ OAuthToken }) => console.log(OAuthToken),\n  onAuthFailure: (error) => console.log(error)\n});\n```\n\nWhen `new OAuthLoginButtonWidget({ ... })` runs, the widget will appear on your page.\n\n#### Example: Using the AppBar widget\nAll Veritone apps should also include the AppBar widget.\n\n```javascript\n<body>\n  <div id=\"appBar-widget\" />\n  ...\n</body>\n\nimport { AppBarWidget } from 'veritone-widgets'\nconst appBar = new AppBarWidget({\n  elId: 'appBar-widget',\n  title: 'My App',\n  backgroundColor: '#4caf50',\n  profileMenu: true,\n  appSwitcher: true\n});\n```\n\n## Use via script tag\nFor environments that do not support javascript module imports, widgets can also be included in an app via script tags.\n\n```\n<body>\n  <div id=\"appBar-widget\"></div>\n\n  <script src=\"https://unpkg.com/veritone-widgets@^5/dist/umd/VeritoneApp.js\"></script>\n  <script src=\"https://unpkg.com/veritone-widgets@^5/dist/umd/AppBar.js\"></script>\n\n  <script>\n    const app = VeritoneApp.default();\n\n    const appBar = new AppBar.AppBarWidget({\n      elId: 'appBar-widget',\n      title: 'AppBar Widget',\n      profileMenu: true,\n      appSwitcher: true\n    });\n  </script>\n</body>\n```\n\nAs you can see, each widget is bundled individually to keep file sizes small. In addition, VeritoneApp is separately bundled and required to use widgets. Scripts can be accessed from the the [unpkg](https://unpkg.com/) cdn or downloaded and hosted on your own infrastructure. Unpkg supports [semver ranges](https://docs.npmjs.com/misc/semver), or a specific version can be specified exactly. \n\n\n## Configuring widgets\nNote that the OAuthLoginButton widget in the example above is being configured with five properties: elId, clientId, OAuthURI, onAuthSuccess and onAuthFailure. As mentioned earlier, an elId is required for every widget. OAuthURI, clientId, onAuthSuccess and onAuthFailure are specific configurable properties on the OAuthLoginButton. As it is in the example, configuration is always provided to the widget constructor.\n\n## Widget instance methods\nSome widgets have methods which can be called on an instance of that widget. For example, the FilePicker widget has the methods `pick()` and `cancel()` to open and close the picker dialog, respectively.\n\n```javascript\nthis._picker = new FilePickerWidget({\n  elId: 'file-picker-widget',\n  accept: ['image/*'],\n  multiple: true\n});\n\n...\n// call the pick() instance method on the widget\nthis._picker.pick(files => console.log(files))\n```\n\n#### Where to look for widget options\nIn practice, a widget is just a wrapper around a React component. The easiest way to determine all the possible options for a given widget is to look at the PropTypes of its component. Remember to watch for console warnings which will indicate when an option was configured incorrectly, or when a required option was not provided. \n\n* The \"storybook\" dev environments in veritone-widgets and veritone-react-common have live examples of the various widgets and components.\n\n* The `story.js` file in the root of each widget folder in veritone-widgets and in the root of each component folder in veritone-react-common show the code used to create the storybook pages. If you are using React to write your application, these can be used directly as a basis for your own implementation. \n\n* The PropTypes in the source files of the various widgets (in veritone-widgets) and their respective components (in veritone-react-common) generally correspond to configurable options. Likewise, instance methods for a widget will be defined on its widget class in veritone-widgets.\n\n### Destroying widgets\nTo remove a widget, call `destroy()` on the instance\n```javascript\nconst oauthButton = new OAuthLoginButtonWidget({ ... });\n...\noauthButton.destroy();\n```\n\n## Available widgets\nThe current widgets are:\n\n**AppBar**\n\nThe title and navigation bar common between all Veritone applications. Includes a logo, title, the Veritone app switcher and profile menu.\n\n*Options:*\n\n* title: string, a title to show in the center of the AppBar\n* logoSrc: string, a URL or image (like an SVG) to use as the logo on the left-hand side of the AppBar.\n* backgroundColor: string, a color (in hex) to use for the AppBar background\n* profileMenu: bool, whether or not to show the profile menu\n* appSwitcher: bool, whether or not to show the app switcher menu\n* logo: bool, whether or not to show the veritone logo on the left side of the AppBar\n* onLogout: func, called when the user clicks \"logout\". Apps must implement their own logout logic (usually by deleting the stored oauth token and redirecting or refreshing the page appropriately)\n\n**OAuthLoginButton**\nThe \"Log in with Veritone\" button and corresponding frontend logic to handle the OAuth2 authentication flow.\n\n*Options:*\n* mode: \"implicit\" (default) or \"authCode\", the OAuth grant type you wish to use. \n* OAuthURI: string (required if using `authCode` mode), the URL of your app server's OAuth callback endpoint.\n* redirectUri: string (required if using `implicit` mode), the URL of your app frontend's OAuth callback endpoint.\n* clientID: string (required if using implicit mode), the ID of your Veritone application (found in Developer App)\n* onAuthSuccess: function, a callback that will be called with the OAuth token when the OAuth flow is completed successfully.\n* onAuthFailure: function, a callback that will be called with the error when the OAuth flow fails.\n\n*Requirements*\n\nVeritone provides two OAuth modes to suit different app requirements:\n\n`Implicit`, the default mode, is a frontend-only grant flow with no serverside requirement. _Most apps will use this mode._ This flow is much easier for apps to implement but has the downside of not returning a refresh token; users will need to log in again each time their token expires. \n\n`Auth Code` is a server-based grant flow, which uses your Veritone app's OAuth secret to retrieve both an auth token and refresh token. Auth code flow requires a server because the OAuth secret cannot be exposed to the client; the veritone-widets-server package is an example implementation, and more information can be found in its readme.\n\n**FilePicker**\n\nThe Veritone file upload dialog. Handles selecting and uploading files to S3 for use on the Veritone platform.\n\n*Options:*\n\n* accept: oneOfType([arrayOf(string), string]), file extension(s) or mimetype(s) which the file picker will accept\n* multiple: bool, whether the picker will accept multiple files to upload in a batch\n* width: number, the width of the filepicker dialog\n* height: number, the height of the filepicker dialog\n* allowUrlUpload: bool, whether the filepicker will allow files to be selected by URL\n\n*Instance methods*\n\n* pick(callback): open the filepicker dialog.\n  * callback signature is (result, { warning, error, cancelled })\n    * result: array of result objects, one for each file uploaded\n      * key: string, the filename as stored on the server (may include a UUID)\n      * fileName: string, the original filename\n      * size: number, the file size in bytes\n      * type: string, the mime type of the file\n      * error: string or `false`, the error that prevented the file from uploading, if any\n      * bucket: string, the S3 bucket to which the file was uploaded\n      * expiresInSeconds: number, the length of time the credentials in `getUrl` will be valid, in seconds.\n      * getUrl: string or `null`, the resulting S3 URL, if successful. Includes credentials that are valid for `expires` seconds. \n      * unsignedUrl: string or `null`, the resulting S3 URL, if successful. Does not include credentials and will need to be signed to be used.\n    * warning: string or `false`, a warning message if some (but not all) files failed to upload. A warning indicates that `result` contains some successful upload result objects, and some that were not successful (unsuccessful objects will have `error` populated with an error message, as noted above)\n    * error: string or `false`, an error message, if all files failed to upload.\n    * cancelled: bool, whether or not the filepicker interaction was cancelled (by the user, or by calling cancel()).\n\n* cancel(): close the filepicker dialog. The callback provided to pick() will be called with `(null, { cancelled: true })`.\n\n**Table**\n\nA Veritone table to display data.\n\n*Options:*\n\n* data: arrayOf(object) (required), the dataset\n* columns: arrayOf(shape) (required), a set of defintions for each column to be displayed\n  * shape: object with the following keys:\n    * dataKey: string (required), the data attribute to display within column \n    * header: string, the column heading\n    * transform: function, specifies how column data should be displayed\n      * signature: `(cellValue) => {}`\n    * menu: bool, identifies a column as a menu column\n    * onSelectItem: function, when `menu` is `true`, specifies action(s) to take when a menu option is clicked\n      * signature: `(menuAction) => {}`\n    * cursorPointer: bool, show cursor pointer over table cells\n    * align: string, specifies columm alignment: `['left', 'right', 'center']`\n    * width: number, specifies the width of a column\n* paginate: bool, specifies whether table data should be paginated\n* initialItemsPerPage: number, the number of items to display per page in a paginated table,\n* onCellClick: function, specifies action to take when a table cell is clicked\n  * signature: `(cellRow, cellColumn, cellData) => {}`\n* focusedRow: number, identifies a row to display additional content for\n* renderFocusedRowDetails: function, specifies additional content to display for `focusedRow`\n  * signature: `(focusedRowData) => (string | react component)`\n* onShowCellRange: function, fires when table page or rows (on page) changes;\n  * signature: `({ start: firstRowIndex, end: lastRowIndex }) => {}`\n* onRefreshPageData: function, specifies how to refresh data (if needed)\n  * signature: `() => {}`\n* emptyMessage: string, text to display when table has no data\n\n**EngineOutputExport**\n\nThe Veritone export engine outputs full screen dialog. This will fetch the engines ran on a tdo/recording and allow the user to configure what file types are included in the export\n\n*Options:*\n\n* tdos: arrayOf(shape), array of tdo data objects that engine outputs will be exported for\n  * shape: object with the following keys:\n    * tdoId: string (required), the unique id of a tdo you want to export engine outputs for\n    * mentionId: string, the unique id of a mention you want to export engine outputs for. If a mentionId is provided the engine results of the mention will be returned rather than those of the tdo\n    * startOffsetMs: number, an integer representing the number of milliseconds from the start of the tdo where the exported engine outputs will begin\n    * stopOffsetMs: number, an integer representing the number of milliseconds from the start of the tdo where the exported engine outputs will end\n* onExport: func, specifies action to take when export button is clicked\n  * signature: `(response) => {}`\n* onCancel: func, specifies action to take when cancel button is clicked\n  * signature: `() => {}`\n\n*Instance methods*\n\n* open(): opens the export engine output dialog.\n\n## Running the development environment (storybook)\n1. Set up your local clone of veritone-sdk, following the instructions in the [main readme](https://github.com/veritone/veritone-sdk#development)\n2. cd to this package\n3. In `config.dev.json`, fill in the missing fields with your own app's information (see our [application quick-start guide](http://docs.veritone.com/#/applications/quick-start/) for more info on how to create an app). **Your app's `URL` and `redirect URL` should be set to the same value** for the purposes of dev in this package. This default allows the environment to run with minimal config. \n4. run `yarn start`.\n5. When the build finishes, access the storybook at the url provided in your terminal.\n\n## License\nCopyright 2019, Veritone Inc.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n","scripts":{"lint":"yarn run lint:js && yarn run lint:styles","test":"jest","build":"yarn run build:es && yarn run build:cjs && yarn run build:script-tag","start":"yarn run start:widget-server; yarn run start:storybook","format":"prettier --write \"./src/**/*.{js,scss}\"","lint:js":"eslint src/** --ext .js --max-warnings 0","build:es":"cross-env NODE_ENV=production BABEL_ENV=production-es rollup -c rollup.config.es.js","prebuild":"yarn run clean:build","build:cjs":"cross-env NODE_ENV=production BABEL_ENV=production-cjs rollup -c rollup.config.cjs.js","test:watch":"jest --watch","build:watch":"cross-env NODE_ENV=production rollup -c --watch","clean:build":"rimraf dist","lint:styles":"stylelint \"src/**/*.{scss, css}\"","prepublishOnly":"yarn run test && yarn run lint && yarn run build","build:storybook":"NODE_ENV=production build-storybook -c .storybook -o docs-static","start:storybook":"NODE_ENV=test start-storybook -p 3000 -c .storybook","build:script-tag":"cross-env NODE_ENV=production BABEL_ENV=production-cjs webpack --config webpack.config.script-tag.js","start:widget-server":"yarn workspace veritone-widgets-server run start &"},"_npmUser":{"name":"mmtbkn","email":"mohamedirvine@gmail.com"},"description":"As of v5.0.0, this package exports both React \"smart components\" and framework agnostic \"widgets\" for most components. When both are available, the smart component is the default export and the widget is a named export. For example, `import FilePicker, { ","directories":{},"jsnext:main":"dist/bundle-es.js","licenseText":"                                 Apache License\n                           Version 2.0, January 2004\n                        http://www.apache.org/licenses/\n\n   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n   1. Definitions.\n\n      \"License\" shall mean the terms and conditions for use, reproduction,\n      and distribution as defined by Sections 1 through 9 of this document.\n\n      \"Licensor\" shall mean the copyright owner or entity authorized by\n      the copyright owner that is granting the License.\n\n      \"Legal Entity\" shall mean the union of the acting entity and all\n      other entities that control, are controlled by, or are under common\n      control with that entity. For the purposes of this definition,\n      \"control\" means (i) the power, direct or indirect, to cause the\n      direction or management of such entity, whether by contract or\n      otherwise, or (ii) ownership of fifty percent (50%) or more of the\n      outstanding shares, or (iii) beneficial ownership of such entity.\n\n      \"You\" (or \"Your\") shall mean an individual or Legal Entity\n      exercising permissions granted by this License.\n\n      \"Source\" form shall mean the preferred form for making modifications,\n      including but not limited to software source code, documentation\n      source, and configuration files.\n\n      \"Object\" form shall mean any form resulting from mechanical\n      transformation or translation of a Source form, including but\n      not limited to compiled object code, generated documentation,\n      and conversions to other media types.\n\n      \"Work\" shall mean the work of authorship, whether in Source or\n      Object form, made available under the License, as indicated by a\n      copyright notice that is included in or attached to the work\n      (an example is provided in the Appendix below).\n\n      \"Derivative Works\" shall mean any work, whether in Source or Object\n      form, that is based on (or derived from) the Work and for which the\n      editorial revisions, annotations, elaborations, or other modifications\n      represent, as a whole, an original work of authorship. For the purposes\n      of this License, Derivative Works shall not include works that remain\n      separable from, or merely link (or bind by name) to the interfaces of,\n      the Work and Derivative Works thereof.\n\n      \"Contribution\" shall mean any work of authorship, including\n      the original version of the Work and any modifications or additions\n      to that Work or Derivative Works thereof, that is intentionally\n      submitted to Licensor for inclusion in the Work by the copyright owner\n      or by an individual or Legal Entity authorized to submit on behalf of\n      the copyright owner. For the purposes of this definition, \"submitted\"\n      means any form of electronic, verbal, or written communication sent\n      to the Licensor or its representatives, including but not limited to\n      communication on electronic mailing lists, source code control systems,\n      and issue tracking systems that are managed by, or on behalf of, the\n      Licensor for the purpose of discussing and improving the Work, but\n      excluding communication that is conspicuously marked or otherwise\n      designated in writing by the copyright owner as \"Not a Contribution.\"\n\n      \"Contributor\" shall mean Licensor and any individual or Legal Entity\n      on behalf of whom a Contribution has been received by Licensor and\n      subsequently incorporated within the Work.\n\n   2. Grant of Copyright License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      copyright license to reproduce, prepare Derivative Works of,\n      publicly display, publicly perform, sublicense, and distribute the\n      Work and such Derivative Works in Source or Object form.\n\n   3. Grant of Patent License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      (except as stated in this section) patent license to make, have made,\n      use, offer to sell, sell, import, and otherwise transfer the Work,\n      where such license applies only to those patent claims licensable\n      by such Contributor that are necessarily infringed by their\n      Contribution(s) alone or by combination of their Contribution(s)\n      with the Work to which such Contribution(s) was submitted. If You\n      institute patent litigation against any entity (including a\n      cross-claim or counterclaim in a lawsuit) alleging that the Work\n      or a Contribution incorporated within the Work constitutes direct\n      or contributory patent infringement, then any patent licenses\n      granted to You under this License for that Work shall terminate\n      as of the date such litigation is filed.\n\n   4. Redistribution. You may reproduce and distribute copies of the\n      Work or Derivative Works thereof in any medium, with or without\n      modifications, and in Source or Object form, provided that You\n      meet the following conditions:\n\n      (a) You must give any other recipients of the Work or\n          Derivative Works a copy of this License; and\n\n      (b) You must cause any modified files to carry prominent notices\n          stating that You changed the files; and\n\n      (c) You must retain, in the Source form of any Derivative Works\n          that You distribute, all copyright, patent, trademark, and\n          attribution notices from the Source form of the Work,\n          excluding those notices that do not pertain to any part of\n          the Derivative Works; and\n\n      (d) If the Work includes a \"NOTICE\" text file as part of its\n          distribution, then any Derivative Works that You distribute must\n          include a readable copy of the attribution notices contained\n          within such NOTICE file, excluding those notices that do not\n          pertain to any part of the Derivative Works, in at least one\n          of the following places: within a NOTICE text file distributed\n          as part of the Derivative Works; within the Source form or\n          documentation, if provided along with the Derivative Works; or,\n          within a display generated by the Derivative Works, if and\n          wherever such third-party notices normally appear. The contents\n          of the NOTICE file are for informational purposes only and\n          do not modify the License. You may add Your own attribution\n          notices within Derivative Works that You distribute, alongside\n          or as an addendum to the NOTICE text from the Work, provided\n          that such additional attribution notices cannot be construed\n          as modifying the License.\n\n      You may add Your own copyright statement to Your modifications and\n      may provide additional or different license terms and conditions\n      for use, reproduction, or distribution of Your modifications, or\n      for any such Derivative Works as a whole, provided Your use,\n      reproduction, and distribution of the Work otherwise complies with\n      the conditions stated in this License.\n\n   5. Submission of Contributions. Unless You explicitly state otherwise,\n      any Contribution intentionally submitted for inclusion in the Work\n      by You to the Licensor shall be under the terms and conditions of\n      this License, without any additional terms or conditions.\n      Notwithstanding the above, nothing herein shall supersede or modify\n      the terms of any separate license agreement you may have executed\n      with Licensor regarding such Contributions.\n\n   6. Trademarks. This License does not grant permission to use the trade\n      names, trademarks, service marks, or product names of the Licensor,\n      except as required for reasonable and customary use in describing the\n      origin of the Work and reproducing the content of the NOTICE file.\n\n   7. Disclaimer of Warranty. Unless required by applicable law or\n      agreed to in writing, Licensor provides the Work (and each\n      Contributor provides its Contributions) on an \"AS IS\" BASIS,\n      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n      implied, including, without limitation, any warranties or conditions\n      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n      PARTICULAR PURPOSE. You are solely responsible for determining the\n      appropriateness of using or redistributing the Work and assume any\n      risks associated with Your exercise of permissions under this License.\n\n   8. Limitation of Liability. In no event and under no legal theory,\n      whether in tort (including negligence), contract, or otherwise,\n      unless required by applicable law (such as deliberate and grossly\n      negligent acts) or agreed to in writing, shall any Contributor be\n      liable to You for damages, including any direct, indirect, special,\n      incidental, or consequential damages of any character arising as a\n      result of this License or out of the use or inability to use the\n      Work (including but not limited to damages for loss of goodwill,\n      work stoppage, computer failure or malfunction, or any and all\n      other commercial damages or losses), even if such Contributor\n      has been advised of the possibility of such damages.\n\n   9. Accepting Warranty or Additional Liability. While redistributing\n      the Work or Derivative Works thereof, You may choose to offer,\n      and charge a fee for, acceptance of support, warranty, indemnity,\n      or other liability obligations and/or rights consistent with this\n      License. However, in accepting such obligations, You may act only\n      on Your own behalf and on Your sole responsibility, not on behalf\n      of any other Contributor, and only if You agree to indemnify,\n      defend, and hold each Contributor harmless for any liability\n      incurred by, or claims asserted against, such Contributor by reason\n      of your accepting any such warranty or additional liability.\n\n   END OF TERMS AND CONDITIONS\n\n   APPENDIX: How to apply the Apache License to your work.\n\n      To apply the Apache License to your work, attach the following\n      boilerplate notice, with the fields enclosed by brackets \"{}\"\n      replaced with your own identifying information. (Don't include\n      the brackets!)  The text should be enclosed in the appropriate\n      comment syntax for the file format. We also recommend that a\n      file or class name and description of purpose be included on the\n      same \"printed page\" as the copyright notice for easier\n      identification within third-party archives.\n\n   Copyright {yyyy} {name of copyright owner}\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n","dependencies":{"react":"^16.9.0","redux":"^4.0.4","deepmerge":"^4.2.2","react-dom":"^16.9.0","recompose":"^0.30.0","redux-saga":"^1.1.3","react-redux":"^7.1.3","redux-thunk":"^2.3.0","video-react":"~0.13.3","shaka-player":"^2.4.1","babel-runtime":"^6.26.0","react-cropper":"^1.3.0","babel-polyfill":"^6.26.0","@material-ui/lab":"^4.0.0-alpha.45","react-redux-saga":"^1.0.2","@material-ui/core":"^4.9.5","react-virtualized":"^9.18.5","@material-ui/icons":"^4.9.1","@material-ui/styles":"^4.9.0","immutability-helper":"^3.0.0","@material-ui/pickers":"^3.2.10","redux-dynamic-modules":"^5.2.0","veritone-react-common":"^9.0.4","veritone-redux-common":"3.11.4-beta.0","veritone-oauth-helpers":"^2.1.0","redux-api-middleware-fixed":"^2.0.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"raf":"^3.4.0","jest":"^22.4.3","faker":"^4.1.0","enzyme":"^3.5.0","eslint":"^4.8.0","rimraf":"^2.6.2","rollup":"^1.17.0","webpack":"^4.0.1","cross-env":"^5.1.1","node-sass":"^4.7.2","stylelint":"^8.2.0","babel-core":"^6.26.0","url-loader":"^0.6.2","sass-loader":"^6.0.6","webpack-cli":"^2.0.9","babel-loader":"^7.1.3","redux-logger":"^3.0.6","redux-devtools":"^3.5.0","@storybook/react":"v3.3.9","redux-mock-store":"^1.5.4","veritone-dev-env":"^3.0.0","rollup-plugin-url":"^2.2.2","identity-obj-proxy":"^3.0.0","redux-validate-fsa":"^0.1.2","rollup-plugin-json":"^4.0.0","babel-plugin-lodash":"^3.3.2","eslint-plugin-react":"^7.8.2","react-test-renderer":"^16.0.0","rollup-plugin-alias":"^1.5.2","rollup-plugin-babel":"^3.0.7","eslint-plugin-import":"^2.10.0","eslint-plugin-lodash":"^2.4.5","babel-plugin-date-fns":"^0.2.1","eslint-plugin-promise":"^3.5.0","rollup-plugin-postcss":"^2.0.3","rollup-plugin-replace":"^2.2.0","@storybook/addon-knobs":"3.3.9","eslint-config-prettier":"^2.6.0","rollup-analyzer-plugin":"^1.2.0","rollup-plugin-commonjs":"^10.0.1","enzyme-adapter-react-16":"^1.0.0","stylelint-config-prettier":"^4.0.0","stylelint-config-standard":"^17.0.0","rollup-plugin-node-resolve":"^5.2.0","babel-plugin-external-helpers":"^6.22.0","babel-plugin-transform-runtime":"^6.23.0","redux-immutable-state-invariant":"^2.1.0","babel-plugin-add-react-displayname":"^0.0.5","babel-plugin-transform-class-properties":"^6.24.1","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-plugin-transform-export-extensions":"^6.22.0","babel-plugin-transform-object-rest-spread":"^6.26.0"},"_npmOperationalInternal":{"tmp":"tmp/veritone-widgets_9.0.5_1590545879546_0.8018748896762486","host":"s3://npm-registry-packages"}},"9.0.10":{"name":"veritone-widgets","version":"9.0.10","license":"Apache-2.0","_id":"veritone-widgets@9.0.10","maintainers":[{"name":"aaronadaniel","email":"aaron.kalel@gmail.com"},{"name":"albertcbrown","email":"al@veritone.com"},{"name":"christopher-gustavsson","email":"chrisgustavsson1@gmail.com"},{"name":"coolmitch","email":"robb.mitch@gmail.com"},{"name":"kkaiser","email":"kkaiser@veritone.com"},{"name":"linh.le","email":"linh.le@setacinq.vn"},{"name":"mikomonday","email":"miko.monday@gmail.com"},{"name":"mmtbkn","email":"mohamedirvine@gmail.com"},{"name":"seta-tuha","email":"tu.ha@setacinq.vn"},{"name":"truong_veritone","email":"ktruong@veritone.com"},{"name":"veritone_dev","email":"dev@veritone.com"},{"name":"veritone-jordan","email":"jbelford@veritone.com"}],"dist":{"shasum":"defc18936321a738a914a4cf669ef2c902a4a890","tarball":"https://registry.npmjs.org/veritone-widgets/-/veritone-widgets-9.0.10.tgz","fileCount":247,"integrity":"sha512-bUpEbN0xA0X0aOeHVki96TI2n6AhYqlhAdBfRbDlbXcP/cyMNLMm9w2oCK1cy3BkHoPmFXsufrXWX9FzazDYwg==","signatures":[{"sig":"MEUCIACsIatIo6idKzEUZkWzMLVl4cf7Qyi018Bciyi1XBN/AiEAlDQL83b05T//Ix2HnsQC5xkg+VdqdFTLi4fjpP39aC0=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":29341617,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJe0VDgCRA9TVsSAnZWagAAtDkQAIdBJ/HW9UFTAVYRfn9n\nBXZCucmuTiOFdOKNOVXmRd6pu9eeAwpY7qhdQjmDfEO5nCSJjw+hwWmVzw8F\nr8sonFU695/2dzCLk26eQYUoegAIWKMTb9O7BdOdvR/AuF6YU/PLho6qMI8r\n0NebcIWe10lbsVDf8vE0L/fWEt5svCoTMj+20td4YnAP1Pg/pZ13tZPWiBSi\nIU+Z95zAQPB0qAfmMG5xUP59S+gfSCTPEWcNFBuNQyPM2Edkf4IOZ841ywgy\nDoYodSM2C2Ew0SlfEOssls5YYuQXWHHdJ6bvGrR1QEyerWL7l2CGsKMfJrs0\nDAVEM/aiPb/y1Pb4HaNBqmszS9p9hq1Q/41j1IqTMS5DVjtg2zJcevevE9pX\nAupfSEw6WwgRRBK4nkKkiWWeDo3ezJ/pGycXSSMbC0FSSiUuYV//JBF2ewZd\nV7EntIj37LCTPwd8rxcE10DRSHcUYG4W8ksm+Ib0jb2kV1DLaq7SpqzcWrxA\nFcFHKrQU8HA8a82qS/G4qF8aw7VqY2OFCKDZ30u/rCHOyn/MjxpUdAGn21QM\nq0TKJSeV3d5WTvD3P3JhTZQ+0zBsMGChbyn5rP9yKiCDVrc2wZTfx6aQXbxX\nwQiNlgAEGQLVA5ChRChpeB35by5pvB6RaZP/TfxUc0CsiwUcyK2TjcMU0w92\n7c0o\r\n=WOeU\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"setupFiles":["<rootDir>/test/testSuitePolyfills.js","<rootDir>/test/configureEnzyme.js"],"moduleNameMapper":{"^dnd-core$":"dnd-core/dist/cjs","^react-dnd$":"react-dnd/dist/cjs","\\.(css|scss)$":"identity-obj-proxy","^react-dnd-test-utils$":"react-dnd-test-utils/dist/cjs","^react-dnd-test-backend$":"react-dnd-test-backend/dist/cjs","^react-dnd-html5-backend$":"react-dnd-html5-backend/dist/cjs","^react-dnd-touch-backend$":"react-dnd-touch-backend/dist/cjs","\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$":"<rootDir>/test/__mocks__/fileMock.js"},"moduleDirectories":["node_modules","../../node_modules"],"moduleFileExtensions":["js","jsx"]},"main":"dist/bundle-cjs.js","module":"dist/bundle-es.js","scripts":{"lint":"yarn run lint:js && yarn run lint:styles","test":"jest","build":"yarn run build:es && yarn run build:cjs && yarn run build:script-tag","start":"yarn run start:widget-server; yarn run start:storybook","format":"prettier --write \"./src/**/*.{js,scss}\"","lint:js":"eslint src/** --ext .js --max-warnings 0","build:es":"cross-env NODE_ENV=production BABEL_ENV=production-es rollup -c rollup.config.es.js","prebuild":"yarn run clean:build","build:cjs":"cross-env NODE_ENV=production BABEL_ENV=production-cjs rollup -c rollup.config.cjs.js","test:watch":"jest --watch","build:watch":"cross-env NODE_ENV=production rollup -c --watch","clean:build":"rimraf dist","lint:styles":"stylelint \"src/**/*.{scss, css}\"","prepublishOnly":"yarn run test && yarn run lint && yarn run build","build:storybook":"NODE_ENV=production build-storybook -c .storybook -o docs-static","start:storybook":"NODE_ENV=test start-storybook -p 3000 -c .storybook","build:script-tag":"cross-env NODE_ENV=production BABEL_ENV=production-cjs webpack --config webpack.config.script-tag.js","start:widget-server":"yarn workspace veritone-widgets-server run start &"},"_npmUser":{"name":"mmtbkn","email":"mohamedirvine@gmail.com"},"description":"As of v5.0.0, this package exports both React \"smart components\" and framework agnostic \"widgets\" for most components. When both are available, the smart component is the default export and the widget is a named export. For example, `import FilePicker, { ","directories":{},"jsnext:main":"dist/bundle-es.js","licenseText":"                                 Apache License\n                           Version 2.0, January 2004\n                        http://www.apache.org/licenses/\n\n   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n   1. Definitions.\n\n      \"License\" shall mean the terms and conditions for use, reproduction,\n      and distribution as defined by Sections 1 through 9 of this document.\n\n      \"Licensor\" shall mean the copyright owner or entity authorized by\n      the copyright owner that is granting the License.\n\n      \"Legal Entity\" shall mean the union of the acting entity and all\n      other entities that control, are controlled by, or are under common\n      control with that entity. For the purposes of this definition,\n      \"control\" means (i) the power, direct or indirect, to cause the\n      direction or management of such entity, whether by contract or\n      otherwise, or (ii) ownership of fifty percent (50%) or more of the\n      outstanding shares, or (iii) beneficial ownership of such entity.\n\n      \"You\" (or \"Your\") shall mean an individual or Legal Entity\n      exercising permissions granted by this License.\n\n      \"Source\" form shall mean the preferred form for making modifications,\n      including but not limited to software source code, documentation\n      source, and configuration files.\n\n      \"Object\" form shall mean any form resulting from mechanical\n      transformation or translation of a Source form, including but\n      not limited to compiled object code, generated documentation,\n      and conversions to other media types.\n\n      \"Work\" shall mean the work of authorship, whether in Source or\n      Object form, made available under the License, as indicated by a\n      copyright notice that is included in or attached to the work\n      (an example is provided in the Appendix below).\n\n      \"Derivative Works\" shall mean any work, whether in Source or Object\n      form, that is based on (or derived from) the Work and for which the\n      editorial revisions, annotations, elaborations, or other modifications\n      represent, as a whole, an original work of authorship. For the purposes\n      of this License, Derivative Works shall not include works that remain\n      separable from, or merely link (or bind by name) to the interfaces of,\n      the Work and Derivative Works thereof.\n\n      \"Contribution\" shall mean any work of authorship, including\n      the original version of the Work and any modifications or additions\n      to that Work or Derivative Works thereof, that is intentionally\n      submitted to Licensor for inclusion in the Work by the copyright owner\n      or by an individual or Legal Entity authorized to submit on behalf of\n      the copyright owner. For the purposes of this definition, \"submitted\"\n      means any form of electronic, verbal, or written communication sent\n      to the Licensor or its representatives, including but not limited to\n      communication on electronic mailing lists, source code control systems,\n      and issue tracking systems that are managed by, or on behalf of, the\n      Licensor for the purpose of discussing and improving the Work, but\n      excluding communication that is conspicuously marked or otherwise\n      designated in writing by the copyright owner as \"Not a Contribution.\"\n\n      \"Contributor\" shall mean Licensor and any individual or Legal Entity\n      on behalf of whom a Contribution has been received by Licensor and\n      subsequently incorporated within the Work.\n\n   2. Grant of Copyright License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      copyright license to reproduce, prepare Derivative Works of,\n      publicly display, publicly perform, sublicense, and distribute the\n      Work and such Derivative Works in Source or Object form.\n\n   3. Grant of Patent License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      (except as stated in this section) patent license to make, have made,\n      use, offer to sell, sell, import, and otherwise transfer the Work,\n      where such license applies only to those patent claims licensable\n      by such Contributor that are necessarily infringed by their\n      Contribution(s) alone or by combination of their Contribution(s)\n      with the Work to which such Contribution(s) was submitted. If You\n      institute patent litigation against any entity (including a\n      cross-claim or counterclaim in a lawsuit) alleging that the Work\n      or a Contribution incorporated within the Work constitutes direct\n      or contributory patent infringement, then any patent licenses\n      granted to You under this License for that Work shall terminate\n      as of the date such litigation is filed.\n\n   4. Redistribution. You may reproduce and distribute copies of the\n      Work or Derivative Works thereof in any medium, with or without\n      modifications, and in Source or Object form, provided that You\n      meet the following conditions:\n\n      (a) You must give any other recipients of the Work or\n          Derivative Works a copy of this License; and\n\n      (b) You must cause any modified files to carry prominent notices\n          stating that You changed the files; and\n\n      (c) You must retain, in the Source form of any Derivative Works\n          that You distribute, all copyright, patent, trademark, and\n          attribution notices from the Source form of the Work,\n          excluding those notices that do not pertain to any part of\n          the Derivative Works; and\n\n      (d) If the Work includes a \"NOTICE\" text file as part of its\n          distribution, then any Derivative Works that You distribute must\n          include a readable copy of the attribution notices contained\n          within such NOTICE file, excluding those notices that do not\n          pertain to any part of the Derivative Works, in at least one\n          of the following places: within a NOTICE text file distributed\n          as part of the Derivative Works; within the Source form or\n          documentation, if provided along with the Derivative Works; or,\n          within a display generated by the Derivative Works, if and\n          wherever such third-party notices normally appear. The contents\n          of the NOTICE file are for informational purposes only and\n          do not modify the License. You may add Your own attribution\n          notices within Derivative Works that You distribute, alongside\n          or as an addendum to the NOTICE text from the Work, provided\n          that such additional attribution notices cannot be construed\n          as modifying the License.\n\n      You may add Your own copyright statement to Your modifications and\n      may provide additional or different license terms and conditions\n      for use, reproduction, or distribution of Your modifications, or\n      for any such Derivative Works as a whole, provided Your use,\n      reproduction, and distribution of the Work otherwise complies with\n      the conditions stated in this License.\n\n   5. Submission of Contributions. Unless You explicitly state otherwise,\n      any Contribution intentionally submitted for inclusion in the Work\n      by You to the Licensor shall be under the terms and conditions of\n      this License, without any additional terms or conditions.\n      Notwithstanding the above, nothing herein shall supersede or modify\n      the terms of any separate license agreement you may have executed\n      with Licensor regarding such Contributions.\n\n   6. Trademarks. This License does not grant permission to use the trade\n      names, trademarks, service marks, or product names of the Licensor,\n      except as required for reasonable and customary use in describing the\n      origin of the Work and reproducing the content of the NOTICE file.\n\n   7. Disclaimer of Warranty. Unless required by applicable law or\n      agreed to in writing, Licensor provides the Work (and each\n      Contributor provides its Contributions) on an \"AS IS\" BASIS,\n      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n      implied, including, without limitation, any warranties or conditions\n      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n      PARTICULAR PURPOSE. You are solely responsible for determining the\n      appropriateness of using or redistributing the Work and assume any\n      risks associated with Your exercise of permissions under this License.\n\n   8. Limitation of Liability. In no event and under no legal theory,\n      whether in tort (including negligence), contract, or otherwise,\n      unless required by applicable law (such as deliberate and grossly\n      negligent acts) or agreed to in writing, shall any Contributor be\n      liable to You for damages, including any direct, indirect, special,\n      incidental, or consequential damages of any character arising as a\n      result of this License or out of the use or inability to use the\n      Work (including but not limited to damages for loss of goodwill,\n      work stoppage, computer failure or malfunction, or any and all\n      other commercial damages or losses), even if such Contributor\n      has been advised of the possibility of such damages.\n\n   9. Accepting Warranty or Additional Liability. While redistributing\n      the Work or Derivative Works thereof, You may choose to offer,\n      and charge a fee for, acceptance of support, warranty, indemnity,\n      or other liability obligations and/or rights consistent with this\n      License. However, in accepting such obligations, You may act only\n      on Your own behalf and on Your sole responsibility, not on behalf\n      of any other Contributor, and only if You agree to indemnify,\n      defend, and hold each Contributor harmless for any liability\n      incurred by, or claims asserted against, such Contributor by reason\n      of your accepting any such warranty or additional liability.\n\n   END OF TERMS AND CONDITIONS\n\n   APPENDIX: How to apply the Apache License to your work.\n\n      To apply the Apache License to your work, attach the following\n      boilerplate notice, with the fields enclosed by brackets \"{}\"\n      replaced with your own identifying information. (Don't include\n      the brackets!)  The text should be enclosed in the appropriate\n      comment syntax for the file format. We also recommend that a\n      file or class name and description of purpose be included on the\n      same \"printed page\" as the copyright notice for easier\n      identification within third-party archives.\n\n   Copyright {yyyy} {name of copyright owner}\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n","dependencies":{"react":"^16.9.0","redux":"^4.0.4","deepmerge":"^4.2.2","react-dom":"^16.9.0","recompose":"^0.30.0","redux-saga":"^1.1.3","react-redux":"^7.1.3","redux-thunk":"^2.3.0","video-react":"~0.13.3","shaka-player":"^2.4.1","babel-runtime":"^6.26.0","react-cropper":"^1.3.0","babel-polyfill":"^6.26.0","@material-ui/lab":"^4.0.0-alpha.45","react-redux-saga":"^1.0.2","@material-ui/core":"^4.9.5","react-virtualized":"^9.18.5","@material-ui/icons":"^4.9.1","@material-ui/styles":"^4.9.0","immutability-helper":"^3.0.0","@material-ui/pickers":"^3.2.10","redux-dynamic-modules":"^5.2.0","veritone-oauth-helpers":"^2.1.0","redux-api-middleware-fixed":"^2.0.0"},"_hasShrinkwrap":false,"devDependencies":{"raf":"^3.4.0","jest":"^22.4.3","faker":"^4.1.0","enzyme":"^3.5.0","eslint":"^4.8.0","rimraf":"^2.6.2","rollup":"^1.17.0","webpack":"^4.0.1","cross-env":"^5.1.1","node-sass":"^4.7.2","stylelint":"^8.2.0","babel-core":"^6.26.0","url-loader":"^0.6.2","sass-loader":"^6.0.6","webpack-cli":"^2.0.9","babel-loader":"^7.1.3","redux-logger":"^3.0.6","redux-devtools":"^3.5.0","@storybook/react":"v3.3.9","redux-mock-store":"^1.5.4","veritone-dev-env":"^3.0.0","rollup-plugin-url":"^2.2.2","identity-obj-proxy":"^3.0.0","redux-validate-fsa":"^0.1.2","rollup-plugin-json":"^4.0.0","babel-plugin-lodash":"^3.3.2","eslint-plugin-react":"^7.8.2","react-test-renderer":"^16.0.0","rollup-plugin-alias":"^1.5.2","rollup-plugin-babel":"^3.0.7","eslint-plugin-import":"^2.10.0","eslint-plugin-lodash":"^2.4.5","babel-plugin-date-fns":"^0.2.1","eslint-plugin-promise":"^3.5.0","rollup-plugin-postcss":"^2.0.3","rollup-plugin-replace":"^2.2.0","veritone-react-common":"^9.0.10","veritone-redux-common":"^3.11.5","@storybook/addon-knobs":"3.3.9","eslint-config-prettier":"^2.6.0","rollup-analyzer-plugin":"^1.2.0","rollup-plugin-commonjs":"^10.0.1","enzyme-adapter-react-16":"^1.0.0","stylelint-config-prettier":"^4.0.0","stylelint-config-standard":"^17.0.0","rollup-plugin-node-resolve":"^5.2.0","babel-plugin-external-helpers":"^6.22.0","babel-plugin-transform-runtime":"^6.23.0","redux-immutable-state-invariant":"^2.1.0","babel-plugin-add-react-displayname":"^0.0.5","babel-plugin-transform-class-properties":"^6.24.1","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-plugin-transform-export-extensions":"^6.22.0","babel-plugin-transform-object-rest-spread":"^6.26.0"},"_npmOperationalInternal":{"tmp":"tmp/veritone-widgets_9.0.10_1590776031652_0.9844098318660368","host":"s3://npm-registry-packages"}},"9.0.11":{"name":"veritone-widgets","version":"9.0.11","license":"Apache-2.0","_id":"veritone-widgets@9.0.11","maintainers":[{"name":"aaronadaniel","email":"aaron.kalel@gmail.com"},{"name":"albertcbrown","email":"al@veritone.com"},{"name":"christopher-gustavsson","email":"chrisgustavsson1@gmail.com"},{"name":"coolmitch","email":"robb.mitch@gmail.com"},{"name":"kkaiser","email":"kkaiser@veritone.com"},{"name":"linh.le","email":"linh.le@setacinq.vn"},{"name":"mikomonday","email":"miko.monday@gmail.com"},{"name":"mmtbkn","email":"mohamedirvine@gmail.com"},{"name":"seta-tuha","email":"tu.ha@setacinq.vn"},{"name":"truong_veritone","email":"ktruong@veritone.com"},{"name":"veritone_dev","email":"dev@veritone.com"},{"name":"veritone-jordan","email":"jbelford@veritone.com"}],"dist":{"shasum":"9fd2bd6e8f88f99a1efe1bd3287671c35d626e79","tarball":"https://registry.npmjs.org/veritone-widgets/-/veritone-widgets-9.0.11.tgz","fileCount":188,"integrity":"sha512-bwxrak3EBCNW8Ejk8eaXYchHTiuASTtNvVzDvCWjo4BYAUvZAb4iFgiHnxXfQ73FHfLVZ6EObaC0fsogkqokGA==","signatures":[{"sig":"MEUCIQDnXQnkqUcyIynoOl8qa0pD0K06ZoDKKZLYAkiIlLpakgIgUWYQEHf6ZlxDhDxc32FHamiWVF1/4NyFMyo06aDV+aw=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":29344039,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfBB5CCRA9TVsSAnZWagAAa4AP/3nnpr15TcKhN6Rrgwlr\nBQz06ukcLv4A7iYd9Z9XC4broAfFcRAgtbL1Upy2LJ6GTim/hNeWeiCL2SiO\nqd76xYzSjUisOTMKUP/uqczj2V1N9mxssjfvB+zJT+Bju6fQ2MmWWG7AeoOj\nXGPV+FBNT0aaJ0chLYhjEzw+f9Reas2Iixai9kjPj0pEGC50aeEfJc0k93x7\n21+u1doPMM9ab/wsCSH5e3sO768bFE25v+1+Py555/Rn1azymkdr0ObUycIf\nH3o3G/uHNHbNaeFks4RAUOmFmaqySM8oC1JqLztTsw9jGivHdDFJcd4osI6D\nU1P67BNbIitCi5kLP9oM42DzIbbOiZpZq4BMXHXtZUQbTzxZrN0mxRPH6OZQ\n2ka4TdFAkFa2w8bQP/qn7zaSoxsniFZZ7fBuh++Uept/lGfSRzwu6c+oFCLP\n6VgY69R8w7BlGaQObKZwm29V3kDsOOjtEmgE4/6LZMuhHMkDrAVWMrcPrEGZ\nlOxbMOfpRaFmbCdsnkL+iK0DMd0a/Ns/9nxuW2pt/zwY/Ds1w9PGyhB3tCSf\n5Czfe+EY3fuyEXP83VhDwQrzGdQCDXPMi4d65bCseMWGKLYbrw87Gkw3cmWJ\nQZl2mKUDrQu3A3EkFUob6zAkZStmNIyzF/zX4I8GIfOtwmj9BRLOR4UzQj0X\nj3w7\r\n=9vyC\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"setupFiles":["<rootDir>/test/testSuitePolyfills.js","<rootDir>/test/configureEnzyme.js"],"moduleNameMapper":{"^dnd-core$":"dnd-core/dist/cjs","^react-dnd$":"react-dnd/dist/cjs","\\.(css|scss)$":"identity-obj-proxy","^react-dnd-test-utils$":"react-dnd-test-utils/dist/cjs","^react-dnd-test-backend$":"react-dnd-test-backend/dist/cjs","^react-dnd-html5-backend$":"react-dnd-html5-backend/dist/cjs","^react-dnd-touch-backend$":"react-dnd-touch-backend/dist/cjs","\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$":"<rootDir>/test/__mocks__/fileMock.js"},"moduleDirectories":["node_modules","../../node_modules"],"moduleFileExtensions":["js","jsx"]},"main":"dist/bundle-cjs.js","module":"dist/bundle-es.js","readme":"## Quick Start\nAs of v5.0.0, this package exports both React \"smart components\" and framework agnostic \"widgets\" for most components. When both are available, the smart component is the default export and the widget is a named export. For example, `import FilePicker, { FilePickerWidget } from 'veritone-widgets'` imports the smart component as FilePicker and the widget as FilePickerWidget. Smart components usually require redux reducers and sagas to be imported as well, see [Using Smart Components](#using-smart-components)\n\n### Widgets (framework agnostic)\n```javascript\nimport { VeritoneApp, OAuthLoginButtonWidget, AppBarWidget } from 'veritone-widgets'\nconst app = VeritoneApp();\n\n// a \"log in with veritone\" button\nconst oauthButton = new OAuthLoginButtonWidget({\n  // the ID of an existing element in your document where the button will appear\n  elId: 'login-button-widget',\n  // the ID of your Veritone application (found in Developer App)\n  clientId: 'my-client-id',\n  // the route in your app that will handle OAuth responses (more details below)\n  redirectUri: 'https://my-app.com/handle_oauth_callback',\n  // optional callbacks to retrieve the OAuth token for using outside of VeritoneApp:\n  onAuthSuccess: ({ OAuthToken }) => console.log(OAuthToken),\n  onAuthFailure: (error) => console.log(error)\n});\n\n// the Veritone app bar, which will receive auth after the user completes\n// the oauth flow using the OAuthLoginButton\nconst appBar = new AppBarWidget({\n  elId: 'appBar-widget',\n  title: 'My App',\n  backgroundColor: '#4caf50',\n  profileMenu: true,\n  appSwitcher: true\n});\n```\n### React Components\n```javascript\nimport { OAuthLoginButton } from 'veritone-widgets'\n\nrender(\n  <OAuthLoginButton\n    clientId=\"my-client-id\"\n    redirectUri=\"https://my-app.com/handle_oauth_callback\"\n  />\n)\n```\n\n## Using Smart Components\nBecause smart components are not rendered within the VeritoneApp widget framework, they require the user's app to have its own redux store with the components' reducers installed. Often, [sagas](https://redux-saga.js.org/) are also included and must be started as part of the app's root saga.\n\n### Smart component reducer/saga requirements\n#### FilePicker\n* reducer:\n`import {filePickerReducer} from 'veritone-widgets'`\n\n* saga:\n`import {filePickerSaga} from 'veritone-widgets'`\n\n#### Notifications\n* reducer:\n`import {notificationsReducer} from 'veritone-widgets'`\n\n#### EngineOutputExport\n* reducer:\n`import {engineOutputExportReducer} from 'veritone-widgets'`\n\n#### OAuthLoginButton\n* reducers:\nveritone-redux-common `User`, `Auth` and `Config` reducers\n\n### Smart component theme wrapper requirements\nIn your app, import the `VeritoneSDKThemeProvider` from `veritone-react-common`:\n```\nimport {VeritoneSDKThemeProvider } from 'veritone-react-common'\n```\nthen wrap your root component with `<VeritoneSDKThemeProvider>`. If this is not possible, the `@withVeritoneSDKThemeProvider` decorator is provided to wrap individual components.\n\nComponents can be customized using [material-ui themes](https://material-ui.com/customization/themes/) by passing a theme into the `theme` prop of the provider. Passed-in themes will be merged with the default Veritone theme.\n\n## Using Widgets\n### 1. Create an instance of VeritoneApp\n`VeritoneApp` is a container for all the widgets and widget data in an app. Before using any widgets, you need to import and call it. Typically this will be done when your application is loaded and initialized.\n\n```javascript\nimport { VeritoneApp } from 'veritone-widgets'\nconst app = VeritoneApp();\n```\n\n_Note_: `VeritoneApp` creates a singleton, so you do not need to manage the constructed app instance yourself. As long as VeritoneApp() has been imported and called at least once, you can retrieve the same instance by importing and calling VeritoneApp() again elsewhere in your app, if needed.\n\n### 2. Authenticate with Veritone via OAuth\nIf you already have an OAuth token (because your app handles the client-side OAuth flow on its own), provide it by calling `login()` on the returned app instance.\n\n```javascript\nimport { VeritoneApp } from 'veritone-widgets'\nconst app = VeritoneApp().login({\n  OAuthToken: 'my-token-here'\n});\n```\n \nCalling `login()` is usually not necessary; we provide an `OAuthLoginButton` widget, which handles the OAuth token exchange automatically. See the instructions in the next section for more information.\n\n\n### 3. Add widgets to your app\nAfter you've initialized the app framework by calling `VeritoneApp()`, you can begin using widgets.\n\nA \"widget\" is a self-contained frontend component. Widgets always render into an empty element which you provide. They are self-contained and handle rendering a UI, responding to user interactions, making api calls, and so on.\n\nFor example, the `AppBar` widget renders the Veritone application toolbar, fetches the required data to render the Veritone app switcher and profile menu, and allows the developer to configure their application logo and title. When the user uses the app switcher or uses the profile menu to log out, the AppBar widget handles those events.  \n\nWidgets typically can be configured with a variety of options, but always require at least `elId`. This is the id (string) of an element in your document, often a `div`, into which the widget will be rendered. By applying styling to that div, you can position the widget around your app. The element specified in elId must exist in the document before you create the widget that will use it.\n\n#### Example: Using the OAuthLoginButton widget\nThe first widget you are likely to include is `OAuthLoginButton`. `OAuthLoginButton` renders a \"log in with Veritone\" button that your users can click to start the OAuth authentication flow. At the end of that flow, your VeritoneApp instance will be authenticated and able to make requests to our API. You can also retrieve the oauth token to use in your own app.\n\n_Note_: Unless you are handling the OAuth flow on your own and providing the token to VeritoneApp manually, the `OAuthLoginButton` widget is required for Veritone widgets to work.\n\nThe actual code you write to use widgets will vary based on your framework of choice, but in general, it should be as follows.\n\n```javascript\n// assuming VeritoneApp has already been initialized as described earlier, and given a document like:\n<body>\n  ...\n  <div id=\"login-button-widget\" />\n</body>\n\n// you can render the login button to the document like this:\nimport { OAuthLoginButtonWidget } from 'veritone-widgets'\nconst oauthButton = new OAuthLoginButtonWidget({\n  // the ID of an existing element in your document where the button will appear\n  elId: 'login-button-widget',\n  // the ID of your Veritone application (found in Developer App)\n  clientId: 'my-client-id',\n  // the route in your app that will handle OAuth responses (more details below)\n  redirectUri: 'https://my-app.com/handle_oauth_callback',\n  // optional callbacks to retrieve the OAuth token for using outside of VeritoneApp:\n  onAuthSuccess: ({ OAuthToken }) => console.log(OAuthToken),\n  onAuthFailure: (error) => console.log(error)\n});\n```\n\nWhen `new OAuthLoginButtonWidget({ ... })` runs, the widget will appear on your page.\n\n#### Example: Using the AppBar widget\nAll Veritone apps should also include the AppBar widget.\n\n```javascript\n<body>\n  <div id=\"appBar-widget\" />\n  ...\n</body>\n\nimport { AppBarWidget } from 'veritone-widgets'\nconst appBar = new AppBarWidget({\n  elId: 'appBar-widget',\n  title: 'My App',\n  backgroundColor: '#4caf50',\n  profileMenu: true,\n  appSwitcher: true\n});\n```\n\n## Use via script tag\nFor environments that do not support javascript module imports, widgets can also be included in an app via script tags.\n\n```\n<body>\n  <div id=\"appBar-widget\"></div>\n\n  <script src=\"https://unpkg.com/veritone-widgets@^5/dist/umd/VeritoneApp.js\"></script>\n  <script src=\"https://unpkg.com/veritone-widgets@^5/dist/umd/AppBar.js\"></script>\n\n  <script>\n    const app = VeritoneApp.default();\n\n    const appBar = new AppBar.AppBarWidget({\n      elId: 'appBar-widget',\n      title: 'AppBar Widget',\n      profileMenu: true,\n      appSwitcher: true\n    });\n  </script>\n</body>\n```\n\nAs you can see, each widget is bundled individually to keep file sizes small. In addition, VeritoneApp is separately bundled and required to use widgets. Scripts can be accessed from the the [unpkg](https://unpkg.com/) cdn or downloaded and hosted on your own infrastructure. Unpkg supports [semver ranges](https://docs.npmjs.com/misc/semver), or a specific version can be specified exactly. \n\n\n## Configuring widgets\nNote that the OAuthLoginButton widget in the example above is being configured with five properties: elId, clientId, OAuthURI, onAuthSuccess and onAuthFailure. As mentioned earlier, an elId is required for every widget. OAuthURI, clientId, onAuthSuccess and onAuthFailure are specific configurable properties on the OAuthLoginButton. As it is in the example, configuration is always provided to the widget constructor.\n\n## Widget instance methods\nSome widgets have methods which can be called on an instance of that widget. For example, the FilePicker widget has the methods `pick()` and `cancel()` to open and close the picker dialog, respectively.\n\n```javascript\nthis._picker = new FilePickerWidget({\n  elId: 'file-picker-widget',\n  accept: ['image/*'],\n  multiple: true\n});\n\n...\n// call the pick() instance method on the widget\nthis._picker.pick(files => console.log(files))\n```\n\n#### Where to look for widget options\nIn practice, a widget is just a wrapper around a React component. The easiest way to determine all the possible options for a given widget is to look at the PropTypes of its component. Remember to watch for console warnings which will indicate when an option was configured incorrectly, or when a required option was not provided. \n\n* The \"storybook\" dev environments in veritone-widgets and veritone-react-common have live examples of the various widgets and components.\n\n* The `story.js` file in the root of each widget folder in veritone-widgets and in the root of each component folder in veritone-react-common show the code used to create the storybook pages. If you are using React to write your application, these can be used directly as a basis for your own implementation. \n\n* The PropTypes in the source files of the various widgets (in veritone-widgets) and their respective components (in veritone-react-common) generally correspond to configurable options. Likewise, instance methods for a widget will be defined on its widget class in veritone-widgets.\n\n### Destroying widgets\nTo remove a widget, call `destroy()` on the instance\n```javascript\nconst oauthButton = new OAuthLoginButtonWidget({ ... });\n...\noauthButton.destroy();\n```\n\n## Available widgets\nThe current widgets are:\n\n**AppBar**\n\nThe title and navigation bar common between all Veritone applications. Includes a logo, title, the Veritone app switcher and profile menu.\n\n*Options:*\n\n* title: string, a title to show in the center of the AppBar\n* logoSrc: string, a URL or image (like an SVG) to use as the logo on the left-hand side of the AppBar.\n* backgroundColor: string, a color (in hex) to use for the AppBar background\n* profileMenu: bool, whether or not to show the profile menu\n* appSwitcher: bool, whether or not to show the app switcher menu\n* logo: bool, whether or not to show the veritone logo on the left side of the AppBar\n* onLogout: func, called when the user clicks \"logout\". Apps must implement their own logout logic (usually by deleting the stored oauth token and redirecting or refreshing the page appropriately)\n\n**OAuthLoginButton**\nThe \"Log in with Veritone\" button and corresponding frontend logic to handle the OAuth2 authentication flow.\n\n*Options:*\n* mode: \"implicit\" (default) or \"authCode\", the OAuth grant type you wish to use. \n* OAuthURI: string (required if using `authCode` mode), the URL of your app server's OAuth callback endpoint.\n* redirectUri: string (required if using `implicit` mode), the URL of your app frontend's OAuth callback endpoint.\n* clientID: string (required if using implicit mode), the ID of your Veritone application (found in Developer App)\n* onAuthSuccess: function, a callback that will be called with the OAuth token when the OAuth flow is completed successfully.\n* onAuthFailure: function, a callback that will be called with the error when the OAuth flow fails.\n\n*Requirements*\n\nVeritone provides two OAuth modes to suit different app requirements:\n\n`Implicit`, the default mode, is a frontend-only grant flow with no serverside requirement. _Most apps will use this mode._ This flow is much easier for apps to implement but has the downside of not returning a refresh token; users will need to log in again each time their token expires. \n\n`Auth Code` is a server-based grant flow, which uses your Veritone app's OAuth secret to retrieve both an auth token and refresh token. Auth code flow requires a server because the OAuth secret cannot be exposed to the client; the veritone-widets-server package is an example implementation, and more information can be found in its readme.\n\n**FilePicker**\n\nThe Veritone file upload dialog. Handles selecting and uploading files to S3 for use on the Veritone platform.\n\n*Options:*\n\n* accept: oneOfType([arrayOf(string), string]), file extension(s) or mimetype(s) which the file picker will accept\n* multiple: bool, whether the picker will accept multiple files to upload in a batch\n* width: number, the width of the filepicker dialog\n* height: number, the height of the filepicker dialog\n* allowUrlUpload: bool, whether the filepicker will allow files to be selected by URL\n\n*Instance methods*\n\n* pick(callback): open the filepicker dialog.\n  * callback signature is (result, { warning, error, cancelled })\n    * result: array of result objects, one for each file uploaded\n      * key: string, the filename as stored on the server (may include a UUID)\n      * fileName: string, the original filename\n      * size: number, the file size in bytes\n      * type: string, the mime type of the file\n      * error: string or `false`, the error that prevented the file from uploading, if any\n      * bucket: string, the S3 bucket to which the file was uploaded\n      * expiresInSeconds: number, the length of time the credentials in `getUrl` will be valid, in seconds.\n      * getUrl: string or `null`, the resulting S3 URL, if successful. Includes credentials that are valid for `expires` seconds. \n      * unsignedUrl: string or `null`, the resulting S3 URL, if successful. Does not include credentials and will need to be signed to be used.\n    * warning: string or `false`, a warning message if some (but not all) files failed to upload. A warning indicates that `result` contains some successful upload result objects, and some that were not successful (unsuccessful objects will have `error` populated with an error message, as noted above)\n    * error: string or `false`, an error message, if all files failed to upload.\n    * cancelled: bool, whether or not the filepicker interaction was cancelled (by the user, or by calling cancel()).\n\n* cancel(): close the filepicker dialog. The callback provided to pick() will be called with `(null, { cancelled: true })`.\n\n**Table**\n\nA Veritone table to display data.\n\n*Options:*\n\n* data: arrayOf(object) (required), the dataset\n* columns: arrayOf(shape) (required), a set of defintions for each column to be displayed\n  * shape: object with the following keys:\n    * dataKey: string (required), the data attribute to display within column \n    * header: string, the column heading\n    * transform: function, specifies how column data should be displayed\n      * signature: `(cellValue) => {}`\n    * menu: bool, identifies a column as a menu column\n    * onSelectItem: function, when `menu` is `true`, specifies action(s) to take when a menu option is clicked\n      * signature: `(menuAction) => {}`\n    * cursorPointer: bool, show cursor pointer over table cells\n    * align: string, specifies columm alignment: `['left', 'right', 'center']`\n    * width: number, specifies the width of a column\n* paginate: bool, specifies whether table data should be paginated\n* initialItemsPerPage: number, the number of items to display per page in a paginated table,\n* onCellClick: function, specifies action to take when a table cell is clicked\n  * signature: `(cellRow, cellColumn, cellData) => {}`\n* focusedRow: number, identifies a row to display additional content for\n* renderFocusedRowDetails: function, specifies additional content to display for `focusedRow`\n  * signature: `(focusedRowData) => (string | react component)`\n* onShowCellRange: function, fires when table page or rows (on page) changes;\n  * signature: `({ start: firstRowIndex, end: lastRowIndex }) => {}`\n* onRefreshPageData: function, specifies how to refresh data (if needed)\n  * signature: `() => {}`\n* emptyMessage: string, text to display when table has no data\n\n**EngineOutputExport**\n\nThe Veritone export engine outputs full screen dialog. This will fetch the engines ran on a tdo/recording and allow the user to configure what file types are included in the export\n\n*Options:*\n\n* tdos: arrayOf(shape), array of tdo data objects that engine outputs will be exported for\n  * shape: object with the following keys:\n    * tdoId: string (required), the unique id of a tdo you want to export engine outputs for\n    * mentionId: string, the unique id of a mention you want to export engine outputs for. If a mentionId is provided the engine results of the mention will be returned rather than those of the tdo\n    * startOffsetMs: number, an integer representing the number of milliseconds from the start of the tdo where the exported engine outputs will begin\n    * stopOffsetMs: number, an integer representing the number of milliseconds from the start of the tdo where the exported engine outputs will end\n* onExport: func, specifies action to take when export button is clicked\n  * signature: `(response) => {}`\n* onCancel: func, specifies action to take when cancel button is clicked\n  * signature: `() => {}`\n\n*Instance methods*\n\n* open(): opens the export engine output dialog.\n\n## Running the development environment (storybook)\n1. Set up your local clone of veritone-sdk, following the instructions in the [main readme](https://github.com/veritone/veritone-sdk#development)\n2. cd to this package\n3. In `config.dev.json`, fill in the missing fields with your own app's information (see our [application quick-start guide](http://docs.veritone.com/#/applications/quick-start/) for more info on how to create an app). **Your app's `URL` and `redirect URL` should be set to the same value** for the purposes of dev in this package. This default allows the environment to run with minimal config. \n4. run `yarn start`.\n5. When the build finishes, access the storybook at the url provided in your terminal.\n\n## License\nCopyright 2019, Veritone Inc.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n","scripts":{"lint":"yarn run lint:js && yarn run lint:styles","test":"jest","build":"yarn run build:es && yarn run build:cjs && yarn run build:script-tag","start":"yarn run start:widget-server; yarn run start:storybook","format":"prettier --write \"./src/**/*.{js,scss}\"","lint:js":"eslint src/** --ext .js --max-warnings 0","build:es":"cross-env NODE_ENV=production BABEL_ENV=production-es rollup -c rollup.config.es.js","prebuild":"yarn run clean:build","build:cjs":"cross-env NODE_ENV=production BABEL_ENV=production-cjs rollup -c rollup.config.cjs.js","test:watch":"jest --watch","build:watch":"cross-env NODE_ENV=production rollup -c --watch","clean:build":"rimraf dist","lint:styles":"stylelint \"src/**/*.{scss, css}\"","prepublishOnly":"yarn run test && yarn run lint && yarn run build","build:storybook":"NODE_ENV=production build-storybook -c .storybook -o docs-static","start:storybook":"NODE_ENV=test start-storybook -p 3000 -c .storybook","build:script-tag":"cross-env NODE_ENV=production BABEL_ENV=production-cjs webpack --config webpack.config.script-tag.js","start:widget-server":"yarn workspace veritone-widgets-server run start &"},"_npmUser":{"name":"linh.le","email":"linh.le@setacinq.vn"},"_npmVersion":"6.13.4","description":"As of v5.0.0, this package exports both React \"smart components\" and framework agnostic \"widgets\" for most components. When both are available, the smart component is the default export and the widget is a named export. For example, `import FilePicker, { ","directories":{},"jsnext:main":"dist/bundle-es.js","_nodeVersion":"8.17.0","dependencies":{"react":"^16.9.0","redux":"^4.0.4","deepmerge":"^4.2.2","react-dom":"^16.9.0","recompose":"^0.30.0","redux-saga":"^1.1.3","react-redux":"^7.1.3","redux-thunk":"^2.3.0","video-react":"~0.13.3","shaka-player":"^2.4.1","babel-runtime":"^6.26.0","react-cropper":"^1.3.0","babel-polyfill":"^6.26.0","@material-ui/lab":"^4.0.0-alpha.45","react-redux-saga":"^1.0.2","@material-ui/core":"^4.9.5","react-virtualized":"^9.18.5","@material-ui/icons":"^4.9.1","@material-ui/styles":"^4.9.0","immutability-helper":"^3.0.0","@material-ui/pickers":"^3.2.10","redux-dynamic-modules":"^5.2.0","veritone-oauth-helpers":"^2.1.0","redux-api-middleware-fixed":"^2.0.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"raf":"^3.4.0","jest":"^22.4.3","faker":"^4.1.0","enzyme":"^3.5.0","eslint":"^4.8.0","rimraf":"^2.6.2","rollup":"^1.17.0","webpack":"^4.0.1","cross-env":"^5.1.1","node-sass":"^4.7.2","stylelint":"^8.2.0","babel-core":"^6.26.0","url-loader":"^0.6.2","sass-loader":"^6.0.6","webpack-cli":"^2.0.9","babel-loader":"^7.1.3","redux-logger":"^3.0.6","redux-devtools":"^3.5.0","@storybook/react":"v3.3.9","redux-mock-store":"^1.5.4","veritone-dev-env":"^3.0.0","rollup-plugin-url":"^2.2.2","identity-obj-proxy":"^3.0.0","redux-validate-fsa":"^0.1.2","rollup-plugin-json":"^4.0.0","babel-plugin-lodash":"^3.3.2","eslint-plugin-react":"^7.8.2","react-test-renderer":"^16.0.0","rollup-plugin-alias":"^1.5.2","rollup-plugin-babel":"^3.0.7","eslint-plugin-import":"^2.10.0","eslint-plugin-lodash":"^2.4.5","babel-plugin-date-fns":"^0.2.1","eslint-plugin-promise":"^3.5.0","rollup-plugin-postcss":"^2.0.3","rollup-plugin-replace":"^2.2.0","veritone-react-common":"^9.0.11","veritone-redux-common":"^3.11.5","@storybook/addon-knobs":"3.3.9","eslint-config-prettier":"^2.6.0","rollup-analyzer-plugin":"^1.2.0","rollup-plugin-commonjs":"^10.0.1","enzyme-adapter-react-16":"^1.0.0","stylelint-config-prettier":"^4.0.0","stylelint-config-standard":"^17.0.0","rollup-plugin-node-resolve":"^5.2.0","babel-plugin-external-helpers":"^6.22.0","babel-plugin-transform-runtime":"^6.23.0","redux-immutable-state-invariant":"^2.1.0","babel-plugin-add-react-displayname":"^0.0.5","babel-plugin-transform-class-properties":"^6.24.1","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-plugin-transform-export-extensions":"^6.22.0","babel-plugin-transform-object-rest-spread":"^6.26.0"},"_npmOperationalInternal":{"tmp":"tmp/veritone-widgets_9.0.11_1594105409598_0.3259213215881216","host":"s3://npm-registry-packages"}},"9.0.12":{"name":"veritone-widgets","version":"9.0.12","license":"Apache-2.0","_id":"veritone-widgets@9.0.12","maintainers":[{"name":"aaronadaniel","email":"aaron.kalel@gmail.com"},{"name":"albertcbrown","email":"al@veritone.com"},{"name":"christopher-gustavsson","email":"chrisgustavsson1@gmail.com"},{"name":"coolmitch","email":"robb.mitch@gmail.com"},{"name":"kkaiser","email":"kkaiser@veritone.com"},{"name":"linh.le","email":"linh.le@setacinq.vn"},{"name":"mikomonday","email":"miko.monday@gmail.com"},{"name":"mmtbkn","email":"mohamedirvine@gmail.com"},{"name":"seta-tuha","email":"tu.ha@setacinq.vn"},{"name":"truong_veritone","email":"ktruong@veritone.com"},{"name":"veritone_dev","email":"dev@veritone.com"},{"name":"veritone-jordan","email":"jbelford@veritone.com"}],"dist":{"shasum":"9089c45df1b3c5de5dfa548e80ab69b366233209","tarball":"https://registry.npmjs.org/veritone-widgets/-/veritone-widgets-9.0.12.tgz","fileCount":188,"integrity":"sha512-VywcimkGn6ESj5bHtMqLqRS0aXCiagW8lqvOLWj8xeOJ3vKdpLupP7vaPJ2u8+Z3XQpzmGYzXz0q4PT3nfxlSA==","signatures":[{"sig":"MEQCIHC+0LHhCfJYYD9uYd4FaiOtjMVap+JC7fdGa4bnet8KAiBv9ZAlDARstZjaoFhTD9Y8uGipo02F7f0Ys0w4EYhsxA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":29344039,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfB+yaCRA9TVsSAnZWagAAPUQP/1zp2UrL9yNSpblxH0Ra\nwPNbwkbP4ie7qyPeJvRJa3VNYbqNKfuGfXHmXlpptF8ek2FfZcSMPLqmwI2H\nLVGPUEz+VAEzlWwk3yQhBTou6Guf+QeEnV4gZWdQSnSMjK/qbRadcmCf/zsJ\nT1wROnpNUliGxVSvEWimOitV3ocfAyS6Ekk2Tz2flON3TW0kHLhfkhqmpE5k\nK7ZtMW8onPtNqKvp/J327cGPfJ6EGDts2t5HFP0HbY9W10EnHQqtKcj/dsQZ\n8VoDH6g6qeQsk3A/zhZq2cO20Wmn7tUIPhcmuBSiDFftAiyn/4PKSvFJs+4f\n4ainqXpfdCeUqJ9J4/njmln77WYJfhPQed2hTCAWUZKcsjLUQ6GLJEl0TVdh\nzSrxYvZjoLIyDPoQjvX+YCfdT7hgxtFMfdWmx3uin8jumv4kelfSZJYAC6c9\n0GV15PuTF+H3PK98GwqXzvlFPsR5dsMQBkYTvXsBwcaWYzpOmKc32JKPsgWc\nez+DG1rkyeFVuWaB5bNasiJ/Gp0R2PrIQyjUf4sEG39asIpGPvGW8McJQ091\ndNiXGo8Jn9aDNZtPFuAAQ2Ta8J2U3zI6/lbSCElXp9V6njSQjzeAwrqhibZq\nrh559HI8VZSVQXT6IV+lLBjP96ZsLq0am5XQNYerXaYhoab3zbUpTB0MVCGr\nZOaP\r\n=Cxoy\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"setupFiles":["<rootDir>/test/testSuitePolyfills.js","<rootDir>/test/configureEnzyme.js"],"moduleNameMapper":{"^dnd-core$":"dnd-core/dist/cjs","^react-dnd$":"react-dnd/dist/cjs","\\.(css|scss)$":"identity-obj-proxy","^react-dnd-test-utils$":"react-dnd-test-utils/dist/cjs","^react-dnd-test-backend$":"react-dnd-test-backend/dist/cjs","^react-dnd-html5-backend$":"react-dnd-html5-backend/dist/cjs","^react-dnd-touch-backend$":"react-dnd-touch-backend/dist/cjs","\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$":"<rootDir>/test/__mocks__/fileMock.js"},"moduleDirectories":["node_modules","../../node_modules"],"moduleFileExtensions":["js","jsx"]},"main":"dist/bundle-cjs.js","module":"dist/bundle-es.js","scripts":{"lint":"yarn run lint:js && yarn run lint:styles","test":"jest","build":"yarn run build:es && yarn run build:cjs && yarn run build:script-tag","start":"yarn run start:widget-server; yarn run start:storybook","format":"prettier --write \"./src/**/*.{js,scss}\"","lint:js":"eslint src/** --ext .js --max-warnings 0","build:es":"cross-env NODE_ENV=production BABEL_ENV=production-es rollup -c rollup.config.es.js","prebuild":"yarn run clean:build","build:cjs":"cross-env NODE_ENV=production BABEL_ENV=production-cjs rollup -c rollup.config.cjs.js","test:watch":"jest --watch","build:watch":"cross-env NODE_ENV=production rollup -c --watch","clean:build":"rimraf dist","lint:styles":"stylelint \"src/**/*.{scss, css}\"","prepublishOnly":"yarn run test && yarn run lint && yarn run build","build:storybook":"NODE_ENV=production build-storybook -c .storybook -o docs-static","start:storybook":"NODE_ENV=test start-storybook -p 3000 -c .storybook","build:script-tag":"cross-env NODE_ENV=production BABEL_ENV=production-cjs webpack --config webpack.config.script-tag.js","start:widget-server":"yarn workspace veritone-widgets-server run start &"},"_npmUser":{"name":"linh.le","email":"linh.le@setacinq.vn"},"_npmVersion":"6.13.4","description":"As of v5.0.0, this package exports both React \"smart components\" and framework agnostic \"widgets\" for most components. When both are available, the smart component is the default export and the widget is a named export. For example, `import FilePicker, { ","directories":{},"jsnext:main":"dist/bundle-es.js","_nodeVersion":"8.17.0","dependencies":{"react":"^16.9.0","redux":"^4.0.4","deepmerge":"^4.2.2","react-dom":"^16.9.0","recompose":"^0.30.0","redux-saga":"^1.1.3","react-redux":"^7.1.3","redux-thunk":"^2.3.0","video-react":"~0.13.3","shaka-player":"^2.4.1","babel-runtime":"^6.26.0","react-cropper":"^1.3.0","babel-polyfill":"^6.26.0","@material-ui/lab":"^4.0.0-alpha.45","react-redux-saga":"^1.0.2","@material-ui/core":"^4.9.5","react-virtualized":"^9.18.5","@material-ui/icons":"^4.9.1","@material-ui/styles":"^4.9.0","immutability-helper":"^3.0.0","@material-ui/pickers":"^3.2.10","redux-dynamic-modules":"^5.2.0","veritone-oauth-helpers":"^2.1.0","redux-api-middleware-fixed":"^2.0.0"},"_hasShrinkwrap":false,"devDependencies":{"raf":"^3.4.0","jest":"^22.4.3","faker":"^4.1.0","enzyme":"^3.5.0","eslint":"^4.8.0","rimraf":"^2.6.2","rollup":"^1.17.0","webpack":"^4.0.1","cross-env":"^5.1.1","node-sass":"^4.7.2","stylelint":"^8.2.0","babel-core":"^6.26.0","url-loader":"^0.6.2","sass-loader":"^6.0.6","webpack-cli":"^2.0.9","babel-loader":"^7.1.3","redux-logger":"^3.0.6","redux-devtools":"^3.5.0","@storybook/react":"v3.3.9","redux-mock-store":"^1.5.4","veritone-dev-env":"^3.0.0","rollup-plugin-url":"^2.2.2","identity-obj-proxy":"^3.0.0","redux-validate-fsa":"^0.1.2","rollup-plugin-json":"^4.0.0","babel-plugin-lodash":"^3.3.2","eslint-plugin-react":"^7.8.2","react-test-renderer":"^16.0.0","rollup-plugin-alias":"^1.5.2","rollup-plugin-babel":"^3.0.7","eslint-plugin-import":"^2.10.0","eslint-plugin-lodash":"^2.4.5","babel-plugin-date-fns":"^0.2.1","eslint-plugin-promise":"^3.5.0","rollup-plugin-postcss":"^2.0.3","rollup-plugin-replace":"^2.2.0","veritone-react-common":"^9.0.10","veritone-redux-common":"^3.11.5","@storybook/addon-knobs":"3.3.9","eslint-config-prettier":"^2.6.0","rollup-analyzer-plugin":"^1.2.0","rollup-plugin-commonjs":"^10.0.1","enzyme-adapter-react-16":"^1.0.0","stylelint-config-prettier":"^4.0.0","stylelint-config-standard":"^17.0.0","rollup-plugin-node-resolve":"^5.2.0","babel-plugin-external-helpers":"^6.22.0","babel-plugin-transform-runtime":"^6.23.0","redux-immutable-state-invariant":"^2.1.0","babel-plugin-add-react-displayname":"^0.0.5","babel-plugin-transform-class-properties":"^6.24.1","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-plugin-transform-export-extensions":"^6.22.0","babel-plugin-transform-object-rest-spread":"^6.26.0"},"_npmOperationalInternal":{"tmp":"tmp/veritone-widgets_9.0.12_1594354841597_0.9132562630227423","host":"s3://npm-registry-packages"}},"9.0.12-beta.1":{"name":"veritone-widgets","version":"9.0.12-beta.1","license":"Apache-2.0","_id":"veritone-widgets@9.0.12-beta.1","maintainers":[{"name":"aaronadaniel","email":"aaron.kalel@gmail.com"},{"name":"albertcbrown","email":"al@veritone.com"},{"name":"christopher-gustavsson","email":"chrisgustavsson1@gmail.com"},{"name":"coolmitch","email":"robb.mitch@gmail.com"},{"name":"kkaiser","email":"kkaiser@veritone.com"},{"name":"linh.le","email":"linh.le@setacinq.vn"},{"name":"mikomonday","email":"miko.monday@gmail.com"},{"name":"mmtbkn","email":"mohamedirvine@gmail.com"},{"name":"seta-tuha","email":"tu.ha@setacinq.vn"},{"name":"truong_veritone","email":"ktruong@veritone.com"},{"name":"veritone_dev","email":"dev@veritone.com"},{"name":"veritone-jordan","email":"jbelford@veritone.com"}],"dist":{"shasum":"639840f511e48469bb4c573db67ae368f1edd639","tarball":"https://registry.npmjs.org/veritone-widgets/-/veritone-widgets-9.0.12-beta.1.tgz","fileCount":188,"integrity":"sha512-jotqrL5oM1SlP9mGs7LwTufiy7uryR581ISgFlJcK3ZfM5wUDoFYvgLRl1SmMZaSynJq7+lPIDl94Xe6iymwkA==","signatures":[{"sig":"MEUCIBmZEv5c6n/bQ4086VZ3dTLZbckgnipYgvAB9oGWjIcXAiEAw7yeEiUe0nh/LbSMt9H/2ojwq5IBwPEgj0Zg4DljCyk=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":29334971,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfGWQ5CRA9TVsSAnZWagAAMSQP/1HaiSaziTEuNTchz6WE\n/qz9HfE4hzP/vXEzNJYaEG6mYeVs150VTDE+Amp+X/tye7bhwNsOCdO3jcih\n7iVHoi9jbdCdQq3kz3MjmhObp7HagybOyW4xTOyy41ZF6Rl6r36fbg/y0/73\nhenXvH09Z/COqU7ZScK6XHxjvRTzH9+apj7h/uqW23M1LTlGA2i840LVI7ty\nv4NOAkhEGoiEk7W7RL8ychFg09B7ZXpBvvxhMLFfUn1Qo0HhGZ1IWrylWRKC\nNl5NNggx/b1rDcmN6gm+WinwAFxG5vbpOXT7BoQZb1H3yR+Owo7YAVDGARsp\nej4gpvaatZsImx4pKAjrJWJUNiPadp+OSV1fqB3QOoQ/uQKys6b9rJx5qfgl\n5t4/9DpIgxSVtRPEm2FxM4x1hGFOagoNEMhkrjZJrix1icaPYKZGoqCDdIe2\n4yi/aNDaAe4c1AXm5LvihX8WHHk+PxXPpuj1QdAOsyDUgX9bU8muUmLvr8Fe\nQIwegswqy23T96Xy/txtQUsdCmxlE5UmT6D9ZsbzYaafRGL5t/ygxWFQ52cA\naTKj07s+thDakkEarzrT7UBUtMfDyg0s4gOBDDKr/bq874b/VkGGVUZpGq3q\nIGRMllCMY2EIytYfnCFyBKPzc9IQg+8+oWYdFxqNtVlSo1/dzUEFppSbjPJ8\nrSPU\r\n=qfza\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"setupFiles":["<rootDir>/test/testSuitePolyfills.js","<rootDir>/test/configureEnzyme.js"],"moduleNameMapper":{"^dnd-core$":"dnd-core/dist/cjs","^react-dnd$":"react-dnd/dist/cjs","\\.(css|scss)$":"identity-obj-proxy","^react-dnd-test-utils$":"react-dnd-test-utils/dist/cjs","^react-dnd-test-backend$":"react-dnd-test-backend/dist/cjs","^react-dnd-html5-backend$":"react-dnd-html5-backend/dist/cjs","^react-dnd-touch-backend$":"react-dnd-touch-backend/dist/cjs","\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$":"<rootDir>/test/__mocks__/fileMock.js"},"moduleDirectories":["node_modules","../../node_modules"],"moduleFileExtensions":["js","jsx"]},"main":"dist/bundle-cjs.js","module":"dist/bundle-es.js","readme":"## Quick Start\nAs of v5.0.0, this package exports both React \"smart components\" and framework agnostic \"widgets\" for most components. When both are available, the smart component is the default export and the widget is a named export. For example, `import FilePicker, { FilePickerWidget } from 'veritone-widgets'` imports the smart component as FilePicker and the widget as FilePickerWidget. Smart components usually require redux reducers and sagas to be imported as well, see [Using Smart Components](#using-smart-components)\n\n### Widgets (framework agnostic)\n```javascript\nimport { VeritoneApp, OAuthLoginButtonWidget, AppBarWidget } from 'veritone-widgets'\nconst app = VeritoneApp();\n\n// a \"log in with veritone\" button\nconst oauthButton = new OAuthLoginButtonWidget({\n  // the ID of an existing element in your document where the button will appear\n  elId: 'login-button-widget',\n  // the ID of your Veritone application (found in Developer App)\n  clientId: 'my-client-id',\n  // the route in your app that will handle OAuth responses (more details below)\n  redirectUri: 'https://my-app.com/handle_oauth_callback',\n  // optional callbacks to retrieve the OAuth token for using outside of VeritoneApp:\n  onAuthSuccess: ({ OAuthToken }) => console.log(OAuthToken),\n  onAuthFailure: (error) => console.log(error)\n});\n\n// the Veritone app bar, which will receive auth after the user completes\n// the oauth flow using the OAuthLoginButton\nconst appBar = new AppBarWidget({\n  elId: 'appBar-widget',\n  title: 'My App',\n  backgroundColor: '#4caf50',\n  profileMenu: true,\n  appSwitcher: true\n});\n```\n### React Components\n```javascript\nimport { OAuthLoginButton } from 'veritone-widgets'\n\nrender(\n  <OAuthLoginButton\n    clientId=\"my-client-id\"\n    redirectUri=\"https://my-app.com/handle_oauth_callback\"\n  />\n)\n```\n\n## Using Smart Components\nBecause smart components are not rendered within the VeritoneApp widget framework, they require the user's app to have its own redux store with the components' reducers installed. Often, [sagas](https://redux-saga.js.org/) are also included and must be started as part of the app's root saga.\n\n### Smart component reducer/saga requirements\n#### FilePicker\n* reducer:\n`import {filePickerReducer} from 'veritone-widgets'`\n\n* saga:\n`import {filePickerSaga} from 'veritone-widgets'`\n\n#### Notifications\n* reducer:\n`import {notificationsReducer} from 'veritone-widgets'`\n\n#### EngineOutputExport\n* reducer:\n`import {engineOutputExportReducer} from 'veritone-widgets'`\n\n#### OAuthLoginButton\n* reducers:\nveritone-redux-common `User`, `Auth` and `Config` reducers\n\n### Smart component theme wrapper requirements\nIn your app, import the `VeritoneSDKThemeProvider` from `veritone-react-common`:\n```\nimport {VeritoneSDKThemeProvider } from 'veritone-react-common'\n```\nthen wrap your root component with `<VeritoneSDKThemeProvider>`. If this is not possible, the `@withVeritoneSDKThemeProvider` decorator is provided to wrap individual components.\n\nComponents can be customized using [material-ui themes](https://material-ui.com/customization/themes/) by passing a theme into the `theme` prop of the provider. Passed-in themes will be merged with the default Veritone theme.\n\n## Using Widgets\n### 1. Create an instance of VeritoneApp\n`VeritoneApp` is a container for all the widgets and widget data in an app. Before using any widgets, you need to import and call it. Typically this will be done when your application is loaded and initialized.\n\n```javascript\nimport { VeritoneApp } from 'veritone-widgets'\nconst app = VeritoneApp();\n```\n\n_Note_: `VeritoneApp` creates a singleton, so you do not need to manage the constructed app instance yourself. As long as VeritoneApp() has been imported and called at least once, you can retrieve the same instance by importing and calling VeritoneApp() again elsewhere in your app, if needed.\n\n### 2. Authenticate with Veritone via OAuth\nIf you already have an OAuth token (because your app handles the client-side OAuth flow on its own), provide it by calling `login()` on the returned app instance.\n\n```javascript\nimport { VeritoneApp } from 'veritone-widgets'\nconst app = VeritoneApp().login({\n  OAuthToken: 'my-token-here'\n});\n```\n \nCalling `login()` is usually not necessary; we provide an `OAuthLoginButton` widget, which handles the OAuth token exchange automatically. See the instructions in the next section for more information.\n\n\n### 3. Add widgets to your app\nAfter you've initialized the app framework by calling `VeritoneApp()`, you can begin using widgets.\n\nA \"widget\" is a self-contained frontend component. Widgets always render into an empty element which you provide. They are self-contained and handle rendering a UI, responding to user interactions, making api calls, and so on.\n\nFor example, the `AppBar` widget renders the Veritone application toolbar, fetches the required data to render the Veritone app switcher and profile menu, and allows the developer to configure their application logo and title. When the user uses the app switcher or uses the profile menu to log out, the AppBar widget handles those events.  \n\nWidgets typically can be configured with a variety of options, but always require at least `elId`. This is the id (string) of an element in your document, often a `div`, into which the widget will be rendered. By applying styling to that div, you can position the widget around your app. The element specified in elId must exist in the document before you create the widget that will use it.\n\n#### Example: Using the OAuthLoginButton widget\nThe first widget you are likely to include is `OAuthLoginButton`. `OAuthLoginButton` renders a \"log in with Veritone\" button that your users can click to start the OAuth authentication flow. At the end of that flow, your VeritoneApp instance will be authenticated and able to make requests to our API. You can also retrieve the oauth token to use in your own app.\n\n_Note_: Unless you are handling the OAuth flow on your own and providing the token to VeritoneApp manually, the `OAuthLoginButton` widget is required for Veritone widgets to work.\n\nThe actual code you write to use widgets will vary based on your framework of choice, but in general, it should be as follows.\n\n```javascript\n// assuming VeritoneApp has already been initialized as described earlier, and given a document like:\n<body>\n  ...\n  <div id=\"login-button-widget\" />\n</body>\n\n// you can render the login button to the document like this:\nimport { OAuthLoginButtonWidget } from 'veritone-widgets'\nconst oauthButton = new OAuthLoginButtonWidget({\n  // the ID of an existing element in your document where the button will appear\n  elId: 'login-button-widget',\n  // the ID of your Veritone application (found in Developer App)\n  clientId: 'my-client-id',\n  // the route in your app that will handle OAuth responses (more details below)\n  redirectUri: 'https://my-app.com/handle_oauth_callback',\n  // optional callbacks to retrieve the OAuth token for using outside of VeritoneApp:\n  onAuthSuccess: ({ OAuthToken }) => console.log(OAuthToken),\n  onAuthFailure: (error) => console.log(error)\n});\n```\n\nWhen `new OAuthLoginButtonWidget({ ... })` runs, the widget will appear on your page.\n\n#### Example: Using the AppBar widget\nAll Veritone apps should also include the AppBar widget.\n\n```javascript\n<body>\n  <div id=\"appBar-widget\" />\n  ...\n</body>\n\nimport { AppBarWidget } from 'veritone-widgets'\nconst appBar = new AppBarWidget({\n  elId: 'appBar-widget',\n  title: 'My App',\n  backgroundColor: '#4caf50',\n  profileMenu: true,\n  appSwitcher: true\n});\n```\n\n## Use via script tag\nFor environments that do not support javascript module imports, widgets can also be included in an app via script tags.\n\n```\n<body>\n  <div id=\"appBar-widget\"></div>\n\n  <script src=\"https://unpkg.com/veritone-widgets@^5/dist/umd/VeritoneApp.js\"></script>\n  <script src=\"https://unpkg.com/veritone-widgets@^5/dist/umd/AppBar.js\"></script>\n\n  <script>\n    const app = VeritoneApp.default();\n\n    const appBar = new AppBar.AppBarWidget({\n      elId: 'appBar-widget',\n      title: 'AppBar Widget',\n      profileMenu: true,\n      appSwitcher: true\n    });\n  </script>\n</body>\n```\n\nAs you can see, each widget is bundled individually to keep file sizes small. In addition, VeritoneApp is separately bundled and required to use widgets. Scripts can be accessed from the the [unpkg](https://unpkg.com/) cdn or downloaded and hosted on your own infrastructure. Unpkg supports [semver ranges](https://docs.npmjs.com/misc/semver), or a specific version can be specified exactly. \n\n\n## Configuring widgets\nNote that the OAuthLoginButton widget in the example above is being configured with five properties: elId, clientId, OAuthURI, onAuthSuccess and onAuthFailure. As mentioned earlier, an elId is required for every widget. OAuthURI, clientId, onAuthSuccess and onAuthFailure are specific configurable properties on the OAuthLoginButton. As it is in the example, configuration is always provided to the widget constructor.\n\n## Widget instance methods\nSome widgets have methods which can be called on an instance of that widget. For example, the FilePicker widget has the methods `pick()` and `cancel()` to open and close the picker dialog, respectively.\n\n```javascript\nthis._picker = new FilePickerWidget({\n  elId: 'file-picker-widget',\n  accept: ['image/*'],\n  multiple: true\n});\n\n...\n// call the pick() instance method on the widget\nthis._picker.pick(files => console.log(files))\n```\n\n#### Where to look for widget options\nIn practice, a widget is just a wrapper around a React component. The easiest way to determine all the possible options for a given widget is to look at the PropTypes of its component. Remember to watch for console warnings which will indicate when an option was configured incorrectly, or when a required option was not provided. \n\n* The \"storybook\" dev environments in veritone-widgets and veritone-react-common have live examples of the various widgets and components.\n\n* The `story.js` file in the root of each widget folder in veritone-widgets and in the root of each component folder in veritone-react-common show the code used to create the storybook pages. If you are using React to write your application, these can be used directly as a basis for your own implementation. \n\n* The PropTypes in the source files of the various widgets (in veritone-widgets) and their respective components (in veritone-react-common) generally correspond to configurable options. Likewise, instance methods for a widget will be defined on its widget class in veritone-widgets.\n\n### Destroying widgets\nTo remove a widget, call `destroy()` on the instance\n```javascript\nconst oauthButton = new OAuthLoginButtonWidget({ ... });\n...\noauthButton.destroy();\n```\n\n## Available widgets\nThe current widgets are:\n\n**AppBar**\n\nThe title and navigation bar common between all Veritone applications. Includes a logo, title, the Veritone app switcher and profile menu.\n\n*Options:*\n\n* title: string, a title to show in the center of the AppBar\n* logoSrc: string, a URL or image (like an SVG) to use as the logo on the left-hand side of the AppBar.\n* backgroundColor: string, a color (in hex) to use for the AppBar background\n* profileMenu: bool, whether or not to show the profile menu\n* appSwitcher: bool, whether or not to show the app switcher menu\n* logo: bool, whether or not to show the veritone logo on the left side of the AppBar\n* onLogout: func, called when the user clicks \"logout\". Apps must implement their own logout logic (usually by deleting the stored oauth token and redirecting or refreshing the page appropriately)\n\n**OAuthLoginButton**\nThe \"Log in with Veritone\" button and corresponding frontend logic to handle the OAuth2 authentication flow.\n\n*Options:*\n* mode: \"implicit\" (default) or \"authCode\", the OAuth grant type you wish to use. \n* OAuthURI: string (required if using `authCode` mode), the URL of your app server's OAuth callback endpoint.\n* redirectUri: string (required if using `implicit` mode), the URL of your app frontend's OAuth callback endpoint.\n* clientID: string (required if using implicit mode), the ID of your Veritone application (found in Developer App)\n* onAuthSuccess: function, a callback that will be called with the OAuth token when the OAuth flow is completed successfully.\n* onAuthFailure: function, a callback that will be called with the error when the OAuth flow fails.\n\n*Requirements*\n\nVeritone provides two OAuth modes to suit different app requirements:\n\n`Implicit`, the default mode, is a frontend-only grant flow with no serverside requirement. _Most apps will use this mode._ This flow is much easier for apps to implement but has the downside of not returning a refresh token; users will need to log in again each time their token expires. \n\n`Auth Code` is a server-based grant flow, which uses your Veritone app's OAuth secret to retrieve both an auth token and refresh token. Auth code flow requires a server because the OAuth secret cannot be exposed to the client; the veritone-widets-server package is an example implementation, and more information can be found in its readme.\n\n**FilePicker**\n\nThe Veritone file upload dialog. Handles selecting and uploading files to S3 for use on the Veritone platform.\n\n*Options:*\n\n* accept: oneOfType([arrayOf(string), string]), file extension(s) or mimetype(s) which the file picker will accept\n* multiple: bool, whether the picker will accept multiple files to upload in a batch\n* width: number, the width of the filepicker dialog\n* height: number, the height of the filepicker dialog\n* allowUrlUpload: bool, whether the filepicker will allow files to be selected by URL\n\n*Instance methods*\n\n* pick(callback): open the filepicker dialog.\n  * callback signature is (result, { warning, error, cancelled })\n    * result: array of result objects, one for each file uploaded\n      * key: string, the filename as stored on the server (may include a UUID)\n      * fileName: string, the original filename\n      * size: number, the file size in bytes\n      * type: string, the mime type of the file\n      * error: string or `false`, the error that prevented the file from uploading, if any\n      * bucket: string, the S3 bucket to which the file was uploaded\n      * expiresInSeconds: number, the length of time the credentials in `getUrl` will be valid, in seconds.\n      * getUrl: string or `null`, the resulting S3 URL, if successful. Includes credentials that are valid for `expires` seconds. \n      * unsignedUrl: string or `null`, the resulting S3 URL, if successful. Does not include credentials and will need to be signed to be used.\n    * warning: string or `false`, a warning message if some (but not all) files failed to upload. A warning indicates that `result` contains some successful upload result objects, and some that were not successful (unsuccessful objects will have `error` populated with an error message, as noted above)\n    * error: string or `false`, an error message, if all files failed to upload.\n    * cancelled: bool, whether or not the filepicker interaction was cancelled (by the user, or by calling cancel()).\n\n* cancel(): close the filepicker dialog. The callback provided to pick() will be called with `(null, { cancelled: true })`.\n\n**Table**\n\nA Veritone table to display data.\n\n*Options:*\n\n* data: arrayOf(object) (required), the dataset\n* columns: arrayOf(shape) (required), a set of defintions for each column to be displayed\n  * shape: object with the following keys:\n    * dataKey: string (required), the data attribute to display within column \n    * header: string, the column heading\n    * transform: function, specifies how column data should be displayed\n      * signature: `(cellValue) => {}`\n    * menu: bool, identifies a column as a menu column\n    * onSelectItem: function, when `menu` is `true`, specifies action(s) to take when a menu option is clicked\n      * signature: `(menuAction) => {}`\n    * cursorPointer: bool, show cursor pointer over table cells\n    * align: string, specifies columm alignment: `['left', 'right', 'center']`\n    * width: number, specifies the width of a column\n* paginate: bool, specifies whether table data should be paginated\n* initialItemsPerPage: number, the number of items to display per page in a paginated table,\n* onCellClick: function, specifies action to take when a table cell is clicked\n  * signature: `(cellRow, cellColumn, cellData) => {}`\n* focusedRow: number, identifies a row to display additional content for\n* renderFocusedRowDetails: function, specifies additional content to display for `focusedRow`\n  * signature: `(focusedRowData) => (string | react component)`\n* onShowCellRange: function, fires when table page or rows (on page) changes;\n  * signature: `({ start: firstRowIndex, end: lastRowIndex }) => {}`\n* onRefreshPageData: function, specifies how to refresh data (if needed)\n  * signature: `() => {}`\n* emptyMessage: string, text to display when table has no data\n\n**EngineOutputExport**\n\nThe Veritone export engine outputs full screen dialog. This will fetch the engines ran on a tdo/recording and allow the user to configure what file types are included in the export\n\n*Options:*\n\n* tdos: arrayOf(shape), array of tdo data objects that engine outputs will be exported for\n  * shape: object with the following keys:\n    * tdoId: string (required), the unique id of a tdo you want to export engine outputs for\n    * mentionId: string, the unique id of a mention you want to export engine outputs for. If a mentionId is provided the engine results of the mention will be returned rather than those of the tdo\n    * startOffsetMs: number, an integer representing the number of milliseconds from the start of the tdo where the exported engine outputs will begin\n    * stopOffsetMs: number, an integer representing the number of milliseconds from the start of the tdo where the exported engine outputs will end\n* onExport: func, specifies action to take when export button is clicked\n  * signature: `(response) => {}`\n* onCancel: func, specifies action to take when cancel button is clicked\n  * signature: `() => {}`\n\n*Instance methods*\n\n* open(): opens the export engine output dialog.\n\n## Running the development environment (storybook)\n1. Set up your local clone of veritone-sdk, following the instructions in the [main readme](https://github.com/veritone/veritone-sdk#development)\n2. cd to this package\n3. In `config.dev.json`, fill in the missing fields with your own app's information (see our [application quick-start guide](http://docs.veritone.com/#/applications/quick-start/) for more info on how to create an app). **Your app's `URL` and `redirect URL` should be set to the same value** for the purposes of dev in this package. This default allows the environment to run with minimal config. \n4. run `yarn start`.\n5. When the build finishes, access the storybook at the url provided in your terminal.\n\n## License\nCopyright 2019, Veritone Inc.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n","scripts":{"lint":"yarn run lint:js && yarn run lint:styles","test":"jest","build":"yarn run build:es && yarn run build:cjs && yarn run build:script-tag","start":"yarn run start:widget-server; yarn run start:storybook","format":"prettier --write \"./src/**/*.{js,scss}\"","lint:js":"eslint src/** --ext .js --max-warnings 0","build:es":"cross-env NODE_ENV=production BABEL_ENV=production-es rollup -c rollup.config.es.js","prebuild":"yarn run clean:build","build:cjs":"cross-env NODE_ENV=production BABEL_ENV=production-cjs rollup -c rollup.config.cjs.js","test:watch":"jest --watch","build:watch":"cross-env NODE_ENV=production rollup -c --watch","clean:build":"rimraf dist","lint:styles":"stylelint \"src/**/*.{scss, css}\"","prepublishOnly":"yarn run test && yarn run lint && yarn run build","build:storybook":"NODE_ENV=production build-storybook -c .storybook -o docs-static","start:storybook":"NODE_ENV=test start-storybook -p 3000 -c .storybook","build:script-tag":"cross-env NODE_ENV=production BABEL_ENV=production-cjs webpack --config webpack.config.script-tag.js","start:widget-server":"yarn workspace veritone-widgets-server run start &"},"_npmUser":{"name":"linh.le","email":"linh.le@setacinq.vn"},"_npmVersion":"6.13.4","description":"As of v5.0.0, this package exports both React \"smart components\" and framework agnostic \"widgets\" for most components. When both are available, the smart component is the default export and the widget is a named export. For example, `import FilePicker, { ","directories":{},"jsnext:main":"dist/bundle-es.js","_nodeVersion":"8.17.0","dependencies":{"react":"^16.9.0","redux":"^4.0.4","reselect":"^4.0.0","deepmerge":"^4.2.2","react-dom":"^16.9.0","recompose":"^0.30.0","redux-saga":"^1.1.3","react-redux":"^7.1.3","redux-thunk":"^2.3.0","video-react":"~0.13.3","shaka-player":"^2.4.1","babel-runtime":"^6.26.0","react-cropper":"^1.3.0","babel-polyfill":"^6.26.0","@material-ui/lab":"^4.0.0-alpha.45","react-redux-saga":"^1.0.2","@material-ui/core":"^4.9.5","react-virtualized":"^9.18.5","@material-ui/icons":"^4.9.1","@material-ui/styles":"^4.9.0","immutability-helper":"^3.0.0","@material-ui/pickers":"^3.2.10","redux-dynamic-modules":"^5.2.0","veritone-oauth-helpers":"^2.1.0","redux-api-middleware-fixed":"^2.0.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"raf":"^3.4.0","jest":"^22.4.3","faker":"^4.1.0","enzyme":"^3.5.0","eslint":"^4.8.0","rimraf":"^2.6.2","rollup":"^1.17.0","webpack":"^4.0.1","cross-env":"^5.1.1","node-sass":"^4.7.2","stylelint":"^8.2.0","babel-core":"^6.26.0","url-loader":"^0.6.2","sass-loader":"^6.0.6","webpack-cli":"^2.0.9","babel-loader":"^7.1.3","redux-logger":"^3.0.6","redux-devtools":"^3.5.0","@storybook/react":"v3.3.9","redux-mock-store":"^1.5.4","veritone-dev-env":"^3.0.0","rollup-plugin-url":"^2.2.2","identity-obj-proxy":"^3.0.0","redux-validate-fsa":"^0.1.2","rollup-plugin-json":"^4.0.0","babel-plugin-lodash":"^3.3.2","eslint-plugin-react":"^7.8.2","react-test-renderer":"^16.0.0","rollup-plugin-alias":"^1.5.2","rollup-plugin-babel":"^3.0.7","eslint-plugin-import":"^2.10.0","eslint-plugin-lodash":"^2.4.5","babel-plugin-date-fns":"^0.2.1","eslint-plugin-promise":"^3.5.0","rollup-plugin-postcss":"^2.0.3","rollup-plugin-replace":"^2.2.0","veritone-react-common":"^9.0.10","veritone-redux-common":"^3.11.5","@storybook/addon-knobs":"3.3.9","eslint-config-prettier":"^2.6.0","rollup-analyzer-plugin":"^1.2.0","rollup-plugin-commonjs":"^10.0.1","enzyme-adapter-react-16":"^1.0.0","stylelint-config-prettier":"^4.0.0","stylelint-config-standard":"^17.0.0","rollup-plugin-node-resolve":"^5.2.0","babel-plugin-external-helpers":"^6.22.0","babel-plugin-transform-runtime":"^6.23.0","redux-immutable-state-invariant":"^2.1.0","babel-plugin-add-react-displayname":"^0.0.5","babel-plugin-transform-class-properties":"^6.24.1","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-plugin-transform-export-extensions":"^6.22.0","babel-plugin-transform-object-rest-spread":"^6.26.0"},"_npmOperationalInternal":{"tmp":"tmp/veritone-widgets_9.0.12-beta.1_1595499577168_0.48214003496937785","host":"s3://npm-registry-packages"}},"9.0.12-beta.2":{"name":"veritone-widgets","version":"9.0.12-beta.2","license":"Apache-2.0","_id":"veritone-widgets@9.0.12-beta.2","maintainers":[{"name":"aaronadaniel","email":"aaron.kalel@gmail.com"},{"name":"albertcbrown","email":"al@veritone.com"},{"name":"christopher-gustavsson","email":"chrisgustavsson1@gmail.com"},{"name":"coolmitch","email":"robb.mitch@gmail.com"},{"name":"kkaiser","email":"kkaiser@veritone.com"},{"name":"linh.le","email":"linh.le@setacinq.vn"},{"name":"mikomonday","email":"miko.monday@gmail.com"},{"name":"mmtbkn","email":"mohamedirvine@gmail.com"},{"name":"seta-tuha","email":"tu.ha@setacinq.vn"},{"name":"truong_veritone","email":"ktruong@veritone.com"},{"name":"veritone_dev","email":"dev@veritone.com"},{"name":"veritone-jordan","email":"jbelford@veritone.com"}],"dist":{"shasum":"76c513ef4d3230a4914f19cbc433490853adf983","tarball":"https://registry.npmjs.org/veritone-widgets/-/veritone-widgets-9.0.12-beta.2.tgz","fileCount":188,"integrity":"sha512-ccvbKYcCI3mEgvrsyjRR/3EJzeA1n9CfgZ4acanqPa9qfgQzNuaDpaNEKELTHTQohiDxjegBrogZnE9Yu7g4GA==","signatures":[{"sig":"MEUCIQDwyjPGyNIKFlBFKIMO6v5SRbhRYYerjd8ZOmUBGJFyrwIgFABH2blCfp8JD+d4AW/3bIExFDtPICuGELykCHMfWIM=","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":29335103,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfHjXvCRA9TVsSAnZWagAAw58P/jligGh9JEF+Pd0cFAPR\n7mQ1ZmTKUGScMfb597JUe893Mq4EGcuVaTKVWK7znDmPm5xmrad+EyyQWeEi\n9ywkVIm6rjDoYGCdNCyPqo4KdH/Ce7k7fsfJ6hCIvQIe1Afh3fi8gosEY5vE\nXidnFjbtvbwHfMTX06+3QPvkB0Bd6I9XsIsgwf15ia7tQYvzXliC+4D4psOA\nJmfpXjq+ChGu0oU9RUimtFpdjJKJMAJuZT7XLOwPQtAKjOVNnwfWO27kp0Ri\nzmQSdjMY/IZNsaq/FHQMhVgKvLU/L4l6qvwXW64vJvXT+LW+EMnABvFXPtJa\nve5Fe80mxkcou1cX7G/KqWKYGJRq35Rs4Ob9ILj3XrBhKJPvm0PPV4tYu5qm\npA9OoJYfj59D3scsAvRsj/GxGRo7aLE0ip/4WKHVkfQ40J3BUdK21pNYCXq+\nACiPrZogs8JVNpjt8k5usQtF3BqMXXnYhmmaDQG8yyyE9nVm4jSnIjQJxIyx\nDf0G5/lvcxCk/luP2lWHYYfyMovSRWV7nMTRgQJDkh9UiP3hcPNyOW5i4uo5\nrXMcRYaevDz2JaXslZPNcdiAsQtU5TtZrYBNl2TmSaRYvXFFlVn2QLKZLg/g\nR0sKioEnS1ikzCj1yixJ9wfm6Y5eFT9CkgR8ppa3UNJnMdaB1XM0LBuOZ+g0\nvuiD\r\n=4XfA\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"setupFiles":["<rootDir>/test/testSuitePolyfills.js","<rootDir>/test/configureEnzyme.js"],"moduleNameMapper":{"^dnd-core$":"dnd-core/dist/cjs","^react-dnd$":"react-dnd/dist/cjs","\\.(css|scss)$":"identity-obj-proxy","^react-dnd-test-utils$":"react-dnd-test-utils/dist/cjs","^react-dnd-test-backend$":"react-dnd-test-backend/dist/cjs","^react-dnd-html5-backend$":"react-dnd-html5-backend/dist/cjs","^react-dnd-touch-backend$":"react-dnd-touch-backend/dist/cjs","\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$":"<rootDir>/test/__mocks__/fileMock.js"},"moduleDirectories":["node_modules","../../node_modules"],"moduleFileExtensions":["js","jsx"]},"main":"dist/bundle-cjs.js","module":"dist/bundle-es.js","scripts":{"lint":"yarn run lint:js && yarn run lint:styles","test":"jest","build":"yarn run build:es && yarn run build:cjs && yarn run build:script-tag","start":"yarn run start:widget-server; yarn run start:storybook","format":"prettier --write \"./src/**/*.{js,scss}\"","lint:js":"eslint src/** --ext .js --max-warnings 0","build:es":"cross-env NODE_ENV=production BABEL_ENV=production-es rollup -c rollup.config.es.js","prebuild":"yarn run clean:build","build:cjs":"cross-env NODE_ENV=production BABEL_ENV=production-cjs rollup -c rollup.config.cjs.js","test:watch":"jest --watch","build:watch":"cross-env NODE_ENV=production rollup -c --watch","clean:build":"rimraf dist","lint:styles":"stylelint \"src/**/*.{scss, css}\"","prepublishOnly":"yarn run test && yarn run lint && yarn run build","build:storybook":"NODE_ENV=production build-storybook -c .storybook -o docs-static","start:storybook":"NODE_ENV=test start-storybook -p 3000 -c .storybook","build:script-tag":"cross-env NODE_ENV=production BABEL_ENV=production-cjs webpack --config webpack.config.script-tag.js","start:widget-server":"yarn workspace veritone-widgets-server run start &"},"_npmUser":{"name":"linh.le","email":"linh.le@setacinq.vn"},"_npmVersion":"6.13.4","description":"As of v5.0.0, this package exports both React \"smart components\" and framework agnostic \"widgets\" for most components. When both are available, the smart component is the default export and the widget is a named export. For example, `import FilePicker, { ","directories":{},"jsnext:main":"dist/bundle-es.js","_nodeVersion":"8.17.0","dependencies":{"react":"^16.9.0","redux":"^4.0.4","reselect":"^4.0.0","deepmerge":"^4.2.2","react-dom":"^16.9.0","recompose":"^0.30.0","redux-saga":"^1.1.3","react-redux":"^7.1.3","redux-thunk":"^2.3.0","video-react":"~0.13.3","shaka-player":"^2.4.1","babel-runtime":"^6.26.0","react-cropper":"^1.3.0","babel-polyfill":"^6.26.0","@material-ui/lab":"^4.0.0-alpha.45","react-redux-saga":"^1.0.2","@material-ui/core":"^4.9.5","react-virtualized":"^9.18.5","@material-ui/icons":"^4.9.1","@material-ui/styles":"^4.9.0","immutability-helper":"^3.0.0","@material-ui/pickers":"^3.2.10","redux-dynamic-modules":"^5.2.0","veritone-oauth-helpers":"^2.1.0","redux-api-middleware-fixed":"^2.0.0"},"_hasShrinkwrap":false,"devDependencies":{"raf":"^3.4.0","jest":"^22.4.3","faker":"^4.1.0","enzyme":"^3.5.0","eslint":"^4.8.0","rimraf":"^2.6.2","rollup":"^1.17.0","webpack":"^4.0.1","cross-env":"^5.1.1","node-sass":"^4.7.2","stylelint":"^8.2.0","babel-core":"^6.26.0","url-loader":"^0.6.2","sass-loader":"^6.0.6","webpack-cli":"^2.0.9","babel-loader":"^7.1.3","redux-logger":"^3.0.6","redux-devtools":"^3.5.0","@storybook/react":"v3.3.9","redux-mock-store":"^1.5.4","veritone-dev-env":"^3.0.0","rollup-plugin-url":"^2.2.2","identity-obj-proxy":"^3.0.0","redux-validate-fsa":"^0.1.2","rollup-plugin-json":"^4.0.0","babel-plugin-lodash":"^3.3.2","eslint-plugin-react":"^7.8.2","react-test-renderer":"^16.0.0","rollup-plugin-alias":"^1.5.2","rollup-plugin-babel":"^3.0.7","eslint-plugin-import":"^2.10.0","eslint-plugin-lodash":"^2.4.5","babel-plugin-date-fns":"^0.2.1","eslint-plugin-promise":"^3.5.0","rollup-plugin-postcss":"^2.0.3","rollup-plugin-replace":"^2.2.0","veritone-react-common":"^9.0.10","veritone-redux-common":"^3.11.5","@storybook/addon-knobs":"3.3.9","eslint-config-prettier":"^2.6.0","rollup-analyzer-plugin":"^1.2.0","rollup-plugin-commonjs":"^10.0.1","enzyme-adapter-react-16":"^1.0.0","stylelint-config-prettier":"^4.0.0","stylelint-config-standard":"^17.0.0","rollup-plugin-node-resolve":"^5.2.0","babel-plugin-external-helpers":"^6.22.0","babel-plugin-transform-runtime":"^6.23.0","redux-immutable-state-invariant":"^2.1.0","babel-plugin-add-react-displayname":"^0.0.5","babel-plugin-transform-class-properties":"^6.24.1","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-plugin-transform-export-extensions":"^6.22.0","babel-plugin-transform-object-rest-spread":"^6.26.0"},"_npmOperationalInternal":{"tmp":"tmp/veritone-widgets_9.0.12-beta.2_1595815406433_0.20725092481068508","host":"s3://npm-registry-packages"}},"9.0.12-beta.3":{"name":"veritone-widgets","version":"9.0.12-beta.3","license":"Apache-2.0","_id":"veritone-widgets@9.0.12-beta.3","maintainers":[{"name":"aaronadaniel","email":"aaron.kalel@gmail.com"},{"name":"albertcbrown","email":"al@veritone.com"},{"name":"christopher-gustavsson","email":"chrisgustavsson1@gmail.com"},{"name":"coolmitch","email":"robb.mitch@gmail.com"},{"name":"kkaiser","email":"kkaiser@veritone.com"},{"name":"linh.le","email":"linh.le@setacinq.vn"},{"name":"mikomonday","email":"miko.monday@gmail.com"},{"name":"mmtbkn","email":"mohamedirvine@gmail.com"},{"name":"seta-tuha","email":"tu.ha@setacinq.vn"},{"name":"truong_veritone","email":"ktruong@veritone.com"},{"name":"veritone_dev","email":"dev@veritone.com"},{"name":"veritone-jordan","email":"jbelford@veritone.com"}],"dist":{"shasum":"11198492f3a25e782ac851837fb842777c663801","tarball":"https://registry.npmjs.org/veritone-widgets/-/veritone-widgets-9.0.12-beta.3.tgz","fileCount":188,"integrity":"sha512-n/TKFerHXMi/IYY8RNLTDszvyL0jUlgodeAGVffK7roG37jAvLusYvF37lIoUN93SX/cQqgc+WVRREHjfk2dlg==","signatures":[{"sig":"MEQCIAJXZn/EuG92/GcqBYIQfLvhpYNBm5mtEznwel4Ma7EAAiBvMQzqM6Rf8xrw2ZCd5NTjqoF0DJ32A/UA50XrzyHMCQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":29342098,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfLNjICRA9TVsSAnZWagAAxm8P+gMfpSm2gCbNqMx0rGP9\nPU4K2ArkO61gpc7xHwCI5nazdoG21kvoQwNg3bkIHyKZEvHRPJa6b2wNKAYl\nHv6tjoz4eAw4rKCSVEwMpz2RhVJURZjQmrkLjhwvePim+NwTBMeArVzxUW07\n/XofrBVk/OK0h0eS7SxS5xUAbyQNSnLA6mhJmHCj8vyKXeMUopUX8PEYRKOq\nhWY1QkyWq0uF3FiPI3yzKETZ9UBirYW4LZLKJptjwxmiRckBFIGJY2InwX7U\nA4AGAwJAnWbuuOv92beLy6WL1MlcULlFmeWot4I38G35D9ZS3eoRpk0YgJJ+\nsE9fzYinMGgCkENjmGu5ycpTJcVmS1N9XUQqmn5PKBk0O4vgzCnuAYwg5p3c\naWMXaemDGgwysXzkp+G2qmUqNb9lJNyhmHoZ3JDGhWDnlHLYYjKs/Wzu4vGI\n3zpFoj7UppiSTU2a+tG3qts+qUz2HYx0mdJZkGrR4vZOy1MEIX1avCChXGiW\nvSnURr0Iq/PAXHJDyFnCxXPHLLTQtDVYUpt70SBsLyMa9/3OK7RKw6xOmWsX\n5kCv5CPTixGeCk2wmqSJcwB7mdXDjNhGYvBmLnkiF5Nu4XTtqTMuhNmDCpCQ\niu64WCsAElyIP9Tl9w9/gd5ddZ6oL+YBFO3F5eYb88iTKMC2DepWiJ9r5U6h\nuBs4\r\n=Jvh0\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"setupFiles":["<rootDir>/test/testSuitePolyfills.js","<rootDir>/test/configureEnzyme.js"],"moduleNameMapper":{"^dnd-core$":"dnd-core/dist/cjs","^react-dnd$":"react-dnd/dist/cjs","\\.(css|scss)$":"identity-obj-proxy","^react-dnd-test-utils$":"react-dnd-test-utils/dist/cjs","^react-dnd-test-backend$":"react-dnd-test-backend/dist/cjs","^react-dnd-html5-backend$":"react-dnd-html5-backend/dist/cjs","^react-dnd-touch-backend$":"react-dnd-touch-backend/dist/cjs","\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$":"<rootDir>/test/__mocks__/fileMock.js"},"moduleDirectories":["node_modules","../../node_modules"],"moduleFileExtensions":["js","jsx"]},"main":"dist/bundle-cjs.js","module":"dist/bundle-es.js","readme":"## Quick Start\nAs of v5.0.0, this package exports both React \"smart components\" and framework agnostic \"widgets\" for most components. When both are available, the smart component is the default export and the widget is a named export. For example, `import FilePicker, { FilePickerWidget } from 'veritone-widgets'` imports the smart component as FilePicker and the widget as FilePickerWidget. Smart components usually require redux reducers and sagas to be imported as well, see [Using Smart Components](#using-smart-components)\n\n### Widgets (framework agnostic)\n```javascript\nimport { VeritoneApp, OAuthLoginButtonWidget, AppBarWidget } from 'veritone-widgets'\nconst app = VeritoneApp();\n\n// a \"log in with veritone\" button\nconst oauthButton = new OAuthLoginButtonWidget({\n  // the ID of an existing element in your document where the button will appear\n  elId: 'login-button-widget',\n  // the ID of your Veritone application (found in Developer App)\n  clientId: 'my-client-id',\n  // the route in your app that will handle OAuth responses (more details below)\n  redirectUri: 'https://my-app.com/handle_oauth_callback',\n  // optional callbacks to retrieve the OAuth token for using outside of VeritoneApp:\n  onAuthSuccess: ({ OAuthToken }) => console.log(OAuthToken),\n  onAuthFailure: (error) => console.log(error)\n});\n\n// the Veritone app bar, which will receive auth after the user completes\n// the oauth flow using the OAuthLoginButton\nconst appBar = new AppBarWidget({\n  elId: 'appBar-widget',\n  title: 'My App',\n  backgroundColor: '#4caf50',\n  profileMenu: true,\n  appSwitcher: true\n});\n```\n### React Components\n```javascript\nimport { OAuthLoginButton } from 'veritone-widgets'\n\nrender(\n  <OAuthLoginButton\n    clientId=\"my-client-id\"\n    redirectUri=\"https://my-app.com/handle_oauth_callback\"\n  />\n)\n```\n\n## Using Smart Components\nBecause smart components are not rendered within the VeritoneApp widget framework, they require the user's app to have its own redux store with the components' reducers installed. Often, [sagas](https://redux-saga.js.org/) are also included and must be started as part of the app's root saga.\n\n### Smart component reducer/saga requirements\n#### FilePicker\n* reducer:\n`import {filePickerReducer} from 'veritone-widgets'`\n\n* saga:\n`import {filePickerSaga} from 'veritone-widgets'`\n\n#### Notifications\n* reducer:\n`import {notificationsReducer} from 'veritone-widgets'`\n\n#### EngineOutputExport\n* reducer:\n`import {engineOutputExportReducer} from 'veritone-widgets'`\n\n#### OAuthLoginButton\n* reducers:\nveritone-redux-common `User`, `Auth` and `Config` reducers\n\n### Smart component theme wrapper requirements\nIn your app, import the `VeritoneSDKThemeProvider` from `veritone-react-common`:\n```\nimport {VeritoneSDKThemeProvider } from 'veritone-react-common'\n```\nthen wrap your root component with `<VeritoneSDKThemeProvider>`. If this is not possible, the `@withVeritoneSDKThemeProvider` decorator is provided to wrap individual components.\n\nComponents can be customized using [material-ui themes](https://material-ui.com/customization/themes/) by passing a theme into the `theme` prop of the provider. Passed-in themes will be merged with the default Veritone theme.\n\n## Using Widgets\n### 1. Create an instance of VeritoneApp\n`VeritoneApp` is a container for all the widgets and widget data in an app. Before using any widgets, you need to import and call it. Typically this will be done when your application is loaded and initialized.\n\n```javascript\nimport { VeritoneApp } from 'veritone-widgets'\nconst app = VeritoneApp();\n```\n\n_Note_: `VeritoneApp` creates a singleton, so you do not need to manage the constructed app instance yourself. As long as VeritoneApp() has been imported and called at least once, you can retrieve the same instance by importing and calling VeritoneApp() again elsewhere in your app, if needed.\n\n### 2. Authenticate with Veritone via OAuth\nIf you already have an OAuth token (because your app handles the client-side OAuth flow on its own), provide it by calling `login()` on the returned app instance.\n\n```javascript\nimport { VeritoneApp } from 'veritone-widgets'\nconst app = VeritoneApp().login({\n  OAuthToken: 'my-token-here'\n});\n```\n \nCalling `login()` is usually not necessary; we provide an `OAuthLoginButton` widget, which handles the OAuth token exchange automatically. See the instructions in the next section for more information.\n\n\n### 3. Add widgets to your app\nAfter you've initialized the app framework by calling `VeritoneApp()`, you can begin using widgets.\n\nA \"widget\" is a self-contained frontend component. Widgets always render into an empty element which you provide. They are self-contained and handle rendering a UI, responding to user interactions, making api calls, and so on.\n\nFor example, the `AppBar` widget renders the Veritone application toolbar, fetches the required data to render the Veritone app switcher and profile menu, and allows the developer to configure their application logo and title. When the user uses the app switcher or uses the profile menu to log out, the AppBar widget handles those events.  \n\nWidgets typically can be configured with a variety of options, but always require at least `elId`. This is the id (string) of an element in your document, often a `div`, into which the widget will be rendered. By applying styling to that div, you can position the widget around your app. The element specified in elId must exist in the document before you create the widget that will use it.\n\n#### Example: Using the OAuthLoginButton widget\nThe first widget you are likely to include is `OAuthLoginButton`. `OAuthLoginButton` renders a \"log in with Veritone\" button that your users can click to start the OAuth authentication flow. At the end of that flow, your VeritoneApp instance will be authenticated and able to make requests to our API. You can also retrieve the oauth token to use in your own app.\n\n_Note_: Unless you are handling the OAuth flow on your own and providing the token to VeritoneApp manually, the `OAuthLoginButton` widget is required for Veritone widgets to work.\n\nThe actual code you write to use widgets will vary based on your framework of choice, but in general, it should be as follows.\n\n```javascript\n// assuming VeritoneApp has already been initialized as described earlier, and given a document like:\n<body>\n  ...\n  <div id=\"login-button-widget\" />\n</body>\n\n// you can render the login button to the document like this:\nimport { OAuthLoginButtonWidget } from 'veritone-widgets'\nconst oauthButton = new OAuthLoginButtonWidget({\n  // the ID of an existing element in your document where the button will appear\n  elId: 'login-button-widget',\n  // the ID of your Veritone application (found in Developer App)\n  clientId: 'my-client-id',\n  // the route in your app that will handle OAuth responses (more details below)\n  redirectUri: 'https://my-app.com/handle_oauth_callback',\n  // optional callbacks to retrieve the OAuth token for using outside of VeritoneApp:\n  onAuthSuccess: ({ OAuthToken }) => console.log(OAuthToken),\n  onAuthFailure: (error) => console.log(error)\n});\n```\n\nWhen `new OAuthLoginButtonWidget({ ... })` runs, the widget will appear on your page.\n\n#### Example: Using the AppBar widget\nAll Veritone apps should also include the AppBar widget.\n\n```javascript\n<body>\n  <div id=\"appBar-widget\" />\n  ...\n</body>\n\nimport { AppBarWidget } from 'veritone-widgets'\nconst appBar = new AppBarWidget({\n  elId: 'appBar-widget',\n  title: 'My App',\n  backgroundColor: '#4caf50',\n  profileMenu: true,\n  appSwitcher: true\n});\n```\n\n## Use via script tag\nFor environments that do not support javascript module imports, widgets can also be included in an app via script tags.\n\n```\n<body>\n  <div id=\"appBar-widget\"></div>\n\n  <script src=\"https://unpkg.com/veritone-widgets@^5/dist/umd/VeritoneApp.js\"></script>\n  <script src=\"https://unpkg.com/veritone-widgets@^5/dist/umd/AppBar.js\"></script>\n\n  <script>\n    const app = VeritoneApp.default();\n\n    const appBar = new AppBar.AppBarWidget({\n      elId: 'appBar-widget',\n      title: 'AppBar Widget',\n      profileMenu: true,\n      appSwitcher: true\n    });\n  </script>\n</body>\n```\n\nAs you can see, each widget is bundled individually to keep file sizes small. In addition, VeritoneApp is separately bundled and required to use widgets. Scripts can be accessed from the the [unpkg](https://unpkg.com/) cdn or downloaded and hosted on your own infrastructure. Unpkg supports [semver ranges](https://docs.npmjs.com/misc/semver), or a specific version can be specified exactly. \n\n\n## Configuring widgets\nNote that the OAuthLoginButton widget in the example above is being configured with five properties: elId, clientId, OAuthURI, onAuthSuccess and onAuthFailure. As mentioned earlier, an elId is required for every widget. OAuthURI, clientId, onAuthSuccess and onAuthFailure are specific configurable properties on the OAuthLoginButton. As it is in the example, configuration is always provided to the widget constructor.\n\n## Widget instance methods\nSome widgets have methods which can be called on an instance of that widget. For example, the FilePicker widget has the methods `pick()` and `cancel()` to open and close the picker dialog, respectively.\n\n```javascript\nthis._picker = new FilePickerWidget({\n  elId: 'file-picker-widget',\n  accept: ['image/*'],\n  multiple: true\n});\n\n...\n// call the pick() instance method on the widget\nthis._picker.pick(files => console.log(files))\n```\n\n#### Where to look for widget options\nIn practice, a widget is just a wrapper around a React component. The easiest way to determine all the possible options for a given widget is to look at the PropTypes of its component. Remember to watch for console warnings which will indicate when an option was configured incorrectly, or when a required option was not provided. \n\n* The \"storybook\" dev environments in veritone-widgets and veritone-react-common have live examples of the various widgets and components.\n\n* The `story.js` file in the root of each widget folder in veritone-widgets and in the root of each component folder in veritone-react-common show the code used to create the storybook pages. If you are using React to write your application, these can be used directly as a basis for your own implementation. \n\n* The PropTypes in the source files of the various widgets (in veritone-widgets) and their respective components (in veritone-react-common) generally correspond to configurable options. Likewise, instance methods for a widget will be defined on its widget class in veritone-widgets.\n\n### Destroying widgets\nTo remove a widget, call `destroy()` on the instance\n```javascript\nconst oauthButton = new OAuthLoginButtonWidget({ ... });\n...\noauthButton.destroy();\n```\n\n## Available widgets\nThe current widgets are:\n\n**AppBar**\n\nThe title and navigation bar common between all Veritone applications. Includes a logo, title, the Veritone app switcher and profile menu.\n\n*Options:*\n\n* title: string, a title to show in the center of the AppBar\n* logoSrc: string, a URL or image (like an SVG) to use as the logo on the left-hand side of the AppBar.\n* backgroundColor: string, a color (in hex) to use for the AppBar background\n* profileMenu: bool, whether or not to show the profile menu\n* appSwitcher: bool, whether or not to show the app switcher menu\n* logo: bool, whether or not to show the veritone logo on the left side of the AppBar\n* onLogout: func, called when the user clicks \"logout\". Apps must implement their own logout logic (usually by deleting the stored oauth token and redirecting or refreshing the page appropriately)\n\n**OAuthLoginButton**\nThe \"Log in with Veritone\" button and corresponding frontend logic to handle the OAuth2 authentication flow.\n\n*Options:*\n* mode: \"implicit\" (default) or \"authCode\", the OAuth grant type you wish to use. \n* OAuthURI: string (required if using `authCode` mode), the URL of your app server's OAuth callback endpoint.\n* redirectUri: string (required if using `implicit` mode), the URL of your app frontend's OAuth callback endpoint.\n* clientID: string (required if using implicit mode), the ID of your Veritone application (found in Developer App)\n* onAuthSuccess: function, a callback that will be called with the OAuth token when the OAuth flow is completed successfully.\n* onAuthFailure: function, a callback that will be called with the error when the OAuth flow fails.\n\n*Requirements*\n\nVeritone provides two OAuth modes to suit different app requirements:\n\n`Implicit`, the default mode, is a frontend-only grant flow with no serverside requirement. _Most apps will use this mode._ This flow is much easier for apps to implement but has the downside of not returning a refresh token; users will need to log in again each time their token expires. \n\n`Auth Code` is a server-based grant flow, which uses your Veritone app's OAuth secret to retrieve both an auth token and refresh token. Auth code flow requires a server because the OAuth secret cannot be exposed to the client; the veritone-widets-server package is an example implementation, and more information can be found in its readme.\n\n**FilePicker**\n\nThe Veritone file upload dialog. Handles selecting and uploading files to S3 for use on the Veritone platform.\n\n*Options:*\n\n* accept: oneOfType([arrayOf(string), string]), file extension(s) or mimetype(s) which the file picker will accept\n* multiple: bool, whether the picker will accept multiple files to upload in a batch\n* width: number, the width of the filepicker dialog\n* height: number, the height of the filepicker dialog\n* allowUrlUpload: bool, whether the filepicker will allow files to be selected by URL\n\n*Instance methods*\n\n* pick(callback): open the filepicker dialog.\n  * callback signature is (result, { warning, error, cancelled })\n    * result: array of result objects, one for each file uploaded\n      * key: string, the filename as stored on the server (may include a UUID)\n      * fileName: string, the original filename\n      * size: number, the file size in bytes\n      * type: string, the mime type of the file\n      * error: string or `false`, the error that prevented the file from uploading, if any\n      * bucket: string, the S3 bucket to which the file was uploaded\n      * expiresInSeconds: number, the length of time the credentials in `getUrl` will be valid, in seconds.\n      * getUrl: string or `null`, the resulting S3 URL, if successful. Includes credentials that are valid for `expires` seconds. \n      * unsignedUrl: string or `null`, the resulting S3 URL, if successful. Does not include credentials and will need to be signed to be used.\n    * warning: string or `false`, a warning message if some (but not all) files failed to upload. A warning indicates that `result` contains some successful upload result objects, and some that were not successful (unsuccessful objects will have `error` populated with an error message, as noted above)\n    * error: string or `false`, an error message, if all files failed to upload.\n    * cancelled: bool, whether or not the filepicker interaction was cancelled (by the user, or by calling cancel()).\n\n* cancel(): close the filepicker dialog. The callback provided to pick() will be called with `(null, { cancelled: true })`.\n\n**Table**\n\nA Veritone table to display data.\n\n*Options:*\n\n* data: arrayOf(object) (required), the dataset\n* columns: arrayOf(shape) (required), a set of defintions for each column to be displayed\n  * shape: object with the following keys:\n    * dataKey: string (required), the data attribute to display within column \n    * header: string, the column heading\n    * transform: function, specifies how column data should be displayed\n      * signature: `(cellValue) => {}`\n    * menu: bool, identifies a column as a menu column\n    * onSelectItem: function, when `menu` is `true`, specifies action(s) to take when a menu option is clicked\n      * signature: `(menuAction) => {}`\n    * cursorPointer: bool, show cursor pointer over table cells\n    * align: string, specifies columm alignment: `['left', 'right', 'center']`\n    * width: number, specifies the width of a column\n* paginate: bool, specifies whether table data should be paginated\n* initialItemsPerPage: number, the number of items to display per page in a paginated table,\n* onCellClick: function, specifies action to take when a table cell is clicked\n  * signature: `(cellRow, cellColumn, cellData) => {}`\n* focusedRow: number, identifies a row to display additional content for\n* renderFocusedRowDetails: function, specifies additional content to display for `focusedRow`\n  * signature: `(focusedRowData) => (string | react component)`\n* onShowCellRange: function, fires when table page or rows (on page) changes;\n  * signature: `({ start: firstRowIndex, end: lastRowIndex }) => {}`\n* onRefreshPageData: function, specifies how to refresh data (if needed)\n  * signature: `() => {}`\n* emptyMessage: string, text to display when table has no data\n\n**EngineOutputExport**\n\nThe Veritone export engine outputs full screen dialog. This will fetch the engines ran on a tdo/recording and allow the user to configure what file types are included in the export\n\n*Options:*\n\n* tdos: arrayOf(shape), array of tdo data objects that engine outputs will be exported for\n  * shape: object with the following keys:\n    * tdoId: string (required), the unique id of a tdo you want to export engine outputs for\n    * mentionId: string, the unique id of a mention you want to export engine outputs for. If a mentionId is provided the engine results of the mention will be returned rather than those of the tdo\n    * startOffsetMs: number, an integer representing the number of milliseconds from the start of the tdo where the exported engine outputs will begin\n    * stopOffsetMs: number, an integer representing the number of milliseconds from the start of the tdo where the exported engine outputs will end\n* onExport: func, specifies action to take when export button is clicked\n  * signature: `(response) => {}`\n* onCancel: func, specifies action to take when cancel button is clicked\n  * signature: `() => {}`\n\n*Instance methods*\n\n* open(): opens the export engine output dialog.\n\n## Running the development environment (storybook)\n1. Set up your local clone of veritone-sdk, following the instructions in the [main readme](https://github.com/veritone/veritone-sdk#development)\n2. cd to this package\n3. In `config.dev.json`, fill in the missing fields with your own app's information (see our [application quick-start guide](http://docs.veritone.com/#/applications/quick-start/) for more info on how to create an app). **Your app's `URL` and `redirect URL` should be set to the same value** for the purposes of dev in this package. This default allows the environment to run with minimal config. \n4. run `yarn start`.\n5. When the build finishes, access the storybook at the url provided in your terminal.\n\n## License\nCopyright 2019, Veritone Inc.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n","scripts":{"lint":"yarn run lint:js && yarn run lint:styles","test":"jest","build":"yarn run build:es && yarn run build:cjs && yarn run build:script-tag","start":"yarn run start:widget-server; yarn run start:storybook","format":"prettier --write \"./src/**/*.{js,scss}\"","lint:js":"eslint src/** --ext .js --max-warnings 0","build:es":"cross-env NODE_ENV=production BABEL_ENV=production-es rollup -c rollup.config.es.js","prebuild":"yarn run clean:build","build:cjs":"cross-env NODE_ENV=production BABEL_ENV=production-cjs rollup -c rollup.config.cjs.js","test:watch":"jest --watch","build:watch":"cross-env NODE_ENV=production rollup -c --watch","clean:build":"rimraf dist","lint:styles":"stylelint \"src/**/*.{scss, css}\"","prepublishOnly":"yarn run test && yarn run lint && yarn run build","build:storybook":"NODE_ENV=production build-storybook -c .storybook -o docs-static","start:storybook":"NODE_ENV=test start-storybook -p 3000 -c .storybook","build:script-tag":"cross-env NODE_ENV=production BABEL_ENV=production-cjs webpack --config webpack.config.script-tag.js","start:widget-server":"yarn workspace veritone-widgets-server run start &"},"_npmUser":{"name":"linh.le","email":"linh.le@setacinq.vn"},"_npmVersion":"6.14.4","description":"As of v5.0.0, this package exports both React \"smart components\" and framework agnostic \"widgets\" for most components. When both are available, the smart component is the default export and the widget is a named export. For example, `import FilePicker, { ","directories":{},"jsnext:main":"dist/bundle-es.js","_nodeVersion":"10.20.1","dependencies":{"react":"^16.9.0","redux":"^4.0.4","deepmerge":"^4.2.2","react-dom":"^16.9.0","recompose":"^0.30.0","redux-saga":"^1.1.3","react-redux":"^7.1.3","redux-thunk":"^2.3.0","video-react":"~0.13.3","shaka-player":"^2.4.1","babel-runtime":"^6.26.0","react-cropper":"^1.3.0","babel-polyfill":"^6.26.0","@material-ui/lab":"^4.0.0-alpha.45","react-redux-saga":"^1.0.2","@material-ui/core":"^4.9.5","react-virtualized":"^9.18.5","@material-ui/icons":"^4.9.1","@material-ui/styles":"^4.9.0","immutability-helper":"^3.0.0","@material-ui/pickers":"^3.2.10","redux-dynamic-modules":"^5.2.0","veritone-oauth-helpers":"^2.1.0","redux-api-middleware-fixed":"^2.0.0"},"_hasShrinkwrap":false,"readmeFilename":"README.md","devDependencies":{"raf":"^3.4.0","jest":"^22.4.3","faker":"^4.1.0","enzyme":"^3.5.0","eslint":"^4.8.0","rimraf":"^2.6.2","rollup":"^1.17.0","webpack":"^4.0.1","cross-env":"^5.1.1","node-sass":"^4.7.2","stylelint":"^8.2.0","babel-core":"^6.26.0","url-loader":"^0.6.2","sass-loader":"^6.0.6","webpack-cli":"^2.0.9","babel-loader":"^7.1.3","redux-logger":"^3.0.6","redux-devtools":"^3.5.0","@storybook/react":"v3.3.9","redux-mock-store":"^1.5.4","veritone-dev-env":"^3.0.0","rollup-plugin-url":"^2.2.2","identity-obj-proxy":"^3.0.0","redux-validate-fsa":"^0.1.2","rollup-plugin-json":"^4.0.0","babel-plugin-lodash":"^3.3.2","eslint-plugin-react":"^7.8.2","react-test-renderer":"^16.0.0","rollup-plugin-alias":"^1.5.2","rollup-plugin-babel":"^3.0.7","eslint-plugin-import":"^2.10.0","eslint-plugin-lodash":"^2.4.5","babel-plugin-date-fns":"^0.2.1","eslint-plugin-promise":"^3.5.0","rollup-plugin-postcss":"^2.0.3","rollup-plugin-replace":"^2.2.0","veritone-react-common":"9.0.12-beta.3","veritone-redux-common":"^3.11.5","@storybook/addon-knobs":"3.3.9","eslint-config-prettier":"^2.6.0","rollup-analyzer-plugin":"^1.2.0","rollup-plugin-commonjs":"^10.0.1","enzyme-adapter-react-16":"^1.0.0","stylelint-config-prettier":"^4.0.0","stylelint-config-standard":"^17.0.0","rollup-plugin-node-resolve":"^5.2.0","babel-plugin-external-helpers":"^6.22.0","babel-plugin-transform-runtime":"^6.23.0","redux-immutable-state-invariant":"^2.1.0","babel-plugin-add-react-displayname":"^0.0.5","babel-plugin-transform-class-properties":"^6.24.1","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-plugin-transform-export-extensions":"^6.22.0","babel-plugin-transform-object-rest-spread":"^6.26.0"},"_npmOperationalInternal":{"tmp":"tmp/veritone-widgets_9.0.12-beta.3_1596774599418_0.17733115054046067","host":"s3://npm-registry-packages"}},"10.0.1":{"name":"veritone-widgets","version":"10.0.1","license":"Apache-2.0","_id":"veritone-widgets@10.0.1","maintainers":[{"name":"aaronadaniel","email":"aaron.kalel@gmail.com"},{"name":"albertcbrown","email":"al@veritone.com"},{"name":"christopher-gustavsson","email":"chrisgustavsson1@gmail.com"},{"name":"coolmitch","email":"robb.mitch@gmail.com"},{"name":"kkaiser","email":"kkaiser@veritone.com"},{"name":"linh.le","email":"linh.le@setacinq.vn"},{"name":"mikomonday","email":"miko.monday@gmail.com"},{"name":"mmtbkn","email":"mohamedirvine@gmail.com"},{"name":"seta-tuha","email":"tu.ha@setacinq.vn"},{"name":"truong_veritone","email":"ktruong@veritone.com"},{"name":"veritone_dev","email":"dev@veritone.com"},{"name":"veritone-jordan","email":"jbelford@veritone.com"}],"dist":{"shasum":"c545b4668d4df271f20626794d5c2121562c4d6a","tarball":"https://registry.npmjs.org/veritone-widgets/-/veritone-widgets-10.0.1.tgz","fileCount":247,"integrity":"sha512-sJDHimw8aVt/2iEyMPY9a/QcMZtFdQ2RzHngc6gkfqe4QxL8hdyKV/GIE6h90uyvKYsVNZm1r4602FzMlu/G1w==","signatures":[{"sig":"MEYCIQCUrM5eBQVHsIbeR/XRiHVnlHxoHKpJ2YDkAC3CBrxVnAIhANAZUz8eHz/lXlFPDDGDBVWs00S4uoe5BDXxPeR6CHBB","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":29136533,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfLhLNCRA9TVsSAnZWagAA+LsP/0S/p6pHlESEOFSljgMZ\niJcYJP+jNPMOjELjeriG6XoWoM4OG0JeiSzseh98z7QhOc3JTx/4JZx2bMqx\nlrlHTyU3hTm2vFITxlFVkqEWK5ARGSODsYWyfv4QBSVD+AnsDSn0DhO1qHht\nhsqnjoTCZ4fRKtvtuFh4hupLH7sTi5yHnhWke9aDWgqKR/P+1vB885LcsD9H\nQwDb1d3QooM9KtWbNgdrcgcscOqnvG4jsCCWinwJrmF6OGrNCMUypOnihcs1\nLvZpUGW1TQGNyIECDuO5eO1GNoYmnsVHSmjV1IDPNsYOslv/hPmIaABz+azI\noGCffoNkkICb097OKSeFAUYzVK+AD96eXQThLi2JnZNX7i+Dhp9sBqRbA6pg\nPaVvMLygZWp0iJZ4rW3noz2wve3Ai3b1zhjj3Q+OPg8CpGbxJD5C3WceDCeO\nXh3Qu+FBH2rpcKj796x7/l5Q0qkuRC/LEGBPWrj6NqkILPq0GTKbh2ptn/Vm\nwSKHpiX6Yl08ORKFV/yNHqSvIwF5q2nghDtkPYu2XXf/2t/Rr8AHZW+CUmzg\nA7o8rz0h1fF6f5ozIPB2GEKif8+VfFFi2voS7HYMyDNbOXlWaL599SsYQdtn\n5tjqXPmD3Zu3zObO5VGb/bqIL9UtoM5eLkc23MLkNinsax4vwPZAZAUMwksP\ncgVW\r\n=KQzj\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"setupFiles":["<rootDir>/test/testSuitePolyfills.js","<rootDir>/test/configureEnzyme.js"],"moduleNameMapper":{"^dnd-core$":"dnd-core/dist/cjs","^react-dnd$":"react-dnd/dist/cjs","\\.(css|scss)$":"identity-obj-proxy","^react-dnd-test-utils$":"react-dnd-test-utils/dist/cjs","^react-dnd-test-backend$":"react-dnd-test-backend/dist/cjs","^react-dnd-html5-backend$":"react-dnd-html5-backend/dist/cjs","^react-dnd-touch-backend$":"react-dnd-touch-backend/dist/cjs","\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$":"<rootDir>/test/__mocks__/fileMock.js"},"moduleDirectories":["node_modules","../../node_modules"],"moduleFileExtensions":["js","jsx"]},"main":"dist/bundle-cjs.js","module":"dist/bundle-es.js","scripts":{"lint":"yarn run lint:js && yarn run lint:styles","test":"jest","build":"yarn run build:es && yarn run build:cjs && yarn run build:script-tag","start":"yarn run start:widget-server; yarn run start:storybook","format":"prettier --write \"./src/**/*.{js,scss}\"","lint:js":"eslint src/** --ext .js --max-warnings 0","build:es":"cross-env NODE_ENV=production BABEL_ENV=production-es rollup -c rollup.config.es.js","prebuild":"yarn run clean:build","build:cjs":"cross-env NODE_ENV=production BABEL_ENV=production-cjs rollup -c rollup.config.cjs.js","test:watch":"jest --watch","build:watch":"cross-env NODE_ENV=production rollup -c --watch","clean:build":"rimraf dist","lint:styles":"stylelint \"src/**/*.{scss, css}\"","prepublishOnly":"yarn run test && yarn run lint && yarn run build","build:storybook":"NODE_ENV=production build-storybook -c .storybook -o docs-static","start:storybook":"NODE_ENV=test start-storybook -p 3000 -c .storybook","build:script-tag":"cross-env NODE_ENV=production BABEL_ENV=production-cjs webpack --config webpack.config.script-tag.js","start:widget-server":"yarn workspace veritone-widgets-server run start &"},"_npmUser":{"name":"kkaiser","email":"kkaiser@veritone.com"},"description":"As of v5.0.0, this package exports both React \"smart components\" and framework agnostic \"widgets\" for most components. When both are available, the smart component is the default export and the widget is a named export. For example, `import FilePicker, { ","directories":{},"jsnext:main":"dist/bundle-es.js","licenseText":"                                 Apache License\n                           Version 2.0, January 2004\n                        http://www.apache.org/licenses/\n\n   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n   1. Definitions.\n\n      \"License\" shall mean the terms and conditions for use, reproduction,\n      and distribution as defined by Sections 1 through 9 of this document.\n\n      \"Licensor\" shall mean the copyright owner or entity authorized by\n      the copyright owner that is granting the License.\n\n      \"Legal Entity\" shall mean the union of the acting entity and all\n      other entities that control, are controlled by, or are under common\n      control with that entity. For the purposes of this definition,\n      \"control\" means (i) the power, direct or indirect, to cause the\n      direction or management of such entity, whether by contract or\n      otherwise, or (ii) ownership of fifty percent (50%) or more of the\n      outstanding shares, or (iii) beneficial ownership of such entity.\n\n      \"You\" (or \"Your\") shall mean an individual or Legal Entity\n      exercising permissions granted by this License.\n\n      \"Source\" form shall mean the preferred form for making modifications,\n      including but not limited to software source code, documentation\n      source, and configuration files.\n\n      \"Object\" form shall mean any form resulting from mechanical\n      transformation or translation of a Source form, including but\n      not limited to compiled object code, generated documentation,\n      and conversions to other media types.\n\n      \"Work\" shall mean the work of authorship, whether in Source or\n      Object form, made available under the License, as indicated by a\n      copyright notice that is included in or attached to the work\n      (an example is provided in the Appendix below).\n\n      \"Derivative Works\" shall mean any work, whether in Source or Object\n      form, that is based on (or derived from) the Work and for which the\n      editorial revisions, annotations, elaborations, or other modifications\n      represent, as a whole, an original work of authorship. For the purposes\n      of this License, Derivative Works shall not include works that remain\n      separable from, or merely link (or bind by name) to the interfaces of,\n      the Work and Derivative Works thereof.\n\n      \"Contribution\" shall mean any work of authorship, including\n      the original version of the Work and any modifications or additions\n      to that Work or Derivative Works thereof, that is intentionally\n      submitted to Licensor for inclusion in the Work by the copyright owner\n      or by an individual or Legal Entity authorized to submit on behalf of\n      the copyright owner. For the purposes of this definition, \"submitted\"\n      means any form of electronic, verbal, or written communication sent\n      to the Licensor or its representatives, including but not limited to\n      communication on electronic mailing lists, source code control systems,\n      and issue tracking systems that are managed by, or on behalf of, the\n      Licensor for the purpose of discussing and improving the Work, but\n      excluding communication that is conspicuously marked or otherwise\n      designated in writing by the copyright owner as \"Not a Contribution.\"\n\n      \"Contributor\" shall mean Licensor and any individual or Legal Entity\n      on behalf of whom a Contribution has been received by Licensor and\n      subsequently incorporated within the Work.\n\n   2. Grant of Copyright License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      copyright license to reproduce, prepare Derivative Works of,\n      publicly display, publicly perform, sublicense, and distribute the\n      Work and such Derivative Works in Source or Object form.\n\n   3. Grant of Patent License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      (except as stated in this section) patent license to make, have made,\n      use, offer to sell, sell, import, and otherwise transfer the Work,\n      where such license applies only to those patent claims licensable\n      by such Contributor that are necessarily infringed by their\n      Contribution(s) alone or by combination of their Contribution(s)\n      with the Work to which such Contribution(s) was submitted. If You\n      institute patent litigation against any entity (including a\n      cross-claim or counterclaim in a lawsuit) alleging that the Work\n      or a Contribution incorporated within the Work constitutes direct\n      or contributory patent infringement, then any patent licenses\n      granted to You under this License for that Work shall terminate\n      as of the date such litigation is filed.\n\n   4. Redistribution. You may reproduce and distribute copies of the\n      Work or Derivative Works thereof in any medium, with or without\n      modifications, and in Source or Object form, provided that You\n      meet the following conditions:\n\n      (a) You must give any other recipients of the Work or\n          Derivative Works a copy of this License; and\n\n      (b) You must cause any modified files to carry prominent notices\n          stating that You changed the files; and\n\n      (c) You must retain, in the Source form of any Derivative Works\n          that You distribute, all copyright, patent, trademark, and\n          attribution notices from the Source form of the Work,\n          excluding those notices that do not pertain to any part of\n          the Derivative Works; and\n\n      (d) If the Work includes a \"NOTICE\" text file as part of its\n          distribution, then any Derivative Works that You distribute must\n          include a readable copy of the attribution notices contained\n          within such NOTICE file, excluding those notices that do not\n          pertain to any part of the Derivative Works, in at least one\n          of the following places: within a NOTICE text file distributed\n          as part of the Derivative Works; within the Source form or\n          documentation, if provided along with the Derivative Works; or,\n          within a display generated by the Derivative Works, if and\n          wherever such third-party notices normally appear. The contents\n          of the NOTICE file are for informational purposes only and\n          do not modify the License. You may add Your own attribution\n          notices within Derivative Works that You distribute, alongside\n          or as an addendum to the NOTICE text from the Work, provided\n          that such additional attribution notices cannot be construed\n          as modifying the License.\n\n      You may add Your own copyright statement to Your modifications and\n      may provide additional or different license terms and conditions\n      for use, reproduction, or distribution of Your modifications, or\n      for any such Derivative Works as a whole, provided Your use,\n      reproduction, and distribution of the Work otherwise complies with\n      the conditions stated in this License.\n\n   5. Submission of Contributions. Unless You explicitly state otherwise,\n      any Contribution intentionally submitted for inclusion in the Work\n      by You to the Licensor shall be under the terms and conditions of\n      this License, without any additional terms or conditions.\n      Notwithstanding the above, nothing herein shall supersede or modify\n      the terms of any separate license agreement you may have executed\n      with Licensor regarding such Contributions.\n\n   6. Trademarks. This License does not grant permission to use the trade\n      names, trademarks, service marks, or product names of the Licensor,\n      except as required for reasonable and customary use in describing the\n      origin of the Work and reproducing the content of the NOTICE file.\n\n   7. Disclaimer of Warranty. Unless required by applicable law or\n      agreed to in writing, Licensor provides the Work (and each\n      Contributor provides its Contributions) on an \"AS IS\" BASIS,\n      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n      implied, including, without limitation, any warranties or conditions\n      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n      PARTICULAR PURPOSE. You are solely responsible for determining the\n      appropriateness of using or redistributing the Work and assume any\n      risks associated with Your exercise of permissions under this License.\n\n   8. Limitation of Liability. In no event and under no legal theory,\n      whether in tort (including negligence), contract, or otherwise,\n      unless required by applicable law (such as deliberate and grossly\n      negligent acts) or agreed to in writing, shall any Contributor be\n      liable to You for damages, including any direct, indirect, special,\n      incidental, or consequential damages of any character arising as a\n      result of this License or out of the use or inability to use the\n      Work (including but not limited to damages for loss of goodwill,\n      work stoppage, computer failure or malfunction, or any and all\n      other commercial damages or losses), even if such Contributor\n      has been advised of the possibility of such damages.\n\n   9. Accepting Warranty or Additional Liability. While redistributing\n      the Work or Derivative Works thereof, You may choose to offer,\n      and charge a fee for, acceptance of support, warranty, indemnity,\n      or other liability obligations and/or rights consistent with this\n      License. However, in accepting such obligations, You may act only\n      on Your own behalf and on Your sole responsibility, not on behalf\n      of any other Contributor, and only if You agree to indemnify,\n      defend, and hold each Contributor harmless for any liability\n      incurred by, or claims asserted against, such Contributor by reason\n      of your accepting any such warranty or additional liability.\n\n   END OF TERMS AND CONDITIONS\n\n   APPENDIX: How to apply the Apache License to your work.\n\n      To apply the Apache License to your work, attach the following\n      boilerplate notice, with the fields enclosed by brackets \"{}\"\n      replaced with your own identifying information. (Don't include\n      the brackets!)  The text should be enclosed in the appropriate\n      comment syntax for the file format. We also recommend that a\n      file or class name and description of purpose be included on the\n      same \"printed page\" as the copyright notice for easier\n      identification within third-party archives.\n\n   Copyright {yyyy} {name of copyright owner}\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n","dependencies":{"react":"^16.9.0","redux":"^4.0.4","reselect":"^4.0.0","deepmerge":"^4.2.2","react-dom":"^16.9.0","recompose":"^0.30.0","redux-saga":"^1.1.3","react-redux":"^7.1.3","redux-thunk":"^2.3.0","video-react":"~0.13.3","shaka-player":"^2.4.1","babel-runtime":"^6.26.0","react-cropper":"^1.3.0","babel-polyfill":"^6.26.0","@material-ui/lab":"^4.0.0-alpha.45","react-redux-saga":"^1.0.2","@material-ui/core":"^4.9.5","react-virtualized":"^9.18.5","@material-ui/icons":"^4.9.1","@material-ui/styles":"^4.9.0","immutability-helper":"^3.0.0","@material-ui/pickers":"^3.2.10","redux-dynamic-modules":"^5.2.0","veritone-oauth-helpers":"^2.1.0","redux-api-middleware-fixed":"^2.0.0"},"_hasShrinkwrap":false,"devDependencies":{"raf":"^3.4.0","jest":"^22.4.3","faker":"^4.1.0","enzyme":"^3.5.0","eslint":"^4.8.0","rimraf":"^2.6.2","rollup":"^1.17.0","webpack":"^4.0.1","cross-env":"^5.1.1","node-sass":"^4.7.2","stylelint":"^8.2.0","babel-core":"^6.26.0","url-loader":"^0.6.2","sass-loader":"^6.0.6","webpack-cli":"^2.0.9","babel-loader":"^7.1.3","redux-logger":"^3.0.6","redux-devtools":"^3.5.0","@storybook/react":"v3.3.9","redux-mock-store":"^1.5.4","veritone-dev-env":"^3.0.0","rollup-plugin-url":"^2.2.2","identity-obj-proxy":"^3.0.0","redux-validate-fsa":"^0.1.2","rollup-plugin-json":"^4.0.0","babel-plugin-lodash":"^3.3.2","eslint-plugin-react":"^7.8.2","react-test-renderer":"^16.0.0","rollup-plugin-alias":"^1.5.2","rollup-plugin-babel":"^3.0.7","eslint-plugin-import":"^2.10.0","eslint-plugin-lodash":"^2.4.5","babel-plugin-date-fns":"^0.2.1","eslint-plugin-promise":"^3.5.0","rollup-plugin-postcss":"^2.0.3","rollup-plugin-replace":"^2.2.0","veritone-react-common":"^10.0.1","veritone-redux-common":"^3.11.7","@storybook/addon-knobs":"3.3.9","eslint-config-prettier":"^2.6.0","rollup-analyzer-plugin":"^1.2.0","rollup-plugin-commonjs":"^10.0.1","enzyme-adapter-react-16":"^1.0.0","stylelint-config-prettier":"^4.0.0","stylelint-config-standard":"^17.0.0","rollup-plugin-node-resolve":"^5.2.0","babel-plugin-external-helpers":"^6.22.0","babel-plugin-transform-runtime":"^6.23.0","redux-immutable-state-invariant":"^2.1.0","babel-plugin-add-react-displayname":"^0.0.5","babel-plugin-transform-class-properties":"^6.24.1","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-plugin-transform-export-extensions":"^6.22.0","babel-plugin-transform-object-rest-spread":"^6.26.0"},"_npmOperationalInternal":{"tmp":"tmp/veritone-widgets_10.0.1_1596854988954_0.009067949196124525","host":"s3://npm-registry-packages"}},"10.0.2":{"name":"veritone-widgets","version":"10.0.2","license":"Apache-2.0","_id":"veritone-widgets@10.0.2","maintainers":[{"name":"aaronadaniel","email":"aaron.kalel@gmail.com"},{"name":"albertcbrown","email":"al@veritone.com"},{"name":"christopher-gustavsson","email":"chrisgustavsson1@gmail.com"},{"name":"coolmitch","email":"robb.mitch@gmail.com"},{"name":"kkaiser","email":"kkaiser@veritone.com"},{"name":"linh.le","email":"linh.le@setacinq.vn"},{"name":"mikomonday","email":"miko.monday@gmail.com"},{"name":"mmtbkn","email":"mohamedirvine@gmail.com"},{"name":"seta-tuha","email":"tu.ha@setacinq.vn"},{"name":"truong_veritone","email":"ktruong@veritone.com"},{"name":"veritone_dev","email":"dev@veritone.com"},{"name":"veritone-jordan","email":"jbelford@veritone.com"}],"dist":{"shasum":"36e8d9c08c28ba6995915d3479e8936cc6fe52f0","tarball":"https://registry.npmjs.org/veritone-widgets/-/veritone-widgets-10.0.2.tgz","fileCount":188,"integrity":"sha512-198JYqoNbv09AojqfODHlmt6M8WBaGaOJ8wlfcErCn9DIcWJccQ1gy2MYpZa/lGPYuSzhZCW05jyNh4jlX8Zlw==","signatures":[{"sig":"MEQCIGJvGKG/2h4VazsXD053/nVpOjzwvPEbqpXipl6th9oUAiAtzyl/13jK7QruMA2rw5046XMu8M9N+Nu6Lky8N6gdFQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":29138613,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfMw/rCRA9TVsSAnZWagAAqQ0P/2g2fmnqaldlzIElO5/Z\n1a9Rlms3QrDPtViay2Wub9su+BrYcIX5rHWVcluo5LgcVdyUhlCyFe5JL3iI\nHKwMYSCGo8CL4s3QEgOfzEKoJaTbTSYC4kzOv5w3LE4bhuvH/+TtxevwHXTQ\notLKGDQWMWH9KvadoKRQOfchaNbBMu8fCVZV+zZVzoky91UepHLD/vFbUC3a\nb3M983DPqIfc6V32DKr0YLwyr1OolNh6wdA9Jjmjs5262yNsL4Sj5n3KchKr\nWqQKvMA7sb/R0HjdQYlhh1WM1r1XIdDOpiihKjmTAaHR+96bBHds/myhVEq+\nLTGwPaq+3N3wFXVRG1QWBFSKcadlXiOk2Xi2FmIyWqFdD++defaQ0lOvpaEr\nMkscx3C/3e7LhoLMd7nTmtAxFYmNQY7Eqcw6wc+4Lz3HSd+oM989f8gZsoVs\n4NDMaa5TRxyZJLh8xmh4HX9LU9F/2iTpvpV8dvj1MVwYw0SMTmu5ZBTz2hHx\n4asGB31hlxSUtGsLn+dM0vuohBGxn026AyA3YXwk6WLXNRuzsw3/cjeIK9Du\nO4DtdlokiMTNK2otnQGx2Ituk3DwBhmn3u3JSPYMVdF4Ll5ds+IFQZhkPcEF\nFtGMUtN9f8UAxdRJg5NeR78xwohOyPKZ2JtH71LkWZWixWidZk+zPckdRl5D\nTMzV\r\n=QcJX\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"setupFiles":["<rootDir>/test/testSuitePolyfills.js","<rootDir>/test/configureEnzyme.js"],"moduleNameMapper":{"^dnd-core$":"dnd-core/dist/cjs","^react-dnd$":"react-dnd/dist/cjs","\\.(css|scss)$":"identity-obj-proxy","^react-dnd-test-utils$":"react-dnd-test-utils/dist/cjs","^react-dnd-test-backend$":"react-dnd-test-backend/dist/cjs","^react-dnd-html5-backend$":"react-dnd-html5-backend/dist/cjs","^react-dnd-touch-backend$":"react-dnd-touch-backend/dist/cjs","\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$":"<rootDir>/test/__mocks__/fileMock.js"},"moduleDirectories":["node_modules","../../node_modules"],"moduleFileExtensions":["js","jsx"]},"main":"dist/bundle-cjs.js","module":"dist/bundle-es.js","scripts":{"lint":"yarn run lint:js && yarn run lint:styles","test":"jest","build":"yarn run build:es && yarn run build:cjs && yarn run build:script-tag","start":"yarn run start:widget-server; yarn run start:storybook","format":"prettier --write \"./src/**/*.{js,scss}\"","lint:js":"eslint src/** --ext .js --max-warnings 0","build:es":"cross-env NODE_ENV=production BABEL_ENV=production-es rollup -c rollup.config.es.js","prebuild":"yarn run clean:build","build:cjs":"cross-env NODE_ENV=production BABEL_ENV=production-cjs rollup -c rollup.config.cjs.js","test:watch":"jest --watch","build:watch":"cross-env NODE_ENV=production rollup -c --watch","clean:build":"rimraf dist","lint:styles":"stylelint \"src/**/*.{scss, css}\"","prepublishOnly":"yarn run test && yarn run lint && yarn run build","build:storybook":"NODE_ENV=production build-storybook -c .storybook -o docs-static","start:storybook":"NODE_ENV=test start-storybook -p 3000 -c .storybook","build:script-tag":"cross-env NODE_ENV=production BABEL_ENV=production-cjs webpack --config webpack.config.script-tag.js","start:widget-server":"yarn workspace veritone-widgets-server run start &"},"_npmUser":{"name":"kkaiser","email":"kkaiser@veritone.com"},"_npmVersion":"5.6.0","description":"As of v5.0.0, this package exports both React \"smart components\" and framework agnostic \"widgets\" for most components. When both are available, the smart component is the default export and the widget is a named export. For example, `import FilePicker, { ","directories":{},"jsnext:main":"dist/bundle-es.js","_nodeVersion":"8.11.2","dependencies":{"react":"^16.9.0","redux":"^4.0.4","reselect":"^4.0.0","deepmerge":"^4.2.2","react-dom":"^16.9.0","recompose":"^0.30.0","redux-saga":"^1.1.3","react-redux":"^7.1.3","redux-thunk":"^2.3.0","video-react":"~0.13.3","shaka-player":"^2.4.1","babel-runtime":"^6.26.0","react-cropper":"^1.3.0","babel-polyfill":"^6.26.0","@material-ui/lab":"^4.0.0-alpha.45","react-redux-saga":"^1.0.2","@material-ui/core":"^4.9.5","react-virtualized":"^9.18.5","@material-ui/icons":"^4.9.1","@material-ui/styles":"^4.9.0","immutability-helper":"^3.0.0","@material-ui/pickers":"^3.2.10","redux-dynamic-modules":"^5.2.0","veritone-oauth-helpers":"^2.1.0","redux-api-middleware-fixed":"^2.0.0"},"_hasShrinkwrap":false,"devDependencies":{"raf":"^3.4.0","jest":"^22.4.3","faker":"^4.1.0","enzyme":"^3.5.0","eslint":"^4.8.0","rimraf":"^2.6.2","rollup":"^1.17.0","webpack":"^4.0.1","cross-env":"^5.1.1","node-sass":"^4.7.2","stylelint":"^8.2.0","babel-core":"^6.26.0","url-loader":"^0.6.2","sass-loader":"^6.0.6","webpack-cli":"^2.0.9","babel-loader":"^7.1.3","redux-logger":"^3.0.6","redux-devtools":"^3.5.0","@storybook/react":"v3.3.9","redux-mock-store":"^1.5.4","veritone-dev-env":"^3.0.0","rollup-plugin-url":"^2.2.2","identity-obj-proxy":"^3.0.0","redux-validate-fsa":"^0.1.2","rollup-plugin-json":"^4.0.0","babel-plugin-lodash":"^3.3.2","eslint-plugin-react":"^7.8.2","react-test-renderer":"^16.0.0","rollup-plugin-alias":"^1.5.2","rollup-plugin-babel":"^3.0.7","eslint-plugin-import":"^2.10.0","eslint-plugin-lodash":"^2.4.5","babel-plugin-date-fns":"^0.2.1","eslint-plugin-promise":"^3.5.0","rollup-plugin-postcss":"^2.0.3","rollup-plugin-replace":"^2.2.0","veritone-react-common":"10.0.2","veritone-redux-common":"^3.11.7","@storybook/addon-knobs":"3.3.9","eslint-config-prettier":"^2.6.0","rollup-analyzer-plugin":"^1.2.0","rollup-plugin-commonjs":"^10.0.1","enzyme-adapter-react-16":"^1.0.0","stylelint-config-prettier":"^4.0.0","stylelint-config-standard":"^17.0.0","rollup-plugin-node-resolve":"^5.2.0","babel-plugin-external-helpers":"^6.22.0","babel-plugin-transform-runtime":"^6.23.0","redux-immutable-state-invariant":"^2.1.0","babel-plugin-add-react-displayname":"^0.0.5","babel-plugin-transform-class-properties":"^6.24.1","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-plugin-transform-export-extensions":"^6.22.0","babel-plugin-transform-object-rest-spread":"^6.26.0"},"_npmOperationalInternal":{"tmp":"tmp/veritone-widgets_10.0.2_1597181930547_0.30435302341620396","host":"s3://npm-registry-packages"}},"10.1.0":{"name":"veritone-widgets","version":"10.1.0","license":"Apache-2.0","_id":"veritone-widgets@10.1.0","maintainers":[{"name":"wrannaman","email":"andrewpierno@gmail.com"},{"name":"veritone_dev","email":"dev@veritone.com"},{"name":"albertcbrown","email":"al@veritone.com"},{"name":"truong_veritone","email":"ktruong@veritone.com"},{"name":"mmtbkn","email":"mohamedirvine@gmail.com"},{"name":"christopher-gustavsson","email":"chrisgustavsson1@gmail.com"},{"name":"aaronadaniel","email":"aaron.kalel@gmail.com"},{"name":"kkaiser","email":"kkaiser@veritone.com"},{"name":"linh.le","email":"linh.le@setacinq.vn"},{"name":"seta-tuha","email":"tu.ha@setacinq.vn"},{"name":"morodri89","email":"mrodriguez@veritone.com"},{"name":"coolmitch","email":"robb.mitch@gmail.com"}],"dist":{"shasum":"d1a5f3777d77229e3c2907dde7a9f43f150a18a3","tarball":"https://registry.npmjs.org/veritone-widgets/-/veritone-widgets-10.1.0.tgz","fileCount":247,"integrity":"sha512-Y1q/rZUxZObJR2XuLP9ll3Lr/WBGdvJZvCVH3EU7PvWaV0qVLmQGa4fWcSGZBXmD9HlIiIpkbpI+mEfnMb4c0g==","signatures":[{"sig":"MEQCIBBE6zSns/7yxN+HrCMdT2lEmBhstQGJn4eckS6tYruuAiBn+X9l6dbRby7etWjvwkeoUr1f8cs4OoQIKpBwVK0TeA==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":29285933,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgvoQSCRA9TVsSAnZWagAAmHgP/2RGS72qY+WYTSU4QatS\n6VWqiEzKmR5VPVqng3OWweWZ4l/BMjhqgSOyqqCyUQgl1DloVIFQTQY510e2\nG1mAf2bEVNxV3O1/PuzeJPDXFitz+YBe/ArJSU2T274OdMGDTzplYQ/nsncc\n4jTtSiYQX8VPE4HT5m/g0WmA4+UXKcP1Tr38pymoAeBWcwKT74Sti4n+y7k2\nC2NCSV1Xukj0cd1zDM3vxqaF+FsBGN1zIKIpN2zLqp8P5L4t4Fo56X5H8ieq\nbhEg2U6FZ0z8zZ5J8CZPjK+BlzDUZGfyRimeIvHXD2ihPEKsexmoMNlwFKKL\nmay9iSVOiB+oQb4QBqU2wCg8JQMYGdRZuvFLg4QEDhOSWFmWFFV8/KUsr6BC\ng+cJpOXGIEBHc/E+OS+fQWOJ+j84oVQluPyVb31TfY2kelnLQEYLK4izYmNo\nUdI9BOxN+8S2wUmIWanV8r7gNiQYDZR8Ngadb9JgKYseUGEjnek6OI4/HZ6a\nd3LKsf/kK9ZelZ92A5RNheWGiQdDmSf5RkzLgJEpn1tovuzNLo9XbISbkuCD\nUl0E1wK2kNZyhzyQewK9woVlpD4tOr2rf8kziQEBG0D4sCRqgtBg+IR9Ycn/\n/9UhJC6X80vVkClXkE6j+wFwY1HHG0XzFLplDm1YpM2sRw+kYI+usVzUhfFD\naQ1w\r\n=WeOf\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"setupFiles":["<rootDir>/test/testSuitePolyfills.js","<rootDir>/test/configureEnzyme.js"],"moduleNameMapper":{"^dnd-core$":"dnd-core/dist/cjs","^react-dnd$":"react-dnd/dist/cjs","\\.(css|scss)$":"identity-obj-proxy","^react-dnd-test-utils$":"react-dnd-test-utils/dist/cjs","^react-dnd-test-backend$":"react-dnd-test-backend/dist/cjs","^react-dnd-html5-backend$":"react-dnd-html5-backend/dist/cjs","^react-dnd-touch-backend$":"react-dnd-touch-backend/dist/cjs","\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$":"<rootDir>/test/__mocks__/fileMock.js"},"moduleDirectories":["node_modules","../../node_modules"],"moduleFileExtensions":["js","jsx"]},"main":"dist/bundle-cjs.js","module":"dist/bundle-es.js","scripts":{"lint":"yarn run lint:js && yarn run lint:styles","test":"jest","build":"yarn run build:es && yarn run build:cjs && yarn run build:script-tag","start":"yarn run start:widget-server; yarn run start:storybook","format":"prettier --write \"./src/**/*.{js,scss}\"","lint:js":"eslint src/** --ext .js --max-warnings 0","build:es":"cross-env NODE_ENV=production BABEL_ENV=production-es rollup -c rollup.config.es.js","prebuild":"yarn run clean:build","build:cjs":"cross-env NODE_ENV=production BABEL_ENV=production-cjs rollup -c rollup.config.cjs.js","test:watch":"jest --watch","build:watch":"cross-env NODE_ENV=production rollup -c --watch","clean:build":"rimraf dist","lint:styles":"stylelint \"src/**/*.{scss, css}\"","prepublishOnly":"yarn run test && yarn run lint && yarn run build","build:storybook":"NODE_ENV=production build-storybook -c .storybook -o docs-static","start:storybook":"NODE_ENV=test start-storybook -p 3000 -c .storybook","build:script-tag":"cross-env NODE_ENV=production BABEL_ENV=production-cjs webpack --config webpack.config.script-tag.js","start:widget-server":"yarn workspace veritone-widgets-server run start &"},"_npmUser":{"name":"mmtbkn","email":"mohamedirvine@gmail.com"},"description":"As of v5.0.0, this package exports both React \"smart components\" and framework agnostic \"widgets\" for most components. When both are available, the smart component is the default export and the widget is a named export. For example, `import FilePicker, { ","directories":{},"jsnext:main":"dist/bundle-es.js","licenseText":"                                 Apache License\n                           Version 2.0, January 2004\n                        http://www.apache.org/licenses/\n\n   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION\n\n   1. Definitions.\n\n      \"License\" shall mean the terms and conditions for use, reproduction,\n      and distribution as defined by Sections 1 through 9 of this document.\n\n      \"Licensor\" shall mean the copyright owner or entity authorized by\n      the copyright owner that is granting the License.\n\n      \"Legal Entity\" shall mean the union of the acting entity and all\n      other entities that control, are controlled by, or are under common\n      control with that entity. For the purposes of this definition,\n      \"control\" means (i) the power, direct or indirect, to cause the\n      direction or management of such entity, whether by contract or\n      otherwise, or (ii) ownership of fifty percent (50%) or more of the\n      outstanding shares, or (iii) beneficial ownership of such entity.\n\n      \"You\" (or \"Your\") shall mean an individual or Legal Entity\n      exercising permissions granted by this License.\n\n      \"Source\" form shall mean the preferred form for making modifications,\n      including but not limited to software source code, documentation\n      source, and configuration files.\n\n      \"Object\" form shall mean any form resulting from mechanical\n      transformation or translation of a Source form, including but\n      not limited to compiled object code, generated documentation,\n      and conversions to other media types.\n\n      \"Work\" shall mean the work of authorship, whether in Source or\n      Object form, made available under the License, as indicated by a\n      copyright notice that is included in or attached to the work\n      (an example is provided in the Appendix below).\n\n      \"Derivative Works\" shall mean any work, whether in Source or Object\n      form, that is based on (or derived from) the Work and for which the\n      editorial revisions, annotations, elaborations, or other modifications\n      represent, as a whole, an original work of authorship. For the purposes\n      of this License, Derivative Works shall not include works that remain\n      separable from, or merely link (or bind by name) to the interfaces of,\n      the Work and Derivative Works thereof.\n\n      \"Contribution\" shall mean any work of authorship, including\n      the original version of the Work and any modifications or additions\n      to that Work or Derivative Works thereof, that is intentionally\n      submitted to Licensor for inclusion in the Work by the copyright owner\n      or by an individual or Legal Entity authorized to submit on behalf of\n      the copyright owner. For the purposes of this definition, \"submitted\"\n      means any form of electronic, verbal, or written communication sent\n      to the Licensor or its representatives, including but not limited to\n      communication on electronic mailing lists, source code control systems,\n      and issue tracking systems that are managed by, or on behalf of, the\n      Licensor for the purpose of discussing and improving the Work, but\n      excluding communication that is conspicuously marked or otherwise\n      designated in writing by the copyright owner as \"Not a Contribution.\"\n\n      \"Contributor\" shall mean Licensor and any individual or Legal Entity\n      on behalf of whom a Contribution has been received by Licensor and\n      subsequently incorporated within the Work.\n\n   2. Grant of Copyright License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      copyright license to reproduce, prepare Derivative Works of,\n      publicly display, publicly perform, sublicense, and distribute the\n      Work and such Derivative Works in Source or Object form.\n\n   3. Grant of Patent License. Subject to the terms and conditions of\n      this License, each Contributor hereby grants to You a perpetual,\n      worldwide, non-exclusive, no-charge, royalty-free, irrevocable\n      (except as stated in this section) patent license to make, have made,\n      use, offer to sell, sell, import, and otherwise transfer the Work,\n      where such license applies only to those patent claims licensable\n      by such Contributor that are necessarily infringed by their\n      Contribution(s) alone or by combination of their Contribution(s)\n      with the Work to which such Contribution(s) was submitted. If You\n      institute patent litigation against any entity (including a\n      cross-claim or counterclaim in a lawsuit) alleging that the Work\n      or a Contribution incorporated within the Work constitutes direct\n      or contributory patent infringement, then any patent licenses\n      granted to You under this License for that Work shall terminate\n      as of the date such litigation is filed.\n\n   4. Redistribution. You may reproduce and distribute copies of the\n      Work or Derivative Works thereof in any medium, with or without\n      modifications, and in Source or Object form, provided that You\n      meet the following conditions:\n\n      (a) You must give any other recipients of the Work or\n          Derivative Works a copy of this License; and\n\n      (b) You must cause any modified files to carry prominent notices\n          stating that You changed the files; and\n\n      (c) You must retain, in the Source form of any Derivative Works\n          that You distribute, all copyright, patent, trademark, and\n          attribution notices from the Source form of the Work,\n          excluding those notices that do not pertain to any part of\n          the Derivative Works; and\n\n      (d) If the Work includes a \"NOTICE\" text file as part of its\n          distribution, then any Derivative Works that You distribute must\n          include a readable copy of the attribution notices contained\n          within such NOTICE file, excluding those notices that do not\n          pertain to any part of the Derivative Works, in at least one\n          of the following places: within a NOTICE text file distributed\n          as part of the Derivative Works; within the Source form or\n          documentation, if provided along with the Derivative Works; or,\n          within a display generated by the Derivative Works, if and\n          wherever such third-party notices normally appear. The contents\n          of the NOTICE file are for informational purposes only and\n          do not modify the License. You may add Your own attribution\n          notices within Derivative Works that You distribute, alongside\n          or as an addendum to the NOTICE text from the Work, provided\n          that such additional attribution notices cannot be construed\n          as modifying the License.\n\n      You may add Your own copyright statement to Your modifications and\n      may provide additional or different license terms and conditions\n      for use, reproduction, or distribution of Your modifications, or\n      for any such Derivative Works as a whole, provided Your use,\n      reproduction, and distribution of the Work otherwise complies with\n      the conditions stated in this License.\n\n   5. Submission of Contributions. Unless You explicitly state otherwise,\n      any Contribution intentionally submitted for inclusion in the Work\n      by You to the Licensor shall be under the terms and conditions of\n      this License, without any additional terms or conditions.\n      Notwithstanding the above, nothing herein shall supersede or modify\n      the terms of any separate license agreement you may have executed\n      with Licensor regarding such Contributions.\n\n   6. Trademarks. This License does not grant permission to use the trade\n      names, trademarks, service marks, or product names of the Licensor,\n      except as required for reasonable and customary use in describing the\n      origin of the Work and reproducing the content of the NOTICE file.\n\n   7. Disclaimer of Warranty. Unless required by applicable law or\n      agreed to in writing, Licensor provides the Work (and each\n      Contributor provides its Contributions) on an \"AS IS\" BASIS,\n      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or\n      implied, including, without limitation, any warranties or conditions\n      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A\n      PARTICULAR PURPOSE. You are solely responsible for determining the\n      appropriateness of using or redistributing the Work and assume any\n      risks associated with Your exercise of permissions under this License.\n\n   8. Limitation of Liability. In no event and under no legal theory,\n      whether in tort (including negligence), contract, or otherwise,\n      unless required by applicable law (such as deliberate and grossly\n      negligent acts) or agreed to in writing, shall any Contributor be\n      liable to You for damages, including any direct, indirect, special,\n      incidental, or consequential damages of any character arising as a\n      result of this License or out of the use or inability to use the\n      Work (including but not limited to damages for loss of goodwill,\n      work stoppage, computer failure or malfunction, or any and all\n      other commercial damages or losses), even if such Contributor\n      has been advised of the possibility of such damages.\n\n   9. Accepting Warranty or Additional Liability. While redistributing\n      the Work or Derivative Works thereof, You may choose to offer,\n      and charge a fee for, acceptance of support, warranty, indemnity,\n      or other liability obligations and/or rights consistent with this\n      License. However, in accepting such obligations, You may act only\n      on Your own behalf and on Your sole responsibility, not on behalf\n      of any other Contributor, and only if You agree to indemnify,\n      defend, and hold each Contributor harmless for any liability\n      incurred by, or claims asserted against, such Contributor by reason\n      of your accepting any such warranty or additional liability.\n\n   END OF TERMS AND CONDITIONS\n\n   APPENDIX: How to apply the Apache License to your work.\n\n      To apply the Apache License to your work, attach the following\n      boilerplate notice, with the fields enclosed by brackets \"{}\"\n      replaced with your own identifying information. (Don't include\n      the brackets!)  The text should be enclosed in the appropriate\n      comment syntax for the file format. We also recommend that a\n      file or class name and description of purpose be included on the\n      same \"printed page\" as the copyright notice for easier\n      identification within third-party archives.\n\n   Copyright {yyyy} {name of copyright owner}\n\n   Licensed under the Apache License, Version 2.0 (the \"License\");\n   you may not use this file except in compliance with the License.\n   You may obtain a copy of the License at\n\n       http://www.apache.org/licenses/LICENSE-2.0\n\n   Unless required by applicable law or agreed to in writing, software\n   distributed under the License is distributed on an \"AS IS\" BASIS,\n   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n   See the License for the specific language governing permissions and\n   limitations under the License.\n","dependencies":{"react":"^16.9.0","redux":"^4.0.4","reselect":"^4.0.0","deepmerge":"^4.2.2","react-dom":"^16.9.0","recompose":"^0.30.0","redux-saga":"^1.1.3","react-redux":"^7.1.3","redux-thunk":"^2.3.0","video-react":"~0.13.3","shaka-player":"^2.4.1","babel-runtime":"^6.26.0","react-cropper":"^1.3.0","babel-polyfill":"^6.26.0","@material-ui/lab":"^4.0.0-alpha.45","react-redux-saga":"^1.0.2","@material-ui/core":"^4.9.5","react-virtualized":"^9.18.5","@material-ui/icons":"^4.9.1","@material-ui/styles":"^4.9.0","immutability-helper":"^3.0.0","@material-ui/pickers":"^3.2.10","redux-dynamic-modules":"^5.2.0","veritone-oauth-helpers":"^2.1.0","redux-api-middleware-fixed":"^2.0.0"},"_hasShrinkwrap":false,"devDependencies":{"raf":"^3.4.0","jest":"^22.4.3","faker":"^4.1.0","enzyme":"^3.5.0","eslint":"^4.8.0","rimraf":"^2.6.2","rollup":"^1.17.0","webpack":"^4.0.1","cross-env":"^5.1.1","node-sass":"^4.7.2","stylelint":"^8.2.0","babel-core":"^6.26.0","url-loader":"^0.6.2","sass-loader":"^6.0.6","webpack-cli":"^2.0.9","babel-loader":"^7.1.3","redux-logger":"^3.0.6","redux-devtools":"^3.5.0","@storybook/react":"v3.3.9","redux-mock-store":"^1.5.4","veritone-dev-env":"^3.0.0","rollup-plugin-url":"^2.2.2","identity-obj-proxy":"^3.0.0","redux-validate-fsa":"^0.1.2","rollup-plugin-json":"^4.0.0","babel-plugin-lodash":"^3.3.2","eslint-plugin-react":"^7.8.2","react-test-renderer":"^16.0.0","rollup-plugin-alias":"^1.5.2","rollup-plugin-babel":"^3.0.7","eslint-plugin-import":"^2.10.0","eslint-plugin-lodash":"^2.4.5","babel-plugin-date-fns":"^0.2.1","eslint-plugin-promise":"^3.5.0","rollup-plugin-postcss":"^2.0.3","rollup-plugin-replace":"^2.2.0","veritone-react-common":"10.0.6","veritone-redux-common":"3.12.0","@storybook/addon-knobs":"3.3.9","eslint-config-prettier":"^2.6.0","rollup-analyzer-plugin":"^1.2.0","rollup-plugin-commonjs":"^10.0.1","enzyme-adapter-react-16":"^1.0.0","stylelint-config-prettier":"^4.0.0","stylelint-config-standard":"^17.0.0","rollup-plugin-node-resolve":"^5.2.0","babel-plugin-external-helpers":"^6.22.0","babel-plugin-transform-runtime":"^6.23.0","redux-immutable-state-invariant":"^2.1.0","babel-plugin-add-react-displayname":"^0.0.5","babel-plugin-transform-class-properties":"^6.24.1","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-plugin-transform-export-extensions":"^6.22.0","babel-plugin-transform-object-rest-spread":"^6.26.0"},"_npmOperationalInternal":{"tmp":"tmp/veritone-widgets_10.1.0_1623098385713_0.9402324910626612","host":"s3://npm-registry-packages"}},"10.1.1":{"name":"veritone-widgets","version":"10.1.1","license":"Apache-2.0","_id":"veritone-widgets@10.1.1","maintainers":[{"name":"wrannaman","email":"andrewpierno@gmail.com"},{"name":"veritone_dev","email":"dev@veritone.com"},{"name":"albertcbrown","email":"al@veritone.com"},{"name":"truong_veritone","email":"ktruong@veritone.com"},{"name":"mmtbkn","email":"mohamedirvine@gmail.com"},{"name":"aaronadaniel","email":"aaron.kalel@gmail.com"},{"name":"kkaiser","email":"kkaiser@veritone.com"},{"name":"linh.le","email":"linh.le@setacinq.vn"},{"name":"morodri89","email":"mrodriguez@veritone.com"},{"name":"coolmitch","email":"robb.mitch@gmail.com"}],"dist":{"shasum":"09d1cc5022f27adfc98aa7dd1848e8443bf27d49","tarball":"https://registry.npmjs.org/veritone-widgets/-/veritone-widgets-10.1.1.tgz","fileCount":188,"integrity":"sha512-e56q6iglbBdOjXAbFBpAq3ElFzFn7DuH6gxRA7H1yXkWY+2PShK2+pcS8soMEqEq97ZhYL3sOGb0kBChuFRODg==","signatures":[{"sig":"MEQCIBrejYwO9ZllAIQ+dfwoE+d4V00RJWbA5CnRJj0HIwqUAiBnZVpSD+PaLTmJM2nuVHeyImNM8R4+Nl1StdCO233Ebw==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}],"unpackedSize":29145765,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJg2/y6CRA9TVsSAnZWagAASbYQAJsiYv67O5uDYQjprA+b\nHrNRFoF9ShBgxWN5llVNOzpIeRTiOTwVkWsf9qvNlFJSIDNTPoyKWaeVunkH\niocRUE3QklxRLrkd4N54n2q9s9M7LPUQFVu6PfUhHYzPlphkd1Ql+UMmMaFD\nidN70cEvM78w2zW2foIsqFlNjzTCQY6WDxYzFW8UnECBew9h/Cpb3RsLN7Ns\nd5XNNpkYBpMItUbKn4o4Bz3RsLu/+CKbeLVWqtwagh3nZWQEAYn0J/lHmniz\nwKZeQE0B8KSvC1EanZKDp02cUXX711nWL8SXvOnyx8rFQwGkH8TfxFBFII1M\nl42wy1GaJtvK3IDHkvUqB0uyd6dqkm5xsVO1+eoUYaK85XKgAi/9fsHh/Byg\n15nps2STCrLGI5bUWrxeudKExvMI22OOh4I13AboEpVKNMAwHCOXTMFu+1jm\nSY9ymIZeaY2T5DrNFo7P9qY+1M7MEt1evdlUs9eVeBrfIJ750sV9skV9fgu9\nw6kvuK1l7qH6rOwVsNH7T8xehtUWJrojwawftWxgBVXr1BjVL2kAhFo9twjC\n9MIKmXFceoMjLTeEu3g0IGXUr3lI3KFVkGPXoTnUAlt2m4ePf4J82cRPurM6\nQ4GNKa3wgu6cjIdbdO35IpMqpiqR7zfTxBHHYcrUC1Rzx55zGObKrkVYQvNv\niDd2\r\n=v33D\r\n-----END PGP SIGNATURE-----\r\n"},"jest":{"setupFiles":["<rootDir>/test/testSuitePolyfills.js","<rootDir>/test/configureEnzyme.js"],"moduleNameMapper":{"^dnd-core$":"dnd-core/dist/cjs","^react-dnd$":"react-dnd/dist/cjs","\\.(css|scss)$":"identity-obj-proxy","^react-dnd-test-utils$":"react-dnd-test-utils/dist/cjs","^react-dnd-test-backend$":"react-dnd-test-backend/dist/cjs","^react-dnd-html5-backend$":"react-dnd-html5-backend/dist/cjs","^react-dnd-touch-backend$":"react-dnd-touch-backend/dist/cjs","\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$":"<rootDir>/test/__mocks__/fileMock.js"},"moduleDirectories":["node_modules","../../node_modules"],"moduleFileExtensions":["js","jsx"]},"main":"dist/bundle-cjs.js","module":"dist/bundle-es.js","scripts":{"lint":"yarn run lint:js && yarn run lint:styles","test":"jest","build":"yarn run build:es && yarn run build:cjs && yarn run build:script-tag","start":"yarn run start:widget-server; yarn run start:storybook","format":"prettier --write \"./src/**/*.{js,scss}\"","lint:js":"eslint src/** --ext .js --max-warnings 0","build:es":"cross-env NODE_ENV=production BABEL_ENV=production-es rollup -c rollup.config.es.js","prebuild":"yarn run clean:build","build:cjs":"cross-env NODE_ENV=production BABEL_ENV=production-cjs rollup -c rollup.config.cjs.js","test:watch":"jest --watch","build:watch":"cross-env NODE_ENV=production rollup -c --watch","clean:build":"rimraf dist","lint:styles":"stylelint \"src/**/*.{scss, css}\"","prepublishOnly":"yarn run build","build:storybook":"NODE_ENV=production build-storybook -c .storybook -o docs-static","start:storybook":"NODE_ENV=test start-storybook -p 3000 -c .storybook","build:script-tag":"cross-env NODE_ENV=production BABEL_ENV=production-cjs webpack --config webpack.config.script-tag.js","start:widget-server":"yarn workspace veritone-widgets-server run start &"},"_npmUser":{"name":"mmtbkn","email":"mohamedirvine@gmail.com"},"_npmVersion":"6.13.4","description":"As of v5.0.0, this package exports both React \"smart components\" and framework agnostic \"widgets\" for most components. When both are available, the smart component is the default export and the widget is a named export. For example, `import FilePicker, { ","directories":{},"jsnext:main":"dist/bundle-es.js","_nodeVersion":"8.17.0","dependencies":{"react":"^16.9.0","redux":"^4.0.4","reselect":"^4.0.0","deepmerge":"^4.2.2","react-dom":"^16.9.0","recompose":"^0.30.0","redux-saga":"^1.1.3","react-redux":"^7.1.3","redux-thunk":"^2.3.0","video-react":"~0.13.3","shaka-player":"^2.4.1","babel-runtime":"^6.26.0","react-cropper":"^1.3.0","babel-polyfill":"^6.26.0","@material-ui/lab":"^4.0.0-alpha.45","react-redux-saga":"^1.0.2","@material-ui/core":"^4.9.5","react-virtualized":"^9.18.5","@material-ui/icons":"^4.9.1","@material-ui/styles":"^4.9.0","immutability-helper":"^3.0.0","@material-ui/pickers":"^3.2.10","redux-dynamic-modules":"^5.2.0","veritone-oauth-helpers":"^2.1.0","redux-api-middleware-fixed":"^2.0.0"},"_hasShrinkwrap":false,"devDependencies":{"raf":"^3.4.0","jest":"^22.4.3","faker":"^4.1.0","enzyme":"^3.5.0","eslint":"^4.8.0","rimraf":"^2.6.2","rollup":"^1.17.0","webpack":"^4.0.1","cross-env":"^5.1.1","node-sass":"^4.7.2","stylelint":"^8.2.0","babel-core":"^6.26.0","url-loader":"^0.6.2","sass-loader":"^6.0.6","webpack-cli":"^2.0.9","babel-loader":"^7.1.3","redux-logger":"^3.0.6","redux-devtools":"^3.5.0","@storybook/react":"v3.3.9","redux-mock-store":"^1.5.4","veritone-dev-env":"^3.0.0","rollup-plugin-url":"^2.2.2","identity-obj-proxy":"^3.0.0","redux-validate-fsa":"^0.1.2","rollup-plugin-json":"^4.0.0","babel-plugin-lodash":"^3.3.2","eslint-plugin-react":"^7.8.2","react-test-renderer":"^16.0.0","rollup-plugin-alias":"^1.5.2","rollup-plugin-babel":"^3.0.7","eslint-plugin-import":"^2.10.0","eslint-plugin-lodash":"^2.4.5","babel-plugin-date-fns":"^0.2.1","eslint-plugin-promise":"^3.5.0","rollup-plugin-postcss":"^2.0.3","rollup-plugin-replace":"^2.2.0","veritone-react-common":"10.0.7","veritone-redux-common":"3.12.0","@storybook/addon-knobs":"3.3.9","eslint-config-prettier":"^2.6.0","rollup-analyzer-plugin":"^1.2.0","rollup-plugin-commonjs":"^10.0.1","enzyme-adapter-react-16":"^1.0.0","stylelint-config-prettier":"^4.0.0","stylelint-config-standard":"^17.0.0","rollup-plugin-node-resolve":"^5.2.0","babel-plugin-external-helpers":"^6.22.0","babel-plugin-transform-runtime":"^6.23.0","redux-immutable-state-invariant":"^2.1.0","babel-plugin-add-react-displayname":"^0.0.5","babel-plugin-transform-class-properties":"^6.24.1","babel-plugin-transform-decorators-legacy":"^1.3.4","babel-plugin-transform-export-extensions":"^6.22.0","babel-plugin-transform-object-rest-spread":"^6.26.0"},"_npmOperationalInternal":{"tmp":"tmp/veritone-widgets_10.1.1_1625029815953_0.09223918415164589","host":"s3://npm-registry-packages"}}},"time":{"created":"2018-01-10T20:19:33.578Z","modified":"2026-07-03T06:48:02.603Z","1.0.0":"2018-01-10T20:19:33.578Z","1.0.1":"2018-01-10T20:30:12.021Z","2.0.0":"2018-01-24T02:49:53.315Z","2.0.1":"2018-01-24T23:20:57.249Z","2.1.0-beta-1":"2018-02-08T21:39:36.717Z","2.1.0-beta-2":"2018-02-08T22:06:35.673Z","2.1.0-beta-3":"2018-02-08T22:08:46.886Z","2.1.0-beta-4":"2018-02-08T22:12:45.464Z","2.1.0-beta-5":"2018-02-08T22:32:04.950Z","2.1.0-beta-7":"2018-02-08T23:57:13.664Z","2.1.0-beta-8":"2018-02-08T23:59:49.133Z","2.1.0-beta-9":"2018-02-12T20:09:30.042Z","3.0.0":"2018-02-22T22:18:53.074Z","3.0.1":"2018-02-26T19:41:45.444Z","4.0.0":"2018-03-21T22:22:08.673Z","4.1.0":"2018-03-21T22:41:20.614Z","4.2.0":"2018-04-02T18:09:24.616Z","5.0.0":"2018-05-22T22:17:22.753Z","5.1.0":"2018-06-13T18:33:15.742Z","5.2.0":"2018-06-26T18:16:41.682Z","5.2.1":"2018-07-10T22:20:34.780Z","5.2.2":"2018-07-19T21:04:41.708Z","6.0.0":"2018-08-14T20:27:54.071Z","6.0.1":"2018-08-16T18:43:59.940Z","6.1.0":"2018-08-21T19:09:15.314Z","6.1.1":"2018-08-22T23:02:25.761Z","6.2.0":"2018-08-23T19:59:07.400Z","6.3.0":"2018-10-22T19:48:57.417Z","6.3.1":"2018-10-23T18:14:21.402Z","6.4.0":"2018-11-28T04:01:26.806Z","7.0.0":"2019-02-01T19:42:37.077Z","7.1.0":"2019-04-12T18:32:58.789Z","7.1.1":"2019-05-03T00:07:05.860Z","7.1.2":"2019-05-06T01:05:59.964Z","7.1.3":"2019-05-13T21:58:46.212Z","7.3.0":"2019-05-15T23:15:35.822Z","7.4.0":"2019-05-28T18:39:48.848Z","7.5.0":"2019-06-18T01:14:15.323Z","7.6.0":"2019-07-08T21:59:38.462Z","7.7.0":"2019-07-08T23:30:24.449Z","8.0.1":"2019-07-09T00:27:19.184Z","8.0.2":"2019-07-09T00:54:02.584Z","8.0.3":"2019-07-19T19:40:48.224Z","8.0.4":"2019-07-20T00:15:22.474Z","8.0.5":"2019-11-04T23:05:12.652Z","8.0.6":"2020-02-03T11:29:30.431Z","8.0.6-beta.2":"2020-02-04T07:30:46.240Z","8.0.6-beta.3":"2020-02-26T12:13:34.351Z","8.0.6-beta.4":"2020-02-26T12:19:34.378Z","8.0.6-beta.5":"2020-03-02T07:31:27.370Z","8.0.7":"2020-03-02T12:04:47.931Z","8.0.8":"2020-03-10T10:36:26.311Z","8.0.9":"2020-03-16T19:52:02.582Z","8.0.10":"2020-03-16T19:58:56.030Z","9.0.0":"2020-03-18T07:26:05.621Z","9.0.1":"2020-03-30T05:54:06.780Z","9.0.2":"2020-04-07T10:24:40.267Z","9.0.3":"2020-04-21T08:36:57.751Z","9.0.4":"2020-05-06T13:15:41.638Z","9.0.5":"2020-05-27T02:17:59.958Z","9.0.10":"2020-05-29T18:13:52.035Z","9.0.11":"2020-07-07T07:03:29.934Z","9.0.12":"2020-07-10T04:20:41.980Z","9.0.12-beta":"2020-07-23T09:34:23.394Z","9.0.12-beta.1":"2020-07-23T10:19:37.534Z","9.0.12-beta.2":"2020-07-27T02:03:26.739Z","9.0.12-beta.3":"2020-08-07T04:29:59.747Z","10.0.0":"2020-08-08T02:08:36.591Z","10.0.1":"2020-08-08T02:49:49.326Z","10.0.2":"2020-08-11T21:38:50.857Z","10.1.0":"2021-06-07T20:39:46.045Z","10.1.1":"2021-06-30T05:10:17.670Z"},"license":"Apache-2.0","description":"As of v5.0.0, this package exports both React \"smart components\" and framework agnostic \"widgets\" for most components. When both are available, the smart component is the default export and the widget is a named export. For example, `import FilePicker, { ","maintainers":[{"email":"dev@veritone.com","name":"veritone_dev"},{"email":"al@veritone.com","name":"albertcbrown"},{"email":"ktruong@veritone.com","name":"truong_veritone"},{"email":"bworrellsmith@veritone.com","name":"bworrellsmith.veritone"},{"email":"sbartmess@veritone.com","name":"severin_veritone"},{"email":"mjanes@veritone.com","name":"mikejdev"},{"email":"ango2@veritone.com","name":"ango2"},{"email":"eortiz@veritone.com","name":"eortiz-vt"},{"email":"kmyers@veritone.com","name":"kimmichurri"},{"email":"tboley@veritone.com","name":"tboley-vt"},{"email":"kkieu@veritone.com","name":"kkieu"},{"email":"robb.mitch@gmail.com","name":"coolmitch"}],"readme":"## Quick Start\nAs of v5.0.0, this package exports both React \"smart components\" and framework agnostic \"widgets\" for most components. When both are available, the smart component is the default export and the widget is a named export. For example, `import FilePicker, { FilePickerWidget } from 'veritone-widgets'` imports the smart component as FilePicker and the widget as FilePickerWidget. Smart components usually require redux reducers and sagas to be imported as well, see [Using Smart Components](#using-smart-components)\n\n### Widgets (framework agnostic)\n```javascript\nimport { VeritoneApp, OAuthLoginButtonWidget, AppBarWidget } from 'veritone-widgets'\nconst app = VeritoneApp();\n\n// a \"log in with veritone\" button\nconst oauthButton = new OAuthLoginButtonWidget({\n  // the ID of an existing element in your document where the button will appear\n  elId: 'login-button-widget',\n  // the ID of your Veritone application (found in Developer App)\n  clientId: 'my-client-id',\n  // the route in your app that will handle OAuth responses (more details below)\n  redirectUri: 'https://my-app.com/handle_oauth_callback',\n  // optional callbacks to retrieve the OAuth token for using outside of VeritoneApp:\n  onAuthSuccess: ({ OAuthToken }) => console.log(OAuthToken),\n  onAuthFailure: (error) => console.log(error)\n});\n\n// the Veritone app bar, which will receive auth after the user completes\n// the oauth flow using the OAuthLoginButton\nconst appBar = new AppBarWidget({\n  elId: 'appBar-widget',\n  title: 'My App',\n  backgroundColor: '#4caf50',\n  profileMenu: true,\n  appSwitcher: true\n});\n```\n### React Components\n```javascript\nimport { OAuthLoginButton } from 'veritone-widgets'\n\nrender(\n  <OAuthLoginButton\n    clientId=\"my-client-id\"\n    redirectUri=\"https://my-app.com/handle_oauth_callback\"\n  />\n)\n```\n\n## Using Smart Components\nBecause smart components are not rendered within the VeritoneApp widget framework, they require the user's app to have its own redux store with the components' reducers installed. Often, [sagas](https://redux-saga.js.org/) are also included and must be started as part of the app's root saga.\n\n### Smart component reducer/saga requirements\n#### FilePicker\n* reducer:\n`import {filePickerReducer} from 'veritone-widgets'`\n\n* saga:\n`import {filePickerSaga} from 'veritone-widgets'`\n\n#### Notifications\n* reducer:\n`import {notificationsReducer} from 'veritone-widgets'`\n\n#### EngineOutputExport\n* reducer:\n`import {engineOutputExportReducer} from 'veritone-widgets'`\n\n#### OAuthLoginButton\n* reducers:\nveritone-redux-common `User`, `Auth` and `Config` reducers\n\n### Smart component theme wrapper requirements\nIn your app, import the `VeritoneSDKThemeProvider` from `veritone-react-common`:\n```\nimport {VeritoneSDKThemeProvider } from 'veritone-react-common'\n```\nthen wrap your root component with `<VeritoneSDKThemeProvider>`. If this is not possible, the `@withVeritoneSDKThemeProvider` decorator is provided to wrap individual components.\n\nComponents can be customized using [material-ui themes](https://material-ui.com/customization/themes/) by passing a theme into the `theme` prop of the provider. Passed-in themes will be merged with the default Veritone theme.\n\n## Using Widgets\n### 1. Create an instance of VeritoneApp\n`VeritoneApp` is a container for all the widgets and widget data in an app. Before using any widgets, you need to import and call it. Typically this will be done when your application is loaded and initialized.\n\n```javascript\nimport { VeritoneApp } from 'veritone-widgets'\nconst app = VeritoneApp();\n```\n\n_Note_: `VeritoneApp` creates a singleton, so you do not need to manage the constructed app instance yourself. As long as VeritoneApp() has been imported and called at least once, you can retrieve the same instance by importing and calling VeritoneApp() again elsewhere in your app, if needed.\n\n### 2. Authenticate with Veritone via OAuth\nIf you already have an OAuth token (because your app handles the client-side OAuth flow on its own), provide it by calling `login()` on the returned app instance.\n\n```javascript\nimport { VeritoneApp } from 'veritone-widgets'\nconst app = VeritoneApp().login({\n  OAuthToken: 'my-token-here'\n});\n```\n \nCalling `login()` is usually not necessary; we provide an `OAuthLoginButton` widget, which handles the OAuth token exchange automatically. See the instructions in the next section for more information.\n\n\n### 3. Add widgets to your app\nAfter you've initialized the app framework by calling `VeritoneApp()`, you can begin using widgets.\n\nA \"widget\" is a self-contained frontend component. Widgets always render into an empty element which you provide. They are self-contained and handle rendering a UI, responding to user interactions, making api calls, and so on.\n\nFor example, the `AppBar` widget renders the Veritone application toolbar, fetches the required data to render the Veritone app switcher and profile menu, and allows the developer to configure their application logo and title. When the user uses the app switcher or uses the profile menu to log out, the AppBar widget handles those events.  \n\nWidgets typically can be configured with a variety of options, but always require at least `elId`. This is the id (string) of an element in your document, often a `div`, into which the widget will be rendered. By applying styling to that div, you can position the widget around your app. The element specified in elId must exist in the document before you create the widget that will use it.\n\n#### Example: Using the OAuthLoginButton widget\nThe first widget you are likely to include is `OAuthLoginButton`. `OAuthLoginButton` renders a \"log in with Veritone\" button that your users can click to start the OAuth authentication flow. At the end of that flow, your VeritoneApp instance will be authenticated and able to make requests to our API. You can also retrieve the oauth token to use in your own app.\n\n_Note_: Unless you are handling the OAuth flow on your own and providing the token to VeritoneApp manually, the `OAuthLoginButton` widget is required for Veritone widgets to work.\n\nThe actual code you write to use widgets will vary based on your framework of choice, but in general, it should be as follows.\n\n```javascript\n// assuming VeritoneApp has already been initialized as described earlier, and given a document like:\n<body>\n  ...\n  <div id=\"login-button-widget\" />\n</body>\n\n// you can render the login button to the document like this:\nimport { OAuthLoginButtonWidget } from 'veritone-widgets'\nconst oauthButton = new OAuthLoginButtonWidget({\n  // the ID of an existing element in your document where the button will appear\n  elId: 'login-button-widget',\n  // the ID of your Veritone application (found in Developer App)\n  clientId: 'my-client-id',\n  // the route in your app that will handle OAuth responses (more details below)\n  redirectUri: 'https://my-app.com/handle_oauth_callback',\n  // optional callbacks to retrieve the OAuth token for using outside of VeritoneApp:\n  onAuthSuccess: ({ OAuthToken }) => console.log(OAuthToken),\n  onAuthFailure: (error) => console.log(error)\n});\n```\n\nWhen `new OAuthLoginButtonWidget({ ... })` runs, the widget will appear on your page.\n\n#### Example: Using the AppBar widget\nAll Veritone apps should also include the AppBar widget.\n\n```javascript\n<body>\n  <div id=\"appBar-widget\" />\n  ...\n</body>\n\nimport { AppBarWidget } from 'veritone-widgets'\nconst appBar = new AppBarWidget({\n  elId: 'appBar-widget',\n  title: 'My App',\n  backgroundColor: '#4caf50',\n  profileMenu: true,\n  appSwitcher: true\n});\n```\n\n## Use via script tag\nFor environments that do not support javascript module imports, widgets can also be included in an app via script tags.\n\n```\n<body>\n  <div id=\"appBar-widget\"></div>\n\n  <script src=\"https://unpkg.com/veritone-widgets@^5/dist/umd/VeritoneApp.js\"></script>\n  <script src=\"https://unpkg.com/veritone-widgets@^5/dist/umd/AppBar.js\"></script>\n\n  <script>\n    const app = VeritoneApp.default();\n\n    const appBar = new AppBar.AppBarWidget({\n      elId: 'appBar-widget',\n      title: 'AppBar Widget',\n      profileMenu: true,\n      appSwitcher: true\n    });\n  </script>\n</body>\n```\n\nAs you can see, each widget is bundled individually to keep file sizes small. In addition, VeritoneApp is separately bundled and required to use widgets. Scripts can be accessed from the the [unpkg](https://unpkg.com/) cdn or downloaded and hosted on your own infrastructure. Unpkg supports [semver ranges](https://docs.npmjs.com/misc/semver), or a specific version can be specified exactly. \n\n\n## Configuring widgets\nNote that the OAuthLoginButton widget in the example above is being configured with five properties: elId, clientId, OAuthURI, onAuthSuccess and onAuthFailure. As mentioned earlier, an elId is required for every widget. OAuthURI, clientId, onAuthSuccess and onAuthFailure are specific configurable properties on the OAuthLoginButton. As it is in the example, configuration is always provided to the widget constructor.\n\n## Widget instance methods\nSome widgets have methods which can be called on an instance of that widget. For example, the FilePicker widget has the methods `pick()` and `cancel()` to open and close the picker dialog, respectively.\n\n```javascript\nthis._picker = new FilePickerWidget({\n  elId: 'file-picker-widget',\n  accept: ['image/*'],\n  multiple: true\n});\n\n...\n// call the pick() instance method on the widget\nthis._picker.pick(files => console.log(files))\n```\n\n#### Where to look for widget options\nIn practice, a widget is just a wrapper around a React component. The easiest way to determine all the possible options for a given widget is to look at the PropTypes of its component. Remember to watch for console warnings which will indicate when an option was configured incorrectly, or when a required option was not provided. \n\n* The \"storybook\" dev environments in veritone-widgets and veritone-react-common have live examples of the various widgets and components.\n\n* The `story.js` file in the root of each widget folder in veritone-widgets and in the root of each component folder in veritone-react-common show the code used to create the storybook pages. If you are using React to write your application, these can be used directly as a basis for your own implementation. \n\n* The PropTypes in the source files of the various widgets (in veritone-widgets) and their respective components (in veritone-react-common) generally correspond to configurable options. Likewise, instance methods for a widget will be defined on its widget class in veritone-widgets.\n\n### Destroying widgets\nTo remove a widget, call `destroy()` on the instance\n```javascript\nconst oauthButton = new OAuthLoginButtonWidget({ ... });\n...\noauthButton.destroy();\n```\n\n## Available widgets\nThe current widgets are:\n\n**AppBar**\n\nThe title and navigation bar common between all Veritone applications. Includes a logo, title, the Veritone app switcher and profile menu.\n\n*Options:*\n\n* title: string, a title to show in the center of the AppBar\n* logoSrc: string, a URL or image (like an SVG) to use as the logo on the left-hand side of the AppBar.\n* backgroundColor: string, a color (in hex) to use for the AppBar background\n* profileMenu: bool, whether or not to show the profile menu\n* appSwitcher: bool, whether or not to show the app switcher menu\n* logo: bool, whether or not to show the veritone logo on the left side of the AppBar\n* onLogout: func, called when the user clicks \"logout\". Apps must implement their own logout logic (usually by deleting the stored oauth token and redirecting or refreshing the page appropriately)\n\n**OAuthLoginButton**\nThe \"Log in with Veritone\" button and corresponding frontend logic to handle the OAuth2 authentication flow.\n\n*Options:*\n* mode: \"implicit\" (default) or \"authCode\", the OAuth grant type you wish to use. \n* OAuthURI: string (required if using `authCode` mode), the URL of your app server's OAuth callback endpoint.\n* redirectUri: string (required if using `implicit` mode), the URL of your app frontend's OAuth callback endpoint.\n* clientID: string (required if using implicit mode), the ID of your Veritone application (found in Developer App)\n* onAuthSuccess: function, a callback that will be called with the OAuth token when the OAuth flow is completed successfully.\n* onAuthFailure: function, a callback that will be called with the error when the OAuth flow fails.\n\n*Requirements*\n\nVeritone provides two OAuth modes to suit different app requirements:\n\n`Implicit`, the default mode, is a frontend-only grant flow with no serverside requirement. _Most apps will use this mode._ This flow is much easier for apps to implement but has the downside of not returning a refresh token; users will need to log in again each time their token expires. \n\n`Auth Code` is a server-based grant flow, which uses your Veritone app's OAuth secret to retrieve both an auth token and refresh token. Auth code flow requires a server because the OAuth secret cannot be exposed to the client; the veritone-widets-server package is an example implementation, and more information can be found in its readme.\n\n**FilePicker**\n\nThe Veritone file upload dialog. Handles selecting and uploading files to S3 for use on the Veritone platform.\n\n*Options:*\n\n* accept: oneOfType([arrayOf(string), string]), file extension(s) or mimetype(s) which the file picker will accept\n* multiple: bool, whether the picker will accept multiple files to upload in a batch\n* width: number, the width of the filepicker dialog\n* height: number, the height of the filepicker dialog\n* allowUrlUpload: bool, whether the filepicker will allow files to be selected by URL\n\n*Instance methods*\n\n* pick(callback): open the filepicker dialog.\n  * callback signature is (result, { warning, error, cancelled })\n    * result: array of result objects, one for each file uploaded\n      * key: string, the filename as stored on the server (may include a UUID)\n      * fileName: string, the original filename\n      * size: number, the file size in bytes\n      * type: string, the mime type of the file\n      * error: string or `false`, the error that prevented the file from uploading, if any\n      * bucket: string, the S3 bucket to which the file was uploaded\n      * expiresInSeconds: number, the length of time the credentials in `getUrl` will be valid, in seconds.\n      * getUrl: string or `null`, the resulting S3 URL, if successful. Includes credentials that are valid for `expires` seconds. \n      * unsignedUrl: string or `null`, the resulting S3 URL, if successful. Does not include credentials and will need to be signed to be used.\n    * warning: string or `false`, a warning message if some (but not all) files failed to upload. A warning indicates that `result` contains some successful upload result objects, and some that were not successful (unsuccessful objects will have `error` populated with an error message, as noted above)\n    * error: string or `false`, an error message, if all files failed to upload.\n    * cancelled: bool, whether or not the filepicker interaction was cancelled (by the user, or by calling cancel()).\n\n* cancel(): close the filepicker dialog. The callback provided to pick() will be called with `(null, { cancelled: true })`.\n\n**Table**\n\nA Veritone table to display data.\n\n*Options:*\n\n* data: arrayOf(object) (required), the dataset\n* columns: arrayOf(shape) (required), a set of defintions for each column to be displayed\n  * shape: object with the following keys:\n    * dataKey: string (required), the data attribute to display within column \n    * header: string, the column heading\n    * transform: function, specifies how column data should be displayed\n      * signature: `(cellValue) => {}`\n    * menu: bool, identifies a column as a menu column\n    * onSelectItem: function, when `menu` is `true`, specifies action(s) to take when a menu option is clicked\n      * signature: `(menuAction) => {}`\n    * cursorPointer: bool, show cursor pointer over table cells\n    * align: string, specifies columm alignment: `['left', 'right', 'center']`\n    * width: number, specifies the width of a column\n* paginate: bool, specifies whether table data should be paginated\n* initialItemsPerPage: number, the number of items to display per page in a paginated table,\n* onCellClick: function, specifies action to take when a table cell is clicked\n  * signature: `(cellRow, cellColumn, cellData) => {}`\n* focusedRow: number, identifies a row to display additional content for\n* renderFocusedRowDetails: function, specifies additional content to display for `focusedRow`\n  * signature: `(focusedRowData) => (string | react component)`\n* onShowCellRange: function, fires when table page or rows (on page) changes;\n  * signature: `({ start: firstRowIndex, end: lastRowIndex }) => {}`\n* onRefreshPageData: function, specifies how to refresh data (if needed)\n  * signature: `() => {}`\n* emptyMessage: string, text to display when table has no data\n\n**EngineOutputExport**\n\nThe Veritone export engine outputs full screen dialog. This will fetch the engines ran on a tdo/recording and allow the user to configure what file types are included in the export\n\n*Options:*\n\n* tdos: arrayOf(shape), array of tdo data objects that engine outputs will be exported for\n  * shape: object with the following keys:\n    * tdoId: string (required), the unique id of a tdo you want to export engine outputs for\n    * mentionId: string, the unique id of a mention you want to export engine outputs for. If a mentionId is provided the engine results of the mention will be returned rather than those of the tdo\n    * startOffsetMs: number, an integer representing the number of milliseconds from the start of the tdo where the exported engine outputs will begin\n    * stopOffsetMs: number, an integer representing the number of milliseconds from the start of the tdo where the exported engine outputs will end\n* onExport: func, specifies action to take when export button is clicked\n  * signature: `(response) => {}`\n* onCancel: func, specifies action to take when cancel button is clicked\n  * signature: `() => {}`\n\n*Instance methods*\n\n* open(): opens the export engine output dialog.\n\n## Running the development environment (storybook)\n1. Set up your local clone of veritone-sdk, following the instructions in the [main readme](https://github.com/veritone/veritone-sdk#development)\n2. cd to this package\n3. In `config.dev.json`, fill in the missing fields with your own app's information (see our [application quick-start guide](http://docs.veritone.com/#/applications/quick-start/) for more info on how to create an app). **Your app's `URL` and `redirect URL` should be set to the same value** for the purposes of dev in this package. This default allows the environment to run with minimal config. \n4. run `yarn start`.\n5. When the build finishes, access the storybook at the url provided in your terminal.\n\n## License\nCopyright 2019, Veritone Inc.\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\n    http://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n","readmeFilename":"README.md"}